From 0a7d0fd9ca7f06cced1b303d2d18afec36f42f01 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 29 Jun 2025 20:55:21 +0200 Subject: [PATCH 001/675] libknot: avoid calling close(-1) (Coverity) --- src/libknot/quic/tls_common.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libknot/quic/tls_common.c b/src/libknot/quic/tls_common.c index 65cab40cc7..4277414fdf 100644 --- a/src/libknot/quic/tls_common.c +++ b/src/libknot/quic/tls_common.c @@ -284,7 +284,9 @@ static void hash_file(SIPHASH_CTX *ctx, const char *file_name) if (fd == -1 || fstat(fd, &file_stat) == -1 || (data = mmap(0, file_stat.st_size, PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED) { - close(fd); + if (fd > -1) { + close(fd); + } return; } From eec9afaa65f6053dcfdb4778ac1dbb00dea9cdac Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 30 Jun 2025 06:52:46 +0200 Subject: [PATCH 002/675] requestor: avoid calling close(-1) (Coverity) --- src/knot/query/requestor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/query/requestor.c b/src/knot/query/requestor.c index 2a117162bd..50b1675ad8 100644 --- a/src/knot/query/requestor.c +++ b/src/knot/query/requestor.c @@ -397,7 +397,7 @@ static int request_produce(knot_requestor_t *req, knot_request_t *last, } if (req->layer.state == KNOT_STATE_CONSUME) { - if ((last->flags & KNOT_REQUEST_NEW) && + if ((last->flags & KNOT_REQUEST_NEW) && (last->fd >= 0) && !(last->flags & (KNOT_REQUEST_UDP | KNOT_REQUEST_TLS))) { close(last->fd); last->fd = -1; From 626d062f54006ac9aee85854a43869e63c095d04 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 27 May 2025 21:56:22 +0200 Subject: [PATCH 003/675] conf: support default values for multivalued items --- src/knot/conf/conf.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index c6e920b6d9..bd52e397ec 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -429,6 +429,10 @@ size_t conf_val_count( return 1; } + if (val->blob_len == 0) { // Default value. + return 1; + } + size_t count = 0; conf_val(val); while (val->code == KNOT_EOK) { @@ -451,26 +455,24 @@ void conf_val( assert(val != NULL); assert(val->code == KNOT_EOK || val->code == KNOT_EOF); - if (val->item->flags & YP_FMULTI) { - // Check if already called and not at the end. - if (val->data != NULL && val->code != KNOT_EOF) { - return; - } - // Otherwise set to the first value. - conf_val_reset(val); - } else { - // Check for empty data. - if (val->blob_len == 0) { - val->data = NULL; - val->len = 0; - val->code = KNOT_EOK; - return; + if (val->blob_len != 0) { + if (val->item->flags & YP_FMULTI) { + // Check if already called and not at the end. + if (val->data != NULL && val->code != KNOT_EOF) { + return; + } + // Otherwise set to the first value. + conf_val_reset(val); } else { - assert(val->blob != NULL); val->data = val->blob; val->len = val->blob_len; val->code = KNOT_EOK; } + } else { + // Empty data. + val->data = NULL; + val->len = 0; + val->code = KNOT_EOK; } } From 415f5bf88ee9d541f432008f791148218521958b Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 27 May 2025 13:34:03 +0200 Subject: [PATCH 004/675] dnssec: implemented multi-keystore option... ...useful e.g. for hsm-to-pem migration --- doc/reference.rst | 12 +++- src/knot/conf/schema.c | 2 +- src/knot/dnssec/context.c | 5 +- src/knot/dnssec/context.h | 3 +- src/knot/dnssec/kasp/kasp_zone.c | 51 +++++++++++++---- src/knot/dnssec/kasp/kasp_zone.h | 4 +- src/knot/dnssec/kasp/policy.h | 9 ++- src/knot/dnssec/zone-keys.c | 35 +++++++++--- src/knot/dnssec/zone-keys.h | 13 +++++ src/knot/zone/backup.c | 48 +++++++++++----- src/utils/keymgr/functions.c | 10 ++-- src/utils/keymgr/keystore.c | 10 ++-- tests-extra/tests/dnssec/keystores/test.py | 64 ++++++++++++++++++++++ tests-extra/tools/dnstest/server.py | 17 ++++++ 14 files changed, 231 insertions(+), 52 deletions(-) create mode 100644 tests-extra/tests/dnssec/keystores/test.py diff --git a/doc/reference.rst b/doc/reference.rst index b6b8f814f4..d660293d63 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2008,7 +2008,7 @@ DNSSEC policy configuration. policy: - id: STR - keystore: keystore_id + keystore: keystore_id ... manual: BOOL single-type-signing: BOOL algorithm: rsasha1 | rsasha1-nsec3-sha1 | rsasha256 | rsasha512 | ecdsap256sha256 | ecdsap384sha384 | ed25519 | ed448 @@ -2055,11 +2055,19 @@ keystore A :ref:`reference` to a keystore holding private key material for zones. -*Default:* an imaginary keystore with all default values +If multiple keystores are specified, private keys for signing are looked up in +all of them. But newly generated keys are stored in the first one in the specified order. + +.. NOTE:: + If multiple keystores are configured and a zone is being restored + with the :ref:`back up` feature, all restored + private keys are stored into the first referenced keystore. .. NOTE:: A configured keystore called "default" won't be used unless explicitly referenced. +*Default:* an imaginary keystore with all default values + .. _policy_manual: manual diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index fe1eee5cdf..1db67b716f 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -397,7 +397,7 @@ static const yp_item_t desc_dnskey_sync[] = { static const yp_item_t desc_policy[] = { { C_ID, YP_TSTR, YP_VNONE, CONF_IO_FREF }, - { C_KEYSTORE, YP_TREF, YP_VREF = { C_KEYSTORE }, CONF_IO_FRLD_ZONES, + { C_KEYSTORE, YP_TREF, YP_VREF = { C_KEYSTORE }, YP_FMULTI | CONF_IO_FRLD_ZONES, { check_ref_dflt } }, { C_MANUAL, YP_TBOOL, YP_VNONE, CONF_IO_FRLD_ZONES }, { C_SINGLE_TYPE_SIGNING, YP_TBOOL, YP_VNONE, CONF_IO_FRLD_ZONES }, diff --git a/src/knot/dnssec/context.c b/src/knot/dnssec/context.c index fbed953256..27e311095c 100644 --- a/src/knot/dnssec/context.c +++ b/src/knot/dnssec/context.c @@ -227,8 +227,7 @@ int kdnssec_ctx_init(conf_t *conf, kdnssec_ctx_t *ctx, const knot_dname_t *zone_ conf_id_fix_default(&policy_id); policy_load(ctx->policy, conf, &policy_id, ctx->zone->dname); - ret = zone_init_keystore(conf, &policy_id, NULL, &ctx->keystore, - &ctx->keystore_type, &ctx->policy->key_label); + ret = zone_init_keystore(conf, &policy_id, NULL, &ctx->keystores); if (ret != KNOT_EOK) { goto init_error; } @@ -287,7 +286,7 @@ void kdnssec_ctx_deinit(kdnssec_ctx_t *ctx) free(ctx->policy); } key_records_clear(&ctx->offline_records); - dnssec_keystore_deinit(ctx->keystore); + zone_deinit_keystore(&ctx->keystores); kasp_zone_free(&ctx->zone); free(ctx->kasp_zone_path); diff --git a/src/knot/dnssec/context.h b/src/knot/dnssec/context.h index 48ee5087c5..0e7e8eccdf 100644 --- a/src/knot/dnssec/context.h +++ b/src/knot/dnssec/context.h @@ -28,8 +28,7 @@ typedef struct { knot_lmdb_db_t *kasp_db; knot_kasp_zone_t *zone; knot_kasp_policy_t *policy; - dnssec_keystore_t *keystore; - unsigned keystore_type; + knot_kasp_keystore_t *keystores; char *kasp_zone_path; diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index 227d512e9b..808c2c663a 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -303,9 +303,25 @@ void free_key_params(key_params_t *parm) } } +void zone_deinit_keystore(knot_kasp_keystore_t **keystores) +{ + if (keystores != NULL && *keystores != NULL) { + for (size_t i = 0; i < (*keystores)[0].count; i++) { + dnssec_keystore_deinit((*keystores)[i].keystore); + } + free(*keystores); + *keystores = NULL; + } +} + int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore_id, - dnssec_keystore_t **keystore, unsigned *backend, bool *key_label) + knot_kasp_keystore_t **keystores) { + if (keystores == NULL || *keystores != NULL || + (bool)(policy_id == NULL) == (bool)(keystore_id == NULL)) { + return KNOT_EINVAL; + } + char *zone_path = conf_db(conf, C_KASP_DB); if (zone_path == NULL) { return KNOT_ENOMEM; @@ -322,21 +338,34 @@ int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore conf_id_fix_default(keystore_id); } - conf_val_t val = conf_id_get(conf, C_KEYSTORE, C_BACKEND, keystore_id); - unsigned _backend = conf_opt(&val); + size_t ks_count = conf_val_count(keystore_id); + *keystores = calloc(ks_count, sizeof(**keystores)); + if (*keystores == NULL) { + free(zone_path); + return KNOT_ENOMEM; + } - val = conf_id_get(conf, C_KEYSTORE, C_CONFIG, keystore_id); - const char *config = conf_str(&val); + int ret = KNOT_EOK; + for (size_t i = 0; i < ks_count && ret == KNOT_EOK; i++) { + knot_kasp_keystore_t *ks = *keystores + i; - if (key_label != NULL) { + conf_val_t val = conf_id_get(conf, C_KEYSTORE, C_BACKEND, keystore_id); + ks->backend = conf_opt(&val); val = conf_id_get(conf, C_KEYSTORE, C_KEY_LABEL, keystore_id); - *key_label = conf_bool(&val); - } + ks->key_label = conf_bool(&val); + ks->count = ks_count; - int ret = keystore_load(config, _backend, zone_path, keystore); + val = conf_id_get(conf, C_KEYSTORE, C_CONFIG, keystore_id); + const char *config = conf_str(&val); + ret = keystore_load(config, ks->backend, zone_path, &ks->keystore); - if (backend != NULL) { - *backend = _backend; + if (ks_count > 1) { // Don't try to iterate if not multivalued. + conf_val_next(keystore_id); + } + } + + if (ret != KNOT_EOK) { + zone_deinit_keystore(keystores); } free(zone_path); diff --git a/src/knot/dnssec/kasp/kasp_zone.h b/src/knot/dnssec/kasp/kasp_zone.h index 778493ef37..1395df886c 100644 --- a/src/knot/dnssec/kasp/kasp_zone.h +++ b/src/knot/dnssec/kasp/kasp_zone.h @@ -36,8 +36,10 @@ void kasp_zone_free(knot_kasp_zone_t **zone); void free_key_params(key_params_t *parm); +void zone_deinit_keystore(knot_kasp_keystore_t **keystores); + int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore_id, - dnssec_keystore_t **keystore, unsigned *backend, bool *key_label); + knot_kasp_keystore_t **keystores); int kasp_zone_keys_from_rr(knot_kasp_zone_t *zone, const knot_rdataset_t *zone_dnskey, diff --git a/src/knot/dnssec/kasp/policy.h b/src/knot/dnssec/kasp/policy.h index 54031c3dfe..7f9db32609 100644 --- a/src/knot/dnssec/kasp/policy.h +++ b/src/knot/dnssec/kasp/policy.h @@ -9,6 +9,7 @@ #include "contrib/time.h" #include "libdnssec/key.h" +#include "libdnssec/keystore.h" #include "knot/conf/conf.h" /*! @@ -53,6 +54,13 @@ typedef struct { bool is_zsk; } knot_kasp_key_t; +typedef struct { + dnssec_keystore_t *keystore; + unsigned backend; + bool key_label; + size_t count; /*!< Number of keystores configured. */ +} knot_kasp_keystore_t; + /*! * Parent for DS checks. */ @@ -119,7 +127,6 @@ typedef struct { bool has_dnskey_sync; bool offline_ksk; bool incremental; - bool key_label; unsigned unsafe; uint32_t keytag_remain; uint32_t keytag_modulo; diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 570b27e561..2a4b305e31 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -106,15 +106,17 @@ static int generate_keytag_unconflict(kdnssec_ctx_t *ctx, const char *label = NULL; char label_buf[sizeof(knot_dname_txt_storage_t) + 16]; - if (ctx->policy->key_label && + if (ctx->keystores[0].key_label && knot_dname_to_str(label_buf, ctx->zone->dname, sizeof(label_buf)) != NULL) { const char *key_type = (flags & DNSKEY_GENERATE_KSK) ? " KSK" : " ZSK" ; strlcat(label_buf, key_type, sizeof(label_buf)); label = label_buf; } + assert(ctx->keystores != NULL && ctx->keystores[0].count > 0 && ctx->keystores[0].keystore != NULL); + for (size_t i = 0; i < GENERATE_KEYTAG_ATTEMPTS; i++) { - int ret = generate_dnssec_key(ctx->keystore, ctx->zone->dname, label, + int ret = generate_dnssec_key(ctx->keystores[0].keystore, ctx->zone->dname, label, ctx->policy->algorithm, size, flags, id, key); if (ret != KNOT_EOK) { @@ -126,7 +128,7 @@ static int generate_keytag_unconflict(kdnssec_ctx_t *ctx, return KNOT_EOK; } - (void)dnssec_keystore_remove(ctx->keystore, *id); + (void)dnssec_keystore_remove(ctx->keystores[0].keystore, *id); dnssec_key_free(*key); free(*id); } @@ -141,7 +143,7 @@ int kdnssec_generate_key(kdnssec_ctx_t *ctx, kdnssec_generate_flags_t flags, { assert(ctx); assert(ctx->zone); - assert(ctx->keystore); + assert(ctx->keystores); assert(ctx->policy); normalize_generate_flags(&flags); @@ -172,7 +174,7 @@ int kdnssec_generate_key(kdnssec_ctx_t *ctx, kdnssec_generate_flags_t flags, r = kasp_zone_append(ctx->zone, key); free(key); if (r != KNOT_EOK) { - (void)dnssec_keystore_remove(ctx->keystore, id); + (void)dnssec_keystore_remove(ctx->keystores[0].keystore, id); dnssec_key_free(dnskey); free(id); return r; @@ -215,7 +217,8 @@ int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr) { assert(ctx); assert(ctx->zone); - assert(ctx->keystore); + assert(ctx->keystores); + assert(ctx->keystores[0].count > 0); assert(ctx->policy); ssize_t key_index = key_ptr - ctx->zone->keys; @@ -231,7 +234,10 @@ int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr) } if (!key_still_used_in_keystore && !key_ptr->is_pub_only) { - ret = dnssec_keystore_remove(ctx->keystore, key_ptr->id); + ret = DNSSEC_ENOENT; + for (size_t i = 0; i < ctx->keystores[0].count && ret == DNSSEC_ENOENT; i++) { + ret = dnssec_keystore_remove(ctx->keystores[i].keystore, key_ptr->id); + } if (ret != KNOT_EOK) { return ret; } @@ -447,6 +453,19 @@ static int walk_algorithms(kdnssec_ctx_t *ctx, zone_keyset_t *keyset) return KNOT_EOK; } +int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, + dnssec_key_t *key, unsigned *backend) +{ + int ret = DNSSEC_ENOENT; + for (size_t i = 0; i < keystores[0].count && ret == DNSSEC_ENOENT; i++) { + if (backend != NULL) { + *backend = keystores[i].backend; + } + ret = dnssec_keystore_get_private(keystores[i].keystore, id, key); + } + return ret; +} + /*! * \brief Load private keys for active keys. */ @@ -460,7 +479,7 @@ static int load_private_keys(kdnssec_ctx_t *ctx, zone_keyset_t *keyset) if (!key->is_active && !key->is_ksk_active_plus && !key->is_zsk_active_plus) { continue; } - int ret = dnssec_keystore_get_private(ctx->keystore, key->id, key->key); + int ret = kdnssec_load_private(ctx->keystores, key->id, key->key, NULL); switch (ret) { case DNSSEC_EOK: case DNSSEC_KEY_ALREADY_PRESENT: diff --git a/src/knot/dnssec/zone-keys.h b/src/knot/dnssec/zone-keys.h index 583e954c6e..0474d527fd 100644 --- a/src/knot/dnssec/zone-keys.h +++ b/src/knot/dnssec/zone-keys.h @@ -112,6 +112,19 @@ int kdnssec_share_key(kdnssec_ctx_t *ctx, const knot_dname_t *from_zone, const c */ int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr); +/*! + * \brief Load private key for given ID by searching all configured keystores. + * + * \param keystores Array of keystores. + * \param id Key ID to search. + * \param key Libdnssec key structure to be filled with private material. + * \param backend Optional: backend of the keystore where found. + * + * \return DNSSEC_E* + */ +int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, + dnssec_key_t *key, unsigned *backend); + /*! * \brief Load zone keys and init cryptographic context. * diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index 449daab4a5..bb1a0d70f9 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -23,6 +23,7 @@ #include "knot/ctl/commands.h" #include "knot/dnssec/kasp/kasp_zone.h" #include "knot/dnssec/kasp/keystore.h" +#include "knot/dnssec/zone-keys.h" #include "knot/journal/journal_metadata.h" #include "knot/server/server.h" #include "knot/zone/backup_dir.h" @@ -215,7 +216,8 @@ static char *dir_file(const char *dir_name, const char *file_name) return sprintf_alloc("%s/%s", dir_name, basename); } -static int backup_key(key_params_t *parm, dnssec_keystore_t *from, dnssec_keystore_t *to) +static int backup_key(key_params_t *parm, const knot_dname_t *zname, + knot_kasp_keystore_t *from, knot_kasp_keystore_t *to) { dnssec_key_t *key = NULL; int ret = dnssec_key_new(&key); @@ -224,9 +226,22 @@ static int backup_key(key_params_t *parm, dnssec_keystore_t *from, dnssec_keysto } dnssec_key_set_algorithm(key, parm->algorithm); - ret = dnssec_keystore_get_private(from, parm->id, key); + dnssec_keystore_t *to_pem = NULL; + for (size_t i = 0; i < to[0].count; i++) { + if (to[i].backend == KEYSTORE_BACKEND_PEM) { + to_pem = to[i].keystore; + break; + } + } + + unsigned backend; + ret = kdnssec_load_private(from, parm->id, key, &backend); if (ret == DNSSEC_EOK) { - ret = dnssec_keystore_set_private(to, key); + if (backend == KEYSTORE_BACKEND_PKCS11 || to_pem == NULL) { + log_zone_notice(zname, "private keys from PKCS #11 are not subject of backup/restore, skipping them"); + } else { + ret = dnssec_keystore_set_private(to[0].keystore, key); + } } dnssec_key_free(key); @@ -352,29 +367,34 @@ static int backup_zonefile(conf_t *conf, zone_t *zone, zone_backup_ctx_t *ctx) static int backup_keystore(conf_t *conf, zone_t *zone, zone_backup_ctx_t *ctx) { - dnssec_keystore_t *from = NULL, *to = NULL; + knot_kasp_keystore_t *from = NULL, *to = NULL; conf_val_t policy_id = get_zone_policy(conf, zone->name); - unsigned backend_type = 0; - int ret = zone_init_keystore(conf, &policy_id, NULL, &from, &backend_type, NULL); + int ret = zone_init_keystore(conf, &policy_id, NULL, &from); if (ret != KNOT_EOK) { LOG_FAIL("keystore init"); return ret; } - if (backend_type == KEYSTORE_BACKEND_PKCS11) { - log_zone_notice(zone->name, "private keys from PKCS #11 are not subject of backup/restore"); - (void)dnssec_keystore_deinit(from); - return KNOT_EOK; + + to = calloc(1, sizeof(*to)); + if (to == NULL) { + LOG_FAIL("out of memory"); + zone_deinit_keystore(&from); + return KNOT_ENOMEM; } + dnssec_keystore_t *to_ks; char kasp_dir[strlen(ctx->backup_dir) + 6]; (void)snprintf(kasp_dir, sizeof(kasp_dir), "%s/keys", ctx->backup_dir); - ret = keystore_load("keys", KEYSTORE_BACKEND_PEM, kasp_dir, &to); + ret = keystore_load("keys", KEYSTORE_BACKEND_PEM, kasp_dir, &to_ks); if (ret != KNOT_EOK) { LOG_FAIL("keystore load"); goto done; } + to->keystore = to_ks; + to->count = 1; + to->backend = KEYSTORE_BACKEND_PEM; BACKUP_SWAP(ctx, from, to); @@ -390,7 +410,7 @@ static int backup_keystore(conf_t *conf, zone_t *zone, zone_backup_ctx_t *ctx) WALK_LIST(n, key_params) { key_params_t *parm = n->d; if (ret == KNOT_EOK && !parm->is_pub_only) { - ret = backup_key(parm, from, to); + ret = backup_key(parm, zone->name, from, to); } free_key_params(parm); } @@ -400,8 +420,8 @@ static int backup_keystore(conf_t *conf, zone_t *zone, zone_backup_ctx_t *ctx) ptrlist_deep_free(&key_params, NULL); done: - (void)dnssec_keystore_deinit(to); - (void)dnssec_keystore_deinit(from); + zone_deinit_keystore(&to); + zone_deinit_keystore(&from); return ret; } diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 311b8ea5ca..760114e67d 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -416,7 +416,7 @@ int keymgr_import_bind(kdnssec_ctx_t *ctx, const char *import_file, bool pub_onl bind_privkey_free(&bpriv); - ret = dnssec_keystore_import(ctx->keystore, &pem, &keyid); + ret = dnssec_keystore_import(ctx->keystores[0].keystore, &pem, &keyid); dnssec_binary_free(&pem); if (ret != DNSSEC_EOK) { goto fail; @@ -536,7 +536,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, } // put pem to keystore - ret = dnssec_keystore_import(ctx->keystore, &pem, &keyid); + ret = dnssec_keystore_import(ctx->keystores[0].keystore, &pem, &keyid); dnssec_binary_free(&pem); if (ret != DNSSEC_EOK) { err_import_key(keyid, param); @@ -560,7 +560,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, dnssec_key_set_algorithm(key, ctx->policy->algorithm); // fill key structure from keystore (incl. pubkey from privkey computation) - ret = dnssec_keystore_get_private(ctx->keystore, keyid, key); + ret = kdnssec_load_private(ctx->keystores, keyid, key, NULL); if (ret != DNSSEC_EOK) { err_import_key(keyid, ""); goto fail; @@ -606,7 +606,7 @@ int keymgr_import_pkcs11(kdnssec_ctx_t *ctx, char *key_id, int argc, char *argv[ return DNSSEC_INVALID_KEY_ID; } - if (ctx->keystore_type != KEYSTORE_BACKEND_PKCS11) { + if (ctx->keystores[0].backend != KEYSTORE_BACKEND_PKCS11) { knot_dname_txt_storage_t dname_str; (void)knot_dname_to_str(dname_str, ctx->zone->dname, sizeof(dname_str)); ERR2("not a PKCS #11 keystore for zone %s", dname_str); @@ -1007,7 +1007,7 @@ static int key_sort(const void *a, const void *b) static bool key_missing(kdnssec_ctx_t *ctx, const knot_kasp_key_t *key) { return !key->is_pub_only && DNSSEC_EOK != - dnssec_keystore_get_private(ctx->keystore, key->id, key->key); + kdnssec_load_private(ctx->keystores, key->id, key->key, NULL); } int keymgr_list_keys(kdnssec_ctx_t *ctx, keymgr_list_params_t *params) diff --git a/src/utils/keymgr/keystore.c b/src/utils/keymgr/keystore.c index 9d598e461c..06f841dffb 100644 --- a/src/utils/keymgr/keystore.c +++ b/src/utils/keymgr/keystore.c @@ -198,26 +198,28 @@ static int init_keystore(dnssec_keystore_t **store, const char *keystore_id, id.blob = (const uint8_t *)keystore_id; id.blob_len = len; - unsigned backend; - bool key_label; + knot_kasp_keystore_t *keystores = NULL; - int ret = zone_init_keystore(conf(), NULL, &id, store, &backend, &key_label); + int ret = zone_init_keystore(conf(), NULL, &id, &keystores); if (ret != KNOT_EOK) { ERR2("failed to open '%s' keystore (%s)", keystore_id, knot_strerror(ret)); return ret; } + assert(keystores[0].count == 1); + *store = keystores[0].keystore; if (strcmp(keystore_id, DFLT_ID) == 0) { printf("Keystore default"); } else { printf("Keystore id '%s'", keystore_id); }; - printf(", type %s", (backend == KEYSTORE_BACKEND_PEM ? "PEM" : "PKCS #11")); + printf(", type %s", (keystores[0].backend == KEYSTORE_BACKEND_PEM ? "PEM" : "PKCS #11")); if (threads > 0) { printf(", threads %u", threads); } printf("\n\n"); + free(keystores); return KNOT_EOK; } diff --git a/tests-extra/tests/dnssec/keystores/test.py b/tests-extra/tests/dnssec/keystores/test.py new file mode 100644 index 0000000000..664a399d95 --- /dev/null +++ b/tests-extra/tests/dnssec/keystores/test.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 + +""" +Check of multi-keystore operation. +""" + +import os +import random +import shutil +from dnstest.utils import * +from dnstest.keys import Keymgr +from dnstest.test import Test + +def check_key_count(server, keystore, expected): + ksdir = os.path.join(server.keydir, keystore) + try: + files = len([name for name in os.listdir(ksdir)]) + except FileNotFoundError: + files = 0 + compare(files, expected, "privkey count in %s" % ksdir) + +t = Test() + +server = t.server("knot") +zone = t.zone("catalog.") # has zero TTL => faster key rollovers +t.link(zone, server) + +server.dnssec(zone).enable = True +server.dnssec(zone).propagation_delay = 1 +server.dnssec(zone).keystores = [ "keys1", "keys2" ] + +t.start() +serial = server.zone_wait(zone) + +check_key_count(server, "keys1", 2) +check_key_count(server, "keys2", 0) + +server.dnssec(zone).keystores = [ "keys2", "keys1" ] +server.gen_confile() +server.reload() +server.ctl("zone-key-rollover %s zsk" % zone[0].name) + +serial += 2 # wait for three increments which is whole ZSK rollover +serial = server.zone_wait(zone, serial) + +check_key_count(server, "keys1", 1) +check_key_count(server, "keys2", 1) + +backup_dir = os.path.join(server.dir, "backup1") +server.ctl("zone-backup +backupdir %s %s" % (backup_dir, zone[0].name), wait=True) +shutil.rmtree(os.path.join(server.keydir, "keys1")) +shutil.rmtree(os.path.join(server.keydir, "keys2")) +server.ctl("zone-restore +backupdir %s %s" % (backup_dir, zone[0].name), wait=True) + +check_key_count(server, "keys1", 0) +check_key_count(server, "keys2", 2) # restore puts all keys to first configured keystore no matter where they were at backup + +server.ctl("zone-sign %s" % zone[0].name, wait=True) # check that signing still works after restore +serial = server.zone_wait(zone, serial) + +server.flush(zone[0], wait=True) +server.zone_verify(zone[0]) + +t.end() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 8a8bde2da5..1e1f4710ab 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -45,6 +45,7 @@ def __init__(self): self.validate = None self.disable = None # create the policy in config, but set dnssec-signing: off self.manual = None + self.keystores = [] self.single_type_signing = None self.alg = None self.ksk_size = None @@ -1786,6 +1787,20 @@ def get_config(self): if have_dnskeysync: s.end() + have_keystore = False + for zone in sorted(self.zones): + z = self.zones[zone] + if not z.dnssec.keystores: + continue + if not have_keystore: + s.begin("keystore") + have_keystore = True + for ks in z.dnssec.keystores: + s.id_item("id", ks) + s.item("config", ks) + if have_keystore: + s.end() + have_policy = False for zone in sorted(self.zones): z = self.zones[zone] @@ -1801,6 +1816,8 @@ def get_config(self): s.id_item("id", z.name) self._bool(s, "manual", z.dnssec.manual) self._bool(s, "single-type-signing", z.dnssec.single_type_signing) + if z.dnssec.keystores: + s.item("keystore", "[ %s ]" % ", ".join(z.dnssec.keystores)) self._str(s, "algorithm", z.dnssec.alg) self._str(s, "ksk-size", z.dnssec.ksk_size) self._str(s, "zsk-size", z.dnssec.zsk_size) From 34cb1aef7c5e3401f8af0add13b7b560f4e5022f Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 28 May 2025 14:57:19 +0200 Subject: [PATCH 005/675] dnssec/multi-keystore: implemented ksk-only keystore... ...so that KSKs and ZSKs can be in distinct keystores --- doc/operation.rst | 40 ++++++++++++++++ doc/reference.rst | 15 +++++- src/knot/conf/schema.c | 1 + src/knot/conf/schema.h | 1 + src/knot/dnssec/kasp/kasp_zone.c | 2 + src/knot/dnssec/kasp/policy.h | 1 + src/knot/dnssec/zone-keys.c | 30 +++++++++--- src/knot/dnssec/zone-keys.h | 10 ++++ src/libknot/errcode.h | 1 + src/libknot/error.c | 1 + src/utils/keymgr/functions.c | 31 ++++++++++-- ...29a00d5dceefdcbbf7b8a3cdf61fe944c51d6f.pem | 6 +++ ...4d4240398f459f59f4a99cd4c5b658c9a62d54.pem | 6 +++ .../keystores/data/Kcatalog.+013+07147.key | 7 +++ .../data/Kcatalog.+013+07147.private | 8 ++++ .../keystores/data/Kcatalog.+013+18635.key | 7 +++ .../data/Kcatalog.+013+18635.private | 8 ++++ tests-extra/tests/dnssec/keystores/test.py | 48 +++++++++++++++++++ tests-extra/tools/dnstest/server.py | 2 + 19 files changed, 214 insertions(+), 11 deletions(-) create mode 100644 tests-extra/tests/dnssec/keystores/data/8329a00d5dceefdcbbf7b8a3cdf61fe944c51d6f.pem create mode 100644 tests-extra/tests/dnssec/keystores/data/894d4240398f459f59f4a99cd4c5b658c9a62d54.pem create mode 100644 tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+07147.key create mode 100644 tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+07147.private create mode 100644 tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+18635.key create mode 100644 tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+18635.private diff --git a/doc/operation.rst b/doc/operation.rst index 5d5c6d50e4..8a2b6d8fd2 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -1214,6 +1214,46 @@ or module used for communication with the HSM. --write-object c4eae5dea3ee8c15395680085c515f2ad41941b6.pub.der --type pubkey \ --usage-sign --id c4eae5dea3ee8c15395680085c515f2ad41941b6 +.. _DNSSEC multiple keystores: + +DNSSEC multiple keystores +========================= + +Private keys for signing a single zone can be stored in more than one keystore +with two main use-cases: + +Keystore migration +------------------ + +Some keystores (HSMs) do not allow exporting private key material, so it is not +possible to migrate away from them by copying the private keys to a new keystore +(another HSM or a directory with PEM files). In such cases, the migration must +be performed by key rollover(s), where new keys are generated in the target +keystore, while the old keys remain in the original one and are eventually +retired and removed. + +During the transition period (i.e. rollovers), both keystores must be +configured simultaneously. This is achieved by configuring them both in the +:ref:`keystore section` and referencing them in the :ref:`policy_keystore` +option in :ref:`policy section`. The order matters: new keys are generated +in the first referenced keystore, so in this case, the target keystore must be +listed first. + +KSK more secured than ZSK +------------------------- + +When desirable, the Key Signing Key (KSK) can be stored in an HSM, while the Zone +Signing Key (ZSK) is kept in a simple PEM file. This enhances the security of +the KSK while preserving zone signing performance (as HSM signing operations are +usually much slower). + +To achieve this, both keystores must be configured in the +:ref:`keystore section`, while the PKCS#11 keystore (the HSM) has the +:ref:`keystore_ksk-only` option enabled and being listed first in the +:ref:`policy_keystore` option in :ref:`policy section`. With this configuration, +new KSKs are generated in the HSM, while ZSKs are generated in the second +keystore. + .. _Controlling a running daemon: Daemon controls diff --git a/doc/reference.rst b/doc/reference.rst index d660293d63..19f0d47091 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -1347,6 +1347,7 @@ DNSSEC keystore configuration. - id: STR backend: pem | pkcs11 config: STR + ksk-only: BOOL key-label: BOOL .. _keystore_id: @@ -1388,6 +1389,16 @@ The PKCS #11 URI Scheme is defined in :rfc:`7512`. *Default:* :ref:`kasp-db`\ ``/keys`` +.. _keystore_ksk-only: + +ksk-only +-------- + +Newly generated keys sre stored in this keystore only if they are KSKs or CSKs. +Zone signing keys will be stored in subsequent keystore without this option enabled. + +*Default:* ``off`` + .. _keystore_key-label: key-label @@ -2056,7 +2067,9 @@ A :ref:`reference` to a keystore holding private key material for zones. If multiple keystores are specified, private keys for signing are looked up in -all of them. But newly generated keys are stored in the first one in the specified order. +all of them. But newly generated keys are stored in the first one (or in the +first one without enabled :ref:`keystore_ksk-only` in the case of a new ZSK) +in the specified order. .. NOTE:: If multiple keystores are configured and a zone is being restored diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 1db67b716f..0c4e8e954d 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -321,6 +321,7 @@ static const yp_item_t desc_keystore[] = { { C_BACKEND, YP_TOPT, YP_VOPT = { keystore_backends, KEYSTORE_BACKEND_PEM }, CONF_IO_FRLD_ZONES }, { C_CONFIG, YP_TSTR, YP_VSTR = { "keys" }, CONF_IO_FRLD_ZONES }, + { C_KSK_ONLY, YP_TBOOL, YP_VNONE }, { C_KEY_LABEL, YP_TBOOL, YP_VNONE }, { C_COMMENT, YP_TSTR, YP_VNONE }, { NULL } diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 87984df91a..9ba63f542d 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -81,6 +81,7 @@ #define C_KEY_FILE "\x08""key-file" #define C_KEY_LABEL "\x09""key-label" #define C_KSK_LIFETIME "\x0C""ksk-lifetime" +#define C_KSK_ONLY "\x08""ksk-only" #define C_KSK_SBM "\x0E""ksk-submission" #define C_KSK_SHARED "\x0a""ksk-shared" #define C_KSK_SIZE "\x08""ksk-size" diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index 808c2c663a..390bc3c3f2 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -351,6 +351,8 @@ int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore conf_val_t val = conf_id_get(conf, C_KEYSTORE, C_BACKEND, keystore_id); ks->backend = conf_opt(&val); + val = conf_id_get(conf, C_KEYSTORE, C_KSK_ONLY, keystore_id); + ks->ksk_only = conf_bool(&val); val = conf_id_get(conf, C_KEYSTORE, C_KEY_LABEL, keystore_id); ks->key_label = conf_bool(&val); ks->count = ks_count; diff --git a/src/knot/dnssec/kasp/policy.h b/src/knot/dnssec/kasp/policy.h index 7f9db32609..f7bc932306 100644 --- a/src/knot/dnssec/kasp/policy.h +++ b/src/knot/dnssec/kasp/policy.h @@ -57,6 +57,7 @@ typedef struct { typedef struct { dnssec_keystore_t *keystore; unsigned backend; + bool ksk_only; bool key_label; size_t count; /*!< Number of keystores configured. */ } knot_kasp_keystore_t; diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 2a4b305e31..779386c033 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -96,6 +96,7 @@ static bool keytag_in_use(kdnssec_ctx_t *ctx, uint16_t keytag) #define GENERATE_KEYTAG_ATTEMPTS (40) static int generate_keytag_unconflict(kdnssec_ctx_t *ctx, + knot_kasp_keystore_t *keystore, kdnssec_generate_flags_t flags, char **id, dnssec_key_t **key) @@ -106,17 +107,15 @@ static int generate_keytag_unconflict(kdnssec_ctx_t *ctx, const char *label = NULL; char label_buf[sizeof(knot_dname_txt_storage_t) + 16]; - if (ctx->keystores[0].key_label && + if (keystore->key_label && knot_dname_to_str(label_buf, ctx->zone->dname, sizeof(label_buf)) != NULL) { const char *key_type = (flags & DNSKEY_GENERATE_KSK) ? " KSK" : " ZSK" ; strlcat(label_buf, key_type, sizeof(label_buf)); label = label_buf; } - assert(ctx->keystores != NULL && ctx->keystores[0].count > 0 && ctx->keystores[0].keystore != NULL); - for (size_t i = 0; i < GENERATE_KEYTAG_ATTEMPTS; i++) { - int ret = generate_dnssec_key(ctx->keystores[0].keystore, ctx->zone->dname, label, + int ret = generate_dnssec_key(keystore->keystore, ctx->zone->dname, label, ctx->policy->algorithm, size, flags, id, key); if (ret != KNOT_EOK) { @@ -128,7 +127,7 @@ static int generate_keytag_unconflict(kdnssec_ctx_t *ctx, return KNOT_EOK; } - (void)dnssec_keystore_remove(ctx->keystores[0].keystore, *id); + (void)dnssec_keystore_remove(keystore->keystore, *id); dnssec_key_free(*key); free(*id); } @@ -153,7 +152,14 @@ int kdnssec_generate_key(kdnssec_ctx_t *ctx, kdnssec_generate_flags_t flags, char *id = NULL; dnssec_key_t *dnskey = NULL; - int r = generate_keytag_unconflict(ctx, flags, &id, &dnskey); + assert(ctx->keystores != NULL && ctx->keystores[0].count > 0 && ctx->keystores[0].keystore != NULL); + + knot_kasp_keystore_t *keystore = knot_store_for_key(ctx->keystores, (flags & DNSKEY_GENERATE_KSK)); + if (keystore == NULL) { + return KNOT_DNSSEC_ENOKEYSTORE; + } + + int r = generate_keytag_unconflict(ctx, keystore, flags, &id, &dnskey); if (r != KNOT_EOK) { return r; } @@ -174,7 +180,7 @@ int kdnssec_generate_key(kdnssec_ctx_t *ctx, kdnssec_generate_flags_t flags, r = kasp_zone_append(ctx->zone, key); free(key); if (r != KNOT_EOK) { - (void)dnssec_keystore_remove(ctx->keystores[0].keystore, id); + (void)dnssec_keystore_remove(keystore->keystore, id); dnssec_key_free(dnskey); free(id); return r; @@ -466,6 +472,16 @@ int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, return ret; } +knot_kasp_keystore_t *knot_store_for_key(knot_kasp_keystore_t *keystores, bool ksk) +{ + for (size_t i = 0; i < keystores[0].count; i++) { + if (ksk || !keystores[i].ksk_only) { + return &keystores[i]; + } + } + return NULL; +} + /*! * \brief Load private keys for active keys. */ diff --git a/src/knot/dnssec/zone-keys.h b/src/knot/dnssec/zone-keys.h index 0474d527fd..cca60ed3af 100644 --- a/src/knot/dnssec/zone-keys.h +++ b/src/knot/dnssec/zone-keys.h @@ -125,6 +125,16 @@ int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr); int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, dnssec_key_t *key, unsigned *backend); +/*! + * \brief Find configured keystore for newly generated key. + * + * \param keystores Array of keystores. + * \param ksk If the generated key is a KSK or CSK. + * + * \return Suitable keystore or NULL. + */ +knot_kasp_keystore_t *knot_store_for_key(knot_kasp_keystore_t *keystores, bool ksk); + /*! * \brief Load zone keys and init cryptographic context. * diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index c9b0719892..6c789f3605 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -164,6 +164,7 @@ enum knot_error { KNOT_NO_READY_KEY, KNOT_ESOON_EXPIRE, KNOT_DNSSEC_ENOKEY, + KNOT_DNSSEC_ENOKEYSTORE, KNOT_DNSSEC_EMISSINGKEYTYPE, KNOT_DNSSEC_ENOSIG, KNOT_DNSSEC_ENONSEC, diff --git a/src/libknot/error.c b/src/libknot/error.c index f1eb1f0087..21f34a246c 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -163,6 +163,7 @@ static const struct error errors[] = { { KNOT_NO_READY_KEY, "no key ready for submission" }, { KNOT_ESOON_EXPIRE, "oncoming RRSIG expiration" }, { KNOT_DNSSEC_ENOKEY, "no keys for signing" }, + { KNOT_DNSSEC_ENOKEYSTORE, "no suitable keystore" }, { KNOT_DNSSEC_EMISSINGKEYTYPE, "missing active KSK or ZSK" }, { KNOT_DNSSEC_ENOSIG, "no valid signature for a record" }, { KNOT_DNSSEC_ENONSEC, "missing NSEC(3) record" }, diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 760114e67d..9f2cfac759 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -181,6 +181,16 @@ static bool genkeyargs(int argc, char *argv[], bool just_timing, return true; } +static bool genkeyargs_ksk(int argc, char *argv[]) +{ + for (int i = 0; i < argc; i++) { + if (same_command(argv[i], "ksk=", true) && str2bool(argv[i] + 4)) { + return true; + } + } + return false; +} + static bool _check_lower(knot_time_t a, knot_time_t b, const char *a_name, const char *b_name) { @@ -394,6 +404,13 @@ int keymgr_import_bind(kdnssec_ctx_t *ctx, const char *import_file, bool pub_onl if (!pub_only) { bind_privkey_t bpriv = { .time_publish = ctx->now, .time_activate = ctx->now }; + knot_kasp_keystore_t *keystore = knot_store_for_key(ctx->keystores, + (dnssec_key_get_flags(key) == DNSKEY_FLAGS_KSK)); + if (keystore == NULL) { + ret = KNOT_DNSSEC_ENOKEYSTORE; + goto fail; + } + char *privname = gen_keyfilename(import_file, ".private", ".key"); if (privname == NULL) { goto fail; @@ -416,7 +433,7 @@ int keymgr_import_bind(kdnssec_ctx_t *ctx, const char *import_file, bool pub_onl bind_privkey_free(&bpriv); - ret = dnssec_keystore_import(ctx->keystores[0].keystore, &pem, &keyid); + ret = dnssec_keystore_import(keystore->keystore, &pem, &keyid); dnssec_binary_free(&pem); if (ret != DNSSEC_EOK) { goto fail; @@ -485,6 +502,12 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, return KNOT_EINVAL; } + knot_kasp_keystore_t *keystore = knot_store_for_key(ctx->keystores, + (flags & DNSKEY_GENERATE_KSK)); + if (keystore == NULL) { + return KNOT_DNSSEC_ENOKEYSTORE; + } + int ret = check_timers(&timing); if (ret != KNOT_EOK) { return ret; @@ -536,7 +559,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, } // put pem to keystore - ret = dnssec_keystore_import(ctx->keystores[0].keystore, &pem, &keyid); + ret = dnssec_keystore_import(keystore->keystore, &pem, &keyid); dnssec_binary_free(&pem); if (ret != DNSSEC_EOK) { err_import_key(keyid, param); @@ -606,7 +629,9 @@ int keymgr_import_pkcs11(kdnssec_ctx_t *ctx, char *key_id, int argc, char *argv[ return DNSSEC_INVALID_KEY_ID; } - if (ctx->keystores[0].backend != KEYSTORE_BACKEND_PKCS11) { + knot_kasp_keystore_t *keystore = knot_store_for_key(ctx->keystores, genkeyargs_ksk(argc, argv)); + + if (keystore == NULL || keystore->backend != KEYSTORE_BACKEND_PKCS11) { knot_dname_txt_storage_t dname_str; (void)knot_dname_to_str(dname_str, ctx->zone->dname, sizeof(dname_str)); ERR2("not a PKCS #11 keystore for zone %s", dname_str); diff --git a/tests-extra/tests/dnssec/keystores/data/8329a00d5dceefdcbbf7b8a3cdf61fe944c51d6f.pem b/tests-extra/tests/dnssec/keystores/data/8329a00d5dceefdcbbf7b8a3cdf61fe944c51d6f.pem new file mode 100644 index 0000000000..7572a1e61f --- /dev/null +++ b/tests-extra/tests/dnssec/keystores/data/8329a00d5dceefdcbbf7b8a3cdf61fe944c51d6f.pem @@ -0,0 +1,6 @@ +-----BEGIN PRIVATE KEY----- +MIGUAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHoweAIBAQQhANLVbiBJW8syA61m +PXESOpWImE9PhzBJqvL2BEADJMdMoAoGCCqGSM49AwEHoUQDQgAE4b3dkmeulAJz +HtMK9QLoNSYn0CnHhkEG22QhMBJNnmV33wdAiqEsOEYd0b6sRhfrrzVWkIqLJ7S5 +jT7y+PgAGw== +-----END PRIVATE KEY----- diff --git a/tests-extra/tests/dnssec/keystores/data/894d4240398f459f59f4a99cd4c5b658c9a62d54.pem b/tests-extra/tests/dnssec/keystores/data/894d4240398f459f59f4a99cd4c5b658c9a62d54.pem new file mode 100644 index 0000000000..5c197d8336 --- /dev/null +++ b/tests-extra/tests/dnssec/keystores/data/894d4240398f459f59f4a99cd4c5b658c9a62d54.pem @@ -0,0 +1,6 @@ +-----BEGIN PRIVATE KEY----- +MIGUAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHoweAIBAQQhAPL+7ZuUTW7+KnAS +AofVmmtuWVwMfMaa7ja+hEmZhrZIoAoGCCqGSM49AwEHoUQDQgAEeZIL+RsErvtI +2M8V6ZITPaeCY0bkhbtVdkHOvVKe0hjyN9E2F7TY+x9dbwDbHVnUFxufLW0VxSUM +tNHhp5BEkA== +-----END PRIVATE KEY----- diff --git a/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+07147.key b/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+07147.key new file mode 100644 index 0000000000..46bc5890ce --- /dev/null +++ b/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+07147.key @@ -0,0 +1,7 @@ +; This is a zone-signing key, keyid 7147, for catalog. +; Created: 20250529114250 (Thu May 29 13:42:50 2025) +; Publish: 20250529114250 (Thu May 29 13:42:50 2025) +; Activate: 20250529114250 (Thu May 29 13:42:50 2025) +; Inactive: 20450524114250 (Wed May 24 13:42:50 2045) +; Delete: 20450524114250 (Wed May 24 13:42:50 2045) +catalog. IN DNSKEY 256 3 13 xWrgaMrU3QPNYuXDsvMjv3paMHZ+9JwT08oP3E6hg2X7CCkNGz8YDUh/ hxRO0h3q99HhDvInTU2VokCsL9QSpg== diff --git a/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+07147.private b/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+07147.private new file mode 100644 index 0000000000..d2d8c4aa30 --- /dev/null +++ b/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+07147.private @@ -0,0 +1,8 @@ +Private-key-format: v1.3 +Algorithm: 13 (ECDSAP256SHA256) +PrivateKey: L9SQtoHKL+YqpsXhZu0spCmKtxopxRPU3e2RW48BcKY= +Created: 20250529114250 +Publish: 20250529114250 +Activate: 20250529114250 +Inactive: 20450524114250 +Delete: 20450524114250 diff --git a/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+18635.key b/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+18635.key new file mode 100644 index 0000000000..0b724614cf --- /dev/null +++ b/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+18635.key @@ -0,0 +1,7 @@ +; This is a key-signing key, keyid 18635, for catalog. +; Created: 20250529114244 (Thu May 29 13:42:44 2025) +; Publish: 20250529114244 (Thu May 29 13:42:44 2025) +; Activate: 20250529114244 (Thu May 29 13:42:44 2025) +; Inactive: 20450524114244 (Wed May 24 13:42:44 2045) +; Delete: 20450524114244 (Wed May 24 13:42:44 2045) +catalog. IN DNSKEY 257 3 13 4Eaujq8zZyDhYj9P+8b2o7I02hjwcNGrBGqzHFOnPJO6W4ex5biUKuEr M1m7RTw6ZBiBgYqXMvDSplrBeuLi6A== diff --git a/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+18635.private b/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+18635.private new file mode 100644 index 0000000000..a9a8284737 --- /dev/null +++ b/tests-extra/tests/dnssec/keystores/data/Kcatalog.+013+18635.private @@ -0,0 +1,8 @@ +Private-key-format: v1.3 +Algorithm: 13 (ECDSAP256SHA256) +PrivateKey: PZuKAv38zUt4g13PAtTK7yWSdAv8FJA3QBGt6AlKdi8= +Created: 20250529114244 +Publish: 20250529114244 +Activate: 20250529114244 +Inactive: 20450524114244 +Delete: 20450524114244 diff --git a/tests-extra/tests/dnssec/keystores/test.py b/tests-extra/tests/dnssec/keystores/test.py index 664a399d95..4dea41dda0 100644 --- a/tests-extra/tests/dnssec/keystores/test.py +++ b/tests-extra/tests/dnssec/keystores/test.py @@ -61,4 +61,52 @@ def check_key_count(server, keystore, expected): server.flush(zone[0], wait=True) server.zone_verify(zone[0]) +server.dnssec(zone).keystores = [ "keys0ksk", "keys1", "keys2" ] +server.gen_confile() +server.reload() + +server.ctl("zone-key-rollover %s ksk" % zone[0].name) +serial = server.zone_wait(zone, serial) +check_key_count(server, "keys0ksk", 1) +check_key_count(server, "keys1", 0) +check_key_count(server, "keys2", 2) + +server.ctl("zone-ksk-submitted %s" % zone[0].name) +serial = server.zone_wait(zone, serial) +check_key_count(server, "keys0ksk", 1) +check_key_count(server, "keys1", 0) +check_key_count(server, "keys2", 1) + +server.ctl("zone-key-rollover %s zsk" % zone[0].name) +serial += 2 # wait for three increments which is whole ZSK rollover +serial = server.zone_wait(zone, serial) +check_key_count(server, "keys0ksk", 1) +check_key_count(server, "keys1", 1) +check_key_count(server, "keys2", 0) + +Keymgr.run_check(server.confile, zone[0].name, "generate", "ksk=yes") +check_key_count(server, "keys0ksk", 2) +check_key_count(server, "keys1", 1) + +Keymgr.run_check(server.confile, zone[0].name, "generate", "ksk=no") +check_key_count(server, "keys0ksk", 2) +check_key_count(server, "keys1", 2) + +Keymgr.run_check(server.confile, zone[0].name, "import-bind", os.path.join(t.data_dir, "Kcatalog.+013+07147.key")) +check_key_count(server, "keys0ksk", 2) +check_key_count(server, "keys1", 3) + +Keymgr.run_check(server.confile, zone[0].name, "import-bind", os.path.join(t.data_dir, "Kcatalog.+013+18635.key")) +check_key_count(server, "keys0ksk", 3) +check_key_count(server, "keys1", 3) + +Keymgr.run_check(server.confile, zone[0].name, "import-pem", os.path.join(t.data_dir, "8329a00d5dceefdcbbf7b8a3cdf61fe944c51d6f.pem"), "ksk=yes") +check_key_count(server, "keys0ksk", 4) +check_key_count(server, "keys1", 3) + +Keymgr.run_check(server.confile, zone[0].name, "import-pem", os.path.join(t.data_dir, "894d4240398f459f59f4a99cd4c5b658c9a62d54.pem"), "ksk=no") +check_key_count(server, "keys0ksk", 4) +check_key_count(server, "keys1", 4) +check_key_count(server, "keys2", 0) + t.end() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 1e1f4710ab..9fb5aedde1 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1798,6 +1798,8 @@ def get_config(self): for ks in z.dnssec.keystores: s.id_item("id", ks) s.item("config", ks) + if ks.endswith("ksk"): + s.item("ksk-only", "on") if have_keystore: s.end() From 803947eb401c937c32d15b64f8e3539443c42460 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 1 Jul 2025 08:10:13 +0200 Subject: [PATCH 006/675] keymgr: print keystore name and its type when listing keys --- src/knot/dnssec/kasp/kasp_zone.c | 1 + src/knot/dnssec/kasp/policy.h | 1 + src/knot/dnssec/zone-keys.c | 15 ++++++--- src/knot/dnssec/zone-keys.h | 3 +- src/knot/zone/backup.c | 2 +- src/utils/keymgr/functions.c | 56 ++++++++++++++++++++++---------- 6 files changed, 53 insertions(+), 25 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index 390bc3c3f2..e1cbe00e74 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -349,6 +349,7 @@ int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore for (size_t i = 0; i < ks_count && ret == KNOT_EOK; i++) { knot_kasp_keystore_t *ks = *keystores + i; + ks->name = conf_str(keystore_id); conf_val_t val = conf_id_get(conf, C_KEYSTORE, C_BACKEND, keystore_id); ks->backend = conf_opt(&val); val = conf_id_get(conf, C_KEYSTORE, C_KSK_ONLY, keystore_id); diff --git a/src/knot/dnssec/kasp/policy.h b/src/knot/dnssec/kasp/policy.h index f7bc932306..748065ec1e 100644 --- a/src/knot/dnssec/kasp/policy.h +++ b/src/knot/dnssec/kasp/policy.h @@ -56,6 +56,7 @@ typedef struct { typedef struct { dnssec_keystore_t *keystore; + const char *name; unsigned backend; bool ksk_only; bool key_label; diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 779386c033..4baa1e28c0 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -460,14 +460,19 @@ static int walk_algorithms(kdnssec_ctx_t *ctx, zone_keyset_t *keyset) } int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, - dnssec_key_t *key, unsigned *backend) + dnssec_key_t *key, const char **name, unsigned *backend) { int ret = DNSSEC_ENOENT; for (size_t i = 0; i < keystores[0].count && ret == DNSSEC_ENOENT; i++) { - if (backend != NULL) { - *backend = keystores[i].backend; - } ret = dnssec_keystore_get_private(keystores[i].keystore, id, key); + if (ret == KNOT_EOK) { + if (name != NULL) { + *name = keystores[i].name; + } + if (backend != NULL) { + *backend = keystores[i].backend; + } + } } return ret; } @@ -495,7 +500,7 @@ static int load_private_keys(kdnssec_ctx_t *ctx, zone_keyset_t *keyset) if (!key->is_active && !key->is_ksk_active_plus && !key->is_zsk_active_plus) { continue; } - int ret = kdnssec_load_private(ctx->keystores, key->id, key->key, NULL); + int ret = kdnssec_load_private(ctx->keystores, key->id, key->key, NULL, NULL); switch (ret) { case DNSSEC_EOK: case DNSSEC_KEY_ALREADY_PRESENT: diff --git a/src/knot/dnssec/zone-keys.h b/src/knot/dnssec/zone-keys.h index cca60ed3af..6aaac1075d 100644 --- a/src/knot/dnssec/zone-keys.h +++ b/src/knot/dnssec/zone-keys.h @@ -118,12 +118,13 @@ int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr); * \param keystores Array of keystores. * \param id Key ID to search. * \param key Libdnssec key structure to be filled with private material. + * \param name Optional: name of the keystore in the configuration. * \param backend Optional: backend of the keystore where found. * * \return DNSSEC_E* */ int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, - dnssec_key_t *key, unsigned *backend); + dnssec_key_t *key, const char **name, unsigned *backend); /*! * \brief Find configured keystore for newly generated key. diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index bb1a0d70f9..ca4a6eaece 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -235,7 +235,7 @@ static int backup_key(key_params_t *parm, const knot_dname_t *zname, } unsigned backend; - ret = kdnssec_load_private(from, parm->id, key, &backend); + ret = kdnssec_load_private(from, parm->id, key, NULL, &backend); if (ret == DNSSEC_EOK) { if (backend == KEYSTORE_BACKEND_PKCS11 || to_pem == NULL) { log_zone_notice(zname, "private keys from PKCS #11 are not subject of backup/restore, skipping them"); diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 9f2cfac759..2f27bce84b 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -583,7 +583,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, dnssec_key_set_algorithm(key, ctx->policy->algorithm); // fill key structure from keystore (incl. pubkey from privkey computation) - ret = kdnssec_load_private(ctx->keystores, keyid, key, NULL); + ret = kdnssec_load_private(ctx->keystores, keyid, key, NULL, NULL); if (ret != DNSSEC_EOK) { err_import_key(keyid, ""); goto fail; @@ -916,7 +916,16 @@ static const timer_ctx_t timers[] = { { NULL } }; -static void print_key_brief(const knot_kasp_key_t *key, bool missing, +typedef struct { + const char *ks_name; + size_t ks_count; + unsigned backend; + bool missing; +} key_info_t; + +#define KS_TYPE(info) (info->backend == KEYSTORE_BACKEND_PEM) ? "PEM" : "PKCS11" + +static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, keymgr_list_params_t *params) { const bool c = params->color; @@ -945,8 +954,10 @@ static void print_key_brief(const knot_kasp_key_t *key, bool missing, printf(" %s%spublic-only%s", COL_BOLD(c), COL_MGNT(c), COL_RST(c)); } - if (missing) { + if (info->missing) { printf(" %s%smissing%s", COL_BOLD(c), COL_YELW(c), COL_RST(c)); + } else if (info->ks_count > 1 && info->ks_name != NULL) { + printf(" %s%s/%s%s", COL_YELW(c), KS_TYPE(info), info->ks_name, COL_RST(c)); } static char buf[100]; @@ -972,14 +983,17 @@ static void print_key_brief(const knot_kasp_key_t *key, bool missing, printf("\n"); } -static void print_key_full(const knot_kasp_key_t *key, bool missing, +static void print_key_full(const knot_kasp_key_t *key, key_info_t *info, knot_time_print_t format) { printf("%s ksk=%s zsk=%s tag=%05d algorithm=%-2d size=%-4u public-only=%s", key->id, (key->is_ksk ? "yes" : "no "), (key->is_zsk ? "yes" : "no "), dnssec_key_get_keytag(key->key), (int)dnssec_key_get_algorithm(key->key), dnssec_key_get_size(key->key), (key->is_pub_only ? "yes" : "no ")); - printf(" missing=%s", missing ? "yes" : "no "); + printf(" missing=%s", info->missing ? "yes" : "no "); + if (info->ks_name != NULL) { + printf(" keystore=%s/%s", KS_TYPE(info), info->ks_name); + } static char buf[100]; for (const timer_ctx_t *t = &timers[0]; t->name != NULL; t++) { @@ -990,9 +1004,8 @@ static void print_key_full(const knot_kasp_key_t *key, bool missing, printf("\n"); } -static void print_key_json(const knot_kasp_key_t *key, bool missing, - knot_time_print_t format, - jsonw_t *w, const char *zone_name) +static void print_key_json(const knot_kasp_key_t *key, key_info_t *info, + knot_time_print_t format, jsonw_t *w, const char *zone_name) { jsonw_str(w, "zone", zone_name); jsonw_str(w, "id", key->id); @@ -1002,7 +1015,11 @@ static void print_key_json(const knot_kasp_key_t *key, bool missing, jsonw_ulong(w, "algorithm", dnssec_key_get_algorithm(key->key)); jsonw_int(w, "size", dnssec_key_get_size(key->key)); jsonw_bool(w, "public-only", key->is_pub_only); - jsonw_bool(w, "missing", missing); + jsonw_bool(w, "missing", info->missing); + if (info->ks_name != NULL) { + jsonw_str(w, "keystore", info->ks_name); + jsonw_str(w, "backend", KS_TYPE(info)); + } static char buf[100]; for (const timer_ctx_t *t = &timers[0]; t->name != NULL; t++) { @@ -1029,10 +1046,13 @@ static int key_sort(const void *a, const void *b) return knot_time_cmp(key_a->val, key_b->val); } -static bool key_missing(kdnssec_ctx_t *ctx, const knot_kasp_key_t *key) +static key_info_t key_missing(kdnssec_ctx_t *ctx, const knot_kasp_key_t *key) { - return !key->is_pub_only && DNSSEC_EOK != - kdnssec_load_private(ctx->keystores, key->id, key->key, NULL); + key_info_t out = { .ks_count = ctx->keystores[0].count }; + out.missing = !key->is_pub_only && + DNSSEC_EOK != kdnssec_load_private(ctx->keystores, key->id, + key->key, &out.ks_name, &out.backend); + return out; } int keymgr_list_keys(kdnssec_ctx_t *ctx, keymgr_list_params_t *params) @@ -1044,8 +1064,8 @@ int keymgr_list_keys(kdnssec_ctx_t *ctx, keymgr_list_params_t *params) if (params->extended) { for (size_t i = 0; i < ctx->zone->num_keys; i++) { knot_kasp_key_t *key = &ctx->zone->keys[i]; - bool missing = key_missing(ctx, key); - print_key_full(key, missing, params->format); + key_info_t info = key_missing(ctx, key); + print_key_full(key, &info, params->format); } } else if (params->json) { jsonw_t *w = jsonw_new(stdout, " "); @@ -1060,8 +1080,8 @@ int keymgr_list_keys(kdnssec_ctx_t *ctx, keymgr_list_params_t *params) for (size_t i = 0; i < ctx->zone->num_keys; i++) { knot_kasp_key_t *key = &ctx->zone->keys[i]; jsonw_object(w, NULL); - bool missing = key_missing(ctx, key); - print_key_json(key, missing, params->format, w, name); + key_info_t info = key_missing(ctx, key); + print_key_json(key, &info, params->format, w, name); jsonw_end(w); // object } jsonw_end(w); // list @@ -1080,8 +1100,8 @@ int keymgr_list_keys(kdnssec_ctx_t *ctx, keymgr_list_params_t *params) qsort(&items, ctx->zone->num_keys, sizeof(items[0]), key_sort); for (size_t i = 0; i < ctx->zone->num_keys; i++) { knot_kasp_key_t *key = items[i].key; - bool missing = key_missing(ctx, key); - print_key_brief(key, missing, params); + key_info_t info = key_missing(ctx, key); + print_key_brief(key, &info, params); } } return KNOT_EOK; From f678afc03d6a8df308963d352bc37b78098f2fc8 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 2 Jul 2025 12:06:45 +0200 Subject: [PATCH 007/675] tests-extra: improve stability of dnssec/keystores --- tests-extra/tests/dnssec/keystores/test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests-extra/tests/dnssec/keystores/test.py b/tests-extra/tests/dnssec/keystores/test.py index 4dea41dda0..7f93f37708 100644 --- a/tests-extra/tests/dnssec/keystores/test.py +++ b/tests-extra/tests/dnssec/keystores/test.py @@ -66,6 +66,7 @@ def check_key_count(server, keystore, expected): server.reload() server.ctl("zone-key-rollover %s ksk" % zone[0].name) +serial += 1 # wait for two increments serial = server.zone_wait(zone, serial) check_key_count(server, "keys0ksk", 1) check_key_count(server, "keys1", 0) From 6d628be65514bd7a79fafe9945dc8bc39cb1d303 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 7 Jul 2025 11:29:26 +0200 Subject: [PATCH 008/675] doc/operation: update the XDP section to TCP and QUIC protocols --- doc/operation.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/operation.rst b/doc/operation.rst index 8a2b6d8fd2..4ec2fa8cce 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -1449,15 +1449,15 @@ Mode XDP ======== Thanks to recent Linux kernel capabilities, namely eXpress Data Path and AF_XDP -address family, Knot DNS offers a high-performance DNS over UDP packet processing -mode. The basic idea is to filter DNS messages close to the network device and -effectively forward them to the nameserver without touching the network stack -of the operating system. Other messages (including DNS over TCP) are processed -as usual. - -If :ref:`xdp_listen` is configured, the server creates -additional XDP workers, listening on specified interface(s) and port(s) for DNS -over UDP queries. Each XDP worker handles one RX and TX network queue pair. +address family, Knot DNS offers a high-performance packet processing mode for +UDP, TCP, and QUIC protocols. The basic idea is to filter DNS messages close to +the network device and effectively forward them to the nameserver without touching +the network stack of the operating system. Messages in protocols, for which XDP +hasn't been enbled, are processed as usual. + +If :ref:`xdp_listen` is configured, the server creates additional XDP workers, +listening on specified interface(s) and port(s) for DNS queries. Each XDP worker +handles one RX and TX network queue pair. .. _Mode XDP_pre-requisites: From 8c59b46adba460ea590e8c199814405e8a799407 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 26 Jun 2025 18:18:37 +0200 Subject: [PATCH 009/675] conf: rework notify-delay to be more practical and consistent with Bind --- doc/reference.rst | 5 ++--- src/knot/ctl/commands.c | 2 +- src/knot/events/handlers/dnssec.c | 2 +- src/knot/events/handlers/load.c | 6 +----- src/knot/events/handlers/refresh.c | 2 +- src/knot/events/handlers/update.c | 2 +- src/knot/zone/zone.c | 6 ++++-- src/knot/zone/zone.h | 2 +- tests-extra/tools/dnstest/server.py | 2 +- 9 files changed, 13 insertions(+), 16 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 19f0d47091..14b3a057d9 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2739,9 +2739,8 @@ Empty value is allowed for template value overriding. notify-delay ------------ -The time delay in seconds before an outgoing NOTIFY message is sent upon loading -a new zone (e.g. to ensure that secondaries have enough time to adjust their catalogues). -Set to -1 to prevent sending NOTIFY messages in this context. +A time delay in seconds before an outgoing NOTIFY message is sent. This delay +also defines the time granularity at which NOTIFY messages are sent per zone. *Default:* ``0`` diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 8b9d42c602..abb55e095f 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -988,7 +988,7 @@ static int zone_txn_commit_l(zone_t *zone, _unused_ ctl_args_t *args) free(zone->control_update); zone->control_update = NULL; - zone_schedule_notify(zone, 0); + zone_schedule_notify(conf(), zone, 0); return KNOT_EOK; } diff --git a/src/knot/events/handlers/dnssec.c b/src/knot/events/handlers/dnssec.c index d669d1e237..f8108b417b 100644 --- a/src/knot/events/handlers/dnssec.c +++ b/src/knot/events/handlers/dnssec.c @@ -50,7 +50,7 @@ void event_dnssec_reschedule(conf_t *conf, zone_t *zone, ZONE_EVENT_DNSKEY_SYNC, refresh->plan_dnskey_sync ? now + jitter : ignore ); if (zone_changed) { - zone_schedule_notify(zone, 0); + zone_schedule_notify(conf, zone, 0); } } diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 941380fe12..54b29ba163 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -416,11 +416,7 @@ int event_load(conf_t *conf, zone_t *zone) replan_from_timers(conf, zone); if (!zone_timers_serial_notified(&zone->timers, new_serial)) { - val = conf_zone_get(conf, C_NOTIFY_DELAY, zone->name); - int64_t delay = conf_int(&val); - if (delay >= 0) { - zone_schedule_notify(zone, delay); - } + zone_schedule_notify(conf, zone, 0); } zone_skip_free(&skip); diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 5fc6f04b99..e633cffd47 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -1492,7 +1492,7 @@ int event_refresh(conf_t *conf, zone_t *zone) /* Reschedule events. */ replan_from_timers(conf, zone); if (trctx.send_notify) { - zone_schedule_notify(zone, 1); + zone_schedule_notify(conf, zone, 1); } if (trctx.more_xfr && ret == KNOT_EOK) { zone_events_schedule_now(zone, ZONE_EVENT_REFRESH); diff --git a/src/knot/events/handlers/update.c b/src/knot/events/handlers/update.c index 287369d93f..9e08984ebf 100644 --- a/src/knot/events/handlers/update.c +++ b/src/knot/events/handlers/update.c @@ -256,7 +256,7 @@ static void process_requests(conf_t *conf, zone_t *zone, list_t *requests) "%.02f seconds", old_serial, new_serial, time_diff_ms(&t_start, &t_end) / 1000.0); - zone_schedule_notify(zone, 1); + zone_schedule_notify(conf, zone, 1); } static int remote_forward(conf_t *conf, knot_request_t *request, conf_remote_t *remote, diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 2b3d8f0360..5819c4d5c8 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -465,10 +465,12 @@ void zone_notifailed_clear(zone_t *zone) pthread_mutex_unlock(&zone->preferred_lock); } -void zone_schedule_notify(zone_t *zone, time_t delay) +void zone_schedule_notify(conf_t *conf, zone_t *zone, time_t delay) { + conf_val_t val = conf_zone_get(conf, C_NOTIFY_DELAY, zone->name); + int64_t conf_delay = conf_int(&val); zone_notifailed_clear(zone); - zone_events_schedule_at(zone, ZONE_EVENT_NOTIFY, time(NULL) + delay); + zone_events_schedule_at(zone, ZONE_EVENT_NOTIFY, time(NULL) + conf_delay + delay); } zone_contents_t *zone_switch_contents(zone_t *zone, zone_contents_t *new_contents) diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index c366d4aeab..b5792cfdb6 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -215,7 +215,7 @@ bool zone_journal_has_zij(zone_t *zone); * \brief Clear failed_notify list before planning new NOTIFY. */ void zone_notifailed_clear(zone_t *zone); -void zone_schedule_notify(zone_t *zone, time_t delay); +void zone_schedule_notify(conf_t *conf, zone_t *zone, time_t delay); /*! * \brief Atomically switch the content of the zone. diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 9fb5aedde1..7f778e0acb 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1869,7 +1869,7 @@ def get_config(self): s.item_str("storage", self.dir) s.item_str("zonefile-sync", self.zonefile_sync) if self.notify_delay is None: - self.notify_delay = random.randint(0, 2) + self.notify_delay = random.randint(0, 1) s.item_str("notify-delay", self.notify_delay) if self.zonemd_verify: s.item_str("zonemd-verify", "on") From 749d3cde96bea8a49b2e181ce403fcce19848d50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 14 Jul 2025 18:37:37 +0200 Subject: [PATCH 010/675] tests-extra: dnssec/dnskey_sync -- avoid infinite loop --- tests-extra/tests/dnssec/dnskey_sync/test.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tests-extra/tests/dnssec/dnskey_sync/test.py b/tests-extra/tests/dnssec/dnskey_sync/test.py index 5ac7af3314..412d4d29a6 100644 --- a/tests-extra/tests/dnssec/dnskey_sync/test.py +++ b/tests-extra/tests/dnssec/dnskey_sync/test.py @@ -40,10 +40,16 @@ def detect_ddns_deadlock(server): return True return False -def check_same_dnskey(server1, server2, server3, tst): - while detect_ddns_deadlock(server1) or detect_ddns_deadlock(server2) or \ - (SIGNERS3 and detect_ddns_deadlock(server3)): - tst.sleep(6) +def check_same_dnskey(server1, server2, server3, tst, tries=20): + for i in range(tries): + if not detect_ddns_deadlock(server1) and \ + not detect_ddns_deadlock(server2) and \ + not (SIGNERS3 and detect_ddns_deadlock(server3)): + break + if i < tries - 1: + tst.sleep(6) + else: + set_err("DNSKEY sync has not converged yet") dnskey1 = server1.dig(zone[0].name, "DNSKEY", udp=False) dnskey2 = server2.dig(zone[0].name, "DNSKEY", udp=False) From 4a4337af8e8e9199fb3c76e32bed48f921439dcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Thu, 17 Jul 2025 11:19:51 +0200 Subject: [PATCH 011/675] knot: skip empty timers at lmdb key --- src/knot/journal/knot_lmdb.c | 17 +++++++++++++++++ src/knot/journal/knot_lmdb.h | 1 + src/knot/zone/timers.c | 4 ++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/knot/journal/knot_lmdb.c b/src/knot/journal/knot_lmdb.c index 07f6ebd4b3..1e4ad5861a 100644 --- a/src/knot/journal/knot_lmdb.c +++ b/src/knot/journal/knot_lmdb.c @@ -586,7 +586,9 @@ static bool make_key_part(void *key_data, size_t key_len, const char *format, va const char *tmp_s; const knot_dname_t *tmp_d; const void *tmp_v; + uint64_t tmp_u64; size_t tmp; + int tmp_i; for (const char *f = format; *f != '\0'; f++) { switch (*f) { @@ -615,6 +617,14 @@ static bool make_key_part(void *key_data, size_t key_len, const char *format, va tmp = va_arg(arg, size_t); wire_ctx_write(&wire, tmp_v, tmp); break; + case 'T': + tmp_i = va_arg(arg, int); + tmp_u64 = va_arg(arg, uint64_t); + if (tmp_u64 > 0) { + wire_ctx_write_u8(&wire, tmp_i); + wire_ctx_write_u64(&wire, tmp_u64); + } + break; } } @@ -660,6 +670,13 @@ MDB_val knot_lmdb_make_key(const char *format, ...) (void)va_arg(arg, const void *); key.mv_size += va_arg(arg, size_t); break; + case 'T': + (void)va_arg(arg, int); // uint8_t will be promoted to int + if (va_arg(arg, uint64_t) > 0) { + key.mv_size += sizeof(uint8_t); + key.mv_size += sizeof(uint64_t); + } + break; } } va_end(arg); diff --git a/src/knot/journal/knot_lmdb.h b/src/knot/journal/knot_lmdb.h index f39b35e67b..7c4f65557c 100644 --- a/src/knot/journal/knot_lmdb.h +++ b/src/knot/journal/knot_lmdb.h @@ -398,6 +398,7 @@ size_t knot_lmdb_usage(knot_lmdb_txn_t *txn); * - S for zero-terminated string * - N for a domain name (in knot_dname_t* format) * - D for fixed-size data (takes two params: void* and size_t) + * - T for pair of byte prefix and 64bit timer (takes two params: uint8 and uint64) */ MDB_val knot_lmdb_make_key(const char *format, ...); diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index 65181e5a50..40e3414901 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -113,8 +113,8 @@ static void txn_write_timers(knot_lmdb_txn_t *txn, const knot_dname_t *zone, { const char *format = (timers->last_master.sin6_family == AF_INET || timers->last_master.sin6_family == AF_INET6) ? - "BLBLBLBLBLBLBLBLBLBLBD" : - "BLBLBLBLBLBLBLBLBL"; + "TTTTTTTTTTBD" : + "TTTTTTTTT"; MDB_val k = { knot_dname_size(zone), (void *)zone }; MDB_val v = knot_lmdb_make_key(format, From 0857cf0b2d9087ff76a4b15a4574f071f39deb72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 4 Jun 2025 13:44:36 +0200 Subject: [PATCH 012/675] zone: optimize preferred_master allocation --- src/knot/zone/zone.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 5819c4d5c8..f16ed6c546 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -503,8 +503,10 @@ void zone_set_preferred_master(zone_t *zone, const struct sockaddr_storage *addr } pthread_mutex_lock(&zone->preferred_lock); - free(zone->preferred_master); - zone->preferred_master = malloc(sizeof(*zone->preferred_master)); + if (zone->preferred_master == NULL) { + zone->preferred_master = malloc(sizeof(*zone->preferred_master)); + assert(zone->preferred_master != NULL); + } memcpy(zone->preferred_master, addr, sockaddr_len(addr)); pthread_mutex_unlock(&zone->preferred_lock); } From be1db77fb5e4553d163e944cb3ad92737b1a1e7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 14 Jul 2025 14:49:03 +0200 Subject: [PATCH 013/675] server: discriminate between server running and answering (add the ServerAnswering state) --- src/knot/server/server.c | 5 ++++- src/knot/server/server.h | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index f96331de1f..b88ba01717 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1027,7 +1027,7 @@ int server_start(server_t *server, bool async) evsched_start(&server->sched); /* Start I/O handlers. */ - server->state |= ServerRunning; + server->state |= ServerRunning | ServerAnswering; for (int proto = IO_UDP; proto <= IO_XDP; ++proto) { if (server->handlers[proto].size > 0) { int ret = dt_start(server->handlers[proto].handler.unit); @@ -1046,6 +1046,7 @@ void server_wait(server_t *server) return; } + assert(!(server->state & ServerRunning)); evsched_join(&server->sched); worker_pool_join(server->workers); @@ -1054,6 +1055,8 @@ void server_wait(server_t *server) server_free_handler(&server->handlers[proto].handler); } } + + server->state &= ~ServerAnswering; } static int reload_conf(conf_t *new_conf) diff --git a/src/knot/server/server.h b/src/knot/server/server.h index a6236b787f..bbe5d923c5 100644 --- a/src/knot/server/server.h +++ b/src/knot/server/server.h @@ -36,8 +36,9 @@ typedef struct { * \brief Server state flags. */ typedef enum { - ServerIdle = 0 << 0, /*!< Server is idle. */ - ServerRunning = 1 << 0, /*!< Server is running. */ + ServerIdle = 0 << 0, /*!< Server is idle. */ + ServerRunning = 1 << 0, /*!< Server is running. */ + ServerAnswering = 1 << 1, /*!< Server is answering queries. */ } server_state_t; /*! From b6fd803bbcf09614ec72e51ff17565b3925d5bb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 4 Jun 2025 15:51:53 +0200 Subject: [PATCH 014/675] server: allow separate start of answering --- src/knot/server/server.c | 53 ++++++++++++++++++++-------------------- src/knot/server/server.h | 17 ++++++++++--- 2 files changed, 40 insertions(+), 30 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index b88ba01717..9bf95c5a24 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -992,23 +992,32 @@ static void server_free_handler(iohandler_t *h) free(h->thread_id); } -static void worker_wait_cb(worker_pool_t *pool) +int server_start_answering(server_t *server) { - systemd_zone_load_timeout_notify(); - - static uint64_t last_ns = 0; - struct timespec now = time_now(); - uint64_t now_ns = 1000000000 * now.tv_sec + now.tv_nsec; - /* Too frequent worker_pool_status() call with many zones is expensive. */ - if (now_ns - last_ns > 1000000000) { - int running, queued; - worker_pool_status(pool, true, &running, &queued); - systemd_tasks_status_notify(running + queued); - last_ns = now_ns; + if (server == NULL) { + return KNOT_EINVAL; + } + + assert(server->state & ServerRunning); + if (server->state & ServerAnswering) { + return KNOT_EOK; + } + + log_info("server started"); + server->state |= ServerAnswering; + for (int proto = IO_UDP; proto <= IO_XDP; ++proto) { + if (server->handlers[proto].size > 0) { + int ret = dt_start(server->handlers[proto].handler.unit); + if (ret != KNOT_EOK) { + return ret; + } + } } + + return KNOT_EOK; } -int server_start(server_t *server, bool async) +int server_start(server_t *server, bool answering) { if (server == NULL) { return KNOT_EINVAL; @@ -1017,24 +1026,14 @@ int server_start(server_t *server, bool async) /* Start workers. */ worker_pool_start(server->workers); - /* Wait for enqueued events if not asynchronous. */ - if (!async) { - worker_pool_wait_cb(server->workers, worker_wait_cb); - systemd_tasks_status_notify(0); - } - /* Start evsched handler. */ evsched_start(&server->sched); + server->state |= ServerRunning; + /* Start I/O handlers. */ - server->state |= ServerRunning | ServerAnswering; - for (int proto = IO_UDP; proto <= IO_XDP; ++proto) { - if (server->handlers[proto].size > 0) { - int ret = dt_start(server->handlers[proto].handler.unit); - if (ret != KNOT_EOK) { - return ret; - } - } + if (answering) { + return server_start_answering(server); } return KNOT_EOK; diff --git a/src/knot/server/server.h b/src/knot/server/server.h index bbe5d923c5..6c7a50874e 100644 --- a/src/knot/server/server.h +++ b/src/knot/server/server.h @@ -146,17 +146,28 @@ int server_init(server_t *server, int bg_workers); */ void server_deinit(server_t *server); +/*! + * \brief Starts answering to requests alone + * (if not already started by server_start()), + * + * \param server Server structure to be used for operation. + * + * \retval Error code, KNOT_EOK on success. + * + */ +int server_start_answering(server_t *server); + /*! * \brief Starts the server. * - * \param server Server structure to be used for operation. - * \param async Don't wait for zones to load if true. + * \param server Server structure to be used for operation. + * \param answering Start answering to requests if true. * * \retval KNOT_EOK on success. * \retval KNOT_EINVAL on invalid parameters. * */ -int server_start(server_t *server, bool async); +int server_start(server_t *server, bool answering); /*! * \brief Waits for the server to finish. From 60d01eb363b2838b0756f5152f20d5c6ed14b16c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 5 Jun 2025 18:22:01 +0200 Subject: [PATCH 015/675] knotd: start ctl early in server bootstrap --- src/knot/events/handlers/load.c | 2 + src/knot/server/server.c | 4 ++ src/knot/zone/zone.h | 1 + src/knot/zone/zonedb-load.c | 1 + src/utils/knotd/main.c | 97 +++++++++++++++++++++++---------- 5 files changed, 76 insertions(+), 29 deletions(-) diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 54b29ba163..754267249c 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -419,6 +419,7 @@ int event_load(conf_t *conf, zone_t *zone) zone_schedule_notify(conf, zone, 0); } zone_skip_free(&skip); + zone->started = true; return KNOT_EOK; @@ -430,6 +431,7 @@ int event_load(conf_t *conf, zone_t *zone) zone_contents_deep_free(zf_conts); zone_contents_deep_free(journal_conts); zone_skip_free(&skip); + zone->started = true; return (dontcare_load_error(conf, zone) ? KNOT_EOK : ret); } diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 9bf95c5a24..b390cbdc2a 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1395,6 +1395,10 @@ int server_reload(server_t *server, reload_t mode) void server_stop(server_t *server) { + if (server == NULL || !(server->state & ServerRunning)) { + return; + } + log_info("stopping server"); systemd_stopping_notify(); diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index b5792cfdb6..5f7a156b32 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -77,6 +77,7 @@ typedef struct zone zone_contents_t *contents; zone_flag_t flags; bool is_catalog_flag; //!< Lock-less indication of ZONE_IS_CATALOG flag. + bool started; //!< Lock-less indication of a started zone. /*! \brief Dynamic configuration zone change type. */ conf_io_type_t change_type; diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index c023ad4fd1..d376b526ae 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -176,6 +176,7 @@ static zone_t *create_zone_new(conf_t *conf, const knot_dname_t *name, log_zone_info(zone->name, "zone will be bootstrapped"); assert(zone_is_slave(conf, zone)); replan_load_bootstrap(conf, zone); + zone->started = true; } else { log_zone_info(zone->name, "zone will be loaded"); // if load fails, fallback to bootstrap diff --git a/src/utils/knotd/main.c b/src/utils/knotd/main.c index 398d536d56..794a7d0bd1 100644 --- a/src/utils/knotd/main.c +++ b/src/utils/knotd/main.c @@ -116,42 +116,77 @@ static void drop_capabilities(void) #endif /* ENABLE_CAP_NG */ } -static void check_loaded(server_t *server) +static int check_loaded(server_t *server, bool async) { - static bool finished = false; - if (finished) { - return; + /* + * Started: all zones loaded or at least tried to load at least once, + * the server is already running and accepting queries. + * Loaded: all zones successfully loaded, it implies 'started', + * KNOT_BUS_EVENT_STARTED already emitted over DBus. + */ + static bool started = false; + static bool loaded = false; + assert(server->state & ServerRunning); + if (loaded) { + assert(server->state & ServerAnswering); + return KNOT_EOK; } /* Avoid traversing the zonedb too frequently. */ static struct timespec last = { 0 }; struct timespec now = time_now(); if (last.tv_sec == now.tv_sec) { - return; + return KNOT_EOK; } last = now; - if (!(conf()->cache.srv_dbus_event & DBUS_EVENT_RUNNING)) { - finished = true; - return; - } - + started = started || async; + bool start = true; + bool load = true; rcu_read_lock(); knot_zonedb_iter_t *it = knot_zonedb_iter_begin(server->zone_db); while (!knot_zonedb_iter_finished(it)) { zone_t *zone = (zone_t *)knot_zonedb_iter_val(it); - if (zone->contents == NULL) { - knot_zonedb_iter_free(it); - rcu_read_unlock(); - return; + if (zone->contents != NULL) { + knot_zonedb_iter_next(it); + continue; } + load = false; + if (started) { + break; + } else if (!zone->started) { + start = false; + break; + } + knot_zonedb_iter_next(it); } knot_zonedb_iter_free(it); rcu_read_unlock(); - finished = true; - dbus_emit_running(true); + if (!start) { + return KNOT_EOK; + } + if (!started) { + int ret = server_start_answering(server); + if (ret != KNOT_EOK) { + return ret; + } + started = true; + } + + assert(server->state & ServerAnswering); + if (!(conf()->cache.srv_dbus_event & DBUS_EVENT_RUNNING)) { + loaded = true; + return KNOT_EOK; + } + + if (load) { /* Not 'loaded' yet. */ + dbus_emit_running(true); + loaded = true; + } + + return KNOT_EOK; } static void deinit_ctls(knot_ctl_t **ctls, unsigned count) @@ -218,12 +253,12 @@ static knot_ctl_t **init_ctls(const char *socket) } /*! \brief Event loop listening for signals and remote commands. */ -static void event_loop(server_t *server, const char *socket, bool daemonize, - unsigned long pid) +static int event_loop(server_t *server, const char *socket, bool daemonize, + unsigned long pid, bool async) { knot_ctl_t **ctls = init_ctls(socket); if (ctls == NULL) { - return; + return KNOT_ERROR; } conf_val_t listen_val = conf_get(conf(), C_CTL, C_LISTEN); @@ -238,7 +273,7 @@ static void event_loop(server_t *server, const char *socket, bool daemonize, if (ret != KNOT_EOK) { log_fatal("control, failed to launch socket threads (%s)", knot_strerror(ret)); - return; + return ret; } signals_enable(); @@ -276,7 +311,10 @@ static void event_loop(server_t *server, const char *socket, bool daemonize, continue; } - check_loaded(server); + ret = check_loaded(server, async); + if (ret != KNOT_EOK) { + goto done; + } sleep(5); // wait for signals to arrive } @@ -285,8 +323,10 @@ static void event_loop(server_t *server, const char *socket, bool daemonize, dbus_emit_running(false); } +done: ctl_socket_thr_end(&sctx); deinit_ctls(ctls, sock_count); + return ret; } static void print_help(void) @@ -573,26 +613,25 @@ int main(int argc, char **argv) stats_reconfigure(conf(), &server); /* Start it up. */ - log_info("starting server"); + /* In async-start mode, start answering early, otherwise in the event loop. */ conf_val_t async_val = conf_get(conf(), C_SRV, C_ASYNC_START); - ret = server_start(&server, conf_bool(&async_val)); - if (ret != KNOT_EOK) { + bool async = conf_bool(&async_val); + if ((ret = server_start(&server, async)) != KNOT_EOK || + (ret = event_loop(&server, socket, daemonize, pid, async)) != KNOT_EOK) { log_fatal("failed to start server (%s)", knot_strerror(ret)); + server_stop(&server); server_wait(&server); stats_deinit(); - server_deinit(&server); - rcu_unregister_thread(); pid_cleanup(); + server_deinit(&server); conf_free(conf()); + rcu_unregister_thread(); dbus_close(); log_close(); dnssec_crypto_cleanup(); return EXIT_FAILURE; } - /* Start the event loop. */ - event_loop(&server, socket, daemonize, pid); - /* Teardown server. */ server_stop(&server); server_wait(&server); From 6149c8b8505181591918e6bc34d02f88f127b3f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 4 Jun 2025 17:08:46 +0200 Subject: [PATCH 016/675] knotd: don't log "starting server" berfore the server can answer queries --- src/knot/server/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index b390cbdc2a..401b18b827 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1003,7 +1003,7 @@ int server_start_answering(server_t *server) return KNOT_EOK; } - log_info("server started"); + log_info("starting server"); server->state |= ServerAnswering; for (int proto = IO_UDP; proto <= IO_XDP; ++proto) { if (server->handlers[proto].size > 0) { From cb089b2123c5b87ef14da9d86ee0fdc5a516cdb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 25 Jun 2025 15:48:35 +0200 Subject: [PATCH 017/675] knotd: update the wording of logs regarding server start --- src/knot/server/server.c | 2 +- src/utils/knotd/main.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 401b18b827..b390cbdc2a 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1003,7 +1003,7 @@ int server_start_answering(server_t *server) return KNOT_EOK; } - log_info("starting server"); + log_info("server started"); server->state |= ServerAnswering; for (int proto = IO_UDP; proto <= IO_XDP; ++proto) { if (server->handlers[proto].size > 0) { diff --git a/src/utils/knotd/main.c b/src/utils/knotd/main.c index 794a7d0bd1..fa6eb3b9a5 100644 --- a/src/utils/knotd/main.c +++ b/src/utils/knotd/main.c @@ -281,9 +281,9 @@ static int event_loop(server_t *server, const char *socket, bool daemonize, /* Notify systemd about successful start. */ systemd_ready_notify(); if (daemonize) { - log_info("server started as a daemon, PID %lu", pid); + log_info("starting server as a daemon, PID %lu", pid); } else { - log_info("server started in the foreground, PID %lu", pid); + log_info("starting server in the foreground, PID %lu", pid); } /* Run interrupt processing loop. */ From 07ff168c50a3b0bbc87b6381b44c3753a5fc6488 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 26 Jun 2025 21:47:23 +0200 Subject: [PATCH 018/675] knotd: cycle the interrupt-processing/start-detection loop faster --- src/utils/knotd/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/knotd/main.c b/src/utils/knotd/main.c index fa6eb3b9a5..de7a182394 100644 --- a/src/utils/knotd/main.c +++ b/src/utils/knotd/main.c @@ -316,7 +316,7 @@ static int event_loop(server_t *server, const char *socket, bool daemonize, goto done; } - sleep(5); // wait for signals to arrive + sleep(2); // wait for signals to arrive } if (conf()->cache.srv_dbus_event & DBUS_EVENT_RUNNING) { From b4e2e48e79647eea41f5506558dc9460b6c13493 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 16 Jul 2025 16:45:55 +0200 Subject: [PATCH 019/675] systemd: remove no longer needed systemd_tasks_status_notify() --- src/knot/common/systemd.c | 11 ----------- src/knot/common/systemd.h | 8 -------- 2 files changed, 19 deletions(-) diff --git a/src/knot/common/systemd.c b/src/knot/common/systemd.c index 8f19f73200..7bf1ef6f61 100644 --- a/src/knot/common/systemd.c +++ b/src/knot/common/systemd.c @@ -42,17 +42,6 @@ void systemd_zone_load_timeout_notify(void) #endif } -void systemd_tasks_status_notify(int tasks) -{ -#ifdef ENABLE_SYSTEMD - if (tasks > 0) { - sd_notifyf(0, "STATUS=Waiting for %d tasks to finish...", tasks); - } else { - sd_notify(0, "STATUS="); - } -#endif -} - void systemd_ready_notify(void) { #ifdef ENABLE_SYSTEMD diff --git a/src/knot/common/systemd.h b/src/knot/common/systemd.h index b2420bd396..92812f4204 100644 --- a/src/knot/common/systemd.h +++ b/src/knot/common/systemd.h @@ -14,14 +14,6 @@ */ void systemd_zone_load_timeout_notify(void); -/*! - * \brief Update systemd service status with information about number - * of scheduled tasks. - * - * \param tasks Number of tasks to be done. - */ -void systemd_tasks_status_notify(int tasks); - /*! * \brief Notify systemd about service is ready. */ From c3f8543a15d638255f143bc2f5cd46e48f61077f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ru=C5=BEi=C4=8Dka?= Date: Wed, 16 Jul 2025 16:28:06 +0200 Subject: [PATCH 020/675] distro/deb: split keymgr into knot-keymgr package --- distro/pkg/deb-nolibxdp/control | 20 ++++++++++++++++++++ distro/pkg/deb-nolibxdp/knot-keymgr.install | 1 + distro/pkg/deb-nolibxdp/knot-keymgr.manpages | 1 + distro/pkg/deb/control | 20 ++++++++++++++++++++ distro/pkg/deb/knot-keymgr.install | 1 + distro/pkg/deb/knot-keymgr.manpages | 1 + distro/pkg/deb/knot.install | 1 - distro/pkg/deb/knot.manpages | 1 - 8 files changed, 44 insertions(+), 2 deletions(-) create mode 120000 distro/pkg/deb-nolibxdp/knot-keymgr.install create mode 120000 distro/pkg/deb-nolibxdp/knot-keymgr.manpages create mode 100644 distro/pkg/deb/knot-keymgr.install create mode 100644 distro/pkg/deb/knot-keymgr.manpages diff --git a/distro/pkg/deb-nolibxdp/control b/distro/pkg/deb-nolibxdp/control index 495c080b18..e6d167e3e8 100644 --- a/distro/pkg/deb-nolibxdp/control +++ b/distro/pkg/deb-nolibxdp/control @@ -47,6 +47,8 @@ Depends: libzscanner4 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, +Recommends: + knot-keymgr, Pre-Depends: ${misc:Pre-Depends}, Suggests: @@ -197,6 +199,24 @@ Description: Version of 'host' bundled with Knot DNS This package provides the 'host' program from Knot DNS. This program is designed to be almost 1:1 compatible with BIND 9.x 'host' program. +Package: knot-keymgr +Architecture: any +Depends: + libdnssec9 (= ${binary:Version}), + libknot15 (= ${binary:Version}), + libzscanner4 (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: Knot DNS key management utility + Knot DNS is a fast, authoritative only, high performance, feature + full and open source name server. + . + Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ + registry and hence is well suited to run anything from the root + zone, the top-level domain, to many smaller standard domain names. + . + This package provides the 'keymgr' program for Knot DNS key management. + Package: knot-module-dnstap Architecture: any Depends: diff --git a/distro/pkg/deb-nolibxdp/knot-keymgr.install b/distro/pkg/deb-nolibxdp/knot-keymgr.install new file mode 120000 index 0000000000..07c93cb086 --- /dev/null +++ b/distro/pkg/deb-nolibxdp/knot-keymgr.install @@ -0,0 +1 @@ +../deb/knot-keymgr.install \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/knot-keymgr.manpages b/distro/pkg/deb-nolibxdp/knot-keymgr.manpages new file mode 120000 index 0000000000..a7e51aed8d --- /dev/null +++ b/distro/pkg/deb-nolibxdp/knot-keymgr.manpages @@ -0,0 +1 @@ +../deb/knot-keymgr.manpages \ No newline at end of file diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index 1d499d5972..e1b2d2e4c2 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -49,6 +49,8 @@ Depends: libzscanner4 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, +Recommends: + knot-keymgr, Pre-Depends: ${misc:Pre-Depends}, Suggests: @@ -199,6 +201,24 @@ Description: Version of 'host' bundled with Knot DNS This package provides the 'host' program from Knot DNS. This program is designed to be almost 1:1 compatible with BIND 9.x 'host' program. +Package: knot-keymgr +Architecture: any +Depends: + libdnssec9 (= ${binary:Version}), + libknot15 (= ${binary:Version}), + libzscanner4 (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends}, +Description: Knot DNS key management utility + Knot DNS is a fast, authoritative only, high performance, feature + full and open source name server. + . + Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ + registry and hence is well suited to run anything from the root + zone, the top-level domain, to many smaller standard domain names. + . + This package provides the 'keymgr' program for Knot DNS key management. + Package: knot-module-dnstap Architecture: any Depends: diff --git a/distro/pkg/deb/knot-keymgr.install b/distro/pkg/deb/knot-keymgr.install new file mode 100644 index 0000000000..5fb8d771f7 --- /dev/null +++ b/distro/pkg/deb/knot-keymgr.install @@ -0,0 +1 @@ +usr/sbin/keymgr diff --git a/distro/pkg/deb/knot-keymgr.manpages b/distro/pkg/deb/knot-keymgr.manpages new file mode 100644 index 0000000000..3ce910623e --- /dev/null +++ b/distro/pkg/deb/knot-keymgr.manpages @@ -0,0 +1 @@ +usr/share/man/man8/keymgr.8 diff --git a/distro/pkg/deb/knot.install b/distro/pkg/deb/knot.install index a31224fbf5..c4bd53990d 100644 --- a/distro/pkg/deb/knot.install +++ b/distro/pkg/deb/knot.install @@ -1,7 +1,6 @@ debian/cz.nic.knotd.conf usr/share/dbus-1/system.d/ etc/knot/knot.conf usr/sbin/kcatalogprint -usr/sbin/keymgr usr/sbin/kjournalprint usr/sbin/knotc usr/sbin/knotd diff --git a/distro/pkg/deb/knot.manpages b/distro/pkg/deb/knot.manpages index 5d23e9f08e..052f4cd274 100644 --- a/distro/pkg/deb/knot.manpages +++ b/distro/pkg/deb/knot.manpages @@ -1,6 +1,5 @@ usr/share/man/man5/knot.conf.5 usr/share/man/man8/kcatalogprint.8 -usr/share/man/man8/keymgr.8 usr/share/man/man8/kjournalprint.8 usr/share/man/man8/knotc.8 usr/share/man/man8/knotd.8 From 39dc0a35cbc446268af95358bc9ca6b78be0fabb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ru=C5=BEi=C4=8Dka?= Date: Fri, 18 Jul 2025 13:48:33 +0200 Subject: [PATCH 021/675] distro/rpm: split keymgr into knot-keymgr package --- distro/pkg/rpm/knot.spec | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/distro/pkg/rpm/knot.spec b/distro/pkg/rpm/knot.spec index 52bb5e3fd4..a0d11ee1f5 100644 --- a/distro/pkg/rpm/knot.spec +++ b/distro/pkg/rpm/knot.spec @@ -94,6 +94,8 @@ Requires(postun): systemd Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Recommends: %{name}-keymgr + %if 0%{?suse_version} Provides: group(knot) %endif @@ -133,6 +135,13 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description dnssecutils The package contains DNSSEC tools shipped with the Knot DNS server. +%package keymgr +Summary: Knot DNS key management utility +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description keymgr +The package contains keymgr program for Knot DNS key management. + %package module-dnstap Summary: dnstap module for Knot DNS Requires: %{name} = %{version}-%{release} @@ -329,7 +338,6 @@ getent passwd knot >/dev/null || \ %{_unitdir}/knot.service %{_sbindir}/kcatalogprint %{_sbindir}/kjournalprint -%{_sbindir}/keymgr %{_sbindir}/knotc %{_sbindir}/knotd %if 0%{?suse_version} @@ -338,7 +346,6 @@ getent passwd knot >/dev/null || \ %{_mandir}/man5/knot.conf.* %{_mandir}/man8/kcatalogprint.* %{_mandir}/man8/kjournalprint.* -%{_mandir}/man8/keymgr.* %{_mandir}/man8/knotc.* %{_mandir}/man8/knotd.* %ghost %attr(770,root,knot) %dir %{_rundir}/knot @@ -361,6 +368,10 @@ getent passwd knot >/dev/null || \ %{_mandir}/man1/kzonecheck.* %{_mandir}/man1/kzonesign.* +%files keymgr +%{_sbindir}/keymgr +%{_mandir}/man8/keymgr.* + %files module-dnstap %{_libdir}/knot/modules-*/dnstap.so From 711dbe6088310e392dc15f38d18c60421902e8a2 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 19 Jul 2025 18:33:01 +0200 Subject: [PATCH 022/675] distro/deb: add explicit libdnssec9 for libknot15 --- distro/pkg/deb-nolibxdp/control | 1 + distro/pkg/deb/control | 1 + 2 files changed, 2 insertions(+) diff --git a/distro/pkg/deb-nolibxdp/control b/distro/pkg/deb-nolibxdp/control index e6d167e3e8..e5001ac062 100644 --- a/distro/pkg/deb-nolibxdp/control +++ b/distro/pkg/deb-nolibxdp/control @@ -64,6 +64,7 @@ Description: Authoritative domain name server Package: libknot15 Architecture: any Depends: + libdnssec9 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Section: libs diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index e1b2d2e4c2..8130048786 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -66,6 +66,7 @@ Description: Authoritative domain name server Package: libknot15 Architecture: any Depends: + libdnssec9 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Section: libs From a47773cfe61543b029f45105055f0f5f57e3e009 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 8 Jul 2025 11:30:17 +0200 Subject: [PATCH 023/675] keymgr: implement key for-auto key pregeneration --- doc/man_keymgr.rst | 4 ++++ src/knot/dnssec/kasp/kasp_db.c | 2 ++ src/knot/dnssec/kasp/kasp_zone.c | 2 ++ src/knot/dnssec/kasp/policy.h | 2 ++ src/knot/dnssec/key-events.c | 13 +++++++++---- src/knot/dnssec/zone-keys.c | 19 +++++++++++++++++++ src/knot/dnssec/zone-keys.h | 9 +++++---- src/utils/keymgr/functions.c | 25 ++++++++++++++++++++----- 8 files changed, 63 insertions(+), 13 deletions(-) diff --git a/doc/man_keymgr.rst b/doc/man_keymgr.rst index b1a696dfa2..eee063d690 100644 --- a/doc/man_keymgr.rst +++ b/doc/man_keymgr.rst @@ -219,6 +219,10 @@ Arguments are separated by space, each of them is in format 'name=value'. **sep** Overrides the standard setting of the Secure Entry Point flag. +**for-later** + Pre-generating a key for later use. Once a new key ought to be generated, this one will be + used instead if the **ksk** and **zsk** flags are matching. This argument has no parameter. + The following arguments are timestamps of key lifetime (see :ref:`DNSSEC Key states`): **pre_active** diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index fcb1a4ba91..fda2b2ff36 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -113,6 +113,7 @@ static MDB_val params_serialize(const key_params_t *params) flags |= (params->is_ksk ? 0x01 : 0); flags |= (params->is_pub_only ? 0x04 : 0); flags |= (params->is_csk ? 0x08 : 0); + flags |= (params->is_for_later ? 0x10 : 0); return knot_lmdb_make_key("LLHBBLLLLLLLLLDL", (uint64_t)params->public_key.size, (uint64_t)sizeof(params->timing.revoke), params->keytag, params->algorithm, flags, @@ -147,6 +148,7 @@ static bool params_deserialize(const MDB_val *val, key_params_t *params) params->is_ksk = ((flags & 0x01) ? true : false); params->is_pub_only = ((flags & 0x04) ? true : false); params->is_csk = ((flags & 0x08) ? true : false); + params->is_for_later = ((flags & 0x10) ? true : false); if (future > 0) { if (future < sizeof(params->timing.revoke)) { diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index e1cbe00e74..145c8fcb8d 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -112,6 +112,7 @@ static int params2kaspkey(const knot_dname_t *dname, key_params_t *params, key->timing = params->timing; key->is_pub_only = params->is_pub_only; + key->is_for_later = params->is_for_later; assert(params->is_ksk || !params->is_csk); key->is_ksk = params->is_ksk; key->is_zsk = (params->is_csk || !params->is_ksk); @@ -131,6 +132,7 @@ static void kaspkey2params(knot_kasp_key_t *key, key_params_t *params) params->is_csk = (key->is_ksk && key->is_zsk); params->timing = key->timing; params->is_pub_only = key->is_pub_only; + params->is_for_later = key->is_for_later; } static void detect_keytag_conflict(knot_kasp_zone_t *zone, bool *kt_cfl) diff --git a/src/knot/dnssec/kasp/policy.h b/src/knot/dnssec/kasp/policy.h index 748065ec1e..56362b395b 100644 --- a/src/knot/dnssec/kasp/policy.h +++ b/src/knot/dnssec/kasp/policy.h @@ -36,6 +36,7 @@ typedef struct { bool is_ksk; bool is_csk; bool is_pub_only; + bool is_for_later; uint16_t keytag; uint8_t algorithm; dnssec_binary_t public_key; @@ -50,6 +51,7 @@ typedef struct { dnssec_key_t *key; /*!< Instance of the key. */ knot_kasp_key_timing_t timing; /*!< Key timing information. */ bool is_pub_only; + bool is_for_later; bool is_ksk; bool is_zsk; } knot_kasp_key_t; diff --git a/src/knot/dnssec/key-events.c b/src/knot/dnssec/key-events.c index 17452c75eb..ea67e90ba0 100644 --- a/src/knot/dnssec/key-events.c +++ b/src/knot/dnssec/key-events.c @@ -15,6 +15,12 @@ #include "knot/zone/serial.h" #include "libdnssec/random.h" +static bool not_removed(const knot_kasp_key_t *key, knot_time_t now) +{ + key_state_t state = get_key_state(key, now); + return state != DNSSEC_KEY_STATE_REMOVED && state != DNSSEC_KEY_STATE_INVALID; +} + static bool key_present(const kdnssec_ctx_t *ctx, bool ksk, bool zsk) { assert(ctx); @@ -22,7 +28,7 @@ static bool key_present(const kdnssec_ctx_t *ctx, bool ksk, bool zsk) for (size_t i = 0; i < ctx->zone->num_keys; i++) { const knot_kasp_key_t *key = &ctx->zone->keys[i]; if (key->is_ksk == ksk && key->is_zsk == zsk && !key->is_pub_only && - get_key_state(key, ctx->now) != DNSSEC_KEY_STATE_REMOVED) { + not_removed(key, ctx->now)) { return true; } } @@ -36,8 +42,7 @@ static bool key_id_present(const kdnssec_ctx_t *ctx, const char *keyid, bool wan for (size_t i = 0; i < ctx->zone->num_keys; i++) { const knot_kasp_key_t *key = &ctx->zone->keys[i]; if (strcmp(keyid, key->id) == 0 && - key->is_ksk == want_ksk && - get_key_state(key, ctx->now) != DNSSEC_KEY_STATE_REMOVED) { + key->is_ksk == want_ksk && not_removed(key, ctx->now)) { return true; } } @@ -53,7 +58,7 @@ static unsigned algorithm_present(const kdnssec_ctx_t *ctx, uint8_t alg) const knot_kasp_key_t *key = &ctx->zone->keys[i]; knot_time_t activated = knot_time_min(key->timing.pre_active, key->timing.ready); if (knot_time_cmp(knot_time_min(activated, key->timing.active), ctx->now) <= 0 && - get_key_state(key, ctx->now) != DNSSEC_KEY_STATE_REMOVED && + not_removed(key, ctx->now) && dnssec_key_get_algorithm(key->key) == alg && !key->is_pub_only) { ret++; } diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 4baa1e28c0..31435dd7ed 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -137,6 +137,15 @@ static int generate_keytag_unconflict(kdnssec_ctx_t *ctx, return KNOT_EOK; } +static bool key_corresponds(knot_kasp_key_t *key, kdnssec_ctx_t *ctx, kdnssec_generate_flags_t flags) +{ + return !key->is_pub_only && + key->is_ksk == (bool)(flags & DNSKEY_GENERATE_KSK) && + key->is_zsk == (bool)(flags & DNSKEY_GENERATE_ZSK) && + dnssec_key_get_algorithm(key->key) == ctx->policy->algorithm && + dnssec_key_get_size(key->key) == (key->is_ksk ? ctx->policy->ksk_size : ctx->policy->zsk_size); +} + int kdnssec_generate_key(kdnssec_ctx_t *ctx, kdnssec_generate_flags_t flags, knot_kasp_key_t **key_ptr) { @@ -147,6 +156,15 @@ int kdnssec_generate_key(kdnssec_ctx_t *ctx, kdnssec_generate_flags_t flags, normalize_generate_flags(&flags); + for (size_t i = 0; !(flags & DNSKEY_GENERATE_FOR_LATER) && i < ctx->zone->num_keys; i++) { + knot_kasp_key_t *k = &ctx->zone->keys[i]; + if (k->is_for_later && key_corresponds(k, ctx, flags)) { + *key_ptr = k; + k->is_for_later = false; + return KNOT_EOK; + } + } + // generate key in the keystore char *id = NULL; @@ -175,6 +193,7 @@ int kdnssec_generate_key(kdnssec_ctx_t *ctx, kdnssec_generate_flags_t flags, key->key = dnskey; key->is_ksk = (flags & DNSKEY_GENERATE_KSK); key->is_zsk = (flags & DNSKEY_GENERATE_ZSK); + key->is_for_later = (flags & DNSKEY_GENERATE_FOR_LATER); key->timing.created = ctx->now; r = kasp_zone_append(ctx->zone, key); diff --git a/src/knot/dnssec/zone-keys.h b/src/knot/dnssec/zone-keys.h index 6aaac1075d..9d67200431 100644 --- a/src/knot/dnssec/zone-keys.h +++ b/src/knot/dnssec/zone-keys.h @@ -67,10 +67,11 @@ inline static uint16_t dnskey_flags(bool is_ksk) } typedef enum { - DNSKEY_GENERATE_KSK = (1 << 0), // KSK flag in metadata - DNSKEY_GENERATE_ZSK = (1 << 1), // ZSK flag in metadata - DNSKEY_GENERATE_SEP_SPEC = (1 << 2), // not (SEP bit set iff KSK) - DNSKEY_GENERATE_SEP_ON = (1 << 3), // SEP bit set on + DNSKEY_GENERATE_KSK = (1 << 0), // KSK flag in metadata + DNSKEY_GENERATE_ZSK = (1 << 1), // ZSK flag in metadata + DNSKEY_GENERATE_SEP_SPEC = (1 << 2), // not (SEP bit set iff KSK) + DNSKEY_GENERATE_SEP_ON = (1 << 3), // SEP bit set on + DNSKEY_GENERATE_FOR_LATER = (1 << 4), // Pregenerated key for later automatic use. } kdnssec_generate_flags_t; void normalize_generate_flags(kdnssec_generate_flags_t *flags); diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 2f27bce84b..a07cdf6632 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -165,6 +165,8 @@ static bool genkeyargs(int argc, char *argv[], bool just_timing, } else if (same_command(argv[i], "sep=", true)) { bitmap_set(flags, DNSKEY_GENERATE_SEP_SPEC, true); bitmap_set(flags, DNSKEY_GENERATE_SEP_ON, str2bool(argv[i] + 4)); + } else if (same_command(argv[i], "for-later=", true)) { + bitmap_set(flags, DNSKEY_GENERATE_FOR_LATER, str2bool(argv[i] + 10)); } else if (!just_timing && same_command(argv[i], "size=", true)) { if (str_to_u16(argv[i] + 5, keysize) != KNOT_EOK) { ERR2("invalid size: '%s'", argv[i] + 5); @@ -178,6 +180,10 @@ static bool genkeyargs(int argc, char *argv[], bool just_timing, } } + if (*flags & DNSKEY_GENERATE_FOR_LATER) { + *timing = (knot_kasp_key_timing_t){ .created = timing->created }; + } + return true; } @@ -600,6 +606,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, kkey->timing = timing; kkey->is_ksk = (flags & DNSKEY_GENERATE_KSK); kkey->is_zsk = (flags & DNSKEY_GENERATE_ZSK); + kkey->is_for_later = (flags & DNSKEY_GENERATE_FOR_LATER); // append to zone ret = kasp_zone_append(ctx->zone, kkey); @@ -876,7 +883,9 @@ int keymgr_foreign_key_id(char *argv[], knot_lmdb_db_t *kaspdb, knot_dname_t **k int keymgr_set_timing(knot_kasp_key_t *key, int argc, char *argv[]) { knot_kasp_key_timing_t temp = key->timing; - kdnssec_generate_flags_t flags = ((key->is_ksk ? DNSKEY_GENERATE_KSK : 0) | (key->is_zsk ? DNSKEY_GENERATE_ZSK : 0)); + kdnssec_generate_flags_t flags = ((key->is_ksk ? DNSKEY_GENERATE_KSK : 0) | + (key->is_zsk ? DNSKEY_GENERATE_ZSK : 0) | + (key->is_for_later ? DNSKEY_GENERATE_FOR_LATER : 0)); if (genkeyargs(argc, argv, true, &flags, NULL, NULL, &temp, NULL)) { int ret = check_timers(&temp); @@ -884,6 +893,7 @@ int keymgr_set_timing(knot_kasp_key_t *key, int argc, char *argv[]) return ret; } key->timing = temp; + key->is_for_later = (flags & DNSKEY_GENERATE_FOR_LATER); if (key->is_ksk != (bool)(flags & DNSKEY_GENERATE_KSK) || key->is_zsk != (bool)(flags & DNSKEY_GENERATE_ZSK) || flags & DNSKEY_GENERATE_SEP_SPEC) { @@ -954,6 +964,10 @@ static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, printf(" %s%spublic-only%s", COL_BOLD(c), COL_MGNT(c), COL_RST(c)); } + if (key->is_for_later) { + printf(" %s%sfor-later%s", COL_BOLD(c), COL_MGNT(c), COL_RST(c)); + } + if (info->missing) { printf(" %s%smissing%s", COL_BOLD(c), COL_YELW(c), COL_RST(c)); } else if (info->ks_count > 1 && info->ks_name != NULL) { @@ -986,11 +1000,11 @@ static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, static void print_key_full(const knot_kasp_key_t *key, key_info_t *info, knot_time_print_t format) { - printf("%s ksk=%s zsk=%s tag=%05d algorithm=%-2d size=%-4u public-only=%s", key->id, - (key->is_ksk ? "yes" : "no "), (key->is_zsk ? "yes" : "no "), + printf("%s ksk=%s zsk=%s tag=%05d algorithm=%-2d size=%-4u public-only=%s for-later=%s missing=%s", + key->id, (key->is_ksk ? "yes" : "no "), (key->is_zsk ? "yes" : "no "), dnssec_key_get_keytag(key->key), (int)dnssec_key_get_algorithm(key->key), - dnssec_key_get_size(key->key), (key->is_pub_only ? "yes" : "no ")); - printf(" missing=%s", info->missing ? "yes" : "no "); + dnssec_key_get_size(key->key), (key->is_pub_only ? "yes" : "no "), + (key->is_for_later ? "yes" : "no "), (info->missing ? "yes" : "no ")); if (info->ks_name != NULL) { printf(" keystore=%s/%s", KS_TYPE(info), info->ks_name); } @@ -1015,6 +1029,7 @@ static void print_key_json(const knot_kasp_key_t *key, key_info_t *info, jsonw_ulong(w, "algorithm", dnssec_key_get_algorithm(key->key)); jsonw_int(w, "size", dnssec_key_get_size(key->key)); jsonw_bool(w, "public-only", key->is_pub_only); + jsonw_bool(w, "for-later", key->is_for_later); jsonw_bool(w, "missing", info->missing); if (info->ks_name != NULL) { jsonw_str(w, "keystore", info->ks_name); From 3edaf24f02b17646c958c3a7eb23d156f2085008 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 19 Jul 2025 20:17:42 +0200 Subject: [PATCH 024/675] keymgr: interpret omitted bool argument as true --- src/utils/keymgr/functions.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index a07cdf6632..eb3febf42a 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -126,6 +126,21 @@ static void bitmap_set(kdnssec_generate_flags_t *bitmap, int flag, bool onoff) } } +static bool same_command_bool(const char *arg, const char *cmd, bool *res) +{ + char prefix[32]; + (void)snprintf(prefix, sizeof(prefix), "%s=", cmd); + if (same_command(arg, prefix, true)) { + *res = str2bool(arg + strlen(prefix)); + return true; + } else if (same_command(arg, cmd, false)) { + *res = true; + return true; + } else { + return false; + } +} + static bool genkeyargs(int argc, char *argv[], bool just_timing, kdnssec_generate_flags_t *flags, dnssec_key_algorithm_t *algorithm, uint16_t *keysize, knot_kasp_key_timing_t *timing, @@ -144,6 +159,7 @@ static bool genkeyargs(int argc, char *argv[], bool just_timing, // parse args for (int i = 0; i < argc; i++) { + bool res; if (!just_timing && same_command(argv[i], "algorithm=", true)) { int alg = 256; // invalid value (void)str_to_int(argv[i] + 10, &alg, 0, 255); @@ -158,15 +174,15 @@ static bool genkeyargs(int argc, char *argv[], bool just_timing, return false; } *algorithm = alg; - } else if (same_command(argv[i], "ksk=", true)) { - bitmap_set(flags, DNSKEY_GENERATE_KSK, str2bool(argv[i] + 4)); - } else if (same_command(argv[i], "zsk=", true)) { - bitmap_set(flags, DNSKEY_GENERATE_ZSK, str2bool(argv[i] + 4)); - } else if (same_command(argv[i], "sep=", true)) { + } else if (same_command_bool(argv[i], "ksk", &res)) { + bitmap_set(flags, DNSKEY_GENERATE_KSK, res); + } else if (same_command_bool(argv[i], "zsk", &res)) { + bitmap_set(flags, DNSKEY_GENERATE_ZSK, res); + } else if (same_command_bool(argv[i], "sep", &res)) { bitmap_set(flags, DNSKEY_GENERATE_SEP_SPEC, true); - bitmap_set(flags, DNSKEY_GENERATE_SEP_ON, str2bool(argv[i] + 4)); - } else if (same_command(argv[i], "for-later=", true)) { - bitmap_set(flags, DNSKEY_GENERATE_FOR_LATER, str2bool(argv[i] + 10)); + bitmap_set(flags, DNSKEY_GENERATE_SEP_ON, res); + } else if (same_command_bool(argv[i], "for-later", &res)) { + bitmap_set(flags, DNSKEY_GENERATE_FOR_LATER, res); } else if (!just_timing && same_command(argv[i], "size=", true)) { if (str_to_u16(argv[i] + 5, keysize) != KNOT_EOK) { ERR2("invalid size: '%s'", argv[i] + 5); From 103e315fb1acca30b6854692b82ea47e65994d46 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 19 Jul 2025 20:43:47 +0200 Subject: [PATCH 025/675] keymgr: update help and documentation --- doc/man_keymgr.rst | 13 +++++++------ src/utils/keymgr/main.c | 12 +++++++----- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/doc/man_keymgr.rst b/doc/man_keymgr.rst index eee063d690..fbde238ca8 100644 --- a/doc/man_keymgr.rst +++ b/doc/man_keymgr.rst @@ -199,7 +199,8 @@ Commands related to Offline KSK feature Generate arguments .................. -Arguments are separated by space, each of them is in format 'name=value'. +Arguments are separated by space, each of them is in format 'name=value'. A *(bool)* argument +accepts values **yes** or **no**. If the value is omitted, it's interpreted as **yes**. **algorithm** Either an algorithm number (e.g. 14) or :ref:`algorithm name` @@ -209,19 +210,19 @@ Arguments are separated by space, each of them is in format 'name=value'. Key length in bits. **ksk** - If set to **yes**, the key will be used for signing DNSKEY rrset. The generated key will also + *(bool)* The key will be used for signing DNSKEY rrset. The generated key will also have the Secure Entry Point flag set to 1. **zsk** - If set to **yes**, the key will be used for signing zone (except DNSKEY rrset). This flag can + *(bool)* The key will be used for signing zone (except DNSKEY rrset). This flag can be set concurrently with the **ksk** flag (for a CSK key). **sep** - Overrides the standard setting of the Secure Entry Point flag. + *(bool)* Overrides the standard setting of the Secure Entry Point flag. **for-later** - Pre-generating a key for later use. Once a new key ought to be generated, this one will be - used instead if the **ksk** and **zsk** flags are matching. This argument has no parameter. + *(bool)* The key will be determined for later use. It means once a new key ought + to be generated, this one will be used instead if the key type and algorithm match. The following arguments are timestamps of key lifetime (see :ref:`DNSSEC Key states`): diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c index e5e7105538..51d7057962 100644 --- a/src/utils/keymgr/main.c +++ b/src/utils/keymgr/main.c @@ -109,12 +109,14 @@ static void print_help(void) " [id=|keytag=] prefix.\n" "\n" "Key attributes:\n" - " algorithm The key cryptographic algorithm: either name (e.g. RSASHA256) or\n" - " number.\n" + " algorithm The key cryptographic algorithm: either name (e.g. RSASHA256) or number.\n" " size The key size in bits.\n" - " ksk Whether the generated/imported key shall be Key Signing Key.\n" - " created/publish/ready/active/retire/remove The timestamp of the key\n" - " lifetime event (e.g. published=+1d active=1499770874)\n", + " ksk The key is KSK.\n" + " zsk The key is ZSK.\n" + " sep Overrides the standard setting of SEP.\n" + " for-later The key is for later use.\n" + " created/publish/ready/active/retire/remove/pre_active/post_active/retire_active/revoke" + " The timestamp of the key lifetime event (e.g. published=+1d active=1499770874)\n", PROGRAM_NAME, PROGRAM_NAME, PROGRAM_NAME, PROGRAM_NAME, CONF_DEFAULT_FILE, CONF_DEFAULT_DBDIR); } From ac4b4a9f331bea0d4c5cb1c92895c1ad3e36b3eb Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 19 Jul 2025 19:48:04 +0200 Subject: [PATCH 026/675] keymgr: refactoring --- src/utils/keymgr/functions.c | 43 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index eb3febf42a..8b7192dc80 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -119,11 +119,11 @@ static bool str2bool(const char *s) static void bitmap_set(kdnssec_generate_flags_t *bitmap, int flag, bool onoff) { - if (onoff) { - *bitmap |= flag; - } else { - *bitmap &= ~flag; - } + if (onoff) { + *bitmap |= flag; + } else { + *bitmap &= ~flag; + } } static bool same_command_bool(const char *arg, const char *cmd, bool *res) @@ -147,15 +147,16 @@ static bool genkeyargs(int argc, char *argv[], bool just_timing, const char **addtopolicy) { // generate algorithms field - char *algnames[256] = { 0 }; - algnames[DNSSEC_KEY_ALGORITHM_RSA_SHA1] = "rsasha1"; - algnames[DNSSEC_KEY_ALGORITHM_RSA_SHA1_NSEC3] = "rsasha1-nsec3-sha1"; - algnames[DNSSEC_KEY_ALGORITHM_RSA_SHA256] = "rsasha256"; - algnames[DNSSEC_KEY_ALGORITHM_RSA_SHA512] = "rsasha512"; - algnames[DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256] = "ecdsap256sha256"; - algnames[DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384] = "ecdsap384sha384"; - algnames[DNSSEC_KEY_ALGORITHM_ED25519] = "ed25519"; - algnames[DNSSEC_KEY_ALGORITHM_ED448] = "ed448"; + const char *algnames[256] = { + [DNSSEC_KEY_ALGORITHM_RSA_SHA1] = "rsasha1", + [DNSSEC_KEY_ALGORITHM_RSA_SHA1_NSEC3] = "rsasha1-nsec3-sha1", + [DNSSEC_KEY_ALGORITHM_RSA_SHA256] = "rsasha256", + [DNSSEC_KEY_ALGORITHM_RSA_SHA512] = "rsasha512", + [DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256] = "ecdsap256sha256", + [DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384] = "ecdsap384sha384", + [DNSSEC_KEY_ALGORITHM_ED25519] = "ed25519", + [DNSSEC_KEY_ALGORITHM_ED448] = "ed448", + }; // parse args for (int i = 0; i < argc; i++) { @@ -174,6 +175,13 @@ static bool genkeyargs(int argc, char *argv[], bool just_timing, return false; } *algorithm = alg; + } else if (!just_timing && same_command(argv[i], "size=", true)) { + if (str_to_u16(argv[i] + 5, keysize) != KNOT_EOK) { + ERR2("invalid size: '%s'", argv[i] + 5); + return false; + } + } else if (!just_timing && same_command(argv[i], "addtopolicy=", true)) { + *addtopolicy = argv[i] + 12; } else if (same_command_bool(argv[i], "ksk", &res)) { bitmap_set(flags, DNSKEY_GENERATE_KSK, res); } else if (same_command_bool(argv[i], "zsk", &res)) { @@ -183,13 +191,6 @@ static bool genkeyargs(int argc, char *argv[], bool just_timing, bitmap_set(flags, DNSKEY_GENERATE_SEP_ON, res); } else if (same_command_bool(argv[i], "for-later", &res)) { bitmap_set(flags, DNSKEY_GENERATE_FOR_LATER, res); - } else if (!just_timing && same_command(argv[i], "size=", true)) { - if (str_to_u16(argv[i] + 5, keysize) != KNOT_EOK) { - ERR2("invalid size: '%s'", argv[i] + 5); - return false; - } - } else if (!just_timing && same_command(argv[i], "addtopolicy=", true)) { - *addtopolicy = argv[i] + 12; } else if (!init_timestamps(argv[i], timing)) { ERR2("invalid parameter: %s", argv[i]); return false; From 4be0af187b52fc1c9d07cdf543f2a3ad397fe864 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 21 Jul 2025 08:43:36 +0200 Subject: [PATCH 027/675] keymgr: support colon separators in keyid --- src/libdnssec/keyid.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/libdnssec/keyid.c b/src/libdnssec/keyid.c index 59086dc4c9..cb4d2679fd 100644 --- a/src/libdnssec/keyid.c +++ b/src/libdnssec/keyid.c @@ -22,11 +22,16 @@ bool dnssec_keyid_is_valid(const char *id) return false; } - if (strlen(id) % 2 != 0) { + size_t id_len = strlen(id); + bool with_colons = (id_len > 3 && id[2] == ':'); // p11tool format XX:XX:XX:<..>:XX + if ((id_len - (with_colons ? id_len / 3 : 0)) % 2 != 0) { return false; } for (int i = 0; id[i] != '\0'; i++) { + if (with_colons && i > 0 && i < id_len - 1 && i % 3 == 2 && id[i] == ':') { + continue; + } if (!is_xdigit(id[i])) { return false; } @@ -42,10 +47,16 @@ void dnssec_keyid_normalize(char *id) return; } + size_t j = 0; for (size_t i = 0; id[i] != '\0'; i++) { + if (id[i] == ':') { + assert(i % 3 == 2); + continue; + } assert(id[i] != '\0' && is_xdigit(id[i])); - id[i] = knot_tolower(id[i]); + id[j++] = knot_tolower(id[i]); } + id[j] = '\0'; } _public_ From 3ba7c8677f7b05de65a487c139f7c1a443cd8a96 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 21 Jul 2025 09:03:18 +0200 Subject: [PATCH 028/675] keymgr: make log message more general --- src/utils/keymgr/functions.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 8b7192dc80..7276a93bf4 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -278,8 +278,7 @@ int keymgr_generate_key(kdnssec_ctx_t *ctx, int argc, char *argv[]) knot_kasp_key_t *kasp_key = &ctx->zone->keys[i]; if ((kasp_key->is_ksk && (flags & DNSKEY_GENERATE_KSK)) && dnssec_key_get_algorithm(kasp_key->key) != ctx->policy->algorithm) { - WARN2("creating key with different algorithm than " - "configured in the policy"); + WARN2("inconsistent KSK algorithms"); break; } } From d7a4883482ebf8d4398b270746c0be66d270ea3f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 25 Jul 2025 08:19:50 +0200 Subject: [PATCH 029/675] server: fix possible use after free if member zone is reused when full reload --- src/knot/zone/zonedb-load.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index d376b526ae..f9fa0b2188 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -289,7 +289,11 @@ static zone_t *reuse_member_zone(zone_t *zone, server_t *server, conf_t *conf, break; // reload the member zone case CAT_UPD_INVALID: case CAT_UPD_MINOR: - return zone; // reuse the member zone + if (mode & (RELOAD_COMMIT | RELOAD_CATALOG)) { + return zone; // reuse the member zone + } else { + break; // reload the member zone + } case CAT_UPD_REM: return NULL; // remove the member zone case CAT_UPD_ADD: // cannot add existing member From 6d79f78d3b53307c24af25d59b22e0bb504a02f7 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 25 Jul 2025 13:32:20 +0200 Subject: [PATCH 030/675] doc: improve description of reverse-generate --- doc/reference.rst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 14b3a057d9..183c4a41ab 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -3187,9 +3187,8 @@ zone serial is shifted relative to the Unix time. reverse-generate ---------------- -This option triggers the automatic generation of reverse PTR records based on -A/AAAA records in the specified zones. The entire generated zone is automatically -stored in the journal. +A list of zone names for which automatic generation of reverse PTR records based on +A/AAAA records is enabled. The entire generated zone is automatically stored in the journal. The auto-generated reverse zone is re-generated whenever any of the specified zones is updated. This includes the situation when reverse generation had failed due to From e365c348c6850220d7c4fa0855192e85d500cdf4 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 25 Jul 2025 13:34:24 +0200 Subject: [PATCH 031/675] ctl: allow zone-reload on expired zone This operation is useful for resolving issues such as journal inconsistencies. --- src/knot/ctl/commands.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index abb55e095f..73505ab7f4 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -468,11 +468,6 @@ static int zone_status(zone_t *zone, ctl_args_t *args) static int zone_reload(zone_t *zone, _unused_ ctl_args_t *args) { - if (zone_expired(zone)) { - args->suppress = true; - return KNOT_ENOTSUP; - } - if (ctl_has_flag(args->data[KNOT_CTL_IDX_FLAGS], CTL_FLAG_FORCE)) { return zone_reload_modules(conf(), args->server, zone->name); } From 048c94982da33d4b487973bb1d839d34800aad2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Fri, 25 Jul 2025 17:31:21 +0200 Subject: [PATCH 032/675] libngtcp2: update embedded library to v1.14.0 --- src/contrib/Makefile.inc | 2 + src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c | 95 +++++++------- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h | 8 +- .../libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c | 72 +++++++++++ .../libngtcp2/ngtcp2/lib/ngtcp2_callbacks.h | 73 +++++++++++ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c | 116 ++++++++++------- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h | 3 +- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.c | 120 +++++++++++++----- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h | 32 +++-- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c | 6 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c | 57 +++++---- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h | 3 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h | 7 + .../libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.h | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c | 17 +-- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h | 5 - src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c | 56 ++++---- .../libngtcp2/ngtcp2/lib/ngtcp2_strm.c | 28 +++- .../ngtcp2/lib/ngtcp2_transport_params.c | 12 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h | 7 - src/contrib/libngtcp2/ngtcp2/ngtcp2.h | 32 ++++- src/contrib/libngtcp2/ngtcp2/version.h | 4 +- 22 files changed, 520 insertions(+), 239 deletions(-) create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.h diff --git a/src/contrib/Makefile.inc b/src/contrib/Makefile.inc index bae9078bf0..36832c8ffa 100644 --- a/src/contrib/Makefile.inc +++ b/src/contrib/Makefile.inc @@ -222,6 +222,8 @@ libembngtcp2_la_SOURCES = \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.h \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.h \ contrib/libngtcp2/ngtcp2/ngtcp2.h \ contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h \ contrib/libngtcp2/ngtcp2/ngtcp2_crypto_gnutls.h \ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c index 04612f11be..a2ffeb6188 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c @@ -69,7 +69,7 @@ static void bbr_on_transmit(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, static void bbr_reset_congestion_signals(ngtcp2_cc_bbr *bbr); -static void bbr_reset_lower_bounds(ngtcp2_cc_bbr *bbr); +static void bbr_reset_shortterm_model(ngtcp2_cc_bbr *bbr); static void bbr_init_round_counting(ngtcp2_cc_bbr *bbr); @@ -157,8 +157,7 @@ static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr, const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts); -static int bbr_is_time_to_cruise(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, - ngtcp2_tstamp ts); +static int bbr_is_time_to_cruise(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); static int bbr_is_time_to_go_down(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); @@ -175,8 +174,9 @@ static void bbr_probe_inflight_longterm_upward(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack); -static void bbr_adapt_upper_bounds(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, - const ngtcp2_cc_ack *ack); +static void bbr_adapt_longterm_model(ngtcp2_cc_bbr *bbr, + ngtcp2_conn_stat *cstat, + const ngtcp2_cc_ack *ack); static int bbr_is_time_to_probe_bw(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts); @@ -288,7 +288,7 @@ static void bbr_on_init(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, bbr->full_bw_reached = 0; bbr_reset_congestion_signals(bbr); - bbr_reset_lower_bounds(bbr); + bbr_reset_shortterm_model(bbr); bbr_init_round_counting(bbr); bbr_reset_full_bw(bbr); bbr_init_pacing_rate(bbr, cstat); @@ -344,7 +344,7 @@ static void bbr_reset_congestion_signals(ngtcp2_cc_bbr *bbr) { bbr->inflight_latest = 0; } -static void bbr_reset_lower_bounds(ngtcp2_cc_bbr *bbr) { +static void bbr_reset_shortterm_model(ngtcp2_cc_bbr *bbr) { bbr->bw_shortterm = UINT64_MAX; bbr->inflight_shortterm = UINT64_MAX; } @@ -707,7 +707,7 @@ static void bbr_start_probe_bw_refill(ngtcp2_cc_bbr *bbr) { ngtcp2_log_info(bbr->cc.log, NGTCP2_LOG_EVENT_CCA, "bbr start ProbeBW_REFILL"); - bbr_reset_lower_bounds(bbr); + bbr_reset_shortterm_model(bbr); bbr->bw_probe_up_rounds = 0; bbr->bw_probe_up_acks = 0; @@ -744,7 +744,7 @@ static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr, return; } - bbr_adapt_upper_bounds(bbr, cstat, ack); + bbr_adapt_longterm_model(bbr, cstat, ack); if (!bbr_is_in_probe_bw_state(bbr)) { return; @@ -756,7 +756,7 @@ static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr, return; } - if (bbr_is_time_to_cruise(bbr, cstat, ts)) { + if (bbr_is_time_to_cruise(bbr, cstat)) { bbr_start_probe_bw_cruise(bbr); } @@ -785,30 +785,22 @@ static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr, } } -static int bbr_is_time_to_cruise(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, - ngtcp2_tstamp ts) { - (void)ts; - - if (cstat->bytes_in_flight > bbr_inflight_with_headroom(bbr, cstat)) { - return 0; - } - - if (cstat->bytes_in_flight <= bbr_inflight(bbr, cstat, 100)) { - return 1; - } +static int bbr_is_time_to_cruise(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { + uint64_t inflight = ngtcp2_min_uint64(bbr_inflight_with_headroom(bbr, cstat), + bbr_inflight(bbr, cstat, 100)); - return 0; + return cstat->bytes_in_flight <= inflight; } static int bbr_is_time_to_go_down(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { if (bbr->rst->is_cwnd_limited && cstat->cwnd >= bbr->inflight_longterm) { bbr_reset_full_bw(bbr); bbr->full_bw = cstat->delivery_rate_sec; - } else if (bbr->full_bw_now) { - return 1; + + return 0; } - return 0; + return bbr->full_bw_now; } static int bbr_has_elapsed_in_phase(ngtcp2_cc_bbr *bbr, @@ -871,8 +863,9 @@ static void bbr_probe_inflight_longterm_upward(ngtcp2_cc_bbr *bbr, } } -static void bbr_adapt_upper_bounds(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, - const ngtcp2_cc_ack *ack) { +static void bbr_adapt_longterm_model(ngtcp2_cc_bbr *bbr, + ngtcp2_conn_stat *cstat, + const ngtcp2_cc_ack *ack) { if (bbr->ack_phase == NGTCP2_BBR_ACK_PHASE_ACKS_PROBE_STARTING && bbr->round_start) { bbr->ack_phase = NGTCP2_BBR_ACK_PHASE_ACKS_PROBE_FEEDBACK; @@ -917,7 +910,7 @@ static void bbr_pick_probe_wait(ngtcp2_cc_bbr *bbr) { bbr->rand(&rand, 1, &bbr->rand_ctx); - bbr->rounds_since_bw_probe = (uint64_t)(rand * 2 / 256); + bbr->rounds_since_bw_probe = (uint64_t)(rand / 128); bbr->rand(&rand, 1, &bbr->rand_ctx); @@ -980,9 +973,8 @@ static void bbr_handle_lost_packet(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, } rs->tx_in_flight = pkt->tx_in_flight; - /* bbr->rst->lost is not incremented for pkt yet */ - assert(bbr->rst->lost + pkt->pktlen >= pkt->lost); - rs->lost = bbr->rst->lost + pkt->pktlen - pkt->lost; + assert(bbr->rst->lost >= pkt->lost); + rs->lost = bbr->rst->lost - pkt->lost; rs->is_app_limited = pkt->is_app_limited; if (bbr_is_inflight_too_high(bbr)) { @@ -1121,7 +1113,7 @@ static void bbr_mark_connection_app_limited(ngtcp2_cc_bbr *bbr, } static void bbr_exit_probe_rtt(ngtcp2_cc_bbr *bbr, ngtcp2_tstamp ts) { - bbr_reset_lower_bounds(bbr); + bbr_reset_shortterm_model(bbr); if (bbr->full_bw_reached) { bbr_start_probe_bw_down(bbr, ts); @@ -1226,12 +1218,9 @@ static uint64_t bbr_probe_rtt_cwnd(ngtcp2_cc_bbr *bbr, static void bbr_bound_cwnd_for_probe_rtt(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { - uint64_t probe_rtt_cwnd; - if (bbr->state == NGTCP2_BBR_STATE_PROBE_RTT) { - probe_rtt_cwnd = bbr_probe_rtt_cwnd(bbr, cstat); - - cstat->cwnd = ngtcp2_min_uint64(cstat->cwnd, probe_rtt_cwnd); + cstat->cwnd = + ngtcp2_min_uint64(cstat->cwnd, bbr_probe_rtt_cwnd(bbr, cstat)); } } @@ -1401,21 +1390,23 @@ void ngtcp2_cc_bbr_init(ngtcp2_cc_bbr *bbr, ngtcp2_log *log, ngtcp2_conn_stat *cstat, ngtcp2_rst *rst, ngtcp2_tstamp initial_ts, ngtcp2_rand rand, const ngtcp2_rand_ctx *rand_ctx) { - memset(bbr, 0, sizeof(*bbr)); - - bbr->cc.log = log; - bbr->cc.on_pkt_lost = bbr_cc_on_pkt_lost; - bbr->cc.congestion_event = bbr_cc_congestion_event; - bbr->cc.on_spurious_congestion = bbr_cc_on_spurious_congestion; - bbr->cc.on_persistent_congestion = bbr_cc_on_persistent_congestion; - bbr->cc.on_ack_recv = bbr_cc_on_ack_recv; - bbr->cc.on_pkt_sent = bbr_cc_on_pkt_sent; - bbr->cc.reset = bbr_cc_reset; - - bbr->rst = rst; - bbr->rand = rand; - bbr->rand_ctx = *rand_ctx; - bbr->initial_cwnd = cstat->cwnd; + *bbr = (ngtcp2_cc_bbr){ + .cc = + { + .log = log, + .on_pkt_lost = bbr_cc_on_pkt_lost, + .congestion_event = bbr_cc_congestion_event, + .on_spurious_congestion = bbr_cc_on_spurious_congestion, + .on_persistent_congestion = bbr_cc_on_persistent_congestion, + .on_ack_recv = bbr_cc_on_ack_recv, + .on_pkt_sent = bbr_cc_on_pkt_sent, + .reset = bbr_cc_reset, + }, + .rst = rst, + .rand = rand, + .rand_ctx = *rand_ctx, + .initial_cwnd = cstat->cwnd, + }; bbr_on_init(bbr, cstat, initial_ts); } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h index e87adb1199..b2bdafc387 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h @@ -62,13 +62,17 @@ void ngtcp2_buf_reset(ngtcp2_buf *buf); * written to the underlying buffer. In other words, it returns * buf->end - buf->last. */ -#define ngtcp2_buf_left(BUF) (size_t)((BUF)->end - (BUF)->last) +static inline size_t ngtcp2_buf_left(const ngtcp2_buf *buf) { + return (size_t)(buf->end - buf->last); +} /* * ngtcp2_buf_len returns the number of bytes left to read. In other * words, it returns buf->last - buf->pos. */ -#define ngtcp2_buf_len(BUF) (size_t)((BUF)->last - (BUF)->pos) +static inline size_t ngtcp2_buf_len(const ngtcp2_buf *buf) { + return (size_t)(buf->last - buf->pos); +} /* * ngtcp2_buf_cap returns the capacity of the buffer. In other words, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c new file mode 100644 index 0000000000..7e77186772 --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c @@ -0,0 +1,72 @@ +/* + * ngtcp2 + * + * Copyright (c) 2025 ngtcp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include "ngtcp2_callbacks.h" + +#include +#include + +#include "ngtcp2_unreachable.h" + +static void callbacks_copy(ngtcp2_callbacks *dest, const ngtcp2_callbacks *src, + int callbacks_version) { + assert(callbacks_version != NGTCP2_CALLBACKS_VERSION); + + memcpy(dest, src, ngtcp2_callbackslen_version(callbacks_version)); +} + +const ngtcp2_callbacks *ngtcp2_callbacks_convert_to_latest( + ngtcp2_callbacks *dest, int callbacks_version, const ngtcp2_callbacks *src) { + if (callbacks_version == NGTCP2_CALLBACKS_VERSION) { + return src; + } + + memset(dest, 0, sizeof(*dest)); + + callbacks_copy(dest, src, callbacks_version); + + return dest; +} + +void ngtcp2_callbacks_convert_to_old(int callbacks_version, + ngtcp2_callbacks *dest, + const ngtcp2_callbacks *src) { + assert(callbacks_version != NGTCP2_CALLBACKS_VERSION); + + callbacks_copy(dest, src, callbacks_version); +} + +size_t ngtcp2_callbackslen_version(int callbacks_version) { + ngtcp2_callbacks callbacks; + + switch (callbacks_version) { + case NGTCP2_CALLBACKS_VERSION: + return sizeof(callbacks); + case NGTCP2_CALLBACKS_V1: + return offsetof(ngtcp2_callbacks, tls_early_data_rejected) + + sizeof(callbacks.tls_early_data_rejected); + default: + ngtcp2_unreachable(); + } +} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.h new file mode 100644 index 0000000000..751766bb83 --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.h @@ -0,0 +1,73 @@ +/* + * ngtcp2 + * + * Copyright (c) 2025 ngtcp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#ifndef NGTCP2_CALLBACKS_H +#define NGTCP2_CALLBACKS_H + +#ifdef HAVE_CONFIG_H +# include +#endif /* defined(HAVE_CONFIG_H) */ + +#include + +/* + * ngtcp2_callbacks_convert_to_latest converts |src| of version + * |callbacks_version| to the latest version NGTCP2_CALLBACKS_VERSION. + * + * |dest| must point to the latest version. |src| may be the older + * version, and if so, it may have fewer fields. Accessing those + * fields causes undefined behavior. + * + * If |callbacks_version| == NGTCP2_CALLBACKS_VERSION, no conversion + * is made, and |src| is returned. Otherwise, first |dest| is + * zero-initialized, and then all valid fields in |src| are copied + * into |dest|. Finally, |dest| is returned. + */ +const ngtcp2_callbacks *ngtcp2_callbacks_convert_to_latest( + ngtcp2_callbacks *dest, int callbacks_version, const ngtcp2_callbacks *src); + +/* + * ngtcp2_callbacks_convert_to_old converts |src| of the latest + * version to |dest| of version |callbacks_version|. + * + * |callbacks_version| must not be the latest version + * NGTCP2_CALLBACKS_VERSION. + * + * |dest| points to the older version, and it may have fewer fields. + * Accessing those fields causes undefined behavior. + * + * This function copies all valid fields in version + * |callbacks_version| from |src| to |dest|. + */ +void ngtcp2_callbacks_convert_to_old(int callbacks_version, + ngtcp2_callbacks *dest, + const ngtcp2_callbacks *src); + +/* + * ngtcp2_callbackslen_version returns the effective length of + * ngtcp2_callbacks at the version |callbacks_version|. + */ +size_t ngtcp2_callbackslen_version(int callbacks_version); + +#endif /* !defined(NGTCP2_CALLBACKS_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c index ad3665b6cf..c16953802a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c @@ -59,14 +59,16 @@ ngtcp2_cc_pkt *ngtcp2_cc_pkt_init(ngtcp2_cc_pkt *pkt, int64_t pkt_num, static void reno_cc_reset(ngtcp2_cc_reno *reno) { reno->pending_add = 0; } void ngtcp2_cc_reno_init(ngtcp2_cc_reno *reno, ngtcp2_log *log) { - memset(reno, 0, sizeof(*reno)); - - reno->cc.log = log; - reno->cc.on_pkt_acked = ngtcp2_cc_reno_cc_on_pkt_acked; - reno->cc.congestion_event = ngtcp2_cc_reno_cc_congestion_event; - reno->cc.on_persistent_congestion = - ngtcp2_cc_reno_cc_on_persistent_congestion; - reno->cc.reset = ngtcp2_cc_reno_cc_reset; + *reno = (ngtcp2_cc_reno){ + .cc = + { + .log = log, + .on_pkt_acked = ngtcp2_cc_reno_cc_on_pkt_acked, + .congestion_event = ngtcp2_cc_reno_cc_congestion_event, + .on_persistent_congestion = ngtcp2_cc_reno_cc_on_persistent_congestion, + .reset = ngtcp2_cc_reno_cc_reset, + }, + }; reno_cc_reset(reno); } @@ -148,7 +150,7 @@ void ngtcp2_cc_reno_cc_reset(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, static void cubic_vars_reset(ngtcp2_cubic_vars *v) { v->cwnd_prior = 0; v->w_max = 0; - v->k = 0; + v->k_m = 0; v->epoch_start = UINT64_MAX; v->w_est = 0; @@ -176,17 +178,18 @@ static void cubic_cc_reset(ngtcp2_cc_cubic *cubic) { void ngtcp2_cc_cubic_init(ngtcp2_cc_cubic *cubic, ngtcp2_log *log, ngtcp2_rst *rst) { - memset(cubic, 0, sizeof(*cubic)); - - cubic->cc.log = log; - cubic->cc.on_ack_recv = ngtcp2_cc_cubic_cc_on_ack_recv; - cubic->cc.congestion_event = ngtcp2_cc_cubic_cc_congestion_event; - cubic->cc.on_spurious_congestion = ngtcp2_cc_cubic_cc_on_spurious_congestion; - cubic->cc.on_persistent_congestion = - ngtcp2_cc_cubic_cc_on_persistent_congestion; - cubic->cc.reset = ngtcp2_cc_cubic_cc_reset; - - cubic->rst = rst; + *cubic = (ngtcp2_cc_cubic){ + .cc = + { + .log = log, + .on_ack_recv = ngtcp2_cc_cubic_cc_on_ack_recv, + .congestion_event = ngtcp2_cc_cubic_cc_congestion_event, + .on_spurious_congestion = ngtcp2_cc_cubic_cc_on_spurious_congestion, + .on_persistent_congestion = ngtcp2_cc_cubic_cc_on_persistent_congestion, + .reset = ngtcp2_cc_cubic_cc_reset, + }, + .rst = rst, + }; cubic_cc_reset(cubic); } @@ -223,23 +226,45 @@ uint64_t ngtcp2_cbrt(uint64_t n) { #define NGTCP2_HS_CSS_GROWTH_DIVISOR 4 #define NGTCP2_HS_CSS_ROUNDS 5 -static int64_t cubic_cc_compute_w_cubic(ngtcp2_cc_cubic *cubic, - const ngtcp2_conn_stat *cstat, - ngtcp2_tstamp ts) { +static uint64_t cubic_cc_compute_w_cubic(ngtcp2_cc_cubic *cubic, + const ngtcp2_conn_stat *cstat, + ngtcp2_tstamp ts) { ngtcp2_duration t = ts - cubic->current.epoch_start; - int64_t tx = (int64_t)((t << 10) / NGTCP2_SECONDS); - int64_t time_delta = ngtcp2_min_int64(tx - cubic->current.k, 3600 << 10); - int64_t delta = ((((time_delta * time_delta) >> 10) * time_delta) >> 20) * - (int64_t)cstat->max_tx_udp_payload_size * 4 / 10; + uint64_t tx_m = (t << 10) / NGTCP2_SECONDS; + int neg = tx_m < cubic->current.k_m; + uint64_t time_delta_m; + uint64_t delta; + + /* Avoid signed bit-shift */ + if (neg) { + time_delta_m = cubic->current.k_m - tx_m; + } else { + time_delta_m = tx_m - cubic->current.k_m; + } + + time_delta_m = ngtcp2_min_uint64(time_delta_m, 3600 << 10); + + delta = ((((time_delta_m * time_delta_m) >> 10) * time_delta_m) >> 10) * + cstat->max_tx_udp_payload_size * 4 / 10; + delta >>= 10; + + if (neg) { + if (cubic->current.w_max < delta) { + /* Negative w_cubic is not interesting. */ + return 0; + } - return (int64_t)cubic->current.w_max + delta; + return cubic->current.w_max - delta; + } + + return cubic->current.w_max + delta; } void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts) { ngtcp2_cc_cubic *cubic = ngtcp2_struct_of(cc, ngtcp2_cc_cubic, cc); - int64_t w_cubic, w_cubic_next; + uint64_t w_cubic, w_cubic_next; uint64_t target, m; ngtcp2_duration rtt_thresh; int round_start; @@ -346,13 +371,12 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cubic, cstat, ts - cubic->current.app_limited_duration + cstat->smoothed_rtt); - if (w_cubic_next < (int64_t)cstat->cwnd) { + if (w_cubic_next < cstat->cwnd) { target = cstat->cwnd; - } else if (2 * w_cubic_next > 3 * (int64_t)cstat->cwnd) { + } else if (2 * w_cubic_next > 3 * cstat->cwnd) { target = cstat->cwnd * 3 / 2; } else { - assert(w_cubic_next >= 0); - target = (uint64_t)w_cubic_next; + target = w_cubic_next; } m = ack->bytes_delivered * cstat->max_tx_udp_payload_size + @@ -365,19 +389,19 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cubic->current.w_est += m / cstat->cwnd; } - if ((int64_t)cubic->current.w_est > w_cubic) { + if (cubic->current.w_est > w_cubic) { cstat->cwnd = cubic->current.w_est; } else { m = (target - cstat->cwnd) * cstat->max_tx_udp_payload_size + cubic->current.pending_bytes_delivered; - cstat->cwnd += m / cstat->cwnd; cubic->current.pending_bytes_delivered = m % cstat->cwnd; + cstat->cwnd += m / cstat->cwnd; } ngtcp2_log_info(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, "%" PRIu64 " bytes acked, cubic-ca cwnd=%" PRIu64 - " k=%" PRIi64 " target=%" PRIu64 " w_est=%" PRIu64, - ack->bytes_delivered, cstat->cwnd, cubic->current.k, target, + " k_m=%" PRIu64 " target=%" PRIu64 " w_est=%" PRIu64, + ack->bytes_delivered, cstat->cwnd, cubic->current.k_m, target, cubic->current.w_est); } @@ -413,6 +437,9 @@ void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cubic->current.w_max = cstat->cwnd; } + cubic->current.w_max = + ngtcp2_max_uint64(cubic->current.w_max, 2 * cstat->max_tx_udp_payload_size); + cstat->ssthresh = cstat->cwnd * 7 / 10; if (cubic->rst->rs.delivered * 2 < cstat->cwnd) { @@ -430,17 +457,12 @@ void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cubic->current.w_est = cstat->cwnd; - if (cstat->cwnd < cubic->current.w_max) { - cwnd_delta = cubic->current.w_max - cstat->cwnd; - } else { - cwnd_delta = cstat->cwnd - cubic->current.w_max; - } + assert(cubic->current.w_max >= cstat->cwnd); - cubic->current.k = (int64_t)ngtcp2_cbrt((cwnd_delta << 30) * 10 / 4 / - cstat->max_tx_udp_payload_size); - if (cstat->cwnd >= cubic->current.w_max) { - cubic->current.k = -cubic->current.k; - } + cwnd_delta = cubic->current.w_max - cstat->cwnd; + + cubic->current.k_m = + ngtcp2_cbrt((cwnd_delta << 30) * 10 / 4 / cstat->max_tx_udp_payload_size); ngtcp2_log_info(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, "reduce cwnd because of packet loss cwnd=%" PRIu64, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h index 296a1a433f..e4e19e1aa6 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h @@ -329,7 +329,8 @@ void ngtcp2_cc_reno_cc_reset(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, typedef struct ngtcp2_cubic_vars { uint64_t cwnd_prior; uint64_t w_max; - int64_t k; + /* CUBIC K with 10 bits extra precision. */ + uint64_t k_m; ngtcp2_tstamp epoch_start; uint64_t w_est; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c index 6abebee33a..393c2281f1 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c @@ -39,6 +39,7 @@ #include "ngtcp2_net.h" #include "ngtcp2_transport_params.h" #include "ngtcp2_settings.h" +#include "ngtcp2_callbacks.h" #include "ngtcp2_tstamp.h" #include "ngtcp2_frame_chain.h" @@ -283,6 +284,33 @@ static int conn_call_remove_connection_id(ngtcp2_conn *conn, return 0; } +static int conn_call_begin_path_validation(ngtcp2_conn *conn, + const ngtcp2_pv *pv) { + int rv; + uint32_t flags = NGTCP2_PATH_VALIDATION_FLAG_NONE; + const ngtcp2_path *old_path = NULL; + + if (!pv || !conn->callbacks.begin_path_validation) { + return 0; + } + + if (pv->flags & NGTCP2_PV_FLAG_PREFERRED_ADDR) { + flags |= NGTCP2_PATH_VALIDATION_FLAG_PREFERRED_ADDR; + } + + if (pv->flags & NGTCP2_PV_FLAG_FALLBACK_PRESENT) { + old_path = &pv->fallback_dcid.ps.path; + } + + rv = conn->callbacks.begin_path_validation(conn, flags, &pv->dcid.ps.path, + old_path, conn->user_data); + if (rv != 0) { + return NGTCP2_ERR_CALLBACK_FAILURE; + } + + return 0; +} + static int conn_call_path_validation(ngtcp2_conn *conn, const ngtcp2_pv *pv, ngtcp2_path_validation_result res) { int rv; @@ -668,13 +696,13 @@ static int conn_call_recv_tx_key(ngtcp2_conn *conn, return 0; } +// pktns_init initializes |pktns|. It assumes that the object pointed +// by |pktns| is zero-cleared. static void pktns_init(ngtcp2_pktns *pktns, ngtcp2_pktns_id pktns_id, ngtcp2_rst *rst, ngtcp2_cc *cc, int64_t initial_pkt_num, ngtcp2_log *log, ngtcp2_qlog *qlog, ngtcp2_objalloc *rtb_entry_objalloc, ngtcp2_objalloc *frc_objalloc, const ngtcp2_mem *mem) { - memset(pktns, 0, sizeof(*pktns)); - ngtcp2_gaptr_init(&pktns->rx.pngap, mem); pktns->tx.last_pkt_num = initial_pkt_num - 1; @@ -696,7 +724,7 @@ static int pktns_new(ngtcp2_pktns **ppktns, ngtcp2_pktns_id pktns_id, ngtcp2_log *log, ngtcp2_qlog *qlog, ngtcp2_objalloc *rtb_entry_objalloc, ngtcp2_objalloc *frc_objalloc, const ngtcp2_mem *mem) { - *ppktns = ngtcp2_mem_malloc(mem, sizeof(ngtcp2_pktns)); + *ppktns = ngtcp2_mem_calloc(mem, 1, sizeof(ngtcp2_pktns)); if (*ppktns == NULL) { return NGTCP2_ERR_NOMEM; } @@ -1109,13 +1137,16 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, uint32_t *preferred_versions; ngtcp2_settings settingsbuf; ngtcp2_transport_params paramsbuf; - (void)callbacks_version; + ngtcp2_callbacks callbacksbuf; + uint64_t map_seed; (void)settings_version; settings = ngtcp2_settings_convert_to_latest(&settingsbuf, settings_version, settings); params = ngtcp2_transport_params_convert_to_latest( ¶msbuf, transport_params_version, params); + callbacks = ngtcp2_callbacks_convert_to_latest(&callbacksbuf, + callbacks_version, callbacks); assert(settings->max_window <= NGTCP2_MAX_VARINT); assert(settings->max_stream_window <= NGTCP2_MAX_VARINT); @@ -1217,7 +1248,8 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, ngtcp2_pq_init(&(*pconn)->scid.used, retired_ts_less, mem); - ngtcp2_map_init(&(*pconn)->strms, mem); + callbacks->rand((uint8_t *)&map_seed, sizeof(map_seed), &settings->rand_ctx); + ngtcp2_map_init(&(*pconn)->strms, map_seed, mem); ngtcp2_pq_init(&(*pconn)->tx.strmq, cycle_less, mem); @@ -3090,6 +3122,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, ngtcp2_strm *strm; int pkt_empty = 1; uint64_t ndatalen = 0; + uint64_t wdatalen; int send_stream = 0; int stream_blocked = 0; int send_datagram = 0; @@ -3780,10 +3813,12 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, left = ngtcp2_ppe_left(ppe); if (*pfrc == NULL && send_stream && ngtcp2_pq_empty(&conn->tx.strmq) && - (ndatalen = ngtcp2_pkt_stream_max_datalen( + (wdatalen = ngtcp2_pkt_stream_max_datalen( vmsg->stream.strm->stream_id, vmsg->stream.strm->tx.offset, ndatalen, left)) != (size_t)-1 && - (ndatalen || datalen == 0)) { + (wdatalen == ndatalen || wdatalen >= NGTCP2_MIN_STREAM_DATALEN) && + (wdatalen || datalen == 0)) { + ndatalen = wdatalen; datacnt = ngtcp2_vec_copy_at_most(data, NGTCP2_MAX_STREAM_DATACNT, vmsg->stream.data, vmsg->stream.datacnt, (size_t)ndatalen); @@ -5786,7 +5821,7 @@ static int conn_recv_path_response(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd, conn->pv = npv; - return 0; + return conn_call_begin_path_validation(conn, conn->pv); } /* @@ -6543,6 +6578,7 @@ static int is_unrecoverable_error(int liberr) { case NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM: case NGTCP2_ERR_TRANSPORT_PARAM: case NGTCP2_ERR_VERSION_NEGOTIATION_FAILURE: + case NGTCP2_ERR_INTERNAL: return 1; } @@ -7056,23 +7092,23 @@ static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr) { fin = (strm->flags & NGTCP2_STRM_FLAG_SHUT_RD) && rx_offset == strm->rx.last_offset; - if (fin || datalen) { - if (fin) { - sdflags |= NGTCP2_STREAM_DATA_FLAG_FIN; - } - if (!conn_is_tls_handshake_completed(conn)) { - sdflags |= NGTCP2_STREAM_DATA_FLAG_0RTT; - } - rv = conn_call_recv_stream_data(conn, strm, sdflags, offset, data, - (size_t)datalen); - if (rv != 0) { - return rv; - } + assert(fin || datalen); - rv = conn_emit_pending_stream_data(conn, strm, rx_offset); - if (rv != 0) { - return rv; - } + if (fin) { + sdflags |= NGTCP2_STREAM_DATA_FLAG_FIN; + } + if (!conn_is_tls_handshake_completed(conn)) { + sdflags |= NGTCP2_STREAM_DATA_FLAG_0RTT; + } + rv = conn_call_recv_stream_data(conn, strm, sdflags, offset, data, + (size_t)datalen); + if (rv != 0) { + return rv; + } + + rv = conn_emit_pending_stream_data(conn, strm, rx_offset); + if (rv != 0) { + return rv; } } else if (fr->datacnt && !(strm->flags & NGTCP2_STRM_FLAG_STOP_SENDING)) { rv = ngtcp2_strm_recv_reordering(strm, fr->data[0].base, fr->data[0].len, @@ -8030,7 +8066,12 @@ static int conn_select_preferred_addr(ngtcp2_conn *conn) { conn->pv = pv; - return conn_call_activate_dcid(conn, &pv->dcid); + rv = conn_call_activate_dcid(conn, &pv->dcid); + if (rv != 0) { + return rv; + } + + return conn_call_begin_path_validation(conn, conn->pv); } /* @@ -8421,7 +8462,7 @@ static int conn_recv_non_probing_pkt_on_new_path(ngtcp2_conn *conn, conn->pv = pv; - return 0; + return conn_call_begin_path_validation(conn, conn->pv); } /* @@ -13138,7 +13179,12 @@ int ngtcp2_conn_initiate_immediate_migration(ngtcp2_conn *conn, conn->pv = pv; } - return conn_call_activate_dcid(conn, &conn->dcid.current); + rv = conn_call_activate_dcid(conn, &conn->dcid.current); + if (rv != 0) { + return rv; + } + + return conn_call_begin_path_validation(conn, conn->pv); } int ngtcp2_conn_initiate_migration(ngtcp2_conn *conn, const ngtcp2_path *path, @@ -13178,7 +13224,12 @@ int ngtcp2_conn_initiate_migration(ngtcp2_conn *conn, const ngtcp2_path *path, conn->pv = pv; - return conn_call_activate_dcid(conn, &pv->dcid); + rv = conn_call_activate_dcid(conn, &pv->dcid); + if (rv != 0) { + return rv; + } + + return conn_call_begin_path_validation(conn, conn->pv); } uint64_t ngtcp2_conn_get_max_data_left(ngtcp2_conn *conn) { @@ -13454,7 +13505,7 @@ ngtcp2_ssize ngtcp2_pkt_write_connection_close( ngtcp2_crypto_km ckm; ngtcp2_crypto_cc cc; ngtcp2_ppe ppe; - ngtcp2_frame fr = {0}; + ngtcp2_frame fr; int rv; ngtcp2_pkt_hd_init(&hd, NGTCP2_PKT_FLAG_LONG_FORM, NGTCP2_PKT_INITIAL, dcid, @@ -13485,11 +13536,12 @@ ngtcp2_ssize ngtcp2_pkt_write_connection_close( return NGTCP2_ERR_NOBUF; } - fr.type = NGTCP2_FRAME_CONNECTION_CLOSE; - fr.connection_close.error_code = error_code; - fr.connection_close.frame_type = 0; - fr.connection_close.reasonlen = reasonlen; - fr.connection_close.reason = (uint8_t *)reason; + fr.connection_close = (ngtcp2_connection_close){ + .type = NGTCP2_FRAME_CONNECTION_CLOSE, + .error_code = error_code, + .reasonlen = reasonlen, + .reason = (uint8_t *)reason, + }; rv = ngtcp2_ppe_encode_frame(&ppe, &fr); if (rv != 0) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h index de78bcb807..d5c3f61d2a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h @@ -292,8 +292,11 @@ void ngtcp2_ksl_clear(ngtcp2_ksl *ksl); /* * ngtcp2_ksl_nth_node returns the |n|th node under |blk|. */ -#define ngtcp2_ksl_nth_node(KSL, BLK, N) \ - ((ngtcp2_ksl_node *)(void *)((BLK)->nodes + (KSL)->nodelen * (N))) +static inline ngtcp2_ksl_node *ngtcp2_ksl_nth_node(const ngtcp2_ksl *ksl, + const ngtcp2_ksl_blk *blk, + size_t n) { + return (ngtcp2_ksl_node *)(void *)(blk->nodes + ksl->nodelen * n); +} #ifndef WIN32 /* @@ -315,18 +318,21 @@ void ngtcp2_ksl_it_init(ngtcp2_ksl_it *it, const ngtcp2_ksl *ksl, * |it| points to. It is undefined to call this function when * ngtcp2_ksl_it_end(it) returns nonzero. */ -#define ngtcp2_ksl_it_get(IT) \ - ngtcp2_ksl_nth_node((IT)->ksl, (IT)->blk, (IT)->i)->data +static inline void *ngtcp2_ksl_it_get(const ngtcp2_ksl_it *it) { + return ngtcp2_ksl_nth_node(it->ksl, it->blk, it->i)->data; +} /* * ngtcp2_ksl_it_next advances the iterator by one. It is undefined * if this function is called when ngtcp2_ksl_it_end(it) returns * nonzero. */ -#define ngtcp2_ksl_it_next(IT) \ - (++(IT)->i == (IT)->blk->n && (IT)->blk->next \ - ? ((IT)->blk = (IT)->blk->next, (IT)->i = 0) \ - : 0) +static inline void ngtcp2_ksl_it_next(ngtcp2_ksl_it *it) { + if (++it->i == it->blk->n && it->blk->next) { + it->blk = it->blk->next; + it->i = 0; + } +} /* * ngtcp2_ksl_it_prev moves backward the iterator by one. It is @@ -339,8 +345,9 @@ void ngtcp2_ksl_it_prev(ngtcp2_ksl_it *it); * ngtcp2_ksl_it_end returns nonzero if |it| points to the one beyond * the last node. */ -#define ngtcp2_ksl_it_end(IT) \ - ((IT)->blk->n == (IT)->i && (IT)->blk->next == NULL) +static inline int ngtcp2_ksl_it_end(const ngtcp2_ksl_it *it) { + return it->blk->n == it->i && it->blk->next == NULL; +} /* * ngtcp2_ksl_it_begin returns nonzero if |it| points to the first @@ -354,8 +361,9 @@ int ngtcp2_ksl_it_begin(const ngtcp2_ksl_it *it); * It is undefined to call this function when ngtcp2_ksl_it_end(it) * returns nonzero. */ -#define ngtcp2_ksl_it_key(IT) \ - ((ngtcp2_ksl_key *)ngtcp2_ksl_nth_node((IT)->ksl, (IT)->blk, (IT)->i)->key) +static inline ngtcp2_ksl_key *ngtcp2_ksl_it_key(const ngtcp2_ksl_it *it) { + return (ngtcp2_ksl_key *)ngtcp2_ksl_nth_node(it->ksl, it->blk, it->i)->key; +} /* * ngtcp2_ksl_range_compar is an implementation of ngtcp2_ksl_compar. diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c index fc4eb44351..e006c22e4e 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c @@ -594,9 +594,9 @@ void ngtcp2_log_rx_sr(ngtcp2_log *log, const ngtcp2_pkt_stateless_reset *sr) { return; } - memset(&shd, 0, sizeof(shd)); - - shd.type = NGTCP2_PKT_STATELESS_RESET; + shd = (ngtcp2_pkt_hd){ + .type = NGTCP2_PKT_STATELESS_RESET, + }; log->log_printf( log->user_data, (NGTCP2_LOG_PKT " token=0x%s randlen=%zu"), diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c index 5e4726e63f..246c779f29 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c @@ -33,10 +33,11 @@ #define NGTCP2_INITIAL_HASHBITS 4 -void ngtcp2_map_init(ngtcp2_map *map, const ngtcp2_mem *mem) { +void ngtcp2_map_init(ngtcp2_map *map, uint64_t seed, const ngtcp2_mem *mem) { map->mem = mem; map->hashbits = 0; map->table = NULL; + map->seed = seed; map->size = 0; } @@ -77,8 +78,14 @@ int ngtcp2_map_each(const ngtcp2_map *map, int (*func)(void *data, void *ptr), return 0; } -static size_t hash(ngtcp2_map_key_type key, size_t bits) { - return (size_t)((key * 11400714819323198485llu) >> (64 - bits)); +static size_t map_hash(const ngtcp2_map *map, ngtcp2_map_key_type key) { + /* hasher from + https://github.com/rust-lang/rustc-hash/blob/dc5c33f1283de2da64d8d7a06401d91aded03ad4/src/lib.rs + We do not perform finalization here because we use top bits + anyway. */ + key += map->seed; + key *= 0xf1357aea2e62a9c5ull; + return (size_t)((key * 11400714819323198485llu) >> (64 - map->hashbits)); } static void map_bucket_swap(ngtcp2_map_bucket *a, ngtcp2_map_bucket *b) { @@ -109,28 +116,28 @@ void ngtcp2_map_print_distance(const ngtcp2_map *map) { continue; } - idx = hash(bkt->key, map->hashbits); + idx = map_hash(map, bkt->key); fprintf(stderr, "@%zu hash=%zu key=%" PRIu64 " base=%zu distance=%u\n", i, - hash(bkt->key, map->hashbits), bkt->key, idx, bkt->psl); + map_hash(map, bkt->key), bkt->key, idx, bkt->psl); } } #endif /* !defined(WIN32) */ -static int insert(ngtcp2_map_bucket *table, size_t hashbits, - ngtcp2_map_key_type key, void *data) { - size_t idx = hash(key, hashbits); +static int map_insert(ngtcp2_map *map, ngtcp2_map_key_type key, void *data) { + size_t idx = map_hash(map, key); ngtcp2_map_bucket b = { .key = key, .data = data, }; ngtcp2_map_bucket *bkt; - size_t mask = (1u << hashbits) - 1; + size_t mask = (1u << map->hashbits) - 1; for (;;) { - bkt = &table[idx]; + bkt = &map->table[idx]; if (bkt->data == NULL) { *bkt = b; + ++map->size; return 0; } @@ -151,15 +158,19 @@ static int insert(ngtcp2_map_bucket *table, size_t hashbits, static int map_resize(ngtcp2_map *map, size_t new_hashbits) { size_t i; - ngtcp2_map_bucket *new_table; ngtcp2_map_bucket *bkt; size_t tablelen; int rv; + ngtcp2_map new_map = { + .table = ngtcp2_mem_calloc(map->mem, 1u << new_hashbits, + sizeof(ngtcp2_map_bucket)), + .mem = map->mem, + .seed = map->seed, + .hashbits = new_hashbits, + }; (void)rv; - new_table = - ngtcp2_mem_calloc(map->mem, 1u << new_hashbits, sizeof(ngtcp2_map_bucket)); - if (new_table == NULL) { + if (new_map.table == NULL) { return NGTCP2_ERR_NOMEM; } @@ -172,15 +183,15 @@ static int map_resize(ngtcp2_map *map, size_t new_hashbits) { continue; } - rv = insert(new_table, new_hashbits, bkt->key, bkt->data); + rv = map_insert(&new_map, bkt->key, bkt->data); assert(0 == rv); } } ngtcp2_mem_free(map->mem, map->table); + map->table = new_map.table; map->hashbits = new_hashbits; - map->table = new_table; return 0; } @@ -190,10 +201,10 @@ int ngtcp2_map_insert(ngtcp2_map *map, ngtcp2_map_key_type key, void *data) { assert(data); - /* Load factor is 0.75 */ + /* Load factor is 7/8 */ /* Under the very initial condition, that is map->size == 0 and - map->hashbits == 0, 4 > 3 still holds nicely. */ - if ((map->size + 1) * 4 > (1u << map->hashbits) * 3) { + map->hashbits == 0, 8 > 7 still holds nicely. */ + if ((map->size + 1) * 8 > (1u << map->hashbits) * 7) { if (map->hashbits) { rv = map_resize(map, map->hashbits + 1); if (rv != 0) { @@ -207,13 +218,11 @@ int ngtcp2_map_insert(ngtcp2_map *map, ngtcp2_map_key_type key, void *data) { } } - rv = insert(map->table, map->hashbits, key, data); + rv = map_insert(map, key, data); if (rv != 0) { return rv; } - ++map->size; - return 0; } @@ -227,7 +236,7 @@ void *ngtcp2_map_find(const ngtcp2_map *map, ngtcp2_map_key_type key) { return NULL; } - idx = hash(key, map->hashbits); + idx = map_hash(map, key); mask = (1u << map->hashbits) - 1; for (;;) { @@ -256,7 +265,7 @@ int ngtcp2_map_remove(ngtcp2_map *map, ngtcp2_map_key_type key) { return NGTCP2_ERR_INVALID_ARGUMENT; } - idx = hash(key, map->hashbits); + idx = map_hash(map, key); mask = (1u << map->hashbits) - 1; for (;;) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h index 9d882fb200..0c1a76552a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h @@ -47,6 +47,7 @@ typedef struct ngtcp2_map_bucket { typedef struct ngtcp2_map { ngtcp2_map_bucket *table; const ngtcp2_mem *mem; + uint64_t seed; size_t size; size_t hashbits; } ngtcp2_map; @@ -54,7 +55,7 @@ typedef struct ngtcp2_map { /* * ngtcp2_map_init initializes the map |map|. */ -void ngtcp2_map_init(ngtcp2_map *map, const ngtcp2_mem *mem); +void ngtcp2_map_init(ngtcp2_map *map, uint64_t seed, const ngtcp2_mem *mem); /* * ngtcp2_map_free deallocates any resources allocated for |map|. The diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h index 756076e7a7..ec72708e04 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h @@ -137,6 +137,13 @@ v2. */ #define NGTCP2_PKT_TYPE_RETRY_V2 0x0 +/* NGTCP2_MIN_STREAM_DATALEN is the minimum length of STREAM frame to + avoid too small frame. It is not always enforced for various + reasons. For example, due to flow control, we might have fewer + bytes available to send. Therefore, it is only applied when the + length of data to send is larger than this limit. */ +#define NGTCP2_MIN_STREAM_DATALEN 256 + typedef struct ngtcp2_pkt_retry { ngtcp2_cid odcid; uint8_t *token; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.h index d490524805..73efb5255f 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.h @@ -110,7 +110,9 @@ void ngtcp2_ringbuf_resize(ngtcp2_ringbuf *rb, size_t len); void *ngtcp2_ringbuf_get(const ngtcp2_ringbuf *rb, size_t offset); /* ngtcp2_ringbuf_len returns the number of elements stored. */ -#define ngtcp2_ringbuf_len(RB) ((RB)->len) +static inline size_t ngtcp2_ringbuf_len(const ngtcp2_ringbuf *rb) { + return rb->len; +} /* ngtcp2_ringbuf_full returns nonzero if |rb| is full. */ int ngtcp2_ringbuf_full(const ngtcp2_ringbuf *rb); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c index 181691f3e6..6f44c8ac8d 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c @@ -38,7 +38,6 @@ void ngtcp2_rs_init(ngtcp2_rs *rs) { rs->prior_ts = UINT64_MAX; rs->tx_in_flight = 0; rs->lost = 0; - rs->prior_lost = 0; rs->send_elapsed = 0; rs->ack_elapsed = 0; rs->last_end_seq = -1; @@ -58,7 +57,6 @@ void ngtcp2_rst_reset(ngtcp2_rst *rst) { rst->app_limited = 0; rst->is_cwnd_limited = 0; rst->lost = 0; - rst->valid_after_seq = rst->last_seq; } void ngtcp2_rst_on_pkt_sent(ngtcp2_rst *rst, ngtcp2_rtb_entry *ent, @@ -89,7 +87,6 @@ void ngtcp2_rst_on_ack_recv(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat) { rs->interval = ngtcp2_max_uint64(rs->send_elapsed, rs->ack_elapsed); rs->delivered = rst->delivered - rs->prior_delivered; - rs->lost = rst->lost - rs->prior_lost; if (rs->interval < cstat->min_rtt) { rs->interval = UINT64_MAX; @@ -103,31 +100,23 @@ void ngtcp2_rst_on_ack_recv(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat) { cstat->delivery_rate_sec = rs->delivered * NGTCP2_SECONDS / rs->interval; } -static int rst_is_newest_pkt(const ngtcp2_rst *rst, const ngtcp2_rtb_entry *ent, - const ngtcp2_rs *rs) { - return ent->ts > rst->first_sent_ts || - (ent->ts == rst->first_sent_ts && ent->rst.end_seq > rs->last_end_seq); +static int is_newest_pkt(const ngtcp2_rtb_entry *ent, const ngtcp2_rs *rs) { + return ent->rst.end_seq > rs->last_end_seq; } void ngtcp2_rst_update_rate_sample(ngtcp2_rst *rst, const ngtcp2_rtb_entry *ent, ngtcp2_tstamp ts) { ngtcp2_rs *rs = &rst->rs; - if (ent->rst.end_seq <= rst->valid_after_seq) { - return; - } - rst->delivered += ent->pktlen; rst->delivered_ts = ts; - if (rs->prior_ts == UINT64_MAX || rst_is_newest_pkt(rst, ent, rs)) { + if (rs->prior_ts == UINT64_MAX || is_newest_pkt(ent, rs)) { rs->prior_delivered = ent->rst.delivered; rs->prior_ts = ent->rst.delivered_ts; rs->is_app_limited = ent->rst.is_app_limited; rs->send_elapsed = ent->ts - ent->rst.first_sent_ts; rs->ack_elapsed = rst->delivered_ts - ent->rst.delivered_ts; - rs->tx_in_flight = ent->rst.tx_in_flight; - rs->prior_lost = ent->rst.lost; rs->last_end_seq = ent->rst.end_seq; rst->first_sent_ts = ent->ts; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h index c2580306cc..1bb624de79 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h @@ -48,7 +48,6 @@ typedef struct ngtcp2_rs { ngtcp2_tstamp prior_ts; uint64_t tx_in_flight; uint64_t lost; - uint64_t prior_lost; ngtcp2_duration send_elapsed; ngtcp2_duration ack_elapsed; int64_t last_end_seq; @@ -73,10 +72,6 @@ typedef struct ngtcp2_rst { across all packet number spaces, we can replace this with a packet number. */ int64_t last_seq; - /* valid_after_seq is the sequence number, and ignore a packet if - the sequence number of the packet is less than or equal to this - number. */ - int64_t valid_after_seq; int is_cwnd_limited; } ngtcp2_rst; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c index 101dcaa99f..b50f482bc7 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c @@ -43,16 +43,19 @@ ngtcp2_objalloc_def(rtb_entry, ngtcp2_rtb_entry, oplent) static void rtb_entry_init(ngtcp2_rtb_entry *ent, const ngtcp2_pkt_hd *hd, ngtcp2_frame_chain *frc, ngtcp2_tstamp ts, size_t pktlen, uint16_t flags) { - memset(ent, 0, sizeof(*ent)); - - ent->hd.pkt_num = hd->pkt_num; - ent->hd.type = hd->type; - ent->hd.flags = hd->flags; - ent->frc = frc; - ent->ts = ts; - ent->lost_ts = UINT64_MAX; - ent->pktlen = pktlen; - ent->flags = flags; + *ent = (ngtcp2_rtb_entry){ + .hd = + { + .pkt_num = hd->pkt_num, + .type = hd->type, + .flags = hd->flags, + }, + .frc = frc, + .ts = ts, + .lost_ts = UINT64_MAX, + .pktlen = pktlen, + .flags = flags, + }; } int ngtcp2_rtb_entry_objalloc_new(ngtcp2_rtb_entry **pent, @@ -451,13 +454,17 @@ static int rtb_on_pkt_lost(ngtcp2_rtb *rtb, ngtcp2_rtb_entry *ent, if (ent->flags & (NGTCP2_RTB_ENTRY_FLAG_PMTUD_PROBE | NGTCP2_RTB_ENTRY_FLAG_SKIP)) { ++rtb->num_lost_ignore_pkts; - } else if (rtb->cc->on_pkt_lost) { - cc->on_pkt_lost(cc, cstat, - ngtcp2_cc_pkt_init(&pkt, ent->hd.pkt_num, ent->pktlen, - pktns->id, ent->ts, ent->rst.lost, - ent->rst.tx_in_flight, - ent->rst.is_app_limited), - ts); + } else if (ent->hd.pkt_num >= rtb->cc_pkt_num) { + rtb->rst->lost += ent->pktlen; + + if (rtb->cc->on_pkt_lost) { + cc->on_pkt_lost(cc, cstat, + ngtcp2_cc_pkt_init(&pkt, ent->hd.pkt_num, ent->pktlen, + pktns->id, ent->ts, ent->rst.lost, + ent->rst.tx_in_flight, + ent->rst.is_app_limited), + ts); + } } if (ent->flags & NGTCP2_RTB_ENTRY_FLAG_PTO_RECLAIMED) { @@ -704,6 +711,8 @@ static void rtb_on_pkt_acked(ngtcp2_rtb *rtb, ngtcp2_rtb_entry *ent, ngtcp2_cc *cc = rtb->cc; ngtcp2_cc_pkt pkt; + assert(ent->hd.pkt_num >= rtb->cc_pkt_num); + ngtcp2_rst_update_rate_sample(rtb->rst, ent, ts); if (cc->on_pkt_acked) { @@ -843,7 +852,6 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, } rtb_remove(rtb, &it, &acked_ent, ent, cstat); - ++num_acked; } for (i = 0; i < fr->rangecnt; ++i) { @@ -873,7 +881,6 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, } rtb_remove(rtb, &it, &acked_ent, ent, cstat); - ++num_acked; } } @@ -882,7 +889,8 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, ngtcp2_max_uint64(pkt_ts - largest_pkt_sent_ts, NGTCP2_NANOSECONDS); rv = ngtcp2_conn_update_rtt(conn, cc_ack.rtt, fr->ack_delay_unscaled, ts); - if (rv == 0 && cc->new_rtt_sample) { + if (rv == 0 && cc->new_rtt_sample && + rtb->largest_acked_tx_pkt_num >= rtb->cc_pkt_num) { cc->new_rtt_sample(cc, cstat, ts); } } @@ -904,9 +912,12 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, cc_ack.bytes_delivered += ent->pktlen; cc_ack.pkt_delivered = ent->rst.delivered; + + rtb_on_pkt_acked(rtb, ent, cstat, pktns, ts); + + ++num_acked; } - rtb_on_pkt_acked(rtb, ent, cstat, pktns, ts); acked_ent = ent->next; ngtcp2_rtb_entry_objalloc_del(ent, rtb->rtb_entry_objalloc, rtb->frc_objalloc, rtb->mem); @@ -921,6 +932,7 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, for (ent = acked_ent; ent; ent = acked_ent) { rtb_on_pkt_acked(rtb, ent, cstat, pktns, ts); acked_ent = ent->next; + ++num_acked; ngtcp2_rtb_entry_objalloc_del(ent, rtb->rtb_entry_objalloc, rtb->frc_objalloc, rtb->mem); } @@ -942,8 +954,6 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, } } - rtb->rst->lost += cc_ack.bytes_lost; - cc_ack.largest_pkt_sent_ts = largest_pkt_sent_ts; if (num_acked && cc->on_ack_recv) { cc->on_ack_recv(cc, cstat, &cc_ack, ts); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c index 8ea969c4ad..70ec6ee2fe 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c @@ -120,7 +120,7 @@ uint64_t ngtcp2_strm_rx_offset(const ngtcp2_strm *strm) { /* strm_rob_heavily_fragmented returns nonzero if the number of gaps in |rob| exceeds the limit. */ static int strm_rob_heavily_fragmented(const ngtcp2_rob *rob) { - return ngtcp2_ksl_len(&rob->gapksl) >= 5000; + return ngtcp2_ksl_len(&rob->gapksl) >= 1000; } int ngtcp2_strm_recv_reordering(ngtcp2_strm *strm, const uint8_t *data, @@ -138,11 +138,16 @@ int ngtcp2_strm_recv_reordering(ngtcp2_strm *strm, const uint8_t *data, } } + rv = ngtcp2_rob_push(strm->rx.rob, offset, data, datalen); + if (rv != 0) { + return rv; + } + if (strm_rob_heavily_fragmented(strm->rx.rob)) { return NGTCP2_ERR_INTERNAL; } - return ngtcp2_rob_push(strm->rx.rob, offset, data, datalen); + return 0; } void ngtcp2_strm_update_rx_offset(ngtcp2_strm *strm, uint64_t offset) { @@ -196,6 +201,8 @@ int ngtcp2_strm_streamfrq_push(ngtcp2_strm *strm, ngtcp2_frame_chain *frc) { if (rv != 0) { return rv; } + } else if (ngtcp2_ksl_len(strm->tx.streamfrq) >= 1000) { + return NGTCP2_ERR_INTERNAL; } return ngtcp2_ksl_insert(strm->tx.streamfrq, NULL, &frc->fr.stream.offset, @@ -398,7 +405,11 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc, datalen = ngtcp2_vec_len(fr->data, fr->datacnt); /* datalen could be zero if 0 length STREAM has been sent */ - if (left == 0 && datalen) { + /* We might see more data in the queue, then left < datalen could be + true. We only see the first one for now. */ + if ((fr->type == NGTCP2_FRAME_STREAM && + (left < datalen && left < NGTCP2_MIN_STREAM_DATALEN)) || + (left == 0 && datalen)) { rv = ngtcp2_ksl_insert(strm->tx.streamfrq, NULL, &fr->offset, frc); if (rv != 0) { assert(ngtcp2_err_is_fatal(rv)); @@ -737,7 +748,16 @@ int ngtcp2_strm_ack_data(ngtcp2_strm *strm, uint64_t offset, uint64_t len) { } } - return ngtcp2_gaptr_push(strm->tx.acked_offset, offset, len); + rv = ngtcp2_gaptr_push(strm->tx.acked_offset, offset, len); + if (rv != 0) { + return rv; + } + + if (ngtcp2_ksl_len(&strm->tx.acked_offset->gap) >= 1000) { + return NGTCP2_ERR_INTERNAL; + } + + return 0; } void ngtcp2_strm_set_app_error_code(ngtcp2_strm *strm, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c index ca517532e3..d652ece4e0 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c @@ -523,12 +523,12 @@ int ngtcp2_transport_params_decode_versioned(int transport_params_version, } /* Set default values */ - memset(params, 0, sizeof(*params)); - params->max_udp_payload_size = NGTCP2_DEFAULT_MAX_RECV_UDP_PAYLOAD_SIZE; - params->ack_delay_exponent = NGTCP2_DEFAULT_ACK_DELAY_EXPONENT; - params->max_ack_delay = NGTCP2_DEFAULT_MAX_ACK_DELAY; - params->active_connection_id_limit = - NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT; + *params = (ngtcp2_transport_params){ + .max_udp_payload_size = NGTCP2_DEFAULT_MAX_RECV_UDP_PAYLOAD_SIZE, + .ack_delay_exponent = NGTCP2_DEFAULT_ACK_DELAY_EXPONENT, + .max_ack_delay = NGTCP2_DEFAULT_MAX_ACK_DELAY, + .active_connection_id_limit = NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT, + }; p = end = data; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h index 55e735d164..d90a3204a9 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h @@ -33,13 +33,6 @@ #include "ngtcp2_mem.h" -/* - * ngtcp2_vec_lit is a convenient macro to fill the object pointed by - * |DEST| with the literal string |LIT|. - */ -#define ngtcp2_vec_lit(DEST, LIT) \ - ((DEST)->base = (uint8_t *)(LIT), (DEST)->len = sizeof(LIT) - 1, (DEST)) - /* * ngtcp2_vec_init initializes |vec| with the given parameters. It * returns |vec|. diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h index d7a27b9213..b0cc867cde 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h @@ -2971,6 +2971,28 @@ typedef int (*ngtcp2_update_key)( */ #define NGTCP2_PATH_VALIDATION_FLAG_NEW_TOKEN 0x02u +/** + * @functypedef + * + * :type:`ngtcp2_begin_path_validation` is a callback function which + * is called when the path validation has started. |flags| is zero or + * more of :macro:`NGTCP2_PATH_VALIDATION_FLAG_* + * `. |path| is the path that is + * being validated. |fallback_path|, if not NULL, is the path that is + * used when this validation fails. + * + * Currently, the flags may only contain + * :macro:`NGTCP2_PATH_VALIDATION_FLAG_PREFERRED_ADDR`. + * + * The callback function must return 0 if it succeeds. Returning + * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return + * immediately. + */ +typedef int (*ngtcp2_begin_path_validation)(ngtcp2_conn *conn, uint32_t flags, + const ngtcp2_path *path, + const ngtcp2_path *fallback_path, + void *user_data); + /** * @functypedef * @@ -3262,7 +3284,8 @@ typedef int (*ngtcp2_tls_early_data_rejected)(ngtcp2_conn *conn, void *user_data); #define NGTCP2_CALLBACKS_V1 1 -#define NGTCP2_CALLBACKS_VERSION NGTCP2_CALLBACKS_V1 +#define NGTCP2_CALLBACKS_V2 2 +#define NGTCP2_CALLBACKS_VERSION NGTCP2_CALLBACKS_V2 /** * @struct @@ -3527,6 +3550,13 @@ typedef struct ngtcp2_callbacks { * is only used by client. */ ngtcp2_tls_early_data_rejected tls_early_data_rejected; + /* The following fields have been added since NGTCP2_CALLBACKS_V2. */ + /** + * :member:`begin_path_validation` is a callback function which is + * invoked when a path validation has started. This field is + * available since v1.14.0. + */ + ngtcp2_begin_path_validation begin_path_validation; } ngtcp2_callbacks; /** diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index 5a261a2430..533f6d5ef6 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.13.0" +#define NGTCP2_VERSION "1.14.0" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x010d00 +#define NGTCP2_VERSION_NUM 0x010e00 #endif /* !defined(NGTCP2_VERSION_H) */ From be7b1e6bbfa1ec55175b1b7e5fe274eeb7b59a1f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 29 Jul 2025 18:01:42 +0200 Subject: [PATCH 033/675] Dockerfile: fix LegacyKeyValueFormat warnings --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5efcff5a53..cdf865d937 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM debian:trixie-slim AS builder # Environment -ENV BUILD_PKGS \ +ENV BUILD_PKGS=" \ autoconf \ automake \ gcc \ @@ -24,7 +24,7 @@ ENV BUILD_PKGS \ libxdp-dev \ make \ pkg-config \ - protobuf-c-compiler + protobuf-c-compiler" # Install dependencies RUN apt-get update && \ @@ -58,7 +58,7 @@ FROM debian:trixie-slim LABEL maintainer="Knot DNS " # Environment -ENV RUNTIME_PKGS \ +ENV RUNTIME_PKGS=" \ dbus \ libbpf1 \ libedit2 \ @@ -73,7 +73,7 @@ ENV RUNTIME_PKGS \ libngtcp2-16 \ libprotobuf-c1 \ liburcu8t64 \ - libxdp1 + libxdp1" # Install dependencies and create knot user and group ARG UID=53 From 9b19f4fe09679b1627e26581864e4a42396e116d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 31 Jul 2025 13:58:34 +0200 Subject: [PATCH 034/675] distro/pkg/nix: synchronize from downstream nixpkgs It's mostly just reformat, as nixpkgs has been moving to using automatic formatting. But also dnstap has been added, etc. I checked that `apkg build` works again, of course :-) --- distro/pkg/nix/default.nix | 119 ++++++++++++++++++++++-------- distro/pkg/nix/runtime-deps.patch | 7 +- 2 files changed, 90 insertions(+), 36 deletions(-) diff --git a/distro/pkg/nix/default.nix b/distro/pkg/nix/default.nix index 0cfaca1bfc..a506e09a73 100644 --- a/distro/pkg/nix/default.nix +++ b/distro/pkg/nix/default.nix @@ -1,8 +1,34 @@ -{ lib, stdenv, fetchurl, pkg-config, gnutls, liburcu, lmdb, libcap_ng, libidn2, libunistring -, systemd, nettle, libedit, zlib, libiconv, libintl, libmaxminddb, libbpf, nghttp2, libmnl -, ngtcp2-gnutls, xdp-tools -, autoreconfHook -, nixosTests, knot-resolver, knot-dns, runCommandLocal +{ + lib, + stdenv, + fetchurl, + pkg-config, + gnutls, + liburcu, + lmdb, + libcap_ng, + libidn2, + libunistring, + systemd, + nettle, + libedit, + zlib, + libiconv, + libintl, + libmaxminddb, + libbpf, + nghttp2, + libmnl, + ngtcp2-gnutls, + xdp-tools, + fstrm, + protobufc, + sphinx, + autoreconfHook, + nixosTests, + knot-resolver, + knot-dns, + runCommandLocal, }: stdenv.mkDerivation rec { @@ -14,12 +40,18 @@ stdenv.mkDerivation rec { sha256 = "{{ src_hash }}"; }; - outputs = [ "bin" "out" "dev" ]; + outputs = [ + "bin" + "out" + "dev" + ]; configureFlags = [ "--with-configdir=/etc/knot" "--with-rundir=/run/knot" "--with-storage=/var/lib/knot" + "--with-module-dnstap" + "--enable-dnstap" ]; patches = [ @@ -29,24 +61,46 @@ stdenv.mkDerivation rec { ./runtime-deps.patch ]; - nativeBuildInputs = [ pkg-config autoreconfHook ]; + # FIXME: sphinx is needed for now to get man-pages + nativeBuildInputs = [ + pkg-config + autoreconfHook + sphinx + ]; buildInputs = [ - gnutls liburcu libidn2 libunistring - nettle libedit - libiconv lmdb libintl + gnutls + liburcu + libidn2 + libunistring + nettle + libedit + libiconv + lmdb + libintl nghttp2 # DoH support in kdig - ngtcp2-gnutls # DoQ support in kdig (and elsewhere but not much use there yet) + ngtcp2-gnutls # DoQ support in kdig (and elsewhere but not much use there yet) libmaxminddb # optional for geoip module (it's tiny) # without sphinx &al. for developer documentation - # TODO: add dnstap support? - ] ++ lib.optionals stdenv.isLinux [ - libcap_ng systemd - xdp-tools libbpf libmnl # XDP support (it's Linux kernel API) - ] ++ lib.optional stdenv.isDarwin zlib; # perhaps due to gnutls + fstrm + protobufc # dnstap support + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + libcap_ng + systemd + xdp-tools + libbpf + libmnl # XDP support (it's Linux kernel API) + ] + ++ lib.optional stdenv.hostPlatform.isDarwin zlib; # perhaps due to gnutls enableParallelBuilding = true; - CFLAGS = [ "-O2" "-DNDEBUG" ]; + CFLAGS = [ + "-O2" + "-DNDEBUG" + ]; + + __darwinAllowLocalNetworking = true; doCheck = true; checkFlags = [ "V=1" ]; # verbose output in case some test fails @@ -58,29 +112,30 @@ stdenv.mkDerivation rec { passthru.tests = { inherit knot-resolver; - } // lib.optionalAttrs stdenv.isLinux { + } + // lib.optionalAttrs stdenv.hostPlatform.isLinux { inherit (nixosTests) knot kea; + prometheus-exporter = nixosTests.prometheus-exporters.knot; # Some dependencies are very version-sensitive, so the might get dropped # or embedded after some update, even if the nixPackagers didn't intend to. # For non-linux I don't know a good replacement for `ldd`. - deps = runCommandLocal "knot-deps-test" - { nativeBuildInputs = [ (lib.getBin stdenv.cc.libc) ]; } - '' - for libname in libngtcp2 libxdp libbpf; do - echo "Checking for $libname:" - ldd '${knot-dns.bin}/bin/knotd' | grep -F "$libname" - echo "OK" - done - touch "$out" - ''; + deps = runCommandLocal "knot-deps-test" { nativeBuildInputs = [ (lib.getBin stdenv.cc.libc) ]; } '' + for libname in libngtcp2 libxdp libbpf; do + echo "Checking for $libname:" + ldd '${knot-dns.bin}/bin/knotd' | grep -F "$libname" + echo "OK" + done + touch "$out" + ''; }; - meta = with lib; { + meta = { description = "Authoritative-only DNS server from .cz domain registry"; homepage = "https://knot-dns.cz"; - license = licenses.gpl2Plus; - platforms = platforms.unix; - maintainers = [ maintainers.vcunat ]; + changelog = "https://gitlab.nic.cz/knot/knot-dns/-/releases/v${version}"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.vcunat ]; mainProgram = "knotd"; }; } diff --git a/distro/pkg/nix/runtime-deps.patch b/distro/pkg/nix/runtime-deps.patch index 19fc9cd07b..89dba415b3 100644 --- a/distro/pkg/nix/runtime-deps.patch +++ b/distro/pkg/nix/runtime-deps.patch @@ -5,10 +5,9 @@ but that contains also references like include paths. Filter these at least in a crude way (whole lines). --- a/configure.ac +++ b/configure.ac -@@ -766,5 +766,5 @@ result_msg_base=" Knot DNS $VERSION - --result_msg_esc=$(echo -n "$result_msg_base" | sed '$!s/$/\\n/' | tr -d '\n') -+result_msg_esc=$(echo -n "$result_msg_base" | grep -Fv "$NIX_STORE" | sed '$!s/$/\\n/' | tr -d '\n') +@@ -788,5 +788,5 @@ result_msg_base=" +-result_msg_esc=$(echo -n " Configure:$filtered_config_params\n$result_msg_base" | sed '$!s/$/\\n/' | tr -d '\n') ++result_msg_esc=$(echo -n " Configure:$filtered_config_params\n$result_msg_base" | grep -Fv "$NIX_STORE" | sed '$!s/$/\\n/' | tr -d '\n') AC_DEFINE_UNQUOTED([CONFIGURE_SUMMARY],["$result_msg_esc"],[Configure summary]) From 8ccc39d8dc551190e6e9fa8bf4e2abf905a60545 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 10 Jun 2025 14:42:55 +0200 Subject: [PATCH 035/675] external validation: implemented basic functionality --- src/knot/conf/schema.c | 7 ++ src/knot/conf/schema.h | 2 + src/knot/conf/tools.c | 6 ++ src/knot/conf/tools.h | 4 + src/knot/ctl/commands.c | 14 ++- src/knot/events/handlers/expire.c | 1 + src/knot/events/handlers/refresh.c | 4 + src/knot/server/server.c | 10 +++ src/knot/updates/zone-update.c | 45 ++++++++++ src/knot/updates/zone-update.h | 15 ++++ src/knot/zone/zone.c | 11 +++ src/knot/zone/zone.h | 8 ++ src/knot/zone/zonedb-load.c | 2 + src/libknot/errcode.h | 1 + src/libknot/error.c | 1 + tests-extra/tests/zone/external_vldt/test.py | 95 ++++++++++++++++++++ tests-extra/tools/dnstest/server.py | 18 ++++ 17 files changed, 243 insertions(+), 1 deletion(-) create mode 100644 tests-extra/tests/zone/external_vldt/test.py diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 0c4e8e954d..72644dbfb0 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -454,6 +454,11 @@ static const yp_item_t desc_policy[] = { { NULL } }; +static const yp_item_t desc_external[] = { + { C_ID, YP_TSTR, YP_VNONE, CONF_IO_FREF }, + { NULL } +}; + #define ZONE_ITEMS(FLAGS) \ { C_STORAGE, YP_TSTR, YP_VSTR = { STORAGE_DIR }, FLAGS }, \ { C_FILE, YP_TSTR, YP_VNONE, FLAGS }, \ @@ -479,6 +484,7 @@ static const yp_item_t desc_policy[] = { { C_IXFR_FROM_AXFR, YP_TBOOL, YP_VNONE }, \ { C_ZONE_MAX_SIZE, YP_TINT, YP_VINT = { 0, SSIZE_MAX, SSIZE_MAX, YP_SSIZE }, FLAGS }, \ { C_ADJUST_THR, YP_TINT, YP_VINT = { 1, UINT16_MAX, 1 } }, \ + { C_EXTERNAL_VLDT, YP_TREF, YP_VREF = { C_EXTERNAL }, FLAGS, { check_ref_dflt } }, \ { C_DNSSEC_SIGNING, YP_TBOOL, YP_VNONE, FLAGS }, \ { C_DNSSEC_VALIDATION, YP_TBOOL, YP_VNONE, FLAGS }, \ { C_DNSSEC_POLICY, YP_TREF, YP_VREF = { C_POLICY }, FLAGS, { check_ref_dflt } }, \ @@ -535,6 +541,7 @@ const yp_item_t conf_schema[] = { { C_SBM, YP_TGRP, YP_VGRP = { desc_submission }, YP_FMULTI }, { C_DNSKEY_SYNC, YP_TGRP, YP_VGRP = { desc_dnskey_sync }, YP_FMULTI, { check_dnskey_sync } }, { C_POLICY, YP_TGRP, YP_VGRP = { desc_policy }, YP_FMULTI, { check_policy } }, + { C_EXTERNAL, YP_TGRP, YP_VGRP = { desc_external }, YP_FMULTI, { check_external } }, { C_TPL, YP_TGRP, YP_VGRP = { desc_template }, YP_FMULTI, { check_template } }, { C_ZONE, YP_TGRP, YP_VGRP = { desc_zone }, YP_FMULTI | CONF_IO_FZONE, { check_zone } }, { C_INCL, YP_TSTR, YP_VNONE, CONF_IO_FDIFF_ZONES | CONF_IO_FRLD_ALL, { include_file } }, diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 9ba63f542d..536b783586 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -58,6 +58,8 @@ #define C_ECS "\x12""edns-client-subnet" #define C_EXPIRE_MAX_INTERVAL "\x13""expire-max-interval" #define C_EXPIRE_MIN_INTERVAL "\x13""expire-min-interval" +#define C_EXTERNAL "\x08""external" +#define C_EXTERNAL_VLDT "\x13""external-validation" #define C_FILE "\x04""file" #define C_GLOBAL_MODULE "\x0D""global-module" #define C_ID "\x02""id" diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index 7e0b079403..bbffbc9a14 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -851,6 +851,12 @@ int check_policy( return KNOT_EOK; } +int check_external( + knotd_conf_check_args_t *args) +{ + return KNOT_EOK; +} + int check_key( knotd_conf_check_args_t *args) { diff --git a/src/knot/conf/tools.h b/src/knot/conf/tools.h index 81537d6ef9..10a5cb4fd5 100644 --- a/src/knot/conf/tools.h +++ b/src/knot/conf/tools.h @@ -119,6 +119,10 @@ int check_policy( knotd_conf_check_args_t *args ); +int check_external( + knotd_conf_check_args_t *args +); + int check_key( knotd_conf_check_args_t *args ); diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 73505ab7f4..25311db967 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -933,6 +933,12 @@ static int zone_txn_commit_l(zone_t *zone, _unused_ ctl_args_t *args) return KNOT_TXN_ENOTEXISTS; } + if (zone->control_update->flags & UPDATE_WFEV) { + zone->control_update->flags |= UPDATE_EVOK; + knot_sem_post(&zone->control_update->external); + return KNOT_EOK; + } + int ret = zone_update_semcheck(conf(), zone->control_update); if (ret != KNOT_EOK) { return ret; // Recoverable error. @@ -1005,6 +1011,12 @@ static int zone_txn_abort(zone_t *zone, _unused_ ctl_args_t *args) return KNOT_TXN_ENOTEXISTS; } + if (zone->control_update->flags & UPDATE_WFEV) { + knot_sem_post(&zone->control_update->external); + pthread_mutex_unlock(&zone->cu_lock); + return KNOT_EOK; + } + zone_control_clear(zone); pthread_mutex_unlock(&zone->cu_lock); @@ -1953,7 +1965,7 @@ static int ctl_zone(ctl_args_t *args, ctl_cmd_t cmd) static void check_zone_txn(zone_t *zone, const knot_dname_t **exists) { - if (zone->control_update != NULL) { + if (zone->control_update != NULL && !(zone->control_update->flags & UPDATE_WFEV)) { *exists = zone->name; } } diff --git a/src/knot/events/handlers/expire.c b/src/knot/events/handlers/expire.c index bd74fb8ada..c49cd8f9c0 100644 --- a/src/knot/events/handlers/expire.c +++ b/src/knot/events/handlers/expire.c @@ -23,6 +23,7 @@ int event_expire(conf_t *conf, zone_t *zone) synchronize_rcu(); pthread_mutex_lock(&zone->cu_lock); + assert(zone->control_update == NULL || !(zone->control_update->flags & UPDATE_WFEV)); zone_control_clear(zone); pthread_mutex_unlock(&zone->cu_lock); diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index e633cffd47..44de0b70fa 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -667,6 +667,10 @@ static int ixfr_finalize(struct refresh_data *data) ret = zone_update_commit(data->conf, &up); if (ret != KNOT_EOK) { zone_update_clear(&up); + if (ret == KNOT_EEXTERNAL) { + data->fallback_axfr = false; + data->fallback->remote = false; + } IXFRIN_LOG(LOG_WARNING, data, "failed to store changes (%s)", knot_strerror(ret)); return ret; diff --git a/src/knot/server/server.c b/src/knot/server/server.c index b390cbdc2a..ceb203958f 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1039,6 +1039,13 @@ int server_start(server_t *server, bool answering) return KNOT_EOK; } +static void zonedb_shutdown(server_t *server) +{ + if (server->zone_db != NULL) { + knot_zonedb_foreach(server->zone_db, zone_shutdown); + } +} + void server_wait(server_t *server) { if (server == NULL) { @@ -1404,6 +1411,8 @@ void server_stop(server_t *server) /* Stop scheduler. */ evsched_stop(&server->sched); + /* Shut down zones. */ + zonedb_shutdown(server); /* Interrupt background workers. */ worker_pool_stop(server->workers); @@ -1621,6 +1630,7 @@ void server_update_zones(conf_t *conf, server_t *server, reload_t mode) /* Suspend adding events to worker pool queue, wait for queued events. */ log_debug("suspending zone events"); evsched_pause(&server->sched); + zonedb_shutdown(server); worker_pool_wait(server->workers); log_debug("suspended zone events"); diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index b936643ee8..e020e43373 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -915,6 +915,42 @@ int zone_update_verify_digest(conf_t *conf, zone_update_t *update) return ret; } +int zone_update_external(conf_t *conf, zone_update_t *update) +{ + (void)conf; + pthread_mutex_lock(&update->zone->cu_lock); + + if (update->zone->control_update != NULL) { + assert(update->zone->control_update == update); + assert(!(update->flags & UPDATE_WFEV)); + pthread_mutex_unlock(&update->zone->cu_lock); + return KNOT_EOK; // real control update never waits for external validation + } + + if (zone_get_flag(update->zone, ZONE_SHUT_DOWN, false)) { + pthread_mutex_unlock(&update->zone->cu_lock); + return KNOT_EEXTERNAL; + } + + update->zone->control_update = update; + update->flags |= UPDATE_WFEV; + knot_sem_init(&update->external, 0); + pthread_mutex_unlock(&update->zone->cu_lock); + + log_zone_notice(update->zone->name, "waiting for external validation"); + + knot_sem_wait(&update->external); + + pthread_mutex_lock(&update->zone->cu_lock); + update->zone->control_update = NULL; + pthread_mutex_unlock(&update->zone->cu_lock); + + knot_sem_post(&update->external); + knot_sem_destroy(&update->external); + + return (update->flags & UPDATE_EVOK) ? KNOT_EOK : KNOT_EEXTERNAL; +} + int zone_update_commit(conf_t *conf, zone_update_t *update) { if (conf == NULL || update == NULL) { @@ -977,6 +1013,15 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) } } + val = conf_zone_get(conf, C_EXTERNAL_VLDT, update->zone->name); + if (val.code == KNOT_EOK) { + ret = zone_update_external(conf, update, &val); + if (ret != KNOT_EOK) { + discard_adds_tree(update); + return ret; + } + } + ret = update_catalog(conf, update); if (ret != KNOT_EOK) { log_zone_error(update->zone->name, "failed to process catalog zone (%s)", knot_strerror(ret)); diff --git a/src/knot/updates/zone-update.h b/src/knot/updates/zone-update.h index f4f6ca94ef..3229eed625 100644 --- a/src/knot/updates/zone-update.h +++ b/src/knot/updates/zone-update.h @@ -29,6 +29,7 @@ typedef struct zone_update { changeset_t extra_ch; /*!< Extra changeset to store just diff btwn zonefile and result. */ apply_ctx_t *a_ctx; /*!< Context for applying changesets. */ uint32_t flags; /*!< Zone update flags. */ + knot_sem_t external; /*!< Lock for external validation. */ dnssec_validation_hint_t validation_hint; } zone_update_t; @@ -50,6 +51,8 @@ typedef enum { UPDATE_CHANGED_NSEC = 1 << 7, /*!< This incremental update affects NSEC or NSEC3 nodes in zone. */ UPDATE_NO_CHSET = 1 << 8, /*!< Avoid using changeset and serialize to journal from diff of bi-nodes. */ UPDATE_SIGNED_FULL = 1 << 9, /*!< Full (non-incremental) zone sign took place during this update. */ + UPDATE_WFEV = 1 << 10, /*!< Update waiting for external validation. */ + UPDATE_EVOK = 1 << 11, /*!< External validation accepted the update. */ } zone_update_flags_t; /*! @@ -268,6 +271,18 @@ int zone_update_semcheck(conf_t *conf, zone_update_t *update); */ int zone_update_verify_digest(conf_t *conf, zone_update_t *update); +/*! + * \brief Wait for external validation. + * + * \param conf Configuration. + * \param update Zone update. + * + * \retval KNOT_EEXTERNAL External validation failed. + * \retval KNOT_EOK External validation succeeded. + * \return KNOT_E* + */ +int zone_update_external(conf_t *conf, zone_update_t *update); + /*! * \brief Commits all changes to the zone, signs it, saves changes to journal. * diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index f16ed6c546..2484f0352d 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -200,6 +200,16 @@ void zone_control_clear(zone_t *zone) zone->control_update = NULL; } +void zone_shutdown(zone_t *zone) +{ + pthread_mutex_lock(&zone->cu_lock); + if (zone->control_update != NULL && (zone->control_update->flags & UPDATE_WFEV)) { + knot_sem_post(&zone->control_update->external); + } + zone_set_flag(zone, ZONE_SHUT_DOWN); + pthread_mutex_unlock(&zone->cu_lock); +} + void zone_free(zone_t **zone_ptr) { if (zone_ptr == NULL || *zone_ptr == NULL) { @@ -226,6 +236,7 @@ void zone_free(zone_t **zone_ptr) knot_sem_destroy(&zone->cow_lock); /* Control update. */ + assert(zone->control_update == NULL || !(zone->control_update->flags & UPDATE_WFEV)); zone_control_clear(zone); free(zone->catalog_gen); diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 5f7a156b32..22b6f5b04b 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -39,6 +39,7 @@ typedef enum { ZONE_XFR_FROZEN = 1 << 7, /*!< Outgoing AXFR/IXFR temporarily disabled. */ ZONE_USER_FLUSH = 1 << 8, /*!< User-triggered flush. */ ZONE_LAST_SIGN_OK = 1 << 9, /*!< Last full-sign event finished OK. */ + ZONE_SHUT_DOWN = 1 << 10, /*!< Zone events are shutting down. */ } zone_flag_t; /*! @@ -148,6 +149,13 @@ typedef struct zone */ zone_t* zone_new(const knot_dname_t *name); +/*! + * \brief Declare that zone is shutting down. + * + * \param zone Zone to be shut down. + */ +void zone_shutdown(zone_t *zone); + /*! * \brief Deallocates the zone structure. * diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index f9fa0b2188..8b5095aa5c 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -533,6 +533,8 @@ static knot_zonedb_t *create_zonedb(conf_t *conf, server_t *server, reload_t mod it = knot_zonedb_iter_begin(db_new); while (!knot_zonedb_iter_finished(it)) { zone_t *z = knot_zonedb_iter_val(it); + zone_unset_flag(z, ZONE_SHUT_DOWN); + conf_val_t val = conf_zone_get(conf, C_REVERSE_GEN, z->name); while (val.code == KNOT_EOK) { const knot_dname_t *forw_name = conf_dname(&val); diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index 6c789f3605..b05f703ac2 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -100,6 +100,7 @@ enum knot_error { KNOT_EBACKUPDATA, KNOT_ECPUCOMPAT, KNOT_EMODINVAL, + KNOT_EEXTERNAL, KNOT_GENERAL_ERROR = -900, diff --git a/src/libknot/error.c b/src/libknot/error.c index 21f34a246c..c82a5bbc37 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -99,6 +99,7 @@ static const struct error errors[] = { { KNOT_EBACKUPDATA, "requested data not in backup" }, { KNOT_ECPUCOMPAT, "incompatible CPU architecture" }, { KNOT_EMODINVAL, "invalid module" }, + { KNOT_EEXTERNAL, "external validation failed" }, { KNOT_GENERAL_ERROR, "unknown general error" }, diff --git a/tests-extra/tests/zone/external_vldt/test.py b/tests-extra/tests/zone/external_vldt/test.py new file mode 100644 index 0000000000..1a90f84ae0 --- /dev/null +++ b/tests-extra/tests/zone/external_vldt/test.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python3 + +""" +Test of external zone validation. +""" + +from dnstest.utils import * +from dnstest.test import Test +import random + +t = Test() + +master = t.server("knot") +slave = t.server("knot") +zone = t.zone_rnd(1, records=40) +t.link(zone, master, slave) + +def log_count_expect(server, pattern, expct): + fnd = server.log_search_count(pattern) + if fnd != expct: + detail_log("LOG SEARCH COUNT '%s' found %d expected %d" % (pattern, fnd, expct)) + set_err("LOG SEARCH COUNT %d != %d" % (fnd, expct)) + +ZONE = zone[0].name +LOG = "for external validation" + +slave.async_start = True +slave.zones[ZONE].external = True # TODO this will be a list or dict once 'external' secation has any fields + +master.dnssec(zone[0]).enable = random.choice([False, True]) + +t.start() +serial = master.zone_wait(zone) + +t.sleep(2) +log_count_expect(slave, LOG, 1) +resp = slave.dig(ZONE, "SOA") +resp.check(rcode="SERVFAIL") +resp.check_count(0, "SOA") + +slave.ctl("zone-commit " + ZONE) +t.sleep(2) +resp = slave.dig(ZONE, "SOA") +resp.check_soa_serial(serial) + +master.random_ddns(zone, allow_empty=False) +serial = master.zone_wait(zone, serial) + +t.sleep(2) +log_count_expect(slave, LOG, 2) +slave.ctl("zone-abort " + ZONE) +t.sleep(2) +resp = slave.dig(ZONE, "SOA") +resp.check_soa_serial(serial - 1) + +master.random_ddns(zone, allow_empty=False) +serial = master.zone_wait(zone, serial) + +t.sleep(2) +log_count_expect(slave, LOG, 3) +slave.ctl("zone-commit " + ZONE) +t.sleep(2) +resp = slave.dig(ZONE, "SOA") +resp.check_soa_serial(serial) + +slave.ctl("zone-freeze " + ZONE) +master.random_ddns(zone, allow_empty=False) +serial = master.zone_wait(zone, serial) + +slave.zonemd_generate = "zonemd-sha512" +slave.gen_confile() +slave.ctl("zone-thaw " + ZONE) +t.sleep(1) +slave.reload() + +master.random_ddns(zone, allow_empty=False) +serial = master.zone_wait(zone, serial) + +t.sleep(2) +log_count_expect(slave, LOG, 5) +slave.ctl("zone-commit " + ZONE) +t.sleep(2) +resp = slave.dig(ZONE, "SOA") +resp.check_soa_serial(serial) + +master.random_ddns(zone, allow_empty=False) +serial = master.zone_wait(zone, serial) + +t.sleep(2) +log_count_expect(slave, LOG, 6) +slave.stop() +t.sleep(2) +log_count_expect(slave, "shutting down", 1) + +t.end() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 7f778e0acb..0c43f6ddda 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -102,6 +102,7 @@ def __init__(self, zone_file, ddns=False, ixfr=False, journal_content="changes") self.journal_content = journal_content # journal contents self.modules = [] self.reverse_from = None + self.external = None self.dnssec = ZoneDnssec() self.catalog_role = ZoneCatalogRole.NONE self.catalog_gen_name = None # Generated catalog name for this member @@ -216,6 +217,7 @@ def __init__(self): self.zone_size_limit = None self.serial_policy = None self.auto_acl = None + self.async_start = None self.provide_ixfr = None self.master_pin_tol = None self.quic_log = None @@ -1543,6 +1545,7 @@ def get_config(self): self._str(s, "remote-pool-limit", str(random.randint(0,6))) self._str(s, "remote-retry-delay", str(random.choice([0, 1, 5]))) self._bool(s, "automatic-acl", self.auto_acl) + self._bool(s, "async-start", self.async_start) if self.cert_key_file: s.item_str("key-file", self.cert_key_file[0]) s.item_str("cert-file", self.cert_key_file[1]) @@ -1787,6 +1790,18 @@ def get_config(self): if have_dnskeysync: s.end() + have_external = False + for zone in sorted(self.zones): + z = self.zones[zone] + if not z.external: + continue + if not have_external: + s.begin("external") + have_external = True + s.id_item("id", z.name) + if have_external: + s.end() + have_keystore = False for zone in sorted(self.zones): z = self.zones[zone] @@ -1958,6 +1973,9 @@ def get_config(self): self._str(s, "expire-min-interval", z.expire_min) self._str(s, "expire-max-interval", z.expire_max) + if z.external: + s.item("external-validation", z.name) + if self.zonefile_load is not None: s.item_str("zonefile-load", self.zonefile_load) elif z.ixfr: From 4d689c4d7009418de17b8586c23f779ddaa1e449 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 12 Jun 2025 11:39:46 +0200 Subject: [PATCH 036/675] ctl: zone-diff works with UPDATE_NO_CHSET --- src/knot/ctl/commands.c | 88 +++++--------------- src/knot/updates/zone-update.c | 85 ++++++++++++++++++- src/knot/updates/zone-update.h | 13 +++ tests-extra/tests/zone/external_vldt/test.py | 4 + 4 files changed, 119 insertions(+), 71 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 25311db967..ffb0b07b9f 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -945,10 +945,7 @@ static int zone_txn_commit_l(zone_t *zone, _unused_ ctl_args_t *args) } // NOOP if empty changeset/contents. - if (((zone->control_update->flags & UPDATE_INCREMENTAL) && - changeset_empty(&zone->control_update->change)) || - ((zone->control_update->flags & UPDATE_FULL) && - zone_contents_is_empty(zone->control_update->new_cont))) { + if (zone_update_no_change(zone->control_update)) { zone_control_clear(zone); return KNOT_EOK; } @@ -1061,7 +1058,7 @@ static int init_send_ctx(send_ctx_t *ctx, const knot_dname_t *zone_name, return KNOT_EOK; } -static int send_rrset(knot_rrset_t *rrset, send_ctx_t *ctx) +static int send_rrset(const knot_rrset_t *rrset, send_ctx_t *ctx) { if (rrset->type != KNOT_RRTYPE_RRSIG) { int ret = snprintf(ctx->ttl, sizeof(ctx->ttl), "%u", rrset->ttl); @@ -1098,6 +1095,16 @@ static int send_rrset(knot_rrset_t *rrset, send_ctx_t *ctx) return KNOT_EOK; } +static int send_rrset_callback(const knot_rrset_t *rrset, void *ctx_void) +{ + send_ctx_t *ctx = ctx_void; + char *owner = knot_dname_to_str(ctx->owner, rrset->owner, sizeof(ctx->owner)); + if (owner == NULL) { + return KNOT_EINVAL; + } + return send_rrset(rrset, ctx); +} + static int send_node(zone_node_t *node, void *ctx_void) { send_ctx_t *ctx = ctx_void; @@ -1253,66 +1260,6 @@ static int zone_txn_get(zone_t *zone, ctl_args_t *args) return ret; } -static int send_changeset_part(changeset_t *ch, send_ctx_t *ctx, bool from) -{ - ctx->data[KNOT_CTL_IDX_FILTERS] = from ? CTL_FILTER_DIFF_REM_R : CTL_FILTER_DIFF_ADD_R; - - // Send SOA only if explicitly changed. - if (ch->soa_to != NULL) { - knot_rrset_t *soa = from ? ch->soa_from : ch->soa_to; - assert(soa); - - char *owner = knot_dname_to_str(ctx->owner, soa->owner, sizeof(ctx->owner)); - if (owner == NULL) { - return KNOT_EINVAL; - } - - int ret = send_rrset(soa, ctx); - if (ret != KNOT_EOK) { - return ret; - } - } - - // Send other records. - changeset_iter_t it; - int ret = from ? changeset_iter_rem(&it, ch) : changeset_iter_add(&it, ch); - if (ret != KNOT_EOK) { - return ret; - } - - knot_rrset_t rrset = changeset_iter_next(&it); - while (!knot_rrset_empty(&rrset)) { - char *owner = knot_dname_to_str(ctx->owner, rrset.owner, sizeof(ctx->owner)); - if (owner == NULL) { - changeset_iter_clear(&it); - return KNOT_EINVAL; - } - - ret = send_rrset(&rrset, ctx); - if (ret != KNOT_EOK) { - changeset_iter_clear(&it); - return ret; - } - - rrset = changeset_iter_next(&it); - } - changeset_iter_clear(&it); - - return KNOT_EOK; -} - -static int send_changeset(changeset_t *ch, send_ctx_t *ctx) -{ - // First send 'from' changeset part. - int ret = send_changeset_part(ch, ctx, true); - if (ret != KNOT_EOK) { - return ret; - } - - // Second send 'to' changeset part. - return send_changeset_part(ch, ctx, false); -} - static int zone_txn_diff_l(zone_t *zone, ctl_args_t *args) { if (zone->control_update == NULL) { @@ -1327,11 +1274,16 @@ static int zone_txn_diff_l(zone_t *zone, ctl_args_t *args) send_ctx_t *ctx = &ctl_globals[args->thread_idx].send_ctx; int ret = init_send_ctx(ctx, zone->name, args); - if (ret != KNOT_EOK) { - return ret; + if (ret == KNOT_EOK) { + ctx->data[KNOT_CTL_IDX_FILTERS] = CTL_FILTER_DIFF_REM_R; + ret = zone_update_foreach(zone->control_update, false, send_rrset_callback, ctx); + } + if (ret == KNOT_EOK) { + ctx->data[KNOT_CTL_IDX_FILTERS] = CTL_FILTER_DIFF_ADD_R; + ret = zone_update_foreach(zone->control_update, true, send_rrset_callback, ctx); } - return send_changeset(&zone->control_update->change, ctx); + return ret; } static int zone_txn_diff(zone_t *zone, ctl_args_t *args) diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index e020e43373..0170333278 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1101,9 +1101,88 @@ bool zone_update_no_change(zone_update_t *update) } else if (update->flags & (UPDATE_INCREMENTAL | UPDATE_HYBRID)) { return changeset_empty(&update->change); } else { - /* This branch does not make much sense and FULL update will most likely - * be a change every time anyway, just return false. */ - return false; + return zone_contents_is_empty(update->new_cont); + } +} + +static int rrset_foreach(zone_node_t *n, bool subtract_counterpart, + int idx, uint16_t rrtype, // two exclusive possibilities how to define which rrset in the node + rrset_cb_t cb, void *ctx) +{ + knot_rrset_t rr = (rrtype == KNOT_RRTYPE_ANY) ? node_rrset_at(n, idx) : node_rrset(n, rrtype); + knot_rrset_t rrc = subtract_counterpart ? node_rrset(binode_counterpart(n), rr.type) : (knot_rrset_t){ 0 }; + if (rrtype == KNOT_RRTYPE_ANY && rr.type == KNOT_RRTYPE_SOA) { + return KNOT_EOK; // ignore SOA if rrset specified by idx + } else if (knot_rrset_empty(&rrc)) { + return cb(&rr, ctx); + } else if (knot_rdataset_subset(&rr.rrs, &rrc.rrs)) { + return KNOT_EOK; + } else { + knot_rdataset_t rd_copy = { 0 }; + int ret = knot_rdataset_copy(&rd_copy, &rr.rrs, NULL); + if (ret == KNOT_EOK) { + ret = knot_rdataset_subtract(&rd_copy, &rrc.rrs, NULL); + } + if (ret == KNOT_EOK) { + rr.rrs = rd_copy; + ret = cb(&rr, ctx); + } + knot_rdataset_clear(&rd_copy, NULL); + return ret; + } +} + +static int trees_foreach(zone_tree_t *nodes, zone_tree_t *nsec3_nodes, bool subtract_counterparts, + rrset_cb_t cb, void *ctx) +{ + zone_tree_it_t it = { 0 }; + int ret = zone_tree_it_double_begin(nodes, nsec3_nodes, &it); + while (!zone_tree_it_finished(&it) && ret == KNOT_EOK) { + zone_node_t *n = zone_tree_it_val(&it); + for (int i = 0; i < n->rrset_count && ret == KNOT_EOK; i++) { + ret = rrset_foreach(n, subtract_counterparts, i, KNOT_RRTYPE_ANY, cb, ctx); + } + zone_tree_it_next(&it); + } + zone_tree_it_free(&it); + return ret; +} + +int zone_update_foreach(zone_update_t *update, bool additions, rrset_cb_t cb, void *ctx) +{ + if (update == NULL) { + return KNOT_EINVAL; + } + + if (update->flags & UPDATE_NO_CHSET) { + zone_diff_t diff; + get_zone_diff(&diff, update); + if (!additions) { + zone_diff_reverse(&diff); + } + + int ret = rrset_foreach(diff.apex, true, 0, KNOT_RRTYPE_SOA, cb, ctx); + if (ret == KNOT_EOK) { + ret = trees_foreach(&diff.nodes, &diff.nsec3s, true, cb, ctx); + } + return ret; + } else if (update->flags & (UPDATE_INCREMENTAL | UPDATE_HYBRID)) { + knot_rrset_t *soa = additions ? update->change.soa_to : update->change.soa_from; + zone_contents_t *c = additions ? update->change.add : update->change.remove; + int ret = (soa == NULL) ? KNOT_EOK : cb(soa, ctx); + if (ret == KNOT_EOK) { + ret = trees_foreach(c->nodes, c->nsec3_nodes, false, cb, ctx); + } + return ret; + } else if (additions) { + knot_rrset_t soa = node_rrset(update->new_cont->apex, KNOT_RRTYPE_SOA); + int ret = knot_rrset_empty(&soa) ? KNOT_EOK : cb(&soa, ctx); + if (ret == KNOT_EOK) { + ret = trees_foreach(update->new_cont->nodes, update->new_cont->nsec3_nodes, false, cb, ctx); + } + return ret; + } else { + return KNOT_EOK; } } diff --git a/src/knot/updates/zone-update.h b/src/knot/updates/zone-update.h index 3229eed625..e1560e1843 100644 --- a/src/knot/updates/zone-update.h +++ b/src/knot/updates/zone-update.h @@ -300,6 +300,19 @@ int zone_update_commit(conf_t *conf, zone_update_t *update); */ bool zone_update_no_change(zone_update_t *update); +typedef int (*rrset_cb_t)(const knot_rrset_t *, void *); +/*! + * \brief Run callback for every removed/added RRset in this update. + * + * \param update Zone update in question. + * \param additions Apply on addition (removals otherwise). + * \param cb Callback to call for each changed RRset. + * \param ctx Arbitrary context for the callback. + * + * \return KNOT_E* emitted by the callback or error in iteration. + */ +int zone_update_foreach(zone_update_t *update, bool additions, rrset_cb_t cb, void *ctx); + /*! * \brief Return whether apex DNSKEY, CDNSKEY, or CDS is updated. */ diff --git a/tests-extra/tests/zone/external_vldt/test.py b/tests-extra/tests/zone/external_vldt/test.py index 1a90f84ae0..3f8e2a7879 100644 --- a/tests-extra/tests/zone/external_vldt/test.py +++ b/tests-extra/tests/zone/external_vldt/test.py @@ -38,6 +38,7 @@ def log_count_expect(server, pattern, expct): resp.check(rcode="SERVFAIL") resp.check_count(0, "SOA") +slave.ctl("zone-diff " + ZONE) slave.ctl("zone-commit " + ZONE) t.sleep(2) resp = slave.dig(ZONE, "SOA") @@ -58,6 +59,8 @@ def log_count_expect(server, pattern, expct): t.sleep(2) log_count_expect(slave, LOG, 3) +slave.ctl("zone-diff " + ZONE) + slave.ctl("zone-commit " + ZONE) t.sleep(2) resp = slave.dig(ZONE, "SOA") @@ -78,6 +81,7 @@ def log_count_expect(server, pattern, expct): t.sleep(2) log_count_expect(slave, LOG, 5) +slave.ctl("zone-diff " + ZONE) slave.ctl("zone-commit " + ZONE) t.sleep(2) resp = slave.dig(ZONE, "SOA") From 97f8c41a24dcce982c3f5acb8c5d99c9532575ab Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 12 Jun 2025 13:37:16 +0200 Subject: [PATCH 037/675] external validation: implemented zone/diff dump --- doc/reference.rst | 83 +++++++++++++- src/knot/conf/schema.c | 3 + src/knot/conf/schema.h | 3 + src/knot/updates/zone-update.c | 66 +++++++++++- src/knot/updates/zone-update.h | 3 +- tests-extra/tests/zone/external_vldt/test.py | 107 +++++++++++++++---- tests-extra/tools/dnstest/server.py | 3 + 7 files changed, 239 insertions(+), 29 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 183c4a41ab..3162d54917 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -33,10 +33,10 @@ the following symbols: - ``|`` – Choice The configuration consists of several fixed sections and optional module -sections. There are 17 fixed sections (``module``, ``server``, ``xdp``, ``control``, +sections. There are 18 fixed sections (``module``, ``server``, ``xdp``, ``control``, ``log``, ``statistics``, ``database``, ``keystore``, ``key``, ``remote``, -``remotes``, ``acl``, ``submission``, ``dnskey-sync``, ``policy``, ``template``, -``zone``). +``remotes``, ``acl``, ``submission``, ``dnskey-sync``, ``policy``, ``external```, +``template``, ``zone``). Module sections are prefixed with the ``mod-`` prefix (e.g. ``mod-stats``). Most of the sections (e.g. ``zone``) are sequences of settings blocks. Each @@ -2546,6 +2546,58 @@ Multiple values may be specified. *Default:* ``none`` +.. _external section: + +``external`` section +==================== + +External zone validation configuration. + +:: + + external: + - id: STR + dump-new-zone: STR + dump-removals: STR + dump-additions: STR + +.. _external_id: + +id +-- + +An external section identifier. + +.. _external_dump-new-zone: + +dump-new-zone +------------- + +A path to file where the new zone contents will be written before waiting +for external validation. + +*Default:* none + +.. _external_dump-removals: + +dump-removals +------------- + +A path to file where the records being removed will be written before waiting +for external validation. + +*Default:* none + +.. _external_dump-additions: + +dump-additions +-------------- + +A path to file where the records being added will be written before waiting +for external validation. + +*Default:* none + .. _template section: ``template`` section @@ -2621,6 +2673,7 @@ Definition of zones served by the server. ixfr-from-axfr: BOOL zone-max-size : SIZE adjust-threads: INT + external-validation: external_id dnssec-signing: BOOL dnssec-validation: BOOL dnssec-policy: policy_id @@ -3020,6 +3073,30 @@ server startup and while processing NSEC3 re-salt. *Default:* ``1`` (no extra threads) +.. _zone_external-validation: + +external-validation +------------------- + +A :ref:`reference` to external validation section. + +If configured, every change to the zone (zone file update, incoming IXFR/AXFR, +dynamic update, and DNSSEC re-signing, but not changes over control socket – +``knotc zone-begin``) is paused just before applying the new zone. +At that point, validation and confirmation is awaited from the user +(or potentially a user-defined script). + +.. NOTE:: + In the case of server shutdown or configuration reload, the server waits + until all outstanding external validations are either committed or aborted, + or until the :ref:`external_timeout` elapses. + +In the referenced ``external`` section, it is possible to define paths to +files where the new zone contents and/or differences are written +(in the zone file format) just before every validation. + +*Default:* none + .. _zone_dnssec-signing: dnssec-signing diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 72644dbfb0..91ad934a30 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -456,6 +456,9 @@ static const yp_item_t desc_policy[] = { static const yp_item_t desc_external[] = { { C_ID, YP_TSTR, YP_VNONE, CONF_IO_FREF }, + { C_DUMP_NEW, YP_TSTR, YP_VSTR = { "" } }, + { C_DUMP_REM, YP_TSTR, YP_VSTR = { "" } }, + { C_DUMP_ADD, YP_TSTR, YP_VSTR = { "" } }, { NULL } }; diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 536b783586..80a6864e01 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -55,6 +55,9 @@ #define C_DNSSEC_VALIDATION "\x11""dnssec-validation" #define C_DOMAIN "\x06""domain" #define C_DS_PUSH "\x07""ds-push" +#define C_DUMP_ADD "\x0E""dump-additions" +#define C_DUMP_NEW "\x0D""dump-new-zone" +#define C_DUMP_REM "\x0D""dump-removals" #define C_ECS "\x12""edns-client-subnet" #define C_EXPIRE_MAX_INTERVAL "\x13""expire-max-interval" #define C_EXPIRE_MIN_INTERVAL "\x13""expire-min-interval" diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 0170333278..01ae5eceaa 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -915,9 +915,71 @@ int zone_update_verify_digest(conf_t *conf, zone_update_t *update) return ret; } -int zone_update_external(conf_t *conf, zone_update_t *update) +typedef struct { + FILE *f; + char *buf; + size_t buflen; + knot_dump_style_t style; +} dump_changeset_ctx_t; + +static int dump_rrset(const knot_rrset_t *rr, void *ctx_void) +{ + dump_changeset_ctx_t *ctx = ctx_void; + + int ret = knot_rrset_txt_dump(rr, &ctx->buf, &ctx->buflen, &ctx->style); + if (ret > 0) { + ret = (fprintf(ctx->f, "%s", ctx->buf) < 0 ? knot_map_errno() : 1); + } + return ret < 0 ? ret : KNOT_EOK; +} + +static int dump_changeset_part(zone_update_t *up, bool additions, + const char *fname, const char *mode) +{ + dump_changeset_ctx_t ctx; + ctx.f = fopen(fname, mode); + if (ctx.f == NULL) { + return knot_map_errno(); + } + ctx.buflen = 1024; + ctx.buf = malloc(ctx.buflen); + if (ctx.buf == NULL) { + fclose(ctx.f); + return KNOT_ENOMEM; + } + ctx.style = KNOT_DUMP_STYLE_DEFAULT; + ctx.style.now = knot_time(); + + (void)fprintf(ctx.f, ";; %s records\n", additions ? "Added" : "Removed"); + int ret = zone_update_foreach(up, additions, dump_rrset, &ctx); + fclose(ctx.f); + free(ctx.buf); + return ret; +} + +int zone_update_external(conf_t *conf, zone_update_t *update, conf_val_t *ev_id) { - (void)conf; + /* First: dump zone/diff files as/if configured. */ + conf_val_t val = conf_id_get(conf, C_EXTERNAL, C_DUMP_NEW, ev_id); + const char *f_new = conf_str(&val); + val = conf_id_get(conf, C_EXTERNAL, C_DUMP_REM, ev_id); + const char *f_rem = conf_str(&val); + val = conf_id_get(conf, C_EXTERNAL, C_DUMP_ADD, ev_id); + const char *f_add = conf_str(&val); + + int ret = KNOT_EOK; + if (*f_new != '\0' && ret == KNOT_EOK) { + ret = zonefile_write(f_new, update->new_cont, NULL); + } + if (*f_rem != '\0' && ret == KNOT_EOK) { + ret = dump_changeset_part(update, false, f_rem, "w"); + } + if (*f_add != '\0' && ret == KNOT_EOK) { + const char *mode = (strcmp(f_rem, f_add) == 0) ? "a" : "w"; + ret = dump_changeset_part(update, true, f_add, mode); + } + + /* Second: wait on semaphore on user's interaction. */ pthread_mutex_lock(&update->zone->cu_lock); if (update->zone->control_update != NULL) { diff --git a/src/knot/updates/zone-update.h b/src/knot/updates/zone-update.h index e1560e1843..5ac3816474 100644 --- a/src/knot/updates/zone-update.h +++ b/src/knot/updates/zone-update.h @@ -276,12 +276,13 @@ int zone_update_verify_digest(conf_t *conf, zone_update_t *update); * * \param conf Configuration. * \param update Zone update. + * \param ev_id Conf reference to 'external' section. * * \retval KNOT_EEXTERNAL External validation failed. * \retval KNOT_EOK External validation succeeded. * \return KNOT_E* */ -int zone_update_external(conf_t *conf, zone_update_t *update); +int zone_update_external(conf_t *conf, zone_update_t *update, conf_val_t *ev_id); /*! * \brief Commits all changes to the zone, signs it, saves changes to journal. diff --git a/tests-extra/tests/zone/external_vldt/test.py b/tests-extra/tests/zone/external_vldt/test.py index 3f8e2a7879..350ad83e54 100644 --- a/tests-extra/tests/zone/external_vldt/test.py +++ b/tests-extra/tests/zone/external_vldt/test.py @@ -4,17 +4,32 @@ Test of external zone validation. """ +from dnstest.libknot import libknot from dnstest.utils import * from dnstest.test import Test +import os import random t = Test() master = t.server("knot") slave = t.server("knot") -zone = t.zone_rnd(1, records=40) +zone = t.zone("example.") t.link(zone, master, slave) +ctl = libknot.control.KnotCtl() + +def check_zf_types(fname, types): + with open(fname, "r") as f: + for t in types: + line = f.readline() + while line.startswith(";"): + line = f.readline() + compare(line.split()[2], t, "DIFF TYPE %s" % t) + +def dump_file(server, purpose): + return os.path.join(server.dir, purpose) + def log_count_expect(server, pattern, expct): fnd = server.log_search_count(pattern) if fnd != expct: @@ -25,73 +40,119 @@ def log_count_expect(server, pattern, expct): LOG = "for external validation" slave.async_start = True -slave.zones[ZONE].external = True # TODO this will be a list or dict once 'external' secation has any fields +slave.zones[ZONE].external = { "new": dump_file(slave, "new"), "rem": dump_file(slave, "diff"), "add": dump_file(slave, "diff") } -master.dnssec(zone[0]).enable = random.choice([False, True]) +def check_diff_types(types): + check_zf_types(slave.zones[ZONE].external["add"], types) + +master.notify_delay = 0 +master.dnssec(zone[0]).enable = False t.start() serial = master.zone_wait(zone) +sockname = slave.ctl_sock_rnd(name_only=True) +ctl.connect(os.path.join(slave.dir, sockname)) + t.sleep(2) log_count_expect(slave, LOG, 1) resp = slave.dig(ZONE, "SOA") resp.check(rcode="SERVFAIL") resp.check_count(0, "SOA") -slave.ctl("zone-diff " + ZONE) -slave.ctl("zone-commit " + ZONE) +ctl.send_block(cmd="zone-diff", zone=ZONE) +resp = ctl.receive_block() +isset("AAAA" in resp[ZONE]["ai."+ZONE], "ZONE-DIFF 1") +check_diff_types(["SOA", "NS", "NS", "MX", "NS"]) +ctl.send_block(cmd="zone-commit", zone=ZONE) +resp = ctl.receive_block() t.sleep(2) resp = slave.dig(ZONE, "SOA") resp.check_soa_serial(serial) -master.random_ddns(zone, allow_empty=False) +up = master.update(zone) +up.add("horse", 3600, "AAAA", "1::1") +up.add("tiger", 3600, "AAAA", "1::1") +up.send() serial = master.zone_wait(zone, serial) t.sleep(2) log_count_expect(slave, LOG, 2) -slave.ctl("zone-abort " + ZONE) +ctl.send_block(cmd="zone-abort", zone=ZONE) +resp = ctl.receive_block() t.sleep(2) resp = slave.dig(ZONE, "SOA") resp.check_soa_serial(serial - 1) -master.random_ddns(zone, allow_empty=False) +up = master.update(zone) +up.add("shark", 3600, "AAAA", "1::1") +up.send() serial = master.zone_wait(zone, serial) t.sleep(2) log_count_expect(slave, LOG, 3) -slave.ctl("zone-diff " + ZONE) - -slave.ctl("zone-commit " + ZONE) +ctl.send_block(cmd="zone-diff", zone=ZONE) +resp = ctl.receive_block() +isset("AAAA" in resp[ZONE]["horse."+ZONE], "ZONE-DIFF 2") +isset("AAAA" in resp[ZONE]["shark."+ZONE], "ZONE-DIFF 3") +isset("AAAA" in resp[ZONE]["tiger."+ZONE], "ZONE-DIFF 4") +check_diff_types(["SOA", "SOA", "AAAA", "AAAA", "AAAA"]) +ctl.send_block(cmd="zone-commit", zone=ZONE) +resp = ctl.receive_block() t.sleep(2) resp = slave.dig(ZONE, "SOA") resp.check_soa_serial(serial) -slave.ctl("zone-freeze " + ZONE) -master.random_ddns(zone, allow_empty=False) +ctl.send_block(cmd="zone-freeze", zone=ZONE) +resp = ctl.receive_block() +up.add("gibon", 3600, "AAAA", "1::1") +up.send() serial = master.zone_wait(zone, serial) slave.zonemd_generate = "zonemd-sha512" slave.gen_confile() -slave.ctl("zone-thaw " + ZONE) -t.sleep(1) +t.sleep(2) +ctl.send_block(cmd="zone-thaw", zone=ZONE) +resp = ctl.receive_block() +t.sleep(0.3) slave.reload() - -master.random_ddns(zone, allow_empty=False) +try: + ctl.send_block(cmd="zone-abort", zone=ZONE) # just in case the timing goes wrong and the reload does not abort the txn itself + resp = ctl.receive_block() +except: + pass + +up = master.update(zone) +up.add("horse", 3600, "AAAA", "1::2") +up.delete("tiger", "AAAA", "1::1") +up.send() serial = master.zone_wait(zone, serial) -t.sleep(2) -log_count_expect(slave, LOG, 5) -slave.ctl("zone-diff " + ZONE) -slave.ctl("zone-commit " + ZONE) +t.sleep(4) +ctl.send_block(cmd="zone-diff", zone=ZONE) +resp = ctl.receive_block() +isset("AAAA" in resp[ZONE]["horse."+ZONE], "ZONE-DIFF 5") +isset("AAAA" in resp[ZONE]["gibon."+ZONE], "ZONE-DIFF 6") +isset("AAAA" in resp[ZONE]["tiger."+ZONE], "ZONE-DIFF 7") +check_diff_types(["SOA", "AAAA", "SOA", "ZONEMD", "AAAA", "AAAA"]) +ctl.send_block(cmd="zone-commit", zone=ZONE) +resp = ctl.receive_block() t.sleep(2) resp = slave.dig(ZONE, "SOA") resp.check_soa_serial(serial) -master.random_ddns(zone, allow_empty=False) +up = master.update(zone) +up.delete("horse", "AAAA", "1::1") +up.delete("shark", "AAAA", "1::1") +up.send() serial = master.zone_wait(zone, serial) t.sleep(2) -log_count_expect(slave, LOG, 6) +ctl.send_block(cmd="zone-diff", zone=ZONE) +resp = ctl.receive_block() +isset("AAAA" in resp[ZONE]["horse."+ZONE], "ZONE-DIFF 8") +isset("AAAA" in resp[ZONE]["shark."+ZONE], "ZONE-DIFF 9") +check_diff_types(["SOA", "ZONEMD", "AAAA", "AAAA", "SOA", "ZONEMD"]) slave.stop() t.sleep(2) log_count_expect(slave, "shutting down", 1) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 0c43f6ddda..2d3197bf0d 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1799,6 +1799,9 @@ def get_config(self): s.begin("external") have_external = True s.id_item("id", z.name) + self._str(s, "dump-new-zone", z.external["new"]) + self._str(s, "dump-removals", z.external["rem"]) + self._str(s, "dump-additions", z.external["add"]) if have_external: s.end() From 10f8a729a7e02abb696fdde6e58935d8e12818e1 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 16 Jun 2025 11:59:23 +0200 Subject: [PATCH 038/675] zone-update: bugfix: correctly revert adjustments to otherwise unaffected nodes --- src/knot/updates/apply.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/knot/updates/apply.c b/src/knot/updates/apply.c index 41ac58fb9f..0942616564 100644 --- a/src/knot/updates/apply.c +++ b/src/knot/updates/apply.c @@ -333,12 +333,16 @@ void apply_rollback(apply_ctx_t *ctx) return; } + if (ctx->adjust_ptrs != NULL) { + ctx->adjust_ptrs->flags ^= ZONE_TREE_BINO_SECOND; + } if (ctx->node_ptrs != NULL) { ctx->node_ptrs->flags ^= ZONE_TREE_BINO_SECOND; } if (ctx->nsec3_ptrs != NULL) { ctx->nsec3_ptrs->flags ^= ZONE_TREE_BINO_SECOND; } + zone_trees_unify_binodes(ctx->adjust_ptrs, NULL, false); zone_trees_unify_binodes(ctx->node_ptrs, ctx->nsec3_ptrs, true); zone_tree_free(&ctx->node_ptrs); From 965f9e1ecf35231fff370bb7d02513168bded4c7 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 16 Jun 2025 14:55:07 +0200 Subject: [PATCH 039/675] dbus: signal when external validation is requested --- doc/reference.rst | 8 +++++++- samples/dbus_client.pl | 6 ++++++ samples/dbus_client.py | 5 +++++ samples/dbus_client.sh | 3 +++ src/knot/common/dbus.c | 12 ++++++++++++ src/knot/common/dbus.h | 8 ++++++++ src/knot/conf/schema.c | 1 + src/knot/conf/schema.h | 7 ++++--- src/knot/updates/zone-update.c | 4 ++++ 9 files changed, 50 insertions(+), 4 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 3162d54917..2efbcf25ac 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -215,7 +215,7 @@ General options related to the server. answer-rotation: BOOL automatic-acl: BOOL proxy-allowlist: ADDR[/INT] | ADDR-ADDR ... - dbus-event: none | running | zone-updated | ksk-submission | dnssec-invalid ... + dbus-event: none | running | zone-updated | external-verify | ksk-submission | dnssec-invalid ... dbus-init-delay: TIME listen: ADDR[@INT] | STR ... listen-quic: ADDR[@INT] ... @@ -659,6 +659,8 @@ Possible values: - ``stopped`` when the server shutdown sequence is initiated. - ``zone-updated`` – The signal ``zone_updated`` is emitted when a zone has been updated; the signal parameters are `zone name` and `zone SOA serial`. +- ``external-verify`` - The signal ``external_verify`` is emitted when a zone is awaiting + external validation before applying the changes; the signal parameter is `zone name`. - ``keys-updated`` - The signal ``keys_updated`` is emitted when a DNSSEC key set is updated; the signal parameter is `zone name`. - ``ksk-submission`` – The signal ``zone_ksk_submission`` is emitted if there is @@ -3095,6 +3097,10 @@ In the referenced ``external`` section, it is possible to define paths to files where the new zone contents and/or differences are written (in the zone file format) just before every validation. +.. TIP:: + If :ref:`server_dbus-event` is set to ``external-verify``, a corresponding + signal is emitted when the server is awaiting external validation. + *Default:* none .. _zone_dnssec-signing: diff --git a/samples/dbus_client.pl b/samples/dbus_client.pl index 805dbc3957..f6bf00be08 100755 --- a/samples/dbus_client.pl +++ b/samples/dbus_client.pl @@ -42,6 +42,12 @@ print "Updated zone=$zone to serial=$serial\n"; }); +$knotd_interface->connect_to_signal('external_verify', sub +{ + my ($zone) = @_; + print "Awaiting external validation for zone=$zone\n"; +}); + $knotd_interface->connect_to_signal('keys_updated', sub { my ($zone) = @_; diff --git a/samples/dbus_client.py b/samples/dbus_client.py index 7bee40c8bb..8e9dd23087 100755 --- a/samples/dbus_client.py +++ b/samples/dbus_client.py @@ -23,6 +23,10 @@ def sig_updated(sender, path, interface, signal, args): (zone, serial) = args print("Updated zone=%s to serial=%d" % (zone, serial)) +def sig_external(sender, path, interface, signal, args): + (zone) = args + print("Awaiting external validation for zone=%s" % (zone)) + def sig_keys_upd(sender, path, interface, signal, args): (zone) = args print("Keys updated for zone=%s" % (zone)) @@ -85,6 +89,7 @@ def connect_to_signal(_signal, _callback): connect_to_signal("started", sig_started) connect_to_signal("stopped", sig_stopped) connect_to_signal("zone_updated", sig_updated) + connect_to_signal("external_verify", sig_external) connect_to_signal("keys_updated", sig_keys_upd) connect_to_signal("zone_ksk_submission", sig_submission) connect_to_signal("zone_dnssec_invalid", sig_invalid) diff --git a/samples/dbus_client.sh b/samples/dbus_client.sh index 98353fc035..8b8c037df8 100755 --- a/samples/dbus_client.sh +++ b/samples/dbus_client.sh @@ -16,6 +16,9 @@ cb() { zone_updated) echo "Updated zone=${2} to serial=${3}" ;; + external_verify) + echo "Awaiting external validation for zone=${2}" + ;; zone_dnssec_invalid) echo "Invalid DNSSEC for zone=${2} remaining=${3} seconds" ;; diff --git a/src/knot/common/dbus.c b/src/knot/common/dbus.c index 3f95b55d02..13623a1546 100644 --- a/src/knot/common/dbus.c +++ b/src/knot/common/dbus.c @@ -192,6 +192,18 @@ void dbus_emit_zone_updated(const knot_dname_t *zone_name, uint32_t serial) #endif // ENABLE_DBUS } +void dbus_emit_external_verify(const knot_dname_t *zone_name) +{ +#if ENABLE_DBUS + knot_dname_txt_storage_t buff; + char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff)); + if (zone_str != NULL) { + emit_event(KNOT_BUS_EVENT_EXTERNAL, "s", + VALUE_OF(zone_str)); + } +#endif // ENABLE_DBUS +} + void dbus_emit_keys_updated(const knot_dname_t *zone_name) { #if ENABLE_DBUS diff --git a/src/knot/common/dbus.h b/src/knot/common/dbus.h index 42b62575f3..1033d46561 100644 --- a/src/knot/common/dbus.h +++ b/src/knot/common/dbus.h @@ -17,6 +17,7 @@ #define KNOT_BUS_EVENT_STARTED "started" #define KNOT_BUS_EVENT_STOPPED "stopped" #define KNOT_BUS_EVENT_ZONE_UPD "zone_updated" +#define KNOT_BUS_EVENT_EXTERNAL "external_verify" #define KNOT_BUS_EVENT_ZONE_KEYS_UPD "keys_updated" #define KNOT_BUS_EVENT_ZONE_KSK_SUBM "zone_ksk_submission" #define KNOT_BUS_EVENT_ZONE_INVALID "zone_dnssec_invalid" @@ -49,6 +50,13 @@ void dbus_emit_running(bool up); */ void dbus_emit_zone_updated(const knot_dname_t *zone_name, uint32_t serial); +/*! + * \brief Emit event signal that external verify shall take place. + * + * \param zone_name Zone name. + */ +void dbus_emit_external_verify(const knot_dname_t *zone_name); + /*! * \brief Emit event signal for updated DNSSEC key set. * diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 91ad934a30..222ae11f50 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -188,6 +188,7 @@ static const knot_lookup_t dbus_events[] = { { DBUS_EVENT_NONE, "none" }, { DBUS_EVENT_RUNNING, "running" }, { DBUS_EVENT_ZONE_UPDATED, "zone-updated" }, + { DBUS_EVENT_EXTERNAL, "external-verify" }, { DBUS_EVENT_KEYS_UPDATED, "keys-updated" }, { DBUS_EVENT_ZONE_SUBMISSION, "ksk-submission" }, { DBUS_EVENT_ZONE_INVALID, "dnssec-invalid" }, diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 80a6864e01..3de02cfe6e 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -270,9 +270,10 @@ enum { DBUS_EVENT_NONE = 0, DBUS_EVENT_RUNNING = (1 << 0), DBUS_EVENT_ZONE_UPDATED = (1 << 1), - DBUS_EVENT_ZONE_SUBMISSION = (1 << 2), - DBUS_EVENT_ZONE_INVALID = (1 << 3), - DBUS_EVENT_KEYS_UPDATED = (1 << 4), + DBUS_EVENT_EXTERNAL = (1 << 2), + DBUS_EVENT_ZONE_SUBMISSION = (1 << 3), + DBUS_EVENT_ZONE_INVALID = (1 << 4), + DBUS_EVENT_KEYS_UPDATED = (1 << 5), }; extern const knot_lookup_t acl_actions[]; diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 01ae5eceaa..1f30babd29 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1001,6 +1001,10 @@ int zone_update_external(conf_t *conf, zone_update_t *update, conf_val_t *ev_id) log_zone_notice(update->zone->name, "waiting for external validation"); + if (conf->cache.srv_dbus_event & DBUS_EVENT_EXTERNAL) { + dbus_emit_external_verify(update->zone->name); + } + knot_sem_wait(&update->external); pthread_mutex_lock(&update->zone->cu_lock); From 3900b8cbd74c2575397d072b63a8a7cdc1f11135 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 16 Jun 2025 17:46:16 +0200 Subject: [PATCH 040/675] external-validation: implemented configurable timeout --- doc/reference.rst | 11 +++++ src/contrib/semaphore.c | 49 ++++++++++++++++++++ src/contrib/semaphore.h | 11 +++++ src/knot/conf/schema.c | 1 + src/knot/updates/zone-update.c | 3 +- tests-extra/tests/zone/external_vldt/test.py | 22 +++++++-- tests-extra/tools/dnstest/server.py | 1 + 7 files changed, 94 insertions(+), 4 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 2efbcf25ac..608b29bd34 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2559,6 +2559,7 @@ External zone validation configuration. external: - id: STR + timeout: TIME dump-new-zone: STR dump-removals: STR dump-additions: STR @@ -2570,6 +2571,16 @@ id An external section identifier. +.. _external_timeout: + +timeout +------- + +If the validation is not confirmed within this time interval in seconds, +it is considered failed. + +*Default:* ``300`` + .. _external_dump-new-zone: dump-new-zone diff --git a/src/contrib/semaphore.c b/src/contrib/semaphore.c index c7c893a2d4..443d046c7d 100644 --- a/src/contrib/semaphore.c +++ b/src/contrib/semaphore.c @@ -6,8 +6,11 @@ #include "semaphore.h" #include +#include #include #include +#include +#include #if defined(__APPLE__) #pragma clang diagnostic ignored "-Wdeprecated-declarations" @@ -66,6 +69,52 @@ void knot_sem_wait(knot_sem_t *sem) } } +static void timespec_now_shift(struct timespec *ts, unsigned long shift_ms) +{ + clock_gettime(CLOCK_REALTIME, ts); + uint64_t nsec = ts->tv_nsec + shift_ms * 1000000LU; + ts->tv_sec += nsec / 1000000000LU; + ts->tv_nsec = nsec % 1000000000LU; +} + +static bool timespec_past(const struct timespec *ts) +{ + struct timespec now; + clock_gettime(CLOCK_REALTIME, &now); + return ts->tv_sec == now.tv_sec ? ts->tv_nsec <= now.tv_nsec : ts->tv_sec < now.tv_sec; +} + +bool knot_sem_timedwait(knot_sem_t *sem, unsigned long ms) +{ + assert(sem != NULL); + if (ms == 0) { + knot_sem_wait(sem); + return true; + } + + struct timespec end; + timespec_now_shift(&end, ms); + if (sem->status == SEM_STATUS_POSIX) { + int semret; + do { + semret = sem_timedwait(&sem->semaphore, &end); + } while (semret != 0 && errno != ETIMEDOUT); // repeat wait as it might be interrupted by a signal + return (semret == 0); + } else { + pthread_mutex_lock(&sem->status_lock->mutex); + while (sem->status <= 0 && !timespec_past(&end)) { + pthread_cond_timedwait(&sem->status_lock->cond, &sem->status_lock->mutex, &end); + } + if (sem->status <= 0) { + pthread_mutex_unlock(&sem->status_lock->mutex); + return false; + } + sem->status--; + pthread_mutex_unlock(&sem->status_lock->mutex); + return true; + } +} + void knot_sem_wait_post(knot_sem_t *sem) { assert((sem != NULL) && (sem->status != SEM_STATUS_POSIX)); diff --git a/src/contrib/semaphore.h b/src/contrib/semaphore.h index 080a6d743e..4c7c40446e 100644 --- a/src/contrib/semaphore.h +++ b/src/contrib/semaphore.h @@ -7,6 +7,7 @@ #include #include +#include typedef struct { pthread_mutex_t mutex; @@ -42,6 +43,16 @@ void knot_sem_reset(knot_sem_t *sem, int value); */ void knot_sem_wait(knot_sem_t *sem); +/*! + * \brief Lock the semaphore (decrement), block until it's non-negative but only for specified timeout. + * + * \param sem Semapthore. + * \param ms Timeout in milliseconds or 0 for infinity (same as knot_sem_wait). + * + * \return True if semaphore acquired, false if timeout passed. + */ +bool knot_sem_timedwait(knot_sem_t *sem, unsigned long ms); + /*! * \brief Block until the semaphore could decrement, but keep the value unchanged. * \note This can be only used with nonposix semaphore. diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 222ae11f50..7d5e52502f 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -457,6 +457,7 @@ static const yp_item_t desc_policy[] = { static const yp_item_t desc_external[] = { { C_ID, YP_TSTR, YP_VNONE, CONF_IO_FREF }, + { C_TIMEOUT, YP_TINT, YP_VINT = { 0, UINT32_MAX, 300, YP_STIME } }, { C_DUMP_NEW, YP_TSTR, YP_VSTR = { "" } }, { C_DUMP_REM, YP_TSTR, YP_VSTR = { "" } }, { C_DUMP_ADD, YP_TSTR, YP_VSTR = { "" } }, diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 1f30babd29..5479932b4e 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1005,7 +1005,8 @@ int zone_update_external(conf_t *conf, zone_update_t *update, conf_val_t *ev_id) dbus_emit_external_verify(update->zone->name); } - knot_sem_wait(&update->external); + val = conf_id_get(conf, C_EXTERNAL, C_TIMEOUT, ev_id); + knot_sem_timedwait(&update->external, conf_int(&val) * 1000); pthread_mutex_lock(&update->zone->cu_lock); update->zone->control_update = NULL; diff --git a/tests-extra/tests/zone/external_vldt/test.py b/tests-extra/tests/zone/external_vldt/test.py index 350ad83e54..fb31fa388d 100644 --- a/tests-extra/tests/zone/external_vldt/test.py +++ b/tests-extra/tests/zone/external_vldt/test.py @@ -40,7 +40,10 @@ def log_count_expect(server, pattern, expct): LOG = "for external validation" slave.async_start = True -slave.zones[ZONE].external = { "new": dump_file(slave, "new"), "rem": dump_file(slave, "diff"), "add": dump_file(slave, "diff") } +slave.zones[ZONE].external = { "timeout": "10", + "new": dump_file(slave, "new"), + "rem": dump_file(slave, "diff"), + "add": dump_file(slave, "diff") } def check_diff_types(types): check_zf_types(slave.zones[ZONE].external["add"], types) @@ -83,20 +86,33 @@ def check_diff_types(types): t.sleep(2) resp = slave.dig(ZONE, "SOA") resp.check_soa_serial(serial - 1) +ctl.close() + +up = master.update(zone) +up.add("snail", 3600, "AAAA", "1::1") +up.send() +serial = master.zone_wait(zone, serial) +t.sleep(2) +log_count_expect(slave, LOG, 3) +t.sleep(int(slave.zones[ZONE].external["timeout"])) +resp = slave.dig(ZONE, "SOA") +resp.check_soa_serial(serial - 2) up = master.update(zone) up.add("shark", 3600, "AAAA", "1::1") up.send() serial = master.zone_wait(zone, serial) +ctl.connect(os.path.join(slave.dir, sockname)) t.sleep(2) -log_count_expect(slave, LOG, 3) +log_count_expect(slave, LOG, 4) ctl.send_block(cmd="zone-diff", zone=ZONE) resp = ctl.receive_block() isset("AAAA" in resp[ZONE]["horse."+ZONE], "ZONE-DIFF 2") isset("AAAA" in resp[ZONE]["shark."+ZONE], "ZONE-DIFF 3") +isset("AAAA" in resp[ZONE]["snail."+ZONE], "ZONE-DIFF 3.5") isset("AAAA" in resp[ZONE]["tiger."+ZONE], "ZONE-DIFF 4") -check_diff_types(["SOA", "SOA", "AAAA", "AAAA", "AAAA"]) +check_diff_types(["SOA", "SOA", "AAAA", "AAAA", "AAAA", "AAAA"]) ctl.send_block(cmd="zone-commit", zone=ZONE) resp = ctl.receive_block() t.sleep(2) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 2d3197bf0d..30a78211f0 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1799,6 +1799,7 @@ def get_config(self): s.begin("external") have_external = True s.id_item("id", z.name) + self._str(s, "timeout", z.external["timeout"]) self._str(s, "dump-new-zone", z.external["new"]) self._str(s, "dump-removals", z.external["rem"]) self._str(s, "dump-additions", z.external["add"]) From 92f99d689701a86e2c4021bcb80ca17c77c41c7f Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 18 Jun 2025 12:41:09 +0200 Subject: [PATCH 041/675] external validation: dump files follow zonefile templating and storage path --- src/knot/conf/conf.c | 8 +++++--- src/knot/conf/conf.h | 24 ++++++++++++++++++++++++ src/knot/conf/schema.c | 6 +++--- src/knot/updates/zone-update.c | 20 ++++++++++++++------ tests/knot/test_conf.c | 4 ++-- 5 files changed, 48 insertions(+), 14 deletions(-) diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index bd52e397ec..720c704c9a 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -1072,13 +1072,15 @@ static int str_label( return str_zone(label, buff, buff_len); } -static char* get_filename( +char *conf_get_filename_txn( conf_t *conf, knot_db_txn_t *txn, const knot_dname_t *zone, const char *name) { - assert(name); + if (name == NULL) { + return NULL; + } const char *end = name + strlen(name); char out[1024] = ""; @@ -1189,7 +1191,7 @@ char* conf_zonefile_txn( file = "%s.zone"; } - return get_filename(conf, txn, zone, file); + return conf_get_filename_txn(conf, txn, zone, file); } char* conf_db_txn( diff --git a/src/knot/conf/conf.h b/src/knot/conf/conf.h index a253ba171b..1de23c6f79 100644 --- a/src/knot/conf/conf.h +++ b/src/knot/conf/conf.h @@ -664,6 +664,30 @@ void conf_free_mod_id( conf_mod_id_t *mod_id ); +/*! + * Get the absolute path in zonefile-like manner for given name/template. + * + * \param[in] conf Configuration. + * \param[in] txn Configuration DB transaction. + * \param[in] zone Zone name. + * \param[in] name File name or template (like %s.zonediff). + * + * \return Absolute zone file path string pointer. + */ +char *conf_get_filename_txn( + conf_t *conf, + knot_db_txn_t *txn, + const knot_dname_t *zone, + const char *name +); +static inline char* conf_get_filename( + conf_t *conf, + const knot_dname_t *zone, + const char *name) +{ + return conf_get_filename_txn(conf, &conf->read_txn, zone, name); +} + /*! * Gets the absolute zone file path. * diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 7d5e52502f..5e80ab4375 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -458,9 +458,9 @@ static const yp_item_t desc_policy[] = { static const yp_item_t desc_external[] = { { C_ID, YP_TSTR, YP_VNONE, CONF_IO_FREF }, { C_TIMEOUT, YP_TINT, YP_VINT = { 0, UINT32_MAX, 300, YP_STIME } }, - { C_DUMP_NEW, YP_TSTR, YP_VSTR = { "" } }, - { C_DUMP_REM, YP_TSTR, YP_VSTR = { "" } }, - { C_DUMP_ADD, YP_TSTR, YP_VSTR = { "" } }, + { C_DUMP_NEW, YP_TSTR, YP_VNONE }, + { C_DUMP_REM, YP_TSTR, YP_VNONE }, + { C_DUMP_ADD, YP_TSTR, YP_VNONE }, { NULL } }; diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 5479932b4e..6d314f2574 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -961,23 +961,31 @@ int zone_update_external(conf_t *conf, zone_update_t *update, conf_val_t *ev_id) { /* First: dump zone/diff files as/if configured. */ conf_val_t val = conf_id_get(conf, C_EXTERNAL, C_DUMP_NEW, ev_id); - const char *f_new = conf_str(&val); + char *f_new = conf_get_filename(conf, update->zone->name, conf_str(&val)); val = conf_id_get(conf, C_EXTERNAL, C_DUMP_REM, ev_id); - const char *f_rem = conf_str(&val); + char *f_rem = conf_get_filename(conf, update->zone->name, conf_str(&val)); val = conf_id_get(conf, C_EXTERNAL, C_DUMP_ADD, ev_id); - const char *f_add = conf_str(&val); + char *f_add = conf_get_filename(conf, update->zone->name, conf_str(&val)); int ret = KNOT_EOK; - if (*f_new != '\0' && ret == KNOT_EOK) { + if (f_new != NULL && ret == KNOT_EOK) { ret = zonefile_write(f_new, update->new_cont, NULL); } - if (*f_rem != '\0' && ret == KNOT_EOK) { + if (f_rem != NULL && ret == KNOT_EOK) { ret = dump_changeset_part(update, false, f_rem, "w"); } - if (*f_add != '\0' && ret == KNOT_EOK) { + if (f_add != NULL && ret == KNOT_EOK) { const char *mode = (strcmp(f_rem, f_add) == 0) ? "a" : "w"; ret = dump_changeset_part(update, true, f_add, mode); } + free(f_new); + free(f_rem); + free(f_add); + if (ret != KNOT_EOK) { + log_zone_error(update->zone->name, + "failed to dump new zone version or zone diff for external validation (%s)", + knot_strerror(ret)); + } /* Second: wait on semaphore on user's interaction. */ pthread_mutex_lock(&update->zone->cu_lock); diff --git a/tests/knot/test_conf.c b/tests/knot/test_conf.c index ad1ae653bc..b5d0c3af4a 100644 --- a/tests/knot/test_conf.c +++ b/tests/knot/test_conf.c @@ -20,7 +20,7 @@ static void check_name(const char *zone, const char *name, const char *ref) { knot_dname_t *z = knot_dname_from_str_alloc(zone); - char *file = get_filename(conf(), NULL, z, name); + char *file = conf_get_filename_txn(conf(), NULL, z, name); ok(file != NULL, "Get zonefile path for %s", zone); if (file != NULL) { ok(strcmp(file, ref) == 0, "Zonefile path compare %s", name); @@ -34,7 +34,7 @@ static void check_name_err(const char *zone, const char *name) { knot_dname_t *z = knot_dname_from_str_alloc(zone); - char *filename = get_filename(conf(), NULL, z, name); + char *filename = conf_get_filename_txn(conf(), NULL, z, name); ok(filename == NULL, "Invalid name %s", name); free(filename); From c4244b50db49f7df39219ee59ad75865459b8750 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 18 Jun 2025 12:41:34 +0200 Subject: [PATCH 042/675] samples: add a validating script --- samples/external_validation.sh | 54 ++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 samples/external_validation.sh diff --git a/samples/external_validation.sh b/samples/external_validation.sh new file mode 100755 index 0000000000..932e322a54 --- /dev/null +++ b/samples/external_validation.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +# Copyright (C) CZ.NIC, z.s.p.o. and contributors +# SPDX-License-Identifier: GPL-2.0-or-later +# For more information, see + +# This package is needed on Debian derived ditributions: libglib2.0-bin + +# This is an example script demonstrating Knot DNS's interface for external zone update verification. +# +# Expected configuration: +# +# server: +# ... +# dbus-event: external-verify +# +# external: +# - id: extval_example +# dump-removals: %s.zonediff +# dump-additions: %s.zonediff +# +# zone: +# ... +# external-validation: extval_example + +ZONEFILE=/var/lib/knot/%szonediff +MAX_NS_DIFF=1000 # maximum allowed changed NS records + +function validate() { + DIFF="$1" + NSCOUNT=$(awk '{ if ($3 == "NS") nscount++; } END { print nscount; }' "$DIFF") + if [[ "$?" -gt 0 ]]; then + return 1 + fi + if [[ "$NSCOUNT" -gt "$MAX_NS_DIFF" ]]; then + echo "...failed" + # TODO send yourself an e-mail here + return 1 + fi + echo "...passed" +} + +gdbus monitor --system --dest cz.nic.knotd --object-path /cz/nic/knotd \ + | while read dest event args; do + if [[ "$dest" =~ ^/cz/nic/knotd:* && "$event" =~ \.external_verify$ ]]; then + ZONE=$(echo "$args" | cut -d "'" -f 2) + ZONEDIFF=${ZONEFILE//%s/$ZONE} + echo "Validating diff of zone '$ZONE' at $ZONEDIFF" + if validate "$ZONEDIFF"; then + knotc zone-commit "$ZONE" + else + knotc zone-abort "$ZONE" + fi + fi +done From 06e7ad0584fc19fbe1dc378638b2d80bfc68e804 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 18 Jun 2025 15:02:51 +0200 Subject: [PATCH 043/675] external validation: don't trigger when useless --- src/knot/events/handlers/dnssec.c | 2 +- src/knot/events/handlers/load.c | 7 +++++++ src/knot/events/handlers/refresh.c | 6 +++--- src/knot/events/handlers/update.c | 1 + src/knot/updates/zone-update.c | 9 ++------- src/knot/updates/zone-update.h | 5 +++-- src/knot/zone/zone.c | 8 ++++++++ src/knot/zone/zone.h | 2 ++ src/knot/zone/zonedb.c | 7 ++----- 9 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/knot/events/handlers/dnssec.c b/src/knot/events/handlers/dnssec.c index f8108b417b..585e7dc47b 100644 --- a/src/knot/events/handlers/dnssec.c +++ b/src/knot/events/handlers/dnssec.c @@ -80,7 +80,7 @@ int event_dnssec(conf_t *conf, zone_t *zone) } zone_update_t up; - int ret = zone_update_init(&up, zone, UPDATE_INCREMENTAL | UPDATE_NO_CHSET); + int ret = zone_update_init(&up, zone, UPDATE_INCREMENTAL | UPDATE_NO_CHSET | UPDATE_EVREQ); if (ret != KNOT_EOK) { return ret; } diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 754267249c..e7903f7923 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -383,6 +383,13 @@ int event_load(conf_t *conf, zone_t *zone) (void)snprintf(new_serial_str, sizeof(new_serial_str), " -> %u", new_serial); } + /* Heursitsics: this catches most of the cases when the zone load doesn'T + * introduce any change to zone contents and external validation is useless. + */ + if (!zone_journal_same_serial(up.zone, new_serial)) { + up.flags |= UPDATE_EVREQ; + } + // Commit zone_update back to zone (including journal update, rcu,...). ret = zone_update_commit(conf, &up); if (ret != KNOT_EOK) { diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 44de0b70fa..b77e5ad6eb 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -350,9 +350,9 @@ static int axfr_finalize(struct refresh_data *data) zone_update_t up = { 0 }; if (data->ixfr_from_axfr && data->axfr_style_ixfr) { - ret = zone_update_from_differences(&up, data->zone, NULL, new_zone, UPDATE_INCREMENTAL, &skip); + ret = zone_update_from_differences(&up, data->zone, NULL, new_zone, UPDATE_INCREMENTAL | UPDATE_EVREQ, &skip); } else { - ret = zone_update_from_contents(&up, data->zone, new_zone, UPDATE_FULL); + ret = zone_update_from_contents(&up, data->zone, new_zone, UPDATE_FULL | UPDATE_EVREQ); } zone_skip_free(&skip); if (ret != KNOT_EOK) { @@ -613,7 +613,7 @@ static int ixfr_finalize(struct refresh_data *data) zone_update_flags_t strict = conf_bool(&val) ? 0 : UPDATE_STRICT; zone_update_t up = { 0 }; - int ret = zone_update_init(&up, data->zone, UPDATE_INCREMENTAL | UPDATE_NO_CHSET | strict); + int ret = zone_update_init(&up, data->zone, UPDATE_INCREMENTAL | UPDATE_NO_CHSET | UPDATE_EVREQ | strict); if (ret != KNOT_EOK) { data->fallback_axfr = false; data->fallback->remote = false; diff --git a/src/knot/events/handlers/update.c b/src/knot/events/handlers/update.c index 9e08984ebf..e824307868 100644 --- a/src/knot/events/handlers/update.c +++ b/src/knot/events/handlers/update.c @@ -164,6 +164,7 @@ static int process_normal(conf_t *conf, zone_t *zone, list_t *requests) zone_update_t up; zone_update_flags_t type = (zone->contents == NULL) ? UPDATE_FULL : UPDATE_INCREMENTAL | UPDATE_NO_CHSET; + type |= UPDATE_EVREQ; int ret = zone_update_init(&up, zone, type); if (ret != KNOT_EOK) { set_rcodes(requests, KNOT_RCODE_SERVFAIL); diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 6d314f2574..e602d5b093 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -990,12 +990,7 @@ int zone_update_external(conf_t *conf, zone_update_t *update, conf_val_t *ev_id) /* Second: wait on semaphore on user's interaction. */ pthread_mutex_lock(&update->zone->cu_lock); - if (update->zone->control_update != NULL) { - assert(update->zone->control_update == update); - assert(!(update->flags & UPDATE_WFEV)); - pthread_mutex_unlock(&update->zone->cu_lock); - return KNOT_EOK; // real control update never waits for external validation - } + assert(update->zone->control_update == NULL); if (zone_get_flag(update->zone, ZONE_SHUT_DOWN, false)) { pthread_mutex_unlock(&update->zone->cu_lock); @@ -1089,7 +1084,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) } val = conf_zone_get(conf, C_EXTERNAL_VLDT, update->zone->name); - if (val.code == KNOT_EOK) { + if (val.code == KNOT_EOK && (update->flags & UPDATE_EVREQ)) { ret = zone_update_external(conf, update, &val); if (ret != KNOT_EOK) { discard_adds_tree(update); diff --git a/src/knot/updates/zone-update.h b/src/knot/updates/zone-update.h index 5ac3816474..7e0506c6bd 100644 --- a/src/knot/updates/zone-update.h +++ b/src/knot/updates/zone-update.h @@ -51,8 +51,9 @@ typedef enum { UPDATE_CHANGED_NSEC = 1 << 7, /*!< This incremental update affects NSEC or NSEC3 nodes in zone. */ UPDATE_NO_CHSET = 1 << 8, /*!< Avoid using changeset and serialize to journal from diff of bi-nodes. */ UPDATE_SIGNED_FULL = 1 << 9, /*!< Full (non-incremental) zone sign took place during this update. */ - UPDATE_WFEV = 1 << 10, /*!< Update waiting for external validation. */ - UPDATE_EVOK = 1 << 11, /*!< External validation accepted the update. */ + UPDATE_EVREQ = 1 << 10, /*!< Update requires external validation (if configured). */ + UPDATE_WFEV = 1 << 11, /*!< Update waiting for external validation. */ + UPDATE_EVOK = 1 << 12, /*!< External validation accepted the update. */ } zone_update_flags_t; /*! diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 2484f0352d..c52fd31724 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -469,6 +469,14 @@ bool zone_journal_has_zij(zone_t *zone) return exists && zij; } +bool zone_journal_same_serial(zone_t *zone, uint32_t serial_to) +{ + bool exists = false; + uint32_t journal_serial; + int ret = journal_info(zone_journal(zone), &exists, NULL, NULL, &journal_serial, NULL, NULL, NULL, NULL); + return ret == KNOT_EOK && exists && journal_serial == serial_to; +} + void zone_notifailed_clear(zone_t *zone) { pthread_mutex_lock(&zone->preferred_lock); diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 22b6f5b04b..a33fe6337a 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -220,6 +220,8 @@ int zone_flush_journal(conf_t *conf, zone_t *zone, bool verbose); bool zone_journal_has_zij(zone_t *zone); +bool zone_journal_same_serial(zone_t *zone, uint32_t serial_to); + /*! * \brief Clear failed_notify list before planning new NOTIFY. */ diff --git a/src/knot/zone/zonedb.c b/src/knot/zone/zonedb.c index 83739f2f43..31a498c33f 100644 --- a/src/knot/zone/zonedb.c +++ b/src/knot/zone/zonedb.c @@ -18,13 +18,10 @@ static void discard_zone(zone_t *zone, bool abort_txn) // Don't flush if removed zone (no previous configuration available). if (conf_rawid_exists(conf(), C_ZONE, zone->name, knot_dname_size(zone->name)) || catalog_has_member(conf()->catalog, zone->name)) { - uint32_t journal_serial, zone_serial = zone_contents_serial(zone->contents); - bool exists; // Flush if bootstrapped or if the journal doesn't exist. - if (!zone->zonefile.exists || journal_info( - zone_journal(zone), &exists, NULL, NULL, &journal_serial, NULL, NULL, NULL, NULL - ) != KNOT_EOK || !exists || journal_serial != zone_serial) { + if (!zone->zonefile.exists || + !zone_journal_same_serial(zone, zone_contents_serial(zone->contents))) { zone_flush_journal(conf(), zone, false); } } From c4696a803af2a0b214918cfc41a393ebc8017ff0 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 19 Jun 2025 16:49:25 +0200 Subject: [PATCH 044/675] doc: external-validation process description --- doc/operation.rst | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/doc/operation.rst b/doc/operation.rst index 4ec2fa8cce..1488014bbd 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -1285,6 +1285,49 @@ be done by moving the current log file followed by reopening of the log file wit either ``knotc -b reload`` or by sending ``SIGHUP`` to the ``knotd`` process (see the :ref:`server_pidfile`). +.. _External validation: + +External validation +=================== + +This feature enables automatic validation of every zone update using third-party +zone-checking tools, as well as the enforcement of user-defined policies on zone +contents and updates (for example, ensuring that an update does not modify too +many records of specific RRtypes). + +External validation can be combined with, but does not depend on, +:ref:`zone_dnssec-validation` and :ref:`zone_zonemd-verify`. It behaves similarly +in that, if validation fails, the update is discarded and the server continues +responding (including outgoing zone transfers) from the last known good version +of the zone. + +Specifically, once :ref:`zone_external-validation` is configured, any time +a zone is being modified, the update process is paused just before +publishing the new version. At this point, it waits for verification and +either confirmation or rejection. The user or script can retrieve the status +via ``knotc zone-status`` or will be notified via :ref:`server_dbus-event`. +A response should be issued by calling ``knotc zone-commit`` to approve the update or +``knotc zone-abort`` to reject it. As an alternative to using :doc:`knotc `, +the command can be sent directly to the server's control socket. + +Note that the background worker processing the update is blocked +during the external validation and is not able to handle updates to +other zones at that time. Therefore, it is recommended to finish the validation +as fast as possible and/or configure a sufficient number of +:ref:`server_background-workers` relative to the number of zones. + +Additional options can be configured in the :ref:`external section`. This +includes settings to dump the full new zone and/or the zone differences to +specified files in textual (zone file) format before external validation begins. + +Also note that external validation may be rejected automatically +(without an explicit call to ``knotc zone-abort``) due to :ref:`external_timeout`. +This mechanism prevents the server from becoming locked. + +See `a simple demonstration script `_. +showing how to implement external validation using the combined D-Bus and knotc +interface. + .. _Data and metadata backup: Data and metadata backup From 13f82795726885a5b76cb8341a1285e6733aec9d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 29 Jul 2025 13:11:11 +0200 Subject: [PATCH 045/675] ctl: add open-external transaction state to zone-status --- src/knot/ctl/commands.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index ffb0b07b9f..f389659ff1 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -314,7 +314,12 @@ static int zone_status(zone_t *zone, ctl_args_t *args) if (MATCH_OR_FILTER(args, CTL_FILTER_STATUS_TRANSACTION)) { data[KNOT_CTL_IDX_TYPE] = "transaction"; - data[KNOT_CTL_IDX_DATA] = (zone->control_update != NULL) ? "open" : STATUS_EMPTY; + const char *value = STATUS_EMPTY; + if (zone->control_update != NULL) { + value = (zone->control_update->flags & UPDATE_WFEV) ? + "open-external" : "open"; + } + data[KNOT_CTL_IDX_DATA] = value; ret = knot_ctl_send(args->ctl, type, &data); if (ret != KNOT_EOK) { return ret; From d2d91c988b41ef44a81533cbac8aec1dbdd1bdf6 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 1 Aug 2025 08:04:29 +0200 Subject: [PATCH 046/675] external validation: replace per zone flag ZONE_SHUT_DOWN with server state ServerShutting --- src/knot/server/server.c | 14 ++++---------- src/knot/server/server.h | 1 + src/knot/updates/zone-update.c | 3 ++- src/knot/zone/zone.c | 10 ---------- src/knot/zone/zone.h | 8 -------- src/knot/zone/zonedb-load.c | 2 -- 6 files changed, 7 insertions(+), 31 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index ceb203958f..6b45bd1433 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1039,13 +1039,6 @@ int server_start(server_t *server, bool answering) return KNOT_EOK; } -static void zonedb_shutdown(server_t *server) -{ - if (server->zone_db != NULL) { - knot_zonedb_foreach(server->zone_db, zone_shutdown); - } -} - void server_wait(server_t *server) { if (server == NULL) { @@ -1411,8 +1404,8 @@ void server_stop(server_t *server) /* Stop scheduler. */ evsched_stop(&server->sched); - /* Shut down zones. */ - zonedb_shutdown(server); + /* Mark the server is shutting down. */ + server->state |= ServerShutting; /* Interrupt background workers. */ worker_pool_stop(server->workers); @@ -1630,7 +1623,7 @@ void server_update_zones(conf_t *conf, server_t *server, reload_t mode) /* Suspend adding events to worker pool queue, wait for queued events. */ log_debug("suspending zone events"); evsched_pause(&server->sched); - zonedb_shutdown(server); + server->state |= ServerShutting; worker_pool_wait(server->workers); log_debug("suspended zone events"); @@ -1645,6 +1638,7 @@ void server_update_zones(conf_t *conf, server_t *server, reload_t mode) if (server->zone_db) { knot_zonedb_foreach(server->zone_db, zone_events_start); } + server->state &= ~ServerShutting; log_debug("resumed zone events"); } diff --git a/src/knot/server/server.h b/src/knot/server/server.h index 6c7a50874e..f1f68650e8 100644 --- a/src/knot/server/server.h +++ b/src/knot/server/server.h @@ -39,6 +39,7 @@ typedef enum { ServerIdle = 0 << 0, /*!< Server is idle. */ ServerRunning = 1 << 0, /*!< Server is running. */ ServerAnswering = 1 << 1, /*!< Server is answering queries. */ + ServerShutting = 1 << 2, /*!< Server is shutting down. */ } server_state_t; /*! diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index e602d5b093..cb7bbe1a4d 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -992,7 +992,8 @@ int zone_update_external(conf_t *conf, zone_update_t *update, conf_val_t *ev_id) assert(update->zone->control_update == NULL); - if (zone_get_flag(update->zone, ZONE_SHUT_DOWN, false)) { + /* Don't start external validation if shutting down. */ + if (update->zone->server->state & ServerShutting) { pthread_mutex_unlock(&update->zone->cu_lock); return KNOT_EEXTERNAL; } diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index c52fd31724..80b8a8a1cc 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -200,16 +200,6 @@ void zone_control_clear(zone_t *zone) zone->control_update = NULL; } -void zone_shutdown(zone_t *zone) -{ - pthread_mutex_lock(&zone->cu_lock); - if (zone->control_update != NULL && (zone->control_update->flags & UPDATE_WFEV)) { - knot_sem_post(&zone->control_update->external); - } - zone_set_flag(zone, ZONE_SHUT_DOWN); - pthread_mutex_unlock(&zone->cu_lock); -} - void zone_free(zone_t **zone_ptr) { if (zone_ptr == NULL || *zone_ptr == NULL) { diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index a33fe6337a..9d5d3f007f 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -39,7 +39,6 @@ typedef enum { ZONE_XFR_FROZEN = 1 << 7, /*!< Outgoing AXFR/IXFR temporarily disabled. */ ZONE_USER_FLUSH = 1 << 8, /*!< User-triggered flush. */ ZONE_LAST_SIGN_OK = 1 << 9, /*!< Last full-sign event finished OK. */ - ZONE_SHUT_DOWN = 1 << 10, /*!< Zone events are shutting down. */ } zone_flag_t; /*! @@ -149,13 +148,6 @@ typedef struct zone */ zone_t* zone_new(const knot_dname_t *name); -/*! - * \brief Declare that zone is shutting down. - * - * \param zone Zone to be shut down. - */ -void zone_shutdown(zone_t *zone); - /*! * \brief Deallocates the zone structure. * diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 8b5095aa5c..f9fa0b2188 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -533,8 +533,6 @@ static knot_zonedb_t *create_zonedb(conf_t *conf, server_t *server, reload_t mod it = knot_zonedb_iter_begin(db_new); while (!knot_zonedb_iter_finished(it)) { zone_t *z = knot_zonedb_iter_val(it); - zone_unset_flag(z, ZONE_SHUT_DOWN); - conf_val_t val = conf_zone_get(conf, C_REVERSE_GEN, z->name); while (val.code == KNOT_EOK) { const knot_dname_t *forw_name = conf_dname(&val); From 17020f016978b53cc641b2f9a5ac1a2ecf1a6e14 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sat, 2 Aug 2025 18:32:06 +0200 Subject: [PATCH 047/675] zone: prevent freeing zone before RCU-delayed update cleanup is finished --- src/knot/zone/zone.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 80b8a8a1cc..3cf34bb2e2 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -214,6 +214,9 @@ void zone_free(zone_t **zone_ptr) pthread_join(zone->update_clear_thr, NULL); } + /* Even when events are done, delayed RCU cleanup might still be ongoing. */ + knot_sem_wait(&zone->cow_lock); + /* Free zone contents. Possible wait for XFRout lock. */ zone_contents_deep_free(zone->contents); @@ -223,6 +226,7 @@ void zone_free(zone_t **zone_ptr) pthread_mutex_destroy(&zone->ddns_lock); pthread_mutex_destroy(&zone->cu_lock); + knot_sem_post(&zone->cow_lock); knot_sem_destroy(&zone->cow_lock); /* Control update. */ From 61deb4180a483f89ec290a016f559c5317771e2f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 4 Aug 2025 07:55:42 +0200 Subject: [PATCH 048/675] zone-update: fix possible NULL dereference (Coverity) --- src/knot/updates/zone-update.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index cb7bbe1a4d..1fa4b7cc93 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -975,7 +975,10 @@ int zone_update_external(conf_t *conf, zone_update_t *update, conf_val_t *ev_id) ret = dump_changeset_part(update, false, f_rem, "w"); } if (f_add != NULL && ret == KNOT_EOK) { - const char *mode = (strcmp(f_rem, f_add) == 0) ? "a" : "w"; + const char *mode = "w"; + if (f_rem != NULL && strcmp(f_rem, f_add) == 0) { + mode = "a"; + } ret = dump_changeset_part(update, true, f_add, mode); } free(f_new); From e06e5e335e8215635b69876942620d57959a8b52 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 17 Jul 2025 12:01:44 +0200 Subject: [PATCH 049/675] server: don't iterate through all zones to check reverse-generate when conf-commit --- src/knot/zone/zonedb-load.c | 57 ++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index f9fa0b2188..c92ec25844 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -411,6 +411,29 @@ static zone_t *add_member_zone(catalog_upd_val_t *val, knot_zonedb_t *check, return zone; } +static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) +{ + if (zone == NULL) { + return; + } + + conf_val_t val = conf_zone_get(conf, C_REVERSE_GEN, zone->name); + while (val.code == KNOT_EOK) { + const knot_dname_t *forw_name = conf_dname(&val); + zone_t *forw = knot_zonedb_find(db_new, forw_name); + if (forw == NULL) { + knot_dname_txt_storage_t forw_str; + (void)knot_dname_to_str(forw_str, forw_name, sizeof(forw_str)); + log_zone_warning(zone->name, "zone to reverse %s does not exist", + forw_str); + } else { + ptrlist_add(&zone->reverse_from, forw, NULL); + zone_local_notify_subscribe(forw, zone); + } + conf_val_next(&val); + } +} + /*! * \brief Create new zone database. * @@ -530,27 +553,23 @@ static knot_zonedb_t *create_zonedb(conf_t *conf, server_t *server, reload_t mod } catalog_it_free(it); - it = knot_zonedb_iter_begin(db_new); - while (!knot_zonedb_iter_finished(it)) { - zone_t *z = knot_zonedb_iter_val(it); - conf_val_t val = conf_zone_get(conf, C_REVERSE_GEN, z->name); - while (val.code == KNOT_EOK) { - const knot_dname_t *forw_name = conf_dname(&val); - zone_t *forw = knot_zonedb_find(db_new, forw_name); - if (forw == NULL) { - knot_dname_txt_storage_t forw_str; - (void)knot_dname_to_str(forw_str, forw_name, sizeof(forw_str)); - log_zone_warning(z->name, "zone to reverse %s does not exist", - forw_str); - } else { - ptrlist_add(&z->reverse_from, forw, NULL); - zone_local_notify_subscribe(forw, z); - } - conf_val_next(&val); + if (mode == RELOAD_COMMIT && trie_weight(server->catalog_upd.upd) == 0) { + /* Don't iterate through all the zones if not necessary. */ + trie_it_t *trie_it = trie_it_begin(conf->io.zones); + for (; !trie_it_finished(trie_it); trie_it_next(trie_it)) { + zone_t *zone = knot_zonedb_find(db_new, + (const knot_dname_t *)trie_it_key(trie_it, NULL)); + reg_reverse(conf, db_new, zone); } - knot_zonedb_iter_next(it); + trie_it_free(trie_it); + } else { + it = knot_zonedb_iter_begin(db_new); + for (; !knot_zonedb_iter_finished(it); knot_zonedb_iter_next(it)) { + zone_t *zone = knot_zonedb_iter_val(it); + reg_reverse(conf, db_new, zone); + } + knot_zonedb_iter_free(it); } - knot_zonedb_iter_free(it); return db_new; } From eef243e73a25cc251670e043f6335895cecb0667 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 21 Jul 2025 14:35:05 +0200 Subject: [PATCH 050/675] server: optimize zonedb-load using qptrie COW where possible --- src/knot/server/server.h | 5 +- src/knot/zone/zone.h | 3 - src/knot/zone/zonedb-load.c | 459 +++++++++++++++++++++++------------- src/knot/zone/zonedb.c | 35 ++- src/knot/zone/zonedb.h | 4 +- src/utils/knotd/main.c | 4 +- 6 files changed, 335 insertions(+), 175 deletions(-) diff --git a/src/knot/server/server.h b/src/knot/server/server.h index f1f68650e8..b37f2b1268 100644 --- a/src/knot/server/server.h +++ b/src/knot/server/server.h @@ -47,10 +47,9 @@ typedef enum { */ typedef enum { RELOAD_NONE = 0, - RELOAD_FULL = 1 << 0, /*!< Reload the server and all zones. */ + RELOAD_FULL = 1 << 0, /*!< Reload all zones. */ RELOAD_COMMIT = 1 << 1, /*!< Process changes from dynamic configuration. */ - RELOAD_ZONES = 1 << 2, /*!< Reload all zones. */ - RELOAD_CATALOG = 1 << 3, /*!< Process catalog zone changes. */ + RELOAD_CATALOG = 1 << 2, /*!< Process catalog zone changes. */ } reload_t; /*! diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 9d5d3f007f..ff2d2747e3 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -79,9 +79,6 @@ typedef struct zone bool is_catalog_flag; //!< Lock-less indication of ZONE_IS_CATALOG flag. bool started; //!< Lock-less indication of a started zone. - /*! \brief Dynamic configuration zone change type. */ - conf_io_type_t change_type; - /*! \brief Zonefile parameters. */ struct { struct timespec mtime; diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index c92ec25844..50a55ad697 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -73,8 +73,7 @@ static zone_t *create_zone_from(const knot_dname_t *name, server_t *server) static void replan_events(conf_t *conf, zone_t *zone, zone_t *old_zone) { - bool conf_updated = (old_zone->change_type & CONF_IO_TRELOAD); - + bool conf_updated = false; conf_val_t digest = conf_zone_get(conf, C_ZONEMD_GENERATE, zone->name); if (zone->contents != NULL && !zone_contents_digest_exists(zone->contents, conf_opt(&digest), true)) { conf_updated = true; @@ -217,36 +216,17 @@ static zone_t *create_zone(conf_t *conf, const knot_dname_t *name, server_t *ser return z; } -static void mark_changed_zones(knot_zonedb_t *zonedb, trie_t *changed) -{ - if (changed == NULL) { - return; - } - - trie_it_t *it = trie_it_begin(changed); - for (; !trie_it_finished(it); trie_it_next(it)) { - const knot_dname_t *name = - (const knot_dname_t *)trie_it_key(it, NULL); - - zone_t *zone = knot_zonedb_find(zonedb, name); - if (zone != NULL) { - conf_io_type_t type = conf_io_trie_val(it); - assert(!(type & CONF_IO_TSET)); - zone->change_type = type; - } - } - trie_it_free(it); -} - static void zone_purge(conf_t *conf, zone_t *zone) { (void)selective_zone_purge(conf, zone, PURGE_ZONE_ALL); } -static zone_contents_t *zone_expire(zone_t *zone) +static zone_contents_t *zone_expire(zone_t *zone, bool zonedb_cow) { - zone->timers.next_expire = time(NULL); - zone->timers.next_refresh = zone->timers.next_expire; + if (!zonedb_cow) { + zone->timers.next_expire = time(NULL); + zone->timers.next_refresh = zone->timers.next_expire; + } return zone_switch_contents(zone, NULL); } @@ -269,7 +249,7 @@ static bool check_open_catalog(catalog_t *cat) } static zone_t *reuse_member_zone(zone_t *zone, server_t *server, conf_t *conf, - reload_t mode, list_t *expired_contents) + list_t *expired_contents) { if (!zone_get_flag(zone, ZONE_IS_CAT_MEMBER, false)) { return NULL; @@ -281,28 +261,20 @@ static zone_t *reuse_member_zone(zone_t *zone, server_t *server, conf_t *conf, case CAT_UPD_UNIQ: zone_purge(conf, zone); knot_sem_wait(&zone->cow_lock); - ptrlist_add(expired_contents, zone_expire(zone), NULL); + ptrlist_add(expired_contents, zone_expire(zone, false), NULL); knot_sem_post(&zone->cow_lock); // FALLTHROUGH case CAT_UPD_PROP: - zone->change_type = CONF_IO_TRELOAD; - break; // reload the member zone - case CAT_UPD_INVALID: case CAT_UPD_MINOR: - if (mode & (RELOAD_COMMIT | RELOAD_CATALOG)) { - return zone; // reuse the member zone - } else { - break; // reload the member zone - } + case CAT_UPD_INVALID: + break; // reload the member zone + case CAT_UPD_ADD: + assert(0); // cannot add existing member + // FALLTHROUGH case CAT_UPD_REM: - return NULL; // remove the member zone - case CAT_UPD_ADD: // cannot add existing member default: - assert(0); - return NULL; + return NULL; // remove the member zone } - } else if (mode & (RELOAD_COMMIT | RELOAD_CATALOG)) { - return zone; // reuse the member zone } zone_t *newzone = create_zone(conf, zone->name, server, zone); @@ -378,14 +350,14 @@ static int reuse_cold_zone_cb(const knot_dname_t *member, _unused_ const knot_dn return knot_zonedb_insert(rcz->zonedb, zone); } -static zone_t *add_member_zone(catalog_upd_val_t *val, knot_zonedb_t *check, +static zone_t *add_member_zone(catalog_upd_val_t *val, knot_zonedb_t *db_new, server_t *server, conf_t *conf) { if (val->type != CAT_UPD_ADD) { return NULL; } - if (knot_zonedb_find(check, val->member) != NULL) { + if (knot_zonedb_find(db_new, val->member) != NULL) { log_zone_error(val->member, "zone already configured, ignoring"); return NULL; } @@ -434,51 +406,128 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) } } -/*! - * \brief Create new zone database. - * - * Zones that should be retained are just added from the old database to the - * new. New zones are loaded. - * - * \param conf New server configuration. - * \param server Server instance. - * \param mode Reload mode. - * \param expired_contents Out: ptrlist of zone_contents_t to be deep freed after sync RCU. - * - * \return New zone database. - */ -static knot_zonedb_t *create_zonedb(conf_t *conf, server_t *server, reload_t mode, - list_t *expired_contents) +static knot_zonedb_t *create_zonedb_commit(conf_t *conf, server_t *server) { - assert(conf); - assert(server); + knot_zonedb_t *db_old = server->zone_db; // If NULL, zonedb is beeing initialized. + knot_zonedb_t *db_new = (db_old != NULL) ? knot_zonedb_cow(db_old) : knot_zonedb_new(); + if (db_new == NULL) { + return NULL; + } + if (conf->io.zones != NULL) { + trie_it_t *trie_it = trie_it_begin(conf->io.zones); + for (; !trie_it_finished(trie_it); trie_it_next(trie_it)) { + const knot_dname_t *name = (const knot_dname_t *)trie_it_key(trie_it, NULL); + conf_io_type_t type = conf_io_trie_val(trie_it); + if (type & CONF_IO_TSET) { + zone_t *zone = create_zone(conf, name, server, NULL); + if (zone == NULL) { + log_zone_error(name, "zone cannot be created"); + continue; + } else { + int ret = conf_activate_modules(conf, server, zone->name, + &zone->query_modules, + &zone->query_plan); + if (ret != KNOT_EOK) { + log_zone_error(zone->name, "zone cannot be activated (%s)", + knot_strerror(ret)); + zone->contents = NULL; + zone_free(&zone); + continue; + } + } + knot_zonedb_insert(db_new, zone); + reg_reverse(conf, db_new, zone); + } else if (type & CONF_IO_TUNSET) { + knot_zonedb_del(db_new, name); + } else { + zone_t *zone = knot_zonedb_find(db_new, name); + reg_reverse(conf, db_new, zone); + } + } + trie_it_free(trie_it); + } + + return db_new; +} + +static knot_zonedb_t *create_zonedb_catalog(conf_t *conf, server_t *server, + list_t *expired_contents) +{ knot_zonedb_t *db_old = server->zone_db; - knot_zonedb_t *db_new = knot_zonedb_new(); - if (!db_new) { + assert(db_old); // At least a catalog zone must be present. + knot_zonedb_t *db_new = knot_zonedb_cow(db_old); + if (db_new == NULL) { return NULL; } - /* Mark changed zones during dynamic configuration. */ - if (mode == RELOAD_COMMIT) { - mark_changed_zones(db_old, conf->io.zones); + /* Purge decataloged zones before commit - when configuration is available. */ + catalog_it_t *cat_it = catalog_it_begin(&server->catalog_upd); + for (; !catalog_it_finished(cat_it); catalog_it_next(cat_it)) { + catalog_upd_val_t *upd = catalog_it_val(cat_it); + if (upd->type == CAT_UPD_REM) { + zone_t *zone = knot_zonedb_find(db_old, upd->member); + if (zone != NULL) { + zone_purge(conf, zone); + } + } } + catalog_it_free(cat_it); - /* Process regular zones from the configuration. */ - for (conf_iter_t iter = conf_iter(conf, C_ZONE); iter.code == KNOT_EOK; - conf_iter_next(conf, &iter)) { - conf_val_t id = conf_iter_id(conf, &iter); - const knot_dname_t *name = conf_dname(&id); + int ret = catalog_update_commit(&server->catalog_upd, &server->catalog); + if (ret != KNOT_EOK) { + log_error("catalog, failed to apply changes (%s)", knot_strerror(ret)); + return db_new; + } - zone_t *old_zone = knot_zonedb_find(db_old, name); - if (old_zone != NULL && (mode & (RELOAD_COMMIT | RELOAD_CATALOG))) { - /* Reuse unchanged zone. */ - if (!(old_zone->change_type & CONF_IO_TRELOAD)) { - knot_zonedb_insert(db_new, old_zone); - continue; + /* Process the catalog update. */ + cat_it = catalog_it_begin(&server->catalog_upd); + for (; !catalog_it_finished(cat_it); catalog_it_next(cat_it)) { + catalog_upd_val_t *upd = catalog_it_val(cat_it); + zone_t *zone = NULL; + switch (upd->type) { + case CAT_UPD_ADD: + zone = add_member_zone(upd, db_new, server, conf); + knot_zonedb_insert(db_new, zone); + reg_reverse(conf, db_new, zone); + break; + case CAT_UPD_REM: + knot_zonedb_del(db_new, upd->member); + break; + case CAT_UPD_UNIQ: + case CAT_UPD_PROP: + zone = knot_zonedb_find(db_new, upd->member); + if (upd->type == CAT_UPD_UNIQ && zone != NULL) { + zone_purge(conf, zone); + knot_sem_wait(&zone->cow_lock); + ptrlist_add(expired_contents, zone_expire(zone, true), NULL); + knot_sem_post(&zone->cow_lock); } + reg_reverse(conf, db_new, zone); + break; + default: + break; } + } + catalog_it_free(cat_it); + + return db_new; +} + +static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, + list_t *expired_contents) +{ + knot_zonedb_t *db_old = server->zone_db; + knot_zonedb_t *db_new = knot_zonedb_new(); + if (db_new == NULL) { + return NULL; + } + for (conf_iter_t it = conf_iter(conf, C_ZONE); it.code == KNOT_EOK; + conf_iter_next(conf, &it)) { + conf_val_t id = conf_iter_id(conf, &it); + const knot_dname_t *name = conf_dname(&id); + zone_t *old_zone = knot_zonedb_find(db_old, name); zone_t *zone = create_zone(conf, name, server, old_zone); if (zone == NULL) { log_zone_error(name, "zone cannot be created"); @@ -495,22 +544,19 @@ static knot_zonedb_t *create_zonedb(conf_t *conf, server_t *server, reload_t mod continue; } } - knot_zonedb_insert(db_new, zone); } - /* Purge decataloged zones before catalog removals are commited. */ + /* Purge decataloged zones before commit - when configuration is available. */ catalog_it_t *cat_it = catalog_it_begin(&server->catalog_upd); - while (!catalog_it_finished(cat_it)) { + for (; !catalog_it_finished(cat_it); catalog_it_next(cat_it)) { catalog_upd_val_t *upd = catalog_it_val(cat_it); if (upd->type == CAT_UPD_REM) { zone_t *zone = knot_zonedb_find(db_old, upd->member); if (zone != NULL) { - zone->change_type = CONF_IO_TUNSET; zone_purge(conf, zone); } } - catalog_it_next(cat_it); } catalog_it_free(cat_it); @@ -522,17 +568,15 @@ static knot_zonedb_t *create_zonedb(conf_t *conf, server_t *server, reload_t mod /* Process existing catalog member zones. */ if (db_old != NULL) { - knot_zonedb_iter_t *it = knot_zonedb_iter_begin(db_old); - while (!knot_zonedb_iter_finished(it)) { - zone_t *newzone = reuse_member_zone(knot_zonedb_iter_val(it), - server, conf, mode, - expired_contents); + knot_zonedb_iter_t *db_it = knot_zonedb_iter_begin(db_old); + for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { + zone_t *newzone = reuse_member_zone(knot_zonedb_iter_val(db_it), + server, conf, expired_contents); if (newzone != NULL) { knot_zonedb_insert(db_new, newzone); } - knot_zonedb_iter_next(it); } - knot_zonedb_iter_free(it); + knot_zonedb_iter_free(db_it); } else if (check_open_catalog(&server->catalog)) { reuse_cold_zone_ctx_t rcz = { db_new, server, conf }; ret = catalog_apply(&server->catalog, NULL, reuse_cold_zone_cb, &rcz, false); @@ -542,98 +586,199 @@ static knot_zonedb_t *create_zonedb(conf_t *conf, server_t *server, reload_t mod } /* Process new catalog member zones. */ - catalog_it_t *it = catalog_it_begin(&server->catalog_upd); - while (!catalog_it_finished(it)) { - catalog_upd_val_t *val = catalog_it_val(it); + cat_it = catalog_it_begin(&server->catalog_upd); + for (; !catalog_it_finished(cat_it); catalog_it_next(cat_it)) { + catalog_upd_val_t *val = catalog_it_val(cat_it); zone_t *zone = add_member_zone(val, db_new, server, conf); if (zone != NULL) { knot_zonedb_insert(db_new, zone); } - catalog_it_next(it); } - catalog_it_free(it); + catalog_it_free(cat_it); - if (mode == RELOAD_COMMIT && trie_weight(server->catalog_upd.upd) == 0) { - /* Don't iterate through all the zones if not necessary. */ + knot_zonedb_iter_t *db_it = knot_zonedb_iter_begin(db_new); + for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { + zone_t *zone = knot_zonedb_iter_val(db_it); + reg_reverse(conf, db_new, zone); + } + knot_zonedb_iter_free(db_it); + + return db_new; +} + +/*! + * \brief Create new zone database. + * + * Zones that should be retained are just added from the old database to the new + * one or directly reused if incremental update. New zones are loaded. + * + * \param conf New server configuration. + * \param server Server instance. + * \param mode Reload mode. + * \param expired_contents Out: ptrlist of zone_contents_t to be deep freed after sync RCU. + * + * \return New zone database. + */ +static knot_zonedb_t *create_zonedb(conf_t *conf, server_t *server, reload_t mode, + list_t *expired_contents) +{ + switch (mode) { + case RELOAD_COMMIT: + return create_zonedb_commit(conf, server); + case RELOAD_CATALOG: + return create_zonedb_catalog(conf, server, expired_contents); + default: + return create_zonedb_full(conf, server, expired_contents); + } +} + +static void remove_old_zonedb_commit(conf_t *conf, knot_zonedb_t *db_old, server_t *server) +{ + knot_zonedb_t *db_new = server->zone_db; + + assert(conf->io.flags & CONF_IO_FACTIVE); + bool reload_zones = conf->io.flags & CONF_IO_FRLD_ZONES; + + if (conf->io.zones != NULL) { trie_it_t *trie_it = trie_it_begin(conf->io.zones); for (; !trie_it_finished(trie_it); trie_it_next(trie_it)) { - zone_t *zone = knot_zonedb_find(db_new, - (const knot_dname_t *)trie_it_key(trie_it, NULL)); - reg_reverse(conf, db_new, zone); + const knot_dname_t *name = (const knot_dname_t *)trie_it_key(trie_it, NULL); + conf_io_type_t type = conf_io_trie_val(trie_it); + if (type & CONF_IO_TUNSET) { + zone_t *zone = knot_zonedb_find(db_old, name); + zone_free(&zone); + } else if (!reload_zones && (type & CONF_IO_TRELOAD)) { + int ret = zone_reload_modules(conf, server, name); + if (ret != KNOT_EOK) { + log_zone_error(name, "failed to reload modules (%s)", + knot_strerror(ret)); + } + zone_t *zone = knot_zonedb_find(db_new, name); + zone_events_schedule_now(zone, ZONE_EVENT_LOAD); + } } trie_it_free(trie_it); - } else { - it = knot_zonedb_iter_begin(db_new); - for (; !knot_zonedb_iter_finished(it); knot_zonedb_iter_next(it)) { - zone_t *zone = knot_zonedb_iter_val(it); - reg_reverse(conf, db_new, zone); + } + + if (reload_zones) { + knot_zonedb_iter_t *db_it = knot_zonedb_iter_begin(db_new); + for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { + knot_dname_storage_t name; + if (knot_dname_store(name, ((zone_t *)knot_zonedb_iter_val(db_it))->name) == 0) { + continue; + } + int ret = zone_reload_modules(conf, server, name); + if (ret != KNOT_EOK) { + log_zone_error(name, "failed to reload modules (%s)", + knot_strerror(ret)); + } + zone_t *zone = knot_zonedb_find(db_new, name); + zone_events_schedule_now(zone, ZONE_EVENT_LOAD); } - knot_zonedb_iter_free(it); + knot_zonedb_iter_free(db_it); } - return db_new; + trie_cow_commit(db_new->cow, NULL, NULL); + db_new->cow = NULL; + + if (db_old != NULL && db_old->cow != NULL) { + free(db_old); + } } -/*! - * \brief Schedule deletion of old zones, and free the zone db structure. - * - * \note Zone content may be preserved in the new zone database, in this case - * new and old zone share the contents. Shared content is not freed. - * - * \param conf New server configuration. - * \param db_old Old zone database to remove. - * \param server Server context. - */ -static void remove_old_zonedb(conf_t *conf, knot_zonedb_t *db_old, - server_t *server, reload_t mode) +static void remove_old_zonedb_catalog(conf_t *conf, knot_zonedb_t *db_old, server_t *server) { + assert(db_old); + knot_zonedb_t *db_new = server->zone_db; + catalog_commit_cleanup(&server->catalog); + catalog_it_t *cat_it = catalog_it_begin(&server->catalog_upd); + for (; !catalog_it_finished(cat_it); catalog_it_next(cat_it)) { + catalog_upd_val_t *upd = catalog_it_val(cat_it); + zone_t *zone = NULL; + switch (upd->type) { + case CAT_UPD_REM: + zone = knot_zonedb_find(db_old, upd->member); + zone_free(&zone); + break; + case CAT_UPD_UNIQ: + case CAT_UPD_PROP: + ; int ret = zone_reload_modules(conf, server, upd->member); + if (ret != KNOT_EOK) { + log_zone_error(upd->member, "failed to reload modules (%s)", + knot_strerror(ret)); + } + zone = knot_zonedb_find(db_new, upd->member); + zone_events_schedule_now(zone, ZONE_EVENT_LOAD); + break; + default: + break; + } + } + catalog_it_free(cat_it); + + /* Clear catalog changes. No need to use mutex as this is done from main + * thread while all zone events are paused. */ + catalog_update_clear(&server->catalog_upd); + + trie_cow_commit(db_new->cow, NULL, NULL); + db_new->cow = NULL; + + free(db_old); +} + +static void remove_old_zonedb_full(conf_t *conf, knot_zonedb_t *db_old, server_t *server) +{ knot_zonedb_t *db_new = server->zone_db; - if (db_old == NULL) { - goto catalog_only; - } + catalog_commit_cleanup(&server->catalog); - knot_zonedb_iter_t *it = knot_zonedb_iter_begin(db_old); - while (!knot_zonedb_iter_finished(it)) { - zone_t *zone = knot_zonedb_iter_val(it); - if (mode & (RELOAD_FULL | RELOAD_ZONES)) { - /* Check if reloaded (reused contents). */ + if (db_old != NULL) { + knot_zonedb_iter_t *db_it = knot_zonedb_iter_begin(db_old); + for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { + zone_t *zone = knot_zonedb_iter_val(db_it); zone_t *new_zone = knot_zonedb_find(db_new, zone->name); if (new_zone != NULL) { + /* Reload reused zone. */ replan_events(conf, new_zone, zone); zone->contents = NULL; } - /* Completely new zone. */ - } else { - /* Check if reloaded (reused contents). */ - if (zone->change_type & CONF_IO_TRELOAD) { - zone_t *new_zone = knot_zonedb_find(db_new, zone->name); - assert(new_zone); - replan_events(conf, new_zone, zone); - zone->contents = NULL; - zone_free(&zone); - /* Check if removed (drop also contents). */ - } else if (zone->change_type & CONF_IO_TUNSET) { - zone_free(&zone); - } - /* Completely reused zone. */ } - knot_zonedb_iter_next(it); + knot_zonedb_iter_free(db_it); } - knot_zonedb_iter_free(it); - -catalog_only: /* Clear catalog changes. No need to use mutex as this is done from main * thread while all zone events are paused. */ catalog_update_clear(&server->catalog_upd); - if (mode & (RELOAD_FULL | RELOAD_ZONES)) { - knot_zonedb_deep_free(&db_old, false); - } else { - knot_zonedb_free(&db_old); + knot_zonedb_deep_free(&db_old, false); +} + +/*! + * \brief Schedule deletion of old zones, and free the zone db structure. + * + * \note Zone content may be preserved in the new zone database, in this case + * new and old zone share the contents. Shared content is not freed. + * + * \param conf New server configuration. + * \param db_old Old zone database to remove. + * \param server Server context. + * \param mode Reload mode. + */ +static void remove_old_zonedb(conf_t *conf, knot_zonedb_t *db_old, + server_t *server, reload_t mode) +{ + switch (mode) { + case RELOAD_COMMIT: + remove_old_zonedb_commit(conf, db_old, server); + break; + case RELOAD_CATALOG: + remove_old_zonedb_catalog(conf, db_old, server); + break; + default: + remove_old_zonedb_full(conf, db_old, server); + break; } } @@ -649,20 +794,15 @@ void zonedb_reload(conf_t *conf, server_t *server, reload_t mode) return; } - if (mode == RELOAD_COMMIT) { - assert(conf->io.flags & CONF_IO_FACTIVE); - if (conf->io.flags & CONF_IO_FRLD_ZONES) { - mode = RELOAD_ZONES; - } - } - list_t contents_tofree; init_list(&contents_tofree); - catalog_update_finalize(&server->catalog_upd, &server->catalog, conf); - size_t cat_upd_size = trie_weight(server->catalog_upd.upd); - if (cat_upd_size > 0) { - log_info("catalog, updating, %zu changes", cat_upd_size); + if (mode != RELOAD_COMMIT) { + catalog_update_finalize(&server->catalog_upd, &server->catalog, conf); + size_t cat_upd_size = trie_weight(server->catalog_upd.upd); + if (cat_upd_size > 0) { + log_info("catalog, updating, %zu changes", cat_upd_size); + } } /* Insert all required zones to the new zone DB. */ @@ -672,6 +812,7 @@ void zonedb_reload(conf_t *conf, server_t *server, reload_t mode) return; } + // TODO: optimize within create_zonedb. catalogs_generate(db_new, server->zone_db); /* Switch the databases. */ diff --git a/src/knot/zone/zonedb.c b/src/knot/zone/zonedb.c index 31a498c33f..0fd024a2d5 100644 --- a/src/knot/zone/zonedb.c +++ b/src/knot/zone/zonedb.c @@ -39,11 +39,8 @@ knot_zonedb_t *knot_zonedb_new(void) return NULL; } - mm_ctx_mempool(&db->mm, MM_DEFAULT_BLKSIZE); - - db->trie = trie_create(&db->mm); + db->trie = trie_create(NULL); if (db->trie == NULL) { - mp_delete(db->mm.ctx); free(db); return NULL; } @@ -51,6 +48,22 @@ knot_zonedb_t *knot_zonedb_new(void) return db; } +knot_zonedb_t *knot_zonedb_cow(knot_zonedb_t *from) +{ + knot_zonedb_t *to = calloc(1, sizeof(*to)); + if (to == NULL) { + return to; + } + from->cow = trie_cow(from->trie, NULL, NULL); + to->cow = from->cow; + to->trie = trie_cow_new(to->cow); + if (to->trie == NULL) { + free(to); + to = NULL; + } + return to; +} + int knot_zonedb_insert(knot_zonedb_t *db, zone_t *zone) { if (db == NULL || zone == NULL) { @@ -62,7 +75,11 @@ int knot_zonedb_insert(knot_zonedb_t *db, zone_t *zone) uint8_t *lf = knot_dname_lf(zone->name, lf_storage); assert(lf); - *trie_get_ins(db->trie, lf + 1, *lf) = zone; + if (db->cow != NULL) { + *trie_get_cow(db->cow, lf + 1, *lf) = zone; + } else { + *trie_get_ins(db->trie, lf + 1, *lf) = zone; + } return KNOT_EOK; } @@ -82,7 +99,11 @@ int knot_zonedb_del(knot_zonedb_t *db, const knot_dname_t *zone_name) return KNOT_ENOENT; } - return trie_del(db->trie, lf + 1, *lf, NULL); + if (db->cow != NULL) { + return trie_del_cow(db->cow, lf + 1, *lf, NULL); + } else { + return trie_del(db->trie, lf + 1, *lf, NULL); + } } zone_t *knot_zonedb_find(knot_zonedb_t *db, const knot_dname_t *zone_name) @@ -158,7 +179,7 @@ void knot_zonedb_free(knot_zonedb_t **db) return; } - mp_delete((*db)->mm.ctx); + trie_free((*db)->trie); free(*db); *db = NULL; } diff --git a/src/knot/zone/zonedb.h b/src/knot/zone/zonedb.h index fceeaea7f4..ead44a5cbe 100644 --- a/src/knot/zone/zonedb.h +++ b/src/knot/zone/zonedb.h @@ -17,7 +17,7 @@ struct knot_zonedb { trie_t *trie; - knot_mm_t mm; + trie_cow_t *cow; // non-NULL only during zone update }; /* @@ -51,6 +51,8 @@ typedef trie_it_t knot_zonedb_iter_t; */ knot_zonedb_t *knot_zonedb_new(void); +knot_zonedb_t *knot_zonedb_cow(knot_zonedb_t *db); + /*! * \brief Adds new zone to the database. * diff --git a/src/utils/knotd/main.c b/src/utils/knotd/main.c index de7a182394..699ef9cd83 100644 --- a/src/utils/knotd/main.c +++ b/src/utils/knotd/main.c @@ -297,7 +297,7 @@ static int event_loop(server_t *server, const char *socket, bool daemonize, if (signals_req_zones_reload && !signals_req_stop) { signals_req_zones_reload = false; reload_t mode = ATOMIC_GET(server->catalog_upd_signal) ? - RELOAD_CATALOG : RELOAD_ZONES; + RELOAD_CATALOG : RELOAD_FULL; pthread_rwlock_wrlock(&server->ctl_lock); ATOMIC_SET(server->catalog_upd_signal, false); server_update_zones(conf(), server, mode); @@ -603,7 +603,7 @@ int main(int argc, char **argv) /* Populate zone database. */ log_info("loading %zu zones", conf_id_count(conf(), C_ZONE)); - server_update_zones(conf(), &server, RELOAD_ZONES); + server_update_zones(conf(), &server, RELOAD_FULL); /* Check number of loaded zones. */ if (knot_zonedb_size(server.zone_db) == 0) { From 8c0dd27f0494f11d64f1efdd38f73bcbb2ac1d3a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 23 Jul 2025 21:52:40 +0200 Subject: [PATCH 051/675] server: refactor catalogs_generate() to extract basic functionality --- src/knot/catalog/generate.c | 134 ++++++++++++++---------------------- src/knot/catalog/generate.h | 19 +++-- src/knot/zone/zonedb-load.c | 35 ++++++++++ 3 files changed, 102 insertions(+), 86 deletions(-) diff --git a/src/knot/catalog/generate.c b/src/knot/catalog/generate.c index 1b93cbc182..c406ffc96f 100644 --- a/src/knot/catalog/generate.c +++ b/src/knot/catalog/generate.c @@ -8,7 +8,6 @@ #include "knot/catalog/generate.h" #include "knot/common/log.h" #include "knot/updates/zone-update.h" -#include "knot/zone/zonedb.h" #include "contrib/openbsd/siphash.h" #include "contrib/wire_ctx.h" @@ -53,94 +52,67 @@ static knot_dname_t *catalog_member_owner(const knot_dname_t *member, return out; } -static bool same_group(zone_t *old_z, zone_t *new_z) +void catalog_generate_rem(zone_t *zone, knot_zonedb_t *db_new) { - if (old_z->catalog_group == NULL || new_z->catalog_group == NULL) { - return (old_z->catalog_group == new_z->catalog_group); + if (zone == NULL) { + return; + } + knot_dname_t *cg = zone->catalog_gen; + if (cg == NULL) { + return; + } + zone_t *catz = knot_zonedb_find(db_new, cg); + if (catz == NULL || catz->contents == NULL) { + return; + } + assert(catz->cat_members != NULL); // if this failed to allocate, catz wasn't added to zonedb + knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers.catalog_member); + if (owner == NULL) { + catz->cat_members->error = KNOT_ENOENT; + return; + } + int ret = catalog_update_add(catz->cat_members, zone->name, owner, cg, + CAT_UPD_REM, NULL, 0, NULL); + if (ret != KNOT_EOK) { + catz->cat_members->error = ret; } else { - return (strcmp(old_z->catalog_group, new_z->catalog_group) == 0); + zone_events_schedule_now(catz, ZONE_EVENT_LOAD); } + free(owner); } -void catalogs_generate(struct knot_zonedb *db_new, struct knot_zonedb *db_old) +void catalog_generate_add(zone_t *zone, knot_zonedb_t *db_new, bool property) { - // general comment: catz->contents!=NULL means incremental update of catalog - - if (db_old != NULL) { - knot_zonedb_iter_t *it = knot_zonedb_iter_begin(db_old); - while (!knot_zonedb_iter_finished(it)) { - zone_t *zone = knot_zonedb_iter_val(it); - knot_dname_t *cg = zone->catalog_gen; - if (cg != NULL && knot_zonedb_find(db_new, zone->name) == NULL) { - zone_t *catz = knot_zonedb_find(db_new, cg); - if (catz != NULL && catz->contents != NULL) { - assert(catz->cat_members != NULL); // if this failed to allocate, catz wasn't added to zonedb - knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers.catalog_member); - if (owner == NULL) { - catz->cat_members->error = KNOT_ENOENT; - knot_zonedb_iter_next(it); - continue; - } - int ret = catalog_update_add(catz->cat_members, zone->name, owner, - cg, CAT_UPD_REM, NULL, 0, NULL); - free(owner); - if (ret != KNOT_EOK) { - catz->cat_members->error = ret; - } else { - zone_events_schedule_now(catz, ZONE_EVENT_LOAD); - } - } - } - knot_zonedb_iter_next(it); - } - knot_zonedb_iter_free(it); + if (zone == NULL) { + return; } - - knot_zonedb_iter_t *it = knot_zonedb_iter_begin(db_new); - while (!knot_zonedb_iter_finished(it)) { - zone_t *zone = knot_zonedb_iter_val(it); - knot_dname_t *cg = zone->catalog_gen; - if (cg == NULL) { - knot_zonedb_iter_next(it); - continue; - } - zone_t *catz = knot_zonedb_find(db_new, cg); - zone_t *old = knot_zonedb_find(db_old, zone->name); - knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers.catalog_member); - size_t cgroup_size = zone->catalog_group == NULL ? 0 : strlen(zone->catalog_group); - if (catz == NULL) { - log_zone_error(zone->name, "member zone belongs to non-existing catalog zone"); - } else if (catz->cat_members == NULL) { - log_zone_error(zone->name, "member zone belongs to non-generated catalog zone"); - } else if (catz->contents == NULL || old == NULL) { - assert(catz->cat_members != NULL); - if (owner == NULL) { - catz->cat_members->error = KNOT_ENOENT; - knot_zonedb_iter_next(it); - continue; - } - int ret = catalog_update_add(catz->cat_members, zone->name, owner, - cg, CAT_UPD_ADD, zone->catalog_group, - cgroup_size, NULL); - if (ret != KNOT_EOK) { - catz->cat_members->error = ret; - } else { - zone_events_schedule_now(catz, ZONE_EVENT_LOAD); - } - } else if (!same_group(zone, old)) { - int ret = catalog_update_add(catz->cat_members, zone->name, owner, - cg, CAT_UPD_PROP, zone->catalog_group, - cgroup_size, NULL); - if (ret != KNOT_EOK) { - catz->cat_members->error = ret; - } else { - zone_events_schedule_now(catz, ZONE_EVENT_LOAD); - } - } - free(owner); - knot_zonedb_iter_next(it); + knot_dname_t *cg = zone->catalog_gen; + if (cg == NULL) { + return; + } + zone_t *catz = knot_zonedb_find(db_new, cg); + if (catz == NULL) { + log_zone_error(zone->name, "member zone belongs to non-existing catalog zone"); + return; + } else if (catz->cat_members == NULL) { + log_zone_error(zone->name, "member zone belongs to non-generated catalog zone"); + return; + } + knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers.catalog_member); + if (owner == NULL) { + catz->cat_members->error = KNOT_ENOENT; + return; + } + size_t cgroup_size = zone->catalog_group == NULL ? 0 : strlen(zone->catalog_group); + int ret = catalog_update_add(catz->cat_members, zone->name, owner, cg, + (property ? CAT_UPD_PROP : CAT_UPD_ADD), + zone->catalog_group, cgroup_size, NULL); + if (ret != KNOT_EOK) { + catz->cat_members->error = ret; + } else { + zone_events_schedule_now(catz, ZONE_EVENT_LOAD); } - knot_zonedb_iter_free(it); + free(owner); } static void set_rdata(knot_rrset_t *rrset, uint8_t *data, uint16_t len) diff --git a/src/knot/catalog/generate.h b/src/knot/catalog/generate.h index 3f3f510501..20dfe90334 100644 --- a/src/knot/catalog/generate.h +++ b/src/knot/catalog/generate.h @@ -6,19 +6,28 @@ #pragma once #include "knot/catalog/catalog_update.h" +#include "knot/zone/zonedb.h" #define CATALOG_SOA_REFRESH 3600 #define CATALOG_SOA_RETRY 600 #define CATALOG_SOA_EXPIRE (INT32_MAX - 1) -struct knot_zonedb; - /*! - * \brief Compare old and new zonedb, create incremental catalog upd in each catz->cat_members + * \brief Add a member removal to corresponding catalog update. + * + * \param zone Member zone. + * \param db_new New zone database. */ -void catalogs_generate(struct knot_zonedb *db_new, struct knot_zonedb *db_old); +void catalog_generate_rem(zone_t *zone, knot_zonedb_t *db_new); -struct zone_contents; +/*! + * \brief Add a member addition/prop to corresponding catalog update. + * + * \param zone Member zone. + * \param db_new New zone database. + * \param property Property or addition indicator. + */ +void catalog_generate_add(zone_t *zone, knot_zonedb_t *db_new, bool property); /*! * \brief Generate catalog zone contents from (full) catalog update. diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 50a55ad697..a12b6fa0cc 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -514,6 +514,41 @@ static knot_zonedb_t *create_zonedb_catalog(conf_t *conf, server_t *server, return db_new; } +static bool same_group(zone_t *old_z, zone_t *new_z) +{ + if (old_z->catalog_group == NULL || new_z->catalog_group == NULL) { + return (old_z->catalog_group == new_z->catalog_group); + } else { + return (strcmp(old_z->catalog_group, new_z->catalog_group) == 0); + } +} + +static void catalogs_generate(struct knot_zonedb *db_new, struct knot_zonedb *db_old) +{ + if (db_old != NULL) { + knot_zonedb_iter_t *it = knot_zonedb_iter_begin(db_old); + for (; !knot_zonedb_iter_finished(it); knot_zonedb_iter_next(it)) { + zone_t *zone = knot_zonedb_iter_val(it); + if (knot_zonedb_find(db_new, zone->name) == NULL) { + catalog_generate_rem(zone, db_new); + } + } + knot_zonedb_iter_free(it); + } + + knot_zonedb_iter_t *it = knot_zonedb_iter_begin(db_new); + for (; !knot_zonedb_iter_finished(it); knot_zonedb_iter_next(it)) { + zone_t *zone = knot_zonedb_iter_val(it); + zone_t *old = knot_zonedb_find(db_old, zone->name); + if (old == NULL) { + catalog_generate_add(zone, db_new, false); + } else if (!same_group(zone, old)) { + catalog_generate_add(zone, db_new, true); + } + } + knot_zonedb_iter_free(it); +} + static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, list_t *expired_contents) { From da619f548ada848b544eeeb481c3b50e38b52577 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 24 Jul 2025 08:37:26 +0200 Subject: [PATCH 052/675] server: optimize catalogs_generate() depending on the reload type --- src/knot/zone/zonedb-load.c | 80 +++++----- .../tests/catalog/generate/data/generic.upd | 3 + .../tests/catalog/generate/data/generic.zone | 3 + tests-extra/tests/catalog/generate/test.py | 147 +++++++++++++----- 4 files changed, 156 insertions(+), 77 deletions(-) create mode 100644 tests-extra/tests/catalog/generate/data/generic.upd create mode 100644 tests-extra/tests/catalog/generate/data/generic.zone diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index a12b6fa0cc..e7dc1658ab 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -406,6 +406,15 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) } } +static bool same_group(zone_t *old_z, zone_t *new_z) +{ + if (old_z->catalog_group == NULL || new_z->catalog_group == NULL) { + return (old_z->catalog_group == new_z->catalog_group); + } else { + return (strcmp(old_z->catalog_group, new_z->catalog_group) == 0); + } +} + static knot_zonedb_t *create_zonedb_commit(conf_t *conf, server_t *server) { knot_zonedb_t *db_old = server->zone_db; // If NULL, zonedb is beeing initialized. @@ -437,11 +446,18 @@ static knot_zonedb_t *create_zonedb_commit(conf_t *conf, server_t *server) } } knot_zonedb_insert(db_new, zone); + catalog_generate_add(zone, db_new, false); reg_reverse(conf, db_new, zone); } else if (type & CONF_IO_TUNSET) { + zone_t *zone = knot_zonedb_find(db_new, name); knot_zonedb_del(db_new, name); + catalog_generate_rem(zone, db_new); } else { zone_t *zone = knot_zonedb_find(db_new, name); + zone_t *old = knot_zonedb_find(db_old, name); + if (!same_group(old, zone)) { + catalog_generate_add(zone, db_new, true); + } reg_reverse(conf, db_new, zone); } } @@ -489,10 +505,13 @@ static knot_zonedb_t *create_zonedb_catalog(conf_t *conf, server_t *server, case CAT_UPD_ADD: zone = add_member_zone(upd, db_new, server, conf); knot_zonedb_insert(db_new, zone); + catalog_generate_add(zone, db_new, false); reg_reverse(conf, db_new, zone); break; case CAT_UPD_REM: + zone = knot_zonedb_find(db_new, upd->member); knot_zonedb_del(db_new, upd->member); + catalog_generate_rem(zone, db_new); break; case CAT_UPD_UNIQ: case CAT_UPD_PROP: @@ -503,6 +522,10 @@ static knot_zonedb_t *create_zonedb_catalog(conf_t *conf, server_t *server, ptrlist_add(expired_contents, zone_expire(zone, true), NULL); knot_sem_post(&zone->cow_lock); } + zone_t *old = knot_zonedb_find(db_old, upd->member); + if (!same_group(old, zone)) { + catalog_generate_add(zone, db_new, true); + } reg_reverse(conf, db_new, zone); break; default: @@ -514,41 +537,6 @@ static knot_zonedb_t *create_zonedb_catalog(conf_t *conf, server_t *server, return db_new; } -static bool same_group(zone_t *old_z, zone_t *new_z) -{ - if (old_z->catalog_group == NULL || new_z->catalog_group == NULL) { - return (old_z->catalog_group == new_z->catalog_group); - } else { - return (strcmp(old_z->catalog_group, new_z->catalog_group) == 0); - } -} - -static void catalogs_generate(struct knot_zonedb *db_new, struct knot_zonedb *db_old) -{ - if (db_old != NULL) { - knot_zonedb_iter_t *it = knot_zonedb_iter_begin(db_old); - for (; !knot_zonedb_iter_finished(it); knot_zonedb_iter_next(it)) { - zone_t *zone = knot_zonedb_iter_val(it); - if (knot_zonedb_find(db_new, zone->name) == NULL) { - catalog_generate_rem(zone, db_new); - } - } - knot_zonedb_iter_free(it); - } - - knot_zonedb_iter_t *it = knot_zonedb_iter_begin(db_new); - for (; !knot_zonedb_iter_finished(it); knot_zonedb_iter_next(it)) { - zone_t *zone = knot_zonedb_iter_val(it); - zone_t *old = knot_zonedb_find(db_old, zone->name); - if (old == NULL) { - catalog_generate_add(zone, db_new, false); - } else if (!same_group(zone, old)) { - catalog_generate_add(zone, db_new, true); - } - } - knot_zonedb_iter_free(it); -} - static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, list_t *expired_contents) { @@ -631,9 +619,28 @@ static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, } catalog_it_free(cat_it); + /* Update generated catalogs - remove members. */ + if (db_old != NULL) { + knot_zonedb_iter_t *db_it = knot_zonedb_iter_begin(db_old); + for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { + zone_t *zone = knot_zonedb_iter_val(db_it); + if (knot_zonedb_find(db_new, zone->name) == NULL) { + catalog_generate_rem(zone, db_new); + } + } + knot_zonedb_iter_free(db_it); + } + + /* Update generated catalogs - add members, updated reversed zones. */ knot_zonedb_iter_t *db_it = knot_zonedb_iter_begin(db_new); for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { zone_t *zone = knot_zonedb_iter_val(db_it); + zone_t *old = knot_zonedb_find(db_old, zone->name); + if (old == NULL) { + catalog_generate_add(zone, db_new, false); + } else if (!same_group(old, zone)) { + catalog_generate_add(zone, db_new, true); + } reg_reverse(conf, db_new, zone); } knot_zonedb_iter_free(db_it); @@ -847,9 +854,6 @@ void zonedb_reload(conf_t *conf, server_t *server, reload_t mode) return; } - // TODO: optimize within create_zonedb. - catalogs_generate(db_new, server->zone_db); - /* Switch the databases. */ knot_zonedb_t **db_current = &server->zone_db; knot_zonedb_t *db_old = rcu_xchg_pointer(db_current, db_new); diff --git a/tests-extra/tests/catalog/generate/data/generic.upd b/tests-extra/tests/catalog/generate/data/generic.upd new file mode 100644 index 0000000000..52bd567c26 --- /dev/null +++ b/tests-extra/tests/catalog/generate/data/generic.upd @@ -0,0 +1,3 @@ +@ SOA dns1 hostmaster 10 10800 3600 1209600 7200 + NS dns1 +dns1 A 192.0.2.1 diff --git a/tests-extra/tests/catalog/generate/data/generic.zone b/tests-extra/tests/catalog/generate/data/generic.zone new file mode 100644 index 0000000000..46c183b47d --- /dev/null +++ b/tests-extra/tests/catalog/generate/data/generic.zone @@ -0,0 +1,3 @@ +@ SOA dns1 hostmaster 1 10800 3600 1209600 7200 + NS dns1 +dns1 A 192.0.2.1 diff --git a/tests-extra/tests/catalog/generate/test.py b/tests-extra/tests/catalog/generate/test.py index 0ffa65c4ea..4d892eb124 100644 --- a/tests-extra/tests/catalog/generate/test.py +++ b/tests-extra/tests/catalog/generate/test.py @@ -3,15 +3,19 @@ '''Test of Catalog zone generation.''' from dnstest.test import Test -from dnstest.utils import set_err, detail_log +from dnstest.utils import compare, set_err, detail_log +from dnstest.libknot import libknot import os import random +import shutil import time +USE_CTL = random.choice([True, False, False]) + t = Test() -def wait_for_zonefile(server, role, zonename, max_age, timeout): - fn = os.path.join(server.dir, role, zonename + "zone") +def wait_for_zonefile(server, zonename, max_age, timeout): + fn = os.path.join(server.dir, "catalog", zonename + "zone") while timeout > 0: if os.path.exists(fn): age = time.time() - os.path.getmtime(fn) @@ -40,45 +44,81 @@ def wait_for_zonefile(server, role, zonename, max_age, timeout): slave.dnssec(catz[0]).enable = True slave.dnssec(catz[0]).single_type_signing = True +def ctl_begin(): + ctl = libknot.control.KnotCtl() + ctl.connect(os.path.join(master.dir, "knot.sock")) + ctl.send_block(cmd="conf-begin") + resp = ctl.receive_block() + return ctl + +def ctl_end(ctl): + ctl.send_block(cmd="conf-commit") + resp = ctl.receive_block() + ctl.send(libknot.control.KnotCtlType.END) + ctl.close() + +def ctl_add_zone(ctl, zone_name): + ctl.send_block(cmd="conf-set", section="zone", item="domain", data=zone_name) + resp = ctl.receive_block() + ctl.send_block(cmd="conf-set", section="zone", item="template", identifier=zone_name, data="catalog-default") + resp = ctl.receive_block() + ctl.send_block(cmd="conf-set", section="zone", item="catalog-zone", identifier=zone_name, data=catz[0].name) + resp = ctl.receive_block() + ctl.send_block(cmd="conf-set", section="zone", item="catalog-role", identifier=zone_name, data="member") + resp = ctl.receive_block() + ctl.send_block(cmd="conf-set", section="zone", item="file", identifier=zone_name, data=os.path.join(master.dir, "generic.zone")) + resp = ctl.receive_block() + t.start() # testcase 1: initial catalog zone with 1 member slave.zones_wait(zone) -# testcase 2: adding member zones online/offline -add_online = random.choice([True, False]) - +# testcase 2: adding member zones dynamically/online/offline zone_add = t.zone("flags.") + t.zone("records.") -t.link(zone_add, master, slave) -for z in zone_add: - master.cat_member(z, catz) - slave.cat_hidden(z) - -master.gen_confile() - -if add_online: - master.reload() +if USE_CTL: + shutil.copy(t.data_dir + "generic.zone", os.path.join(master.dir, "generic.zone")) + ctl = ctl_begin() + ctl_add_zone(ctl, "flags.") + ctl_add_zone(ctl, "records.") + ctl_end(ctl) else: - master.stop() - t.sleep(1) - master.start() + t.link(zone_add, master, slave) + for z in zone_add: + master.cat_member(z, catz) + slave.cat_hidden(z) + + master.gen_confile() + + add_online = random.choice([True, False]) + if add_online: + master.reload() + else: + master.stop() + t.sleep(1) + master.start() slave.zones_wait(zone + zone_add) -# testcase 3: removing member zone online/offline -rem_online = random.choice([True, False]) - +# testcase 3: removing member zone dynamically/online/offline serial_bef_rem = slave.zone_wait(catz, tsig=True) master.ctl("-f zone-purge example.com") -master.zones.pop("example.com.") -master.gen_confile() - -if rem_online: - master.reload() +if USE_CTL: + ctl = ctl_begin() + ctl.send_block(cmd="conf-unset", section="zone", item="domain", data="example.com.") + resp = ctl.receive_block() + ctl_end(ctl) else: - master.stop() - t.sleep(1) - master.start() + master.zones.pop("example.com.") + master.gen_confile() + + add_online = random.choice([True, False]) + if add_online: + master.reload() + else: + master.stop() + t.sleep(1) + master.start() slave.zone_wait(catz, serial_bef_rem, tsig=True) t.sleep(2) # allow the member zone to actually be purged @@ -91,23 +131,52 @@ def wait_for_zonefile(server, role, zonename, max_age, timeout): dnskey0 = resp0.resp.answer[0].to_rdataset() slave.stop() -temp_rem = master.zones.pop("records.") -master.gen_confile() -master.reload() -t.sleep(7) -master.ctl("-f zone-purge +orphan records.") -master.zones["records."] = temp_rem -master.gen_confile() -master.reload() +if USE_CTL: + ctl = ctl_begin() + ctl.send_block(cmd="conf-unset", section="zone", item="domain", data="records.") + resp = ctl.receive_block() + ctl_end(ctl) + t.sleep(7) + master.ctl("-f zone-purge +orphan records.") + ctl = ctl_begin() + ctl_add_zone(ctl, "records.") + ctl_end(ctl) +else: + temp_rem = master.zones.pop("records.") + master.gen_confile() + master.reload() + t.sleep(7) + master.ctl("-f zone-purge +orphan records.") + master.zones["records."] = temp_rem + master.gen_confile() + master.reload() slave.start() -wait_for_zonefile(slave, "master", "records.", 3, 30) +wait_for_zonefile(slave, "records.", 3, 30) slave.ctl("zone-refresh") -wait_for_zonefile(slave, "master", "records.", 3, 30) +wait_for_zonefile(slave, "records.", 3, 30) resp1 = slave.dig("records.", "DNSKEY") resp1.check_count(1, "DNSKEY") dnskey1 = resp1.resp.answer[0].to_rdataset() if dnskey0 == dnskey1: set_err("ZONE NOT PURGED") +#testcase 5: reload and don't reload a zone depending on the config change +if USE_CTL: + shutil.copy(t.data_dir + "generic.upd", os.path.join(master.dir, "generic.zone")) + + ctl = ctl_begin() + ctl.send_block(cmd="conf-set", section="zone", identifier="flags.", item="zone-max-size", data="10000") + resp = ctl.receive_block() + ctl.send_block(cmd="conf-set", section="zone", identifier="records.", item="comment", data="don't reload") + resp = ctl.receive_block() + ctl_end(ctl) + + t.sleep(2) + resp = master.dig("flags.", "SOA") + compare(resp.soa_serial(), 10, "master zone reloaded") + resp = master.dig("records.", "SOA") + compare(resp.soa_serial(), 1, "master zone not reloaded") + slave.zone_wait(zone_add[0], 1) + t.end() From 151d0399b9b1ee06da4043a2eeba6ef509273c48 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sun, 3 Aug 2025 15:35:54 +0200 Subject: [PATCH 053/675] zonedb/reverse: bugfix: removal/modification of zone: * removal of forward zone unlinks all dependent reverses * rem/modification of reverse zone first unlinks all to avoid leftovers+duplicates --- src/contrib/ucw/lists.c | 16 +++++++++++ src/contrib/ucw/lists.h | 1 + src/knot/zone/zone.c | 5 ++++ src/knot/zone/zone.h | 1 + src/knot/zone/zonedb-load.c | 23 +++++++++++++++ tests-extra/tests/zone/reverse/test.py | 39 ++++++++++++++++++++++---- 6 files changed, 79 insertions(+), 6 deletions(-) diff --git a/src/contrib/ucw/lists.c b/src/contrib/ucw/lists.c index 01af28f311..4d93009dc6 100644 --- a/src/contrib/ucw/lists.c +++ b/src/contrib/ucw/lists.c @@ -240,6 +240,22 @@ void ptrlist_rem(ptrnode_t *node, knot_mm_t *mm) mm_free(mm, node); } +/** + * ptrlist_rem - remove all nodes with given pointer + * \p list: ptrlist + * \p val: pointer to remove + * \p mm: memory context + */ +void ptrlist_find_rem(list_t *list, void *val, knot_mm_t *mm) +{ + ptrnode_t *n, *nxt; + WALK_LIST_DELSAFE(n, nxt, *list) { + if (n->d == val) { + ptrlist_rem(n, mm); + } + } +} + /** * ptrlist_deep_free - free all nodes incl referenced data * \p list: list nodes diff --git a/src/contrib/ucw/lists.h b/src/contrib/ucw/lists.h index 1a3ca955e6..d8ed449ab6 100644 --- a/src/contrib/ucw/lists.h +++ b/src/contrib/ucw/lists.h @@ -68,6 +68,7 @@ typedef struct ptrnode { ptrnode_t *ptrlist_add(list_t *, void *, knot_mm_t *); void ptrlist_free(list_t *, knot_mm_t *); void ptrlist_rem(ptrnode_t *node, knot_mm_t *mm); +void ptrlist_find_rem(list_t *list, void *val, knot_mm_t *mm); void ptrlist_deep_free(list_t *, knot_mm_t *); typedef void (*ptrlist_free_cb)(void *); diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 3cf34bb2e2..ba11aa1134 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -811,6 +811,11 @@ void zone_local_notify_subscribe(zone_t *zone, zone_t *subscribe) ptrlist_add(&zone->internal_notify, subscribe, NULL); } +void zone_local_notify_unsubscribe(zone_t *zone, zone_t *subscribe) +{ + ptrlist_find_rem(&zone->internal_notify, subscribe, NULL); +} + void zone_local_notify(zone_t *zone) { ptrnode_t *n; diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index ff2d2747e3..ef861f2a39 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -284,6 +284,7 @@ int zone_master_try(conf_t *conf, zone_t *zone, zone_master_cb callback, int zone_dump_to_dir(conf_t *conf, zone_t *zone, const char *dir); void zone_local_notify_subscribe(zone_t *zone, zone_t *subscribe); +void zone_local_notify_unsubscribe(zone_t *zone, zone_t *subscribe); void zone_local_notify(zone_t *zone); int zone_set_master_serial(zone_t *zone, uint32_t serial); diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index e7dc1658ab..7858201165 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -389,6 +389,12 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) return; } + ptrnode_t *n; + WALK_LIST(n, zone->reverse_from) { + zone_local_notify_unsubscribe(n->d, zone); + } + ptrlist_free(&zone->reverse_from, NULL); + conf_val_t val = conf_zone_get(conf, C_REVERSE_GEN, zone->name); while (val.code == KNOT_EOK) { const knot_dname_t *forw_name = conf_dname(&val); @@ -406,6 +412,21 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) } } +static void unreg_reverse(zone_t *zone) +{ + ptrnode_t *n; + WALK_LIST(n, zone->reverse_from) { + zone_local_notify_unsubscribe(n->d, zone); + } + ptrlist_free(&zone->reverse_from, NULL); + + WALK_LIST(n, zone->internal_notify) { + zone_t *reverse = n->d; + ptrlist_find_rem(&reverse->reverse_from, zone, NULL); + } + ptrlist_free(&zone->internal_notify, NULL); +} + static bool same_group(zone_t *old_z, zone_t *new_z) { if (old_z->catalog_group == NULL || new_z->catalog_group == NULL) { @@ -450,6 +471,7 @@ static knot_zonedb_t *create_zonedb_commit(conf_t *conf, server_t *server) reg_reverse(conf, db_new, zone); } else if (type & CONF_IO_TUNSET) { zone_t *zone = knot_zonedb_find(db_new, name); + unreg_reverse(zone); knot_zonedb_del(db_new, name); catalog_generate_rem(zone, db_new); } else { @@ -510,6 +532,7 @@ static knot_zonedb_t *create_zonedb_catalog(conf_t *conf, server_t *server, break; case CAT_UPD_REM: zone = knot_zonedb_find(db_new, upd->member); + unreg_reverse(zone); knot_zonedb_del(db_new, upd->member); catalog_generate_rem(zone, db_new); break; diff --git a/tests-extra/tests/zone/reverse/test.py b/tests-extra/tests/zone/reverse/test.py index 81a5c1a230..08ad7e3bf8 100644 --- a/tests-extra/tests/zone/reverse/test.py +++ b/tests-extra/tests/zone/reverse/test.py @@ -6,8 +6,11 @@ from dnstest.utils import * from dnstest.test import Test +from dnstest.libknot import libknot import random +DYNAMIC = random.choice([False, True]) + t = Test() knot = t.server("knot") @@ -70,9 +73,21 @@ r = knot.dig("8.2.0.192.in-addr.arpa.", "PTR") r.check(rcode="NOERROR", rdata="dns1.example2.com.") -knot.zones.pop(zones[2].name) -knot.gen_confile() -knot.reload() +if DYNAMIC: + ctl = libknot.control.KnotCtl() + ctl.connect(os.path.join(knot.dir, "knot.sock")) + ctl.send_block(cmd="conf-begin") + resp = ctl.receive_block() + ctl.send_block(cmd="conf-unset", section="zone", item="domain", data=zones[2].name) + resp = ctl.receive_block() + ctl.send_block(cmd="conf-commit") + resp = ctl.receive_block() + ctl.send(libknot.control.KnotCtlType.END) + ctl.close() +else: + knot.zones.pop(zones[2].name) + knot.gen_confile() + knot.reload() t.sleep(5) knot.update_zonefile(zones[0], version=2) @@ -85,9 +100,21 @@ r = knot.dig("5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.1.0.0.2.ip6.arpa.", "PTR") r.check(rcode="NOERROR", rdata="added2.example.com.") -knot.zones.pop(zones[0].name) -knot.gen_confile() -knot.reload() +if DYNAMIC: + ctl = libknot.control.KnotCtl() + ctl.connect(os.path.join(knot.dir, "knot.sock")) + ctl.send_block(cmd="conf-begin") + resp = ctl.receive_block() + ctl.send_block(cmd="conf-unset", section="zone", item="domain", data=zones[0].name) + resp = ctl.receive_block() + ctl.send_block(cmd="conf-commit") + resp = ctl.receive_block() + ctl.send(libknot.control.KnotCtlType.END) + ctl.close() +else: + knot.zones.pop(zones[0].name) + knot.gen_confile() + knot.reload() t.sleep(5) r = knot.dig("1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.1.0.0.2.ip6.arpa.", "PTR") From 305595b5796dc31f9650393921aa2117b6240d8a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 4 Aug 2025 10:10:35 +0200 Subject: [PATCH 054/675] man/knotd: extend signal handling --- doc/man_knotd.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/doc/man_knotd.rst b/doc/man_knotd.rst index 9f3193f9d4..ced72a84e5 100644 --- a/doc/man_knotd.rst +++ b/doc/man_knotd.rst @@ -52,10 +52,11 @@ Options Signals ....... -If the `knotd` process receives a SIGHUP signal, it reloads its configuration and -reopens the log files, if they are configured. When `knotd` receives a SIGUSR1 -signal, it reloads all configured zones. Upon receiving a SIGINT signal, `knotd` -exits. +The `knotd` process handles the following signals: + +- SIGINT – Stop the process. +- SIGHUP – Reload the server configuration and reopen configured log files. +- SIGUSR1 – Reload all configured zones (not recommended with catalog zones). Exit values ----------- From 2c016bd333d994f588626bacdfbea85cd251ad0c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 10 Aug 2025 07:58:19 +0200 Subject: [PATCH 055/675] zonedb: fix possible NULL dereferences (Coverity) --- src/knot/zone/zonedb-load.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 7858201165..4e2db0d463 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -414,6 +414,10 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) static void unreg_reverse(zone_t *zone) { + if (zone == NULL) { + return; + } + ptrnode_t *n; WALK_LIST(n, zone->reverse_from) { zone_local_notify_unsubscribe(n->d, zone); @@ -429,6 +433,10 @@ static void unreg_reverse(zone_t *zone) static bool same_group(zone_t *old_z, zone_t *new_z) { + if (old_z == NULL || new_z == NULL) { + return false; + } + if (old_z->catalog_group == NULL || new_z->catalog_group == NULL) { return (old_z->catalog_group == new_z->catalog_group); } else { From 9a06dfef333626b767906a8066c4b62a35fe6f14 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 10 Aug 2025 19:06:29 +0200 Subject: [PATCH 056/675] semaphore: force nonposix implementation on macOS This solves two issues: - error: undeclared function 'sem_timedwait' - warning: 'sem_*' is deprecated --- src/contrib/semaphore.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/contrib/semaphore.c b/src/contrib/semaphore.c index 443d046c7d..61cf2466f1 100644 --- a/src/contrib/semaphore.c +++ b/src/contrib/semaphore.c @@ -12,10 +12,6 @@ #include #include -#if defined(__APPLE__) -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -#endif - #define SEM_STATUS_POSIX INT_MIN void knot_sem_init(knot_sem_t *sem, int value) @@ -24,11 +20,13 @@ void knot_sem_init(knot_sem_t *sem, int value) if (value < 0) { goto nonposix; } +#if !defined(__APPLE__) int ret = sem_init(&sem->semaphore, 1, value); if (ret == 0) { sem->status = SEM_STATUS_POSIX; return; } +#endif nonposix: knot_sem_init_nonposix(sem, value); } @@ -55,10 +53,12 @@ void knot_sem_wait(knot_sem_t *sem) { assert(sem != NULL); if (sem->status == SEM_STATUS_POSIX) { +#if !defined(__APPLE__) int semret; do { semret = sem_wait(&sem->semaphore); } while (semret != 0); // repeat wait as it might be interrupted by a signal +#endif } else { pthread_mutex_lock(&sem->status_lock->mutex); while (sem->status <= 0) { @@ -95,11 +95,15 @@ bool knot_sem_timedwait(knot_sem_t *sem, unsigned long ms) struct timespec end; timespec_now_shift(&end, ms); if (sem->status == SEM_STATUS_POSIX) { +#if !defined(__APPLE__) int semret; do { semret = sem_timedwait(&sem->semaphore, &end); } while (semret != 0 && errno != ETIMEDOUT); // repeat wait as it might be interrupted by a signal return (semret == 0); +#else + return false; +#endif } else { pthread_mutex_lock(&sem->status_lock->mutex); while (sem->status <= 0 && !timespec_past(&end)) { @@ -147,9 +151,11 @@ void knot_sem_post(knot_sem_t *sem) { assert(sem != NULL); if (sem->status == SEM_STATUS_POSIX) { +#if !defined(__APPLE__) int semret = sem_post(&sem->semaphore); (void)semret; assert(semret == 0); +#endif } else { pthread_mutex_lock(&sem->status_lock->mutex); sem->status++; @@ -163,7 +169,9 @@ void knot_sem_destroy(knot_sem_t *sem) assert(sem != NULL); knot_sem_wait(sem); // NOTE this is questionable if the initial value was > 1 if (sem->status == SEM_STATUS_POSIX) { +#if !defined(__APPLE__) sem_destroy(&sem->semaphore); +#endif } else { pthread_cond_destroy(&sem->status_lock->cond); pthread_mutex_destroy(&sem->status_lock->mutex); From a8d0b47d9f983ee3c4abc4e19aa216a1f213a2c3 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 11 Aug 2025 15:51:52 +0200 Subject: [PATCH 057/675] tests-extra: adjust random tsig parameters to be less annoying --- tests-extra/tools/dnstest/keys.py | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/tests-extra/tools/dnstest/keys.py b/tests-extra/tools/dnstest/keys.py index a30e7dcde1..febdcfaa22 100644 --- a/tests-extra/tools/dnstest/keys.py +++ b/tests-extra/tools/dnstest/keys.py @@ -29,23 +29,9 @@ class Tsig(object): def __init__(self, name=None, alg=None, key=None): if not name: - nlabels = random.randint(1, 10) - - self.name = "" - for i in range(nlabels): - label_len = random.randint(1, 63) - - # Check for maximal dname length (255 B = max fqdn in wire). - # 255 = 1 leading byte + 253 + 1 trailing byte. - if len(self.name) + 1 + label_len > 253: - break - - # Add label separator. - if i > 0: - self.name += "." - - self.name += "".join(random.choice(Tsig.vocabulary) - for x in range(label_len)) + label_len = random.randint(1, 63) + self.name = "".join(random.choice(Tsig.vocabulary) + for x in range(label_len)) else: self.name = str(name) @@ -57,8 +43,8 @@ def __init__(self, name=None, alg=None, key=None): self.alg = alg if not key: - self.key = base64.b64encode(os.urandom(Tsig.algs[self.alg])). \ - decode('ascii') + key_len = random.choice([4, 8, 16, 32]) + self.key = base64.b64encode(os.urandom(key_len)).decode('ascii') else: self.key = str(key) From a5922bf5cb016ded7e1398153d10d8ffd6a84a55 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 12 Aug 2025 17:02:47 +0200 Subject: [PATCH 058/675] zonemd/placeholder: dont use zero-length digest... ...as its presentation format is undefined and therefore it's impossible to read/write in case of any debug situation --- src/knot/zone/digest.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/knot/zone/digest.c b/src/knot/zone/digest.c index 22e2fd252f..c6f03e9047 100644 --- a/src/knot/zone/digest.c +++ b/src/knot/zone/digest.c @@ -241,8 +241,8 @@ int zone_update_add_digest(struct zone_update *update, int algorithm, bool place return KNOT_EINVAL; } - uint8_t *digest = NULL; - size_t dsize = 0; + uint8_t zero = 0, *digest = &zero; + size_t dsize = sizeof(zero); knot_rrset_t exists = node_rrset(update->new_cont->apex, KNOT_RRTYPE_ZONEMD); if (algorithm == ZONE_DIGEST_REMOVE) { @@ -277,7 +277,9 @@ int zone_update_add_digest(struct zone_update *update, int algorithm, bool place wire_ctx_write(&wire, digest, dsize); assert(wire.error == KNOT_EOK && wire_ctx_available(&wire) == 0); - free(digest); + if (digest != &zero) { + free(digest); + } knot_rrset_init(&zonemd, update->new_cont->apex->owner, KNOT_RRTYPE_ZONEMD, KNOT_CLASS_IN, soa.ttl); From 038c377460345c26fbdbf9980254d73607d36144 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 12 Aug 2025 11:56:46 +0200 Subject: [PATCH 059/675] kjournalprint: dont silently skip failed knot_rrset_txt_dump --- src/knot/updates/changesets.c | 18 ++++++++++++------ src/knot/updates/changesets.h | 4 +++- src/knot/zone/zone-dump.c | 3 +-- src/utils/kjournalprint/main.c | 9 +++++---- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/knot/updates/changesets.c b/src/knot/updates/changesets.c index 5e24481a78..72334f88e2 100644 --- a/src/knot/updates/changesets.c +++ b/src/knot/updates/changesets.c @@ -592,10 +592,11 @@ int changeset_walk(const changeset_t *changeset, changeset_walk_callback callbac return KNOT_EOK; } -void changeset_print(const changeset_t *changeset, FILE *outfile, bool color) +int changeset_print(const changeset_t *changeset, FILE *outfile, bool color) { size_t buflen = 1024; char *buff = malloc(buflen); + int ret = KNOT_EOK; knot_dump_style_t style = KNOT_DUMP_STYLE_DEFAULT; style.now = knot_time(); @@ -605,20 +606,25 @@ void changeset_print(const changeset_t *changeset, FILE *outfile, bool color) fprintf(outfile, "%s;; Removed%s\n", style.color, COL_RST(color)); } if (changeset->soa_from != NULL && buff != NULL) { - (void)knot_rrset_txt_dump(changeset->soa_from, &buff, &buflen, &style); + ret = knot_rrset_txt_dump(changeset->soa_from, &buff, &buflen, &style); fprintf(outfile, "%s%s%s", style.color, buff, COL_RST(color)); } - (void)zone_dump_text(changeset->remove, NULL, outfile, false, style.color); + if (ret >= 0 && changeset->remove != NULL) { // Can be NULL if zone-in-journal + ret = zone_dump_text(changeset->remove, NULL, outfile, false, style.color); + } style.color = COL_GRN(color); if (changeset->soa_to != NULL || !zone_contents_is_empty(changeset->add)) { fprintf(outfile, "%s;; Added%s\n", style.color, COL_RST(color)); } - if (changeset->soa_to != NULL && buff != NULL) { - (void)knot_rrset_txt_dump(changeset->soa_to, &buff, &buflen, &style); + if (changeset->soa_to != NULL && buff != NULL && ret >= 0) { + ret = knot_rrset_txt_dump(changeset->soa_to, &buff, &buflen, &style); fprintf(outfile, "%s%s%s", style.color, buff, COL_RST(color)); } - (void)zone_dump_text(changeset->add, NULL, outfile, false, style.color); + if (ret >= 0) { + ret = zone_dump_text(changeset->add, NULL, outfile, false, style.color); + } free(buff); + return ret >= 0 ? KNOT_EOK : ret; } diff --git a/src/knot/updates/changesets.h b/src/knot/updates/changesets.h index 5c4187080e..534f61cf14 100644 --- a/src/knot/updates/changesets.h +++ b/src/knot/updates/changesets.h @@ -275,5 +275,7 @@ int changeset_walk(const changeset_t *changeset, changeset_walk_callback callbac * \param changeset Changeset. * \param outfile File to write into. * \param color Use unix tty color metacharacters. + * + * \return KNOT_E* */ -void changeset_print(const changeset_t *changeset, FILE *outfile, bool color); +int changeset_print(const changeset_t *changeset, FILE *outfile, bool color); diff --git a/src/knot/zone/zone-dump.c b/src/knot/zone/zone-dump.c index 8724701c2b..7793922e0b 100644 --- a/src/knot/zone/zone-dump.c +++ b/src/knot/zone/zone-dump.c @@ -80,8 +80,7 @@ static int node_dump_text(zone_node_t *node, void *data) // Zone apex rrsets. if (node->owner == params->origin && !params->dump_rrsig && !params->dump_nsec) { - apex_node_dump_text(node, params); - return KNOT_EOK; + return apex_node_dump_text(node, params); } // Dump non-apex rrsets. diff --git a/src/utils/kjournalprint/main.c b/src/utils/kjournalprint/main.c index 57d9fb3ca7..6d536c1412 100644 --- a/src/utils/kjournalprint/main.c +++ b/src/utils/kjournalprint/main.c @@ -71,7 +71,7 @@ typedef struct { uint64_t merged_ts; } print_params_t; -static void print_changeset(const changeset_t *chs, uint64_t timestamp, print_params_t *params) +static int print_changeset(const changeset_t *chs, uint64_t timestamp, print_params_t *params) { char time_buf[64] = { 0 }; (void)knot_time_print(TIME_PRINT_UNIX, timestamp, time_buf, sizeof(time_buf)); @@ -93,7 +93,7 @@ static void print_changeset(const changeset_t *chs, uint64_t timestamp, print_pa time_buf, COL_RST(params->color)); } - changeset_print(chs, stdout, params->color); + return changeset_print(chs, stdout, params->color); } typedef struct { @@ -198,6 +198,7 @@ static int merge_changeset_cb(bool special, const changeset_t *ch, uint64_t time static int print_changeset_cb(bool special, const changeset_t *ch, uint64_t timestamp, void *ctx) { print_params_t *params = ctx; + int ret = KNOT_EOK; if (ch != NULL && params->counter++ >= params->limit) { if (params->merge) { return merge_changeset_cb(special, ch, timestamp, ctx); @@ -205,13 +206,13 @@ static int print_changeset_cb(bool special, const changeset_t *ch, uint64_t time print_changeset_debugmode(ch, timestamp); params->changes++; } else { - print_changeset(ch, timestamp, params); + ret = print_changeset(ch, timestamp, params); } if (special && params->debug) { printf("---------------------------------------------\n"); } } - return KNOT_EOK; + return ret; } int print_journal(char *path, knot_dname_t *name, print_params_t *params) From 7af71894c7b8db6ff8bd8babd7ff4c95ea1484f0 Mon Sep 17 00:00:00 2001 From: Frantisek Tobias Date: Tue, 12 Aug 2025 14:39:33 +0200 Subject: [PATCH 060/675] man/kdig: add quic to protocols which support keepopen --- doc/man_kdig.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/man_kdig.rst b/doc/man_kdig.rst index 8d4c40cad6..d19ea9e426 100644 --- a/doc/man_kdig.rst +++ b/doc/man_kdig.rst @@ -234,7 +234,7 @@ Options **+**\ [\ **no**\ ]\ **keepopen** Keep TCP connection open for the following query if it has the same connection - configuration. This applies to +tcp, +tls, and +https operations. The connection + configuration. This applies to +tcp, +tls, +https, and +quic operations. The connection is considered in the context of a single kdig call only. **+**\ [\ **no**\ ]\ **tls** From ec5f06b1bc379cfdaafe6fe2b57b03559ba4f8ae Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 14 Aug 2025 07:40:08 +0200 Subject: [PATCH 061/675] libs: increase SOVERSION and symbol versions for libknot, libdnssec, and libzscanner --- configure.ac | 6 +- distro/pkg/deb-nolibxdp/control | 46 +-- distro/pkg/deb-nolibxdp/libdnssec10.install | 1 + distro/pkg/deb-nolibxdp/libdnssec10.symbols | 1 + distro/pkg/deb-nolibxdp/libdnssec9.install | 1 - distro/pkg/deb-nolibxdp/libdnssec9.symbols | 1 - distro/pkg/deb-nolibxdp/libknot15.install | 1 - distro/pkg/deb-nolibxdp/libknot15.symbols | 1 - distro/pkg/deb-nolibxdp/libknot16.install | 1 + distro/pkg/deb-nolibxdp/libknot16.symbols | 1 + distro/pkg/deb-nolibxdp/libzscanner4.install | 1 - distro/pkg/deb-nolibxdp/libzscanner4.symbols | 1 - distro/pkg/deb-nolibxdp/libzscanner5.install | 1 + distro/pkg/deb-nolibxdp/libzscanner5.symbols | 1 + distro/pkg/deb/control | 46 +-- ...libdnssec9.install => libdnssec10.install} | 0 distro/pkg/deb/libdnssec10.symbols | 96 ++++++ distro/pkg/deb/libdnssec9.symbols | 96 ------ distro/pkg/deb/libknot15.symbols | 301 ------------------ .../{libknot15.install => libknot16.install} | 0 distro/pkg/deb/libknot16.symbols | 301 ++++++++++++++++++ distro/pkg/deb/libzscanner4.symbols | 12 - ...zscanner4.install => libzscanner5.install} | 0 distro/pkg/deb/libzscanner5.symbols | 12 + 24 files changed, 464 insertions(+), 464 deletions(-) create mode 120000 distro/pkg/deb-nolibxdp/libdnssec10.install create mode 120000 distro/pkg/deb-nolibxdp/libdnssec10.symbols delete mode 120000 distro/pkg/deb-nolibxdp/libdnssec9.install delete mode 120000 distro/pkg/deb-nolibxdp/libdnssec9.symbols delete mode 120000 distro/pkg/deb-nolibxdp/libknot15.install delete mode 120000 distro/pkg/deb-nolibxdp/libknot15.symbols create mode 120000 distro/pkg/deb-nolibxdp/libknot16.install create mode 120000 distro/pkg/deb-nolibxdp/libknot16.symbols delete mode 120000 distro/pkg/deb-nolibxdp/libzscanner4.install delete mode 120000 distro/pkg/deb-nolibxdp/libzscanner4.symbols create mode 120000 distro/pkg/deb-nolibxdp/libzscanner5.install create mode 120000 distro/pkg/deb-nolibxdp/libzscanner5.symbols rename distro/pkg/deb/{libdnssec9.install => libdnssec10.install} (100%) create mode 100644 distro/pkg/deb/libdnssec10.symbols delete mode 100644 distro/pkg/deb/libdnssec9.symbols delete mode 100644 distro/pkg/deb/libknot15.symbols rename distro/pkg/deb/{libknot15.install => libknot16.install} (100%) create mode 100644 distro/pkg/deb/libknot16.symbols delete mode 100644 distro/pkg/deb/libzscanner4.symbols rename distro/pkg/deb/{libzscanner4.install => libzscanner5.install} (100%) create mode 100644 distro/pkg/deb/libzscanner5.symbols diff --git a/configure.ac b/configure.ac index 4f485f9a94..1cacd0826b 100644 --- a/configure.ac +++ b/configure.ac @@ -16,9 +16,9 @@ AC_CANONICAL_HOST # Update library versions # https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html -KNOT_LIB_VERSION([libknot], 15, 0, 0) -KNOT_LIB_VERSION([libdnssec], 9, 0, 0) -KNOT_LIB_VERSION([libzscanner], 4, 0, 0) +KNOT_LIB_VERSION([libknot], 16, 0, 0) +KNOT_LIB_VERSION([libdnssec], 10, 0, 0) +KNOT_LIB_VERSION([libzscanner], 5, 0, 0) AC_SUBST([KNOT_VERSION_MAJOR], knot_VERSION_MAJOR) AC_SUBST([KNOT_VERSION_MINOR], knot_VERSION_MINOR) diff --git a/distro/pkg/deb-nolibxdp/control b/distro/pkg/deb-nolibxdp/control index e5001ac062..eb950dbe3d 100644 --- a/distro/pkg/deb-nolibxdp/control +++ b/distro/pkg/deb-nolibxdp/control @@ -42,9 +42,9 @@ Package: knot Architecture: any Depends: adduser, - libdnssec9 (= ${binary:Version}), - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Recommends: @@ -61,10 +61,10 @@ Description: Authoritative domain name server registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. -Package: libknot15 +Package: libknot16 Architecture: any Depends: - libdnssec9 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Section: libs @@ -79,7 +79,7 @@ Description: DNS shared library from Knot DNS This package provides a DNS shared library used by Knot DNS and Knot Resolver. -Package: libzscanner4 +Package: libzscanner5 Architecture: any Depends: ${misc:Depends}, @@ -96,7 +96,7 @@ Description: DNS zone-parsing shared library from Knot DNS This package provides a fast zone parser shared library used by Knot DNS and Knot Resolver. -Package: libdnssec9 +Package: libdnssec10 Architecture: any Depends: ${misc:Depends}, @@ -116,10 +116,10 @@ Description: DNSSEC shared library from Knot DNS Package: libknot-dev Architecture: any Depends: - libdnssec9 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), libgnutls28-dev, - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, Section: libdevel Description: Knot DNS shared library development files @@ -135,9 +135,9 @@ Description: Knot DNS shared library development files Package: knot-dnsutils Architecture: any Depends: - libdnssec9 (= ${binary:Version}), - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Description: DNS clients provided with Knot DNS (kdig, knsupdate) @@ -162,9 +162,9 @@ Description: DNS clients provided with Knot DNS (kdig, knsupdate) Package: knot-dnssecutils Architecture: any Depends: - libdnssec9 (= ${binary:Version}), - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Description: DNSSEC tools provided with Knot DNS @@ -184,9 +184,9 @@ Description: DNSSEC tools provided with Knot DNS Package: knot-host Architecture: any Depends: - libdnssec9 (= ${binary:Version}), - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Description: Version of 'host' bundled with Knot DNS @@ -203,9 +203,9 @@ Description: Version of 'host' bundled with Knot DNS Package: knot-keymgr Architecture: any Depends: - libdnssec9 (= ${binary:Version}), - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Description: Knot DNS key management utility @@ -289,7 +289,7 @@ Description: Prometheus exporter for Knot DNS Package: python3-libknot Architecture: all Depends: - libknot15 (= ${binary:Version}), + libknot16 (= ${binary:Version}), ${misc:Depends}, ${python3:Depends}, Section: python diff --git a/distro/pkg/deb-nolibxdp/libdnssec10.install b/distro/pkg/deb-nolibxdp/libdnssec10.install new file mode 120000 index 0000000000..0a1b503d04 --- /dev/null +++ b/distro/pkg/deb-nolibxdp/libdnssec10.install @@ -0,0 +1 @@ +../deb/libdnssec10.install \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libdnssec10.symbols b/distro/pkg/deb-nolibxdp/libdnssec10.symbols new file mode 120000 index 0000000000..3fa4368896 --- /dev/null +++ b/distro/pkg/deb-nolibxdp/libdnssec10.symbols @@ -0,0 +1 @@ +../deb/libdnssec10.symbols \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libdnssec9.install b/distro/pkg/deb-nolibxdp/libdnssec9.install deleted file mode 120000 index 311fe2e36d..0000000000 --- a/distro/pkg/deb-nolibxdp/libdnssec9.install +++ /dev/null @@ -1 +0,0 @@ -../deb/libdnssec9.install \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libdnssec9.symbols b/distro/pkg/deb-nolibxdp/libdnssec9.symbols deleted file mode 120000 index f2e5208029..0000000000 --- a/distro/pkg/deb-nolibxdp/libdnssec9.symbols +++ /dev/null @@ -1 +0,0 @@ -../deb/libdnssec9.symbols \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libknot15.install b/distro/pkg/deb-nolibxdp/libknot15.install deleted file mode 120000 index 45d2f3d6df..0000000000 --- a/distro/pkg/deb-nolibxdp/libknot15.install +++ /dev/null @@ -1 +0,0 @@ -../deb/libknot15.install \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libknot15.symbols b/distro/pkg/deb-nolibxdp/libknot15.symbols deleted file mode 120000 index 5afa5c8197..0000000000 --- a/distro/pkg/deb-nolibxdp/libknot15.symbols +++ /dev/null @@ -1 +0,0 @@ -../deb/libknot15.symbols \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libknot16.install b/distro/pkg/deb-nolibxdp/libknot16.install new file mode 120000 index 0000000000..7cafd03e37 --- /dev/null +++ b/distro/pkg/deb-nolibxdp/libknot16.install @@ -0,0 +1 @@ +../deb/libknot16.install \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libknot16.symbols b/distro/pkg/deb-nolibxdp/libknot16.symbols new file mode 120000 index 0000000000..8be8e5e399 --- /dev/null +++ b/distro/pkg/deb-nolibxdp/libknot16.symbols @@ -0,0 +1 @@ +../deb/libknot16.symbols \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libzscanner4.install b/distro/pkg/deb-nolibxdp/libzscanner4.install deleted file mode 120000 index 8211288356..0000000000 --- a/distro/pkg/deb-nolibxdp/libzscanner4.install +++ /dev/null @@ -1 +0,0 @@ -../deb/libzscanner4.install \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libzscanner4.symbols b/distro/pkg/deb-nolibxdp/libzscanner4.symbols deleted file mode 120000 index 1c8b8ed983..0000000000 --- a/distro/pkg/deb-nolibxdp/libzscanner4.symbols +++ /dev/null @@ -1 +0,0 @@ -../deb/libzscanner4.symbols \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libzscanner5.install b/distro/pkg/deb-nolibxdp/libzscanner5.install new file mode 120000 index 0000000000..7a87a29235 --- /dev/null +++ b/distro/pkg/deb-nolibxdp/libzscanner5.install @@ -0,0 +1 @@ +../deb/libzscanner5.install \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libzscanner5.symbols b/distro/pkg/deb-nolibxdp/libzscanner5.symbols new file mode 120000 index 0000000000..e5d3b3890f --- /dev/null +++ b/distro/pkg/deb-nolibxdp/libzscanner5.symbols @@ -0,0 +1 @@ +../deb/libzscanner5.symbols \ No newline at end of file diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index 8130048786..d746c0b8d5 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -44,9 +44,9 @@ Package: knot Architecture: any Depends: adduser, - libdnssec9 (= ${binary:Version}), - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Recommends: @@ -63,10 +63,10 @@ Description: Authoritative domain name server registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. -Package: libknot15 +Package: libknot16 Architecture: any Depends: - libdnssec9 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Section: libs @@ -81,7 +81,7 @@ Description: DNS shared library from Knot DNS This package provides a DNS shared library used by Knot DNS and Knot Resolver. -Package: libzscanner4 +Package: libzscanner5 Architecture: any Depends: ${misc:Depends}, @@ -98,7 +98,7 @@ Description: DNS zone-parsing shared library from Knot DNS This package provides a fast zone parser shared library used by Knot DNS and Knot Resolver. -Package: libdnssec9 +Package: libdnssec10 Architecture: any Depends: ${misc:Depends}, @@ -118,10 +118,10 @@ Description: DNSSEC shared library from Knot DNS Package: libknot-dev Architecture: any Depends: - libdnssec9 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), libgnutls28-dev, - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, Section: libdevel Description: Knot DNS shared library development files @@ -137,9 +137,9 @@ Description: Knot DNS shared library development files Package: knot-dnsutils Architecture: any Depends: - libdnssec9 (= ${binary:Version}), - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Description: DNS clients provided with Knot DNS (kdig, knsupdate) @@ -164,9 +164,9 @@ Description: DNS clients provided with Knot DNS (kdig, knsupdate) Package: knot-dnssecutils Architecture: any Depends: - libdnssec9 (= ${binary:Version}), - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Description: DNSSEC tools provided with Knot DNS @@ -186,9 +186,9 @@ Description: DNSSEC tools provided with Knot DNS Package: knot-host Architecture: any Depends: - libdnssec9 (= ${binary:Version}), - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Description: Version of 'host' bundled with Knot DNS @@ -205,9 +205,9 @@ Description: Version of 'host' bundled with Knot DNS Package: knot-keymgr Architecture: any Depends: - libdnssec9 (= ${binary:Version}), - libknot15 (= ${binary:Version}), - libzscanner4 (= ${binary:Version}), + libdnssec10 (= ${binary:Version}), + libknot16 (= ${binary:Version}), + libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Description: Knot DNS key management utility @@ -291,7 +291,7 @@ Description: Prometheus exporter for Knot DNS Package: python3-libknot Architecture: all Depends: - libknot15 (= ${binary:Version}), + libknot16 (= ${binary:Version}), ${misc:Depends}, ${python3:Depends}, Section: python diff --git a/distro/pkg/deb/libdnssec9.install b/distro/pkg/deb/libdnssec10.install similarity index 100% rename from distro/pkg/deb/libdnssec9.install rename to distro/pkg/deb/libdnssec10.install diff --git a/distro/pkg/deb/libdnssec10.symbols b/distro/pkg/deb/libdnssec10.symbols new file mode 100644 index 0000000000..bcdb6b0bc2 --- /dev/null +++ b/distro/pkg/deb/libdnssec10.symbols @@ -0,0 +1,96 @@ +libdnssec.so.10 libdnssec10 #MINVER# +* Build-Depends-Package: libknot-dev + dnssec_algorithm_digest_support@Base 3.5.0 + dnssec_algorithm_key_size_check@Base 3.5.0 + dnssec_algorithm_key_size_default@Base 3.5.0 + dnssec_algorithm_key_size_range@Base 3.5.0 + dnssec_algorithm_key_support@Base 3.5.0 + dnssec_algorithm_reproducible@Base 3.5.0 + dnssec_binary_alloc@Base 3.5.0 + dnssec_binary_cmp@Base 3.5.0 + dnssec_binary_dup@Base 3.5.0 + dnssec_binary_free@Base 3.5.0 + dnssec_binary_from_base64@Base 3.5.0 + dnssec_binary_resize@Base 3.5.0 + dnssec_binary_to_base64@Base 3.5.0 + dnssec_crypto_cleanup@Base 3.5.0 + dnssec_crypto_init@Base 3.5.0 + dnssec_crypto_reinit@Base 3.5.0 + dnssec_digest@Base 3.5.0 + dnssec_digest_finish@Base 3.5.0 + dnssec_digest_init@Base 3.5.0 + dnssec_key_can_sign@Base 3.5.0 + dnssec_key_can_verify@Base 3.5.0 + dnssec_key_clear@Base 3.5.0 + dnssec_key_create_ds@Base 3.5.0 + dnssec_key_dup@Base 3.5.0 + dnssec_key_free@Base 3.5.0 + dnssec_key_get_algorithm@Base 3.5.0 + dnssec_key_get_dname@Base 3.5.0 + dnssec_key_get_flags@Base 3.5.0 + dnssec_key_get_keyid@Base 3.5.0 + dnssec_key_get_keytag@Base 3.5.0 + dnssec_key_get_protocol@Base 3.5.0 + dnssec_key_get_pubkey@Base 3.5.0 + dnssec_key_get_rdata@Base 3.5.0 + dnssec_key_get_size@Base 3.5.0 + dnssec_key_load_pkcs8@Base 3.5.0 + dnssec_key_new@Base 3.5.0 + dnssec_key_set_algorithm@Base 3.5.0 + dnssec_key_set_dname@Base 3.5.0 + dnssec_key_set_flags@Base 3.5.0 + dnssec_key_set_protocol@Base 3.5.0 + dnssec_key_set_pubkey@Base 3.5.0 + dnssec_key_set_rdata@Base 3.5.0 + dnssec_keyid_copy@Base 3.5.0 + dnssec_keyid_equal@Base 3.5.0 + dnssec_keyid_is_valid@Base 3.5.0 + dnssec_keyid_normalize@Base 3.5.0 + dnssec_keystore_close@Base 3.5.0 + dnssec_keystore_deinit@Base 3.5.0 + dnssec_keystore_generate@Base 3.5.0 + dnssec_keystore_get_private@Base 3.5.0 + dnssec_keystore_import@Base 3.5.0 + dnssec_keystore_init@Base 3.5.0 + dnssec_keystore_init_pkcs11@Base 3.5.0 + dnssec_keystore_init_pkcs8@Base 3.5.0 + dnssec_keystore_open@Base 3.5.0 + dnssec_keystore_remove@Base 3.5.0 + dnssec_keystore_set_private@Base 3.5.0 + dnssec_keytag@Base 3.5.0 + dnssec_nsec3_hash@Base 3.5.0 + dnssec_nsec3_hash_length@Base 3.5.0 + dnssec_nsec3_params_free@Base 3.5.0 + dnssec_nsec3_params_from_rdata@Base 3.5.0 + dnssec_nsec3_params_match@Base 3.5.0 + dnssec_nsec_bitmap_add@Base 3.5.0 + dnssec_nsec_bitmap_clear@Base 3.5.0 + dnssec_nsec_bitmap_contains@Base 3.5.0 + dnssec_nsec_bitmap_free@Base 3.5.0 + dnssec_nsec_bitmap_new@Base 3.5.0 + dnssec_nsec_bitmap_size@Base 3.5.0 + dnssec_nsec_bitmap_write@Base 3.5.0 + dnssec_pem_from_privkey@Base 3.5.0 + dnssec_pem_from_x509@Base 3.5.0 + dnssec_pem_to_privkey@Base 3.5.0 + dnssec_pem_to_x509@Base 3.5.0 + dnssec_random_binary@Base 3.5.0 + dnssec_random_buffer@Base 3.5.0 + dnssec_sign_add@Base 3.5.0 + dnssec_sign_free@Base 3.5.0 + dnssec_sign_init@Base 3.5.0 + dnssec_sign_new@Base 3.5.0 + dnssec_sign_verify@Base 3.5.0 + dnssec_sign_write@Base 3.5.0 + dnssec_strerror@Base 3.5.0 + dnssec_tsig_add@Base 3.5.0 + dnssec_tsig_algorithm_from_dname@Base 3.5.0 + dnssec_tsig_algorithm_from_name@Base 3.5.0 + dnssec_tsig_algorithm_size@Base 3.5.0 + dnssec_tsig_algorithm_to_dname@Base 3.5.0 + dnssec_tsig_algorithm_to_name@Base 3.5.0 + dnssec_tsig_free@Base 3.5.0 + dnssec_tsig_new@Base 3.5.0 + dnssec_tsig_optimal_key_size@Base 3.5.0 + dnssec_tsig_size@Base 3.5.0 + dnssec_tsig_write@Base 3.5.0 diff --git a/distro/pkg/deb/libdnssec9.symbols b/distro/pkg/deb/libdnssec9.symbols deleted file mode 100644 index c3ab2ed065..0000000000 --- a/distro/pkg/deb/libdnssec9.symbols +++ /dev/null @@ -1,96 +0,0 @@ -libdnssec.so.9 libdnssec9 #MINVER# -* Build-Depends-Package: libknot-dev - dnssec_algorithm_digest_support@Base 3.2.0 - dnssec_algorithm_key_size_check@Base 3.2.0 - dnssec_algorithm_key_size_default@Base 3.2.0 - dnssec_algorithm_key_size_range@Base 3.2.0 - dnssec_algorithm_key_support@Base 3.2.0 - dnssec_algorithm_reproducible@Base 3.2.0 - dnssec_binary_alloc@Base 3.2.0 - dnssec_binary_cmp@Base 3.2.0 - dnssec_binary_dup@Base 3.2.0 - dnssec_binary_free@Base 3.2.0 - dnssec_binary_from_base64@Base 3.2.0 - dnssec_binary_resize@Base 3.2.0 - dnssec_binary_to_base64@Base 3.2.0 - dnssec_crypto_cleanup@Base 3.2.0 - dnssec_crypto_init@Base 3.2.0 - dnssec_crypto_reinit@Base 3.2.0 - dnssec_digest@Base 3.2.0 - dnssec_digest_finish@Base 3.2.0 - dnssec_digest_init@Base 3.2.0 - dnssec_key_can_sign@Base 3.2.0 - dnssec_key_can_verify@Base 3.2.0 - dnssec_key_clear@Base 3.2.0 - dnssec_key_create_ds@Base 3.2.0 - dnssec_key_dup@Base 3.2.0 - dnssec_key_free@Base 3.2.0 - dnssec_key_get_algorithm@Base 3.2.0 - dnssec_key_get_dname@Base 3.2.0 - dnssec_key_get_flags@Base 3.2.0 - dnssec_key_get_keyid@Base 3.2.0 - dnssec_key_get_keytag@Base 3.2.0 - dnssec_key_get_protocol@Base 3.2.0 - dnssec_key_get_pubkey@Base 3.2.0 - dnssec_key_get_rdata@Base 3.2.0 - dnssec_key_get_size@Base 3.2.0 - dnssec_key_load_pkcs8@Base 3.2.0 - dnssec_key_new@Base 3.2.0 - dnssec_key_set_algorithm@Base 3.2.0 - dnssec_key_set_dname@Base 3.2.0 - dnssec_key_set_flags@Base 3.2.0 - dnssec_key_set_protocol@Base 3.2.0 - dnssec_key_set_pubkey@Base 3.2.0 - dnssec_key_set_rdata@Base 3.2.0 - dnssec_keyid_copy@Base 3.2.0 - dnssec_keyid_equal@Base 3.2.0 - dnssec_keyid_is_valid@Base 3.2.0 - dnssec_keyid_normalize@Base 3.2.0 - dnssec_keystore_close@Base 3.2.0 - dnssec_keystore_deinit@Base 3.2.0 - dnssec_keystore_generate@Base 3.2.0 - dnssec_keystore_get_private@Base 3.2.0 - dnssec_keystore_import@Base 3.2.0 - dnssec_keystore_init@Base 3.2.0 - dnssec_keystore_init_pkcs11@Base 3.2.0 - dnssec_keystore_init_pkcs8@Base 3.2.0 - dnssec_keystore_open@Base 3.2.0 - dnssec_keystore_remove@Base 3.2.0 - dnssec_keystore_set_private@Base 3.2.0 - dnssec_keytag@Base 3.2.0 - dnssec_nsec3_hash@Base 3.2.0 - dnssec_nsec3_hash_length@Base 3.2.0 - dnssec_nsec3_params_free@Base 3.2.0 - dnssec_nsec3_params_from_rdata@Base 3.2.0 - dnssec_nsec3_params_match@Base 3.2.0 - dnssec_nsec_bitmap_add@Base 3.2.0 - dnssec_nsec_bitmap_clear@Base 3.2.0 - dnssec_nsec_bitmap_contains@Base 3.2.0 - dnssec_nsec_bitmap_free@Base 3.2.0 - dnssec_nsec_bitmap_new@Base 3.2.0 - dnssec_nsec_bitmap_size@Base 3.2.0 - dnssec_nsec_bitmap_write@Base 3.2.0 - dnssec_pem_from_privkey@Base 3.2.0 - dnssec_pem_from_x509@Base 3.2.0 - dnssec_pem_to_privkey@Base 3.2.0 - dnssec_pem_to_x509@Base 3.2.0 - dnssec_random_binary@Base 3.2.0 - dnssec_random_buffer@Base 3.2.0 - dnssec_sign_add@Base 3.2.0 - dnssec_sign_free@Base 3.2.0 - dnssec_sign_init@Base 3.2.0 - dnssec_sign_new@Base 3.2.0 - dnssec_sign_verify@Base 3.2.0 - dnssec_sign_write@Base 3.2.0 - dnssec_strerror@Base 3.2.0 - dnssec_tsig_add@Base 3.2.0 - dnssec_tsig_algorithm_from_dname@Base 3.2.0 - dnssec_tsig_algorithm_from_name@Base 3.2.0 - dnssec_tsig_algorithm_size@Base 3.2.0 - dnssec_tsig_algorithm_to_dname@Base 3.2.0 - dnssec_tsig_algorithm_to_name@Base 3.2.0 - dnssec_tsig_free@Base 3.2.0 - dnssec_tsig_new@Base 3.2.0 - dnssec_tsig_optimal_key_size@Base 3.2.0 - dnssec_tsig_size@Base 3.2.0 - dnssec_tsig_write@Base 3.2.0 diff --git a/distro/pkg/deb/libknot15.symbols b/distro/pkg/deb/libknot15.symbols deleted file mode 100644 index 78853bbd75..0000000000 --- a/distro/pkg/deb/libknot15.symbols +++ /dev/null @@ -1,301 +0,0 @@ -libknot.so.15 libknot15 #MINVER# -* Build-Depends-Package: libknot-dev - KNOT_DB_LMDB_DUPSORT@Base 3.4.0 - KNOT_DB_LMDB_INTEGERKEY@Base 3.4.0 - KNOT_DB_LMDB_MAPASYNC@Base 3.4.0 - KNOT_DB_LMDB_NOSYNC@Base 3.4.0 - KNOT_DB_LMDB_NOTLS@Base 3.4.0 - KNOT_DB_LMDB_RDONLY@Base 3.4.0 - KNOT_DB_LMDB_WRITEMAP@Base 3.4.0 - KNOT_DUMP_STYLE_DEFAULT@Base 3.4.0 - knot_creds_cert@Base 3.4.0 - knot_creds_free@Base 3.4.0 - knot_creds_hash@Base 3.5.0 - knot_creds_init@Base 3.4.0 - knot_creds_init_peer@Base 3.4.0 - knot_creds_update@Base 3.4.0 - knot_ctl_accept@Base 3.4.0 - knot_ctl_alloc@Base 3.4.0 - knot_ctl_bind@Base 3.4.0 - knot_ctl_clone@Base 3.4.0 - knot_ctl_close@Base 3.4.0 - knot_ctl_connect@Base 3.4.0 - knot_ctl_free@Base 3.4.0 - knot_ctl_receive@Base 3.4.0 - knot_ctl_send@Base 3.4.0 - knot_ctl_set_timeout@Base 3.4.0 - knot_ctl_unbind@Base 3.4.0 - knot_db_lmdb_api@Base 3.4.0 - knot_db_lmdb_del_exact@Base 3.4.0 - knot_db_lmdb_get_mapsize@Base 3.4.0 - knot_db_lmdb_get_path@Base 3.4.0 - knot_db_lmdb_get_usage@Base 3.4.0 - knot_db_lmdb_iter_del@Base 3.4.0 - knot_db_lmdb_txn_begin@Base 3.4.0 - knot_db_trie_api@Base 3.4.0 - knot_dname_cmp@Base 3.4.0 - knot_dname_copy@Base 3.4.0 - knot_dname_copy_lower@Base 3.4.0 - knot_dname_free@Base 3.4.0 - knot_dname_from_str@Base 3.4.0 - knot_dname_in_bailiwick@Base 3.4.0 - knot_dname_is_case_equal@Base 3.4.0 - knot_dname_is_equal@Base 3.4.0 - knot_dname_labels@Base 3.4.0 - knot_dname_lf@Base 3.4.0 - knot_dname_matched_labels@Base 3.4.0 - knot_dname_prefixlen@Base 3.4.0 - knot_dname_realsize@Base 3.4.0 - knot_dname_replace_suffix@Base 3.4.0 - knot_dname_size@Base 3.4.0 - knot_dname_store@Base 3.4.0 - knot_dname_to_lower@Base 3.4.0 - knot_dname_to_str@Base 3.4.0 - knot_dname_to_wire@Base 3.4.0 - knot_dname_unpack@Base 3.4.0 - knot_dname_wire_check@Base 3.4.0 - knot_dname_with_null@Base 3.4.3 - knot_dnssec_alg_names@Base 3.4.0 - knot_edns_add_option@Base 3.4.0 - knot_edns_alignment_size@Base 3.4.0 - knot_edns_chain_parse@Base 3.4.0 - knot_edns_chain_size@Base 3.4.0 - knot_edns_chain_write@Base 3.4.0 - knot_edns_client_subnet_get_addr@Base 3.4.0 - knot_edns_client_subnet_parse@Base 3.4.0 - knot_edns_client_subnet_set_addr@Base 3.4.0 - knot_edns_client_subnet_size@Base 3.4.0 - knot_edns_client_subnet_write@Base 3.4.0 - knot_edns_cookie_client_check@Base 3.4.0 - knot_edns_cookie_client_generate@Base 3.4.0 - knot_edns_cookie_parse@Base 3.4.0 - knot_edns_cookie_server_check@Base 3.4.0 - knot_edns_cookie_server_generate@Base 3.4.0 - knot_edns_cookie_size@Base 3.4.0 - knot_edns_cookie_write@Base 3.4.0 - knot_edns_ede_names@Base 3.4.0 - knot_edns_get_ext_rcode@Base 3.4.0 - knot_edns_get_option@Base 3.4.0 - knot_edns_get_options@Base 3.4.0 - knot_edns_get_version@Base 3.4.0 - knot_edns_init@Base 3.4.0 - knot_edns_keepalive_parse@Base 3.4.0 - knot_edns_keepalive_size@Base 3.4.0 - knot_edns_keepalive_write@Base 3.4.0 - knot_edns_opt_names@Base 3.4.0 - knot_edns_reserve_option@Base 3.4.0 - knot_edns_set_ext_rcode@Base 3.4.0 - knot_edns_set_version@Base 3.4.0 - knot_edns_zoneversion_parse@Base 3.4.4 - knot_edns_zoneversion_write@Base 3.4.4 - knot_error_from_libdnssec@Base 3.4.0 - knot_eth_mtu@Base 3.4.0 - knot_eth_name_from_addr@Base 3.4.0 - knot_eth_queues@Base 3.4.0 - knot_eth_rss@Base 3.4.0 - knot_eth_vlans@Base 3.4.0 - knot_eth_xdp_mode@Base 3.4.0 - knot_get_obsolete_rdata_descriptor@Base 3.4.0 - knot_get_rdata_descriptor@Base 3.4.0 - knot_naptr_header_size@Base 3.4.0 - knot_opcode_names@Base 3.4.0 - knot_opt_code_to_string@Base 3.4.0 - knot_pkt_begin@Base 3.4.0 - knot_pkt_clear@Base 3.4.0 - knot_pkt_copy@Base 3.4.0 - knot_pkt_ext_rcode@Base 3.4.0 - knot_pkt_ext_rcode_name@Base 3.4.0 - knot_pkt_free@Base 3.4.0 - knot_pkt_init_response@Base 3.4.0 - knot_pkt_new@Base 3.4.0 - knot_pkt_parse@Base 3.4.0 - knot_pkt_parse_question@Base 3.4.0 - knot_pkt_put_question@Base 3.4.0 - knot_pkt_put_rotate@Base 3.4.0 - knot_pkt_reclaim@Base 3.4.0 - knot_pkt_reserve@Base 3.4.0 - knot_probe_alloc@Base 3.4.0 - knot_probe_consume@Base 3.4.0 - knot_probe_data_set@Base 3.4.0 - knot_probe_fd@Base 3.4.0 - knot_probe_free@Base 3.4.0 - knot_probe_produce@Base 3.4.0 - knot_probe_set_consumer@Base 3.4.0 - knot_probe_set_producer@Base 3.4.0 - knot_probe_tcp_rtt@Base 3.4.0 - knot_quic_cleanup@Base 3.4.0 - knot_quic_client@Base 3.4.0 - knot_quic_conn_block@Base 3.4.0 - knot_quic_conn_get_stream@Base 3.4.0 - knot_quic_conn_local_port@Base 3.4.0 - knot_quic_conn_new_stream@Base 3.4.0 - knot_quic_conn_next_timeout@Base 3.4.0 - knot_quic_conn_rtt@Base 3.4.0 - knot_quic_conn_stream_free@Base 3.4.0 - knot_quic_handle@Base 3.4.0 - knot_quic_hanle_expiry@Base 3.4.0 - knot_quic_send@Base 3.4.0 - knot_quic_session_available@Base 3.4.0 - knot_quic_session_load@Base 3.4.0 - knot_quic_session_save@Base 3.4.0 - knot_quic_stream_add_data@Base 3.4.0 - knot_quic_stream_get_process@Base 3.4.0 - knot_quic_table_free@Base 3.4.0 - knot_quic_table_new@Base 3.4.0 - knot_quic_table_rem@Base 3.4.0 - knot_quic_table_sweep@Base 3.4.0 - knot_rcode_names@Base 3.4.0 - knot_rdataset_add@Base 3.4.0 - knot_rdataset_at@Base 3.4.0 - knot_rdataset_clear@Base 3.4.0 - knot_rdataset_copy@Base 3.4.0 - knot_rdataset_eq@Base 3.4.0 - knot_rdataset_intersect@Base 3.4.0 - knot_rdataset_intersect2@Base 3.4.0 - knot_rdataset_member@Base 3.4.0 - knot_rdataset_merge@Base 3.4.0 - knot_rdataset_remove_at@Base 3.4.7 - knot_rdataset_subset@Base 3.4.0 - knot_rdataset_subtract@Base 3.4.0 - knot_rrclass_from_string@Base 3.4.0 - knot_rrclass_to_string@Base 3.4.0 - knot_rrset_add_rdata@Base 3.4.0 - knot_rrset_clear@Base 3.4.0 - knot_rrset_copy@Base 3.4.0 - knot_rrset_equal@Base 3.4.0 - knot_rrset_free@Base 3.4.0 - knot_rrset_is_nsec3rel@Base 3.4.0 - knot_rrset_new@Base 3.4.0 - knot_rrset_rr_from_wire@Base 3.4.0 - knot_rrset_rr_to_canonical@Base 3.4.0 - knot_rrset_size@Base 3.4.0 - knot_rrset_to_wire_extra@Base 3.4.0 - knot_rrset_txt_dump@Base 3.4.0 - knot_rrset_txt_dump_data@Base 3.4.0 - knot_rrset_txt_dump_edns@Base 3.4.0 - knot_rrset_txt_dump_header@Base 3.4.0 - knot_rrtype_additional_needed@Base 3.4.0 - knot_rrtype_from_string@Base 3.4.0 - knot_rrtype_is_dnssec@Base 3.4.0 - knot_rrtype_is_metatype@Base 3.4.0 - knot_rrtype_should_be_lowercased@Base 3.4.0 - knot_rrtype_to_string@Base 3.4.0 - knot_strerror@Base 3.4.0 - knot_svcb_param_names@Base 3.4.0 - knot_tcp_cleanup@Base 3.4.0 - knot_tcp_inbufs_upd@Base 3.4.0 - knot_tcp_outbufs_ack@Base 3.4.0 - knot_tcp_outbufs_add@Base 3.4.0 - knot_tcp_outbufs_can_send@Base 3.4.0 - knot_tcp_outbufs_usage@Base 3.4.0 - knot_tcp_recv@Base 3.4.0 - knot_tcp_reply_data@Base 3.4.0 - knot_tcp_send@Base 3.4.0 - knot_tcp_sweep@Base 3.4.0 - knot_tcp_table_free@Base 3.4.0 - knot_tcp_table_new@Base 3.4.0 - knot_tls_cert_check@Base 3.5.0 - knot_tls_cert_check_hostnames@Base 3.5.0 - knot_tls_conn_block@Base 3.4.0 - knot_tls_conn_del@Base 3.4.0 - knot_tls_conn_new@Base 3.4.0 - knot_tls_ctx_free@Base 3.4.0 - knot_tls_ctx_new@Base 3.4.0 - knot_tls_handshake@Base 3.4.0 - knot_tls_pin@Base 3.4.0 - knot_tls_pin_check@Base 3.4.0 - knot_tls_priority@Base 3.4.7 - knot_tls_recv@Base 3.5.0 - knot_tls_send@Base 3.5.0 - knot_tls_session@Base 3.4.0 - knot_tls_session_available@Base 3.4.1 - knot_tls_session_load@Base 3.4.1 - knot_tls_session_save@Base 3.4.1 - knot_tsig_add@Base 3.4.0 - knot_tsig_append@Base 3.4.0 - knot_tsig_client_check@Base 3.4.0 - knot_tsig_client_check_next@Base 3.4.0 - knot_tsig_create_rdata@Base 3.4.0 - knot_tsig_key_copy@Base 3.4.0 - knot_tsig_key_deinit@Base 3.4.0 - knot_tsig_key_init@Base 3.4.0 - knot_tsig_key_init_file@Base 3.4.0 - knot_tsig_key_init_str@Base 3.4.0 - knot_tsig_rcode_names@Base 3.4.0 - knot_tsig_rdata_alg@Base 3.4.0 - knot_tsig_rdata_alg_name@Base 3.4.0 - knot_tsig_rdata_error@Base 3.4.0 - knot_tsig_rdata_fudge@Base 3.4.0 - knot_tsig_rdata_is_ok@Base 3.4.0 - knot_tsig_rdata_mac@Base 3.4.0 - knot_tsig_rdata_mac_length@Base 3.4.0 - knot_tsig_rdata_orig_id@Base 3.4.0 - knot_tsig_rdata_other_data@Base 3.4.0 - knot_tsig_rdata_other_data_length@Base 3.4.0 - knot_tsig_rdata_set_fudge@Base 3.4.0 - knot_tsig_rdata_set_mac@Base 3.4.0 - knot_tsig_rdata_set_orig_id@Base 3.4.0 - knot_tsig_rdata_set_other_data@Base 3.4.0 - knot_tsig_rdata_set_time_signed@Base 3.4.0 - knot_tsig_rdata_time_signed@Base 3.4.0 - knot_tsig_rdata_tsig_timers_length@Base 3.4.0 - knot_tsig_rdata_tsig_variables_length@Base 3.4.0 - knot_tsig_server_check@Base 3.4.0 - knot_tsig_sign@Base 3.4.0 - knot_tsig_sign_next@Base 3.4.0 - knot_tsig_wire_maxsize@Base 3.4.0 - knot_tsig_wire_size@Base 3.4.0 - knot_xdp_deinit@Base 3.4.0 - knot_xdp_init@Base 3.4.0 - knot_xdp_recv@Base 3.4.0 - knot_xdp_recv_finish@Base 3.4.0 - knot_xdp_reply_alloc@Base 3.4.0 - knot_xdp_send@Base 3.4.0 - knot_xdp_send_alloc@Base 3.4.0 - knot_xdp_send_finish@Base 3.4.0 - knot_xdp_send_free@Base 3.4.0 - knot_xdp_send_prepare@Base 3.4.0 - knot_xdp_socket_info@Base 3.4.0 - knot_xdp_socket_stats@Base 3.4.0 - knot_xdp_socket_fd@Base 3.4.0 - yp_addr@Base 3.4.0 - yp_addr_noport@Base 3.4.0 - yp_addr_noport_to_bin@Base 3.4.0 - yp_addr_noport_to_txt@Base 3.4.0 - yp_addr_range_to_bin@Base 3.4.0 - yp_addr_range_to_txt@Base 3.4.0 - yp_addr_to_bin@Base 3.4.0 - yp_addr_to_txt@Base 3.4.0 - yp_base64_to_bin@Base 3.4.0 - yp_base64_to_txt@Base 3.4.0 - yp_bool_to_bin@Base 3.4.0 - yp_bool_to_txt@Base 3.4.0 - yp_deinit@Base 3.4.0 - yp_dname_to_bin@Base 3.4.0 - yp_dname_to_txt@Base 3.4.0 - yp_format_id@Base 3.4.0 - yp_format_key0@Base 3.4.0 - yp_format_key1@Base 3.4.0 - yp_hex_to_bin@Base 3.4.0 - yp_hex_to_txt@Base 3.4.0 - yp_init@Base 3.4.0 - yp_int_to_bin@Base 3.4.0 - yp_int_to_txt@Base 3.4.0 - yp_item_to_bin@Base 3.4.0 - yp_item_to_txt@Base 3.4.0 - yp_option_to_bin@Base 3.4.0 - yp_option_to_txt@Base 3.4.0 - yp_parse@Base 3.4.0 - yp_schema_check_deinit@Base 3.4.0 - yp_schema_check_init@Base 3.4.0 - yp_schema_check_parser@Base 3.4.0 - yp_schema_check_str@Base 3.4.0 - yp_schema_copy@Base 3.4.0 - yp_schema_find@Base 3.4.0 - yp_schema_free@Base 3.4.0 - yp_schema_merge@Base 3.4.0 - yp_schema_purge_dynamic@Base 3.4.0 - yp_set_input_file@Base 3.4.0 - yp_set_input_string@Base 3.4.0 - yp_str_to_bin@Base 3.4.0 - yp_str_to_txt@Base 3.4.0 diff --git a/distro/pkg/deb/libknot15.install b/distro/pkg/deb/libknot16.install similarity index 100% rename from distro/pkg/deb/libknot15.install rename to distro/pkg/deb/libknot16.install diff --git a/distro/pkg/deb/libknot16.symbols b/distro/pkg/deb/libknot16.symbols new file mode 100644 index 0000000000..026fadc79e --- /dev/null +++ b/distro/pkg/deb/libknot16.symbols @@ -0,0 +1,301 @@ +libknot.so.16 libknot16 #MINVER# +* Build-Depends-Package: libknot-dev + KNOT_DB_LMDB_DUPSORT@Base 3.5.0 + KNOT_DB_LMDB_INTEGERKEY@Base 3.5.0 + KNOT_DB_LMDB_MAPASYNC@Base 3.5.0 + KNOT_DB_LMDB_NOSYNC@Base 3.5.0 + KNOT_DB_LMDB_NOTLS@Base 3.5.0 + KNOT_DB_LMDB_RDONLY@Base 3.5.0 + KNOT_DB_LMDB_WRITEMAP@Base 3.5.0 + KNOT_DUMP_STYLE_DEFAULT@Base 3.5.0 + knot_creds_cert@Base 3.5.0 + knot_creds_free@Base 3.5.0 + knot_creds_hash@Base 3.5.0 + knot_creds_init@Base 3.5.0 + knot_creds_init_peer@Base 3.5.0 + knot_creds_update@Base 3.5.0 + knot_ctl_accept@Base 3.5.0 + knot_ctl_alloc@Base 3.5.0 + knot_ctl_bind@Base 3.5.0 + knot_ctl_clone@Base 3.5.0 + knot_ctl_close@Base 3.5.0 + knot_ctl_connect@Base 3.5.0 + knot_ctl_free@Base 3.5.0 + knot_ctl_receive@Base 3.5.0 + knot_ctl_send@Base 3.5.0 + knot_ctl_set_timeout@Base 3.5.0 + knot_ctl_unbind@Base 3.5.0 + knot_db_lmdb_api@Base 3.5.0 + knot_db_lmdb_del_exact@Base 3.5.0 + knot_db_lmdb_get_mapsize@Base 3.5.0 + knot_db_lmdb_get_path@Base 3.5.0 + knot_db_lmdb_get_usage@Base 3.5.0 + knot_db_lmdb_iter_del@Base 3.5.0 + knot_db_lmdb_txn_begin@Base 3.5.0 + knot_db_trie_api@Base 3.5.0 + knot_dname_cmp@Base 3.5.0 + knot_dname_copy@Base 3.5.0 + knot_dname_copy_lower@Base 3.5.0 + knot_dname_free@Base 3.5.0 + knot_dname_from_str@Base 3.5.0 + knot_dname_in_bailiwick@Base 3.5.0 + knot_dname_is_case_equal@Base 3.5.0 + knot_dname_is_equal@Base 3.5.0 + knot_dname_labels@Base 3.5.0 + knot_dname_lf@Base 3.5.0 + knot_dname_matched_labels@Base 3.5.0 + knot_dname_prefixlen@Base 3.5.0 + knot_dname_realsize@Base 3.5.0 + knot_dname_replace_suffix@Base 3.5.0 + knot_dname_size@Base 3.5.0 + knot_dname_store@Base 3.5.0 + knot_dname_to_lower@Base 3.5.0 + knot_dname_to_str@Base 3.5.0 + knot_dname_to_wire@Base 3.5.0 + knot_dname_unpack@Base 3.5.0 + knot_dname_wire_check@Base 3.5.0 + knot_dname_with_null@Base 3.5.0 + knot_dnssec_alg_names@Base 3.5.0 + knot_edns_add_option@Base 3.5.0 + knot_edns_alignment_size@Base 3.5.0 + knot_edns_chain_parse@Base 3.5.0 + knot_edns_chain_size@Base 3.5.0 + knot_edns_chain_write@Base 3.5.0 + knot_edns_client_subnet_get_addr@Base 3.5.0 + knot_edns_client_subnet_parse@Base 3.5.0 + knot_edns_client_subnet_set_addr@Base 3.5.0 + knot_edns_client_subnet_size@Base 3.5.0 + knot_edns_client_subnet_write@Base 3.5.0 + knot_edns_cookie_client_check@Base 3.5.0 + knot_edns_cookie_client_generate@Base 3.5.0 + knot_edns_cookie_parse@Base 3.5.0 + knot_edns_cookie_server_check@Base 3.5.0 + knot_edns_cookie_server_generate@Base 3.5.0 + knot_edns_cookie_size@Base 3.5.0 + knot_edns_cookie_write@Base 3.5.0 + knot_edns_ede_names@Base 3.5.0 + knot_edns_get_ext_rcode@Base 3.5.0 + knot_edns_get_option@Base 3.5.0 + knot_edns_get_options@Base 3.5.0 + knot_edns_get_version@Base 3.5.0 + knot_edns_init@Base 3.5.0 + knot_edns_keepalive_parse@Base 3.5.0 + knot_edns_keepalive_size@Base 3.5.0 + knot_edns_keepalive_write@Base 3.5.0 + knot_edns_opt_names@Base 3.5.0 + knot_edns_reserve_option@Base 3.5.0 + knot_edns_set_ext_rcode@Base 3.5.0 + knot_edns_set_version@Base 3.5.0 + knot_edns_zoneversion_parse@Base 3.5.0 + knot_edns_zoneversion_write@Base 3.5.0 + knot_error_from_libdnssec@Base 3.5.0 + knot_eth_mtu@Base 3.5.0 + knot_eth_name_from_addr@Base 3.5.0 + knot_eth_queues@Base 3.5.0 + knot_eth_rss@Base 3.5.0 + knot_eth_vlans@Base 3.5.0 + knot_eth_xdp_mode@Base 3.5.0 + knot_get_obsolete_rdata_descriptor@Base 3.5.0 + knot_get_rdata_descriptor@Base 3.5.0 + knot_naptr_header_size@Base 3.5.0 + knot_opcode_names@Base 3.5.0 + knot_opt_code_to_string@Base 3.5.0 + knot_pkt_begin@Base 3.5.0 + knot_pkt_clear@Base 3.5.0 + knot_pkt_copy@Base 3.5.0 + knot_pkt_ext_rcode@Base 3.5.0 + knot_pkt_ext_rcode_name@Base 3.5.0 + knot_pkt_free@Base 3.5.0 + knot_pkt_init_response@Base 3.5.0 + knot_pkt_new@Base 3.5.0 + knot_pkt_parse@Base 3.5.0 + knot_pkt_parse_question@Base 3.5.0 + knot_pkt_put_question@Base 3.5.0 + knot_pkt_put_rotate@Base 3.5.0 + knot_pkt_reclaim@Base 3.5.0 + knot_pkt_reserve@Base 3.5.0 + knot_probe_alloc@Base 3.5.0 + knot_probe_consume@Base 3.5.0 + knot_probe_data_set@Base 3.5.0 + knot_probe_fd@Base 3.5.0 + knot_probe_free@Base 3.5.0 + knot_probe_produce@Base 3.5.0 + knot_probe_set_consumer@Base 3.5.0 + knot_probe_set_producer@Base 3.5.0 + knot_probe_tcp_rtt@Base 3.5.0 + knot_quic_cleanup@Base 3.5.0 + knot_quic_client@Base 3.5.0 + knot_quic_conn_block@Base 3.5.0 + knot_quic_conn_get_stream@Base 3.5.0 + knot_quic_conn_local_port@Base 3.5.0 + knot_quic_conn_new_stream@Base 3.5.0 + knot_quic_conn_next_timeout@Base 3.5.0 + knot_quic_conn_rtt@Base 3.5.0 + knot_quic_conn_stream_free@Base 3.5.0 + knot_quic_handle@Base 3.5.0 + knot_quic_hanle_expiry@Base 3.5.0 + knot_quic_send@Base 3.5.0 + knot_quic_session_available@Base 3.5.0 + knot_quic_session_load@Base 3.5.0 + knot_quic_session_save@Base 3.5.0 + knot_quic_stream_add_data@Base 3.5.0 + knot_quic_stream_get_process@Base 3.5.0 + knot_quic_table_free@Base 3.5.0 + knot_quic_table_new@Base 3.5.0 + knot_quic_table_rem@Base 3.5.0 + knot_quic_table_sweep@Base 3.5.0 + knot_rcode_names@Base 3.5.0 + knot_rdataset_add@Base 3.5.0 + knot_rdataset_at@Base 3.5.0 + knot_rdataset_clear@Base 3.5.0 + knot_rdataset_copy@Base 3.5.0 + knot_rdataset_eq@Base 3.5.0 + knot_rdataset_intersect@Base 3.5.0 + knot_rdataset_intersect2@Base 3.5.0 + knot_rdataset_member@Base 3.5.0 + knot_rdataset_merge@Base 3.5.0 + knot_rdataset_remove_at@Base 3.5.0 + knot_rdataset_subset@Base 3.5.0 + knot_rdataset_subtract@Base 3.5.0 + knot_rrclass_from_string@Base 3.5.0 + knot_rrclass_to_string@Base 3.5.0 + knot_rrset_add_rdata@Base 3.5.0 + knot_rrset_clear@Base 3.5.0 + knot_rrset_copy@Base 3.5.0 + knot_rrset_equal@Base 3.5.0 + knot_rrset_free@Base 3.5.0 + knot_rrset_is_nsec3rel@Base 3.5.0 + knot_rrset_new@Base 3.5.0 + knot_rrset_rr_from_wire@Base 3.5.0 + knot_rrset_rr_to_canonical@Base 3.5.0 + knot_rrset_size@Base 3.5.0 + knot_rrset_to_wire_extra@Base 3.5.0 + knot_rrset_txt_dump@Base 3.5.0 + knot_rrset_txt_dump_data@Base 3.5.0 + knot_rrset_txt_dump_edns@Base 3.5.0 + knot_rrset_txt_dump_header@Base 3.5.0 + knot_rrtype_additional_needed@Base 3.5.0 + knot_rrtype_from_string@Base 3.5.0 + knot_rrtype_is_dnssec@Base 3.5.0 + knot_rrtype_is_metatype@Base 3.5.0 + knot_rrtype_should_be_lowercased@Base 3.5.0 + knot_rrtype_to_string@Base 3.5.0 + knot_strerror@Base 3.5.0 + knot_svcb_param_names@Base 3.5.0 + knot_tcp_cleanup@Base 3.5.0 + knot_tcp_inbufs_upd@Base 3.5.0 + knot_tcp_outbufs_ack@Base 3.5.0 + knot_tcp_outbufs_add@Base 3.5.0 + knot_tcp_outbufs_can_send@Base 3.5.0 + knot_tcp_outbufs_usage@Base 3.5.0 + knot_tcp_recv@Base 3.5.0 + knot_tcp_reply_data@Base 3.5.0 + knot_tcp_send@Base 3.5.0 + knot_tcp_sweep@Base 3.5.0 + knot_tcp_table_free@Base 3.5.0 + knot_tcp_table_new@Base 3.5.0 + knot_tls_cert_check@Base 3.5.0 + knot_tls_cert_check_hostnames@Base 3.5.0 + knot_tls_conn_block@Base 3.5.0 + knot_tls_conn_del@Base 3.5.0 + knot_tls_conn_new@Base 3.5.0 + knot_tls_ctx_free@Base 3.5.0 + knot_tls_ctx_new@Base 3.5.0 + knot_tls_handshake@Base 3.5.0 + knot_tls_pin@Base 3.5.0 + knot_tls_pin_check@Base 3.5.0 + knot_tls_priority@Base 3.5.0 + knot_tls_recv@Base 3.5.0 + knot_tls_send@Base 3.5.0 + knot_tls_session@Base 3.5.0 + knot_tls_session_available@Base 3.5.0 + knot_tls_session_load@Base 3.5.0 + knot_tls_session_save@Base 3.5.0 + knot_tsig_add@Base 3.5.0 + knot_tsig_append@Base 3.5.0 + knot_tsig_client_check@Base 3.5.0 + knot_tsig_client_check_next@Base 3.5.0 + knot_tsig_create_rdata@Base 3.5.0 + knot_tsig_key_copy@Base 3.5.0 + knot_tsig_key_deinit@Base 3.5.0 + knot_tsig_key_init@Base 3.5.0 + knot_tsig_key_init_file@Base 3.5.0 + knot_tsig_key_init_str@Base 3.5.0 + knot_tsig_rcode_names@Base 3.5.0 + knot_tsig_rdata_alg@Base 3.5.0 + knot_tsig_rdata_alg_name@Base 3.5.0 + knot_tsig_rdata_error@Base 3.5.0 + knot_tsig_rdata_fudge@Base 3.5.0 + knot_tsig_rdata_is_ok@Base 3.5.0 + knot_tsig_rdata_mac@Base 3.5.0 + knot_tsig_rdata_mac_length@Base 3.5.0 + knot_tsig_rdata_orig_id@Base 3.5.0 + knot_tsig_rdata_other_data@Base 3.5.0 + knot_tsig_rdata_other_data_length@Base 3.5.0 + knot_tsig_rdata_set_fudge@Base 3.5.0 + knot_tsig_rdata_set_mac@Base 3.5.0 + knot_tsig_rdata_set_orig_id@Base 3.5.0 + knot_tsig_rdata_set_other_data@Base 3.5.0 + knot_tsig_rdata_set_time_signed@Base 3.5.0 + knot_tsig_rdata_time_signed@Base 3.5.0 + knot_tsig_rdata_tsig_timers_length@Base 3.5.0 + knot_tsig_rdata_tsig_variables_length@Base 3.5.0 + knot_tsig_server_check@Base 3.5.0 + knot_tsig_sign@Base 3.5.0 + knot_tsig_sign_next@Base 3.5.0 + knot_tsig_wire_maxsize@Base 3.5.0 + knot_tsig_wire_size@Base 3.5.0 + knot_xdp_deinit@Base 3.5.0 + knot_xdp_init@Base 3.5.0 + knot_xdp_recv@Base 3.5.0 + knot_xdp_recv_finish@Base 3.5.0 + knot_xdp_reply_alloc@Base 3.5.0 + knot_xdp_send@Base 3.5.0 + knot_xdp_send_alloc@Base 3.5.0 + knot_xdp_send_finish@Base 3.5.0 + knot_xdp_send_free@Base 3.5.0 + knot_xdp_send_prepare@Base 3.5.0 + knot_xdp_socket_info@Base 3.5.0 + knot_xdp_socket_stats@Base 3.5.0 + knot_xdp_socket_fd@Base 3.5.0 + yp_addr@Base 3.5.0 + yp_addr_noport@Base 3.5.0 + yp_addr_noport_to_bin@Base 3.5.0 + yp_addr_noport_to_txt@Base 3.5.0 + yp_addr_range_to_bin@Base 3.5.0 + yp_addr_range_to_txt@Base 3.5.0 + yp_addr_to_bin@Base 3.5.0 + yp_addr_to_txt@Base 3.5.0 + yp_base64_to_bin@Base 3.5.0 + yp_base64_to_txt@Base 3.5.0 + yp_bool_to_bin@Base 3.5.0 + yp_bool_to_txt@Base 3.5.0 + yp_deinit@Base 3.5.0 + yp_dname_to_bin@Base 3.5.0 + yp_dname_to_txt@Base 3.5.0 + yp_format_id@Base 3.5.0 + yp_format_key0@Base 3.5.0 + yp_format_key1@Base 3.5.0 + yp_hex_to_bin@Base 3.5.0 + yp_hex_to_txt@Base 3.5.0 + yp_init@Base 3.5.0 + yp_int_to_bin@Base 3.5.0 + yp_int_to_txt@Base 3.5.0 + yp_item_to_bin@Base 3.5.0 + yp_item_to_txt@Base 3.5.0 + yp_option_to_bin@Base 3.5.0 + yp_option_to_txt@Base 3.5.0 + yp_parse@Base 3.5.0 + yp_schema_check_deinit@Base 3.5.0 + yp_schema_check_init@Base 3.5.0 + yp_schema_check_parser@Base 3.5.0 + yp_schema_check_str@Base 3.5.0 + yp_schema_copy@Base 3.5.0 + yp_schema_find@Base 3.5.0 + yp_schema_free@Base 3.5.0 + yp_schema_merge@Base 3.5.0 + yp_schema_purge_dynamic@Base 3.5.0 + yp_set_input_file@Base 3.5.0 + yp_set_input_string@Base 3.5.0 + yp_str_to_bin@Base 3.5.0 + yp_str_to_txt@Base 3.5.0 diff --git a/distro/pkg/deb/libzscanner4.symbols b/distro/pkg/deb/libzscanner4.symbols deleted file mode 100644 index 99ac3b71bd..0000000000 --- a/distro/pkg/deb/libzscanner4.symbols +++ /dev/null @@ -1,12 +0,0 @@ -libzscanner.so.4 libzscanner4 #MINVER# -* Build-Depends-Package: libknot-dev - zs_deinit@Base 3.1.0 - zs_errorname@Base 3.1.0 - zs_init@Base 3.1.0 - zs_parse_all@Base 3.1.0 - zs_parse_record@Base 3.1.0 - zs_set_input_file@Base 3.1.0 - zs_set_input_string@Base 3.1.0 - zs_set_processing@Base 3.1.0 - zs_set_processing_comment@Base 3.1.0 - zs_strerror@Base 3.1.0 diff --git a/distro/pkg/deb/libzscanner4.install b/distro/pkg/deb/libzscanner5.install similarity index 100% rename from distro/pkg/deb/libzscanner4.install rename to distro/pkg/deb/libzscanner5.install diff --git a/distro/pkg/deb/libzscanner5.symbols b/distro/pkg/deb/libzscanner5.symbols new file mode 100644 index 0000000000..ffab1ca2e2 --- /dev/null +++ b/distro/pkg/deb/libzscanner5.symbols @@ -0,0 +1,12 @@ +libzscanner.so.5 libzscanner5 #MINVER# +* Build-Depends-Package: libknot-dev + zs_deinit@Base 3.5.0 + zs_errorname@Base 3.5.0 + zs_init@Base 3.5.0 + zs_parse_all@Base 3.5.0 + zs_parse_record@Base 3.5.0 + zs_set_input_file@Base 3.5.0 + zs_set_input_string@Base 3.5.0 + zs_set_processing@Base 3.5.0 + zs_set_processing_comment@Base 3.5.0 + zs_strerror@Base 3.5.0 From 1a3e34275b47ff64783bbb6763f7716316ee38d7 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 15 Aug 2025 07:22:34 +0200 Subject: [PATCH 062/675] python: uncomment zone-status filter 'u' in the doc --- python/libknot/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/libknot/README.md b/python/libknot/README.md index b615508455..efe7adabe5 100644 --- a/python/libknot/README.md +++ b/python/libknot/README.md @@ -117,7 +117,7 @@ When listing the filters a command accepts, the letter which is passed into The following commands apply to all zones if `ZONE` is left empty. * `zone-status([ZONE], [FILTERS={"rstefc"}])` - + filters: **r**ole, **s**erial, **t**ransaction, **e**vents, **f**reeze, **c**atalog + + filters: **r**ole, **s**erial, **t**ransaction, **e**vents, **f**reeze, **c**atalog, **u**nixtime * `zone-reload([ZONE], [FLAGS={"BF"}])` + the `F` flag commands to also reload modules * `zone-refresh([ZONE], [FLAGS="B"])` From a21d36345fee77193f48bae13268d71ce73a3295 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 16 Aug 2025 18:40:28 +0200 Subject: [PATCH 063/675] net: fix unused warning on some systems --- src/contrib/net.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/contrib/net.c b/src/contrib/net.c index a9fdd39610..e70bda0088 100644 --- a/src/contrib/net.c +++ b/src/contrib/net.c @@ -15,6 +15,7 @@ #include #include +#include "libknot/attribute.h" #include "libknot/errcode.h" #include "contrib/macros.h" #include "contrib/net.h" @@ -363,7 +364,7 @@ uint8_t net_cmsg_ecn(struct msghdr *msg) int net_ecn_set(int sock, int family, uint8_t ecn) { - int val = ecn; + _unused_ int val = ecn; switch (family) { case AF_INET: #if defined(__linux__) From 5319e0a024c0061eae490dd67c74473a67bd94ec Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 29 Jul 2025 14:39:19 +0200 Subject: [PATCH 064/675] ctl: return Loading from status when not in the ServerAnswering state --- src/knot/ctl/commands.c | 65 +++++++++++++++++++------------------- src/knot/ctl/commands.h | 2 ++ src/utils/knotc/commands.c | 10 +++--- 3 files changed, 41 insertions(+), 36 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index f389659ff1..b133cb706c 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1943,43 +1943,44 @@ static int check_no_zone_txn(server_t *server, const char *action) static int server_status(ctl_args_t *args) { - const char *type = args->data[KNOT_CTL_IDX_TYPE]; - - if (type == NULL || strlen(type) == 0) { - return KNOT_EOK; - } - char buff[4096] = ""; - int ret; - if (strcasecmp(type, CMD_STATUS_VERSION) == 0) { - ret = snprintf(buff, sizeof(buff), "%s", PACKAGE_VERSION); - } else if (strcasecmp(type, CMD_STATUS_WORKERS) == 0) { - int running_bkg_wrk, wrk_queue; - worker_pool_status(args->server->workers, false, &running_bkg_wrk, &wrk_queue); - ret = snprintf(buff, sizeof(buff), "UDP workers: %zu, TCP workers: %zu, " - "XDP workers: %zu, background workers: %zu (running: %d, pending: %d)", - conf()->cache.srv_udp_threads, conf()->cache.srv_tcp_threads, - conf()->cache.srv_xdp_threads, conf()->cache.srv_bg_threads, - running_bkg_wrk, wrk_queue); - } else if (strcasecmp(type, CMD_STATUS_CONFIG) == 0) { - ret = snprintf(buff, sizeof(buff), "%s", configure_summary); - } else if (strcasecmp(type, CMD_STATUS_CERT) == 0) { - uint8_t pin[128]; - size_t pin_len = server_cert_pin(args->server, pin, sizeof(pin)); - if (pin_len > 0) { - ret = snprintf(buff, sizeof(buff), "%.*s", (int)pin_len, pin); - } else { - ret = snprintf(buff, sizeof(buff), STATUS_EMPTY); + const char *type = args->data[KNOT_CTL_IDX_TYPE]; + if (type == NULL || strlen(type) == 0) { + if (!(args->server->state & ServerAnswering)) { + args->data[KNOT_CTL_IDX_FILTERS] = CTL_FILTER_STATUS_LOADING; } } else { - return KNOT_EINVAL; - } - if (ret <= 0 || ret >= sizeof(buff)) { - return KNOT_ESPACE; - } + int ret; + if (strcasecmp(type, CMD_STATUS_VERSION) == 0) { + ret = snprintf(buff, sizeof(buff), "%s", PACKAGE_VERSION); + } else if (strcasecmp(type, CMD_STATUS_WORKERS) == 0) { + int running_bkg_wrk, wrk_queue; + worker_pool_status(args->server->workers, false, &running_bkg_wrk, &wrk_queue); + ret = snprintf(buff, sizeof(buff), "UDP workers: %zu, TCP workers: %zu, " + "XDP workers: %zu, background workers: %zu (running: %d, pending: %d)", + conf()->cache.srv_udp_threads, conf()->cache.srv_tcp_threads, + conf()->cache.srv_xdp_threads, conf()->cache.srv_bg_threads, + running_bkg_wrk, wrk_queue); + } else if (strcasecmp(type, CMD_STATUS_CONFIG) == 0) { + ret = snprintf(buff, sizeof(buff), "%s", configure_summary); + } else if (strcasecmp(type, CMD_STATUS_CERT) == 0) { + uint8_t pin[128]; + size_t pin_len = server_cert_pin(args->server, pin, sizeof(pin)); + if (pin_len > 0) { + ret = snprintf(buff, sizeof(buff), "%.*s", (int)pin_len, pin); + } else { + ret = snprintf(buff, sizeof(buff), STATUS_EMPTY); + } + } else { + return KNOT_EINVAL; + } + if (ret <= 0 || ret >= sizeof(buff)) { + return KNOT_ESPACE; + } - args->data[KNOT_CTL_IDX_DATA] = buff; + args->data[KNOT_CTL_IDX_DATA] = buff; + } return knot_ctl_send(args->ctl, KNOT_CTL_TYPE_DATA, &args->data); } diff --git a/src/knot/ctl/commands.h b/src/knot/ctl/commands.h index a787d15db3..ea2b32dff7 100644 --- a/src/knot/ctl/commands.h +++ b/src/knot/ctl/commands.h @@ -20,6 +20,8 @@ #define CTL_FILTER_FLUSH_OUTDIR "d" +#define CTL_FILTER_STATUS_LOADING "l" + #define CTL_FILTER_STATUS_ROLE "r" #define CTL_FILTER_STATUS_SERIAL "s" #define CTL_FILTER_STATUS_TRANSACTION "t" diff --git a/src/utils/knotc/commands.c b/src/utils/knotc/commands.c index ae922f4df7..1797536a10 100644 --- a/src/utils/knotc/commands.c +++ b/src/utils/knotc/commands.c @@ -175,8 +175,12 @@ static void format_data(cmd_args_t *args, knot_ctl_type_t data_type, (type != NULL) ? type : ""); } else if (value != NULL) { printf("%s", value); - *empty = false; + } else if (ctl_has_flag(filters, CTL_FILTER_STATUS_LOADING)) { + printf("Loading"); + } else { + printf("Running"); } + *empty = false; break; case CTL_STOP: case CTL_RELOAD: @@ -329,9 +333,6 @@ static void format_data(cmd_args_t *args, knot_ctl_type_t data_type, static void format_block(ctl_cmd_t cmd, bool failed, bool empty) { switch (cmd) { - case CTL_STATUS: - printf("%s\n", (failed || !empty) ? "" : "Running"); - break; case CTL_STOP: printf("%s\n", failed ? "" : "Stopped"); break; @@ -367,6 +368,7 @@ static void format_block(ctl_cmd_t cmd, bool failed, bool empty) case CTL_ZONE_PURGE: printf("%s\n", failed ? "" : "OK"); break; + case CTL_STATUS: case CTL_ZONE_STATUS: case CTL_ZONE_READ: case CTL_ZONE_DIFF: From def37d7e0af5c3ad1cda8d37f0c2165bda00d9a5 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 18 Aug 2025 08:45:40 +0200 Subject: [PATCH 065/675] NEWS: synchronize with 3.3 and 3.4 --- NEWS | 251 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 251 insertions(+) diff --git a/NEWS b/NEWS index 9e9e71d213..5fa02ff86b 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,230 @@ +Knot DNS 3.4.8 (2025-07-29) +=========================== + +Features: +--------- + - keymgr: implemented key pregeneration for later use (see 'for-later') + +Improvements: +------------- + - knotd: decreased remote session ticket lifetime to 1200 seconds + - knotd: TCP connection is not shared between SOA and XFR if 'remote.no-edns' is set + - knotd: 'zone.notify-delay' now applies to every outgoing NOTIFY + - knotd: reduced timers database size by omitting zero timer values + - knotd: zone-reload can be called on an expired zone + - knotd: improved configuration commit performance when many zones are present + - keymgr: allowed boolen key flags without an explicit 'on' value + - keymgr: support for colon separators in keyid specification + - utils: added INTERNET and CHAOS aliases for IN and CH class names + - libs: upgraded embedded libngtcp2 to 1.14.0 + - doc: various improvements + +Bugfixes: +--------- + - knotd: possible use after free if member zone is reused when full reload + - knotd: incorrect zone update revert adjustments + +Knot DNS 3.4.7 (2025-06-04) +=========================== + +Features: +--------- + - knotd: implemented optional NOTIFY delay upon zone loading (see 'zone.notify-delay') + - knotd: failed ZONEMD validation emits 'dnssec-invalid' D-Bus event + - kdig: added option for delayed reading of next transfer message (see '+msgdelay') + - kzonecheck: new parameter for job count (see '-j') + +Improvements: +------------- + - knotd: semantic checks support DS algorithms 5 and 6 + - knotd: pending generation of reverse records is logged as warning + - knotd: DNSKEY synchronization considers keytag modulo for better reliability + - knotd: zone-(un)set parser errors no longer logged by the server + - knotd: more verbose zone-(un)set parser errors are returned to the client + - knotc: configuration warnings are printed only with the conf-check command + - kdig: enabled TLS 1.2 support (with warning) + - kdig: more verbose TLS/QUIC certificate information - SAN (see '-dd') + - mod-rrl: disabled optimized KRU version on macOS to fix CPU issues + - libknot: added two specific variants of KNOT_EAGAIN error (KNOT_NET_EAGAIN, KNOT_ETRYAGAIN) + - libs: upgraded embedded libngtcp2 to 1.13.0 + - knot-exporter: added maximum libknot version dependency #956 + - knot-exporter: removed return statement from a finally block #957 + - packaging: new knot-exporter and python3-libknot RPM subpackages + - doc: simplified highlighting of options enabled by default + - doc: various improvements + +Bugfixes: +--------- + - knotd: false warning for missing glue if NS is at other delegation + - knotd: missing rdata canonicalization in zone-(un)set operations + - knotd: missing check for member zone configured with a non-generated catalog + - knotd: benevolent IXFR skips whole rrset when ignoring a record + - knotd: missing next remove key action log during KSK/algorithm rollover + - knotd: missing catalog template configuration checks + - knotd: missing check for empty QUIC connection in XDP mode + - libknot: incorrect trailing rdata check in packet parser + - kdig: ignored DoQ response from dnsdist #954 + - packaging: uninstalling lib*t64 packages removes files from upstream packages + +Knot DNS 3.4.6 (2025-04-10) +=========================== + +Improvements: +------------- + - knotd: default TSIG algorithm is now 'hmac-sha256' + - knotd: added zone expiration info to the failed zone refresh log + - knotd: reverse record generation now accepts multiple forward zones to be reversed + - keymgr: underscores are now tolerated instead of dashes in command names + - keymgr: correct mnemonic 'rsasha1-nsec3-sha1' is used instead of 'rsasha1nsec3sha1' + - kdig: new '+[no]doflag' alias for '+[no]dnssec' #952 + - kdig: documented default option values #951 + - kxdpgun: extended JSON output with some packet statistics + - doc: various updates and improvements + +Bugfixes: +--------- + - knotd: failed to stop the server if 'dbus-event: running` is set + - knotd: TLS 0-RTT not working if compiled with the QUIC support + - knotd: TLS handshake fails on FreeBSD + - knotd: outbound QUIC communication fails on FreeBSD + - knotd: KSK submission not ignored in the manual key management mode + - knotd: failed to bind to a UNIX socket on recent Linux kernels + - kzonecheck: failed to check non-trivial zones through standard input + +Knot DNS 3.4.5 (2025-03-18) +=========================== + +Features: +--------- + - knotd: support for SOA serial shift (see 'serial-modulo') + - knotd: new server statistics (see 'tcp-io-timeout"' and 'tcp-idle-timeout') + +Improvements: +------------- + - knotd: better signing performance of many zones in parallel by + moving 'last_signed_serial' from KASP database to timer database + - knotd: the 'terminated inactive client' TCP log moved to debug level + - knotd: allowed initial DDNS to an empty zone + - knotd: extended backup and flush argument checks + - knotd: new debug logs for zone events suspension + - libs: upgraded embedded libngtcp2 to 1.11.0 + - doc: new section Multi-primary, updates + +Bugfixes: +--------- + - libdnssec: inappropriate DNSKEY flags evaluation + - libknot: incorrect VLAN map size calculation for XDP + +Knot DNS 3.4.4 (2025-01-22) +=========================== + +Features: +--------- + - knotd: added support for EDNS ZONEVERSION + - kdig: added support for EDNS ZONEVERSION (see '+zoneversion') + +Improvements: +------------- + - knotd: improved control error detection and reporting + - kdig: proper section names for exported DDNS messages + - libs: upgraded embedded libngtcp2 to 1.10.0 + - python: expanded documentation for the libknot control API + - doc: updated XDP prerequisites + +Bugfixes: +--------- + - knotd: a DNAME record at the zone apex with active NSEC3 not accepted via XFR + - knotd: configuration abort times out if no active transaction + - knotd: defective serial modulo result if it overflows + - knotd: TLS connections not properly terminated + - knotd: maximum zone TTL not correctly recomputed after RRSIG TTL change + - knotd: zone hangs if zone reload fails (Thanks to solidcc2) + - knotd: statistics dump generates invalid YAML output if XDP is enabled #947 + - knotd: insufficient check for incomplete control message + - mod-dnstap: used incorrect type for DDNS messages + - knot-exporter: failed to run with Python 3.11 or older + - tests: test_atomic and test_spinlock require building with the daemon enabled #946 + +Knot DNS 3.4.3 (2024-12-06) +=========================== + +Improvements: +------------- + - knotd: improved processing of QNAMEs containing zero bytes + - knotd: zone expiration now aborts possible zone control transaction #929 + - knotd: generated catalog memeber metadata is stored when the zone is loaded + - knotd: new configuration check for using default NSEC3 salt length, which will change + - mod-rrl: added QNAME (if possible) and transport protocol to log messages + - mod-rrl: increased defaults for 'log-period' to 30 secs, 'rate-limit' to 50, + 'instant-rate-limit' to 125, and 'time-rate-limit' to 5 ms + - kxdpgun: added space separators to some printed values for better readability + - libs: upgraded embedded libngtcp2 to 1.9.1 + - knot-exporter: zone timers metric is now disabled by default (see '--zone-timers') + - packaging: added build dependency softhsm for PKCS #11 testing on RPM distributions + - doc: updated description of DNSSEC key management and module RRL + +Bugfixes: +--------- + - knotd: more active ZSKs cause cumulative ZSK rollovers + - knotd: zone purge clears active generated catalog member metadata + - mod-rrl: authorized requests are rate limited #943 + - kdig: misleading warning about timeout during QUIC connection + - keymgr: public-only keys are marked as missing in the list output + +Knot DNS 3.4.2 (2024-10-31) +=========================== + +Improvements: +------------- + - knotd: new warning log upon every incremental update if previous zone signing failed + - mod-cookies: support for two secret values specification + - keymgr: key pregenerate works even when a KSK exists + - libs: upgraded embedded libngtcp2 to 1.8.1 + +Bugfixes: +--------- + - knotd: server can crash when processing just a terminal label as QNAME + - knotd: failed to compile if no atomic operations available + - kjournalprint: failed to merge zone-in-journal if followed by a non-first changeset + - knot-exporter: faulty escape sequence in time value parsing + - knot-exporter: failed to parse zone-status output + - kxdpgun: periodic statistics doesn't work correctly for longer time periods + +Knot DNS 3.4.1 (2024-10-14) +=========================== + +Features: +--------- + - knotd: ACL configuration allows protocol specification (see 'acl.protocol') + - knotc: support for benevolent zone updates (see zone-begin with '+benevolent') + - knotd: implemented TLS session resumption + - kjournalprint: added print merged changesets mode (see '-M') + - libknot: added NXNAME meta type (Thanks to Jan Včelák) + +Improvements: +------------- + - knotd: DNSKEY synchronization event logs removed/added *DNSKEYs + - knotd: control command log message contains filters and flags in the debug mode + - knotc: zone status prints running, pending, and frozen duration + - knotd,knotc: unification of control flags and filters + - keymgr: key listing reports configured keys that are inaccessible + - libs: upgraded embedded libngtcp2 to 1.8.0 + - doc: various fixes and updates + +Bugfixes: +--------- + - knotd: missing support for IPv6 link local address configuration + - knotd: zone reload occasionally causes a core dump #939 (Thanks to solidcc2) + - knotd: race condition in DDNS over QUIC processing + - knotd: imperfect signal handling on some auxiliary threads + - knotd: EDNS EXPIRE not updated when zone signing results in up-to-date + - knotd: failed to reload autogenerated QUIC/TLS key after process ownership change + - knotc: zone backup filter +keysonly doesn't disable other defaults + - kxdpgun: failed to receive more data over QUIC until 1-RTT handshake is done + - knsupdate: memory leak if rdata parsing fails + - doc: failed to install manual pages from a tarball + - Dockerfile: TCP port 853 not exposed for DoT + Knot DNS 3.4.0 (2024-09-02) =========================== @@ -70,6 +297,30 @@ Compatibility: - packaging: CentOS 7, Debian 10, and Ubuntu 18.04 no longer supported - doc: removed info pages +Knot DNS 3.3.10 (2024-12-12) +============================ + +Improvements: +------------- + - libknot: added NXNAME meta type (Thanks to Jan Včelák) + +Improvements: +------------- + - knotd: improved processing of QNAMEs containing zero bytes + - knotd: generated catalog member metadata is stored when the zone is loaded + - doc: various fixes and updates + +Bugfixes: +--------- + - knotd: more active ZSKs cause cumulative ZSK rollovers + - knotd: zone reload occasionally causes a core dump #939 (Thanks to solidcc2) + - knotd: zone purge clears active generated catalog member metadata + - knotc: zone backup filter +keysonly doesn't disable other defaults + - kxdpgun: failed to receive more data over QUIC until 1-RTT handshake is done + - knsupdate: memory leak if rdata parsing fails + - kdig: misleading warning about timeout during QUIC connection + - knot-exporter: faulty escape sequence in time value parsing + Knot DNS 3.3.9 (2024-08-26) =========================== From 627de727821326952e7d71f6b77a7d2b362bc251 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 19 Aug 2025 19:42:06 +0200 Subject: [PATCH 066/675] server: remove no longer needed include --- src/knot/server/server.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 6b45bd1433..d80a0b0ab7 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -17,9 +17,6 @@ #include "libknot/yparser/ypschema.h" #include "libknot/xdp.h" #include "libknot/quic/tls.h" -#ifdef ENABLE_QUIC -#include "libknot/quic/quic.h" // knot_quic_session_* -#endif // ENABLE_QUIC #include "knot/common/log.h" #include "knot/common/stats.h" #include "knot/common/systemd.h" From 4c7fc5a19f763bebb6e3f9cda48707571d5c607f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 23 Aug 2025 08:41:27 +0200 Subject: [PATCH 067/675] libngtcp2: update embedded library to v1.15.0 --- Knot.files | 10 +- src/contrib/Makefile.inc | 4 + .../libngtcp2/ngtcp2/lib/ngtcp2_acktr.c | 6 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c | 19 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h | 7 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c | 6 + src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h | 11 +- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.c | 647 ++++++++++++++++-- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.h | 15 + .../libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h | 4 - src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c | 88 +++ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.h | 54 ++ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c | 293 ++++++++ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h | 83 +++ .../libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c | 77 +++ .../libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h | 59 ++ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c | 22 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.h | 8 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c | 4 +- .../libngtcp2/ngtcp2/lib/ngtcp2_settings.c | 7 + .../libngtcp2/ngtcp2/lib/ngtcp2_settings.h | 7 + .../libngtcp2/ngtcp2/lib/ngtcp2_strm.c | 13 +- .../libngtcp2/ngtcp2/lib/ngtcp2_strm.h | 8 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c | 11 + src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h | 14 + src/contrib/libngtcp2/ngtcp2/ngtcp2.h | 131 +++- src/contrib/libngtcp2/ngtcp2/version.h | 4 +- 27 files changed, 1472 insertions(+), 140 deletions(-) create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.h create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h diff --git a/Knot.files b/Knot.files index 307c066eb7..f16de73ffd 100644 --- a/Knot.files +++ b/Knot.files @@ -32,8 +32,6 @@ src/contrib/libngtcp2/ngtcp2/crypto/shared.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.c -src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c -src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.h @@ -41,6 +39,8 @@ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c @@ -52,6 +52,8 @@ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.h +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_err.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_err.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c @@ -76,6 +78,8 @@ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_opl.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_opl.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.h +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pktns_id.h @@ -91,6 +95,8 @@ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.h +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rcvry.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.h diff --git a/src/contrib/Makefile.inc b/src/contrib/Makefile.inc index 36832c8ffa..0855764d21 100644 --- a/src/contrib/Makefile.inc +++ b/src/contrib/Makefile.inc @@ -180,6 +180,8 @@ libembngtcp2_la_SOURCES = \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_opl.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.h \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_pktns_id.h \ @@ -195,6 +197,8 @@ libembngtcp2_la_SOURCES = \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.h \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_rcvry.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.h \ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c index 776dc0c2c3..59bc621ef4 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c @@ -316,9 +316,9 @@ void ngtcp2_acktr_recv_ack(ngtcp2_acktr *acktr, const ngtcp2_ack *fr) { } void ngtcp2_acktr_commit_ack(ngtcp2_acktr *acktr) { - acktr->flags &= (uint16_t) ~(NGTCP2_ACKTR_FLAG_ACTIVE_ACK | - NGTCP2_ACKTR_FLAG_IMMEDIATE_ACK | - NGTCP2_ACKTR_FLAG_CANCEL_TIMER); + acktr->flags &= + (uint16_t)~(NGTCP2_ACKTR_FLAG_ACTIVE_ACK | NGTCP2_ACKTR_FLAG_IMMEDIATE_ACK | + NGTCP2_ACKTR_FLAG_CANCEL_TIMER); acktr->first_unacked_ts = UINT64_MAX; acktr->rx_npkt = 0; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c index a2ffeb6188..44be1e189b 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c @@ -33,6 +33,7 @@ #include "ngtcp2_rcvry.h" #include "ngtcp2_rst.h" #include "ngtcp2_conn_stat.h" +#include "ngtcp2_pcg.h" #define NGTCP2_BBR_MAX_BW_FILTERLEN 2 @@ -906,15 +907,9 @@ static int bbr_is_time_to_probe_bw(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, } static void bbr_pick_probe_wait(ngtcp2_cc_bbr *bbr) { - uint8_t rand; - - bbr->rand(&rand, 1, &bbr->rand_ctx); - - bbr->rounds_since_bw_probe = (uint64_t)(rand / 128); - - bbr->rand(&rand, 1, &bbr->rand_ctx); - - bbr->bw_probe_wait = 2 * NGTCP2_SECONDS + NGTCP2_SECONDS * rand / 255; + bbr->rounds_since_bw_probe = ngtcp2_pcg32_rand_n(bbr->pcg, 2); + bbr->bw_probe_wait = + 2 * NGTCP2_SECONDS + ngtcp2_pcg32_rand_n(bbr->pcg, NGTCP2_SECONDS + 1); } static int bbr_is_reno_coexistence_probe_time(ngtcp2_cc_bbr *bbr, @@ -1388,8 +1383,7 @@ static void bbr_cc_reset(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, void ngtcp2_cc_bbr_init(ngtcp2_cc_bbr *bbr, ngtcp2_log *log, ngtcp2_conn_stat *cstat, ngtcp2_rst *rst, - ngtcp2_tstamp initial_ts, ngtcp2_rand rand, - const ngtcp2_rand_ctx *rand_ctx) { + ngtcp2_tstamp initial_ts, ngtcp2_pcg32 *pcg) { *bbr = (ngtcp2_cc_bbr){ .cc = { @@ -1403,8 +1397,7 @@ void ngtcp2_cc_bbr_init(ngtcp2_cc_bbr *bbr, ngtcp2_log *log, .reset = bbr_cc_reset, }, .rst = rst, - .rand = rand, - .rand_ctx = *rand_ctx, + .pcg = pcg, .initial_cwnd = cstat->cwnd, }; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h index e823711a50..0499924f58 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h @@ -35,6 +35,7 @@ #include "ngtcp2_window_filter.h" typedef struct ngtcp2_rst ngtcp2_rst; +typedef struct ngtcp2_pcg32 ngtcp2_pcg32; typedef enum ngtcp2_bbr_state { NGTCP2_BBR_STATE_STARTUP, @@ -62,8 +63,7 @@ typedef struct ngtcp2_cc_bbr { uint64_t initial_cwnd; ngtcp2_rst *rst; - ngtcp2_rand rand; - ngtcp2_rand_ctx rand_ctx; + ngtcp2_pcg32 *pcg; /* max_bw_filter for tracking the maximum recent delivery rate samples for estimating max_bw. */ @@ -136,7 +136,6 @@ typedef struct ngtcp2_cc_bbr { void ngtcp2_cc_bbr_init(ngtcp2_cc_bbr *bbr, ngtcp2_log *log, ngtcp2_conn_stat *cstat, ngtcp2_rst *rst, - ngtcp2_tstamp initial_ts, ngtcp2_rand rand, - const ngtcp2_rand_ctx *rand_ctx); + ngtcp2_tstamp initial_ts, ngtcp2_pcg32 *pcg); #endif /* !defined(NGTCP2_BBR_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c index 75326d6b76..bf4273f816 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c @@ -36,6 +36,12 @@ size_t ngtcp2_buf_cap(const ngtcp2_buf *buf) { return (size_t)(buf->end - buf->begin); } +void ngtcp2_buf_trunc(ngtcp2_buf *buf, size_t len) { + if (ngtcp2_buf_len(buf) > len) { + buf->last = buf->pos + len; + } +} + int ngtcp2_buf_chain_new(ngtcp2_buf_chain **pbufchain, size_t len, const ngtcp2_mem *mem) { *pbufchain = ngtcp2_mem_malloc(mem, sizeof(ngtcp2_buf_chain) + len); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h index b2bdafc387..b59ac9a54b 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h @@ -70,9 +70,7 @@ static inline size_t ngtcp2_buf_left(const ngtcp2_buf *buf) { * ngtcp2_buf_len returns the number of bytes left to read. In other * words, it returns buf->last - buf->pos. */ -static inline size_t ngtcp2_buf_len(const ngtcp2_buf *buf) { - return (size_t)(buf->last - buf->pos); -} +#define ngtcp2_buf_len(BUF) (size_t)((BUF)->last - (BUF)->pos) /* * ngtcp2_buf_cap returns the capacity of the buffer. In other words, @@ -80,6 +78,13 @@ static inline size_t ngtcp2_buf_len(const ngtcp2_buf *buf) { */ size_t ngtcp2_buf_cap(const ngtcp2_buf *buf); +/* + * ngtcp2_buf_trunc truncates the number of bytes to read to at most + * |len|. In other words, it sets buf->last = buf->pos + len if + * ngtcp2_buf_len(buf) > len. + */ +void ngtcp2_buf_trunc(ngtcp2_buf *buf, size_t len); + /* * ngtcp2_buf_chain is a linked list of ngtcp2_buf. */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c index 393c2281f1..d97ba6a71b 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c @@ -288,7 +288,7 @@ static int conn_call_begin_path_validation(ngtcp2_conn *conn, const ngtcp2_pv *pv) { int rv; uint32_t flags = NGTCP2_PATH_VALIDATION_FLAG_NONE; - const ngtcp2_path *old_path = NULL; + const ngtcp2_path *fallback_path = NULL; if (!pv || !conn->callbacks.begin_path_validation) { return 0; @@ -299,11 +299,11 @@ static int conn_call_begin_path_validation(ngtcp2_conn *conn, } if (pv->flags & NGTCP2_PV_FLAG_FALLBACK_PRESENT) { - old_path = &pv->fallback_dcid.ps.path; + fallback_path = &pv->fallback_dcid.ps.path; } rv = conn->callbacks.begin_path_validation(conn, flags, &pv->dcid.ps.path, - old_path, conn->user_data); + fallback_path, conn->user_data); if (rv != 0) { return NGTCP2_ERR_CALLBACK_FAILURE; } @@ -315,7 +315,7 @@ static int conn_call_path_validation(ngtcp2_conn *conn, const ngtcp2_pv *pv, ngtcp2_path_validation_result res) { int rv; uint32_t flags = NGTCP2_PATH_VALIDATION_FLAG_NONE; - const ngtcp2_path *old_path = NULL; + const ngtcp2_path *fallback_path = NULL; if (!conn->callbacks.path_validation) { return 0; @@ -326,17 +326,17 @@ static int conn_call_path_validation(ngtcp2_conn *conn, const ngtcp2_pv *pv, } if (pv->flags & NGTCP2_PV_FLAG_FALLBACK_PRESENT) { - old_path = &pv->fallback_dcid.ps.path; + fallback_path = &pv->fallback_dcid.ps.path; } - if (conn->server && old_path && - (ngtcp2_addr_cmp(&pv->dcid.ps.path.remote, &old_path->remote) & + if (conn->server && fallback_path && + (ngtcp2_addr_cmp(&pv->dcid.ps.path.remote, &fallback_path->remote) & (NGTCP2_ADDR_CMP_FLAG_ADDR | NGTCP2_ADDR_CMP_FLAG_FAMILY))) { flags |= NGTCP2_PATH_VALIDATION_FLAG_NEW_TOKEN; } - rv = conn->callbacks.path_validation(conn, flags, &pv->dcid.ps.path, old_path, - res, conn->user_data); + rv = conn->callbacks.path_validation(conn, flags, &pv->dcid.ps.path, + fallback_path, res, conn->user_data); if (rv != 0) { return NGTCP2_ERR_CALLBACK_FAILURE; } @@ -1061,13 +1061,28 @@ conn_set_local_transport_params(ngtcp2_conn *conn, } static void conn_update_skip_pkt(ngtcp2_conn *conn, ngtcp2_pktns *pktns) { - uint8_t gap; + const int64_t min_gap = 3; + uint8_t r; + int64_t gap; - conn->callbacks.rand(&gap, 1, &conn->local.settings.rand_ctx); + assert(INT64_MAX != pktns->tx.skip_pkt.next_pkt_num); - pktns->tx.skip_pkt.next_pkt_num = - pktns->tx.last_pkt_num + 3 + - (int64_t)gap * (1ll << pktns->tx.skip_pkt.exponent++); + conn->callbacks.rand(&r, 1, &conn->local.settings.rand_ctx); + + if (1ll << pktns->tx.skip_pkt.exponent > + (NGTCP2_MAX_PKT_NUM - min_gap) / ((int64_t)r + 1)) { + pktns->tx.skip_pkt.next_pkt_num = INT64_MAX; + return; + } + + gap = ((int64_t)r + 1) * (1ll << pktns->tx.skip_pkt.exponent++) + min_gap; + + if (pktns->tx.last_pkt_num > NGTCP2_MAX_PKT_NUM - gap) { + pktns->tx.skip_pkt.next_pkt_num = INT64_MAX; + return; + } + + pktns->tx.skip_pkt.next_pkt_num = pktns->tx.last_pkt_num + gap; ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, "next skip pkn=%" PRId64, pktns->tx.skip_pkt.next_pkt_num); @@ -1138,7 +1153,7 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, ngtcp2_settings settingsbuf; ngtcp2_transport_params paramsbuf; ngtcp2_callbacks callbacksbuf; - uint64_t map_seed; + uint64_t seed; (void)settings_version; settings = @@ -1248,8 +1263,11 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, ngtcp2_pq_init(&(*pconn)->scid.used, retired_ts_less, mem); - callbacks->rand((uint8_t *)&map_seed, sizeof(map_seed), &settings->rand_ctx); - ngtcp2_map_init(&(*pconn)->strms, map_seed, mem); + callbacks->rand((uint8_t *)&seed, sizeof(seed), &settings->rand_ctx); + ngtcp2_map_init(&(*pconn)->strms, seed, mem); + + callbacks->rand((uint8_t *)&seed, sizeof(seed), &settings->rand_ctx); + ngtcp2_pcg32_init(&(*pconn)->pcg, seed); ngtcp2_pq_init(&(*pconn)->tx.strmq, cycle_less, mem); @@ -1325,8 +1343,7 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, break; case NGTCP2_CC_ALGO_BBR: ngtcp2_cc_bbr_init(&(*pconn)->bbr, &(*pconn)->log, &(*pconn)->cstat, - &(*pconn)->rst, settings->initial_ts, callbacks->rand, - &settings->rand_ctx); + &(*pconn)->rst, settings->initial_ts, &(*pconn)->pcg); break; default: @@ -1335,6 +1352,9 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, ngtcp2_static_ringbuf_path_history_init(&(*pconn)->path_history); + ngtcp2_ratelim_init(&(*pconn)->glitch_rlim, settings->glitch_ratelim_burst, + settings->glitch_ratelim_rate, settings->initial_ts); + (*pconn)->callbacks = *callbacks; rv = pktns_new(&(*pconn)->in_pktns, NGTCP2_PKTNS_ID_INITIAL, &(*pconn)->rst, @@ -1524,6 +1544,7 @@ int ngtcp2_conn_client_new_versioned( (*pconn)->state = NGTCP2_CS_CLIENT_INITIAL; (*pconn)->local.bidi.next_stream_id = 0; (*pconn)->local.uni.next_stream_id = 2; + (*pconn)->flags |= NGTCP2_CONN_FLAG_CRUMBLE_INITIAL_CRYPTO; rv = ngtcp2_conn_commit_local_transport_params(*pconn); if (rv != 0) { @@ -2127,6 +2148,230 @@ static uint8_t conn_pkt_flags_short(ngtcp2_conn *conn) { : NGTCP2_PKT_FLAG_NONE)); } +/* + * conn_cut_crypto_frame splits (*pfrc)->fr.stream by removing + * |removed_data| from (*pfrc)->fr.stream.data[0]. + * (*pfrc)->fr.stream.data[0] must contain |removed_data|, and + * (*pfrc)->fr.stream.datacnt >= 1. New ngtcp2_frame_chain object + * that contains |removed_data| is created, and pushed to + * |crypto_strm| via ngtcp2_strm_streamfrq_push. Because + * (*pfrc)->fr.stream.datacnt cannot be changed, if it is not 1, new + * ngtcp2_frame_chain object is created to contain the data before + * |removed_data|. Then *pfrc is deleted, and the newly created + * object is assigned to *pfrc instead. If there are data following + * the removed part of data, new ngtcp2_frame_chain object is created + * for it, and (*pfrc)->next points to the object. + * + * This function returns 0 if it succeeds, or one of the following + * negative error codes: + * + * NGTCP2_ERR_NOMEM + * Out of memory + */ +static int conn_cut_crypto_frame(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, + ngtcp2_strm *crypto_strm, + const ngtcp2_vec *removed_data) { + ngtcp2_vec *data = (*pfrc)->fr.stream.data; + size_t datacnt = (*pfrc)->fr.stream.datacnt; + size_t ndatacnt; + ngtcp2_frame_chain *left_frc, *right_frc = NULL, *removed_frc; + size_t offset; + int rv; + + assert(datacnt); + assert(data[0].base < removed_data->base); + assert(ngtcp2_vec_end(removed_data) <= ngtcp2_vec_end(&data[0])); + + offset = (size_t)(removed_data->base - data->base); + + rv = ngtcp2_frame_chain_stream_datacnt_objalloc_new( + &removed_frc, 1, &conn->frc_objalloc, conn->mem); + if (rv != 0) { + return rv; + } + + /* ngtcp2_frame_chain for the removed data */ + removed_frc->fr.stream.type = NGTCP2_FRAME_CRYPTO; + removed_frc->fr.stream.offset = (*pfrc)->fr.stream.offset + offset; + removed_frc->fr.stream.datacnt = 1; + removed_frc->fr.stream.data[0] = (ngtcp2_vec){ + .base = data->base + offset, + .len = removed_data->len, + }; + + rv = ngtcp2_strm_streamfrq_push(crypto_strm, removed_frc); + if (rv != 0) { + ngtcp2_frame_chain_objalloc_del(removed_frc, &conn->frc_objalloc, + conn->mem); + return rv; + } + + if (data[0].len == offset + removed_data->len) { + ndatacnt = datacnt - 1; + } else { + ndatacnt = datacnt; + } + + if (ndatacnt) { + /* ngtcp2_frame_chain after the removed data */ + rv = ngtcp2_frame_chain_stream_datacnt_objalloc_new( + &right_frc, ndatacnt, &conn->frc_objalloc, conn->mem); + if (rv != 0) { + return rv; + } + + right_frc->fr.stream.type = NGTCP2_FRAME_CRYPTO; + right_frc->fr.stream.offset = + removed_frc->fr.stream.offset + removed_frc->fr.stream.data->len; + right_frc->fr.stream.datacnt = 0; + ngtcp2_vec_split(right_frc->fr.stream.data, &right_frc->fr.stream.datacnt, + data, &datacnt, offset + removed_data->len, ndatacnt); + + assert(ndatacnt == right_frc->fr.stream.datacnt); + assert(1 == datacnt); + } + + /* We cannot change (*pfrc)->fr.stream.datacnt. If it changes, + create new ngtcp2_frame_chain. */ + if ((*pfrc)->fr.stream.datacnt == 1) { + (*pfrc)->fr.stream.data[0].len = offset; + (*pfrc)->next = right_frc; + return 0; + } + + rv = ngtcp2_frame_chain_stream_datacnt_objalloc_new( + &left_frc, 1, &conn->frc_objalloc, conn->mem); + if (rv != 0) { + ngtcp2_frame_chain_objalloc_del(right_frc, &conn->frc_objalloc, conn->mem); + return rv; + } + + left_frc->fr.stream.type = NGTCP2_FRAME_CRYPTO; + left_frc->fr.stream.offset = (*pfrc)->fr.stream.offset; + left_frc->fr.stream.datacnt = 1; + left_frc->fr.stream.data[0] = (ngtcp2_vec){ + .base = data[0].base, + .len = offset, + }; + left_frc->next = right_frc; + + ngtcp2_frame_chain_objalloc_del(*pfrc, &conn->frc_objalloc, conn->mem); + *pfrc = left_frc; + + return 0; +} + +/* + * conn_crumble_initial_crypto splits CRYPTO frame (*pfrc)->fr.stream + * into pieces and adds PADDING and PING frames, and reorder those + * frames. Those frames are encoded in the buffer pointed by |data| + * and |offsets|. |data| is the pointer to the array of ngtcp2_vec of + * at least NGTCP2_MAX_STREAM_DATACNT. |offsets| contains the CRYPTO + * offset of the corresponding ngtcp2_vec in |data|, and it also + * should have the capacity at least NGTCP2_MAX_STREAM_DATACNT + * uint64_t. |left| is the number of bytes available for the current + * packet. |crypto_offset| is the next smallest CRYPTO offset. + * |crypto_strm| is the CRYPTO stream. + * + * This function returns the number of objects written to |data| and + * |offsets|, or one of the following negative error codes: + * + * NGTCP2_ERR_NOMEM + * Out of memory + */ +static ngtcp2_ssize +conn_crumble_initial_crypto(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, + ngtcp2_vec *data, uint64_t *offsets, + ngtcp2_strm *crypto_strm, size_t left, + uint64_t crypto_offset) { + ngtcp2_vec server_name; + ngtcp2_vec removed_data; + size_t max_add_frames = 10; + size_t single_crypto_overhead = + 1 + ngtcp2_put_uvarintlen(crypto_offset + left - 1) + + ngtcp2_put_uvarintlen(left); + size_t total_crypto_overhead = single_crypto_overhead * max_add_frames; + size_t datacnt; + size_t i; + int rv; + + if (left <= total_crypto_overhead) { + return 0; + } + + left -= total_crypto_overhead; + + left = ngtcp2_pkt_crypto_max_datalen(crypto_offset, left, left); + if (left == (size_t)-1) { + return 0; + } + + rv = ngtcp2_strm_streamfrq_pop(crypto_strm, pfrc, left); + if (rv != 0) { + assert(ngtcp2_err_is_fatal(rv)); + return rv; + } + + if (*pfrc == NULL) { + return 0; + } + + assert(crypto_offset == (*pfrc)->fr.stream.offset); + + ngtcp2_vec_copy(data, (*pfrc)->fr.stream.data, (*pfrc)->fr.stream.datacnt); + datacnt = (*pfrc)->fr.stream.datacnt; + + offsets[0] = (*pfrc)->fr.stream.offset; + + for (i = 1; i < datacnt; ++i) { + offsets[i] = offsets[i - 1] + data[i - 1].len; + } + + if (datacnt < NGTCP2_MAX_STREAM_DATACNT && + ngtcp2_pkt_find_server_name(&server_name, data) && server_name.len > 1) { + if (ngtcp2_strm_streamfrq_empty(crypto_strm) || + ngtcp2_strm_streamfrq_unacked_offset(crypto_strm) == (uint64_t)-1) { + datacnt = ngtcp2_pkt_split_vec_at( + data, datacnt, offsets, + (size_t)(server_name.base - data[0].base) + server_name.len / 2); + } else { + /* If we have another data to send (most likely in the another + packet), remove the part of SNI from this packet. */ + datacnt = ngtcp2_pkt_remove_vec_partial( + &removed_data, data, datacnt, offsets, &conn->pcg, &server_name); + + rv = conn_cut_crypto_frame(conn, pfrc, crypto_strm, &removed_data); + if (rv != 0) { + ngtcp2_frame_chain_objalloc_del(*pfrc, &conn->frc_objalloc, conn->mem); + return rv; + } + + /* Add the length of removed data to total_crypto_overhead so + that we can use them for inter CRYPTO frames padding. */ + total_crypto_overhead += removed_data.len; + } + } + + if (datacnt < max_add_frames + 1) { + max_add_frames -= datacnt - 1; + + datacnt = ngtcp2_pkt_split_vec_rand(data, datacnt, offsets, &conn->pcg, + max_add_frames); + } + + for (i = 1; i < datacnt; ++i) { + total_crypto_overhead -= 1 + ngtcp2_put_uvarintlen(offsets[i]) + + ngtcp2_put_uvarintlen(data[i].len); + } + + datacnt = ngtcp2_pkt_append_ping_and_padding(data, datacnt, &conn->pcg, + total_crypto_overhead); + + ngtcp2_pkt_permutate_vec(data, datacnt, offsets, &conn->pcg); + + return (ngtcp2_ssize)datacnt; +} + static size_t conn_min_pktlen(ngtcp2_conn *conn); /* @@ -2253,38 +2498,94 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, destlen >= NGTCP2_MAX_UDP_PAYLOAD_SIZE) { build_pkt: for (; !ngtcp2_strm_streamfrq_empty(&pktns->crypto.strm);) { - left = ngtcp2_ppe_left(&ppe); - crypto_offset = ngtcp2_strm_streamfrq_unacked_offset(&pktns->crypto.strm); if (crypto_offset == (uint64_t)-1) { ngtcp2_strm_streamfrq_clear(&pktns->crypto.strm); break; } - left = ngtcp2_pkt_crypto_max_datalen(crypto_offset, left, left); - if (left == (size_t)-1) { + left = ngtcp2_ppe_left(&ppe); + if (left == 0) { break; } - rv = ngtcp2_strm_streamfrq_pop(&pktns->crypto.strm, &nfrc, left); - if (rv != 0) { - assert(ngtcp2_err_is_fatal(rv)); - ngtcp2_frame_chain_list_objalloc_del(frq, &conn->frc_objalloc, - conn->mem); - return rv; - } + if (type == NGTCP2_PKT_INITIAL && + (conn->flags & NGTCP2_CONN_FLAG_CRUMBLE_INITIAL_CRYPTO)) { + ngtcp2_vec data[NGTCP2_MAX_STREAM_DATACNT]; + uint64_t offsets[NGTCP2_MAX_STREAM_DATACNT]; + ngtcp2_ssize datacnt; + size_t i; - if (nfrc == NULL) { - break; - } + datacnt = conn_crumble_initial_crypto( + conn, &nfrc, data, offsets, &pktns->crypto.strm, left, crypto_offset); + if (datacnt < 0) { + assert(ngtcp2_err_is_fatal((int)datacnt)); + ngtcp2_frame_chain_list_objalloc_del(frq, &conn->frc_objalloc, + conn->mem); - rv = conn_ppe_write_frame_hd_log(conn, &ppe, &hd_logged, &hd, &nfrc->fr); - if (rv != 0) { - ngtcp2_unreachable(); + return datacnt; + } + + if (datacnt == 0) { + break; + } + + for (i = 0; i < (size_t)datacnt; ++i) { + if (data[i].base == NULL) { + if (data[i].len == 0) { + lfr.ping.type = NGTCP2_FRAME_PING; + } else { + lfr.padding = (ngtcp2_padding){ + .type = NGTCP2_FRAME_PADDING, + .len = data[i].len, + }; + } + } else { + lfr.stream = (ngtcp2_stream){ + .type = NGTCP2_FRAME_CRYPTO, + .offset = offsets[i], + .datacnt = 1, + .data[0] = data[i], + }; + } + + rv = conn_ppe_write_frame_hd_log(conn, &ppe, &hd_logged, &hd, &lfr); + if (rv != 0) { + ngtcp2_unreachable(); + } + } + } else { + left = ngtcp2_pkt_crypto_max_datalen(crypto_offset, left, left); + if (left == (size_t)-1) { + break; + } + + rv = ngtcp2_strm_streamfrq_pop(&pktns->crypto.strm, &nfrc, left); + if (rv != 0) { + assert(ngtcp2_err_is_fatal(rv)); + ngtcp2_frame_chain_list_objalloc_del(frq, &conn->frc_objalloc, + conn->mem); + return rv; + } + + if (nfrc == NULL) { + break; + } + + rv = + conn_ppe_write_frame_hd_log(conn, &ppe, &hd_logged, &hd, &nfrc->fr); + if (rv != 0) { + ngtcp2_unreachable(); + } } *pfrc = nfrc; - pfrc = &(*pfrc)->next; + + for (; nfrc->next;) { + nfrc = nfrc->next; + } + + pfrc = &nfrc->next; pkt_empty = 0; rtb_entry_flags |= NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING | @@ -5270,9 +5571,12 @@ static void assign_recved_ack_delay_unscaled(ngtcp2_ack *fr, * Stream ID exceeds allowed limit. * NGTCP2_ERR_NOMEM * Out of memory. + * NGTCP2_ERR_INTERNAL + * Suspicious remote endpoint activity exceeded threshold. */ static int conn_recv_max_stream_data(ngtcp2_conn *conn, - const ngtcp2_max_stream_data *fr) { + const ngtcp2_max_stream_data *fr, + ngtcp2_tstamp ts) { ngtcp2_strm *strm; ngtcp2_idtr *idtr; int local_stream = conn_local_stream(conn, fr->stream_id); @@ -5302,6 +5606,10 @@ static int conn_recv_max_stream_data(ngtcp2_conn *conn, if (strm == NULL) { if (local_stream) { /* Stream has been closed. */ + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } @@ -5312,6 +5620,10 @@ static int conn_recv_max_stream_data(ngtcp2_conn *conn, } assert(rv == NGTCP2_ERR_STREAM_IN_USE); /* Stream has been closed. */ + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } @@ -5331,19 +5643,29 @@ static int conn_recv_max_stream_data(ngtcp2_conn *conn, } } - if (strm->tx.max_offset < fr->max_stream_data) { - strm->tx.max_offset = fr->max_stream_data; - - /* Don't call callback if stream is half-closed local */ - if (strm->flags & NGTCP2_STRM_FLAG_SHUT_WR) { - return 0; + if (strm->tx.max_offset >= fr->max_stream_data) { + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; } - rv = conn_call_extend_max_stream_data(conn, strm, fr->stream_id, - fr->max_stream_data); - if (rv != 0) { - return rv; + return 0; + } + + strm->tx.max_offset = fr->max_stream_data; + + /* Don't call callback if stream is half-closed local */ + if (strm->flags & NGTCP2_STRM_FLAG_SHUT_WR) { + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; } + + return 0; + } + + rv = conn_call_extend_max_stream_data(conn, strm, fr->stream_id, + fr->max_stream_data); + if (rv != 0) { + return rv; } return 0; @@ -5976,7 +6298,8 @@ static int conn_verify_fixed_bit(ngtcp2_conn *conn, ngtcp2_pkt_hd *hd) { static int conn_recv_crypto(ngtcp2_conn *conn, ngtcp2_encryption_level encryption_level, - ngtcp2_strm *strm, const ngtcp2_stream *fr); + ngtcp2_strm *strm, const ngtcp2_stream *fr, + ngtcp2_tstamp ts); static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, const ngtcp2_pkt_info *pi, const uint8_t *pkt, @@ -6015,6 +6338,8 @@ static int conn_process_buffered_protected_pkt(ngtcp2_conn *conn, * TLS stack reported error. * NGTCP2_ERR_PROTO * Generic QUIC protocol error. + * NGTCP2_ERR_INTERNAL + * Suspicious remote endpoint activity exceeded threshold. * * In addition to the above error codes, error codes returned from * conn_recv_pkt are also returned. @@ -6525,7 +6850,7 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, conn->negotiated_version); } - rv = conn_recv_crypto(conn, encryption_level, crypto, &fr->stream); + rv = conn_recv_crypto(conn, encryption_level, crypto, &fr->stream, ts); if (rv != 0) { return rv; } @@ -6814,15 +7139,24 @@ static int conn_emit_pending_stream_data(ngtcp2_conn *conn, ngtcp2_strm *strm, * The end offset exceeds the maximum value. * NGTCP2_ERR_CALLBACK_FAILURE * User-defined callback function failed. + * NGTCP2_ERR_INTERNAL + * Suspicious remote endpoint activity exceeded threshold. */ static int conn_recv_crypto(ngtcp2_conn *conn, ngtcp2_encryption_level encryption_level, - ngtcp2_strm *crypto, const ngtcp2_stream *fr) { + ngtcp2_strm *crypto, const ngtcp2_stream *fr, + ngtcp2_tstamp ts) { uint64_t fr_end_offset; uint64_t rx_offset; int rv; + ngtcp2_ssize nwrite; if (fr->datacnt == 0) { + if (encryption_level != NGTCP2_ENCRYPTION_LEVEL_INITIAL && + ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } @@ -6835,6 +7169,11 @@ static int conn_recv_crypto(ngtcp2_conn *conn, rx_offset = ngtcp2_strm_rx_offset(crypto); if (fr_end_offset <= rx_offset) { + if (encryption_level != NGTCP2_ENCRYPTION_LEVEL_INITIAL && + ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + if (conn->server && !(conn->flags & NGTCP2_CONN_FLAG_HANDSHAKE_EARLY_RETRANSMIT) && encryption_level == NGTCP2_ENCRYPTION_LEVEL_INITIAL) { @@ -6892,8 +7231,18 @@ static int conn_recv_crypto(ngtcp2_conn *conn, return NGTCP2_ERR_CRYPTO_BUFFER_EXCEEDED; } - return ngtcp2_strm_recv_reordering(crypto, fr->data[0].base, fr->data[0].len, - fr->offset); + nwrite = ngtcp2_strm_recv_reordering(crypto, fr->data[0].base, + fr->data[0].len, fr->offset); + if (nwrite < 0) { + return (int)nwrite; + } + + if (encryption_level != NGTCP2_ENCRYPTION_LEVEL_INITIAL && nwrite == 0 && + ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + + return 0; } /* @@ -6927,8 +7276,11 @@ static int conn_max_data_violated(ngtcp2_conn *conn, uint64_t datalen) { * NGTCP2_ERR_FINAL_SIZE * STREAM frame has strictly larger end offset than it is * permitted. + * NGTCP2_ERR_INTERNAL + * Suspicious remote endpoint activity exceeded threshold. */ -static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr) { +static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr, + ngtcp2_tstamp ts) { int rv; ngtcp2_strm *strm; ngtcp2_idtr *idtr; @@ -6937,6 +7289,8 @@ static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr) { int bidi; uint64_t datalen = ngtcp2_vec_len(fr->data, fr->datacnt); uint32_t sdflags = NGTCP2_STREAM_DATA_FLAG_NONE; + ngtcp2_ssize nwrite; + int new_strm = 0; local_stream = conn_local_stream(conn, fr->stream_id); bidi = bidi_stream(fr->stream_id); @@ -6970,8 +7324,11 @@ static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr) { strm = ngtcp2_conn_find_stream(conn, fr->stream_id); if (strm == NULL) { if (local_stream) { - /* TODO The stream has been closed. This should be responded - with RESET_STREAM, or simply ignored. */ + /* The stream has been closed. */ + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } @@ -6981,8 +7338,11 @@ static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr) { return rv; } assert(rv == NGTCP2_ERR_STREAM_IN_USE); - /* TODO The stream has been closed. This should be responded - with RESET_STREAM, or simply ignored. */ + /* The stream has been closed. */ + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } @@ -6997,6 +7357,8 @@ static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr) { return rv; } + new_strm = 1; + if (!bidi) { ngtcp2_strm_shutdown(strm, NGTCP2_STRM_FLAG_SHUT_WR); strm->flags |= NGTCP2_STRM_FLAG_FIN_ACKED; @@ -7037,10 +7399,18 @@ static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr) { } if (strm->flags & NGTCP2_STRM_FLAG_RESET_STREAM_RECVED) { + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } if (rx_offset == fr_end_offset) { + if (!new_strm && ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } } else if (strm->rx.last_offset > fr_end_offset) { @@ -7060,10 +7430,18 @@ static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr) { ngtcp2_max_uint64(strm->rx.last_offset, fr_end_offset); if (fr_end_offset <= rx_offset) { + if (!new_strm && ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } if (strm->flags & NGTCP2_STRM_FLAG_RESET_STREAM_RECVED) { + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } } @@ -7111,10 +7489,14 @@ static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr) { return rv; } } else if (fr->datacnt && !(strm->flags & NGTCP2_STRM_FLAG_STOP_SENDING)) { - rv = ngtcp2_strm_recv_reordering(strm, fr->data[0].base, fr->data[0].len, - fr->offset); - if (rv != 0) { - return rv; + nwrite = ngtcp2_strm_recv_reordering(strm, fr->data[0].base, + fr->data[0].len, fr->offset); + if (nwrite < 0) { + return (int)nwrite; + } + + if (nwrite == 0 && ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; } } return ngtcp2_conn_close_stream_if_shut_rdwr(conn, strm); @@ -7211,9 +7593,12 @@ handle_max_remote_streams_extension(uint64_t *punsent_max_remote_streams, * NGTCP2_MAX_VARINT. * NGTCP2_ERR_FINAL_SIZE * The final offset is strictly larger than it is permitted. + * NGTCP2_ERR_INTERNAL + * Suspicious remote endpoint activity exceeded threshold. */ static int conn_recv_reset_stream(ngtcp2_conn *conn, - const ngtcp2_reset_stream *fr) { + const ngtcp2_reset_stream *fr, + ngtcp2_tstamp ts) { ngtcp2_strm *strm; int local_stream = conn_local_stream(conn, fr->stream_id); int bidi = bidi_stream(fr->stream_id); @@ -7251,6 +7636,10 @@ static int conn_recv_reset_stream(ngtcp2_conn *conn, strm = ngtcp2_conn_find_stream(conn, fr->stream_id); if (strm == NULL) { if (local_stream) { + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } @@ -7260,6 +7649,11 @@ static int conn_recv_reset_stream(ngtcp2_conn *conn, return rv; } assert(rv == NGTCP2_ERR_STREAM_IN_USE); + + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } @@ -7294,6 +7688,10 @@ static int conn_recv_reset_stream(ngtcp2_conn *conn, } if (strm->flags & NGTCP2_STRM_FLAG_RESET_STREAM_RECVED) { + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } @@ -7349,9 +7747,12 @@ static int conn_recv_reset_stream(ngtcp2_conn *conn, * Out of memory. * NGTCP2_ERR_CALLBACK_FAILURE * User-defined callback function failed. + * NGTCP2_ERR_INTERNAL + * Suspicious remote endpoint activity exceeded threshold. */ static int conn_recv_stop_sending(ngtcp2_conn *conn, - const ngtcp2_stop_sending *fr) { + const ngtcp2_stop_sending *fr, + ngtcp2_tstamp ts) { int rv; ngtcp2_strm *strm; ngtcp2_idtr *idtr; @@ -7380,6 +7781,10 @@ static int conn_recv_stop_sending(ngtcp2_conn *conn, strm = ngtcp2_conn_find_stream(conn, fr->stream_id); if (strm == NULL) { if (local_stream) { + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } rv = ngtcp2_idtr_open(idtr, fr->stream_id); @@ -7388,6 +7793,11 @@ static int conn_recv_stop_sending(ngtcp2_conn *conn, return rv; } assert(rv == NGTCP2_ERR_STREAM_IN_USE); + + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } @@ -7410,6 +7820,10 @@ static int conn_recv_stop_sending(ngtcp2_conn *conn, } if (strm->flags & NGTCP2_STRM_FLAG_STOP_SENDING_RECVED) { + if (ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { + return NGTCP2_ERR_INTERNAL; + } + return 0; } @@ -8671,6 +9085,8 @@ conn_recv_delayed_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_pkt_info *pi, * Flow control limit is violated. * NGTCP2_ERR_FINAL_SIZE * Frame has strictly larger end offset than it is permitted. + * NGTCP2_ERR_INTERNAL + * Suspicious remote endpoint activity exceeded threshold. */ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, const ngtcp2_pkt_info *pi, const uint8_t *pkt, @@ -9074,7 +9490,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, ++num_ack_processed; break; case NGTCP2_FRAME_STREAM: - rv = conn_recv_stream(conn, &fr->stream); + rv = conn_recv_stream(conn, &fr->stream, ts); if (rv != 0) { return rv; } @@ -9082,28 +9498,28 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, break; case NGTCP2_FRAME_CRYPTO: rv = conn_recv_crypto(conn, NGTCP2_ENCRYPTION_LEVEL_1RTT, - &pktns->crypto.strm, &fr->stream); + &pktns->crypto.strm, &fr->stream, ts); if (rv != 0) { return rv; } non_probing_pkt = 1; break; case NGTCP2_FRAME_RESET_STREAM: - rv = conn_recv_reset_stream(conn, &fr->reset_stream); + rv = conn_recv_reset_stream(conn, &fr->reset_stream, ts); if (rv != 0) { return rv; } non_probing_pkt = 1; break; case NGTCP2_FRAME_STOP_SENDING: - rv = conn_recv_stop_sending(conn, &fr->stop_sending); + rv = conn_recv_stop_sending(conn, &fr->stop_sending, ts); if (rv != 0) { return rv; } non_probing_pkt = 1; break; case NGTCP2_FRAME_MAX_STREAM_DATA: - rv = conn_recv_max_stream_data(conn, &fr->max_stream_data); + rv = conn_recv_max_stream_data(conn, &fr->max_stream_data, ts); if (rv != 0) { return rv; } @@ -11463,7 +11879,11 @@ conn_write_vmsg_wrapper(ngtcp2_conn *conn, ngtcp2_path *path, } else if ((cstat->cwnd >= cstat->ssthresh || cstat->bytes_in_flight * 2 < cstat->cwnd) && nwrite == 0 && conn_pacing_pkt_tx_allowed(conn, ts) && - (conn->flags & NGTCP2_CONN_FLAG_HANDSHAKE_COMPLETED)) { + (conn->flags & NGTCP2_CONN_FLAG_HANDSHAKE_COMPLETED) && + /* Because NGTCP2_CONN_FLAG_AGGREGATE_PKTS is set after a + packet is produced, if it is set, we are sure that we + are not app-limited. */ + !(conn->flags & NGTCP2_CONN_FLAG_AGGREGATE_PKTS)) { conn->rst.app_limited = conn->rst.delivered + cstat->bytes_in_flight; if (conn->rst.app_limited == 0) { @@ -11811,7 +12231,7 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, if (!conn->pktns.rtb.probe_pkt_left && conn_cwnd_is_zero(conn)) { destlen = 0; } else { - if (res == 0) { + if (res == 0 && !(conn->flags & NGTCP2_CONN_FLAG_AGGREGATE_PKTS)) { nwrite = conn_write_path_response(conn, path, pi, dest, origdestlen, ts); if (nwrite) { @@ -13462,6 +13882,91 @@ void ngtcp2_conn_add_path_history(ngtcp2_conn *conn, const ngtcp2_dcid *dcid, ent->ts = ts; } +ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( + ngtcp2_conn *conn, ngtcp2_path *path, int pkt_info_version, + ngtcp2_pkt_info *pi, uint8_t *buf, size_t buflen, size_t *pgsolen, + ngtcp2_write_pkt write_pkt, ngtcp2_tstamp ts) { + size_t max_udp_payloadlen = ngtcp2_conn_get_max_tx_udp_payload_size(conn); + size_t path_max_udp_payloadlen = + ngtcp2_conn_get_path_max_tx_udp_payload_size(conn); + ngtcp2_ssize nwrite; + uint8_t *wbuf = buf; + size_t wbuflen; + ngtcp2_ecn_state ecn_state; + int first_pkt; + ngtcp2_pkt_info pi_discard; + ngtcp2_path_storage path_discard; + (void)pkt_info_version; + + assert(buflen >= path_max_udp_payloadlen); + + buflen = + ngtcp2_min_size(buflen, ngtcp2_max_size(ngtcp2_conn_get_send_quantum(conn), + path_max_udp_payloadlen)); + + for (;;) { + ecn_state = conn->tx.ecn.state; + + wbuflen = buflen >= max_udp_payloadlen ? max_udp_payloadlen + : path_max_udp_payloadlen; + + nwrite = write_pkt(conn, path, pi, wbuf, wbuflen, ts, conn->user_data); + if (nwrite < 0) { + break; + } + + if (nwrite == 0) { + nwrite = wbuf - buf; + break; + } + + first_pkt = buf == wbuf; + wbuf += nwrite; + buflen -= (size_t)nwrite; + + if (first_pkt) { + assert(!(conn->flags & NGTCP2_CONN_FLAG_AGGREGATE_PKTS)); + + *pgsolen = (size_t)nwrite; + + if ((size_t)nwrite != path_max_udp_payloadlen || + buflen < path_max_udp_payloadlen || ecn_state != conn->tx.ecn.state) { + nwrite = wbuf - buf; + break; + } + + /* All aggregated packets should share the same path and pi. + Pass the placeholder values to the callback because they + might be overwritten by later calls, especially pi is set to + empty when no packet is produced. */ + if (path) { + ngtcp2_path_storage_zero(&path_discard); + path = &path_discard.path; + } + + if (pi) { + pi = &pi_discard; + } + + conn->flags |= NGTCP2_CONN_FLAG_AGGREGATE_PKTS; + + continue; + } + + if (buflen < path_max_udp_payloadlen || (size_t)nwrite < *pgsolen || + ecn_state != conn->tx.ecn.state) { + nwrite = wbuf - buf; + break; + } + } + + conn->flags &= ~NGTCP2_CONN_FLAG_AGGREGATE_PKTS; + + ngtcp2_conn_update_pkt_tx_time(conn, ts); + + return nwrite; +} + const ngtcp2_path_history_entry * ngtcp2_conn_find_path_history(ngtcp2_conn *conn, const ngtcp2_path *path, ngtcp2_tstamp ts) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h index 5979d39654..2d607d379f 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h @@ -52,6 +52,8 @@ #include "ngtcp2_rst.h" #include "ngtcp2_conn_stat.h" #include "ngtcp2_dcidtr.h" +#include "ngtcp2_pcg.h" +#include "ngtcp2_ratelim.h" typedef enum { /* Client specific handshake states */ @@ -200,6 +202,14 @@ void ngtcp2_path_challenge_entry_init(ngtcp2_path_challenge_entry *pcent, /* NGTCP2_CONN_FLAG_KEY_UPDATE_INITIATOR is set when the local endpoint has initiated key update. */ #define NGTCP2_CONN_FLAG_KEY_UPDATE_INITIATOR 0x10000u +/* NGTCP2_CONN_FLAG_AGGREGATE_PKTS is set when + ngtcp2_conn_writev_stream is called inside the callback invoked by + ngtcp2_conn_write_aggregate_pkt. */ +#define NGTCP2_CONN_FLAG_AGGREGATE_PKTS 0x20000u +/* NGTCP2_CONN_FLAG_CRUMBLE_INITIAL_CRYPTO, if set, crumbles an + Initial CRYPTO frame into pieces as a countermeasure against Deep + Packet Inspection. */ +#define NGTCP2_CONN_FLAG_CRUMBLE_INITIAL_CRYPTO 0x40000u typedef struct ngtcp2_pktns { struct { @@ -641,12 +651,17 @@ struct ngtcp2_conn { successfully. The path is added to this history when a local endpoint migrates to the another path. */ ngtcp2_static_ringbuf_path_history path_history; + /* glitch_rlim is the rate limit of glitches that can be tolerated. + If more than those glitches are detected, a connection is + closed. */ + ngtcp2_ratelim glitch_rlim; const ngtcp2_mem *mem; /* idle_ts is the time instant when idle timer started. */ ngtcp2_tstamp idle_ts; /* handshake_confirmed_ts is the time instant when handshake is confirmed. For server, it is confirmed when completed. */ ngtcp2_tstamp handshake_confirmed_ts; + ngtcp2_pcg32 pcg; void *user_data; uint32_t client_chosen_version; uint32_t negotiated_version; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h index e7b3363252..01f07cfa4d 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h @@ -90,10 +90,6 @@ ngtcp2_objalloc_decl(frame_chain, ngtcp2_frame_chain, oplent) int ngtcp2_bind_frame_chains(ngtcp2_frame_chain *a, ngtcp2_frame_chain *b, const ngtcp2_mem *mem); -/* NGTCP2_MAX_STREAM_DATACNT is the maximum number of ngtcp2_vec that - a ngtcp2_stream can include. */ -#define NGTCP2_MAX_STREAM_DATACNT 256 - /* * ngtcp2_frame_chain_objalloc_new allocates ngtcp2_frame_chain using * |objalloc|. diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c new file mode 100644 index 0000000000..9d0eb57e0d --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c @@ -0,0 +1,88 @@ +/* + * ngtcp2 + * + * Copyright (c) 2025 ngtcp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include "ngtcp2_pcg.h" + +#include + +/* + * PCG implementation from + * https://github.com/imneme/pcg-c/blob/83252d9c23df9c82ecb42210afed61a7b42402d7/include/pcg_variants.h + * + * PCG Random Number Generation for C. + * + * Copyright 2014-2019 Melissa O'Neill , + * and the PCG Project contributors. + * + * SPDX-License-Identifier: (Apache-2.0 OR MIT) + * + * Licensed under the Apache License, Version 2.0 (provided in + * LICENSE-APACHE.txt and at http://www.apache.org/licenses/LICENSE-2.0) + * or under the MIT license (provided in LICENSE-MIT.txt and at + * http://opensource.org/licenses/MIT), at your option. This file may not + * be copied, modified, or distributed except according to those terms. + * + * Distributed on an "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, either + * express or implied. See your chosen license for details. + * + * For additional information about the PCG random number generation scheme, + * visit http://www.pcg-random.org/. + */ + +#define NGTCP2_PCG_DEFAULT_MULTIPLIER_64 6364136223846793005ULL +#define NGTCP2_PCG_DEFAULT_INCREMENT_64 1442695040888963407ULL + +static void pcg_oneseq_64_step_r(ngtcp2_pcg32 *pcg) { + pcg->state = pcg->state * NGTCP2_PCG_DEFAULT_MULTIPLIER_64 + + NGTCP2_PCG_DEFAULT_INCREMENT_64; +} + +void ngtcp2_pcg32_init(ngtcp2_pcg32 *pcg, uint64_t seed) { + pcg->state = 0; + pcg_oneseq_64_step_r(pcg); + pcg->state += seed; + pcg_oneseq_64_step_r(pcg); +} + +static uint32_t pcg_rotr_32(uint32_t value, unsigned int rot) { + return (value >> rot) | (value << ((-rot) & 31)); +} + +static uint32_t pcg_output_xsh_rr_64_32(uint64_t state) { + return pcg_rotr_32((uint32_t)(((state >> 18u) ^ state) >> 27u), + (unsigned int)(state >> 59u)); +} + +uint32_t ngtcp2_pcg32_rand(ngtcp2_pcg32 *pcg) { + uint64_t oldstate = pcg->state; + + pcg_oneseq_64_step_r(pcg); + + return pcg_output_xsh_rr_64_32(oldstate); +} + +uint32_t ngtcp2_pcg32_rand_n(ngtcp2_pcg32 *pcg, uint32_t n) { + assert(n); + return (uint32_t)(((uint64_t)ngtcp2_pcg32_rand(pcg) * n) >> 32); +} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.h new file mode 100644 index 0000000000..a637183efc --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.h @@ -0,0 +1,54 @@ +/* + * ngtcp2 + * + * Copyright (c) 2025 ngtcp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#ifndef NGTCP2_PCG_H +#define NGTCP2_PCG_H + +#ifdef HAVE_CONFIG_H +# include +#endif /* defined(HAVE_CONFIG_H) */ + +#include + +typedef struct ngtcp2_pcg32 { + uint64_t state; +} ngtcp2_pcg32; + +/* + * ngtcp2_pcg32_init initializes |pcg| with |seed|. + */ +void ngtcp2_pcg32_init(ngtcp2_pcg32 *pcg, uint64_t seed); + +/* + * ngtcp2_pcg32_rand returns a random value in [0, UINT32_MAX]. + */ +uint32_t ngtcp2_pcg32_rand(ngtcp2_pcg32 *pcg); + +/* + * ngtcp2_pcg32_rand_n returns a random value in [0, n). |n| must not + * be zero. + */ +uint32_t ngtcp2_pcg32_rand_n(ngtcp2_pcg32 *pcg, uint32_t n); + +#endif /* !defined(NGTCP2_PCG_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c index af8a059d08..d63dc932e1 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c @@ -33,7 +33,9 @@ #include "ngtcp2_cid.h" #include "ngtcp2_mem.h" #include "ngtcp2_vec.h" +#include "ngtcp2_buf.h" #include "ngtcp2_unreachable.h" +#include "ngtcp2_pcg.h" int ngtcp2_pkt_chain_new(ngtcp2_pkt_chain **ppc, const ngtcp2_path *path, const ngtcp2_pkt_info *pi, const uint8_t *pkt, @@ -2571,3 +2573,294 @@ int ngtcp2_pkt_verify_reserved_bits(uint8_t c) { return (c & NGTCP2_SHORT_RESERVED_BIT_MASK) == 0 ? 0 : NGTCP2_ERR_PROTO; } + +size_t ngtcp2_pkt_split_vec_rand(ngtcp2_vec *data, size_t datacnt, + uint64_t *offsets, ngtcp2_pcg32 *pcg, + size_t max_add) { + ngtcp2_vec *v; + size_t idx; + size_t len; + + for (; max_add; --max_add) { + idx = ngtcp2_pcg32_rand_n(pcg, (uint32_t)datacnt); + assert(idx < datacnt); + + v = &data[idx]; + + if (v->len <= 1) { + continue; + } + + len = v->len / 2; + + ngtcp2_vec_split_at(&data[datacnt], v, len); + + offsets[datacnt] = offsets[idx] + len; + + ++datacnt; + } + + return datacnt; +} + +size_t ngtcp2_pkt_split_vec_at(ngtcp2_vec *data, size_t datacnt, + uint64_t *offsets, size_t at) { + assert(at < data[0].len); + + ngtcp2_vec_split_at(&data[datacnt], &data[0], at); + + offsets[datacnt] = offsets[0] + at; + + return datacnt + 1; +} + +static int pkt_tls_skip8(ngtcp2_buf *buf) { + size_t len; + + if (ngtcp2_buf_len(buf) < 1) { + return -1; + } + + len = *buf->pos++; + + if (ngtcp2_buf_len(buf) < len) { + return -1; + } + + buf->pos += len; + + return 0; +} + +static int pkt_tls_skip16(ngtcp2_buf *buf) { + uint16_t len; + + if (ngtcp2_buf_len(buf) < sizeof(len)) { + return -1; + } + + buf->pos = (uint8_t *)ngtcp2_get_uint16be(&len, buf->pos); + + if (ngtcp2_buf_len(buf) < len) { + return -1; + } + + buf->pos += len; + + return 0; +} + +int ngtcp2_pkt_find_server_name(ngtcp2_vec *server_name, const ngtcp2_vec *v) { + ngtcp2_buf buf; + uint32_t msglen; + uint16_t len; + uint16_t legacy_ver; + uint16_t ext_type; + + assert(v->len); + + ngtcp2_buf_init(&buf, v->base, v->len); + buf.last += v->len; + + /* Handshake msg_type and length */ + if (ngtcp2_buf_len(&buf) < 1 + 3) { + return 0; + } + + /* Keep parsing only when msg_type is client_hello(1). */ + if (*buf.pos++ != 1) { + return 0; + } + + buf.pos = (uint8_t *)ngtcp2_get_uint24be(&msglen, buf.pos); + + /* Truncate the buffer to msglen */ + ngtcp2_buf_trunc(&buf, msglen); + + /* legacy_version(0x0303) */ + if (ngtcp2_buf_len(&buf) < sizeof(uint16_t)) { + return 0; + } + + buf.pos = (uint8_t *)ngtcp2_get_uint16be(&legacy_ver, buf.pos); + if (legacy_ver != 0x0303) { + return 0; + } + + /* random */ + if (ngtcp2_buf_len(&buf) < 32) { + return 0; + } + + buf.pos += 32; + + /* legacy_session_id */ + if (pkt_tls_skip8(&buf) != 0) { + return 0; + } + + /* cipher_suites */ + if (pkt_tls_skip16(&buf) != 0) { + return 0; + } + + /* legacy_compression_methods */ + if (pkt_tls_skip8(&buf) != 0) { + return 0; + } + + /* extensions */ + if (ngtcp2_buf_len(&buf) < sizeof(uint16_t)) { + return 0; + } + + buf.pos = (uint8_t *)ngtcp2_get_uint16be(&len, buf.pos); + + /* Truncate the buffer to extensions length */ + ngtcp2_buf_trunc(&buf, len); + + for (;;) { + /* Verify that extension_type and length of extension_data are + available */ + if (ngtcp2_buf_len(&buf) < sizeof(uint16_t) * 2) { + return 0; + } + + /* extension_type */ + buf.pos = (uint8_t *)ngtcp2_get_uint16be(&ext_type, buf.pos); + if (ext_type != 0) { + /* extension_data */ + if (pkt_tls_skip16(&buf) != 0) { + return 0; + } + + continue; + } + + /* Server Name Indication extension(0) */ + + /* extension_data */ + buf.pos = (uint8_t *)ngtcp2_get_uint16be(&len, buf.pos); + if (ngtcp2_buf_len(&buf) < len || len < 2) { + return 0; + } + + /* Truncate the buffer to extension_data length */ + ngtcp2_buf_trunc(&buf, len); + + /* server_name_list */ + buf.pos = (uint8_t *)ngtcp2_get_uint16be(&len, buf.pos); + if (ngtcp2_buf_len(&buf) < len || len < 1 + 2) { + return 0; + } + + /* We deliberately do not check server_name_list length + 2 == + extension_data length. They most likely match, and even if + not, no problem at all. */ + + /* Truncate the buffer to server_name_list length */ + ngtcp2_buf_trunc(&buf, len); + + /* name_type */ + if (*buf.pos++ != 0) { + return 0; + } + + /* name */ + buf.pos = (uint8_t *)ngtcp2_get_uint16be(&len, buf.pos); + if (ngtcp2_buf_len(&buf) < len) { + return 0; + } + + server_name->base = buf.pos; + server_name->len = len; + + return 1; + } +} + +size_t ngtcp2_pkt_append_ping_and_padding(ngtcp2_vec *data, size_t datacnt, + ngtcp2_pcg32 *pcg, size_t n) { + uint32_t k; + + for (; n && datacnt < NGTCP2_MAX_STREAM_DATACNT;) { + k = ngtcp2_pcg32_rand_n(pcg, (uint32_t)n + 1); + if (k == 0) { + /* PING */ + data[datacnt] = (ngtcp2_vec){ + .base = NULL, + .len = 0, + }; + + ++k; + } else { + /* PADDING of k length */ + data[datacnt] = (ngtcp2_vec){ + .base = NULL, + .len = k, + }; + } + + ++datacnt; + n -= k; + } + + return datacnt; +} + +void ngtcp2_pkt_permutate_vec(ngtcp2_vec *data, size_t datacnt, + uint64_t *offsets, ngtcp2_pcg32 *pcg) { + size_t i, j; + ngtcp2_vec v; + uint64_t o; + + if (datacnt < 2) { + return; + } + + for (i = datacnt - 1; i > 0; --i) { + j = ngtcp2_pcg32_rand_n(pcg, (uint32_t)i); + + if (i == j) { + continue; + } + + v = data[i]; + data[i] = data[j]; + data[j] = v; + + o = offsets[i]; + offsets[i] = offsets[j]; + offsets[j] = o; + } +} + +size_t ngtcp2_pkt_remove_vec_partial(ngtcp2_vec *removed_data, ngtcp2_vec *data, + size_t datacnt, uint64_t *offsets, + ngtcp2_pcg32 *pcg, + const ngtcp2_vec *part) { + ngtcp2_vec *v = &data[0]; + size_t len; + + assert(datacnt); + assert(v->base < part->base); + assert(ngtcp2_vec_end(part) <= ngtcp2_vec_end(v)); + + len = (size_t)(part->base - v->base) + part->len / 2; + + ngtcp2_vec_split_at(removed_data, v, len); + + if (removed_data->len == 1) { + return datacnt; + } + + len = 1 + ngtcp2_pcg32_rand_n( + pcg, (uint32_t)ngtcp2_min_size(30, removed_data->len - 1)); + assert(len < removed_data->len); + + ngtcp2_vec_split_at(&data[datacnt], removed_data, len); + + offsets[datacnt] = offsets[0] + v->len + removed_data->len; + + return datacnt + 1; +} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h index ec72708e04..ed358dc48d 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h @@ -144,6 +144,12 @@ length of data to send is larger than this limit. */ #define NGTCP2_MIN_STREAM_DATALEN 256 +/* NGTCP2_MAX_STREAM_DATACNT is the maximum number of ngtcp2_vec that + a ngtcp2_stream can include. */ +#define NGTCP2_MAX_STREAM_DATACNT 256 + +typedef struct ngtcp2_pcg32 ngtcp2_pcg32; + typedef struct ngtcp2_pkt_retry { ngtcp2_cid odcid; uint8_t *token; @@ -1234,4 +1240,81 @@ uint8_t ngtcp2_pkt_versioned_type(uint32_t version, uint32_t pkt_type); */ uint8_t ngtcp2_pkt_get_type_long(uint32_t version, uint8_t c); +/* + * ngtcp2_pkt_split_vec_rand appends ngtcp2_vec at most |max_add| + * times to the array pointed by |data| of length |datacnt| by + * splitting the existing ngtcp2_vec into two. Which ngtcp2_vec to + * split is chosen randomly. |offsets| contains the offset of each + * ngtcp2_vec pointed by |data|. |offsets| is also updated. The + * arrays must have the capacity at least |datacnt| + |max_add|. + * |pcg| is a random number generator. + * + * This function returns |datacnt| plus the number of ngtcp2_vec that + * are appended. + */ +size_t ngtcp2_pkt_split_vec_rand(ngtcp2_vec *data, size_t datacnt, + uint64_t *offsets, ngtcp2_pcg32 *pcg, + size_t max_add); + +/* + * ngtcp2_pkt_split_vec_at splits data[0] at offset |at|, and the + * right side of ngtcp2_vec is assigned to data[datacnt]. Similarly, + * offsets[0] + |at| is assigned to offsets[datacnt]. |data| must + * point to the array of ngtcp2_vec of length |datacnt|, and |datacnt| + * must be greater than 0. |at| must be strictly less than data->len. + * + * This function returns |datacnt| + 1. + */ +size_t ngtcp2_pkt_split_vec_at(ngtcp2_vec *data, size_t datacnt, + uint64_t *offsets, size_t at); + +/* + * ngtcp2_pkt_find_server_name searches TLS Server Name Indication + * extension in |v|. If it is found, assign the portion of server + * name to the object pointed by |server_name|, and returns nonzero. + * Otherwise, it returns 0. If |v| contains the extension partially, + * the function returns 0. |v| must not be empty. + */ +int ngtcp2_pkt_find_server_name(ngtcp2_vec *server_name, const ngtcp2_vec *v); + +/* + * ngtcp2_pkt_append_ping_and_padding appends PING and PADDING frames + * to the array pointed by |data| of length |datacnt|. The capacity + * of array must be at least NGTCP2_MAX_STREAM_DATACNT. |n| is the + * number of bytes available for serialized PING and PADDING frames. + * |pcg| is a random number generator. Which frames to add is + * determined randomly. + * + * The special encoding of PING and PADDING frames into ngtcp2_vec: + * + * - .base is NULL. + * - If .len is 0, it represents PING. Otherwise, PADDING of .len + * length. + * + * This function returns |datacnt| plus the number of frames added. + */ +size_t ngtcp2_pkt_append_ping_and_padding(ngtcp2_vec *data, size_t datacnt, + ngtcp2_pcg32 *pcg, size_t n); + +/* + * ngtcp2_pkt_permutate_vec permutates |data| and |offsets|, both have + * the |datacnt| elements. |pcg| is a random number generator. + */ +void ngtcp2_pkt_permutate_vec(ngtcp2_vec *data, size_t datacnt, + uint64_t *offsets, ngtcp2_pcg32 *pcg); + +/* + * ngtcp2_pkt_remove_vec_partial removes the portion of data that + * contains part of |part| from data[0]. This function does not + * remove whole range of |part|. The length of removed data is chosen + * randomly. The removed portion of data is assigned to the object + * pointed by |removed_data|. If there is data located after the + * removed data, it will be assigned to data[datacnt]. + * offsets[datacnt] is also updated, and the function returns + * |datacnt| + 1. Otherwise, this function returns |datacnt|. + */ +size_t ngtcp2_pkt_remove_vec_partial(ngtcp2_vec *removed_data, ngtcp2_vec *data, + size_t datacnt, uint64_t *offsets, + ngtcp2_pcg32 *pcg, const ngtcp2_vec *part); + #endif /* !defined(NGTCP2_PKT_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c new file mode 100644 index 0000000000..efedc3daa7 --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c @@ -0,0 +1,77 @@ +/* + * ngtcp2 + * + * Copyright (c) 2025 ngtcp2 contributors + * Copyright (c) 2023 nghttp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include "ngtcp2_ratelim.h" + +#include + +#include "ngtcp2_macro.h" + +void ngtcp2_ratelim_init(ngtcp2_ratelim *rlim, uint64_t burst, uint64_t rate, + ngtcp2_tstamp ts) { + *rlim = (ngtcp2_ratelim){ + .burst = burst, + .rate = rate, + .tokens = burst, + .ts = ts, + }; +} + +/* ratelim_update updates rlim->tokens with the current |ts|. */ +static void ratelim_update(ngtcp2_ratelim *rlim, ngtcp2_tstamp ts) { + uint64_t d, gain; + + assert(ts >= rlim->ts); + + if (ts == rlim->ts) { + return; + } + + d = ts - rlim->ts; + rlim->ts = ts; + + gain = rlim->rate * d + rlim->carry; + + rlim->tokens += gain / NGTCP2_SECONDS; + + if (rlim->tokens < rlim->burst) { + rlim->carry = gain % NGTCP2_SECONDS; + } else { + rlim->tokens = rlim->burst; + rlim->carry = 0; + } +} + +int ngtcp2_ratelim_drain(ngtcp2_ratelim *rlim, uint64_t n, ngtcp2_tstamp ts) { + ratelim_update(rlim, ts); + + if (rlim->tokens < n) { + return -1; + } + + rlim->tokens -= n; + + return 0; +} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h new file mode 100644 index 0000000000..14485c562d --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h @@ -0,0 +1,59 @@ +/* + * ngtcp2 + * + * Copyright (c) 2025 ngtcp2 contributors + * Copyright (c) 2023 nghttp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#ifndef NGTCP2_RATELIM_H +#define NGTCP2_RATELIM_H + +#ifdef HAVE_CONFIG_H +# include +#endif /* HAVE_CONFIG_H */ + +#include + +typedef struct ngtcp2_ratelim { + /* burst is the maximum number of tokens. */ + uint64_t burst; + /* rate is the rate of token generation measured by token / + second. */ + uint64_t rate; + /* tokens is the amount of tokens available to drain. */ + uint64_t tokens; + /* carry is the partial token gained in sub-second period. It is + added to the computation in the next update round. */ + uint64_t carry; + /* ts is the last timestamp that is known to this object. */ + ngtcp2_tstamp ts; +} ngtcp2_ratelim; + +/* ngtcp2_ratelim_init initializes |rlim| with the given + parameters. */ +void ngtcp2_ratelim_init(ngtcp2_ratelim *rlim, uint64_t burst, uint64_t rate, + ngtcp2_tstamp ts); + +/* ngtcp2_ratelim_drain drains |n| from rlim->tokens. It returns 0 if + it succeeds, or -1. */ +int ngtcp2_ratelim_drain(ngtcp2_ratelim *rlim, uint64_t n, ngtcp2_tstamp ts); + +#endif /* !defined(NGTCP2_RATELIM_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c index 853f1d650e..ef1938ea63 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c @@ -162,8 +162,8 @@ static int rob_write_data(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data, return 0; } -int ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data, - size_t datalen) { +ngtcp2_ssize ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, + const uint8_t *data, size_t datalen) { int rv; ngtcp2_rob_gap *g; ngtcp2_range m, l, r; @@ -172,6 +172,8 @@ int ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data, .end = offset + datalen, }; ngtcp2_ksl_it it; + ngtcp2_ssize nwrite = 0; + size_t mlen; it = ngtcp2_ksl_lower_bound_search(&rob->gapksl, &q, ngtcp2_ksl_range_exclusive_search); @@ -180,7 +182,9 @@ int ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data, g = ngtcp2_ksl_it_get(&it); m = ngtcp2_range_intersect(&q, &g->range); - if (!ngtcp2_range_len(&m)) { + + mlen = (size_t)ngtcp2_range_len(&m); + if (mlen == 0) { break; } @@ -188,12 +192,13 @@ int ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data, ngtcp2_ksl_remove_hint(&rob->gapksl, &it, &it, &g->range); ngtcp2_rob_gap_del(g, rob->mem); - rv = rob_write_data(rob, m.begin, data + (m.begin - offset), - (size_t)ngtcp2_range_len(&m)); + rv = rob_write_data(rob, m.begin, data + (m.begin - offset), mlen); if (rv != 0) { return rv; } + nwrite += (ngtcp2_ssize)mlen; + continue; } @@ -222,16 +227,17 @@ int ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data, g->range = r; } - rv = rob_write_data(rob, m.begin, data + (m.begin - offset), - (size_t)ngtcp2_range_len(&m)); + rv = rob_write_data(rob, m.begin, data + (m.begin - offset), mlen); if (rv != 0) { return rv; } + nwrite += (ngtcp2_ssize)mlen; + ngtcp2_ksl_it_next(&it); } - return 0; + return nwrite; } void ngtcp2_rob_remove_prefix(ngtcp2_rob *rob, uint64_t offset) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.h index d53b5160b1..60a1c5b46a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.h @@ -138,14 +138,14 @@ void ngtcp2_rob_free(ngtcp2_rob *rob); * ngtcp2_rob_push adds new data pointed by |data| of length |datalen| * at the stream offset |offset|. * - * This function returns 0 if it succeeds, or one of the following - * negative error codes: + * This function returns the number of data newly buffered if it + * succeeds, or one of the following negative error codes: * * NGTCP2_ERR_NOMEM * Out of memory */ -int ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data, - size_t datalen); +ngtcp2_ssize ngtcp2_rob_push(ngtcp2_rob *rob, uint64_t offset, + const uint8_t *data, size_t datalen); /* * ngtcp2_rob_remove_prefix removes gap up to |offset|, exclusive. It diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c index b50f482bc7..7df1c197db 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c @@ -802,8 +802,8 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, if (conn && (conn->flags & NGTCP2_CONN_FLAG_KEY_UPDATE_NOT_CONFIRMED) && (conn->flags & NGTCP2_CONN_FLAG_KEY_UPDATE_INITIATOR) && largest_ack >= conn->pktns.crypto.tx.ckm->pkt_num) { - conn->flags &= (uint32_t) ~(NGTCP2_CONN_FLAG_KEY_UPDATE_NOT_CONFIRMED | - NGTCP2_CONN_FLAG_KEY_UPDATE_INITIATOR); + conn->flags &= (uint32_t)~(NGTCP2_CONN_FLAG_KEY_UPDATE_NOT_CONFIRMED | + NGTCP2_CONN_FLAG_KEY_UPDATE_INITIATOR); conn->crypto.key_update.confirmed_ts = ts; ngtcp2_log_info(rtb->log, NGTCP2_LOG_EVENT_CRY, "key update confirmed"); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.c index 77a68bd112..f774504282 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.c @@ -37,6 +37,10 @@ void ngtcp2_settings_default_versioned(int settings_version, switch (settings_version) { case NGTCP2_SETTINGS_VERSION: + settings->glitch_ratelim_burst = NGTCP2_DEFAULT_GLITCH_RATELIM_BURST; + settings->glitch_ratelim_rate = NGTCP2_DEFAULT_GLITCH_RATELIM_RATE; + /* fall through */ + case NGTCP2_SETTINGS_V2: case NGTCP2_SETTINGS_V1: settings->cc_algo = NGTCP2_CC_ALGO_CUBIC; settings->initial_rtt = NGTCP2_DEFAULT_INITIAL_RTT; @@ -82,6 +86,9 @@ size_t ngtcp2_settingslen_version(int settings_version) { switch (settings_version) { case NGTCP2_SETTINGS_VERSION: return sizeof(settings); + case NGTCP2_SETTINGS_V2: + return offsetof(ngtcp2_settings, pmtud_probeslen) + + sizeof(settings.pmtud_probeslen); case NGTCP2_SETTINGS_V1: return offsetof(ngtcp2_settings, initial_pkt_num) + sizeof(settings.initial_pkt_num); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h index 80466d43e4..caa0fb58c5 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h @@ -31,6 +31,13 @@ #include +/* NGTCP2_DEFAULT_GLITCH_RATELIM_BURST is the maximum number of tokens + in glitch rate limiter. It is also the initial value. */ +#define NGTCP2_DEFAULT_GLITCH_RATELIM_BURST 1000 +/* NGTCP2_DEFAULT_GLITCH_RATELIM_RATE is the rate of tokens generated + per second for glitch rate limiter. */ +#define NGTCP2_DEFAULT_GLITCH_RATELIM_RATE 33 + /* * ngtcp2_settings_convert_to_latest converts |src| of version * |settings_version| to the latest version NGTCP2_SETTINGS_VERSION. diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c index 70ec6ee2fe..faa4177132 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c @@ -123,9 +123,10 @@ static int strm_rob_heavily_fragmented(const ngtcp2_rob *rob) { return ngtcp2_ksl_len(&rob->gapksl) >= 1000; } -int ngtcp2_strm_recv_reordering(ngtcp2_strm *strm, const uint8_t *data, - size_t datalen, uint64_t offset) { +ngtcp2_ssize ngtcp2_strm_recv_reordering(ngtcp2_strm *strm, const uint8_t *data, + size_t datalen, uint64_t offset) { int rv; + ngtcp2_ssize nwrite; if (strm->rx.rob == NULL) { rv = strm_rob_init(strm); @@ -138,16 +139,16 @@ int ngtcp2_strm_recv_reordering(ngtcp2_strm *strm, const uint8_t *data, } } - rv = ngtcp2_rob_push(strm->rx.rob, offset, data, datalen); - if (rv != 0) { - return rv; + nwrite = ngtcp2_rob_push(strm->rx.rob, offset, data, datalen); + if (nwrite < 0) { + return nwrite; } if (strm_rob_heavily_fragmented(strm->rx.rob)) { return NGTCP2_ERR_INTERNAL; } - return 0; + return nwrite; } void ngtcp2_strm_update_rx_offset(ngtcp2_strm *strm, uint64_t offset) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h index c72f8b9dc8..1a1e8fd3b7 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h @@ -208,14 +208,14 @@ uint64_t ngtcp2_strm_rx_offset(const ngtcp2_strm *strm); /* * ngtcp2_strm_recv_reordering handles reordered data. * - * It returns 0 if it succeeds, or one of the following negative error - * codes: + * It returns the number of bytes newly buffered if it succeeds, or + * one of the following negative error codes: * * NGTCP2_ERR_NOMEM * Out of memory */ -int ngtcp2_strm_recv_reordering(ngtcp2_strm *strm, const uint8_t *data, - size_t datalen, uint64_t offset); +ngtcp2_ssize ngtcp2_strm_recv_reordering(ngtcp2_strm *strm, const uint8_t *data, + size_t datalen, uint64_t offset); /* * ngtcp2_strm_update_rx_offset tells that data up to |offset| bytes diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c index dbca8691d6..ada027b909 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c @@ -217,3 +217,14 @@ size_t ngtcp2_vec_copy_at_most(ngtcp2_vec *dst, size_t dstcnt, void ngtcp2_vec_copy(ngtcp2_vec *dst, const ngtcp2_vec *src, size_t cnt) { memcpy(dst, src, sizeof(ngtcp2_vec) * cnt); } + +void ngtcp2_vec_split_at(ngtcp2_vec *dst, ngtcp2_vec *src, size_t offset) { + assert(offset < src->len); + + *dst = (ngtcp2_vec){ + .base = src->base + offset, + .len = src->len - offset, + }; + + src->len = offset; +} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h index d90a3204a9..af9b4d6445 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h @@ -96,4 +96,18 @@ size_t ngtcp2_vec_copy_at_most(ngtcp2_vec *dst, size_t dstcnt, */ void ngtcp2_vec_copy(ngtcp2_vec *dst, const ngtcp2_vec *src, size_t cnt); +/* + * ngtcp2_vec_split_at splits |src| at the |offset|. Caller must + * ensure that offset < src->len. This function assigns the right + * part of vector into |dst|. + */ +void ngtcp2_vec_split_at(ngtcp2_vec *dst, ngtcp2_vec *src, size_t offset); + +/* + * ngtcp2_vec_end returns the one beyond the last offset of |v|. + */ +static inline uint8_t *ngtcp2_vec_end(const ngtcp2_vec *v) { + return v->base + v->len; +} + #endif /* !defined(NGTCP2_VEC_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h index b0cc867cde..d58a6f1240 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h @@ -1704,7 +1704,8 @@ typedef enum ngtcp2_token_type { #define NGTCP2_SETTINGS_V1 1 #define NGTCP2_SETTINGS_V2 2 -#define NGTCP2_SETTINGS_VERSION NGTCP2_SETTINGS_V2 +#define NGTCP2_SETTINGS_V3 3 +#define NGTCP2_SETTINGS_VERSION NGTCP2_SETTINGS_V3 /** * @struct @@ -1917,6 +1918,23 @@ typedef struct ngtcp2_settings { * field has been available since v1.4.0. */ size_t pmtud_probeslen; + /* The following fields have been added since NGTCP2_SETTINGS_V3. */ + /** + * :member:`glitch_ratelim_burst` is the maximum number of tokens + * available to "glitch" rate limiter. "glitch" is a suspicious + * activity from a remote endpoint. If detected, certain amount of + * tokens are consumed. If no tokens are available to consume, the + * connection is closed. The rate of token generation is specified + * by :member:`glitch_ratelim_rate`. This field has been available + * since v1.15.0. + */ + uint64_t glitch_ratelim_burst; + /** + * :member:`glitch_ratelim_rate` is the number of tokens generated + * per second. See :member:`glitch_ratelim_burst` for "glitch" rate + * limiter. This field has been available since v1.15.0. + */ + uint64_t glitch_ratelim_rate; } ngtcp2_settings; /** @@ -3000,9 +3018,8 @@ typedef int (*ngtcp2_begin_path_validation)(ngtcp2_conn *conn, uint32_t flags, * an application the outcome of path validation. |flags| is zero or * more of :macro:`NGTCP2_PATH_VALIDATION_FLAG_* * `. |path| is the path that was - * validated. |old_path| is the path that is previously used before a - * local endpoint has migrated to |path| if |old_path| is not NULL. - * If |res| is + * validated. |fallback_path|, if not NULL, is the path that is used + * if the path validation failed. If |res| is * :enum:`ngtcp2_path_validation_result.NGTCP2_PATH_VALIDATION_RESULT_SUCCESS`, * the path validation succeeded. If |res| is * :enum:`ngtcp2_path_validation_result.NGTCP2_PATH_VALIDATION_RESULT_FAILURE`, @@ -3014,7 +3031,7 @@ typedef int (*ngtcp2_begin_path_validation)(ngtcp2_conn *conn, uint32_t flags, */ typedef int (*ngtcp2_path_validation)(ngtcp2_conn *conn, uint32_t flags, const ngtcp2_path *path, - const ngtcp2_path *old_path, + const ngtcp2_path *fallback_path, ngtcp2_path_validation_result res, void *user_data); @@ -5598,6 +5615,77 @@ NGTCP2_EXTERN size_t ngtcp2_conn_get_send_quantum(ngtcp2_conn *conn); NGTCP2_EXTERN size_t ngtcp2_conn_get_stream_loss_count(ngtcp2_conn *conn, int64_t stream_id); +/** + * @functypedef + * + * :type:`ngtcp2_write_pkt` is a callback function to write a single + * packet in the buffer pointed by |dest| of length |destlen|. The + * implementation should use `ngtcp2_conn_write_pkt`, + * `ngtcp2_conn_writev_stream`, `ngtcp2_conn_writev_datagram`, or + * their variants to write the packet. |path|, |pi|, |dest|, + * |destlen|, and |ts| should be directly passed to those functions. + * If the callback succeeds, it should return the number of bytes + * written to the buffer. In general, this callback function should + * return the value that the above mentioned functions returned except + * for the following error codes: + * + * - :macro:`NGTCP2_ERR_STREAM_DATA_BLOCKED` + * - :macro:`NGTCP2_ERR_STREAM_SHUT_WR` + * - :macro:`NGTCP2_ERR_STREAM_NOT_FOUND` + * + * Those error codes should be handled by an application. If any + * error occurred outside those functions, return + * :macro:`NGTCP2_ERR_CALLBACK_FAILURE`. If no packet is produced, + * return 0. + * + * Because GSO requires that the aggregated packets have the same + * length, :macro:`NGTCP2_WRITE_STREAM_FLAG_PADDING` (or + * :macro:`NGTCP2_WRITE_DATAGRAM_FLAG_PADDING` if + * `ngtcp2_conn_writev_datagram` is used) is recommended. + * + * This callback function has been available since v1.15.0. + */ +typedef ngtcp2_ssize (*ngtcp2_write_pkt)(ngtcp2_conn *conn, ngtcp2_path *path, + ngtcp2_pkt_info *pi, uint8_t *dest, + size_t destlen, ngtcp2_tstamp ts, + void *user_data); + +/** + * @function + * + * `ngtcp2_conn_write_aggregate_pkt` is a helper function to write + * multiple packets in the provided buffer, which is suitable to be + * sent at once in GSO. This function returns the number of bytes + * written to the buffer pointed by |buf| of length |buflen|. + * |buflen| must be at least + * `ngtcp2_conn_get_path_max_tx_udp_payload_size(conn) + * ` bytes long. It is + * recommended to pass the buffer at least + * `ngtcp2_conn_get_max_tx_udp_payload_size(conn) + * ` bytes in order to send a + * PMTUD packet. This function only writes multiple packets if the + * first packet is `ngtcp2_conn_get_path_max_tx_udp_payload_size(conn) + * ` bytes long. The + * application can adjust the length of the buffer to limit the number + * of packets to aggregate. If this function returns positive + * integer, all packets share the same :type:`ngtcp2_path` and + * :type:`ngtcp2_pkt_info` values, and they are assigned to the + * objects pointed by |path| and |pi| respectively. The length of all + * packets other than the last packet is assigned to |*pgsolen|. The + * length of last packet is equal to or less than |*pgsolen|. + * |write_pkt| must write a single packet. After all packets are + * written, this function calls `ngtcp2_conn_update_pkt_tx_time`. + * + * This function returns the number of bytes written to the buffer, or + * a negative error code returned by |write_pkt|. + * + * This function has been available since v1.15.0. + */ +NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( + ngtcp2_conn *conn, ngtcp2_path *path, int pkt_info_version, + ngtcp2_pkt_info *pi, uint8_t *buf, size_t buflen, size_t *pgsolen, + ngtcp2_write_pkt write_pkt, ngtcp2_tstamp ts); + /** * @function * @@ -5680,15 +5768,19 @@ NGTCP2_EXTERN void ngtcp2_path_storage_zero(ngtcp2_path_storage *ps); * values. First this function fills |settings| with 0, and set the * default value to the following fields: * - * * :type:`cc_algo ` = + * * :member:`cc_algo ` = * :enum:`ngtcp2_cc_algo.NGTCP2_CC_ALGO_CUBIC` - * * :type:`initial_rtt ` = + * * :member:`initial_rtt ` = * :macro:`NGTCP2_DEFAULT_INITIAL_RTT` - * * :type:`ack_thresh ` = 2 - * * :type:`max_tx_udp_payload_size + * * :member:`ack_thresh ` = 2 + * * :member:`max_tx_udp_payload_size * ` = 1452 - * * :type:`handshake_timeout ` = + * * :member:`handshake_timeout ` = * ``UINT64_MAX`` + * * :member:`glitch_ratelim_burst + * ` = 1000 + * * :member:`glitch_ratelim_rate + * ` = 33 */ NGTCP2_EXTERN void ngtcp2_settings_default_versioned(int settings_version, ngtcp2_settings *settings); @@ -5700,15 +5792,15 @@ NGTCP2_EXTERN void ngtcp2_settings_default_versioned(int settings_version, * default values. First this function fills |params| with 0, and set * the default value to the following fields: * - * * :type:`max_udp_payload_size + * * :member:`max_udp_payload_size * ` = * :macro:`NGTCP2_DEFAULT_MAX_RECV_UDP_PAYLOAD_SIZE` - * * :type:`ack_delay_exponent + * * :member:`ack_delay_exponent * ` = * :macro:`NGTCP2_DEFAULT_ACK_DELAY_EXPONENT` - * * :type:`max_ack_delay ` = + * * :member:`max_ack_delay ` = * :macro:`NGTCP2_DEFAULT_MAX_ACK_DELAY` - * * :type:`active_connection_id_limit + * * :member:`active_connection_id_limit * ` = * :macro:`NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT` */ @@ -5980,6 +6072,17 @@ NGTCP2_EXTERN uint32_t ngtcp2_select_version(const uint32_t *preferred_versions, #define ngtcp2_conn_get_conn_info(CONN, CINFO) \ ngtcp2_conn_get_conn_info_versioned((CONN), NGTCP2_CONN_INFO_VERSION, (CINFO)) +/* + * `ngtcp2_conn_write_aggregate_pkt` is a wrapper around + * `ngtcp2_conn_write_aggregate_pkt_versioned` to set the correct + * struct version. + */ +#define ngtcp2_conn_write_aggregate_pkt(CONN, PATH, PI, BUF, BUFLEN, PGSOLEN, \ + WRITE_PKT, TS) \ + ngtcp2_conn_write_aggregate_pkt_versioned( \ + (CONN), (PATH), NGTCP2_PKT_INFO_VERSION, (PI), (BUF), (BUFLEN), (PGSOLEN), \ + (WRITE_PKT), (TS)) + /* * `ngtcp2_settings_default` is a wrapper around * `ngtcp2_settings_default_versioned` to set the correct struct diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index 533f6d5ef6..4bc5a6a299 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.14.0" +#define NGTCP2_VERSION "1.15.0" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x010e00 +#define NGTCP2_VERSION_NUM 0x010f00 #endif /* !defined(NGTCP2_VERSION_H) */ From 88a4bc1f54615699af9a48c703245d00a1f67090 Mon Sep 17 00:00:00 2001 From: JP Mens Date: Fri, 29 Aug 2025 16:29:03 +0200 Subject: [PATCH 068/675] Clarify -j doesn't apply to TSIG keys. --- doc/man_keymgr.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/man_keymgr.rst b/doc/man_keymgr.rst index fbde238ca8..3afba90362 100644 --- a/doc/man_keymgr.rst +++ b/doc/man_keymgr.rst @@ -59,7 +59,7 @@ Options Extended output (listing of keys with full description). **-j**, **--json** - Print the zones or keys in JSON format. + Print the zones or keys (not TSIG keys) in JSON format. **-l**, **--list** Print the list of zones that have at least one key stored in the configured KASP From fd4b8a32be95258c011e9f3cb63b37f58d50d7e3 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 29 Aug 2025 20:18:38 +0200 Subject: [PATCH 069/675] doc: remove misleading note for mod-cookies --- src/knot/modules/cookies/cookies.rst | 5 ----- src/knot/modules/rrl/rrl.rst | 4 ++-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/knot/modules/cookies/cookies.rst b/src/knot/modules/cookies/cookies.rst index f8eb7e9ea1..c767a25e9f 100644 --- a/src/knot/modules/cookies/cookies.rst +++ b/src/knot/modules/cookies/cookies.rst @@ -16,11 +16,6 @@ support DNS Cookies, otherwise they are not used. - ``presence`` – The number of queries containing the COOKIE option. - ``dropped`` – The number of dropped queries due to the slip limit. -.. WARNING:: - For effective module operation the :ref:`RRL` module must also - be enabled and configured after :ref:`Cookies`. See - :ref:`query-modules` how to configure modules. - Example ------- diff --git a/src/knot/modules/rrl/rrl.rst b/src/knot/modules/rrl/rrl.rst index 04c37edadd..34a190707c 100644 --- a/src/knot/modules/rrl/rrl.rst +++ b/src/knot/modules/rrl/rrl.rst @@ -26,8 +26,8 @@ be configured per zone. - ``dropped-time`` – The number of dropped non-UDP packets due to the time rate limit. .. NOTE:: - If the :ref:`Cookies` module is active, RRL is not applied - to UDP responses with a valid DNS cookie. + If the :ref:`Cookies` module is active and configured before + this module, RRL is not applied to UDP responses with a valid DNS cookie. .. NOTE:: The time limiting applies even to handshakes of incoming authorized requests From c630ebd49d67c76654ab1c9867c2758804711702 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 19 Aug 2025 17:22:19 +0200 Subject: [PATCH 070/675] libknot/rrdump: correct error code instead of always ESPACE --- src/libknot/rrset-dump.c | 90 +++++++++++++++++++++------------------- 1 file changed, 48 insertions(+), 42 deletions(-) diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c index fcf98cb4c6..e5329f7f36 100644 --- a/src/libknot/rrset-dump.c +++ b/src/libknot/rrset-dump.c @@ -46,11 +46,11 @@ /*! \brief macros with repetitive (mostly error-checking) code of methods from first section of this file */ #define CHECK_PRET if (p->ret < 0) return; -#define CHECK_INMAX(mininmax) if (p->in_max < (mininmax)) { p->ret = -1; return; } -#define CHECK_RET_OUTMAX_SNPRINTF if (ret <= 0 || (size_t)ret >= p->out_max) { p->ret = -1; return; } -#define STRING_TERMINATION if (p->out_max > 0) { *p->out = '\0'; } else { p->ret = -1; return; } -#define FILL_IN_INPUT(pdata) if (memcpy(&(pdata), p->in, in_len) == NULL) { p->ret = -1; return; } -#define CHECK_RET_POSITIVE if (ret <= 0) { p->ret = -1; return; } +#define CHECK_INMAX(mininmax) if (p->in_max < (mininmax)) { p->ret = KNOT_EMALF; return; } +#define CHECK_RET_OUTMAX_SNPRINTF if (ret <= 0 || (size_t)ret >= p->out_max) { p->ret = KNOT_ESPACE; return; } +#define STRING_TERMINATION if (p->out_max > 0) { *p->out = '\0'; } else { p->ret = KNOT_ESPACE; return; } +#define FILL_IN_INPUT(pdata) if (memcpy(&(pdata), p->in, in_len) == NULL) { p->ret = KNOT_ERROR; return; } +#define CHECK_RET_POSITIVE if (ret <= 0) { p->ret = (ret < -1 ? ret : KNOT_ESPACE); return; } #define SNPRINTF_CHECK(ret, max_len) \ if ((ret) < 0 || (size_t)(ret) >= (max_len)) { \ @@ -97,13 +97,13 @@ static void dump_string(rrset_dump_params_t *p, const char *str) // Check input size (+ 1 termination). if (in_len >= p->out_max) { - p->ret = -1; + p->ret = KNOT_ESPACE; return; } // Copy string including termination '\0'! if (memcpy(p->out, str, in_len + 1) == NULL) { - p->ret = -1; + p->ret = KNOT_ERROR; return; } @@ -210,7 +210,7 @@ static void wire_ipv4_to_str(rrset_dump_params_t *p) // Write address. if (knot_inet_ntop(AF_INET, &addr4, p->out, p->out_max) == NULL) { - p->ret = -1; + p->ret = KNOT_ESPACE; return; } out_len = strlen(p->out); @@ -237,7 +237,7 @@ static void wire_ipv6_to_str(rrset_dump_params_t *p) // Write address. if (knot_inet_ntop(AF_INET6, &addr6, p->out, p->out_max) == NULL) { - p->ret = -1; + p->ret = KNOT_ESPACE; return; } out_len = strlen(p->out); @@ -288,7 +288,7 @@ static int hex_encode(const uint8_t *in, static const char hex[] = "0123456789ABCDEF"; if (out_len < 2 * in_len) { - return -1; + return KNOT_ESPACE; } for (uint32_t i = 0; i < in_len; i++) { @@ -309,7 +309,7 @@ static int hex_encode_alloc(const uint8_t *in, *out = malloc(out_len); if (*out == NULL) { - return -1; + return KNOT_ENOMEM; } // Encoding data. @@ -322,14 +322,14 @@ static int num48_encode(const uint8_t *in, const uint32_t out_len) { if (in_len != 6) { - return -1; + return KNOT_EMALF; } uint64_t data = knot_wire_read_u48(in); int ret = snprintf((char *)out, out_len, "%"PRIu64"", data); if (ret <= 0 || (size_t)ret >= out_len) { - return -1; + return KNOT_ESPACE; } return ret; @@ -400,7 +400,7 @@ static void wire_data_encode_to_str(rrset_dump_params_t *p, if ((size_t)src_len > p->out_max) { free(buf); - p->ret = -1; + p->ret = KNOT_ESPACE; return; } @@ -448,7 +448,7 @@ static void wire_len_data_encode_to_str(rrset_dump_params_t *p, in_len = knot_wire_read_u32(p->in); break; default: - p->ret = -1; + p->ret = KNOT_ERROR; return; } @@ -517,7 +517,7 @@ static void wire_data_omit(rrset_dump_params_t *p, in_len = knot_wire_read_u16(p->in); break; default: - p->ret = -1; + p->ret = KNOT_ERROR; return; } @@ -541,7 +541,7 @@ static void wire_data_omit(rrset_dump_params_t *p, const size_t omlen = strlen(omit_message); if (p->out_max < omlen) { - p->ret = -1; + p->ret = KNOT_ESPACE; return; } @@ -660,7 +660,7 @@ static void wire_text_to_str(rrset_dump_params_t *p, size_t in_len, // Print text character. if (p->out_max == 0) { - p->ret = -1; + p->ret = KNOT_ESPACE; return; } @@ -738,7 +738,7 @@ static uint32_t wire_time_to_val(rrset_dump_params_t *p) if (p->ret < 0 || p->in_max < in_len || memcpy(&data, p->in, in_len) == NULL) { - p->ret = -1; + p->ret = KNOT_EMALF; return 0; } @@ -794,7 +794,7 @@ static void wire_bitmap_to_str(rrset_dump_params_t *p) // Check window length (length must follow). if (i >= in_len) { - p->ret = -1; + p->ret = KNOT_EMALF; return; } @@ -803,7 +803,7 @@ static void wire_bitmap_to_str(rrset_dump_params_t *p) // Check window length (len bytes must follow). if (i + bitmap_len > in_len) { - p->ret = -1; + p->ret = KNOT_EMALF; return; } @@ -852,7 +852,7 @@ static void wire_dname_to_str(rrset_dump_params_t *p) if (p->style->ascii_to_idn == NULL) { char *dname_str = knot_dname_to_str(p->out, p->in, p->out_max); if (dname_str == NULL) { - p->ret = -1; + p->ret = KNOT_ESPACE; return; } out_len = strlen(dname_str); @@ -913,18 +913,18 @@ static void wire_apl_to_str(rrset_dump_params_t *p) memset(&addr4, 0, sizeof(addr4)); if (afdlen > sizeof(addr4.s_addr) || afdlen > p->in_max) { - p->ret = -1; + p->ret = KNOT_EMALF; return; } if (memcpy(&(addr4.s_addr), p->in, afdlen) == NULL) { - p->ret = -1; + p->ret = KNOT_ERROR; return; } // Write address. if (knot_inet_ntop(AF_INET, &addr4, p->out, p->out_max) == NULL) { - p->ret = -1; + p->ret = KNOT_ESPACE; return; } out_len = strlen(p->out); @@ -934,25 +934,25 @@ static void wire_apl_to_str(rrset_dump_params_t *p) memset(&addr6, 0, sizeof(addr6)); if (afdlen > sizeof(addr6.s6_addr) || afdlen > p->in_max) { - p->ret = -1; + p->ret = KNOT_EMALF; return; } if (memcpy(&(addr6.s6_addr), p->in, afdlen) == NULL) { - p->ret = -1; + p->ret = KNOT_ERROR; return; } // Write address. if (knot_inet_ntop(AF_INET6, &addr6, p->out, p->out_max) == NULL) { - p->ret = -1; + p->ret = KNOT_ESPACE; return; } out_len = strlen(p->out); break; default: - p->ret = -1; + p->ret = KNOT_EMALF; return; } p->in += afdlen; @@ -1208,7 +1208,7 @@ static void wire_loc_to_str(rrset_dump_params_t *p) // Version check. if (version != 0) { wire_unknown_to_str(p); - p->ret = -1; + p->ret = KNOT_EMALF; return; } @@ -1222,7 +1222,7 @@ static void wire_loc_to_str(rrset_dump_params_t *p) // Check if all reads are correct. if (wire.error != KNOT_EOK) { - p->ret = -1; + p->ret = KNOT_EMALF; return; } @@ -1282,7 +1282,7 @@ static void wire_loc_to_str(rrset_dump_params_t *p) // Sizes check. if (size_m > 9 || size_e > 9 || hpre_m > 9 || hpre_e > 9 || vpre_m > 9 || vpre_e > 9) { - p->ret = -1; + p->ret = KNOT_EMALF; return; } @@ -1344,7 +1344,7 @@ static void wire_gateway_to_str(rrset_dump_params_t *p) wire_dname_to_str(p); break; default: - p->ret = -1; + p->ret = KNOT_EMALF; } CHECK_PRET @@ -1369,7 +1369,7 @@ static void wire_l64_to_str(rrset_dump_params_t *p) // Check input size (64-bit identifier). if (p->in_max != 8) { - p->ret = -1; + p->ret = KNOT_EMALF; return; } @@ -1483,7 +1483,7 @@ static void wire_value_list_to_str(rrset_dump_params_t *p, CHECK_PRET } if (expect_end != p->in) { - p->ret = -1; + p->ret = KNOT_EMALF; } } @@ -1550,11 +1550,11 @@ static void wire_svcparam_to_str(rrset_dump_params_t *p) CHECK_PRET break; case KNOT_SVCB_PARAM_NDALPN: - p->ret = -1; // must not have value + p->ret = KNOT_EMALF; // must not have value break; case KNOT_SVCB_PARAM_PORT: if (val_len != sizeof(uint16_t)) { - p->ret = -1; + p->ret = KNOT_EMALF; } else { wire_num16_to_str(p); } @@ -1572,7 +1572,7 @@ static void wire_svcparam_to_str(rrset_dump_params_t *p) wire_text_to_str(p, val_len, NULL, true, false); break; case KNOT_SVCB_PARAM_OHTTP: - p->ret = -1; // must not have value + p->ret = KNOT_EMALF; // must not have value break; default: wire_text_to_str(p, val_len, NULL, true, false); @@ -2389,7 +2389,10 @@ int knot_rrset_txt_dump_data(const knot_rrset_t *rrset, } // Terminate the string just in case. - if (ret < 0 || ret >= maxlen) { + if (ret < 0) { + return ret; + } + if (ret >= maxlen) { return KNOT_ESPACE; } dst[ret] = '\0'; @@ -2441,7 +2444,10 @@ int knot_rrset_txt_dump_edns(const knot_rrset_t *rrset, } // Terminate the string just in case. - if (ret < 0 || ret >= maxlen) { + if (ret < 0) { + return ret; + } + if (ret >= maxlen) { return KNOT_ESPACE; } dst[ret] = '\0'; @@ -2560,7 +2566,7 @@ static int rrset_txt_dump(const knot_rrset_t *rrset, int ret = knot_rrset_txt_dump_header(rrset, ttl, dst + len, maxlen - len, style); if (ret < 0) { - return KNOT_ESPACE; + return ret; } len += ret; @@ -2568,7 +2574,7 @@ static int rrset_txt_dump(const knot_rrset_t *rrset, ret = knot_rrset_txt_dump_data(rrset, i, dst + len, maxlen - len, style); if (ret < 0) { - return KNOT_ESPACE; + return ret; } len += ret; From 412e5bd0ba9dccc1ad036374a2750b7d3c6e9e09 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 19 Aug 2025 17:25:56 +0200 Subject: [PATCH 071/675] libknot/rrdump: write syntactically or semantically malformed RRs in generic format --- src/libknot/rrset-dump.c | 9 ++ .../malformed_rr/data/journal/data.mdb | Bin 0 -> 12288 bytes .../malformed_rr/data/journal/lock.mdb | Bin 0 -> 512 bytes .../tests/records/malformed_rr/test.py | 80 ++++++++++++++++++ 4 files changed, 89 insertions(+) create mode 100644 tests-extra/tests/records/malformed_rr/data/journal/data.mdb create mode 100644 tests-extra/tests/records/malformed_rr/data/journal/lock.mdb create mode 100644 tests-extra/tests/records/malformed_rr/test.py diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c index e5329f7f36..58a3d98f60 100644 --- a/src/libknot/rrset-dump.c +++ b/src/libknot/rrset-dump.c @@ -2386,6 +2386,15 @@ int knot_rrset_txt_dump_data(const knot_rrset_t *rrset, ret = dump_unknown(&p); } else { ret = txt_dump_data(&p, rrset->type); + if (ret == KNOT_EMALF) { + p.in = data; + p.in_max = data_len; + p.out = dst; + p.out_max = maxlen; + p.total = 0; + p.ret = 0; + ret = dump_unknown(&p); + } } // Terminate the string just in case. diff --git a/tests-extra/tests/records/malformed_rr/data/journal/data.mdb b/tests-extra/tests/records/malformed_rr/data/journal/data.mdb new file mode 100644 index 0000000000000000000000000000000000000000..e4cf0b4ed33d5cc16e7a3964bdf3bdebe135bf27 GIT binary patch literal 12288 zcmeI1J#N%M6vv-G2q>}HRfH6TB3K#<3KaGLh$^Q*SdMqHYsvPkJa#~oIR^~|9R(#7 z+8fYNMo6518vx@Of9&iyO(ZJ*Uae<5^P4yC{nlGpChCqms`F#>>#NfZHSLt>R@-V~ zd(!UzX%Bm5e5B)zJ;zau!T=1w01UtY48Q;kzyJ)u01UtY4BXJb@Z9|`p8tpFLr*7q z(B|vzw7c95%fd1kfB_hQ0T_S*7=Qs7fB_hQ0T_UREd$;2H<3$E=rs5~`7}8VUWJ#z zJbWEo1$*J=;BvCH09_b>0T_S*7=Qs7fB_hQf&biquj&uf`GS=q< zzW>l&nez6?ksrD{r5FC95YLU-{S_BgE^}t3F|N0GdZN}H)-v+(%mC!?;K*+i_RtPH zjL(f##sy9K%?pT}ut%#Va^D$%vL8ycBE?&qg7C;ZY0k*(9vW-^M^(fkd$?g(*x zJlD>5C!RM#Tp!Q##YJ*v)K4$_Y7S(NJo3E-Uy*+A{=mNXc#_oXlr8$QHF;lMs~fZ8 aRh&f@7b@at;L<|=E#y5Bz2gNlH~I?@4f1XP literal 0 HcmV?d00001 diff --git a/tests-extra/tests/records/malformed_rr/data/journal/lock.mdb b/tests-extra/tests/records/malformed_rr/data/journal/lock.mdb new file mode 100644 index 0000000000000000000000000000000000000000..27a21b22301307bde7bcf8560c8a255d9a787d79 GIT binary patch literal 512 zcmcb2;Qc;E21W)DfRJD&!+#)vuuw^u8W@c#%YaiKx;hviWDf|y_zgXe#V%IBc%w9} GLjVADjTVmp literal 0 HcmV?d00001 diff --git a/tests-extra/tests/records/malformed_rr/test.py b/tests-extra/tests/records/malformed_rr/test.py new file mode 100644 index 0000000000..9118d907f1 --- /dev/null +++ b/tests-extra/tests/records/malformed_rr/test.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 + +'''Test of load/dump behavior with malformed record(s) (e.g. 2-byte A).''' + +from dnstest.test import Test +from dnstest.utils import * +import shutil + +t = Test() + +master = t.server("knot") +slave = t.server("knot") +zfloader = t.server("knot") +ZONE = "example.com." +zone = t.zone(ZONE) + +t.link(zone, master, slave) +t.link(zone, zfloader) + +master.zonefile_load = "none" +master.zones[ZONE].journal_content = "all" + +zfloader.zonefile_load = "difference-no-serial" +zfloader.zones[ZONE].journal_content = "all" + +shutil.copytree(os.path.join(t.data_dir, "journal"), os.path.join(master.dir, "journal")) + +t.start() + +serial = master.zone_wait(zone) +master.ctl("zone-flush", wait=True) + +generic_a = False +with open(master.zones[ZONE].zfile.path, "r") as f: + for l in f: + if "\\# 2 C000" in l: + generic_a = True + +if not generic_a: + set_err("NO GENERIC A") + +resp = master.dig("dns2." + ZONE, "A") +resp.check(rcode="NOERROR", rdata="192.0.2.2") + +resp = master.dig("dns1." + ZONE, "A") +resp.check(rcode="SERVFAIL", nordata="192.0.2.1") + +try: + resp = master.dig("svcb." + ZONE, "SVCB", timeout=0.3) + resp.check(rcode="NOERROR") +except Failed: + pass + +resp = slave.dig("dns2." + ZONE, "A") +resp.check(rcode="SERVFAIL", nordata="192.0.2.2") + +resp = slave.dig("svcb." + ZONE, "SVCB") +resp.check(rcode="SERVFAIL") + +resp = zfloader.dig("svcb." + ZONE, "SVCB") +resp.check(rcode="NXDOMAIN") + +shutil.copyfile(master.zones[ZONE].zfile.path, zfloader.zones[ZONE].zfile.path) +zfloader.ctl("zone-reload", wait=True) + +zfloader.zone_wait(zone, serial) + +resp = zfloader.dig("dns2." + ZONE, "A") +resp.check(rcode="NOERROR", rdata="192.0.2.2") + +resp = zfloader.dig("dns1." + ZONE, "A") +resp.check(rcode="SERVFAIL", nordata="192.0.2.1") + +try: + resp = zfloader.dig("svcb." + ZONE, "SVCB", timeout=0.3) + resp.check(rcode="NOERROR") +except Failed: + pass + +t.end() From 338d535eb0fcd2454b91105455f2e0f48d7687d8 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 20 Aug 2025 16:02:53 +0200 Subject: [PATCH 072/675] XFR/master-selection: try all masters if more than one sent NOTIFY --- src/knot/zone/zone.c | 15 +++- src/knot/zone/zone.h | 1 + .../tests/notify/multi-master2/test.py | 82 +++++++++++++++++++ 3 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 tests-extra/tests/notify/multi-master2/test.py diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index ba11aa1134..0084dccab7 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -517,10 +517,16 @@ void zone_set_preferred_master(zone_t *zone, const struct sockaddr_storage *addr pthread_mutex_lock(&zone->preferred_lock); if (zone->preferred_master == NULL) { - zone->preferred_master = malloc(sizeof(*zone->preferred_master)); + zone->preferred_master = calloc(1, sizeof(*zone->preferred_master)); assert(zone->preferred_master != NULL); } - memcpy(zone->preferred_master, addr, sockaddr_len(addr)); + + if (!sockaddr_net_match(zone->preferred_master, addr, -1)) { + if (zone->preferred_master->ss_family != AF_UNSPEC) { + zone->flags |= ZONE_PREF_MASTER_2X; // not zone_set_flag() as the mutex is already locked + } + memcpy(zone->preferred_master, addr, sockaddr_len(addr)); + } pthread_mutex_unlock(&zone->preferred_lock); } @@ -533,6 +539,7 @@ void zone_clear_preferred_master(zone_t *zone) pthread_mutex_lock(&zone->preferred_lock); free(zone->preferred_master); zone->preferred_master = NULL; + zone->flags &= ~ZONE_PREF_MASTER_2X; pthread_mutex_unlock(&zone->preferred_lock); } @@ -698,6 +705,7 @@ int zone_master_try(conf_t *conf, zone_t *zone, zone_master_cb callback, const char *last_id = NULL, *preferred_id = NULL; conf_val_t last = { 0 }, preferred = { 0 }; int idx = 0, last_idx = -1, preferred_idx = -1; + bool preferred_2x = false; conf_val_t masters = conf_zone_get(conf, C_MASTER, zone->name); conf_mix_iter_t iter; @@ -714,6 +722,7 @@ int zone_master_try(conf_t *conf, zone_t *zone, zone_master_cb callback, preferred_id = conf_str(iter.id); preferred = *iter.id; preferred_idx = idx; + preferred_2x = (zone->flags & ZONE_PREF_MASTER_2X); } if (pin_tolerance > 0 && sockaddr_net_match(&remote.addr, (struct sockaddr_storage *)&zone->timers.last_master, -1)) { @@ -738,7 +747,7 @@ int zone_master_try(conf_t *conf, zone_t *zone, zone_master_cb callback, }; ret = try_remote(conf, zone, callback, callback_data, err_str, preferred_id, &preferred, &fallback, "notifier "); - if (ret == KNOT_EOK || !fallback.remote) { + if ((ret == KNOT_EOK && !preferred_2x) || !fallback.remote) { return ret; // Success or local error. } } diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index ef861f2a39..561264e671 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -39,6 +39,7 @@ typedef enum { ZONE_XFR_FROZEN = 1 << 7, /*!< Outgoing AXFR/IXFR temporarily disabled. */ ZONE_USER_FLUSH = 1 << 8, /*!< User-triggered flush. */ ZONE_LAST_SIGN_OK = 1 << 9, /*!< Last full-sign event finished OK. */ + ZONE_PREF_MASTER_2X = 1 << 10, /*!< Preferred master has been overwritten at least once. */ } zone_flag_t; /*! diff --git a/tests-extra/tests/notify/multi-master2/test.py b/tests-extra/tests/notify/multi-master2/test.py new file mode 100644 index 0000000000..475132c439 --- /dev/null +++ b/tests-extra/tests/notify/multi-master2/test.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python3 + +'''Test of not inhibiting received NOTIFY by another NOTIFY from outdated master.''' + +from dnstest.test import Test + +t = Test(address=4) + +master1 = t.server("knot", address="127.0.0.11", via=True) +master2 = t.server("knot", address="127.0.0.12", via=True) +slave = t.server("knot") + +zone = t.zone_rnd(1, records=300) +ZONE = zone[0].name + +t.link(zone, master1, slave) +t.link(zone, master2, slave) + +t.start() + +serial = slave.zone_wait(zone) + +# TEST 1: both masters send NOTIFY, but only the first one has higher serial than slave + +slave.ctl("zone-freeze", wait=True) +slave.ctl("zone-flush", wait=True) + +up = master1.update(zone) +up.add(ZONE, 3600, "SOA", "dns1 hostmaster %d 10800 3600 1209600 7200" % (serial + 2)) +up.add("add1", 3600, "TXT", master1.name) +up.send() +t.sleep(2) + +up = master2.update(zone) +up.add("add1", 3600, "TXT", master2.name) +up.send() +t.sleep(2) + +slave.zones[ZONE].zfile.update_soa() +slave.ctl("zone-reload", wait=True) +serial = slave.zone_wait(zone, serial) +slave.ctl("zone-thaw") + +# in case of failure: slave only tries master2 as the last one sending NOTIFY +serial = slave.zone_wait(zone, serial) +resp = slave.dig("add1." + ZONE, "TXT") +resp.check(rcode="NOERROR", rdata=master1.name, nordata=master2.name) + +# TEST 2: master1 doesn't send NOTIFY, only master2 is attempted + +slave.ctl("zone-freeze", wait=True) +slave.ctl("zone-flush", wait=True) + +master1.disable_notify = True +master1.gen_confile() +master1.reload() + +up = master2.update(zone) +up.add(ZONE, 3600, "SOA", "dns1 hostmaster %d 10800 3600 1209600 7200" % (serial + 1)) +up.add("add2", 3600, "TXT", master2.name) +up.send() +t.sleep(2) + +up = master1.update(zone) +up.add(ZONE, 3600, "SOA", "dns1 hostmaster %d 10800 3600 1209600 7200" % (serial + 2)) +up.add("add2", 3600, "TXT", master1.name) +up.send() +t.sleep(2) + +slave.zones[ZONE].zfile.update_soa() +slave.ctl("zone-reload", wait=True) +serial = slave.zone_wait(zone, serial) +slave.ctl("zone-thaw") + +t.sleep(5) + +# in case of failure: slave also tries master1 as the last one with greatest (greater) serial +slave.zone_wait(zone, serial, equal=True, greater=False) +resp = slave.dig("add2." + ZONE, "TXT") +resp.check(rcode="NXDOMAIN") + +t.end() From f8ea2b2d98587dcd4d099b41eb6868f77db9b3bd Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 2 Sep 2025 16:02:13 +0200 Subject: [PATCH 073/675] doc: rework mod-cookies examples --- src/knot/modules/cookies/cookies.rst | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/knot/modules/cookies/cookies.rst b/src/knot/modules/cookies/cookies.rst index c767a25e9f..94af841331 100644 --- a/src/knot/modules/cookies/cookies.rst +++ b/src/knot/modules/cookies/cookies.rst @@ -25,29 +25,20 @@ It is recommended to enable DNS Cookies globally, not per zone. The module may b template: - id: default - global-module: mod-cookies # Enable DNS Cookies globally + global-module: mod-cookies # Enable DNS Cookies globally with defaults Module configuration may be supplied if necessary. :: mod-cookies: - - id: default - secret-lifetime: 30h # The Server Secret is regenerated every 30 hours - badcookie-slip: 3 # The server replies only to every third query with a wrong cookie + - id: custom + badcookie-slip: 3 # The server replies only to every third query with a wrong cookie + secret: 0xdeadbeefdeadbeefdeadbeefdeadbeef # Explicit Server Secret template: - id: default - global-module: mod-cookies/default # Enable DNS Cookies globally - -The value of the Server Secret may also be managed manually using the :ref:`mod-cookies_secret` option. In this case -the server does not automatically regenerate the Server Secret. - -:: - - mod-cookies: - - id: default - secret: 0xdeadbeefdeadbeefdeadbeefdeadbeef + global-module: mod-cookies/custom # Enable DNS Cookies globally with custom settings Module reference ---------------- From 746d4fc1a535793a5706d515ed9d3cf78a900c08 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 5 Sep 2025 10:30:49 +0200 Subject: [PATCH 074/675] doc: add a warning to zone-begin and improve other related parts --- doc/man_knotc.rst | 6 +++--- doc/operation.rst | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/man_knotc.rst b/doc/man_knotc.rst index c3a7ec40a6..595c2f84a1 100644 --- a/doc/man_knotc.rst +++ b/doc/man_knotc.rst @@ -207,9 +207,9 @@ Actions Get zone data that are currently being presented. **zone-begin** *zone*... [**+benevolent**] - Begin a zone transaction. If **+benevolent** is used, the zone transaction will - be committed even when it contains removals of non-existing or additions of - existing records. + Begin a zone transaction. If **+benevolent** is used, the transaction will + be committed even if it contains removals of non-existent records or additions + of existing records. **zone-commit** *zone*... Commit the zone transaction. All changes are applied to the zone. diff --git a/doc/operation.rst b/doc/operation.rst index 1488014bbd..68b488ccb7 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -205,12 +205,6 @@ Reading and editing zones Knot DNS allows you to read or change zone contents online using the server control interface. -.. WARNING:: - Avoid concurrent zone access from a third party software when a zone event - (zone file load, refresh, DNSSEC signing, dynamic update) is in progress or - pending. In such a case, zone events must be frozen before. For more - information on how to freeze the zone read :ref:`Editing zone file`. - To get contents of all configured zones, or a specific zone contents, or zone records with a specific owner, or even with a specific record type:: @@ -232,6 +226,12 @@ Now you can list all nodes within the transaction using the ``zone-get`` command, which always returns current data with all changes included. The command has the same syntax as ``zone-read``. +.. WARNING:: + If a zone transaction is open, all zone events that modify the zone + (e.g. DNSSEC signing) are blocked until the transaction is eithe committed + or aborted. It is therefore advisable to finish the transaction quickly and + commit without delay. + Within the transaction, you can add a record to a specific zone or to all zones with an open transaction:: From 5ec4aa2aa9b10db707d5e173e48990fbb95beabf Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 5 Sep 2025 20:41:21 +0200 Subject: [PATCH 075/675] conf: fix check for allowed empty reference Fixes 4784c4c60199afa85daec96c70fa04daf0705efe --- src/knot/conf/conf.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index 720c704c9a..dad7897cd1 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -180,8 +180,10 @@ conf_val_t conf_zone_get_txn( conf_db_get(conf, txn, C_ZONE, key1_name, dname, dname_size, &val); switch (val.code) { case KNOT_EOK: - if (val.blob_len == 1 && (val.item->flags & CONF_REF_EMPTY)) { - static const conf_val_t empty = { .code = KNOT_ENOENT }; + // 3 ~ 2-byte length prefix + '\0'. + if (val.blob_len == 3 && (val.item->flags & (YP_FMULTI | CONF_REF_EMPTY))) { + assert(memcmp(val.blob, "\x00\x01\x00", val.blob_len) == 0); + conf_val_t empty = { .item = val.item, .code = KNOT_ENOENT }; return empty; } return val; From cb71d8f2ea0a591faf7dcd12dbda8271de183150 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 9 Sep 2025 10:16:55 +0200 Subject: [PATCH 076/675] libknot/QUIC: send RETRY packet if indicated also by ngtcp2_conn_read_pkt --- src/libknot/quic/quic.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c index e19cb1f40c..6cefb1084d 100644 --- a/src/libknot/quic/quic.c +++ b/src/libknot/quic/quic.c @@ -719,7 +719,11 @@ int knot_quic_handle(knot_quic_table_t *table, knot_quic_reply_t *reply, reply->in_payload->iov_len, now); *out_conn = conn; - if (ret == NGTCP2_ERR_DRAINING) { // received CONNECTION_CLOSE from the counterpart + if (ret == NGTCP2_ERR_RETRY) { + ret = -QUIC_SEND_RETRY; + knot_quic_table_rem(conn, table); + goto finish; + } else if (ret == NGTCP2_ERR_DRAINING) { // received CONNECTION_CLOSE from the counterpart knot_quic_table_rem(conn, table); ret = KNOT_EOK; goto finish; From eb1ea4dc2e687bbeb501874c80c875c90a20dd84 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 10 Sep 2025 13:13:55 +0200 Subject: [PATCH 077/675] exporter: add missing connection close --- python/knot_exporter/knot_exporter/knot_exporter.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python/knot_exporter/knot_exporter/knot_exporter.py b/python/knot_exporter/knot_exporter/knot_exporter.py index f2c384d892..10a021963d 100755 --- a/python/knot_exporter/knot_exporter/knot_exporter.py +++ b/python/knot_exporter/knot_exporter/knot_exporter.py @@ -154,6 +154,9 @@ def metric_families_append(family, labels, labels_val, data): for val in metric_families.values(): yield val + ctl.send(libknot.control.KnotCtlType.END) + ctl.close() + class KnotHelpFormatter(argparse.HelpFormatter): def _get_help_string(self, action): From 481a5e8690ab627f00da8bde8738ed51fdb9a59f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 5 Aug 2025 12:47:56 +0200 Subject: [PATCH 078/675] knotd: tune the start-detection/loaded-detection loop Tune the start-detection loop to be dependent on the system performance and the zonedb size. The sleep time is set to be double of the time to walk through whole zonedb, with upper and lower limits. Sleep time in the loaded-detection loop is constant for one minute, then starts to grow exponentially. It starts at 1 second or at the start-detection sleep time, whichever is higher, and stops at an upper limit. --- src/utils/knotd/main.c | 162 ++++++++++++++++++++++++++++++++--------- 1 file changed, 127 insertions(+), 35 deletions(-) diff --git a/src/utils/knotd/main.c b/src/utils/knotd/main.c index 699ef9cd83..e8aac1def6 100644 --- a/src/utils/knotd/main.c +++ b/src/utils/knotd/main.c @@ -40,6 +40,11 @@ #define PROGRAM_NAME "knotd" +typedef struct { + bool wait_set; + struct timespec loop_wait; +} startup_data_t; + static int make_daemon(int nochdir, int noclose) { int ret; @@ -116,7 +121,95 @@ static void drop_capabilities(void) #endif /* ENABLE_CAP_NG */ } -static int check_loaded(server_t *server, bool async) +#define LOOP_WAIT 5 /* Seconds. It could be even infinity. */ +#define LOOP_WAIT_MIN_MS 200 /* In milliseconds; it must be < 1000. */ +#define LOOP_WAIT_MAX 30 /* Seconds. */ +#define LOOP_WAIT_LOAD_MAX 10 /* Seconds. Can be overruled by higher initial wait value. */ +#define LOAD_START_DECLINE 60 /* Seconds. Before the wait starts to grow. */ + +/*! \brief Calculate wait in 'started' state detection. */ +static void calc_wait(startup_data_t *startup_data, struct timespec t) +{ + struct timespec rv; + long int double_ns = 2 * t.tv_nsec; + rv.tv_sec = 2 * t.tv_sec + double_ns / (1000 * 1000 * 1000L); + rv.tv_nsec = double_ns % (1000 * 1000 * 1000L); + if (rv.tv_sec == 0) { + rv.tv_nsec = MAX(rv.tv_nsec, LOOP_WAIT_MIN_MS * 1000 * 1000L); + } else { + rv.tv_sec = MIN(rv.tv_sec, LOOP_WAIT_MAX); + } + + startup_data->loop_wait = rv; +} + +/*! \brief Calculate wait in 'loaded' state detection. */ +static void calc_wait_loaded(startup_data_t *startup_data, struct timespec t) +{ + struct timespec wait = startup_data->loop_wait; + assert(wait.tv_sec < LONG_MAX / 10000); + + if (wait.tv_sec >= LOOP_WAIT_LOAD_MAX) { /* One second tolerance is ok. */ + return; + } + + if (t.tv_sec < LOAD_START_DECLINE) { + if (wait.tv_sec < 1) { /* Start at one second at least. */ + startup_data->loop_wait.tv_sec = 1; + startup_data->loop_wait.tv_nsec = 0; + } + return; + } + + /* Multiply wait by approx. 1.05 -- just a chosen number. */ + long int waitm = wait.tv_sec * 1000 + wait.tv_nsec / (1000 * 1000); + waitm *= 105; + startup_data->loop_wait.tv_sec = waitm / (100 * 1000); + startup_data->loop_wait.tv_nsec = (waitm % (100 * 1000)) * (10 * 1000); + + if (startup_data->loop_wait.tv_sec >= LOOP_WAIT_LOAD_MAX) { + startup_data->loop_wait.tv_sec = LOOP_WAIT_LOAD_MAX; + startup_data->loop_wait.tv_nsec = 0; + } +} + +static void reset_loop_wait(startup_data_t *startup_data) +{ + startup_data->loop_wait.tv_sec = LOOP_WAIT; + startup_data->loop_wait.tv_nsec = 0; +} + +static void walk_zonedb(server_t *server, bool *out_start, bool *out_load, + bool started, bool fast) +{ + bool start = true; + bool load = true; + + rcu_read_lock(); + knot_zonedb_iter_t *it = knot_zonedb_iter_begin(server->zone_db); + while (!knot_zonedb_iter_finished(it)) { + zone_t *zone = (zone_t *)knot_zonedb_iter_val(it); + if (zone->contents == NULL) { + load = false; + if (started && fast) { + break; + } else if (!zone->started) { + start = false; + if (fast) { + break; + } + } + } + knot_zonedb_iter_next(it); + } + knot_zonedb_iter_free(it); + rcu_read_unlock(); + + *out_start = start; + *out_load = load; +} + +static int check_loaded(server_t *server, bool async, startup_data_t *startup_data) { /* * Started: all zones loaded or at least tried to load at least once, @@ -126,51 +219,39 @@ static int check_loaded(server_t *server, bool async) */ static bool started = false; static bool loaded = false; + static struct timespec started_time = { 0 }; assert(server->state & ServerRunning); if (loaded) { assert(server->state & ServerAnswering); return KNOT_EOK; } - /* Avoid traversing the zonedb too frequently. */ - static struct timespec last = { 0 }; + bool start, load; struct timespec now = time_now(); - if (last.tv_sec == now.tv_sec) { - return KNOT_EOK; - } - last = now; - started = started || async; - bool start = true; - bool load = true; - rcu_read_lock(); - knot_zonedb_iter_t *it = knot_zonedb_iter_begin(server->zone_db); - while (!knot_zonedb_iter_finished(it)) { - zone_t *zone = (zone_t *)knot_zonedb_iter_val(it); - if (zone->contents != NULL) { - knot_zonedb_iter_next(it); - continue; - } - load = false; - if (started) { - break; - } else if (!zone->started) { - start = false; - break; - } + /* In the first db walk, benchmark the zonedb traversal while checking. */ + walk_zonedb(server, &start, &load, started, startup_data->wait_set); - knot_zonedb_iter_next(it); + if (!startup_data->wait_set) { + struct timespec then = time_now(); + calc_wait(startup_data, time_diff(&now, &then)); + if (async) { + struct timespec zero_time = { 0 }; + calc_wait_loaded(startup_data, zero_time); + } + startup_data->wait_set = true; } - knot_zonedb_iter_free(it); - rcu_read_unlock(); if (!start) { return KNOT_EOK; } if (!started) { - int ret = server_start_answering(server); - if (ret != KNOT_EOK) { - return ret; + started_time = now; + if (!async) { + int ret = server_start_answering(server); + if (ret != KNOT_EOK) { + return ret; + } } started = true; } @@ -184,6 +265,10 @@ static int check_loaded(server_t *server, bool async) if (load) { /* Not 'loaded' yet. */ dbus_emit_running(true); loaded = true; + reset_loop_wait(startup_data); + } else { + /* Extend the wait gradually. */ + calc_wait_loaded(startup_data, time_diff(&started_time, &now)); } return KNOT_EOK; @@ -286,6 +371,11 @@ static int event_loop(server_t *server, const char *socket, bool daemonize, log_info("starting server in the foreground, PID %lu", pid); } + /* Server startup parameters. */ + startup_data_t startup_data = { + .wait_set = false + }; + /* Run interrupt processing loop. */ for (;;) { if (signals_req_reload && !signals_req_stop) { @@ -311,12 +401,13 @@ static int event_loop(server_t *server, const char *socket, bool daemonize, continue; } - ret = check_loaded(server, async); + ret = check_loaded(server, async, &startup_data); if (ret != KNOT_EOK) { goto done; } - sleep(2); // wait for signals to arrive + /* Wait for signals to arrive. */ + nanosleep(&(startup_data.loop_wait), NULL); } if (conf()->cache.srv_dbus_event & DBUS_EVENT_RUNNING) { @@ -612,10 +703,11 @@ int main(int argc, char **argv) stats_reconfigure(conf(), &server); - /* Start it up. */ - /* In async-start mode, start answering early, otherwise in the event loop. */ conf_val_t async_val = conf_get(conf(), C_SRV, C_ASYNC_START); bool async = conf_bool(&async_val); + + /* Start it up. */ + /* In async-start mode, start answering early, otherwise in the event loop. */ if ((ret = server_start(&server, async)) != KNOT_EOK || (ret = event_loop(&server, socket, daemonize, pid, async)) != KNOT_EOK) { log_fatal("failed to start server (%s)", knot_strerror(ret)); From b993569a13be1087ce554f5c81929d5ec1026e50 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 9 Sep 2025 09:07:44 +0200 Subject: [PATCH 079/675] contrib/macros: allow mutually nested MIN(MAX(...)) --- src/contrib/macros.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contrib/macros.h b/src/contrib/macros.h index e00d186588..fc46c98107 100644 --- a/src/contrib/macros.h +++ b/src/contrib/macros.h @@ -16,7 +16,7 @@ /*! \brief Type-safe maximum macro. */ #define MAX(a, b) \ - ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a > _b ? _a : _b; }) + ({ __typeof__ (a) _x = (a); __typeof__ (b) _y = (b); _x > _y ? _x : _y; }) #endif #ifndef likely From 8190a51ac65303058c7b22e9049e5558676f6885 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 9 Sep 2025 09:08:11 +0200 Subject: [PATCH 080/675] contrib/time: add millisecond time functions --- src/contrib/time.c | 22 ++++++++++++++++++++++ src/contrib/time.h | 10 ++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/contrib/time.c b/src/contrib/time.c index 1ef6a2789c..50ab799a27 100644 --- a/src/contrib/time.c +++ b/src/contrib/time.c @@ -45,6 +45,28 @@ double time_diff_ms(const struct timespec *begin, const struct timespec *end) return (result.tv_sec * 1e3) + (result.tv_nsec / 1e6); } +knot_millis_t knot_millis_from_timespec(struct timespec *ts) +{ + return ts->tv_sec * 1000LLU + ts->tv_nsec / 1000000LLU; +} + +struct timespec knot_millis_to_timespec(knot_millis_t ms) +{ + return (struct timespec){ .tv_sec = ms / 1000LLU, .tv_nsec = (ms % 1000LLU) * 1000000LLU }; +} + +knot_millis_t knot_millis_now(void) +{ + struct timespec ts = time_now(); + return knot_millis_from_timespec(&ts); +} + +void knot_millis_sleep(knot_millis_t ms) +{ + struct timespec ts = knot_millis_to_timespec(ms); + nanosleep(&ts, NULL); +} + typedef struct { const char *format; const char *timespec; diff --git a/src/contrib/time.h b/src/contrib/time.h index 6a353f673d..07cdd2465d 100644 --- a/src/contrib/time.h +++ b/src/contrib/time.h @@ -15,6 +15,8 @@ #define st_mtim st_mtimespec #endif +typedef unsigned long long knot_millis_t; + /*! * \brief Specify output format for knot_time_print(). */ @@ -41,6 +43,14 @@ struct timespec time_diff(const struct timespec *begin, const struct timespec *e */ double time_diff_ms(const struct timespec *begin, const struct timespec *end); +knot_millis_t knot_millis_from_timespec(struct timespec *ts); + +struct timespec knot_millis_to_timespec(knot_millis_t ms); + +knot_millis_t knot_millis_now(void); + +void knot_millis_sleep(knot_millis_t ms); + /*! * \brief Data type for keeping UNIX timestamps. * From 71470b59256200bd5803c8a2acad08feb655b475 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 9 Sep 2025 09:08:11 +0200 Subject: [PATCH 081/675] knotd/check_loaded: refactoring: all computations in milliseconds --- src/utils/knotd/main.c | 81 +++++++++++++----------------------------- 1 file changed, 25 insertions(+), 56 deletions(-) diff --git a/src/utils/knotd/main.c b/src/utils/knotd/main.c index e8aac1def6..a814e1a55f 100644 --- a/src/utils/knotd/main.c +++ b/src/utils/knotd/main.c @@ -42,7 +42,7 @@ typedef struct { bool wait_set; - struct timespec loop_wait; + knot_millis_t loop_wait; } startup_data_t; static int make_daemon(int nochdir, int noclose) @@ -121,62 +121,32 @@ static void drop_capabilities(void) #endif /* ENABLE_CAP_NG */ } -#define LOOP_WAIT 5 /* Seconds. It could be even infinity. */ -#define LOOP_WAIT_MIN_MS 200 /* In milliseconds; it must be < 1000. */ -#define LOOP_WAIT_MAX 30 /* Seconds. */ -#define LOOP_WAIT_LOAD_MAX 10 /* Seconds. Can be overruled by higher initial wait value. */ -#define LOAD_START_DECLINE 60 /* Seconds. Before the wait starts to grow. */ +/* The following time constants are in milliseconds. */ +#define LOOP_WAIT 5000LLU /* After loading all zones. It could be even infinity. */ +#define LOOP_WAIT_MIN 200LLU /* Minimum wait before all zones are started. */ +#define LOOP_WAIT_MAX 30000LLU /* Maximum wait before all zones are started. */ +#define LOOP_WAIT_LOAD_MIN 1000LLU /* Minimum wait before all zones are loaded, after 'started'. */ +#define LOOP_WAIT_LOAD_MAX 10000LLU /* Can be overruled by higher initial wait value. */ +#define LOAD_START_DECLINE 60000LLU /* Before the wait starts to grow. */ /*! \brief Calculate wait in 'started' state detection. */ -static void calc_wait(startup_data_t *startup_data, struct timespec t) +static void calc_wait(startup_data_t *startup_data, knot_millis_t t) { - struct timespec rv; - long int double_ns = 2 * t.tv_nsec; - rv.tv_sec = 2 * t.tv_sec + double_ns / (1000 * 1000 * 1000L); - rv.tv_nsec = double_ns % (1000 * 1000 * 1000L); - if (rv.tv_sec == 0) { - rv.tv_nsec = MAX(rv.tv_nsec, LOOP_WAIT_MIN_MS * 1000 * 1000L); - } else { - rv.tv_sec = MIN(rv.tv_sec, LOOP_WAIT_MAX); - } - - startup_data->loop_wait = rv; + /* Multiply wait by 2 -- just a chosen number. */ + startup_data->loop_wait = MAX(LOOP_WAIT_MIN, MIN(LOOP_WAIT_MAX, t * 2)); } /*! \brief Calculate wait in 'loaded' state detection. */ -static void calc_wait_loaded(startup_data_t *startup_data, struct timespec t) +static void calc_wait_loaded(startup_data_t *startup_data, knot_millis_t t) { - struct timespec wait = startup_data->loop_wait; - assert(wait.tv_sec < LONG_MAX / 10000); - - if (wait.tv_sec >= LOOP_WAIT_LOAD_MAX) { /* One second tolerance is ok. */ - return; - } - - if (t.tv_sec < LOAD_START_DECLINE) { - if (wait.tv_sec < 1) { /* Start at one second at least. */ - startup_data->loop_wait.tv_sec = 1; - startup_data->loop_wait.tv_nsec = 0; - } + if (t < LOAD_START_DECLINE) { + startup_data->loop_wait = MAX(LOOP_WAIT_LOAD_MIN, startup_data->loop_wait); return; } /* Multiply wait by approx. 1.05 -- just a chosen number. */ - long int waitm = wait.tv_sec * 1000 + wait.tv_nsec / (1000 * 1000); - waitm *= 105; - startup_data->loop_wait.tv_sec = waitm / (100 * 1000); - startup_data->loop_wait.tv_nsec = (waitm % (100 * 1000)) * (10 * 1000); - - if (startup_data->loop_wait.tv_sec >= LOOP_WAIT_LOAD_MAX) { - startup_data->loop_wait.tv_sec = LOOP_WAIT_LOAD_MAX; - startup_data->loop_wait.tv_nsec = 0; - } -} - -static void reset_loop_wait(startup_data_t *startup_data) -{ - startup_data->loop_wait.tv_sec = LOOP_WAIT; - startup_data->loop_wait.tv_nsec = 0; + startup_data->loop_wait = MIN(LOOP_WAIT_LOAD_MAX, + startup_data->loop_wait + startup_data->loop_wait / 20); } static void walk_zonedb(server_t *server, bool *out_start, bool *out_load, @@ -219,7 +189,7 @@ static int check_loaded(server_t *server, bool async, startup_data_t *startup_da */ static bool started = false; static bool loaded = false; - static struct timespec started_time = { 0 }; + static knot_millis_t started_time = 0; assert(server->state & ServerRunning); if (loaded) { assert(server->state & ServerAnswering); @@ -227,17 +197,16 @@ static int check_loaded(server_t *server, bool async, startup_data_t *startup_da } bool start, load; - struct timespec now = time_now(); + knot_millis_t now_ms = knot_millis_now(); /* In the first db walk, benchmark the zonedb traversal while checking. */ walk_zonedb(server, &start, &load, started, startup_data->wait_set); if (!startup_data->wait_set) { - struct timespec then = time_now(); - calc_wait(startup_data, time_diff(&now, &then)); + knot_millis_t afterwalk = knot_millis_now(); + calc_wait(startup_data, afterwalk - now_ms); if (async) { - struct timespec zero_time = { 0 }; - calc_wait_loaded(startup_data, zero_time); + calc_wait_loaded(startup_data, 0); } startup_data->wait_set = true; } @@ -246,7 +215,7 @@ static int check_loaded(server_t *server, bool async, startup_data_t *startup_da return KNOT_EOK; } if (!started) { - started_time = now; + started_time = now_ms; if (!async) { int ret = server_start_answering(server); if (ret != KNOT_EOK) { @@ -265,10 +234,10 @@ static int check_loaded(server_t *server, bool async, startup_data_t *startup_da if (load) { /* Not 'loaded' yet. */ dbus_emit_running(true); loaded = true; - reset_loop_wait(startup_data); + startup_data->loop_wait = LOOP_WAIT; } else { /* Extend the wait gradually. */ - calc_wait_loaded(startup_data, time_diff(&started_time, &now)); + calc_wait_loaded(startup_data, now_ms - started_time); } return KNOT_EOK; @@ -407,7 +376,7 @@ static int event_loop(server_t *server, const char *socket, bool daemonize, } /* Wait for signals to arrive. */ - nanosleep(&(startup_data.loop_wait), NULL); + knot_millis_sleep(startup_data.loop_wait); } if (conf()->cache.srv_dbus_event & DBUS_EVENT_RUNNING) { From ce26ffbfa5e4aa023803140abd0c632fa2d4e6ab Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 10 Sep 2025 17:48:32 +0200 Subject: [PATCH 082/675] zone/reverse: refactoring: pointer at reversed zone is a structure --- src/knot/events/handlers/load.c | 2 +- src/knot/zone/reverse.c | 5 +++-- src/knot/zone/zone.c | 36 +++++++++++++++++++++++++++++++-- src/knot/zone/zone.h | 19 ++++++++++++++++- src/knot/zone/zonedb-load.c | 21 ++++++++++--------- 5 files changed, 67 insertions(+), 16 deletions(-) diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index e7903f7923..a6bf4e8668 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -137,7 +137,7 @@ int event_load(conf_t *conf, zone_t *zone) // If configured, add reverse records to zone contents const knot_dname_t *fail_fwd = NULL; - ret = zones_reverse(&zone->reverse_from, zf_conts, &fail_fwd); + ret = zones_reverse(&zone->include_from, zf_conts, &fail_fwd); if (ret == KNOT_ETRYAGAIN) { knot_dname_txt_storage_t forw_str; (void)knot_dname_to_str(forw_str, fail_fwd, sizeof(forw_str)); diff --git a/src/knot/zone/reverse.c b/src/knot/zone/reverse.c index 472083baa9..98734e7578 100644 --- a/src/knot/zone/reverse.c +++ b/src/knot/zone/reverse.c @@ -129,9 +129,10 @@ int zone_reverse(zone_contents_t *from, zone_contents_t *to_conts, int zones_reverse(list_t *zones, zone_contents_t *to_conts, const knot_dname_t **fail_fwd) { int ret = KNOT_EOK; - ptrnode_t *n; + zone_include_t *n; WALK_LIST(n, *zones) { - zone_t *z = n->d; + zone_t *z = n->include; + assert(n->method == ZONE_INCLUDE_REVERSE); rcu_read_lock(); if (z->contents == NULL) { ret = KNOT_ETRYAGAIN; diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 0084dccab7..489e849d54 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -181,7 +181,7 @@ zone_t* zone_new(const knot_dname_t *name) // Initialize query modules list. init_list(&zone->query_modules); - init_list(&zone->reverse_from); + init_list(&zone->include_from); init_list(&zone->internal_notify); ATOMIC_INIT(zone->backup_ctx, NULL); @@ -242,7 +242,7 @@ void zone_free(zone_t **zone_ptr) conf_deactivate_modules(&zone->query_modules, &zone->query_plan); - ptrlist_free(&zone->reverse_from, NULL); + zone_includes_clear(zone); ptrlist_free(&zone->internal_notify, NULL); ATOMIC_DEINIT(zone->backup_ctx); @@ -815,6 +815,38 @@ int zone_dump_to_dir(conf_t *conf, zone_t *zone, const char *dir) return zonefile_write_skip(target, zone->contents, conf); } +int zone_includes_add(zone_t *zone, zone_t *include, zone_include_method_t method) +{ + zone_include_t *n = calloc(1, sizeof(*n)); + if (n == NULL) { + return KNOT_ENOMEM; + } + n->include = include; + n->method = method; + add_tail(&zone->include_from, &n->n); + return KNOT_EOK; +} + +void zone_includes_rem(zone_t *zone, zone_t *include) +{ + zone_include_t *n, *nxt; + WALK_LIST_DELSAFE(n, nxt, zone->include_from) { + if (n->include == include) { + rem_node(&n->n); + free(n); + } + } +} + +void zone_includes_clear(zone_t *zone) +{ + zone_include_t *n, *next; + WALK_LIST_DELSAFE(n, next, zone->include_from) { + free(n); + } + init_list(&zone->include_from); +} + void zone_local_notify_subscribe(zone_t *zone, zone_t *subscribe) { ptrlist_add(&zone->internal_notify, subscribe, NULL); diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 561264e671..894a7abc3e 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -124,7 +124,7 @@ typedef struct zone const char *catalog_group; /*! \brief Auto-generated reverse zones... */ - list_t reverse_from; + list_t include_from; list_t internal_notify; /*! \brief Preferred master lock. Also used for flags access. */ @@ -137,6 +137,16 @@ typedef struct zone struct query_plan *query_plan; } zone_t; +typedef enum { + ZONE_INCLUDE_REVERSE, +} zone_include_method_t; + +typedef struct { + node_t n; + zone_t *include; + zone_include_method_t method; +} zone_include_t; + /*! * \brief Creates new zone with empty zone content. * @@ -284,6 +294,13 @@ int zone_master_try(conf_t *conf, zone_t *zone, zone_master_cb callback, /*! \brief Write zone contents to zonefile, but into different directory. */ int zone_dump_to_dir(conf_t *conf, zone_t *zone, const char *dir); +/*! + * \brief Zone inclusion (reverse generation) related ops. + */ +int zone_includes_add(zone_t *zone, zone_t *include, zone_include_method_t method); +void zone_includes_rem(zone_t *zone, zone_t *include); +void zone_includes_clear(zone_t *zone); + void zone_local_notify_subscribe(zone_t *zone, zone_t *subscribe); void zone_local_notify_unsubscribe(zone_t *zone, zone_t *subscribe); void zone_local_notify(zone_t *zone); diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 4e2db0d463..eee25c1ea3 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -389,11 +389,11 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) return; } - ptrnode_t *n; - WALK_LIST(n, zone->reverse_from) { - zone_local_notify_unsubscribe(n->d, zone); + zone_include_t *n; + WALK_LIST(n, zone->include_from) { + zone_local_notify_unsubscribe(n->include, zone); } - ptrlist_free(&zone->reverse_from, NULL); + zone_includes_clear(zone); conf_val_t val = conf_zone_get(conf, C_REVERSE_GEN, zone->name); while (val.code == KNOT_EOK) { @@ -405,7 +405,7 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) log_zone_warning(zone->name, "zone to reverse %s does not exist", forw_str); } else { - ptrlist_add(&zone->reverse_from, forw, NULL); + (void)zone_includes_add(zone, forw, ZONE_INCLUDE_REVERSE); zone_local_notify_subscribe(forw, zone); } conf_val_next(&val); @@ -418,15 +418,16 @@ static void unreg_reverse(zone_t *zone) return; } - ptrnode_t *n; - WALK_LIST(n, zone->reverse_from) { - zone_local_notify_unsubscribe(n->d, zone); + zone_include_t *in; + WALK_LIST(in, zone->include_from) { + zone_local_notify_unsubscribe(in->include, zone); } - ptrlist_free(&zone->reverse_from, NULL); + zone_includes_clear(zone); + ptrnode_t *n; WALK_LIST(n, zone->internal_notify) { zone_t *reverse = n->d; - ptrlist_find_rem(&reverse->reverse_from, zone, NULL); + zone_includes_rem(reverse, zone); } ptrlist_free(&zone->internal_notify, NULL); } From 6408e6493e6363fd357f1afceb8fa5edd6d32ac3 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 11 Sep 2025 16:54:42 +0200 Subject: [PATCH 083/675] zone: implemented including records from subzone(s) --- doc/reference.rst | 16 ++++ src/knot/conf/schema.c | 1 + src/knot/conf/schema.h | 1 + src/knot/conf/tools.c | 21 +++++ src/knot/conf/tools.h | 4 + src/knot/events/handlers/load.c | 1 + src/knot/zone/reverse.c | 71 +++++++++++++++- src/knot/zone/reverse.h | 8 +- src/knot/zone/zone.h | 1 + src/knot/zone/zonedb-load.c | 7 +- .../tests/zone/include_from/data/com.cz.zone | 8 ++ .../tests/zone/include_from/data/cz.zone | 11 +++ .../tests/zone/include_from/data/net.cz.zone | 6 ++ .../tests/zone/include_from/data/org.cz.zone | 6 ++ tests-extra/tests/zone/include_from/test.py | 80 +++++++++++++++++++ tests-extra/tools/dnstest/server.py | 3 + 16 files changed, 237 insertions(+), 8 deletions(-) create mode 100644 tests-extra/tests/zone/include_from/data/com.cz.zone create mode 100644 tests-extra/tests/zone/include_from/data/cz.zone create mode 100644 tests-extra/tests/zone/include_from/data/net.cz.zone create mode 100644 tests-extra/tests/zone/include_from/data/org.cz.zone create mode 100644 tests-extra/tests/zone/include_from/test.py diff --git a/doc/reference.rst b/doc/reference.rst index 608b29bd34..6e934e1d80 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2696,6 +2696,7 @@ Definition of zones served by the server. serial-policy: increment | unixtime | dateserial serial-modulo: INT/INT | +INT | -INT | INT/INT+INT | INT/INT-INT reverse-generate: DNAME ... + include-from: DNAME ... refresh-min-interval: TIME refresh-max-interval: TIME retry-min-interval: TIME @@ -3295,6 +3296,21 @@ Current limitations: *Default:* none +.. _zone_include-from: + +include-from +------------ + +A list of subzones that should be flattened into this zone. The flattening deletes +all delegation-related records (including NS, SOA, ...) from both zones and copies +all other records from the subzone to this zone. + +This feature works analogously to :ref:`zone_reverse-generate` in the way that subzones' +records are being imported while loading this zone's zone file, and that it implies +:ref:`zone_zonefile-load`: *difference-no-serial* and :ref:`zone_journal-content`: *all*. + +*Default:* none + .. _zone_refresh-min-interval: refresh-min-interval diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 5e80ab4375..bb3cf2e499 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -496,6 +496,7 @@ static const yp_item_t desc_external[] = { { C_DS_PUSH, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_REF_EMPTY | FLAGS, \ { check_ref } }, \ { C_REVERSE_GEN, YP_TDNAME,YP_VNONE, YP_FMULTI | FLAGS | CONF_IO_FRLD_ZONES }, \ + { C_INCLUDE_FROM, YP_TDNAME,YP_VNONE, YP_FMULTI | FLAGS | CONF_IO_FDIFF_ZONES, { check_include_from } }, \ { C_SERIAL_POLICY, YP_TOPT, YP_VOPT = { serial_policies, SERIAL_POLICY_INCREMENT } }, \ { C_SERIAL_MODULO, YP_TSTR, YP_VSTR = { "0/1" }, YP_FNONE, { check_modulo_shift } }, \ { C_ZONEMD_GENERATE, YP_TOPT, YP_VOPT = { zone_digest, ZONE_DIGEST_NONE }, FLAGS }, \ diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 3de02cfe6e..7b48c3a2e9 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -67,6 +67,7 @@ #define C_GLOBAL_MODULE "\x0D""global-module" #define C_ID "\x02""id" #define C_IDENT "\x08""identity" +#define C_INCLUDE_FROM "\x0C""include-from" #define C_INCL "\x07""include" #define C_IXFR_BENEVOLENT "\x0F""ixfr-benevolent" #define C_IXFR_BY_ONE "\x0B""ixfr-by-one" diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index bbffbc9a14..b937cd45b8 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -1025,6 +1025,18 @@ static conf_val_t conf_get_wrap( } } +int check_include_from( + knotd_conf_check_args_t *args) +{ + if (knot_dname_in_bailiwick(args->data, args->id) < 0 || + knot_dname_is_equal(args->data, args->id)) { + args->err_str = "not a subzone"; + return KNOT_EINVAL; + } + + return KNOT_EOK; +} + #define CHECK_ZONE_INTERVALS(low_item, high_item) { \ conf_val_t high = conf_get_wrap(args, high_item); \ if (high.code == KNOT_EOK) { \ @@ -1177,6 +1189,15 @@ static int check_zone_or_tpl( } } + conf_val_t inc_from = conf_get_wrap(args, C_INCLUDE_FROM); + if (inc_from.code == KNOT_EOK) { + conf_val_t rev_from = conf_get_wrap(args, C_REVERSE_GEN); + if (rev_from.code == KNOT_EOK) { + args->err_str = "include-from not compatible with reverse-from"; + return KNOT_EINVAL; + } + } + return KNOT_EOK; } diff --git a/src/knot/conf/tools.h b/src/knot/conf/tools.h index 10a5cb4fd5..f48ed5bbc5 100644 --- a/src/knot/conf/tools.h +++ b/src/knot/conf/tools.h @@ -151,6 +151,10 @@ int check_template( knotd_conf_check_args_t *args ); +int check_include_from( + knotd_conf_check_args_t *args +); + int check_zone( knotd_conf_check_args_t *args ); diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index a6bf4e8668..3073a7af22 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -58,6 +58,7 @@ int event_load(conf_t *conf, zone_t *zone) // Note: zone->reverse_from!=NULL almost works, but we need to check if configured even when failed. if (conf_zone_get(conf, C_REVERSE_GEN, zone->name).code == KNOT_EOK || + conf_zone_get(conf, C_INCLUDE_FROM, zone->name).code == KNOT_EOK || zone->cat_members != NULL) { // This should be equivalent to setting catalog-role:generate. zf_from = ZONEFILE_LOAD_DIFSE; load_from = JOURNAL_CONTENT_ALL; diff --git a/src/knot/zone/reverse.c b/src/knot/zone/reverse.c index 98734e7578..a629a9bdef 100644 --- a/src/knot/zone/reverse.c +++ b/src/knot/zone/reverse.c @@ -105,8 +105,63 @@ static int reverse_from_node(zone_node_t *node, void *data) return ret; } +static bool flatten_apex_nocopy(uint16_t type) +{ + return type == KNOT_RRTYPE_SOA || + type == KNOT_RRTYPE_NS || + type == KNOT_RRTYPE_DNSKEY || + type == KNOT_RRTYPE_NSEC3PARAM || + type == KNOT_RRTYPE_CDNSKEY || + type == KNOT_RRTYPE_CDS; +} + +static bool flatten_apex_delete(uint16_t type) +{ + return type == KNOT_RRTYPE_NS || + type == KNOT_RRTYPE_DS; +} + +static int flatten_from_node(zone_node_t *node, void *data) +{ + rev_ctx_t *ctx = data; + + bool apex = node_rrtype_exists(node, KNOT_RRTYPE_SOA); + + int ret = KNOT_EOK; + + zone_node_t *target_node = NULL; + + for (int i = 0; i < node->rrset_count && ret == KNOT_EOK; i++) { + knot_rrset_t rrset = node_rrset_at(node, i); + if (apex && flatten_apex_nocopy(rrset.type)) { + continue; + } + + assert(ctx->rev_upd == NULL); // not implemented with update in mind + + ret = zone_contents_add_rr(ctx->rev_conts, &rrset, &target_node); + } + + if (apex && target_node == NULL) { + target_node = (zone_node_t *)zone_contents_find_node(ctx->rev_conts, node->owner); + } + + // TODO delete whole subtree from rev_conts BEFORE adding records from included zone? + for (int i = 0; apex && target_node != NULL && i < target_node->rrset_count && ret == KNOT_EOK; ) { + knot_rrset_t rrset = node_rrset_at(target_node, i); + if (flatten_apex_delete(rrset.type)) { + ret = zone_contents_remove_rr(ctx->rev_conts, &rrset, &target_node); + } else { + i++; // NOTE otherwise we jump to next RRSet by deleting the current one + } + } + + return ret; +} + int zone_reverse(zone_contents_t *from, zone_contents_t *to_conts, - zone_update_t *to_upd, bool to_upd_rem) + zone_update_t *to_upd, bool to_upd_rem, + zone_include_method_t method) { const knot_dname_t *to_name; if (to_upd != NULL) { @@ -123,7 +178,16 @@ int zone_reverse(zone_contents_t *from, zone_contents_t *to_conts, .ipv6 = (knot_dname_in_bailiwick(to_name, reverse6postfix) >= 0) }; - return zone_contents_apply(from, reverse_from_node, &ctx); + switch (method) { + case ZONE_INCLUDE_REVERSE: + return zone_contents_apply(from, reverse_from_node, &ctx); + case ZONE_INCLUDE_FLATTEN: + assert(to_upd == NULL && to_conts != NULL); // flattening from changeset is problematic since SOA is no present in changeset's zone_contents + return zone_contents_apply(from, flatten_from_node, &ctx); + default: + assert(0); + return KNOT_ERROR; + } } int zones_reverse(list_t *zones, zone_contents_t *to_conts, const knot_dname_t **fail_fwd) @@ -132,12 +196,11 @@ int zones_reverse(list_t *zones, zone_contents_t *to_conts, const knot_dname_t * zone_include_t *n; WALK_LIST(n, *zones) { zone_t *z = n->include; - assert(n->method == ZONE_INCLUDE_REVERSE); rcu_read_lock(); if (z->contents == NULL) { ret = KNOT_ETRYAGAIN; } else { - ret = zone_reverse(z->contents, to_conts, NULL, false); + ret = zone_reverse(z->contents, to_conts, NULL, false, n->method); } rcu_read_unlock(); if (ret != KNOT_EOK) { diff --git a/src/knot/zone/reverse.h b/src/knot/zone/reverse.h index 3c27d07fb5..eac1848878 100644 --- a/src/knot/zone/reverse.h +++ b/src/knot/zone/reverse.h @@ -14,17 +14,19 @@ * \param to_conts Out/optional: resulting reverse zone. * \param to_upd Out/optional: resulting update of reverse zone. * \param to_upd_rem Trigger removal from reverse zone. + * \param method Including mode. * * \return KNOT_E* */ int zone_reverse(zone_contents_t *from, zone_contents_t *to_conts, - zone_update_t *to_upd, bool to_upd_rem); + zone_update_t *to_upd, bool to_upd_rem, + zone_include_method_t method); inline static int changeset_reverse(changeset_t *from, zone_update_t *to) { - int ret = zone_reverse(from->remove, NULL, to, true); + int ret = zone_reverse(from->remove, NULL, to, true, ZONE_INCLUDE_REVERSE); if (ret == KNOT_EOK) { - ret = zone_reverse(from->add, NULL, to, false); + ret = zone_reverse(from->add, NULL, to, false, ZONE_INCLUDE_REVERSE); } return ret; } diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 894a7abc3e..155fe510dd 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -139,6 +139,7 @@ typedef struct zone typedef enum { ZONE_INCLUDE_REVERSE, + ZONE_INCLUDE_FLATTEN, } zone_include_method_t; typedef struct { diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index eee25c1ea3..526b40a046 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -395,7 +395,12 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) } zone_includes_clear(zone); + zone_include_method_t method = ZONE_INCLUDE_REVERSE; conf_val_t val = conf_zone_get(conf, C_REVERSE_GEN, zone->name); + if (val.code != KNOT_EOK) { + method = ZONE_INCLUDE_FLATTEN; + val = conf_zone_get(conf, C_INCLUDE_FROM, zone->name); + } while (val.code == KNOT_EOK) { const knot_dname_t *forw_name = conf_dname(&val); zone_t *forw = knot_zonedb_find(db_new, forw_name); @@ -405,7 +410,7 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) log_zone_warning(zone->name, "zone to reverse %s does not exist", forw_str); } else { - (void)zone_includes_add(zone, forw, ZONE_INCLUDE_REVERSE); + (void)zone_includes_add(zone, forw, method); zone_local_notify_subscribe(forw, zone); } conf_val_next(&val); diff --git a/tests-extra/tests/zone/include_from/data/com.cz.zone b/tests-extra/tests/zone/include_from/data/com.cz.zone new file mode 100644 index 0000000000..f19f407f32 --- /dev/null +++ b/tests-extra/tests/zone/include_from/data/com.cz.zone @@ -0,0 +1,8 @@ +$ORIGIN com.cz. +$TTL 3600 + +@ SOA dns1 hostmaster 2010111201 10800 3600 1209600 7200 + NS dns1 + TXT "auth-txt" + CDS 57855 5 1 B6DCD485719ADCA18E5F3D48A2331627FDD3636B +dns1 A 192.0.2.1 diff --git a/tests-extra/tests/zone/include_from/data/cz.zone b/tests-extra/tests/zone/include_from/data/cz.zone new file mode 100644 index 0000000000..99b1a07710 --- /dev/null +++ b/tests-extra/tests/zone/include_from/data/cz.zone @@ -0,0 +1,11 @@ +$ORIGIN cz. +$TTL 3600 + +@ SOA dns1 hostmaster 2010111201 10800 3600 1209600 7200 + NS dns1 +dns1 A 192.0.2.1 +com NS dns1 +com DS 57855 5 1 B6DCD485719ADCA18E5F3D48A2331627FDD3636B +com TXT "nonauth-txt" +org NS dns1.org +dns1.org A 192.0.2.2 diff --git a/tests-extra/tests/zone/include_from/data/net.cz.zone b/tests-extra/tests/zone/include_from/data/net.cz.zone new file mode 100644 index 0000000000..a12453c512 --- /dev/null +++ b/tests-extra/tests/zone/include_from/data/net.cz.zone @@ -0,0 +1,6 @@ +$ORIGIN net.cz. +$TTL 3600 + +@ SOA dns1 hostmaster 2010111201 10800 3600 1209600 7200 + NS dns1 +dns1 A 192.0.2.1 diff --git a/tests-extra/tests/zone/include_from/data/org.cz.zone b/tests-extra/tests/zone/include_from/data/org.cz.zone new file mode 100644 index 0000000000..c29aa5b051 --- /dev/null +++ b/tests-extra/tests/zone/include_from/data/org.cz.zone @@ -0,0 +1,6 @@ +$ORIGIN org.cz. +$TTL 3600 + +@ SOA dns1 hostmaster 2010111201 10800 3600 1209600 7200 + NS dns1 +dns1 A 192.0.2.1 diff --git a/tests-extra/tests/zone/include_from/test.py b/tests-extra/tests/zone/include_from/test.py new file mode 100644 index 0000000000..22f9fbb614 --- /dev/null +++ b/tests-extra/tests/zone/include_from/test.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 + +""" +Test of flattening subzones. +""" + +from dnstest.utils import * +from dnstest.test import Test +import random + +t = Test() + +master = t.server("knot") # only providing the subzones +flattener = t.server("knot") +slave = t.server("knot") # only slaving the flattened zone + +parent = t.zone("cz.", storage=".") +childs = t.zone("com.cz.", storage=".") + t.zone("net.cz.", storage=".") + t.zone("org.cz.", storage=".") + +t.link(childs, master, flattener) +t.link(parent, flattener, slave) + +flattener.zones[parent[0].name].include_from = childs + +flattener.dnssec(parent).enable = random.choice([False, True]) + +t.start() +serial = slave.zone_wait(parent) + +for z in childs: + for ty in [ "SOA", "NS", "DS", "CDS" ]: + r = slave.dig(z.name, ty) + r.check(rcode="NOERROR") + r.check_count(0, ty) + r = slave.dig("dns1." + z.name, "A") + r.check(rcode="NOERROR", rdata="192.0.2.1") + +r = slave.dig("dns1.org.cz", "A") +r.check(rcode="NOERROR", rdata="192.0.2.2") + +r = slave.dig("com.cz.", "TXT") +r.check(rcode="NOERROR", rdata="auth-txt") +r.check(rcode="NOERROR", rdata="nonauth-txt") +r.check_count(2, "TXT") + +up = master.update(childs[0]) +up.add("dns1", 3600, "AAAA", "1::2") +up.send("NOERROR") + +serial = slave.zone_wait(parent, serial) +r = slave.dig("dns1.com.cz.", "AAAA") +r.check(rcode="NOERROR", rdata="1::2") + +flattener.zones[parent[0].name].zfile.append_rndTXT("txt.cz.", rdata="added-txt") +if random.choice([False, True]): + flattener.ctl("zone-reload " + parent[0].name) +else: + up = master.update(childs[1]) + up.add("anything", 3600, "TXT", "dontcare") + up.send("NOERROR") + +serial = slave.zone_wait(parent, serial) +r = slave.dig("txt.cz.", "TXT") +r.check(rcode="NOERROR", rdata="added-txt") + +invalid_conf = random.choice(["include_self", "include_parent", "also_reverse"]) +if invalid_conf == "include_self": + flattener.zones[parent[0].name].include_from = parent +elif invalid_conf == "include_parent": + flattener.zones[childs[0].name].include_from = parent +else: + flattener.zones[parent[0].name].reverse_from = childs +flattener.gen_confile() +try: + flattener.reload() + set_err("INVALID CONF ACCEPTED: " + invalid_conf) +except: + pass + +t.end() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 30a78211f0..02b0b475c9 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -102,6 +102,7 @@ def __init__(self, zone_file, ddns=False, ixfr=False, journal_content="changes") self.journal_content = journal_content # journal contents self.modules = [] self.reverse_from = None + self.include_from = None self.external = None self.dnssec = ZoneDnssec() self.catalog_role = ZoneCatalogRole.NONE @@ -1969,6 +1970,8 @@ def get_config(self): if z.reverse_from: s.item("reverse-generate", "[ " + ", ".join([ x.name for x in z.reverse_from ]) + " ]") + if z.include_from: + s.item("include-from", "[ " + ", ".join([ x.name for x in z.include_from ]) + " ]") self._str(s, "refresh-min-interval", z.refresh_min) self._str(s, "refresh-max-interval", z.refresh_max) From ae1b7756a5ceadd8c95db4444003c3910917825f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 11 Sep 2025 16:53:20 +0200 Subject: [PATCH 084/675] conf: fix knotd_conf_check_args_t.id value when calling from file parsing --- src/knot/conf/base.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/knot/conf/base.c b/src/knot/conf/base.c index fd735deec0..3a64b2b82f 100644 --- a/src/knot/conf/base.c +++ b/src/knot/conf/base.c @@ -650,8 +650,8 @@ static int finalize_previous_section( }; knotd_conf_check_args_t args = { .item = node->item, - .id = node->id, - .id_len = node->id_len, + .id = (node->parent != NULL) ? node->parent->id : node->id, + .id_len = (node->parent != NULL) ? node->parent->id_len : node->id_len, .data = node->data, .data_len = node->data_len, .extra = &extra @@ -686,8 +686,8 @@ static int finalize_item( }; knotd_conf_check_args_t args = { .item = (parser->event == YP_EID) ? node->item->var.g.id : node->item, - .id = node->id, - .id_len = node->id_len, + .id = (node->parent != NULL) ? node->parent->id : node->id, + .id_len = (node->parent != NULL) ? node->parent->id_len : node->id_len, .data = node->data, .data_len = node->data_len, .extra = &extra From 78f65198bd498fc13607badeace38dec9a3baa4f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 12 Sep 2025 09:28:15 +0200 Subject: [PATCH 085/675] tests-extra: fix response.check() to check both rdata and nordata --- tests-extra/tools/dnstest/response.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests-extra/tools/dnstest/response.py b/tests-extra/tools/dnstest/response.py index f3d110287d..a6cf19cd6f 100644 --- a/tests-extra/tools/dnstest/response.py +++ b/tests-extra/tools/dnstest/response.py @@ -120,6 +120,7 @@ def check_record(self, section="answer", name=None, rtype=None, ttl=None, rdata= ref = str(list(rrset)[0]) # Check answer section if contains reference rdata. + found = False for data in sect: if name is not None and str(data.name) != str(name): continue @@ -133,8 +134,11 @@ def check_record(self, section="answer", name=None, rtype=None, ttl=None, rdata= # Check TTL if specified. if ttl != None: compare(data.ttl, int(ttl), "TTL") - return - else: + found = True + break + if found: + break + if not found: set_err("CHECK RDATA") check_log("ERROR: CHECK RDATA") detail_log("!Missing data in %s section:" % section) From 7fc1b82fa7ed5b76624ebc735bebd5c4724c56a3 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 7 Jun 2025 17:13:33 +0200 Subject: [PATCH 086/675] libknot: add knot_rdata_to_canonical() --- distro/pkg/deb/libknot16.symbols | 1 + src/libknot/rdata.h | 18 +++++++++++++++ src/libknot/rrset.c | 38 ++++++++++++++++++++------------ src/libknot/rrset.h | 16 +++++--------- 4 files changed, 49 insertions(+), 24 deletions(-) diff --git a/distro/pkg/deb/libknot16.symbols b/distro/pkg/deb/libknot16.symbols index 026fadc79e..2976c27500 100644 --- a/distro/pkg/deb/libknot16.symbols +++ b/distro/pkg/deb/libknot16.symbols @@ -145,6 +145,7 @@ libknot.so.16 libknot16 #MINVER# knot_quic_table_rem@Base 3.5.0 knot_quic_table_sweep@Base 3.5.0 knot_rcode_names@Base 3.5.0 + knot_rdata_to_canonical@Base 3.5.0 knot_rdataset_add@Base 3.5.0 knot_rdataset_at@Base 3.5.0 knot_rdataset_clear@Base 3.5.0 diff --git a/src/libknot/rdata.h b/src/libknot/rdata.h index 6488dda4ce..908d1352a3 100644 --- a/src/libknot/rdata.h +++ b/src/libknot/rdata.h @@ -87,4 +87,22 @@ inline static int knot_rdata_cmp(const knot_rdata_t *rdata1, const knot_rdata_t return cmp; } +/*! + * \brief Converts rdata into canonical format. + * + * Rdata domain names are converted only for types listed in RFC 4034, + * Section 6.2, except for NSEC (updated by RFC 6840, Section 5.1) and + * A6 (not supported). + * + * \warning This function expects either empty rdata or full, not malformed + * rdata. If malformed rdata is passed to this function, memory errors + * may occur. + * + * \param rdata Rdata to convert. + * \param type Rdata type. + * + * \return Error code, KNOT_EOK if successful. + */ +int knot_rdata_to_canonical(knot_rdata_t *rdata, uint16_t type); + /*! @} */ diff --git a/src/libknot/rrset.c b/src/libknot/rrset.c index 74a69fcaa4..1486464873 100644 --- a/src/libknot/rrset.c +++ b/src/libknot/rrset.c @@ -126,27 +126,24 @@ bool knot_rrset_is_nsec3rel(const knot_rrset_t *rr) } _public_ -int knot_rrset_rr_to_canonical(knot_rrset_t *rrset) +int knot_rdata_to_canonical(knot_rdata_t *rdata, uint16_t type) { - if (rrset == NULL || rrset->rrs.count != 1) { + if (rdata == NULL) { return KNOT_EINVAL; } - /* Convert owner for all RRSets. */ - knot_dname_to_lower(rrset->owner); - /* Convert DNAMEs in RDATA only for RFC4034 types. */ - if (!knot_rrtype_should_be_lowercased(rrset->type)) { + if (!knot_rrtype_should_be_lowercased(type)) { return KNOT_EOK; } - const knot_rdata_descriptor_t *desc = knot_get_rdata_descriptor(rrset->type); + const knot_rdata_descriptor_t *desc = knot_get_rdata_descriptor(type); if (desc->type_name == NULL) { - desc = knot_get_obsolete_rdata_descriptor(rrset->type); + desc = knot_get_obsolete_rdata_descriptor(type); } - uint16_t rdlen = rrset->rrs.rdata->len; - uint8_t *pos = rrset->rrs.rdata->data; + uint16_t rdlen = rdata->len; + uint8_t *pos = rdata->data; uint8_t *endpos = pos + rdlen; /* No RDATA */ @@ -156,8 +153,8 @@ int knot_rrset_rr_to_canonical(knot_rrset_t *rrset) /* Otherwise, whole and not malformed RDATA are expected. */ for (int i = 0; desc->block_types[i] != KNOT_RDATA_WF_END; ++i) { - int type = desc->block_types[i]; - switch (type) { + int block_type = desc->block_types[i]; + switch (block_type) { case KNOT_RDATA_WF_COMPRESSIBLE_DNAME: case KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME: case KNOT_RDATA_WF_FIXED_DNAME: @@ -176,14 +173,27 @@ int knot_rrset_rr_to_canonical(knot_rrset_t *rrset) break; default: /* Fixed size block */ - assert(type > 0); - pos += type; + assert(block_type > 0); + pos += block_type; } } return KNOT_EOK; } +_public_ +int knot_rrset_rr_to_canonical(knot_rrset_t *rrset) +{ + if (rrset == NULL || rrset->rrs.count != 1) { + return KNOT_EINVAL; + } + + /* Convert owner for all RRSets. */ + knot_dname_to_lower(rrset->owner); + + return knot_rdata_to_canonical(rrset->rrs.rdata, rrset->type); +} + _public_ size_t knot_rrset_size(const knot_rrset_t *rrset) { diff --git a/src/libknot/rrset.h b/src/libknot/rrset.h index 2b874b24d4..c0c897f897 100644 --- a/src/libknot/rrset.h +++ b/src/libknot/rrset.h @@ -157,19 +157,15 @@ inline static bool knot_rrset_empty(const knot_rrset_t *rrset) bool knot_rrset_is_nsec3rel(const knot_rrset_t *rr); /*! - * \brief Convert one RR into canonical format. + * \brief Converts RRSet with one RR into canonical format. * - * Owner is always converted to lowercase. RDATA domain names are converted only - * for types listed in RFC 4034, Section 6.2, except for NSEC (updated by - * RFC 6840, Section 5.1) and A6 (not supported). + * The RRSet owner is always converted to lowercase. * - * \note If RRSet with more RRs is given to this function, only the first RR - * will be converted. - * \warning This function expects either empty RDATA or full, not malformed - * RDATA. If malformed RRSet is passed to this function, memory errors - * may occur. + * \note See knot_rdata_to_canonical() for more details. * - * \param rrset RR to convert. + * \param rrset RRSet to convert. + * + * \return Error code, KNOT_EOK if successful. */ int knot_rrset_rr_to_canonical(knot_rrset_t *rrset); From 64a8b8d9b7057620e1ee7e178d4eeb1fca06d2e2 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 8 Jun 2025 18:53:21 +0200 Subject: [PATCH 087/675] zscanner: rename wire_dname_to_str() to dname_to_str() to avoid name collision --- src/libzscanner/functions.c | 6 ++-- src/libzscanner/functions.h | 6 ++-- src/libzscanner/scanner.c.g2 | 50 +++++++++++++-------------------- src/libzscanner/scanner.c.t0 | 10 +++---- src/libzscanner/scanner_body.rl | 10 +++---- 5 files changed, 34 insertions(+), 48 deletions(-) diff --git a/src/libzscanner/functions.c b/src/libzscanner/functions.c index 6a3d00f2aa..43a5d8a58f 100644 --- a/src/libzscanner/functions.c +++ b/src/libzscanner/functions.c @@ -808,9 +808,9 @@ int date_to_timestamp(uint8_t *buff, uint32_t *timestamp) return ZS_OK; } -void wire_dname_to_str(const uint8_t *data, - const uint32_t data_len, - char *text) +void dname_to_str(const uint8_t *data, + const uint32_t data_len, + char *text) { uint32_t i = 0, text_len = 0; diff --git a/src/libzscanner/functions.h b/src/libzscanner/functions.h index 69a963a166..e73f9897d5 100644 --- a/src/libzscanner/functions.h +++ b/src/libzscanner/functions.h @@ -82,9 +82,9 @@ int date_to_timestamp(uint8_t *buff, uint32_t *timestamp); * \param data_len Length of the buffer. * \param text Text output. */ -void wire_dname_to_str(const uint8_t *data, - const uint32_t data_len, - char *text); +void dname_to_str(const uint8_t *data, + const uint32_t data_len, + char *text); /*! * \brief Converts unsigned integer to mantissa*10^(exponent). diff --git a/src/libzscanner/scanner.c.g2 b/src/libzscanner/scanner.c.g2 index 079b23d036..657bde0f6d 100644 --- a/src/libzscanner/scanner.c.g2 +++ b/src/libzscanner/scanner.c.g2 @@ -45367,13 +45367,11 @@ tr1174: // Origin conversion from wire to text form in \DDD notation. if (s->dname == NULL) { // Use current origin. - wire_dname_to_str(s->zone_origin, - s->zone_origin_length, - (char *)s->buffer); + dname_to_str(s->zone_origin, s->zone_origin_length, + (char *)s->buffer); } else { // Use specified origin. - wire_dname_to_str(s->r_data, - s->r_data_length, - (char *)s->buffer); + dname_to_str(s->r_data, s->r_data_length, + (char *)s->buffer); } // Let the caller to solve the include. @@ -45434,13 +45432,11 @@ tr1184: // Origin conversion from wire to text form in \DDD notation. if (s->dname == NULL) { // Use current origin. - wire_dname_to_str(s->zone_origin, - s->zone_origin_length, - (char *)s->buffer); + dname_to_str(s->zone_origin, s->zone_origin_length, + (char *)s->buffer); } else { // Use specified origin. - wire_dname_to_str(s->r_data, - s->r_data_length, - (char *)s->buffer); + dname_to_str(s->r_data, s->r_data_length, + (char *)s->buffer); } // Let the caller to solve the include. @@ -45512,13 +45508,11 @@ tr1196: // Origin conversion from wire to text form in \DDD notation. if (s->dname == NULL) { // Use current origin. - wire_dname_to_str(s->zone_origin, - s->zone_origin_length, - (char *)s->buffer); + dname_to_str(s->zone_origin, s->zone_origin_length, + (char *)s->buffer); } else { // Use specified origin. - wire_dname_to_str(s->r_data, - s->r_data_length, - (char *)s->buffer); + dname_to_str(s->r_data, s->r_data_length, + (char *)s->buffer); } // Let the caller to solve the include. @@ -45592,13 +45586,11 @@ tr1202: // Origin conversion from wire to text form in \DDD notation. if (s->dname == NULL) { // Use current origin. - wire_dname_to_str(s->zone_origin, - s->zone_origin_length, - (char *)s->buffer); + dname_to_str(s->zone_origin, s->zone_origin_length, + (char *)s->buffer); } else { // Use specified origin. - wire_dname_to_str(s->r_data, - s->r_data_length, - (char *)s->buffer); + dname_to_str(s->r_data, s->r_data_length, + (char *)s->buffer); } // Let the caller to solve the include. @@ -45932,13 +45924,11 @@ tr1211: // Origin conversion from wire to text form in \DDD notation. if (s->dname == NULL) { // Use current origin. - wire_dname_to_str(s->zone_origin, - s->zone_origin_length, - (char *)s->buffer); + dname_to_str(s->zone_origin, s->zone_origin_length, + (char *)s->buffer); } else { // Use specified origin. - wire_dname_to_str(s->r_data, - s->r_data_length, - (char *)s->buffer); + dname_to_str(s->r_data, s->r_data_length, + (char *)s->buffer); } // Let the caller to solve the include. diff --git a/src/libzscanner/scanner.c.t0 b/src/libzscanner/scanner.c.t0 index d00c4e348d..ccf4fdce45 100644 --- a/src/libzscanner/scanner.c.t0 +++ b/src/libzscanner/scanner.c.t0 @@ -7801,13 +7801,11 @@ _match: // Origin conversion from wire to text form in \DDD notation. if (s->dname == NULL) { // Use current origin. - wire_dname_to_str(s->zone_origin, - s->zone_origin_length, - (char *)s->buffer); + dname_to_str(s->zone_origin, s->zone_origin_length, + (char *)s->buffer); } else { // Use specified origin. - wire_dname_to_str(s->r_data, - s->r_data_length, - (char *)s->buffer); + dname_to_str(s->r_data, s->r_data_length, + (char *)s->buffer); } // Let the caller to solve the include. diff --git a/src/libzscanner/scanner_body.rl b/src/libzscanner/scanner_body.rl index 82bcfbd86d..cbe7c9f7b7 100644 --- a/src/libzscanner/scanner_body.rl +++ b/src/libzscanner/scanner_body.rl @@ -794,13 +794,11 @@ // Origin conversion from wire to text form in \DDD notation. if (s->dname == NULL) { // Use current origin. - wire_dname_to_str(s->zone_origin, - s->zone_origin_length, - (char *)s->buffer); + dname_to_str(s->zone_origin, s->zone_origin_length, + (char *)s->buffer); } else { // Use specified origin. - wire_dname_to_str(s->r_data, - s->r_data_length, - (char *)s->buffer); + dname_to_str(s->r_data, s->r_data_length, + (char *)s->buffer); } // Let the caller to solve the include. From 1a3a82bbe476041ea33e81599a6ca8053aa2a63c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 8 Jun 2025 18:57:54 +0200 Subject: [PATCH 088/675] base64: rename PD and MAX_BIN_DATA_LEN to avoid name collisions --- src/contrib/base64.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/contrib/base64.c b/src/contrib/base64.c index d3120fcb7c..ed123fec7b 100644 --- a/src/contrib/base64.c +++ b/src/contrib/base64.c @@ -10,7 +10,7 @@ #include /*! \brief Maximal length of binary input to Base64 encoding. */ -#define MAX_BIN_DATA_LEN ((INT32_MAX / 4) * 3) +#define MAX_B64_BIN_DATA_LEN ((INT32_MAX / 4) * 3) /*! \brief Base64 padding character. */ static const uint8_t base64_pad = '='; @@ -21,7 +21,7 @@ static const uint8_t base64_enc[] = /*! \brief Indicates bad Base64 character. */ #define KO 255 /*! \brief Indicates Base64 padding character. */ -#define PD 64 +#define PA 64 /*! \brief Transformation and validation table for decoding Base64. */ static const uint8_t base64_dec[256] = { @@ -43,7 +43,7 @@ static const uint8_t base64_dec[256] = { [ 15] = KO, [ 58] = KO, ['e'] = 30, [144] = KO, [187] = KO, [230] = KO, [ 16] = KO, [ 59] = KO, ['f'] = 31, [145] = KO, [188] = KO, [231] = KO, [ 17] = KO, [ 60] = KO, ['g'] = 32, [146] = KO, [189] = KO, [232] = KO, - [ 18] = KO, ['='] = PD, ['h'] = 33, [147] = KO, [190] = KO, [233] = KO, + [ 18] = KO, ['='] = PA, ['h'] = 33, [147] = KO, [190] = KO, [233] = KO, [ 19] = KO, [ 62] = KO, ['i'] = 34, [148] = KO, [191] = KO, [234] = KO, [ 20] = KO, [ 63] = KO, ['j'] = 35, [149] = KO, [192] = KO, [235] = KO, [ 21] = KO, [ 64] = KO, ['k'] = 36, [150] = KO, [193] = KO, [236] = KO, @@ -79,7 +79,7 @@ int32_t knot_base64_encode(const uint8_t *in, if (in == NULL || out == NULL) { return KNOT_EINVAL; } - if (in_len > MAX_BIN_DATA_LEN || out_len < ((in_len + 2) / 3) * 4) { + if (in_len > MAX_B64_BIN_DATA_LEN || out_len < ((in_len + 2) / 3) * 4) { return KNOT_ERANGE; } @@ -126,7 +126,7 @@ int32_t knot_base64_encode_alloc(const uint8_t *in, if (out == NULL) { return KNOT_EINVAL; } - if (in_len > MAX_BIN_DATA_LEN) { + if (in_len > MAX_B64_BIN_DATA_LEN) { return KNOT_ERANGE; } @@ -179,8 +179,8 @@ int32_t knot_base64_decode(const uint8_t *in, c4 = base64_dec[in[3]]; // Check 4. char if is bad or padding. - if (c4 >= PD) { - if (c4 == PD && pad_len == 0) { + if (c4 >= PA) { + if (c4 == PA && pad_len == 0) { pad_len = 1; } else { return KNOT_BASE64_ECHAR; @@ -188,8 +188,8 @@ int32_t knot_base64_decode(const uint8_t *in, } // Check 3. char if is bad or padding. - if (c3 >= PD) { - if (c3 == PD && pad_len == 1) { + if (c3 >= PA) { + if (c3 == PA && pad_len == 1) { pad_len = 2; } else { return KNOT_BASE64_ECHAR; @@ -197,7 +197,7 @@ int32_t knot_base64_decode(const uint8_t *in, } // Check 1. and 2. chars if are not padding. - if (c2 >= PD || c1 >= PD) { + if (c2 >= PA || c1 >= PA) { return KNOT_BASE64_ECHAR; } From 8dce5ef98742b9823fc7d669fc701cf21776f020 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 8 Jun 2025 19:02:55 +0200 Subject: [PATCH 089/675] base32hex: rename MAX_BIN_DATA_LEN to avoid name collision --- src/contrib/base32hex.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/contrib/base32hex.c b/src/contrib/base32hex.c index 3bb15b65c2..8a7d7dc43f 100644 --- a/src/contrib/base32hex.c +++ b/src/contrib/base32hex.c @@ -10,7 +10,7 @@ #include /*! \brief Maximal length of binary input to Base32hex encoding. */ -#define MAX_BIN_DATA_LEN ((INT32_MAX / 8) * 5) +#define MAX_B32_BIN_DATA_LEN ((INT32_MAX / 8) * 5) /*! \brief Base32hex padding character. */ static const uint8_t base32hex_pad = '='; @@ -78,7 +78,7 @@ int32_t knot_base32hex_encode(const uint8_t *in, if (in == NULL || out == NULL) { return KNOT_EINVAL; } - if (in_len > MAX_BIN_DATA_LEN || out_len < ((in_len + 4) / 5) * 8) { + if (in_len > MAX_B32_BIN_DATA_LEN || out_len < ((in_len + 4) / 5) * 8) { return KNOT_ERANGE; } @@ -159,7 +159,7 @@ int32_t knot_base32hex_encode_alloc(const uint8_t *in, if (out == NULL) { return KNOT_EINVAL; } - if (in_len > MAX_BIN_DATA_LEN) { + if (in_len > MAX_B32_BIN_DATA_LEN) { return KNOT_ERANGE; } From 1cc2200fd786ed7ec53cce600cd6d4977add3dc6 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 16 Jan 2025 10:56:53 +0100 Subject: [PATCH 090/675] contrib: add redismodule.h version 7.0 From https://github.com/RedisLabsModules/RedisModulesSDK/blob/master/7.0/redismodule.h --- Knot.files | 1 + distro/pkg/deb/copyright | 4 + src/contrib/Makefile.inc | 1 + src/contrib/redis/LICENSE | 1 + src/contrib/redis/redismodule.h | 1582 +++++++++++++++++++++++++++++++ 5 files changed, 1589 insertions(+) create mode 100644 src/contrib/redis/LICENSE create mode 100644 src/contrib/redis/redismodule.h diff --git a/Knot.files b/Knot.files index f16de73ffd..487f305295 100644 --- a/Knot.files +++ b/Knot.files @@ -144,6 +144,7 @@ src/contrib/proxyv2/proxyv2.c src/contrib/proxyv2/proxyv2.h src/contrib/qp-trie/trie.c src/contrib/qp-trie/trie.h +src/contrib/redis/redismodule.h src/contrib/semaphore.c src/contrib/semaphore.h src/contrib/sockaddr.c diff --git a/distro/pkg/deb/copyright b/distro/pkg/deb/copyright index 312c260646..a412de48fa 100644 --- a/distro/pkg/deb/copyright +++ b/distro/pkg/deb/copyright @@ -37,6 +37,10 @@ Files: src/contrib/openbsd/strl* Copyright: 1998 Todd C. Miller License: ISC +Files: src/contrib/redis/* +Copyright: 2016 Redis Labs +License: MIT + Files: src/contrib/ucw/* Copyright: 2011-2025 CZ.NIC, z.s.p.o. and contributors 1997-2017 Martin Mares diff --git a/src/contrib/Makefile.inc b/src/contrib/Makefile.inc index 0855764d21..f4b60832e6 100644 --- a/src/contrib/Makefile.inc +++ b/src/contrib/Makefile.inc @@ -52,6 +52,7 @@ libcontrib_la_SOURCES = \ contrib/os.h \ contrib/qp-trie/trie.c \ contrib/qp-trie/trie.h \ + contrib/redis/redismodule.h \ contrib/semaphore.c \ contrib/semaphore.h \ contrib/sockaddr.c \ diff --git a/src/contrib/redis/LICENSE b/src/contrib/redis/LICENSE new file mode 100644 index 0000000000..bca546a116 --- /dev/null +++ b/src/contrib/redis/LICENSE @@ -0,0 +1 @@ +../licenses/MIT diff --git a/src/contrib/redis/redismodule.h b/src/contrib/redis/redismodule.h new file mode 100644 index 0000000000..e8fea087ec --- /dev/null +++ b/src/contrib/redis/redismodule.h @@ -0,0 +1,1582 @@ +#ifndef REDISMODULE_H +#define REDISMODULE_H + +// clang-format off + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ---------------- Defines common between core and modules --------------- */ + +/* Error status return values. */ +#define REDISMODULE_OK 0 +#define REDISMODULE_ERR 1 + +/* API versions. */ +#define REDISMODULE_APIVER_1 1 + +/* Version of the RedisModuleTypeMethods structure. Once the RedisModuleTypeMethods + * structure is changed, this version number needs to be changed synchronistically. */ +#define REDISMODULE_TYPE_METHOD_VERSION 4 + +/* API flags and constants */ +#define REDISMODULE_READ (1<<0) +#define REDISMODULE_WRITE (1<<1) + +/* RedisModule_OpenKey extra flags for the 'mode' argument. + * Avoid touching the LRU/LFU of the key when opened. */ +#define REDISMODULE_OPEN_KEY_NOTOUCH (1<<16) + +/* List push and pop */ +#define REDISMODULE_LIST_HEAD 0 +#define REDISMODULE_LIST_TAIL 1 + +/* Key types. */ +#define REDISMODULE_KEYTYPE_EMPTY 0 +#define REDISMODULE_KEYTYPE_STRING 1 +#define REDISMODULE_KEYTYPE_LIST 2 +#define REDISMODULE_KEYTYPE_HASH 3 +#define REDISMODULE_KEYTYPE_SET 4 +#define REDISMODULE_KEYTYPE_ZSET 5 +#define REDISMODULE_KEYTYPE_MODULE 6 +#define REDISMODULE_KEYTYPE_STREAM 7 + +/* Reply types. */ +#define REDISMODULE_REPLY_UNKNOWN -1 +#define REDISMODULE_REPLY_STRING 0 +#define REDISMODULE_REPLY_ERROR 1 +#define REDISMODULE_REPLY_INTEGER 2 +#define REDISMODULE_REPLY_ARRAY 3 +#define REDISMODULE_REPLY_NULL 4 +#define REDISMODULE_REPLY_MAP 5 +#define REDISMODULE_REPLY_SET 6 +#define REDISMODULE_REPLY_BOOL 7 +#define REDISMODULE_REPLY_DOUBLE 8 +#define REDISMODULE_REPLY_BIG_NUMBER 9 +#define REDISMODULE_REPLY_VERBATIM_STRING 10 +#define REDISMODULE_REPLY_ATTRIBUTE 11 + +/* Postponed array length. */ +#define REDISMODULE_POSTPONED_ARRAY_LEN -1 /* Deprecated, please use REDISMODULE_POSTPONED_LEN */ +#define REDISMODULE_POSTPONED_LEN -1 + +/* Expire */ +#define REDISMODULE_NO_EXPIRE -1 + +/* Sorted set API flags. */ +#define REDISMODULE_ZADD_XX (1<<0) +#define REDISMODULE_ZADD_NX (1<<1) +#define REDISMODULE_ZADD_ADDED (1<<2) +#define REDISMODULE_ZADD_UPDATED (1<<3) +#define REDISMODULE_ZADD_NOP (1<<4) +#define REDISMODULE_ZADD_GT (1<<5) +#define REDISMODULE_ZADD_LT (1<<6) + +/* Hash API flags. */ +#define REDISMODULE_HASH_NONE 0 +#define REDISMODULE_HASH_NX (1<<0) +#define REDISMODULE_HASH_XX (1<<1) +#define REDISMODULE_HASH_CFIELDS (1<<2) +#define REDISMODULE_HASH_EXISTS (1<<3) +#define REDISMODULE_HASH_COUNT_ALL (1<<4) + +#define REDISMODULE_CONFIG_DEFAULT 0 /* This is the default for a module config. */ +#define REDISMODULE_CONFIG_IMMUTABLE (1ULL<<0) /* Can this value only be set at startup? */ +#define REDISMODULE_CONFIG_SENSITIVE (1ULL<<1) /* Does this value contain sensitive information */ +#define REDISMODULE_CONFIG_HIDDEN (1ULL<<4) /* This config is hidden in `config get ` (used for tests/debugging) */ +#define REDISMODULE_CONFIG_PROTECTED (1ULL<<5) /* Becomes immutable if enable-protected-configs is enabled. */ +#define REDISMODULE_CONFIG_DENY_LOADING (1ULL<<6) /* This config is forbidden during loading. */ + +#define REDISMODULE_CONFIG_MEMORY (1ULL<<7) /* Indicates if this value can be set as a memory value */ +#define REDISMODULE_CONFIG_BITFLAGS (1ULL<<8) /* Indicates if this value can be set as a multiple enum values */ + +/* StreamID type. */ +typedef struct RedisModuleStreamID { + uint64_t ms; + uint64_t seq; +} RedisModuleStreamID; + +/* StreamAdd() flags. */ +#define REDISMODULE_STREAM_ADD_AUTOID (1<<0) +/* StreamIteratorStart() flags. */ +#define REDISMODULE_STREAM_ITERATOR_EXCLUSIVE (1<<0) +#define REDISMODULE_STREAM_ITERATOR_REVERSE (1<<1) +/* StreamIteratorTrim*() flags. */ +#define REDISMODULE_STREAM_TRIM_APPROX (1<<0) + +/* Context Flags: Info about the current context returned by + * RM_GetContextFlags(). */ + +/* The command is running in the context of a Lua script */ +#define REDISMODULE_CTX_FLAGS_LUA (1<<0) +/* The command is running inside a Redis transaction */ +#define REDISMODULE_CTX_FLAGS_MULTI (1<<1) +/* The instance is a master */ +#define REDISMODULE_CTX_FLAGS_MASTER (1<<2) +/* The instance is a slave */ +#define REDISMODULE_CTX_FLAGS_SLAVE (1<<3) +/* The instance is read-only (usually meaning it's a slave as well) */ +#define REDISMODULE_CTX_FLAGS_READONLY (1<<4) +/* The instance is running in cluster mode */ +#define REDISMODULE_CTX_FLAGS_CLUSTER (1<<5) +/* The instance has AOF enabled */ +#define REDISMODULE_CTX_FLAGS_AOF (1<<6) +/* The instance has RDB enabled */ +#define REDISMODULE_CTX_FLAGS_RDB (1<<7) +/* The instance has Maxmemory set */ +#define REDISMODULE_CTX_FLAGS_MAXMEMORY (1<<8) +/* Maxmemory is set and has an eviction policy that may delete keys */ +#define REDISMODULE_CTX_FLAGS_EVICT (1<<9) +/* Redis is out of memory according to the maxmemory flag. */ +#define REDISMODULE_CTX_FLAGS_OOM (1<<10) +/* Less than 25% of memory available according to maxmemory. */ +#define REDISMODULE_CTX_FLAGS_OOM_WARNING (1<<11) +/* The command was sent over the replication link. */ +#define REDISMODULE_CTX_FLAGS_REPLICATED (1<<12) +/* Redis is currently loading either from AOF or RDB. */ +#define REDISMODULE_CTX_FLAGS_LOADING (1<<13) +/* The replica has no link with its master, note that + * there is the inverse flag as well: + * + * REDISMODULE_CTX_FLAGS_REPLICA_IS_ONLINE + * + * The two flags are exclusive, one or the other can be set. */ +#define REDISMODULE_CTX_FLAGS_REPLICA_IS_STALE (1<<14) +/* The replica is trying to connect with the master. + * (REPL_STATE_CONNECT and REPL_STATE_CONNECTING states) */ +#define REDISMODULE_CTX_FLAGS_REPLICA_IS_CONNECTING (1<<15) +/* THe replica is receiving an RDB file from its master. */ +#define REDISMODULE_CTX_FLAGS_REPLICA_IS_TRANSFERRING (1<<16) +/* The replica is online, receiving updates from its master. */ +#define REDISMODULE_CTX_FLAGS_REPLICA_IS_ONLINE (1<<17) +/* There is currently some background process active. */ +#define REDISMODULE_CTX_FLAGS_ACTIVE_CHILD (1<<18) +/* The next EXEC will fail due to dirty CAS (touched keys). */ +#define REDISMODULE_CTX_FLAGS_MULTI_DIRTY (1<<19) +/* Redis is currently running inside background child process. */ +#define REDISMODULE_CTX_FLAGS_IS_CHILD (1<<20) +/* The current client does not allow blocking, either called from + * within multi, lua, or from another module using RM_Call */ +#define REDISMODULE_CTX_FLAGS_DENY_BLOCKING (1<<21) +/* The current client uses RESP3 protocol */ +#define REDISMODULE_CTX_FLAGS_RESP3 (1<<22) +/* Redis is currently async loading database for diskless replication. */ +#define REDISMODULE_CTX_FLAGS_ASYNC_LOADING (1<<23) + +/* Next context flag, must be updated when adding new flags above! +This flag should not be used directly by the module. + * Use RedisModule_GetContextFlagsAll instead. */ +#define _REDISMODULE_CTX_FLAGS_NEXT (1<<24) + +/* Keyspace changes notification classes. Every class is associated with a + * character for configuration purposes. + * NOTE: These have to be in sync with NOTIFY_* in server.h */ +#define REDISMODULE_NOTIFY_KEYSPACE (1<<0) /* K */ +#define REDISMODULE_NOTIFY_KEYEVENT (1<<1) /* E */ +#define REDISMODULE_NOTIFY_GENERIC (1<<2) /* g */ +#define REDISMODULE_NOTIFY_STRING (1<<3) /* $ */ +#define REDISMODULE_NOTIFY_LIST (1<<4) /* l */ +#define REDISMODULE_NOTIFY_SET (1<<5) /* s */ +#define REDISMODULE_NOTIFY_HASH (1<<6) /* h */ +#define REDISMODULE_NOTIFY_ZSET (1<<7) /* z */ +#define REDISMODULE_NOTIFY_EXPIRED (1<<8) /* x */ +#define REDISMODULE_NOTIFY_EVICTED (1<<9) /* e */ +#define REDISMODULE_NOTIFY_STREAM (1<<10) /* t */ +#define REDISMODULE_NOTIFY_KEY_MISS (1<<11) /* m (Note: This one is excluded from REDISMODULE_NOTIFY_ALL on purpose) */ +#define REDISMODULE_NOTIFY_LOADED (1<<12) /* module only key space notification, indicate a key loaded from rdb */ +#define REDISMODULE_NOTIFY_MODULE (1<<13) /* d, module key space notification */ +#define REDISMODULE_NOTIFY_NEW (1<<14) /* n, new key notification */ + +/* Next notification flag, must be updated when adding new flags above! +This flag should not be used directly by the module. + * Use RedisModule_GetKeyspaceNotificationFlagsAll instead. */ +#define _REDISMODULE_NOTIFY_NEXT (1<<15) + +#define REDISMODULE_NOTIFY_ALL (REDISMODULE_NOTIFY_GENERIC | REDISMODULE_NOTIFY_STRING | REDISMODULE_NOTIFY_LIST | REDISMODULE_NOTIFY_SET | REDISMODULE_NOTIFY_HASH | REDISMODULE_NOTIFY_ZSET | REDISMODULE_NOTIFY_EXPIRED | REDISMODULE_NOTIFY_EVICTED | REDISMODULE_NOTIFY_STREAM | REDISMODULE_NOTIFY_MODULE) /* A */ + +/* A special pointer that we can use between the core and the module to signal + * field deletion, and that is impossible to be a valid pointer. */ +#define REDISMODULE_HASH_DELETE ((RedisModuleString*)(long)1) + +/* Error messages. */ +#define REDISMODULE_ERRORMSG_WRONGTYPE "WRONGTYPE Operation against a key holding the wrong kind of value" + +#define REDISMODULE_POSITIVE_INFINITE (1.0/0.0) +#define REDISMODULE_NEGATIVE_INFINITE (-1.0/0.0) + +/* Cluster API defines. */ +#define REDISMODULE_NODE_ID_LEN 40 +#define REDISMODULE_NODE_MYSELF (1<<0) +#define REDISMODULE_NODE_MASTER (1<<1) +#define REDISMODULE_NODE_SLAVE (1<<2) +#define REDISMODULE_NODE_PFAIL (1<<3) +#define REDISMODULE_NODE_FAIL (1<<4) +#define REDISMODULE_NODE_NOFAILOVER (1<<5) + +#define REDISMODULE_CLUSTER_FLAG_NONE 0 +#define REDISMODULE_CLUSTER_FLAG_NO_FAILOVER (1<<1) +#define REDISMODULE_CLUSTER_FLAG_NO_REDIRECTION (1<<2) + +#define REDISMODULE_NOT_USED(V) ((void) V) + +/* Logging level strings */ +#define REDISMODULE_LOGLEVEL_DEBUG "debug" +#define REDISMODULE_LOGLEVEL_VERBOSE "verbose" +#define REDISMODULE_LOGLEVEL_NOTICE "notice" +#define REDISMODULE_LOGLEVEL_WARNING "warning" + +/* Bit flags for aux_save_triggers and the aux_load and aux_save callbacks */ +#define REDISMODULE_AUX_BEFORE_RDB (1<<0) +#define REDISMODULE_AUX_AFTER_RDB (1<<1) + +/* RM_Yield flags */ +#define REDISMODULE_YIELD_FLAG_NONE (1<<0) +#define REDISMODULE_YIELD_FLAG_CLIENTS (1<<1) + +/* This type represents a timer handle, and is returned when a timer is + * registered and used in order to invalidate a timer. It's just a 64 bit + * number, because this is how each timer is represented inside the radix tree + * of timers that are going to expire, sorted by expire time. */ +typedef uint64_t RedisModuleTimerID; + +/* CommandFilter Flags */ + +/* Do filter RedisModule_Call() commands initiated by module itself. */ +#define REDISMODULE_CMDFILTER_NOSELF (1<<0) + +/* Declare that the module can handle errors with RedisModule_SetModuleOptions. */ +#define REDISMODULE_OPTIONS_HANDLE_IO_ERRORS (1<<0) + +/* When set, Redis will not call RedisModule_SignalModifiedKey(), implicitly in + * RedisModule_CloseKey, and the module needs to do that when manually when keys + * are modified from the user's perspective, to invalidate WATCH. */ +#define REDISMODULE_OPTION_NO_IMPLICIT_SIGNAL_MODIFIED (1<<1) + +/* Declare that the module can handle diskless async replication with RedisModule_SetModuleOptions. */ +#define REDISMODULE_OPTIONS_HANDLE_REPL_ASYNC_LOAD (1<<2) + +/* Definitions for RedisModule_SetCommandInfo. */ + +typedef enum { + REDISMODULE_ARG_TYPE_STRING, + REDISMODULE_ARG_TYPE_INTEGER, + REDISMODULE_ARG_TYPE_DOUBLE, + REDISMODULE_ARG_TYPE_KEY, /* A string, but represents a keyname */ + REDISMODULE_ARG_TYPE_PATTERN, + REDISMODULE_ARG_TYPE_UNIX_TIME, + REDISMODULE_ARG_TYPE_PURE_TOKEN, + REDISMODULE_ARG_TYPE_ONEOF, /* Must have sub-arguments */ + REDISMODULE_ARG_TYPE_BLOCK /* Must have sub-arguments */ +} RedisModuleCommandArgType; + +#define REDISMODULE_CMD_ARG_NONE (0) +#define REDISMODULE_CMD_ARG_OPTIONAL (1<<0) /* The argument is optional (like GET in SET command) */ +#define REDISMODULE_CMD_ARG_MULTIPLE (1<<1) /* The argument may repeat itself (like key in DEL) */ +#define REDISMODULE_CMD_ARG_MULTIPLE_TOKEN (1<<2) /* The argument may repeat itself, and so does its token (like `GET pattern` in SORT) */ +#define _REDISMODULE_CMD_ARG_NEXT (1<<3) + +typedef enum { + REDISMODULE_KSPEC_BS_INVALID = 0, /* Must be zero. An implicitly value of + * zero is provided when the field is + * absent in a struct literal. */ + REDISMODULE_KSPEC_BS_UNKNOWN, + REDISMODULE_KSPEC_BS_INDEX, + REDISMODULE_KSPEC_BS_KEYWORD +} RedisModuleKeySpecBeginSearchType; + +typedef enum { + REDISMODULE_KSPEC_FK_OMITTED = 0, /* Used when the field is absent in a + * struct literal. Don't use this value + * explicitly. */ + REDISMODULE_KSPEC_FK_UNKNOWN, + REDISMODULE_KSPEC_FK_RANGE, + REDISMODULE_KSPEC_FK_KEYNUM +} RedisModuleKeySpecFindKeysType; + +/* Key-spec flags. For details, see the documentation of + * RedisModule_SetCommandInfo and the key-spec flags in server.h. */ +#define REDISMODULE_CMD_KEY_RO (1ULL<<0) +#define REDISMODULE_CMD_KEY_RW (1ULL<<1) +#define REDISMODULE_CMD_KEY_OW (1ULL<<2) +#define REDISMODULE_CMD_KEY_RM (1ULL<<3) +#define REDISMODULE_CMD_KEY_ACCESS (1ULL<<4) +#define REDISMODULE_CMD_KEY_UPDATE (1ULL<<5) +#define REDISMODULE_CMD_KEY_INSERT (1ULL<<6) +#define REDISMODULE_CMD_KEY_DELETE (1ULL<<7) +#define REDISMODULE_CMD_KEY_NOT_KEY (1ULL<<8) +#define REDISMODULE_CMD_KEY_INCOMPLETE (1ULL<<9) +#define REDISMODULE_CMD_KEY_VARIABLE_FLAGS (1ULL<<10) + +/* Channel flags, for details see the documentation of + * RedisModule_ChannelAtPosWithFlags. */ +#define REDISMODULE_CMD_CHANNEL_PATTERN (1ULL<<0) +#define REDISMODULE_CMD_CHANNEL_PUBLISH (1ULL<<1) +#define REDISMODULE_CMD_CHANNEL_SUBSCRIBE (1ULL<<2) +#define REDISMODULE_CMD_CHANNEL_UNSUBSCRIBE (1ULL<<3) + +typedef struct RedisModuleCommandArg { + const char *name; + RedisModuleCommandArgType type; + int key_spec_index; /* If type is KEY, this is a zero-based index of + * the key_spec in the command. For other types, + * you may specify -1. */ + const char *token; /* If type is PURE_TOKEN, this is the token. */ + const char *summary; + const char *since; + int flags; /* The REDISMODULE_CMD_ARG_* macros. */ + const char *deprecated_since; + struct RedisModuleCommandArg *subargs; +} RedisModuleCommandArg; + +typedef struct { + const char *since; + const char *changes; +} RedisModuleCommandHistoryEntry; + +typedef struct { + const char *notes; + uint64_t flags; /* REDISMODULE_CMD_KEY_* macros. */ + RedisModuleKeySpecBeginSearchType begin_search_type; + union { + struct { + /* The index from which we start the search for keys */ + int pos; + } index; + struct { + /* The keyword that indicates the beginning of key args */ + const char *keyword; + /* An index in argv from which to start searching. + * Can be negative, which means start search from the end, in reverse + * (Example: -2 means to start in reverse from the penultimate arg) */ + int startfrom; + } keyword; + } bs; + RedisModuleKeySpecFindKeysType find_keys_type; + union { + struct { + /* Index of the last key relative to the result of the begin search + * step. Can be negative, in which case it's not relative. -1 + * indicating till the last argument, -2 one before the last and so + * on. */ + int lastkey; + /* How many args should we skip after finding a key, in order to + * find the next one. */ + int keystep; + /* If lastkey is -1, we use limit to stop the search by a factor. 0 + * and 1 mean no limit. 2 means 1/2 of the remaining args, 3 means + * 1/3, and so on. */ + int limit; + } range; + struct { + /* Index of the argument containing the number of keys to come + * relative to the result of the begin search step */ + int keynumidx; + /* Index of the fist key. (Usually it's just after keynumidx, in + * which case it should be set to keynumidx + 1.) */ + int firstkey; + /* How many args should we skip after finding a key, in order to + * find the next one, relative to the result of the begin search + * step. */ + int keystep; + } keynum; + } fk; +} RedisModuleCommandKeySpec; + +typedef struct { + int version; + size_t sizeof_historyentry; + size_t sizeof_keyspec; + size_t sizeof_arg; +} RedisModuleCommandInfoVersion; + +static const RedisModuleCommandInfoVersion RedisModule_CurrentCommandInfoVersion = { + .version = 1, + .sizeof_historyentry = sizeof(RedisModuleCommandHistoryEntry), + .sizeof_keyspec = sizeof(RedisModuleCommandKeySpec), + .sizeof_arg = sizeof(RedisModuleCommandArg) +}; + +#define REDISMODULE_COMMAND_INFO_VERSION (&RedisModule_CurrentCommandInfoVersion) + +typedef struct { + /* Always set version to REDISMODULE_COMMAND_INFO_VERSION */ + const RedisModuleCommandInfoVersion *version; + /* Version 1 fields (added in Redis 7.0.0) */ + const char *summary; /* Summary of the command */ + const char *complexity; /* Complexity description */ + const char *since; /* Debut module version of the command */ + RedisModuleCommandHistoryEntry *history; /* History */ + /* A string of space-separated tips meant for clients/proxies regarding this + * command */ + const char *tips; + /* Number of arguments, it is possible to use -N to say >= N */ + int arity; + RedisModuleCommandKeySpec *key_specs; + RedisModuleCommandArg *args; +} RedisModuleCommandInfo; + +/* Eventloop definitions. */ +#define REDISMODULE_EVENTLOOP_READABLE 1 +#define REDISMODULE_EVENTLOOP_WRITABLE 2 +typedef void (*RedisModuleEventLoopFunc)(int fd, void *user_data, int mask); +typedef void (*RedisModuleEventLoopOneShotFunc)(void *user_data); + +/* Server events definitions. + * Those flags should not be used directly by the module, instead + * the module should use RedisModuleEvent_* variables. + * Note: This must be synced with moduleEventVersions */ +#define REDISMODULE_EVENT_REPLICATION_ROLE_CHANGED 0 +#define REDISMODULE_EVENT_PERSISTENCE 1 +#define REDISMODULE_EVENT_FLUSHDB 2 +#define REDISMODULE_EVENT_LOADING 3 +#define REDISMODULE_EVENT_CLIENT_CHANGE 4 +#define REDISMODULE_EVENT_SHUTDOWN 5 +#define REDISMODULE_EVENT_REPLICA_CHANGE 6 +#define REDISMODULE_EVENT_MASTER_LINK_CHANGE 7 +#define REDISMODULE_EVENT_CRON_LOOP 8 +#define REDISMODULE_EVENT_MODULE_CHANGE 9 +#define REDISMODULE_EVENT_LOADING_PROGRESS 10 +#define REDISMODULE_EVENT_SWAPDB 11 +#define REDISMODULE_EVENT_REPL_BACKUP 12 /* Deprecated since Redis 7.0, not used anymore. */ +#define REDISMODULE_EVENT_FORK_CHILD 13 +#define REDISMODULE_EVENT_REPL_ASYNC_LOAD 14 +#define REDISMODULE_EVENT_EVENTLOOP 15 +#define REDISMODULE_EVENT_CONFIG 16 +#define _REDISMODULE_EVENT_NEXT 17 /* Next event flag, should be updated if a new event added. */ + +typedef struct RedisModuleEvent { + uint64_t id; /* REDISMODULE_EVENT_... defines. */ + uint64_t dataver; /* Version of the structure we pass as 'data'. */ +} RedisModuleEvent; + +struct RedisModuleCtx; +struct RedisModuleDefragCtx; +typedef void (*RedisModuleEventCallback)(struct RedisModuleCtx *ctx, RedisModuleEvent eid, uint64_t subevent, void *data); + +/* IMPORTANT: When adding a new version of one of below structures that contain + * event data (RedisModuleFlushInfoV1 for example) we have to avoid renaming the + * old RedisModuleEvent structure. + * For example, if we want to add RedisModuleFlushInfoV2, the RedisModuleEvent + * structures should be: + * RedisModuleEvent_FlushDB = { + * REDISMODULE_EVENT_FLUSHDB, + * 1 + * }, + * RedisModuleEvent_FlushDBV2 = { + * REDISMODULE_EVENT_FLUSHDB, + * 2 + * } + * and NOT: + * RedisModuleEvent_FlushDBV1 = { + * REDISMODULE_EVENT_FLUSHDB, + * 1 + * }, + * RedisModuleEvent_FlushDB = { + * REDISMODULE_EVENT_FLUSHDB, + * 2 + * } + * The reason for that is forward-compatibility: We want that module that + * compiled with a new redismodule.h to be able to work with a old server, + * unless the author explicitly decided to use the newer event type. + */ +static const RedisModuleEvent + RedisModuleEvent_ReplicationRoleChanged = { + REDISMODULE_EVENT_REPLICATION_ROLE_CHANGED, + 1 + }, + RedisModuleEvent_Persistence = { + REDISMODULE_EVENT_PERSISTENCE, + 1 + }, + RedisModuleEvent_FlushDB = { + REDISMODULE_EVENT_FLUSHDB, + 1 + }, + RedisModuleEvent_Loading = { + REDISMODULE_EVENT_LOADING, + 1 + }, + RedisModuleEvent_ClientChange = { + REDISMODULE_EVENT_CLIENT_CHANGE, + 1 + }, + RedisModuleEvent_Shutdown = { + REDISMODULE_EVENT_SHUTDOWN, + 1 + }, + RedisModuleEvent_ReplicaChange = { + REDISMODULE_EVENT_REPLICA_CHANGE, + 1 + }, + RedisModuleEvent_CronLoop = { + REDISMODULE_EVENT_CRON_LOOP, + 1 + }, + RedisModuleEvent_MasterLinkChange = { + REDISMODULE_EVENT_MASTER_LINK_CHANGE, + 1 + }, + RedisModuleEvent_ModuleChange = { + REDISMODULE_EVENT_MODULE_CHANGE, + 1 + }, + RedisModuleEvent_LoadingProgress = { + REDISMODULE_EVENT_LOADING_PROGRESS, + 1 + }, + RedisModuleEvent_SwapDB = { + REDISMODULE_EVENT_SWAPDB, + 1 + }, + /* Deprecated since Redis 7.0, not used anymore. */ + __attribute__ ((deprecated)) + RedisModuleEvent_ReplBackup = { + REDISMODULE_EVENT_REPL_BACKUP, + 1 + }, + RedisModuleEvent_ReplAsyncLoad = { + REDISMODULE_EVENT_REPL_ASYNC_LOAD, + 1 + }, + RedisModuleEvent_ForkChild = { + REDISMODULE_EVENT_FORK_CHILD, + 1 + }, + RedisModuleEvent_EventLoop = { + REDISMODULE_EVENT_EVENTLOOP, + 1 + }, + RedisModuleEvent_Config = { + REDISMODULE_EVENT_CONFIG, + 1 + }; + +/* Those are values that are used for the 'subevent' callback argument. */ +#define REDISMODULE_SUBEVENT_PERSISTENCE_RDB_START 0 +#define REDISMODULE_SUBEVENT_PERSISTENCE_AOF_START 1 +#define REDISMODULE_SUBEVENT_PERSISTENCE_SYNC_RDB_START 2 +#define REDISMODULE_SUBEVENT_PERSISTENCE_ENDED 3 +#define REDISMODULE_SUBEVENT_PERSISTENCE_FAILED 4 +#define REDISMODULE_SUBEVENT_PERSISTENCE_SYNC_AOF_START 5 +#define _REDISMODULE_SUBEVENT_PERSISTENCE_NEXT 6 + +#define REDISMODULE_SUBEVENT_LOADING_RDB_START 0 +#define REDISMODULE_SUBEVENT_LOADING_AOF_START 1 +#define REDISMODULE_SUBEVENT_LOADING_REPL_START 2 +#define REDISMODULE_SUBEVENT_LOADING_ENDED 3 +#define REDISMODULE_SUBEVENT_LOADING_FAILED 4 +#define _REDISMODULE_SUBEVENT_LOADING_NEXT 5 + +#define REDISMODULE_SUBEVENT_CLIENT_CHANGE_CONNECTED 0 +#define REDISMODULE_SUBEVENT_CLIENT_CHANGE_DISCONNECTED 1 +#define _REDISMODULE_SUBEVENT_CLIENT_CHANGE_NEXT 2 + +#define REDISMODULE_SUBEVENT_MASTER_LINK_UP 0 +#define REDISMODULE_SUBEVENT_MASTER_LINK_DOWN 1 +#define _REDISMODULE_SUBEVENT_MASTER_NEXT 2 + +#define REDISMODULE_SUBEVENT_REPLICA_CHANGE_ONLINE 0 +#define REDISMODULE_SUBEVENT_REPLICA_CHANGE_OFFLINE 1 +#define _REDISMODULE_SUBEVENT_REPLICA_CHANGE_NEXT 2 + +#define REDISMODULE_EVENT_REPLROLECHANGED_NOW_MASTER 0 +#define REDISMODULE_EVENT_REPLROLECHANGED_NOW_REPLICA 1 +#define _REDISMODULE_EVENT_REPLROLECHANGED_NEXT 2 + +#define REDISMODULE_SUBEVENT_FLUSHDB_START 0 +#define REDISMODULE_SUBEVENT_FLUSHDB_END 1 +#define _REDISMODULE_SUBEVENT_FLUSHDB_NEXT 2 + +#define REDISMODULE_SUBEVENT_MODULE_LOADED 0 +#define REDISMODULE_SUBEVENT_MODULE_UNLOADED 1 +#define _REDISMODULE_SUBEVENT_MODULE_NEXT 2 + +#define REDISMODULE_SUBEVENT_CONFIG_CHANGE 0 +#define _REDISMODULE_SUBEVENT_CONFIG_NEXT 1 + +#define REDISMODULE_SUBEVENT_LOADING_PROGRESS_RDB 0 +#define REDISMODULE_SUBEVENT_LOADING_PROGRESS_AOF 1 +#define _REDISMODULE_SUBEVENT_LOADING_PROGRESS_NEXT 2 + +/* Replication Backup events are deprecated since Redis 7.0 and are never fired. */ +#define REDISMODULE_SUBEVENT_REPL_BACKUP_CREATE 0 +#define REDISMODULE_SUBEVENT_REPL_BACKUP_RESTORE 1 +#define REDISMODULE_SUBEVENT_REPL_BACKUP_DISCARD 2 +#define _REDISMODULE_SUBEVENT_REPL_BACKUP_NEXT 3 + +#define REDISMODULE_SUBEVENT_REPL_ASYNC_LOAD_STARTED 0 +#define REDISMODULE_SUBEVENT_REPL_ASYNC_LOAD_ABORTED 1 +#define REDISMODULE_SUBEVENT_REPL_ASYNC_LOAD_COMPLETED 2 +#define _REDISMODULE_SUBEVENT_REPL_ASYNC_LOAD_NEXT 3 + +#define REDISMODULE_SUBEVENT_FORK_CHILD_BORN 0 +#define REDISMODULE_SUBEVENT_FORK_CHILD_DIED 1 +#define _REDISMODULE_SUBEVENT_FORK_CHILD_NEXT 2 + +#define REDISMODULE_SUBEVENT_EVENTLOOP_BEFORE_SLEEP 0 +#define REDISMODULE_SUBEVENT_EVENTLOOP_AFTER_SLEEP 1 +#define _REDISMODULE_SUBEVENT_EVENTLOOP_NEXT 2 + +#define _REDISMODULE_SUBEVENT_SHUTDOWN_NEXT 0 +#define _REDISMODULE_SUBEVENT_CRON_LOOP_NEXT 0 +#define _REDISMODULE_SUBEVENT_SWAPDB_NEXT 0 + +/* RedisModuleClientInfo flags. */ +#define REDISMODULE_CLIENTINFO_FLAG_SSL (1<<0) +#define REDISMODULE_CLIENTINFO_FLAG_PUBSUB (1<<1) +#define REDISMODULE_CLIENTINFO_FLAG_BLOCKED (1<<2) +#define REDISMODULE_CLIENTINFO_FLAG_TRACKING (1<<3) +#define REDISMODULE_CLIENTINFO_FLAG_UNIXSOCKET (1<<4) +#define REDISMODULE_CLIENTINFO_FLAG_MULTI (1<<5) + +/* Here we take all the structures that the module pass to the core + * and the other way around. Notably the list here contains the structures + * used by the hooks API RedisModule_RegisterToServerEvent(). + * + * The structures always start with a 'version' field. This is useful + * when we want to pass a reference to the structure to the core APIs, + * for the APIs to fill the structure. In that case, the structure 'version' + * field is initialized before passing it to the core, so that the core is + * able to cast the pointer to the appropriate structure version. In this + * way we obtain ABI compatibility. + * + * Here we'll list all the structure versions in case they evolve over time, + * however using a define, we'll make sure to use the last version as the + * public name for the module to use. */ + +#define REDISMODULE_CLIENTINFO_VERSION 1 +typedef struct RedisModuleClientInfo { + uint64_t version; /* Version of this structure for ABI compat. */ + uint64_t flags; /* REDISMODULE_CLIENTINFO_FLAG_* */ + uint64_t id; /* Client ID. */ + char addr[46]; /* IPv4 or IPv6 address. */ + uint16_t port; /* TCP port. */ + uint16_t db; /* Selected DB. */ +} RedisModuleClientInfoV1; + +#define RedisModuleClientInfo RedisModuleClientInfoV1 + +#define REDISMODULE_CLIENTINFO_INITIALIZER_V1 { .version = 1 } + +#define REDISMODULE_REPLICATIONINFO_VERSION 1 +typedef struct RedisModuleReplicationInfo { + uint64_t version; /* Not used since this structure is never passed + from the module to the core right now. Here + for future compatibility. */ + int master; /* true if master, false if replica */ + char *masterhost; /* master instance hostname for NOW_REPLICA */ + int masterport; /* master instance port for NOW_REPLICA */ + char *replid1; /* Main replication ID */ + char *replid2; /* Secondary replication ID */ + uint64_t repl1_offset; /* Main replication offset */ + uint64_t repl2_offset; /* Offset of replid2 validity */ +} RedisModuleReplicationInfoV1; + +#define RedisModuleReplicationInfo RedisModuleReplicationInfoV1 + +#define REDISMODULE_FLUSHINFO_VERSION 1 +typedef struct RedisModuleFlushInfo { + uint64_t version; /* Not used since this structure is never passed + from the module to the core right now. Here + for future compatibility. */ + int32_t sync; /* Synchronous or threaded flush?. */ + int32_t dbnum; /* Flushed database number, -1 for ALL. */ +} RedisModuleFlushInfoV1; + +#define RedisModuleFlushInfo RedisModuleFlushInfoV1 + +#define REDISMODULE_MODULE_CHANGE_VERSION 1 +typedef struct RedisModuleModuleChange { + uint64_t version; /* Not used since this structure is never passed + from the module to the core right now. Here + for future compatibility. */ + const char* module_name;/* Name of module loaded or unloaded. */ + int32_t module_version; /* Module version. */ +} RedisModuleModuleChangeV1; + +#define RedisModuleModuleChange RedisModuleModuleChangeV1 + +#define REDISMODULE_CONFIGCHANGE_VERSION 1 +typedef struct RedisModuleConfigChange { + uint64_t version; /* Not used since this structure is never passed + from the module to the core right now. Here + for future compatibility. */ + uint32_t num_changes; /* how many redis config options were changed */ + const char **config_names; /* the config names that were changed */ +} RedisModuleConfigChangeV1; + +#define RedisModuleConfigChange RedisModuleConfigChangeV1 + +#define REDISMODULE_CRON_LOOP_VERSION 1 +typedef struct RedisModuleCronLoopInfo { + uint64_t version; /* Not used since this structure is never passed + from the module to the core right now. Here + for future compatibility. */ + int32_t hz; /* Approximate number of events per second. */ +} RedisModuleCronLoopV1; + +#define RedisModuleCronLoop RedisModuleCronLoopV1 + +#define REDISMODULE_LOADING_PROGRESS_VERSION 1 +typedef struct RedisModuleLoadingProgressInfo { + uint64_t version; /* Not used since this structure is never passed + from the module to the core right now. Here + for future compatibility. */ + int32_t hz; /* Approximate number of events per second. */ + int32_t progress; /* Approximate progress between 0 and 1024, or -1 + * if unknown. */ +} RedisModuleLoadingProgressV1; + +#define RedisModuleLoadingProgress RedisModuleLoadingProgressV1 + +#define REDISMODULE_SWAPDBINFO_VERSION 1 +typedef struct RedisModuleSwapDbInfo { + uint64_t version; /* Not used since this structure is never passed + from the module to the core right now. Here + for future compatibility. */ + int32_t dbnum_first; /* Swap Db first dbnum */ + int32_t dbnum_second; /* Swap Db second dbnum */ +} RedisModuleSwapDbInfoV1; + +#define RedisModuleSwapDbInfo RedisModuleSwapDbInfoV1 + +typedef enum { + REDISMODULE_ACL_LOG_AUTH = 0, /* Authentication failure */ + REDISMODULE_ACL_LOG_CMD, /* Command authorization failure */ + REDISMODULE_ACL_LOG_KEY, /* Key authorization failure */ + REDISMODULE_ACL_LOG_CHANNEL /* Channel authorization failure */ +} RedisModuleACLLogEntryReason; + +/* ------------------------- End of common defines ------------------------ */ + +#ifndef REDISMODULE_CORE + +typedef long long mstime_t; + +/* Macro definitions specific to individual compilers */ +#ifndef REDISMODULE_ATTR_UNUSED +# ifdef __GNUC__ +# define REDISMODULE_ATTR_UNUSED __attribute__((unused)) +# else +# define REDISMODULE_ATTR_UNUSED +# endif +#endif + +#ifndef REDISMODULE_ATTR_PRINTF +# ifdef __GNUC__ +# define REDISMODULE_ATTR_PRINTF(idx,cnt) __attribute__((format(printf,idx,cnt))) +# else +# define REDISMODULE_ATTR_PRINTF(idx,cnt) +# endif +#endif + +#ifndef REDISMODULE_ATTR_COMMON +# if defined(__GNUC__) && !(defined(__clang__) && defined(__cplusplus)) +# define REDISMODULE_ATTR_COMMON __attribute__((__common__)) +# else +# define REDISMODULE_ATTR_COMMON +# endif +#endif + +/* Incomplete structures for compiler checks but opaque access. */ +typedef struct RedisModuleCtx RedisModuleCtx; +typedef struct RedisModuleCommand RedisModuleCommand; +typedef struct RedisModuleKey RedisModuleKey; +typedef struct RedisModuleString RedisModuleString; +typedef struct RedisModuleCallReply RedisModuleCallReply; +typedef struct RedisModuleIO RedisModuleIO; +typedef struct RedisModuleType RedisModuleType; +typedef struct RedisModuleDigest RedisModuleDigest; +typedef struct RedisModuleBlockedClient RedisModuleBlockedClient; +typedef struct RedisModuleClusterInfo RedisModuleClusterInfo; +typedef struct RedisModuleDict RedisModuleDict; +typedef struct RedisModuleDictIter RedisModuleDictIter; +typedef struct RedisModuleCommandFilterCtx RedisModuleCommandFilterCtx; +typedef struct RedisModuleCommandFilter RedisModuleCommandFilter; +typedef struct RedisModuleInfoCtx RedisModuleInfoCtx; +typedef struct RedisModuleServerInfoData RedisModuleServerInfoData; +typedef struct RedisModuleScanCursor RedisModuleScanCursor; +typedef struct RedisModuleDefragCtx RedisModuleDefragCtx; +typedef struct RedisModuleUser RedisModuleUser; +typedef struct RedisModuleKeyOptCtx RedisModuleKeyOptCtx; + +typedef int (*RedisModuleCmdFunc)(RedisModuleCtx *ctx, RedisModuleString **argv, int argc); +typedef void (*RedisModuleDisconnectFunc)(RedisModuleCtx *ctx, RedisModuleBlockedClient *bc); +typedef int (*RedisModuleNotificationFunc)(RedisModuleCtx *ctx, int type, const char *event, RedisModuleString *key); +typedef void *(*RedisModuleTypeLoadFunc)(RedisModuleIO *rdb, int encver); +typedef void (*RedisModuleTypeSaveFunc)(RedisModuleIO *rdb, void *value); +typedef int (*RedisModuleTypeAuxLoadFunc)(RedisModuleIO *rdb, int encver, int when); +typedef void (*RedisModuleTypeAuxSaveFunc)(RedisModuleIO *rdb, int when); +typedef void (*RedisModuleTypeRewriteFunc)(RedisModuleIO *aof, RedisModuleString *key, void *value); +typedef size_t (*RedisModuleTypeMemUsageFunc)(const void *value); +typedef size_t (*RedisModuleTypeMemUsageFunc2)(RedisModuleKeyOptCtx *ctx, const void *value, size_t sample_size); +typedef void (*RedisModuleTypeDigestFunc)(RedisModuleDigest *digest, void *value); +typedef void (*RedisModuleTypeFreeFunc)(void *value); +typedef size_t (*RedisModuleTypeFreeEffortFunc)(RedisModuleString *key, const void *value); +typedef size_t (*RedisModuleTypeFreeEffortFunc2)(RedisModuleKeyOptCtx *ctx, const void *value); +typedef void (*RedisModuleTypeUnlinkFunc)(RedisModuleString *key, const void *value); +typedef void (*RedisModuleTypeUnlinkFunc2)(RedisModuleKeyOptCtx *ctx, const void *value); +typedef void *(*RedisModuleTypeCopyFunc)(RedisModuleString *fromkey, RedisModuleString *tokey, const void *value); +typedef void *(*RedisModuleTypeCopyFunc2)(RedisModuleKeyOptCtx *ctx, const void *value); +typedef int (*RedisModuleTypeDefragFunc)(RedisModuleDefragCtx *ctx, RedisModuleString *key, void **value); +typedef void (*RedisModuleClusterMessageReceiver)(RedisModuleCtx *ctx, const char *sender_id, uint8_t type, const unsigned char *payload, uint32_t len); +typedef void (*RedisModuleTimerProc)(RedisModuleCtx *ctx, void *data); +typedef void (*RedisModuleCommandFilterFunc) (RedisModuleCommandFilterCtx *filter); +typedef void (*RedisModuleForkDoneHandler) (int exitcode, int bysignal, void *user_data); +typedef void (*RedisModuleInfoFunc)(RedisModuleInfoCtx *ctx, int for_crash_report); +typedef void (*RedisModuleScanCB)(RedisModuleCtx *ctx, RedisModuleString *keyname, RedisModuleKey *key, void *privdata); +typedef void (*RedisModuleScanKeyCB)(RedisModuleKey *key, RedisModuleString *field, RedisModuleString *value, void *privdata); +typedef void (*RedisModuleUserChangedFunc) (uint64_t client_id, void *privdata); +typedef int (*RedisModuleDefragFunc)(RedisModuleDefragCtx *ctx); +typedef RedisModuleString * (*RedisModuleConfigGetStringFunc)(const char *name, void *privdata); +typedef long long (*RedisModuleConfigGetNumericFunc)(const char *name, void *privdata); +typedef int (*RedisModuleConfigGetBoolFunc)(const char *name, void *privdata); +typedef int (*RedisModuleConfigGetEnumFunc)(const char *name, void *privdata); +typedef int (*RedisModuleConfigSetStringFunc)(const char *name, RedisModuleString *val, void *privdata, RedisModuleString **err); +typedef int (*RedisModuleConfigSetNumericFunc)(const char *name, long long val, void *privdata, RedisModuleString **err); +typedef int (*RedisModuleConfigSetBoolFunc)(const char *name, int val, void *privdata, RedisModuleString **err); +typedef int (*RedisModuleConfigSetEnumFunc)(const char *name, int val, void *privdata, RedisModuleString **err); +typedef int (*RedisModuleConfigApplyFunc)(RedisModuleCtx *ctx, void *privdata, RedisModuleString **err); + +typedef struct RedisModuleTypeMethods { + uint64_t version; + RedisModuleTypeLoadFunc rdb_load; + RedisModuleTypeSaveFunc rdb_save; + RedisModuleTypeRewriteFunc aof_rewrite; + RedisModuleTypeMemUsageFunc mem_usage; + RedisModuleTypeDigestFunc digest; + RedisModuleTypeFreeFunc free; + RedisModuleTypeAuxLoadFunc aux_load; + RedisModuleTypeAuxSaveFunc aux_save; + int aux_save_triggers; + RedisModuleTypeFreeEffortFunc free_effort; + RedisModuleTypeUnlinkFunc unlink; + RedisModuleTypeCopyFunc copy; + RedisModuleTypeDefragFunc defrag; + RedisModuleTypeMemUsageFunc2 mem_usage2; + RedisModuleTypeFreeEffortFunc2 free_effort2; + RedisModuleTypeUnlinkFunc2 unlink2; + RedisModuleTypeCopyFunc2 copy2; +} RedisModuleTypeMethods; + +#define REDISMODULE_GET_API(name) \ + RedisModule_GetApi("RedisModule_" #name, ((void **)&RedisModule_ ## name)) + +/* Default API declaration prefix (not 'extern' for backwards compatibility) */ +#ifndef REDISMODULE_MAIN +#define REDISMODULE_API extern +#endif + +#ifndef REDISMODULE_API +#define REDISMODULE_API +#endif + +/* Default API declaration suffix (compiler attributes) */ +#ifndef REDISMODULE_ATTR +#define REDISMODULE_ATTR REDISMODULE_ATTR_COMMON +#endif + +REDISMODULE_API void * (*RedisModule_Alloc)(size_t bytes) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_TryAlloc)(size_t bytes) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_Realloc)(void *ptr, size_t bytes) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_Free)(void *ptr) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_Calloc)(size_t nmemb, size_t size) REDISMODULE_ATTR; +REDISMODULE_API char * (*RedisModule_Strdup)(const char *str) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetApi)(const char *, void *) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_CreateCommand)(RedisModuleCtx *ctx, const char *name, RedisModuleCmdFunc cmdfunc, const char *strflags, int firstkey, int lastkey, int keystep) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleCommand *(*RedisModule_GetCommand)(RedisModuleCtx *ctx, const char *name) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_CreateSubcommand)(RedisModuleCommand *parent, const char *name, RedisModuleCmdFunc cmdfunc, const char *strflags, int firstkey, int lastkey, int keystep) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SetCommandInfo)(RedisModuleCommand *command, const RedisModuleCommandInfo *info) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SetModuleAttribs)(RedisModuleCtx *ctx, const char *name, int ver, int apiver) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_IsModuleNameBusy)(const char *name) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_WrongArity)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithLongLong)(RedisModuleCtx *ctx, long long ll) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetSelectedDb)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SelectDb)(RedisModuleCtx *ctx, int newid) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_KeyExists)(RedisModuleCtx *ctx, RedisModuleString *keyname) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleKey * (*RedisModule_OpenKey)(RedisModuleCtx *ctx, RedisModuleString *keyname, int mode) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_CloseKey)(RedisModuleKey *kp) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_KeyType)(RedisModuleKey *kp) REDISMODULE_ATTR; +REDISMODULE_API size_t (*RedisModule_ValueLength)(RedisModuleKey *kp) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ListPush)(RedisModuleKey *kp, int where, RedisModuleString *ele) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_ListPop)(RedisModuleKey *key, int where) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_ListGet)(RedisModuleKey *key, long index) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ListSet)(RedisModuleKey *key, long index, RedisModuleString *value) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ListInsert)(RedisModuleKey *key, long index, RedisModuleString *value) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ListDelete)(RedisModuleKey *key, long index) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleCallReply * (*RedisModule_Call)(RedisModuleCtx *ctx, const char *cmdname, const char *fmt, ...) REDISMODULE_ATTR; +REDISMODULE_API const char * (*RedisModule_CallReplyProto)(RedisModuleCallReply *reply, size_t *len) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_FreeCallReply)(RedisModuleCallReply *reply) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_CallReplyType)(RedisModuleCallReply *reply) REDISMODULE_ATTR; +REDISMODULE_API long long (*RedisModule_CallReplyInteger)(RedisModuleCallReply *reply) REDISMODULE_ATTR; +REDISMODULE_API double (*RedisModule_CallReplyDouble)(RedisModuleCallReply *reply) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_CallReplyBool)(RedisModuleCallReply *reply) REDISMODULE_ATTR; +REDISMODULE_API const char* (*RedisModule_CallReplyBigNumber)(RedisModuleCallReply *reply, size_t *len) REDISMODULE_ATTR; +REDISMODULE_API const char* (*RedisModule_CallReplyVerbatim)(RedisModuleCallReply *reply, size_t *len, const char **format) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleCallReply * (*RedisModule_CallReplySetElement)(RedisModuleCallReply *reply, size_t idx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_CallReplyMapElement)(RedisModuleCallReply *reply, size_t idx, RedisModuleCallReply **key, RedisModuleCallReply **val) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_CallReplyAttributeElement)(RedisModuleCallReply *reply, size_t idx, RedisModuleCallReply **key, RedisModuleCallReply **val) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleCallReply * (*RedisModule_CallReplyAttribute)(RedisModuleCallReply *reply) REDISMODULE_ATTR; +REDISMODULE_API size_t (*RedisModule_CallReplyLength)(RedisModuleCallReply *reply) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleCallReply * (*RedisModule_CallReplyArrayElement)(RedisModuleCallReply *reply, size_t idx) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_CreateString)(RedisModuleCtx *ctx, const char *ptr, size_t len) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_CreateStringFromLongLong)(RedisModuleCtx *ctx, long long ll) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_CreateStringFromULongLong)(RedisModuleCtx *ctx, unsigned long long ull) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_CreateStringFromDouble)(RedisModuleCtx *ctx, double d) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_CreateStringFromLongDouble)(RedisModuleCtx *ctx, long double ld, int humanfriendly) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_CreateStringFromString)(RedisModuleCtx *ctx, const RedisModuleString *str) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_CreateStringFromStreamID)(RedisModuleCtx *ctx, const RedisModuleStreamID *id) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_CreateStringPrintf)(RedisModuleCtx *ctx, const char *fmt, ...) REDISMODULE_ATTR_PRINTF(2,3) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_FreeString)(RedisModuleCtx *ctx, RedisModuleString *str) REDISMODULE_ATTR; +REDISMODULE_API const char * (*RedisModule_StringPtrLen)(const RedisModuleString *str, size_t *len) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithError)(RedisModuleCtx *ctx, const char *err) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithSimpleString)(RedisModuleCtx *ctx, const char *msg) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithArray)(RedisModuleCtx *ctx, long len) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithMap)(RedisModuleCtx *ctx, long len) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithSet)(RedisModuleCtx *ctx, long len) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithAttribute)(RedisModuleCtx *ctx, long len) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithNullArray)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithEmptyArray)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ReplySetArrayLength)(RedisModuleCtx *ctx, long len) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ReplySetMapLength)(RedisModuleCtx *ctx, long len) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ReplySetSetLength)(RedisModuleCtx *ctx, long len) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ReplySetAttributeLength)(RedisModuleCtx *ctx, long len) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ReplySetPushLength)(RedisModuleCtx *ctx, long len) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithStringBuffer)(RedisModuleCtx *ctx, const char *buf, size_t len) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithCString)(RedisModuleCtx *ctx, const char *buf) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithString)(RedisModuleCtx *ctx, RedisModuleString *str) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithEmptyString)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithVerbatimString)(RedisModuleCtx *ctx, const char *buf, size_t len) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithVerbatimStringType)(RedisModuleCtx *ctx, const char *buf, size_t len, const char *ext) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithNull)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithBool)(RedisModuleCtx *ctx, int b) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithLongDouble)(RedisModuleCtx *ctx, long double d) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithDouble)(RedisModuleCtx *ctx, double d) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithBigNumber)(RedisModuleCtx *ctx, const char *bignum, size_t len) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplyWithCallReply)(RedisModuleCtx *ctx, RedisModuleCallReply *reply) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StringToLongLong)(const RedisModuleString *str, long long *ll) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StringToULongLong)(const RedisModuleString *str, unsigned long long *ull) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StringToDouble)(const RedisModuleString *str, double *d) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StringToLongDouble)(const RedisModuleString *str, long double *d) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StringToStreamID)(const RedisModuleString *str, RedisModuleStreamID *id) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_AutoMemory)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_Replicate)(RedisModuleCtx *ctx, const char *cmdname, const char *fmt, ...) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ReplicateVerbatim)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API const char * (*RedisModule_CallReplyStringPtr)(RedisModuleCallReply *reply, size_t *len) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_CreateStringFromCallReply)(RedisModuleCallReply *reply) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DeleteKey)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_UnlinkKey)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StringSet)(RedisModuleKey *key, RedisModuleString *str) REDISMODULE_ATTR; +REDISMODULE_API char * (*RedisModule_StringDMA)(RedisModuleKey *key, size_t *len, int mode) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StringTruncate)(RedisModuleKey *key, size_t newlen) REDISMODULE_ATTR; +REDISMODULE_API mstime_t (*RedisModule_GetExpire)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SetExpire)(RedisModuleKey *key, mstime_t expire) REDISMODULE_ATTR; +REDISMODULE_API mstime_t (*RedisModule_GetAbsExpire)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SetAbsExpire)(RedisModuleKey *key, mstime_t expire) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ResetDataset)(int restart_aof, int async) REDISMODULE_ATTR; +REDISMODULE_API unsigned long long (*RedisModule_DbSize)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_RandomKey)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ZsetAdd)(RedisModuleKey *key, double score, RedisModuleString *ele, int *flagsptr) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ZsetIncrby)(RedisModuleKey *key, double score, RedisModuleString *ele, int *flagsptr, double *newscore) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ZsetScore)(RedisModuleKey *key, RedisModuleString *ele, double *score) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ZsetRem)(RedisModuleKey *key, RedisModuleString *ele, int *deleted) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ZsetRangeStop)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ZsetFirstInScoreRange)(RedisModuleKey *key, double min, double max, int minex, int maxex) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ZsetLastInScoreRange)(RedisModuleKey *key, double min, double max, int minex, int maxex) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ZsetFirstInLexRange)(RedisModuleKey *key, RedisModuleString *min, RedisModuleString *max) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ZsetLastInLexRange)(RedisModuleKey *key, RedisModuleString *min, RedisModuleString *max) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_ZsetRangeCurrentElement)(RedisModuleKey *key, double *score) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ZsetRangeNext)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ZsetRangePrev)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ZsetRangeEndReached)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_HashSet)(RedisModuleKey *key, int flags, ...) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_HashGet)(RedisModuleKey *key, int flags, ...) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StreamAdd)(RedisModuleKey *key, int flags, RedisModuleStreamID *id, RedisModuleString **argv, int64_t numfields) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StreamDelete)(RedisModuleKey *key, RedisModuleStreamID *id) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StreamIteratorStart)(RedisModuleKey *key, int flags, RedisModuleStreamID *startid, RedisModuleStreamID *endid) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StreamIteratorStop)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StreamIteratorNextID)(RedisModuleKey *key, RedisModuleStreamID *id, long *numfields) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StreamIteratorNextField)(RedisModuleKey *key, RedisModuleString **field_ptr, RedisModuleString **value_ptr) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StreamIteratorDelete)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API long long (*RedisModule_StreamTrimByLength)(RedisModuleKey *key, int flags, long long length) REDISMODULE_ATTR; +REDISMODULE_API long long (*RedisModule_StreamTrimByID)(RedisModuleKey *key, int flags, RedisModuleStreamID *id) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_IsKeysPositionRequest)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_KeyAtPos)(RedisModuleCtx *ctx, int pos) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_KeyAtPosWithFlags)(RedisModuleCtx *ctx, int pos, int flags) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_IsChannelsPositionRequest)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ChannelAtPosWithFlags)(RedisModuleCtx *ctx, int pos, int flags) REDISMODULE_ATTR; +REDISMODULE_API unsigned long long (*RedisModule_GetClientId)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_GetClientUserNameById)(RedisModuleCtx *ctx, uint64_t id) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetClientInfoById)(void *ci, uint64_t id) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_GetClientNameById)(RedisModuleCtx *ctx, uint64_t id) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SetClientNameById)(uint64_t id, RedisModuleString *name) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_PublishMessage)(RedisModuleCtx *ctx, RedisModuleString *channel, RedisModuleString *message) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_PublishMessageShard)(RedisModuleCtx *ctx, RedisModuleString *channel, RedisModuleString *message) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetContextFlags)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_AvoidReplicaTraffic)() REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_PoolAlloc)(RedisModuleCtx *ctx, size_t bytes) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleType * (*RedisModule_CreateDataType)(RedisModuleCtx *ctx, const char *name, int encver, RedisModuleTypeMethods *typemethods) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ModuleTypeSetValue)(RedisModuleKey *key, RedisModuleType *mt, void *value) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ModuleTypeReplaceValue)(RedisModuleKey *key, RedisModuleType *mt, void *new_value, void **old_value) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleType * (*RedisModule_ModuleTypeGetType)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_ModuleTypeGetValue)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_IsIOError)(RedisModuleIO *io) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SetModuleOptions)(RedisModuleCtx *ctx, int options) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SignalModifiedKey)(RedisModuleCtx *ctx, RedisModuleString *keyname) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SaveUnsigned)(RedisModuleIO *io, uint64_t value) REDISMODULE_ATTR; +REDISMODULE_API uint64_t (*RedisModule_LoadUnsigned)(RedisModuleIO *io) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SaveSigned)(RedisModuleIO *io, int64_t value) REDISMODULE_ATTR; +REDISMODULE_API int64_t (*RedisModule_LoadSigned)(RedisModuleIO *io) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_EmitAOF)(RedisModuleIO *io, const char *cmdname, const char *fmt, ...) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SaveString)(RedisModuleIO *io, RedisModuleString *s) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SaveStringBuffer)(RedisModuleIO *io, const char *str, size_t len) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_LoadString)(RedisModuleIO *io) REDISMODULE_ATTR; +REDISMODULE_API char * (*RedisModule_LoadStringBuffer)(RedisModuleIO *io, size_t *lenptr) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SaveDouble)(RedisModuleIO *io, double value) REDISMODULE_ATTR; +REDISMODULE_API double (*RedisModule_LoadDouble)(RedisModuleIO *io) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SaveFloat)(RedisModuleIO *io, float value) REDISMODULE_ATTR; +REDISMODULE_API float (*RedisModule_LoadFloat)(RedisModuleIO *io) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SaveLongDouble)(RedisModuleIO *io, long double value) REDISMODULE_ATTR; +REDISMODULE_API long double (*RedisModule_LoadLongDouble)(RedisModuleIO *io) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_LoadDataTypeFromString)(const RedisModuleString *str, const RedisModuleType *mt) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_LoadDataTypeFromStringEncver)(const RedisModuleString *str, const RedisModuleType *mt, int encver) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_SaveDataTypeToString)(RedisModuleCtx *ctx, void *data, const RedisModuleType *mt) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_Log)(RedisModuleCtx *ctx, const char *level, const char *fmt, ...) REDISMODULE_ATTR REDISMODULE_ATTR_PRINTF(3,4); +REDISMODULE_API void (*RedisModule_LogIOError)(RedisModuleIO *io, const char *levelstr, const char *fmt, ...) REDISMODULE_ATTR REDISMODULE_ATTR_PRINTF(3,4); +REDISMODULE_API void (*RedisModule__Assert)(const char *estr, const char *file, int line) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_LatencyAddSample)(const char *event, mstime_t latency) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StringAppendBuffer)(RedisModuleCtx *ctx, RedisModuleString *str, const char *buf, size_t len) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_TrimStringAllocation)(RedisModuleString *str) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_RetainString)(RedisModuleCtx *ctx, RedisModuleString *str) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_HoldString)(RedisModuleCtx *ctx, RedisModuleString *str) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StringCompare)(RedisModuleString *a, RedisModuleString *b) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleCtx * (*RedisModule_GetContextFromIO)(RedisModuleIO *io) REDISMODULE_ATTR; +REDISMODULE_API const RedisModuleString * (*RedisModule_GetKeyNameFromIO)(RedisModuleIO *io) REDISMODULE_ATTR; +REDISMODULE_API const RedisModuleString * (*RedisModule_GetKeyNameFromModuleKey)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetDbIdFromModuleKey)(RedisModuleKey *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetDbIdFromIO)(RedisModuleIO *io) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetDbIdFromOptCtx)(RedisModuleKeyOptCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetToDbIdFromOptCtx)(RedisModuleKeyOptCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API const RedisModuleString * (*RedisModule_GetKeyNameFromOptCtx)(RedisModuleKeyOptCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API const RedisModuleString * (*RedisModule_GetToKeyNameFromOptCtx)(RedisModuleKeyOptCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API long long (*RedisModule_Milliseconds)(void) REDISMODULE_ATTR; +REDISMODULE_API uint64_t (*RedisModule_MonotonicMicroseconds)(void) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_DigestAddStringBuffer)(RedisModuleDigest *md, const char *ele, size_t len) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_DigestAddLongLong)(RedisModuleDigest *md, long long ele) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_DigestEndSequence)(RedisModuleDigest *md) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetDbIdFromDigest)(RedisModuleDigest *dig) REDISMODULE_ATTR; +REDISMODULE_API const RedisModuleString * (*RedisModule_GetKeyNameFromDigest)(RedisModuleDigest *dig) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleDict * (*RedisModule_CreateDict)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_FreeDict)(RedisModuleCtx *ctx, RedisModuleDict *d) REDISMODULE_ATTR; +REDISMODULE_API uint64_t (*RedisModule_DictSize)(RedisModuleDict *d) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DictSetC)(RedisModuleDict *d, void *key, size_t keylen, void *ptr) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DictReplaceC)(RedisModuleDict *d, void *key, size_t keylen, void *ptr) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DictSet)(RedisModuleDict *d, RedisModuleString *key, void *ptr) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DictReplace)(RedisModuleDict *d, RedisModuleString *key, void *ptr) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_DictGetC)(RedisModuleDict *d, void *key, size_t keylen, int *nokey) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_DictGet)(RedisModuleDict *d, RedisModuleString *key, int *nokey) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DictDelC)(RedisModuleDict *d, void *key, size_t keylen, void *oldval) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DictDel)(RedisModuleDict *d, RedisModuleString *key, void *oldval) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleDictIter * (*RedisModule_DictIteratorStartC)(RedisModuleDict *d, const char *op, void *key, size_t keylen) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleDictIter * (*RedisModule_DictIteratorStart)(RedisModuleDict *d, const char *op, RedisModuleString *key) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_DictIteratorStop)(RedisModuleDictIter *di) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DictIteratorReseekC)(RedisModuleDictIter *di, const char *op, void *key, size_t keylen) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DictIteratorReseek)(RedisModuleDictIter *di, const char *op, RedisModuleString *key) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_DictNextC)(RedisModuleDictIter *di, size_t *keylen, void **dataptr) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_DictPrevC)(RedisModuleDictIter *di, size_t *keylen, void **dataptr) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_DictNext)(RedisModuleCtx *ctx, RedisModuleDictIter *di, void **dataptr) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_DictPrev)(RedisModuleCtx *ctx, RedisModuleDictIter *di, void **dataptr) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DictCompareC)(RedisModuleDictIter *di, const char *op, void *key, size_t keylen) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DictCompare)(RedisModuleDictIter *di, const char *op, RedisModuleString *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_RegisterInfoFunc)(RedisModuleCtx *ctx, RedisModuleInfoFunc cb) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_InfoAddSection)(RedisModuleInfoCtx *ctx, const char *name) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_InfoBeginDictField)(RedisModuleInfoCtx *ctx, const char *name) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_InfoEndDictField)(RedisModuleInfoCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_InfoAddFieldString)(RedisModuleInfoCtx *ctx, const char *field, RedisModuleString *value) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_InfoAddFieldCString)(RedisModuleInfoCtx *ctx, const char *field,const char *value) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_InfoAddFieldDouble)(RedisModuleInfoCtx *ctx, const char *field, double value) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_InfoAddFieldLongLong)(RedisModuleInfoCtx *ctx, const char *field, long long value) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_InfoAddFieldULongLong)(RedisModuleInfoCtx *ctx, const char *field, unsigned long long value) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleServerInfoData * (*RedisModule_GetServerInfo)(RedisModuleCtx *ctx, const char *section) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_FreeServerInfo)(RedisModuleCtx *ctx, RedisModuleServerInfoData *data) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_ServerInfoGetField)(RedisModuleCtx *ctx, RedisModuleServerInfoData *data, const char* field) REDISMODULE_ATTR; +REDISMODULE_API const char * (*RedisModule_ServerInfoGetFieldC)(RedisModuleServerInfoData *data, const char* field) REDISMODULE_ATTR; +REDISMODULE_API long long (*RedisModule_ServerInfoGetFieldSigned)(RedisModuleServerInfoData *data, const char* field, int *out_err) REDISMODULE_ATTR; +REDISMODULE_API unsigned long long (*RedisModule_ServerInfoGetFieldUnsigned)(RedisModuleServerInfoData *data, const char* field, int *out_err) REDISMODULE_ATTR; +REDISMODULE_API double (*RedisModule_ServerInfoGetFieldDouble)(RedisModuleServerInfoData *data, const char* field, int *out_err) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SubscribeToServerEvent)(RedisModuleCtx *ctx, RedisModuleEvent event, RedisModuleEventCallback callback) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SetLRU)(RedisModuleKey *key, mstime_t lru_idle) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetLRU)(RedisModuleKey *key, mstime_t *lru_idle) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SetLFU)(RedisModuleKey *key, long long lfu_freq) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetLFU)(RedisModuleKey *key, long long *lfu_freq) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleBlockedClient * (*RedisModule_BlockClientOnKeys)(RedisModuleCtx *ctx, RedisModuleCmdFunc reply_callback, RedisModuleCmdFunc timeout_callback, void (*free_privdata)(RedisModuleCtx*,void*), long long timeout_ms, RedisModuleString **keys, int numkeys, void *privdata) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SignalKeyAsReady)(RedisModuleCtx *ctx, RedisModuleString *key) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_GetBlockedClientReadyKey)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleScanCursor * (*RedisModule_ScanCursorCreate)() REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ScanCursorRestart)(RedisModuleScanCursor *cursor) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ScanCursorDestroy)(RedisModuleScanCursor *cursor) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_Scan)(RedisModuleCtx *ctx, RedisModuleScanCursor *cursor, RedisModuleScanCB fn, void *privdata) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ScanKey)(RedisModuleKey *key, RedisModuleScanCursor *cursor, RedisModuleScanKeyCB fn, void *privdata) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetContextFlagsAll)() REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetKeyspaceNotificationFlagsAll)() REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_IsSubEventSupported)(RedisModuleEvent event, uint64_t subevent) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetServerVersion)() REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetTypeMethodVersion)() REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_Yield)(RedisModuleCtx *ctx, int flags, const char *busy_reply) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleBlockedClient * (*RedisModule_BlockClient)(RedisModuleCtx *ctx, RedisModuleCmdFunc reply_callback, RedisModuleCmdFunc timeout_callback, void (*free_privdata)(RedisModuleCtx*,void*), long long timeout_ms) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_UnblockClient)(RedisModuleBlockedClient *bc, void *privdata) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_IsBlockedReplyRequest)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_IsBlockedTimeoutRequest)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_GetBlockedClientPrivateData)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleBlockedClient * (*RedisModule_GetBlockedClientHandle)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_AbortBlock)(RedisModuleBlockedClient *bc) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_BlockedClientMeasureTimeStart)(RedisModuleBlockedClient *bc) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_BlockedClientMeasureTimeEnd)(RedisModuleBlockedClient *bc) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleCtx * (*RedisModule_GetThreadSafeContext)(RedisModuleBlockedClient *bc) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleCtx * (*RedisModule_GetDetachedThreadSafeContext)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_FreeThreadSafeContext)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ThreadSafeContextLock)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ThreadSafeContextTryLock)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ThreadSafeContextUnlock)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SubscribeToKeyspaceEvents)(RedisModuleCtx *ctx, int types, RedisModuleNotificationFunc cb) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_NotifyKeyspaceEvent)(RedisModuleCtx *ctx, int type, const char *event, RedisModuleString *key) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetNotifyKeyspaceEvents)() REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_BlockedClientDisconnected)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_RegisterClusterMessageReceiver)(RedisModuleCtx *ctx, uint8_t type, RedisModuleClusterMessageReceiver callback) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SendClusterMessage)(RedisModuleCtx *ctx, const char *target_id, uint8_t type, const char *msg, uint32_t len) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetClusterNodeInfo)(RedisModuleCtx *ctx, const char *id, char *ip, char *master_id, int *port, int *flags) REDISMODULE_ATTR; +REDISMODULE_API char ** (*RedisModule_GetClusterNodesList)(RedisModuleCtx *ctx, size_t *numnodes) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_FreeClusterNodesList)(char **ids) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleTimerID (*RedisModule_CreateTimer)(RedisModuleCtx *ctx, mstime_t period, RedisModuleTimerProc callback, void *data) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_StopTimer)(RedisModuleCtx *ctx, RedisModuleTimerID id, void **data) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetTimerInfo)(RedisModuleCtx *ctx, RedisModuleTimerID id, uint64_t *remaining, void **data) REDISMODULE_ATTR; +REDISMODULE_API const char * (*RedisModule_GetMyClusterID)(void) REDISMODULE_ATTR; +REDISMODULE_API size_t (*RedisModule_GetClusterSize)(void) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_GetRandomBytes)(unsigned char *dst, size_t len) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_GetRandomHexChars)(char *dst, size_t len) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SetDisconnectCallback)(RedisModuleBlockedClient *bc, RedisModuleDisconnectFunc callback) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SetClusterFlags)(RedisModuleCtx *ctx, uint64_t flags) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ExportSharedAPI)(RedisModuleCtx *ctx, const char *apiname, void *func) REDISMODULE_ATTR; +REDISMODULE_API void * (*RedisModule_GetSharedAPI)(RedisModuleCtx *ctx, const char *apiname) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleCommandFilter * (*RedisModule_RegisterCommandFilter)(RedisModuleCtx *ctx, RedisModuleCommandFilterFunc cb, int flags) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_UnregisterCommandFilter)(RedisModuleCtx *ctx, RedisModuleCommandFilter *filter) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_CommandFilterArgsCount)(RedisModuleCommandFilterCtx *fctx) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_CommandFilterArgGet)(RedisModuleCommandFilterCtx *fctx, int pos) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_CommandFilterArgInsert)(RedisModuleCommandFilterCtx *fctx, int pos, RedisModuleString *arg) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_CommandFilterArgReplace)(RedisModuleCommandFilterCtx *fctx, int pos, RedisModuleString *arg) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_CommandFilterArgDelete)(RedisModuleCommandFilterCtx *fctx, int pos) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_Fork)(RedisModuleForkDoneHandler cb, void *user_data) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SendChildHeartbeat)(double progress) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ExitFromChild)(int retcode) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_KillForkChild)(int child_pid) REDISMODULE_ATTR; +REDISMODULE_API float (*RedisModule_GetUsedMemoryRatio)() REDISMODULE_ATTR; +REDISMODULE_API size_t (*RedisModule_MallocSize)(void* ptr) REDISMODULE_ATTR; +REDISMODULE_API size_t (*RedisModule_MallocUsableSize)(void *ptr) REDISMODULE_ATTR; +REDISMODULE_API size_t (*RedisModule_MallocSizeString)(RedisModuleString* str) REDISMODULE_ATTR; +REDISMODULE_API size_t (*RedisModule_MallocSizeDict)(RedisModuleDict* dict) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleUser * (*RedisModule_CreateModuleUser)(const char *name) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_FreeModuleUser)(RedisModuleUser *user) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_SetContextUser)(RedisModuleCtx *ctx, const RedisModuleUser *user) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SetModuleUserACL)(RedisModuleUser *user, const char* acl) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_SetModuleUserACLString)(RedisModuleCtx * ctx, RedisModuleUser *user, const char* acl, RedisModuleString **error) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_GetModuleUserACLString)(RedisModuleUser *user) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_GetCurrentUserName)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleUser * (*RedisModule_GetModuleUserFromUserName)(RedisModuleString *name) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ACLCheckCommandPermissions)(RedisModuleUser *user, RedisModuleString **argv, int argc) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ACLCheckKeyPermissions)(RedisModuleUser *user, RedisModuleString *key, int flags) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_ACLCheckChannelPermissions)(RedisModuleUser *user, RedisModuleString *ch, int literal) REDISMODULE_ATTR; +REDISMODULE_API void (*RedisModule_ACLAddLogEntry)(RedisModuleCtx *ctx, RedisModuleUser *user, RedisModuleString *object, RedisModuleACLLogEntryReason reason) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_AuthenticateClientWithACLUser)(RedisModuleCtx *ctx, const char *name, size_t len, RedisModuleUserChangedFunc callback, void *privdata, uint64_t *client_id) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_AuthenticateClientWithUser)(RedisModuleCtx *ctx, RedisModuleUser *user, RedisModuleUserChangedFunc callback, void *privdata, uint64_t *client_id) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DeauthenticateAndCloseClient)(RedisModuleCtx *ctx, uint64_t client_id) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_RedactClientCommandArgument)(RedisModuleCtx *ctx, int pos) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString * (*RedisModule_GetClientCertificate)(RedisModuleCtx *ctx, uint64_t id) REDISMODULE_ATTR; +REDISMODULE_API int *(*RedisModule_GetCommandKeys)(RedisModuleCtx *ctx, RedisModuleString **argv, int argc, int *num_keys) REDISMODULE_ATTR; +REDISMODULE_API int *(*RedisModule_GetCommandKeysWithFlags)(RedisModuleCtx *ctx, RedisModuleString **argv, int argc, int *num_keys, int **out_flags) REDISMODULE_ATTR; +REDISMODULE_API const char *(*RedisModule_GetCurrentCommandName)(RedisModuleCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_RegisterDefragFunc)(RedisModuleCtx *ctx, RedisModuleDefragFunc func) REDISMODULE_ATTR; +REDISMODULE_API void *(*RedisModule_DefragAlloc)(RedisModuleDefragCtx *ctx, void *ptr) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleString *(*RedisModule_DefragRedisModuleString)(RedisModuleDefragCtx *ctx, RedisModuleString *str) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DefragShouldStop)(RedisModuleDefragCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DefragCursorSet)(RedisModuleDefragCtx *ctx, unsigned long cursor) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_DefragCursorGet)(RedisModuleDefragCtx *ctx, unsigned long *cursor) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetDbIdFromDefragCtx)(RedisModuleDefragCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API const RedisModuleString * (*RedisModule_GetKeyNameFromDefragCtx)(RedisModuleDefragCtx *ctx) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_EventLoopAdd)(int fd, int mask, RedisModuleEventLoopFunc func, void *user_data) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_EventLoopDel)(int fd, int mask) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_EventLoopAddOneShot)(RedisModuleEventLoopOneShotFunc func, void *user_data) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_RegisterBoolConfig)(RedisModuleCtx *ctx, const char *name, int default_val, unsigned int flags, RedisModuleConfigGetBoolFunc getfn, RedisModuleConfigSetBoolFunc setfn, RedisModuleConfigApplyFunc applyfn, void *privdata) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_RegisterNumericConfig)(RedisModuleCtx *ctx, const char *name, long long default_val, unsigned int flags, long long min, long long max, RedisModuleConfigGetNumericFunc getfn, RedisModuleConfigSetNumericFunc setfn, RedisModuleConfigApplyFunc applyfn, void *privdata) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_RegisterStringConfig)(RedisModuleCtx *ctx, const char *name, const char *default_val, unsigned int flags, RedisModuleConfigGetStringFunc getfn, RedisModuleConfigSetStringFunc setfn, RedisModuleConfigApplyFunc applyfn, void *privdata) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_RegisterEnumConfig)(RedisModuleCtx *ctx, const char *name, int default_val, unsigned int flags, const char **enum_values, const int *int_values, int num_enum_vals, RedisModuleConfigGetEnumFunc getfn, RedisModuleConfigSetEnumFunc setfn, RedisModuleConfigApplyFunc applyfn, void *privdata) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_LoadConfigs)(RedisModuleCtx *ctx) REDISMODULE_ATTR; + +#define RedisModule_IsAOFClient(id) ((id) == UINT64_MAX) + +/* This is included inline inside each Redis module. */ +static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int apiver) REDISMODULE_ATTR_UNUSED; +static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int apiver) { + void *getapifuncptr = ((void**)ctx)[0]; + RedisModule_GetApi = (int (*)(const char *, void *)) (unsigned long)getapifuncptr; + REDISMODULE_GET_API(Alloc); + REDISMODULE_GET_API(TryAlloc); + REDISMODULE_GET_API(Calloc); + REDISMODULE_GET_API(Free); + REDISMODULE_GET_API(Realloc); + REDISMODULE_GET_API(Strdup); + REDISMODULE_GET_API(CreateCommand); + REDISMODULE_GET_API(GetCommand); + REDISMODULE_GET_API(CreateSubcommand); + REDISMODULE_GET_API(SetCommandInfo); + REDISMODULE_GET_API(SetModuleAttribs); + REDISMODULE_GET_API(IsModuleNameBusy); + REDISMODULE_GET_API(WrongArity); + REDISMODULE_GET_API(ReplyWithLongLong); + REDISMODULE_GET_API(ReplyWithError); + REDISMODULE_GET_API(ReplyWithSimpleString); + REDISMODULE_GET_API(ReplyWithArray); + REDISMODULE_GET_API(ReplyWithMap); + REDISMODULE_GET_API(ReplyWithSet); + REDISMODULE_GET_API(ReplyWithAttribute); + REDISMODULE_GET_API(ReplyWithNullArray); + REDISMODULE_GET_API(ReplyWithEmptyArray); + REDISMODULE_GET_API(ReplySetArrayLength); + REDISMODULE_GET_API(ReplySetMapLength); + REDISMODULE_GET_API(ReplySetSetLength); + REDISMODULE_GET_API(ReplySetAttributeLength); + REDISMODULE_GET_API(ReplySetPushLength); + REDISMODULE_GET_API(ReplyWithStringBuffer); + REDISMODULE_GET_API(ReplyWithCString); + REDISMODULE_GET_API(ReplyWithString); + REDISMODULE_GET_API(ReplyWithEmptyString); + REDISMODULE_GET_API(ReplyWithVerbatimString); + REDISMODULE_GET_API(ReplyWithVerbatimStringType); + REDISMODULE_GET_API(ReplyWithNull); + REDISMODULE_GET_API(ReplyWithBool); + REDISMODULE_GET_API(ReplyWithCallReply); + REDISMODULE_GET_API(ReplyWithDouble); + REDISMODULE_GET_API(ReplyWithBigNumber); + REDISMODULE_GET_API(ReplyWithLongDouble); + REDISMODULE_GET_API(GetSelectedDb); + REDISMODULE_GET_API(SelectDb); + REDISMODULE_GET_API(KeyExists); + REDISMODULE_GET_API(OpenKey); + REDISMODULE_GET_API(CloseKey); + REDISMODULE_GET_API(KeyType); + REDISMODULE_GET_API(ValueLength); + REDISMODULE_GET_API(ListPush); + REDISMODULE_GET_API(ListPop); + REDISMODULE_GET_API(ListGet); + REDISMODULE_GET_API(ListSet); + REDISMODULE_GET_API(ListInsert); + REDISMODULE_GET_API(ListDelete); + REDISMODULE_GET_API(StringToLongLong); + REDISMODULE_GET_API(StringToULongLong); + REDISMODULE_GET_API(StringToDouble); + REDISMODULE_GET_API(StringToLongDouble); + REDISMODULE_GET_API(StringToStreamID); + REDISMODULE_GET_API(Call); + REDISMODULE_GET_API(CallReplyProto); + REDISMODULE_GET_API(FreeCallReply); + REDISMODULE_GET_API(CallReplyInteger); + REDISMODULE_GET_API(CallReplyDouble); + REDISMODULE_GET_API(CallReplyBool); + REDISMODULE_GET_API(CallReplyBigNumber); + REDISMODULE_GET_API(CallReplyVerbatim); + REDISMODULE_GET_API(CallReplySetElement); + REDISMODULE_GET_API(CallReplyMapElement); + REDISMODULE_GET_API(CallReplyAttributeElement); + REDISMODULE_GET_API(CallReplyAttribute); + REDISMODULE_GET_API(CallReplyType); + REDISMODULE_GET_API(CallReplyLength); + REDISMODULE_GET_API(CallReplyArrayElement); + REDISMODULE_GET_API(CallReplyStringPtr); + REDISMODULE_GET_API(CreateStringFromCallReply); + REDISMODULE_GET_API(CreateString); + REDISMODULE_GET_API(CreateStringFromLongLong); + REDISMODULE_GET_API(CreateStringFromULongLong); + REDISMODULE_GET_API(CreateStringFromDouble); + REDISMODULE_GET_API(CreateStringFromLongDouble); + REDISMODULE_GET_API(CreateStringFromString); + REDISMODULE_GET_API(CreateStringFromStreamID); + REDISMODULE_GET_API(CreateStringPrintf); + REDISMODULE_GET_API(FreeString); + REDISMODULE_GET_API(StringPtrLen); + REDISMODULE_GET_API(AutoMemory); + REDISMODULE_GET_API(Replicate); + REDISMODULE_GET_API(ReplicateVerbatim); + REDISMODULE_GET_API(DeleteKey); + REDISMODULE_GET_API(UnlinkKey); + REDISMODULE_GET_API(StringSet); + REDISMODULE_GET_API(StringDMA); + REDISMODULE_GET_API(StringTruncate); + REDISMODULE_GET_API(GetExpire); + REDISMODULE_GET_API(SetExpire); + REDISMODULE_GET_API(GetAbsExpire); + REDISMODULE_GET_API(SetAbsExpire); + REDISMODULE_GET_API(ResetDataset); + REDISMODULE_GET_API(DbSize); + REDISMODULE_GET_API(RandomKey); + REDISMODULE_GET_API(ZsetAdd); + REDISMODULE_GET_API(ZsetIncrby); + REDISMODULE_GET_API(ZsetScore); + REDISMODULE_GET_API(ZsetRem); + REDISMODULE_GET_API(ZsetRangeStop); + REDISMODULE_GET_API(ZsetFirstInScoreRange); + REDISMODULE_GET_API(ZsetLastInScoreRange); + REDISMODULE_GET_API(ZsetFirstInLexRange); + REDISMODULE_GET_API(ZsetLastInLexRange); + REDISMODULE_GET_API(ZsetRangeCurrentElement); + REDISMODULE_GET_API(ZsetRangeNext); + REDISMODULE_GET_API(ZsetRangePrev); + REDISMODULE_GET_API(ZsetRangeEndReached); + REDISMODULE_GET_API(HashSet); + REDISMODULE_GET_API(HashGet); + REDISMODULE_GET_API(StreamAdd); + REDISMODULE_GET_API(StreamDelete); + REDISMODULE_GET_API(StreamIteratorStart); + REDISMODULE_GET_API(StreamIteratorStop); + REDISMODULE_GET_API(StreamIteratorNextID); + REDISMODULE_GET_API(StreamIteratorNextField); + REDISMODULE_GET_API(StreamIteratorDelete); + REDISMODULE_GET_API(StreamTrimByLength); + REDISMODULE_GET_API(StreamTrimByID); + REDISMODULE_GET_API(IsKeysPositionRequest); + REDISMODULE_GET_API(KeyAtPos); + REDISMODULE_GET_API(KeyAtPosWithFlags); + REDISMODULE_GET_API(IsChannelsPositionRequest); + REDISMODULE_GET_API(ChannelAtPosWithFlags); + REDISMODULE_GET_API(GetClientId); + REDISMODULE_GET_API(GetClientUserNameById); + REDISMODULE_GET_API(GetContextFlags); + REDISMODULE_GET_API(AvoidReplicaTraffic); + REDISMODULE_GET_API(PoolAlloc); + REDISMODULE_GET_API(CreateDataType); + REDISMODULE_GET_API(ModuleTypeSetValue); + REDISMODULE_GET_API(ModuleTypeReplaceValue); + REDISMODULE_GET_API(ModuleTypeGetType); + REDISMODULE_GET_API(ModuleTypeGetValue); + REDISMODULE_GET_API(IsIOError); + REDISMODULE_GET_API(SetModuleOptions); + REDISMODULE_GET_API(SignalModifiedKey); + REDISMODULE_GET_API(SaveUnsigned); + REDISMODULE_GET_API(LoadUnsigned); + REDISMODULE_GET_API(SaveSigned); + REDISMODULE_GET_API(LoadSigned); + REDISMODULE_GET_API(SaveString); + REDISMODULE_GET_API(SaveStringBuffer); + REDISMODULE_GET_API(LoadString); + REDISMODULE_GET_API(LoadStringBuffer); + REDISMODULE_GET_API(SaveDouble); + REDISMODULE_GET_API(LoadDouble); + REDISMODULE_GET_API(SaveFloat); + REDISMODULE_GET_API(LoadFloat); + REDISMODULE_GET_API(SaveLongDouble); + REDISMODULE_GET_API(LoadLongDouble); + REDISMODULE_GET_API(SaveDataTypeToString); + REDISMODULE_GET_API(LoadDataTypeFromString); + REDISMODULE_GET_API(LoadDataTypeFromStringEncver); + REDISMODULE_GET_API(EmitAOF); + REDISMODULE_GET_API(Log); + REDISMODULE_GET_API(LogIOError); + REDISMODULE_GET_API(_Assert); + REDISMODULE_GET_API(LatencyAddSample); + REDISMODULE_GET_API(StringAppendBuffer); + REDISMODULE_GET_API(TrimStringAllocation); + REDISMODULE_GET_API(RetainString); + REDISMODULE_GET_API(HoldString); + REDISMODULE_GET_API(StringCompare); + REDISMODULE_GET_API(GetContextFromIO); + REDISMODULE_GET_API(GetKeyNameFromIO); + REDISMODULE_GET_API(GetKeyNameFromModuleKey); + REDISMODULE_GET_API(GetDbIdFromModuleKey); + REDISMODULE_GET_API(GetDbIdFromIO); + REDISMODULE_GET_API(GetKeyNameFromOptCtx); + REDISMODULE_GET_API(GetToKeyNameFromOptCtx); + REDISMODULE_GET_API(GetDbIdFromOptCtx); + REDISMODULE_GET_API(GetToDbIdFromOptCtx); + REDISMODULE_GET_API(Milliseconds); + REDISMODULE_GET_API(MonotonicMicroseconds); + REDISMODULE_GET_API(DigestAddStringBuffer); + REDISMODULE_GET_API(DigestAddLongLong); + REDISMODULE_GET_API(DigestEndSequence); + REDISMODULE_GET_API(GetKeyNameFromDigest); + REDISMODULE_GET_API(GetDbIdFromDigest); + REDISMODULE_GET_API(CreateDict); + REDISMODULE_GET_API(FreeDict); + REDISMODULE_GET_API(DictSize); + REDISMODULE_GET_API(DictSetC); + REDISMODULE_GET_API(DictReplaceC); + REDISMODULE_GET_API(DictSet); + REDISMODULE_GET_API(DictReplace); + REDISMODULE_GET_API(DictGetC); + REDISMODULE_GET_API(DictGet); + REDISMODULE_GET_API(DictDelC); + REDISMODULE_GET_API(DictDel); + REDISMODULE_GET_API(DictIteratorStartC); + REDISMODULE_GET_API(DictIteratorStart); + REDISMODULE_GET_API(DictIteratorStop); + REDISMODULE_GET_API(DictIteratorReseekC); + REDISMODULE_GET_API(DictIteratorReseek); + REDISMODULE_GET_API(DictNextC); + REDISMODULE_GET_API(DictPrevC); + REDISMODULE_GET_API(DictNext); + REDISMODULE_GET_API(DictPrev); + REDISMODULE_GET_API(DictCompare); + REDISMODULE_GET_API(DictCompareC); + REDISMODULE_GET_API(RegisterInfoFunc); + REDISMODULE_GET_API(InfoAddSection); + REDISMODULE_GET_API(InfoBeginDictField); + REDISMODULE_GET_API(InfoEndDictField); + REDISMODULE_GET_API(InfoAddFieldString); + REDISMODULE_GET_API(InfoAddFieldCString); + REDISMODULE_GET_API(InfoAddFieldDouble); + REDISMODULE_GET_API(InfoAddFieldLongLong); + REDISMODULE_GET_API(InfoAddFieldULongLong); + REDISMODULE_GET_API(GetServerInfo); + REDISMODULE_GET_API(FreeServerInfo); + REDISMODULE_GET_API(ServerInfoGetField); + REDISMODULE_GET_API(ServerInfoGetFieldC); + REDISMODULE_GET_API(ServerInfoGetFieldSigned); + REDISMODULE_GET_API(ServerInfoGetFieldUnsigned); + REDISMODULE_GET_API(ServerInfoGetFieldDouble); + REDISMODULE_GET_API(GetClientInfoById); + REDISMODULE_GET_API(GetClientNameById); + REDISMODULE_GET_API(SetClientNameById); + REDISMODULE_GET_API(PublishMessage); + REDISMODULE_GET_API(PublishMessageShard); + REDISMODULE_GET_API(SubscribeToServerEvent); + REDISMODULE_GET_API(SetLRU); + REDISMODULE_GET_API(GetLRU); + REDISMODULE_GET_API(SetLFU); + REDISMODULE_GET_API(GetLFU); + REDISMODULE_GET_API(BlockClientOnKeys); + REDISMODULE_GET_API(SignalKeyAsReady); + REDISMODULE_GET_API(GetBlockedClientReadyKey); + REDISMODULE_GET_API(ScanCursorCreate); + REDISMODULE_GET_API(ScanCursorRestart); + REDISMODULE_GET_API(ScanCursorDestroy); + REDISMODULE_GET_API(Scan); + REDISMODULE_GET_API(ScanKey); + REDISMODULE_GET_API(GetContextFlagsAll); + REDISMODULE_GET_API(GetKeyspaceNotificationFlagsAll); + REDISMODULE_GET_API(IsSubEventSupported); + REDISMODULE_GET_API(GetServerVersion); + REDISMODULE_GET_API(GetTypeMethodVersion); + REDISMODULE_GET_API(Yield); + REDISMODULE_GET_API(GetThreadSafeContext); + REDISMODULE_GET_API(GetDetachedThreadSafeContext); + REDISMODULE_GET_API(FreeThreadSafeContext); + REDISMODULE_GET_API(ThreadSafeContextLock); + REDISMODULE_GET_API(ThreadSafeContextTryLock); + REDISMODULE_GET_API(ThreadSafeContextUnlock); + REDISMODULE_GET_API(BlockClient); + REDISMODULE_GET_API(UnblockClient); + REDISMODULE_GET_API(IsBlockedReplyRequest); + REDISMODULE_GET_API(IsBlockedTimeoutRequest); + REDISMODULE_GET_API(GetBlockedClientPrivateData); + REDISMODULE_GET_API(GetBlockedClientHandle); + REDISMODULE_GET_API(AbortBlock); + REDISMODULE_GET_API(BlockedClientMeasureTimeStart); + REDISMODULE_GET_API(BlockedClientMeasureTimeEnd); + REDISMODULE_GET_API(SetDisconnectCallback); + REDISMODULE_GET_API(SubscribeToKeyspaceEvents); + REDISMODULE_GET_API(NotifyKeyspaceEvent); + REDISMODULE_GET_API(GetNotifyKeyspaceEvents); + REDISMODULE_GET_API(BlockedClientDisconnected); + REDISMODULE_GET_API(RegisterClusterMessageReceiver); + REDISMODULE_GET_API(SendClusterMessage); + REDISMODULE_GET_API(GetClusterNodeInfo); + REDISMODULE_GET_API(GetClusterNodesList); + REDISMODULE_GET_API(FreeClusterNodesList); + REDISMODULE_GET_API(CreateTimer); + REDISMODULE_GET_API(StopTimer); + REDISMODULE_GET_API(GetTimerInfo); + REDISMODULE_GET_API(GetMyClusterID); + REDISMODULE_GET_API(GetClusterSize); + REDISMODULE_GET_API(GetRandomBytes); + REDISMODULE_GET_API(GetRandomHexChars); + REDISMODULE_GET_API(SetClusterFlags); + REDISMODULE_GET_API(ExportSharedAPI); + REDISMODULE_GET_API(GetSharedAPI); + REDISMODULE_GET_API(RegisterCommandFilter); + REDISMODULE_GET_API(UnregisterCommandFilter); + REDISMODULE_GET_API(CommandFilterArgsCount); + REDISMODULE_GET_API(CommandFilterArgGet); + REDISMODULE_GET_API(CommandFilterArgInsert); + REDISMODULE_GET_API(CommandFilterArgReplace); + REDISMODULE_GET_API(CommandFilterArgDelete); + REDISMODULE_GET_API(Fork); + REDISMODULE_GET_API(SendChildHeartbeat); + REDISMODULE_GET_API(ExitFromChild); + REDISMODULE_GET_API(KillForkChild); + REDISMODULE_GET_API(GetUsedMemoryRatio); + REDISMODULE_GET_API(MallocSize); + REDISMODULE_GET_API(MallocUsableSize); + REDISMODULE_GET_API(MallocSizeString); + REDISMODULE_GET_API(MallocSizeDict); + REDISMODULE_GET_API(CreateModuleUser); + REDISMODULE_GET_API(FreeModuleUser); + REDISMODULE_GET_API(SetContextUser); + REDISMODULE_GET_API(SetModuleUserACL); + REDISMODULE_GET_API(SetModuleUserACLString); + REDISMODULE_GET_API(GetModuleUserACLString); + REDISMODULE_GET_API(GetCurrentUserName); + REDISMODULE_GET_API(GetModuleUserFromUserName); + REDISMODULE_GET_API(ACLCheckCommandPermissions); + REDISMODULE_GET_API(ACLCheckKeyPermissions); + REDISMODULE_GET_API(ACLCheckChannelPermissions); + REDISMODULE_GET_API(ACLAddLogEntry); + REDISMODULE_GET_API(DeauthenticateAndCloseClient); + REDISMODULE_GET_API(AuthenticateClientWithACLUser); + REDISMODULE_GET_API(AuthenticateClientWithUser); + REDISMODULE_GET_API(RedactClientCommandArgument); + REDISMODULE_GET_API(GetClientCertificate); + REDISMODULE_GET_API(GetCommandKeys); + REDISMODULE_GET_API(GetCommandKeysWithFlags); + REDISMODULE_GET_API(GetCurrentCommandName); + REDISMODULE_GET_API(RegisterDefragFunc); + REDISMODULE_GET_API(DefragAlloc); + REDISMODULE_GET_API(DefragRedisModuleString); + REDISMODULE_GET_API(DefragShouldStop); + REDISMODULE_GET_API(DefragCursorSet); + REDISMODULE_GET_API(DefragCursorGet); + REDISMODULE_GET_API(GetKeyNameFromDefragCtx); + REDISMODULE_GET_API(GetDbIdFromDefragCtx); + REDISMODULE_GET_API(EventLoopAdd); + REDISMODULE_GET_API(EventLoopDel); + REDISMODULE_GET_API(EventLoopAddOneShot); + REDISMODULE_GET_API(RegisterBoolConfig); + REDISMODULE_GET_API(RegisterNumericConfig); + REDISMODULE_GET_API(RegisterStringConfig); + REDISMODULE_GET_API(RegisterEnumConfig); + REDISMODULE_GET_API(LoadConfigs); + + if (RedisModule_IsModuleNameBusy && RedisModule_IsModuleNameBusy(name)) return REDISMODULE_ERR; + RedisModule_SetModuleAttribs(ctx,name,ver,apiver); + return REDISMODULE_OK; +} + +#define RedisModule_Assert(_e) ((_e)?(void)0 : (RedisModule__Assert(#_e,__FILE__,__LINE__),exit(1))) + +#define RMAPI_FUNC_SUPPORTED(func) (func != NULL) + +#else + +/* Things only defined for the modules core, not exported to modules + * including this file. */ +#define RedisModuleString robj + +#endif /* REDISMODULE_CORE */ + +#ifdef __cplusplus +} +#endif + +#endif /* REDISMODULE_H */ From 1a815692122145982ac374787d5427fb1e3d0af0 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 25 Jul 2025 11:14:11 +0200 Subject: [PATCH 091/675] redis: fix a few compile warnings in the module API --- src/contrib/redis/redismodule.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/contrib/redis/redismodule.h b/src/contrib/redis/redismodule.h index e8fea087ec..8bdfae932f 100644 --- a/src/contrib/redis/redismodule.h +++ b/src/contrib/redis/redismodule.h @@ -1019,7 +1019,7 @@ REDISMODULE_API int (*RedisModule_SetClientNameById)(uint64_t id, RedisModuleStr REDISMODULE_API int (*RedisModule_PublishMessage)(RedisModuleCtx *ctx, RedisModuleString *channel, RedisModuleString *message) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_PublishMessageShard)(RedisModuleCtx *ctx, RedisModuleString *channel, RedisModuleString *message) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_GetContextFlags)(RedisModuleCtx *ctx) REDISMODULE_ATTR; -REDISMODULE_API int (*RedisModule_AvoidReplicaTraffic)() REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_AvoidReplicaTraffic)(void) REDISMODULE_ATTR; REDISMODULE_API void * (*RedisModule_PoolAlloc)(RedisModuleCtx *ctx, size_t bytes) REDISMODULE_ATTR; REDISMODULE_API RedisModuleType * (*RedisModule_CreateDataType)(RedisModuleCtx *ctx, const char *name, int encver, RedisModuleTypeMethods *typemethods) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_ModuleTypeSetValue)(RedisModuleKey *key, RedisModuleType *mt, void *value) REDISMODULE_ATTR; @@ -1118,16 +1118,16 @@ REDISMODULE_API int (*RedisModule_GetLFU)(RedisModuleKey *key, long long *lfu_fr REDISMODULE_API RedisModuleBlockedClient * (*RedisModule_BlockClientOnKeys)(RedisModuleCtx *ctx, RedisModuleCmdFunc reply_callback, RedisModuleCmdFunc timeout_callback, void (*free_privdata)(RedisModuleCtx*,void*), long long timeout_ms, RedisModuleString **keys, int numkeys, void *privdata) REDISMODULE_ATTR; REDISMODULE_API void (*RedisModule_SignalKeyAsReady)(RedisModuleCtx *ctx, RedisModuleString *key) REDISMODULE_ATTR; REDISMODULE_API RedisModuleString * (*RedisModule_GetBlockedClientReadyKey)(RedisModuleCtx *ctx) REDISMODULE_ATTR; -REDISMODULE_API RedisModuleScanCursor * (*RedisModule_ScanCursorCreate)() REDISMODULE_ATTR; +REDISMODULE_API RedisModuleScanCursor * (*RedisModule_ScanCursorCreate)(void) REDISMODULE_ATTR; REDISMODULE_API void (*RedisModule_ScanCursorRestart)(RedisModuleScanCursor *cursor) REDISMODULE_ATTR; REDISMODULE_API void (*RedisModule_ScanCursorDestroy)(RedisModuleScanCursor *cursor) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_Scan)(RedisModuleCtx *ctx, RedisModuleScanCursor *cursor, RedisModuleScanCB fn, void *privdata) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_ScanKey)(RedisModuleKey *key, RedisModuleScanCursor *cursor, RedisModuleScanKeyCB fn, void *privdata) REDISMODULE_ATTR; -REDISMODULE_API int (*RedisModule_GetContextFlagsAll)() REDISMODULE_ATTR; -REDISMODULE_API int (*RedisModule_GetKeyspaceNotificationFlagsAll)() REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetContextFlagsAll)(void) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetKeyspaceNotificationFlagsAll)(void) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_IsSubEventSupported)(RedisModuleEvent event, uint64_t subevent) REDISMODULE_ATTR; -REDISMODULE_API int (*RedisModule_GetServerVersion)() REDISMODULE_ATTR; -REDISMODULE_API int (*RedisModule_GetTypeMethodVersion)() REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetServerVersion)(void) REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetTypeMethodVersion)(void) REDISMODULE_ATTR; REDISMODULE_API void (*RedisModule_Yield)(RedisModuleCtx *ctx, int flags, const char *busy_reply) REDISMODULE_ATTR; REDISMODULE_API RedisModuleBlockedClient * (*RedisModule_BlockClient)(RedisModuleCtx *ctx, RedisModuleCmdFunc reply_callback, RedisModuleCmdFunc timeout_callback, void (*free_privdata)(RedisModuleCtx*,void*), long long timeout_ms) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_UnblockClient)(RedisModuleBlockedClient *bc, void *privdata) REDISMODULE_ATTR; @@ -1146,7 +1146,7 @@ REDISMODULE_API int (*RedisModule_ThreadSafeContextTryLock)(RedisModuleCtx *ctx) REDISMODULE_API void (*RedisModule_ThreadSafeContextUnlock)(RedisModuleCtx *ctx) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_SubscribeToKeyspaceEvents)(RedisModuleCtx *ctx, int types, RedisModuleNotificationFunc cb) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_NotifyKeyspaceEvent)(RedisModuleCtx *ctx, int type, const char *event, RedisModuleString *key) REDISMODULE_ATTR; -REDISMODULE_API int (*RedisModule_GetNotifyKeyspaceEvents)() REDISMODULE_ATTR; +REDISMODULE_API int (*RedisModule_GetNotifyKeyspaceEvents)(void) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_BlockedClientDisconnected)(RedisModuleCtx *ctx) REDISMODULE_ATTR; REDISMODULE_API void (*RedisModule_RegisterClusterMessageReceiver)(RedisModuleCtx *ctx, uint8_t type, RedisModuleClusterMessageReceiver callback) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_SendClusterMessage)(RedisModuleCtx *ctx, const char *target_id, uint8_t type, const char *msg, uint32_t len) REDISMODULE_ATTR; @@ -1175,7 +1175,7 @@ REDISMODULE_API int (*RedisModule_Fork)(RedisModuleForkDoneHandler cb, void *use REDISMODULE_API void (*RedisModule_SendChildHeartbeat)(double progress) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_ExitFromChild)(int retcode) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_KillForkChild)(int child_pid) REDISMODULE_ATTR; -REDISMODULE_API float (*RedisModule_GetUsedMemoryRatio)() REDISMODULE_ATTR; +REDISMODULE_API float (*RedisModule_GetUsedMemoryRatio)(void) REDISMODULE_ATTR; REDISMODULE_API size_t (*RedisModule_MallocSize)(void* ptr) REDISMODULE_ATTR; REDISMODULE_API size_t (*RedisModule_MallocUsableSize)(void *ptr) REDISMODULE_ATTR; REDISMODULE_API size_t (*RedisModule_MallocSizeString)(RedisModuleString* str) REDISMODULE_ATTR; From 59e9c48da16a8d7a019ce9b531e22dc2ac227e38 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 24 Jan 2025 08:31:43 +0100 Subject: [PATCH 092/675] configure: prepare for Redis --- Makefile.am | 2 +- configure.ac | 35 ++++++++++++++++++++++++++++++++++- src/redis/Makefile.am | 12 ++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/redis/Makefile.am diff --git a/Makefile.am b/Makefile.am index f6cab44e4e..e0960c7387 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src tests tests-fuzz python samples distro doc +SUBDIRS = src src/redis tests tests-fuzz python samples distro doc EXTRA_DIST = README.md diff --git a/configure.ac b/configure.ac index 1cacd0826b..58121cebf5 100644 --- a/configure.ac +++ b/configure.ac @@ -135,6 +135,8 @@ AM_CONDITIONAL([HAVE_DOCS], [test "$enable_documentation" != "no"]) AM_CONDITIONAL([HAVE_SPHINX], [test "$SPHINXBUILD" != "false"]) AM_CONDITIONAL([HAVE_PDFLATEX], test "$PDFLATEX" != "false") +link_mode=$(test "$enable_shared" = "yes" && echo "shared" || echo "static") + ###################### # Generic dependencies ###################### @@ -257,6 +259,35 @@ AS_CASE([$enable_reuseport], AS_IF([test "$enable_reuseport" = yes],[ AC_DEFINE([ENABLE_REUSEPORT], [1], [Use SO_REUSEPORT(_LB).])]) +# Redis zone backend support +AC_ARG_ENABLE([redis], + AS_HELP_STRING([--enable-redis=auto|yes|no], [enable Redis support [default=auto]]), + [], [enable_redis=auto]) + +PKG_CHECK_MODULES([hiredis], [hiredis], [have_hiredis=yes], [have_hiredis=no]) + +AS_CASE([$enable_redis], + [auto], [AS_IF([test "$have_hiredis" = "yes"], [enable_redis=yes], [enable_redis=no])], + [yes], [AS_IF([test "$have_hiredis" = "yes"], [enable_redis=yes], [AC_MSG_ERROR([libhiredis not available])])], + [no], [], + [*], [AC_MSG_ERROR([Invalid value of --enable-redis.])] +) +AM_CONDITIONAL([ENABLE_REDIS], [test "$enable_redis" != "no"]) +AM_CONDITIONAL([ENABLE_REDIS_MODULE], [test "$enable_redis" != "no" && test "$enable_shared" = "yes"]) + +AS_IF([test "$enable_redis" = yes],[ + AC_DEFINE([ENABLE_REDIS], [1], [Enable Redis support.]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include + #if (HIREDIS_MAJOR < 1) || (HIREDIS_MAJOR == 1 && HIREDIS_MINOR < 1) + #error "No TLS support in Redis (need >= 1.1.0)" + #endif]])], + [AC_DEFINE([ENABLE_REDIS_TLS], [1], [Enable Redis TLS support.])], + [enable_redis="yes (no TLS)"]) + AS_IF([test "$enable_shared" = yes],[ + enable_redis="${enable_redis} module" + ]) +]) + ######################################### # Dependencies needed for Knot DNS daemon ######################################### @@ -763,7 +794,7 @@ result_msg_base=" Static modules: ${static_modules} Shared modules: ${shared_modules} - Knot DNS libraries: yes + Knot DNS libraries: ${link_mode} Knot DNS daemon: ${enable_daemon} Knot DNS utilities: ${enable_utilities} Knot DNS documentation: ${enable_documentation} @@ -772,6 +803,7 @@ result_msg_base=" Use SO_REUSEPORT(_LB): ${enable_reuseport} XDP support: ${enable_xdp} DoQ support: ${enable_quic} + Redis support: ${enable_redis} Socket polling: ${socket_polling} Atomic support: ${atomic_type} Memory allocator: ${with_memory_allocator} @@ -811,6 +843,7 @@ AC_CONFIG_FILES([Makefile python/libknot/setup.py python/libknot/libknot/__init__.py src/Makefile + src/redis/Makefile src/libknot/xdp/Makefile src/knot/modules/static_modules.h ]) diff --git a/src/redis/Makefile.am b/src/redis/Makefile.am new file mode 100644 index 0000000000..3cea3c8319 --- /dev/null +++ b/src/redis/Makefile.am @@ -0,0 +1,12 @@ +AM_CPPFLAGS = -include $(top_builddir)/src/config.h +AM_LDFLAGS = $(LT_NO_UNDEFINED) + +pkglibdir = ${libdir}/knot/redis + +if ENABLE_REDIS_MODULE +pkglib_LTLIBRARIES = knot.la +knot_la_SOURCES = knot.c + +knot_la_CPPFLAGS = $(AM_CPPFLAGS) +knot_la_LDFLAGS = $(AM_LDFLAGS) -module -shared -avoid-version +endif From 06a0c1eb15f977a935fca500984a43d4846ac54a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 12 Jun 2025 15:06:49 +0200 Subject: [PATCH 093/675] distro/deb: add redis-knot subpackage --- distro/pkg/deb/control | 16 ++++++++++++++++ distro/pkg/deb/copyright | 21 +++++++++++++++++++++ distro/pkg/deb/redis-knot.install | 1 + distro/pkg/deb/rules | 4 ++++ 4 files changed, 42 insertions(+) create mode 100644 distro/pkg/deb/redis-knot.install diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index d746c0b8d5..ddf3c7297c 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -19,6 +19,7 @@ Build-Depends: libedit-dev, libfstrm-dev, libgnutls28-dev, + libhiredis-dev, libidn2-dev, liblmdb-dev, libmaxminddb-dev, @@ -252,6 +253,21 @@ Description: geoip module for Knot DNS . This package contains geoip module for geography-based responses. +Package: redis-knot +Architecture: any +Depends: + ${misc:Depends}, + ${shlibs:Depends}, +Description: A Redis module for Knot DNS + Knot DNS is a fast, authoritative only, high performance, feature + full and open source name server. + . + Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ + registry and hence is well suited to run anything from the root + zone, the top-level domain, to many smaller standard domain names. + . + This package contains a Redis module for Knot DNS. + Package: knot-doc Architecture: all Multi-Arch: foreign diff --git a/distro/pkg/deb/copyright b/distro/pkg/deb/copyright index a412de48fa..0ea3c44b67 100644 --- a/distro/pkg/deb/copyright +++ b/distro/pkg/deb/copyright @@ -7,6 +7,10 @@ Files: * Copyright: 2011-2025 CZ.NIC, z.s.p.o. and contributors License: GPL-2+ +Files: src/redis/* +Copyright: 2011-2025 CZ.NIC, z.s.p.o. and contributors +License: LGPL-2.1+ + Files: m4/ax_check_compile_flag.m4 m4/ax_check_link_flag.m4 Copyright: 2008 Guido U. Draheim 2011 Maarten Bosmans @@ -109,6 +113,23 @@ License: LGPL-2+ On Debian GNU/Linux systems, the complete text of the GNU Lesser General Public License can be found in `/usr/share/common-licenses/LGPL-2'. +License: LGPL-2.1+ + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + . + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + . + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, see . + . + On Debian GNU/Linux systems, the complete text of the GNU Lesser + General Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. + License: FSFAP Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice diff --git a/distro/pkg/deb/redis-knot.install b/distro/pkg/deb/redis-knot.install new file mode 100644 index 0000000000..2f4cf90599 --- /dev/null +++ b/distro/pkg/deb/redis-knot.install @@ -0,0 +1 @@ +usr/lib/*/knot/redis/knot.so usr/lib/redis/modules/ diff --git a/distro/pkg/deb/rules b/distro/pkg/deb/rules index 9f859a79cd..36ad98ba71 100755 --- a/distro/pkg/deb/rules +++ b/distro/pkg/deb/rules @@ -46,6 +46,7 @@ override_dh_auto_configure: --disable-silent-rules \ --enable-xdp=yes \ --enable-quic=yes \ + --enable-redis=auto \ --disable-static \ $(FASTPARSER) @@ -66,6 +67,9 @@ override_dh_auto_install-arch: echo "Stripping the QUIC symbols"; \ sed -i '/knot_quic_/d' $(LIBKNOT_SYMBOLS); \ fi + @if [ -f "$(CURDIR)/debian/tmp/usr/lib/*/knot/redis/knot.so" ]; then \ + chmod 0755 $(CURDIR)/debian/tmp/usr/lib/*/knot/redis/knot.so; \ + fi override_dh_auto_install-indep: dh_auto_install -- install-html From 14f2a13b6c2b17719910c25203d5e92af3cdb321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ru=C5=BEi=C4=8Dka?= Date: Mon, 11 Aug 2025 12:55:16 +0200 Subject: [PATCH 094/675] distro/rpm: add redis-knot subpackage --- distro/pkg/rpm/knot.spec | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/distro/pkg/rpm/knot.spec b/distro/pkg/rpm/knot.spec index a0d11ee1f5..c9ea594279 100644 --- a/distro/pkg/rpm/knot.spec +++ b/distro/pkg/rpm/knot.spec @@ -46,6 +46,7 @@ BuildRequires: pkgconfig(libmnl) BuildRequires: pkgconfig(libnghttp2) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(systemd) +BuildRequires: pkgconfig(hiredis) %if 0%{?fedora} || 0%{?rhel} BuildRequires: softhsm %endif @@ -173,6 +174,13 @@ Requires: %{name}-libs = %{version}-%{release} %description -n python3-libknot The package provides Python bindings for the libknot shared library. +%package -n redis-knot +Summary: Redis module for Knot DNS. +Requires: %{name}-libs = %{version}-%{release} + +%description -n redis-knot +The package provides Redis module for Knot DNS. + %package doc Summary: Documentation for the Knot DNS server BuildArch: noarch @@ -211,6 +219,7 @@ CFLAGS="%{optflags} -DNDEBUG -Wno-unused" --with-storage=/var/lib/knot \ %{?configure_db_sizes} \ %{?configure_quic} \ + --enable-redis=auto \ --disable-static \ --enable-dnstap=yes \ --with-module-dnstap=shared \ @@ -387,6 +396,9 @@ getent passwd knot >/dev/null || \ %{python3_sitelib}/libknot %{python3_sitelib}/libknot-*-info +%files -n redis-knot +%attr(0755, root, root) %{_libdir}/knot/redis/knot.so + %files libs %license COPYING %doc NEWS From 14bdfd16e69390084e2243afb7f3ede3b9ab0b38 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 29 Jul 2025 17:51:01 +0200 Subject: [PATCH 095/675] Dockerfile: enable Redis --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index cdf865d937..8aa1b29bb3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,6 +10,7 @@ ENV BUILD_PKGS=" \ libedit-dev \ libfstrm-dev \ libgnutls28-dev \ + libhiredis-dev \ libidn2-dev \ liblmdb-dev \ libmaxminddb-dev \ @@ -43,6 +44,7 @@ RUN autoreconf -if && \ --with-module-dnstap=yes \ --${FASTPARSER}-fastparser \ --enable-quic \ + --enable-redis \ --enable-dnstap \ --disable-static \ --disable-documentation && \ @@ -64,6 +66,7 @@ ENV RUNTIME_PKGS=" \ libedit2 \ libfstrm0 \ libgnutls30t64 \ + libhiredis1.1.0 \ libidn2-0 \ liblmdb0 \ libmaxminddb0 \ From 4ce32753212e304a98f926f6120abaa91bbe57b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Fri, 18 Jul 2025 15:03:11 +0200 Subject: [PATCH 096/675] tests-redis: introduce redis module unit tests --- Makefile.am | 2 +- configure.ac | 1 + src/redis/Makefile.am | 2 +- tests-redis/.gitignore | 1 + tests-redis/Makefile.am | 12 + tests-redis/config.txt | 3 + tests-redis/requirements.txt | 2 + tests-redis/test.py | 482 +++++++++++++++++++++++++++++++++++ 8 files changed, 503 insertions(+), 2 deletions(-) create mode 100644 tests-redis/.gitignore create mode 100644 tests-redis/Makefile.am create mode 100644 tests-redis/config.txt create mode 100644 tests-redis/requirements.txt create mode 100644 tests-redis/test.py diff --git a/Makefile.am b/Makefile.am index e0960c7387..2250c77653 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src src/redis tests tests-fuzz python samples distro doc +SUBDIRS = src src/redis tests tests-fuzz tests-redis python samples distro doc EXTRA_DIST = README.md diff --git a/configure.ac b/configure.ac index 58121cebf5..545dbd82d9 100644 --- a/configure.ac +++ b/configure.ac @@ -832,6 +832,7 @@ AC_CONFIG_FILES([Makefile doc/Makefile tests/Makefile tests-fuzz/Makefile + tests-redis/Makefile samples/Makefile distro/Makefile python/Makefile diff --git a/src/redis/Makefile.am b/src/redis/Makefile.am index 3cea3c8319..3141f34891 100644 --- a/src/redis/Makefile.am +++ b/src/redis/Makefile.am @@ -1,4 +1,4 @@ -AM_CPPFLAGS = -include $(top_builddir)/src/config.h +AM_CPPFLAGS = -I$(top_srcdir)/src -include $(top_builddir)/src/config.h AM_LDFLAGS = $(LT_NO_UNDEFINED) pkglibdir = ${libdir}/knot/redis diff --git a/tests-redis/.gitignore b/tests-redis/.gitignore new file mode 100644 index 0000000000..b6d592eb2a --- /dev/null +++ b/tests-redis/.gitignore @@ -0,0 +1 @@ +/logs diff --git a/tests-redis/Makefile.am b/tests-redis/Makefile.am new file mode 100644 index 0000000000..a83b0ef57f --- /dev/null +++ b/tests-redis/Makefile.am @@ -0,0 +1,12 @@ +# Useful commands: +# python3 -m venv .venv +# source .venv/bin/activate +# pip3 install -r requirements.txt +# make test + +EXTRA_DIST = config.txt requirements.txt test.py + +.PHONY: test + +test: + RLTest --randomize-ports --clear-logs --parallelism 4 diff --git a/tests-redis/config.txt b/tests-redis/config.txt new file mode 100644 index 0000000000..139be53768 --- /dev/null +++ b/tests-redis/config.txt @@ -0,0 +1,3 @@ +--module ../src/redis/.libs/knot.so +--no-progress +--use-valgrind diff --git a/tests-redis/requirements.txt b/tests-redis/requirements.txt new file mode 100644 index 0000000000..bd5f38ffed --- /dev/null +++ b/tests-redis/requirements.txt @@ -0,0 +1,2 @@ +rltest +setuptools<=80.0.0 diff --git a/tests-redis/test.py b/tests-redis/test.py new file mode 100644 index 0000000000..8f4542e065 --- /dev/null +++ b/tests-redis/test.py @@ -0,0 +1,482 @@ +from math import floor +from RLTest import Env + + +def txn_get_instance(txn : int) -> int: + return floor(txn / 10) + +def test_zone_begin(): + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) + + # basic transaction + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.assertEqual(txn, 10, message="Wrong transaction number") + + resp = env.cmd('KNOT.ZONE.ABORT', 'example.com', txn) + env.assertEqual(resp, b'OK', message="Fail while aborting transaction") + + # multiple zones + txn1 = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.assertEqual(txn1, 10, message="Wrong transaction number") + + txn2 = env.cmd('KNOT.ZONE.BEGIN', 'example.net', 1) + env.assertEqual(txn2, 10, message="Wrong transaction number") + + resp = env.cmd('KNOT.ZONE.ABORT', 'example.com', txn1) + env.assertEqual(resp, b'OK', message="Fail while aborting transaction") + + resp = env.cmd('KNOT.ZONE.ABORT', 'example.net', txn2) + env.assertEqual(resp, b'OK', message="Fail while aborting transaction") + + # multiple transactions + for i in range(9): + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.assertEqual(txn, 10 + i, message="Wrong transaction number") + + with env.assertResponseError(msg="Should not allow so much transactions"): + env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + + for i in range(9): + env.cmd('KNOT.ZONE.ABORT', 'example.com', 10 + i) + env.assertEqual(resp, b'OK', message="Fail while aborting transaction") + + # multiple instances + with env.assertResponseError(msg="Wrong instance number"): + env.cmd('KNOT.ZONE.BEGIN', 'example.com', 0) + + for i in range(1, 9): + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', i) + env.assertEqual(txn, i * 10, message="Wrong transaction number") + + with env.assertResponseError(msg="Should not allow so much instances"): + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 9) + + for i in range(1, 9): + resp = env.cmd('KNOT.ZONE.ABORT', 'example.com', i * 10) + env.assertEqual(resp, b'OK', message="Fail while aborting transaction") + + # wrong argument number + with env.assertResponseError(msg="Wrong argument number"): + env.cmd('KNOT.ZONE.BEGIN', 'example.com') + + with env.assertResponseError(msg="Wrong argument number"): + env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1, 2) + +def test_zone_store(): + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) + + # without transaction + with env.assertResponseError(msg="Transaction should not be opened"): + env.cmd('KNOT.ZONE.STORE', 'example.com', 10, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + + # basic + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + + resp = env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.assertEqual(resp, b'OK', message="Fail while store SOA") + + resp = env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "dns1.example.com. IN A 1.1.1.1") + env.assertEqual(resp, b'OK', message="Fail while store A") + + resp = env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "dns1.example.com. IN A 2.2.2.2") + env.assertEqual(resp, b'OK', message="Fail while store secondary A") + + resp = env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "dns2 IN A 1.1.1.1") + env.assertEqual(resp, b'OK', message="Fail while store implicit A") + + resp = env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "dns3 123 IN A 1.1.1.1") + env.assertEqual(resp, b'OK', message="Fail while store TTL") + + resp = env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "dns4 A 1.1.1.1") + env.assertEqual(resp, b'OK', message="Fail while store without class") + + resp = env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "mail MX 10 dns1.example.com.") + env.assertEqual(resp, b'OK', message="Fail while store MX") + + with env.assertResponseError(msg="Malformed data"): + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "malformed IN 123 C 1.1.1.1") + + ZONE1=[[b'example.com.', b'3600', b'SOA', b'ns.icann.org. noc.dns.icann.org. 1 7200 3600 1209600 3600'], + [b'dns1.example.com.', b'3600', b'A', b'1.1.1.1'], + [b'dns1.example.com.', b'3600', b'A', b'2.2.2.2'], + [b'dns2.example.com.', b'3600', b'A', b'1.1.1.1'], + [b'dns3.example.com.', b'123', b'A', b'1.1.1.1'], + [b'dns4.example.com.', b'3600', b'A', b'1.1.1.1'], + [b'mail.example.com.', b'3600', b'MX', b'10 dns1.example.com.']] + resp = env.cmd('KNOT.ZONE.LOAD', 'example.com', txn) + env.assertEqual(resp, ZONE1, message="Basic store") + + # multiple transactions + txn1 = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 2) + + resp = env.cmd('KNOT.ZONE.STORE', 'example.com', txn1, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.assertEqual(resp, b'OK', message="Fail while store") + + ZONE2=[[b'example.com.', b'3600', b'SOA', b'ns.icann.org. noc.dns.icann.org. 1 7200 3600 1209600 3600']] + resp = env.cmd('KNOT.ZONE.LOAD', 'example.com', txn1) + env.assertEqual(resp, ZONE2, message="Mixed zones") + + env.cmd('KNOT.ZONE.ABORT', 'example.com', txn) + env.cmd('KNOT.ZONE.ABORT', 'example.com', txn1) + +def test_zone_commit(): + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) + + # non-existent transaction + with env.assertResponseError(msg="Should not commit non-existent transaction"): + env.cmd('KNOT.ZONE.COMMIT', 'example.com', 10) + + # without SOA + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + with env.assertResponseError(msg="Should not commit zone without SOA"): + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + resp = env.cmd('KNOT.ZONE.ABORT', 'example.com', txn) + + # with fake SOA + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "soa.example.com IN SOA ns.icann.org. noc.dns.icann.org. ( 3 7200 3600 1209600 3600 )") + with env.assertResponseError(msg="Should not commit zone without SOA"): + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + + # with SOA + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + resp = env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + env.assertEqual(resp, b'OK', message="Failed to commit") + + # multiple SOA + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "dns1.example.com. IN SOA ns.icann.org. noc.dns.icann.org. ( 2 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 3 7200 3600 1209600 3600 )") + + resp = env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + env.assertEqual(resp, b'OK', message="Failed to commit") + + resp = env.cmd('KNOT_BIN.ZONE.EXISTS', '\aexample\x03com\x00', '\x01') + env.assertEqual(resp, 3, message="Failed to commit") + + # new transaction with active zone + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.assertEqual(txn, 10, message="Wrong implicit instance transaction number") + + txn1 = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.assertEqual(txn1, 12, message="Wrong implicit instance transaction number") + resp = env.cmd('KNOT.ZONE.ABORT', 'example.com', txn) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn1, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 3 7200 3600 1209600 3600 )") + + old_zone = env.cmd('KNOT.ZONE.LOAD', 'example.com', 1) + + resp = env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn1) + env.assertEqual(resp, b'OK', message="Failed to commit") + + new_zone =env.cmd('KNOT.ZONE.LOAD', 'example.com', 1) + env.assertNotEqual(old_zone, new_zone) + + +def test_zone_abort(): + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) + + # basic + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + resp = env.cmd('KNOT.ZONE.ABORT', 'example.com', txn) + env.assertEqual(resp, b'OK', message="Failed to abort") + with env.assertResponseError(msg="Should not be available after abort"): + env.cmd('KNOT.ZONE.LOAD', 'example.com', txn) + + # after abort + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.assertEqual(txn, 10, message="Wrong implicit instance transaction number") + + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + with env.assertResponseError(msg="Should not be able to abort commited zone"): + env.cmd('KNOT.ZONE.ABORT', 'example.com', txn) + +def test_zone_load(): + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) + + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + + ZONE = [[b'example.com.', b'3600', b'SOA', b'ns.icann.org. noc.dns.icann.org. 1 7200 3600 1209600 3600']] + + # load uncommited + zone_txn = env.cmd('KNOT.ZONE.LOAD', 'example.com', txn) + env.assertEqual(zone_txn, ZONE, message="Zone is not equals to template") + + # load commited + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + resp = env.cmd('KNOT.ZONE.LOAD', 'example.com', txn_get_instance(txn)) + env.assertEqual(resp, ZONE, message="Zone is not equals to template") + env.assertEqual(resp, zone_txn, message="Zones from transaction and instance does not equals") + +def test_zone_purge(): + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) + + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + + txn1 = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn1, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + + txn2 = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + txn3 = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + + env.cmd('KNOT.UPD.ADD', 'example.com', txn2, "dns IN A 1.1.1.1") + env.cmd('KNOT.UPD.COMMIT','example.com', txn2) + + env.cmd('KNOT.UPD.ADD', 'example.com', txn3, "dns IN A 2.2.2.2") + + # basic + resp = env.cmd('KNOT.ZONE.PURGE', 'example.com', txn_get_instance(txn)) + env.assertEqual(resp, b'OK', message="Failed to purge zone") + + with env.assertResponseError(msg="Zone has not been purged"): + env.cmd('KNOT.ZONE.LOAD', 'example.com', txn_get_instance(txn)) + with env.assertResponseError(msg="Zone has not been purged"): + env.cmd('KNOT.ZONE.LOAD', 'example.com', txn) + with env.assertResponseError(msg="Update has not been purged"): + env.cmd('KNOT.UPD.DIFF', 'example.com', txn2) + + # test whether uncommitted update transaction remains available before commit + with env.assertResponseError(msg="Zone should not be available anymore"): + env.cmd('KNOT.UPD.COMMIT','example.com', txn3) + + # test whether uncommitted zone transaction remains available + env.cmd('KNOT.ZONE.STORE', 'example.com', txn1, "dns IN A 1.1.1.1") + resp = env.cmd('KNOT.ZONE.COMMIT','example.com', txn1) + ZONE = [[b'example.com.', b'3600', b'SOA', b'ns.icann.org. noc.dns.icann.org. 1 7200 3600 1209600 3600'], + [b'dns.example.com.', b'3600', b'A', b'1.1.1.1']] + env.assertEqual(resp, b'OK', message="Failed to commit after purge") + resp = env.cmd('KNOT.ZONE.LOAD', 'example.com', txn_get_instance(txn1)) + env.assertEqual(resp, ZONE, message="Zone does not equals template") + + # test whether uncommitted update transaction remains available after commit + resp = env.cmd('KNOT.UPD.COMMIT','example.com', txn3) + env.assertEqual(resp, b'OK', message="Failed to commit update") + +def test_zone_list(): + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) + + # First zone + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + + resp = env.cmd('KNOT.ZONE.LIST', txn_get_instance(txn)) + env.assertEqual(len(resp), 1, message="Failed to purge zone") + + # Rewrite zone + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + + resp = env.cmd('KNOT.ZONE.LIST', txn_get_instance(txn)) + env.assertEqual(len(resp), 1, message="Failed to purge zone") + + # Second zone + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.net', 1) + env.cmd('KNOT.ZONE.STORE', 'example.net', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.COMMIT', 'example.net', txn) + + resp = env.cmd('KNOT.ZONE.LIST', txn_get_instance(txn)) + env.assertEqual(len(resp), 2, message="Failed to purge zone") + +def test_upd_begin(): + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) + + # missing zone + with env.assertResponseError(msg="Update on non-existent zone"): + env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + + # missing zone at instance + with env.assertResponseError(msg="Update on non-existent zone"): + env.cmd('KNOT.UPD.BEGIN', 'example.com', 2) + + # basic + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + env.assertEqual(txn, 10, message="Wrong implicit instance transaction number") + env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + + # multiple transactions + for i in range(0, 9): + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + env.assertEqual(txn, 10 + i, message="Wrong transaction number") + + for i in range(0, 9): + env.cmd('KNOT.UPD.ABORT', 'example.com', 10 + i) + +def test_upd_add_rem(): + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) + + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "dns IN A 1.1.1.1") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + + # add/remove nonexistent transaction + with env.assertResponseError(msg="Should not add to nonexistent transaction"): + env.cmd('KNOT.UPD.ADD', 'example.com', txn, "dns 600 IN A 2.2.2.2") + with env.assertResponseError(msg="Should not add to nonexistent transaction"): + env.cmd('KNOT.UPD.REMOVE', 'example.com', txn, "dns 600 IN A 2.2.2.2") + + # basic + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + resp = env.cmd('KNOT.UPD.ADD', 'example.com', txn, "dns 600 IN A 2.2.2.2") + env.assertEqual(resp, b'OK', message="Failed to add record into update") + + resp = env.cmd('KNOT.UPD.REMOVE', 'example.com', txn, "dns IN A 1.1.1.1") + env.assertEqual(resp, b'OK', message="Failed to remove record from update") + + UPD = [[ + [[b'dns.example.com.', b'NONE', b'A', b'1.1.1.1']], + [[b'dns.example.com.', b'600', b'A', b'2.2.2.2']] + ]] + + resp = env.cmd('KNOT.UPD.DIFF', 'example.com', txn) + env.assertEqual(resp, UPD, message="Wrong update output") + + resp = env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + env.assertEqual(resp, b'OK', message="Failed to commit update") + + ZONE = [ + [b'example.com.', b'3600', b'SOA', b'ns.icann.org. noc.dns.icann.org. 2 7200 3600 1209600 3600'], + [b'dns.example.com.', b'600', b'A', b'2.2.2.2'] + ] + resp = env.cmd('KNOT.ZONE.LOAD', 'example.com', 1) + env.assertEqual(resp, ZONE, message="Wrong update output") + +def test_upd_commit(): + UPD_HIST_LEN = 10 + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600', 'max-update-depth', f'{UPD_HIST_LEN}']) + + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "dns IN A 1.1.1.1") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + + # commit non-existent + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.PURGE', 'example.com', 1) + with env.assertResponseError(msg="Should not commit, zone doesn't exists"): + env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + + txn1 = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn1, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn1) + + # basic add + resp = env.cmd('KNOT.UPD.ADD', 'example.com', txn, "example IN A 1.1.1.1") + env.assertEqual(resp, b'OK', message="Failed to add record into update") + resp = env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + env.assertEqual(resp, b'OK', message="Failed to commit update") + + # basic remove + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + resp = env.cmd('KNOT.UPD.REMOVE', 'example.com', txn, "example IN A 1.1.1.1") + env.assertEqual(resp, b'OK', message="Failed to add record into update") + resp = env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + env.assertEqual(resp, b'OK', message="Failed to commit update") + + # update depth trimmig + txn1 = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn1, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn1) + + for i in range(1, UPD_HIST_LEN + 2): + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + resp = env.cmd('KNOT.UPD.ADD', 'example.com', txn, f"dns{i} IN A {i}.{i}.{i}.{i}") + resp = env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + env.assertEqual(resp, b'OK', message="Failed to commit update") + + resp = env.cmd('KNOT.UPD.LOAD', 'example.com', 1, max(1, i + 1 - UPD_HIST_LEN)) + env.assertEqual(len(resp), min(i, UPD_HIST_LEN), message="Failed to commit update") + + # update serial collisions + txn1 = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn1, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn1) + + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + env.cmd('KNOT.UPD.REMOVE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.UPD.ADD', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 2147483648 7200 3600 1209600 3600 )") + env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + resp = env.cmd('KNOT.UPD.LOAD', 'example.com', 1, 1) + env.assertEqual(len(resp), 1, message="Failed to commit update") + + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + env.cmd('KNOT.UPD.REMOVE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 2147483648 7200 3600 1209600 3600 )") + env.cmd('KNOT.UPD.ADD', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 4294967295 7200 3600 1209600 3600 )") + env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + resp = env.cmd('KNOT.UPD.LOAD', 'example.com', 1, 1) + env.assertEqual(len(resp), 2, message="Failed to commit update") + + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + env.cmd('KNOT.UPD.REMOVE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 4294967295 7200 3600 1209600 3600 )") + env.cmd('KNOT.UPD.ADD', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + resp = env.cmd('KNOT.UPD.LOAD', 'example.com', 1, 1) + env.assertEqual(len(resp), 3, message="Failed to commit update") + + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + env.cmd('KNOT.UPD.REMOVE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.UPD.ADD', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 2147483648 7200 3600 1209600 3600 )") + env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + resp = env.cmd('KNOT.UPD.LOAD', 'example.com', 1, 1) + env.assertEqual(len(resp), 1, message="Failed to commit update") + +def test_upd_abort(): + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) + + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "dns IN A 1.1.1.1") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + + old_zone = env.cmd('KNOT.ZONE.LOAD', 'example.com', txn) + + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + env.cmd('KNOT.UPD.ADD', 'example.com', txn, "dns 600 IN A 2.2.2.2") + resp = env.cmd('KNOT.UPD.ABORT', 'example.com', txn) + env.assertEqual(resp, b'OK', message="Failed to abort update") + + with env.assertResponseError(msg="Should be aborted"): + env.cmd('KNOT.UPD.DIFF', 'example.com', txn) + resp = env.cmd('KNOT.ZONE.LOAD', 'example.com', txn) + env.assertEqual(resp, old_zone, message="Zone should not be changed after abort of update") + +def test_upd_diff_load(): + env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) + + txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "dns IN A 1.1.1.1") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) + + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + env.cmd('KNOT.UPD.ADD', 'example.com', txn, "dns IN A 2.2.2.2") + resp = env.cmd('KNOT.UPD.DIFF', 'example.com', txn) + env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + + with env.assertResponseError(msg="Should be commited"): + env.cmd('KNOT.UPD.DIFF', 'example.com', txn) + + UPD = [[], [[b'dns.example.com.', b'3600', b'A', b'2.2.2.2']]] + env.assertEqual([UPD], resp, message="Update doesn't match template") + + TRANSFER = [ + [ + [ + [[b'example.com.', b'3600', b'SOA', b'ns.icann.org. noc.dns.icann.org. 1 7200 3600 1209600 3600']], + [[b'example.com.', b'3600', b'SOA', b'ns.icann.org. noc.dns.icann.org. 2 7200 3600 1209600 3600']] + ], UPD + ] + ] + + resp = env.cmd('KNOT.UPD.LOAD', 'example.com', 1, 1) + env.assertEqual(resp, TRANSFER, message="Wrong update output") From 7e184a4bd525b66421075e337288e7daad38d5f4 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sun, 27 Jul 2025 10:56:38 +0200 Subject: [PATCH 097/675] tests-extra: initial support for testing Knot with Redis backend --- tests-extra/requirements.txt | 1 + tests-extra/tests/redis/basic/test.py | 73 +++++++++++++++++++++++++++ tests-extra/tools/dnstest/params.py | 4 ++ tests-extra/tools/dnstest/redis.py | 71 ++++++++++++++++++++++++++ tests-extra/tools/dnstest/server.py | 14 +++++ tests-extra/tools/dnstest/test.py | 32 +++++++++++- 6 files changed, 194 insertions(+), 1 deletion(-) create mode 100644 tests-extra/tests/redis/basic/test.py create mode 100644 tests-extra/tools/dnstest/redis.py diff --git a/tests-extra/requirements.txt b/tests-extra/requirements.txt index 6ac7ea9d55..e2995420a5 100644 --- a/tests-extra/requirements.txt +++ b/tests-extra/requirements.txt @@ -2,3 +2,4 @@ dnspython>=2.2.0 jsonschema psutil pyyaml +setuptools diff --git a/tests-extra/tests/redis/basic/test.py b/tests-extra/tests/redis/basic/test.py new file mode 100644 index 0000000000..aff00c497b --- /dev/null +++ b/tests-extra/tests/redis/basic/test.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 + +'''Test master-slave-like replication using Redis database.''' + +from dnstest.test import Test + +t = Test(redis=True) + +master = t.server("knot") +slave = t.server("knot") + +zones = t.zone("example.com.") + +t.link(zones, master) +t.link(zones, slave) + +master.zonefile_sync = "0" + +for z in zones: + master.zones[z.name].redis_out = "1" + slave.zones[z.name].redis_in = "1" + slave.zones[z.name].zfile.remove() + +t.start() + +master.zones_wait(zones) + +master.ctl("zone-flush", wait=True) +#slave.ctl("zone-reload") + +serials = slave.zones_wait(zones) +t.xfr_diff(master, slave, zones) + +for z in zones: + up = master.update(z) + up.add("suppnot1", 3600, "A", "1.2.3.4") + up.send() + +t.sleep(2) +master.ctl("zone-flush", wait=True) +#slave.ctl("zone-reload") + +slave.zones_wait(zones, serials) +t.xfr_diff(master, slave, zones) + +# SOA serial logic rotation +serials6 = serials5 + +for i in range(5): + if i == 3: + slave.ctl("zone-freeze", wait=True) + + for z in zones: + if i == 4: + serials6[z.name] += 1 + else: + serials6[z.name] += (1 << 30) + serials6[z.name] %= (1 << 32) + up = master.update(z) + up.add(z.name, 3600, "SOA", "dns1 hostmaster %d 10800 3600 1209600 7200" % (serials6[z.name])) + up.add("loop", 3600, "AAAA", "1::%d" % i) + up.send() + master.zones_wait(zones, serials6, equal=True) + +slave.ctl("zone-thaw") +slave.zones_wait(zones, serials6, equal=True) +t.xfr_diff(master, slave, zones) +resp = slave.dig("loop." + zones[0].name, "AAAA") +resp.check(rcode="NOERROR", rdata="1::1") +resp.check(rcode="NOERROR", rdata="1::4") +resp.check_count(5, "AAAA") + +t.end() diff --git a/tests-extra/tools/dnstest/params.py b/tests-extra/tools/dnstest/params.py index 7278d3d0d9..07ace0c217 100644 --- a/tests-extra/tools/dnstest/params.py +++ b/tests-extra/tools/dnstest/params.py @@ -54,6 +54,10 @@ def get_param(env_name, default): gdb_bin = get_binary("KNOT_TEST_GDB", "gdb") # KNOT_TEST_VGDB - vgdb binary. vgdb_bin = get_binary("KNOT_TEST_VGDB", "vgdb") +# KNOT_TEST_REDIS - Redis database server binary. +redis_bin = get_binary("KNOT_TEST_REDIS", "redis-server") +# KNOT_TEST_REDIS_CLI - Redis database command line client. +redis_cli = get_binary("KNOT_TEST_REDIS_CLI", "redis-cli") # KNOT_TEST_LIBTOOL - libtool script. libtool_bin = get_binary("KNOT_TEST_LIBTOOL", repo_binary("libtool")) # KNOT_TEST_LIBKNOT - libknot library. diff --git a/tests-extra/tools/dnstest/redis.py b/tests-extra/tools/dnstest/redis.py new file mode 100644 index 0000000000..99892351a8 --- /dev/null +++ b/tests-extra/tools/dnstest/redis.py @@ -0,0 +1,71 @@ +from dnstest.utils import * +import dnstest.params as params +import os +import shutil +import subprocess +import time + +class Redis(object): + def __init__(self, addr, wrk_dir, redis_bin, redis_cli, knotso): + self.addr = addr + self.port = None + self.tls_port = None + self.pin = None + self.wrk_dir = wrk_dir + self.redis_bin = redis_bin + self.redis_cli = redis_cli + self.knotso = knotso + self.proc = None + self.monitor = None + self.monitor_log = None + + if not os.path.exists(wrk_dir): + os.makedirs(wrk_dir) + + def wrk_file(self, filename): + return os.path.join(self.wrk_dir, filename) + + def conf_file(self): + return self.wrk_file("redis.conf") + + def gen_confile(self): + with open(self.conf_file(), "w") as cf: + cf.write("dir " + self.wrk_dir + os.linesep) + cf.write("logfile " + self.wrk_file("redis.log") + os.linesep) + cf.write("loadmodule " + self.knotso + os.linesep) + cf.write("bind " + self.addr + os.linesep) + cf.write("port " + str(self.port) + os.linesep) + cf.write("tls-port " + str(self.tls_port) + os.linesep) + cf.write("tls-protocols \"TLSv1.3\"" + os.linesep) + cf.write("tls-auth-clients no" + os.linesep) + cf.write("tls-key-file key.pem" + os.linesep) + cf.write("tls-cert-file cert.pem" + os.linesep) + if self.addr != "127.0.0.1" and self.addr != "::1": + cf.write("protected-mode no " + os.linesep) + + shutil.copy(os.path.join(params.common_data_dir, "cert", "cert.pem"), self.wrk_dir) + shutil.copy(os.path.join(params.common_data_dir, "cert", "key.pem"), self.wrk_dir) + keyfile = os.path.join(self.wrk_dir, "key.pem") + out = subprocess.check_output(["certtool", "--infile=" + keyfile, "-k"]).rstrip().decode('ascii') + self.pin = ssearch(out, r'pin-sha256:([^\n]*)') + + def start(self): + self.proc = subprocess.Popen([ self.redis_bin, self.conf_file() ]) + time.sleep(0.3) + monitor_cmd = [ self.redis_cli, "-h", self.addr, "-p", str(self.port), "monitor" ] + self.monitor_log = open(os.path.join(self.wrk_dir, "monitor.log"), "a") + self.monitor = subprocess.Popen(monitor_cmd, stdout=self.monitor_log, stderr=self.monitor_log) + + def stop(self): + if self.monitor: + self.monitor.terminate() + if self.monitor_log: + self.monitor_log.close() + if self.proc: + self.proc.terminate() + + def cli(self, *params): + cmd = [ self.redis_cli, "-h", self.addr, "-p", str(self.port) ] + list(params) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, _ = p.communicate() + return out.decode().strip() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 02b0b475c9..137d04defe 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -96,6 +96,8 @@ def __init__(self, zone_file, ddns=False, ixfr=False, journal_content="changes") self.zfile = zone_file self.masters = set() self.slaves = set() + self.redis_in = None + self.redis_out = None self.serial_modulo = None self.ddns = ddns self.ixfr = ixfr @@ -237,6 +239,8 @@ def __init__(self): self.session_log = None self.confile = None + self.redis = None + self.binding_errors = 0 def _check_socket(self, proto, port): @@ -1882,6 +1886,13 @@ def get_config(self): s.item_str("journal-db-max-size", self.journal_db_size) s.item_str("timer-db-max-size", self.timer_db_size) s.item_str("catalog-db-max-size", self.catalog_db_size) + if self.redis is not None: + tls = random.choice([True, False]) + port = self.redis.tls_port if tls else self.redis.port + s.item_str("zone-db-listen", self.redis.addr + "@" + str(port)) + if tls: + s.item_str("zone-db-cert-key", self.redis.pin) + s.item_str("zone-db-tls", "on") s.end() s.begin("template") @@ -1958,6 +1969,9 @@ def get_config(self): self.config_xfr(z, s) + self._str(s, "zone-db-input", z.redis_in) + self._str(s, "zone-db-output", z.redis_out) + self._str(s, "serial-policy", self.serial_policy) self._str(s, "serial-modulo", z.serial_modulo) self._str(s, "ddns-master", self.ddns_master) diff --git a/tests-extra/tools/dnstest/test.py b/tests-extra/tools/dnstest/test.py index 53bc43e558..28ac74ddee 100644 --- a/tests-extra/tools/dnstest/test.py +++ b/tests-extra/tools/dnstest/test.py @@ -16,9 +16,16 @@ from dnstest.context import Context import dnstest.params as params import dnstest.server +import dnstest.redis import dnstest.keys import dnstest.zonefile +def repo_file(*path): + module_path = os.path.dirname(os.path.realpath(__file__)) + repo_path = os.path.realpath(os.path.join(module_path, "..", "..", "..")) + file_path = os.path.join(repo_path, *path) + return file_path if os.path.isfile(file_path) else None + class Test(object): '''Specification of DNS test topology''' @@ -39,7 +46,7 @@ class Test(object): rel_time = time.time() start_time = 0 - def __init__(self, address=None, tsig=None, stress=True, quic=False, tls=False): + def __init__(self, address=None, tsig=None, stress=True, quic=False, tls=False, redis=False): if not os.path.exists(Context().out_dir): raise Exception("Output directory doesn't exist") @@ -56,6 +63,16 @@ def __init__(self, address=None, tsig=None, stress=True, quic=False, tls=False): else: self.addr = Test.LOCAL_ADDR_MULTI[random.choice([4, 6])] + self.redis = None + redis_knotso = repo_file("src", "redis", ".libs", "knot.so") + if redis: + if params.redis_bin == "": + raise Skip("Redis server not available") + if redis_knotso is None: + raise Skip("Redis knot module not available") + self.redis = dnstest.redis.Redis(self.addr, os.path.join(self.out_dir, "redis"), + params.redis_bin, params.redis_cli, redis_knotso) + self.tsig = None if tsig != None: if type(tsig) is dnstest.keys.Tsig: @@ -218,6 +235,8 @@ def server(self, server, nsid=None, ident=None, version=None, \ if os.path.isfile(suppressions_file): srv.valgrind.append("--suppressions=%s" % suppressions_file) + srv.redis = self.redis + self.servers.add(srv) return srv @@ -252,6 +271,11 @@ def generate_conf(self): server.xdp_cover_sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) server.xdp_cover_sock.bind((server.addr, server.xdp_port)) + if self.redis is not None: + self.redis.port = self._gen_port() + self.redis.tls_port = self._gen_port() + self.redis.gen_confile() + for server in self.servers: server.gen_confile() @@ -267,6 +291,9 @@ def start(self): self.generate_conf() + if self.redis: + self.redis.start() + def srv_sort(server): masters = 0 for z in server.zones: @@ -300,6 +327,9 @@ def stop(self, check=True, kill=False): else: server.stop(check=check) + if self.redis: + self.redis.stop() + def end(self): '''Finish testing''' From de35e927076a248d929e534df545f5d84d250a8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Fri, 17 Jan 2025 08:28:15 +0100 Subject: [PATCH 098/675] redis: initial implementation of a Knot module for Redis --- Knot.files | 8 + src/redis/Makefile.am | 12 +- src/redis/arg.h | 213 ++++ src/redis/error.h | 24 + src/redis/internal.h | 2236 ++++++++++++++++++++++++++++++++++++++++ src/redis/knot.c | 886 ++++++++++++++++ src/redis/knot.h | 50 + src/redis/libs.h | 35 + src/redis/type_diff.h | 192 ++++ src/redis/type_rrset.h | 143 +++ 10 files changed, 3797 insertions(+), 2 deletions(-) create mode 100644 src/redis/arg.h create mode 100644 src/redis/error.h create mode 100644 src/redis/internal.h create mode 100644 src/redis/knot.c create mode 100644 src/redis/knot.h create mode 100644 src/redis/libs.h create mode 100644 src/redis/type_diff.h create mode 100644 src/redis/type_rrset.h diff --git a/Knot.files b/Knot.files index 487f305295..247ef7dc8d 100644 --- a/Knot.files +++ b/Knot.files @@ -575,6 +575,14 @@ src/libzscanner/functions.h src/libzscanner/scanner.h src/libzscanner/scanner.rl src/libzscanner/scanner_body.rl +src/redis/arg.h +src/redis/error.h +src/redis/internal.h +src/redis/knot.c +src/redis/knot.h +src/redis/libs.h +src/redis/type_diff.h +src/redis/type_rrset.h src/utils/common/exec.c src/utils/common/exec.h src/utils/common/hex.c diff --git a/src/redis/Makefile.am b/src/redis/Makefile.am index 3141f34891..6722d0c394 100644 --- a/src/redis/Makefile.am +++ b/src/redis/Makefile.am @@ -5,8 +5,16 @@ pkglibdir = ${libdir}/knot/redis if ENABLE_REDIS_MODULE pkglib_LTLIBRARIES = knot.la -knot_la_SOURCES = knot.c +knot_la_SOURCES = \ + arg.h \ + error.h \ + internal.h \ + knot.c \ + knot.h \ + libs.h \ + type_diff.h \ + type_rrset.h -knot_la_CPPFLAGS = $(AM_CPPFLAGS) +knot_la_CPPFLAGS = $(AM_CPPFLAGS) $(CFLAG_VISIBILITY) $(gnutls_CFLAGS) knot_la_LDFLAGS = $(AM_LDFLAGS) -module -shared -avoid-version endif diff --git a/src/redis/arg.h b/src/redis/arg.h new file mode 100644 index 0000000000..bc94fa4a83 --- /dev/null +++ b/src/redis/arg.h @@ -0,0 +1,213 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#pragma once + +#define INSTANCE_MIN 1 +#define INSTANCE_MAX 8 +#define TXN_MIN 0 +#define TXN_MAX 8 +#define TXN_MAX_COUNT (TXN_MAX - TXN_MIN + 1) +#define TXN_ID_ACTIVE UINT8_MAX + +static uint32_t rdb_default_ttl = 600; +static uint32_t rdb_event_age = 1200; +static uint32_t rdb_upd_history_len = 20; + +typedef enum { + DUMP_BIN, + DUMP_TXT, + DUMP_COMPACT +} dump_mode_t; + +typedef struct { + const uint8_t *data; + uint8_t len; + // Next items are used if the dname was parsed from TXT. + const char *txt; + knot_dname_storage_t buff; +} arg_dname_t; + +#define ARG_OPT_TXT(out, name, dflt, value) { \ + out = dflt; \ + if (argc > 1) { \ + size_t len; \ + if (strcmp(RedisModule_StringPtrLen(argv[1], &len), "--" name) == 0) { \ + out = value; \ + argc--; \ + argv++; \ + } else if (strncmp(RedisModule_StringPtrLen(argv[1], &len), "--", 2) == 0) { \ + return RedisModule_ReplyWithError(ctx, RDB_E("invalid option")); \ + } \ + } \ +} + +#define ARG_INST(arg, out) { \ + size_t len; \ + const uint8_t *ptr = (const uint8_t *)RedisModule_StringPtrLen(arg, &len); \ + if (len != 1 || ptr[0] < INSTANCE_MIN || ptr[0] > INSTANCE_MAX) { \ + return RedisModule_ReplyWithError(ctx, RDB_EINST); \ + } \ + out.instance = ptr[0]; \ + out.id = TXN_ID_ACTIVE; \ +} + +#define ARG_INST_TXT(arg, out) { \ + size_t len; \ + const uint8_t *ptr = (const uint8_t *)RedisModule_StringPtrLen(arg, &len); \ + if (len != 1 || ptr[0] < '0' + INSTANCE_MIN || ptr[0] > '0' + INSTANCE_MAX) { \ + return RedisModule_ReplyWithError(ctx, RDB_EINST); \ + } \ + out.instance = ptr[0] - '0'; \ + out.id = TXN_ID_ACTIVE; \ +} + +#define ARG_TXN(arg, out) { \ + size_t len; \ + const uint8_t *ptr = (const uint8_t *)RedisModule_StringPtrLen(arg, &len); \ + if (len != 2 || ptr[0] < INSTANCE_MIN || ptr[0] > INSTANCE_MAX \ + || ptr[1] < TXN_MIN || ptr[1] > TXN_MAX) { \ + return RedisModule_ReplyWithError(ctx, RDB_ETXN); \ + } \ + memcpy(&out, ptr, len); \ +} + +#define ARG_TXN_TXT(arg, out) { \ + size_t len; \ + const char *ptr = RedisModule_StringPtrLen(arg, &len); \ + if (len != 2 || ptr[0] < '0' + INSTANCE_MIN || ptr[0] > '0' + INSTANCE_MAX \ + || ptr[1] < '0' + TXN_MIN || ptr[1] > '0' + TXN_MAX) { \ + return RedisModule_ReplyWithError((ctx), RDB_ETXN); \ + } \ + out.instance = ptr[0] - '0'; \ + out.id = ptr[1] - '0'; \ +} + +#define ARG_INST_TXN(arg, out) { \ + out.id = TXN_ID_ACTIVE; \ + size_t len; \ + const char *ptr = RedisModule_StringPtrLen(arg, &len); \ + switch (len) { \ + case 2: \ + if (ptr[1] < TXN_MIN || ptr[1] > TXN_MAX) { \ + return RedisModule_ReplyWithError((ctx), RDB_ETXN); \ + } \ + out.id = ptr[1]; \ + case 1: /* FALLTHROUGH */ \ + if (ptr[0] < INSTANCE_MIN || ptr[0] > INSTANCE_MAX) { \ + return RedisModule_ReplyWithError(ctx, RDB_EINST); \ + } \ + out.instance = ptr[0]; \ + break; \ + default: \ + return RedisModule_ReplyWithError(ctx, RDB_ETXN); \ + } \ +} + +#define ARG_INST_TXN_TXT(arg, out) { \ + out.id = TXN_ID_ACTIVE; \ + size_t len; \ + const char *ptr = RedisModule_StringPtrLen(arg, &len); \ + switch (len) { \ + case 2: \ + if (ptr[1] < '0' - TXN_MIN || ptr[1] > '0' + TXN_MAX) { \ + return RedisModule_ReplyWithError((ctx), RDB_ETXN); \ + } \ + out.id = ptr[1] - '0'; \ + case 1: /* FALLTHROUGH */ \ + if (ptr[0] < '0' + INSTANCE_MIN || ptr[0] > '0' + INSTANCE_MAX) { \ + return RedisModule_ReplyWithError(ctx, RDB_EINST); \ + } \ + out.instance = ptr[0] - '0'; \ + break; \ + default: \ + return RedisModule_ReplyWithError(ctx, RDB_ETXN); \ + } \ +} + +#define ARG_NUM(arg, out, name) { \ + long long val; \ + long long max = (1ULL << (sizeof(out) * 8)) - 1; \ + if (RedisModule_StringToLongLong(arg, &val) != REDISMODULE_OK || val > max) { \ + return RedisModule_ReplyWithError(ctx, RDB_E("invalid " name)); \ + } \ + out = val; \ +} + +#define ARG_DATA(arg, out_len, out, name) { \ + if ((out = (uint8_t *)RedisModule_StringPtrLen(arg, &out_len)) == NULL) { \ + return RedisModule_ReplyWithError(ctx, RDB_E("invalid " name)); \ + } \ +} + +#define ARG_DNAME(arg, out, name) { \ + size_t len; \ + const uint8_t *ptr = (const uint8_t *)RedisModule_StringPtrLen(arg, &len); \ + int ret = knot_dname_wire_check(ptr, ptr + len, NULL); \ + if (ret < 1 || ret != len) { \ + return RedisModule_ReplyWithError(ctx, RDB_E("invalid " name)); \ + } \ + /* We assume the dname is properly lowercased! */ \ + out.data = ptr; \ + out.len = ret; \ +} + +#define ARG_DNAME_TXT(arg, out, origin, name) { \ + size_t len; \ + out.txt = RedisModule_StringPtrLen(arg, &len); \ + if (dname_from_str(out.txt, len, out.buff, origin) == NULL) { \ + return RedisModule_ReplyWithError(ctx, RDB_E("invalid " name)); \ + } \ + out.data = out.buff; \ + out.len = knot_dname_size(out.data); \ +} + +#define ARG_RTYPE_TXT(arg, out) { \ + size_t len; \ + const char *ptr = RedisModule_StringPtrLen(arg, &len); \ + if (knot_rrtype_from_string(ptr, &out) != 0) { \ + return RedisModule_ReplyWithError(ctx, RDB_E("invalid record type")); \ + } \ +} + +static knot_dname_t *dname_from_str(const char *ptr, size_t len, uint8_t *out, arg_dname_t *origin) +{ + assert(ptr != NULL && out != NULL); + + if (knot_dname_from_str(out, ptr, KNOT_DNAME_MAXLEN) == NULL) { + return NULL; + } + knot_dname_to_lower(out); + + if (origin != NULL) { + bool fqdn = false; + size_t prefix_len = 0; + + if (len > 0 && (len != 1 || ptr[0] != '@')) { + // Check if the owner is FQDN. + if (ptr[len - 1] == '.') { + fqdn = true; + } + + prefix_len = knot_dname_size(out); + if (prefix_len == 0) { + return NULL; + } + + // Ignore trailing dot. + prefix_len--; + } + + // Append the origin. + if (!fqdn) { + if (origin->len == 0 || origin->len > KNOT_DNAME_MAXLEN - prefix_len) { + return NULL; + } + memcpy(out + prefix_len, origin->data, origin->len); + } + } + + return out; +} diff --git a/src/redis/error.h b/src/redis/error.h new file mode 100644 index 0000000000..2ff243b032 --- /dev/null +++ b/src/redis/error.h @@ -0,0 +1,24 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#pragma once + +#define RDB_E(str) ("" str) + +#define RDB_EALLOC RDB_E("failed to allocate memory") +#define RDB_ECOMPAT RDB_E("incompatible module version") +#define RDB_ECORRUPTED RDB_E("corrupted metadata") +#define RDB_EEVENT RDB_E("failed to emit event") +#define RDB_EEXIST RDB_E("already set") +#define RDB_EHISTORY RDB_E("failed to adjust updates history") +#define RDB_EINST RDB_E("invalid instance") +#define RDB_EMALF RDB_E("malformed data") +#define RDB_ENOSOA RDB_E("missing SOA") +#define RDB_EPARSE RDB_E("failed to parse") +#define RDB_ESEMCHECK RDB_E("semantic check failed") +#define RDB_ESTORE RDB_E("failed to store data") +#define RDB_ETXN RDB_E("invalid transaction") +#define RDB_ETXN_MANY RDB_E("too many transactions") +#define RDB_EZONE RDB_E("zone not available") diff --git a/src/redis/internal.h b/src/redis/internal.h new file mode 100644 index 0000000000..9e9a205ef9 --- /dev/null +++ b/src/redis/internal.h @@ -0,0 +1,2236 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: LGPL-2.1-or-later + * For more information, see + */ + +#pragma once + +#define SCORE_SOA 0. +#define SCORE_DEFAULT 1. + +#define TXN_ID_ACTIVE UINT8_MAX +#define ZONE_META_INACTIVE UINT8_MAX +#define TTL_EMPTY UINT32_MAX +#define TTL_EMPTY_STR "NONE" + +#define foreach_in_zset_subset(key, min, max) \ + for (RedisModule_ZsetFirstInScoreRange(key, min, max, 0, 0); \ + RedisModule_ZsetRangeEndReached(key) == 0; \ + RedisModule_ZsetRangeNext(key)) +#define foreach_in_zset(key) foreach_in_zset_subset(key, REDISMODULE_NEGATIVE_INFINITE, REDISMODULE_POSITIVE_INFINITE) + +#define zone_meta_keyname_construct(...) meta_keyname_construct(ZONE_META, __VA_ARGS__) +#define upd_meta_keyname_construct(...) meta_keyname_construct(UPD_META, __VA_ARGS__) + +#define delete_zone_index(...) delete_index(ZONE, __VA_ARGS__) +#define delete_upd_index(...) delete_index(UPD_TMP, __VA_ARGS__) + +#define throw(_ret, _msg) return (exception_t){ .ret = _ret, .what = _msg } +#define raise(e) return e +#define return_ok throw(KNOT_EOK, NULL) + +typedef enum { + EVENT = 1, // Keep synchronized with RDB_EVENT_KEY! + ZONES = 2, + ZONE_META = 3, + ZONE = 4, + RRSET = 5, + UPD_META = 6, + UPD_TMP = 7, + UPD = 8, + DIFF = 9, +} rdb_type_t; + +typedef struct { + const char *what; + int ret; +} exception_t; + +typedef struct { + uint8_t active; + uint8_t lock[TXN_MAX_COUNT]; +} zone_meta_storage_t; + +typedef struct { + uint16_t counter; + uint16_t lock[TXN_MAX_COUNT]; + uint16_t depth; +} upd_meta_storage_t; + +typedef struct { + RedisModuleCtx *ctx; + const rdb_txn_t *txn; + uint32_t dflt_ttl; + enum { + STORE, + ADD, + REM, + } mode; + bool replied; +} scanner_ctx_t; + +typedef int (*upd_callback)(diff_v *diff, const void *data, uint32_t ttl); + +typedef RedisModuleKey *rrset_k; +typedef RedisModuleKey *diff_k; +typedef RedisModuleKey *upd_meta_k; +typedef RedisModuleKey *zone_meta_k; +typedef RedisModuleKey *index_k; + +static void *redismodule_alloc(void *ptr, size_t bytes) +{ + return RedisModule_Alloc(bytes); +} + +static void redismodule_free(void *ptr) +{ + RedisModule_Free(ptr); +} + +static knot_mm_t mm = { + .alloc = redismodule_alloc, + .ctx = NULL, + .free = redismodule_free +}; + +static double evaluate_score(uint16_t rtype) +{ + return (rtype == KNOT_RRTYPE_SOA) ? SCORE_SOA : SCORE_DEFAULT; +} + +static RedisModuleString *meta_keyname_construct(const uint8_t prefix, RedisModuleCtx *ctx, + const arg_dname_t *origin, uint8_t instance) +{ + char buf[RDB_PREFIX_LEN + 1 + 1 + KNOT_DNAME_MAXLEN + 1]; + + wire_ctx_t w = wire_ctx_init((uint8_t *)buf, sizeof(buf)); + wire_ctx_write(&w, RDB_PREFIX, RDB_PREFIX_LEN); + wire_ctx_write_u8(&w, prefix); + wire_ctx_write_u8(&w, origin->len); + wire_ctx_write(&w, origin->data, origin->len); + wire_ctx_write_u8(&w, instance); + RedisModule_Assert(w.error == KNOT_EOK); + + return RedisModule_CreateString(ctx, buf, wire_ctx_offset(&w)); +} + +static RedisModuleString *rrset_keyname_construct(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const arg_dname_t *owner, + uint16_t rtype) +{ + static const uint8_t prefix = RRSET; + + char buf[RDB_PREFIX_LEN + 1 + 1 + KNOT_DNAME_MAXLEN + 1 + KNOT_DNAME_MAXLEN + 2 + 2]; + + wire_ctx_t w = wire_ctx_init((uint8_t *)buf, sizeof(buf)); + wire_ctx_write(&w, RDB_PREFIX, RDB_PREFIX_LEN); + wire_ctx_write_u8(&w, prefix); + wire_ctx_write_u8(&w, origin->len); + wire_ctx_write(&w, origin->data, origin->len); + wire_ctx_write_u8(&w, owner->len); + wire_ctx_write(&w, owner->data, owner->len); + wire_ctx_write_u16(&w, rtype); + wire_ctx_write(&w, txn, sizeof(*txn)); + RedisModule_Assert(w.error == KNOT_EOK); + + return RedisModule_CreateString(ctx, buf, wire_ctx_offset(&w)); +} + +static RedisModuleString *diff_keyname_construct(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const arg_dname_t *owner, + uint16_t rtype, uint16_t id) +{ + static const uint8_t prefix = DIFF; + + char buf[RDB_PREFIX_LEN + 1 + 1 + KNOT_DNAME_MAXLEN + 1 + KNOT_DNAME_MAXLEN + 2 + 2 + 2]; + + wire_ctx_t w = wire_ctx_init((uint8_t *)buf, sizeof(buf)); + wire_ctx_write(&w, RDB_PREFIX, RDB_PREFIX_LEN); + wire_ctx_write_u8(&w, prefix); + wire_ctx_write_u8(&w, origin->len); + wire_ctx_write(&w, origin->data, origin->len); + wire_ctx_write_u8(&w, owner->len); + wire_ctx_write(&w, owner->data, owner->len); + wire_ctx_write_u16(&w, rtype); + wire_ctx_write(&w, txn, sizeof(*txn)); + wire_ctx_write_u16(&w, id); + RedisModule_Assert(w.error == KNOT_EOK); + + return RedisModule_CreateString(ctx, buf, wire_ctx_offset(&w)); +} + +static zone_meta_k zone_meta_get_when_open(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, int rights) +{ + RedisModuleString *txn_k = zone_meta_keyname_construct(ctx, origin, txn->instance); + zone_meta_k key = RedisModule_OpenKey(ctx, txn_k, rights); + RedisModule_FreeString(ctx, txn_k); + if (key == NULL || RedisModule_KeyType(key) != REDISMODULE_KEYTYPE_STRING) { + RedisModule_CloseKey(key); + return NULL; + } + + size_t len = 0; + const zone_meta_storage_t *meta = (const zone_meta_storage_t *)RedisModule_StringDMA(key, &len, REDISMODULE_READ); + if (txn->id != meta->active && meta->lock[txn->id] != 0) { + return key; + } + RedisModule_CloseKey(key); + return NULL; +} + +static bool zone_txn_is_open(RedisModuleCtx *ctx, const arg_dname_t *origin, const rdb_txn_t *txn) +{ + zone_meta_k key = zone_meta_get_when_open(ctx, origin, txn, REDISMODULE_READ); + bool out = (key != NULL); + RedisModule_CloseKey(key); + return out; +} + +static void commit_event(RedisModuleCtx *ctx, rdb_event_t type, const arg_dname_t *origin, + uint8_t instance, uint32_t serial) +{ + RedisModuleString *keyname = RedisModule_CreateString(ctx, RDB_EVENT_KEY, strlen(RDB_EVENT_KEY)); + RedisModuleKey *stream_key = RedisModule_OpenKey(ctx, keyname, REDISMODULE_READ | REDISMODULE_WRITE); + RedisModule_FreeString(ctx, keyname); + + int zone_stream_type = RedisModule_KeyType(stream_key); + if (zone_stream_type != REDISMODULE_KEYTYPE_EMPTY && zone_stream_type != REDISMODULE_KEYTYPE_STREAM) { + RedisModule_Log(ctx, REDISMODULE_LOGLEVEL_WARNING, RDB_EEVENT); + RedisModule_CloseKey(stream_key); + return; + } + + RedisModuleString *events[] = { + RedisModule_CreateString(ctx, RDB_EVENT_ARG_EVENT, strlen(RDB_EVENT_ARG_EVENT)), + RedisModule_CreateStringFromLongLong(ctx, type), + RedisModule_CreateString(ctx, RDB_EVENT_ARG_ORIGIN, strlen(RDB_EVENT_ARG_ORIGIN)), + RedisModule_CreateString(ctx, (const char *)origin->data, origin->len), + RedisModule_CreateString(ctx, RDB_EVENT_ARG_INSTANCE, strlen(RDB_EVENT_ARG_INSTANCE)), + RedisModule_CreateStringFromLongLong(ctx, instance), + RedisModule_CreateString(ctx, RDB_EVENT_ARG_SERIAL, strlen(RDB_EVENT_ARG_SERIAL)), + RedisModule_CreateStringFromLongLong(ctx, serial), + NULL, + }; + + RedisModuleStreamID ts; + int ret = RedisModule_StreamAdd(stream_key, REDISMODULE_STREAM_ADD_AUTOID, &ts, events, 4); + + for (RedisModuleString **event = events; *event != NULL; event++) { + RedisModule_FreeString(ctx, *event); + } + + if (ret != REDISMODULE_OK) { + RedisModule_Log(ctx, REDISMODULE_LOGLEVEL_WARNING, RDB_EEVENT); + RedisModule_CloseKey(stream_key); + return; + } + + if (rdb_event_age == 0) { + RedisModule_CloseKey(stream_key); + return; + } + + ts.ms -= 1000LLU * rdb_event_age; + ts.seq = 0; + + // NOTE Trimming with REDISMODULE_STREAM_TRIM_APPROX improves preformance + long long removed_cnt = RedisModule_StreamTrimByID(stream_key, REDISMODULE_STREAM_TRIM_APPROX, &ts); + if (removed_cnt) { + RedisModule_Log(ctx, REDISMODULE_LOGLEVEL_NOTICE, "stream cleanup %lld old events", removed_cnt); + } + RedisModule_CloseKey(stream_key); +} + +static RedisModuleKey *get_zones_index(RedisModuleCtx *ctx, int rights) +{ + static const uint8_t prefix = ZONES; + + char buf[RDB_PREFIX_LEN + 1 + 1]; + + wire_ctx_t w = wire_ctx_init((uint8_t *)buf, sizeof(buf)); + wire_ctx_write(&w, RDB_PREFIX, RDB_PREFIX_LEN); + wire_ctx_write_u8(&w, prefix); + RedisModule_Assert(w.error == KNOT_EOK); + + RedisModuleString *keyname = RedisModule_CreateString(ctx, buf, wire_ctx_offset(&w)); + RedisModuleKey *key = RedisModule_OpenKey(ctx, keyname, rights); + RedisModule_FreeString(ctx, keyname); + + return key; +} + +static index_k get_zone_index(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, int rights) +{ + static const uint8_t prefix = ZONE; + + char buf[RDB_PREFIX_LEN + 1 + 1 + KNOT_DNAME_MAXLEN + 2]; + + wire_ctx_t w = wire_ctx_init((uint8_t *)buf, sizeof(buf)); + wire_ctx_write(&w, RDB_PREFIX, RDB_PREFIX_LEN); + wire_ctx_write_u8(&w, prefix); + wire_ctx_write_u8(&w, origin->len); + wire_ctx_write(&w, origin->data, origin->len); + wire_ctx_write(&w, txn, sizeof(*txn)); + RedisModule_Assert(w.error == KNOT_EOK); + + RedisModuleString *keyname = RedisModule_CreateString(ctx, buf, wire_ctx_offset(&w)); + index_k key = RedisModule_OpenKey(ctx, keyname, rights); + RedisModule_FreeString(ctx, keyname); + + return key; +} + +static index_k get_upd_index(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, uint16_t id, int rights) +{ + static const uint8_t prefix = UPD_TMP; + + char buf[RDB_PREFIX_LEN + 1 + 1 + KNOT_DNAME_MAXLEN + 2 + 2]; + + wire_ctx_t w = wire_ctx_init((uint8_t *)buf, sizeof(buf)); + wire_ctx_write(&w, RDB_PREFIX, RDB_PREFIX_LEN); + wire_ctx_write_u8(&w, prefix); + wire_ctx_write_u8(&w, origin->len); + wire_ctx_write(&w, origin->data, origin->len); + wire_ctx_write(&w, txn, sizeof(*txn)); + wire_ctx_write_u16(&w, id); + RedisModule_Assert(w.error == KNOT_EOK); + + RedisModuleString *keyname = RedisModule_CreateString(ctx, buf, wire_ctx_offset(&w)); + index_k key = RedisModule_OpenKey(ctx, keyname, rights); + RedisModule_FreeString(ctx, keyname); + + return key; +} + +static index_k get_commited_upd_index(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const uint32_t serial, int rights) +{ + static const uint8_t prefix = UPD; + + char buf[RDB_PREFIX_LEN + 1 + 1 + KNOT_DNAME_MAXLEN + 1 + 4]; + + wire_ctx_t w = wire_ctx_init((uint8_t *)buf, sizeof(buf)); + wire_ctx_write(&w, RDB_PREFIX, RDB_PREFIX_LEN); + wire_ctx_write_u8(&w, prefix); + wire_ctx_write_u8(&w, origin->len); + wire_ctx_write(&w, origin->data, origin->len); + wire_ctx_write_u8(&w, txn->instance); + wire_ctx_write_u32(&w, serial); + RedisModule_Assert(w.error == KNOT_EOK); + + RedisModuleString *keyname = RedisModule_CreateString(ctx, buf, wire_ctx_offset(&w)); + index_k key = RedisModule_OpenKey(ctx, keyname, rights); + RedisModule_FreeString(ctx, keyname); + + return key; +} + +static int rrset_key_set(RedisModuleCtx *ctx, rrset_k key, RedisModuleString *keyname, + const arg_dname_t *origin, const rdb_txn_t *txn, uint16_t rtype, rrset_v *val) +{ + RedisModule_Assert(RedisModule_ModuleTypeSetValue(key, rdb_rrset_t, val) == REDISMODULE_OK); + + index_k zone_index_key = get_zone_index(ctx, origin, txn, REDISMODULE_READ | REDISMODULE_WRITE); + int zone_keytype = RedisModule_KeyType(zone_index_key); + if (zone_keytype != REDISMODULE_KEYTYPE_EMPTY && + zone_keytype != REDISMODULE_KEYTYPE_ZSET) { + RedisModule_CloseKey(zone_index_key); + return KNOT_EMALF; + } + int ret = RedisModule_ZsetAdd(zone_index_key, evaluate_score(rtype), keyname, NULL); + if (ret != REDISMODULE_OK) { + RedisModule_CloseKey(zone_index_key); + return KNOT_ENOMEM; + } + RedisModule_CloseKey(zone_index_key); + + return KNOT_EOK; +} + +static exception_t rdata_add(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const arg_dname_t *owner, + uint32_t ttl, uint16_t rtype, const knot_rdata_t *rdata) +{ + RedisModuleString *rrset_keystr = rrset_keyname_construct(ctx, origin, txn, owner, rtype); + rrset_k rrset_key = RedisModule_OpenKey(ctx, rrset_keystr, REDISMODULE_READ | REDISMODULE_WRITE); + rrset_v *rrset = RedisModule_ModuleTypeGetValue(rrset_key); + if (rrset == NULL) { + rrset = RedisModule_Calloc(1, sizeof(*rrset)); + if (rrset == NULL) { + RedisModule_CloseKey(rrset_key); + RedisModule_FreeString(ctx, rrset_keystr); + throw(KNOT_ENOMEM, RDB_EALLOC); + } + int ret = rrset_key_set(ctx, rrset_key, rrset_keystr, origin, txn, rtype, rrset); + if (ret != KNOT_EOK) { + RedisModule_CloseKey(rrset_key); + RedisModule_FreeString(ctx, rrset_keystr); + throw(ret, RDB_ESTORE); + } + rrset->ttl = (ttl == TTL_EMPTY) ? rdb_default_ttl : ttl; + } else { + RedisModule_Assert(RedisModule_ModuleTypeGetType(rrset_key) == rdb_rrset_t); + if (ttl != TTL_EMPTY) { + rrset->ttl = ttl; + } + } + RedisModule_FreeString(ctx, rrset_keystr); + + int ret = knot_rdataset_add(&rrset->rrs, rdata, &mm); + RedisModule_CloseKey(rrset_key); + if (ret != KNOT_EOK) { + throw(ret, RDB_ESTORE); + } + return_ok; +} + +static int rdata_add_format(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const arg_dname_t *owner, + uint32_t ttl, uint16_t rtype, const knot_rdata_t *rdata) +{ + exception_t e = rdata_add(ctx, origin, txn, owner, ttl, rtype, rdata); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + } + return e.ret; +} + +static exception_t rdata_remove(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const arg_dname_t *owner, + uint32_t *ttl, uint16_t rtype, const knot_rdata_t *rdata) +{ + // Existence of the rrset is ensured by the previous check. + RedisModuleString *rrset_keystr = rrset_keyname_construct(ctx, origin, txn, owner, rtype); + rrset_k rrset_key = RedisModule_OpenKey(ctx, rrset_keystr, REDISMODULE_READ | REDISMODULE_WRITE); + RedisModule_Assert(RedisModule_ModuleTypeGetType(rrset_key) == rdb_rrset_t); + rrset_v *rrset = RedisModule_ModuleTypeGetValue(rrset_key); + RedisModule_Assert(rrset != NULL); + + if (*ttl == TTL_EMPTY) { + *ttl = rrset->ttl; + } + + int ret = knot_rdataset_remove(&rrset->rrs, rdata, &mm); + if (ret != KNOT_EOK) { + RedisModule_FreeString(ctx, rrset_keystr); + RedisModule_CloseKey(rrset_key); + throw(ret, RDB_ESTORE); + } + + if (rrset->rrs.count == 0 && rtype != KNOT_RRTYPE_SOA) { + RedisModule_DeleteKey(rrset_key); + + index_k zone_index = get_zone_index(ctx, origin, txn, REDISMODULE_READ | REDISMODULE_WRITE); + RedisModule_Assert(RedisModule_KeyType(zone_index) == REDISMODULE_KEYTYPE_ZSET); + RedisModule_ZsetRem(zone_index, rrset_keystr, NULL); + RedisModule_CloseKey(zone_index); + } + + RedisModule_FreeString(ctx, rrset_keystr); + RedisModule_CloseKey(rrset_key); + return_ok; +} + +static void zone_meta_storage_init(zone_meta_storage_t *meta) +{ + meta->active = ZONE_META_INACTIVE; + memset(meta->lock, 0, sizeof(meta->lock)); +} + +static zone_meta_k zone_meta_key_get(RedisModuleCtx *ctx, const arg_dname_t *origin, + rdb_txn_t *txn, int rights) +{ + RedisModule_Assert(txn->instance > 0); + + RedisModuleString *txn_k = zone_meta_keyname_construct(ctx, origin, txn->instance); + zone_meta_k key = RedisModule_OpenKey(ctx, txn_k, rights); + RedisModule_FreeString(ctx, txn_k); + + int keytype = RedisModule_KeyType(key); + if (keytype == REDISMODULE_KEYTYPE_EMPTY) { + zone_meta_storage_t meta; + zone_meta_storage_init(&meta); + RedisModuleString *meta_str = RedisModule_CreateString(ctx, (const char *)&meta, sizeof(meta)); + RedisModule_StringSet(key, meta_str); + RedisModule_FreeString(ctx, meta_str); + } else if (keytype != REDISMODULE_KEYTYPE_STRING) { + RedisModule_CloseKey(key); + return NULL; + } + + return key; +} + +static upd_meta_k upd_meta_key_get(RedisModuleCtx *ctx, const arg_dname_t *origin, + rdb_txn_t *txn, int rights) +{ + RedisModule_Assert(txn->instance > 0); + + RedisModuleString *txn_k = upd_meta_keyname_construct(ctx, origin, txn->instance); + upd_meta_k key = RedisModule_OpenKey(ctx, txn_k, rights); + RedisModule_FreeString(ctx, txn_k); + + int keytype = RedisModule_KeyType(key); + if (keytype == REDISMODULE_KEYTYPE_EMPTY) { + upd_meta_storage_t meta = { 0 }; + RedisModuleString *meta_str = RedisModule_CreateString(ctx, (const char *)&meta, sizeof(meta)); + RedisModule_StringSet(key, meta_str); + RedisModule_FreeString(ctx, meta_str); + } else if (keytype != REDISMODULE_KEYTYPE_STRING) { + RedisModule_CloseKey(key); + RedisModule_ReplyWithError(ctx, RDB_EMALF); + return NULL; + } + + return key; +} + +static int zone_txn_lock(zone_meta_k key, rdb_txn_t *txn) +{ + RedisModule_Assert(txn->instance > 0); + + size_t len = 0; + zone_meta_storage_t *meta = (zone_meta_storage_t *)RedisModule_StringDMA(key, &len, REDISMODULE_WRITE); + if (meta == NULL || len != sizeof(zone_meta_storage_t)) { + return KNOT_EINVAL; + } + + for (txn->id = TXN_MIN; txn->id <= TXN_MAX; ++txn->id) { + if (meta->lock[txn->id] == 0) { + meta->lock[txn->id] = 1; + break; + } + } + if (txn->id > TXN_MAX) { + return KNOT_EBUSY; + } + + return KNOT_EOK; +} + +static exception_t upd_txn_lock(upd_meta_k key, rdb_txn_t *txn) +{ + RedisModule_Assert(txn->instance > 0); + + size_t len; + upd_meta_storage_t *meta = (upd_meta_storage_t *)RedisModule_StringDMA(key, &len, REDISMODULE_WRITE); + if (meta == NULL || len != sizeof(upd_meta_storage_t)) { + throw(KNOT_EINVAL, RDB_EMALF); + } + + for (txn->id = TXN_MIN; txn->id <= TXN_MAX; ++txn->id) { + if (meta->lock[txn->id] == 0) { + meta->counter = MAX(meta->counter + 1, 1); + meta->lock[txn->id] = meta->counter; + break; + } + } + if (txn->id > TXN_MAX) { + throw(KNOT_EBUSY, RDB_ETXN_MANY); + } + + return_ok; +} + +static int serialize_transaction(const rdb_txn_t *txn) +{ + return 10 * txn->instance + txn->id; +} + +static int set_active_transaction(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + RedisModule_Assert(txn->instance > 0); + + RedisModuleString *txn_k = zone_meta_keyname_construct(ctx, origin, txn->instance); + zone_meta_k key = RedisModule_OpenKey(ctx, txn_k, REDISMODULE_READ); + RedisModule_FreeString(ctx, txn_k); + if (key == NULL) { + return KNOT_EEXIST; + } else if (RedisModule_KeyType(key) != REDISMODULE_KEYTYPE_STRING) { + RedisModule_CloseKey(key); + return KNOT_EMALF; + } + size_t len = 0; + const zone_meta_storage_t *meta = (const zone_meta_storage_t *)RedisModule_StringDMA(key, &len, REDISMODULE_READ); + if (meta->active != ZONE_META_INACTIVE) { + txn->id = meta->active; + RedisModule_CloseKey(key); + return KNOT_EOK; + } + RedisModule_CloseKey(key); + return KNOT_EEXIST; +} + +static int get_id(RedisModuleCtx *ctx, const arg_dname_t *origin, const rdb_txn_t *txn) +{ + RedisModuleString *txn_k = upd_meta_keyname_construct(ctx, origin, txn->instance); + upd_meta_k meta_key = RedisModule_OpenKey(ctx, txn_k, REDISMODULE_READ); + RedisModule_FreeString(ctx, txn_k); + + int keytype = RedisModule_KeyType(meta_key); + if (keytype != REDISMODULE_KEYTYPE_STRING) { + RedisModule_CloseKey(meta_key); + return KNOT_EINVAL; + } + + size_t meta_len = 0; + upd_meta_storage_t *meta = (upd_meta_storage_t *)RedisModule_StringDMA(meta_key, &meta_len, REDISMODULE_READ); + if (meta_len != sizeof(upd_meta_storage_t)) { + RedisModule_CloseKey(meta_key); + return KNOT_EINVAL; + } + + uint16_t id = meta->lock[txn->id]; + if (id == 0) { + RedisModule_CloseKey(meta_key); + return KNOT_EEXIST; + } + + RedisModule_CloseKey(meta_key); + return id; +} + +static int delete_index(const uint8_t prefix, RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn) +{ + index_k index_key = NULL; + switch (prefix) { + case ZONE: + index_key = get_zone_index(ctx, origin, txn, REDISMODULE_READ | REDISMODULE_WRITE); + break; + case UPD_TMP:; + int ret = get_id(ctx, origin, txn); + if (ret < 0 || ret > UINT16_MAX) { + return KNOT_EEXIST; + } + uint16_t id = ret; + index_key = get_upd_index(ctx, origin, txn, id, REDISMODULE_READ | REDISMODULE_WRITE); + break; + default: + return KNOT_ENOTSUP; + } + + if (RedisModule_KeyType(index_key) == REDISMODULE_KEYTYPE_EMPTY) { + RedisModule_CloseKey(index_key); + return KNOT_EOK; + } else if (RedisModule_KeyType(index_key) != REDISMODULE_KEYTYPE_ZSET) { + RedisModule_CloseKey(index_key); + return KNOT_EINVAL; + } + foreach_in_zset(index_key) { + RedisModuleString *el = RedisModule_ZsetRangeCurrentElement(index_key, NULL); + RedisModuleKey *el_key = RedisModule_OpenKey(ctx, el, REDISMODULE_READ | REDISMODULE_WRITE); + if (el_key != NULL) { + RedisModule_DeleteKey(el_key); + RedisModule_CloseKey(el_key); + } + RedisModule_FreeString(ctx, el); + } + + RedisModule_DeleteKey(index_key); + RedisModule_CloseKey(index_key); + + return KNOT_EOK; +} + +static exception_t zone_begin(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + zone_meta_k key = zone_meta_key_get(ctx, origin, txn, REDISMODULE_WRITE); + if (key == NULL) { + throw(KNOT_EMALF, RDB_ECORRUPTED); + } + + int ret = zone_txn_lock(key, txn); + RedisModule_CloseKey(key); + if (ret == KNOT_EBUSY) { + throw(KNOT_EBUSY, RDB_ETXN_MANY); + } else if (ret != KNOT_EOK) { + throw(ret, RDB_ECORRUPTED); + } + + ret = delete_upd_index(ctx, origin, txn); + if (ret != KNOT_EOK && ret != KNOT_EEXIST) { + throw(ret, RDB_ECORRUPTED); + } + + return_ok; +} + +static void zone_begin_txt_format(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + exception_t e = zone_begin(ctx, origin, txn); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + } else { + RedisModule_ReplyWithLongLong(ctx, serialize_transaction(txn)); + } +} + +static void zone_begin_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + exception_t e = zone_begin(ctx, origin, txn); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + } else { + RedisModule_ReplyWithStringBuffer(ctx, (const char *)txn, sizeof(*txn)); + } +} + +static exception_t upd_begin(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + rdb_txn_t zone_txn = { + .instance = txn->instance, + .id = TXN_ID_ACTIVE + }; + if (set_active_transaction(ctx, origin, &zone_txn) == KNOT_EEXIST) { + throw(KNOT_EINVAL, RDB_EZONE); + } + + upd_meta_k key = upd_meta_key_get(ctx, origin, txn, REDISMODULE_WRITE); + if (key == NULL) { + throw(KNOT_EMALF, RDB_ECORRUPTED); + } + + exception_t e = upd_txn_lock(key, txn); + RedisModule_CloseKey(key); + if (e.ret != KNOT_EOK) { + raise(e); + } + + int ret = delete_upd_index(ctx, origin, txn); + if (ret != KNOT_EOK && ret != KNOT_EEXIST) { + throw(ret, RDB_ECORRUPTED); + } + + return_ok; +} + +static void upd_begin_txt_format(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + exception_t e = upd_begin(ctx, origin, txn); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + return; + } + + RedisModule_ReplyWithLongLong(ctx, serialize_transaction(txn)); +} + +static void upd_begin_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + exception_t e = upd_begin(ctx, origin, txn); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + return; + } + + RedisModule_ReplyWithStringBuffer(ctx, (const char *)txn, sizeof(*txn)); +} + +static upd_meta_k upd_meta_get_when_open(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, int rights) +{ + RedisModuleString *txn_k = upd_meta_keyname_construct(ctx, origin, txn->instance); + upd_meta_k key = RedisModule_OpenKey(ctx, txn_k, rights); + RedisModule_FreeString(ctx, txn_k); + if (key == NULL) { + return NULL; + } else if (RedisModule_KeyType(key) != REDISMODULE_KEYTYPE_STRING) { + RedisModule_CloseKey(key); + return NULL; + } + size_t len = 0; + const upd_meta_storage_t *transaction = (const upd_meta_storage_t *)RedisModule_StringDMA(key, &len, REDISMODULE_WRITE); + if (transaction->lock[txn->id] == 0) { + RedisModule_CloseKey(key); + return NULL; + } + return key; +} + +static int upd_add_txt_cb(diff_v *diff, const void *data, uint32_t ttl) +{ + const knot_rdata_t *rdata = data; + + if (knot_rdataset_member(&diff->rem_rrs, rdata)) { + return knot_rdataset_remove(&diff->rem_rrs, rdata, &mm); + } else { + diff->add_ttl = (ttl == TTL_EMPTY) ? rdb_default_ttl : ttl; + return knot_rdataset_add(&diff->add_rrs, rdata, &mm); + } +} + +static int upd_remove_txt_cb(diff_v *diff, const void *data, uint32_t ttl) +{ + const knot_rdata_t *rdata = data; + + if (knot_rdataset_member(&diff->add_rrs, rdata)) { + return knot_rdataset_remove(&diff->add_rrs, rdata, &mm); + } else { + diff->rem_ttl = ttl; + return knot_rdataset_add(&diff->rem_rrs, rdata, &mm); + } +} + +static int upd_add_bin_cb(diff_v *diff, const void *data, uint32_t ttl) +{ + const knot_rdataset_t *rdataset = data; + + if (diff->add_rrs.count > 0) { + return KNOT_EEXIST; + } + int ret = knot_rdataset_copy(&diff->add_rrs, rdataset, &mm); + diff->add_ttl = ttl; + + return ret; +} + +static int upd_remove_bin_cb(diff_v *diff, const void *data, uint32_t ttl) +{ + const knot_rdataset_t *rdataset = data; + + if (diff->rem_rrs.count > 0) { + return KNOT_EEXIST; + } + int ret = knot_rdataset_copy(&diff->rem_rrs, rdataset, &mm); + diff->rem_ttl = ttl; + + return ret; +} + +static exception_t upd_add_rem(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const arg_dname_t *owner, + const uint32_t ttl, const uint16_t rtype, + void *data, upd_callback cb) +{ + int ret = get_id(ctx, origin, txn); + if (ret < 0 || ret > UINT16_MAX) { + throw(ret, RDB_ETXN); + } + uint16_t id = ret; + + RedisModuleString *diff_keystr = diff_keyname_construct(ctx, origin, txn, owner, rtype, id); + diff_k diff_key = RedisModule_OpenKey(ctx, diff_keystr, REDISMODULE_READ | REDISMODULE_WRITE); + diff_v *diff = RedisModule_ModuleTypeGetValue(diff_key); + if (diff == NULL) { + diff = RedisModule_Calloc(1, sizeof(diff_v)); + if (diff == NULL) { + RedisModule_CloseKey(diff_key); + RedisModule_FreeString(ctx, diff_keystr); + throw(KNOT_ENOMEM, RDB_EALLOC); + } + RedisModule_Assert(RedisModule_ModuleTypeSetValue(diff_key, rdb_diff_t, diff) == REDISMODULE_OK); + + index_k diff_index_key = get_upd_index(ctx, origin, txn, id, REDISMODULE_READ | REDISMODULE_WRITE); + int diff_keytype = RedisModule_KeyType(diff_index_key); + if (diff_keytype != REDISMODULE_KEYTYPE_EMPTY && + diff_keytype != REDISMODULE_KEYTYPE_ZSET) { + RedisModule_FreeString(ctx, diff_keystr); + RedisModule_CloseKey(diff_key); + RedisModule_CloseKey(diff_index_key); + throw(KNOT_EMALF, RDB_EMALF); + } + ret = RedisModule_ZsetAdd(diff_index_key, evaluate_score(rtype), diff_keystr, NULL); + RedisModule_CloseKey(diff_index_key); + if (ret != REDISMODULE_OK) { + RedisModule_FreeString(ctx, diff_keystr); + RedisModule_CloseKey(diff_key); + throw(KNOT_ENOMEM, RDB_ESTORE); + } + } else { + RedisModule_Assert(RedisModule_ModuleTypeGetType(diff_key) == rdb_diff_t); + } + RedisModule_FreeString(ctx, diff_keystr); + + ret = cb(diff, data, ttl); + if (ret == KNOT_EEXIST) { + RedisModule_CloseKey(diff_key); + throw(KNOT_EEXIST, RDB_EEXIST); + } + + RedisModule_CloseKey(diff_key); + return_ok; +} + +static int upd_add_txt_format(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const arg_dname_t *owner, + const uint32_t ttl, const uint16_t rtype, + const knot_rdata_t *data) +{ + exception_t e = upd_add_rem(ctx, origin, txn, owner, ttl, rtype, (void *)data, upd_add_txt_cb); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + } + return e.ret; +} + +static int upd_remove_txt_format(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const arg_dname_t *owner, + const uint32_t ttl, const uint16_t rtype, + const knot_rdata_t *data) +{ + exception_t e = upd_add_rem(ctx, origin, txn, owner, ttl, rtype, (void *)data, upd_remove_txt_cb); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + } + return e.ret; +} + +static void upd_add_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const arg_dname_t *owner, + const uint32_t ttl, const uint16_t rtype, + const knot_rdataset_t *data) +{ + exception_t e = upd_add_rem(ctx, origin, txn, owner, ttl, rtype, (void *)data, upd_add_bin_cb); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + } else { + RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); + } +} + +static void upd_remove_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const arg_dname_t *owner, + const uint32_t ttl, const uint16_t rtype, + const knot_rdataset_t *data) +{ + exception_t e = upd_add_rem(ctx, origin, txn, owner, ttl, rtype, (void *)data, upd_remove_bin_cb); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + } else { + RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); + } +} + +static void scanner_data(zs_scanner_t *s) +{ + scanner_ctx_t *s_ctx = s->process.data; + + arg_dname_t origin = { + .data = s->zone_origin, + .len = s->zone_origin_length + }; + arg_dname_t owner = { + .data = s->r_owner, + .len = s->r_owner_length + }; + + uint8_t buf[knot_rdata_size(s->r_data_length)]; + knot_rdata_t *rdata = (knot_rdata_t *)buf; + knot_rdata_init(rdata, s->r_data_length, s->r_data); + if (knot_rdata_to_canonical(rdata, s->r_type) != KNOT_EOK) { + RedisModule_ReplyWithError(s_ctx->ctx, RDB_EMALF); + s_ctx->replied = true; + s->error.fatal = true; + s->state = ZS_STATE_STOP; + return; + } + + int ret = KNOT_EOK; + switch (s_ctx->mode) { + case STORE: + ret = rdata_add_format(s_ctx->ctx, &origin, s_ctx->txn, &owner, + s->r_ttl, s->r_type, rdata); + break; + case ADD: + ret = upd_add_txt_format(s_ctx->ctx, &origin, s_ctx->txn, &owner, + s->r_ttl, s->r_type, rdata); + break; + case REM: + ret = upd_remove_txt_format(s_ctx->ctx, &origin, s_ctx->txn, &owner, + s->r_ttl, s->r_type, rdata); + break; + default: + RedisModule_Assert(0); + } + if (ret != KNOT_EOK) { + s_ctx->replied = true; + s->error.fatal = true; + s->state = ZS_STATE_STOP; + } +} + +static void scanner_error(zs_scanner_t *s) +{ + scanner_ctx_t *s_ctx = s->process.data; + + char msg[128]; + (void)snprintf(msg, sizeof(msg), RDB_E("parser failed (%s), line %"PRIu64), + zs_strerror(s->error.code), s->line_counter); + RedisModule_ReplyWithError(s_ctx->ctx, msg); + + s_ctx->replied = true; + s->state = ZS_STATE_STOP; +} + +static void zone_store_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const arg_dname_t *owner, + uint16_t rtype, uint32_t ttl, uint16_t rcount, + const uint8_t *zone_data, const size_t zone_data_len) +{ + if (zone_txn_is_open(ctx, origin, txn) == false) { + RedisModule_ReplyWithError(ctx, RDB_ETXN); + return; + } + + RedisModuleString *rrset_keyname = rrset_keyname_construct(ctx, origin, txn, owner, rtype); + rrset_k rrset_key = RedisModule_OpenKey(ctx, rrset_keyname, REDISMODULE_READ | REDISMODULE_WRITE); + if (RedisModule_KeyType(rrset_key) != REDISMODULE_KEYTYPE_EMPTY) { + RedisModule_FreeString(ctx, rrset_keyname); + RedisModule_CloseKey(rrset_key); + RedisModule_ReplyWithError(ctx, RDB_EEXIST); + return; + } + + rrset_v *rrset = RedisModule_Calloc(1, sizeof(*rrset)); + if (rrset == NULL) { + RedisModule_FreeString(ctx, rrset_keyname); + RedisModule_CloseKey(rrset_key); + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return; + } + + rrset->ttl = ttl; + rrset->rrs.count = rcount; + if (zone_data_len != 0) { + rrset->rrs.rdata = RedisModule_Alloc(zone_data_len); + if (rrset->rrs.rdata == NULL) { + RedisModule_Free(rrset); + RedisModule_FreeString(ctx, rrset_keyname); + RedisModule_CloseKey(rrset_key); + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return; + } + rrset->rrs.size = zone_data_len; + memcpy(rrset->rrs.rdata, zone_data, zone_data_len); + } else { + rrset->rrs.rdata = NULL; + rrset->rrs.size = 0; + } + + int ret = rrset_key_set(ctx, rrset_key, rrset_keyname, origin, txn, rtype, rrset); + RedisModule_FreeString(ctx, rrset_keyname); + RedisModule_CloseKey(rrset_key); + if (ret != KNOT_EOK) { + RedisModule_Free(rrset); + RedisModule_ReplyWithError(ctx, RDB_ESTORE); + return; + } + + RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); +} + +static void run_scanner(scanner_ctx_t *s_ctx, const arg_dname_t *origin, + const char *data, size_t data_len) +{ + zs_scanner_t s; + if (zs_init(&s, origin->txt, KNOT_CLASS_IN, s_ctx->dflt_ttl) != 0 || + zs_set_input_string(&s, data, data_len) != 0 || + zs_set_processing(&s, scanner_data, scanner_error, s_ctx) != 0 || + zs_parse_all(&s) != 0 || s.error.fatal) { + if (!s_ctx->replied) { + RedisModule_ReplyWithError(s_ctx->ctx, RDB_EPARSE); + } + zs_deinit(&s); + return; + } + zs_deinit(&s); + + RedisModule_ReplyWithSimpleString(s_ctx->ctx, RDB_RETURN_OK); +} + +static void zone_store_txt_format(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const char *zone_data, + const size_t zone_data_len) +{ + if (zone_txn_is_open(ctx, origin, txn) == false) { + RedisModule_ReplyWithError(ctx, RDB_ETXN); + return; + } + + scanner_ctx_t s_ctx = { + .ctx = ctx, + .txn = txn, + .dflt_ttl = rdb_default_ttl, + .mode = STORE + }; + + run_scanner(&s_ctx, origin, zone_data, zone_data_len); +} + +static int zone_meta_release(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + RedisModuleString *txn_k = zone_meta_keyname_construct(ctx, origin, txn->instance); + zone_meta_k key = RedisModule_OpenKey(ctx, txn_k, REDISMODULE_READ | REDISMODULE_WRITE); + RedisModule_FreeString(ctx, txn_k); + if (key == NULL || RedisModule_KeyType(key) != REDISMODULE_KEYTYPE_STRING) { + RedisModule_CloseKey(key); + return KNOT_EEXIST; + } + + size_t len = 0; + zone_meta_storage_t *meta = (zone_meta_storage_t *)RedisModule_StringDMA(key, &len, REDISMODULE_READ | REDISMODULE_WRITE); + if (len != sizeof(*meta)) { + RedisModule_CloseKey(key); + RedisModule_ReplyWithError(ctx, RDB_ECORRUPTED); + return KNOT_EINVAL; + } + if (meta->active == txn->id) { + meta->active = ZONE_META_INACTIVE; + } + meta->lock[txn->id] = 0; + RedisModule_CloseKey(key); + + return KNOT_EOK; +} + +static RedisModuleString *index_soa_keyname(RedisModuleCtx *ctx, index_k index) +{ + size_t key_strlen = 0; + const RedisModuleString *index_keyname = RedisModule_GetKeyNameFromModuleKey(index); + uint8_t *key_str = (uint8_t *)RedisModule_StringPtrLen(index_keyname, &key_strlen); + + wire_ctx_t index_w = wire_ctx_init(key_str, key_strlen); + wire_ctx_skip(&index_w, RDB_PREFIX_LEN + 1); + uint8_t origin_len = wire_ctx_read_u8(&index_w); + + foreach_in_zset_subset(index, SCORE_SOA, SCORE_SOA) { + RedisModuleString *soa_keyname = RedisModule_ZsetRangeCurrentElement(index, NULL); + key_str = (uint8_t *)RedisModule_StringPtrLen(soa_keyname, &key_strlen); + + wire_ctx_t soa_w = wire_ctx_init((uint8_t *)key_str, key_strlen); + wire_ctx_skip(&soa_w, RDB_PREFIX_LEN + 2 + origin_len); + uint8_t owner_len = wire_ctx_read_u8(&soa_w); + + if (origin_len == owner_len && memcmp(index_w.position, soa_w.position, origin_len) == 0) { + RedisModule_ZsetRangeStop(index); + return soa_keyname; + } + RedisModule_FreeString(ctx, soa_keyname); + } + RedisModule_ZsetRangeStop(index); + return NULL; +} + +static exception_t index_soa_serial(RedisModuleCtx *ctx, index_k index, bool incremental, uint32_t *out_serial) +{ + RedisModuleString *keyname = index_soa_keyname(ctx, index); + if (keyname == NULL) { + throw(KNOT_EINVAL, RDB_ENOSOA); + } + + RedisModuleKey *key = RedisModule_OpenKey(ctx, keyname, REDISMODULE_READ); + RedisModule_FreeString(ctx, keyname); + if (key == NULL) { + throw(KNOT_EINVAL, RDB_ECORRUPTED); + } + + void *val = RedisModule_ModuleTypeGetValue(key); + if (val == NULL) { + RedisModule_CloseKey(key); + throw(KNOT_EINVAL, RDB_ECORRUPTED); + } + + const knot_rdataset_t *rd = incremental ? &((diff_v *)val)->rem_rrs : &((rrset_v *)val)->rrs; + if (rd->count != 1) { + RedisModule_CloseKey(key); + throw(KNOT_EINVAL, RDB_ECORRUPTED); + } + + *out_serial = knot_soa_serial(rd->rdata); + RedisModule_CloseKey(key); + + return_ok; +} + +static exception_t upd_deep_delete(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const uint32_t serial, + size_t *counter) +{ + index_k upd_index_key = get_commited_upd_index(ctx, origin, txn, serial, REDISMODULE_READ | REDISMODULE_WRITE); + int upd_index_type = RedisModule_KeyType(upd_index_key); + if (upd_index_type == REDISMODULE_KEYTYPE_EMPTY) { + RedisModule_CloseKey(upd_index_key); + return_ok; + } else if (upd_index_type != REDISMODULE_KEYTYPE_ZSET) { + RedisModule_CloseKey(upd_index_key); + throw(KNOT_EINVAL, RDB_ECORRUPTED); + } + + uint32_t serial_prev = 0; + exception_t e = index_soa_serial(ctx, upd_index_key, true, &serial_prev); + if (e.ret != KNOT_EOK) { + RedisModule_CloseKey(upd_index_key); + throw(KNOT_EINVAL, e.what); + } + + *counter += 1; + + foreach_in_zset(upd_index_key) { + RedisModuleString *el = RedisModule_ZsetRangeCurrentElement(upd_index_key, NULL); + diff_k diff_key = RedisModule_OpenKey(ctx, el, REDISMODULE_READ | REDISMODULE_WRITE); + RedisModule_FreeString(ctx, el); + RedisModule_DeleteKey(diff_key); + RedisModule_CloseKey(diff_key); + } + + RedisModule_DeleteKey(upd_index_key); + RedisModule_CloseKey(upd_index_key); + + raise(upd_deep_delete(ctx, origin, txn, serial_prev, counter)); +} + +static uint8_t change_bit(uint8_t val, int idx, bool bitval) +{ + return (val & ~(1 << idx)) | (bitval << idx); +} + +static exception_t zone_purge(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + if (set_active_transaction(ctx, origin, txn) != KNOT_EOK) { + throw(KNOT_EINVAL, RDB_EZONE); + } + + RedisModuleString *soa_rrset_keyname = rrset_keyname_construct(ctx, origin, txn, origin, KNOT_RRTYPE_SOA); + rrset_k soa_rrset_key = RedisModule_OpenKey(ctx, soa_rrset_keyname, REDISMODULE_READ); + RedisModule_FreeString(ctx, soa_rrset_keyname); + if (soa_rrset_key == NULL) { + throw(KNOT_ESOAINVAL, RDB_ENOSOA); + } + rrset_v *rrset = RedisModule_ModuleTypeGetValue(soa_rrset_key); + if (rrset == NULL) { + RedisModule_CloseKey(soa_rrset_key); + throw(KNOT_ESOAINVAL, RDB_ENOSOA); + } + uint32_t serial = knot_soa_serial(rrset->rrs.rdata); + RedisModule_CloseKey(soa_rrset_key); + + delete_zone_index(ctx, origin, txn); + + size_t counter; + upd_deep_delete(ctx, origin, txn, serial, &counter); + + RedisModuleString *meta_k = upd_meta_keyname_construct(ctx, origin, txn->instance); + upd_meta_k meta_key = RedisModule_OpenKey(ctx, meta_k, REDISMODULE_READ | REDISMODULE_WRITE); + RedisModule_FreeString(ctx, meta_k); + if (RedisModule_KeyType(meta_key) == REDISMODULE_KEYTYPE_STRING) { + size_t len = 0; + upd_meta_storage_t *meta = (upd_meta_storage_t *)RedisModule_StringDMA(meta_key, &len, REDISMODULE_WRITE); + RedisModule_Assert(len == sizeof(*meta)); + meta->depth = 0; + } + RedisModule_CloseKey(meta_key); + + if (zone_meta_release(ctx, origin, txn) != KNOT_EOK) { + throw(KNOT_EDENIED, RDB_ECORRUPTED); + } + + RedisModuleKey *zones_index = get_zones_index(ctx, REDISMODULE_READ | REDISMODULE_WRITE); + if (RedisModule_KeyType(zones_index) == REDISMODULE_KEYTYPE_EMPTY) { + RedisModule_CloseKey(zones_index); + return_ok; + } + + RedisModuleString *origin_str = RedisModule_CreateString(ctx, (const char *)origin->data, origin->len); + if (origin_str == NULL) { + RedisModule_CloseKey(zones_index); + throw(KNOT_ENOMEM, RDB_EALLOC); + } + RedisModuleString *value = NULL; + if (RedisModule_HashGet(zones_index, REDISMODULE_HASH_NONE, origin_str, &value, NULL) != REDISMODULE_OK) { + RedisModule_FreeString(ctx, origin_str); + RedisModule_CloseKey(zones_index); + throw(KNOT_EMALF, RDB_ECORRUPTED); + } + if (value == NULL) { + RedisModule_FreeString(ctx, origin_str); + RedisModule_CloseKey(zones_index); + return_ok; + } + + size_t value_len = 0; + uint8_t val; + const char *val_ptr = RedisModule_StringPtrLen(value, &value_len); + if (value_len != sizeof(val)) { + RedisModule_CloseKey(zones_index); + throw(KNOT_EMALF, RDB_ECORRUPTED); + } + memcpy(&val, val_ptr, sizeof(val)); + RedisModule_FreeString(ctx, value); + val = change_bit(val, txn->instance - 1, false); + if (val == 0) { + RedisModule_HashSet(zones_index, REDISMODULE_HASH_NONE, origin_str, REDISMODULE_HASH_DELETE, NULL); + } else { + value = RedisModule_CreateString(ctx, (const char *)&val, sizeof(val)); + if (value == NULL) { + RedisModule_CloseKey(zones_index); + throw(KNOT_ENOMEM, RDB_EALLOC); + } + RedisModule_HashSet(zones_index, REDISMODULE_HASH_NONE, origin_str, value, NULL); + RedisModule_FreeString(ctx, value); + } + RedisModule_FreeString(ctx, origin_str); + RedisModule_CloseKey(zones_index); + + return_ok; +} + +static void zone_purge_v(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + exception_t e = zone_purge(ctx, origin, txn); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, RDB_EEVENT); + } else { + RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); + } +} + +typedef struct { + RedisModuleCtx *ctx; + size_t count; + int ret; + bool txt; + bool instances; +} scan_ctx; + +static void zone_list_cb(RedisModuleKey *key, RedisModuleString *zone_name, + RedisModuleString *mask, void *privdata) +{ + scan_ctx *sctx = privdata; + if (sctx->txt) { + size_t len; + const char *dname = RedisModule_StringPtrLen(zone_name, &len); + char buf[KNOT_DNAME_TXT_MAXLEN + TXN_MAX * 3]; + if (knot_dname_to_str(buf, (knot_dname_t *)dname, sizeof(buf)) == NULL) { + sctx->ret = KNOT_EMALF; + RedisModule_ReplyWithError(sctx->ctx, RDB_ECORRUPTED); + ++(sctx->count); + return; + } + char *buf_ptr = buf + knot_dname_size((knot_dname_t *)dname) - 1; + size_t mask_len = 0; + const uint8_t *mask_p = (const uint8_t *)RedisModule_StringPtrLen(mask, &mask_len); + if (mask_len != sizeof(uint8_t)) { + sctx->ret = KNOT_EMALF; + RedisModule_ReplyWithError(sctx->ctx, RDB_ECORRUPTED); + ++(sctx->count); + return; + } + if (sctx->instances) { + int count = 0; + for (int it = 0; it < TXN_MAX; ++it) { + const char separator = (count) ? ',' : ':'; + if ((*mask_p) & (1 << it)) { + *(buf_ptr++) = separator; + *(buf_ptr++) = ' '; + *(buf_ptr++) = '0' + it + 1; + *buf_ptr = '\0'; + count++; + } + } + } + RedisModule_ReplyWithCString(sctx->ctx, buf); + } else { + if (sctx->instances) { + RedisModule_ReplyWithArray(sctx->ctx, 2); + RedisModule_ReplyWithString(sctx->ctx, zone_name); + RedisModule_ReplyWithString(sctx->ctx, mask); + } else { + RedisModule_ReplyWithString(sctx->ctx, zone_name); + } + } + ++(sctx->count); +} + +static void zone_list(RedisModuleCtx *ctx, bool instances, bool txt) +{ + RedisModuleKey *zones_index = get_zones_index(ctx, REDISMODULE_READ); + if (zones_index == NULL) { + RedisModule_ReplyWithEmptyArray(ctx); + return; + } + + RedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_ARRAY_LEN); + + scan_ctx sctx = { + .ctx = ctx, + .txt = txt, + .instances = instances + }; + RedisModuleScanCursor *cursor = RedisModule_ScanCursorCreate(); + while (RedisModule_ScanKey(zones_index, cursor, zone_list_cb, &sctx) && sctx.ret == KNOT_EOK); + RedisModule_ReplySetArrayLength(ctx, sctx.count); + RedisModule_CloseKey(zones_index); + RedisModule_ScanCursorDestroy(cursor); +} + +static exception_t zone_meta_active_exchange(RedisModuleCtx *ctx, zone_meta_k key, + const arg_dname_t *origin, rdb_txn_t *txn) +{ + size_t len = 0; + zone_meta_storage_t *meta = (zone_meta_storage_t *)RedisModule_StringDMA(key, &len, REDISMODULE_WRITE); + if (len != sizeof(*meta)) { + throw(KNOT_EINVAL, RDB_ECORRUPTED); + } + + exception_t e = { .ret = KNOT_EOK }; + uint8_t active_old = meta->active; + if (active_old != ZONE_META_INACTIVE) { + rdb_txn_t txn_old = { + .instance = txn->instance, + .id = active_old + }; + e = zone_purge(ctx, origin, &txn_old); + meta->lock[active_old] = 0; + } + meta->active = txn->id; + raise(e); +} + +static void zone_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + zone_meta_k meta_key = zone_meta_get_when_open(ctx, origin, txn, REDISMODULE_READ | REDISMODULE_WRITE); + if (meta_key == NULL) { + RedisModule_ReplyWithError(ctx, RDB_ETXN); + return; + } + + uint32_t serial = 0; + index_k zone_index_key = get_zone_index(ctx, origin, txn, REDISMODULE_READ | REDISMODULE_WRITE); // NOTE for iteration need also key opened for writing + exception_t e = index_soa_serial(ctx, zone_index_key, false, &serial); + RedisModule_CloseKey(zone_index_key); + if (e.ret != KNOT_EOK) { + RedisModule_CloseKey(meta_key); + RedisModule_ReplyWithError(ctx, e.what); + return; + } + + e = zone_meta_active_exchange(ctx, meta_key, origin, txn); + RedisModule_CloseKey(meta_key); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + return; + } + + RedisModuleKey *zones_index = get_zones_index(ctx, REDISMODULE_READ | REDISMODULE_WRITE); + RedisModuleString *origin_str = RedisModule_CreateString(ctx, (const char *)origin->data, origin->len); + if (origin_str == NULL) { + RedisModule_CloseKey(zones_index); + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return; + } + RedisModuleString *value = NULL; + uint8_t val = 0; + if (RedisModule_KeyType(zones_index) != REDISMODULE_KEYTYPE_EMPTY) { + if (RedisModule_HashGet(zones_index, REDISMODULE_HASH_NONE, origin_str, &value, NULL) != REDISMODULE_OK) { + RedisModule_FreeString(ctx, origin_str); + RedisModule_CloseKey(zones_index); + RedisModule_ReplyWithError(ctx, RDB_ECORRUPTED); + return; + } + if (value != NULL) { + size_t value_len = 0; + const char *val_ptr = RedisModule_StringPtrLen(value, &value_len); + if (value_len != sizeof(val)) { + RedisModule_FreeString(ctx, origin_str); + RedisModule_CloseKey(zones_index); + RedisModule_ReplyWithError(ctx, RDB_ECORRUPTED); + return; + } + memcpy(&val, val_ptr, sizeof(val)); + RedisModule_FreeString(ctx, value); + } + } + val = change_bit(val, txn->instance - 1, true); + value = RedisModule_CreateString(ctx, (const char *)&val, sizeof(val)); + if (value == NULL) { + RedisModule_FreeString(ctx, origin_str); + RedisModule_CloseKey(zones_index); + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return; + } + RedisModule_HashSet(zones_index, REDISMODULE_HASH_NONE, origin_str, value, NULL); + RedisModule_FreeString(ctx, origin_str); + RedisModule_FreeString(ctx, value); + RedisModule_CloseKey(zones_index); + + commit_event(ctx, RDB_EVENT_ZONE, origin, txn->instance, serial); + RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); +} + +static void zone_abort(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + zone_meta_k meta_key = zone_meta_get_when_open(ctx, origin, txn, REDISMODULE_READ | REDISMODULE_WRITE); + if (meta_key == NULL) { + RedisModule_ReplyWithError(ctx, RDB_ETXN); + return; + } + + size_t len = 0; + zone_meta_storage_t *meta = (zone_meta_storage_t *)RedisModule_StringDMA(meta_key, &len, REDISMODULE_WRITE); + if (meta == NULL || len != sizeof(zone_meta_storage_t)) { + RedisModule_CloseKey(meta_key); + RedisModule_ReplyWithError(ctx, RDB_ECORRUPTED); + return; + } + meta->lock[txn->id] = 0; + RedisModule_CloseKey(meta_key); + + int ret = delete_zone_index(ctx, origin, txn); + if (ret == KNOT_EOK) { + RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); + } else if (ret == KNOT_EEXIST) { + RedisModule_ReplyWithError(ctx, RDB_EZONE); + } else { + RedisModule_ReplyWithError(ctx, RDB_ECORRUPTED); + } +} + +static void zone_exists(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + int ret = set_active_transaction(ctx, origin, txn); + if (ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, RDB_EZONE); + return; + } + + index_k zone_index_key = get_zone_index(ctx, origin, txn, REDISMODULE_READ); + if (zone_index_key == NULL) { + RedisModule_ReplyWithError(ctx, RDB_ENOSOA); + return; + } + int zone_keytype = RedisModule_KeyType(zone_index_key); + if (zone_keytype == REDISMODULE_KEYTYPE_EMPTY) { + RedisModule_CloseKey(zone_index_key); + RedisModule_ReplyWithError(ctx, RDB_ENOSOA); + return; + } else if (zone_keytype != REDISMODULE_KEYTYPE_ZSET) { + RedisModule_CloseKey(zone_index_key); + RedisModule_ReplyWithError(ctx, RDB_ECORRUPTED); + return; + } + + uint32_t serial = 0; + exception_t e = index_soa_serial(ctx, zone_index_key, false, &serial); + RedisModule_CloseKey(zone_index_key); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + return; + } + + RedisModule_ReplyWithLongLong(ctx, serial); +} + +static int dump_rrset(RedisModuleCtx *ctx, knot_rrset_t *rrset, char *buf, + size_t buf_size, long *count, dump_mode_t mode) +{ + const knot_dump_style_t style = KNOT_DUMP_STYLE_DEFAULT; + + knot_dname_txt_storage_t owner; + (void)knot_dname_to_str(owner, rrset->owner, sizeof(owner)); + + char rtype[16]; + (void)knot_rrtype_to_string(rrset->type, rtype, sizeof(rtype)); + + char ttl[16]; + if (rrset->type != KNOT_RRTYPE_RRSIG) { + if (rrset->ttl == TTL_EMPTY) { + strlcpy(ttl, TTL_EMPTY_STR, sizeof(ttl)); + } else { + (void)snprintf(ttl, sizeof(ttl), "%u", rrset->ttl); + } + } + + knot_rdata_t *rr = rrset->rrs.rdata; + for (uint16_t i = 0; i < rrset->rrs.count; i++) { + if (rrset->type == KNOT_RRTYPE_RRSIG) { + uint32_t orig_ttl = knot_rrsig_original_ttl(rr); + if (orig_ttl == TTL_EMPTY) { + strlcpy(ttl, TTL_EMPTY_STR, sizeof(ttl)); + } else { + (void)snprintf(ttl, sizeof(ttl), "%u", orig_ttl); + } + } + + int ret = knot_rrset_txt_dump_data(rrset, i, buf, buf_size, &style); + if (ret == KNOT_ESPACE) { + (*count)++; + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return -1; + } else if (ret < 0) { + (*count)++; + RedisModule_ReplyWithError(ctx, RDB_EMALF); + return -1; + } + + if (mode == DUMP_COMPACT) { + char *line = sprintf_alloc("%s %s %s %s", owner, ttl, rtype, buf); + if (line == NULL) { + (*count)++; + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return -1; + } + RedisModule_ReplyWithStringBuffer(ctx, line, strlen(line)); + free(line); + } else { + RedisModule_Assert(mode == DUMP_TXT); + RedisModule_ReplyWithArray(ctx, 4); + RedisModule_ReplyWithStringBuffer(ctx, owner, strlen(owner)); + RedisModule_ReplyWithStringBuffer(ctx, ttl, strlen(ttl)); + RedisModule_ReplyWithStringBuffer(ctx, rtype, strlen(rtype)); + RedisModule_ReplyWithStringBuffer(ctx, buf, strlen(buf)); + } + (*count)++; + + rr = knot_rdataset_next(rr); + } + + return 0; +} + +static bool meta_exists(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + RedisModule_Assert(txn->instance != 0); + + RedisModuleString *txn_k = zone_meta_keyname_construct(ctx, origin, txn->instance); + zone_meta_k key = RedisModule_OpenKey(ctx, txn_k, REDISMODULE_READ); + RedisModule_FreeString(ctx, txn_k); + if (key == NULL) { + return false; + } else if (RedisModule_KeyType(key) != REDISMODULE_KEYTYPE_STRING) { + RedisModule_CloseKey(key); + return false; + } + size_t len = 0; + const zone_meta_storage_t *meta = (const zone_meta_storage_t *)RedisModule_StringDMA(key, &len, REDISMODULE_READ); + bool out = meta->lock[txn->id] != 0; + RedisModule_CloseKey(key); + return out; +} + +static void zone_load(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn, + const arg_dname_t *opt_owner, uint16_t *opt_rtype, dump_mode_t mode) +{ + if (txn->id == TXN_ID_ACTIVE) { + int ret = set_active_transaction(ctx, origin, txn); + if (ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, RDB_EZONE); + return; + } + } else if (meta_exists(ctx, origin, txn) == false) { + RedisModule_ReplyWithError(ctx, RDB_ECORRUPTED); + return; + } + + index_k index_key = get_zone_index(ctx, origin, txn, REDISMODULE_READ); + if (index_key == NULL) { + RedisModule_ReplyWithEmptyArray(ctx); + return; + } + int zone_keytype = RedisModule_KeyType(index_key); + if (zone_keytype != REDISMODULE_KEYTYPE_ZSET) { + RedisModule_CloseKey(index_key); + RedisModule_ReplyWithError(ctx, RDB_EMALF); + return; + } + + char buf[128 * 1024]; + + long count = 0; + RedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_ARRAY_LEN); + foreach_in_zset (index_key) { + RedisModuleString *el = RedisModule_ZsetRangeCurrentElement(index_key, NULL); + rrset_k rrset_key = RedisModule_OpenKey(ctx, el, REDISMODULE_READ); + if (rrset_key == NULL) { + RedisModule_FreeString(ctx, el); + count++; + RedisModule_ReplyWithError(ctx, RDB_ECORRUPTED); + break; + } + + size_t key_strlen = 0; + const char *key_str = RedisModule_StringPtrLen(el, &key_strlen); + wire_ctx_t w = wire_ctx_init((uint8_t *)key_str, key_strlen); + wire_ctx_skip(&w, RDB_PREFIX_LEN + 2 + origin->len); + uint8_t owner_len = wire_ctx_read_u8(&w); + knot_dname_t *owner = w.position; + wire_ctx_skip(&w, owner_len); + uint16_t rtype = wire_ctx_read_u16(&w); + RedisModule_Assert(w.error == KNOT_EOK); + RedisModule_FreeString(ctx, el); + + if (opt_owner != NULL && + (opt_owner->len != owner_len || memcmp(owner, opt_owner->data, owner_len) != 0)) { + RedisModule_CloseKey(rrset_key); + continue; + } + if (opt_rtype != NULL && rtype != *opt_rtype) { + RedisModule_CloseKey(rrset_key); + continue; + } + + rrset_v *rrset = RedisModule_ModuleTypeGetValue(rrset_key); + + if (mode == DUMP_BIN) { + RedisModule_ReplyWithArray(ctx, 5); + RedisModule_ReplyWithStringBuffer(ctx, (char *)owner, owner_len); + RedisModule_ReplyWithLongLong(ctx, rtype); + RedisModule_ReplyWithLongLong(ctx, rrset->ttl); + RedisModule_ReplyWithLongLong(ctx, rrset->rrs.count); + RedisModule_ReplyWithStringBuffer(ctx, (const char *)rrset->rrs.rdata, rrset->rrs.size); + count++; + } else { + knot_rrset_t rrset_out; + knot_rrset_init(&rrset_out, owner, rtype, KNOT_CLASS_IN, rrset->ttl); + rrset_out.rrs = rrset->rrs; + if (dump_rrset(ctx, &rrset_out, buf, sizeof(buf), &count, mode) != 0) { + RedisModule_CloseKey(rrset_key); + break; + } + } + RedisModule_CloseKey(rrset_key); + } + RedisModule_ZsetRangeStop(index_key); + RedisModule_CloseKey(index_key); + RedisModule_ReplySetArrayLength(ctx, count); +} + +static void upd_meta_unlock(RedisModuleCtx *ctx, upd_meta_k key, uint8_t id) +{ + size_t len = 0; + upd_meta_storage_t *meta = (upd_meta_storage_t *)RedisModule_StringDMA(key, &len, REDISMODULE_WRITE); + RedisModule_Assert(len == sizeof(*meta)); + meta->lock[id] = 0; +} + +static exception_t upd_abort(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + upd_meta_k meta_key = upd_meta_get_when_open(ctx, origin, txn, REDISMODULE_READ | REDISMODULE_WRITE); + if (meta_key == NULL) { + throw(KNOT_ENOENT, RDB_ETXN); + } + + if (delete_upd_index(ctx, origin, txn) != KNOT_EOK) { + RedisModule_CloseKey(meta_key); + throw(KNOT_EINVAL, RDB_ECORRUPTED); + } + + upd_meta_unlock(ctx, meta_key, txn->id); + + RedisModule_CloseKey(meta_key); + return_ok; +} + +static void upd_abort_v(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +{ + exception_t e = upd_abort(ctx, origin, txn); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + } else { + RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); + } +} + +static int upd_check(const diff_v *diff, const rrset_v *rrset, uint16_t rtype, + int64_t *serial_upd, const char **err) +{ + if (diff->rem_rrs.count > 0) { + if (rrset == NULL) { + *err = "failed to remove non-existent record"; + return KNOT_ESEMCHECK; + } else if (!knot_rdataset_subset(&diff->rem_rrs, &rrset->rrs)) { + *err = "failed to remove non-existent record"; + return KNOT_ESEMCHECK; + } else if (diff->rem_ttl != TTL_EMPTY && rrset->ttl != diff->rem_ttl) { + *err = "failed to remove record with non-matching TTL"; + return KNOT_ESEMCHECK; + } + } + + if (rrset != NULL) { + uint16_t rr_count = diff->add_rrs.count; + knot_rdata_t *rr = diff->add_rrs.rdata; + for (size_t i = 0; i < rr_count; ++i) { + if (find_rr_pos(&rrset->rrs, rr) != KNOT_ENOENT) { + *err = "failed to add existing record"; + return KNOT_ESEMCHECK; + } + rr = knot_rdataset_next(rr); + } + } + + if (rtype == KNOT_RRTYPE_SOA) { + RedisModule_Assert(rrset != NULL); + knot_rdataset_t soa_tmp; + if (knot_rdataset_copy(&soa_tmp, &rrset->rrs, &mm) != KNOT_EOK || + knot_rdataset_subtract(&soa_tmp, &diff->rem_rrs, &mm) != KNOT_EOK || + knot_rdataset_merge(&soa_tmp, &diff->add_rrs, &mm) != KNOT_EOK) { + *err = "failed to update SOA"; + return KNOT_ENOMEM; + } + + if (soa_tmp.count != 1) { + knot_rdataset_clear(&soa_tmp, &mm); + *err = "exactly one SOA expected"; + return KNOT_ESEMCHECK; + } + + uint32_t serial_new = knot_soa_serial(soa_tmp.rdata); + uint32_t serial_diff = serial_new - knot_soa_serial(rrset->rrs.rdata); + if (serial_diff == 0 || serial_diff >= 0x80000000U) { + knot_rdataset_clear(&soa_tmp, &mm); + *err = "new SOA serial not increased"; + return KNOT_ESEMCHECK; + } + *serial_upd = serial_new; + + knot_rdataset_clear(&soa_tmp, &mm); + } + + return KNOT_EOK; +} + +static exception_t upd_trim_history(RedisModuleCtx *ctx, const arg_dname_t *origin, + const rdb_txn_t *txn, const uint16_t depth) +{ + rdb_txn_t zone_txn = { + .instance = txn->instance, + .id = TXN_ID_ACTIVE + }; + int ret = set_active_transaction(ctx, origin, &zone_txn); + if (ret != KNOT_EOK) { + throw(KNOT_EEXIST, RDB_EZONE); + } + + RedisModuleString *soa_rrset_keyname = rrset_keyname_construct(ctx, origin, &zone_txn, origin, KNOT_RRTYPE_SOA); + rrset_k soa_rrset_key = RedisModule_OpenKey(ctx, soa_rrset_keyname, REDISMODULE_READ); + if (soa_rrset_key == NULL) { + throw(KNOT_EEXIST, RDB_ENOSOA); + } + RedisModule_FreeString(ctx, soa_rrset_keyname); + + rrset_v *rrset = RedisModule_ModuleTypeGetValue(soa_rrset_key); + if (rrset == NULL) { + RedisModule_CloseKey(soa_rrset_key); + throw(KNOT_EEXIST, RDB_ENOSOA); + } + + uint32_t serial_it = knot_soa_serial(rrset->rrs.rdata); + uint32_t serial_begin = serial_it; + RedisModule_CloseKey(soa_rrset_key); + + uint16_t counter = 0; + for (counter = 0; counter < depth; ++counter) { + if (counter != 0 && serial_begin == serial_it) { + break; + } + index_k upd_index_key = get_commited_upd_index(ctx, origin, txn, serial_it, REDISMODULE_READ | REDISMODULE_WRITE); + int upd_index_type = RedisModule_KeyType(upd_index_key); + if (upd_index_type == REDISMODULE_KEYTYPE_EMPTY) { + RedisModule_CloseKey(upd_index_key); + return_ok; + } else if (upd_index_type != REDISMODULE_KEYTYPE_ZSET) { + RedisModule_CloseKey(upd_index_key); + throw(KNOT_EINVAL, RDB_ECORRUPTED); + } + + exception_t e = index_soa_serial(ctx, upd_index_key, true, &serial_it); + RedisModule_CloseKey(upd_index_key); + if (e.ret != KNOT_EOK) { + throw(KNOT_EINVAL, e.what); + } + } + + if (counter < depth) { + return_ok; + } + + size_t c; + exception_t e = upd_deep_delete(ctx, origin, txn, serial_it, &c); + if (e.ret != KNOT_EOK) { + raise(e); + } + + return_ok; +} + +static void upd_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *upd_txn) +{ + upd_meta_k meta_key = upd_meta_get_when_open(ctx, origin, upd_txn, REDISMODULE_READ | REDISMODULE_WRITE); + if (meta_key == NULL) { + RedisModule_ReplyWithError(ctx, RDB_ETXN); + return; + } + + int ret = get_id(ctx, origin, upd_txn); + if (ret < 0 || ret > UINT16_MAX) { + RedisModule_CloseKey(meta_key); + RedisModule_ReplyWithError(ctx, RDB_ETXN); + return; + } + uint16_t id = ret; + + rdb_txn_t zone_txn = { + .instance = upd_txn->instance + }; + ret = set_active_transaction(ctx, origin, &zone_txn); + if (ret != KNOT_EOK) { + RedisModule_CloseKey(meta_key); + RedisModule_ReplyWithError(ctx, RDB_EZONE); + return; + } + + // Check the update before its application. + int64_t serial_upd = -1; + index_k upd_key = get_upd_index(ctx, origin, upd_txn, id, REDISMODULE_READ | REDISMODULE_WRITE); + foreach_in_zset(upd_key) { + RedisModuleString *el = RedisModule_ZsetRangeCurrentElement(upd_key, NULL); + size_t el_len = 0; + const char *el_str = RedisModule_StringPtrLen(el, &el_len); + RedisModule_Assert(el_str != NULL && el_len > 0); + + wire_ctx_t w = wire_ctx_init((uint8_t *)el_str, el_len); + wire_ctx_skip(&w, RDB_PREFIX_LEN + 2 + origin->len); + uint8_t owner_len = wire_ctx_read_u8(&w); + arg_dname_t owner = { + .data = w.position, + .len = owner_len + }; + wire_ctx_skip(&w, owner.len); + uint16_t rtype = wire_ctx_read_u16(&w); + + diff_k diff_key = RedisModule_OpenKey(ctx, el, REDISMODULE_READ); + RedisModule_FreeString(ctx, el); + const diff_v *diff = RedisModule_ModuleTypeGetValue(diff_key); + RedisModule_Assert(diff != NULL); + + RedisModuleString *rrset_keystr = rrset_keyname_construct(ctx, origin, &zone_txn, &owner, rtype); + rrset_k rrset_key = RedisModule_OpenKey(ctx, rrset_keystr, REDISMODULE_READ); + RedisModule_FreeString(ctx, rrset_keystr); + rrset_v *rrset = RedisModule_ModuleTypeGetValue(rrset_key); + + const char *err = NULL; + ret = upd_check(diff, rrset, rtype, &serial_upd, &err); + RedisModule_CloseKey(rrset_key); + RedisModule_CloseKey(diff_key); + if (ret != KNOT_EOK) { + char msg[512], owner_str[256], rtype_str[16]; + (void)knot_dname_to_str(owner_str, owner.data, sizeof(owner_str)); + (void)knot_rrtype_to_string(rtype, rtype_str, sizeof(rtype_str)); + (void)snprintf(msg, sizeof(msg), RDB_E("%s, owner %s, type %s"), + err, owner_str, rtype_str); + RedisModule_CloseKey(upd_key); + RedisModule_CloseKey(meta_key); + RedisModule_ReplyWithError(ctx, msg); + return; + } + } + + // Check if SOA serial was explicitly incremented; compute new serial otherwise. + rrset_k soa_key = NULL; + rrset_v *soa_rrset = NULL; + uint32_t serial_new; + if (serial_upd == -1) { + index_k zone_key = get_zone_index(ctx, origin, &zone_txn, REDISMODULE_READ); + RedisModuleString *soa_keyname = index_soa_keyname(ctx, zone_key); + RedisModule_CloseKey(zone_key); + soa_key = RedisModule_OpenKey(ctx, soa_keyname, REDISMODULE_WRITE); + RedisModule_FreeString(ctx, soa_keyname); + RedisModule_Assert(RedisModule_ModuleTypeGetType(soa_key) == rdb_rrset_t); + soa_rrset = RedisModule_ModuleTypeGetValue(soa_key); + RedisModule_Assert(soa_rrset != NULL); + serial_new = knot_soa_serial(soa_rrset->rrs.rdata) + 1; + } else { + serial_new = serial_upd; + } + + // Delete collision updates + size_t len = 0; + upd_meta_storage_t *meta = (upd_meta_storage_t *)RedisModule_StringDMA(meta_key, &len, REDISMODULE_WRITE); + RedisModule_Assert(len == sizeof(*meta)); + + size_t counter = 0; + exception_t e = upd_deep_delete(ctx, origin, upd_txn, serial_new, &counter); + if (e.ret != KNOT_EOK) { + RedisModule_CloseKey(upd_key); + RedisModule_CloseKey(meta_key); + RedisModule_ReplyWithError(ctx, RDB_EHISTORY); + return; + } + meta->depth -= counter; + + // Commit the update. + index_k new_upd_key = get_commited_upd_index(ctx, origin, upd_txn, serial_new, REDISMODULE_READ | REDISMODULE_WRITE); + foreach_in_zset(upd_key) { + double score = 0.0; + RedisModuleString *el = RedisModule_ZsetRangeCurrentElement(upd_key, &score); + size_t el_len = 0; + const char *el_str = RedisModule_StringPtrLen(el, &el_len); + RedisModule_Assert(el_str != NULL && el_len > 0); + + RedisModule_Assert(RedisModule_ZsetAdd(new_upd_key, score, el, NULL) == REDISMODULE_OK); + + wire_ctx_t w = wire_ctx_init((uint8_t *)el_str, el_len); + wire_ctx_skip(&w, RDB_PREFIX_LEN + 2 + origin->len); + uint8_t owner_len = wire_ctx_read_u8(&w); + arg_dname_t owner = { + .data = w.position, + .len = owner_len + }; + wire_ctx_skip(&w, owner.len); + uint16_t rtype = wire_ctx_read_u16(&w); + + diff_k diff_key = RedisModule_OpenKey(ctx, el, REDISMODULE_READ | REDISMODULE_WRITE); + RedisModule_FreeString(ctx, el); + diff_v *diff = RedisModule_ModuleTypeGetValue(diff_key); + RedisModule_Assert(diff != NULL); + + uint16_t rr_count = diff->rem_rrs.count; + knot_rdata_t *rr = diff->rem_rrs.rdata; + for (size_t i = 0; i < rr_count; ++i) { + exception_t ex = rdata_remove(ctx, origin, &zone_txn, &owner, &diff->rem_ttl, rtype, rr); + if (ex.ret != KNOT_EOK) { + RedisModule_Log(ctx, REDISMODULE_LOGLEVEL_WARNING, RDB_ESTORE); + } + rr = knot_rdataset_next(rr); + } + + rr_count = diff->add_rrs.count; + rr = diff->add_rrs.rdata; + for (size_t i = 0; i < rr_count; ++i) { + exception_t ex = rdata_add(ctx, origin, &zone_txn, &owner, diff->add_ttl, rtype, rr); + if (ex.ret != KNOT_EOK) { + RedisModule_Log(ctx, REDISMODULE_LOGLEVEL_WARNING, RDB_ESTORE); + } + rr = knot_rdataset_next(rr); + } + + RedisModule_CloseKey(diff_key); + } + ++meta->depth; + RedisModule_DeleteKey(upd_key); + RedisModule_CloseKey(upd_key); + + // Increment SOA serial and add a corresponding diff. + if (serial_upd == -1) { + RedisModuleString *soa_diff_keyname = diff_keyname_construct(ctx, origin, upd_txn, origin, KNOT_RRTYPE_SOA, id); + diff_k soa_diff_key = RedisModule_OpenKey(ctx, soa_diff_keyname, REDISMODULE_WRITE); + + diff_v *diff = RedisModule_Calloc(1, sizeof(diff_v)); + RedisModule_Assert(diff != NULL); + diff->add_ttl = soa_rrset->ttl; + diff->rem_ttl = soa_rrset->ttl; + RedisModule_Assert(soa_rrset != NULL); + (void)knot_rdataset_copy(&diff->rem_rrs, &soa_rrset->rrs, &mm); + knot_soa_serial_set(soa_rrset->rrs.rdata, serial_new); + (void)knot_rdataset_copy(&diff->add_rrs, &soa_rrset->rrs, &mm); + RedisModule_Assert(RedisModule_ModuleTypeSetValue(soa_diff_key, rdb_diff_t, diff) == REDISMODULE_OK); + RedisModule_Assert(RedisModule_ZsetAdd(new_upd_key, evaluate_score(KNOT_RRTYPE_SOA), soa_diff_keyname, NULL) == REDISMODULE_OK); + + RedisModule_FreeString(ctx, soa_diff_keyname); + RedisModule_CloseKey(soa_diff_key); + RedisModule_CloseKey(soa_key); + } + RedisModule_CloseKey(new_upd_key); + + e = upd_trim_history(ctx, origin, upd_txn, rdb_upd_history_len); + if (e.ret == KNOT_EOK) { + meta->depth = MIN(meta->depth, rdb_upd_history_len); + } + + upd_meta_unlock(ctx, meta_key, upd_txn->id); + RedisModule_CloseKey(meta_key); + + commit_event(ctx, RDB_EVENT_UPD, origin, upd_txn->instance, serial_new); + if (e.ret != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, e.what); + } else { + RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); + } +} + +static int upd_dump(RedisModuleCtx *ctx, index_k index_key, const arg_dname_t *origin, + const arg_dname_t *opt_owner, const uint16_t *opt_rtype, dump_mode_t mode) +{ + RedisModule_Assert(RedisModule_KeyType(index_key) == REDISMODULE_KEYTYPE_ZSET); + + char buf[128 * 1024]; + + long count = 0; + RedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_ARRAY_LEN); + foreach_in_zset (index_key) { + double score = 0.0; + RedisModuleString *el = RedisModule_ZsetRangeCurrentElement(index_key, &score); + diff_k diff_key = RedisModule_OpenKey(ctx, el, REDISMODULE_READ); + if (diff_key == NULL) { + RedisModule_FreeString(ctx, el); + continue; + } + + size_t key_strlen = 0; + const char *key_str = RedisModule_StringPtrLen(el, &key_strlen); + wire_ctx_t w = wire_ctx_init((uint8_t *)key_str, key_strlen); + wire_ctx_skip(&w, RDB_PREFIX_LEN + 2 + origin->len); + uint8_t owner_len = wire_ctx_read_u8(&w); + knot_dname_t *owner = w.position; + wire_ctx_skip(&w, owner_len); + uint16_t rtype = wire_ctx_read_u16(&w); + RedisModule_Assert(w.error == KNOT_EOK); + RedisModule_FreeString(ctx, el); + + if (opt_owner != NULL && + (opt_owner->len != owner_len || memcmp(owner, opt_owner->data, owner_len) != 0)) { + RedisModule_CloseKey(diff_key); + continue; + } + + if (opt_rtype != NULL && rtype != *opt_rtype) { + RedisModule_CloseKey(diff_key); + continue; + } + + diff_v *diff = RedisModule_ModuleTypeGetValue(diff_key); + if (mode == DUMP_BIN) { + RedisModule_ReplyWithArray(ctx, 8); + RedisModule_ReplyWithStringBuffer(ctx, (char *)owner, owner_len); + RedisModule_ReplyWithLongLong(ctx, rtype); + RedisModule_ReplyWithLongLong(ctx, diff->rem_ttl); + RedisModule_ReplyWithLongLong(ctx, diff->add_ttl); + RedisModule_ReplyWithLongLong(ctx, diff->rem_rrs.count); + RedisModule_ReplyWithStringBuffer(ctx, (const char *)diff->rem_rrs.rdata, diff->rem_rrs.size); + RedisModule_ReplyWithLongLong(ctx, diff->add_rrs.count); + RedisModule_ReplyWithStringBuffer(ctx, (const char *)diff->add_rrs.rdata, diff->add_rrs.size); + } else { + RedisModule_ReplyWithArray(ctx, 2); + RedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_ARRAY_LEN); + long count_sub = 0; + knot_rrset_t rrset_out; + knot_rrset_init(&rrset_out, owner, rtype, KNOT_CLASS_IN, diff->rem_ttl); + rrset_out.rrs = diff->rem_rrs; + if (dump_rrset(ctx, &rrset_out, buf, sizeof(buf), &count_sub, mode) != 0) { + RedisModule_CloseKey(diff_key); + break; + } + RedisModule_ReplySetArrayLength(ctx, count_sub); + + RedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_ARRAY_LEN); + count_sub = 0; + knot_rrset_init(&rrset_out, owner, rtype, KNOT_CLASS_IN, diff->add_ttl); + rrset_out.rrs = diff->add_rrs; + if (dump_rrset(ctx, &rrset_out, buf, sizeof(buf), &count_sub, mode) != 0) { + RedisModule_CloseKey(diff_key); + break; + } + RedisModule_ReplySetArrayLength(ctx, count_sub); + } + count++; + RedisModule_CloseKey(diff_key); + } + RedisModule_ZsetRangeStop(index_key); + RedisModule_ReplySetArrayLength(ctx, count); + + return REDISMODULE_OK; +} + +static void upd_diff(RedisModuleCtx *ctx, const arg_dname_t *origin, const rdb_txn_t *txn, + const arg_dname_t *opt_owner, uint16_t *opt_rtype, dump_mode_t mode) +{ + int ret = get_id(ctx, origin, txn); + if (ret < 0 || ret > UINT16_MAX) { + RedisModule_ReplyWithError(ctx, RDB_ETXN); + return; + } + uint16_t id = ret; + index_k index_key = get_upd_index(ctx, origin, txn, id, REDISMODULE_READ | REDISMODULE_WRITE); + if (index_key == NULL) { + RedisModule_ReplyWithError(ctx, RDB_ECORRUPTED); + return; + } + + upd_dump(ctx, index_key, origin, opt_owner, opt_rtype, mode); + + RedisModule_CloseKey(index_key); +} + +/*! + * \notice The changesets are searched for in reverse order: first the surrent SOA is read from the zone and + * then every changeset is found by its own "serial to". From inside of the changeset, the + * "serial from" is gained, digging deeper into the history down to the given limit. Thanks to + * a trick with recursion, the changesets are in the end returned in chronological order. The + * serial-related params are as follows: + * + * \param serial_begin The current SOA serial of the zone, where the search starts. It is the newest (highest) serial. + * \param serial_end The serial where the search ends, specified by the user (caller of knot.upd.load). It is the oldest (lowest) serial. + * \param serial The "serial to" of the changeset that is being loaded. + */ +static exception_t upd_load_serial(RedisModuleCtx *ctx, size_t *counter, const arg_dname_t *origin, + const rdb_txn_t *txn, const uint32_t serial_begin, const uint32_t serial_end, + const uint32_t serial, const arg_dname_t *opt_owner, const uint16_t *opt_rtype, + const dump_mode_t mode) +{ + index_k upd_index_key = get_commited_upd_index(ctx, origin, txn, serial, REDISMODULE_READ); + if (upd_index_key == NULL) { + throw(KNOT_ENOENT, NULL); + } + + uint32_t serial_next = 0; + exception_t e = index_soa_serial(ctx, upd_index_key, true, &serial_next); + if (e.ret != KNOT_EOK) { + RedisModule_CloseKey(upd_index_key); + raise(e); + } + + if (serial_next != serial_end && serial_next != serial_begin) { + e = upd_load_serial(ctx, counter, origin, txn, serial_begin, + serial_end, serial_next, opt_owner, + opt_rtype, mode); + if (e.ret != KNOT_EOK) { + RedisModule_CloseKey(upd_index_key); + raise(e); + } + } + + upd_dump(ctx, upd_index_key, origin, opt_owner, opt_rtype, mode); + ++(*counter); + + RedisModule_CloseKey(upd_index_key); + + return_ok; +} + +static void upd_load(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn, + const uint32_t serial, const arg_dname_t *opt_owner, + const uint16_t *opt_rtype, dump_mode_t mode) +{ + if (set_active_transaction(ctx, origin, txn) != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, RDB_EZONE); + return; + } + + RedisModuleString *soa_rrset_keyname = rrset_keyname_construct(ctx, origin, txn, origin, KNOT_RRTYPE_SOA); + rrset_k soa_rrset_key = RedisModule_OpenKey(ctx, soa_rrset_keyname, REDISMODULE_READ); + RedisModule_FreeString(ctx, soa_rrset_keyname); + rrset_v *rrset = RedisModule_ModuleTypeGetValue(soa_rrset_key); + if (rrset == NULL) { + RedisModule_CloseKey(soa_rrset_key); + RedisModule_ReplyWithError(ctx, RDB_ENOSOA); + return; + } + uint32_t serial_it = knot_soa_serial(rrset->rrs.rdata); + RedisModule_CloseKey(soa_rrset_key); + + size_t counter = 0; + RedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_ARRAY_LEN); + exception_t e = upd_load_serial(ctx, &counter, origin, txn, serial_it, serial, + serial_it, opt_owner, opt_rtype, mode); + if (e.ret != KNOT_EOK && e.what != NULL) { + RedisModule_ReplyWithError(ctx, e.what); + counter++; + } + RedisModule_ReplySetArrayLength(ctx, counter); + + return; +} diff --git a/src/redis/knot.c b/src/redis/knot.c new file mode 100644 index 0000000000..5074b9ab22 --- /dev/null +++ b/src/redis/knot.c @@ -0,0 +1,886 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: LGPL-2.1-or-later + * For more information, see + */ + +#include +#include +#include +#include +#include + +#define REDISMODULE_MAIN // Fixes loading error undefined symbol: RedisModule_ReplySetArrayLength. +#include "contrib/redis/redismodule.h" +#include "redis/knot.h" +#include "redis/error.h" +#include "redis/libs.h" +#include "redis/arg.h" +#include "redis/type_diff.h" +#include "redis/type_rrset.h" +#include "redis/internal.h" + +#define register_command_txt(name, cb, rights) \ + RedisModule_CreateCommand(ctx, name, cb, rights, 1, 1, 1) == REDISMODULE_ERR || \ + (cmd = RedisModule_GetCommand(ctx, name)) == NULL || \ + RedisModule_SetCommandInfo(cmd, &cb##_info) == REDISMODULE_ERR + +#define register_command_bin(name, cb, rights) \ + RedisModule_CreateCommand(ctx, name, cb, rights, 1, 1, 1) == REDISMODULE_ERR + +static RedisModuleCommandArg instance_info_args[] = { + {"zone", REDISMODULE_ARG_TYPE_STRING, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + {"instance", REDISMODULE_ARG_TYPE_INTEGER, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + { 0 } +}; + +static RedisModuleCommandArg transaction_info_args[] = { + {"zone", REDISMODULE_ARG_TYPE_STRING, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + {"transaction", REDISMODULE_ARG_TYPE_INTEGER, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + { 0 } +}; + +static RedisModuleCommandArg store_txt_info_args[] = { + {"zone", REDISMODULE_ARG_TYPE_STRING, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + {"transaction", REDISMODULE_ARG_TYPE_INTEGER, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + {"data", REDISMODULE_ARG_TYPE_STRING, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + { 0 } +}; + +static RedisModuleCommandArg upd_load_txt_info_args[] = { + {"opt", REDISMODULE_ARG_TYPE_PURE_TOKEN, -1, "--compact", NULL, NULL, REDISMODULE_CMD_ARG_OPTIONAL}, + {"zone", REDISMODULE_ARG_TYPE_STRING, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + {"instance", REDISMODULE_ARG_TYPE_INTEGER, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + {"serial", REDISMODULE_ARG_TYPE_INTEGER, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + {"owner", REDISMODULE_ARG_TYPE_STRING, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_OPTIONAL}, + {"rtype", REDISMODULE_ARG_TYPE_STRING, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_OPTIONAL}, + { 0 } +}; + +static RedisModuleCommandArg zone_load_txt_info_args[] = { + {"opt", REDISMODULE_ARG_TYPE_PURE_TOKEN, -1, "--compact", NULL, NULL, REDISMODULE_CMD_ARG_OPTIONAL}, + {"zone", REDISMODULE_ARG_TYPE_STRING, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + {"instance", REDISMODULE_ARG_TYPE_INTEGER, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_NONE}, + {"owner", REDISMODULE_ARG_TYPE_STRING, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_OPTIONAL}, + {"rtype", REDISMODULE_ARG_TYPE_STRING, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_OPTIONAL}, + { 0 } +}; + +static RedisModuleCommandArg zone_list_txt_info_args[] = { + {"opt", REDISMODULE_ARG_TYPE_PURE_TOKEN, -1, "--instances", NULL, NULL, REDISMODULE_CMD_ARG_OPTIONAL}, + { 0 } +}; + +static const RedisModuleCommandInfo zone_begin_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Create a zone full transaction", + .complexity = "O(1)", + .since = "7.0.0", + .arity = 3, + .args = instance_info_args, +}; + +static const RedisModuleCommandInfo zone_store_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Store records in a zone full transaction", + .complexity = "O(m), where m is the number of stored records", + .since = "7.0.0", + .arity = 4, + .args = store_txt_info_args, +}; + +static const RedisModuleCommandInfo zone_commit_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Commit a zone full transaction", + .complexity = "O(1)", + .since = "7.0.0", + .arity = 3, + .args = transaction_info_args, +}; + +static const RedisModuleCommandInfo zone_abort_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Abort a zone full transaction", + .complexity = "O(n), where n is the number of records in the transaction", + .since = "7.0.0", + .arity = 3, + .args = transaction_info_args, +}; + +static const RedisModuleCommandInfo zone_load_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Load a zone instance or full transaction", + .complexity = "O(n), where n is the number of records in the zone", + .since = "7.0.0", + .arity = -3, + .args = zone_load_txt_info_args, +}; + +static const RedisModuleCommandInfo zone_purge_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Purge a zone instance", + .complexity = "O(n), where n is the number of records in the zone and its updates", + .since = "7.0.0", + .arity = 3, + .args = instance_info_args, +}; + +static const RedisModuleCommandInfo zone_list_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "List zones stored in the database", + .complexity = "O(z), where z is the number of zones", + .since = "7.0.0", + .arity = -1, + .args = zone_list_txt_info_args, +}; + +static const RedisModuleCommandInfo upd_begin_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Create an zone update transaction", + .complexity = "O(1)", + .since = "7.0.0", + .arity = 3, + .args = instance_info_args, +}; + +static const RedisModuleCommandInfo upd_add_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Add records to a zone update transaction", + .complexity = "O(m), where m is the number of added records", + .since = "7.0.0", + .arity = 4, + .args = store_txt_info_args, +}; + +static const RedisModuleCommandInfo upd_remove_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Remove records from a zone update transaction", + .complexity = "O(m), where m is the number of removed records", + .since = "7.0.0", + .arity = 4, + .args = store_txt_info_args, +}; + +static const RedisModuleCommandInfo upd_commit_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Commit a zone update transaction to a zone", + .complexity = "O(u), where u is the number of records in the update", + .since = "7.0.0", + .arity = 3, + .args = transaction_info_args, +}; + +static const RedisModuleCommandInfo upd_abort_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Abort a zone update transaction", + .complexity = "O(u), where u is the number of records in the update", + .since = "7.0.0", + .arity = 3, + .args = transaction_info_args, +}; + +static const RedisModuleCommandInfo upd_diff_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Load the contents of a zone update transaction", + .complexity = "O(u), where u is the number of records in the update", + .since = "7.0.0", + .arity = -3, + .args = zone_load_txt_info_args, +}; + +static const RedisModuleCommandInfo upd_load_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "Load zone updates since a specified serial", + .complexity = "O(u), where u is the number of records in the retrieved updates", + .since = "7.0.0", + .arity = -4, + .args = upd_load_txt_info_args, +}; + +static int zone_begin_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_INST_TXT(argv[2], txn); + + zone_begin_txt_format(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int zone_begin_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 3) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_INST(argv[2], txn); + + zone_begin_bin_format(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int zone_store_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_TXN_TXT(argv[2], txn); + + void *zone_data; + size_t data_len; + ARG_DATA(argv[3], data_len, zone_data, "zone data"); + + zone_store_txt_format(ctx, &origin, &txn, zone_data, data_len); + return REDISMODULE_OK; +} + +static int zone_store_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 8) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_TXN(argv[2], txn); + + arg_dname_t owner; + ARG_DNAME(argv[3], owner, "record owner"); + + uint16_t rtype; + ARG_NUM(argv[4], rtype, "record type"); + + uint32_t ttl; + ARG_NUM(argv[5], ttl, "TTL"); + + uint16_t rcount; + ARG_NUM(argv[6], rcount, "record count"); + + uint8_t *rdataset; + size_t rdataset_len; + ARG_DATA(argv[7], rdataset_len, rdataset, "rdataset"); + + zone_store_bin_format(ctx, &origin, &txn, &owner, rtype, ttl, rcount, rdataset, rdataset_len); + return REDISMODULE_OK; +} + +static int zone_commit_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_TXN_TXT(argv[2], txn); + + zone_commit(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int zone_commit_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 3) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_TXN(argv[2], txn); + + zone_commit(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int zone_abort_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_TXN_TXT(argv[2], txn); + + zone_abort(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int zone_abort_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 3) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_TXN(argv[2], txn); + + zone_abort(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int zone_exists_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 3) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_INST(argv[2], txn); + + zone_exists(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int zone_load_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + dump_mode_t mode; + ARG_OPT_TXT(mode, "compact", DUMP_TXT, DUMP_COMPACT); + + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_INST_TXN_TXT(argv[2], txn); + + arg_dname_t owner; + if (argc > 3) { + ARG_DNAME_TXT(argv[3], owner, &origin, "record owner"); + } + + uint16_t rtype; + if (argc > 4) { + ARG_RTYPE_TXT(argv[4], rtype); + } + + if (argc > 5) { + return RedisModule_WrongArity(ctx); + } + + zone_load(ctx, &origin, &txn, (argc >= 4) ? &owner : NULL, + (argc >= 5) ? &rtype : NULL, mode); + return REDISMODULE_OK; +} + +static int zone_load_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc < 3) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_INST_TXN(argv[2], txn); + + arg_dname_t owner; + if (argc > 3) { + ARG_DNAME(argv[3], owner, "record owner"); + } + + uint16_t rtype; + if (argc > 4) { + ARG_NUM(argv[4], rtype, "record type"); + } + + if (argc > 5) { + return RedisModule_WrongArity(ctx); + } + + zone_load(ctx, &origin, &txn, (argc >= 4) ? &owner : NULL, + (argc >= 5) ? &rtype : NULL, DUMP_BIN); + return REDISMODULE_OK; +} + +static int zone_purge_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_INST_TXT(argv[2], txn); + + zone_purge_v(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int zone_purge_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 3) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_INST(argv[2], txn); + + zone_purge_v(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int zone_list_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + bool instances; + ARG_OPT_TXT(instances, "instances", false, true); + + zone_list(ctx, instances, true); + return REDISMODULE_OK; +} + +static int zone_list_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 1) { + return RedisModule_WrongArity(ctx); + } + + zone_list(ctx, true, false); + return REDISMODULE_OK; +} + +static int upd_begin_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_INST_TXT(argv[2], txn); + + upd_begin_txt_format(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int upd_begin_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 3) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_INST(argv[2], txn); + + upd_begin_bin_format(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int upd_add_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_TXN_TXT(argv[2], txn); + + void *zone_data; + size_t data_len; + ARG_DATA(argv[3], data_len, zone_data, "zone data"); + + scanner_ctx_t s_ctx = { + .ctx = ctx, + .txn = &txn, + .dflt_ttl = rdb_default_ttl, + .mode = ADD + }; + + run_scanner(&s_ctx, &origin, zone_data, data_len); + return REDISMODULE_OK; +} + +static int upd_add_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 8) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_TXN(argv[2], txn); + + arg_dname_t owner; + ARG_DNAME(argv[3], owner, "record owner"); + + uint16_t rtype; + ARG_NUM(argv[4], rtype, "record type"); + + uint32_t ttl; + ARG_NUM(argv[5], ttl, "TTL"); + + uint16_t rcount; + ARG_NUM(argv[6], rcount, "record count"); + + uint8_t *rdata; + size_t rdata_len; + ARG_DATA(argv[7], rdata_len, rdata, "rdata"); + + knot_rdataset_t rdataset = { + .count = rcount, + .size = rdata_len, + .rdata = (knot_rdata_t *)rdata + }; + + upd_add_bin_format(ctx, &origin, &txn, &owner, ttl, rtype, &rdataset); + return REDISMODULE_OK; +} + +static int upd_remove_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_TXN_TXT(argv[2], txn); + + void *zone_data; + size_t data_len; + ARG_DATA(argv[3], data_len, zone_data, "zone data"); + + scanner_ctx_t s_ctx = { + .ctx = ctx, + .txn = &txn, + .dflt_ttl = TTL_EMPTY, + .mode = REM + }; + + run_scanner(&s_ctx, &origin, zone_data, data_len); + return REDISMODULE_OK; +} + +static int upd_remove_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 8) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_TXN(argv[2], txn); + + arg_dname_t owner; + ARG_DNAME(argv[3], owner, "record owner"); + + uint16_t rtype; + ARG_NUM(argv[4], rtype, "record type"); + + uint32_t ttl; + ARG_NUM(argv[5], ttl, "TTL"); + + uint16_t rcount; + ARG_NUM(argv[6], rcount, "record count"); + + uint8_t *rdata; + size_t rdata_len; + ARG_DATA(argv[7], rdata_len, rdata, "rdata"); + + knot_rdataset_t rdataset = { + .count = rcount, + .size = rdata_len, + .rdata = (knot_rdata_t *)rdata + }; + + upd_remove_bin_format(ctx, &origin, &txn, &owner, ttl, rtype, &rdataset); + return REDISMODULE_OK; +} + +static int upd_commit_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_TXN_TXT(argv[2], txn); + + upd_commit(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int upd_commit_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 3) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_TXN(argv[2], txn) + + upd_commit(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int upd_abort_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_TXN_TXT(argv[2], txn); + + upd_abort_v(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int upd_abort_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 3) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_TXN(argv[2], txn) + + upd_abort_v(ctx, &origin, &txn); + return REDISMODULE_OK; +} + +static int upd_diff_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + dump_mode_t mode; + ARG_OPT_TXT(mode, "compact", DUMP_TXT, DUMP_COMPACT); + + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_TXN_TXT(argv[2], txn); + + arg_dname_t owner; + if (argc > 3) { + ARG_DNAME_TXT(argv[3], owner, &origin, "record owner"); + } + + uint16_t rtype; + if (argc > 4) { + ARG_RTYPE_TXT(argv[4], rtype); + } + + if (argc > 5) { + return RedisModule_WrongArity(ctx); + } + + upd_diff(ctx, &origin, &txn, (argc >= 4) ? &owner : NULL, + (argc >= 5) ? &rtype : NULL, mode); + return REDISMODULE_OK; +} + +static int upd_diff_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc < 3) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_TXN(argv[2], txn); + + arg_dname_t owner; + if (argc > 3) { + ARG_DNAME(argv[3], owner, "record owner"); + } + + uint16_t rtype; + if (argc > 4) { + ARG_NUM(argv[4], rtype, "record type"); + } + + if (argc > 5) { + return RedisModule_WrongArity(ctx); + } + + upd_diff(ctx, &origin, &txn, (argc >= 4) ? &owner : NULL, + (argc >= 5) ? &rtype : NULL, DUMP_BIN); + return REDISMODULE_OK; +} + +static int upd_load_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + dump_mode_t mode; + ARG_OPT_TXT(mode, "compact", DUMP_TXT, DUMP_COMPACT); + + arg_dname_t origin; + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + + rdb_txn_t txn; + ARG_INST_TXT(argv[2], txn); + + uint32_t serial; + ARG_NUM(argv[3], serial, "zone SOA serial"); + + arg_dname_t owner; + if (argc > 4) { + ARG_DNAME_TXT(argv[3], owner, &origin, "record owner"); + } + + uint16_t rtype; + if (argc > 5) { + ARG_RTYPE_TXT(argv[4], rtype); + } + + if (argc > 6) { + return RedisModule_WrongArity(ctx); + } + + upd_load(ctx, &origin, &txn, serial, (argc >= 5) ? &owner : NULL, + (argc >= 6) ? &rtype : NULL, mode); + return REDISMODULE_OK; +} + +static int upd_load_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc < 3) { + return RedisModule_WrongArity(ctx); + } + + arg_dname_t origin; + ARG_DNAME(argv[1], origin, "zone origin"); + + rdb_txn_t txn; + ARG_INST(argv[2], txn); + + uint32_t serial; + ARG_NUM(argv[3], serial, "zone SOA serial"); + + arg_dname_t owner; + if (argc > 4) { + ARG_DNAME(argv[3], owner, "record owner"); + } + + uint16_t rtype; + if (argc > 5) { + ARG_NUM(argv[4], rtype, "record type"); + } + + if (argc > 6) { + return RedisModule_WrongArity(ctx); + } + + upd_load(ctx, &origin, &txn, serial, (argc >= 5) ? &owner : NULL, + (argc >= 6) ? &rtype : NULL, DUMP_BIN); + return REDISMODULE_OK; +} + +#define LOAD_ERROR(ctx, msg) { \ + RedisModule_Log(ctx, REDISMODULE_LOGLEVEL_WARNING, RDB_E(msg)); \ + RedisModule_ReplyWithError(ctx, RDB_E(msg)); \ + return REDISMODULE_ERR; \ +} + +__attribute__((visibility("default"))) +int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (RedisModule_Init(ctx, "knot", 1, REDISMODULE_APIVER_1) == REDISMODULE_ERR) { + LOAD_ERROR(ctx, "module already loaded"); + } + + for (int i = 0; i < argc; i += 2) { + long long num; + size_t key_len; + const char *key = RedisModule_StringPtrLen(argv[i], &key_len); + if (i + 1 >= argc) { + LOAD_ERROR(ctx, "missing configuration option value"); + } + if (strcmp(key, RDB_PARAM_DFLT_TTL) == 0) { + if (RedisModule_StringToLongLong(argv[i + 1], &num) == REDISMODULE_OK && + num <= INT32_MAX) { + rdb_default_ttl = num; + } else { + LOAD_ERROR(ctx, "invalid value of " RDB_PARAM_DFLT_TTL); + } + } else if (strcmp(key, RDB_PARAM_EVENT_AGE) == 0) { + if (RedisModule_StringToLongLong(argv[i + 1], &num) == REDISMODULE_OK) { + rdb_event_age = num; + } else { + LOAD_ERROR(ctx, "invalid value of " RDB_PARAM_EVENT_AGE); + } + } else if (strcmp(key, RDB_PARAM_UPD_DEPTH) == 0) { + if (RedisModule_StringToLongLong(argv[i + 1], &num) == REDISMODULE_OK) { + rdb_upd_history_len = num; + } else { + LOAD_ERROR(ctx, "invalid value of " RDB_PARAM_UPD_DEPTH); + } + } else { + LOAD_ERROR(ctx, "unknown configuration option"); + } + } + + rdb_rrset_t = RedisModule_CreateDataType(ctx, RRSET_NAME, RRSET_ENCODING_VERSION, &rrset_tm); + if (rdb_rrset_t == NULL) { + LOAD_ERROR(ctx, "failed to load type " RRSET_NAME); + } + + rdb_diff_t = RedisModule_CreateDataType(ctx, DIFF_NAME, DIFF_ENCODING_VERSION, &diff_tm); + if (rdb_diff_t == NULL) { + LOAD_ERROR(ctx, "failed to load type " DIFF_NAME); + } + + RedisModuleCommand *cmd = NULL; + if (register_command_txt("KNOT.ZONE.BEGIN", zone_begin_txt, "write fast") || + register_command_txt("KNOT.ZONE.STORE", zone_store_txt, "write fast") || + register_command_txt("KNOT.ZONE.COMMIT", zone_commit_txt, "write") || + register_command_txt("KNOT.ZONE.ABORT", zone_abort_txt, "write") || + register_command_txt("KNOT.ZONE.LOAD", zone_load_txt, "readonly") || + register_command_txt("KNOT.ZONE.PURGE", zone_purge_txt, "write") || + register_command_txt("KNOT.ZONE.LIST", zone_list_txt, "readonly") || + register_command_txt("KNOT.UPD.BEGIN", upd_begin_txt, "write fast") || + register_command_txt("KNOT.UPD.ADD", upd_add_txt, "write fast") || + register_command_txt("KNOT.UPD.REMOVE", upd_remove_txt, "write fast") || + register_command_txt("KNOT.UPD.COMMIT", upd_commit_txt, "write") || + register_command_txt("KNOT.UPD.ABORT", upd_abort_txt, "write") || + register_command_txt("KNOT.UPD.DIFF", upd_diff_txt, "readonly") || + register_command_txt("KNOT.UPD.LOAD", upd_load_txt, "readonly") || + register_command_bin(RDB_CMD_ZONE_EXISTS, zone_exists_bin, "readonly") || + register_command_bin(RDB_CMD_ZONE_BEGIN, zone_begin_bin, "write") || + register_command_bin(RDB_CMD_ZONE_STORE, zone_store_bin, "write") || + register_command_bin(RDB_CMD_ZONE_COMMIT, zone_commit_bin, "write") || + register_command_bin(RDB_CMD_ZONE_ABORT, zone_abort_bin, "write") || + register_command_bin(RDB_CMD_ZONE_LOAD, zone_load_bin, "readonly") || + register_command_bin(RDB_CMD_ZONE_PURGE, zone_purge_bin, "write") || + register_command_bin(RDB_CMD_ZONE_LIST, zone_list_bin, "readonly") || + register_command_bin(RDB_CMD_UPD_BEGIN, upd_begin_bin, "write") || + register_command_bin(RDB_CMD_UPD_ADD, upd_add_bin, "write") || + register_command_bin(RDB_CMD_UPD_REMOVE, upd_remove_bin, "write") || + register_command_bin(RDB_CMD_UPD_COMMIT, upd_commit_bin, "write") || + register_command_bin(RDB_CMD_UPD_ABORT, upd_abort_bin, "write") || + register_command_bin(RDB_CMD_UPD_DIFF, upd_diff_bin, "readonly") || + register_command_bin(RDB_CMD_UPD_LOAD, upd_load_bin, "readonly") || + register_command_bin("KNOT_BIN.AOF.RRSET", rrset_aof_rewrite, "write") || // Add "internal" with newer Redis. + register_command_bin("KNOT_BIN.AOF.DIFF", diff_aof_rewrite, "write")) // Add "internal" with newer Redis. + { + LOAD_ERROR(ctx, "failed to load commands"); + } + + RedisModule_Log(ctx, REDISMODULE_LOGLEVEL_NOTICE, "%s loaded with %s=%u %s=%u %s=%u", + PACKAGE_VERSION, + RDB_PARAM_DFLT_TTL, rdb_default_ttl, + RDB_PARAM_EVENT_AGE, rdb_event_age, + RDB_PARAM_UPD_DEPTH, rdb_upd_history_len); + + return REDISMODULE_OK; +} diff --git a/src/redis/knot.h b/src/redis/knot.h new file mode 100644 index 0000000000..8cf4103cb5 --- /dev/null +++ b/src/redis/knot.h @@ -0,0 +1,50 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#pragma once + +#include + +#define RDB_PARAM_DFLT_TTL "default-ttl" +#define RDB_PARAM_EVENT_AGE "max-event-age" +#define RDB_PARAM_UPD_DEPTH "max-update-depth" + +#define RDB_VERSION "\x01" +#define RDB_PREFIX "k" RDB_VERSION +#define RDB_PREFIX_LEN (sizeof(RDB_PREFIX) - 1) + +#define RDB_CMD_ZONE_EXISTS "KNOT_BIN.ZONE.EXISTS" +#define RDB_CMD_ZONE_BEGIN "KNOT_BIN.ZONE.BEGIN" +#define RDB_CMD_ZONE_STORE "KNOT_BIN.ZONE.STORE" +#define RDB_CMD_ZONE_COMMIT "KNOT_BIN.ZONE.COMMIT" +#define RDB_CMD_ZONE_ABORT "KNOT_BIN.ZONE.ABORT" +#define RDB_CMD_ZONE_LOAD "KNOT_BIN.ZONE.LOAD" +#define RDB_CMD_ZONE_PURGE "KNOT_BIN.ZONE.PURGE" +#define RDB_CMD_ZONE_LIST "KNOT_BIN.ZONE.LIST" +#define RDB_CMD_UPD_BEGIN "KNOT_BIN.UPD.BEGIN" +#define RDB_CMD_UPD_ADD "KNOT_BIN.UPD.ADD" +#define RDB_CMD_UPD_REMOVE "KNOT_BIN.UPD.REM" +#define RDB_CMD_UPD_COMMIT "KNOT_BIN.UPD.COMMIT" +#define RDB_CMD_UPD_ABORT "KNOT_BIN.UPD.ABORT" +#define RDB_CMD_UPD_DIFF "KNOT_BIN.UPD.DIFF" +#define RDB_CMD_UPD_LOAD "KNOT_BIN.UPD.LOAD" + +#define RDB_RETURN_OK "OK" + +#define RDB_EVENT_KEY (RDB_PREFIX "\x01") +#define RDB_EVENT_ARG_EVENT "e" +#define RDB_EVENT_ARG_ORIGIN "o" +#define RDB_EVENT_ARG_INSTANCE "i" +#define RDB_EVENT_ARG_SERIAL "s" + +typedef struct { + uint8_t instance; + uint8_t id; +} rdb_txn_t; + +typedef enum { + RDB_EVENT_ZONE = 1, + RDB_EVENT_UPD = 2, +} rdb_event_t; diff --git a/src/redis/libs.h b/src/redis/libs.h new file mode 100644 index 0000000000..7ce3a655f3 --- /dev/null +++ b/src/redis/libs.h @@ -0,0 +1,35 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: LGPL-2.1-or-later + * For more information, see + */ + +#pragma once + +#include "libknot/attribute.h" +#undef _public_ +#define _public_ _hidden_ + +#include "contrib/base32hex.c" +#include "contrib/base64.c" +#include "contrib/mempattern.c" +#include "contrib/musl/inet_ntop.c" +#include "contrib/openbsd/strlcat.c" +#include "contrib/openbsd/strlcpy.c" +#include "contrib/sockaddr.c" +#include "contrib/string.c" +#include "contrib/time.c" +#include "contrib/ucw/mempool.c" +#include "libdnssec/key/keytag.c" +#include "libknot/codes.c" +#include "libknot/descriptor.c" +#include "libknot/dname.c" +#include "libknot/mm_ctx.h" +#include "libknot/rdataset.c" +#include "libknot/rrset-dump.c" +#include "libknot/rrset.c" +#include "libknot/rrtype/naptr.c" +#include "libknot/rrtype/opt.c" +#include "libknot/rrtype/soa.h" +#include "libzscanner/error.c" +#include "libzscanner/functions.c" +#include "libzscanner/scanner.c.t0" diff --git a/src/redis/type_diff.h b/src/redis/type_diff.h new file mode 100644 index 0000000000..7c2d4323c6 --- /dev/null +++ b/src/redis/type_diff.h @@ -0,0 +1,192 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: LGPL-2.1-or-later + * For more information, see + */ + +#pragma once + +#define DIFF_ENCODING_VERSION 1 +#define DIFF_NAME "KnotRdiff" + +typedef struct { + knot_rdataset_t add_rrs; + knot_rdataset_t rem_rrs; + uint32_t add_ttl; + uint32_t rem_ttl; +} diff_v; + +static RedisModuleType *rdb_diff_t; + +static void *diff_load(RedisModuleIO *io, int encver) +{ + if (encver != DIFF_ENCODING_VERSION) { + RedisModule_LogIOError(io, REDISMODULE_LOGLEVEL_WARNING, RDB_ECOMPAT); + return NULL; + } + + diff_v *diff = RedisModule_Alloc(sizeof(diff_v)); + if (diff == NULL) { + RedisModule_LogIOError(io, REDISMODULE_LOGLEVEL_WARNING, RDB_EALLOC); + return NULL; + } + size_t len = 0; + diff->add_rrs.count = RedisModule_LoadUnsigned(io); + diff->add_rrs.rdata = (knot_rdata_t *)RedisModule_LoadStringBuffer(io, &len); + if (len > UINT32_MAX) { + RedisModule_LogIOError(io, REDISMODULE_LOGLEVEL_WARNING, RDB_EMALF); + RedisModule_Free(diff->add_rrs.rdata); + RedisModule_Free(diff); + return NULL; + } + diff->add_rrs.size = len; + + diff->rem_rrs.count = RedisModule_LoadUnsigned(io); + diff->rem_rrs.rdata = (knot_rdata_t *)RedisModule_LoadStringBuffer(io, &len); + if (len > UINT32_MAX) { + RedisModule_LogIOError(io, REDISMODULE_LOGLEVEL_WARNING, RDB_EMALF); + RedisModule_Free(diff->add_rrs.rdata); + RedisModule_Free(diff->rem_rrs.rdata); + RedisModule_Free(diff); + return NULL; + } + diff->rem_rrs.size = len; + + diff->add_ttl = RedisModule_LoadUnsigned(io); + diff->rem_ttl = RedisModule_LoadUnsigned(io); + + return diff; +} + +static void diff_save(RedisModuleIO *io, void *value) +{ + diff_v *diff = (diff_v *)value; + + RedisModule_SaveUnsigned(io, diff->add_rrs.count); + RedisModule_SaveStringBuffer(io, (const char *)diff->add_rrs.rdata, diff->add_rrs.size); + + RedisModule_SaveUnsigned(io, diff->rem_rrs.count); + RedisModule_SaveStringBuffer(io, (const char *)diff->rem_rrs.rdata, diff->rem_rrs.size); + + RedisModule_SaveUnsigned(io, diff->add_ttl); + RedisModule_SaveUnsigned(io, diff->rem_ttl); +} + +static size_t diff_mem_usage(const void *value) +{ + const diff_v *diff = (const diff_v *)value; + if (value == NULL) { + return 0UL; + } + return sizeof(*diff) + diff->add_rrs.size + diff->rem_rrs.size; +} + +static void diff_rewrite(RedisModuleIO *io, RedisModuleString *key, void *value) +{ + size_t key_strlen = 0; + const diff_v *diff = (const diff_v *)value; + const uint8_t *key_str = (const uint8_t *)RedisModule_StringPtrLen(key, &key_strlen); + RedisModule_EmitAOF(io, "KNOT_BIN.AOF.DIFF", "blblbll", + key_str, key_strlen, + (long long)diff->add_rrs.count, + diff->add_rrs.rdata, (long long)diff->add_rrs.size, + (long long)diff->rem_rrs.count, + diff->rem_rrs.rdata, (long long)diff->rem_rrs.size, + (long long)diff->add_ttl, + (long long)diff->rem_ttl); +} + +static void diff_free(void *value) +{ + diff_v *diff = (diff_v *)value; + RedisModule_Free(diff->add_rrs.rdata); + RedisModule_Free(diff->rem_rrs.rdata); + RedisModule_Free(diff); +} + +static int diff_aof_rewrite(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 7) { + return RedisModule_WrongArity(ctx); + } + + diff_v *diff = RedisModule_Calloc(1, sizeof(diff_v)); + if (diff == NULL) { + return RedisModule_ReplyWithError(ctx, RDB_EALLOC); + } + + RedisModuleKey *diff_key = RedisModule_OpenKey(ctx, argv[1], REDISMODULE_READ | REDISMODULE_WRITE); + + long long add_rrs_count_val = 0; + int ret = RedisModule_StringToLongLong(argv[2], &add_rrs_count_val); + if (ret != REDISMODULE_OK) { + RedisModule_CloseKey(diff_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } else if (add_rrs_count_val < 0 || add_rrs_count_val > UINT16_MAX) { + RedisModule_CloseKey(diff_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } + diff->add_rrs.count = add_rrs_count_val; + + size_t add_rrs_len = 0; + diff->add_rrs.rdata = (knot_rdata_t *)RedisModule_StringPtrLen(argv[3], &add_rrs_len); + if (add_rrs_len > UINT32_MAX) { + RedisModule_CloseKey(diff_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } + diff->add_rrs.size = add_rrs_len; + + long long rem_rrs_count_val = 0; + ret = RedisModule_StringToLongLong(argv[4], &rem_rrs_count_val); + if (ret != REDISMODULE_OK) { + RedisModule_CloseKey(diff_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } else if (rem_rrs_count_val < 0 || rem_rrs_count_val > UINT16_MAX) { + RedisModule_CloseKey(diff_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } + diff->rem_rrs.count = rem_rrs_count_val; + + size_t rem_rrs_len = 0; + diff->rem_rrs.rdata = (knot_rdata_t *)RedisModule_StringPtrLen(argv[5], &rem_rrs_len); + if (rem_rrs_len > UINT32_MAX) { + RedisModule_CloseKey(diff_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } + diff->rem_rrs.size = rem_rrs_len; + + long long ttl_val = 0; + ret = RedisModule_StringToLongLong(argv[6], &ttl_val); + if (ret != REDISMODULE_OK) { + RedisModule_CloseKey(diff_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } else if (ttl_val < 0 || ttl_val > UINT32_MAX) { + RedisModule_CloseKey(diff_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } + diff->add_ttl = ttl_val; + + ttl_val = 0; + ret = RedisModule_StringToLongLong(argv[7], &ttl_val); + if (ret != REDISMODULE_OK) { + RedisModule_CloseKey(diff_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } else if (ttl_val < 0 || ttl_val > UINT32_MAX) { + RedisModule_CloseKey(diff_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } + diff->rem_ttl = ttl_val; + + RedisModule_ModuleTypeSetValue(diff_key, rdb_diff_t, diff); + RedisModule_CloseKey(diff_key); + + return RedisModule_ReplyWithNull(ctx); +} + +RedisModuleTypeMethods diff_tm = { + .version = REDISMODULE_TYPE_METHOD_VERSION, + .rdb_load = diff_load, + .rdb_save = diff_save, + .mem_usage = diff_mem_usage, + .aof_rewrite = diff_rewrite, + .free = diff_free +}; diff --git a/src/redis/type_rrset.h b/src/redis/type_rrset.h new file mode 100644 index 0000000000..434e0d8b79 --- /dev/null +++ b/src/redis/type_rrset.h @@ -0,0 +1,143 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: LGPL-2.1-or-later + * For more information, see + */ + +#pragma once + +#define RRSET_ENCODING_VERSION 1 +#define RRSET_NAME "KnotRRset" + +typedef struct { + knot_rdataset_t rrs; + uint32_t ttl; +} rrset_v; + +static RedisModuleType *rdb_rrset_t; + +static void *rrset_load(RedisModuleIO *io, int encver) +{ + if (encver != RRSET_ENCODING_VERSION) { + RedisModule_LogIOError(io, REDISMODULE_LOGLEVEL_WARNING, RDB_ECOMPAT); + return NULL; + } + + rrset_v *rrset = RedisModule_Alloc(sizeof(rrset_v)); + if (rrset == NULL) { + RedisModule_LogIOError(io, REDISMODULE_LOGLEVEL_WARNING, RDB_EALLOC); + return NULL; + } + size_t len = 0; + rrset->rrs.count = RedisModule_LoadUnsigned(io); + rrset->rrs.rdata = (knot_rdata_t *)RedisModule_LoadStringBuffer(io, &len); + if (len > UINT32_MAX) { + RedisModule_LogIOError(io, REDISMODULE_LOGLEVEL_WARNING, RDB_EMALF); + RedisModule_Free(rrset->rrs.rdata); + RedisModule_Free(rrset); + return NULL; + } + rrset->rrs.size = len; + + rrset->ttl = RedisModule_LoadUnsigned(io); + + return rrset; +} + +static void rrset_save(RedisModuleIO *io, void *value) +{ + rrset_v *rrset = (rrset_v *)value; + + RedisModule_SaveUnsigned(io, rrset->rrs.count); + RedisModule_SaveStringBuffer(io, (const char *)rrset->rrs.rdata, rrset->rrs.size); + + RedisModule_SaveUnsigned(io, rrset->ttl); +} + +static size_t rrset_mem_usage(const void *value) +{ + const rrset_v *rrset = (const rrset_v *)value; + if (value == NULL) { + return 0UL; + } + return sizeof(*rrset) + rrset->rrs.size; +} + +static void rrset_rewrite(RedisModuleIO *io, RedisModuleString *key, void *value) +{ + size_t key_strlen = 0; + const rrset_v *rrset = (const rrset_v *)value; + const uint8_t *key_str = (const uint8_t *)RedisModule_StringPtrLen(key, &key_strlen); + RedisModule_EmitAOF(io, "KNOT_BIN.AOF.RRSET", "blbl", + key_str, key_strlen, + (long long)rrset->rrs.count, + rrset->rrs.rdata, rrset->rrs.size, + (long long)rrset->ttl); +} + +static void rrset_free(void *value) +{ + rrset_v *rrset = (rrset_v *)value; + RedisModule_Free(rrset->rrs.rdata); + RedisModule_Free(rrset); +} + +static int rrset_aof_rewrite(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + if (argc != 5) { + return RedisModule_WrongArity(ctx); + } + + rrset_v *rrset = RedisModule_Calloc(1, sizeof(rrset_v)); + if (rrset == NULL) { + return RedisModule_ReplyWithError(ctx, RDB_EALLOC); + } + + RedisModuleKey *rrset_key = RedisModule_OpenKey(ctx, argv[1], REDISMODULE_READ | REDISMODULE_WRITE); + + long long count_val = 0; + int ret = RedisModule_StringToLongLong(argv[3], &count_val); + if (ret != REDISMODULE_OK) { + RedisModule_CloseKey(rrset_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } else if (count_val < 0 || count_val > UINT16_MAX) { + RedisModule_CloseKey(rrset_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } + rrset->rrs.count = count_val; + + size_t rdataset_strlen; + const char *rdataset_str = RedisModule_StringPtrLen(argv[4], &rdataset_strlen); + if (rdataset_strlen != 0) { + rrset->rrs.rdata = RedisModule_Alloc(rdataset_strlen); + rrset->rrs.size = rdataset_strlen; + memcpy(rrset->rrs.rdata, rdataset_str, rdataset_strlen); + } else { + rrset->rrs.rdata = NULL; + rrset->rrs.size = 0; + } + + long long ttl_val = 0; + ret = RedisModule_StringToLongLong(argv[2], &ttl_val); + if (ret != REDISMODULE_OK) { + RedisModule_CloseKey(rrset_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } else if (ttl_val < 0 || ttl_val > UINT32_MAX) { + RedisModule_CloseKey(rrset_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } + rrset->ttl = ttl_val; + + RedisModule_ModuleTypeSetValue(rrset_key, rdb_rrset_t, rrset); + RedisModule_CloseKey(rrset_key); + + return RedisModule_ReplyWithNull(ctx); +} + +RedisModuleTypeMethods rrset_tm = { + .version = REDISMODULE_TYPE_METHOD_VERSION, + .rdb_load = rrset_load, + .rdb_save = rrset_save, + .mem_usage = rrset_mem_usage, + .aof_rewrite = rrset_rewrite, + .free = rrset_free +}; From 17d7b25302d5353cba43354b7ed7814a4ea37fb3 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 28 Jan 2025 14:34:34 +0100 Subject: [PATCH 099/675] knot: prepare for integration of the Redis backend --- Knot.files | 2 + src/knot/Makefile.inc | 12 +- src/knot/common/hiredis.c | 255 ++++++++++++++++++++++++++++++ src/knot/common/hiredis.h | 20 +++ src/knot/conf/conf.c | 19 +++ src/knot/conf/conf.h | 18 +++ src/knot/conf/schema.c | 36 +++-- src/knot/conf/schema.h | 6 + src/knot/conf/tools.c | 23 +++ src/knot/conf/tools.h | 8 + src/knot/server/server.c | 178 ++++++++++++++++++++- src/knot/server/server.h | 4 + src/knot/zone/zone-load.c | 21 ++- src/knot/zone/zonefile.c | 107 +++++-------- src/knot/zone/zonefile.h | 36 ++--- src/utils/knotc/commands.c | 2 +- src/utils/kzonecheck/zone_check.c | 12 +- tests-fuzz/Makefile.am | 3 +- tests/Makefile.am | 3 +- tests/knot/test_digest.c | 50 ++---- 20 files changed, 651 insertions(+), 164 deletions(-) create mode 100644 src/knot/common/hiredis.c create mode 100644 src/knot/common/hiredis.h diff --git a/Knot.files b/Knot.files index 247ef7dc8d..ced2c8aabf 100644 --- a/Knot.files +++ b/Knot.files @@ -186,6 +186,8 @@ src/knot/common/evsched.c src/knot/common/evsched.h src/knot/common/fdset.c src/knot/common/fdset.h +src/knot/common/hiredis.c +src/knot/common/hiredis.h src/knot/common/log.c src/knot/common/log.h src/knot/common/process.c diff --git a/src/knot/Makefile.inc b/src/knot/Makefile.inc index 0286d08e01..b5ecae7123 100644 --- a/src/knot/Makefile.inc +++ b/src/knot/Makefile.inc @@ -1,11 +1,13 @@ libknotd_la_CPPFLAGS = $(AM_CPPFLAGS) $(CFLAG_VISIBILITY) $(libkqueue_CFLAGS) \ $(liburcu_CFLAGS) $(lmdb_CFLAGS) $(systemd_CFLAGS) \ - $(libdbus_CFLAGS) $(gnutls_CFLAGS) -DKNOTD_MOD_STATIC + $(libdbus_CFLAGS) $(gnutls_CFLAGS) $(libhiredis_CFLAGS) \ + -DKNOTD_MOD_STATIC libknotd_la_LDFLAGS = $(AM_LDFLAGS) -export-symbols-regex '^knotd_' libknotd_la_LIBADD = $(dlopen_LIBS) $(libkqueue_LIBS) $(pthread_LIBS) libknotd_LIBS = libknotd.la libknot.la libdnssec.la libzscanner.la \ $(libcontrib_LIBS) $(liburcu_LIBS) $(lmdb_LIBS) \ - $(systemd_LIBS) $(libdbus_LIBS) $(gnutls_LIBS) + $(systemd_LIBS) $(libdbus_LIBS) $(gnutls_LIBS) \ + $(hiredis_LIBS) if EMBEDDED_LIBNGTCP2 libknotd_la_LIBADD += $(libembngtcp2_LIBS) @@ -238,6 +240,12 @@ libknotd_la_SOURCES += \ knot/server/quic-handler.h endif ENABLE_QUIC +if ENABLE_REDIS +libknotd_la_SOURCES += \ + knot/common/hiredis.c \ + knot/common/hiredis.h +endif ENABLE_REDIS + if HAVE_DAEMON noinst_LTLIBRARIES += libknotd.la pkgconfig_DATA += knotd.pc diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c new file mode 100644 index 0000000000..ca72df5ec6 --- /dev/null +++ b/src/knot/common/hiredis.c @@ -0,0 +1,255 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#include "knot/common/hiredis.h" + +#include "contrib/sockaddr.h" +#include "knot/common/log.h" +#include "libknot/errcode.h" + +#ifdef ENABLE_REDIS_TLS +#include +#include + +#include "libknot/quic/tls.h" +#include "libknot/quic/tls_common.h" + +typedef struct { + struct knot_creds *local_creds; + struct knot_tls_ctx *tls; + struct knot_tls_conn *conn; +} redis_tls_ctx_t; + +static void knot_redis_tls_close(redisContext *ctx); +static void knot_redis_tls_free(void *privctx); +static ssize_t knot_redis_tls_read(struct redisContext *ctx, char *buff, size_t size); +static ssize_t knot_redis_tls_write(struct redisContext *ctx); + +redisContextFuncs redisContextGnuTLSFuncs = { + .close = knot_redis_tls_close, + .free_privctx = knot_redis_tls_free, + .read = knot_redis_tls_read, + .write = knot_redis_tls_write +}; + +static void ctx_deinit(redis_tls_ctx_t *ctx) +{ + if (ctx != NULL) { + if (ctx->tls != NULL) { + knot_creds_free(ctx->tls->creds); + knot_tls_ctx_free(ctx->tls); + } + knot_creds_free(ctx->local_creds); + hi_free(ctx); + } +} + +static void knot_redis_tls_close(redisContext *ctx) +{ + redis_tls_ctx_t *tls_ctx = ctx->privctx; + if (ctx && ctx->fd != REDIS_INVALID_FD) { + knot_tls_conn_del(tls_ctx->conn); + close(ctx->fd); + ctx->fd = REDIS_INVALID_FD; + } +} + +static void knot_redis_tls_free(void *privctx) +{ + ctx_deinit((redis_tls_ctx_t *)privctx); +} + +static ssize_t knot_redis_tls_read(struct redisContext *ctx, char *buff, size_t size) +{ + redis_tls_ctx_t *tls_ctx = ctx->privctx; + + int ret = knot_tls_recv(tls_ctx->conn, buff, size); + if (ret >= 0) { + return ret; + } else if (ret == KNOT_EBADCERT || + ret == KNOT_NET_ERECV || + ret == KNOT_NET_ECONNECT || + ret == KNOT_NET_EHSHAKE || + ret == KNOT_ETIMEOUT + ) { + return -1; + } + return 0; +} + +static ssize_t knot_redis_tls_write(struct redisContext *ctx) +{ + redis_tls_ctx_t *tls_ctx = ctx->privctx; + + int ret = knot_tls_send(tls_ctx->conn, ctx->obuf, sdslen(ctx->obuf)); + if (ret >= 0) { + return ret; + } else if (ret == KNOT_EBADCERT || + ret == KNOT_NET_ESEND || + ret == KNOT_NET_ECONNECT || + ret == KNOT_NET_EHSHAKE || + ret == KNOT_ETIMEOUT + ) { + return -1; + } + return 0; +} + +static int hiredis_attach_gnutls(redisContext *ctx, struct knot_creds *local_creds, + struct knot_creds *creds) +{ + redis_tls_ctx_t *privctx = hi_calloc(1, sizeof(redis_tls_ctx_t)); + if (ctx == NULL) { + return KNOT_ENOMEM; + } + privctx->local_creds = local_creds; + + privctx->tls = knot_tls_ctx_new(creds, 5000, 2000, KNOT_TLS_CLIENT); + if (privctx->tls == NULL) { + ctx_deinit(privctx); + return KNOT_EINVAL; + } + + privctx->conn = knot_tls_conn_new(privctx->tls, ctx->fd); + if (privctx->conn == NULL) { + ctx_deinit(privctx); + return KNOT_ECONN; + } + + if (knot_tls_handshake(privctx->conn, true) != KNOT_EOK) { + return KNOT_ECONN; + } + + ctx->funcs = &redisContextGnuTLSFuncs; + ctx->privctx = privctx; + + return KNOT_EOK; +} +#endif // ENABLE_REDIS_TLS + +redisContext *rdb_connect(conf_t *conf) +{ + conf_val_t db_listen = conf_db_param(conf, C_ZONE_DB_LISTEN); + struct sockaddr_storage addr = conf_addr(&db_listen, NULL); + + int port = sockaddr_port(&addr); + sockaddr_port_set(&addr, 0); + + char addr_str[SOCKADDR_STRLEN]; + if (sockaddr_tostr(addr_str, sizeof(addr_str), &addr) <= 0) { + return NULL; + } + + const struct timeval timeout = { 10, 0 }; + + redisContext *rdb; + if (addr.ss_family == AF_UNIX) { + rdb = redisConnectUnixWithTimeout(addr_str, timeout); + } else { + rdb = redisConnectWithTimeout(addr_str, port, timeout); + } + if (rdb == NULL) { + log_error("rdb, failed to connect"); + } else if (rdb->err) { + log_error("rdb, failed to connect (%s)", rdb->errstr); + return NULL; + } + +#ifdef ENABLE_REDIS_TLS + if (conf_get_bool(conf, C_DB, C_ZONE_DB_TLS)) { + struct knot_creds *local_creds = NULL; + char *cert_file = conf_tls(conf, C_CERT_FILE); + if (cert_file != NULL) { + char *key_file = conf_tls(conf, C_KEY_FILE); + conf_val_t cafiles_val = conf_get(conf, C_SERVER, C_CA_FILE); + size_t nfiles = conf_val_count(&cafiles_val); + const char *ca_files[nfiles + 1]; + bool system_ca = false; + + memset(ca_files, 0, sizeof(ca_files)); + for (size_t i = 0; cafiles_val.code == KNOT_EOK; conf_val_next(&cafiles_val)) { + const char *file = conf_str(&cafiles_val); + if (*file == '\0') { + system_ca = true; + } else { + ca_files[i++] = file; + } + } + + int ret = knot_creds_init(&local_creds, key_file, cert_file, + ca_files, system_ca, 0, 0); + free(key_file); + free(cert_file); + if (ret != KNOT_EOK) { + redisFree(rdb); + return NULL; + } + } + + const char *hostnames[KNOT_TLS_MAX_PINS] = { 0 }; + conf_val_t val = conf_db_param(conf, C_ZONE_DB_CERT_HOSTNAME); + for (size_t i = 0; val.code == KNOT_EOK; i++) { + hostnames[i] = conf_str(&val); + conf_val_next(&val); + } + + const uint8_t *pins[KNOT_TLS_MAX_PINS] = { 0 }; + val = conf_db_param(conf, C_ZONE_DB_CERT_KEY); + for (size_t i = 0; val.code == KNOT_EOK; i++) { + size_t len; + pins[i] = (uint8_t *)conf_bin(&val, &len); + conf_val_next(&val); + } + + struct knot_creds *creds = knot_creds_init_peer(local_creds, hostnames, pins); + if (creds == NULL) { + knot_creds_free(local_creds); + redisFree(rdb); + return NULL; + } + + int ret = hiredis_attach_gnutls(rdb, local_creds, creds); + if (ret != KNOT_EOK) { + knot_creds_free(local_creds); + knot_creds_free(creds); + redisFree(rdb); + return NULL; + } + } +#endif // ENABLE_REDIS_TLS + + return rdb; +} + +void rdb_disconnect(redisContext* rdb) +{ + if (rdb != NULL) { + // TODO: is anything more needed for TLS case? + redisFree(rdb); + } +} + +bool rdb_compatible(redisContext *rdb) +{ + if (rdb == NULL) { + return false; + } + +#ifdef ENDIANITY_LITTLE + #define ENDIAN 1 +#else + #define ENDIAN 0 +#endif + + const char *lua = "local n=1; local s=string.dump(function() return n end); " \ + "local e=string.byte(s,7); if e==0 then return 0 else return 1 end"; + + redisReply *reply = redisCommand(rdb, "EVAL %s 0", lua); + bool res = (reply != NULL && + reply->type == REDIS_REPLY_INTEGER && + reply->integer == ENDIAN); + freeReplyObject(reply); + return res; +} diff --git a/src/knot/common/hiredis.h b/src/knot/common/hiredis.h new file mode 100644 index 0000000000..9064ed7dfc --- /dev/null +++ b/src/knot/common/hiredis.h @@ -0,0 +1,20 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +/*! + * \brief Extension of Hiredis to support GnuTLS backend. + */ + +#pragma once + +#include + +#include "knot/conf/conf.h" + +redisContext *rdb_connect(conf_t *conf); + +void rdb_disconnect(redisContext* rdb); + +bool rdb_compatible(redisContext *rdb); diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index dad7897cd1..97355d6fdf 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -1507,3 +1507,22 @@ int conf_xdp_iface( return KNOT_EOK; #endif } + +bool conf_zone_rdb_enabled( + conf_t *conf, + const knot_dname_t *zone, + bool input, + uint8_t *instance) +{ + if (instance == NULL) { + return false; + } + + conf_val_t val = conf_zone_get(conf, input ? C_ZONE_DB_IN : C_ZONE_DB_OUT, zone); + int64_t num = conf_int(&val); + if (num > 0) { + *instance = num; + return true; + } + return false; +} diff --git a/src/knot/conf/conf.h b/src/knot/conf/conf.h index 1de23c6f79..b496bb1fa3 100644 --- a/src/knot/conf/conf.h +++ b/src/knot/conf/conf.h @@ -991,3 +991,21 @@ int conf_xdp_iface( struct sockaddr_storage *addr, conf_xdp_iface_t *iface ); + +/*! + * Checks if zone database backend is enabled for the zone. + * + * \param[in] conf Configuration. + * \param[in] zone Zone name. + * \param[in] input Input backend indication; Output backend otherwise. + * \param[out] instance Configured instance number. + * + * \retval true if enabled. + * \retval false if disabled. + */ +bool conf_zone_rdb_enabled( + conf_t *conf, + const knot_dname_t *zone, + bool input, + uint8_t *instance +); diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index bb3cf2e499..bc8b3ae7c1 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -299,21 +299,25 @@ static const yp_item_t desc_stats[] = { }; static const yp_item_t desc_database[] = { - { C_STORAGE, YP_TSTR, YP_VSTR = { STORAGE_DIR } }, - { C_JOURNAL_DB, YP_TSTR, YP_VSTR = { "journal" } }, - { C_JOURNAL_DB_MODE, YP_TOPT, YP_VOPT = { journal_modes, JOURNAL_MODE_ROBUST } }, - { C_JOURNAL_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(1), VIRT_MEM_LIMIT(TERA(100)), - VIRT_MEM_LIMIT(GIGA(20)), YP_SSIZE } }, - { C_KASP_DB, YP_TSTR, YP_VSTR = { "keys" } }, - { C_KASP_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(5), VIRT_MEM_LIMIT(GIGA(100)), - MEGA(500), YP_SSIZE } }, - { C_TIMER_DB, YP_TSTR, YP_VSTR = { "timers" } }, - { C_TIMER_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(1), VIRT_MEM_LIMIT(GIGA(100)), - MEGA(100), YP_SSIZE } }, - { C_CATALOG_DB, YP_TSTR, YP_VSTR = { "catalog" } }, - { C_CATALOG_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(5), VIRT_MEM_LIMIT(GIGA(100)), - VIRT_MEM_LIMIT(GIGA(20)), YP_SSIZE } }, - { C_COMMENT, YP_TSTR, YP_VNONE }, + { C_STORAGE, YP_TSTR, YP_VSTR = { STORAGE_DIR } }, + { C_JOURNAL_DB, YP_TSTR, YP_VSTR = { "journal" } }, + { C_JOURNAL_DB_MODE, YP_TOPT, YP_VOPT = { journal_modes, JOURNAL_MODE_ROBUST } }, + { C_JOURNAL_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(1), VIRT_MEM_LIMIT(TERA(100)), + VIRT_MEM_LIMIT(GIGA(20)), YP_SSIZE } }, + { C_KASP_DB, YP_TSTR, YP_VSTR = { "keys" } }, + { C_KASP_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(5), VIRT_MEM_LIMIT(GIGA(100)), + MEGA(500), YP_SSIZE } }, + { C_TIMER_DB, YP_TSTR, YP_VSTR = { "timers" } }, + { C_TIMER_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(1), VIRT_MEM_LIMIT(GIGA(100)), + MEGA(100), YP_SSIZE } }, + { C_CATALOG_DB, YP_TSTR, YP_VSTR = { "catalog" } }, + { C_CATALOG_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(5), VIRT_MEM_LIMIT(GIGA(100)), + VIRT_MEM_LIMIT(GIGA(20)), YP_SSIZE } }, + { C_ZONE_DB_LISTEN, YP_TADDR, YP_VADDR = { 6379 }, YP_FNONE, { check_rdb, check_listen } }, + { C_ZONE_DB_TLS, YP_TBOOL, YP_VNONE }, + { C_ZONE_DB_CERT_KEY, YP_TB64, YP_VNONE, YP_FMULTI, { check_cert_pin } }, + { C_ZONE_DB_CERT_HOSTNAME, YP_TSTR, YP_VNONE, YP_FMULTI }, + { C_COMMENT, YP_TSTR, YP_VNONE }, { NULL } }; @@ -467,6 +471,8 @@ static const yp_item_t desc_external[] = { #define ZONE_ITEMS(FLAGS) \ { C_STORAGE, YP_TSTR, YP_VSTR = { STORAGE_DIR }, FLAGS }, \ { C_FILE, YP_TSTR, YP_VNONE, FLAGS }, \ + { C_ZONE_DB_IN, YP_TINT, YP_VINT = { -1, 8, -1 }, FLAGS, { check_db_instance } }, \ + { C_ZONE_DB_OUT, YP_TINT, YP_VINT = { -1, 8, -1 }, FLAGS, { check_db_instance } }, \ { C_MASTER, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_REF_EMPTY, \ { check_ref } }, \ { C_DDNS_MASTER, YP_TREF, YP_VREF = { C_RMT }, YP_FNONE, { check_ref_empty } }, \ diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 7b48c3a2e9..f9b6c7b276 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -191,6 +191,12 @@ #define C_ZONEFILE_SYNC "\x0D""zonefile-sync" #define C_ZONEMD_GENERATE "\x0F""zonemd-generate" #define C_ZONEMD_VERIFY "\x0D""zonemd-verify" +#define C_ZONE_DB_CERT_HOSTNAME "\x15""zone-db-cert-hostname" +#define C_ZONE_DB_CERT_KEY "\x10""zone-db-cert-key" +#define C_ZONE_DB_IN "\x0D""zone-db-input" +#define C_ZONE_DB_LISTEN "\x0E""zone-db-listen" +#define C_ZONE_DB_OUT "\x0E""zone-db-output" +#define C_ZONE_DB_TLS "\x0B""zone-db-tls" #define C_ZONE_MAX_SIZE "\x0D""zone-max-size" #define C_ZONE_MAX_TTL "\x0C""zone-max-ttl" #define C_ZSK_LIFETIME "\x0C""zsk-lifetime" diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index b937cd45b8..62a926efd7 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -1213,6 +1213,29 @@ int check_catalog_tpl( return check_zone_or_tpl(args); } +int check_rdb( + knotd_conf_check_args_t *args) +{ +#ifndef ENABLE_REDIS + args->err_str = "Zone database support not available"; + return KNOT_ENOTSUP; +#else + return KNOT_EOK; +#endif +} + +int check_db_instance( + knotd_conf_check_args_t *args) +{ + int64_t instance = yp_int(args->data); + if (instance == 0) { + args->err_str = "instance number must be 1-8"; + return KNOT_EINVAL; + } + + return KNOT_EOK; +} + static int glob_error( const char *epath, int eerrno) diff --git a/src/knot/conf/tools.h b/src/knot/conf/tools.h index f48ed5bbc5..42be2e509b 100644 --- a/src/knot/conf/tools.h +++ b/src/knot/conf/tools.h @@ -163,6 +163,14 @@ int check_catalog_tpl( knotd_conf_check_args_t *args ); +int check_rdb( + knotd_conf_check_args_t *args +); + +int check_db_instance( + knotd_conf_check_args_t *args +); + int include_file( knotd_conf_check_args_t *args ); diff --git a/src/knot/server/server.c b/src/knot/server/server.c index d80a0b0ab7..f6d73f8e47 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -9,6 +9,7 @@ #include #include +#include #include // OpenBSD #include // TCP_FASTOPEN #include @@ -831,16 +832,161 @@ static int configure_sockets(conf_t *conf, server_t *s) return KNOT_EOK; } +#ifdef ENABLE_REDIS +#include "contrib/openbsd/strlcpy.h" +#include "contrib/strtonum.h" +#include "redis/knot.h" +#include "knot/common/hiredis.h" + +#define RDB_TIMESTAMP_SIZE 42 // 2x uint64_t as string (2x20) + dash separator + zero byte. + +static void rdb_process_event(redisReply *reply, knot_zonedb_t *zone_db, + char since[static RDB_TIMESTAMP_SIZE]) +{ + redisReply *timestamp = reply->element[0]; + redisReply *data = reply->element[1]; + if (data->type != REDIS_REPLY_ARRAY || + data->elements % 2 != 0 || + timestamp->len > RDB_TIMESTAMP_SIZE) { + goto failed; + } + strlcpy(since, timestamp->str, RDB_TIMESTAMP_SIZE); + + uint8_t type = 0; + uint8_t instance = 0; + uint32_t serial = 0; + const knot_dname_t *origin = NULL; + + for (int idx = 0; idx < data->elements; ++idx) { + redisReply *key = data->element[idx++]; + redisReply *val = data->element[idx]; + if (key->type != REDIS_REPLY_STRING) { + goto failed; + } + if (strcmp(key->str, RDB_EVENT_ARG_EVENT) == 0) { + if (str_to_u8(val->str, &type) != KNOT_EOK) { + goto failed; + } + } else if (strcmp(key->str, RDB_EVENT_ARG_ORIGIN) == 0) { + origin = (const knot_dname_t *)val->str; + } else if (strcmp(key->str, RDB_EVENT_ARG_INSTANCE) == 0) { + if (str_to_u8(val->str, &instance) != KNOT_EOK) { + goto failed; + } + } else if (strcmp(key->str, RDB_EVENT_ARG_SERIAL) == 0) { + if (str_to_u32(val->str, &serial) != KNOT_EOK) { + goto failed; + } + } + } + + if (type == 0 || origin == NULL || instance == 0) { + goto failed; + } + + uint8_t db_instance = 0; + bool db_enabled = conf_zone_rdb_enabled(conf(), origin, true, &db_instance); + if (!db_enabled || db_instance != instance) { + return; + } + zone_t *zone = knot_zonedb_find(zone_db, origin); + if (zone == NULL) { + return; + } + + switch (type) { + case RDB_EVENT_ZONE: + case RDB_EVENT_UPD: + zone_events_schedule_now(zone, ZONE_EVENT_LOAD); + break; + default: + break; + } + + return; +failed: + log_error("rdb, invalid event parameters"); +} + +static void rdb_process_events(redisReply *reply, knot_zonedb_t *zone_db, + char since[static RDB_TIMESTAMP_SIZE]) +{ + if (reply->type != REDIS_REPLY_ARRAY) { + log_error("rdb, unexpected response"); + return; + } + + for (int idx = 0; idx < reply->elements; ++idx) { + if (reply->element[idx]->type != REDIS_REPLY_ARRAY) { + log_error("rdb, unexpected response"); + continue; + } + redisReply *events = reply->element[idx]->element[1]; + for (int event_idx = 0; event_idx < events->elements; ++event_idx) { + rdb_process_event(events->element[event_idx], zone_db, since); + } + } +} + +static int rdb_listener_run(struct dthread *thread) +{ + server_t *s = thread->data; + + s->rdb_ctx = NULL; + char since[RDB_TIMESTAMP_SIZE] = "$"; + + while (thread->state & ThreadActive) { + if (s->rdb_ctx == NULL) { + s->rdb_ctx = rdb_connect(conf()); + if (s->rdb_ctx == NULL) { + log_error("rdb, failed to connect"); + sleep(2); + continue; + } else if (!rdb_compatible(s->rdb_ctx)) { + log_error("rdb, incompatible CPU endianness"); + break; + } + } + + redisReply *reply = redisCommand(s->rdb_ctx, "XREAD BLOCK %d STREAMS %b %s", + 10000, RDB_EVENT_KEY, strlen(RDB_EVENT_KEY), since); + if (reply == NULL) { + if (thread->state & ThreadDead) { + break; + } + if (s->rdb_ctx->err != REDIS_OK) { + log_error("rdb, failed to read events (%s)", s->rdb_ctx->errstr); + } + sleep(2); + continue; + } + if (reply->type == REDIS_REPLY_NIL) { + freeReplyObject(reply); + continue; + } + + knot_zonedb_t *zone_db = s->zone_db; + if (zone_db != NULL) { + rdb_process_events(reply, zone_db, since); + } + freeReplyObject(reply); + } + + rdb_disconnect(s->rdb_ctx); + s->rdb_ctx = NULL; + + return KNOT_EOK; +} +#endif // ENABLE_REDIS + int server_init(server_t *server, int bg_workers) { if (server == NULL) { return KNOT_EINVAL; } - /* Clear the structure. */ memset(server, 0, sizeof(server_t)); - /* Initialize event scheduler. */ if (evsched_init(&server->sched, server) != KNOT_EOK) { return KNOT_ENOMEM; } @@ -851,8 +997,22 @@ int server_init(server_t *server, int bg_workers) return KNOT_ENOMEM; } +#ifdef ENABLE_REDIS + conf_val_t rdb = conf_db_param(conf(), C_ZONE_DB_LISTEN); + if (rdb.code == KNOT_EOK) { + server->rdb_events = dt_create(1, rdb_listener_run, NULL, server); + if (server->rdb_events == NULL) { + worker_pool_destroy(server->workers); + evsched_deinit(&server->sched); + return KNOT_ENOMEM; + } + } +#endif // ENABLE_REDIS + int ret = catalog_update_init(&server->catalog_upd); if (ret != KNOT_EOK) { + dt_stop(server->rdb_events); + dt_delete(&server->rdb_events); worker_pool_destroy(server->workers); evsched_deinit(&server->sched); return ret; @@ -909,6 +1069,9 @@ void server_deinit(server_t *server) /* Free threads and event handlers. */ worker_pool_destroy(server->workers); + /* Free optional zone DB event thread. */ + dt_delete(&server->rdb_events); + /* Free zone database. */ knot_zonedb_deep_free(&server->zone_db, true); @@ -1023,6 +1186,9 @@ int server_start(server_t *server, bool answering) /* Start workers. */ worker_pool_start(server->workers); + /* Start zone DB event loop. */ + dt_start(server->rdb_events); + /* Start evsched handler. */ evsched_start(&server->sched); @@ -1399,6 +1565,14 @@ void server_stop(server_t *server) log_info("stopping server"); systemd_stopping_notify(); +#ifdef ENABLE_REDIS + /* Interrupt and stop XREAD BLOCK loop. */ + if (server->rdb_ctx != NULL) { + redisSetTimeout(server->rdb_ctx, (struct timeval){ 0, 1 }); + } + dt_stop(server->rdb_events); +#endif // ENABLE_REDIS + /* Stop scheduler. */ evsched_stop(&server->sched); /* Mark the server is shutting down. */ diff --git a/src/knot/server/server.h b/src/knot/server/server.h index b37f2b1268..5faf010210 100644 --- a/src/knot/server/server.h +++ b/src/knot/server/server.h @@ -108,6 +108,10 @@ typedef struct server { /*! \brief Background jobs. */ worker_pool_t *workers; + /*! \brief Zone DB event loop context. */ + dt_unit_t *rdb_events; + struct redisContext *rdb_ctx; + /*! \brief Event scheduler. */ evsched_t sched; diff --git a/src/knot/zone/zone-load.c b/src/knot/zone/zone-load.c index b4d7ef91b6..b4e1491195 100644 --- a/src/knot/zone/zone-load.c +++ b/src/knot/zone/zone-load.c @@ -28,28 +28,25 @@ int zone_load_contents(conf_t *conf, const knot_dname_t *zone_name, return ret; } + zloader_t loader; + sem_handler_t handler = { + .cb = err_handler_logger + }; + char *zonefile = conf_zonefile(conf, zone_name); conf_val_t val = conf_zone_get(conf, C_DEFAULT_TTL, zone_name); uint32_t dflt_ttl = conf_int(&val); - zloader_t zl; - ret = zonefile_open(&zl, zonefile, zone_name, dflt_ttl, - semcheck_mode, time(NULL)); + ret = zonefile_open(&loader, zonefile, zone_name, dflt_ttl, + semcheck_mode, &handler, time(NULL), &skip); free(zonefile); if (ret != KNOT_EOK) { zone_skip_free(&skip); return ret; } - sem_handler_t handler = { - .cb = err_handler_logger - }; - - zl.err_handler = &handler; - zl.creator->skip = &skip; - - *contents = zonefile_load(&zl, 0); - zonefile_close(&zl); + *contents = zonefile_load(&loader, 0); + zonefile_close(&loader); zone_skip_free(&skip); if (*contents == NULL) { return KNOT_ERROR; diff --git a/src/knot/zone/zonefile.c b/src/knot/zone/zonefile.c index 25431c3891..65f3b09f65 100644 --- a/src/knot/zone/zonefile.c +++ b/src/knot/zone/zonefile.c @@ -4,10 +4,8 @@ */ #include -#include #include #include -#include #include #include #include @@ -17,8 +15,8 @@ #include "libknot/libknot.h" #include "contrib/files.h" +#include "contrib/time.h" #include "knot/common/log.h" -#include "knot/dnssec/zone-nsec.h" #include "knot/zone/semantic-check.h" #include "knot/zone/adjust.h" #include "knot/zone/contents.h" @@ -31,8 +29,8 @@ static void process_error(zs_scanner_t *s) { - zcreator_t *zc = s->process.data; - const knot_dname_t *zname = zc->z->apex->owner; + zloader_t *loader = s->process.data; + const knot_dname_t *zname = loader->contents->apex->owner; ERROR(zname, "%s in zone, file '%s', line %"PRIu64" (%s)", s->error.fatal ? "fatal error" : "error", @@ -84,18 +82,18 @@ int zcreator_step(zone_contents_t *contents, const knot_rrset_t *rr, zone_skip_t return KNOT_EOK; } -/*! \brief Creates RR from parser input, passes it to handling function. */ static void process_data(zs_scanner_t *scanner) { - zcreator_t *zc = scanner->process.data; - if (zc->ret != KNOT_EOK) { + zloader_t *zl = scanner->process.data; + + if (zl->ret != KNOT_EOK) { scanner->state = ZS_STATE_STOP; return; } knot_dname_t *owner = knot_dname_copy(scanner->r_owner, NULL); if (owner == NULL) { - zc->ret = KNOT_ENOMEM; + zl->ret = KNOT_ENOMEM; return; } @@ -105,19 +103,19 @@ static void process_data(zs_scanner_t *scanner) int ret = knot_rrset_add_rdata(&rr, scanner->r_data, scanner->r_data_length, NULL); if (ret != KNOT_EOK) { knot_rrset_clear(&rr, NULL); - zc->ret = ret; + zl->ret = ret; return; } - /* Convert RDATA dnames to lowercase before adding to zone. */ ret = knot_rrset_rr_to_canonical(&rr); if (ret != KNOT_EOK) { knot_rrset_clear(&rr, NULL); - zc->ret = ret; + zl->ret = ret; return; } - zc->ret = zcreator_step(zc->z, &rr, zc->skip); + zl->ret = zcreator_step(zl->contents, &rr, zl->skip); + knot_rrset_clear(&rr, NULL); } @@ -139,24 +137,17 @@ static void error_origin(zs_scanner_t *s) } int zonefile_open(zloader_t *loader, const char *source, const knot_dname_t *origin, - uint32_t dflt_ttl, semcheck_optional_t semantic_checks, time_t time) + uint32_t dflt_ttl, semcheck_optional_t sem_checks, + sem_handler_t *sem_err_handler, time_t time, zone_skip_t *skip) { if (loader == NULL || source == NULL) { return KNOT_EINVAL; } - memset(loader, 0, sizeof(zloader_t)); - if (access(source, F_OK | R_OK) != 0) { return knot_map_errno(); } - zcreator_t *zc = malloc(sizeof(zcreator_t)); - if (zc == NULL) { - return KNOT_ENOMEM; - } - memset(zc, 0, sizeof(zcreator_t)); - uint8_t origin_buf[1 + KNOT_DNAME_MAXLEN]; if (origin == NULL) { // Origin autodetection based on SOA owner and source. const char *ext = ".zone"; @@ -175,19 +166,16 @@ int zonefile_open(zloader_t *loader, const char *source, const knot_dname_t *ori zs_set_processing(&s, check_origin, error_origin, &origin_buf) != 0) { free(origin_str); zs_deinit(&s); - free(zc); return KNOT_EFILE; } free(origin_str); if (zs_parse_all(&s) != 0 && s.error.fatal) { zs_deinit(&s); - free(zc); return KNOT_EPARSEFAIL; } zs_deinit(&s); if (origin_buf[0] == 0) { - free(zc); return KNOT_ESOAINVAL; } origin = origin_buf + 1; @@ -195,101 +183,91 @@ int zonefile_open(zloader_t *loader, const char *source, const knot_dname_t *ori knot_dname_txt_storage_t origin_str; if (knot_dname_to_str(origin_str, origin, sizeof(origin_str)) == NULL) { - free(zc); return KNOT_EINVAL; } if (zs_init(&loader->scanner, origin_str, KNOT_CLASS_IN, dflt_ttl) != 0 || zs_set_input_file(&loader->scanner, source) != 0 || - zs_set_processing(&loader->scanner, process_data, process_error, zc) != 0) { + zs_set_processing(&loader->scanner, process_data, process_error, loader) != 0) { zs_deinit(&loader->scanner); - free(zc); return KNOT_EFILE; } - zc->z = zone_contents_new(origin, true); - if (zc->z == NULL) { + loader->contents = zone_contents_new(origin, true); + if (loader->contents == NULL) { zs_deinit(&loader->scanner); - free(zc); return KNOT_ENOMEM; } loader->source = strdup(source); - loader->creator = zc; - loader->semantic_checks = semantic_checks; + loader->sem_checks = sem_checks; + loader->err_handler = sem_err_handler; + loader->skip = skip; loader->time = time; + loader->ret = KNOT_EOK; return KNOT_EOK; } zone_contents_t *zonefile_load(zloader_t *loader, uint16_t threads) { - if (!loader) { + if (loader == NULL) { return NULL; } - zcreator_t *zc = loader->creator; - const knot_dname_t *zname = zc->z->apex->owner; + const knot_dname_t *zname = loader->contents->apex->owner; - assert(zc); int ret = zs_parse_all(&loader->scanner); if (ret != 0 && loader->scanner.error.counter == 0) { - ERROR(zname, "failed to load zone, file '%s' (%s)", + ERROR(zname, "failed to load, file '%s' (%s)", loader->source, zs_strerror(loader->scanner.error.code)); goto fail; - } - - if (zc->ret != KNOT_EOK) { - ERROR(zname, "failed to load zone, file '%s' (%s)", - loader->source, knot_strerror(zc->ret)); + } else if (loader->ret != KNOT_EOK) { + ERROR(zname, "failed to load, file '%s' (%s)", + loader->source, knot_strerror(loader->ret)); goto fail; - } - - if (loader->scanner.error.counter > 0) { - ERROR(zname, "failed to load zone, file '%s', %"PRIu64" errors", + } else if (loader->scanner.error.counter > 0) { + ERROR(zname, "failed to load, file '%s', %"PRIu64" errors", loader->source, loader->scanner.error.counter); goto fail; } - knot_rdataset_t *soa = node_rdataset(zc->z->apex, KNOT_RRTYPE_SOA); + knot_rdataset_t *soa = node_rdataset(loader->contents->apex, KNOT_RRTYPE_SOA); if (soa == NULL || soa->count != 1) { sem_error_t code = (soa == NULL) ? SEM_ERR_SOA_NONE : SEM_ERR_SOA_MULTIPLE; loader->err_handler->error = true; - loader->err_handler->cb(loader->err_handler, zc->z, NULL, code, NULL); + loader->err_handler->cb(loader->err_handler, loader->contents, NULL, code, NULL); goto fail; } - ret = zone_adjust_contents(zc->z, adjust_cb_flags_and_nsec3, adjust_cb_nsec3_flags, - true, true, 1, NULL); + ret = zone_adjust_contents(loader->contents, adjust_cb_flags_and_nsec3, + adjust_cb_nsec3_flags, true, true, 1, NULL); if (ret != KNOT_EOK) { - ERROR(zname, "failed to finalize zone contents (%s)", - knot_strerror(ret)); + ERROR(zname, "failed to finalize zone contents (%s)", knot_strerror(ret)); goto fail; } - ret = sem_checks_process(zc->z, loader->semantic_checks, + ret = sem_checks_process(loader->contents, loader->sem_checks, loader->err_handler, loader->time, threads); if (ret != KNOT_EOK) { - ERROR(zname, "failed to load zone, file '%s' (%s)", - loader->source, knot_strerror(ret)); + ERROR(zname, "failed to check zone (%s)", knot_strerror(ret)); goto fail; } /* The contents will now change possibly messing up NSEC3 tree, it will be adjusted again at zone_update_commit. */ - ret = zone_adjust_contents(zc->z, unadjust_cb_point_to_nsec3, NULL, - false, false, 1, NULL); + ret = zone_adjust_contents(loader->contents, unadjust_cb_point_to_nsec3, + NULL, false, false, 1, NULL); if (ret != KNOT_EOK) { - ERROR(zname, "failed to finalize zone contents (%s)", - knot_strerror(ret)); + ERROR(zname, "failed to finalize zone contents (%s)", knot_strerror(ret)); goto fail; } - return zc->z; - + return loader->contents; fail: - zone_contents_deep_free(zc->z); + zone_contents_deep_free(loader->contents); + return NULL; } @@ -359,13 +337,12 @@ int zonefile_write(const char *path, zone_contents_t *zone, zone_skip_t *skip) void zonefile_close(zloader_t *loader) { - if (!loader) { + if (loader == NULL) { return; } zs_deinit(&loader->scanner); free(loader->source); - free(loader->creator); } void err_handler_logger(sem_handler_t *handler, const zone_contents_t *zone, diff --git a/src/knot/zone/zonefile.h b/src/knot/zone/zonefile.h index e1991c8b92..d3eabdca16 100644 --- a/src/knot/zone/zonefile.h +++ b/src/knot/zone/zonefile.h @@ -5,33 +5,20 @@ #pragma once -#include -#include - #include "knot/zone/skip.h" #include "knot/zone/zone.h" #include "knot/zone/semantic-check.h" #include "libzscanner/scanner.h" -/*! - * \brief Zone creator structure. - */ -typedef struct zcreator { - zone_contents_t *z; /*!< Created zone. */ - zone_skip_t *skip; /*!< Skip configured types. */ - int ret; /*!< Return value. */ -} zcreator_t; - -/*! - * \brief Zone loader structure. - */ typedef struct { - char *source; /*!< Zone source file. */ - semcheck_optional_t semantic_checks; /*!< Do semantic checks. */ - sem_handler_t *err_handler; /*!< Semantic checks error handler. */ - zcreator_t *creator; /*!< Loader context. */ - zs_scanner_t scanner; /*!< Zone scanner. */ - time_t time; /*!< time for zone check. */ + char *source; /*!< Zone source file. */ + zs_scanner_t scanner; /*!< Zone scanner. */ + zone_contents_t *contents; /*!< Created zone. */ + semcheck_optional_t sem_checks; /*!< Do semantic checks. */ + sem_handler_t *err_handler; /*!< Semantic checks error handler. */ + zone_skip_t *skip; /*!< Skip configured types. */ + time_t time; /*!< Time for zone check. */ + int ret; /*!< Callback return value. */ } zloader_t; void err_handler_logger(sem_handler_t *handler, const zone_contents_t *zone, @@ -44,14 +31,17 @@ void err_handler_logger(sem_handler_t *handler, const zone_contents_t *zone, * \param source Source file name. * \param origin Zone origin. * \param dflt_ttl Default TTL. - * \param semantic_checks Perform semantic checks. + * \param sem_checks Perform semantic checks. + * \param sem_err_handler Semantic checks error handler. * \param time Time for semantic check. + * \param skip RRTypes to be skipped. * * \retval Initialized loader on success. * \retval NULL on error. */ int zonefile_open(zloader_t *loader, const char *source, const knot_dname_t *origin, - uint32_t dflt_ttl, semcheck_optional_t semantic_checks, time_t time); + uint32_t dflt_ttl, semcheck_optional_t sem_checks, + sem_handler_t *sem_err_handler, time_t time, zone_skip_t *skip); /*! * \brief Loads zone from a zone file. diff --git a/src/utils/knotc/commands.c b/src/utils/knotc/commands.c index 1797536a10..73e01063e2 100644 --- a/src/utils/knotc/commands.c +++ b/src/utils/knotc/commands.c @@ -562,7 +562,7 @@ static int zone_check(const knot_dname_t *dname, void *data) if (ret != KNOT_EOK && ret != KNOT_ESEMCHECK) { knot_dname_txt_storage_t name; (void)knot_dname_to_str(name, dname, sizeof(name)); - log_error("[%s] failed to check zone file (%s)", name, knot_strerror(ret)); + log_error("[%s] failed to check zone (%s)", name, knot_strerror(ret)); } return ret; diff --git a/src/utils/kzonecheck/zone_check.c b/src/utils/kzonecheck/zone_check.c index 68d06827dc..6a6c59e104 100644 --- a/src/utils/kzonecheck/zone_check.c +++ b/src/utils/kzonecheck/zone_check.c @@ -61,8 +61,9 @@ int zone_check(const char *zone_file, const knot_dname_t *zone_name, bool zonemd .handler = { .cb = err_callback }, }; - zloader_t zl; - int ret = zonefile_open(&zl, zone_file, zone_name, dflt_ttl, optional, time); + zloader_t loader; + int ret = zonefile_open(&loader, zone_file, zone_name, dflt_ttl, optional, + (sem_handler_t *)&stats, time, NULL); switch (ret) { case KNOT_EOK: break; @@ -77,17 +78,16 @@ int zone_check(const char *zone_file, const knot_dname_t *zone_name, bool zonemd ERR2("failed to run semantic checks (%s)", knot_strerror(ret)); return ret; } - zl.err_handler = (sem_handler_t *)&stats; if (zone_name == NULL) { knot_dname_txt_storage_t origin; - if (knot_dname_to_str(origin, zl.scanner.zone_origin, sizeof(origin)) != NULL) { + if (knot_dname_to_str(origin, loader.scanner.zone_origin, sizeof(origin)) != NULL) { log_debug("detected zone origin %s", origin); } } - zone_contents_t *contents = zonefile_load(&zl, threads); - zonefile_close(&zl); + zone_contents_t *contents = zonefile_load(&loader, threads); + zonefile_close(&loader); if (contents == NULL && !stats.handler.error) { ERR2("failed to run semantic checks"); return KNOT_ERROR; diff --git a/tests-fuzz/Makefile.am b/tests-fuzz/Makefile.am index 489153dbf9..20ff9b5f35 100644 --- a/tests-fuzz/Makefile.am +++ b/tests-fuzz/Makefile.am @@ -45,7 +45,8 @@ knotd_stdio_LDADD = \ $(liburcu_LIBS) \ $(lmdb_LIBS) \ $(systemd_LIBS) \ - $(libdbus_LIBS) + $(libdbus_LIBS) \ + $(hiredis_LIBS) BUILT_SOURCES = knotd_wrap/main.c CLEANFILES = knotd_wrap/main.c diff --git a/tests/Makefile.am b/tests/Makefile.am index ac88c46721..258ef902a5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -15,7 +15,8 @@ LDADD += \ $(top_builddir)/src/libknotd.la \ $(liburcu_LIBS) \ $(systemd_LIBS) \ - $(libdbus_LIBS) + $(libdbus_LIBS) \ + $(hiredis_LIBS) endif HAVE_DAEMON LDADD += \ diff --git a/tests/knot/test_digest.c b/tests/knot/test_digest.c index e9c5abc07b..14e6b4c2b5 100644 --- a/tests/knot/test_digest.c +++ b/tests/knot/test_digest.c @@ -3,56 +3,35 @@ * For more information, see */ -#include "knot/zone/digest.h" - +#include #include #include -#include "knot/zone/zonefile.h" +#include "knot/zone/digest.h" #include "libzscanner/scanner.h" -// copy-pasted from knot/zone/zonefile.c static void process_data(zs_scanner_t *scanner) { - zcreator_t *zc = scanner->process.data; - if (zc->ret != KNOT_EOK) { - scanner->state = ZS_STATE_STOP; - return; - } + zone_contents_t *cont = scanner->process.data; knot_dname_t *owner = knot_dname_copy(scanner->r_owner, NULL); - if (owner == NULL) { - zc->ret = KNOT_ENOMEM; - return; - } + assert(owner != NULL); knot_rrset_t rr; knot_rrset_init(&rr, owner, scanner->r_type, scanner->r_class, scanner->r_ttl); - int ret = knot_rrset_add_rdata(&rr, scanner->r_data, scanner->r_data_length, NULL); - if (ret != KNOT_EOK) { - knot_rrset_clear(&rr, NULL); - zc->ret = ret; - return; + if (knot_rrset_add_rdata(&rr, scanner->r_data, scanner->r_data_length, NULL) == KNOT_EOK && + knot_rrset_rr_to_canonical(&rr) == KNOT_EOK) { + zone_node_t *node = NULL; + int ret = zone_contents_add_rr(cont, &rr, &node); + if (ret != KNOT_EOK && ret != KNOT_EOUTOFZONE) { + scanner->error.code = ZS_STATE_ERROR; + } } - ret = knot_rrset_rr_to_canonical(&rr); - if (ret != KNOT_EOK) { - knot_rrset_clear(&rr, NULL); - zc->ret = ret; - return; - } - - zc->ret = zcreator_step(zc->z, &rr, zc->skip); knot_rrset_clear(&rr, NULL); } -static void process_error(zs_scanner_t *s) -{ - (void)s; - assert(0); -} - static zone_contents_t *str2contents(const char *zone_str) { knot_dname_txt_storage_t origin_str; @@ -65,13 +44,12 @@ static zone_contents_t *str2contents(const char *zone_str) assert(cont != NULL); knot_dname_free(origin, NULL); - zcreator_t zc = { cont, NULL, KNOT_EOK }; - zs_scanner_t sc; ok(zs_init(&sc, origin_str, KNOT_CLASS_IN, 3600) == 0 && zs_set_input_string(&sc, zone_str, strlen(zone_str)) == 0 && - zs_set_processing(&sc, process_data, process_error, &zc) == 0 && - zs_parse_all(&sc) == 0, "zscanner initialization"); + zs_set_processing(&sc, process_data, NULL, cont) == 0 && + zs_parse_all(&sc) == 0 && + sc.error.code == ZS_OK, "zscanner processing"); zs_deinit(&sc); return cont; From 69292b4d39eb293342eb5ca64b62c5598f05ae30 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sun, 27 Jul 2025 16:59:48 +0200 Subject: [PATCH 100/675] redis: write to DB from zone_update_commit() --- Knot.files | 2 + src/knot/Makefile.inc | 2 + src/knot/updates/zone-update.c | 77 ++++++++++ src/knot/zone/redis.c | 211 ++++++++++++++++++++++++++ src/knot/zone/redis.h | 82 ++++++++++ src/libknot/errcode.h | 1 + src/libknot/error.c | 1 + tests-extra/tests/redis/basic/test.py | 69 ++++++++- 8 files changed, 438 insertions(+), 7 deletions(-) create mode 100644 src/knot/zone/redis.c create mode 100644 src/knot/zone/redis.h diff --git a/Knot.files b/Knot.files index ced2c8aabf..75c13c0c12 100644 --- a/Knot.files +++ b/Knot.files @@ -389,6 +389,8 @@ src/knot/zone/measure.c src/knot/zone/measure.h src/knot/zone/node.c src/knot/zone/node.h +src/knot/zone/redis.c +src/knot/zone/redis.h src/knot/zone/reverse.c src/knot/zone/reverse.h src/knot/zone/semantic-check.c diff --git a/src/knot/Makefile.inc b/src/knot/Makefile.inc index b5ecae7123..e04dc44463 100644 --- a/src/knot/Makefile.inc +++ b/src/knot/Makefile.inc @@ -205,6 +205,8 @@ libknotd_la_SOURCES = \ knot/zone/measure.c \ knot/zone/node.c \ knot/zone/node.h \ + knot/zone/redis.c \ + knot/zone/redis.h \ knot/zone/reverse.c \ knot/zone/reverse.h \ knot/zone/semantic-check.c \ diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 1fa4b7cc93..f9e11d9b87 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -16,6 +16,7 @@ #include "knot/zone/adds_tree.h" #include "knot/zone/adjust.h" #include "knot/zone/digest.h" +#include "knot/zone/redis.h" #include "knot/zone/serial.h" #include "knot/zone/zone-diff.h" #include "knot/zone/zonefile.h" @@ -699,6 +700,75 @@ static int commit_journal(conf_t *conf, zone_update_t *update) return ret; } +static int redis_wr_rr(const knot_rrset_t *rr, void *ctx) +{ + return zone_redis_write_rrset(ctx, rr); +} + +static int redis_wr_node(zone_node_t *node, void *ctx) +{ + return zone_redis_write_node(ctx, node); +} + +static int commit_redis(conf_t *conf, zone_update_t *update) +{ + uint8_t db_instance = 0; + bool db_enabled = conf_zone_rdb_enabled(conf, update->zone->name, false, &db_instance); + if (!db_enabled) { + return KNOT_EOK; + } + + struct redisContext *db_ctx = zone_redis_connect(conf); + if (db_ctx == NULL) { + return KNOT_ECONN; + } + + bool incremental = ((update->flags & (UPDATE_INCREMENTAL | UPDATE_HYBRID)) && update->zone->contents != NULL); + if (incremental) { + zone_redis_err_t err; + uint32_t redis_soa = 0; + int soa_ret = zone_redis_serial(db_ctx, db_instance, update->zone->name, &redis_soa, err); + incremental = (soa_ret == KNOT_EOK && redis_soa == zone_contents_serial(update->zone->contents)); + } + + zone_redis_txn_t txn; + int ret = zone_redis_txn_begin(&txn, db_ctx, db_instance, update->zone->name, incremental); + if (ret != KNOT_EOK) { + zone_redis_disconnect(db_ctx); + return ret; + } + + if (incremental) { + txn.removals = true; + ret = zone_update_foreach(update, false, redis_wr_rr, &txn); + if (ret == KNOT_EOK) { + txn.removals = false; + ret = zone_update_foreach(update, true, redis_wr_rr, &txn); + } + } else { + ret = zone_contents_apply(update->new_cont, redis_wr_node, &txn); + if (ret == KNOT_EOK) { + ret = zone_contents_nsec3_apply(update->new_cont, redis_wr_node, &txn); + } + } + + if (ret == KNOT_EOK) { + ret = zone_redis_txn_commit(&txn); + } + if (ret != KNOT_EOK) { + if (ret == KNOT_ERDB) { + log_zone_error(update->zone->name, "rdb, update aborted (%s)", txn.err); + } + (void)zone_redis_txn_abort(&txn); + } else { + log_zone_info(update->zone->name, "database updated, instance %u, serial %u", + db_instance, zone_contents_serial(update->new_cont)); + } + + zone_redis_disconnect(db_ctx); + return ret; +} + static int commit_incremental(conf_t *conf, zone_update_t *update) { assert(update); @@ -1103,6 +1173,13 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) return ret; } + ret = commit_redis(conf, update); + if (ret != KNOT_EOK) { + log_zone_error(update->zone->name, "zone database update failed (%s)", knot_strerror(ret)); + discard_adds_tree(update); + return ret; + } + ret = commit_journal(conf, update); if (ret != KNOT_EOK) { log_zone_error(update->zone->name, "journal update failed (%s)", knot_strerror(ret)); diff --git a/src/knot/zone/redis.c b/src/knot/zone/redis.c new file mode 100644 index 0000000000..e98ddd794f --- /dev/null +++ b/src/knot/zone/redis.c @@ -0,0 +1,211 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#include "knot/zone/redis.h" + +#include + +#ifdef ENABLE_REDIS + +#include "knot/common/hiredis.h" + +struct redisContext *zone_redis_connect(conf_t *conf) +{ + return rdb_connect(conf); +} + +void zone_redis_disconnect(struct redisContext *ctx) +{ + return rdb_disconnect(ctx); +} + +static int check_reply(struct redisContext *rdb, redisReply *reply, + int expected_type, zone_redis_err_t err) +{ + if (reply == NULL) { + if (rdb->err != REDIS_OK) { + strlcpy(err, rdb->errstr, sizeof(zone_redis_err_t)); + } else { + strlcpy(err, "no reply", sizeof(zone_redis_err_t)); + } + return KNOT_ERDB; + } else if (reply->type == REDIS_REPLY_ERROR) { + strlcpy(err, reply->str, sizeof(zone_redis_err_t)); + return KNOT_ERDB; + } else if (reply->type != expected_type) { + strlcpy(err, "unexpected reply", sizeof(zone_redis_err_t)); + return KNOT_ERDB; + } else if (reply->type == REDIS_REPLY_ARRAY && reply->elements == 0) { + return KNOT_ENOENT; + } else if (reply->type == REDIS_REPLY_STATUS && strcmp(RDB_RETURN_OK, reply->str) != 0) { + return KNOT_EACCES; + } + + return KNOT_EOK; +} + +int zone_redis_txn_begin(zone_redis_txn_t *txn, struct redisContext *rdb, + uint8_t instance, const knot_dname_t *zone_name, + bool incremental) +{ + if (txn == NULL || rdb == NULL || zone_name == NULL) { + return KNOT_EINVAL; + } + + txn->rdb = rdb; + txn->instance = instance; + txn->origin = zone_name; + txn->origin_len = knot_dname_size(zone_name); + txn->incremental = incremental; + txn->removals = false; + txn->err[0] = '\0'; + + const char *cmd = txn->incremental ? RDB_CMD_UPD_BEGIN " %b %b" : + RDB_CMD_ZONE_BEGIN " %b %b"; + + redisReply *reply = redisCommand(txn->rdb, cmd, txn->origin, txn->origin_len, + &txn->instance, sizeof(txn->instance)); + int ret = check_reply(rdb, reply, REDIS_REPLY_STRING, txn->err); + if (ret != KNOT_EOK) { + freeReplyObject(reply); + return ret; + } + if (reply->len != sizeof(txn->rdb_txn)) { + freeReplyObject(reply); + return KNOT_EMALF; + } + + memcpy(&txn->rdb_txn, reply->str, sizeof(txn->rdb_txn)); + freeReplyObject(reply); + + return KNOT_EOK; +} + +int zone_redis_write_rrset(zone_redis_txn_t *txn, const knot_rrset_t *rr) +{ + if (txn == NULL || rr == NULL || (txn->removals && !txn->incremental)) { + return KNOT_EINVAL; + } + + const char *cmd = !txn->incremental ? RDB_CMD_ZONE_STORE " %b %b %b %d %d %d %b" : + txn->removals ? RDB_CMD_UPD_REMOVE " %b %b %b %d %d %d %b" : + RDB_CMD_UPD_ADD " %b %b %b %d %d %d %b"; + + redisReply *reply = redisCommand(txn->rdb, cmd, txn->origin, txn->origin_len, + &txn->rdb_txn, sizeof(txn->rdb_txn), + rr->owner, knot_dname_size(rr->owner), rr->type, rr->ttl, + rr->rrs.count, rr->rrs.rdata, rr->rrs.size); + int ret = check_reply(txn->rdb, reply, REDIS_REPLY_STATUS, txn->err); + if (ret != KNOT_EOK) { + freeReplyObject(reply); + return ret; + } + + freeReplyObject(reply); + + return KNOT_EOK; +} + +int zone_redis_write_node(zone_redis_txn_t *txn, const zone_node_t *node) +{ + if (txn == NULL || node == NULL) { + return KNOT_EINVAL; + } + + int ret = KNOT_EOK; + for (uint16_t i = 0; i < node->rrset_count && ret == KNOT_EOK; i++) { + knot_rrset_t rrset = node_rrset_at(node, i); + ret = zone_redis_write_rrset(txn, &rrset); + } + + return ret; +} + +int zone_redis_txn_commit(zone_redis_txn_t *txn) +{ + if (txn == NULL) { + return KNOT_EINVAL; + } + + const char *cmd = txn->incremental ? RDB_CMD_UPD_COMMIT " %b %b" : + RDB_CMD_ZONE_COMMIT " %b %b"; + + redisReply *reply = redisCommand(txn->rdb, cmd, txn->origin, txn->origin_len, + &txn->rdb_txn, sizeof(txn->rdb_txn)); + int ret = check_reply(txn->rdb, reply, REDIS_REPLY_STATUS, txn->err); + if (ret != KNOT_EOK) { + freeReplyObject(reply); + return ret; + } + + memset(txn, 0, sizeof(*txn)); + freeReplyObject(reply); + + return KNOT_EOK; +} + +int zone_redis_txn_abort(zone_redis_txn_t *txn) +{ + if (txn == NULL) { + return KNOT_EINVAL; + } + + const char *cmd = txn->incremental ? RDB_CMD_UPD_ABORT " %b %b" : + RDB_CMD_ZONE_ABORT " %b %b"; + + redisReply *reply = redisCommand(txn->rdb, cmd, txn->origin, txn->origin_len, + &txn->rdb_txn, sizeof(txn->rdb_txn)); + int ret = check_reply(txn->rdb, reply, REDIS_REPLY_STATUS, txn->err); + if (ret != KNOT_EOK) { + freeReplyObject(reply); + return ret; + } + + memset(txn, 0, sizeof(*txn)); + freeReplyObject(reply); + + return KNOT_EOK; +} + +#else // ENABLE_REDIS + +struct redisContext *zone_redis_connect(conf_t *conf) +{ + return NULL; +} + +void zone_redis_disconnect(struct redisContext *ctx) +{ + return; +} + +int zone_redis_txn_begin(zone_redis_txn_t *txn, struct redisContext *rdb, + uint8_t instance, const knot_dname_t *zone_name, + bool incremental) +{ + return KNOT_ENOTSUP; +} + +int zone_redis_write_rrset(zone_redis_txn_t *txn, const knot_rrset_t *rr) +{ + return KNOT_ENOTSUP; +} + +int zone_redis_write_node(zone_redis_txn_t *txn, const zone_node_t *node) +{ + return KNOT_ENOTSUP; +} + +int zone_redis_txn_commit(zone_redis_txn_t *txn) +{ + return KNOT_ENOTSUP; +} + +int zone_redis_txn_abort(zone_redis_txn_t *txn) +{ + return KNOT_ENOTSUP; +} + +#endif // ENABLE_REDIS diff --git a/src/knot/zone/redis.h b/src/knot/zone/redis.h new file mode 100644 index 0000000000..203c06cbb8 --- /dev/null +++ b/src/knot/zone/redis.h @@ -0,0 +1,82 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#pragma once + +#include "knot/conf/conf.h" +#include "knot/zone/node.h" +#include "redis/knot.h" + +#ifdef ENABLE_REDIS +#include +#else // ENABLE_REDIS +struct redisContext; +#endif // ENABLE_REDIS + +typedef char zone_redis_err_t[128]; + +typedef struct { + struct redisContext *rdb; + rdb_txn_t rdb_txn; + uint8_t instance; + + const knot_dname_t *origin; + size_t origin_len; + + bool incremental; + bool removals; + + zone_redis_err_t err; +} zone_redis_txn_t; + +/*! + * \brief Wrappers to rdb_connect and rdb_disconnect not needing #ifdef ENABLE_REDIS around. + */ +struct redisContext *zone_redis_connect(conf_t *conf); +void zone_redis_disconnect(struct redisContext *ctx); + +/*! + * \brief Start a writing stransaction into Redis zone database. + * + * \param txn Transaction context structure to be filled; + * \param rdb Redis context (just pass zone_redis_connect()). + * \param instance Zone instance number (from configuration). + * \param zone_name Zone name. + * \param incremental Store incremental update (otherwise full zone rewrite). + * + * \return KNOT_E* + */ +int zone_redis_txn_begin(zone_redis_txn_t *txn, struct redisContext *rdb, + uint8_t instance, const knot_dname_t *zone_name, + bool incremental); + +/*! + * \brief Write single RRset to zone DB. + * + * \param txn Transaction to write into. + * \param rr RRset to write. + * + * \note In case of incremental transaction, txn->removals signals if the RRset should be added to removals or additions. + * + * \return KNOT_E* + */ +int zone_redis_write_rrset(zone_redis_txn_t *txn, const knot_rrset_t *rr); + +/*! + * \brief Calls zone_redis_write_rrset() for all RRsets in a node. + */ +int zone_redis_write_node(zone_redis_txn_t *txn, const zone_node_t *node); + +/*! + * \brief Commit a zone DB transaction. + */ +int zone_redis_txn_commit(zone_redis_txn_t *txn); + +/*! + * \brief Abort a zone DB transaction. + * + * \note You might want to ignore the return code. + */ +int zone_redis_txn_abort(zone_redis_txn_t *txn); diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index b05f703ac2..c0e7342822 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -101,6 +101,7 @@ enum knot_error { KNOT_ECPUCOMPAT, KNOT_EMODINVAL, KNOT_EEXTERNAL, + KNOT_ERDB, KNOT_GENERAL_ERROR = -900, diff --git a/src/libknot/error.c b/src/libknot/error.c index c82a5bbc37..37f3a1c8fe 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -100,6 +100,7 @@ static const struct error errors[] = { { KNOT_ECPUCOMPAT, "incompatible CPU architecture" }, { KNOT_EMODINVAL, "invalid module" }, { KNOT_EEXTERNAL, "external validation failed" }, + { KNOT_ERDB, "zone database error" }, { KNOT_GENERAL_ERROR, "unknown general error" }, diff --git a/tests-extra/tests/redis/basic/test.py b/tests-extra/tests/redis/basic/test.py index aff00c497b..c140f094d5 100644 --- a/tests-extra/tests/redis/basic/test.py +++ b/tests-extra/tests/redis/basic/test.py @@ -3,6 +3,7 @@ '''Test master-slave-like replication using Redis database.''' from dnstest.test import Test +from dnstest.utils import * t = Test(redis=True) @@ -25,22 +26,76 @@ master.zones_wait(zones) -master.ctl("zone-flush", wait=True) -#slave.ctl("zone-reload") - +# Test zone stored by master and loaded by slave serials = slave.zones_wait(zones) t.xfr_diff(master, slave, zones) +# Test incremental change stored by master and loaded by slave for z in zones: up = master.update(z) up.add("suppnot1", 3600, "A", "1.2.3.4") + up.delete("mail", "A", "192.0.2.3") + up.send() + +serials2 = slave.zones_wait(zones, serials) +t.xfr_diff(master, slave, zones) # AXFR diff +t.xfr_diff(master, slave, zones, serials) # IXFR diff +for z in zones: + resp = slave.dig("suppnot1." + z.name, "A") + resp.check(rcode="NOERROR", rdata="1.2.3.4") + +# Test yet another incremental change +for z in zones: + up = master.update(z) + up.delete("suppnot1", "A", "1.2.3.4") + up.add("suppnot1", 1800, "A", "1.2.3.5") up.send() -t.sleep(2) -master.ctl("zone-flush", wait=True) -#slave.ctl("zone-reload") +serials3 = slave.zones_wait(zones, serials2) +t.xfr_diff(master, slave, zones) +t.xfr_diff(master, slave, zones, serials) +t.xfr_diff(master, slave, zones, serials2) +for z in zones: + resp = slave.dig("suppnot1." + z.name, "A") + resp.check(rcode="NOERROR", nordata="1.2.3.4", rdata="1.2.3.5", ttl=1800) + +# Test no change +slave.ctl("zone-reload", wait=True) +uptodate_log = slave.log_search_count("database is up-to-date") +if uptodate_log != len(zones): + set_err("UP-TO-DATE LOGGED %dx" % uptodate_log) -slave.zones_wait(zones, serials) +# Add to DB manually. Slave will diverge from master. +for z in zones: + txn = t.redis.cli("knot.upd.begin", z.name, master.zones[z.name].redis_out) + r = t.redis.cli("knot.upd.remove", z.name, txn, "example.com. 3600 in soa dns1.example.com. hostmaster.example.com. %d 10800 3600 1209600 7200" % serials3[z.name]) + r = t.redis.cli("knot.upd.add", z.name, txn, "example.com. 3600 in soa dns1.example.com. hostmaster.example.com. %d 10800 3600 1209600 7200" % (serials3[z.name] + 1)) + r = t.redis.cli("knot.upd.add", z.name, txn, "txtadd 3600 A 1.2.3.4") + r = t.redis.cli("knot.upd.commit", z.name, txn) + + r = t.redis.cli("knot.upd.load", z.name, master.zones[z.name].redis_out, str(serials3[z.name])) + if not "txtadd" in r: + set_err("NO TXTADD IN UPD") + +serials4 = slave.zones_wait(zones, serials3) +for z in zones: + resp = slave.dig("txtadd." + z.name, "A") + resp.check(rcode="NOERROR", rdata="1.2.3.4") + +# Update master with double SOA increment, it shall overwrite with greater serial and different contents. +for z in zones: + up = master.update(z) + up.add(z.name, 3600, "SOA", "dns1.example.com. hostmaster.example.com. %d 10800 3600 1209600 7200" % (serials3[z.name] + 2)) + up.delete("suppnot1", "A", "1.2.3.5") + up.add("suppnot1", 900, "A", "1.2.3.5") + up.send() + +serials5 = slave.zones_wait(zones, serials4) +for z in zones: + resp = slave.dig("txtadd." + z.name, "A") + resp.check(rcode="NXDOMAIN", nordata="1.2.3.4") + resp = slave.dig("suppnot1." + z.name, "A") + resp.check(rcode="NOERROR", nordata="1.2.3.4", rdata="1.2.3.5", ttl=900) t.xfr_diff(master, slave, zones) # SOA serial logic rotation From e1bdc3eda3a96e09197838a930b1c0055fdb5ade Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 28 Jul 2025 17:03:37 +0200 Subject: [PATCH 101/675] redis: load from DB within zone loading --- src/knot/events/handlers/load.c | 106 ++++++++++++++-- src/knot/zone/redis.c | 215 +++++++++++++++++++++++++++++++- src/knot/zone/redis.h | 67 ++++++++++ 3 files changed, 376 insertions(+), 12 deletions(-) diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 3073a7af22..3fe68262bd 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -14,6 +14,7 @@ #include "knot/events/handlers.h" #include "knot/events/replan.h" #include "knot/zone/digest.h" +#include "knot/zone/redis.h" #include "knot/zone/reverse.h" #include "knot/zone/serial.h" #include "knot/zone/zone-diff.h" @@ -44,11 +45,18 @@ static bool allowed_xfr(conf_t *conf, const zone_t *zone) return false; } +static int upd_add_rem(const knot_rrset_t *rr, bool add, void *ctx) +{ + return add ? zone_update_add(ctx, rr) : zone_update_remove(ctx, rr); +} + int event_load(conf_t *conf, zone_t *zone) { zone_update_t up = { 0 }; zone_contents_t *journal_conts = NULL, *zf_conts = NULL; bool old_contents_exist = (zone->contents != NULL), zone_in_journal_exists = false; + const char *zone_src = "zone file"; + struct redisContext *db_ctx = NULL; conf_val_t val = conf_zone_get(conf, C_JOURNAL_CONTENT, zone->name); unsigned load_from = conf_opt(&val); @@ -98,8 +106,76 @@ int event_load(conf_t *conf, zone_t *zone) unsigned digest_alg = conf_opt(&val); bool update_zonemd = (digest_alg != ZONE_DIGEST_NONE); + uint8_t db_instance = 0; + bool db_enabled = conf_zone_rdb_enabled(conf, zone->name, true, &db_instance); + if (db_enabled) { + zone_src = "database"; + db_ctx = zone_redis_connect(conf); + } + + // Attempt to load changes from database. If fails, load full zone from there later. + if (db_enabled && (old_contents_exist || journal_conts != NULL) && + zone->cat_members == NULL && EMPTY_LIST(zone->include_from) && + zf_from != ZONEFILE_LOAD_DIFSE) { + zone_redis_err_t err; + uint32_t db_serial = 0; + ret = zone_redis_serial(db_ctx, db_instance, zone->name, &db_serial, err); + if (ret == KNOT_EOK && old_contents_exist && db_serial == zone_contents_serial(zone->contents)) { + log_zone_info(zone->name, "database is up-to-date, serial %u", db_serial); + goto cleanup; + } else if (ret == KNOT_EOK && journal_conts != NULL && db_serial == zone_contents_serial(journal_conts)) { + log_zone_info(zone->name, "database is up-to-date with zone-in-journal, serial %u", db_serial); + assert(!old_contents_exist); + db_enabled = false; // skip both zone_redis_load_upd() and zone_redis_load(), just load from journal. Also skip zone_update_semcheck() later as we do not in fact load from DB. + } else if (ret != KNOT_EOK) { + log_zone_error(zone->name, "failed to get database status (%s)", + ret == KNOT_ERDB ? err : knot_strerror(ret)); + goto cleanup; // NOTE this includes the case of KNOT_ENOENT, where DB load is configured but not available + } + + if (old_contents_exist) { + ret = zone_update_init(&up, zone, UPDATE_INCREMENTAL); + } else { + ret = zone_update_from_contents(&up, zone, journal_conts, UPDATE_HYBRID); + } + if (ret != KNOT_EOK) { + log_zone_error(zone->name, "failed to initialize update (%s)", knot_strerror(ret)); + goto cleanup; + } + if (db_enabled) { + uint32_t serial_current = zone_contents_serial(up.new_cont); + ret = zone_redis_load_upd(db_ctx, db_instance, zone->name, serial_current, + upd_add_rem, &up, err); + if (ret == KNOT_EOK) { + log_zone_info(zone->name, "database updates loaded, instance %u, serial %u -> %u", + db_instance, serial_current, zone_contents_serial(up.new_cont)); + } + } + if (ret == KNOT_EOK) { + goto load_end; // all OK, skip zone_redis_load() and proceed with incremental zone_update + } else if (ret == KNOT_ERDB) { + log_zone_error(zone->name, "failed to load updates from database (%s)", err); + goto cleanup; // Redis error, surrender + } else { + zone_update_clear(&up); + ret = KNOT_EOK; // just unable to apply DB changesets atop running zone version, go ahead with full zone load from DB + } + } + // If configured, attempt to load zonefile. - if (zf_from != ZONEFILE_LOAD_NONE && zone->cat_members == NULL) { + if ((zf_from != ZONEFILE_LOAD_NONE || db_enabled) && zone->cat_members == NULL) { + if (db_enabled) { + zone_redis_err_t err; + ret = zone_redis_load(db_ctx, db_instance, zone->name, &zf_conts, err); + if (ret != KNOT_EOK) { + log_zone_error(zone->name, "failed to load from database (%s)", + ret == KNOT_ERDB ? err : knot_strerror(ret)); + goto cleanup; + } + zone->zonefile.serial = zone_contents_serial(zf_conts); // for logging + goto zonefile_loaded; + } + struct timespec mtime; char *filename = conf_zonefile(conf, zone->name); ret = zonefile_exists(filename, &mtime); @@ -136,6 +212,7 @@ int event_load(conf_t *conf, zone_t *zone) zone->zonefile.exists = (zf_conts != NULL); zone->zonefile.mtime = mtime; +zonefile_loaded: ; // If configured, add reverse records to zone contents const knot_dname_t *fail_fwd = NULL; ret = zones_reverse(&zone->include_from, zf_conts, &fail_fwd); @@ -155,12 +232,14 @@ int event_load(conf_t *conf, zone_t *zone) uint32_t serial = zone_contents_serial(relevant); uint32_t set = serial_next(serial, conf, zone->name, SERIAL_POLICY_AUTO, 1); zone_contents_set_soa_serial(zf_conts, set); - log_zone_info(zone->name, "zone file parsed, serial updated %u -> %u", - zone->zonefile.serial, set); + log_zone_info(zone->name, "%s loaded%s%.0u, serial updated %u -> %u", + zone_src, (db_enabled ? ", instance " : ""), + db_instance, zone->zonefile.serial, set); zone->zonefile.serial = set; } else { - log_zone_info(zone->name, "zone file parsed, serial %u", - zone->zonefile.serial); + log_zone_info(zone->name, "%s loaded%s%.0u, serial %u", + zone_src, (db_enabled ? ", instance " : ""), + db_instance, zone->zonefile.serial); } // If configured and appliable to zonefile, load journal changes. @@ -277,13 +356,13 @@ int event_load(conf_t *conf, zone_t *zone) } break; case KNOT_ESEMCHECK: - log_zone_warning(zone->name, "zone file changed without SOA serial update"); + log_zone_warning(zone->name, "%s changed without SOA serial update", zone_src); break; case KNOT_ERANGE: if (serial_compare(zone->zonefile.serial, zone_contents_serial(zone->contents)) == SERIAL_INCOMPARABLE) { - log_zone_warning(zone->name, "zone file changed with incomparable SOA serial"); + log_zone_warning(zone->name, "%s changed with incomparable SOA serial", zone_src); } else { - log_zone_warning(zone->name, "zone file changed with decreased SOA serial"); + log_zone_warning(zone->name, "%s changed with decreased SOA serial", zone_src); } break; } @@ -296,6 +375,13 @@ int event_load(conf_t *conf, zone_t *zone) zf_conts = NULL; journal_conts = NULL; + if (db_enabled) { + ret = zone_update_semcheck(conf, &up); + if (ret != KNOT_EOK) { + goto cleanup; + } + } + ret = zone_update_verify_digest(conf, &up); if (ret != KNOT_EOK) { goto cleanup; @@ -322,7 +408,7 @@ int event_load(conf_t *conf, zone_t *zone) log_zone_warning(zone->name, "with automatic DNSSEC signing and outgoing transfers enabled, " "'zonefile-load: difference' should be set to avoid malformed " - "IXFR after manual zone file update"); + "IXFR after manual %s update", zone_src); } } else if (update_zonemd) { /* Don't update ZONEMD if no change and ZONEMD is up-to-date. @@ -426,6 +512,7 @@ int event_load(conf_t *conf, zone_t *zone) if (!zone_timers_serial_notified(&zone->timers, new_serial)) { zone_schedule_notify(conf, zone, 0); } + zone_redis_disconnect(db_ctx); zone_skip_free(&skip); zone->started = true; @@ -438,6 +525,7 @@ int event_load(conf_t *conf, zone_t *zone) zone_update_clear(&up); zone_contents_deep_free(zf_conts); zone_contents_deep_free(journal_conts); + zone_redis_disconnect(db_ctx); zone_skip_free(&skip); zone->started = true; diff --git a/src/knot/zone/redis.c b/src/knot/zone/redis.c index e98ddd794f..7de92b3d1f 100644 --- a/src/knot/zone/redis.c +++ b/src/knot/zone/redis.c @@ -3,12 +3,13 @@ * For more information, see */ -#include "knot/zone/redis.h" - #include -#ifdef ENABLE_REDIS +#include "knot/zone/redis.h" +#include "knot/zone/contents.h" +#ifdef ENABLE_REDIS +#include "contrib/openbsd/strlcpy.h" #include "knot/common/hiredis.h" struct redisContext *zone_redis_connect(conf_t *conf) @@ -169,6 +170,192 @@ int zone_redis_txn_abort(zone_redis_txn_t *txn) return KNOT_EOK; } +int zone_redis_serial(struct redisContext *rdb, uint8_t instance, + const knot_dname_t *zone, uint32_t *serial, + zone_redis_err_t err) +{ + if (rdb == NULL) { + return KNOT_NET_ECONNECT; + } else if (zone == NULL || serial == NULL || err == NULL) { + return KNOT_EINVAL; + } + + redisReply *reply = redisCommand(rdb, RDB_CMD_ZONE_EXISTS " %b %b", + zone, knot_dname_size(zone), + &instance, sizeof(instance)); + int ret = check_reply(rdb, reply, REDIS_REPLY_INTEGER, err); + if (ret != KNOT_EOK) { + freeReplyObject(reply); + return ret; + } + + *serial = reply->integer; + freeReplyObject(reply); + + return KNOT_EOK; +} + +static int process_rdb_rr(zone_contents_t *contents, redisReply *data) +{ + if (data->type != REDIS_REPLY_ARRAY || data->elements != 5) { + return KNOT_EMALF; + } + + knot_dname_t *r_owner = (knot_dname_t *)data->element[0]->str; + uint16_t r_type = data->element[1]->integer; + uint32_t r_ttl = data->element[2]->integer; + knot_rdataset_t r_data = { + .count = data->element[3]->integer, + .size = data->element[4]->len, + .rdata = (knot_rdata_t *)data->element[4]->str + }; + + knot_dname_t *owner = knot_dname_copy(r_owner, NULL); + if (owner == NULL) { + return KNOT_ENOMEM; + } + + knot_rrset_t rrs; + knot_rrset_init(&rrs, owner, r_type, KNOT_CLASS_IN, r_ttl); + + int ret = knot_rdataset_copy(&rrs.rrs, &r_data, NULL); + if (ret == KNOT_EOK) { + zone_node_t *n = NULL; + ret = zone_contents_add_rr(contents, &rrs, &n); + } + + knot_rrset_clear(&rrs, NULL); + + return ret; +} + +int zone_redis_load(struct redisContext *rdb, uint8_t instance, + const knot_dname_t *zone_name, struct zone_contents **out, + zone_redis_err_t err) +{ + if (rdb == NULL) { + return KNOT_NET_ECONNECT; + } else if (zone_name == NULL || out == NULL || err == NULL) { + return KNOT_EINVAL; + } + + redisReply *reply = redisCommand(rdb, RDB_CMD_ZONE_LOAD " %b %b", + zone_name, knot_dname_size(zone_name), + &instance, sizeof(instance)); + int ret = check_reply(rdb, reply, REDIS_REPLY_ARRAY, err); + if (ret != KNOT_EOK) { + freeReplyObject(reply); + return ret; + } + + zone_contents_t *cont = zone_contents_new(zone_name, true); + if (cont == NULL) { + freeReplyObject(reply); + return KNOT_ENOMEM; + } + + for (size_t i = 0; i < reply->elements; i++) { + redisReply *data = reply->element[i]; + ret = process_rdb_rr(cont, data); + if (ret != KNOT_EOK) { + break; + } + } + + if (ret == KNOT_EOK) { + *out = cont; + } else { + zone_contents_deep_free(cont); + } + + freeReplyObject(reply); + + return ret; +} + +static int process_rdb_upd(zone_redis_load_upd_cb_t cb, void *ctx, redisReply *data) +{ + if (data->type != REDIS_REPLY_ARRAY || data->elements != 8) { + return KNOT_EMALF; + } + + knot_dname_t *r_owner = (knot_dname_t *)data->element[0]->str; + uint16_t r_type = data->element[1]->integer; + uint32_t r_ttl_rem = data->element[2]->integer; + uint32_t r_ttl_add = data->element[3]->integer; + knot_rdataset_t r_data_rem = { + .count = data->element[4]->integer, + .size = data->element[5]->len, + .rdata = (knot_rdata_t *)data->element[5]->str + }; + knot_rdataset_t r_data_add = { + .count = data->element[6]->integer, + .size = data->element[7]->len, + .rdata = (knot_rdata_t *)data->element[7]->str + }; + + knot_dname_t *owner = knot_dname_copy(r_owner, NULL); + if (owner == NULL) { + return KNOT_ENOMEM; + } + + knot_rrset_t rrs; + knot_rrset_init(&rrs, owner, r_type, KNOT_CLASS_IN, r_ttl_rem); + + int ret = knot_rdataset_copy(&rrs.rrs, &r_data_rem, NULL); + if (ret == KNOT_EOK) { + ret = cb(&rrs, false, ctx); + } + if (ret == KNOT_EOK) { + knot_rdataset_clear(&rrs.rrs, NULL); + ret = knot_rdataset_copy(&rrs.rrs, &r_data_add, NULL); + rrs.ttl = r_ttl_add; + } + if (ret == KNOT_EOK) { + ret = cb(&rrs, true, ctx); + } + + knot_rrset_clear(&rrs, NULL); + + return ret; +} + +int zone_redis_load_upd(struct redisContext *rdb, uint8_t instance, + const knot_dname_t *zone_name, uint32_t soa_from, + zone_redis_load_upd_cb_t cb, void *ctx, + zone_redis_err_t err) +{ + if (rdb == NULL) { + return KNOT_NET_ECONNECT; + } else if (zone_name == NULL || cb == NULL || err == NULL) { + return KNOT_EINVAL; + } + + redisReply *reply = redisCommand(rdb, RDB_CMD_UPD_LOAD " %b %b %d", + zone_name, knot_dname_size(zone_name), + &instance, sizeof(instance), soa_from); + int ret = check_reply(rdb, reply, REDIS_REPLY_ARRAY, err); + if (ret != KNOT_EOK) { + freeReplyObject(reply); + return ret; + } + + for (size_t i = 0; i < reply->elements && ret == KNOT_EOK; i++) { + redisReply *changeset = reply->element[i]; + for (size_t j = 0; j < changeset->elements && ret == KNOT_EOK; j++) { + redisReply *data = changeset->element[j]; + ret = process_rdb_upd(cb, ctx, data); + if (ret != KNOT_EOK) { + break; + } + } + } + + freeReplyObject(reply); + + return ret; +} + #else // ENABLE_REDIS struct redisContext *zone_redis_connect(conf_t *conf) @@ -208,4 +395,26 @@ int zone_redis_txn_abort(zone_redis_txn_t *txn) return KNOT_ENOTSUP; } +int zone_redis_serial(struct redisContext *rdb, uint8_t instance, + const knot_dname_t *zone, uint32_t *serial, + zone_redis_err_t err) +{ + return KNOT_ENOTSUP; +} + +int zone_redis_load(struct redisContext *rdb, uint8_t instance, + const knot_dname_t *zone_name, struct zone_contents **out, + zone_redis_err_t err) +{ + return KNOT_ENOTSUP; +} + +int zone_redis_load_upd(struct redisContext *rdb, uint8_t instance, + const knot_dname_t *zone_name, uint32_t soa_from, + zone_redis_load_upd_cb_t cb, void *ctx, + zone_redis_err_t err) +{ + return KNOT_ENOTSUP; +} + #endif // ENABLE_REDIS diff --git a/src/knot/zone/redis.h b/src/knot/zone/redis.h index 203c06cbb8..9b347cd72c 100644 --- a/src/knot/zone/redis.h +++ b/src/knot/zone/redis.h @@ -14,6 +14,7 @@ #else // ENABLE_REDIS struct redisContext; #endif // ENABLE_REDIS +struct zone_contents; typedef char zone_redis_err_t[128]; @@ -80,3 +81,69 @@ int zone_redis_txn_commit(zone_redis_txn_t *txn); * \note You might want to ignore the return code. */ int zone_redis_txn_abort(zone_redis_txn_t *txn); + +/*! + * \brief Check if the zone exists in the database+instance and read out SOA serial. + * + * \param rdb Redis context (just pass zone_redis_connect()). + * \param instance Zone instance number (from configuration). + * \param zone Zone name. + * \param serial Output: SOA serial of stored zone. + * \param err Output: error message in case of Redis error. + * + * \retval KNOT_ERDB Redis-related error with err set. + * \return KNOT_E* + */ +int zone_redis_serial(struct redisContext *rdb, uint8_t instance, + const knot_dname_t *zone, uint32_t *serial, + zone_redis_err_t err); + +/*! + * \brief Load whole zone contents from Redis. + * + * \param rdb Redis context (just pass zone_redis_connect()). + * \param instance Zone instance number (from configuration). + * \param zone_name Zone name. + * \param out Output: zone contents. + * \param err Output: error message in case of Redis error. + * + * \retval KNOT_ERDB Redis-related error with err set. + * \return KNOT_E* + */ +int zone_redis_load(struct redisContext *rdb, uint8_t instance, + const knot_dname_t *zone_name, struct zone_contents **out, + zone_redis_err_t err); + +/*! + * \brief Callback type for handling data read by zone_redis_load_upd(). + * + * \param rr Loaded RRset. + * \param add The RRset is an addition in the changeset (removal otherwise). + * \param ctx Transparent context passed to zone_redis_load_upd(). + * + * \return KNOT_E* + */ +typedef int (*zone_redis_load_upd_cb_t)(const knot_rrset_t *rr, bool add, void *ctx); + +/*! + * \brief Load one or more changesets from Redis. + * + * \param rdb Redis context (just pass zone_redis_connect()). + * \param instance Zone instance number (from configuration). + * \param zone_name Zone name. + * \param soa_from SOA serial to start at. + * \param cb Callback to be called for each removed/added RRset. + * \param ctx Transparent context for the callback. + * \param err Output: error message in case of Redis error. + * + * \note In case of error, the callback might have been called several times, + * so that the real target structure (zone_update or whatever) might + * contain partial invalid data. + * + * \retval KNOT_ERDB Redis-related error with err set. + * \return KNOT_E* + */ +int zone_redis_load_upd(struct redisContext *rdb, uint8_t instance, + const knot_dname_t *zone_name, uint32_t soa_from, + zone_redis_load_upd_cb_t cb, void *ctx, + zone_redis_err_t err); From 782b2a7cae6e56c8d7a621e906e0692443db172a Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 11 Aug 2025 15:45:13 +0200 Subject: [PATCH 102/675] redis: keep DB conns open and stored in conn_pool --- src/contrib/conn_pool.c | 1 + src/contrib/conn_pool.h | 1 + src/knot/common/hiredis.c | 23 ++++++++++++++++++----- src/knot/common/hiredis.h | 2 +- src/knot/events/handlers/load.c | 4 ++-- src/knot/server/server.c | 29 ++++++++++++++++++++++++++++- src/knot/updates/zone-update.c | 4 ++-- src/knot/zone/redis.c | 27 ++++++++++++++++++++++++--- src/knot/zone/redis.h | 7 ++++++- 9 files changed, 83 insertions(+), 15 deletions(-) diff --git a/src/contrib/conn_pool.c b/src/contrib/conn_pool.c index 2cc4e397e4..3832eff243 100644 --- a/src/contrib/conn_pool.c +++ b/src/contrib/conn_pool.c @@ -17,6 +17,7 @@ conn_pool_t *global_conn_pool = NULL; conn_pool_t *global_sessticket_pool = NULL; +conn_pool_t *global_redis_pool = NULL; const conn_pool_fd_t CONN_POOL_FD_INVALID = -1; diff --git a/src/contrib/conn_pool.h b/src/contrib/conn_pool.h index 3d81f4b520..a18858292d 100644 --- a/src/contrib/conn_pool.h +++ b/src/contrib/conn_pool.h @@ -37,6 +37,7 @@ typedef struct { extern conn_pool_t *global_conn_pool; extern conn_pool_t *global_sessticket_pool; // pool for outgoing QUIC connection session tickets +extern conn_pool_t *global_redis_pool; // pool for connections to Redis database /*! * \brief Allocate connection pool. diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c index ca72df5ec6..0590687b4b 100644 --- a/src/knot/common/hiredis.c +++ b/src/knot/common/hiredis.c @@ -4,7 +4,7 @@ */ #include "knot/common/hiredis.h" - +#include "contrib/conn_pool.h" #include "contrib/sockaddr.h" #include "knot/common/log.h" #include "libknot/errcode.h" @@ -134,6 +134,11 @@ redisContext *rdb_connect(conf_t *conf) conf_val_t db_listen = conf_db_param(conf, C_ZONE_DB_LISTEN); struct sockaddr_storage addr = conf_addr(&db_listen, NULL); + redisContext *rdb = (void *)conn_pool_get(global_redis_pool, &addr, &addr); + if (rdb != NULL && (intptr_t)rdb != CONN_POOL_FD_INVALID) { + return rdb; + } + int port = sockaddr_port(&addr); sockaddr_port_set(&addr, 0); @@ -144,7 +149,6 @@ redisContext *rdb_connect(conf_t *conf) const struct timeval timeout = { 10, 0 }; - redisContext *rdb; if (addr.ss_family == AF_UNIX) { rdb = redisConnectUnixWithTimeout(addr_str, timeout); } else { @@ -223,10 +227,19 @@ redisContext *rdb_connect(conf_t *conf) return rdb; } -void rdb_disconnect(redisContext* rdb) +void rdb_disconnect(redisContext *rdb, bool pool_save) { - if (rdb != NULL) { - // TODO: is anything more needed for TLS case? + if (rdb != NULL && pool_save) { + struct sockaddr_storage addr = { 0 }; + // struct redisContext seems not to have a way to read out sockaddr, only a string, so try-and-error parse the string + if (sockaddr_set(&addr, AF_INET6, rdb->tcp.host, rdb->tcp.port) == KNOT_EOK || + sockaddr_set(&addr, AF_INET, rdb->tcp.host, rdb->tcp.port) == KNOT_EOK || + sockaddr_set(&addr, AF_UNIX, rdb->unix_sock.path, 0) == KNOT_EOK) { + rdb = (void *)conn_pool_put(global_redis_pool, &addr, &addr, (intptr_t)rdb); + } + } + + if (rdb != NULL && (intptr_t)rdb != CONN_POOL_FD_INVALID) { redisFree(rdb); } } diff --git a/src/knot/common/hiredis.h b/src/knot/common/hiredis.h index 9064ed7dfc..e432e87bf4 100644 --- a/src/knot/common/hiredis.h +++ b/src/knot/common/hiredis.h @@ -15,6 +15,6 @@ redisContext *rdb_connect(conf_t *conf); -void rdb_disconnect(redisContext* rdb); +void rdb_disconnect(redisContext *rdb, bool pool_save); bool rdb_compatible(redisContext *rdb); diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 3fe68262bd..9352d06891 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -512,7 +512,7 @@ zonefile_loaded: ; if (!zone_timers_serial_notified(&zone->timers, new_serial)) { zone_schedule_notify(conf, zone, 0); } - zone_redis_disconnect(db_ctx); + zone_redis_disconnect(db_ctx, true); zone_skip_free(&skip); zone->started = true; @@ -525,7 +525,7 @@ zonefile_loaded: ; zone_update_clear(&up); zone_contents_deep_free(zf_conts); zone_contents_deep_free(journal_conts); - zone_redis_disconnect(db_ctx); + zone_redis_disconnect(db_ctx, true); zone_skip_free(&skip); zone->started = true; diff --git a/src/knot/server/server.c b/src/knot/server/server.c index f6d73f8e47..3b62af2744 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -31,6 +31,7 @@ #include "knot/server/udp-handler.h" #include "knot/server/tcp-handler.h" #include "knot/updates/acl.h" +#include "knot/zone/redis.h" #include "knot/zone/timers.h" #include "knot/zone/zonedb-load.h" #include "knot/worker/pool.h" @@ -52,6 +53,7 @@ #endif #define SESSION_TICKET_POOL_TIMEOUT 1200 +#define REDIS_CONN_POOL_TIMEOUT (4 * 60) #define QUIC_LOG "QUIC/TLS, " @@ -972,7 +974,7 @@ static int rdb_listener_run(struct dthread *thread) freeReplyObject(reply); } - rdb_disconnect(s->rdb_ctx); + rdb_disconnect(s->rdb_ctx, false); s->rdb_ctx = NULL; return KNOT_EOK; @@ -1101,6 +1103,8 @@ void server_deinit(server_t *server) global_conn_pool = NULL; conn_pool_deinit(global_sessticket_pool); global_sessticket_pool = NULL; + conn_pool_deinit(global_redis_pool); + global_redis_pool = NULL; knot_unreachables_deinit(&global_unreachables); knot_creds_free(server->quic_creds); @@ -1658,6 +1662,18 @@ static void free_sess_ticket(intptr_t ptr) } } +static void free_redis_conn(intptr_t ptr) +{ + if (ptr != CONN_POOL_FD_INVALID) { + zone_redis_disconnect((void *)ptr, false); + } +} + +static bool invalid_redis_conn(intptr_t ptr) +{ + return ptr == CONN_POOL_FD_INVALID || !zone_redis_ping((void *)ptr); +} + static int reconfigure_remote_pool(conf_t *conf, server_t *server) { conf_val_t val = conf_get(conf, C_SRV, C_RMT_POOL_LIMIT); @@ -1697,6 +1713,17 @@ static int reconfigure_remote_pool(conf_t *conf, server_t *server) hash = curr_hash; } + val = conf_get(conf, C_DB, C_ZONE_DB_LISTEN); + if (global_redis_pool == NULL && val.code == KNOT_EOK) { + size_t bg_wrkrs = conf_bg_threads(conf); + conn_pool_t *new_pool = conn_pool_init(bg_wrkrs, REDIS_CONN_POOL_TIMEOUT, + free_redis_conn, invalid_redis_conn); + if (new_pool == NULL) { + return KNOT_ENOMEM; + } + global_redis_pool = new_pool; + } + val = conf_get(conf, C_SRV, C_RMT_RETRY_DELAY); int delay_ms = conf_int(&val); if (global_unreachables == NULL && delay_ms > 0) { diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index f9e11d9b87..9dcb4a31c2 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -734,7 +734,7 @@ static int commit_redis(conf_t *conf, zone_update_t *update) zone_redis_txn_t txn; int ret = zone_redis_txn_begin(&txn, db_ctx, db_instance, update->zone->name, incremental); if (ret != KNOT_EOK) { - zone_redis_disconnect(db_ctx); + zone_redis_disconnect(db_ctx, true); return ret; } @@ -765,7 +765,7 @@ static int commit_redis(conf_t *conf, zone_update_t *update) db_instance, zone_contents_serial(update->new_cont)); } - zone_redis_disconnect(db_ctx); + zone_redis_disconnect(db_ctx, true); return ret; } diff --git a/src/knot/zone/redis.c b/src/knot/zone/redis.c index 7de92b3d1f..d287fc56c5 100644 --- a/src/knot/zone/redis.c +++ b/src/knot/zone/redis.c @@ -17,9 +17,25 @@ struct redisContext *zone_redis_connect(conf_t *conf) return rdb_connect(conf); } -void zone_redis_disconnect(struct redisContext *ctx) +void zone_redis_disconnect(struct redisContext *ctx, bool pool_save) { - return rdb_disconnect(ctx); + return rdb_disconnect(ctx, pool_save); +} + +bool zone_redis_ping(struct redisContext *ctx) +{ + if (ctx == NULL) { + return false; + } + + redisReply *reply = redisCommand(ctx, "PING"); + bool res = (reply != NULL && + reply->type == REDIS_REPLY_STATUS && + strcmp(reply->str, "PONG") == 0); + + freeReplyObject(reply); + + return res; } static int check_reply(struct redisContext *rdb, redisReply *reply, @@ -363,11 +379,16 @@ struct redisContext *zone_redis_connect(conf_t *conf) return NULL; } -void zone_redis_disconnect(struct redisContext *ctx) +void zone_redis_disconnect(struct redisContext *ctx, bool pool_save) { return; } +bool zone_redis_ping(struct redisContext *ctx) +{ + return false; +} + int zone_redis_txn_begin(zone_redis_txn_t *txn, struct redisContext *rdb, uint8_t instance, const knot_dname_t *zone_name, bool incremental) diff --git a/src/knot/zone/redis.h b/src/knot/zone/redis.h index 9b347cd72c..8be96dfc75 100644 --- a/src/knot/zone/redis.h +++ b/src/knot/zone/redis.h @@ -36,7 +36,12 @@ typedef struct { * \brief Wrappers to rdb_connect and rdb_disconnect not needing #ifdef ENABLE_REDIS around. */ struct redisContext *zone_redis_connect(conf_t *conf); -void zone_redis_disconnect(struct redisContext *ctx); +void zone_redis_disconnect(struct redisContext *ctx, bool pool_save); + +/*! + * \brief Check if the conection to the DB is still alive. + */ +bool zone_redis_ping(struct redisContext *ctx); /*! * \brief Start a writing stransaction into Redis zone database. From b417798f6285d37a996a18eabac3ede98636164b Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 4 Sep 2025 10:15:10 +0200 Subject: [PATCH 103/675] redis: write RRsets in batches to reduce processing overhead --- src/knot/zone/redis.c | 57 ++++++++++++++++++++++++++++++++++--------- src/knot/zone/redis.h | 2 ++ 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/src/knot/zone/redis.c b/src/knot/zone/redis.c index d287fc56c5..e380476c99 100644 --- a/src/knot/zone/redis.c +++ b/src/knot/zone/redis.c @@ -12,6 +12,8 @@ #include "contrib/openbsd/strlcpy.h" #include "knot/common/hiredis.h" +#define UNREAD_MAX 20 // Redis write batch length. + struct redisContext *zone_redis_connect(conf_t *conf) { return rdb_connect(conf); @@ -77,6 +79,7 @@ int zone_redis_txn_begin(zone_redis_txn_t *txn, struct redisContext *rdb, txn->origin_len = knot_dname_size(zone_name); txn->incremental = incremental; txn->removals = false; + txn->unread = 0; txn->err[0] = '\0'; const char *cmd = txn->incremental ? RDB_CMD_UPD_BEGIN " %b %b" : @@ -100,6 +103,33 @@ int zone_redis_txn_begin(zone_redis_txn_t *txn, struct redisContext *rdb, return KNOT_EOK; } +static int finish_unread(zone_redis_txn_t *txn, size_t max) +{ + if (txn->unread < max) { + return KNOT_EOK; + } + + int ret = KNOT_EOK; + + redisReply *reply; + for (size_t i = 0; i < max; i++) { + if (redisGetReply(txn->rdb, (void **)&reply) == REDIS_OK) { + if (ret == KNOT_EOK) { + ret = check_reply(txn->rdb, reply, REDIS_REPLY_STATUS, txn->err); + } + freeReplyObject(reply); + } else { + if (ret == KNOT_EOK) { + ret = check_reply(txn->rdb, NULL, REDIS_REPLY_ERROR, txn->err); + } + } + } + + txn->unread -= max; + + return ret; +} + int zone_redis_write_rrset(zone_redis_txn_t *txn, const knot_rrset_t *rr) { if (txn == NULL || rr == NULL || (txn->removals && !txn->incremental)) { @@ -110,19 +140,17 @@ int zone_redis_write_rrset(zone_redis_txn_t *txn, const knot_rrset_t *rr) txn->removals ? RDB_CMD_UPD_REMOVE " %b %b %b %d %d %d %b" : RDB_CMD_UPD_ADD " %b %b %b %d %d %d %b"; - redisReply *reply = redisCommand(txn->rdb, cmd, txn->origin, txn->origin_len, - &txn->rdb_txn, sizeof(txn->rdb_txn), - rr->owner, knot_dname_size(rr->owner), rr->type, rr->ttl, - rr->rrs.count, rr->rrs.rdata, rr->rrs.size); - int ret = check_reply(txn->rdb, reply, REDIS_REPLY_STATUS, txn->err); - if (ret != KNOT_EOK) { - freeReplyObject(reply); - return ret; + int ret = redisAppendCommand(txn->rdb, cmd, txn->origin, txn->origin_len, + &txn->rdb_txn, sizeof(txn->rdb_txn), + rr->owner, knot_dname_size(rr->owner), rr->type, rr->ttl, + rr->rrs.count, rr->rrs.rdata, (size_t)rr->rrs.size); + if (ret != REDIS_OK) { + return check_reply(txn->rdb, NULL, REDIS_REPLY_ERROR, txn->err); } - freeReplyObject(reply); + txn->unread++; - return KNOT_EOK; + return finish_unread(txn, UNREAD_MAX); } int zone_redis_write_node(zone_redis_txn_t *txn, const zone_node_t *node) @@ -146,12 +174,17 @@ int zone_redis_txn_commit(zone_redis_txn_t *txn) return KNOT_EINVAL; } + int ret = finish_unread(txn, txn->unread); + if (ret != KNOT_EOK) { + return ret; + } + const char *cmd = txn->incremental ? RDB_CMD_UPD_COMMIT " %b %b" : RDB_CMD_ZONE_COMMIT " %b %b"; redisReply *reply = redisCommand(txn->rdb, cmd, txn->origin, txn->origin_len, &txn->rdb_txn, sizeof(txn->rdb_txn)); - int ret = check_reply(txn->rdb, reply, REDIS_REPLY_STATUS, txn->err); + ret = check_reply(txn->rdb, reply, REDIS_REPLY_STATUS, txn->err); if (ret != KNOT_EOK) { freeReplyObject(reply); return ret; @@ -169,6 +202,8 @@ int zone_redis_txn_abort(zone_redis_txn_t *txn) return KNOT_EINVAL; } + (void)finish_unread(txn, txn->unread); + const char *cmd = txn->incremental ? RDB_CMD_UPD_ABORT " %b %b" : RDB_CMD_ZONE_ABORT " %b %b"; diff --git a/src/knot/zone/redis.h b/src/knot/zone/redis.h index 8be96dfc75..df581efa3b 100644 --- a/src/knot/zone/redis.h +++ b/src/knot/zone/redis.h @@ -29,6 +29,8 @@ typedef struct { bool incremental; bool removals; + size_t unread; + zone_redis_err_t err; } zone_redis_txn_t; From ae514d9e5296b6236fa59b9d2b4e6719e8248d44 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 28 Jul 2025 17:03:16 +0200 Subject: [PATCH 104/675] doc: add reference for redis-related options --- doc/reference.rst | 90 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 2 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 6e934e1d80..399c9fb988 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -589,8 +589,9 @@ ca-file ------- Specifies one or more paths to load trusted Certificate Authorities (CAs) from. -An empty string ("") means the system’s default trusted CAs. The loaded CAs are used -for remote certificate validation (:ref:`acl_cert-hostname` and :ref:`remote_cert-hostname`). +An empty string ("") means the system’s default trusted CAs. The loaded CAs are used +for remote certificate validation (:ref:`acl_cert-hostname`, :ref:`remote_cert-hostname`, +and :ref:`database_zone-db-cert-hostname`). *Default:* not set @@ -1211,6 +1212,10 @@ Configuration of databases for zone contents, DNSSEC metadata, or event timers. timer-db-max-size: SIZE catalog-db: str catalog-db-max-size: SIZE + zone-db-listen: ADDR[@INT] | STR + zone-db-tls: BOOL + zone-db-cert-key: BASE64 ... + zone-db-cert-hostname: STR ... .. _database_storage: @@ -1336,6 +1341,50 @@ The hard limit for the catalog database maximum size. *Default:* ``20G`` (20 GiB), or ``512M`` (512 MiB) for 32-bit +.. _database_zone-db-listen: + +zone-db-listen +-------------- + +An IP address (and optionally a port) or a UNIX socket path of a running +instance of a Redis (or compatible) database to be used for reading and/or +writing zone contents. See :ref:`zone_zone-db-input` and :ref:`zone_zone-db-output`. + +*Default:* not set + +.. _database_zone-db-tls: + +zone-db-tls +----------- + +If enabled, TLS 1.3 will be used for communication with the zone database. + +*Default:* ``off`` + +.. _database_zone-db-cert-key: + +zone-db-cert-key +---------------- + +An ordered list of up to 4 public key PINs of the zone database's certificate. +If the list is non-empty, communication with the zone database is only possible +over TLS, and a peer certificate is required. The peer certificate's public key +must match one of the specified PINs. + +*Default:* not set + +.. _database_zone-db-cert-hostname: + +zone-db-cert-hostname +--------------------- + +An ordered list of up to 4 hostnames to be matched against the zone database's +certificate. At least one hostname must match for the certificate to be considered +valid (see :ref:`server_ca-file`). If the list is non-empty, communication with +the zone database is only possible over TLS, and a peer certificate is required. + +*Default:* not set + .. _keystore section: ``keystore`` section @@ -2666,6 +2715,8 @@ Definition of zones served by the server. template: template_id storage: STR file: STR + zone-db-input: INT + zone-db-output: INT master: remote_id | remotes_id ... ddns-master: remote_id notify: remote_id | remotes_id ... @@ -2762,6 +2813,36 @@ the following formatters: *Default:* :ref:`storage`\ ``/%s.zone`` +.. _zone_zone-db-input: + +zone-db-input +------------- + +If set, the zone is loaded from the zone database configured at +:ref:`database_zone-db-listen`. The value of this option specifies the zone +instance number (from 1 to 8 inclusive) within the database to read from. + +.. NOTE:: + With this option enabled, the textual zone file is never loaded. + The :ref:`zone_zonefile-load` setting still applies to handling + of the zone contents loaded from the database, however, + ``zonefile-load: whole`` and ``journal-content: changes`` + are recommended (both being the defaults). + +*Default:* ``-1`` (disabled) + +.. _zone_zone-db-output: + +zone-db-output +--------------- + +If set, the zone is stored to the zone database configured at +:ref:`database_zone-db-listen` and updated there with every change to the zone +contents. The value of this option specifies the zone instance number +(from 1 to 8 inclusive) within the database to write to. + +*Default:* ``-1`` (disabled) + .. _zone_master: master @@ -2954,6 +3035,11 @@ and no zone contents in the journal), it behaves the same way as ``whole``. See :ref:`Handling, zone file, journal, changes, serials` for guidance on configuring these and related options to ensure reliable operation. +.. WARNING:: + If :ref:`zone_zone-db-input` is configured, the textual zone file is never loaded. + However, this option still effects on how the zone contents loaded from the + database are applied and handled. + .. _zone_zonefile-skip: zonefile-skip From 25eb0a84556d30ea2a4588b2969211fcb8863ef1 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 9 Sep 2025 15:54:56 +0200 Subject: [PATCH 105/675] doc: extend introduction requirements, configuration, and operation with database zone backend --- doc/configuration.rst | 58 ++++++++++++++++++++ doc/introduction.rst | 1 + doc/operation.rst | 120 ++++++++++++++++++++++++++++++++++++++++++ doc/requirements.rst | 4 ++ 4 files changed, 183 insertions(+) diff --git a/doc/configuration.rst b/doc/configuration.rst index 5cd51faee9..513a68a200 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -817,6 +817,64 @@ different templates:: catalog-role: interpret catalog-template: [ unsigned, signed ] +.. _Database_zone_backend: + +Database zone backend +===================== + +It is possible to use `Redis `_ 7.0+ or a `Valkey `_ +database for storing zone contents. The database does not need to be located on +the same machine as the Knot DNS servers. One or more servers can read from +or write to the same database. However, if multiple writers are used, they +must be configured carefully to avoid conflicts or unexpected interactions. + +On the database side, the ``knot`` module must be available (e.g. by installing +the ``redis-knot`` package from a `repository `_) +and loaded into the database. This is usually done by adding the following +line to the database configuration:: + + loadmodule /usr/lib/redis/modules/knot.so [ ]... + +where the optional module parameters are: + +- ``default-ttl`` — The default record TTL value if not specified (default is 600 seconds). +- ``max-event-age`` — The maximum age of the stored zone events (default is 1200 seconds). +- ``max-update-depth`` — The maximum depth of the zone update history (default is 20). + +On the Knot DNS side, at least an address or a UNIX socket path must be configured +:ref:`database_zone-db-listen` in the :ref:`database section`. Optionally, +TLS communication can be enabled using :ref:`database_zone-db-tls`, +:ref:`database_zone-db-cert-key`, or :ref:`database_zone-db-cert-hostname`. +For example:: + + database: + zone-db-listen: /run/redis/redis-server.sock + +or:: + + database: + zone-db-listen: 192.168.1.2@6379 + zone-db-tls: on + zone-db-cert-key: s3L4U7E41DnN2tHFT8bu9DQe6eo2ySehlltyzdLbWjg= + +In the database, up to 8 independent versions of zone contents — called zone *instances* +— can be stored per zone, numbered from 1 to 8. Whether a zone is loaded from +or store to the database is configured independently using the :ref:`zone_zone-db-input` +and :ref:`zone_zone-db-output` options, whose values correspond to zone instances. +For example, if a zone should be read from database instance 1 and the +DNSSEC-signed version stored in instance 2, the configuration may look like this:: + + zone: + - domain: example.com. + dnssec-signing: on + zone-db-input: 1 + zone-db-output: 2 + +It is still possible to combine zone database backend with zone file or journal +operations. + +For manual operations on the database, see :ref:`Zone_database`. + .. _DNS_over_QUIC: DNS over QUIC diff --git a/doc/introduction.rst b/doc/introduction.rst index d350433c65..917707cb5b 100644 --- a/doc/introduction.rst +++ b/doc/introduction.rst @@ -57,6 +57,7 @@ Server features: * Multithreaded DNSSEC zone signing and zone validation * Automatic DNSSEC key management * Zone data backup and restore +* Database zone backend * Offline KSK operation * PKCS #11 interface diff --git a/doc/operation.rst b/doc/operation.rst index 68b488ccb7..29132efad5 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -465,6 +465,126 @@ but some specific resource record types (e.g. DS) are managed externally ensures that both approaches do not interfere and that additions of these records are not reverted when reloading the zone file that does not contain them. +.. _Zone_database: + +Zone database +============= + +The :ref:`zone database` can be accessed directly through +the database CLI or API, without any interaction with a Knot DNS server. The +``knot`` module provides specific commands for zone data manipulation. + +The ``KNOT.ZONE.*`` commands are used for manipulating entire zones: + +- ``KNOT.ZONE.BEGIN `` — Initializes a zone transaction for the + specified instance. Returns a transaction ID, which is then used as a parameter + for subsequent commands. +- ``KNOT.ZONE.STORE "data"`` — Stores zone data in a zone transaction. + The data must be provided in the form of a textual zone file and may contain + one or more records (including a full zone file content). +- ``KNOT.ZONE.COMMIT `` — Commits the specified zone transaction. +- ``KNOT.ZONE.ABORT `` — Aborts the specified zone transaction. +- ``KNOT.ZONE.LOAD [--compact] [owner] [type]`` — Returns + the contents of the specified zone instance, optionally in compact format and + filtered by owner and record type. +- ``KNOT.ZONE.PURGE `` — Purges all data for the specified zone. +- ``KNOT.ZONE.LIST [--instances]`` — Lists stored zones, optionally including + available instances. + +Example of a zone initialization:: + + $ redis-cli KNOT.ZONE.BEGIN example.com 1 + (integer) 10 + + $ redis-cli KNOT.ZONE.STORE example.com 10 "@ SOA ns admin 1 86400 900 691200 3600" + OK + $ redis-cli KNOT.ZONE.STORE example.com 10 "@ NS ns" + OK + $ redis-cli KNOT.ZONE.STORE example.com 10 "ns 300 AAAA ::1" + OK + + $ redis-cli KNOT.ZONE.LOAD example.com 10 + 1) 1) "example.com." + 2) "600" + 3) "SOA" + 4) "ns.example.com. admin.example.com. 1 86400 900 691200 3600" + 2) 1) "example.com." + 2) "600" + 3) "NS" + 4) "ns.example.com." + 3) 1) "ns.example.com." + 2) "300" + 3) "AAAA" + 4) "::1" + + $ redis-cli KNOT.ZONE.COMMIT example.com 10 + OK + + $ redis-cli KNOT.ZONE.LOAD --compact example.com 1 + 1) "example.com. 600 SOA ns.example.com. admin.example.com. 1 86400 900 691200 3600" + 2) "example.com. 600 NS ns.example.com." + 3) "ns.example.com. 300 AAAA ::1" + + $ redis-cli KNOT.ZONE.LIST --instances + 1) "example.com.: 1" + +.. TIP:: + For storing the entire zone file, the following command works:: + + $ cat example.com.zone | redis-cli --raw -x KNOT.ZONE.STORE example.com 10 + + In the case of very large zone files, ensure that the database limits + ``proto-max-bulk-len`` and ``client-query-buffer-limit`` are set high enough. + +The ``KNOT.UPD.*`` commands are used to manipulate zone updates: + +- ``KNOT.UPD.BEGIN `` — Initializes a zone update transaction + for the specified instance. Returns a transaction ID, which is then used as + a parameter for subsequent commands. +- ``KNOT.UPD.ADD "data"`` — Adds zone data to a zone update transaction. + The data must be provided in the form of a textual zone file and may contain + one or more records (including a full zone file content). +- ``KNOT.UPD.REMOVE "data"`` — Removes zone data from a zone + update transaction. The data must be provided in the form of a textual zone + file and may contain one or more records (including a full zone file content). +- ``KNOT.UPD.DIFF [--compact] [owner] [type]`` — Returns the contents + of the specified zone update transaction, optionally in compact format and + filtered by owner and record type. +- ``KNOT.UPD.COMMIT `` — Commits the specified zone update transaction. + If the SOA serial is not incremented explicitly, it will be incremented automatically. +- ``KNOT.UPD.ABORT `` — Aborts the specified zone update transaction. +- ``KNOT.UPD.LOAD [--compact] `` — Returns the contents + of the zone updates since the specified SOA serial, optionally in compact + format and filtered by owner and record type. + +Example of a zone update:: + + $ redis-cli KNOT.UPD.BEGIN example.com 1 + (integer) 10 + + $ redis-cli KNOT.UPD.ADD example.com 10 "test TXT \"Knot DNS\"" + OK + + $ redis-cli KNOT.UPD.DIFF example.com 10 + 1) 1) (empty array) + 2) 1) 1) "test.example.com." + 2) "600" + 3) "TXT" + 4) "\"Knot DNS\"" + + $ redis-cli KNOT.UPD.COMMIT example.com 10 + OK + + $ redis-cli KNOT.UPD.LOAD --compact example.com 1 1 + 1) 1) 1) 1) "example.com. 600 SOA ns.example.com. admin.example.com. 1 86400 900 691200 3600" + 2) 1) "example.com. 600 SOA ns.example.com. admin.example.com. 2 86400 900 691200 3600" + 2) 1) (empty array) + 2) 1) "test.example.com. 600 TXT \"Knot DNS\"" + +.. WARNING:: + Do not modify the zone data using native commands such as SET or ZADD, + as this may cause data corruption! + .. _Multi-primary: Multi-primary diff --git a/doc/requirements.rst b/doc/requirements.rst index 6b25fc1539..e495f667f6 100644 --- a/doc/requirements.rst +++ b/doc/requirements.rst @@ -113,3 +113,7 @@ and :doc:`kdig`: * libngtcp2 >= 0.17.0 (or embedded one via `--enable-quic`) * gnutls >= 3.7.3 * :ref:`Mode XDP` (for knotd and kxdpgun) + +:ref:`Database_zone_backend` support in :doc:`knotd`: + +* libhiredis (for TLS support >= 1.1.0) From cbddb5570ef4eb5824c6b9e6e178c31193e60dce Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 12 Sep 2025 15:01:09 +0200 Subject: [PATCH 106/675] reverse+include-from: allow at slave, forcing ixfr-from-axfr --- doc/reference.rst | 8 ++++-- src/knot/events/handlers/load.c | 26 +++++++----------- src/knot/events/handlers/refresh.c | 29 ++++++++++++++++++--- src/knot/updates/zone-update.c | 7 ++++- src/knot/zone/reverse.c | 15 +++++++++++ src/knot/zone/reverse.h | 10 +++++++ src/knot/zone/zone.c | 13 ++++++--- src/knot/zone/zone.h | 3 ++- tests-extra/tests/zone/include_from/test.py | 17 +++++++++--- 9 files changed, 97 insertions(+), 31 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 399c9fb988..23f8cb7dde 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -3380,6 +3380,10 @@ Current limitations: - Is slow for large zones (even when changing a little). - Recomputes all reverse records upon any change in any of the reversed zones. +In case of secondary zone (i.e. :ref:`zone_master` is specified) this option implies +:ref:`zone_ixfr-from-axfr`: *on* and :ref:`zone_journal-content`: *all*, otherwise +:ref:`zone_zonefile-load`: *difference-no-serial* and :ref:`zone_journal-content`: *all*. + *Default:* none .. _zone_include-from: @@ -3391,8 +3395,8 @@ A list of subzones that should be flattened into this zone. The flattening delet all delegation-related records (including NS, SOA, ...) from both zones and copies all other records from the subzone to this zone. -This feature works analogously to :ref:`zone_reverse-generate` in the way that subzones' -records are being imported while loading this zone's zone file, and that it implies +In case of secondary zone (i.e. :ref:`zone_master` is specified) this option implies +:ref:`zone_ixfr-from-axfr`: *on* and :ref:`zone_journal-content`: *all*, otherwise :ref:`zone_zonefile-load`: *difference-no-serial* and :ref:`zone_journal-content`: *all*. *Default:* none diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 9352d06891..3f5f7b39b1 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -64,10 +64,9 @@ int event_load(conf_t *conf, zone_t *zone) val = conf_zone_get(conf, C_ZONEFILE_LOAD, zone->name); unsigned zf_from = conf_opt(&val); - // Note: zone->reverse_from!=NULL almost works, but we need to check if configured even when failed. - if (conf_zone_get(conf, C_REVERSE_GEN, zone->name).code == KNOT_EOK || - conf_zone_get(conf, C_INCLUDE_FROM, zone->name).code == KNOT_EOK || - zone->cat_members != NULL) { // This should be equivalent to setting catalog-role:generate. + bool includes_configured = zone_includes_configured(conf, zone); + + if (includes_configured || zone->cat_members != NULL) { // The latter should be equivalent to setting catalog-role:generate. zf_from = ZONEFILE_LOAD_DIFSE; load_from = JOURNAL_CONTENT_ALL; } @@ -116,7 +115,7 @@ int event_load(conf_t *conf, zone_t *zone) // Attempt to load changes from database. If fails, load full zone from there later. if (db_enabled && (old_contents_exist || journal_conts != NULL) && zone->cat_members == NULL && EMPTY_LIST(zone->include_from) && - zf_from != ZONEFILE_LOAD_DIFSE) { + zf_from != ZONEFILE_LOAD_DIFSE && !includes_configured) { zone_redis_err_t err; uint32_t db_serial = 0; ret = zone_redis_serial(db_ctx, db_instance, zone->name, &db_serial, err); @@ -212,18 +211,13 @@ int event_load(conf_t *conf, zone_t *zone) zone->zonefile.exists = (zf_conts != NULL); zone->zonefile.mtime = mtime; -zonefile_loaded: ; +zonefile_loaded: // If configured, add reverse records to zone contents - const knot_dname_t *fail_fwd = NULL; - ret = zones_reverse(&zone->include_from, zf_conts, &fail_fwd); - if (ret == KNOT_ETRYAGAIN) { - knot_dname_txt_storage_t forw_str; - (void)knot_dname_to_str(forw_str, fail_fwd, sizeof(forw_str)); - log_zone_warning(zone->name, "waiting for source forward zone '%s'", forw_str); - goto cleanup; - } else if (ret != KNOT_EOK) { - log_zone_error(zone->name, "failed to generate reverse records"); - goto cleanup; + if (includes_configured) { + ret = zones_reverse_log(zone, zf_conts); + if (ret != KNOT_EOK) { + goto cleanup; + } } // If configured and possible, fix the SOA serial of zonefile. diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index b77e5ad6eb..074187da25 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -22,6 +22,7 @@ #include "knot/updates/changesets.h" #include "knot/zone/adjust.h" #include "knot/zone/digest.h" +#include "knot/zone/reverse.h" #include "knot/zone/serial.h" #include "knot/zone/zone.h" #include "knot/zone/zonefile.h" @@ -106,6 +107,7 @@ struct refresh_data { bool fallback_axfr; //!< Flag allowing fallback to AXFR, bool ixfr_by_one; //!< Allow only single changeset within IXFR. bool ixfr_from_axfr; //!< Diff computation of incremental update from AXFR allowed. + bool reverse_or_include; //!< Auto reverse generation or subzone inclusion configured. uint32_t expire_timer; //!< Result: expire timer from answer EDNS. // internal state, initialize with zeroes: @@ -341,15 +343,25 @@ static int axfr_finalize(struct refresh_data *data) zone_skip_t skip = { 0 }; int ret = KNOT_EOK; - if (dnssec_enable) { + if (dnssec_enable || data->reverse_or_include) { axfr_slave_sign_serial(new_zone, data->zone, data->conf, &master_serial); ret = zone_skip_add_dnssec_diff(&skip); assert(ret == KNOT_EOK); // static size of zone_skip is enough to cover dnssec types } + if (data->reverse_or_include) { + ret = zones_reverse_log(data->zone, new_zone); + if (ret != KNOT_EOK) { + data->fallback->remote = false; + return ret; + } + } + zone_update_t up = { 0 }; - if (data->ixfr_from_axfr && data->axfr_style_ixfr) { + // With ixfr-from-axfr configured, compute diff only when axfr-style-ixfr received. With include-from, do always. + if (data->ixfr_from_axfr && data->zone->contents != NULL && + (data->axfr_style_ixfr || data->reverse_or_include)) { ret = zone_update_from_differences(&up, data->zone, NULL, new_zone, UPDATE_INCREMENTAL | UPDATE_EVREQ, &skip); } else { ret = zone_update_from_contents(&up, data->zone, new_zone, UPDATE_FULL | UPDATE_EVREQ); @@ -397,7 +409,7 @@ static int axfr_finalize(struct refresh_data *data) return ret; } - if (dnssec_enable) { + if (dnssec_enable || data->reverse_or_include) { ret = zone_set_master_serial(data->zone, master_serial); if (ret != KNOT_EOK) { log_zone_warning(data->zone->name, @@ -407,7 +419,7 @@ static int axfr_finalize(struct refresh_data *data) finalize_timers(data); xfr_log_publish(data, old_serial, zone_contents_serial(data->zone->contents), - master_serial, dnssec_enable, bootstrap); + master_serial, dnssec_enable || data->reverse_or_include, bootstrap); data->fallback->remote = false; zone_set_last_master(data->zone, (const struct sockaddr_storage *)data->remote); @@ -1341,6 +1353,7 @@ typedef struct { bool send_notify; bool ixfr_by_one; bool ixfr_from_axfr; + bool reverse_or_include; bool more_xfr; } try_refresh_ctx_t; @@ -1379,6 +1392,7 @@ static int try_refresh(conf_t *conf, zone_t *zone, const conf_remote_t *master, .fallback_axfr = false, // will be set upon IXFR consume .ixfr_by_one = trctx->ixfr_by_one, .ixfr_from_axfr = trctx->ixfr_from_axfr, + .reverse_or_include = trctx->reverse_or_include, }; knot_requestor_t requestor; @@ -1455,6 +1469,13 @@ int event_refresh(conf_t *conf, zone_t *zone) val = conf_zone_get(conf, C_IXFR_FROM_AXFR, zone->name); trctx.ixfr_from_axfr = conf_bool(&val); + if (zone_includes_configured(conf, zone)) { + trctx.force_axfr = true; + zone->zonefile.retransfer = true; + trctx.ixfr_from_axfr = true; + trctx.reverse_or_include = true; + } + int ret = zone_master_try(conf, zone, try_refresh, &trctx, "refresh"); zone_clear_preferred_master(zone); if (ret != KNOT_EOK) { diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 9dcb4a31c2..c8db835a93 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -677,6 +677,11 @@ static int commit_journal(conf_t *conf, zone_update_t *update) { conf_val_t val = conf_zone_get(conf, C_JOURNAL_CONTENT, update->zone->name); unsigned content = conf_opt(&val); + + if (zone_includes_configured(conf, update->zone)){ + content = JOURNAL_CONTENT_ALL; + } + int ret = KNOT_EOK; if (update->flags & UPDATE_NO_CHSET) { zone_diff_t diff; @@ -1221,7 +1226,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) log_zone_error(update->zone->name, "failed to deallocate unused memory"); } - zone_local_notify(update->zone); + zone_local_notify(conf, update->zone); /* Sync zonefile immediately if configured. */ val = conf_zone_get(conf, C_ZONEFILE_SYNC, update->zone->name); diff --git a/src/knot/zone/reverse.c b/src/knot/zone/reverse.c index a629a9bdef..f032112483 100644 --- a/src/knot/zone/reverse.c +++ b/src/knot/zone/reverse.c @@ -6,6 +6,7 @@ #include #include +#include "knot/common/log.h" #include "knot/zone/reverse.h" static const uint8_t *reverse4postfix = (const uint8_t *)"\x07""in-addr""\x04""arpa"; @@ -212,3 +213,17 @@ int zones_reverse(list_t *zones, zone_contents_t *to_conts, const knot_dname_t * } return ret; } + +int zones_reverse_log(zone_t *zone, zone_contents_t *to_conts) +{ + const knot_dname_t *fail_fwd = NULL; + int ret = zones_reverse(&zone->include_from, to_conts, &fail_fwd); + if (ret == KNOT_ETRYAGAIN) { + knot_dname_txt_storage_t forw_str; + (void)knot_dname_to_str(forw_str, fail_fwd, sizeof(forw_str)); + log_zone_warning(zone->name, "waiting for source forward zone '%s'", forw_str); + } else if (ret != KNOT_EOK) { + log_zone_error(zone->name, "failed to generate reverse records"); + } + return ret; +} diff --git a/src/knot/zone/reverse.h b/src/knot/zone/reverse.h index eac1848878..0732b3be45 100644 --- a/src/knot/zone/reverse.h +++ b/src/knot/zone/reverse.h @@ -42,3 +42,13 @@ inline static int changeset_reverse(changeset_t *from, zone_update_t *to) * \return KNOT_E* */ int zones_reverse(list_t *zones, zone_contents_t *to_conts, const knot_dname_t **fail_fwd); + +/*! + * \brief Reverse/include from all configured zones (in zone->include_from) and log if failed. + * + * \param zone Zone to include records from others. + * \param to_conts Out: resulting reverse zone. + * + * \return KNOT_E* + */ +int zones_reverse_log(zone_t *zone, zone_contents_t *to_conts); diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 489e849d54..624e309bf0 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -815,6 +815,12 @@ int zone_dump_to_dir(conf_t *conf, zone_t *zone, const char *dir) return zonefile_write_skip(target, zone->contents, conf); } +bool zone_includes_configured(conf_t *conf, zone_t *zone) +{ + return conf_zone_get(conf, C_REVERSE_GEN, zone->name).code == KNOT_EOK || + conf_zone_get(conf, C_INCLUDE_FROM, zone->name).code == KNOT_EOK; +} + int zone_includes_add(zone_t *zone, zone_t *include, zone_include_method_t method) { zone_include_t *n = calloc(1, sizeof(*n)); @@ -857,11 +863,12 @@ void zone_local_notify_unsubscribe(zone_t *zone, zone_t *subscribe) ptrlist_find_rem(&zone->internal_notify, subscribe, NULL); } -void zone_local_notify(zone_t *zone) +void zone_local_notify(conf_t *conf, zone_t *zone) { ptrnode_t *n; WALK_LIST(n, zone->internal_notify) { - zone_events_schedule_now(n->d, ZONE_EVENT_LOAD); + zone_t *to_notify = n->d; + zone_events_schedule_now(to_notify, zone_is_slave(conf, to_notify) ? ZONE_EVENT_REFRESH : ZONE_EVENT_LOAD); } } @@ -901,7 +908,7 @@ int slave_zone_serial(zone_t *zone, conf_t *conf, uint32_t *serial) *serial = zone_contents_serial(zone->contents); conf_val_t val = conf_zone_get(conf, C_DNSSEC_SIGNING, zone->name); - if (conf_bool(&val)) { + if (conf_bool(&val) || zone_includes_configured(conf, zone)) { ret = zone_get_master_serial(zone, serial); } diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 155fe510dd..a04eed16e9 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -298,13 +298,14 @@ int zone_dump_to_dir(conf_t *conf, zone_t *zone, const char *dir); /*! * \brief Zone inclusion (reverse generation) related ops. */ +bool zone_includes_configured(conf_t *conf, zone_t *zone); int zone_includes_add(zone_t *zone, zone_t *include, zone_include_method_t method); void zone_includes_rem(zone_t *zone, zone_t *include); void zone_includes_clear(zone_t *zone); void zone_local_notify_subscribe(zone_t *zone, zone_t *subscribe); void zone_local_notify_unsubscribe(zone_t *zone, zone_t *subscribe); -void zone_local_notify(zone_t *zone); +void zone_local_notify(conf_t *conf, zone_t *zone); int zone_set_master_serial(zone_t *zone, uint32_t serial); diff --git a/tests-extra/tests/zone/include_from/test.py b/tests-extra/tests/zone/include_from/test.py index 22f9fbb614..a5e1db1ea2 100644 --- a/tests-extra/tests/zone/include_from/test.py +++ b/tests-extra/tests/zone/include_from/test.py @@ -10,16 +10,23 @@ t = Test() -master = t.server("knot") # only providing the subzones +master = t.server("knot") # if not tld_axfr: only providing the subzones flattener = t.server("knot") slave = t.server("knot") # only slaving the flattened zone parent = t.zone("cz.", storage=".") childs = t.zone("com.cz.", storage=".") + t.zone("net.cz.", storage=".") + t.zone("org.cz.", storage=".") +tld_axfr = random.choice([False, True]) + t.link(childs, master, flattener) t.link(parent, flattener, slave) +if tld_axfr: + t.link(parent, master, flattener) + +parent_master = master if tld_axfr else flattener + flattener.zones[parent[0].name].include_from = childs flattener.dnssec(parent).enable = random.choice([False, True]) @@ -51,9 +58,11 @@ r = slave.dig("dns1.com.cz.", "AAAA") r.check(rcode="NOERROR", rdata="1::2") -flattener.zones[parent[0].name].zfile.append_rndTXT("txt.cz.", rdata="added-txt") -if random.choice([False, True]): - flattener.ctl("zone-reload " + parent[0].name) +parent_zf = parent_master.zones[parent[0].name].zfile +parent_zf.append_rndTXT("txt.cz.", rdata="added-txt") +parent_zf.update_soa() +if tld_axfr or random.choice([False, True]): + parent_master.ctl("zone-reload " + parent[0].name) else: up = master.update(childs[1]) up.add("anything", 3600, "TXT", "dontcare") From f9ab1f37b74c6296a131e0f80d968d25b93f4579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Mon, 15 Sep 2025 11:59:00 +0200 Subject: [PATCH 107/675] redis: fix misaligned metadata access (UBSAN) --- src/redis/internal.h | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/redis/internal.h b/src/redis/internal.h index 9e9a205ef9..215bbdfe13 100644 --- a/src/redis/internal.h +++ b/src/redis/internal.h @@ -521,10 +521,13 @@ static exception_t upd_txn_lock(upd_meta_k key, rdb_txn_t *txn) throw(KNOT_EINVAL, RDB_EMALF); } + uint16_t counter = knot_wire_read_u16((uint8_t *)meta + offsetof(upd_meta_storage_t, counter)); for (txn->id = TXN_MIN; txn->id <= TXN_MAX; ++txn->id) { - if (meta->lock[txn->id] == 0) { - meta->counter = MAX(meta->counter + 1, 1); - meta->lock[txn->id] = meta->counter; + uint16_t lock = knot_wire_read_u16((uint8_t *)meta + offsetof(upd_meta_storage_t, lock[txn->id])); + if (lock == 0) { + counter = MAX((uint16_t)(counter + 1), (uint16_t)1); + knot_wire_write_u16((uint8_t *)meta + offsetof(upd_meta_storage_t, counter), counter); + knot_wire_write_u16((uint8_t *)meta + offsetof(upd_meta_storage_t, lock[txn->id]), counter); break; } } @@ -583,7 +586,7 @@ static int get_id(RedisModuleCtx *ctx, const arg_dname_t *origin, const rdb_txn_ return KNOT_EINVAL; } - uint16_t id = meta->lock[txn->id]; + uint16_t id = knot_wire_read_u16((uint8_t *)meta + offsetof(upd_meta_storage_t, lock[txn->id])); if (id == 0) { RedisModule_CloseKey(meta_key); return KNOT_EEXIST; @@ -744,7 +747,8 @@ static upd_meta_k upd_meta_get_when_open(RedisModuleCtx *ctx, const arg_dname_t } size_t len = 0; const upd_meta_storage_t *transaction = (const upd_meta_storage_t *)RedisModule_StringDMA(key, &len, REDISMODULE_WRITE); - if (transaction->lock[txn->id] == 0) { + uint16_t lock = knot_wire_read_u16((uint8_t *)transaction + offsetof(upd_meta_storage_t, lock[txn->id])); + if (lock == 0) { RedisModule_CloseKey(key); return NULL; } @@ -1220,7 +1224,7 @@ static exception_t zone_purge(RedisModuleCtx *ctx, const arg_dname_t *origin, rd size_t len = 0; upd_meta_storage_t *meta = (upd_meta_storage_t *)RedisModule_StringDMA(meta_key, &len, REDISMODULE_WRITE); RedisModule_Assert(len == sizeof(*meta)); - meta->depth = 0; + knot_wire_write_u16((uint8_t *)meta + offsetof(upd_meta_storage_t, depth), 0); } RedisModule_CloseKey(meta_key); @@ -1703,7 +1707,7 @@ static void upd_meta_unlock(RedisModuleCtx *ctx, upd_meta_k key, uint8_t id) size_t len = 0; upd_meta_storage_t *meta = (upd_meta_storage_t *)RedisModule_StringDMA(key, &len, REDISMODULE_WRITE); RedisModule_Assert(len == sizeof(*meta)); - meta->lock[id] = 0; + knot_wire_write_u16((uint8_t *)meta + offsetof(upd_meta_storage_t, lock[id]), 0); } static exception_t upd_abort(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) @@ -1960,7 +1964,8 @@ static void upd_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t RedisModule_ReplyWithError(ctx, RDB_EHISTORY); return; } - meta->depth -= counter; + uint16_t depth = knot_wire_read_u16((uint8_t *)meta + offsetof(upd_meta_storage_t, depth)); + knot_wire_write_u16((uint8_t *)meta + offsetof(upd_meta_storage_t, depth), depth - counter); // Commit the update. index_k new_upd_key = get_commited_upd_index(ctx, origin, upd_txn, serial_new, REDISMODULE_READ | REDISMODULE_WRITE); @@ -2010,7 +2015,7 @@ static void upd_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t RedisModule_CloseKey(diff_key); } - ++meta->depth; + knot_wire_write_u16((uint8_t *)meta + offsetof(upd_meta_storage_t, depth), ++depth); RedisModule_DeleteKey(upd_key); RedisModule_CloseKey(upd_key); @@ -2038,7 +2043,7 @@ static void upd_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t e = upd_trim_history(ctx, origin, upd_txn, rdb_upd_history_len); if (e.ret == KNOT_EOK) { - meta->depth = MIN(meta->depth, rdb_upd_history_len); + knot_wire_write_u16((uint8_t *)meta + offsetof(upd_meta_storage_t, depth), MIN(depth, rdb_upd_history_len)); } upd_meta_unlock(ctx, meta_key, upd_txn->id); From 9e30320c7e5c127db6c6a222782736f735b1e719 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 16 Sep 2025 10:52:47 +0200 Subject: [PATCH 108/675] knotd: implement update-delay --- doc/reference.rst | 17 ++++++ src/knot/catalog/generate.c | 8 +-- src/knot/catalog/generate.h | 6 +- src/knot/conf/schema.c | 3 +- src/knot/conf/schema.h | 1 + src/knot/events/handlers/ds_check.c | 2 +- src/knot/events/handlers/refresh.c | 2 +- src/knot/nameserver/notify.c | 2 +- src/knot/nameserver/update.c | 2 +- src/knot/server/server.c | 3 +- src/knot/zone/zone.c | 12 +++- src/knot/zone/zone.h | 2 + src/knot/zone/zonedb-load.c | 18 +++--- tests-extra/tests/zone/update_delay/test.py | 64 +++++++++++++++++++++ tests-extra/tools/dnstest/server.py | 2 + 15 files changed, 122 insertions(+), 22 deletions(-) create mode 100644 tests-extra/tests/zone/update_delay/test.py diff --git a/doc/reference.rst b/doc/reference.rst index 23f8cb7dde..3f5bd4f86d 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2721,6 +2721,7 @@ Definition of zones served by the server. ddns-master: remote_id notify: remote_id | remotes_id ... notify-delay: TIME + update-delay: TIME acl: acl_id ... master-pin-tolerance: TIME provide-ixfr: BOOL @@ -2892,6 +2893,22 @@ also defines the time granularity at which NOTIFY messages are sent per zone. *Default:* ``0`` +.. _zone_update-delay: + +update-delay +------------ + +A time delay in seconds before a change to zone contents is made after an external +trigger such as incoming NOTIFY or DDNS, or an internal trigger from different zone +such as change to zone to be :ref:`reversed`, +:ref:`included from` or a member of generated catalog zone. + +Exception: zone changing events triggered by control socket (knotc zone-* +commands) or by interpreted catalog are performed immediately, without configured +delay. + +*Default:* ``0`` + .. _zone_acl: acl diff --git a/src/knot/catalog/generate.c b/src/knot/catalog/generate.c index c406ffc96f..f12da65f5e 100644 --- a/src/knot/catalog/generate.c +++ b/src/knot/catalog/generate.c @@ -52,7 +52,7 @@ static knot_dname_t *catalog_member_owner(const knot_dname_t *member, return out; } -void catalog_generate_rem(zone_t *zone, knot_zonedb_t *db_new) +void catalog_generate_rem(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new) { if (zone == NULL) { return; @@ -76,12 +76,12 @@ void catalog_generate_rem(zone_t *zone, knot_zonedb_t *db_new) if (ret != KNOT_EOK) { catz->cat_members->error = ret; } else { - zone_events_schedule_now(catz, ZONE_EVENT_LOAD); + zone_schedule_update(conf, catz, ZONE_EVENT_LOAD); } free(owner); } -void catalog_generate_add(zone_t *zone, knot_zonedb_t *db_new, bool property) +void catalog_generate_add(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new, bool property) { if (zone == NULL) { return; @@ -110,7 +110,7 @@ void catalog_generate_add(zone_t *zone, knot_zonedb_t *db_new, bool property) if (ret != KNOT_EOK) { catz->cat_members->error = ret; } else { - zone_events_schedule_now(catz, ZONE_EVENT_LOAD); + zone_schedule_update(conf, catz, ZONE_EVENT_LOAD); } free(owner); } diff --git a/src/knot/catalog/generate.h b/src/knot/catalog/generate.h index 20dfe90334..bd7d8387d2 100644 --- a/src/knot/catalog/generate.h +++ b/src/knot/catalog/generate.h @@ -15,19 +15,21 @@ /*! * \brief Add a member removal to corresponding catalog update. * + * \param conf Configuration. * \param zone Member zone. * \param db_new New zone database. */ -void catalog_generate_rem(zone_t *zone, knot_zonedb_t *db_new); +void catalog_generate_rem(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new); /*! * \brief Add a member addition/prop to corresponding catalog update. * + * \param conf Configuration. * \param zone Member zone. * \param db_new New zone database. * \param property Property or addition indicator. */ -void catalog_generate_add(zone_t *zone, knot_zonedb_t *db_new, bool property); +void catalog_generate_add(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new, bool property); /*! * \brief Generate catalog zone contents from (full) catalog update. diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index bc8b3ae7c1..f63fd11b8b 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -478,7 +478,8 @@ static const yp_item_t desc_external[] = { { C_DDNS_MASTER, YP_TREF, YP_VREF = { C_RMT }, YP_FNONE, { check_ref_empty } }, \ { C_NOTIFY, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_REF_EMPTY, \ { check_ref } }, \ - { C_NOTIFY_DELAY, YP_TINT, YP_VINT = { -1, UINT32_MAX, 0, YP_STIME } }, \ + { C_NOTIFY_DELAY, YP_TINT, YP_VINT = { 0, UINT32_MAX, 0, YP_STIME } }, \ + { C_UPDATE_DELAY, YP_TINT, YP_VINT = { 0, UINT32_MAX, 0, YP_STIME } }, \ { C_ACL, YP_TREF, YP_VREF = { C_ACL }, YP_FMULTI, { check_ref } }, \ { C_MASTER_PIN_TOL, YP_TINT, YP_VINT = { 0, UINT32_MAX, 0, YP_STIME } }, \ { C_PROVIDE_IXFR, YP_TBOOL, YP_VBOOL = { true } }, \ diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index f9b6c7b276..3c457a683f 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -177,6 +177,7 @@ #define C_UDP_MAX_PAYLOAD_IPV6 "\x14""udp-max-payload-ipv6" #define C_UDP_WORKERS "\x0B""udp-workers" #define C_UNSAFE_OPERATION "\x10""unsafe-operation" +#define C_UPDATE_DELAY "\x0C""update-delay" #define C_UPDATE_OWNER "\x0C""update-owner" #define C_UPDATE_OWNER_MATCH "\x12""update-owner-match" #define C_UPDATE_OWNER_NAME "\x11""update-owner-name" diff --git a/src/knot/events/handlers/ds_check.c b/src/knot/events/handlers/ds_check.c index f00c0034e5..4a7734516c 100644 --- a/src/knot/events/handlers/ds_check.c +++ b/src/knot/events/handlers/ds_check.c @@ -23,7 +23,7 @@ int event_ds_check(conf_t *conf, zone_t *zone) case KNOT_NO_READY_KEY: break; case KNOT_EOK: - zone_events_schedule_now(zone, ZONE_EVENT_DNSSEC); + zone_schedule_update(conf, zone, ZONE_EVENT_DNSSEC); break; default: if (ctx.policy->ksk_sbm_check_interval > 0) { diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 074187da25..e83a219c7c 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -1520,7 +1520,7 @@ int event_refresh(conf_t *conf, zone_t *zone) zone_schedule_notify(conf, zone, 1); } if (trctx.more_xfr && ret == KNOT_EOK) { - zone_events_schedule_now(zone, ZONE_EVENT_REFRESH); + zone_schedule_update(conf, zone, ZONE_EVENT_REFRESH); } return ret; diff --git a/src/knot/nameserver/notify.c b/src/knot/nameserver/notify.c index 19599495f5..f16b21a1a4 100644 --- a/src/knot/nameserver/notify.c +++ b/src/knot/nameserver/notify.c @@ -76,7 +76,7 @@ knot_layer_state_t notify_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata) /* Incoming NOTIFY expires REFRESH timer and renews EXPIRE timer. */ zone_set_preferred_master(zone, knotd_qdata_remote_addr(qdata)); - zone_events_schedule_now(zone, ZONE_EVENT_REFRESH); + zone_schedule_update(conf(), zone, ZONE_EVENT_REFRESH); return KNOT_STATE_DONE; } diff --git a/src/knot/nameserver/update.c b/src/knot/nameserver/update.c index 13cd31634d..0e278000ef 100644 --- a/src/knot/nameserver/update.c +++ b/src/knot/nameserver/update.c @@ -88,7 +88,7 @@ static int update_enqueue(zone_t *zone, knotd_qdata_t *qdata) pthread_mutex_unlock(&zone->ddns_lock); /* Schedule UPDATE event. */ - zone_events_schedule_now(zone, ZONE_EVENT_UPDATE); + zone_schedule_update(conf(), zone, ZONE_EVENT_UPDATE); return KNOT_EOK; } diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 3b62af2744..532f88ed2a 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -33,6 +33,7 @@ #include "knot/updates/acl.h" #include "knot/zone/redis.h" #include "knot/zone/timers.h" +#include "knot/zone/zone.h" #include "knot/zone/zonedb-load.h" #include "knot/worker/pool.h" #include "contrib/base64.h" @@ -899,7 +900,7 @@ static void rdb_process_event(redisReply *reply, knot_zonedb_t *zone_db, switch (type) { case RDB_EVENT_ZONE: case RDB_EVENT_UPD: - zone_events_schedule_now(zone, ZONE_EVENT_LOAD); + zone_schedule_update(conf(), zone, ZONE_EVENT_LOAD); break; default: break; diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 624e309bf0..1d2169c173 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -486,6 +486,16 @@ void zone_schedule_notify(conf_t *conf, zone_t *zone, time_t delay) zone_events_schedule_at(zone, ZONE_EVENT_NOTIFY, time(NULL) + conf_delay + delay); } +void zone_schedule_update(conf_t *conf, zone_t *zone, zone_event_type_t type) +{ + int64_t conf_delay = 0; + if (zone->contents != NULL) { + conf_val_t val = conf_zone_get(conf, C_UPDATE_DELAY, zone->name); + conf_delay = conf_int(&val); + } + zone_events_schedule_at(zone, type, time(NULL) + conf_delay); +} + zone_contents_t *zone_switch_contents(zone_t *zone, zone_contents_t *new_contents) { if (zone == NULL) { @@ -868,7 +878,7 @@ void zone_local_notify(conf_t *conf, zone_t *zone) ptrnode_t *n; WALK_LIST(n, zone->internal_notify) { zone_t *to_notify = n->d; - zone_events_schedule_now(to_notify, zone_is_slave(conf, to_notify) ? ZONE_EVENT_REFRESH : ZONE_EVENT_LOAD); + zone_schedule_update(conf, to_notify, zone_is_slave(conf, to_notify) ? ZONE_EVENT_REFRESH : ZONE_EVENT_LOAD); } } diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index a04eed16e9..6b6eb79a48 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -229,6 +229,8 @@ bool zone_journal_same_serial(zone_t *zone, uint32_t serial_to); void zone_notifailed_clear(zone_t *zone); void zone_schedule_notify(conf_t *conf, zone_t *zone, time_t delay); +void zone_schedule_update(conf_t *conf, zone_t *zone, zone_event_type_t type); + /*! * \brief Atomically switch the content of the zone. */ diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 526b40a046..1270a6b4f9 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -481,18 +481,18 @@ static knot_zonedb_t *create_zonedb_commit(conf_t *conf, server_t *server) } } knot_zonedb_insert(db_new, zone); - catalog_generate_add(zone, db_new, false); + catalog_generate_add(conf, zone, db_new, false); reg_reverse(conf, db_new, zone); } else if (type & CONF_IO_TUNSET) { zone_t *zone = knot_zonedb_find(db_new, name); unreg_reverse(zone); knot_zonedb_del(db_new, name); - catalog_generate_rem(zone, db_new); + catalog_generate_rem(conf, zone, db_new); } else { zone_t *zone = knot_zonedb_find(db_new, name); zone_t *old = knot_zonedb_find(db_old, name); if (!same_group(old, zone)) { - catalog_generate_add(zone, db_new, true); + catalog_generate_add(conf, zone, db_new, true); } reg_reverse(conf, db_new, zone); } @@ -541,14 +541,14 @@ static knot_zonedb_t *create_zonedb_catalog(conf_t *conf, server_t *server, case CAT_UPD_ADD: zone = add_member_zone(upd, db_new, server, conf); knot_zonedb_insert(db_new, zone); - catalog_generate_add(zone, db_new, false); + catalog_generate_add(conf, zone, db_new, false); reg_reverse(conf, db_new, zone); break; case CAT_UPD_REM: zone = knot_zonedb_find(db_new, upd->member); unreg_reverse(zone); knot_zonedb_del(db_new, upd->member); - catalog_generate_rem(zone, db_new); + catalog_generate_rem(conf, zone, db_new); break; case CAT_UPD_UNIQ: case CAT_UPD_PROP: @@ -561,7 +561,7 @@ static knot_zonedb_t *create_zonedb_catalog(conf_t *conf, server_t *server, } zone_t *old = knot_zonedb_find(db_old, upd->member); if (!same_group(old, zone)) { - catalog_generate_add(zone, db_new, true); + catalog_generate_add(conf, zone, db_new, true); } reg_reverse(conf, db_new, zone); break; @@ -662,7 +662,7 @@ static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { zone_t *zone = knot_zonedb_iter_val(db_it); if (knot_zonedb_find(db_new, zone->name) == NULL) { - catalog_generate_rem(zone, db_new); + catalog_generate_rem(conf, zone, db_new); } } knot_zonedb_iter_free(db_it); @@ -674,9 +674,9 @@ static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, zone_t *zone = knot_zonedb_iter_val(db_it); zone_t *old = knot_zonedb_find(db_old, zone->name); if (old == NULL) { - catalog_generate_add(zone, db_new, false); + catalog_generate_add(conf, zone, db_new, false); } else if (!same_group(old, zone)) { - catalog_generate_add(zone, db_new, true); + catalog_generate_add(conf, zone, db_new, true); } reg_reverse(conf, db_new, zone); } diff --git a/tests-extra/tests/zone/update_delay/test.py b/tests-extra/tests/zone/update_delay/test.py new file mode 100644 index 0000000000..3f64d24664 --- /dev/null +++ b/tests-extra/tests/zone/update_delay/test.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 + +""" +Test of update delay. +""" + +from dnstest.utils import * +from dnstest.test import Test +import random +import threading +import time + +t = Test() + +master = t.server("knot") +slave = t.server("knot") +zones = t.zone_rnd(2, records=10) + +t.link(zones, master, slave) + +master.update_delay = 6 +slave.update_delay = 6 + +master.serial_policy = "unixtime" +slave.serial_policy = "unixtime" + +for z in zones: + master.zones[z.name].zfile.update_soa(serial=int(time.time())) + slave.dnssec(z).enable = True # so that slave has own SOA serial management + +def increment_serials(server, zones, serials): + res = serials + for z in zones: + res[z.name] += server.update_delay + return res + +def zones_wait_eq(server, zones, serials): + return server.zones_wait(zones, serials, greater=True, equal=True) + +def send_update(up): + try: + up.try_send() + except: + pass + +def send_up_bg(up): + threading.Thread(target=send_update, args=[up]).start() + +t.start() +serials = master.zones_wait(zones) +serials = zones_wait_eq(slave, zones, serials) # initial AXFR: without delay + +for z in zones: + up = master.update(z) + up.add("test-update-delay-add", 3600, "A", "1.2.3.4") + send_up_bg(up) + +increment_serials(master, zones, serials) +serials = zones_wait_eq(master, zones, serials) # DDNS processing with delay + +increment_serials(slave, zones, serials) +serials = zones_wait_eq(slave, zones, serials) # slave XFRs the zone swith another delay + +t.end() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 137d04defe..88b890145f 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -204,6 +204,7 @@ def __init__(self): self.semantic_check = True self.zonefile_sync = "1d" self.notify_delay = None + self.update_delay = None self.zonefile_load = None self.zonefile_skip = None self.zonemd_verify = None @@ -1902,6 +1903,7 @@ def get_config(self): if self.notify_delay is None: self.notify_delay = random.randint(0, 1) s.item_str("notify-delay", self.notify_delay) + self._str(s, "update-delay", self.update_delay) if self.zonemd_verify: s.item_str("zonemd-verify", "on") if self.zonemd_generate is not None: From 0aa88ff8ed0bc87454a1a555942fec2608e53af6 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 10 Sep 2025 19:53:02 +0200 Subject: [PATCH 109/675] exporter: distinguish global and zone stats + fixes and improvements Thanks to Guillaume Cornet --- .../knot_exporter/knot_exporter.py | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/python/knot_exporter/knot_exporter/knot_exporter.py b/python/knot_exporter/knot_exporter/knot_exporter.py index 10a021963d..a3170914f5 100755 --- a/python/knot_exporter/knot_exporter/knot_exporter.py +++ b/python/knot_exporter/knot_exporter/knot_exporter.py @@ -71,32 +71,32 @@ def collect(self): ctl.set_timeout(self._ttl) metric_families = dict() - def metric_families_append(family, labels, labels_val, data): - m = metric_families.get(family, GaugeMetricFamily(family, '', labels=labels)) - c = metric_families.get(family + '_total', CounterMetricFamily(family, '', labels=labels)) + def metric_families_append(family, labels, labels_val, data, unit=None): + m = metric_families.get(family, GaugeMetricFamily(family, '', labels=labels, unit=unit)) + c = metric_families.get(family + '_total', CounterMetricFamily(family, '', labels=labels, unit=unit)) m.add_metric(labels_val, data) c.add_metric(labels_val, data) metric_families[family] = m metric_families[family + '_total'] = c if self.collect_meminfo: - # Get global metrics. for pid, usage in memory_usage().items(): - metric_families_append('knot_memory_usage', ['section', 'type'], ['server', str(pid)], usage) + metric_families_append('knot_memory_usage', ['pid'], [str(pid)], usage, "bytes") if self.collect_stats: + # Get global metrics. ctl.send_block(cmd="stats", flags="") global_stats = ctl.receive_stats() for section, section_data in global_stats.items(): for item, item_data in section_data.items(): - name = ('knot_' + item).replace('-', '_') + name = ('knot_stats_' + item).replace('-', '_') try: for kind, kind_data in item_data.items(): - metric_families_append(name, ['section', 'type'], [section, kind], kind_data) + metric_families_append(name, ['module', 'type'], [section, kind], kind_data) except AttributeError: - metric_families_append(name, ['section'], [section], item_data) + metric_families_append(name, ['module', 'type'], [section, ""], item_data) if self.collect_zone_stats: # Get zone metrics. @@ -107,12 +107,12 @@ def metric_families_append(family, labels, labels_val, data): for zone, zone_data in zone_stats["zone"].items(): for section, section_data in zone_data.items(): for item, item_data in section_data.items(): - name = ('knot_' + item).replace('-', '_') + name = ('knot_zone_stats_' + item).replace('-', '_') try: for kind, kind_data in item_data.items(): - metric_families_append(name, ['zone', 'section', 'type'], [zone, section, kind], kind_data) + metric_families_append(name, ['zone', 'module', 'type'], [zone, section, kind], kind_data) except AttributeError: - metric_families_append(name, ['zone', 'section'], [zone, section], item_data) + metric_families_append(name, ['zone', 'module', 'type'], [zone, section, ""], item_data) if self.collect_zone_status: # zone state metrics @@ -132,7 +132,7 @@ def metric_families_append(family, labels, labels_val, data): if seconds == None: continue - metric_families_append('knot_zone_stats_' + metric, ['zone'], [zone], seconds) + metric_families_append('knot_zone_status_' + metric, ['zone'], [zone], seconds, "seconds") if self.collect_zone_timers: # zone configuration metrics @@ -149,7 +149,7 @@ def metric_families_append(family, labels, labels_val, data): zone_config = params[name]['SOA']['data'][0].split(" ") for metric in metrics: - metric_families_append(metric['name'], ['zone'], [name], int(zone_config[metric['index']])) + metric_families_append(metric['name'], ['zone'], [name], int(zone_config[metric['index']]), "seconds") for val in metric_families.values(): yield val From f8c0884f2aeef213e6d66e68e910d8c511b3f0ea Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 17 Sep 2025 07:17:41 +0200 Subject: [PATCH 110/675] Dockerfile: fix protocol in EXPOSE instruction should be lowercase --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8aa1b29bb3..2bdabd4e7f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -101,10 +101,10 @@ COPY --from=builder /knot-src/distro/common/cz.nic.knotd.conf /usr/share/dbus-1/ RUN mkdir -p /run/dbus # Expose port -EXPOSE 53/UDP -EXPOSE 53/TCP -EXPOSE 853/UDP -EXPOSE 853/TCP +EXPOSE 53/udp +EXPOSE 53/tcp +EXPOSE 853/udp +EXPOSE 853/tcp # Prepare shared directories VOLUME /config From d9f4a108930dde3e3d5b1c58fa20c0707bd63aeb Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 8 Sep 2025 08:06:12 +0200 Subject: [PATCH 111/675] doc: add migration from 3.4.x to 3.5.x --- doc/migration.rst | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/doc/migration.rst b/doc/migration.rst index 7c4a279864..615f5e2a42 100644 --- a/doc/migration.rst +++ b/doc/migration.rst @@ -473,6 +473,43 @@ Building notes - *Liburcu* must be available via pkg-config. - Linux distributions CentOS 7, Debian 10, and Ubuntu 18.04 are no longer supported. +.. _Upgrade 3.4.x to 3.5.x: + +Upgrade 3.4.x to 3.5.x +====================== + +There are the following changes between Knot DNS versions 3.5.x and 3.4.x. + +DNSSEC +------ + +- The default value of :ref:`policy_nsec3-salt-length` was lowered to 0, + which means no extra SHA-1 iterations are used. If the option value is not + explicitly set, zones that rely on the default will be re-signed upon upgrade. + +Utilities +--------- + +- :doc:`kzonecheck`'s zone origin auto-detection now uses the owner + name of the first SOA record from the checked zone file. If the owner isn't + a FQDN, the zone file name (without possible **.zone** suffix) is used as + the initial zone origin. +- `knot-exporter`: the following metrics, labes, or units have been changed: + + .. csv-table:: + :header: Old metric (old labels), New metric (new labels), New unit + :delim: ; + + ``knot_memory_usage(section, type)``; ``knot_memory_usage(pid)``; ``bytes`` + ``knot_*(section, type)``; ``knot_stats_*(module, type)``; + ``knot_*(section)``; ``knot_stats_*(module, type="")``; + ``knot_*(zone, section, type)``; ``knot_zone_stats_*(zone, module, type)``; + ``knot_*(zone, section)``; ``knot_zone_stats_*(zone, module, type="")``; + ``knot_zone_stats_*(zone)``; ``knot_zone_status_*(zone)``; + ``knot_zone_refresh(zone)``; ``knot_zone_refresh(zone)``; ``seconds`` + ``knot_zone_retry(zone)``; ``knot_zone_retry(zone)``; ``seconds`` + ``knot_zone_expiration(zone)``; ``knot_zone_expiration(zone)``; ``seconds`` + .. _Knot DNS for BIND users: Knot DNS for BIND users From aa44eb09f3f5c8a3ef47778d6d6194fa47630918 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 8 Sep 2025 09:06:58 +0200 Subject: [PATCH 112/675] NEWS: add version 3.5.0 --- NEWS | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/NEWS b/NEWS index 5fa02ff86b..f07fa61348 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,58 @@ +Knot DNS 3.5.0 (2025-09-18) +=========================== + +Features: +--------- + - knotd: database zone backend using Redis/Valkey (see 'Database zone backend') + - knotd: support for multiple control sockets (see 'control.listen') + - knotd: external zone validation (see 'External validation') + - knotd: authorization based on certificate hostname validation (see 'DNS over QUIC') + - knotd: multiple keystores can be specified per policy (see 'DNSSEC multiple keystores') + - knotd: specified resource record types can be omitted when loading (see 'zone.zonefile-skip') + - knotd: configurable delay before zone change processing (see 'zone.update-delay') + - knotd: subzone flattening (see 'zone.include-from') + +Improvements: +------------- + - knotd: optimized dynamic zone addition/removal for many zones + - knotd: optimized catalog updates for many zones + - knotd: replaced a poor atomic fallback with a spin-lock-protected version + - knotd: support for independent SOA serial series on the secondary side + - knotd: self-signed certificate contains SAN instead of CN + - knotd: removed RCU synchronization lock between unrelated zones' updates + - knotd: zone-reload/reload fails if there is a module configuration error + - knotd: control interfaces are started before zones loading + - knotd: session ticket pool is purged on server reload if changed credentials + - knotc: status returns 'Loading' if the server is not yet answering + - knotc: extended tab completion for details, filters, and paths + - kzonecheck: zone origin auto-detection uses SOA owner from the checked zone file + - libknot: XDP drops packets with too many or inappropriate extended IPv6 headers + - libknot: extended XDP checks for correct packets + - libknot: semantically malformed resource records are dumped in generic format + - libs: upgraded embedded libngtcp2 to 1.15.0 + - knot-exporter: less confusing option parsing and documentation + - doc: various improvements + +Bugfixes: +--------- + - knotd: if multiple primaries send NOTIFY concurrently, only the last remote is queried + - knotd: failed to build on macOS with POSIX semaphores + - knotd: early zone free due to RCU-delayed update cleanup + - knotd: server crashes if "" value overrides template master value + - knot-exporter: label collisions caused by duplicate metrics (Thanks to Guillaume Cornet) + +Packaging: +---------- + - deb,rpm: keymgr extracted to a separate package knot-keymgr + - deb,rpm: new package redis-knot with a Knot module for Redis/Valkey + - docker: upgraded to Debian trixie-slim + +Compatibility: +-------------- + - license: project relicensed to GPL-2.0-or-later + - knotd: new default value of 'policy.nsec3-salt-length' is 0 + - knot-exporter: renamed some metrics, labes, or units (see 'Migration') + Knot DNS 3.4.8 (2025-07-29) =========================== From b21e7a602c61cc4f6d5944088a8e88db718fbaaf Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 17 Sep 2025 08:24:51 +0200 Subject: [PATCH 113/675] reverse: add assert for clang analyzer --- src/knot/zone/reverse.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/knot/zone/reverse.c b/src/knot/zone/reverse.c index f032112483..fedbed4df7 100644 --- a/src/knot/zone/reverse.c +++ b/src/knot/zone/reverse.c @@ -164,6 +164,8 @@ int zone_reverse(zone_contents_t *from, zone_contents_t *to_conts, zone_update_t *to_upd, bool to_upd_rem, zone_include_method_t method) { + assert((to_conts != NULL) != (to_upd != NULL)); + const knot_dname_t *to_name; if (to_upd != NULL) { to_name = to_upd->zone->name; From bc657c2a4b5782eb7dd712233fa089fbf65bc8fc Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 17 Sep 2025 08:29:16 +0200 Subject: [PATCH 114/675] digest: avoid freeing a local variable (clang analyzer) --- src/knot/zone/digest.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/knot/zone/digest.c b/src/knot/zone/digest.c index c6f03e9047..5bcb46328b 100644 --- a/src/knot/zone/digest.c +++ b/src/knot/zone/digest.c @@ -262,7 +262,9 @@ int zone_update_add_digest(struct zone_update *update, int algorithm, bool place ret = zone_update_remove(update, &exists); if (ret != KNOT_EOK && ret != KNOT_ENOENT) { - free(digest); + if (digest != &zero) { + free(digest); + } return ret; } } From 1fa4974f99e1845e0c4002b1220d62af248f567f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 17 Sep 2025 08:44:21 +0200 Subject: [PATCH 115/675] keymgr: fix possible NULL dereference when parsing import-key params (clang analyzer) --- src/utils/keymgr/functions.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 7276a93bf4..f60e497a18 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -180,7 +180,7 @@ static bool genkeyargs(int argc, char *argv[], bool just_timing, ERR2("invalid size: '%s'", argv[i] + 5); return false; } - } else if (!just_timing && same_command(argv[i], "addtopolicy=", true)) { + } else if (!just_timing && same_command(argv[i], "addtopolicy=", true) && addtopolicy != NULL) { *addtopolicy = argv[i] + 12; } else if (same_command_bool(argv[i], "ksk", &res)) { bitmap_set(flags, DNSKEY_GENERATE_KSK, res); From 947e02aa405e8af901173da367f4c101a46402e0 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 18 Sep 2025 07:23:03 +0200 Subject: [PATCH 116/675] Bump version 3.6.dev --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 545dbd82d9..6b53bf8b4c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ AC_PREREQ([2.69]) m4_define([knot_VERSION_MAJOR], 3)dnl -m4_define([knot_VERSION_MINOR], 5)dnl +m4_define([knot_VERSION_MINOR], 6)dnl m4_define([knot_VERSION_PATCH], )dnl Leave empty if the master branch! m4_include([m4/knot-version.m4]) From 6698d074704f6ce0d224c664717d73aac5895c06 Mon Sep 17 00:00:00 2001 From: Nicolas PARLANT Date: Fri, 19 Sep 2025 10:36:55 +0200 Subject: [PATCH 117/675] Make redis fully optional Add options : *client (only) for a knot package *module (only) for a redis-knot package --- configure.ac | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 6b53bf8b4c..8a208f5460 100644 --- a/configure.ac +++ b/configure.ac @@ -261,21 +261,23 @@ AS_IF([test "$enable_reuseport" = yes],[ # Redis zone backend support AC_ARG_ENABLE([redis], - AS_HELP_STRING([--enable-redis=auto|yes|no], [enable Redis support [default=auto]]), + AS_HELP_STRING([--enable-redis=auto|yes|client|module|no], [enable Redis support [default=auto]]), [], [enable_redis=auto]) PKG_CHECK_MODULES([hiredis], [hiredis], [have_hiredis=yes], [have_hiredis=no]) AS_CASE([$enable_redis], - [auto], [AS_IF([test "$have_hiredis" = "yes"], [enable_redis=yes], [enable_redis=no])], - [yes], [AS_IF([test "$have_hiredis" = "yes"], [enable_redis=yes], [AC_MSG_ERROR([libhiredis not available])])], + [auto], [AS_IF([test "$have_hiredis" = "yes"], [enable_redis=yes], [enable_redis=no])], + [yes], [AS_IF([test "$have_hiredis" = "yes"], [enable_redis=yes], [AC_MSG_ERROR([libhiredis not available])])], + [client], [AS_IF([test "$have_hiredis" = "yes"], [enable_redis=client], [AC_MSG_ERROR([libhiredis not available])])], + [module], [AS_IF([test "$enable_shared" = "yes"], [enable_redis=module], [AC_MSG_ERROR([link mode has to be 'shared'])])], [no], [], [*], [AC_MSG_ERROR([Invalid value of --enable-redis.])] ) AM_CONDITIONAL([ENABLE_REDIS], [test "$enable_redis" != "no"]) -AM_CONDITIONAL([ENABLE_REDIS_MODULE], [test "$enable_redis" != "no" && test "$enable_shared" = "yes"]) +AM_CONDITIONAL([ENABLE_REDIS_MODULE], [test "$enable_redis" != "no" && test "$enable_redis" != "client" && test "$enable_shared" = "yes"]) -AS_IF([test "$enable_redis" = yes],[ +AS_IF([test "$enable_redis" = yes -o "$enable_redis" = client],[ AC_DEFINE([ENABLE_REDIS], [1], [Enable Redis support.]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include #if (HIREDIS_MAJOR < 1) || (HIREDIS_MAJOR == 1 && HIREDIS_MINOR < 1) @@ -283,7 +285,7 @@ AS_IF([test "$enable_redis" = yes],[ #endif]])], [AC_DEFINE([ENABLE_REDIS_TLS], [1], [Enable Redis TLS support.])], [enable_redis="yes (no TLS)"]) - AS_IF([test "$enable_shared" = yes],[ + AS_IF([test "$enable_redis" = yes && test "$enable_shared" = yes],[ enable_redis="${enable_redis} module" ]) ]) @@ -515,7 +517,7 @@ PKG_CHECK_MODULES([lmdb], [lmdb >= 0.9.15], [], [ CPPFLAGS="$save_CPPFLAGS" LIBS="$save_LIBS" - AS_IF([test "$have_lmdb" = "no"], [ + AS_IF([test "$have_lmdb" = "no" && test "$enable_redis" != "module"], [ AC_MSG_ERROR([lmdb library not found]) ]) ]) From 4f02c29b67790ff05f23fc6593e145be7c223c70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Tue, 23 Sep 2025 12:52:25 +0200 Subject: [PATCH 118/675] fix: failing build of knot/common/stats.c on PowerPC and MIPS --- src/knot/common/stats.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/knot/common/stats.c b/src/knot/common/stats.c index c036f73ace..1bdfaef58b 100644 --- a/src/knot/common/stats.c +++ b/src/knot/common/stats.c @@ -127,8 +127,8 @@ int stats_server(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx) } DUMP_VAL(params, "zone-count", knot_zonedb_size(ctx->server->zone_db)); - DUMP_VAL(params, "tcp-io-timeout", ctx->server->stats.tcp_io_timeout); - DUMP_VAL(params, "tcp-idle-timeout", ctx->server->stats.tcp_idle_timeout); + DUMP_VAL(params, "tcp-io-timeout", ATOMIC_GET(ctx->server->stats.tcp_io_timeout)); + DUMP_VAL(params, "tcp-idle-timeout", ATOMIC_GET(ctx->server->stats.tcp_idle_timeout)); return KNOT_EOK; } From 771c64c5a3ed2dbec0ea86732304806021ceb9ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Thu, 18 Sep 2025 11:01:11 +0200 Subject: [PATCH 119/675] contrib/files: fix stream error handling (clang analyzer) POSIX / fread(): The file position indicator for the stream (if defined) shall be advanced by the number of bytes successfully read. If an error occurs, the resulting value of the file position indicator for the stream is unspecified. If a partial element is read, its value is unspecified. --- src/contrib/files.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/contrib/files.c b/src/contrib/files.c index 9fef720014..89a8186762 100644 --- a/src/contrib/files.c +++ b/src/contrib/files.c @@ -224,9 +224,11 @@ int copy_file(const char *dest, const char *src) goto done; } - ssize_t cnt; + assert(ret == 0); + size_t cnt; while ((cnt = fread(buf, sizeof(*buf), BUFSIZE, from)) != 0 && - (ret = (fwrite(buf, sizeof(*buf), cnt, file) == cnt))) { + (ret = (fwrite(buf, sizeof(*buf), cnt, file) == cnt)) && + (feof(from) | ferror(from)) == 0) { } ret = !ret || ferror(from); From 19f425949a0aaea0bc8cd10bf4bbe3d88468ff5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 22 Nov 2024 19:43:58 +0100 Subject: [PATCH 120/675] doc/operation: add a note about backup/restore of generated catalog zone unique-id's --- doc/operation.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/operation.rst b/doc/operation.rst index 29132efad5..0c20f6a152 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -1562,6 +1562,11 @@ The restore procedure does not care for keys deleted after taking the snapshot. Thus, after restore, there might remain some redundant ``.pem`` files of obsolete signing keys. +.. NOTE:: + Automatically generated unique-id's of member zones are kept in the + timers database. Therefore, backup of member zones' timers is crucial for + backup/restore of a :ref:`generated catalog zone`. + .. TIP:: In order to seamlessly deploy a restored backup of KASP DB with respect to a possibly ongoing DNSSEC key rollover, it's recommended to set From 5a2bbd2b1f5b9f171f6406a8090648c220679900 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 22 Nov 2024 19:55:10 +0100 Subject: [PATCH 121/675] ctl/purge: remove an obsolete comment --- src/knot/ctl/commands.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index b133cb706c..94472099fb 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1551,7 +1551,6 @@ static int purge_orphan_member_cb(const knot_dname_t *member, const knot_dname_t err_str, catz_str); // Single-purpose fake zone_t containing only minimal data. - // malloc() should suffice here, but clean zone_t is more mishandling-proof. zone_t *orphan = calloc(1, sizeof(zone_t)); if (orphan == NULL) { return KNOT_ENOMEM; From 7d33f03d1d65b569c9d62f00f4ac63e75eb44d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Wed, 24 Sep 2025 12:53:58 +0200 Subject: [PATCH 122/675] libngtcp2: update embedded library to v1.16.0 --- Knot.files | 2 + src/contrib/Makefile.inc | 2 + src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c | 9 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c | 42 +- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.c | 173 ++++--- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.h | 4 - .../libngtcp2/ngtcp2/lib/ngtcp2_conn_info.c | 50 ++ .../libngtcp2/ngtcp2/lib/ngtcp2_conn_info.h | 45 ++ .../libngtcp2/ngtcp2/lib/ngtcp2_conn_stat.h | 39 ++ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c | 489 ++++++++---------- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h | 65 ++- .../libngtcp2/ngtcp2/lib/ngtcp2_qlog.c | 22 +- .../libngtcp2/ngtcp2/lib/ngtcp2_range.c | 4 +- .../libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c | 21 +- .../libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h | 2 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c | 61 ++- src/contrib/libngtcp2/ngtcp2/ngtcp2.h | 59 ++- src/contrib/libngtcp2/ngtcp2/version.h | 4 +- 18 files changed, 661 insertions(+), 432 deletions(-) create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.c create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.h diff --git a/Knot.files b/Knot.files index 75c13c0c12..71d23fdc5b 100644 --- a/Knot.files +++ b/Knot.files @@ -47,6 +47,8 @@ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.c +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_stat.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.h diff --git a/src/contrib/Makefile.inc b/src/contrib/Makefile.inc index f4b60832e6..40e373d058 100644 --- a/src/contrib/Makefile.inc +++ b/src/contrib/Makefile.inc @@ -152,6 +152,8 @@ libembngtcp2_la_SOURCES = \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.c \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_stat.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.h \ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c index 44be1e189b..2aa5d6fcad 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c @@ -384,8 +384,9 @@ static void bbr_check_full_bw_reached(ngtcp2_cc_bbr *bbr, bbr->full_bw_reached = 1; - ngtcp2_log_info(bbr->cc.log, NGTCP2_LOG_EVENT_CCA, - "bbr reached full bandwidth, full_bw=%" PRIu64, bbr->full_bw); + ngtcp2_log_infof(bbr->cc.log, NGTCP2_LOG_EVENT_CCA, + "bbr reached full bandwidth, full_bw=%" PRIu64, + bbr->full_bw); } static void bbr_check_startup_high_loss(ngtcp2_cc_bbr *bbr) { @@ -1025,8 +1026,8 @@ static void bbr_update_min_rtt(ngtcp2_cc_bbr *bbr, const ngtcp2_cc_ack *ack, bbr->min_rtt = bbr->probe_rtt_min_delay; bbr->min_rtt_stamp = bbr->probe_rtt_min_stamp; - ngtcp2_log_info(bbr->cc.log, NGTCP2_LOG_EVENT_CCA, - "bbr update min_rtt=%" PRIu64, bbr->min_rtt); + ngtcp2_log_infof(bbr->cc.log, NGTCP2_LOG_EVENT_CCA, + "bbr update min_rtt=%" PRIu64, bbr->min_rtt); } } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c index c16953802a..3fffef5448 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c @@ -92,9 +92,9 @@ void ngtcp2_cc_reno_cc_on_pkt_acked(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, if (cstat->cwnd < cstat->ssthresh) { cstat->cwnd += pkt->pktlen; - ngtcp2_log_info(reno->cc.log, NGTCP2_LOG_EVENT_CCA, - "pkn=%" PRId64 " acked, slow start cwnd=%" PRIu64, - pkt->pkt_num, cstat->cwnd); + ngtcp2_log_infof(reno->cc.log, NGTCP2_LOG_EVENT_CCA, + "pkn=%" PRId64 " acked, slow start cwnd=%" PRIu64, + pkt->pkt_num, cstat->cwnd); return; } @@ -123,9 +123,9 @@ void ngtcp2_cc_reno_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, reno->pending_add = 0; - ngtcp2_log_info(reno->cc.log, NGTCP2_LOG_EVENT_CCA, - "reduce cwnd because of packet loss cwnd=%" PRIu64, - cstat->cwnd); + ngtcp2_log_infof(reno->cc.log, NGTCP2_LOG_EVENT_CCA, + "reduce cwnd because of packet loss cwnd=%" PRIu64, + cstat->cwnd); } void ngtcp2_cc_reno_cc_on_persistent_congestion(ngtcp2_cc *cc, @@ -291,9 +291,9 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cstat->cwnd += ack->bytes_delivered; } - ngtcp2_log_info(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, - "%" PRIu64 " bytes acked, slow start cwnd=%" PRIu64, - ack->bytes_delivered, cstat->cwnd); + ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, + "%" PRIu64 " bytes acked, slow start cwnd=%" PRIu64, + ack->bytes_delivered, cstat->cwnd); } if (round_start) { @@ -398,11 +398,11 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cstat->cwnd += m / cstat->cwnd; } - ngtcp2_log_info(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, - "%" PRIu64 " bytes acked, cubic-ca cwnd=%" PRIu64 - " k_m=%" PRIu64 " target=%" PRIu64 " w_est=%" PRIu64, - ack->bytes_delivered, cstat->cwnd, cubic->current.k_m, target, - cubic->current.w_est); + ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, + "%" PRIu64 " bytes acked, cubic-ca cwnd=%" PRIu64 + " k_m=%" PRIu64 " target=%" PRIu64 " w_est=%" PRIu64, + ack->bytes_delivered, cstat->cwnd, cubic->current.k_m, + target, cubic->current.w_est); } void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, @@ -464,9 +464,9 @@ void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cubic->current.k_m = ngtcp2_cbrt((cwnd_delta << 30) * 10 / 4 / cstat->max_tx_udp_payload_size); - ngtcp2_log_info(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, - "reduce cwnd because of packet loss cwnd=%" PRIu64, - cstat->cwnd); + ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, + "reduce cwnd because of packet loss cwnd=%" PRIu64, + cstat->cwnd); } void ngtcp2_cc_cubic_cc_on_spurious_congestion(ngtcp2_cc *cc, @@ -482,10 +482,10 @@ void ngtcp2_cc_cubic_cc_on_spurious_congestion(ngtcp2_cc *cc, cstat->cwnd = cubic->undo.cwnd; cstat->ssthresh = cubic->undo.ssthresh; - ngtcp2_log_info(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, - "spurious congestion is detected and congestion state is " - "restored cwnd=%" PRIu64, - cstat->cwnd); + ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, + "spurious congestion is detected and congestion state is " + "restored cwnd=%" PRIu64, + cstat->cwnd); } cubic_vars_reset(&cubic->undo.v); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c index d97ba6a71b..13938761dd 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c @@ -42,6 +42,7 @@ #include "ngtcp2_callbacks.h" #include "ngtcp2_tstamp.h" #include "ngtcp2_frame_chain.h" +#include "ngtcp2_conn_info.h" /* NGTCP2_FLOW_WINDOW_RTT_FACTOR is the factor of RTT when flow control window auto-tuning is triggered. */ @@ -1084,8 +1085,8 @@ static void conn_update_skip_pkt(ngtcp2_conn *conn, ngtcp2_pktns *pktns) { pktns->tx.skip_pkt.next_pkt_num = pktns->tx.last_pkt_num + gap; - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, "next skip pkn=%" PRId64, - pktns->tx.skip_pkt.next_pkt_num); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, "next skip pkn=%" PRId64, + pktns->tx.skip_pkt.next_pkt_num); } static int conn_handle_skip_pkt(ngtcp2_conn *conn, ngtcp2_pktns *pktns, @@ -1862,9 +1863,9 @@ static int conn_cwnd_is_zero(ngtcp2_conn *conn) { uint64_t cwnd = conn->cstat.cwnd; if (bytes_in_flight >= cwnd) { - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_LDC, - "cwnd limited bytes_in_flight=%lu cwnd=%lu", - bytes_in_flight, cwnd); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_LDC, + "cwnd limited bytes_in_flight=%lu cwnd=%lu", + bytes_in_flight, cwnd); } return bytes_in_flight >= cwnd; @@ -2735,6 +2736,9 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, conn->tx.pacing.pktlen += (size_t)spktlen; + ++conn->cstat.pkt_sent; + conn->cstat.bytes_sent += (uint64_t)spktlen; + ngtcp2_qlog_metrics_updated(&conn->qlog, &conn->cstat); ++pktns->tx.last_pkt_num; @@ -4476,8 +4480,8 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, (rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING)) { --pktns->rtb.probe_pkt_left; - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, "probe pkt size=%td", - nwrite); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, "probe pkt size=%td", + nwrite); } conn_update_keep_alive_last_ts(conn, ts); @@ -4486,6 +4490,9 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, conn->tx.pacing.pktlen += (size_t)nwrite; + ++conn->cstat.pkt_sent; + conn->cstat.bytes_sent += (uint64_t)nwrite; + ngtcp2_qlog_metrics_updated(&conn->qlog, &conn->cstat); ++pktns->tx.last_pkt_num; @@ -4669,8 +4676,8 @@ ngtcp2_ssize ngtcp2_conn_write_single_frame_pkt( ngtcp2_path_eq(&conn->dcid.current.ps.path, path)) { --pktns->rtb.probe_pkt_left; - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, "probe pkt size=%td", - nwrite); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, "probe pkt size=%td", + nwrite); } } } else if (pi && conn->tx.ecn.state == NGTCP2_ECN_STATE_CAPABLE) { @@ -4693,6 +4700,9 @@ ngtcp2_ssize ngtcp2_conn_write_single_frame_pkt( conn->tx.pacing.pktlen += (size_t)nwrite; } + ++conn->cstat.pkt_sent; + conn->cstat.bytes_sent += (uint64_t)nwrite; + ngtcp2_qlog_metrics_updated(&conn->qlog, &conn->cstat); ++pktns->tx.last_pkt_num; @@ -4899,8 +4909,8 @@ static ngtcp2_ssize conn_write_pmtud_probe(ngtcp2_conn *conn, return 0; } - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, - "sending PMTUD probe packet len=%zu", probelen); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "sending PMTUD probe packet len=%zu", probelen); lfr.type = NGTCP2_FRAME_PING; @@ -5399,8 +5409,8 @@ static int conn_on_retry(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd, uint8_t cidbuf[sizeof(retry.odcid.data) * 2 + 1]; uint8_t *token; - if (!in_pktns || conn->flags & NGTCP2_CONN_FLAG_RECV_RETRY) { - return 0; + if (!in_pktns || (conn->flags & NGTCP2_CONN_FLAG_RECV_RETRY)) { + return NGTCP2_ERR_DISCARD_PKT; } in_rtb = &in_pktns->rtb; @@ -5421,9 +5431,9 @@ static int conn_on_retry(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd, return rv; } - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_PKT, "odcid=0x%s", - (const char *)ngtcp2_encode_hex(cidbuf, retry.odcid.data, - retry.odcid.datalen)); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, "odcid=0x%s", + (const char *)ngtcp2_encode_hex(cidbuf, retry.odcid.data, + retry.odcid.datalen)); if (retry.tokenlen == 0) { return NGTCP2_ERR_PROTO; @@ -6383,8 +6393,8 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, return 0; } - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, - "buffering 1RTT packet len=%zu", pktlen); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "buffering 1RTT packet len=%zu", pktlen); rv = conn_buffer_pkt(conn, &conn->pktns, path, pi, pkt, pktlen, dgramlen, ts); @@ -6531,8 +6541,8 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, } /* Buffer re-ordered 0-RTT packet. */ - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, - "buffering 0-RTT packet len=%zu", pktlen); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "buffering 0-RTT packet len=%zu", pktlen); rv = conn_buffer_pkt(conn, conn->in_pktns, path, pi, pkt, pktlen, dgramlen, ts); @@ -6554,10 +6564,10 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, if (conn->server) { if (dgramlen < NGTCP2_MAX_UDP_PAYLOAD_SIZE) { - ngtcp2_log_info( + ngtcp2_log_infof( &conn->log, NGTCP2_LOG_EVENT_PKT, "Initial packet was ignored because it is included in UDP datagram " - "less than %zu bytes: %zu bytes", + "less than %d bytes: %zu bytes", NGTCP2_MAX_UDP_PAYLOAD_SIZE, dgramlen); return NGTCP2_ERR_DISCARD_PKT; } @@ -6637,8 +6647,8 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, "Handshake packet at this point is unexpected and discarded"); return (ngtcp2_ssize)pktlen; } - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, - "buffering Handshake packet len=%zu", pktlen); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "buffering Handshake packet len=%zu", pktlen); rv = conn_buffer_pkt(conn, conn->hs_pktns, path, pi, pkt, pktlen, dgramlen, ts); @@ -6692,8 +6702,8 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, hd.pkt_num = ngtcp2_pkt_adjust_pkt_num(pktns->acktr.max_pkt_num, hd.pkt_num, hd.pkt_numlen); if (hd.pkt_num > NGTCP2_MAX_PKT_NUM) { - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_PKT, - "pkn=%" PRId64 " is greater than maximum pkn", hd.pkt_num); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, + "pkn=%" PRId64 " is greater than maximum pkn", hd.pkt_num); return NGTCP2_ERR_DISCARD_PKT; } @@ -6740,9 +6750,9 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, !conn->negotiated_version) { conn->negotiated_version = hd.version; - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, - "the negotiated version is 0x%08x", - conn->negotiated_version); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "the negotiated version is 0x%08x", + conn->negotiated_version); } payload = conn->crypto.decrypt_buf.base; @@ -6845,9 +6855,9 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, ngtcp2_vec_len(fr->stream.data, fr->stream.datacnt)) { conn->negotiated_version = hd.version; - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, - "the negotiated version is 0x%08x", - conn->negotiated_version); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "the negotiated version is 0x%08x", + conn->negotiated_version); } rv = conn_recv_crypto(conn, encryption_level, crypto, &fr->stream, ts); @@ -6863,6 +6873,7 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, } break; case NGTCP2_FRAME_PING: + ++conn->cstat.ping_recv; require_ack = 1; break; default: @@ -6956,6 +6967,8 @@ static ngtcp2_ssize conn_recv_handshake_cpkt(ngtcp2_conn *conn, return nread; } + ++conn->cstat.pkt_discarded; + /* If server discards first Initial, then drop connection state. This is because SCID in packet might be corrupted and the current connection state might wrongly discard @@ -6973,11 +6986,15 @@ static ngtcp2_ssize conn_recv_handshake_cpkt(ngtcp2_conn *conn, unrecoverable, therefore drop connection. */ return nread; } + + ++conn->cstat.pkt_discarded; + return (ngtcp2_ssize)dgramlen; } } if (nread == NGTCP2_ERR_DISCARD_PKT) { + ++conn->cstat.pkt_discarded; return (ngtcp2_ssize)dgramlen; } @@ -6993,8 +7010,11 @@ static ngtcp2_ssize conn_recv_handshake_cpkt(ngtcp2_conn *conn, pkt += nread; pktlen -= (size_t)nread; - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_PKT, - "read packet %td left %zu", nread, pktlen); + ++conn->cstat.pkt_recv; + conn->cstat.bytes_recv += (uint64_t)nread; + + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, + "read packet %td left %zu", nread, pktlen); } return (ngtcp2_ssize)dgramlen; @@ -9022,8 +9042,10 @@ conn_recv_delayed_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_pkt_info *pi, return rv; } break; - case NGTCP2_FRAME_CRYPTO: case NGTCP2_FRAME_PING: + ++conn->cstat.ping_recv; + /* fall through */ + case NGTCP2_FRAME_CRYPTO: require_ack = 1; break; default: @@ -9193,8 +9215,8 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, break; default: ngtcp2_log_rx_pkt_hd(&conn->log, &hd); - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_PKT, - "packet type 0x%02x was ignored", hd.type); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, + "packet type 0x%02x was ignored", hd.type); return (ngtcp2_ssize)pktlen; } } else { @@ -9241,8 +9263,8 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, hd.pkt_num = ngtcp2_pkt_adjust_pkt_num(pktns->acktr.max_pkt_num, hd.pkt_num, hd.pkt_numlen); if (hd.pkt_num > NGTCP2_MAX_PKT_NUM) { - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_PKT, - "pkn=%" PRId64 " is greater than maximum pkn", hd.pkt_num); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, + "pkn=%" PRId64 " is greater than maximum pkn", hd.pkt_num); return NGTCP2_ERR_DISCARD_PKT; } @@ -9253,7 +9275,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, conn->rx.preferred_addr.pkt_num < hd.pkt_num && ngtcp2_sockaddr_eq((const ngtcp2_sockaddr *)&conn->hs_local_addr, path->local.addr)) { - ngtcp2_log_info( + ngtcp2_log_infof( &conn->log, NGTCP2_LOG_EVENT_PKT, "pkt=%" PRId64 " is discarded because it was received on handshake local " @@ -9545,6 +9567,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, } break; case NGTCP2_FRAME_PING: + ++conn->cstat.ping_recv; non_probing_pkt = 1; break; case NGTCP2_FRAME_PATH_CHALLENGE: @@ -9743,6 +9766,7 @@ static int conn_process_buffered_protected_pkt(ngtcp2_conn *conn, *ppc = next; if (nread < 0) { if (nread == NGTCP2_ERR_DISCARD_PKT) { + ++conn->cstat.pkt_discarded; continue; } return (int)nread; @@ -9777,6 +9801,7 @@ static int conn_process_buffered_handshake_pkt(ngtcp2_conn *conn, *ppc = next; if (nread < 0) { if (nread == NGTCP2_ERR_DISCARD_PKT) { + ++conn->cstat.pkt_discarded; continue; } return (int)nread; @@ -9922,6 +9947,7 @@ static int conn_recv_cpkt(ngtcp2_conn *conn, const ngtcp2_path *path, } } if (nread == NGTCP2_ERR_DISCARD_PKT) { + ++conn->cstat.pkt_discarded; return 0; } return (int)nread; @@ -9931,8 +9957,11 @@ static int conn_recv_cpkt(ngtcp2_conn *conn, const ngtcp2_path *path, pkt += nread; pktlen -= (size_t)nread; - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_PKT, - "read packet %td left %zu", nread, pktlen); + ++conn->cstat.pkt_recv; + conn->cstat.bytes_recv += (uint64_t)nread; + + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, + "read packet %td left %zu", nread, pktlen); } return 0; @@ -10104,9 +10133,9 @@ static ngtcp2_ssize conn_read_handshake(ngtcp2_conn *conn, if ((size_t)nread < pktlen) { /* We have 1RTT packet and application rx key, but the handshake has not completed yet. */ - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, - "buffering 1RTT packet len=%zu", - pktlen - (size_t)nread); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "buffering 1RTT packet len=%zu", + pktlen - (size_t)nread); rv = conn_buffer_pkt(conn, &conn->pktns, path, pi, pkt + nread, pktlen - (size_t)nread, pktlen, ts); @@ -10185,8 +10214,8 @@ int ngtcp2_conn_read_pkt_versioned(ngtcp2_conn *conn, const ngtcp2_path *path, conn_update_timestamp(conn, ts); - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, "recv packet len=%zu", - pktlen); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, "recv packet len=%zu", + pktlen); if (pktlen == 0) { return 0; @@ -10198,6 +10227,8 @@ int ngtcp2_conn_read_pkt_versioned(ngtcp2_conn *conn, const ngtcp2_path *path, !ngtcp2_dcidtr_check_path_retired(&conn->dcid.dtr, path)) { ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, "ignore packet from unknown path"); + ++conn->cstat.pkt_discarded; + return 0; } @@ -11516,9 +11547,9 @@ int ngtcp2_conn_set_remote_transport_params( conn->local.transport_params.version_info.chosen_version = conn->negotiated_version; - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, - "the negotiated version is 0x%08x", - conn->negotiated_version); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "the negotiated version is 0x%08x", + conn->negotiated_version); } else { rv = conn_client_validate_transport_params(conn, params); if (rv != 0) { @@ -12306,9 +12337,9 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, } if (conn->pktns.rtb.probe_pkt_left) { - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, - "transmit probe pkt left=%zu", - conn->pktns.rtb.probe_pkt_left); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "transmit probe pkt left=%zu", + conn->pktns.rtb.probe_pkt_left); nwrite = conn_write_pkt(conn, pi, dest, destlen, (size_t)res, vmsg, NGTCP2_PKT_1RTT, wflags, ts); @@ -13011,7 +13042,7 @@ int ngtcp2_conn_update_rtt(ngtcp2_conn *conn, ngtcp2_duration rtt, rtt < cstat->min_rtt + ack_delay) { /* Ignore RTT sample if adjusting ack_delay causes the sample less than min_rtt before handshake confirmation. */ - ngtcp2_log_info( + ngtcp2_log_infof( &conn->log, NGTCP2_LOG_EVENT_LDC, "ignore rtt sample because ack_delay is too large latest_rtt=%" PRIu64 " min_rtt=%" PRIu64 " ack_delay=%" PRIu64, @@ -13034,7 +13065,7 @@ int ngtcp2_conn_update_rtt(ngtcp2_conn *conn, ngtcp2_duration rtt, cstat->smoothed_rtt = (cstat->smoothed_rtt * 7 + rtt) / 8; } - ngtcp2_log_info( + ngtcp2_log_infof( &conn->log, NGTCP2_LOG_EVENT_LDC, "latest_rtt=%" PRIu64 " min_rtt=%" PRIu64 " smoothed_rtt=%" PRIu64 " rttvar=%" PRIu64 " ack_delay=%" PRIu64, @@ -13049,16 +13080,7 @@ int ngtcp2_conn_update_rtt(ngtcp2_conn *conn, ngtcp2_duration rtt, void ngtcp2_conn_get_conn_info_versioned(ngtcp2_conn *conn, int conn_info_version, ngtcp2_conn_info *cinfo) { - const ngtcp2_conn_stat *cstat = &conn->cstat; - (void)conn_info_version; - - cinfo->latest_rtt = cstat->latest_rtt; - cinfo->min_rtt = cstat->min_rtt; - cinfo->smoothed_rtt = cstat->smoothed_rtt; - cinfo->rttvar = cstat->rttvar; - cinfo->cwnd = cstat->cwnd; - cinfo->ssthresh = cstat->ssthresh; - cinfo->bytes_in_flight = cstat->bytes_in_flight; + ngtcp2_conn_info_init_versioned(conn_info_version, cinfo, &conn->cstat); } static void conn_get_loss_time_and_pktns(ngtcp2_conn *conn, @@ -13140,9 +13162,10 @@ void ngtcp2_conn_set_loss_detection_timer(ngtcp2_conn *conn, ngtcp2_tstamp ts) { if (earliest_loss_time != UINT64_MAX) { cstat->loss_detection_timer = earliest_loss_time; - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_LDC, - "loss_detection_timer=%" PRIu64 " nonzero crypto loss time", - cstat->loss_detection_timer); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_LDC, + "loss_detection_timer=%" PRIu64 + " nonzero crypto loss time", + cstat->loss_detection_timer); return; } @@ -13166,9 +13189,9 @@ void ngtcp2_conn_set_loss_detection_timer(ngtcp2_conn *conn, ngtcp2_tstamp ts) { timeout = cstat->loss_detection_timer > ts ? cstat->loss_detection_timer - ts : 0; - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_LDC, - "loss_detection_timer=%" PRIu64 " timeout=%" PRIu64, - cstat->loss_detection_timer, timeout / NGTCP2_MILLISECONDS); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_LDC, + "loss_detection_timer=%" PRIu64 " timeout=%" PRIu64, + cstat->loss_detection_timer, timeout / NGTCP2_MILLISECONDS); } void ngtcp2_conn_cancel_loss_detection_timer(ngtcp2_conn *conn) { @@ -13240,8 +13263,8 @@ int ngtcp2_conn_on_loss_detection_timer(ngtcp2_conn *conn, ngtcp2_tstamp ts) { ++cstat->pto_count; - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_LDC, "pto_count=%zu", - cstat->pto_count); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_LDC, "pto_count=%zu", + cstat->pto_count); ngtcp2_conn_set_loss_detection_timer(conn, ts); @@ -13967,6 +13990,10 @@ ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( return nwrite; } +ngtcp2_tstamp ngtcp2_conn_get_timestamp(const ngtcp2_conn *conn) { + return conn->log.last_ts; +} + const ngtcp2_path_history_entry * ngtcp2_conn_find_path_history(ngtcp2_conn *conn, const ngtcp2_path *path, ngtcp2_tstamp ts) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h index 2d607d379f..30a44e7266 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h @@ -77,10 +77,6 @@ typedef enum { unreceived data. */ #define NGTCP2_MAX_REORDERED_CRYPTO_DATA 65536 -/* NGTCP2_MAX_RETRIES is the number of Retry packet which client can - accept. */ -#define NGTCP2_MAX_RETRIES 3 - /* NGTCP2_MAX_SCID_POOL_SIZE is the maximum number of source connection ID the local endpoint provides to the remote endpoint. The chosen value was described in old draft. Now a remote endpoint diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.c new file mode 100644 index 0000000000..84bb8820f5 --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.c @@ -0,0 +1,50 @@ +/* + * ngtcp2 + * + * Copyright (c) 2025 ngtcp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include "ngtcp2_conn_info.h" +#include "ngtcp2_conn_stat.h" + +void ngtcp2_conn_info_init_versioned(int conn_info_version, + ngtcp2_conn_info *cinfo, + const ngtcp2_conn_stat *cstat) { + cinfo->latest_rtt = cstat->latest_rtt; + cinfo->min_rtt = cstat->min_rtt; + cinfo->smoothed_rtt = cstat->smoothed_rtt; + cinfo->rttvar = cstat->rttvar; + cinfo->cwnd = cstat->cwnd; + cinfo->ssthresh = cstat->ssthresh; + cinfo->bytes_in_flight = cstat->bytes_in_flight; + + switch (conn_info_version) { + case NGTCP2_CONN_INFO_V2: + cinfo->pkt_sent = cstat->pkt_sent; + cinfo->bytes_sent = cstat->bytes_sent; + cinfo->pkt_recv = cstat->pkt_recv; + cinfo->bytes_recv = cstat->bytes_recv; + cinfo->pkt_lost = cstat->pkt_lost; + cinfo->bytes_lost = cstat->bytes_lost; + cinfo->ping_recv = cstat->ping_recv; + cinfo->pkt_discarded = cstat->pkt_discarded; + } +} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.h new file mode 100644 index 0000000000..161309df30 --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_info.h @@ -0,0 +1,45 @@ +/* + * ngtcp2 + * + * Copyright (c) 2025 ngtcp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#ifndef NGTCP2_CONN_INFO_H +#define NGTCP2_CONN_INFO_H + +#ifdef HAVE_CONFIG_H +# include +#endif /* defined(HAVE_CONFIG_H) */ + +#include + +typedef struct ngtcp2_conn_stat ngtcp2_conn_stat; + +/* + * ngtcp2_conn_info_init_versioned initializes |cinfo| of version + * |conn_info_version| from |cstat|. This function only fills the + * fields of |cinfo| that are available in the specified version. + */ +void ngtcp2_conn_info_init_versioned(int conn_info_version, + ngtcp2_conn_info *cinfo, + const ngtcp2_conn_stat *cstat); + +#endif /* !defined(NGTCP2_CONN_INFO_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_stat.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_stat.h index be041b9086..b5fea47391 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_stat.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn_stat.h @@ -31,6 +31,8 @@ #include +#include "ngtcp2_pktns_id.h" + /** * @struct * @@ -128,6 +130,43 @@ typedef struct ngtcp2_conn_stat { * scheduled and transmitted together. */ size_t send_quantum; + /* + * pkt_sent is the number of QUIC packets sent. + */ + uint64_t pkt_sent; + /* + * bytes_sent is the number of bytes (the sum of QUIC packet length) + * sent. + */ + uint64_t bytes_sent; + /* + * pkt_recv is the number of QUIC packets received, excluding + * discarded ones. + */ + uint64_t pkt_recv; + /* + * bytes_recv is the number of bytes (the sum of QUIC packet length) + * received, excluding discarded ones. + */ + uint64_t bytes_recv; + /* + * pkt_lost is the number of QUIC packets that are considered lost, + * excluding PMTUD packets. + */ + uint64_t pkt_lost; + /* + * bytes_lost is the number of bytes (the sum of QUIC packet length) + * lost, excluding PMTUD packets. + */ + uint64_t bytes_lost; + /* + * ping_recv is the number of PING frames received. + */ + uint64_t ping_recv; + /* + * pkt_discarded is the number of QUIC packets discarded. + */ + uint64_t pkt_discarded; } ngtcp2_conn_stat; #endif /* !defined(NGTCP2_CONN_STAT_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c index e006c22e4e..5c31f44a73 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c @@ -90,23 +90,10 @@ void ngtcp2_log_init(ngtcp2_log *log, const ngtcp2_cid *scid, * Frame type in hex string. */ -#define NGTCP2_LOG_BUFLEN 4096 +#define NGTCP2_LOG_PKT "%s %" PRId64 " %s" +#define NGTCP2_LOG_TP "remote transport_parameters" -/* TODO Split second and remaining fraction with comma */ -#define NGTCP2_LOG_HD "I%08" PRIu64 " 0x%s %s" -#define NGTCP2_LOG_PKT NGTCP2_LOG_HD " %s %" PRId64 " %s" -#define NGTCP2_LOG_TP NGTCP2_LOG_HD " remote transport_parameters" - -#define NGTCP2_LOG_FRM_HD_FIELDS(DIR) \ - timestamp_cast(log->last_ts - log->ts), (const char *)log->scid, "frm", \ - (DIR), hd->pkt_num, strpkttype(hd) - -#define NGTCP2_LOG_PKT_HD_FIELDS(DIR) \ - timestamp_cast(log->last_ts - log->ts), (const char *)log->scid, "pkt", \ - (DIR), hd->pkt_num, strpkttype(hd) - -#define NGTCP2_LOG_TP_HD_FIELDS \ - timestamp_cast(log->last_ts - log->ts), (const char *)log->scid, "cry" +#define NGTCP2_LOG_PKT_HD_FIELDS(DIR) (DIR), hd->pkt_num, strpkttype(hd) static const char *strerrorcode(uint64_t error_code) { switch (error_code) { @@ -188,45 +175,19 @@ static const char *strpkttype(const ngtcp2_pkt_hd *hd) { } static const char *strpkttype_type_flags(uint8_t type, uint8_t flags) { - ngtcp2_pkt_hd hd = {0}; - - hd.type = type; - hd.flags = flags; - - return strpkttype(&hd); -} - -static const char *strevent(ngtcp2_log_event ev) { - switch (ev) { - case NGTCP2_LOG_EVENT_CON: - return "con"; - case NGTCP2_LOG_EVENT_PKT: - return "pkt"; - case NGTCP2_LOG_EVENT_FRM: - return "frm"; - case NGTCP2_LOG_EVENT_LDC: - return "ldc"; - case NGTCP2_LOG_EVENT_CRY: - return "cry"; - case NGTCP2_LOG_EVENT_PTV: - return "ptv"; - case NGTCP2_LOG_EVENT_CCA: - return "cca"; - case NGTCP2_LOG_EVENT_NONE: - default: - return "non"; - } + return strpkttype(&(ngtcp2_pkt_hd){ + .type = type, + .flags = flags, + }); } -static uint64_t timestamp_cast(uint64_t ns) { return ns / NGTCP2_MILLISECONDS; } - static void log_fr_stream(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_stream *fr, const char *dir) { - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " STREAM(0x%02" PRIx64 ") id=0x%" PRIx64 - " fin=%d offset=%" PRIu64 " len=%" PRIu64 " uni=%d"), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type | fr->flags, fr->stream_id, fr->fin, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " STREAM(0x%02" PRIx64 ") id=0x%" PRIx64 + " fin=%d offset=%" PRIu64 " len=%" PRIu64 " uni=%d", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type | fr->flags, fr->stream_id, fr->fin, fr->offset, ngtcp2_vec_len(fr->data, fr->datacnt), (fr->stream_id & 0x2) != 0); } @@ -236,58 +197,58 @@ static void log_fr_ack(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, int64_t largest_ack, min_ack; size_t i; - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") largest_ack=%" PRId64 - " ack_delay=%" PRIu64 "(%" PRIu64 ") ack_range_count=%zu"), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->largest_ack, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") largest_ack=%" PRId64 + " ack_delay=%" PRIu64 "(%" PRIu64 ") ack_range_count=%zu", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->largest_ack, fr->ack_delay_unscaled / NGTCP2_MILLISECONDS, fr->ack_delay, fr->rangecnt); largest_ack = fr->largest_ack; min_ack = fr->largest_ack - (int64_t)fr->first_ack_range; - log->log_printf(log->user_data, - (NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") range=[%" PRId64 - "..%" PRId64 "] len=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, largest_ack, min_ack, - fr->first_ack_range); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") range=[%" PRId64 + "..%" PRId64 "] len=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, largest_ack, + min_ack, fr->first_ack_range); for (i = 0; i < fr->rangecnt; ++i) { const ngtcp2_ack_range *range = &fr->ranges[i]; largest_ack = min_ack - (int64_t)range->gap - 2; min_ack = largest_ack - (int64_t)range->len; - log->log_printf(log->user_data, - (NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") range=[%" PRId64 - "..%" PRId64 "] gap=%" PRIu64 - " len=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, largest_ack, - min_ack, range->gap, range->len); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") range=[%" PRId64 + "..%" PRId64 "] gap=%" PRIu64 + " len=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, largest_ack, + min_ack, range->gap, range->len); } if (fr->type == NGTCP2_FRAME_ACK_ECN) { - log->log_printf(log->user_data, - (NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") ect0=%" PRIu64 - " ect1=%" PRIu64 " ce=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->ecn.ect0, - fr->ecn.ect1, fr->ecn.ce); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") ect0=%" PRIu64 + " ect1=%" PRIu64 " ce=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->ecn.ect0, + fr->ecn.ect1, fr->ecn.ce); } } static void log_fr_padding(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_padding *fr, const char *dir) { - log->log_printf(log->user_data, - (NGTCP2_LOG_PKT " PADDING(0x%02" PRIx64 ") len=%zu"), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->len); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " PADDING(0x%02" PRIx64 ") len=%zu", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->len); } static void log_fr_reset_stream(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_reset_stream *fr, const char *dir) { - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " RESET_STREAM(0x%02" PRIx64 ") id=0x%" PRIx64 - " app_error_code=%s(0x%" PRIx64 ") final_size=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->stream_id, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " RESET_STREAM(0x%02" PRIx64 ") id=0x%" PRIx64 + " app_error_code=%s(0x%" PRIx64 ") final_size=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->stream_id, strapperrorcode(fr->app_error_code), fr->app_error_code, fr->final_size); } @@ -297,12 +258,12 @@ static void log_fr_connection_close(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, char reason[256]; size_t reasonlen = ngtcp2_min_size(sizeof(reason) - 1, fr->reasonlen); - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " CONNECTION_CLOSE(0x%02" PRIx64 - ") error_code=%s(0x%" PRIx64 ") " - "frame_type=%" PRIx64 " reason_len=%zu reason=[%s]"), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " CONNECTION_CLOSE(0x%02" PRIx64 ") error_code=%s(0x%" PRIx64 + ") " + "frame_type=%" PRIx64 " reason_len=%zu reason=[%s]", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->type == NGTCP2_FRAME_CONNECTION_CLOSE ? strerrorcode(fr->error_code) : strapperrorcode(fr->error_code), fr->error_code, fr->frame_type, fr->reasonlen, @@ -311,63 +272,64 @@ static void log_fr_connection_close(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, static void log_fr_max_data(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_max_data *fr, const char *dir) { - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " MAX_DATA(0x%02" PRIx64 ") max_data=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->max_data); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " MAX_DATA(0x%02" PRIx64 + ") max_data=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->max_data); } static void log_fr_max_stream_data(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_max_stream_data *fr, const char *dir) { - log->log_printf(log->user_data, - (NGTCP2_LOG_PKT " MAX_STREAM_DATA(0x%02" PRIx64 - ") id=0x%" PRIx64 - " max_stream_data=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->stream_id, - fr->max_stream_data); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " MAX_STREAM_DATA(0x%02" PRIx64 + ") id=0x%" PRIx64 + " max_stream_data=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->stream_id, + fr->max_stream_data); } static void log_fr_max_streams(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_max_streams *fr, const char *dir) { - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " MAX_STREAMS(0x%02" PRIx64 ") max_streams=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->max_streams); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " MAX_STREAMS(0x%02" PRIx64 ") max_streams=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->max_streams); } static void log_fr_ping(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_ping *fr, const char *dir) { - log->log_printf(log->user_data, (NGTCP2_LOG_PKT " PING(0x%02" PRIx64 ")"), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " PING(0x%02" PRIx64 ")", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type); } static void log_fr_data_blocked(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_data_blocked *fr, const char *dir) { - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " DATA_BLOCKED(0x%02" PRIx64 ") offset=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->offset); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " DATA_BLOCKED(0x%02" PRIx64 + ") offset=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->offset); } static void log_fr_stream_data_blocked(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_stream_data_blocked *fr, const char *dir) { - log->log_printf(log->user_data, - (NGTCP2_LOG_PKT " STREAM_DATA_BLOCKED(0x%02" PRIx64 - ") id=0x%" PRIx64 " offset=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->stream_id, - fr->offset); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " STREAM_DATA_BLOCKED(0x%02" PRIx64 + ") id=0x%" PRIx64 " offset=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->stream_id, + fr->offset); } static void log_fr_streams_blocked(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_streams_blocked *fr, const char *dir) { - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " STREAMS_BLOCKED(0x%02" PRIx64 ") max_streams=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->max_streams); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " STREAMS_BLOCKED(0x%02" PRIx64 ") max_streams=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->max_streams); } static void log_fr_new_connection_id(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -376,12 +338,12 @@ static void log_fr_new_connection_id(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, uint8_t buf[sizeof(fr->stateless_reset_token) * 2 + 1]; uint8_t cid[sizeof(fr->cid.data) * 2 + 1]; - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " NEW_CONNECTION_ID(0x%02" PRIx64 ") seq=%" PRIu64 - " cid=0x%s retire_prior_to=%" PRIu64 - " stateless_reset_token=0x%s"), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->seq, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " NEW_CONNECTION_ID(0x%02" PRIx64 ") seq=%" PRIu64 + " cid=0x%s retire_prior_to=%" PRIu64 + " stateless_reset_token=0x%s", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->seq, (const char *)ngtcp2_encode_hex(cid, fr->cid.data, fr->cid.datalen), fr->retire_prior_to, (const char *)ngtcp2_encode_hex(buf, fr->stateless_reset_token, @@ -391,11 +353,12 @@ static void log_fr_new_connection_id(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, static void log_fr_stop_sending(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_stop_sending *fr, const char *dir) { - log->log_printf(log->user_data, - (NGTCP2_LOG_PKT " STOP_SENDING(0x%02" PRIx64 ") id=0x%" PRIx64 - " app_error_code=%s(0x%" PRIx64 ")"), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->stream_id, - strapperrorcode(fr->app_error_code), fr->app_error_code); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " STOP_SENDING(0x%02" PRIx64 + ") id=0x%" PRIx64 + " app_error_code=%s(0x%" PRIx64 ")", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->stream_id, + strapperrorcode(fr->app_error_code), fr->app_error_code); } static void log_fr_path_challenge(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -403,10 +366,10 @@ static void log_fr_path_challenge(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const char *dir) { uint8_t buf[sizeof(fr->data) * 2 + 1]; - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " PATH_CHALLENGE(0x%02" PRIx64 ") data=0x%s"), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " PATH_CHALLENGE(0x%02" PRIx64 ") data=0x%s", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, (const char *)ngtcp2_encode_hex(buf, fr->data, sizeof(fr->data))); } @@ -415,20 +378,20 @@ static void log_fr_path_response(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const char *dir) { uint8_t buf[sizeof(fr->data) * 2 + 1]; - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " PATH_RESPONSE(0x%02" PRIx64 ") data=0x%s"), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " PATH_RESPONSE(0x%02" PRIx64 ") data=0x%s", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, (const char *)ngtcp2_encode_hex(buf, fr->data, sizeof(fr->data))); } static void log_fr_crypto(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_stream *fr, const char *dir) { - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " CRYPTO(0x%02" PRIx64 ") offset=%" PRIu64 " len=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->offset, - ngtcp2_vec_len(fr->data, fr->datacnt)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " CRYPTO(0x%02" PRIx64 ") offset=%" PRIu64 + " len=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->offset, + ngtcp2_vec_len(fr->data, fr->datacnt)); } static void log_fr_new_token(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -445,36 +408,37 @@ static void log_fr_new_token(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, } else { p = ngtcp2_encode_hex(buf, fr->token, fr->tokenlen); } - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " NEW_TOKEN(0x%02" PRIx64 ") token=0x%s len=%zu"), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, (const char *)p, fr->tokenlen); + + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " NEW_TOKEN(0x%02" PRIx64 ") token=0x%s len=%zu", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, (const char *)p, fr->tokenlen); } static void log_fr_retire_connection_id(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_retire_connection_id *fr, const char *dir) { - log->log_printf( - log->user_data, - (NGTCP2_LOG_PKT " RETIRE_CONNECTION_ID(0x%02" PRIx64 ") seq=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, fr->seq); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " RETIRE_CONNECTION_ID(0x%02" PRIx64 + ") seq=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->seq); } static void log_fr_handshake_done(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_handshake_done *fr, const char *dir) { - log->log_printf(log->user_data, - (NGTCP2_LOG_PKT " HANDSHAKE_DONE(0x%02" PRIx64 ")"), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " HANDSHAKE_DONE(0x%02" PRIx64 ")", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type); } static void log_fr_datagram(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_datagram *fr, const char *dir) { - log->log_printf(log->user_data, - (NGTCP2_LOG_PKT " DATAGRAM(0x%02" PRIx64 ") len=%" PRIu64), - NGTCP2_LOG_FRM_HD_FIELDS(dir), fr->type, - ngtcp2_vec_len(fr->data, fr->datacnt)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " DATAGRAM(0x%02" PRIx64 ") len=%" PRIu64, + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, + ngtcp2_vec_len(fr->data, fr->datacnt)); } static void log_fr(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -580,8 +544,8 @@ void ngtcp2_log_rx_vn(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, } for (i = 0; i < nsv; ++i) { - log->log_printf(log->user_data, (NGTCP2_LOG_PKT " v=0x%08x"), - NGTCP2_LOG_PKT_HD_FIELDS("rx"), sv[i]); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_PKT, NGTCP2_LOG_PKT " v=0x%08x", + NGTCP2_LOG_PKT_HD_FIELDS("rx"), sv[i]); } } @@ -598,8 +562,8 @@ void ngtcp2_log_rx_sr(ngtcp2_log *log, const ngtcp2_pkt_stateless_reset *sr) { .type = NGTCP2_PKT_STATELESS_RESET, }; - log->log_printf( - log->user_data, (NGTCP2_LOG_PKT " token=0x%s randlen=%zu"), + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_PKT, NGTCP2_LOG_PKT " token=0x%s randlen=%zu", NGTCP2_LOG_PKT_HD_FIELDS("rx"), (const char *)ngtcp2_encode_hex(buf, sr->stateless_reset_token, sizeof(sr->stateless_reset_token)), @@ -622,9 +586,8 @@ void ngtcp2_log_remote_tp(ngtcp2_log *log, } if (params->stateless_reset_token_present) { - log->log_printf( - log->user_data, (NGTCP2_LOG_TP " stateless_reset_token=0x%s"), - NGTCP2_LOG_TP_HD_FIELDS, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, NGTCP2_LOG_TP " stateless_reset_token=0x%s", (const char *)ngtcp2_encode_hex(token, params->stateless_reset_token, sizeof(params->stateless_reset_token))); } @@ -633,116 +596,113 @@ void ngtcp2_log_remote_tp(ngtcp2_log *log, if (params->preferred_addr.ipv4_present) { sa_in = ¶ms->preferred_addr.ipv4; - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " preferred_address.ipv4_addr=%s"), - NGTCP2_LOG_TP_HD_FIELDS, - (const char *)ngtcp2_encode_ipv4( - addr, (const uint8_t *)&sa_in->sin_addr)); - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " preferred_address.ipv4_port=%u"), - NGTCP2_LOG_TP_HD_FIELDS, ngtcp2_ntohs(sa_in->sin_port)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " preferred_address.ipv4_addr=%s", + (const char *)ngtcp2_encode_ipv4( + addr, (const uint8_t *)&sa_in->sin_addr)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " preferred_address.ipv4_port=%u", + ngtcp2_ntohs(sa_in->sin_port)); } if (params->preferred_addr.ipv6_present) { sa_in6 = ¶ms->preferred_addr.ipv6; - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " preferred_address.ipv6_addr=%s"), - NGTCP2_LOG_TP_HD_FIELDS, - (const char *)ngtcp2_encode_ipv6( - addr, (const uint8_t *)&sa_in6->sin6_addr)); - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " preferred_address.ipv6_port=%u"), - NGTCP2_LOG_TP_HD_FIELDS, ngtcp2_ntohs(sa_in6->sin6_port)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " preferred_address.ipv6_addr=%s", + (const char *)ngtcp2_encode_ipv6( + addr, (const uint8_t *)&sa_in6->sin6_addr)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " preferred_address.ipv6_port=%u", + ngtcp2_ntohs(sa_in6->sin6_port)); } - log->log_printf( - log->user_data, (NGTCP2_LOG_TP " preferred_address.cid=0x%s"), - NGTCP2_LOG_TP_HD_FIELDS, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, NGTCP2_LOG_TP " preferred_address.cid=0x%s", (const char *)ngtcp2_encode_hex(cid, params->preferred_addr.cid.data, params->preferred_addr.cid.datalen)); - log->log_printf( - log->user_data, - (NGTCP2_LOG_TP " preferred_address.stateless_reset_token=0x%s"), - NGTCP2_LOG_TP_HD_FIELDS, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " preferred_address.stateless_reset_token=0x%s", (const char *)ngtcp2_encode_hex( token, params->preferred_addr.stateless_reset_token, sizeof(params->preferred_addr.stateless_reset_token))); } if (params->original_dcid_present) { - log->log_printf( - log->user_data, - (NGTCP2_LOG_TP " original_destination_connection_id=0x%s"), - NGTCP2_LOG_TP_HD_FIELDS, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " original_destination_connection_id=0x%s", (const char *)ngtcp2_encode_hex(cid, params->original_dcid.data, params->original_dcid.datalen)); } if (params->retry_scid_present) { - log->log_printf( - log->user_data, (NGTCP2_LOG_TP " retry_source_connection_id=0x%s"), - NGTCP2_LOG_TP_HD_FIELDS, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " retry_source_connection_id=0x%s", (const char *)ngtcp2_encode_hex(cid, params->retry_scid.data, params->retry_scid.datalen)); } if (params->initial_scid_present) { - log->log_printf( - log->user_data, (NGTCP2_LOG_TP " initial_source_connection_id=0x%s"), - NGTCP2_LOG_TP_HD_FIELDS, + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " initial_source_connection_id=0x%s", (const char *)ngtcp2_encode_hex(cid, params->initial_scid.data, params->initial_scid.datalen)); } - log->log_printf( - log->user_data, - (NGTCP2_LOG_TP " initial_max_stream_data_bidi_local=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, params->initial_max_stream_data_bidi_local); - log->log_printf( - log->user_data, - (NGTCP2_LOG_TP " initial_max_stream_data_bidi_remote=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, params->initial_max_stream_data_bidi_remote); - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " initial_max_stream_data_uni=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, params->initial_max_stream_data_uni); - log->log_printf(log->user_data, (NGTCP2_LOG_TP " initial_max_data=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, params->initial_max_data); - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " initial_max_streams_bidi=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, params->initial_max_streams_bidi); - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " initial_max_streams_uni=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, params->initial_max_streams_uni); - log->log_printf(log->user_data, (NGTCP2_LOG_TP " max_idle_timeout=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, - params->max_idle_timeout / NGTCP2_MILLISECONDS); - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " max_udp_payload_size=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, params->max_udp_payload_size); - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " ack_delay_exponent=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, params->ack_delay_exponent); - log->log_printf(log->user_data, (NGTCP2_LOG_TP " max_ack_delay=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, - params->max_ack_delay / NGTCP2_MILLISECONDS); - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " active_connection_id_limit=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, params->active_connection_id_limit); - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " disable_active_migration=%d"), - NGTCP2_LOG_TP_HD_FIELDS, params->disable_active_migration); - log->log_printf(log->user_data, - (NGTCP2_LOG_TP " max_datagram_frame_size=%" PRIu64), - NGTCP2_LOG_TP_HD_FIELDS, params->max_datagram_frame_size); - log->log_printf(log->user_data, (NGTCP2_LOG_TP " grease_quic_bit=%d"), - NGTCP2_LOG_TP_HD_FIELDS, params->grease_quic_bit); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP + " initial_max_stream_data_bidi_local=%" PRIu64, + params->initial_max_stream_data_bidi_local); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP + " initial_max_stream_data_bidi_remote=%" PRIu64, + params->initial_max_stream_data_bidi_remote); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " initial_max_stream_data_uni=%" PRIu64, + params->initial_max_stream_data_uni); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " initial_max_data=%" PRIu64, + params->initial_max_data); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " initial_max_streams_bidi=%" PRIu64, + params->initial_max_streams_bidi); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " initial_max_streams_uni=%" PRIu64, + params->initial_max_streams_uni); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " max_idle_timeout=%" PRIu64, + params->max_idle_timeout / NGTCP2_MILLISECONDS); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " max_udp_payload_size=%" PRIu64, + params->max_udp_payload_size); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " ack_delay_exponent=%" PRIu64, + params->ack_delay_exponent); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " max_ack_delay=%" PRIu64, + params->max_ack_delay / NGTCP2_MILLISECONDS); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " active_connection_id_limit=%" PRIu64, + params->active_connection_id_limit); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " disable_active_migration=%d", + params->disable_active_migration); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " max_datagram_frame_size=%" PRIu64, + params->max_datagram_frame_size); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " grease_quic_bit=%d", + params->grease_quic_bit); if (params->version_info_present) { - log->log_printf( - log->user_data, - (NGTCP2_LOG_TP " version_information.chosen_version=0x%08x"), - NGTCP2_LOG_TP_HD_FIELDS, params->version_info.chosen_version); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP + " version_information.chosen_version=0x%08x", + params->version_info.chosen_version); assert(!(params->version_info.available_versionslen & 0x3)); @@ -751,10 +711,10 @@ void ngtcp2_log_remote_tp(ngtcp2_log *log, i += sizeof(uint32_t)) { p = ngtcp2_get_uint32be(&version, p); - log->log_printf( - log->user_data, - (NGTCP2_LOG_TP " version_information.available_versions[%zu]=0x%08x"), - NGTCP2_LOG_TP_HD_FIELDS, i >> 2, version); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " version_information.available_versions[%zu]=0x%08x", + i >> 2, version); } } } @@ -765,9 +725,9 @@ void ngtcp2_log_pkt_lost(ngtcp2_log *log, int64_t pkt_num, uint8_t type, return; } - ngtcp2_log_info(log, NGTCP2_LOG_EVENT_LDC, - "pkn=%" PRId64 " lost type=%s sent_ts=%" PRIu64, pkt_num, - strpkttype_type_flags(type, flags), sent_ts); + ngtcp2_log_infof(log, NGTCP2_LOG_EVENT_LDC, + "pkn=%" PRId64 " lost type=%s sent_ts=%" PRIu64, pkt_num, + strpkttype_type_flags(type, flags), sent_ts); } static void log_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -780,13 +740,13 @@ static void log_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, } if (hd->type == NGTCP2_PKT_1RTT) { - ngtcp2_log_info( + ngtcp2_log_infof( log, NGTCP2_LOG_EVENT_PKT, "%s pkn=%" PRId64 " dcid=0x%s type=%s k=%d", dir, hd->pkt_num, (const char *)ngtcp2_encode_hex(dcid, hd->dcid.data, hd->dcid.datalen), strpkttype(hd), (hd->flags & NGTCP2_PKT_FLAG_KEY_PHASE) != 0); } else { - ngtcp2_log_info( + ngtcp2_log_infof( log, NGTCP2_LOG_EVENT_PKT, "%s pkn=%" PRId64 " dcid=0x%s scid=0x%s version=0x%08x type=%s len=%zu", dir, hd->pkt_num, @@ -804,31 +764,12 @@ void ngtcp2_log_tx_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd) { log_pkt_hd(log, hd, "tx"); } -void ngtcp2_log_info(ngtcp2_log *log, ngtcp2_log_event ev, const char *fmt, - ...) { - va_list ap; - int n; - char buf[NGTCP2_LOG_BUFLEN]; - - if (!log->log_printf || !(log->events & ev)) { - return; - } - - va_start(ap, fmt); - n = vsnprintf(buf, sizeof(buf), fmt, ap); - va_end(ap); - - if (n < 0 || (size_t)n >= sizeof(buf)) { - return; - } - - log->log_printf(log->user_data, (NGTCP2_LOG_HD " %s"), - timestamp_cast(log->last_ts - log->ts), log->scid, - strevent(ev), buf); +void ngtcp2_log_tx_cancel(ngtcp2_log *log, const ngtcp2_pkt_hd *hd) { + ngtcp2_log_infof(log, NGTCP2_LOG_EVENT_PKT, + "cancel tx pkn=%" PRId64 " type=%s", hd->pkt_num, + strpkttype(hd)); } -void ngtcp2_log_tx_cancel(ngtcp2_log *log, const ngtcp2_pkt_hd *hd) { - ngtcp2_log_info(log, NGTCP2_LOG_EVENT_PKT, - "cancel tx pkn=%" PRId64 " type=%s", hd->pkt_num, - strpkttype(hd)); +uint64_t ngtcp2_log_timestamp(const ngtcp2_log *log) { + return (log->last_ts - log->ts) / NGTCP2_MILLISECONDS; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h index 13fb81a72e..707cd3089e 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h @@ -121,12 +121,71 @@ void ngtcp2_log_tx_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd); void ngtcp2_log_tx_cancel(ngtcp2_log *log, const ngtcp2_pkt_hd *hd); +#define NGTCP2_LOG_HD "I%08" PRIu64 " 0x%s %s" + +uint64_t ngtcp2_log_timestamp(const ngtcp2_log *log); + +static inline const char *ngtcp2_log_event_str(ngtcp2_log_event ev) { + switch (ev) { + case NGTCP2_LOG_EVENT_CON: + return "con"; + case NGTCP2_LOG_EVENT_PKT: + return "pkt"; + case NGTCP2_LOG_EVENT_FRM: + return "frm"; + case NGTCP2_LOG_EVENT_LDC: + return "ldc"; + case NGTCP2_LOG_EVENT_CRY: + return "cry"; + case NGTCP2_LOG_EVENT_PTV: + return "ptv"; + case NGTCP2_LOG_EVENT_CCA: + return "cca"; + case NGTCP2_LOG_EVENT_NONE: + default: + return "non"; + } +} + +#define ngtcp2_log_infof_raw(LOG, EV, FMT, ...) \ + (LOG)->log_printf((LOG)->user_data, NGTCP2_LOG_HD " " FMT, \ + ngtcp2_log_timestamp(LOG), (LOG)->scid, \ + ngtcp2_log_event_str(EV), __VA_ARGS__); + +/** + * @function + * + * `ngtcp2_log_infof` writes info level log with printf like + * formatting. + */ +#define ngtcp2_log_infof(LOG, EV, FMT, ...) \ + do { \ + if (!(LOG)->log_printf || !((LOG)->events & (EV))) { \ + break; \ + } \ + \ + ngtcp2_log_infof_raw((LOG), (EV), FMT, __VA_ARGS__); \ + } while (0) + +#define ngtcp2_log_info_raw(LOG, EV, FMT) \ + (LOG)->log_printf((LOG)->user_data, NGTCP2_LOG_HD " " FMT, \ + ngtcp2_log_timestamp(LOG), (LOG)->scid, \ + ngtcp2_log_event_str(EV)) + /** * @function * - * `ngtcp2_log_info` writes info level log. + * `ngtcp2_log_info` writes info level log. FMT should not contain + * formatting directive. This function exists to workaround the issue + * that __VA_ARGS__ cannot be empty. */ -void ngtcp2_log_info(ngtcp2_log *log, ngtcp2_log_event ev, const char *fmt, - ...); +#define ngtcp2_log_info(LOG, EV, FMT) \ + do { \ + if (!(LOG)->log_printf || !((LOG)->events & (EV))) { \ + break; \ + } \ + \ + ngtcp2_log_info_raw((LOG), (EV), FMT); \ + } while (0) #endif /* !defined(NGTCP2_LOG_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c index c0f920746a..19667e17db 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c @@ -227,13 +227,11 @@ void ngtcp2_qlog_start(ngtcp2_qlog *qlog, const ngtcp2_cid *odcid, int server) { } void ngtcp2_qlog_end(ngtcp2_qlog *qlog) { - uint8_t buf[1] = {0}; - if (!qlog->write) { return; } - qlog->write(qlog->user_data, NGTCP2_QLOG_WRITE_FLAG_FIN, &buf, 0); + qlog->write(qlog->user_data, NGTCP2_QLOG_WRITE_FLAG_FIN, "", 0); } static ngtcp2_vec vec_pkt_type_initial = ngtcp2_make_vec_lit("initial"); @@ -1095,7 +1093,6 @@ void ngtcp2_qlog_metrics_updated(ngtcp2_qlog *qlog, void ngtcp2_qlog_pkt_lost(ngtcp2_qlog *qlog, ngtcp2_rtb_entry *ent) { uint8_t buf[256]; uint8_t *p = buf; - ngtcp2_pkt_hd hd = {0}; if (!qlog->write) { return; @@ -1107,11 +1104,11 @@ void ngtcp2_qlog_pkt_lost(ngtcp2_qlog *qlog, ngtcp2_rtb_entry *ent) { p = write_verbatim( p, ",\"name\":\"recovery:packet_lost\",\"data\":{\"header\":"); - hd.type = ent->hd.type; - hd.flags = ent->hd.flags; - hd.pkt_num = ent->hd.pkt_num; - - p = write_pkt_hd(p, &hd); + p = write_pkt_hd(p, &(ngtcp2_pkt_hd){ + .pkt_num = ent->hd.pkt_num, + .type = ent->hd.type, + .flags = ent->hd.flags, + }); p = write_verbatim(p, "}}\n"); qlog->write(qlog->user_data, NGTCP2_QLOG_WRITE_FLAG_NONE, buf, @@ -1154,20 +1151,19 @@ void ngtcp2_qlog_stateless_reset_pkt_received( ngtcp2_qlog *qlog, const ngtcp2_pkt_stateless_reset *sr) { uint8_t buf[256]; uint8_t *p = buf; - ngtcp2_pkt_hd hd = {0}; if (!qlog->write) { return; } - hd.type = NGTCP2_PKT_STATELESS_RESET; - *p++ = '\x1e'; *p++ = '{'; p = qlog_write_time(qlog, p); p = write_verbatim( p, ",\"name\":\"transport:packet_received\",\"data\":{\"header\":"); - p = write_pkt_hd(p, &hd); + p = write_pkt_hd(p, &(ngtcp2_pkt_hd){ + .type = NGTCP2_PKT_STATELESS_RESET, + }); *p++ = ','; p = write_pair_hex(p, "stateless_reset_token", sr->stateless_reset_token, NGTCP2_STATELESS_RESET_TOKENLEN); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c index e898915329..15f393b85d 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c @@ -32,12 +32,14 @@ void ngtcp2_range_init(ngtcp2_range *r, uint64_t begin, uint64_t end) { ngtcp2_range ngtcp2_range_intersect(const ngtcp2_range *a, const ngtcp2_range *b) { - ngtcp2_range r = {0}; + ngtcp2_range r; uint64_t begin = ngtcp2_max_uint64(a->begin, b->begin); uint64_t end = ngtcp2_min_uint64(a->end, b->end); if (begin < end) { ngtcp2_range_init(&r, begin, end); + } else { + r = (ngtcp2_range){0}; } return r; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c index efedc3daa7..d13ed9a14a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.c @@ -41,7 +41,7 @@ void ngtcp2_ratelim_init(ngtcp2_ratelim *rlim, uint64_t burst, uint64_t rate, /* ratelim_update updates rlim->tokens with the current |ts|. */ static void ratelim_update(ngtcp2_ratelim *rlim, ngtcp2_tstamp ts) { - uint64_t d, gain; + uint64_t d, gain, gps; assert(ts >= rlim->ts); @@ -52,16 +52,23 @@ static void ratelim_update(ngtcp2_ratelim *rlim, ngtcp2_tstamp ts) { d = ts - rlim->ts; rlim->ts = ts; - gain = rlim->rate * d + rlim->carry; + if (rlim->rate > (UINT64_MAX - rlim->carry) / d) { + gain = UINT64_MAX; + } else { + gain = rlim->rate * d + rlim->carry; + } - rlim->tokens += gain / NGTCP2_SECONDS; + gps = gain / NGTCP2_SECONDS; - if (rlim->tokens < rlim->burst) { + if (gps < rlim->burst && rlim->tokens < rlim->burst - gps) { + rlim->tokens += gps; rlim->carry = gain % NGTCP2_SECONDS; - } else { - rlim->tokens = rlim->burst; - rlim->carry = 0; + + return; } + + rlim->tokens = rlim->burst; + rlim->carry = 0; } int ngtcp2_ratelim_drain(ngtcp2_ratelim *rlim, uint64_t n, ngtcp2_tstamp ts) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h index 14485c562d..231f5d1b01 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ratelim.h @@ -28,7 +28,7 @@ #ifdef HAVE_CONFIG_H # include -#endif /* HAVE_CONFIG_H */ +#endif /* defined(HAVE_CONFIG_H) */ #include diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c index 7df1c197db..f51c0f14ef 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c @@ -454,23 +454,28 @@ static int rtb_on_pkt_lost(ngtcp2_rtb *rtb, ngtcp2_rtb_entry *ent, if (ent->flags & (NGTCP2_RTB_ENTRY_FLAG_PMTUD_PROBE | NGTCP2_RTB_ENTRY_FLAG_SKIP)) { ++rtb->num_lost_ignore_pkts; - } else if (ent->hd.pkt_num >= rtb->cc_pkt_num) { - rtb->rst->lost += ent->pktlen; - - if (rtb->cc->on_pkt_lost) { - cc->on_pkt_lost(cc, cstat, - ngtcp2_cc_pkt_init(&pkt, ent->hd.pkt_num, ent->pktlen, - pktns->id, ent->ts, ent->rst.lost, - ent->rst.tx_in_flight, - ent->rst.is_app_limited), - ts); + } else { + ++cstat->pkt_lost; + cstat->bytes_lost += ent->pktlen; + + if (ent->hd.pkt_num >= rtb->cc_pkt_num) { + rtb->rst->lost += ent->pktlen; + + if (rtb->cc->on_pkt_lost) { + cc->on_pkt_lost(cc, cstat, + ngtcp2_cc_pkt_init(&pkt, ent->hd.pkt_num, ent->pktlen, + pktns->id, ent->ts, ent->rst.lost, + ent->rst.tx_in_flight, + ent->rst.is_app_limited), + ts); + } } } if (ent->flags & NGTCP2_RTB_ENTRY_FLAG_PTO_RECLAIMED) { - ngtcp2_log_info(rtb->log, NGTCP2_LOG_EVENT_LDC, - "pkn=%" PRId64 " has already been reclaimed on PTO", - ent->hd.pkt_num); + ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, + "pkn=%" PRId64 " has already been reclaimed on PTO", + ent->hd.pkt_num); assert(!(ent->flags & NGTCP2_RTB_ENTRY_FLAG_LOST_RETRANSMITTED)); assert(UINT64_MAX == ent->lost_ts); } else { @@ -793,12 +798,12 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, int ack_eliciting_pkt_acked = 0; size_t ecn_acked = 0; int verify_ecn = 0; - ngtcp2_cc_ack cc_ack = {0}; + ngtcp2_cc_ack cc_ack = { + .prior_bytes_in_flight = cstat->bytes_in_flight, + .rtt = UINT64_MAX, + }; size_t num_lost_pkts = rtb->num_lost_pkts - rtb->num_lost_ignore_pkts; - cc_ack.prior_bytes_in_flight = cstat->bytes_in_flight; - cc_ack.rtt = UINT64_MAX; - if (conn && (conn->flags & NGTCP2_CONN_FLAG_KEY_UPDATE_NOT_CONFIRMED) && (conn->flags & NGTCP2_CONN_FLAG_KEY_UPDATE_INITIATOR) && largest_ack >= conn->pktns.crypto.tx.ckm->pkt_num) { @@ -1153,10 +1158,10 @@ static int rtb_detect_lost_pkt(ngtcp2_rtb *rtb, uint64_t *ppkt_lost, */ if (pktns->id == NGTCP2_PKTNS_ID_APPLICATION && loss_window && loss_window >= congestion_period) { - ngtcp2_log_info(rtb->log, NGTCP2_LOG_EVENT_LDC, - "persistent congestion loss_window=%" PRIu64 - " congestion_period=%" PRIu64, - loss_window, congestion_period); + ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, + "persistent congestion loss_window=%" PRIu64 + " congestion_period=%" PRIu64, + loss_window, congestion_period); /* Reset min_rtt, srtt, and rttvar here. Next new RTT sample will be used to recalculate these values. */ @@ -1203,8 +1208,8 @@ void ngtcp2_rtb_remove_excessive_lost_pkt(ngtcp2_rtb *rtb, size_t n) { assert(ent->flags & NGTCP2_RTB_ENTRY_FLAG_LOST_RETRANSMITTED); - ngtcp2_log_info(rtb->log, NGTCP2_LOG_EVENT_LDC, - "removing stale lost pkn=%" PRId64, ent->hd.pkt_num); + ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, + "removing stale lost pkn=%" PRId64, ent->hd.pkt_num); --rtb->num_lost_pkts; @@ -1245,8 +1250,8 @@ void ngtcp2_rtb_remove_expired_lost_pkt(ngtcp2_rtb *rtb, return; } - ngtcp2_log_info(rtb->log, NGTCP2_LOG_EVENT_LDC, - "removing stale lost pkn=%" PRId64, ent->hd.pkt_num); + ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, + "removing stale lost pkn=%" PRId64, ent->hd.pkt_num); --rtb->num_lost_pkts; @@ -1398,9 +1403,9 @@ int ngtcp2_rtb_reclaim_on_retry(ngtcp2_rtb *rtb, ngtcp2_conn *conn, assert(!(ent->flags & NGTCP2_RTB_ENTRY_FLAG_PMTUD_PROBE)); if (ent->flags & NGTCP2_RTB_ENTRY_FLAG_PTO_RECLAIMED) { - ngtcp2_log_info(rtb->log, NGTCP2_LOG_EVENT_LDC, - "pkn=%" PRId64 " has already been reclaimed on PTO", - ent->hd.pkt_num); + ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, + "pkn=%" PRId64 " has already been reclaimed on PTO", + ent->hd.pkt_num); continue; } diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h index d58a6f1240..baecc277ee 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h @@ -1561,7 +1561,8 @@ typedef struct ngtcp2_transport_params { } ngtcp2_transport_params; #define NGTCP2_CONN_INFO_V1 1 -#define NGTCP2_CONN_INFO_VERSION NGTCP2_CONN_INFO_V1 +#define NGTCP2_CONN_INFO_V2 2 +#define NGTCP2_CONN_INFO_VERSION NGTCP2_CONN_INFO_V2 /** * @struct @@ -1600,6 +1601,52 @@ typedef struct ngtcp2_conn_info { * packets which have not been acknowledged. */ uint64_t bytes_in_flight; + /* The following fields have been added since NGTCP2_CONN_INFO_V2. */ + /** + * :member:`pkt_sent` is the number of QUIC packets sent. This + * field has been available since v1.16.0. + */ + uint64_t pkt_sent; + /** + * :member:`bytes_sent` is the number of bytes (the sum of QUIC + * packet length) sent. This field has been available since + * v1.16.0. + */ + uint64_t bytes_sent; + /** + * :member:`pkt_recv` is the number of QUIC packets received, + * excluding discarded ones. This field has been available since + * v1.16.0. + */ + uint64_t pkt_recv; + /** + * :member:`bytes_recv` is the number of bytes (the sum of QUIC + * packet length) received, excluding discarded ones. This field + * has been available since v1.16.0. + */ + uint64_t bytes_recv; + /** + * :member:`pkt_lost` is the number of QUIC packets that are + * considered lost, excluding PMTUD packets. This field has been + * available since v1.16.0. + */ + uint64_t pkt_lost; + /** + * :member:`bytes_lost` is the number of bytes (the sum of QUIC + * packet length) lost, excluding PMTUD packets. This field has + * been available since v1.16.0. + */ + uint64_t bytes_lost; + /** + * :member:`ping_recv` is the number of PING frames received. This + * field has been available since v1.16.0. + */ + uint64_t ping_recv; + /** + * :member:`pkt_discarded` is the number of QUIC packets discarded. + * This field has been available since v1.16.0. + */ + uint64_t pkt_discarded; } ngtcp2_conn_info; /** @@ -5686,6 +5733,16 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( ngtcp2_pkt_info *pi, uint8_t *buf, size_t buflen, size_t *pgsolen, ngtcp2_write_pkt write_pkt, ngtcp2_tstamp ts); +/** + * @function + * + * `ngtcp2_conn_get_timestamp` returns the latest timestamp that is + * known to |conn|. + * + * This function has been available since v1.16.0. + */ +NGTCP2_EXTERN ngtcp2_tstamp ngtcp2_conn_get_timestamp(const ngtcp2_conn *conn); + /** * @function * diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index 4bc5a6a299..9fabd7b179 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.15.0" +#define NGTCP2_VERSION "1.16.0" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x010f00 +#define NGTCP2_VERSION_NUM 0x011000 #endif /* !defined(NGTCP2_VERSION_H) */ From 5deae5465bbe117928269b6147f581eb02d384b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Wed, 24 Sep 2025 13:03:53 +0200 Subject: [PATCH 123/675] scripts: misc improvements to update_ngtcp2.sh If new files were added between libngtcp2 versions, the script will now store the files in a "NEWFILES" directory for operator's convenience. --- scripts/update_ngtcp2.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/update_ngtcp2.sh b/scripts/update_ngtcp2.sh index c116c81eee..4bcc4b31f2 100755 --- a/scripts/update_ngtcp2.sh +++ b/scripts/update_ngtcp2.sh @@ -56,11 +56,13 @@ done cp "${clonedir}/ngtcp2/lib/ngtcp2_crypto.h" ./lib/ngtcp2_crypto.h cp "${clonedir}/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h" ./ngtcp2_crypto.h -newfiles="$(wc -l "${clonedir}/added" | cut -d' ' -f1)" +newfiles="$(wc -l <"${clonedir}/added")" if [ "$newfiles" -gt 0 ]; then printf "%s new file(s) were added between %s and %s; add these manually if desired:\n" \ "$newfiles" "$cur_version" "$1" cut -d'/' -f'5-' "${clonedir}/added" | xargs -r printf "\t%s\n" + mkdir NEWFILES + xargs <"$clonedir"/added -I{} mv {} ./NEWFILES fi rm -rf "$clonedir" From 86de9dc0d1328421530b72a33cab772fbf580c38 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 26 Sep 2025 14:43:52 +0200 Subject: [PATCH 124/675] configure: fix linking with libhiredis if --disable-redis --- configure.ac | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index 8a208f5460..c1ed5bc2a5 100644 --- a/configure.ac +++ b/configure.ac @@ -264,12 +264,10 @@ AC_ARG_ENABLE([redis], AS_HELP_STRING([--enable-redis=auto|yes|client|module|no], [enable Redis support [default=auto]]), [], [enable_redis=auto]) -PKG_CHECK_MODULES([hiredis], [hiredis], [have_hiredis=yes], [have_hiredis=no]) - AS_CASE([$enable_redis], - [auto], [AS_IF([test "$have_hiredis" = "yes"], [enable_redis=yes], [enable_redis=no])], - [yes], [AS_IF([test "$have_hiredis" = "yes"], [enable_redis=yes], [AC_MSG_ERROR([libhiredis not available])])], - [client], [AS_IF([test "$have_hiredis" = "yes"], [enable_redis=client], [AC_MSG_ERROR([libhiredis not available])])], + [auto], [PKG_CHECK_MODULES([hiredis], [hiredis], [enable_redis=yes], [enable_redis=no])], + [yes], [PKG_CHECK_MODULES([hiredis], [hiredis], [enable_redis=yes], [AC_MSG_ERROR([libhiredis not available])])], + [client], [PKG_CHECK_MODULES([hiredis], [hiredis], [enable_redis=client], [AC_MSG_ERROR([libhiredis not available])])], [module], [AS_IF([test "$enable_shared" = "yes"], [enable_redis=module], [AC_MSG_ERROR([link mode has to be 'shared'])])], [no], [], [*], [AC_MSG_ERROR([Invalid value of --enable-redis.])] From c5415159268ac20013ec40ef92992e3a80358500 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 27 Sep 2025 18:48:50 +0200 Subject: [PATCH 125/675] distro/deb: Remove redundant Rules-Requires-Root: no --- distro/pkg/deb-nolibxdp/control | 1 - distro/pkg/deb/control | 1 - 2 files changed, 2 deletions(-) diff --git a/distro/pkg/deb-nolibxdp/control b/distro/pkg/deb-nolibxdp/control index eb950dbe3d..580a082216 100644 --- a/distro/pkg/deb-nolibxdp/control +++ b/distro/pkg/deb-nolibxdp/control @@ -36,7 +36,6 @@ Standards-Version: 4.5.0 Homepage: https://www.knot-dns.cz/ Vcs-Browser: https://gitlab.nic.cz/knot/knot-dns Vcs-Git: https://gitlab.nic.cz/knot/knot-dns.git -Rules-Requires-Root: no Package: knot Architecture: any diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index ddf3c7297c..a4fbbf3fa8 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -39,7 +39,6 @@ Standards-Version: 4.5.0 Homepage: https://www.knot-dns.cz/ Vcs-Browser: https://gitlab.nic.cz/knot/knot-dns Vcs-Git: https://gitlab.nic.cz/knot/knot-dns.git -Rules-Requires-Root: no Package: knot Architecture: any From e90efed88fcbe9b067b510491b3ed521ae0cd36c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 27 Sep 2025 18:49:49 +0200 Subject: [PATCH 126/675] distro/deb: Update Standards-Version to latest 4.7.2 (no changes) --- distro/pkg/deb-nolibxdp/control | 2 +- distro/pkg/deb/control | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/distro/pkg/deb-nolibxdp/control b/distro/pkg/deb-nolibxdp/control index 580a082216..685eba6f3e 100644 --- a/distro/pkg/deb-nolibxdp/control +++ b/distro/pkg/deb-nolibxdp/control @@ -32,7 +32,7 @@ Build-Depends: protobuf-c-compiler, python3-all, softhsm2 , -Standards-Version: 4.5.0 +Standards-Version: 4.7.2 Homepage: https://www.knot-dns.cz/ Vcs-Browser: https://gitlab.nic.cz/knot/knot-dns Vcs-Git: https://gitlab.nic.cz/knot/knot-dns.git diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index a4fbbf3fa8..15a0745166 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -35,7 +35,7 @@ Build-Depends: protobuf-c-compiler, python3-all, softhsm2 , -Standards-Version: 4.5.0 +Standards-Version: 4.7.2 Homepage: https://www.knot-dns.cz/ Vcs-Browser: https://gitlab.nic.cz/knot/knot-dns Vcs-Git: https://gitlab.nic.cz/knot/knot-dns.git From 9621c50e57e524c33b347f9c745b48185a33390e Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 27 Sep 2025 20:34:16 +0200 Subject: [PATCH 127/675] distro/deb: add knot-keymgr to Depends for tests --- distro/pkg/deb/tests/control | 1 + 1 file changed, 1 insertion(+) diff --git a/distro/pkg/deb/tests/control b/distro/pkg/deb/tests/control index 76bc1181bf..a14968f00a 100644 --- a/distro/pkg/deb/tests/control +++ b/distro/pkg/deb/tests/control @@ -11,6 +11,7 @@ Depends: knot, knot-dnsutils, knot-dnssecutils, + knot-keymgr, Tests: python-libknot Depends: From 0e55bf2ac9de802fdfa8d99cd1d219bbd1e482f3 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 27 Sep 2025 20:53:42 +0200 Subject: [PATCH 128/675] distro/deb: package descriptions cleanup --- distro/pkg/deb-nolibxdp/control | 105 +++++++++-------------------- distro/pkg/deb/control | 113 ++++++++++---------------------- 2 files changed, 63 insertions(+), 155 deletions(-) diff --git a/distro/pkg/deb-nolibxdp/control b/distro/pkg/deb-nolibxdp/control index 685eba6f3e..0c5d3403a7 100644 --- a/distro/pkg/deb-nolibxdp/control +++ b/distro/pkg/deb-nolibxdp/control @@ -52,7 +52,7 @@ Pre-Depends: ${misc:Pre-Depends}, Suggests: systemd, -Description: Authoritative domain name server +Description: Authoritative DNS server Knot DNS is a fast, authoritative only, high performance, feature full and open source name server. . @@ -68,15 +68,12 @@ Depends: ${shlibs:Depends}, Section: libs Description: DNS shared library from Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides a DNS shared library used by Knot DNS and + Knot Resolver. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides a DNS shared library used by Knot DNS and - Knot Resolver. Package: libzscanner5 Architecture: any @@ -85,15 +82,12 @@ Depends: ${shlibs:Depends}, Section: libs Description: DNS zone-parsing shared library from Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides a fast zone parser shared library used by + DNS and Knot Resolver. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides a fast zone parser shared library used by Knot - DNS and Knot Resolver. Package: libdnssec10 Architecture: any @@ -102,15 +96,12 @@ Depends: ${shlibs:Depends}, Section: libs Description: DNSSEC shared library from Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides a DNSSEC shared library used by Knot DNS + and Knot Resolver. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides common DNSSEC shared library used by Knot DNS - and Knot Resolver. Package: libknot-dev Architecture: any @@ -121,15 +112,13 @@ Depends: libzscanner5 (= ${binary:Version}), ${misc:Depends}, Section: libdevel -Description: Knot DNS shared library development files - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. +Description: Development files for Knot DNS shared libraries + This package provides development files for shared libraries from + Knot DNS. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides development files for shared libraries from Knot DNS. Package: knot-dnsutils Architecture: any @@ -139,24 +128,15 @@ Depends: libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, -Description: DNS clients provided with Knot DNS (kdig, knsupdate) - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. - . - Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ - registry and hence is well suited to run anything from the root - zone, the top-level domain, to many smaller standard domain names. - . - This package delivers various DNS client programs from Knot DNS. +Description: DNS clients from Knot DNS + This package provides various DNS client programs from Knot DNS. . - kdig - query a DNS server in various ways - knsupdate - perform dynamic updates (See RFC2136) - - kxdpgun - send a DNS query stream over UDP to a DNS server - . - Those clients were designed to be almost 1:1 compatible with BIND dnsutils, - but they provide some enhancements, which are documented. . - WARNING: knslookup is not provided as it is considered obsolete. + Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ + registry and hence is well suited to run anything from the root + zone, the top-level domain, to many smaller standard domain names. Package: knot-dnssecutils Architecture: any @@ -166,19 +146,16 @@ Depends: libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, -Description: DNSSEC tools provided with Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. +Description: DNSSEC tools + This package provides various DNSSEC tools from Knot DNS. + . + - kzonecheck - check a DNS zone file + - kzonesign - sign a DNS zone file + - knsec3hash - compute NSEC3 hash . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package delivers various DNSSEC tools from Knot DNS. - . - - kzonecheck - - kzonesign - - knsec3hash Package: knot-host Architecture: any @@ -188,16 +165,12 @@ Depends: libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, -Description: Version of 'host' bundled with Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. +Description: Simple DNS client + This package provides a simple DNS client program from Knot DNS. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides the 'host' program from Knot DNS. This program is - designed to be almost 1:1 compatible with BIND 9.x 'host' program. Package: knot-keymgr Architecture: any @@ -208,14 +181,11 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, Description: Knot DNS key management utility - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides the 'keymgr' program for Knot DNS key management. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides the 'keymgr' program for Knot DNS key management. Package: knot-module-dnstap Architecture: any @@ -224,14 +194,11 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, Description: dnstap module for Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides dnstap module for logging DNS traffic. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package contains dnstap module for logging DNS traffic. Package: knot-module-geoip Architecture: any @@ -240,14 +207,11 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, Description: geoip module for Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides geoip module for geography-based responses. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package contains geoip module for geography-based responses. Package: knot-doc Architecture: all @@ -259,15 +223,12 @@ Depends: ${misc:Depends}, Section: doc Description: Documentation for Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides various documents that are useful for + maintaining a working Knot DNS installation. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides various documents that are useful for - maintaining a working Knot DNS installation. Package: knot-exporter Architecture: all @@ -276,14 +237,11 @@ Depends: ${python3:Depends}, Section: python Description: Prometheus exporter for Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides Python Prometheus exporter for Knot DNS. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides Python Prometheus exporter for Knot DNS. Package: python3-libknot Architecture: all @@ -293,11 +251,8 @@ Depends: ${python3:Depends}, Section: python Description: Python bindings for libknot - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides Python bindings for the libknot shared library. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides Python bindings for the libknot shared library. diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index 15a0745166..966f742f8e 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -55,7 +55,7 @@ Pre-Depends: ${misc:Pre-Depends}, Suggests: systemd, -Description: Authoritative domain name server +Description: Authoritative DNS server Knot DNS is a fast, authoritative only, high performance, feature full and open source name server. . @@ -71,15 +71,12 @@ Depends: ${shlibs:Depends}, Section: libs Description: DNS shared library from Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides a DNS shared library used by Knot DNS and + Knot Resolver. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides a DNS shared library used by Knot DNS and - Knot Resolver. Package: libzscanner5 Architecture: any @@ -88,15 +85,12 @@ Depends: ${shlibs:Depends}, Section: libs Description: DNS zone-parsing shared library from Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides a fast zone parser shared library used by + DNS and Knot Resolver. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides a fast zone parser shared library used by Knot - DNS and Knot Resolver. Package: libdnssec10 Architecture: any @@ -105,15 +99,12 @@ Depends: ${shlibs:Depends}, Section: libs Description: DNSSEC shared library from Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides a DNSSEC shared library used by Knot DNS + and Knot Resolver. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides common DNSSEC shared library used by Knot DNS - and Knot Resolver. Package: libknot-dev Architecture: any @@ -124,15 +115,13 @@ Depends: libzscanner5 (= ${binary:Version}), ${misc:Depends}, Section: libdevel -Description: Knot DNS shared library development files - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. +Description: Development files for Knot DNS shared libraries + This package provides development files for shared libraries from + Knot DNS. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides development files for shared libraries from Knot DNS. Package: knot-dnsutils Architecture: any @@ -142,24 +131,16 @@ Depends: libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, -Description: DNS clients provided with Knot DNS (kdig, knsupdate) - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. - . - Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ - registry and hence is well suited to run anything from the root - zone, the top-level domain, to many smaller standard domain names. - . - This package delivers various DNS client programs from Knot DNS. +Description: DNS clients from Knot DNS + This package provides various DNS client programs from Knot DNS. . - kdig - query a DNS server in various ways - knsupdate - perform dynamic updates (See RFC2136) - - kxdpgun - send a DNS query stream over UDP to a DNS server + - kxdpgun - send a DNS query stream . - Those clients were designed to be almost 1:1 compatible with BIND dnsutils, - but they provide some enhancements, which are documented. - . - WARNING: knslookup is not provided as it is considered obsolete. + Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ + registry and hence is well suited to run anything from the root + zone, the top-level domain, to many smaller standard domain names. Package: knot-dnssecutils Architecture: any @@ -169,19 +150,16 @@ Depends: libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, -Description: DNSSEC tools provided with Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. +Description: DNSSEC tools + This package provides various DNSSEC tools from Knot DNS. + . + - kzonecheck - check a DNS zone file + - kzonesign - sign a DNS zone file + - knsec3hash - compute NSEC3 hash . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package delivers various DNSSEC tools from Knot DNS. - . - - kzonecheck - - kzonesign - - knsec3hash Package: knot-host Architecture: any @@ -191,16 +169,12 @@ Depends: libzscanner5 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, -Description: Version of 'host' bundled with Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. +Description: Simple DNS client + This package provides a simple DNS client program from Knot DNS. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides the 'host' program from Knot DNS. This program is - designed to be almost 1:1 compatible with BIND 9.x 'host' program. Package: knot-keymgr Architecture: any @@ -211,14 +185,11 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, Description: Knot DNS key management utility - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides the 'keymgr' program for Knot DNS key management. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides the 'keymgr' program for Knot DNS key management. Package: knot-module-dnstap Architecture: any @@ -227,14 +198,11 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, Description: dnstap module for Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides dnstap module for logging DNS traffic. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package contains dnstap module for logging DNS traffic. Package: knot-module-geoip Architecture: any @@ -243,29 +211,23 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, Description: geoip module for Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides geoip module for geography-based responses. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package contains geoip module for geography-based responses. Package: redis-knot Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, -Description: A Redis module for Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. +Description: Redis module for Knot DNS + This package provides a Redis module for commucation with Knot DNS. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package contains a Redis module for Knot DNS. Package: knot-doc Architecture: all @@ -277,15 +239,12 @@ Depends: ${misc:Depends}, Section: doc Description: Documentation for Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides various documents that are useful for + maintaining a working Knot DNS installation. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides various documents that are useful for - maintaining a working Knot DNS installation. Package: knot-exporter Architecture: all @@ -294,14 +253,11 @@ Depends: ${python3:Depends}, Section: python Description: Prometheus exporter for Knot DNS - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides Python Prometheus exporter for Knot DNS. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides Python Prometheus exporter for Knot DNS. Package: python3-libknot Architecture: all @@ -311,11 +267,8 @@ Depends: ${python3:Depends}, Section: python Description: Python bindings for libknot - Knot DNS is a fast, authoritative only, high performance, feature - full and open source name server. + This package provides Python bindings for the libknot shared library. . Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. - . - This package provides Python bindings for the libknot shared library. From 6d14cf817c918fe17a3525d83f5ea8be1423ab9c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 27 Sep 2025 21:03:04 +0200 Subject: [PATCH 129/675] doc: improve knsec3hash description --- doc/man_knsec3hash.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/man_knsec3hash.rst b/doc/man_knsec3hash.rst index b3367fe7a0..1e96a07611 100644 --- a/doc/man_knsec3hash.rst +++ b/doc/man_knsec3hash.rst @@ -1,7 +1,7 @@ .. highlight:: none -``knsec3hash`` – NSEC hash computation utility -============================================== +``knsec3hash`` – NSEC3 hash computation utility +=============================================== Synopsis -------- @@ -15,7 +15,7 @@ Synopsis Description ----------- -This utility generates a NSEC3 hash for a given domain name and parameters of NSEC3 hash. +This utility generates an NSEC3 hash for a given domain name and parameters of NSEC3 hash. Parameters .......... From 95b28c099640edd812888711778d3ff892585620 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 1 Oct 2025 10:12:51 +0200 Subject: [PATCH 130/675] utils/knotc: add a workaround for missing PATH_MAX macro, needed on GNU Hurd For details see: https://www.gnu.org/software/hurd/community/gsoc/project_ideas/maxpath.html https://www.gnu.org/software/hurd/hurd/porting/guidelines.html#PATH_MAX_tt_MAX_PATH_tt_MAXPATHL Added a lower limit of 1024, just to be sure. --- src/utils/knotc/interactive.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/utils/knotc/interactive.c b/src/utils/knotc/interactive.c index b89d4110a2..a2d9e67be0 100644 --- a/src/utils/knotc/interactive.c +++ b/src/utils/knotc/interactive.c @@ -321,6 +321,10 @@ static void path_lookup(EditLine *el, const char *str, bool dirsonly) str = "./"; } +#ifndef PATH_MAX // GNU Hurd needs this. + long PATH_MAX = MAX(pathconf(str, _PC_PATH_MAX), 1024); +#endif + char path[PATH_MAX]; // avoid editing argument directly strlcpy(path, str, PATH_MAX); char *sep = strrchr(path, '/'); From 203220d382cc07f3d8ec19f3daf260f9f7ae222f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 30 Sep 2025 07:50:30 +0200 Subject: [PATCH 131/675] distro/deb: fix lintian issue not-binnmuable-all-depends-any E: knot source: not-binnmuable-all-depends-any python3-libknot -> libknot16 --- distro/pkg/deb-nolibxdp/control | 2 +- distro/pkg/deb/control | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/distro/pkg/deb-nolibxdp/control b/distro/pkg/deb-nolibxdp/control index 0c5d3403a7..b60928b5b7 100644 --- a/distro/pkg/deb-nolibxdp/control +++ b/distro/pkg/deb-nolibxdp/control @@ -246,7 +246,7 @@ Description: Prometheus exporter for Knot DNS Package: python3-libknot Architecture: all Depends: - libknot16 (= ${binary:Version}), + libknot16 (>= ${source:Version}), ${misc:Depends}, ${python3:Depends}, Section: python diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index 966f742f8e..d92d21532f 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -262,7 +262,7 @@ Description: Prometheus exporter for Knot DNS Package: python3-libknot Architecture: all Depends: - libknot16 (= ${binary:Version}), + libknot16 (>= ${source:Version}), ${misc:Depends}, ${python3:Depends}, Section: python From 12fc34156793a1bd3dcbce68c29a19b953be755b Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 30 Sep 2025 08:16:12 +0200 Subject: [PATCH 132/675] distro/deb: fix lintian issue debian-rules-uses-as-needed-linker-flag --- distro/pkg/deb/rules | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/distro/pkg/deb/rules b/distro/pkg/deb/rules index 36ad98ba71..9e3eef84b8 100755 --- a/distro/pkg/deb/rules +++ b/distro/pkg/deb/rules @@ -1,8 +1,7 @@ #!/usr/bin/make -f export DEB_BUILD_MAINT_OPTIONS = hardening=+all -export DEB_CFLAGS_MAINT_APPEND = -Wall -DNDEBUG -export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed +export DEB_CFLAGS_MAINT_APPEND = -Wall -DNDEBUG export DPKG_GENSYMBOLS_CHECK_LEVEL := 4 export KNOT_SOFTHSM2_DSO = /usr/lib/softhsm/libsofthsm2.so From 2c6d04d4ad1dd6a48e029e6f353efdb82b16dd11 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 30 Sep 2025 08:45:00 +0200 Subject: [PATCH 133/675] distro/deb: remove obsolete if from rules --- distro/pkg/deb/rules | 2 -- 1 file changed, 2 deletions(-) diff --git a/distro/pkg/deb/rules b/distro/pkg/deb/rules index 9e3eef84b8..fbf65bd090 100755 --- a/distro/pkg/deb/rules +++ b/distro/pkg/deb/rules @@ -81,9 +81,7 @@ override_dh_auto_install-indep: override_dh_auto_test-indep: override_dh_auto_test-arch: -ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) dh_auto_test -endif override_dh_missing: dh_missing --exclude=.la --fail-missing From 6215d19a9e6436fa9d48617a8b45ab3b8b18e9e7 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 30 Sep 2025 09:52:34 +0200 Subject: [PATCH 134/675] python: remove deprecated license classifier and some others --- python/knot_exporter/pyproject.toml.in | 2 -- python/knot_exporter/setup.py.in | 2 -- python/libknot/pyproject.toml.in | 3 --- python/libknot/setup.py.in | 3 --- 4 files changed, 10 deletions(-) diff --git a/python/knot_exporter/pyproject.toml.in b/python/knot_exporter/pyproject.toml.in index f25fa84ebe..68efe555f2 100644 --- a/python/knot_exporter/pyproject.toml.in +++ b/python/knot_exporter/pyproject.toml.in @@ -15,8 +15,6 @@ authors = [ ] classifiers = [ "Development Status :: 5 - Production/Stable", - "Intended Audience :: System Administrators", - "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Programming Language :: Python :: 3", "Topic :: Internet :: Name Service (DNS)", "Topic :: System :: Systems Administration", diff --git a/python/knot_exporter/setup.py.in b/python/knot_exporter/setup.py.in index 70cb91c5ea..db7b57ff7b 100644 --- a/python/knot_exporter/setup.py.in +++ b/python/knot_exporter/setup.py.in @@ -18,8 +18,6 @@ setuptools.setup( packages=['knot_exporter'], classifiers=[ # See https://pypi.org/classifiers 'Development Status :: 5 - Production/Stable', - 'Intended Audience :: System Administrators', - 'License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)', 'Programming Language :: Python :: 3', 'Topic :: Internet :: Name Service (DNS)', 'Topic :: System :: Systems Administration', diff --git a/python/libknot/pyproject.toml.in b/python/libknot/pyproject.toml.in index ecf02f325e..0dc245e623 100644 --- a/python/libknot/pyproject.toml.in +++ b/python/libknot/pyproject.toml.in @@ -14,9 +14,6 @@ authors = [ ] classifiers = [ "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "Intended Audience :: System Administrators", - "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Programming Language :: Python :: 3", "Topic :: Internet :: Name Service (DNS)", "Topic :: Software Development :: Libraries", diff --git a/python/libknot/setup.py.in b/python/libknot/setup.py.in index b04173e087..6d6d41cbe4 100644 --- a/python/libknot/setup.py.in +++ b/python/libknot/setup.py.in @@ -18,9 +18,6 @@ setuptools.setup( packages=['libknot'], classifiers=[ # See https://pypi.org/classifiers 'Development Status :: 5 - Production/Stable', - 'Intended Audience :: Developers', - 'Intended Audience :: System Administrators', - 'License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)', 'Programming Language :: Python :: 3', 'Topic :: Internet :: Name Service (DNS)', 'Topic :: Software Development :: Libraries', From fd149ddca4cea2c33627b0f5dc52208d88e278b7 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 3 Oct 2025 15:52:28 +0200 Subject: [PATCH 135/675] configure: add --with-redisdir parameter --- configure.ac | 7 +++++++ src/redis/Makefile.am | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index c1ed5bc2a5..6b7aef8d46 100644 --- a/configure.ac +++ b/configure.ac @@ -264,6 +264,12 @@ AC_ARG_ENABLE([redis], AS_HELP_STRING([--enable-redis=auto|yes|client|module|no], [enable Redis support [default=auto]]), [], [enable_redis=auto]) +redis_dir="${libdir}/knot/redis" +AC_ARG_WITH([redisdir], + AS_HELP_STRING([--with-redisdir=path], [Destination of module for Redis [default=${libdir}/knot/redis]]), + [redis_dir=$withval]) +AC_SUBST(redis_dir) + AS_CASE([$enable_redis], [auto], [PKG_CHECK_MODULES([hiredis], [hiredis], [enable_redis=yes], [enable_redis=no])], [yes], [PKG_CHECK_MODULES([hiredis], [hiredis], [enable_redis=yes], [AC_MSG_ERROR([libhiredis not available])])], @@ -790,6 +796,7 @@ result_msg_base=" Storage dir: ${storage_dir} Config dir: ${config_dir} Module dir: ${module_dir} + Redis dir: ${redis_dir} Static modules: ${static_modules} Shared modules: ${shared_modules} diff --git a/src/redis/Makefile.am b/src/redis/Makefile.am index 6722d0c394..3754e73ff6 100644 --- a/src/redis/Makefile.am +++ b/src/redis/Makefile.am @@ -1,7 +1,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/src -include $(top_builddir)/src/config.h AM_LDFLAGS = $(LT_NO_UNDEFINED) -pkglibdir = ${libdir}/knot/redis +pkglibdir = ${redis_dir} if ENABLE_REDIS_MODULE pkglib_LTLIBRARIES = knot.la From 2dd718a870bf1bffdf298fe4d4dad852f0492493 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 30 Sep 2025 07:52:49 +0200 Subject: [PATCH 136/675] distro: rename redis-knot to redis-module-knot or valkey-module-knot Install the module to: - /usr/lib/x86_64-linux-gnu/redis/modules/ for DEB - /usr/lib64/valkey/modules/ for RPM --- distro/pkg/deb/control | 2 +- distro/pkg/deb/redis-knot.install | 1 - distro/pkg/deb/redis-module-knot.install | 1 + distro/pkg/deb/rules | 5 +++-- distro/pkg/rpm/knot.spec | 13 +++++++------ doc/configuration.rst | 13 +++++++++---- 6 files changed, 21 insertions(+), 14 deletions(-) delete mode 100644 distro/pkg/deb/redis-knot.install create mode 100644 distro/pkg/deb/redis-module-knot.install diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index d92d21532f..32f42080e2 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -217,7 +217,7 @@ Description: geoip module for Knot DNS registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. -Package: redis-knot +Package: redis-module-knot Architecture: any Depends: ${misc:Depends}, diff --git a/distro/pkg/deb/redis-knot.install b/distro/pkg/deb/redis-knot.install deleted file mode 100644 index 2f4cf90599..0000000000 --- a/distro/pkg/deb/redis-knot.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/*/knot/redis/knot.so usr/lib/redis/modules/ diff --git a/distro/pkg/deb/redis-module-knot.install b/distro/pkg/deb/redis-module-knot.install new file mode 100644 index 0000000000..e5566e4880 --- /dev/null +++ b/distro/pkg/deb/redis-module-knot.install @@ -0,0 +1 @@ +usr/lib/*/redis/modules/knot.so diff --git a/distro/pkg/deb/rules b/distro/pkg/deb/rules index fbf65bd090..08ae9ca1fa 100755 --- a/distro/pkg/deb/rules +++ b/distro/pkg/deb/rules @@ -36,6 +36,7 @@ override_dh_auto_configure: --libexecdir=/usr/lib/knot \ --with-rundir=/run/knot \ --with-moduledir=/usr/lib/$(DEB_HOST_MULTIARCH)/knot/modules-$(BASE_VERSION) \ + --with-redisdir=/usr/lib/$(DEB_HOST_MULTIARCH)/redis/modules \ --with-storage=/var/lib/knot \ --enable-systemd=auto \ --enable-dnstap \ @@ -66,8 +67,8 @@ override_dh_auto_install-arch: echo "Stripping the QUIC symbols"; \ sed -i '/knot_quic_/d' $(LIBKNOT_SYMBOLS); \ fi - @if [ -f "$(CURDIR)/debian/tmp/usr/lib/*/knot/redis/knot.so" ]; then \ - chmod 0755 $(CURDIR)/debian/tmp/usr/lib/*/knot/redis/knot.so; \ + @if [ -f "$(CURDIR)/debian/tmp/usr/lib/*/redis/modules/knot.so" ]; then \ + chmod 0755 $(CURDIR)/debian/tmp/usr/lib/*/redis/modules/knot.so; \ fi override_dh_auto_install-indep: diff --git a/distro/pkg/rpm/knot.spec b/distro/pkg/rpm/knot.spec index c9ea594279..d6a9e055cd 100644 --- a/distro/pkg/rpm/knot.spec +++ b/distro/pkg/rpm/knot.spec @@ -174,12 +174,12 @@ Requires: %{name}-libs = %{version}-%{release} %description -n python3-libknot The package provides Python bindings for the libknot shared library. -%package -n redis-knot -Summary: Redis module for Knot DNS. +%package -n valkey-module-knot +Summary: Valkey module for Knot DNS. Requires: %{name}-libs = %{version}-%{release} -%description -n redis-knot -The package provides Redis module for Knot DNS. +%description -n valkey-module-knot +The package provides Valkey module for Knot DNS. %package doc Summary: Documentation for the Knot DNS server @@ -216,6 +216,7 @@ CFLAGS="%{optflags} -DNDEBUG -Wno-unused" --libexecdir=/usr/lib/knot \ --with-rundir=/run/knot \ --with-moduledir=%{_libdir}/knot/modules-%{BASE_VERSION} \ + --with-redisdir=%{_libdir}/valkey/modules \ --with-storage=/var/lib/knot \ %{?configure_db_sizes} \ %{?configure_quic} \ @@ -396,8 +397,8 @@ getent passwd knot >/dev/null || \ %{python3_sitelib}/libknot %{python3_sitelib}/libknot-*-info -%files -n redis-knot -%attr(0755, root, root) %{_libdir}/knot/redis/knot.so +%files -n valkey-module-knot +%attr(0755, root, root) %{_libdir}/valkey/modules/knot.so %files libs %license COPYING diff --git a/doc/configuration.rst b/doc/configuration.rst index 513a68a200..b9c2aac74b 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -829,11 +829,16 @@ or write to the same database. However, if multiple writers are used, they must be configured carefully to avoid conflicts or unexpected interactions. On the database side, the ``knot`` module must be available (e.g. by installing -the ``redis-knot`` package from a `repository `_) -and loaded into the database. This is usually done by adding the following -line to the database configuration:: +the ``redis-module-knot`` or ``valkey-module-knot`` package from +a `repository `_) +and loaded into the database. This is usually done by adding one of the following +lines to the database configuration:: - loadmodule /usr/lib/redis/modules/knot.so [ ]... + loadmodule /usr/lib/x86_64-linux-gnu/redis/modules/knot.so [ ]... + +or:: + + loadmodule /usr/lib64/valkey/modules/knot.so [ ]... where the optional module parameters are: From bafc3a22d91cacee3e12c7a92a624d6e7991d663 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Fri, 3 Oct 2025 10:29:09 +0200 Subject: [PATCH 137/675] dbus: add serial to external_verify event --- doc/reference.rst | 30 ++++++++++++++++-------------- samples/dbus_client.pl | 4 ++-- samples/dbus_client.py | 4 ++-- samples/dbus_client.sh | 2 +- src/knot/common/dbus.c | 6 +++--- src/knot/common/dbus.h | 3 ++- src/knot/updates/zone-update.c | 2 +- 7 files changed, 27 insertions(+), 24 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 3f5bd4f86d..4a1c05c17b 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -653,23 +653,25 @@ the interface name is ``cz.nic.knotd.events``. Possible values: - ``none`` – No signal is emitted. -- ``running`` – There are two possible signals emitted: +- ``running`` – Two signals may be emitted: - - ``started`` when the server is started and all configured zones (including + - ``started`` – Emitted when the server is started and all configured zones (including catalog zones and their members) are loaded or successfully bootstrapped. - - ``stopped`` when the server shutdown sequence is initiated. -- ``zone-updated`` – The signal ``zone_updated`` is emitted when a zone has been updated; - the signal parameters are `zone name` and `zone SOA serial`. -- ``external-verify`` - The signal ``external_verify`` is emitted when a zone is awaiting - external validation before applying the changes; the signal parameter is `zone name`. -- ``keys-updated`` - The signal ``keys_updated`` is emitted when a DNSSEC key set - is updated; the signal parameter is `zone name`. -- ``ksk-submission`` – The signal ``zone_ksk_submission`` is emitted if there is - a ready KSK present when the zone is signed; the signal parameters are - `zone name`, `KSK keytag`, and `KSK KASP id`. + - ``stopped`` – Emitted when the server shutdown sequence is initiated. +- ``zone-updated`` – The signal ``zone_updated`` is emitted when a zone has been updated. + Parameters: **zone** name and zone SOA **serial**. +- ``external-verify`` – The signal ``external_verify`` is emitted when a zone is awaiting + external validation before applying changes. + Parameters: **zone** name and new zone SOA **serial**. +- ``keys-updated`` – The signal ``keys_updated`` is emitted when a DNSSEC key set + is updated. + Parameters: **zone** name. +- ``ksk-submission`` – The signal ``zone_ksk_submission`` is emitted if a ready + KSK is present when the zone is signed. + Parameters: **zone** name, KSK **keytag**, and KSK KASP **id**. - ``dnssec-invalid`` – The signal ``zone_dnssec_invalid`` is emitted when DNSSEC - validation fails, or when ZONEMD verification fails; the signal parameters - are `zone name`, and `remaining seconds` until an RRSIG expires. + validation fails or when ZONEMD verification fails. + Parameters: **zone** name and remaining **seconds** until an RRSIG expires. .. NOTE:: This function requires systemd version at least 221 or libdbus. diff --git a/samples/dbus_client.pl b/samples/dbus_client.pl index f6bf00be08..5548330a69 100755 --- a/samples/dbus_client.pl +++ b/samples/dbus_client.pl @@ -44,8 +44,8 @@ $knotd_interface->connect_to_signal('external_verify', sub { - my ($zone) = @_; - print "Awaiting external validation for zone=$zone\n"; + my ($zone, $serial) = @_; + print "Awaiting external validation for zone=$zone serial=$serial\n"; }); $knotd_interface->connect_to_signal('keys_updated', sub diff --git a/samples/dbus_client.py b/samples/dbus_client.py index 8e9dd23087..c30e9de34f 100755 --- a/samples/dbus_client.py +++ b/samples/dbus_client.py @@ -24,8 +24,8 @@ def sig_updated(sender, path, interface, signal, args): print("Updated zone=%s to serial=%d" % (zone, serial)) def sig_external(sender, path, interface, signal, args): - (zone) = args - print("Awaiting external validation for zone=%s" % (zone)) + (zone, serial) = args + print("Awaiting external validation for zone=%s serial=%u" % (zone, serial)) def sig_keys_upd(sender, path, interface, signal, args): (zone) = args diff --git a/samples/dbus_client.sh b/samples/dbus_client.sh index 8b8c037df8..1b78afeacd 100755 --- a/samples/dbus_client.sh +++ b/samples/dbus_client.sh @@ -17,7 +17,7 @@ cb() { echo "Updated zone=${2} to serial=${3}" ;; external_verify) - echo "Awaiting external validation for zone=${2}" + echo "Awaiting external validation for zone=${2} serial=${3}" ;; zone_dnssec_invalid) echo "Invalid DNSSEC for zone=${2} remaining=${3} seconds" diff --git a/src/knot/common/dbus.c b/src/knot/common/dbus.c index 13623a1546..58f856812a 100644 --- a/src/knot/common/dbus.c +++ b/src/knot/common/dbus.c @@ -192,14 +192,14 @@ void dbus_emit_zone_updated(const knot_dname_t *zone_name, uint32_t serial) #endif // ENABLE_DBUS } -void dbus_emit_external_verify(const knot_dname_t *zone_name) +void dbus_emit_external_verify(const knot_dname_t *zone_name, uint32_t serial) { #if ENABLE_DBUS knot_dname_txt_storage_t buff; char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff)); if (zone_str != NULL) { - emit_event(KNOT_BUS_EVENT_EXTERNAL, "s", - VALUE_OF(zone_str)); + emit_event(KNOT_BUS_EVENT_EXTERNAL, "su", VALUE_OF(zone_str), + VALUE_OF(serial)); } #endif // ENABLE_DBUS } diff --git a/src/knot/common/dbus.h b/src/knot/common/dbus.h index 1033d46561..abc2f2fa01 100644 --- a/src/knot/common/dbus.h +++ b/src/knot/common/dbus.h @@ -54,8 +54,9 @@ void dbus_emit_zone_updated(const knot_dname_t *zone_name, uint32_t serial); * \brief Emit event signal that external verify shall take place. * * \param zone_name Zone name. + * \param serial Candidate zone SOA serial. */ -void dbus_emit_external_verify(const knot_dname_t *zone_name); +void dbus_emit_external_verify(const knot_dname_t *zone_name, uint32_t serial); /*! * \brief Emit event signal for updated DNSSEC key set. diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index c8db835a93..2f9d7778b7 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1084,7 +1084,7 @@ int zone_update_external(conf_t *conf, zone_update_t *update, conf_val_t *ev_id) log_zone_notice(update->zone->name, "waiting for external validation"); if (conf->cache.srv_dbus_event & DBUS_EVENT_EXTERNAL) { - dbus_emit_external_verify(update->zone->name); + dbus_emit_external_verify(update->zone->name, zone_contents_serial(update->new_cont)); } val = conf_id_get(conf, C_EXTERNAL, C_TIMEOUT, ev_id); From 5328d1e6c89464de1da4284c6d0289b34e769c8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 30 Sep 2025 12:56:02 +0200 Subject: [PATCH 138/675] fix a comment typo --- src/knot/zone/zone-dump.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/zone/zone-dump.h b/src/knot/zone/zone-dump.h index 5e97b1bd6e..b327df65d3 100644 --- a/src/knot/zone/zone-dump.h +++ b/src/knot/zone/zone-dump.h @@ -12,7 +12,7 @@ * \brief Dumps given zone to text file. * * \param zone Zone to be saved. - * \param skip RRRTypes to be skipped. + * \param skip RRTypes to be skipped. * \param file File to write to. * \param comments Add separating comments indicator. * \param color Optional color control sequence. From 3a215cdd93fc3f0f9ecef479f8fd21bdf85c9155 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 25 Sep 2025 11:04:52 +0200 Subject: [PATCH 139/675] properly check fprintf() and fclose() return value JSON functions, tests, and debug functions, where it isn't vital, remain without checking. Checking and reporting for log and stats files will be solved separately. --- src/contrib/files.c | 6 ++--- src/contrib/json.c | 24 ++++++++++---------- src/knot/common/log.c | 4 ++-- src/knot/common/process.c | 6 +++-- src/knot/conf/base.c | 34 +++++++++++++++++----------- src/knot/conf/confdb.c | 30 ++++++++++++------------ src/knot/updates/changesets.c | 20 ++++++++++++---- src/knot/updates/zone-update.c | 14 ++++++++---- src/knot/zone/backup_dir.c | 6 +++-- src/knot/zone/zone-dump.c | 30 ++++++++++++++++-------- src/knot/zone/zonefile.c | 7 +++--- src/libknot/tsig.c | 2 +- src/libknot/xdp/xdp.c | 14 ++++++------ src/utils/common/resolv.c | 2 +- src/utils/knotd/main.c | 2 +- src/utils/knsupdate/knsupdate_exec.c | 2 +- src/utils/kxdpgun/load_queries.c | 4 ++-- src/utils/kzonecheck/zone_check.c | 16 ++++++------- 18 files changed, 132 insertions(+), 91 deletions(-) diff --git a/src/contrib/files.c b/src/contrib/files.c index 89a8186762..4d58694552 100644 --- a/src/contrib/files.c +++ b/src/contrib/files.c @@ -248,12 +248,12 @@ int copy_file(const char *dest, const char *src) done: free(tmp_name); - if (file != NULL) { - fclose(file); + if (file != NULL && fclose(file) == -1 && ret == KNOT_EOK) { + ret = knot_map_errno(); } free(buf); if (from != NULL) { - fclose(from); + (void)fclose(from); } return ret; } diff --git a/src/contrib/json.c b/src/contrib/json.c index aba6d59fbc..3a4f1cb66f 100644 --- a/src/contrib/json.c +++ b/src/contrib/json.c @@ -74,7 +74,7 @@ static void wrap(jsonw_t *w) fputc('\n', w->out); int level = MAX_DEPTH - w->top; for (int i = 0; i < level; i++) { - fprintf(w->out, "%s", w->indent); + (void)fprintf(w->out, "%s", w->indent); } } @@ -95,7 +95,7 @@ static void escaped_print(jsonw_t *w, const char *str, size_t maxlen, bool quote if (c == '\\' || c == '\"') { fputc('\\', w->out); } else if (c == '\0') { - fprintf(w->out, "\\u0000"); + (void)fprintf(w->out, "\\u0000"); continue; } fputc(c, w->out); @@ -116,7 +116,7 @@ static void align_key(jsonw_t *w, const char *key) if (key && key[0]) { escaped_print(w, key, SIZE_MAX, true); - fprintf(w->out, ": "); + (void)fprintf(w->out, ": "); } } @@ -153,7 +153,7 @@ void jsonw_null(jsonw_t *w, const char *key) assert(w); align_key(w, key); - fprintf(w->out, "null"); + (void)fprintf(w->out, "null"); } void jsonw_object(jsonw_t *w, const char *key) @@ -161,7 +161,7 @@ void jsonw_object(jsonw_t *w, const char *key) assert(w); align_key(w, key); - fprintf(w->out, "{"); + (void)fprintf(w->out, "{"); start_block(w, BLOCK_OBJECT); } @@ -170,7 +170,7 @@ void jsonw_list(jsonw_t *w, const char *key) assert(w); align_key(w, key); - fprintf(w->out, "["); + (void)fprintf(w->out, "["); start_block(w, BLOCK_LIST); } @@ -195,7 +195,7 @@ void jsonw_ulong(jsonw_t *w, const char *key, unsigned long value) assert(w); align_key(w, key); - fprintf(w->out, "%lu", value); + (void)fprintf(w->out, "%lu", value); } void jsonw_int(jsonw_t *w, const char *key, int value) @@ -203,7 +203,7 @@ void jsonw_int(jsonw_t *w, const char *key, int value) assert(w); align_key(w, key); - fprintf(w->out, "%d", value); + (void)fprintf(w->out, "%d", value); } void jsonw_double(jsonw_t *w, const char *key, double value) @@ -211,7 +211,7 @@ void jsonw_double(jsonw_t *w, const char *key, double value) assert(w); align_key(w, key); - fprintf(w->out, "%.4f", value); + (void)fprintf(w->out, "%.4f", value); } void jsonw_bool(jsonw_t *w, const char *key, bool value) @@ -219,7 +219,7 @@ void jsonw_bool(jsonw_t *w, const char *key, bool value) assert(w); align_key(w, key); - fprintf(w->out, "%s", value ? "true" : "false"); + (void)fprintf(w->out, "%s", value ? "true" : "false"); } void jsonw_hex(jsonw_t *w, const char *key, const uint8_t *data, size_t len) @@ -247,10 +247,10 @@ void jsonw_end(jsonw_t *w) switch (top->type) { case BLOCK_OBJECT: - fprintf(w->out, "}"); + (void)fprintf(w->out, "}"); break; case BLOCK_LIST: - fprintf(w->out, "]"); + (void)fprintf(w->out, "]"); break; } } diff --git a/src/knot/common/log.c b/src/knot/common/log.c index 4795ded605..cfdcb7ca3a 100644 --- a/src/knot/common/log.c +++ b/src/knot/common/log.c @@ -172,7 +172,7 @@ void log_init(void) // Publish base log sink. log_t *log = sink_setup(0); if (log == NULL) { - fprintf(stderr, "Failed to setup logging\n"); + (void)fprintf(stderr, "Failed to setup logging\n"); return; } @@ -456,7 +456,7 @@ void log_reconfigure(conf_t *conf) // Initialize logsystem. log_t *log = sink_setup(files); if (log == NULL) { - fprintf(stderr, "Failed to setup logging\n"); + (void)fprintf(stderr, "Failed to setup logging\n"); return; } diff --git a/src/knot/common/process.c b/src/knot/common/process.c index f33f3b3d22..cda00797c0 100644 --- a/src/knot/common/process.c +++ b/src/knot/common/process.c @@ -47,7 +47,7 @@ static pid_t pid_read(const char *filename) /* Read the content of the file. */ len = fread(buf, 1, sizeof(buf) - 1, fp); - fclose(fp); + (void)fclose(fp); if (len < 1) { return 0; } @@ -84,7 +84,9 @@ static int pid_write(const char *filename, pid_t pid) if (write(fd, buf, len) != len) { ret = knot_map_errno(); } - close(fd); + if (close(fd) == -1 && ret == KNOT_EOK) { + ret = knot_map_errno(); + } } else { ret = knot_map_errno(); } diff --git a/src/knot/conf/base.c b/src/knot/conf/base.c index 3a64b2b82f..b3f0fe0b76 100644 --- a/src/knot/conf/base.c +++ b/src/knot/conf/base.c @@ -868,9 +868,9 @@ static int export_group_name( return ret; } - fprintf(fp, "%s", out); + ret = (fprintf(fp, "%s", out) < 0) ? knot_map_errno() : KNOT_EOK; - return KNOT_EOK; + return ret; } static int export_group( @@ -902,7 +902,9 @@ static int export_group( if (ret != KNOT_EOK) { return ret; } - fprintf(fp, "%s", out); + if (fprintf(fp, "%s", out) < 0) { + return knot_map_errno(); + } continue; } @@ -934,7 +936,9 @@ static int export_group( if (ret != KNOT_EOK) { return ret; } - fprintf(fp, "%s", out); + if (fprintf(fp, "%s", out) < 0) { + return knot_map_errno(); + } if (values > 1) { conf_val_next(&bin); @@ -942,8 +946,8 @@ static int export_group( } } - if (*exported) { - fprintf(fp, "\n"); + if (*exported && (fprintf(fp, "\n") < 0)) { + return knot_map_errno(); } return KNOT_EOK; @@ -1030,13 +1034,17 @@ int conf_export( return knot_map_errno(); } - fprintf(fp, "# Configuration export (Knot DNS %s)\n\n", PACKAGE_VERSION); + int ret; + + if (fprintf(fp, "# Configuration export (Knot DNS %s)\n\n", + PACKAGE_VERSION) < 0) { + ret = knot_map_errno(); + goto export_error; + } const char *mod_prefix = KNOTD_MOD_NAME_PREFIX; const size_t mod_prefix_len = strlen(mod_prefix); - int ret; - // Iterate over the schema. for (yp_item_t *item = conf->schema; item->name != NULL; item++) { // Don't export module sections again. @@ -1069,8 +1077,8 @@ int conf_export( ret = KNOT_EOK; export_error: - if (file_name != NULL) { - fclose(fp); + if (file_name != NULL && fclose(fp) == -1 && ret == KNOT_EOK) { + ret = knot_map_errno(); } free(buff); @@ -1297,8 +1305,8 @@ int conf_export_schema( jsonw_end(w); jsonw_free(&w); - if (file_name != NULL) { - fclose(fp); + if (file_name != NULL && fclose(fp) == -1 && ret == KNOT_EOK) { + ret = knot_map_errno(); } return ret; diff --git a/src/knot/conf/confdb.c b/src/knot/conf/confdb.c index 4177e3e498..b079f7d8ba 100644 --- a/src/knot/conf/confdb.c +++ b/src/knot/conf/confdb.c @@ -901,29 +901,29 @@ int conf_db_raw_dump( uint8_t *k = (uint8_t *)key.data; uint8_t *d = (uint8_t *)data.data; if (k[1] == KEY1_ITEMS) { - fprintf(fp, "[%i][%i]%.*s", k[0], k[1], - (int)key.len - 2, k + 2); - fprintf(fp, ": %u\n", d[0]); + (void)fprintf(fp, "[%i][%i]%.*s", k[0], k[1], + (int)key.len - 2, k + 2); + (void)fprintf(fp, ": %u\n", d[0]); } else if (k[1] == KEY1_ID) { - fprintf(fp, "[%i][%i](%zu){", k[0], k[1], key.len - 2); + (void)fprintf(fp, "[%i][%i](%zu){", k[0], k[1], key.len - 2); for (size_t i = 2; i < key.len; i++) { - fprintf(fp, "%02x", (uint8_t)k[i]); + (void)fprintf(fp, "%02x", (uint8_t)k[i]); } - fprintf(fp, "}\n"); + (void)fprintf(fp, "}\n"); } else { - fprintf(fp, "[%i][%i]", k[0], k[1]); + (void)fprintf(fp, "[%i][%i]", k[0], k[1]); if (key.len > 2) { - fprintf(fp, "(%zu){", key.len - 2); + (void)fprintf(fp, "(%zu){", key.len - 2); for (size_t i = 2; i < key.len; i++) { - fprintf(fp, "%02x", (uint8_t)k[i]); + (void)fprintf(fp, "%02x", (uint8_t)k[i]); } - fprintf(fp, "}"); + (void)fprintf(fp, "}"); } - fprintf(fp, ": (%zu)<", data.len); + (void)fprintf(fp, ": (%zu)<", data.len); for (size_t i = 0; i < data.len; i++) { - fprintf(fp, "%02x", (uint8_t)d[i]); + (void)fprintf(fp, "%02x", (uint8_t)d[i]); } - fprintf(fp, ">\n"); + (void)fprintf(fp, ">\n"); } it = conf->api->iter_next(it); @@ -931,9 +931,9 @@ int conf_db_raw_dump( conf->api->iter_finish(it); if (file_name != NULL) { - fclose(fp); + (void)fclose(fp); } else { - fflush(fp); + (void)fflush(fp); } return ret; diff --git a/src/knot/updates/changesets.c b/src/knot/updates/changesets.c index 72334f88e2..b1e0595303 100644 --- a/src/knot/updates/changesets.c +++ b/src/knot/updates/changesets.c @@ -603,11 +603,15 @@ int changeset_print(const changeset_t *changeset, FILE *outfile, bool color) style.color = COL_RED(color); if (changeset->soa_from != NULL || !zone_contents_is_empty(changeset->remove)) { - fprintf(outfile, "%s;; Removed%s\n", style.color, COL_RST(color)); + if (fprintf(outfile, "%s;; Removed%s\n", style.color, COL_RST(color)) < 0) { + goto failed_outfile; + } } if (changeset->soa_from != NULL && buff != NULL) { ret = knot_rrset_txt_dump(changeset->soa_from, &buff, &buflen, &style); - fprintf(outfile, "%s%s%s", style.color, buff, COL_RST(color)); + if (fprintf(outfile, "%s%s%s", style.color, buff, COL_RST(color)) < 0) { + goto failed_outfile; + } } if (ret >= 0 && changeset->remove != NULL) { // Can be NULL if zone-in-journal ret = zone_dump_text(changeset->remove, NULL, outfile, false, style.color); @@ -615,11 +619,15 @@ int changeset_print(const changeset_t *changeset, FILE *outfile, bool color) style.color = COL_GRN(color); if (changeset->soa_to != NULL || !zone_contents_is_empty(changeset->add)) { - fprintf(outfile, "%s;; Added%s\n", style.color, COL_RST(color)); + if (fprintf(outfile, "%s;; Added%s\n", style.color, COL_RST(color)) < 0) { + goto failed_outfile; + } } if (changeset->soa_to != NULL && buff != NULL && ret >= 0) { ret = knot_rrset_txt_dump(changeset->soa_to, &buff, &buflen, &style); - fprintf(outfile, "%s%s%s", style.color, buff, COL_RST(color)); + if (fprintf(outfile, "%s%s%s", style.color, buff, COL_RST(color)) < 0) { + goto failed_outfile; + } } if (ret >= 0) { ret = zone_dump_text(changeset->add, NULL, outfile, false, style.color); @@ -627,4 +635,8 @@ int changeset_print(const changeset_t *changeset, FILE *outfile, bool color) free(buff); return ret >= 0 ? KNOT_EOK : ret; + +failed_outfile: + free(buff); + return knot_map_errno(); } diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 2f9d7778b7..82574d197b 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1019,15 +1019,21 @@ static int dump_changeset_part(zone_update_t *up, bool additions, ctx.buflen = 1024; ctx.buf = malloc(ctx.buflen); if (ctx.buf == NULL) { - fclose(ctx.f); + (void)fclose(ctx.f); return KNOT_ENOMEM; } ctx.style = KNOT_DUMP_STYLE_DEFAULT; ctx.style.now = knot_time(); - (void)fprintf(ctx.f, ";; %s records\n", additions ? "Added" : "Removed"); - int ret = zone_update_foreach(up, additions, dump_rrset, &ctx); - fclose(ctx.f); + int ret; + if (fprintf(ctx.f, ";; %s records\n", additions ? "Added" : "Removed") > 0) { + ret = zone_update_foreach(up, additions, dump_rrset, &ctx); + } else { + ret = knot_map_errno(); + } + if (fclose(ctx.f) == -1 && ret == KNOT_EOK) { + ret = knot_map_errno(); + } free(ctx.buf); return ret; } diff --git a/src/knot/zone/backup_dir.c b/src/knot/zone/backup_dir.c index 19007c0e64..75512cc39c 100644 --- a/src/knot/zone/backup_dir.c +++ b/src/knot/zone/backup_dir.c @@ -151,7 +151,9 @@ static int make_label_file(zone_backup_ctx_t *ctx) ret = (ret < 0) ? knot_map_errno() : KNOT_EOK; - fclose(file); + if (fclose(file) == -1 && ret == KNOT_EOK) { + ret = knot_map_errno(); + } return ret; } @@ -236,7 +238,7 @@ static int get_backup_format(zone_backup_ctx_t *ctx) done: free(line); - fclose(file); + (void)fclose(file); return ret; } diff --git a/src/knot/zone/zone-dump.c b/src/knot/zone/zone-dump.c index 7793922e0b..bca23cccd9 100644 --- a/src/knot/zone/zone-dump.c +++ b/src/knot/zone/zone-dump.c @@ -39,7 +39,9 @@ static int apex_node_dump_text(zone_node_t *node, dump_params_t *params) return ret; } params->rr_count += soa.rrs.count; - fprintf(params->file, "%s", params->buf); + if (fprintf(params->file, "%s", params->buf) < 0) { + return knot_map_errno(); + } params->buf[0] = '\0'; } @@ -66,7 +68,9 @@ static int apex_node_dump_text(zone_node_t *node, dump_params_t *params) return ret; } params->rr_count += rrset.rrs.count; - fprintf(params->file, "%s", params->buf); + if (fprintf(params->file, "%s", params->buf) < 0) { + return knot_map_errno(); + } params->buf[0] = '\0'; } @@ -114,7 +118,9 @@ static int node_dump_text(zone_node_t *node, void *data) // Dump block comment if available. if (params->first_comment != NULL) { - fprintf(params->file, "%s", params->first_comment); + if (fprintf(params->file, "%s", params->first_comment) < 0) { + return knot_map_errno(); + } params->first_comment = NULL; } @@ -124,7 +130,9 @@ static int node_dump_text(zone_node_t *node, void *data) return ret; } params->rr_count += rrset.rrs.count; - fprintf(params->file, "%s", params->buf); + if (fprintf(params->file, "%s", params->buf) < 0) { + return knot_map_errno(); + } params->buf[0] = '\0'; } @@ -148,7 +156,9 @@ int zone_dump_text(zone_contents_t *zone, zone_skip_t *skip, FILE *file, bool co } if (comments) { - fprintf(file, ";; Zone dump (Knot DNS %s)\n", PACKAGE_VERSION); + if (fprintf(file, ";; Zone dump (Knot DNS %s)\n", PACKAGE_VERSION) < 0) { + return knot_map_errno(); + } } // Set structure with parameters. @@ -222,12 +232,14 @@ int zone_dump_text(zone_contents_t *zone, zone_skip_t *skip, FILE *file, bool co strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S %Z", &tm); // Dump trailing statistics. - fprintf(file, ";; Written %"PRIu64" records\n" - ";; Time %s\n", - params.rr_count, date); + if (fprintf(file, ";; Written %"PRIu64" records\n" + ";; Time %s\n", + params.rr_count, date) < 0) { + ret = knot_map_errno(); + } } free(params.buf); // params.buf may be != buf because of knot_rrset_txt_dump_dynamic() - return KNOT_EOK; + return ret; } diff --git a/src/knot/zone/zonefile.c b/src/knot/zone/zonefile.c index 65f3b09f65..ed34e115ef 100644 --- a/src/knot/zone/zonefile.c +++ b/src/knot/zone/zonefile.c @@ -314,16 +314,15 @@ int zonefile_write(const char *path, zone_contents_t *zone, zone_skip_t *skip) } ret = zone_dump_text(zone, skip, file, true, NULL); - fclose(file); if (ret != KNOT_EOK) { + (void)fclose(file); unlink(tmp_name); free(tmp_name); return ret; } - /* Swap temporary zonefile and new zonefile. */ - ret = rename(tmp_name, path); - if (ret != 0) { + /* Close, then swap temporary zonefile and new zonefile. */ + if (fclose(file) == -1 || rename(tmp_name, path) == -1) { ret = knot_map_errno(); unlink(tmp_name); free(tmp_name); diff --git a/src/libknot/tsig.c b/src/libknot/tsig.c index cb05b34663..660db1760f 100644 --- a/src/libknot/tsig.c +++ b/src/libknot/tsig.c @@ -137,7 +137,7 @@ int knot_tsig_key_init_file(knot_tsig_key_t *key, const char *filename) size_t line_size = 0; ssize_t read = knot_getline(&line, &line_size, file); - fclose(file); + (void)fclose(file); if (read == -1) { return KNOT_EMALF; diff --git a/src/libknot/xdp/xdp.c b/src/libknot/xdp/xdp.c index 943d9f2f39..214675a8dd 100644 --- a/src/libknot/xdp/xdp.c +++ b/src/libknot/xdp/xdp.c @@ -579,23 +579,23 @@ void knot_xdp_socket_info(const knot_xdp_socket_t *socket, FILE *file) } #define RING_PRINFO(name, ring) \ - fprintf(file, "Ring %s: size %4d, busy %4d (prod %4d, cons %4d)\n", \ - name, (unsigned)(ring)->size, \ - (unsigned)RING_BUSY((ring)), \ - (unsigned)*(ring)->producer, (unsigned)*(ring)->consumer) + (void)fprintf(file, "Ring %s: size %4d, busy %4d (prod %4d, cons %4d)\n", \ + name, (unsigned)(ring)->size, \ + (unsigned)RING_BUSY((ring)), \ + (unsigned)*(ring)->producer, (unsigned)*(ring)->consumer) const int rx_busyf = RING_BUSY(&socket->umem->fq) + RING_BUSY(&socket->rx); - fprintf(file, "\nLOST RX frames: %4d", (int)(socket->umem->ring_size - rx_busyf)); + (void)fprintf(file, "\nLOST RX frames: %4d", (int)(socket->umem->ring_size - rx_busyf)); const int tx_busyf = RING_BUSY(&socket->umem->cq) + RING_BUSY(&socket->tx); const int tx_freef = socket->umem->tx_free_count; - fprintf(file, "\nLOST TX frames: %4d\n", (int)(socket->umem->ring_size - tx_busyf - tx_freef)); + (void)fprintf(file, "\nLOST TX frames: %4d\n", (int)(socket->umem->ring_size - tx_busyf - tx_freef)); RING_PRINFO("FQ", &socket->umem->fq); RING_PRINFO("RX", &socket->rx); RING_PRINFO("TX", &socket->tx); RING_PRINFO("CQ", &socket->umem->cq); - fprintf(file, "TX free frames: %4d\n", tx_freef); + (void)fprintf(file, "TX free frames: %4d\n", tx_freef); } _public_ diff --git a/src/utils/common/resolv.c b/src/utils/common/resolv.c index 78a68ef9be..94567c8e85 100644 --- a/src/utils/common/resolv.c +++ b/src/utils/common/resolv.c @@ -163,7 +163,7 @@ static size_t get_resolv_nameservers(list_t *servers, const char *def_port) } // Close config file. - fclose(f); + (void)fclose(f); // Return number of servers. return list_size(servers); diff --git a/src/utils/knotd/main.c b/src/utils/knotd/main.c index a814e1a55f..4c10e4add8 100644 --- a/src/utils/knotd/main.c +++ b/src/utils/knotd/main.c @@ -544,7 +544,7 @@ int main(int argc, char **argv) /* Now check if we want to daemonize. */ if (daemonize) { if (make_daemon(1, 0) != 0) { - fprintf(stderr, "Daemonization failed, shutting down...\n"); + (void)fprintf(stderr, "Daemonization failed, shutting down...\n"); return EXIT_FAILURE; } } diff --git a/src/utils/knsupdate/knsupdate_exec.c b/src/utils/knsupdate/knsupdate_exec.c index a30ac08d26..8ca0e69c60 100644 --- a/src/utils/knsupdate/knsupdate_exec.c +++ b/src/utils/knsupdate/knsupdate_exec.c @@ -577,7 +577,7 @@ int knsupdate_exec(knsupdate_params_t *params) break; } ret = process_lines(params, fp); - fclose(fp); + (void)fclose(fp); if (ret != KNOT_EOK) { break; } diff --git a/src/utils/kxdpgun/load_queries.c b/src/utils/kxdpgun/load_queries.c index fabb4f3abb..77fbe90ccf 100644 --- a/src/utils/kxdpgun/load_queries.c +++ b/src/utils/kxdpgun/load_queries.c @@ -219,12 +219,12 @@ bool load_queries(const input_t *input, uint16_t edns_size, uint16_t msgid, size } free(bufs); - fclose(f); + (void)fclose(f); return true; fail: free_global_payloads(); free(bufs); - fclose(f); + (void)fclose(f); return false; } diff --git a/src/utils/kzonecheck/zone_check.c b/src/utils/kzonecheck/zone_check.c index 6a6c59e104..edba74f8cf 100644 --- a/src/utils/kzonecheck/zone_check.c +++ b/src/utils/kzonecheck/zone_check.c @@ -35,9 +35,9 @@ static void err_callback(sem_handler_t *handler, const zone_contents_t *zone, owner = ""; } - fprintf(stderr, "[%s] %s%s%s\n", owner, sem_error_msg(error), - (data != NULL ? " " : ""), - (data != NULL ? data : "")); + (void)fprintf(stderr, "[%s] %s%s%s\n", owner, sem_error_msg(error), + (data != NULL ? " " : ""), + (data != NULL ? data : "")); stats->errors[error]++; stats->error_count++; @@ -45,10 +45,10 @@ static void err_callback(sem_handler_t *handler, const zone_contents_t *zone, static void print_statistics(err_handler_stats_t *stats) { - fprintf(stderr, "\nError summary:\n"); + (void)fprintf(stderr, "\nError summary:\n"); for (sem_error_t i = 0; i <= SEM_ERR_UNKNOWN; ++i) { if (stats->errors[i] > 0) { - fprintf(stderr, "%4u\t%s\n", stats->errors[i], sem_error_msg(i)); + (void)fprintf(stderr, "%4u\t%s\n", stats->errors[i], sem_error_msg(i)); } } } @@ -96,7 +96,7 @@ int zone_check(const char *zone_file, const knot_dname_t *zone_name, bool zonemd if (stats.error_count > 0) { print_statistics(&stats); if (stats.handler.error) { - fprintf(stderr, "\n"); + (void)fprintf(stderr, "\n"); ERR2("serious semantic error detected"); ret = KNOT_EINVAL; } else { @@ -108,7 +108,7 @@ int zone_check(const char *zone_file, const knot_dname_t *zone_name, bool zonemd ret = zone_contents_digest_verify(contents); if (ret != KNOT_EOK) { if (stats.error_count > 0 && !stats.handler.error) { - fprintf(stderr, "\n"); + (void)fprintf(stderr, "\n"); } ERR2("invalid ZONEMD"); } @@ -116,7 +116,7 @@ int zone_check(const char *zone_file, const knot_dname_t *zone_name, bool zonemd if (print) { if (ret != KNOT_EOK) { - fprintf(stderr, "\n"); + (void)fprintf(stderr, "\n"); } printf(";; Zone dump (Knot DNS %s)\n", PACKAGE_VERSION); zone_dump_text(contents, NULL, stdout, false, NULL); From d61d9869a21ea49c2c8f415d352e9f7d1eba6271 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 7 Oct 2025 19:43:21 +0200 Subject: [PATCH 140/675] ddns: fix assert if TLS communication and no QUIC available --- src/knot/events/handlers/update.c | 43 +++++++++++++++++-------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/knot/events/handlers/update.c b/src/knot/events/handlers/update.c index e824307868..c41debc447 100644 --- a/src/knot/events/handlers/update.c +++ b/src/knot/events/handlers/update.c @@ -373,22 +373,30 @@ static void forward_requests(conf_t *conf, zone_t *zone, list_t *requests) static void send_update_response(conf_t *conf, zone_t *zone, knot_request_t *req) { - if (req->resp) { - // Sign the response if the secret is known. - if (req->sign.tsig_key.secret.size > 0) { - knotd_qdata_t qdata; - knotd_qdata_extra_t extra; - init_qdata_from_request(&qdata, zone, req, NULL, &extra); - (void)process_query_sign_response(req->resp, &qdata); - } + if (req->resp == NULL) { + return; + } + + // Sign the response if the secret is known. + if (req->sign.tsig_key.secret.size > 0) { + knotd_qdata_t qdata; + knotd_qdata_extra_t extra; + init_qdata_from_request(&qdata, zone, req, NULL, &extra); + (void)process_query_sign_response(req->resp, &qdata); + } - if (net_is_stream(req->fd) && req->tls_req_ctx.conn != NULL) { - (void)knot_tls_send(req->tls_req_ctx.conn, - req->resp->wire, req->resp->size); + if (net_is_stream(req->fd)) { + if (req->tls_req_ctx.conn != NULL) { + (void)knot_tls_send(req->tls_req_ctx.conn, req->resp->wire, + req->resp->size); knot_tls_conn_block(req->tls_req_ctx.conn, false); + } else { + (void)net_dns_tcp_send(req->fd, req->resp->wire, req->resp->size, + conf->cache.srv_tcp_remote_io_timeout, NULL); } + } else { + if (req->quic_conn != NULL) { #ifdef ENABLE_QUIC - else if (req->quic_conn != NULL) { assert(!net_is_stream(req->fd)); uint8_t op_buf[KNOT_WIRE_MAX_PKTSIZE]; struct iovec out_payload = { .iov_base = op_buf, .iov_len = sizeof(op_buf) }; @@ -410,17 +418,12 @@ static void send_update_response(conf_t *conf, zone_t *zone, knot_request_t *req &rpl, 4, KNOT_QUIC_SEND_IGNORE_BLOCKED); } knot_quic_conn_block(req->quic_conn, false); - } else // NOTE ties to 'if' below #else - assert(req->quic_conn == NULL); + assert(0); #endif // ENABLE_QUIC - - if (net_is_stream(req->fd)) { - net_dns_tcp_send(req->fd, req->resp->wire, req->resp->size, - conf->cache.srv_tcp_remote_io_timeout, NULL); } else { - net_dgram_send(req->fd, req->resp->wire, req->resp->size, - &req->remote); + (void)net_dgram_send(req->fd, req->resp->wire, req->resp->size, + &req->remote); } } } From 6fa6f91d38b9a2d0d21bfa352cd4684118e887a7 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 5 Oct 2025 18:42:51 +0200 Subject: [PATCH 141/675] zonedb-load: move common code to get_zone() --- src/knot/zone/zonedb-load.c | 51 ++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 1270a6b4f9..cfbf6d6a4c 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -450,6 +450,29 @@ static bool same_group(zone_t *old_z, zone_t *new_z) } } +static zone_t *get_zone(conf_t *conf, const knot_dname_t *name, server_t *server, + zone_t *old_zone) +{ + zone_t *zone = create_zone(conf, name, server, old_zone); + if (zone == NULL) { + log_zone_error(name, "zone cannot be created"); + return NULL; + } else { + int ret = conf_activate_modules(conf, server, zone->name, + &zone->query_modules, + &zone->query_plan); + if (ret != KNOT_EOK) { + log_zone_error(zone->name, "zone cannot be activated (%s)", + knot_strerror(ret)); + zone->contents = NULL; + zone_free(&zone); + return NULL; + } + } + + return zone; +} + static knot_zonedb_t *create_zonedb_commit(conf_t *conf, server_t *server) { knot_zonedb_t *db_old = server->zone_db; // If NULL, zonedb is beeing initialized. @@ -464,21 +487,9 @@ static knot_zonedb_t *create_zonedb_commit(conf_t *conf, server_t *server) const knot_dname_t *name = (const knot_dname_t *)trie_it_key(trie_it, NULL); conf_io_type_t type = conf_io_trie_val(trie_it); if (type & CONF_IO_TSET) { - zone_t *zone = create_zone(conf, name, server, NULL); + zone_t *zone = get_zone(conf, name, server, NULL); if (zone == NULL) { - log_zone_error(name, "zone cannot be created"); continue; - } else { - int ret = conf_activate_modules(conf, server, zone->name, - &zone->query_modules, - &zone->query_plan); - if (ret != KNOT_EOK) { - log_zone_error(zone->name, "zone cannot be activated (%s)", - knot_strerror(ret)); - zone->contents = NULL; - zone_free(&zone); - continue; - } } knot_zonedb_insert(db_new, zone); catalog_generate_add(conf, zone, db_new, false); @@ -588,21 +599,9 @@ static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, conf_val_t id = conf_iter_id(conf, &it); const knot_dname_t *name = conf_dname(&id); zone_t *old_zone = knot_zonedb_find(db_old, name); - zone_t *zone = create_zone(conf, name, server, old_zone); + zone_t *zone = get_zone(conf, name, server, old_zone); if (zone == NULL) { - log_zone_error(name, "zone cannot be created"); continue; - } else { - int ret = conf_activate_modules(conf, server, zone->name, - &zone->query_modules, - &zone->query_plan); - if (ret != KNOT_EOK) { - log_zone_error(zone->name, "zone cannot be activated (%s)", - knot_strerror(ret)); - zone->contents = NULL; - zone_free(&zone); - continue; - } } knot_zonedb_insert(db_new, zone); } From f6f4c2f33257d72a3991dd46d338a477d81936a5 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 8 Oct 2025 14:45:55 +0200 Subject: [PATCH 142/675] replan: move zone_notifailed_clear() to zonedb-load for consistency --- src/knot/events/replan.c | 1 - src/knot/zone/zonedb-load.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/events/replan.c b/src/knot/events/replan.c index 8d66a81a70..703811252f 100644 --- a/src/knot/events/replan.c +++ b/src/knot/events/replan.c @@ -194,7 +194,6 @@ void replan_load_current(conf_t *conf, zone_t *zone, zone_t *old_zone) void replan_load_updated(zone_t *zone, zone_t *old_zone) { - zone_notifailed_clear(zone); replan_from_zone(zone, old_zone); // other events will cascade from load diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index cfbf6d6a4c..c4f1330845 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -81,6 +81,7 @@ static void replan_events(conf_t *conf, zone_t *zone, zone_t *old_zone) zone->events.ufrozen = old_zone->events.ufrozen; if ((zone_file_updated(conf, old_zone, zone->name) || conf_updated) && !zone_expired(zone)) { + zone_notifailed_clear(zone); replan_load_updated(zone, old_zone); } else { zone->zonefile = old_zone->zonefile; From f88c2e8137716d2d04ee40751bbcc0b10441f3fe Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 8 Oct 2025 17:04:54 +0200 Subject: [PATCH 143/675] zonedb-load: remove redundant ZONE_EVENT_LOAD schedulings --- src/knot/zone/zonedb-load.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index c4f1330845..e27737b1ab 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -71,12 +71,13 @@ static zone_t *create_zone_from(const knot_dname_t *name, server_t *server) return zone; } -static void replan_events(conf_t *conf, zone_t *zone, zone_t *old_zone) +static void replan_events(conf_t *conf, zone_t *zone, zone_t *old_zone, bool conf_updated) { - bool conf_updated = false; - conf_val_t digest = conf_zone_get(conf, C_ZONEMD_GENERATE, zone->name); - if (zone->contents != NULL && !zone_contents_digest_exists(zone->contents, conf_opt(&digest), true)) { - conf_updated = true; + if (!conf_updated) { + conf_val_t digest = conf_zone_get(conf, C_ZONEMD_GENERATE, zone->name); + if (zone->contents != NULL && !zone_contents_digest_exists(zone->contents, conf_opt(&digest), true)) { + conf_updated = true; + } } zone->events.ufrozen = old_zone->events.ufrozen; @@ -729,11 +730,9 @@ static void remove_old_zonedb_commit(conf_t *conf, knot_zonedb_t *db_old, server } else if (!reload_zones && (type & CONF_IO_TRELOAD)) { int ret = zone_reload_modules(conf, server, name); if (ret != KNOT_EOK) { - log_zone_error(name, "failed to reload modules (%s)", + log_zone_error(name, "failed to reload (%s)", knot_strerror(ret)); } - zone_t *zone = knot_zonedb_find(db_new, name); - zone_events_schedule_now(zone, ZONE_EVENT_LOAD); } } trie_it_free(trie_it); @@ -748,11 +747,9 @@ static void remove_old_zonedb_commit(conf_t *conf, knot_zonedb_t *db_old, server } int ret = zone_reload_modules(conf, server, name); if (ret != KNOT_EOK) { - log_zone_error(name, "failed to reload modules (%s)", + log_zone_error(name, "failed to reload (%s)", knot_strerror(ret)); } - zone_t *zone = knot_zonedb_find(db_new, name); - zone_events_schedule_now(zone, ZONE_EVENT_LOAD); } knot_zonedb_iter_free(db_it); } @@ -785,11 +782,9 @@ static void remove_old_zonedb_catalog(conf_t *conf, knot_zonedb_t *db_old, serve case CAT_UPD_PROP: ; int ret = zone_reload_modules(conf, server, upd->member); if (ret != KNOT_EOK) { - log_zone_error(upd->member, "failed to reload modules (%s)", + log_zone_error(upd->member, "failed to reload (%s)", knot_strerror(ret)); } - zone = knot_zonedb_find(db_new, upd->member); - zone_events_schedule_now(zone, ZONE_EVENT_LOAD); break; default: break; @@ -820,7 +815,7 @@ static void remove_old_zonedb_full(conf_t *conf, knot_zonedb_t *db_old, server_t zone_t *new_zone = knot_zonedb_find(db_new, zone->name); if (new_zone != NULL) { /* Reload reused zone. */ - replan_events(conf, new_zone, zone); + replan_events(conf, new_zone, zone, false); zone->contents = NULL; } } @@ -937,7 +932,7 @@ int zone_reload_modules(conf_t *conf, server_t *server, const knot_dname_t *zone zone_t *oldzone = rcu_xchg_pointer(zone, newzone); synchronize_rcu(); - replan_events(conf, newzone, oldzone); + replan_events(conf, newzone, oldzone, true); assert(newzone->contents == oldzone->contents); oldzone->contents = NULL; // contents have been re-used by newzone From 6ae4d2cfefa4149514c864b0e6e30d262c284335 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 8 Oct 2025 17:41:48 +0200 Subject: [PATCH 144/675] conf: remove improper flags at 'reverse-generate' and 'include-from' --- src/knot/conf/schema.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index f63fd11b8b..a3cef33b98 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -502,8 +502,8 @@ static const yp_item_t desc_external[] = { { C_DNSSEC_POLICY, YP_TREF, YP_VREF = { C_POLICY }, FLAGS, { check_ref_dflt } }, \ { C_DS_PUSH, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_REF_EMPTY | FLAGS, \ { check_ref } }, \ - { C_REVERSE_GEN, YP_TDNAME,YP_VNONE, YP_FMULTI | FLAGS | CONF_IO_FRLD_ZONES }, \ - { C_INCLUDE_FROM, YP_TDNAME,YP_VNONE, YP_FMULTI | FLAGS | CONF_IO_FDIFF_ZONES, { check_include_from } }, \ + { C_REVERSE_GEN, YP_TDNAME,YP_VNONE, YP_FMULTI | FLAGS }, \ + { C_INCLUDE_FROM, YP_TDNAME,YP_VNONE, YP_FMULTI | FLAGS, { check_include_from } }, \ { C_SERIAL_POLICY, YP_TOPT, YP_VOPT = { serial_policies, SERIAL_POLICY_INCREMENT } }, \ { C_SERIAL_MODULO, YP_TSTR, YP_VSTR = { "0/1" }, YP_FNONE, { check_modulo_shift } }, \ { C_ZONEMD_GENERATE, YP_TOPT, YP_VOPT = { zone_digest, ZONE_DIGEST_NONE }, FLAGS }, \ From 7bb86cbe19082f4af6b70c343b565c71f272c222 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 8 Oct 2025 18:06:00 +0200 Subject: [PATCH 145/675] zonedb-load: fix zone loading which were included by conf-set include --- src/knot/zone/zonedb-load.c | 20 ++++++++++++++++++++ tests-extra/tests/config/include/test.py | 23 ++++++++++++++++++----- tests-extra/tools/dnstest/server.py | 9 +++++++-- 3 files changed, 45 insertions(+), 7 deletions(-) diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index e27737b1ab..f7135b0df3 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -483,6 +483,26 @@ static knot_zonedb_t *create_zonedb_commit(conf_t *conf, server_t *server) return NULL; } + assert(conf->io.flags & CONF_IO_FACTIVE); + bool include = conf->io.flags & CONF_IO_FDIFF_ZONES; + + // Insert possibly added zones by conf-set include. + if (include) { + for (conf_iter_t it = conf_iter(conf, C_ZONE); it.code == KNOT_EOK; + conf_iter_next(conf, &it)) { + conf_val_t id = conf_iter_id(conf, &it); + const knot_dname_t *name = conf_dname(&id); + zone_t *zone = knot_zonedb_find(db_new, name); + if (zone == NULL) { // Create an included zone. + zone = get_zone(conf, name, server, NULL); + if (zone == NULL) { + continue; + } + knot_zonedb_insert(db_new, zone); + } + } + } + if (conf->io.zones != NULL) { trie_it_t *trie_it = trie_it_begin(conf->io.zones); for (; !trie_it_finished(trie_it); trie_it_next(trie_it)) { diff --git a/tests-extra/tests/config/include/test.py b/tests-extra/tests/config/include/test.py index 113e61e675..a448faab9a 100644 --- a/tests-extra/tests/config/include/test.py +++ b/tests-extra/tests/config/include/test.py @@ -30,6 +30,12 @@ t.start() +knot.use_confdb = True +knot.gen_confile() +knot.ctl("conf-import %s" % knot.confile, availability=False) +knot.stop() +knot.start() + ctl.connect(os.path.join(knot.dir, "knot.sock")) ctl.send_block(cmd="conf-begin") @@ -37,9 +43,11 @@ ctl.send_block(cmd="conf-set", section="include", data=added_file) resp = ctl.receive_block() -# Cannot commit as it reloads the server without this include! -ctl.send_block(cmd="conf-get", section="zone") +ctl.send_block(cmd="conf-commit") +resp = ctl.receive_block() + +ctl.send_block(cmd="conf-read", section="zone") resp = ctl.receive_block() isset(ZONE1 in resp['zone'], ZONE1) @@ -47,15 +55,20 @@ isset(ZONE3 in resp['zone'], ZONE3) isset(ZONE4 in resp['zone'], ZONE4) -ctl.send_block(cmd="conf-commit") -resp = ctl.receive_block() - ctl.send_block(cmd="conf-read", section="server") resp = ctl.receive_block() isset('tcp-max-clients' in resp['server'], "server section item not set") isset('5' in resp['server']['tcp-max-clients'], "server section item value not set") +ctl.send_block(cmd="zone-status") +resp = ctl.receive_block() + +isset(ZONE1 in resp, ZONE1) +isset(ZONE2 in resp, ZONE2) +isset(ZONE3 in resp, ZONE3) +isset(ZONE4 in resp, ZONE4) + ctl.send(libknot.control.KnotCtlType.END) ctl.close() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 88b890145f..22fa8a1545 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -158,6 +158,7 @@ def __init__(self): self.start_params = None self.ctl_params = None self.ctl_params_append = None # The last parameter wins. + self.use_confdb = False self.data_dir = None @@ -2048,8 +2049,12 @@ def get_config(self): s.item_str("quic", "debug") s.end() - self.start_params = ["-c", self.confile] - self.ctl_params = ["-c", self.confile, "-t", "15"] + if self.use_confdb: + conf_params = ["-C", os.path.join(self.dir, "confdb")] + else: + conf_params = ["-c", self.confile] + self.start_params = conf_params + self.ctl_params = conf_params + ["-t", "15"] if self.ctl_params_append != None: self.ctl_params += self.ctl_params_append From a022d4cc5acac39b3a34268f801a85f126a029af Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 13 Oct 2025 16:29:23 +0200 Subject: [PATCH 146/675] update: incremental without NO_CHSET standalone SOA removal ignored... otherwise for example knotc zone-begin followed by zone-diff shows SOA removal, which respects the internals but makes no sense --- src/knot/updates/zone-update.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 82574d197b..737ca5e2cd 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1331,7 +1331,7 @@ int zone_update_foreach(zone_update_t *update, bool additions, rrset_cb_t cb, vo } else if (update->flags & (UPDATE_INCREMENTAL | UPDATE_HYBRID)) { knot_rrset_t *soa = additions ? update->change.soa_to : update->change.soa_from; zone_contents_t *c = additions ? update->change.add : update->change.remove; - int ret = (soa == NULL) ? KNOT_EOK : cb(soa, ctx); + int ret = (soa == NULL || update->change.soa_to == NULL) ? KNOT_EOK : cb(soa, ctx); if (ret == KNOT_EOK) { ret = trees_foreach(c->nodes, c->nsec3_nodes, false, cb, ctx); } From f37094354157ecf8f3eda93ecb904bb51600fb6d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 10 Oct 2025 09:36:04 +0200 Subject: [PATCH 147/675] backup: fix restore error if only PKCS #11 keystores are configured --- src/knot/zone/backup.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index ca4a6eaece..b78b360174 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -216,7 +216,7 @@ static char *dir_file(const char *dir_name, const char *file_name) return sprintf_alloc("%s/%s", dir_name, basename); } -static int backup_key(key_params_t *parm, const knot_dname_t *zname, +static int backup_key(key_params_t *parm, const knot_dname_t *zname, bool restore, knot_kasp_keystore_t *from, knot_kasp_keystore_t *to) { dnssec_key_t *key = NULL; @@ -226,22 +226,22 @@ static int backup_key(key_params_t *parm, const knot_dname_t *zname, } dnssec_key_set_algorithm(key, parm->algorithm); - dnssec_keystore_t *to_pem = NULL; - for (size_t i = 0; i < to[0].count; i++) { - if (to[i].backend == KEYSTORE_BACKEND_PEM) { - to_pem = to[i].keystore; - break; - } - } - unsigned backend; ret = kdnssec_load_private(from, parm->id, key, NULL, &backend); if (ret == DNSSEC_EOK) { - if (backend == KEYSTORE_BACKEND_PKCS11 || to_pem == NULL) { - log_zone_notice(zname, "private keys from PKCS #11 are not subject of backup/restore, skipping them"); - } else { - ret = dnssec_keystore_set_private(to[0].keystore, key); + // If restore, consider only the first configured keystore. + assert(to->count > 0); + ret = dnssec_keystore_set_private(to[0].keystore, key); + backend = restore ? to->backend : backend; + if (ret != DNSSEC_EOK && backend == KEYSTORE_BACKEND_PKCS11) { + log_zone_notice(zname, + "%s of private key id %s via PKCS #11 not possible, ignoring", + restore ? "restore" : "backup", parm->id); + ret = DNSSEC_EOK; } + } else if (ret == DNSSEC_ENOENT) { + log_zone_notice(zname, "private key id %s not available, ignoring", parm->id); + ret = DNSSEC_EOK; } dnssec_key_free(key); @@ -410,7 +410,7 @@ static int backup_keystore(conf_t *conf, zone_t *zone, zone_backup_ctx_t *ctx) WALK_LIST(n, key_params) { key_params_t *parm = n->d; if (ret == KNOT_EOK && !parm->is_pub_only) { - ret = backup_key(parm, zone->name, from, to); + ret = backup_key(parm, zone->name, ctx->restore_mode, from, to); } free_key_params(parm); } From 81cb1fe0880cc50ae836b31c99a72f64c5d8aab8 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 13 Oct 2025 16:13:06 +0200 Subject: [PATCH 148/675] dnssec: fix loading from more keystores if the key not in HSM --- src/knot/dnssec/zone-keys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 31435dd7ed..28fd04c04e 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -482,7 +482,7 @@ int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, dnssec_key_t *key, const char **name, unsigned *backend) { int ret = DNSSEC_ENOENT; - for (size_t i = 0; i < keystores[0].count && ret == DNSSEC_ENOENT; i++) { + for (size_t i = 0; i < keystores[0].count && (ret == DNSSEC_ENOENT || ret == DNSSEC_NOT_FOUND); i++) { ret = dnssec_keystore_get_private(keystores[i].keystore, id, key); if (ret == KNOT_EOK) { if (name != NULL) { From f68eb2ce8c1843df4c0afb2b313dedf817a7fee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 14 Oct 2025 20:29:42 +0200 Subject: [PATCH 149/675] zone: fix a recent memory leak --- src/knot/zone/zone-dump.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/knot/zone/zone-dump.c b/src/knot/zone/zone-dump.c index bca23cccd9..c002b38ebc 100644 --- a/src/knot/zone/zone-dump.c +++ b/src/knot/zone/zone-dump.c @@ -157,6 +157,7 @@ int zone_dump_text(zone_contents_t *zone, zone_skip_t *skip, FILE *file, bool co if (comments) { if (fprintf(file, ";; Zone dump (Knot DNS %s)\n", PACKAGE_VERSION) < 0) { + free(buf); return knot_map_errno(); } } From 1883c442cbe6be9edfe0c218b4801b51d1b4d7b4 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 13 Oct 2025 08:15:50 +0200 Subject: [PATCH 150/675] keymgr: deprecate local-serial command --- doc/man_keymgr.rst | 6 ------ src/utils/keymgr/main.c | 10 +++++----- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/doc/man_keymgr.rst b/doc/man_keymgr.rst index 3afba90362..a46fcbda6e 100644 --- a/doc/man_keymgr.rst +++ b/doc/man_keymgr.rst @@ -116,12 +116,6 @@ Commands Prints the current NSEC3 salt used for signing. If *new_salt* is specified, the salt is overwritten. The salt is printed and expected in hexadecimal, or dash if empty. -**local-serial** [*new_serial*] - Print SOA serial stored in KASP database when using on-secondary DNSSEC signing. - If *new_serial* is specified, the serial is overwritten. After updating the serial, expire the zone - (**zone-purge +expire +zonefile +journal**) if the server is running, or remove corresponding zone file - and journal contents if the server is stopped. - **master-serial** [*new_serial*] Print SOA serial of the remote master stored in KASP database when using on-secondary DNSSEC signing. If *new_serial* is specified, the serial is overwritten (not recommended). diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c index 51d7057962..b4d94dca09 100644 --- a/src/utils/keymgr/main.c +++ b/src/utils/keymgr/main.c @@ -63,9 +63,6 @@ static void print_help(void) " (syntax: import-pkcs11 =...)\n" " nsec3-salt Print current NSEC3 salt. If a parameter is specified, set new salt.\n" " (syntax: nsec3-salt [])\n" - " local-serial Print SOA serial stored in KASP database when using on-slave signing.\n" - " If a parameter is specified, set new serial.\n" - " (syntax: local-serial )\n" " master-serial Print SOA serial of the remote master stored in KASP database when using on-slave signing.\n" " If a parameter is specified, set new master serial.\n" " (syntax: master-serial )\n" @@ -184,8 +181,8 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp ret = keymgr_nsec3_salt_print(&kctx); print_ok_on_succes = false; } - } else if (same_command(argv[1], "local-serial", false) || same_command(argv[1], "master-serial", false)) { - kaspdb_serial_t type = (argv[1][0] == 'm' ? KASPDB_SERIAL_MASTER : KASPDB_SERIAL_LASTSIGNED); + } else if (same_command(argv[1], "master-serial", false)) { + kaspdb_serial_t type = KASPDB_SERIAL_MASTER; if (argc > 2) { uint32_t new_serial = 0; if ((ret = str_to_u32(argv[2], &new_serial)) == KNOT_EOK) { @@ -195,6 +192,9 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp ret = keymgr_serial_print(&kctx, type); print_ok_on_succes = false; } + } else if (same_command(argv[1], "local-serial", false)) { + WARN2("deprecated command with no effect"); + print_ok_on_succes = false; } else if (same_command(argv[1], "set", false)) { CHECK_MISSING_ARG("Key is not specified"); knot_kasp_key_t *key2set; From 040c9f00d2f0d5bdf913d5ae52ab9294f01ef495 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 13 Oct 2025 08:21:45 +0200 Subject: [PATCH 151/675] keymgr: remove local-serial command --- src/utils/keymgr/main.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c index b4d94dca09..9bdf0b4f24 100644 --- a/src/utils/keymgr/main.c +++ b/src/utils/keymgr/main.c @@ -192,9 +192,6 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp ret = keymgr_serial_print(&kctx, type); print_ok_on_succes = false; } - } else if (same_command(argv[1], "local-serial", false)) { - WARN2("deprecated command with no effect"); - print_ok_on_succes = false; } else if (same_command(argv[1], "set", false)) { CHECK_MISSING_ARG("Key is not specified"); knot_kasp_key_t *key2set; From 88b5ed72b3f4fe4ba3306b47d4f0014dde1ff744 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 2 Oct 2025 15:08:30 +0200 Subject: [PATCH 152/675] knotc: implemented zone-serial-set --- doc/man_knotc.rst | 9 +++ src/knot/ctl/commands.c | 84 ++++++++++++++++++++++-- src/knot/ctl/commands.h | 1 + src/knot/updates/zone-update.c | 38 +++++++---- src/knot/updates/zone-update.h | 13 ++++ src/utils/knotc/commands.c | 43 +++++++++++- src/utils/knotc/commands.h | 1 + tests-extra/tests/ctl/concurrent/test.py | 7 +- 8 files changed, 175 insertions(+), 21 deletions(-) diff --git a/doc/man_knotc.rst b/doc/man_knotc.rst index 595c2f84a1..33368f36a5 100644 --- a/doc/man_knotc.rst +++ b/doc/man_knotc.rst @@ -244,6 +244,15 @@ Actions Show zone statistics counter(s). To print also counters with value 0, use force option. +**zone-serial-set** *zone* [[**+**]\ *serial*] + Set the zone SOA serial to the specified value. If the argument is prefixed with + **+**, the serial is incremented by that value (the special constant **MAX** + can be used to increment by the maximum allowed value 2147483647). + If the zone transaction is open, both reading and writing of the SOA serial + occur within that transaction. Otherwise, a short-lived transaction + is created and committed solely for setting the new SOA serial. + If no argument is specified, the current zone SOA serial is returned. + **conf-init** Initialize the configuration database. If the database doesn't exist yet, execute this command as an intended user to ensure the server is permitted diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 94472099fb..433ead8fbe 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1004,25 +1004,96 @@ static int zone_txn_commit(zone_t *zone, ctl_args_t *args) return ret; } -static int zone_txn_abort(zone_t *zone, _unused_ ctl_args_t *args) +static int zone_txn_abort_l(zone_t *zone, _unused_ ctl_args_t *args) { - pthread_mutex_lock(&zone->cu_lock); if (zone->control_update == NULL) { args->suppress = true; - pthread_mutex_unlock(&zone->cu_lock); return KNOT_TXN_ENOTEXISTS; } if (zone->control_update->flags & UPDATE_WFEV) { knot_sem_post(&zone->control_update->external); - pthread_mutex_unlock(&zone->cu_lock); return KNOT_EOK; } zone_control_clear(zone); + return KNOT_EOK; +} +static int zone_txn_abort(zone_t *zone, ctl_args_t *args) +{ + pthread_mutex_lock(&zone->cu_lock); + int ret = zone_txn_abort_l(zone, args); pthread_mutex_unlock(&zone->cu_lock); - return KNOT_EOK; + return ret; +} + +static int zone_serial_set(zone_t *zone, ctl_args_t *args) +{ + int ret = KNOT_EOK; + const char *serial_set_str = args->data[KNOT_CTL_IDX_DATA]; + const char *serial_inc_str = args->data[KNOT_CTL_IDX_TYPE]; + bool forced = ctl_has_flag(args->data[KNOT_CTL_IDX_FLAGS], CTL_FLAG_FORCE); + bool serial_set_do = (serial_set_str != NULL); + bool serial_inc_do = (serial_inc_str != NULL && serial_inc_str[0] == '+'); + + uint32_t serial_set = 0; + if (serial_set_do) { + ret = str_to_u32(serial_set_str, &serial_set); + if (ret != KNOT_EOK) { + return ret; + } + } + + rcu_read_lock(); + const zone_contents_t *c = zone->contents; + if (c == NULL) { + rcu_read_unlock(); + return KNOT_EEMPTYZONE; + } + uint32_t return_serial = zone_contents_serial(c); + rcu_read_unlock(); + + pthread_mutex_lock(&zone->cu_lock); + bool cu_exists = (zone->control_update != NULL); + + if (serial_set_do && !cu_exists) { + ret = zone_txn_begin_l(zone, args); + } + + if (zone->control_update != NULL && ret == KNOT_EOK && + !node_rrtype_exists(zone->control_update->new_cont->apex, KNOT_RRTYPE_SOA)) { + ret = KNOT_EEMPTYZONE; + } + + if (zone->control_update != NULL && ret == KNOT_EOK) { + return_serial = zone_update_current_serial(zone->control_update); + if (serial_inc_do) { + serial_set += return_serial; + } + if (serial_set_do) { + ret = zone_update_set_soa(zone->control_update, serial_set, !forced); + } + } + + if (serial_set_do && !cu_exists) { + if (ret == KNOT_EOK) { + ret = zone_txn_commit_l(zone, args); + } + if (ret != KNOT_EOK) { + zone_txn_abort_l(zone, args); + } + } + pthread_mutex_unlock(&zone->cu_lock); + + if (!serial_set_do && ret == KNOT_EOK) { + send_ctx_t *ctx = &ctl_globals[args->thread_idx].send_ctx; + ctx->data[KNOT_CTL_IDX_DATA] = ctx->ttl; + (void)snprintf(ctx->ttl, sizeof(ctx->ttl), "%u", return_serial); + ret = knot_ctl_send(args->ctl, KNOT_CTL_TYPE_DATA, &ctx->data); + } + + return ret; } static int init_send_ctx(send_ctx_t *ctx, const knot_dname_t *zone_name, @@ -1913,6 +1984,8 @@ static int ctl_zone(ctl_args_t *args, ctl_cmd_t cmd) } case CTL_ZONE_STATS: return zones_apply(args, zone_stats); + case CTL_ZONE_SERIAL_SET: + return zones_apply(args, zone_serial_set); default: assert(0); return KNOT_EINVAL; @@ -2386,6 +2459,7 @@ static const desc_t cmd_table[] = { [CTL_ZONE_UNSET] = { "zone-unset", ctl_zone, CTL_LOCK_SRV_R }, [CTL_ZONE_PURGE] = { "zone-purge", ctl_zone, CTL_LOCK_SRV_W }, [CTL_ZONE_STATS] = { "zone-stats", ctl_zone, CTL_LOCK_SRV_R }, + [CTL_ZONE_SERIAL_SET] = { "zone-serial-set", ctl_zone, CTL_LOCK_SRV_R }, [CTL_CONF_LIST] = { "conf-list", ctl_conf_list, CTL_LOCK_SRV_R }, // Can either read live conf or conf txn. The latter would deserve CTL_LOCK_SRV_W, but when conf txn exists, all cmds are done by single thread anyway. [CTL_CONF_READ] = { "conf-read", ctl_conf_read, CTL_LOCK_SRV_R }, diff --git a/src/knot/ctl/commands.h b/src/knot/ctl/commands.h index ea2b32dff7..25b893514a 100644 --- a/src/knot/ctl/commands.h +++ b/src/knot/ctl/commands.h @@ -108,6 +108,7 @@ typedef enum { CTL_ZONE_UNSET, CTL_ZONE_PURGE, CTL_ZONE_STATS, + CTL_ZONE_SERIAL_SET, CTL_CONF_LIST, CTL_CONF_READ, diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 737ca5e2cd..74572ba8f1 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -630,9 +630,9 @@ int zone_update_apply_changeset_reverse(zone_update_t *update, const changeset_t return zone_update_apply_changeset(update, &reverse); } -int zone_update_increment_soa(zone_update_t *update, conf_t *conf) +int zone_update_set_soa(zone_update_t *update, uint32_t new_serial, bool semcheck) { - if (update == NULL || conf == NULL) { + if (update == NULL) { return KNOT_EINVAL; } @@ -642,26 +642,38 @@ int zone_update_increment_soa(zone_update_t *update, conf_t *conf) return KNOT_ENOMEM; } - int ret = zone_update_remove(update, soa_cpy); - if (ret != KNOT_EOK) { + uint32_t old_serial = knot_soa_serial(soa_cpy->rrs.rdata); + if (semcheck && serial_compare(old_serial, new_serial) != SERIAL_LOWER) { knot_rrset_free(soa_cpy, NULL); - return ret; + return KNOT_ESOAINVAL; } - uint32_t old_serial = knot_soa_serial(soa_cpy->rrs.rdata); + int ret = zone_update_remove(update, soa_cpy); + if (ret == KNOT_EOK) { + knot_soa_serial_set(soa_cpy->rrs.rdata, new_serial); + ret = zone_update_add(update, soa_cpy); + } + knot_rrset_free(soa_cpy, NULL); + + return ret; +} + +int zone_update_increment_soa(zone_update_t *update, conf_t *conf) +{ + if (update == NULL || conf == NULL) { + return KNOT_EINVAL; + } + + uint32_t old_serial = zone_update_current_serial(update); uint32_t new_serial = serial_next(old_serial, conf, update->zone->name, SERIAL_POLICY_AUTO, 1); - if (serial_compare(old_serial, new_serial) != SERIAL_LOWER) { + + int ret = zone_update_set_soa(update, new_serial, true); + if (ret == KNOT_ESOAINVAL) { log_zone_warning(update->zone->name, "updated SOA serial is lower " "than current, serial %u -> %u", old_serial, new_serial); - ret = KNOT_ESOAINVAL; - } else { - knot_soa_serial_set(soa_cpy->rrs.rdata, new_serial); - - ret = zone_update_add(update, soa_cpy); } - knot_rrset_free(soa_cpy, NULL); return ret; } diff --git a/src/knot/updates/zone-update.h b/src/knot/updates/zone-update.h index 7e0506c6bd..93b05196da 100644 --- a/src/knot/updates/zone-update.h +++ b/src/knot/updates/zone-update.h @@ -242,12 +242,25 @@ int zone_update_apply_changeset(zone_update_t *update, const changeset_t *change */ int zone_update_apply_changeset_reverse(zone_update_t *update, const changeset_t *changes); +/*! + * \brief Set SOA serial in the update. + * + * \param update Update to be modified. + * \param new_serial SOA serial to be set. + * \param semcheck Enable serial decrement check. + * + * \retval KNOT_ESOAINVAL if updated serial is lower than current and semcheck enabled. + * \return KNOT_E* + */ +int zone_update_set_soa(zone_update_t *update, uint32_t new_serial, bool semcheck); + /*! * \brief Increment SOA serial (according to configured policy) in the update. * * \param update Update to be modified. * \param conf Configuration. * + * \retval KNOT_ESOAINVAL if updated serial is lower than current. * \return KNOT_E* */ int zone_update_increment_soa(zone_update_t *update, conf_t *conf); diff --git a/src/utils/knotc/commands.c b/src/utils/knotc/commands.c index 73e01063e2..3e78ba307c 100644 --- a/src/utils/knotc/commands.c +++ b/src/utils/knotc/commands.c @@ -325,6 +325,15 @@ static void format_data(cmd_args_t *args, knot_ctl_type_t data_type, (value != NULL ? value : "")); *empty = false; break; + case CTL_ZONE_SERIAL_SET: + if (error != NULL) { + printf("error: (%s)", error); + *empty = false; + } else if (value != NULL) { + printf("%s", value); + *empty = false; + } + break; default: assert(0); } @@ -366,7 +375,8 @@ static void format_block(ctl_cmd_t cmd, bool failed, bool empty) case CTL_ZONE_SET: case CTL_ZONE_UNSET: case CTL_ZONE_PURGE: - printf("%s\n", failed ? "" : "OK"); + case CTL_ZONE_SERIAL_SET: + printf("%s\n", (failed || !empty) ? "" : "OK"); break; case CTL_STATUS: case CTL_ZONE_STATUS: @@ -593,6 +603,35 @@ static int cmd_zone_key_roll_ctl(cmd_args_t *args) return ctl_receive(args); } +static int cmd_zone_serial_ctl(cmd_args_t *args) +{ + int ret = check_args(args, 1, 2); + if (ret != KNOT_EOK) { + return ret; + } + + knot_ctl_data_t data = { + [KNOT_CTL_IDX_CMD] = ctl_cmd_to_str(args->desc->cmd), + [KNOT_CTL_IDX_FLAGS] = *args->flags ? args->flags : NULL, + [KNOT_CTL_IDX_ZONE] = args->argv[0], + }; + + if (args->argc > 1) { + bool incr = args->argv[1][0] == '+'; + const char *value = incr ? args->argv[1] + 1 : args->argv[1]; + if (incr && strcmp("MAX", value) == 0) { + value = "2147483647"; + } + data[KNOT_CTL_IDX_TYPE] = incr ? "+" : "="; + data[KNOT_CTL_IDX_DATA] = value; + } + + CTL_SEND_DATA + CTL_SEND_BLOCK + + return ctl_receive(args); +} + const filter_desc_t conf_import_filters[] = { { "+nopurge" }, { NULL }, @@ -1229,6 +1268,7 @@ const cmd_desc_t cmd_table[] = { { CMD_ZONE_UNSET, cmd_zone_node_ctl, CTL_ZONE_UNSET, CMD_FREQ_ZONE }, { CMD_ZONE_PURGE, cmd_zone_ctl, CTL_ZONE_PURGE, CMD_FREQ_ZONE | CMD_FOPT_ZONE | CMD_FOPT_FILTER }, { CMD_ZONE_STATS, cmd_stats_ctl, CTL_ZONE_STATS, CMD_FREQ_ZONE }, + { CMD_ZONE_SERIAL_SET, cmd_zone_serial_ctl, CTL_ZONE_SERIAL_SET, CMD_FREQ_ZONE }, { CMD_CONF_INIT, cmd_conf_init, CTL_NONE, CMD_FWRITE }, { CMD_CONF_CHECK, cmd_conf_check, CTL_NONE, CMD_FREAD | CMD_FREQ_MOD | CMD_FLOG_MORE }, @@ -1283,6 +1323,7 @@ static const cmd_help_t cmd_help_table[] = { { CMD_ZONE_UNSET, " [ []]", "Remove zone data within the transaction." }, { CMD_ZONE_PURGE, "... [...]", "Purge zone data, zone file, journal, timers, and KASP data. (#)" }, { CMD_ZONE_STATS, " [[.]]", "Show zone statistics counter(s)."}, + { CMD_ZONE_SERIAL_SET, " [[+]]", "Get/set/increment SOA serial of given zone. (#)" }, { "", "", "" }, { CMD_CONF_INIT, "", "Initialize the confdb. (*)" }, { CMD_CONF_CHECK, "", "Check the server configuration. (*)" }, diff --git a/src/utils/knotc/commands.h b/src/utils/knotc/commands.h index 87ad5fd62d..98667d3485 100644 --- a/src/utils/knotc/commands.h +++ b/src/utils/knotc/commands.h @@ -44,6 +44,7 @@ #define CMD_ZONE_UNSET "zone-unset" #define CMD_ZONE_PURGE "zone-purge" #define CMD_ZONE_STATS "zone-stats" +#define CMD_ZONE_SERIAL_SET "zone-serial-set" #define CMD_CONF_INIT "conf-init" #define CMD_CONF_CHECK "conf-check" diff --git a/tests-extra/tests/ctl/concurrent/test.py b/tests-extra/tests/ctl/concurrent/test.py index 5490ada156..8193a82ae4 100644 --- a/tests-extra/tests/ctl/concurrent/test.py +++ b/tests-extra/tests/ctl/concurrent/test.py @@ -23,9 +23,11 @@ def random_ctl(server, zone_name): "zone-sign", "zone-keys-load", "zone-ksk-submitted", "zone-freeze", "zone-thaw", "zone-xfr-freeze", "zone-xfr-thaw", "zone-read", "zone-get", "zone-stats", "conf-init", "conf-list", "conf-read", "conf-diff", - "conf-get"]) + "conf-get", "zone-serial-set"]) if cmd[0:5] == "zone-" and random.choice([False, True, True]): cmd += " " + zone_name + if cmd == "zone-serial-set" and random.choice([False, True, True]): + cmd += " " + random.choice(["+", "="]) + str(random.randint(0, 4000000000)) if random.choice([False, True]): cmd = "-b " + cmd try: @@ -106,7 +108,8 @@ def bck_purge_rest(server, zone_name): def ctl_update(server, zone_name): ctl_txn_generic(server, "-b zone-begin " + zone_name, - "zone-set " + zone_name + " abc 3600 A 1.2.3." + str(random.randint(1, 254)), + random.choice(["zone-set " + zone_name + " abc 3600 A 1.2.3." + str(random.randint(1, 254)), + "zone-serial-set " + zone_name + " " + random.choice(["+", "="]) + str(random.randint(0, 4000000000))]), "zone-commit " + zone_name, "zone-abort " + zone_name, True) def conf_update(server, zone_name): From c038963d5017148966abc95c9df54bfb00b4d9fd Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 24 Sep 2025 15:46:57 +0200 Subject: [PATCH 153/675] conf: introduce macros for default ports --- src/knot/conf/conf.c | 2 +- src/knot/conf/schema.c | 14 +++++++------- src/knot/conf/schema.h | 4 ++++ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index 97355d6fdf..38250616b0 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -1483,7 +1483,7 @@ int conf_xdp_iface( return KNOT_EINVAL; } } else { - iface->port = 53; + iface->port = CONF_DNS_PORT; } } else { int ret = knot_eth_name_from_addr(addr, iface->name, sizeof(iface->name)); diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index a3cef33b98..8ad3762838 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -244,19 +244,19 @@ static const yp_item_t desc_server[] = { { C_PROXY_ALLOWLIST, YP_TNET, YP_VNONE, YP_FMULTI}, { C_DBUS_EVENT, YP_TOPT, YP_VOPT = { dbus_events, DBUS_EVENT_NONE }, YP_FMULTI }, { C_DBUS_INIT_DELAY, YP_TINT, YP_VINT = { 0, INT32_MAX, 1, YP_STIME } }, - { C_LISTEN, YP_TADDR, YP_VADDR = { 53 }, YP_FMULTI, { check_listen } }, - { C_LISTEN_QUIC, YP_TADDR, YP_VADDR = { 853 }, YP_FMULTI, { check_listen } }, - { C_LISTEN_TLS, YP_TADDR, YP_VADDR = { 853 }, YP_FMULTI, { check_listen } }, + { C_LISTEN, YP_TADDR, YP_VADDR = { CONF_DNS_PORT }, YP_FMULTI, { check_listen } }, + { C_LISTEN_QUIC, YP_TADDR, YP_VADDR = { CONF_DNS_TLS_PORT }, YP_FMULTI, { check_listen } }, + { C_LISTEN_TLS, YP_TADDR, YP_VADDR = { CONF_DNS_TLS_PORT }, YP_FMULTI, { check_listen } }, { C_COMMENT, YP_TSTR, YP_VNONE }, { NULL } }; static const yp_item_t desc_xdp[] = { - { C_LISTEN, YP_TADDR, YP_VADDR = { 53 }, YP_FMULTI, { check_xdp_listen } }, + { C_LISTEN, YP_TADDR, YP_VADDR = { CONF_DNS_PORT }, YP_FMULTI, { check_xdp_listen } }, { C_UDP, YP_TBOOL, YP_VBOOL = { true } }, { C_TCP, YP_TBOOL, YP_VNONE }, { C_QUIC, YP_TBOOL, YP_VNONE }, - { C_QUIC_PORT, YP_TINT, YP_VINT = { 1, 65535, 853 } }, + { C_QUIC_PORT, YP_TINT, YP_VINT = { 1, 65535, CONF_DNS_TLS_PORT } }, { C_TCP_MAX_CLIENTS, YP_TINT, YP_VINT = { 1024, INT32_MAX, 1000000 } }, { C_TCP_INBUF_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(1), SSIZE_MAX, MEGA(100), YP_SSIZE } }, { C_TCP_OUTBUF_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(1), SSIZE_MAX, MEGA(100), YP_SSIZE } }, @@ -313,7 +313,7 @@ static const yp_item_t desc_database[] = { { C_CATALOG_DB, YP_TSTR, YP_VSTR = { "catalog" } }, { C_CATALOG_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(5), VIRT_MEM_LIMIT(GIGA(100)), VIRT_MEM_LIMIT(GIGA(20)), YP_SSIZE } }, - { C_ZONE_DB_LISTEN, YP_TADDR, YP_VADDR = { 6379 }, YP_FNONE, { check_rdb, check_listen } }, + { C_ZONE_DB_LISTEN, YP_TADDR, YP_VADDR = { CONF_REDIS_PORT }, YP_FNONE, { check_rdb, check_listen } }, { C_ZONE_DB_TLS, YP_TBOOL, YP_VNONE }, { C_ZONE_DB_CERT_KEY, YP_TB64, YP_VNONE, YP_FMULTI, { check_cert_pin } }, { C_ZONE_DB_CERT_HOSTNAME, YP_TSTR, YP_VNONE, YP_FMULTI }, @@ -342,7 +342,7 @@ static const yp_item_t desc_key[] = { static const yp_item_t desc_remote[] = { { C_ID, YP_TSTR, YP_VNONE, CONF_IO_FREF }, - { C_ADDR, YP_TADDR, YP_VADDR = { 53, 853 }, YP_FMULTI }, + { C_ADDR, YP_TADDR, YP_VADDR = { CONF_DNS_PORT, CONF_DNS_TLS_PORT }, YP_FMULTI }, { C_VIA, YP_TADDR, YP_VNONE, YP_FMULTI }, { C_QUIC, YP_TBOOL, YP_VNONE }, { C_TLS, YP_TBOOL, YP_VNONE }, diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 3c457a683f..6face8f1ee 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -203,6 +203,10 @@ #define C_ZSK_LIFETIME "\x0C""zsk-lifetime" #define C_ZSK_SIZE "\x08""zsk-size" +#define CONF_DNS_PORT 53 +#define CONF_DNS_TLS_PORT 853 +#define CONF_REDIS_PORT 6379 + enum { KEYSTORE_BACKEND_PEM = 1, KEYSTORE_BACKEND_PKCS11 = 2, From b7ab32fcae5559ed889e344dd825e8e4cb0da9be Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 24 Sep 2025 16:28:18 +0200 Subject: [PATCH 154/675] redis: add support for hostname listen specification --- doc/reference.rst | 9 +++++---- src/knot/common/hiredis.c | 36 ++++++++++++++++++++++++++++++------ 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 4a1c05c17b..f0e918f260 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -1214,7 +1214,7 @@ Configuration of databases for zone contents, DNSSEC metadata, or event timers. timer-db-max-size: SIZE catalog-db: str catalog-db-max-size: SIZE - zone-db-listen: ADDR[@INT] | STR + zone-db-listen: ADDR[@INT] | STR[@INT] zone-db-tls: BOOL zone-db-cert-key: BASE64 ... zone-db-cert-hostname: STR ... @@ -1348,9 +1348,10 @@ The hard limit for the catalog database maximum size. zone-db-listen -------------- -An IP address (and optionally a port) or a UNIX socket path of a running -instance of a Redis (or compatible) database to be used for reading and/or -writing zone contents. See :ref:`zone_zone-db-input` and :ref:`zone_zone-db-output`. +An IP address or a hostname and optionally a port (default is 6379) or an +absolute UNIX socket path (starting with ``/``) of a running instance of +a Redis (or compatible) database to be used for reading and/or writing zone +contents. See :ref:`zone_zone-db-input` and :ref:`zone_zone-db-output`. *Default:* not set diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c index 0590687b4b..c25c108711 100644 --- a/src/knot/common/hiredis.c +++ b/src/knot/common/hiredis.c @@ -5,7 +5,9 @@ #include "knot/common/hiredis.h" #include "contrib/conn_pool.h" +#include "contrib/openbsd/strlcpy.h" #include "contrib/sockaddr.h" +#include "contrib/strtonum.h" #include "knot/common/log.h" #include "libknot/errcode.h" @@ -139,17 +141,39 @@ redisContext *rdb_connect(conf_t *conf) return rdb; } - int port = sockaddr_port(&addr); - sockaddr_port_set(&addr, 0); - + int port = 0; char addr_str[SOCKADDR_STRLEN]; - if (sockaddr_tostr(addr_str, sizeof(addr_str), &addr) <= 0) { - return NULL; + + if (addr.ss_family == AF_UNIX) { + const char *path = ((struct sockaddr_un *)&addr)->sun_path; + if (path[0] != '/') { // hostname + strlcpy(addr_str, path, sizeof(addr_str)); + + char *port_sep = strchr(addr_str, '@'); + if (port_sep != NULL) { + *port_sep = '\0'; + uint16_t num; + int ret = str_to_u16(port_sep + 1, &num); + if (ret != KNOT_EOK || num == 0) { + return NULL; + } + port = num; + } else { + port = CONF_REDIS_PORT; + } + } + } else { + port = sockaddr_port(&addr); + sockaddr_port_set(&addr, 0); + + if (sockaddr_tostr(addr_str, sizeof(addr_str), &addr) <= 0) { + return NULL; + } } const struct timeval timeout = { 10, 0 }; - if (addr.ss_family == AF_UNIX) { + if (port == 0) { rdb = redisConnectUnixWithTimeout(addr_str, timeout); } else { rdb = redisConnectWithTimeout(addr_str, port, timeout); From a34e5a096df5e1d6601f22c5dfcd93310f0eb202 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 24 Sep 2025 16:38:13 +0200 Subject: [PATCH 155/675] doc: add default TLS and QUIC ports to reference --- doc/reference.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index f0e918f260..a2b58e22a0 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -720,7 +720,7 @@ Change of this parameter requires restart of the Knot server to take effect. listen-quic ----------- -One or more IP addresses (and optionally ports) where the server listens +One or more IP addresses and optionally ports (default is 853) where the server listens for incoming queries over QUIC protocol. Change of this parameter requires restart of the Knot server to take effect. @@ -732,7 +732,7 @@ Change of this parameter requires restart of the Knot server to take effect. listen-tls ---------- -One or more IP addresses (and optionally ports) where the server listens +One or more IP addresses and optionally ports (default is 853) where the server listens for incoming queries over TLS protocol (DoT). Change of this parameter requires restart of the Knot server to take effect. From 853d8ad2efbd92b583c9766b0878d1209cb90329 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 6 Oct 2025 11:35:42 +0200 Subject: [PATCH 156/675] tests-redis: add --use-aof --- tests-redis/config.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tests-redis/config.txt b/tests-redis/config.txt index 139be53768..eed346b808 100644 --- a/tests-redis/config.txt +++ b/tests-redis/config.txt @@ -1,3 +1,4 @@ --module ../src/redis/.libs/knot.so +--use-aof --no-progress --use-valgrind From 357706157ac372931fcd007bcfec0bcc8025379d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 25 Sep 2025 15:26:57 +0200 Subject: [PATCH 157/675] redis: add multi-db and/or sentinel support --- doc/reference.rst | 15 ++- src/knot/common/hiredis.c | 218 +++++++++++++++++++++++++------- src/knot/common/hiredis.h | 4 +- src/knot/conf/schema.c | 2 +- src/knot/conf/tools.c | 39 ++++-- src/knot/conf/tools.h | 8 +- src/knot/events/handlers/load.c | 2 +- src/knot/server/server.c | 4 +- src/knot/updates/zone-update.c | 2 +- src/knot/zone/redis.c | 82 +++++++++++- src/knot/zone/redis.h | 12 +- 11 files changed, 309 insertions(+), 79 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index a2b58e22a0..441c32116e 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -1214,7 +1214,7 @@ Configuration of databases for zone contents, DNSSEC metadata, or event timers. timer-db-max-size: SIZE catalog-db: str catalog-db-max-size: SIZE - zone-db-listen: ADDR[@INT] | STR[@INT] + zone-db-listen: ADDR[@INT] | STR[@INT] ... zone-db-tls: BOOL zone-db-cert-key: BASE64 ... zone-db-cert-hostname: STR ... @@ -1348,10 +1348,15 @@ The hard limit for the catalog database maximum size. zone-db-listen -------------- -An IP address or a hostname and optionally a port (default is 6379) or an -absolute UNIX socket path (starting with ``/``) of a running instance of -a Redis (or compatible) database to be used for reading and/or writing zone -contents. See :ref:`zone_zone-db-input` and :ref:`zone_zone-db-output`. +An ordered list of IP addresses or hostnames, and optionally ports (default is 6379), +or absolute UNIX socket paths (starting with ``/``) of running Redis (or compatible) +instances to be used for reading and/or writing zone contents. +See :ref:`zone_zone-db-input` and :ref:`zone_zone-db-output`. + +The listen parameters are tried sequentially until a usable connection +is established. The connected database can be a master, a replica, or a sentinel. +If it is a sentinel, it is used to acquire connection parameters of a master +database. *Default:* not set diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c index c25c108711..85e651fd2c 100644 --- a/src/knot/common/hiredis.c +++ b/src/knot/common/hiredis.c @@ -9,6 +9,7 @@ #include "contrib/sockaddr.h" #include "contrib/strtonum.h" #include "knot/common/log.h" +#include "knot/zone/redis.h" #include "libknot/errcode.h" #ifdef ENABLE_REDIS_TLS @@ -131,57 +132,20 @@ static int hiredis_attach_gnutls(redisContext *ctx, struct knot_creds *local_cre } #endif // ENABLE_REDIS_TLS -redisContext *rdb_connect(conf_t *conf) +static redisContext *connect_addr(conf_t *conf, const char *addr_str, int port) { - conf_val_t db_listen = conf_db_param(conf, C_ZONE_DB_LISTEN); - struct sockaddr_storage addr = conf_addr(&db_listen, NULL); - - redisContext *rdb = (void *)conn_pool_get(global_redis_pool, &addr, &addr); - if (rdb != NULL && (intptr_t)rdb != CONN_POOL_FD_INVALID) { - return rdb; - } - - int port = 0; - char addr_str[SOCKADDR_STRLEN]; - - if (addr.ss_family == AF_UNIX) { - const char *path = ((struct sockaddr_un *)&addr)->sun_path; - if (path[0] != '/') { // hostname - strlcpy(addr_str, path, sizeof(addr_str)); - - char *port_sep = strchr(addr_str, '@'); - if (port_sep != NULL) { - *port_sep = '\0'; - uint16_t num; - int ret = str_to_u16(port_sep + 1, &num); - if (ret != KNOT_EOK || num == 0) { - return NULL; - } - port = num; - } else { - port = CONF_REDIS_PORT; - } - } - } else { - port = sockaddr_port(&addr); - sockaddr_port_set(&addr, 0); - - if (sockaddr_tostr(addr_str, sizeof(addr_str), &addr) <= 0) { - return NULL; - } - } - const struct timeval timeout = { 10, 0 }; + redisContext *rdb; if (port == 0) { rdb = redisConnectUnixWithTimeout(addr_str, timeout); } else { rdb = redisConnectWithTimeout(addr_str, port, timeout); } - if (rdb == NULL) { - log_error("rdb, failed to connect"); - } else if (rdb->err) { - log_error("rdb, failed to connect (%s)", rdb->errstr); + if (rdb == NULL || rdb->err != REDIS_OK) { + log_debug("rdb, failed to connect, remote %s%s%.0u (%s)", + addr_str, (port != 0 ? "@" : ""), port, + (rdb != NULL ? rdb->errstr : "no reply")); return NULL; } @@ -211,6 +175,8 @@ redisContext *rdb_connect(conf_t *conf) free(key_file); free(cert_file); if (ret != KNOT_EOK) { + log_error("rdb, failed to initialize credentials or to load certificates (%s)", + knot_strerror(ret)); redisFree(rdb); return NULL; } @@ -233,6 +199,7 @@ redisContext *rdb_connect(conf_t *conf) struct knot_creds *creds = knot_creds_init_peer(local_creds, hostnames, pins); if (creds == NULL) { + log_debug("rdb, failed to use TLS (%s)", knot_strerror(KNOT_ENOMEM)); knot_creds_free(local_creds); redisFree(rdb); return NULL; @@ -240,6 +207,7 @@ redisContext *rdb_connect(conf_t *conf) int ret = hiredis_attach_gnutls(rdb, local_creds, creds); if (ret != KNOT_EOK) { + log_debug("rdb, failed to use TLS (%s)", knot_strerror(ret)); knot_creds_free(local_creds); knot_creds_free(creds); redisFree(rdb); @@ -251,6 +219,170 @@ redisContext *rdb_connect(conf_t *conf) return rdb; } +int rdb_addr_to_str(struct sockaddr_storage *addr, char *out, size_t out_len, int *port) +{ + *port = 0; + + if (addr->ss_family == AF_UNIX) { + const char *path = ((struct sockaddr_un *)addr)->sun_path; + if (path[0] != '/') { // hostname + size_t len = strlcpy(out, path, out_len); + if (len == 0 || len >= out_len) { + return KNOT_EINVAL; + } + + char *port_sep = strchr(out, '@'); + if (port_sep != NULL) { + *port_sep = '\0'; + uint16_t num; + int ret = str_to_u16(port_sep + 1, &num); + if (ret != KNOT_EOK || num == 0) { + return KNOT_EINVAL; + } + *port = num; + } else { + *port = CONF_REDIS_PORT; + } + } + } else { + *port = sockaddr_port(addr); + sockaddr_port_set(addr, 0); + + if (sockaddr_tostr(out, out_len, addr) <= 0 || *port == 0) { + return KNOT_EINVAL; + } + } + + return KNOT_EOK; +} + +static int get_master(redisContext *rdb, char *out, size_t out_len, int *port) +{ + redisReply *masters_reply = redisCommand(rdb, "SENTINEL masters"); + if (masters_reply == NULL || masters_reply->type != REDIS_REPLY_ARRAY || + masters_reply->elements == 0) { + if (masters_reply != NULL) { + freeReplyObject(masters_reply); + } + return KNOT_ENOENT; + } + + redisReply *first_master = masters_reply->element[0]; + const char *master_name = NULL; + + for (size_t j = 0; j < first_master->elements; j += 2) { + const char *field = first_master->element[j]->str; + const char *value = first_master->element[j + 1]->str; + if (strcmp(field, "name") == 0) { + master_name = value; + break; + } + } + if (master_name == NULL) { + freeReplyObject(masters_reply); + return KNOT_ENOENT; + } + + redisReply *addr_reply = redisCommand(rdb, "SENTINEL get-master-addr-by-name %s", + master_name); + freeReplyObject(masters_reply); + + if (addr_reply == NULL || addr_reply->type != REDIS_REPLY_ARRAY || + addr_reply->elements != 2) { + if (addr_reply != NULL) { + freeReplyObject(addr_reply); + } + return KNOT_ENOENT; + } + const char *ip_str = addr_reply->element[0]->str; + const char *port_str = addr_reply->element[1]->str; + + size_t len = strlcpy(out, ip_str, out_len); + if (len == 0 || len >= out_len) { + freeReplyObject(addr_reply); + return KNOT_ERANGE; + } + + uint16_t num; + int ret = str_to_u16(port_str, &num); + if (ret != KNOT_EOK || num == 0) { + freeReplyObject(addr_reply); + return KNOT_EINVAL; + } + *port = num; + + freeReplyObject(addr_reply); + + return KNOT_EOK; +} + +redisContext *rdb_connect(conf_t *conf, bool require_master) +{ + int port = 0; + int role = -1; + char addr_str[SOCKADDR_STRLEN - SOCKADDR_STRLEN_EXT] = "\0"; + redisContext *rdb = NULL; + + conf_val_t db_listen = conf_db_param(conf, C_ZONE_DB_LISTEN); + while (db_listen.code == KNOT_EOK) { + struct sockaddr_storage addr = conf_addr(&db_listen, NULL); + + rdb = (void *)conn_pool_get(global_redis_pool, &addr, &addr); + if (rdb != NULL && (intptr_t)rdb != CONN_POOL_FD_INVALID) { + role = zone_redis_role(rdb); + if (!require_master || role == 0) { + goto connected; + } + redisFree(rdb); + } + + conf_val_next(&db_listen); + } + + conf_val_reset(&db_listen); + while (db_listen.code == KNOT_EOK) { + struct sockaddr_storage addr = conf_addr(&db_listen, NULL); + + if (rdb_addr_to_str(&addr, addr_str, sizeof(addr_str), &port) != KNOT_EOK || + (rdb = connect_addr(conf, addr_str, port)) == NULL) { + conf_val_next(&db_listen); + continue; + } + + role = zone_redis_role(rdb); + if (role == 0) { // Master + goto connected; + } else if (role == 1 && !require_master) { // Replica + goto connected; + } else if (role == 2) { // Sentinel + if (get_master(rdb, addr_str, sizeof(addr_str), &port) == KNOT_EOK && + (rdb = connect_addr(conf, addr_str, port)) == KNOT_EOK) { + goto connected; + } + } + + conf_val_next(&db_listen); + } + + return NULL; + +connected: + if (log_enabled_debug()) { + bool tcp = rdb->connection_type == REDIS_CONN_TCP; + bool tls = rdb->privctx != NULL; + bool pool = addr_str[0] == '\0'; + log_debug("rdb, connected, remote %s%s%.0u%s%s%s", + (tcp ? rdb->tcp.host : rdb->unix_sock.path), + (tcp ? "@" : ""), + (tcp ? rdb->tcp.port : 0), + (tls ? " TLS" : ""), + (role == 1 ? " replica" : ""), + (pool ? " pool" : "")); + } + + return rdb; +} + void rdb_disconnect(redisContext *rdb, bool pool_save) { if (rdb != NULL && pool_save) { diff --git a/src/knot/common/hiredis.h b/src/knot/common/hiredis.h index e432e87bf4..9b9f3f078e 100644 --- a/src/knot/common/hiredis.h +++ b/src/knot/common/hiredis.h @@ -13,7 +13,9 @@ #include "knot/conf/conf.h" -redisContext *rdb_connect(conf_t *conf); +int rdb_addr_to_str(struct sockaddr_storage *addr, char *out, size_t out_len, int *port); + +redisContext *rdb_connect(conf_t *conf, bool require_master); void rdb_disconnect(redisContext *rdb, bool pool_save); diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 8ad3762838..9e0ef9a9f6 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -313,7 +313,7 @@ static const yp_item_t desc_database[] = { { C_CATALOG_DB, YP_TSTR, YP_VSTR = { "catalog" } }, { C_CATALOG_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(5), VIRT_MEM_LIMIT(GIGA(100)), VIRT_MEM_LIMIT(GIGA(20)), YP_SSIZE } }, - { C_ZONE_DB_LISTEN, YP_TADDR, YP_VADDR = { CONF_REDIS_PORT }, YP_FNONE, { check_rdb, check_listen } }, + { C_ZONE_DB_LISTEN, YP_TADDR, YP_VADDR = { CONF_REDIS_PORT }, YP_FMULTI, { check_db_listen } }, { C_ZONE_DB_TLS, YP_TBOOL, YP_VNONE }, { C_ZONE_DB_CERT_KEY, YP_TB64, YP_VNONE, YP_FMULTI, { check_cert_pin } }, { C_ZONE_DB_CERT_HOSTNAME, YP_TSTR, YP_VNONE, YP_FMULTI }, diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index 62a926efd7..6596c76367 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -41,6 +41,9 @@ #include "contrib/sockaddr.h" #include "contrib/string.h" #include "contrib/wire_ctx.h" +#ifdef ENABLE_REDIS +#include "knot/common/hiredis.h" +#endif #define MAX_INCLUDE_DEPTH 5 @@ -291,12 +294,33 @@ int check_listen( return KNOT_EOK; } +int check_db_listen( + knotd_conf_check_args_t *args) +{ +#ifndef ENABLE_REDIS + args->err_str = "zone database backend is not available"; + return KNOT_ENOTSUP; +#else + bool no_port; + struct sockaddr_storage ss = yp_addr(args->data, &no_port); + + int port; + char addr_str[SOCKADDR_STRLEN - SOCKADDR_STRLEN_EXT] = "\0"; + if (rdb_addr_to_str(&ss, addr_str, sizeof(addr_str), &port) != KNOT_EOK) { + args->err_str = "invalid value"; + return KNOT_EINVAL; + } + + return KNOT_EOK; +#endif +} + int check_xdp_listen( knotd_conf_check_args_t *args) { #ifndef ENABLE_XDP - args->err_str = "XDP is not available"; - return KNOT_ENOTSUP; + args->err_str = "XDP is not available"; + return KNOT_ENOTSUP; #else bool no_port; struct sockaddr_storage ss = yp_addr(args->data, &no_port); @@ -1213,17 +1237,6 @@ int check_catalog_tpl( return check_zone_or_tpl(args); } -int check_rdb( - knotd_conf_check_args_t *args) -{ -#ifndef ENABLE_REDIS - args->err_str = "Zone database support not available"; - return KNOT_ENOTSUP; -#else - return KNOT_EOK; -#endif -} - int check_db_instance( knotd_conf_check_args_t *args) { diff --git a/src/knot/conf/tools.h b/src/knot/conf/tools.h index 42be2e509b..c488a1f1f0 100644 --- a/src/knot/conf/tools.h +++ b/src/knot/conf/tools.h @@ -67,6 +67,10 @@ int check_listen( knotd_conf_check_args_t *args ); +int check_db_listen( + knotd_conf_check_args_t *args +); + int check_xdp_listen( knotd_conf_check_args_t *args ); @@ -163,10 +167,6 @@ int check_catalog_tpl( knotd_conf_check_args_t *args ); -int check_rdb( - knotd_conf_check_args_t *args -); - int check_db_instance( knotd_conf_check_args_t *args ); diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 3f5f7b39b1..be476a1de9 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -109,7 +109,7 @@ int event_load(conf_t *conf, zone_t *zone) bool db_enabled = conf_zone_rdb_enabled(conf, zone->name, true, &db_instance); if (db_enabled) { zone_src = "database"; - db_ctx = zone_redis_connect(conf); + db_ctx = zone_redis_connect(conf, false); } // Attempt to load changes from database. If fails, load full zone from there later. diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 532f88ed2a..31c37d1004 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -54,7 +54,7 @@ #endif #define SESSION_TICKET_POOL_TIMEOUT 1200 -#define REDIS_CONN_POOL_TIMEOUT (4 * 60) +#define REDIS_CONN_POOL_TIMEOUT 30 #define QUIC_LOG "QUIC/TLS, " @@ -940,7 +940,7 @@ static int rdb_listener_run(struct dthread *thread) while (thread->state & ThreadActive) { if (s->rdb_ctx == NULL) { - s->rdb_ctx = rdb_connect(conf()); + s->rdb_ctx = rdb_connect(conf(), false); if (s->rdb_ctx == NULL) { log_error("rdb, failed to connect"); sleep(2); diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 74572ba8f1..f4c7bddb26 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -735,7 +735,7 @@ static int commit_redis(conf_t *conf, zone_update_t *update) return KNOT_EOK; } - struct redisContext *db_ctx = zone_redis_connect(conf); + struct redisContext *db_ctx = zone_redis_connect(conf, true); if (db_ctx == NULL) { return KNOT_ECONN; } diff --git a/src/knot/zone/redis.c b/src/knot/zone/redis.c index e380476c99..bc14a330cc 100644 --- a/src/knot/zone/redis.c +++ b/src/knot/zone/redis.c @@ -3,6 +3,7 @@ * For more information, see */ +#include #include #include "knot/zone/redis.h" @@ -14,9 +15,9 @@ #define UNREAD_MAX 20 // Redis write batch length. -struct redisContext *zone_redis_connect(conf_t *conf) +struct redisContext *zone_redis_connect(conf_t *conf, bool require_master) { - return rdb_connect(conf); + return rdb_connect(conf, require_master); } void zone_redis_disconnect(struct redisContext *ctx, bool pool_save) @@ -30,10 +31,72 @@ bool zone_redis_ping(struct redisContext *ctx) return false; } - redisReply *reply = redisCommand(ctx, "PING"); - bool res = (reply != NULL && - reply->type == REDIS_REPLY_STATUS && - strcmp(reply->str, "PONG") == 0); + if (redisAppendCommand(ctx, "PING") != REDIS_OK) { + return false; + } + + int done = 0; + while (!done) { + if (redisBufferWrite(ctx, &done) != REDIS_OK) { + return false; + } + } + + struct pollfd pfd = { .fd = ctx->fd, .events = POLLIN }; + if (poll(&pfd, 1, 500) == 0) { + return false; + } + + redisReply *reply; + if (redisGetReply(ctx, (void **)&reply) != REDIS_OK) { + return false; + } + + bool res = reply->type == REDIS_REPLY_STATUS && + strcmp(reply->str, "PONG") == 0; + + freeReplyObject(reply); + + return res; +} + +int zone_redis_role(struct redisContext *ctx) +{ + if (ctx == NULL) { + return -1; + } + + if (redisAppendCommand(ctx, "ROLE") != REDIS_OK) { + return -1; + } + + int done = 0; + while (!done) { + if (redisBufferWrite(ctx, &done) != REDIS_OK) { + return -1; + } + } + + struct pollfd pfd = { .fd = ctx->fd, .events = POLLIN }; + if (poll(&pfd, 1, 1000) == 0) { + return -1; + } + + redisReply *reply; + if (redisGetReply(ctx, (void **)&reply) != REDIS_OK) { + return -1; + } + + int res = -1; + if (reply->type == REDIS_REPLY_ARRAY) { + if (strcmp(reply->element[0]->str, "master") == 0) { + res = 0; + } else if (strcmp(reply->element[0]->str, "sentinel") == 0) { + res = 2; + } else { + res = 1; + } + } freeReplyObject(reply); @@ -409,7 +472,7 @@ int zone_redis_load_upd(struct redisContext *rdb, uint8_t instance, #else // ENABLE_REDIS -struct redisContext *zone_redis_connect(conf_t *conf) +struct redisContext *zone_redis_connect(conf_t *conf, bool require_master) { return NULL; } @@ -424,6 +487,11 @@ bool zone_redis_ping(struct redisContext *ctx) return false; } +int zone_redis_role(struct redisContext *ctx) +{ + return -1; +} + int zone_redis_txn_begin(zone_redis_txn_t *txn, struct redisContext *rdb, uint8_t instance, const knot_dname_t *zone_name, bool incremental) diff --git a/src/knot/zone/redis.h b/src/knot/zone/redis.h index df581efa3b..2b1155f55a 100644 --- a/src/knot/zone/redis.h +++ b/src/knot/zone/redis.h @@ -37,7 +37,7 @@ typedef struct { /*! * \brief Wrappers to rdb_connect and rdb_disconnect not needing #ifdef ENABLE_REDIS around. */ -struct redisContext *zone_redis_connect(conf_t *conf); +struct redisContext *zone_redis_connect(conf_t *conf, bool require_master); void zone_redis_disconnect(struct redisContext *ctx, bool pool_save); /*! @@ -45,6 +45,16 @@ void zone_redis_disconnect(struct redisContext *ctx, bool pool_save); */ bool zone_redis_ping(struct redisContext *ctx); +/*! + * \brief Check the connected DB role. + * + * \retval -1 Error + * \retval 0 Master + * \retval 1 Replica + * \retval 2 Sentinel + */ +int zone_redis_role(struct redisContext *ctx); + /*! * \brief Start a writing stransaction into Redis zone database. * From ac5f1a4636b4e90b309ec6384ca35d9f6892d81b Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 16 Oct 2025 08:12:42 +0200 Subject: [PATCH 158/675] redis: fix compilation if hiredis without TLS --- src/knot/common/hiredis.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c index 85e651fd2c..c64a0157a3 100644 --- a/src/knot/common/hiredis.c +++ b/src/knot/common/hiredis.c @@ -369,8 +369,11 @@ redisContext *rdb_connect(conf_t *conf, bool require_master) connected: if (log_enabled_debug()) { bool tcp = rdb->connection_type == REDIS_CONN_TCP; - bool tls = rdb->privctx != NULL; bool pool = addr_str[0] == '\0'; + bool tls = false; +#ifdef ENABLE_REDIS_TLS + tls = rdb->privctx != NULL; +#endif // ENABLE_REDIS_TLS log_debug("rdb, connected, remote %s%s%.0u%s%s%s", (tcp ? rdb->tcp.host : rdb->unix_sock.path), (tcp ? "@" : ""), From 0be23e723b3d968f081da9e9de00c193ece3ad2d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 18 Oct 2025 19:05:02 +0200 Subject: [PATCH 159/675] kru: don't expect obsolete Clang < 12 for optimized implementation --- src/knot/modules/rrl/kru-avx2.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/knot/modules/rrl/kru-avx2.c b/src/knot/modules/rrl/kru-avx2.c index 7c4128a355..e414cb9e64 100644 --- a/src/knot/modules/rrl/kru-avx2.c +++ b/src/knot/modules/rrl/kru-avx2.c @@ -3,17 +3,14 @@ * For more information, see */ -// Checked with clang 5 (2017) and gcc 6 (2016). +// Checked with clang 12 (2021) and gcc 6 (2016). // For other cases we'll rather keep just the generic implementation. -#if defined(__x86_64__) && (__clang_major__ >= 5 || __GNUC__ >= 6) && !defined(__APPLE__) +#if defined(__x86_64__) && (__clang_major__ >= 12 || __GNUC__ >= 6) && !defined(__APPLE__) // This file has code for new-ish x86 (2015+ usually, Atom 2021+) - AES + AVX2 -#if __clang_major__ >= 12 +#ifdef __clang__ #pragma clang attribute push (__attribute__((target("arch=x86-64-v3,aes"))), \ apply_to = function) -#elif __clang__ - #pragma clang attribute push (__attribute__((target("avx2,aes"))), \ - apply_to = function) #else #pragma GCC push_options #if __GNUC__ >= 11 From 5d3dee2f788b93c53aa5c808cde9ef9b90f2e663 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 18 Oct 2025 19:10:10 +0200 Subject: [PATCH 160/675] kru: fix collision if target architecture/optimization is specified Related to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289611 --- src/knot/modules/rrl/kru-avx2.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/knot/modules/rrl/kru-avx2.c b/src/knot/modules/rrl/kru-avx2.c index e414cb9e64..2856198616 100644 --- a/src/knot/modules/rrl/kru-avx2.c +++ b/src/knot/modules/rrl/kru-avx2.c @@ -9,8 +9,11 @@ // This file has code for new-ish x86 (2015+ usually, Atom 2021+) - AES + AVX2 #ifdef __clang__ - #pragma clang attribute push (__attribute__((target("arch=x86-64-v3,aes"))), \ - apply_to = function) + // Force using specific instructions only if target architecture/optimization not specified + #if !defined(__AVX2__) + #pragma clang attribute push (__attribute__((target("arch=x86-64-v3,aes"))), \ + apply_to = function) + #endif #else #pragma GCC push_options #if __GNUC__ >= 11 @@ -30,7 +33,9 @@ const struct kru_api KRU_AVX2 = KRU_API_INITIALIZER; #ifdef __clang__ - #pragma clang attribute pop + #if !defined(__AVX2__) + #pragma clang attribute pop + #endif #else #pragma GCC pop_options #endif From 35d6dcacbbeede00a5ae82a6fd9955fdd2080722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Mon, 20 Oct 2025 10:36:48 +0200 Subject: [PATCH 161/675] libngtcp2: update embedded library to v1.17.0 --- .../libngtcp2/ngtcp2/lib/ngtcp2_addr.c | 12 +- .../libngtcp2/ngtcp2/lib/ngtcp2_balloc.c | 2 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c | 102 +++++++------- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h | 1 - src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c | 128 +++++++++++++---- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h | 31 ++-- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.c | 99 ++++++++----- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h | 6 +- .../libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.c | 14 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c | 16 ++- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h | 2 + src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c | 68 +++++---- src/contrib/libngtcp2/ngtcp2/ngtcp2.h | 132 +++++++++++++++--- src/contrib/libngtcp2/ngtcp2/version.h | 4 +- 14 files changed, 400 insertions(+), 217 deletions(-) diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.c index 1fb273d494..a028a8a8f4 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.c @@ -58,14 +58,12 @@ int ngtcp2_sockaddr_eq(const ngtcp2_sockaddr *a, const ngtcp2_sockaddr *b) { switch (a->sa_family) { case NGTCP2_AF_INET: { - const ngtcp2_sockaddr_in *ai = (const ngtcp2_sockaddr_in *)(void *)a, - *bi = (const ngtcp2_sockaddr_in *)(void *)b; + const ngtcp2_sockaddr_in *ai = (void *)a, *bi = (void *)b; return ai->sin_port == bi->sin_port && memcmp(&ai->sin_addr, &bi->sin_addr, sizeof(ai->sin_addr)) == 0; } case NGTCP2_AF_INET6: { - const ngtcp2_sockaddr_in6 *ai = (const ngtcp2_sockaddr_in6 *)(void *)a, - *bi = (const ngtcp2_sockaddr_in6 *)(void *)b; + const ngtcp2_sockaddr_in6 *ai = (void *)a, *bi = (void *)b; return ai->sin6_port == bi->sin6_port && memcmp(&ai->sin6_addr, &bi->sin6_addr, sizeof(ai->sin6_addr)) == 0; } @@ -89,8 +87,7 @@ uint32_t ngtcp2_addr_cmp(const ngtcp2_addr *aa, const ngtcp2_addr *bb) { switch (a->sa_family) { case NGTCP2_AF_INET: { - const ngtcp2_sockaddr_in *ai = (const ngtcp2_sockaddr_in *)(void *)a, - *bi = (const ngtcp2_sockaddr_in *)(void *)b; + const ngtcp2_sockaddr_in *ai = (void *)a, *bi = (void *)b; if (memcmp(&ai->sin_addr, &bi->sin_addr, sizeof(ai->sin_addr))) { flags |= NGTCP2_ADDR_CMP_FLAG_ADDR; } @@ -100,8 +97,7 @@ uint32_t ngtcp2_addr_cmp(const ngtcp2_addr *aa, const ngtcp2_addr *bb) { return flags; } case NGTCP2_AF_INET6: { - const ngtcp2_sockaddr_in6 *ai = (const ngtcp2_sockaddr_in6 *)(void *)a, - *bi = (const ngtcp2_sockaddr_in6 *)(void *)b; + const ngtcp2_sockaddr_in6 *ai = (void *)a, *bi = (void *)b; if (memcmp(&ai->sin6_addr, &bi->sin6_addr, sizeof(ai->sin6_addr))) { flags |= NGTCP2_ADDR_CMP_FLAG_ADDR; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c index 4a6797689f..cb865c5cef 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c @@ -71,7 +71,7 @@ int ngtcp2_balloc_get(ngtcp2_balloc *balloc, void **pbuf, size_t n) { return NGTCP2_ERR_NOMEM; } - hd = (ngtcp2_memblock_hd *)(void *)p; + hd = (void *)p; hd->next = balloc->head; balloc->head = hd; ngtcp2_buf_init( diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c index 2aa5d6fcad..62e6b2f125 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c @@ -190,20 +190,20 @@ static int bbr_is_reno_coexistence_probe_time(ngtcp2_cc_bbr *bbr, static uint64_t bbr_target_inflight(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); -static int bbr_is_inflight_too_high(ngtcp2_cc_bbr *bbr); +static int bbr_is_inflight_too_high(ngtcp2_cc_bbr *bbr, const ngtcp2_rs *rs); static void bbr_handle_inflight_too_high(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, - ngtcp2_tstamp ts); + const ngtcp2_rs *rs, ngtcp2_tstamp ts); static void bbr_note_loss(ngtcp2_cc_bbr *bbr); static void bbr_handle_lost_packet(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, const ngtcp2_cc_pkt *pkt, ngtcp2_tstamp ts); -static uint64_t -bbr_inflight_longterm_from_lost_packet(ngtcp2_cc_bbr *bbr, - const ngtcp2_cc_pkt *pkt); +static uint64_t bbr_inflight_at_loss(ngtcp2_cc_bbr *bbr, + const ngtcp2_cc_pkt *pkt, + const ngtcp2_rs *rs); static void bbr_update_min_rtt(ngtcp2_cc_bbr *bbr, const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts); @@ -334,8 +334,6 @@ static void bbr_on_init(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, bbr->max_inflight = 0; - bbr->congestion_recovery_start_ts = UINT64_MAX; - bbr->bdp = 0; } @@ -393,7 +391,7 @@ static void bbr_check_startup_high_loss(ngtcp2_cc_bbr *bbr) { if (bbr->full_bw_reached || bbr->loss_events_in_round <= 6 || (bbr->in_loss_recovery && bbr->round_count <= bbr->round_count_at_recovery) || - !bbr_is_inflight_too_high(bbr)) { + !bbr_is_inflight_too_high(bbr, &bbr->rst->rs)) { return; } @@ -403,11 +401,12 @@ static void bbr_check_startup_high_loss(ngtcp2_cc_bbr *bbr) { } static void bbr_init_pacing_rate(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { - cstat->pacing_interval_m = + cstat->pacing_interval_m = ngtcp2_max_uint64( ((cstat->first_rtt_sample_ts == UINT64_MAX ? NGTCP2_MILLISECONDS : cstat->smoothed_rtt) << 10) * - 100 / NGTCP2_BBR_STARTUP_PACING_GAIN_H / bbr->initial_cwnd; + 100 / NGTCP2_BBR_STARTUP_PACING_GAIN_H / bbr->initial_cwnd, + 1); } static void bbr_set_pacing_rate_with_gain(ngtcp2_cc_bbr *bbr, @@ -568,7 +567,8 @@ static void bbr_update_max_bw(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack) { bbr_update_round(bbr, ack); - if (cstat->delivery_rate_sec >= bbr->max_bw || !bbr->rst->rs.is_app_limited) { + if (cstat->delivery_rate_sec && (cstat->delivery_rate_sec >= bbr->max_bw || + !bbr->rst->rs.is_app_limited)) { ngtcp2_window_filter_update(&bbr->max_bw_filter, cstat->delivery_rate_sec, bbr->cycle_count); @@ -880,7 +880,7 @@ static void bbr_adapt_longterm_model(ngtcp2_cc_bbr *bbr, } } - if (!bbr_is_inflight_too_high(bbr)) { + if (!bbr_is_inflight_too_high(bbr, &bbr->rst->rs)) { if (bbr->inflight_longterm == UINT64_MAX) { return; } @@ -926,17 +926,16 @@ static uint64_t bbr_target_inflight(ngtcp2_cc_bbr *bbr, return ngtcp2_min_uint64(bbr->bdp, cstat->cwnd); } -static int bbr_is_inflight_too_high(ngtcp2_cc_bbr *bbr) { - const ngtcp2_rs *rs = &bbr->rst->rs; +static int bbr_is_inflight_too_high(ngtcp2_cc_bbr *bbr, const ngtcp2_rs *rs) { + (void)bbr; return rs->lost * NGTCP2_BBR_LOSS_THRESH_DENOM > rs->tx_in_flight * NGTCP2_BBR_LOSS_THRESH_NUMER; } static void bbr_handle_inflight_too_high(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, + const ngtcp2_rs *rs, ngtcp2_tstamp ts) { - const ngtcp2_rs *rs = &bbr->rst->rs; - bbr->bw_probe_samples = 0; if (!rs->is_app_limited) { @@ -960,7 +959,7 @@ static void bbr_note_loss(ngtcp2_cc_bbr *bbr) { static void bbr_handle_lost_packet(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, const ngtcp2_cc_pkt *pkt, ngtcp2_tstamp ts) { - ngtcp2_rs *rs = &bbr->rst->rs; + ngtcp2_rs rs = {0}; bbr_note_loss(bbr); @@ -968,22 +967,21 @@ static void bbr_handle_lost_packet(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, return; } - rs->tx_in_flight = pkt->tx_in_flight; + rs.tx_in_flight = pkt->tx_in_flight; assert(bbr->rst->lost >= pkt->lost); - rs->lost = bbr->rst->lost - pkt->lost; - rs->is_app_limited = pkt->is_app_limited; + rs.lost = bbr->rst->lost - pkt->lost; + rs.is_app_limited = pkt->is_app_limited; - if (bbr_is_inflight_too_high(bbr)) { - rs->tx_in_flight = bbr_inflight_longterm_from_lost_packet(bbr, pkt); + if (bbr_is_inflight_too_high(bbr, &rs)) { + rs.tx_in_flight = bbr_inflight_at_loss(bbr, pkt, &rs); - bbr_handle_inflight_too_high(bbr, cstat, ts); + bbr_handle_inflight_too_high(bbr, cstat, &rs, ts); } } -static uint64_t -bbr_inflight_longterm_from_lost_packet(ngtcp2_cc_bbr *bbr, - const ngtcp2_cc_pkt *pkt) { - ngtcp2_rs *rs = &bbr->rst->rs; +static uint64_t bbr_inflight_at_loss(ngtcp2_cc_bbr *bbr, + const ngtcp2_cc_pkt *pkt, + const ngtcp2_rs *rs) { uint64_t inflight_prev, lost_prev, lost_prefix; (void)bbr; @@ -1280,28 +1278,15 @@ static int in_congestion_recovery(const ngtcp2_conn_stat *cstat, static void bbr_handle_recovery(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack) { - if (bbr->in_loss_recovery) { - if (ack->largest_pkt_sent_ts != UINT64_MAX && - !in_congestion_recovery(cstat, ack->largest_pkt_sent_ts)) { - bbr->in_loss_recovery = 0; - bbr->round_count_at_recovery = UINT64_MAX; - bbr_restore_cwnd(bbr, cstat); - } - + if (!bbr->in_loss_recovery) { return; } - if (bbr->congestion_recovery_start_ts != UINT64_MAX) { - bbr->in_loss_recovery = 1; - bbr->round_count_at_recovery = - bbr->round_start ? bbr->round_count : bbr->round_count + 1; - bbr_save_cwnd(bbr, cstat); - cstat->cwnd = - cstat->bytes_in_flight + - ngtcp2_max_uint64(ack->bytes_delivered, cstat->max_tx_udp_payload_size); - - cstat->congestion_recovery_start_ts = bbr->congestion_recovery_start_ts; - bbr->congestion_recovery_start_ts = UINT64_MAX; + if (ack->largest_pkt_sent_ts != UINT64_MAX && + !in_congestion_recovery(cstat, ack->largest_pkt_sent_ts)) { + bbr->in_loss_recovery = 0; + bbr->round_count_at_recovery = UINT64_MAX; + bbr_restore_cwnd(bbr, cstat); } } @@ -1313,18 +1298,24 @@ static void bbr_cc_on_pkt_lost(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, } static void bbr_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, - ngtcp2_tstamp sent_ts, uint64_t bytes_lost, + ngtcp2_tstamp sent_ts, + const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts) { ngtcp2_cc_bbr *bbr = ngtcp2_struct_of(cc, ngtcp2_cc_bbr, cc); - (void)bytes_lost; - if (bbr->in_loss_recovery || - bbr->congestion_recovery_start_ts != UINT64_MAX || - in_congestion_recovery(cstat, sent_ts)) { + if (bbr->in_loss_recovery || in_congestion_recovery(cstat, sent_ts)) { return; } - bbr->congestion_recovery_start_ts = ts; + bbr->in_loss_recovery = 1; + bbr->round_count_at_recovery = + bbr->round_start ? bbr->round_count : bbr->round_count + 1; + bbr_save_cwnd(bbr, cstat); + cstat->cwnd = + cstat->bytes_in_flight + + ngtcp2_max_uint64(ack->bytes_delivered, cstat->max_tx_udp_payload_size); + + cstat->congestion_recovery_start_ts = ts; } static void bbr_cc_on_spurious_congestion(ngtcp2_cc *cc, @@ -1333,7 +1324,6 @@ static void bbr_cc_on_spurious_congestion(ngtcp2_cc *cc, ngtcp2_cc_bbr *bbr = ngtcp2_struct_of(cc, ngtcp2_cc_bbr, cc); (void)ts; - bbr->congestion_recovery_start_ts = UINT64_MAX; cstat->congestion_recovery_start_ts = UINT64_MAX; if (bbr->in_loss_recovery) { @@ -1350,7 +1340,6 @@ static void bbr_cc_on_persistent_congestion(ngtcp2_cc *cc, (void)ts; cstat->congestion_recovery_start_ts = UINT64_MAX; - bbr->congestion_recovery_start_ts = UINT64_MAX; bbr->in_loss_recovery = 0; bbr->round_count_at_recovery = UINT64_MAX; @@ -1365,6 +1354,11 @@ static void bbr_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, ngtcp2_cc_bbr *bbr = ngtcp2_struct_of(cc, ngtcp2_cc_bbr, cc); bbr_handle_recovery(bbr, cstat, ack); + + if (ack->bytes_delivered == 0) { + return; + } + bbr_update_on_ack(bbr, cstat, ack, ts); } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h index 0499924f58..f0d529639c 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h @@ -130,7 +130,6 @@ typedef struct ngtcp2_cc_bbr { int in_loss_recovery; uint64_t round_count_at_recovery; uint64_t max_inflight; - ngtcp2_tstamp congestion_recovery_start_ts; uint64_t bdp; } ngtcp2_cc_bbr; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c index 3fffef5448..f8e420ed7d 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c @@ -41,6 +41,40 @@ uint64_t ngtcp2_cc_compute_initcwnd(size_t max_udp_payload_size) { return ngtcp2_min_uint64(10 * max_udp_payload_size, n); } +/* 1.25 is the under-utilization avoidance factor described in + https://datatracker.ietf.org/doc/html/rfc9002#section-7.7 */ +#define NGTCP2_CC_PACING_GAIN_H 125 + +static void init_pacing_rate(ngtcp2_conn_stat *cstat) { + assert(cstat->cwnd); + + cstat->pacing_interval_m = ngtcp2_max_uint64( + (NGTCP2_MILLISECONDS << 10) * 100 / NGTCP2_CC_PACING_GAIN_H / cstat->cwnd, + 1); + cstat->send_quantum = 10 * cstat->max_tx_udp_payload_size; +} + +static void set_pacing_rate(ngtcp2_conn_stat *cstat) { + size_t send_quantum = 64 * 1024; + + assert(cstat->cwnd); + + cstat->pacing_interval_m = + ((cstat->first_rtt_sample_ts == UINT64_MAX ? NGTCP2_MILLISECONDS + : cstat->smoothed_rtt) + << 10) * + 100 / NGTCP2_CC_PACING_GAIN_H / cstat->cwnd; + + cstat->pacing_interval_m = ngtcp2_max_uint64(cstat->pacing_interval_m, 1); + + send_quantum = + ngtcp2_min_size(send_quantum, (size_t)((NGTCP2_MILLISECONDS << 10) / + cstat->pacing_interval_m)); + + cstat->send_quantum = + ngtcp2_max_size(send_quantum, 10 * cstat->max_tx_udp_payload_size); +} + ngtcp2_cc_pkt *ngtcp2_cc_pkt_init(ngtcp2_cc_pkt *pkt, int64_t pkt_num, size_t pktlen, ngtcp2_pktns_id pktns_id, ngtcp2_tstamp sent_ts, uint64_t lost, @@ -56,9 +90,14 @@ ngtcp2_cc_pkt *ngtcp2_cc_pkt_init(ngtcp2_cc_pkt *pkt, int64_t pkt_num, return pkt; } -static void reno_cc_reset(ngtcp2_cc_reno *reno) { reno->pending_add = 0; } +static void reno_cc_reset(ngtcp2_cc_reno *reno, ngtcp2_conn_stat *cstat) { + reno->pending_add = 0; -void ngtcp2_cc_reno_init(ngtcp2_cc_reno *reno, ngtcp2_log *log) { + init_pacing_rate(cstat); +} + +void ngtcp2_cc_reno_init(ngtcp2_cc_reno *reno, ngtcp2_log *log, + ngtcp2_conn_stat *cstat) { *reno = (ngtcp2_cc_reno){ .cc = { @@ -70,7 +109,7 @@ void ngtcp2_cc_reno_init(ngtcp2_cc_reno *reno, ngtcp2_log *log) { }, }; - reno_cc_reset(reno); + reno_cc_reset(reno, cstat); } static int in_congestion_recovery(const ngtcp2_conn_stat *cstat, @@ -92,6 +131,9 @@ void ngtcp2_cc_reno_cc_on_pkt_acked(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, if (cstat->cwnd < cstat->ssthresh) { cstat->cwnd += pkt->pktlen; + + set_pacing_rate(cstat); + ngtcp2_log_infof(reno->cc.log, NGTCP2_LOG_EVENT_CCA, "pkn=%" PRId64 " acked, slow start cwnd=%" PRIu64, pkt->pkt_num, cstat->cwnd); @@ -102,14 +144,17 @@ void ngtcp2_cc_reno_cc_on_pkt_acked(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, reno->pending_add = m % cstat->cwnd; cstat->cwnd += m / cstat->cwnd; + + set_pacing_rate(cstat); } void ngtcp2_cc_reno_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, ngtcp2_tstamp sent_ts, - uint64_t bytes_lost, ngtcp2_tstamp ts) { + const ngtcp2_cc_ack *ack, + ngtcp2_tstamp ts) { ngtcp2_cc_reno *reno = ngtcp2_struct_of(cc, ngtcp2_cc_reno, cc); uint64_t min_cwnd; - (void)bytes_lost; + (void)ack; if (in_congestion_recovery(cstat, sent_ts)) { return; @@ -123,6 +168,8 @@ void ngtcp2_cc_reno_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, reno->pending_add = 0; + set_pacing_rate(cstat); + ngtcp2_log_infof(reno->cc.log, NGTCP2_LOG_EVENT_CCA, "reduce cwnd because of packet loss cwnd=%" PRIu64, cstat->cwnd); @@ -136,15 +183,16 @@ void ngtcp2_cc_reno_cc_on_persistent_congestion(ngtcp2_cc *cc, cstat->cwnd = 2 * cstat->max_tx_udp_payload_size; cstat->congestion_recovery_start_ts = UINT64_MAX; + + set_pacing_rate(cstat); } void ngtcp2_cc_reno_cc_reset(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts) { ngtcp2_cc_reno *reno = ngtcp2_struct_of(cc, ngtcp2_cc_reno, cc); - (void)cstat; (void)ts; - reno_cc_reset(reno); + reno_cc_reset(reno, cstat); } static void cubic_vars_reset(ngtcp2_cubic_vars *v) { @@ -156,11 +204,11 @@ static void cubic_vars_reset(ngtcp2_cubic_vars *v) { v->app_limited_start_ts = UINT64_MAX; v->app_limited_duration = 0; - v->pending_bytes_delivered = 0; - v->pending_est_bytes_delivered = 0; + v->pending_bytes_acked = 0; + v->pending_est_bytes_acked = 0; } -static void cubic_cc_reset(ngtcp2_cc_cubic *cubic) { +static void cubic_cc_reset(ngtcp2_cc_cubic *cubic, ngtcp2_conn_stat *cstat) { cubic_vars_reset(&cubic->current); cubic_vars_reset(&cubic->undo.v); cubic->undo.cwnd = 0; @@ -174,10 +222,12 @@ static void cubic_cc_reset(ngtcp2_cc_cubic *cubic) { cubic->hs.css_round = 0; cubic->next_round_delivered = 0; + + init_pacing_rate(cstat); } void ngtcp2_cc_cubic_init(ngtcp2_cc_cubic *cubic, ngtcp2_log *log, - ngtcp2_rst *rst) { + ngtcp2_conn_stat *cstat, ngtcp2_rst *rst) { *cubic = (ngtcp2_cc_cubic){ .cc = { @@ -191,7 +241,7 @@ void ngtcp2_cc_cubic_init(ngtcp2_cc_cubic *cubic, ngtcp2_log *log, .rst = rst, }; - cubic_cc_reset(cubic); + cubic_cc_reset(cubic, cstat); } uint64_t ngtcp2_cbrt(uint64_t n) { @@ -266,12 +316,14 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, ngtcp2_cc_cubic *cubic = ngtcp2_struct_of(cc, ngtcp2_cc_cubic, cc); uint64_t w_cubic, w_cubic_next; uint64_t target, m; + uint64_t bytes_acked; ngtcp2_duration rtt_thresh; int round_start; int is_app_limited = cubic->rst->rs.is_app_limited && !cubic->rst->is_cwnd_limited; - if (in_congestion_recovery(cstat, ack->largest_pkt_sent_ts)) { + if (ack->bytes_delivered == 0 || + in_congestion_recovery(cstat, ack->largest_pkt_sent_ts)) { return; } @@ -291,6 +343,8 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cstat->cwnd += ack->bytes_delivered; } + set_pacing_rate(cstat); + ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, "%" PRIu64 " bytes acked, slow start cwnd=%" PRIu64, ack->bytes_delivered, cstat->cwnd); @@ -379,25 +433,36 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, target = w_cubic_next; } - m = ack->bytes_delivered * cstat->max_tx_udp_payload_size + - cubic->current.pending_est_bytes_delivered; - cubic->current.pending_est_bytes_delivered = m % cstat->cwnd; + bytes_acked = ack->bytes_delivered * cstat->max_tx_udp_payload_size; + m = (bytes_acked + cubic->current.pending_est_bytes_acked) / cstat->cwnd; + + cubic->current.pending_est_bytes_acked += bytes_acked; + cubic->current.pending_est_bytes_acked -= m * cstat->cwnd; + + assert(cubic->current.pending_est_bytes_acked < cstat->cwnd); if (cubic->current.w_est < cubic->current.cwnd_prior) { - cubic->current.w_est += m * 9 / 17 / cstat->cwnd; + cubic->current.w_est += m * 9 / 17; } else { - cubic->current.w_est += m / cstat->cwnd; + cubic->current.w_est += m; } if (cubic->current.w_est > w_cubic) { cstat->cwnd = cubic->current.w_est; } else { - m = (target - cstat->cwnd) * cstat->max_tx_udp_payload_size + - cubic->current.pending_bytes_delivered; - cubic->current.pending_bytes_delivered = m % cstat->cwnd; - cstat->cwnd += m / cstat->cwnd; + bytes_acked = (target - cstat->cwnd) * cstat->max_tx_udp_payload_size; + m = (bytes_acked + cubic->current.pending_bytes_acked) / cstat->cwnd; + + cubic->current.pending_bytes_acked += bytes_acked; + cubic->current.pending_bytes_acked -= m * cstat->cwnd; + + assert(cubic->current.pending_bytes_acked < cstat->cwnd); + + cstat->cwnd += m; } + set_pacing_rate(cstat); + ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, "%" PRIu64 " bytes acked, cubic-ca cwnd=%" PRIu64 " k_m=%" PRIu64 " target=%" PRIu64 " w_est=%" PRIu64, @@ -407,7 +472,7 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, ngtcp2_tstamp sent_ts, - uint64_t bytes_lost, + const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts) { ngtcp2_cc_cubic *cubic = ngtcp2_struct_of(cc, ngtcp2_cc_cubic, cc); uint64_t flight_size; @@ -428,8 +493,8 @@ void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cubic->current.epoch_start = ts; cubic->current.app_limited_start_ts = UINT64_MAX; cubic->current.app_limited_duration = 0; - cubic->current.pending_bytes_delivered = 0; - cubic->current.pending_est_bytes_delivered = 0; + cubic->current.pending_bytes_acked = 0; + cubic->current.pending_est_bytes_acked = 0; if (cstat->cwnd < cubic->current.w_max) { cubic->current.w_max = cstat->cwnd * 17 / 20; @@ -443,7 +508,7 @@ void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cstat->ssthresh = cstat->cwnd * 7 / 10; if (cubic->rst->rs.delivered * 2 < cstat->cwnd) { - flight_size = cstat->bytes_in_flight + bytes_lost; + flight_size = cstat->bytes_in_flight + ack->bytes_lost; cstat->ssthresh = ngtcp2_min_uint64( cstat->ssthresh, ngtcp2_max_uint64(cubic->rst->rs.delivered, flight_size)); @@ -464,6 +529,8 @@ void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cubic->current.k_m = ngtcp2_cbrt((cwnd_delta << 30) * 10 / 4 / cstat->max_tx_udp_payload_size); + set_pacing_rate(cstat); + ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, "reduce cwnd because of packet loss cwnd=%" PRIu64, cstat->cwnd); @@ -482,6 +549,8 @@ void ngtcp2_cc_cubic_cc_on_spurious_congestion(ngtcp2_cc *cc, cstat->cwnd = cubic->undo.cwnd; cstat->ssthresh = cubic->undo.ssthresh; + set_pacing_rate(cstat); + ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, "spurious congestion is detected and congestion state is " "restored cwnd=%" PRIu64, @@ -499,17 +568,18 @@ void ngtcp2_cc_cubic_cc_on_persistent_congestion(ngtcp2_cc *cc, ngtcp2_cc_cubic *cubic = ngtcp2_struct_of(cc, ngtcp2_cc_cubic, cc); (void)ts; - cubic_cc_reset(cubic); + cubic_cc_reset(cubic, cstat); cstat->cwnd = 2 * cstat->max_tx_udp_payload_size; cstat->congestion_recovery_start_ts = UINT64_MAX; + + set_pacing_rate(cstat); } void ngtcp2_cc_cubic_cc_reset(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts) { ngtcp2_cc_cubic *cubic = ngtcp2_struct_of(cc, ngtcp2_cc_cubic, cc); - (void)cstat; (void)ts; - cubic_cc_reset(cubic); + cubic_cc_reset(cubic, cstat); } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h index e4e19e1aa6..010a1c3541 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h @@ -88,11 +88,6 @@ typedef struct ngtcp2_cc_pkt { * acknowledged and lost bytes. */ typedef struct ngtcp2_cc_ack { - /** - * :member:`prior_bytes_in_flight` is the in-flight bytes before - * processing this ACK. - */ - uint64_t prior_bytes_in_flight; /** * :member:`bytes_delivered` is the number of bytes acknowledged. */ @@ -143,13 +138,16 @@ typedef void (*ngtcp2_cc_on_pkt_lost)(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, * @functypedef * * :type:`ngtcp2_cc_congestion_event` is a callback function which is - * called when congestion event happens (e.g., when packet is lost). - * |bytes_lost| is the number of bytes lost in this congestion event. + * called when congestion event happens (e.g., when packet is lost or + * due to ECN). |ack| contains information after ACK processing. + * This callback may be called from non-ACK processing context. In + * that case, the information only taken from |ack| processing has + * default values, like 0 or UINT64_MAX; */ typedef void (*ngtcp2_cc_congestion_event)(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, ngtcp2_tstamp sent_ts, - uint64_t bytes_lost, + const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts); /** @@ -254,7 +252,7 @@ typedef struct ngtcp2_cc { ngtcp2_cc_on_pkt_lost on_pkt_lost; /** * :member:`congestion_event` is a callback function which is called - * when congestion event happens (.e.g, packet is lost). + * when congestion event happens (e.g., packet is lost). */ ngtcp2_cc_congestion_event congestion_event; /** @@ -310,14 +308,16 @@ typedef struct ngtcp2_cc_reno { uint64_t pending_add; } ngtcp2_cc_reno; -void ngtcp2_cc_reno_init(ngtcp2_cc_reno *reno, ngtcp2_log *log); +void ngtcp2_cc_reno_init(ngtcp2_cc_reno *reno, ngtcp2_log *log, + ngtcp2_conn_stat *cstat); void ngtcp2_cc_reno_cc_on_pkt_acked(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, const ngtcp2_cc_pkt *pkt, ngtcp2_tstamp ts); void ngtcp2_cc_reno_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, ngtcp2_tstamp sent_ts, - uint64_t bytes_lost, ngtcp2_tstamp ts); + const ngtcp2_cc_ack *ack, + ngtcp2_tstamp ts); void ngtcp2_cc_reno_cc_on_persistent_congestion(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, @@ -340,8 +340,8 @@ typedef struct ngtcp2_cubic_vars { /* app_limited_duration is the cumulative duration where a connection is under app limited when ACK is received. */ ngtcp2_duration app_limited_duration; - uint64_t pending_bytes_delivered; - uint64_t pending_est_bytes_delivered; + uint64_t pending_bytes_acked; + uint64_t pending_est_bytes_acked; } ngtcp2_cubic_vars; /* ngtcp2_cc_cubic is CUBIC congestion controller. */ @@ -371,14 +371,15 @@ typedef struct ngtcp2_cc_cubic { } ngtcp2_cc_cubic; void ngtcp2_cc_cubic_init(ngtcp2_cc_cubic *cc, ngtcp2_log *log, - ngtcp2_rst *rst); + ngtcp2_conn_stat *cstat, ngtcp2_rst *rst); void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts); void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, ngtcp2_tstamp sent_ts, - uint64_t bytes_lost, ngtcp2_tstamp ts); + const ngtcp2_cc_ack *ack, + ngtcp2_tstamp ts); void ngtcp2_cc_cubic_cc_on_spurious_congestion(ngtcp2_cc *ccx, ngtcp2_conn_stat *cstat, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c index 13938761dd..b1a9840c6e 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c @@ -1166,8 +1166,8 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, assert(settings->max_window <= NGTCP2_MAX_VARINT); assert(settings->max_stream_window <= NGTCP2_MAX_VARINT); - assert(settings->max_tx_udp_payload_size); - assert(settings->max_tx_udp_payload_size <= NGTCP2_HARD_MAX_UDP_PAYLOAD_SIZE); + assert(settings->max_tx_udp_payload_size >= NGTCP2_MAX_UDP_PAYLOAD_SIZE); + assert(settings->max_tx_udp_payload_size <= NGTCP2_MAX_TX_UDP_PAYLOAD_SIZE); assert(settings->initial_pkt_num <= INT32_MAX); assert(settings->initial_rtt); assert(params->active_connection_id_limit >= @@ -1203,6 +1203,7 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, for (i = 0; i < settings->pmtud_probeslen; ++i) { assert(settings->pmtud_probes[i] > NGTCP2_MAX_UDP_PAYLOAD_SIZE); + assert(settings->pmtud_probes[i] <= NGTCP2_MAX_TX_UDP_PAYLOAD_SIZE); } if (mem == NULL) { @@ -1335,11 +1336,12 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, switch (settings->cc_algo) { case NGTCP2_CC_ALGO_RENO: - ngtcp2_cc_reno_init(&(*pconn)->reno, &(*pconn)->log); + ngtcp2_cc_reno_init(&(*pconn)->reno, &(*pconn)->log, &(*pconn)->cstat); break; case NGTCP2_CC_ALGO_CUBIC: - ngtcp2_cc_cubic_init(&(*pconn)->cubic, &(*pconn)->log, &(*pconn)->rst); + ngtcp2_cc_cubic_init(&(*pconn)->cubic, &(*pconn)->log, &(*pconn)->cstat, + &(*pconn)->rst); break; case NGTCP2_CC_ALGO_BBR: @@ -2373,6 +2375,15 @@ conn_crumble_initial_crypto(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, return (ngtcp2_ssize)datacnt; } +static size_t conn_dgram_padding(ngtcp2_conn *conn, ngtcp2_ppe *ppe) { + if (conn->local.settings.no_tx_udp_payload_size_shaping) { + return ngtcp2_ppe_dgram_padding_size( + ppe, conn->local.settings.max_tx_udp_payload_size); + } + + return ngtcp2_ppe_dgram_padding(ppe); +} + static size_t conn_min_pktlen(ngtcp2_conn *conn); /* @@ -2669,7 +2680,7 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, (rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) != 0, require_padding)) { lfr.type = NGTCP2_FRAME_PADDING; - lfr.padding.len = ngtcp2_ppe_dgram_padding(&ppe); + lfr.padding.len = conn_dgram_padding(conn, &ppe); } else if (pkt_empty) { return 0; } else { @@ -3450,7 +3461,6 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint64_t crypto_offset; uint64_t stream_offset; ngtcp2_ssize num_reclaimed; - int fin; uint64_t target_max_data; ngtcp2_conn_stat *cstat = &conn->cstat; uint64_t delta; @@ -4145,9 +4155,8 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, nfrc->fr.stream.datacnt = datacnt; ngtcp2_vec_copy(nfrc->fr.stream.data, data, datacnt); - fin = (vmsg->stream.flags & NGTCP2_WRITE_STREAM_FLAG_FIN) && - ndatalen == datalen; - nfrc->fr.stream.fin = (uint8_t)fin; + nfrc->fr.stream.fin = (vmsg->stream.flags & NGTCP2_WRITE_STREAM_FLAG_FIN) && + ndatalen == datalen; rv = conn_ppe_write_frame_hd_log(conn, ppe, &hd_logged, hd, &nfrc->fr); if (rv != 0) { @@ -4166,7 +4175,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, conn->tx.offset += ndatalen; vmsg->stream.strm->flags |= NGTCP2_STRM_FLAG_ANY_SENT; - if (fin) { + if (nfrc->fr.stream.fin) { ngtcp2_strm_shutdown(vmsg->stream.strm, NGTCP2_STRM_FLAG_SHUT_WR); } @@ -4396,7 +4405,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, (rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING)) { lfr.padding.len = ngtcp2_ppe_padding_size(ppe, destlen); } else if (require_padding) { - lfr.padding.len = ngtcp2_ppe_dgram_padding(ppe); + lfr.padding.len = conn_dgram_padding(conn, ppe); } else { lfr.padding.len = ngtcp2_ppe_padding_size(ppe, min_pktlen); min_padded = 1; @@ -4595,13 +4604,13 @@ ngtcp2_ssize ngtcp2_conn_write_single_frame_pkt( if (flags & NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING_FULL) { lfr.padding.len = ngtcp2_ppe_dgram_padding_size(&ppe, destlen); } else if (flags & NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING) { - lfr.padding.len = ngtcp2_ppe_dgram_padding(&ppe); + lfr.padding.len = conn_dgram_padding(conn, &ppe); } else { switch (fr->type) { case NGTCP2_FRAME_PATH_CHALLENGE: case NGTCP2_FRAME_PATH_RESPONSE: if (!conn->server || destlen >= NGTCP2_MAX_UDP_PAYLOAD_SIZE) { - lfr.padding.len = ngtcp2_ppe_dgram_padding(&ppe); + lfr.padding.len = conn_dgram_padding(conn, &ppe); } else { lfr.padding.len = 0; } @@ -12639,7 +12648,7 @@ void ngtcp2_ccerr_set_liberr(ngtcp2_ccerr *ccerr, int liberr, reasonlen); return; - }; + } ngtcp2_ccerr_set_transport_error( ccerr, ngtcp2_err_infer_quic_transport_error_code(liberr), reason, @@ -13848,8 +13857,17 @@ int ngtcp2_conn_set_stream_user_data(ngtcp2_conn *conn, int64_t stream_id, return 0; } +void *ngtcp2_conn_get_stream_user_data(ngtcp2_conn *conn, int64_t stream_id) { + ngtcp2_strm *strm = ngtcp2_conn_find_stream(conn, stream_id); + + if (strm == NULL) { + return NULL; + } + + return strm->stream_user_data; +} + void ngtcp2_conn_update_pkt_tx_time(ngtcp2_conn *conn, ngtcp2_tstamp ts) { - uint64_t pacing_interval_m; ngtcp2_duration wait, d; conn_update_timestamp(conn, ts); @@ -13858,20 +13876,9 @@ void ngtcp2_conn_update_pkt_tx_time(ngtcp2_conn *conn, ngtcp2_tstamp ts) { return; } - if (conn->cstat.pacing_interval_m) { - pacing_interval_m = conn->cstat.pacing_interval_m; - } else { - /* 1.25 is the under-utilization avoidance factor described in - https://datatracker.ietf.org/doc/html/rfc9002#section-7.7 */ - pacing_interval_m = ((conn->cstat.first_rtt_sample_ts == UINT64_MAX - ? NGTCP2_MILLISECONDS - : conn->cstat.smoothed_rtt) - << 10) * - 100 / 125 / conn->cstat.cwnd; - pacing_interval_m = ngtcp2_max_uint64(pacing_interval_m, 1); - } - - wait = (ngtcp2_duration)((conn->tx.pacing.pktlen * pacing_interval_m) >> 10); + wait = (ngtcp2_duration)((conn->tx.pacing.pktlen * + conn->cstat.pacing_interval_m) >> + 10); d = ngtcp2_min_uint64(wait / 2, conn->tx.pacing.compensation); wait -= d; @@ -13909,6 +13916,25 @@ ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( ngtcp2_conn *conn, ngtcp2_path *path, int pkt_info_version, ngtcp2_pkt_info *pi, uint8_t *buf, size_t buflen, size_t *pgsolen, ngtcp2_write_pkt write_pkt, ngtcp2_tstamp ts) { + ngtcp2_ssize nwrite; + + buflen = ngtcp2_min_size(buflen, ngtcp2_conn_get_send_quantum(conn)); + + nwrite = ngtcp2_conn_write_aggregate_pkt2_versioned( + conn, path, pkt_info_version, pi, buf, buflen, pgsolen, write_pkt, 0, ts); + if (nwrite < 0) { + return nwrite; + } + + ngtcp2_conn_update_pkt_tx_time(conn, ts); + + return nwrite; +} + +ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt2_versioned( + ngtcp2_conn *conn, ngtcp2_path *path, int pkt_info_version, + ngtcp2_pkt_info *pi, uint8_t *buf, size_t buflen, size_t *pgsolen, + ngtcp2_write_pkt write_pkt, size_t num_pkts, ngtcp2_tstamp ts) { size_t max_udp_payloadlen = ngtcp2_conn_get_max_tx_udp_payload_size(conn); size_t path_max_udp_payloadlen = ngtcp2_conn_get_path_max_tx_udp_payload_size(conn); @@ -13923,9 +13949,9 @@ ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( assert(buflen >= path_max_udp_payloadlen); - buflen = - ngtcp2_min_size(buflen, ngtcp2_max_size(ngtcp2_conn_get_send_quantum(conn), - path_max_udp_payloadlen)); + if (num_pkts == 0) { + num_pkts = SIZE_MAX; + } for (;;) { ecn_state = conn->tx.ecn.state; @@ -13947,13 +13973,16 @@ ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( wbuf += nwrite; buflen -= (size_t)nwrite; + --num_pkts; + if (first_pkt) { assert(!(conn->flags & NGTCP2_CONN_FLAG_AGGREGATE_PKTS)); *pgsolen = (size_t)nwrite; if ((size_t)nwrite != path_max_udp_payloadlen || - buflen < path_max_udp_payloadlen || ecn_state != conn->tx.ecn.state) { + buflen < path_max_udp_payloadlen || ecn_state != conn->tx.ecn.state || + num_pkts == 0) { nwrite = wbuf - buf; break; } @@ -13977,7 +14006,7 @@ ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( } if (buflen < path_max_udp_payloadlen || (size_t)nwrite < *pgsolen || - ecn_state != conn->tx.ecn.state) { + ecn_state != conn->tx.ecn.state || num_pkts == 0) { nwrite = wbuf - buf; break; } @@ -13985,8 +14014,6 @@ ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( conn->flags &= ~NGTCP2_CONN_FLAG_AGGREGATE_PKTS; - ngtcp2_conn_update_pkt_tx_time(conn, ts); - return nwrite; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h index ed358dc48d..b3cdb1d64a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h @@ -103,10 +103,6 @@ /* NGTCP2_RETRY_TAGLEN is the length of Retry packet integrity tag. */ #define NGTCP2_RETRY_TAGLEN 16 -/* NGTCP2_HARD_MAX_UDP_PAYLOAD_SIZE is the maximum UDP datagram - payload size that this library can write. */ -#define NGTCP2_HARD_MAX_UDP_PAYLOAD_SIZE ((1 << 24) - 1) - /* NGTCP2_PKT_LENGTHLEN is the number of bytes that is occupied by Length field in Long packet header. */ #define NGTCP2_PKT_LENGTHLEN 4 @@ -195,7 +191,7 @@ typedef struct ngtcp2_stream { uint8_t flags; /* CRYPTO frame does not include this field, and must set it to 0. */ - uint8_t fin; + int fin; /* CRYPTO frame does not include this field, and must set it to 0. */ int64_t stream_id; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.c index 353afca4d4..40c25f2a3d 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ringbuf.c @@ -32,18 +32,8 @@ #include "ngtcp2_macro.h" #ifndef NDEBUG -static int ispow2(size_t n) { -# if defined(_MSC_VER) && !defined(__clang__) && \ - (defined(_M_ARM) || (defined(_M_ARM64) && _MSC_VER < 1941)) - return n && !(n & (n - 1)); -# elif defined(WIN32) - return 1 == __popcnt((unsigned int)n); -# else /* !((defined(_MSC_VER) && !defined(__clang__) && (defined(_M_ARM) || \ - (defined(_M_ARM64) && _MSC_VER < 1941))) || defined(WIN32)) */ - return 1 == __builtin_popcount((unsigned int)n); -# endif /* !((defined(_MSC_VER) && !defined(__clang__) && (defined(_M_ARM) || \ - (defined(_M_ARM64) && _MSC_VER < 1941))) || defined(WIN32)) */ -} +/* Power-of-two test; simple portable bit trick. */ +static int ispow2(size_t n) { return n && !(n & (n - 1)); } #endif /* !defined(NDEBUG) */ int ngtcp2_ringbuf_init(ngtcp2_ringbuf *rb, size_t nmemb, size_t size, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c index 6f44c8ac8d..77247108ec 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c @@ -59,16 +59,27 @@ void ngtcp2_rst_reset(ngtcp2_rst *rst) { rst->lost = 0; } +void ngtcp2_rst_reset_rate_sample(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat) { + ngtcp2_rs *rs = &rst->rs; + + rs->interval = UINT64_MAX; + rs->prior_ts = UINT64_MAX; + + cstat->delivery_rate_sec = 0; +} + void ngtcp2_rst_on_pkt_sent(ngtcp2_rst *rst, ngtcp2_rtb_entry *ent, const ngtcp2_conn_stat *cstat) { - if (cstat->bytes_in_flight == 0) { + /* cstat->bytes_in_flight includes ent->pktlen. If they are the + same, there is no in-flight packets. */ + if (cstat->bytes_in_flight == ent->pktlen) { rst->first_sent_ts = rst->delivered_ts = ent->ts; } ent->rst.first_sent_ts = rst->first_sent_ts; ent->rst.delivered_ts = rst->delivered_ts; ent->rst.delivered = rst->delivered; ent->rst.is_app_limited = rst->app_limited != 0; - ent->rst.tx_in_flight = cstat->bytes_in_flight + ent->pktlen; + ent->rst.tx_in_flight = cstat->bytes_in_flight; ent->rst.lost = rst->lost; ent->rst.end_seq = ++rst->last_seq; } @@ -89,7 +100,6 @@ void ngtcp2_rst_on_ack_recv(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat) { rs->delivered = rst->delivered - rs->prior_delivered; if (rs->interval < cstat->min_rtt) { - rs->interval = UINT64_MAX; return; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h index 1bb624de79..b0bc2d06c9 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h @@ -79,6 +79,8 @@ void ngtcp2_rst_init(ngtcp2_rst *rst); void ngtcp2_rst_reset(ngtcp2_rst *rst); +void ngtcp2_rst_reset_rate_sample(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat); + void ngtcp2_rst_on_pkt_sent(ngtcp2_rst *rst, ngtcp2_rtb_entry *ent, const ngtcp2_conn_stat *cstat); void ngtcp2_rst_on_ack_recv(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c index f51c0f14ef..5908fcc5c5 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c @@ -128,13 +128,12 @@ void ngtcp2_rtb_free(ngtcp2_rtb *rtb) { static void rtb_on_add(ngtcp2_rtb *rtb, ngtcp2_rtb_entry *ent, ngtcp2_conn_stat *cstat) { - ngtcp2_rst_on_pkt_sent(rtb->rst, ent, cstat); - assert(rtb->cc_pkt_num <= ent->hd.pkt_num); cstat->bytes_in_flight += ent->pktlen; rtb->cc_bytes_in_flight += ent->pktlen; + ngtcp2_rst_on_pkt_sent(rtb->rst, ent, cstat); ngtcp2_rst_update_app_limited(rtb->rst, cstat); if (ent->flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) { @@ -738,8 +737,7 @@ static void rtb_on_pkt_acked(ngtcp2_rtb *rtb, ngtcp2_rtb_entry *ent, static void conn_verify_ecn(ngtcp2_conn *conn, ngtcp2_pktns *pktns, ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, const ngtcp2_ack *fr, size_t ecn_acked, - ngtcp2_tstamp largest_pkt_sent_ts, - ngtcp2_tstamp ts) { + const ngtcp2_cc_ack *cc_ack, ngtcp2_tstamp ts) { if (conn->tx.ecn.state == NGTCP2_ECN_STATE_FAILED) { return; } @@ -766,9 +764,9 @@ static void conn_verify_ecn(ngtcp2_conn *conn, ngtcp2_pktns *pktns, } if (fr->type == NGTCP2_FRAME_ACK_ECN) { - if (cc->congestion_event && largest_pkt_sent_ts != UINT64_MAX && + if (cc->congestion_event && cc_ack->largest_pkt_sent_ts != UINT64_MAX && fr->ecn.ce > pktns->acktr.ecn.ack.ce) { - cc->congestion_event(cc, cstat, largest_pkt_sent_ts, 0, ts); + cc->congestion_event(cc, cstat, cc_ack->largest_pkt_sent_ts, cc_ack, ts); } pktns->acktr.ecn.ack.ect0 = fr->ecn.ect0; @@ -777,7 +775,7 @@ static void conn_verify_ecn(ngtcp2_conn *conn, ngtcp2_pktns *pktns, } } -static int rtb_detect_lost_pkt(ngtcp2_rtb *rtb, uint64_t *ppkt_lost, +static int rtb_detect_lost_pkt(ngtcp2_rtb *rtb, ngtcp2_cc_ack *cc_ack, ngtcp2_conn *conn, ngtcp2_pktns *pktns, ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts); @@ -791,7 +789,6 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, int rv; ngtcp2_ksl_it it; size_t num_acked = 0; - ngtcp2_tstamp largest_pkt_sent_ts = UINT64_MAX; int64_t pkt_num; ngtcp2_cc *cc = rtb->cc; ngtcp2_rtb_entry *acked_ent = NULL; @@ -799,7 +796,7 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, size_t ecn_acked = 0; int verify_ecn = 0; ngtcp2_cc_ack cc_ack = { - .prior_bytes_in_flight = cstat->bytes_in_flight, + .largest_pkt_sent_ts = UINT64_MAX, .rtt = UINT64_MAX, }; size_t num_lost_pkts = rtb->num_lost_pkts - rtb->num_lost_ignore_pkts; @@ -819,12 +816,17 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, verify_ecn = 1; } + ngtcp2_rst_reset_rate_sample(rtb->rst, cstat); + /* Assume that ngtcp2_pkt_validate_ack(fr) returns 0 */ it = ngtcp2_ksl_lower_bound(&rtb->ents, &largest_ack); if (ngtcp2_ksl_it_end(&it)) { if (conn && verify_ecn) { - conn_verify_ecn(conn, pktns, rtb->cc, cstat, fr, ecn_acked, - largest_pkt_sent_ts, ts); + conn_verify_ecn(conn, pktns, rtb->cc, cstat, fr, ecn_acked, &cc_ack, ts); + } + + if (cc->on_ack_recv) { + cc->on_ack_recv(cc, cstat, &cc_ack, ts); } return 0; @@ -849,7 +851,7 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, } if (largest_ack == pkt_num) { - largest_pkt_sent_ts = ent->ts; + cc_ack.largest_pkt_sent_ts = ent->ts; } if (ent->flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) { @@ -889,9 +891,9 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, } } - if (largest_pkt_sent_ts != UINT64_MAX && ack_eliciting_pkt_acked) { - cc_ack.rtt = - ngtcp2_max_uint64(pkt_ts - largest_pkt_sent_ts, NGTCP2_NANOSECONDS); + if (cc_ack.largest_pkt_sent_ts != UINT64_MAX && ack_eliciting_pkt_acked) { + cc_ack.rtt = ngtcp2_max_uint64(pkt_ts - cc_ack.largest_pkt_sent_ts, + NGTCP2_NANOSECONDS); rv = ngtcp2_conn_update_rtt(conn, cc_ack.rtt, fr->ack_delay_unscaled, ts); if (rv == 0 && cc->new_rtt_sample && @@ -927,11 +929,6 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, ngtcp2_rtb_entry_objalloc_del(ent, rtb->rtb_entry_objalloc, rtb->frc_objalloc, rtb->mem); } - - if (verify_ecn) { - conn_verify_ecn(conn, pktns, rtb->cc, cstat, fr, ecn_acked, - largest_pkt_sent_ts, ts); - } } else { /* For unit tests */ for (ent = acked_ent; ent; ent = acked_ent) { @@ -952,15 +949,18 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, ngtcp2_rst_on_ack_recv(rtb->rst, cstat); if (conn) { - rv = rtb_detect_lost_pkt(rtb, &cc_ack.bytes_lost, conn, pktns, cstat, ts); + rv = rtb_detect_lost_pkt(rtb, &cc_ack, conn, pktns, cstat, ts); if (rv != 0) { return rv; } } } - cc_ack.largest_pkt_sent_ts = largest_pkt_sent_ts; - if (num_acked && cc->on_ack_recv) { + if (conn && verify_ecn) { + conn_verify_ecn(conn, pktns, rtb->cc, cstat, fr, ecn_acked, &cc_ack, ts); + } + + if (cc->on_ack_recv) { cc->on_ack_recv(cc, cstat, &cc_ack, ts); } @@ -1026,7 +1026,11 @@ static int conn_all_ecn_pkt_lost(ngtcp2_conn *conn) { pktns->tx.ecn.validation_pkt_sent == pktns->tx.ecn.validation_pkt_lost; } -static int rtb_detect_lost_pkt(ngtcp2_rtb *rtb, uint64_t *ppkt_lost, +/* + * This function assigns the number of bytes lost to + * |cc_ack|->bytes_lost if any. + */ +static int rtb_detect_lost_pkt(ngtcp2_rtb *rtb, ngtcp2_cc_ack *cc_ack, ngtcp2_conn *conn, ngtcp2_pktns *pktns, ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts) { ngtcp2_rtb_entry *ent; @@ -1144,8 +1148,10 @@ static int rtb_detect_lost_pkt(ngtcp2_rtb *rtb, uint64_t *ppkt_lost, break; } + cc_ack->bytes_lost = bytes_lost; + if (cc->congestion_event) { - cc->congestion_event(cc, cstat, latest_ts, bytes_lost, ts); + cc->congestion_event(cc, cstat, latest_ts, cc_ack, ts); } loss_window = latest_ts - oldest_ts; @@ -1181,18 +1187,18 @@ static int rtb_detect_lost_pkt(ngtcp2_rtb *rtb, uint64_t *ppkt_lost, ngtcp2_rtb_remove_excessive_lost_pkt(rtb, (size_t)pkt_thres); - if (ppkt_lost) { - *ppkt_lost = bytes_lost; - } - return 0; } int ngtcp2_rtb_detect_lost_pkt(ngtcp2_rtb *rtb, ngtcp2_conn *conn, ngtcp2_pktns *pktns, ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts) { - return rtb_detect_lost_pkt(rtb, /* ppkt_lost = */ NULL, conn, pktns, cstat, - ts); + ngtcp2_cc_ack cc_ack = { + .largest_pkt_sent_ts = UINT64_MAX, + .rtt = UINT64_MAX, + }; + + return rtb_detect_lost_pkt(rtb, &cc_ack, conn, pktns, cstat, ts); } void ngtcp2_rtb_remove_excessive_lost_pkt(ngtcp2_rtb *rtb, size_t n) { diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h index baecc277ee..5634c9c751 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h @@ -306,15 +306,29 @@ typedef struct ngtcp2_mem { * @macro * * :macro:`NGTCP2_MAX_UDP_PAYLOAD_SIZE` is the default maximum UDP - * datagram payload size that the local endpoint transmits. + * datagram payload size that the local endpoint transmits without + * Path MTU Discovery (PMTUD) or the custom settings (see + * :member:`ngtcp2_settings.max_tx_udp_payload_size` and + * :member:`ngtcp2_settings.no_tx_udp_payload_size_shaping`). */ #define NGTCP2_MAX_UDP_PAYLOAD_SIZE 1200 /** * @macro * - * :macro:`NGTCP2_MAX_PMTUD_UDP_PAYLOAD_SIZE` is the maximum UDP + * :macro:`NGTCP2_MAX_TX_UDP_PAYLOAD_SIZE` is the maximum UDP datagram + * payload size that this library can output. + */ +#define NGTCP2_MAX_TX_UDP_PAYLOAD_SIZE 65527 + +/** + * @macro + * + * :macro:`NGTCP2_MAX_PMTUD_UDP_PAYLOAD_SIZE` was the maximum UDP * datagram payload size that Path MTU Discovery can discover. + * + * Deprecated since v1.17.0. Path MTU Discovery is not capped to this + * value anymore. */ #define NGTCP2_MAX_PMTUD_UDP_PAYLOAD_SIZE 1452 @@ -1786,7 +1800,9 @@ typedef struct ngtcp2_settings { ngtcp2_printf log_printf; /** * :member:`max_tx_udp_payload_size` is the maximum size of UDP - * datagram payload that the local endpoint transmits. + * datagram payload that the local endpoint transmits. This must be + * larger than or equal to :macro:`NGTCP2_MAX_UDP_PAYLOAD_SIZE`, and + * less then or equal to :macro:`NGTCP2_MAX_TX_UDP_PAYLOAD_SIZE`. */ size_t max_tx_udp_payload_size; /** @@ -1951,12 +1967,13 @@ typedef struct ngtcp2_settings { /** * :member:`pmtud_probes` is the array of UDP datagram payload size * to probe during Path MTU Discovery. The discovery is done in the - * order appeared in this array. The size must be strictly larger - * than 1200, otherwise the behavior is undefined. The maximum - * value in this array should be set to - * :member:`max_tx_udp_payload_size`. If this field is not set, the - * predefined PMTUD probes are made. This field has been available - * since v1.4.0. + * order appeared in this array. The payload size must be strictly + * larger than :macro:`NGTCP2_MAX_UDP_PAYLOAD_SIZE`, and less than + * or equal to :macro:`NGTCP2_MAX_TX_UDP_PAYLOAD_SIZE`. Otherwise + * the behavior is undefined. The maximum value in this array + * should be set to :member:`max_tx_udp_payload_size`. If this + * field is not set, the predefined PMTUD probes are made. This + * field has been available since v1.4.0. */ const uint16_t *pmtud_probes; /** @@ -4155,9 +4172,7 @@ NGTCP2_EXTERN void ngtcp2_conn_set_keep_alive_timeout(ngtcp2_conn *conn, * `ngtcp2_conn_get_expiry` returns the next expiry time. It returns * ``UINT64_MAX`` if there is no next expiry. * - * Call `ngtcp2_conn_handle_expiry` and then - * `ngtcp2_conn_writev_stream` (or `ngtcp2_conn_writev_datagram`) when - * the expiry time has passed. + * Call `ngtcp2_conn_handle_expiry` when the expiry time has passed. */ NGTCP2_EXTERN ngtcp2_tstamp ngtcp2_conn_get_expiry(ngtcp2_conn *conn); @@ -4165,6 +4180,20 @@ NGTCP2_EXTERN ngtcp2_tstamp ngtcp2_conn_get_expiry(ngtcp2_conn *conn); * @function * * `ngtcp2_conn_handle_expiry` handles expired timer. + * + * If it returns :macro:`NGTCP2_ERR_IDLE_CLOSE`, it means that an idle + * timer has fired for this particular connection. In this case, drop + * the connection without calling + * `ngtcp2_conn_write_connection_close`. If it returns any of the + * other negative error codes, close the connection by sending the + * terminal packet produced by `ngtcp2_conn_write_connection_close`. + * Otherwise, schedule `ngtcp2_conn_writev_stream` call. An + * application may call any number of additional + * `ngtcp2_conn_read_pkt` and `ngtcp2_conn_handle_expiry` before + * calling `ngtcp2_conn_writev_stream`. After calling + * `ngtcp2_conn_writev_stream`, new expiry is set. The application + * should call `ngtcp2_conn_get_expiry` to get a new deadline and set + * the timer. */ NGTCP2_EXTERN int ngtcp2_conn_handle_expiry(ngtcp2_conn *conn, ngtcp2_tstamp ts); @@ -5629,6 +5658,26 @@ NGTCP2_EXTERN int ngtcp2_conn_set_stream_user_data(ngtcp2_conn *conn, int64_t stream_id, void *stream_user_data); +/** + * @function + * + * `ngtcp2_conn_get_stream_user_data` returns stream_user_data + * associated to the stream identified by |stream_id|. If the stream + * is not found, or no stream data is associated to the stream, this + * function returns NULL. + * + * The stream_user_data can be associated to the stream by one of the + * following functions: + * + * - `ngtcp2_conn_open_bidi_stream` + * - `ngtcp2_conn_open_uni_stream` + * - `ngtcp2_conn_set_stream_user_data` + * + * This function has been available since v1.17.0. + */ +NGTCP2_EXTERN void *ngtcp2_conn_get_stream_user_data(ngtcp2_conn *conn, + int64_t stream_id); + /** * @function * @@ -5714,14 +5763,23 @@ typedef ngtcp2_ssize (*ngtcp2_write_pkt)(ngtcp2_conn *conn, ngtcp2_path *path, * first packet is `ngtcp2_conn_get_path_max_tx_udp_payload_size(conn) * ` bytes long. The * application can adjust the length of the buffer to limit the number - * of packets to aggregate. If this function returns positive - * integer, all packets share the same :type:`ngtcp2_path` and - * :type:`ngtcp2_pkt_info` values, and they are assigned to the - * objects pointed by |path| and |pi| respectively. The length of all - * packets other than the last packet is assigned to |*pgsolen|. The - * length of last packet is equal to or less than |*pgsolen|. - * |write_pkt| must write a single packet. After all packets are - * written, this function calls `ngtcp2_conn_update_pkt_tx_time`. + * of packets to aggregate (or use `ngtcp2_conn_write_aggregate_pkt2` + * to control the number of packets to write directly). If this + * function returns positive integer, all packets share the same + * :type:`ngtcp2_path` and :type:`ngtcp2_pkt_info` values, and they + * are assigned to the objects pointed by |path| and |pi| + * respectively. The length of all packets other than the last packet + * is assigned to |*pgsolen|. The length of last packet is equal to + * or less than |*pgsolen|. |write_pkt| must write a single packet. + * After all packets are written, this function calls + * `ngtcp2_conn_update_pkt_tx_time`. + * + * This function is equivalent to call + * `ngtcp2_conn_write_aggregate_pkt2` with |buflen| = min(|buflen|, + * `ngtcp2_conn_get_send_quantum(conn) + * `) and |num_pkts| = 0 followed by + * `ngtcp2_conn_update_pkt_tx_time(conn) + * `. * * This function returns the number of bytes written to the buffer, or * a negative error code returned by |write_pkt|. @@ -5733,6 +5791,29 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( ngtcp2_pkt_info *pi, uint8_t *buf, size_t buflen, size_t *pgsolen, ngtcp2_write_pkt write_pkt, ngtcp2_tstamp ts); +/** + * @function + * + * `ngtcp2_conn_write_aggregate_pkt2` behaves like + * `ngtcp2_conn_write_aggregate_pkt`, but it accepts |num_pkts| to + * specify the maximum number of packets to write. If |num_pkts| is + * 0, this function writes packets as much as possible. The actual + * number of packets to write is determined by the connection state + * (e.g., the congestion controller, data available to send) and the + * length of packet produced. It also does not clamp |buflen|, and + * does not call `ngtcp2_conn_update_pkt_tx_time`. + * + * This function offers more flexibility and optimization chances to + * an application. It can experiment different GSO buffer size + * strategy and number of GSO writes per event loop. + * + * This function has been available since v1.17.0. + */ +NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt2_versioned( + ngtcp2_conn *conn, ngtcp2_path *path, int pkt_info_version, + ngtcp2_pkt_info *pi, uint8_t *buf, size_t buflen, size_t *pgsolen, + ngtcp2_write_pkt write_pkt, size_t num_pkts, ngtcp2_tstamp ts); + /** * @function * @@ -6140,6 +6221,17 @@ NGTCP2_EXTERN uint32_t ngtcp2_select_version(const uint32_t *preferred_versions, (CONN), (PATH), NGTCP2_PKT_INFO_VERSION, (PI), (BUF), (BUFLEN), (PGSOLEN), \ (WRITE_PKT), (TS)) +/* + * `ngtcp2_conn_write_aggregate_pkt2` is a wrapper around + * `ngtcp2_conn_write_aggregate_pkt2_versioned` to set the correct + * struct version. + */ +#define ngtcp2_conn_write_aggregate_pkt2(CONN, PATH, PI, BUF, BUFLEN, PGSOLEN, \ + WRITE_PKT, NUM_PKTS, TS) \ + ngtcp2_conn_write_aggregate_pkt2_versioned( \ + (CONN), (PATH), NGTCP2_PKT_INFO_VERSION, (PI), (BUF), (BUFLEN), (PGSOLEN), \ + (WRITE_PKT), (NUM_PKTS), (TS)) + /* * `ngtcp2_settings_default` is a wrapper around * `ngtcp2_settings_default_versioned` to set the correct struct diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index 9fabd7b179..3ff1ebac97 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.16.0" +#define NGTCP2_VERSION "1.17.0" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x011000 +#define NGTCP2_VERSION_NUM 0x011100 #endif /* !defined(NGTCP2_VERSION_H) */ From d1f777a93a4d725ae5cf9d652cc680deaa9d15a7 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 20 Oct 2025 12:08:17 +0200 Subject: [PATCH 162/675] CI: fix documentation building by using explicit debian_stable image --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ca1137d09f..7d998536c6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -293,6 +293,7 @@ build:archive: - _build/doc/_build/singlehtml pages: + <<: *debian_stable stage: documentation needs: - build:archive From 7579b05608f49a0c4a5cf596c6c872bfd0c160d3 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Oct 2025 11:26:50 +0200 Subject: [PATCH 163/675] libknot: move to libknot/dnssec/ --- Knot.files | 112 +++++++++--------- Knot.includes | 14 +-- src/Makefile.am | 1 - src/libdnssec.pc.in | 13 -- src/libdnssec/Makefile.inc | 73 ------------ src/libdnssec/version.h.in | 14 --- src/libknot.pc.in | 1 - src/libknot/Makefile.inc | 68 ++++++++++- src/{libdnssec => libknot/dnssec}/binary.c | 0 src/{libdnssec => libknot/dnssec}/binary.h | 0 src/{libdnssec => libknot/dnssec}/crypto.c | 0 src/{libdnssec => libknot/dnssec}/crypto.h | 0 src/{libdnssec => libknot/dnssec}/digest.c | 0 src/{libdnssec => libknot/dnssec}/digest.h | 0 src/{libdnssec => libknot/dnssec}/dnssec.h | 0 src/{libdnssec => libknot/dnssec}/error.c | 0 src/{libdnssec => libknot/dnssec}/error.h | 0 src/{libdnssec => libknot/dnssec}/key.h | 0 .../dnssec}/key/algorithm.c | 0 .../dnssec}/key/algorithm.h | 0 .../dnssec}/key/convert.c | 0 .../dnssec}/key/convert.h | 0 .../dnssec}/key/dnskey.c | 0 .../dnssec}/key/dnskey.h | 0 src/{libdnssec => libknot/dnssec}/key/ds.c | 0 .../dnssec}/key/internal.h | 0 src/{libdnssec => libknot/dnssec}/key/key.c | 0 .../dnssec}/key/keytag.c | 0 .../dnssec}/key/privkey.c | 0 .../dnssec}/key/privkey.h | 0 .../dnssec}/key/simple.c | 0 src/{libdnssec => libknot/dnssec}/keyid.c | 0 src/{libdnssec => libknot/dnssec}/keyid.h | 0 src/{libdnssec => libknot/dnssec}/keystore.h | 0 .../dnssec}/keystore/internal.h | 0 .../dnssec}/keystore/keystore.c | 0 .../dnssec}/keystore/pkcs11.c | 0 .../dnssec}/keystore/pkcs8.c | 0 src/{libdnssec => libknot/dnssec}/keytag.h | 0 src/{libdnssec => libknot/dnssec}/nsec.h | 0 .../dnssec}/nsec/bitmap.c | 0 src/{libdnssec => libknot/dnssec}/nsec/hash.c | 0 src/{libdnssec => libknot/dnssec}/nsec/nsec.c | 0 src/{libdnssec => libknot/dnssec}/p11/p11.c | 0 src/{libdnssec => libknot/dnssec}/p11/p11.h | 0 src/{libdnssec => libknot/dnssec}/pem.c | 0 src/{libdnssec => libknot/dnssec}/pem.h | 0 src/{libdnssec => libknot/dnssec}/random.c | 0 src/{libdnssec => libknot/dnssec}/random.h | 0 .../dnssec}/sample_keys.h | 0 .../dnssec}/shared/bignum.c | 0 .../dnssec}/shared/bignum.h | 0 .../dnssec}/shared/binary_wire.h | 0 .../dnssec}/shared/dname.c | 0 .../dnssec}/shared/dname.h | 0 .../dnssec}/shared/keyid_gnutls.c | 0 .../dnssec}/shared/keyid_gnutls.h | 0 .../dnssec}/shared/shared.h | 0 src/{libdnssec => libknot/dnssec}/sign.h | 0 src/{libdnssec => libknot/dnssec}/sign/der.c | 0 src/{libdnssec => libknot/dnssec}/sign/der.h | 0 src/{libdnssec => libknot/dnssec}/sign/sign.c | 0 src/{libdnssec => libknot/dnssec}/tsig.c | 0 src/{libdnssec => libknot/dnssec}/tsig.h | 0 64 files changed, 128 insertions(+), 168 deletions(-) delete mode 100644 src/libdnssec.pc.in delete mode 100644 src/libdnssec/Makefile.inc delete mode 100644 src/libdnssec/version.h.in rename src/{libdnssec => libknot/dnssec}/binary.c (100%) rename src/{libdnssec => libknot/dnssec}/binary.h (100%) rename src/{libdnssec => libknot/dnssec}/crypto.c (100%) rename src/{libdnssec => libknot/dnssec}/crypto.h (100%) rename src/{libdnssec => libknot/dnssec}/digest.c (100%) rename src/{libdnssec => libknot/dnssec}/digest.h (100%) rename src/{libdnssec => libknot/dnssec}/dnssec.h (100%) rename src/{libdnssec => libknot/dnssec}/error.c (100%) rename src/{libdnssec => libknot/dnssec}/error.h (100%) rename src/{libdnssec => libknot/dnssec}/key.h (100%) rename src/{libdnssec => libknot/dnssec}/key/algorithm.c (100%) rename src/{libdnssec => libknot/dnssec}/key/algorithm.h (100%) rename src/{libdnssec => libknot/dnssec}/key/convert.c (100%) rename src/{libdnssec => libknot/dnssec}/key/convert.h (100%) rename src/{libdnssec => libknot/dnssec}/key/dnskey.c (100%) rename src/{libdnssec => libknot/dnssec}/key/dnskey.h (100%) rename src/{libdnssec => libknot/dnssec}/key/ds.c (100%) rename src/{libdnssec => libknot/dnssec}/key/internal.h (100%) rename src/{libdnssec => libknot/dnssec}/key/key.c (100%) rename src/{libdnssec => libknot/dnssec}/key/keytag.c (100%) rename src/{libdnssec => libknot/dnssec}/key/privkey.c (100%) rename src/{libdnssec => libknot/dnssec}/key/privkey.h (100%) rename src/{libdnssec => libknot/dnssec}/key/simple.c (100%) rename src/{libdnssec => libknot/dnssec}/keyid.c (100%) rename src/{libdnssec => libknot/dnssec}/keyid.h (100%) rename src/{libdnssec => libknot/dnssec}/keystore.h (100%) rename src/{libdnssec => libknot/dnssec}/keystore/internal.h (100%) rename src/{libdnssec => libknot/dnssec}/keystore/keystore.c (100%) rename src/{libdnssec => libknot/dnssec}/keystore/pkcs11.c (100%) rename src/{libdnssec => libknot/dnssec}/keystore/pkcs8.c (100%) rename src/{libdnssec => libknot/dnssec}/keytag.h (100%) rename src/{libdnssec => libknot/dnssec}/nsec.h (100%) rename src/{libdnssec => libknot/dnssec}/nsec/bitmap.c (100%) rename src/{libdnssec => libknot/dnssec}/nsec/hash.c (100%) rename src/{libdnssec => libknot/dnssec}/nsec/nsec.c (100%) rename src/{libdnssec => libknot/dnssec}/p11/p11.c (100%) rename src/{libdnssec => libknot/dnssec}/p11/p11.h (100%) rename src/{libdnssec => libknot/dnssec}/pem.c (100%) rename src/{libdnssec => libknot/dnssec}/pem.h (100%) rename src/{libdnssec => libknot/dnssec}/random.c (100%) rename src/{libdnssec => libknot/dnssec}/random.h (100%) rename src/{libdnssec => libknot/dnssec}/sample_keys.h (100%) rename src/{libdnssec => libknot/dnssec}/shared/bignum.c (100%) rename src/{libdnssec => libknot/dnssec}/shared/bignum.h (100%) rename src/{libdnssec => libknot/dnssec}/shared/binary_wire.h (100%) rename src/{libdnssec => libknot/dnssec}/shared/dname.c (100%) rename src/{libdnssec => libknot/dnssec}/shared/dname.h (100%) rename src/{libdnssec => libknot/dnssec}/shared/keyid_gnutls.c (100%) rename src/{libdnssec => libknot/dnssec}/shared/keyid_gnutls.h (100%) rename src/{libdnssec => libknot/dnssec}/shared/shared.h (100%) rename src/{libdnssec => libknot/dnssec}/sign.h (100%) rename src/{libdnssec => libknot/dnssec}/sign/der.c (100%) rename src/{libdnssec => libknot/dnssec}/sign/der.h (100%) rename src/{libdnssec => libknot/dnssec}/sign/sign.c (100%) rename src/{libdnssec => libknot/dnssec}/tsig.c (100%) rename src/{libdnssec => libknot/dnssec}/tsig.h (100%) diff --git a/Knot.files b/Knot.files index 71d23fdc5b..f8db874432 100644 --- a/Knot.files +++ b/Knot.files @@ -419,62 +419,6 @@ src/knot/zone/zonedb.c src/knot/zone/zonedb.h src/knot/zone/zonefile.c src/knot/zone/zonefile.h -src/libdnssec/binary.c -src/libdnssec/binary.h -src/libdnssec/crypto.c -src/libdnssec/crypto.h -src/libdnssec/digest.c -src/libdnssec/digest.h -src/libdnssec/dnssec.h -src/libdnssec/error.c -src/libdnssec/error.h -src/libdnssec/key.h -src/libdnssec/key/algorithm.c -src/libdnssec/key/algorithm.h -src/libdnssec/key/convert.c -src/libdnssec/key/convert.h -src/libdnssec/key/dnskey.c -src/libdnssec/key/dnskey.h -src/libdnssec/key/ds.c -src/libdnssec/key/internal.h -src/libdnssec/key/key.c -src/libdnssec/key/keytag.c -src/libdnssec/key/privkey.c -src/libdnssec/key/privkey.h -src/libdnssec/key/simple.c -src/libdnssec/keyid.c -src/libdnssec/keyid.h -src/libdnssec/keystore.h -src/libdnssec/keystore/internal.h -src/libdnssec/keystore/keystore.c -src/libdnssec/keystore/pkcs11.c -src/libdnssec/keystore/pkcs8.c -src/libdnssec/keytag.h -src/libdnssec/nsec.h -src/libdnssec/nsec/bitmap.c -src/libdnssec/nsec/hash.c -src/libdnssec/nsec/nsec.c -src/libdnssec/p11/p11.c -src/libdnssec/p11/p11.h -src/libdnssec/pem.c -src/libdnssec/pem.h -src/libdnssec/random.c -src/libdnssec/random.h -src/libdnssec/sample_keys.h -src/libdnssec/shared/bignum.c -src/libdnssec/shared/bignum.h -src/libdnssec/shared/binary_wire.h -src/libdnssec/shared/dname.c -src/libdnssec/shared/dname.h -src/libdnssec/shared/keyid_gnutls.c -src/libdnssec/shared/keyid_gnutls.h -src/libdnssec/shared/shared.h -src/libdnssec/sign.h -src/libdnssec/sign/der.c -src/libdnssec/sign/der.h -src/libdnssec/sign/sign.c -src/libdnssec/tsig.c -src/libdnssec/tsig.h src/libknot/attribute.h src/libknot/codes.c src/libknot/codes.h @@ -492,6 +436,62 @@ src/libknot/descriptor.c src/libknot/descriptor.h src/libknot/dname.c src/libknot/dname.h +src/libknot/dnssec/binary.c +src/libknot/dnssec/binary.h +src/libknot/dnssec/crypto.c +src/libknot/dnssec/crypto.h +src/libknot/dnssec/digest.c +src/libknot/dnssec/digest.h +src/libknot/dnssec/dnssec.h +src/libknot/dnssec/error.c +src/libknot/dnssec/error.h +src/libknot/dnssec/key.h +src/libknot/dnssec/key/algorithm.c +src/libknot/dnssec/key/algorithm.h +src/libknot/dnssec/key/convert.c +src/libknot/dnssec/key/convert.h +src/libknot/dnssec/key/dnskey.c +src/libknot/dnssec/key/dnskey.h +src/libknot/dnssec/key/ds.c +src/libknot/dnssec/key/internal.h +src/libknot/dnssec/key/key.c +src/libknot/dnssec/key/keytag.c +src/libknot/dnssec/key/privkey.c +src/libknot/dnssec/key/privkey.h +src/libknot/dnssec/key/simple.c +src/libknot/dnssec/keyid.c +src/libknot/dnssec/keyid.h +src/libknot/dnssec/keystore.h +src/libknot/dnssec/keystore/internal.h +src/libknot/dnssec/keystore/keystore.c +src/libknot/dnssec/keystore/pkcs11.c +src/libknot/dnssec/keystore/pkcs8.c +src/libknot/dnssec/keytag.h +src/libknot/dnssec/nsec.h +src/libknot/dnssec/nsec/bitmap.c +src/libknot/dnssec/nsec/hash.c +src/libknot/dnssec/nsec/nsec.c +src/libknot/dnssec/p11/p11.c +src/libknot/dnssec/p11/p11.h +src/libknot/dnssec/pem.c +src/libknot/dnssec/pem.h +src/libknot/dnssec/random.c +src/libknot/dnssec/random.h +src/libknot/dnssec/sample_keys.h +src/libknot/dnssec/shared/bignum.c +src/libknot/dnssec/shared/bignum.h +src/libknot/dnssec/shared/binary_wire.h +src/libknot/dnssec/shared/dname.c +src/libknot/dnssec/shared/dname.h +src/libknot/dnssec/shared/keyid_gnutls.c +src/libknot/dnssec/shared/keyid_gnutls.h +src/libknot/dnssec/shared/shared.h +src/libknot/dnssec/sign.h +src/libknot/dnssec/sign/der.c +src/libknot/dnssec/sign/der.h +src/libknot/dnssec/sign/sign.c +src/libknot/dnssec/tsig.c +src/libknot/dnssec/tsig.h src/libknot/dynarray.h src/libknot/endian.h src/libknot/errcode.h diff --git a/Knot.includes b/Knot.includes index 4fbaa6ebd6..c446244618 100644 --- a/Knot.includes +++ b/Knot.includes @@ -42,16 +42,16 @@ src/knot/server src/knot/updates src/knot/worker src/knot/zone -src/libdnssec -src/libdnssec/key -src/libdnssec/keystore -src/libdnssec/nsec -src/libdnssec/p11 -src/libdnssec/shared -src/libdnssec/sign src/libknot src/libknot/control src/libknot/db +src/libknot/dnssec +src/libknot/dnssec/key +src/libknot/dnssec/keystore +src/libknot/dnssec/nsec +src/libknot/dnssec/p11 +src/libknot/dnssec/shared +src/libknot/dnssec/sign src/libknot/packet src/libknot/probe src/libknot/rrtype diff --git a/src/Makefile.am b/src/Makefile.am index d6c00a19fb..dfb6c0f102 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -16,7 +16,6 @@ noinst_LTLIBRARIES = pkgconfig_DATA = include $(srcdir)/contrib/Makefile.inc -include $(srcdir)/libdnssec/Makefile.inc include $(srcdir)/libknot/Makefile.inc include $(srcdir)/libzscanner/Makefile.inc include $(srcdir)/knot/Makefile.inc diff --git a/src/libdnssec.pc.in b/src/libdnssec.pc.in deleted file mode 100644 index 6c0aa5c42d..0000000000 --- a/src/libdnssec.pc.in +++ /dev/null @@ -1,13 +0,0 @@ -prefix=@prefix@ -exec_prefix=@prefix@ -libdir=@libdir@ -includedir=@includedir@ -soname=@libdnssec_SONAME@ - -Name: libdnssec -Description: Knot DNS DNSSEC library -URL: https://www.knot-dns.cz -Version: @PACKAGE_VERSION@ -Requires.private: gnutls >= 3.3 -Libs: -L${libdir} -ldnssec -Cflags: -I${includedir} diff --git a/src/libdnssec/Makefile.inc b/src/libdnssec/Makefile.inc deleted file mode 100644 index 62050b34d5..0000000000 --- a/src/libdnssec/Makefile.inc +++ /dev/null @@ -1,73 +0,0 @@ -lib_LTLIBRARIES += libdnssec.la -pkgconfig_DATA += libdnssec.pc - -libdnssec_la_CPPFLAGS = $(AM_CPPFLAGS) $(CFLAG_VISIBILITY) $(gnutls_CFLAGS) -libdnssec_la_LDFLAGS = $(AM_LDFLAGS) $(libdnssec_VERSION_INFO) $(LDFLAG_EXCLUDE_LIBS) -libdnssec_la_LIBADD = $(libcontrib_LIBS) $(gnutls_LIBS) -if ENABLE_PKCS11 -libdnssec_la_LIBADD += $(pthread_LIBS) -endif - -EXTRA_DIST += \ - libdnssec/sample_keys.h - -include_libdnssecdir = $(includedir)/libdnssec -include_libdnssec_HEADERS = \ - libdnssec/binary.h \ - libdnssec/crypto.h \ - libdnssec/digest.h \ - libdnssec/dnssec.h \ - libdnssec/error.h \ - libdnssec/key.h \ - libdnssec/keyid.h \ - libdnssec/keystore.h \ - libdnssec/keytag.h \ - libdnssec/nsec.h \ - libdnssec/pem.h \ - libdnssec/random.h \ - libdnssec/sign.h \ - libdnssec/tsig.h \ - libdnssec/version.h - -libdnssec_la_SOURCES = \ - libdnssec/binary.c \ - libdnssec/crypto.c \ - libdnssec/digest.c \ - libdnssec/error.c \ - libdnssec/key/algorithm.c \ - libdnssec/key/algorithm.h \ - libdnssec/key/convert.c \ - libdnssec/key/convert.h \ - libdnssec/key/dnskey.c \ - libdnssec/key/dnskey.h \ - libdnssec/key/ds.c \ - libdnssec/key/internal.h \ - libdnssec/key/key.c \ - libdnssec/key/keytag.c \ - libdnssec/key/privkey.c \ - libdnssec/key/privkey.h \ - libdnssec/key/simple.c \ - libdnssec/keyid.c \ - libdnssec/keystore/internal.h \ - libdnssec/keystore/keystore.c \ - libdnssec/keystore/pkcs11.c \ - libdnssec/keystore/pkcs8.c \ - libdnssec/nsec/bitmap.c \ - libdnssec/nsec/hash.c \ - libdnssec/nsec/nsec.c \ - libdnssec/p11/p11.c \ - libdnssec/p11/p11.h \ - libdnssec/pem.c \ - libdnssec/random.c \ - libdnssec/shared/bignum.c \ - libdnssec/shared/bignum.h \ - libdnssec/shared/binary_wire.h \ - libdnssec/shared/dname.c \ - libdnssec/shared/dname.h \ - libdnssec/shared/keyid_gnutls.c \ - libdnssec/shared/keyid_gnutls.h \ - libdnssec/shared/shared.h \ - libdnssec/sign/der.c \ - libdnssec/sign/der.h \ - libdnssec/sign/sign.c \ - libdnssec/tsig.c diff --git a/src/libdnssec/version.h.in b/src/libdnssec/version.h.in deleted file mode 100644 index d987821f01..0000000000 --- a/src/libdnssec/version.h.in +++ /dev/null @@ -1,14 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. and contributors - * SPDX-License-Identifier: GPL-2.0-or-later - * For more information, see - */ - -#pragma once - -#define DNSSEC_VERSION_MAJOR @KNOT_VERSION_MAJOR@ -#define DNSSEC_VERSION_MINOR @KNOT_VERSION_MINOR@ -#define DNSSEC_VERSION_PATCH 0x0@KNOT_VERSION_PATCH@ - -#define DNSSEC_VERSION_HEX ((DNSSEC_VERSION_MAJOR << 16) | \ - (DNSSEC_VERSION_MINOR << 8) | \ - (DNSSEC_VERSION_PATCH)) diff --git a/src/libknot.pc.in b/src/libknot.pc.in index 9ce780237b..0f78d29ed3 100644 --- a/src/libknot.pc.in +++ b/src/libknot.pc.in @@ -8,7 +8,6 @@ Name: libknot Description: Knot DNS library URL: https://www.knot-dns.cz Version: @PACKAGE_VERSION@ -Requires.private: libdnssec = @PACKAGE_VERSION@ Libs: -L${libdir} -lknot Libs.private: -lm @lmdb_LIBS@ Cflags: -I${includedir} diff --git a/src/libknot/Makefile.inc b/src/libknot/Makefile.inc index d09ff55e5a..8665808087 100755 --- a/src/libknot/Makefile.inc +++ b/src/libknot/Makefile.inc @@ -3,15 +3,22 @@ pkgconfig_DATA += libknot.pc libknot_la_CPPFLAGS = $(embedded_libngtcp2_CFLAGS) \ $(AM_CPPFLAGS) $(CFLAG_VISIBILITY) $(lmdb_CFLAGS) \ - ${fuzzer_CFLAGS} + $(gnutls_CFLAGS) ${fuzzer_CFLAGS} libknot_la_LDFLAGS = $(AM_LDFLAGS) $(libknot_VERSION_INFO) $(LDFLAG_EXCLUDE_LIBS) \ ${fuzzer_LDFLAGS} -libknot_la_LIBADD = libdnssec.la $(libcontrib_LIBS) $(lmdb_LIBS) $(math_LIBS) +libknot_la_LIBADD = $(libcontrib_LIBS) $(lmdb_LIBS) $(gnutls_LIBS) $(math_LIBS) if EMBEDDED_LIBNGTCP2 -libknot_la_LIBADD += $(libembngtcp2_LIBS) +libknot_la_LIBADD += $(libembngtcp2_LIBS) endif EMBEDDED_LIBNGTCP2 +if ENABLE_PKCS11 +libknot_la_LIBADD += $(pthread_LIBS) +endif + +EXTRA_DIST += \ + libknot/dnssec/sample_keys.h + include_libknotdir = $(includedir) nobase_include_libknot_HEADERS = \ libknot/attribute.h \ @@ -31,6 +38,20 @@ nobase_include_libknot_HEADERS = \ libknot/db/db.h \ libknot/db/db_lmdb.h \ libknot/db/db_trie.h \ + libknot/dnssec/binary.h \ + libknot/dnssec/crypto.h \ + libknot/dnssec/digest.h \ + libknot/dnssec/dnssec.h \ + libknot/dnssec/error.h \ + libknot/dnssec/key.h \ + libknot/dnssec/keyid.h \ + libknot/dnssec/keystore.h \ + libknot/dnssec/keytag.h \ + libknot/dnssec/nsec.h \ + libknot/dnssec/pem.h \ + libknot/dnssec/random.h \ + libknot/dnssec/sign.h \ + libknot/dnssec/tsig.h \ libknot/packet/compr.h \ libknot/packet/pkt.h \ libknot/packet/rrset-wire.h \ @@ -76,6 +97,47 @@ libknot_la_SOURCES = \ libknot/error.c \ libknot/db/db_lmdb.c \ libknot/db/db_trie.c \ + libknot/dnssec/binary.c \ + libknot/dnssec/crypto.c \ + libknot/dnssec/digest.c \ + libknot/dnssec/error.c \ + libknot/dnssec/key/algorithm.c \ + libknot/dnssec/key/algorithm.h \ + libknot/dnssec/key/convert.c \ + libknot/dnssec/key/convert.h \ + libknot/dnssec/key/dnskey.c \ + libknot/dnssec/key/dnskey.h \ + libknot/dnssec/key/ds.c \ + libknot/dnssec/key/internal.h \ + libknot/dnssec/key/key.c \ + libknot/dnssec/key/keytag.c \ + libknot/dnssec/key/privkey.c \ + libknot/dnssec/key/privkey.h \ + libknot/dnssec/key/simple.c \ + libknot/dnssec/keyid.c \ + libknot/dnssec/keystore/internal.h \ + libknot/dnssec/keystore/keystore.c \ + libknot/dnssec/keystore/pkcs11.c \ + libknot/dnssec/keystore/pkcs8.c \ + libknot/dnssec/nsec/bitmap.c \ + libknot/dnssec/nsec/hash.c \ + libknot/dnssec/nsec/nsec.c \ + libknot/dnssec/p11/p11.c \ + libknot/dnssec/p11/p11.h \ + libknot/dnssec/pem.c \ + libknot/dnssec/random.c \ + libknot/dnssec/shared/bignum.c \ + libknot/dnssec/shared/bignum.h \ + libknot/dnssec/shared/binary_wire.h \ + libknot/dnssec/shared/dname.c \ + libknot/dnssec/shared/dname.h \ + libknot/dnssec/shared/keyid_gnutls.c \ + libknot/dnssec/shared/keyid_gnutls.h \ + libknot/dnssec/shared/shared.h \ + libknot/dnssec/sign/der.c \ + libknot/dnssec/sign/der.h \ + libknot/dnssec/sign/sign.c \ + libknot/dnssec/tsig.c \ libknot/packet/pkt.c \ libknot/packet/rrset-wire.c \ libknot/probe/data.c \ diff --git a/src/libdnssec/binary.c b/src/libknot/dnssec/binary.c similarity index 100% rename from src/libdnssec/binary.c rename to src/libknot/dnssec/binary.c diff --git a/src/libdnssec/binary.h b/src/libknot/dnssec/binary.h similarity index 100% rename from src/libdnssec/binary.h rename to src/libknot/dnssec/binary.h diff --git a/src/libdnssec/crypto.c b/src/libknot/dnssec/crypto.c similarity index 100% rename from src/libdnssec/crypto.c rename to src/libknot/dnssec/crypto.c diff --git a/src/libdnssec/crypto.h b/src/libknot/dnssec/crypto.h similarity index 100% rename from src/libdnssec/crypto.h rename to src/libknot/dnssec/crypto.h diff --git a/src/libdnssec/digest.c b/src/libknot/dnssec/digest.c similarity index 100% rename from src/libdnssec/digest.c rename to src/libknot/dnssec/digest.c diff --git a/src/libdnssec/digest.h b/src/libknot/dnssec/digest.h similarity index 100% rename from src/libdnssec/digest.h rename to src/libknot/dnssec/digest.h diff --git a/src/libdnssec/dnssec.h b/src/libknot/dnssec/dnssec.h similarity index 100% rename from src/libdnssec/dnssec.h rename to src/libknot/dnssec/dnssec.h diff --git a/src/libdnssec/error.c b/src/libknot/dnssec/error.c similarity index 100% rename from src/libdnssec/error.c rename to src/libknot/dnssec/error.c diff --git a/src/libdnssec/error.h b/src/libknot/dnssec/error.h similarity index 100% rename from src/libdnssec/error.h rename to src/libknot/dnssec/error.h diff --git a/src/libdnssec/key.h b/src/libknot/dnssec/key.h similarity index 100% rename from src/libdnssec/key.h rename to src/libknot/dnssec/key.h diff --git a/src/libdnssec/key/algorithm.c b/src/libknot/dnssec/key/algorithm.c similarity index 100% rename from src/libdnssec/key/algorithm.c rename to src/libknot/dnssec/key/algorithm.c diff --git a/src/libdnssec/key/algorithm.h b/src/libknot/dnssec/key/algorithm.h similarity index 100% rename from src/libdnssec/key/algorithm.h rename to src/libknot/dnssec/key/algorithm.h diff --git a/src/libdnssec/key/convert.c b/src/libknot/dnssec/key/convert.c similarity index 100% rename from src/libdnssec/key/convert.c rename to src/libknot/dnssec/key/convert.c diff --git a/src/libdnssec/key/convert.h b/src/libknot/dnssec/key/convert.h similarity index 100% rename from src/libdnssec/key/convert.h rename to src/libknot/dnssec/key/convert.h diff --git a/src/libdnssec/key/dnskey.c b/src/libknot/dnssec/key/dnskey.c similarity index 100% rename from src/libdnssec/key/dnskey.c rename to src/libknot/dnssec/key/dnskey.c diff --git a/src/libdnssec/key/dnskey.h b/src/libknot/dnssec/key/dnskey.h similarity index 100% rename from src/libdnssec/key/dnskey.h rename to src/libknot/dnssec/key/dnskey.h diff --git a/src/libdnssec/key/ds.c b/src/libknot/dnssec/key/ds.c similarity index 100% rename from src/libdnssec/key/ds.c rename to src/libknot/dnssec/key/ds.c diff --git a/src/libdnssec/key/internal.h b/src/libknot/dnssec/key/internal.h similarity index 100% rename from src/libdnssec/key/internal.h rename to src/libknot/dnssec/key/internal.h diff --git a/src/libdnssec/key/key.c b/src/libknot/dnssec/key/key.c similarity index 100% rename from src/libdnssec/key/key.c rename to src/libknot/dnssec/key/key.c diff --git a/src/libdnssec/key/keytag.c b/src/libknot/dnssec/key/keytag.c similarity index 100% rename from src/libdnssec/key/keytag.c rename to src/libknot/dnssec/key/keytag.c diff --git a/src/libdnssec/key/privkey.c b/src/libknot/dnssec/key/privkey.c similarity index 100% rename from src/libdnssec/key/privkey.c rename to src/libknot/dnssec/key/privkey.c diff --git a/src/libdnssec/key/privkey.h b/src/libknot/dnssec/key/privkey.h similarity index 100% rename from src/libdnssec/key/privkey.h rename to src/libknot/dnssec/key/privkey.h diff --git a/src/libdnssec/key/simple.c b/src/libknot/dnssec/key/simple.c similarity index 100% rename from src/libdnssec/key/simple.c rename to src/libknot/dnssec/key/simple.c diff --git a/src/libdnssec/keyid.c b/src/libknot/dnssec/keyid.c similarity index 100% rename from src/libdnssec/keyid.c rename to src/libknot/dnssec/keyid.c diff --git a/src/libdnssec/keyid.h b/src/libknot/dnssec/keyid.h similarity index 100% rename from src/libdnssec/keyid.h rename to src/libknot/dnssec/keyid.h diff --git a/src/libdnssec/keystore.h b/src/libknot/dnssec/keystore.h similarity index 100% rename from src/libdnssec/keystore.h rename to src/libknot/dnssec/keystore.h diff --git a/src/libdnssec/keystore/internal.h b/src/libknot/dnssec/keystore/internal.h similarity index 100% rename from src/libdnssec/keystore/internal.h rename to src/libknot/dnssec/keystore/internal.h diff --git a/src/libdnssec/keystore/keystore.c b/src/libknot/dnssec/keystore/keystore.c similarity index 100% rename from src/libdnssec/keystore/keystore.c rename to src/libknot/dnssec/keystore/keystore.c diff --git a/src/libdnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c similarity index 100% rename from src/libdnssec/keystore/pkcs11.c rename to src/libknot/dnssec/keystore/pkcs11.c diff --git a/src/libdnssec/keystore/pkcs8.c b/src/libknot/dnssec/keystore/pkcs8.c similarity index 100% rename from src/libdnssec/keystore/pkcs8.c rename to src/libknot/dnssec/keystore/pkcs8.c diff --git a/src/libdnssec/keytag.h b/src/libknot/dnssec/keytag.h similarity index 100% rename from src/libdnssec/keytag.h rename to src/libknot/dnssec/keytag.h diff --git a/src/libdnssec/nsec.h b/src/libknot/dnssec/nsec.h similarity index 100% rename from src/libdnssec/nsec.h rename to src/libknot/dnssec/nsec.h diff --git a/src/libdnssec/nsec/bitmap.c b/src/libknot/dnssec/nsec/bitmap.c similarity index 100% rename from src/libdnssec/nsec/bitmap.c rename to src/libknot/dnssec/nsec/bitmap.c diff --git a/src/libdnssec/nsec/hash.c b/src/libknot/dnssec/nsec/hash.c similarity index 100% rename from src/libdnssec/nsec/hash.c rename to src/libknot/dnssec/nsec/hash.c diff --git a/src/libdnssec/nsec/nsec.c b/src/libknot/dnssec/nsec/nsec.c similarity index 100% rename from src/libdnssec/nsec/nsec.c rename to src/libknot/dnssec/nsec/nsec.c diff --git a/src/libdnssec/p11/p11.c b/src/libknot/dnssec/p11/p11.c similarity index 100% rename from src/libdnssec/p11/p11.c rename to src/libknot/dnssec/p11/p11.c diff --git a/src/libdnssec/p11/p11.h b/src/libknot/dnssec/p11/p11.h similarity index 100% rename from src/libdnssec/p11/p11.h rename to src/libknot/dnssec/p11/p11.h diff --git a/src/libdnssec/pem.c b/src/libknot/dnssec/pem.c similarity index 100% rename from src/libdnssec/pem.c rename to src/libknot/dnssec/pem.c diff --git a/src/libdnssec/pem.h b/src/libknot/dnssec/pem.h similarity index 100% rename from src/libdnssec/pem.h rename to src/libknot/dnssec/pem.h diff --git a/src/libdnssec/random.c b/src/libknot/dnssec/random.c similarity index 100% rename from src/libdnssec/random.c rename to src/libknot/dnssec/random.c diff --git a/src/libdnssec/random.h b/src/libknot/dnssec/random.h similarity index 100% rename from src/libdnssec/random.h rename to src/libknot/dnssec/random.h diff --git a/src/libdnssec/sample_keys.h b/src/libknot/dnssec/sample_keys.h similarity index 100% rename from src/libdnssec/sample_keys.h rename to src/libknot/dnssec/sample_keys.h diff --git a/src/libdnssec/shared/bignum.c b/src/libknot/dnssec/shared/bignum.c similarity index 100% rename from src/libdnssec/shared/bignum.c rename to src/libknot/dnssec/shared/bignum.c diff --git a/src/libdnssec/shared/bignum.h b/src/libknot/dnssec/shared/bignum.h similarity index 100% rename from src/libdnssec/shared/bignum.h rename to src/libknot/dnssec/shared/bignum.h diff --git a/src/libdnssec/shared/binary_wire.h b/src/libknot/dnssec/shared/binary_wire.h similarity index 100% rename from src/libdnssec/shared/binary_wire.h rename to src/libknot/dnssec/shared/binary_wire.h diff --git a/src/libdnssec/shared/dname.c b/src/libknot/dnssec/shared/dname.c similarity index 100% rename from src/libdnssec/shared/dname.c rename to src/libknot/dnssec/shared/dname.c diff --git a/src/libdnssec/shared/dname.h b/src/libknot/dnssec/shared/dname.h similarity index 100% rename from src/libdnssec/shared/dname.h rename to src/libknot/dnssec/shared/dname.h diff --git a/src/libdnssec/shared/keyid_gnutls.c b/src/libknot/dnssec/shared/keyid_gnutls.c similarity index 100% rename from src/libdnssec/shared/keyid_gnutls.c rename to src/libknot/dnssec/shared/keyid_gnutls.c diff --git a/src/libdnssec/shared/keyid_gnutls.h b/src/libknot/dnssec/shared/keyid_gnutls.h similarity index 100% rename from src/libdnssec/shared/keyid_gnutls.h rename to src/libknot/dnssec/shared/keyid_gnutls.h diff --git a/src/libdnssec/shared/shared.h b/src/libknot/dnssec/shared/shared.h similarity index 100% rename from src/libdnssec/shared/shared.h rename to src/libknot/dnssec/shared/shared.h diff --git a/src/libdnssec/sign.h b/src/libknot/dnssec/sign.h similarity index 100% rename from src/libdnssec/sign.h rename to src/libknot/dnssec/sign.h diff --git a/src/libdnssec/sign/der.c b/src/libknot/dnssec/sign/der.c similarity index 100% rename from src/libdnssec/sign/der.c rename to src/libknot/dnssec/sign/der.c diff --git a/src/libdnssec/sign/der.h b/src/libknot/dnssec/sign/der.h similarity index 100% rename from src/libdnssec/sign/der.h rename to src/libknot/dnssec/sign/der.h diff --git a/src/libdnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c similarity index 100% rename from src/libdnssec/sign/sign.c rename to src/libknot/dnssec/sign/sign.c diff --git a/src/libdnssec/tsig.c b/src/libknot/dnssec/tsig.c similarity index 100% rename from src/libdnssec/tsig.c rename to src/libknot/dnssec/tsig.c diff --git a/src/libdnssec/tsig.h b/src/libknot/dnssec/tsig.h similarity index 100% rename from src/libdnssec/tsig.h rename to src/libknot/dnssec/tsig.h From f9cf9e672157f534aaedc2798af14de539cbe57c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Oct 2025 11:32:53 +0200 Subject: [PATCH 164/675] Remove libdnssec --- Doxyfile.in | 1 - Makefile.am | 1 - configure.ac | 3 -- doc/doxygen/Doxy.page.h | 63 +++++++++++++++++++---------------------- src/knot/Makefile.inc | 2 +- src/utils/Makefile.inc | 4 +-- tests-fuzz/Makefile.am | 4 --- 7 files changed, 32 insertions(+), 46 deletions(-) diff --git a/Doxyfile.in b/Doxyfile.in index 51f724b3dd..2e42167d07 100644 --- a/Doxyfile.in +++ b/Doxyfile.in @@ -865,7 +865,6 @@ WARN_LOGFILE = doc/html/doxygen.warn # Note: If this tag is empty the current directory is searched. INPUT = doc/doxygen/Doxy.page.h \ - src/libdnssec \ src/libknot \ src/libzscanner \ src/knot/include diff --git a/Makefile.am b/Makefile.am index 2250c77653..8a33b9e22e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,7 +19,6 @@ CODE_COVERAGE_HTML = coverage.html CODE_COVERAGE_DIRS = \ src/contrib \ src/knot \ - src/libdnssec \ src/libknot \ src/libzscanner diff --git a/configure.ac b/configure.ac index 6b7aef8d46..331772011d 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,6 @@ AC_CANONICAL_HOST # Update library versions # https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html KNOT_LIB_VERSION([libknot], 16, 0, 0) -KNOT_LIB_VERSION([libdnssec], 10, 0, 0) KNOT_LIB_VERSION([libzscanner], 5, 0, 0) AC_SUBST([KNOT_VERSION_MAJOR], knot_VERSION_MAJOR) @@ -25,7 +24,6 @@ AC_SUBST([KNOT_VERSION_MINOR], knot_VERSION_MINOR) AC_SUBST([KNOT_VERSION_PATCH], knot_VERSION_PATCH) AC_CONFIG_FILES([src/libknot/version.h - src/libdnssec/version.h src/libzscanner/version.h]) # Automatically update release date based on NEWS @@ -68,7 +66,6 @@ PKG_PROG_PKG_CONFIG m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], [AC_SUBST([pkgconfigdir], ['${libdir}/pkgconfig'])]) AC_CONFIG_FILES([src/knotd.pc src/libknot.pc - src/libdnssec.pc src/libzscanner.pc ]) diff --git a/doc/doxygen/Doxy.page.h b/doc/doxygen/Doxy.page.h index ec7f41b1d8..a9afbb40ef 100644 --- a/doc/doxygen/Doxy.page.h +++ b/doc/doxygen/Doxy.page.h @@ -10,13 +10,12 @@ \par Modules - \subpage libknot-page -- \subpage libdnssec-page - \subpage libzscanner-page - \subpage knotd-page \copyright Licensed under the terms of - [GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.txt) - version 3 or later. + [GNU General Public License](https://spdx.org/licenses/GPL-2.0-or-later.html) + version 2 or later. \page libknot-page libknot - General DNS library @@ -35,6 +34,20 @@ - \ref xdp — XDP interface - \ref yparser — Simple YAML parser + - \ref binary — Universal binary data container + - \ref crypto — Cryptographic backend + - \ref digest — Data hashing operations + - \ref error — Error codes and error reporting + - \ref key — DNSSEC key manipulation + - \ref keyid — DNSSEC key ID manipulation + - \ref keystore — DNSSEC private key store + - \ref keytag — DNSSEC key tag computation + - \ref nsec — NSEC and NSEC3 operations + - \ref pem — PEM key format operations + - \ref random — Pseudo-random number generation + - \ref sign — DNSSEC signing and verification + - \ref tsig — TSIG signing + \defgroup ctl ctl \defgroup db db \defgroup dname dname @@ -48,37 +61,19 @@ \defgroup xdp xdp \defgroup yparser yparser - -\page libdnssec-page libdnssec - DNSSEC library - -\section libdnssec-content Sections - - \ref binary — Universal binary data container - - \ref crypto — Cryptographic backend - - \ref digest — Data hashing operations - - \ref error — Error codes and error reporting - - \ref key — DNSSEC key manipulation - - \ref keyid — DNSSEC key ID manipulation - - \ref keystore — DNSSEC private key store - - \ref keytag — DNSSEC key tag computation - - \ref nsec — NSEC and NSEC3 operations - - \ref pem — PEM key format operations - - \ref random — Pseudo-random number generation - - \ref sign — DNSSEC signing and verification - - \ref tsig — TSIG signing - -\defgroup binary binary -\defgroup crypto crypto -\defgroup digest digest -\defgroup error error -\defgroup key key -\defgroup keyid keyid -\defgroup keystore keystore -\defgroup keytag keytag -\defgroup nsec nsec -\defgroup pem pem -\defgroup random random -\defgroup sign sign -\defgroup tsig tsig +\defgroup binary binary +\defgroup crypto crypto +\defgroup digest digest +\defgroup error error +\defgroup key key +\defgroup keyid keyid +\defgroup keystore keystore +\defgroup keytag keytag +\defgroup nsec nsec +\defgroup pem pem +\defgroup random random +\defgroup sign sign +\defgroup tsig tsig \page libzscanner-page libzscanner - DNS zone file parser diff --git a/src/knot/Makefile.inc b/src/knot/Makefile.inc index e04dc44463..d32f7df02c 100644 --- a/src/knot/Makefile.inc +++ b/src/knot/Makefile.inc @@ -4,7 +4,7 @@ libknotd_la_CPPFLAGS = $(AM_CPPFLAGS) $(CFLAG_VISIBILITY) $(libkqueue_CFLAGS) \ -DKNOTD_MOD_STATIC libknotd_la_LDFLAGS = $(AM_LDFLAGS) -export-symbols-regex '^knotd_' libknotd_la_LIBADD = $(dlopen_LIBS) $(libkqueue_LIBS) $(pthread_LIBS) -libknotd_LIBS = libknotd.la libknot.la libdnssec.la libzscanner.la \ +libknotd_LIBS = libknotd.la libknot.la libzscanner.la \ $(libcontrib_LIBS) $(liburcu_LIBS) $(lmdb_LIBS) \ $(systemd_LIBS) $(libdbus_LIBS) $(gnutls_LIBS) \ $(hiredis_LIBS) diff --git a/src/utils/Makefile.inc b/src/utils/Makefile.inc index 1f11282bef..3c4c790a1c 100644 --- a/src/utils/Makefile.inc +++ b/src/utils/Makefile.inc @@ -11,7 +11,7 @@ libknotus_la_CPPFLAGS = $(embedded_libngtcp2_CFLAGS) \ $(lmdb_CFLAGS) libknotus_la_LDFLAGS = $(AM_LDFLAGS) $(LDFLAG_EXCLUDE_LIBS) libknotus_la_LIBADD = $(libidn2_LIBS) $(libidn_LIBS) $(libnghttp2_LIBS) $(libngtcp2_LIBS) -libknotus_LIBS = libknotus.la libknot.la libdnssec.la $(libcontrib_LIBS) \ +libknotus_LIBS = libknotus.la libknot.la $(libcontrib_LIBS) \ $(gnutls_LIBS) $(libedit_LIBS) if EMBEDDED_LIBNGTCP2 @@ -85,7 +85,7 @@ kdig_LDADD = $(libknotus_LIBS) khost_CPPFLAGS = $(libknotus_la_CPPFLAGS) khost_LDADD = $(libknotus_LIBS) knsec3hash_CPPFLAGS = $(libknotus_la_CPPFLAGS) -knsec3hash_LDADD = libknot.la libdnssec.la $(libcontrib_LIBS) +knsec3hash_LDADD = libknot.la $(libcontrib_LIBS) knsupdate_CPPFLAGS = $(libknotus_la_CPPFLAGS) knsupdate_LDADD = $(libknotus_LIBS) libzscanner.la diff --git a/tests-fuzz/Makefile.am b/tests-fuzz/Makefile.am index 20ff9b5f35..9147c71b83 100644 --- a/tests-fuzz/Makefile.am +++ b/tests-fuzz/Makefile.am @@ -37,7 +37,6 @@ knotd_stdio_CPPFLAGS = \ knotd_stdio_LDADD = \ $(top_builddir)/src/libknotd.la \ $(top_builddir)/src/libknot.la \ - $(top_builddir)/src/libdnssec.la \ $(top_builddir)/src/libcontrib.la \ $(top_builddir)/src/libzscanner.la \ $(cap_ng_LIBS) \ @@ -61,7 +60,6 @@ fuzz_packet_SOURCES = fuzz_packet.c fuzz_packet_CPPFLAGS = $(AM_CPPFLAGS) fuzz_packet_LDADD = \ $(top_builddir)/src/libknot.la \ - $(top_builddir)/src/libdnssec.la \ $(top_builddir)/src/libcontrib.la \ $(lmdb_LIBS) @@ -74,7 +72,6 @@ fuzz_dname_to_str_SOURCES = fuzz_dname_to_str.c fuzz_dname_to_str_CPPFLAGS = $(AM_CPPFLAGS) fuzz_dname_to_str_LDADD = \ $(top_builddir)/src/libknot.la \ - $(top_builddir)/src/libdnssec.la \ $(top_builddir)/src/libcontrib.la \ $(lmdb_LIBS) @@ -82,7 +79,6 @@ fuzz_dname_from_str_SOURCES = fuzz_dname_from_str.c fuzz_dname_from_str_CPPFLAGS = $(AM_CPPFLAGS) fuzz_dname_from_str_LDADD = \ $(top_builddir)/src/libknot.la \ - $(top_builddir)/src/libdnssec.la \ $(top_builddir)/src/libcontrib.la \ $(lmdb_LIBS) From cf92fb900829aac67114549811b95b49f8860ab5 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Oct 2025 11:43:26 +0200 Subject: [PATCH 165/675] distro: remove libdnssec --- distro/pkg/deb-nolibxdp/control | 21 ----- distro/pkg/deb-nolibxdp/libdnssec10.install | 1 - distro/pkg/deb-nolibxdp/libdnssec10.symbols | 1 - distro/pkg/deb/control | 21 ----- distro/pkg/deb/libdnssec10.install | 1 - distro/pkg/deb/libdnssec10.symbols | 96 --------------------- distro/pkg/deb/libknot16.symbols | 93 ++++++++++++++++++++ distro/pkg/rpm/knot.spec | 4 - 8 files changed, 93 insertions(+), 145 deletions(-) delete mode 120000 distro/pkg/deb-nolibxdp/libdnssec10.install delete mode 120000 distro/pkg/deb-nolibxdp/libdnssec10.symbols delete mode 100644 distro/pkg/deb/libdnssec10.install delete mode 100644 distro/pkg/deb/libdnssec10.symbols diff --git a/distro/pkg/deb-nolibxdp/control b/distro/pkg/deb-nolibxdp/control index b60928b5b7..526211ea94 100644 --- a/distro/pkg/deb-nolibxdp/control +++ b/distro/pkg/deb-nolibxdp/control @@ -41,7 +41,6 @@ Package: knot Architecture: any Depends: adduser, - libdnssec10 (= ${binary:Version}), libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), ${misc:Depends}, @@ -63,7 +62,6 @@ Description: Authoritative DNS server Package: libknot16 Architecture: any Depends: - libdnssec10 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Section: libs @@ -89,24 +87,9 @@ Description: DNS zone-parsing shared library from Knot DNS registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. -Package: libdnssec10 -Architecture: any -Depends: - ${misc:Depends}, - ${shlibs:Depends}, -Section: libs -Description: DNSSEC shared library from Knot DNS - This package provides a DNSSEC shared library used by Knot DNS - and Knot Resolver. - . - Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ - registry and hence is well suited to run anything from the root - zone, the top-level domain, to many smaller standard domain names. - Package: libknot-dev Architecture: any Depends: - libdnssec10 (= ${binary:Version}), libgnutls28-dev, libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), @@ -123,7 +106,6 @@ Description: Development files for Knot DNS shared libraries Package: knot-dnsutils Architecture: any Depends: - libdnssec10 (= ${binary:Version}), libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), ${misc:Depends}, @@ -141,7 +123,6 @@ Description: DNS clients from Knot DNS Package: knot-dnssecutils Architecture: any Depends: - libdnssec10 (= ${binary:Version}), libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), ${misc:Depends}, @@ -160,7 +141,6 @@ Description: DNSSEC tools Package: knot-host Architecture: any Depends: - libdnssec10 (= ${binary:Version}), libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), ${misc:Depends}, @@ -175,7 +155,6 @@ Description: Simple DNS client Package: knot-keymgr Architecture: any Depends: - libdnssec10 (= ${binary:Version}), libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), ${misc:Depends}, diff --git a/distro/pkg/deb-nolibxdp/libdnssec10.install b/distro/pkg/deb-nolibxdp/libdnssec10.install deleted file mode 120000 index 0a1b503d04..0000000000 --- a/distro/pkg/deb-nolibxdp/libdnssec10.install +++ /dev/null @@ -1 +0,0 @@ -../deb/libdnssec10.install \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/libdnssec10.symbols b/distro/pkg/deb-nolibxdp/libdnssec10.symbols deleted file mode 120000 index 3fa4368896..0000000000 --- a/distro/pkg/deb-nolibxdp/libdnssec10.symbols +++ /dev/null @@ -1 +0,0 @@ -../deb/libdnssec10.symbols \ No newline at end of file diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index 32f42080e2..96c6960dfe 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -44,7 +44,6 @@ Package: knot Architecture: any Depends: adduser, - libdnssec10 (= ${binary:Version}), libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), ${misc:Depends}, @@ -66,7 +65,6 @@ Description: Authoritative DNS server Package: libknot16 Architecture: any Depends: - libdnssec10 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}, Section: libs @@ -92,24 +90,9 @@ Description: DNS zone-parsing shared library from Knot DNS registry and hence is well suited to run anything from the root zone, the top-level domain, to many smaller standard domain names. -Package: libdnssec10 -Architecture: any -Depends: - ${misc:Depends}, - ${shlibs:Depends}, -Section: libs -Description: DNSSEC shared library from Knot DNS - This package provides a DNSSEC shared library used by Knot DNS - and Knot Resolver. - . - Knot DNS is developed by CZ.NIC Labs, the R&D department of .CZ - registry and hence is well suited to run anything from the root - zone, the top-level domain, to many smaller standard domain names. - Package: libknot-dev Architecture: any Depends: - libdnssec10 (= ${binary:Version}), libgnutls28-dev, libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), @@ -126,7 +109,6 @@ Description: Development files for Knot DNS shared libraries Package: knot-dnsutils Architecture: any Depends: - libdnssec10 (= ${binary:Version}), libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), ${misc:Depends}, @@ -145,7 +127,6 @@ Description: DNS clients from Knot DNS Package: knot-dnssecutils Architecture: any Depends: - libdnssec10 (= ${binary:Version}), libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), ${misc:Depends}, @@ -164,7 +145,6 @@ Description: DNSSEC tools Package: knot-host Architecture: any Depends: - libdnssec10 (= ${binary:Version}), libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), ${misc:Depends}, @@ -179,7 +159,6 @@ Description: Simple DNS client Package: knot-keymgr Architecture: any Depends: - libdnssec10 (= ${binary:Version}), libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), ${misc:Depends}, diff --git a/distro/pkg/deb/libdnssec10.install b/distro/pkg/deb/libdnssec10.install deleted file mode 100644 index 17a9fe6123..0000000000 --- a/distro/pkg/deb/libdnssec10.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/*/libdnssec.so.* diff --git a/distro/pkg/deb/libdnssec10.symbols b/distro/pkg/deb/libdnssec10.symbols deleted file mode 100644 index bcdb6b0bc2..0000000000 --- a/distro/pkg/deb/libdnssec10.symbols +++ /dev/null @@ -1,96 +0,0 @@ -libdnssec.so.10 libdnssec10 #MINVER# -* Build-Depends-Package: libknot-dev - dnssec_algorithm_digest_support@Base 3.5.0 - dnssec_algorithm_key_size_check@Base 3.5.0 - dnssec_algorithm_key_size_default@Base 3.5.0 - dnssec_algorithm_key_size_range@Base 3.5.0 - dnssec_algorithm_key_support@Base 3.5.0 - dnssec_algorithm_reproducible@Base 3.5.0 - dnssec_binary_alloc@Base 3.5.0 - dnssec_binary_cmp@Base 3.5.0 - dnssec_binary_dup@Base 3.5.0 - dnssec_binary_free@Base 3.5.0 - dnssec_binary_from_base64@Base 3.5.0 - dnssec_binary_resize@Base 3.5.0 - dnssec_binary_to_base64@Base 3.5.0 - dnssec_crypto_cleanup@Base 3.5.0 - dnssec_crypto_init@Base 3.5.0 - dnssec_crypto_reinit@Base 3.5.0 - dnssec_digest@Base 3.5.0 - dnssec_digest_finish@Base 3.5.0 - dnssec_digest_init@Base 3.5.0 - dnssec_key_can_sign@Base 3.5.0 - dnssec_key_can_verify@Base 3.5.0 - dnssec_key_clear@Base 3.5.0 - dnssec_key_create_ds@Base 3.5.0 - dnssec_key_dup@Base 3.5.0 - dnssec_key_free@Base 3.5.0 - dnssec_key_get_algorithm@Base 3.5.0 - dnssec_key_get_dname@Base 3.5.0 - dnssec_key_get_flags@Base 3.5.0 - dnssec_key_get_keyid@Base 3.5.0 - dnssec_key_get_keytag@Base 3.5.0 - dnssec_key_get_protocol@Base 3.5.0 - dnssec_key_get_pubkey@Base 3.5.0 - dnssec_key_get_rdata@Base 3.5.0 - dnssec_key_get_size@Base 3.5.0 - dnssec_key_load_pkcs8@Base 3.5.0 - dnssec_key_new@Base 3.5.0 - dnssec_key_set_algorithm@Base 3.5.0 - dnssec_key_set_dname@Base 3.5.0 - dnssec_key_set_flags@Base 3.5.0 - dnssec_key_set_protocol@Base 3.5.0 - dnssec_key_set_pubkey@Base 3.5.0 - dnssec_key_set_rdata@Base 3.5.0 - dnssec_keyid_copy@Base 3.5.0 - dnssec_keyid_equal@Base 3.5.0 - dnssec_keyid_is_valid@Base 3.5.0 - dnssec_keyid_normalize@Base 3.5.0 - dnssec_keystore_close@Base 3.5.0 - dnssec_keystore_deinit@Base 3.5.0 - dnssec_keystore_generate@Base 3.5.0 - dnssec_keystore_get_private@Base 3.5.0 - dnssec_keystore_import@Base 3.5.0 - dnssec_keystore_init@Base 3.5.0 - dnssec_keystore_init_pkcs11@Base 3.5.0 - dnssec_keystore_init_pkcs8@Base 3.5.0 - dnssec_keystore_open@Base 3.5.0 - dnssec_keystore_remove@Base 3.5.0 - dnssec_keystore_set_private@Base 3.5.0 - dnssec_keytag@Base 3.5.0 - dnssec_nsec3_hash@Base 3.5.0 - dnssec_nsec3_hash_length@Base 3.5.0 - dnssec_nsec3_params_free@Base 3.5.0 - dnssec_nsec3_params_from_rdata@Base 3.5.0 - dnssec_nsec3_params_match@Base 3.5.0 - dnssec_nsec_bitmap_add@Base 3.5.0 - dnssec_nsec_bitmap_clear@Base 3.5.0 - dnssec_nsec_bitmap_contains@Base 3.5.0 - dnssec_nsec_bitmap_free@Base 3.5.0 - dnssec_nsec_bitmap_new@Base 3.5.0 - dnssec_nsec_bitmap_size@Base 3.5.0 - dnssec_nsec_bitmap_write@Base 3.5.0 - dnssec_pem_from_privkey@Base 3.5.0 - dnssec_pem_from_x509@Base 3.5.0 - dnssec_pem_to_privkey@Base 3.5.0 - dnssec_pem_to_x509@Base 3.5.0 - dnssec_random_binary@Base 3.5.0 - dnssec_random_buffer@Base 3.5.0 - dnssec_sign_add@Base 3.5.0 - dnssec_sign_free@Base 3.5.0 - dnssec_sign_init@Base 3.5.0 - dnssec_sign_new@Base 3.5.0 - dnssec_sign_verify@Base 3.5.0 - dnssec_sign_write@Base 3.5.0 - dnssec_strerror@Base 3.5.0 - dnssec_tsig_add@Base 3.5.0 - dnssec_tsig_algorithm_from_dname@Base 3.5.0 - dnssec_tsig_algorithm_from_name@Base 3.5.0 - dnssec_tsig_algorithm_size@Base 3.5.0 - dnssec_tsig_algorithm_to_dname@Base 3.5.0 - dnssec_tsig_algorithm_to_name@Base 3.5.0 - dnssec_tsig_free@Base 3.5.0 - dnssec_tsig_new@Base 3.5.0 - dnssec_tsig_optimal_key_size@Base 3.5.0 - dnssec_tsig_size@Base 3.5.0 - dnssec_tsig_write@Base 3.5.0 diff --git a/distro/pkg/deb/libknot16.symbols b/distro/pkg/deb/libknot16.symbols index 2976c27500..b1dc19ceae 100644 --- a/distro/pkg/deb/libknot16.symbols +++ b/distro/pkg/deb/libknot16.symbols @@ -8,6 +8,99 @@ libknot.so.16 libknot16 #MINVER# KNOT_DB_LMDB_RDONLY@Base 3.5.0 KNOT_DB_LMDB_WRITEMAP@Base 3.5.0 KNOT_DUMP_STYLE_DEFAULT@Base 3.5.0 + dnssec_algorithm_digest_support@Base 3.5.0 + dnssec_algorithm_key_size_check@Base 3.5.0 + dnssec_algorithm_key_size_default@Base 3.5.0 + dnssec_algorithm_key_size_range@Base 3.5.0 + dnssec_algorithm_key_support@Base 3.5.0 + dnssec_algorithm_reproducible@Base 3.5.0 + dnssec_binary_alloc@Base 3.5.0 + dnssec_binary_cmp@Base 3.5.0 + dnssec_binary_dup@Base 3.5.0 + dnssec_binary_free@Base 3.5.0 + dnssec_binary_from_base64@Base 3.5.0 + dnssec_binary_resize@Base 3.5.0 + dnssec_binary_to_base64@Base 3.5.0 + dnssec_crypto_cleanup@Base 3.5.0 + dnssec_crypto_init@Base 3.5.0 + dnssec_crypto_reinit@Base 3.5.0 + dnssec_digest@Base 3.5.0 + dnssec_digest_finish@Base 3.5.0 + dnssec_digest_init@Base 3.5.0 + dnssec_key_can_sign@Base 3.5.0 + dnssec_key_can_verify@Base 3.5.0 + dnssec_key_clear@Base 3.5.0 + dnssec_key_create_ds@Base 3.5.0 + dnssec_key_dup@Base 3.5.0 + dnssec_key_free@Base 3.5.0 + dnssec_key_get_algorithm@Base 3.5.0 + dnssec_key_get_dname@Base 3.5.0 + dnssec_key_get_flags@Base 3.5.0 + dnssec_key_get_keyid@Base 3.5.0 + dnssec_key_get_keytag@Base 3.5.0 + dnssec_key_get_protocol@Base 3.5.0 + dnssec_key_get_pubkey@Base 3.5.0 + dnssec_key_get_rdata@Base 3.5.0 + dnssec_key_get_size@Base 3.5.0 + dnssec_key_load_pkcs8@Base 3.5.0 + dnssec_key_new@Base 3.5.0 + dnssec_key_set_algorithm@Base 3.5.0 + dnssec_key_set_dname@Base 3.5.0 + dnssec_key_set_flags@Base 3.5.0 + dnssec_key_set_protocol@Base 3.5.0 + dnssec_key_set_pubkey@Base 3.5.0 + dnssec_key_set_rdata@Base 3.5.0 + dnssec_keyid_copy@Base 3.5.0 + dnssec_keyid_equal@Base 3.5.0 + dnssec_keyid_is_valid@Base 3.5.0 + dnssec_keyid_normalize@Base 3.5.0 + dnssec_keystore_close@Base 3.5.0 + dnssec_keystore_deinit@Base 3.5.0 + dnssec_keystore_generate@Base 3.5.0 + dnssec_keystore_get_private@Base 3.5.0 + dnssec_keystore_import@Base 3.5.0 + dnssec_keystore_init@Base 3.5.0 + dnssec_keystore_init_pkcs11@Base 3.5.0 + dnssec_keystore_init_pkcs8@Base 3.5.0 + dnssec_keystore_open@Base 3.5.0 + dnssec_keystore_remove@Base 3.5.0 + dnssec_keystore_set_private@Base 3.5.0 + dnssec_keytag@Base 3.5.0 + dnssec_nsec3_hash@Base 3.5.0 + dnssec_nsec3_hash_length@Base 3.5.0 + dnssec_nsec3_params_free@Base 3.5.0 + dnssec_nsec3_params_from_rdata@Base 3.5.0 + dnssec_nsec3_params_match@Base 3.5.0 + dnssec_nsec_bitmap_add@Base 3.5.0 + dnssec_nsec_bitmap_clear@Base 3.5.0 + dnssec_nsec_bitmap_contains@Base 3.5.0 + dnssec_nsec_bitmap_free@Base 3.5.0 + dnssec_nsec_bitmap_new@Base 3.5.0 + dnssec_nsec_bitmap_size@Base 3.5.0 + dnssec_nsec_bitmap_write@Base 3.5.0 + dnssec_pem_from_privkey@Base 3.5.0 + dnssec_pem_from_x509@Base 3.5.0 + dnssec_pem_to_privkey@Base 3.5.0 + dnssec_pem_to_x509@Base 3.5.0 + dnssec_random_binary@Base 3.5.0 + dnssec_random_buffer@Base 3.5.0 + dnssec_sign_add@Base 3.5.0 + dnssec_sign_free@Base 3.5.0 + dnssec_sign_init@Base 3.5.0 + dnssec_sign_new@Base 3.5.0 + dnssec_sign_verify@Base 3.5.0 + dnssec_sign_write@Base 3.5.0 + dnssec_tsig_add@Base 3.5.0 + dnssec_tsig_algorithm_from_dname@Base 3.5.0 + dnssec_tsig_algorithm_from_name@Base 3.5.0 + dnssec_tsig_algorithm_size@Base 3.5.0 + dnssec_tsig_algorithm_to_dname@Base 3.5.0 + dnssec_tsig_algorithm_to_name@Base 3.5.0 + dnssec_tsig_free@Base 3.5.0 + dnssec_tsig_new@Base 3.5.0 + dnssec_tsig_optimal_key_size@Base 3.5.0 + dnssec_tsig_size@Base 3.5.0 + dnssec_tsig_write@Base 3.5.0 knot_creds_cert@Base 3.5.0 knot_creds_free@Base 3.5.0 knot_creds_hash@Base 3.5.0 diff --git a/distro/pkg/rpm/knot.spec b/distro/pkg/rpm/knot.spec index d6a9e055cd..b75d87b297 100644 --- a/distro/pkg/rpm/knot.spec +++ b/distro/pkg/rpm/knot.spec @@ -404,20 +404,16 @@ getent passwd knot >/dev/null || \ %license COPYING %doc NEWS %doc README.md -%{_libdir}/libdnssec.so.* %{_libdir}/libknot.so.* %{_libdir}/libzscanner.so.* %files devel -%{_includedir}/libdnssec %{_includedir}/knot %{_includedir}/libknot %{_includedir}/libzscanner -%{_libdir}/libdnssec.so %{_libdir}/libknot.so %{_libdir}/libzscanner.so %{_libdir}/pkgconfig/knotd.pc -%{_libdir}/pkgconfig/libdnssec.pc %{_libdir}/pkgconfig/libknot.pc %{_libdir}/pkgconfig/libzscanner.pc From 75494000fda2f5b4b268281a08b6244b1231b4ca Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Oct 2025 12:45:55 +0200 Subject: [PATCH 166/675] Update libdnssec -> libknot/dnssec includes --- src/knot/conf/schema.c | 4 ++-- src/knot/conf/tools.c | 2 +- src/knot/dnssec/context.h | 2 +- src/knot/dnssec/kasp/kasp_zone.c | 2 +- src/knot/dnssec/kasp/kasp_zone.h | 2 +- src/knot/dnssec/kasp/keystore.c | 2 +- src/knot/dnssec/kasp/keystore.h | 2 +- src/knot/dnssec/kasp/policy.h | 4 ++-- src/knot/dnssec/key-events.c | 2 +- src/knot/dnssec/key_records.c | 4 ++-- src/knot/dnssec/nsec-chain.h | 2 +- src/knot/dnssec/nsec3-chain.h | 2 +- src/knot/dnssec/rrset-sign.c | 2 +- src/knot/dnssec/rrset-sign.h | 4 ++-- src/knot/dnssec/zone-events.c | 4 ++-- src/knot/dnssec/zone-keys.c | 2 +- src/knot/dnssec/zone-keys.h | 4 ++-- src/knot/dnssec/zone-nsec.c | 2 +- src/knot/dnssec/zone-sign.c | 8 ++++---- src/knot/events/handlers/dnskey_sync.c | 2 +- src/knot/events/handlers/refresh.c | 2 +- src/knot/events/handlers/update.c | 2 +- src/knot/modules/cookies/cookies.c | 2 +- src/knot/modules/geoip/geoip.c | 2 +- src/knot/modules/onlinesign/onlinesign.c | 2 +- src/knot/modules/rrl/functions.c | 2 +- src/knot/modules/rrl/kru.inc.c | 4 ++-- src/knot/nameserver/notify.c | 2 +- src/knot/nameserver/process_query.c | 2 +- src/knot/query/query.c | 2 +- src/knot/zone/adjust.c | 2 +- src/knot/zone/backup.c | 2 +- src/knot/zone/contents.c | 2 +- src/knot/zone/contents.h | 2 +- src/knot/zone/digest.c | 2 +- src/knot/zone/semantic-check.c | 4 ++-- src/libknot/codes.c | 2 +- src/libknot/dnssec/binary.c | 6 +++--- src/libknot/dnssec/crypto.c | 6 +++--- src/libknot/dnssec/digest.c | 4 ++-- src/libknot/dnssec/digest.h | 4 ++-- src/libknot/dnssec/dnssec.h | 24 ++++++++++++------------ src/libknot/dnssec/error.c | 4 ++-- src/libknot/dnssec/key.h | 2 +- src/libknot/dnssec/key/algorithm.c | 8 ++++---- src/libknot/dnssec/key/algorithm.h | 2 +- src/libknot/dnssec/key/convert.c | 16 ++++++++-------- src/libknot/dnssec/key/convert.h | 4 ++-- src/libknot/dnssec/key/dnskey.c | 10 +++++----- src/libknot/dnssec/key/dnskey.h | 4 ++-- src/libknot/dnssec/key/ds.c | 14 +++++++------- src/libknot/dnssec/key/internal.h | 4 ++-- src/libknot/dnssec/key/key.c | 24 ++++++++++++------------ src/libknot/dnssec/key/keytag.c | 8 ++++---- src/libknot/dnssec/key/privkey.c | 18 +++++++++--------- src/libknot/dnssec/key/privkey.h | 2 +- src/libknot/dnssec/key/simple.c | 16 ++++++++-------- src/libknot/dnssec/keyid.c | 6 +++--- src/libknot/dnssec/keystore.h | 4 ++-- src/libknot/dnssec/keystore/internal.h | 6 +++--- src/libknot/dnssec/keystore/keystore.c | 20 ++++++++++---------- src/libknot/dnssec/keystore/pkcs11.c | 16 ++++++++-------- src/libknot/dnssec/keystore/pkcs8.c | 14 +++++++------- src/libknot/dnssec/keytag.h | 2 +- src/libknot/dnssec/nsec.h | 2 +- src/libknot/dnssec/nsec/bitmap.c | 4 ++-- src/libknot/dnssec/nsec/hash.c | 6 +++--- src/libknot/dnssec/nsec/nsec.c | 10 +++++----- src/libknot/dnssec/p11/p11.c | 4 ++-- src/libknot/dnssec/pem.c | 10 +++++----- src/libknot/dnssec/pem.h | 2 +- src/libknot/dnssec/random.c | 6 +++--- src/libknot/dnssec/random.h | 2 +- src/libknot/dnssec/sample_keys.h | 2 +- src/libknot/dnssec/shared/bignum.c | 2 +- src/libknot/dnssec/shared/bignum.h | 2 +- src/libknot/dnssec/shared/binary_wire.h | 2 +- src/libknot/dnssec/shared/dname.c | 4 ++-- src/libknot/dnssec/shared/keyid_gnutls.c | 10 +++++----- src/libknot/dnssec/shared/keyid_gnutls.h | 2 +- src/libknot/dnssec/shared/shared.h | 2 +- src/libknot/dnssec/sign.h | 4 ++-- src/libknot/dnssec/sign/der.c | 10 +++++----- src/libknot/dnssec/sign/der.h | 2 +- src/libknot/dnssec/sign/sign.c | 16 ++++++++-------- src/libknot/dnssec/tsig.c | 8 ++++---- src/libknot/dnssec/tsig.h | 2 +- src/libknot/error.c | 2 +- src/libknot/quic/quic.c | 4 ++-- src/libknot/quic/quic_conn.c | 2 +- src/libknot/rrset-dump.c | 6 +++--- src/libknot/rrtype/tsig.c | 2 +- src/libknot/rrtype/tsig.h | 4 ++-- src/libknot/tsig-op.c | 4 ++-- src/libknot/tsig.c | 2 +- src/libknot/tsig.h | 2 +- src/libknot/xdp/msg_init.h | 2 +- src/libknot/xdp/tcp.c | 2 +- src/redis/libs.h | 2 +- src/utils/common/exec.c | 2 +- src/utils/common/quic.c | 4 ++-- src/utils/kdig/kdig_main.c | 2 +- src/utils/kdig/kdig_params.c | 4 ++-- src/utils/keymgr/bind_privkey.c | 8 ++++---- src/utils/keymgr/bind_privkey.h | 2 +- src/utils/keymgr/functions.c | 6 +++--- src/utils/keymgr/keystore.c | 12 ++++++------ src/utils/keymgr/main.c | 2 +- src/utils/khost/khost_main.c | 2 +- src/utils/knotd/main.c | 2 +- src/utils/knsec3hash/knsec3hash.c | 4 ++-- src/utils/knsupdate/knsupdate_exec.c | 2 +- src/utils/knsupdate/knsupdate_main.c | 2 +- tests/contrib/test_strtonum.c | 2 +- tests/libdnssec/test_key.c | 2 +- tests/libdnssec/test_key_ds.c | 8 ++++---- tests/libdnssec/test_keystore_pkcs11.c | 10 +++++----- tests/libdnssec/test_sign.c | 2 +- tests/modules/test_rrl.c | 4 ++-- 119 files changed, 287 insertions(+), 287 deletions(-) diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 9e0ef9a9f6..d75d8922d1 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -15,8 +15,8 @@ #include "knot/updates/acl.h" #include "knot/zone/zone-load.h" #include "libknot/rrtype/opt.h" -#include "libdnssec/tsig.h" -#include "libdnssec/key.h" +#include "libknot/dnssec/tsig.h" +#include "libknot/dnssec/key.h" #define HOURS(x) ((x) * 3600) #define DAYS(x) ((x) * HOURS(24)) diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index 6596c76367..2e6271731c 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -21,7 +21,7 @@ #include #endif -#include "libdnssec/key.h" +#include "libknot/dnssec/key.h" #include "knot/catalog/catalog_db.h" #include "knot/conf/tools.h" #include "knot/conf/conf.h" diff --git a/src/knot/dnssec/context.h b/src/knot/dnssec/context.h index 0e7e8eccdf..6571aa4f97 100644 --- a/src/knot/dnssec/context.h +++ b/src/knot/dnssec/context.h @@ -5,7 +5,7 @@ #pragma once -#include "libdnssec/keystore.h" +#include "libknot/dnssec/keystore.h" #include "contrib/spinlock.h" #include "contrib/time.h" #include "knot/conf/conf.h" diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index 145c8fcb8d..808a7704ec 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -6,7 +6,7 @@ #include "knot/dnssec/kasp/kasp_zone.h" #include "knot/dnssec/kasp/keystore.h" #include "knot/dnssec/zone-keys.h" -#include "libdnssec/binary.h" +#include "libknot/dnssec/binary.h" // FIXME DNSSEC errors versus knot errors diff --git a/src/knot/dnssec/kasp/kasp_zone.h b/src/knot/dnssec/kasp/kasp_zone.h index 1395df886c..64e554c316 100644 --- a/src/knot/dnssec/kasp/kasp_zone.h +++ b/src/knot/dnssec/kasp/kasp_zone.h @@ -7,7 +7,7 @@ #include "knot/dnssec/kasp/kasp_db.h" #include "knot/zone/contents.h" -#include "libdnssec/keystore.h" +#include "libknot/dnssec/keystore.h" typedef struct { knot_dname_t *dname; diff --git a/src/knot/dnssec/kasp/keystore.c b/src/knot/dnssec/kasp/keystore.c index 030f56ebce..6ef3ec7c6b 100644 --- a/src/knot/dnssec/kasp/keystore.c +++ b/src/knot/dnssec/kasp/keystore.c @@ -7,7 +7,7 @@ #include #include -#include "libdnssec/error.h" +#include "libknot/dnssec/error.h" #include "knot/dnssec/kasp/keystore.h" #include "knot/conf/schema.h" #include "libknot/error.h" diff --git a/src/knot/dnssec/kasp/keystore.h b/src/knot/dnssec/kasp/keystore.h index 91de64d614..e586db5091 100644 --- a/src/knot/dnssec/kasp/keystore.h +++ b/src/knot/dnssec/kasp/keystore.h @@ -5,7 +5,7 @@ #pragma once -#include "libdnssec/keystore.h" +#include "libknot/dnssec/keystore.h" int keystore_load(const char *config, unsigned backend, const char *kasp_base_path, dnssec_keystore_t **keystore); diff --git a/src/knot/dnssec/kasp/policy.h b/src/knot/dnssec/kasp/policy.h index 56362b395b..0bf3618bba 100644 --- a/src/knot/dnssec/kasp/policy.h +++ b/src/knot/dnssec/kasp/policy.h @@ -8,8 +8,8 @@ #include #include "contrib/time.h" -#include "libdnssec/key.h" -#include "libdnssec/keystore.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/keystore.h" #include "knot/conf/conf.h" /*! diff --git a/src/knot/dnssec/key-events.c b/src/knot/dnssec/key-events.c index ea67e90ba0..5c7f42a3cd 100644 --- a/src/knot/dnssec/key-events.c +++ b/src/knot/dnssec/key-events.c @@ -13,7 +13,7 @@ #include "knot/dnssec/policy.h" #include "knot/dnssec/zone-keys.h" #include "knot/zone/serial.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" static bool not_removed(const knot_kasp_key_t *key, knot_time_t now) { diff --git a/src/knot/dnssec/key_records.c b/src/knot/dnssec/key_records.c index 150175b54f..547c80e36c 100644 --- a/src/knot/dnssec/key_records.c +++ b/src/knot/dnssec/key_records.c @@ -5,8 +5,8 @@ #include "knot/dnssec/key_records.h" -#include "libdnssec/error.h" -#include "libdnssec/sign.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/sign.h" #include "knot/dnssec/rrset-sign.h" #include "knot/dnssec/zone-sign.h" #include "knot/journal/serialization.h" diff --git a/src/knot/dnssec/nsec-chain.h b/src/knot/dnssec/nsec-chain.h index 9ce32e8563..8e52282b28 100644 --- a/src/knot/dnssec/nsec-chain.h +++ b/src/knot/dnssec/nsec-chain.h @@ -11,7 +11,7 @@ #include "knot/zone/contents.h" #include "knot/updates/zone-update.h" -#include "libdnssec/nsec.h" +#include "libknot/dnssec/nsec.h" /*! * \brief Parameters to be used in connect_nsec_nodes callback. diff --git a/src/knot/dnssec/nsec3-chain.h b/src/knot/dnssec/nsec3-chain.h index 0ed7a2721e..122f32c445 100644 --- a/src/knot/dnssec/nsec3-chain.h +++ b/src/knot/dnssec/nsec3-chain.h @@ -6,7 +6,7 @@ #pragma once #include -#include "libdnssec/nsec.h" +#include "libknot/dnssec/nsec.h" #include "knot/updates/changesets.h" #include "knot/updates/zone-update.h" #include "knot/zone/contents.h" diff --git a/src/knot/dnssec/rrset-sign.c b/src/knot/dnssec/rrset-sign.c index b0e6f6c340..1a470ae882 100644 --- a/src/knot/dnssec/rrset-sign.c +++ b/src/knot/dnssec/rrset-sign.c @@ -6,7 +6,7 @@ #include #include "contrib/wire_ctx.h" -#include "libdnssec/error.h" +#include "libknot/dnssec/error.h" #include "knot/dnssec/rrset-sign.h" #include "knot/dnssec/zone-sign.h" #include "knot/zone/serial.h" // DNS uint32 arithmetics diff --git a/src/knot/dnssec/rrset-sign.h b/src/knot/dnssec/rrset-sign.h index 83066b49d0..4d346a83af 100644 --- a/src/knot/dnssec/rrset-sign.h +++ b/src/knot/dnssec/rrset-sign.h @@ -5,8 +5,8 @@ #pragma once -#include "libdnssec/key.h" -#include "libdnssec/sign.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/sign.h" #include "knot/dnssec/context.h" #include "knot/dnssec/zone-keys.h" #include "libknot/rrset.h" diff --git a/src/knot/dnssec/zone-events.c b/src/knot/dnssec/zone-events.c index ad8d8754eb..d6accaf701 100644 --- a/src/knot/dnssec/zone-events.c +++ b/src/knot/dnssec/zone-events.c @@ -5,8 +5,8 @@ #include -#include "libdnssec/error.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/random.h" #include "libknot/libknot.h" #include "knot/conf/conf.h" #include "knot/common/dbus.h" diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 28fd04c04e..e13e74b8de 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -7,7 +7,7 @@ #include #include -#include "libdnssec/error.h" +#include "libknot/dnssec/error.h" #include "knot/common/log.h" #include "knot/dnssec/zone-keys.h" #include "libknot/libknot.h" diff --git a/src/knot/dnssec/zone-keys.h b/src/knot/dnssec/zone-keys.h index 9d67200431..59a8d8dcc1 100644 --- a/src/knot/dnssec/zone-keys.h +++ b/src/knot/dnssec/zone-keys.h @@ -6,8 +6,8 @@ #pragma once #include "libknot/dynarray.h" -#include "libdnssec/keystore.h" -#include "libdnssec/sign.h" +#include "libknot/dnssec/keystore.h" +#include "libknot/dnssec/sign.h" #include "knot/dnssec/kasp/kasp_zone.h" #include "knot/dnssec/kasp/policy.h" #include "knot/dnssec/context.h" diff --git a/src/knot/dnssec/zone-nsec.c b/src/knot/dnssec/zone-nsec.c index cf53cb50e7..e2ea91b528 100644 --- a/src/knot/dnssec/zone-nsec.c +++ b/src/knot/dnssec/zone-nsec.c @@ -5,7 +5,7 @@ #include -#include "libdnssec/error.h" +#include "libknot/dnssec/error.h" #include "libknot/descriptor.h" #include "libknot/rrtype/nsec3.h" #include "libknot/rrtype/soa.h" diff --git a/src/knot/dnssec/zone-sign.c b/src/knot/dnssec/zone-sign.c index 1ed5c74d3a..13f236b1c3 100644 --- a/src/knot/dnssec/zone-sign.c +++ b/src/knot/dnssec/zone-sign.c @@ -7,10 +7,10 @@ #include #include -#include "libdnssec/error.h" -#include "libdnssec/key.h" -#include "libdnssec/keytag.h" -#include "libdnssec/sign.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/keytag.h" +#include "libknot/dnssec/sign.h" #include "knot/common/log.h" #include "knot/dnssec/key-events.h" #include "knot/dnssec/key_records.h" diff --git a/src/knot/events/handlers/dnskey_sync.c b/src/knot/events/handlers/dnskey_sync.c index e10acb5b3b..6ee381f383 100644 --- a/src/knot/events/handlers/dnskey_sync.c +++ b/src/knot/events/handlers/dnskey_sync.c @@ -12,7 +12,7 @@ #include "knot/server/server.h" #include "knot/zone/serial.h" #include "knot/zone/zone.h" -#include "libdnssec/keytag.h" +#include "libknot/dnssec/keytag.h" #include "libknot/errcode.h" #define DNSKEY_SYNC_LOG(priority, zone, remote, flags, fmt, ...) \ diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index e83a219c7c..04e2c4634b 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -8,7 +8,7 @@ #include #include "contrib/mempattern.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" #include "knot/common/log.h" #include "knot/conf/conf.h" #include "knot/dnssec/zone-events.h" diff --git a/src/knot/events/handlers/update.c b/src/knot/events/handlers/update.c index c41debc447..2229c56686 100644 --- a/src/knot/events/handlers/update.c +++ b/src/knot/events/handlers/update.c @@ -15,7 +15,7 @@ #include "knot/updates/ddns.h" #include "knot/zone/digest.h" #include "knot/zone/zone.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" #include "libknot/libknot.h" #include "libknot/quic/quic_conn.h" #include "libknot/quic/quic.h" diff --git a/src/knot/modules/cookies/cookies.c b/src/knot/modules/cookies/cookies.c index ea6fe8c412..4defb7621f 100644 --- a/src/knot/modules/cookies/cookies.c +++ b/src/knot/modules/cookies/cookies.c @@ -12,7 +12,7 @@ #include "contrib/atomic.h" #include "contrib/threads.h" #include "contrib/string.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" #define BADCOOKIE_CTR_INIT 1 diff --git a/src/knot/modules/geoip/geoip.c b/src/knot/modules/geoip/geoip.c index d3911a8168..394a7638f7 100644 --- a/src/knot/modules/geoip/geoip.c +++ b/src/knot/modules/geoip/geoip.c @@ -17,7 +17,7 @@ #include "contrib/sockaddr.h" #include "contrib/string.h" #include "contrib/strtonum.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" #include "libzscanner/scanner.h" #define MOD_CONFIG_FILE "\x0B""config-file" diff --git a/src/knot/modules/onlinesign/onlinesign.c b/src/knot/modules/onlinesign/onlinesign.c index 57bf355ee2..b5d13863cb 100644 --- a/src/knot/modules/onlinesign/onlinesign.c +++ b/src/knot/modules/onlinesign/onlinesign.c @@ -8,7 +8,7 @@ #include #include "contrib/string.h" -#include "libdnssec/error.h" +#include "libknot/dnssec/error.h" #include "knot/include/module.h" #include "knot/modules/onlinesign/nsec_next.h" // Next dependencies force static module! diff --git a/src/knot/modules/rrl/functions.c b/src/knot/modules/rrl/functions.c index a2c5622bab..977b86c2ca 100644 --- a/src/knot/modules/rrl/functions.c +++ b/src/knot/modules/rrl/functions.c @@ -12,7 +12,7 @@ #include "contrib/musl/inet_ntop.h" #include "contrib/sockaddr.h" #include "contrib/time.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" // CIDR block prefix lengths for v4/v6 (hardcoded also in unit tests). #define RRL_V4_PREFIXES (uint8_t[]) { 18, 20, 24, 32 } diff --git a/src/knot/modules/rrl/kru.inc.c b/src/knot/modules/rrl/kru.inc.c index b74f4b74c0..e93704e463 100644 --- a/src/knot/modules/rrl/kru.inc.c +++ b/src/knot/modules/rrl/kru.inc.c @@ -39,8 +39,8 @@ Size (`loads_bits` = log2 length): #include "./kru.h" #include "contrib/macros.h" -#include "libdnssec/error.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/random.h" typedef uint64_t hash_t; #if USE_AES /// 4-8 rounds should be an OK choice, most likely. diff --git a/src/knot/nameserver/notify.c b/src/knot/nameserver/notify.c index f16b21a1a4..e564546e90 100644 --- a/src/knot/nameserver/notify.c +++ b/src/knot/nameserver/notify.c @@ -10,7 +10,7 @@ #include "knot/nameserver/log.h" #include "knot/nameserver/tsig_ctx.h" #include "knot/zone/serial.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" #include "libknot/libknot.h" #define NOTIFY_IN_LOG(priority, qdata, fmt...) \ diff --git a/src/knot/nameserver/process_query.c b/src/knot/nameserver/process_query.c index b574ab3598..1f82b1911d 100644 --- a/src/knot/nameserver/process_query.c +++ b/src/knot/nameserver/process_query.c @@ -5,7 +5,7 @@ #include -#include "libdnssec/tsig.h" +#include "libknot/dnssec/tsig.h" #include "knot/common/log.h" #include "knot/dnssec/rrset-sign.h" #include "knot/nameserver/process_query.h" diff --git a/src/knot/query/query.c b/src/knot/query/query.c index a7fd118c61..9e6ecab972 100644 --- a/src/knot/query/query.c +++ b/src/knot/query/query.c @@ -6,7 +6,7 @@ #include "knot/query/query.h" #include "contrib/wire_ctx.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" void query_init_pkt(knot_pkt_t *pkt) { diff --git a/src/knot/zone/adjust.c b/src/knot/zone/adjust.c index b055686cfb..221bf7499c 100644 --- a/src/knot/zone/adjust.c +++ b/src/knot/zone/adjust.c @@ -8,7 +8,7 @@ #include "knot/dnssec/zone-nsec.h" #include "knot/zone/adds_tree.h" #include "knot/zone/measure.h" -#include "libdnssec/error.h" +#include "libknot/dnssec/error.h" static bool node_non_dnssec_exists(const zone_node_t *node) { diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index b78b360174..8b08f9a498 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -28,7 +28,7 @@ #include "knot/server/server.h" #include "knot/zone/backup_dir.h" #include "knot/zone/zonefile.h" -#include "libdnssec/error.h" +#include "libknot/dnssec/error.h" // Current backup format version for output. Don't decrease it. #define BACKUP_VERSION BACKUP_FORMAT_2 // Starting with release 3.1.0. diff --git a/src/knot/zone/contents.c b/src/knot/zone/contents.c index dec7740be8..65ef61a98a 100644 --- a/src/knot/zone/contents.c +++ b/src/knot/zone/contents.c @@ -5,7 +5,7 @@ #include -#include "libdnssec/error.h" +#include "libknot/dnssec/error.h" #include "knot/zone/adds_tree.h" #include "knot/zone/adjust.h" #include "knot/zone/contents.h" diff --git a/src/knot/zone/contents.h b/src/knot/zone/contents.h index 96fa3e6d16..63590f3c78 100644 --- a/src/knot/zone/contents.h +++ b/src/knot/zone/contents.h @@ -8,7 +8,7 @@ #include #include "contrib/atomic.h" -#include "libdnssec/nsec.h" +#include "libknot/dnssec/nsec.h" #include "libknot/rrtype/nsec3param.h" #include "knot/zone/node.h" #include "knot/zone/zone-tree.h" diff --git a/src/knot/zone/digest.c b/src/knot/zone/digest.c index 5bcb46328b..9dc2a133af 100644 --- a/src/knot/zone/digest.c +++ b/src/knot/zone/digest.c @@ -9,7 +9,7 @@ #include "knot/dnssec/rrset-sign.h" #include "knot/updates/zone-update.h" #include "contrib/wire_ctx.h" -#include "libdnssec/digest.h" +#include "libknot/dnssec/digest.h" #include "libknot/libknot.h" #define DIGEST_BUF_MIN 4096 diff --git a/src/knot/zone/semantic-check.c b/src/knot/zone/semantic-check.c index f2f2732f81..beda10a17d 100644 --- a/src/knot/zone/semantic-check.c +++ b/src/knot/zone/semantic-check.c @@ -7,8 +7,8 @@ #include "knot/zone/semantic-check.h" -#include "libdnssec/error.h" -#include "libdnssec/key.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" #include "contrib/string.h" #include "libknot/libknot.h" #include "knot/dnssec/key-events.h" diff --git a/src/libknot/codes.c b/src/libknot/codes.c index 8ec8b96fb7..458e4eee61 100644 --- a/src/libknot/codes.c +++ b/src/libknot/codes.c @@ -7,7 +7,7 @@ #include "libknot/codes.h" #include "libknot/consts.h" #include "libknot/rrtype/opt.h" -#include "libdnssec/key.h" +#include "libknot/dnssec/key.h" _public_ const knot_lookup_t knot_opcode_names[] = { diff --git a/src/libknot/dnssec/binary.c b/src/libknot/dnssec/binary.c index 85f12d37f0..27c8008bad 100644 --- a/src/libknot/dnssec/binary.c +++ b/src/libknot/dnssec/binary.c @@ -7,9 +7,9 @@ #include #include "contrib/base64.h" -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/shared/shared.h" /* -- public API ----------------------------------------------------------- */ diff --git a/src/libknot/dnssec/crypto.c b/src/libknot/dnssec/crypto.c index c76fc1235a..dd5638cd6e 100644 --- a/src/libknot/dnssec/crypto.c +++ b/src/libknot/dnssec/crypto.c @@ -6,9 +6,9 @@ #include #include -#include "libdnssec/crypto.h" -#include "libdnssec/p11/p11.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/crypto.h" +#include "libknot/dnssec/p11/p11.h" +#include "libknot/dnssec/shared/shared.h" _public_ void dnssec_crypto_init(void) diff --git a/src/libknot/dnssec/digest.c b/src/libknot/dnssec/digest.c index b1f2895753..0271e79b24 100644 --- a/src/libknot/dnssec/digest.c +++ b/src/libknot/dnssec/digest.c @@ -3,12 +3,12 @@ * For more information, see */ -#include "libdnssec/digest.h" +#include "libknot/dnssec/digest.h" #include #include -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/shared/shared.h" struct dnssec_digest_ctx { gnutls_hash_hd_t gtctx; diff --git a/src/libknot/dnssec/digest.h b/src/libknot/dnssec/digest.h index 6706839159..d7cdeced6f 100644 --- a/src/libknot/dnssec/digest.h +++ b/src/libknot/dnssec/digest.h @@ -15,8 +15,8 @@ #pragma once -#include "libdnssec/binary.h" -#include "libdnssec/error.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" typedef enum { DNSSEC_DIGEST_INVALID = 0, diff --git a/src/libknot/dnssec/dnssec.h b/src/libknot/dnssec/dnssec.h index 2a40dee6e8..793cd0915b 100644 --- a/src/libknot/dnssec/dnssec.h +++ b/src/libknot/dnssec/dnssec.h @@ -11,15 +11,15 @@ #pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/crypto.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/keyid.h" +#include "libknot/dnssec/keystore.h" +#include "libknot/dnssec/keytag.h" +#include "libknot/dnssec/nsec.h" +#include "libknot/dnssec/pem.h" +#include "libknot/dnssec/random.h" +#include "libknot/dnssec/sign.h" +#include "libknot/dnssec/tsig.h" diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 8a84278c94..0b418290e0 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -5,8 +5,8 @@ #include -#include "libdnssec/error.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/shared/shared.h" typedef struct error_message_t { int code; diff --git a/src/libknot/dnssec/key.h b/src/libknot/dnssec/key.h index c7d0b5ca4e..d01343cef1 100644 --- a/src/libknot/dnssec/key.h +++ b/src/libknot/dnssec/key.h @@ -27,7 +27,7 @@ #include #include -#include +#include "libknot/dnssec/binary.h" /*! * DNSKEY algorithm numbers. diff --git a/src/libknot/dnssec/key/algorithm.c b/src/libknot/dnssec/key/algorithm.c index 75f39d0a80..f0a1379f9f 100644 --- a/src/libknot/dnssec/key/algorithm.c +++ b/src/libknot/dnssec/key/algorithm.c @@ -5,10 +5,10 @@ #include -#include "libdnssec/error.h" -#include "libdnssec/key.h" -#include "libdnssec/key/algorithm.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/key/algorithm.h" +#include "libknot/dnssec/shared/shared.h" /* -- internal ------------------------------------------------------------- */ diff --git a/src/libknot/dnssec/key/algorithm.h b/src/libknot/dnssec/key/algorithm.h index 6017727ec2..ad64820f28 100644 --- a/src/libknot/dnssec/key/algorithm.h +++ b/src/libknot/dnssec/key/algorithm.h @@ -7,7 +7,7 @@ #include -#include "libdnssec/key.h" +#include "libknot/dnssec/key.h" /*! * Convert DNSKEY algorithm identifier to GnuTLS identifier. diff --git a/src/libknot/dnssec/key/convert.c b/src/libknot/dnssec/key/convert.c index e21b582e4c..12c185b86c 100644 --- a/src/libknot/dnssec/key/convert.c +++ b/src/libknot/dnssec/key/convert.c @@ -10,14 +10,14 @@ #include #include -#include "libdnssec/shared/bignum.h" -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/key.h" -#include "libdnssec/key/algorithm.h" -#include "libdnssec/key/dnskey.h" -#include "libdnssec/shared/shared.h" -#include "libdnssec/shared/binary_wire.h" +#include "libknot/dnssec/shared/bignum.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/key/algorithm.h" +#include "libknot/dnssec/key/dnskey.h" +#include "libknot/dnssec/shared/shared.h" +#include "libknot/dnssec/shared/binary_wire.h" /* -- wrappers for GnuTLS types -------------------------------------------- */ diff --git a/src/libknot/dnssec/key/convert.h b/src/libknot/dnssec/key/convert.h index 4cf0d0a003..60e7feac39 100644 --- a/src/libknot/dnssec/key/convert.h +++ b/src/libknot/dnssec/key/convert.h @@ -7,8 +7,8 @@ #include -#include "libdnssec/binary.h" -#include "libdnssec/key.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/key.h" /*! * Encode public key into the format used in DNSKEY RDATA. diff --git a/src/libknot/dnssec/key/dnskey.c b/src/libknot/dnssec/key/dnskey.c index 5397d6db8e..dd71276477 100644 --- a/src/libknot/dnssec/key/dnskey.c +++ b/src/libknot/dnssec/key/dnskey.c @@ -3,11 +3,11 @@ * For more information, see */ -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/key/dnskey.h" -#include "libdnssec/key/convert.h" -#include "libdnssec/shared/binary_wire.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key/dnskey.h" +#include "libknot/dnssec/key/convert.h" +#include "libknot/dnssec/shared/binary_wire.h" /* -- internal API --------------------------------------------------------- */ diff --git a/src/libknot/dnssec/key/dnskey.h b/src/libknot/dnssec/key/dnskey.h index 31925dd20c..87f601b90d 100644 --- a/src/libknot/dnssec/key/dnskey.h +++ b/src/libknot/dnssec/key/dnskey.h @@ -7,8 +7,8 @@ #include -#include "libdnssec/binary.h" -#include "libdnssec/error.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" /*! * DNSKEY RDATA fields offsets. diff --git a/src/libknot/dnssec/key/ds.c b/src/libknot/dnssec/key/ds.c index 729588049d..1098cf71b1 100644 --- a/src/libknot/dnssec/key/ds.c +++ b/src/libknot/dnssec/key/ds.c @@ -3,13 +3,13 @@ * For more information, see */ -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/key.h" -#include "libdnssec/key/internal.h" -#include "libdnssec/shared/dname.h" -#include "libdnssec/shared/shared.h" -#include "libdnssec/shared/binary_wire.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/key/internal.h" +#include "libknot/dnssec/shared/dname.h" +#include "libknot/dnssec/shared/shared.h" +#include "libknot/dnssec/shared/binary_wire.h" #include #include diff --git a/src/libknot/dnssec/key/internal.h b/src/libknot/dnssec/key/internal.h index 1ddc80d015..8f69dce7be 100644 --- a/src/libknot/dnssec/key/internal.h +++ b/src/libknot/dnssec/key/internal.h @@ -8,8 +8,8 @@ #include #include -#include "libdnssec/key.h" -#include "libdnssec/shared/dname.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/shared/dname.h" /*! * DNSSEC key. diff --git a/src/libknot/dnssec/key/key.c b/src/libknot/dnssec/key/key.c index 99cf43dac3..684b5d16cb 100644 --- a/src/libknot/dnssec/key/key.c +++ b/src/libknot/dnssec/key/key.c @@ -9,18 +9,18 @@ #include #include -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/key.h" -#include "libdnssec/key/algorithm.h" -#include "libdnssec/key/convert.h" -#include "libdnssec/key/dnskey.h" -#include "libdnssec/key/internal.h" -#include "libdnssec/shared/keyid_gnutls.h" -#include "libdnssec/keystore.h" -#include "libdnssec/keytag.h" -#include "libdnssec/shared/shared.h" -#include "libdnssec/shared/binary_wire.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/key/algorithm.h" +#include "libknot/dnssec/key/convert.h" +#include "libknot/dnssec/key/dnskey.h" +#include "libknot/dnssec/key/internal.h" +#include "libknot/dnssec/shared/keyid_gnutls.h" +#include "libknot/dnssec/keystore.h" +#include "libknot/dnssec/keytag.h" +#include "libknot/dnssec/shared/shared.h" +#include "libknot/dnssec/shared/binary_wire.h" #include "contrib/wire_ctx.h" /*! diff --git a/src/libknot/dnssec/key/keytag.c b/src/libknot/dnssec/key/keytag.c index 48ecb8ec5f..aea7682644 100644 --- a/src/libknot/dnssec/key/keytag.c +++ b/src/libknot/dnssec/key/keytag.c @@ -7,10 +7,10 @@ #include #include -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/key/dnskey.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key/dnskey.h" +#include "libknot/dnssec/shared/shared.h" /*! * Compute keytag for RSA/MD5 key. diff --git a/src/libknot/dnssec/key/privkey.c b/src/libknot/dnssec/key/privkey.c index e8401ce940..a8af823214 100644 --- a/src/libknot/dnssec/key/privkey.c +++ b/src/libknot/dnssec/key/privkey.c @@ -6,15 +6,15 @@ #include #include -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/key/algorithm.h" -#include "libdnssec/key/convert.h" -#include "libdnssec/key/dnskey.h" -#include "libdnssec/key/internal.h" -#include "libdnssec/key/privkey.h" -#include "libdnssec/shared/shared.h" -#include "libdnssec/shared/binary_wire.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key/algorithm.h" +#include "libknot/dnssec/key/convert.h" +#include "libknot/dnssec/key/dnskey.h" +#include "libknot/dnssec/key/internal.h" +#include "libknot/dnssec/key/privkey.h" +#include "libknot/dnssec/shared/shared.h" +#include "libknot/dnssec/shared/binary_wire.h" /* -- internal functions --------------------------------------------------- */ diff --git a/src/libknot/dnssec/key/privkey.h b/src/libknot/dnssec/key/privkey.h index 83733ca67a..64d8b6ba7d 100644 --- a/src/libknot/dnssec/key/privkey.h +++ b/src/libknot/dnssec/key/privkey.h @@ -7,7 +7,7 @@ #include -#include "libdnssec/key.h" +#include "libknot/dnssec/key.h" /*! * Load a private key into a DNSSEC key, create a public part if necessary. diff --git a/src/libknot/dnssec/key/simple.c b/src/libknot/dnssec/key/simple.c index 0fb48fdd88..4307280b71 100644 --- a/src/libknot/dnssec/key/simple.c +++ b/src/libknot/dnssec/key/simple.c @@ -6,14 +6,14 @@ #include #include -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/key.h" -#include "libdnssec/key/dnskey.h" -#include "libdnssec/key/internal.h" -#include "libdnssec/key/privkey.h" -#include "libdnssec/pem.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/key/dnskey.h" +#include "libknot/dnssec/key/internal.h" +#include "libknot/dnssec/key/privkey.h" +#include "libknot/dnssec/pem.h" +#include "libknot/dnssec/shared/shared.h" /* -- public API ----------------------------------------------------------- */ diff --git a/src/libknot/dnssec/keyid.c b/src/libknot/dnssec/keyid.c index cb4d2679fd..4433f50889 100644 --- a/src/libknot/dnssec/keyid.c +++ b/src/libknot/dnssec/keyid.c @@ -6,9 +6,9 @@ #include #include -#include "libdnssec/error.h" -#include "libdnssec/keyid.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/keyid.h" +#include "libknot/dnssec/shared/shared.h" #include "contrib/ctype.h" #include "contrib/tolower.h" diff --git a/src/libknot/dnssec/keystore.h b/src/libknot/dnssec/keystore.h index dcebd68bce..aaca91c5dc 100644 --- a/src/libknot/dnssec/keystore.h +++ b/src/libknot/dnssec/keystore.h @@ -22,8 +22,8 @@ #pragma once -#include -#include +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/key.h" struct dnssec_keystore; diff --git a/src/libknot/dnssec/keystore/internal.h b/src/libknot/dnssec/keystore/internal.h index 7f5bc6b479..e8ba1a381a 100644 --- a/src/libknot/dnssec/keystore/internal.h +++ b/src/libknot/dnssec/keystore/internal.h @@ -8,9 +8,9 @@ #include #include -#include "libdnssec/binary.h" -#include "libdnssec/key.h" -#include "libdnssec/keystore.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/keystore.h" typedef struct keystore_functions { // construction of internal context diff --git a/src/libknot/dnssec/keystore/keystore.c b/src/libknot/dnssec/keystore/keystore.c index e93430d861..24b6307639 100644 --- a/src/libknot/dnssec/keystore/keystore.c +++ b/src/libknot/dnssec/keystore/keystore.c @@ -6,16 +6,16 @@ #include #include -#include "libdnssec/error.h" -#include "libdnssec/key.h" -#include "libdnssec/key/algorithm.h" -#include "libdnssec/key/dnskey.h" -#include "libdnssec/key/internal.h" -#include "libdnssec/key/privkey.h" -#include "libdnssec/keyid.h" -#include "libdnssec/keystore.h" -#include "libdnssec/keystore/internal.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/key/algorithm.h" +#include "libknot/dnssec/key/dnskey.h" +#include "libknot/dnssec/key/internal.h" +#include "libknot/dnssec/key/privkey.h" +#include "libknot/dnssec/keyid.h" +#include "libknot/dnssec/keystore.h" +#include "libknot/dnssec/keystore/internal.h" +#include "libknot/dnssec/shared/shared.h" /* -- internal API --------------------------------------------------------- */ diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index dc6a9e8275..4c6bcc7f04 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -7,14 +7,14 @@ #include #include "contrib/string.h" -#include "libdnssec/error.h" -#include "libdnssec/keyid.h" -#include "libdnssec/shared/keyid_gnutls.h" -#include "libdnssec/keystore.h" -#include "libdnssec/keystore/internal.h" -#include "libdnssec/p11/p11.h" -#include "libdnssec/pem.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/keyid.h" +#include "libknot/dnssec/shared/keyid_gnutls.h" +#include "libknot/dnssec/keystore.h" +#include "libknot/dnssec/keystore/internal.h" +#include "libknot/dnssec/p11/p11.h" +#include "libknot/dnssec/pem.h" +#include "libknot/dnssec/shared/shared.h" #ifdef ENABLE_PKCS11 diff --git a/src/libknot/dnssec/keystore/pkcs8.c b/src/libknot/dnssec/keystore/pkcs8.c index 7536a0162e..d7e885f0a1 100644 --- a/src/libknot/dnssec/keystore/pkcs8.c +++ b/src/libknot/dnssec/keystore/pkcs8.c @@ -12,13 +12,13 @@ #include #include "contrib/files.h" -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/keystore.h" -#include "libdnssec/keystore/internal.h" -#include "libdnssec/pem.h" -#include "libdnssec/shared/shared.h" -#include "libdnssec/shared/keyid_gnutls.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/keystore.h" +#include "libknot/dnssec/keystore/internal.h" +#include "libknot/dnssec/pem.h" +#include "libknot/dnssec/shared/shared.h" +#include "libknot/dnssec/shared/keyid_gnutls.h" #define DIR_INIT_MODE 0750 diff --git a/src/libknot/dnssec/keytag.h b/src/libknot/dnssec/keytag.h index 0fc546663b..5cd565f17a 100644 --- a/src/libknot/dnssec/keytag.h +++ b/src/libknot/dnssec/keytag.h @@ -18,7 +18,7 @@ #pragma once #include -#include +#include "libknot/dnssec/binary.h" /*! * Compute a key tag for a DNSSEC key. diff --git a/src/libknot/dnssec/nsec.h b/src/libknot/dnssec/nsec.h index d7dadaa9d3..f50b42992f 100644 --- a/src/libknot/dnssec/nsec.h +++ b/src/libknot/dnssec/nsec.h @@ -22,7 +22,7 @@ #include #include -#include +#include "libknot/dnssec/binary.h" /*! * DNSSEC NSEC3 algorithm numbers. diff --git a/src/libknot/dnssec/nsec/bitmap.c b/src/libknot/dnssec/nsec/bitmap.c index 43c000fc8f..0ab3de75a8 100644 --- a/src/libknot/dnssec/nsec/bitmap.c +++ b/src/libknot/dnssec/nsec/bitmap.c @@ -7,8 +7,8 @@ #include #include -#include "libdnssec/nsec.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/nsec.h" +#include "libknot/dnssec/shared/shared.h" #define BITMAP_WINDOW_SIZE 256 #define BITMAP_WINDOW_BYTES (BITMAP_WINDOW_SIZE/CHAR_BIT) diff --git a/src/libknot/dnssec/nsec/hash.c b/src/libknot/dnssec/nsec/hash.c index 9c93740086..a21e8d0837 100644 --- a/src/libknot/dnssec/nsec/hash.c +++ b/src/libknot/dnssec/nsec/hash.c @@ -8,9 +8,9 @@ #include #include -#include "libdnssec/error.h" -#include "libdnssec/nsec.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/nsec.h" +#include "libknot/dnssec/shared/shared.h" /*! * Compute NSEC3 hash for given data and algorithm. diff --git a/src/libknot/dnssec/nsec/nsec.c b/src/libknot/dnssec/nsec/nsec.c index fbe85ec74c..21a9a37578 100644 --- a/src/libknot/dnssec/nsec/nsec.c +++ b/src/libknot/dnssec/nsec/nsec.c @@ -3,12 +3,12 @@ * For more information, see */ -#include "libdnssec/nsec.h" -#include "libdnssec/shared/shared.h" -#include "libdnssec/shared/binary_wire.h" +#include "libknot/dnssec/nsec.h" +#include "libknot/dnssec/shared/shared.h" +#include "libknot/dnssec/shared/binary_wire.h" -#include "libdnssec/binary.h" -#include "libdnssec/error.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" /*! * Free NSEC3 parameters. diff --git a/src/libknot/dnssec/p11/p11.c b/src/libknot/dnssec/p11/p11.c index efc33b761b..75a20ec1f3 100644 --- a/src/libknot/dnssec/p11/p11.c +++ b/src/libknot/dnssec/p11/p11.c @@ -8,8 +8,8 @@ #include #include -#include "libdnssec/p11/p11.h" -#include "libdnssec/error.h" +#include "libknot/dnssec/p11/p11.h" +#include "libknot/dnssec/error.h" #ifdef ENABLE_PKCS11 diff --git a/src/libknot/dnssec/pem.c b/src/libknot/dnssec/pem.c index b0e04e2796..f273b7306a 100644 --- a/src/libknot/dnssec/pem.c +++ b/src/libknot/dnssec/pem.c @@ -8,11 +8,11 @@ #include #include -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/key.h" -#include "libdnssec/pem.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/pem.h" +#include "libknot/dnssec/shared/shared.h" _public_ int dnssec_pem_to_x509(const dnssec_binary_t *pem, gnutls_x509_privkey_t *key) diff --git a/src/libknot/dnssec/pem.h b/src/libknot/dnssec/pem.h index 25cb9751bc..3cb0cc3282 100644 --- a/src/libknot/dnssec/pem.h +++ b/src/libknot/dnssec/pem.h @@ -17,7 +17,7 @@ #include -#include +#include "libknot/dnssec/binary.h" /*! * Create GnuTLS X.509 private key from unencrypted PEM data. diff --git a/src/libknot/dnssec/random.c b/src/libknot/dnssec/random.c index afcb57c74f..82f752d677 100644 --- a/src/libknot/dnssec/random.c +++ b/src/libknot/dnssec/random.c @@ -9,9 +9,9 @@ #include #include -#include "libdnssec/error.h" -#include "libdnssec/random.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/random.h" +#include "libknot/dnssec/shared/shared.h" /* -- public API ----------------------------------------------------------- */ diff --git a/src/libknot/dnssec/random.h b/src/libknot/dnssec/random.h index 997fac7dff..632ce87802 100644 --- a/src/libknot/dnssec/random.h +++ b/src/libknot/dnssec/random.h @@ -18,7 +18,7 @@ #pragma once #include -#include +#include "libknot/dnssec/binary.h" /*! * Fill a buffer with pseudo-random data. diff --git a/src/libknot/dnssec/sample_keys.h b/src/libknot/dnssec/sample_keys.h index 56d771d9e6..7a8fde5659 100644 --- a/src/libknot/dnssec/sample_keys.h +++ b/src/libknot/dnssec/sample_keys.h @@ -5,7 +5,7 @@ #pragma once -#include "libdnssec/binary.h" +#include "libknot/dnssec/binary.h" typedef struct key_parameters { // DNSSEC fields diff --git a/src/libknot/dnssec/shared/bignum.c b/src/libknot/dnssec/shared/bignum.c index 2770220b7f..67503e8a46 100644 --- a/src/libknot/dnssec/shared/bignum.c +++ b/src/libknot/dnssec/shared/bignum.c @@ -6,7 +6,7 @@ #include #include -#include "libdnssec/shared/bignum.h" +#include "libknot/dnssec/shared/bignum.h" static void skip_leading_zeroes(dnssec_binary_t *value) { diff --git a/src/libknot/dnssec/shared/bignum.h b/src/libknot/dnssec/shared/bignum.h index 641e6afa33..d2f1ba4cd3 100644 --- a/src/libknot/dnssec/shared/bignum.h +++ b/src/libknot/dnssec/shared/bignum.h @@ -7,7 +7,7 @@ #include -#include "libdnssec/binary.h" +#include "libknot/dnssec/binary.h" #include "contrib/wire_ctx.h" /*! diff --git a/src/libknot/dnssec/shared/binary_wire.h b/src/libknot/dnssec/shared/binary_wire.h index f74cc584f0..fbc13f026d 100644 --- a/src/libknot/dnssec/shared/binary_wire.h +++ b/src/libknot/dnssec/shared/binary_wire.h @@ -8,7 +8,7 @@ #include #include "contrib/wire_ctx.h" -#include "libdnssec/binary.h" +#include "libknot/dnssec/binary.h" static inline wire_ctx_t binary_init(const dnssec_binary_t *binary) { diff --git a/src/libknot/dnssec/shared/dname.c b/src/libknot/dnssec/shared/dname.c index 87436bab13..c50a4beeec 100644 --- a/src/libknot/dnssec/shared/dname.c +++ b/src/libknot/dnssec/shared/dname.c @@ -9,8 +9,8 @@ #include #include -#include "libdnssec/shared/dname.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/shared/dname.h" +#include "libknot/dnssec/shared/shared.h" #include "contrib/tolower.h" /*! diff --git a/src/libknot/dnssec/shared/keyid_gnutls.c b/src/libknot/dnssec/shared/keyid_gnutls.c index 06793bd5bb..563989bc67 100644 --- a/src/libknot/dnssec/shared/keyid_gnutls.c +++ b/src/libknot/dnssec/shared/keyid_gnutls.c @@ -10,11 +10,11 @@ #include #include "contrib/string.h" -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/keyid.h" -#include "libdnssec/shared/keyid_gnutls.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/keyid.h" +#include "libknot/dnssec/shared/keyid_gnutls.h" +#include "libknot/dnssec/shared/shared.h" /*! * Get binary key ID from a key (public or private). diff --git a/src/libknot/dnssec/shared/keyid_gnutls.h b/src/libknot/dnssec/shared/keyid_gnutls.h index c75a3b10ef..ba0c1da29d 100644 --- a/src/libknot/dnssec/shared/keyid_gnutls.h +++ b/src/libknot/dnssec/shared/keyid_gnutls.h @@ -8,7 +8,7 @@ #include #include -#include "libdnssec/binary.h" +#include "libknot/dnssec/binary.h" int keyid_x509(gnutls_x509_privkey_t key, dnssec_binary_t *id); diff --git a/src/libknot/dnssec/shared/shared.h b/src/libknot/dnssec/shared/shared.h index 726dd9d011..fbf56d5e63 100644 --- a/src/libknot/dnssec/shared/shared.h +++ b/src/libknot/dnssec/shared/shared.h @@ -17,7 +17,7 @@ #include #include -#include "libdnssec/binary.h" +#include "libknot/dnssec/binary.h" #include "libknot/attribute.h" /*! diff --git a/src/libknot/dnssec/sign.h b/src/libknot/dnssec/sign.h index 26ffceee1c..f7d7279aea 100644 --- a/src/libknot/dnssec/sign.h +++ b/src/libknot/dnssec/sign.h @@ -20,8 +20,8 @@ #include #include -#include -#include +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/key.h" struct dnssec_sign_ctx; diff --git a/src/libknot/dnssec/sign/der.c b/src/libknot/dnssec/sign/der.c index 9fdf58c860..4c00742ede 100644 --- a/src/libknot/dnssec/sign/der.c +++ b/src/libknot/dnssec/sign/der.c @@ -5,11 +5,11 @@ #include -#include "libdnssec/shared/bignum.h" -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/sign/der.h" -#include "libdnssec/shared/binary_wire.h" +#include "libknot/dnssec/shared/bignum.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/sign/der.h" +#include "libknot/dnssec/shared/binary_wire.h" /* * In fact, this is a very tiny subset of ASN.1 encoding format implementation, diff --git a/src/libknot/dnssec/sign/der.h b/src/libknot/dnssec/sign/der.h index b5e7aa46d3..6adb566f31 100644 --- a/src/libknot/dnssec/sign/der.h +++ b/src/libknot/dnssec/sign/der.h @@ -5,7 +5,7 @@ #pragma once -#include "libdnssec/binary.h" +#include "libknot/dnssec/binary.h" /* * The ECDSA signatures in DNSSEC are encoded differently than in X.509 diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index 8ee70ce18b..0c33233cda 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -11,14 +11,14 @@ #include "contrib/macros.h" #include "contrib/vpool/vpool.h" -#include "libdnssec/shared/bignum.h" -#include "libdnssec/error.h" -#include "libdnssec/key.h" -#include "libdnssec/key/internal.h" -#include "libdnssec/shared/shared.h" -#include "libdnssec/sign.h" -#include "libdnssec/sign/der.h" -#include "libdnssec/shared/binary_wire.h" +#include "libknot/dnssec/shared/bignum.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/key/internal.h" +#include "libknot/dnssec/shared/shared.h" +#include "libknot/dnssec/sign.h" +#include "libknot/dnssec/sign/der.h" +#include "libknot/dnssec/shared/binary_wire.h" /*! * Signature format conversion callback. diff --git a/src/libknot/dnssec/tsig.c b/src/libknot/dnssec/tsig.c index c1b6330911..4cda99bb10 100644 --- a/src/libknot/dnssec/tsig.c +++ b/src/libknot/dnssec/tsig.c @@ -11,10 +11,10 @@ #include #include -#include "libdnssec/shared/dname.h" -#include "libdnssec/error.h" -#include "libdnssec/shared/shared.h" -#include "libdnssec/tsig.h" +#include "libknot/dnssec/shared/dname.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/shared/shared.h" +#include "libknot/dnssec/tsig.h" struct dnssec_tsig_ctx { gnutls_mac_algorithm_t algorithm; diff --git a/src/libknot/dnssec/tsig.h b/src/libknot/dnssec/tsig.h index 5170545ba4..debf62268f 100644 --- a/src/libknot/dnssec/tsig.h +++ b/src/libknot/dnssec/tsig.h @@ -17,7 +17,7 @@ #include -#include +#include "libknot/dnssec/binary.h" /*! * TSIG algorithms. diff --git a/src/libknot/error.c b/src/libknot/error.c index 37f3a1c8fe..9b29578563 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -11,7 +11,7 @@ #include "libknot/attribute.h" #include "libknot/error.h" -#include "libdnssec/error.h" +#include "libknot/dnssec/error.h" struct error { int code; diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c index 6cefb1084d..3a6a6635d4 100644 --- a/src/libknot/quic/quic.c +++ b/src/libknot/quic/quic.c @@ -24,8 +24,8 @@ #include "contrib/sockaddr.h" #include "contrib/ucw/lists.h" #include "libknot/endian.h" -#include "libdnssec/error.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/random.h" #include "libknot/attribute.h" #include "libknot/endian.h" #include "libknot/error.h" diff --git a/src/libknot/quic/quic_conn.c b/src/libknot/quic/quic_conn.c index 1249442388..94948f2c44 100644 --- a/src/libknot/quic/quic_conn.c +++ b/src/libknot/quic/quic_conn.c @@ -15,7 +15,7 @@ #include "contrib/openbsd/siphash.h" #include "contrib/ucw/heap.h" #include "contrib/ucw/lists.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" #include "libknot/attribute.h" #include "libknot/error.h" #include "libknot/quic/tls_common.h" diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c index 58a3d98f60..ea06cf8b3f 100644 --- a/src/libknot/rrset-dump.c +++ b/src/libknot/rrset-dump.c @@ -14,9 +14,9 @@ #include #include -#include "libdnssec/binary.h" -#include "libdnssec/key.h" -#include "libdnssec/keytag.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/keytag.h" #include "libknot/attribute.h" #include "libknot/rrset-dump.h" #include "libknot/codes.h" diff --git a/src/libknot/rrtype/tsig.c b/src/libknot/rrtype/tsig.c index fe36ec61c4..ee59b7c353 100644 --- a/src/libknot/rrtype/tsig.c +++ b/src/libknot/rrtype/tsig.c @@ -10,7 +10,7 @@ #include #include -#include "libdnssec/tsig.h" +#include "libknot/dnssec/tsig.h" #include "libknot/attribute.h" #include "libknot/rrtype/tsig.h" #include "libknot/consts.h" diff --git a/src/libknot/rrtype/tsig.h b/src/libknot/rrtype/tsig.h index 08a165c2c3..5b55c6f793 100644 --- a/src/libknot/rrtype/tsig.h +++ b/src/libknot/rrtype/tsig.h @@ -16,8 +16,8 @@ #include -#include "libdnssec/binary.h" -#include "libdnssec/tsig.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/tsig.h" #include "libknot/consts.h" #include "libknot/rrset.h" #include "libknot/tsig.h" diff --git a/src/libknot/tsig-op.c b/src/libknot/tsig-op.c index 455363aa98..cdd0c5c55f 100644 --- a/src/libknot/tsig-op.c +++ b/src/libknot/tsig-op.c @@ -8,8 +8,8 @@ #include #include -#include "libdnssec/error.h" -#include "libdnssec/tsig.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/tsig.h" #include "libknot/attribute.h" #include "libknot/tsig-op.h" #include "libknot/errcode.h" diff --git a/src/libknot/tsig.c b/src/libknot/tsig.c index 660db1760f..f8d3ddfe44 100644 --- a/src/libknot/tsig.c +++ b/src/libknot/tsig.c @@ -8,7 +8,7 @@ #include "contrib/getline.h" #include "contrib/string.h" -#include "libdnssec/error.h" +#include "libknot/dnssec/error.h" #include "libknot/attribute.h" #include "libknot/errcode.h" #include "libknot/tsig.h" diff --git a/src/libknot/tsig.h b/src/libknot/tsig.h index 082f6b0da7..20fed90b34 100644 --- a/src/libknot/tsig.h +++ b/src/libknot/tsig.h @@ -15,7 +15,7 @@ #pragma once #include "libknot/dname.h" -#include "libdnssec/tsig.h" +#include "libknot/dnssec/tsig.h" /*! * \brief TSIG key. diff --git a/src/libknot/xdp/msg_init.h b/src/libknot/xdp/msg_init.h index d4db446b38..eff1b7fcbc 100644 --- a/src/libknot/xdp/msg_init.h +++ b/src/libknot/xdp/msg_init.h @@ -10,7 +10,7 @@ #include "libknot/xdp/msg.h" #include "libknot/xdp/tcp.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" inline static bool empty_msg(const knot_xdp_msg_t *msg) { diff --git a/src/libknot/xdp/tcp.c b/src/libknot/xdp/tcp.c index 117dbee690..889703a8d8 100644 --- a/src/libknot/xdp/tcp.c +++ b/src/libknot/xdp/tcp.c @@ -13,7 +13,7 @@ #include "libknot/xdp/tcp_iobuf.h" #include "libknot/attribute.h" #include "libknot/error.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" #include "contrib/macros.h" #include "contrib/openbsd/siphash.h" #include "contrib/ucw/lists.h" diff --git a/src/redis/libs.h b/src/redis/libs.h index 7ce3a655f3..a42e9a56db 100644 --- a/src/redis/libs.h +++ b/src/redis/libs.h @@ -19,7 +19,7 @@ #include "contrib/string.c" #include "contrib/time.c" #include "contrib/ucw/mempool.c" -#include "libdnssec/key/keytag.c" +#include "libknot/dnssec/key/keytag.c" #include "libknot/codes.c" #include "libknot/descriptor.c" #include "libknot/dname.c" diff --git a/src/utils/common/exec.c b/src/utils/common/exec.c index 609f95c997..23483cf92c 100644 --- a/src/utils/common/exec.c +++ b/src/utils/common/exec.c @@ -7,7 +7,7 @@ #include #include -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" #include "utils/common/exec.h" #include "utils/common/msg.h" #include "utils/common/netio.h" diff --git a/src/utils/common/quic.c b/src/utils/common/quic.c index d4dd2c2baf..487f0b0c5e 100644 --- a/src/utils/common/quic.c +++ b/src/utils/common/quic.c @@ -40,8 +40,8 @@ void quic_params_clean(quic_params_t *params) #include #include "contrib/macros.h" -#include "libdnssec/error.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/random.h" #include "libknot/xdp/tcp_iobuf.h" #include "utils/common/params.h" diff --git a/src/utils/kdig/kdig_main.c b/src/utils/kdig/kdig_main.c index d42de7ca9e..62a99db0d6 100644 --- a/src/utils/kdig/kdig_main.c +++ b/src/utils/kdig/kdig_main.c @@ -5,7 +5,7 @@ #include -#include "libdnssec/crypto.h" +#include "libknot/dnssec/crypto.h" #include "utils/kdig/kdig_params.h" #include "utils/kdig/kdig_exec.h" #include "libknot/libknot.h" diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index 34cfc559e4..5b7b83e53a 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -23,8 +23,8 @@ #include "contrib/strtonum.h" #include "contrib/time.h" #include "contrib/ucw/lists.h" -#include "libdnssec/error.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/random.h" #define PROGRAM_NAME "kdig" diff --git a/src/utils/keymgr/bind_privkey.c b/src/utils/keymgr/bind_privkey.c index fe854f052c..104cf7b81b 100644 --- a/src/utils/keymgr/bind_privkey.c +++ b/src/utils/keymgr/bind_privkey.c @@ -7,10 +7,10 @@ #include "contrib/ctype.h" #include "contrib/strtonum.h" -#include "libdnssec/binary.h" -#include "libdnssec/error.h" -#include "libdnssec/pem.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/pem.h" +#include "libknot/dnssec/shared/shared.h" #include "utils/keymgr/bind_privkey.h" /* -- private key params conversion ---------------------------------------- */ diff --git a/src/utils/keymgr/bind_privkey.h b/src/utils/keymgr/bind_privkey.h index b7d8e5e0b9..014b38c2b5 100644 --- a/src/utils/keymgr/bind_privkey.h +++ b/src/utils/keymgr/bind_privkey.h @@ -8,7 +8,7 @@ #include #include -#include "libdnssec/binary.h" +#include "libknot/dnssec/binary.h" #include "knot/dnssec/kasp/policy.h" /*! diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index f60e497a18..cc3600050a 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -21,9 +21,9 @@ #include "contrib/strtonum.h" #include "contrib/tolower.h" #include "contrib/wire_ctx.h" -#include "libdnssec/error.h" -#include "libdnssec/keyid.h" -#include "libdnssec/shared/shared.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/keyid.h" +#include "libknot/dnssec/shared/shared.h" #include "knot/dnssec/kasp/policy.h" #include "knot/dnssec/key-events.h" #include "knot/dnssec/rrset-sign.h" diff --git a/src/utils/keymgr/keystore.c b/src/utils/keymgr/keystore.c index 06f841dffb..d283ec4c95 100644 --- a/src/utils/keymgr/keystore.c +++ b/src/utils/keymgr/keystore.c @@ -10,12 +10,12 @@ #include "contrib/color.h" #include "contrib/spinlock.h" #include "contrib/time.h" -#include "libdnssec/error.h" -#include "libdnssec/key/algorithm.h" -#include "libdnssec/key/privkey.h" -#include "libdnssec/random.h" -#include "libdnssec/sample_keys.h" -#include "libdnssec/sign.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key/algorithm.h" +#include "libknot/dnssec/key/privkey.h" +#include "libknot/dnssec/random.h" +#include "libknot/dnssec/sample_keys.h" +#include "libknot/dnssec/sign.h" #include "libknot/errcode.h" #include "knot/conf/conf.h" #include "knot/dnssec/kasp/kasp_zone.h" diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c index 9bdf0b4f24..dad690d926 100644 --- a/src/utils/keymgr/main.c +++ b/src/utils/keymgr/main.c @@ -10,7 +10,7 @@ #include "contrib/strtonum.h" #include "knot/dnssec/zone-keys.h" -#include "libdnssec/crypto.h" +#include "libknot/dnssec/crypto.h" #include "libknot/libknot.h" #include "utils/common/msg.h" #include "utils/common/params.h" diff --git a/src/utils/khost/khost_main.c b/src/utils/khost/khost_main.c index 0a220c6222..253e395832 100644 --- a/src/utils/khost/khost_main.c +++ b/src/utils/khost/khost_main.c @@ -5,7 +5,7 @@ #include -#include "libdnssec/crypto.h" +#include "libknot/dnssec/crypto.h" #include "utils/khost/khost_params.h" #include "utils/kdig/kdig_exec.h" #include "libknot/libknot.h" diff --git a/src/utils/knotd/main.c b/src/utils/knotd/main.c index 4c10e4add8..016089b48d 100644 --- a/src/utils/knotd/main.c +++ b/src/utils/knotd/main.c @@ -19,7 +19,7 @@ #include #endif -#include "libdnssec/crypto.h" +#include "libknot/dnssec/crypto.h" #include "libknot/libknot.h" #include "contrib/strtonum.h" #include "contrib/threads.h" diff --git a/src/utils/knsec3hash/knsec3hash.c b/src/utils/knsec3hash/knsec3hash.c index d196cf912c..9fa0abc5a7 100644 --- a/src/utils/knsec3hash/knsec3hash.c +++ b/src/utils/knsec3hash/knsec3hash.c @@ -12,8 +12,8 @@ #include "contrib/base32hex.h" #include "contrib/string.h" #include "contrib/strtonum.h" -#include "libdnssec/error.h" -#include "libdnssec/nsec.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/nsec.h" #include "libknot/libknot.h" #include "utils/common/msg.h" #include "utils/common/params.h" diff --git a/src/utils/knsupdate/knsupdate_exec.c b/src/utils/knsupdate/knsupdate_exec.c index 8ca0e69c60..24b40f19d4 100644 --- a/src/utils/knsupdate/knsupdate_exec.c +++ b/src/utils/knsupdate/knsupdate_exec.c @@ -10,7 +10,7 @@ #include #include -#include "libdnssec/random.h" +#include "libknot/dnssec/random.h" #include "utils/knsupdate/knsupdate_exec.h" #include "utils/knsupdate/knsupdate_interactive.h" #include "utils/common/exec.h" diff --git a/src/utils/knsupdate/knsupdate_main.c b/src/utils/knsupdate/knsupdate_main.c index ec49a94425..0d8551686b 100644 --- a/src/utils/knsupdate/knsupdate_main.c +++ b/src/utils/knsupdate/knsupdate_main.c @@ -5,7 +5,7 @@ #include -#include "libdnssec/crypto.h" +#include "libknot/dnssec/crypto.h" #include "utils/knsupdate/knsupdate_exec.h" #include "utils/knsupdate/knsupdate_params.h" #include "libknot/libknot.h" diff --git a/tests/contrib/test_strtonum.c b/tests/contrib/test_strtonum.c index 2946830639..3760317b39 100644 --- a/tests/contrib/test_strtonum.c +++ b/tests/contrib/test_strtonum.c @@ -9,7 +9,7 @@ #include #include "contrib/strtonum.h" -#include "libdnssec/error.h" +#include "libknot/dnssec/error.h" #include "libknot/attribute.h" static void test_u8(const char *in, uint8_t expected, int errcode) diff --git a/tests/libdnssec/test_key.c b/tests/libdnssec/test_key.c index a4d36999b8..1bb840391d 100644 --- a/tests/libdnssec/test_key.c +++ b/tests/libdnssec/test_key.c @@ -11,7 +11,7 @@ #include "error.h" #include "key.h" -#include "libdnssec/sample_keys.h" +#include "libknot/dnssec/sample_keys.h" #define check_attr_scalar(key, type, name, def_val, set_val) { \ type value = dnssec_key_get_##name(key); \ diff --git a/tests/libdnssec/test_key_ds.c b/tests/libdnssec/test_key_ds.c index a19419a6d0..15df6f094b 100644 --- a/tests/libdnssec/test_key_ds.c +++ b/tests/libdnssec/test_key_ds.c @@ -8,10 +8,10 @@ #include #include -#include "libdnssec/crypto.h" -#include "libdnssec/error.h" -#include "libdnssec/key.h" -#include "libdnssec/sample_keys.h" +#include "libknot/dnssec/crypto.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/sample_keys.h" static void test_key(const char *name, const struct key_parameters *params) { diff --git a/tests/libdnssec/test_keystore_pkcs11.c b/tests/libdnssec/test_keystore_pkcs11.c index cd3e756c44..4a862a87df 100644 --- a/tests/libdnssec/test_keystore_pkcs11.c +++ b/tests/libdnssec/test_keystore_pkcs11.c @@ -14,11 +14,11 @@ #include #include -#include "libdnssec/crypto.h" -#include "libdnssec/error.h" -#include "libdnssec/keystore.h" -#include "libdnssec/sample_keys.h" -#include "libdnssec/sign.h" +#include "libknot/dnssec/crypto.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/keystore.h" +#include "libknot/dnssec/sample_keys.h" +#include "libknot/dnssec/sign.h" #define ENV_SOFTHSM_DSO "KNOT_SOFTHSM2_DSO" #define ENV_SOFTHSM_UTIL "KNOT_SOFTHSM2_UTIL" diff --git a/tests/libdnssec/test_sign.c b/tests/libdnssec/test_sign.c index 7052246698..622ebd95c1 100644 --- a/tests/libdnssec/test_sign.c +++ b/tests/libdnssec/test_sign.c @@ -12,7 +12,7 @@ #include "key.h" #include "sign.h" -#include "libdnssec/sample_keys.h" +#include "libknot/dnssec/sample_keys.h" static const dnssec_binary_t input_data = { .size = 25, diff --git a/tests/modules/test_rrl.c b/tests/modules/test_rrl.c index cc74350ef1..18be3becff 100644 --- a/tests/modules/test_rrl.c +++ b/tests/modules/test_rrl.c @@ -9,8 +9,8 @@ #include #include -#include "libdnssec/crypto.h" -#include "libdnssec/random.h" +#include "libknot/dnssec/crypto.h" +#include "libknot/dnssec/random.h" #include "libknot/libknot.h" #include "contrib/openbsd/siphash.h" #include "contrib/sockaddr.h" From 9ef76b2a1c2fe055bf879f90e904398271aa76a4 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Oct 2025 13:15:02 +0200 Subject: [PATCH 167/675] tests: move libdnssec tests to libknot --- Knot.files | 34 +++++++-------- Knot.includes | 1 - tests/Makefile.am | 41 ++++++++----------- .../test_dnssec_binary.c} | 0 .../test_dnssec_crypto.c} | 0 .../test_key.c => libknot/test_dnssec_key.c} | 0 .../test_dnssec_key_algorithm.c} | 0 .../test_dnssec_key_ds.c} | 0 .../test_dnssec_keyid.c} | 0 .../test_dnssec_keystore_pkcs11.c} | 0 .../test_dnssec_keystore_pkcs8.c} | 0 .../test_dnssec_keytag.c} | 0 .../test_dnssec_nsec_bitmap.c} | 0 .../test_dnssec_nsec_hash.c} | 0 .../test_dnssec_random.c} | 0 .../test_dnssec_shared_bignum.c} | 0 .../test_dnssec_shared_dname.c} | 0 .../test_dnssec_sign.c} | 0 .../test_dnssec_sign_der.c} | 0 .../test_dnssec_tsig.c} | 0 20 files changed, 35 insertions(+), 41 deletions(-) rename tests/{libdnssec/test_binary.c => libknot/test_dnssec_binary.c} (100%) rename tests/{libdnssec/test_crypto.c => libknot/test_dnssec_crypto.c} (100%) rename tests/{libdnssec/test_key.c => libknot/test_dnssec_key.c} (100%) rename tests/{libdnssec/test_key_algorithm.c => libknot/test_dnssec_key_algorithm.c} (100%) rename tests/{libdnssec/test_key_ds.c => libknot/test_dnssec_key_ds.c} (100%) rename tests/{libdnssec/test_keyid.c => libknot/test_dnssec_keyid.c} (100%) rename tests/{libdnssec/test_keystore_pkcs11.c => libknot/test_dnssec_keystore_pkcs11.c} (100%) rename tests/{libdnssec/test_keystore_pkcs8.c => libknot/test_dnssec_keystore_pkcs8.c} (100%) rename tests/{libdnssec/test_keytag.c => libknot/test_dnssec_keytag.c} (100%) rename tests/{libdnssec/test_nsec_bitmap.c => libknot/test_dnssec_nsec_bitmap.c} (100%) rename tests/{libdnssec/test_nsec_hash.c => libknot/test_dnssec_nsec_hash.c} (100%) rename tests/{libdnssec/test_random.c => libknot/test_dnssec_random.c} (100%) rename tests/{libdnssec/test_shared_bignum.c => libknot/test_dnssec_shared_bignum.c} (100%) rename tests/{libdnssec/test_shared_dname.c => libknot/test_dnssec_shared_dname.c} (100%) rename tests/{libdnssec/test_sign.c => libknot/test_dnssec_sign.c} (100%) rename tests/{libdnssec/test_sign_der.c => libknot/test_dnssec_sign_der.c} (100%) rename tests/{libdnssec/test_tsig.c => libknot/test_dnssec_tsig.c} (100%) diff --git a/Knot.files b/Knot.files index f8db874432..355f5947f7 100644 --- a/Knot.files +++ b/Knot.files @@ -718,28 +718,28 @@ tests/knot/test_zone_events.c tests/knot/test_zone_serial.c tests/knot/test_zone_timers.c tests/knot/test_zonedb.c -tests/libdnssec/test_binary.c -tests/libdnssec/test_crypto.c -tests/libdnssec/test_key.c -tests/libdnssec/test_key_algorithm.c -tests/libdnssec/test_key_ds.c -tests/libdnssec/test_keyid.c -tests/libdnssec/test_keystore_pkcs11.c -tests/libdnssec/test_keystore_pkcs8.c -tests/libdnssec/test_keytag.c -tests/libdnssec/test_nsec_bitmap.c -tests/libdnssec/test_nsec_hash.c -tests/libdnssec/test_random.c -tests/libdnssec/test_shared_bignum.c -tests/libdnssec/test_shared_dname.c -tests/libdnssec/test_sign.c -tests/libdnssec/test_sign_der.c -tests/libdnssec/test_tsig.c tests/libknot/test_control.c tests/libknot/test_cookies.c tests/libknot/test_db.c tests/libknot/test_descriptor.c tests/libknot/test_dname.c +tests/libknot/test_dnssec_binary.c +tests/libknot/test_dnssec_crypto.c +tests/libknot/test_dnssec_key.c +tests/libknot/test_dnssec_key_algorithm.c +tests/libknot/test_dnssec_key_ds.c +tests/libknot/test_dnssec_keyid.c +tests/libknot/test_dnssec_keystore_pkcs11.c +tests/libknot/test_dnssec_keystore_pkcs8.c +tests/libknot/test_dnssec_keytag.c +tests/libknot/test_dnssec_nsec_bitmap.c +tests/libknot/test_dnssec_nsec_hash.c +tests/libknot/test_dnssec_random.c +tests/libknot/test_dnssec_shared_bignum.c +tests/libknot/test_dnssec_shared_dname.c +tests/libknot/test_dnssec_sign.c +tests/libknot/test_dnssec_sign_der.c +tests/libknot/test_dnssec_tsig.c tests/libknot/test_dynarray.c tests/libknot/test_edns.c tests/libknot/test_edns_ecs.c diff --git a/Knot.includes b/Knot.includes index c446244618..a7b21fe3d3 100644 --- a/Knot.includes +++ b/Knot.includes @@ -80,7 +80,6 @@ tests-fuzz/check tests-fuzz/knotd_wrap tests/knot tests/knot/semantic_check_data -tests/libdnssec tests/libknot tests/libzscanner tests/libzscanner/data diff --git a/tests/Makefile.am b/tests/Makefile.am index 258ef902a5..8e1d10cf2c 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,8 +1,6 @@ AM_CPPFLAGS = \ -include $(top_builddir)/src/config.h \ -I$(top_srcdir)/src \ - -I$(top_srcdir)/src/libdnssec \ - -I$(top_srcdir)/src/libdnssec/shared \ $(gnutls_CFLAGS) \ $(libkqueue_CFLAGS) \ $(lmdb_CFLAGS) @@ -21,7 +19,6 @@ endif HAVE_DAEMON LDADD += \ $(top_builddir)/src/libknot.la \ - $(top_builddir)/src/libdnssec.la \ $(top_builddir)/src/libcontrib.la \ $(top_builddir)/src/libzscanner.la \ $(gnutls_LIBS) \ @@ -66,25 +63,6 @@ check_PROGRAMS = \ contrib/test_toeplitz \ contrib/test_wire_ctx -check_PROGRAMS += \ - libdnssec/test_binary \ - libdnssec/test_crypto \ - libdnssec/test_key \ - libdnssec/test_key_algorithm \ - libdnssec/test_key_ds \ - libdnssec/test_keyid \ - libdnssec/test_keystore_pkcs11 \ - libdnssec/test_keystore_pkcs8 \ - libdnssec/test_keytag \ - libdnssec/test_nsec_bitmap \ - libdnssec/test_nsec_hash \ - libdnssec/test_random \ - libdnssec/test_sign \ - libdnssec/test_sign_der \ - libdnssec/test_shared_bignum \ - libdnssec/test_shared_dname \ - libdnssec/test_tsig - if HAVE_DAEMON check_PROGRAMS += \ contrib/test_atomic \ @@ -138,6 +116,23 @@ knot_test_process_query_SOURCES = \ endif HAVE_DAEMON check_PROGRAMS += \ + libknot/test_dnssec_binary \ + libknot/test_dnssec_crypto \ + libknot/test_dnssec_key \ + libknot/test_dnssec_key_algorithm \ + libknot/test_dnssec_key_ds \ + libknot/test_dnssec_keyid \ + libknot/test_dnssec_keystore_pkcs11 \ + libknot/test_dnssec_keystore_pkcs8 \ + libknot/test_dnssec_keytag \ + libknot/test_dnssec_nsec_bitmap \ + libknot/test_dnssec_nsec_hash \ + libknot/test_dnssec_random \ + libknot/test_dnssec_sign \ + libknot/test_dnssec_sign_der \ + libknot/test_dnssec_shared_bignum \ + libknot/test_dnssec_shared_dname \ + libknot/test_dnssec_tsig \ libknot/test_control \ libknot/test_cookies \ libknot/test_db \ @@ -193,7 +188,7 @@ endif endif endif HAVE_DAEMON -libdnssec_test_keystore_pkcs11_CPPFLAGS = \ +libknot_test_dnssec_keystore_pkcs11_CPPFLAGS = \ $(AM_CPPFLAGS) \ -DLIBDIR='"$(libdir)"' diff --git a/tests/libdnssec/test_binary.c b/tests/libknot/test_dnssec_binary.c similarity index 100% rename from tests/libdnssec/test_binary.c rename to tests/libknot/test_dnssec_binary.c diff --git a/tests/libdnssec/test_crypto.c b/tests/libknot/test_dnssec_crypto.c similarity index 100% rename from tests/libdnssec/test_crypto.c rename to tests/libknot/test_dnssec_crypto.c diff --git a/tests/libdnssec/test_key.c b/tests/libknot/test_dnssec_key.c similarity index 100% rename from tests/libdnssec/test_key.c rename to tests/libknot/test_dnssec_key.c diff --git a/tests/libdnssec/test_key_algorithm.c b/tests/libknot/test_dnssec_key_algorithm.c similarity index 100% rename from tests/libdnssec/test_key_algorithm.c rename to tests/libknot/test_dnssec_key_algorithm.c diff --git a/tests/libdnssec/test_key_ds.c b/tests/libknot/test_dnssec_key_ds.c similarity index 100% rename from tests/libdnssec/test_key_ds.c rename to tests/libknot/test_dnssec_key_ds.c diff --git a/tests/libdnssec/test_keyid.c b/tests/libknot/test_dnssec_keyid.c similarity index 100% rename from tests/libdnssec/test_keyid.c rename to tests/libknot/test_dnssec_keyid.c diff --git a/tests/libdnssec/test_keystore_pkcs11.c b/tests/libknot/test_dnssec_keystore_pkcs11.c similarity index 100% rename from tests/libdnssec/test_keystore_pkcs11.c rename to tests/libknot/test_dnssec_keystore_pkcs11.c diff --git a/tests/libdnssec/test_keystore_pkcs8.c b/tests/libknot/test_dnssec_keystore_pkcs8.c similarity index 100% rename from tests/libdnssec/test_keystore_pkcs8.c rename to tests/libknot/test_dnssec_keystore_pkcs8.c diff --git a/tests/libdnssec/test_keytag.c b/tests/libknot/test_dnssec_keytag.c similarity index 100% rename from tests/libdnssec/test_keytag.c rename to tests/libknot/test_dnssec_keytag.c diff --git a/tests/libdnssec/test_nsec_bitmap.c b/tests/libknot/test_dnssec_nsec_bitmap.c similarity index 100% rename from tests/libdnssec/test_nsec_bitmap.c rename to tests/libknot/test_dnssec_nsec_bitmap.c diff --git a/tests/libdnssec/test_nsec_hash.c b/tests/libknot/test_dnssec_nsec_hash.c similarity index 100% rename from tests/libdnssec/test_nsec_hash.c rename to tests/libknot/test_dnssec_nsec_hash.c diff --git a/tests/libdnssec/test_random.c b/tests/libknot/test_dnssec_random.c similarity index 100% rename from tests/libdnssec/test_random.c rename to tests/libknot/test_dnssec_random.c diff --git a/tests/libdnssec/test_shared_bignum.c b/tests/libknot/test_dnssec_shared_bignum.c similarity index 100% rename from tests/libdnssec/test_shared_bignum.c rename to tests/libknot/test_dnssec_shared_bignum.c diff --git a/tests/libdnssec/test_shared_dname.c b/tests/libknot/test_dnssec_shared_dname.c similarity index 100% rename from tests/libdnssec/test_shared_dname.c rename to tests/libknot/test_dnssec_shared_dname.c diff --git a/tests/libdnssec/test_sign.c b/tests/libknot/test_dnssec_sign.c similarity index 100% rename from tests/libdnssec/test_sign.c rename to tests/libknot/test_dnssec_sign.c diff --git a/tests/libdnssec/test_sign_der.c b/tests/libknot/test_dnssec_sign_der.c similarity index 100% rename from tests/libdnssec/test_sign_der.c rename to tests/libknot/test_dnssec_sign_der.c diff --git a/tests/libdnssec/test_tsig.c b/tests/libknot/test_dnssec_tsig.c similarity index 100% rename from tests/libdnssec/test_tsig.c rename to tests/libknot/test_dnssec_tsig.c From 22d4d0a5d6c2f8fa91f75bc912610a1bb5980c80 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Oct 2025 13:24:06 +0200 Subject: [PATCH 168/675] tests: adapt to libdnssec to libknot change --- tests/.gitignore | 37 ++++++++++----------- tests/libknot/test_dnssec_binary.c | 4 +-- tests/libknot/test_dnssec_crypto.c | 2 +- tests/libknot/test_dnssec_key.c | 9 +++-- tests/libknot/test_dnssec_key_algorithm.c | 4 +-- tests/libknot/test_dnssec_keyid.c | 4 +-- tests/libknot/test_dnssec_keystore_pkcs11.c | 2 +- tests/libknot/test_dnssec_keystore_pkcs8.c | 6 ++-- tests/libknot/test_dnssec_keytag.c | 6 ++-- tests/libknot/test_dnssec_nsec_bitmap.c | 2 +- tests/libknot/test_dnssec_nsec_hash.c | 6 ++-- tests/libknot/test_dnssec_random.c | 6 ++-- tests/libknot/test_dnssec_shared_bignum.c | 4 +-- tests/libknot/test_dnssec_shared_dname.c | 2 +- tests/libknot/test_dnssec_sign.c | 10 +++--- tests/libknot/test_dnssec_sign_der.c | 8 ++--- tests/libknot/test_dnssec_tsig.c | 6 ++-- 17 files changed, 57 insertions(+), 61 deletions(-) diff --git a/tests/.gitignore b/tests/.gitignore index a9763744bb..a362f8cdde 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -48,31 +48,28 @@ /knot/test_zone_timers /knot/test_zonedb -/libdnssec/test_binary -/libdnssec/test_crypto -/libdnssec/test_key -/libdnssec/test_key_algorithm -/libdnssec/test_key_ds -/libdnssec/test_keyid -/libdnssec/test_keystore_pkcs11 -/libdnssec/test_keystore_pkcs8 -/libdnssec/test_keystore_pkcs8_dir -/libdnssec/test_keytag -/libdnssec/test_list -/libdnssec/test_nsec_bitmap -/libdnssec/test_nsec_hash -/libdnssec/test_random -/libdnssec/test_sign -/libdnssec/test_sign_der -/libdnssec/test_shared_bignum -/libdnssec/test_shared_dname -/libdnssec/test_tsig - /libknot/test_control /libknot/test_cookies /libknot/test_db /libknot/test_descriptor /libknot/test_dname +/libknot/test_dnssec_binary +/libknot/test_dnssec_crypto +/libknot/test_dnssec_key +/libknot/test_dnssec_key_algorithm +/libknot/test_dnssec_key_ds +/libknot/test_dnssec_keyid +/libknot/test_dnssec_keystore_pkcs11 +/libknot/test_dnssec_keystore_pkcs8 +/libknot/test_dnssec_keytag +/libknot/test_dnssec_nsec_bitmap +/libknot/test_dnssec_nsec_hash +/libknot/test_dnssec_random +/libknot/test_dnssec_shared_bignum +/libknot/test_dnssec_shared_dname +/libknot/test_dnssec_sign +/libknot/test_dnssec_sign_der +/libknot/test_dnssec_tsig /libknot/test_dynarray /libknot/test_edns /libknot/test_edns_ecs diff --git a/tests/libknot/test_dnssec_binary.c b/tests/libknot/test_dnssec_binary.c index ee76ed3362..9a88d3d6c5 100644 --- a/tests/libknot/test_dnssec_binary.c +++ b/tests/libknot/test_dnssec_binary.c @@ -7,8 +7,8 @@ #include #include -#include "binary.h" -#include "error.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" typedef struct test_string { const char *encoded; diff --git a/tests/libknot/test_dnssec_crypto.c b/tests/libknot/test_dnssec_crypto.c index cbbd33fcd0..c6888b82d5 100644 --- a/tests/libknot/test_dnssec_crypto.c +++ b/tests/libknot/test_dnssec_crypto.c @@ -5,7 +5,7 @@ #include -#include "crypto.h" +#include "libknot/dnssec/crypto.h" int main(void) { diff --git a/tests/libknot/test_dnssec_key.c b/tests/libknot/test_dnssec_key.c index 1bb840391d..6e0d9a8b24 100644 --- a/tests/libknot/test_dnssec_key.c +++ b/tests/libknot/test_dnssec_key.c @@ -6,11 +6,10 @@ #include #include -#include "binary.h" -#include "crypto.h" -#include "error.h" -#include "key.h" - +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/crypto.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" #include "libknot/dnssec/sample_keys.h" #define check_attr_scalar(key, type, name, def_val, set_val) { \ diff --git a/tests/libknot/test_dnssec_key_algorithm.c b/tests/libknot/test_dnssec_key_algorithm.c index 4430dafba6..53cd81bdf8 100644 --- a/tests/libknot/test_dnssec_key_algorithm.c +++ b/tests/libknot/test_dnssec_key_algorithm.c @@ -5,8 +5,8 @@ #include -#include "error.h" -#include "key.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" static void ok_range(dnssec_key_algorithm_t algo, unsigned exp_min, unsigned exp_max, diff --git a/tests/libknot/test_dnssec_keyid.c b/tests/libknot/test_dnssec_keyid.c index 52da3ad48a..14aa35e7d3 100644 --- a/tests/libknot/test_dnssec_keyid.c +++ b/tests/libknot/test_dnssec_keyid.c @@ -7,8 +7,8 @@ #include #include -#include "error.h" -#include "keyid.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/keyid.h" static void test_keyid_is_valid_run(const char *param, bool should_ok) { diff --git a/tests/libknot/test_dnssec_keystore_pkcs11.c b/tests/libknot/test_dnssec_keystore_pkcs11.c index 4a862a87df..21245f4e8d 100644 --- a/tests/libknot/test_dnssec_keystore_pkcs11.c +++ b/tests/libknot/test_dnssec_keystore_pkcs11.c @@ -28,7 +28,7 @@ #define SOFTHSM_CONF_ENV "SOFTHSM2_CONF" #define SOFTHSM_UTIL "softhsm2-util" -#define TOKEN_LABEL "libdnssec-test" +#define TOKEN_LABEL "libknot-test" #define TOKEN_PIN "1234" #define TOKEN_SOPIN "123456" diff --git a/tests/libknot/test_dnssec_keystore_pkcs8.c b/tests/libknot/test_dnssec_keystore_pkcs8.c index b77637694b..066b22062d 100644 --- a/tests/libknot/test_dnssec_keystore_pkcs8.c +++ b/tests/libknot/test_dnssec_keystore_pkcs8.c @@ -6,9 +6,9 @@ #include #include -#include "error.h" -#include "key.h" -#include "keystore.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/keystore.h" int main(void) { diff --git a/tests/libknot/test_dnssec_keytag.c b/tests/libknot/test_dnssec_keytag.c index bf9fbc36f1..494fa81399 100644 --- a/tests/libknot/test_dnssec_keytag.c +++ b/tests/libknot/test_dnssec_keytag.c @@ -6,9 +6,9 @@ #include #include -#include "binary.h" -#include "error.h" -#include "keytag.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/keytag.h" int main(void) { diff --git a/tests/libknot/test_dnssec_nsec_bitmap.c b/tests/libknot/test_dnssec_nsec_bitmap.c index 58e59803fa..8b997bdb16 100644 --- a/tests/libknot/test_dnssec_nsec_bitmap.c +++ b/tests/libknot/test_dnssec_nsec_bitmap.c @@ -9,7 +9,7 @@ #include #include -#include "nsec.h" +#include "libknot/dnssec/nsec.h" #include "libknot/descriptor.h" #define TEST_BITMAP_SIZE 18 diff --git a/tests/libknot/test_dnssec_nsec_hash.c b/tests/libknot/test_dnssec_nsec_hash.c index e36be6820b..a784dea2bf 100644 --- a/tests/libknot/test_dnssec_nsec_hash.c +++ b/tests/libknot/test_dnssec_nsec_hash.c @@ -6,9 +6,9 @@ #include #include -#include "crypto.h" -#include "error.h" -#include "nsec.h" +#include "libknot/dnssec/crypto.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/nsec.h" static const dnssec_binary_t RDATA = { .size = 9, .data = (uint8_t []) { 0x01, // algorithm diff --git a/tests/libknot/test_dnssec_random.c b/tests/libknot/test_dnssec_random.c index a3c4103cf2..6b6d6f7c6d 100644 --- a/tests/libknot/test_dnssec_random.c +++ b/tests/libknot/test_dnssec_random.c @@ -7,9 +7,9 @@ #include #include -#include "crypto.h" -#include "error.h" -#include "random.h" +#include "libknot/dnssec/crypto.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/random.h" int check_buffer(void) { diff --git a/tests/libknot/test_dnssec_shared_bignum.c b/tests/libknot/test_dnssec_shared_bignum.c index a0e30da0b8..74254c1636 100644 --- a/tests/libknot/test_dnssec_shared_bignum.c +++ b/tests/libknot/test_dnssec_shared_bignum.c @@ -6,8 +6,8 @@ #include #include -#include "bignum.c" -#include "binary.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/shared/bignum.c" #define bin_init(array) { .data = array, .size = sizeof(array) } diff --git a/tests/libknot/test_dnssec_shared_dname.c b/tests/libknot/test_dnssec_shared_dname.c index cb066a0eda..14ff9e2d08 100644 --- a/tests/libknot/test_dnssec_shared_dname.c +++ b/tests/libknot/test_dnssec_shared_dname.c @@ -7,7 +7,7 @@ #include #include -#include "dname.c" +#include "libknot/dnssec/shared/dname.c" static void ok_length(const char *dname, size_t length, const char *info) { diff --git a/tests/libknot/test_dnssec_sign.c b/tests/libknot/test_dnssec_sign.c index 622ebd95c1..dccd016cc6 100644 --- a/tests/libknot/test_dnssec_sign.c +++ b/tests/libknot/test_dnssec_sign.c @@ -6,11 +6,11 @@ #include #include -#include "binary.h" -#include "crypto.h" -#include "error.h" -#include "key.h" -#include "sign.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/crypto.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/sign.h" #include "libknot/dnssec/sample_keys.h" diff --git a/tests/libknot/test_dnssec_sign_der.c b/tests/libknot/test_dnssec_sign_der.c index 3e1dd4fde7..b1755552ee 100644 --- a/tests/libknot/test_dnssec_sign_der.c +++ b/tests/libknot/test_dnssec_sign_der.c @@ -8,10 +8,10 @@ #include #include -#include "bignum.c" -#include "binary.h" -#include "error.h" -#include "sign/der.c" +#include "libknot/dnssec/shared/bignum.c" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/error.h" +#include "libknot/dnssec/sign/der.c" static int binary_eq(const dnssec_binary_t *a, const dnssec_binary_t *b) { diff --git a/tests/libknot/test_dnssec_tsig.c b/tests/libknot/test_dnssec_tsig.c index 8a65b17121..bc5ec6492f 100644 --- a/tests/libknot/test_dnssec_tsig.c +++ b/tests/libknot/test_dnssec_tsig.c @@ -6,9 +6,9 @@ #include #include -#include "binary.h" -#include "dname.c" -#include "tsig.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/shared/dname.c" +#include "libknot/dnssec/tsig.h" static const dnssec_binary_t payload = { .size = 40, From 07751bc1840fefc2ddc257aab8f8325244c289a4 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Oct 2025 13:43:27 +0200 Subject: [PATCH 169/675] libknot: replace dnssec/shared/dname with libknot/dname --- Knot.files | 3 - src/libknot/Makefile.inc | 2 - src/libknot/dnssec/key/ds.c | 4 +- src/libknot/dnssec/key/internal.h | 1 - src/libknot/dnssec/key/key.c | 5 +- src/libknot/dnssec/shared/dname.c | 154 ----------------------- src/libknot/dnssec/shared/dname.h | 46 ------- src/libknot/dnssec/tsig.c | 4 +- tests/.gitignore | 1 - tests/Makefile.am | 1 - tests/libknot/test_dnssec_shared_dname.c | 68 ---------- tests/libknot/test_dnssec_tsig.c | 4 +- 12 files changed, 9 insertions(+), 284 deletions(-) delete mode 100644 src/libknot/dnssec/shared/dname.c delete mode 100644 src/libknot/dnssec/shared/dname.h delete mode 100644 tests/libknot/test_dnssec_shared_dname.c diff --git a/Knot.files b/Knot.files index 355f5947f7..540603b748 100644 --- a/Knot.files +++ b/Knot.files @@ -481,8 +481,6 @@ src/libknot/dnssec/sample_keys.h src/libknot/dnssec/shared/bignum.c src/libknot/dnssec/shared/bignum.h src/libknot/dnssec/shared/binary_wire.h -src/libknot/dnssec/shared/dname.c -src/libknot/dnssec/shared/dname.h src/libknot/dnssec/shared/keyid_gnutls.c src/libknot/dnssec/shared/keyid_gnutls.h src/libknot/dnssec/shared/shared.h @@ -736,7 +734,6 @@ tests/libknot/test_dnssec_nsec_bitmap.c tests/libknot/test_dnssec_nsec_hash.c tests/libknot/test_dnssec_random.c tests/libknot/test_dnssec_shared_bignum.c -tests/libknot/test_dnssec_shared_dname.c tests/libknot/test_dnssec_sign.c tests/libknot/test_dnssec_sign_der.c tests/libknot/test_dnssec_tsig.c diff --git a/src/libknot/Makefile.inc b/src/libknot/Makefile.inc index 8665808087..3ab5a8b1f2 100755 --- a/src/libknot/Makefile.inc +++ b/src/libknot/Makefile.inc @@ -129,8 +129,6 @@ libknot_la_SOURCES = \ libknot/dnssec/shared/bignum.c \ libknot/dnssec/shared/bignum.h \ libknot/dnssec/shared/binary_wire.h \ - libknot/dnssec/shared/dname.c \ - libknot/dnssec/shared/dname.h \ libknot/dnssec/shared/keyid_gnutls.c \ libknot/dnssec/shared/keyid_gnutls.h \ libknot/dnssec/shared/shared.h \ diff --git a/src/libknot/dnssec/key/ds.c b/src/libknot/dnssec/key/ds.c index 1098cf71b1..098bbfa3f5 100644 --- a/src/libknot/dnssec/key/ds.c +++ b/src/libknot/dnssec/key/ds.c @@ -3,11 +3,11 @@ * For more information, see */ +#include "libknot/dname.h" #include "libknot/dnssec/binary.h" #include "libknot/dnssec/error.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/key/internal.h" -#include "libknot/dnssec/shared/dname.h" #include "libknot/dnssec/shared/shared.h" #include "libknot/dnssec/shared/binary_wire.h" @@ -85,7 +85,7 @@ int dnssec_key_create_ds(const dnssec_key_t *key, return DNSSEC_DS_HASHING_ERROR; } - if (gnutls_hash(digest, key->dname, dname_length(key->dname)) != 0 || + if (gnutls_hash(digest, key->dname, knot_dname_size(key->dname)) != 0 || gnutls_hash(digest, key->rdata.data, key->rdata.size) != 0 ) { return DNSSEC_DS_HASHING_ERROR; diff --git a/src/libknot/dnssec/key/internal.h b/src/libknot/dnssec/key/internal.h index 8f69dce7be..0bd6bfb70a 100644 --- a/src/libknot/dnssec/key/internal.h +++ b/src/libknot/dnssec/key/internal.h @@ -9,7 +9,6 @@ #include #include "libknot/dnssec/key.h" -#include "libknot/dnssec/shared/dname.h" /*! * DNSSEC key. diff --git a/src/libknot/dnssec/key/key.c b/src/libknot/dnssec/key/key.c index 684b5d16cb..7ea3c05a68 100644 --- a/src/libknot/dnssec/key/key.c +++ b/src/libknot/dnssec/key/key.c @@ -9,6 +9,7 @@ #include #include +#include "libknot/dname.h" #include "libknot/dnssec/binary.h" #include "libknot/dnssec/error.h" #include "libknot/dnssec/key.h" @@ -176,12 +177,12 @@ int dnssec_key_set_dname(dnssec_key_t *key, const uint8_t *dname) uint8_t *copy = NULL; if (dname) { - copy = dname_copy(dname); + copy = knot_dname_copy(dname, NULL); if (!copy) { return DNSSEC_ENOMEM; } - dname_normalize(copy); + knot_dname_to_lower(copy); } free(key->dname); diff --git a/src/libknot/dnssec/shared/dname.c b/src/libknot/dnssec/shared/dname.c deleted file mode 100644 index c50a4beeec..0000000000 --- a/src/libknot/dnssec/shared/dname.c +++ /dev/null @@ -1,154 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. and contributors - * SPDX-License-Identifier: GPL-2.0-or-later - * For more information, see - */ - -#include -#include -#include -#include -#include - -#include "libknot/dnssec/shared/dname.h" -#include "libknot/dnssec/shared/shared.h" -#include "contrib/tolower.h" - -/*! - * Get length of a domain name in wire format. - */ -size_t dname_length(const uint8_t *dname) -{ - if (!dname) { - return 0; - } - - const uint8_t *scan = dname; - uint8_t label_len; - do { - label_len = *scan; - scan += 1 + label_len; - } while (label_len > 0); - assert(scan > dname); - - size_t length = scan - dname; - if (length > DNAME_MAX_LENGTH) { - return 0; - } - - return length; -} - -/*! - * Copy domain name in wire format. - */ -uint8_t *dname_copy(const uint8_t *dname) -{ - if (!dname) { - return NULL; - } - - size_t length = dname_length(dname); - if (length == 0) { - return NULL; - } - - uint8_t *copy = malloc(length); - if (!copy) { - return NULL; - } - - memmove(copy, dname, length); - return copy; -} - -/*! - * Normalize dname label in-place. - * - * \return Number of processed bytes, 0 if we encounter the last label. - */ -static uint8_t normalize_label(uint8_t *label) -{ - assert(label); - - uint8_t len = *label; - if (len == 0 || len > DNAME_MAX_LABEL_LENGTH) { - return 0; - } - - for (uint8_t *scan = label + 1, *end = scan + len; scan < end; scan++) { - *scan = knot_tolower(*scan); - } - - return len + 1; -} - -/*! - * Normalize domain name in wire format. - */ -void dname_normalize(uint8_t *dname) -{ - if (!dname) { - return; - } - - uint8_t read, *scan = dname; - do { - read = normalize_label(scan); - scan += read; - } while (read > 0); -} - -/*! - * Compare dname labels case insensitively. - */ -static int label_casecmp(const uint8_t *a, const uint8_t *b, uint8_t len) -{ - assert(a); - assert(b); - - for (const uint8_t *a_end = a + len; a < a_end; a++, b++) { - if (knot_tolower(*a) != knot_tolower(*b)) { - return false; - } - } - - return true; -} - -/*! - * Check if two dnames are equal. - */ -bool dname_equal(const uint8_t *one, const uint8_t *two) -{ - if (!one || !two) { - return false; - } - - const uint8_t *scan_one = one; - const uint8_t *scan_two = two; - - for (;;) { - if (*scan_one != *scan_two) { - return false; - } - - uint8_t len = *scan_one; - if (len == 0) { - return true; - } else if (len > DNAME_MAX_LABEL_LENGTH) { - return false; - } - - scan_one += 1; - scan_two += 1; - - if (!label_casecmp(scan_one, scan_two, len)) { - return false; - } - - scan_one += len; - scan_two += len; - } - - return true; -} diff --git a/src/libknot/dnssec/shared/dname.h b/src/libknot/dnssec/shared/dname.h deleted file mode 100644 index 67e6cdde44..0000000000 --- a/src/libknot/dnssec/shared/dname.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. and contributors - * SPDX-License-Identifier: GPL-2.0-or-later - * For more information, see - */ - -#pragma once - -#include -#include -#include - -/*! - * Maximal length of domain name including labels and length bytes. - * \see RFC 1035 - */ -#define DNAME_MAX_LENGTH 255 - -/*! - * Maximal length of the domain name label, excluding the label size. - * \see RFC 1035 - */ -#define DNAME_MAX_LABEL_LENGTH 63 - -/*! - * Get length of a domain name in wire format. - */ -size_t dname_length(const uint8_t *dname); - -/*! - * Copy domain name in wire format. - */ -uint8_t *dname_copy(const uint8_t *dname); - -/*! - * Normalize domain name in wire format. - * - * Currently converts all letters to lowercase. - */ -void dname_normalize(uint8_t *dname); - -/*! - * Check if two dnames are equal. - * - * Case insensitive. - */ -bool dname_equal(const uint8_t *one, const uint8_t *two); diff --git a/src/libknot/dnssec/tsig.c b/src/libknot/dnssec/tsig.c index 4cda99bb10..dc246d73f0 100644 --- a/src/libknot/dnssec/tsig.c +++ b/src/libknot/dnssec/tsig.c @@ -11,7 +11,7 @@ #include #include -#include "libknot/dnssec/shared/dname.h" +#include "libknot/dname.h" #include "libknot/dnssec/error.h" #include "libknot/dnssec/shared/shared.h" #include "libknot/dnssec/tsig.h" @@ -71,7 +71,7 @@ static const algorithm_id_t *lookup_algorithm(algorithm_match_cb match, static bool match_dname(const algorithm_id_t *algorithm, const void *data) { const uint8_t *search = data; - return dname_equal(search, (uint8_t *)algorithm->dname); + return knot_dname_is_case_equal(search, (uint8_t *)algorithm->dname); } static bool match_name(const algorithm_id_t *algorithm, const void *data) diff --git a/tests/.gitignore b/tests/.gitignore index a362f8cdde..a553a648a4 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -66,7 +66,6 @@ /libknot/test_dnssec_nsec_hash /libknot/test_dnssec_random /libknot/test_dnssec_shared_bignum -/libknot/test_dnssec_shared_dname /libknot/test_dnssec_sign /libknot/test_dnssec_sign_der /libknot/test_dnssec_tsig diff --git a/tests/Makefile.am b/tests/Makefile.am index 8e1d10cf2c..6e662272d8 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -131,7 +131,6 @@ check_PROGRAMS += \ libknot/test_dnssec_sign \ libknot/test_dnssec_sign_der \ libknot/test_dnssec_shared_bignum \ - libknot/test_dnssec_shared_dname \ libknot/test_dnssec_tsig \ libknot/test_control \ libknot/test_cookies \ diff --git a/tests/libknot/test_dnssec_shared_dname.c b/tests/libknot/test_dnssec_shared_dname.c deleted file mode 100644 index 14ff9e2d08..0000000000 --- a/tests/libknot/test_dnssec_shared_dname.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. and contributors - * SPDX-License-Identifier: GPL-2.0-or-later - * For more information, see - */ - -#include -#include -#include - -#include "libknot/dnssec/shared/dname.c" - -static void ok_length(const char *dname, size_t length, const char *info) -{ - ok(dname_length((uint8_t *)dname) == length, - "dname_length() for %s", info); -} - -static void test_length(void) -{ - ok_length(NULL, 0, "NULL"); - ok_length("", 1, "."); - ok_length("\x2""cz", 4, "cz."); - ok_length("\x7""example""\x3""com", 13, "example.com."); -} - -static bool dname_binary_equal(const uint8_t *one, const uint8_t *two) -{ - return one && two && strcmp((char *)one, (char *)two) == 0; -} - -static void test_copy(void) -{ - const uint8_t *dname = (uint8_t *)"\x3""www""\x8""KNOT-DNS""\x2""cz"; - uint8_t *copy = dname_copy(dname); - ok(dname_binary_equal(dname, copy), "dname_copy()"); - free(copy); -} - -static void test_equal(void) -{ - #define eq(a, b) dname_equal((uint8_t *)a, (uint8_t *)b) - - ok(eq("\x4""kiwi""\x4""limo", "\x4""kiwi""\x4""limo") == true, - "dname_equal() same"); - ok(eq("\x6""orange", "\x6""ORANGE") == true, - "dname_equal() case single label"); - ok(eq("\x6""Banana""\03""Tea", "\x6""bANAna""\x3""tea") == true, - "dname_equal() case two labels"); - ok(eq("\x4""Coco""\x4""MILK", "\x3""cow""\x4""milk") == false, - "dname_equal() different first"); - ok(eq("\x4""LIME""\x5""syrup", "\x4""LIme""\x4""beer") == false, - "dname_equal() different last"); - ok(eq("\x5""apple", "\x5""apple""\x5""shake") == false, - "dname_equal() a prefix of b"); - ok(eq("\x5""apple""\x5""juice", "\x5""apple") == false, - "dname_equal() b prefix of a"); -} - -int main(void) -{ - plan_lazy(); - - test_length(); - test_copy(); - test_equal(); - - return 0; -} diff --git a/tests/libknot/test_dnssec_tsig.c b/tests/libknot/test_dnssec_tsig.c index bc5ec6492f..0db129903f 100644 --- a/tests/libknot/test_dnssec_tsig.c +++ b/tests/libknot/test_dnssec_tsig.c @@ -6,8 +6,8 @@ #include #include +#include "libknot/dname.h" #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/shared/dname.c" #include "libknot/dnssec/tsig.h" static const dnssec_binary_t payload = { @@ -82,7 +82,7 @@ static void test_lookup_dname(const uint8_t *dname, int algorithm) const uint8_t *reverse = dnssec_tsig_algorithm_to_dname(algorithm); ok((algorithm == DNSSEC_TSIG_UNKNOWN && reverse == NULL) || - (algorithm != DNSSEC_TSIG_UNKNOWN && dname_equal(reverse, dname)), + (algorithm != DNSSEC_TSIG_UNKNOWN && knot_dname_is_case_equal(reverse, dname)), "dnssec_tsig_algorithm_to_dname(%d)", algorithm); } From 79432e4362adae1aac911f8f81c482dc364fd7fe Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 09:13:02 +0200 Subject: [PATCH 170/675] Update Doxyfile --- Doxyfile.in | 658 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 429 insertions(+), 229 deletions(-) diff --git a/Doxyfile.in b/Doxyfile.in index 2e42167d07..1654fdc3cb 100644 --- a/Doxyfile.in +++ b/Doxyfile.in @@ -1,4 +1,4 @@ -# Doxyfile 1.9.1 +# Doxyfile 1.9.8 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -12,6 +12,16 @@ # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). +# +# Note: +# +# Use doxygen to compare the used configuration file with the template +# configuration file: +# doxygen -x [configFile] +# Use doxygen to compare the used configuration file with the template +# configuration file without replacing the environment variables or CMake type +# replacement variables: +# doxygen -x_noenv [configFile] #--------------------------------------------------------------------------- # Project related configuration options @@ -51,7 +61,7 @@ PROJECT_BRIEF = # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. -# PROJECT_LOGO = doc/logo.svg +PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is @@ -60,16 +70,28 @@ PROJECT_BRIEF = OUTPUT_DIRECTORY = doc -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096 +# sub-directories (in 2 levels) under the output directory of each output format +# and will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes -# performance problems for the file system. +# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to +# control the number of sub-directories. # The default value is: NO. CREATE_SUBDIRS = NO +# Controls the number of sub-directories that will be created when +# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every +# level increment doubles the number of directories, resulting in 4096 +# directories at level 8 which is the default and also the maximum value. The +# sub-directories are organized in 2 levels, the first level always has a fixed +# number of 16 directories. +# Minimum value: 0, maximum value: 8, default value: 8. +# This tag requires that the tag CREATE_SUBDIRS is set to YES. + +CREATE_SUBDIRS_LEVEL = 8 + # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode @@ -81,26 +103,18 @@ ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, +# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English +# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek, +# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with +# English messages), Korean, Korean-en (Korean with English messages), Latvian, +# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, +# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, +# Swedish, Turkish, Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all generated output in the proper direction. -# Possible values are: None, LTR, RTL and Context. -# The default value is: None. - -OUTPUT_TEXT_DIRECTION = None - # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. @@ -258,16 +272,16 @@ TAB_SIZE = 8 # the documentation. An alias has the form: # name=value # For example adding -# "sideeffect=@par Side Effects:\n" +# "sideeffect=@par Side Effects:^^" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. -# When you need a literal { or } or , in the value part of an alias you have to -# escape them by means of a backslash (\), this can lead to conflicts with the -# commands \{ and \} for these it is advised to use the version @{ and @} or use -# a double escape (\\{ and \\}) +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) ALIASES = @@ -312,8 +326,8 @@ OPTIMIZE_OUTPUT_SLICE = NO # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, JavaScript, -# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, -# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # tries to guess whether the code is fixed or free formatted code, this is the # default for Fortran type files). For instance to make doxygen treat .inc files @@ -349,6 +363,17 @@ MARKDOWN_SUPPORT = YES TOC_INCLUDE_HEADINGS = 5 +# The MARKDOWN_ID_STYLE tag can be used to specify the algorithm used to +# generate identifiers for the Markdown headings. Note: Every identifier is +# unique. +# Possible values are: DOXYGEN use a fixed 'autotoc_md' string followed by a +# sequence number starting at 0 and GITHUB use the lower case version of title +# with any whitespace replaced by '-' and punctuation characters removed. +# The default value is: DOXYGEN. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +MARKDOWN_ID_STYLE = DOXYGEN + # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or @@ -460,19 +485,27 @@ TYPEDEF_HIDES_STRUCT = YES LOOKUP_CACHE_SIZE = 0 -# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use +# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use # during processing. When set to 0 doxygen will based this on the number of # cores available in the system. You can set it explicitly to a value larger # than 0 to get more control over the balance between CPU load and processing # speed. At this moment only the input processing can be done using multiple # threads. Since this is still an experimental feature the default is set to 1, -# which efficively disables parallel processing. Please report any issues you +# which effectively disables parallel processing. Please report any issues you # encounter. Generating dot graphs in parallel is controlled by the # DOT_NUM_THREADS setting. # Minimum value: 0, maximum value: 32, default value: 1. NUM_PROC_THREADS = 1 +# If the TIMESTAMP tag is set different from NO then each generated page will +# contain the date or date and time when the page was generated. Setting this to +# NO can help when comparing the output of multiple runs. +# Possible values are: YES, NO, DATETIME and DATE. +# The default value is: NO. + +TIMESTAMP = YES + #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- @@ -554,7 +587,8 @@ HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. +# will also hide undocumented C++ concepts if enabled. This option has no effect +# if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO @@ -585,14 +619,15 @@ INTERNAL_DOCS = NO # filesystem is case sensitive (i.e. it supports files in the same directory # whose names only differ in casing), the option must be set to YES to properly # deal with such files in case they appear in the input. For filesystems that -# are not case sensitive the option should be be set to NO to properly deal with +# are not case sensitive the option should be set to NO to properly deal with # output files written for symbols that only differ in casing, such as for two # classes, one named CLASS and the other named Class, and to also support # references to files without having to specify the exact matching casing. On # Windows (including Cygwin) and MacOS, users should typically set this option # to NO, whereas on Linux or other Unix flavors it should typically be set to # YES. -# The default value is: system dependent. +# Possible values are: SYSTEM, NO and YES. +# The default value is: SYSTEM. CASE_SENSE_NAMES = NO @@ -610,6 +645,12 @@ HIDE_SCOPE_NAMES = YES HIDE_COMPOUND_REFERENCE= NO +# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class +# will show which file needs to be included to use the class. +# The default value is: YES. + +SHOW_HEADERFILE = YES + # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -767,7 +808,8 @@ FILE_VERSION_FILTER = # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE @@ -813,27 +855,50 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES +# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete +# function parameter documentation. If set to NO, doxygen will accept that some +# parameters have no documentation without warning. +# The default value is: YES. + +WARN_IF_INCOMPLETE_DOC = YES + # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. If -# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# value. If set to NO, doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC # The default value is: NO. WARN_NO_PARAMDOC = NO +# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, doxygen will warn about +# undocumented enumeration values. If set to NO, doxygen will accept +# undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: NO. + +WARN_IF_UNDOC_ENUM_VAL = NO + # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when # a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS # then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but # at the end of the doxygen process doxygen will return with a non-zero status. -# Possible values are: NO, YES and FAIL_ON_WARNINGS. +# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then doxygen behaves +# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined doxygen will not +# write the warning messages in between other messages but write them at the end +# of a run, in case a WARN_LOGFILE is defined the warning messages will be +# besides being in the defined file also be shown at the end of a run, unless +# the WARN_LOGFILE is defined as - i.e. standard output (stdout) in that case +# the behavior will remain as with the setting FAIL_ON_WARNINGS. +# Possible values are: NO, YES, FAIL_ON_WARNINGS and FAIL_ON_WARNINGS_PRINT. # The default value is: NO. WARN_AS_ERROR = NO @@ -844,13 +909,27 @@ WARN_AS_ERROR = NO # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) +# See also: WARN_LINE_FORMAT # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" +# In the $text part of the WARN_FORMAT command it is possible that a reference +# to a more specific place is given. To make it easier to jump to this place +# (outside of doxygen) the user can define a custom "cut" / "paste" string. +# Example: +# WARN_LINE_FORMAT = "'vi $file +$line'" +# See also: WARN_FORMAT +# The default value is: at line $line of file $file. + +WARN_LINE_FORMAT = "at line $line of file $file" + # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard -# error (stderr). +# error (stderr). In case the file specified cannot be opened for writing the +# warning and error messages are written to standard error. When as file - is +# specified the warning and error messages are written to standard output +# (stdout). WARN_LOGFILE = doc/html/doxygen.warn @@ -874,10 +953,21 @@ INPUT = doc/doxygen/Doxy.page.h \ # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: # https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# See also: INPUT_FILE_ENCODING # The default value is: UTF-8. INPUT_ENCODING = UTF-8 +# This tag can be used to specify the character encoding of the source files +# that doxygen parses The INPUT_FILE_ENCODING tag can be used to specify +# character encoding on a per file pattern basis. Doxygen will compare the file +# name with each pattern and apply the encoding instead of the default +# INPUT_ENCODING) if there is a match. The character encodings are a list of the +# form: pattern=encoding (like *.php=ISO-8859-1). See cfg_input_encoding +# "INPUT_ENCODING" for further information on supported encodings. + +INPUT_FILE_ENCODING = + # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. @@ -889,12 +979,12 @@ INPUT_ENCODING = UTF-8 # Note the list of default checked file patterns might differ from the list of # default file extension mappings. # -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), -# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl, -# *.ucf, *.qsf and *.ice. +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cxxm, +# *.cpp, *.cppm, *.c++, *.c++m, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, +# *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.ixx, *.l, *.cs, *.d, *.php, +# *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be +# provided as doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f18, *.f, *.for, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.h @@ -933,10 +1023,7 @@ EXCLUDE_PATTERNS = # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* +# ANamespace::AClass, ANamespace::*Test EXCLUDE_SYMBOLS = @@ -981,6 +1068,11 @@ IMAGE_PATH = # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # +# Note that doxygen will use the data processed and written to standard output +# for further processing, therefore nothing else, like debug statements or used +# commands (so in case of a Windows batch file always use @echo OFF), should be +# written to standard output. +# # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. @@ -1022,6 +1114,15 @@ FILTER_SOURCE_PATTERNS = USE_MDFILE_AS_MAINPAGE = +# The Fortran standard specifies that for fixed formatted Fortran code all +# characters from position 72 are to be considered as comment. A common +# extension is to allow longer lines before the automatic comment starts. The +# setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can +# be processed before the automatic comment starts. +# Minimum value: 7, maximum value: 10000, default value: 72. + +FORTRAN_COMMENT_AFTER = 72 + #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- @@ -1119,9 +1220,11 @@ VERBATIM_HEADERS = YES CLANG_ASSISTED_PARSING = NO -# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to -# YES then doxygen will add the directory of each input to the include path. +# If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS +# tag is set to YES then doxygen will add the directory of each input to the +# include path. # The default value is: YES. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. CLANG_ADD_INC_PATHS = YES @@ -1157,10 +1260,11 @@ CLANG_DATABASE_PATH = ALPHABETICAL_INDEX = YES -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. +# The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes) +# that should be ignored while generating the index headers. The IGNORE_PREFIX +# tag works for classes, function and member names. The entity will be placed in +# the alphabetical list under the first letter of the entity name that remains +# after removing the prefix. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = @@ -1239,7 +1343,12 @@ HTML_STYLESHEET = # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. +# list). +# Note: Since the styling of scrollbars can currently not be overruled in +# Webkit/Chromium, the styling will be left out of the default doxygen.css if +# one or more extra stylesheets have been specified. So if scrollbar +# customization is desired it has to be added explicitly. For an example see the +# documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = @@ -1254,9 +1363,22 @@ HTML_EXTRA_STYLESHEET = HTML_EXTRA_FILES = +# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output +# should be rendered with a dark or light theme. +# Possible values are: LIGHT always generate light mode output, DARK always +# generate dark mode output, AUTO_LIGHT automatically set the mode according to +# the user preference, use light mode if no preference is set (the default), +# AUTO_DARK automatically set the mode according to the user preference, use +# dark mode if no preference is set and TOGGLE allow to user to switch between +# light and dark mode via a button. +# The default value is: AUTO_LIGHT. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE = AUTO_LIGHT + # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see +# this color. Hue is specified as an angle on a color-wheel, see # https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. @@ -1266,7 +1388,7 @@ HTML_EXTRA_FILES = HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A +# in the HTML output. For a value of 0 the output will use gray-scales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1284,15 +1406,6 @@ HTML_COLORSTYLE_SAT = 100 HTML_COLORSTYLE_GAMMA = 80 -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = YES - # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # documentation will contain a main index with vertical navigation menus that # are dynamically created via JavaScript. If disabled, the navigation index will @@ -1312,6 +1425,13 @@ HTML_DYNAMIC_MENUS = YES HTML_DYNAMIC_SECTIONS = YES +# If the HTML_CODE_FOLDING tag is set to YES then classes and functions can be +# dynamically folded and expanded in the generated HTML source code. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_CODE_FOLDING = YES + # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to @@ -1348,6 +1468,13 @@ GENERATE_DOCSET = NO DOCSET_FEEDNAME = "Doxygen generated docs" +# This tag determines the URL of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDURL = + # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. @@ -1373,8 +1500,12 @@ DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: -# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows. +# on Windows. In the beginning of 2021 Microsoft took the original page, with +# a.o. the download links, offline the HTML help workshop was already many years +# in maintenance mode). You can download the HTML help workshop from the web +# archives at Installation executable (see: +# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo +# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML @@ -1431,6 +1562,16 @@ BINARY_TOC = NO TOC_EXPAND = NO +# The SITEMAP_URL tag is used to specify the full URL of the place where the +# generated documentation will be placed on the server by the user during the +# deployment of the documentation. The generated sitemap is called sitemap.xml +# and placed on the directory specified by HTML_OUTPUT. In case no SITEMAP_URL +# is specified no sitemap is generated. For information about the sitemap +# protocol see https://www.sitemaps.org +# This tag requires that the tag GENERATE_HTML is set to YES. + +SITEMAP_URL = + # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help @@ -1533,16 +1674,28 @@ DISABLE_INDEX = YES # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has the same information as the tab index, you could +# consider setting DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = YES +# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the +# FULL_SIDEBAR option determines if the side bar is limited to only the treeview +# area (value NO) or if it should extend to the full height of the window (value +# YES). Setting this to YES gives a layout similar to +# https://docs.readthedocs.io with more room for contents, but less room for the +# project logo, title, and description. If either GENERATE_TREEVIEW or +# DISABLE_INDEX is set to NO, this option has no effect. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FULL_SIDEBAR = NO + # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # @@ -1567,6 +1720,13 @@ TREEVIEW_WIDTH = 250 EXT_LINKS_IN_WINDOW = NO +# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email +# addresses. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +OBFUSCATE_EMAILS = YES + # If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see # https://inkscape.org) to generate formulas as SVG images instead of PNGs for @@ -1587,17 +1747,6 @@ HTML_FORMULA_FORMAT = png FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands # to create new LaTeX commands to be used in formulas as building blocks. See # the section "Including formulas" for details. @@ -1615,11 +1764,29 @@ FORMULA_MACROFILE = USE_MATHJAX = NO +# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. +# Note that the different versions of MathJax have different requirements with +# regards to the different settings, so it is possible that also other MathJax +# settings have to be changed when switching between the different MathJax +# versions. +# Possible values are: MathJax_2 and MathJax_3. +# The default value is: MathJax_2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_VERSION = MathJax_2 + # When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. +# the MathJax output. For more details about the output format see MathJax +# version 2 (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 +# (see: +# http://docs.mathjax.org/en/latest/web/components/output.html). # Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. +# compatibility. This is the name for Mathjax version 2, for MathJax version 3 +# this will be translated into chtml), NativeMML (i.e. MathML. Only supported +# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# is the name for Mathjax version 3, for MathJax version 2 this will be +# translated into HTML-CSS) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. @@ -1632,15 +1799,21 @@ MATHJAX_FORMAT = HTML-CSS # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see +# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = @@ -1820,29 +1993,31 @@ PAPER_TYPE = a4 EXTRA_PACKAGES = -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the -# generated LaTeX document. The header should contain everything until the first -# chapter. If it is left blank doxygen will generate a standard header. See -# section "Doxygen usage" for information on how to let doxygen write the -# default header to a separate file. +# The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for +# the generated LaTeX document. The header should contain everything until the +# first chapter. If it is left blank doxygen will generate a standard header. It +# is highly recommended to start with a default header using +# doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty +# and then modify the file new_header.tex. See also section "Doxygen usage" for +# information on how to generate the default header that doxygen normally uses. # -# Note: Only use a user-defined header if you know what you are doing! The -# following commands have a special meaning inside the header: $title, -# $datetime, $date, $doxygenversion, $projectname, $projectnumber, -# $projectbrief, $projectlogo. Doxygen will replace $title with the empty -# string, for the replacement values of the other commands the user is referred -# to HTML_HEADER. +# Note: Only use a user-defined header if you know what you are doing! +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. The following +# commands have a special meaning inside the header (and footer): For a +# description of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = -# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the -# generated LaTeX document. The footer should contain everything after the last -# chapter. If it is left blank doxygen will generate a standard footer. See +# The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for +# the generated LaTeX document. The footer should contain everything after the +# last chapter. If it is left blank doxygen will generate a standard footer. See # LATEX_HEADER for more information on how to generate a default footer and what -# special commands can be used inside the footer. -# -# Note: Only use a user-defined footer if you know what you are doing! +# special commands can be used inside the footer. See also section "Doxygen +# usage" for information on how to generate the default footer that doxygen +# normally uses. Note: Only use a user-defined footer if you know what you are +# doing! # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_FOOTER = @@ -1885,10 +2060,16 @@ PDF_HYPERLINKS = YES USE_PDFLATEX = YES -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode -# command to the generated LaTeX files. This will instruct LaTeX to keep running -# if errors occur, instead of asking the user for help. This option is also used -# when generating formulas in HTML. +# The LATEX_BATCHMODE tag signals the behavior of LaTeX in case of an error. +# Possible values are: NO same as ERROR_STOP, YES same as BATCH, BATCH In batch +# mode nothing is printed on the terminal, errors are scrolled as if is +# hit at every error; missing files that TeX tries to input or request from +# keyboard input (\read on a not open input stream) cause the job to abort, +# NON_STOP In nonstop mode the diagnostic message will appear on the terminal, +# but there is no possibility of user interaction just like in batch mode, +# SCROLL In scroll mode, TeX will stop only for missing files to input or if +# keyboard input is necessary and ERROR_STOP In errorstop mode, TeX will stop at +# each error, asking for user intervention. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1901,16 +2082,6 @@ LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO -# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source -# code with syntax highlighting in the LaTeX output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_SOURCE_CODE = NO - # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See # https://en.wikipedia.org/wiki/BibTeX and \cite for more info. @@ -1919,14 +2090,6 @@ LATEX_SOURCE_CODE = NO LATEX_BIB_STYLE = plain -# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_TIMESTAMP = NO - # The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) # path from which the emoji images will be read. If a relative path is entered, # it will be relative to the LATEX_OUTPUT directory. If left blank the @@ -1991,16 +2154,6 @@ RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = -# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code -# with syntax highlighting in the RTF output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_RTF is set to YES. - -RTF_SOURCE_CODE = NO - #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- @@ -2097,27 +2250,44 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook -# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the -# program listings (including syntax highlighting and cross-referencing -# information) to the DOCBOOK output. Note that enabling this will significantly -# increase the size of the DOCBOOK output. -# The default value is: NO. -# This tag requires that the tag GENERATE_DOCBOOK is set to YES. - -DOCBOOK_PROGRAMLISTING = NO - #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an -# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures +# AutoGen Definitions (see https://autogen.sourceforge.net/) file that captures # the structure of the code including all documentation. Note that this feature # is still experimental and incomplete at the moment. # The default value is: NO. GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# Configuration options related to Sqlite3 output +#--------------------------------------------------------------------------- + +# If the GENERATE_SQLITE3 tag is set to YES doxygen will generate a Sqlite3 +# database with symbols found by doxygen stored in tables. +# The default value is: NO. + +GENERATE_SQLITE3 = NO + +# The SQLITE3_OUTPUT tag is used to specify where the Sqlite3 database will be +# put. If a relative path is entered the value of OUTPUT_DIRECTORY will be put +# in front of it. +# The default directory is: sqlite3. +# This tag requires that the tag GENERATE_SQLITE3 is set to YES. + +SQLITE3_OUTPUT = sqlite3 + +# The SQLITE3_OVERWRITE_DB tag is set to YES, the existing doxygen_sqlite3.db +# database file will be recreated with each doxygen run. If set to NO, doxygen +# will warn if an a database file is already found and not modify it. +# The default value is: YES. +# This tag requires that the tag GENERATE_SQLITE3 is set to YES. + +SQLITE3_RECREATE_DB = YES + #--------------------------------------------------------------------------- # Configuration options related to the Perl module output #--------------------------------------------------------------------------- @@ -2192,7 +2362,8 @@ SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by the -# preprocessor. +# preprocessor. Note that the INCLUDE_PATH is not recursive, so the setting of +# RECURSIVE has no effect here. # This tag requires that the tag SEARCH_INCLUDES is set to YES. INCLUDE_PATH = @@ -2259,15 +2430,15 @@ TAGFILES = GENERATE_TAGFILE = -# If the ALLEXTERNALS tag is set to YES, all external class will be listed in -# the class index. If set to NO, only the inherited external classes will be -# listed. +# If the ALLEXTERNALS tag is set to YES, all external classes and namespaces +# will be listed in the class and namespace index. If set to NO, only the +# inherited external classes will be listed. # The default value is: NO. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will be +# in the topic index. If set to NO, only the current project's groups will be # listed. # The default value is: YES. @@ -2281,25 +2452,9 @@ EXTERNAL_GROUPS = YES EXTERNAL_PAGES = YES #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to diagram generator tools #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram -# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to -# NO turns the diagrams off. Note that this option also works with HAVE_DOT -# disabled, but it is recommended to install and use dot, since it yields more -# powerful graphs. -# The default value is: YES. - -CLASS_DIAGRAMS = YES - -# You can include diagrams made with dia in doxygen documentation. Doxygen will -# then run dia to produce the diagram and insert it in the documentation. The -# DIA_PATH tag allows you to specify the directory where the dia binary resides. -# If left empty dia is assumed to be found in the default search path. - -DIA_PATH = - # If set to YES the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. # The default value is: YES. @@ -2308,7 +2463,7 @@ HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz (see: -# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent +# https://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is # set to NO # The default value is: YES. @@ -2325,49 +2480,73 @@ HAVE_DOT = NO DOT_NUM_THREADS = 0 -# When you want a differently looking font in the dot files that doxygen -# generates you can specify the font name using DOT_FONTNAME. You need to make -# sure dot is able to find the font, which can be done by putting it in a -# standard location or by setting the DOTFONTPATH environment variable or by -# setting DOT_FONTPATH to the directory containing the font. -# The default value is: Helvetica. +# DOT_COMMON_ATTR is common attributes for nodes, edges and labels of +# subgraphs. When you want a differently looking font in the dot files that +# doxygen generates you can specify fontname, fontcolor and fontsize attributes. +# For details please see Node, +# Edge and Graph Attributes specification You need to make sure dot is able +# to find the font, which can be done by putting it in a standard location or by +# setting the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the +# directory containing the font. Default graphviz fontsize is 14. +# The default value is: fontname=Helvetica,fontsize=10. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTNAME = +DOT_COMMON_ATTR = "fontname=Helvetica,fontsize=10" -# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of -# dot graphs. -# Minimum value: 4, maximum value: 24, default value: 10. +# DOT_EDGE_ATTR is concatenated with DOT_COMMON_ATTR. For elegant style you can +# add 'arrowhead=open, arrowtail=open, arrowsize=0.5'. Complete documentation about +# arrows shapes. +# The default value is: labelfontname=Helvetica,labelfontsize=10. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTSIZE = 10 +DOT_EDGE_ATTR = "labelfontname=Helvetica,labelfontsize=10" -# By default doxygen will tell dot to use the default font as specified with -# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set -# the path where dot can find it using this tag. +# DOT_NODE_ATTR is concatenated with DOT_COMMON_ATTR. For view without boxes +# around nodes set 'shape=plain' or 'shape=plaintext' Shapes specification +# The default value is: shape=box,height=0.2,width=0.4. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4" + +# You can set the path where dot can find font specified with fontname in +# DOT_COMMON_ATTR and others dot attributes. # This tag requires that the tag HAVE_DOT is set to YES. DOT_FONTPATH = -# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for -# each documented class showing the direct and indirect inheritance relations. -# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. +# If the CLASS_GRAPH tag is set to YES or GRAPH or BUILTIN then doxygen will +# generate a graph for each documented class showing the direct and indirect +# inheritance relations. In case the CLASS_GRAPH tag is set to YES or GRAPH and +# HAVE_DOT is enabled as well, then dot will be used to draw the graph. In case +# the CLASS_GRAPH tag is set to YES and HAVE_DOT is disabled or if the +# CLASS_GRAPH tag is set to BUILTIN, then the built-in generator will be used. +# If the CLASS_GRAPH tag is set to TEXT the direct and indirect inheritance +# relations will be shown as texts / links. +# Possible values are: NO, YES, TEXT, GRAPH and BUILTIN. # The default value is: YES. -# This tag requires that the tag HAVE_DOT is set to YES. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a # graph for each documented class showing the direct and indirect implementation # dependencies (inheritance, containment, and class references variables) of the -# class with other documented classes. +# class with other documented classes. Explicit enabling a collaboration graph, +# when COLLABORATION_GRAPH is set to NO, can be accomplished by means of the +# command \collaborationgraph. Disabling a collaboration graph can be +# accomplished by means of the command \hidecollaborationgraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for -# groups, showing the direct groups dependencies. +# groups, showing the direct groups dependencies. Explicit enabling a group +# dependency graph, when GROUP_GRAPHS is set to NO, can be accomplished by means +# of the command \groupgraph. Disabling a directory graph can be accomplished by +# means of the command \hidegroupgraph. See also the chapter Grouping in the +# manual. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2427,7 +2606,9 @@ TEMPLATE_RELATIONS = NO # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to # YES then doxygen will generate a graph for each documented file showing the # direct and indirect include dependencies of the file with other documented -# files. +# files. Explicit enabling an include graph, when INCLUDE_GRAPH is is set to NO, +# can be accomplished by means of the command \includegraph. Disabling an +# include graph can be accomplished by means of the command \hideincludegraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2436,7 +2617,10 @@ INCLUDE_GRAPH = YES # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are # set to YES then doxygen will generate a graph for each documented file showing # the direct and indirect include dependencies of the file with other documented -# files. +# files. Explicit enabling an included by graph, when INCLUDED_BY_GRAPH is set +# to NO, can be accomplished by means of the command \includedbygraph. Disabling +# an included by graph can be accomplished by means of the command +# \hideincludedbygraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2476,23 +2660,32 @@ GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the # dependencies a directory has on other directories in a graphical way. The # dependency relations are determined by the #include relations between the -# files in the directories. +# files in the directories. Explicit enabling a directory graph, when +# DIRECTORY_GRAPH is set to NO, can be accomplished by means of the command +# \directorygraph. Disabling a directory graph can be accomplished by means of +# the command \hidedirectorygraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. DIRECTORY_GRAPH = YES +# The DIR_GRAPH_MAX_DEPTH tag can be used to limit the maximum number of levels +# of child directories generated in directory dependency graphs by dot. +# Minimum value: 1, maximum value: 25, default value: 1. +# This tag requires that the tag DIRECTORY_GRAPH is set to YES. + +DIR_GRAPH_MAX_DEPTH = 1 + # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. For an explanation of the image formats see the section # output formats in the documentation of the dot tool (Graphviz (see: -# http://www.graphviz.org/)). +# https://www.graphviz.org/)). # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order # to make the SVG files visible in IE 9+ (other browsers do not have this # requirement). -# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, -# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, -# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo, -# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and +# Possible values are: png, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, +# gif, gif:cairo, gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, +# png:cairo, png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and # png:gdiplus:gdiplus. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2524,11 +2717,12 @@ DOT_PATH = DOTFILE_DIRS = -# The MSCFILE_DIRS tag can be used to specify one or more directories that -# contain msc files that are included in the documentation (see the \mscfile -# command). +# You can include diagrams made with dia in doxygen documentation. Doxygen will +# then run dia to produce the diagram and insert it in the documentation. The +# DIA_PATH tag allows you to specify the directory where the dia binary resides. +# If left empty dia is assumed to be found in the default search path. -MSCFILE_DIRS = +DIA_PATH = # The DIAFILE_DIRS tag can be used to specify one or more directories that # contain dia files that are included in the documentation (see the \diafile @@ -2537,10 +2731,10 @@ MSCFILE_DIRS = DIAFILE_DIRS = # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the -# path where java can find the plantuml.jar file. If left blank, it is assumed -# PlantUML is not used or called during a preprocessing step. Doxygen will -# generate a warning when it encounters a \startuml command in this case and -# will not generate output for the diagram. +# path where java can find the plantuml.jar file or to the filename of jar file +# to be used. If left blank, it is assumed PlantUML is not used or called during +# a preprocessing step. Doxygen will generate a warning when it encounters a +# \startuml command in this case and will not generate output for the diagram. PLANTUML_JAR_PATH = @@ -2578,18 +2772,6 @@ DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not seem -# to support this out of the box. -# -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). -# The default value is: NO. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_TRANSPARENT = NO - # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) support @@ -2602,6 +2784,8 @@ DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page # explaining the meaning of the various boxes and arrows in the dot generated # graphs. +# Note: This tag requires that UML_LOOK isn't set, i.e. the doxygen internal +# graphical representation for inheritance and collaboration diagrams is used. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2610,8 +2794,24 @@ GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate # files that are used to generate the various graphs. # -# Note: This setting is not only used for dot files but also for msc and -# plantuml temporary files. +# Note: This setting is not only used for dot files but also for msc temporary +# files. # The default value is: YES. DOT_CLEANUP = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. If the MSCGEN_TOOL tag is left empty (the default), then doxygen will +# use a built-in version of mscgen tool to produce the charts. Alternatively, +# the MSCGEN_TOOL tag can also specify the name an external tool. For instance, +# specifying prog as the value, doxygen will call the tool as prog -T +# -o . The external tool should support +# output file formats "png", "eps", "svg", and "ismap". + +MSCGEN_TOOL = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the \mscfile +# command). + +MSCFILE_DIRS = From 3a6d24e3f1210e5b1560b0590fd038f783908467 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 09:27:55 +0200 Subject: [PATCH 171/675] Replace DNSSEC_EOK with KNOT_EOK --- src/knot/dnssec/kasp/keystore.c | 6 +-- src/knot/dnssec/key_records.c | 2 +- src/knot/dnssec/rrset-sign.c | 4 +- src/knot/dnssec/zone-keys.c | 12 ++--- src/knot/dnssec/zone-nsec.c | 4 +- src/knot/modules/onlinesign/onlinesign.c | 10 ++-- src/knot/modules/rrl/kru.inc.c | 2 +- src/knot/zone/backup.c | 10 ++-- src/knot/zone/contents.c | 6 +-- src/knot/zone/digest.c | 2 +- src/libknot/dnssec/binary.c | 10 ++-- src/libknot/dnssec/binary.h | 10 ++-- src/libknot/dnssec/digest.c | 6 +-- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/key.h | 6 +-- src/libknot/dnssec/key/algorithm.c | 2 +- src/libknot/dnssec/key/convert.c | 18 +++---- src/libknot/dnssec/key/convert.h | 4 +- src/libknot/dnssec/key/dnskey.c | 8 +-- src/libknot/dnssec/key/ds.c | 4 +- src/libknot/dnssec/key/key.c | 34 ++++++------ src/libknot/dnssec/key/keytag.c | 2 +- src/libknot/dnssec/key/privkey.c | 14 ++--- src/libknot/dnssec/key/privkey.h | 2 +- src/libknot/dnssec/key/simple.c | 6 +-- src/libknot/dnssec/keystore.h | 16 +++--- src/libknot/dnssec/keystore/keystore.c | 12 ++--- src/libknot/dnssec/keystore/pkcs11.c | 34 ++++++------ src/libknot/dnssec/keystore/pkcs8.c | 58 ++++++++++----------- src/libknot/dnssec/keytag.h | 2 +- src/libknot/dnssec/nsec.h | 4 +- src/libknot/dnssec/nsec/hash.c | 4 +- src/libknot/dnssec/nsec/nsec.c | 2 +- src/libknot/dnssec/p11/p11.c | 10 ++-- src/libknot/dnssec/pem.c | 18 +++---- src/libknot/dnssec/pem.h | 8 +-- src/libknot/dnssec/random.c | 2 +- src/libknot/dnssec/random.h | 4 +- src/libknot/dnssec/shared/keyid_gnutls.c | 8 +-- src/libknot/dnssec/sign.h | 10 ++-- src/libknot/dnssec/sign/der.c | 16 +++--- src/libknot/dnssec/sign/der.h | 4 +- src/libknot/dnssec/sign/sign.c | 22 ++++---- src/libknot/dnssec/tsig.c | 6 +-- src/libknot/dnssec/tsig.h | 6 +-- src/libknot/quic/quic.c | 4 +- src/libknot/tsig-op.c | 4 +- src/libknot/tsig.c | 2 +- src/utils/common/quic.c | 8 +-- src/utils/kdig/kdig_params.c | 2 +- src/utils/keymgr/bind_privkey.c | 14 ++--- src/utils/keymgr/functions.c | 32 ++++++------ src/utils/keymgr/keystore.c | 54 +++++++++---------- src/utils/knsec3hash/knsec3hash.c | 8 +-- tests/libknot/test_dnssec_binary.c | 6 +-- tests/libknot/test_dnssec_key.c | 20 +++---- tests/libknot/test_dnssec_key_algorithm.c | 6 +-- tests/libknot/test_dnssec_key_ds.c | 4 +- tests/libknot/test_dnssec_keystore_pkcs11.c | 40 +++++++------- tests/libknot/test_dnssec_keystore_pkcs8.c | 20 +++---- tests/libknot/test_dnssec_keytag.c | 4 +- tests/libknot/test_dnssec_nsec_hash.c | 6 +-- tests/libknot/test_dnssec_random.c | 2 +- tests/libknot/test_dnssec_sign.c | 38 +++++++------- tests/libknot/test_dnssec_sign_der.c | 8 +-- 66 files changed, 358 insertions(+), 358 deletions(-) diff --git a/src/knot/dnssec/kasp/keystore.c b/src/knot/dnssec/kasp/keystore.c index 6ef3ec7c6b..4d67737a4c 100644 --- a/src/knot/dnssec/kasp/keystore.c +++ b/src/knot/dnssec/kasp/keystore.c @@ -48,7 +48,7 @@ int keystore_load(const char *config, unsigned backend, default: assert(0); } - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { free(fixed_config); return knot_error_from_libdnssec(ret); } @@ -59,7 +59,7 @@ int keystore_load(const char *config, unsigned backend, } ret = dnssec_keystore_init(*keystore, fixed_config); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { free(fixed_config); dnssec_keystore_deinit(*keystore); *keystore = NULL; @@ -68,7 +68,7 @@ int keystore_load(const char *config, unsigned backend, ret = dnssec_keystore_open(*keystore, fixed_config); free(fixed_config); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { dnssec_keystore_deinit(*keystore); *keystore = NULL; return knot_error_from_libdnssec(ret); diff --git a/src/knot/dnssec/key_records.c b/src/knot/dnssec/key_records.c index 547c80e36c..2d35493776 100644 --- a/src/knot/dnssec/key_records.c +++ b/src/knot/dnssec/key_records.c @@ -182,7 +182,7 @@ int key_records_sign(const zone_key_t *key, key_records_t *r, const kdnssec_ctx_ { dnssec_sign_ctx_t *sign_ctx; int ret = dnssec_sign_new(&sign_ctx, key->key); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { ret = knot_error_from_libdnssec(ret); } diff --git a/src/knot/dnssec/rrset-sign.c b/src/knot/dnssec/rrset-sign.c index 1a470ae882..ff5a24c422 100644 --- a/src/knot/dnssec/rrset-sign.c +++ b/src/knot/dnssec/rrset-sign.c @@ -117,7 +117,7 @@ static int sign_ctx_add_self(dnssec_sign_ctx_t *ctx, const uint8_t *rdata) header.size = RRSIG_RDATA_SIGNER_OFFSET; result = dnssec_sign_add(ctx, &header); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -235,7 +235,7 @@ static int rrsigs_create_rdata(knot_rrset_t *rrsigs, dnssec_sign_ctx_t *ctx, dnssec_binary_t signature = { 0 }; res = dnssec_sign_write(ctx, sign_flags, &signature); - if (res != DNSSEC_EOK) { + if (res != KNOT_EOK) { return res; } assert(signature.size > 0); diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index e13e74b8de..234a8ac9c2 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -521,7 +521,7 @@ static int load_private_keys(kdnssec_ctx_t *ctx, zone_keyset_t *keyset) } int ret = kdnssec_load_private(ctx->keystores, key->id, key->key, NULL, NULL); switch (ret) { - case DNSSEC_EOK: + case KNOT_EOK: case DNSSEC_KEY_ALREADY_PRESENT: break; default: @@ -734,7 +734,7 @@ zone_sign_ctx_t *zone_sign_ctx(const zone_keyset_t *keyset, const kdnssec_ctx_t } ret = dnssec_sign_new(&ctx->sign_ctxs[i], ctx->keys[i].key); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { zone_sign_ctx_free(ctx); return NULL; } @@ -757,7 +757,7 @@ zone_sign_ctx_t *zone_validation_ctx(const kdnssec_ctx_t *dnssec_ctx) ctx->dnssec_ctx = dnssec_ctx; for (size_t i = 0; i < ctx->count; i++) { int ret = dnssec_sign_new(&ctx->sign_ctxs[i], dnssec_ctx->zone->keys[i].key); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { zone_sign_ctx_free(ctx); return NULL; } @@ -794,17 +794,17 @@ int dnssec_key_from_rdata(dnssec_key_t **key, const knot_dname_t *owner, dnssec_key_t *new_key = NULL; int ret = dnssec_key_new(&new_key); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { return knot_error_from_libdnssec(ret); } ret = dnssec_key_set_rdata(new_key, &binary_key); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { dnssec_key_free(new_key); return knot_error_from_libdnssec(ret); } if (owner != NULL) { ret = dnssec_key_set_dname(new_key, owner); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { dnssec_key_free(new_key); return knot_error_from_libdnssec(ret); } diff --git a/src/knot/dnssec/zone-nsec.c b/src/knot/dnssec/zone-nsec.c index e2ea91b528..daaea5a3e1 100644 --- a/src/knot/dnssec/zone-nsec.c +++ b/src/knot/dnssec/zone-nsec.c @@ -61,7 +61,7 @@ int knot_create_nsec3_owner(uint8_t *out, size_t out_size, dnssec_binary_t hash = { 0 }; int ret = dnssec_nsec3_hash(&data, params, &hash); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { return knot_error_from_libdnssec(ret); } @@ -163,7 +163,7 @@ static bool nsec3param_valid(const knot_rdataset_t *rrs, dnssec_nsec3_params_t parsed = { 0 }; int r = dnssec_nsec3_params_from_rdata(&parsed, &rdata); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return false; } diff --git a/src/knot/modules/onlinesign/onlinesign.c b/src/knot/modules/onlinesign/onlinesign.c index b5d13863cb..e56328011a 100644 --- a/src/knot/modules/onlinesign/onlinesign.c +++ b/src/knot/modules/onlinesign/onlinesign.c @@ -351,7 +351,7 @@ static knotd_in_state_t synth_authority(knotd_in_state_t state, knot_pkt_t *pkt, if (want_dnssec(qdata)) { knot_rrset_t *nsec = synth_nsec(pkt, qdata, mod, &pkt->mm); int r = knot_pkt_put(pkt, KNOT_COMPR_HINT_NONE, nsec, KNOT_PF_FREE); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { knot_rrset_free(nsec, &pkt->mm); return KNOTD_IN_STATE_ERROR; } @@ -536,7 +536,7 @@ static knotd_in_state_t synth_answer(knotd_in_state_t state, knot_pkt_t *pkt, } int r = knot_pkt_put(pkt, KNOT_COMPR_HINT_QNAME, dnskey, KNOT_PF_FREE); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { knot_rrset_free(dnskey, &pkt->mm); return KNOTD_IN_STATE_ERROR; } @@ -550,7 +550,7 @@ static knotd_in_state_t synth_answer(knotd_in_state_t state, knot_pkt_t *pkt, } int r = knot_pkt_put(pkt, KNOT_COMPR_HINT_QNAME, dnskey, KNOT_PF_FREE); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { knot_rrset_free(dnskey, &pkt->mm); return KNOTD_IN_STATE_ERROR; } @@ -564,7 +564,7 @@ static knotd_in_state_t synth_answer(knotd_in_state_t state, knot_pkt_t *pkt, } int r = knot_pkt_put(pkt, KNOT_COMPR_HINT_QNAME, ds, KNOT_PF_FREE); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { knot_rrset_free(ds, &pkt->mm); return KNOTD_IN_STATE_ERROR; } @@ -578,7 +578,7 @@ static knotd_in_state_t synth_answer(knotd_in_state_t state, knot_pkt_t *pkt, } int r = knot_pkt_put(pkt, KNOT_COMPR_HINT_QNAME, nsec, KNOT_PF_FREE); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { knot_rrset_free(nsec, &pkt->mm); return KNOTD_IN_STATE_ERROR; } diff --git a/src/knot/modules/rrl/kru.inc.c b/src/knot/modules/rrl/kru.inc.c index e93704e463..63aff6435f 100644 --- a/src/knot/modules/rrl/kru.inc.c +++ b/src/knot/modules/rrl/kru.inc.c @@ -206,7 +206,7 @@ static bool kru_initialize(struct kru *kru, int capacity_log, kru_price_t max_de kru->loads_bits = loads_bits; - if (dnssec_random_buffer((uint8_t *)&kru->hash_key, sizeof(kru->hash_key)) != DNSSEC_EOK) { + if (dnssec_random_buffer((uint8_t *)&kru->hash_key, sizeof(kru->hash_key)) != KNOT_EOK) { return false; } diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index 8b08f9a498..b27e850067 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -221,27 +221,27 @@ static int backup_key(key_params_t *parm, const knot_dname_t *zname, bool restor { dnssec_key_t *key = NULL; int ret = dnssec_key_new(&key); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { return knot_error_from_libdnssec(ret); } dnssec_key_set_algorithm(key, parm->algorithm); unsigned backend; ret = kdnssec_load_private(from, parm->id, key, NULL, &backend); - if (ret == DNSSEC_EOK) { + if (ret == KNOT_EOK) { // If restore, consider only the first configured keystore. assert(to->count > 0); ret = dnssec_keystore_set_private(to[0].keystore, key); backend = restore ? to->backend : backend; - if (ret != DNSSEC_EOK && backend == KEYSTORE_BACKEND_PKCS11) { + if (ret != KNOT_EOK && backend == KEYSTORE_BACKEND_PKCS11) { log_zone_notice(zname, "%s of private key id %s via PKCS #11 not possible, ignoring", restore ? "restore" : "backup", parm->id); - ret = DNSSEC_EOK; + ret = KNOT_EOK; } } else if (ret == DNSSEC_ENOENT) { log_zone_notice(zname, "private key id %s not available, ignoring", parm->id); - ret = DNSSEC_EOK; + ret = KNOT_EOK; } dnssec_key_free(key); diff --git a/src/knot/zone/contents.c b/src/knot/zone/contents.c index 65ef61a98a..dbd1fc4838 100644 --- a/src/knot/zone/contents.c +++ b/src/knot/zone/contents.c @@ -591,9 +591,9 @@ int zone_contents_load_nsec3param(zone_contents_t *contents) }; dnssec_nsec3_params_t new_params = { 0 }; - int r = dnssec_nsec3_params_from_rdata(&new_params, &rdata); - if (r != DNSSEC_EOK) { - return KNOT_EMALF; + int ret = dnssec_nsec3_params_from_rdata(&new_params, &rdata); + if (ret != KNOT_EOK) { + return ret; } dnssec_nsec3_params_free(&contents->nsec3_params); diff --git a/src/knot/zone/digest.c b/src/knot/zone/digest.c index 9dc2a133af..6813bca61f 100644 --- a/src/knot/zone/digest.c +++ b/src/knot/zone/digest.c @@ -107,7 +107,7 @@ int zone_contents_digest(const zone_contents_t *contents, int algorithm, } int ret = dnssec_digest_init(algorithm, &ctx.digest_ctx); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { free(ctx.buf); return knot_error_from_libdnssec(ret); } diff --git a/src/libknot/dnssec/binary.c b/src/libknot/dnssec/binary.c index 27c8008bad..17862ccebb 100644 --- a/src/libknot/dnssec/binary.c +++ b/src/libknot/dnssec/binary.c @@ -28,7 +28,7 @@ int dnssec_binary_alloc(dnssec_binary_t *data, size_t size) data->data = new_data; data->size = size; - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -59,7 +59,7 @@ int dnssec_binary_dup(const dnssec_binary_t *from, dnssec_binary_t *to) to->size = from->size; to->data = copy; - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -77,7 +77,7 @@ int dnssec_binary_resize(dnssec_binary_t *data, size_t new_size) data->data = new_data; data->size = new_size; - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -128,7 +128,7 @@ int dnssec_binary_from_base64(const dnssec_binary_t *base64, binary->data = data; binary->size = size; - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -148,5 +148,5 @@ int dnssec_binary_to_base64(const dnssec_binary_t *binary, base64->data = data; base64->size = size; - return DNSSEC_EOK; + return KNOT_EOK; } diff --git a/src/libknot/dnssec/binary.h b/src/libknot/dnssec/binary.h index 22519145f8..1878231e62 100644 --- a/src/libknot/dnssec/binary.h +++ b/src/libknot/dnssec/binary.h @@ -35,7 +35,7 @@ typedef struct dnssec_binary { * \param[out] data Binary to be allocated. * \param[in] size Requested size of the binary. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_binary_alloc(dnssec_binary_t *data, size_t size); @@ -52,7 +52,7 @@ void dnssec_binary_free(dnssec_binary_t *binary); * \param[in] from Source of the copy. * \param[out] to Target of the copy. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_binary_dup(const dnssec_binary_t *from, dnssec_binary_t *to); @@ -65,7 +65,7 @@ int dnssec_binary_dup(const dnssec_binary_t *from, dnssec_binary_t *to); * \param data Binary to be resized. * \param new_size New size. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_binary_resize(dnssec_binary_t *data, size_t new_size); @@ -87,7 +87,7 @@ int dnssec_binary_cmp(const dnssec_binary_t *one, const dnssec_binary_t *two); * \param[in] base64 Base64 encoded data. * \param[out] binary Decoded binary data. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_binary_from_base64(const dnssec_binary_t *base64, dnssec_binary_t *binary); @@ -98,7 +98,7 @@ int dnssec_binary_from_base64(const dnssec_binary_t *base64, * \param[in] binary Binary data. * \param[out] base64 Base64 encode data. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_binary_to_base64(const dnssec_binary_t *binary, dnssec_binary_t *base64); diff --git a/src/libknot/dnssec/digest.c b/src/libknot/dnssec/digest.c index 0271e79b24..97edf00e51 100644 --- a/src/libknot/dnssec/digest.c +++ b/src/libknot/dnssec/digest.c @@ -49,7 +49,7 @@ int dnssec_digest_init(dnssec_digest_t algorithm, dnssec_digest_ctx_t **out_ctx) } *out_ctx = res; - return DNSSEC_EOK; + return KNOT_EOK; } static void digest_ctx_free(dnssec_digest_ctx_t *ctx) @@ -70,7 +70,7 @@ int dnssec_digest(dnssec_digest_ctx_t *ctx, dnssec_binary_t *data) digest_ctx_free(ctx); return DNSSEC_DIGEST_ERROR; } - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -90,5 +90,5 @@ int dnssec_digest_finish(dnssec_digest_ctx_t *ctx, dnssec_binary_t *out) gnutls_hash_output(ctx->gtctx, out->data); digest_ctx_free(ctx); - return DNSSEC_EOK; + return KNOT_EOK; } diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 0b418290e0..fe8a4d8958 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -14,7 +14,7 @@ typedef struct error_message_t { } error_message_t; static const error_message_t ERROR_MESSAGES[] = { - { DNSSEC_EOK, "no error" }, + { KNOT_EOK, "no error" }, { DNSSEC_ENOMEM, "not enough memory" }, { DNSSEC_EINVAL, "invalid argument" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index cb97913439..90a9bbb371 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -24,7 +24,7 @@ * Library error codes. */ enum dnssec_error { - DNSSEC_EOK = 0, + KNOT_EOK = 0, DNSSEC_ENOMEM = -ENOMEM, DNSSEC_EINVAL = -EINVAL, diff --git a/src/libknot/dnssec/key.h b/src/libknot/dnssec/key.h index d01343cef1..e20e4459a5 100644 --- a/src/libknot/dnssec/key.h +++ b/src/libknot/dnssec/key.h @@ -104,7 +104,7 @@ bool dnssec_algorithm_reproducible(dnssec_key_algorithm_t algorithm, bool enable * The protocol field of the key is set to 3 (DNSSEC). * The flags field of the key is set to 256 (zone key, no SEP). * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_key_new(dnssec_key_t **key); @@ -252,7 +252,7 @@ bool dnssec_key_can_verify(const dnssec_key_t *key); * \param[out] min Minimal size of the private key (can be NULL). * \param[out] max Maximal size of the private key (can be NULL). * - * \return DNSSEC_EOK for valid parameters. + * \return KNOT_EOK for valid parameters. */ int dnssec_algorithm_key_size_range(dnssec_key_algorithm_t algorithm, unsigned *min, unsigned *max); @@ -290,7 +290,7 @@ bool dnssec_algorithm_digest_support(dnssec_key_digest_t algorithm); * \param[in] digest Digest algorithm to be used. * \param[out] rdata Allocated DS RDATA. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_key_create_ds(const dnssec_key_t *key, dnssec_key_digest_t digest, dnssec_binary_t *rdata); diff --git a/src/libknot/dnssec/key/algorithm.c b/src/libknot/dnssec/key/algorithm.c index f0a1379f9f..a9d1be0058 100644 --- a/src/libknot/dnssec/key/algorithm.c +++ b/src/libknot/dnssec/key/algorithm.c @@ -132,7 +132,7 @@ int dnssec_algorithm_key_size_range(dnssec_key_algorithm_t algorithm, *max_ptr = limits->max; } - return DNSSEC_EOK; + return KNOT_EOK; } _public_ diff --git a/src/libknot/dnssec/key/convert.c b/src/libknot/dnssec/key/convert.c index 12c185b86c..7978c3c3c0 100644 --- a/src/libknot/dnssec/key/convert.c +++ b/src/libknot/dnssec/key/convert.c @@ -68,7 +68,7 @@ static int rsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata) size_t modulus_size = bignum_size_u_datum(&modulus); result = dnssec_binary_alloc(rdata, 1 + exponent_size + modulus_size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -78,7 +78,7 @@ static int rsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata) wire_write_bignum_datum(&wire, modulus_size, &modulus); assert(wire_ctx_offset(&wire) == rdata->size); - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -127,7 +127,7 @@ static int ecdsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata) } result = dnssec_binary_alloc(rdata, 2 * point_size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -136,7 +136,7 @@ static int ecdsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata) wire_write_bignum_datum(&wire, point_size, &point_y); assert(wire_ctx_offset(&wire) == rdata->size); - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -161,7 +161,7 @@ static int eddsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata) } result = dnssec_binary_alloc(rdata, point_size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -169,7 +169,7 @@ static int eddsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata) wire_write_bignum_datum(&wire, point_size, &point_x); assert(wire_ctx_offset(&wire) == rdata->size); - return DNSSEC_EOK; + return KNOT_EOK; } /* -- crypto to DNSSEC ------------------------------------------------------*/ @@ -213,7 +213,7 @@ static int rsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t key return DNSSEC_KEY_IMPORT_ERROR; } - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -269,7 +269,7 @@ static int ecdsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t k return DNSSEC_KEY_IMPORT_ERROR; } - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -296,7 +296,7 @@ static int eddsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t k return DNSSEC_KEY_IMPORT_ERROR; } - return DNSSEC_EOK; + return KNOT_EOK; } /* -- internal API --------------------------------------------------------- */ diff --git a/src/libknot/dnssec/key/convert.h b/src/libknot/dnssec/key/convert.h index 60e7feac39..2e68579695 100644 --- a/src/libknot/dnssec/key/convert.h +++ b/src/libknot/dnssec/key/convert.h @@ -16,7 +16,7 @@ * \param[in] key Public key to be encoded. * \param[out] rdata Encoded key (allocated). * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int convert_pubkey_to_dnskey(gnutls_pubkey_t key, dnssec_binary_t *rdata); @@ -27,7 +27,7 @@ int convert_pubkey_to_dnskey(gnutls_pubkey_t key, dnssec_binary_t *rdata); * \param[in] rdata Public key in DNSKEY RDATA format. * \param[out] key GnuTLS public key (initialized). * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int convert_dnskey_to_pubkey(uint8_t algorithm, const dnssec_binary_t *rdata, gnutls_pubkey_t key); diff --git a/src/libknot/dnssec/key/dnskey.c b/src/libknot/dnssec/key/dnskey.c index dd71276477..52d9cf0825 100644 --- a/src/libknot/dnssec/key/dnskey.c +++ b/src/libknot/dnssec/key/dnskey.c @@ -21,7 +21,7 @@ int dnskey_rdata_set_pubkey(dnssec_binary_t *rdata, const dnssec_binary_t *pubke size_t new_size = DNSKEY_RDATA_OFFSET_PUBKEY + pubkey->size; int result = dnssec_binary_resize(rdata, new_size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -30,7 +30,7 @@ int dnskey_rdata_set_pubkey(dnssec_binary_t *rdata, const dnssec_binary_t *pubke binary_write(&wire, pubkey); assert(wire_ctx_offset(&wire) == rdata->size); - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -69,12 +69,12 @@ int dnskey_rdata_to_crypto_key(const dnssec_binary_t *rdata, gnutls_pubkey_t *ke } result = convert_dnskey_to_pubkey(algorithm, &rdata_pubkey, key); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { gnutls_pubkey_deinit(key); return result; } *key_ptr = key; - return DNSSEC_EOK; + return KNOT_EOK; } diff --git a/src/libknot/dnssec/key/ds.c b/src/libknot/dnssec/key/ds.c index 098bbfa3f5..9f6fb0fb4a 100644 --- a/src/libknot/dnssec/key/ds.c +++ b/src/libknot/dnssec/key/ds.c @@ -100,7 +100,7 @@ int dnssec_key_create_ds(const dnssec_key_t *key, dnssec_binary_t rdata = { 0 }; r = dnssec_binary_alloc(&rdata, 4 + digest_size); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -113,5 +113,5 @@ int dnssec_key_create_ds(const dnssec_key_t *key, *rdata_ptr = rdata; - return DNSSEC_EOK; + return KNOT_EOK; } diff --git a/src/libknot/dnssec/key/key.c b/src/libknot/dnssec/key/key.c index 7ea3c05a68..46e948b7c9 100644 --- a/src/libknot/dnssec/key/key.c +++ b/src/libknot/dnssec/key/key.c @@ -52,14 +52,14 @@ int dnssec_key_new(dnssec_key_t **key_ptr) } int r = dnssec_binary_dup(&DNSKEY_RDATA_TEMPLATE, &key->rdata); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { free(key); return DNSSEC_ENOMEM; } *key_ptr = key; - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -123,9 +123,9 @@ dnssec_key_t *dnssec_key_dup(const dnssec_key_t *key) dnssec_key_t *dup = NULL; - if (dnssec_key_new(&dup) != DNSSEC_EOK || - dnssec_key_set_dname(dup, key->dname) != DNSSEC_EOK || - dnssec_key_set_rdata(dup, &key->rdata) != DNSSEC_EOK + if (dnssec_key_new(&dup) != KNOT_EOK || + dnssec_key_set_dname(dup, key->dname) != KNOT_EOK || + dnssec_key_set_rdata(dup, &key->rdata) != KNOT_EOK ) { dnssec_key_free(dup); return NULL; @@ -188,7 +188,7 @@ int dnssec_key_set_dname(dnssec_key_t *key, const uint8_t *dname) free(key->dname); key->dname = copy; - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -214,7 +214,7 @@ int dnssec_key_set_flags(dnssec_key_t *key, uint16_t flags) wire_ctx_set_offset(&wire, DNSKEY_RDATA_OFFSET_FLAGS); wire_ctx_write_u16(&wire, flags); - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -240,7 +240,7 @@ int dnssec_key_set_protocol(dnssec_key_t *key, uint8_t protocol) wire_ctx_set_offset(&wire, DNSKEY_RDATA_OFFSET_PROTOCOL); wire_ctx_write_u8(&wire, protocol); - return DNSSEC_EOK; + return KNOT_EOK; } /* -- restricted attributes ------------------------------------------------ */ @@ -305,7 +305,7 @@ int dnssec_key_set_algorithm(dnssec_key_t *key, uint8_t algorithm) wire_ctx_set_offset(&wire, DNSKEY_RDATA_OFFSET_ALGORITHM); wire_ctx_write_u8(&wire, algorithm); - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -319,7 +319,7 @@ int dnssec_key_get_pubkey(const dnssec_key_t *key, dnssec_binary_t *pubkey) wire_ctx_set_offset(&wire, DNSKEY_RDATA_OFFSET_PUBKEY); binary_available(&wire, pubkey); - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -338,17 +338,17 @@ int dnssec_key_set_pubkey(dnssec_key_t *key, const dnssec_binary_t *pubkey) } int result = dnskey_rdata_set_pubkey(&key->rdata, pubkey); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } result = dnskey_rdata_to_crypto_key(&key->rdata, &key->public_key); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { key->rdata.size = DNSKEY_RDATA_OFFSET_PUBKEY; // downsize return result; } - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -399,7 +399,7 @@ int dnssec_key_get_rdata(const dnssec_key_t *key, dnssec_binary_t *rdata) *rdata = key->rdata; - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -419,12 +419,12 @@ int dnssec_key_set_rdata(dnssec_key_t *key, const dnssec_binary_t *rdata) gnutls_pubkey_t new_pubkey = NULL; int result = dnskey_rdata_to_crypto_key(rdata, &new_pubkey); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } result = dnssec_binary_resize(&key->rdata, rdata->size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { gnutls_pubkey_deinit(new_pubkey); return result; } @@ -433,7 +433,7 @@ int dnssec_key_set_rdata(dnssec_key_t *key, const dnssec_binary_t *rdata) memmove(key->rdata.data, rdata->data, rdata->size); key->public_key = new_pubkey; - return DNSSEC_EOK; + return KNOT_EOK; } /* -- key presence checking ------------------------------------------------ */ diff --git a/src/libknot/dnssec/key/keytag.c b/src/libknot/dnssec/key/keytag.c index aea7682644..f1df0dd4d7 100644 --- a/src/libknot/dnssec/key/keytag.c +++ b/src/libknot/dnssec/key/keytag.c @@ -73,5 +73,5 @@ int dnssec_keytag(const dnssec_binary_t *rdata, uint16_t *keytag) *keytag = keytag_current(rdata); } - return DNSSEC_EOK; + return KNOT_EOK; } diff --git a/src/libknot/dnssec/key/privkey.c b/src/libknot/dnssec/key/privkey.c index a8af823214..71db505fa9 100644 --- a/src/libknot/dnssec/key/privkey.c +++ b/src/libknot/dnssec/key/privkey.c @@ -51,7 +51,7 @@ static int public_from_private(gnutls_privkey_t privkey, gnutls_pubkey_t *pubkey *pubkey = new_key; - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -69,7 +69,7 @@ static int create_public_key(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey = NULL; int result = public_from_private(privkey, &pubkey); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -77,14 +77,14 @@ static int create_public_key(gnutls_privkey_t privkey, _cleanup_binary_ dnssec_binary_t rdata_pubkey = { 0 }; result = convert_pubkey_to_dnskey(pubkey, &rdata_pubkey); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { gnutls_pubkey_deinit(pubkey); return result; } size_t rdata_size = DNSKEY_RDATA_OFFSET_PUBKEY + rdata_pubkey.size; result = dnssec_binary_resize(rdata, rdata_size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { gnutls_pubkey_deinit(pubkey); return result; } @@ -98,7 +98,7 @@ static int create_public_key(gnutls_privkey_t privkey, *pubkey_ptr = pubkey; - return DNSSEC_EOK; + return KNOT_EOK; } /* -- internal API --------------------------------------------------------- */ @@ -118,12 +118,12 @@ int key_set_private_key(dnssec_key_t *key, gnutls_privkey_t privkey) if (!key->public_key) { int r = create_public_key(privkey, &key->public_key, &key->rdata); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } } key->private_key = privkey; - return DNSSEC_EOK; + return KNOT_EOK; } diff --git a/src/libknot/dnssec/key/privkey.h b/src/libknot/dnssec/key/privkey.h index 64d8b6ba7d..77d4faa6f3 100644 --- a/src/libknot/dnssec/key/privkey.h +++ b/src/libknot/dnssec/key/privkey.h @@ -19,6 +19,6 @@ * \param key DNSSEC key to be updated. * \param privkey Private key to be set. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int key_set_private_key(dnssec_key_t *key, gnutls_privkey_t privkey); diff --git a/src/libknot/dnssec/key/simple.c b/src/libknot/dnssec/key/simple.c index 4307280b71..ae07a59800 100644 --- a/src/libknot/dnssec/key/simple.c +++ b/src/libknot/dnssec/key/simple.c @@ -30,15 +30,15 @@ int dnssec_key_load_pkcs8(dnssec_key_t *key, const dnssec_binary_t *pem) gnutls_privkey_t privkey = NULL; int r = dnssec_pem_to_privkey(pem, &privkey); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } r = key_set_private_key(key, privkey); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { gnutls_privkey_deinit(privkey); return r; } - return DNSSEC_EOK; + return KNOT_EOK; } diff --git a/src/libknot/dnssec/keystore.h b/src/libknot/dnssec/keystore.h index aaca91c5dc..afa31432d3 100644 --- a/src/libknot/dnssec/keystore.h +++ b/src/libknot/dnssec/keystore.h @@ -41,7 +41,7 @@ typedef struct dnssec_keystore dnssec_keystore_t; * * \param[out] store Opened key store. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_keystore_init_pkcs8(dnssec_keystore_t **store); @@ -50,7 +50,7 @@ int dnssec_keystore_init_pkcs8(dnssec_keystore_t **store); * * \param[out] store Opened key store. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_keystore_init_pkcs11(dnssec_keystore_t **store); @@ -76,7 +76,7 @@ int dnssec_keystore_open(dnssec_keystore_t *store, const char *config); * * \param store Key store to be closed. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_keystore_close(dnssec_keystore_t *store); @@ -89,7 +89,7 @@ int dnssec_keystore_close(dnssec_keystore_t *store); * \param[in] label Optional key label for PKCS #11. * \param[out] id_ptr ID of the generated key. Must be freed by the caller. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_keystore_generate(dnssec_keystore_t *store, dnssec_key_algorithm_t algorithm, @@ -102,7 +102,7 @@ int dnssec_keystore_generate(dnssec_keystore_t *store, * \param[in] pem Private key material in PEM format. * \param[out] id_ptr ID of the imported key. Must be freed by the caller. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_keystore_import(dnssec_keystore_t *store, const dnssec_binary_t *pem, char **id_ptr); @@ -113,7 +113,7 @@ int dnssec_keystore_import(dnssec_keystore_t *store, const dnssec_binary_t *pem, * \param store Key store. * \param id ID of the private key to be deleted. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_keystore_remove(dnssec_keystore_t *store, const char *id); @@ -126,7 +126,7 @@ int dnssec_keystore_remove(dnssec_keystore_t *store, const char *id); * \param id ID of the key. * \param key DNSSEC key to be initialized. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_keystore_get_private(dnssec_keystore_t *store, const char *id, dnssec_key_t *key); @@ -137,7 +137,7 @@ int dnssec_keystore_get_private(dnssec_keystore_t *store, const char *id, * \param store Key store. * \param key DNSSEC key with a private key. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_keystore_set_private(dnssec_keystore_t *store, dnssec_key_t *key); diff --git a/src/libknot/dnssec/keystore/keystore.c b/src/libknot/dnssec/keystore/keystore.c index 24b6307639..4c64b8f936 100644 --- a/src/libknot/dnssec/keystore/keystore.c +++ b/src/libknot/dnssec/keystore/keystore.c @@ -33,13 +33,13 @@ int keystore_create(dnssec_keystore_t **store_ptr, store->functions = functions; int result = functions->ctx_new(&store->ctx); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { free(store); return DNSSEC_ENOMEM; } *store_ptr = store; - return DNSSEC_EOK; + return KNOT_EOK; } /* -- public API ----------------------------------------------------------- */ @@ -56,7 +56,7 @@ int dnssec_keystore_deinit(dnssec_keystore_t *store) free(store); - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -147,17 +147,17 @@ int dnssec_keystore_get_private(dnssec_keystore_t *store, const char *id, gnutls_privkey_t privkey = NULL; int r = store->functions->get_private(store->ctx, id, &privkey); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } r = key_set_private_key(key, privkey); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { gnutls_privkey_deinit(privkey); return r; } - return DNSSEC_EOK; + return KNOT_EOK; } _public_ diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index 4c6bcc7f04..52002720d0 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -68,7 +68,7 @@ static int key_url(const char *token_uri, const char *key_id, char **url_ptr) url[len] = '\0'; *url_ptr = url; - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -93,7 +93,7 @@ static int parse_config(const char *config, char **uri_ptr, char **module_ptr) *uri_ptr = url; *module_ptr = module; - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -105,7 +105,7 @@ static int safe_open(const char *config, char **url_ptr) char *module = NULL; int r = parse_config(config, &url, &module); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -125,7 +125,7 @@ static int safe_open(const char *config, char **url_ptr) *url_ptr = url; - return DNSSEC_EOK; + return KNOT_EOK; } /* -- internal API --------------------------------------------------------- */ @@ -148,7 +148,7 @@ static int pkcs11_ctx_new(void **ctx_ptr) *ctx_ptr = ctx; - return DNSSEC_EOK; + return KNOT_EOK; } static void pkcs11_ctx_free(void *ctx) @@ -183,7 +183,7 @@ static int pkcs11_close(void *_ctx) free(ctx->url); clear_struct(ctx); - return DNSSEC_EOK; + return KNOT_EOK; } static int pkcs11_generate_key(void *_ctx, gnutls_pk_algorithm_t algorithm, @@ -210,7 +210,7 @@ static int pkcs11_generate_key(void *_ctx, gnutls_pk_algorithm_t algorithm, *id_ptr = id; - return DNSSEC_EOK; + return KNOT_EOK; } static int import_pem(const dnssec_binary_t *pem, @@ -222,7 +222,7 @@ static int import_pem(const dnssec_binary_t *pem, gnutls_pubkey_t pubkey = NULL; int r = dnssec_pem_to_x509(pem, &x509_key); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { goto fail; } @@ -243,7 +243,7 @@ static int import_pem(const dnssec_binary_t *pem, fail: gnutls_privkey_deinit(key); - if (r == DNSSEC_EOK) { + if (r == KNOT_EOK) { *key_ptr = x509_key; *pubkey_ptr = pubkey; } else { @@ -262,13 +262,13 @@ static int pkcs11_import_key(void *_ctx, const dnssec_binary_t *pem, char **id_p _cleanup_pubkey_ gnutls_pubkey_t pubkey = NULL; int r = import_pem(pem, &key, &pubkey); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } _cleanup_binary_ dnssec_binary_t id = { 0 }; r = keyid_x509(key, &id); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -291,7 +291,7 @@ static int pkcs11_import_key(void *_ctx, const dnssec_binary_t *pem, char **id_p return DNSSEC_ENOMEM; } - return DNSSEC_EOK; + return KNOT_EOK; } static int pkcs11_remove_key(void *_ctx, const char *id) @@ -300,7 +300,7 @@ static int pkcs11_remove_key(void *_ctx, const char *id) _cleanup_free_ char *url = NULL; int r = key_url(ctx->url, id, &url); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -311,7 +311,7 @@ static int pkcs11_remove_key(void *_ctx, const char *id) return DNSSEC_ENOENT; } - return DNSSEC_EOK; + return KNOT_EOK; } static int pkcs11_get_private(void *_ctx, const char *id, gnutls_privkey_t *key_ptr) @@ -320,7 +320,7 @@ static int pkcs11_get_private(void *_ctx, const char *id, gnutls_privkey_t *key_ _cleanup_free_ char *url = NULL; int r = key_url(ctx->url, id, &url); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -338,14 +338,14 @@ static int pkcs11_get_private(void *_ctx, const char *id, gnutls_privkey_t *key_ *key_ptr = key; - return DNSSEC_EOK; + return KNOT_EOK; } static int pkcs11_set_private(void *ctx, gnutls_privkey_t key) { _cleanup_binary_ dnssec_binary_t pem = { 0 }; int r = dnssec_pem_from_privkey(key, &pem); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } diff --git a/src/libknot/dnssec/keystore/pkcs8.c b/src/libknot/dnssec/keystore/pkcs8.c index d7e885f0a1..986dd9b094 100644 --- a/src/libknot/dnssec/keystore/pkcs8.c +++ b/src/libknot/dnssec/keystore/pkcs8.c @@ -62,7 +62,7 @@ static int file_size(int fd, size_t *size) assert(offset >= 0); *size = offset; - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -87,7 +87,7 @@ static int key_open(const char *dir_name, const char *id, int flags, *fd_ptr = fd; - return DNSSEC_EOK; + return KNOT_EOK; } static int key_open_read(const char *dir_name, const char *id, int *fd_ptr) @@ -111,13 +111,13 @@ static int pkcs8_dir_read(pkcs8_dir_handle_t *handle, const char *id, dnssec_bin _cleanup_close_ int file = -1; int result = key_open_read(handle->dir_name, id, &file); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } size_t size = 0; result = file_size(file, &size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -129,7 +129,7 @@ static int pkcs8_dir_read(pkcs8_dir_handle_t *handle, const char *id, dnssec_bin dnssec_binary_t read_pem = { 0 }; result = dnssec_binary_alloc(&read_pem, size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -142,7 +142,7 @@ static int pkcs8_dir_read(pkcs8_dir_handle_t *handle, const char *id, dnssec_bin assert(read_count == read_pem.size); *pem = read_pem; - return DNSSEC_EOK; + return KNOT_EOK; } static bool key_is_duplicate(int open_error, pkcs8_dir_handle_t *handle, @@ -158,7 +158,7 @@ static bool key_is_duplicate(int open_error, pkcs8_dir_handle_t *handle, _cleanup_binary_ dnssec_binary_t old = { 0 }; int r = pkcs8_dir_read(handle, id, &old); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return false; } @@ -188,7 +188,7 @@ static int pem_generate(gnutls_pk_algorithm_t algorithm, unsigned bits, dnssec_binary_t _pem = { 0 }; r = dnssec_pem_from_x509(key, &_pem); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -196,7 +196,7 @@ static int pem_generate(gnutls_pk_algorithm_t algorithm, unsigned bits, char *_id = NULL; r = keyid_x509_hex(key, &_id); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { dnssec_binary_free(&_pem); return r; } @@ -204,7 +204,7 @@ static int pem_generate(gnutls_pk_algorithm_t algorithm, unsigned bits, *id = _id; *pem = _pem; - return DNSSEC_EOK; + return KNOT_EOK; } /* -- internal API --------------------------------------------------------- */ @@ -222,7 +222,7 @@ static int pkcs8_ctx_new(void **ctx_ptr) *ctx_ptr = ctx; - return DNSSEC_EOK; + return KNOT_EOK; } static void pkcs8_ctx_free(void *ctx) @@ -254,7 +254,7 @@ static int pkcs8_open(void *ctx, const char *config) handle->dir_name = path; - return DNSSEC_EOK; + return KNOT_EOK; } static int pkcs8_close(void *ctx) @@ -268,7 +268,7 @@ static int pkcs8_close(void *ctx) free(handle->dir_name); memset(handle, 0, sizeof(*handle)); - return DNSSEC_EOK; + return KNOT_EOK; } static int pkcs8_generate_key(void *ctx, gnutls_pk_algorithm_t algorithm, @@ -287,7 +287,7 @@ static int pkcs8_generate_key(void *ctx, gnutls_pk_algorithm_t algorithm, char *id = NULL; _cleanup_binary_ dnssec_binary_t pem = { 0 }; int r = pem_generate(algorithm, bits, &pem, &id); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -295,9 +295,9 @@ static int pkcs8_generate_key(void *ctx, gnutls_pk_algorithm_t algorithm, _cleanup_close_ int file = -1; r = key_open_write(handle->dir_name, id, &file); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { if (key_is_duplicate(r, handle, id, &pem)) { - return DNSSEC_EOK; + return KNOT_EOK; } return r; } @@ -315,7 +315,7 @@ static int pkcs8_generate_key(void *ctx, gnutls_pk_algorithm_t algorithm, *id_ptr = id; - return DNSSEC_EOK; + return KNOT_EOK; } static int pkcs8_import_key(void *ctx, const dnssec_binary_t *pem, char **id_ptr) @@ -331,12 +331,12 @@ static int pkcs8_import_key(void *ctx, const dnssec_binary_t *pem, char **id_ptr char *id = NULL; _cleanup_x509_privkey_ gnutls_x509_privkey_t key = NULL; int r = dnssec_pem_to_x509(pem, &key); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } r = keyid_x509_hex(key, &id); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -344,10 +344,10 @@ static int pkcs8_import_key(void *ctx, const dnssec_binary_t *pem, char **id_ptr _cleanup_close_ int file = -1; r = key_open_write(handle->dir_name, id, &file); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { if (key_is_duplicate(r, handle, id, pem)) { *id_ptr = id; - return DNSSEC_EOK; + return KNOT_EOK; } free(id); return r; @@ -367,7 +367,7 @@ static int pkcs8_import_key(void *ctx, const dnssec_binary_t *pem, char **id_ptr *id_ptr = id; - return DNSSEC_EOK; + return KNOT_EOK; } static int pkcs8_remove_key(void *ctx, const char *id) @@ -387,7 +387,7 @@ static int pkcs8_remove_key(void *ctx, const char *id) return dnssec_errno_to_error(errno); } - return DNSSEC_EOK; + return KNOT_EOK; } static int pkcs8_get_private(void *ctx, const char *id, gnutls_privkey_t *key_ptr) @@ -402,13 +402,13 @@ static int pkcs8_get_private(void *ctx, const char *id, gnutls_privkey_t *key_pt _cleanup_close_ int file = -1; int r = key_open_read(handle->dir_name, id, &file); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } size_t size = 0; r = file_size(file, &size); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -420,7 +420,7 @@ static int pkcs8_get_private(void *ctx, const char *id, gnutls_privkey_t *key_pt _cleanup_binary_ dnssec_binary_t pem = { 0 }; r = dnssec_binary_alloc(&pem, size); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -436,7 +436,7 @@ static int pkcs8_get_private(void *ctx, const char *id, gnutls_privkey_t *key_pt gnutls_privkey_t key = NULL; r = dnssec_pem_to_privkey(&pem, &key); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -444,7 +444,7 @@ static int pkcs8_get_private(void *ctx, const char *id, gnutls_privkey_t *key_pt *key_ptr = key; - return DNSSEC_EOK; + return KNOT_EOK; } static int pkcs8_set_private(void *ctx, gnutls_privkey_t key) @@ -455,7 +455,7 @@ static int pkcs8_set_private(void *ctx, gnutls_privkey_t key) _cleanup_binary_ dnssec_binary_t pem = { 0 }; int r = dnssec_pem_from_privkey(key, &pem); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } diff --git a/src/libknot/dnssec/keytag.h b/src/libknot/dnssec/keytag.h index 5cd565f17a..ca9731b1bc 100644 --- a/src/libknot/dnssec/keytag.h +++ b/src/libknot/dnssec/keytag.h @@ -26,7 +26,7 @@ * \param[in] rdata DNSKEY RDATA. * \param[out] keytag Computed keytag. * - * \return Error code, DNSSEC_EOK of successful. + * \return Error code, KNOT_EOK of successful. */ int dnssec_keytag(const dnssec_binary_t *rdata, uint16_t *keytag); diff --git a/src/libknot/dnssec/nsec.h b/src/libknot/dnssec/nsec.h index f50b42992f..f4414c65d3 100644 --- a/src/libknot/dnssec/nsec.h +++ b/src/libknot/dnssec/nsec.h @@ -53,7 +53,7 @@ void dnssec_nsec3_params_free(dnssec_nsec3_params_t *params); * \param params Output parameters. * \param rdata NSEC3PARAM RDATA. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_nsec3_params_from_rdata(dnssec_nsec3_params_t *params, const dnssec_binary_t *rdata); @@ -89,7 +89,7 @@ bool dnssec_nsec_bitmap_contains(const uint8_t *bitmap, uint16_t size, uint16_t * \param[in] params NSEC3 parameters. * \param[out] hash Computed hash (will be allocated or resized). * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_nsec3_hash(const dnssec_binary_t *data, const dnssec_nsec3_params_t *params, diff --git a/src/libknot/dnssec/nsec/hash.c b/src/libknot/dnssec/nsec/hash.c index a21e8d0837..b05ab59380 100644 --- a/src/libknot/dnssec/nsec/hash.c +++ b/src/libknot/dnssec/nsec/hash.c @@ -33,7 +33,7 @@ static int nsec3_hash(gnutls_digest_algorithm_t algorithm, int iterations, } int result = dnssec_binary_resize(hash, hash_size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -63,7 +63,7 @@ static int nsec3_hash(gnutls_digest_algorithm_t algorithm, int iterations, in_size = hash->size; } - return DNSSEC_EOK; + return KNOT_EOK; } /*! diff --git a/src/libknot/dnssec/nsec/nsec.c b/src/libknot/dnssec/nsec/nsec.c index 21a9a37578..5debf382b6 100644 --- a/src/libknot/dnssec/nsec/nsec.c +++ b/src/libknot/dnssec/nsec/nsec.c @@ -64,7 +64,7 @@ int dnssec_nsec3_params_from_rdata(dnssec_nsec3_params_t *params, *params = new_params; - return DNSSEC_EOK; + return KNOT_EOK; } _public_ diff --git a/src/libknot/dnssec/p11/p11.c b/src/libknot/dnssec/p11/p11.c index 75a20ec1f3..c0571fd38f 100644 --- a/src/libknot/dnssec/p11/p11.c +++ b/src/libknot/dnssec/p11/p11.c @@ -20,7 +20,7 @@ static int pkcs11_modules_count = 0; static int map_result(int gnutls_result) { - return gnutls_result == GNUTLS_E_SUCCESS ? DNSSEC_EOK : DNSSEC_ERROR; + return gnutls_result == GNUTLS_E_SUCCESS ? KNOT_EOK : DNSSEC_ERROR; } int p11_init(void) @@ -39,7 +39,7 @@ int p11_load_module(const char *module) { for (int i = 0; i < pkcs11_modules_count; i++) { if (strcmp(pkcs11_modules[i], module) == 0) { - return DNSSEC_EOK; + return KNOT_EOK; } } @@ -62,7 +62,7 @@ int p11_load_module(const char *module) pkcs11_modules[pkcs11_modules_count] = copy; pkcs11_modules_count += 1; - return DNSSEC_EOK; + return KNOT_EOK; } void p11_cleanup(void) @@ -81,12 +81,12 @@ void p11_cleanup(void) int p11_init(void) { - return DNSSEC_EOK; + return KNOT_EOK; } int p11_reinit(void) { - return DNSSEC_EOK; + return KNOT_EOK; } int p11_load_module(const char *module) diff --git a/src/libknot/dnssec/pem.c b/src/libknot/dnssec/pem.c index f273b7306a..2c95539cff 100644 --- a/src/libknot/dnssec/pem.c +++ b/src/libknot/dnssec/pem.c @@ -40,7 +40,7 @@ int dnssec_pem_to_x509(const dnssec_binary_t *pem, gnutls_x509_privkey_t *key) *key = _key; - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -52,7 +52,7 @@ int dnssec_pem_to_privkey(const dnssec_binary_t *pem, gnutls_privkey_t *key) gnutls_x509_privkey_t key_x509 = NULL; int r = dnssec_pem_to_x509(pem, &key_x509); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -73,7 +73,7 @@ int dnssec_pem_to_privkey(const dnssec_binary_t *pem, gnutls_privkey_t *key) *key = key_abs; - return DNSSEC_EOK; + return KNOT_EOK; } static int try_export_pem(gnutls_x509_privkey_t key, dnssec_binary_t *pem) @@ -102,7 +102,7 @@ int dnssec_pem_from_x509(gnutls_x509_privkey_t key, dnssec_binary_t *pem) } r = dnssec_binary_alloc(&_pem, _pem.size); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -114,7 +114,7 @@ int dnssec_pem_from_x509(gnutls_x509_privkey_t key, dnssec_binary_t *pem) *pem = _pem; - return DNSSEC_EOK; + return KNOT_EOK; } static int privkey_export_x509(gnutls_privkey_t key, gnutls_x509_privkey_t *_key) @@ -123,7 +123,7 @@ static int privkey_export_x509(gnutls_privkey_t key, gnutls_x509_privkey_t *_key return DNSSEC_KEY_EXPORT_ERROR; } - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -136,17 +136,17 @@ int dnssec_pem_from_privkey(gnutls_privkey_t key, dnssec_binary_t *pem) _cleanup_x509_privkey_ gnutls_x509_privkey_t _key = NULL; int r = privkey_export_x509(key, &_key); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } dnssec_binary_t _pem = { 0 }; r = dnssec_pem_from_x509(_key, &_pem); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } *pem = _pem; - return DNSSEC_EOK; + return KNOT_EOK; } diff --git a/src/libknot/dnssec/pem.h b/src/libknot/dnssec/pem.h index 3cb0cc3282..94ba63f0ff 100644 --- a/src/libknot/dnssec/pem.h +++ b/src/libknot/dnssec/pem.h @@ -25,7 +25,7 @@ * \param[in] pem PEM binary data. * \param[out] key Resulting private key. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_pem_to_x509(const dnssec_binary_t *pem, gnutls_x509_privkey_t *key); @@ -35,7 +35,7 @@ int dnssec_pem_to_x509(const dnssec_binary_t *pem, gnutls_x509_privkey_t *key); * \param[in] pem PEM binary data. * \param[out] key Resulting private key. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_pem_to_privkey(const dnssec_binary_t *pem, gnutls_privkey_t *key); @@ -45,7 +45,7 @@ int dnssec_pem_to_privkey(const dnssec_binary_t *pem, gnutls_privkey_t *key); * \param[in] key Key to be exported. * \param[out] pem Generated key in unencrypted PEM format. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_pem_from_x509(gnutls_x509_privkey_t key, dnssec_binary_t *pem); @@ -55,7 +55,7 @@ int dnssec_pem_from_x509(gnutls_x509_privkey_t key, dnssec_binary_t *pem); * \param[in] key Key to be exported. * \param[out] pem Generated key in unencrypted PEM format. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_pem_from_privkey(gnutls_privkey_t key, dnssec_binary_t *pem); diff --git a/src/libknot/dnssec/random.c b/src/libknot/dnssec/random.c index 82f752d677..4c50c194d4 100644 --- a/src/libknot/dnssec/random.c +++ b/src/libknot/dnssec/random.c @@ -28,7 +28,7 @@ int dnssec_random_buffer(uint8_t *data, size_t size) return DNSSEC_ERROR; } - return DNSSEC_EOK; + return KNOT_EOK; } _public_ diff --git a/src/libknot/dnssec/random.h b/src/libknot/dnssec/random.h index 632ce87802..3809d29fb5 100644 --- a/src/libknot/dnssec/random.h +++ b/src/libknot/dnssec/random.h @@ -26,7 +26,7 @@ * \param data Pointer to the output buffer. * \param size Size of the output buffer. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_random_buffer(uint8_t *data, size_t size); @@ -35,7 +35,7 @@ int dnssec_random_buffer(uint8_t *data, size_t size); * * \param data Preallocated binary structure to be filled. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_random_binary(dnssec_binary_t *data); diff --git a/src/libknot/dnssec/shared/keyid_gnutls.c b/src/libknot/dnssec/shared/keyid_gnutls.c index 563989bc67..42ea122d5f 100644 --- a/src/libknot/dnssec/shared/keyid_gnutls.c +++ b/src/libknot/dnssec/shared/keyid_gnutls.c @@ -39,13 +39,13 @@ static int keyid_bin(gnutls_x509_privkey_t key, gnutls_pubkey_t pubkey, dnssec_b assert(size == DNSSEC_KEYID_BINARY_SIZE); r = dnssec_binary_resize(id, size); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } memcpy(id->data, buffer, size); - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -55,7 +55,7 @@ static int keyid_hex(gnutls_x509_privkey_t key, gnutls_pubkey_t pubkey, char **i { _cleanup_binary_ dnssec_binary_t bin = { 0 }; int r = keyid_bin(key, pubkey, &bin); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return r; } @@ -64,7 +64,7 @@ static int keyid_hex(gnutls_x509_privkey_t key, gnutls_pubkey_t pubkey, char **i return DNSSEC_ENOMEM; } - return DNSSEC_EOK; + return KNOT_EOK; } int keyid_x509(gnutls_x509_privkey_t key, dnssec_binary_t *id) diff --git a/src/libknot/dnssec/sign.h b/src/libknot/dnssec/sign.h index f7d7279aea..f1f4f001b4 100644 --- a/src/libknot/dnssec/sign.h +++ b/src/libknot/dnssec/sign.h @@ -43,7 +43,7 @@ typedef struct dnssec_sign_ctx dnssec_sign_ctx_t; * \param ctx_ptr Pointer to context to be allocated. * \param key DNSSEC key to be used. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_sign_new(dnssec_sign_ctx_t **ctx_ptr, const dnssec_key_t *key); @@ -59,7 +59,7 @@ void dnssec_sign_free(dnssec_sign_ctx_t *ctx); * * \param ctx Signing context. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_sign_init(dnssec_sign_ctx_t *ctx); @@ -69,7 +69,7 @@ int dnssec_sign_init(dnssec_sign_ctx_t *ctx); * \param ctx Signing context. * \param data Data to be signed. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_sign_add(dnssec_sign_ctx_t *ctx, const dnssec_binary_t *data); @@ -80,7 +80,7 @@ int dnssec_sign_add(dnssec_sign_ctx_t *ctx, const dnssec_binary_t *data); * \param flags Additional flags to be used for signing. * \param signature Signature to be allocated and written. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_sign_write(dnssec_sign_ctx_t *ctx, dnssec_sign_flags_t flags, dnssec_binary_t *signature); @@ -94,7 +94,7 @@ int dnssec_sign_write(dnssec_sign_ctx_t *ctx, dnssec_sign_flags_t flags, * \param signature Signature to be verified. * * \return Error code. - * \retval DNSSEC_EOK Validation successful, valid signature. + * \retval KNOT_EOK Validation successful, valid signature. * \retval DNSSEC_INVALID_SIGNATURE Validation successful, invalid signature. */ int dnssec_sign_verify(dnssec_sign_ctx_t *ctx, bool sign_cmp, diff --git a/src/libknot/dnssec/sign/der.c b/src/libknot/dnssec/sign/der.c index 4c00742ede..11ef0647bf 100644 --- a/src/libknot/dnssec/sign/der.c +++ b/src/libknot/dnssec/sign/der.c @@ -54,7 +54,7 @@ static int asn1_decode_size(wire_ctx_t *wire, size_t *size) *size = byte; - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -71,7 +71,7 @@ static int asn1_decode_integer(wire_ctx_t *wire, dnssec_binary_t *_value) size_t size; int result = asn1_decode_size(wire, &size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -90,7 +90,7 @@ static int asn1_decode_integer(wire_ctx_t *wire, dnssec_binary_t *_value) *_value = value; - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -141,7 +141,7 @@ int dss_sig_value_decode(const dnssec_binary_t *der, } result = asn1_decode_size(&wire, &size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -153,13 +153,13 @@ int dss_sig_value_decode(const dnssec_binary_t *der, dnssec_binary_t der_r; result = asn1_decode_integer(&wire, &der_r); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } dnssec_binary_t der_s; result = asn1_decode_integer(&wire, &der_s); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -170,7 +170,7 @@ int dss_sig_value_decode(const dnssec_binary_t *der, *r = der_r; *s = der_s; - return DNSSEC_EOK; + return KNOT_EOK; } /*! @@ -214,5 +214,5 @@ int dss_sig_value_encode(const dnssec_binary_t *r, const dnssec_binary_t *s, *der = _der; - return DNSSEC_EOK; + return KNOT_EOK; } diff --git a/src/libknot/dnssec/sign/der.h b/src/libknot/dnssec/sign/der.h index 6adb566f31..73473eedc6 100644 --- a/src/libknot/dnssec/sign/der.h +++ b/src/libknot/dnssec/sign/der.h @@ -27,7 +27,7 @@ * \param[out] s Value 's' of the signature, will point to the data in DER. * \param[out] r Value 'r' of the signature, will point to the data in DER. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dss_sig_value_decode(const dnssec_binary_t *der, dnssec_binary_t *r, dnssec_binary_t *s); @@ -39,7 +39,7 @@ int dss_sig_value_decode(const dnssec_binary_t *der, * \param[in] r Value 'r' of the signature. * \param[out] der X.509 signature, the content will be allocated. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dss_sig_value_encode(const dnssec_binary_t *r, const dnssec_binary_t *s, dnssec_binary_t *der); diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index 0c33233cda..b016fb923f 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -27,7 +27,7 @@ * \param from Data in source format. * \param to Allocated data in target format. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ typedef int (*signature_convert_cb)(dnssec_sign_ctx_t *ctx, const dnssec_binary_t *from, @@ -112,7 +112,7 @@ static int ecdsa_x509_to_dnssec(dnssec_sign_ctx_t *ctx, dnssec_binary_t value_s = { 0 }; int result = dss_sig_value_decode(x509, &value_r, &value_s); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -125,7 +125,7 @@ static int ecdsa_x509_to_dnssec(dnssec_sign_ctx_t *ctx, } result = dnssec_binary_alloc(dnssec, 2 * int_size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -134,7 +134,7 @@ static int ecdsa_x509_to_dnssec(dnssec_sign_ctx_t *ctx, bignum_write(&wire, int_size, &value_s); assert(wire_ctx_offset(&wire) == dnssec->size); - return DNSSEC_EOK; + return KNOT_EOK; } static int ecdsa_dnssec_to_x509(dnssec_sign_ctx_t *ctx, @@ -245,14 +245,14 @@ int dnssec_sign_new(dnssec_sign_ctx_t **ctx_ptr, const dnssec_key_t *key) const uint8_t algo_raw = dnssec_key_get_algorithm(key); ctx->sign_algorithm = algo_dnssec2gnutls((dnssec_key_algorithm_t)algo_raw); int result = dnssec_sign_init(ctx); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { free(ctx); return result; } *ctx_ptr = ctx; - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -280,7 +280,7 @@ int dnssec_sign_init(dnssec_sign_ctx_t *ctx) vpool_init(&ctx->buffer, 1024, 0); } - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -295,7 +295,7 @@ int dnssec_sign_add(dnssec_sign_ctx_t *ctx, const dnssec_binary_t *data) return DNSSEC_SIGN_ERROR; } - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -346,7 +346,7 @@ int dnssec_sign_verify(dnssec_sign_ctx_t *ctx, bool sign_cmp, const dnssec_binar if (ret == KNOT_EOK) { ret = dnssec_binary_cmp(&sign, signature) ? DNSSEC_INVALID_SIGNATURE - : DNSSEC_EOK; + : KNOT_EOK; } dnssec_binary_free(&sign); return ret; @@ -363,7 +363,7 @@ int dnssec_sign_verify(dnssec_sign_ctx_t *ctx, bool sign_cmp, const dnssec_binar _cleanup_binary_ dnssec_binary_t bin_raw = { 0 }; int result = ctx->functions->dnssec_to_x509(ctx, signature, &bin_raw); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return result; } @@ -379,5 +379,5 @@ int dnssec_sign_verify(dnssec_sign_ctx_t *ctx, bool sign_cmp, const dnssec_binar return DNSSEC_ERROR; } - return DNSSEC_EOK; + return KNOT_EOK; } diff --git a/src/libknot/dnssec/tsig.c b/src/libknot/dnssec/tsig.c index dc246d73f0..af70d91e23 100644 --- a/src/libknot/dnssec/tsig.c +++ b/src/libknot/dnssec/tsig.c @@ -172,7 +172,7 @@ int dnssec_tsig_new(dnssec_tsig_ctx_t **ctx_ptr, *ctx_ptr = ctx; - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -198,7 +198,7 @@ int dnssec_tsig_add(dnssec_tsig_ctx_t *ctx, const dnssec_binary_t *data) return DNSSEC_SIGN_ERROR; } - return DNSSEC_EOK; + return KNOT_EOK; } _public_ @@ -227,5 +227,5 @@ int dnssec_tsig_write(dnssec_tsig_ctx_t *ctx, uint8_t *mac) gnutls_hmac_output(ctx->hash, mac); - return DNSSEC_EOK; + return KNOT_EOK; } diff --git a/src/libknot/dnssec/tsig.h b/src/libknot/dnssec/tsig.h index debf62268f..7f24c1800d 100644 --- a/src/libknot/dnssec/tsig.h +++ b/src/libknot/dnssec/tsig.h @@ -91,7 +91,7 @@ typedef struct dnssec_tsig_ctx dnssec_tsig_ctx_t; * \param[in] algorithm TSIG algorithm. * \param[in] key Shared key to be used for signing. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_tsig_new(dnssec_tsig_ctx_t **ctx, dnssec_tsig_algorithm_t algorithm, const dnssec_binary_t *key); @@ -109,7 +109,7 @@ void dnssec_tsig_free(dnssec_tsig_ctx_t *ctx); * \param ctx TSIG signing context. * \param data Data to be signed. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_tsig_add(dnssec_tsig_ctx_t *ctx, const dnssec_binary_t *data); @@ -137,7 +137,7 @@ size_t dnssec_tsig_algorithm_size(dnssec_tsig_algorithm_t algorithm); * \param[in] ctx TSIG signing context. * \param[out] mac Resulting TSIG signature. * - * \return Error code, DNSSEC_EOK if successful. + * \return Error code, KNOT_EOK if successful. */ int dnssec_tsig_write(dnssec_tsig_ctx_t *ctx, uint8_t *mac); diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c index 3a6a6635d4..a7ec83c372 100644 --- a/src/libknot/quic/quic.c +++ b/src/libknot/quic/quic.c @@ -224,7 +224,7 @@ static void init_random_cid(ngtcp2_cid *cid, size_t len) len = SERVER_DEFAULT_SCIDLEN; } - if (dnssec_random_buffer(cid->data, len) != DNSSEC_EOK) { + if (dnssec_random_buffer(cid->data, len) != KNOT_EOK) { cid->datalen = 0; } else { cid->datalen = len; @@ -530,7 +530,7 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_path *path, const ngtcp2_c params.retry_scid_present = 1; params.retry_scid = *scid; } - if (dnssec_random_buffer(params.stateless_reset_token, NGTCP2_STATELESS_RESET_TOKENLEN) != DNSSEC_EOK) { + if (dnssec_random_buffer(params.stateless_reset_token, NGTCP2_STATELESS_RESET_TOKENLEN) != KNOT_EOK) { return KNOT_ERROR; } diff --git a/src/libknot/tsig-op.c b/src/libknot/tsig-op.c index cdd0c5c55f..491b1996f5 100644 --- a/src/libknot/tsig-op.c +++ b/src/libknot/tsig-op.c @@ -74,8 +74,8 @@ static int compute_digest(const uint8_t *wire, size_t wire_len, } dnssec_tsig_ctx_t *ctx = NULL; - int result = dnssec_tsig_new(&ctx, key->algorithm, &key->secret); - if (result != DNSSEC_EOK) { + int ret = dnssec_tsig_new(&ctx, key->algorithm, &key->secret); + if (ret != KNOT_EOK) { return KNOT_TSIG_EBADSIG; } diff --git a/src/libknot/tsig.c b/src/libknot/tsig.c index f8d3ddfe44..7d9798995f 100644 --- a/src/libknot/tsig.c +++ b/src/libknot/tsig.c @@ -166,7 +166,7 @@ int knot_tsig_key_copy(knot_tsig_key_t *dst, const knot_tsig_key_t *src) return KNOT_ENOMEM; } - if (dnssec_binary_dup(&src->secret, ©.secret) != DNSSEC_EOK) { + if (dnssec_binary_dup(&src->secret, ©.secret) != KNOT_EOK) { knot_tsig_key_deinit(©); return KNOT_ENOMEM; } diff --git a/src/utils/common/quic.c b/src/utils/common/quic.c index 487f0b0c5e..31294612cc 100644 --- a/src/utils/common/quic.c +++ b/src/utils/common/quic.c @@ -162,7 +162,7 @@ static int get_new_connection_id_cb(ngtcp2_conn *conn, ngtcp2_cid *cid, quic_ctx_t *ctx = (quic_ctx_t *)user_data; - if (dnssec_random_buffer(cid->data, cidlen) != DNSSEC_EOK) { + if (dnssec_random_buffer(cid->data, cidlen) != KNOT_EOK) { return NGTCP2_ERR_CALLBACK_FAILURE; } cid->datalen = cidlen; @@ -403,7 +403,7 @@ int quic_generate_secret(uint8_t *buf, size_t buflen) assert(buf != NULL && buflen > 0 && buflen <= 32); uint8_t rand[16], hash[32]; int ret = dnssec_random_buffer(rand, sizeof(rand)); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { return KNOT_ERROR; } ret = gnutls_hash_fast(GNUTLS_DIG_SHA256, rand, sizeof(rand), hash); @@ -475,12 +475,12 @@ int quic_ctx_connect(quic_ctx_t *ctx, int sockfd, struct addrinfo *dst_addr) ngtcp2_cid dcid, scid; scid.datalen = NGTCP2_MAX_CIDLEN; int ret = dnssec_random_buffer(scid.data, scid.datalen); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { return ret; } dcid.datalen = 18; ret = dnssec_random_buffer(dcid.data, dcid.datalen); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { return ret; } diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index 5b7b83e53a..89de75fe5d 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -1077,7 +1077,7 @@ static int opt_cookie(const char *arg, void *query) q->cc.len = KNOT_EDNS_COOKIE_CLNT_SIZE; int ret = dnssec_random_buffer(q->cc.data, q->cc.len); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { return knot_error_from_libdnssec(ret); } } diff --git a/src/utils/keymgr/bind_privkey.c b/src/utils/keymgr/bind_privkey.c index 104cf7b81b..05e1a2d962 100644 --- a/src/utils/keymgr/bind_privkey.c +++ b/src/utils/keymgr/bind_privkey.c @@ -80,7 +80,7 @@ static int parse_algorithm(char *string, void *_algorithm) uint8_t *algorithm = _algorithm; int r = str_to_u8(string, algorithm); - return (r == KNOT_EOK ? DNSSEC_EOK : DNSSEC_INVALID_KEY_ALGORITHM); + return (r == KNOT_EOK ? KNOT_EOK : DNSSEC_INVALID_KEY_ALGORITHM); } /*! @@ -118,7 +118,7 @@ static int parse_time(char *string, void *_time) time_t *time = _time; *time = timegm(&tm); - return DNSSEC_EOK; + return KNOT_EOK; } /* -- key parsing ---------------------------------------------------------- */ @@ -191,7 +191,7 @@ static int parse_line(bind_privkey_t *params, char *line, size_t length) // ignore unknown attributes - return DNSSEC_EOK; + return KNOT_EOK; } int bind_privkey_parse(const char *filename, bind_privkey_t *params_ptr) @@ -208,7 +208,7 @@ int bind_privkey_parse(const char *filename, bind_privkey_t *params_ptr) ssize_t read = 0; while ((read = getline(&line, &size, file)) != -1) { int r = parse_line(¶ms, line, read); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { bind_privkey_free(¶ms); return r; } @@ -216,7 +216,7 @@ int bind_privkey_parse(const char *filename, bind_privkey_t *params_ptr) *params_ptr = params; - return DNSSEC_EOK; + return KNOT_EOK; } /* -- freeing -------------------------------------------------------------- */ @@ -312,7 +312,7 @@ static int ecdsa_params_to_pem(dnssec_key_t *dnskey, const bind_privkey_t *param gnutls_datum_t k = binary_to_datum(¶ms->private_key); result = gnutls_x509_privkey_import_ecc_raw(key, curve, &x, &y, &k); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return DNSSEC_KEY_IMPORT_ERROR; } @@ -349,7 +349,7 @@ static int eddsa_params_to_pem(dnssec_key_t *dnskey, const bind_privkey_t *param gnutls_datum_t k = binary_to_datum(¶ms->private_key); result = gnutls_x509_privkey_import_ecc_raw(key, curve, &x, NULL, &k); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return DNSSEC_KEY_IMPORT_ERROR; } diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index cc3600050a..479aba4187 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -342,7 +342,7 @@ int bind_pubkey_parse(const char *filename, dnssec_key_t **key_ptr) { dnssec_key_t *key = NULL; int result = dnssec_key_new(&key); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return KNOT_ENOMEM; } @@ -440,13 +440,13 @@ int keymgr_import_bind(kdnssec_ctx_t *ctx, const char *import_file, bool pub_onl ret = bind_privkey_parse(privname, &bpriv); free(privname); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { goto fail; } dnssec_binary_t pem = { 0 }; ret = bind_privkey_to_pem(key, &bpriv, &pem); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { bind_privkey_free(&bpriv); goto fail; } @@ -457,14 +457,14 @@ int keymgr_import_bind(kdnssec_ctx_t *ctx, const char *import_file, bool pub_onl ret = dnssec_keystore_import(keystore->keystore, &pem, &keyid); dnssec_binary_free(&pem); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { goto fail; } } else { timing.publish = ctx->now; ret = dnssec_key_get_keyid(key, &keyid); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { goto fail; } } @@ -564,7 +564,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, // alloc memory dnssec_binary_t pem = { 0 }; ret = dnssec_binary_alloc(&pem, fsize); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { close(fd); err_import_key("", param); goto fail; @@ -583,7 +583,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, // put pem to keystore ret = dnssec_keystore_import(keystore->keystore, &pem, &keyid); dnssec_binary_free(&pem); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { err_import_key(keyid, param); goto fail; } @@ -594,11 +594,11 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, // create dnssec key ret = dnssec_key_new(&key); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { goto fail; } ret = dnssec_key_set_dname(key, ctx->zone->dname); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { goto fail; } dnssec_key_set_flags(key, dnskey_flags(flags & DNSKEY_GENERATE_SEP_ON)); @@ -606,7 +606,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, // fill key structure from keystore (incl. pubkey from privkey computation) ret = kdnssec_load_private(ctx->keystores, keyid, key, NULL, NULL); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { err_import_key(keyid, ""); goto fail; } @@ -779,7 +779,7 @@ int keymgr_generate_tsig(const char *tsig_name, const char *alg_name, int bits) _cleanup_binary_ dnssec_binary_t key = { 0 }; int r = dnssec_binary_alloc(&key, bits / CHAR_BIT); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { ERR2("failed to allocate memory"); return knot_error_from_libdnssec(r); } @@ -792,7 +792,7 @@ int keymgr_generate_tsig(const char *tsig_name, const char *alg_name, int bits) _cleanup_binary_ dnssec_binary_t key_b64 = { 0 }; r = dnssec_binary_to_base64(&key, &key_b64); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { ERR2("failed to convert the key to Base64"); return knot_error_from_libdnssec(r); } @@ -1081,8 +1081,8 @@ static key_info_t key_missing(kdnssec_ctx_t *ctx, const knot_kasp_key_t *key) { key_info_t out = { .ks_count = ctx->keystores[0].count }; out.missing = !key->is_pub_only && - DNSSEC_EOK != kdnssec_load_private(ctx->keystores, key->id, - key->key, &out.ks_name, &out.backend); + KNOT_EOK != kdnssec_load_private(ctx->keystores, key->id, + key->key, &out.ks_name, &out.backend); return out; } @@ -1171,7 +1171,7 @@ static int create_and_print_ds(const knot_dname_t *zone_name, { _cleanup_binary_ dnssec_binary_t rdata = { 0 }; int r = dnssec_key_create_ds(key, digest, &rdata); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { return knot_error_from_libdnssec(r); } @@ -1208,7 +1208,7 @@ int keymgr_generate_dnskey(const knot_dname_t *dname, const knot_kasp_key_t *key dnssec_binary_t pubkey = { 0 }; int ret = dnssec_key_get_pubkey(dnskey, &pubkey); - if (ret != DNSSEC_EOK) { + if (ret != KNOT_EOK) { free(name); return knot_error_from_libdnssec(ret); } diff --git a/src/utils/keymgr/keystore.c b/src/utils/keymgr/keystore.c index d283ec4c95..43ecfcd941 100644 --- a/src/utils/keymgr/keystore.c +++ b/src/utils/keymgr/keystore.c @@ -41,18 +41,18 @@ static int create_dnskeys(dnssec_keystore_t *keystore, const char *id, dnssec_key_t **test_key_ptr, dnssec_key_t **ref_key_ptr) { dnssec_key_t *test_key = NULL; - if (dnssec_key_new(&test_key) != DNSSEC_EOK || - dnssec_key_set_algorithm(test_key, algorithm) != DNSSEC_EOK || - dnssec_keystore_get_private(keystore, id, test_key) != DNSSEC_EOK) { + if (dnssec_key_new(&test_key) != KNOT_EOK || + dnssec_key_set_algorithm(test_key, algorithm) != KNOT_EOK || + dnssec_keystore_get_private(keystore, id, test_key) != KNOT_EOK) { dnssec_key_free(test_key); return KNOT_ERROR; } dnssec_binary_t rdata; dnssec_key_t *ref_key = NULL; - if (dnssec_key_new(&ref_key) != DNSSEC_EOK || - dnssec_key_get_rdata(test_key, &rdata) != DNSSEC_EOK || - dnssec_key_set_rdata(ref_key, &rdata) != DNSSEC_EOK) { + if (dnssec_key_new(&ref_key) != KNOT_EOK || + dnssec_key_get_rdata(test_key, &rdata) != KNOT_EOK || + dnssec_key_set_rdata(ref_key, &rdata) != KNOT_EOK) { dnssec_key_free(test_key); dnssec_key_free(ref_key); return KNOT_ERROR; @@ -74,17 +74,17 @@ static int test_sign(dnssec_key_t *test_key, dnssec_key_t *ref_key) dnssec_binary_t sign = { 0 }; dnssec_sign_ctx_t *ctx = NULL; - if (dnssec_sign_new(&ctx, test_key) != DNSSEC_EOK || - dnssec_sign_add(ctx, &input) != DNSSEC_EOK || - dnssec_sign_write(ctx, DNSSEC_SIGN_NORMAL, &sign) != DNSSEC_EOK) { + if (dnssec_sign_new(&ctx, test_key) != KNOT_EOK || + dnssec_sign_add(ctx, &input) != KNOT_EOK || + dnssec_sign_write(ctx, DNSSEC_SIGN_NORMAL, &sign) != KNOT_EOK) { dnssec_binary_free(&sign); dnssec_sign_free(ctx); return KNOT_ERROR; } - if (dnssec_sign_init(ctx) != DNSSEC_EOK || - dnssec_sign_add(ctx, &input) != DNSSEC_EOK || - dnssec_sign_verify(ctx, false, &sign) != DNSSEC_EOK) { + if (dnssec_sign_init(ctx) != KNOT_EOK || + dnssec_sign_add(ctx, &input) != KNOT_EOK || + dnssec_sign_verify(ctx, false, &sign) != KNOT_EOK) { dnssec_binary_free(&sign); dnssec_sign_free(ctx); return KNOT_ERROR; @@ -93,9 +93,9 @@ static int test_sign(dnssec_key_t *test_key, dnssec_key_t *ref_key) dnssec_sign_free(ctx); ctx = NULL; - if (dnssec_sign_new(&ctx, ref_key) != DNSSEC_EOK || - dnssec_sign_add(ctx, &input) != DNSSEC_EOK || - dnssec_sign_verify(ctx, false, &sign) != DNSSEC_EOK) { + if (dnssec_sign_new(&ctx, ref_key) != KNOT_EOK || + dnssec_sign_add(ctx, &input) != KNOT_EOK || + dnssec_sign_verify(ctx, false, &sign) != KNOT_EOK) { dnssec_binary_free(&sign); dnssec_sign_free(ctx); return KNOT_ERROR; @@ -142,19 +142,19 @@ static void test_algorithm(dnssec_keystore_t *store, char *id = NULL; int ret = dnssec_keystore_generate(store, params->algorithm, params->bit_size, NULL, &id); - if (ret == DNSSEC_EOK) { + if (ret == KNOT_EOK) { res.generate = true; ret = test_key_use(store, id, params->algorithm); res.use = (ret == KNOT_EOK); ret = dnssec_keystore_remove(store, id); - res.remove = (ret == DNSSEC_EOK); + res.remove = (ret == KNOT_EOK); free(id); } ret = dnssec_keystore_import(store, ¶ms->pem, &id); - if (ret == DNSSEC_EOK) { + if (ret == KNOT_EOK) { res.import = true; ret = test_key_use(store, id, params->algorithm); @@ -166,9 +166,9 @@ static void test_algorithm(dnssec_keystore_t *store, ret = dnssec_keystore_remove(store, id); if (res.generate) { - res.remove &= (ret == DNSSEC_EOK); + res.remove &= (ret == KNOT_EOK); } else { - res.remove = (ret == DNSSEC_EOK); + res.remove = (ret == KNOT_EOK); } free(id); } @@ -275,10 +275,10 @@ static int bench(dthread_t *dt) knot_spin_lock(&data->lock); int ret = dnssec_keystore_generate(store, params->algorithm, params->bit_size, NULL, &id); - if (ret != DNSSEC_EOK || - dnssec_key_new(&test_key) != DNSSEC_EOK || - dnssec_key_set_algorithm(test_key, params->algorithm) != DNSSEC_EOK || - dnssec_keystore_get_private(store, id, test_key) != DNSSEC_EOK) { + if (ret != KNOT_EOK || + dnssec_key_new(&test_key) != KNOT_EOK || + dnssec_key_set_algorithm(test_key, params->algorithm) != KNOT_EOK || + dnssec_keystore_get_private(store, id, test_key) != KNOT_EOK) { goto finish; } knot_spin_unlock(&data->lock); @@ -296,9 +296,9 @@ static int bench(dthread_t *dt) while (result->time < BENCH_TIME) { dnssec_binary_t sign = { 0 }; dnssec_sign_ctx_t *ctx = NULL; - if (dnssec_sign_new(&ctx, test_key) != DNSSEC_EOK || - dnssec_sign_add(ctx, &input) != DNSSEC_EOK || - dnssec_sign_write(ctx, DNSSEC_SIGN_NORMAL, &sign) != DNSSEC_EOK) { + if (dnssec_sign_new(&ctx, test_key) != KNOT_EOK || + dnssec_sign_add(ctx, &input) != KNOT_EOK || + dnssec_sign_write(ctx, DNSSEC_SIGN_NORMAL, &sign) != KNOT_EOK) { dnssec_binary_free(&sign); dnssec_sign_free(ctx); result->time = 0; diff --git a/src/utils/knsec3hash/knsec3hash.c b/src/utils/knsec3hash/knsec3hash.c index 9fa0abc5a7..8704286b52 100644 --- a/src/utils/knsec3hash/knsec3hash.c +++ b/src/utils/knsec3hash/knsec3hash.c @@ -38,10 +38,10 @@ static int str_to_salt(const char *str, dnssec_binary_t *salt) { if (strcmp(str, "-") == 0) { salt->size = 0; - return DNSSEC_EOK; + return KNOT_EOK; } else { salt->data = hex_to_bin(str, &salt->size); - return (salt->data != NULL ? DNSSEC_EOK : DNSSEC_EINVAL); + return (salt->data != NULL ? KNOT_EOK : DNSSEC_EINVAL); } } @@ -67,7 +67,7 @@ static bool parse_nsec3_params(dnssec_nsec3_params_t *params, const char *salt_s dnssec_binary_t salt = { 0 }; r = str_to_salt(salt_str, &salt); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { ERR2("invalid salt (%s)", knot_strerror(r)); return false; } @@ -148,7 +148,7 @@ int main(int argc, char *argv[]) dname.size = knot_dname_size(dname.data); int r = dnssec_nsec3_hash(&dname, &nsec3_params, &digest); - if (r != DNSSEC_EOK) { + if (r != KNOT_EOK) { ERR2("cannot compute NSEC3 hash (%s)", knot_strerror(r)); goto fail; } diff --git a/tests/libknot/test_dnssec_binary.c b/tests/libknot/test_dnssec_binary.c index 9a88d3d6c5..70d378b485 100644 --- a/tests/libknot/test_dnssec_binary.c +++ b/tests/libknot/test_dnssec_binary.c @@ -41,14 +41,14 @@ static void test_base64(void) dnssec_binary_t binary = { 0 }; int r = dnssec_binary_from_base64(&base64, &binary); - ok(r == DNSSEC_EOK && + ok(r == KNOT_EOK && binary.size == ts->decoded_size && (binary.size == 0 || memcmp(binary.data, ts->decoded, binary.size) == 0), "dnssec_binary_from_base64() for '%s'", ts->encoded); dnssec_binary_t encoded = { 0 }; r = dnssec_binary_to_base64(&binary, &encoded); - ok(r == DNSSEC_EOK && + ok(r == KNOT_EOK && encoded.size == ts->encoded_size && memcmp(encoded.data, ts->encoded, encoded.size) == 0, "dnssec_binary_to_base64() for '%s'", ts->encoded); @@ -64,7 +64,7 @@ static void test_dup(void) dnssec_binary_t dst = { 0 }; int r = dnssec_binary_dup(&src, &dst); - ok(r == DNSSEC_EOK && + ok(r == KNOT_EOK && src.size == dst.size && memcmp(src.data, dst.data, src.size) == 0, "dnssec_binary_dup()"); diff --git a/tests/libknot/test_dnssec_key.c b/tests/libknot/test_dnssec_key.c index 6e0d9a8b24..fb9a3336e2 100644 --- a/tests/libknot/test_dnssec_key.c +++ b/tests/libknot/test_dnssec_key.c @@ -16,7 +16,7 @@ type value = dnssec_key_get_##name(key); \ ok(value == def_val, #name " default"); \ r = dnssec_key_set_##name(key, set_val); \ - ok(r == DNSSEC_EOK, #name " set"); \ + ok(r == KNOT_EOK, #name " set"); \ value = dnssec_key_get_##name(key); \ ok(value == set_val, #name " get"); \ } @@ -45,7 +45,7 @@ static void test_public_key(const key_parameters_t *params) { dnssec_key_t *key = NULL; int r = dnssec_key_new(&key); - ok(r == DNSSEC_EOK && key != NULL, "create key"); + ok(r == KNOT_EOK && key != NULL, "create key"); // create from parameters @@ -58,7 +58,7 @@ static void test_public_key(const key_parameters_t *params) check_attr_scalar(key, uint8_t, algorithm, 0, params->algorithm); r = dnssec_key_set_pubkey(key, ¶ms->public_key); - ok(r == DNSSEC_EOK, "set public key (succeeds)"); + ok(r == KNOT_EOK, "set public key (succeeds)"); r = dnssec_key_set_pubkey(key, ¶ms->public_key); ok(r == DNSSEC_KEY_ALREADY_PRESENT, @@ -66,7 +66,7 @@ static void test_public_key(const key_parameters_t *params) dnssec_binary_t rdata = { 0 }; r = dnssec_key_get_rdata(key, &rdata); - ok(r == DNSSEC_EOK && dnssec_binary_cmp(&rdata, ¶ms->rdata) == 0, + ok(r == KNOT_EOK && dnssec_binary_cmp(&rdata, ¶ms->rdata) == 0, "get RDATA"); check_key_tag(key, params); @@ -75,7 +75,7 @@ static void test_public_key(const key_parameters_t *params) dnssec_key_clear(key); r = dnssec_key_set_rdata(key, ¶ms->rdata); - ok(r == DNSSEC_EOK, "set RDATA"); + ok(r == KNOT_EOK, "set RDATA"); check_key_tag(key, params); check_key_size(key, params); @@ -98,15 +98,15 @@ static void test_private_key(const key_parameters_t *params) { dnssec_key_t *key = NULL; int r = dnssec_key_new(&key); - ok(r == DNSSEC_EOK && key != NULL, "create key"); + ok(r == KNOT_EOK && key != NULL, "create key"); // import to public r = dnssec_key_set_rdata(key, ¶ms->rdata); - ok(r == DNSSEC_EOK, "set RDATA"); + ok(r == KNOT_EOK, "set RDATA"); r = dnssec_key_load_pkcs8(key, ¶ms->pem); - ok(r == DNSSEC_EOK, "load private key (1)"); + ok(r == KNOT_EOK, "load private key (1)"); ok(dnssec_key_can_verify(key), "can verify"); ok(dnssec_key_can_sign(key), "can sign"); @@ -118,11 +118,11 @@ static void test_private_key(const key_parameters_t *params) dnssec_key_set_algorithm(key, params->algorithm); dnssec_key_set_flags(key, params->flags); r = dnssec_key_load_pkcs8(key, ¶ms->pem); - ok(r == DNSSEC_EOK, "load private key (2)"); + ok(r == KNOT_EOK, "load private key (2)"); dnssec_binary_t rdata = { 0 }; r = dnssec_key_get_rdata(key, &rdata); - ok(r == DNSSEC_EOK && dnssec_binary_cmp(&rdata, ¶ms->rdata) == 0, + ok(r == KNOT_EOK && dnssec_binary_cmp(&rdata, ¶ms->rdata) == 0, "get RDATA"); check_key_tag(key, params); diff --git a/tests/libknot/test_dnssec_key_algorithm.c b/tests/libknot/test_dnssec_key_algorithm.c index 53cd81bdf8..6891b790ac 100644 --- a/tests/libknot/test_dnssec_key_algorithm.c +++ b/tests/libknot/test_dnssec_key_algorithm.c @@ -14,7 +14,7 @@ static void ok_range(dnssec_key_algorithm_t algo, { unsigned min = 0, max = 0; int r = dnssec_algorithm_key_size_range(algo, &min, &max); - ok(r == DNSSEC_EOK && min == exp_min && max == exp_max, + ok(r == KNOT_EOK && min == exp_min && max == exp_max, "dnssec_algorithm_key_size_range() for %s", name); } @@ -27,9 +27,9 @@ static void null_range(void) r = dnssec_algorithm_key_size_range(algo, NULL, NULL); ok(r == DNSSEC_EINVAL, "dnssec_algorithm_key_size_range() all null"); r = dnssec_algorithm_key_size_range(algo, &val, NULL); - ok(r == DNSSEC_EOK && val == 1024, "dnssec_algorithm_key_size_range() min only"); + ok(r == KNOT_EOK && val == 1024, "dnssec_algorithm_key_size_range() min only"); r = dnssec_algorithm_key_size_range(algo, NULL, &val); - ok(r == DNSSEC_EOK && val == 4096, "dnssec_algorithm_key_size_range() max only"); + ok(r == KNOT_EOK && val == 4096, "dnssec_algorithm_key_size_range() max only"); } static void check_borders(void) diff --git a/tests/libknot/test_dnssec_key_ds.c b/tests/libknot/test_dnssec_key_ds.c index 15df6f094b..cca5f9a7b9 100644 --- a/tests/libknot/test_dnssec_key_ds.c +++ b/tests/libknot/test_dnssec_key_ds.c @@ -40,7 +40,7 @@ static void test_key(const char *name, const struct key_parameters *params) const dnssec_binary_t *expect = (void *)params + dt->params_offset; - ok(r == DNSSEC_EOK && + ok(r == KNOT_EOK && ds.size == expect->size && memcmp(ds.data, expect->data, ds.size) == 0, "dnssec_key_create_ds() for %s/%s", name, dt->name); @@ -76,7 +76,7 @@ static void test_errors(const struct key_parameters *params) is_int(DNSSEC_INVALID_DS_ALGORITHM, r, "dnssec_key_create_ds() unsupported algorithm"); r = dnssec_key_create_ds(key, DNSSEC_KEY_DIGEST_SHA1, &ds); - is_int(DNSSEC_EOK, r, "dnssec_key_create_ds() valid parameters"); + is_int(KNOT_EOK, r, "dnssec_key_create_ds() valid parameters"); dnssec_binary_free(&ds); dnssec_key_free(key); diff --git a/tests/libknot/test_dnssec_keystore_pkcs11.c b/tests/libknot/test_dnssec_keystore_pkcs11.c index 21245f4e8d..d132742403 100644 --- a/tests/libknot/test_dnssec_keystore_pkcs11.c +++ b/tests/libknot/test_dnssec_keystore_pkcs11.c @@ -218,24 +218,24 @@ static void create_dnskeys(dnssec_keystore_t *keystore, dnssec_key_t *p11_key = NULL; r = dnssec_key_new(&p11_key); - ok(r == DNSSEC_EOK && p11_key != NULL, MSG_PKCS11 " dnssec_key_new()"); + ok(r == KNOT_EOK && p11_key != NULL, MSG_PKCS11 " dnssec_key_new()"); r = dnssec_key_set_algorithm(p11_key, algorithm); - ok(r == DNSSEC_EOK, MSG_PKCS11 " dnssec_key_set_algorithm()"); + ok(r == KNOT_EOK, MSG_PKCS11 " dnssec_key_set_algorithm()"); r = dnssec_keystore_get_private(keystore, id, p11_key); - ok(r == DNSSEC_EOK, MSG_PKCS11 " dnssec_keystore_get_private()"); + ok(r == KNOT_EOK, MSG_PKCS11 " dnssec_keystore_get_private()"); // construct software public key dnssec_key_t *soft_key = NULL; r = dnssec_key_new(&soft_key); - ok(r == DNSSEC_EOK && soft_key != NULL, MSG_SOFTWARE " dnssec_key_new()"); + ok(r == KNOT_EOK && soft_key != NULL, MSG_SOFTWARE " dnssec_key_new()"); dnssec_binary_t rdata = { 0 }; dnssec_key_get_rdata(p11_key, &rdata); r = dnssec_key_set_rdata(soft_key, &rdata); - ok(r == DNSSEC_EOK, MSG_SOFTWARE " dnssec_key_set_rdata()"); + ok(r == KNOT_EOK, MSG_SOFTWARE " dnssec_key_set_rdata()"); *p11_key_ptr = p11_key; *soft_key_ptr = soft_key; @@ -264,24 +264,24 @@ static void test_sign(dnssec_key_t *p11_key, dnssec_key_t *soft_key) dnssec_sign_ctx_t *ctx = NULL; r = dnssec_sign_new(&ctx, p11_key); - ok(r == DNSSEC_EOK, MSG_PKCS11 " dnssec_sign_init() "); + ok(r == KNOT_EOK, MSG_PKCS11 " dnssec_sign_init() "); r = dnssec_sign_add(ctx, &input); - ok(r == DNSSEC_EOK, MSG_PKCS11 " dnssec_sign_add()"); + ok(r == KNOT_EOK, MSG_PKCS11 " dnssec_sign_add()"); r = dnssec_sign_write(ctx, DNSSEC_SIGN_NORMAL, &sign); - ok(r == DNSSEC_EOK, MSG_PKCS11 " dnssec_sign_write()"); + ok(r == KNOT_EOK, MSG_PKCS11 " dnssec_sign_write()"); // PKCS #11 key verification r = dnssec_sign_init(ctx); - ok(r == DNSSEC_EOK, MSG_PKCS11 " dnssec_sign_init()"); + ok(r == KNOT_EOK, MSG_PKCS11 " dnssec_sign_init()"); r = dnssec_sign_add(ctx, &input); - ok(r == DNSSEC_EOK, MSG_PKCS11 " dnssec_sign_add()"); + ok(r == KNOT_EOK, MSG_PKCS11 " dnssec_sign_add()"); r = dnssec_sign_verify(ctx, false, &sign); - ok(r == DNSSEC_EOK, MSG_PKCS11 " dnssec_sign_verify()"); + ok(r == KNOT_EOK, MSG_PKCS11 " dnssec_sign_verify()"); // software verification @@ -289,13 +289,13 @@ static void test_sign(dnssec_key_t *p11_key, dnssec_key_t *soft_key) ctx = NULL; r = dnssec_sign_new(&ctx, soft_key); - ok(r == DNSSEC_EOK, MSG_SOFTWARE " dnssec_sign_init()"); + ok(r == KNOT_EOK, MSG_SOFTWARE " dnssec_sign_init()"); r = dnssec_sign_add(ctx, &input); - ok(r == DNSSEC_EOK, MSG_SOFTWARE " dnssec_sign_add()"); + ok(r == KNOT_EOK, MSG_SOFTWARE " dnssec_sign_add()"); r = dnssec_sign_verify(ctx, false, &sign); - ok(r == DNSSEC_EOK, MSG_SOFTWARE " dnssec_sign_verify()"); + ok(r == KNOT_EOK, MSG_SOFTWARE " dnssec_sign_verify()"); dnssec_binary_free(&sign); dnssec_sign_free(ctx); @@ -327,13 +327,13 @@ static void test_algorithm(dnssec_keystore_t *store, r = dnssec_keystore_generate(store, params->algorithm, params->bit_size, NULL, &id_generate); - ok(r == DNSSEC_EOK && id_generate != NULL, "dnssec_keystore_generate()"); + ok(r == KNOT_EOK && id_generate != NULL, "dnssec_keystore_generate()"); test_key_use(store, params->algorithm, id_generate); diag("algorithm %d, imported key", params->algorithm); r = dnssec_keystore_import(store, ¶ms->pem, &id_import); - ok(r == DNSSEC_EOK && id_import != NULL, "dnssec_keystore_import()"); + ok(r == KNOT_EOK && id_import != NULL, "dnssec_keystore_import()"); test_key_use(store, params->algorithm, id_import); free(id_generate); @@ -354,7 +354,7 @@ int main(int argc, char *argv[]) skip_all("not supported"); goto done; } - ok(r == DNSSEC_EOK && store, "dnssec_keystore_init_pkcs11()"); + ok(r == KNOT_EOK && store, "dnssec_keystore_init_pkcs11()"); char *dso_name = libsofthsm_dso(); if (!dso_name) { @@ -380,10 +380,10 @@ int main(int argc, char *argv[]) // key store access r = dnssec_keystore_init(store, config); - ok(r == DNSSEC_EOK, "dnssec_keystore_init()"); + ok(r == KNOT_EOK, "dnssec_keystore_init()"); r = dnssec_keystore_open(store, config); - ok(r == DNSSEC_EOK, "dnssec_keystore_open()"); + ok(r == KNOT_EOK, "dnssec_keystore_open()"); // key manipulation @@ -399,7 +399,7 @@ int main(int argc, char *argv[]) } r = dnssec_keystore_close(store); - ok(r == DNSSEC_EOK, "dnssec_keystore_close()"); + ok(r == KNOT_EOK, "dnssec_keystore_close()"); done: dnssec_keystore_deinit(store); dnssec_crypto_cleanup(); diff --git a/tests/libknot/test_dnssec_keystore_pkcs8.c b/tests/libknot/test_dnssec_keystore_pkcs8.c index 066b22062d..561bd42b12 100644 --- a/tests/libknot/test_dnssec_keystore_pkcs8.c +++ b/tests/libknot/test_dnssec_keystore_pkcs8.c @@ -23,25 +23,25 @@ int main(void) dnssec_keystore_t *store = NULL; int r = dnssec_keystore_init_pkcs8(&store); - ok(r == DNSSEC_EOK, "dnssec_keystore_init_pkcs8()"); + ok(r == KNOT_EOK, "dnssec_keystore_init_pkcs8()"); r = dnssec_keystore_init(store, dir); - ok(r == DNSSEC_EOK, "init"); + ok(r == KNOT_EOK, "init"); r = dnssec_keystore_open(store, dir); - ok(r == DNSSEC_EOK, "open"); + ok(r == KNOT_EOK, "open"); // writing new content char *id_A = NULL; r = dnssec_keystore_generate(store, DNSSEC_KEY_ALGORITHM_RSA_SHA256, 1024, NULL, &id_A); - ok(r == DNSSEC_EOK, "generate A"); + ok(r == KNOT_EOK, "generate A"); char *id_B = NULL; r = dnssec_keystore_generate(store, DNSSEC_KEY_ALGORITHM_RSA_SHA256, 1024, NULL, &id_B); - ok(r == DNSSEC_EOK, "generate B"); + ok(r == KNOT_EOK, "generate B"); // reading existing content @@ -49,19 +49,19 @@ int main(void) dnssec_key_new(&key); dnssec_key_set_algorithm(key, DNSSEC_KEY_ALGORITHM_RSA_SHA256); r = dnssec_keystore_get_private(store, id_A, key); - ok(r == DNSSEC_EOK, "read A"); + ok(r == KNOT_EOK, "read A"); dnssec_key_free(key); dnssec_key_new(&key); dnssec_key_set_algorithm(key, DNSSEC_KEY_ALGORITHM_RSA_SHA256); r = dnssec_keystore_get_private(store, id_B, key); - ok(r == DNSSEC_EOK, "read B"); + ok(r == KNOT_EOK, "read B"); dnssec_key_free(key); // content removal r = dnssec_keystore_remove(store, id_A); - ok(r == DNSSEC_EOK, "remove A"); + ok(r == KNOT_EOK, "remove A"); dnssec_key_new(&key); dnssec_key_set_algorithm(key, DNSSEC_KEY_ALGORITHM_RSA_SHA256); @@ -75,10 +75,10 @@ int main(void) free(id_B); r = dnssec_keystore_close(store); - ok(r == DNSSEC_EOK, "close"); + ok(r == KNOT_EOK, "close"); r = dnssec_keystore_deinit(store); - ok(r == DNSSEC_EOK, "deinit"); + ok(r == KNOT_EOK, "deinit"); test_rm_rf(dir); free(dir); diff --git a/tests/libknot/test_dnssec_keytag.c b/tests/libknot/test_dnssec_keytag.c index 494fa81399..a794f3fd25 100644 --- a/tests/libknot/test_dnssec_keytag.c +++ b/tests/libknot/test_dnssec_keytag.c @@ -26,7 +26,7 @@ int main(void) }}; uint16_t tag = 0; - ok(dnssec_keytag(&rsa_md5_rdata, &tag) == DNSSEC_EOK && tag == 40866, + ok(dnssec_keytag(&rsa_md5_rdata, &tag) == KNOT_EOK && tag == 40866, "keytag for RSA/MD5"); const dnssec_binary_t ecdsa_rdata = { .size = 100, .data = (uint8_t []) { @@ -43,7 +43,7 @@ int main(void) 0xf4, 0xfc, 0xe2, 0x10, 0xd4, 0x26 }}; - ok(dnssec_keytag(&ecdsa_rdata, &tag) == DNSSEC_EOK && tag == 61768, + ok(dnssec_keytag(&ecdsa_rdata, &tag) == KNOT_EOK && tag == 61768, "keytag for ECDSA/SHA384"); return 0; diff --git a/tests/libknot/test_dnssec_nsec_hash.c b/tests/libknot/test_dnssec_nsec_hash.c index a784dea2bf..99a5f0c9f7 100644 --- a/tests/libknot/test_dnssec_nsec_hash.c +++ b/tests/libknot/test_dnssec_nsec_hash.c @@ -29,7 +29,7 @@ static void test_parsing(void) dnssec_nsec3_params_t params = { 0 }; int result = dnssec_nsec3_params_from_rdata(¶ms, &RDATA); - ok(result == DNSSEC_EOK, "dnssec_nsec3_params_from_rdata()"); + ok(result == KNOT_EOK, "dnssec_nsec3_params_from_rdata()"); ok(params.algorithm == 1, "algorithm"); ok(params.flags == 0, "flags"); @@ -64,7 +64,7 @@ static void test_hashing(void) dnssec_binary_t hash = { 0 }; int result = dnssec_nsec3_hash(&dname, ¶ms, &hash); - ok(result == DNSSEC_EOK, "dnssec_nsec3_hash()"); + ok(result == KNOT_EOK, "dnssec_nsec3_hash()"); ok(hash.size == expected.size && hash.data != NULL && memcmp(hash.data, expected.data, expected.size) == 0, @@ -79,7 +79,7 @@ static void test_clear(void) dnssec_nsec3_params_t params = { 0 }; int result = dnssec_nsec3_params_from_rdata(¶ms, &RDATA); - ok(result == DNSSEC_EOK, "dnssec_nsec3_params_from_rdata()"); + ok(result == KNOT_EOK, "dnssec_nsec3_params_from_rdata()"); ok(memcmp(¶ms, &empty, sizeof(dnssec_nsec3_params_t)) != 0, "non-empty after dnssec_nsec3_params_from_rdata()"); diff --git a/tests/libknot/test_dnssec_random.c b/tests/libknot/test_dnssec_random.c index 6b6d6f7c6d..b36a84bc2a 100644 --- a/tests/libknot/test_dnssec_random.c +++ b/tests/libknot/test_dnssec_random.c @@ -21,7 +21,7 @@ int check_buffer(void) for (int i = 0; i < 10; i++) { int result = dnssec_random_buffer(buffer, buffer_size); - if (result != DNSSEC_EOK) { + if (result != KNOT_EOK) { return 1; } diff --git a/tests/libknot/test_dnssec_sign.c b/tests/libknot/test_dnssec_sign.c index dccd016cc6..dbd5a52bea 100644 --- a/tests/libknot/test_dnssec_sign.c +++ b/tests/libknot/test_dnssec_sign.c @@ -87,37 +87,37 @@ static void check_key(const key_parameters_t *key_data, const dnssec_binary_t *d dnssec_key_t *key = NULL; r = dnssec_key_new(&key); - ok(r == DNSSEC_EOK && key != NULL, "create key"); + ok(r == KNOT_EOK && key != NULL, "create key"); r = dnssec_key_set_rdata(key, &key_data->rdata); - ok(r == DNSSEC_EOK, "set RDATA"); + ok(r == KNOT_EOK, "set RDATA"); // check validation on static signature dnssec_sign_ctx_t *ctx = NULL; r = dnssec_sign_new(&ctx, key); - ok(r == DNSSEC_EOK, "create signing context"); + ok(r == KNOT_EOK, "create signing context"); r = dnssec_sign_add(ctx, data); - ok(r == DNSSEC_EOK, "add data to be signed"); + ok(r == KNOT_EOK, "add data to be signed"); r = dnssec_sign_verify(ctx, false, signature); - ok(r == DNSSEC_EOK, "signature verified"); + ok(r == KNOT_EOK, "signature verified"); // create new signature and self-validate r = dnssec_key_load_pkcs8(key, &key_data->pem); - ok(r == DNSSEC_EOK, "load private key"); + ok(r == KNOT_EOK, "load private key"); if (signature_match) { r = dnssec_sign_init(ctx); - ok(r == DNSSEC_EOK, "reinitialize context"); + ok(r == KNOT_EOK, "reinitialize context"); r = dnssec_sign_add(ctx, data); - ok(r == DNSSEC_EOK, "add data to be signed"); + ok(r == KNOT_EOK, "add data to be signed"); dnssec_binary_t new_signature = { 0 }; r = dnssec_sign_write(ctx, DNSSEC_SIGN_NORMAL, &new_signature); - ok(r == DNSSEC_EOK, "write the signature"); + ok(r == KNOT_EOK, "write the signature"); ok(dnssec_binary_cmp(signature, &new_signature) == 0, "signature exact match"); r = dnssec_sign_verify(ctx, false, &new_signature); - ok(r == DNSSEC_EOK, "reverify the new signature"); + ok(r == KNOT_EOK, "reverify the new signature"); dnssec_binary_free(&new_signature); } @@ -126,36 +126,36 @@ static void check_key(const key_parameters_t *key_data, const dnssec_binary_t *d dnssec_binary_t tmp = { 0 }; r = dnssec_sign_init(ctx); - ok(r == DNSSEC_EOK, "reinitialize context"); + ok(r == KNOT_EOK, "reinitialize context"); tmp = binary_set_string("bind"); r = dnssec_sign_add(ctx, &tmp); - ok(r == DNSSEC_EOK, "add data (1)"); + ok(r == KNOT_EOK, "add data (1)"); r = dnssec_sign_init(ctx); - ok(r == DNSSEC_EOK, "reinitialize context"); + ok(r == KNOT_EOK, "reinitialize context"); tmp = binary_set_string("knot"); r = dnssec_sign_add(ctx, &tmp); - ok(r == DNSSEC_EOK, "add data (2)"); + ok(r == KNOT_EOK, "add data (2)"); tmp = binary_set_string(" is the best"); r = dnssec_sign_add(ctx, &tmp); - ok(r == DNSSEC_EOK, "add data (3)"); + ok(r == KNOT_EOK, "add data (3)"); dnssec_binary_t new_signature = { 0 }; r = dnssec_sign_write(ctx, DNSSEC_SIGN_NORMAL, &new_signature); - ok(r == DNSSEC_EOK, "write signature"); + ok(r == KNOT_EOK, "write signature"); r = dnssec_sign_init(ctx); - ok(r == DNSSEC_EOK, "reinitialize context"); + ok(r == KNOT_EOK, "reinitialize context"); tmp = binary_set_string("knot is the best"); r = dnssec_sign_add(ctx, &tmp); - ok(r == DNSSEC_EOK, "add data (4)"); + ok(r == KNOT_EOK, "add data (4)"); r = dnssec_sign_verify(ctx, false, &new_signature); - ok(r == DNSSEC_EOK, "verify signature"); + ok(r == KNOT_EOK, "verify signature"); dnssec_binary_free(&new_signature); diff --git a/tests/libknot/test_dnssec_sign_der.c b/tests/libknot/test_dnssec_sign_der.c index b1755552ee..6df533df55 100644 --- a/tests/libknot/test_dnssec_sign_der.c +++ b/tests/libknot/test_dnssec_sign_der.c @@ -27,7 +27,7 @@ static int binary_eq(const dnssec_binary_t *a, const dnssec_binary_t *b) dnssec_binary_t __out_s = { 0 }; \ dnssec_binary_t __out_r = { 0 }; \ int _result = dss_sig_value_decode(&__der, &__out_r, &__out_s); \ - ok(_result == DNSSEC_EOK && \ + ok(_result == KNOT_EOK && \ binary_eq(&__r, &__out_r) && \ binary_eq(&__s, &__out_s), \ "decode ok, " message) @@ -37,7 +37,7 @@ static int binary_eq(const dnssec_binary_t *a, const dnssec_binary_t *b) dnssec_binary_t __out_r = { 0 }; \ dnssec_binary_t __out_s = { 0 }; \ int _result = dss_sig_value_decode(&__der, &__out_r, &__out_s); \ - ok(_result != DNSSEC_EOK, \ + ok(_result != KNOT_EOK, \ "decode fail, " message) #define ENCODE_OK(r, s, der, message) \ @@ -46,7 +46,7 @@ static int binary_eq(const dnssec_binary_t *a, const dnssec_binary_t *b) dnssec_binary_t __der = { .data = der, .size = sizeof(der) }; \ dnssec_binary_t __out_der = { 0 }; \ int _result = dss_sig_value_encode(&__r, &__s, &__out_der); \ - ok(_result == DNSSEC_EOK && \ + ok(_result == KNOT_EOK && \ binary_eq(&__der, &__out_der), \ "encode ok, " message); \ dnssec_binary_free(&__out_der) @@ -56,7 +56,7 @@ static int binary_eq(const dnssec_binary_t *a, const dnssec_binary_t *b) dnssec_binary_t __s = { .data = s, .size = sizeof(s) }; \ dnssec_binary_t __out_der = { 0 }; \ int _result = dss_sig_value_encode(&__r, &__s, &__out_der); \ - ok(_result != DNSSEC_EOK, \ + ok(_result != KNOT_EOK, \ "encode fail, " message); \ dnssec_binary_free(&__out_der) From e4caa3ebc993f13d19620d1b13ec04c5828bcd31 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 09:48:25 +0200 Subject: [PATCH 172/675] Replace DNSSEC_ENOMEM with KNOT_ENOMEM --- src/libknot/dnssec/binary.c | 6 +++--- src/libknot/dnssec/digest.c | 2 +- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/key/dnskey.c | 2 +- src/libknot/dnssec/key/key.c | 6 +++--- src/libknot/dnssec/key/privkey.c | 2 +- src/libknot/dnssec/keystore/keystore.c | 4 ++-- src/libknot/dnssec/keystore/pkcs11.c | 16 ++++++++-------- src/libknot/dnssec/keystore/pkcs8.c | 8 ++++---- src/libknot/dnssec/nsec/nsec.c | 2 +- src/libknot/dnssec/p11/p11.c | 2 +- src/libknot/dnssec/pem.c | 6 +++--- src/libknot/dnssec/shared/keyid_gnutls.c | 2 +- src/libknot/dnssec/sign/der.c | 2 +- src/libknot/dnssec/tsig.c | 2 +- src/utils/keymgr/bind_privkey.c | 6 +++--- 17 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/libknot/dnssec/binary.c b/src/libknot/dnssec/binary.c index 17862ccebb..c8ba5427d6 100644 --- a/src/libknot/dnssec/binary.c +++ b/src/libknot/dnssec/binary.c @@ -22,7 +22,7 @@ int dnssec_binary_alloc(dnssec_binary_t *data, size_t size) uint8_t *new_data = calloc(1, size); if (!new_data) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } data->data = new_data; @@ -51,7 +51,7 @@ int dnssec_binary_dup(const dnssec_binary_t *from, dnssec_binary_t *to) uint8_t *copy = malloc(from->size); if (copy == NULL) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } memmove(copy, from->data, from->size); @@ -71,7 +71,7 @@ int dnssec_binary_resize(dnssec_binary_t *data, size_t new_size) uint8_t *new_data = realloc(data->data, new_size); if (new_size > 0 && new_data == NULL) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } data->data = new_data; diff --git a/src/libknot/dnssec/digest.c b/src/libknot/dnssec/digest.c index 97edf00e51..1d6e891bf2 100644 --- a/src/libknot/dnssec/digest.c +++ b/src/libknot/dnssec/digest.c @@ -39,7 +39,7 @@ int dnssec_digest_init(dnssec_digest_t algorithm, dnssec_digest_ctx_t **out_ctx) dnssec_digest_ctx_t *res = malloc(sizeof(*res)); if (res == NULL) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } res->size = gnutls_hash_get_len(gtalg); diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index fe8a4d8958..c76a6344b7 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -16,7 +16,7 @@ typedef struct error_message_t { static const error_message_t ERROR_MESSAGES[] = { { KNOT_EOK, "no error" }, - { DNSSEC_ENOMEM, "not enough memory" }, + { KNOT_ENOMEM, "not enough memory" }, { DNSSEC_EINVAL, "invalid argument" }, { DNSSEC_ENOENT, "no such file or directory" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 90a9bbb371..4ab3ca88ff 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -26,7 +26,7 @@ enum dnssec_error { KNOT_EOK = 0, - DNSSEC_ENOMEM = -ENOMEM, + KNOT_ENOMEM = -ENOMEM, DNSSEC_EINVAL = -EINVAL, DNSSEC_ENOENT = -ENOENT, diff --git a/src/libknot/dnssec/key/dnskey.c b/src/libknot/dnssec/key/dnskey.c index 52d9cf0825..2a7e0dbcd4 100644 --- a/src/libknot/dnssec/key/dnskey.c +++ b/src/libknot/dnssec/key/dnskey.c @@ -65,7 +65,7 @@ int dnskey_rdata_to_crypto_key(const dnssec_binary_t *rdata, gnutls_pubkey_t *ke gnutls_pubkey_t key = NULL; int result = gnutls_pubkey_init(&key); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } result = convert_dnskey_to_pubkey(algorithm, &rdata_pubkey, key); diff --git a/src/libknot/dnssec/key/key.c b/src/libknot/dnssec/key/key.c index 46e948b7c9..072129f3a8 100644 --- a/src/libknot/dnssec/key/key.c +++ b/src/libknot/dnssec/key/key.c @@ -48,13 +48,13 @@ int dnssec_key_new(dnssec_key_t **key_ptr) dnssec_key_t *key = calloc(1, sizeof(*key)); if (!key) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } int r = dnssec_binary_dup(&DNSKEY_RDATA_TEMPLATE, &key->rdata); if (r != KNOT_EOK) { free(key); - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } *key_ptr = key; @@ -179,7 +179,7 @@ int dnssec_key_set_dname(dnssec_key_t *key, const uint8_t *dname) if (dname) { copy = knot_dname_copy(dname, NULL); if (!copy) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } knot_dname_to_lower(copy); diff --git a/src/libknot/dnssec/key/privkey.c b/src/libknot/dnssec/key/privkey.c index 71db505fa9..a1e10553b3 100644 --- a/src/libknot/dnssec/key/privkey.c +++ b/src/libknot/dnssec/key/privkey.c @@ -40,7 +40,7 @@ static int public_from_private(gnutls_privkey_t privkey, gnutls_pubkey_t *pubkey gnutls_pubkey_t new_key = NULL; int result = gnutls_pubkey_init(&new_key); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } result = gnutls_pubkey_import_privkey(new_key, privkey, 0, 0); diff --git a/src/libknot/dnssec/keystore/keystore.c b/src/libknot/dnssec/keystore/keystore.c index 4c64b8f936..e19747d063 100644 --- a/src/libknot/dnssec/keystore/keystore.c +++ b/src/libknot/dnssec/keystore/keystore.c @@ -27,7 +27,7 @@ int keystore_create(dnssec_keystore_t **store_ptr, dnssec_keystore_t *store = calloc(1, sizeof(*store)); if (!store) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } store->functions = functions; @@ -35,7 +35,7 @@ int keystore_create(dnssec_keystore_t **store_ptr, int result = functions->ctx_new(&store->ctx); if (result != KNOT_EOK) { free(store); - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } *store_ptr = store; diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index 52002720d0..9a40a11f37 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -48,13 +48,13 @@ static int key_url(const char *token_uri, const char *key_id, char **url_ptr) size_t len = token_len + 4 + (id_len / 2 * 3); char *url = malloc(len + 1); if (!url) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } size_t prefix = snprintf(url, len, "%s;id=", token_uri); if (prefix != token_len + 4) { free(url); - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } assert(id_len % 2 == 0); @@ -87,7 +87,7 @@ static int parse_config(const char *config, char **uri_ptr, char **module_ptr) if (!url || !module) { free(url); free(module); - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } *uri_ptr = url; @@ -143,7 +143,7 @@ static int pkcs11_ctx_new(void **ctx_ptr) pkcs11_ctx_t *ctx = calloc(1, sizeof(*ctx)); if (!ctx) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } *ctx_ptr = ctx; @@ -205,7 +205,7 @@ static int pkcs11_generate_key(void *_ctx, gnutls_pk_algorithm_t algorithm, char *id = bin_to_hex(cka_id.data, cka_id.size, false); if (id == NULL) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } *id_ptr = id; @@ -229,7 +229,7 @@ static int import_pem(const dnssec_binary_t *pem, if (gnutls_privkey_init(&key) != GNUTLS_E_SUCCESS || gnutls_pubkey_init(&pubkey) != GNUTLS_E_SUCCESS ) { - r = DNSSEC_ENOMEM; + r = KNOT_ENOMEM; goto fail; } @@ -288,7 +288,7 @@ static int pkcs11_import_key(void *_ctx, const dnssec_binary_t *pem, char **id_p *id_ptr = bin_to_hex(id.data, id.size, false); if (*id_ptr == NULL) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } return KNOT_EOK; @@ -327,7 +327,7 @@ static int pkcs11_get_private(void *_ctx, const char *id, gnutls_privkey_t *key_ gnutls_privkey_t key = NULL; r = gnutls_privkey_init(&key); if (r != GNUTLS_E_SUCCESS) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } r = gnutls_privkey_import_pkcs11_url(key, url); diff --git a/src/libknot/dnssec/keystore/pkcs8.c b/src/libknot/dnssec/keystore/pkcs8.c index 986dd9b094..bb7149c263 100644 --- a/src/libknot/dnssec/keystore/pkcs8.c +++ b/src/libknot/dnssec/keystore/pkcs8.c @@ -77,7 +77,7 @@ static int key_open(const char *dir_name, const char *id, int flags, _cleanup_free_ char *filename = key_path(dir_name, id); if (!filename) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } int fd = open(filename, flags, mode); @@ -176,7 +176,7 @@ static int pem_generate(gnutls_pk_algorithm_t algorithm, unsigned bits, _cleanup_x509_privkey_ gnutls_x509_privkey_t key = NULL; int r = gnutls_x509_privkey_init(&key); if (r != GNUTLS_E_SUCCESS) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } r = gnutls_x509_privkey_generate(key, algorithm, bits, 0); @@ -217,7 +217,7 @@ static int pkcs8_ctx_new(void **ctx_ptr) pkcs8_dir_handle_t *ctx = calloc(1, sizeof(*ctx)); if (!ctx) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } *ctx_ptr = ctx; @@ -380,7 +380,7 @@ static int pkcs8_remove_key(void *ctx, const char *id) _cleanup_free_ char *filename = key_path(handle->dir_name, id); if (!filename) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } if (unlink(filename) == -1) { diff --git a/src/libknot/dnssec/nsec/nsec.c b/src/libknot/dnssec/nsec/nsec.c index 5debf382b6..b104b42e54 100644 --- a/src/libknot/dnssec/nsec/nsec.c +++ b/src/libknot/dnssec/nsec/nsec.c @@ -56,7 +56,7 @@ int dnssec_nsec3_params_from_rdata(dnssec_nsec3_params_t *params, new_params.salt.data = malloc(new_params.salt.size); if (new_params.salt.data == NULL) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } binary_read(&wire, &new_params.salt); diff --git a/src/libknot/dnssec/p11/p11.c b/src/libknot/dnssec/p11/p11.c index c0571fd38f..1de8c35e17 100644 --- a/src/libknot/dnssec/p11/p11.c +++ b/src/libknot/dnssec/p11/p11.c @@ -50,7 +50,7 @@ int p11_load_module(const char *module) char *copy = strdup(module); if (!copy) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } int r = gnutls_pkcs11_add_provider(module, NULL); diff --git a/src/libknot/dnssec/pem.c b/src/libknot/dnssec/pem.c index 2c95539cff..3aa565dfe8 100644 --- a/src/libknot/dnssec/pem.c +++ b/src/libknot/dnssec/pem.c @@ -26,7 +26,7 @@ int dnssec_pem_to_x509(const dnssec_binary_t *pem, gnutls_x509_privkey_t *key) gnutls_x509_privkey_t _key = NULL; int r = gnutls_x509_privkey_init(&_key); if (r != GNUTLS_E_SUCCESS) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } int format = GNUTLS_X509_FMT_PEM; @@ -60,7 +60,7 @@ int dnssec_pem_to_privkey(const dnssec_binary_t *pem, gnutls_privkey_t *key) r = gnutls_privkey_init(&key_abs); if (r != GNUTLS_E_SUCCESS) { gnutls_x509_privkey_deinit(key_x509); - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } int flags = GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE; @@ -68,7 +68,7 @@ int dnssec_pem_to_privkey(const dnssec_binary_t *pem, gnutls_privkey_t *key) if (r != GNUTLS_E_SUCCESS) { gnutls_x509_privkey_deinit(key_x509); gnutls_privkey_deinit(key_abs); - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } *key = key_abs; diff --git a/src/libknot/dnssec/shared/keyid_gnutls.c b/src/libknot/dnssec/shared/keyid_gnutls.c index 42ea122d5f..a7437f97e4 100644 --- a/src/libknot/dnssec/shared/keyid_gnutls.c +++ b/src/libknot/dnssec/shared/keyid_gnutls.c @@ -61,7 +61,7 @@ static int keyid_hex(gnutls_x509_privkey_t key, gnutls_pubkey_t pubkey, char **i *id = bin_to_hex(bin.data, bin.size, false); if (*id == NULL) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } return KNOT_EOK; diff --git a/src/libknot/dnssec/sign/der.c b/src/libknot/dnssec/sign/der.c index 11ef0647bf..54c1ee0950 100644 --- a/src/libknot/dnssec/sign/der.c +++ b/src/libknot/dnssec/sign/der.c @@ -203,7 +203,7 @@ int dss_sig_value_encode(const dnssec_binary_t *r, const dnssec_binary_t *s, dnssec_binary_t _der = { 0 }; if (dnssec_binary_alloc(&_der, total_size)) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } wire_ctx_t wire = binary_init(&_der); diff --git a/src/libknot/dnssec/tsig.c b/src/libknot/dnssec/tsig.c index af70d91e23..32fe15639e 100644 --- a/src/libknot/dnssec/tsig.c +++ b/src/libknot/dnssec/tsig.c @@ -155,7 +155,7 @@ int dnssec_tsig_new(dnssec_tsig_ctx_t **ctx_ptr, dnssec_tsig_ctx_t *ctx = calloc(1, sizeof(*ctx)); if (!ctx) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } ctx->algorithm = algorithm_to_gnutls(algorithm); diff --git a/src/utils/keymgr/bind_privkey.c b/src/utils/keymgr/bind_privkey.c index 05e1a2d962..d82f524eca 100644 --- a/src/utils/keymgr/bind_privkey.c +++ b/src/utils/keymgr/bind_privkey.c @@ -246,7 +246,7 @@ static int rsa_params_to_pem(const bind_privkey_t *params, dnssec_binary_t *pem) _cleanup_x509_privkey_ gnutls_x509_privkey_t key = NULL; int result = gnutls_x509_privkey_init(&key); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } gnutls_datum_t m = binary_to_datum(¶ms->modulus); @@ -301,7 +301,7 @@ static int ecdsa_params_to_pem(dnssec_key_t *dnskey, const bind_privkey_t *param _cleanup_x509_privkey_ gnutls_x509_privkey_t key = NULL; int result = gnutls_x509_privkey_init(&key); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } gnutls_ecc_curve_t curve = 0; @@ -339,7 +339,7 @@ static int eddsa_params_to_pem(dnssec_key_t *dnskey, const bind_privkey_t *param _cleanup_x509_privkey_ gnutls_x509_privkey_t key = NULL; int result = gnutls_x509_privkey_init(&key); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_ENOMEM; + return KNOT_ENOMEM; } gnutls_ecc_curve_t curve = 0; From e7e7052f7bd35db4dd83d1062a98e7b7310ba8ae Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 09:52:41 +0200 Subject: [PATCH 173/675] Replace DNSSEC_EINVAL with KNOT_EINVAL --- src/knot/dnssec/kasp/keystore.c | 2 +- src/libknot/dnssec/binary.c | 14 +++++++------- src/libknot/dnssec/digest.c | 6 +++--- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/key/algorithm.c | 2 +- src/libknot/dnssec/key/ds.c | 2 +- src/libknot/dnssec/key/key.c | 20 ++++++++++---------- src/libknot/dnssec/key/keytag.c | 2 +- src/libknot/dnssec/key/simple.c | 2 +- src/libknot/dnssec/keystore/keystore.c | 18 +++++++++--------- src/libknot/dnssec/keystore/pkcs8.c | 20 ++++++++++---------- src/libknot/dnssec/nsec/hash.c | 2 +- src/libknot/dnssec/nsec/nsec.c | 2 +- src/libknot/dnssec/pem.c | 8 ++++---- src/libknot/dnssec/random.c | 4 ++-- src/libknot/dnssec/sign/der.c | 4 ++-- src/libknot/dnssec/sign/sign.c | 10 +++++----- src/libknot/dnssec/tsig.c | 6 +++--- src/utils/knsec3hash/knsec3hash.c | 2 +- tests/libknot/test_dnssec_key_algorithm.c | 2 +- tests/libknot/test_dnssec_key_ds.c | 4 ++-- 22 files changed, 68 insertions(+), 68 deletions(-) diff --git a/src/knot/dnssec/kasp/keystore.c b/src/knot/dnssec/kasp/keystore.c index 4d67737a4c..98a255bfeb 100644 --- a/src/knot/dnssec/kasp/keystore.c +++ b/src/knot/dnssec/kasp/keystore.c @@ -33,7 +33,7 @@ static char *fix_path(const char *config, const char *base_path) int keystore_load(const char *config, unsigned backend, const char *kasp_base_path, dnssec_keystore_t **keystore) { - int ret = DNSSEC_EINVAL; + int ret = KNOT_EINVAL; char *fixed_config = NULL; switch (backend) { diff --git a/src/libknot/dnssec/binary.c b/src/libknot/dnssec/binary.c index c8ba5427d6..d153461b10 100644 --- a/src/libknot/dnssec/binary.c +++ b/src/libknot/dnssec/binary.c @@ -17,7 +17,7 @@ _public_ int dnssec_binary_alloc(dnssec_binary_t *data, size_t size) { if (!data || size == 0) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } uint8_t *new_data = calloc(1, size); @@ -46,7 +46,7 @@ _public_ int dnssec_binary_dup(const dnssec_binary_t *from, dnssec_binary_t *to) { if (!from || !to) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } uint8_t *copy = malloc(from->size); @@ -66,7 +66,7 @@ _public_ int dnssec_binary_resize(dnssec_binary_t *data, size_t new_size) { if (!data) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } uint8_t *new_data = realloc(data->data, new_size); @@ -116,13 +116,13 @@ int dnssec_binary_from_base64(const dnssec_binary_t *base64, dnssec_binary_t *binary) { if (!base64 || !binary) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } uint8_t *data; int32_t size = knot_base64_decode_alloc(base64->data, base64->size, &data); if (size < 0) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } binary->data = data; @@ -136,13 +136,13 @@ int dnssec_binary_to_base64(const dnssec_binary_t *binary, dnssec_binary_t *base64) { if (!binary || !base64) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } uint8_t *data; int32_t size = knot_base64_encode_alloc(binary->data, binary->size, &data); if (size < 0) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } base64->data = data; diff --git a/src/libknot/dnssec/digest.c b/src/libknot/dnssec/digest.c index 1d6e891bf2..156dd96473 100644 --- a/src/libknot/dnssec/digest.c +++ b/src/libknot/dnssec/digest.c @@ -29,7 +29,7 @@ _public_ int dnssec_digest_init(dnssec_digest_t algorithm, dnssec_digest_ctx_t **out_ctx) { if (out_ctx == NULL) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } gnutls_digest_algorithm_t gtalg = lookup_algorithm(algorithm); @@ -62,7 +62,7 @@ _public_ int dnssec_digest(dnssec_digest_ctx_t *ctx, dnssec_binary_t *data) { if (ctx == NULL || data == NULL) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } int r = gnutls_hash(ctx->gtctx, data->data, data->size); @@ -77,7 +77,7 @@ _public_ int dnssec_digest_finish(dnssec_digest_ctx_t *ctx, dnssec_binary_t *out) { if (ctx == NULL || out == NULL) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } int r = dnssec_binary_resize(out, ctx->size); diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index c76a6344b7..5e74845ea0 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -17,7 +17,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_EOK, "no error" }, { KNOT_ENOMEM, "not enough memory" }, - { DNSSEC_EINVAL, "invalid argument" }, + { KNOT_EINVAL, "invalid argument" }, { DNSSEC_ENOENT, "no such file or directory" }, { DNSSEC_ERROR, "unspecified error" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 4ab3ca88ff..88f47848bf 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -27,7 +27,7 @@ enum dnssec_error { KNOT_EOK = 0, KNOT_ENOMEM = -ENOMEM, - DNSSEC_EINVAL = -EINVAL, + KNOT_EINVAL = -EINVAL, DNSSEC_ENOENT = -ENOENT, DNSSEC_ERROR_MIN = -1500, diff --git a/src/libknot/dnssec/key/algorithm.c b/src/libknot/dnssec/key/algorithm.c index a9d1be0058..9cc08e9890 100644 --- a/src/libknot/dnssec/key/algorithm.c +++ b/src/libknot/dnssec/key/algorithm.c @@ -117,7 +117,7 @@ int dnssec_algorithm_key_size_range(dnssec_key_algorithm_t algorithm, unsigned *min_ptr, unsigned *max_ptr) { if (!min_ptr && !max_ptr) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } const struct limits *limits = get_limits(algorithm); diff --git a/src/libknot/dnssec/key/ds.c b/src/libknot/dnssec/key/ds.c index 9f6fb0fb4a..ca215f20e1 100644 --- a/src/libknot/dnssec/key/ds.c +++ b/src/libknot/dnssec/key/ds.c @@ -61,7 +61,7 @@ int dnssec_key_create_ds(const dnssec_key_t *key, dnssec_binary_t *rdata_ptr) { if (!key || !rdata_ptr) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } if (!key->dname) { diff --git a/src/libknot/dnssec/key/key.c b/src/libknot/dnssec/key/key.c index 072129f3a8..633cdd0c87 100644 --- a/src/libknot/dnssec/key/key.c +++ b/src/libknot/dnssec/key/key.c @@ -43,7 +43,7 @@ _public_ int dnssec_key_new(dnssec_key_t **key_ptr) { if (!key_ptr) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } dnssec_key_t *key = calloc(1, sizeof(*key)); @@ -172,7 +172,7 @@ _public_ int dnssec_key_set_dname(dnssec_key_t *key, const uint8_t *dname) { if (!key) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } uint8_t *copy = NULL; @@ -207,7 +207,7 @@ _public_ int dnssec_key_set_flags(dnssec_key_t *key, uint16_t flags) { if (!key) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } wire_ctx_t wire = binary_init(&key->rdata); @@ -233,7 +233,7 @@ _public_ int dnssec_key_set_protocol(dnssec_key_t *key, uint8_t protocol) { if (!key) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } wire_ctx_t wire = binary_init(&key->rdata); @@ -294,7 +294,7 @@ _public_ int dnssec_key_set_algorithm(dnssec_key_t *key, uint8_t algorithm) { if (!key) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } if (!can_change_algorithm(key, algorithm)) { @@ -312,7 +312,7 @@ _public_ int dnssec_key_get_pubkey(const dnssec_key_t *key, dnssec_binary_t *pubkey) { if (!key || !pubkey) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } wire_ctx_t wire = binary_init(&key->rdata); @@ -326,7 +326,7 @@ _public_ int dnssec_key_set_pubkey(dnssec_key_t *key, const dnssec_binary_t *pubkey) { if (!key || !pubkey || !pubkey->data) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } if (key->public_key) { @@ -384,7 +384,7 @@ _public_ int dnssec_key_get_keyid(const dnssec_key_t *key, char **id) { if (!key || !id) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } return keyid_pubkey_hex(key->public_key, id); @@ -394,7 +394,7 @@ _public_ int dnssec_key_get_rdata(const dnssec_key_t *key, dnssec_binary_t *rdata) { if (!key || !rdata) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } *rdata = key->rdata; @@ -406,7 +406,7 @@ _public_ int dnssec_key_set_rdata(dnssec_key_t *key, const dnssec_binary_t *rdata) { if (!key || !rdata || !rdata->data) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } if (rdata->size < DNSKEY_RDATA_MIN_SIZE) { diff --git a/src/libknot/dnssec/key/keytag.c b/src/libknot/dnssec/key/keytag.c index f1df0dd4d7..653d30f48e 100644 --- a/src/libknot/dnssec/key/keytag.c +++ b/src/libknot/dnssec/key/keytag.c @@ -59,7 +59,7 @@ _public_ int dnssec_keytag(const dnssec_binary_t *rdata, uint16_t *keytag) { if (!rdata || !keytag) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } if (!rdata->data || rdata->size < DNSKEY_RDATA_OFFSET_PUBKEY) { diff --git a/src/libknot/dnssec/key/simple.c b/src/libknot/dnssec/key/simple.c index ae07a59800..f8efaa4a6a 100644 --- a/src/libknot/dnssec/key/simple.c +++ b/src/libknot/dnssec/key/simple.c @@ -21,7 +21,7 @@ _public_ int dnssec_key_load_pkcs8(dnssec_key_t *key, const dnssec_binary_t *pem) { if (!key || !pem || !pem->data) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } if (dnssec_key_get_algorithm(key) == 0) { diff --git a/src/libknot/dnssec/keystore/keystore.c b/src/libknot/dnssec/keystore/keystore.c index e19747d063..0b0b865240 100644 --- a/src/libknot/dnssec/keystore/keystore.c +++ b/src/libknot/dnssec/keystore/keystore.c @@ -48,7 +48,7 @@ _public_ int dnssec_keystore_deinit(dnssec_keystore_t *store) { if (!store) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } dnssec_keystore_close(store); @@ -63,7 +63,7 @@ _public_ int dnssec_keystore_init(dnssec_keystore_t *store, const char *config) { if (!store) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } return store->functions->init(store->ctx, config); @@ -73,7 +73,7 @@ _public_ int dnssec_keystore_open(dnssec_keystore_t *store, const char *config) { if (!store) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } return store->functions->open(store->ctx, config); @@ -83,7 +83,7 @@ _public_ int dnssec_keystore_close(dnssec_keystore_t *store) { if (!store) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } return store->functions->close(store->ctx); @@ -95,7 +95,7 @@ int dnssec_keystore_generate(dnssec_keystore_t *store, unsigned bits, const char *label, char **id_ptr) { if (!store || !_algorithm || !id_ptr) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } // prepare parameters @@ -117,7 +117,7 @@ int dnssec_keystore_import(dnssec_keystore_t *store, const dnssec_binary_t *pem, char **id_ptr) { if (!store || !pem || !id_ptr) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } return store->functions->import_key(store->ctx, pem, id_ptr); @@ -127,7 +127,7 @@ _public_ int dnssec_keystore_remove(dnssec_keystore_t *store, const char *id) { if (!store || !id) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } return store->functions->remove_key(store->ctx, id); @@ -138,7 +138,7 @@ int dnssec_keystore_get_private(dnssec_keystore_t *store, const char *id, dnssec_key_t *key) { if (!store || !id || dnssec_key_get_algorithm(key) == 0 || !key) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } if (key->private_key) { @@ -164,7 +164,7 @@ _public_ int dnssec_keystore_set_private(dnssec_keystore_t *store, dnssec_key_t *key) { if (!store || !key) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } if (!key->private_key) { diff --git a/src/libknot/dnssec/keystore/pkcs8.c b/src/libknot/dnssec/keystore/pkcs8.c index bb7149c263..6b647a2779 100644 --- a/src/libknot/dnssec/keystore/pkcs8.c +++ b/src/libknot/dnssec/keystore/pkcs8.c @@ -104,7 +104,7 @@ static int key_open_write(const char *dir_name, const char *id, int *fd_ptr) static int pkcs8_dir_read(pkcs8_dir_handle_t *handle, const char *id, dnssec_binary_t *pem) { if (!handle || !id || !pem) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } // open file and get it's size @@ -212,7 +212,7 @@ static int pem_generate(gnutls_pk_algorithm_t algorithm, unsigned bits, static int pkcs8_ctx_new(void **ctx_ptr) { if (!ctx_ptr) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } pkcs8_dir_handle_t *ctx = calloc(1, sizeof(*ctx)); @@ -233,7 +233,7 @@ static void pkcs8_ctx_free(void *ctx) static int pkcs8_init(void *ctx, const char *config) { if (!ctx || !config) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } return make_dir(config, DIR_INIT_MODE, true); @@ -242,7 +242,7 @@ static int pkcs8_init(void *ctx, const char *config) static int pkcs8_open(void *ctx, const char *config) { if (!ctx || !config) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } pkcs8_dir_handle_t *handle = ctx; @@ -260,7 +260,7 @@ static int pkcs8_open(void *ctx, const char *config) static int pkcs8_close(void *ctx) { if (!ctx) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } pkcs8_dir_handle_t *handle = ctx; @@ -275,7 +275,7 @@ static int pkcs8_generate_key(void *ctx, gnutls_pk_algorithm_t algorithm, unsigned bits, const char *label, char **id_ptr) { if (!ctx || !id_ptr) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } (void)label; @@ -321,7 +321,7 @@ static int pkcs8_generate_key(void *ctx, gnutls_pk_algorithm_t algorithm, static int pkcs8_import_key(void *ctx, const dnssec_binary_t *pem, char **id_ptr) { if (!ctx || !pem || !id_ptr) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } pkcs8_dir_handle_t *handle = ctx; @@ -373,7 +373,7 @@ static int pkcs8_import_key(void *ctx, const dnssec_binary_t *pem, char **id_ptr static int pkcs8_remove_key(void *ctx, const char *id) { if (!ctx || !id) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } pkcs8_dir_handle_t *handle = ctx; @@ -393,7 +393,7 @@ static int pkcs8_remove_key(void *ctx, const char *id) static int pkcs8_get_private(void *ctx, const char *id, gnutls_privkey_t *key_ptr) { if (!ctx || !id || !key_ptr) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } pkcs8_dir_handle_t *handle = ctx; @@ -450,7 +450,7 @@ static int pkcs8_get_private(void *ctx, const char *id, gnutls_privkey_t *key_pt static int pkcs8_set_private(void *ctx, gnutls_privkey_t key) { if (!ctx) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } _cleanup_binary_ dnssec_binary_t pem = { 0 }; diff --git a/src/libknot/dnssec/nsec/hash.c b/src/libknot/dnssec/nsec/hash.c index b05ab59380..087ff3422d 100644 --- a/src/libknot/dnssec/nsec/hash.c +++ b/src/libknot/dnssec/nsec/hash.c @@ -88,7 +88,7 @@ int dnssec_nsec3_hash(const dnssec_binary_t *data, dnssec_binary_t *hash) { if (!data || !params || !hash) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } gnutls_digest_algorithm_t algorithm = algorithm_d2g(params->algorithm); diff --git a/src/libknot/dnssec/nsec/nsec.c b/src/libknot/dnssec/nsec/nsec.c index b104b42e54..1cb563905b 100644 --- a/src/libknot/dnssec/nsec/nsec.c +++ b/src/libknot/dnssec/nsec/nsec.c @@ -34,7 +34,7 @@ int dnssec_nsec3_params_from_rdata(dnssec_nsec3_params_t *params, const dnssec_binary_t *rdata) { if (!params || !rdata || !rdata->data) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } dnssec_nsec3_params_t new_params = { 0 }; diff --git a/src/libknot/dnssec/pem.c b/src/libknot/dnssec/pem.c index 3aa565dfe8..9a1b94f81c 100644 --- a/src/libknot/dnssec/pem.c +++ b/src/libknot/dnssec/pem.c @@ -18,7 +18,7 @@ _public_ int dnssec_pem_to_x509(const dnssec_binary_t *pem, gnutls_x509_privkey_t *key) { if (!pem || !key) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } gnutls_datum_t data = binary_to_datum(pem); @@ -47,7 +47,7 @@ _public_ int dnssec_pem_to_privkey(const dnssec_binary_t *pem, gnutls_privkey_t *key) { if (!pem || !key) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } gnutls_x509_privkey_t key_x509 = NULL; @@ -92,7 +92,7 @@ _public_ int dnssec_pem_from_x509(gnutls_x509_privkey_t key, dnssec_binary_t *pem) { if (!key || !pem) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } dnssec_binary_t _pem = { 0 }; @@ -130,7 +130,7 @@ _public_ int dnssec_pem_from_privkey(gnutls_privkey_t key, dnssec_binary_t *pem) { if (!key || !pem) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } _cleanup_x509_privkey_ gnutls_x509_privkey_t _key = NULL; diff --git a/src/libknot/dnssec/random.c b/src/libknot/dnssec/random.c index 4c50c194d4..e25acd5743 100644 --- a/src/libknot/dnssec/random.c +++ b/src/libknot/dnssec/random.c @@ -19,7 +19,7 @@ _public_ int dnssec_random_buffer(uint8_t *data, size_t size) { if (!data) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } int result = gnutls_rnd(GNUTLS_RND_RANDOM, data, size); @@ -35,7 +35,7 @@ _public_ int dnssec_random_binary(dnssec_binary_t *binary) { if (!binary) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } return dnssec_random_buffer(binary->data, binary->size); diff --git a/src/libknot/dnssec/sign/der.c b/src/libknot/dnssec/sign/der.c index 54c1ee0950..5f71f9aaeb 100644 --- a/src/libknot/dnssec/sign/der.c +++ b/src/libknot/dnssec/sign/der.c @@ -126,7 +126,7 @@ int dss_sig_value_decode(const dnssec_binary_t *der, dnssec_binary_t *r, dnssec_binary_t *s) { if (!der || !der->data || !r || !s) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } wire_ctx_t wire = binary_init(der); @@ -180,7 +180,7 @@ int dss_sig_value_encode(const dnssec_binary_t *r, const dnssec_binary_t *s, dnssec_binary_t *der) { if (!r || !r->data || !s || !s->data || !der) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } size_t r_size = bignum_size_s(r); diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index b016fb923f..a00f0c0df8 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -229,7 +229,7 @@ _public_ int dnssec_sign_new(dnssec_sign_ctx_t **ctx_ptr, const dnssec_key_t *key) { if (!ctx_ptr) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } dnssec_sign_ctx_t *ctx = calloc(1, sizeof(*ctx)); @@ -271,7 +271,7 @@ _public_ int dnssec_sign_init(dnssec_sign_ctx_t *ctx) { if (!ctx) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } if (vpool_get_buf(&ctx->buffer) != NULL) { @@ -287,7 +287,7 @@ _public_ int dnssec_sign_add(dnssec_sign_ctx_t *ctx, const dnssec_binary_t *data) { if (!ctx || !data || !data->data) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } void *result = vpool_insert(&ctx->buffer, vpool_get_length(&ctx->buffer), data->data, data->size); @@ -302,7 +302,7 @@ _public_ int dnssec_sign_write(dnssec_sign_ctx_t *ctx, dnssec_sign_flags_t flags, dnssec_binary_t *signature) { if (!ctx || !signature) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } if (!dnssec_key_can_sign(ctx->key)) { @@ -337,7 +337,7 @@ _public_ int dnssec_sign_verify(dnssec_sign_ctx_t *ctx, bool sign_cmp, const dnssec_binary_t *signature) { if (!ctx || !signature) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } if (sign_cmp && dnssec_key_can_sign(ctx->key)) { diff --git a/src/libknot/dnssec/tsig.c b/src/libknot/dnssec/tsig.c index 32fe15639e..115a1251d5 100644 --- a/src/libknot/dnssec/tsig.c +++ b/src/libknot/dnssec/tsig.c @@ -150,7 +150,7 @@ int dnssec_tsig_new(dnssec_tsig_ctx_t **ctx_ptr, const dnssec_binary_t *key) { if (!ctx_ptr || !key) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } dnssec_tsig_ctx_t *ctx = calloc(1, sizeof(*ctx)); @@ -190,7 +190,7 @@ _public_ int dnssec_tsig_add(dnssec_tsig_ctx_t *ctx, const dnssec_binary_t *data) { if (!ctx || !data) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } int result = gnutls_hmac(ctx->hash, data->data, data->size); @@ -222,7 +222,7 @@ _public_ int dnssec_tsig_write(dnssec_tsig_ctx_t *ctx, uint8_t *mac) { if (!ctx || !mac) { - return DNSSEC_EINVAL; + return KNOT_EINVAL; } gnutls_hmac_output(ctx->hash, mac); diff --git a/src/utils/knsec3hash/knsec3hash.c b/src/utils/knsec3hash/knsec3hash.c index 8704286b52..ed9aeb2f15 100644 --- a/src/utils/knsec3hash/knsec3hash.c +++ b/src/utils/knsec3hash/knsec3hash.c @@ -41,7 +41,7 @@ static int str_to_salt(const char *str, dnssec_binary_t *salt) return KNOT_EOK; } else { salt->data = hex_to_bin(str, &salt->size); - return (salt->data != NULL ? KNOT_EOK : DNSSEC_EINVAL); + return (salt->data != NULL ? KNOT_EOK : KNOT_EINVAL); } } diff --git a/tests/libknot/test_dnssec_key_algorithm.c b/tests/libknot/test_dnssec_key_algorithm.c index 6891b790ac..855b9d0873 100644 --- a/tests/libknot/test_dnssec_key_algorithm.c +++ b/tests/libknot/test_dnssec_key_algorithm.c @@ -25,7 +25,7 @@ static void null_range(void) int r; r = dnssec_algorithm_key_size_range(algo, NULL, NULL); - ok(r == DNSSEC_EINVAL, "dnssec_algorithm_key_size_range() all null"); + ok(r == KNOT_EINVAL, "dnssec_algorithm_key_size_range() all null"); r = dnssec_algorithm_key_size_range(algo, &val, NULL); ok(r == KNOT_EOK && val == 1024, "dnssec_algorithm_key_size_range() min only"); r = dnssec_algorithm_key_size_range(algo, NULL, &val); diff --git a/tests/libknot/test_dnssec_key_ds.c b/tests/libknot/test_dnssec_key_ds.c index cca5f9a7b9..dc4a55fd70 100644 --- a/tests/libknot/test_dnssec_key_ds.c +++ b/tests/libknot/test_dnssec_key_ds.c @@ -57,7 +57,7 @@ static void test_errors(const struct key_parameters *params) dnssec_binary_t ds = { 0 }; int r = dnssec_key_create_ds(key, DNSSEC_KEY_DIGEST_SHA1, &ds); - is_int(DNSSEC_EINVAL, r, "dnssec_key_create_ds() no key"); + is_int(KNOT_EINVAL, r, "dnssec_key_create_ds() no key"); dnssec_binary_free(&ds); dnssec_key_new(&key); @@ -70,7 +70,7 @@ static void test_errors(const struct key_parameters *params) dnssec_key_set_rdata(key, ¶ms->rdata); r = dnssec_key_create_ds(key, DNSSEC_KEY_DIGEST_SHA1, NULL); - is_int(DNSSEC_EINVAL, r, "dnssec_key_create_ds() no RDATA buffer"); + is_int(KNOT_EINVAL, r, "dnssec_key_create_ds() no RDATA buffer"); r = dnssec_key_create_ds(key, 3, &ds); is_int(DNSSEC_INVALID_DS_ALGORITHM, r, "dnssec_key_create_ds() unsupported algorithm"); From 768b3c0fdb47796fe8819faf1f028995ca5745ae Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 09:54:03 +0200 Subject: [PATCH 174/675] Replace DNSSEC_ENOENT with KNOT_ENOENT --- src/knot/dnssec/zone-keys.c | 8 ++++---- src/knot/zone/backup.c | 2 +- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/keystore/pkcs11.c | 2 +- tests/libknot/test_dnssec_keystore_pkcs8.c | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 234a8ac9c2..a043af7162 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -259,8 +259,8 @@ int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr) } if (!key_still_used_in_keystore && !key_ptr->is_pub_only) { - ret = DNSSEC_ENOENT; - for (size_t i = 0; i < ctx->keystores[0].count && ret == DNSSEC_ENOENT; i++) { + ret = KNOT_ENOENT; + for (size_t i = 0; i < ctx->keystores[0].count && ret == KNOT_ENOENT; i++) { ret = dnssec_keystore_remove(ctx->keystores[i].keystore, key_ptr->id); } if (ret != KNOT_EOK) { @@ -481,8 +481,8 @@ static int walk_algorithms(kdnssec_ctx_t *ctx, zone_keyset_t *keyset) int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, dnssec_key_t *key, const char **name, unsigned *backend) { - int ret = DNSSEC_ENOENT; - for (size_t i = 0; i < keystores[0].count && (ret == DNSSEC_ENOENT || ret == DNSSEC_NOT_FOUND); i++) { + int ret = KNOT_ENOENT; + for (size_t i = 0; i < keystores[0].count && (ret == KNOT_ENOENT || ret == DNSSEC_NOT_FOUND); i++) { ret = dnssec_keystore_get_private(keystores[i].keystore, id, key); if (ret == KNOT_EOK) { if (name != NULL) { diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index b27e850067..8d1ddaf8f3 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -239,7 +239,7 @@ static int backup_key(key_params_t *parm, const knot_dname_t *zname, bool restor restore ? "restore" : "backup", parm->id); ret = KNOT_EOK; } - } else if (ret == DNSSEC_ENOENT) { + } else if (ret == KNOT_ENOENT) { log_zone_notice(zname, "private key id %s not available, ignoring", parm->id); ret = KNOT_EOK; } diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 5e74845ea0..b26899482b 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -18,7 +18,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_ENOMEM, "not enough memory" }, { KNOT_EINVAL, "invalid argument" }, - { DNSSEC_ENOENT, "no such file or directory" }, + { KNOT_ENOENT, "no such file or directory" }, { DNSSEC_ERROR, "unspecified error" }, { DNSSEC_NOT_IMPLEMENTED_ERROR, "not implemented" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 88f47848bf..e6c15fac02 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -28,7 +28,7 @@ enum dnssec_error { KNOT_ENOMEM = -ENOMEM, KNOT_EINVAL = -EINVAL, - DNSSEC_ENOENT = -ENOENT, + KNOT_ENOENT = -ENOENT, DNSSEC_ERROR_MIN = -1500, diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index 9a40a11f37..d42c9d47a0 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -308,7 +308,7 @@ static int pkcs11_remove_key(void *_ctx, const char *id) if (r < 0) { return DNSSEC_ERROR; } else if (r == 0) { - return DNSSEC_ENOENT; + return KNOT_ENOENT; } return KNOT_EOK; diff --git a/tests/libknot/test_dnssec_keystore_pkcs8.c b/tests/libknot/test_dnssec_keystore_pkcs8.c index 561bd42b12..0613a2d758 100644 --- a/tests/libknot/test_dnssec_keystore_pkcs8.c +++ b/tests/libknot/test_dnssec_keystore_pkcs8.c @@ -66,7 +66,7 @@ int main(void) dnssec_key_new(&key); dnssec_key_set_algorithm(key, DNSSEC_KEY_ALGORITHM_RSA_SHA256); r = dnssec_keystore_get_private(store, id_A, key); - ok(r == DNSSEC_ENOENT, "read removed"); + ok(r == KNOT_ENOENT, "read removed"); dnssec_key_free(key); // cleanup From 642328ead7b6ca4bff4cc360cf2152e6a0f40abc Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 09:56:23 +0200 Subject: [PATCH 175/675] Replace DNSSEC_NOT_IMPLEMENTED_ERROR with KNOT_ENOTSUP --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/keystore/pkcs11.c | 2 +- src/libknot/dnssec/p11/p11.c | 2 +- src/libknot/dnssec/sign/der.c | 6 +++--- tests/libknot/test_dnssec_keystore_pkcs11.c | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index b26899482b..01be512de9 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -21,7 +21,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_ENOENT, "no such file or directory" }, { DNSSEC_ERROR, "unspecified error" }, - { DNSSEC_NOT_IMPLEMENTED_ERROR, "not implemented" }, + { KNOT_ENOTSUP, "not implemented" }, { DNSSEC_MALFORMED_DATA, "malformed data" }, { DNSSEC_NOT_FOUND, "not found" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index e6c15fac02..0380125136 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -33,7 +33,7 @@ enum dnssec_error { DNSSEC_ERROR_MIN = -1500, DNSSEC_ERROR = DNSSEC_ERROR_MIN, - DNSSEC_NOT_IMPLEMENTED_ERROR, + KNOT_ENOTSUP, DNSSEC_MALFORMED_DATA, DNSSEC_NOT_FOUND, diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index d42c9d47a0..261f029bcb 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -380,7 +380,7 @@ int dnssec_keystore_init_pkcs11(dnssec_keystore_t **store_ptr) _public_ int dnssec_keystore_init_pkcs11(dnssec_keystore_t **store_ptr) { - return DNSSEC_NOT_IMPLEMENTED_ERROR; + return KNOT_ENOTSUP; } #endif diff --git a/src/libknot/dnssec/p11/p11.c b/src/libknot/dnssec/p11/p11.c index 1de8c35e17..6b24d01f62 100644 --- a/src/libknot/dnssec/p11/p11.c +++ b/src/libknot/dnssec/p11/p11.c @@ -91,7 +91,7 @@ int p11_reinit(void) int p11_load_module(const char *module) { - return DNSSEC_NOT_IMPLEMENTED_ERROR; + return KNOT_ENOTSUP; } void p11_cleanup(void) diff --git a/src/libknot/dnssec/sign/der.c b/src/libknot/dnssec/sign/der.c index 5f71f9aaeb..9ab0c6118d 100644 --- a/src/libknot/dnssec/sign/der.c +++ b/src/libknot/dnssec/sign/der.c @@ -49,7 +49,7 @@ static int asn1_decode_size(wire_ctx_t *wire, size_t *size) uint8_t byte = wire_ctx_read_u8(wire); if (byte & 0x80) { // long form, we do not need it for DNSSEC - return DNSSEC_NOT_IMPLEMENTED_ERROR; + return KNOT_ENOTSUP; } *size = byte; @@ -189,12 +189,12 @@ int dss_sig_value_encode(const dnssec_binary_t *r, const dnssec_binary_t *s, // check supported inputs range if (r_size > ASN1_MAX_SIZE || s_size > ASN1_MAX_SIZE) { - return DNSSEC_NOT_IMPLEMENTED_ERROR; + return KNOT_ENOTSUP; } size_t seq_size = 2 + r_size + 2 + s_size; if (seq_size > ASN1_MAX_SIZE) { - return DNSSEC_NOT_IMPLEMENTED_ERROR; + return KNOT_ENOTSUP; } // encode result diff --git a/tests/libknot/test_dnssec_keystore_pkcs11.c b/tests/libknot/test_dnssec_keystore_pkcs11.c index d132742403..aecc338d89 100644 --- a/tests/libknot/test_dnssec_keystore_pkcs11.c +++ b/tests/libknot/test_dnssec_keystore_pkcs11.c @@ -350,7 +350,7 @@ int main(int argc, char *argv[]) dnssec_keystore_t *store = NULL; int r = dnssec_keystore_init_pkcs11(&store); - if (r == DNSSEC_NOT_IMPLEMENTED_ERROR) { + if (r == KNOT_ENOTSUP) { skip_all("not supported"); goto done; } From e12a370682ec825cbd3e930005de546120d6b2fc Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 09:57:43 +0200 Subject: [PATCH 176/675] Replace DNSSEC_MALFORMED_DATA with KNOT_EMALF --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/key/key.c | 2 +- src/libknot/dnssec/key/keytag.c | 2 +- src/libknot/dnssec/keystore/pkcs8.c | 4 ++-- src/libknot/dnssec/nsec/nsec.c | 4 ++-- src/libknot/dnssec/sign/der.c | 12 ++++++------ src/libknot/dnssec/sign/sign.c | 2 +- src/libknot/error.c | 2 +- src/utils/keymgr/bind_privkey.c | 6 +++--- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 01be512de9..44ae7018b7 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -22,7 +22,7 @@ static const error_message_t ERROR_MESSAGES[] = { { DNSSEC_ERROR, "unspecified error" }, { KNOT_ENOTSUP, "not implemented" }, - { DNSSEC_MALFORMED_DATA, "malformed data" }, + { KNOT_EMALF, "malformed data" }, { DNSSEC_NOT_FOUND, "not found" }, { DNSSEC_PKCS8_IMPORT_ERROR, "PKCS #8 import error" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 0380125136..cb11eae3ea 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -34,7 +34,7 @@ enum dnssec_error { DNSSEC_ERROR = DNSSEC_ERROR_MIN, KNOT_ENOTSUP, - DNSSEC_MALFORMED_DATA, + KNOT_EMALF, DNSSEC_NOT_FOUND, DNSSEC_PKCS8_IMPORT_ERROR, diff --git a/src/libknot/dnssec/key/key.c b/src/libknot/dnssec/key/key.c index 633cdd0c87..81952dd003 100644 --- a/src/libknot/dnssec/key/key.c +++ b/src/libknot/dnssec/key/key.c @@ -410,7 +410,7 @@ int dnssec_key_set_rdata(dnssec_key_t *key, const dnssec_binary_t *rdata) } if (rdata->size < DNSKEY_RDATA_MIN_SIZE) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } if (key->public_key) { diff --git a/src/libknot/dnssec/key/keytag.c b/src/libknot/dnssec/key/keytag.c index 653d30f48e..54623c8518 100644 --- a/src/libknot/dnssec/key/keytag.c +++ b/src/libknot/dnssec/key/keytag.c @@ -63,7 +63,7 @@ int dnssec_keytag(const dnssec_binary_t *rdata, uint16_t *keytag) } if (!rdata->data || rdata->size < DNSKEY_RDATA_OFFSET_PUBKEY) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } uint8_t algorithm = rdata->data[DNSKEY_RDATA_OFFSET_ALGORITHM]; diff --git a/src/libknot/dnssec/keystore/pkcs8.c b/src/libknot/dnssec/keystore/pkcs8.c index 6b647a2779..51aabe7098 100644 --- a/src/libknot/dnssec/keystore/pkcs8.c +++ b/src/libknot/dnssec/keystore/pkcs8.c @@ -122,7 +122,7 @@ static int pkcs8_dir_read(pkcs8_dir_handle_t *handle, const char *id, dnssec_bin } if (size == 0) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } // read the stored data @@ -413,7 +413,7 @@ static int pkcs8_get_private(void *ctx, const char *id, gnutls_privkey_t *key_pt } if (size == 0) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } // read the stored data diff --git a/src/libknot/dnssec/nsec/nsec.c b/src/libknot/dnssec/nsec/nsec.c index 1cb563905b..14aee5659a 100644 --- a/src/libknot/dnssec/nsec/nsec.c +++ b/src/libknot/dnssec/nsec/nsec.c @@ -42,7 +42,7 @@ int dnssec_nsec3_params_from_rdata(dnssec_nsec3_params_t *params, wire_ctx_t wire = binary_init(rdata); if (wire_ctx_available(&wire) < 5) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } new_params.algorithm = wire_ctx_read_u8(&wire); @@ -51,7 +51,7 @@ int dnssec_nsec3_params_from_rdata(dnssec_nsec3_params_t *params, new_params.salt.size = wire_ctx_read_u8(&wire); if (wire_ctx_available(&wire) != new_params.salt.size) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } new_params.salt.data = malloc(new_params.salt.size); diff --git a/src/libknot/dnssec/sign/der.c b/src/libknot/dnssec/sign/der.c index 9ab0c6118d..b94842d1db 100644 --- a/src/libknot/dnssec/sign/der.c +++ b/src/libknot/dnssec/sign/der.c @@ -43,7 +43,7 @@ static int asn1_decode_size(wire_ctx_t *wire, size_t *size) assert(size); if (wire_ctx_available(wire) < 1) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } uint8_t byte = wire_ctx_read_u8(wire); @@ -66,7 +66,7 @@ static int asn1_decode_integer(wire_ctx_t *wire, dnssec_binary_t *_value) assert(_value); if (!asn1_expect_type(wire, ASN1_TYPE_INTEGER)) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } size_t size; @@ -76,7 +76,7 @@ static int asn1_decode_integer(wire_ctx_t *wire, dnssec_binary_t *_value) } if (size == 0 || size > wire_ctx_available(wire)) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } dnssec_binary_t value = { .data = wire->position, .size = size }; @@ -137,7 +137,7 @@ int dss_sig_value_decode(const dnssec_binary_t *der, // decode the sequence if (!asn1_expect_type(&wire, ASN1_TYPE_SEQUENCE)) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } result = asn1_decode_size(&wire, &size); @@ -146,7 +146,7 @@ int dss_sig_value_decode(const dnssec_binary_t *der, } if (size != wire_ctx_available(&wire)) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } // decode the 'r' and 's' values @@ -164,7 +164,7 @@ int dss_sig_value_decode(const dnssec_binary_t *der, } if (wire_ctx_available(&wire) != 0) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } *r = der_r; diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index a00f0c0df8..1847008771 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -121,7 +121,7 @@ static int ecdsa_x509_to_dnssec(dnssec_sign_ctx_t *ctx, size_t s_size = bignum_size_u(&value_s); if (r_size > int_size || s_size > int_size) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } result = dnssec_binary_alloc(dnssec, 2 * int_size); diff --git a/src/libknot/error.c b/src/libknot/error.c index 9b29578563..9193ec8795 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -199,7 +199,7 @@ int knot_error_from_libdnssec(int libdnssec_errcode) switch (libdnssec_errcode) { case DNSSEC_ERROR: return KNOT_ERROR; - case DNSSEC_MALFORMED_DATA: + case KNOT_EMALF: return KNOT_EMALF; case DNSSEC_NOT_FOUND: return KNOT_ENOENT; diff --git a/src/utils/keymgr/bind_privkey.c b/src/utils/keymgr/bind_privkey.c index d82f524eca..d9ba531ee1 100644 --- a/src/utils/keymgr/bind_privkey.c +++ b/src/utils/keymgr/bind_privkey.c @@ -112,7 +112,7 @@ static int parse_time(char *string, void *_time) char *end = strptime(string, LEGACY_DATE_FORMAT, &tm); if (end == NULL || *end != '\0') { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } time_t *time = _time; @@ -158,7 +158,7 @@ static int parse_line(bind_privkey_t *params, char *line, size_t length) char *separator = memchr(line, ':', length); if (!separator) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } char *key = line; @@ -170,7 +170,7 @@ static int parse_line(bind_privkey_t *params, char *line, size_t length) strip(&value, &value_length); if (key_length == 0 || value_length == 0) { - return DNSSEC_MALFORMED_DATA; + return KNOT_EMALF; } key[key_length] = '\0'; From 53cf72585e03879f160135438ee0cb6d5bf7708c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 09:59:41 +0200 Subject: [PATCH 177/675] Replace DNSSEC_NOT_FOUND with KNOT_ENOENT --- src/knot/dnssec/zone-keys.c | 2 +- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/keystore/pkcs11.c | 2 +- src/libknot/dnssec/keystore/pkcs8.c | 2 +- src/libknot/error.c | 2 +- src/utils/keymgr/bind_privkey.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index a043af7162..60126dfbac 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -482,7 +482,7 @@ int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, dnssec_key_t *key, const char **name, unsigned *backend) { int ret = KNOT_ENOENT; - for (size_t i = 0; i < keystores[0].count && (ret == KNOT_ENOENT || ret == DNSSEC_NOT_FOUND); i++) { + for (size_t i = 0; i < keystores[0].count && (ret == KNOT_ENOENT); i++) { ret = dnssec_keystore_get_private(keystores[i].keystore, id, key); if (ret == KNOT_EOK) { if (name != NULL) { diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 44ae7018b7..7faa37863f 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -23,7 +23,7 @@ static const error_message_t ERROR_MESSAGES[] = { { DNSSEC_ERROR, "unspecified error" }, { KNOT_ENOTSUP, "not implemented" }, { KNOT_EMALF, "malformed data" }, - { DNSSEC_NOT_FOUND, "not found" }, + { KNOT_ENOENT, "not found" }, { DNSSEC_PKCS8_IMPORT_ERROR, "PKCS #8 import error" }, { DNSSEC_KEY_EXPORT_ERROR, "key export error" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index cb11eae3ea..996753547c 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -35,7 +35,7 @@ enum dnssec_error { DNSSEC_ERROR = DNSSEC_ERROR_MIN, KNOT_ENOTSUP, KNOT_EMALF, - DNSSEC_NOT_FOUND, + KNOT_ENOENT, DNSSEC_PKCS8_IMPORT_ERROR, DNSSEC_KEY_EXPORT_ERROR, diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index 261f029bcb..4be9068883 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -333,7 +333,7 @@ static int pkcs11_get_private(void *_ctx, const char *id, gnutls_privkey_t *key_ r = gnutls_privkey_import_pkcs11_url(key, url); if (r != GNUTLS_E_SUCCESS) { gnutls_privkey_deinit(key); - return DNSSEC_NOT_FOUND; + return KNOT_ENOENT; } *key_ptr = key; diff --git a/src/libknot/dnssec/keystore/pkcs8.c b/src/libknot/dnssec/keystore/pkcs8.c index 51aabe7098..c13eda230b 100644 --- a/src/libknot/dnssec/keystore/pkcs8.c +++ b/src/libknot/dnssec/keystore/pkcs8.c @@ -249,7 +249,7 @@ static int pkcs8_open(void *ctx, const char *config) char *path = realpath(config, NULL); if (!path) { - return DNSSEC_NOT_FOUND; + return KNOT_ENOENT; } handle->dir_name = path; diff --git a/src/libknot/error.c b/src/libknot/error.c index 9193ec8795..720b85f658 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -201,7 +201,7 @@ int knot_error_from_libdnssec(int libdnssec_errcode) return KNOT_ERROR; case KNOT_EMALF: return KNOT_EMALF; - case DNSSEC_NOT_FOUND: + case KNOT_ENOENT: return KNOT_ENOENT; case DNSSEC_NO_PUBLIC_KEY: case DNSSEC_NO_PRIVATE_KEY: diff --git a/src/utils/keymgr/bind_privkey.c b/src/utils/keymgr/bind_privkey.c index d9ba531ee1..c58b8f77b4 100644 --- a/src/utils/keymgr/bind_privkey.c +++ b/src/utils/keymgr/bind_privkey.c @@ -198,7 +198,7 @@ int bind_privkey_parse(const char *filename, bind_privkey_t *params_ptr) { _cleanup_fclose_ FILE *file = fopen(filename, "r"); if (!file) { - return DNSSEC_NOT_FOUND; + return KNOT_ENOENT; } bind_privkey_t params = *params_ptr; From 292d907bc072fc7fbd1c29def0ad3d45afc33be7 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 10:11:14 +0200 Subject: [PATCH 178/675] Replace DNSSEC_PKCS8_IMPORT_ERROR and DNSSEC_KEY_IMPORT_ERROR with KNOT_KEY_EIMPORT --- src/libknot/dnssec/error.c | 4 ++-- src/libknot/dnssec/error.h | 4 ++-- src/libknot/dnssec/key/convert.c | 6 +++--- src/libknot/dnssec/key/privkey.c | 2 +- src/libknot/dnssec/keystore/pkcs11.c | 6 +++--- src/libknot/dnssec/pem.c | 2 +- src/libknot/errcode.h | 3 +++ src/libknot/error.c | 3 +++ src/utils/keymgr/bind_privkey.c | 6 +++--- 9 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 7faa37863f..58e33b03e5 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -25,9 +25,9 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_EMALF, "malformed data" }, { KNOT_ENOENT, "not found" }, - { DNSSEC_PKCS8_IMPORT_ERROR, "PKCS #8 import error" }, + { KNOT_KEY_EIMPORT, "PKCS #8 import error" }, { DNSSEC_KEY_EXPORT_ERROR, "key export error" }, - { DNSSEC_KEY_IMPORT_ERROR, "key import error" }, + { KNOT_KEY_EIMPORT, "key import error" }, { DNSSEC_KEY_GENERATE_ERROR, "key generation error" }, { DNSSEC_INVALID_PUBLIC_KEY, "invalid public key" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 996753547c..af64eedfe5 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -37,9 +37,9 @@ enum dnssec_error { KNOT_EMALF, KNOT_ENOENT, - DNSSEC_PKCS8_IMPORT_ERROR, + KNOT_KEY_EIMPORT, DNSSEC_KEY_EXPORT_ERROR, - DNSSEC_KEY_IMPORT_ERROR, + KNOT_KEY_EIMPORT, DNSSEC_KEY_GENERATE_ERROR, DNSSEC_INVALID_PUBLIC_KEY, diff --git a/src/libknot/dnssec/key/convert.c b/src/libknot/dnssec/key/convert.c index 7978c3c3c0..c728a0dae5 100644 --- a/src/libknot/dnssec/key/convert.c +++ b/src/libknot/dnssec/key/convert.c @@ -210,7 +210,7 @@ static int rsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t key int result = gnutls_pubkey_import_rsa_raw(key, &modulus, &exponent); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_KEY_IMPORT_ERROR; + return KNOT_KEY_EIMPORT; } return KNOT_EOK; @@ -266,7 +266,7 @@ static int ecdsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t k int result = gnutls_pubkey_import_ecc_raw(key, curve, &point_x, &point_y); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_KEY_IMPORT_ERROR; + return KNOT_KEY_EIMPORT; } return KNOT_EOK; @@ -293,7 +293,7 @@ static int eddsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t k int result = gnutls_pubkey_import_ecc_raw(key, curve, &point_x, NULL); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_KEY_IMPORT_ERROR; + return KNOT_KEY_EIMPORT; } return KNOT_EOK; diff --git a/src/libknot/dnssec/key/privkey.c b/src/libknot/dnssec/key/privkey.c index a1e10553b3..25a1c68d5b 100644 --- a/src/libknot/dnssec/key/privkey.c +++ b/src/libknot/dnssec/key/privkey.c @@ -46,7 +46,7 @@ static int public_from_private(gnutls_privkey_t privkey, gnutls_pubkey_t *pubkey result = gnutls_pubkey_import_privkey(new_key, privkey, 0, 0); if (result != GNUTLS_E_SUCCESS) { gnutls_pubkey_deinit(new_key); - return DNSSEC_KEY_IMPORT_ERROR; + return KNOT_KEY_EIMPORT; } *pubkey = new_key; diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index 4be9068883..021320c855 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -236,7 +236,7 @@ static int import_pem(const dnssec_binary_t *pem, if (gnutls_privkey_import_x509(key, x509_key, 0) != GNUTLS_E_SUCCESS || gnutls_pubkey_import_privkey(pubkey, key, 0, 0) != GNUTLS_E_SUCCESS ) { - r = DNSSEC_KEY_IMPORT_ERROR; + r = KNOT_KEY_EIMPORT; goto fail; } @@ -277,13 +277,13 @@ static int pkcs11_import_key(void *_ctx, const dnssec_binary_t *pem, char **id_p r = gnutls_pkcs11_copy_x509_privkey2(ctx->url, key, NULL, &gid, 0, flags); if (r != GNUTLS_E_SUCCESS) { - return DNSSEC_KEY_IMPORT_ERROR; + return KNOT_KEY_EIMPORT; } r = gnutls_pkcs11_copy_pubkey(ctx->url, pubkey, NULL, &gid, 0, flags); if (r != GNUTLS_E_SUCCESS) { // note, we result with dangling private key in the token - return DNSSEC_KEY_IMPORT_ERROR; + return KNOT_KEY_EIMPORT; } *id_ptr = bin_to_hex(id.data, id.size, false); diff --git a/src/libknot/dnssec/pem.c b/src/libknot/dnssec/pem.c index 9a1b94f81c..13b6a5f0e4 100644 --- a/src/libknot/dnssec/pem.c +++ b/src/libknot/dnssec/pem.c @@ -35,7 +35,7 @@ int dnssec_pem_to_x509(const dnssec_binary_t *pem, gnutls_x509_privkey_t *key) r = gnutls_x509_privkey_import_pkcs8(_key, &data, format, password, flags); if (r != GNUTLS_E_SUCCESS) { gnutls_x509_privkey_deinit(_key); - return DNSSEC_PKCS8_IMPORT_ERROR; + return KNOT_KEY_EIMPORT; } *key = _key; diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index c0e7342822..093bb7392e 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -175,6 +175,9 @@ enum knot_error { KNOT_DNSSEC_ENSEC3_OPTOUT, KNOT_DNSSEC_EKEYTAG_LIMIT, KNOT_DNSSEC_EXTRA_NSEC, + KNOT_KEY_EIMPORT, + KNOT_KEY_EEXPORT, + KNOT_KEY_EGENERATE, KNOT_ERROR_MAX = -501 }; diff --git a/src/libknot/error.c b/src/libknot/error.c index 720b85f658..81525ee9cf 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -174,6 +174,9 @@ static const struct error errors[] = { { KNOT_DNSSEC_ENSEC3_OPTOUT, "wrong NSEC3 opt-out" }, { KNOT_DNSSEC_EKEYTAG_LIMIT, "many keys with equal keytag" }, { KNOT_DNSSEC_EXTRA_NSEC, "superfluous NSEC(3)" }, + { KNOT_KEY_EIMPORT, "failed to import key" }, + { KNOT_KEY_EEXPORT, "failed to export key" }, + { KNOT_KEY_EGENERATE, "failed to generate key" }, /* Terminator */ { KNOT_ERROR, NULL } diff --git a/src/utils/keymgr/bind_privkey.c b/src/utils/keymgr/bind_privkey.c index c58b8f77b4..8c86cde068 100644 --- a/src/utils/keymgr/bind_privkey.c +++ b/src/utils/keymgr/bind_privkey.c @@ -258,7 +258,7 @@ static int rsa_params_to_pem(const bind_privkey_t *params, dnssec_binary_t *pem) result = gnutls_x509_privkey_import_rsa_raw(key, &m, &e, &d, &p, &q, &u); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_KEY_IMPORT_ERROR; + return KNOT_KEY_EIMPORT; } return dnssec_pem_from_x509(key, pem); @@ -313,7 +313,7 @@ static int ecdsa_params_to_pem(dnssec_key_t *dnskey, const bind_privkey_t *param result = gnutls_x509_privkey_import_ecc_raw(key, curve, &x, &y, &k); if (result != KNOT_EOK) { - return DNSSEC_KEY_IMPORT_ERROR; + return KNOT_KEY_EIMPORT; } gnutls_x509_privkey_fix(key); @@ -350,7 +350,7 @@ static int eddsa_params_to_pem(dnssec_key_t *dnskey, const bind_privkey_t *param result = gnutls_x509_privkey_import_ecc_raw(key, curve, &x, NULL, &k); if (result != KNOT_EOK) { - return DNSSEC_KEY_IMPORT_ERROR; + return KNOT_KEY_EIMPORT; } gnutls_x509_privkey_fix(key); From 870759b5e5ded87ff0ae0e15978ec3655cbe4dc2 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 10:12:18 +0200 Subject: [PATCH 179/675] Replace DNSSEC_KEY_EXPORT_ERROR with KNOT_KEY_EEXPORT --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/key/convert.c | 8 ++++---- src/libknot/dnssec/pem.c | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 58e33b03e5..7771660eb3 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -26,7 +26,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_ENOENT, "not found" }, { KNOT_KEY_EIMPORT, "PKCS #8 import error" }, - { DNSSEC_KEY_EXPORT_ERROR, "key export error" }, + { KNOT_KEY_EEXPORT, "key export error" }, { KNOT_KEY_EIMPORT, "key import error" }, { DNSSEC_KEY_GENERATE_ERROR, "key generation error" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index af64eedfe5..adff602d79 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -38,7 +38,7 @@ enum dnssec_error { KNOT_ENOENT, KNOT_KEY_EIMPORT, - DNSSEC_KEY_EXPORT_ERROR, + KNOT_KEY_EEXPORT, KNOT_KEY_EIMPORT, DNSSEC_KEY_GENERATE_ERROR, diff --git a/src/libknot/dnssec/key/convert.c b/src/libknot/dnssec/key/convert.c index c728a0dae5..d25a50bed1 100644 --- a/src/libknot/dnssec/key/convert.c +++ b/src/libknot/dnssec/key/convert.c @@ -57,12 +57,12 @@ static int rsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata) int result = gnutls_pubkey_get_pk_rsa_raw(key, &modulus, &exponent); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_KEY_EXPORT_ERROR; + return KNOT_KEY_EEXPORT; } size_t exponent_size = bignum_size_u_datum(&exponent); if (exponent_size > UINT8_MAX) { - return DNSSEC_KEY_EXPORT_ERROR; + return KNOT_KEY_EEXPORT; } size_t modulus_size = bignum_size_u_datum(&modulus); @@ -118,7 +118,7 @@ static int ecdsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata) int result = gnutls_pubkey_get_pk_ecc_raw(key, &curve, &point_x, &point_y); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_KEY_EXPORT_ERROR; + return KNOT_KEY_EEXPORT; } size_t point_size = ecdsa_curve_point_size(curve); @@ -152,7 +152,7 @@ static int eddsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata) int result = gnutls_pubkey_get_pk_ecc_raw(key, &curve, &point_x, NULL); if (result != GNUTLS_E_SUCCESS) { - return DNSSEC_KEY_EXPORT_ERROR; + return KNOT_KEY_EEXPORT; } size_t point_size = eddsa_curve_point_size(curve); diff --git a/src/libknot/dnssec/pem.c b/src/libknot/dnssec/pem.c index 13b6a5f0e4..3ba5265603 100644 --- a/src/libknot/dnssec/pem.c +++ b/src/libknot/dnssec/pem.c @@ -98,7 +98,7 @@ int dnssec_pem_from_x509(gnutls_x509_privkey_t key, dnssec_binary_t *pem) dnssec_binary_t _pem = { 0 }; int r = try_export_pem(key, &_pem); if (r != GNUTLS_E_SHORT_MEMORY_BUFFER || _pem.size == 0) { - return DNSSEC_KEY_EXPORT_ERROR; + return KNOT_KEY_EEXPORT; } r = dnssec_binary_alloc(&_pem, _pem.size); @@ -109,7 +109,7 @@ int dnssec_pem_from_x509(gnutls_x509_privkey_t key, dnssec_binary_t *pem) r = try_export_pem(key, &_pem); if (r != GNUTLS_E_SUCCESS) { dnssec_binary_free(&_pem); - return DNSSEC_KEY_EXPORT_ERROR; + return KNOT_KEY_EEXPORT; } *pem = _pem; @@ -120,7 +120,7 @@ int dnssec_pem_from_x509(gnutls_x509_privkey_t key, dnssec_binary_t *pem) static int privkey_export_x509(gnutls_privkey_t key, gnutls_x509_privkey_t *_key) { if (gnutls_privkey_export_x509(key, _key) != GNUTLS_E_SUCCESS) { - return DNSSEC_KEY_EXPORT_ERROR; + return KNOT_KEY_EEXPORT; } return KNOT_EOK; From 8d97430699f23f211dc5c1fc2eb3a63945756255 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 10:13:16 +0200 Subject: [PATCH 180/675] Replace DNSSEC_KEY_GENERATE_ERROR with KNOT_KEY_EGENERATE --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/keystore/pkcs11.c | 2 +- src/libknot/dnssec/keystore/pkcs8.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 7771660eb3..1f56729b1d 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -28,7 +28,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_KEY_EIMPORT, "PKCS #8 import error" }, { KNOT_KEY_EEXPORT, "key export error" }, { KNOT_KEY_EIMPORT, "key import error" }, - { DNSSEC_KEY_GENERATE_ERROR, "key generation error" }, + { KNOT_KEY_EGENERATE, "key generation error" }, { DNSSEC_INVALID_PUBLIC_KEY, "invalid public key" }, { DNSSEC_INVALID_PRIVATE_KEY, "invalid private key" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index adff602d79..3693c912ac 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -40,7 +40,7 @@ enum dnssec_error { KNOT_KEY_EIMPORT, KNOT_KEY_EEXPORT, KNOT_KEY_EIMPORT, - DNSSEC_KEY_GENERATE_ERROR, + KNOT_KEY_EGENERATE, DNSSEC_INVALID_PUBLIC_KEY, DNSSEC_INVALID_PRIVATE_KEY, diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index 021320c855..d209e81a85 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -200,7 +200,7 @@ static int pkcs11_generate_key(void *_ctx, gnutls_pk_algorithm_t algorithm, int r = gnutls_pkcs11_privkey_generate3(ctx->url, algorithm, bits, label, >_cka_id, 0, NULL, 0, flags); if (r != GNUTLS_E_SUCCESS) { - return DNSSEC_KEY_GENERATE_ERROR; + return KNOT_KEY_EGENERATE; } char *id = bin_to_hex(cka_id.data, cka_id.size, false); diff --git a/src/libknot/dnssec/keystore/pkcs8.c b/src/libknot/dnssec/keystore/pkcs8.c index c13eda230b..d404c40312 100644 --- a/src/libknot/dnssec/keystore/pkcs8.c +++ b/src/libknot/dnssec/keystore/pkcs8.c @@ -181,7 +181,7 @@ static int pem_generate(gnutls_pk_algorithm_t algorithm, unsigned bits, r = gnutls_x509_privkey_generate(key, algorithm, bits, 0); if (r != GNUTLS_E_SUCCESS) { - return DNSSEC_KEY_GENERATE_ERROR; + return KNOT_KEY_EGENERATE; } // convert to PEM and export the ID From fcdb13c3aaaba61169fecb260ce96017870dd354 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 10:15:33 +0200 Subject: [PATCH 181/675] Replace DNSSEC_INVALID_PUBLIC_KEY with KNOT_INVALID_PUBLIC_KEY --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/key/convert.c | 16 ++++++++-------- src/libknot/dnssec/key/dnskey.c | 2 +- src/libknot/dnssec/key/ds.c | 2 +- src/libknot/error.c | 4 ++-- tests/libknot/test_dnssec_key_ds.c | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 1f56729b1d..12adcd6e01 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -30,7 +30,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_KEY_EIMPORT, "key import error" }, { KNOT_KEY_EGENERATE, "key generation error" }, - { DNSSEC_INVALID_PUBLIC_KEY, "invalid public key" }, + { KNOT_INVALID_PUBLIC_KEY, "invalid public key" }, { DNSSEC_INVALID_PRIVATE_KEY, "invalid private key" }, { DNSSEC_INVALID_KEY_ALGORITHM, "invalid key algorithm" }, { DNSSEC_INVALID_KEY_SIZE, "invalid key size" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 3693c912ac..f8d91b5bce 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -42,7 +42,7 @@ enum dnssec_error { KNOT_KEY_EIMPORT, KNOT_KEY_EGENERATE, - DNSSEC_INVALID_PUBLIC_KEY, + KNOT_INVALID_PUBLIC_KEY, DNSSEC_INVALID_PRIVATE_KEY, DNSSEC_INVALID_KEY_ALGORITHM, DNSSEC_INVALID_KEY_SIZE, diff --git a/src/libknot/dnssec/key/convert.c b/src/libknot/dnssec/key/convert.c index d25a50bed1..0bb8b6560e 100644 --- a/src/libknot/dnssec/key/convert.c +++ b/src/libknot/dnssec/key/convert.c @@ -123,7 +123,7 @@ static int ecdsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata) size_t point_size = ecdsa_curve_point_size(curve); if (point_size == 0) { - return DNSSEC_INVALID_PUBLIC_KEY; + return KNOT_INVALID_PUBLIC_KEY; } result = dnssec_binary_alloc(rdata, 2 * point_size); @@ -157,7 +157,7 @@ static int eddsa_pubkey_to_rdata(gnutls_pubkey_t key, dnssec_binary_t *rdata) size_t point_size = eddsa_curve_point_size(curve); if (point_size == 0) { - return DNSSEC_INVALID_PUBLIC_KEY; + return KNOT_INVALID_PUBLIC_KEY; } result = dnssec_binary_alloc(rdata, point_size); @@ -183,7 +183,7 @@ static int rsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t key assert(key); if (rdata->size == 0) { - return DNSSEC_INVALID_PUBLIC_KEY; + return KNOT_INVALID_PUBLIC_KEY; } wire_ctx_t ctx = binary_init(rdata); @@ -192,7 +192,7 @@ static int rsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t key uint8_t exponent_size = wire_ctx_read_u8(&ctx); if (exponent_size == 0 || wire_ctx_available(&ctx) < exponent_size) { - return DNSSEC_INVALID_PUBLIC_KEY; + return KNOT_INVALID_PUBLIC_KEY; } gnutls_datum_t exponent = wire_take_datum(&ctx, exponent_size); @@ -201,7 +201,7 @@ static int rsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t key size_t modulus_size = wire_ctx_available(&ctx); if (modulus_size == 0) { - return DNSSEC_INVALID_PUBLIC_KEY; + return KNOT_INVALID_PUBLIC_KEY; } gnutls_datum_t modulus = wire_take_datum(&ctx, modulus_size); @@ -252,7 +252,7 @@ static int ecdsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t k gnutls_ecc_curve_t curve = ecdsa_curve_from_rdata_size(rdata->size); if (curve == GNUTLS_ECC_CURVE_INVALID) { - return DNSSEC_INVALID_PUBLIC_KEY; + return KNOT_INVALID_PUBLIC_KEY; } // parse points @@ -282,7 +282,7 @@ static int eddsa_rdata_to_pubkey(const dnssec_binary_t *rdata, gnutls_pubkey_t k gnutls_ecc_curve_t curve = eddsa_curve_from_rdata_size(rdata->size); if (curve == GNUTLS_ECC_CURVE_INVALID) { - return DNSSEC_INVALID_PUBLIC_KEY; + return KNOT_INVALID_PUBLIC_KEY; } wire_ctx_t ctx = binary_init(rdata); @@ -311,7 +311,7 @@ int convert_pubkey_to_dnskey(gnutls_pubkey_t key, dnssec_binary_t *rdata) int algorithm = gnutls_pubkey_get_pk_algorithm(key, NULL); if (algorithm < 0) { - return DNSSEC_INVALID_PUBLIC_KEY; + return KNOT_INVALID_PUBLIC_KEY; } switch ((gnutls_pk_algorithm_t)algorithm) { diff --git a/src/libknot/dnssec/key/dnskey.c b/src/libknot/dnssec/key/dnskey.c index 2a7e0dbcd4..0229d5d0a1 100644 --- a/src/libknot/dnssec/key/dnskey.c +++ b/src/libknot/dnssec/key/dnskey.c @@ -54,7 +54,7 @@ int dnskey_rdata_to_crypto_key(const dnssec_binary_t *rdata, gnutls_pubkey_t *ke wire_ctx_set_offset(&wire, DNSKEY_RDATA_OFFSET_PROTOCOL); protocol = wire_ctx_read_u8(&wire); if (!(flags_hi & 0x1) || protocol != 0x3) { - return DNSSEC_INVALID_PUBLIC_KEY; + return KNOT_INVALID_PUBLIC_KEY; } wire_ctx_set_offset(&wire, DNSKEY_RDATA_OFFSET_ALGORITHM); diff --git a/src/libknot/dnssec/key/ds.c b/src/libknot/dnssec/key/ds.c index ca215f20e1..e921d0e554 100644 --- a/src/libknot/dnssec/key/ds.c +++ b/src/libknot/dnssec/key/ds.c @@ -69,7 +69,7 @@ int dnssec_key_create_ds(const dnssec_key_t *key, } if (!key->public_key){ - return DNSSEC_INVALID_PUBLIC_KEY; + return KNOT_INVALID_PUBLIC_KEY; } gnutls_digest_algorithm_t algorithm = lookup_algorithm(ds_algorithm); diff --git a/src/libknot/error.c b/src/libknot/error.c index 81525ee9cf..92d0bfbe42 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -210,9 +210,9 @@ int knot_error_from_libdnssec(int libdnssec_errcode) case DNSSEC_NO_PRIVATE_KEY: return KNOT_DNSSEC_ENOKEY; // EOK, EINVAL, ENOMEM and ENOENT are identical, no need to translate - case DNSSEC_INVALID_PUBLIC_KEY ... DNSSEC_INVALID_KEY_NAME: + case KNOT_INVALID_PUBLIC_KEY ... DNSSEC_INVALID_KEY_NAME: return libdnssec_errcode - - DNSSEC_INVALID_PUBLIC_KEY + KNOT_INVALID_PUBLIC_KEY; + - KNOT_INVALID_PUBLIC_KEY + KNOT_INVALID_PUBLIC_KEY; default: return libdnssec_errcode; } diff --git a/tests/libknot/test_dnssec_key_ds.c b/tests/libknot/test_dnssec_key_ds.c index dc4a55fd70..235057bb11 100644 --- a/tests/libknot/test_dnssec_key_ds.c +++ b/tests/libknot/test_dnssec_key_ds.c @@ -66,7 +66,7 @@ static void test_errors(const struct key_parameters *params) dnssec_key_set_dname(key, params->name); r = dnssec_key_create_ds(key, DNSSEC_KEY_DIGEST_SHA1, &ds); - is_int(DNSSEC_INVALID_PUBLIC_KEY, r, "dnssec_key_create_ds() no public key"); + is_int(KNOT_INVALID_PUBLIC_KEY, r, "dnssec_key_create_ds() no public key"); dnssec_key_set_rdata(key, ¶ms->rdata); r = dnssec_key_create_ds(key, DNSSEC_KEY_DIGEST_SHA1, NULL); From 96475b8b1fa831013574d0bdbf86d6854b028f44 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 10:17:02 +0200 Subject: [PATCH 182/675] Replace DNSSEC_INVALID_KEY_ALGORITHM with KNOT_INVALID_KEY_ALGORITHM --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/key/algorithm.c | 2 +- src/libknot/dnssec/key/convert.c | 4 ++-- src/libknot/dnssec/key/key.c | 4 ++-- src/libknot/dnssec/key/privkey.c | 2 +- src/libknot/dnssec/key/simple.c | 2 +- src/libknot/dnssec/keystore/keystore.c | 2 +- src/libknot/dnssec/sign/sign.c | 2 +- src/libknot/dnssec/tsig.c | 2 +- src/utils/keymgr/bind_privkey.c | 4 ++-- tests/libknot/test_dnssec_key.c | 2 +- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 12adcd6e01..53ee9d9e42 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -32,7 +32,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_INVALID_PUBLIC_KEY, "invalid public key" }, { DNSSEC_INVALID_PRIVATE_KEY, "invalid private key" }, - { DNSSEC_INVALID_KEY_ALGORITHM, "invalid key algorithm" }, + { KNOT_INVALID_KEY_ALGORITHM, "invalid key algorithm" }, { DNSSEC_INVALID_KEY_SIZE, "invalid key size" }, { DNSSEC_INVALID_KEY_ID, "invalid key ID" }, { DNSSEC_INVALID_KEY_NAME, "invalid key name" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index f8d91b5bce..2f8c939943 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -44,7 +44,7 @@ enum dnssec_error { KNOT_INVALID_PUBLIC_KEY, DNSSEC_INVALID_PRIVATE_KEY, - DNSSEC_INVALID_KEY_ALGORITHM, + KNOT_INVALID_KEY_ALGORITHM, DNSSEC_INVALID_KEY_SIZE, DNSSEC_INVALID_KEY_ID, DNSSEC_INVALID_KEY_NAME, diff --git a/src/libknot/dnssec/key/algorithm.c b/src/libknot/dnssec/key/algorithm.c index 9cc08e9890..871b5df960 100644 --- a/src/libknot/dnssec/key/algorithm.c +++ b/src/libknot/dnssec/key/algorithm.c @@ -122,7 +122,7 @@ int dnssec_algorithm_key_size_range(dnssec_key_algorithm_t algorithm, const struct limits *limits = get_limits(algorithm); if (!limits) { - return DNSSEC_INVALID_KEY_ALGORITHM; + return KNOT_INVALID_KEY_ALGORITHM; } if (min_ptr) { diff --git a/src/libknot/dnssec/key/convert.c b/src/libknot/dnssec/key/convert.c index 0bb8b6560e..b5352b10b3 100644 --- a/src/libknot/dnssec/key/convert.c +++ b/src/libknot/dnssec/key/convert.c @@ -321,7 +321,7 @@ int convert_pubkey_to_dnskey(gnutls_pubkey_t key, dnssec_binary_t *rdata) #ifdef HAVE_ED448 case GNUTLS_PK_EDDSA_ED448: return eddsa_pubkey_to_rdata(key, rdata); #endif - default: return DNSSEC_INVALID_KEY_ALGORITHM; + default: return KNOT_INVALID_KEY_ALGORITHM; } } @@ -343,6 +343,6 @@ int convert_dnskey_to_pubkey(uint8_t algorithm, const dnssec_binary_t *rdata, #ifdef HAVE_ED448 case GNUTLS_PK_EDDSA_ED448: return eddsa_rdata_to_pubkey(rdata, key); #endif - default: return DNSSEC_INVALID_KEY_ALGORITHM; + default: return KNOT_INVALID_KEY_ALGORITHM; } } diff --git a/src/libknot/dnssec/key/key.c b/src/libknot/dnssec/key/key.c index 81952dd003..c94fedceb9 100644 --- a/src/libknot/dnssec/key/key.c +++ b/src/libknot/dnssec/key/key.c @@ -298,7 +298,7 @@ int dnssec_key_set_algorithm(dnssec_key_t *key, uint8_t algorithm) } if (!can_change_algorithm(key, algorithm)) { - return DNSSEC_INVALID_KEY_ALGORITHM; + return KNOT_INVALID_KEY_ALGORITHM; } wire_ctx_t wire = binary_init(&key->rdata); @@ -334,7 +334,7 @@ int dnssec_key_set_pubkey(dnssec_key_t *key, const dnssec_binary_t *pubkey) } if (dnssec_key_get_algorithm(key) == 0) { - return DNSSEC_INVALID_KEY_ALGORITHM; + return KNOT_INVALID_KEY_ALGORITHM; } int result = dnskey_rdata_set_pubkey(&key->rdata, pubkey); diff --git a/src/libknot/dnssec/key/privkey.c b/src/libknot/dnssec/key/privkey.c index 25a1c68d5b..55f9d44448 100644 --- a/src/libknot/dnssec/key/privkey.c +++ b/src/libknot/dnssec/key/privkey.c @@ -113,7 +113,7 @@ int key_set_private_key(dnssec_key_t *key, gnutls_privkey_t privkey) assert(key->private_key == NULL); if (!valid_algorithm(key, privkey)) { - return DNSSEC_INVALID_KEY_ALGORITHM; + return KNOT_INVALID_KEY_ALGORITHM; } if (!key->public_key) { diff --git a/src/libknot/dnssec/key/simple.c b/src/libknot/dnssec/key/simple.c index f8efaa4a6a..0258c00476 100644 --- a/src/libknot/dnssec/key/simple.c +++ b/src/libknot/dnssec/key/simple.c @@ -25,7 +25,7 @@ int dnssec_key_load_pkcs8(dnssec_key_t *key, const dnssec_binary_t *pem) } if (dnssec_key_get_algorithm(key) == 0) { - return DNSSEC_INVALID_KEY_ALGORITHM; + return KNOT_INVALID_KEY_ALGORITHM; } gnutls_privkey_t privkey = NULL; diff --git a/src/libknot/dnssec/keystore/keystore.c b/src/libknot/dnssec/keystore/keystore.c index 0b0b865240..2eaeb84f7f 100644 --- a/src/libknot/dnssec/keystore/keystore.c +++ b/src/libknot/dnssec/keystore/keystore.c @@ -102,7 +102,7 @@ int dnssec_keystore_generate(dnssec_keystore_t *store, gnutls_pk_algorithm_t algorithm = algorithm_to_gnutls(_algorithm); if (algorithm == GNUTLS_PK_UNKNOWN) { - return DNSSEC_INVALID_KEY_ALGORITHM; + return KNOT_INVALID_KEY_ALGORITHM; } if (!dnssec_algorithm_key_size_check(_algorithm, bits)) { diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index 1847008771..0cf74fd84e 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -239,7 +239,7 @@ int dnssec_sign_new(dnssec_sign_ctx_t **ctx_ptr, const dnssec_key_t *key) ctx->functions = get_functions(key); if (ctx->functions == NULL) { free(ctx); - return DNSSEC_INVALID_KEY_ALGORITHM; + return KNOT_INVALID_KEY_ALGORITHM; } const uint8_t algo_raw = dnssec_key_get_algorithm(key); diff --git a/src/libknot/dnssec/tsig.c b/src/libknot/dnssec/tsig.c index 115a1251d5..49a1aed303 100644 --- a/src/libknot/dnssec/tsig.c +++ b/src/libknot/dnssec/tsig.c @@ -161,7 +161,7 @@ int dnssec_tsig_new(dnssec_tsig_ctx_t **ctx_ptr, ctx->algorithm = algorithm_to_gnutls(algorithm); if (ctx->algorithm == GNUTLS_MAC_UNKNOWN) { free(ctx); - return DNSSEC_INVALID_KEY_ALGORITHM; + return KNOT_INVALID_KEY_ALGORITHM; } int result = gnutls_hmac_init(&ctx->hash, ctx->algorithm, key->data, key->size); diff --git a/src/utils/keymgr/bind_privkey.c b/src/utils/keymgr/bind_privkey.c index 8c86cde068..59d8cc589d 100644 --- a/src/utils/keymgr/bind_privkey.c +++ b/src/utils/keymgr/bind_privkey.c @@ -80,7 +80,7 @@ static int parse_algorithm(char *string, void *_algorithm) uint8_t *algorithm = _algorithm; int r = str_to_u8(string, algorithm); - return (r == KNOT_EOK ? KNOT_EOK : DNSSEC_INVALID_KEY_ALGORITHM); + return (r == KNOT_EOK ? KNOT_EOK : KNOT_INVALID_KEY_ALGORITHM); } /*! @@ -376,7 +376,7 @@ int bind_privkey_to_pem(dnssec_key_t *key, bind_privkey_t *params, dnssec_binary #endif return eddsa_params_to_pem(key, params, pem); default: - return DNSSEC_INVALID_KEY_ALGORITHM; + return KNOT_INVALID_KEY_ALGORITHM; } } diff --git a/tests/libknot/test_dnssec_key.c b/tests/libknot/test_dnssec_key.c index fb9a3336e2..acb77c361f 100644 --- a/tests/libknot/test_dnssec_key.c +++ b/tests/libknot/test_dnssec_key.c @@ -50,7 +50,7 @@ static void test_public_key(const key_parameters_t *params) // create from parameters r = dnssec_key_set_pubkey(key, ¶ms->public_key); - ok(r == DNSSEC_INVALID_KEY_ALGORITHM, + ok(r == KNOT_INVALID_KEY_ALGORITHM, "set public key (fails, no algorithm set)"); check_attr_scalar(key, uint16_t, flags, 256, params->flags); From 8694161c4ceefd1a10490ecf2a8d002ae20f0c3a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 10:18:11 +0200 Subject: [PATCH 183/675] Replace DNSSEC_INVALID_KEY_SIZE with KNOT_INVALID_KEY_SIZE --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/keystore/keystore.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 53ee9d9e42..3704537016 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -33,7 +33,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_INVALID_PUBLIC_KEY, "invalid public key" }, { DNSSEC_INVALID_PRIVATE_KEY, "invalid private key" }, { KNOT_INVALID_KEY_ALGORITHM, "invalid key algorithm" }, - { DNSSEC_INVALID_KEY_SIZE, "invalid key size" }, + { KNOT_INVALID_KEY_SIZE, "invalid key size" }, { DNSSEC_INVALID_KEY_ID, "invalid key ID" }, { DNSSEC_INVALID_KEY_NAME, "invalid key name" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 2f8c939943..dcf26691d0 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -45,7 +45,7 @@ enum dnssec_error { KNOT_INVALID_PUBLIC_KEY, DNSSEC_INVALID_PRIVATE_KEY, KNOT_INVALID_KEY_ALGORITHM, - DNSSEC_INVALID_KEY_SIZE, + KNOT_INVALID_KEY_SIZE, DNSSEC_INVALID_KEY_ID, DNSSEC_INVALID_KEY_NAME, diff --git a/src/libknot/dnssec/keystore/keystore.c b/src/libknot/dnssec/keystore/keystore.c index 2eaeb84f7f..e73bb69287 100644 --- a/src/libknot/dnssec/keystore/keystore.c +++ b/src/libknot/dnssec/keystore/keystore.c @@ -106,7 +106,7 @@ int dnssec_keystore_generate(dnssec_keystore_t *store, } if (!dnssec_algorithm_key_size_check(_algorithm, bits)) { - return DNSSEC_INVALID_KEY_SIZE; + return KNOT_INVALID_KEY_SIZE; } return store->functions->generate_key(store->ctx, algorithm, bits, label, id_ptr); From f6910085a162538f6d53456c0b90c3ec955fa673 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 10:19:01 +0200 Subject: [PATCH 184/675] Replace DNSSEC_INVALID_KEY_ID with KNOT_INVALID_KEY_ID --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/keystore/pkcs11.c | 2 +- src/libknot/dnssec/shared/keyid_gnutls.c | 2 +- src/utils/keymgr/functions.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 3704537016..d68d198fd2 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -34,7 +34,7 @@ static const error_message_t ERROR_MESSAGES[] = { { DNSSEC_INVALID_PRIVATE_KEY, "invalid private key" }, { KNOT_INVALID_KEY_ALGORITHM, "invalid key algorithm" }, { KNOT_INVALID_KEY_SIZE, "invalid key size" }, - { DNSSEC_INVALID_KEY_ID, "invalid key ID" }, + { KNOT_INVALID_KEY_ID, "invalid key ID" }, { DNSSEC_INVALID_KEY_NAME, "invalid key name" }, { DNSSEC_NO_PUBLIC_KEY, "no public key" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index dcf26691d0..b7498207b5 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -46,7 +46,7 @@ enum dnssec_error { DNSSEC_INVALID_PRIVATE_KEY, KNOT_INVALID_KEY_ALGORITHM, KNOT_INVALID_KEY_SIZE, - DNSSEC_INVALID_KEY_ID, + KNOT_INVALID_KEY_ID, DNSSEC_INVALID_KEY_NAME, DNSSEC_NO_PUBLIC_KEY, diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index d209e81a85..83cec636c1 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -37,7 +37,7 @@ static int key_url(const char *token_uri, const char *key_id, char **url_ptr) assert(url_ptr); if (!dnssec_keyid_is_valid(key_id)) { - return DNSSEC_INVALID_KEY_ID; + return KNOT_INVALID_KEY_ID; } size_t token_len = strlen(token_uri); diff --git a/src/libknot/dnssec/shared/keyid_gnutls.c b/src/libknot/dnssec/shared/keyid_gnutls.c index a7437f97e4..a4dc0bb911 100644 --- a/src/libknot/dnssec/shared/keyid_gnutls.c +++ b/src/libknot/dnssec/shared/keyid_gnutls.c @@ -34,7 +34,7 @@ static int keyid_bin(gnutls_x509_privkey_t key, gnutls_pubkey_t pubkey, dnssec_b : gnutls_pubkey_get_key_id(pubkey, flags, buffer, &size); if (r != GNUTLS_E_SUCCESS || size != DNSSEC_KEYID_BINARY_SIZE) { - return DNSSEC_INVALID_KEY_ID; + return KNOT_INVALID_KEY_ID; } assert(size == DNSSEC_KEYID_BINARY_SIZE); diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 479aba4187..c5287ba040 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -649,7 +649,7 @@ int keymgr_import_pem(kdnssec_ctx_t *ctx, const char *import_file, int argc, cha int keymgr_import_pkcs11(kdnssec_ctx_t *ctx, char *key_id, int argc, char *argv[]) { if (!dnssec_keyid_is_valid(key_id)) { - return DNSSEC_INVALID_KEY_ID; + return KNOT_INVALID_KEY_ID; } knot_kasp_keystore_t *keystore = knot_store_for_key(ctx->keystores, genkeyargs_ksk(argc, argv)); From a2d690afb88a75040dd3b52b017e1c3dfb1582d7 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 10:19:57 +0200 Subject: [PATCH 185/675] Replace DNSSEC_INVALID_KEY_NAME with KNOT_INVALID_KEY_NAME --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/key/ds.c | 2 +- src/libknot/error.c | 2 +- tests/libknot/test_dnssec_key_ds.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index d68d198fd2..688c9155c9 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -35,7 +35,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_INVALID_KEY_ALGORITHM, "invalid key algorithm" }, { KNOT_INVALID_KEY_SIZE, "invalid key size" }, { KNOT_INVALID_KEY_ID, "invalid key ID" }, - { DNSSEC_INVALID_KEY_NAME, "invalid key name" }, + { KNOT_INVALID_KEY_NAME, "invalid key name" }, { DNSSEC_NO_PUBLIC_KEY, "no public key" }, { DNSSEC_NO_PRIVATE_KEY, "no private key" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index b7498207b5..9bb890f59f 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -47,7 +47,7 @@ enum dnssec_error { KNOT_INVALID_KEY_ALGORITHM, KNOT_INVALID_KEY_SIZE, KNOT_INVALID_KEY_ID, - DNSSEC_INVALID_KEY_NAME, + KNOT_INVALID_KEY_NAME, DNSSEC_NO_PUBLIC_KEY, DNSSEC_NO_PRIVATE_KEY, diff --git a/src/libknot/dnssec/key/ds.c b/src/libknot/dnssec/key/ds.c index e921d0e554..3a13511363 100644 --- a/src/libknot/dnssec/key/ds.c +++ b/src/libknot/dnssec/key/ds.c @@ -65,7 +65,7 @@ int dnssec_key_create_ds(const dnssec_key_t *key, } if (!key->dname) { - return DNSSEC_INVALID_KEY_NAME; + return KNOT_INVALID_KEY_NAME; } if (!key->public_key){ diff --git a/src/libknot/error.c b/src/libknot/error.c index 92d0bfbe42..98d718f56f 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -210,7 +210,7 @@ int knot_error_from_libdnssec(int libdnssec_errcode) case DNSSEC_NO_PRIVATE_KEY: return KNOT_DNSSEC_ENOKEY; // EOK, EINVAL, ENOMEM and ENOENT are identical, no need to translate - case KNOT_INVALID_PUBLIC_KEY ... DNSSEC_INVALID_KEY_NAME: + case KNOT_INVALID_PUBLIC_KEY ... KNOT_INVALID_KEY_NAME: return libdnssec_errcode - KNOT_INVALID_PUBLIC_KEY + KNOT_INVALID_PUBLIC_KEY; default: diff --git a/tests/libknot/test_dnssec_key_ds.c b/tests/libknot/test_dnssec_key_ds.c index 235057bb11..2a9ca4842c 100644 --- a/tests/libknot/test_dnssec_key_ds.c +++ b/tests/libknot/test_dnssec_key_ds.c @@ -62,7 +62,7 @@ static void test_errors(const struct key_parameters *params) dnssec_key_new(&key); r = dnssec_key_create_ds(key, DNSSEC_KEY_DIGEST_SHA1, &ds); - is_int(DNSSEC_INVALID_KEY_NAME, r, "dnssec_key_create_ds() no key name"); + is_int(KNOT_INVALID_KEY_NAME, r, "dnssec_key_create_ds() no key name"); dnssec_key_set_dname(key, params->name); r = dnssec_key_create_ds(key, DNSSEC_KEY_DIGEST_SHA1, &ds); From 8044225eed3eb3519f4c207a4f31d2b7f991608d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 10:21:52 +0200 Subject: [PATCH 186/675] Replace DNSSEC_NO_PUBLIC_KEY with KNOT_NO_PUBLIC_KEY --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/sign/sign.c | 2 +- src/libknot/error.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 688c9155c9..455930e96d 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -37,7 +37,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_INVALID_KEY_ID, "invalid key ID" }, { KNOT_INVALID_KEY_NAME, "invalid key name" }, - { DNSSEC_NO_PUBLIC_KEY, "no public key" }, + { KNOT_NO_PUBLIC_KEY, "no public key" }, { DNSSEC_NO_PRIVATE_KEY, "no private key" }, { DNSSEC_KEY_ALREADY_PRESENT, "key already present" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 9bb890f59f..41e8f72926 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -49,7 +49,7 @@ enum dnssec_error { KNOT_INVALID_KEY_ID, KNOT_INVALID_KEY_NAME, - DNSSEC_NO_PUBLIC_KEY, + KNOT_NO_PUBLIC_KEY, DNSSEC_NO_PRIVATE_KEY, DNSSEC_KEY_ALREADY_PRESENT, diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index 0cf74fd84e..f531084058 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -353,7 +353,7 @@ int dnssec_sign_verify(dnssec_sign_ctx_t *ctx, bool sign_cmp, const dnssec_binar } if (!dnssec_key_can_verify(ctx->key)) { - return DNSSEC_NO_PUBLIC_KEY; + return KNOT_NO_PUBLIC_KEY; } gnutls_datum_t data = { diff --git a/src/libknot/error.c b/src/libknot/error.c index 98d718f56f..1da0c8520e 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -206,7 +206,7 @@ int knot_error_from_libdnssec(int libdnssec_errcode) return KNOT_EMALF; case KNOT_ENOENT: return KNOT_ENOENT; - case DNSSEC_NO_PUBLIC_KEY: + case KNOT_NO_PUBLIC_KEY: case DNSSEC_NO_PRIVATE_KEY: return KNOT_DNSSEC_ENOKEY; // EOK, EINVAL, ENOMEM and ENOENT are identical, no need to translate From f84e9848831be0a66c2a80c940ab1d5aad467ab4 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 10:22:52 +0200 Subject: [PATCH 187/675] Replace DNSSEC_NO_PRIVATE_KEY with KNOT_NO_PRIVATE_KEY --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/keystore/keystore.c | 2 +- src/libknot/dnssec/sign/sign.c | 2 +- src/libknot/error.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 455930e96d..9c21ddf6f4 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -38,7 +38,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_INVALID_KEY_NAME, "invalid key name" }, { KNOT_NO_PUBLIC_KEY, "no public key" }, - { DNSSEC_NO_PRIVATE_KEY, "no private key" }, + { KNOT_NO_PRIVATE_KEY, "no private key" }, { DNSSEC_KEY_ALREADY_PRESENT, "key already present" }, { DNSSEC_SIGN_INIT_ERROR, "signing initialization error" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 41e8f72926..f71d794c4e 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -50,7 +50,7 @@ enum dnssec_error { KNOT_INVALID_KEY_NAME, KNOT_NO_PUBLIC_KEY, - DNSSEC_NO_PRIVATE_KEY, + KNOT_NO_PRIVATE_KEY, DNSSEC_KEY_ALREADY_PRESENT, DNSSEC_SIGN_INIT_ERROR, diff --git a/src/libknot/dnssec/keystore/keystore.c b/src/libknot/dnssec/keystore/keystore.c index e73bb69287..55e583f6a4 100644 --- a/src/libknot/dnssec/keystore/keystore.c +++ b/src/libknot/dnssec/keystore/keystore.c @@ -168,7 +168,7 @@ int dnssec_keystore_set_private(dnssec_keystore_t *store, dnssec_key_t *key) } if (!key->private_key) { - return DNSSEC_NO_PRIVATE_KEY; + return KNOT_NO_PRIVATE_KEY; } return store->functions->set_private(store->ctx, key->private_key); diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index f531084058..fcd60279f1 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -306,7 +306,7 @@ int dnssec_sign_write(dnssec_sign_ctx_t *ctx, dnssec_sign_flags_t flags, dnssec_ } if (!dnssec_key_can_sign(ctx->key)) { - return DNSSEC_NO_PRIVATE_KEY; + return KNOT_NO_PRIVATE_KEY; } gnutls_datum_t data = { diff --git a/src/libknot/error.c b/src/libknot/error.c index 1da0c8520e..aaae64924f 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -207,7 +207,7 @@ int knot_error_from_libdnssec(int libdnssec_errcode) case KNOT_ENOENT: return KNOT_ENOENT; case KNOT_NO_PUBLIC_KEY: - case DNSSEC_NO_PRIVATE_KEY: + case KNOT_NO_PRIVATE_KEY: return KNOT_DNSSEC_ENOKEY; // EOK, EINVAL, ENOMEM and ENOENT are identical, no need to translate case KNOT_INVALID_PUBLIC_KEY ... KNOT_INVALID_KEY_NAME: From cd0597205370a4fe3a0bb596ac2a2788ce851c1c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 10:26:51 +0200 Subject: [PATCH 188/675] Replace DNSSEC_KEY_ALREADY_PRESENT with KNOT_EEXIST --- src/knot/dnssec/zone-keys.c | 2 +- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/key/key.c | 4 ++-- src/libknot/dnssec/keystore/keystore.c | 2 +- tests/libknot/test_dnssec_key.c | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 60126dfbac..076804190f 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -522,7 +522,7 @@ static int load_private_keys(kdnssec_ctx_t *ctx, zone_keyset_t *keyset) int ret = kdnssec_load_private(ctx->keystores, key->id, key->key, NULL, NULL); switch (ret) { case KNOT_EOK: - case DNSSEC_KEY_ALREADY_PRESENT: + case KNOT_EEXIST: break; default: ret = knot_error_from_libdnssec(ret); diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 9c21ddf6f4..4dc8a41c3a 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -39,7 +39,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_NO_PUBLIC_KEY, "no public key" }, { KNOT_NO_PRIVATE_KEY, "no private key" }, - { DNSSEC_KEY_ALREADY_PRESENT, "key already present" }, + { KNOT_EEXIST, "key already present" }, { DNSSEC_SIGN_INIT_ERROR, "signing initialization error" }, { DNSSEC_SIGN_ERROR, "signing error" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index f71d794c4e..374071e7d5 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -51,7 +51,7 @@ enum dnssec_error { KNOT_NO_PUBLIC_KEY, KNOT_NO_PRIVATE_KEY, - DNSSEC_KEY_ALREADY_PRESENT, + KNOT_EEXIST, DNSSEC_SIGN_INIT_ERROR, DNSSEC_SIGN_ERROR, diff --git a/src/libknot/dnssec/key/key.c b/src/libknot/dnssec/key/key.c index c94fedceb9..1d22dde4e4 100644 --- a/src/libknot/dnssec/key/key.c +++ b/src/libknot/dnssec/key/key.c @@ -330,7 +330,7 @@ int dnssec_key_set_pubkey(dnssec_key_t *key, const dnssec_binary_t *pubkey) } if (key->public_key) { - return DNSSEC_KEY_ALREADY_PRESENT; + return KNOT_EEXIST; } if (dnssec_key_get_algorithm(key) == 0) { @@ -414,7 +414,7 @@ int dnssec_key_set_rdata(dnssec_key_t *key, const dnssec_binary_t *rdata) } if (key->public_key) { - return DNSSEC_KEY_ALREADY_PRESENT; + return KNOT_EEXIST; } gnutls_pubkey_t new_pubkey = NULL; diff --git a/src/libknot/dnssec/keystore/keystore.c b/src/libknot/dnssec/keystore/keystore.c index 55e583f6a4..6aa5487575 100644 --- a/src/libknot/dnssec/keystore/keystore.c +++ b/src/libknot/dnssec/keystore/keystore.c @@ -142,7 +142,7 @@ int dnssec_keystore_get_private(dnssec_keystore_t *store, const char *id, } if (key->private_key) { - return DNSSEC_KEY_ALREADY_PRESENT; + return KNOT_EEXIST; } gnutls_privkey_t privkey = NULL; diff --git a/tests/libknot/test_dnssec_key.c b/tests/libknot/test_dnssec_key.c index acb77c361f..efbb092b28 100644 --- a/tests/libknot/test_dnssec_key.c +++ b/tests/libknot/test_dnssec_key.c @@ -61,7 +61,7 @@ static void test_public_key(const key_parameters_t *params) ok(r == KNOT_EOK, "set public key (succeeds)"); r = dnssec_key_set_pubkey(key, ¶ms->public_key); - ok(r == DNSSEC_KEY_ALREADY_PRESENT, + ok(r == KNOT_EEXIST, "set public key (fails, already present)"); dnssec_binary_t rdata = { 0 }; From 4cb2e94021106288a65622f27c16838d18341d82 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 12:18:18 +0200 Subject: [PATCH 189/675] Replace DNSSEC_SIGN_INIT_ERROR with KNOT_ECRYPTO --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/tsig.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 4dc8a41c3a..e10fd29729 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -41,7 +41,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_NO_PRIVATE_KEY, "no private key" }, { KNOT_EEXIST, "key already present" }, - { DNSSEC_SIGN_INIT_ERROR, "signing initialization error" }, + { KNOT_ECRYPTO, "signing initialization error" }, { DNSSEC_SIGN_ERROR, "signing error" }, { DNSSEC_INVALID_SIGNATURE, "invalid signature" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 374071e7d5..38ebbf16b4 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -53,7 +53,7 @@ enum dnssec_error { KNOT_NO_PRIVATE_KEY, KNOT_EEXIST, - DNSSEC_SIGN_INIT_ERROR, + KNOT_ECRYPTO, DNSSEC_SIGN_ERROR, DNSSEC_INVALID_SIGNATURE, diff --git a/src/libknot/dnssec/tsig.c b/src/libknot/dnssec/tsig.c index 49a1aed303..b86fd37016 100644 --- a/src/libknot/dnssec/tsig.c +++ b/src/libknot/dnssec/tsig.c @@ -167,7 +167,7 @@ int dnssec_tsig_new(dnssec_tsig_ctx_t **ctx_ptr, int result = gnutls_hmac_init(&ctx->hash, ctx->algorithm, key->data, key->size); if (result != 0) { free(ctx); - return DNSSEC_SIGN_INIT_ERROR; + return KNOT_ECRYPTO; } *ctx_ptr = ctx; From 060b7c361d4f254b54177a6f6f6cb5d2284c50fe Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 11:04:20 +0200 Subject: [PATCH 190/675] Replace DNSSEC_INVALID_*_ALGORITHM with KNOT_EALGORITHM --- src/libknot/dnssec/digest.c | 2 +- src/libknot/dnssec/error.h | 6 +++--- src/libknot/dnssec/key/ds.c | 2 +- src/libknot/dnssec/nsec/hash.c | 2 +- src/libknot/errcode.h | 1 + src/libknot/error.c | 1 + tests/libknot/test_dnssec_key_ds.c | 2 +- 7 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/libknot/dnssec/digest.c b/src/libknot/dnssec/digest.c index 156dd96473..a8034fe326 100644 --- a/src/libknot/dnssec/digest.c +++ b/src/libknot/dnssec/digest.c @@ -34,7 +34,7 @@ int dnssec_digest_init(dnssec_digest_t algorithm, dnssec_digest_ctx_t **out_ctx) gnutls_digest_algorithm_t gtalg = lookup_algorithm(algorithm); if (gtalg == GNUTLS_DIG_UNKNOWN) { - return DNSSEC_INVALID_DIGEST_ALGORITHM; + return KNOT_EALGORITHM; } dnssec_digest_ctx_t *res = malloc(sizeof(*res)); diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 38ebbf16b4..2076d677f1 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -57,10 +57,10 @@ enum dnssec_error { DNSSEC_SIGN_ERROR, DNSSEC_INVALID_SIGNATURE, - DNSSEC_INVALID_NSEC3_ALGORITHM, + KNOT_EALGORITHM, DNSSEC_NSEC3_HASHING_ERROR, - DNSSEC_INVALID_DS_ALGORITHM, + KNOT_EALGORITHM, DNSSEC_DS_HASHING_ERROR, DNSSEC_KEYSTORE_INVALID_CONFIG, @@ -69,7 +69,7 @@ enum dnssec_error { DNSSEC_P11_TOO_MANY_MODULES, DNSSEC_P11_TOKEN_NOT_AVAILABLE, - DNSSEC_INVALID_DIGEST_ALGORITHM, + KNOT_EALGORITHM, DNSSEC_DIGEST_ERROR, DNSSEC_ERROR_MAX = -1001 diff --git a/src/libknot/dnssec/key/ds.c b/src/libknot/dnssec/key/ds.c index 3a13511363..054aa41bf3 100644 --- a/src/libknot/dnssec/key/ds.c +++ b/src/libknot/dnssec/key/ds.c @@ -74,7 +74,7 @@ int dnssec_key_create_ds(const dnssec_key_t *key, gnutls_digest_algorithm_t algorithm = lookup_algorithm(ds_algorithm); if (algorithm == GNUTLS_DIG_UNKNOWN) { - return DNSSEC_INVALID_DS_ALGORITHM; + return KNOT_EALGORITHM; } // compute DS hash diff --git a/src/libknot/dnssec/nsec/hash.c b/src/libknot/dnssec/nsec/hash.c index 087ff3422d..e40253a4be 100644 --- a/src/libknot/dnssec/nsec/hash.c +++ b/src/libknot/dnssec/nsec/hash.c @@ -93,7 +93,7 @@ int dnssec_nsec3_hash(const dnssec_binary_t *data, gnutls_digest_algorithm_t algorithm = algorithm_d2g(params->algorithm); if (algorithm == GNUTLS_DIG_UNKNOWN) { - return DNSSEC_INVALID_NSEC3_ALGORITHM; + return KNOT_EALGORITHM; } return nsec3_hash(algorithm, params->iterations, ¶ms->salt, data, hash); diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index 093bb7392e..ed8d0d4da8 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -178,6 +178,7 @@ enum knot_error { KNOT_KEY_EIMPORT, KNOT_KEY_EEXPORT, KNOT_KEY_EGENERATE, + KNOT_EALGORITHM, KNOT_ERROR_MAX = -501 }; diff --git a/src/libknot/error.c b/src/libknot/error.c index aaae64924f..5dbc3da0f1 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -177,6 +177,7 @@ static const struct error errors[] = { { KNOT_KEY_EIMPORT, "failed to import key" }, { KNOT_KEY_EEXPORT, "failed to export key" }, { KNOT_KEY_EGENERATE, "failed to generate key" }, + { KNOT_EALGORITHM, "invalid hash algorithm" }, /* Terminator */ { KNOT_ERROR, NULL } diff --git a/tests/libknot/test_dnssec_key_ds.c b/tests/libknot/test_dnssec_key_ds.c index 2a9ca4842c..71ef38e2ad 100644 --- a/tests/libknot/test_dnssec_key_ds.c +++ b/tests/libknot/test_dnssec_key_ds.c @@ -73,7 +73,7 @@ static void test_errors(const struct key_parameters *params) is_int(KNOT_EINVAL, r, "dnssec_key_create_ds() no RDATA buffer"); r = dnssec_key_create_ds(key, 3, &ds); - is_int(DNSSEC_INVALID_DS_ALGORITHM, r, "dnssec_key_create_ds() unsupported algorithm"); + is_int(KNOT_EALGORITHM, r, "dnssec_key_create_ds() unsupported algorithm"); r = dnssec_key_create_ds(key, DNSSEC_KEY_DIGEST_SHA1, &ds); is_int(KNOT_EOK, r, "dnssec_key_create_ds() valid parameters"); From c028becc0756b57421a838170f7c878c0d132b3d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 21 Oct 2025 13:29:12 +0200 Subject: [PATCH 191/675] Replace DNSSEC_ERROR with KNOT_ERROR --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/keystore/pkcs11.c | 2 +- src/libknot/dnssec/p11/p11.c | 2 +- src/libknot/dnssec/random.c | 2 +- src/libknot/dnssec/sign/sign.c | 2 +- src/libknot/error.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index e10fd29729..b0408c43c1 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -20,7 +20,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_EINVAL, "invalid argument" }, { KNOT_ENOENT, "no such file or directory" }, - { DNSSEC_ERROR, "unspecified error" }, + { KNOT_ERROR, "unspecified error" }, { KNOT_ENOTSUP, "not implemented" }, { KNOT_EMALF, "malformed data" }, { KNOT_ENOENT, "not found" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 2076d677f1..b02a0a3d50 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -32,7 +32,7 @@ enum dnssec_error { DNSSEC_ERROR_MIN = -1500, - DNSSEC_ERROR = DNSSEC_ERROR_MIN, + KNOT_ERROR = DNSSEC_ERROR_MIN, KNOT_ENOTSUP, KNOT_EMALF, KNOT_ENOENT, diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index 83cec636c1..4d22b697c1 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -306,7 +306,7 @@ static int pkcs11_remove_key(void *_ctx, const char *id) r = gnutls_pkcs11_delete_url(url, GNUTLS_PKCS11_OBJ_FLAG_LOGIN); if (r < 0) { - return DNSSEC_ERROR; + return KNOT_ERROR; } else if (r == 0) { return KNOT_ENOENT; } diff --git a/src/libknot/dnssec/p11/p11.c b/src/libknot/dnssec/p11/p11.c index 6b24d01f62..cf2d5093c5 100644 --- a/src/libknot/dnssec/p11/p11.c +++ b/src/libknot/dnssec/p11/p11.c @@ -20,7 +20,7 @@ static int pkcs11_modules_count = 0; static int map_result(int gnutls_result) { - return gnutls_result == GNUTLS_E_SUCCESS ? KNOT_EOK : DNSSEC_ERROR; + return gnutls_result == GNUTLS_E_SUCCESS ? KNOT_EOK : KNOT_ERROR; } int p11_init(void) diff --git a/src/libknot/dnssec/random.c b/src/libknot/dnssec/random.c index e25acd5743..6bab18aba9 100644 --- a/src/libknot/dnssec/random.c +++ b/src/libknot/dnssec/random.c @@ -25,7 +25,7 @@ int dnssec_random_buffer(uint8_t *data, size_t size) int result = gnutls_rnd(GNUTLS_RND_RANDOM, data, size); if (result != 0) { assert_unreachable(); - return DNSSEC_ERROR; + return KNOT_ERROR; } return KNOT_EOK; diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index fcd60279f1..ed0a36ccec 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -376,7 +376,7 @@ int dnssec_sign_verify(dnssec_sign_ctx_t *ctx, bool sign_cmp, const dnssec_binar if (result == GNUTLS_E_PK_SIG_VERIFY_FAILED) { return DNSSEC_INVALID_SIGNATURE; } else if (result < 0) { - return DNSSEC_ERROR; + return KNOT_ERROR; } return KNOT_EOK; diff --git a/src/libknot/error.c b/src/libknot/error.c index 5dbc3da0f1..5d1285f773 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -201,7 +201,7 @@ _public_ int knot_error_from_libdnssec(int libdnssec_errcode) { switch (libdnssec_errcode) { - case DNSSEC_ERROR: + case KNOT_ERROR: return KNOT_ERROR; case KNOT_EMALF: return KNOT_EMALF; From 671134a19bd4d211e320fe52e8094b355e9f5bac Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 07:47:14 +0200 Subject: [PATCH 192/675] Replace DNSSEC_DIGEST/DS_HASHING/NSEC3_HASHING_ERROR with KNOT_ECRYPTO --- src/libknot/dnssec/digest.c | 4 ++-- src/libknot/dnssec/error.c | 6 +++--- src/libknot/dnssec/error.h | 6 +++--- src/libknot/dnssec/key/ds.c | 6 +++--- src/libknot/dnssec/nsec/hash.c | 8 ++++---- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/libknot/dnssec/digest.c b/src/libknot/dnssec/digest.c index a8034fe326..ef14532cd9 100644 --- a/src/libknot/dnssec/digest.c +++ b/src/libknot/dnssec/digest.c @@ -45,7 +45,7 @@ int dnssec_digest_init(dnssec_digest_t algorithm, dnssec_digest_ctx_t **out_ctx) res->size = gnutls_hash_get_len(gtalg); if (res->size == 0 || gnutls_hash_init(&res->gtctx, gtalg) < 0) { free(res); - return DNSSEC_DIGEST_ERROR; + return KNOT_ECRYPTO; } *out_ctx = res; @@ -68,7 +68,7 @@ int dnssec_digest(dnssec_digest_ctx_t *ctx, dnssec_binary_t *data) int r = gnutls_hash(ctx->gtctx, data->data, data->size); if (r != 0) { digest_ctx_free(ctx); - return DNSSEC_DIGEST_ERROR; + return KNOT_ECRYPTO; } return KNOT_EOK; } diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index b0408c43c1..3d2a7b57c9 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -46,10 +46,10 @@ static const error_message_t ERROR_MESSAGES[] = { { DNSSEC_INVALID_SIGNATURE, "invalid signature" }, { DNSSEC_INVALID_NSEC3_ALGORITHM, "invalid NSEC3 algorithm" }, - { DNSSEC_NSEC3_HASHING_ERROR, "NSEC3 hashing error" }, + { KNOT_ECRYPTO, "NSEC3 hashing error" }, { DNSSEC_INVALID_DS_ALGORITHM, "invalid DS algorithm" }, - { DNSSEC_DS_HASHING_ERROR, "DS hashing error" }, + { KNOT_ECRYPTO, "DS hashing error" }, { DNSSEC_KEYSTORE_INVALID_CONFIG, "invalid KASP keystore configuration" }, @@ -58,7 +58,7 @@ static const error_message_t ERROR_MESSAGES[] = { { DNSSEC_P11_TOKEN_NOT_AVAILABLE, "PKCS #11 token not available" }, { DNSSEC_INVALID_DIGEST_ALGORITHM, "invalid digest algorithm" }, - { DNSSEC_DIGEST_ERROR, "digest error" }, + { KNOT_ECRYPTO, "digest error" }, { 0 } }; diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index b02a0a3d50..2540f4e1c3 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -58,10 +58,10 @@ enum dnssec_error { DNSSEC_INVALID_SIGNATURE, KNOT_EALGORITHM, - DNSSEC_NSEC3_HASHING_ERROR, + KNOT_ECRYPTO, KNOT_EALGORITHM, - DNSSEC_DS_HASHING_ERROR, + KNOT_ECRYPTO, DNSSEC_KEYSTORE_INVALID_CONFIG, @@ -70,7 +70,7 @@ enum dnssec_error { DNSSEC_P11_TOKEN_NOT_AVAILABLE, KNOT_EALGORITHM, - DNSSEC_DIGEST_ERROR, + KNOT_ECRYPTO, DNSSEC_ERROR_MAX = -1001 }; diff --git a/src/libknot/dnssec/key/ds.c b/src/libknot/dnssec/key/ds.c index 054aa41bf3..52755d6b09 100644 --- a/src/libknot/dnssec/key/ds.c +++ b/src/libknot/dnssec/key/ds.c @@ -82,20 +82,20 @@ int dnssec_key_create_ds(const dnssec_key_t *key, _cleanup_hash_ gnutls_hash_hd_t digest = NULL; int r = gnutls_hash_init(&digest, algorithm); if (r < 0) { - return DNSSEC_DS_HASHING_ERROR; + return KNOT_ECRYPTO; } if (gnutls_hash(digest, key->dname, knot_dname_size(key->dname)) != 0 || gnutls_hash(digest, key->rdata.data, key->rdata.size) != 0 ) { - return DNSSEC_DS_HASHING_ERROR; + return KNOT_ECRYPTO; } // build DS RDATA int digest_size = gnutls_hash_get_len(algorithm); if (digest_size == 0) { - return DNSSEC_DS_HASHING_ERROR; + return KNOT_ECRYPTO; } dnssec_binary_t rdata = { 0 }; diff --git a/src/libknot/dnssec/nsec/hash.c b/src/libknot/dnssec/nsec/hash.c index e40253a4be..29d685fd19 100644 --- a/src/libknot/dnssec/nsec/hash.c +++ b/src/libknot/dnssec/nsec/hash.c @@ -29,7 +29,7 @@ static int nsec3_hash(gnutls_digest_algorithm_t algorithm, int iterations, int hash_size = gnutls_hash_get_len(algorithm); if (hash_size <= 0) { - return DNSSEC_NSEC3_HASHING_ERROR; + return KNOT_ECRYPTO; } int result = dnssec_binary_resize(hash, hash_size); @@ -40,7 +40,7 @@ static int nsec3_hash(gnutls_digest_algorithm_t algorithm, int iterations, _cleanup_hash_ gnutls_hash_hd_t digest = NULL; result = gnutls_hash_init(&digest, algorithm); if (result < 0) { - return DNSSEC_NSEC3_HASHING_ERROR; + return KNOT_ECRYPTO; } const uint8_t *in = data->data; @@ -49,12 +49,12 @@ static int nsec3_hash(gnutls_digest_algorithm_t algorithm, int iterations, for (int i = 0; i <= iterations; i++) { result = gnutls_hash(digest, in, in_size); if (result < 0) { - return DNSSEC_NSEC3_HASHING_ERROR; + return KNOT_ECRYPTO; } result = gnutls_hash(digest, salt->data, salt->size); if (result < 0) { - return DNSSEC_NSEC3_HASHING_ERROR; + return KNOT_ECRYPTO; } gnutls_hash_output(digest, hash->data); From 342647c504a7c41f38fd4a841ff40ba76d57d012 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 07:52:35 +0200 Subject: [PATCH 193/675] Replace DNSSEC_SIGN_ERROR with KNOT_ECRYPTO --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/sign/sign.c | 4 ++-- src/libknot/dnssec/tsig.c | 2 +- src/libknot/errcode.h | 1 + src/libknot/error.c | 1 + 6 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 3d2a7b57c9..8de47d8a55 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -42,7 +42,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_EEXIST, "key already present" }, { KNOT_ECRYPTO, "signing initialization error" }, - { DNSSEC_SIGN_ERROR, "signing error" }, + { KNOT_ECRYPTO, "signing error" }, { DNSSEC_INVALID_SIGNATURE, "invalid signature" }, { DNSSEC_INVALID_NSEC3_ALGORITHM, "invalid NSEC3 algorithm" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 2540f4e1c3..b47b40564d 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -54,7 +54,7 @@ enum dnssec_error { KNOT_EEXIST, KNOT_ECRYPTO, - DNSSEC_SIGN_ERROR, + KNOT_ECRYPTO, DNSSEC_INVALID_SIGNATURE, KNOT_EALGORITHM, diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index ed0a36ccec..aca96c5524 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -292,7 +292,7 @@ int dnssec_sign_add(dnssec_sign_ctx_t *ctx, const dnssec_binary_t *data) void *result = vpool_insert(&ctx->buffer, vpool_get_length(&ctx->buffer), data->data, data->size); if (result == NULL) { - return DNSSEC_SIGN_ERROR; + return KNOT_ECRYPTO; } return KNOT_EOK; @@ -325,7 +325,7 @@ int dnssec_sign_write(dnssec_sign_ctx_t *ctx, dnssec_sign_flags_t flags, dnssec_ ctx->sign_algorithm, gnutls_flags, &data, &raw); if (result < 0) { - return DNSSEC_SIGN_ERROR; + return KNOT_ECRYPTO; } dnssec_binary_t bin_raw = binary_from_datum(&raw); diff --git a/src/libknot/dnssec/tsig.c b/src/libknot/dnssec/tsig.c index b86fd37016..f5810ab999 100644 --- a/src/libknot/dnssec/tsig.c +++ b/src/libknot/dnssec/tsig.c @@ -195,7 +195,7 @@ int dnssec_tsig_add(dnssec_tsig_ctx_t *ctx, const dnssec_binary_t *data) int result = gnutls_hmac(ctx->hash, data->data, data->size); if (result != 0) { - return DNSSEC_SIGN_ERROR; + return KNOT_ECRYPTO; } return KNOT_EOK; diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index ed8d0d4da8..30496d4f1a 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -179,6 +179,7 @@ enum knot_error { KNOT_KEY_EEXPORT, KNOT_KEY_EGENERATE, KNOT_EALGORITHM, + KNOT_ECRYPTO, KNOT_ERROR_MAX = -501 }; diff --git a/src/libknot/error.c b/src/libknot/error.c index 5d1285f773..d1b17cb4a0 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -178,6 +178,7 @@ static const struct error errors[] = { { KNOT_KEY_EEXPORT, "failed to export key" }, { KNOT_KEY_EGENERATE, "failed to generate key" }, { KNOT_EALGORITHM, "invalid hash algorithm" }, + { KNOT_ECRYPTO, "crypto operation failed" }, /* Terminator */ { KNOT_ERROR, NULL } From 180c98e6af1fb1cb30c22b8271c953385c818e0f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 07:57:40 +0200 Subject: [PATCH 194/675] Replace DNSSEC_INVALID_SIGNATURE with KNOT_INVALID_SIGNATURE --- src/knot/dnssec/rrset-sign.c | 2 +- src/knot/dnssec/rrset-sign.h | 2 +- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/sign.h | 2 +- src/libknot/dnssec/sign/sign.c | 6 +++--- src/libknot/errcode.h | 1 + src/libknot/error.c | 1 + 8 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/knot/dnssec/rrset-sign.c b/src/knot/dnssec/rrset-sign.c index ff5a24c422..5173e36690 100644 --- a/src/knot/dnssec/rrset-sign.c +++ b/src/knot/dnssec/rrset-sign.c @@ -380,7 +380,7 @@ int knot_check_signature(const knot_rrset_t *covered, if (!(dnssec_ctx->policy->unsafe & UNSAFE_EXPIRED) && is_expired_signature(rrsig, dnssec_ctx->now, refresh)) { - return DNSSEC_INVALID_SIGNATURE; + return KNOT_INVALID_SIGNATURE; } if (skip_crypto) { diff --git a/src/knot/dnssec/rrset-sign.h b/src/knot/dnssec/rrset-sign.h index 4d346a83af..b7ebb83209 100644 --- a/src/knot/dnssec/rrset-sign.h +++ b/src/knot/dnssec/rrset-sign.h @@ -99,7 +99,7 @@ bool knot_synth_rrsig_exists(uint16_t type, const knot_rdataset_t *rrsig_rrs); * \param skip_crypto All RRSIGs in this node have been verified, just check validity. * * \return Error code, KNOT_EOK if successful and the signature is valid. - * \retval KNOT_DNSSEC_EINVALID_SIGNATURE The signature is invalid. + * \retval KNOT_INVALID_SIGNATURE The signature is invalid. */ int knot_check_signature(const knot_rrset_t *covered, const knot_rrset_t *rrsigs, size_t pos, diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 8de47d8a55..c678584bd4 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -43,7 +43,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_ECRYPTO, "signing initialization error" }, { KNOT_ECRYPTO, "signing error" }, - { DNSSEC_INVALID_SIGNATURE, "invalid signature" }, + { KNOT_INVALID_SIGNATURE, "invalid signature" }, { DNSSEC_INVALID_NSEC3_ALGORITHM, "invalid NSEC3 algorithm" }, { KNOT_ECRYPTO, "NSEC3 hashing error" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index b47b40564d..768935eee7 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -55,7 +55,7 @@ enum dnssec_error { KNOT_ECRYPTO, KNOT_ECRYPTO, - DNSSEC_INVALID_SIGNATURE, + KNOT_INVALID_SIGNATURE, KNOT_EALGORITHM, KNOT_ECRYPTO, diff --git a/src/libknot/dnssec/sign.h b/src/libknot/dnssec/sign.h index f1f4f001b4..0654dc465b 100644 --- a/src/libknot/dnssec/sign.h +++ b/src/libknot/dnssec/sign.h @@ -95,7 +95,7 @@ int dnssec_sign_write(dnssec_sign_ctx_t *ctx, dnssec_sign_flags_t flags, * * \return Error code. * \retval KNOT_EOK Validation successful, valid signature. - * \retval DNSSEC_INVALID_SIGNATURE Validation successful, invalid signature. + * \retval KNOT_INVALID_SIGNATURE Validation successful, invalid signature. */ int dnssec_sign_verify(dnssec_sign_ctx_t *ctx, bool sign_cmp, const dnssec_binary_t *signature); diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index aca96c5524..b8ffb2939f 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -148,7 +148,7 @@ static int ecdsa_dnssec_to_x509(dnssec_sign_ctx_t *ctx, size_t int_size = ecdsa_sign_integer_size(ctx); if (dnssec->size != 2 * int_size) { - return DNSSEC_INVALID_SIGNATURE; + return KNOT_INVALID_SIGNATURE; } const dnssec_binary_t value_r = { .size = int_size, .data = dnssec->data }; @@ -345,7 +345,7 @@ int dnssec_sign_verify(dnssec_sign_ctx_t *ctx, bool sign_cmp, const dnssec_binar int ret = dnssec_sign_write(ctx, DNSSEC_SIGN_REPRODUCIBLE, &sign); if (ret == KNOT_EOK) { ret = dnssec_binary_cmp(&sign, signature) - ? DNSSEC_INVALID_SIGNATURE + ? KNOT_INVALID_SIGNATURE : KNOT_EOK; } dnssec_binary_free(&sign); @@ -374,7 +374,7 @@ int dnssec_sign_verify(dnssec_sign_ctx_t *ctx, bool sign_cmp, const dnssec_binar ctx->sign_algorithm, 0, &data, &raw); if (result == GNUTLS_E_PK_SIG_VERIFY_FAILED) { - return DNSSEC_INVALID_SIGNATURE; + return KNOT_INVALID_SIGNATURE; } else if (result < 0) { return KNOT_ERROR; } diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index 30496d4f1a..546f906a3b 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -161,6 +161,7 @@ enum knot_error { KNOT_INVALID_KEY_SIZE, KNOT_INVALID_KEY_ID, KNOT_INVALID_KEY_NAME, + KNOT_INVALID_SIGNATURE, KNOT_NO_PUBLIC_KEY, KNOT_NO_PRIVATE_KEY, KNOT_NO_READY_KEY, diff --git a/src/libknot/error.c b/src/libknot/error.c index d1b17cb4a0..ec71814960 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -160,6 +160,7 @@ static const struct error errors[] = { { KNOT_INVALID_KEY_SIZE, "invalid key size" }, { KNOT_INVALID_KEY_ID, "invalid key ID" }, { KNOT_INVALID_KEY_NAME, "invalid key name" }, + { KNOT_INVALID_SIGNATURE, "invalid signature" }, { KNOT_NO_PUBLIC_KEY, "no public key" }, { KNOT_NO_PRIVATE_KEY, "no private key" }, { KNOT_NO_READY_KEY, "no key ready for submission" }, From 4f55f11b54bb276a88a3787c7fc3e0d654423daf Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 08:05:19 +0200 Subject: [PATCH 195/675] Replace DNSSEC_KEYSTORE_INVALID_CONFIG with KNOT_P11_ECONFIG --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/keystore/pkcs11.c | 2 +- src/libknot/errcode.h | 1 + src/libknot/error.c | 1 + 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index c678584bd4..948a337b6e 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -51,7 +51,7 @@ static const error_message_t ERROR_MESSAGES[] = { { DNSSEC_INVALID_DS_ALGORITHM, "invalid DS algorithm" }, { KNOT_ECRYPTO, "DS hashing error" }, - { DNSSEC_KEYSTORE_INVALID_CONFIG, "invalid KASP keystore configuration" }, + { KNOT_EINVAL, "invalid KASP keystore configuration" }, { DNSSEC_P11_FAILED_TO_LOAD_MODULE, "failed to load PKCS #11 module" }, { DNSSEC_P11_TOO_MANY_MODULES, "too many PKCS #11 modules loaded" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 768935eee7..5926a3d4d9 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -63,7 +63,7 @@ enum dnssec_error { KNOT_EALGORITHM, KNOT_ECRYPTO, - DNSSEC_KEYSTORE_INVALID_CONFIG, + KNOT_EINVAL, DNSSEC_P11_FAILED_TO_LOAD_MODULE, DNSSEC_P11_TOO_MANY_MODULES, diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index 4d22b697c1..b840e112d6 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -78,7 +78,7 @@ static int parse_config(const char *config, char **uri_ptr, char **module_ptr) { const char *space = strchr(config, ' '); if (!space) { - return DNSSEC_KEYSTORE_INVALID_CONFIG; + return KNOT_P11_ECONFIG; } char *url = strndup(config, space - config); diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index 546f906a3b..0f611fbef6 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -181,6 +181,7 @@ enum knot_error { KNOT_KEY_EGENERATE, KNOT_EALGORITHM, KNOT_ECRYPTO, + KNOT_P11_ECONFIG, KNOT_ERROR_MAX = -501 }; diff --git a/src/libknot/error.c b/src/libknot/error.c index ec71814960..3450d58baf 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -180,6 +180,7 @@ static const struct error errors[] = { { KNOT_KEY_EGENERATE, "failed to generate key" }, { KNOT_EALGORITHM, "invalid hash algorithm" }, { KNOT_ECRYPTO, "crypto operation failed" }, + { KNOT_P11_ECONFIG, "invalid PKCS #11 configuration" }, /* Terminator */ { KNOT_ERROR, NULL } From 908454a022ab5572f791edd0df254c5ed7a92eda Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 08:10:55 +0200 Subject: [PATCH 196/675] Replace DNSSEC_P11_FAILED_TO_LOAD_MODULE with KNOT_P11_ELOAD --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/keystore/pkcs11.c | 2 +- src/libknot/dnssec/p11/p11.c | 2 +- src/libknot/errcode.h | 1 + src/libknot/error.c | 1 + 6 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 948a337b6e..90d6db0b61 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -53,7 +53,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_EINVAL, "invalid KASP keystore configuration" }, - { DNSSEC_P11_FAILED_TO_LOAD_MODULE, "failed to load PKCS #11 module" }, + { KNOT_P11_ELOAD, "failed to load PKCS #11 module" }, { DNSSEC_P11_TOO_MANY_MODULES, "too many PKCS #11 modules loaded" }, { DNSSEC_P11_TOKEN_NOT_AVAILABLE, "PKCS #11 token not available" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index 5926a3d4d9..d76e5c37ac 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -65,7 +65,7 @@ enum dnssec_error { KNOT_EINVAL, - DNSSEC_P11_FAILED_TO_LOAD_MODULE, + KNOT_P11_ELOAD, DNSSEC_P11_TOO_MANY_MODULES, DNSSEC_P11_TOKEN_NOT_AVAILABLE, diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index b840e112d6..a6e3c7b14f 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -113,7 +113,7 @@ static int safe_open(const char *config, char **url_ptr) free(module); if (r != GNUTLS_E_SUCCESS) { free(url); - return DNSSEC_P11_FAILED_TO_LOAD_MODULE; + return KNOT_P11_ELOAD; } unsigned int flags = 0; diff --git a/src/libknot/dnssec/p11/p11.c b/src/libknot/dnssec/p11/p11.c index cf2d5093c5..ef7735517f 100644 --- a/src/libknot/dnssec/p11/p11.c +++ b/src/libknot/dnssec/p11/p11.c @@ -56,7 +56,7 @@ int p11_load_module(const char *module) int r = gnutls_pkcs11_add_provider(module, NULL); if (r != GNUTLS_E_SUCCESS) { free(copy); - return DNSSEC_P11_FAILED_TO_LOAD_MODULE; + return KNOT_P11_ELOAD; } pkcs11_modules[pkcs11_modules_count] = copy; diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index 0f611fbef6..af62055354 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -181,6 +181,7 @@ enum knot_error { KNOT_KEY_EGENERATE, KNOT_EALGORITHM, KNOT_ECRYPTO, + KNOT_P11_ELOAD, KNOT_P11_ECONFIG, KNOT_ERROR_MAX = -501 diff --git a/src/libknot/error.c b/src/libknot/error.c index 3450d58baf..af2c622c58 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -180,6 +180,7 @@ static const struct error errors[] = { { KNOT_KEY_EGENERATE, "failed to generate key" }, { KNOT_EALGORITHM, "invalid hash algorithm" }, { KNOT_ECRYPTO, "crypto operation failed" }, + { KNOT_P11_ELOAD, "failed to load PKCS #11 module" }, { KNOT_P11_ECONFIG, "invalid PKCS #11 configuration" }, /* Terminator */ From 3e67ef1226d22b47cf4f52c9b3d475b8e08b8b1e Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 08:12:15 +0200 Subject: [PATCH 197/675] Replace DNSSEC_P11_TOO_MANY_MODULES with KNOT_ERANGE --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/p11/p11.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 90d6db0b61..731b540d33 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -54,7 +54,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_EINVAL, "invalid KASP keystore configuration" }, { KNOT_P11_ELOAD, "failed to load PKCS #11 module" }, - { DNSSEC_P11_TOO_MANY_MODULES, "too many PKCS #11 modules loaded" }, + { KNOT_ERANGE, "too many PKCS #11 modules loaded" }, { DNSSEC_P11_TOKEN_NOT_AVAILABLE, "PKCS #11 token not available" }, { DNSSEC_INVALID_DIGEST_ALGORITHM, "invalid digest algorithm" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index d76e5c37ac..de38473c85 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -66,7 +66,7 @@ enum dnssec_error { KNOT_EINVAL, KNOT_P11_ELOAD, - DNSSEC_P11_TOO_MANY_MODULES, + KNOT_ERANGE, DNSSEC_P11_TOKEN_NOT_AVAILABLE, KNOT_EALGORITHM, diff --git a/src/libknot/dnssec/p11/p11.c b/src/libknot/dnssec/p11/p11.c index ef7735517f..667eb31f46 100644 --- a/src/libknot/dnssec/p11/p11.c +++ b/src/libknot/dnssec/p11/p11.c @@ -45,7 +45,7 @@ int p11_load_module(const char *module) assert(pkcs11_modules_count <= PKCS11_MODULES_MAX); if (pkcs11_modules_count == PKCS11_MODULES_MAX) { - return DNSSEC_P11_TOO_MANY_MODULES; + return KNOT_ERANGE; } char *copy = strdup(module); From 1e8f6a6cd0748e325b4ee9bece67933671bdc47c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 08:14:03 +0200 Subject: [PATCH 198/675] Replace DNSSEC_P11_TOKEN_NOT_AVAILABLE with KNOT_P11_ETOKEN --- src/libknot/dnssec/error.c | 2 +- src/libknot/dnssec/error.h | 2 +- src/libknot/dnssec/keystore/pkcs11.c | 2 +- src/libknot/errcode.h | 1 + src/libknot/error.c | 1 + 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c index 731b540d33..240792f535 100644 --- a/src/libknot/dnssec/error.c +++ b/src/libknot/dnssec/error.c @@ -55,7 +55,7 @@ static const error_message_t ERROR_MESSAGES[] = { { KNOT_P11_ELOAD, "failed to load PKCS #11 module" }, { KNOT_ERANGE, "too many PKCS #11 modules loaded" }, - { DNSSEC_P11_TOKEN_NOT_AVAILABLE, "PKCS #11 token not available" }, + { KNOT_P11_ETOKEN, "PKCS #11 token not available" }, { DNSSEC_INVALID_DIGEST_ALGORITHM, "invalid digest algorithm" }, { KNOT_ECRYPTO, "digest error" }, diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h index de38473c85..684c066f10 100644 --- a/src/libknot/dnssec/error.h +++ b/src/libknot/dnssec/error.h @@ -67,7 +67,7 @@ enum dnssec_error { KNOT_P11_ELOAD, KNOT_ERANGE, - DNSSEC_P11_TOKEN_NOT_AVAILABLE, + KNOT_P11_ETOKEN, KNOT_EALGORITHM, KNOT_ECRYPTO, diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index a6e3c7b14f..45744c0496 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -120,7 +120,7 @@ static int safe_open(const char *config, char **url_ptr) r = gnutls_pkcs11_token_get_flags(url, &flags); if (r != GNUTLS_E_SUCCESS) { free(url); - return DNSSEC_P11_TOKEN_NOT_AVAILABLE; + return KNOT_P11_ETOKEN; } *url_ptr = url; diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index af62055354..afa69f0999 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -182,6 +182,7 @@ enum knot_error { KNOT_EALGORITHM, KNOT_ECRYPTO, KNOT_P11_ELOAD, + KNOT_P11_ETOKEN, KNOT_P11_ECONFIG, KNOT_ERROR_MAX = -501 diff --git a/src/libknot/error.c b/src/libknot/error.c index af2c622c58..5a7237866c 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -181,6 +181,7 @@ static const struct error errors[] = { { KNOT_EALGORITHM, "invalid hash algorithm" }, { KNOT_ECRYPTO, "crypto operation failed" }, { KNOT_P11_ELOAD, "failed to load PKCS #11 module" }, + { KNOT_P11_ETOKEN, "PKCS #11 token not available" }, { KNOT_P11_ECONFIG, "invalid PKCS #11 configuration" }, /* Terminator */ From f6c9be4a3439f178d608dca91e2422e2065e126e Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 08:25:06 +0200 Subject: [PATCH 199/675] Replace dnssec_errno_to_error() with knot_map_errno() --- src/libknot/dnssec/keystore/pkcs8.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/libknot/dnssec/keystore/pkcs8.c b/src/libknot/dnssec/keystore/pkcs8.c index d404c40312..b44dd95df1 100644 --- a/src/libknot/dnssec/keystore/pkcs8.c +++ b/src/libknot/dnssec/keystore/pkcs8.c @@ -52,11 +52,11 @@ static int file_size(int fd, size_t *size) { off_t offset = lseek(fd, 0, SEEK_END); if (offset == -1) { - return dnssec_errno_to_error(errno); + return knot_map_errno(); } if (lseek(fd, 0, SEEK_SET) == -1) { - return dnssec_errno_to_error(errno); + return knot_map_errno(); } assert(offset >= 0); @@ -82,7 +82,7 @@ static int key_open(const char *dir_name, const char *id, int flags, int fd = open(filename, flags, mode); if (fd == -1) { - return dnssec_errno_to_error(errno); + return knot_map_errno(); } *fd_ptr = fd; @@ -136,7 +136,7 @@ static int pkcs8_dir_read(pkcs8_dir_handle_t *handle, const char *id, dnssec_bin ssize_t read_count = read(file, read_pem.data, read_pem.size); if (read_count == -1) { dnssec_binary_free(&read_pem); - return dnssec_errno_to_error(errno); + return knot_map_errno(); } assert(read_count == read_pem.size); @@ -152,7 +152,7 @@ static bool key_is_duplicate(int open_error, pkcs8_dir_handle_t *handle, assert(id); assert(pem); - if (open_error != dnssec_errno_to_error(EEXIST)) { + if (open_error != KNOT_EEXIST) { return false; } @@ -306,7 +306,7 @@ static int pkcs8_generate_key(void *ctx, gnutls_pk_algorithm_t algorithm, ssize_t wrote_count = write(file, pem.data, pem.size); if (wrote_count == -1) { - return dnssec_errno_to_error(errno); + return knot_map_errno(); } assert(wrote_count == pem.size); @@ -358,7 +358,7 @@ static int pkcs8_import_key(void *ctx, const dnssec_binary_t *pem, char **id_ptr ssize_t wrote_count = write(file, pem->data, pem->size); if (wrote_count == -1) { free(id); - return dnssec_errno_to_error(errno); + return knot_map_errno(); } assert(wrote_count == pem->size); @@ -384,7 +384,7 @@ static int pkcs8_remove_key(void *ctx, const char *id) } if (unlink(filename) == -1) { - return dnssec_errno_to_error(errno); + return knot_map_errno(); } return KNOT_EOK; @@ -427,7 +427,7 @@ static int pkcs8_get_private(void *ctx, const char *id, gnutls_privkey_t *key_pt ssize_t read_count = read(file, pem.data, pem.size); if (read_count == -1) { dnssec_binary_free(&pem); - return dnssec_errno_to_error(errno); + return knot_map_errno(); } assert(read_count == pem.size); From 4b54add0f7406529332707583d2c2b7907a85753 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 08:27:07 +0200 Subject: [PATCH 200/675] libknot: remove dnssec/error.{c,h} --- Knot.files | 2 - src/libknot/Makefile.inc | 2 - src/libknot/dnssec/error.c | 76 ------------------------------ src/libknot/dnssec/error.h | 95 -------------------------------------- src/libknot/error.c | 2 - 5 files changed, 177 deletions(-) delete mode 100644 src/libknot/dnssec/error.c delete mode 100644 src/libknot/dnssec/error.h diff --git a/Knot.files b/Knot.files index 540603b748..48b587d9eb 100644 --- a/Knot.files +++ b/Knot.files @@ -443,8 +443,6 @@ src/libknot/dnssec/crypto.h src/libknot/dnssec/digest.c src/libknot/dnssec/digest.h src/libknot/dnssec/dnssec.h -src/libknot/dnssec/error.c -src/libknot/dnssec/error.h src/libknot/dnssec/key.h src/libknot/dnssec/key/algorithm.c src/libknot/dnssec/key/algorithm.h diff --git a/src/libknot/Makefile.inc b/src/libknot/Makefile.inc index 3ab5a8b1f2..6ecda90467 100755 --- a/src/libknot/Makefile.inc +++ b/src/libknot/Makefile.inc @@ -42,7 +42,6 @@ nobase_include_libknot_HEADERS = \ libknot/dnssec/crypto.h \ libknot/dnssec/digest.h \ libknot/dnssec/dnssec.h \ - libknot/dnssec/error.h \ libknot/dnssec/key.h \ libknot/dnssec/keyid.h \ libknot/dnssec/keystore.h \ @@ -100,7 +99,6 @@ libknot_la_SOURCES = \ libknot/dnssec/binary.c \ libknot/dnssec/crypto.c \ libknot/dnssec/digest.c \ - libknot/dnssec/error.c \ libknot/dnssec/key/algorithm.c \ libknot/dnssec/key/algorithm.h \ libknot/dnssec/key/convert.c \ diff --git a/src/libknot/dnssec/error.c b/src/libknot/dnssec/error.c deleted file mode 100644 index 240792f535..0000000000 --- a/src/libknot/dnssec/error.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. and contributors - * SPDX-License-Identifier: GPL-2.0-or-later - * For more information, see - */ - -#include - -#include "libknot/dnssec/error.h" -#include "libknot/dnssec/shared/shared.h" - -typedef struct error_message_t { - int code; - const char *text; -} error_message_t; - -static const error_message_t ERROR_MESSAGES[] = { - { KNOT_EOK, "no error" }, - - { KNOT_ENOMEM, "not enough memory" }, - { KNOT_EINVAL, "invalid argument" }, - { KNOT_ENOENT, "no such file or directory" }, - - { KNOT_ERROR, "unspecified error" }, - { KNOT_ENOTSUP, "not implemented" }, - { KNOT_EMALF, "malformed data" }, - { KNOT_ENOENT, "not found" }, - - { KNOT_KEY_EIMPORT, "PKCS #8 import error" }, - { KNOT_KEY_EEXPORT, "key export error" }, - { KNOT_KEY_EIMPORT, "key import error" }, - { KNOT_KEY_EGENERATE, "key generation error" }, - - { KNOT_INVALID_PUBLIC_KEY, "invalid public key" }, - { DNSSEC_INVALID_PRIVATE_KEY, "invalid private key" }, - { KNOT_INVALID_KEY_ALGORITHM, "invalid key algorithm" }, - { KNOT_INVALID_KEY_SIZE, "invalid key size" }, - { KNOT_INVALID_KEY_ID, "invalid key ID" }, - { KNOT_INVALID_KEY_NAME, "invalid key name" }, - - { KNOT_NO_PUBLIC_KEY, "no public key" }, - { KNOT_NO_PRIVATE_KEY, "no private key" }, - { KNOT_EEXIST, "key already present" }, - - { KNOT_ECRYPTO, "signing initialization error" }, - { KNOT_ECRYPTO, "signing error" }, - { KNOT_INVALID_SIGNATURE, "invalid signature" }, - - { DNSSEC_INVALID_NSEC3_ALGORITHM, "invalid NSEC3 algorithm" }, - { KNOT_ECRYPTO, "NSEC3 hashing error" }, - - { DNSSEC_INVALID_DS_ALGORITHM, "invalid DS algorithm" }, - { KNOT_ECRYPTO, "DS hashing error" }, - - { KNOT_EINVAL, "invalid KASP keystore configuration" }, - - { KNOT_P11_ELOAD, "failed to load PKCS #11 module" }, - { KNOT_ERANGE, "too many PKCS #11 modules loaded" }, - { KNOT_P11_ETOKEN, "PKCS #11 token not available" }, - - { DNSSEC_INVALID_DIGEST_ALGORITHM, "invalid digest algorithm" }, - { KNOT_ECRYPTO, "digest error" }, - - { 0 } -}; - -_public_ -const char *dnssec_strerror(int error) -{ - for (const error_message_t *m = ERROR_MESSAGES; m->text; m++) { - if (m->code == error) { - return m->text; - } - } - - return NULL; -} diff --git a/src/libknot/dnssec/error.h b/src/libknot/dnssec/error.h deleted file mode 100644 index 684c066f10..0000000000 --- a/src/libknot/dnssec/error.h +++ /dev/null @@ -1,95 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. and contributors - * SPDX-License-Identifier: GPL-2.0-or-later - * For more information, see - */ - -/*! - * \file - * - * \addtogroup error - * - * \brief Error codes and error reporting. - * - * The module defines all error codes used in the library, and functions - * to convert the error codes to sensible error strings. - * - * @{ - */ - -#pragma once - -#include - -/*! - * Library error codes. - */ -enum dnssec_error { - KNOT_EOK = 0, - - KNOT_ENOMEM = -ENOMEM, - KNOT_EINVAL = -EINVAL, - KNOT_ENOENT = -ENOENT, - - DNSSEC_ERROR_MIN = -1500, - - KNOT_ERROR = DNSSEC_ERROR_MIN, - KNOT_ENOTSUP, - KNOT_EMALF, - KNOT_ENOENT, - - KNOT_KEY_EIMPORT, - KNOT_KEY_EEXPORT, - KNOT_KEY_EIMPORT, - KNOT_KEY_EGENERATE, - - KNOT_INVALID_PUBLIC_KEY, - DNSSEC_INVALID_PRIVATE_KEY, - KNOT_INVALID_KEY_ALGORITHM, - KNOT_INVALID_KEY_SIZE, - KNOT_INVALID_KEY_ID, - KNOT_INVALID_KEY_NAME, - - KNOT_NO_PUBLIC_KEY, - KNOT_NO_PRIVATE_KEY, - KNOT_EEXIST, - - KNOT_ECRYPTO, - KNOT_ECRYPTO, - KNOT_INVALID_SIGNATURE, - - KNOT_EALGORITHM, - KNOT_ECRYPTO, - - KNOT_EALGORITHM, - KNOT_ECRYPTO, - - KNOT_EINVAL, - - KNOT_P11_ELOAD, - KNOT_ERANGE, - KNOT_P11_ETOKEN, - - KNOT_EALGORITHM, - KNOT_ECRYPTO, - - DNSSEC_ERROR_MAX = -1001 -}; - -/*! - * Translate error code to error message. - * - * \param error Error code. - * - * \return Statically allocated error message string or NULL if unknown. - */ -const char *dnssec_strerror(int error); - -/*! - * Convert errno value to DNSSEC error code. - */ -static inline int dnssec_errno_to_error(int ecode) -{ - return -ecode; -} - -/*! @} */ diff --git a/src/libknot/error.c b/src/libknot/error.c index 5a7237866c..1e454d4a8d 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -235,8 +235,6 @@ const char *knot_strerror(int code) // FALLTHROUGH case KNOT_ERROR_MIN ... KNOT_EOK: msg = lookup_message(code); break; - case DNSSEC_ERROR_MIN ... DNSSEC_ERROR_MAX: - msg = dnssec_strerror(code); break; case MDB_KEYEXIST ... MDB_LAST_ERRCODE: msg = mdb_strerror(code); break; default: From 0b0821dc2e16ac79dfd3abfa6cb584bfe725aff0 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 08:33:21 +0200 Subject: [PATCH 201/675] libknot: remove no longer needed knot_error_from_libdnssec() --- distro/pkg/deb/libknot16.symbols | 1 - src/knot/dnssec/kasp/kasp_zone.c | 6 +++--- src/knot/dnssec/kasp/keystore.c | 6 +++--- src/knot/dnssec/key_records.c | 2 +- src/knot/dnssec/zone-events.c | 4 ++-- src/knot/dnssec/zone-keys.c | 8 +++----- src/knot/dnssec/zone-nsec.c | 2 +- src/knot/zone/backup.c | 4 ++-- src/knot/zone/digest.c | 2 +- src/libknot/error.c | 23 ----------------------- src/libknot/error.h | 11 ----------- src/utils/kdig/kdig_params.c | 2 +- src/utils/keymgr/functions.c | 14 +++++++------- 13 files changed, 24 insertions(+), 61 deletions(-) diff --git a/distro/pkg/deb/libknot16.symbols b/distro/pkg/deb/libknot16.symbols index b1dc19ceae..0e02587b7e 100644 --- a/distro/pkg/deb/libknot16.symbols +++ b/distro/pkg/deb/libknot16.symbols @@ -181,7 +181,6 @@ libknot.so.16 libknot16 #MINVER# knot_edns_set_version@Base 3.5.0 knot_edns_zoneversion_parse@Base 3.5.0 knot_edns_zoneversion_write@Base 3.5.0 - knot_error_from_libdnssec@Base 3.5.0 knot_eth_mtu@Base 3.5.0 knot_eth_name_from_addr@Base 3.5.0 knot_eth_queues@Base 3.5.0 diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index 808a7704ec..9a36e7a8a1 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -64,13 +64,13 @@ static int params2dnskey(const knot_dname_t *dname, key_params_t *params, dnssec_key_t *key = NULL; ret = dnssec_key_new(&key); if (ret != KNOT_EOK) { - return knot_error_from_libdnssec(ret); + return ret; } ret = dnssec_key_set_dname(key, dname); if (ret != KNOT_EOK) { dnssec_key_free(key); - return knot_error_from_libdnssec(ret); + return ret; } dnssec_key_set_algorithm(key, params->algorithm); @@ -78,7 +78,7 @@ static int params2dnskey(const knot_dname_t *dname, key_params_t *params, ret = dnssec_key_set_pubkey(key, ¶ms->public_key); if (ret != KNOT_EOK) { dnssec_key_free(key); - return knot_error_from_libdnssec(ret); + return ret; } ret = dnskey_guess_flags(key, params->keytag); diff --git a/src/knot/dnssec/kasp/keystore.c b/src/knot/dnssec/kasp/keystore.c index 98a255bfeb..f5ac3e2d38 100644 --- a/src/knot/dnssec/kasp/keystore.c +++ b/src/knot/dnssec/kasp/keystore.c @@ -50,7 +50,7 @@ int keystore_load(const char *config, unsigned backend, } if (ret != KNOT_EOK) { free(fixed_config); - return knot_error_from_libdnssec(ret); + return ret; } if (fixed_config == NULL) { dnssec_keystore_deinit(*keystore); @@ -63,7 +63,7 @@ int keystore_load(const char *config, unsigned backend, free(fixed_config); dnssec_keystore_deinit(*keystore); *keystore = NULL; - return knot_error_from_libdnssec(ret); + return ret; } ret = dnssec_keystore_open(*keystore, fixed_config); @@ -71,7 +71,7 @@ int keystore_load(const char *config, unsigned backend, if (ret != KNOT_EOK) { dnssec_keystore_deinit(*keystore); *keystore = NULL; - return knot_error_from_libdnssec(ret); + return ret; } return KNOT_EOK; diff --git a/src/knot/dnssec/key_records.c b/src/knot/dnssec/key_records.c index 2d35493776..7751bdeed5 100644 --- a/src/knot/dnssec/key_records.c +++ b/src/knot/dnssec/key_records.c @@ -183,7 +183,7 @@ int key_records_sign(const zone_key_t *key, key_records_t *r, const kdnssec_ctx_ dnssec_sign_ctx_t *sign_ctx; int ret = dnssec_sign_new(&sign_ctx, key->key); if (ret != KNOT_EOK) { - ret = knot_error_from_libdnssec(ret); + return ret; } if (!knot_rrset_empty(&r->dnskey) && knot_zone_sign_use_key(key, &r->dnskey)) { diff --git a/src/knot/dnssec/zone-events.c b/src/knot/dnssec/zone-events.c index d6accaf701..cc276c9c88 100644 --- a/src/knot/dnssec/zone-events.c +++ b/src/knot/dnssec/zone-events.c @@ -41,13 +41,13 @@ static int generate_salt(dnssec_binary_t *salt, uint16_t length) if (length > 0) { int r = dnssec_binary_alloc(&new_salt, length); if (r != KNOT_EOK) { - return knot_error_from_libdnssec(r); + return r; } r = dnssec_random_binary(&new_salt); if (r != KNOT_EOK) { dnssec_binary_free(&new_salt); - return knot_error_from_libdnssec(r); + return r; } } diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 076804190f..9c1ab2d9c7 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -525,7 +525,6 @@ static int load_private_keys(kdnssec_ctx_t *ctx, zone_keyset_t *keyset) case KNOT_EEXIST: break; default: - ret = knot_error_from_libdnssec(ret); log_zone_error(ctx->zone->dname, "DNSSEC, key %d, failed to load private key (%s)", dnssec_key_get_keytag(key->key), knot_strerror(ret)); @@ -685,7 +684,6 @@ int zone_key_calculate_ds(zone_key_t *for_key, dnssec_key_digest_t digesttype, if (for_key->precomputed_ds.data == NULL || for_key->precomputed_digesttype != digesttype) { dnssec_binary_free(&for_key->precomputed_ds); ret = dnssec_key_create_ds(for_key->key, digesttype, &for_key->precomputed_ds); - ret = knot_error_from_libdnssec(ret); for_key->precomputed_digesttype = digesttype; } @@ -795,18 +793,18 @@ int dnssec_key_from_rdata(dnssec_key_t **key, const knot_dname_t *owner, dnssec_key_t *new_key = NULL; int ret = dnssec_key_new(&new_key); if (ret != KNOT_EOK) { - return knot_error_from_libdnssec(ret); + return ret; } ret = dnssec_key_set_rdata(new_key, &binary_key); if (ret != KNOT_EOK) { dnssec_key_free(new_key); - return knot_error_from_libdnssec(ret); + return ret; } if (owner != NULL) { ret = dnssec_key_set_dname(new_key, owner); if (ret != KNOT_EOK) { dnssec_key_free(new_key); - return knot_error_from_libdnssec(ret); + return ret; } } diff --git a/src/knot/dnssec/zone-nsec.c b/src/knot/dnssec/zone-nsec.c index daaea5a3e1..9badc64196 100644 --- a/src/knot/dnssec/zone-nsec.c +++ b/src/knot/dnssec/zone-nsec.c @@ -62,7 +62,7 @@ int knot_create_nsec3_owner(uint8_t *out, size_t out_size, int ret = dnssec_nsec3_hash(&data, params, &hash); if (ret != KNOT_EOK) { - return knot_error_from_libdnssec(ret); + return ret; } ret = knot_nsec3_hash_to_dname(out, out_size, hash.data, hash.size, zone_apex); diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index 8d1ddaf8f3..7808c9064c 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -222,7 +222,7 @@ static int backup_key(key_params_t *parm, const knot_dname_t *zname, bool restor dnssec_key_t *key = NULL; int ret = dnssec_key_new(&key); if (ret != KNOT_EOK) { - return knot_error_from_libdnssec(ret); + return ret; } dnssec_key_set_algorithm(key, parm->algorithm); @@ -245,7 +245,7 @@ static int backup_key(key_params_t *parm, const knot_dname_t *zname, bool restor } dnssec_key_free(key); - return knot_error_from_libdnssec(ret); + return ret; } static conf_val_t get_zone_policy(conf_t *conf, const knot_dname_t *zone) diff --git a/src/knot/zone/digest.c b/src/knot/zone/digest.c index 6813bca61f..accf7955c5 100644 --- a/src/knot/zone/digest.c +++ b/src/knot/zone/digest.c @@ -109,7 +109,7 @@ int zone_contents_digest(const zone_contents_t *contents, int algorithm, int ret = dnssec_digest_init(algorithm, &ctx.digest_ctx); if (ret != KNOT_EOK) { free(ctx.buf); - return knot_error_from_libdnssec(ret); + return ret; } zone_tree_t *conts = contents->nodes; diff --git a/src/libknot/error.c b/src/libknot/error.c index 1e454d4a8d..a2b3e213f1 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -11,7 +11,6 @@ #include "libknot/attribute.h" #include "libknot/error.h" -#include "libknot/dnssec/error.h" struct error { int code; @@ -202,28 +201,6 @@ static const char *lookup_message(int code) return NULL; } -_public_ -int knot_error_from_libdnssec(int libdnssec_errcode) -{ - switch (libdnssec_errcode) { - case KNOT_ERROR: - return KNOT_ERROR; - case KNOT_EMALF: - return KNOT_EMALF; - case KNOT_ENOENT: - return KNOT_ENOENT; - case KNOT_NO_PUBLIC_KEY: - case KNOT_NO_PRIVATE_KEY: - return KNOT_DNSSEC_ENOKEY; - // EOK, EINVAL, ENOMEM and ENOENT are identical, no need to translate - case KNOT_INVALID_PUBLIC_KEY ... KNOT_INVALID_KEY_NAME: - return libdnssec_errcode - - KNOT_INVALID_PUBLIC_KEY + KNOT_INVALID_PUBLIC_KEY; - default: - return libdnssec_errcode; - } -} - _public_ const char *knot_strerror(int code) { diff --git a/src/libknot/error.h b/src/libknot/error.h index 4358fe9732..070bb7e352 100644 --- a/src/libknot/error.h +++ b/src/libknot/error.h @@ -25,15 +25,4 @@ */ const char *knot_strerror(int code); -/*! - * \brief Translates error code from libdnssec into libknot. - * - * This is just temporary until everything from libdnssec moved to libknot. - * - * \param libdnssec_errcode Error code from libdnssec - * - * \return Error code. - */ -int knot_error_from_libdnssec(int libdnssec_errcode); - /*! @} */ diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index 89de75fe5d..f6ec34a85e 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -1078,7 +1078,7 @@ static int opt_cookie(const char *arg, void *query) int ret = dnssec_random_buffer(q->cc.data, q->cc.len); if (ret != KNOT_EOK) { - return knot_error_from_libdnssec(ret); + return ret; } } diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index c5287ba040..c7a97d2983 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -497,7 +497,7 @@ int keymgr_import_bind(kdnssec_ctx_t *ctx, const char *import_file, bool pub_onl fail: dnssec_key_free(key); free(keyid); - return knot_error_from_libdnssec(ret); + return ret; } static void err_import_key(char *keyid, const char *file) @@ -638,7 +638,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, fail: dnssec_key_free(key); free(keyid); - return knot_error_from_libdnssec(ret); + return ret; } int keymgr_import_pem(kdnssec_ctx_t *ctx, const char *import_file, int argc, char *argv[]) @@ -781,20 +781,20 @@ int keymgr_generate_tsig(const char *tsig_name, const char *alg_name, int bits) int r = dnssec_binary_alloc(&key, bits / CHAR_BIT); if (r != KNOT_EOK) { ERR2("failed to allocate memory"); - return knot_error_from_libdnssec(r); + return r; } r = gnutls_rnd(GNUTLS_RND_KEY, key.data, key.size); if (r != 0) { ERR2("failed to generate secret the key"); - return knot_error_from_libdnssec(r); + return r; } _cleanup_binary_ dnssec_binary_t key_b64 = { 0 }; r = dnssec_binary_to_base64(&key, &key_b64); if (r != KNOT_EOK) { ERR2("failed to convert the key to Base64"); - return knot_error_from_libdnssec(r); + return r; } print_tsig(alg, tsig_name, &key_b64); @@ -1172,7 +1172,7 @@ static int create_and_print_ds(const knot_dname_t *zone_name, _cleanup_binary_ dnssec_binary_t rdata = { 0 }; int r = dnssec_key_create_ds(key, digest, &rdata); if (r != KNOT_EOK) { - return knot_error_from_libdnssec(r); + return r; } return print_ds(zone_name, &rdata); @@ -1210,7 +1210,7 @@ int keymgr_generate_dnskey(const knot_dname_t *dname, const knot_kasp_key_t *key int ret = dnssec_key_get_pubkey(dnskey, &pubkey); if (ret != KNOT_EOK) { free(name); - return knot_error_from_libdnssec(ret); + return ret; } uint8_t *base64_output = NULL; From 83ea33afea954ec9297a71ec6d9e99cbc8b8062f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 08:39:02 +0200 Subject: [PATCH 202/675] libknot: merge dnssec/dnssec.h into libknot/libknot.h --- Knot.files | 1 - src/libknot/Makefile.inc | 1 - src/libknot/dnssec/dnssec.h | 25 ------------------------- src/libknot/libknot.h | 12 ++++++++++++ 4 files changed, 12 insertions(+), 27 deletions(-) delete mode 100644 src/libknot/dnssec/dnssec.h diff --git a/Knot.files b/Knot.files index 48b587d9eb..e2065759cd 100644 --- a/Knot.files +++ b/Knot.files @@ -442,7 +442,6 @@ src/libknot/dnssec/crypto.c src/libknot/dnssec/crypto.h src/libknot/dnssec/digest.c src/libknot/dnssec/digest.h -src/libknot/dnssec/dnssec.h src/libknot/dnssec/key.h src/libknot/dnssec/key/algorithm.c src/libknot/dnssec/key/algorithm.h diff --git a/src/libknot/Makefile.inc b/src/libknot/Makefile.inc index 6ecda90467..b76ecd7674 100755 --- a/src/libknot/Makefile.inc +++ b/src/libknot/Makefile.inc @@ -41,7 +41,6 @@ nobase_include_libknot_HEADERS = \ libknot/dnssec/binary.h \ libknot/dnssec/crypto.h \ libknot/dnssec/digest.h \ - libknot/dnssec/dnssec.h \ libknot/dnssec/key.h \ libknot/dnssec/keyid.h \ libknot/dnssec/keystore.h \ diff --git a/src/libknot/dnssec/dnssec.h b/src/libknot/dnssec/dnssec.h deleted file mode 100644 index 793cd0915b..0000000000 --- a/src/libknot/dnssec/dnssec.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. and contributors - * SPDX-License-Identifier: GPL-2.0-or-later - * For more information, see - */ - -/*! - * \file - * - * Convenient header to include all library modules. - */ - -#pragma once - -#include "libknot/dnssec/binary.h" -#include "libknot/dnssec/crypto.h" -#include "libknot/dnssec/error.h" -#include "libknot/dnssec/key.h" -#include "libknot/dnssec/keyid.h" -#include "libknot/dnssec/keystore.h" -#include "libknot/dnssec/keytag.h" -#include "libknot/dnssec/nsec.h" -#include "libknot/dnssec/pem.h" -#include "libknot/dnssec/random.h" -#include "libknot/dnssec/sign.h" -#include "libknot/dnssec/tsig.h" diff --git a/src/libknot/libknot.h b/src/libknot/libknot.h index 0b84a032c9..ff71b69e03 100644 --- a/src/libknot/libknot.h +++ b/src/libknot/libknot.h @@ -37,6 +37,18 @@ #include "libknot/db/db.h" #include "libknot/db/db_lmdb.h" #include "libknot/db/db_trie.h" +#include "libknot/dnssec/binary.h" +#include "libknot/dnssec/crypto.h" +#include "libknot/dnssec/digest.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/keyid.h" +#include "libknot/dnssec/keystore.h" +#include "libknot/dnssec/keytag.h" +#include "libknot/dnssec/nsec.h" +#include "libknot/dnssec/pem.h" +#include "libknot/dnssec/random.h" +#include "libknot/dnssec/sign.h" +#include "libknot/dnssec/tsig.h" #include "libknot/packet/compr.h" #include "libknot/packet/pkt.h" #include "libknot/packet/rrset-wire.h" From 775929e1103f77871021f34e7ab650a54c86b788 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Oct 2025 08:54:28 +0200 Subject: [PATCH 203/675] Remove no longer existing libknot/dnssec/error.h --- src/knot/dnssec/kasp/keystore.c | 1 - src/knot/dnssec/key_records.c | 1 - src/knot/dnssec/rrset-sign.c | 1 - src/knot/dnssec/zone-events.c | 2 -- src/knot/dnssec/zone-keys.c | 1 - src/knot/dnssec/zone-nsec.c | 1 - src/knot/dnssec/zone-sign.c | 5 ----- src/knot/modules/onlinesign/onlinesign.c | 1 - src/knot/modules/rrl/kru.inc.c | 2 +- src/knot/zone/adjust.c | 1 - src/knot/zone/backup.c | 1 - src/knot/zone/contents.c | 1 - src/knot/zone/semantic-check.c | 2 -- src/libknot/dnssec/binary.c | 2 +- src/libknot/dnssec/digest.h | 2 +- src/libknot/dnssec/key/algorithm.c | 2 +- src/libknot/dnssec/key/convert.c | 2 +- src/libknot/dnssec/key/dnskey.c | 2 +- src/libknot/dnssec/key/dnskey.h | 2 +- src/libknot/dnssec/key/ds.c | 2 +- src/libknot/dnssec/key/key.c | 2 +- src/libknot/dnssec/key/keytag.c | 2 +- src/libknot/dnssec/key/privkey.c | 2 +- src/libknot/dnssec/key/simple.c | 2 +- src/libknot/dnssec/keyid.c | 2 +- src/libknot/dnssec/keystore/keystore.c | 2 +- src/libknot/dnssec/keystore/pkcs11.c | 2 +- src/libknot/dnssec/keystore/pkcs8.c | 2 +- src/libknot/dnssec/nsec/hash.c | 2 +- src/libknot/dnssec/nsec/nsec.c | 2 +- src/libknot/dnssec/p11/p11.c | 2 +- src/libknot/dnssec/pem.c | 2 +- src/libknot/dnssec/random.c | 2 +- src/libknot/dnssec/shared/keyid_gnutls.c | 2 +- src/libknot/dnssec/sign/der.c | 2 +- src/libknot/dnssec/sign/sign.c | 2 +- src/libknot/dnssec/tsig.c | 2 +- src/libknot/quic/quic.c | 2 +- src/libknot/tsig-op.c | 2 +- src/libknot/tsig.c | 2 +- src/utils/common/quic.c | 1 - src/utils/kdig/kdig_params.c | 3 --- src/utils/keymgr/bind_privkey.c | 1 - src/utils/keymgr/functions.c | 1 - src/utils/keymgr/keystore.c | 7 +------ src/utils/knsec3hash/knsec3hash.c | 2 -- tests/contrib/test_strtonum.c | 2 +- tests/libknot/test_dnssec_binary.c | 2 +- tests/libknot/test_dnssec_key.c | 2 +- tests/libknot/test_dnssec_key_algorithm.c | 2 +- tests/libknot/test_dnssec_key_ds.c | 2 +- tests/libknot/test_dnssec_keyid.c | 2 +- tests/libknot/test_dnssec_keystore_pkcs11.c | 2 +- tests/libknot/test_dnssec_keystore_pkcs8.c | 2 +- tests/libknot/test_dnssec_keytag.c | 2 +- tests/libknot/test_dnssec_nsec_hash.c | 2 +- tests/libknot/test_dnssec_random.c | 2 +- tests/libknot/test_dnssec_sign.c | 2 +- tests/libknot/test_dnssec_sign_der.c | 2 +- 59 files changed, 42 insertions(+), 73 deletions(-) diff --git a/src/knot/dnssec/kasp/keystore.c b/src/knot/dnssec/kasp/keystore.c index f5ac3e2d38..fd36869ee8 100644 --- a/src/knot/dnssec/kasp/keystore.c +++ b/src/knot/dnssec/kasp/keystore.c @@ -7,7 +7,6 @@ #include #include -#include "libknot/dnssec/error.h" #include "knot/dnssec/kasp/keystore.h" #include "knot/conf/schema.h" #include "libknot/error.h" diff --git a/src/knot/dnssec/key_records.c b/src/knot/dnssec/key_records.c index 7751bdeed5..89bd692549 100644 --- a/src/knot/dnssec/key_records.c +++ b/src/knot/dnssec/key_records.c @@ -5,7 +5,6 @@ #include "knot/dnssec/key_records.h" -#include "libknot/dnssec/error.h" #include "libknot/dnssec/sign.h" #include "knot/dnssec/rrset-sign.h" #include "knot/dnssec/zone-sign.h" diff --git a/src/knot/dnssec/rrset-sign.c b/src/knot/dnssec/rrset-sign.c index 5173e36690..fe0d437050 100644 --- a/src/knot/dnssec/rrset-sign.c +++ b/src/knot/dnssec/rrset-sign.c @@ -6,7 +6,6 @@ #include #include "contrib/wire_ctx.h" -#include "libknot/dnssec/error.h" #include "knot/dnssec/rrset-sign.h" #include "knot/dnssec/zone-sign.h" #include "knot/zone/serial.h" // DNS uint32 arithmetics diff --git a/src/knot/dnssec/zone-events.c b/src/knot/dnssec/zone-events.c index cc276c9c88..059fa1ef4b 100644 --- a/src/knot/dnssec/zone-events.c +++ b/src/knot/dnssec/zone-events.c @@ -5,8 +5,6 @@ #include -#include "libknot/dnssec/error.h" -#include "libknot/dnssec/random.h" #include "libknot/libknot.h" #include "knot/conf/conf.h" #include "knot/common/dbus.h" diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 9c1ab2d9c7..013ab69396 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -7,7 +7,6 @@ #include #include -#include "libknot/dnssec/error.h" #include "knot/common/log.h" #include "knot/dnssec/zone-keys.h" #include "libknot/libknot.h" diff --git a/src/knot/dnssec/zone-nsec.c b/src/knot/dnssec/zone-nsec.c index 9badc64196..6607da292b 100644 --- a/src/knot/dnssec/zone-nsec.c +++ b/src/knot/dnssec/zone-nsec.c @@ -5,7 +5,6 @@ #include -#include "libknot/dnssec/error.h" #include "libknot/descriptor.h" #include "libknot/rrtype/nsec3.h" #include "libknot/rrtype/soa.h" diff --git a/src/knot/dnssec/zone-sign.c b/src/knot/dnssec/zone-sign.c index 13f236b1c3..c090ab1129 100644 --- a/src/knot/dnssec/zone-sign.c +++ b/src/knot/dnssec/zone-sign.c @@ -7,17 +7,12 @@ #include #include -#include "libknot/dnssec/error.h" -#include "libknot/dnssec/key.h" -#include "libknot/dnssec/keytag.h" -#include "libknot/dnssec/sign.h" #include "knot/common/log.h" #include "knot/dnssec/key-events.h" #include "knot/dnssec/key_records.h" #include "knot/dnssec/rrset-sign.h" #include "knot/dnssec/zone-sign.h" #include "libknot/libknot.h" -#include "libknot/dynarray.h" #include "contrib/wire_ctx.h" typedef struct { diff --git a/src/knot/modules/onlinesign/onlinesign.c b/src/knot/modules/onlinesign/onlinesign.c index e56328011a..7ddce085c7 100644 --- a/src/knot/modules/onlinesign/onlinesign.c +++ b/src/knot/modules/onlinesign/onlinesign.c @@ -8,7 +8,6 @@ #include #include "contrib/string.h" -#include "libknot/dnssec/error.h" #include "knot/include/module.h" #include "knot/modules/onlinesign/nsec_next.h" // Next dependencies force static module! diff --git a/src/knot/modules/rrl/kru.inc.c b/src/knot/modules/rrl/kru.inc.c index 63aff6435f..a05c1e9996 100644 --- a/src/knot/modules/rrl/kru.inc.c +++ b/src/knot/modules/rrl/kru.inc.c @@ -39,7 +39,7 @@ Size (`loads_bits` = log2 length): #include "./kru.h" #include "contrib/macros.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/random.h" typedef uint64_t hash_t; #if USE_AES diff --git a/src/knot/zone/adjust.c b/src/knot/zone/adjust.c index 221bf7499c..c260e2bc07 100644 --- a/src/knot/zone/adjust.c +++ b/src/knot/zone/adjust.c @@ -8,7 +8,6 @@ #include "knot/dnssec/zone-nsec.h" #include "knot/zone/adds_tree.h" #include "knot/zone/measure.h" -#include "libknot/dnssec/error.h" static bool node_non_dnssec_exists(const zone_node_t *node) { diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index 7808c9064c..49f460b3ed 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -28,7 +28,6 @@ #include "knot/server/server.h" #include "knot/zone/backup_dir.h" #include "knot/zone/zonefile.h" -#include "libknot/dnssec/error.h" // Current backup format version for output. Don't decrease it. #define BACKUP_VERSION BACKUP_FORMAT_2 // Starting with release 3.1.0. diff --git a/src/knot/zone/contents.c b/src/knot/zone/contents.c index dbd1fc4838..98c419ad95 100644 --- a/src/knot/zone/contents.c +++ b/src/knot/zone/contents.c @@ -5,7 +5,6 @@ #include -#include "libknot/dnssec/error.h" #include "knot/zone/adds_tree.h" #include "knot/zone/adjust.h" #include "knot/zone/contents.h" diff --git a/src/knot/zone/semantic-check.c b/src/knot/zone/semantic-check.c index beda10a17d..9332d6a7eb 100644 --- a/src/knot/zone/semantic-check.c +++ b/src/knot/zone/semantic-check.c @@ -7,8 +7,6 @@ #include "knot/zone/semantic-check.h" -#include "libknot/dnssec/error.h" -#include "libknot/dnssec/key.h" #include "contrib/string.h" #include "libknot/libknot.h" #include "knot/dnssec/key-events.h" diff --git a/src/libknot/dnssec/binary.c b/src/libknot/dnssec/binary.c index d153461b10..0e41d77e2b 100644 --- a/src/libknot/dnssec/binary.c +++ b/src/libknot/dnssec/binary.c @@ -8,7 +8,7 @@ #include "contrib/base64.h" #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/shared/shared.h" /* -- public API ----------------------------------------------------------- */ diff --git a/src/libknot/dnssec/digest.h b/src/libknot/dnssec/digest.h index d7cdeced6f..4eb1c1cf66 100644 --- a/src/libknot/dnssec/digest.h +++ b/src/libknot/dnssec/digest.h @@ -16,7 +16,7 @@ #pragma once #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" typedef enum { DNSSEC_DIGEST_INVALID = 0, diff --git a/src/libknot/dnssec/key/algorithm.c b/src/libknot/dnssec/key/algorithm.c index 871b5df960..78b7d36281 100644 --- a/src/libknot/dnssec/key/algorithm.c +++ b/src/libknot/dnssec/key/algorithm.c @@ -5,7 +5,7 @@ #include -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/key/algorithm.h" #include "libknot/dnssec/shared/shared.h" diff --git a/src/libknot/dnssec/key/convert.c b/src/libknot/dnssec/key/convert.c index b5352b10b3..f541bad7aa 100644 --- a/src/libknot/dnssec/key/convert.c +++ b/src/libknot/dnssec/key/convert.c @@ -12,7 +12,7 @@ #include "libknot/dnssec/shared/bignum.h" #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/key/algorithm.h" #include "libknot/dnssec/key/dnskey.h" diff --git a/src/libknot/dnssec/key/dnskey.c b/src/libknot/dnssec/key/dnskey.c index 0229d5d0a1..eb33062a7f 100644 --- a/src/libknot/dnssec/key/dnskey.c +++ b/src/libknot/dnssec/key/dnskey.c @@ -4,7 +4,7 @@ */ #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key/dnskey.h" #include "libknot/dnssec/key/convert.h" #include "libknot/dnssec/shared/binary_wire.h" diff --git a/src/libknot/dnssec/key/dnskey.h b/src/libknot/dnssec/key/dnskey.h index 87f601b90d..a46fe3b3b5 100644 --- a/src/libknot/dnssec/key/dnskey.h +++ b/src/libknot/dnssec/key/dnskey.h @@ -8,7 +8,7 @@ #include #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" /*! * DNSKEY RDATA fields offsets. diff --git a/src/libknot/dnssec/key/ds.c b/src/libknot/dnssec/key/ds.c index 52755d6b09..4c15d28a04 100644 --- a/src/libknot/dnssec/key/ds.c +++ b/src/libknot/dnssec/key/ds.c @@ -5,7 +5,7 @@ #include "libknot/dname.h" #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/key/internal.h" #include "libknot/dnssec/shared/shared.h" diff --git a/src/libknot/dnssec/key/key.c b/src/libknot/dnssec/key/key.c index 1d22dde4e4..2141ffbfb3 100644 --- a/src/libknot/dnssec/key/key.c +++ b/src/libknot/dnssec/key/key.c @@ -11,7 +11,7 @@ #include "libknot/dname.h" #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/key/algorithm.h" #include "libknot/dnssec/key/convert.h" diff --git a/src/libknot/dnssec/key/keytag.c b/src/libknot/dnssec/key/keytag.c index 54623c8518..ae6f561737 100644 --- a/src/libknot/dnssec/key/keytag.c +++ b/src/libknot/dnssec/key/keytag.c @@ -8,7 +8,7 @@ #include #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key/dnskey.h" #include "libknot/dnssec/shared/shared.h" diff --git a/src/libknot/dnssec/key/privkey.c b/src/libknot/dnssec/key/privkey.c index 55f9d44448..424957ad67 100644 --- a/src/libknot/dnssec/key/privkey.c +++ b/src/libknot/dnssec/key/privkey.c @@ -7,7 +7,7 @@ #include #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key/algorithm.h" #include "libknot/dnssec/key/convert.h" #include "libknot/dnssec/key/dnskey.h" diff --git a/src/libknot/dnssec/key/simple.c b/src/libknot/dnssec/key/simple.c index 0258c00476..6c6da56639 100644 --- a/src/libknot/dnssec/key/simple.c +++ b/src/libknot/dnssec/key/simple.c @@ -7,7 +7,7 @@ #include #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/key/dnskey.h" #include "libknot/dnssec/key/internal.h" diff --git a/src/libknot/dnssec/keyid.c b/src/libknot/dnssec/keyid.c index 4433f50889..516154d9b1 100644 --- a/src/libknot/dnssec/keyid.c +++ b/src/libknot/dnssec/keyid.c @@ -6,7 +6,7 @@ #include #include -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/keyid.h" #include "libknot/dnssec/shared/shared.h" diff --git a/src/libknot/dnssec/keystore/keystore.c b/src/libknot/dnssec/keystore/keystore.c index 6aa5487575..db37c6a7ee 100644 --- a/src/libknot/dnssec/keystore/keystore.c +++ b/src/libknot/dnssec/keystore/keystore.c @@ -6,7 +6,7 @@ #include #include -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/key/algorithm.h" #include "libknot/dnssec/key/dnskey.h" diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index 45744c0496..55ae985f0b 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -7,7 +7,7 @@ #include #include "contrib/string.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/keyid.h" #include "libknot/dnssec/shared/keyid_gnutls.h" #include "libknot/dnssec/keystore.h" diff --git a/src/libknot/dnssec/keystore/pkcs8.c b/src/libknot/dnssec/keystore/pkcs8.c index b44dd95df1..067f98b6c9 100644 --- a/src/libknot/dnssec/keystore/pkcs8.c +++ b/src/libknot/dnssec/keystore/pkcs8.c @@ -13,7 +13,7 @@ #include "contrib/files.h" #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/keystore.h" #include "libknot/dnssec/keystore/internal.h" #include "libknot/dnssec/pem.h" diff --git a/src/libknot/dnssec/nsec/hash.c b/src/libknot/dnssec/nsec/hash.c index 29d685fd19..39abd1e39c 100644 --- a/src/libknot/dnssec/nsec/hash.c +++ b/src/libknot/dnssec/nsec/hash.c @@ -8,7 +8,7 @@ #include #include -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/nsec.h" #include "libknot/dnssec/shared/shared.h" diff --git a/src/libknot/dnssec/nsec/nsec.c b/src/libknot/dnssec/nsec/nsec.c index 14aee5659a..30da574ac0 100644 --- a/src/libknot/dnssec/nsec/nsec.c +++ b/src/libknot/dnssec/nsec/nsec.c @@ -8,7 +8,7 @@ #include "libknot/dnssec/shared/binary_wire.h" #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" /*! * Free NSEC3 parameters. diff --git a/src/libknot/dnssec/p11/p11.c b/src/libknot/dnssec/p11/p11.c index 667eb31f46..0b878c5346 100644 --- a/src/libknot/dnssec/p11/p11.c +++ b/src/libknot/dnssec/p11/p11.c @@ -9,7 +9,7 @@ #include #include "libknot/dnssec/p11/p11.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #ifdef ENABLE_PKCS11 diff --git a/src/libknot/dnssec/pem.c b/src/libknot/dnssec/pem.c index 3ba5265603..45bb0ddda6 100644 --- a/src/libknot/dnssec/pem.c +++ b/src/libknot/dnssec/pem.c @@ -9,7 +9,7 @@ #include #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/pem.h" #include "libknot/dnssec/shared/shared.h" diff --git a/src/libknot/dnssec/random.c b/src/libknot/dnssec/random.c index 6bab18aba9..5fa284a6ef 100644 --- a/src/libknot/dnssec/random.c +++ b/src/libknot/dnssec/random.c @@ -9,7 +9,7 @@ #include #include -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/random.h" #include "libknot/dnssec/shared/shared.h" diff --git a/src/libknot/dnssec/shared/keyid_gnutls.c b/src/libknot/dnssec/shared/keyid_gnutls.c index a4dc0bb911..efc2e21465 100644 --- a/src/libknot/dnssec/shared/keyid_gnutls.c +++ b/src/libknot/dnssec/shared/keyid_gnutls.c @@ -11,7 +11,7 @@ #include "contrib/string.h" #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/keyid.h" #include "libknot/dnssec/shared/keyid_gnutls.h" #include "libknot/dnssec/shared/shared.h" diff --git a/src/libknot/dnssec/sign/der.c b/src/libknot/dnssec/sign/der.c index b94842d1db..17be362356 100644 --- a/src/libknot/dnssec/sign/der.c +++ b/src/libknot/dnssec/sign/der.c @@ -7,7 +7,7 @@ #include "libknot/dnssec/shared/bignum.h" #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/sign/der.h" #include "libknot/dnssec/shared/binary_wire.h" diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index b8ffb2939f..241b31d0d6 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -12,7 +12,7 @@ #include "contrib/macros.h" #include "contrib/vpool/vpool.h" #include "libknot/dnssec/shared/bignum.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/key/internal.h" #include "libknot/dnssec/shared/shared.h" diff --git a/src/libknot/dnssec/tsig.c b/src/libknot/dnssec/tsig.c index f5810ab999..4e0c3a4541 100644 --- a/src/libknot/dnssec/tsig.c +++ b/src/libknot/dnssec/tsig.c @@ -12,7 +12,7 @@ #include #include "libknot/dname.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/shared/shared.h" #include "libknot/dnssec/tsig.h" diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c index a7ec83c372..a876384248 100644 --- a/src/libknot/quic/quic.c +++ b/src/libknot/quic/quic.c @@ -24,7 +24,7 @@ #include "contrib/sockaddr.h" #include "contrib/ucw/lists.h" #include "libknot/endian.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/random.h" #include "libknot/attribute.h" #include "libknot/endian.h" diff --git a/src/libknot/tsig-op.c b/src/libknot/tsig-op.c index 491b1996f5..5e0f9862d0 100644 --- a/src/libknot/tsig-op.c +++ b/src/libknot/tsig-op.c @@ -8,7 +8,7 @@ #include #include -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/tsig.h" #include "libknot/attribute.h" #include "libknot/tsig-op.h" diff --git a/src/libknot/tsig.c b/src/libknot/tsig.c index 7d9798995f..446b534806 100644 --- a/src/libknot/tsig.c +++ b/src/libknot/tsig.c @@ -8,7 +8,7 @@ #include "contrib/getline.h" #include "contrib/string.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/attribute.h" #include "libknot/errcode.h" #include "libknot/tsig.h" diff --git a/src/utils/common/quic.c b/src/utils/common/quic.c index 31294612cc..525b99723e 100644 --- a/src/utils/common/quic.c +++ b/src/utils/common/quic.c @@ -40,7 +40,6 @@ void quic_params_clean(quic_params_t *params) #include #include "contrib/macros.h" -#include "libknot/dnssec/error.h" #include "libknot/dnssec/random.h" #include "libknot/xdp/tcp_iobuf.h" #include "utils/common/params.h" diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index f6ec34a85e..02eda194a1 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -15,7 +15,6 @@ #include "utils/common/netio.h" #include "utils/common/params.h" #include "utils/common/resolv.h" -#include "libknot/descriptor.h" #include "libknot/libknot.h" #include "contrib/base64.h" #include "contrib/sockaddr.h" @@ -23,8 +22,6 @@ #include "contrib/strtonum.h" #include "contrib/time.h" #include "contrib/ucw/lists.h" -#include "libknot/dnssec/error.h" -#include "libknot/dnssec/random.h" #define PROGRAM_NAME "kdig" diff --git a/src/utils/keymgr/bind_privkey.c b/src/utils/keymgr/bind_privkey.c index 59d8cc589d..b8ca431844 100644 --- a/src/utils/keymgr/bind_privkey.c +++ b/src/utils/keymgr/bind_privkey.c @@ -8,7 +8,6 @@ #include "contrib/ctype.h" #include "contrib/strtonum.h" #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" #include "libknot/dnssec/pem.h" #include "libknot/dnssec/shared/shared.h" #include "utils/keymgr/bind_privkey.h" diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index c7a97d2983..bbb2f8faf1 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -21,7 +21,6 @@ #include "contrib/strtonum.h" #include "contrib/tolower.h" #include "contrib/wire_ctx.h" -#include "libknot/dnssec/error.h" #include "libknot/dnssec/keyid.h" #include "libknot/dnssec/shared/shared.h" #include "knot/dnssec/kasp/policy.h" diff --git a/src/utils/keymgr/keystore.c b/src/utils/keymgr/keystore.c index 43ecfcd941..f81154bd73 100644 --- a/src/utils/keymgr/keystore.c +++ b/src/utils/keymgr/keystore.c @@ -10,13 +10,8 @@ #include "contrib/color.h" #include "contrib/spinlock.h" #include "contrib/time.h" -#include "libknot/dnssec/error.h" -#include "libknot/dnssec/key/algorithm.h" -#include "libknot/dnssec/key/privkey.h" -#include "libknot/dnssec/random.h" +#include "libknot/libknot.h" #include "libknot/dnssec/sample_keys.h" -#include "libknot/dnssec/sign.h" -#include "libknot/errcode.h" #include "knot/conf/conf.h" #include "knot/dnssec/kasp/kasp_zone.h" #include "knot/server/dthreads.h" diff --git a/src/utils/knsec3hash/knsec3hash.c b/src/utils/knsec3hash/knsec3hash.c index ed9aeb2f15..734759ec3b 100644 --- a/src/utils/knsec3hash/knsec3hash.c +++ b/src/utils/knsec3hash/knsec3hash.c @@ -12,8 +12,6 @@ #include "contrib/base32hex.h" #include "contrib/string.h" #include "contrib/strtonum.h" -#include "libknot/dnssec/error.h" -#include "libknot/dnssec/nsec.h" #include "libknot/libknot.h" #include "utils/common/msg.h" #include "utils/common/params.h" diff --git a/tests/contrib/test_strtonum.c b/tests/contrib/test_strtonum.c index 3760317b39..d0f8b9d56d 100644 --- a/tests/contrib/test_strtonum.c +++ b/tests/contrib/test_strtonum.c @@ -9,7 +9,7 @@ #include #include "contrib/strtonum.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/attribute.h" static void test_u8(const char *in, uint8_t expected, int errcode) diff --git a/tests/libknot/test_dnssec_binary.c b/tests/libknot/test_dnssec_binary.c index 70d378b485..477e26aff9 100644 --- a/tests/libknot/test_dnssec_binary.c +++ b/tests/libknot/test_dnssec_binary.c @@ -8,7 +8,7 @@ #include #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" typedef struct test_string { const char *encoded; diff --git a/tests/libknot/test_dnssec_key.c b/tests/libknot/test_dnssec_key.c index efbb092b28..cec804c844 100644 --- a/tests/libknot/test_dnssec_key.c +++ b/tests/libknot/test_dnssec_key.c @@ -8,7 +8,7 @@ #include "libknot/dnssec/binary.h" #include "libknot/dnssec/crypto.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/sample_keys.h" diff --git a/tests/libknot/test_dnssec_key_algorithm.c b/tests/libknot/test_dnssec_key_algorithm.c index 855b9d0873..68e3b000f7 100644 --- a/tests/libknot/test_dnssec_key_algorithm.c +++ b/tests/libknot/test_dnssec_key_algorithm.c @@ -5,7 +5,7 @@ #include -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" static void ok_range(dnssec_key_algorithm_t algo, diff --git a/tests/libknot/test_dnssec_key_ds.c b/tests/libknot/test_dnssec_key_ds.c index 71ef38e2ad..afd25e1146 100644 --- a/tests/libknot/test_dnssec_key_ds.c +++ b/tests/libknot/test_dnssec_key_ds.c @@ -9,7 +9,7 @@ #include #include "libknot/dnssec/crypto.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/sample_keys.h" diff --git a/tests/libknot/test_dnssec_keyid.c b/tests/libknot/test_dnssec_keyid.c index 14aa35e7d3..a61a260b33 100644 --- a/tests/libknot/test_dnssec_keyid.c +++ b/tests/libknot/test_dnssec_keyid.c @@ -7,7 +7,7 @@ #include #include -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/keyid.h" static void test_keyid_is_valid_run(const char *param, bool should_ok) diff --git a/tests/libknot/test_dnssec_keystore_pkcs11.c b/tests/libknot/test_dnssec_keystore_pkcs11.c index aecc338d89..b68082acc6 100644 --- a/tests/libknot/test_dnssec_keystore_pkcs11.c +++ b/tests/libknot/test_dnssec_keystore_pkcs11.c @@ -15,7 +15,7 @@ #include #include "libknot/dnssec/crypto.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/keystore.h" #include "libknot/dnssec/sample_keys.h" #include "libknot/dnssec/sign.h" diff --git a/tests/libknot/test_dnssec_keystore_pkcs8.c b/tests/libknot/test_dnssec_keystore_pkcs8.c index 0613a2d758..6617318866 100644 --- a/tests/libknot/test_dnssec_keystore_pkcs8.c +++ b/tests/libknot/test_dnssec_keystore_pkcs8.c @@ -6,7 +6,7 @@ #include #include -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/keystore.h" diff --git a/tests/libknot/test_dnssec_keytag.c b/tests/libknot/test_dnssec_keytag.c index a794f3fd25..7a19a0cc6d 100644 --- a/tests/libknot/test_dnssec_keytag.c +++ b/tests/libknot/test_dnssec_keytag.c @@ -7,7 +7,7 @@ #include #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/keytag.h" int main(void) diff --git a/tests/libknot/test_dnssec_nsec_hash.c b/tests/libknot/test_dnssec_nsec_hash.c index 99a5f0c9f7..3d4a4b494e 100644 --- a/tests/libknot/test_dnssec_nsec_hash.c +++ b/tests/libknot/test_dnssec_nsec_hash.c @@ -7,7 +7,7 @@ #include #include "libknot/dnssec/crypto.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/nsec.h" static const dnssec_binary_t RDATA = { .size = 9, .data = (uint8_t []) { diff --git a/tests/libknot/test_dnssec_random.c b/tests/libknot/test_dnssec_random.c index b36a84bc2a..e08d4ef57e 100644 --- a/tests/libknot/test_dnssec_random.c +++ b/tests/libknot/test_dnssec_random.c @@ -8,7 +8,7 @@ #include #include "libknot/dnssec/crypto.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/random.h" int check_buffer(void) diff --git a/tests/libknot/test_dnssec_sign.c b/tests/libknot/test_dnssec_sign.c index dbd5a52bea..be60d54a72 100644 --- a/tests/libknot/test_dnssec_sign.c +++ b/tests/libknot/test_dnssec_sign.c @@ -8,7 +8,7 @@ #include "libknot/dnssec/binary.h" #include "libknot/dnssec/crypto.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/sign.h" diff --git a/tests/libknot/test_dnssec_sign_der.c b/tests/libknot/test_dnssec_sign_der.c index 6df533df55..6f36eac8b7 100644 --- a/tests/libknot/test_dnssec_sign_der.c +++ b/tests/libknot/test_dnssec_sign_der.c @@ -10,7 +10,7 @@ #include "libknot/dnssec/shared/bignum.c" #include "libknot/dnssec/binary.h" -#include "libknot/dnssec/error.h" +#include "libknot/errcode.h" #include "libknot/dnssec/sign/der.c" static int binary_eq(const dnssec_binary_t *a, const dnssec_binary_t *b) From 96c2363dfd301efd0b1199ae5d63351093a5af44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Thu, 23 Oct 2025 14:11:25 +0200 Subject: [PATCH 204/675] python/libknot: add documentation for zone-serial-set --- python/libknot/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/python/libknot/README.md b/python/libknot/README.md index efe7adabe5..181693bd83 100644 --- a/python/libknot/README.md +++ b/python/libknot/README.md @@ -162,6 +162,10 @@ Use `@` as `OWNER` if you want to denote `ZONE` itself as the owner. * `zone-stats([ZONE], [SECTION, [ITEM]], [FLAGS="F"])` + `SECTION` stores the module, `ITEM` stores the counter + the `F` flag specifies to include 0 counters in server's response +* `zone-serial-set([ZONE], [FLAGS="F"], [TYPE="+"|"=", DATA])` + + the `F` flag forces serial change, when semantic checks would otherwise fail + + the `TYPE` section controls, whether the serial is *increased* (+) or *set* + (=) to the value provided in `DATA`. #### Configuration From 9d92c56379a459d48657817f3c3861e60eb3416c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 27 Oct 2025 09:10:23 +0100 Subject: [PATCH 205/675] doc: fix typo in operation --- doc/operation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/operation.rst b/doc/operation.rst index 0c20f6a152..8ee919d743 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -228,7 +228,7 @@ command has the same syntax as ``zone-read``. .. WARNING:: If a zone transaction is open, all zone events that modify the zone - (e.g. DNSSEC signing) are blocked until the transaction is eithe committed + (e.g. DNSSEC signing) are blocked until the transaction is either committed or aborted. It is therefore advisable to finish the transaction quickly and commit without delay. From 251fcf53175cca7773c4baa787f6534ed0f35788 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 30 Sep 2025 13:27:44 +0200 Subject: [PATCH 206/675] tests: refactor server configuration routines --- tests-extra/tests/axfr/failover/test.py | 10 +- .../tests/axfr/outdated_master/test.py | 2 +- tests-extra/tests/axfr/persistence/test.py | 3 +- .../tests/axfr/zone-in-journal/test.py | 8 +- tests-extra/tests/axfr/zonemd/test.py | 6 +- tests-extra/tests/basic/nsec/test.py | 3 +- tests-extra/tests/basic/nsec3/test.py | 3 +- .../tests/catalog/generate_add/test.py | 2 - tests-extra/tests/catalog/kill/test.py | 7 +- tests-extra/tests/catalog/many_zones/test.py | 6 +- .../tests/catalog/rapid_updates/test.py | 7 +- .../tests/catalog/update_pairs/test.py | 15 +- tests-extra/tests/ctl/concurrent/test.py | 6 +- tests-extra/tests/ctl/txn_ixfr_zonemd/test.py | 2 +- tests-extra/tests/ddns/additionals/test.py | 5 +- tests-extra/tests/ddns/basic/test.py | 2 +- tests-extra/tests/ddns/empty_zone/test.py | 6 +- tests-extra/tests/ddns/on_slave/test.py | 2 +- tests-extra/tests/ddns/zone_size/test.py | 5 +- tests-extra/tests/ddns/zone_size2/test.py | 9 +- .../tests/dnssec/bare_slave_signing/test.py | 3 +- tests-extra/tests/dnssec/dnskey_sync/test.py | 16 +- tests-extra/tests/dnssec/ds_push/test.py | 15 +- tests-extra/tests/dnssec/ds_query/test.py | 17 +- tests-extra/tests/dnssec/expire/test.py | 2 +- tests-extra/tests/dnssec/expire2/test.py | 2 +- .../tests/dnssec/full_sign_fail/test.py | 4 +- tests-extra/tests/dnssec/import_bind/test.py | 8 +- .../tests/dnssec/incremental_expire/test.py | 4 +- tests-extra/tests/dnssec/ixfr_diff/test.py | 4 +- .../tests/dnssec/key_rollovers/test.py | 24 +- tests-extra/tests/dnssec/keystores/test.py | 6 +- .../tests/dnssec/keytag_conflict/test.py | 4 +- tests-extra/tests/dnssec/ksk_rollover/test.py | 8 +- tests-extra/tests/dnssec/no_resign/test.py | 16 +- tests-extra/tests/dnssec/no_resign2/test.py | 5 +- .../tests/dnssec/nsec3_opt_out/test.py | 4 +- tests-extra/tests/dnssec/nsec3_revert/test.py | 2 +- .../tests/dnssec/nsec3_up_adjust/test.py | 4 +- tests-extra/tests/dnssec/nsec_changes/test.py | 18 +- tests-extra/tests/dnssec/nsec_update/test.py | 8 +- tests-extra/tests/dnssec/offline_ksk/test.py | 16 +- tests-extra/tests/dnssec/offline_ksk2/test.py | 2 +- .../tests/dnssec/on_slave_signing/test.py | 4 +- tests-extra/tests/dnssec/prerefresh/test.py | 2 +- tests-extra/tests/dnssec/reproducible/test.py | 4 +- .../tests/dnssec/shared_alg_roll/test.py | 10 +- .../tests/dnssec/shared_alg_sync/test.py | 7 +- .../tests/dnssec/start_slave_sign/test.py | 11 +- tests-extra/tests/dnssec/validate/test.py | 7 +- .../tests/dnssec/validate_bind/test.py | 2 +- .../tests/dnssec/validate_event/test.py | 5 +- tests-extra/tests/dnssec/zsk_rollover/test.py | 6 +- tests-extra/tests/edns/payload_server/test.py | 20 +- tests-extra/tests/events/flush/test.py | 7 +- tests-extra/tests/events/soa/test.py | 2 +- tests-extra/tests/ixfr/automatic_acl/test.py | 6 +- tests-extra/tests/ixfr/axfr_fallback/test.py | 2 +- tests-extra/tests/ixfr/axfr_style/test.py | 4 +- tests-extra/tests/ixfr/bind_knot/test.py | 4 +- tests-extra/tests/ixfr/from_axfr/test.py | 10 +- .../tests/ixfr/insec_sec_deleg/test.py | 6 +- tests-extra/tests/ixfr/ixfr_merge/test.py | 10 +- tests-extra/tests/ixfr/knot_bind/test.py | 2 +- tests-extra/tests/ixfr/knot_knot/test.py | 10 +- tests-extra/tests/ixfr/master_pin/test.py | 2 +- tests-extra/tests/ixfr/master_pin2/test.py | 8 +- tests-extra/tests/ixfr/one_by_one/test.py | 2 +- tests-extra/tests/ixfr/provide_ixfr/test.py | 4 +- .../tests/ixfr/redundant_ixfr_ignore/test.py | 2 +- tests-extra/tests/ixfr/slow/test.py | 4 +- .../tests/ixfr/zone-in-journal/test.py | 15 +- tests-extra/tests/ixfr/zone_size/test.py | 3 +- tests-extra/tests/journal/ascii_flags/test.py | 2 +- tests-extra/tests/journal/many_nsec3/test.py | 4 +- tests-extra/tests/modules/dnsproxy/test.py | 4 +- tests-extra/tests/modules/noudp/test.py | 3 +- tests-extra/tests/modules/onlinesign/test.py | 4 +- .../modules/onlinesign_rollovers/test.py | 5 +- tests-extra/tests/notify/retry/test.py | 2 +- tests-extra/tests/quic/ddns/test.py | 2 +- tests-extra/tests/quic/xfr/test.py | 8 +- .../tests/records/malformed_rr/test.py | 8 +- tests-extra/tests/redis/basic/test.py | 10 +- tests-extra/tests/tls/ddns/test.py | 2 +- tests-extra/tests/tls/xfr/test.py | 12 +- tests-extra/tests/zone/backup/test.py | 11 +- tests-extra/tests/zone/backup_lock/test.py | 4 +- tests-extra/tests/zone/backup_nosync/test.py | 4 +- tests-extra/tests/zone/difse/test.py | 7 +- tests-extra/tests/zone/difse2all/test.py | 7 +- tests-extra/tests/zone/dname_apex/test.py | 6 +- tests-extra/tests/zone/expire/test.py | 8 +- tests-extra/tests/zone/external_vldt/test.py | 18 +- .../tests/zone/flush_immediate/test.py | 8 +- tests-extra/tests/zone/include_from/test.py | 8 +- tests-extra/tests/zone/load_nothing/test.py | 15 +- tests-extra/tests/zone/max_ttl/test.py | 4 +- tests-extra/tests/zone/refresh_limits/test.py | 12 +- tests-extra/tests/zone/retransfer/test.py | 2 +- tests-extra/tests/zone/reverse/test.py | 3 +- tests-extra/tests/zone/semcheck_soft/test.py | 4 +- tests-extra/tests/zone/serial_modulo/test.py | 10 +- tests-extra/tests/zone/skip/test.py | 10 +- tests-extra/tests/zone/timers/test.py | 2 +- tests-extra/tests/zone/update_delay/test.py | 10 +- tests-extra/tests/zone/zij_reload/test.py | 4 +- tests-extra/tests/zone/zonemd_flush/test.py | 24 +- tests-extra/tests/zone/zonemd_load/test.py | 12 +- tests-extra/tools/dnstest/config.py | 22 + tests-extra/tools/dnstest/server.py | 667 ++++++------------ tests-extra/tools/dnstest/test.py | 6 +- 112 files changed, 608 insertions(+), 828 deletions(-) diff --git a/tests-extra/tests/axfr/failover/test.py b/tests-extra/tests/axfr/failover/test.py index 347128b8d4..4a40ad118a 100644 --- a/tests-extra/tests/axfr/failover/test.py +++ b/tests-extra/tests/axfr/failover/test.py @@ -24,16 +24,16 @@ master2 = t.server("knot") slave = t.server("knot") -# flush zones immediately -for server in [master1, master2, slave]: - slave.zonefile_sync = "0" - t.link([zone], master1, master2) t.link([zone], master1, slave) t.link([zone], master2, slave) slave.journal_db_size = 1024 * 1024 -slave.zones[zone.name].journal_content = "all" +slave.conf_zone(zone).journal_content = "all" + +# flush zones immediately +for server in [master1, master2, slave]: + server.conf_zone(zone).zonefile_sync = "0" t.start() diff --git a/tests-extra/tests/axfr/outdated_master/test.py b/tests-extra/tests/axfr/outdated_master/test.py index 262706c9c1..8f9fec1cf6 100644 --- a/tests-extra/tests/axfr/outdated_master/test.py +++ b/tests-extra/tests/axfr/outdated_master/test.py @@ -13,7 +13,7 @@ t.link(zones, master, slave) -master.zonefile_sync = -1 +master.conf_zone(zones).zonefile_sync = -1 t.start() serial = slave.zones_wait(zones) diff --git a/tests-extra/tests/axfr/persistence/test.py b/tests-extra/tests/axfr/persistence/test.py index 307aa166b6..5c07cc1a14 100644 --- a/tests-extra/tests/axfr/persistence/test.py +++ b/tests-extra/tests/axfr/persistence/test.py @@ -14,9 +14,10 @@ master = t.server("knot") slave = t.server("knot") -slave.zonefile_sync = 24 * 60 * 60 t.link([zone], master, slave) +slave.conf_zone(zone).zonefile_sync = 24 * 60 * 60 + t.start() # verify zone bootstrap diff --git a/tests-extra/tests/axfr/zone-in-journal/test.py b/tests-extra/tests/axfr/zone-in-journal/test.py index 3283134c56..98f5593c8d 100644 --- a/tests-extra/tests/axfr/zone-in-journal/test.py +++ b/tests-extra/tests/axfr/zone-in-journal/test.py @@ -11,9 +11,11 @@ zone = t.zone("example.com.") -t.link(zone, master, slave, journal_content="all") -slave.zonefile_sync = "-1" -slave.zonefile_load = "none" +t.link(zone, master, slave) + +slave.conf_zone(zone).journal_content = "all" +slave.conf_zone(zone).zonefile_sync = "-1" +slave.conf_zone(zone).zonefile_load = "none" t.start() diff --git a/tests-extra/tests/axfr/zonemd/test.py b/tests-extra/tests/axfr/zonemd/test.py index 046bf46953..1da799ef9e 100644 --- a/tests-extra/tests/axfr/zonemd/test.py +++ b/tests-extra/tests/axfr/zonemd/test.py @@ -15,9 +15,9 @@ slave.dnssec(zone).enable = True -master.zonemd_verify = True -slave.zonemd_verify = True -slave.zonemd_generate = random.choice(["zonemd-sha384", "zonemd-sha512"]) +master.conf_zone(zone).zonemd_verify = True +slave.conf_zone(zone).zonemd_verify = True +slave.conf_zone(zone).zonemd_generate = random.choice(["zonemd-sha384", "zonemd-sha512"]) t.start() diff --git a/tests-extra/tests/basic/nsec/test.py b/tests-extra/tests/basic/nsec/test.py index e333d26929..f3ddeb0b95 100644 --- a/tests-extra/tests/basic/nsec/test.py +++ b/tests-extra/tests/basic/nsec/test.py @@ -8,13 +8,14 @@ knot = t.server("knot") knot.DIG_TIMEOUT = 2 -knot.tcp_reuseport = True bind = t.server("bind") zone = t.zone("example.", "example.zone.nsec", storage=".") t.link(zone, knot) t.link(zone, bind) +knot.conf_srv().tcp_reuseport = True + t.start() # B1. Answer. diff --git a/tests-extra/tests/basic/nsec3/test.py b/tests-extra/tests/basic/nsec3/test.py index 0dd1be56b3..a645b9b994 100644 --- a/tests-extra/tests/basic/nsec3/test.py +++ b/tests-extra/tests/basic/nsec3/test.py @@ -8,13 +8,14 @@ knot = t.server("knot") knot.DIG_TIMEOUT = 2 -knot.tcp_reuseport = True bind = t.server("bind") zone = t.zone("example.", "example.zone.nsec3", storage=".") t.link(zone, knot) t.link(zone, bind) +knot.conf_srv().tcp_reuseport = True + t.start() knot.zone_wait(zone) bind.zone_wait(zone) diff --git a/tests-extra/tests/catalog/generate_add/test.py b/tests-extra/tests/catalog/generate_add/test.py index 143a9f9499..a43eb4c3b6 100644 --- a/tests-extra/tests/catalog/generate_add/test.py +++ b/tests-extra/tests/catalog/generate_add/test.py @@ -32,8 +32,6 @@ def add_catalog(t, master, slave): master = t.server("knot") slave = t.server("knot") -master.zonefile_sync = "0" # Not needed, just to ensure catalog with up-to-date zone file. - (cat0, memb0) = add_catalog(t, master, slave) t.start() diff --git a/tests-extra/tests/catalog/kill/test.py b/tests-extra/tests/catalog/kill/test.py index c546c62e67..f145c6895f 100644 --- a/tests-extra/tests/catalog/kill/test.py +++ b/tests-extra/tests/catalog/kill/test.py @@ -17,13 +17,14 @@ master.cat_interpret(catz) -master.zones[catz[0].name].journal_content = "all" +master.conf_zone(catz).journal_content = "all" master.dnssec(stuckzone).enable = True master.dnssec(stuckzone).single_type_signing = True -master.dnssec(stuckzone).ds_push = stuck_parent master.dnssec(stuckzone).propagation_delay = 1 -master.tcp_remote_io_timeout = 40000 +master.conf_zone(stuckzone).ds_push = [ stuck_parent ] + +master.conf_srv().tcp_remote_io_timeout = 40000 master.gen_confile() master.key_gen(stuckzone[0].name, ksk="true", zsk="true", active="+0") diff --git a/tests-extra/tests/catalog/many_zones/test.py b/tests-extra/tests/catalog/many_zones/test.py index 504bbdd7f7..6f685430ec 100644 --- a/tests-extra/tests/catalog/many_zones/test.py +++ b/tests-extra/tests/catalog/many_zones/test.py @@ -28,12 +28,12 @@ slave.cat_interpret(cz) slave.dnssec(catz[0]).enable = DNSSEC -slave.dnssec(catz[0]).alg = "ECDSAP256SHA256" -slave.zones[catz[0].name].journal_content = "all" +slave.dnssec(catz[0]).algorithm = "ECDSAP256SHA256" +slave.conf_zone(catz).journal_content = "all" slave.journal_db_size = 200 * 1024 * 1024 if master.valgrind: - master.tcp_idle_timeout = 15000 + master.conf_srv().tcp_idle_timeout = 15000 t.start() diff --git a/tests-extra/tests/catalog/rapid_updates/test.py b/tests-extra/tests/catalog/rapid_updates/test.py index 17924c09a7..da508aa4c9 100644 --- a/tests-extra/tests/catalog/rapid_updates/test.py +++ b/tests-extra/tests/catalog/rapid_updates/test.py @@ -17,15 +17,14 @@ t = Test(stress=False) knot = t.server("knot") - -if knot.valgrind: - knot.semantic_check = False - catz = t.zone("catalog1.", storage=".") t.link(catz, knot) knot.cat_interpret(catz) +if knot.valgrind: + knot.conf_zone(catz).semantic_checks = False + os.mkdir(knot.dir + "/catalog") t.start() diff --git a/tests-extra/tests/catalog/update_pairs/test.py b/tests-extra/tests/catalog/update_pairs/test.py index 3bddc4ed25..b4626ade9e 100644 --- a/tests-extra/tests/catalog/update_pairs/test.py +++ b/tests-extra/tests/catalog/update_pairs/test.py @@ -39,18 +39,19 @@ def check_catalog_db(server, memb_name): t = Test() knot = t.server("knot") -knot.bg_workers = 4 - -knot.semantic_check = False catz = t.zone("catalog1.", storage=".") rzone = t.zone(".") # to slow down background workers rzone[0].update_rnd() # it needs to be larger, slower -t.link(catz, knot, journal_content = "none") -t.link(rzone, knot, journal_content = "none") +t.link(catz, knot) +t.link(rzone, knot) knot.cat_interpret(catz) +knot.conf_srv().background_workers = 4 +knot.conf_zone(catz + rzone).journal_content = "none" +knot.conf_zone(catz + rzone).semantic_checks = False + catalog_dir = os.path.join(knot.dir, "catalog") os.mkdir(catalog_dir) for zf in glob.glob(t.data_dir + "/*.zone"): @@ -62,8 +63,8 @@ def check_catalog_db(server, memb_name): knot.dnssec(z).signing_threads = "2" if not knot.valgrind: # it would be too slow with valgrind knot.dnssec(z).nsec3 = True - knot.dnssec(z).nsec3_iters = "65000" - knot.dnssec(z).alg = "rsasha512" + knot.dnssec(z).nsec3_iterations = "65000" + knot.dnssec(z).algorithm = "rsasha512" knot.dnssec(z).zsk_size = "4096" # Whether to test a property change instead of add/del. diff --git a/tests-extra/tests/ctl/concurrent/test.py b/tests-extra/tests/ctl/concurrent/test.py index 8193a82ae4..89b5964ef5 100644 --- a/tests-extra/tests/ctl/concurrent/test.py +++ b/tests-extra/tests/ctl/concurrent/test.py @@ -136,9 +136,9 @@ def run_thr(fun, server, zone_name): master.dnssec(z).nsec3 = True for s in [ master, slave ]: - s.bg_workers = 3 - s.udp_workers = 1 - s.tcp_workers = 1 + s.conf_srv().background_workers = 3 + s.conf_srv().udp_workers = 1 + s.conf_srv().tcp_workers = 1 t.start() slave.zones_wait(zones) diff --git a/tests-extra/tests/ctl/txn_ixfr_zonemd/test.py b/tests-extra/tests/ctl/txn_ixfr_zonemd/test.py index 461233d723..1d2122770b 100644 --- a/tests-extra/tests/ctl/txn_ixfr_zonemd/test.py +++ b/tests-extra/tests/ctl/txn_ixfr_zonemd/test.py @@ -15,7 +15,7 @@ t.link(zones, master, slave, ixfr=True) -slave.zonemd_generate = "zonemd-sha512" +slave.conf_zone(zones).zonemd_generate = "zonemd-sha512" t.start() diff --git a/tests-extra/tests/ddns/additionals/test.py b/tests-extra/tests/ddns/additionals/test.py index 87ea5e2205..9b51de109e 100644 --- a/tests-extra/tests/ddns/additionals/test.py +++ b/tests-extra/tests/ddns/additionals/test.py @@ -57,7 +57,10 @@ def rnd_digs(zonename, server, count): master = t.server("knot") zones = t.zone("example.") -t.link(zones, master, journal_content="all") + +t.link(zones, master) + +master.conf_zone(zones).journal_content = "all" t.start() diff --git a/tests-extra/tests/ddns/basic/test.py b/tests-extra/tests/ddns/basic/test.py index 367eea2d05..8d6fe63c95 100644 --- a/tests-extra/tests/ddns/basic/test.py +++ b/tests-extra/tests/ddns/basic/test.py @@ -710,7 +710,7 @@ def do_refusal_tests(master, zone, dnssec=False): t.link(zone, master_nsec3, ddns=True) master_nsec3.dnssec(zone).enable = True master_nsec3.dnssec(zone).nsec3 = True -master_nsec3.dnssec(zone).nsec3_salt_len = 8 +master_nsec3.dnssec(zone).nsec3_salt_length = 8 master_nsec3.dnssec(zone).nsec3_opt_out = (random.random() < 0.5) t.start() diff --git a/tests-extra/tests/ddns/empty_zone/test.py b/tests-extra/tests/ddns/empty_zone/test.py index c53707aa29..343f3fd74a 100644 --- a/tests-extra/tests/ddns/empty_zone/test.py +++ b/tests-extra/tests/ddns/empty_zone/test.py @@ -19,11 +19,11 @@ master.dnssec(zone).enable = True if random.choice([False, True]): - master.zones[ZONE].journal_content = "all" + master.conf_zone(zone).journal_content = "all" if random.choice([False, True]): - master.zonemd_generate = "zonemd-sha512" - slave.zonemd_verify = True + master.conf_zone(zone).zonemd_generate = "zonemd-sha512" + slave.conf_zone(zone).zonemd_verify = True t.start() diff --git a/tests-extra/tests/ddns/on_slave/test.py b/tests-extra/tests/ddns/on_slave/test.py index 44ef87a3c3..d7faebe0d1 100644 --- a/tests-extra/tests/ddns/on_slave/test.py +++ b/tests-extra/tests/ddns/on_slave/test.py @@ -15,7 +15,7 @@ t.link(zone, master, slave, ddns=True) slave.dnssec(zone).enable = True -slave.ddns_master = "" +slave.conf_zone(zone).ddns_master = "" t.start() diff --git a/tests-extra/tests/ddns/zone_size/test.py b/tests-extra/tests/ddns/zone_size/test.py index ec608e1bdb..08f7dc68a2 100644 --- a/tests-extra/tests/ddns/zone_size/test.py +++ b/tests-extra/tests/ddns/zone_size/test.py @@ -8,9 +8,10 @@ master = t.server("knot") zone = t.zone("example.com.") -master.zone_size_limit = 500 - t.link(zone, master, ddns=True) + +master.conf_zone(zone).zone_max_size = 500 + t.start() master.zones_wait(zone) diff --git a/tests-extra/tests/ddns/zone_size2/test.py b/tests-extra/tests/ddns/zone_size2/test.py index 362cc68970..e02a572f90 100644 --- a/tests-extra/tests/ddns/zone_size2/test.py +++ b/tests-extra/tests/ddns/zone_size2/test.py @@ -10,9 +10,10 @@ master = t.server("knot") zone = t.zone("example.com.") -master.zone_size_limit = 5000 - t.link(zone, master, ddns=True) + +master.conf_zone(zone).zone_max_size = 5000 + t.start() master.zones_wait(zone) @@ -36,7 +37,7 @@ # Step 2. Check possibly dead pointer in additionals_tree (server would crash). if next_step == 2: - master.zone_size_limit = 10000 + master.conf_zone(zone).zone_max_size = 10000 master.gen_confile() master.reload() @@ -51,7 +52,7 @@ soa1 = resp.soa_serial() master.stop() - master.zone_size_limit = 10000 + master.conf_zone(zone).zone_max_size = 10000 master.gen_confile() master.start() # let the changesets from journal apply master.zones_wait(zone) diff --git a/tests-extra/tests/dnssec/bare_slave_signing/test.py b/tests-extra/tests/dnssec/bare_slave_signing/test.py index 501a9db311..dd48120e4c 100644 --- a/tests-extra/tests/dnssec/bare_slave_signing/test.py +++ b/tests-extra/tests/dnssec/bare_slave_signing/test.py @@ -10,9 +10,10 @@ master = t.server("knot") slave = t.server("knot") -slave.zonefile_sync = "-1" zone = t.zone_rnd(1, dnssec=False) t.link(zone, master, slave) + +slave.conf_zone(zone).zonefile_sync = "-1" slave.dnssec(zone).enable = True t.start() diff --git a/tests-extra/tests/dnssec/dnskey_sync/test.py b/tests-extra/tests/dnssec/dnskey_sync/test.py index 412d4d29a6..b438799ab6 100644 --- a/tests-extra/tests/dnssec/dnskey_sync/test.py +++ b/tests-extra/tests/dnssec/dnskey_sync/test.py @@ -68,26 +68,26 @@ def check_same_dnskey(server1, server2, server3, tst, tries=20): def configure_dnssec(server1, master, server2, server3, roll): t.link(zone, master, server1, ddns=True) - server1.tcp_remote_io_timeout = 1500 + server1.conf_srv().tcp_remote_io_timeout = 1500 if DNSKEY_MASTER < 2: - server1.ddns_master = "" + server1.conf_zone(zone).ddns_master = "" if DNSKEY_MASTER > 0: - server1.ixfr_benevolent = True + server1.conf_zone(list(server1.zones.keys())).ixfr_benevolent = True server_mod = int(server1.name[-1]) - 2 server1.dnssec(zone).enable = True server1.dnssec(zone).single_type_signing = (roll == 2) server1.dnssec(zone).propagation_delay = 4 - server1.dnssec(zone).ksk_sbm_timeout = 4 - server1.dnssec(zone).dnskey_mgmt = "incremental" + server1.conf_ss("submission", zone).timeout = 4 + server1.dnssec(zone).dnskey_management = "incremental" server1.dnssec(zone).delete_delay = 4 - server1.dnssec(zone).cds_publish = ("always" if CDS else "none") + server1.dnssec(zone).cds_cdnskey_publish = ("always" if CDS else "none") server1.dnssec(zone).keytag_modulo = "%d/3" % server_mod if DNSKEY_MASTER == 1: - server1.dnssec(zone).dnskey_sync = [ master ] + server1.conf_ss("dnskey-sync", zone).remote = [ master ] else: - server1.dnssec(zone).dnskey_sync = [ server2, server3 ] if SIGNERS3 else [ server2 ] + server1.conf_ss("dnskey-sync", zone).remote = [ server2, server3 ] if SIGNERS3 else [ server2 ] t = Test() diff --git a/tests-extra/tests/dnssec/ds_push/test.py b/tests-extra/tests/dnssec/ds_push/test.py index 66514c0036..a252e33db4 100644 --- a/tests-extra/tests/dnssec/ds_push/test.py +++ b/tests-extra/tests/dnssec/ds_push/test.py @@ -112,20 +112,21 @@ def watch_ksk_rollover(t, server, zone, before_keys, after_keys, total_keys, des child_zone = t.zone(ZONE, file_name=child_zf) t.link(child_zone, child) -child.zonefile_sync = 24 * 60 * 60 +child.conf_zone(child_zone).zonefile_sync = 24 * 60 * 60 child.dnssec(child_zone).enable = True child.dnssec(child_zone).manual = False -child.dnssec(child_zone).alg = "ECDSAP256SHA256" +child.dnssec(child_zone).algorithm = "ECDSAP256SHA256" child.dnssec(child_zone).dnskey_ttl = 2 child.dnssec(child_zone).zsk_lifetime = 99999 child.dnssec(child_zone).ksk_lifetime = 300 # this can be possibly left also infinity child.dnssec(child_zone).propagation_delay = 4 -child.dnssec(child_zone).ksk_sbm_check = [ parent ] -child.dnssec(child_zone).ksk_sbm_check_interval = 2 -child.dnssec(child_zone).ds_push = parent child.dnssec(child_zone).ksk_shared = True -child.dnssec(child_zone).cds_publish = "always" +child.dnssec(child_zone).cds_cdnskey_publish = "always" + +child.conf_zone(child_zone).ds_push = [ parent ] +child.conf_ss("submission", child_zone).parent = [ parent ] +child.conf_ss("submission", child_zone).check_interval = 2 #t.start() t.generate_conf() @@ -144,7 +145,7 @@ def watch_ksk_rollover(t, server, zone, before_keys, after_keys, total_keys, des if resp.resp.answer[0].ttl != child.dnssec(child_zone).dnskey_ttl: set_err("DS TTL") -child.dnssec(child_zone).ds_push = "" # empty list [] +child.conf_zone(child_zone).ds_push = [ ] child.gen_confile() child.reload() child.ctl("zone-key-rollover %s ksk" % child_zone[0].name) diff --git a/tests-extra/tests/dnssec/ds_query/test.py b/tests-extra/tests/dnssec/ds_query/test.py index 651d677f02..0a37e418bc 100644 --- a/tests-extra/tests/dnssec/ds_query/test.py +++ b/tests-extra/tests/dnssec/ds_query/test.py @@ -58,7 +58,7 @@ def wait_for_count(t, server, rrtype, count, timeout): if rtime > timeout: break -t = Test() +t = Test(tsig=False) parent = t.server("knot") parent_zone = t.zone("com.", storage=".") @@ -66,8 +66,9 @@ def wait_for_count(t, server, rrtype, count, timeout): #parent.dnssec(parent_zone).enable = True +CHILDZ = "example.com." child = t.server("knot") -child_zone = t.zone("example.com.", storage=".") +child_zone = t.zone(CHILDZ, storage=".") t.link(child_zone, child) def cds_submission(): @@ -77,16 +78,16 @@ def cds_submission(): up.add(ZONE, 7, "DS", cds_rdata) up.send("NOERROR") -child.zonefile_sync = 24 * 60 * 60 +child.conf_zone(child_zone).zonefile_sync = 24 * 60 * 60 child.dnssec(child_zone).enable = True child.dnssec(child_zone).manual = False -child.dnssec(child_zone).alg = "ECDSAP384SHA384" +child.dnssec(child_zone).algorithm = "ECDSAP384SHA384" child.dnssec(child_zone).dnskey_ttl = 2 child.dnssec(child_zone).zsk_lifetime = 99999 child.dnssec(child_zone).ksk_lifetime = 9999 child.dnssec(child_zone).propagation_delay = 4 -child.dnssec(child_zone).ksk_sbm_check_interval = 2 +child.conf_ss("submission", child_zone).check_interval = 2 # parameters ZONE = "example.com." @@ -96,7 +97,7 @@ def cds_submission(): cds_submission() -child.dnssec(child_zone).ksk_sbm_check = [ parent ] +child.conf_ss("submission", child_zone).parent = [ parent ] child.dnssec(child_zone).ksk_lifetime = 13 child.gen_confile() @@ -105,7 +106,7 @@ def cds_submission(): wait_for_count(t, child, "DNSKEY", 3, 20) # initiation of KSK rollover means the initial submission was successful check_zone(child, child_zone, 3, 2, 0, 1, "KSK rollover start") -child.dnssec(child_zone).ksk_sbm_check = [ ] +child.conf_ss("submission", child_zone).parent = [ ] child.dnssec(child_zone).ksk_lifetime = 150 child.gen_confile() @@ -115,7 +116,7 @@ def cds_submission(): cds_submission() t.sleep(1) -child.dnssec(child_zone).ksk_sbm_check = [ parent ] +child.conf_ss("submission", child_zone).parent = [ parent ] child.gen_confile() child.reload() diff --git a/tests-extra/tests/dnssec/expire/test.py b/tests-extra/tests/dnssec/expire/test.py index 93e2ea5361..2171c20dbb 100644 --- a/tests-extra/tests/dnssec/expire/test.py +++ b/tests-extra/tests/dnssec/expire/test.py @@ -17,7 +17,7 @@ master.dnssec(z).enable = True master.dnssec(z).rrsig_lifetime = 10 master.dnssec(z).rrsig_refresh = 1 - master.dnssec(z).rrsig_prerefresh = 1 + master.dnssec(z).rrsig_pre_refresh = 1 t.start() diff --git a/tests-extra/tests/dnssec/expire2/test.py b/tests-extra/tests/dnssec/expire2/test.py index f4bcff6723..926e33d050 100644 --- a/tests-extra/tests/dnssec/expire2/test.py +++ b/tests-extra/tests/dnssec/expire2/test.py @@ -17,7 +17,7 @@ master.dnssec(z).enable = True master.dnssec(z).rrsig_lifetime = 40 master.dnssec(z).rrsig_refresh = 5 - master.dnssec(z).rrsig_prerefresh = 0 + master.dnssec(z).rrsig_pre_refresh = 0 master.dnssec(z).propagation_delay = 0 def send_ddns(server, zone, data): diff --git a/tests-extra/tests/dnssec/full_sign_fail/test.py b/tests-extra/tests/dnssec/full_sign_fail/test.py index b8007d5a8c..879da141d8 100644 --- a/tests-extra/tests/dnssec/full_sign_fail/test.py +++ b/tests-extra/tests/dnssec/full_sign_fail/test.py @@ -16,9 +16,9 @@ server.dnssec(z).enable = True server.dnssec(z).rrsig_lifetime = 20 server.dnssec(z).rrsig_refresh = 10 - server.dnssec(z).rrsig_prerefresh = 4 + server.dnssec(z).rrsig_pre_refresh = 4 -server.journal_max_usage = 128*1024 +server.conf_zone(zone).journal_max_usage = 128*1024 t.start() diff --git a/tests-extra/tests/dnssec/import_bind/test.py b/tests-extra/tests/dnssec/import_bind/test.py index da5c39bd42..0107b29e52 100644 --- a/tests-extra/tests/dnssec/import_bind/test.py +++ b/tests-extra/tests/dnssec/import_bind/test.py @@ -73,8 +73,8 @@ def knot_dnskey_checks(t, msg, zones, timeout): same_dnskey_count(t, bind, knot, knot.zones[z.name], i, msg, timeout) def clone_policy(zone): - knot.zones[zone.name].dnssec = copy.copy(bind.zones[zone.name].dnssec) - knot.zones[zone.name].dnssec.ksk_lifetime -= 2 * int(knot.zones[zone.name].dnssec.dnskey_ttl) + knot.conf["policy"][zone.name] = copy.copy(bind.conf["policy"][zone.name]) + knot.dnssec(zone).ksk_lifetime -= 2 * int(knot.dnssec(zone).dnskey_ttl) def knot_import_zone(zone): if zone.name not in knot.zones: @@ -95,8 +95,8 @@ def knot_import_zone(zone): bind.dnssec(z).ksk_lifetime = 40 bind.dnssec(z).rrsig_lifetime = "8" bind.dnssec(z).rrsig_refresh = "4" - bind.dnssec(z).rrsig_prerefresh = "1" - bind.dnssec(z).ksk_sbm_check_interval = 1 + bind.dnssec(z).rrsig_pre_refresh = "1" + bind.conf["submission"][z.name] = { "check-interval": 1 } t.generate_conf() bind.start() diff --git a/tests-extra/tests/dnssec/incremental_expire/test.py b/tests-extra/tests/dnssec/incremental_expire/test.py index 462a7e5341..95e16bbf51 100644 --- a/tests-extra/tests/dnssec/incremental_expire/test.py +++ b/tests-extra/tests/dnssec/incremental_expire/test.py @@ -21,9 +21,9 @@ ZONE = zone[0].name -slave.zonefile_sync = "-1" +slave.conf_zone(zone).zonefile_sync = "-1" if FAIL2ROLL: - slave.journal_max_usage = 128 * 1024 + slave.conf_zone(zone).journal_max_usage = 128 * 1024 slave.dnssec(zone).enable = True slave.dnssec(zone).dnskey_ttl = 3 diff --git a/tests-extra/tests/dnssec/ixfr_diff/test.py b/tests-extra/tests/dnssec/ixfr_diff/test.py index bcf025c694..0d0f8b62e3 100644 --- a/tests-extra/tests/dnssec/ixfr_diff/test.py +++ b/tests-extra/tests/dnssec/ixfr_diff/test.py @@ -13,12 +13,12 @@ zones = t.zone_rnd(12) else: zones = t.zone_rnd(4, records=100) - slave.tcp_remote_io_timeout = 20000 + slave.conf_srv().tcp_remote_io_timeout = 20000 master.ctl_params_append = ["-t", "30"] t.link(zones, master, slave, ixfr=True) -master.semantic_check = False +master.conf_zone(zones).semantic_checks = False master.zonefile_sync = "-1" for zone in zones: master.dnssec(zone).enable = True diff --git a/tests-extra/tests/dnssec/key_rollovers/test.py b/tests-extra/tests/dnssec/key_rollovers/test.py index f1337450ef..e1658fde99 100644 --- a/tests-extra/tests/dnssec/key_rollovers/test.py +++ b/tests-extra/tests/dnssec/key_rollovers/test.py @@ -160,7 +160,7 @@ def watch_alg_rollover(t, server, zone, slave, before_keys, after_keys, desc, se if set_stss is not None: server.dnssec(zone).single_type_signing = set_stss - server.dnssec(zone).alg = set_alg + server.dnssec(zone).algorithm = set_alg server.gen_confile() server.reload() @@ -239,7 +239,7 @@ def watch_ksk_rollover(t, server, zone, slave, before_keys, after_keys, total_ke wait_for_count(t, server, "DNSKEY", after_keys, 14, 20, msg) check_zone(server, zone, slave, after_keys, 1, 1, 1, msg) -t = Test() +t = Test(tsig=False) # the facility of DS Query does not work with TSIG parent = t.server("knot") parent_zone = t.zone("com.", storage=".") @@ -260,27 +260,27 @@ def cds_submission(): up.add(ZONE, 7, "DS", rd.to_text()) up.send("NOERROR") -child.zonefile_sync = 24 * 60 * 60 +child.conf_zone(child_zone).zonefile_sync = 24 * 60 * 60 child.dnssec(child_zone).enable = True child.dnssec(child_zone).manual = False -child.dnssec(child_zone).alg = "ECDSAP384SHA384" +child.dnssec(child_zone).algorithm = "ECDSAP384SHA384" child.dnssec(child_zone).dnskey_ttl = 2 child.dnssec(child_zone).zsk_lifetime = 99999 child.dnssec(child_zone).ksk_lifetime = 300 # this can be possibly left also infinity child.dnssec(child_zone).delete_delay = DELETE_DELAY -child.dnssec(child_zone).dnskey_mgmt = "incremental" if INCREMENTAL else "full" +child.dnssec(child_zone).dnskey_management = "incremental" if INCREMENTAL else "full" child.dnssec(child_zone).propagation_delay = 11 -child.dnssec(child_zone).ksk_sbm_check = [ parent ] -child.dnssec(child_zone).ksk_sbm_check_interval = 2 -child.dnssec(child_zone).ksk_sbm_delay = 6 child.dnssec(child_zone).ksk_shared = True -child.dnssec(child_zone).cds_publish = "always" +child.dnssec(child_zone).cds_cdnskey_publish = "always" if DOUBLE_DS: - child.dnssec(child_zone).cds_publish = "double-ds" -child.dnssec(child_zone).cds_digesttype = CDS_DT + child.dnssec(child_zone).cds_cdnskey_publish = "double-ds" +child.dnssec(child_zone).cds_digest_type = CDS_DT +child.conf_ss("submission", child_zone).parent = [ parent ] +child.conf_ss("submission", child_zone).check_interval = 2 +child.conf_ss("submission", child_zone).parent_delay = 6 -slave.dnssec(child_zone).validate = True +slave.conf_zone(child_zone).dnssec_validation = True # parameters ZONE = "example.com." diff --git a/tests-extra/tests/dnssec/keystores/test.py b/tests-extra/tests/dnssec/keystores/test.py index 7f93f37708..6c628aa4de 100644 --- a/tests-extra/tests/dnssec/keystores/test.py +++ b/tests-extra/tests/dnssec/keystores/test.py @@ -27,7 +27,7 @@ def check_key_count(server, keystore, expected): server.dnssec(zone).enable = True server.dnssec(zone).propagation_delay = 1 -server.dnssec(zone).keystores = [ "keys1", "keys2" ] +server.dnssec(zone).keystore = [ "keys1", "keys2" ] t.start() serial = server.zone_wait(zone) @@ -35,7 +35,7 @@ def check_key_count(server, keystore, expected): check_key_count(server, "keys1", 2) check_key_count(server, "keys2", 0) -server.dnssec(zone).keystores = [ "keys2", "keys1" ] +server.dnssec(zone).keystore = [ "keys2", "keys1" ] server.gen_confile() server.reload() server.ctl("zone-key-rollover %s zsk" % zone[0].name) @@ -61,7 +61,7 @@ def check_key_count(server, keystore, expected): server.flush(zone[0], wait=True) server.zone_verify(zone[0]) -server.dnssec(zone).keystores = [ "keys0ksk", "keys1", "keys2" ] +server.dnssec(zone).keystore = [ "keys0ksk", "keys1", "keys2" ] server.gen_confile() server.reload() diff --git a/tests-extra/tests/dnssec/keytag_conflict/test.py b/tests-extra/tests/dnssec/keytag_conflict/test.py index 2fcbfc8815..022e69349f 100644 --- a/tests-extra/tests/dnssec/keytag_conflict/test.py +++ b/tests-extra/tests/dnssec/keytag_conflict/test.py @@ -45,10 +45,10 @@ def check_zone4(server, min_dnskeys, min_rrsigs, msg): knot.dnssec(zone).manual = True knot.dnssec(zone).rrsig_lifetime = 50 knot.dnssec(zone).rrsig_refresh = 2 -knot.dnssec(zone).rrsig_prerefresh = 1 +knot.dnssec(zone).rrsig_pre_refresh = 1 knot.dnssec(zone).dnskey_ttl = 1 knot.dnssec(zone).propagation_delay = 1 -knot.zonefile_sync = "0" +knot.conf_zone(zone).zonefile_sync = "0" # install KASP db (one always enabled, one for testing) keydir = knot.keydir diff --git a/tests-extra/tests/dnssec/ksk_rollover/test.py b/tests-extra/tests/dnssec/ksk_rollover/test.py index c2771a60e6..7b302272b5 100644 --- a/tests-extra/tests/dnssec/ksk_rollover/test.py +++ b/tests-extra/tests/dnssec/ksk_rollover/test.py @@ -137,7 +137,7 @@ def watch_ksk_rollover(t, server, zone, before_keys, after_keys, total_keys, des wait_for_count(t, server, "DNSKEY", after_keys, 10, 20, msg) # ds_ttl check_zone(server, zone, server, after_keys, 1, 0, 1, msg) -t = Test() +t = Test(tsig=False) parent = t.server("knot") parent_zone = t.zone("com.", storage=".") @@ -159,9 +159,9 @@ def cds_submission(): child.dnssec(child_zone).enable = True child.dnssec(child_zone).dnskey_ttl = 6 child.dnssec(child_zone).propagation_delay = 11 -child.dnssec(child_zone).ksk_sbm_check = [ parent ] -child.dnssec(child_zone).ksk_sbm_check_interval = 3 -child.dnssec(child_zone).cds_publish = "rollover" +child.dnssec(child_zone).cds_cdnskey_publish = "rollover" +child.conf_ss("submission", child_zone).parent = [ parent ] +child.conf_ss("submission", child_zone).check_interval = 3 t.start() child.zone_wait(child_zone) diff --git a/tests-extra/tests/dnssec/no_resign/test.py b/tests-extra/tests/dnssec/no_resign/test.py index 161d3617fb..7d1d71a189 100644 --- a/tests-extra/tests/dnssec/no_resign/test.py +++ b/tests-extra/tests/dnssec/no_resign/test.py @@ -32,15 +32,15 @@ def only_nsec_changed(server, zone, serial): t.link(nsec3_zone, master) t.link(static_zone, master) -master.dnssec(nsec_zone).alg = "rsasha1" -master.dnssec(nsec3_zone).alg = "rsasha1" +master.dnssec(nsec_zone).algorithm = "rsasha1" +master.dnssec(nsec3_zone).algorithm = "rsasha1" master.dnssec(nsec3_zone).nsec3 = True -master.dnssec(nsec3_zone).nsec3_iters = 0 -master.dnssec(nsec3_zone).nsec3_salt_len = 0 -master.dnssec(static_zone).alg = "ecdsap256sha256" -master.dnssec(nsec_zone).cds_publish = "rollover" -master.dnssec(nsec3_zone).cds_publish = "rollover" -master.dnssec(static_zone).cds_publish = "rollover" +master.dnssec(nsec3_zone).nsec3_iterations = 0 +master.dnssec(nsec3_zone).nsec3_salt_length = 0 +master.dnssec(static_zone).algorithm = "ecdsap256sha256" +master.dnssec(nsec_zone).cds_cdnskey_publish = "rollover" +master.dnssec(nsec3_zone).cds_cdnskey_publish = "rollover" +master.dnssec(static_zone).cds_cdnskey_publish = "rollover" # install KASP db keydir = master.keydir diff --git a/tests-extra/tests/dnssec/no_resign2/test.py b/tests-extra/tests/dnssec/no_resign2/test.py index 4d2b020e5b..1b37bca730 100644 --- a/tests-extra/tests/dnssec/no_resign2/test.py +++ b/tests-extra/tests/dnssec/no_resign2/test.py @@ -11,10 +11,11 @@ zone = t.zone("example.com.", storage=".") -t.link(zone, master, ixfr=True, journal_content="all") +t.link(zone, master, ixfr=True) +master.conf_zone(zone).journal_content = "all" master.dnssec(zone).enable = True -master.dnssec(zone).repro_sign = True +master.dnssec(zone).reproducible_signing = True t.start() diff --git a/tests-extra/tests/dnssec/nsec3_opt_out/test.py b/tests-extra/tests/dnssec/nsec3_opt_out/test.py index 22bbe1ef9b..e4d72719f6 100644 --- a/tests-extra/tests/dnssec/nsec3_opt_out/test.py +++ b/tests-extra/tests/dnssec/nsec3_opt_out/test.py @@ -38,8 +38,8 @@ def check_deleg(deleg, nsec3_bitmap, opt_out_flag, msg): master.dnssec(zone).enable = True master.dnssec(zone).nsec3 = True -master.dnssec(zone).nsec3_iters = 2 -master.dnssec(zone).nsec3_salt_len = 8 +master.dnssec(zone).nsec3_iterations = 2 +master.dnssec(zone).nsec3_salt_length = 8 master.dnssec(zone).nsec3_opt_out = False t.start() diff --git a/tests-extra/tests/dnssec/nsec3_revert/test.py b/tests-extra/tests/dnssec/nsec3_revert/test.py index 02d702ebb7..8561d2bc61 100644 --- a/tests-extra/tests/dnssec/nsec3_revert/test.py +++ b/tests-extra/tests/dnssec/nsec3_revert/test.py @@ -11,7 +11,7 @@ t.link(zone, master) -master.journal_max_usage = 51200 # the creation of NSEC3 tree fails on ESPACE +master.conf_zone(zone).journal_max_usage = 51200 # the creation of NSEC3 tree fails on ESPACE t.start() master.zone_wait(zone) diff --git a/tests-extra/tests/dnssec/nsec3_up_adjust/test.py b/tests-extra/tests/dnssec/nsec3_up_adjust/test.py index 4207b765d6..6367210d86 100644 --- a/tests-extra/tests/dnssec/nsec3_up_adjust/test.py +++ b/tests-extra/tests/dnssec/nsec3_up_adjust/test.py @@ -17,8 +17,8 @@ for zone in zones: master.dnssec(zone).enable = True master.dnssec(zone).nsec3 = True - master.dnssec(zone).nsec3_iters = 2 - master.dnssec(zone).nsec3_salt_len = 10 + master.dnssec(zone).nsec3_iterations = 2 + master.dnssec(zone).nsec3_salt_length = 10 master.dnssec(zone).nsec3_opt_out = True t.start() diff --git a/tests-extra/tests/dnssec/nsec_changes/test.py b/tests-extra/tests/dnssec/nsec_changes/test.py index 524a90f344..b4863e2036 100644 --- a/tests-extra/tests/dnssec/nsec_changes/test.py +++ b/tests-extra/tests/dnssec/nsec_changes/test.py @@ -8,7 +8,7 @@ from dnstest.test import Test def check_salt(server, zone): - expect_salt_len = server.dnssec(zone).nsec3_salt_len * 2 # *2 because we get hex string + expect_salt_len = server.dnssec(zone).nsec3_salt_length * 2 # *2 because we get hex string if expect_salt_len == 0: expect_salt_len = 1 # there will be a dash @@ -47,8 +47,8 @@ def check_salt(server, zone): master.dnssec(zone1).enable = True master.dnssec(zone2).enable = True master.dnssec(zone2).nsec3 = True -master.dnssec(zone2).nsec3_iters = 2 -master.dnssec(zone2).nsec3_salt_len = 2 +master.dnssec(zone2).nsec3_iterations = 2 +master.dnssec(zone2).nsec3_salt_length = 2 master.gen_confile() master.reload() @@ -84,11 +84,11 @@ def check_salt(server, zone): # Reconfigure autosigning. master.dnssec(zone1).nsec3 = True -master.dnssec(zone1).nsec3_iters = 2 -master.dnssec(zone1).nsec3_salt_len = 2 +master.dnssec(zone1).nsec3_iterations = 2 +master.dnssec(zone1).nsec3_salt_length = 2 master.dnssec(zone2).nsec3 = True -master.dnssec(zone2).nsec3_iters = 1 -master.dnssec(zone2).nsec3_salt_len = 0 +master.dnssec(zone2).nsec3_iterations = 1 +master.dnssec(zone2).nsec3_salt_length = 0 master.gen_confile() # Intentionally restarted to ensure the zone file is fully loaded. master.stop() @@ -127,8 +127,8 @@ def check_salt(server, zone): # Reconfigure autosigning. master.dnssec(zone1).nsec3 = True -master.dnssec(zone1).nsec3_iters = 1 -master.dnssec(zone1).nsec3_salt_len = 0 +master.dnssec(zone1).nsec3_iterations = 1 +master.dnssec(zone1).nsec3_salt_length = 0 master.dnssec(zone2).nsec3 = False master.gen_confile() master.reload() diff --git a/tests-extra/tests/dnssec/nsec_update/test.py b/tests-extra/tests/dnssec/nsec_update/test.py index b4764d27fd..a9cc391766 100644 --- a/tests-extra/tests/dnssec/nsec_update/test.py +++ b/tests-extra/tests/dnssec/nsec_update/test.py @@ -61,12 +61,12 @@ def check_nsec(server, zone, msg, name="dwidjwoij"): for zone in zones: master.dnssec(zone).enable = True master.dnssec(zone).nsec3 = random.choice([True, False]) - master.dnssec(zone).nsec3_iters = 2 - master.dnssec(zone).nsec3_salt_len = random.choice([0, 1, 9, 64, 128, 255]) + master.dnssec(zone).nsec3_iterations = 2 + master.dnssec(zone).nsec3_salt_length = random.choice([0, 1, 9, 64, 128, 255]) master.dnssec(zone).nsec3_opt_out = (random.random() < 0.5) if not slave.valgrind: - slave.dnssec(zone).validate = True + slave.conf_zone(zone).dnssec_validation = True slave.dnssec(zone).nsec3 = master.dnssec(zone).nsec3 slave.dnssec(zone).nsec3_opt_out = master.dnssec(zone).nsec3_opt_out @@ -187,7 +187,7 @@ def check_nsec(server, zone, msg, name="dwidjwoij"): # update salt with keymgr and see if zone correctly re-NSEC3-d after update for z in zones1: - salt = "-" if master.dnssec(z).nsec3_salt_len == 0 else "fe" * master.dnssec(z).nsec3_salt_len + salt = "-" if master.dnssec(z).nsec3_salt_length == 0 else "fe" * master.dnssec(z).nsec3_salt_length Keymgr.run_check(master.confile, z.name, "nsec3-salt", salt) up = master.update(z) up.add("abc." + z.name, 3600, "A", "1.2.3.4") diff --git a/tests-extra/tests/dnssec/offline_ksk/test.py b/tests-extra/tests/dnssec/offline_ksk/test.py index 808ea5e79c..539e9d248d 100644 --- a/tests-extra/tests/dnssec/offline_ksk/test.py +++ b/tests-extra/tests/dnssec/offline_ksk/test.py @@ -129,12 +129,12 @@ def writef(filename, contents): master = t.server("knot") t.link(zone, master, knot) if not IXFR: - master.zones[ZONE].journal_content = "none" + master.conf_zone(zone).journal_content = "none" else: master = t.server("dummy") t.link(zone, knot) -knot.zonefile_sync = 24 * 60 * 60 +knot.conf_zone(zone).zonefile_sync = 24 * 60 * 60 # ZSK side knot.dnssec(zone).enable = True @@ -144,13 +144,13 @@ def writef(filename, contents): knot.dnssec(zone).zone_max_ttl = 3 knot.dnssec(zone).keytag_modulo = "0/2" # optional -knot.dnssec(zone).alg = "ECDSAP384SHA384" +knot.dnssec(zone).algorithm = "ECDSAP384SHA384" knot.dnssec(zone).zsk_lifetime = STARTUP + 6 * TICK # see ksk1 lifetime knot.dnssec(zone).propagation_delay = TICK - 2 -knot.dnssec(zone).cds_publish = "rollover" +knot.dnssec(zone).cds_cdnskey_publish = "rollover" knot.dnssec(zone).rrsig_lifetime = 15 knot.dnssec(zone).rrsig_refresh = 6 -knot.dnssec(zone).rrsig_prerefresh = 1 +knot.dnssec(zone).rrsig_pre_refresh = 1 # options without any effect knot.dnssec(zone).ksk_lifetime = NONSENSE @@ -167,10 +167,10 @@ def writef(filename, contents): signer.dnssec(zone).rrsig_refresh = 2 signer.dnssec(zone).keytag_modulo = "1/2" # optional -signer.dnssec(zone).alg = "ECDSAP384SHA384" -signer.dnssec(zone).cds_publish = random.choice(["none", "rollover"]) +signer.dnssec(zone).algorithm = "ECDSAP384SHA384" +signer.dnssec(zone).cds_cdnskey_publish = random.choice(["none", "rollover"]) signer.dnssec(zone).rrsig_lifetime = 6 -signer.dnssec(zone).rrsig_prerefresh = 1 +signer.dnssec(zone).rrsig_pre_refresh = 1 # options without any effect signer.dnssec(zone).dnskey_ttl = int(NONSENSE / 10) signer.dnssec(zone).zone_max_ttl = NONSENSE diff --git a/tests-extra/tests/dnssec/offline_ksk2/test.py b/tests-extra/tests/dnssec/offline_ksk2/test.py index 80abb133b9..f5820a9dd6 100644 --- a/tests-extra/tests/dnssec/offline_ksk2/test.py +++ b/tests-extra/tests/dnssec/offline_ksk2/test.py @@ -56,7 +56,7 @@ def writef(filename, contents): zone = t.zone(ZONE) t.link(zone, knot) -knot.zonefile_sync = 24 * 60 * 60 +knot.conf_zone(zone).zonefile_sync = 24 * 60 * 60 # ZSK side knot.dnssec(zone).enable = True diff --git a/tests-extra/tests/dnssec/on_slave_signing/test.py b/tests-extra/tests/dnssec/on_slave_signing/test.py index 27eadd2e1a..f7c007cdee 100644 --- a/tests-extra/tests/dnssec/on_slave_signing/test.py +++ b/tests-extra/tests/dnssec/on_slave_signing/test.py @@ -32,8 +32,8 @@ def test_one(master, slave, zone, master_policy, slave_policy, initial_serial): slave.stop() server_purge(slave, zone) master.zones[zone[0].name].zfile.update_soa(serial=initial_serial) - master.serial_policy = master_policy - slave.serial_policy = slave_policy + master.conf_zone(zone).serial_policy = master_policy + slave.conf_zone(zone).serial_policy = slave_policy master.gen_confile() slave.gen_confile() master.start() diff --git a/tests-extra/tests/dnssec/prerefresh/test.py b/tests-extra/tests/dnssec/prerefresh/test.py index 4d6b62fb9b..0627d16a28 100644 --- a/tests-extra/tests/dnssec/prerefresh/test.py +++ b/tests-extra/tests/dnssec/prerefresh/test.py @@ -13,7 +13,7 @@ master.dnssec(zone).enable = True master.dnssec(zone).rrsig_lifetime = 20 -master.dnssec(zone).rrsig_prerefresh = 4 +master.dnssec(zone).rrsig_pre_refresh = 4 master.dnssec(zone).propagation_delay = 1 master.dnssec(zone).dnskey_ttl = 1 diff --git a/tests-extra/tests/dnssec/reproducible/test.py b/tests-extra/tests/dnssec/reproducible/test.py index 1ed0fdbedc..4c913df7f4 100644 --- a/tests-extra/tests/dnssec/reproducible/test.py +++ b/tests-extra/tests/dnssec/reproducible/test.py @@ -37,8 +37,8 @@ for s in [slave1, slave2]: s.dnssec(z).enable = True s.dnssec(z).manual = True - s.dnssec(z).alg = alg['name'] - s.dnssec(z).repro_sign = not alg['always_reproducible'] + s.dnssec(z).algorithm = alg['name'] + s.dnssec(z).reproducible_signing = not alg['always_reproducible'] slave1.gen_confile() # needed for keymgr diff --git a/tests-extra/tests/dnssec/shared_alg_roll/test.py b/tests-extra/tests/dnssec/shared_alg_roll/test.py index 155cf1ad1a..8408bfb1b4 100644 --- a/tests-extra/tests/dnssec/shared_alg_roll/test.py +++ b/tests-extra/tests/dnssec/shared_alg_roll/test.py @@ -43,7 +43,7 @@ def wait_for_rrsig_count(t, server, zones, rrtype, rrsig_count, min_time, timeou for z in zones: knot.dnssec(z).enable = True knot.dnssec(z).ksk_shared = True - knot.dnssec(z).alg = "ECDSAP256SHA256" + knot.dnssec(z).algorithm = "ECDSAP256SHA256" knot.dnssec(z).shared_policy_with = zones[0].name t.start() @@ -61,8 +61,8 @@ def wait_for_rrsig_count(t, server, zones, rrtype, rrsig_count, min_time, timeou # perform algorithm rollover for z in zones: - knot.dnssec(z).alg = "ECDSAP384SHA384" - knot.dnssec(z).ksk_sbm_timeout = 10 + knot.dnssec(z).algorithm = "ECDSAP384SHA384" + knot.conf_ss("submission", z).timeout = 10 knot.dnssec(z).propagation_delay = 5 knot.gen_confile() @@ -88,8 +88,8 @@ def wait_for_rrsig_count(t, server, zones, rrtype, rrsig_count, min_time, timeou for z in zones_add: knot.dnssec(z).enable = True knot.dnssec(z).ksk_shared = True - knot.dnssec(z).alg = "ECDSAP384SHA384" - knot.dnssec(z).ksk_sbm_timeout = 10 + knot.dnssec(z).algorithm = "ECDSAP384SHA384" + knot.conf_ss("submission", z).timeout = 10 knot.dnssec(z).propagation_delay = 5 knot.dnssec(z).shared_policy_with = zones[0].name diff --git a/tests-extra/tests/dnssec/shared_alg_sync/test.py b/tests-extra/tests/dnssec/shared_alg_sync/test.py index 6ecdba875a..9bb3675e72 100644 --- a/tests-extra/tests/dnssec/shared_alg_sync/test.py +++ b/tests-extra/tests/dnssec/shared_alg_sync/test.py @@ -24,7 +24,7 @@ def check_zone(server, zone, soa_rrsigs, msg): for z in zones: knot.dnssec(z).enable = (z.name == z0name) knot.dnssec(z).ksk_shared = True - knot.dnssec(z).alg = "ECDSAP256SHA256" + knot.dnssec(z).algorithm = "ECDSAP256SHA256" knot.dnssec(z).shared_policy_with = zones[0].name t.start() @@ -32,9 +32,8 @@ def check_zone(server, zone, soa_rrsigs, msg): for z in zones: check_zone(knot, z, 1 if z.name == z0name else 0, "initial sign") - knot.dnssec(z).disable = knot.dnssec(z).enable - knot.dnssec(z).enable = True - knot.dnssec(z).alg = "ECDSAP384SHA384" + knot.dnssec(z).enable = not knot.dnssec(z).enable + knot.dnssec(z).algorithm = "ECDSAP384SHA384" knot.gen_confile() knot.reload() diff --git a/tests-extra/tests/dnssec/start_slave_sign/test.py b/tests-extra/tests/dnssec/start_slave_sign/test.py index 1d3afe6107..45ffdb4047 100644 --- a/tests-extra/tests/dnssec/start_slave_sign/test.py +++ b/tests-extra/tests/dnssec/start_slave_sign/test.py @@ -16,17 +16,16 @@ t.link(zone, master, slave, ddns=True) -master.serial_policy = random.choice(["increment", "unixtime", "dateserial"]) -slave.serial_policy = random.choice(["increment", "unixtime", "dateserial"]) +master.conf_zone(zone).serial_policy = random.choice(["increment", "unixtime", "dateserial"]) +slave.conf_zone(zone).serial_policy = random.choice(["increment", "unixtime", "dateserial"]) slave.dnssec(zone).nsec3 = random.choice([False, True]) -slave.zonefile_load = random.choice(["none", "whole"]) -for z in zone: - slave.zones[z.name].journal_content = random.choice(["all", "none", "changes"]) +slave.conf_zone(zone).zonefile_load = random.choice(["none", "whole"]) +slave.conf_zone(zone).journal_content = random.choice(["all", "none", "changes"]) cold_reload = random.choice([False, True]) -if slave.zonefile_load == "none" and slave.zones[zone[0].name].journal_content != "all": +if slave.conf_zone(zone[0]).zonefile_load == "none" and slave.conf_zone(zone[0]).journal_content != "all": cold_reload = False t.start() diff --git a/tests-extra/tests/dnssec/validate/test.py b/tests-extra/tests/dnssec/validate/test.py index ecb3836108..8b18351589 100644 --- a/tests-extra/tests/dnssec/validate/test.py +++ b/tests-extra/tests/dnssec/validate/test.py @@ -23,12 +23,7 @@ zones = zones_ok + zones_ok3 + zones_nok + zones_nok3 t.link(zones + zones_unsigned, master, slave, ixfr=True) -for z in zones_ok + zones_nok: - slave.dnssec(z).validate = True -for z in zones_ok3 + zones_nok3: - slave.dnssec(z).validate = True -for z in zones_unsigned: - slave.dnssec(z).validate = True +slave.conf_zone(zones_ok + zones_nok + zones_ok3 + zones_nok3 + zones_unsigned).dnssec_validation = True t.start() diff --git a/tests-extra/tests/dnssec/validate_bind/test.py b/tests-extra/tests/dnssec/validate_bind/test.py index 67fe66569b..c5e4b2e3f0 100644 --- a/tests-extra/tests/dnssec/validate_bind/test.py +++ b/tests-extra/tests/dnssec/validate_bind/test.py @@ -17,7 +17,7 @@ for z in zones: master.dnssec(z).enable = True - slave.dnssec(z).validate = True + slave.conf_zone(z).dnssec_validation = True for z in zones_nsec3: master.dnssec(z).nsec3 = True diff --git a/tests-extra/tests/dnssec/validate_event/test.py b/tests-extra/tests/dnssec/validate_event/test.py index 35b7e97c48..9a64b3b4df 100644 --- a/tests-extra/tests/dnssec/validate_event/test.py +++ b/tests-extra/tests/dnssec/validate_event/test.py @@ -22,7 +22,7 @@ def dig_multi(server, zones, exp_rcode): master.dnssec(z).enable = True master.dnssec(z).rrsig_lifetime = 10 master.dnssec(z).rrsig_refresh = 1 - master.dnssec(z).rrsig_prerefresh = 1 + master.dnssec(z).rrsig_pre_refresh = 1 t.start() @@ -43,8 +43,7 @@ def dig_multi(server, zones, exp_rcode): # SCENARIO II -- configured dnssec-validation master.start() slave.stop() -for z in zones: - slave.dnssec(z).validate = True +slave.conf_zone(zones).dnssec_validation = True slave.gen_confile() slave.start() serials = slave.zones_wait(zones, serials) diff --git a/tests-extra/tests/dnssec/zsk_rollover/test.py b/tests-extra/tests/dnssec/zsk_rollover/test.py index 7de1fb4751..aa8ce122cc 100644 --- a/tests-extra/tests/dnssec/zsk_rollover/test.py +++ b/tests-extra/tests/dnssec/zsk_rollover/test.py @@ -67,8 +67,8 @@ def check_same_rrsig(server, zone, last): zone = t.zone("example.com.", storage=".") t.link(zone, unsigned_master, master, ddns=True) -unsigned_master.zones[zone[0].name].journal_content = "none" -master.ixfr_from_axfr = True +unsigned_master.conf_zone(zone).journal_content = "none" +master.conf_zone(zone).ixfr_from_axfr = True master.dnssec(zone).enable = True master.dnssec(zone).manual = False @@ -76,7 +76,7 @@ def check_same_rrsig(server, zone, last): master.dnssec(zone).zsk_lifetime = 16 master.dnssec(zone).propagation_delay = 3 master.dnssec(zone).nsec3 = True -master.dnssec(zone).nsec3_salt_len = 8 +master.dnssec(zone).nsec3_salt_length = 8 master.dnssec(zone).nsec3_salt_lifetime = -1 t.start() diff --git a/tests-extra/tests/edns/payload_server/test.py b/tests-extra/tests/edns/payload_server/test.py index 72d45b2f75..6a4be03765 100644 --- a/tests-extra/tests/edns/payload_server/test.py +++ b/tests-extra/tests/edns/payload_server/test.py @@ -10,13 +10,13 @@ server6 = t.server("knot", address=6) zone = t.zone("flags.") -# Set common payload limit. -server4.udp_max_payload = 1220 -server6.udp_max_payload = 1220 - t.link(zone, server4) t.link(zone, server6) +# Set common payload limit. +server4.conf_srv().udp_max_payload = 1220 +server6.conf_srv().udp_max_payload = 1220 + t.start() # Check common limit if 1220 fits and 1221 does not. @@ -33,13 +33,13 @@ resp.check(flags="TC") # Set IP family specific limit. -server4.udp_max_payload_ipv4 = 1220 -server4.udp_max_payload_ipv6 = 1221 # Should not affect IPv4 -server4.udp_max_payload = 1221 # Should not override IPv4 specific +server4.conf_srv().udp_max_payload_ipv4 = 1220 +server4.conf_srv().udp_max_payload_ipv6 = 1221 # Should not affect IPv4 +server4.conf_srv().udp_max_payload = 1221 # Should not override IPv4 specific -server6.udp_max_payload_ipv6 = 1220 -server6.udp_max_payload_ipv4 = 1221 # Should not affect IPv6 -server6.udp_max_payload = 1221 # Should not override IPv6 specific +server6.conf_srv().udp_max_payload_ipv6 = 1220 +server6.conf_srv().udp_max_payload_ipv4 = 1221 # Should not affect IPv6 +server6.conf_srv().udp_max_payload = 1221 # Should not override IPv6 specific server4.gen_confile() server4.reload() diff --git a/tests-extra/tests/events/flush/test.py b/tests-extra/tests/events/flush/test.py index 3c0c0740ec..6cdb956ca5 100644 --- a/tests-extra/tests/events/flush/test.py +++ b/tests-extra/tests/events/flush/test.py @@ -12,11 +12,12 @@ master = t.server("bind") slave = t.server("knot") -slave.zonefile_sync = "5s" zone = t.zone("example.") t.link(zone, master, slave) +slave.conf_zone(zone).zonefile_sync = "5s" + zone_path = slave.zones[zone[0].name].zfile.path t.start() @@ -51,7 +52,7 @@ set_err("NO POST-TRANSFER FLUSH") # Set the zonefile-sync parameter to 60s and update master - should not flush -slave.zonefile_sync = "60s" +slave.conf_zone(zone).zonefile_sync = "60s" slave.gen_confile() slave.reload() t.sleep(FLUSH_SLEEP) # ~ 15s wait for master to start @@ -64,7 +65,7 @@ set_err("SOON POST-RELOAD FLUSH") # Set the zonefile-sync parameter to 1s - should flush -slave.zonefile_sync = "1s" +slave.conf_zone(zone).zonefile_sync = "1s" slave.gen_confile() slave.reload() t.sleep(1.5) diff --git a/tests-extra/tests/events/soa/test.py b/tests-extra/tests/events/soa/test.py index 373a062301..36c9fb7d0d 100644 --- a/tests-extra/tests/events/soa/test.py +++ b/tests-extra/tests/events/soa/test.py @@ -32,7 +32,7 @@ def create_servers(t, count, zone): master.disable_notify = True slave = t.server("knot") - slave.tcp_remote_io_timeout = "1000" + slave.conf_srv().tcp_remote_io_timeout = "1000" t.link(zone, master, slave) diff --git a/tests-extra/tests/ixfr/automatic_acl/test.py b/tests-extra/tests/ixfr/automatic_acl/test.py index 6fb7117f34..2e37508fec 100644 --- a/tests-extra/tests/ixfr/automatic_acl/test.py +++ b/tests-extra/tests/ixfr/automatic_acl/test.py @@ -25,11 +25,11 @@ slave = t.server("knot", tsig=TSIG) zones = t.zone("example.com.") -master.auto_acl = MASTER_AUTO -slave.auto_acl = SLAVE_AUTO - t.link(zones, master, slave, ixfr=True) +master.conf_srv().automatic_acl = MASTER_AUTO +slave.conf_srv().automatic_acl = SLAVE_AUTO + t.start() # Wait for AXFR to slave server. diff --git a/tests-extra/tests/ixfr/axfr_fallback/test.py b/tests-extra/tests/ixfr/axfr_fallback/test.py index ac2f590cfb..cab45b4eeb 100644 --- a/tests-extra/tests/ixfr/axfr_fallback/test.py +++ b/tests-extra/tests/ixfr/axfr_fallback/test.py @@ -15,7 +15,7 @@ for z in zone: master.dnssec(z).enable = True master.disable_notify = True -slave.zones[zone[0].name].retry_max = 10 +slave.conf_zone(zone).retry_max_interval = 10 t.start() diff --git a/tests-extra/tests/ixfr/axfr_style/test.py b/tests-extra/tests/ixfr/axfr_style/test.py index 2ce5005bff..51614bc67f 100644 --- a/tests-extra/tests/ixfr/axfr_style/test.py +++ b/tests-extra/tests/ixfr/axfr_style/test.py @@ -11,7 +11,9 @@ slave = t.server("knot") zone = t.zone("xfr", storage=".") -t.link(zone, master, slave, journal_content="none") +t.link(zone, master, slave) + +master.conf_zone(zone).journal_content = "none" t.start() diff --git a/tests-extra/tests/ixfr/bind_knot/test.py b/tests-extra/tests/ixfr/bind_knot/test.py index 39cc4a7259..6c904bfe33 100644 --- a/tests-extra/tests/ixfr/bind_knot/test.py +++ b/tests-extra/tests/ixfr/bind_knot/test.py @@ -12,8 +12,8 @@ t.link(zones, master, slave, ixfr=True) -slave.tcp_io_timeout = 3000 -slave.tcp_remote_io_timeout = 8000 +slave.conf_srv().tcp_io_timeout = 3000 +slave.conf_srv().tcp_remote_io_timeout = 8000 t.start() diff --git a/tests-extra/tests/ixfr/from_axfr/test.py b/tests-extra/tests/ixfr/from_axfr/test.py index 7ff7aa3e92..96ea47f9bb 100644 --- a/tests-extra/tests/ixfr/from_axfr/test.py +++ b/tests-extra/tests/ixfr/from_axfr/test.py @@ -14,11 +14,11 @@ t.link(zone, master, slave) t.link(zone, slave, sub_slave) -slave.ixfr_from_axfr = True +slave.conf_zone(zone).ixfr_from_axfr = True t.start() -serial = master.zones_wait(zone) +serial = sub_slave.zones_wait(zone) serial_init = serial # update zone with small change @@ -37,8 +37,8 @@ # test case 2: generate+verify ZONEMD -slave.zonemd_generate = "zonemd-sha384" -sub_slave.zonemd_verify = True +slave.conf_zone(zone).zonemd_generate = "zonemd-sha384" +sub_slave.conf_zone(zone).zonemd_verify = True slave.gen_confile() sub_slave.gen_confile() @@ -58,7 +58,7 @@ for z in zone: slave.dnssec(z).enable = True - sub_slave.dnssec(z).validate = True + sub_slave.conf_zone(z).dnssec_validation = True slave.gen_confile() sub_slave.gen_confile() diff --git a/tests-extra/tests/ixfr/insec_sec_deleg/test.py b/tests-extra/tests/ixfr/insec_sec_deleg/test.py index e0a1b9f9c7..d3849d02b7 100644 --- a/tests-extra/tests/ixfr/insec_sec_deleg/test.py +++ b/tests-extra/tests/ixfr/insec_sec_deleg/test.py @@ -15,13 +15,13 @@ master.dnssec(zones[0]).enable = True master.dnssec(zones[0]).nsec3 = True master.dnssec(zones[0]).nsec3_opt_out = True -master.dnssec(zones[0]).nsec3_iters = 1 +master.dnssec(zones[0]).nsec3_iterations = 1 t.start() master.zones_wait(zones) -master.dnssec(zones[0]).nsec3_iters = 2 +master.dnssec(zones[0]).nsec3_iterations = 2 master.gen_confile() master.reload() t.sleep(8) @@ -35,7 +35,7 @@ resp.check_count(0, rtype="NSEC3", section="authority") if random.random() < 0.5: - master.dnssec(zones[0]).nsec3_iters = 3 + master.dnssec(zones[0]).nsec3_iterations = 3 master.gen_confile() master.reload() t.sleep(6) diff --git a/tests-extra/tests/ixfr/ixfr_merge/test.py b/tests-extra/tests/ixfr/ixfr_merge/test.py index b95bad6b2d..65b324a69e 100644 --- a/tests-extra/tests/ixfr/ixfr_merge/test.py +++ b/tests-extra/tests/ixfr/ixfr_merge/test.py @@ -16,12 +16,12 @@ t.link(zones, s2, s3, ixfr=True) if not s1.valgrind: - s2.tcp_remote_io_timeout = 8000 - s3.tcp_remote_io_timeout = 8000 + s2.conf_srv().tcp_remote_io_timeout = 8000 + s3.conf_srv().tcp_remote_io_timeout = 8000 else: - s1.tcp_remote_io_timeout = 45000 - s2.tcp_remote_io_timeout = 45000 - s3.tcp_remote_io_timeout = 45000 + s1.conf_srv().tcp_remote_io_timeout = 45000 + s2.conf_srv().tcp_remote_io_timeout = 45000 + s3.conf_srv().tcp_remote_io_timeout = 45000 s1.ctl_params_append = ["-t", "45"] s2.ctl_params_append = ["-t", "45"] s3.ctl_params_append = ["-t", "45"] diff --git a/tests-extra/tests/ixfr/knot_bind/test.py b/tests-extra/tests/ixfr/knot_bind/test.py index 5b50a39c5e..8fb28107ac 100644 --- a/tests-extra/tests/ixfr/knot_bind/test.py +++ b/tests-extra/tests/ixfr/knot_bind/test.py @@ -12,7 +12,7 @@ t.link(zones, master, slave, ixfr=True) -master.tcp_io_timeout = 3000 +master.conf_srv().tcp_io_timeout = 3000 t.start() diff --git a/tests-extra/tests/ixfr/knot_knot/test.py b/tests-extra/tests/ixfr/knot_knot/test.py index 7f61183ec7..9cba351143 100644 --- a/tests-extra/tests/ixfr/knot_knot/test.py +++ b/tests-extra/tests/ixfr/knot_knot/test.py @@ -19,12 +19,12 @@ t.link(zones, master, slave, ixfr=True) if master.valgrind: - master.semantic_check = False - slave.semantic_check = False + master.conf_zone(zones).semantic_checks = False + slave.conf_zone(zones).semantic_checks = False -master.tcp_io_timeout = 3000 -slave.tcp_io_timeout = 3000 -slave.tcp_remote_io_timeout = 8000 +master.conf_srv().tcp_io_timeout = 3000 +slave.conf_srv().tcp_io_timeout = 3000 +slave.conf_srv().tcp_remote_io_timeout = 8000 t.start() diff --git a/tests-extra/tests/ixfr/master_pin/test.py b/tests-extra/tests/ixfr/master_pin/test.py index 70c777ed47..1152b497fa 100644 --- a/tests-extra/tests/ixfr/master_pin/test.py +++ b/tests-extra/tests/ixfr/master_pin/test.py @@ -20,7 +20,7 @@ t.link(zones, masterA, slave, ixfr=True) -slave.master_pin_tol = PERIOD +slave.conf_zone(zones).master_pin_tolerance = PERIOD masterA.disable_notify = DISABLE_NOTIFY masterB.disable_notify = DISABLE_NOTIFY diff --git a/tests-extra/tests/ixfr/master_pin2/test.py b/tests-extra/tests/ixfr/master_pin2/test.py index 28538e8e8a..aa8a6a6b9c 100644 --- a/tests-extra/tests/ixfr/master_pin2/test.py +++ b/tests-extra/tests/ixfr/master_pin2/test.py @@ -47,10 +47,10 @@ def check_cur(expec, unexp): t.link(zones, masterB, slave, ixfr=True) for m in [ masterA, masterB ]: - m.serial_policy = "unixtime" - m.zonefile_load = "difference-no-serial" - m.dnssec(zone).enable = True - m.zones[zone.name].journal_content = "all" + m.conf_zone(zones).serial_policy = "unixtime" + m.conf_zone(zones).zonefile_load = "difference-no-serial" + m.dnssec(zones).enable = True + m.conf_zone(zones).journal_content = "all" masterB.zones[zone.name].serial_modulo = str(-PIN) diff --git a/tests-extra/tests/ixfr/one_by_one/test.py b/tests-extra/tests/ixfr/one_by_one/test.py index 351dad8c36..cbe9df5c51 100644 --- a/tests-extra/tests/ixfr/one_by_one/test.py +++ b/tests-extra/tests/ixfr/one_by_one/test.py @@ -14,7 +14,7 @@ t.link(zones, master, slave, ixfr=True) -slave.ixfr_by_one = "on" +slave.conf_zone(zones).ixfr_by_one = True t.start() diff --git a/tests-extra/tests/ixfr/provide_ixfr/test.py b/tests-extra/tests/ixfr/provide_ixfr/test.py index 950fe10c87..71e83aae4f 100644 --- a/tests-extra/tests/ixfr/provide_ixfr/test.py +++ b/tests-extra/tests/ixfr/provide_ixfr/test.py @@ -22,7 +22,7 @@ slave.zones_wait(zone, serial_init) # Disable IXFR and check AXFR-style IXFR. -master.provide_ixfr = False +master.conf_zone(zone).provide_ixfr = False master.gen_confile() master.reload() master.zones_wait(zone, serial_init) @@ -30,7 +30,7 @@ t.check_axfr_style_ixfr(master, zone[0].name, serial_init[zone[0].name]) # Enable IXFR and compare with slave. -master.provide_ixfr = True +master.conf_zone(zone).provide_ixfr = True master.gen_confile() master.reload() master.zones_wait(zone, serial_init) diff --git a/tests-extra/tests/ixfr/redundant_ixfr_ignore/test.py b/tests-extra/tests/ixfr/redundant_ixfr_ignore/test.py index e476b6df3b..c554178f3e 100644 --- a/tests-extra/tests/ixfr/redundant_ixfr_ignore/test.py +++ b/tests-extra/tests/ixfr/redundant_ixfr_ignore/test.py @@ -20,7 +20,7 @@ t.link(zone, master, slave, ixfr=True) if IGNORE: - slave.ixfr_benevolent = True + slave.conf_zone(zone).ixfr_benevolent = True slave.update_zonefile(zone, version="slave0") diff --git a/tests-extra/tests/ixfr/slow/test.py b/tests-extra/tests/ixfr/slow/test.py index 31f8baeaf6..2987cced38 100644 --- a/tests-extra/tests/ixfr/slow/test.py +++ b/tests-extra/tests/ixfr/slow/test.py @@ -21,8 +21,8 @@ MSGDELAY = 90 -master.tcp_remote_io_timeout = 4000 -master.tcp_io_timeout = 4000 +master.conf_srv().tcp_remote_io_timeout = 4000 +master.conf_srv().tcp_io_timeout = 4000 def slow_ixfr(server, zname, serial): server.kdig(zname, "IXFR=" + str(serial), msgdelay=MSGDELAY) diff --git a/tests-extra/tests/ixfr/zone-in-journal/test.py b/tests-extra/tests/ixfr/zone-in-journal/test.py index a614cb1c32..dcf19e8fb5 100644 --- a/tests-extra/tests/ixfr/zone-in-journal/test.py +++ b/tests-extra/tests/ixfr/zone-in-journal/test.py @@ -13,17 +13,14 @@ t.link(zone, master, slave) -for z in master.zones: - slave.zones[z].journal_content = "none" - -for z in slave.zones: - slave.zones[z].journal_content = "all" - slave.max_journal_usage = 150 * 1024 -master.zonefile_sync = "0" -slave.zonefile_sync = "-1" -slave.zonefile_load = "none" +master.conf_zone(zone).zonefile_sync = "0" +master.conf_zone(zone).journal_content = "none" + +slave.conf_zone(zone).zonefile_sync = "-1" +slave.conf_zone(zone).zonefile_load = "none" +slave.conf_zone(zone).journal_content = "all" master.dnssec(zone).enable = "true" diff --git a/tests-extra/tests/ixfr/zone_size/test.py b/tests-extra/tests/ixfr/zone_size/test.py index fe77c7893a..690445ab9b 100644 --- a/tests-extra/tests/ixfr/zone_size/test.py +++ b/tests-extra/tests/ixfr/zone_size/test.py @@ -9,9 +9,10 @@ master1 = t.server("knot") slave = t.server("knot") zone = t.zone("example.com.", storage=".", version=1) -slave.zone_size_limit = 230 t.link(zone, master1, slave, ixfr=True) +slave.conf_zone(zone).zone_max_size = 230 + t.start() # Wait for zones. diff --git a/tests-extra/tests/journal/ascii_flags/test.py b/tests-extra/tests/journal/ascii_flags/test.py index 1603f13fa4..13c08a9348 100644 --- a/tests-extra/tests/journal/ascii_flags/test.py +++ b/tests-extra/tests/journal/ascii_flags/test.py @@ -16,7 +16,7 @@ master.zones[ZONE].zfile.update_soa(serial=1718378850) -master.journal_max_depth = 10 +master.conf_zone(zones).journal_max_depth = 10 t.start() serials = master.zones_wait(zones) diff --git a/tests-extra/tests/journal/many_nsec3/test.py b/tests-extra/tests/journal/many_nsec3/test.py index 325ab4887d..a396cfb07f 100644 --- a/tests-extra/tests/journal/many_nsec3/test.py +++ b/tests-extra/tests/journal/many_nsec3/test.py @@ -19,8 +19,8 @@ master.journal_db_size = 200 * 1024 * 1024 slave.journal_db_size = 200 * 1024 * 1024 -master.journal_max_usage = 100 * 1024 * 1024 -slave.journal_max_usage = 100 * 1024 * 1024 +master.conf_zone(zones).journal_max_usage = 100 * 1024 * 1024 +slave.conf_zone(zones).journal_max_usage = 100 * 1024 * 1024 t.start() serial = slave.zones_wait(zones) diff --git a/tests-extra/tests/modules/dnsproxy/test.py b/tests-extra/tests/modules/dnsproxy/test.py index 4a8a867a3d..5d999e5233 100644 --- a/tests-extra/tests/modules/dnsproxy/test.py +++ b/tests-extra/tests/modules/dnsproxy/test.py @@ -37,8 +37,8 @@ def is_subzone(subzone, zone): t.link(zone_remote, remote) if local.valgrind: - local.semantic_check = False - remote.semantic_check = False + local.conf_zone(zone_common1 + zone_local).semantic_checks = False + remote.conf_zone(zone_common2 + zone_remote).semantic_checks = False def fallback_checks(server, zone_local, zone_remote, nxdomain): # Local preferred OK, try with local TSIG. diff --git a/tests-extra/tests/modules/noudp/test.py b/tests-extra/tests/modules/noudp/test.py index 16205b57f1..cd87a67b5b 100644 --- a/tests-extra/tests/modules/noudp/test.py +++ b/tests-extra/tests/modules/noudp/test.py @@ -15,7 +15,6 @@ ModNoudp.check() knot = t.server("knot") -knot.udp_workers = 1 zone_tc = t.zone("example.") zone_notc = t.zone("flags.") @@ -24,6 +23,8 @@ t.link(zones, knot) +knot.conf_srv().udp_workers = 1 + knot.add_module(zone_tc, ModNoudp()) knot.add_module(zone_notc, ModNoudp(allow_rate=1)) knot.add_module(zone_50_50, ModNoudp(trunc_rate=2)) diff --git a/tests-extra/tests/modules/onlinesign/test.py b/tests-extra/tests/modules/onlinesign/test.py index b3878cceee..c7dad10369 100644 --- a/tests-extra/tests/modules/onlinesign/test.py +++ b/tests-extra/tests/modules/onlinesign/test.py @@ -13,7 +13,9 @@ knot = t.server("knot") zones = t.zone_rnd(4, dnssec=False, records=5) -t.link(zones, knot, journal_content="none") +t.link(zones, knot) + +knot.conf_zone(zones).journal_content = "none" knot.add_module(zones[0], ModOnlineSign()) knot.add_module(zones[1], ModOnlineSign("ECDSAP384SHA384", key_size="384")) knot.dnssec(zones[2]).enable = True diff --git a/tests-extra/tests/modules/onlinesign_rollovers/test.py b/tests-extra/tests/modules/onlinesign_rollovers/test.py index 2e49fa0b31..d9bafb1967 100644 --- a/tests-extra/tests/modules/onlinesign_rollovers/test.py +++ b/tests-extra/tests/modules/onlinesign_rollovers/test.py @@ -157,7 +157,7 @@ def watch_ksk_rollover(t, server, zone, before_keys, after_keys, total_keys, des wait_for_dnskey_count(t, server, after_keys, 28) check_zone(server, zone, after_keys, 1, 1, 1, desc + ": old key removed") -t = Test(stress=False) +t = Test(stress=False, tsig=False) ModOnlineSign.check() @@ -180,7 +180,8 @@ def cds_submission(): child.zonefile_sync = 24 * 60 * 60 -child.dnssec(child_zone).ksk_sbm_check = [ parent ] +child.conf_ss("submission", child_zone).parent = [ parent ] + child.add_module(child_zone, ModOnlineSign("ECDSAP384SHA384", key_size="384", prop_delay=11, ksc = [ parent ], ksci = 2, ksk_shared=True, cds_publish="always", cds_digesttype=random.choice(["sha256", "sha384"]))) diff --git a/tests-extra/tests/notify/retry/test.py b/tests-extra/tests/notify/retry/test.py index 7af57000d0..c2f1b8ff46 100644 --- a/tests-extra/tests/notify/retry/test.py +++ b/tests-extra/tests/notify/retry/test.py @@ -17,7 +17,7 @@ t.link(zone, master, slave2) t.link(zone, master, slave3) -master.zones[zone[0].name].retry_max = 10 +master.conf_zone(zone).retry_max_interval = 10 t.start() diff --git a/tests-extra/tests/quic/ddns/test.py b/tests-extra/tests/quic/ddns/test.py index f3962bb01d..3d226f81ca 100644 --- a/tests-extra/tests/quic/ddns/test.py +++ b/tests-extra/tests/quic/ddns/test.py @@ -25,7 +25,7 @@ def check_dnskey(a, b, zones): for z in zones: sender.dnssec(z).enable = True sender.dnssec(z).propagation_delay = 4 - sender.dnssec(z).dnskey_sync = [ recver ] + sender.conf_ss("dnskey-sync", z).remote = [ recver ] sender.dnssec(z).keytag_modulo = "0/1" sender.check_quic() diff --git a/tests-extra/tests/quic/xfr/test.py b/tests-extra/tests/quic/xfr/test.py index 293076cb5e..82808e4cea 100644 --- a/tests-extra/tests/quic/xfr/test.py +++ b/tests-extra/tests/quic/xfr/test.py @@ -24,11 +24,11 @@ master.dnssec(z).enable = True if master.valgrind: - slave.quic_idle_close_timeout = 25 # for DoQ xfrs - slave.tcp_remote_io_timeout = 20000 + slave.conf_srv().quic_idle_close_timeout = 25 # for DoQ xfrs + slave.conf_srv().tcp_remote_io_timeout = 20000 if slave.valgrind: - master.quic_idle_close_timeout = 25 # for sending DoQ notify - master.tcp_remote_io_timeout = 20000 + master.conf_srv().quic_idle_close_timeout = 25 # for sending DoQ notify + master.conf_srv().tcp_remote_io_timeout = 20000 MSG_DENIED_NOTIFY = "ACL, denied, action notify" MSG_DENIED_TRANSFER = "ACL, denied, action transfer" diff --git a/tests-extra/tests/records/malformed_rr/test.py b/tests-extra/tests/records/malformed_rr/test.py index 9118d907f1..532819228b 100644 --- a/tests-extra/tests/records/malformed_rr/test.py +++ b/tests-extra/tests/records/malformed_rr/test.py @@ -17,11 +17,11 @@ t.link(zone, master, slave) t.link(zone, zfloader) -master.zonefile_load = "none" -master.zones[ZONE].journal_content = "all" +master.conf_zone(zone).zonefile_load = "none" +master.conf_zone(zone).journal_content = "all" -zfloader.zonefile_load = "difference-no-serial" -zfloader.zones[ZONE].journal_content = "all" +zfloader.conf_zone(zone).zonefile_load = "difference-no-serial" +zfloader.conf_zone(zone).journal_content = "all" shutil.copytree(os.path.join(t.data_dir, "journal"), os.path.join(master.dir, "journal")) diff --git a/tests-extra/tests/redis/basic/test.py b/tests-extra/tests/redis/basic/test.py index c140f094d5..5e01555991 100644 --- a/tests-extra/tests/redis/basic/test.py +++ b/tests-extra/tests/redis/basic/test.py @@ -15,11 +15,11 @@ t.link(zones, master) t.link(zones, slave) -master.zonefile_sync = "0" +master.conf_zone(zones).zonefile_sync = "0" +master.conf_zone(zones).zone_db_output = "1" +slave.conf_zone(zones).zone_db_input = "1" for z in zones: - master.zones[z.name].redis_out = "1" - slave.zones[z.name].redis_in = "1" slave.zones[z.name].zfile.remove() t.start() @@ -67,13 +67,13 @@ # Add to DB manually. Slave will diverge from master. for z in zones: - txn = t.redis.cli("knot.upd.begin", z.name, master.zones[z.name].redis_out) + txn = t.redis.cli("knot.upd.begin", z.name, master.conf_zone(z).zone_db_output) r = t.redis.cli("knot.upd.remove", z.name, txn, "example.com. 3600 in soa dns1.example.com. hostmaster.example.com. %d 10800 3600 1209600 7200" % serials3[z.name]) r = t.redis.cli("knot.upd.add", z.name, txn, "example.com. 3600 in soa dns1.example.com. hostmaster.example.com. %d 10800 3600 1209600 7200" % (serials3[z.name] + 1)) r = t.redis.cli("knot.upd.add", z.name, txn, "txtadd 3600 A 1.2.3.4") r = t.redis.cli("knot.upd.commit", z.name, txn) - r = t.redis.cli("knot.upd.load", z.name, master.zones[z.name].redis_out, str(serials3[z.name])) + r = t.redis.cli("knot.upd.load", z.name, master.conf_zone(z).zone_db_output, str(serials3[z.name])) if not "txtadd" in r: set_err("NO TXTADD IN UPD") diff --git a/tests-extra/tests/tls/ddns/test.py b/tests-extra/tests/tls/ddns/test.py index 29cbc1dcf6..ab5d3aa393 100644 --- a/tests-extra/tests/tls/ddns/test.py +++ b/tests-extra/tests/tls/ddns/test.py @@ -25,7 +25,7 @@ def check_dnskey(a, b, zones): for z in zones: sender.dnssec(z).enable = True sender.dnssec(z).propagation_delay = 4 - sender.dnssec(z).dnskey_sync = [ recver ] + sender.conf_ss("dnskey-sync", z).remote = [ recver ] sender.dnssec(z).keytag_modulo = "0/1" t.start() diff --git a/tests-extra/tests/tls/xfr/test.py b/tests-extra/tests/tls/xfr/test.py index ef777a35e6..3e6665e71a 100644 --- a/tests-extra/tests/tls/xfr/test.py +++ b/tests-extra/tests/tls/xfr/test.py @@ -25,13 +25,13 @@ master.dnssec(z).enable = True if master.valgrind: - slave.quic_idle_close_timeout = 10 # for DoQ xfrs - master.tcp_io_timeout = 10000 - slave.tcp_io_timeout = 10000 - master.tcp_remote_io_timeout = 10000 - slave.tcp_remote_io_timeout = 10000 + slave.conf_srv().quic_idle_close_timeout = 10 # for DoQ xfrs + master.conf_srv().tcp_io_timeout = 10000 + slave.conf_srv().tcp_io_timeout = 10000 + master.conf_srv().tcp_remote_io_timeout = 10000 + slave.conf_srv().tcp_remote_io_timeout = 10000 if slave.valgrind: - master.quic_idle_close_timeout = 10 # for sending DoQ notify + master.conf_srv().quic_idle_close_timeout = 10 # for sending DoQ notify MSG_DENIED_NOTIFY = "ACL, denied, action notify" MSG_DENIED_TRANSFER = "ACL, denied, action transfer" diff --git a/tests-extra/tests/zone/backup/test.py b/tests-extra/tests/zone/backup/test.py index f976366151..29830fb82f 100644 --- a/tests-extra/tests/zone/backup/test.py +++ b/tests-extra/tests/zone/backup/test.py @@ -26,15 +26,16 @@ def test_added(server, zones, results): t.link(zones, master, slave) +slave.conf_zone(zones).journal_content = "all" +slave.conf_zone(zones).zonefile_load = "none" + for z in zones: if random.choice([True, False]): master.dnssec(z).enable = True - master.dnssec(z).alg = "ECDSAP256SHA256" + master.dnssec(z).algorithm = "ECDSAP256SHA256" master.dnssec(z).single_type_signing = False else: master.add_module(z, ModOnlineSign(algorithm="ECDSAP256SHA256")) - slave.zones[z.name].journal_content = "all" - slave.zonefile_load = "none" backup_dir = master.dir + "/backup" backup_dir2 = master.dir + "/backup2" # Backup of a backup, for debugging. @@ -45,8 +46,8 @@ def test_added(server, zones, results): valgrind_delay += 2 # even without valgrind, add some tolerance because rounding timestamps to whole seconds multiple times if master.valgrind: - master.semantic_check = False - slave.semantic_check = False + master.conf_zone(zones).semantic_checks = False + slave.conf_zone(zones).semantic_checks = False t.start() serials_init = slave.zones_wait(zones) diff --git a/tests-extra/tests/zone/backup_lock/test.py b/tests-extra/tests/zone/backup_lock/test.py index 8db5432656..9a4a64076e 100644 --- a/tests-extra/tests/zone/backup_lock/test.py +++ b/tests-extra/tests/zone/backup_lock/test.py @@ -64,8 +64,8 @@ def check_log_err(server, expect_err): labelfile = os.path.join(backup_dir, "knot_backup.label") if master.valgrind: - master.semantic_check = False - master2.semantic_check = False + master.conf_zone(zones).semantic_checks = False + master2.conf_zone(zones).semantic_checks = False t.start() serials_init = master.zones_wait(zones) diff --git a/tests-extra/tests/zone/backup_nosync/test.py b/tests-extra/tests/zone/backup_nosync/test.py index 7292d4fbfa..e1d9f5acf4 100644 --- a/tests-extra/tests/zone/backup_nosync/test.py +++ b/tests-extra/tests/zone/backup_nosync/test.py @@ -17,8 +17,8 @@ t.link(zone, master1) t.link(zone, master2) -master1.dnssec(zone[0]).enable = True -master1.zonefile_sync = -1 +master1.dnssec(zone).enable = True +master1.conf_zone(zone).zonefile_sync = -1 t.start() diff --git a/tests-extra/tests/zone/difse/test.py b/tests-extra/tests/zone/difse/test.py index 11003cf766..2f546341a7 100644 --- a/tests-extra/tests/zone/difse/test.py +++ b/tests-extra/tests/zone/difse/test.py @@ -40,9 +40,10 @@ def check_journal(server, zone, expect_zij, expect_chs): knot = t.server("knot") zone = t.zone("example.com.", storage=".") t.link(zone, knot) -knot.zonefile_sync = "-1" -knot.zones[zone[0].name].journal_content = "all" -knot.zonefile_load = "difference-no-serial" + +knot.conf_zone(zone).zonefile_sync = "-1" +knot.conf_zone(zone).journal_content = "all" +knot.conf_zone(zone).zonefile_load = "difference-no-serial" knot.update_zonefile(zone, version=start_version) diff --git a/tests-extra/tests/zone/difse2all/test.py b/tests-extra/tests/zone/difse2all/test.py index 5d3bc8fe9e..052c7c45e7 100644 --- a/tests-extra/tests/zone/difse2all/test.py +++ b/tests-extra/tests/zone/difse2all/test.py @@ -19,14 +19,15 @@ knot = t.server("knot") zone = t.zone("example.", storage=".") t.link(zone, knot) + knot.dnssec(zone).enable = True -knot.zonefile_sync = "-1" +knot.conf_zone(zone).zonefile_sync = "-1" t.start() serial = knot.zone_wait(zone) -knot.zones[zone[0].name].journal_content = "all" -knot.zonefile_load = "difference-no-serial" +knot.conf_zone(zone).journal_content = "all" +knot.conf_zone(zone).zonefile_load = "difference-no-serial" if purge_beforehand: knot.ctl("zone-purge -f +expire example.") diff --git a/tests-extra/tests/zone/dname_apex/test.py b/tests-extra/tests/zone/dname_apex/test.py index d8d9dc8518..0ef94af282 100644 --- a/tests-extra/tests/zone/dname_apex/test.py +++ b/tests-extra/tests/zone/dname_apex/test.py @@ -14,9 +14,9 @@ t.link(zones, master, slave) -master.zonefile_sync = 0 -master.zonefile_load = "difference-no-serial" -master.zones[ZONE].journal_content = "all" +master.conf_zone(zones).zonefile_sync = 0 +master.conf_zone(zones).zonefile_load = "difference-no-serial" +master.conf_zone(zones).journal_content = "all" if random.choice([False, True]): master.dnssec(zones[0]).enable = True diff --git a/tests-extra/tests/zone/expire/test.py b/tests-extra/tests/zone/expire/test.py index 00ce0e72ae..eddc18ee71 100644 --- a/tests-extra/tests/zone/expire/test.py +++ b/tests-extra/tests/zone/expire/test.py @@ -30,13 +30,13 @@ def fix_xfrout(server, zone): master = t.server("knot") slave = t.server("knot") sub_slave = t.server("knot") -slave.tcp_remote_io_timeout = "1000" t.link(zone, master, slave) t.link(zone, slave, sub_slave) -slave.zones[zone[0].name].expire_min = 16 -sub_slave.zones[zone[0].name].expire_min = 16 +slave.conf_srv().tcp_remote_io_timeout = "1000" +slave.conf_zone(zone).expire_min_interval = 16 +sub_slave.conf_zone(zone).expire_min_interval = 16 t.start() @@ -91,7 +91,7 @@ def fix_xfrout(server, zone): # expire timer difference (normally caused by multi-path propagation) # by lowering the expire value while keeping the serial. # Journal must be disabled in order to allow mangled SOA serials. -master.zones["example."].journal_content = "none" +master.conf_zone(zone).journal_content = "none" master.gen_confile() master.reload() master.ctl("zone-begin example.") diff --git a/tests-extra/tests/zone/external_vldt/test.py b/tests-extra/tests/zone/external_vldt/test.py index fb31fa388d..82d91ab184 100644 --- a/tests-extra/tests/zone/external_vldt/test.py +++ b/tests-extra/tests/zone/external_vldt/test.py @@ -39,16 +39,16 @@ def log_count_expect(server, pattern, expct): ZONE = zone[0].name LOG = "for external validation" -slave.async_start = True -slave.zones[ZONE].external = { "timeout": "10", - "new": dump_file(slave, "new"), - "rem": dump_file(slave, "diff"), - "add": dump_file(slave, "diff") } +slave.conf_srv().async_start = True +slave.conf_ss("external", zone).timeout = 10 +slave.conf_ss("external", zone).dump_new_zone = dump_file(slave, "new") +slave.conf_ss("external", zone).dump_removals = dump_file(slave, "diff") +slave.conf_ss("external", zone).dump_additions = dump_file(slave, "diff") def check_diff_types(types): - check_zf_types(slave.zones[ZONE].external["add"], types) + check_zf_types(slave.conf_ss("external", zone).dump_additions, types) -master.notify_delay = 0 +master.conf_zone(zone).notify_delay = 0 master.dnssec(zone[0]).enable = False t.start() @@ -94,7 +94,7 @@ def check_diff_types(types): serial = master.zone_wait(zone, serial) t.sleep(2) log_count_expect(slave, LOG, 3) -t.sleep(int(slave.zones[ZONE].external["timeout"])) +t.sleep(int(slave.conf_ss("external", zone).timeout)) resp = slave.dig(ZONE, "SOA") resp.check_soa_serial(serial - 2) @@ -125,7 +125,7 @@ def check_diff_types(types): up.send() serial = master.zone_wait(zone, serial) -slave.zonemd_generate = "zonemd-sha512" +slave.conf_zone(zone).zonemd_generate = "zonemd-sha512" slave.gen_confile() t.sleep(2) ctl.send_block(cmd="zone-thaw", zone=ZONE) diff --git a/tests-extra/tests/zone/flush_immediate/test.py b/tests-extra/tests/zone/flush_immediate/test.py index 9e2f187089..34786a94ee 100644 --- a/tests-extra/tests/zone/flush_immediate/test.py +++ b/tests-extra/tests/zone/flush_immediate/test.py @@ -14,12 +14,12 @@ master.dnssec(zone).enable = True -master.zonefile_sync = 0 -slave.zonefile_sync = 0 +master.conf_zone(zone).zonefile_sync = 0 +slave.conf_zone(zone).zonefile_sync = 0 if master.valgrind: - master.semantic_check = False - slave.semantic_check = False + master.conf_zone(zone).semantic_checks = False + slave.conf_zone(zone).semantic_checks = False t.start() diff --git a/tests-extra/tests/zone/include_from/test.py b/tests-extra/tests/zone/include_from/test.py index a5e1db1ea2..0cbbd14db2 100644 --- a/tests-extra/tests/zone/include_from/test.py +++ b/tests-extra/tests/zone/include_from/test.py @@ -27,7 +27,7 @@ parent_master = master if tld_axfr else flattener -flattener.zones[parent[0].name].include_from = childs +flattener.conf_zone(parent).include_from = [ z.name for z in childs ] flattener.dnssec(parent).enable = random.choice([False, True]) @@ -74,11 +74,11 @@ invalid_conf = random.choice(["include_self", "include_parent", "also_reverse"]) if invalid_conf == "include_self": - flattener.zones[parent[0].name].include_from = parent + flattener.conf_zone(parent).include_from = parent[0].name elif invalid_conf == "include_parent": - flattener.zones[childs[0].name].include_from = parent + flattener.conf_zone(childs[0]).include_from = parent[0].name else: - flattener.zones[parent[0].name].reverse_from = childs + flattener.conf_zone(parent).reverse_generate = [ z.name for z in childs ] flattener.gen_confile() try: flattener.reload() diff --git a/tests-extra/tests/zone/load_nothing/test.py b/tests-extra/tests/zone/load_nothing/test.py index 59ee3fbc67..8628e7a172 100644 --- a/tests-extra/tests/zone/load_nothing/test.py +++ b/tests-extra/tests/zone/load_nothing/test.py @@ -20,15 +20,16 @@ for z in zone: slave.dnssec(z).enable = True slave.dnssec(z).nsec3 = True - slave.dnssec(z).nsec3_salt_len = 0 + slave.dnssec(z).nsec3_salt_length = 0 slave.dnssec(z).rrsig_lifetime = 25 if SCENARIO == 1 else 20 slave.dnssec(z).rrsig_refresh = 5 - slave.dnssec(z).rrsig_prerefresh = 1 + slave.dnssec(z).rrsig_pre_refresh = 1 slave.dnssec(z).zone_max_ttl = 4 - slave.zones[z.name].journal_content = "all" -slave.zonefile_sync = "-1" -slave.zonefile_load = "none" -slave.zonemd_generate = "zonemd-sha384" + +slave.conf_zone(zone).journal_content = "all" +slave.conf_zone(zone).zonefile_sync = "-1" +slave.conf_zone(zone).zonefile_load = "none" +slave.conf_zone(zone).zonemd_generate = "zonemd-sha384" t.start() @@ -42,7 +43,7 @@ slave.zones_wait(zone) if SCENARIO == 2: - slave.zonemd_generate = "zonemd-sha512" + slave.conf_zone(zone).zonemd_generate = "zonemd-sha512" slave.gen_confile() slave.ctl("reload") diff --git a/tests-extra/tests/zone/max_ttl/test.py b/tests-extra/tests/zone/max_ttl/test.py index 6eaa70d9a8..425397c3dc 100644 --- a/tests-extra/tests/zone/max_ttl/test.py +++ b/tests-extra/tests/zone/max_ttl/test.py @@ -39,8 +39,8 @@ def check_item(server, section, item, value, zone=None): t.link(zones, knot) -knot.zonefile_load = "difference-no-serial" -knot.zones[zones[0].name].journal_content = "all" +knot.conf_zone(zones).zonefile_load = "difference-no-serial" +knot.conf_zone(zones).journal_content = "all" knot.dnssec(zones).enable = True t.start() diff --git a/tests-extra/tests/zone/refresh_limits/test.py b/tests-extra/tests/zone/refresh_limits/test.py index b8a60f643a..a520724b46 100644 --- a/tests-extra/tests/zone/refresh_limits/test.py +++ b/tests-extra/tests/zone/refresh_limits/test.py @@ -19,12 +19,12 @@ master.disable_notify = True -slave.zones[zone_min.name].refresh_min = 12 -slave.zones[zone_max.name].refresh_max = 9 -slave.zones[zone_min.name].retry_min = 12 -slave.zones[zone_max.name].retry_max = 9 -slave.zones[zone_min.name].expire_min = 24 -slave.zones[zone_max.name].expire_max = 18 +slave.conf_zone(zone_min).refresh_min_interval = 12 +slave.conf_zone(zone_max).refresh_max_interval = 9 +slave.conf_zone(zone_min).retry_min_interval = 12 +slave.conf_zone(zone_max).retry_max_interval = 9 +slave.conf_zone(zone_min).expire_min_interval = 24 +slave.conf_zone(zone_max).expire_max_interval = 18 t.start() diff --git a/tests-extra/tests/zone/retransfer/test.py b/tests-extra/tests/zone/retransfer/test.py index b2f3b4639d..0697ee8d10 100644 --- a/tests-extra/tests/zone/retransfer/test.py +++ b/tests-extra/tests/zone/retransfer/test.py @@ -13,7 +13,7 @@ zone = t.zone("example.com.", storage=".") t.link(zone, master, slave) -slave.zonefile_sync = 0 +slave.conf_zone(zone).zonefile_sync = 0 # Load newer zone to the slave slave.update_zonefile(zone, version="slave") diff --git a/tests-extra/tests/zone/reverse/test.py b/tests-extra/tests/zone/reverse/test.py index 08ad7e3bf8..85b69ed8fd 100644 --- a/tests-extra/tests/zone/reverse/test.py +++ b/tests-extra/tests/zone/reverse/test.py @@ -20,8 +20,7 @@ t.zone("0.8.b.d.1.0.0.2.ip6.arpa.", storage=".") t.link(zones, knot) -knot.zones[zones[2].name].reverse_from = [ zones[0], zones[1] ] -knot.zones[zones[3].name].reverse_from = [ zones[0], zones[1] ] +knot.conf_zone(zones[2:]).reverse_generate = [ zones[0].name, zones[1].name ] for z in zones: knot.dnssec(z).enable = random.choice([False, True]) diff --git a/tests-extra/tests/zone/semcheck_soft/test.py b/tests-extra/tests/zone/semcheck_soft/test.py index 236ae49bf7..fda8dde082 100644 --- a/tests-extra/tests/zone/semcheck_soft/test.py +++ b/tests-extra/tests/zone/semcheck_soft/test.py @@ -14,8 +14,8 @@ t.link(zone, master, slave, ixfr=True) -master.semantic_check = "soft" -slave.semantic_check = "soft" +master.conf_zone(zone).semantic_checks = "soft" +slave.conf_zone(zone).semantic_checks = "soft" t.start() diff --git a/tests-extra/tests/zone/serial_modulo/test.py b/tests-extra/tests/zone/serial_modulo/test.py index 8d49f1414b..7dd2dceae0 100644 --- a/tests-extra/tests/zone/serial_modulo/test.py +++ b/tests-extra/tests/zone/serial_modulo/test.py @@ -34,12 +34,10 @@ def check_serials(serials, modulo_a, msg): source = knot t.link(zones, knot) -for z in zones: - knot.dnssec(z).enable = True - knot.zones[z.name].serial_modulo = "%d/%d" % (MODULO_A, MODULO_B) - - knot.zonefile_load = "difference-no-serial" - knot.zones[z.name].journal_content = "all" +knot.dnssec(zones).enable = True +knot.conf_zone(zones).serial_modulo = "%d/%d" % (MODULO_A, MODULO_B) +knot.conf_zone(zones).zonefile_load = "difference-no-serial" +knot.conf_zone(zones).journal_content = "all" detail_log("SCENARIO " + SCENARIO) t.start() diff --git a/tests-extra/tests/zone/skip/test.py b/tests-extra/tests/zone/skip/test.py index 33ceab8330..df3d9cb96c 100644 --- a/tests-extra/tests/zone/skip/test.py +++ b/tests-extra/tests/zone/skip/test.py @@ -13,7 +13,7 @@ server.dnssec(zone).enable = True -server.zonefile_skip = [ "aaaa", "dnssec" ] +server.conf_zone(zone).zonefile_skip = [ "aaaa", "dnssec" ] t.start() @@ -39,7 +39,7 @@ zf.check_count(0, "RRSIG") zf.check_count(0, "NSEC") -server.zonefile_skip = [ "a", "nsec" ] +server.conf_zone(zone).zonefile_skip = [ "a", "nsec" ] server.gen_confile() server.reload() t.sleep(2) @@ -63,9 +63,9 @@ zf.check_count(10, "RRSIG") zf.check_count(0, "NSEC") -server.zonefile_sync = "-1" -server.zonefile_load = "difference-no-serial" -server.zones[zone[0].name].journal_content = "all" +server.conf_zone(zone).zonefile_sync = "-1" +server.conf_zone(zone).zonefile_load = "difference-no-serial" +server.conf_zone(zone).journal_content = "all" server.gen_confile() server.reload() t.sleep(1) diff --git a/tests-extra/tests/zone/timers/test.py b/tests-extra/tests/zone/timers/test.py index 80e83852e5..995390b1ff 100644 --- a/tests-extra/tests/zone/timers/test.py +++ b/tests-extra/tests/zone/timers/test.py @@ -106,7 +106,7 @@ def refresh_tests(t, zone, master, slave): slave = t.server("knot") for server in [master, slave]: - server.tcp_remote_io_timeout = "1000" + server.conf_srv().tcp_remote_io_timeout = "1000" t.link([zone], master, slave) master.disable_notify = True diff --git a/tests-extra/tests/zone/update_delay/test.py b/tests-extra/tests/zone/update_delay/test.py index 3f64d24664..eff623ffa0 100644 --- a/tests-extra/tests/zone/update_delay/test.py +++ b/tests-extra/tests/zone/update_delay/test.py @@ -18,11 +18,11 @@ t.link(zones, master, slave) -master.update_delay = 6 -slave.update_delay = 6 +master.conf_zone(zones).update_delay = 6 +slave.conf_zone(zones).update_delay = 6 -master.serial_policy = "unixtime" -slave.serial_policy = "unixtime" +master.conf_zone(zones).serial_policy = "unixtime" +slave.conf_zone(zones).serial_policy = "unixtime" for z in zones: master.zones[z.name].zfile.update_soa(serial=int(time.time())) @@ -31,7 +31,7 @@ def increment_serials(server, zones, serials): res = serials for z in zones: - res[z.name] += server.update_delay + res[z.name] += server.conf_zone(zones[0]).update_delay return res def zones_wait_eq(server, zones, serials): diff --git a/tests-extra/tests/zone/zij_reload/test.py b/tests-extra/tests/zone/zij_reload/test.py index d32ae2e3ba..84aa0de584 100644 --- a/tests-extra/tests/zone/zij_reload/test.py +++ b/tests-extra/tests/zone/zij_reload/test.py @@ -24,8 +24,8 @@ knot.stop() -knot.zones[zone[0].name].journal_content = "all" -knot.zonefile_load = "none" +knot.conf_zone(zone).journal_content = "all" +knot.conf_zone(zone).zonefile_load = "none" knot.gen_confile() knot.zones[zone[0].name].zfile.remove() # just to make sure diff --git a/tests-extra/tests/zone/zonemd_flush/test.py b/tests-extra/tests/zone/zonemd_flush/test.py index 81fb2033e1..8b0cc8017a 100644 --- a/tests-extra/tests/zone/zonemd_flush/test.py +++ b/tests-extra/tests/zone/zonemd_flush/test.py @@ -68,25 +68,25 @@ def check_serial_incr(server, zones, serials, expect_incr, msg): if DNSSEC: for z in zone: master.dnssec(z).enable = True - slave.dnssec(z).validate = True + slave.conf_zone(z).dnssec_validation = True -master.zonefile_sync = 0 -master.zonemd_generate = "none" -slave.zonemd_verify = False +master.conf_zone(zone).zonefile_sync = 0 +master.conf_zone(zone).zonemd_generate = "none" +slave.conf_zone(zone).zonemd_verify = False t.start() serial = slave.zones_wait(zone) check_zonemd(master, zone, Algo.NONE) -master.zonemd_generate = "zonemd-sha384" +master.conf_zone(zone).zonemd_generate = "zonemd-sha384" master.gen_confile() master.reload() -slave.zonemd_verify = True +slave.conf_zone(zone).zonemd_verify = True check_serial_incr(slave, zone, serial, 1, "alg change") check_zonemd(master, zone, Algo.SHA384) -master.zonemd_generate = "zonemd-sha512" +master.conf_zone(zone).zonemd_generate = "zonemd-sha512" master.gen_confile() master.reload() check_serial_incr(slave, zone, serial, 1, "alg change") @@ -118,28 +118,28 @@ def check_serial_incr(server, zones, serials, expect_incr, msg): check_serial_incr(slave, zone, serial, 2, "ZF reload") check_zonemd(master, zone, Algo.SHA512) -slave.zonemd_verify = False +slave.conf_zone(zone).zonemd_verify = False slave.gen_confile() slave.reload() -master.zonemd_generate = "none" +master.conf_zone(zone).zonemd_generate = "none" master.gen_confile() master.reload() check_zonemd(master, zone, Algo.SHA512) -master.zonemd_generate = "remove" +master.conf_zone(zone).zonemd_generate = "remove" master.gen_confile() master.reload() check_serial_incr(slave, zone, serial, 1, "ZONEMD remove") check_zonemd(master, zone, Algo.NONE) # removing when there's nothing left to remove shouldn't do anything -master.zonemd_generate = "none" +master.conf_zone(zone).zonemd_generate = "none" master.gen_confile() master.reload() check_zonemd(master, zone, Algo.NONE) -master.zonemd_generate = "remove" +master.conf_zone(zone).zonemd_generate = "remove" master.gen_confile() master.reload() check_zonemd(master, zone, Algo.NONE) diff --git a/tests-extra/tests/zone/zonemd_load/test.py b/tests-extra/tests/zone/zonemd_load/test.py index 5acab70c51..1251fb9c58 100644 --- a/tests-extra/tests/zone/zonemd_load/test.py +++ b/tests-extra/tests/zone/zonemd_load/test.py @@ -16,9 +16,9 @@ zone = t.zone(ZONE) t.link(zone, master, slave) -master.zonefile_sync = -1 -master.zonemd_generate = "zonemd-sha384" -slave.zonemd_verify = True +master.conf_zone(zone).zonefile_sync = -1 +master.conf_zone(zone).zonemd_generate = "zonemd-sha384" +slave.conf_zone(zone).zonemd_verify = True VALIDATE_ZONEFILE = random.choice([True, False]) backup_cnt = 0 @@ -30,9 +30,9 @@ check_log("ZONE FILE LOAD: " + load + ", DNSSEC: " + str(dnssec) + ", valide ZF: " + str(VALIDATE_ZONEFILE)) master.ctl("-f zone-purge +journal +timers +kaspdb " + ZONE) - master.zonefile_load = load - master.zones[ZONE].journal_content = "all" if load == "difference-no-serial" else "changes" - master.zones[ZONE].dnssec.enable = dnssec + master.conf_zone(zone).zonefile_load = load + master.conf_zone(zone).journal_content = "all" if load == "difference-no-serial" else "changes" + master.dnssec(zone).enable = dnssec master.gen_confile() master.stop() master.start() diff --git a/tests-extra/tools/dnstest/config.py b/tests-extra/tools/dnstest/config.py index 86836893c1..e6c2989fdc 100644 --- a/tests-extra/tools/dnstest/config.py +++ b/tests-extra/tools/dnstest/config.py @@ -31,6 +31,28 @@ def item_list(self, name, values): self.conf += ', '.join(str(value) for value in values) self.conf += "]\n" + def item_list_str(self, name, values): + self.conf += " %s: [ \"" % name + self.conf += '\", \"'.join(str(value) for value in values) + self.conf += "\" ]\n" + + def item_type(self, name, value): + if value is None: + return + elif isinstance(value, bool): + self.item(name, "on" if value else "off") + elif isinstance(value, str): + self.item_str(name, value) + elif isinstance(value, list): + if len(value) < 1: + return + elif isinstance(value[0], str): + self.item_list_str(name, value) + else: + self.item_list(name, value) + else: + self.item(name, value) + def id_item(self, name, value): if not self.first_item: self.conf += "\n" diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 22fa8a1545..deda3c6211 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -37,48 +37,36 @@ def zone_arg_check(zone): return zone[0] return zone -class ZoneDnssec(object): - '''Zone DNSSEC signing configuration''' - - def __init__(self): - self.enable = None - self.validate = None - self.disable = None # create the policy in config, but set dnssec-signing: off - self.manual = None - self.keystores = [] - self.single_type_signing = None - self.alg = None - self.ksk_size = None - self.zsk_size = None - self.dnskey_ttl = None - self.zone_max_ttl = None - self.keytag_modulo = "0/1" - self.ksk_lifetime = None - self.zsk_lifetime = None - self.delete_delay = None - self.propagation_delay = None - self.rrsig_lifetime = None - self.rrsig_refresh = None - self.rrsig_prerefresh = None - self.repro_sign = None - self.nsec3 = None - self.nsec3_iters = None - self.nsec3_opt_out = None - self.nsec3_salt_lifetime = None - self.nsec3_salt_len = None - self.ksk_sbm_check = [] - self.ksk_sbm_check_interval = None - self.ksk_sbm_timeout = None - self.ksk_sbm_delay = None - self.ds_push = None - self.dnskey_sync = None - self.ksk_shared = None - self.shared_policy_with = None - self.cds_publish = None - self.cds_digesttype = None - self.dnskey_mgmt = None - self.offline_ksk = None - self.signing_threads = None +class ConfMultidict(object): + def __init__(self, zonenames, all_zones_conf, remotes): + # NOTE this works like `self.zonenames = zonenames` EXCEPT that would interfere with the redefinition of __setattr__ therefore setting thru self.__dict__ which is inertial. + self.__dict__['zonenames'] = zonenames # List of names (strings!) of zones that are to be manipulated by this multidict. They SHOULD be a subset of zones configured at the server. + self.__dict__['all_zones_conf'] = all_zones_conf # Whole subsection configuration of the server, which is a dict() mapping zone names to dicts of configuration options belonging to this one subsection. This covers ALL server's configured zones. + self.__dict__['remotes'] = remotes # List of server remotes. These are augmented if any remote-relevant option value is configured. + # NOTE for configuration options not tied to any zones (e.g. 'server' subsection), the "server" string is a placeholder for zone name, so that the depth of nested dict()s is preserved. + + def __getattr__(self, attr): + if len(self.__dict__['zonenames']) != 1: + raise Exception("can't read configuration of multiple zones") + zonename = self.__dict__['zonenames'][0] + try: + return self.__dict__['all_zones_conf'][zonename][attr] + except KeyError: + return None + + def __setattr__(self, key, value): + if isinstance(value, list) and len(value) > 0: + if isinstance(value[0], Server): + if self.__dict__['remotes'] is not None: + self.__dict__['remotes'].update(value) + value = [ v.name for v in value ] + else: + if isinstance(value, Server): + if self.__dict__['remotes'] is not None: + self.__dict__['remotes'].add(value) + value = value.name + for zonename in self.__dict__['zonenames']: + self.__dict__['all_zones_conf'][zonename][key] = value class ZoneCatalogRole(enum.IntEnum): """Zone catalog roles.""" @@ -92,30 +80,17 @@ class ZoneCatalogRole(enum.IntEnum): class Zone(object): '''DNS zone description''' - def __init__(self, zone_file, ddns=False, ixfr=False, journal_content="changes"): + def __init__(self, zone_file, ddns=False, ixfr=False): self.zfile = zone_file self.masters = set() self.slaves = set() - self.redis_in = None - self.redis_out = None - self.serial_modulo = None self.ddns = ddns self.ixfr = ixfr - self.journal_content = journal_content # journal contents self.modules = [] - self.reverse_from = None - self.include_from = None - self.external = None - self.dnssec = ZoneDnssec() + self.dnssec = None # TODO temporary, refactor to remove self.catalog_role = ZoneCatalogRole.NONE self.catalog_gen_name = None # Generated catalog name for this member self.catalog_group = None - self.refresh_max = None - self.refresh_min = None - self.retry_max = None - self.retry_min = None - self.expire_max = None - self.expire_min = None @property def name(self): @@ -162,6 +137,14 @@ def __init__(self): self.data_dir = None + self.conf = { "server": { "server": self.conf_defaults_server() }, # see comments at ConfMultidict + "zone": dict(), + "policy": dict(), + "submission": dict(), + "dnskey-sync": dict(), + "external": dict() } + self.remotes = set() + self.nsid = None self.ident = None self.version = None @@ -177,12 +160,9 @@ def __init__(self): self.cert_hostname = list() self.ca_file = str() self.cert_key_file = None # quadruple (key_file, cert_file, hostname, pin) - self.udp_workers = None - self.tcp_workers = None - self.bg_workers = None self.fixed_port = False self.ctlport = None - self.external = False + self.external = False # Means an externally running server self.ctlkey = None self.ctlkeyfile = None self.tsig = None @@ -192,39 +172,11 @@ def __init__(self): self.zones = dict() - self.tcp_reuseport = None - self.tcp_remote_io_timeout = None - self.tcp_io_timeout = None - self.tcp_idle_timeout = None - self.quic_idle_close_timeout = None - self.udp_max_payload = None - self.udp_max_payload_ipv4 = None - self.udp_max_payload_ipv6 = None self.disable_notify = None - self.ddns_master = None - self.semantic_check = True - self.zonefile_sync = "1d" - self.notify_delay = None - self.update_delay = None - self.zonefile_load = None - self.zonefile_skip = None - self.zonemd_verify = None - self.zonemd_generate = None - self.ixfr_benevolent = None - self.ixfr_by_one = None - self.ixfr_from_axfr = None self.journal_db_size = 20 * 1024 * 1024 - self.journal_max_usage = 5 * 1024 * 1024 - self.journal_max_depth = 100 self.timer_db_size = 1 * 1024 * 1024 self.kasp_db_size = 10 * 1024 * 1024 self.catalog_db_size = 10 * 1024 * 1024 - self.zone_size_limit = None - self.serial_policy = None - self.auto_acl = None - self.async_start = None - self.provide_ixfr = None - self.master_pin_tol = None self.quic_log = None self.inquirer = None @@ -245,6 +197,31 @@ def __init__(self): self.binding_errors = 0 + def conf_base(self, conf_section, zones): + if not isinstance(zones, list): + zones = [ zones ] + zonenames = [ z if isinstance(z, str) else z.name for z in zones ] + + for zn in zonenames: + if zn not in conf_section: + conf_section[zn] = dict() + return ConfMultidict(zonenames, conf_section, self.remotes) + + def conf_ss(self, subsection, zones): + return self.conf_base(self.conf[subsection], zones) + + def conf_zone(self, zones): + return self.conf_ss("zone", zones) + + def conf_srv(self): + return self.conf_ss("server", ["server"]) + + def conf_defaults(self, zone_name): + return { "zone": dict() } + + def conf_defaults_server(self): + return dict() + def _check_socket(self, proto, port): if self.addr.startswith("/"): ux_socket = True @@ -285,27 +262,33 @@ def query_port(self, xdp=None): xdp = (random.random() < 0.8) return self.xdp_port if xdp else self.port - def set_master(self, zone, slave=None, ddns=False, ixfr=False, journal_content="changes"): + def set_new_zone(self, name, z): + self.zones[name] = z + cd = self.conf_defaults(name) + for subsection in cd: + self.conf[subsection].update(cd[subsection]) + + def set_master(self, zone, slave=None, ddns=False, ixfr=False): '''Set the server as a master for the zone''' if zone.name not in self.zones: master_file = zone.clone(self.dir + "/master") - z = Zone(master_file, ddns, ixfr, journal_content) - self.zones[zone.name] = z + z = Zone(master_file, ddns, ixfr) + self.set_new_zone(zone.name, z) else: z = self.zones[zone.name] if slave: z.slaves.add(slave) - def set_slave(self, zone, master, ddns=False, ixfr=False, journal_content="changes"): + def set_slave(self, zone, master, ddns=False, ixfr=False): '''Set the server as a slave for the zone''' slave_file = zone.clone(self.dir + "/slave", exists=False) if zone.name not in self.zones: - z = Zone(slave_file, ddns, ixfr, journal_content) - self.zones[zone.name] = z + z = Zone(slave_file, ddns, ixfr) + self.set_new_zone(zone.name, z) else: z = self.zones[zone.name] z.disable_master(slave_file) @@ -1007,9 +990,7 @@ def use_keys(self, zone): distutils.dir_util.copy_tree(zone.key_dir, self.keydir, update=True) def dnssec(self, zone): - zone = zone_arg_check(zone) - - return self.zones[zone.name].dnssec + return self.conf_ss("policy", zone) def enable_nsec3(self, zone, **args): zone = zone_arg_check(zone) @@ -1228,6 +1209,7 @@ def get_config(self): for zone in sorted(self.zones): z = self.zones[zone] + z.dnssec = self.dnssec(z) if not z.dnssec.enable: continue @@ -1257,6 +1239,7 @@ def get_config(self): for zone in sorted(self.zones): z = self.zones[zone] + z.dnssec = self.dnssec(z) s.begin("zone", z.name) s.item_str("file", z.zfile.path) s.item("check-names", "warn") @@ -1331,10 +1314,15 @@ def get_config(self): s.item("inline-signing", "yes") s.item("dnssec-policy", z.name) s.item_str("key-directory", self.keydir) - if z.dnssec.ksk_sbm_check: + if zone in self.conf["submission"] and "parent" in self.conf["submission"][zone]: parents = "" - for parent in z.dnssec.ksk_sbm_check: - parents += "%s port %i; " % (parent.addr, parent.port) + for parent in self.conf["submission"][zone]["parent"]: + parmt = None + for rmt in self.remotes: + if rmt.name == parent: + parmt = rmt + if parmt: + parents += "%s port %i; " % (parmt.addr, parmt.port) s.item("parental-agents", "{ %s}" % parents) s.end() @@ -1350,6 +1338,7 @@ def ctl_sock_rnd(self): def start(self, clean=False, fatal=True): for zname in self.zones: z = self.zones[zname] + z.dnssec = self.dnssec(z) if z.dnssec.enable != True: continue @@ -1376,7 +1365,7 @@ def start(self, clean=False, fatal=True): outf.write(line) #if z.dnssec.nsec3: #n3flag = 1 if z.dnssec.nsec3_opt_out else 0 - #n3iters = z.dnssec.nsec3_iters or 0 + #n3iters = z.dnssec.nsec3_iterations or 0 #outf.write("%s NSEC3PARAM 1 %d %d -\n" % (z.name, n3flag, n3iters)) # this does not work! super().start(clean, fatal) @@ -1385,7 +1374,7 @@ def start(self, clean=False, fatal=True): z = self.zones[zname] if z.dnssec.nsec3: n3flag = 1 if z.dnssec.nsec3_opt_out else 0 - n3iters = z.dnssec.nsec3_iters or 0 + n3iters = z.dnssec.nsec3_iterations or 0 self.ctl("signing -nsec3param 1 %d %d - %s" % (n3flag, n3iters, z.name)) class Knot(Server): @@ -1410,8 +1399,19 @@ def listening(self): def wait_function(self, wait=False): # needed for compatibility with Bind class pass + def conf_defaults(self, zone_name): + cd = { "zone": dict(), "policy": dict() } + cd["zone"][zone_name] = { "zonefile_sync": "1d", "semantic_checks": True, "notify_delay": random.randint(0, 1), + "journal_max_usage": 5 * 1024 * 1024, "adjust_threads": random.randint(1, 4) } + cd["policy"][zone_name] = { "keystore": [], "keytag_modulo": '0/1', "signing_threads": random.randint(1, 4) } + return cd + + def conf_defaults_server(self): + return { "remote_pool_limit": random.randint(0, 6), "remote_retry_delay": random.choice([0, 1, 5]) } + def flush(self, zone=None, wait=False): - params = "-f " if str(self.zonefile_sync)[0] == '-' else "" + one_zone = list(self.zones)[0] if zone is None and len(self.zones) > 0 else zone + params = "-f " if one_zone is not None and str(self.conf_zone(one_zone).zonefile_sync)[0] == '-' else "" if zone: self.ctl("%szone-flush %s" % (params, zone.name), wait=wait) else: @@ -1454,10 +1454,6 @@ def _key(self, conf, keys, key, comment): conf.item_str("secret", key.key) keys.add(key.name) - def _bool(self, conf, name, value): - if value != None: - conf.item_str(name, "on" if value else "off") - def _str(self, conf, name, value): if value != None: conf.item_str(name, value) @@ -1507,9 +1503,10 @@ def config_xfr(self, zone, conf): acl += ", acl_%s" % slave.name if slaves: conf.item("notify", "[%s]" % slaves) - for remote in zone.dnssec.dnskey_sync if zone.dnssec.dnskey_sync else []: - acl += ", acl_%s_ddns" % remote.name - if not self.auto_acl: + if zone.name in self.conf["dnskey-sync"]: + for rmt in self.conf["dnskey-sync"][zone.name]["remote"]: + acl += ", acl_%s" % rmt + if not self.conf_srv().automatic_acl: conf.item("acl", "[%s]" % acl) def get_config(self): @@ -1524,35 +1521,21 @@ def get_config(self): self._on_str_hex(s, "nsid", self.nsid) s.item_str("rundir", self.dir) s.item_str("pidfile", os.path.join(self.dir, self.pidfile)) + + for ci, val in self.conf["server"]["server"].items(): + s.item_type(ci.replace("_", "-"), val) + if self.addr.startswith("/"): s.item_str("listen", "%s" % self.addr) else: s.item_str("listen", "%s@%s" % (self.addr, self.port)) + for addr in self.addr_extra: + s.item_str("listen", "%s@%s" % (addr, self.port)) if self.quic_port: s.item_str("listen-quic", "%s@%s" % (self.addr, self.quic_port)) if self.tls_port: s.item_str("listen-tls", "%s@%s" % (self.addr, self.tls_port)) - if self.udp_workers: - s.item_str("udp-workers", self.udp_workers) - if self.tcp_workers: - s.item_str("tcp-workers", self.tcp_workers) - if self.bg_workers: - s.item_str("background-workers", self.bg_workers) - for addr in self.addr_extra: - s.item_str("listen", "%s@%s" % (addr, self.port)) - self._bool(s, "tcp-reuseport", self.tcp_reuseport) - self._str(s, "tcp-remote-io-timeout", self.tcp_remote_io_timeout) - self._str(s, "tcp-io-timeout", self.tcp_io_timeout) - self._str(s, "tcp-idle-timeout", self.tcp_idle_timeout) - self._str(s, "quic-idle-close-timeout", self.quic_idle_close_timeout) - self._str(s, "udp-max-payload", self.udp_max_payload) - self._str(s, "udp-max-payload-ipv4", self.udp_max_payload_ipv4) - self._str(s, "udp-max-payload-ipv6", self.udp_max_payload_ipv6) - self._str(s, "remote-pool-limit", str(random.randint(0,6))) - self._str(s, "remote-retry-delay", str(random.choice([0, 1, 5]))) - self._bool(s, "automatic-acl", self.auto_acl) - self._bool(s, "async-start", self.async_start) if self.cert_key_file: s.item_str("key-file", self.cert_key_file[0]) s.item_str("cert-file", self.cert_key_file[1]) @@ -1574,118 +1557,45 @@ def get_config(self): s.item_str("timeout", "15") s.end() + all_remotes = set() + for zone in self.zones: + z = self.zones[zone] + all_remotes.update(z.masters) + all_remotes.update(z.slaves) + all_remotes.update(self.remotes) + if self.tsig: keys = set() # Duplicy check. s.begin("key") self._key(s, keys, self.tsig_test, "test") self._key(s, keys, self.tsig, "local") - - for zone in sorted(self.zones): - z = self.zones[zone] - for master in z.masters: - self._key(s, keys, master.tsig, master.name) - for slave in z.slaves: - self._key(s, keys, slave.tsig, slave.name) - for remote in z.dnssec.dnskey_sync if z.dnssec.dnskey_sync else []: - self._key(s, keys, remote.tsig, remote.name) + for rmt in all_remotes: + self._key(s, keys, rmt.tsig, rmt.name) s.end() - have_remote = False - servers = set() # Duplicity check. - for zone in sorted(self.zones): - z = self.zones[zone] - for master in z.masters: - if master.name not in servers: - if not have_remote: - s.begin("remote") - have_remote = True - s.id_item("id", master.name) - if master.quic_port or master.tls_port: - s.item_str("address", "%s@%s" % (master.addr, master.tls_port or master.quic_port)) - s.item_str("tls" if master.tls_port else "quic", "on") - if master.cert_key: - s.item_str("cert-key", master.cert_key) - elif master.cert_hostname: - s.item_list("cert-hostname", master.cert_hostname) - elif master.cert_key_file: - s.item_str("cert-key", master.cert_key_file[3]) - else: - if master.addr.startswith("/"): - s.item_str("address", "%s" % master.addr) - else: - s.item_str("address", "%s@%s" % (master.addr, master.query_port())) - if self.tsig: - s.item_str("key", self.tsig.name) - if self.via: - s.item_str("via", self.via) - if master.no_xfr_edns: - s.item_str("no-edns", "on") - servers.add(master.name) - for slave in z.slaves: - if slave.name not in servers: - if not have_remote: - s.begin("remote") - have_remote = True - s.id_item("id", slave.name) - if slave.quic_port or slave.tls_port: - s.item_str("address", "%s@%s" % (slave.addr, slave.tls_port or slave.quic_port)) - s.item_str("tls" if slave.tls_port else "quic", "on") - if slave.cert_key: - s.item_str("cert-key", slave.cert_key) - elif slave.cert_hostname: - s.item_list("cert-hostname", slave.cert_hostname) - elif slave.cert_key_file: - s.item_str("cert-key", slave.cert_key_file[3]) - else: - if slave.addr.startswith("/"): - s.item_str("address", "%s" % slave.addr) - else: - s.item_str("address", "%s@%s" % (slave.addr, slave.query_port())) - if self.via: - s.item_str("via", self.via) - if self.tsig: - s.item_str("key", self.tsig.name) - servers.add(slave.name) - for parent in z.dnssec.ksk_sbm_check + [ z.dnssec.ds_push ] if z.dnssec.ds_push else z.dnssec.ksk_sbm_check: - if isinstance(parent, Server) and parent.name not in servers: - if not have_remote: - s.begin("remote") - have_remote = True - s.id_item("id", parent.name) - if parent.addr.startswith("/"): - s.item_str("address", "%s" % parent.addr) - else: - s.item_str("address", "%s@%s" % (parent.addr, parent.port)) - if self.via: - s.item_str("via", self.via) - servers.add(parent.name) - for remote in z.dnssec.dnskey_sync if z.dnssec.dnskey_sync else []: - if remote.name not in servers: - if not have_remote: - s.begin("remote") - have_remote = True - s.id_item("id", remote.name) - if remote.quic_port or remote.tls_port: - s.item_str("address", "%s@%s" % (remote.addr, remote.tls_port or remote.quic_port)) - s.item_str("tls" if remote.tls_port else "quic", "on") - if remote.cert_key: - s.item_str("cert-key", remote.cert_key) - elif remote.cert_hostname: - s.item_list("cert-hostname", remote.cert_hostname) - elif remote.cert_key_file: - s.item_str("cert-key", remote.cert_key_file[3]) - else: - if remote.addr.startswith("/"): - s.item_str("address", "%s" % remote.addr) - else: - s.item_str("address", "%s@%s" % (remote.addr, remote.port)) - if remote.via: - s.item_str("via", self.via) - if remote.tsig: - s.item_str("key", self.tsig.name) - servers.add(remote.name) - - if have_remote: + for rmt in all_remotes: + s.begin("remote") + s.id_item("id", rmt.name) + if rmt.quic_port or rmt.tls_port: + s.item_str("address", "%s@%s" % (rmt.addr, rmt.tls_port or rmt.quic_port)) + s.item_str("tls" if rmt.tls_port else "quic", "on") + if rmt.cert_key: + s.item_str("cert-key", rmt.cert_key) + elif rmt.cert_hostname: + s.item_list("cert-hostname", rmt.cert_hostname) + elif rmt.cert_key_file: + s.item_str("cert-key", rmt.cert_key_file[3]) + else: + if rmt.addr.startswith("/"): + s.item_str("address", "%s" % rmt.addr) + else: + s.item_str("address", "%s@%s" % (rmt.addr, rmt.query_port())) + if self.tsig: + s.item_str("key", self.tsig.name) + if self.via: + s.item_str("via", self.via) + if rmt.no_xfr_edns: + s.item_str("no-edns", "on") s.end() s.begin("acl") @@ -1695,49 +1605,34 @@ def get_config(self): s.item_str("key", self.tsig_test.name) s.item("action", "[transfer, notify, update]") - servers = set() # Duplicity check. - for zone in sorted(self.zones): - z = self.zones[zone] - for master in z.masters: - if master.name not in servers: - s.id_item("id", "acl_%s" % master.name) - if master.addr.startswith("/"): - s.item_str("address", self.addr) - else: - s.item_str("address", master.addr) - if master.tsig: - s.item_str("key", master.tsig.name) - if master.cert_key: - s.item_str("cert-key", master.cert_key) - if master.cert_hostname: - s.item_list("cert-hostname", master.cert_hostname) - s.item("action", "notify") - servers.add(master.name) - for slave in z.slaves: - if slave.name in servers: - continue - s.id_item("id", "acl_%s" % slave.name) - if slave.addr.startswith("/"): - s.item_str("address", self.addr) - else: - s.item_str("address", slave.addr) - if slave.tsig: - s.item_str("key", slave.tsig.name) - if slave.cert_key: - s.item_str("cert-key", slave.cert_key) - if slave.cert_hostname: - s.item_list("cert-hostname", slave.cert_hostname) - s.item("action", "[transfer" + (", update" if z.ddns else "") + "]") - servers.add(slave.name) - for remote in z.dnssec.dnskey_sync if z.dnssec.dnskey_sync else []: - dupl_name = remote.name + "_ddns" - if dupl_name in servers: - continue - s.id_item("id", "acl_%s" % dupl_name) - if remote.tsig: - s.item_str("key", remote.tsig.name) - s.item("action", "update") - servers.add(dupl_name) + for rmt in all_remotes: + aclaction = set() + for zone in self.zones: + z = self.zones[zone] + if rmt in z.masters: + aclaction.add("notify") + if rmt in z.slaves: + aclaction.add("transfer") + if z.ddns: + aclaction.add("update") + if zone in self.conf["dnskey-sync"] and rmt.name in self.conf["dnskey-sync"][zone]["remote"]: + aclaction.add("update") + + if len(aclaction) < 1: + continue + + s.id_item("id", "acl_%s" % rmt.name) + if rmt.addr.startswith("/"): + s.item_str("address", self.addr) + else: + s.item_str("address", rmt.addr) + if rmt.tsig: + s.item_str("key", rmt.tsig.name) + if rmt.cert_key: + s.item_str("cert-key", rmt.cert_key) + if rmt.cert_hostname: + s.item_list("cert-hostname", rmt.cert_hostname) + s.item_list("action", list(aclaction)) s.end() if len(self.modules) > 0: @@ -1750,78 +1645,24 @@ def get_config(self): for module in z.modules: module.get_conf(s) - have_sbm = False - for zone in sorted(self.zones): - z = self.zones[zone] - if not z.dnssec.enable: - continue - if len(z.dnssec.ksk_sbm_check) < 1 and z.dnssec.ksk_sbm_timeout is None: - continue - if not have_sbm: - s.begin("submission") - have_sbm = True - s.id_item("id", z.name) - parents = "" - for parent in z.dnssec.ksk_sbm_check: - if parents: - parents += ", " - parents += parent.name - if parents != "": - s.item("parent", "[%s]" % parents) - self._str(s, "check-interval", z.dnssec.ksk_sbm_check_interval) - if z.dnssec.ksk_sbm_timeout is not None: - self._str(s, "timeout", z.dnssec.ksk_sbm_timeout) - if z.dnssec.ksk_sbm_delay is not None: - self._str(s, "parent-delay", z.dnssec.ksk_sbm_delay) - if have_sbm: - s.end() - - have_dnskeysync = False - for zone in sorted(self.zones): - z = self.zones[zone] - if not z.dnssec.enable: - continue - if z.dnssec.dnskey_sync is None: - continue - if not have_dnskeysync: - s.begin("dnskey-sync") - have_dnskeysync = True - s.id_item("id", z.name) - remotes = "" - for remote in z.dnssec.dnskey_sync: - if remotes: - remotes += ", " - remotes += remote.name - if remotes != "": - s.item("remote", "[%s]" % remotes) - if have_dnskeysync: - s.end() - - have_external = False - for zone in sorted(self.zones): - z = self.zones[zone] - if not z.external: - continue - if not have_external: - s.begin("external") - have_external = True - s.id_item("id", z.name) - self._str(s, "timeout", z.external["timeout"]) - self._str(s, "dump-new-zone", z.external["new"]) - self._str(s, "dump-removals", z.external["rem"]) - self._str(s, "dump-additions", z.external["add"]) - if have_external: - s.end() + for subsection in [ "submission", "dnskey-sync", "external" ]: + for zone in self.conf[subsection]: + s.begin(subsection) + s.id_item("id", zone) + for ci, val in self.conf[subsection][z.name].items(): + s.item_type(ci.replace("_", "-"), val) + s.end() have_keystore = False for zone in sorted(self.zones): z = self.zones[zone] - if not z.dnssec.keystores: + z.dnssec = self.dnssec(z) + if not z.dnssec.keystore: continue if not have_keystore: s.begin("keystore") have_keystore = True - for ks in z.dnssec.keystores: + for ks in z.dnssec.keystore: s.id_item("id", ks) s.item("config", ks) if ks.endswith("ksk"): @@ -1832,53 +1673,17 @@ def get_config(self): have_policy = False for zone in sorted(self.zones): z = self.zones[zone] - if not z.dnssec.enable and not z.dnssec.validate: - continue - - if (z.dnssec.shared_policy_with or z.name) != z.name: - continue - - if not have_policy: - s.begin("policy") - have_policy = True + z.dnssec = self.dnssec(z) + s.begin("policy") s.id_item("id", z.name) - self._bool(s, "manual", z.dnssec.manual) - self._bool(s, "single-type-signing", z.dnssec.single_type_signing) - if z.dnssec.keystores: - s.item("keystore", "[ %s ]" % ", ".join(z.dnssec.keystores)) - self._str(s, "algorithm", z.dnssec.alg) - self._str(s, "ksk-size", z.dnssec.ksk_size) - self._str(s, "zsk-size", z.dnssec.zsk_size) - self._str(s, "dnskey-ttl", z.dnssec.dnskey_ttl) - self._str(s, "zone-max-ttl", z.dnssec.zone_max_ttl) - self._str(s, "keytag-modulo", z.dnssec.keytag_modulo) - self._str(s, "ksk-lifetime", z.dnssec.ksk_lifetime) - self._str(s, "zsk-lifetime", z.dnssec.zsk_lifetime) - self._str(s, "delete-delay", z.dnssec.delete_delay) - self._str(s, "propagation-delay", z.dnssec.propagation_delay) - self._str(s, "rrsig-lifetime", z.dnssec.rrsig_lifetime) - self._str(s, "rrsig-refresh", z.dnssec.rrsig_refresh) - self._str(s, "rrsig-pre-refresh", z.dnssec.rrsig_prerefresh) - self._str(s, "reproducible-signing", z.dnssec.repro_sign) - self._bool(s, "nsec3", z.dnssec.nsec3) - self._str(s, "nsec3-iterations", z.dnssec.nsec3_iters) - self._bool(s, "nsec3-opt-out", z.dnssec.nsec3_opt_out) - self._str(s, "nsec3-salt-lifetime", z.dnssec.nsec3_salt_lifetime) - self._str(s, "nsec3-salt-length", z.dnssec.nsec3_salt_len) - if len(z.dnssec.ksk_sbm_check) > 0 or z.dnssec.ksk_sbm_timeout is not None: - s.item("ksk-submission", z.name) - if z.dnssec.dnskey_sync: - s.item("dnskey-sync", z.name) - self._bool(s, "ksk-shared", z.dnssec.ksk_shared) - self._str(s, "cds-cdnskey-publish", z.dnssec.cds_publish) - if z.dnssec.cds_digesttype: - self._str(s, "cds-digest-type", z.dnssec.cds_digesttype) - self._str(s, "dnskey-management", z.dnssec.dnskey_mgmt) - self._bool(s, "offline-ksk", z.dnssec.offline_ksk) - self._str(s, "signing-threads", - z.dnssec.signing_threads if z.dnssec.signing_threads is not None - else str(random.randint(1,4))) - if have_policy: + for ci, val in self.conf["policy"][z.name].items(): + if ci not in [ "enable", "shared_policy_with" ]: + s.item_type(ci.replace("_", "-"), val) + + if zone in self.conf["dnskey-sync"]: + s.item("dnskey-sync", zone) + if zone in self.conf["submission"]: + s.item("ksk-submission", zone) s.end() s.begin("database") @@ -1900,22 +1705,6 @@ def get_config(self): s.begin("template") s.id_item("id", "default") s.item_str("storage", self.dir) - s.item_str("zonefile-sync", self.zonefile_sync) - if self.notify_delay is None: - self.notify_delay = random.randint(0, 1) - s.item_str("notify-delay", self.notify_delay) - self._str(s, "update-delay", self.update_delay) - if self.zonemd_verify: - s.item_str("zonemd-verify", "on") - if self.zonemd_generate is not None: - s.item_str("zonemd-generate", self.zonemd_generate) - s.item_str("journal-max-usage", self.journal_max_usage) - s.item_str("journal-max-depth", self.journal_max_depth) - s.item_str("adjust-threads", str(random.randint(1,4))) - if self.semantic_check == "soft": - self._str(s, "semantic-checks", self.semantic_check) - else: - self._bool(s, "semantic-checks", self.semantic_check) if len(self.modules) > 0: modules = "" for module in self.modules: @@ -1923,12 +1712,11 @@ def get_config(self): modules += ", " modules += module.get_conf_ref() s.item("global-module", "[%s]" % modules) - if self.zone_size_limit: - s.item("zone-max-size", self.zone_size_limit) have_catalog = None for zone in self.zones: z = self.zones[zone] + z.dnssec = self.dnssec(z) if z.catalog_role in [ZoneCatalogRole.INTERPRET, ZoneCatalogRole.GENERATE]: have_catalog = z break @@ -1936,12 +1724,11 @@ def get_config(self): s.id_item("id", "catalog-default") s.item_str("file", self.dir + "/catalog/%s.zone") s.item_str("zonefile-load", "difference") - s.item_str("journal-content", z.journal_content) + s.item_str("journal-content", self.conf_zone(z).journal_content) # this is weird but for the sake of testing, the cataloged zones inherit dnssec policy from catalog zone - if z.dnssec.enable: - s.item_str("dnssec-signing", "off" if z.dnssec.disable else "on") - s.item_str("dnssec-policy", z.name) + s.item_str("dnssec-signing", "on" if z.dnssec.enable else "off") + s.item_str("dnssec-policy", z.name) for module in z.modules: if module.conf_name == "mod-onlinesign": s.item("module", "[%s]" % module.get_conf_ref()) @@ -1950,15 +1737,14 @@ def get_config(self): s.id_item("id", "catalog-signed") s.item_str("file", self.dir + "/catalog/%s.zone") - s.item_str("journal-content", z.journal_content) + s.item_str("journal-content", self.conf_zone(z).journal_content) s.item_str("dnssec-signing", "on") self.config_xfr(z, s) s.id_item("id", "catalog-unsigned") s.item_str("file", self.dir + "/catalog/%s.zone") - s.item_str("journal-content", z.journal_content) + s.item_str("journal-content", self.conf_zone(z).journal_content) self.config_xfr(z, s) - s.end() s.begin("zone") @@ -1970,46 +1756,17 @@ def get_config(self): s.id_item("domain", z.name) s.item_str("file", z.zfile.path) - self.config_xfr(z, s) - - self._str(s, "zone-db-input", z.redis_in) - self._str(s, "zone-db-output", z.redis_out) - - self._str(s, "serial-policy", self.serial_policy) - self._str(s, "serial-modulo", z.serial_modulo) - self._str(s, "ddns-master", self.ddns_master) + for ci, val in self.conf["zone"][z.name].items(): + s.item_type(ci.replace("_", "-"), val) - s.item_str("journal-content", z.journal_content) - self._bool(s, "ixfr-benevolent", self.ixfr_benevolent) - self._bool(s, "ixfr-by-one", self.ixfr_by_one) - self._bool(s, "ixfr-from-axfr", self.ixfr_from_axfr) - self._bool(s, "provide-ixfr", self.provide_ixfr) - - if z.reverse_from: - s.item("reverse-generate", "[ " + ", ".join([ x.name for x in z.reverse_from ]) + " ]") - if z.include_from: - s.item("include-from", "[ " + ", ".join([ x.name for x in z.include_from ]) + " ]") - - self._str(s, "refresh-min-interval", z.refresh_min) - self._str(s, "refresh-max-interval", z.refresh_max) - self._str(s, "retry-min-interval", z.retry_min) - self._str(s, "retry-max-interval", z.retry_max) - self._str(s, "expire-min-interval", z.expire_min) - self._str(s, "expire-max-interval", z.expire_max) + self.config_xfr(z, s) - if z.external: + if zone in self.conf["external"]: s.item("external-validation", z.name) - if self.zonefile_load is not None: - s.item_str("zonefile-load", self.zonefile_load) - elif z.ixfr: + if "zonefile_load" not in self.conf["zone"][zone] and z.ixfr: s.item_str("zonefile-load", "difference") - if self.zonefile_skip is not None: - s.item_list("zonefile-skip", self.zonefile_skip) - - self._str(s, "master-pin-tolerance", self.master_pin_tol) - if z.catalog_role == ZoneCatalogRole.GENERATE: s.item_str("catalog-role", "generate") elif z.catalog_role == ZoneCatalogRole.MEMBER: @@ -2020,18 +1777,8 @@ def get_config(self): s.item_str("catalog-role", "interpret") s.item("catalog-template", "[ catalog-default, catalog-signed, catalog-unsigned ]") - if z.dnssec.enable: - s.item_str("dnssec-signing", "off" if z.dnssec.disable else "on") - - if z.dnssec.enable or z.dnssec.validate: - s.item_str("dnssec-policy", z.dnssec.shared_policy_with or z.name) - - self._bool(s, "dnssec-validation", z.dnssec.validate) - - if z.dnssec.ds_push == "": - s.item("ds-push", "[ ]") - elif z.dnssec.ds_push: - self._str(s, "ds-push", z.dnssec.ds_push.name) + s.item_str("dnssec-signing", "on" if self.dnssec(z).enable else "off") + s.item_str("dnssec-policy", self.dnssec(z).shared_policy_with or z.name) if len(z.modules) > 0: modules = "" diff --git a/tests-extra/tools/dnstest/test.py b/tests-extra/tools/dnstest/test.py index 28ac74ddee..c377c10535 100644 --- a/tests-extra/tools/dnstest/test.py +++ b/tests-extra/tools/dnstest/test.py @@ -393,16 +393,16 @@ def zone_rnd(self, number, dnssec=None, nsec3=None, records=None, serial=None, return zones - def link(self, zones, master, slave=None, ddns=False, ixfr=False, journal_content="changes"): + def link(self, zones, master, slave=None, ddns=False, ixfr=False): for zone in zones: if master not in self.servers: raise Failed("Server is out of testing scope") - master.set_master(zone, slave, ddns, ixfr, journal_content) + master.set_master(zone, slave, ddns, ixfr) if slave: if slave not in self.servers: raise Failed("Server is out of testing scope") - slave.set_slave(zone, master, ddns, ixfr, journal_content) + slave.set_slave(zone, master, ddns, ixfr) def _canonize_record(self, rtype, record): ''':-((''' From d8690d994891cc208e9850e8955d5b6f313f83d2 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 24 Oct 2025 11:40:04 +0200 Subject: [PATCH 207/675] zonemd: ignore ZONEMD removal within IXFR if zonemd-generate configured... ...because it is overwritten anyway, causing semantic errors when applying incoming changeset --- src/knot/events/handlers/refresh.c | 10 ++++ tests-extra/tests/zone/zonemd_chain/test.py | 51 +++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 tests-extra/tests/zone/zonemd_chain/test.py diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 04e2c4634b..583819f707 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -108,6 +108,7 @@ struct refresh_data { bool ixfr_by_one; //!< Allow only single changeset within IXFR. bool ixfr_from_axfr; //!< Diff computation of incremental update from AXFR allowed. bool reverse_or_include; //!< Auto reverse generation or subzone inclusion configured. + bool ignore_zonemd; //!< Ignore apex ZONEMD in incomming IXFR as it is overwritten anyway. uint32_t expire_timer; //!< Result: expire timer from answer EDNS. // internal state, initialize with zeroes: @@ -841,6 +842,10 @@ static int ixfr_step(const knot_rrset_t *rr, struct refresh_data *data) case IXFR_SOA_DEL: return ixfr_solve_soa_del(rr, data); case IXFR_DEL: + if (data->ignore_zonemd && rr->type == KNOT_RRTYPE_ZONEMD && + knot_dname_is_equal(rr->owner, data->zone->name)) { + return KNOT_EOK; + } return ixfr_solve_del(rr, change, data->mm); case IXFR_SOA_ADD: return ixfr_solve_soa_add(rr, change, data->mm); @@ -1355,6 +1360,7 @@ typedef struct { bool ixfr_from_axfr; bool reverse_or_include; bool more_xfr; + bool ignore_zonemd; } try_refresh_ctx_t; static int try_refresh(conf_t *conf, zone_t *zone, const conf_remote_t *master, @@ -1393,6 +1399,8 @@ static int try_refresh(conf_t *conf, zone_t *zone, const conf_remote_t *master, .ixfr_by_one = trctx->ixfr_by_one, .ixfr_from_axfr = trctx->ixfr_from_axfr, .reverse_or_include = trctx->reverse_or_include, + .ignore_zonemd = trctx->ignore_zonemd, + // TODO refactor refresh_data and try_refresh_ctx_t so that this cross-assignment is not necessary for simple fields }; knot_requestor_t requestor; @@ -1466,6 +1474,8 @@ int event_refresh(conf_t *conf, zone_t *zone) conf_val_t val = conf_zone_get(conf, C_IXFR_BY_ONE, zone->name); trctx.ixfr_by_one = conf_bool(&val); + val = conf_zone_get(conf, C_ZONEMD_GENERATE, zone->name); + trctx.ignore_zonemd = (conf_opt(&val) != ZONE_DIGEST_NONE); val = conf_zone_get(conf, C_IXFR_FROM_AXFR, zone->name); trctx.ixfr_from_axfr = conf_bool(&val); diff --git a/tests-extra/tests/zone/zonemd_chain/test.py b/tests-extra/tests/zone/zonemd_chain/test.py new file mode 100644 index 0000000000..981a452003 --- /dev/null +++ b/tests-extra/tests/zone/zonemd_chain/test.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 + +""" +Test of bump-in-the-wire signer receiving ZONEMD in unsigned version of the zone. +""" + +from dnstest.utils import * +from dnstest.test import Test +import random +import threading +import time + +t = Test() + +master = t.server("knot") +signer = t.server("knot") +slave = t.server("knot") +ZONE = "example." +zones = t.zone(ZONE) + +t.link(zones, master, signer) +t.link(zones, signer, slave) + +master.conf_zone(zones).zonemd_generate = "zonemd-sha384" +signer.conf_zone(zones).zonemd_verify = True + +signer.dnssec(zones).enable = True +signer.conf_zone(zones).zonemd_generate = "zonemd-sha384" + +slave.conf_zone(zones).dnssec_validation = True +slave.conf_zone(zones).zonemd_verify = True + +t.start() +serials = slave.zones_wait(zones) + +master.random_ddns(zones, allow_empty=False) +t.sleep(4) +slave.zones_wait(zones, serials, equal=True, greater=False) +signer.ctl("zone-retransfer") +serials = slave.zones_wait(zones, serials) + +signer.conf_zone(zones).zonemd_verify = False +signer.gen_confile() +signer.reload() + +master.random_ddns(zones, allow_empty=False) +serials = slave.zones_wait(zones, serials) +if signer.log_search_count("fallback to AXFR ") > 0: # NOTE without the trailing space the message can appear for outgoing IXFR as well, which it actually should + set_err("AXFR fallback") + +t.end() From 854612f6829c9ae3ffbd071b4658409bad371713 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 24 Oct 2025 11:53:36 +0200 Subject: [PATCH 208/675] zonemd: additional warning when signer verifies ZONEMD --- src/knot/conf/tools.c | 5 +++++ tests/knot/test_confio.c | 1 + 2 files changed, 6 insertions(+) diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index 2e6271731c..971b52fa79 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -1144,6 +1144,11 @@ static int check_zone_or_tpl( args->err_str = "'dnssec-validation' is not compatible with 'dnssec-signing'"; return KNOT_EINVAL; } + + conf_val_t zonemd_verify = conf_get_wrap(args, C_ZONEMD_VERIFY); + if (conf_bool(&zonemd_verify)) { + CONF_LOG(LOG_WARNING, "'zonemd-verify' not compatible with 'dnssec-signing' as incremental changes to the zone will always fail"); + } } else { conf_val_t ddnsmaster = conf_get_wrap(args, C_DDNS_MASTER); if (ddnsmaster.code == KNOT_EOK && *conf_str(&ddnsmaster) == '\0') { diff --git a/tests/knot/test_confio.c b/tests/knot/test_confio.c index f6bb5ba987..7c8251728c 100644 --- a/tests/knot/test_confio.c +++ b/tests/knot/test_confio.c @@ -1027,6 +1027,7 @@ static const knot_lookup_t opts[] = { { C_DNSSEC_SIGNING, YP_TBOOL, YP_VNONE }, \ { C_DNSSEC_VALIDATION, YP_TBOOL, YP_VNONE }, \ { C_SERIAL_MODULO, YP_TSTR, YP_VSTR = { "0/1" } }, \ + { C_ZONEMD_VERIFY, YP_TBOOL, YP_VNONE }, \ { C_CATALOG_ROLE, YP_TOPT, YP_VOPT = { opts, 0 } }, \ { C_CATALOG_TPL, YP_TREF, YP_VREF = { C_RMT } }, \ { C_COMMENT, YP_TSTR, YP_VNONE }, From fc0d03b4cff4f7120f08063e059a737f55c2e12f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 30 Oct 2025 15:10:16 +0100 Subject: [PATCH 209/675] process_query: move logging-related stuff to conditional debug section --- src/knot/nameserver/process_query.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/knot/nameserver/process_query.c b/src/knot/nameserver/process_query.c index 1f82b1911d..faa7e4e17f 100644 --- a/src/knot/nameserver/process_query.c +++ b/src/knot/nameserver/process_query.c @@ -713,17 +713,6 @@ bool process_query_acl_check(conf_t *conf, acl_action_t action, tsig.algorithm = knot_tsig_rdata_alg(query->tsig_rr); } - /* Log ACL details. */ - char addr_str[SOCKADDR_STRLEN]; - if (sockaddr_tostr(addr_str, sizeof(addr_str), query_source) <= 0) { - addr_str[0] = '\0'; - } - knot_dname_txt_storage_t key_name; - if (knot_dname_to_str(key_name, tsig.name, sizeof(key_name)) == NULL) { - key_name[0] = '\0'; - } - const knot_lookup_t *act = knot_lookup_by_id((knot_lookup_t *)acl_actions, action); - bool automatic = false; bool allowed = false; @@ -752,6 +741,16 @@ bool process_query_acl_check(conf_t *conf, acl_action_t action, } if (log_enabled_debug()) { + char addr_str[SOCKADDR_STRLEN]; + if (sockaddr_tostr(addr_str, sizeof(addr_str), query_source) <= 0) { + addr_str[0] = '\0'; + } + knot_dname_txt_storage_t key_name; + if (knot_dname_to_str(key_name, tsig.name, sizeof(key_name)) == NULL) { + key_name[0] = '\0'; + } + const knot_lookup_t *act = knot_lookup_by_id((knot_lookup_t *)acl_actions, action); + int pin_size = 0; uint8_t bin_pin[KNOT_TLS_PIN_LEN], pin[2 * KNOT_TLS_PIN_LEN]; size_t bin_pin_size = sizeof(bin_pin); From bef8d0e4ef8fd2eba5c6f54a999d57d43940a80a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 30 Oct 2025 15:12:44 +0100 Subject: [PATCH 210/675] process_query: don't try to evaluate automatic ACL if disabled --- src/knot/nameserver/process_query.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/nameserver/process_query.c b/src/knot/nameserver/process_query.c index faa7e4e17f..b8dd17757f 100644 --- a/src/knot/nameserver/process_query.c +++ b/src/knot/nameserver/process_query.c @@ -723,7 +723,7 @@ bool process_query_acl_check(conf_t *conf, acl_action_t action, default: tls_session = NULL; } - if (action != ACL_ACTION_UPDATE) { + if (conf->cache.srv_auto_acl && action != ACL_ACTION_UPDATE) { // ACL_ACTION_QUERY is used for SOA/refresh query. assert(action == ACL_ACTION_QUERY || action == ACL_ACTION_NOTIFY || action == ACL_ACTION_TRANSFER); From 721385cd2e2c6eff87516cd59a24c000d47169a7 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 30 Oct 2025 15:43:31 +0100 Subject: [PATCH 211/675] process_query: weaken the ACL action for catalog queries to 'query' --- doc/configuration.rst | 3 +-- src/knot/nameserver/process_query.c | 2 +- tests-extra/tests/catalog/basic/test.py | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/doc/configuration.rst b/doc/configuration.rst index b9c2aac74b..81c7ed168b 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -633,8 +633,7 @@ It can be configured using all the standard options (but for example DNSSEC signing is useless as the zone won't be queried by clients), including primary/secondary configuration and ACLs. A catalog zone is indicated by setting the option :ref:`zone_catalog-role`. Standard DNS queries to a catalog zone are answered -with REFUSED as though the zone doesn't exist unless there is a matching ACL -rule for action transfer configured. +with NOTAUTH unless there is a matching ACL rule for action at least ``query`` configured. The name of the catalog zone is arbitrary. It's possible to configure multiple catalog zones. diff --git a/src/knot/nameserver/process_query.c b/src/knot/nameserver/process_query.c index b8dd17757f..d82af13933 100644 --- a/src/knot/nameserver/process_query.c +++ b/src/knot/nameserver/process_query.c @@ -500,7 +500,7 @@ static int prepare_answer(knot_pkt_t *query, knot_pkt_t *resp, knot_layer_t *ctx /* Allow normal queries to catalog only if allowed by ACL. */ if (qdata->extra->zone != NULL && qdata->extra->zone->is_catalog_flag && query_type(query) == KNOTD_QUERY_TYPE_NORMAL) { - if (!process_query_acl_check(conf(), ACL_ACTION_TRANSFER, qdata)) { + if (!process_query_acl_check(conf(), ACL_ACTION_QUERY, qdata)) { qdata->extra->zone = NULL; qdata->extra->contents = NULL; } diff --git a/tests-extra/tests/catalog/basic/test.py b/tests-extra/tests/catalog/basic/test.py index 5169239c00..7a422f056d 100644 --- a/tests-extra/tests/catalog/basic/test.py +++ b/tests-extra/tests/catalog/basic/test.py @@ -229,7 +229,7 @@ def member_zonefile(server, zone): t.sleep(3) try: resp = slave.dig("version.catalog1.", "TXT", tsig=True) - resp.check(rcode="REFUSED") + resp.check(rcode="NOTAUTH") except: pass From 635bec86f7bfea6047cf30a620dcedec9558034a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 30 Oct 2025 15:49:10 +0100 Subject: [PATCH 212/675] internet: refactor ACL evaluation for catalog queries --- src/knot/nameserver/internet.c | 2 ++ src/knot/nameserver/process_query.c | 9 --------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/knot/nameserver/internet.c b/src/knot/nameserver/internet.c index 8a499bf61e..cc9a169a50 100644 --- a/src/knot/nameserver/internet.c +++ b/src/knot/nameserver/internet.c @@ -715,6 +715,8 @@ knot_layer_state_t internet_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata) if (ret != KNOT_EOK) { return KNOT_STATE_FAIL; } + } else if (qdata->extra->zone->is_catalog_flag) { + NS_NEED_AUTH(qdata, ACL_ACTION_QUERY); } /* Check if the zone is not empty or expired. */ diff --git a/src/knot/nameserver/process_query.c b/src/knot/nameserver/process_query.c index d82af13933..b044260811 100644 --- a/src/knot/nameserver/process_query.c +++ b/src/knot/nameserver/process_query.c @@ -497,15 +497,6 @@ static int prepare_answer(knot_pkt_t *query, knot_pkt_t *resp, knot_layer_t *ctx qdata->extra->contents = qdata->extra->zone->contents; } - /* Allow normal queries to catalog only if allowed by ACL. */ - if (qdata->extra->zone != NULL && qdata->extra->zone->is_catalog_flag && - query_type(query) == KNOTD_QUERY_TYPE_NORMAL) { - if (!process_query_acl_check(conf(), ACL_ACTION_QUERY, qdata)) { - qdata->extra->zone = NULL; - qdata->extra->contents = NULL; - } - } - return KNOT_EOK; } From fee3d63ea187f882650873a9dc0bc4e116c03580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hynek=20=C5=A0aback=C3=BD?= Date: Fri, 31 Oct 2025 08:18:34 +0100 Subject: [PATCH 213/675] ci: Add rule to not run build:debian:arm64 on forked projects --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7d998536c6..88622492fb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -209,12 +209,16 @@ test:debian:amd64: build:debian:arm64: <<: *debian_stable_arm64 <<: *build_job + only: + - branches@knot/knot-dns # don't run on forked projects test:debian:arm64: <<: *debian_stable_arm64 <<: *test_job dependencies: - build:debian:arm64 + only: + - branches@knot/knot-dns # don't run on forked projects build:debian:unstable:amd64: <<: *debian_unstable From 2fc169409728298eecc9799d81f45fa8f9f234bf Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 12 Aug 2025 17:36:34 +0200 Subject: [PATCH 214/675] refresh: with pinned master, refresh the zone when the tolerance period times out --- src/knot/events/handlers/refresh.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 583819f707..544fbe9c9f 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -1088,6 +1088,10 @@ static bool wait4pinned_master(struct refresh_data *data) } else if (data->zone->timers.master_pin_hit + data->fallback->pin_tol <= now) { data->xfr_type = XFR_TYPE_AXFR; return false; + // Replan the refresh to the moment when the pin tolerance times out. + } else { + zone_events_schedule_at(data->zone, ZONE_EVENT_REFRESH, + data->zone->timers.master_pin_hit + data->fallback->pin_tol); } return true; From b30dcbb83b95bc761c88e6007b2586f4ea219a29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 30 Oct 2025 19:32:11 +0100 Subject: [PATCH 215/675] tests: refactor remaining server configuration routines --- tests-extra/tests/ixfr/master_pin2/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-extra/tests/ixfr/master_pin2/test.py b/tests-extra/tests/ixfr/master_pin2/test.py index aa8a6a6b9c..a7deac6c7c 100644 --- a/tests-extra/tests/ixfr/master_pin2/test.py +++ b/tests-extra/tests/ixfr/master_pin2/test.py @@ -52,7 +52,7 @@ def check_cur(expec, unexp): m.dnssec(zones).enable = True m.conf_zone(zones).journal_content = "all" -masterB.zones[zone.name].serial_modulo = str(-PIN) +masterB.conf_zone(zones).serial_modulo = str(-PIN) t.start() From 93978ee8d5b3ffac72c847ec827eb106059968cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 14 Aug 2025 16:23:05 +0200 Subject: [PATCH 216/675] fix typos in comments --- src/knot/zone/zone.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 6b6eb79a48..0a8cf528de 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -274,8 +274,8 @@ void zone_timers_sanitize(conf_t *conf, zone_t *zone); typedef struct { bool address; //!< Fallback to next remote address is required. bool remote; //!< Fallback to next remote server is required. - bool trying_last; //!< This master try is for the same server as last time; - uint32_t pin_tol; //!< Configured mster pin tolerance (0 for no pin). + bool trying_last; //!< This master try is for the same server as last time. + uint32_t pin_tol; //!< Configured master pin tolerance (0 for no pin). } zone_master_fallback_t; typedef int (*zone_master_cb)(conf_t *conf, zone_t *zone, const conf_remote_t *remote, From 9e6e4a453ccb845daadaec318f55d3f9c4b2a529 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 12 Aug 2025 17:36:49 +0200 Subject: [PATCH 217/675] tests-extra: ixfr/master_pin -- provide the servers enough time Especially needed with valgrind. --- tests-extra/tests/ixfr/master_pin/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-extra/tests/ixfr/master_pin/test.py b/tests-extra/tests/ixfr/master_pin/test.py index 1152b497fa..8e5c648000 100644 --- a/tests-extra/tests/ixfr/master_pin/test.py +++ b/tests-extra/tests/ixfr/master_pin/test.py @@ -54,7 +54,7 @@ up = masterB.update(zone) up.add("add2.example.", 3, "A", "1.2.3.100") up.send() -t.sleep(PERIOD+(8 if DISABLE_NOTIFY else 2)) +t.sleep(PERIOD+(9 if DISABLE_NOTIFY else 3)) up = masterA.update(zone) up.add("add2.example.", 3, "A", "1.2.3.101") up.send() From efef4c7663bb24227fc746795b8498fe2e1ddfe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 12 Aug 2025 17:37:00 +0200 Subject: [PATCH 218/675] tests-extra: ixfr/master_pin2 -- align the servers at the start Notice: Both masters send their NOTIFY's to the slave. The slave makes refresh from the last master which it received NOTIFY from - it's the current state of Knot DNS design. If a NOTIFY for lower serial arrives close enough after the previous NOTIFY for a higher serial from another master, before the slave made refresh from the first master, the first NOTIFY "knowledge" gets "overwritten" by the second one with lower serial, resulting in refresh from the lagging behind master and a rare test failure. --- tests-extra/tests/ixfr/master_pin2/test.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests-extra/tests/ixfr/master_pin2/test.py b/tests-extra/tests/ixfr/master_pin2/test.py index a7deac6c7c..cfc242180e 100644 --- a/tests-extra/tests/ixfr/master_pin2/test.py +++ b/tests-extra/tests/ixfr/master_pin2/test.py @@ -52,11 +52,26 @@ def check_cur(expec, unexp): m.dnssec(zones).enable = True m.conf_zone(zones).journal_content = "all" +masterA.conf_zone(zones).notify_delay = "0" # Disable even the small random value tests use. +masterB.conf_zone(zones).notify_delay = "0" # masterB.conf_zone(zones).serial_modulo = str(-PIN) t.start() +ma_serials0 = masterA.zones_wait(zones) +mb_serials0 = masterB.zones_wait(zones) +slave.zones_wait(zones) + +# Align the masters before the testing starts. +slave.ctl("zone-freeze", wait=True) serials0 = slave.zones_wait(zones) +masterA.ctl("zone-sign") +masterB.ctl("zone-sign") +masterA.zones_wait(zones, ma_serials0) +masterB.zones_wait(zones, mb_serials0) +slave.ctl("zone-thaw") + +serials0 = slave.zones_wait(zones, serials0) for m in [ masterA, masterB ]: up = m.update(zone) @@ -79,6 +94,7 @@ def check_cur(expec, unexp): t.sleep(4) +# May fail occasionally, for details see this commit's message. check_cur(masterA, masterB) RUNNING = False From 61c66c1a7557556c51a657cefcec67ec27a7ba2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 30 Oct 2025 15:15:59 +0000 Subject: [PATCH 219/675] Doc: Fix boolean type --- src/knot/common/process.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/knot/common/process.h b/src/knot/common/process.h index bdc7289c69..f64e77b39b 100644 --- a/src/knot/common/process.h +++ b/src/knot/common/process.h @@ -32,8 +32,8 @@ void pid_cleanup(void); * * \param pid Process ID. * - * \retval 1 if running. - * \retval 0 if not running (or error). + * \retval true if running. + * \retval false if not running (or error). */ bool pid_running(pid_t pid); From 70f3fa3d51c40011bdf8a2d36a9252135c09ba21 Mon Sep 17 00:00:00 2001 From: Berbe <54095-Berbe@users.noreply.gitlab.nic.cz> Date: Mon, 27 Oct 2025 10:24:01 +0000 Subject: [PATCH 220/675] Fix: Reuse PID file if current PID matches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: David Vašek --- src/knot/common/process.c | 7 ++++++- src/knot/common/process.h | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/knot/common/process.c b/src/knot/common/process.c index cda00797c0..115d3bd959 100644 --- a/src/knot/common/process.c +++ b/src/knot/common/process.c @@ -101,7 +101,7 @@ unsigned long pid_check_and_create(void) pid_t pid = pid_read(pidfile); /* Check PID for existence and liveness. */ - if (pid > 0 && pid_running(pid)) { + if (pid > 0 && pid_running(pid) && !pid_current(pid)) { log_fatal("server PID found, already running"); free(pidfile); return 0; @@ -136,6 +136,11 @@ void pid_cleanup(void) } } +bool pid_current(pid_t pid) +{ + return pid == getpid(); +} + bool pid_running(pid_t pid) { return kill(pid, 0) == 0; diff --git a/src/knot/common/process.h b/src/knot/common/process.h index f64e77b39b..05b1bf86b0 100644 --- a/src/knot/common/process.h +++ b/src/knot/common/process.h @@ -27,6 +27,16 @@ unsigned long pid_check_and_create(void); */ void pid_cleanup(void); +/*! + * \brief Return true if the PID is the one of the current process. + * + * \param pid Process ID. + * + * \retval true if the same. + * \retval false if different. + */ +bool pid_current(pid_t pid); + /*! * \brief Return true if the PID is running. * From 245ea349813fbf077a63acb6c61e933bde40ea26 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 27 Oct 2025 17:17:24 +0100 Subject: [PATCH 221/675] libknot/rrset-dump/bugfix: ERANGE instead of enlarging output buffer if overflow inside base64_encode --- Knot.files | 1 + src/contrib/base32hex.c | 10 ++++- src/contrib/base32hex.h | 6 ++- src/contrib/base64.c | 10 ++++- src/contrib/base64.h | 6 ++- src/contrib/base64url.c | 10 ++++- src/contrib/base64url.h | 6 ++- src/libknot/descriptor.c | 33 +++++++------- src/libknot/descriptor.h | 15 ++++--- src/libknot/errcode.h | 2 + src/libknot/error.c | 2 + tests/.gitignore | 1 + tests/Makefile.am | 1 + tests/contrib/test_base32hex.c | 4 +- tests/contrib/test_base64.c | 4 +- tests/contrib/test_base64url.c | 4 +- tests/libknot/test_descriptor.c | 78 ++++++++++++++++++-------------- tests/libknot/test_rrset-dump.c | 80 +++++++++++++++++++++++++++++++++ 18 files changed, 198 insertions(+), 75 deletions(-) create mode 100644 tests/libknot/test_rrset-dump.c diff --git a/Knot.files b/Knot.files index e2065759cd..437b96ed23 100644 --- a/Knot.files +++ b/Knot.files @@ -743,6 +743,7 @@ tests/libknot/test_pkt.c tests/libknot/test_probe.c tests/libknot/test_rdata.c tests/libknot/test_rdataset.c +tests/libknot/test_rrset-dump.c tests/libknot/test_rrset-wire.c tests/libknot/test_rrset.c tests/libknot/test_tsig.c diff --git a/src/contrib/base32hex.c b/src/contrib/base32hex.c index 8a7d7dc43f..6affc9180a 100644 --- a/src/contrib/base32hex.c +++ b/src/contrib/base32hex.c @@ -78,9 +78,12 @@ int32_t knot_base32hex_encode(const uint8_t *in, if (in == NULL || out == NULL) { return KNOT_EINVAL; } - if (in_len > MAX_B32_BIN_DATA_LEN || out_len < ((in_len + 4) / 5) * 8) { + if (in_len > MAX_B32_BIN_DATA_LEN) { return KNOT_ERANGE; } + if (out_len < ((in_len + 4) / 5) * 8) { + return KNOT_ESPACE; // NOTE it is essential to return KNOT_ESPACE when output buffer overflows because this is directly called in rrset_dump and there is a realloc/retry mechanism in KNOT_ESPACE case. + } uint8_t rest_len = in_len % 5; const uint8_t *stop = in + in_len - rest_len; @@ -191,9 +194,12 @@ int32_t knot_base32hex_decode(const uint8_t *in, if (in == NULL || out == NULL) { return KNOT_EINVAL; } - if (in_len > INT32_MAX || out_len < ((in_len + 7) / 8) * 5) { + if (in_len > INT32_MAX) { return KNOT_ERANGE; } + if (out_len < ((in_len + 7) / 8) * 5) { + return KNOT_ESPACE; + } if ((in_len % 8) != 0) { return KNOT_BASE32HEX_ESIZE; } diff --git a/src/contrib/base32hex.h b/src/contrib/base32hex.h index c5a81a58af..5a907b9b2a 100644 --- a/src/contrib/base32hex.h +++ b/src/contrib/base32hex.h @@ -26,7 +26,8 @@ * \param out_len Size of output buffer. * * \retval >=0 length of output string. - * \retval KNOT_E* if error. + * \retval KNOT_ESPACE if output buffer is not large enough. + * \return KNOT_E* if other error. */ int32_t knot_base32hex_encode(const uint8_t *in, const uint32_t in_len, @@ -65,7 +66,8 @@ int32_t knot_base32hex_encode_alloc(const uint8_t *in, * \param out_len Size of output buffer. * * \retval >=0 length of output data. - * \retval KNOT_E* if error. + * \retval KNOT_ESPACE if output buffer is not large enough. + * \return KNOT_E* if other error. */ int32_t knot_base32hex_decode(const uint8_t *in, const uint32_t in_len, diff --git a/src/contrib/base64.c b/src/contrib/base64.c index ed123fec7b..a878731878 100644 --- a/src/contrib/base64.c +++ b/src/contrib/base64.c @@ -79,9 +79,12 @@ int32_t knot_base64_encode(const uint8_t *in, if (in == NULL || out == NULL) { return KNOT_EINVAL; } - if (in_len > MAX_B64_BIN_DATA_LEN || out_len < ((in_len + 2) / 3) * 4) { + if (in_len > MAX_B64_BIN_DATA_LEN) { return KNOT_ERANGE; } + if (out_len < ((in_len + 2) / 3) * 4) { + return KNOT_ESPACE; // NOTE it is essential to return KNOT_ESPACE when output buffer overflows because this is directly called in rrset_dump and there is a realloc/retry mechanism in KNOT_ESPACE case. + } uint8_t rest_len = in_len % 3; const uint8_t *stop = in + in_len - rest_len; @@ -158,9 +161,12 @@ int32_t knot_base64_decode(const uint8_t *in, if (in == NULL || out == NULL) { return KNOT_EINVAL; } - if (in_len > INT32_MAX || out_len < ((in_len + 3) / 4) * 3) { + if (in_len > INT32_MAX) { return KNOT_ERANGE; } + if (out_len < ((in_len + 3) / 4) * 3) { + return KNOT_ESPACE; + } if ((in_len % 4) != 0) { return KNOT_BASE64_ESIZE; } diff --git a/src/contrib/base64.h b/src/contrib/base64.h index f512dba075..c6bc79796f 100644 --- a/src/contrib/base64.h +++ b/src/contrib/base64.h @@ -23,7 +23,8 @@ * \param out_len Size of output buffer. * * \retval >=0 length of output string. - * \retval KNOT_E* if error. + * \retval KNOT_ESPACE if output buffer is not large enough. + * \return KNOT_E* if other error. */ int32_t knot_base64_encode(const uint8_t *in, const uint32_t in_len, @@ -62,7 +63,8 @@ int32_t knot_base64_encode_alloc(const uint8_t *in, * \param out_len Size of output buffer. * * \retval >=0 length of output data. - * \retval KNOT_E* if error. + * \retval KNOT_ESPACE if output buffer is not large enough. + * \return KNOT_E* if other error. */ int32_t knot_base64_decode(const uint8_t *in, const uint32_t in_len, diff --git a/src/contrib/base64url.c b/src/contrib/base64url.c index 38c8fd9c04..64bf1bcb63 100644 --- a/src/contrib/base64url.c +++ b/src/contrib/base64url.c @@ -80,9 +80,12 @@ int32_t knot_base64url_encode(const uint8_t *in, if (in == NULL || out == NULL) { return KNOT_EINVAL; } - if (in_len > MAX_BIN_DATA_LEN || out_len < ((in_len + 2) / 3) * 4) { + if (in_len > MAX_BIN_DATA_LEN) { return KNOT_ERANGE; } + if (out_len < ((in_len + 2) / 3) * 4) { + return KNOT_ESPACE; + } uint8_t rest_len = in_len % 3; const uint8_t *stop = in + in_len - rest_len; @@ -170,9 +173,12 @@ int32_t knot_base64url_decode(const uint8_t *in, } } - if (in_len > INT32_MAX || out_len < ((in_len + 3) / 4) * 3) { + if (in_len > INT32_MAX) { return KNOT_ERANGE; } + if (out_len < ((in_len + 3) / 4) * 3) { + return KNOT_ESPACE; + } const uint8_t *stop = in + in_len; uint8_t *bin = out; diff --git a/src/contrib/base64url.h b/src/contrib/base64url.h index 43c27c355b..07f8e617ad 100644 --- a/src/contrib/base64url.h +++ b/src/contrib/base64url.h @@ -23,7 +23,8 @@ * \param out_len Size of output buffer. * * \retval >=0 length of output string. - * \retval KNOT_E* if error. + * \retval KNOT_ESPACE if output buffer is not large enough. + * \return KNOT_E* if other error. */ int32_t knot_base64url_encode(const uint8_t *in, const uint32_t in_len, @@ -62,7 +63,8 @@ int32_t knot_base64url_encode_alloc(const uint8_t *in, * \param out_len Size of output buffer. * * \retval >=0 length of output data. - * \retval KNOT_E* if error. + * \retval KNOT_ESPACE if output buffer is not large enough. + * \return KNOT_E* if other error. */ int32_t knot_base64url_decode(const uint8_t *in, uint32_t in_len, diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c index dcd0eda264..441e45a953 100644 --- a/src/libknot/descriptor.c +++ b/src/libknot/descriptor.c @@ -9,6 +9,7 @@ #include "libknot/attribute.h" #include "libknot/descriptor.h" +#include "libknot/errcode.h" /*! * \brief Table with supported DNS classes. @@ -197,7 +198,7 @@ int knot_rrtype_to_string(const uint16_t rrtype, const size_t out_len) { if (out == NULL) { - return -1; + return KNOT_EINVAL; } int ret; @@ -211,7 +212,7 @@ int knot_rrtype_to_string(const uint16_t rrtype, } if (ret <= 0 || (size_t)ret >= out_len) { - return -1; + return KNOT_ESPACE; // NOTE it is essential to return KNOT_ESPACE when output buffer overflows because this is directly called in rrset_dump and there is a realloc/retry mechanism in KNOT_ESPACE case. } else { return ret; } @@ -221,7 +222,7 @@ _public_ int knot_rrtype_from_string(const char *name, uint16_t *num) { if (name == NULL || num == NULL) { - return -1; + return KNOT_EINVAL; } int i; @@ -233,13 +234,13 @@ int knot_rrtype_from_string(const char *name, uint16_t *num) if (rdata_descriptors[i].type_name != NULL && strcasecmp(rdata_descriptors[i].type_name, name) == 0) { *num = i; - return 0; + return KNOT_EOK; } } // Type name must begin with TYPE. if (strncasecmp(name, "TYPE", 4) != 0) { - return -1; + return KNOT_ENOTYPE; } else { name += 4; } @@ -247,11 +248,11 @@ int knot_rrtype_from_string(const char *name, uint16_t *num) // The rest must be a number. n = strtoul(name, &end, 10); if (end == name || *end != '\0' || n > UINT16_MAX) { - return -1; + return KNOT_ENOTYPE; } *num = n; - return 0; + return KNOT_EOK; } _public_ @@ -260,7 +261,7 @@ int knot_rrclass_to_string(const uint16_t rrclass, const size_t out_len) { if (out == NULL) { - return -1; + return KNOT_EINVAL; } int ret; @@ -272,7 +273,7 @@ int knot_rrclass_to_string(const uint16_t rrclass, } if (ret <= 0 || (size_t)ret >= out_len) { - return -1; + return KNOT_ESPACE; } else { return ret; } @@ -282,7 +283,7 @@ _public_ int knot_rrclass_from_string(const char *name, uint16_t *num) { if (name == NULL || num == NULL) { - return -1; + return KNOT_EINVAL; } int i; @@ -295,13 +296,13 @@ int knot_rrclass_from_string(const char *name, uint16_t *num) if ((row[0] != NULL && strcasecmp(row[0], name) == 0) || (row[1] != NULL && strcasecmp(row[1], name) == 0)) { *num = i; - return 0; + return KNOT_EOK; } } // Class name must begin with CLASS. if (strncasecmp(name, "CLASS", 5) != 0) { - return -1; + return KNOT_ENOCLASS; } else { name += 5; } @@ -309,11 +310,11 @@ int knot_rrclass_from_string(const char *name, uint16_t *num) // The rest must be a number. n = strtoul(name, &end, 10); if (end == name || *end != '\0' || n > UINT16_MAX) { - return -1; + return KNOT_ENOCLASS; } *num = n; - return 0; + return KNOT_EOK; } _public_ @@ -382,7 +383,7 @@ _public_ int knot_opt_code_to_string(const uint16_t code, char *out, const size_t out_len) { if (out == NULL) { - return -1; + return KNOT_EINVAL; } const char *name = NULL; @@ -412,7 +413,7 @@ int knot_opt_code_to_string(const uint16_t code, char *out, const size_t out_len } if (ret <= 0 || (size_t)ret >= out_len) { - return -1; + return KNOT_ESPACE; } else { return ret; } diff --git a/src/libknot/descriptor.h b/src/libknot/descriptor.h index d4644a04b2..bd8a695525 100644 --- a/src/libknot/descriptor.h +++ b/src/libknot/descriptor.h @@ -196,7 +196,8 @@ const knot_rdata_descriptor_t *knot_get_obsolete_rdata_descriptor(const uint16_t * \param out_len Length of the output buffer. * * \retval Length of output string. - * \retval -1 if error. + * \retval KNOT_ESPACE if output buffer not large enough. + * \return KNOT_E* if other error. */ int knot_rrtype_to_string(const uint16_t rrtype, char *out, @@ -208,8 +209,7 @@ int knot_rrtype_to_string(const uint16_t rrtype, * \param name Mnemonic string to be converted. * \param num Output variable. * - * \retval 0 if OK. - * \retval -1 if error. + * \return KNOT_E* */ int knot_rrtype_from_string(const char *name, uint16_t *num); @@ -221,7 +221,8 @@ int knot_rrtype_from_string(const char *name, uint16_t *num); * \param out_len Length of the output buffer. * * \retval Length of output string. - * \retval -1 if error. + * \retval KNOT_ESPACE if output buffer not large enough. + * \return KNOT_E* if other error. */ int knot_rrclass_to_string(const uint16_t rrclass, char *out, @@ -233,8 +234,7 @@ int knot_rrclass_to_string(const uint16_t rrclass, * \param name Mnemonic string to be converted. * \param num Output variable. * - * \retval 0 if OK. - * \retval -1 if error. + * \return KNOT_E* */ int knot_rrclass_from_string(const char *name, uint16_t *num); @@ -292,7 +292,8 @@ bool knot_rrtype_should_be_lowercased(const uint16_t type); * \param out_len The available size of the buffer. * * \retval Length of output string. - * \retval -1 if error. + * \retval KNOT_ESPACE if output buffer not large enough. + * \return KNOT_E* if other error. */ int knot_opt_code_to_string(const uint16_t code, char *out, const size_t out_len); diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index afa69f0999..fe3a2dab88 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -102,6 +102,8 @@ enum knot_error { KNOT_EMODINVAL, KNOT_EEXTERNAL, KNOT_ERDB, + KNOT_ENOTYPE, + KNOT_ENOCLASS, KNOT_GENERAL_ERROR = -900, diff --git a/src/libknot/error.c b/src/libknot/error.c index a2b3e213f1..c6e32b104c 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -100,6 +100,8 @@ static const struct error errors[] = { { KNOT_EMODINVAL, "invalid module" }, { KNOT_EEXTERNAL, "external validation failed" }, { KNOT_ERDB, "zone database error" }, + { KNOT_ENOTYPE, "no such RR type" }, + { KNOT_ENOCLASS, "no such CLASS" }, { KNOT_GENERAL_ERROR, "unknown general error" }, diff --git a/tests/.gitignore b/tests/.gitignore index a553a648a4..123430fc01 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -79,6 +79,7 @@ /libknot/test_rdata /libknot/test_rdataset /libknot/test_rrset +/libknot/test_rrset-dump /libknot/test_rrset-wire /libknot/test_tsig /libknot/test_xdp_tcp diff --git a/tests/Makefile.am b/tests/Makefile.am index 6e662272d8..e39d9eafdd 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -147,6 +147,7 @@ check_PROGRAMS += \ libknot/test_rdata \ libknot/test_rdataset \ libknot/test_rrset \ + libknot/test_rrset-dump \ libknot/test_rrset-wire \ libknot/test_tsig \ libknot/test_yparser \ diff --git a/tests/contrib/test_base32hex.c b/tests/contrib/test_base32hex.c index 6ad468826e..492ff2902a 100644 --- a/tests/contrib/test_base32hex.c +++ b/tests/contrib/test_base32hex.c @@ -31,7 +31,7 @@ int main(int argc, char *argv[]) ret = knot_base32hex_encode(in, MAX_BIN_DATA_LEN + 1, out, BUF_LEN); is_int(KNOT_ERANGE, ret, "knot_base32hex_encode: input buffer too large"); ret = knot_base32hex_encode(in, BUF_LEN, out, BUF_LEN); - is_int(KNOT_ERANGE, ret, "knot_base32hex_encode: output buffer too small"); + is_int(KNOT_ESPACE, ret, "knot_base32hex_encode: output buffer too small"); ret = knot_base32hex_encode_alloc(NULL, 0, &out3); is_int(KNOT_EINVAL, ret, "knot_base32hex_encode_alloc: NULL input buffer"); @@ -47,7 +47,7 @@ int main(int argc, char *argv[]) ret = knot_base32hex_decode(in, UINT32_MAX, out, BUF_LEN); is_int(KNOT_ERANGE, ret, "knot_base32hex_decode: input buffer too large"); ret = knot_base32hex_decode(in, BUF_LEN, out, 0); - is_int(KNOT_ERANGE, ret, "knot_base32hex_decode: output buffer too small"); + is_int(KNOT_ESPACE, ret, "knot_base32hex_decode: output buffer too small"); ret = knot_base32hex_decode_alloc(NULL, 0, &out3); is_int(KNOT_EINVAL, ret, "knot_base32hex_decode_alloc: NULL input buffer"); diff --git a/tests/contrib/test_base64.c b/tests/contrib/test_base64.c index e6eb72499c..83dc72a248 100644 --- a/tests/contrib/test_base64.c +++ b/tests/contrib/test_base64.c @@ -31,7 +31,7 @@ int main(int argc, char *argv[]) ret = knot_base64_encode(in, MAX_BIN_DATA_LEN + 1, out, BUF_LEN); is_int(KNOT_ERANGE, ret, "knot_base64_encode: input buffer too large"); ret = knot_base64_encode(in, BUF_LEN, out, BUF_LEN); - is_int(KNOT_ERANGE, ret, "knot_base64_encode: output buffer too small"); + is_int(KNOT_ESPACE, ret, "knot_base64_encode: output buffer too small"); ret = knot_base64_encode_alloc(NULL, 0, &out3); is_int(KNOT_EINVAL, ret, "knot_base64_encode_alloc: NULL input buffer"); @@ -47,7 +47,7 @@ int main(int argc, char *argv[]) ret = knot_base64_decode(in, UINT32_MAX, out, BUF_LEN); is_int(KNOT_ERANGE, ret, "knot_base64_decode: input buffer too large"); ret = knot_base64_decode(in, BUF_LEN, out, 0); - is_int(KNOT_ERANGE, ret, "knot_base64_decode: output buffer too small"); + is_int(KNOT_ESPACE, ret, "knot_base64_decode: output buffer too small"); ret = knot_base64_decode_alloc(NULL, 0, &out3); is_int(KNOT_EINVAL, ret, "knot_base64_decode_alloc: NULL input buffer"); diff --git a/tests/contrib/test_base64url.c b/tests/contrib/test_base64url.c index 458c4e7503..4540ae568e 100644 --- a/tests/contrib/test_base64url.c +++ b/tests/contrib/test_base64url.c @@ -31,7 +31,7 @@ int main(int argc, char *argv[]) ret = knot_base64url_encode(in, MAX_BIN_DATA_LEN + 1, out, BUF_LEN); is_int(KNOT_ERANGE, ret, "knot_base64ulr_encode: input buffer too large"); ret = knot_base64url_encode(in, BUF_LEN, out, BUF_LEN); - is_int(KNOT_ERANGE, ret, "knot_base64ulr_encode: output buffer too small"); + is_int(KNOT_ESPACE, ret, "knot_base64ulr_encode: output buffer too small"); ret = knot_base64url_encode_alloc(NULL, 0, &out3); is_int(KNOT_EINVAL, ret, "knot_base64ulr_encode_alloc: NULL input buffer"); @@ -45,7 +45,7 @@ int main(int argc, char *argv[]) ret = knot_base64url_decode(in, BUF_LEN, NULL, 0); is_int(KNOT_EINVAL, ret, "knot_base64ulr_decode: NULL output buffer"); ret = knot_base64url_decode(in, BUF_LEN, out, 0); - is_int(KNOT_ERANGE, ret, "knot_base64ulr_decode: output buffer too small"); + is_int(KNOT_ESPACE, ret, "knot_base64ulr_decode: output buffer too small"); ret = knot_base64url_decode_alloc(NULL, 0, &out3); is_int(KNOT_EINVAL, ret, "knot_base64ulr_decode_alloc: NULL input buffer"); diff --git a/tests/libknot/test_descriptor.c b/tests/libknot/test_descriptor.c index 7c10fd63fa..d04bc4b8ce 100644 --- a/tests/libknot/test_descriptor.c +++ b/tests/libknot/test_descriptor.c @@ -9,6 +9,7 @@ #include #include "libknot/descriptor.h" +#include "libknot/errcode.h" #define BUF_LEN 256 @@ -31,7 +32,7 @@ int main(int argc, char *argv[]) "get TYPE0 descriptor 2. item type"); ret = knot_rrtype_to_string(0, name, BUF_LEN); - ok(ret != -1, "get TYPE0 ret"); + ok(ret > 0, "get TYPE0 ret"); ok(strcmp(name, "TYPE0") == 0, "get TYPE0 name"); // 2. A @@ -43,7 +44,7 @@ int main(int argc, char *argv[]) "get A descriptor 2. item type"); ret = knot_rrtype_to_string(1, name, BUF_LEN); - ok(ret != -1, "get A ret"); + ok(ret > 0, "get A ret"); ok(strcmp(name, "A") == 0, "get A name"); // 3. CNAME @@ -55,7 +56,7 @@ int main(int argc, char *argv[]) "get CNAME descriptor 2. item type"); ret = knot_rrtype_to_string(5, name, BUF_LEN); - ok(ret != -1, "get CNAME ret"); + ok(ret > 0, "get CNAME ret"); ok(strcmp(name, "CNAME") == 0, "get CNAME name"); // 4. TYPE38 (A6) @@ -67,7 +68,7 @@ int main(int argc, char *argv[]) "get TYPE38 descriptor 2. item type"); ret = knot_rrtype_to_string(38, name, BUF_LEN); - ok(ret != -1, "get TYPE38 ret"); + ok(ret > 0, "get TYPE38 ret"); ok(strcmp(name, "TYPE38") == 0, "get TYPE38 name"); // 5. ANY @@ -79,7 +80,7 @@ int main(int argc, char *argv[]) "get ANY descriptor 2. item type"); ret = knot_rrtype_to_string(255, name, BUF_LEN); - ok(ret != -1, "get ANY ret"); + ok(ret > 0, "get ANY ret"); ok(strcmp(name, "ANY") == 0, "get ANY name"); // 6. TYPE65535 @@ -91,121 +92,121 @@ int main(int argc, char *argv[]) "get TYPE65535 descriptor 2. item type"); ret = knot_rrtype_to_string(65535, name, BUF_LEN); - ok(ret != -1, "get TYPE65535 ret"); + ok(ret > 0, "get TYPE65535 ret"); ok(strcmp(name, "TYPE65535") == 0, "get TYPE65535 name"); // Class num to string: // 7. CLASS0 ret = knot_rrclass_to_string(0, name, BUF_LEN); - ok(ret != -1, "get CLASS0 ret"); + ok(ret > 0, "get CLASS0 ret"); ok(strcmp(name, "CLASS0") == 0, "get CLASS0 name"); // 8. IN ret = knot_rrclass_to_string(1, name, BUF_LEN); - ok(ret != -1, "get IN ret"); + ok(ret > 0, "get IN ret"); ok(strcmp(name, "IN") == 0, "get IN name"); // 9. ANY ret = knot_rrclass_to_string(255, name, BUF_LEN); - ok(ret != -1, "get ANY ret"); + ok(ret > 0, "get ANY ret"); ok(strcmp(name, "ANY") == 0, "get ANY name"); // 10. CLASS65535 ret = knot_rrclass_to_string(65535, name, BUF_LEN); - ok(ret != -1, "get CLASS65535 ret"); + ok(ret > 0, "get CLASS65535 ret"); ok(strcmp(name, "CLASS65535") == 0, "get CLASS65535 name"); // String to type num: // 11. A ret = knot_rrtype_from_string("A", &num); - ok(ret != -1, "get A num ret"); + ok(ret == KNOT_EOK, "get A num ret"); ok(num == 1, "get A num"); // 12. a ret = knot_rrtype_from_string("a", &num); - ok(ret != -1, "get a num ret"); + ok(ret == KNOT_EOK, "get a num ret"); ok(num == 1, "get a num"); // 13. AaAa ret = knot_rrtype_from_string("AaAa", &num); - ok(ret != -1, "get AaAa num ret"); + ok(ret == KNOT_EOK, "get AaAa num ret"); ok(num == 28, "get AaAa num"); // 14. "" ret = knot_rrtype_from_string("", &num); - ok(ret == -1, "get "" num ret"); + ok(ret == KNOT_ENOTYPE, "get "" num ret"); // 15. DUMMY ret = knot_rrtype_from_string("DUMMY", &num); - ok(ret == -1, "get DUMMY num ret"); + ok(ret == KNOT_ENOTYPE, "get DUMMY num ret"); // 16. TypE33 ret = knot_rrtype_from_string("TypE33", &num); - ok(ret != -1, "get TypE33 num ret"); + ok(ret == KNOT_EOK, "get TypE33 num ret"); ok(num == 33, "get TypE33 num"); // 17. TYPE ret = knot_rrtype_from_string("TYPE", &num); - ok(ret == -1, "get TYPE num ret"); + ok(ret == KNOT_ENOTYPE, "get TYPE num ret"); // 18. TYPE0 ret = knot_rrtype_from_string("TYPE0", &num); - ok(ret != -1, "get TYPE0 num ret"); + ok(ret == KNOT_EOK, "get TYPE0 num ret"); ok(num == 0, "get TYPE0 num"); // 19. TYPE65535 ret = knot_rrtype_from_string("TYPE65535", &num); - ok(ret != -1, "get TYPE65535 num ret"); + ok(ret == KNOT_EOK, "get TYPE65535 num ret"); ok(num == 65535, "get TYPE65535 num"); // 20. TYPE65536 ret = knot_rrtype_from_string("TYPE65536", &num); - ok(ret == -1, "get TYPE65536 num ret"); + ok(ret == KNOT_ENOTYPE, "get TYPE65536 num ret"); // String to class num: // 21. In ret = knot_rrclass_from_string("In", &num); - ok(ret != -1, "get In num ret"); + ok(ret == KNOT_EOK, "get In num ret"); ok(num == 1, "get In num"); ret = knot_rrclass_from_string("Internet", &num); - ok(ret != -1, "get In num ret"); + ok(ret == KNOT_EOK, "get In num ret"); ok(num == 1, "get In num"); // 22. ANY ret = knot_rrclass_from_string("ANY", &num); - ok(ret != -1, "get ANY num ret"); + ok(ret == KNOT_EOK, "get ANY num ret"); ok(num == 255, "get ANY num"); // 23. "" ret = knot_rrclass_from_string("", &num); - ok(ret == -1, "get "" num ret"); + ok(ret == KNOT_ENOCLASS, "get "" num ret"); // 24. DUMMY ret = knot_rrclass_from_string("DUMMY", &num); - ok(ret == -1, "get DUMMY num ret"); + ok(ret == KNOT_ENOCLASS, "get DUMMY num ret"); // 25. CLass33 ret = knot_rrclass_from_string("CLass33", &num); - ok(ret != -1, "get CLass33 num ret"); + ok(ret == KNOT_EOK, "get CLass33 num ret"); ok(num == 33, "get CLass33 num"); // 26. CLASS ret = knot_rrclass_from_string("CLASS", &num); - ok(ret == -1, "get CLASS num ret"); + ok(ret == KNOT_ENOCLASS, "get CLASS num ret"); // 27. CLASS0 ret = knot_rrclass_from_string("CLASS0", &num); - ok(ret != -1, "get CLASS0 num ret"); + ok(ret == KNOT_EOK, "get CLASS0 num ret"); ok(num == 0, "get CLASS0 num"); // 28. CLASS65535 ret = knot_rrclass_from_string("CLASS65535", &num); - ok(ret != -1, "get CLASS65535 num ret"); + ok(ret == KNOT_EOK, "get CLASS65535 num ret"); ok(num == 65535, "get CLASS65535 num"); // 29. CLASS65536 ret = knot_rrclass_from_string("CLASS65536", &num); - ok(ret == -1, "get CLASS65536 num ret"); + ok(ret == KNOT_ENOCLASS, "get CLASS65536 num ret"); // Get obsolete descriptor: // 30. TYPE0 @@ -242,13 +243,22 @@ int main(int argc, char *argv[]) ok(descr->block_types[1] == KNOT_RDATA_WF_END, "get TYPE38 descriptor 2. item type"); - // knot_rrtype_to_string invalid output buffer size + // knot_rrtype_to_string NULL output buffer ret = knot_rrtype_to_string(1, NULL, 0); - ok(ret == -1, "knot_rrtype_to_string: invalid output buffer size"); + ok(ret == KNOT_EINVAL, "knot_rrtype_to_string: NULL output buffer"); - // knot_rrclass_to_string invalid output buffer size + // knot_rrclass_to_string NULL output buffer ret = knot_rrclass_to_string(1, NULL, 0); - ok(ret == -1, "knot_rrclass_to_string: invalid output buffer size"); + ok(ret == KNOT_EINVAL, "knot_rrclass_to_string: NULL output buffer"); + + char dummy_buf[1] = { 0 }; + // knot_rrtype_to_string invalid output buffer size + ret = knot_rrtype_to_string(1, dummy_buf, 1); + ok(ret == KNOT_ESPACE, "knot_rrtype_to_string: invalid output buffer size"); + + // knot_rrclass_to_string invalid output buffer size + ret = knot_rrclass_to_string(1, dummy_buf, 1); + ok(ret == KNOT_ESPACE, "knot_rrclass_to_string: invalid output buffer size"); // knot_rrtype_is_metatype ok(knot_rrtype_is_metatype(0) == 0, diff --git a/tests/libknot/test_rrset-dump.c b/tests/libknot/test_rrset-dump.c new file mode 100644 index 0000000000..216fae5173 --- /dev/null +++ b/tests/libknot/test_rrset-dump.c @@ -0,0 +1,80 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#include + +#include +#include +#include +#include + +#include "libknot/rrset-dump.h" + +/* BACKGROUND: + * + * This unit test could be used for testing rrset-dump with newly implemented RR types. + * But so far, the functional test records/load is used for this purpose. + * This unit test ought to catch different quirks of knot_rrset_txt_dump, + * like re-allocating the given output buffer based on errcode (KNOT_ESPACE). + */ + +const knot_dump_style_t *dump_style = &KNOT_DUMP_STYLE_DEFAULT; + +typedef struct { + const char *description; + knot_rrset_t rrset; + const char *expect_out; + int expect_ret; + size_t buf_sizes[8]; +} rrset_dump_test_case_t; + +const char * const rrsig_case_text = "test. \t1234567890\tRRSIG\tDNSKEY 13 1 1234567890 20251015085855 20251015063355 33658 test. uj40mBZYSg21VqhF7AcU6CTp3dM2k8G/Br8ZP902OCrsDjRq3qPZySxYwmcnbNYeAdVyT1m2zLmKZbYa8cCqRA==\n"; + +knot_rdata_t rrsig_case_rdata = { + 88, { 0x00, 0x30, 0x0d, 0x01, 0x49, 0x96, 0x02, 0xd2, 0x68, 0xef, 0x62, 0x4f, 0x68, 0xef, 0x40, 0x53, 0x83, 0x7a, 0x04, 0x74, 0x65, 0x73, 0x74, 0x00, + 0xba, 0x3e, 0x34, 0x98, 0x16, 0x58, 0x4a, 0x0d, 0xb5, 0x56, 0xa8, 0x45, 0xec, 0x07, 0x14, 0xe8, 0x24, 0xe9, 0xdd, 0xd3, 0x36, 0x93, 0xc1, 0xbf, 0x06, 0xbf, 0x19, 0x3f, 0xdd, 0x36, 0x38, 0x2a, + 0xec, 0x0e, 0x34, 0x6a, 0xde, 0xa3, 0xd9, 0xc9, 0x2c, 0x58, 0xc2, 0x67, 0x27, 0x6c, 0xd6, 0x1e, 0x01, 0xd5, 0x72, 0x4f, 0x59, 0xb6, 0xcc, 0xb9, 0x8a, 0x65, 0xb6, 0x1a, 0xf1, 0xc0, 0xaa, 0x44 + } +}; + +rrset_dump_test_case_t rrset_dump_test_cases[] = { + { "some RRSIG", { (knot_dname_t *)"\x04""test", 1234567890U, KNOT_RRTYPE_RRSIG, KNOT_CLASS_IN, { 1, 90, &rrsig_case_rdata }, NULL }, rrsig_case_text, KNOT_EOK, { 1, 3, 5, 7, 9, 11 } }, +}; + +void test_rrset_dump(const char *description, const knot_rrset_t *rrset, const char *expect_out, int expect_ret, size_t initial_buf) +{ + size_t bufsize = initial_buf; + char *buf = calloc(1, initial_buf); + assert(buf != NULL); + + if (expect_ret == KNOT_EOK) { + expect_ret = strlen(expect_out); + } + + int ret = knot_rrset_txt_dump(rrset, &buf, &bufsize, dump_style); + ok(ret == expect_ret, "%s (init buf %zu): return code %d found %d", description, initial_buf, expect_ret, ret); + + if (expect_out != NULL) { + ok(strcmp(buf, expect_out) == 0, "%s (init buf %zu): output string '%s' found '%s'", description, initial_buf, expect_out, buf); + } + + free(buf); +} + +int main(int argc, char *argv[]) +{ + plan_lazy(); + + for (size_t i = 0; i < sizeof(rrset_dump_test_cases) / sizeof(*rrset_dump_test_cases); i++) { + rrset_dump_test_case_t *c = &rrset_dump_test_cases[i]; + for (size_t j = 0; j < sizeof(c->buf_sizes) / sizeof(*c->buf_sizes); j++) { + if (c->buf_sizes[j] > 0) { + test_rrset_dump(c->description, &c->rrset, c->expect_out, c->expect_ret, c->buf_sizes[j]); + } + } + } + + return 0; +} From a5fbacc6242684a20f7a61c2309c385c235067b4 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 2 Nov 2025 07:36:56 +0100 Subject: [PATCH 222/675] tests/rrset-dump: fix compilation on OpenSuse + tiny refactoring --- tests/libknot/test_rrset-dump.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/libknot/test_rrset-dump.c b/tests/libknot/test_rrset-dump.c index 216fae5173..bf7b05215c 100644 --- a/tests/libknot/test_rrset-dump.c +++ b/tests/libknot/test_rrset-dump.c @@ -30,22 +30,23 @@ typedef struct { size_t buf_sizes[8]; } rrset_dump_test_case_t; -const char * const rrsig_case_text = "test. \t1234567890\tRRSIG\tDNSKEY 13 1 1234567890 20251015085855 20251015063355 33658 test. uj40mBZYSg21VqhF7AcU6CTp3dM2k8G/Br8ZP902OCrsDjRq3qPZySxYwmcnbNYeAdVyT1m2zLmKZbYa8cCqRA==\n"; +const char rrsig_case_text[] = "test. \t1234567890\tRRSIG\tDNSKEY 13 1 1234567890 20251015085855 20251015063355 33658 test. uj40mBZYSg21VqhF7AcU6CTp3dM2k8G/Br8ZP902OCrsDjRq3qPZySxYwmcnbNYeAdVyT1m2zLmKZbYa8cCqRA==\n"; knot_rdata_t rrsig_case_rdata = { - 88, { 0x00, 0x30, 0x0d, 0x01, 0x49, 0x96, 0x02, 0xd2, 0x68, 0xef, 0x62, 0x4f, 0x68, 0xef, 0x40, 0x53, 0x83, 0x7a, 0x04, 0x74, 0x65, 0x73, 0x74, 0x00, - 0xba, 0x3e, 0x34, 0x98, 0x16, 0x58, 0x4a, 0x0d, 0xb5, 0x56, 0xa8, 0x45, 0xec, 0x07, 0x14, 0xe8, 0x24, 0xe9, 0xdd, 0xd3, 0x36, 0x93, 0xc1, 0xbf, 0x06, 0xbf, 0x19, 0x3f, 0xdd, 0x36, 0x38, 0x2a, - 0xec, 0x0e, 0x34, 0x6a, 0xde, 0xa3, 0xd9, 0xc9, 0x2c, 0x58, 0xc2, 0x67, 0x27, 0x6c, 0xd6, 0x1e, 0x01, 0xd5, 0x72, 0x4f, 0x59, 0xb6, 0xcc, 0xb9, 0x8a, 0x65, 0xb6, 0x1a, 0xf1, 0xc0, 0xaa, 0x44 - } + 88, + { 0x00, 0x30, 0x0d, 0x01, 0x49, 0x96, 0x02, 0xd2, 0x68, 0xef, 0x62, 0x4f, 0x68, 0xef, 0x40, 0x53, 0x83, 0x7a, 0x04, 0x74, 0x65, 0x73, 0x74, 0x00, + 0xba, 0x3e, 0x34, 0x98, 0x16, 0x58, 0x4a, 0x0d, 0xb5, 0x56, 0xa8, 0x45, 0xec, 0x07, 0x14, 0xe8, 0x24, 0xe9, 0xdd, 0xd3, 0x36, 0x93, 0xc1, 0xbf, 0x06, 0xbf, 0x19, 0x3f, 0xdd, 0x36, 0x38, 0x2a, + 0xec, 0x0e, 0x34, 0x6a, 0xde, 0xa3, 0xd9, 0xc9, 0x2c, 0x58, 0xc2, 0x67, 0x27, 0x6c, 0xd6, 0x1e, 0x01, 0xd5, 0x72, 0x4f, 0x59, 0xb6, 0xcc, 0xb9, 0x8a, 0x65, 0xb6, 0x1a, 0xf1, 0xc0, 0xaa, 0x44 + } }; -rrset_dump_test_case_t rrset_dump_test_cases[] = { - { "some RRSIG", { (knot_dname_t *)"\x04""test", 1234567890U, KNOT_RRTYPE_RRSIG, KNOT_CLASS_IN, { 1, 90, &rrsig_case_rdata }, NULL }, rrsig_case_text, KNOT_EOK, { 1, 3, 5, 7, 9, 11 } }, +const rrset_dump_test_case_t rrset_dump_test_cases[] = { + { "some RRSIG", { (knot_dname_t *)"\x04""test", 1234567890U, KNOT_RRTYPE_RRSIG, KNOT_CLASS_IN, { 1, 90, &rrsig_case_rdata }, NULL }, rrsig_case_text, KNOT_EOK, { 1, 3, 5, 7, 9, 11 } }, }; void test_rrset_dump(const char *description, const knot_rrset_t *rrset, const char *expect_out, int expect_ret, size_t initial_buf) { - size_t bufsize = initial_buf; + size_t bufsize = initial_buf; char *buf = calloc(1, initial_buf); assert(buf != NULL); @@ -68,7 +69,7 @@ int main(int argc, char *argv[]) plan_lazy(); for (size_t i = 0; i < sizeof(rrset_dump_test_cases) / sizeof(*rrset_dump_test_cases); i++) { - rrset_dump_test_case_t *c = &rrset_dump_test_cases[i]; + const rrset_dump_test_case_t *c = &rrset_dump_test_cases[i]; for (size_t j = 0; j < sizeof(c->buf_sizes) / sizeof(*c->buf_sizes); j++) { if (c->buf_sizes[j] > 0) { test_rrset_dump(c->description, &c->rrset, c->expect_out, c->expect_ret, c->buf_sizes[j]); From a83fab1eec9a9b3c1b80837ae4805fd484d1eb37 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 29 Sep 2025 15:05:34 +0200 Subject: [PATCH 223/675] libknot: support for DSYNC RRtype, RFC 9859 --- doc/introduction.rst | 2 +- src/libknot/descriptor.c | 2 + src/libknot/descriptor.h | 1 + src/libknot/rrset-dump.c | 28 + src/libzscanner/error.c | 2 + src/libzscanner/error.h | 1 + src/libzscanner/scanner.c.g2 | 64338 +++++++++++++------------- src/libzscanner/scanner.c.t0 | 10192 ++-- src/libzscanner/scanner_body.rl | 27 + tests/libzscanner/TESTS | 1 + tests/libzscanner/data/60_DSYNC.in | 16 + tests/libzscanner/data/60_DSYNC.out | 32 + tests/libzscanner/test_zscanner.in | 2 +- 13 files changed, 38606 insertions(+), 36038 deletions(-) create mode 100644 tests/libzscanner/data/60_DSYNC.in create mode 100644 tests/libzscanner/data/60_DSYNC.out diff --git a/doc/introduction.rst b/doc/introduction.rst index 917707cb5b..f353ab4439 100644 --- a/doc/introduction.rst +++ b/doc/introduction.rst @@ -42,7 +42,7 @@ DNS features: TXT, RP, AFSDB, RT, KEY, AAAA, LOC, SRV, NAPTR, KX, CERT, DNAME, APL, DS, SSHFP, IPSECKEY, RRSIG, NSEC, DNSKEY, DHCID, NSEC3, NSEC3PARAM, TLSA, SMIMEA, CDS, CDNSKEY, OPENPGPKEY, CSYNC, ZONEMD, SVCB, HTTPS, SPF, NID, L32, L64, LP, - EUI48, EUI64, URI, CAA, WALLET, and Unknown + DSYNC, EUI48, EUI64, URI, CAA, WALLET, and Unknown Server features: diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c index 441e45a953..1e018cba3a 100644 --- a/src/libknot/descriptor.c +++ b/src/libknot/descriptor.c @@ -115,6 +115,8 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { KNOT_RDATA_WF_END }, "SVCB" }, [KNOT_RRTYPE_HTTPS] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "HTTPS" }, + [KNOT_RRTYPE_DSYNC] = { { KNOT_RDATA_WF_REMAINDER, + KNOT_RDATA_WF_END }, "DSYNC" }, [KNOT_RRTYPE_SPF] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "SPF" }, [KNOT_RRTYPE_NID] = { { 10, KNOT_RDATA_WF_END }, "NID" }, diff --git a/src/libknot/descriptor.h b/src/libknot/descriptor.h index bd8a695525..33d545b8df 100644 --- a/src/libknot/descriptor.h +++ b/src/libknot/descriptor.h @@ -97,6 +97,7 @@ enum knot_rr_type { KNOT_RRTYPE_ZONEMD = 63, /*!< Message digest for DNS zone. */ KNOT_RRTYPE_SVCB = 64, /*!< Service Binding. */ KNOT_RRTYPE_HTTPS = 65, /*!< HTTPS Binding. */ + KNOT_RRTYPE_DSYNC = 66, /*!< Generalized NOTIFY endpoint. */ KNOT_RRTYPE_SPF = 99, /*!< Sender policy framework. */ diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c index ea06cf8b3f..14f621a544 100644 --- a/src/libknot/rrset-dump.c +++ b/src/libknot/rrset-dump.c @@ -1580,6 +1580,21 @@ static void wire_svcparam_to_str(rrset_dump_params_t *p) } } +static void wire_dsync_scheme_to_str(rrset_dump_params_t *p) +{ + CHECK_PRET + + CHECK_INMAX(1) + uint8_t scheme = *(uint8_t *)p->in; + if (scheme == 1) { + dump_string(p, "NOTIFY"); + } else { + dump_uint(p, scheme); + } + p->in += sizeof(scheme); + p->in_max -= sizeof(scheme); +} + static size_t dnskey_len(const uint8_t *rdata, const size_t rdata_len) { @@ -1795,6 +1810,7 @@ static void dnskey_info(const uint8_t *rdata, #define DUMP_EUI wire_eui_to_str(p); CHECK_RET(p); #define DUMP_TSIG_RCODE wire_tsig_rcode_to_str(p); CHECK_RET(p); #define DUMP_SVCPARAM wire_svcparam_to_str(p); CHECK_RET(p); +#define DUMP_DSYNC_SCH wire_dsync_scheme_to_str(p); CHECK_RET(p); #define DUMP_UNKNOWN wire_unknown_to_str(p); CHECK_RET(p); static int dump_unknown(DUMP_PARAMS) @@ -2256,6 +2272,16 @@ static int dump_svcb(DUMP_PARAMS) DUMP_END; } +static int dump_dsync(DUMP_PARAMS) +{ + DUMP_TYPE; DUMP_SPACE; + DUMP_DSYNC_SCH; DUMP_SPACE; + DUMP_NUM16; DUMP_SPACE; + DUMP_DNAME; + + DUMP_END; +} + static int txt_dump_data(rrset_dump_params_t *p, uint16_t type) { switch (type) { @@ -2343,6 +2369,8 @@ static int txt_dump_data(rrset_dump_params_t *p, uint16_t type) case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: return dump_svcb(p); + case KNOT_RRTYPE_DSYNC: + return dump_dsync(p); default: return dump_unknown(p); } diff --git a/src/libzscanner/error.c b/src/libzscanner/error.c index 34e034f3c1..8d84b5ba83 100644 --- a/src/libzscanner/error.c +++ b/src/libzscanner/error.c @@ -159,6 +159,8 @@ static const err_table_t err_msgs[] = { "permission denied" ), ERR_ITEM( ZS_BAD_ALPN_BACKSLASH, "unscaped backslash character" ), + ERR_ITEM( ZS_BAD_DSYNC_SCHEME, + "invalid scheme" ), ERR_ITEM( 0, NULL ) // Terminator }; diff --git a/src/libzscanner/error.h b/src/libzscanner/error.h index 56c3f97420..385b5bcdf7 100644 --- a/src/libzscanner/error.h +++ b/src/libzscanner/error.h @@ -86,6 +86,7 @@ enum err_codes { ZS_EMPTY_LIST_ITEM, ZS_FILE_ACCESS, ZS_BAD_ALPN_BACKSLASH, + ZS_BAD_DSYNC_SCHEME, }; /*! diff --git a/src/libzscanner/scanner.c.g2 b/src/libzscanner/scanner.c.g2 index 657bde0f6d..bdb129dec4 100644 --- a/src/libzscanner/scanner.c.g2 +++ b/src/libzscanner/scanner.c.g2 @@ -99,7 +99,7 @@ int zs_init( memset(s, 0, sizeof(*s)); // Nonzero initial scanner state. - s->cs = 1444; + s->cs = 1483; // Reset the file descriptor. s->file.descriptor = -1; @@ -429,7 +429,7 @@ static void parse( _again: switch ( cs ) { - case 1444: goto st1444; + case 1483: goto st1483; case 0: goto st0; case 1: goto st1; case 2: goto st2; @@ -444,7 +444,7 @@ _again: case 11: goto st11; case 12: goto st12; case 13: goto st13; - case 1445: goto st1445; + case 1484: goto st1484; case 14: goto st14; case 15: goto st15; case 16: goto st16; @@ -611,10 +611,10 @@ _again: case 177: goto st177; case 178: goto st178; case 179: goto st179; - case 1446: goto st1446; case 180: goto st180; case 181: goto st181; case 182: goto st182; + case 1485: goto st1485; case 183: goto st183; case 184: goto st184; case 185: goto st185; @@ -622,23 +622,23 @@ _again: case 187: goto st187; case 188: goto st188; case 189: goto st189; - case 1447: goto st1447; case 190: goto st190; case 191: goto st191; case 192: goto st192; + case 1486: goto st1486; case 193: goto st193; case 194: goto st194; case 195: goto st195; case 196: goto st196; case 197: goto st197; - case 1448: goto st1448; case 198: goto st198; case 199: goto st199; case 200: goto st200; - case 1449: goto st1449; + case 1487: goto st1487; case 201: goto st201; case 202: goto st202; case 203: goto st203; + case 1488: goto st1488; case 204: goto st204; case 205: goto st205; case 206: goto st206; @@ -647,15 +647,15 @@ _again: case 209: goto st209; case 210: goto st210; case 211: goto st211; - case 1450: goto st1450; case 212: goto st212; case 213: goto st213; case 214: goto st214; + case 1489: goto st1489; case 215: goto st215; - case 1451: goto st1451; case 216: goto st216; case 217: goto st217; case 218: goto st218; + case 1490: goto st1490; case 219: goto st219; case 220: goto st220; case 221: goto st221; @@ -672,10 +672,10 @@ _again: case 232: goto st232; case 233: goto st233; case 234: goto st234; - case 1452: goto st1452; case 235: goto st235; case 236: goto st236; case 237: goto st237; + case 1491: goto st1491; case 238: goto st238; case 239: goto st239; case 240: goto st240; @@ -689,10 +689,10 @@ _again: case 248: goto st248; case 249: goto st249; case 250: goto st250; - case 1453: goto st1453; case 251: goto st251; case 252: goto st252; case 253: goto st253; + case 1492: goto st1492; case 254: goto st254; case 255: goto st255; case 256: goto st256; @@ -755,27 +755,27 @@ _again: case 313: goto st313; case 314: goto st314; case 315: goto st315; - case 1454: goto st1454; case 316: goto st316; case 317: goto st317; - case 1455: goto st1455; case 318: goto st318; + case 1493: goto st1493; case 319: goto st319; - case 1456: goto st1456; case 320: goto st320; + case 1494: goto st1494; case 321: goto st321; case 322: goto st322; + case 1495: goto st1495; case 323: goto st323; case 324: goto st324; case 325: goto st325; case 326: goto st326; case 327: goto st327; case 328: goto st328; - case 1457: goto st1457; - case 1458: goto st1458; case 329: goto st329; case 330: goto st330; case 331: goto st331; + case 1496: goto st1496; + case 1497: goto st1497; case 332: goto st332; case 333: goto st333; case 334: goto st334; @@ -788,10 +788,10 @@ _again: case 341: goto st341; case 342: goto st342; case 343: goto st343; - case 1459: goto st1459; case 344: goto st344; case 345: goto st345; case 346: goto st346; + case 1498: goto st1498; case 347: goto st347; case 348: goto st348; case 349: goto st349; @@ -799,10 +799,10 @@ _again: case 351: goto st351; case 352: goto st352; case 353: goto st353; - case 1460: goto st1460; case 354: goto st354; case 355: goto st355; case 356: goto st356; + case 1499: goto st1499; case 357: goto st357; case 358: goto st358; case 359: goto st359; @@ -814,44 +814,44 @@ _again: case 365: goto st365; case 366: goto st366; case 367: goto st367; - case 1461: goto st1461; case 368: goto st368; case 369: goto st369; case 370: goto st370; + case 1500: goto st1500; case 371: goto st371; case 372: goto st372; case 373: goto st373; case 374: goto st374; - case 1462: goto st1462; case 375: goto st375; case 376: goto st376; case 377: goto st377; + case 1501: goto st1501; case 378: goto st378; case 379: goto st379; case 380: goto st380; case 381: goto st381; case 382: goto st382; case 383: goto st383; - case 1463: goto st1463; - case 1464: goto st1464; - case 1465: goto st1465; case 384: goto st384; case 385: goto st385; case 386: goto st386; + case 1502: goto st1502; + case 1503: goto st1503; + case 1504: goto st1504; case 387: goto st387; case 388: goto st388; case 389: goto st389; case 390: goto st390; case 391: goto st391; - case 1466: goto st1466; - case 1467: goto st1467; case 392: goto st392; case 393: goto st393; case 394: goto st394; - case 1468: goto st1468; + case 1505: goto st1505; + case 1506: goto st1506; case 395: goto st395; case 396: goto st396; case 397: goto st397; + case 1507: goto st1507; case 398: goto st398; case 399: goto st399; case 400: goto st400; @@ -1016,38 +1016,38 @@ _again: case 559: goto st559; case 560: goto st560; case 561: goto st561; - case 1469: goto st1469; - case 1470: goto st1470; - case 1471: goto st1471; case 562: goto st562; case 563: goto st563; case 564: goto st564; case 565: goto st565; case 566: goto st566; - case 1472: goto st1472; case 567: goto st567; + case 1508: goto st1508; + case 1509: goto st1509; + case 1510: goto st1510; case 568: goto st568; case 569: goto st569; case 570: goto st570; - case 1473: goto st1473; - case 1474: goto st1474; - case 1475: goto st1475; case 571: goto st571; case 572: goto st572; - case 1476: goto st1476; + case 1511: goto st1511; case 573: goto st573; case 574: goto st574; case 575: goto st575; case 576: goto st576; + case 1512: goto st1512; + case 1513: goto st1513; + case 1514: goto st1514; case 577: goto st577; case 578: goto st578; - case 1477: goto st1477; + case 1515: goto st1515; case 579: goto st579; case 580: goto st580; case 581: goto st581; case 582: goto st582; case 583: goto st583; case 584: goto st584; + case 1516: goto st1516; case 585: goto st585; case 586: goto st586; case 587: goto st587; @@ -1102,24 +1102,24 @@ _again: case 636: goto st636; case 637: goto st637; case 638: goto st638; - case 1478: goto st1478; - case 1479: goto st1479; case 639: goto st639; case 640: goto st640; case 641: goto st641; case 642: goto st642; case 643: goto st643; case 644: goto st644; + case 1517: goto st1517; + case 1518: goto st1518; case 645: goto st645; case 646: goto st646; case 647: goto st647; - case 1480: goto st1480; case 648: goto st648; case 649: goto st649; case 650: goto st650; case 651: goto st651; case 652: goto st652; case 653: goto st653; + case 1519: goto st1519; case 654: goto st654; case 655: goto st655; case 656: goto st656; @@ -1209,13 +1209,13 @@ _again: case 740: goto st740; case 741: goto st741; case 742: goto st742; - case 1481: goto st1481; case 743: goto st743; case 744: goto st744; case 745: goto st745; case 746: goto st746; case 747: goto st747; case 748: goto st748; + case 1520: goto st1520; case 749: goto st749; case 750: goto st750; case 751: goto st751; @@ -1314,13 +1314,13 @@ _again: case 844: goto st844; case 845: goto st845; case 846: goto st846; - case 1482: goto st1482; case 847: goto st847; case 848: goto st848; case 849: goto st849; case 850: goto st850; case 851: goto st851; case 852: goto st852; + case 1521: goto st1521; case 853: goto st853; case 854: goto st854; case 855: goto st855; @@ -1356,14 +1356,13 @@ _again: case 885: goto st885; case 886: goto st886; case 887: goto st887; - case 1483: goto st1483; case 888: goto st888; case 889: goto st889; - case 1484: goto st1484; case 890: goto st890; case 891: goto st891; case 892: goto st892; case 893: goto st893; + case 1522: goto st1522; case 894: goto st894; case 895: goto st895; case 896: goto st896; @@ -1372,9 +1371,10 @@ _again: case 899: goto st899; case 900: goto st900; case 901: goto st901; + case 1523: goto st1523; case 902: goto st902; case 903: goto st903; - case 1485: goto st1485; + case 1524: goto st1524; case 904: goto st904; case 905: goto st905; case 906: goto st906; @@ -1389,6 +1389,7 @@ _again: case 915: goto st915; case 916: goto st916; case 917: goto st917; + case 1525: goto st1525; case 918: goto st918; case 919: goto st919; case 920: goto st920; @@ -1397,44 +1398,44 @@ _again: case 923: goto st923; case 924: goto st924; case 925: goto st925; - case 1486: goto st1486; case 926: goto st926; case 927: goto st927; case 928: goto st928; case 929: goto st929; case 930: goto st930; - case 1487: goto st1487; case 931: goto st931; case 932: goto st932; case 933: goto st933; case 934: goto st934; case 935: goto st935; - case 1488: goto st1488; case 936: goto st936; case 937: goto st937; case 938: goto st938; case 939: goto st939; + case 1526: goto st1526; case 940: goto st940; - case 1489: goto st1489; - case 1490: goto st1490; - case 1491: goto st1491; case 941: goto st941; case 942: goto st942; - case 1492: goto st1492; case 943: goto st943; case 944: goto st944; + case 1527: goto st1527; case 945: goto st945; case 946: goto st946; case 947: goto st947; case 948: goto st948; case 949: goto st949; + case 1528: goto st1528; case 950: goto st950; case 951: goto st951; case 952: goto st952; case 953: goto st953; case 954: goto st954; + case 1529: goto st1529; + case 1530: goto st1530; + case 1531: goto st1531; case 955: goto st955; case 956: goto st956; + case 1532: goto st1532; case 957: goto st957; case 958: goto st958; case 959: goto st959; @@ -1448,40 +1449,40 @@ _again: case 967: goto st967; case 968: goto st968; case 969: goto st969; - case 1493: goto st1493; - case 1494: goto st1494; - case 1495: goto st1495; case 970: goto st970; case 971: goto st971; case 972: goto st972; - case 1496: goto st1496; - case 1497: goto st1497; case 973: goto st973; case 974: goto st974; case 975: goto st975; case 976: goto st976; - case 1498: goto st1498; - case 1499: goto st1499; case 977: goto st977; case 978: goto st978; case 979: goto st979; case 980: goto st980; - case 1500: goto st1500; - case 1501: goto st1501; case 981: goto st981; case 982: goto st982; case 983: goto st983; + case 1533: goto st1533; + case 1534: goto st1534; + case 1535: goto st1535; case 984: goto st984; case 985: goto st985; case 986: goto st986; + case 1536: goto st1536; + case 1537: goto st1537; case 987: goto st987; case 988: goto st988; case 989: goto st989; case 990: goto st990; + case 1538: goto st1538; + case 1539: goto st1539; case 991: goto st991; case 992: goto st992; case 993: goto st993; case 994: goto st994; + case 1540: goto st1540; + case 1541: goto st1541; case 995: goto st995; case 996: goto st996; case 997: goto st997; @@ -1493,7 +1494,6 @@ _again: case 1003: goto st1003; case 1004: goto st1004; case 1005: goto st1005; - case 1502: goto st1502; case 1006: goto st1006; case 1007: goto st1007; case 1008: goto st1008; @@ -1508,8 +1508,8 @@ _again: case 1017: goto st1017; case 1018: goto st1018; case 1019: goto st1019; + case 1542: goto st1542; case 1020: goto st1020; - case 1503: goto st1503; case 1021: goto st1021; case 1022: goto st1022; case 1023: goto st1023; @@ -1523,8 +1523,8 @@ _again: case 1031: goto st1031; case 1032: goto st1032; case 1033: goto st1033; - case 1504: goto st1504; case 1034: goto st1034; + case 1543: goto st1543; case 1035: goto st1035; case 1036: goto st1036; case 1037: goto st1037; @@ -1535,12 +1535,10 @@ _again: case 1042: goto st1042; case 1043: goto st1043; case 1044: goto st1044; - case 1505: goto st1505; - case 1506: goto st1506; case 1045: goto st1045; case 1046: goto st1046; case 1047: goto st1047; - case 1507: goto st1507; + case 1544: goto st1544; case 1048: goto st1048; case 1049: goto st1049; case 1050: goto st1050; @@ -1551,13 +1549,13 @@ _again: case 1055: goto st1055; case 1056: goto st1056; case 1057: goto st1057; - case 1508: goto st1508; - case 1509: goto st1509; - case 1510: goto st1510; case 1058: goto st1058; + case 1545: goto st1545; + case 1546: goto st1546; case 1059: goto st1059; case 1060: goto st1060; case 1061: goto st1061; + case 1547: goto st1547; case 1062: goto st1062; case 1063: goto st1063; case 1064: goto st1064; @@ -1565,12 +1563,12 @@ _again: case 1066: goto st1066; case 1067: goto st1067; case 1068: goto st1068; - case 1511: goto st1511; - case 1512: goto st1512; - case 1513: goto st1513; case 1069: goto st1069; case 1070: goto st1070; case 1071: goto st1071; + case 1548: goto st1548; + case 1549: goto st1549; + case 1550: goto st1550; case 1072: goto st1072; case 1073: goto st1073; case 1074: goto st1074; @@ -1580,18 +1578,14 @@ _again: case 1078: goto st1078; case 1079: goto st1079; case 1080: goto st1080; - case 1514: goto st1514; case 1081: goto st1081; case 1082: goto st1082; + case 1551: goto st1551; + case 1552: goto st1552; + case 1553: goto st1553; case 1083: goto st1083; - case 1515: goto st1515; - case 1516: goto st1516; case 1084: goto st1084; - case 1517: goto st1517; - case 1518: goto st1518; case 1085: goto st1085; - case 1519: goto st1519; - case 1520: goto st1520; case 1086: goto st1086; case 1087: goto st1087; case 1088: goto st1088; @@ -1601,11 +1595,18 @@ _again: case 1092: goto st1092; case 1093: goto st1093; case 1094: goto st1094; + case 1554: goto st1554; case 1095: goto st1095; case 1096: goto st1096; case 1097: goto st1097; + case 1555: goto st1555; + case 1556: goto st1556; case 1098: goto st1098; + case 1557: goto st1557; + case 1558: goto st1558; case 1099: goto st1099; + case 1559: goto st1559; + case 1560: goto st1560; case 1100: goto st1100; case 1101: goto st1101; case 1102: goto st1102; @@ -1634,7 +1635,6 @@ _again: case 1125: goto st1125; case 1126: goto st1126; case 1127: goto st1127; - case 1521: goto st1521; case 1128: goto st1128; case 1129: goto st1129; case 1130: goto st1130; @@ -1649,6 +1649,7 @@ _again: case 1139: goto st1139; case 1140: goto st1140; case 1141: goto st1141; + case 1561: goto st1561; case 1142: goto st1142; case 1143: goto st1143; case 1144: goto st1144; @@ -1812,7 +1813,6 @@ _again: case 1302: goto st1302; case 1303: goto st1303; case 1304: goto st1304; - case 1522: goto st1522; case 1305: goto st1305; case 1306: goto st1306; case 1307: goto st1307; @@ -1821,17 +1821,16 @@ _again: case 1310: goto st1310; case 1311: goto st1311; case 1312: goto st1312; - case 1523: goto st1523; case 1313: goto st1313; case 1314: goto st1314; case 1315: goto st1315; case 1316: goto st1316; case 1317: goto st1317; - case 1524: goto st1524; case 1318: goto st1318; case 1319: goto st1319; case 1320: goto st1320; case 1321: goto st1321; + case 1562: goto st1562; case 1322: goto st1322; case 1323: goto st1323; case 1324: goto st1324; @@ -1840,13 +1839,14 @@ _again: case 1327: goto st1327; case 1328: goto st1328; case 1329: goto st1329; + case 1563: goto st1563; case 1330: goto st1330; case 1331: goto st1331; case 1332: goto st1332; case 1333: goto st1333; case 1334: goto st1334; + case 1564: goto st1564; case 1335: goto st1335; - case 1525: goto st1525; case 1336: goto st1336; case 1337: goto st1337; case 1338: goto st1338; @@ -1864,9 +1864,9 @@ _again: case 1350: goto st1350; case 1351: goto st1351; case 1352: goto st1352; + case 1565: goto st1565; case 1353: goto st1353; case 1354: goto st1354; - case 1526: goto st1526; case 1355: goto st1355; case 1356: goto st1356; case 1357: goto st1357; @@ -1882,18 +1882,15 @@ _again: case 1367: goto st1367; case 1368: goto st1368; case 1369: goto st1369; - case 1527: goto st1527; - case 1528: goto st1528; - case 1529: goto st1529; case 1370: goto st1370; case 1371: goto st1371; + case 1566: goto st1566; case 1372: goto st1372; case 1373: goto st1373; case 1374: goto st1374; case 1375: goto st1375; case 1376: goto st1376; case 1377: goto st1377; - case 1530: goto st1530; case 1378: goto st1378; case 1379: goto st1379; case 1380: goto st1380; @@ -1903,19 +1900,19 @@ _again: case 1384: goto st1384; case 1385: goto st1385; case 1386: goto st1386; + case 1567: goto st1567; + case 1568: goto st1568; + case 1569: goto st1569; case 1387: goto st1387; case 1388: goto st1388; - case 1531: goto st1531; - case 1532: goto st1532; - case 1533: goto st1533; case 1389: goto st1389; case 1390: goto st1390; case 1391: goto st1391; case 1392: goto st1392; case 1393: goto st1393; case 1394: goto st1394; + case 1570: goto st1570; case 1395: goto st1395; - case 1534: goto st1534; case 1396: goto st1396; case 1397: goto st1397; case 1398: goto st1398; @@ -1926,50 +1923,94 @@ _again: case 1403: goto st1403; case 1404: goto st1404; case 1405: goto st1405; + case 1571: goto st1571; + case 1572: goto st1572; + case 1573: goto st1573; case 1406: goto st1406; case 1407: goto st1407; case 1408: goto st1408; - case 1535: goto st1535; case 1409: goto st1409; case 1410: goto st1410; case 1411: goto st1411; case 1412: goto st1412; + case 1574: goto st1574; case 1413: goto st1413; case 1414: goto st1414; case 1415: goto st1415; - case 1536: goto st1536; case 1416: goto st1416; case 1417: goto st1417; case 1418: goto st1418; case 1419: goto st1419; case 1420: goto st1420; case 1421: goto st1421; - case 1537: goto st1537; case 1422: goto st1422; case 1423: goto st1423; case 1424: goto st1424; case 1425: goto st1425; + case 1575: goto st1575; case 1426: goto st1426; case 1427: goto st1427; - case 1538: goto st1538; case 1428: goto st1428; case 1429: goto st1429; case 1430: goto st1430; case 1431: goto st1431; case 1432: goto st1432; + case 1576: goto st1576; case 1433: goto st1433; case 1434: goto st1434; case 1435: goto st1435; - case 1539: goto st1539; case 1436: goto st1436; case 1437: goto st1437; case 1438: goto st1438; + case 1577: goto st1577; case 1439: goto st1439; case 1440: goto st1440; case 1441: goto st1441; case 1442: goto st1442; - case 1540: goto st1540; case 1443: goto st1443; + case 1444: goto st1444; + case 1578: goto st1578; + case 1445: goto st1445; + case 1446: goto st1446; + case 1447: goto st1447; + case 1448: goto st1448; + case 1449: goto st1449; + case 1450: goto st1450; + case 1451: goto st1451; + case 1452: goto st1452; + case 1579: goto st1579; + case 1453: goto st1453; + case 1454: goto st1454; + case 1455: goto st1455; + case 1456: goto st1456; + case 1457: goto st1457; + case 1458: goto st1458; + case 1459: goto st1459; + case 1580: goto st1580; + case 1460: goto st1460; + case 1461: goto st1461; + case 1462: goto st1462; + case 1463: goto st1463; + case 1464: goto st1464; + case 1465: goto st1465; + case 1466: goto st1466; + case 1467: goto st1467; + case 1468: goto st1468; + case 1469: goto st1469; + case 1470: goto st1470; + case 1581: goto st1581; + case 1471: goto st1471; + case 1472: goto st1472; + case 1473: goto st1473; + case 1474: goto st1474; + case 1475: goto st1475; + case 1476: goto st1476; + case 1477: goto st1477; + case 1478: goto st1478; + case 1479: goto st1479; + case 1480: goto st1480; + case 1481: goto st1481; + case 1482: goto st1482; default: break; } @@ -1982,7 +2023,7 @@ tr23: { s->line_counter++; } - goto st1444; + goto st1483; tr89: { s->buffer[0] = 0; @@ -1991,7 +2032,7 @@ tr89: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -2004,23 +2045,23 @@ tr89: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1444; goto _out;} + {p++; cs = 1483; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1444; goto _out;} + p--; {p++; cs = 1483; goto _out;} } } { s->line_counter++; } - goto st1444; + goto st1483; tr95: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -2033,18 +2074,18 @@ tr95: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1444; goto _out;} + {p++; cs = 1483; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1444; goto _out;} + p--; {p++; cs = 1483; goto _out;} } } { s->line_counter++; } - goto st1444; + goto st1483; tr98: { s->buffer[s->buffer_length++] = 0; @@ -2055,14 +2096,14 @@ tr98: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1444; goto _out;} + {p++; cs = 1483; goto _out;} } } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -2075,19 +2116,19 @@ tr98: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1444; goto _out;} + {p++; cs = 1483; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1444; goto _out;} + p--; {p++; cs = 1483; goto _out;} } } { s->line_counter++; } - goto st1444; -tr772: + goto st1483; +tr783: { s->buffer[s->buffer_length++] = 0; @@ -2097,15 +2138,15 @@ tr772: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1444; goto _out;} + {p++; cs = 1483; goto _out;} } } } { s->line_counter++; } - goto st1444; -tr866: + goto st1483; +tr877: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2119,14 +2160,14 @@ tr866: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1444; goto _out;} + {p++; cs = 1483; goto _out;} } } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -2139,19 +2180,19 @@ tr866: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1444; goto _out;} + {p++; cs = 1483; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1444; goto _out;} + p--; {p++; cs = 1483; goto _out;} } } { s->line_counter++; } - goto st1444; -tr984: + goto st1483; +tr995: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2159,7 +2200,7 @@ tr984: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -2172,12 +2213,12 @@ tr984: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1444; goto _out;} + {p++; cs = 1483; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1444; goto _out;} + p--; {p++; cs = 1483; goto _out;} } } { @@ -2192,16 +2233,16 @@ tr984: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1444; goto _out;} + {p++; cs = 1483; goto _out;} } } } - goto st1444; -tr988: + goto st1483; +tr999: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -2214,12 +2255,12 @@ tr988: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1444; goto _out;} + {p++; cs = 1483; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1444; goto _out;} + p--; {p++; cs = 1483; goto _out;} } } { @@ -2234,12 +2275,12 @@ tr988: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1444; goto _out;} + {p++; cs = 1483; goto _out;} } } } - goto st1444; -tr4291: + goto st1483; +tr4391: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2247,8 +2288,8 @@ tr4291: { s->line_counter++; } - goto st1444; -tr4357: + goto st1483; +tr4457: { NOERR; } @@ -2259,11 +2300,11 @@ tr4357: { s->line_counter++; } - goto st1444; -st1444: + goto st1483; +st1483: if ( ++p == pe ) - goto _test_eof1444; -case 1444: + goto _test_eof1483; +case 1483: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -2277,928 +2318,934 @@ case 1444: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4286; - case 32: goto tr4286; - case 36: goto st190; - case 40: goto tr4288; - case 41: goto tr4289; - case 42: goto tr4290; - case 92: goto tr4290; - case 95: goto tr4290; - case 1802: goto tr4291; - case 1851: goto tr4292; - case 2058: goto tr4293; - case 2107: goto tr4294; + case 9: goto tr4386; + case 32: goto tr4386; + case 36: goto st193; + case 40: goto tr4388; + case 41: goto tr4389; + case 42: goto tr4390; + case 92: goto tr4390; + case 95: goto tr4390; + case 1802: goto tr4391; + case 1851: goto tr4392; + case 2058: goto tr4393; + case 2107: goto tr4394; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4290; + goto tr4390; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4290; + goto tr4390; } else - goto tr4290; - goto tr4285; + goto tr4390; + goto tr4385; tr0: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; tr27: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } goto st0; tr39: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } goto st0; tr63: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; tr77: { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; tr85: { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; tr91: { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; tr120: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; tr148: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; tr154: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr660: +tr671: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr662: +tr673: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr773: +tr784: { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr784: +tr795: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr798: +tr809: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr826: +tr837: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr841: +tr852: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr879: +tr890: { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr889: +tr900: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr895: +tr906: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr908: +tr919: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr922: +tr933: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1014: +tr1025: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1029: +tr1040: { WARN(ZS_BAD_DNAME_CHAR); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1042: +tr1053: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_DNAME_CHAR); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1050: +tr1061: { WARN(ZS_BAD_TEXT_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_TEXT); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1058: +tr1069: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_TEXT_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_TEXT); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1074: +tr1085: { WARN(ZS_BAD_TEXT); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1083: +tr1094: { ERR(ZS_BAD_TTL); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1089: +tr1100: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { ERR(ZS_BAD_TTL); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1091: +tr1102: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } { ERR(ZS_BAD_TTL); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1103: +tr1114: { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } { ERR(ZS_BAD_TTL); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1112: +tr1123: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { ERR(ZS_BAD_TTL); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1127: +tr1138: { ERR(ZS_BAD_ORIGIN); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1139: +tr1150: { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } { ERR(ZS_BAD_ORIGIN); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1155: +tr1166: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { ERR(ZS_BAD_ORIGIN); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1169: +tr1180: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1170: +tr1181: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1177: +tr1188: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1187: +tr1198: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1204: +tr1215: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1221: +tr1232: { WARN(ZS_BAD_BASE64_CHAR); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1237: +tr1248: { WARN(ZS_BAD_BITMAP); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1824: +tr1846: { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1830: +tr1852: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1838: +tr1860: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1900: +tr1922: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1939: +tr1961: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr1967: +tr1989: { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr2063: +tr2085: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr2107: +tr2129: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr2198: +tr2220: { WARN(ZS_BAD_ALGORITHM); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr2320: +tr2342: { WARN(ZS_BAD_CERT_TYPE); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr2373: +tr2395: + { + WARN(ZS_BAD_DSYNC_SCHEME); + p--; {goto st319;} + } + goto st0; +tr2406: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr2396: +tr2429: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr2415: +tr2448: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr2581: +tr2614: { s->long_string = false; } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr2604: +tr2637: { WARN(ZS_BAD_LOC_DATA); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3007: +tr3040: { WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3022: +tr3055: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3067: +tr3100: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3138: +tr3171: { WARN(ZS_BAD_GATEWAY); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3153: +tr3186: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3167: +tr3200: { WARN(ZS_BAD_GATEWAY); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3190: +tr3223: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3214: +tr3247: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3221: +tr3254: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3340: +tr3373: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3397: +tr3430: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3826: +tr3867: { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr3947: +tr3988: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr4186: +tr4227: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_CHAR_COLON); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr4192: +tr4233: { WARN(ZS_BAD_CHAR_COLON); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr4198: +tr4239: { WARN(ZS_BAD_CHAR_DASH); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr4285: +tr4385: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr4307: +tr4407: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr4331: +tr4431: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr4351: +tr4451: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; -tr4375: +tr4475: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_RDATA); - p--; {goto st316;} + p--; {goto st319;} } { WARN(ZS_BAD_REST); - p--; {goto st316;} + p--; {goto st319;} } goto st0; st0: @@ -3208,7 +3255,7 @@ tr2: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -3217,16 +3264,16 @@ tr3: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st1; -tr4286: +tr4386: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -3234,17 +3281,17 @@ tr4286: s->buffer_length = 0; } goto st1; -tr4288: +tr4388: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -3253,17 +3300,17 @@ tr4288: s->buffer_length = 0; } goto st1; -tr4289: +tr4389: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -3272,18 +3319,18 @@ tr4289: s->buffer_length = 0; } goto st1; -tr4361: +tr4461: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -3291,18 +3338,18 @@ tr4361: s->buffer_length = 0; } goto st1; -tr4362: +tr4462: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -3310,14 +3357,14 @@ tr4362: s->buffer_length = 0; } goto st1; -tr4352: +tr4452: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -3325,20 +3372,20 @@ tr4352: s->buffer_length = 0; } goto st1; -tr4354: +tr4454: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -3347,20 +3394,20 @@ tr4354: s->buffer_length = 0; } goto st1; -tr4355: +tr4455: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -3449,7 +3496,7 @@ tr4: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } goto st2; @@ -3465,7 +3512,7 @@ tr31: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } goto st2; @@ -3493,12 +3540,12 @@ case 2: case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st204; + case 83: goto st207; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st204; + case 115: goto st207; case 119: goto tr36; case 2058: goto tr37; case 2107: goto tr38; @@ -3510,7 +3557,7 @@ tr41: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -3519,7 +3566,7 @@ tr42: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -3535,7 +3582,7 @@ tr28: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } goto st3; @@ -3545,13 +3592,13 @@ tr29: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -3562,13 +3609,13 @@ tr30: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -3579,14 +3626,14 @@ tr37: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } goto st3; -tr825: +tr836: { s->buffer[s->buffer_length++] = 0; @@ -3604,13 +3651,13 @@ tr825: s->line_counter++; } goto st3; -tr818: +tr829: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -3618,17 +3665,17 @@ tr818: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } goto st3; -tr819: +tr830: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -3636,24 +3683,24 @@ tr819: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st3; -tr820: +tr831: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -3661,24 +3708,24 @@ tr820: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st3; -tr822: +tr833: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -3686,7 +3733,7 @@ tr822: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -3767,7 +3814,7 @@ tr43: s->r_class = s->default_class; } goto st4; -tr725: +tr736: { s->r_ttl = s->default_ttl; } @@ -3797,12 +3844,12 @@ case 4: case 32: goto tr64; case 40: goto tr65; case 41: goto tr66; - case 65: goto st274; - case 70: goto st277; - case 80: goto st281; - case 97: goto st274; - case 102: goto st277; - case 112: goto st281; + case 65: goto st277; + case 70: goto st280; + case 80: goto st284; + case 97: goto st277; + case 102: goto st280; + case 112: goto st284; case 3082: goto tr70; case 3131: goto tr71; case 3338: goto tr72; @@ -3815,7 +3862,7 @@ tr78: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -3824,7 +3871,7 @@ tr79: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -3848,7 +3895,7 @@ tr65: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -3861,7 +3908,7 @@ tr66: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -3907,7 +3954,7 @@ tr167: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -3920,7 +3967,7 @@ tr168: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -3948,7 +3995,7 @@ tr189: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -3961,7 +4008,7 @@ tr190: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -3989,7 +4036,7 @@ tr197: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -4002,7 +4049,7 @@ tr198: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -4030,7 +4077,7 @@ tr207: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -4043,7 +4090,7 @@ tr208: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -4071,7 +4118,7 @@ tr218: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -4084,7 +4131,7 @@ tr219: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -4112,7 +4159,7 @@ tr229: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -4125,7 +4172,7 @@ tr230: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -4153,7 +4200,7 @@ tr243: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -4166,7 +4213,7 @@ tr244: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -4194,7 +4241,7 @@ tr255: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -4207,7 +4254,7 @@ tr256: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -4235,7 +4282,7 @@ tr266: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -4248,7 +4295,7 @@ tr267: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -4276,7 +4323,7 @@ tr274: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -4289,12 +4336,12 @@ tr275: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr276: +tr277: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -4303,13 +4350,54 @@ tr276: s->line_counter++; } goto st5; +tr284: + { s->r_type = KNOT_RRTYPE_DSYNC; } + { + rdata_tail = s->r_data; + } + goto st5; +tr285: + { s->r_type = KNOT_RRTYPE_DSYNC; } + { + rdata_tail = s->r_data; + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st5; tr286: - { s->r_type = KNOT_RRTYPE_EUI48; } + { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } goto st5; tr287: + { s->r_type = KNOT_RRTYPE_DSYNC; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + goto st5; +tr297: + { s->r_type = KNOT_RRTYPE_EUI48; } + { + rdata_tail = s->r_data; + } + goto st5; +tr298: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -4317,12 +4405,12 @@ tr287: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr288: +tr299: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -4330,12 +4418,12 @@ tr288: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr289: +tr300: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -4344,13 +4432,13 @@ tr289: s->line_counter++; } goto st5; -tr295: +tr306: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; } goto st5; -tr296: +tr307: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -4358,12 +4446,12 @@ tr296: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr297: +tr308: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -4371,12 +4459,12 @@ tr297: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr298: +tr309: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -4385,13 +4473,13 @@ tr298: s->line_counter++; } goto st5; -tr308: +tr319: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; } goto st5; -tr309: +tr320: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -4399,12 +4487,12 @@ tr309: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr310: +tr321: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -4412,12 +4500,12 @@ tr310: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr311: +tr322: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -4426,13 +4514,13 @@ tr311: s->line_counter++; } goto st5; -tr319: +tr330: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; } goto st5; -tr320: +tr331: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -4440,12 +4528,12 @@ tr320: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr321: +tr332: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -4453,12 +4541,12 @@ tr321: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr322: +tr333: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -4467,13 +4555,13 @@ tr322: s->line_counter++; } goto st5; -tr363: +tr374: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; } goto st5; -tr364: +tr375: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -4481,12 +4569,12 @@ tr364: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr365: +tr376: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -4494,12 +4582,12 @@ tr365: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr366: +tr377: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -4508,13 +4596,13 @@ tr366: s->line_counter++; } goto st5; -tr374: +tr385: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; } goto st5; -tr375: +tr386: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -4522,12 +4610,12 @@ tr375: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr376: +tr387: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -4535,12 +4623,12 @@ tr376: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr377: +tr388: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -4549,13 +4637,13 @@ tr377: s->line_counter++; } goto st5; -tr382: +tr393: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; } goto st5; -tr383: +tr394: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -4563,12 +4651,12 @@ tr383: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr384: +tr395: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -4576,12 +4664,12 @@ tr384: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr385: +tr396: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -4590,13 +4678,13 @@ tr385: s->line_counter++; } goto st5; -tr395: +tr406: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; } goto st5; -tr396: +tr407: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -4604,12 +4692,12 @@ tr396: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr397: +tr408: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -4617,12 +4705,12 @@ tr397: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr398: +tr409: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -4631,13 +4719,13 @@ tr398: s->line_counter++; } goto st5; -tr404: +tr415: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; } goto st5; -tr405: +tr416: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -4645,12 +4733,12 @@ tr405: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr406: +tr417: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -4658,12 +4746,12 @@ tr406: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr407: +tr418: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -4672,13 +4760,13 @@ tr407: s->line_counter++; } goto st5; -tr413: +tr424: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; } goto st5; -tr414: +tr425: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -4686,12 +4774,12 @@ tr414: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr415: +tr426: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -4699,12 +4787,12 @@ tr415: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr416: +tr427: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -4713,13 +4801,13 @@ tr416: s->line_counter++; } goto st5; -tr421: +tr432: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; } goto st5; -tr422: +tr433: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -4727,12 +4815,12 @@ tr422: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr423: +tr434: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -4740,12 +4828,12 @@ tr423: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr424: +tr435: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -4754,13 +4842,13 @@ tr424: s->line_counter++; } goto st5; -tr434: +tr445: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; } goto st5; -tr435: +tr446: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -4768,12 +4856,12 @@ tr435: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr436: +tr447: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -4781,12 +4869,12 @@ tr436: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr437: +tr448: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -4795,13 +4883,13 @@ tr437: s->line_counter++; } goto st5; -tr442: +tr453: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; } goto st5; -tr443: +tr454: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -4809,12 +4897,12 @@ tr443: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr444: +tr455: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -4822,12 +4910,12 @@ tr444: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr445: +tr456: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -4836,13 +4924,13 @@ tr445: s->line_counter++; } goto st5; -tr456: +tr467: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; } goto st5; -tr457: +tr468: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -4850,12 +4938,12 @@ tr457: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr458: +tr469: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -4863,12 +4951,12 @@ tr458: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr459: +tr470: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -4877,13 +4965,13 @@ tr459: s->line_counter++; } goto st5; -tr465: +tr476: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; } goto st5; -tr466: +tr477: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -4891,12 +4979,12 @@ tr466: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr467: +tr478: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -4904,12 +4992,12 @@ tr467: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr468: +tr479: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -4918,13 +5006,13 @@ tr468: s->line_counter++; } goto st5; -tr473: +tr484: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; } goto st5; -tr474: +tr485: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -4932,12 +5020,12 @@ tr474: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr475: +tr486: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -4945,12 +5033,12 @@ tr475: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr477: +tr488: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -4959,13 +5047,13 @@ tr477: s->line_counter++; } goto st5; -tr483: +tr494: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; } goto st5; -tr484: +tr495: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -4973,12 +5061,12 @@ tr484: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr485: +tr496: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -4986,12 +5074,12 @@ tr485: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr487: +tr498: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -5000,13 +5088,13 @@ tr487: s->line_counter++; } goto st5; -tr492: +tr503: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; } goto st5; -tr493: +tr504: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -5014,12 +5102,12 @@ tr493: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr494: +tr505: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -5027,12 +5115,12 @@ tr494: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr496: +tr507: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -5041,13 +5129,13 @@ tr496: s->line_counter++; } goto st5; -tr505: +tr516: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; } goto st5; -tr506: +tr517: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -5055,12 +5143,12 @@ tr506: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr507: +tr518: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -5068,12 +5156,12 @@ tr507: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr508: +tr519: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -5082,13 +5170,13 @@ tr508: s->line_counter++; } goto st5; -tr522: +tr533: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; } goto st5; -tr523: +tr534: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -5096,12 +5184,12 @@ tr523: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr524: +tr535: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -5109,12 +5197,12 @@ tr524: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr525: +tr536: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -5123,13 +5211,13 @@ tr525: s->line_counter++; } goto st5; -tr532: +tr543: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; } goto st5; -tr533: +tr544: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -5137,12 +5225,12 @@ tr533: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr534: +tr545: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -5150,12 +5238,12 @@ tr534: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr535: +tr546: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -5164,13 +5252,13 @@ tr535: s->line_counter++; } goto st5; -tr543: +tr554: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; } goto st5; -tr544: +tr555: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5178,12 +5266,12 @@ tr544: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr545: +tr556: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5191,12 +5279,12 @@ tr545: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr546: +tr557: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5205,13 +5293,13 @@ tr546: s->line_counter++; } goto st5; -tr554: +tr565: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; } goto st5; -tr555: +tr566: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5219,12 +5307,12 @@ tr555: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr556: +tr567: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5232,12 +5320,12 @@ tr556: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr557: +tr568: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5246,13 +5334,13 @@ tr557: s->line_counter++; } goto st5; -tr562: +tr573: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; } goto st5; -tr563: +tr574: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5260,12 +5348,12 @@ tr563: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr564: +tr575: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5273,12 +5361,12 @@ tr564: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr565: +tr576: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5287,13 +5375,13 @@ tr565: s->line_counter++; } goto st5; -tr580: +tr591: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; } goto st5; -tr581: +tr592: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5301,12 +5389,12 @@ tr581: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr582: +tr593: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5314,12 +5402,12 @@ tr582: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr583: +tr594: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5328,13 +5416,13 @@ tr583: s->line_counter++; } goto st5; -tr589: +tr600: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; } goto st5; -tr590: +tr601: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5342,12 +5430,12 @@ tr590: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr591: +tr602: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5355,12 +5443,12 @@ tr591: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr592: +tr603: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5369,13 +5457,13 @@ tr592: s->line_counter++; } goto st5; -tr598: +tr609: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; } goto st5; -tr599: +tr610: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5383,12 +5471,12 @@ tr599: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr600: +tr611: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5396,12 +5484,12 @@ tr600: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr601: +tr612: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5410,13 +5498,13 @@ tr601: s->line_counter++; } goto st5; -tr607: +tr618: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; } goto st5; -tr608: +tr619: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5424,12 +5512,12 @@ tr608: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr609: +tr620: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5437,12 +5525,12 @@ tr609: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr610: +tr621: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5451,13 +5539,13 @@ tr610: s->line_counter++; } goto st5; -tr618: +tr629: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; } goto st5; -tr619: +tr630: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5465,12 +5553,12 @@ tr619: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr620: +tr631: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5478,12 +5566,12 @@ tr620: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr621: +tr632: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5492,13 +5580,13 @@ tr621: s->line_counter++; } goto st5; -tr628: +tr639: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; } goto st5; -tr629: +tr640: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5506,12 +5594,12 @@ tr629: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr630: +tr641: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5519,12 +5607,12 @@ tr630: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr631: +tr642: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5533,13 +5621,13 @@ tr631: s->line_counter++; } goto st5; -tr641: +tr652: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; } goto st5; -tr642: +tr653: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5547,12 +5635,12 @@ tr642: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr643: +tr654: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5560,12 +5648,12 @@ tr643: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr644: +tr655: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5574,13 +5662,13 @@ tr644: s->line_counter++; } goto st5; -tr650: +tr661: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; } goto st5; -tr651: +tr662: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5588,12 +5676,12 @@ tr651: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr652: +tr663: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5601,12 +5689,12 @@ tr652: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr653: +tr664: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5615,26 +5703,26 @@ tr653: s->line_counter++; } goto st5; -tr663: +tr674: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { rdata_tail = s->r_data; } goto st5; -tr664: +tr675: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -5643,18 +5731,18 @@ tr664: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr665: +tr676: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -5663,18 +5751,18 @@ tr665: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr667: +tr678: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -5684,13 +5772,13 @@ tr667: s->line_counter++; } goto st5; -tr674: +tr685: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; } goto st5; -tr675: +tr686: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5698,12 +5786,12 @@ tr675: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr676: +tr687: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5711,12 +5799,12 @@ tr676: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr677: +tr688: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5725,13 +5813,13 @@ tr677: s->line_counter++; } goto st5; -tr687: +tr698: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; } goto st5; -tr688: +tr699: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5739,12 +5827,12 @@ tr688: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr689: +tr700: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5752,12 +5840,12 @@ tr689: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr690: +tr701: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5766,13 +5854,13 @@ tr690: s->line_counter++; } goto st5; -tr700: +tr711: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; } goto st5; -tr701: +tr712: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5780,12 +5868,12 @@ tr701: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr702: +tr713: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5793,12 +5881,12 @@ tr702: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr703: +tr714: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5807,13 +5895,13 @@ tr703: s->line_counter++; } goto st5; -tr951: +tr962: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; } goto st5; -tr952: +tr963: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5821,12 +5909,12 @@ tr952: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr953: +tr964: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5834,12 +5922,12 @@ tr953: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr954: +tr965: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5848,13 +5936,13 @@ tr954: s->line_counter++; } goto st5; -tr962: +tr973: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; } goto st5; -tr963: +tr974: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -5862,12 +5950,12 @@ tr963: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr964: +tr975: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -5875,12 +5963,12 @@ tr964: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr965: +tr976: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -5889,13 +5977,13 @@ tr965: s->line_counter++; } goto st5; -tr971: +tr982: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; } goto st5; -tr972: +tr983: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -5903,12 +5991,12 @@ tr972: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } goto st5; -tr973: +tr984: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -5916,12 +6004,12 @@ tr973: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st5; -tr974: +tr985: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -5981,89 +6069,91 @@ tr72: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -6072,89 +6162,91 @@ tr75: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -6168,89 +6260,91 @@ tr99: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -6305,12 +6399,13 @@ tr100: case KNOT_RRTYPE_CAA: case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: + case KNOT_RRTYPE_DSYNC: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st555;} + {stack[top++] = 6;goto st561;} // Next types can have empty rdata. case KNOT_RRTYPE_APL: default: - {stack[top++] = 6;goto st564;} + {stack[top++] = 6;goto st570;} } } goto st6; @@ -6323,89 +6418,91 @@ tr171: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -6418,89 +6515,91 @@ tr193: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -6513,89 +6612,91 @@ tr201: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -6608,89 +6709,91 @@ tr211: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -6703,89 +6806,91 @@ tr222: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -6798,89 +6903,91 @@ tr233: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -6893,89 +7000,91 @@ tr247: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -6988,89 +7097,91 @@ tr259: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -7083,93 +7194,95 @@ tr270: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr278: +tr279: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -7178,94 +7291,96 @@ tr278: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr291: - { s->r_type = KNOT_RRTYPE_EUI48; } +tr289: + { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; } @@ -7273,94 +7388,96 @@ tr291: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr300: - { s->r_type = KNOT_RRTYPE_EUI64; } +tr302: + { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; } @@ -7368,94 +7485,96 @@ tr300: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr313: - { s->r_type = KNOT_RRTYPE_HINFO; } +tr311: + { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; } @@ -7463,94 +7582,96 @@ tr313: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; tr324: - { s->r_type = KNOT_RRTYPE_HTTPS; } + { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; } @@ -7558,94 +7679,96 @@ tr324: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr368: - { s->r_type = KNOT_RRTYPE_IPSECKEY; } +tr335: + { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; } @@ -7653,94 +7776,96 @@ tr368: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; tr379: - { s->r_type = KNOT_RRTYPE_KEY; } + { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; } @@ -7748,189 +7873,96 @@ tr379: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} - case KNOT_RRTYPE_AAAA: {stack[top++] = 6;goto st941;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} - case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} - case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} - case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} - } - } - goto st6; -tr387: - { s->r_type = KNOT_RRTYPE_KX; } - { - rdata_tail = s->r_data; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr400: - { s->r_type = KNOT_RRTYPE_L32; } +tr390: + { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; } @@ -7938,189 +7970,96 @@ tr400: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} - case KNOT_RRTYPE_AAAA: {stack[top++] = 6;goto st941;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} - case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} - case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} - case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} - } - } - goto st6; -tr409: - { s->r_type = KNOT_RRTYPE_L64; } - { - rdata_tail = s->r_data; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr418: - { s->r_type = KNOT_RRTYPE_LOC; } +tr398: + { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; } @@ -8128,94 +8067,96 @@ tr418: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr426: - { s->r_type = KNOT_RRTYPE_LP; } +tr411: + { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; } @@ -8223,94 +8164,96 @@ tr426: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr439: - { s->r_type = KNOT_RRTYPE_MINFO; } +tr420: + { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; } @@ -8318,94 +8261,96 @@ tr439: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr447: - { s->r_type = KNOT_RRTYPE_MX; } +tr429: + { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; } @@ -8413,94 +8358,96 @@ tr447: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr461: - { s->r_type = KNOT_RRTYPE_NAPTR; } +tr437: + { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; } @@ -8508,94 +8455,96 @@ tr461: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr470: - { s->r_type = KNOT_RRTYPE_NID; } +tr450: + { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; } @@ -8603,94 +8552,96 @@ tr470: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr479: - { s->r_type = KNOT_RRTYPE_NS; } +tr458: + { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; } @@ -8698,94 +8649,96 @@ tr479: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr489: - { s->r_type = KNOT_RRTYPE_NSEC; } +tr472: + { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; } @@ -8793,94 +8746,96 @@ tr489: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr498: - { s->r_type = KNOT_RRTYPE_NSEC3; } +tr481: + { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; } @@ -8888,94 +8843,96 @@ tr498: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr510: - { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } +tr490: + { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; } @@ -8983,94 +8940,96 @@ tr510: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr527: - { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } +tr500: + { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; } @@ -9078,94 +9037,96 @@ tr527: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr537: - { s->r_type = KNOT_RRTYPE_PTR; } +tr509: + { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; } @@ -9173,94 +9134,96 @@ tr537: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr548: - { s->r_type = KNOT_RRTYPE_RP; } +tr521: + { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; } @@ -9268,94 +9231,96 @@ tr548: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr559: - { s->r_type = KNOT_RRTYPE_RRSIG; } +tr538: + { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; } @@ -9363,189 +9328,96 @@ tr559: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} - case KNOT_RRTYPE_AAAA: {stack[top++] = 6;goto st941;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} - case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} - case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} - case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} - } - } - goto st6; -tr567: - { s->r_type = KNOT_RRTYPE_RT; } - { - rdata_tail = s->r_data; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr585: - { s->r_type = KNOT_RRTYPE_SMIMEA; } +tr548: + { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; } @@ -9553,189 +9425,96 @@ tr585: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} - case KNOT_RRTYPE_AAAA: {stack[top++] = 6;goto st941;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} - case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} - case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} - case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} - } - } - goto st6; -tr594: - { s->r_type = KNOT_RRTYPE_SOA; } - { - rdata_tail = s->r_data; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr603: - { s->r_type = KNOT_RRTYPE_SPF; } +tr559: + { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; } @@ -9743,189 +9522,96 @@ tr603: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} - case KNOT_RRTYPE_AAAA: {stack[top++] = 6;goto st941;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} - case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} - case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} - case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} - } - } - goto st6; -tr612: - { s->r_type = KNOT_RRTYPE_SRV; } - { - rdata_tail = s->r_data; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr623: - { s->r_type = KNOT_RRTYPE_SSHFP; } +tr570: + { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; } @@ -9933,94 +9619,96 @@ tr623: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr633: - { s->r_type = KNOT_RRTYPE_SVCB; } +tr578: + { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; } @@ -10028,94 +9716,96 @@ tr633: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr646: - { s->r_type = KNOT_RRTYPE_TLSA; } +tr596: + { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; } @@ -10123,94 +9813,96 @@ tr646: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr655: - { s->r_type = KNOT_RRTYPE_TXT; } +tr605: + { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; } @@ -10218,101 +9910,96 @@ tr655: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr669: - { - if (s->number64 <= UINT16_MAX) { - s->r_type = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} - } - } +tr614: + { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; } @@ -10320,94 +10007,96 @@ tr669: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr679: - { s->r_type = KNOT_RRTYPE_URI; } +tr623: + { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; } @@ -10415,94 +10104,96 @@ tr679: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr692: - { s->r_type = KNOT_RRTYPE_WALLET; } +tr634: + { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; } @@ -10510,94 +10201,96 @@ tr692: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr705: - { s->r_type = KNOT_RRTYPE_ZONEMD; } +tr644: + { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; } @@ -10605,94 +10298,96 @@ tr705: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr956: - { s->r_type = KNOT_RRTYPE_AAAA; } +tr657: + { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; } @@ -10700,94 +10395,588 @@ tr956: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} + } + } + goto st6; +tr666: + { s->r_type = KNOT_RRTYPE_TXT; } + { + rdata_tail = s->r_data; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 6;goto st900;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 6;goto st902;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 6;goto st904;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 6;goto st936;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 6;goto st941;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 6;goto st946;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 6;goto st951;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 6;goto st955;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 6;goto st957;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 6;goto st1012;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 6;goto st1023;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 6;goto st1040;} + case KNOT_RRTYPE_APL: + {stack[top++] = 6;goto st1051;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 6;goto st1062;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 6;goto st1075;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 6;goto st1085;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 6;goto st1124;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 6;goto st1319;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 6;goto st1322;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 6;goto st1333;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 6;goto st1364;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 6;goto st1377;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 6;goto st1390;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 6;goto st1396;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 6;goto st1414;} + case KNOT_RRTYPE_L32: + {stack[top++] = 6;goto st1409;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1427;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 6;goto st1433;} + case KNOT_RRTYPE_URI: + {stack[top++] = 6;goto st1439;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 6;goto st1447;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st6; +tr680: + { + if (s->number64 <= UINT16_MAX) { + s->r_type = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + rdata_tail = s->r_data; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 6;goto st900;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 6;goto st902;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 6;goto st904;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 6;goto st936;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 6;goto st941;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 6;goto st946;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 6;goto st951;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 6;goto st955;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 6;goto st957;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 6;goto st1012;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 6;goto st1023;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 6;goto st1040;} + case KNOT_RRTYPE_APL: + {stack[top++] = 6;goto st1051;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 6;goto st1062;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 6;goto st1075;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 6;goto st1085;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 6;goto st1124;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 6;goto st1319;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 6;goto st1322;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 6;goto st1333;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 6;goto st1364;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 6;goto st1377;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 6;goto st1390;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 6;goto st1396;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 6;goto st1414;} + case KNOT_RRTYPE_L32: + {stack[top++] = 6;goto st1409;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1427;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 6;goto st1433;} + case KNOT_RRTYPE_URI: + {stack[top++] = 6;goto st1439;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 6;goto st1447;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st6; +tr690: + { s->r_type = KNOT_RRTYPE_URI; } + { + rdata_tail = s->r_data; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 6;goto st900;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 6;goto st902;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 6;goto st904;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 6;goto st936;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 6;goto st941;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 6;goto st946;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 6;goto st951;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 6;goto st955;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 6;goto st957;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 6;goto st1012;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 6;goto st1023;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 6;goto st1040;} + case KNOT_RRTYPE_APL: + {stack[top++] = 6;goto st1051;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 6;goto st1062;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 6;goto st1075;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 6;goto st1085;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 6;goto st1124;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 6;goto st1319;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 6;goto st1322;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 6;goto st1333;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 6;goto st1364;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 6;goto st1377;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 6;goto st1390;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 6;goto st1396;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 6;goto st1414;} + case KNOT_RRTYPE_L32: + {stack[top++] = 6;goto st1409;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1427;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 6;goto st1433;} + case KNOT_RRTYPE_URI: + {stack[top++] = 6;goto st1439;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 6;goto st1447;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st6; +tr703: + { s->r_type = KNOT_RRTYPE_WALLET; } + { + rdata_tail = s->r_data; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 6;goto st900;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 6;goto st902;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 6;goto st904;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 6;goto st936;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 6;goto st941;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 6;goto st946;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 6;goto st951;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 6;goto st955;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 6;goto st957;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 6;goto st1012;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 6;goto st1023;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 6;goto st1040;} + case KNOT_RRTYPE_APL: + {stack[top++] = 6;goto st1051;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 6;goto st1062;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 6;goto st1075;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 6;goto st1085;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 6;goto st1124;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 6;goto st1319;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 6;goto st1322;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 6;goto st1333;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 6;goto st1364;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 6;goto st1377;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 6;goto st1390;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 6;goto st1396;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 6;goto st1414;} + case KNOT_RRTYPE_L32: + {stack[top++] = 6;goto st1409;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1427;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 6;goto st1433;} + case KNOT_RRTYPE_URI: + {stack[top++] = 6;goto st1439;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 6;goto st1447;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st6; +tr716: + { s->r_type = KNOT_RRTYPE_ZONEMD; } + { + rdata_tail = s->r_data; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 6;goto st900;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 6;goto st902;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 6;goto st904;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 6;goto st936;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 6;goto st941;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 6;goto st946;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 6;goto st951;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 6;goto st955;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 6;goto st957;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 6;goto st1012;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 6;goto st1023;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 6;goto st1040;} + case KNOT_RRTYPE_APL: + {stack[top++] = 6;goto st1051;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 6;goto st1062;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 6;goto st1075;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 6;goto st1085;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 6;goto st1124;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 6;goto st1319;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 6;goto st1322;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 6;goto st1333;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 6;goto st1364;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 6;goto st1377;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 6;goto st1390;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 6;goto st1396;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 6;goto st1414;} + case KNOT_RRTYPE_L32: + {stack[top++] = 6;goto st1409;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1427;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 6;goto st1433;} + case KNOT_RRTYPE_URI: + {stack[top++] = 6;goto st1439;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 6;goto st1447;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} } } goto st6; tr967: - { s->r_type = KNOT_RRTYPE_AFSDB; } + { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; } @@ -10795,93 +10984,192 @@ tr967: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: + {stack[top++] = 6;goto st955;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 6;goto st957;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 6;goto st1012;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 6;goto st1023;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 6;goto st1040;} + case KNOT_RRTYPE_APL: + {stack[top++] = 6;goto st1051;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 6;goto st1062;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 6;goto st1075;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 6;goto st1085;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 6;goto st1124;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 6;goto st1319;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 6;goto st1322;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 6;goto st1333;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 6;goto st1364;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 6;goto st1377;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 6;goto st1390;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 6;goto st1396;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 6;goto st1414;} + case KNOT_RRTYPE_L32: + {stack[top++] = 6;goto st1409;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1427;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 6;goto st1433;} + case KNOT_RRTYPE_URI: + {stack[top++] = 6;goto st1439;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 6;goto st1447;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st6; +tr978: + { s->r_type = KNOT_RRTYPE_AFSDB; } + { + rdata_tail = s->r_data; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 6;goto st900;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 6;goto st902;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 6;goto st904;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 6;goto st936;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: {stack[top++] = 6;goto st941;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 6;goto st946;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 6;goto st951;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; -tr976: +tr987: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -10890,89 +11178,91 @@ tr976: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st886;} + {stack[top++] = 6;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st888;} + {stack[top++] = 6;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st890;} + {stack[top++] = 6;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st922;} + {stack[top++] = 6;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st927;} + {stack[top++] = 6;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st932;} + {stack[top++] = 6;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st937;} + {stack[top++] = 6;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st943;} + {stack[top++] = 6;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st998;} + {stack[top++] = 6;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1009;} + {stack[top++] = 6;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1026;} + {stack[top++] = 6;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1037;} + {stack[top++] = 6;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1048;} + {stack[top++] = 6;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1061;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1110;} + {stack[top++] = 6;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1302;} + {stack[top++] = 6;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1305;} + {stack[top++] = 6;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1316;} + {stack[top++] = 6;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1318;} + {stack[top++] = 6;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1347;} + {stack[top++] = 6;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1360;} + {stack[top++] = 6;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1373;} + {stack[top++] = 6;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1430;} + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1438;} + {stack[top++] = 6;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st6; @@ -11007,7 +11297,7 @@ tr93: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -11016,7 +11306,7 @@ tr94: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -11035,7 +11325,7 @@ tr87: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -11048,7 +11338,7 @@ tr88: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -11101,7 +11391,7 @@ tr97: } } goto st8; -tr867: +tr878: { s->buffer[0] = 0; s->buffer_length = 0; @@ -11115,7 +11405,7 @@ tr867: } } goto st8; -tr871: +tr882: { s->buffer_length = 0; } @@ -11248,7 +11538,7 @@ tr269: s->buffer_length = 0; } goto st10; -tr277: +tr278: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -11257,7 +11547,16 @@ tr277: s->buffer_length = 0; } goto st10; -tr290: +tr288: + { s->r_type = KNOT_RRTYPE_DSYNC; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + goto st10; +tr301: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -11266,7 +11565,7 @@ tr290: s->buffer_length = 0; } goto st10; -tr299: +tr310: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -11275,7 +11574,7 @@ tr299: s->buffer_length = 0; } goto st10; -tr312: +tr323: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -11284,7 +11583,7 @@ tr312: s->buffer_length = 0; } goto st10; -tr323: +tr334: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -11293,7 +11592,7 @@ tr323: s->buffer_length = 0; } goto st10; -tr367: +tr378: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -11302,7 +11601,7 @@ tr367: s->buffer_length = 0; } goto st10; -tr378: +tr389: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -11311,7 +11610,7 @@ tr378: s->buffer_length = 0; } goto st10; -tr386: +tr397: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -11320,7 +11619,7 @@ tr386: s->buffer_length = 0; } goto st10; -tr399: +tr410: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -11329,7 +11628,7 @@ tr399: s->buffer_length = 0; } goto st10; -tr408: +tr419: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -11338,7 +11637,7 @@ tr408: s->buffer_length = 0; } goto st10; -tr417: +tr428: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -11347,7 +11646,7 @@ tr417: s->buffer_length = 0; } goto st10; -tr425: +tr436: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -11356,7 +11655,7 @@ tr425: s->buffer_length = 0; } goto st10; -tr438: +tr449: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -11365,7 +11664,7 @@ tr438: s->buffer_length = 0; } goto st10; -tr446: +tr457: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -11374,7 +11673,7 @@ tr446: s->buffer_length = 0; } goto st10; -tr460: +tr471: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -11383,7 +11682,7 @@ tr460: s->buffer_length = 0; } goto st10; -tr469: +tr480: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -11392,7 +11691,7 @@ tr469: s->buffer_length = 0; } goto st10; -tr478: +tr489: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -11401,7 +11700,7 @@ tr478: s->buffer_length = 0; } goto st10; -tr488: +tr499: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -11410,7 +11709,7 @@ tr488: s->buffer_length = 0; } goto st10; -tr497: +tr508: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -11419,7 +11718,7 @@ tr497: s->buffer_length = 0; } goto st10; -tr509: +tr520: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -11428,7 +11727,7 @@ tr509: s->buffer_length = 0; } goto st10; -tr526: +tr537: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -11437,7 +11736,7 @@ tr526: s->buffer_length = 0; } goto st10; -tr536: +tr547: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -11446,7 +11745,7 @@ tr536: s->buffer_length = 0; } goto st10; -tr547: +tr558: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -11455,7 +11754,7 @@ tr547: s->buffer_length = 0; } goto st10; -tr558: +tr569: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -11464,7 +11763,7 @@ tr558: s->buffer_length = 0; } goto st10; -tr566: +tr577: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -11473,7 +11772,7 @@ tr566: s->buffer_length = 0; } goto st10; -tr584: +tr595: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -11482,7 +11781,7 @@ tr584: s->buffer_length = 0; } goto st10; -tr593: +tr604: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -11491,7 +11790,7 @@ tr593: s->buffer_length = 0; } goto st10; -tr602: +tr613: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -11500,7 +11799,7 @@ tr602: s->buffer_length = 0; } goto st10; -tr611: +tr622: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -11509,7 +11808,7 @@ tr611: s->buffer_length = 0; } goto st10; -tr622: +tr633: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -11518,7 +11817,7 @@ tr622: s->buffer_length = 0; } goto st10; -tr632: +tr643: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -11527,7 +11826,7 @@ tr632: s->buffer_length = 0; } goto st10; -tr645: +tr656: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -11536,7 +11835,7 @@ tr645: s->buffer_length = 0; } goto st10; -tr654: +tr665: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -11545,13 +11844,13 @@ tr654: s->buffer_length = 0; } goto st10; -tr668: +tr679: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -11561,7 +11860,7 @@ tr668: s->buffer_length = 0; } goto st10; -tr678: +tr689: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -11570,7 +11869,7 @@ tr678: s->buffer_length = 0; } goto st10; -tr691: +tr702: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -11579,7 +11878,7 @@ tr691: s->buffer_length = 0; } goto st10; -tr704: +tr715: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -11588,7 +11887,7 @@ tr704: s->buffer_length = 0; } goto st10; -tr955: +tr966: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -11597,7 +11896,7 @@ tr955: s->buffer_length = 0; } goto st10; -tr966: +tr977: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -11606,7 +11905,7 @@ tr966: s->buffer_length = 0; } goto st10; -tr975: +tr986: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -11654,89 +11953,91 @@ tr73: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; @@ -11748,89 +12049,91 @@ tr83: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; @@ -11846,89 +12149,91 @@ tr172: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; @@ -11944,89 +12249,91 @@ tr194: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; @@ -12042,89 +12349,91 @@ tr202: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; @@ -12140,89 +12449,91 @@ tr212: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; @@ -12238,89 +12549,91 @@ tr223: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; @@ -12336,89 +12649,91 @@ tr234: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; @@ -12434,89 +12749,91 @@ tr248: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; @@ -12532,89 +12849,91 @@ tr260: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; @@ -12630,93 +12949,95 @@ tr271: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr279: +tr280: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -12728,93 +13049,195 @@ tr279: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: + {stack[top++] = 11;goto st955;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 11;goto st957;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 11;goto st1012;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 11;goto st1023;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 11;goto st1040;} + case KNOT_RRTYPE_APL: + {stack[top++] = 11;goto st1051;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 11;goto st1062;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 11;goto st1075;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 11;goto st1085;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 11;goto st1124;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 11;goto st1319;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 11;goto st1322;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 11;goto st1333;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 11;goto st1364;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 11;goto st1377;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 11;goto st1390;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 11;goto st1396;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 11;goto st1414;} + case KNOT_RRTYPE_L32: + {stack[top++] = 11;goto st1409;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1427;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 11;goto st1433;} + case KNOT_RRTYPE_URI: + {stack[top++] = 11;goto st1439;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 11;goto st1447;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st11; +tr290: + { s->r_type = KNOT_RRTYPE_DSYNC; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 11;goto st900;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 11;goto st902;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 11;goto st904;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 11;goto st936;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: {stack[top++] = 11;goto st941;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 11;goto st946;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 11;goto st951;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr292: +tr303: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -12826,93 +13249,95 @@ tr292: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr301: +tr312: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -12924,93 +13349,95 @@ tr301: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr314: +tr325: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -13022,93 +13449,95 @@ tr314: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr325: +tr336: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -13120,93 +13549,95 @@ tr325: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr369: +tr380: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -13218,93 +13649,95 @@ tr369: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr380: +tr391: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -13316,93 +13749,95 @@ tr380: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr388: +tr399: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -13414,93 +13849,95 @@ tr388: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr401: +tr412: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -13512,93 +13949,95 @@ tr401: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr410: +tr421: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -13610,93 +14049,95 @@ tr410: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr419: +tr430: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -13708,93 +14149,95 @@ tr419: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr427: +tr438: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -13806,93 +14249,95 @@ tr427: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr440: +tr451: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -13904,93 +14349,95 @@ tr440: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr448: +tr459: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -14002,93 +14449,95 @@ tr448: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr462: +tr473: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -14100,93 +14549,95 @@ tr462: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr471: +tr482: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -14198,93 +14649,95 @@ tr471: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr480: +tr491: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -14296,93 +14749,95 @@ tr480: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr490: +tr501: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -14394,93 +14849,95 @@ tr490: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr499: +tr510: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -14492,93 +14949,95 @@ tr499: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr511: +tr522: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -14590,93 +15049,95 @@ tr511: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr528: +tr539: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -14688,93 +15149,95 @@ tr528: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr538: +tr549: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -14786,93 +15249,95 @@ tr538: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr549: +tr560: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -14884,93 +15349,95 @@ tr549: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr560: +tr571: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -14982,93 +15449,95 @@ tr560: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr568: +tr579: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -15080,93 +15549,95 @@ tr568: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr586: +tr597: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -15178,93 +15649,95 @@ tr586: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr595: +tr606: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -15276,93 +15749,95 @@ tr595: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr604: +tr615: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -15374,93 +15849,95 @@ tr604: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr613: +tr624: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -15472,93 +15949,95 @@ tr613: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr624: +tr635: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -15570,93 +16049,95 @@ tr624: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr634: +tr645: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -15668,93 +16149,95 @@ tr634: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr647: +tr658: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -15766,93 +16249,95 @@ tr647: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr656: +tr667: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -15864,99 +16349,101 @@ tr656: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr670: +tr681: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -15969,93 +16456,95 @@ tr670: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr680: +tr691: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -16067,93 +16556,95 @@ tr680: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr693: +tr704: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -16165,93 +16656,95 @@ tr693: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr706: +tr717: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -16263,93 +16756,95 @@ tr706: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr957: +tr968: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -16361,93 +16856,95 @@ tr957: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr968: +tr979: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -16459,93 +16956,95 @@ tr968: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; -tr977: +tr988: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -16557,89 +17056,91 @@ tr977: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st886;} + {stack[top++] = 11;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st888;} + {stack[top++] = 11;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st890;} + {stack[top++] = 11;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st922;} + {stack[top++] = 11;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st927;} + {stack[top++] = 11;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st932;} + {stack[top++] = 11;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st937;} + {stack[top++] = 11;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st943;} + {stack[top++] = 11;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st998;} + {stack[top++] = 11;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1009;} + {stack[top++] = 11;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1026;} + {stack[top++] = 11;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1037;} + {stack[top++] = 11;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1048;} + {stack[top++] = 11;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1061;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1110;} + {stack[top++] = 11;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1302;} + {stack[top++] = 11;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1305;} + {stack[top++] = 11;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1316;} + {stack[top++] = 11;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1318;} + {stack[top++] = 11;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1347;} + {stack[top++] = 11;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1360;} + {stack[top++] = 11;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1373;} + {stack[top++] = 11;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1430;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1438;} + {stack[top++] = 11;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st11; @@ -16691,7 +17192,7 @@ tr111: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -16700,7 +17201,7 @@ tr112: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -16715,7 +17216,7 @@ tr104: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -16728,7 +17229,7 @@ tr105: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -16826,7 +17327,7 @@ tr181: s->buffer_length = 0; } goto st13; -tr846: +tr857: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -16881,7 +17382,7 @@ tr118: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1445; goto _out;} + {p++; cs = 1484; goto _out;} } } } @@ -16891,7 +17392,7 @@ tr118: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -16904,23 +17405,23 @@ tr118: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1445; goto _out;} + {p++; cs = 1484; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1445; goto _out;} + p--; {p++; cs = 1484; goto _out;} } } - goto st1445; -tr854: + goto st1484; +tr865: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -16933,16 +17434,16 @@ tr854: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1445; goto _out;} + {p++; cs = 1484; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1445; goto _out;} + p--; {p++; cs = 1484; goto _out;} } } - goto st1445; -tr845: + goto st1484; +tr856: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -16957,7 +17458,7 @@ tr845: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -16970,19 +17471,19 @@ tr845: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1445; goto _out;} + {p++; cs = 1484; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1445; goto _out;} + p--; {p++; cs = 1484; goto _out;} } } - goto st1445; -st1445: + goto st1484; +st1484: if ( ++p == pe ) - goto _test_eof1445; -case 1445: + goto _test_eof1484; +case 1484: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -17000,23 +17501,23 @@ case 1445: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4295; - case 32: goto tr4295; - case 36: goto tr4296; - case 40: goto tr4297; - case 41: goto tr4298; - case 42: goto tr4299; + case 9: goto tr4395; + case 32: goto tr4395; + case 36: goto tr4396; + case 40: goto tr4397; + case 41: goto tr4398; + case 42: goto tr4399; case 58: goto tr75; - case 92: goto tr4300; - case 95: goto tr4299; - case 2826: goto tr4291; - case 2875: goto tr4292; - case 3082: goto tr4301; - case 3131: goto tr4302; - case 3338: goto tr4303; - case 3387: goto tr4304; - case 3594: goto tr4305; - case 3643: goto tr4306; + case 92: goto tr4400; + case 95: goto tr4399; + case 2826: goto tr4391; + case 2875: goto tr4392; + case 3082: goto tr4401; + case 3131: goto tr4402; + case 3338: goto tr4403; + case 3387: goto tr4404; + case 3594: goto tr4405; + case 3643: goto tr4406; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -17024,29 +17525,29 @@ case 1445: goto tr75; } else if ( _widec > 44 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4299; + goto tr4399; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 90 ) - goto tr4299; + goto tr4399; } else if ( _widec > 96 ) { if ( _widec > 122 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 97 ) - goto tr4299; + goto tr4399; } else goto tr75; } else goto tr75; - goto tr889; + goto tr900; tr121: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -17055,16 +17556,16 @@ tr122: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } goto st14; -tr4295: +tr4395: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -17072,18 +17573,18 @@ tr4295: s->buffer_length = 0; } goto st14; -tr4297: +tr4397: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -17091,18 +17592,18 @@ tr4297: s->buffer_length = 0; } goto st14; -tr4298: +tr4398: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -17209,96 +17710,98 @@ tr123: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 15;goto st886;} + {stack[top++] = 15;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 15;goto st888;} + {stack[top++] = 15;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 15;goto st890;} + {stack[top++] = 15;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 15;goto st922;} + {stack[top++] = 15;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 15;goto st927;} + {stack[top++] = 15;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 15;goto st932;} + {stack[top++] = 15;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 15;goto st937;} + {stack[top++] = 15;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 15;goto st941;} + {stack[top++] = 15;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 15;goto st943;} + {stack[top++] = 15;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 15;goto st998;} + {stack[top++] = 15;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 15;goto st1009;} + {stack[top++] = 15;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 15;goto st1026;} + {stack[top++] = 15;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 15;goto st1037;} + {stack[top++] = 15;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 15;goto st1048;} + {stack[top++] = 15;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 15;goto st1061;} + {stack[top++] = 15;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 15;goto st1071;} + {stack[top++] = 15;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 15;goto st1110;} + {stack[top++] = 15;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 15;goto st1302;} + {stack[top++] = 15;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 15;goto st1305;} + {stack[top++] = 15;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 15;goto st1316;} + {stack[top++] = 15;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 15;goto st1318;} + {stack[top++] = 15;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 15;goto st1347;} + {stack[top++] = 15;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 15;goto st1360;} + {stack[top++] = 15;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 15;goto st1373;} + {stack[top++] = 15;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 15;goto st1379;} + {stack[top++] = 15;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 15;goto st1397;} + {stack[top++] = 15;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 15;goto st1392;} + {stack[top++] = 15;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 15;goto st1410;} + {stack[top++] = 15;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 15;goto st1416;} + {stack[top++] = 15;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 15;goto st1422;} + {stack[top++] = 15;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 15;goto st1430;} + {stack[top++] = 15;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 15;goto st1438;} + {stack[top++] = 15;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 15;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st15; @@ -17326,12 +17829,12 @@ case 15: case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st204; + case 83: goto st207; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st204; + case 115: goto st207; case 119: goto tr36; case 1802: goto tr89; case 1851: goto tr90; @@ -17345,7 +17848,7 @@ tr156: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -17354,7 +17857,7 @@ tr157: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -17365,7 +17868,7 @@ tr149: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -17379,13 +17882,13 @@ tr150: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -17400,13 +17903,13 @@ tr151: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -17491,7 +17994,7 @@ tr44: s->r_class = s->default_class; } goto st17; -tr726: +tr737: { s->r_ttl = s->default_ttl; } @@ -17567,89 +18070,91 @@ tr74: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; @@ -17661,89 +18166,91 @@ tr84: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; @@ -17759,89 +18266,91 @@ tr173: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; @@ -17857,89 +18366,91 @@ tr195: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; @@ -17955,89 +18466,91 @@ tr203: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; @@ -18053,89 +18566,91 @@ tr213: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; @@ -18151,89 +18666,91 @@ tr224: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; @@ -18249,89 +18766,91 @@ tr235: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; @@ -18347,89 +18866,91 @@ tr249: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; @@ -18445,89 +18966,91 @@ tr261: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; @@ -18543,93 +19066,95 @@ tr272: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr280: +tr281: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -18641,94 +19166,96 @@ tr280: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr293: - { s->r_type = KNOT_RRTYPE_EUI48; } +tr291: + { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; } @@ -18739,94 +19266,96 @@ tr293: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr302: - { s->r_type = KNOT_RRTYPE_EUI64; } +tr304: + { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; } @@ -18837,94 +19366,96 @@ tr302: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr315: - { s->r_type = KNOT_RRTYPE_HINFO; } +tr313: + { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; } @@ -18935,94 +19466,96 @@ tr315: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; tr326: - { s->r_type = KNOT_RRTYPE_HTTPS; } + { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; } @@ -19033,94 +19566,96 @@ tr326: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr370: - { s->r_type = KNOT_RRTYPE_IPSECKEY; } +tr337: + { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; } @@ -19131,94 +19666,96 @@ tr370: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; tr381: - { s->r_type = KNOT_RRTYPE_KEY; } + { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; } @@ -19229,94 +19766,96 @@ tr381: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr389: - { s->r_type = KNOT_RRTYPE_KX; } +tr392: + { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; } @@ -19327,94 +19866,96 @@ tr389: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr402: - { s->r_type = KNOT_RRTYPE_L32; } +tr400: + { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; } @@ -19425,94 +19966,96 @@ tr402: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr411: - { s->r_type = KNOT_RRTYPE_L64; } +tr413: + { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; } @@ -19523,94 +20066,96 @@ tr411: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr420: - { s->r_type = KNOT_RRTYPE_LOC; } +tr422: + { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; } @@ -19621,94 +20166,96 @@ tr420: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr428: - { s->r_type = KNOT_RRTYPE_LP; } +tr431: + { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; } @@ -19719,94 +20266,96 @@ tr428: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr441: - { s->r_type = KNOT_RRTYPE_MINFO; } +tr439: + { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; } @@ -19817,94 +20366,96 @@ tr441: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr449: - { s->r_type = KNOT_RRTYPE_MX; } +tr452: + { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; } @@ -19915,94 +20466,96 @@ tr449: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr463: - { s->r_type = KNOT_RRTYPE_NAPTR; } +tr460: + { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; } @@ -20013,94 +20566,96 @@ tr463: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr472: - { s->r_type = KNOT_RRTYPE_NID; } +tr474: + { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; } @@ -20111,94 +20666,96 @@ tr472: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr481: - { s->r_type = KNOT_RRTYPE_NS; } +tr483: + { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; } @@ -20209,94 +20766,96 @@ tr481: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr491: - { s->r_type = KNOT_RRTYPE_NSEC; } +tr492: + { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; } @@ -20307,94 +20866,96 @@ tr491: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr500: - { s->r_type = KNOT_RRTYPE_NSEC3; } +tr502: + { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; } @@ -20405,94 +20966,96 @@ tr500: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr512: - { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } +tr511: + { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; } @@ -20503,94 +21066,96 @@ tr512: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr529: - { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } +tr523: + { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; } @@ -20601,94 +21166,96 @@ tr529: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr539: - { s->r_type = KNOT_RRTYPE_PTR; } +tr540: + { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; } @@ -20699,94 +21266,96 @@ tr539: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; tr550: - { s->r_type = KNOT_RRTYPE_RP; } + { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; } @@ -20797,94 +21366,96 @@ tr550: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; tr561: - { s->r_type = KNOT_RRTYPE_RRSIG; } + { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; } @@ -20895,192 +21466,96 @@ tr561: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} - case KNOT_RRTYPE_AAAA: {stack[top++] = 20;goto st941;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} - case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} - case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} - case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} - } - } - goto st20; -tr569: - { s->r_type = KNOT_RRTYPE_RT; } - { - rdata_tail = s->r_data; - } - { - s->buffer_length = 0; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr587: - { s->r_type = KNOT_RRTYPE_SMIMEA; } +tr572: + { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; } @@ -21091,192 +21566,96 @@ tr587: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} - case KNOT_RRTYPE_AAAA: {stack[top++] = 20;goto st941;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} - case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} - case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} - case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} - } - } - goto st20; -tr596: - { s->r_type = KNOT_RRTYPE_SOA; } - { - rdata_tail = s->r_data; - } - { - s->buffer_length = 0; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr605: - { s->r_type = KNOT_RRTYPE_SPF; } +tr580: + { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; } @@ -21287,94 +21666,96 @@ tr605: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr614: - { s->r_type = KNOT_RRTYPE_SRV; } +tr598: + { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; } @@ -21385,94 +21766,296 @@ tr614: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st955;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st957;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1012;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1023;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1040;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1051;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1062;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1075;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1085;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1124;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1319;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1322;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1333;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1364;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1377;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1390;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1396;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1414;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1409;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1427;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1433;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1439;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1447;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st20; +tr607: + { s->r_type = KNOT_RRTYPE_SOA; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st900;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st902;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st904;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st936;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: {stack[top++] = 20;goto st941;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st946;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st951;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} + } + } + goto st20; +tr616: + { s->r_type = KNOT_RRTYPE_SPF; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st900;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st902;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st904;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st936;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st941;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st946;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st951;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st955;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st957;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1012;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1023;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1040;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1051;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1062;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1075;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1085;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1124;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1319;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1322;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1333;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1364;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1377;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1390;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1396;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1414;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1409;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1427;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1433;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1439;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1447;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} } } goto st20; tr625: - { s->r_type = KNOT_RRTYPE_SSHFP; } + { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; } @@ -21483,93 +22066,195 @@ tr625: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st955;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st957;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1012;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1023;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1040;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1051;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1062;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1075;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1085;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1124;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1319;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1322;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1333;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1364;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1377;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1390;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1396;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1414;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1409;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1427;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1433;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1439;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1447;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st20; +tr636: + { s->r_type = KNOT_RRTYPE_SSHFP; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st900;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st902;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st904;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st936;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: {stack[top++] = 20;goto st941;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st946;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st951;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr635: +tr646: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -21581,93 +22266,95 @@ tr635: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr648: +tr659: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -21679,93 +22366,95 @@ tr648: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr657: +tr668: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -21777,99 +22466,101 @@ tr657: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr671: +tr682: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -21882,93 +22573,95 @@ tr671: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr681: +tr692: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -21980,93 +22673,95 @@ tr681: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr694: +tr705: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -22078,93 +22773,95 @@ tr694: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr707: +tr718: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -22176,191 +22873,195 @@ tr707: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st955;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st957;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1012;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1023;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1040;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1051;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1062;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1075;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1085;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1124;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1319;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1322;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1333;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1364;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1377;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1390;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1396;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1414;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1409;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1427;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1433;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1439;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1447;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st20; +tr969: + { s->r_type = KNOT_RRTYPE_AAAA; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st900;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st902;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st904;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st936;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: {stack[top++] = 20;goto st941;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st946;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st951;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr958: - { s->r_type = KNOT_RRTYPE_AAAA; } - { - rdata_tail = s->r_data; - } - { - s->buffer_length = 0; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} - case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} - case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} - case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} - case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} - } - } - goto st20; -tr969: +tr980: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -22372,93 +23073,95 @@ tr969: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; -tr978: +tr989: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -22470,89 +23173,91 @@ tr978: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st886;} + {stack[top++] = 20;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st888;} + {stack[top++] = 20;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st890;} + {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st922;} + {stack[top++] = 20;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st927;} + {stack[top++] = 20;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st932;} + {stack[top++] = 20;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st937;} + {stack[top++] = 20;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st943;} + {stack[top++] = 20;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st998;} + {stack[top++] = 20;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1009;} + {stack[top++] = 20;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1026;} + {stack[top++] = 20;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1037;} + {stack[top++] = 20;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1048;} + {stack[top++] = 20;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1061;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1110;} + {stack[top++] = 20;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1302;} + {stack[top++] = 20;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1305;} + {stack[top++] = 20;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1316;} + {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1318;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1347;} + {stack[top++] = 20;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1360;} + {stack[top++] = 20;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1373;} + {stack[top++] = 20;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1430;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1438;} + {stack[top++] = 20;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } goto st20; @@ -22638,7 +23343,7 @@ tr175: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -22656,7 +23361,7 @@ tr176: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -22670,7 +23375,7 @@ tr179: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -22684,7 +23389,7 @@ tr180: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -23037,7 +23742,7 @@ tr45: s->r_class = s->default_class; } goto st40; -tr727: +tr738: { s->r_ttl = s->default_ttl; } @@ -23262,12 +23967,65 @@ case 53: case 32: goto tr273; case 40: goto tr274; case 41: goto tr275; - case 3082: goto tr276; - case 3131: goto tr277; - case 3338: goto tr278; - case 3387: goto tr278; - case 3594: goto tr279; - case 3643: goto tr280; + case 89: goto st54; + case 121: goto st54; + case 3082: goto tr277; + case 3131: goto tr278; + case 3338: goto tr279; + case 3387: goto tr279; + case 3594: goto tr280; + case 3643: goto tr281; + } + goto tr63; +st54: + if ( ++p == pe ) + goto _test_eof54; +case 54: + switch( (*p) ) { + case 78: goto st55; + case 110: goto st55; + } + goto tr39; +st55: + if ( ++p == pe ) + goto _test_eof55; +case 55: + switch( (*p) ) { + case 67: goto st56; + case 99: goto st56; + } + goto tr39; +st56: + if ( ++p == pe ) + goto _test_eof56; +case 56: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr284; + case 32: goto tr284; + case 40: goto tr285; + case 41: goto tr286; + case 3082: goto tr287; + case 3131: goto tr288; + case 3338: goto tr289; + case 3387: goto tr289; + case 3594: goto tr290; + case 3643: goto tr291; } goto tr63; tr8: @@ -23277,55 +24035,55 @@ tr8: { s->r_ttl = s->default_ttl; } - goto st54; + goto st57; tr46: { s->r_class = s->default_class; } - goto st54; -tr728: + goto st57; +tr739: { s->r_ttl = s->default_ttl; } - goto st54; -st54: + goto st57; +st57: if ( ++p == pe ) - goto _test_eof54; -case 54: + goto _test_eof57; +case 57: switch( (*p) ) { - case 85: goto st55; - case 117: goto st55; + case 85: goto st58; + case 117: goto st58; } goto tr39; -st55: +st58: if ( ++p == pe ) - goto _test_eof55; -case 55: + goto _test_eof58; +case 58: switch( (*p) ) { - case 73: goto st56; - case 105: goto st56; + case 73: goto st59; + case 105: goto st59; } goto tr39; -st56: +st59: if ( ++p == pe ) - goto _test_eof56; -case 56: + goto _test_eof59; +case 59: switch( (*p) ) { - case 52: goto st57; - case 54: goto st59; + case 52: goto st60; + case 54: goto st62; } goto tr39; -st57: +st60: if ( ++p == pe ) - goto _test_eof57; -case 57: + goto _test_eof60; +case 60: if ( (*p) == 56 ) - goto st58; + goto st61; goto tr39; -st58: +st61: if ( ++p == pe ) - goto _test_eof58; -case 58: + goto _test_eof61; +case 61: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -23343,29 +24101,29 @@ case 58: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr286; - case 32: goto tr286; - case 40: goto tr287; - case 41: goto tr288; - case 3082: goto tr289; - case 3131: goto tr290; - case 3338: goto tr291; - case 3387: goto tr291; - case 3594: goto tr292; - case 3643: goto tr293; + case 9: goto tr297; + case 32: goto tr297; + case 40: goto tr298; + case 41: goto tr299; + case 3082: goto tr300; + case 3131: goto tr301; + case 3338: goto tr302; + case 3387: goto tr302; + case 3594: goto tr303; + case 3643: goto tr304; } goto tr63; -st59: +st62: if ( ++p == pe ) - goto _test_eof59; -case 59: + goto _test_eof62; +case 62: if ( (*p) == 52 ) - goto st60; + goto st63; goto tr39; -st60: +st63: if ( ++p == pe ) - goto _test_eof60; -case 60: + goto _test_eof63; +case 63: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -23383,16 +24141,16 @@ case 60: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr295; - case 32: goto tr295; - case 40: goto tr296; - case 41: goto tr297; - case 3082: goto tr298; - case 3131: goto tr299; - case 3338: goto tr300; - case 3387: goto tr300; - case 3594: goto tr301; - case 3643: goto tr302; + case 9: goto tr306; + case 32: goto tr306; + case 40: goto tr307; + case 41: goto tr308; + case 3082: goto tr309; + case 3131: goto tr310; + case 3338: goto tr311; + case 3387: goto tr311; + case 3594: goto tr312; + case 3643: goto tr313; } goto tr63; tr9: @@ -23402,59 +24160,59 @@ tr9: { s->r_ttl = s->default_ttl; } - goto st61; + goto st64; tr47: { s->r_class = s->default_class; } - goto st61; -tr729: + goto st64; +tr740: { s->r_ttl = s->default_ttl; } - goto st61; -st61: + goto st64; +st64: if ( ++p == pe ) - goto _test_eof61; -case 61: + goto _test_eof64; +case 64: switch( (*p) ) { - case 73: goto st62; - case 84: goto st66; - case 105: goto st62; - case 116: goto st66; + case 73: goto st65; + case 84: goto st69; + case 105: goto st65; + case 116: goto st69; } goto tr39; -st62: +st65: if ( ++p == pe ) - goto _test_eof62; -case 62: + goto _test_eof65; +case 65: switch( (*p) ) { - case 78: goto st63; - case 110: goto st63; + case 78: goto st66; + case 110: goto st66; } goto tr39; -st63: +st66: if ( ++p == pe ) - goto _test_eof63; -case 63: + goto _test_eof66; +case 66: switch( (*p) ) { - case 70: goto st64; - case 102: goto st64; + case 70: goto st67; + case 102: goto st67; } goto tr39; -st64: +st67: if ( ++p == pe ) - goto _test_eof64; -case 64: + goto _test_eof67; +case 67: switch( (*p) ) { - case 79: goto st65; - case 111: goto st65; + case 79: goto st68; + case 111: goto st68; } goto tr39; -st65: +st68: if ( ++p == pe ) - goto _test_eof65; -case 65: + goto _test_eof68; +case 68: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -23472,49 +24230,49 @@ case 65: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr308; - case 32: goto tr308; - case 40: goto tr309; - case 41: goto tr310; - case 3082: goto tr311; - case 3131: goto tr312; - case 3338: goto tr313; - case 3387: goto tr313; - case 3594: goto tr314; - case 3643: goto tr315; + case 9: goto tr319; + case 32: goto tr319; + case 40: goto tr320; + case 41: goto tr321; + case 3082: goto tr322; + case 3131: goto tr323; + case 3338: goto tr324; + case 3387: goto tr324; + case 3594: goto tr325; + case 3643: goto tr326; } goto tr63; -st66: +st69: if ( ++p == pe ) - goto _test_eof66; -case 66: + goto _test_eof69; +case 69: switch( (*p) ) { - case 84: goto st67; - case 116: goto st67; + case 84: goto st70; + case 116: goto st70; } goto tr39; -st67: +st70: if ( ++p == pe ) - goto _test_eof67; -case 67: + goto _test_eof70; +case 70: switch( (*p) ) { - case 80: goto st68; - case 112: goto st68; + case 80: goto st71; + case 112: goto st71; } goto tr39; -st68: +st71: if ( ++p == pe ) - goto _test_eof68; -case 68: + goto _test_eof71; +case 71: switch( (*p) ) { - case 83: goto st69; - case 115: goto st69; + case 83: goto st72; + case 115: goto st72; } goto tr39; -st69: +st72: if ( ++p == pe ) - goto _test_eof69; -case 69: + goto _test_eof72; +case 72: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -23532,38 +24290,38 @@ case 69: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr319; - case 32: goto tr319; - case 40: goto tr320; - case 41: goto tr321; - case 3082: goto tr322; - case 3131: goto tr323; - case 3338: goto tr324; - case 3387: goto tr324; - case 3594: goto tr325; - case 3643: goto tr326; + case 9: goto tr330; + case 32: goto tr330; + case 40: goto tr331; + case 41: goto tr332; + case 3082: goto tr333; + case 3131: goto tr334; + case 3338: goto tr335; + case 3387: goto tr335; + case 3594: goto tr336; + case 3643: goto tr337; } goto tr63; tr48: { s->r_class = s->default_class; } - goto st70; -st70: + goto st73; +st73: if ( ++p == pe ) - goto _test_eof70; -case 70: + goto _test_eof73; +case 73: switch( (*p) ) { - case 78: goto st71; - case 80: goto st74; - case 110: goto st71; - case 112: goto st74; + case 78: goto st74; + case 80: goto st77; + case 110: goto st74; + case 112: goto st77; } goto tr39; -st71: +st74: if ( ++p == pe ) - goto _test_eof71; -case 71: + goto _test_eof74; +case 74: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -23577,95 +24335,95 @@ case 71: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr329; - case 32: goto tr329; - case 40: goto tr330; - case 41: goto tr331; - case 2058: goto tr332; - case 2107: goto tr333; + case 9: goto tr340; + case 32: goto tr340; + case 40: goto tr341; + case 41: goto tr342; + case 2058: goto tr343; + case 2107: goto tr344; } goto tr39; -tr335: +tr346: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st72; -tr336: + goto st75; +tr347: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st72; -tr355: + goto st75; +tr366: { s->line_counter++; } - goto st72; -tr745: + goto st75; +tr756: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st72; -tr746: + goto st75; +tr757: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st72; -tr747: + goto st75; +tr758: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st72; -tr754: + goto st75; +tr765: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st72; -tr709: + goto st75; +tr720: { s->buffer[s->buffer_length++] = 0; @@ -23675,58 +24433,58 @@ tr709: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 72; goto _out;} + {p++; cs = 75; goto _out;} } } } { s->line_counter++; } - goto st72; -tr329: + goto st75; +tr340: { s->r_class = KNOT_CLASS_IN; } - goto st72; -tr330: + goto st75; +tr341: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st72; -tr331: + goto st75; +tr342: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st72; -tr332: + goto st75; +tr343: { s->r_class = KNOT_CLASS_IN; } { s->line_counter++; } - goto st72; -tr763: + goto st75; +tr774: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -23734,17 +24492,17 @@ tr763: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st72; -tr764: + goto st75; +tr775: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -23752,24 +24510,24 @@ tr764: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st72; -tr765: + goto st75; +tr776: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -23777,24 +24535,24 @@ tr765: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st72; -tr767: + goto st75; +tr778: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -23802,17 +24560,17 @@ tr767: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st72; -st72: + goto st75; +st75: if ( ++p == pe ) - goto _test_eof72; -case 72: + goto _test_eof75; +case 75: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -23826,89 +24584,62 @@ case 72: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st72; - case 32: goto st72; - case 40: goto tr335; - case 41: goto tr336; + case 9: goto st75; + case 32: goto st75; + case 40: goto tr346; + case 41: goto tr347; case 65: goto st4; case 67: goto st17; case 68: goto st40; - case 69: goto st54; - case 72: goto st61; - case 73: goto st73; - case 75: goto st81; - case 76: goto st85; - case 77: goto st93; - case 78: goto st99; - case 79: goto st115; - case 80: goto st125; - case 82: goto st128; - case 83: goto st135; - case 84: goto st154; - case 85: goto st164; - case 87: goto st167; - case 90: goto st173; + case 69: goto st57; + case 72: goto st64; + case 73: goto st76; + case 75: goto st84; + case 76: goto st88; + case 77: goto st96; + case 78: goto st102; + case 79: goto st118; + case 80: goto st128; + case 82: goto st131; + case 83: goto st138; + case 84: goto st157; + case 85: goto st167; + case 87: goto st170; + case 90: goto st176; case 97: goto st4; case 99: goto st17; case 100: goto st40; - case 101: goto st54; - case 104: goto st61; - case 105: goto st73; - case 107: goto st81; - case 108: goto st85; - case 109: goto st93; - case 110: goto st99; - case 111: goto st115; - case 112: goto st125; - case 114: goto st128; - case 115: goto st135; - case 116: goto st154; - case 117: goto st164; - case 119: goto st167; - case 122: goto st173; - case 2058: goto tr355; - case 2107: goto tr356; + case 101: goto st57; + case 104: goto st64; + case 105: goto st76; + case 107: goto st84; + case 108: goto st88; + case 109: goto st96; + case 110: goto st102; + case 111: goto st118; + case 112: goto st128; + case 114: goto st131; + case 115: goto st138; + case 116: goto st157; + case 117: goto st167; + case 119: goto st170; + case 122: goto st176; + case 2058: goto tr366; + case 2107: goto tr367; } goto tr39; -tr730: +tr741: { s->r_ttl = s->default_ttl; } - goto st73; -st73: - if ( ++p == pe ) - goto _test_eof73; -case 73: - switch( (*p) ) { - case 80: goto st74; - case 112: goto st74; - } - goto tr39; -st74: - if ( ++p == pe ) - goto _test_eof74; -case 74: - switch( (*p) ) { - case 83: goto st75; - case 115: goto st75; - } - goto tr39; -st75: - if ( ++p == pe ) - goto _test_eof75; -case 75: - switch( (*p) ) { - case 69: goto st76; - case 101: goto st76; - } - goto tr39; + goto st76; st76: if ( ++p == pe ) goto _test_eof76; case 76: switch( (*p) ) { - case 67: goto st77; - case 99: goto st77; + case 80: goto st77; + case 112: goto st77; } goto tr39; st77: @@ -23916,8 +24647,8 @@ st77: goto _test_eof77; case 77: switch( (*p) ) { - case 75: goto st78; - case 107: goto st78; + case 83: goto st78; + case 115: goto st78; } goto tr39; st78: @@ -23934,14 +24665,41 @@ st79: goto _test_eof79; case 79: switch( (*p) ) { - case 89: goto st80; - case 121: goto st80; + case 67: goto st80; + case 99: goto st80; } goto tr39; st80: if ( ++p == pe ) goto _test_eof80; case 80: + switch( (*p) ) { + case 75: goto st81; + case 107: goto st81; + } + goto tr39; +st81: + if ( ++p == pe ) + goto _test_eof81; +case 81: + switch( (*p) ) { + case 69: goto st82; + case 101: goto st82; + } + goto tr39; +st82: + if ( ++p == pe ) + goto _test_eof82; +case 82: + switch( (*p) ) { + case 89: goto st83; + case 121: goto st83; + } + goto tr39; +st83: + if ( ++p == pe ) + goto _test_eof83; +case 83: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -23959,16 +24717,16 @@ case 80: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr363; - case 32: goto tr363; - case 40: goto tr364; - case 41: goto tr365; - case 3082: goto tr366; - case 3131: goto tr367; - case 3338: goto tr368; - case 3387: goto tr368; - case 3594: goto tr369; - case 3643: goto tr370; + case 9: goto tr374; + case 32: goto tr374; + case 40: goto tr375; + case 41: goto tr376; + case 3082: goto tr377; + case 3131: goto tr378; + case 3338: goto tr379; + case 3387: goto tr379; + case 3594: goto tr380; + case 3643: goto tr381; } goto tr63; tr11: @@ -23978,41 +24736,41 @@ tr11: { s->r_ttl = s->default_ttl; } - goto st81; + goto st84; tr49: { s->r_class = s->default_class; } - goto st81; -tr731: + goto st84; +tr742: { s->r_ttl = s->default_ttl; } - goto st81; -st81: + goto st84; +st84: if ( ++p == pe ) - goto _test_eof81; -case 81: + goto _test_eof84; +case 84: switch( (*p) ) { - case 69: goto st82; - case 88: goto st84; - case 101: goto st82; - case 120: goto st84; + case 69: goto st85; + case 88: goto st87; + case 101: goto st85; + case 120: goto st87; } goto tr39; -st82: +st85: if ( ++p == pe ) - goto _test_eof82; -case 82: + goto _test_eof85; +case 85: switch( (*p) ) { - case 89: goto st83; - case 121: goto st83; + case 89: goto st86; + case 121: goto st86; } goto tr39; -st83: +st86: if ( ++p == pe ) - goto _test_eof83; -case 83: + goto _test_eof86; +case 86: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24030,22 +24788,22 @@ case 83: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr374; - case 32: goto tr374; - case 40: goto tr375; - case 41: goto tr376; - case 3082: goto tr377; - case 3131: goto tr378; - case 3338: goto tr379; - case 3387: goto tr379; - case 3594: goto tr380; - case 3643: goto tr381; + case 9: goto tr385; + case 32: goto tr385; + case 40: goto tr386; + case 41: goto tr387; + case 3082: goto tr388; + case 3131: goto tr389; + case 3338: goto tr390; + case 3387: goto tr390; + case 3594: goto tr391; + case 3643: goto tr392; } goto tr63; -st84: +st87: if ( ++p == pe ) - goto _test_eof84; -case 84: + goto _test_eof87; +case 87: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24063,16 +24821,16 @@ case 84: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr382; - case 32: goto tr382; - case 40: goto tr383; - case 41: goto tr384; - case 3082: goto tr385; - case 3131: goto tr386; - case 3338: goto tr387; - case 3387: goto tr387; - case 3594: goto tr388; - case 3643: goto tr389; + case 9: goto tr393; + case 32: goto tr393; + case 40: goto tr394; + case 41: goto tr395; + case 3082: goto tr396; + case 3131: goto tr397; + case 3338: goto tr398; + case 3387: goto tr398; + case 3594: goto tr399; + case 3643: goto tr400; } goto tr63; tr12: @@ -24082,41 +24840,41 @@ tr12: { s->r_ttl = s->default_ttl; } - goto st85; + goto st88; tr50: { s->r_class = s->default_class; } - goto st85; -tr732: + goto st88; +tr743: { s->r_ttl = s->default_ttl; } - goto st85; -st85: + goto st88; +st88: if ( ++p == pe ) - goto _test_eof85; -case 85: + goto _test_eof88; +case 88: switch( (*p) ) { - case 51: goto st86; - case 54: goto st88; - case 79: goto st90; - case 80: goto st92; - case 111: goto st90; - case 112: goto st92; + case 51: goto st89; + case 54: goto st91; + case 79: goto st93; + case 80: goto st95; + case 111: goto st93; + case 112: goto st95; } goto tr39; -st86: +st89: if ( ++p == pe ) - goto _test_eof86; -case 86: + goto _test_eof89; +case 89: if ( (*p) == 50 ) - goto st87; + goto st90; goto tr39; -st87: +st90: if ( ++p == pe ) - goto _test_eof87; -case 87: + goto _test_eof90; +case 90: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24134,29 +24892,29 @@ case 87: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr395; - case 32: goto tr395; - case 40: goto tr396; - case 41: goto tr397; - case 3082: goto tr398; - case 3131: goto tr399; - case 3338: goto tr400; - case 3387: goto tr400; - case 3594: goto tr401; - case 3643: goto tr402; + case 9: goto tr406; + case 32: goto tr406; + case 40: goto tr407; + case 41: goto tr408; + case 3082: goto tr409; + case 3131: goto tr410; + case 3338: goto tr411; + case 3387: goto tr411; + case 3594: goto tr412; + case 3643: goto tr413; } goto tr63; -st88: +st91: if ( ++p == pe ) - goto _test_eof88; -case 88: + goto _test_eof91; +case 91: if ( (*p) == 52 ) - goto st89; + goto st92; goto tr39; -st89: +st92: if ( ++p == pe ) - goto _test_eof89; -case 89: + goto _test_eof92; +case 92: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24174,31 +24932,31 @@ case 89: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr404; - case 32: goto tr404; - case 40: goto tr405; - case 41: goto tr406; - case 3082: goto tr407; - case 3131: goto tr408; - case 3338: goto tr409; - case 3387: goto tr409; - case 3594: goto tr410; - case 3643: goto tr411; + case 9: goto tr415; + case 32: goto tr415; + case 40: goto tr416; + case 41: goto tr417; + case 3082: goto tr418; + case 3131: goto tr419; + case 3338: goto tr420; + case 3387: goto tr420; + case 3594: goto tr421; + case 3643: goto tr422; } goto tr63; -st90: +st93: if ( ++p == pe ) - goto _test_eof90; -case 90: + goto _test_eof93; +case 93: switch( (*p) ) { - case 67: goto st91; - case 99: goto st91; + case 67: goto st94; + case 99: goto st94; } goto tr39; -st91: +st94: if ( ++p == pe ) - goto _test_eof91; -case 91: + goto _test_eof94; +case 94: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24216,22 +24974,22 @@ case 91: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr413; - case 32: goto tr413; - case 40: goto tr414; - case 41: goto tr415; - case 3082: goto tr416; - case 3131: goto tr417; - case 3338: goto tr418; - case 3387: goto tr418; - case 3594: goto tr419; - case 3643: goto tr420; + case 9: goto tr424; + case 32: goto tr424; + case 40: goto tr425; + case 41: goto tr426; + case 3082: goto tr427; + case 3131: goto tr428; + case 3338: goto tr429; + case 3387: goto tr429; + case 3594: goto tr430; + case 3643: goto tr431; } goto tr63; -st92: +st95: if ( ++p == pe ) - goto _test_eof92; -case 92: + goto _test_eof95; +case 95: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24249,16 +25007,16 @@ case 92: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr421; - case 32: goto tr421; - case 40: goto tr422; - case 41: goto tr423; - case 3082: goto tr424; - case 3131: goto tr425; - case 3338: goto tr426; - case 3387: goto tr426; - case 3594: goto tr427; - case 3643: goto tr428; + case 9: goto tr432; + case 32: goto tr432; + case 40: goto tr433; + case 41: goto tr434; + case 3082: goto tr435; + case 3131: goto tr436; + case 3338: goto tr437; + case 3387: goto tr437; + case 3594: goto tr438; + case 3643: goto tr439; } goto tr63; tr13: @@ -24268,59 +25026,59 @@ tr13: { s->r_ttl = s->default_ttl; } - goto st93; + goto st96; tr51: { s->r_class = s->default_class; } - goto st93; -tr733: + goto st96; +tr744: { s->r_ttl = s->default_ttl; } - goto st93; -st93: + goto st96; +st96: if ( ++p == pe ) - goto _test_eof93; -case 93: + goto _test_eof96; +case 96: switch( (*p) ) { - case 73: goto st94; - case 88: goto st98; - case 105: goto st94; - case 120: goto st98; + case 73: goto st97; + case 88: goto st101; + case 105: goto st97; + case 120: goto st101; } goto tr39; -st94: +st97: if ( ++p == pe ) - goto _test_eof94; -case 94: + goto _test_eof97; +case 97: switch( (*p) ) { - case 78: goto st95; - case 110: goto st95; + case 78: goto st98; + case 110: goto st98; } goto tr39; -st95: +st98: if ( ++p == pe ) - goto _test_eof95; -case 95: + goto _test_eof98; +case 98: switch( (*p) ) { - case 70: goto st96; - case 102: goto st96; + case 70: goto st99; + case 102: goto st99; } goto tr39; -st96: +st99: if ( ++p == pe ) - goto _test_eof96; -case 96: + goto _test_eof99; +case 99: switch( (*p) ) { - case 79: goto st97; - case 111: goto st97; + case 79: goto st100; + case 111: goto st100; } goto tr39; -st97: +st100: if ( ++p == pe ) - goto _test_eof97; -case 97: + goto _test_eof100; +case 100: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24338,22 +25096,22 @@ case 97: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr434; - case 32: goto tr434; - case 40: goto tr435; - case 41: goto tr436; - case 3082: goto tr437; - case 3131: goto tr438; - case 3338: goto tr439; - case 3387: goto tr439; - case 3594: goto tr440; - case 3643: goto tr441; + case 9: goto tr445; + case 32: goto tr445; + case 40: goto tr446; + case 41: goto tr447; + case 3082: goto tr448; + case 3131: goto tr449; + case 3338: goto tr450; + case 3387: goto tr450; + case 3594: goto tr451; + case 3643: goto tr452; } goto tr63; -st98: +st101: if ( ++p == pe ) - goto _test_eof98; -case 98: + goto _test_eof101; +case 101: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24371,16 +25129,16 @@ case 98: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr442; - case 32: goto tr442; - case 40: goto tr443; - case 41: goto tr444; - case 3082: goto tr445; - case 3131: goto tr446; - case 3338: goto tr447; - case 3387: goto tr447; - case 3594: goto tr448; - case 3643: goto tr449; + case 9: goto tr453; + case 32: goto tr453; + case 40: goto tr454; + case 41: goto tr455; + case 3082: goto tr456; + case 3131: goto tr457; + case 3338: goto tr458; + case 3387: goto tr458; + case 3594: goto tr459; + case 3643: goto tr460; } goto tr63; tr14: @@ -24390,61 +25148,61 @@ tr14: { s->r_ttl = s->default_ttl; } - goto st99; + goto st102; tr52: { s->r_class = s->default_class; } - goto st99; -tr734: + goto st102; +tr745: { s->r_ttl = s->default_ttl; } - goto st99; -st99: + goto st102; +st102: if ( ++p == pe ) - goto _test_eof99; -case 99: + goto _test_eof102; +case 102: switch( (*p) ) { - case 65: goto st100; - case 73: goto st104; - case 83: goto st106; - case 97: goto st100; - case 105: goto st104; - case 115: goto st106; + case 65: goto st103; + case 73: goto st107; + case 83: goto st109; + case 97: goto st103; + case 105: goto st107; + case 115: goto st109; } goto tr39; -st100: +st103: if ( ++p == pe ) - goto _test_eof100; -case 100: + goto _test_eof103; +case 103: switch( (*p) ) { - case 80: goto st101; - case 112: goto st101; + case 80: goto st104; + case 112: goto st104; } goto tr39; -st101: +st104: if ( ++p == pe ) - goto _test_eof101; -case 101: + goto _test_eof104; +case 104: switch( (*p) ) { - case 84: goto st102; - case 116: goto st102; + case 84: goto st105; + case 116: goto st105; } goto tr39; -st102: +st105: if ( ++p == pe ) - goto _test_eof102; -case 102: + goto _test_eof105; +case 105: switch( (*p) ) { - case 82: goto st103; - case 114: goto st103; + case 82: goto st106; + case 114: goto st106; } goto tr39; -st103: +st106: if ( ++p == pe ) - goto _test_eof103; -case 103: + goto _test_eof106; +case 106: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24462,31 +25220,31 @@ case 103: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr456; - case 32: goto tr456; - case 40: goto tr457; - case 41: goto tr458; - case 3082: goto tr459; - case 3131: goto tr460; - case 3338: goto tr461; - case 3387: goto tr461; - case 3594: goto tr462; - case 3643: goto tr463; + case 9: goto tr467; + case 32: goto tr467; + case 40: goto tr468; + case 41: goto tr469; + case 3082: goto tr470; + case 3131: goto tr471; + case 3338: goto tr472; + case 3387: goto tr472; + case 3594: goto tr473; + case 3643: goto tr474; } goto tr63; -st104: +st107: if ( ++p == pe ) - goto _test_eof104; -case 104: + goto _test_eof107; +case 107: switch( (*p) ) { - case 68: goto st105; - case 100: goto st105; + case 68: goto st108; + case 100: goto st108; } goto tr39; -st105: +st108: if ( ++p == pe ) - goto _test_eof105; -case 105: + goto _test_eof108; +case 108: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24504,22 +25262,22 @@ case 105: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr465; - case 32: goto tr465; - case 40: goto tr466; - case 41: goto tr467; - case 3082: goto tr468; - case 3131: goto tr469; - case 3338: goto tr470; - case 3387: goto tr470; - case 3594: goto tr471; - case 3643: goto tr472; + case 9: goto tr476; + case 32: goto tr476; + case 40: goto tr477; + case 41: goto tr478; + case 3082: goto tr479; + case 3131: goto tr480; + case 3338: goto tr481; + case 3387: goto tr481; + case 3594: goto tr482; + case 3643: goto tr483; } goto tr63; -st106: +st109: if ( ++p == pe ) - goto _test_eof106; -case 106: + goto _test_eof109; +case 109: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24537,33 +25295,33 @@ case 106: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr473; - case 32: goto tr473; - case 40: goto tr474; - case 41: goto tr475; - case 69: goto st107; - case 101: goto st107; - case 3082: goto tr477; - case 3131: goto tr478; - case 3338: goto tr479; - case 3387: goto tr479; - case 3594: goto tr480; - case 3643: goto tr481; + case 9: goto tr484; + case 32: goto tr484; + case 40: goto tr485; + case 41: goto tr486; + case 69: goto st110; + case 101: goto st110; + case 3082: goto tr488; + case 3131: goto tr489; + case 3338: goto tr490; + case 3387: goto tr490; + case 3594: goto tr491; + case 3643: goto tr492; } goto tr63; -st107: +st110: if ( ++p == pe ) - goto _test_eof107; -case 107: + goto _test_eof110; +case 110: switch( (*p) ) { - case 67: goto st108; - case 99: goto st108; + case 67: goto st111; + case 99: goto st111; } goto tr39; -st108: +st111: if ( ++p == pe ) - goto _test_eof108; -case 108: + goto _test_eof111; +case 111: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24581,23 +25339,23 @@ case 108: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr483; - case 32: goto tr483; - case 40: goto tr484; - case 41: goto tr485; - case 51: goto st109; - case 3082: goto tr487; - case 3131: goto tr488; - case 3338: goto tr489; - case 3387: goto tr489; - case 3594: goto tr490; - case 3643: goto tr491; + case 9: goto tr494; + case 32: goto tr494; + case 40: goto tr495; + case 41: goto tr496; + case 51: goto st112; + case 3082: goto tr498; + case 3131: goto tr499; + case 3338: goto tr500; + case 3387: goto tr500; + case 3594: goto tr501; + case 3643: goto tr502; } goto tr63; -st109: +st112: if ( ++p == pe ) - goto _test_eof109; -case 109: + goto _test_eof112; +case 112: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24615,60 +25373,60 @@ case 109: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr492; - case 32: goto tr492; - case 40: goto tr493; - case 41: goto tr494; - case 80: goto st110; - case 112: goto st110; - case 3082: goto tr496; - case 3131: goto tr497; - case 3338: goto tr498; - case 3387: goto tr498; - case 3594: goto tr499; - case 3643: goto tr500; + case 9: goto tr503; + case 32: goto tr503; + case 40: goto tr504; + case 41: goto tr505; + case 80: goto st113; + case 112: goto st113; + case 3082: goto tr507; + case 3131: goto tr508; + case 3338: goto tr509; + case 3387: goto tr509; + case 3594: goto tr510; + case 3643: goto tr511; } goto tr63; -st110: +st113: if ( ++p == pe ) - goto _test_eof110; -case 110: + goto _test_eof113; +case 113: switch( (*p) ) { - case 65: goto st111; - case 97: goto st111; + case 65: goto st114; + case 97: goto st114; } goto tr39; -st111: +st114: if ( ++p == pe ) - goto _test_eof111; -case 111: + goto _test_eof114; +case 114: switch( (*p) ) { - case 82: goto st112; - case 114: goto st112; + case 82: goto st115; + case 114: goto st115; } goto tr39; -st112: +st115: if ( ++p == pe ) - goto _test_eof112; -case 112: + goto _test_eof115; +case 115: switch( (*p) ) { - case 65: goto st113; - case 97: goto st113; + case 65: goto st116; + case 97: goto st116; } goto tr39; -st113: +st116: if ( ++p == pe ) - goto _test_eof113; -case 113: + goto _test_eof116; +case 116: switch( (*p) ) { - case 77: goto st114; - case 109: goto st114; + case 77: goto st117; + case 109: goto st117; } goto tr39; -st114: +st117: if ( ++p == pe ) - goto _test_eof114; -case 114: + goto _test_eof117; +case 117: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24686,16 +25444,16 @@ case 114: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr505; - case 32: goto tr505; - case 40: goto tr506; - case 41: goto tr507; - case 3082: goto tr508; - case 3131: goto tr509; - case 3338: goto tr510; - case 3387: goto tr510; - case 3594: goto tr511; - case 3643: goto tr512; + case 9: goto tr516; + case 32: goto tr516; + case 40: goto tr517; + case 41: goto tr518; + case 3082: goto tr519; + case 3131: goto tr520; + case 3338: goto tr521; + case 3387: goto tr521; + case 3594: goto tr522; + case 3643: goto tr523; } goto tr63; tr15: @@ -24705,44 +25463,17 @@ tr15: { s->r_ttl = s->default_ttl; } - goto st115; + goto st118; tr53: { s->r_class = s->default_class; } - goto st115; -tr735: + goto st118; +tr746: { s->r_ttl = s->default_ttl; } - goto st115; -st115: - if ( ++p == pe ) - goto _test_eof115; -case 115: - switch( (*p) ) { - case 80: goto st116; - case 112: goto st116; - } - goto tr39; -st116: - if ( ++p == pe ) - goto _test_eof116; -case 116: - switch( (*p) ) { - case 69: goto st117; - case 101: goto st117; - } - goto tr39; -st117: - if ( ++p == pe ) - goto _test_eof117; -case 117: - switch( (*p) ) { - case 78: goto st118; - case 110: goto st118; - } - goto tr39; + goto st118; st118: if ( ++p == pe ) goto _test_eof118; @@ -24757,8 +25488,8 @@ st119: goto _test_eof119; case 119: switch( (*p) ) { - case 71: goto st120; - case 103: goto st120; + case 69: goto st120; + case 101: goto st120; } goto tr39; st120: @@ -24766,8 +25497,8 @@ st120: goto _test_eof120; case 120: switch( (*p) ) { - case 80: goto st121; - case 112: goto st121; + case 78: goto st121; + case 110: goto st121; } goto tr39; st121: @@ -24775,8 +25506,8 @@ st121: goto _test_eof121; case 121: switch( (*p) ) { - case 75: goto st122; - case 107: goto st122; + case 80: goto st122; + case 112: goto st122; } goto tr39; st122: @@ -24784,8 +25515,8 @@ st122: goto _test_eof122; case 122: switch( (*p) ) { - case 69: goto st123; - case 101: goto st123; + case 71: goto st123; + case 103: goto st123; } goto tr39; st123: @@ -24793,68 +25524,26 @@ st123: goto _test_eof123; case 123: switch( (*p) ) { - case 89: goto st124; - case 121: goto st124; + case 80: goto st124; + case 112: goto st124; } goto tr39; st124: if ( ++p == pe ) goto _test_eof124; case 124: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr522; - case 32: goto tr522; - case 40: goto tr523; - case 41: goto tr524; - case 3082: goto tr525; - case 3131: goto tr526; - case 3338: goto tr527; - case 3387: goto tr527; - case 3594: goto tr528; - case 3643: goto tr529; - } - goto tr63; -tr16: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - goto st125; -tr54: - { - s->r_class = s->default_class; - } - goto st125; -tr736: - { - s->r_ttl = s->default_ttl; + switch( (*p) ) { + case 75: goto st125; + case 107: goto st125; } - goto st125; + goto tr39; st125: if ( ++p == pe ) goto _test_eof125; case 125: switch( (*p) ) { - case 84: goto st126; - case 116: goto st126; + case 69: goto st126; + case 101: goto st126; } goto tr39; st126: @@ -24862,8 +25551,8 @@ st126: goto _test_eof126; case 126: switch( (*p) ) { - case 82: goto st127; - case 114: goto st127; + case 89: goto st127; + case 121: goto st127; } goto tr39; st127: @@ -24887,19 +25576,19 @@ case 127: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr532; - case 32: goto tr532; - case 40: goto tr533; - case 41: goto tr534; - case 3082: goto tr535; - case 3131: goto tr536; - case 3338: goto tr537; - case 3387: goto tr537; - case 3594: goto tr538; - case 3643: goto tr539; + case 9: goto tr533; + case 32: goto tr533; + case 40: goto tr534; + case 41: goto tr535; + case 3082: goto tr536; + case 3131: goto tr537; + case 3338: goto tr538; + case 3387: goto tr538; + case 3594: goto tr539; + case 3643: goto tr540; } goto tr63; -tr17: +tr16: { s->r_class = s->default_class; } @@ -24907,12 +25596,12 @@ tr17: s->r_ttl = s->default_ttl; } goto st128; -tr55: +tr54: { s->r_class = s->default_class; } goto st128; -tr737: +tr747: { s->r_ttl = s->default_ttl; } @@ -24922,18 +25611,23 @@ st128: goto _test_eof128; case 128: switch( (*p) ) { - case 80: goto st129; - case 82: goto st130; - case 84: goto st134; - case 112: goto st129; - case 114: goto st130; - case 116: goto st134; + case 84: goto st129; + case 116: goto st129; } goto tr39; st129: if ( ++p == pe ) goto _test_eof129; case 129: + switch( (*p) ) { + case 82: goto st130; + case 114: goto st130; + } + goto tr39; +st130: + if ( ++p == pe ) + goto _test_eof130; +case 130: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -24963,37 +25657,41 @@ case 129: case 3643: goto tr550; } goto tr63; -st130: - if ( ++p == pe ) - goto _test_eof130; -case 130: - switch( (*p) ) { - case 83: goto st131; - case 115: goto st131; +tr17: + { + s->r_class = s->default_class; } - goto tr39; + { + s->r_ttl = s->default_ttl; + } + goto st131; +tr55: + { + s->r_class = s->default_class; + } + goto st131; +tr748: + { + s->r_ttl = s->default_ttl; + } + goto st131; st131: if ( ++p == pe ) goto _test_eof131; case 131: switch( (*p) ) { - case 73: goto st132; - case 105: goto st132; + case 80: goto st132; + case 82: goto st133; + case 84: goto st137; + case 112: goto st132; + case 114: goto st133; + case 116: goto st137; } goto tr39; st132: if ( ++p == pe ) goto _test_eof132; case 132: - switch( (*p) ) { - case 71: goto st133; - case 103: goto st133; - } - goto tr39; -st133: - if ( ++p == pe ) - goto _test_eof133; -case 133: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25023,10 +25721,70 @@ case 133: case 3643: goto tr561; } goto tr63; +st133: + if ( ++p == pe ) + goto _test_eof133; +case 133: + switch( (*p) ) { + case 83: goto st134; + case 115: goto st134; + } + goto tr39; st134: if ( ++p == pe ) goto _test_eof134; case 134: + switch( (*p) ) { + case 73: goto st135; + case 105: goto st135; + } + goto tr39; +st135: + if ( ++p == pe ) + goto _test_eof135; +case 135: + switch( (*p) ) { + case 71: goto st136; + case 103: goto st136; + } + goto tr39; +st136: + if ( ++p == pe ) + goto _test_eof136; +case 136: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr565; + case 32: goto tr565; + case 40: goto tr566; + case 41: goto tr567; + case 3082: goto tr568; + case 3131: goto tr569; + case 3338: goto tr570; + case 3387: goto tr570; + case 3594: goto tr571; + case 3643: goto tr572; + } + goto tr63; +st137: + if ( ++p == pe ) + goto _test_eof137; +case 137: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25044,16 +25802,16 @@ case 134: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr562; - case 32: goto tr562; - case 40: goto tr563; - case 41: goto tr564; - case 3082: goto tr565; - case 3131: goto tr566; - case 3338: goto tr567; - case 3387: goto tr567; - case 3594: goto tr568; - case 3643: goto tr569; + case 9: goto tr573; + case 32: goto tr573; + case 40: goto tr574; + case 41: goto tr575; + case 3082: goto tr576; + case 3131: goto tr577; + case 3338: goto tr578; + case 3387: goto tr578; + case 3594: goto tr579; + case 3643: goto tr580; } goto tr63; tr18: @@ -25063,61 +25821,34 @@ tr18: { s->r_ttl = s->default_ttl; } - goto st135; + goto st138; tr56: { s->r_class = s->default_class; } - goto st135; -tr738: + goto st138; +tr749: { s->r_ttl = s->default_ttl; } - goto st135; -st135: - if ( ++p == pe ) - goto _test_eof135; -case 135: - switch( (*p) ) { - case 77: goto st136; - case 79: goto st141; - case 80: goto st143; - case 82: goto st145; - case 83: goto st147; - case 86: goto st151; - case 109: goto st136; - case 111: goto st141; - case 112: goto st143; - case 114: goto st145; - case 115: goto st147; - case 118: goto st151; - } - goto tr39; -st136: - if ( ++p == pe ) - goto _test_eof136; -case 136: - switch( (*p) ) { - case 73: goto st137; - case 105: goto st137; - } - goto tr39; -st137: - if ( ++p == pe ) - goto _test_eof137; -case 137: - switch( (*p) ) { - case 77: goto st138; - case 109: goto st138; - } - goto tr39; + goto st138; st138: if ( ++p == pe ) goto _test_eof138; case 138: switch( (*p) ) { - case 69: goto st139; - case 101: goto st139; + case 77: goto st139; + case 79: goto st144; + case 80: goto st146; + case 82: goto st148; + case 83: goto st150; + case 86: goto st154; + case 109: goto st139; + case 111: goto st144; + case 112: goto st146; + case 114: goto st148; + case 115: goto st150; + case 118: goto st154; } goto tr39; st139: @@ -25125,56 +25856,41 @@ st139: goto _test_eof139; case 139: switch( (*p) ) { - case 65: goto st140; - case 97: goto st140; + case 73: goto st140; + case 105: goto st140; } goto tr39; st140: if ( ++p == pe ) goto _test_eof140; case 140: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr580; - case 32: goto tr580; - case 40: goto tr581; - case 41: goto tr582; - case 3082: goto tr583; - case 3131: goto tr584; - case 3338: goto tr585; - case 3387: goto tr585; - case 3594: goto tr586; - case 3643: goto tr587; + switch( (*p) ) { + case 77: goto st141; + case 109: goto st141; } - goto tr63; + goto tr39; st141: if ( ++p == pe ) goto _test_eof141; case 141: switch( (*p) ) { - case 65: goto st142; - case 97: goto st142; + case 69: goto st142; + case 101: goto st142; } goto tr39; st142: if ( ++p == pe ) goto _test_eof142; case 142: + switch( (*p) ) { + case 65: goto st143; + case 97: goto st143; + } + goto tr39; +st143: + if ( ++p == pe ) + goto _test_eof143; +case 143: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25192,31 +25908,31 @@ case 142: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr589; - case 32: goto tr589; - case 40: goto tr590; - case 41: goto tr591; - case 3082: goto tr592; - case 3131: goto tr593; - case 3338: goto tr594; - case 3387: goto tr594; - case 3594: goto tr595; - case 3643: goto tr596; + case 9: goto tr591; + case 32: goto tr591; + case 40: goto tr592; + case 41: goto tr593; + case 3082: goto tr594; + case 3131: goto tr595; + case 3338: goto tr596; + case 3387: goto tr596; + case 3594: goto tr597; + case 3643: goto tr598; } goto tr63; -st143: +st144: if ( ++p == pe ) - goto _test_eof143; -case 143: + goto _test_eof144; +case 144: switch( (*p) ) { - case 70: goto st144; - case 102: goto st144; + case 65: goto st145; + case 97: goto st145; } goto tr39; -st144: +st145: if ( ++p == pe ) - goto _test_eof144; -case 144: + goto _test_eof145; +case 145: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25234,31 +25950,31 @@ case 144: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr598; - case 32: goto tr598; - case 40: goto tr599; - case 41: goto tr600; - case 3082: goto tr601; - case 3131: goto tr602; - case 3338: goto tr603; - case 3387: goto tr603; - case 3594: goto tr604; - case 3643: goto tr605; + case 9: goto tr600; + case 32: goto tr600; + case 40: goto tr601; + case 41: goto tr602; + case 3082: goto tr603; + case 3131: goto tr604; + case 3338: goto tr605; + case 3387: goto tr605; + case 3594: goto tr606; + case 3643: goto tr607; } goto tr63; -st145: +st146: if ( ++p == pe ) - goto _test_eof145; -case 145: + goto _test_eof146; +case 146: switch( (*p) ) { - case 86: goto st146; - case 118: goto st146; + case 70: goto st147; + case 102: goto st147; } goto tr39; -st146: +st147: if ( ++p == pe ) - goto _test_eof146; -case 146: + goto _test_eof147; +case 147: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25276,49 +25992,31 @@ case 146: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr607; - case 32: goto tr607; - case 40: goto tr608; - case 41: goto tr609; - case 3082: goto tr610; - case 3131: goto tr611; - case 3338: goto tr612; - case 3387: goto tr612; - case 3594: goto tr613; - case 3643: goto tr614; + case 9: goto tr609; + case 32: goto tr609; + case 40: goto tr610; + case 41: goto tr611; + case 3082: goto tr612; + case 3131: goto tr613; + case 3338: goto tr614; + case 3387: goto tr614; + case 3594: goto tr615; + case 3643: goto tr616; } goto tr63; -st147: - if ( ++p == pe ) - goto _test_eof147; -case 147: - switch( (*p) ) { - case 72: goto st148; - case 104: goto st148; - } - goto tr39; st148: if ( ++p == pe ) goto _test_eof148; case 148: switch( (*p) ) { - case 70: goto st149; - case 102: goto st149; + case 86: goto st149; + case 118: goto st149; } goto tr39; st149: if ( ++p == pe ) goto _test_eof149; case 149: - switch( (*p) ) { - case 80: goto st150; - case 112: goto st150; - } - goto tr39; -st150: - if ( ++p == pe ) - goto _test_eof150; -case 150: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25348,13 +26046,22 @@ case 150: case 3643: goto tr625; } goto tr63; +st150: + if ( ++p == pe ) + goto _test_eof150; +case 150: + switch( (*p) ) { + case 72: goto st151; + case 104: goto st151; + } + goto tr39; st151: if ( ++p == pe ) goto _test_eof151; case 151: switch( (*p) ) { - case 67: goto st152; - case 99: goto st152; + case 70: goto st152; + case 102: goto st152; } goto tr39; st152: @@ -25362,8 +26069,8 @@ st152: goto _test_eof152; case 152: switch( (*p) ) { - case 66: goto st153; - case 98: goto st153; + case 80: goto st153; + case 112: goto st153; } goto tr39; st153: @@ -25387,16 +26094,67 @@ case 153: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr628; - case 32: goto tr628; - case 40: goto tr629; - case 41: goto tr630; - case 3082: goto tr631; - case 3131: goto tr632; - case 3338: goto tr633; - case 3387: goto tr633; - case 3594: goto tr634; - case 3643: goto tr635; + case 9: goto tr629; + case 32: goto tr629; + case 40: goto tr630; + case 41: goto tr631; + case 3082: goto tr632; + case 3131: goto tr633; + case 3338: goto tr634; + case 3387: goto tr634; + case 3594: goto tr635; + case 3643: goto tr636; + } + goto tr63; +st154: + if ( ++p == pe ) + goto _test_eof154; +case 154: + switch( (*p) ) { + case 67: goto st155; + case 99: goto st155; + } + goto tr39; +st155: + if ( ++p == pe ) + goto _test_eof155; +case 155: + switch( (*p) ) { + case 66: goto st156; + case 98: goto st156; + } + goto tr39; +st156: + if ( ++p == pe ) + goto _test_eof156; +case 156: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr639; + case 32: goto tr639; + case 40: goto tr640; + case 41: goto tr641; + case 3082: goto tr642; + case 3131: goto tr643; + case 3338: goto tr644; + case 3387: goto tr644; + case 3594: goto tr645; + case 3643: goto tr646; } goto tr63; tr19: @@ -25406,52 +26164,52 @@ tr19: { s->r_ttl = s->default_ttl; } - goto st154; + goto st157; tr57: { s->r_class = s->default_class; } - goto st154; -tr739: + goto st157; +tr750: { s->r_ttl = s->default_ttl; } - goto st154; -st154: + goto st157; +st157: if ( ++p == pe ) - goto _test_eof154; -case 154: + goto _test_eof157; +case 157: switch( (*p) ) { - case 76: goto st155; - case 88: goto st158; - case 89: goto st160; - case 108: goto st155; - case 120: goto st158; - case 121: goto st160; + case 76: goto st158; + case 88: goto st161; + case 89: goto st163; + case 108: goto st158; + case 120: goto st161; + case 121: goto st163; } goto tr39; -st155: +st158: if ( ++p == pe ) - goto _test_eof155; -case 155: + goto _test_eof158; +case 158: switch( (*p) ) { - case 83: goto st156; - case 115: goto st156; + case 83: goto st159; + case 115: goto st159; } goto tr39; -st156: +st159: if ( ++p == pe ) - goto _test_eof156; -case 156: + goto _test_eof159; +case 159: switch( (*p) ) { - case 65: goto st157; - case 97: goto st157; + case 65: goto st160; + case 97: goto st160; } goto tr39; -st157: +st160: if ( ++p == pe ) - goto _test_eof157; -case 157: + goto _test_eof160; +case 160: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25469,31 +26227,31 @@ case 157: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr641; - case 32: goto tr641; - case 40: goto tr642; - case 41: goto tr643; - case 3082: goto tr644; - case 3131: goto tr645; - case 3338: goto tr646; - case 3387: goto tr646; - case 3594: goto tr647; - case 3643: goto tr648; + case 9: goto tr652; + case 32: goto tr652; + case 40: goto tr653; + case 41: goto tr654; + case 3082: goto tr655; + case 3131: goto tr656; + case 3338: goto tr657; + case 3387: goto tr657; + case 3594: goto tr658; + case 3643: goto tr659; } goto tr63; -st158: +st161: if ( ++p == pe ) - goto _test_eof158; -case 158: + goto _test_eof161; +case 161: switch( (*p) ) { - case 84: goto st159; - case 116: goto st159; + case 84: goto st162; + case 116: goto st162; } goto tr39; -st159: +st162: if ( ++p == pe ) - goto _test_eof159; -case 159: + goto _test_eof162; +case 162: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25511,44 +26269,44 @@ case 159: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr650; - case 32: goto tr650; - case 40: goto tr651; - case 41: goto tr652; - case 3082: goto tr653; - case 3131: goto tr654; - case 3338: goto tr655; - case 3387: goto tr655; - case 3594: goto tr656; - case 3643: goto tr657; + case 9: goto tr661; + case 32: goto tr661; + case 40: goto tr662; + case 41: goto tr663; + case 3082: goto tr664; + case 3131: goto tr665; + case 3338: goto tr666; + case 3387: goto tr666; + case 3594: goto tr667; + case 3643: goto tr668; } goto tr63; -st160: +st163: if ( ++p == pe ) - goto _test_eof160; -case 160: + goto _test_eof163; +case 163: switch( (*p) ) { - case 80: goto st161; - case 112: goto st161; + case 80: goto st164; + case 112: goto st164; } goto tr39; -st161: +st164: if ( ++p == pe ) - goto _test_eof161; -case 161: + goto _test_eof164; +case 164: switch( (*p) ) { - case 69: goto st162; - case 101: goto st162; + case 69: goto st165; + case 101: goto st165; } goto tr39; -st162: +st165: if ( ++p == pe ) - goto _test_eof162; -case 162: + goto _test_eof165; +case 165: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr661; - goto tr660; -tr661: + goto tr672; + goto tr671; +tr672: { s->number64 = 0; } @@ -25563,11 +26321,11 @@ tr661: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st163; -tr666: + goto st166; +tr677: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -25579,14 +26337,14 @@ tr666: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st163; -st163: + goto st166; +st166: if ( ++p == pe ) - goto _test_eof163; -case 163: + goto _test_eof166; +case 166: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25604,20 +26362,20 @@ case 163: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr663; - case 32: goto tr663; - case 40: goto tr664; - case 41: goto tr665; - case 3082: goto tr667; - case 3131: goto tr668; - case 3338: goto tr669; - case 3387: goto tr669; - case 3594: goto tr670; - case 3643: goto tr671; + case 9: goto tr674; + case 32: goto tr674; + case 40: goto tr675; + case 41: goto tr676; + case 3082: goto tr678; + case 3131: goto tr679; + case 3338: goto tr680; + case 3387: goto tr680; + case 3594: goto tr681; + case 3643: goto tr682; } if ( 48 <= _widec && _widec <= 57 ) - goto tr666; - goto tr662; + goto tr677; + goto tr673; tr20: { s->r_class = s->default_class; @@ -25625,39 +26383,39 @@ tr20: { s->r_ttl = s->default_ttl; } - goto st164; + goto st167; tr58: { s->r_class = s->default_class; } - goto st164; -tr740: + goto st167; +tr751: { s->r_ttl = s->default_ttl; } - goto st164; -st164: + goto st167; +st167: if ( ++p == pe ) - goto _test_eof164; -case 164: + goto _test_eof167; +case 167: switch( (*p) ) { - case 82: goto st165; - case 114: goto st165; + case 82: goto st168; + case 114: goto st168; } goto tr39; -st165: +st168: if ( ++p == pe ) - goto _test_eof165; -case 165: + goto _test_eof168; +case 168: switch( (*p) ) { - case 73: goto st166; - case 105: goto st166; + case 73: goto st169; + case 105: goto st169; } goto tr39; -st166: +st169: if ( ++p == pe ) - goto _test_eof166; -case 166: + goto _test_eof169; +case 169: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25675,16 +26433,16 @@ case 166: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr674; - case 32: goto tr674; - case 40: goto tr675; - case 41: goto tr676; - case 3082: goto tr677; - case 3131: goto tr678; - case 3338: goto tr679; - case 3387: goto tr679; - case 3594: goto tr680; - case 3643: goto tr681; + case 9: goto tr685; + case 32: goto tr685; + case 40: goto tr686; + case 41: goto tr687; + case 3082: goto tr688; + case 3131: goto tr689; + case 3338: goto tr690; + case 3387: goto tr690; + case 3594: goto tr691; + case 3643: goto tr692; } goto tr63; tr21: @@ -25694,66 +26452,66 @@ tr21: { s->r_ttl = s->default_ttl; } - goto st167; + goto st170; tr59: { s->r_class = s->default_class; } - goto st167; -tr741: + goto st170; +tr752: { s->r_ttl = s->default_ttl; } - goto st167; -st167: + goto st170; +st170: if ( ++p == pe ) - goto _test_eof167; -case 167: + goto _test_eof170; +case 170: switch( (*p) ) { - case 65: goto st168; - case 97: goto st168; + case 65: goto st171; + case 97: goto st171; } goto tr39; -st168: +st171: if ( ++p == pe ) - goto _test_eof168; -case 168: + goto _test_eof171; +case 171: switch( (*p) ) { - case 76: goto st169; - case 108: goto st169; + case 76: goto st172; + case 108: goto st172; } goto tr39; -st169: +st172: if ( ++p == pe ) - goto _test_eof169; -case 169: + goto _test_eof172; +case 172: switch( (*p) ) { - case 76: goto st170; - case 108: goto st170; + case 76: goto st173; + case 108: goto st173; } goto tr39; -st170: +st173: if ( ++p == pe ) - goto _test_eof170; -case 170: + goto _test_eof173; +case 173: switch( (*p) ) { - case 69: goto st171; - case 101: goto st171; + case 69: goto st174; + case 101: goto st174; } goto tr39; -st171: +st174: if ( ++p == pe ) - goto _test_eof171; -case 171: + goto _test_eof174; +case 174: switch( (*p) ) { - case 84: goto st172; - case 116: goto st172; + case 84: goto st175; + case 116: goto st175; } goto tr39; -st172: +st175: if ( ++p == pe ) - goto _test_eof172; -case 172: + goto _test_eof175; +case 175: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25771,16 +26529,16 @@ case 172: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr687; - case 32: goto tr687; - case 40: goto tr688; - case 41: goto tr689; - case 3082: goto tr690; - case 3131: goto tr691; - case 3338: goto tr692; - case 3387: goto tr692; - case 3594: goto tr693; - case 3643: goto tr694; + case 9: goto tr698; + case 32: goto tr698; + case 40: goto tr699; + case 41: goto tr700; + case 3082: goto tr701; + case 3131: goto tr702; + case 3338: goto tr703; + case 3387: goto tr703; + case 3594: goto tr704; + case 3643: goto tr705; } goto tr63; tr22: @@ -25790,66 +26548,66 @@ tr22: { s->r_ttl = s->default_ttl; } - goto st173; + goto st176; tr60: { s->r_class = s->default_class; } - goto st173; -tr742: + goto st176; +tr753: { s->r_ttl = s->default_ttl; } - goto st173; -st173: + goto st176; +st176: if ( ++p == pe ) - goto _test_eof173; -case 173: + goto _test_eof176; +case 176: switch( (*p) ) { - case 79: goto st174; - case 111: goto st174; + case 79: goto st177; + case 111: goto st177; } goto tr39; -st174: +st177: if ( ++p == pe ) - goto _test_eof174; -case 174: + goto _test_eof177; +case 177: switch( (*p) ) { - case 78: goto st175; - case 110: goto st175; + case 78: goto st178; + case 110: goto st178; } goto tr39; -st175: +st178: if ( ++p == pe ) - goto _test_eof175; -case 175: + goto _test_eof178; +case 178: switch( (*p) ) { - case 69: goto st176; - case 101: goto st176; + case 69: goto st179; + case 101: goto st179; } goto tr39; -st176: +st179: if ( ++p == pe ) - goto _test_eof176; -case 176: + goto _test_eof179; +case 179: switch( (*p) ) { - case 77: goto st177; - case 109: goto st177; + case 77: goto st180; + case 109: goto st180; } goto tr39; -st177: +st180: if ( ++p == pe ) - goto _test_eof177; -case 177: + goto _test_eof180; +case 180: switch( (*p) ) { - case 68: goto st178; - case 100: goto st178; + case 68: goto st181; + case 100: goto st181; } goto tr39; -st178: +st181: if ( ++p == pe ) - goto _test_eof178; -case 178: + goto _test_eof181; +case 181: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25867,58 +26625,58 @@ case 178: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr700; - case 32: goto tr700; - case 40: goto tr701; - case 41: goto tr702; - case 3082: goto tr703; - case 3131: goto tr704; - case 3338: goto tr705; - case 3387: goto tr705; - case 3594: goto tr706; - case 3643: goto tr707; + case 9: goto tr711; + case 32: goto tr711; + case 40: goto tr712; + case 41: goto tr713; + case 3082: goto tr714; + case 3131: goto tr715; + case 3338: goto tr716; + case 3387: goto tr716; + case 3594: goto tr717; + case 3643: goto tr718; } goto tr63; -tr356: +tr367: { s->buffer_length = 0; } - goto st179; -tr755: + goto st182; +tr766: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st179; -tr708: + goto st182; +tr719: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st179; -tr333: + goto st182; +tr344: { s->r_class = KNOT_CLASS_IN; } { s->buffer_length = 0; } - goto st179; -tr768: + goto st182; +tr779: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -25926,17 +26684,17 @@ tr768: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st179; -st179: + goto st182; +st182: if ( ++p == pe ) - goto _test_eof179; -case 179: + goto _test_eof182; +case 182: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -25956,11 +26714,11 @@ case 179: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr709; + goto tr720; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr708; + goto tr719; goto tr39; -tr1020: +tr1031: { s->buffer[s->buffer_length++] = 0; @@ -25970,7 +26728,7 @@ tr1020: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1446; goto _out;} + {p++; cs = 1485; goto _out;} } } } @@ -25980,7 +26738,7 @@ tr1020: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -25993,22 +26751,22 @@ tr1020: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1446; goto _out;} + {p++; cs = 1485; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1446; goto _out;} + p--; {p++; cs = 1485; goto _out;} } } - goto st1446; + goto st1485; tr152: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -26021,7 +26779,7 @@ tr152: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -26034,15 +26792,15 @@ tr152: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1446; goto _out;} + {p++; cs = 1485; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1446; goto _out;} + p--; {p++; cs = 1485; goto _out;} } } - goto st1446; + goto st1485; tr158: { s->line_counter++; @@ -26050,7 +26808,7 @@ tr158: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -26063,19 +26821,19 @@ tr158: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1446; goto _out;} + {p++; cs = 1485; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1446; goto _out;} + p--; {p++; cs = 1485; goto _out;} } } - goto st1446; -st1446: + goto st1485; +st1485: if ( ++p == pe ) - goto _test_eof1446; -case 1446: + goto _test_eof1485; +case 1485: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26089,136 +26847,136 @@ case 1446: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4308; - case 32: goto tr4308; - case 36: goto st190; - case 40: goto tr4309; - case 41: goto tr4310; - case 42: goto tr4290; - case 65: goto tr4311; - case 67: goto tr4312; - case 68: goto tr4313; - case 69: goto tr4314; - case 72: goto tr4315; - case 73: goto tr4316; - case 75: goto tr4317; - case 76: goto tr4318; - case 77: goto tr4319; - case 78: goto tr4320; - case 79: goto tr4321; - case 80: goto tr4322; - case 82: goto tr4323; - case 83: goto tr4324; - case 84: goto tr4325; - case 85: goto tr4326; - case 87: goto tr4327; - case 90: goto tr4328; - case 92: goto tr4290; - case 95: goto tr4290; - case 97: goto tr4311; - case 99: goto tr4312; - case 100: goto tr4313; - case 101: goto tr4314; - case 104: goto tr4315; - case 105: goto tr4316; - case 107: goto tr4317; - case 108: goto tr4318; - case 109: goto tr4319; - case 110: goto tr4320; - case 111: goto tr4321; - case 112: goto tr4322; - case 114: goto tr4323; - case 115: goto tr4324; - case 116: goto tr4325; - case 117: goto tr4326; - case 119: goto tr4327; - case 122: goto tr4328; - case 1802: goto tr4291; - case 1851: goto tr4292; - case 2058: goto tr4329; - case 2107: goto tr4330; + case 9: goto tr4408; + case 32: goto tr4408; + case 36: goto st193; + case 40: goto tr4409; + case 41: goto tr4410; + case 42: goto tr4390; + case 65: goto tr4411; + case 67: goto tr4412; + case 68: goto tr4413; + case 69: goto tr4414; + case 72: goto tr4415; + case 73: goto tr4416; + case 75: goto tr4417; + case 76: goto tr4418; + case 77: goto tr4419; + case 78: goto tr4420; + case 79: goto tr4421; + case 80: goto tr4422; + case 82: goto tr4423; + case 83: goto tr4424; + case 84: goto tr4425; + case 85: goto tr4426; + case 87: goto tr4427; + case 90: goto tr4428; + case 92: goto tr4390; + case 95: goto tr4390; + case 97: goto tr4411; + case 99: goto tr4412; + case 100: goto tr4413; + case 101: goto tr4414; + case 104: goto tr4415; + case 105: goto tr4416; + case 107: goto tr4417; + case 108: goto tr4418; + case 109: goto tr4419; + case 110: goto tr4420; + case 111: goto tr4421; + case 112: goto tr4422; + case 114: goto tr4423; + case 115: goto tr4424; + case 116: goto tr4425; + case 117: goto tr4426; + case 119: goto tr4427; + case 122: goto tr4428; + case 1802: goto tr4391; + case 1851: goto tr4392; + case 2058: goto tr4429; + case 2107: goto tr4430; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4290; + goto tr4390; } else if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4290; + goto tr4390; } else - goto tr4290; - goto tr4307; -tr711: + goto tr4390; + goto tr4407; +tr722: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st180; -tr712: + goto st183; +tr723: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st180; -tr4308: + goto st183; +tr4408: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st180; -tr4309: + goto st183; +tr4409: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st180; -tr4310: + goto st183; +tr4410: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st180; -st180: + goto st183; +st183: if ( ++p == pe ) - goto _test_eof180; -case 180: + goto _test_eof183; +case 183: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26232,10 +26990,10 @@ case 180: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st180; - case 32: goto st180; - case 40: goto tr711; - case 41: goto tr712; + case 9: goto st183; + case 32: goto st183; + case 40: goto tr722; + case 41: goto tr723; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -26274,8 +27032,8 @@ case 180: case 122: goto tr22; case 1802: goto tr23; case 1851: goto tr24; - case 2058: goto tr713; - case 2107: goto tr714; + case 2058: goto tr724; + case 2107: goto tr725; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; @@ -26287,22 +27045,22 @@ tr10: { s->r_ttl = s->default_ttl; } - goto st181; -st181: + goto st184; +st184: if ( ++p == pe ) - goto _test_eof181; -case 181: + goto _test_eof184; +case 184: switch( (*p) ) { - case 78: goto st182; - case 80: goto st74; - case 110: goto st182; - case 112: goto st74; + case 78: goto st185; + case 80: goto st77; + case 110: goto st185; + case 112: goto st77; } goto tr39; -st182: +st185: if ( ++p == pe ) - goto _test_eof182; -case 182: + goto _test_eof185; +case 185: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26316,38 +27074,38 @@ case 182: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr716; - case 32: goto tr716; - case 40: goto tr717; - case 41: goto tr718; - case 2058: goto tr719; - case 2107: goto tr720; + case 9: goto tr727; + case 32: goto tr727; + case 40: goto tr728; + case 41: goto tr729; + case 2058: goto tr730; + case 2107: goto tr731; } goto tr39; -tr722: +tr733: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st183; -tr723: + goto st186; +tr734: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st183; -tr743: + goto st186; +tr754: { s->line_counter++; } - goto st183; -tr770: + goto st186; +tr781: { s->buffer[s->buffer_length++] = 0; @@ -26357,55 +27115,55 @@ tr770: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 183; goto _out;} + {p++; cs = 186; goto _out;} } } } { s->line_counter++; } - goto st183; -tr716: + goto st186; +tr727: { s->r_class = KNOT_CLASS_IN; } - goto st183; -tr717: + goto st186; +tr728: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st183; -tr718: + goto st186; +tr729: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st183; -tr719: + goto st186; +tr730: { s->r_class = KNOT_CLASS_IN; } { s->line_counter++; } - goto st183; -st183: + goto st186; +st186: if ( ++p == pe ) - goto _test_eof183; -case 183: + goto _test_eof186; +case 186: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26419,53 +27177,53 @@ case 183: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st183; - case 32: goto st183; - case 40: goto tr722; - case 41: goto tr723; - case 65: goto tr725; - case 67: goto tr726; - case 68: goto tr727; - case 69: goto tr728; - case 72: goto tr729; - case 73: goto tr730; - case 75: goto tr731; - case 76: goto tr732; - case 77: goto tr733; - case 78: goto tr734; - case 79: goto tr735; - case 80: goto tr736; - case 82: goto tr737; - case 83: goto tr738; - case 84: goto tr739; - case 85: goto tr740; - case 87: goto tr741; - case 90: goto tr742; - case 97: goto tr725; - case 99: goto tr726; - case 100: goto tr727; - case 101: goto tr728; - case 104: goto tr729; - case 105: goto tr730; - case 107: goto tr731; - case 108: goto tr732; - case 109: goto tr733; - case 110: goto tr734; - case 111: goto tr735; - case 112: goto tr736; - case 114: goto tr737; - case 115: goto tr738; - case 116: goto tr739; - case 117: goto tr740; - case 119: goto tr741; - case 122: goto tr742; - case 2058: goto tr743; - case 2107: goto tr744; + case 9: goto st186; + case 32: goto st186; + case 40: goto tr733; + case 41: goto tr734; + case 65: goto tr736; + case 67: goto tr737; + case 68: goto tr738; + case 69: goto tr739; + case 72: goto tr740; + case 73: goto tr741; + case 75: goto tr742; + case 76: goto tr743; + case 77: goto tr744; + case 78: goto tr745; + case 79: goto tr746; + case 80: goto tr747; + case 82: goto tr748; + case 83: goto tr749; + case 84: goto tr750; + case 85: goto tr751; + case 87: goto tr752; + case 90: goto tr753; + case 97: goto tr736; + case 99: goto tr737; + case 100: goto tr738; + case 101: goto tr739; + case 104: goto tr740; + case 105: goto tr741; + case 107: goto tr742; + case 108: goto tr743; + case 109: goto tr744; + case 110: goto tr745; + case 111: goto tr746; + case 112: goto tr747; + case 114: goto tr748; + case 115: goto tr749; + case 116: goto tr750; + case 117: goto tr751; + case 119: goto tr752; + case 122: goto tr753; + case 2058: goto tr754; + case 2107: goto tr755; } if ( 48 <= _widec && _widec <= 57 ) - goto tr724; - goto tr660; -tr724: + goto tr735; + goto tr671; +tr735: { s->number64 = 0; } @@ -26480,11 +27238,11 @@ tr724: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st184; -tr748: + goto st187; +tr759: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -26496,14 +27254,14 @@ tr748: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st184; -st184: + goto st187; +st187: if ( ++p == pe ) - goto _test_eof184; -case 184: + goto _test_eof187; +case 187: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26517,66 +27275,66 @@ case 184: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr745; - case 32: goto tr745; - case 40: goto tr746; - case 41: goto tr747; - case 68: goto tr749; - case 72: goto tr750; - case 77: goto tr751; - case 83: goto st185; - case 87: goto tr753; - case 100: goto tr749; - case 104: goto tr750; - case 109: goto tr751; - case 115: goto st185; - case 119: goto tr753; - case 2058: goto tr754; - case 2107: goto tr755; + case 9: goto tr756; + case 32: goto tr756; + case 40: goto tr757; + case 41: goto tr758; + case 68: goto tr760; + case 72: goto tr761; + case 77: goto tr762; + case 83: goto st188; + case 87: goto tr764; + case 100: goto tr760; + case 104: goto tr761; + case 109: goto tr762; + case 115: goto st188; + case 119: goto tr764; + case 2058: goto tr765; + case 2107: goto tr766; } if ( 48 <= _widec && _widec <= 57 ) - goto tr748; + goto tr759; goto tr27; -tr749: +tr760: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st185; -tr750: + goto st188; +tr761: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st185; -tr751: + goto st188; +tr762: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st185; -tr753: + goto st188; +tr764: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st185; -st185: + goto st188; +st188: if ( ++p == pe ) - goto _test_eof185; -case 185: + goto _test_eof188; +case 188: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26590,17 +27348,17 @@ case 185: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr745; - case 32: goto tr745; - case 40: goto tr746; - case 41: goto tr747; - case 2058: goto tr754; - case 2107: goto tr755; + case 9: goto tr756; + case 32: goto tr756; + case 40: goto tr757; + case 41: goto tr758; + case 2058: goto tr765; + case 2107: goto tr766; } if ( 48 <= _widec && _widec <= 57 ) - goto tr756; + goto tr767; goto tr27; -tr757: +tr768: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -26612,11 +27370,11 @@ tr757: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st186; -tr756: + goto st189; +tr767: { s->number64_tmp = s->number64; } @@ -26634,17 +27392,17 @@ tr756: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st186; -tr766: + goto st189; +tr777: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -26664,69 +27422,69 @@ tr766: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st186; -st186: + goto st189; +st189: if ( ++p == pe ) - goto _test_eof186; -case 186: + goto _test_eof189; +case 189: switch( (*p) ) { - case 68: goto tr758; - case 72: goto tr759; - case 77: goto tr760; - case 83: goto st187; - case 87: goto tr762; - case 100: goto tr758; - case 104: goto tr759; - case 109: goto tr760; - case 115: goto st187; - case 119: goto tr762; + case 68: goto tr769; + case 72: goto tr770; + case 77: goto tr771; + case 83: goto st190; + case 87: goto tr773; + case 100: goto tr769; + case 104: goto tr770; + case 109: goto tr771; + case 115: goto st190; + case 119: goto tr773; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr757; + goto tr768; goto tr27; -tr758: +tr769: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st187; -tr759: + goto st190; +tr770: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st187; -tr760: + goto st190; +tr771: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st187; -tr762: + goto st190; +tr773: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st187; -st187: + goto st190; +st190: if ( ++p == pe ) - goto _test_eof187; -case 187: + goto _test_eof190; +case 190: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26740,40 +27498,40 @@ case 187: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr763; - case 32: goto tr763; - case 40: goto tr764; - case 41: goto tr765; - case 2058: goto tr767; - case 2107: goto tr768; + case 9: goto tr774; + case 32: goto tr774; + case 40: goto tr775; + case 41: goto tr776; + case 2058: goto tr778; + case 2107: goto tr779; } if ( 48 <= _widec && _widec <= 57 ) - goto tr766; + goto tr777; goto tr27; -tr744: +tr755: { s->buffer_length = 0; } - goto st188; -tr769: + goto st191; +tr780: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st188; -tr720: + goto st191; +tr731: { s->r_class = KNOT_CLASS_IN; } { s->buffer_length = 0; } - goto st188; -st188: + goto st191; +st191: if ( ++p == pe ) - goto _test_eof188; -case 188: + goto _test_eof191; +case 191: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -26793,16 +27551,16 @@ case 188: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr770; + goto tr781; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr769; + goto tr780; goto tr39; tr24: { s->buffer_length = 0; } - goto st189; -tr4292: + goto st192; +tr4392: { s->buffer[0] = 0; s->buffer_length = 0; @@ -26810,15 +27568,15 @@ tr4292: { s->buffer_length = 0; } - goto st189; -tr771: + goto st192; +tr782: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st189; -tr4358: + goto st192; +tr4458: { NOERR; } @@ -26829,20 +27587,20 @@ tr4358: { s->buffer_length = 0; } - goto st189; -st189: + goto st192; +st192: if ( ++p == pe ) - goto _test_eof189; -case 189: + goto _test_eof192; +case 192: if ( (*p) == 10 ) - goto tr772; - goto tr771; -tr713: + goto tr783; + goto tr782; +tr724: { s->line_counter++; } - goto st1447; -tr1018: + goto st1486; +tr1029: { s->buffer[s->buffer_length++] = 0; @@ -26852,15 +27610,15 @@ tr1018: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1447; goto _out;} + {p++; cs = 1486; goto _out;} } } } { s->line_counter++; } - goto st1447; -tr907: + goto st1486; +tr918: { s->buffer[s->buffer_length++] = 0; @@ -26870,7 +27628,7 @@ tr907: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1447; goto _out;} + {p++; cs = 1486; goto _out;} } } } @@ -26880,7 +27638,7 @@ tr907: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -26893,23 +27651,23 @@ tr907: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1447; goto _out;} + {p++; cs = 1486; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1447; goto _out;} + p--; {p++; cs = 1486; goto _out;} } } - goto st1447; -tr904: + goto st1486; +tr915: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -26922,16 +27680,16 @@ tr904: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1447; goto _out;} + {p++; cs = 1486; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1447; goto _out;} + p--; {p++; cs = 1486; goto _out;} } } - goto st1447; -tr899: + goto st1486; +tr910: { s->r_owner_length = s->dname_tmp_length; } @@ -26943,7 +27701,7 @@ tr899: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -26953,7 +27711,7 @@ tr899: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -26966,34 +27724,34 @@ tr899: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1447; goto _out;} + {p++; cs = 1486; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1447; goto _out;} + p--; {p++; cs = 1486; goto _out;} } } - goto st1447; -tr4329: + goto st1486; +tr4429: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1447; -st1447: + goto st1486; +st1486: if ( ++p == pe ) - goto _test_eof1447; -case 1447: + goto _test_eof1486; +case 1486: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27007,171 +27765,171 @@ case 1447: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4308; - case 32: goto tr4308; - case 36: goto st190; - case 40: goto tr4309; - case 41: goto tr4310; - case 42: goto tr4290; - case 65: goto tr4333; - case 67: goto tr4334; - case 68: goto tr4335; - case 69: goto tr4336; - case 72: goto tr4337; - case 73: goto tr4338; - case 75: goto tr4339; - case 76: goto tr4340; - case 77: goto tr4341; - case 78: goto tr4342; - case 79: goto tr4343; - case 80: goto tr4344; - case 82: goto tr4345; - case 83: goto tr4346; - case 84: goto tr4347; - case 85: goto tr4348; - case 87: goto tr4349; - case 90: goto tr4350; - case 92: goto tr4290; - case 95: goto tr4290; - case 97: goto tr4333; - case 99: goto tr4334; - case 100: goto tr4335; - case 101: goto tr4336; - case 104: goto tr4337; - case 105: goto tr4338; - case 107: goto tr4339; - case 108: goto tr4340; - case 109: goto tr4341; - case 110: goto tr4342; - case 111: goto tr4343; - case 112: goto tr4344; - case 114: goto tr4345; - case 115: goto tr4346; - case 116: goto tr4347; - case 117: goto tr4348; - case 119: goto tr4349; - case 122: goto tr4350; - case 1802: goto tr4291; - case 1851: goto tr4292; - case 2058: goto tr4329; - case 2107: goto tr4330; + case 9: goto tr4408; + case 32: goto tr4408; + case 36: goto st193; + case 40: goto tr4409; + case 41: goto tr4410; + case 42: goto tr4390; + case 65: goto tr4433; + case 67: goto tr4434; + case 68: goto tr4435; + case 69: goto tr4436; + case 72: goto tr4437; + case 73: goto tr4438; + case 75: goto tr4439; + case 76: goto tr4440; + case 77: goto tr4441; + case 78: goto tr4442; + case 79: goto tr4443; + case 80: goto tr4444; + case 82: goto tr4445; + case 83: goto tr4446; + case 84: goto tr4447; + case 85: goto tr4448; + case 87: goto tr4449; + case 90: goto tr4450; + case 92: goto tr4390; + case 95: goto tr4390; + case 97: goto tr4433; + case 99: goto tr4434; + case 100: goto tr4435; + case 101: goto tr4436; + case 104: goto tr4437; + case 105: goto tr4438; + case 107: goto tr4439; + case 108: goto tr4440; + case 109: goto tr4441; + case 110: goto tr4442; + case 111: goto tr4443; + case 112: goto tr4444; + case 114: goto tr4445; + case 115: goto tr4446; + case 116: goto tr4447; + case 117: goto tr4448; + case 119: goto tr4449; + case 122: goto tr4450; + case 1802: goto tr4391; + case 1851: goto tr4392; + case 2058: goto tr4429; + case 2107: goto tr4430; } if ( _widec < 48 ) { if ( 45 <= _widec && _widec <= 47 ) - goto tr4290; + goto tr4390; } else if ( _widec > 57 ) { if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4290; + goto tr4390; } else if ( _widec >= 64 ) - goto tr4290; + goto tr4390; } else - goto tr4332; - goto tr4331; -tr4353: + goto tr4432; + goto tr4431; +tr4453: { NOERR; } - goto st190; -st190: - if ( ++p == pe ) - goto _test_eof190; -case 190: - switch( (*p) ) { - case 73: goto tr774; - case 79: goto tr775; - case 84: goto tr776; - case 105: goto tr774; - case 111: goto tr775; - case 116: goto tr776; - } - goto tr773; -tr774: - { - ERR(ZS_OK); - } - goto st191; -st191: - if ( ++p == pe ) - goto _test_eof191; -case 191: - switch( (*p) ) { - case 78: goto st192; - case 110: goto st192; - } - goto tr773; -st192: - if ( ++p == pe ) - goto _test_eof192; -case 192: - switch( (*p) ) { - case 67: goto st193; - case 99: goto st193; - } - goto tr773; + goto st193; st193: if ( ++p == pe ) goto _test_eof193; case 193: switch( (*p) ) { - case 76: goto st194; - case 108: goto st194; + case 73: goto tr785; + case 79: goto tr786; + case 84: goto tr787; + case 105: goto tr785; + case 111: goto tr786; + case 116: goto tr787; } - goto tr773; + goto tr784; +tr785: + { + ERR(ZS_OK); + } + goto st194; st194: if ( ++p == pe ) goto _test_eof194; case 194: switch( (*p) ) { - case 85: goto st195; - case 117: goto st195; + case 78: goto st195; + case 110: goto st195; } - goto tr773; + goto tr784; st195: if ( ++p == pe ) goto _test_eof195; case 195: switch( (*p) ) { - case 68: goto st196; - case 100: goto st196; + case 67: goto st196; + case 99: goto st196; } - goto tr773; + goto tr784; st196: if ( ++p == pe ) goto _test_eof196; case 196: switch( (*p) ) { - case 69: goto st197; - case 101: goto st197; + case 76: goto st197; + case 108: goto st197; } - goto tr773; + goto tr784; st197: if ( ++p == pe ) goto _test_eof197; case 197: switch( (*p) ) { - case 32: goto tr783; - case 59: goto tr783; + case 85: goto st198; + case 117: goto st198; + } + goto tr784; +st198: + if ( ++p == pe ) + goto _test_eof198; +case 198: + switch( (*p) ) { + case 68: goto st199; + case 100: goto st199; + } + goto tr784; +st199: + if ( ++p == pe ) + goto _test_eof199; +case 199: + switch( (*p) ) { + case 69: goto st200; + case 101: goto st200; + } + goto tr784; +st200: + if ( ++p == pe ) + goto _test_eof200; +case 200: + switch( (*p) ) { + case 32: goto tr794; + case 59: goto tr794; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr783; + goto tr794; } else if ( (*p) >= 9 ) - goto tr783; - goto tr773; -tr783: - { p--; {stack[top++] = 1448;goto st361;} } - goto st1448; -tr885: - { p--; {stack[top++] = 1448;goto st349;} } - goto st1448; -tr888: - { p--; {stack[top++] = 1448;goto st340;} } - goto st1448; -st1448: + goto tr794; + goto tr784; +tr794: + { p--; {stack[top++] = 1487;goto st364;} } + goto st1487; +tr896: + { p--; {stack[top++] = 1487;goto st352;} } + goto st1487; +tr899: + { p--; {stack[top++] = 1487;goto st343;} } + goto st1487; +st1487: if ( ++p == pe ) - goto _test_eof1448; -case 1448: + goto _test_eof1487; +case 1487: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27185,36 +27943,36 @@ case 1448: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4352; - case 32: goto tr4352; - case 36: goto tr4353; - case 40: goto tr4354; - case 41: goto tr4355; - case 42: goto tr4356; - case 92: goto tr4356; - case 95: goto tr4356; - case 1802: goto tr4357; - case 1851: goto tr4358; - case 2058: goto tr4359; - case 2107: goto tr4360; + case 9: goto tr4452; + case 32: goto tr4452; + case 36: goto tr4453; + case 40: goto tr4454; + case 41: goto tr4455; + case 42: goto tr4456; + case 92: goto tr4456; + case 95: goto tr4456; + case 1802: goto tr4457; + case 1851: goto tr4458; + case 2058: goto tr4459; + case 2107: goto tr4460; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4356; + goto tr4456; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4356; + goto tr4456; } else - goto tr4356; - goto tr4351; -tr4290: + goto tr4456; + goto tr4451; +tr4390: { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 198;goto st318;} } - goto st198; -tr4356: + { p--; {stack[top++] = 201;goto st321;} } + goto st201; +tr4456: { NOERR; } @@ -27222,12 +27980,12 @@ tr4356: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 198;goto st318;} } - goto st198; -st198: + { p--; {stack[top++] = 201;goto st321;} } + goto st201; +st201: if ( ++p == pe ) - goto _test_eof198; -case 198: + goto _test_eof201; +case 201: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27241,38 +27999,38 @@ case 198: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr784; -tr791: + goto tr795; +tr802: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st199; -tr792: + goto st202; +tr803: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st199; -tr793: + goto st202; +tr804: { s->line_counter++; } - goto st199; -tr797: + goto st202; +tr808: { s->buffer[s->buffer_length++] = 0; @@ -27282,55 +28040,55 @@ tr797: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 199; goto _out;} + {p++; cs = 202; goto _out;} } } } { s->line_counter++; } - goto st199; -tr785: + goto st202; +tr796: { s->r_owner_length = s->dname_tmp_length; } - goto st199; -tr786: + goto st202; +tr797: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st199; -tr787: + goto st202; +tr798: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st199; -tr788: + goto st202; +tr799: { s->r_owner_length = s->dname_tmp_length; } { s->line_counter++; } - goto st199; -st199: + goto st202; +st202: if ( ++p == pe ) - goto _test_eof199; -case 199: + goto _test_eof202; +case 202: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27344,10 +28102,10 @@ case 199: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st199; - case 32: goto st199; - case 40: goto tr791; - case 41: goto tr792; + case 9: goto st202; + case 32: goto st202; + case 40: goto tr802; + case 41: goto tr803; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -27384,36 +28142,36 @@ case 199: case 117: goto tr20; case 119: goto tr21; case 122: goto tr22; - case 2058: goto tr793; - case 2107: goto tr794; + case 2058: goto tr804; + case 2107: goto tr805; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; - goto tr660; -tr794: + goto tr671; +tr805: { s->buffer_length = 0; } - goto st200; -tr795: + goto st203; +tr806: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st200; -tr789: + goto st203; +tr800: { s->r_owner_length = s->dname_tmp_length; } { s->buffer_length = 0; } - goto st200; -st200: + goto st203; +st203: if ( ++p == pe ) - goto _test_eof200; -case 200: + goto _test_eof203; +case 203: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -27433,16 +28191,16 @@ case 200: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr797; + goto tr808; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr795; + goto tr806; goto st0; tr25: { s->line_counter++; } - goto st1449; -tr1016: + goto st1488; +tr1027: { s->buffer[s->buffer_length++] = 0; @@ -27452,15 +28210,15 @@ tr1016: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1449; goto _out;} + {p++; cs = 1488; goto _out;} } } } { s->line_counter++; } - goto st1449; -tr862: + goto st1488; +tr873: { s->buffer[s->buffer_length++] = 0; @@ -27470,7 +28228,7 @@ tr862: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1449; goto _out;} + {p++; cs = 1488; goto _out;} } } } @@ -27480,7 +28238,7 @@ tr862: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -27493,23 +28251,23 @@ tr862: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1449; goto _out;} + {p++; cs = 1488; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1449; goto _out;} + p--; {p++; cs = 1488; goto _out;} } } - goto st1449; -tr859: + goto st1488; +tr870: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -27522,16 +28280,16 @@ tr859: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1449; goto _out;} + {p++; cs = 1488; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1449; goto _out;} + p--; {p++; cs = 1488; goto _out;} } } - goto st1449; -tr893: + goto st1488; +tr904: { s->r_owner_length = s->dname_tmp_length; } @@ -27545,7 +28303,7 @@ tr893: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -27558,16 +28316,16 @@ tr893: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1449; goto _out;} + {p++; cs = 1488; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1449; goto _out;} + p--; {p++; cs = 1488; goto _out;} } } - goto st1449; -tr930: + goto st1488; +tr941: { s->line_counter++; } @@ -27578,7 +28336,7 @@ tr930: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -27591,16 +28349,16 @@ tr930: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1449; goto _out;} + {p++; cs = 1488; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1449; goto _out;} + p--; {p++; cs = 1488; goto _out;} } } - goto st1449; -tr933: + goto st1488; +tr944: { s->buffer[s->buffer_length++] = 0; @@ -27610,7 +28368,7 @@ tr933: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1449; goto _out;} + {p++; cs = 1488; goto _out;} } } } @@ -27624,7 +28382,7 @@ tr933: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -27637,20 +28395,20 @@ tr933: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1449; goto _out;} + {p++; cs = 1488; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1449; goto _out;} + p--; {p++; cs = 1488; goto _out;} } } - goto st1449; -tr4293: + goto st1488; +tr4393: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -27660,30 +28418,30 @@ tr4293: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1449; -tr4363: + goto st1488; +tr4463: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1449; -tr4359: + goto st1488; +tr4459: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -27693,8 +28451,8 @@ tr4359: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1449; -tr4368: + goto st1488; +tr4468: { s->buffer[0] = 0; s->buffer_length = 0; @@ -27702,7 +28460,7 @@ tr4368: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -27715,12 +28473,12 @@ tr4368: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1449; goto _out;} + {p++; cs = 1488; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1449; goto _out;} + p--; {p++; cs = 1488; goto _out;} } } { @@ -27729,11 +28487,11 @@ tr4368: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1449; -tr4395: + goto st1488; +tr4495: { s->line_counter++; } @@ -27744,7 +28502,7 @@ tr4395: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -27757,25 +28515,25 @@ tr4395: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1449; goto _out;} + {p++; cs = 1488; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1449; goto _out;} + p--; {p++; cs = 1488; goto _out;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1449; -st1449: + goto st1488; +st1488: if ( ++p == pe ) - goto _test_eof1449; -case 1449: + goto _test_eof1488; +case 1488: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27789,68 +28547,68 @@ case 1449: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4286; - case 32: goto tr4286; - case 36: goto st190; - case 40: goto tr4361; - case 41: goto tr4362; - case 42: goto tr4290; - case 65: goto tr4333; - case 67: goto tr4334; - case 68: goto tr4335; - case 69: goto tr4336; - case 72: goto tr4337; - case 73: goto tr4338; - case 75: goto tr4339; - case 76: goto tr4340; - case 77: goto tr4341; - case 78: goto tr4342; - case 79: goto tr4343; - case 80: goto tr4344; - case 82: goto tr4345; - case 83: goto tr4346; - case 84: goto tr4347; - case 85: goto tr4348; - case 87: goto tr4349; - case 90: goto tr4350; - case 92: goto tr4290; - case 95: goto tr4290; - case 97: goto tr4333; - case 99: goto tr4334; - case 100: goto tr4335; - case 101: goto tr4336; - case 104: goto tr4337; - case 105: goto tr4338; - case 107: goto tr4339; - case 108: goto tr4340; - case 109: goto tr4341; - case 110: goto tr4342; - case 111: goto tr4343; - case 112: goto tr4344; - case 114: goto tr4345; - case 115: goto tr4346; - case 116: goto tr4347; - case 117: goto tr4348; - case 119: goto tr4349; - case 122: goto tr4350; - case 1802: goto tr4291; - case 1851: goto tr4292; - case 2058: goto tr4363; - case 2107: goto tr4364; + case 9: goto tr4386; + case 32: goto tr4386; + case 36: goto st193; + case 40: goto tr4461; + case 41: goto tr4462; + case 42: goto tr4390; + case 65: goto tr4433; + case 67: goto tr4434; + case 68: goto tr4435; + case 69: goto tr4436; + case 72: goto tr4437; + case 73: goto tr4438; + case 75: goto tr4439; + case 76: goto tr4440; + case 77: goto tr4441; + case 78: goto tr4442; + case 79: goto tr4443; + case 80: goto tr4444; + case 82: goto tr4445; + case 83: goto tr4446; + case 84: goto tr4447; + case 85: goto tr4448; + case 87: goto tr4449; + case 90: goto tr4450; + case 92: goto tr4390; + case 95: goto tr4390; + case 97: goto tr4433; + case 99: goto tr4434; + case 100: goto tr4435; + case 101: goto tr4436; + case 104: goto tr4437; + case 105: goto tr4438; + case 107: goto tr4439; + case 108: goto tr4440; + case 109: goto tr4441; + case 110: goto tr4442; + case 111: goto tr4443; + case 112: goto tr4444; + case 114: goto tr4445; + case 115: goto tr4446; + case 116: goto tr4447; + case 117: goto tr4448; + case 119: goto tr4449; + case 122: goto tr4450; + case 1802: goto tr4391; + case 1851: goto tr4392; + case 2058: goto tr4463; + case 2107: goto tr4464; } if ( _widec < 48 ) { if ( 45 <= _widec && _widec <= 47 ) - goto tr4290; + goto tr4390; } else if ( _widec > 57 ) { if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4290; + goto tr4390; } else if ( _widec >= 64 ) - goto tr4290; + goto tr4390; } else - goto tr4332; - goto tr4331; -tr4332: + goto tr4432; + goto tr4431; +tr4432: { s->number64 = 0; } @@ -27865,19 +28623,19 @@ tr4332: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 201;goto st318;} } - goto st201; -st201: + { p--; {stack[top++] = 204;goto st321;} } + goto st204; +st204: if ( ++p == pe ) - goto _test_eof201; -case 201: + goto _test_eof204; +case 204: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27891,50 +28649,50 @@ case 201: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr799; - case 32: goto tr799; - case 40: goto tr800; - case 41: goto tr801; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st204; + case 83: goto st207; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st204; + case 115: goto st207; case 119: goto tr36; - case 2058: goto tr802; - case 2107: goto tr803; + case 2058: goto tr813; + case 2107: goto tr814; } if ( 48 <= _widec && _widec <= 57 ) goto tr31; - goto tr798; -tr805: + goto tr809; +tr816: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st202; -tr806: + goto st205; +tr817: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st202; -tr807: + goto st205; +tr818: { s->line_counter++; } - goto st202; -tr810: + goto st205; +tr821: { s->buffer[s->buffer_length++] = 0; @@ -27944,15 +28702,15 @@ tr810: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 202; goto _out;} + {p++; cs = 205; goto _out;} } } } { s->line_counter++; } - goto st202; -tr799: + goto st205; +tr810: { s->r_owner_length = s->dname_tmp_length; } @@ -27961,18 +28719,18 @@ tr799: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st202; -tr800: + goto st205; +tr811: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -27981,18 +28739,18 @@ tr800: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st202; -tr801: + goto st205; +tr812: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -28001,11 +28759,11 @@ tr801: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st202; -tr802: + goto st205; +tr813: { s->r_owner_length = s->dname_tmp_length; } @@ -28017,14 +28775,14 @@ tr802: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st202; -st202: + goto st205; +st205: if ( ++p == pe ) - goto _test_eof202; -case 202: + goto _test_eof205; +case 205: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28038,10 +28796,10 @@ case 202: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st202; - case 32: goto st202; - case 40: goto tr805; - case 41: goto tr806; + case 9: goto st205; + case 32: goto st205; + case 40: goto tr816; + case 41: goto tr817; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -28078,25 +28836,25 @@ case 202: case 117: goto tr20; case 119: goto tr21; case 122: goto tr22; - case 2058: goto tr807; - case 2107: goto tr808; + case 2058: goto tr818; + case 2107: goto tr819; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; - goto tr660; -tr808: + goto tr671; +tr819: { s->buffer_length = 0; } - goto st203; -tr809: + goto st206; +tr820: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st203; -tr803: + goto st206; +tr814: { s->r_owner_length = s->dname_tmp_length; } @@ -28108,14 +28866,14 @@ tr803: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st203; -st203: + goto st206; +st206: if ( ++p == pe ) - goto _test_eof203; -case 203: + goto _test_eof206; +case 206: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -28135,50 +28893,50 @@ case 203: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr810; + goto tr821; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr809; + goto tr820; goto tr39; tr32: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st204; + goto st207; tr33: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st204; + goto st207; tr34: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st204; + goto st207; tr36: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st204; -st204: + goto st207; +st207: if ( ++p == pe ) - goto _test_eof204; -case 204: + goto _test_eof207; +case 207: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28200,9 +28958,9 @@ case 204: case 2107: goto tr38; } if ( 48 <= _widec && _widec <= 57 ) - goto tr811; + goto tr822; goto tr27; -tr812: +tr823: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -28214,11 +28972,11 @@ tr812: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st205; -tr811: + goto st208; +tr822: { s->number64_tmp = s->number64; } @@ -28236,17 +28994,17 @@ tr811: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st205; -tr821: + goto st208; +tr832: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -28266,69 +29024,69 @@ tr821: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st205; -st205: + goto st208; +st208: if ( ++p == pe ) - goto _test_eof205; -case 205: + goto _test_eof208; +case 208: switch( (*p) ) { - case 68: goto tr813; - case 72: goto tr814; - case 77: goto tr815; - case 83: goto st206; - case 87: goto tr817; - case 100: goto tr813; - case 104: goto tr814; - case 109: goto tr815; - case 115: goto st206; - case 119: goto tr817; + case 68: goto tr824; + case 72: goto tr825; + case 77: goto tr826; + case 83: goto st209; + case 87: goto tr828; + case 100: goto tr824; + case 104: goto tr825; + case 109: goto tr826; + case 115: goto st209; + case 119: goto tr828; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr812; + goto tr823; goto tr27; -tr813: +tr824: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st206; -tr814: + goto st209; +tr825: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st206; -tr815: + goto st209; +tr826: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st206; -tr817: + goto st209; +tr828: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st206; -st206: + goto st209; +st209: if ( ++p == pe ) - goto _test_eof206; -case 206: + goto _test_eof209; +case 209: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28342,48 +29100,48 @@ case 206: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr818; - case 32: goto tr818; - case 40: goto tr819; - case 41: goto tr820; - case 2058: goto tr822; - case 2107: goto tr823; + case 9: goto tr829; + case 32: goto tr829; + case 40: goto tr830; + case 41: goto tr831; + case 2058: goto tr833; + case 2107: goto tr834; } if ( 48 <= _widec && _widec <= 57 ) - goto tr821; + goto tr832; goto tr27; tr62: { s->buffer_length = 0; } - goto st207; + goto st210; tr38: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st207; -tr824: + goto st210; +tr835: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st207; -tr823: + goto st210; +tr834: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -28391,17 +29149,17 @@ tr823: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st207; -st207: + goto st210; +st210: if ( ++p == pe ) - goto _test_eof207; -case 207: + goto _test_eof210; +case 210: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -28421,11 +29179,11 @@ case 207: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr825; + goto tr836; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr824; + goto tr835; goto tr39; -tr4311: +tr4411: { s->r_class = s->default_class; } @@ -28433,9 +29191,9 @@ tr4311: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 208;goto st318;} } - goto st208; -tr4333: + { p--; {stack[top++] = 211;goto st321;} } + goto st211; +tr4433: { s->r_class = s->default_class; } @@ -28446,12 +29204,12 @@ tr4333: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 208;goto st318;} } - goto st208; -st208: + { p--; {stack[top++] = 211;goto st321;} } + goto st211; +st211: if ( ++p == pe ) - goto _test_eof208; -case 208: + goto _test_eof211; +case 211: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28469,48 +29227,48 @@ case 208: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr827; - case 32: goto tr827; - case 40: goto tr828; - case 41: goto tr829; - case 65: goto st274; - case 70: goto st277; - case 80: goto st281; - case 97: goto st274; - case 102: goto st277; - case 112: goto st281; - case 3082: goto tr830; - case 3131: goto tr831; + case 9: goto tr838; + case 32: goto tr838; + case 40: goto tr839; + case 41: goto tr840; + case 65: goto st277; + case 70: goto st280; + case 80: goto st284; + case 97: goto st277; + case 102: goto st280; + case 112: goto st284; + case 3082: goto tr841; + case 3131: goto tr842; case 3338: goto tr72; case 3387: goto tr72; - case 3594: goto tr832; - case 3643: goto tr833; + case 3594: goto tr843; + case 3643: goto tr844; } - goto tr826; -tr835: + goto tr837; +tr846: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st209; -tr836: + goto st212; +tr847: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st209; -tr837: + goto st212; +tr848: { s->line_counter++; } - goto st209; -tr1002: + goto st212; +tr1013: { s->buffer[s->buffer_length++] = 0; @@ -28520,15 +29278,15 @@ tr1002: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 209; goto _out;} + {p++; cs = 212; goto _out;} } } } { s->line_counter++; } - goto st209; -tr827: + goto st212; +tr838: { s->r_owner_length = s->dname_tmp_length; } @@ -28536,15 +29294,15 @@ tr827: { rdata_tail = s->r_data; } - goto st209; -tr828: + goto st212; +tr839: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -28552,15 +29310,15 @@ tr828: { rdata_tail = s->r_data; } - goto st209; -tr829: + goto st212; +tr840: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -28568,8 +29326,8 @@ tr829: { rdata_tail = s->r_data; } - goto st209; -tr830: + goto st212; +tr841: { s->r_owner_length = s->dname_tmp_length; } @@ -28580,11 +29338,11 @@ tr830: { rdata_tail = s->r_data; } - goto st209; -st209: + goto st212; +st212: if ( ++p == pe ) - goto _test_eof209; -case 209: + goto _test_eof212; +case 212: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28602,10 +29360,10 @@ case 209: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st209; - case 32: goto st209; - case 40: goto tr835; - case 41: goto tr836; + case 9: goto st212; + case 32: goto st212; + case 40: goto tr846; + case 41: goto tr847; case 58: goto tr75; case 65: goto tr124; case 67: goto tr125; @@ -28644,12 +29402,12 @@ case 209: case 117: goto tr139; case 119: goto tr140; case 122: goto tr141; - case 3082: goto tr837; - case 3131: goto tr838; + case 3082: goto tr848; + case 3131: goto tr849; case 3338: goto tr75; case 3387: goto tr75; - case 3594: goto tr839; - case 3643: goto tr840; + case 3594: goto tr850; + case 3643: goto tr851; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -28662,7 +29420,7 @@ case 209: goto tr123; } else goto tr75; - goto tr662; + goto tr673; tr124: { s->r_class = s->default_class; @@ -28674,96 +29432,98 @@ tr124: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 210;goto st886;} + {stack[top++] = 213;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 210;goto st888;} + {stack[top++] = 213;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 210;goto st890;} + {stack[top++] = 213;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 210;goto st922;} + {stack[top++] = 213;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 210;goto st927;} + {stack[top++] = 213;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 210;goto st932;} + {stack[top++] = 213;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 210;goto st937;} + {stack[top++] = 213;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 210;goto st941;} + {stack[top++] = 213;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 210;goto st943;} + {stack[top++] = 213;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 210;goto st998;} + {stack[top++] = 213;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 210;goto st1009;} + {stack[top++] = 213;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 210;goto st1026;} + {stack[top++] = 213;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 210;goto st1037;} + {stack[top++] = 213;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 210;goto st1048;} + {stack[top++] = 213;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 210;goto st1061;} + {stack[top++] = 213;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 210;goto st1071;} + {stack[top++] = 213;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 210;goto st1110;} + {stack[top++] = 213;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 210;goto st1302;} + {stack[top++] = 213;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 210;goto st1305;} + {stack[top++] = 213;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 210;goto st1316;} + {stack[top++] = 213;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 210;goto st1318;} + {stack[top++] = 213;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 210;goto st1347;} + {stack[top++] = 213;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 210;goto st1360;} + {stack[top++] = 213;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 210;goto st1373;} + {stack[top++] = 213;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 210;goto st1379;} + {stack[top++] = 213;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 210;goto st1397;} + {stack[top++] = 213;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 210;goto st1392;} + {stack[top++] = 213;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 210;goto st1410;} + {stack[top++] = 213;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 210;goto st1416;} + {stack[top++] = 213;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 210;goto st1422;} + {stack[top++] = 213;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 210;goto st1430;} + {stack[top++] = 213;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 210;goto st1438;} + {stack[top++] = 213;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 213;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st210; -st210: + goto st213; +st213: if ( ++p == pe ) - goto _test_eof210; -case 210: + goto _test_eof213; +case 213: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28781,45 +29541,45 @@ case 210: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr842; - case 32: goto tr842; - case 40: goto tr843; - case 41: goto tr844; - case 65: goto st274; - case 70: goto st277; - case 80: goto st281; - case 97: goto st274; - case 102: goto st277; - case 112: goto st281; + case 9: goto tr853; + case 32: goto tr853; + case 40: goto tr854; + case 41: goto tr855; + case 65: goto st277; + case 70: goto st280; + case 80: goto st284; + case 97: goto st277; + case 102: goto st280; + case 112: goto st284; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr845; - case 3131: goto tr846; - case 3338: goto tr847; - case 3387: goto tr848; - case 3594: goto tr849; - case 3643: goto tr850; - } - goto tr841; -tr852: + case 3082: goto tr856; + case 3131: goto tr857; + case 3338: goto tr858; + case 3387: goto tr859; + case 3594: goto tr860; + case 3643: goto tr861; + } + goto tr852; +tr863: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st211; -tr853: + goto st214; +tr864: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st211; -tr842: + goto st214; +tr853: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -28828,8 +29588,8 @@ tr842: s->buffer[0] = 0; s->buffer_length = 0; } - goto st211; -tr843: + goto st214; +tr854: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -28837,7 +29597,7 @@ tr843: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -28845,8 +29605,8 @@ tr843: s->buffer[0] = 0; s->buffer_length = 0; } - goto st211; -tr844: + goto st214; +tr855: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -28854,7 +29614,7 @@ tr844: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -28862,11 +29622,11 @@ tr844: s->buffer[0] = 0; s->buffer_length = 0; } - goto st211; -st211: + goto st214; +st214: if ( ++p == pe ) - goto _test_eof211; -case 211: + goto _test_eof214; +case 214: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28884,18 +29644,18 @@ case 211: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st211; - case 32: goto st211; - case 40: goto tr852; - case 41: goto tr853; + case 9: goto st214; + case 32: goto st214; + case 40: goto tr863; + case 41: goto tr864; case 92: goto tr80; case 2826: goto tr95; case 2875: goto tr96; - case 3082: goto tr854; + case 3082: goto tr865; case 3131: goto tr113; case 3338: goto tr114; case 3387: goto tr115; - case 3594: goto tr855; + case 3594: goto tr866; case 3643: goto tr116; } if ( _widec < 11 ) { @@ -28912,89 +29672,91 @@ tr107: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1450;goto st886;} + {stack[top++] = 1489;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1450;goto st888;} + {stack[top++] = 1489;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1450;goto st890;} + {stack[top++] = 1489;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1450;goto st922;} + {stack[top++] = 1489;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1450;goto st927;} + {stack[top++] = 1489;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1450;goto st932;} + {stack[top++] = 1489;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1450;goto st937;} + {stack[top++] = 1489;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1450;goto st941;} + {stack[top++] = 1489;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1450;goto st943;} + {stack[top++] = 1489;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1450;goto st998;} + {stack[top++] = 1489;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1450;goto st1009;} + {stack[top++] = 1489;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1450;goto st1026;} + {stack[top++] = 1489;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 1450;goto st1037;} + {stack[top++] = 1489;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1450;goto st1048;} + {stack[top++] = 1489;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1450;goto st1061;} + {stack[top++] = 1489;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1450;goto st1071;} + {stack[top++] = 1489;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1450;goto st1110;} + {stack[top++] = 1489;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1450;goto st1302;} + {stack[top++] = 1489;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1450;goto st1305;} + {stack[top++] = 1489;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1450;goto st1316;} + {stack[top++] = 1489;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1450;goto st1318;} + {stack[top++] = 1489;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1450;goto st1347;} + {stack[top++] = 1489;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1450;goto st1360;} + {stack[top++] = 1489;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1450;goto st1373;} + {stack[top++] = 1489;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1450;goto st1379;} + {stack[top++] = 1489;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1450;goto st1397;} + {stack[top++] = 1489;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 1450;goto st1392;} + {stack[top++] = 1489;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1450;goto st1410;} + {stack[top++] = 1489;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1450;goto st1416;} + {stack[top++] = 1489;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 1450;goto st1422;} + {stack[top++] = 1489;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1450;goto st1430;} + {stack[top++] = 1489;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1450;goto st1438;} + {stack[top++] = 1489;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 1489;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { @@ -29004,7 +29766,7 @@ tr107: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -29017,112 +29779,114 @@ tr107: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1450; goto _out;} + {p++; cs = 1489; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1450; goto _out;} + p--; {p++; cs = 1489; goto _out;} } } { s->line_counter++; } - goto st1450; + goto st1489; tr114: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1450;goto st886;} + {stack[top++] = 1489;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1450;goto st888;} + {stack[top++] = 1489;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1450;goto st890;} + {stack[top++] = 1489;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1450;goto st922;} + {stack[top++] = 1489;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1450;goto st927;} + {stack[top++] = 1489;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1450;goto st932;} + {stack[top++] = 1489;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1450;goto st937;} + {stack[top++] = 1489;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1450;goto st941;} + {stack[top++] = 1489;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1450;goto st943;} + {stack[top++] = 1489;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1450;goto st998;} + {stack[top++] = 1489;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1450;goto st1009;} + {stack[top++] = 1489;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1450;goto st1026;} + {stack[top++] = 1489;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 1450;goto st1037;} + {stack[top++] = 1489;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1450;goto st1048;} + {stack[top++] = 1489;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1450;goto st1061;} + {stack[top++] = 1489;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1450;goto st1071;} + {stack[top++] = 1489;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1450;goto st1110;} + {stack[top++] = 1489;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1450;goto st1302;} + {stack[top++] = 1489;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1450;goto st1305;} + {stack[top++] = 1489;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1450;goto st1316;} + {stack[top++] = 1489;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1450;goto st1318;} + {stack[top++] = 1489;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1450;goto st1347;} + {stack[top++] = 1489;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1450;goto st1360;} + {stack[top++] = 1489;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1450;goto st1373;} + {stack[top++] = 1489;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1450;goto st1379;} + {stack[top++] = 1489;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1450;goto st1397;} + {stack[top++] = 1489;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 1450;goto st1392;} + {stack[top++] = 1489;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1450;goto st1410;} + {stack[top++] = 1489;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1450;goto st1416;} + {stack[top++] = 1489;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 1450;goto st1422;} + {stack[top++] = 1489;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1450;goto st1430;} + {stack[top++] = 1489;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1450;goto st1438;} + {stack[top++] = 1489;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 1489;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -29135,113 +29899,115 @@ tr114: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1450; goto _out;} + {p++; cs = 1489; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1450; goto _out;} + p--; {p++; cs = 1489; goto _out;} } } { s->line_counter++; } - goto st1450; + goto st1489; tr144: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1450;goto st886;} + {stack[top++] = 1489;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1450;goto st888;} + {stack[top++] = 1489;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1450;goto st890;} + {stack[top++] = 1489;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1450;goto st922;} + {stack[top++] = 1489;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1450;goto st927;} + {stack[top++] = 1489;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1450;goto st932;} + {stack[top++] = 1489;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1450;goto st937;} + {stack[top++] = 1489;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1450;goto st941;} + {stack[top++] = 1489;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1450;goto st943;} + {stack[top++] = 1489;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1450;goto st998;} + {stack[top++] = 1489;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1450;goto st1009;} + {stack[top++] = 1489;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1450;goto st1026;} + {stack[top++] = 1489;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 1450;goto st1037;} + {stack[top++] = 1489;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1450;goto st1048;} + {stack[top++] = 1489;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1450;goto st1061;} + {stack[top++] = 1489;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1450;goto st1071;} + {stack[top++] = 1489;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1450;goto st1110;} + {stack[top++] = 1489;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1450;goto st1302;} + {stack[top++] = 1489;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1450;goto st1305;} + {stack[top++] = 1489;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1450;goto st1316;} + {stack[top++] = 1489;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1450;goto st1318;} + {stack[top++] = 1489;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1450;goto st1347;} + {stack[top++] = 1489;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1450;goto st1360;} + {stack[top++] = 1489;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1450;goto st1373;} + {stack[top++] = 1489;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1450;goto st1379;} + {stack[top++] = 1489;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1450;goto st1397;} + {stack[top++] = 1489;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 1450;goto st1392;} + {stack[top++] = 1489;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1450;goto st1410;} + {stack[top++] = 1489;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1450;goto st1416;} + {stack[top++] = 1489;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 1450;goto st1422;} + {stack[top++] = 1489;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1450;goto st1430;} + {stack[top++] = 1489;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1450;goto st1438;} + {stack[top++] = 1489;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 1489;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->line_counter++; } - goto st1450; -tr847: + goto st1489; +tr858: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -29250,89 +30016,91 @@ tr847: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1450;goto st886;} + {stack[top++] = 1489;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1450;goto st888;} + {stack[top++] = 1489;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1450;goto st890;} + {stack[top++] = 1489;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1450;goto st922;} + {stack[top++] = 1489;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1450;goto st927;} + {stack[top++] = 1489;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1450;goto st932;} + {stack[top++] = 1489;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1450;goto st937;} + {stack[top++] = 1489;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1450;goto st941;} + {stack[top++] = 1489;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1450;goto st943;} + {stack[top++] = 1489;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1450;goto st998;} + {stack[top++] = 1489;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1450;goto st1009;} + {stack[top++] = 1489;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1450;goto st1026;} + {stack[top++] = 1489;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 1450;goto st1037;} + {stack[top++] = 1489;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1450;goto st1048;} + {stack[top++] = 1489;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1450;goto st1061;} + {stack[top++] = 1489;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1450;goto st1071;} + {stack[top++] = 1489;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1450;goto st1110;} + {stack[top++] = 1489;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1450;goto st1302;} + {stack[top++] = 1489;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1450;goto st1305;} + {stack[top++] = 1489;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1450;goto st1316;} + {stack[top++] = 1489;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1450;goto st1318;} + {stack[top++] = 1489;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1450;goto st1347;} + {stack[top++] = 1489;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1450;goto st1360;} + {stack[top++] = 1489;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1450;goto st1373;} + {stack[top++] = 1489;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1450;goto st1379;} + {stack[top++] = 1489;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1450;goto st1397;} + {stack[top++] = 1489;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 1450;goto st1392;} + {stack[top++] = 1489;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1450;goto st1410;} + {stack[top++] = 1489;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1450;goto st1416;} + {stack[top++] = 1489;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 1450;goto st1422;} + {stack[top++] = 1489;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1450;goto st1430;} + {stack[top++] = 1489;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1450;goto st1438;} + {stack[top++] = 1489;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 1489;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { @@ -29342,7 +30110,7 @@ tr847: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -29355,106 +30123,108 @@ tr847: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1450; goto _out;} + {p++; cs = 1489; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1450; goto _out;} + p--; {p++; cs = 1489; goto _out;} } } { s->line_counter++; } - goto st1450; -tr4303: + goto st1489; +tr4403: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1450;goto st886;} + {stack[top++] = 1489;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1450;goto st888;} + {stack[top++] = 1489;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1450;goto st890;} + {stack[top++] = 1489;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1450;goto st922;} + {stack[top++] = 1489;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1450;goto st927;} + {stack[top++] = 1489;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1450;goto st932;} + {stack[top++] = 1489;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1450;goto st937;} + {stack[top++] = 1489;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1450;goto st941;} + {stack[top++] = 1489;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1450;goto st943;} + {stack[top++] = 1489;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1450;goto st998;} + {stack[top++] = 1489;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1450;goto st1009;} + {stack[top++] = 1489;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1450;goto st1026;} + {stack[top++] = 1489;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 1450;goto st1037;} + {stack[top++] = 1489;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1450;goto st1048;} + {stack[top++] = 1489;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1450;goto st1061;} + {stack[top++] = 1489;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1450;goto st1071;} + {stack[top++] = 1489;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1450;goto st1110;} + {stack[top++] = 1489;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1450;goto st1302;} + {stack[top++] = 1489;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1450;goto st1305;} + {stack[top++] = 1489;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1450;goto st1316;} + {stack[top++] = 1489;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1450;goto st1318;} + {stack[top++] = 1489;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1450;goto st1347;} + {stack[top++] = 1489;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1450;goto st1360;} + {stack[top++] = 1489;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1450;goto st1373;} + {stack[top++] = 1489;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1450;goto st1379;} + {stack[top++] = 1489;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1450;goto st1397;} + {stack[top++] = 1489;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 1450;goto st1392;} + {stack[top++] = 1489;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1450;goto st1410;} + {stack[top++] = 1489;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1450;goto st1416;} + {stack[top++] = 1489;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 1450;goto st1422;} + {stack[top++] = 1489;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1450;goto st1430;} + {stack[top++] = 1489;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1450;goto st1438;} + {stack[top++] = 1489;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 1489;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { @@ -29464,11 +30234,11 @@ tr4303: { s->line_counter++; } - goto st1450; -st1450: + goto st1489; +st1489: if ( ++p == pe ) - goto _test_eof1450; -case 1450: + goto _test_eof1489; +case 1489: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29482,57 +30252,57 @@ case 1450: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4365; - case 32: goto tr4365; - case 36: goto st190; - case 40: goto tr4366; - case 41: goto tr4367; - case 42: goto tr4290; - case 92: goto tr4290; - case 95: goto tr4290; + case 9: goto tr4465; + case 32: goto tr4465; + case 36: goto st193; + case 40: goto tr4466; + case 41: goto tr4467; + case 42: goto tr4390; + case 92: goto tr4390; + case 95: goto tr4390; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr4368; - case 2107: goto tr4369; + case 2058: goto tr4468; + case 2107: goto tr4469; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4290; + goto tr4390; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4290; + goto tr4390; } else - goto tr4290; - goto tr889; -tr857: + goto tr4390; + goto tr900; +tr868: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st212; -tr858: + goto st215; +tr869: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st212; -tr927: + goto st215; +tr938: { s->buffer[0] = 0; s->buffer_length = 0; } - goto st212; -tr928: + goto st215; +tr939: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -29540,12 +30310,12 @@ tr928: s->buffer[0] = 0; s->buffer_length = 0; } - goto st212; -tr929: + goto st215; +tr940: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -29553,8 +30323,8 @@ tr929: s->buffer[0] = 0; s->buffer_length = 0; } - goto st212; -tr890: + goto st215; +tr901: { s->r_owner_length = s->dname_tmp_length; } @@ -29562,15 +30332,15 @@ tr890: s->buffer[0] = 0; s->buffer_length = 0; } - goto st212; -tr891: + goto st215; +tr902: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -29578,15 +30348,15 @@ tr891: s->buffer[0] = 0; s->buffer_length = 0; } - goto st212; -tr892: + goto st215; +tr903: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -29594,8 +30364,8 @@ tr892: s->buffer[0] = 0; s->buffer_length = 0; } - goto st212; -tr4365: + goto st215; +tr4465: { s->buffer[0] = 0; s->buffer_length = 0; @@ -29603,11 +30373,11 @@ tr4365: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st212; -tr4366: + goto st215; +tr4466: { s->buffer[0] = 0; s->buffer_length = 0; @@ -29615,18 +30385,18 @@ tr4366: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st212; -tr4367: + goto st215; +tr4467: { s->buffer[0] = 0; s->buffer_length = 0; @@ -29634,21 +30404,21 @@ tr4367: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st212; -st212: + goto st215; +st215: if ( ++p == pe ) - goto _test_eof212; -case 212: + goto _test_eof215; +case 215: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29662,10 +30432,10 @@ case 212: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st212; - case 32: goto st212; - case 40: goto tr857; - case 41: goto tr858; + case 9: goto st215; + case 32: goto st215; + case 40: goto tr868; + case 41: goto tr869; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -29704,25 +30474,25 @@ case 212: case 122: goto tr22; case 1802: goto tr95; case 1851: goto tr96; - case 2058: goto tr859; - case 2107: goto tr860; + case 2058: goto tr870; + case 2107: goto tr871; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; goto tr0; -tr860: +tr871: { s->buffer_length = 0; } - goto st213; -tr861: + goto st216; +tr872: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st213; -tr931: + goto st216; +tr942: { s->buffer_length = 0; } @@ -29730,8 +30500,8 @@ tr931: s->buffer[0] = 0; s->buffer_length = 0; } - goto st213; -tr936: + goto st216; +tr947: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -29744,8 +30514,8 @@ tr936: { s->buffer_length = 0; } - goto st213; -tr940: + goto st216; +tr951: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -29754,8 +30524,8 @@ tr940: { s->buffer_length = 0; } - goto st213; -tr894: + goto st216; +tr905: { s->r_owner_length = s->dname_tmp_length; } @@ -29766,8 +30536,8 @@ tr894: s->buffer[0] = 0; s->buffer_length = 0; } - goto st213; -tr4369: + goto st216; +tr4469: { s->buffer[0] = 0; s->buffer_length = 0; @@ -29778,14 +30548,14 @@ tr4369: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st213; -st213: + goto st216; +st216: if ( ++p == pe ) - goto _test_eof213; -case 213: + goto _test_eof216; +case 216: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -29806,11 +30576,11 @@ case 213: } switch( _widec ) { case 1802: goto tr98; - case 2058: goto tr862; + case 2058: goto tr873; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr861; + goto tr872; } else if ( _widec >= 1664 ) goto tr97; goto tr91; @@ -29819,89 +30589,91 @@ tr108: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 214;goto st886;} + {stack[top++] = 217;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 214;goto st888;} + {stack[top++] = 217;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 214;goto st890;} + {stack[top++] = 217;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 214;goto st922;} + {stack[top++] = 217;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 214;goto st927;} + {stack[top++] = 217;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 214;goto st932;} + {stack[top++] = 217;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 214;goto st937;} + {stack[top++] = 217;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 214;goto st941;} + {stack[top++] = 217;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 214;goto st943;} + {stack[top++] = 217;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 214;goto st998;} + {stack[top++] = 217;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 214;goto st1009;} + {stack[top++] = 217;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 214;goto st1026;} + {stack[top++] = 217;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 214;goto st1037;} + {stack[top++] = 217;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 214;goto st1048;} + {stack[top++] = 217;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 214;goto st1061;} + {stack[top++] = 217;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 214;goto st1071;} + {stack[top++] = 217;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 214;goto st1110;} + {stack[top++] = 217;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 214;goto st1302;} + {stack[top++] = 217;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 214;goto st1305;} + {stack[top++] = 217;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 214;goto st1316;} + {stack[top++] = 217;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 214;goto st1318;} + {stack[top++] = 217;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 214;goto st1347;} + {stack[top++] = 217;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 214;goto st1360;} + {stack[top++] = 217;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 214;goto st1373;} + {stack[top++] = 217;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 214;goto st1379;} + {stack[top++] = 217;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 214;goto st1397;} + {stack[top++] = 217;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 214;goto st1392;} + {stack[top++] = 217;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 214;goto st1410;} + {stack[top++] = 217;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 214;goto st1416;} + {stack[top++] = 217;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 214;goto st1422;} + {stack[top++] = 217;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 214;goto st1430;} + {stack[top++] = 217;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 214;goto st1438;} + {stack[top++] = 217;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 217;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { @@ -29911,102 +30683,104 @@ tr108: { s->buffer_length = 0; } - goto st214; + goto st217; tr115: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 214;goto st886;} + {stack[top++] = 217;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 214;goto st888;} + {stack[top++] = 217;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 214;goto st890;} + {stack[top++] = 217;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 214;goto st922;} + {stack[top++] = 217;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 214;goto st927;} + {stack[top++] = 217;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 214;goto st932;} + {stack[top++] = 217;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 214;goto st937;} + {stack[top++] = 217;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 214;goto st941;} + {stack[top++] = 217;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 214;goto st943;} + {stack[top++] = 217;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 214;goto st998;} + {stack[top++] = 217;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 214;goto st1009;} + {stack[top++] = 217;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 214;goto st1026;} + {stack[top++] = 217;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 214;goto st1037;} + {stack[top++] = 217;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 214;goto st1048;} + {stack[top++] = 217;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 214;goto st1061;} + {stack[top++] = 217;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 214;goto st1071;} + {stack[top++] = 217;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 214;goto st1110;} + {stack[top++] = 217;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 214;goto st1302;} + {stack[top++] = 217;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 214;goto st1305;} + {stack[top++] = 217;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 214;goto st1316;} + {stack[top++] = 217;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 214;goto st1318;} + {stack[top++] = 217;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 214;goto st1347;} + {stack[top++] = 217;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 214;goto st1360;} + {stack[top++] = 217;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 214;goto st1373;} + {stack[top++] = 217;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 214;goto st1379;} + {stack[top++] = 217;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 214;goto st1397;} + {stack[top++] = 217;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 214;goto st1392;} + {stack[top++] = 217;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 214;goto st1410;} + {stack[top++] = 217;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 214;goto st1416;} + {stack[top++] = 217;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 214;goto st1422;} + {stack[top++] = 217;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 214;goto st1430;} + {stack[top++] = 217;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 214;goto st1438;} + {stack[top++] = 217;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 217;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->buffer_length = 0; } - goto st214; -tr848: + goto st217; +tr859: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -30015,89 +30789,91 @@ tr848: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 214;goto st886;} + {stack[top++] = 217;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 214;goto st888;} + {stack[top++] = 217;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 214;goto st890;} + {stack[top++] = 217;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 214;goto st922;} + {stack[top++] = 217;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 214;goto st927;} + {stack[top++] = 217;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 214;goto st932;} + {stack[top++] = 217;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 214;goto st937;} + {stack[top++] = 217;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 214;goto st941;} + {stack[top++] = 217;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 214;goto st943;} + {stack[top++] = 217;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 214;goto st998;} + {stack[top++] = 217;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 214;goto st1009;} + {stack[top++] = 217;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 214;goto st1026;} + {stack[top++] = 217;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 214;goto st1037;} + {stack[top++] = 217;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 214;goto st1048;} + {stack[top++] = 217;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 214;goto st1061;} + {stack[top++] = 217;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 214;goto st1071;} + {stack[top++] = 217;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 214;goto st1110;} + {stack[top++] = 217;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 214;goto st1302;} + {stack[top++] = 217;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 214;goto st1305;} + {stack[top++] = 217;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 214;goto st1316;} + {stack[top++] = 217;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 214;goto st1318;} + {stack[top++] = 217;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 214;goto st1347;} + {stack[top++] = 217;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 214;goto st1360;} + {stack[top++] = 217;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 214;goto st1373;} + {stack[top++] = 217;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 214;goto st1379;} + {stack[top++] = 217;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 214;goto st1397;} + {stack[top++] = 217;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 214;goto st1392;} + {stack[top++] = 217;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 214;goto st1410;} + {stack[top++] = 217;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 214;goto st1416;} + {stack[top++] = 217;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 214;goto st1422;} + {stack[top++] = 217;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 214;goto st1430;} + {stack[top++] = 217;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 214;goto st1438;} + {stack[top++] = 217;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 217;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { @@ -30107,11 +30883,11 @@ tr848: { s->buffer_length = 0; } - goto st214; -st214: + goto st217; +st217: if ( ++p == pe ) - goto _test_eof214; -case 214: + goto _test_eof217; +case 217: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30125,14 +30901,14 @@ case 214: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr863; - case 32: goto tr863; - case 40: goto tr864; - case 41: goto tr865; - case 1802: goto tr866; - case 1851: goto tr867; - case 2058: goto tr866; - case 2107: goto tr867; + case 9: goto tr874; + case 32: goto tr874; + case 40: goto tr875; + case 41: goto tr876; + case 1802: goto tr877; + case 1851: goto tr878; + case 2058: goto tr877; + case 2107: goto tr878; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -30143,14 +30919,14 @@ case 214: } else goto tr97; goto tr85; -tr868: +tr879: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st215; -tr863: + goto st218; +tr874: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30160,8 +30936,8 @@ tr863: s->buffer[s->buffer_length++] = (*p); } } - goto st215; -tr864: + goto st218; +tr875: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30169,7 +30945,7 @@ tr864: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -30178,8 +30954,8 @@ tr864: s->buffer[s->buffer_length++] = (*p); } } - goto st215; -tr865: + goto st218; +tr876: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30187,7 +30963,7 @@ tr865: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -30196,12 +30972,12 @@ tr865: s->buffer[s->buffer_length++] = (*p); } } - goto st215; -tr869: + goto st218; +tr880: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -30210,12 +30986,12 @@ tr869: s->buffer[s->buffer_length++] = (*p); } } - goto st215; -tr870: + goto st218; +tr881: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -30224,11 +31000,11 @@ tr870: s->buffer[s->buffer_length++] = (*p); } } - goto st215; -st215: + goto st218; +st218: if ( ++p == pe ) - goto _test_eof215; -case 215: + goto _test_eof218; +case 218: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30242,14 +31018,14 @@ case 215: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr868; - case 32: goto tr868; - case 40: goto tr869; - case 41: goto tr870; + case 9: goto tr879; + case 32: goto tr879; + case 40: goto tr880; + case 41: goto tr881; case 1802: goto tr98; - case 1851: goto tr871; + case 1851: goto tr882; case 2058: goto tr98; - case 2107: goto tr871; + case 2107: goto tr882; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -30260,7 +31036,7 @@ case 215: } else goto tr97; goto tr91; -tr849: +tr860: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -30272,89 +31048,91 @@ tr849: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1451;goto st886;} + {stack[top++] = 1490;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1451;goto st888;} + {stack[top++] = 1490;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1451;goto st890;} + {stack[top++] = 1490;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1451;goto st922;} + {stack[top++] = 1490;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1451;goto st927;} + {stack[top++] = 1490;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1451;goto st932;} + {stack[top++] = 1490;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1451;goto st937;} + {stack[top++] = 1490;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1451;goto st941;} + {stack[top++] = 1490;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1451;goto st943;} + {stack[top++] = 1490;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1451;goto st998;} + {stack[top++] = 1490;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1451;goto st1009;} + {stack[top++] = 1490;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1451;goto st1026;} + {stack[top++] = 1490;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 1451;goto st1037;} + {stack[top++] = 1490;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1451;goto st1048;} + {stack[top++] = 1490;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1451;goto st1061;} + {stack[top++] = 1490;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1451;goto st1071;} + {stack[top++] = 1490;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1451;goto st1110;} + {stack[top++] = 1490;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1451;goto st1302;} + {stack[top++] = 1490;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1451;goto st1305;} + {stack[top++] = 1490;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1451;goto st1316;} + {stack[top++] = 1490;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1451;goto st1318;} + {stack[top++] = 1490;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1451;goto st1347;} + {stack[top++] = 1490;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1451;goto st1360;} + {stack[top++] = 1490;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1451;goto st1373;} + {stack[top++] = 1490;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1451;goto st1379;} + {stack[top++] = 1490;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1451;goto st1397;} + {stack[top++] = 1490;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 1451;goto st1392;} + {stack[top++] = 1490;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1451;goto st1410;} + {stack[top++] = 1490;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1451;goto st1416;} + {stack[top++] = 1490;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 1451;goto st1422;} + {stack[top++] = 1490;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1451;goto st1430;} + {stack[top++] = 1490;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1451;goto st1438;} + {stack[top++] = 1490;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 1490;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { @@ -30364,7 +31142,7 @@ tr849: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -30377,16 +31155,16 @@ tr849: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1451; goto _out;} + {p++; cs = 1490; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1451; goto _out;} + p--; {p++; cs = 1490; goto _out;} } } - goto st1451; -tr855: + goto st1490; +tr866: { s->line_counter++; } @@ -30394,95 +31172,97 @@ tr855: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1451;goto st886;} + {stack[top++] = 1490;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1451;goto st888;} + {stack[top++] = 1490;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1451;goto st890;} + {stack[top++] = 1490;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1451;goto st922;} + {stack[top++] = 1490;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1451;goto st927;} + {stack[top++] = 1490;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1451;goto st932;} + {stack[top++] = 1490;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1451;goto st937;} + {stack[top++] = 1490;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1451;goto st941;} + {stack[top++] = 1490;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1451;goto st943;} + {stack[top++] = 1490;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1451;goto st998;} + {stack[top++] = 1490;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1451;goto st1009;} + {stack[top++] = 1490;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1451;goto st1026;} + {stack[top++] = 1490;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 1451;goto st1037;} + {stack[top++] = 1490;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1451;goto st1048;} + {stack[top++] = 1490;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1451;goto st1061;} + {stack[top++] = 1490;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1451;goto st1071;} + {stack[top++] = 1490;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1451;goto st1110;} + {stack[top++] = 1490;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1451;goto st1302;} + {stack[top++] = 1490;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1451;goto st1305;} + {stack[top++] = 1490;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1451;goto st1316;} + {stack[top++] = 1490;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1451;goto st1318;} + {stack[top++] = 1490;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1451;goto st1347;} + {stack[top++] = 1490;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1451;goto st1360;} + {stack[top++] = 1490;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1451;goto st1373;} + {stack[top++] = 1490;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1451;goto st1379;} + {stack[top++] = 1490;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1451;goto st1397;} + {stack[top++] = 1490;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 1451;goto st1392;} + {stack[top++] = 1490;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1451;goto st1410;} + {stack[top++] = 1490;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1451;goto st1416;} + {stack[top++] = 1490;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 1451;goto st1422;} + {stack[top++] = 1490;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1451;goto st1430;} + {stack[top++] = 1490;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1451;goto st1438;} + {stack[top++] = 1490;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 1490;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -30495,19 +31275,19 @@ tr855: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1451; goto _out;} + {p++; cs = 1490; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1451; goto _out;} + p--; {p++; cs = 1490; goto _out;} } } - goto st1451; -st1451: + goto st1490; +st1490: if ( ++p == pe ) - goto _test_eof1451; -case 1451: + goto _test_eof1490; +case 1490: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30525,23 +31305,23 @@ case 1451: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4370; - case 32: goto tr4370; - case 36: goto tr4296; - case 40: goto tr4371; - case 41: goto tr4372; - case 42: goto tr4299; + case 9: goto tr4470; + case 32: goto tr4470; + case 36: goto tr4396; + case 40: goto tr4471; + case 41: goto tr4472; + case 42: goto tr4399; case 58: goto tr75; - case 92: goto tr4300; - case 95: goto tr4299; + case 92: goto tr4400; + case 95: goto tr4399; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr4368; - case 3131: goto tr4373; + case 3082: goto tr4468; + case 3131: goto tr4473; case 3338: goto tr107; case 3387: goto tr108; - case 3594: goto tr4368; - case 3643: goto tr4374; + case 3594: goto tr4468; + case 3643: goto tr4474; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -30549,53 +31329,53 @@ case 1451: goto tr75; } else if ( _widec > 44 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4299; + goto tr4399; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 90 ) - goto tr4299; + goto tr4399; } else if ( _widec > 96 ) { if ( _widec > 122 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 97 ) - goto tr4299; + goto tr4399; } else goto tr75; } else goto tr75; - goto tr889; -tr873: + goto tr900; +tr884: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st216; -tr874: + goto st219; +tr885: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st216; -tr1003: + goto st219; +tr1014: { s->buffer[0] = 0; s->buffer_length = 0; } - goto st216; -tr1004: + goto st219; +tr1015: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -30603,12 +31383,12 @@ tr1004: s->buffer[0] = 0; s->buffer_length = 0; } - goto st216; -tr1005: + goto st219; +tr1016: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -30616,8 +31396,8 @@ tr1005: s->buffer[0] = 0; s->buffer_length = 0; } - goto st216; -tr4370: + goto st219; +tr4470: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30625,15 +31405,15 @@ tr4370: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st216; -tr4371: + goto st219; +tr4471: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -30644,15 +31424,15 @@ tr4371: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st216; -tr4372: + goto st219; +tr4472: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -30663,14 +31443,14 @@ tr4372: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st216; -st216: + goto st219; +st219: if ( ++p == pe ) - goto _test_eof216; -case 216: + goto _test_eof219; +case 219: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30688,10 +31468,10 @@ case 216: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st216; - case 32: goto st216; - case 40: goto tr873; - case 41: goto tr874; + case 9: goto st219; + case 32: goto st219; + case 40: goto tr884; + case 41: goto tr885; case 58: goto tr75; case 65: goto tr124; case 67: goto tr125; @@ -30732,12 +31512,12 @@ case 216: case 122: goto tr141; case 2826: goto tr95; case 2875: goto tr96; - case 3082: goto tr859; - case 3131: goto tr875; + case 3082: goto tr870; + case 3131: goto tr886; case 3338: goto tr114; case 3387: goto tr115; - case 3594: goto tr859; - case 3643: goto tr876; + case 3594: goto tr870; + case 3643: goto tr887; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -30762,96 +31542,98 @@ tr125: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 217;goto st886;} + {stack[top++] = 220;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 217;goto st888;} + {stack[top++] = 220;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 217;goto st890;} + {stack[top++] = 220;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 217;goto st922;} + {stack[top++] = 220;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 217;goto st927;} + {stack[top++] = 220;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 217;goto st932;} + {stack[top++] = 220;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 217;goto st937;} + {stack[top++] = 220;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 217;goto st941;} + {stack[top++] = 220;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 217;goto st943;} + {stack[top++] = 220;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 217;goto st998;} + {stack[top++] = 220;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 217;goto st1009;} + {stack[top++] = 220;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 217;goto st1026;} + {stack[top++] = 220;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 217;goto st1037;} + {stack[top++] = 220;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 217;goto st1048;} + {stack[top++] = 220;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 217;goto st1061;} + {stack[top++] = 220;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 217;goto st1071;} + {stack[top++] = 220;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 217;goto st1110;} + {stack[top++] = 220;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 217;goto st1302;} + {stack[top++] = 220;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 217;goto st1305;} + {stack[top++] = 220;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 217;goto st1316;} + {stack[top++] = 220;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 217;goto st1318;} + {stack[top++] = 220;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 217;goto st1347;} + {stack[top++] = 220;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 217;goto st1360;} + {stack[top++] = 220;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 217;goto st1373;} + {stack[top++] = 220;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 217;goto st1379;} + {stack[top++] = 220;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 217;goto st1397;} + {stack[top++] = 220;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 217;goto st1392;} + {stack[top++] = 220;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 217;goto st1410;} + {stack[top++] = 220;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 217;goto st1416;} + {stack[top++] = 220;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 217;goto st1422;} + {stack[top++] = 220;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 217;goto st1430;} + {stack[top++] = 220;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 217;goto st1438;} + {stack[top++] = 220;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 220;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st217; -st217: + goto st220; +st220: if ( ++p == pe ) - goto _test_eof217; -case 217: + goto _test_eof220; +case 220: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30884,7 +31666,7 @@ case 217: case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr126: { s->r_class = s->default_class; @@ -30896,96 +31678,98 @@ tr126: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 218;goto st886;} + {stack[top++] = 221;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 218;goto st888;} + {stack[top++] = 221;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 218;goto st890;} + {stack[top++] = 221;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 218;goto st922;} + {stack[top++] = 221;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 218;goto st927;} + {stack[top++] = 221;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 218;goto st932;} + {stack[top++] = 221;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 218;goto st937;} + {stack[top++] = 221;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 218;goto st941;} + {stack[top++] = 221;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 218;goto st943;} + {stack[top++] = 221;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 218;goto st998;} + {stack[top++] = 221;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 218;goto st1009;} + {stack[top++] = 221;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 218;goto st1026;} + {stack[top++] = 221;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 218;goto st1037;} + {stack[top++] = 221;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 218;goto st1048;} + {stack[top++] = 221;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 218;goto st1061;} + {stack[top++] = 221;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 218;goto st1071;} + {stack[top++] = 221;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 218;goto st1110;} + {stack[top++] = 221;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 218;goto st1302;} + {stack[top++] = 221;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 218;goto st1305;} + {stack[top++] = 221;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 218;goto st1316;} + {stack[top++] = 221;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 218;goto st1318;} + {stack[top++] = 221;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 218;goto st1347;} + {stack[top++] = 221;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 218;goto st1360;} + {stack[top++] = 221;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 218;goto st1373;} + {stack[top++] = 221;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 218;goto st1379;} + {stack[top++] = 221;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 218;goto st1397;} + {stack[top++] = 221;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 218;goto st1392;} + {stack[top++] = 221;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 218;goto st1410;} + {stack[top++] = 221;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 218;goto st1416;} + {stack[top++] = 221;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 218;goto st1422;} + {stack[top++] = 221;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 218;goto st1430;} + {stack[top++] = 221;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 218;goto st1438;} + {stack[top++] = 221;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 221;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st218; -st218: + goto st221; +st221: if ( ++p == pe ) - goto _test_eof218; -case 218: + goto _test_eof221; +case 221: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31014,7 +31798,7 @@ case 218: case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr127: { s->r_class = s->default_class; @@ -31026,96 +31810,98 @@ tr127: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 219;goto st886;} + {stack[top++] = 222;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 219;goto st888;} + {stack[top++] = 222;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 219;goto st890;} + {stack[top++] = 222;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 219;goto st922;} + {stack[top++] = 222;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 219;goto st927;} + {stack[top++] = 222;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 219;goto st932;} + {stack[top++] = 222;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 219;goto st937;} + {stack[top++] = 222;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 219;goto st941;} + {stack[top++] = 222;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 219;goto st943;} + {stack[top++] = 222;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 219;goto st998;} + {stack[top++] = 222;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 219;goto st1009;} + {stack[top++] = 222;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 219;goto st1026;} + {stack[top++] = 222;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 219;goto st1037;} + {stack[top++] = 222;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 219;goto st1048;} + {stack[top++] = 222;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 219;goto st1061;} + {stack[top++] = 222;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 219;goto st1071;} + {stack[top++] = 222;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 219;goto st1110;} + {stack[top++] = 222;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 219;goto st1302;} + {stack[top++] = 222;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 219;goto st1305;} + {stack[top++] = 222;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 219;goto st1316;} + {stack[top++] = 222;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 219;goto st1318;} + {stack[top++] = 222;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 219;goto st1347;} + {stack[top++] = 222;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 219;goto st1360;} + {stack[top++] = 222;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 219;goto st1373;} + {stack[top++] = 222;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 219;goto st1379;} + {stack[top++] = 222;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 219;goto st1397;} + {stack[top++] = 222;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 219;goto st1392;} + {stack[top++] = 222;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 219;goto st1410;} + {stack[top++] = 222;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 219;goto st1416;} + {stack[top++] = 222;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 219;goto st1422;} + {stack[top++] = 222;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 219;goto st1430;} + {stack[top++] = 222;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 219;goto st1438;} + {stack[top++] = 222;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 222;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st219; -st219: + goto st222; +st222: if ( ++p == pe ) - goto _test_eof219; -case 219: + goto _test_eof222; +case 222: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31133,14 +31919,14 @@ case 219: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 85: goto st55; - case 117: goto st55; + case 85: goto st58; + case 117: goto st58; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr128: { s->r_class = s->default_class; @@ -31152,96 +31938,98 @@ tr128: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 220;goto st886;} + {stack[top++] = 223;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 220;goto st888;} + {stack[top++] = 223;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 220;goto st890;} + {stack[top++] = 223;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 220;goto st922;} + {stack[top++] = 223;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 220;goto st927;} + {stack[top++] = 223;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 220;goto st932;} + {stack[top++] = 223;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 220;goto st937;} + {stack[top++] = 223;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 220;goto st941;} + {stack[top++] = 223;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 220;goto st943;} + {stack[top++] = 223;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 220;goto st998;} + {stack[top++] = 223;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 220;goto st1009;} + {stack[top++] = 223;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 220;goto st1026;} + {stack[top++] = 223;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 220;goto st1037;} + {stack[top++] = 223;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 220;goto st1048;} + {stack[top++] = 223;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 220;goto st1061;} + {stack[top++] = 223;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 220;goto st1071;} + {stack[top++] = 223;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 220;goto st1110;} + {stack[top++] = 223;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 220;goto st1302;} + {stack[top++] = 223;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 220;goto st1305;} + {stack[top++] = 223;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 220;goto st1316;} + {stack[top++] = 223;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 220;goto st1318;} + {stack[top++] = 223;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 220;goto st1347;} + {stack[top++] = 223;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 220;goto st1360;} + {stack[top++] = 223;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 220;goto st1373;} + {stack[top++] = 223;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 220;goto st1379;} + {stack[top++] = 223;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 220;goto st1397;} + {stack[top++] = 223;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 220;goto st1392;} + {stack[top++] = 223;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 220;goto st1410;} + {stack[top++] = 223;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 220;goto st1416;} + {stack[top++] = 223;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 220;goto st1422;} + {stack[top++] = 223;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 220;goto st1430;} + {stack[top++] = 223;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 220;goto st1438;} + {stack[top++] = 223;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 223;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st220; -st220: + goto st223; +st223: if ( ++p == pe ) - goto _test_eof220; -case 220: + goto _test_eof223; +case 223: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31259,16 +32047,16 @@ case 220: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 73: goto st62; - case 84: goto st66; - case 105: goto st62; - case 116: goto st66; + case 73: goto st65; + case 84: goto st69; + case 105: goto st65; + case 116: goto st69; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr129: { s->r_class = s->default_class; @@ -31280,96 +32068,98 @@ tr129: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 221;goto st886;} + {stack[top++] = 224;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 221;goto st888;} + {stack[top++] = 224;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 221;goto st890;} + {stack[top++] = 224;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 221;goto st922;} + {stack[top++] = 224;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 221;goto st927;} + {stack[top++] = 224;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 221;goto st932;} + {stack[top++] = 224;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 221;goto st937;} + {stack[top++] = 224;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 221;goto st941;} + {stack[top++] = 224;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 221;goto st943;} + {stack[top++] = 224;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 221;goto st998;} + {stack[top++] = 224;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 221;goto st1009;} + {stack[top++] = 224;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 221;goto st1026;} + {stack[top++] = 224;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 221;goto st1037;} + {stack[top++] = 224;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 221;goto st1048;} + {stack[top++] = 224;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 221;goto st1061;} + {stack[top++] = 224;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 221;goto st1071;} + {stack[top++] = 224;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 221;goto st1110;} + {stack[top++] = 224;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 221;goto st1302;} + {stack[top++] = 224;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 221;goto st1305;} + {stack[top++] = 224;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 221;goto st1316;} + {stack[top++] = 224;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 221;goto st1318;} + {stack[top++] = 224;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 221;goto st1347;} + {stack[top++] = 224;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 221;goto st1360;} + {stack[top++] = 224;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 221;goto st1373;} + {stack[top++] = 224;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 221;goto st1379;} + {stack[top++] = 224;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 221;goto st1397;} + {stack[top++] = 224;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 221;goto st1392;} + {stack[top++] = 224;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 221;goto st1410;} + {stack[top++] = 224;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 221;goto st1416;} + {stack[top++] = 224;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 221;goto st1422;} + {stack[top++] = 224;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 221;goto st1430;} + {stack[top++] = 224;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 221;goto st1438;} + {stack[top++] = 224;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 224;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st221; -st221: + goto st224; +st224: if ( ++p == pe ) - goto _test_eof221; -case 221: + goto _test_eof224; +case 224: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31387,16 +32177,16 @@ case 221: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 78: goto st182; - case 80: goto st74; - case 110: goto st182; - case 112: goto st74; + case 78: goto st185; + case 80: goto st77; + case 110: goto st185; + case 112: goto st77; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr130: { s->r_class = s->default_class; @@ -31408,96 +32198,98 @@ tr130: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 222;goto st886;} + {stack[top++] = 225;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 222;goto st888;} + {stack[top++] = 225;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 222;goto st890;} + {stack[top++] = 225;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 222;goto st922;} + {stack[top++] = 225;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 222;goto st927;} + {stack[top++] = 225;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 222;goto st932;} + {stack[top++] = 225;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 222;goto st937;} + {stack[top++] = 225;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 222;goto st941;} + {stack[top++] = 225;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 222;goto st943;} + {stack[top++] = 225;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 222;goto st998;} + {stack[top++] = 225;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 222;goto st1009;} + {stack[top++] = 225;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 222;goto st1026;} + {stack[top++] = 225;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 222;goto st1037;} + {stack[top++] = 225;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 222;goto st1048;} + {stack[top++] = 225;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 222;goto st1061;} + {stack[top++] = 225;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 222;goto st1071;} + {stack[top++] = 225;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 222;goto st1110;} + {stack[top++] = 225;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 222;goto st1302;} + {stack[top++] = 225;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 222;goto st1305;} + {stack[top++] = 225;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 222;goto st1316;} + {stack[top++] = 225;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 222;goto st1318;} + {stack[top++] = 225;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 222;goto st1347;} + {stack[top++] = 225;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 222;goto st1360;} + {stack[top++] = 225;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 222;goto st1373;} + {stack[top++] = 225;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 222;goto st1379;} + {stack[top++] = 225;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 222;goto st1397;} + {stack[top++] = 225;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 222;goto st1392;} + {stack[top++] = 225;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 222;goto st1410;} + {stack[top++] = 225;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 222;goto st1416;} + {stack[top++] = 225;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 222;goto st1422;} + {stack[top++] = 225;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 222;goto st1430;} + {stack[top++] = 225;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 222;goto st1438;} + {stack[top++] = 225;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 225;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st222; -st222: + goto st225; +st225: if ( ++p == pe ) - goto _test_eof222; -case 222: + goto _test_eof225; +case 225: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31515,16 +32307,16 @@ case 222: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 69: goto st82; - case 88: goto st84; - case 101: goto st82; - case 120: goto st84; + case 69: goto st85; + case 88: goto st87; + case 101: goto st85; + case 120: goto st87; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr131: { s->r_class = s->default_class; @@ -31536,96 +32328,98 @@ tr131: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 223;goto st886;} + {stack[top++] = 226;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 223;goto st888;} + {stack[top++] = 226;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 223;goto st890;} + {stack[top++] = 226;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 223;goto st922;} + {stack[top++] = 226;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 223;goto st927;} + {stack[top++] = 226;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 223;goto st932;} + {stack[top++] = 226;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 223;goto st937;} + {stack[top++] = 226;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 223;goto st941;} + {stack[top++] = 226;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 223;goto st943;} + {stack[top++] = 226;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 223;goto st998;} + {stack[top++] = 226;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 223;goto st1009;} + {stack[top++] = 226;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 223;goto st1026;} + {stack[top++] = 226;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 223;goto st1037;} + {stack[top++] = 226;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 223;goto st1048;} + {stack[top++] = 226;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 223;goto st1061;} + {stack[top++] = 226;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 223;goto st1071;} + {stack[top++] = 226;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 223;goto st1110;} + {stack[top++] = 226;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 223;goto st1302;} + {stack[top++] = 226;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 223;goto st1305;} + {stack[top++] = 226;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 223;goto st1316;} + {stack[top++] = 226;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 223;goto st1318;} + {stack[top++] = 226;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 223;goto st1347;} + {stack[top++] = 226;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 223;goto st1360;} + {stack[top++] = 226;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 223;goto st1373;} + {stack[top++] = 226;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 223;goto st1379;} + {stack[top++] = 226;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 223;goto st1397;} + {stack[top++] = 226;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 223;goto st1392;} + {stack[top++] = 226;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 223;goto st1410;} + {stack[top++] = 226;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 223;goto st1416;} + {stack[top++] = 226;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 223;goto st1422;} + {stack[top++] = 226;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 223;goto st1430;} + {stack[top++] = 226;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 223;goto st1438;} + {stack[top++] = 226;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 226;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st223; -st223: + goto st226; +st226: if ( ++p == pe ) - goto _test_eof223; -case 223: + goto _test_eof226; +case 226: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31643,18 +32437,18 @@ case 223: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 51: goto st86; - case 54: goto st88; - case 79: goto st90; - case 80: goto st92; - case 111: goto st90; - case 112: goto st92; + case 51: goto st89; + case 54: goto st91; + case 79: goto st93; + case 80: goto st95; + case 111: goto st93; + case 112: goto st95; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr132: { s->r_class = s->default_class; @@ -31666,96 +32460,98 @@ tr132: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 224;goto st886;} + {stack[top++] = 227;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 224;goto st888;} + {stack[top++] = 227;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 224;goto st890;} + {stack[top++] = 227;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 224;goto st922;} + {stack[top++] = 227;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 224;goto st927;} + {stack[top++] = 227;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 224;goto st932;} + {stack[top++] = 227;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 224;goto st937;} + {stack[top++] = 227;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 224;goto st941;} + {stack[top++] = 227;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 224;goto st943;} + {stack[top++] = 227;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 224;goto st998;} + {stack[top++] = 227;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 224;goto st1009;} + {stack[top++] = 227;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 224;goto st1026;} + {stack[top++] = 227;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 224;goto st1037;} + {stack[top++] = 227;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 224;goto st1048;} + {stack[top++] = 227;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 224;goto st1061;} + {stack[top++] = 227;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 224;goto st1071;} + {stack[top++] = 227;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 224;goto st1110;} + {stack[top++] = 227;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 224;goto st1302;} + {stack[top++] = 227;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 224;goto st1305;} + {stack[top++] = 227;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 224;goto st1316;} + {stack[top++] = 227;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 224;goto st1318;} + {stack[top++] = 227;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 224;goto st1347;} + {stack[top++] = 227;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 224;goto st1360;} + {stack[top++] = 227;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 224;goto st1373;} + {stack[top++] = 227;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 224;goto st1379;} + {stack[top++] = 227;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 224;goto st1397;} + {stack[top++] = 227;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 224;goto st1392;} + {stack[top++] = 227;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 224;goto st1410;} + {stack[top++] = 227;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 224;goto st1416;} + {stack[top++] = 227;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 224;goto st1422;} + {stack[top++] = 227;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 224;goto st1430;} + {stack[top++] = 227;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 224;goto st1438;} + {stack[top++] = 227;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 227;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st224; -st224: + goto st227; +st227: if ( ++p == pe ) - goto _test_eof224; -case 224: + goto _test_eof227; +case 227: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31773,16 +32569,16 @@ case 224: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 73: goto st94; - case 88: goto st98; - case 105: goto st94; - case 120: goto st98; + case 73: goto st97; + case 88: goto st101; + case 105: goto st97; + case 120: goto st101; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr133: { s->r_class = s->default_class; @@ -31794,96 +32590,98 @@ tr133: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 225;goto st886;} + {stack[top++] = 228;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 225;goto st888;} + {stack[top++] = 228;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 225;goto st890;} + {stack[top++] = 228;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 225;goto st922;} + {stack[top++] = 228;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 225;goto st927;} + {stack[top++] = 228;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 225;goto st932;} + {stack[top++] = 228;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 225;goto st937;} + {stack[top++] = 228;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 225;goto st941;} + {stack[top++] = 228;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 225;goto st943;} + {stack[top++] = 228;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 225;goto st998;} + {stack[top++] = 228;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 225;goto st1009;} + {stack[top++] = 228;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 225;goto st1026;} + {stack[top++] = 228;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 225;goto st1037;} + {stack[top++] = 228;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 225;goto st1048;} + {stack[top++] = 228;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 225;goto st1061;} + {stack[top++] = 228;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 225;goto st1071;} + {stack[top++] = 228;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 225;goto st1110;} + {stack[top++] = 228;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 225;goto st1302;} + {stack[top++] = 228;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 225;goto st1305;} + {stack[top++] = 228;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 225;goto st1316;} + {stack[top++] = 228;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 225;goto st1318;} + {stack[top++] = 228;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 225;goto st1347;} + {stack[top++] = 228;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 225;goto st1360;} + {stack[top++] = 228;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 225;goto st1373;} + {stack[top++] = 228;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 225;goto st1379;} + {stack[top++] = 228;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 225;goto st1397;} + {stack[top++] = 228;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 225;goto st1392;} + {stack[top++] = 228;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 225;goto st1410;} + {stack[top++] = 228;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 225;goto st1416;} + {stack[top++] = 228;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 225;goto st1422;} + {stack[top++] = 228;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 225;goto st1430;} + {stack[top++] = 228;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 225;goto st1438;} + {stack[top++] = 228;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 228;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st225; -st225: + goto st228; +st228: if ( ++p == pe ) - goto _test_eof225; -case 225: + goto _test_eof228; +case 228: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31901,18 +32699,18 @@ case 225: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 65: goto st100; - case 73: goto st104; - case 83: goto st106; - case 97: goto st100; - case 105: goto st104; - case 115: goto st106; + case 65: goto st103; + case 73: goto st107; + case 83: goto st109; + case 97: goto st103; + case 105: goto st107; + case 115: goto st109; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr134: { s->r_class = s->default_class; @@ -31924,96 +32722,98 @@ tr134: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 226;goto st886;} + {stack[top++] = 229;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 226;goto st888;} + {stack[top++] = 229;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 226;goto st890;} + {stack[top++] = 229;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 226;goto st922;} + {stack[top++] = 229;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 226;goto st927;} + {stack[top++] = 229;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 226;goto st932;} + {stack[top++] = 229;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 226;goto st937;} + {stack[top++] = 229;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 226;goto st941;} + {stack[top++] = 229;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 226;goto st943;} + {stack[top++] = 229;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 226;goto st998;} + {stack[top++] = 229;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 226;goto st1009;} + {stack[top++] = 229;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 226;goto st1026;} + {stack[top++] = 229;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 226;goto st1037;} + {stack[top++] = 229;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 226;goto st1048;} + {stack[top++] = 229;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 226;goto st1061;} + {stack[top++] = 229;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 226;goto st1071;} + {stack[top++] = 229;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 226;goto st1110;} + {stack[top++] = 229;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 226;goto st1302;} + {stack[top++] = 229;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 226;goto st1305;} + {stack[top++] = 229;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 226;goto st1316;} + {stack[top++] = 229;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 226;goto st1318;} + {stack[top++] = 229;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 226;goto st1347;} + {stack[top++] = 229;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 226;goto st1360;} + {stack[top++] = 229;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 226;goto st1373;} + {stack[top++] = 229;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 226;goto st1379;} + {stack[top++] = 229;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 226;goto st1397;} + {stack[top++] = 229;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 226;goto st1392;} + {stack[top++] = 229;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 226;goto st1410;} + {stack[top++] = 229;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 226;goto st1416;} + {stack[top++] = 229;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 226;goto st1422;} + {stack[top++] = 229;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 226;goto st1430;} + {stack[top++] = 229;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 226;goto st1438;} + {stack[top++] = 229;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 229;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st226; -st226: + goto st229; +st229: if ( ++p == pe ) - goto _test_eof226; -case 226: + goto _test_eof229; +case 229: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32031,14 +32831,14 @@ case 226: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 80: goto st116; - case 112: goto st116; + case 80: goto st119; + case 112: goto st119; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr135: { s->r_class = s->default_class; @@ -32050,96 +32850,98 @@ tr135: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 227;goto st886;} + {stack[top++] = 230;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 227;goto st888;} + {stack[top++] = 230;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 227;goto st890;} + {stack[top++] = 230;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 227;goto st922;} + {stack[top++] = 230;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 227;goto st927;} + {stack[top++] = 230;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 227;goto st932;} + {stack[top++] = 230;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 227;goto st937;} + {stack[top++] = 230;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 227;goto st941;} + {stack[top++] = 230;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 227;goto st943;} + {stack[top++] = 230;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 227;goto st998;} + {stack[top++] = 230;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 227;goto st1009;} + {stack[top++] = 230;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 227;goto st1026;} + {stack[top++] = 230;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 227;goto st1037;} + {stack[top++] = 230;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 227;goto st1048;} + {stack[top++] = 230;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 227;goto st1061;} + {stack[top++] = 230;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 227;goto st1071;} + {stack[top++] = 230;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 227;goto st1110;} + {stack[top++] = 230;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 227;goto st1302;} + {stack[top++] = 230;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 227;goto st1305;} + {stack[top++] = 230;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 227;goto st1316;} + {stack[top++] = 230;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 227;goto st1318;} + {stack[top++] = 230;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 227;goto st1347;} + {stack[top++] = 230;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 227;goto st1360;} + {stack[top++] = 230;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 227;goto st1373;} + {stack[top++] = 230;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 227;goto st1379;} + {stack[top++] = 230;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 227;goto st1397;} + {stack[top++] = 230;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 227;goto st1392;} + {stack[top++] = 230;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 227;goto st1410;} + {stack[top++] = 230;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 227;goto st1416;} + {stack[top++] = 230;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 227;goto st1422;} + {stack[top++] = 230;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 227;goto st1430;} + {stack[top++] = 230;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 227;goto st1438;} + {stack[top++] = 230;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 230;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st227; -st227: + goto st230; +st230: if ( ++p == pe ) - goto _test_eof227; -case 227: + goto _test_eof230; +case 230: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32157,14 +32959,14 @@ case 227: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 84: goto st126; - case 116: goto st126; + case 84: goto st129; + case 116: goto st129; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr136: { s->r_class = s->default_class; @@ -32176,96 +32978,98 @@ tr136: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 228;goto st886;} + {stack[top++] = 231;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 228;goto st888;} + {stack[top++] = 231;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 228;goto st890;} + {stack[top++] = 231;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 228;goto st922;} + {stack[top++] = 231;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 228;goto st927;} + {stack[top++] = 231;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 228;goto st932;} + {stack[top++] = 231;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 228;goto st937;} + {stack[top++] = 231;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 228;goto st941;} + {stack[top++] = 231;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 228;goto st943;} + {stack[top++] = 231;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 228;goto st998;} + {stack[top++] = 231;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 228;goto st1009;} + {stack[top++] = 231;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 228;goto st1026;} + {stack[top++] = 231;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 228;goto st1037;} + {stack[top++] = 231;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 228;goto st1048;} + {stack[top++] = 231;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 228;goto st1061;} + {stack[top++] = 231;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 228;goto st1071;} + {stack[top++] = 231;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 228;goto st1110;} + {stack[top++] = 231;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 228;goto st1302;} + {stack[top++] = 231;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 228;goto st1305;} + {stack[top++] = 231;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 228;goto st1316;} + {stack[top++] = 231;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 228;goto st1318;} + {stack[top++] = 231;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 228;goto st1347;} + {stack[top++] = 231;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 228;goto st1360;} + {stack[top++] = 231;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 228;goto st1373;} + {stack[top++] = 231;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 228;goto st1379;} + {stack[top++] = 231;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 228;goto st1397;} + {stack[top++] = 231;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 228;goto st1392;} + {stack[top++] = 231;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 228;goto st1410;} + {stack[top++] = 231;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 228;goto st1416;} + {stack[top++] = 231;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 228;goto st1422;} + {stack[top++] = 231;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 228;goto st1430;} + {stack[top++] = 231;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 228;goto st1438;} + {stack[top++] = 231;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 231;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st228; -st228: + goto st231; +st231: if ( ++p == pe ) - goto _test_eof228; -case 228: + goto _test_eof231; +case 231: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32283,18 +33087,18 @@ case 228: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 80: goto st129; - case 82: goto st130; - case 84: goto st134; - case 112: goto st129; - case 114: goto st130; - case 116: goto st134; + case 80: goto st132; + case 82: goto st133; + case 84: goto st137; + case 112: goto st132; + case 114: goto st133; + case 116: goto st137; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr137: { s->r_class = s->default_class; @@ -32306,96 +33110,98 @@ tr137: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 229;goto st886;} + {stack[top++] = 232;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 229;goto st888;} + {stack[top++] = 232;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 229;goto st890;} + {stack[top++] = 232;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 229;goto st922;} + {stack[top++] = 232;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 229;goto st927;} + {stack[top++] = 232;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 229;goto st932;} + {stack[top++] = 232;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 229;goto st937;} + {stack[top++] = 232;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 229;goto st941;} + {stack[top++] = 232;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 229;goto st943;} + {stack[top++] = 232;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 229;goto st998;} + {stack[top++] = 232;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 229;goto st1009;} + {stack[top++] = 232;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 229;goto st1026;} + {stack[top++] = 232;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 229;goto st1037;} + {stack[top++] = 232;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 229;goto st1048;} + {stack[top++] = 232;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 229;goto st1061;} + {stack[top++] = 232;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 229;goto st1071;} + {stack[top++] = 232;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 229;goto st1110;} + {stack[top++] = 232;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 229;goto st1302;} + {stack[top++] = 232;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 229;goto st1305;} + {stack[top++] = 232;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 229;goto st1316;} + {stack[top++] = 232;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 229;goto st1318;} + {stack[top++] = 232;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 229;goto st1347;} + {stack[top++] = 232;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 229;goto st1360;} + {stack[top++] = 232;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 229;goto st1373;} + {stack[top++] = 232;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 229;goto st1379;} + {stack[top++] = 232;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 229;goto st1397;} + {stack[top++] = 232;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 229;goto st1392;} + {stack[top++] = 232;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 229;goto st1410;} + {stack[top++] = 232;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 229;goto st1416;} + {stack[top++] = 232;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 229;goto st1422;} + {stack[top++] = 232;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 229;goto st1430;} + {stack[top++] = 232;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 229;goto st1438;} + {stack[top++] = 232;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 232;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st229; -st229: + goto st232; +st232: if ( ++p == pe ) - goto _test_eof229; -case 229: + goto _test_eof232; +case 232: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32413,24 +33219,24 @@ case 229: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 77: goto st136; - case 79: goto st141; - case 80: goto st143; - case 82: goto st145; - case 83: goto st147; - case 86: goto st151; - case 109: goto st136; - case 111: goto st141; - case 112: goto st143; - case 114: goto st145; - case 115: goto st147; - case 118: goto st151; + case 77: goto st139; + case 79: goto st144; + case 80: goto st146; + case 82: goto st148; + case 83: goto st150; + case 86: goto st154; + case 109: goto st139; + case 111: goto st144; + case 112: goto st146; + case 114: goto st148; + case 115: goto st150; + case 118: goto st154; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr138: { s->r_class = s->default_class; @@ -32442,96 +33248,98 @@ tr138: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 230;goto st886;} + {stack[top++] = 233;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 230;goto st888;} + {stack[top++] = 233;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 230;goto st890;} + {stack[top++] = 233;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 230;goto st922;} + {stack[top++] = 233;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 230;goto st927;} + {stack[top++] = 233;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 230;goto st932;} + {stack[top++] = 233;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 230;goto st937;} + {stack[top++] = 233;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 230;goto st941;} + {stack[top++] = 233;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 230;goto st943;} + {stack[top++] = 233;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 230;goto st998;} + {stack[top++] = 233;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 230;goto st1009;} + {stack[top++] = 233;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 230;goto st1026;} + {stack[top++] = 233;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 230;goto st1037;} + {stack[top++] = 233;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 230;goto st1048;} + {stack[top++] = 233;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 230;goto st1061;} + {stack[top++] = 233;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 230;goto st1071;} + {stack[top++] = 233;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 230;goto st1110;} + {stack[top++] = 233;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 230;goto st1302;} + {stack[top++] = 233;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 230;goto st1305;} + {stack[top++] = 233;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 230;goto st1316;} + {stack[top++] = 233;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 230;goto st1318;} + {stack[top++] = 233;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 230;goto st1347;} + {stack[top++] = 233;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 230;goto st1360;} + {stack[top++] = 233;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 230;goto st1373;} + {stack[top++] = 233;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 230;goto st1379;} + {stack[top++] = 233;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 230;goto st1397;} + {stack[top++] = 233;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 230;goto st1392;} + {stack[top++] = 233;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 230;goto st1410;} + {stack[top++] = 233;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 230;goto st1416;} + {stack[top++] = 233;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 230;goto st1422;} + {stack[top++] = 233;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 230;goto st1430;} + {stack[top++] = 233;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 230;goto st1438;} + {stack[top++] = 233;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 233;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st230; -st230: + goto st233; +st233: if ( ++p == pe ) - goto _test_eof230; -case 230: + goto _test_eof233; +case 233: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32549,18 +33357,18 @@ case 230: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 76: goto st155; - case 88: goto st158; - case 89: goto st160; - case 108: goto st155; - case 120: goto st158; - case 121: goto st160; + case 76: goto st158; + case 88: goto st161; + case 89: goto st163; + case 108: goto st158; + case 120: goto st161; + case 121: goto st163; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr139: { s->r_class = s->default_class; @@ -32572,96 +33380,98 @@ tr139: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 231;goto st886;} + {stack[top++] = 234;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 231;goto st888;} + {stack[top++] = 234;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 231;goto st890;} + {stack[top++] = 234;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 231;goto st922;} + {stack[top++] = 234;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 231;goto st927;} + {stack[top++] = 234;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 231;goto st932;} + {stack[top++] = 234;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 231;goto st937;} + {stack[top++] = 234;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 231;goto st941;} + {stack[top++] = 234;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 231;goto st943;} + {stack[top++] = 234;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 231;goto st998;} + {stack[top++] = 234;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 231;goto st1009;} + {stack[top++] = 234;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 231;goto st1026;} + {stack[top++] = 234;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 231;goto st1037;} + {stack[top++] = 234;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 231;goto st1048;} + {stack[top++] = 234;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 231;goto st1061;} + {stack[top++] = 234;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 231;goto st1071;} + {stack[top++] = 234;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 231;goto st1110;} + {stack[top++] = 234;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 231;goto st1302;} + {stack[top++] = 234;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 231;goto st1305;} + {stack[top++] = 234;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 231;goto st1316;} + {stack[top++] = 234;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 231;goto st1318;} + {stack[top++] = 234;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 231;goto st1347;} + {stack[top++] = 234;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 231;goto st1360;} + {stack[top++] = 234;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 231;goto st1373;} + {stack[top++] = 234;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 231;goto st1379;} + {stack[top++] = 234;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 231;goto st1397;} + {stack[top++] = 234;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 231;goto st1392;} + {stack[top++] = 234;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 231;goto st1410;} + {stack[top++] = 234;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 231;goto st1416;} + {stack[top++] = 234;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 231;goto st1422;} + {stack[top++] = 234;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 231;goto st1430;} + {stack[top++] = 234;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 231;goto st1438;} + {stack[top++] = 234;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 234;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st231; -st231: + goto st234; +st234: if ( ++p == pe ) - goto _test_eof231; -case 231: + goto _test_eof234; +case 234: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32679,14 +33489,14 @@ case 231: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 82: goto st165; - case 114: goto st165; + case 82: goto st168; + case 114: goto st168; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr140: { s->r_class = s->default_class; @@ -32698,96 +33508,98 @@ tr140: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 232;goto st886;} + {stack[top++] = 235;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 232;goto st888;} + {stack[top++] = 235;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 232;goto st890;} + {stack[top++] = 235;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 232;goto st922;} + {stack[top++] = 235;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 232;goto st927;} + {stack[top++] = 235;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 232;goto st932;} + {stack[top++] = 235;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 232;goto st937;} + {stack[top++] = 235;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 232;goto st941;} + {stack[top++] = 235;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 232;goto st943;} + {stack[top++] = 235;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 232;goto st998;} + {stack[top++] = 235;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 232;goto st1009;} + {stack[top++] = 235;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 232;goto st1026;} + {stack[top++] = 235;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 232;goto st1037;} + {stack[top++] = 235;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 232;goto st1048;} + {stack[top++] = 235;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 232;goto st1061;} + {stack[top++] = 235;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 232;goto st1071;} + {stack[top++] = 235;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 232;goto st1110;} + {stack[top++] = 235;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 232;goto st1302;} + {stack[top++] = 235;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 232;goto st1305;} + {stack[top++] = 235;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 232;goto st1316;} + {stack[top++] = 235;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 232;goto st1318;} + {stack[top++] = 235;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 232;goto st1347;} + {stack[top++] = 235;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 232;goto st1360;} + {stack[top++] = 235;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 232;goto st1373;} + {stack[top++] = 235;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 232;goto st1379;} + {stack[top++] = 235;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 232;goto st1397;} + {stack[top++] = 235;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 232;goto st1392;} + {stack[top++] = 235;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 232;goto st1410;} + {stack[top++] = 235;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 232;goto st1416;} + {stack[top++] = 235;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 232;goto st1422;} + {stack[top++] = 235;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 232;goto st1430;} + {stack[top++] = 235;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 232;goto st1438;} + {stack[top++] = 235;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 235;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st232; -st232: + goto st235; +st235: if ( ++p == pe ) - goto _test_eof232; -case 232: + goto _test_eof235; +case 235: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32805,14 +33617,14 @@ case 232: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 65: goto st168; - case 97: goto st168; + case 65: goto st171; + case 97: goto st171; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; + goto tr852; tr141: { s->r_class = s->default_class; @@ -32824,96 +33636,98 @@ tr141: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 233;goto st886;} + {stack[top++] = 236;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 233;goto st888;} + {stack[top++] = 236;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 233;goto st890;} + {stack[top++] = 236;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 233;goto st922;} + {stack[top++] = 236;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 233;goto st927;} + {stack[top++] = 236;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 233;goto st932;} + {stack[top++] = 236;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 233;goto st937;} + {stack[top++] = 236;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 233;goto st941;} + {stack[top++] = 236;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 233;goto st943;} + {stack[top++] = 236;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 233;goto st998;} + {stack[top++] = 236;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 233;goto st1009;} + {stack[top++] = 236;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 233;goto st1026;} + {stack[top++] = 236;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 233;goto st1037;} + {stack[top++] = 236;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 233;goto st1048;} + {stack[top++] = 236;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 233;goto st1061;} + {stack[top++] = 236;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 233;goto st1071;} + {stack[top++] = 236;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 233;goto st1110;} + {stack[top++] = 236;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 233;goto st1302;} + {stack[top++] = 236;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 233;goto st1305;} + {stack[top++] = 236;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 233;goto st1316;} + {stack[top++] = 236;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 233;goto st1318;} + {stack[top++] = 236;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 233;goto st1347;} + {stack[top++] = 236;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 233;goto st1360;} + {stack[top++] = 236;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 233;goto st1373;} + {stack[top++] = 236;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 233;goto st1379;} + {stack[top++] = 236;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 233;goto st1397;} + {stack[top++] = 236;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 233;goto st1392;} + {stack[top++] = 236;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 233;goto st1410;} + {stack[top++] = 236;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 233;goto st1416;} + {stack[top++] = 236;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 233;goto st1422;} + {stack[top++] = 236;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 233;goto st1430;} + {stack[top++] = 236;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 233;goto st1438;} + {stack[top++] = 236;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 236;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st233; -st233: + goto st236; +st236: if ( ++p == pe ) - goto _test_eof233; -case 233: + goto _test_eof236; +case 236: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32931,27 +33745,27 @@ case 233: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 79: goto st174; - case 111: goto st174; + case 79: goto st177; + case 111: goto st177; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr841; -tr875: + goto tr852; +tr886: { s->buffer_length = 0; } - goto st234; -tr877: + goto st237; +tr888: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st234; -tr1006: + goto st237; +tr1017: { s->buffer_length = 0; } @@ -32959,8 +33773,8 @@ tr1006: s->buffer[0] = 0; s->buffer_length = 0; } - goto st234; -tr944: + goto st237; +tr955: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -32973,8 +33787,8 @@ tr944: { s->buffer_length = 0; } - goto st234; -tr948: + goto st237; +tr959: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -32983,8 +33797,8 @@ tr948: { s->buffer_length = 0; } - goto st234; -tr913: + goto st237; +tr924: { s->r_owner_length = s->dname_tmp_length; } @@ -32999,8 +33813,8 @@ tr913: s->buffer[0] = 0; s->buffer_length = 0; } - goto st234; -tr4373: + goto st237; +tr4473: { s->buffer_length = 0; } @@ -33011,14 +33825,14 @@ tr4373: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st234; -st234: + goto st237; +st237: if ( ++p == pe ) - goto _test_eof234; -case 234: + goto _test_eof237; +case 237: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -33039,11 +33853,11 @@ case 234: } switch( _widec ) { case 1802: goto tr98; - case 2058: goto tr878; + case 2058: goto tr889; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr877; + goto tr888; } else if ( _widec >= 1664 ) goto tr97; goto tr85; @@ -33051,8 +33865,8 @@ tr142: { s->line_counter++; } - goto st1452; -tr980: + goto st1491; +tr991: { s->buffer[s->buffer_length++] = 0; @@ -33062,15 +33876,15 @@ tr980: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1452; goto _out;} + {p++; cs = 1491; goto _out;} } } } { s->line_counter++; } - goto st1452; -tr878: + goto st1491; +tr889: { s->buffer[s->buffer_length++] = 0; @@ -33080,7 +33894,7 @@ tr878: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1452; goto _out;} + {p++; cs = 1491; goto _out;} } } } @@ -33090,7 +33904,7 @@ tr878: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -33103,23 +33917,23 @@ tr878: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1452; goto _out;} + {p++; cs = 1491; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1452; goto _out;} + p--; {p++; cs = 1491; goto _out;} } } - goto st1452; -tr919: + goto st1491; +tr930: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -33132,16 +33946,16 @@ tr919: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1452; goto _out;} + {p++; cs = 1491; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1452; goto _out;} + p--; {p++; cs = 1491; goto _out;} } } - goto st1452; -tr912: + goto st1491; +tr923: { s->r_owner_length = s->dname_tmp_length; } @@ -33159,7 +33973,7 @@ tr912: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -33172,34 +33986,34 @@ tr912: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1452; goto _out;} + {p++; cs = 1491; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1452; goto _out;} + p--; {p++; cs = 1491; goto _out;} } } - goto st1452; -tr4301: + goto st1491; +tr4401: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1452; -st1452: + goto st1491; +st1491: if ( ++p == pe ) - goto _test_eof1452; -case 1452: + goto _test_eof1491; +case 1491: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33217,59 +34031,59 @@ case 1452: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4295; - case 32: goto tr4295; - case 36: goto tr4296; - case 40: goto tr4297; - case 41: goto tr4298; - case 42: goto tr4299; + case 9: goto tr4395; + case 32: goto tr4395; + case 36: goto tr4396; + case 40: goto tr4397; + case 41: goto tr4398; + case 42: goto tr4399; case 58: goto tr75; - case 65: goto tr4377; - case 67: goto tr4378; - case 68: goto tr4379; - case 69: goto tr4380; - case 72: goto tr4381; - case 73: goto tr4382; - case 75: goto tr4383; - case 76: goto tr4384; - case 77: goto tr4385; - case 78: goto tr4386; - case 79: goto tr4387; - case 80: goto tr4388; - case 82: goto tr4389; - case 83: goto tr4390; - case 84: goto tr4391; - case 85: goto tr4392; - case 87: goto tr4393; - case 90: goto tr4394; - case 92: goto tr4300; - case 95: goto tr4299; - case 97: goto tr4377; - case 99: goto tr4378; - case 100: goto tr4379; - case 101: goto tr4380; - case 104: goto tr4381; - case 105: goto tr4382; - case 107: goto tr4383; - case 108: goto tr4384; - case 109: goto tr4385; - case 110: goto tr4386; - case 111: goto tr4387; - case 112: goto tr4388; - case 114: goto tr4389; - case 115: goto tr4390; - case 116: goto tr4391; - case 117: goto tr4392; - case 119: goto tr4393; - case 122: goto tr4394; - case 2826: goto tr4291; - case 2875: goto tr4292; - case 3082: goto tr4301; - case 3131: goto tr4302; - case 3338: goto tr4303; - case 3387: goto tr4304; - case 3594: goto tr4305; - case 3643: goto tr4306; + case 65: goto tr4477; + case 67: goto tr4478; + case 68: goto tr4479; + case 69: goto tr4480; + case 72: goto tr4481; + case 73: goto tr4482; + case 75: goto tr4483; + case 76: goto tr4484; + case 77: goto tr4485; + case 78: goto tr4486; + case 79: goto tr4487; + case 80: goto tr4488; + case 82: goto tr4489; + case 83: goto tr4490; + case 84: goto tr4491; + case 85: goto tr4492; + case 87: goto tr4493; + case 90: goto tr4494; + case 92: goto tr4400; + case 95: goto tr4399; + case 97: goto tr4477; + case 99: goto tr4478; + case 100: goto tr4479; + case 101: goto tr4480; + case 104: goto tr4481; + case 105: goto tr4482; + case 107: goto tr4483; + case 108: goto tr4484; + case 109: goto tr4485; + case 110: goto tr4486; + case 111: goto tr4487; + case 112: goto tr4488; + case 114: goto tr4489; + case 115: goto tr4490; + case 116: goto tr4491; + case 117: goto tr4492; + case 119: goto tr4493; + case 122: goto tr4494; + case 2826: goto tr4391; + case 2875: goto tr4392; + case 3082: goto tr4401; + case 3131: goto tr4402; + case 3338: goto tr4403; + case 3387: goto tr4404; + case 3594: goto tr4405; + case 3643: goto tr4406; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -33278,121 +34092,123 @@ case 1452: } else if ( _widec > 44 ) { if ( _widec > 47 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4376; + goto tr4476; } else if ( _widec >= 45 ) - goto tr4299; + goto tr4399; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 89 ) - goto tr4299; + goto tr4399; } else if ( _widec > 96 ) { if ( _widec > 121 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 98 ) - goto tr4299; + goto tr4399; } else goto tr75; } else goto tr75; - goto tr4375; -tr4296: + goto tr4475; +tr4396: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 235;goto st886;} + {stack[top++] = 238;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 235;goto st888;} + {stack[top++] = 238;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 235;goto st890;} + {stack[top++] = 238;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 235;goto st922;} + {stack[top++] = 238;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 235;goto st927;} + {stack[top++] = 238;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 235;goto st932;} + {stack[top++] = 238;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 235;goto st937;} + {stack[top++] = 238;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 235;goto st941;} + {stack[top++] = 238;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 235;goto st943;} + {stack[top++] = 238;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 235;goto st998;} + {stack[top++] = 238;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 235;goto st1009;} + {stack[top++] = 238;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 235;goto st1026;} + {stack[top++] = 238;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 235;goto st1037;} + {stack[top++] = 238;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 235;goto st1048;} + {stack[top++] = 238;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 235;goto st1061;} + {stack[top++] = 238;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 235;goto st1071;} + {stack[top++] = 238;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 235;goto st1110;} + {stack[top++] = 238;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 235;goto st1302;} + {stack[top++] = 238;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 235;goto st1305;} + {stack[top++] = 238;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 235;goto st1316;} + {stack[top++] = 238;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 235;goto st1318;} + {stack[top++] = 238;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 235;goto st1347;} + {stack[top++] = 238;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 235;goto st1360;} + {stack[top++] = 238;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 235;goto st1373;} + {stack[top++] = 238;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 235;goto st1379;} + {stack[top++] = 238;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 235;goto st1397;} + {stack[top++] = 238;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 235;goto st1392;} + {stack[top++] = 238;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 235;goto st1410;} + {stack[top++] = 238;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 235;goto st1416;} + {stack[top++] = 238;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 235;goto st1422;} + {stack[top++] = 238;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 235;goto st1430;} + {stack[top++] = 238;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 235;goto st1438;} + {stack[top++] = 238;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 238;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st235; -st235: + goto st238; +st238: if ( ++p == pe ) - goto _test_eof235; -case 235: + goto _test_eof238; +case 238: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33410,219 +34226,221 @@ case 235: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 73: goto tr774; - case 79: goto tr775; - case 84: goto tr776; - case 105: goto tr774; - case 111: goto tr775; - case 116: goto tr776; + case 73: goto tr785; + case 79: goto tr786; + case 84: goto tr787; + case 105: goto tr785; + case 111: goto tr786; + case 116: goto tr787; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr879; -tr775: + goto tr890; +tr786: { ERR(ZS_OK); } - goto st236; -st236: - if ( ++p == pe ) - goto _test_eof236; -case 236: - switch( (*p) ) { - case 82: goto st237; - case 114: goto st237; - } - goto tr773; -st237: - if ( ++p == pe ) - goto _test_eof237; -case 237: - switch( (*p) ) { - case 73: goto st238; - case 105: goto st238; - } - goto tr773; -st238: - if ( ++p == pe ) - goto _test_eof238; -case 238: - switch( (*p) ) { - case 71: goto st239; - case 103: goto st239; - } - goto tr773; + goto st239; st239: if ( ++p == pe ) goto _test_eof239; case 239: switch( (*p) ) { - case 73: goto st240; - case 105: goto st240; + case 82: goto st240; + case 114: goto st240; } - goto tr773; + goto tr784; st240: if ( ++p == pe ) goto _test_eof240; case 240: switch( (*p) ) { - case 78: goto st241; - case 110: goto st241; + case 73: goto st241; + case 105: goto st241; } - goto tr773; + goto tr784; st241: if ( ++p == pe ) goto _test_eof241; case 241: switch( (*p) ) { - case 32: goto tr885; - case 59: goto tr885; + case 71: goto st242; + case 103: goto st242; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr885; - } else if ( (*p) >= 9 ) - goto tr885; - goto tr773; -tr776: - { - ERR(ZS_OK); - } - goto st242; + goto tr784; st242: if ( ++p == pe ) goto _test_eof242; case 242: switch( (*p) ) { - case 84: goto st243; - case 116: goto st243; + case 73: goto st243; + case 105: goto st243; } - goto tr773; + goto tr784; st243: if ( ++p == pe ) goto _test_eof243; case 243: switch( (*p) ) { - case 76: goto st244; - case 108: goto st244; + case 78: goto st244; + case 110: goto st244; } - goto tr773; + goto tr784; st244: if ( ++p == pe ) goto _test_eof244; case 244: switch( (*p) ) { - case 32: goto tr888; - case 59: goto tr888; + case 32: goto tr896; + case 59: goto tr896; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr888; + goto tr896; } else if ( (*p) >= 9 ) - goto tr888; - goto tr773; -tr4299: + goto tr896; + goto tr784; +tr787: + { + ERR(ZS_OK); + } + goto st245; +st245: + if ( ++p == pe ) + goto _test_eof245; +case 245: + switch( (*p) ) { + case 84: goto st246; + case 116: goto st246; + } + goto tr784; +st246: + if ( ++p == pe ) + goto _test_eof246; +case 246: + switch( (*p) ) { + case 76: goto st247; + case 108: goto st247; + } + goto tr784; +st247: + if ( ++p == pe ) + goto _test_eof247; +case 247: + switch( (*p) ) { + case 32: goto tr899; + case 59: goto tr899; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr899; + } else if ( (*p) >= 9 ) + goto tr899; + goto tr784; +tr4399: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 245;goto st886;} + {stack[top++] = 248;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 245;goto st888;} + {stack[top++] = 248;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 245;goto st890;} + {stack[top++] = 248;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 245;goto st922;} + {stack[top++] = 248;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 245;goto st927;} + {stack[top++] = 248;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 245;goto st932;} + {stack[top++] = 248;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 245;goto st937;} + {stack[top++] = 248;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 245;goto st941;} + {stack[top++] = 248;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 245;goto st943;} + {stack[top++] = 248;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 245;goto st998;} + {stack[top++] = 248;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 245;goto st1009;} + {stack[top++] = 248;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 245;goto st1026;} + {stack[top++] = 248;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 245;goto st1037;} + {stack[top++] = 248;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 245;goto st1048;} + {stack[top++] = 248;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 245;goto st1061;} + {stack[top++] = 248;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 245;goto st1071;} + {stack[top++] = 248;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 245;goto st1110;} + {stack[top++] = 248;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 245;goto st1302;} + {stack[top++] = 248;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 245;goto st1305;} + {stack[top++] = 248;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 245;goto st1316;} + {stack[top++] = 248;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 245;goto st1318;} + {stack[top++] = 248;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 245;goto st1347;} + {stack[top++] = 248;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 245;goto st1360;} + {stack[top++] = 248;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 245;goto st1373;} + {stack[top++] = 248;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 245;goto st1379;} + {stack[top++] = 248;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 245;goto st1397;} + {stack[top++] = 248;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 245;goto st1392;} + {stack[top++] = 248;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 245;goto st1410;} + {stack[top++] = 248;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 245;goto st1416;} + {stack[top++] = 248;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 245;goto st1422;} + {stack[top++] = 248;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 245;goto st1430;} + {stack[top++] = 248;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 245;goto st1438;} + {stack[top++] = 248;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 248;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 245;goto st318;} } - goto st245; -st245: + { p--; {stack[top++] = 248;goto st321;} } + goto st248; +st248: if ( ++p == pe ) - goto _test_eof245; -case 245: + goto _test_eof248; +case 248: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33636,17 +34454,17 @@ case 245: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr889; -tr4376: + goto tr900; +tr4476: { s->number64 = 0; } @@ -33661,108 +34479,110 @@ tr4376: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 246;goto st886;} + {stack[top++] = 249;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 246;goto st888;} + {stack[top++] = 249;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 246;goto st890;} + {stack[top++] = 249;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 246;goto st922;} + {stack[top++] = 249;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 246;goto st927;} + {stack[top++] = 249;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 246;goto st932;} + {stack[top++] = 249;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 246;goto st937;} + {stack[top++] = 249;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 246;goto st941;} + {stack[top++] = 249;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 246;goto st943;} + {stack[top++] = 249;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 246;goto st998;} + {stack[top++] = 249;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 246;goto st1009;} + {stack[top++] = 249;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 246;goto st1026;} + {stack[top++] = 249;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 246;goto st1037;} + {stack[top++] = 249;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 246;goto st1048;} + {stack[top++] = 249;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 246;goto st1061;} + {stack[top++] = 249;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 246;goto st1071;} + {stack[top++] = 249;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 246;goto st1110;} + {stack[top++] = 249;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 246;goto st1302;} + {stack[top++] = 249;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 246;goto st1305;} + {stack[top++] = 249;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 246;goto st1316;} + {stack[top++] = 249;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 246;goto st1318;} + {stack[top++] = 249;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 246;goto st1347;} + {stack[top++] = 249;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 246;goto st1360;} + {stack[top++] = 249;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 246;goto st1373;} + {stack[top++] = 249;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 246;goto st1379;} + {stack[top++] = 249;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 246;goto st1397;} + {stack[top++] = 249;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 246;goto st1392;} + {stack[top++] = 249;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 246;goto st1410;} + {stack[top++] = 249;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 246;goto st1416;} + {stack[top++] = 249;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 246;goto st1422;} + {stack[top++] = 249;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 246;goto st1430;} + {stack[top++] = 249;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 246;goto st1438;} + {stack[top++] = 249;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 249;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 246;goto st318;} } - goto st246; -st246: + { p--; {stack[top++] = 249;goto st321;} } + goto st249; +st249: if ( ++p == pe ) - goto _test_eof246; -case 246: + goto _test_eof249; +case 249: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33776,47 +34596,47 @@ case 246: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr896; - case 32: goto tr896; - case 40: goto tr897; - case 41: goto tr898; + case 9: goto tr907; + case 32: goto tr907; + case 40: goto tr908; + case 41: goto tr909; case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st204; + case 83: goto st207; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st204; + case 115: goto st207; case 119: goto tr36; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr899; - case 2107: goto tr900; + case 2058: goto tr910; + case 2107: goto tr911; } if ( 48 <= _widec && _widec <= 57 ) goto tr31; - goto tr895; -tr902: + goto tr906; +tr913: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st247; -tr903: + goto st250; +tr914: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st247; -tr896: + goto st250; +tr907: { s->r_owner_length = s->dname_tmp_length; } @@ -33825,22 +34645,22 @@ tr896: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st247; -tr897: + goto st250; +tr908: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -33849,22 +34669,22 @@ tr897: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st247; -tr898: + goto st250; +tr909: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -33873,18 +34693,18 @@ tr898: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st247; -st247: + goto st250; +st250: if ( ++p == pe ) - goto _test_eof247; -case 247: + goto _test_eof250; +case 250: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33898,10 +34718,10 @@ case 247: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st247; - case 32: goto st247; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto st250; + case 32: goto st250; + case 40: goto tr913; + case 41: goto tr914; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -33940,25 +34760,25 @@ case 247: case 122: goto tr22; case 1802: goto tr95; case 1851: goto tr96; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr915; + case 2107: goto tr916; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; goto tr0; -tr905: +tr916: { s->buffer_length = 0; } - goto st248; -tr906: + goto st251; +tr917: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st248; -tr900: + goto st251; +tr911: { s->r_owner_length = s->dname_tmp_length; } @@ -33970,18 +34790,18 @@ tr900: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st248; -st248: + goto st251; +st251: if ( ++p == pe ) - goto _test_eof248; -case 248: + goto _test_eof251; +case 251: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -34002,15 +34822,15 @@ case 248: } switch( _widec ) { case 1802: goto tr98; - case 2058: goto tr907; + case 2058: goto tr918; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr906; + goto tr917; } else if ( _widec >= 1664 ) goto tr97; goto tr154; -tr4377: +tr4477: { s->r_class = s->default_class; } @@ -34021,101 +34841,103 @@ tr4377: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 249;goto st886;} + {stack[top++] = 252;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 249;goto st888;} + {stack[top++] = 252;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 249;goto st890;} + {stack[top++] = 252;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 249;goto st922;} + {stack[top++] = 252;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 249;goto st927;} + {stack[top++] = 252;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 249;goto st932;} + {stack[top++] = 252;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 249;goto st937;} + {stack[top++] = 252;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 249;goto st941;} + {stack[top++] = 252;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 249;goto st943;} + {stack[top++] = 252;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 249;goto st998;} + {stack[top++] = 252;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 249;goto st1009;} + {stack[top++] = 252;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 249;goto st1026;} + {stack[top++] = 252;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 249;goto st1037;} + {stack[top++] = 252;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 249;goto st1048;} + {stack[top++] = 252;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 249;goto st1061;} + {stack[top++] = 252;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 249;goto st1071;} + {stack[top++] = 252;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 249;goto st1110;} + {stack[top++] = 252;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 249;goto st1302;} + {stack[top++] = 252;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 249;goto st1305;} + {stack[top++] = 252;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 249;goto st1316;} + {stack[top++] = 252;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 249;goto st1318;} + {stack[top++] = 252;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 249;goto st1347;} + {stack[top++] = 252;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 249;goto st1360;} + {stack[top++] = 252;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 249;goto st1373;} + {stack[top++] = 252;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 249;goto st1379;} + {stack[top++] = 252;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 249;goto st1397;} + {stack[top++] = 252;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 249;goto st1392;} + {stack[top++] = 252;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 249;goto st1410;} + {stack[top++] = 252;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 249;goto st1416;} + {stack[top++] = 252;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 249;goto st1422;} + {stack[top++] = 252;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 249;goto st1430;} + {stack[top++] = 252;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 249;goto st1438;} + {stack[top++] = 252;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 252;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 249;goto st318;} } - goto st249; -st249: + { p--; {stack[top++] = 252;goto st321;} } + goto st252; +st252: if ( ++p == pe ) - goto _test_eof249; -case 249: + goto _test_eof252; +case 252: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34133,45 +34955,45 @@ case 249: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr909; - case 32: goto tr909; - case 40: goto tr910; - case 41: goto tr911; - case 65: goto st274; - case 70: goto st277; - case 80: goto st281; - case 97: goto st274; - case 102: goto st277; - case 112: goto st281; + case 9: goto tr920; + case 32: goto tr920; + case 40: goto tr921; + case 41: goto tr922; + case 65: goto st277; + case 70: goto st280; + case 80: goto st284; + case 97: goto st277; + case 102: goto st280; + case 112: goto st284; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr912; - case 3131: goto tr913; - case 3338: goto tr847; - case 3387: goto tr848; - case 3594: goto tr914; - case 3643: goto tr915; - } - goto tr908; -tr917: + case 3082: goto tr923; + case 3131: goto tr924; + case 3338: goto tr858; + case 3387: goto tr859; + case 3594: goto tr925; + case 3643: goto tr926; + } + goto tr919; +tr928: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st250; -tr918: + goto st253; +tr929: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st250; -tr909: + goto st253; +tr920: { s->r_owner_length = s->dname_tmp_length; } @@ -34183,15 +35005,15 @@ tr909: s->buffer[0] = 0; s->buffer_length = 0; } - goto st250; -tr910: + goto st253; +tr921: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -34203,15 +35025,15 @@ tr910: s->buffer[0] = 0; s->buffer_length = 0; } - goto st250; -tr911: + goto st253; +tr922: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -34223,11 +35045,11 @@ tr911: s->buffer[0] = 0; s->buffer_length = 0; } - goto st250; -st250: + goto st253; +st253: if ( ++p == pe ) - goto _test_eof250; -case 250: + goto _test_eof253; +case 253: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34245,10 +35067,10 @@ case 250: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st250; - case 32: goto st250; - case 40: goto tr917; - case 41: goto tr918; + case 9: goto st253; + case 32: goto st253; + case 40: goto tr928; + case 41: goto tr929; case 58: goto tr75; case 65: goto tr124; case 67: goto tr125; @@ -34289,12 +35111,12 @@ case 250: case 122: goto tr141; case 2826: goto tr95; case 2875: goto tr96; - case 3082: goto tr919; - case 3131: goto tr875; + case 3082: goto tr930; + case 3131: goto tr886; case 3338: goto tr114; case 3387: goto tr115; - case 3594: goto tr920; - case 3643: goto tr876; + case 3594: goto tr931; + case 3643: goto tr887; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -34316,93 +35138,95 @@ tr146: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1453;goto st886;} + {stack[top++] = 1492;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1453;goto st888;} + {stack[top++] = 1492;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1453;goto st890;} + {stack[top++] = 1492;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1453;goto st922;} + {stack[top++] = 1492;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1453;goto st927;} + {stack[top++] = 1492;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1453;goto st932;} + {stack[top++] = 1492;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1453;goto st937;} + {stack[top++] = 1492;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1453;goto st941;} + {stack[top++] = 1492;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1453;goto st943;} + {stack[top++] = 1492;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1453;goto st998;} + {stack[top++] = 1492;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1453;goto st1009;} + {stack[top++] = 1492;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1453;goto st1026;} + {stack[top++] = 1492;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 1453;goto st1037;} + {stack[top++] = 1492;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1453;goto st1048;} + {stack[top++] = 1492;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1453;goto st1061;} + {stack[top++] = 1492;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1453;goto st1071;} + {stack[top++] = 1492;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1453;goto st1110;} + {stack[top++] = 1492;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1453;goto st1302;} + {stack[top++] = 1492;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1453;goto st1305;} + {stack[top++] = 1492;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1453;goto st1316;} + {stack[top++] = 1492;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1453;goto st1318;} + {stack[top++] = 1492;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1453;goto st1347;} + {stack[top++] = 1492;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1453;goto st1360;} + {stack[top++] = 1492;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1453;goto st1373;} + {stack[top++] = 1492;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1453;goto st1379;} + {stack[top++] = 1492;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1453;goto st1397;} + {stack[top++] = 1492;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 1453;goto st1392;} + {stack[top++] = 1492;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1453;goto st1410;} + {stack[top++] = 1492;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1453;goto st1416;} + {stack[top++] = 1492;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 1453;goto st1422;} + {stack[top++] = 1492;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1453;goto st1430;} + {stack[top++] = 1492;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1453;goto st1438;} + {stack[top++] = 1492;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 1492;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st1453; -tr920: + goto st1492; +tr931: { s->line_counter++; } @@ -34410,95 +35234,97 @@ tr920: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1453;goto st886;} + {stack[top++] = 1492;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1453;goto st888;} + {stack[top++] = 1492;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1453;goto st890;} + {stack[top++] = 1492;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1453;goto st922;} + {stack[top++] = 1492;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1453;goto st927;} + {stack[top++] = 1492;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1453;goto st932;} + {stack[top++] = 1492;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1453;goto st937;} + {stack[top++] = 1492;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1453;goto st941;} + {stack[top++] = 1492;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1453;goto st943;} + {stack[top++] = 1492;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1453;goto st998;} + {stack[top++] = 1492;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1453;goto st1009;} + {stack[top++] = 1492;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1453;goto st1026;} + {stack[top++] = 1492;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 1453;goto st1037;} + {stack[top++] = 1492;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1453;goto st1048;} + {stack[top++] = 1492;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1453;goto st1061;} + {stack[top++] = 1492;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1453;goto st1071;} + {stack[top++] = 1492;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1453;goto st1110;} + {stack[top++] = 1492;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1453;goto st1302;} + {stack[top++] = 1492;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1453;goto st1305;} + {stack[top++] = 1492;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1453;goto st1316;} + {stack[top++] = 1492;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1453;goto st1318;} + {stack[top++] = 1492;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1453;goto st1347;} + {stack[top++] = 1492;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1453;goto st1360;} + {stack[top++] = 1492;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1453;goto st1373;} + {stack[top++] = 1492;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1453;goto st1379;} + {stack[top++] = 1492;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1453;goto st1397;} + {stack[top++] = 1492;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 1453;goto st1392;} + {stack[top++] = 1492;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1453;goto st1410;} + {stack[top++] = 1492;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1453;goto st1416;} + {stack[top++] = 1492;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 1453;goto st1422;} + {stack[top++] = 1492;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1453;goto st1430;} + {stack[top++] = 1492;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1453;goto st1438;} + {stack[top++] = 1492;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 1492;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -34511,16 +35337,16 @@ tr920: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1453; goto _out;} + {p++; cs = 1492; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1453; goto _out;} + p--; {p++; cs = 1492; goto _out;} } } - goto st1453; -tr914: + goto st1492; +tr925: { s->r_owner_length = s->dname_tmp_length; } @@ -34535,89 +35361,91 @@ tr914: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1453;goto st886;} + {stack[top++] = 1492;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1453;goto st888;} + {stack[top++] = 1492;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1453;goto st890;} + {stack[top++] = 1492;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1453;goto st922;} + {stack[top++] = 1492;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1453;goto st927;} + {stack[top++] = 1492;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1453;goto st932;} + {stack[top++] = 1492;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1453;goto st937;} + {stack[top++] = 1492;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1453;goto st941;} + {stack[top++] = 1492;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1453;goto st943;} + {stack[top++] = 1492;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1453;goto st998;} + {stack[top++] = 1492;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1453;goto st1009;} + {stack[top++] = 1492;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1453;goto st1026;} + {stack[top++] = 1492;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 1453;goto st1037;} + {stack[top++] = 1492;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1453;goto st1048;} + {stack[top++] = 1492;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1453;goto st1061;} + {stack[top++] = 1492;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1453;goto st1071;} + {stack[top++] = 1492;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1453;goto st1110;} + {stack[top++] = 1492;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1453;goto st1302;} + {stack[top++] = 1492;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1453;goto st1305;} + {stack[top++] = 1492;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1453;goto st1316;} + {stack[top++] = 1492;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1453;goto st1318;} + {stack[top++] = 1492;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1453;goto st1347;} + {stack[top++] = 1492;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1453;goto st1360;} + {stack[top++] = 1492;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1453;goto st1373;} + {stack[top++] = 1492;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1453;goto st1379;} + {stack[top++] = 1492;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1453;goto st1397;} + {stack[top++] = 1492;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 1453;goto st1392;} + {stack[top++] = 1492;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1453;goto st1410;} + {stack[top++] = 1492;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1453;goto st1416;} + {stack[top++] = 1492;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 1453;goto st1422;} + {stack[top++] = 1492;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1453;goto st1430;} + {stack[top++] = 1492;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1453;goto st1438;} + {stack[top++] = 1492;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 1492;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { @@ -34627,7 +35455,7 @@ tr914: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->r_data_length = rdata_tail - s->r_data; @@ -34640,16 +35468,16 @@ tr914: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1453; goto _out;} + {p++; cs = 1492; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1453; goto _out;} + p--; {p++; cs = 1492; goto _out;} } } - goto st1453; -tr4305: + goto st1492; +tr4405: { s->line_counter++; } @@ -34657,106 +35485,108 @@ tr4305: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1453;goto st886;} + {stack[top++] = 1492;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1453;goto st888;} + {stack[top++] = 1492;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1453;goto st890;} + {stack[top++] = 1492;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1453;goto st922;} + {stack[top++] = 1492;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1453;goto st927;} + {stack[top++] = 1492;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1453;goto st932;} + {stack[top++] = 1492;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1453;goto st937;} + {stack[top++] = 1492;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1453;goto st941;} + {stack[top++] = 1492;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1453;goto st943;} + {stack[top++] = 1492;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1453;goto st998;} + {stack[top++] = 1492;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1453;goto st1009;} + {stack[top++] = 1492;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1453;goto st1026;} + {stack[top++] = 1492;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 1453;goto st1037;} + {stack[top++] = 1492;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1453;goto st1048;} + {stack[top++] = 1492;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1453;goto st1061;} + {stack[top++] = 1492;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1453;goto st1071;} + {stack[top++] = 1492;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1453;goto st1110;} + {stack[top++] = 1492;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1453;goto st1302;} + {stack[top++] = 1492;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1453;goto st1305;} + {stack[top++] = 1492;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1453;goto st1316;} + {stack[top++] = 1492;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1453;goto st1318;} + {stack[top++] = 1492;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1453;goto st1347;} + {stack[top++] = 1492;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1453;goto st1360;} + {stack[top++] = 1492;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1453;goto st1373;} + {stack[top++] = 1492;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1453;goto st1379;} + {stack[top++] = 1492;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1453;goto st1397;} + {stack[top++] = 1492;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 1453;goto st1392;} + {stack[top++] = 1492;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1453;goto st1410;} + {stack[top++] = 1492;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1453;goto st1416;} + {stack[top++] = 1492;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 1453;goto st1422;} + {stack[top++] = 1492;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1453;goto st1430;} + {stack[top++] = 1492;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1453;goto st1438;} + {stack[top++] = 1492;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 1492;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1453; -st1453: + goto st1492; +st1492: if ( ++p == pe ) - goto _test_eof1453; -case 1453: + goto _test_eof1492; +case 1492: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34774,59 +35604,59 @@ case 1453: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4370; - case 32: goto tr4370; - case 36: goto tr4296; - case 40: goto tr4371; - case 41: goto tr4372; - case 42: goto tr4299; + case 9: goto tr4470; + case 32: goto tr4470; + case 36: goto tr4396; + case 40: goto tr4471; + case 41: goto tr4472; + case 42: goto tr4399; case 58: goto tr75; - case 65: goto tr4377; - case 67: goto tr4378; - case 68: goto tr4379; - case 69: goto tr4380; - case 72: goto tr4381; - case 73: goto tr4382; - case 75: goto tr4383; - case 76: goto tr4384; - case 77: goto tr4385; - case 78: goto tr4386; - case 79: goto tr4387; - case 80: goto tr4388; - case 82: goto tr4389; - case 83: goto tr4390; - case 84: goto tr4391; - case 85: goto tr4392; - case 87: goto tr4393; - case 90: goto tr4394; - case 92: goto tr4300; - case 95: goto tr4299; - case 97: goto tr4377; - case 99: goto tr4378; - case 100: goto tr4379; - case 101: goto tr4380; - case 104: goto tr4381; - case 105: goto tr4382; - case 107: goto tr4383; - case 108: goto tr4384; - case 109: goto tr4385; - case 110: goto tr4386; - case 111: goto tr4387; - case 112: goto tr4388; - case 114: goto tr4389; - case 115: goto tr4390; - case 116: goto tr4391; - case 117: goto tr4392; - case 119: goto tr4393; - case 122: goto tr4394; + case 65: goto tr4477; + case 67: goto tr4478; + case 68: goto tr4479; + case 69: goto tr4480; + case 72: goto tr4481; + case 73: goto tr4482; + case 75: goto tr4483; + case 76: goto tr4484; + case 77: goto tr4485; + case 78: goto tr4486; + case 79: goto tr4487; + case 80: goto tr4488; + case 82: goto tr4489; + case 83: goto tr4490; + case 84: goto tr4491; + case 85: goto tr4492; + case 87: goto tr4493; + case 90: goto tr4494; + case 92: goto tr4400; + case 95: goto tr4399; + case 97: goto tr4477; + case 99: goto tr4478; + case 100: goto tr4479; + case 101: goto tr4480; + case 104: goto tr4481; + case 105: goto tr4482; + case 107: goto tr4483; + case 108: goto tr4484; + case 109: goto tr4485; + case 110: goto tr4486; + case 111: goto tr4487; + case 112: goto tr4488; + case 114: goto tr4489; + case 115: goto tr4490; + case 116: goto tr4491; + case 117: goto tr4492; + case 119: goto tr4493; + case 122: goto tr4494; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr4395; - case 3131: goto tr4373; + case 3082: goto tr4495; + case 3131: goto tr4473; case 3338: goto tr107; case 3387: goto tr108; - case 3594: goto tr4395; - case 3643: goto tr4374; + case 3594: goto tr4495; + case 3643: goto tr4474; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -34835,27 +35665,27 @@ case 1453: } else if ( _widec > 44 ) { if ( _widec > 47 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4376; + goto tr4476; } else if ( _widec >= 45 ) - goto tr4299; + goto tr4399; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 89 ) - goto tr4299; + goto tr4399; } else if ( _widec > 96 ) { if ( _widec > 121 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 98 ) - goto tr4299; + goto tr4399; } else goto tr75; } else goto tr75; - goto tr4375; -tr4378: + goto tr4475; +tr4478: { s->r_class = s->default_class; } @@ -34866,101 +35696,103 @@ tr4378: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 251;goto st886;} + {stack[top++] = 254;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 251;goto st888;} + {stack[top++] = 254;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 251;goto st890;} + {stack[top++] = 254;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 251;goto st922;} + {stack[top++] = 254;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 251;goto st927;} + {stack[top++] = 254;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 251;goto st932;} + {stack[top++] = 254;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 251;goto st937;} + {stack[top++] = 254;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 251;goto st941;} + {stack[top++] = 254;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 251;goto st943;} + {stack[top++] = 254;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 251;goto st998;} + {stack[top++] = 254;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 251;goto st1009;} + {stack[top++] = 254;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 251;goto st1026;} + {stack[top++] = 254;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 251;goto st1037;} + {stack[top++] = 254;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 251;goto st1048;} + {stack[top++] = 254;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 251;goto st1061;} + {stack[top++] = 254;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 251;goto st1071;} + {stack[top++] = 254;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 251;goto st1110;} + {stack[top++] = 254;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 251;goto st1302;} + {stack[top++] = 254;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 251;goto st1305;} + {stack[top++] = 254;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 251;goto st1316;} + {stack[top++] = 254;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 251;goto st1318;} + {stack[top++] = 254;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 251;goto st1347;} + {stack[top++] = 254;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 251;goto st1360;} + {stack[top++] = 254;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 251;goto st1373;} + {stack[top++] = 254;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 251;goto st1379;} + {stack[top++] = 254;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 251;goto st1397;} + {stack[top++] = 254;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 251;goto st1392;} + {stack[top++] = 254;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 251;goto st1410;} + {stack[top++] = 254;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 251;goto st1416;} + {stack[top++] = 254;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 251;goto st1422;} + {stack[top++] = 254;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 251;goto st1430;} + {stack[top++] = 254;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 251;goto st1438;} + {stack[top++] = 254;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 254;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 251;goto st318;} } - goto st251; -st251: + { p--; {stack[top++] = 254;goto st321;} } + goto st254; +st254: if ( ++p == pe ) - goto _test_eof251; -case 251: + goto _test_eof254; +case 254: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34974,10 +35806,10 @@ case 251: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; case 65: goto st18; case 68: goto st22; case 69: goto st29; @@ -34990,11 +35822,11 @@ case 251: case 115: goto st36; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4379: + goto tr919; +tr4479: { s->r_class = s->default_class; } @@ -35005,101 +35837,103 @@ tr4379: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 252;goto st886;} + {stack[top++] = 255;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 252;goto st888;} + {stack[top++] = 255;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 252;goto st890;} + {stack[top++] = 255;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 252;goto st922;} + {stack[top++] = 255;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 252;goto st927;} + {stack[top++] = 255;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 252;goto st932;} + {stack[top++] = 255;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 252;goto st937;} + {stack[top++] = 255;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 252;goto st941;} + {stack[top++] = 255;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 252;goto st943;} + {stack[top++] = 255;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 252;goto st998;} + {stack[top++] = 255;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 252;goto st1009;} + {stack[top++] = 255;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 252;goto st1026;} + {stack[top++] = 255;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 252;goto st1037;} + {stack[top++] = 255;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 252;goto st1048;} + {stack[top++] = 255;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 252;goto st1061;} + {stack[top++] = 255;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 252;goto st1071;} + {stack[top++] = 255;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 252;goto st1110;} + {stack[top++] = 255;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 252;goto st1302;} + {stack[top++] = 255;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 252;goto st1305;} + {stack[top++] = 255;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 252;goto st1316;} + {stack[top++] = 255;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 252;goto st1318;} + {stack[top++] = 255;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 252;goto st1347;} + {stack[top++] = 255;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 252;goto st1360;} + {stack[top++] = 255;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 252;goto st1373;} + {stack[top++] = 255;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 252;goto st1379;} + {stack[top++] = 255;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 252;goto st1397;} + {stack[top++] = 255;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 252;goto st1392;} + {stack[top++] = 255;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 252;goto st1410;} + {stack[top++] = 255;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 252;goto st1416;} + {stack[top++] = 255;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 252;goto st1422;} + {stack[top++] = 255;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 252;goto st1430;} + {stack[top++] = 255;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 252;goto st1438;} + {stack[top++] = 255;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 255;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 252;goto st318;} } - goto st252; -st252: + { p--; {stack[top++] = 255;goto st321;} } + goto st255; +st255: if ( ++p == pe ) - goto _test_eof252; -case 252: + goto _test_eof255; +case 255: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35113,10 +35947,10 @@ case 252: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; case 72: goto st41; case 78: goto st45; case 83: goto st53; @@ -35125,11 +35959,11 @@ case 252: case 115: goto st53; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4380: + goto tr919; +tr4480: { s->r_class = s->default_class; } @@ -35140,101 +35974,103 @@ tr4380: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 253;goto st886;} + {stack[top++] = 256;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 253;goto st888;} + {stack[top++] = 256;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 253;goto st890;} + {stack[top++] = 256;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 253;goto st922;} + {stack[top++] = 256;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 253;goto st927;} + {stack[top++] = 256;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 253;goto st932;} + {stack[top++] = 256;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 253;goto st937;} + {stack[top++] = 256;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 253;goto st941;} + {stack[top++] = 256;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 253;goto st943;} + {stack[top++] = 256;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 253;goto st998;} + {stack[top++] = 256;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 253;goto st1009;} + {stack[top++] = 256;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 253;goto st1026;} + {stack[top++] = 256;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 253;goto st1037;} + {stack[top++] = 256;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 253;goto st1048;} + {stack[top++] = 256;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 253;goto st1061;} + {stack[top++] = 256;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 253;goto st1071;} + {stack[top++] = 256;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 253;goto st1110;} + {stack[top++] = 256;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 253;goto st1302;} + {stack[top++] = 256;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 253;goto st1305;} + {stack[top++] = 256;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 253;goto st1316;} + {stack[top++] = 256;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 253;goto st1318;} + {stack[top++] = 256;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 253;goto st1347;} + {stack[top++] = 256;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 253;goto st1360;} + {stack[top++] = 256;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 253;goto st1373;} + {stack[top++] = 256;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 253;goto st1379;} + {stack[top++] = 256;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 253;goto st1397;} + {stack[top++] = 256;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 253;goto st1392;} + {stack[top++] = 256;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 253;goto st1410;} + {stack[top++] = 256;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 253;goto st1416;} + {stack[top++] = 256;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 253;goto st1422;} + {stack[top++] = 256;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 253;goto st1430;} + {stack[top++] = 256;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 253;goto st1438;} + {stack[top++] = 256;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 256;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 253;goto st318;} } - goto st253; -st253: + { p--; {stack[top++] = 256;goto st321;} } + goto st256; +st256: if ( ++p == pe ) - goto _test_eof253; -case 253: + goto _test_eof256; +case 256: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35248,19 +36084,19 @@ case 253: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 85: goto st55; - case 117: goto st55; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 85: goto st58; + case 117: goto st58; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4381: + goto tr919; +tr4481: { s->r_class = s->default_class; } @@ -35271,101 +36107,103 @@ tr4381: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 254;goto st886;} + {stack[top++] = 257;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 254;goto st888;} + {stack[top++] = 257;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 254;goto st890;} + {stack[top++] = 257;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 254;goto st922;} + {stack[top++] = 257;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 254;goto st927;} + {stack[top++] = 257;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 254;goto st932;} + {stack[top++] = 257;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 254;goto st937;} + {stack[top++] = 257;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 254;goto st941;} + {stack[top++] = 257;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 254;goto st943;} + {stack[top++] = 257;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 254;goto st998;} + {stack[top++] = 257;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 254;goto st1009;} + {stack[top++] = 257;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 254;goto st1026;} + {stack[top++] = 257;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 254;goto st1037;} + {stack[top++] = 257;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 254;goto st1048;} + {stack[top++] = 257;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 254;goto st1061;} + {stack[top++] = 257;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 254;goto st1071;} + {stack[top++] = 257;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 254;goto st1110;} + {stack[top++] = 257;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 254;goto st1302;} + {stack[top++] = 257;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 254;goto st1305;} + {stack[top++] = 257;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 254;goto st1316;} + {stack[top++] = 257;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 254;goto st1318;} + {stack[top++] = 257;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 254;goto st1347;} + {stack[top++] = 257;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 254;goto st1360;} + {stack[top++] = 257;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 254;goto st1373;} + {stack[top++] = 257;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 254;goto st1379;} + {stack[top++] = 257;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 254;goto st1397;} + {stack[top++] = 257;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 254;goto st1392;} + {stack[top++] = 257;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 254;goto st1410;} + {stack[top++] = 257;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 254;goto st1416;} + {stack[top++] = 257;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 254;goto st1422;} + {stack[top++] = 257;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 254;goto st1430;} + {stack[top++] = 257;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 254;goto st1438;} + {stack[top++] = 257;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 257;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 254;goto st318;} } - goto st254; -st254: + { p--; {stack[top++] = 257;goto st321;} } + goto st257; +st257: if ( ++p == pe ) - goto _test_eof254; -case 254: + goto _test_eof257; +case 257: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35379,21 +36217,21 @@ case 254: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 73: goto st62; - case 84: goto st66; - case 105: goto st62; - case 116: goto st66; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 73: goto st65; + case 84: goto st69; + case 105: goto st65; + case 116: goto st69; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4382: + goto tr919; +tr4482: { s->r_class = s->default_class; } @@ -35404,101 +36242,103 @@ tr4382: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 255;goto st886;} + {stack[top++] = 258;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 255;goto st888;} + {stack[top++] = 258;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 255;goto st890;} + {stack[top++] = 258;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 255;goto st922;} + {stack[top++] = 258;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 255;goto st927;} + {stack[top++] = 258;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 255;goto st932;} + {stack[top++] = 258;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 255;goto st937;} + {stack[top++] = 258;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 255;goto st941;} + {stack[top++] = 258;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 255;goto st943;} + {stack[top++] = 258;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 255;goto st998;} + {stack[top++] = 258;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 255;goto st1009;} + {stack[top++] = 258;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 255;goto st1026;} + {stack[top++] = 258;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 255;goto st1037;} + {stack[top++] = 258;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 255;goto st1048;} + {stack[top++] = 258;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 255;goto st1061;} + {stack[top++] = 258;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 255;goto st1071;} + {stack[top++] = 258;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 255;goto st1110;} + {stack[top++] = 258;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 255;goto st1302;} + {stack[top++] = 258;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 255;goto st1305;} + {stack[top++] = 258;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 255;goto st1316;} + {stack[top++] = 258;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 255;goto st1318;} + {stack[top++] = 258;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 255;goto st1347;} + {stack[top++] = 258;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 255;goto st1360;} + {stack[top++] = 258;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 255;goto st1373;} + {stack[top++] = 258;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 255;goto st1379;} + {stack[top++] = 258;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 255;goto st1397;} + {stack[top++] = 258;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 255;goto st1392;} + {stack[top++] = 258;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 255;goto st1410;} + {stack[top++] = 258;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 255;goto st1416;} + {stack[top++] = 258;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 255;goto st1422;} + {stack[top++] = 258;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 255;goto st1430;} + {stack[top++] = 258;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 255;goto st1438;} + {stack[top++] = 258;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 258;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 255;goto st318;} } - goto st255; -st255: + { p--; {stack[top++] = 258;goto st321;} } + goto st258; +st258: if ( ++p == pe ) - goto _test_eof255; -case 255: + goto _test_eof258; +case 258: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35512,21 +36352,21 @@ case 255: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 78: goto st182; - case 80: goto st74; - case 110: goto st182; - case 112: goto st74; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 78: goto st185; + case 80: goto st77; + case 110: goto st185; + case 112: goto st77; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4383: + goto tr919; +tr4483: { s->r_class = s->default_class; } @@ -35537,101 +36377,103 @@ tr4383: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 256;goto st886;} + {stack[top++] = 259;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 256;goto st888;} + {stack[top++] = 259;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 256;goto st890;} + {stack[top++] = 259;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 256;goto st922;} + {stack[top++] = 259;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 256;goto st927;} + {stack[top++] = 259;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 256;goto st932;} + {stack[top++] = 259;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 256;goto st937;} + {stack[top++] = 259;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 256;goto st941;} + {stack[top++] = 259;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 256;goto st943;} + {stack[top++] = 259;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 256;goto st998;} + {stack[top++] = 259;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 256;goto st1009;} + {stack[top++] = 259;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 256;goto st1026;} + {stack[top++] = 259;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 256;goto st1037;} + {stack[top++] = 259;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 256;goto st1048;} + {stack[top++] = 259;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 256;goto st1061;} + {stack[top++] = 259;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 256;goto st1071;} + {stack[top++] = 259;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 256;goto st1110;} + {stack[top++] = 259;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 256;goto st1302;} + {stack[top++] = 259;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 256;goto st1305;} + {stack[top++] = 259;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 256;goto st1316;} + {stack[top++] = 259;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 256;goto st1318;} + {stack[top++] = 259;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 256;goto st1347;} + {stack[top++] = 259;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 256;goto st1360;} + {stack[top++] = 259;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 256;goto st1373;} + {stack[top++] = 259;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 256;goto st1379;} + {stack[top++] = 259;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 256;goto st1397;} + {stack[top++] = 259;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 256;goto st1392;} + {stack[top++] = 259;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 256;goto st1410;} + {stack[top++] = 259;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 256;goto st1416;} + {stack[top++] = 259;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 256;goto st1422;} + {stack[top++] = 259;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 256;goto st1430;} + {stack[top++] = 259;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 256;goto st1438;} + {stack[top++] = 259;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 259;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 256;goto st318;} } - goto st256; -st256: + { p--; {stack[top++] = 259;goto st321;} } + goto st259; +st259: if ( ++p == pe ) - goto _test_eof256; -case 256: + goto _test_eof259; +case 259: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35645,21 +36487,21 @@ case 256: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 69: goto st82; - case 88: goto st84; - case 101: goto st82; - case 120: goto st84; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 69: goto st85; + case 88: goto st87; + case 101: goto st85; + case 120: goto st87; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4384: + goto tr919; +tr4484: { s->r_class = s->default_class; } @@ -35670,101 +36512,103 @@ tr4384: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 257;goto st886;} + {stack[top++] = 260;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 257;goto st888;} + {stack[top++] = 260;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 257;goto st890;} + {stack[top++] = 260;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 257;goto st922;} + {stack[top++] = 260;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 257;goto st927;} + {stack[top++] = 260;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 257;goto st932;} + {stack[top++] = 260;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 257;goto st937;} + {stack[top++] = 260;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 257;goto st941;} + {stack[top++] = 260;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 257;goto st943;} + {stack[top++] = 260;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 257;goto st998;} + {stack[top++] = 260;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 257;goto st1009;} + {stack[top++] = 260;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 257;goto st1026;} + {stack[top++] = 260;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 257;goto st1037;} + {stack[top++] = 260;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 257;goto st1048;} + {stack[top++] = 260;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 257;goto st1061;} + {stack[top++] = 260;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 257;goto st1071;} + {stack[top++] = 260;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 257;goto st1110;} + {stack[top++] = 260;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 257;goto st1302;} + {stack[top++] = 260;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 257;goto st1305;} + {stack[top++] = 260;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 257;goto st1316;} + {stack[top++] = 260;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 257;goto st1318;} + {stack[top++] = 260;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 257;goto st1347;} + {stack[top++] = 260;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 257;goto st1360;} + {stack[top++] = 260;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 257;goto st1373;} + {stack[top++] = 260;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 257;goto st1379;} + {stack[top++] = 260;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 257;goto st1397;} + {stack[top++] = 260;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 257;goto st1392;} + {stack[top++] = 260;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 257;goto st1410;} + {stack[top++] = 260;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 257;goto st1416;} + {stack[top++] = 260;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 257;goto st1422;} + {stack[top++] = 260;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 257;goto st1430;} + {stack[top++] = 260;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 257;goto st1438;} + {stack[top++] = 260;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 260;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 257;goto st318;} } - goto st257; -st257: + { p--; {stack[top++] = 260;goto st321;} } + goto st260; +st260: if ( ++p == pe ) - goto _test_eof257; -case 257: + goto _test_eof260; +case 260: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35778,23 +36622,23 @@ case 257: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 51: goto st86; - case 54: goto st88; - case 79: goto st90; - case 80: goto st92; - case 111: goto st90; - case 112: goto st92; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 51: goto st89; + case 54: goto st91; + case 79: goto st93; + case 80: goto st95; + case 111: goto st93; + case 112: goto st95; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4385: + goto tr919; +tr4485: { s->r_class = s->default_class; } @@ -35805,101 +36649,103 @@ tr4385: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 258;goto st886;} + {stack[top++] = 261;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 258;goto st888;} + {stack[top++] = 261;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 258;goto st890;} + {stack[top++] = 261;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 258;goto st922;} + {stack[top++] = 261;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 258;goto st927;} + {stack[top++] = 261;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 258;goto st932;} + {stack[top++] = 261;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 258;goto st937;} + {stack[top++] = 261;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 258;goto st941;} + {stack[top++] = 261;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 258;goto st943;} + {stack[top++] = 261;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 258;goto st998;} + {stack[top++] = 261;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 258;goto st1009;} + {stack[top++] = 261;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 258;goto st1026;} + {stack[top++] = 261;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 258;goto st1037;} + {stack[top++] = 261;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 258;goto st1048;} + {stack[top++] = 261;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 258;goto st1061;} + {stack[top++] = 261;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 258;goto st1071;} + {stack[top++] = 261;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 258;goto st1110;} + {stack[top++] = 261;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 258;goto st1302;} + {stack[top++] = 261;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 258;goto st1305;} + {stack[top++] = 261;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 258;goto st1316;} + {stack[top++] = 261;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 258;goto st1318;} + {stack[top++] = 261;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 258;goto st1347;} + {stack[top++] = 261;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 258;goto st1360;} + {stack[top++] = 261;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 258;goto st1373;} + {stack[top++] = 261;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 258;goto st1379;} + {stack[top++] = 261;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 258;goto st1397;} + {stack[top++] = 261;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 258;goto st1392;} + {stack[top++] = 261;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 258;goto st1410;} + {stack[top++] = 261;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 258;goto st1416;} + {stack[top++] = 261;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 258;goto st1422;} + {stack[top++] = 261;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 258;goto st1430;} + {stack[top++] = 261;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 258;goto st1438;} + {stack[top++] = 261;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 261;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 258;goto st318;} } - goto st258; -st258: + { p--; {stack[top++] = 261;goto st321;} } + goto st261; +st261: if ( ++p == pe ) - goto _test_eof258; -case 258: + goto _test_eof261; +case 261: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35913,21 +36759,21 @@ case 258: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 73: goto st94; - case 88: goto st98; - case 105: goto st94; - case 120: goto st98; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 73: goto st97; + case 88: goto st101; + case 105: goto st97; + case 120: goto st101; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4386: + goto tr919; +tr4486: { s->r_class = s->default_class; } @@ -35938,101 +36784,103 @@ tr4386: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 259;goto st886;} + {stack[top++] = 262;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 259;goto st888;} + {stack[top++] = 262;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 259;goto st890;} + {stack[top++] = 262;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 259;goto st922;} + {stack[top++] = 262;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 259;goto st927;} + {stack[top++] = 262;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 259;goto st932;} + {stack[top++] = 262;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 259;goto st937;} + {stack[top++] = 262;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 259;goto st941;} + {stack[top++] = 262;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 259;goto st943;} + {stack[top++] = 262;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 259;goto st998;} + {stack[top++] = 262;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 259;goto st1009;} + {stack[top++] = 262;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 259;goto st1026;} + {stack[top++] = 262;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 259;goto st1037;} + {stack[top++] = 262;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 259;goto st1048;} + {stack[top++] = 262;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 259;goto st1061;} + {stack[top++] = 262;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 259;goto st1071;} + {stack[top++] = 262;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 259;goto st1110;} + {stack[top++] = 262;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 259;goto st1302;} + {stack[top++] = 262;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 259;goto st1305;} + {stack[top++] = 262;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 259;goto st1316;} + {stack[top++] = 262;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 259;goto st1318;} + {stack[top++] = 262;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 259;goto st1347;} + {stack[top++] = 262;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 259;goto st1360;} + {stack[top++] = 262;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 259;goto st1373;} + {stack[top++] = 262;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 259;goto st1379;} + {stack[top++] = 262;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 259;goto st1397;} + {stack[top++] = 262;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 259;goto st1392;} + {stack[top++] = 262;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 259;goto st1410;} + {stack[top++] = 262;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 259;goto st1416;} + {stack[top++] = 262;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 259;goto st1422;} + {stack[top++] = 262;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 259;goto st1430;} + {stack[top++] = 262;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 259;goto st1438;} + {stack[top++] = 262;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 262;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 259;goto st318;} } - goto st259; -st259: + { p--; {stack[top++] = 262;goto st321;} } + goto st262; +st262: if ( ++p == pe ) - goto _test_eof259; -case 259: + goto _test_eof262; +case 262: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36046,23 +36894,23 @@ case 259: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 65: goto st100; - case 73: goto st104; - case 83: goto st106; - case 97: goto st100; - case 105: goto st104; - case 115: goto st106; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 65: goto st103; + case 73: goto st107; + case 83: goto st109; + case 97: goto st103; + case 105: goto st107; + case 115: goto st109; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4387: + goto tr919; +tr4487: { s->r_class = s->default_class; } @@ -36073,101 +36921,103 @@ tr4387: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 260;goto st886;} + {stack[top++] = 263;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 260;goto st888;} + {stack[top++] = 263;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 260;goto st890;} + {stack[top++] = 263;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 260;goto st922;} + {stack[top++] = 263;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 260;goto st927;} + {stack[top++] = 263;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 260;goto st932;} + {stack[top++] = 263;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 260;goto st937;} + {stack[top++] = 263;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 260;goto st941;} + {stack[top++] = 263;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 260;goto st943;} + {stack[top++] = 263;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 260;goto st998;} + {stack[top++] = 263;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 260;goto st1009;} + {stack[top++] = 263;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 260;goto st1026;} + {stack[top++] = 263;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 260;goto st1037;} + {stack[top++] = 263;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 260;goto st1048;} + {stack[top++] = 263;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 260;goto st1061;} + {stack[top++] = 263;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 260;goto st1071;} + {stack[top++] = 263;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 260;goto st1110;} + {stack[top++] = 263;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 260;goto st1302;} + {stack[top++] = 263;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 260;goto st1305;} + {stack[top++] = 263;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 260;goto st1316;} + {stack[top++] = 263;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 260;goto st1318;} + {stack[top++] = 263;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 260;goto st1347;} + {stack[top++] = 263;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 260;goto st1360;} + {stack[top++] = 263;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 260;goto st1373;} + {stack[top++] = 263;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 260;goto st1379;} + {stack[top++] = 263;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 260;goto st1397;} + {stack[top++] = 263;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 260;goto st1392;} + {stack[top++] = 263;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 260;goto st1410;} + {stack[top++] = 263;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 260;goto st1416;} + {stack[top++] = 263;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 260;goto st1422;} + {stack[top++] = 263;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 260;goto st1430;} + {stack[top++] = 263;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 260;goto st1438;} + {stack[top++] = 263;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 263;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 260;goto st318;} } - goto st260; -st260: + { p--; {stack[top++] = 263;goto st321;} } + goto st263; +st263: if ( ++p == pe ) - goto _test_eof260; -case 260: + goto _test_eof263; +case 263: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36181,19 +37031,19 @@ case 260: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 80: goto st116; - case 112: goto st116; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 80: goto st119; + case 112: goto st119; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4388: + goto tr919; +tr4488: { s->r_class = s->default_class; } @@ -36204,101 +37054,103 @@ tr4388: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 261;goto st886;} + {stack[top++] = 264;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 261;goto st888;} + {stack[top++] = 264;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 261;goto st890;} + {stack[top++] = 264;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 261;goto st922;} + {stack[top++] = 264;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 261;goto st927;} + {stack[top++] = 264;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 261;goto st932;} + {stack[top++] = 264;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 261;goto st937;} + {stack[top++] = 264;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 261;goto st941;} + {stack[top++] = 264;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 261;goto st943;} + {stack[top++] = 264;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 261;goto st998;} + {stack[top++] = 264;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 261;goto st1009;} + {stack[top++] = 264;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 261;goto st1026;} + {stack[top++] = 264;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 261;goto st1037;} + {stack[top++] = 264;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 261;goto st1048;} + {stack[top++] = 264;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 261;goto st1061;} + {stack[top++] = 264;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 261;goto st1071;} + {stack[top++] = 264;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 261;goto st1110;} + {stack[top++] = 264;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 261;goto st1302;} + {stack[top++] = 264;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 261;goto st1305;} + {stack[top++] = 264;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 261;goto st1316;} + {stack[top++] = 264;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 261;goto st1318;} + {stack[top++] = 264;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 261;goto st1347;} + {stack[top++] = 264;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 261;goto st1360;} + {stack[top++] = 264;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 261;goto st1373;} + {stack[top++] = 264;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 261;goto st1379;} + {stack[top++] = 264;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 261;goto st1397;} + {stack[top++] = 264;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 261;goto st1392;} + {stack[top++] = 264;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 261;goto st1410;} + {stack[top++] = 264;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 261;goto st1416;} + {stack[top++] = 264;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 261;goto st1422;} + {stack[top++] = 264;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 261;goto st1430;} + {stack[top++] = 264;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 261;goto st1438;} + {stack[top++] = 264;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 264;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 261;goto st318;} } - goto st261; -st261: + { p--; {stack[top++] = 264;goto st321;} } + goto st264; +st264: if ( ++p == pe ) - goto _test_eof261; -case 261: + goto _test_eof264; +case 264: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36312,19 +37164,19 @@ case 261: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 84: goto st126; - case 116: goto st126; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 84: goto st129; + case 116: goto st129; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4389: + goto tr919; +tr4489: { s->r_class = s->default_class; } @@ -36335,101 +37187,103 @@ tr4389: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 262;goto st886;} + {stack[top++] = 265;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 262;goto st888;} + {stack[top++] = 265;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 262;goto st890;} + {stack[top++] = 265;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 262;goto st922;} + {stack[top++] = 265;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 262;goto st927;} + {stack[top++] = 265;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 262;goto st932;} + {stack[top++] = 265;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 262;goto st937;} + {stack[top++] = 265;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 262;goto st941;} + {stack[top++] = 265;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 262;goto st943;} + {stack[top++] = 265;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 262;goto st998;} + {stack[top++] = 265;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 262;goto st1009;} + {stack[top++] = 265;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 262;goto st1026;} + {stack[top++] = 265;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 262;goto st1037;} + {stack[top++] = 265;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 262;goto st1048;} + {stack[top++] = 265;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 262;goto st1061;} + {stack[top++] = 265;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 262;goto st1071;} + {stack[top++] = 265;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 262;goto st1110;} + {stack[top++] = 265;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 262;goto st1302;} + {stack[top++] = 265;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 262;goto st1305;} + {stack[top++] = 265;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 262;goto st1316;} + {stack[top++] = 265;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 262;goto st1318;} + {stack[top++] = 265;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 262;goto st1347;} + {stack[top++] = 265;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 262;goto st1360;} + {stack[top++] = 265;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 262;goto st1373;} + {stack[top++] = 265;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 262;goto st1379;} + {stack[top++] = 265;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 262;goto st1397;} + {stack[top++] = 265;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 262;goto st1392;} + {stack[top++] = 265;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 262;goto st1410;} + {stack[top++] = 265;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 262;goto st1416;} + {stack[top++] = 265;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 262;goto st1422;} + {stack[top++] = 265;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 262;goto st1430;} + {stack[top++] = 265;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 262;goto st1438;} + {stack[top++] = 265;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 265;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 262;goto st318;} } - goto st262; -st262: + { p--; {stack[top++] = 265;goto st321;} } + goto st265; +st265: if ( ++p == pe ) - goto _test_eof262; -case 262: + goto _test_eof265; +case 265: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36443,23 +37297,23 @@ case 262: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 80: goto st129; - case 82: goto st130; - case 84: goto st134; - case 112: goto st129; - case 114: goto st130; - case 116: goto st134; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 80: goto st132; + case 82: goto st133; + case 84: goto st137; + case 112: goto st132; + case 114: goto st133; + case 116: goto st137; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4390: + goto tr919; +tr4490: { s->r_class = s->default_class; } @@ -36470,101 +37324,103 @@ tr4390: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 263;goto st886;} + {stack[top++] = 266;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 263;goto st888;} + {stack[top++] = 266;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 263;goto st890;} + {stack[top++] = 266;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 263;goto st922;} + {stack[top++] = 266;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 263;goto st927;} + {stack[top++] = 266;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 263;goto st932;} + {stack[top++] = 266;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 263;goto st937;} + {stack[top++] = 266;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 263;goto st941;} + {stack[top++] = 266;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 263;goto st943;} + {stack[top++] = 266;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 263;goto st998;} + {stack[top++] = 266;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 263;goto st1009;} + {stack[top++] = 266;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 263;goto st1026;} + {stack[top++] = 266;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 263;goto st1037;} + {stack[top++] = 266;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 263;goto st1048;} + {stack[top++] = 266;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 263;goto st1061;} + {stack[top++] = 266;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 263;goto st1071;} + {stack[top++] = 266;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 263;goto st1110;} + {stack[top++] = 266;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 263;goto st1302;} + {stack[top++] = 266;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 263;goto st1305;} + {stack[top++] = 266;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 263;goto st1316;} + {stack[top++] = 266;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 263;goto st1318;} + {stack[top++] = 266;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 263;goto st1347;} + {stack[top++] = 266;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 263;goto st1360;} + {stack[top++] = 266;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 263;goto st1373;} + {stack[top++] = 266;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 263;goto st1379;} + {stack[top++] = 266;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 263;goto st1397;} + {stack[top++] = 266;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 263;goto st1392;} + {stack[top++] = 266;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 263;goto st1410;} + {stack[top++] = 266;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 263;goto st1416;} + {stack[top++] = 266;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 263;goto st1422;} + {stack[top++] = 266;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 263;goto st1430;} + {stack[top++] = 266;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 263;goto st1438;} + {stack[top++] = 266;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 266;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 263;goto st318;} } - goto st263; -st263: + { p--; {stack[top++] = 266;goto st321;} } + goto st266; +st266: if ( ++p == pe ) - goto _test_eof263; -case 263: + goto _test_eof266; +case 266: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36578,29 +37434,29 @@ case 263: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 77: goto st136; - case 79: goto st141; - case 80: goto st143; - case 82: goto st145; - case 83: goto st147; - case 86: goto st151; - case 109: goto st136; - case 111: goto st141; - case 112: goto st143; - case 114: goto st145; - case 115: goto st147; - case 118: goto st151; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 77: goto st139; + case 79: goto st144; + case 80: goto st146; + case 82: goto st148; + case 83: goto st150; + case 86: goto st154; + case 109: goto st139; + case 111: goto st144; + case 112: goto st146; + case 114: goto st148; + case 115: goto st150; + case 118: goto st154; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4391: + goto tr919; +tr4491: { s->r_class = s->default_class; } @@ -36611,101 +37467,103 @@ tr4391: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 264;goto st886;} + {stack[top++] = 267;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 264;goto st888;} + {stack[top++] = 267;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 264;goto st890;} + {stack[top++] = 267;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 264;goto st922;} + {stack[top++] = 267;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 264;goto st927;} + {stack[top++] = 267;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 264;goto st932;} + {stack[top++] = 267;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 264;goto st937;} + {stack[top++] = 267;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 264;goto st941;} + {stack[top++] = 267;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 264;goto st943;} + {stack[top++] = 267;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 264;goto st998;} + {stack[top++] = 267;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 264;goto st1009;} + {stack[top++] = 267;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 264;goto st1026;} + {stack[top++] = 267;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 264;goto st1037;} + {stack[top++] = 267;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 264;goto st1048;} + {stack[top++] = 267;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 264;goto st1061;} + {stack[top++] = 267;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 264;goto st1071;} + {stack[top++] = 267;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 264;goto st1110;} + {stack[top++] = 267;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 264;goto st1302;} + {stack[top++] = 267;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 264;goto st1305;} + {stack[top++] = 267;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 264;goto st1316;} + {stack[top++] = 267;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 264;goto st1318;} + {stack[top++] = 267;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 264;goto st1347;} + {stack[top++] = 267;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 264;goto st1360;} + {stack[top++] = 267;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 264;goto st1373;} + {stack[top++] = 267;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 264;goto st1379;} + {stack[top++] = 267;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 264;goto st1397;} + {stack[top++] = 267;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 264;goto st1392;} + {stack[top++] = 267;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 264;goto st1410;} + {stack[top++] = 267;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 264;goto st1416;} + {stack[top++] = 267;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 264;goto st1422;} + {stack[top++] = 267;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 264;goto st1430;} + {stack[top++] = 267;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 264;goto st1438;} + {stack[top++] = 267;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 267;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 264;goto st318;} } - goto st264; -st264: + { p--; {stack[top++] = 267;goto st321;} } + goto st267; +st267: if ( ++p == pe ) - goto _test_eof264; -case 264: + goto _test_eof267; +case 267: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36719,23 +37577,23 @@ case 264: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 76: goto st155; - case 88: goto st158; - case 89: goto st160; - case 108: goto st155; - case 120: goto st158; - case 121: goto st160; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 76: goto st158; + case 88: goto st161; + case 89: goto st163; + case 108: goto st158; + case 120: goto st161; + case 121: goto st163; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4392: + goto tr919; +tr4492: { s->r_class = s->default_class; } @@ -36746,101 +37604,103 @@ tr4392: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 265;goto st886;} + {stack[top++] = 268;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 265;goto st888;} + {stack[top++] = 268;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 265;goto st890;} + {stack[top++] = 268;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 265;goto st922;} + {stack[top++] = 268;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 265;goto st927;} + {stack[top++] = 268;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 265;goto st932;} + {stack[top++] = 268;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 265;goto st937;} + {stack[top++] = 268;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 265;goto st941;} + {stack[top++] = 268;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 265;goto st943;} + {stack[top++] = 268;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 265;goto st998;} + {stack[top++] = 268;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 265;goto st1009;} + {stack[top++] = 268;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 265;goto st1026;} + {stack[top++] = 268;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 265;goto st1037;} + {stack[top++] = 268;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 265;goto st1048;} + {stack[top++] = 268;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 265;goto st1061;} + {stack[top++] = 268;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 265;goto st1071;} + {stack[top++] = 268;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 265;goto st1110;} + {stack[top++] = 268;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 265;goto st1302;} + {stack[top++] = 268;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 265;goto st1305;} + {stack[top++] = 268;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 265;goto st1316;} + {stack[top++] = 268;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 265;goto st1318;} + {stack[top++] = 268;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 265;goto st1347;} + {stack[top++] = 268;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 265;goto st1360;} + {stack[top++] = 268;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 265;goto st1373;} + {stack[top++] = 268;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 265;goto st1379;} + {stack[top++] = 268;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 265;goto st1397;} + {stack[top++] = 268;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 265;goto st1392;} + {stack[top++] = 268;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 265;goto st1410;} + {stack[top++] = 268;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 265;goto st1416;} + {stack[top++] = 268;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 265;goto st1422;} + {stack[top++] = 268;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 265;goto st1430;} + {stack[top++] = 268;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 265;goto st1438;} + {stack[top++] = 268;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 268;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 265;goto st318;} } - goto st265; -st265: + { p--; {stack[top++] = 268;goto st321;} } + goto st268; +st268: if ( ++p == pe ) - goto _test_eof265; -case 265: + goto _test_eof268; +case 268: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36854,19 +37714,19 @@ case 265: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 82: goto st165; - case 114: goto st165; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 82: goto st168; + case 114: goto st168; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4393: + goto tr919; +tr4493: { s->r_class = s->default_class; } @@ -36877,101 +37737,103 @@ tr4393: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 266;goto st886;} + {stack[top++] = 269;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 266;goto st888;} + {stack[top++] = 269;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 266;goto st890;} + {stack[top++] = 269;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 266;goto st922;} + {stack[top++] = 269;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 266;goto st927;} + {stack[top++] = 269;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 266;goto st932;} + {stack[top++] = 269;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 266;goto st937;} + {stack[top++] = 269;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 266;goto st941;} + {stack[top++] = 269;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 266;goto st943;} + {stack[top++] = 269;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 266;goto st998;} + {stack[top++] = 269;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 266;goto st1009;} + {stack[top++] = 269;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 266;goto st1026;} + {stack[top++] = 269;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 266;goto st1037;} + {stack[top++] = 269;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 266;goto st1048;} + {stack[top++] = 269;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 266;goto st1061;} + {stack[top++] = 269;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 266;goto st1071;} + {stack[top++] = 269;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 266;goto st1110;} + {stack[top++] = 269;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 266;goto st1302;} + {stack[top++] = 269;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 266;goto st1305;} + {stack[top++] = 269;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 266;goto st1316;} + {stack[top++] = 269;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 266;goto st1318;} + {stack[top++] = 269;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 266;goto st1347;} + {stack[top++] = 269;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 266;goto st1360;} + {stack[top++] = 269;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 266;goto st1373;} + {stack[top++] = 269;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 266;goto st1379;} + {stack[top++] = 269;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 266;goto st1397;} + {stack[top++] = 269;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 266;goto st1392;} + {stack[top++] = 269;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 266;goto st1410;} + {stack[top++] = 269;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 266;goto st1416;} + {stack[top++] = 269;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 266;goto st1422;} + {stack[top++] = 269;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 266;goto st1430;} + {stack[top++] = 269;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 266;goto st1438;} + {stack[top++] = 269;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 269;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 266;goto st318;} } - goto st266; -st266: + { p--; {stack[top++] = 269;goto st321;} } + goto st269; +st269: if ( ++p == pe ) - goto _test_eof266; -case 266: + goto _test_eof269; +case 269: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36985,19 +37847,19 @@ case 266: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 65: goto st168; - case 97: goto st168; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 65: goto st171; + case 97: goto st171; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4394: + goto tr919; +tr4494: { s->r_class = s->default_class; } @@ -37008,101 +37870,103 @@ tr4394: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 267;goto st886;} + {stack[top++] = 270;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 267;goto st888;} + {stack[top++] = 270;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 267;goto st890;} + {stack[top++] = 270;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 267;goto st922;} + {stack[top++] = 270;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 267;goto st927;} + {stack[top++] = 270;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 267;goto st932;} + {stack[top++] = 270;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 267;goto st937;} + {stack[top++] = 270;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 267;goto st941;} + {stack[top++] = 270;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 267;goto st943;} + {stack[top++] = 270;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 267;goto st998;} + {stack[top++] = 270;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 267;goto st1009;} + {stack[top++] = 270;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 267;goto st1026;} + {stack[top++] = 270;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 267;goto st1037;} + {stack[top++] = 270;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 267;goto st1048;} + {stack[top++] = 270;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 267;goto st1061;} + {stack[top++] = 270;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 267;goto st1071;} + {stack[top++] = 270;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 267;goto st1110;} + {stack[top++] = 270;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 267;goto st1302;} + {stack[top++] = 270;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 267;goto st1305;} + {stack[top++] = 270;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 267;goto st1316;} + {stack[top++] = 270;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 267;goto st1318;} + {stack[top++] = 270;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 267;goto st1347;} + {stack[top++] = 270;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 267;goto st1360;} + {stack[top++] = 270;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 267;goto st1373;} + {stack[top++] = 270;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 267;goto st1379;} + {stack[top++] = 270;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 267;goto st1397;} + {stack[top++] = 270;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 267;goto st1392;} + {stack[top++] = 270;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 267;goto st1410;} + {stack[top++] = 270;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 267;goto st1416;} + {stack[top++] = 270;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 267;goto st1422;} + {stack[top++] = 270;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 267;goto st1430;} + {stack[top++] = 270;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 267;goto st1438;} + {stack[top++] = 270;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 270;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 267;goto st318;} } - goto st267; -st267: + { p--; {stack[top++] = 270;goto st321;} } + goto st270; +st270: if ( ++p == pe ) - goto _test_eof267; -case 267: + goto _test_eof270; +case 270: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37116,19 +37980,19 @@ case 267: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr890; - case 32: goto tr890; - case 40: goto tr891; - case 41: goto tr892; - case 79: goto st174; - case 111: goto st174; + case 9: goto tr901; + case 32: goto tr901; + case 40: goto tr902; + case 41: goto tr903; + case 79: goto st177; + case 111: goto st177; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr893; - case 2107: goto tr894; + case 2058: goto tr904; + case 2107: goto tr905; } - goto tr908; -tr4300: + goto tr919; +tr4400: { if (pe - p == 1) { *wrap = WRAP_DETECTED; @@ -37138,12 +38002,12 @@ tr4300: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 268;goto st318;} } - goto st268; -st268: + { p--; {stack[top++] = 271;goto st321;} } + goto st271; +st271: if ( ++p == pe ) - goto _test_eof268; -case 268: + goto _test_eof271; +case 271: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37157,15 +38021,15 @@ case 268: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr921; - case 32: goto tr921; + case 9: goto tr932; + case 32: goto tr932; case 35: goto tr100; - case 40: goto tr923; - case 41: goto tr924; + case 40: goto tr934; + case 41: goto tr935; case 1802: goto tr99; case 1851: goto tr99; - case 2058: goto tr925; - case 2107: goto tr926; + case 2058: goto tr936; + case 2107: goto tr937; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -37175,8 +38039,8 @@ case 268: goto tr99; } else goto tr99; - goto tr922; -tr921: + goto tr933; +tr932: { s->r_owner_length = s->dname_tmp_length; } @@ -37189,100 +38053,102 @@ tr921: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 269;goto st886;} + {stack[top++] = 272;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 269;goto st888;} + {stack[top++] = 272;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 269;goto st890;} + {stack[top++] = 272;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 269;goto st922;} + {stack[top++] = 272;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 269;goto st927;} + {stack[top++] = 272;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 269;goto st932;} + {stack[top++] = 272;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 269;goto st937;} + {stack[top++] = 272;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 269;goto st941;} + {stack[top++] = 272;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 269;goto st943;} + {stack[top++] = 272;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 269;goto st998;} + {stack[top++] = 272;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 269;goto st1009;} + {stack[top++] = 272;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 269;goto st1026;} + {stack[top++] = 272;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 269;goto st1037;} + {stack[top++] = 272;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 269;goto st1048;} + {stack[top++] = 272;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 269;goto st1061;} + {stack[top++] = 272;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 269;goto st1071;} + {stack[top++] = 272;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 269;goto st1110;} + {stack[top++] = 272;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 269;goto st1302;} + {stack[top++] = 272;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 269;goto st1305;} + {stack[top++] = 272;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 269;goto st1316;} + {stack[top++] = 272;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 269;goto st1318;} + {stack[top++] = 272;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 269;goto st1347;} + {stack[top++] = 272;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 269;goto st1360;} + {stack[top++] = 272;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 269;goto st1373;} + {stack[top++] = 272;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 269;goto st1379;} + {stack[top++] = 272;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 269;goto st1397;} + {stack[top++] = 272;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 269;goto st1392;} + {stack[top++] = 272;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 269;goto st1410;} + {stack[top++] = 272;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 269;goto st1416;} + {stack[top++] = 272;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 269;goto st1422;} + {stack[top++] = 272;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 269;goto st1430;} + {stack[top++] = 272;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 269;goto st1438;} + {stack[top++] = 272;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 272;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st269; -tr923: + goto st272; +tr934: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -37295,100 +38161,102 @@ tr923: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 269;goto st886;} + {stack[top++] = 272;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 269;goto st888;} + {stack[top++] = 272;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 269;goto st890;} + {stack[top++] = 272;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 269;goto st922;} + {stack[top++] = 272;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 269;goto st927;} + {stack[top++] = 272;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 269;goto st932;} + {stack[top++] = 272;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 269;goto st937;} + {stack[top++] = 272;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 269;goto st941;} + {stack[top++] = 272;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 269;goto st943;} + {stack[top++] = 272;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 269;goto st998;} + {stack[top++] = 272;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 269;goto st1009;} + {stack[top++] = 272;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 269;goto st1026;} + {stack[top++] = 272;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 269;goto st1037;} + {stack[top++] = 272;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 269;goto st1048;} + {stack[top++] = 272;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 269;goto st1061;} + {stack[top++] = 272;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 269;goto st1071;} + {stack[top++] = 272;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 269;goto st1110;} + {stack[top++] = 272;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 269;goto st1302;} + {stack[top++] = 272;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 269;goto st1305;} + {stack[top++] = 272;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 269;goto st1316;} + {stack[top++] = 272;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 269;goto st1318;} + {stack[top++] = 272;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 269;goto st1347;} + {stack[top++] = 272;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 269;goto st1360;} + {stack[top++] = 272;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 269;goto st1373;} + {stack[top++] = 272;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 269;goto st1379;} + {stack[top++] = 272;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 269;goto st1397;} + {stack[top++] = 272;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 269;goto st1392;} + {stack[top++] = 272;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 269;goto st1410;} + {stack[top++] = 272;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 269;goto st1416;} + {stack[top++] = 272;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 269;goto st1422;} + {stack[top++] = 272;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 269;goto st1430;} + {stack[top++] = 272;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 269;goto st1438;} + {stack[top++] = 272;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 272;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st269; -tr924: + goto st272; +tr935: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -37401,93 +38269,95 @@ tr924: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 269;goto st886;} + {stack[top++] = 272;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 269;goto st888;} + {stack[top++] = 272;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 269;goto st890;} + {stack[top++] = 272;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 269;goto st922;} + {stack[top++] = 272;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 269;goto st927;} + {stack[top++] = 272;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 269;goto st932;} + {stack[top++] = 272;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 269;goto st937;} + {stack[top++] = 272;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 269;goto st941;} + {stack[top++] = 272;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 269;goto st943;} + {stack[top++] = 272;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 269;goto st998;} + {stack[top++] = 272;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 269;goto st1009;} + {stack[top++] = 272;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 269;goto st1026;} + {stack[top++] = 272;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 269;goto st1037;} + {stack[top++] = 272;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 269;goto st1048;} + {stack[top++] = 272;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 269;goto st1061;} + {stack[top++] = 272;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 269;goto st1071;} + {stack[top++] = 272;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 269;goto st1110;} + {stack[top++] = 272;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 269;goto st1302;} + {stack[top++] = 272;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 269;goto st1305;} + {stack[top++] = 272;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 269;goto st1316;} + {stack[top++] = 272;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 269;goto st1318;} + {stack[top++] = 272;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 269;goto st1347;} + {stack[top++] = 272;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 269;goto st1360;} + {stack[top++] = 272;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 269;goto st1373;} + {stack[top++] = 272;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 269;goto st1379;} + {stack[top++] = 272;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 269;goto st1397;} + {stack[top++] = 272;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 269;goto st1392;} + {stack[top++] = 272;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 269;goto st1410;} + {stack[top++] = 272;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 269;goto st1416;} + {stack[top++] = 272;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 269;goto st1422;} + {stack[top++] = 272;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 269;goto st1430;} + {stack[top++] = 272;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 269;goto st1438;} + {stack[top++] = 272;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 272;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st269; -tr925: + goto st272; +tr936: { s->r_owner_length = s->dname_tmp_length; } @@ -37503,96 +38373,98 @@ tr925: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 269;goto st886;} + {stack[top++] = 272;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 269;goto st888;} + {stack[top++] = 272;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 269;goto st890;} + {stack[top++] = 272;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 269;goto st922;} + {stack[top++] = 272;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 269;goto st927;} + {stack[top++] = 272;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 269;goto st932;} + {stack[top++] = 272;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 269;goto st937;} + {stack[top++] = 272;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 269;goto st941;} + {stack[top++] = 272;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 269;goto st943;} + {stack[top++] = 272;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 269;goto st998;} + {stack[top++] = 272;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 269;goto st1009;} + {stack[top++] = 272;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 269;goto st1026;} + {stack[top++] = 272;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 269;goto st1037;} + {stack[top++] = 272;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 269;goto st1048;} + {stack[top++] = 272;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 269;goto st1061;} + {stack[top++] = 272;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 269;goto st1071;} + {stack[top++] = 272;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 269;goto st1110;} + {stack[top++] = 272;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 269;goto st1302;} + {stack[top++] = 272;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 269;goto st1305;} + {stack[top++] = 272;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 269;goto st1316;} + {stack[top++] = 272;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 269;goto st1318;} + {stack[top++] = 272;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 269;goto st1347;} + {stack[top++] = 272;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 269;goto st1360;} + {stack[top++] = 272;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 269;goto st1373;} + {stack[top++] = 272;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 269;goto st1379;} + {stack[top++] = 272;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 269;goto st1397;} + {stack[top++] = 272;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 269;goto st1392;} + {stack[top++] = 272;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 269;goto st1410;} + {stack[top++] = 272;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 269;goto st1416;} + {stack[top++] = 272;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 269;goto st1422;} + {stack[top++] = 272;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 269;goto st1430;} + {stack[top++] = 272;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 269;goto st1438;} + {stack[top++] = 272;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 272;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st269; -st269: + goto st272; +st272: if ( ++p == pe ) - goto _test_eof269; -case 269: + goto _test_eof272; +case 272: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37606,10 +38478,10 @@ case 269: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr927; - case 32: goto tr927; - case 40: goto tr928; - case 41: goto tr929; + case 9: goto tr938; + case 32: goto tr938; + case 40: goto tr939; + case 41: goto tr940; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -37648,13 +38520,13 @@ case 269: case 122: goto tr22; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr930; - case 2107: goto tr931; + case 2058: goto tr941; + case 2107: goto tr942; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; goto tr120; -tr926: +tr937: { s->r_owner_length = s->dname_tmp_length; } @@ -37670,96 +38542,98 @@ tr926: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 270;goto st886;} + {stack[top++] = 273;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 270;goto st888;} + {stack[top++] = 273;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 270;goto st890;} + {stack[top++] = 273;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 270;goto st922;} + {stack[top++] = 273;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 270;goto st927;} + {stack[top++] = 273;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 270;goto st932;} + {stack[top++] = 273;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 270;goto st937;} + {stack[top++] = 273;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 270;goto st941;} + {stack[top++] = 273;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 270;goto st943;} + {stack[top++] = 273;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 270;goto st998;} + {stack[top++] = 273;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 270;goto st1009;} + {stack[top++] = 273;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 270;goto st1026;} + {stack[top++] = 273;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 270;goto st1037;} + {stack[top++] = 273;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 270;goto st1048;} + {stack[top++] = 273;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 270;goto st1061;} + {stack[top++] = 273;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 270;goto st1071;} + {stack[top++] = 273;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 270;goto st1110;} + {stack[top++] = 273;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 270;goto st1302;} + {stack[top++] = 273;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 270;goto st1305;} + {stack[top++] = 273;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 270;goto st1316;} + {stack[top++] = 273;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 270;goto st1318;} + {stack[top++] = 273;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 270;goto st1347;} + {stack[top++] = 273;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 270;goto st1360;} + {stack[top++] = 273;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 270;goto st1373;} + {stack[top++] = 273;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 270;goto st1379;} + {stack[top++] = 273;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 270;goto st1397;} + {stack[top++] = 273;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 270;goto st1392;} + {stack[top++] = 273;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 270;goto st1410;} + {stack[top++] = 273;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 270;goto st1416;} + {stack[top++] = 273;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 270;goto st1422;} + {stack[top++] = 273;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 270;goto st1430;} + {stack[top++] = 273;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 270;goto st1438;} + {stack[top++] = 273;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 273;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st270; -st270: + goto st273; +st273: if ( ++p == pe ) - goto _test_eof270; -case 270: + goto _test_eof273; +case 273: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -37797,24 +38671,24 @@ case 270: case 1832: goto tr87; case 1833: goto tr88; case 1851: goto tr90; - case 2057: goto tr932; - case 2058: goto tr933; - case 2080: goto tr932; - case 2088: goto tr934; - case 2089: goto tr935; - case 2107: goto tr936; + case 2057: goto tr943; + case 2058: goto tr944; + case 2080: goto tr943; + case 2088: goto tr945; + case 2089: goto tr946; + case 2107: goto tr947; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr795; + goto tr806; goto tr85; -tr937: +tr948: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st271; -tr932: + goto st274; +tr943: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -37824,8 +38698,8 @@ tr932: s->buffer[0] = 0; s->buffer_length = 0; } - goto st271; -tr934: + goto st274; +tr945: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -37838,12 +38712,12 @@ tr934: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st271; -tr935: + goto st274; +tr946: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -37856,12 +38730,12 @@ tr935: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st271; -tr938: + goto st274; +tr949: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -37870,12 +38744,12 @@ tr938: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st271; -tr939: + goto st274; +tr950: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -37884,15 +38758,15 @@ tr939: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st271; -st271: + goto st274; +st274: if ( ++p == pe ) - goto _test_eof271; -case 271: + goto _test_eof274; +case 274: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -37930,17 +38804,17 @@ case 271: case 1832: goto tr93; case 1833: goto tr94; case 1851: goto tr96; - case 2057: goto tr937; - case 2058: goto tr862; - case 2080: goto tr937; - case 2088: goto tr938; - case 2089: goto tr939; - case 2107: goto tr940; + case 2057: goto tr948; + case 2058: goto tr873; + case 2080: goto tr948; + case 2088: goto tr949; + case 2089: goto tr950; + case 2107: goto tr951; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr795; + goto tr806; goto tr91; -tr876: +tr887: { s->buffer_length = 0; } @@ -37948,93 +38822,95 @@ tr876: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st886;} + {stack[top++] = 275;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st888;} + {stack[top++] = 275;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st890;} + {stack[top++] = 275;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st922;} + {stack[top++] = 275;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st927;} + {stack[top++] = 275;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st932;} + {stack[top++] = 275;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st937;} + {stack[top++] = 275;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st941;} + {stack[top++] = 275;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st943;} + {stack[top++] = 275;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st998;} + {stack[top++] = 275;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1009;} + {stack[top++] = 275;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1026;} + {stack[top++] = 275;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1037;} + {stack[top++] = 275;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1048;} + {stack[top++] = 275;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1061;} + {stack[top++] = 275;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1071;} + {stack[top++] = 275;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1110;} + {stack[top++] = 275;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1302;} + {stack[top++] = 275;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1305;} + {stack[top++] = 275;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1316;} + {stack[top++] = 275;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 272;goto st1318;} + {stack[top++] = 275;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1347;} + {stack[top++] = 275;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1360;} + {stack[top++] = 275;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1373;} + {stack[top++] = 275;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1379;} + {stack[top++] = 275;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1397;} + {stack[top++] = 275;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1392;} + {stack[top++] = 275;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1410;} + {stack[top++] = 275;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1416;} + {stack[top++] = 275;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1422;} + {stack[top++] = 275;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1430;} + {stack[top++] = 275;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1438;} + {stack[top++] = 275;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 275;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st272; -tr1007: + goto st275; +tr1018: { s->buffer_length = 0; } @@ -38042,97 +38918,99 @@ tr1007: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st886;} + {stack[top++] = 275;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st888;} + {stack[top++] = 275;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st890;} + {stack[top++] = 275;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st922;} + {stack[top++] = 275;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st927;} + {stack[top++] = 275;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st932;} + {stack[top++] = 275;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st937;} + {stack[top++] = 275;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st941;} + {stack[top++] = 275;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st943;} + {stack[top++] = 275;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st998;} + {stack[top++] = 275;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1009;} + {stack[top++] = 275;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1026;} + {stack[top++] = 275;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1037;} + {stack[top++] = 275;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1048;} + {stack[top++] = 275;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1061;} + {stack[top++] = 275;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1071;} + {stack[top++] = 275;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1110;} + {stack[top++] = 275;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1302;} + {stack[top++] = 275;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1305;} + {stack[top++] = 275;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1316;} + {stack[top++] = 275;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 272;goto st1318;} + {stack[top++] = 275;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1347;} + {stack[top++] = 275;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1360;} + {stack[top++] = 275;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1373;} + {stack[top++] = 275;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1379;} + {stack[top++] = 275;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1397;} + {stack[top++] = 275;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1392;} + {stack[top++] = 275;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1410;} + {stack[top++] = 275;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1416;} + {stack[top++] = 275;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1422;} + {stack[top++] = 275;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1430;} + {stack[top++] = 275;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1438;} + {stack[top++] = 275;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 275;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st272; -tr915: + goto st275; +tr926: { s->r_owner_length = s->dname_tmp_length; } @@ -38147,97 +39025,99 @@ tr915: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st886;} + {stack[top++] = 275;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st888;} + {stack[top++] = 275;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st890;} + {stack[top++] = 275;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st922;} + {stack[top++] = 275;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st927;} + {stack[top++] = 275;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st932;} + {stack[top++] = 275;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st937;} + {stack[top++] = 275;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st941;} + {stack[top++] = 275;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st943;} + {stack[top++] = 275;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st998;} + {stack[top++] = 275;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1009;} + {stack[top++] = 275;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1026;} + {stack[top++] = 275;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1037;} + {stack[top++] = 275;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1048;} + {stack[top++] = 275;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1061;} + {stack[top++] = 275;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1071;} + {stack[top++] = 275;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1110;} + {stack[top++] = 275;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1302;} + {stack[top++] = 275;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1305;} + {stack[top++] = 275;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1316;} + {stack[top++] = 275;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 272;goto st1318;} + {stack[top++] = 275;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1347;} + {stack[top++] = 275;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1360;} + {stack[top++] = 275;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1373;} + {stack[top++] = 275;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1379;} + {stack[top++] = 275;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1397;} + {stack[top++] = 275;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1392;} + {stack[top++] = 275;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1410;} + {stack[top++] = 275;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1416;} + {stack[top++] = 275;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1422;} + {stack[top++] = 275;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1430;} + {stack[top++] = 275;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1438;} + {stack[top++] = 275;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 275;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st272; -tr4374: + goto st275; +tr4474: { s->buffer_length = 0; } @@ -38245,89 +39125,91 @@ tr4374: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st886;} + {stack[top++] = 275;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st888;} + {stack[top++] = 275;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st890;} + {stack[top++] = 275;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st922;} + {stack[top++] = 275;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st927;} + {stack[top++] = 275;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st932;} + {stack[top++] = 275;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st937;} + {stack[top++] = 275;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st941;} + {stack[top++] = 275;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st943;} + {stack[top++] = 275;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st998;} + {stack[top++] = 275;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1009;} + {stack[top++] = 275;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1026;} + {stack[top++] = 275;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1037;} + {stack[top++] = 275;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1048;} + {stack[top++] = 275;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1061;} + {stack[top++] = 275;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1071;} + {stack[top++] = 275;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1110;} + {stack[top++] = 275;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1302;} + {stack[top++] = 275;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1305;} + {stack[top++] = 275;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1316;} + {stack[top++] = 275;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 272;goto st1318;} + {stack[top++] = 275;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1347;} + {stack[top++] = 275;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1360;} + {stack[top++] = 275;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1373;} + {stack[top++] = 275;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1379;} + {stack[top++] = 275;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1397;} + {stack[top++] = 275;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1392;} + {stack[top++] = 275;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1410;} + {stack[top++] = 275;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1416;} + {stack[top++] = 275;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1422;} + {stack[top++] = 275;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1430;} + {stack[top++] = 275;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1438;} + {stack[top++] = 275;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 275;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { @@ -38337,14 +39219,14 @@ tr4374: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st272; -st272: + goto st275; +st275: if ( ++p == pe ) - goto _test_eof272; -case 272: + goto _test_eof275; +case 275: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -38376,33 +39258,33 @@ case 272: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr863; - case 1802: goto tr866; - case 1824: goto tr863; - case 1832: goto tr864; - case 1833: goto tr865; - case 1851: goto tr867; - case 2057: goto tr941; - case 2058: goto tr933; - case 2080: goto tr941; - case 2088: goto tr942; - case 2089: goto tr943; - case 2107: goto tr944; + case 1801: goto tr874; + case 1802: goto tr877; + case 1824: goto tr874; + case 1832: goto tr875; + case 1833: goto tr876; + case 1851: goto tr878; + case 2057: goto tr952; + case 2058: goto tr944; + case 2080: goto tr952; + case 2088: goto tr953; + case 2089: goto tr954; + case 2107: goto tr955; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr877; + goto tr888; } else if ( _widec >= 1664 ) goto tr97; goto tr85; -tr945: +tr956: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st273; -tr941: + goto st276; +tr952: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -38412,8 +39294,8 @@ tr941: s->buffer[0] = 0; s->buffer_length = 0; } - goto st273; -tr942: + goto st276; +tr953: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -38426,12 +39308,12 @@ tr942: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st273; -tr943: + goto st276; +tr954: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -38444,12 +39326,12 @@ tr943: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st273; -tr946: + goto st276; +tr957: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -38458,12 +39340,12 @@ tr946: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st273; -tr947: + goto st276; +tr958: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -38472,15 +39354,15 @@ tr947: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st273; -st273: + goto st276; +st276: if ( ++p == pe ) - goto _test_eof273; -case 273: + goto _test_eof276; +case 276: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -38512,47 +39394,47 @@ case 273: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr868; + case 1801: goto tr879; case 1802: goto tr98; - case 1824: goto tr868; - case 1832: goto tr869; - case 1833: goto tr870; - case 1851: goto tr871; - case 2057: goto tr945; - case 2058: goto tr862; - case 2080: goto tr945; - case 2088: goto tr946; - case 2089: goto tr947; - case 2107: goto tr948; + case 1824: goto tr879; + case 1832: goto tr880; + case 1833: goto tr881; + case 1851: goto tr882; + case 2057: goto tr956; + case 2058: goto tr873; + case 2080: goto tr956; + case 2088: goto tr957; + case 2089: goto tr958; + case 2107: goto tr959; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr877; + goto tr888; } else if ( _widec >= 1664 ) goto tr97; goto tr85; -st274: +st277: if ( ++p == pe ) - goto _test_eof274; -case 274: + goto _test_eof277; +case 277: switch( (*p) ) { - case 65: goto st275; - case 97: goto st275; + case 65: goto st278; + case 97: goto st278; } goto tr39; -st275: +st278: if ( ++p == pe ) - goto _test_eof275; -case 275: + goto _test_eof278; +case 278: switch( (*p) ) { - case 65: goto st276; - case 97: goto st276; + case 65: goto st279; + case 97: goto st279; } goto tr39; -st276: +st279: if ( ++p == pe ) - goto _test_eof276; -case 276: + goto _test_eof279; +case 279: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38570,49 +39452,49 @@ case 276: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr951; - case 32: goto tr951; - case 40: goto tr952; - case 41: goto tr953; - case 3082: goto tr954; - case 3131: goto tr955; - case 3338: goto tr956; - case 3387: goto tr956; - case 3594: goto tr957; - case 3643: goto tr958; + case 9: goto tr962; + case 32: goto tr962; + case 40: goto tr963; + case 41: goto tr964; + case 3082: goto tr965; + case 3131: goto tr966; + case 3338: goto tr967; + case 3387: goto tr967; + case 3594: goto tr968; + case 3643: goto tr969; } goto tr63; -st277: +st280: if ( ++p == pe ) - goto _test_eof277; -case 277: + goto _test_eof280; +case 280: switch( (*p) ) { - case 83: goto st278; - case 115: goto st278; + case 83: goto st281; + case 115: goto st281; } goto tr39; -st278: +st281: if ( ++p == pe ) - goto _test_eof278; -case 278: + goto _test_eof281; +case 281: switch( (*p) ) { - case 68: goto st279; - case 100: goto st279; + case 68: goto st282; + case 100: goto st282; } goto tr39; -st279: +st282: if ( ++p == pe ) - goto _test_eof279; -case 279: + goto _test_eof282; +case 282: switch( (*p) ) { - case 66: goto st280; - case 98: goto st280; + case 66: goto st283; + case 98: goto st283; } goto tr39; -st280: +st283: if ( ++p == pe ) - goto _test_eof280; -case 280: + goto _test_eof283; +case 283: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38630,31 +39512,31 @@ case 280: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr962; - case 32: goto tr962; - case 40: goto tr963; - case 41: goto tr964; - case 3082: goto tr965; - case 3131: goto tr966; - case 3338: goto tr967; - case 3387: goto tr967; - case 3594: goto tr968; - case 3643: goto tr969; + case 9: goto tr973; + case 32: goto tr973; + case 40: goto tr974; + case 41: goto tr975; + case 3082: goto tr976; + case 3131: goto tr977; + case 3338: goto tr978; + case 3387: goto tr978; + case 3594: goto tr979; + case 3643: goto tr980; } goto tr63; -st281: +st284: if ( ++p == pe ) - goto _test_eof281; -case 281: + goto _test_eof284; +case 284: switch( (*p) ) { - case 76: goto st282; - case 108: goto st282; + case 76: goto st285; + case 108: goto st285; } goto tr39; -st282: +st285: if ( ++p == pe ) - goto _test_eof282; -case 282: + goto _test_eof285; +case 285: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38672,49 +39554,49 @@ case 282: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr971; - case 32: goto tr971; - case 40: goto tr972; - case 41: goto tr973; - case 3082: goto tr974; - case 3131: goto tr975; - case 3338: goto tr976; - case 3387: goto tr976; - case 3594: goto tr977; - case 3643: goto tr978; + case 9: goto tr982; + case 32: goto tr982; + case 40: goto tr983; + case 41: goto tr984; + case 3082: goto tr985; + case 3131: goto tr986; + case 3338: goto tr987; + case 3387: goto tr987; + case 3594: goto tr988; + case 3643: goto tr989; } goto tr63; tr143: { s->buffer_length = 0; } - goto st283; -tr979: + goto st286; +tr990: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st283; -tr4302: + goto st286; +tr4402: { s->buffer_length = 0; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st283; -st283: + goto st286; +st286: if ( ++p == pe ) - goto _test_eof283; -case 283: + goto _test_eof286; +case 286: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -38734,103 +39616,105 @@ case 283: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr772; - case 2058: goto tr980; + case 1802: goto tr783; + case 2058: goto tr991; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr979; + goto tr990; } else if ( _widec >= 1664 ) - goto tr771; + goto tr782; goto tr85; -tr4304: +tr4404: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 284;goto st886;} + {stack[top++] = 287;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 284;goto st888;} + {stack[top++] = 287;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 284;goto st890;} + {stack[top++] = 287;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 284;goto st922;} + {stack[top++] = 287;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 284;goto st927;} + {stack[top++] = 287;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 284;goto st932;} + {stack[top++] = 287;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 284;goto st937;} + {stack[top++] = 287;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 284;goto st941;} + {stack[top++] = 287;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 284;goto st943;} + {stack[top++] = 287;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 284;goto st998;} + {stack[top++] = 287;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 284;goto st1009;} + {stack[top++] = 287;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 284;goto st1026;} + {stack[top++] = 287;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 284;goto st1037;} + {stack[top++] = 287;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 284;goto st1048;} + {stack[top++] = 287;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 284;goto st1061;} + {stack[top++] = 287;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 284;goto st1071;} + {stack[top++] = 287;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 284;goto st1110;} + {stack[top++] = 287;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 284;goto st1302;} + {stack[top++] = 287;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 284;goto st1305;} + {stack[top++] = 287;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 284;goto st1316;} + {stack[top++] = 287;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 284;goto st1318;} + {stack[top++] = 287;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 284;goto st1347;} + {stack[top++] = 287;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 284;goto st1360;} + {stack[top++] = 287;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 284;goto st1373;} + {stack[top++] = 287;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 284;goto st1379;} + {stack[top++] = 287;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 284;goto st1397;} + {stack[top++] = 287;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 284;goto st1392;} + {stack[top++] = 287;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 284;goto st1410;} + {stack[top++] = 287;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 284;goto st1416;} + {stack[top++] = 287;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 284;goto st1422;} + {stack[top++] = 287;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 284;goto st1430;} + {stack[top++] = 287;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 284;goto st1438;} + {stack[top++] = 287;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 287;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { @@ -38840,105 +39724,107 @@ tr4304: { s->buffer_length = 0; } - goto st284; + goto st287; tr145: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 284;goto st886;} + {stack[top++] = 287;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 284;goto st888;} + {stack[top++] = 287;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 284;goto st890;} + {stack[top++] = 287;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 284;goto st922;} + {stack[top++] = 287;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 284;goto st927;} + {stack[top++] = 287;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 284;goto st932;} + {stack[top++] = 287;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 284;goto st937;} + {stack[top++] = 287;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 284;goto st941;} + {stack[top++] = 287;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 284;goto st943;} + {stack[top++] = 287;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 284;goto st998;} + {stack[top++] = 287;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 284;goto st1009;} + {stack[top++] = 287;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 284;goto st1026;} + {stack[top++] = 287;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 284;goto st1037;} + {stack[top++] = 287;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 284;goto st1048;} + {stack[top++] = 287;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 284;goto st1061;} + {stack[top++] = 287;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 284;goto st1071;} + {stack[top++] = 287;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 284;goto st1110;} + {stack[top++] = 287;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 284;goto st1302;} + {stack[top++] = 287;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 284;goto st1305;} + {stack[top++] = 287;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 284;goto st1316;} + {stack[top++] = 287;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 284;goto st1318;} + {stack[top++] = 287;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 284;goto st1347;} + {stack[top++] = 287;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 284;goto st1360;} + {stack[top++] = 287;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 284;goto st1373;} + {stack[top++] = 287;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 284;goto st1379;} + {stack[top++] = 287;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 284;goto st1397;} + {stack[top++] = 287;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 284;goto st1392;} + {stack[top++] = 287;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 284;goto st1410;} + {stack[top++] = 287;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 284;goto st1416;} + {stack[top++] = 287;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 284;goto st1422;} + {stack[top++] = 287;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 284;goto st1430;} + {stack[top++] = 287;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 284;goto st1438;} + {stack[top++] = 287;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 287;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->buffer_length = 0; } - goto st284; -st284: + goto st287; +st287: if ( ++p == pe ) - goto _test_eof284; -case 284: + goto _test_eof287; +case 287: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38952,32 +39838,32 @@ case 284: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr981; - case 32: goto tr981; - case 40: goto tr982; - case 41: goto tr983; - case 1802: goto tr984; - case 1851: goto tr867; - case 2058: goto tr984; - case 2107: goto tr867; + case 9: goto tr992; + case 32: goto tr992; + case 40: goto tr993; + case 41: goto tr994; + case 1802: goto tr995; + case 1851: goto tr878; + case 2058: goto tr995; + case 2107: goto tr878; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr771; + goto tr782; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr771; + goto tr782; } else - goto tr771; + goto tr782; goto tr85; -tr985: +tr996: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st285; -tr981: + goto st288; +tr992: { s->buffer[0] = 0; s->buffer_length = 0; @@ -38987,8 +39873,8 @@ tr981: s->buffer[s->buffer_length++] = (*p); } } - goto st285; -tr982: + goto st288; +tr993: { s->buffer[0] = 0; s->buffer_length = 0; @@ -38996,7 +39882,7 @@ tr982: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -39005,8 +39891,8 @@ tr982: s->buffer[s->buffer_length++] = (*p); } } - goto st285; -tr983: + goto st288; +tr994: { s->buffer[0] = 0; s->buffer_length = 0; @@ -39014,7 +39900,7 @@ tr983: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -39023,12 +39909,12 @@ tr983: s->buffer[s->buffer_length++] = (*p); } } - goto st285; -tr986: + goto st288; +tr997: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -39037,12 +39923,12 @@ tr986: s->buffer[s->buffer_length++] = (*p); } } - goto st285; -tr987: + goto st288; +tr998: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -39051,11 +39937,11 @@ tr987: s->buffer[s->buffer_length++] = (*p); } } - goto st285; -st285: + goto st288; +st288: if ( ++p == pe ) - goto _test_eof285; -case 285: + goto _test_eof288; +case 288: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39069,23 +39955,23 @@ case 285: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr985; - case 32: goto tr985; - case 40: goto tr986; - case 41: goto tr987; - case 1802: goto tr988; - case 1851: goto tr871; - case 2058: goto tr988; - case 2107: goto tr871; + case 9: goto tr996; + case 32: goto tr996; + case 40: goto tr997; + case 41: goto tr998; + case 1802: goto tr999; + case 1851: goto tr882; + case 2058: goto tr999; + case 2107: goto tr882; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr771; + goto tr782; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr771; + goto tr782; } else - goto tr771; + goto tr782; goto tr91; tr147: { @@ -39095,93 +39981,95 @@ tr147: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 286;goto st886;} + {stack[top++] = 289;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 286;goto st888;} + {stack[top++] = 289;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 286;goto st890;} + {stack[top++] = 289;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 286;goto st922;} + {stack[top++] = 289;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 286;goto st927;} + {stack[top++] = 289;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 286;goto st932;} + {stack[top++] = 289;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 286;goto st937;} + {stack[top++] = 289;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 286;goto st941;} + {stack[top++] = 289;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 286;goto st943;} + {stack[top++] = 289;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 286;goto st998;} + {stack[top++] = 289;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 286;goto st1009;} + {stack[top++] = 289;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 286;goto st1026;} + {stack[top++] = 289;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 286;goto st1037;} + {stack[top++] = 289;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 286;goto st1048;} + {stack[top++] = 289;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 286;goto st1061;} + {stack[top++] = 289;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 286;goto st1071;} + {stack[top++] = 289;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 286;goto st1110;} + {stack[top++] = 289;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 286;goto st1302;} + {stack[top++] = 289;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 286;goto st1305;} + {stack[top++] = 289;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 286;goto st1316;} + {stack[top++] = 289;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 286;goto st1318;} + {stack[top++] = 289;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 286;goto st1347;} + {stack[top++] = 289;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 286;goto st1360;} + {stack[top++] = 289;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 286;goto st1373;} + {stack[top++] = 289;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 286;goto st1379;} + {stack[top++] = 289;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 286;goto st1397;} + {stack[top++] = 289;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 286;goto st1392;} + {stack[top++] = 289;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 286;goto st1410;} + {stack[top++] = 289;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 286;goto st1416;} + {stack[top++] = 289;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 286;goto st1422;} + {stack[top++] = 289;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 286;goto st1430;} + {stack[top++] = 289;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 286;goto st1438;} + {stack[top++] = 289;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 289;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st286; -tr4306: + goto st289; +tr4406: { s->buffer_length = 0; } @@ -39189,106 +40077,108 @@ tr4306: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 286;goto st886;} + {stack[top++] = 289;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 286;goto st888;} + {stack[top++] = 289;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 286;goto st890;} + {stack[top++] = 289;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 286;goto st922;} + {stack[top++] = 289;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 286;goto st927;} + {stack[top++] = 289;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 286;goto st932;} + {stack[top++] = 289;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 286;goto st937;} + {stack[top++] = 289;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 286;goto st941;} + {stack[top++] = 289;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 286;goto st943;} + {stack[top++] = 289;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 286;goto st998;} + {stack[top++] = 289;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 286;goto st1009;} + {stack[top++] = 289;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 286;goto st1026;} + {stack[top++] = 289;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 286;goto st1037;} + {stack[top++] = 289;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 286;goto st1048;} + {stack[top++] = 289;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 286;goto st1061;} + {stack[top++] = 289;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 286;goto st1071;} + {stack[top++] = 289;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 286;goto st1110;} + {stack[top++] = 289;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 286;goto st1302;} + {stack[top++] = 289;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 286;goto st1305;} + {stack[top++] = 289;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 286;goto st1316;} + {stack[top++] = 289;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 286;goto st1318;} + {stack[top++] = 289;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 286;goto st1347;} + {stack[top++] = 289;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 286;goto st1360;} + {stack[top++] = 289;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 286;goto st1373;} + {stack[top++] = 289;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 286;goto st1379;} + {stack[top++] = 289;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 286;goto st1397;} + {stack[top++] = 289;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 286;goto st1392;} + {stack[top++] = 289;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 286;goto st1410;} + {stack[top++] = 289;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 286;goto st1416;} + {stack[top++] = 289;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 286;goto st1422;} + {stack[top++] = 289;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 286;goto st1430;} + {stack[top++] = 289;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 286;goto st1438;} + {stack[top++] = 289;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 289;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st286; -st286: + goto st289; +st289: if ( ++p == pe ) - goto _test_eof286; -case 286: + goto _test_eof289; +case 289: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -39320,33 +40210,33 @@ case 286: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr981; - case 1802: goto tr984; - case 1824: goto tr981; - case 1832: goto tr982; - case 1833: goto tr983; - case 1851: goto tr867; - case 2057: goto tr989; - case 2058: goto tr933; - case 2080: goto tr989; - case 2088: goto tr990; - case 2089: goto tr991; - case 2107: goto tr944; + case 1801: goto tr992; + case 1802: goto tr995; + case 1824: goto tr992; + case 1832: goto tr993; + case 1833: goto tr994; + case 1851: goto tr878; + case 2057: goto tr1000; + case 2058: goto tr944; + case 2080: goto tr1000; + case 2088: goto tr1001; + case 2089: goto tr1002; + case 2107: goto tr955; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr979; + goto tr990; } else if ( _widec >= 1664 ) - goto tr771; + goto tr782; goto tr85; -tr992: +tr1003: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st287; -tr989: + goto st290; +tr1000: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39356,8 +40246,8 @@ tr989: s->buffer[0] = 0; s->buffer_length = 0; } - goto st287; -tr990: + goto st290; +tr1001: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39370,12 +40260,12 @@ tr990: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st287; -tr991: + goto st290; +tr1002: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39388,12 +40278,12 @@ tr991: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st287; -tr993: + goto st290; +tr1004: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39402,12 +40292,12 @@ tr993: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st287; -tr994: + goto st290; +tr1005: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39416,15 +40306,15 @@ tr994: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st287; -st287: + goto st290; +st290: if ( ++p == pe ) - goto _test_eof287; -case 287: + goto _test_eof290; +case 290: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -39456,24 +40346,24 @@ case 287: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr985; - case 1802: goto tr988; - case 1824: goto tr985; - case 1832: goto tr986; - case 1833: goto tr987; - case 1851: goto tr871; - case 2057: goto tr992; - case 2058: goto tr862; - case 2080: goto tr992; - case 2088: goto tr993; - case 2089: goto tr994; - case 2107: goto tr948; + case 1801: goto tr996; + case 1802: goto tr999; + case 1824: goto tr996; + case 1832: goto tr997; + case 1833: goto tr998; + case 1851: goto tr882; + case 2057: goto tr1003; + case 2058: goto tr873; + case 2080: goto tr1003; + case 2088: goto tr1004; + case 2089: goto tr1005; + case 2107: goto tr959; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr979; + goto tr990; } else if ( _widec >= 1664 ) - goto tr771; + goto tr782; goto tr85; tr116: { @@ -39483,92 +40373,94 @@ tr116: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 288;goto st886;} + {stack[top++] = 291;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 288;goto st888;} + {stack[top++] = 291;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 288;goto st890;} + {stack[top++] = 291;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 288;goto st922;} + {stack[top++] = 291;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 288;goto st927;} + {stack[top++] = 291;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 288;goto st932;} + {stack[top++] = 291;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 288;goto st937;} + {stack[top++] = 291;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 288;goto st941;} + {stack[top++] = 291;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 288;goto st943;} + {stack[top++] = 291;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 288;goto st998;} + {stack[top++] = 291;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 288;goto st1009;} + {stack[top++] = 291;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 288;goto st1026;} + {stack[top++] = 291;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 288;goto st1037;} + {stack[top++] = 291;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 288;goto st1048;} + {stack[top++] = 291;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 288;goto st1061;} + {stack[top++] = 291;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 288;goto st1071;} + {stack[top++] = 291;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 288;goto st1110;} + {stack[top++] = 291;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 288;goto st1302;} + {stack[top++] = 291;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 288;goto st1305;} + {stack[top++] = 291;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 288;goto st1316;} + {stack[top++] = 291;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 288;goto st1318;} + {stack[top++] = 291;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 288;goto st1347;} + {stack[top++] = 291;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 288;goto st1360;} + {stack[top++] = 291;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 288;goto st1373;} + {stack[top++] = 291;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 288;goto st1379;} + {stack[top++] = 291;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 288;goto st1397;} + {stack[top++] = 291;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 288;goto st1392;} + {stack[top++] = 291;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 288;goto st1410;} + {stack[top++] = 291;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 288;goto st1416;} + {stack[top++] = 291;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 288;goto st1422;} + {stack[top++] = 291;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 288;goto st1430;} + {stack[top++] = 291;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 288;goto st1438;} + {stack[top++] = 291;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 291;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st288; + goto st291; tr109: { s->buffer_length = 0; @@ -39577,97 +40469,99 @@ tr109: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 288;goto st886;} + {stack[top++] = 291;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 288;goto st888;} + {stack[top++] = 291;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 288;goto st890;} + {stack[top++] = 291;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 288;goto st922;} + {stack[top++] = 291;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 288;goto st927;} + {stack[top++] = 291;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 288;goto st932;} + {stack[top++] = 291;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 288;goto st937;} + {stack[top++] = 291;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 288;goto st941;} + {stack[top++] = 291;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 288;goto st943;} + {stack[top++] = 291;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 288;goto st998;} + {stack[top++] = 291;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 288;goto st1009;} + {stack[top++] = 291;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 288;goto st1026;} + {stack[top++] = 291;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 288;goto st1037;} + {stack[top++] = 291;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 288;goto st1048;} + {stack[top++] = 291;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 288;goto st1061;} + {stack[top++] = 291;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 288;goto st1071;} + {stack[top++] = 291;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 288;goto st1110;} + {stack[top++] = 291;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 288;goto st1302;} + {stack[top++] = 291;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 288;goto st1305;} + {stack[top++] = 291;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 288;goto st1316;} + {stack[top++] = 291;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 288;goto st1318;} + {stack[top++] = 291;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 288;goto st1347;} + {stack[top++] = 291;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 288;goto st1360;} + {stack[top++] = 291;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 288;goto st1373;} + {stack[top++] = 291;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 288;goto st1379;} + {stack[top++] = 291;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 288;goto st1397;} + {stack[top++] = 291;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 288;goto st1392;} + {stack[top++] = 291;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 288;goto st1410;} + {stack[top++] = 291;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 288;goto st1416;} + {stack[top++] = 291;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 288;goto st1422;} + {stack[top++] = 291;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 288;goto st1430;} + {stack[top++] = 291;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 288;goto st1438;} + {stack[top++] = 291;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 291;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st288; -tr850: + goto st291; +tr861: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -39679,100 +40573,102 @@ tr850: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 288;goto st886;} + {stack[top++] = 291;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 288;goto st888;} + {stack[top++] = 291;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 288;goto st890;} + {stack[top++] = 291;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 288;goto st922;} + {stack[top++] = 291;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 288;goto st927;} + {stack[top++] = 291;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 288;goto st932;} + {stack[top++] = 291;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 288;goto st937;} + {stack[top++] = 291;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 288;goto st941;} + {stack[top++] = 291;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 288;goto st943;} + {stack[top++] = 291;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 288;goto st998;} + {stack[top++] = 291;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 288;goto st1009;} + {stack[top++] = 291;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 288;goto st1026;} + {stack[top++] = 291;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 288;goto st1037;} + {stack[top++] = 291;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 288;goto st1048;} + {stack[top++] = 291;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 288;goto st1061;} + {stack[top++] = 291;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 288;goto st1071;} + {stack[top++] = 291;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 288;goto st1110;} + {stack[top++] = 291;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 288;goto st1302;} + {stack[top++] = 291;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 288;goto st1305;} + {stack[top++] = 291;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 288;goto st1316;} + {stack[top++] = 291;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 288;goto st1318;} + {stack[top++] = 291;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 288;goto st1347;} + {stack[top++] = 291;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 288;goto st1360;} + {stack[top++] = 291;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 288;goto st1373;} + {stack[top++] = 291;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 288;goto st1379;} + {stack[top++] = 291;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 288;goto st1397;} + {stack[top++] = 291;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 288;goto st1392;} + {stack[top++] = 291;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 288;goto st1410;} + {stack[top++] = 291;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 288;goto st1416;} + {stack[top++] = 291;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 288;goto st1422;} + {stack[top++] = 291;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 288;goto st1430;} + {stack[top++] = 291;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 288;goto st1438;} + {stack[top++] = 291;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 291;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st288; -st288: + goto st291; +st291: if ( ++p == pe ) - goto _test_eof288; -case 288: + goto _test_eof291; +case 291: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -39804,17 +40700,17 @@ case 288: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr863; - case 1802: goto tr866; - case 1824: goto tr863; - case 1832: goto tr864; - case 1833: goto tr865; - case 1851: goto tr867; - case 2057: goto tr995; - case 2058: goto tr866; - case 2080: goto tr995; - case 2088: goto tr996; - case 2089: goto tr997; + case 1801: goto tr874; + case 1802: goto tr877; + case 1824: goto tr874; + case 1832: goto tr875; + case 1833: goto tr876; + case 1851: goto tr878; + case 2057: goto tr1006; + case 2058: goto tr877; + case 2080: goto tr1006; + case 2088: goto tr1007; + case 2089: goto tr1008; case 2107: goto tr177; } if ( _widec > 1919 ) { @@ -39823,14 +40719,14 @@ case 288: } else if ( _widec >= 1664 ) goto tr97; goto tr85; -tr998: +tr1009: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st289; -tr995: + goto st292; +tr1006: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39840,8 +40736,8 @@ tr995: s->buffer[0] = 0; s->buffer_length = 0; } - goto st289; -tr996: + goto st292; +tr1007: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39854,12 +40750,12 @@ tr996: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st289; -tr997: + goto st292; +tr1008: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39872,12 +40768,12 @@ tr997: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st289; -tr999: + goto st292; +tr1010: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39886,12 +40782,12 @@ tr999: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st289; -tr1000: + goto st292; +tr1011: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39900,15 +40796,15 @@ tr1000: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st289; -st289: + goto st292; +st292: if ( ++p == pe ) - goto _test_eof289; -case 289: + goto _test_eof292; +case 292: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -39940,17 +40836,17 @@ case 289: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr868; + case 1801: goto tr879; case 1802: goto tr98; - case 1824: goto tr868; - case 1832: goto tr869; - case 1833: goto tr870; - case 1851: goto tr871; - case 2057: goto tr998; + case 1824: goto tr879; + case 1832: goto tr880; + case 1833: goto tr881; + case 1851: goto tr882; + case 2057: goto tr1009; case 2058: goto tr98; - case 2080: goto tr998; - case 2088: goto tr999; - case 2089: goto tr1000; + case 2080: goto tr1009; + case 2088: goto tr1010; + case 2089: goto tr1011; case 2107: goto tr181; } if ( _widec > 1919 ) { @@ -39959,19 +40855,19 @@ case 289: } else if ( _widec >= 1664 ) goto tr97; goto tr85; -tr838: +tr849: { s->buffer_length = 0; } - goto st290; -tr1001: + goto st293; +tr1012: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st290; -tr831: + goto st293; +tr842: { s->r_owner_length = s->dname_tmp_length; } @@ -39982,11 +40878,11 @@ tr831: { rdata_tail = s->r_data; } - goto st290; -st290: + goto st293; +st293: if ( ++p == pe ) - goto _test_eof290; -case 290: + goto _test_eof293; +case 293: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -40006,11 +40902,11 @@ case 290: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1002; + goto tr1013; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1001; + goto tr1012; goto tr77; -tr839: +tr850: { s->line_counter++; } @@ -40018,93 +40914,95 @@ tr839: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 291;goto st886;} + {stack[top++] = 294;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 291;goto st888;} + {stack[top++] = 294;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 291;goto st890;} + {stack[top++] = 294;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 291;goto st922;} + {stack[top++] = 294;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 291;goto st927;} + {stack[top++] = 294;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 291;goto st932;} + {stack[top++] = 294;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 291;goto st937;} + {stack[top++] = 294;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 291;goto st941;} + {stack[top++] = 294;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 291;goto st943;} + {stack[top++] = 294;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 291;goto st998;} + {stack[top++] = 294;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 291;goto st1009;} + {stack[top++] = 294;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 291;goto st1026;} + {stack[top++] = 294;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 291;goto st1037;} + {stack[top++] = 294;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 291;goto st1048;} + {stack[top++] = 294;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 291;goto st1061;} + {stack[top++] = 294;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 291;goto st1071;} + {stack[top++] = 294;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 291;goto st1110;} + {stack[top++] = 294;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 291;goto st1302;} + {stack[top++] = 294;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 291;goto st1305;} + {stack[top++] = 294;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 291;goto st1316;} + {stack[top++] = 294;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 291;goto st1318;} + {stack[top++] = 294;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 291;goto st1347;} + {stack[top++] = 294;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 291;goto st1360;} + {stack[top++] = 294;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 291;goto st1373;} + {stack[top++] = 294;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 291;goto st1379;} + {stack[top++] = 294;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 291;goto st1397;} + {stack[top++] = 294;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 291;goto st1392;} + {stack[top++] = 294;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 291;goto st1410;} + {stack[top++] = 294;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 291;goto st1416;} + {stack[top++] = 294;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 291;goto st1422;} + {stack[top++] = 294;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 291;goto st1430;} + {stack[top++] = 294;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 291;goto st1438;} + {stack[top++] = 294;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 294;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st291; -tr832: + goto st294; +tr843: { s->r_owner_length = s->dname_tmp_length; } @@ -40119,96 +41017,98 @@ tr832: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 291;goto st886;} + {stack[top++] = 294;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 291;goto st888;} + {stack[top++] = 294;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 291;goto st890;} + {stack[top++] = 294;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 291;goto st922;} + {stack[top++] = 294;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 291;goto st927;} + {stack[top++] = 294;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 291;goto st932;} + {stack[top++] = 294;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 291;goto st937;} + {stack[top++] = 294;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 291;goto st941;} + {stack[top++] = 294;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 291;goto st943;} + {stack[top++] = 294;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 291;goto st998;} + {stack[top++] = 294;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 291;goto st1009;} + {stack[top++] = 294;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 291;goto st1026;} + {stack[top++] = 294;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 291;goto st1037;} + {stack[top++] = 294;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 291;goto st1048;} + {stack[top++] = 294;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 291;goto st1061;} + {stack[top++] = 294;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 291;goto st1071;} + {stack[top++] = 294;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 291;goto st1110;} + {stack[top++] = 294;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 291;goto st1302;} + {stack[top++] = 294;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 291;goto st1305;} + {stack[top++] = 294;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 291;goto st1316;} + {stack[top++] = 294;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 291;goto st1318;} + {stack[top++] = 294;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 291;goto st1347;} + {stack[top++] = 294;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 291;goto st1360;} + {stack[top++] = 294;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 291;goto st1373;} + {stack[top++] = 294;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 291;goto st1379;} + {stack[top++] = 294;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 291;goto st1397;} + {stack[top++] = 294;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 291;goto st1392;} + {stack[top++] = 294;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 291;goto st1410;} + {stack[top++] = 294;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 291;goto st1416;} + {stack[top++] = 294;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 291;goto st1422;} + {stack[top++] = 294;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 291;goto st1430;} + {stack[top++] = 294;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 291;goto st1438;} + {stack[top++] = 294;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 294;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st291; -st291: + goto st294; +st294: if ( ++p == pe ) - goto _test_eof291; -case 291: + goto _test_eof294; +case 294: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40226,10 +41126,10 @@ case 291: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1003; - case 32: goto tr1003; - case 40: goto tr1004; - case 41: goto tr1005; + case 9: goto tr1014; + case 32: goto tr1014; + case 40: goto tr1015; + case 41: goto tr1016; case 58: goto tr75; case 65: goto tr124; case 67: goto tr125; @@ -40270,12 +41170,12 @@ case 291: case 122: goto tr141; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr930; - case 3131: goto tr1006; + case 3082: goto tr941; + case 3131: goto tr1017; case 3338: goto tr107; case 3387: goto tr108; - case 3594: goto tr930; - case 3643: goto tr1007; + case 3594: goto tr941; + case 3643: goto tr1018; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -40289,7 +41189,7 @@ case 291: } else goto tr75; goto tr120; -tr840: +tr851: { s->buffer_length = 0; } @@ -40297,93 +41197,95 @@ tr840: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 292;goto st886;} + {stack[top++] = 295;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 292;goto st888;} + {stack[top++] = 295;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 292;goto st890;} + {stack[top++] = 295;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 292;goto st922;} + {stack[top++] = 295;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 292;goto st927;} + {stack[top++] = 295;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 292;goto st932;} + {stack[top++] = 295;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 292;goto st937;} + {stack[top++] = 295;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 292;goto st941;} + {stack[top++] = 295;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 292;goto st943;} + {stack[top++] = 295;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 292;goto st998;} + {stack[top++] = 295;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 292;goto st1009;} + {stack[top++] = 295;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 292;goto st1026;} + {stack[top++] = 295;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 292;goto st1037;} + {stack[top++] = 295;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 292;goto st1048;} + {stack[top++] = 295;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 292;goto st1061;} + {stack[top++] = 295;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 292;goto st1071;} + {stack[top++] = 295;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 292;goto st1110;} + {stack[top++] = 295;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 292;goto st1302;} + {stack[top++] = 295;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 292;goto st1305;} + {stack[top++] = 295;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 292;goto st1316;} + {stack[top++] = 295;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 292;goto st1318;} + {stack[top++] = 295;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 292;goto st1347;} + {stack[top++] = 295;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 292;goto st1360;} + {stack[top++] = 295;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 292;goto st1373;} + {stack[top++] = 295;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 292;goto st1379;} + {stack[top++] = 295;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 292;goto st1397;} + {stack[top++] = 295;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 292;goto st1392;} + {stack[top++] = 295;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 292;goto st1410;} + {stack[top++] = 295;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 292;goto st1416;} + {stack[top++] = 295;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 292;goto st1422;} + {stack[top++] = 295;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 292;goto st1430;} + {stack[top++] = 295;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 292;goto st1438;} + {stack[top++] = 295;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 295;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st292; -tr833: + goto st295; +tr844: { s->r_owner_length = s->dname_tmp_length; } @@ -40398,96 +41300,98 @@ tr833: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 292;goto st886;} + {stack[top++] = 295;goto st900;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 292;goto st888;} + {stack[top++] = 295;goto st902;} case KNOT_RRTYPE_SOA: - {stack[top++] = 292;goto st890;} + {stack[top++] = 295;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 292;goto st922;} + {stack[top++] = 295;goto st936;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 292;goto st927;} + {stack[top++] = 295;goto st941;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 292;goto st932;} + {stack[top++] = 295;goto st946;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 292;goto st937;} + {stack[top++] = 295;goto st951;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 292;goto st941;} + {stack[top++] = 295;goto st955;} case KNOT_RRTYPE_LOC: - {stack[top++] = 292;goto st943;} + {stack[top++] = 295;goto st957;} case KNOT_RRTYPE_SRV: - {stack[top++] = 292;goto st998;} + {stack[top++] = 295;goto st1012;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 292;goto st1009;} + {stack[top++] = 295;goto st1023;} case KNOT_RRTYPE_CERT: - {stack[top++] = 292;goto st1026;} + {stack[top++] = 295;goto st1040;} case KNOT_RRTYPE_APL: - {stack[top++] = 292;goto st1037;} + {stack[top++] = 295;goto st1051;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 292;goto st1048;} + {stack[top++] = 295;goto st1062;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 292;goto st1061;} + {stack[top++] = 295;goto st1075;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 292;goto st1071;} + {stack[top++] = 295;goto st1085;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 292;goto st1110;} + {stack[top++] = 295;goto st1124;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 292;goto st1302;} + {stack[top++] = 295;goto st1319;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 292;goto st1305;} + {stack[top++] = 295;goto st1322;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 292;goto st1316;} + {stack[top++] = 295;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 292;goto st1318;} + {stack[top++] = 295;goto st1335;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 292;goto st1347;} + {stack[top++] = 295;goto st1364;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 292;goto st1360;} + {stack[top++] = 295;goto st1377;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 292;goto st1373;} + {stack[top++] = 295;goto st1390;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 292;goto st1379;} + {stack[top++] = 295;goto st1396;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 292;goto st1397;} + {stack[top++] = 295;goto st1414;} case KNOT_RRTYPE_L32: - {stack[top++] = 292;goto st1392;} + {stack[top++] = 295;goto st1409;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 292;goto st1410;} + {stack[top++] = 295;goto st1427;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 292;goto st1416;} + {stack[top++] = 295;goto st1433;} case KNOT_RRTYPE_URI: - {stack[top++] = 292;goto st1422;} + {stack[top++] = 295;goto st1439;} case KNOT_RRTYPE_CAA: - {stack[top++] = 292;goto st1430;} + {stack[top++] = 295;goto st1447;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 292;goto st1438;} + {stack[top++] = 295;goto st1455;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 295;goto st1461;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st316;} + {goto st319;} } } - goto st292; -st292: + goto st295; +st295: if ( ++p == pe ) - goto _test_eof292; -case 292: + goto _test_eof295; +case 295: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -40525,24 +41429,24 @@ case 292: case 1832: goto tr87; case 1833: goto tr88; case 1851: goto tr90; - case 2057: goto tr1008; - case 2058: goto tr933; - case 2080: goto tr1008; - case 2088: goto tr1009; - case 2089: goto tr1010; - case 2107: goto tr944; + case 2057: goto tr1019; + case 2058: goto tr944; + case 2080: goto tr1019; + case 2088: goto tr1020; + case 2089: goto tr1021; + case 2107: goto tr955; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1001; + goto tr1012; goto tr85; -tr1011: +tr1022: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st293; -tr1008: + goto st296; +tr1019: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40552,8 +41456,8 @@ tr1008: s->buffer[0] = 0; s->buffer_length = 0; } - goto st293; -tr1009: + goto st296; +tr1020: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40566,12 +41470,12 @@ tr1009: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st293; -tr1010: + goto st296; +tr1021: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40584,12 +41488,12 @@ tr1010: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st293; -tr1012: + goto st296; +tr1023: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40598,12 +41502,12 @@ tr1012: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st293; -tr1013: + goto st296; +tr1024: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40612,15 +41516,15 @@ tr1013: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st293; -st293: + goto st296; +st296: if ( ++p == pe ) - goto _test_eof293; -case 293: + goto _test_eof296; +case 296: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -40658,17 +41562,17 @@ case 293: case 1832: goto tr93; case 1833: goto tr94; case 1851: goto tr96; - case 2057: goto tr1011; - case 2058: goto tr862; - case 2080: goto tr1011; - case 2088: goto tr1012; - case 2089: goto tr1013; - case 2107: goto tr948; + case 2057: goto tr1022; + case 2058: goto tr873; + case 2080: goto tr1022; + case 2088: goto tr1023; + case 2089: goto tr1024; + case 2107: goto tr959; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1001; + goto tr1012; goto tr85; -tr4312: +tr4412: { s->r_class = s->default_class; } @@ -40676,9 +41580,9 @@ tr4312: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 294;goto st318;} } - goto st294; -tr4334: + { p--; {stack[top++] = 297;goto st321;} } + goto st297; +tr4434: { s->r_class = s->default_class; } @@ -40689,12 +41593,12 @@ tr4334: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 294;goto st318;} } - goto st294; -st294: + { p--; {stack[top++] = 297;goto st321;} } + goto st297; +st297: if ( ++p == pe ) - goto _test_eof294; -case 294: + goto _test_eof297; +case 297: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40708,10 +41612,10 @@ case 294: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; case 65: goto st18; case 68: goto st22; case 69: goto st29; @@ -40722,11 +41626,11 @@ case 294: case 101: goto st29; case 110: goto st32; case 115: goto st36; - case 2058: goto tr788; - case 2107: goto tr789; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4313: + goto tr1025; +tr4413: { s->r_class = s->default_class; } @@ -40734,9 +41638,9 @@ tr4313: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 295;goto st318;} } - goto st295; -tr4335: + { p--; {stack[top++] = 298;goto st321;} } + goto st298; +tr4435: { s->r_class = s->default_class; } @@ -40747,12 +41651,12 @@ tr4335: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 295;goto st318;} } - goto st295; -st295: + { p--; {stack[top++] = 298;goto st321;} } + goto st298; +st298: if ( ++p == pe ) - goto _test_eof295; -case 295: + goto _test_eof298; +case 298: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40766,21 +41670,21 @@ case 295: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; case 72: goto st41; case 78: goto st45; case 83: goto st53; case 104: goto st41; case 110: goto st45; case 115: goto st53; - case 2058: goto tr788; - case 2107: goto tr789; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4314: + goto tr1025; +tr4414: { s->r_class = s->default_class; } @@ -40788,9 +41692,9 @@ tr4314: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 296;goto st318;} } - goto st296; -tr4336: + { p--; {stack[top++] = 299;goto st321;} } + goto st299; +tr4436: { s->r_class = s->default_class; } @@ -40801,12 +41705,12 @@ tr4336: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 296;goto st318;} } - goto st296; -st296: + { p--; {stack[top++] = 299;goto st321;} } + goto st299; +st299: if ( ++p == pe ) - goto _test_eof296; -case 296: + goto _test_eof299; +case 299: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40820,17 +41724,17 @@ case 296: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 85: goto st55; - case 117: goto st55; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 85: goto st58; + case 117: goto st58; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4315: + goto tr1025; +tr4415: { s->r_class = s->default_class; } @@ -40838,9 +41742,9 @@ tr4315: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 297;goto st318;} } - goto st297; -tr4337: + { p--; {stack[top++] = 300;goto st321;} } + goto st300; +tr4437: { s->r_class = s->default_class; } @@ -40851,12 +41755,12 @@ tr4337: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 297;goto st318;} } - goto st297; -st297: + { p--; {stack[top++] = 300;goto st321;} } + goto st300; +st300: if ( ++p == pe ) - goto _test_eof297; -case 297: + goto _test_eof300; +case 300: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40870,19 +41774,19 @@ case 297: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 73: goto st62; - case 84: goto st66; - case 105: goto st62; - case 116: goto st66; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 73: goto st65; + case 84: goto st69; + case 105: goto st65; + case 116: goto st69; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4338: + goto tr1025; +tr4438: { s->r_class = s->default_class; } @@ -40893,12 +41797,12 @@ tr4338: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 298;goto st318;} } - goto st298; -st298: + { p--; {stack[top++] = 301;goto st321;} } + goto st301; +st301: if ( ++p == pe ) - goto _test_eof298; -case 298: + goto _test_eof301; +case 301: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40912,19 +41816,19 @@ case 298: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 78: goto st182; - case 80: goto st74; - case 110: goto st182; - case 112: goto st74; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 78: goto st185; + case 80: goto st77; + case 110: goto st185; + case 112: goto st77; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4317: + goto tr1025; +tr4417: { s->r_class = s->default_class; } @@ -40932,9 +41836,9 @@ tr4317: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 299;goto st318;} } - goto st299; -tr4339: + { p--; {stack[top++] = 302;goto st321;} } + goto st302; +tr4439: { s->r_class = s->default_class; } @@ -40945,12 +41849,12 @@ tr4339: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 299;goto st318;} } - goto st299; -st299: + { p--; {stack[top++] = 302;goto st321;} } + goto st302; +st302: if ( ++p == pe ) - goto _test_eof299; -case 299: + goto _test_eof302; +case 302: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40964,19 +41868,19 @@ case 299: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 69: goto st82; - case 88: goto st84; - case 101: goto st82; - case 120: goto st84; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 69: goto st85; + case 88: goto st87; + case 101: goto st85; + case 120: goto st87; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4318: + goto tr1025; +tr4418: { s->r_class = s->default_class; } @@ -40984,9 +41888,9 @@ tr4318: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 300;goto st318;} } - goto st300; -tr4340: + { p--; {stack[top++] = 303;goto st321;} } + goto st303; +tr4440: { s->r_class = s->default_class; } @@ -40997,12 +41901,12 @@ tr4340: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 300;goto st318;} } - goto st300; -st300: + { p--; {stack[top++] = 303;goto st321;} } + goto st303; +st303: if ( ++p == pe ) - goto _test_eof300; -case 300: + goto _test_eof303; +case 303: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41016,21 +41920,21 @@ case 300: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 51: goto st86; - case 54: goto st88; - case 79: goto st90; - case 80: goto st92; - case 111: goto st90; - case 112: goto st92; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 51: goto st89; + case 54: goto st91; + case 79: goto st93; + case 80: goto st95; + case 111: goto st93; + case 112: goto st95; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4319: + goto tr1025; +tr4419: { s->r_class = s->default_class; } @@ -41038,9 +41942,9 @@ tr4319: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 301;goto st318;} } - goto st301; -tr4341: + { p--; {stack[top++] = 304;goto st321;} } + goto st304; +tr4441: { s->r_class = s->default_class; } @@ -41051,12 +41955,12 @@ tr4341: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 301;goto st318;} } - goto st301; -st301: + { p--; {stack[top++] = 304;goto st321;} } + goto st304; +st304: if ( ++p == pe ) - goto _test_eof301; -case 301: + goto _test_eof304; +case 304: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41070,19 +41974,19 @@ case 301: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 73: goto st94; - case 88: goto st98; - case 105: goto st94; - case 120: goto st98; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 73: goto st97; + case 88: goto st101; + case 105: goto st97; + case 120: goto st101; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4320: + goto tr1025; +tr4420: { s->r_class = s->default_class; } @@ -41090,9 +41994,9 @@ tr4320: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 302;goto st318;} } - goto st302; -tr4342: + { p--; {stack[top++] = 305;goto st321;} } + goto st305; +tr4442: { s->r_class = s->default_class; } @@ -41103,12 +42007,12 @@ tr4342: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 302;goto st318;} } - goto st302; -st302: + { p--; {stack[top++] = 305;goto st321;} } + goto st305; +st305: if ( ++p == pe ) - goto _test_eof302; -case 302: + goto _test_eof305; +case 305: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41122,21 +42026,21 @@ case 302: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 65: goto st100; - case 73: goto st104; - case 83: goto st106; - case 97: goto st100; - case 105: goto st104; - case 115: goto st106; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 65: goto st103; + case 73: goto st107; + case 83: goto st109; + case 97: goto st103; + case 105: goto st107; + case 115: goto st109; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4321: + goto tr1025; +tr4421: { s->r_class = s->default_class; } @@ -41144,9 +42048,9 @@ tr4321: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 303;goto st318;} } - goto st303; -tr4343: + { p--; {stack[top++] = 306;goto st321;} } + goto st306; +tr4443: { s->r_class = s->default_class; } @@ -41157,12 +42061,12 @@ tr4343: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 303;goto st318;} } - goto st303; -st303: + { p--; {stack[top++] = 306;goto st321;} } + goto st306; +st306: if ( ++p == pe ) - goto _test_eof303; -case 303: + goto _test_eof306; +case 306: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41176,17 +42080,17 @@ case 303: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 80: goto st116; - case 112: goto st116; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 80: goto st119; + case 112: goto st119; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4322: + goto tr1025; +tr4422: { s->r_class = s->default_class; } @@ -41194,9 +42098,9 @@ tr4322: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 304;goto st318;} } - goto st304; -tr4344: + { p--; {stack[top++] = 307;goto st321;} } + goto st307; +tr4444: { s->r_class = s->default_class; } @@ -41207,12 +42111,12 @@ tr4344: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 304;goto st318;} } - goto st304; -st304: + { p--; {stack[top++] = 307;goto st321;} } + goto st307; +st307: if ( ++p == pe ) - goto _test_eof304; -case 304: + goto _test_eof307; +case 307: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41226,17 +42130,17 @@ case 304: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 84: goto st126; - case 116: goto st126; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 84: goto st129; + case 116: goto st129; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4323: + goto tr1025; +tr4423: { s->r_class = s->default_class; } @@ -41244,9 +42148,9 @@ tr4323: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 305;goto st318;} } - goto st305; -tr4345: + { p--; {stack[top++] = 308;goto st321;} } + goto st308; +tr4445: { s->r_class = s->default_class; } @@ -41257,12 +42161,12 @@ tr4345: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 305;goto st318;} } - goto st305; -st305: + { p--; {stack[top++] = 308;goto st321;} } + goto st308; +st308: if ( ++p == pe ) - goto _test_eof305; -case 305: + goto _test_eof308; +case 308: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41276,21 +42180,21 @@ case 305: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 80: goto st129; - case 82: goto st130; - case 84: goto st134; - case 112: goto st129; - case 114: goto st130; - case 116: goto st134; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 80: goto st132; + case 82: goto st133; + case 84: goto st137; + case 112: goto st132; + case 114: goto st133; + case 116: goto st137; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4324: + goto tr1025; +tr4424: { s->r_class = s->default_class; } @@ -41298,9 +42202,9 @@ tr4324: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 306;goto st318;} } - goto st306; -tr4346: + { p--; {stack[top++] = 309;goto st321;} } + goto st309; +tr4446: { s->r_class = s->default_class; } @@ -41311,12 +42215,12 @@ tr4346: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 306;goto st318;} } - goto st306; -st306: + { p--; {stack[top++] = 309;goto st321;} } + goto st309; +st309: if ( ++p == pe ) - goto _test_eof306; -case 306: + goto _test_eof309; +case 309: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41330,27 +42234,27 @@ case 306: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 77: goto st136; - case 79: goto st141; - case 80: goto st143; - case 82: goto st145; - case 83: goto st147; - case 86: goto st151; - case 109: goto st136; - case 111: goto st141; - case 112: goto st143; - case 114: goto st145; - case 115: goto st147; - case 118: goto st151; - case 2058: goto tr788; - case 2107: goto tr789; - } - goto tr1014; -tr4325: + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 77: goto st139; + case 79: goto st144; + case 80: goto st146; + case 82: goto st148; + case 83: goto st150; + case 86: goto st154; + case 109: goto st139; + case 111: goto st144; + case 112: goto st146; + case 114: goto st148; + case 115: goto st150; + case 118: goto st154; + case 2058: goto tr799; + case 2107: goto tr800; + } + goto tr1025; +tr4425: { s->r_class = s->default_class; } @@ -41358,9 +42262,9 @@ tr4325: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 307;goto st318;} } - goto st307; -tr4347: + { p--; {stack[top++] = 310;goto st321;} } + goto st310; +tr4447: { s->r_class = s->default_class; } @@ -41371,12 +42275,12 @@ tr4347: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 307;goto st318;} } - goto st307; -st307: + { p--; {stack[top++] = 310;goto st321;} } + goto st310; +st310: if ( ++p == pe ) - goto _test_eof307; -case 307: + goto _test_eof310; +case 310: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41390,21 +42294,21 @@ case 307: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 76: goto st155; - case 88: goto st158; - case 89: goto st160; - case 108: goto st155; - case 120: goto st158; - case 121: goto st160; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 76: goto st158; + case 88: goto st161; + case 89: goto st163; + case 108: goto st158; + case 120: goto st161; + case 121: goto st163; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4326: + goto tr1025; +tr4426: { s->r_class = s->default_class; } @@ -41412,9 +42316,9 @@ tr4326: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 308;goto st318;} } - goto st308; -tr4348: + { p--; {stack[top++] = 311;goto st321;} } + goto st311; +tr4448: { s->r_class = s->default_class; } @@ -41425,12 +42329,12 @@ tr4348: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 308;goto st318;} } - goto st308; -st308: + { p--; {stack[top++] = 311;goto st321;} } + goto st311; +st311: if ( ++p == pe ) - goto _test_eof308; -case 308: + goto _test_eof311; +case 311: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41444,17 +42348,17 @@ case 308: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 82: goto st165; - case 114: goto st165; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 82: goto st168; + case 114: goto st168; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4327: + goto tr1025; +tr4427: { s->r_class = s->default_class; } @@ -41462,9 +42366,9 @@ tr4327: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 309;goto st318;} } - goto st309; -tr4349: + { p--; {stack[top++] = 312;goto st321;} } + goto st312; +tr4449: { s->r_class = s->default_class; } @@ -41475,12 +42379,12 @@ tr4349: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 309;goto st318;} } - goto st309; -st309: + { p--; {stack[top++] = 312;goto st321;} } + goto st312; +st312: if ( ++p == pe ) - goto _test_eof309; -case 309: + goto _test_eof312; +case 312: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41494,17 +42398,17 @@ case 309: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 65: goto st168; - case 97: goto st168; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 65: goto st171; + case 97: goto st171; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; -tr4328: + goto tr1025; +tr4428: { s->r_class = s->default_class; } @@ -41512,9 +42416,9 @@ tr4328: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 310;goto st318;} } - goto st310; -tr4350: + { p--; {stack[top++] = 313;goto st321;} } + goto st313; +tr4450: { s->r_class = s->default_class; } @@ -41525,12 +42429,12 @@ tr4350: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 310;goto st318;} } - goto st310; -st310: + { p--; {stack[top++] = 313;goto st321;} } + goto st313; +st313: if ( ++p == pe ) - goto _test_eof310; -case 310: + goto _test_eof313; +case 313: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41544,33 +42448,33 @@ case 310: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 79: goto st174; - case 111: goto st174; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 79: goto st177; + case 111: goto st177; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; + goto tr1025; tr26: { s->buffer_length = 0; } - goto st311; -tr1015: + goto st314; +tr1026: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st311; -tr4294: + goto st314; +tr4394: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -41580,30 +42484,30 @@ tr4294: s->buffer[0] = 0; s->buffer_length = 0; } - goto st311; -tr4364: + goto st314; +tr4464: { s->buffer_length = 0; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st311; -tr4360: + goto st314; +tr4460: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -41613,11 +42517,11 @@ tr4360: s->buffer[0] = 0; s->buffer_length = 0; } - goto st311; -st311: + goto st314; +st314: if ( ++p == pe ) - goto _test_eof311; -case 311: + goto _test_eof314; +case 314: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -41637,46 +42541,46 @@ case 311: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr772; - case 2058: goto tr1016; + case 1802: goto tr783; + case 2058: goto tr1027; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1015; + goto tr1026; } else if ( _widec >= 1664 ) - goto tr771; + goto tr782; goto tr91; -tr714: +tr725: { s->buffer_length = 0; } - goto st312; -tr1017: + goto st315; +tr1028: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st312; -tr4330: + goto st315; +tr4430: { s->buffer_length = 0; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st312; -st312: + goto st315; +st315: if ( ++p == pe ) - goto _test_eof312; -case 312: + goto _test_eof315; +case 315: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -41696,16 +42600,16 @@ case 312: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr772; - case 2058: goto tr1018; + case 1802: goto tr783; + case 2058: goto tr1029; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1017; + goto tr1028; } else if ( _widec >= 1664 ) - goto tr771; + goto tr782; goto tr154; -tr4316: +tr4416: { s->r_class = s->default_class; } @@ -41713,12 +42617,12 @@ tr4316: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 313;goto st318;} } - goto st313; -st313: + { p--; {stack[top++] = 316;goto st321;} } + goto st316; +st316: if ( ++p == pe ) - goto _test_eof313; -case 313: + goto _test_eof316; +case 316: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41732,37 +42636,37 @@ case 313: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr785; - case 32: goto tr785; - case 40: goto tr786; - case 41: goto tr787; - case 78: goto st71; - case 80: goto st74; - case 110: goto st71; - case 112: goto st74; - case 2058: goto tr788; - case 2107: goto tr789; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 78: goto st74; + case 80: goto st77; + case 110: goto st74; + case 112: goto st77; + case 2058: goto tr799; + case 2107: goto tr800; } - goto tr1014; + goto tr1025; tr159: { s->buffer_length = 0; } - goto st314; -tr1019: + goto st317; +tr1030: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st314; + goto st317; tr153: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -41772,11 +42676,11 @@ tr153: s->buffer[0] = 0; s->buffer_length = 0; } - goto st314; -st314: + goto st317; +st317: if ( ++p == pe ) - goto _test_eof314; -case 314: + goto _test_eof317; +case 317: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -41797,32 +42701,32 @@ case 314: } switch( _widec ) { case 1802: goto tr98; - case 2058: goto tr1020; + case 2058: goto tr1031; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1019; + goto tr1030; } else if ( _widec >= 1664 ) goto tr97; goto tr154; -tr1024: +tr1035: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st315; -tr1023: + goto st318; +tr1034: { s->line_counter++; } - goto st315; -st315: + goto st318; +st318: if ( ++p == pe ) - goto _test_eof315; -case 315: + goto _test_eof318; +case 318: _widec = (*p); if ( (*p) > 10 ) { if ( 41 <= (*p) && (*p) <= 41 ) { @@ -41836,38 +42740,38 @@ case 315: s->multiline ) _widec += 256; } switch( _widec ) { - case 266: goto tr1022; - case 522: goto tr1023; - case 1065: goto tr1024; + case 266: goto tr1033; + case 522: goto tr1034; + case 1065: goto tr1035; } if ( _widec < 11 ) { if ( _widec <= 9 ) - goto st315; + goto st318; } else if ( _widec > 40 ) { if ( 42 <= _widec ) - goto st315; + goto st318; } else - goto st315; + goto st318; goto st0; -tr1022: - { p--; {stack[top++] = 1454;goto st1444;} } +tr1033: + { p--; {stack[top++] = 1493;goto st1483;} } { s->line_counter++; } - goto st1454; -st1454: + goto st1493; +st1493: if ( ++p == pe ) - goto _test_eof1454; -case 1454: + goto _test_eof1493; +case 1493: goto st0; -st316: +st319: if ( ++p == pe ) - goto _test_eof316; -case 316: + goto _test_eof319; +case 319: if ( (*p) == 10 ) - goto tr1026; - goto tr1025; -tr1025: + goto tr1037; + goto tr1036; +tr1036: { s->buffer_length = 0; } @@ -41880,8 +42784,8 @@ tr1025: s->buffer[s->buffer_length++] = (*p); } } - goto st317; -tr1027: + goto st320; +tr1038: { if ((*p) == '\r') { ERR(ZS_DOS_NEWLINE); @@ -41891,16 +42795,16 @@ tr1027: s->buffer[s->buffer_length++] = (*p); } } - goto st317; -st317: + goto st320; +st320: if ( ++p == pe ) - goto _test_eof317; -case 317: + goto _test_eof320; +case 320: if ( (*p) == 10 ) - goto tr1028; - goto tr1027; -tr1026: - cs = 1455; + goto tr1039; + goto tr1038; +tr1037: + cs = 1494; { s->buffer_length = 0; } @@ -41937,18 +42841,18 @@ tr1026: if (s->error.fatal) { {p++; goto _out;} } - {goto st315;} + {goto st318;} } else { // Return if external processing. - p--; cs = 315; {p++; goto _out;} + p--; cs = 318; {p++; goto _out;} } } { s->line_counter++; } goto _again; -tr1028: - cs = 1455; +tr1039: + cs = 1494; { // Terminate the error context string. s->buffer[s->buffer_length++] = 0; @@ -41982,42 +42886,42 @@ tr1028: if (s->error.fatal) { {p++; goto _out;} } - {goto st315;} + {goto st318;} } else { // Return if external processing. - p--; cs = 315; {p++; goto _out;} + p--; cs = 318; {p++; goto _out;} } } { s->line_counter++; } goto _again; -st1455: +st1494: if ( ++p == pe ) - goto _test_eof1455; -case 1455: + goto _test_eof1494; +case 1494: goto st0; -st318: +st321: if ( ++p == pe ) - goto _test_eof318; -case 318: + goto _test_eof321; +case 321: switch( (*p) ) { - case 42: goto tr1030; - case 46: goto tr1031; - case 64: goto st326; - case 92: goto tr1033; - case 95: goto tr1030; + case 42: goto tr1041; + case 46: goto tr1042; + case 64: goto st329; + case 92: goto tr1044; + case 95: goto tr1041; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1030; + goto tr1041; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1030; + goto tr1041; } else - goto tr1030; - goto tr1029; -tr1030: + goto tr1041; + goto tr1040; +tr1041: { s->item_length_position = 0; s->dname_tmp_length = 0; @@ -42033,11 +42937,11 @@ tr1030: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st319; -tr1035: + goto st322; +tr1046: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -42045,11 +42949,11 @@ tr1035: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st319; -tr1039: + goto st322; +tr1050: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -42061,11 +42965,11 @@ tr1039: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st319; -tr1046: + goto st322; +tr1057: { s->dname_tmp_length++; } @@ -42076,38 +42980,38 @@ tr1046: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st319; -st319: + goto st322; +st322: if ( ++p == pe ) - goto _test_eof319; -case 319: + goto _test_eof322; +case 322: switch( (*p) ) { - case 32: goto tr1034; - case 42: goto tr1035; - case 46: goto tr1036; - case 59: goto tr1034; - case 92: goto st321; - case 95: goto tr1035; + case 32: goto tr1045; + case 42: goto tr1046; + case 46: goto tr1047; + case 59: goto tr1045; + case 92: goto st324; + case 95: goto tr1046; } if ( (*p) < 45 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1034; + goto tr1045; } else if ( (*p) >= 9 ) - goto tr1034; + goto tr1045; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1035; + goto tr1046; } else if ( (*p) >= 65 ) - goto tr1035; + goto tr1046; } else - goto tr1035; - goto tr1029; -tr1034: + goto tr1046; + goto tr1040; +tr1045: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -42116,7 +43020,7 @@ tr1034: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -42129,14 +43033,14 @@ tr1034: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1456; -tr1038: + goto st1495; +tr1049: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -42144,8 +43048,8 @@ tr1038: { p--; {cs = stack[--top];goto _again;} } - goto st1456; -tr1045: + goto st1495; +tr1056: { s->dname_tmp_length++; } @@ -42157,7 +43061,7 @@ tr1045: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -42170,14 +43074,14 @@ tr1045: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1456; -tr1049: + goto st1495; +tr1060: { // Copy already verified zone origin. memcpy(s->dname, @@ -42189,13 +43093,13 @@ tr1049: { p--; {cs = stack[--top];goto _again;} } - goto st1456; -st1456: + goto st1495; +st1495: if ( ++p == pe ) - goto _test_eof1456; -case 1456: + goto _test_eof1495; +case 1495: goto st0; -tr1036: +tr1047: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -42204,11 +43108,11 @@ tr1036: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st320; -tr1047: + goto st323; +tr1058: { s->dname_tmp_length++; } @@ -42220,38 +43124,38 @@ tr1047: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st320; -st320: + goto st323; +st323: if ( ++p == pe ) - goto _test_eof320; -case 320: + goto _test_eof323; +case 323: switch( (*p) ) { - case 32: goto tr1038; - case 42: goto tr1039; - case 45: goto tr1039; - case 59: goto tr1038; - case 92: goto tr1040; - case 95: goto tr1039; + case 32: goto tr1049; + case 42: goto tr1050; + case 45: goto tr1050; + case 59: goto tr1049; + case 92: goto tr1051; + case 95: goto tr1050; } if ( (*p) < 47 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1038; + goto tr1049; } else if ( (*p) >= 9 ) - goto tr1038; + goto tr1049; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1039; + goto tr1050; } else if ( (*p) >= 65 ) - goto tr1039; + goto tr1050; } else - goto tr1039; - goto tr1029; -tr1033: + goto tr1050; + goto tr1040; +tr1044: { s->item_length_position = 0; s->dname_tmp_length = 0; @@ -42260,142 +43164,142 @@ tr1033: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st321; -tr1040: + goto st324; +tr1051: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st321; -tr1048: + goto st324; +tr1059: { s->dname_tmp_length++; } - goto st321; -st321: + goto st324; +st324: if ( ++p == pe ) - goto _test_eof321; -case 321: + goto _test_eof324; +case 324: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1041; - goto tr1035; -tr1041: + goto tr1052; + goto tr1046; +tr1052: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st322; -st322: + goto st325; +st325: if ( ++p == pe ) - goto _test_eof322; -case 322: + goto _test_eof325; +case 325: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1043; - goto tr1042; -tr1043: + goto tr1054; + goto tr1053; +tr1054: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st323; -st323: + goto st326; +st326: if ( ++p == pe ) - goto _test_eof323; -case 323: + goto _test_eof326; +case 326: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1044; - goto tr1042; -tr1044: + goto tr1055; + goto tr1053; +tr1055: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st324; -st324: + goto st327; +st327: if ( ++p == pe ) - goto _test_eof324; -case 324: + goto _test_eof327; +case 327: switch( (*p) ) { - case 32: goto tr1045; - case 42: goto tr1046; - case 46: goto tr1047; - case 59: goto tr1045; - case 92: goto tr1048; - case 95: goto tr1046; + case 32: goto tr1056; + case 42: goto tr1057; + case 46: goto tr1058; + case 59: goto tr1056; + case 92: goto tr1059; + case 95: goto tr1057; } if ( (*p) < 45 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1045; + goto tr1056; } else if ( (*p) >= 9 ) - goto tr1045; + goto tr1056; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1046; + goto tr1057; } else if ( (*p) >= 65 ) - goto tr1046; + goto tr1057; } else - goto tr1046; - goto tr1042; -tr1031: + goto tr1057; + goto tr1053; +tr1042: { s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st325; -st325: + goto st328; +st328: if ( ++p == pe ) - goto _test_eof325; -case 325: + goto _test_eof328; +case 328: switch( (*p) ) { - case 32: goto tr1038; - case 59: goto tr1038; + case 32: goto tr1049; + case 59: goto tr1049; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1038; + goto tr1049; } else if ( (*p) >= 9 ) - goto tr1038; - goto tr1029; -st326: + goto tr1049; + goto tr1040; +st329: if ( ++p == pe ) - goto _test_eof326; -case 326: + goto _test_eof329; +case 329: switch( (*p) ) { - case 32: goto tr1049; - case 59: goto tr1049; + case 32: goto tr1060; + case 59: goto tr1060; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1049; + goto tr1060; } else if ( (*p) >= 9 ) - goto tr1049; - goto tr1029; -st327: + goto tr1060; + goto tr1040; +st330: if ( ++p == pe ) - goto _test_eof327; -case 327: + goto _test_eof330; +case 330: switch( (*p) ) { - case 34: goto st333; - case 92: goto st329; + case 34: goto st336; + case 92: goto st332; } if ( (*p) > 58 ) { if ( 60 <= (*p) && (*p) <= 126 ) - goto tr1051; + goto tr1062; } else if ( (*p) >= 33 ) - goto tr1051; - goto tr1050; -tr1051: + goto tr1062; + goto tr1061; +tr1062: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -42408,18 +43312,18 @@ tr1051: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st328; -tr1055: + goto st331; +tr1066: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -42427,7 +43331,7 @@ tr1055: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -42445,7 +43349,7 @@ tr1055: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -42461,18 +43365,18 @@ tr1055: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st328; -tr1063: + goto st331; +tr1074: { rdata_tail++; } @@ -42483,7 +43387,7 @@ tr1063: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -42501,7 +43405,7 @@ tr1063: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -42517,40 +43421,40 @@ tr1063: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st328; -st328: + goto st331; +st331: if ( ++p == pe ) - goto _test_eof328; -case 328: + goto _test_eof331; +case 331: switch( (*p) ) { - case 32: goto tr1054; - case 33: goto tr1055; - case 59: goto tr1054; - case 92: goto tr1057; + case 32: goto tr1065; + case 33: goto tr1066; + case 59: goto tr1065; + case 92: goto tr1068; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1054; + goto tr1065; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1055; + goto tr1066; } else if ( (*p) >= 40 ) - goto tr1056; + goto tr1067; } else - goto tr1055; - goto tr1050; -tr1054: + goto tr1066; + goto tr1061; +tr1065: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -42558,7 +43462,7 @@ tr1054: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -42576,15 +43480,15 @@ tr1054: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } { p--; {cs = stack[--top];goto _again;} } - goto st1457; -tr1062: + goto st1496; +tr1073: { rdata_tail++; } @@ -42595,7 +43499,7 @@ tr1062: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -42613,25 +43517,25 @@ tr1062: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } { p--; {cs = stack[--top];goto _again;} } - goto st1457; -tr1075: + goto st1496; +tr1086: { p--; {cs = stack[--top];goto _again;} } - goto st1457; -st1457: + goto st1496; +st1496: if ( ++p == pe ) - goto _test_eof1457; -case 1457: + goto _test_eof1496; +case 1496: goto st0; -tr1056: +tr1067: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -42639,7 +43543,7 @@ tr1056: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -42657,7 +43561,7 @@ tr1056: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -42673,21 +43577,21 @@ tr1056: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1458; -tr1064: + goto st1497; +tr1075: { rdata_tail++; } @@ -42698,7 +43602,7 @@ tr1064: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -42716,7 +43620,7 @@ tr1064: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -42732,43 +43636,43 @@ tr1064: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1458; -st1458: + goto st1497; +st1497: if ( ++p == pe ) - goto _test_eof1458; -case 1458: + goto _test_eof1497; +case 1497: switch( (*p) ) { - case 32: goto tr1054; - case 33: goto tr1055; - case 59: goto tr1054; - case 92: goto tr1057; + case 32: goto tr1065; + case 33: goto tr1066; + case 59: goto tr1065; + case 92: goto tr1068; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1054; + goto tr1065; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1055; + goto tr1066; } else if ( (*p) >= 40 ) - goto tr1056; + goto tr1067; } else - goto tr1055; - goto tr1050; -tr1057: + goto tr1066; + goto tr1061; +tr1068: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -42776,7 +43680,7 @@ tr1057: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -42794,12 +43698,12 @@ tr1057: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } - goto st329; -tr1065: + goto st332; +tr1076: { rdata_tail++; } @@ -42810,7 +43714,7 @@ tr1065: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -42828,25 +43732,25 @@ tr1065: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } - goto st329; -st329: + goto st332; +st332: if ( ++p == pe ) - goto _test_eof329; -case 329: + goto _test_eof332; +case 332: if ( (*p) < 48 ) { if ( 32 <= (*p) && (*p) <= 47 ) - goto tr1051; + goto tr1062; } else if ( (*p) > 57 ) { if ( 58 <= (*p) && (*p) <= 126 ) - goto tr1051; + goto tr1062; } else - goto tr1059; - goto tr1058; -tr1059: + goto tr1070; + goto tr1069; +tr1070: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -42859,7 +43763,7 @@ tr1059: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } @@ -42867,7 +43771,7 @@ tr1059: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -42880,18 +43784,18 @@ tr1059: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st330; -st330: + goto st333; +st333: if ( ++p == pe ) - goto _test_eof330; -case 330: + goto _test_eof333; +case 333: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1060; - goto tr1058; -tr1060: + goto tr1071; + goto tr1069; +tr1071: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -42902,18 +43806,18 @@ tr1060: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st331; -st331: + goto st334; +st334: if ( ++p == pe ) - goto _test_eof331; -case 331: + goto _test_eof334; +case 334: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1061; - goto tr1058; -tr1061: + goto tr1072; + goto tr1069; +tr1072: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -42924,33 +43828,33 @@ tr1061: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st332; -st332: + goto st335; +st335: if ( ++p == pe ) - goto _test_eof332; -case 332: + goto _test_eof335; +case 335: switch( (*p) ) { - case 32: goto tr1062; - case 33: goto tr1063; - case 59: goto tr1062; - case 92: goto tr1065; + case 32: goto tr1073; + case 33: goto tr1074; + case 59: goto tr1073; + case 92: goto tr1076; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1062; + goto tr1073; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1063; + goto tr1074; } else if ( (*p) >= 40 ) - goto tr1064; + goto tr1075; } else - goto tr1063; - goto tr1058; -tr1066: + goto tr1074; + goto tr1069; +tr1077: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -42963,18 +43867,18 @@ tr1066: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st333; -tr1070: + goto st336; +tr1081: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -42982,7 +43886,7 @@ tr1070: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43000,7 +43904,7 @@ tr1070: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -43016,18 +43920,18 @@ tr1070: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st333; -tr1079: + goto st336; +tr1090: { rdata_tail++; } @@ -43038,7 +43942,7 @@ tr1079: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43056,7 +43960,7 @@ tr1079: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -43072,21 +43976,21 @@ tr1079: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st333; -st333: + goto st336; +st336: if ( ++p == pe ) - goto _test_eof333; -case 333: + goto _test_eof336; +case 336: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -43094,17 +43998,17 @@ case 333: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1066; - case 32: goto tr1066; - case 34: goto st335; - case 59: goto tr1066; - case 92: goto st336; - case 1546: goto tr1066; + case 9: goto tr1077; + case 32: goto tr1077; + case 34: goto st338; + case 59: goto tr1077; + case 92: goto st339; + case 1546: goto tr1077; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1067; - goto tr1050; -tr1067: + goto tr1078; + goto tr1061; +tr1078: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -43117,18 +44021,18 @@ tr1067: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st334; -tr1071: + goto st337; +tr1082: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -43136,7 +44040,7 @@ tr1071: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43154,7 +44058,7 @@ tr1071: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -43170,18 +44074,18 @@ tr1071: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st334; -tr1080: + goto st337; +tr1091: { rdata_tail++; } @@ -43192,7 +44096,7 @@ tr1080: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43210,7 +44114,7 @@ tr1080: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -43226,21 +44130,21 @@ tr1080: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st334; -st334: + goto st337; +st337: if ( ++p == pe ) - goto _test_eof334; -case 334: + goto _test_eof337; +case 337: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -43248,17 +44152,17 @@ case 334: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1070; - case 32: goto tr1070; - case 34: goto tr1072; - case 59: goto tr1070; - case 92: goto tr1073; - case 1546: goto tr1070; + case 9: goto tr1081; + case 32: goto tr1081; + case 34: goto tr1083; + case 59: goto tr1081; + case 92: goto tr1084; + case 1546: goto tr1081; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1071; - goto tr1050; -tr1072: + goto tr1082; + goto tr1061; +tr1083: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -43266,7 +44170,7 @@ tr1072: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43284,12 +44188,12 @@ tr1072: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } - goto st335; -tr1081: + goto st338; +tr1092: { rdata_tail++; } @@ -43300,7 +44204,7 @@ tr1081: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43318,26 +44222,26 @@ tr1081: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } - goto st335; -st335: + goto st338; +st338: if ( ++p == pe ) - goto _test_eof335; -case 335: + goto _test_eof338; +case 338: switch( (*p) ) { - case 32: goto tr1075; - case 59: goto tr1075; + case 32: goto tr1086; + case 59: goto tr1086; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1075; + goto tr1086; } else if ( (*p) >= 9 ) - goto tr1075; - goto tr1074; -tr1073: + goto tr1086; + goto tr1085; +tr1084: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -43345,7 +44249,7 @@ tr1073: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43363,12 +44267,12 @@ tr1073: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } - goto st336; -tr1082: + goto st339; +tr1093: { rdata_tail++; } @@ -43379,7 +44283,7 @@ tr1082: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43397,25 +44301,25 @@ tr1082: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } } - goto st336; -st336: + goto st339; +st339: if ( ++p == pe ) - goto _test_eof336; -case 336: + goto _test_eof339; +case 339: if ( (*p) < 48 ) { if ( 32 <= (*p) && (*p) <= 47 ) - goto tr1067; + goto tr1078; } else if ( (*p) > 57 ) { if ( 58 <= (*p) && (*p) <= 126 ) - goto tr1067; + goto tr1078; } else - goto tr1076; - goto tr1058; -tr1076: + goto tr1087; + goto tr1069; +tr1087: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -43428,7 +44332,7 @@ tr1076: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } @@ -43436,7 +44340,7 @@ tr1076: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -43449,18 +44353,18 @@ tr1076: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st337; -st337: + goto st340; +st340: if ( ++p == pe ) - goto _test_eof337; -case 337: + goto _test_eof340; +case 340: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1077; - goto tr1058; -tr1077: + goto tr1088; + goto tr1069; +tr1088: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -43471,18 +44375,18 @@ tr1077: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st338; -st338: + goto st341; +st341: if ( ++p == pe ) - goto _test_eof338; -case 338: + goto _test_eof341; +case 341: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1078; - goto tr1058; -tr1078: + goto tr1089; + goto tr1069; +tr1089: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -43493,14 +44397,14 @@ tr1078: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st339; -st339: + goto st342; +st342: if ( ++p == pe ) - goto _test_eof339; -case 339: + goto _test_eof342; +case 342: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -43508,20 +44412,20 @@ case 339: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1079; - case 32: goto tr1079; - case 34: goto tr1081; - case 59: goto tr1079; - case 92: goto tr1082; - case 1546: goto tr1079; + case 9: goto tr1090; + case 32: goto tr1090; + case 34: goto tr1092; + case 59: goto tr1090; + case 92: goto tr1093; + case 1546: goto tr1090; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1080; - goto tr1058; -st340: + goto tr1091; + goto tr1069; +st343: if ( ++p == pe ) - goto _test_eof340; -case 340: + goto _test_eof343; +case 343: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43535,38 +44439,38 @@ case 340: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st341; - case 32: goto st341; - case 40: goto tr1085; - case 41: goto tr1086; - case 2058: goto tr1087; - case 2107: goto tr1088; + case 9: goto st344; + case 32: goto st344; + case 40: goto tr1096; + case 41: goto tr1097; + case 2058: goto tr1098; + case 2107: goto tr1099; } - goto tr1083; -tr1085: + goto tr1094; +tr1096: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st341; -tr1086: + goto st344; +tr1097: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st341; -tr1087: + goto st344; +tr1098: { s->line_counter++; } - goto st341; -tr1126: + goto st344; +tr1137: { s->buffer[s->buffer_length++] = 0; @@ -43576,18 +44480,18 @@ tr1126: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 341; goto _out;} + {p++; cs = 344; goto _out;} } } } { s->line_counter++; } - goto st341; -st341: + goto st344; +st344: if ( ++p == pe ) - goto _test_eof341; -case 341: + goto _test_eof344; +case 344: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43601,17 +44505,17 @@ case 341: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st341; - case 32: goto st341; - case 40: goto tr1085; - case 41: goto tr1086; - case 2058: goto tr1087; - case 2107: goto tr1088; + case 9: goto st344; + case 32: goto st344; + case 40: goto tr1096; + case 41: goto tr1097; + case 2058: goto tr1098; + case 2107: goto tr1099; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1090; - goto tr1089; -tr1090: + goto tr1101; + goto tr1100; +tr1101: { s->number64 = 0; } @@ -43626,11 +44530,11 @@ tr1090: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st342; -tr1095: + goto st345; +tr1106: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -43642,14 +44546,14 @@ tr1095: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st342; -st342: + goto st345; +st345: if ( ++p == pe ) - goto _test_eof342; -case 342: + goto _test_eof345; +case 345: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43663,53 +44567,53 @@ case 342: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1092; - case 32: goto tr1092; - case 40: goto tr1093; - case 41: goto tr1094; - case 68: goto tr1096; - case 72: goto tr1097; - case 77: goto tr1098; - case 83: goto st345; - case 87: goto tr1100; - case 100: goto tr1096; - case 104: goto tr1097; - case 109: goto tr1098; - case 115: goto st345; - case 119: goto tr1100; - case 1802: goto tr1101; - case 1851: goto tr1102; - case 2058: goto tr1101; - case 2107: goto tr1102; + case 9: goto tr1103; + case 32: goto tr1103; + case 40: goto tr1104; + case 41: goto tr1105; + case 68: goto tr1107; + case 72: goto tr1108; + case 77: goto tr1109; + case 83: goto st348; + case 87: goto tr1111; + case 100: goto tr1107; + case 104: goto tr1108; + case 109: goto tr1109; + case 115: goto st348; + case 119: goto tr1111; + case 1802: goto tr1112; + case 1851: goto tr1113; + case 2058: goto tr1112; + case 2107: goto tr1113; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1095; - goto tr1091; -tr1105: + goto tr1106; + goto tr1102; +tr1116: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st343; -tr1106: + goto st346; +tr1117: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st343; -tr1092: + goto st346; +tr1103: { s->buffer[0] = 0; s->buffer_length = 0; } - goto st343; -tr1093: + goto st346; +tr1104: { s->buffer[0] = 0; s->buffer_length = 0; @@ -43717,12 +44621,12 @@ tr1093: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st343; -tr1094: + goto st346; +tr1105: { s->buffer[0] = 0; s->buffer_length = 0; @@ -43730,32 +44634,32 @@ tr1094: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st343; -tr1119: + goto st346; +tr1130: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st343; -tr1120: + goto st346; +tr1131: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -43765,18 +44669,18 @@ tr1120: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st343; -tr1121: + goto st346; +tr1132: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -43786,15 +44690,15 @@ tr1121: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st343; -st343: + goto st346; +st346: if ( ++p == pe ) - goto _test_eof343; -case 343: + goto _test_eof346; +case 346: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43808,17 +44712,17 @@ case 343: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st343; - case 32: goto st343; - case 40: goto tr1105; - case 41: goto tr1106; - case 1802: goto tr1107; - case 1851: goto tr1108; - case 2058: goto tr1107; - case 2107: goto tr1108; + case 9: goto st346; + case 32: goto st346; + case 40: goto tr1116; + case 41: goto tr1117; + case 1802: goto tr1118; + case 1851: goto tr1119; + case 2058: goto tr1118; + case 2107: goto tr1119; } - goto tr1103; -tr1101: + goto tr1114; +tr1112: { s->buffer[0] = 0; s->buffer_length = 0; @@ -43828,7 +44732,7 @@ tr1101: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -43837,14 +44741,14 @@ tr1101: { s->line_counter++; } - goto st1459; -tr1107: + goto st1498; +tr1118: { if (s->number64 <= UINT32_MAX) { s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -43853,8 +44757,8 @@ tr1107: { s->line_counter++; } - goto st1459; -tr1110: + goto st1498; +tr1121: { s->buffer[s->buffer_length++] = 0; @@ -43864,7 +44768,7 @@ tr1110: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1459; goto _out;} + {p++; cs = 1498; goto _out;} } } } @@ -43873,7 +44777,7 @@ tr1110: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -43882,14 +44786,14 @@ tr1110: { s->line_counter++; } - goto st1459; -tr1123: + goto st1498; +tr1134: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -43901,7 +44805,7 @@ tr1123: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -43910,18 +44814,18 @@ tr1123: { s->line_counter++; } - goto st1459; -st1459: + goto st1498; +st1498: if ( ++p == pe ) - goto _test_eof1459; -case 1459: + goto _test_eof1498; +case 1498: goto st0; -tr1108: +tr1119: { s->buffer_length = 0; } - goto st344; -tr1102: + goto st347; +tr1113: { s->buffer[0] = 0; s->buffer_length = 0; @@ -43929,21 +44833,21 @@ tr1102: { s->buffer_length = 0; } - goto st344; -tr1109: + goto st347; +tr1120: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st344; -tr1124: + goto st347; +tr1135: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -43953,54 +44857,54 @@ tr1124: { s->buffer_length = 0; } - goto st344; -st344: + goto st347; +st347: if ( ++p == pe ) - goto _test_eof344; -case 344: + goto _test_eof347; +case 347: if ( (*p) == 10 ) - goto tr1110; - goto tr1109; -tr1096: + goto tr1121; + goto tr1120; +tr1107: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st345; -tr1097: + goto st348; +tr1108: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st345; -tr1098: + goto st348; +tr1109: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st345; -tr1100: + goto st348; +tr1111: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st345; -st345: + goto st348; +st348: if ( ++p == pe ) - goto _test_eof345; -case 345: + goto _test_eof348; +case 348: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44014,19 +44918,19 @@ case 345: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1092; - case 32: goto tr1092; - case 40: goto tr1093; - case 41: goto tr1094; - case 1802: goto tr1101; - case 1851: goto tr1102; - case 2058: goto tr1101; - case 2107: goto tr1102; + case 9: goto tr1103; + case 32: goto tr1103; + case 40: goto tr1104; + case 41: goto tr1105; + case 1802: goto tr1112; + case 1851: goto tr1113; + case 2058: goto tr1112; + case 2107: goto tr1113; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1111; - goto tr1091; -tr1113: + goto tr1122; + goto tr1102; +tr1124: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -44038,11 +44942,11 @@ tr1113: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st346; -tr1111: + goto st349; +tr1122: { s->number64_tmp = s->number64; } @@ -44060,17 +44964,17 @@ tr1111: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st346; -tr1122: + goto st349; +tr1133: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -44090,69 +44994,69 @@ tr1122: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st346; -st346: + goto st349; +st349: if ( ++p == pe ) - goto _test_eof346; -case 346: + goto _test_eof349; +case 349: switch( (*p) ) { - case 68: goto tr1114; - case 72: goto tr1115; - case 77: goto tr1116; - case 83: goto st347; - case 87: goto tr1118; - case 100: goto tr1114; - case 104: goto tr1115; - case 109: goto tr1116; - case 115: goto st347; - case 119: goto tr1118; + case 68: goto tr1125; + case 72: goto tr1126; + case 77: goto tr1127; + case 83: goto st350; + case 87: goto tr1129; + case 100: goto tr1125; + case 104: goto tr1126; + case 109: goto tr1127; + case 115: goto st350; + case 119: goto tr1129; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1113; - goto tr1112; -tr1114: + goto tr1124; + goto tr1123; +tr1125: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st347; -tr1115: + goto st350; +tr1126: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st347; -tr1116: + goto st350; +tr1127: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st347; -tr1118: + goto st350; +tr1129: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st347; -st347: + goto st350; +st350: if ( ++p == pe ) - goto _test_eof347; -case 347: + goto _test_eof350; +case 350: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44166,34 +45070,34 @@ case 347: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1119; - case 32: goto tr1119; - case 40: goto tr1120; - case 41: goto tr1121; - case 1802: goto tr1123; - case 1851: goto tr1124; - case 2058: goto tr1123; - case 2107: goto tr1124; + case 9: goto tr1130; + case 32: goto tr1130; + case 40: goto tr1131; + case 41: goto tr1132; + case 1802: goto tr1134; + case 1851: goto tr1135; + case 2058: goto tr1134; + case 2107: goto tr1135; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1122; - goto tr1091; -tr1088: + goto tr1133; + goto tr1102; +tr1099: { s->buffer_length = 0; } - goto st348; -tr1125: + goto st351; +tr1136: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st348; -st348: + goto st351; +st351: if ( ++p == pe ) - goto _test_eof348; -case 348: + goto _test_eof351; +case 351: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -44213,14 +45117,14 @@ case 348: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1126; + goto tr1137; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1125; - goto tr1083; -st349: + goto tr1136; + goto tr1094; +st352: if ( ++p == pe ) - goto _test_eof349; -case 349: + goto _test_eof352; +case 352: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44234,38 +45138,38 @@ case 349: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st350; - case 32: goto st350; - case 40: goto tr1129; - case 41: goto tr1130; - case 2058: goto tr1131; - case 2107: goto tr1132; + case 9: goto st353; + case 32: goto st353; + case 40: goto tr1140; + case 41: goto tr1141; + case 2058: goto tr1142; + case 2107: goto tr1143; } - goto tr1127; -tr1129: + goto tr1138; +tr1140: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st350; -tr1130: + goto st353; +tr1141: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st350; -tr1131: + goto st353; +tr1142: { s->line_counter++; } - goto st350; -tr1162: + goto st353; +tr1173: { s->buffer[s->buffer_length++] = 0; @@ -44275,18 +45179,18 @@ tr1162: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 350; goto _out;} + {p++; cs = 353; goto _out;} } } } { s->line_counter++; } - goto st350; -st350: + goto st353; +st353: if ( ++p == pe ) - goto _test_eof350; -case 350: + goto _test_eof353; +case 353: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44300,27 +45204,27 @@ case 350: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st350; - case 32: goto st350; - case 40: goto tr1129; - case 41: goto tr1130; - case 42: goto tr1133; - case 46: goto tr1134; - case 92: goto tr1135; - case 95: goto tr1133; - case 2058: goto tr1131; - case 2107: goto tr1132; + case 9: goto st353; + case 32: goto st353; + case 40: goto tr1140; + case 41: goto tr1141; + case 42: goto tr1144; + case 46: goto tr1145; + case 92: goto tr1146; + case 95: goto tr1144; + case 2058: goto tr1142; + case 2107: goto tr1143; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1133; + goto tr1144; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1133; + goto tr1144; } else - goto tr1133; - goto tr1127; -tr1136: + goto tr1144; + goto tr1138; +tr1147: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -44328,11 +45232,11 @@ tr1136: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st351; -tr1143: + goto st354; +tr1154: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -44344,11 +45248,11 @@ tr1143: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st351; -tr1158: + goto st354; +tr1169: { s->dname_tmp_length++; } @@ -44359,11 +45263,11 @@ tr1158: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st351; -tr1133: + goto st354; +tr1144: { s->dname = s->zone_origin; } @@ -44382,30 +45286,30 @@ tr1133: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st351; -st351: + goto st354; +st354: if ( ++p == pe ) - goto _test_eof351; -case 351: + goto _test_eof354; +case 354: switch( (*p) ) { - case 42: goto tr1136; - case 46: goto tr1137; - case 92: goto st355; - case 95: goto tr1136; + case 42: goto tr1147; + case 46: goto tr1148; + case 92: goto st358; + case 95: goto tr1147; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1136; + goto tr1147; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1136; + goto tr1147; } else - goto tr1136; - goto tr1127; -tr1137: + goto tr1147; + goto tr1138; +tr1148: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -44414,11 +45318,11 @@ tr1137: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st352; -tr1159: + goto st355; +tr1170: { s->dname_tmp_length++; } @@ -44430,14 +45334,14 @@ tr1159: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st352; -st352: + goto st355; +st355: if ( ++p == pe ) - goto _test_eof352; -case 352: + goto _test_eof355; +case 355: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44451,47 +45355,47 @@ case 352: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1140; - case 32: goto tr1140; - case 40: goto tr1141; - case 41: goto tr1142; - case 42: goto tr1143; - case 45: goto tr1143; - case 92: goto tr1144; - case 95: goto tr1143; - case 1802: goto tr1145; - case 1851: goto tr1146; - case 2058: goto tr1145; - case 2107: goto tr1146; + case 9: goto tr1151; + case 32: goto tr1151; + case 40: goto tr1152; + case 41: goto tr1153; + case 42: goto tr1154; + case 45: goto tr1154; + case 92: goto tr1155; + case 95: goto tr1154; + case 1802: goto tr1156; + case 1851: goto tr1157; + case 2058: goto tr1156; + case 2107: goto tr1157; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1143; + goto tr1154; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1143; + goto tr1154; } else - goto tr1143; - goto tr1139; -tr1148: + goto tr1154; + goto tr1150; +tr1159: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st353; -tr1149: + goto st356; +tr1160: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st353; -tr1140: + goto st356; +tr1151: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -44500,8 +45404,8 @@ tr1140: s->buffer[0] = 0; s->buffer_length = 0; } - goto st353; -tr1141: + goto st356; +tr1152: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -44513,12 +45417,12 @@ tr1141: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st353; -tr1142: + goto st356; +tr1153: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -44530,15 +45434,15 @@ tr1142: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st353; -st353: + goto st356; +st356: if ( ++p == pe ) - goto _test_eof353; -case 353: + goto _test_eof356; +case 356: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44552,17 +45456,17 @@ case 353: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st353; - case 32: goto st353; - case 40: goto tr1148; - case 41: goto tr1149; - case 1802: goto tr1150; - case 1851: goto tr1151; - case 2058: goto tr1150; - case 2107: goto tr1151; - } - goto tr1139; -tr1145: + case 9: goto st356; + case 32: goto st356; + case 40: goto tr1159; + case 41: goto tr1160; + case 1802: goto tr1161; + case 1851: goto tr1162; + case 2058: goto tr1161; + case 2107: goto tr1162; + } + goto tr1150; +tr1156: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -44580,8 +45484,8 @@ tr1145: { s->line_counter++; } - goto st1460; -tr1150: + goto st1499; +tr1161: { s->zone_origin_length = s->dname_tmp_length; } @@ -44591,8 +45495,8 @@ tr1150: { s->line_counter++; } - goto st1460; -tr1153: + goto st1499; +tr1164: { s->buffer[s->buffer_length++] = 0; @@ -44602,7 +45506,7 @@ tr1153: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1460; goto _out;} + {p++; cs = 1499; goto _out;} } } } @@ -44615,25 +45519,25 @@ tr1153: { s->line_counter++; } - goto st1460; -st1460: + goto st1499; +st1499: if ( ++p == pe ) - goto _test_eof1460; -case 1460: + goto _test_eof1499; +case 1499: goto st0; -tr1151: +tr1162: { s->buffer_length = 0; } - goto st354; -tr1152: + goto st357; +tr1163: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st354; -tr1146: + goto st357; +tr1157: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -44645,26 +45549,26 @@ tr1146: { s->buffer_length = 0; } - goto st354; -st354: + goto st357; +st357: if ( ++p == pe ) - goto _test_eof354; -case 354: + goto _test_eof357; +case 357: if ( (*p) == 10 ) - goto tr1153; - goto tr1152; -tr1144: + goto tr1164; + goto tr1163; +tr1155: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st355; -tr1160: + goto st358; +tr1171: { s->dname_tmp_length++; } - goto st355; -tr1135: + goto st358; +tr1146: { s->dname = s->zone_origin; } @@ -44676,75 +45580,75 @@ tr1135: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st355; -st355: + goto st358; +st358: if ( ++p == pe ) - goto _test_eof355; -case 355: + goto _test_eof358; +case 358: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1154; - goto tr1136; -tr1154: + goto tr1165; + goto tr1147; +tr1165: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st356; -st356: + goto st359; +st359: if ( ++p == pe ) - goto _test_eof356; -case 356: + goto _test_eof359; +case 359: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1156; - goto tr1155; -tr1156: + goto tr1167; + goto tr1166; +tr1167: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st357; -st357: + goto st360; +st360: if ( ++p == pe ) - goto _test_eof357; -case 357: + goto _test_eof360; +case 360: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1157; - goto tr1155; -tr1157: + goto tr1168; + goto tr1166; +tr1168: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st358; -st358: + goto st361; +st361: if ( ++p == pe ) - goto _test_eof358; -case 358: + goto _test_eof361; +case 361: switch( (*p) ) { - case 42: goto tr1158; - case 46: goto tr1159; - case 92: goto tr1160; - case 95: goto tr1158; + case 42: goto tr1169; + case 46: goto tr1170; + case 92: goto tr1171; + case 95: goto tr1169; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1158; + goto tr1169; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1158; + goto tr1169; } else - goto tr1158; - goto tr1155; -tr1134: + goto tr1169; + goto tr1166; +tr1145: { s->dname = s->zone_origin; } @@ -44752,11 +45656,11 @@ tr1134: s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st359; -st359: + goto st362; +st362: if ( ++p == pe ) - goto _test_eof359; -case 359: + goto _test_eof362; +case 362: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44770,32 +45674,32 @@ case 359: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1140; - case 32: goto tr1140; - case 40: goto tr1141; - case 41: goto tr1142; - case 1802: goto tr1145; - case 1851: goto tr1146; - case 2058: goto tr1145; - case 2107: goto tr1146; + case 9: goto tr1151; + case 32: goto tr1151; + case 40: goto tr1152; + case 41: goto tr1153; + case 1802: goto tr1156; + case 1851: goto tr1157; + case 2058: goto tr1156; + case 2107: goto tr1157; } - goto tr1139; -tr1132: + goto tr1150; +tr1143: { s->buffer_length = 0; } - goto st360; -tr1161: + goto st363; +tr1172: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st360; -st360: + goto st363; +st363: if ( ++p == pe ) - goto _test_eof360; -case 360: + goto _test_eof363; +case 363: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -44815,14 +45719,14 @@ case 360: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1162; + goto tr1173; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1161; - goto tr1127; -st361: + goto tr1172; + goto tr1138; +st364: if ( ++p == pe ) - goto _test_eof361; -case 361: + goto _test_eof364; +case 364: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44836,38 +45740,38 @@ case 361: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st362; - case 32: goto st362; - case 40: goto tr1164; - case 41: goto tr1165; - case 2058: goto tr1166; - case 2107: goto tr1167; + case 9: goto st365; + case 32: goto st365; + case 40: goto tr1175; + case 41: goto tr1176; + case 2058: goto tr1177; + case 2107: goto tr1178; } goto st0; -tr1164: +tr1175: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st362; -tr1165: + goto st365; +tr1176: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st362; -tr1166: + goto st365; +tr1177: { s->line_counter++; } - goto st362; -tr1220: + goto st365; +tr1231: { s->buffer[s->buffer_length++] = 0; @@ -44877,18 +45781,18 @@ tr1220: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 362; goto _out;} + {p++; cs = 365; goto _out;} } } } { s->line_counter++; } - goto st362; -st362: + goto st365; +st365: if ( ++p == pe ) - goto _test_eof362; -case 362: + goto _test_eof365; +case 365: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44902,32 +45806,32 @@ case 362: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st362; - case 32: goto st362; - case 40: goto tr1164; - case 41: goto tr1165; - case 2058: goto tr1166; - case 2107: goto tr1167; + case 9: goto st365; + case 32: goto st365; + case 40: goto tr1175; + case 41: goto tr1176; + case 2058: goto tr1177; + case 2107: goto tr1178; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr1168; + goto tr1179; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr1168; + goto tr1179; } else - goto tr1168; - goto tr1169; -tr1168: + goto tr1179; + goto tr1180; +tr1179: { rdata_tail = s->r_data; } - { p--; {stack[top++] = 363;goto st327;} } - goto st363; -st363: + { p--; {stack[top++] = 366;goto st330;} } + goto st366; +st366: if ( ++p == pe ) - goto _test_eof363; -case 363: + goto _test_eof366; +case 366: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44941,40 +45845,40 @@ case 363: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1171; - case 32: goto tr1171; - case 40: goto tr1172; - case 41: goto tr1173; - case 1802: goto tr1174; - case 1851: goto tr1175; - case 2058: goto tr1174; - case 2107: goto tr1176; + case 9: goto tr1182; + case 32: goto tr1182; + case 40: goto tr1183; + case 41: goto tr1184; + case 1802: goto tr1185; + case 1851: goto tr1186; + case 2058: goto tr1185; + case 2107: goto tr1187; } - goto tr1170; -tr1179: + goto tr1181; +tr1190: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st364; -tr1180: + goto st367; +tr1191: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st364; -tr1171: + goto st367; +tr1182: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } // Store zero terminated include filename. @@ -44988,13 +45892,13 @@ tr1171: s->buffer[0] = 0; s->buffer_length = 0; } - goto st364; -tr1172: + goto st367; +tr1183: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } // Store zero terminated include filename. @@ -45007,7 +45911,7 @@ tr1172: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } @@ -45015,13 +45919,13 @@ tr1172: s->buffer[0] = 0; s->buffer_length = 0; } - goto st364; -tr1173: + goto st367; +tr1184: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } // Store zero terminated include filename. @@ -45034,7 +45938,7 @@ tr1173: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } @@ -45042,11 +45946,11 @@ tr1173: s->buffer[0] = 0; s->buffer_length = 0; } - goto st364; -st364: + goto st367; +st367: if ( ++p == pe ) - goto _test_eof364; -case 364: + goto _test_eof367; +case 367: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45060,29 +45964,29 @@ case 364: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st364; - case 32: goto st364; - case 40: goto tr1179; - case 41: goto tr1180; - case 42: goto tr1181; - case 46: goto tr1182; - case 92: goto tr1183; - case 95: goto tr1181; - case 1802: goto tr1184; - case 1851: goto tr1185; - case 2058: goto tr1184; - case 2107: goto tr1186; + case 9: goto st367; + case 32: goto st367; + case 40: goto tr1190; + case 41: goto tr1191; + case 42: goto tr1192; + case 46: goto tr1193; + case 92: goto tr1194; + case 95: goto tr1192; + case 1802: goto tr1195; + case 1851: goto tr1196; + case 2058: goto tr1195; + case 2107: goto tr1197; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1181; + goto tr1192; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1181; + goto tr1192; } else - goto tr1181; - goto tr1177; -tr1188: + goto tr1192; + goto tr1188; +tr1199: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -45090,11 +45994,11 @@ tr1188: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st365; -tr1194: + goto st368; +tr1205: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -45106,11 +46010,11 @@ tr1194: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st365; -tr1207: + goto st368; +tr1218: { s->dname_tmp_length++; } @@ -45121,11 +46025,11 @@ tr1207: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st365; -tr1181: + goto st368; +tr1192: { s->dname = s->r_data; } @@ -45144,30 +46048,30 @@ tr1181: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st365; -st365: + goto st368; +st368: if ( ++p == pe ) - goto _test_eof365; -case 365: + goto _test_eof368; +case 368: switch( (*p) ) { - case 42: goto tr1188; - case 46: goto tr1189; - case 92: goto st369; - case 95: goto tr1188; + case 42: goto tr1199; + case 46: goto tr1200; + case 92: goto st372; + case 95: goto tr1199; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1188; + goto tr1199; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1188; + goto tr1199; } else - goto tr1188; - goto tr1187; -tr1189: + goto tr1199; + goto tr1198; +tr1200: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -45176,11 +46080,11 @@ tr1189: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st366; -tr1208: + goto st369; +tr1219: { s->dname_tmp_length++; } @@ -45192,14 +46096,14 @@ tr1208: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st366; -st366: + goto st369; +st369: if ( ++p == pe ) - goto _test_eof366; -case 366: + goto _test_eof369; +case 369: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45213,47 +46117,47 @@ case 366: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1191; - case 32: goto tr1191; - case 40: goto tr1192; - case 41: goto tr1193; - case 42: goto tr1194; - case 45: goto tr1194; - case 92: goto tr1195; - case 95: goto tr1194; - case 1802: goto tr1196; - case 1851: goto tr1197; - case 2058: goto tr1196; - case 2107: goto tr1197; + case 9: goto tr1202; + case 32: goto tr1202; + case 40: goto tr1203; + case 41: goto tr1204; + case 42: goto tr1205; + case 45: goto tr1205; + case 92: goto tr1206; + case 95: goto tr1205; + case 1802: goto tr1207; + case 1851: goto tr1208; + case 2058: goto tr1207; + case 2107: goto tr1208; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1194; + goto tr1205; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1194; + goto tr1205; } else - goto tr1194; - goto tr1177; -tr1199: + goto tr1205; + goto tr1188; +tr1210: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st367; -tr1200: + goto st370; +tr1211: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st367; -tr1191: + goto st370; +tr1202: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -45265,8 +46169,8 @@ tr1191: s->buffer[0] = 0; s->buffer_length = 0; } - goto st367; -tr1192: + goto st370; +tr1203: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -45281,12 +46185,12 @@ tr1192: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st367; -tr1193: + goto st370; +tr1204: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -45301,15 +46205,15 @@ tr1193: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st367; -st367: + goto st370; +st370: if ( ++p == pe ) - goto _test_eof367; -case 367: + goto _test_eof370; +case 370: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45323,23 +46227,23 @@ case 367: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st367; - case 32: goto st367; - case 40: goto tr1199; - case 41: goto tr1200; - case 1802: goto tr1184; - case 1851: goto tr1185; - case 2058: goto tr1184; - case 2107: goto tr1185; + case 9: goto st370; + case 32: goto st370; + case 40: goto tr1210; + case 41: goto tr1211; + case 1802: goto tr1195; + case 1851: goto tr1196; + case 2058: goto tr1195; + case 2107: goto tr1196; } goto tr91; -tr1174: - cs = 1461; +tr1185: + cs = 1500; { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } // Store zero terminated include filename. @@ -45360,7 +46264,7 @@ tr1174: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -45380,7 +46284,7 @@ tr1174: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st316;} + p--; {goto st319;} } // Parse included zone file. @@ -45400,13 +46304,13 @@ tr1174: } zs_deinit(ss); free(ss); - p--; {goto st316;} + p--; {goto st319;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1444; {p++; goto _out;} + p--; cs = 1483; {p++; goto _out;} } } { @@ -45416,8 +46320,8 @@ tr1174: s->line_counter++; } goto _again; -tr1184: - cs = 1461; +tr1195: + cs = 1500; { // Extend relative file path. if (s->include_filename[0] != '/') { @@ -45425,7 +46329,7 @@ tr1184: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -45445,7 +46349,7 @@ tr1184: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st316;} + p--; {goto st319;} } // Parse included zone file. @@ -45465,13 +46369,13 @@ tr1184: } zs_deinit(ss); free(ss); - p--; {goto st316;} + p--; {goto st319;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1444; {p++; goto _out;} + p--; cs = 1483; {p++; goto _out;} } } { @@ -45481,8 +46385,8 @@ tr1184: s->line_counter++; } goto _again; -tr1196: - cs = 1461; +tr1207: + cs = 1500; { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -45501,7 +46405,7 @@ tr1196: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -45521,7 +46425,7 @@ tr1196: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st316;} + p--; {goto st319;} } // Parse included zone file. @@ -45541,13 +46445,13 @@ tr1196: } zs_deinit(ss); free(ss); - p--; {goto st316;} + p--; {goto st319;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1444; {p++; goto _out;} + p--; cs = 1483; {p++; goto _out;} } } { @@ -45557,8 +46461,8 @@ tr1196: s->line_counter++; } goto _again; -tr1202: - cs = 1461; +tr1213: + cs = 1500; { s->buffer[s->buffer_length++] = 0; @@ -45579,7 +46483,7 @@ tr1202: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -45599,7 +46503,7 @@ tr1202: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st316;} + p--; {goto st319;} } // Parse included zone file. @@ -45619,13 +46523,13 @@ tr1202: } zs_deinit(ss); free(ss); - p--; {goto st316;} + p--; {goto st319;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1444; {p++; goto _out;} + p--; cs = 1483; {p++; goto _out;} } } { @@ -45635,29 +46539,29 @@ tr1202: s->line_counter++; } goto _again; -st1461: +st1500: if ( ++p == pe ) - goto _test_eof1461; -case 1461: + goto _test_eof1500; +case 1500: goto st0; -tr1185: +tr1196: { s->buffer_length = 0; } - goto st368; -tr1201: + goto st371; +tr1212: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st368; -tr1175: + goto st371; +tr1186: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } // Store zero terminated include filename. @@ -45674,8 +46578,8 @@ tr1175: { s->buffer_length = 0; } - goto st368; -tr1197: + goto st371; +tr1208: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -45690,26 +46594,26 @@ tr1197: { s->buffer_length = 0; } - goto st368; -st368: + goto st371; +st371: if ( ++p == pe ) - goto _test_eof368; -case 368: + goto _test_eof371; +case 371: if ( (*p) == 10 ) - goto tr1202; - goto tr1201; -tr1195: + goto tr1213; + goto tr1212; +tr1206: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st369; -tr1209: + goto st372; +tr1220: { s->dname_tmp_length++; } - goto st369; -tr1183: + goto st372; +tr1194: { s->dname = s->r_data; } @@ -45721,75 +46625,75 @@ tr1183: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st369; -st369: + goto st372; +st372: if ( ++p == pe ) - goto _test_eof369; -case 369: + goto _test_eof372; +case 372: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1203; - goto tr1188; -tr1203: + goto tr1214; + goto tr1199; +tr1214: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st370; -st370: + goto st373; +st373: if ( ++p == pe ) - goto _test_eof370; -case 370: + goto _test_eof373; +case 373: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1205; - goto tr1204; -tr1205: + goto tr1216; + goto tr1215; +tr1216: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st371; -st371: + goto st374; +st374: if ( ++p == pe ) - goto _test_eof371; -case 371: + goto _test_eof374; +case 374: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1206; - goto tr1204; -tr1206: + goto tr1217; + goto tr1215; +tr1217: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st372; -st372: + goto st375; +st375: if ( ++p == pe ) - goto _test_eof372; -case 372: + goto _test_eof375; +case 375: switch( (*p) ) { - case 42: goto tr1207; - case 46: goto tr1208; - case 92: goto tr1209; - case 95: goto tr1207; + case 42: goto tr1218; + case 46: goto tr1219; + case 92: goto tr1220; + case 95: goto tr1218; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1207; + goto tr1218; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1207; + goto tr1218; } else - goto tr1207; - goto tr1204; -tr1182: + goto tr1218; + goto tr1215; +tr1193: { s->dname = s->r_data; } @@ -45797,11 +46701,11 @@ tr1182: s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st373; -st373: + goto st376; +st376: if ( ++p == pe ) - goto _test_eof373; -case 373: + goto _test_eof376; +case 376: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45815,34 +46719,34 @@ case 373: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1191; - case 32: goto tr1191; - case 40: goto tr1192; - case 41: goto tr1193; - case 1802: goto tr1196; - case 1851: goto tr1197; - case 2058: goto tr1196; - case 2107: goto tr1197; + case 9: goto tr1202; + case 32: goto tr1202; + case 40: goto tr1203; + case 41: goto tr1204; + case 1802: goto tr1207; + case 1851: goto tr1208; + case 2058: goto tr1207; + case 2107: goto tr1208; } - goto tr1177; -tr1186: + goto tr1188; +tr1197: { s->buffer_length = 0; } - goto st374; -tr1210: + goto st377; +tr1221: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st374; -tr1176: + goto st377; +tr1187: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } // Store zero terminated include filename. @@ -45859,11 +46763,11 @@ tr1176: s->buffer[0] = 0; s->buffer_length = 0; } - goto st374; -st374: + goto st377; +st377: if ( ++p == pe ) - goto _test_eof374; -case 374: + goto _test_eof377; +case 377: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -45883,17 +46787,17 @@ case 374: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr1202; - case 2058: goto tr1211; + case 1802: goto tr1213; + case 2058: goto tr1222; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1210; + goto tr1221; } else if ( _widec >= 1664 ) - goto tr1201; + goto tr1212; goto tr91; -tr1211: - cs = 1462; +tr1222: + cs = 1501; { s->buffer[s->buffer_length++] = 0; @@ -45917,7 +46821,7 @@ tr1211: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st316;} + p--; {goto st319;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -45937,7 +46841,7 @@ tr1211: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st316;} + p--; {goto st319;} } // Parse included zone file. @@ -45957,23 +46861,23 @@ tr1211: } zs_deinit(ss); free(ss); - p--; {goto st316;} + p--; {goto st319;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1444; {p++; goto _out;} + p--; cs = 1483; {p++; goto _out;} } } { p--; {cs = stack[--top];goto _again;} } goto _again; -st1462: +st1501: if ( ++p == pe ) - goto _test_eof1462; -case 1462: + goto _test_eof1501; +case 1501: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45987,50 +46891,50 @@ case 1462: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st375; - case 32: goto st375; - case 40: goto tr1213; - case 41: goto tr1214; - case 42: goto tr1181; - case 46: goto tr1182; - case 92: goto tr1183; - case 95: goto tr1181; - case 2058: goto tr1215; - case 2107: goto tr1216; + case 9: goto st378; + case 32: goto st378; + case 40: goto tr1224; + case 41: goto tr1225; + case 42: goto tr1192; + case 46: goto tr1193; + case 92: goto tr1194; + case 95: goto tr1192; + case 2058: goto tr1226; + case 2107: goto tr1227; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1181; + goto tr1192; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1181; + goto tr1192; } else - goto tr1181; - goto tr1187; -tr1213: + goto tr1192; + goto tr1198; +tr1224: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st375; -tr1214: + goto st378; +tr1225: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st375; -tr1215: + goto st378; +tr1226: { s->line_counter++; } - goto st375; -tr1218: + goto st378; +tr1229: { s->buffer[s->buffer_length++] = 0; @@ -46040,18 +46944,18 @@ tr1218: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 375; goto _out;} + {p++; cs = 378; goto _out;} } } } { s->line_counter++; } - goto st375; -st375: + goto st378; +st378: if ( ++p == pe ) - goto _test_eof375; -case 375: + goto _test_eof378; +case 378: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46065,42 +46969,42 @@ case 375: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st375; - case 32: goto st375; - case 40: goto tr1213; - case 41: goto tr1214; - case 42: goto tr1181; - case 46: goto tr1182; - case 92: goto tr1183; - case 95: goto tr1181; - case 2058: goto tr1215; - case 2107: goto tr1216; + case 9: goto st378; + case 32: goto st378; + case 40: goto tr1224; + case 41: goto tr1225; + case 42: goto tr1192; + case 46: goto tr1193; + case 92: goto tr1194; + case 95: goto tr1192; + case 2058: goto tr1226; + case 2107: goto tr1227; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1181; + goto tr1192; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1181; + goto tr1192; } else - goto tr1181; - goto tr1187; -tr1216: + goto tr1192; + goto tr1198; +tr1227: { s->buffer_length = 0; } - goto st376; -tr1217: + goto st379; +tr1228: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st376; -st376: + goto st379; +st379: if ( ++p == pe ) - goto _test_eof376; -case 376: + goto _test_eof379; +case 379: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -46120,26 +47024,26 @@ case 376: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1218; + goto tr1229; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1217; + goto tr1228; goto st0; -tr1167: +tr1178: { s->buffer_length = 0; } - goto st377; -tr1219: + goto st380; +tr1230: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st377; -st377: + goto st380; +st380: if ( ++p == pe ) - goto _test_eof377; -case 377: + goto _test_eof380; +case 380: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -46159,51 +47063,51 @@ case 377: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1220; + goto tr1231; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1219; + goto tr1230; goto st0; -st378: +st381: if ( ++p == pe ) - goto _test_eof378; -case 378: + goto _test_eof381; +case 381: if ( (*p) == 43 ) - goto tr1222; + goto tr1233; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1222; + goto tr1233; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1222; + goto tr1233; } else - goto tr1222; - goto tr1221; -tr1222: + goto tr1233; + goto tr1232; +tr1233: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st379; -st379: + goto st382; +st382: if ( ++p == pe ) - goto _test_eof379; -case 379: + goto _test_eof382; +case 382: if ( (*p) == 43 ) - goto tr1223; + goto tr1234; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1223; + goto tr1234; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1223; + goto tr1234; } else - goto tr1223; - goto tr1221; -tr1223: + goto tr1234; + goto tr1232; +tr1234: { *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; @@ -46211,28 +47115,28 @@ tr1223: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st380; -st380: + goto st383; +st383: if ( ++p == pe ) - goto _test_eof380; -case 380: + goto _test_eof383; +case 383: switch( (*p) ) { - case 43: goto tr1224; - case 61: goto st384; + case 43: goto tr1235; + case 61: goto st387; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1224; + goto tr1235; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1224; + goto tr1235; } else - goto tr1224; - goto tr1221; -tr1224: + goto tr1235; + goto tr1232; +tr1235: { *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; @@ -46240,51 +47144,51 @@ tr1224: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st381; -st381: + goto st384; +st384: if ( ++p == pe ) - goto _test_eof381; -case 381: + goto _test_eof384; +case 384: switch( (*p) ) { - case 43: goto tr1226; - case 61: goto st382; + case 43: goto tr1237; + case 61: goto st385; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1226; + goto tr1237; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1226; + goto tr1237; } else - goto tr1226; - goto tr1221; -tr1228: + goto tr1237; + goto tr1232; +tr1239: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st382; -tr1229: + goto st385; +tr1240: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st382; -tr1230: + goto st385; +tr1241: { s->line_counter++; } - goto st382; -tr1236: + goto st385; +tr1247: { s->buffer[s->buffer_length++] = 0; @@ -46294,202 +47198,19 @@ tr1236: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 382; goto _out;} + {p++; cs = 385; goto _out;} } } } { s->line_counter++; } - goto st382; -tr1226: + goto st385; +tr1237: { *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st382; -st382: - if ( ++p == pe ) - goto _test_eof382; -case 382: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto st382; - case 32: goto st382; - case 40: goto tr1228; - case 41: goto tr1229; - case 43: goto tr1222; - case 3082: goto tr1230; - case 3131: goto tr1231; - case 3338: goto tr1232; - case 3387: goto tr1232; - case 3594: goto tr1233; - case 3643: goto tr1234; - } - if ( _widec < 65 ) { - if ( 47 <= _widec && _widec <= 57 ) - goto tr1222; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr1222; - } else - goto tr1222; - goto tr1221; -tr1231: - { - s->buffer_length = 0; - } - goto st383; -tr1235: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st383; -st383: - if ( ++p == pe ) - goto _test_eof383; -case 383: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr1236; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1235; - goto tr1221; -tr1232: - { - p--; {cs = stack[--top];goto _again;} - } - goto st1463; -st1463: - if ( ++p == pe ) - goto _test_eof1463; -case 1463: - goto st0; -tr1233: - { - s->line_counter++; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1464; -st1464: - if ( ++p == pe ) - goto _test_eof1464; -case 1464: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto st382; - case 32: goto st382; - case 40: goto tr1228; - case 41: goto tr1229; - case 43: goto tr1222; - case 3082: goto tr1230; - case 3131: goto tr1231; - case 3338: goto tr1232; - case 3387: goto tr1232; - case 3594: goto tr1233; - case 3643: goto tr1234; - } - if ( _widec < 65 ) { - if ( 47 <= _widec && _widec <= 57 ) - goto tr1222; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr1222; - } else - goto tr1222; - goto tr1221; -tr1234: - { - s->buffer_length = 0; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1465; -st1465: - if ( ++p == pe ) - goto _test_eof1465; -case 1465: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr1236; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1235; - goto tr1221; -st384: - if ( ++p == pe ) - goto _test_eof384; -case 384: - if ( (*p) == 61 ) - goto st382; - goto tr1221; + goto st385; st385: if ( ++p == pe ) goto _test_eof385; @@ -46511,10 +47232,11 @@ case 385: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1238; - case 32: goto tr1238; + case 9: goto st385; + case 32: goto st385; case 40: goto tr1239; case 41: goto tr1240; + case 43: goto tr1233; case 3082: goto tr1241; case 3131: goto tr1242; case 3338: goto tr1243; @@ -46522,31 +47244,213 @@ case 385: case 3594: goto tr1244; case 3643: goto tr1245; } - goto tr1237; -tr1247: + if ( _widec < 65 ) { + if ( 47 <= _widec && _widec <= 57 ) + goto tr1233; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr1233; + } else + goto tr1233; + goto tr1232; +tr1242: + { + s->buffer_length = 0; + } + goto st386; +tr1246: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st386; +st386: + if ( ++p == pe ) + goto _test_eof386; +case 386: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr1247; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr1246; + goto tr1232; +tr1243: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1502; +st1502: + if ( ++p == pe ) + goto _test_eof1502; +case 1502: + goto st0; +tr1244: + { + s->line_counter++; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1503; +st1503: + if ( ++p == pe ) + goto _test_eof1503; +case 1503: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st385; + case 32: goto st385; + case 40: goto tr1239; + case 41: goto tr1240; + case 43: goto tr1233; + case 3082: goto tr1241; + case 3131: goto tr1242; + case 3338: goto tr1243; + case 3387: goto tr1243; + case 3594: goto tr1244; + case 3643: goto tr1245; + } + if ( _widec < 65 ) { + if ( 47 <= _widec && _widec <= 57 ) + goto tr1233; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr1233; + } else + goto tr1233; + goto tr1232; +tr1245: + { + s->buffer_length = 0; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1504; +st1504: + if ( ++p == pe ) + goto _test_eof1504; +case 1504: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr1247; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr1246; + goto tr1232; +st387: + if ( ++p == pe ) + goto _test_eof387; +case 387: + if ( (*p) == 61 ) + goto st385; + goto tr1232; +st388: + if ( ++p == pe ) + goto _test_eof388; +case 388: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1249; + case 32: goto tr1249; + case 40: goto tr1250; + case 41: goto tr1251; + case 3082: goto tr1252; + case 3131: goto tr1253; + case 3338: goto tr1254; + case 3387: goto tr1254; + case 3594: goto tr1255; + case 3643: goto tr1256; + } + goto tr1248; +tr1258: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1248: + goto st389; +tr1259: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1267: + goto st389; +tr1278: { s->line_counter++; } - goto st386; -tr1294: + goto st389; +tr1305: { s->buffer[s->buffer_length++] = 0; @@ -46556,21 +47460,21 @@ tr1294: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 386; goto _out;} + {p++; cs = 389; goto _out;} } } } { s->line_counter++; } - goto st386; -tr1238: + goto st389; +tr1249: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } - goto st386; -tr1239: + goto st389; +tr1250: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -46578,12 +47482,12 @@ tr1239: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1240: + goto st389; +tr1251: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -46591,12 +47495,12 @@ tr1240: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1241: + goto st389; +tr1252: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -46604,1489 +47508,1518 @@ tr1241: { s->line_counter++; } - goto st386; -tr1272: + goto st389; +tr1283: { window_add_bit(KNOT_RRTYPE_A, s); } - goto st386; -tr1273: + goto st389; +tr1284: { window_add_bit(KNOT_RRTYPE_A, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1274: + goto st389; +tr1285: { window_add_bit(KNOT_RRTYPE_A, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1278: + goto st389; +tr1289: { window_add_bit(KNOT_RRTYPE_A, s); } { s->line_counter++; } - goto st386; -tr1285: + goto st389; +tr1296: { window_add_bit(KNOT_RRTYPE_AAAA, s); } - goto st386; -tr1286: + goto st389; +tr1297: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1287: + goto st389; +tr1298: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1288: + goto st389; +tr1299: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->line_counter++; } - goto st386; -tr1301: + goto st389; +tr1312: { window_add_bit(KNOT_RRTYPE_CAA, s); } - goto st386; -tr1302: + goto st389; +tr1313: { window_add_bit(KNOT_RRTYPE_CAA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1303: + goto st389; +tr1314: { window_add_bit(KNOT_RRTYPE_CAA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1304: + goto st389; +tr1315: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->line_counter++; } - goto st386; -tr1315: + goto st389; +tr1326: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } - goto st386; -tr1316: + goto st389; +tr1327: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1317: + goto st389; +tr1328: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1318: + goto st389; +tr1329: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->line_counter++; } - goto st386; -tr1323: + goto st389; +tr1334: { window_add_bit(KNOT_RRTYPE_CDS, s); } - goto st386; -tr1324: + goto st389; +tr1335: { window_add_bit(KNOT_RRTYPE_CDS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1325: + goto st389; +tr1336: { window_add_bit(KNOT_RRTYPE_CDS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1326: + goto st389; +tr1337: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->line_counter++; } - goto st386; -tr1333: + goto st389; +tr1344: { window_add_bit(KNOT_RRTYPE_CERT, s); } - goto st386; -tr1334: + goto st389; +tr1345: { window_add_bit(KNOT_RRTYPE_CERT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1335: + goto st389; +tr1346: { window_add_bit(KNOT_RRTYPE_CERT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1336: + goto st389; +tr1347: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->line_counter++; } - goto st386; -tr1344: + goto st389; +tr1355: { window_add_bit(KNOT_RRTYPE_CNAME, s); } - goto st386; -tr1345: + goto st389; +tr1356: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1346: + goto st389; +tr1357: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1347: + goto st389; +tr1358: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->line_counter++; } - goto st386; -tr1355: + goto st389; +tr1366: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } - goto st386; -tr1356: + goto st389; +tr1367: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1357: + goto st389; +tr1368: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1358: + goto st389; +tr1369: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->line_counter++; } - goto st386; -tr1369: + goto st389; +tr1380: { window_add_bit(KNOT_RRTYPE_DHCID, s); } - goto st386; -tr1370: + goto st389; +tr1381: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1371: + goto st389; +tr1382: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1372: + goto st389; +tr1383: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->line_counter++; } - goto st386; -tr1381: + goto st389; +tr1392: { window_add_bit(KNOT_RRTYPE_DNAME, s); } - goto st386; -tr1382: + goto st389; +tr1393: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1383: + goto st389; +tr1394: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1384: + goto st389; +tr1395: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->line_counter++; } - goto st386; -tr1392: + goto st389; +tr1403: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } - goto st386; -tr1393: + goto st389; +tr1404: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1394: + goto st389; +tr1405: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1395: + goto st389; +tr1406: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->line_counter++; } - goto st386; -tr1400: + goto st389; +tr1411: { window_add_bit(KNOT_RRTYPE_DS, s); } - goto st386; -tr1401: + goto st389; +tr1412: { window_add_bit(KNOT_RRTYPE_DS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1402: + goto st389; +tr1413: { window_add_bit(KNOT_RRTYPE_DS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1403: + goto st389; +tr1415: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->line_counter++; } - goto st386; -tr1413: + goto st389; +tr1422: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + goto st389; +tr1423: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st389; +tr1424: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st389; +tr1425: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + { + s->line_counter++; + } + goto st389; +tr1435: { window_add_bit(KNOT_RRTYPE_EUI48, s); } - goto st386; -tr1414: + goto st389; +tr1436: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1415: + goto st389; +tr1437: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1416: + goto st389; +tr1438: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->line_counter++; } - goto st386; -tr1422: + goto st389; +tr1444: { window_add_bit(KNOT_RRTYPE_EUI64, s); } - goto st386; -tr1423: + goto st389; +tr1445: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1424: + goto st389; +tr1446: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1425: + goto st389; +tr1447: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->line_counter++; } - goto st386; -tr1435: + goto st389; +tr1457: { window_add_bit(KNOT_RRTYPE_HINFO, s); } - goto st386; -tr1436: + goto st389; +tr1458: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1437: + goto st389; +tr1459: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1438: + goto st389; +tr1460: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->line_counter++; } - goto st386; -tr1446: + goto st389; +tr1468: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } - goto st386; -tr1447: + goto st389; +tr1469: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1448: + goto st389; +tr1470: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1449: + goto st389; +tr1471: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->line_counter++; } - goto st386; -tr1461: + goto st389; +tr1483: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } - goto st386; -tr1462: + goto st389; +tr1484: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1463: + goto st389; +tr1485: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1464: + goto st389; +tr1486: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->line_counter++; } - goto st386; -tr1472: + goto st389; +tr1494: { window_add_bit(KNOT_RRTYPE_KEY, s); } - goto st386; -tr1473: + goto st389; +tr1495: { window_add_bit(KNOT_RRTYPE_KEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1474: + goto st389; +tr1496: { window_add_bit(KNOT_RRTYPE_KEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1475: + goto st389; +tr1497: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->line_counter++; } - goto st386; -tr1480: + goto st389; +tr1502: { window_add_bit(KNOT_RRTYPE_KX, s); } - goto st386; -tr1481: + goto st389; +tr1503: { window_add_bit(KNOT_RRTYPE_KX, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1482: + goto st389; +tr1504: { window_add_bit(KNOT_RRTYPE_KX, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1483: + goto st389; +tr1505: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->line_counter++; } - goto st386; -tr1493: + goto st389; +tr1515: { window_add_bit(KNOT_RRTYPE_L32, s); } - goto st386; -tr1494: + goto st389; +tr1516: { window_add_bit(KNOT_RRTYPE_L32, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1495: + goto st389; +tr1517: { window_add_bit(KNOT_RRTYPE_L32, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1496: + goto st389; +tr1518: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->line_counter++; } - goto st386; -tr1502: + goto st389; +tr1524: { window_add_bit(KNOT_RRTYPE_L64, s); } - goto st386; -tr1503: + goto st389; +tr1525: { window_add_bit(KNOT_RRTYPE_L64, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1504: + goto st389; +tr1526: { window_add_bit(KNOT_RRTYPE_L64, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1505: + goto st389; +tr1527: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->line_counter++; } - goto st386; -tr1511: + goto st389; +tr1533: { window_add_bit(KNOT_RRTYPE_LOC, s); } - goto st386; -tr1512: + goto st389; +tr1534: { window_add_bit(KNOT_RRTYPE_LOC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1513: + goto st389; +tr1535: { window_add_bit(KNOT_RRTYPE_LOC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1514: + goto st389; +tr1536: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->line_counter++; } - goto st386; -tr1519: + goto st389; +tr1541: { window_add_bit(KNOT_RRTYPE_LP, s); } - goto st386; -tr1520: + goto st389; +tr1542: { window_add_bit(KNOT_RRTYPE_LP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1521: + goto st389; +tr1543: { window_add_bit(KNOT_RRTYPE_LP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1522: + goto st389; +tr1544: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->line_counter++; } - goto st386; -tr1532: + goto st389; +tr1554: { window_add_bit(KNOT_RRTYPE_MINFO, s); } - goto st386; -tr1533: + goto st389; +tr1555: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1534: + goto st389; +tr1556: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1535: + goto st389; +tr1557: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->line_counter++; } - goto st386; -tr1540: + goto st389; +tr1562: { window_add_bit(KNOT_RRTYPE_MX, s); } - goto st386; -tr1541: + goto st389; +tr1563: { window_add_bit(KNOT_RRTYPE_MX, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1542: + goto st389; +tr1564: { window_add_bit(KNOT_RRTYPE_MX, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1543: + goto st389; +tr1565: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->line_counter++; } - goto st386; -tr1554: + goto st389; +tr1576: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } - goto st386; -tr1555: + goto st389; +tr1577: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1556: + goto st389; +tr1578: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1557: + goto st389; +tr1579: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->line_counter++; } - goto st386; -tr1563: + goto st389; +tr1585: { window_add_bit(KNOT_RRTYPE_NID, s); } - goto st386; -tr1564: + goto st389; +tr1586: { window_add_bit(KNOT_RRTYPE_NID, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1565: + goto st389; +tr1587: { window_add_bit(KNOT_RRTYPE_NID, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1566: + goto st389; +tr1588: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->line_counter++; } - goto st386; -tr1571: + goto st389; +tr1593: { window_add_bit(KNOT_RRTYPE_NS, s); } - goto st386; -tr1572: + goto st389; +tr1594: { window_add_bit(KNOT_RRTYPE_NS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1573: + goto st389; +tr1595: { window_add_bit(KNOT_RRTYPE_NS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1575: + goto st389; +tr1597: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->line_counter++; } - goto st386; -tr1581: + goto st389; +tr1603: { window_add_bit(KNOT_RRTYPE_NSEC, s); } - goto st386; -tr1582: + goto st389; +tr1604: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1583: + goto st389; +tr1605: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1585: + goto st389; +tr1607: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->line_counter++; } - goto st386; -tr1590: + goto st389; +tr1612: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } - goto st386; -tr1591: + goto st389; +tr1613: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1592: + goto st389; +tr1614: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1594: + goto st389; +tr1616: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->line_counter++; } - goto st386; -tr1603: + goto st389; +tr1625: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } - goto st386; -tr1604: + goto st389; +tr1626: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1605: + goto st389; +tr1627: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1606: + goto st389; +tr1628: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->line_counter++; } - goto st386; -tr1620: + goto st389; +tr1642: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } - goto st386; -tr1621: + goto st389; +tr1643: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1622: + goto st389; +tr1644: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1623: + goto st389; +tr1645: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->line_counter++; } - goto st386; -tr1630: + goto st389; +tr1652: { window_add_bit(KNOT_RRTYPE_PTR, s); } - goto st386; -tr1631: + goto st389; +tr1653: { window_add_bit(KNOT_RRTYPE_PTR, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1632: + goto st389; +tr1654: { window_add_bit(KNOT_RRTYPE_PTR, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1633: + goto st389; +tr1655: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->line_counter++; } - goto st386; -tr1641: + goto st389; +tr1663: { window_add_bit(KNOT_RRTYPE_RP, s); } - goto st386; -tr1642: + goto st389; +tr1664: { window_add_bit(KNOT_RRTYPE_RP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1643: + goto st389; +tr1665: { window_add_bit(KNOT_RRTYPE_RP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1644: + goto st389; +tr1666: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->line_counter++; } - goto st386; -tr1652: + goto st389; +tr1674: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } - goto st386; -tr1653: + goto st389; +tr1675: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1654: + goto st389; +tr1676: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1655: + goto st389; +tr1677: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->line_counter++; } - goto st386; -tr1660: + goto st389; +tr1682: { window_add_bit(KNOT_RRTYPE_RT, s); } - goto st386; -tr1661: + goto st389; +tr1683: { window_add_bit(KNOT_RRTYPE_RT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1662: + goto st389; +tr1684: { window_add_bit(KNOT_RRTYPE_RT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1663: + goto st389; +tr1685: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->line_counter++; } - goto st386; -tr1678: + goto st389; +tr1700: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } - goto st386; -tr1679: + goto st389; +tr1701: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1680: + goto st389; +tr1702: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1681: + goto st389; +tr1703: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->line_counter++; } - goto st386; -tr1687: + goto st389; +tr1709: { window_add_bit(KNOT_RRTYPE_SOA, s); } - goto st386; -tr1688: + goto st389; +tr1710: { window_add_bit(KNOT_RRTYPE_SOA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1689: + goto st389; +tr1711: { window_add_bit(KNOT_RRTYPE_SOA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1690: + goto st389; +tr1712: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->line_counter++; } - goto st386; -tr1696: + goto st389; +tr1718: { window_add_bit(KNOT_RRTYPE_SPF, s); } - goto st386; -tr1697: + goto st389; +tr1719: { window_add_bit(KNOT_RRTYPE_SPF, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1698: + goto st389; +tr1720: { window_add_bit(KNOT_RRTYPE_SPF, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1699: + goto st389; +tr1721: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->line_counter++; } - goto st386; -tr1705: + goto st389; +tr1727: { window_add_bit(KNOT_RRTYPE_SRV, s); } - goto st386; -tr1706: + goto st389; +tr1728: { window_add_bit(KNOT_RRTYPE_SRV, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1707: + goto st389; +tr1729: { window_add_bit(KNOT_RRTYPE_SRV, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1708: + goto st389; +tr1730: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->line_counter++; } - goto st386; -tr1716: + goto st389; +tr1738: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } - goto st386; -tr1717: + goto st389; +tr1739: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1718: + goto st389; +tr1740: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1719: + goto st389; +tr1741: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->line_counter++; } - goto st386; -tr1726: + goto st389; +tr1748: { window_add_bit(KNOT_RRTYPE_SVCB, s); } - goto st386; -tr1727: + goto st389; +tr1749: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1728: + goto st389; +tr1750: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1729: + goto st389; +tr1751: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->line_counter++; } - goto st386; -tr1739: + goto st389; +tr1761: { window_add_bit(KNOT_RRTYPE_TLSA, s); } - goto st386; -tr1740: + goto st389; +tr1762: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1741: + goto st389; +tr1763: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1742: + goto st389; +tr1764: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->line_counter++; } - goto st386; -tr1748: + goto st389; +tr1770: { window_add_bit(KNOT_RRTYPE_TXT, s); } - goto st386; -tr1749: + goto st389; +tr1771: { window_add_bit(KNOT_RRTYPE_TXT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1750: + goto st389; +tr1772: { window_add_bit(KNOT_RRTYPE_TXT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1751: + goto st389; +tr1773: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->line_counter++; } - goto st386; -tr1759: + goto st389; +tr1781: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st386; -tr1760: + goto st389; +tr1782: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1761: + goto st389; +tr1783: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1763: + goto st389; +tr1785: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st386; -tr1770: + goto st389; +tr1792: { window_add_bit(KNOT_RRTYPE_URI, s); } - goto st386; -tr1771: + goto st389; +tr1793: { window_add_bit(KNOT_RRTYPE_URI, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1772: + goto st389; +tr1794: { window_add_bit(KNOT_RRTYPE_URI, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1773: + goto st389; +tr1795: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->line_counter++; } - goto st386; -tr1783: + goto st389; +tr1805: { window_add_bit(KNOT_RRTYPE_WALLET, s); } - goto st386; -tr1784: + goto st389; +tr1806: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1785: + goto st389; +tr1807: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1786: + goto st389; +tr1808: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->line_counter++; } - goto st386; -tr1796: + goto st389; +tr1818: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } - goto st386; -tr1797: + goto st389; +tr1819: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1798: + goto st389; +tr1820: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1799: + goto st389; +tr1821: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->line_counter++; } - goto st386; -tr1807: + goto st389; +tr1829: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - goto st386; -tr1808: + goto st389; +tr1830: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1809: + goto st389; +tr1831: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1810: + goto st389; +tr1832: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->line_counter++; } - goto st386; -tr1816: + goto st389; +tr1838: { window_add_bit(KNOT_RRTYPE_APL, s); } - goto st386; -tr1817: + goto st389; +tr1839: { window_add_bit(KNOT_RRTYPE_APL, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st386; -tr1818: + goto st389; +tr1840: { window_add_bit(KNOT_RRTYPE_APL, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st386; -tr1819: + goto st389; +tr1841: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->line_counter++; } - goto st386; -st386: + goto st389; +st389: if ( ++p == pe ) - goto _test_eof386; -case 386: + goto _test_eof389; +case 389: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -48104,58 +49037,58 @@ case 386: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st386; - case 32: goto st386; - case 40: goto tr1247; - case 41: goto tr1248; - case 65: goto st387; - case 67: goto st392; - case 68: goto st413; - case 69: goto st427; - case 72: goto st434; - case 73: goto st443; - case 75: goto st451; - case 76: goto st455; - case 77: goto st463; - case 78: goto st469; - case 79: goto st485; - case 80: goto st495; - case 82: goto st498; - case 83: goto st505; - case 84: goto st524; - case 85: goto st534; - case 87: goto st537; - case 90: goto st543; - case 97: goto st387; - case 99: goto st392; - case 100: goto st413; - case 101: goto st427; - case 104: goto st434; - case 105: goto st443; - case 107: goto st451; - case 108: goto st455; - case 109: goto st463; - case 110: goto st469; - case 111: goto st485; - case 112: goto st495; - case 114: goto st498; - case 115: goto st505; - case 116: goto st524; - case 117: goto st534; - case 119: goto st537; - case 122: goto st543; - case 3082: goto tr1267; - case 3131: goto tr1268; - case 3338: goto tr1269; - case 3387: goto tr1269; - case 3594: goto tr1270; - case 3643: goto tr1271; - } - goto tr1237; -st387: + case 9: goto st389; + case 32: goto st389; + case 40: goto tr1258; + case 41: goto tr1259; + case 65: goto st390; + case 67: goto st395; + case 68: goto st416; + case 69: goto st433; + case 72: goto st440; + case 73: goto st449; + case 75: goto st457; + case 76: goto st461; + case 77: goto st469; + case 78: goto st475; + case 79: goto st491; + case 80: goto st501; + case 82: goto st504; + case 83: goto st511; + case 84: goto st530; + case 85: goto st540; + case 87: goto st543; + case 90: goto st549; + case 97: goto st390; + case 99: goto st395; + case 100: goto st416; + case 101: goto st433; + case 104: goto st440; + case 105: goto st449; + case 107: goto st457; + case 108: goto st461; + case 109: goto st469; + case 110: goto st475; + case 111: goto st491; + case 112: goto st501; + case 114: goto st504; + case 115: goto st511; + case 116: goto st530; + case 117: goto st540; + case 119: goto st543; + case 122: goto st549; + case 3082: goto tr1278; + case 3131: goto tr1279; + case 3338: goto tr1280; + case 3387: goto tr1280; + case 3594: goto tr1281; + case 3643: goto tr1282; + } + goto tr1248; +st390: if ( ++p == pe ) - goto _test_eof387; -case 387: + goto _test_eof390; +case 390: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -48173,46 +49106,46 @@ case 387: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1272; - case 32: goto tr1272; - case 40: goto tr1273; - case 41: goto tr1274; - case 65: goto st388; - case 70: goto st549; - case 80: goto st553; - case 97: goto st388; - case 102: goto st549; - case 112: goto st553; - case 3082: goto tr1278; - case 3131: goto tr1279; - case 3338: goto tr1280; - case 3387: goto tr1280; - case 3594: goto tr1281; - case 3643: goto tr1282; - } - goto tr1237; -st388: + case 9: goto tr1283; + case 32: goto tr1283; + case 40: goto tr1284; + case 41: goto tr1285; + case 65: goto st391; + case 70: goto st555; + case 80: goto st559; + case 97: goto st391; + case 102: goto st555; + case 112: goto st559; + case 3082: goto tr1289; + case 3131: goto tr1290; + case 3338: goto tr1291; + case 3387: goto tr1291; + case 3594: goto tr1292; + case 3643: goto tr1293; + } + goto tr1248; +st391: if ( ++p == pe ) - goto _test_eof388; -case 388: + goto _test_eof391; +case 391: switch( (*p) ) { - case 65: goto st389; - case 97: goto st389; + case 65: goto st392; + case 97: goto st392; } - goto tr1237; -st389: + goto tr1248; +st392: if ( ++p == pe ) - goto _test_eof389; -case 389: + goto _test_eof392; +case 392: switch( (*p) ) { - case 65: goto st390; - case 97: goto st390; + case 65: goto st393; + case 97: goto st393; } - goto tr1237; -st390: + goto tr1248; +st393: if ( ++p == pe ) - goto _test_eof390; -case 390: + goto _test_eof393; +case 393: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -48230,31 +49163,31 @@ case 390: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1285; - case 32: goto tr1285; - case 40: goto tr1286; - case 41: goto tr1287; - case 3082: goto tr1288; - case 3131: goto tr1289; - case 3338: goto tr1290; - case 3387: goto tr1290; - case 3594: goto tr1291; - case 3643: goto tr1292; + case 9: goto tr1296; + case 32: goto tr1296; + case 40: goto tr1297; + case 41: goto tr1298; + case 3082: goto tr1299; + case 3131: goto tr1300; + case 3338: goto tr1301; + case 3387: goto tr1301; + case 3594: goto tr1302; + case 3643: goto tr1303; } - goto tr1237; -tr1268: + goto tr1248; +tr1279: { s->buffer_length = 0; } - goto st391; -tr1293: + goto st394; +tr1304: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st391; -tr1242: + goto st394; +tr1253: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -48262,318 +49195,324 @@ tr1242: { s->buffer_length = 0; } - goto st391; -tr1279: + goto st394; +tr1290: { window_add_bit(KNOT_RRTYPE_A, s); } { s->buffer_length = 0; } - goto st391; -tr1289: + goto st394; +tr1300: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->buffer_length = 0; } - goto st391; -tr1305: + goto st394; +tr1316: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->buffer_length = 0; } - goto st391; -tr1319: + goto st394; +tr1330: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->buffer_length = 0; } - goto st391; -tr1327: + goto st394; +tr1338: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->buffer_length = 0; } - goto st391; -tr1337: + goto st394; +tr1348: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->buffer_length = 0; } - goto st391; -tr1348: + goto st394; +tr1359: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->buffer_length = 0; } - goto st391; -tr1359: + goto st394; +tr1370: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->buffer_length = 0; } - goto st391; -tr1373: + goto st394; +tr1384: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->buffer_length = 0; } - goto st391; -tr1385: + goto st394; +tr1396: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->buffer_length = 0; } - goto st391; -tr1396: + goto st394; +tr1407: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->buffer_length = 0; } - goto st391; -tr1404: + goto st394; +tr1416: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->buffer_length = 0; } - goto st391; -tr1417: + goto st394; +tr1426: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + { + s->buffer_length = 0; + } + goto st394; +tr1439: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->buffer_length = 0; } - goto st391; -tr1426: + goto st394; +tr1448: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->buffer_length = 0; } - goto st391; -tr1439: + goto st394; +tr1461: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->buffer_length = 0; } - goto st391; -tr1450: + goto st394; +tr1472: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->buffer_length = 0; } - goto st391; -tr1465: + goto st394; +tr1487: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->buffer_length = 0; } - goto st391; -tr1476: + goto st394; +tr1498: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->buffer_length = 0; } - goto st391; -tr1484: + goto st394; +tr1506: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->buffer_length = 0; } - goto st391; -tr1497: + goto st394; +tr1519: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->buffer_length = 0; } - goto st391; -tr1506: + goto st394; +tr1528: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->buffer_length = 0; } - goto st391; -tr1515: + goto st394; +tr1537: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->buffer_length = 0; } - goto st391; -tr1523: + goto st394; +tr1545: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->buffer_length = 0; } - goto st391; -tr1536: + goto st394; +tr1558: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->buffer_length = 0; } - goto st391; -tr1544: + goto st394; +tr1566: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->buffer_length = 0; } - goto st391; -tr1558: + goto st394; +tr1580: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->buffer_length = 0; } - goto st391; -tr1567: + goto st394; +tr1589: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->buffer_length = 0; } - goto st391; -tr1576: + goto st394; +tr1598: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->buffer_length = 0; } - goto st391; -tr1586: + goto st394; +tr1608: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->buffer_length = 0; } - goto st391; -tr1595: + goto st394; +tr1617: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->buffer_length = 0; } - goto st391; -tr1607: + goto st394; +tr1629: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->buffer_length = 0; } - goto st391; -tr1624: + goto st394; +tr1646: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->buffer_length = 0; } - goto st391; -tr1634: + goto st394; +tr1656: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->buffer_length = 0; } - goto st391; -tr1645: + goto st394; +tr1667: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->buffer_length = 0; } - goto st391; -tr1656: + goto st394; +tr1678: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->buffer_length = 0; } - goto st391; -tr1664: + goto st394; +tr1686: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->buffer_length = 0; } - goto st391; -tr1682: + goto st394; +tr1704: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->buffer_length = 0; } - goto st391; -tr1691: + goto st394; +tr1713: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->buffer_length = 0; } - goto st391; -tr1700: + goto st394; +tr1722: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->buffer_length = 0; } - goto st391; -tr1709: + goto st394; +tr1731: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->buffer_length = 0; } - goto st391; -tr1720: + goto st394; +tr1742: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->buffer_length = 0; } - goto st391; -tr1730: + goto st394; +tr1752: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->buffer_length = 0; } - goto st391; -tr1743: + goto st394; +tr1765: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->buffer_length = 0; } - goto st391; -tr1752: + goto st394; +tr1774: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->buffer_length = 0; } - goto st391; -tr1764: + goto st394; +tr1786: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st391; -tr1774: + goto st394; +tr1796: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->buffer_length = 0; } - goto st391; -tr1787: + goto st394; +tr1809: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->buffer_length = 0; } - goto st391; -tr1800: + goto st394; +tr1822: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->buffer_length = 0; } - goto st391; -tr1811: + goto st394; +tr1833: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->buffer_length = 0; } - goto st391; -tr1820: + goto st394; +tr1842: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->buffer_length = 0; } - goto st391; -st391: + goto st394; +st394: if ( ++p == pe ) - goto _test_eof391; -case 391: + goto _test_eof394; +case 394: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -48593,11 +49532,11 @@ case 391: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1294; + goto tr1305; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1293; - goto tr1237; -tr1243: + goto tr1304; + goto tr1248; +tr1254: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -48620,7 +49559,7 @@ tr1243: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48628,8 +49567,8 @@ tr1243: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1269: + goto st1505; +tr1280: { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -48648,7 +49587,7 @@ tr1269: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48656,8 +49595,8 @@ tr1269: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1280: + goto st1505; +tr1291: { window_add_bit(KNOT_RRTYPE_A, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48677,7 +49616,7 @@ tr1280: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48685,8 +49624,8 @@ tr1280: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1290: + goto st1505; +tr1301: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48706,7 +49645,7 @@ tr1290: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48714,8 +49653,8 @@ tr1290: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1306: + goto st1505; +tr1317: { window_add_bit(KNOT_RRTYPE_CAA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48735,7 +49674,7 @@ tr1306: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48743,8 +49682,8 @@ tr1306: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1320: + goto st1505; +tr1331: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48764,7 +49703,7 @@ tr1320: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48772,8 +49711,8 @@ tr1320: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1328: + goto st1505; +tr1339: { window_add_bit(KNOT_RRTYPE_CDS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48793,7 +49732,7 @@ tr1328: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48801,8 +49740,8 @@ tr1328: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1338: + goto st1505; +tr1349: { window_add_bit(KNOT_RRTYPE_CERT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48822,7 +49761,7 @@ tr1338: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48830,8 +49769,8 @@ tr1338: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1349: + goto st1505; +tr1360: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48851,7 +49790,7 @@ tr1349: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48859,8 +49798,8 @@ tr1349: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1360: + goto st1505; +tr1371: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48880,7 +49819,7 @@ tr1360: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48888,8 +49827,8 @@ tr1360: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1374: + goto st1505; +tr1385: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48909,7 +49848,7 @@ tr1374: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48917,8 +49856,8 @@ tr1374: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1386: + goto st1505; +tr1397: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48938,7 +49877,7 @@ tr1386: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48946,8 +49885,8 @@ tr1386: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1397: + goto st1505; +tr1408: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48967,7 +49906,7 @@ tr1397: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -48975,8 +49914,8 @@ tr1397: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1405: + goto st1505; +tr1417: { window_add_bit(KNOT_RRTYPE_DS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -48996,7 +49935,7 @@ tr1405: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49004,8 +49943,37 @@ tr1405: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1418: + goto st1505; +tr1427: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1505; +tr1440: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49025,7 +49993,7 @@ tr1418: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49033,8 +50001,8 @@ tr1418: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1427: + goto st1505; +tr1449: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49054,7 +50022,7 @@ tr1427: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49062,8 +50030,8 @@ tr1427: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1440: + goto st1505; +tr1462: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49083,7 +50051,7 @@ tr1440: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49091,8 +50059,8 @@ tr1440: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1451: + goto st1505; +tr1473: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49112,7 +50080,7 @@ tr1451: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49120,8 +50088,8 @@ tr1451: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1466: + goto st1505; +tr1488: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49141,7 +50109,7 @@ tr1466: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49149,8 +50117,8 @@ tr1466: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1477: + goto st1505; +tr1499: { window_add_bit(KNOT_RRTYPE_KEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49170,7 +50138,7 @@ tr1477: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49178,8 +50146,8 @@ tr1477: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1485: + goto st1505; +tr1507: { window_add_bit(KNOT_RRTYPE_KX, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49199,7 +50167,7 @@ tr1485: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49207,8 +50175,8 @@ tr1485: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1498: + goto st1505; +tr1520: { window_add_bit(KNOT_RRTYPE_L32, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49228,7 +50196,7 @@ tr1498: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49236,8 +50204,8 @@ tr1498: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1507: + goto st1505; +tr1529: { window_add_bit(KNOT_RRTYPE_L64, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49257,7 +50225,7 @@ tr1507: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49265,8 +50233,8 @@ tr1507: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1516: + goto st1505; +tr1538: { window_add_bit(KNOT_RRTYPE_LOC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49286,7 +50254,7 @@ tr1516: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49294,8 +50262,8 @@ tr1516: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1524: + goto st1505; +tr1546: { window_add_bit(KNOT_RRTYPE_LP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49315,7 +50283,7 @@ tr1524: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49323,8 +50291,8 @@ tr1524: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1537: + goto st1505; +tr1559: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49344,7 +50312,7 @@ tr1537: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49352,8 +50320,8 @@ tr1537: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1545: + goto st1505; +tr1567: { window_add_bit(KNOT_RRTYPE_MX, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49373,7 +50341,7 @@ tr1545: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49381,8 +50349,8 @@ tr1545: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1559: + goto st1505; +tr1581: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49402,7 +50370,7 @@ tr1559: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49410,8 +50378,8 @@ tr1559: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1568: + goto st1505; +tr1590: { window_add_bit(KNOT_RRTYPE_NID, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49431,7 +50399,7 @@ tr1568: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49439,8 +50407,8 @@ tr1568: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1577: + goto st1505; +tr1599: { window_add_bit(KNOT_RRTYPE_NS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49460,7 +50428,7 @@ tr1577: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49468,8 +50436,8 @@ tr1577: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1587: + goto st1505; +tr1609: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49489,7 +50457,7 @@ tr1587: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49497,8 +50465,8 @@ tr1587: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1596: + goto st1505; +tr1618: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49518,7 +50486,7 @@ tr1596: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49526,8 +50494,8 @@ tr1596: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1608: + goto st1505; +tr1630: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49547,7 +50515,7 @@ tr1608: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49555,8 +50523,8 @@ tr1608: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1625: + goto st1505; +tr1647: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49576,7 +50544,7 @@ tr1625: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49584,8 +50552,8 @@ tr1625: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1635: + goto st1505; +tr1657: { window_add_bit(KNOT_RRTYPE_PTR, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49605,7 +50573,7 @@ tr1635: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49613,8 +50581,8 @@ tr1635: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1646: + goto st1505; +tr1668: { window_add_bit(KNOT_RRTYPE_RP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49634,7 +50602,7 @@ tr1646: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49642,8 +50610,8 @@ tr1646: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1657: + goto st1505; +tr1679: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49663,7 +50631,7 @@ tr1657: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49671,8 +50639,8 @@ tr1657: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1665: + goto st1505; +tr1687: { window_add_bit(KNOT_RRTYPE_RT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49692,7 +50660,7 @@ tr1665: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49700,8 +50668,8 @@ tr1665: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1683: + goto st1505; +tr1705: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49721,7 +50689,7 @@ tr1683: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49729,8 +50697,8 @@ tr1683: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1692: + goto st1505; +tr1714: { window_add_bit(KNOT_RRTYPE_SOA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49750,7 +50718,7 @@ tr1692: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49758,8 +50726,8 @@ tr1692: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1701: + goto st1505; +tr1723: { window_add_bit(KNOT_RRTYPE_SPF, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49779,7 +50747,7 @@ tr1701: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49787,8 +50755,8 @@ tr1701: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1710: + goto st1505; +tr1732: { window_add_bit(KNOT_RRTYPE_SRV, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49808,7 +50776,7 @@ tr1710: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49816,8 +50784,8 @@ tr1710: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1721: + goto st1505; +tr1743: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49837,7 +50805,7 @@ tr1721: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49845,8 +50813,8 @@ tr1721: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1731: + goto st1505; +tr1753: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49866,7 +50834,7 @@ tr1731: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49874,8 +50842,8 @@ tr1731: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1744: + goto st1505; +tr1766: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49895,7 +50863,7 @@ tr1744: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49903,8 +50871,8 @@ tr1744: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1753: + goto st1505; +tr1775: { window_add_bit(KNOT_RRTYPE_TXT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49924,7 +50892,7 @@ tr1753: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49932,14 +50900,14 @@ tr1753: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1765: + goto st1505; +tr1787: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -49960,7 +50928,7 @@ tr1765: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49968,8 +50936,8 @@ tr1765: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1775: + goto st1505; +tr1797: { window_add_bit(KNOT_RRTYPE_URI, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -49989,7 +50957,7 @@ tr1775: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -49997,8 +50965,8 @@ tr1775: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1788: + goto st1505; +tr1810: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -50018,7 +50986,7 @@ tr1788: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50026,8 +50994,8 @@ tr1788: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1801: + goto st1505; +tr1823: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -50047,7 +51015,7 @@ tr1801: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50055,8 +51023,8 @@ tr1801: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1812: + goto st1505; +tr1834: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -50076,7 +51044,7 @@ tr1812: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50084,8 +51052,8 @@ tr1812: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -tr1821: + goto st1505; +tr1843: { window_add_bit(KNOT_RRTYPE_APL, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -50105,7 +51073,7 @@ tr1821: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50113,13 +51081,13 @@ tr1821: { p--; {cs = stack[--top];goto _again;} } - goto st1466; -st1466: + goto st1505; +st1505: if ( ++p == pe ) - goto _test_eof1466; -case 1466: + goto _test_eof1505; +case 1505: goto st0; -tr1244: +tr1255: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -50145,7 +51113,7 @@ tr1244: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50153,8 +51121,8 @@ tr1244: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1270: + goto st1506; +tr1281: { s->line_counter++; } @@ -50176,7 +51144,7 @@ tr1270: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50184,8 +51152,8 @@ tr1270: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1281: + goto st1506; +tr1292: { window_add_bit(KNOT_RRTYPE_A, s); } { s->line_counter++; @@ -50208,7 +51176,7 @@ tr1281: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50216,8 +51184,8 @@ tr1281: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1291: + goto st1506; +tr1302: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->line_counter++; @@ -50240,7 +51208,7 @@ tr1291: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50248,8 +51216,8 @@ tr1291: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1307: + goto st1506; +tr1318: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->line_counter++; @@ -50272,7 +51240,7 @@ tr1307: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50280,8 +51248,8 @@ tr1307: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1321: + goto st1506; +tr1332: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->line_counter++; @@ -50304,7 +51272,7 @@ tr1321: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50312,8 +51280,8 @@ tr1321: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1329: + goto st1506; +tr1340: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->line_counter++; @@ -50336,7 +51304,7 @@ tr1329: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50344,8 +51312,8 @@ tr1329: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1339: + goto st1506; +tr1350: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->line_counter++; @@ -50368,7 +51336,7 @@ tr1339: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50376,8 +51344,8 @@ tr1339: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1350: + goto st1506; +tr1361: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->line_counter++; @@ -50400,7 +51368,7 @@ tr1350: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50408,8 +51376,8 @@ tr1350: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1361: + goto st1506; +tr1372: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->line_counter++; @@ -50432,7 +51400,7 @@ tr1361: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50440,8 +51408,8 @@ tr1361: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1375: + goto st1506; +tr1386: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->line_counter++; @@ -50464,7 +51432,7 @@ tr1375: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50472,8 +51440,8 @@ tr1375: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1387: + goto st1506; +tr1398: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->line_counter++; @@ -50496,7 +51464,7 @@ tr1387: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50504,8 +51472,8 @@ tr1387: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1398: + goto st1506; +tr1409: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->line_counter++; @@ -50528,7 +51496,7 @@ tr1398: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50536,8 +51504,8 @@ tr1398: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1406: + goto st1506; +tr1418: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->line_counter++; @@ -50560,7 +51528,7 @@ tr1406: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50568,8 +51536,40 @@ tr1406: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1419: + goto st1506; +tr1428: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + { + s->line_counter++; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1506; +tr1441: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->line_counter++; @@ -50592,7 +51592,7 @@ tr1419: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50600,8 +51600,8 @@ tr1419: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1428: + goto st1506; +tr1450: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->line_counter++; @@ -50624,7 +51624,7 @@ tr1428: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50632,8 +51632,8 @@ tr1428: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1441: + goto st1506; +tr1463: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->line_counter++; @@ -50656,7 +51656,7 @@ tr1441: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50664,8 +51664,8 @@ tr1441: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1452: + goto st1506; +tr1474: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->line_counter++; @@ -50688,7 +51688,7 @@ tr1452: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50696,8 +51696,8 @@ tr1452: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1467: + goto st1506; +tr1489: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->line_counter++; @@ -50720,7 +51720,7 @@ tr1467: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50728,8 +51728,8 @@ tr1467: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1478: + goto st1506; +tr1500: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->line_counter++; @@ -50752,7 +51752,7 @@ tr1478: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50760,8 +51760,8 @@ tr1478: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1486: + goto st1506; +tr1508: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->line_counter++; @@ -50784,7 +51784,7 @@ tr1486: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50792,8 +51792,8 @@ tr1486: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1499: + goto st1506; +tr1521: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->line_counter++; @@ -50816,7 +51816,7 @@ tr1499: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50824,8 +51824,8 @@ tr1499: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1508: + goto st1506; +tr1530: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->line_counter++; @@ -50848,7 +51848,7 @@ tr1508: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50856,8 +51856,8 @@ tr1508: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1517: + goto st1506; +tr1539: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->line_counter++; @@ -50880,7 +51880,7 @@ tr1517: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50888,8 +51888,8 @@ tr1517: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1525: + goto st1506; +tr1547: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->line_counter++; @@ -50912,7 +51912,7 @@ tr1525: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50920,8 +51920,8 @@ tr1525: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1538: + goto st1506; +tr1560: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->line_counter++; @@ -50944,7 +51944,7 @@ tr1538: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50952,8 +51952,8 @@ tr1538: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1546: + goto st1506; +tr1568: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->line_counter++; @@ -50976,7 +51976,7 @@ tr1546: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -50984,8 +51984,8 @@ tr1546: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1560: + goto st1506; +tr1582: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->line_counter++; @@ -51008,7 +52008,7 @@ tr1560: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51016,8 +52016,8 @@ tr1560: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1569: + goto st1506; +tr1591: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->line_counter++; @@ -51040,7 +52040,7 @@ tr1569: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51048,8 +52048,8 @@ tr1569: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1578: + goto st1506; +tr1600: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->line_counter++; @@ -51072,7 +52072,7 @@ tr1578: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51080,8 +52080,8 @@ tr1578: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1588: + goto st1506; +tr1610: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->line_counter++; @@ -51104,7 +52104,7 @@ tr1588: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51112,8 +52112,8 @@ tr1588: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1597: + goto st1506; +tr1619: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->line_counter++; @@ -51136,7 +52136,7 @@ tr1597: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51144,8 +52144,8 @@ tr1597: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1609: + goto st1506; +tr1631: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->line_counter++; @@ -51168,7 +52168,7 @@ tr1609: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51176,8 +52176,8 @@ tr1609: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1626: + goto st1506; +tr1648: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->line_counter++; @@ -51200,7 +52200,7 @@ tr1626: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51208,8 +52208,8 @@ tr1626: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1636: + goto st1506; +tr1658: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->line_counter++; @@ -51232,7 +52232,7 @@ tr1636: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51240,8 +52240,8 @@ tr1636: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1647: + goto st1506; +tr1669: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->line_counter++; @@ -51264,7 +52264,7 @@ tr1647: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51272,8 +52272,8 @@ tr1647: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1658: + goto st1506; +tr1680: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->line_counter++; @@ -51296,7 +52296,7 @@ tr1658: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51304,8 +52304,8 @@ tr1658: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1666: + goto st1506; +tr1688: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->line_counter++; @@ -51328,7 +52328,7 @@ tr1666: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51336,8 +52336,8 @@ tr1666: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1684: + goto st1506; +tr1706: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->line_counter++; @@ -51360,7 +52360,7 @@ tr1684: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51368,8 +52368,8 @@ tr1684: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1693: + goto st1506; +tr1715: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->line_counter++; @@ -51392,7 +52392,7 @@ tr1693: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51400,8 +52400,8 @@ tr1693: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1702: + goto st1506; +tr1724: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->line_counter++; @@ -51424,7 +52424,7 @@ tr1702: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51432,8 +52432,8 @@ tr1702: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1711: + goto st1506; +tr1733: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->line_counter++; @@ -51456,7 +52456,7 @@ tr1711: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51464,8 +52464,8 @@ tr1711: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1722: + goto st1506; +tr1744: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->line_counter++; @@ -51488,7 +52488,7 @@ tr1722: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51496,8 +52496,8 @@ tr1722: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1732: + goto st1506; +tr1754: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->line_counter++; @@ -51520,7 +52520,7 @@ tr1732: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51528,8 +52528,8 @@ tr1732: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1745: + goto st1506; +tr1767: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->line_counter++; @@ -51552,7 +52552,7 @@ tr1745: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51560,8 +52560,8 @@ tr1745: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1754: + goto st1506; +tr1776: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->line_counter++; @@ -51584,7 +52584,7 @@ tr1754: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51592,14 +52592,14 @@ tr1754: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1766: + goto st1506; +tr1788: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -51623,7 +52623,7 @@ tr1766: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51631,8 +52631,8 @@ tr1766: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1776: + goto st1506; +tr1798: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->line_counter++; @@ -51655,7 +52655,7 @@ tr1776: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51663,8 +52663,8 @@ tr1776: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1789: + goto st1506; +tr1811: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->line_counter++; @@ -51687,7 +52687,7 @@ tr1789: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51695,8 +52695,8 @@ tr1789: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1802: + goto st1506; +tr1824: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->line_counter++; @@ -51719,7 +52719,7 @@ tr1802: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51727,8 +52727,8 @@ tr1802: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1813: + goto st1506; +tr1835: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->line_counter++; @@ -51751,7 +52751,7 @@ tr1813: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51759,8 +52759,8 @@ tr1813: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -tr1822: + goto st1506; +tr1844: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->line_counter++; @@ -51783,7 +52783,7 @@ tr1822: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51791,11 +52791,11 @@ tr1822: { p--; {cs = stack[--top];goto _again;} } - goto st1467; -st1467: + goto st1506; +st1506: if ( ++p == pe ) - goto _test_eof1467; -case 1467: + goto _test_eof1506; +case 1506: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -51813,84 +52813,84 @@ case 1467: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st386; - case 32: goto st386; - case 40: goto tr1247; - case 41: goto tr1248; - case 65: goto st387; - case 67: goto st392; - case 68: goto st413; - case 69: goto st427; - case 72: goto st434; - case 73: goto st443; - case 75: goto st451; - case 76: goto st455; - case 77: goto st463; - case 78: goto st469; - case 79: goto st485; - case 80: goto st495; - case 82: goto st498; - case 83: goto st505; - case 84: goto st524; - case 85: goto st534; - case 87: goto st537; - case 90: goto st543; - case 97: goto st387; - case 99: goto st392; - case 100: goto st413; - case 101: goto st427; - case 104: goto st434; - case 105: goto st443; - case 107: goto st451; - case 108: goto st455; - case 109: goto st463; - case 110: goto st469; - case 111: goto st485; - case 112: goto st495; - case 114: goto st498; - case 115: goto st505; - case 116: goto st524; - case 117: goto st534; - case 119: goto st537; - case 122: goto st543; - case 3082: goto tr1267; - case 3131: goto tr1268; - case 3338: goto tr1269; - case 3387: goto tr1269; - case 3594: goto tr1270; - case 3643: goto tr1271; - } - goto tr1237; -st392: + case 9: goto st389; + case 32: goto st389; + case 40: goto tr1258; + case 41: goto tr1259; + case 65: goto st390; + case 67: goto st395; + case 68: goto st416; + case 69: goto st433; + case 72: goto st440; + case 73: goto st449; + case 75: goto st457; + case 76: goto st461; + case 77: goto st469; + case 78: goto st475; + case 79: goto st491; + case 80: goto st501; + case 82: goto st504; + case 83: goto st511; + case 84: goto st530; + case 85: goto st540; + case 87: goto st543; + case 90: goto st549; + case 97: goto st390; + case 99: goto st395; + case 100: goto st416; + case 101: goto st433; + case 104: goto st440; + case 105: goto st449; + case 107: goto st457; + case 108: goto st461; + case 109: goto st469; + case 110: goto st475; + case 111: goto st491; + case 112: goto st501; + case 114: goto st504; + case 115: goto st511; + case 116: goto st530; + case 117: goto st540; + case 119: goto st543; + case 122: goto st549; + case 3082: goto tr1278; + case 3131: goto tr1279; + case 3338: goto tr1280; + case 3387: goto tr1280; + case 3594: goto tr1281; + case 3643: goto tr1282; + } + goto tr1248; +st395: if ( ++p == pe ) - goto _test_eof392; -case 392: + goto _test_eof395; +case 395: switch( (*p) ) { - case 65: goto st393; - case 68: goto st395; - case 69: goto st402; - case 78: goto st405; - case 83: goto st409; - case 97: goto st393; - case 100: goto st395; - case 101: goto st402; - case 110: goto st405; - case 115: goto st409; - } - goto tr1237; -st393: + case 65: goto st396; + case 68: goto st398; + case 69: goto st405; + case 78: goto st408; + case 83: goto st412; + case 97: goto st396; + case 100: goto st398; + case 101: goto st405; + case 110: goto st408; + case 115: goto st412; + } + goto tr1248; +st396: if ( ++p == pe ) - goto _test_eof393; -case 393: + goto _test_eof396; +case 396: switch( (*p) ) { - case 65: goto st394; - case 97: goto st394; + case 65: goto st397; + case 97: goto st397; } - goto tr1237; -st394: + goto tr1248; +st397: if ( ++p == pe ) - goto _test_eof394; -case 394: + goto _test_eof397; +case 397: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -51908,19 +52908,19 @@ case 394: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1301; - case 32: goto tr1301; - case 40: goto tr1302; - case 41: goto tr1303; - case 3082: goto tr1304; - case 3131: goto tr1305; - case 3338: goto tr1306; - case 3387: goto tr1306; - case 3594: goto tr1307; - case 3643: goto tr1308; + case 9: goto tr1312; + case 32: goto tr1312; + case 40: goto tr1313; + case 41: goto tr1314; + case 3082: goto tr1315; + case 3131: goto tr1316; + case 3338: goto tr1317; + case 3387: goto tr1317; + case 3594: goto tr1318; + case 3643: goto tr1319; } - goto tr1237; -tr1245: + goto tr1248; +tr1256: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -51946,7 +52946,7 @@ tr1245: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51954,8 +52954,8 @@ tr1245: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1271: + goto st1507; +tr1282: { s->buffer_length = 0; } @@ -51977,7 +52977,7 @@ tr1271: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -51985,8 +52985,8 @@ tr1271: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1282: + goto st1507; +tr1293: { window_add_bit(KNOT_RRTYPE_A, s); } { s->buffer_length = 0; @@ -52009,7 +53009,7 @@ tr1282: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52017,8 +53017,8 @@ tr1282: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1292: + goto st1507; +tr1303: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->buffer_length = 0; @@ -52041,7 +53041,7 @@ tr1292: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52049,8 +53049,8 @@ tr1292: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1308: + goto st1507; +tr1319: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->buffer_length = 0; @@ -52073,7 +53073,7 @@ tr1308: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52081,8 +53081,8 @@ tr1308: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1322: + goto st1507; +tr1333: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->buffer_length = 0; @@ -52105,7 +53105,7 @@ tr1322: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52113,8 +53113,8 @@ tr1322: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1330: + goto st1507; +tr1341: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->buffer_length = 0; @@ -52137,7 +53137,7 @@ tr1330: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52145,8 +53145,8 @@ tr1330: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1340: + goto st1507; +tr1351: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->buffer_length = 0; @@ -52169,7 +53169,7 @@ tr1340: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52177,8 +53177,8 @@ tr1340: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1351: + goto st1507; +tr1362: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->buffer_length = 0; @@ -52201,7 +53201,7 @@ tr1351: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52209,8 +53209,8 @@ tr1351: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1362: + goto st1507; +tr1373: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->buffer_length = 0; @@ -52233,7 +53233,7 @@ tr1362: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52241,8 +53241,8 @@ tr1362: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1376: + goto st1507; +tr1387: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->buffer_length = 0; @@ -52265,7 +53265,7 @@ tr1376: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52273,8 +53273,8 @@ tr1376: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1388: + goto st1507; +tr1399: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->buffer_length = 0; @@ -52297,7 +53297,7 @@ tr1388: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52305,8 +53305,8 @@ tr1388: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1399: + goto st1507; +tr1410: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->buffer_length = 0; @@ -52329,7 +53329,7 @@ tr1399: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52337,8 +53337,8 @@ tr1399: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1407: + goto st1507; +tr1419: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->buffer_length = 0; @@ -52361,7 +53361,7 @@ tr1407: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52369,8 +53369,40 @@ tr1407: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1420: + goto st1507; +tr1429: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1507; +tr1442: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->buffer_length = 0; @@ -52393,7 +53425,7 @@ tr1420: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52401,8 +53433,8 @@ tr1420: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1429: + goto st1507; +tr1451: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->buffer_length = 0; @@ -52425,7 +53457,7 @@ tr1429: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52433,8 +53465,8 @@ tr1429: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1442: + goto st1507; +tr1464: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->buffer_length = 0; @@ -52457,7 +53489,7 @@ tr1442: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52465,8 +53497,8 @@ tr1442: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1453: + goto st1507; +tr1475: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->buffer_length = 0; @@ -52489,7 +53521,7 @@ tr1453: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52497,8 +53529,8 @@ tr1453: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1468: + goto st1507; +tr1490: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->buffer_length = 0; @@ -52521,7 +53553,7 @@ tr1468: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52529,8 +53561,8 @@ tr1468: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1479: + goto st1507; +tr1501: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->buffer_length = 0; @@ -52553,7 +53585,7 @@ tr1479: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52561,8 +53593,8 @@ tr1479: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1487: + goto st1507; +tr1509: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->buffer_length = 0; @@ -52585,7 +53617,7 @@ tr1487: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52593,8 +53625,8 @@ tr1487: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1500: + goto st1507; +tr1522: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->buffer_length = 0; @@ -52617,7 +53649,7 @@ tr1500: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52625,8 +53657,8 @@ tr1500: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1509: + goto st1507; +tr1531: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->buffer_length = 0; @@ -52649,7 +53681,7 @@ tr1509: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52657,8 +53689,8 @@ tr1509: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1518: + goto st1507; +tr1540: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->buffer_length = 0; @@ -52681,7 +53713,7 @@ tr1518: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52689,8 +53721,8 @@ tr1518: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1526: + goto st1507; +tr1548: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->buffer_length = 0; @@ -52713,7 +53745,7 @@ tr1526: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52721,8 +53753,8 @@ tr1526: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1539: + goto st1507; +tr1561: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->buffer_length = 0; @@ -52745,7 +53777,7 @@ tr1539: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52753,8 +53785,8 @@ tr1539: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1547: + goto st1507; +tr1569: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->buffer_length = 0; @@ -52777,7 +53809,7 @@ tr1547: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52785,8 +53817,8 @@ tr1547: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1561: + goto st1507; +tr1583: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->buffer_length = 0; @@ -52809,7 +53841,7 @@ tr1561: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52817,8 +53849,8 @@ tr1561: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1570: + goto st1507; +tr1592: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->buffer_length = 0; @@ -52841,7 +53873,7 @@ tr1570: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52849,8 +53881,8 @@ tr1570: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1579: + goto st1507; +tr1601: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->buffer_length = 0; @@ -52873,7 +53905,7 @@ tr1579: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52881,8 +53913,8 @@ tr1579: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1589: + goto st1507; +tr1611: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->buffer_length = 0; @@ -52905,7 +53937,7 @@ tr1589: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52913,8 +53945,8 @@ tr1589: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1598: + goto st1507; +tr1620: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->buffer_length = 0; @@ -52937,7 +53969,7 @@ tr1598: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52945,8 +53977,8 @@ tr1598: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1610: + goto st1507; +tr1632: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->buffer_length = 0; @@ -52969,7 +54001,7 @@ tr1610: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -52977,8 +54009,8 @@ tr1610: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1627: + goto st1507; +tr1649: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->buffer_length = 0; @@ -53001,7 +54033,7 @@ tr1627: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53009,8 +54041,8 @@ tr1627: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1637: + goto st1507; +tr1659: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->buffer_length = 0; @@ -53033,7 +54065,7 @@ tr1637: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53041,8 +54073,8 @@ tr1637: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1648: + goto st1507; +tr1670: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->buffer_length = 0; @@ -53065,7 +54097,7 @@ tr1648: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53073,8 +54105,8 @@ tr1648: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1659: + goto st1507; +tr1681: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->buffer_length = 0; @@ -53097,7 +54129,7 @@ tr1659: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53105,8 +54137,8 @@ tr1659: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1667: + goto st1507; +tr1689: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->buffer_length = 0; @@ -53129,7 +54161,7 @@ tr1667: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53137,8 +54169,8 @@ tr1667: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1685: + goto st1507; +tr1707: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->buffer_length = 0; @@ -53161,7 +54193,7 @@ tr1685: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53169,8 +54201,8 @@ tr1685: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1694: + goto st1507; +tr1716: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->buffer_length = 0; @@ -53193,7 +54225,7 @@ tr1694: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53201,8 +54233,8 @@ tr1694: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1703: + goto st1507; +tr1725: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->buffer_length = 0; @@ -53225,7 +54257,7 @@ tr1703: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53233,8 +54265,8 @@ tr1703: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1712: + goto st1507; +tr1734: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->buffer_length = 0; @@ -53257,7 +54289,7 @@ tr1712: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53265,8 +54297,8 @@ tr1712: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1723: + goto st1507; +tr1745: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->buffer_length = 0; @@ -53289,7 +54321,7 @@ tr1723: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53297,8 +54329,8 @@ tr1723: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1733: + goto st1507; +tr1755: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->buffer_length = 0; @@ -53321,7 +54353,7 @@ tr1733: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53329,8 +54361,8 @@ tr1733: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1746: + goto st1507; +tr1768: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->buffer_length = 0; @@ -53353,7 +54385,7 @@ tr1746: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53361,8 +54393,8 @@ tr1746: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1755: + goto st1507; +tr1777: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->buffer_length = 0; @@ -53385,7 +54417,7 @@ tr1755: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53393,14 +54425,14 @@ tr1755: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1767: + goto st1507; +tr1789: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -53424,7 +54456,7 @@ tr1767: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53432,8 +54464,8 @@ tr1767: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1777: + goto st1507; +tr1799: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->buffer_length = 0; @@ -53456,7 +54488,7 @@ tr1777: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53464,8 +54496,8 @@ tr1777: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1790: + goto st1507; +tr1812: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->buffer_length = 0; @@ -53488,7 +54520,7 @@ tr1790: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53496,8 +54528,8 @@ tr1790: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1803: + goto st1507; +tr1825: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->buffer_length = 0; @@ -53520,7 +54552,7 @@ tr1803: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53528,8 +54560,8 @@ tr1803: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1814: + goto st1507; +tr1836: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->buffer_length = 0; @@ -53552,7 +54584,7 @@ tr1814: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53560,8 +54592,8 @@ tr1814: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -tr1823: + goto st1507; +tr1845: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->buffer_length = 0; @@ -53584,7 +54616,7 @@ tr1823: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } } @@ -53592,11 +54624,11 @@ tr1823: { p--; {cs = stack[--top];goto _again;} } - goto st1468; -st1468: + goto st1507; +st1507: if ( ++p == pe ) - goto _test_eof1468; -case 1468: + goto _test_eof1507; +case 1507: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -53616,94 +54648,61 @@ case 1468: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1294; + goto tr1305; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1293; - goto tr1237; -st395: - if ( ++p == pe ) - goto _test_eof395; -case 395: - switch( (*p) ) { - case 78: goto st396; - case 83: goto st401; - case 110: goto st396; - case 115: goto st401; - } - goto tr1237; -st396: - if ( ++p == pe ) - goto _test_eof396; -case 396: - switch( (*p) ) { - case 83: goto st397; - case 115: goto st397; - } - goto tr1237; -st397: - if ( ++p == pe ) - goto _test_eof397; -case 397: - switch( (*p) ) { - case 75: goto st398; - case 107: goto st398; - } - goto tr1237; + goto tr1304; + goto tr1248; st398: if ( ++p == pe ) goto _test_eof398; case 398: switch( (*p) ) { - case 69: goto st399; - case 101: goto st399; + case 78: goto st399; + case 83: goto st404; + case 110: goto st399; + case 115: goto st404; } - goto tr1237; + goto tr1248; st399: if ( ++p == pe ) goto _test_eof399; case 399: switch( (*p) ) { - case 89: goto st400; - case 121: goto st400; + case 83: goto st400; + case 115: goto st400; } - goto tr1237; + goto tr1248; st400: if ( ++p == pe ) goto _test_eof400; case 400: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1315; - case 32: goto tr1315; - case 40: goto tr1316; - case 41: goto tr1317; - case 3082: goto tr1318; - case 3131: goto tr1319; - case 3338: goto tr1320; - case 3387: goto tr1320; - case 3594: goto tr1321; - case 3643: goto tr1322; + switch( (*p) ) { + case 75: goto st401; + case 107: goto st401; } - goto tr1237; + goto tr1248; st401: if ( ++p == pe ) goto _test_eof401; case 401: + switch( (*p) ) { + case 69: goto st402; + case 101: goto st402; + } + goto tr1248; +st402: + if ( ++p == pe ) + goto _test_eof402; +case 402: + switch( (*p) ) { + case 89: goto st403; + case 121: goto st403; + } + goto tr1248; +st403: + if ( ++p == pe ) + goto _test_eof403; +case 403: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -53721,36 +54720,18 @@ case 401: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1323; - case 32: goto tr1323; - case 40: goto tr1324; - case 41: goto tr1325; - case 3082: goto tr1326; - case 3131: goto tr1327; - case 3338: goto tr1328; - case 3387: goto tr1328; - case 3594: goto tr1329; - case 3643: goto tr1330; - } - goto tr1237; -st402: - if ( ++p == pe ) - goto _test_eof402; -case 402: - switch( (*p) ) { - case 82: goto st403; - case 114: goto st403; + case 9: goto tr1326; + case 32: goto tr1326; + case 40: goto tr1327; + case 41: goto tr1328; + case 3082: goto tr1329; + case 3131: goto tr1330; + case 3338: goto tr1331; + case 3387: goto tr1331; + case 3594: goto tr1332; + case 3643: goto tr1333; } - goto tr1237; -st403: - if ( ++p == pe ) - goto _test_eof403; -case 403: - switch( (*p) ) { - case 84: goto st404; - case 116: goto st404; - } - goto tr1237; + goto tr1248; st404: if ( ++p == pe ) goto _test_eof404; @@ -53772,49 +54753,40 @@ case 404: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1333; - case 32: goto tr1333; - case 40: goto tr1334; - case 41: goto tr1335; - case 3082: goto tr1336; - case 3131: goto tr1337; - case 3338: goto tr1338; - case 3387: goto tr1338; - case 3594: goto tr1339; - case 3643: goto tr1340; + case 9: goto tr1334; + case 32: goto tr1334; + case 40: goto tr1335; + case 41: goto tr1336; + case 3082: goto tr1337; + case 3131: goto tr1338; + case 3338: goto tr1339; + case 3387: goto tr1339; + case 3594: goto tr1340; + case 3643: goto tr1341; } - goto tr1237; + goto tr1248; st405: if ( ++p == pe ) goto _test_eof405; case 405: switch( (*p) ) { - case 65: goto st406; - case 97: goto st406; + case 82: goto st406; + case 114: goto st406; } - goto tr1237; + goto tr1248; st406: if ( ++p == pe ) goto _test_eof406; case 406: switch( (*p) ) { - case 77: goto st407; - case 109: goto st407; + case 84: goto st407; + case 116: goto st407; } - goto tr1237; + goto tr1248; st407: if ( ++p == pe ) goto _test_eof407; case 407: - switch( (*p) ) { - case 69: goto st408; - case 101: goto st408; - } - goto tr1237; -st408: - if ( ++p == pe ) - goto _test_eof408; -case 408: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -53843,38 +54815,38 @@ case 408: case 3594: goto tr1350; case 3643: goto tr1351; } - goto tr1237; + goto tr1248; +st408: + if ( ++p == pe ) + goto _test_eof408; +case 408: + switch( (*p) ) { + case 65: goto st409; + case 97: goto st409; + } + goto tr1248; st409: if ( ++p == pe ) goto _test_eof409; case 409: switch( (*p) ) { - case 89: goto st410; - case 121: goto st410; + case 77: goto st410; + case 109: goto st410; } - goto tr1237; + goto tr1248; st410: if ( ++p == pe ) goto _test_eof410; case 410: switch( (*p) ) { - case 78: goto st411; - case 110: goto st411; + case 69: goto st411; + case 101: goto st411; } - goto tr1237; + goto tr1248; st411: if ( ++p == pe ) goto _test_eof411; case 411: - switch( (*p) ) { - case 67: goto st412; - case 99: goto st412; - } - goto tr1237; -st412: - if ( ++p == pe ) - goto _test_eof412; -case 412: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -53903,20 +54875,25 @@ case 412: case 3594: goto tr1361; case 3643: goto tr1362; } - goto tr1237; + goto tr1248; +st412: + if ( ++p == pe ) + goto _test_eof412; +case 412: + switch( (*p) ) { + case 89: goto st413; + case 121: goto st413; + } + goto tr1248; st413: if ( ++p == pe ) goto _test_eof413; case 413: switch( (*p) ) { - case 72: goto st414; - case 78: goto st418; - case 83: goto st426; - case 104: goto st414; - case 110: goto st418; - case 115: goto st426; + case 78: goto st414; + case 110: goto st414; } - goto tr1237; + goto tr1248; st414: if ( ++p == pe ) goto _test_eof414; @@ -53925,29 +54902,11 @@ case 414: case 67: goto st415; case 99: goto st415; } - goto tr1237; + goto tr1248; st415: if ( ++p == pe ) goto _test_eof415; case 415: - switch( (*p) ) { - case 73: goto st416; - case 105: goto st416; - } - goto tr1237; -st416: - if ( ++p == pe ) - goto _test_eof416; -case 416: - switch( (*p) ) { - case 68: goto st417; - case 100: goto st417; - } - goto tr1237; -st417: - if ( ++p == pe ) - goto _test_eof417; -case 417: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -53965,51 +54924,62 @@ case 417: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1369; - case 32: goto tr1369; - case 40: goto tr1370; - case 41: goto tr1371; - case 3082: goto tr1372; - case 3131: goto tr1373; - case 3338: goto tr1374; - case 3387: goto tr1374; - case 3594: goto tr1375; - case 3643: goto tr1376; + case 9: goto tr1366; + case 32: goto tr1366; + case 40: goto tr1367; + case 41: goto tr1368; + case 3082: goto tr1369; + case 3131: goto tr1370; + case 3338: goto tr1371; + case 3387: goto tr1371; + case 3594: goto tr1372; + case 3643: goto tr1373; + } + goto tr1248; +st416: + if ( ++p == pe ) + goto _test_eof416; +case 416: + switch( (*p) ) { + case 72: goto st417; + case 78: goto st421; + case 83: goto st429; + case 104: goto st417; + case 110: goto st421; + case 115: goto st429; } - goto tr1237; + goto tr1248; +st417: + if ( ++p == pe ) + goto _test_eof417; +case 417: + switch( (*p) ) { + case 67: goto st418; + case 99: goto st418; + } + goto tr1248; st418: if ( ++p == pe ) goto _test_eof418; case 418: switch( (*p) ) { - case 65: goto st419; - case 83: goto st422; - case 97: goto st419; - case 115: goto st422; + case 73: goto st419; + case 105: goto st419; } - goto tr1237; + goto tr1248; st419: if ( ++p == pe ) goto _test_eof419; case 419: switch( (*p) ) { - case 77: goto st420; - case 109: goto st420; + case 68: goto st420; + case 100: goto st420; } - goto tr1237; + goto tr1248; st420: if ( ++p == pe ) goto _test_eof420; case 420: - switch( (*p) ) { - case 69: goto st421; - case 101: goto st421; - } - goto tr1237; -st421: - if ( ++p == pe ) - goto _test_eof421; -case 421: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54027,27 +54997,38 @@ case 421: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1381; - case 32: goto tr1381; - case 40: goto tr1382; - case 41: goto tr1383; - case 3082: goto tr1384; - case 3131: goto tr1385; - case 3338: goto tr1386; - case 3387: goto tr1386; - case 3594: goto tr1387; - case 3643: goto tr1388; + case 9: goto tr1380; + case 32: goto tr1380; + case 40: goto tr1381; + case 41: goto tr1382; + case 3082: goto tr1383; + case 3131: goto tr1384; + case 3338: goto tr1385; + case 3387: goto tr1385; + case 3594: goto tr1386; + case 3643: goto tr1387; + } + goto tr1248; +st421: + if ( ++p == pe ) + goto _test_eof421; +case 421: + switch( (*p) ) { + case 65: goto st422; + case 83: goto st425; + case 97: goto st422; + case 115: goto st425; } - goto tr1237; + goto tr1248; st422: if ( ++p == pe ) goto _test_eof422; case 422: switch( (*p) ) { - case 75: goto st423; - case 107: goto st423; + case 77: goto st423; + case 109: goto st423; } - goto tr1237; + goto tr1248; st423: if ( ++p == pe ) goto _test_eof423; @@ -54056,20 +55037,11 @@ case 423: case 69: goto st424; case 101: goto st424; } - goto tr1237; + goto tr1248; st424: if ( ++p == pe ) goto _test_eof424; case 424: - switch( (*p) ) { - case 89: goto st425; - case 121: goto st425; - } - goto tr1237; -st425: - if ( ++p == pe ) - goto _test_eof425; -case 425: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54098,11 +55070,38 @@ case 425: case 3594: goto tr1398; case 3643: goto tr1399; } - goto tr1237; + goto tr1248; +st425: + if ( ++p == pe ) + goto _test_eof425; +case 425: + switch( (*p) ) { + case 75: goto st426; + case 107: goto st426; + } + goto tr1248; st426: if ( ++p == pe ) goto _test_eof426; case 426: + switch( (*p) ) { + case 69: goto st427; + case 101: goto st427; + } + goto tr1248; +st427: + if ( ++p == pe ) + goto _test_eof427; +case 427: + switch( (*p) ) { + case 89: goto st428; + case 121: goto st428; + } + goto tr1248; +st428: + if ( ++p == pe ) + goto _test_eof428; +case 428: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54120,56 +55119,22 @@ case 426: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1400; - case 32: goto tr1400; - case 40: goto tr1401; - case 41: goto tr1402; - case 3082: goto tr1403; - case 3131: goto tr1404; - case 3338: goto tr1405; - case 3387: goto tr1405; - case 3594: goto tr1406; - case 3643: goto tr1407; + case 9: goto tr1403; + case 32: goto tr1403; + case 40: goto tr1404; + case 41: goto tr1405; + case 3082: goto tr1406; + case 3131: goto tr1407; + case 3338: goto tr1408; + case 3387: goto tr1408; + case 3594: goto tr1409; + case 3643: goto tr1410; } - goto tr1237; -st427: - if ( ++p == pe ) - goto _test_eof427; -case 427: - switch( (*p) ) { - case 85: goto st428; - case 117: goto st428; - } - goto tr1237; -st428: - if ( ++p == pe ) - goto _test_eof428; -case 428: - switch( (*p) ) { - case 73: goto st429; - case 105: goto st429; - } - goto tr1237; + goto tr1248; st429: if ( ++p == pe ) goto _test_eof429; case 429: - switch( (*p) ) { - case 52: goto st430; - case 54: goto st432; - } - goto tr1237; -st430: - if ( ++p == pe ) - goto _test_eof430; -case 430: - if ( (*p) == 56 ) - goto st431; - goto tr1237; -st431: - if ( ++p == pe ) - goto _test_eof431; -case 431: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54187,29 +55152,42 @@ case 431: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1413; - case 32: goto tr1413; - case 40: goto tr1414; - case 41: goto tr1415; - case 3082: goto tr1416; - case 3131: goto tr1417; - case 3338: goto tr1418; - case 3387: goto tr1418; - case 3594: goto tr1419; - case 3643: goto tr1420; + case 9: goto tr1411; + case 32: goto tr1411; + case 40: goto tr1412; + case 41: goto tr1413; + case 89: goto st430; + case 121: goto st430; + case 3082: goto tr1415; + case 3131: goto tr1416; + case 3338: goto tr1417; + case 3387: goto tr1417; + case 3594: goto tr1418; + case 3643: goto tr1419; + } + goto tr1248; +st430: + if ( ++p == pe ) + goto _test_eof430; +case 430: + switch( (*p) ) { + case 78: goto st431; + case 110: goto st431; + } + goto tr1248; +st431: + if ( ++p == pe ) + goto _test_eof431; +case 431: + switch( (*p) ) { + case 67: goto st432; + case 99: goto st432; } - goto tr1237; + goto tr1248; st432: if ( ++p == pe ) goto _test_eof432; case 432: - if ( (*p) == 52 ) - goto st433; - goto tr1237; -st433: - if ( ++p == pe ) - goto _test_eof433; -case 433: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54238,49 +55216,45 @@ case 433: case 3594: goto tr1428; case 3643: goto tr1429; } - goto tr1237; + goto tr1248; +st433: + if ( ++p == pe ) + goto _test_eof433; +case 433: + switch( (*p) ) { + case 85: goto st434; + case 117: goto st434; + } + goto tr1248; st434: if ( ++p == pe ) goto _test_eof434; case 434: switch( (*p) ) { case 73: goto st435; - case 84: goto st439; case 105: goto st435; - case 116: goto st439; } - goto tr1237; + goto tr1248; st435: if ( ++p == pe ) goto _test_eof435; case 435: switch( (*p) ) { - case 78: goto st436; - case 110: goto st436; + case 52: goto st436; + case 54: goto st438; } - goto tr1237; + goto tr1248; st436: if ( ++p == pe ) goto _test_eof436; case 436: - switch( (*p) ) { - case 70: goto st437; - case 102: goto st437; - } - goto tr1237; + if ( (*p) == 56 ) + goto st437; + goto tr1248; st437: if ( ++p == pe ) goto _test_eof437; case 437: - switch( (*p) ) { - case 79: goto st438; - case 111: goto st438; - } - goto tr1237; -st438: - if ( ++p == pe ) - goto _test_eof438; -case 438: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54309,38 +55283,89 @@ case 438: case 3594: goto tr1441; case 3643: goto tr1442; } - goto tr1237; + goto tr1248; +st438: + if ( ++p == pe ) + goto _test_eof438; +case 438: + if ( (*p) == 52 ) + goto st439; + goto tr1248; st439: if ( ++p == pe ) goto _test_eof439; case 439: - switch( (*p) ) { - case 84: goto st440; - case 116: goto st440; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1444; + case 32: goto tr1444; + case 40: goto tr1445; + case 41: goto tr1446; + case 3082: goto tr1447; + case 3131: goto tr1448; + case 3338: goto tr1449; + case 3387: goto tr1449; + case 3594: goto tr1450; + case 3643: goto tr1451; } - goto tr1237; + goto tr1248; st440: if ( ++p == pe ) goto _test_eof440; case 440: switch( (*p) ) { - case 80: goto st441; - case 112: goto st441; + case 73: goto st441; + case 84: goto st445; + case 105: goto st441; + case 116: goto st445; } - goto tr1237; + goto tr1248; st441: if ( ++p == pe ) goto _test_eof441; case 441: switch( (*p) ) { - case 83: goto st442; - case 115: goto st442; + case 78: goto st442; + case 110: goto st442; } - goto tr1237; + goto tr1248; st442: if ( ++p == pe ) goto _test_eof442; case 442: + switch( (*p) ) { + case 70: goto st443; + case 102: goto st443; + } + goto tr1248; +st443: + if ( ++p == pe ) + goto _test_eof443; +case 443: + switch( (*p) ) { + case 79: goto st444; + case 111: goto st444; + } + goto tr1248; +st444: + if ( ++p == pe ) + goto _test_eof444; +case 444: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54358,85 +55383,49 @@ case 442: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1446; - case 32: goto tr1446; - case 40: goto tr1447; - case 41: goto tr1448; - case 3082: goto tr1449; - case 3131: goto tr1450; - case 3338: goto tr1451; - case 3387: goto tr1451; - case 3594: goto tr1452; - case 3643: goto tr1453; + case 9: goto tr1457; + case 32: goto tr1457; + case 40: goto tr1458; + case 41: goto tr1459; + case 3082: goto tr1460; + case 3131: goto tr1461; + case 3338: goto tr1462; + case 3387: goto tr1462; + case 3594: goto tr1463; + case 3643: goto tr1464; } - goto tr1237; -st443: - if ( ++p == pe ) - goto _test_eof443; -case 443: - switch( (*p) ) { - case 80: goto st444; - case 112: goto st444; - } - goto tr1237; -st444: - if ( ++p == pe ) - goto _test_eof444; -case 444: - switch( (*p) ) { - case 83: goto st445; - case 115: goto st445; - } - goto tr1237; + goto tr1248; st445: if ( ++p == pe ) goto _test_eof445; case 445: switch( (*p) ) { - case 69: goto st446; - case 101: goto st446; + case 84: goto st446; + case 116: goto st446; } - goto tr1237; + goto tr1248; st446: if ( ++p == pe ) goto _test_eof446; case 446: switch( (*p) ) { - case 67: goto st447; - case 99: goto st447; + case 80: goto st447; + case 112: goto st447; } - goto tr1237; + goto tr1248; st447: if ( ++p == pe ) goto _test_eof447; case 447: switch( (*p) ) { - case 75: goto st448; - case 107: goto st448; + case 83: goto st448; + case 115: goto st448; } - goto tr1237; + goto tr1248; st448: if ( ++p == pe ) goto _test_eof448; case 448: - switch( (*p) ) { - case 69: goto st449; - case 101: goto st449; - } - goto tr1237; -st449: - if ( ++p == pe ) - goto _test_eof449; -case 449: - switch( (*p) ) { - case 89: goto st450; - case 121: goto st450; - } - goto tr1237; -st450: - if ( ++p == pe ) - goto _test_eof450; -case 450: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54454,75 +55443,85 @@ case 450: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1461; - case 32: goto tr1461; - case 40: goto tr1462; - case 41: goto tr1463; - case 3082: goto tr1464; - case 3131: goto tr1465; - case 3338: goto tr1466; - case 3387: goto tr1466; - case 3594: goto tr1467; - case 3643: goto tr1468; + case 9: goto tr1468; + case 32: goto tr1468; + case 40: goto tr1469; + case 41: goto tr1470; + case 3082: goto tr1471; + case 3131: goto tr1472; + case 3338: goto tr1473; + case 3387: goto tr1473; + case 3594: goto tr1474; + case 3643: goto tr1475; } - goto tr1237; + goto tr1248; +st449: + if ( ++p == pe ) + goto _test_eof449; +case 449: + switch( (*p) ) { + case 80: goto st450; + case 112: goto st450; + } + goto tr1248; +st450: + if ( ++p == pe ) + goto _test_eof450; +case 450: + switch( (*p) ) { + case 83: goto st451; + case 115: goto st451; + } + goto tr1248; st451: if ( ++p == pe ) goto _test_eof451; case 451: switch( (*p) ) { case 69: goto st452; - case 88: goto st454; case 101: goto st452; - case 120: goto st454; } - goto tr1237; + goto tr1248; st452: if ( ++p == pe ) goto _test_eof452; case 452: switch( (*p) ) { - case 89: goto st453; - case 121: goto st453; + case 67: goto st453; + case 99: goto st453; } - goto tr1237; + goto tr1248; st453: if ( ++p == pe ) goto _test_eof453; case 453: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1472; - case 32: goto tr1472; - case 40: goto tr1473; - case 41: goto tr1474; - case 3082: goto tr1475; - case 3131: goto tr1476; - case 3338: goto tr1477; - case 3387: goto tr1477; - case 3594: goto tr1478; - case 3643: goto tr1479; + switch( (*p) ) { + case 75: goto st454; + case 107: goto st454; } - goto tr1237; + goto tr1248; st454: if ( ++p == pe ) goto _test_eof454; case 454: + switch( (*p) ) { + case 69: goto st455; + case 101: goto st455; + } + goto tr1248; +st455: + if ( ++p == pe ) + goto _test_eof455; +case 455: + switch( (*p) ) { + case 89: goto st456; + case 121: goto st456; + } + goto tr1248; +st456: + if ( ++p == pe ) + goto _test_eof456; +case 456: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54540,42 +55539,42 @@ case 454: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1480; - case 32: goto tr1480; - case 40: goto tr1481; - case 41: goto tr1482; - case 3082: goto tr1483; - case 3131: goto tr1484; - case 3338: goto tr1485; - case 3387: goto tr1485; - case 3594: goto tr1486; - case 3643: goto tr1487; + case 9: goto tr1483; + case 32: goto tr1483; + case 40: goto tr1484; + case 41: goto tr1485; + case 3082: goto tr1486; + case 3131: goto tr1487; + case 3338: goto tr1488; + case 3387: goto tr1488; + case 3594: goto tr1489; + case 3643: goto tr1490; } - goto tr1237; -st455: + goto tr1248; +st457: if ( ++p == pe ) - goto _test_eof455; -case 455: + goto _test_eof457; +case 457: switch( (*p) ) { - case 51: goto st456; - case 54: goto st458; - case 79: goto st460; - case 80: goto st462; - case 111: goto st460; - case 112: goto st462; + case 69: goto st458; + case 88: goto st460; + case 101: goto st458; + case 120: goto st460; } - goto tr1237; -st456: + goto tr1248; +st458: if ( ++p == pe ) - goto _test_eof456; -case 456: - if ( (*p) == 50 ) - goto st457; - goto tr1237; -st457: + goto _test_eof458; +case 458: + switch( (*p) ) { + case 89: goto st459; + case 121: goto st459; + } + goto tr1248; +st459: if ( ++p == pe ) - goto _test_eof457; -case 457: + goto _test_eof459; +case 459: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54593,29 +55592,22 @@ case 457: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1493; - case 32: goto tr1493; - case 40: goto tr1494; - case 41: goto tr1495; - case 3082: goto tr1496; - case 3131: goto tr1497; - case 3338: goto tr1498; - case 3387: goto tr1498; - case 3594: goto tr1499; - case 3643: goto tr1500; + case 9: goto tr1494; + case 32: goto tr1494; + case 40: goto tr1495; + case 41: goto tr1496; + case 3082: goto tr1497; + case 3131: goto tr1498; + case 3338: goto tr1499; + case 3387: goto tr1499; + case 3594: goto tr1500; + case 3643: goto tr1501; } - goto tr1237; -st458: - if ( ++p == pe ) - goto _test_eof458; -case 458: - if ( (*p) == 52 ) - goto st459; - goto tr1237; -st459: + goto tr1248; +st460: if ( ++p == pe ) - goto _test_eof459; -case 459: + goto _test_eof460; +case 460: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54644,20 +55636,31 @@ case 459: case 3594: goto tr1508; case 3643: goto tr1509; } - goto tr1237; -st460: - if ( ++p == pe ) - goto _test_eof460; -case 460: - switch( (*p) ) { - case 67: goto st461; - case 99: goto st461; - } - goto tr1237; + goto tr1248; st461: if ( ++p == pe ) goto _test_eof461; case 461: + switch( (*p) ) { + case 51: goto st462; + case 54: goto st464; + case 79: goto st466; + case 80: goto st468; + case 111: goto st466; + case 112: goto st468; + } + goto tr1248; +st462: + if ( ++p == pe ) + goto _test_eof462; +case 462: + if ( (*p) == 50 ) + goto st463; + goto tr1248; +st463: + if ( ++p == pe ) + goto _test_eof463; +case 463: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54675,22 +55678,29 @@ case 461: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1511; - case 32: goto tr1511; - case 40: goto tr1512; - case 41: goto tr1513; - case 3082: goto tr1514; - case 3131: goto tr1515; - case 3338: goto tr1516; - case 3387: goto tr1516; - case 3594: goto tr1517; - case 3643: goto tr1518; + case 9: goto tr1515; + case 32: goto tr1515; + case 40: goto tr1516; + case 41: goto tr1517; + case 3082: goto tr1518; + case 3131: goto tr1519; + case 3338: goto tr1520; + case 3387: goto tr1520; + case 3594: goto tr1521; + case 3643: goto tr1522; } - goto tr1237; -st462: + goto tr1248; +st464: if ( ++p == pe ) - goto _test_eof462; -case 462: + goto _test_eof464; +case 464: + if ( (*p) == 52 ) + goto st465; + goto tr1248; +st465: + if ( ++p == pe ) + goto _test_eof465; +case 465: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54708,56 +55718,27 @@ case 462: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1519; - case 32: goto tr1519; - case 40: goto tr1520; - case 41: goto tr1521; - case 3082: goto tr1522; - case 3131: goto tr1523; - case 3338: goto tr1524; - case 3387: goto tr1524; - case 3594: goto tr1525; - case 3643: goto tr1526; - } - goto tr1237; -st463: - if ( ++p == pe ) - goto _test_eof463; -case 463: - switch( (*p) ) { - case 73: goto st464; - case 88: goto st468; - case 105: goto st464; - case 120: goto st468; - } - goto tr1237; -st464: - if ( ++p == pe ) - goto _test_eof464; -case 464: - switch( (*p) ) { - case 78: goto st465; - case 110: goto st465; - } - goto tr1237; -st465: - if ( ++p == pe ) - goto _test_eof465; -case 465: - switch( (*p) ) { - case 70: goto st466; - case 102: goto st466; + case 9: goto tr1524; + case 32: goto tr1524; + case 40: goto tr1525; + case 41: goto tr1526; + case 3082: goto tr1527; + case 3131: goto tr1528; + case 3338: goto tr1529; + case 3387: goto tr1529; + case 3594: goto tr1530; + case 3643: goto tr1531; } - goto tr1237; + goto tr1248; st466: if ( ++p == pe ) goto _test_eof466; case 466: switch( (*p) ) { - case 79: goto st467; - case 111: goto st467; + case 67: goto st467; + case 99: goto st467; } - goto tr1237; + goto tr1248; st467: if ( ++p == pe ) goto _test_eof467; @@ -54779,18 +55760,18 @@ case 467: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1532; - case 32: goto tr1532; - case 40: goto tr1533; - case 41: goto tr1534; - case 3082: goto tr1535; - case 3131: goto tr1536; - case 3338: goto tr1537; - case 3387: goto tr1537; - case 3594: goto tr1538; - case 3643: goto tr1539; + case 9: goto tr1533; + case 32: goto tr1533; + case 40: goto tr1534; + case 41: goto tr1535; + case 3082: goto tr1536; + case 3131: goto tr1537; + case 3338: goto tr1538; + case 3387: goto tr1538; + case 3594: goto tr1539; + case 3643: goto tr1540; } - goto tr1237; + goto tr1248; st468: if ( ++p == pe ) goto _test_eof468; @@ -54812,58 +55793,56 @@ case 468: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1540; - case 32: goto tr1540; - case 40: goto tr1541; - case 41: goto tr1542; - case 3082: goto tr1543; - case 3131: goto tr1544; - case 3338: goto tr1545; - case 3387: goto tr1545; - case 3594: goto tr1546; - case 3643: goto tr1547; + case 9: goto tr1541; + case 32: goto tr1541; + case 40: goto tr1542; + case 41: goto tr1543; + case 3082: goto tr1544; + case 3131: goto tr1545; + case 3338: goto tr1546; + case 3387: goto tr1546; + case 3594: goto tr1547; + case 3643: goto tr1548; } - goto tr1237; + goto tr1248; st469: if ( ++p == pe ) goto _test_eof469; case 469: switch( (*p) ) { - case 65: goto st470; - case 73: goto st474; - case 83: goto st476; - case 97: goto st470; - case 105: goto st474; - case 115: goto st476; + case 73: goto st470; + case 88: goto st474; + case 105: goto st470; + case 120: goto st474; } - goto tr1237; + goto tr1248; st470: if ( ++p == pe ) goto _test_eof470; case 470: switch( (*p) ) { - case 80: goto st471; - case 112: goto st471; + case 78: goto st471; + case 110: goto st471; } - goto tr1237; + goto tr1248; st471: if ( ++p == pe ) goto _test_eof471; case 471: switch( (*p) ) { - case 84: goto st472; - case 116: goto st472; + case 70: goto st472; + case 102: goto st472; } - goto tr1237; + goto tr1248; st472: if ( ++p == pe ) goto _test_eof472; case 472: switch( (*p) ) { - case 82: goto st473; - case 114: goto st473; + case 79: goto st473; + case 111: goto st473; } - goto tr1237; + goto tr1248; st473: if ( ++p == pe ) goto _test_eof473; @@ -54896,20 +55875,11 @@ case 473: case 3594: goto tr1560; case 3643: goto tr1561; } - goto tr1237; + goto tr1248; st474: if ( ++p == pe ) goto _test_eof474; case 474: - switch( (*p) ) { - case 68: goto st475; - case 100: goto st475; - } - goto tr1237; -st475: - if ( ++p == pe ) - goto _test_eof475; -case 475: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54927,22 +55897,62 @@ case 475: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1563; - case 32: goto tr1563; - case 40: goto tr1564; - case 41: goto tr1565; - case 3082: goto tr1566; - case 3131: goto tr1567; - case 3338: goto tr1568; - case 3387: goto tr1568; - case 3594: goto tr1569; - case 3643: goto tr1570; + case 9: goto tr1562; + case 32: goto tr1562; + case 40: goto tr1563; + case 41: goto tr1564; + case 3082: goto tr1565; + case 3131: goto tr1566; + case 3338: goto tr1567; + case 3387: goto tr1567; + case 3594: goto tr1568; + case 3643: goto tr1569; + } + goto tr1248; +st475: + if ( ++p == pe ) + goto _test_eof475; +case 475: + switch( (*p) ) { + case 65: goto st476; + case 73: goto st480; + case 83: goto st482; + case 97: goto st476; + case 105: goto st480; + case 115: goto st482; } - goto tr1237; + goto tr1248; st476: if ( ++p == pe ) goto _test_eof476; case 476: + switch( (*p) ) { + case 80: goto st477; + case 112: goto st477; + } + goto tr1248; +st477: + if ( ++p == pe ) + goto _test_eof477; +case 477: + switch( (*p) ) { + case 84: goto st478; + case 116: goto st478; + } + goto tr1248; +st478: + if ( ++p == pe ) + goto _test_eof478; +case 478: + switch( (*p) ) { + case 82: goto st479; + case 114: goto st479; + } + goto tr1248; +st479: + if ( ++p == pe ) + goto _test_eof479; +case 479: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -54960,33 +55970,31 @@ case 476: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1571; - case 32: goto tr1571; - case 40: goto tr1572; - case 41: goto tr1573; - case 69: goto st477; - case 101: goto st477; - case 3082: goto tr1575; - case 3131: goto tr1576; - case 3338: goto tr1577; - case 3387: goto tr1577; - case 3594: goto tr1578; - case 3643: goto tr1579; - } - goto tr1237; -st477: + case 9: goto tr1576; + case 32: goto tr1576; + case 40: goto tr1577; + case 41: goto tr1578; + case 3082: goto tr1579; + case 3131: goto tr1580; + case 3338: goto tr1581; + case 3387: goto tr1581; + case 3594: goto tr1582; + case 3643: goto tr1583; + } + goto tr1248; +st480: if ( ++p == pe ) - goto _test_eof477; -case 477: + goto _test_eof480; +case 480: switch( (*p) ) { - case 67: goto st478; - case 99: goto st478; + case 68: goto st481; + case 100: goto st481; } - goto tr1237; -st478: + goto tr1248; +st481: if ( ++p == pe ) - goto _test_eof478; -case 478: + goto _test_eof481; +case 481: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -55004,23 +56012,22 @@ case 478: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1581; - case 32: goto tr1581; - case 40: goto tr1582; - case 41: goto tr1583; - case 51: goto st479; - case 3082: goto tr1585; - case 3131: goto tr1586; - case 3338: goto tr1587; - case 3387: goto tr1587; - case 3594: goto tr1588; - case 3643: goto tr1589; + case 9: goto tr1585; + case 32: goto tr1585; + case 40: goto tr1586; + case 41: goto tr1587; + case 3082: goto tr1588; + case 3131: goto tr1589; + case 3338: goto tr1590; + case 3387: goto tr1590; + case 3594: goto tr1591; + case 3643: goto tr1592; } - goto tr1237; -st479: + goto tr1248; +st482: if ( ++p == pe ) - goto _test_eof479; -case 479: + goto _test_eof482; +case 482: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -55038,56 +56045,29 @@ case 479: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1590; - case 32: goto tr1590; - case 40: goto tr1591; - case 41: goto tr1592; - case 80: goto st480; - case 112: goto st480; - case 3082: goto tr1594; - case 3131: goto tr1595; - case 3338: goto tr1596; - case 3387: goto tr1596; - case 3594: goto tr1597; - case 3643: goto tr1598; - } - goto tr1237; -st480: - if ( ++p == pe ) - goto _test_eof480; -case 480: - switch( (*p) ) { - case 65: goto st481; - case 97: goto st481; - } - goto tr1237; -st481: - if ( ++p == pe ) - goto _test_eof481; -case 481: - switch( (*p) ) { - case 82: goto st482; - case 114: goto st482; - } - goto tr1237; -st482: - if ( ++p == pe ) - goto _test_eof482; -case 482: - switch( (*p) ) { - case 65: goto st483; - case 97: goto st483; - } - goto tr1237; + case 9: goto tr1593; + case 32: goto tr1593; + case 40: goto tr1594; + case 41: goto tr1595; + case 69: goto st483; + case 101: goto st483; + case 3082: goto tr1597; + case 3131: goto tr1598; + case 3338: goto tr1599; + case 3387: goto tr1599; + case 3594: goto tr1600; + case 3643: goto tr1601; + } + goto tr1248; st483: if ( ++p == pe ) goto _test_eof483; case 483: switch( (*p) ) { - case 77: goto st484; - case 109: goto st484; + case 67: goto st484; + case 99: goto st484; } - goto tr1237; + goto tr1248; st484: if ( ++p == pe ) goto _test_eof484; @@ -55113,77 +56093,128 @@ case 484: case 32: goto tr1603; case 40: goto tr1604; case 41: goto tr1605; - case 3082: goto tr1606; - case 3131: goto tr1607; - case 3338: goto tr1608; - case 3387: goto tr1608; - case 3594: goto tr1609; - case 3643: goto tr1610; - } - goto tr1237; + case 51: goto st485; + case 3082: goto tr1607; + case 3131: goto tr1608; + case 3338: goto tr1609; + case 3387: goto tr1609; + case 3594: goto tr1610; + case 3643: goto tr1611; + } + goto tr1248; st485: if ( ++p == pe ) goto _test_eof485; case 485: - switch( (*p) ) { + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1612; + case 32: goto tr1612; + case 40: goto tr1613; + case 41: goto tr1614; case 80: goto st486; case 112: goto st486; - } - goto tr1237; + case 3082: goto tr1616; + case 3131: goto tr1617; + case 3338: goto tr1618; + case 3387: goto tr1618; + case 3594: goto tr1619; + case 3643: goto tr1620; + } + goto tr1248; st486: if ( ++p == pe ) goto _test_eof486; case 486: switch( (*p) ) { - case 69: goto st487; - case 101: goto st487; + case 65: goto st487; + case 97: goto st487; } - goto tr1237; + goto tr1248; st487: if ( ++p == pe ) goto _test_eof487; case 487: switch( (*p) ) { - case 78: goto st488; - case 110: goto st488; + case 82: goto st488; + case 114: goto st488; } - goto tr1237; + goto tr1248; st488: if ( ++p == pe ) goto _test_eof488; case 488: switch( (*p) ) { - case 80: goto st489; - case 112: goto st489; + case 65: goto st489; + case 97: goto st489; } - goto tr1237; + goto tr1248; st489: if ( ++p == pe ) goto _test_eof489; case 489: switch( (*p) ) { - case 71: goto st490; - case 103: goto st490; + case 77: goto st490; + case 109: goto st490; } - goto tr1237; + goto tr1248; st490: if ( ++p == pe ) goto _test_eof490; case 490: - switch( (*p) ) { - case 80: goto st491; - case 112: goto st491; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1625; + case 32: goto tr1625; + case 40: goto tr1626; + case 41: goto tr1627; + case 3082: goto tr1628; + case 3131: goto tr1629; + case 3338: goto tr1630; + case 3387: goto tr1630; + case 3594: goto tr1631; + case 3643: goto tr1632; } - goto tr1237; + goto tr1248; st491: if ( ++p == pe ) goto _test_eof491; case 491: switch( (*p) ) { - case 75: goto st492; - case 107: goto st492; + case 80: goto st492; + case 112: goto st492; } - goto tr1237; + goto tr1248; st492: if ( ++p == pe ) goto _test_eof492; @@ -55192,117 +56223,74 @@ case 492: case 69: goto st493; case 101: goto st493; } - goto tr1237; + goto tr1248; st493: if ( ++p == pe ) goto _test_eof493; case 493: switch( (*p) ) { - case 89: goto st494; - case 121: goto st494; + case 78: goto st494; + case 110: goto st494; } - goto tr1237; + goto tr1248; st494: if ( ++p == pe ) goto _test_eof494; case 494: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1620; - case 32: goto tr1620; - case 40: goto tr1621; - case 41: goto tr1622; - case 3082: goto tr1623; - case 3131: goto tr1624; - case 3338: goto tr1625; - case 3387: goto tr1625; - case 3594: goto tr1626; - case 3643: goto tr1627; + switch( (*p) ) { + case 80: goto st495; + case 112: goto st495; } - goto tr1237; + goto tr1248; st495: if ( ++p == pe ) goto _test_eof495; case 495: switch( (*p) ) { - case 84: goto st496; - case 116: goto st496; + case 71: goto st496; + case 103: goto st496; } - goto tr1237; + goto tr1248; st496: if ( ++p == pe ) goto _test_eof496; case 496: switch( (*p) ) { - case 82: goto st497; - case 114: goto st497; + case 80: goto st497; + case 112: goto st497; } - goto tr1237; + goto tr1248; st497: if ( ++p == pe ) goto _test_eof497; case 497: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1630; - case 32: goto tr1630; - case 40: goto tr1631; - case 41: goto tr1632; - case 3082: goto tr1633; - case 3131: goto tr1634; - case 3338: goto tr1635; - case 3387: goto tr1635; - case 3594: goto tr1636; - case 3643: goto tr1637; + switch( (*p) ) { + case 75: goto st498; + case 107: goto st498; } - goto tr1237; + goto tr1248; st498: if ( ++p == pe ) goto _test_eof498; case 498: switch( (*p) ) { - case 80: goto st499; - case 82: goto st500; - case 84: goto st504; - case 112: goto st499; - case 114: goto st500; - case 116: goto st504; + case 69: goto st499; + case 101: goto st499; } - goto tr1237; + goto tr1248; st499: if ( ++p == pe ) goto _test_eof499; case 499: + switch( (*p) ) { + case 89: goto st500; + case 121: goto st500; + } + goto tr1248; +st500: + if ( ++p == pe ) + goto _test_eof500; +case 500: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -55320,45 +56308,36 @@ case 499: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1641; - case 32: goto tr1641; - case 40: goto tr1642; - case 41: goto tr1643; - case 3082: goto tr1644; - case 3131: goto tr1645; - case 3338: goto tr1646; - case 3387: goto tr1646; - case 3594: goto tr1647; - case 3643: goto tr1648; - } - goto tr1237; -st500: - if ( ++p == pe ) - goto _test_eof500; -case 500: - switch( (*p) ) { - case 83: goto st501; - case 115: goto st501; + case 9: goto tr1642; + case 32: goto tr1642; + case 40: goto tr1643; + case 41: goto tr1644; + case 3082: goto tr1645; + case 3131: goto tr1646; + case 3338: goto tr1647; + case 3387: goto tr1647; + case 3594: goto tr1648; + case 3643: goto tr1649; } - goto tr1237; + goto tr1248; st501: if ( ++p == pe ) goto _test_eof501; case 501: switch( (*p) ) { - case 73: goto st502; - case 105: goto st502; + case 84: goto st502; + case 116: goto st502; } - goto tr1237; + goto tr1248; st502: if ( ++p == pe ) goto _test_eof502; case 502: switch( (*p) ) { - case 71: goto st503; - case 103: goto st503; + case 82: goto st503; + case 114: goto st503; } - goto tr1237; + goto tr1248; st503: if ( ++p == pe ) goto _test_eof503; @@ -55391,11 +56370,24 @@ case 503: case 3594: goto tr1658; case 3643: goto tr1659; } - goto tr1237; + goto tr1248; st504: if ( ++p == pe ) goto _test_eof504; case 504: + switch( (*p) ) { + case 80: goto st505; + case 82: goto st506; + case 84: goto st510; + case 112: goto st505; + case 114: goto st506; + case 116: goto st510; + } + goto tr1248; +st505: + if ( ++p == pe ) + goto _test_eof505; +case 505: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -55413,77 +56405,49 @@ case 504: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1660; - case 32: goto tr1660; - case 40: goto tr1661; - case 41: goto tr1662; - case 3082: goto tr1663; - case 3131: goto tr1664; - case 3338: goto tr1665; - case 3387: goto tr1665; - case 3594: goto tr1666; - case 3643: goto tr1667; + case 9: goto tr1663; + case 32: goto tr1663; + case 40: goto tr1664; + case 41: goto tr1665; + case 3082: goto tr1666; + case 3131: goto tr1667; + case 3338: goto tr1668; + case 3387: goto tr1668; + case 3594: goto tr1669; + case 3643: goto tr1670; } - goto tr1237; -st505: - if ( ++p == pe ) - goto _test_eof505; -case 505: - switch( (*p) ) { - case 77: goto st506; - case 79: goto st511; - case 80: goto st513; - case 82: goto st515; - case 83: goto st517; - case 86: goto st521; - case 109: goto st506; - case 111: goto st511; - case 112: goto st513; - case 114: goto st515; - case 115: goto st517; - case 118: goto st521; - } - goto tr1237; + goto tr1248; st506: if ( ++p == pe ) goto _test_eof506; case 506: switch( (*p) ) { - case 73: goto st507; - case 105: goto st507; + case 83: goto st507; + case 115: goto st507; } - goto tr1237; + goto tr1248; st507: if ( ++p == pe ) goto _test_eof507; case 507: switch( (*p) ) { - case 77: goto st508; - case 109: goto st508; + case 73: goto st508; + case 105: goto st508; } - goto tr1237; + goto tr1248; st508: if ( ++p == pe ) goto _test_eof508; case 508: switch( (*p) ) { - case 69: goto st509; - case 101: goto st509; + case 71: goto st509; + case 103: goto st509; } - goto tr1237; + goto tr1248; st509: if ( ++p == pe ) goto _test_eof509; case 509: - switch( (*p) ) { - case 65: goto st510; - case 97: goto st510; - } - goto tr1237; -st510: - if ( ++p == pe ) - goto _test_eof510; -case 510: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -55501,31 +56465,22 @@ case 510: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1678; - case 32: goto tr1678; - case 40: goto tr1679; - case 41: goto tr1680; - case 3082: goto tr1681; - case 3131: goto tr1682; - case 3338: goto tr1683; - case 3387: goto tr1683; - case 3594: goto tr1684; - case 3643: goto tr1685; + case 9: goto tr1674; + case 32: goto tr1674; + case 40: goto tr1675; + case 41: goto tr1676; + case 3082: goto tr1677; + case 3131: goto tr1678; + case 3338: goto tr1679; + case 3387: goto tr1679; + case 3594: goto tr1680; + case 3643: goto tr1681; } - goto tr1237; -st511: - if ( ++p == pe ) - goto _test_eof511; -case 511: - switch( (*p) ) { - case 65: goto st512; - case 97: goto st512; - } - goto tr1237; -st512: + goto tr1248; +st510: if ( ++p == pe ) - goto _test_eof512; -case 512: + goto _test_eof510; +case 510: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -55543,69 +56498,73 @@ case 512: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1687; - case 32: goto tr1687; - case 40: goto tr1688; - case 41: goto tr1689; - case 3082: goto tr1690; - case 3131: goto tr1691; - case 3338: goto tr1692; - case 3387: goto tr1692; - case 3594: goto tr1693; - case 3643: goto tr1694; + case 9: goto tr1682; + case 32: goto tr1682; + case 40: goto tr1683; + case 41: goto tr1684; + case 3082: goto tr1685; + case 3131: goto tr1686; + case 3338: goto tr1687; + case 3387: goto tr1687; + case 3594: goto tr1688; + case 3643: goto tr1689; + } + goto tr1248; +st511: + if ( ++p == pe ) + goto _test_eof511; +case 511: + switch( (*p) ) { + case 77: goto st512; + case 79: goto st517; + case 80: goto st519; + case 82: goto st521; + case 83: goto st523; + case 86: goto st527; + case 109: goto st512; + case 111: goto st517; + case 112: goto st519; + case 114: goto st521; + case 115: goto st523; + case 118: goto st527; + } + goto tr1248; +st512: + if ( ++p == pe ) + goto _test_eof512; +case 512: + switch( (*p) ) { + case 73: goto st513; + case 105: goto st513; } - goto tr1237; + goto tr1248; st513: if ( ++p == pe ) goto _test_eof513; case 513: switch( (*p) ) { - case 70: goto st514; - case 102: goto st514; + case 77: goto st514; + case 109: goto st514; } - goto tr1237; + goto tr1248; st514: if ( ++p == pe ) goto _test_eof514; case 514: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1696; - case 32: goto tr1696; - case 40: goto tr1697; - case 41: goto tr1698; - case 3082: goto tr1699; - case 3131: goto tr1700; - case 3338: goto tr1701; - case 3387: goto tr1701; - case 3594: goto tr1702; - case 3643: goto tr1703; + switch( (*p) ) { + case 69: goto st515; + case 101: goto st515; } - goto tr1237; + goto tr1248; st515: if ( ++p == pe ) goto _test_eof515; case 515: switch( (*p) ) { - case 86: goto st516; - case 118: goto st516; + case 65: goto st516; + case 97: goto st516; } - goto tr1237; + goto tr1248; st516: if ( ++p == pe ) goto _test_eof516; @@ -55627,45 +56586,69 @@ case 516: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1705; - case 32: goto tr1705; - case 40: goto tr1706; - case 41: goto tr1707; - case 3082: goto tr1708; - case 3131: goto tr1709; - case 3338: goto tr1710; - case 3387: goto tr1710; - case 3594: goto tr1711; - case 3643: goto tr1712; + case 9: goto tr1700; + case 32: goto tr1700; + case 40: goto tr1701; + case 41: goto tr1702; + case 3082: goto tr1703; + case 3131: goto tr1704; + case 3338: goto tr1705; + case 3387: goto tr1705; + case 3594: goto tr1706; + case 3643: goto tr1707; } - goto tr1237; + goto tr1248; st517: if ( ++p == pe ) goto _test_eof517; case 517: switch( (*p) ) { - case 72: goto st518; - case 104: goto st518; + case 65: goto st518; + case 97: goto st518; } - goto tr1237; + goto tr1248; st518: if ( ++p == pe ) goto _test_eof518; case 518: - switch( (*p) ) { - case 70: goto st519; - case 102: goto st519; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr1237; + switch( _widec ) { + case 9: goto tr1709; + case 32: goto tr1709; + case 40: goto tr1710; + case 41: goto tr1711; + case 3082: goto tr1712; + case 3131: goto tr1713; + case 3338: goto tr1714; + case 3387: goto tr1714; + case 3594: goto tr1715; + case 3643: goto tr1716; + } + goto tr1248; st519: if ( ++p == pe ) goto _test_eof519; case 519: switch( (*p) ) { - case 80: goto st520; - case 112: goto st520; + case 70: goto st520; + case 102: goto st520; } - goto tr1237; + goto tr1248; st520: if ( ++p == pe ) goto _test_eof520; @@ -55687,40 +56670,31 @@ case 520: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1716; - case 32: goto tr1716; - case 40: goto tr1717; - case 41: goto tr1718; - case 3082: goto tr1719; - case 3131: goto tr1720; - case 3338: goto tr1721; - case 3387: goto tr1721; - case 3594: goto tr1722; - case 3643: goto tr1723; + case 9: goto tr1718; + case 32: goto tr1718; + case 40: goto tr1719; + case 41: goto tr1720; + case 3082: goto tr1721; + case 3131: goto tr1722; + case 3338: goto tr1723; + case 3387: goto tr1723; + case 3594: goto tr1724; + case 3643: goto tr1725; } - goto tr1237; + goto tr1248; st521: if ( ++p == pe ) goto _test_eof521; case 521: switch( (*p) ) { - case 67: goto st522; - case 99: goto st522; + case 86: goto st522; + case 118: goto st522; } - goto tr1237; + goto tr1248; st522: if ( ++p == pe ) goto _test_eof522; case 522: - switch( (*p) ) { - case 66: goto st523; - case 98: goto st523; - } - goto tr1237; -st523: - if ( ++p == pe ) - goto _test_eof523; -case 523: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -55738,53 +56712,49 @@ case 523: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1726; - case 32: goto tr1726; - case 40: goto tr1727; - case 41: goto tr1728; - case 3082: goto tr1729; - case 3131: goto tr1730; - case 3338: goto tr1731; - case 3387: goto tr1731; - case 3594: goto tr1732; - case 3643: goto tr1733; + case 9: goto tr1727; + case 32: goto tr1727; + case 40: goto tr1728; + case 41: goto tr1729; + case 3082: goto tr1730; + case 3131: goto tr1731; + case 3338: goto tr1732; + case 3387: goto tr1732; + case 3594: goto tr1733; + case 3643: goto tr1734; + } + goto tr1248; +st523: + if ( ++p == pe ) + goto _test_eof523; +case 523: + switch( (*p) ) { + case 72: goto st524; + case 104: goto st524; } - goto tr1237; + goto tr1248; st524: if ( ++p == pe ) goto _test_eof524; case 524: switch( (*p) ) { - case 76: goto st525; - case 88: goto st528; - case 89: goto st530; - case 108: goto st525; - case 120: goto st528; - case 121: goto st530; + case 70: goto st525; + case 102: goto st525; } - goto tr1237; + goto tr1248; st525: if ( ++p == pe ) goto _test_eof525; case 525: switch( (*p) ) { - case 83: goto st526; - case 115: goto st526; + case 80: goto st526; + case 112: goto st526; } - goto tr1237; + goto tr1248; st526: if ( ++p == pe ) goto _test_eof526; case 526: - switch( (*p) ) { - case 65: goto st527; - case 97: goto st527; - } - goto tr1237; -st527: - if ( ++p == pe ) - goto _test_eof527; -case 527: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -55802,27 +56772,36 @@ case 527: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1739; - case 32: goto tr1739; - case 40: goto tr1740; - case 41: goto tr1741; - case 3082: goto tr1742; - case 3131: goto tr1743; - case 3338: goto tr1744; - case 3387: goto tr1744; - case 3594: goto tr1745; - case 3643: goto tr1746; + case 9: goto tr1738; + case 32: goto tr1738; + case 40: goto tr1739; + case 41: goto tr1740; + case 3082: goto tr1741; + case 3131: goto tr1742; + case 3338: goto tr1743; + case 3387: goto tr1743; + case 3594: goto tr1744; + case 3643: goto tr1745; } - goto tr1237; + goto tr1248; +st527: + if ( ++p == pe ) + goto _test_eof527; +case 527: + switch( (*p) ) { + case 67: goto st528; + case 99: goto st528; + } + goto tr1248; st528: if ( ++p == pe ) goto _test_eof528; case 528: switch( (*p) ) { - case 84: goto st529; - case 116: goto st529; + case 66: goto st529; + case 98: goto st529; } - goto tr1237; + goto tr1248; st529: if ( ++p == pe ) goto _test_eof529; @@ -55855,67 +56834,38 @@ case 529: case 3594: goto tr1754; case 3643: goto tr1755; } - goto tr1237; + goto tr1248; st530: if ( ++p == pe ) goto _test_eof530; case 530: switch( (*p) ) { - case 80: goto st531; - case 112: goto st531; + case 76: goto st531; + case 88: goto st534; + case 89: goto st536; + case 108: goto st531; + case 120: goto st534; + case 121: goto st536; } - goto tr1237; + goto tr1248; st531: if ( ++p == pe ) goto _test_eof531; case 531: switch( (*p) ) { - case 69: goto st532; - case 101: goto st532; + case 83: goto st532; + case 115: goto st532; } - goto tr1237; + goto tr1248; st532: if ( ++p == pe ) goto _test_eof532; case 532: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1758; - goto tr1237; -tr1758: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} - } - } - goto st533; -tr1762: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} - } + switch( (*p) ) { + case 65: goto st533; + case 97: goto st533; } - goto st533; + goto tr1248; st533: if ( ++p == pe ) goto _test_eof533; @@ -55937,42 +56887,31 @@ case 533: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1759; - case 32: goto tr1759; - case 40: goto tr1760; - case 41: goto tr1761; - case 3082: goto tr1763; - case 3131: goto tr1764; - case 3338: goto tr1765; - case 3387: goto tr1765; - case 3594: goto tr1766; - case 3643: goto tr1767; + case 9: goto tr1761; + case 32: goto tr1761; + case 40: goto tr1762; + case 41: goto tr1763; + case 3082: goto tr1764; + case 3131: goto tr1765; + case 3338: goto tr1766; + case 3387: goto tr1766; + case 3594: goto tr1767; + case 3643: goto tr1768; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr1762; - goto tr1237; + goto tr1248; st534: if ( ++p == pe ) goto _test_eof534; case 534: switch( (*p) ) { - case 82: goto st535; - case 114: goto st535; + case 84: goto st535; + case 116: goto st535; } - goto tr1237; + goto tr1248; st535: if ( ++p == pe ) goto _test_eof535; case 535: - switch( (*p) ) { - case 73: goto st536; - case 105: goto st536; - } - goto tr1237; -st536: - if ( ++p == pe ) - goto _test_eof536; -case 536: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56001,52 +56940,120 @@ case 536: case 3594: goto tr1776; case 3643: goto tr1777; } - goto tr1237; + goto tr1248; +st536: + if ( ++p == pe ) + goto _test_eof536; +case 536: + switch( (*p) ) { + case 80: goto st537; + case 112: goto st537; + } + goto tr1248; st537: if ( ++p == pe ) goto _test_eof537; case 537: switch( (*p) ) { - case 65: goto st538; - case 97: goto st538; + case 69: goto st538; + case 101: goto st538; } - goto tr1237; + goto tr1248; st538: if ( ++p == pe ) goto _test_eof538; case 538: - switch( (*p) ) { - case 76: goto st539; - case 108: goto st539; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr1780; + goto tr1248; +tr1780: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st539; +tr1784: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } - goto tr1237; + goto st539; st539: if ( ++p == pe ) goto _test_eof539; case 539: - switch( (*p) ) { - case 76: goto st540; - case 108: goto st540; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1781; + case 32: goto tr1781; + case 40: goto tr1782; + case 41: goto tr1783; + case 3082: goto tr1785; + case 3131: goto tr1786; + case 3338: goto tr1787; + case 3387: goto tr1787; + case 3594: goto tr1788; + case 3643: goto tr1789; } - goto tr1237; + if ( 48 <= _widec && _widec <= 57 ) + goto tr1784; + goto tr1248; st540: if ( ++p == pe ) goto _test_eof540; case 540: switch( (*p) ) { - case 69: goto st541; - case 101: goto st541; + case 82: goto st541; + case 114: goto st541; } - goto tr1237; + goto tr1248; st541: if ( ++p == pe ) goto _test_eof541; case 541: switch( (*p) ) { - case 84: goto st542; - case 116: goto st542; + case 73: goto st542; + case 105: goto st542; } - goto tr1237; + goto tr1248; st542: if ( ++p == pe ) goto _test_eof542; @@ -56068,63 +57075,63 @@ case 542: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1783; - case 32: goto tr1783; - case 40: goto tr1784; - case 41: goto tr1785; - case 3082: goto tr1786; - case 3131: goto tr1787; - case 3338: goto tr1788; - case 3387: goto tr1788; - case 3594: goto tr1789; - case 3643: goto tr1790; + case 9: goto tr1792; + case 32: goto tr1792; + case 40: goto tr1793; + case 41: goto tr1794; + case 3082: goto tr1795; + case 3131: goto tr1796; + case 3338: goto tr1797; + case 3387: goto tr1797; + case 3594: goto tr1798; + case 3643: goto tr1799; } - goto tr1237; + goto tr1248; st543: if ( ++p == pe ) goto _test_eof543; case 543: switch( (*p) ) { - case 79: goto st544; - case 111: goto st544; + case 65: goto st544; + case 97: goto st544; } - goto tr1237; + goto tr1248; st544: if ( ++p == pe ) goto _test_eof544; case 544: switch( (*p) ) { - case 78: goto st545; - case 110: goto st545; + case 76: goto st545; + case 108: goto st545; } - goto tr1237; + goto tr1248; st545: if ( ++p == pe ) goto _test_eof545; case 545: switch( (*p) ) { - case 69: goto st546; - case 101: goto st546; + case 76: goto st546; + case 108: goto st546; } - goto tr1237; + goto tr1248; st546: if ( ++p == pe ) goto _test_eof546; case 546: switch( (*p) ) { - case 77: goto st547; - case 109: goto st547; + case 69: goto st547; + case 101: goto st547; } - goto tr1237; + goto tr1248; st547: if ( ++p == pe ) goto _test_eof547; case 547: switch( (*p) ) { - case 68: goto st548; - case 100: goto st548; + case 84: goto st548; + case 116: goto st548; } - goto tr1237; + goto tr1248; st548: if ( ++p == pe ) goto _test_eof548; @@ -56146,49 +57153,67 @@ case 548: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1796; - case 32: goto tr1796; - case 40: goto tr1797; - case 41: goto tr1798; - case 3082: goto tr1799; - case 3131: goto tr1800; - case 3338: goto tr1801; - case 3387: goto tr1801; - case 3594: goto tr1802; - case 3643: goto tr1803; + case 9: goto tr1805; + case 32: goto tr1805; + case 40: goto tr1806; + case 41: goto tr1807; + case 3082: goto tr1808; + case 3131: goto tr1809; + case 3338: goto tr1810; + case 3387: goto tr1810; + case 3594: goto tr1811; + case 3643: goto tr1812; } - goto tr1237; + goto tr1248; st549: if ( ++p == pe ) goto _test_eof549; case 549: switch( (*p) ) { - case 83: goto st550; - case 115: goto st550; + case 79: goto st550; + case 111: goto st550; } - goto tr1237; + goto tr1248; st550: if ( ++p == pe ) goto _test_eof550; case 550: switch( (*p) ) { - case 68: goto st551; - case 100: goto st551; + case 78: goto st551; + case 110: goto st551; } - goto tr1237; + goto tr1248; st551: if ( ++p == pe ) goto _test_eof551; case 551: switch( (*p) ) { - case 66: goto st552; - case 98: goto st552; + case 69: goto st552; + case 101: goto st552; } - goto tr1237; + goto tr1248; st552: if ( ++p == pe ) goto _test_eof552; case 552: + switch( (*p) ) { + case 77: goto st553; + case 109: goto st553; + } + goto tr1248; +st553: + if ( ++p == pe ) + goto _test_eof553; +case 553: + switch( (*p) ) { + case 68: goto st554; + case 100: goto st554; + } + goto tr1248; +st554: + if ( ++p == pe ) + goto _test_eof554; +case 554: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56206,31 +57231,49 @@ case 552: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1807; - case 32: goto tr1807; - case 40: goto tr1808; - case 41: goto tr1809; - case 3082: goto tr1810; - case 3131: goto tr1811; - case 3338: goto tr1812; - case 3387: goto tr1812; - case 3594: goto tr1813; - case 3643: goto tr1814; + case 9: goto tr1818; + case 32: goto tr1818; + case 40: goto tr1819; + case 41: goto tr1820; + case 3082: goto tr1821; + case 3131: goto tr1822; + case 3338: goto tr1823; + case 3387: goto tr1823; + case 3594: goto tr1824; + case 3643: goto tr1825; } - goto tr1237; -st553: + goto tr1248; +st555: if ( ++p == pe ) - goto _test_eof553; -case 553: + goto _test_eof555; +case 555: switch( (*p) ) { - case 76: goto st554; - case 108: goto st554; + case 83: goto st556; + case 115: goto st556; } - goto tr1237; -st554: + goto tr1248; +st556: if ( ++p == pe ) - goto _test_eof554; -case 554: + goto _test_eof556; +case 556: + switch( (*p) ) { + case 68: goto st557; + case 100: goto st557; + } + goto tr1248; +st557: + if ( ++p == pe ) + goto _test_eof557; +case 557: + switch( (*p) ) { + case 66: goto st558; + case 98: goto st558; + } + goto tr1248; +st558: + if ( ++p == pe ) + goto _test_eof558; +case 558: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56248,22 +57291,64 @@ case 554: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1816; - case 32: goto tr1816; - case 40: goto tr1817; - case 41: goto tr1818; - case 3082: goto tr1819; - case 3131: goto tr1820; - case 3338: goto tr1821; - case 3387: goto tr1821; - case 3594: goto tr1822; - case 3643: goto tr1823; + case 9: goto tr1829; + case 32: goto tr1829; + case 40: goto tr1830; + case 41: goto tr1831; + case 3082: goto tr1832; + case 3131: goto tr1833; + case 3338: goto tr1834; + case 3387: goto tr1834; + case 3594: goto tr1835; + case 3643: goto tr1836; } - goto tr1237; -st555: + goto tr1248; +st559: if ( ++p == pe ) - goto _test_eof555; -case 555: + goto _test_eof559; +case 559: + switch( (*p) ) { + case 76: goto st560; + case 108: goto st560; + } + goto tr1248; +st560: + if ( ++p == pe ) + goto _test_eof560; +case 560: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1838; + case 32: goto tr1838; + case 40: goto tr1839; + case 41: goto tr1840; + case 3082: goto tr1841; + case 3131: goto tr1842; + case 3338: goto tr1843; + case 3387: goto tr1843; + case 3594: goto tr1844; + case 3643: goto tr1845; + } + goto tr1248; +st561: + if ( ++p == pe ) + goto _test_eof561; +case 561: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56277,38 +57362,38 @@ case 555: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st556; - case 32: goto st556; - case 40: goto tr1826; - case 41: goto tr1827; - case 2058: goto tr1828; - case 2107: goto tr1829; + case 9: goto st562; + case 32: goto st562; + case 40: goto tr1848; + case 41: goto tr1849; + case 2058: goto tr1850; + case 2107: goto tr1851; } - goto tr1824; -tr1826: + goto tr1846; +tr1848: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st556; -tr1827: + goto st562; +tr1849: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st556; -tr1828: + goto st562; +tr1850: { s->line_counter++; } - goto st556; -tr1859: + goto st562; +tr1881: { s->buffer[s->buffer_length++] = 0; @@ -56318,18 +57403,18 @@ tr1859: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 556; goto _out;} + {p++; cs = 562; goto _out;} } } } { s->line_counter++; } - goto st556; -st556: + goto st562; +st562: if ( ++p == pe ) - goto _test_eof556; -case 556: + goto _test_eof562; +case 562: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56343,17 +57428,17 @@ case 556: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st556; - case 32: goto st556; - case 40: goto tr1826; - case 41: goto tr1827; - case 2058: goto tr1828; - case 2107: goto tr1829; + case 9: goto st562; + case 32: goto st562; + case 40: goto tr1848; + case 41: goto tr1849; + case 2058: goto tr1850; + case 2107: goto tr1851; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1831; - goto tr1830; -tr1831: + goto tr1853; + goto tr1852; +tr1853: { s->number64 = 0; } @@ -56368,11 +57453,11 @@ tr1831: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st557; -tr1835: + goto st563; +tr1857: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -56384,14 +57469,14 @@ tr1835: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st557; -st557: + goto st563; +st563: if ( ++p == pe ) - goto _test_eof557; -case 557: + goto _test_eof563; +case 563: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56405,40 +57490,40 @@ case 557: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1832; - case 32: goto tr1832; - case 40: goto tr1833; - case 41: goto tr1834; - case 2058: goto tr1836; - case 2107: goto tr1837; + case 9: goto tr1854; + case 32: goto tr1854; + case 40: goto tr1855; + case 41: goto tr1856; + case 2058: goto tr1858; + case 2107: goto tr1859; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1835; - goto tr1830; -tr1840: + goto tr1857; + goto tr1852; +tr1862: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st558; -tr1841: + goto st564; +tr1863: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st558; -tr1843: + goto st564; +tr1865: { s->line_counter++; } - goto st558; -tr1857: + goto st564; +tr1879: { s->buffer[s->buffer_length++] = 0; @@ -56448,75 +57533,75 @@ tr1857: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 558; goto _out;} + {p++; cs = 564; goto _out;} } } } { s->line_counter++; } - goto st558; -tr1832: + goto st564; +tr1854: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st558; -tr1833: + goto st564; +tr1855: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st558; -tr1834: + goto st564; +tr1856: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st558; -tr1836: + goto st564; +tr1858: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st558; -st558: + goto st564; +st564: if ( ++p == pe ) - goto _test_eof558; -case 558: + goto _test_eof564; +case 564: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56530,69 +57615,69 @@ case 558: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st558; - case 32: goto st558; - case 40: goto tr1840; - case 41: goto tr1841; - case 2058: goto tr1843; - case 2107: goto tr1844; + case 9: goto st564; + case 32: goto st564; + case 40: goto tr1862; + case 41: goto tr1863; + case 2058: goto tr1865; + case 2107: goto tr1866; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr1842; + goto tr1864; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr1842; + goto tr1864; } else - goto tr1842; - goto tr1838; -tr1842: + goto tr1864; + goto tr1860; +tr1864: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st559; -st559: + goto st565; +st565: if ( ++p == pe ) - goto _test_eof559; -case 559: + goto _test_eof565; +case 565: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1845; + goto tr1867; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr1845; + goto tr1867; } else - goto tr1845; - goto tr1838; -tr1847: + goto tr1867; + goto tr1860; +tr1869: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st560; -tr1848: + goto st566; +tr1870: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st560; -tr1849: + goto st566; +tr1871: { s->line_counter++; } - goto st560; -tr1855: + goto st566; +tr1877: { s->buffer[s->buffer_length++] = 0; @@ -56602,24 +57687,24 @@ tr1855: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 560; goto _out;} + {p++; cs = 566; goto _out;} } } } { s->line_counter++; } - goto st560; -tr1845: + goto st566; +tr1867: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st560; -st560: + goto st566; +st566: if ( ++p == pe ) - goto _test_eof560; -case 560: + goto _test_eof566; +case 566: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56637,42 +57722,42 @@ case 560: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st560; - case 32: goto st560; - case 40: goto tr1847; - case 41: goto tr1848; - case 3082: goto tr1849; - case 3131: goto tr1850; - case 3338: goto tr1851; - case 3387: goto tr1851; - case 3594: goto tr1852; - case 3643: goto tr1853; + case 9: goto st566; + case 32: goto st566; + case 40: goto tr1869; + case 41: goto tr1870; + case 3082: goto tr1871; + case 3131: goto tr1872; + case 3338: goto tr1873; + case 3387: goto tr1873; + case 3594: goto tr1874; + case 3643: goto tr1875; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr1842; + goto tr1864; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr1842; + goto tr1864; } else - goto tr1842; - goto tr1838; -tr1850: + goto tr1864; + goto tr1860; +tr1872: { s->buffer_length = 0; } - goto st561; -tr1854: + goto st567; +tr1876: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st561; -st561: + goto st567; +st567: if ( ++p == pe ) - goto _test_eof561; -case 561: + goto _test_eof567; +case 567: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -56692,44 +57777,44 @@ case 561: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1855; + goto tr1877; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1854; - goto tr1838; -tr1851: + goto tr1876; + goto tr1860; +tr1873: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1469; -st1469: + goto st1508; +st1508: if ( ++p == pe ) - goto _test_eof1469; -case 1469: + goto _test_eof1508; +case 1508: goto st0; -tr1852: +tr1874: { s->line_counter++; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1470; -st1470: + goto st1509; +st1509: if ( ++p == pe ) - goto _test_eof1470; -case 1470: + goto _test_eof1509; +case 1509: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56747,44 +57832,44 @@ case 1470: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st560; - case 32: goto st560; - case 40: goto tr1847; - case 41: goto tr1848; - case 3082: goto tr1849; - case 3131: goto tr1850; - case 3338: goto tr1851; - case 3387: goto tr1851; - case 3594: goto tr1852; - case 3643: goto tr1853; + case 9: goto st566; + case 32: goto st566; + case 40: goto tr1869; + case 41: goto tr1870; + case 3082: goto tr1871; + case 3131: goto tr1872; + case 3338: goto tr1873; + case 3387: goto tr1873; + case 3594: goto tr1874; + case 3643: goto tr1875; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr1842; + goto tr1864; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr1842; + goto tr1864; } else - goto tr1842; - goto tr1838; -tr1853: + goto tr1864; + goto tr1860; +tr1875: { s->buffer_length = 0; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1471; -st1471: + goto st1510; +st1510: if ( ++p == pe ) - goto _test_eof1471; -case 1471: + goto _test_eof1510; +case 1510: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -56804,39 +57889,39 @@ case 1471: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1855; + goto tr1877; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1854; - goto tr1838; -tr1844: + goto tr1876; + goto tr1860; +tr1866: { s->buffer_length = 0; } - goto st562; -tr1856: + goto st568; +tr1878: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st562; -tr1837: + goto st568; +tr1859: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st562; -st562: + goto st568; +st568: if ( ++p == pe ) - goto _test_eof562; -case 562: + goto _test_eof568; +case 568: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -56856,26 +57941,26 @@ case 562: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1857; + goto tr1879; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1856; - goto tr1824; -tr1829: + goto tr1878; + goto tr1846; +tr1851: { s->buffer_length = 0; } - goto st563; -tr1858: + goto st569; +tr1880: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st563; -st563: + goto st569; +st569: if ( ++p == pe ) - goto _test_eof563; -case 563: + goto _test_eof569; +case 569: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -56895,14 +57980,14 @@ case 563: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1859; + goto tr1881; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1858; - goto tr1824; -st564: + goto tr1880; + goto tr1846; +st570: if ( ++p == pe ) - goto _test_eof564; -case 564: + goto _test_eof570; +case 570: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56916,38 +58001,38 @@ case 564: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st565; - case 32: goto st565; - case 40: goto tr1861; - case 41: goto tr1862; - case 2058: goto tr1863; - case 2107: goto tr1864; + case 9: goto st571; + case 32: goto st571; + case 40: goto tr1883; + case 41: goto tr1884; + case 2058: goto tr1885; + case 2107: goto tr1886; } - goto tr1824; -tr1861: + goto tr1846; +tr1883: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st565; -tr1862: + goto st571; +tr1884: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st565; -tr1863: + goto st571; +tr1885: { s->line_counter++; } - goto st565; -tr1899: + goto st571; +tr1921: { s->buffer[s->buffer_length++] = 0; @@ -56957,18 +58042,18 @@ tr1899: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 565; goto _out;} + {p++; cs = 571; goto _out;} } } } { s->line_counter++; } - goto st565; -st565: + goto st571; +st571: if ( ++p == pe ) - goto _test_eof565; -case 565: + goto _test_eof571; +case 571: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56982,18 +58067,18 @@ case 565: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st565; - case 32: goto st565; - case 40: goto tr1861; - case 41: goto tr1862; - case 48: goto tr1865; - case 2058: goto tr1863; - case 2107: goto tr1864; + case 9: goto st571; + case 32: goto st571; + case 40: goto tr1883; + case 41: goto tr1884; + case 48: goto tr1887; + case 2058: goto tr1885; + case 2107: goto tr1886; } if ( 49 <= _widec && _widec <= 57 ) - goto tr1866; - goto tr1830; -tr1865: + goto tr1888; + goto tr1852; +tr1887: { s->number64 = 0; } @@ -57008,14 +58093,14 @@ tr1865: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st566; -st566: + goto st572; +st572: if ( ++p == pe ) - goto _test_eof566; -case 566: + goto _test_eof572; +case 572: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57029,19 +58114,19 @@ case 566: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1867; - case 32: goto tr1867; - case 40: goto tr1868; - case 41: goto tr1869; - case 1802: goto tr1871; - case 1851: goto tr1871; - case 2058: goto tr1872; - case 2107: goto tr1873; + case 9: goto tr1889; + case 32: goto tr1889; + case 40: goto tr1890; + case 41: goto tr1891; + case 1802: goto tr1893; + case 1851: goto tr1893; + case 2058: goto tr1894; + case 2107: goto tr1895; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1870; - goto tr1830; -tr1867: + goto tr1892; + goto tr1852; +tr1889: { p--; {cs = stack[--top];goto _again;} } @@ -57050,11 +58135,11 @@ tr1867: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1472; -tr1868: + goto st1511; +tr1890: { p--; {cs = stack[--top];goto _again;} } @@ -57063,18 +58148,18 @@ tr1868: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1472; -tr1869: + goto st1511; +tr1891: { p--; {cs = stack[--top];goto _again;} } @@ -57083,18 +58168,18 @@ tr1869: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1472; -tr1872: + goto st1511; +tr1894: { p--; {cs = stack[--top];goto _again;} } @@ -57103,17 +58188,17 @@ tr1872: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1472; -st1472: + goto st1511; +st1511: if ( ++p == pe ) - goto _test_eof1472; -case 1472: + goto _test_eof1511; +case 1511: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57127,46 +58212,46 @@ case 1472: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st567; - case 32: goto st567; - case 40: goto tr1875; - case 41: goto tr1876; - case 2058: goto tr1878; - case 2107: goto tr1879; + case 9: goto st573; + case 32: goto st573; + case 40: goto tr1897; + case 41: goto tr1898; + case 2058: goto tr1900; + case 2107: goto tr1901; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr1877; + goto tr1899; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr1877; + goto tr1899; } else - goto tr1877; - goto tr1838; -tr1875: + goto tr1899; + goto tr1860; +tr1897: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st567; -tr1876: + goto st573; +tr1898: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st567; -tr1878: + goto st573; +tr1900: { s->line_counter++; } - goto st567; -tr1892: + goto st573; +tr1914: { s->buffer[s->buffer_length++] = 0; @@ -57176,75 +58261,75 @@ tr1892: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 567; goto _out;} + {p++; cs = 573; goto _out;} } } } { s->line_counter++; } - goto st567; -tr1893: + goto st573; +tr1915: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st567; -tr1894: + goto st573; +tr1916: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st567; -tr1895: + goto st573; +tr1917: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st567; -tr1896: + goto st573; +tr1918: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st567; -st567: + goto st573; +st573: if ( ++p == pe ) - goto _test_eof567; -case 567: + goto _test_eof573; +case 573: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57258,69 +58343,69 @@ case 567: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st567; - case 32: goto st567; - case 40: goto tr1875; - case 41: goto tr1876; - case 2058: goto tr1878; - case 2107: goto tr1879; + case 9: goto st573; + case 32: goto st573; + case 40: goto tr1897; + case 41: goto tr1898; + case 2058: goto tr1900; + case 2107: goto tr1901; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr1877; + goto tr1899; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr1877; + goto tr1899; } else - goto tr1877; - goto tr1838; -tr1877: + goto tr1899; + goto tr1860; +tr1899: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st568; -st568: + goto st574; +st574: if ( ++p == pe ) - goto _test_eof568; -case 568: + goto _test_eof574; +case 574: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1880; + goto tr1902; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr1880; + goto tr1902; } else - goto tr1880; - goto tr1838; -tr1882: + goto tr1902; + goto tr1860; +tr1904: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st569; -tr1883: + goto st575; +tr1905: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st569; -tr1884: + goto st575; +tr1906: { s->line_counter++; } - goto st569; -tr1890: + goto st575; +tr1912: { s->buffer[s->buffer_length++] = 0; @@ -57330,24 +58415,24 @@ tr1890: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 569; goto _out;} + {p++; cs = 575; goto _out;} } } } { s->line_counter++; } - goto st569; -tr1880: + goto st575; +tr1902: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st569; -st569: + goto st575; +st575: if ( ++p == pe ) - goto _test_eof569; -case 569: + goto _test_eof575; +case 575: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57365,42 +58450,42 @@ case 569: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st569; - case 32: goto st569; - case 40: goto tr1882; - case 41: goto tr1883; - case 3082: goto tr1884; - case 3131: goto tr1885; - case 3338: goto tr1886; - case 3387: goto tr1886; - case 3594: goto tr1887; - case 3643: goto tr1888; + case 9: goto st575; + case 32: goto st575; + case 40: goto tr1904; + case 41: goto tr1905; + case 3082: goto tr1906; + case 3131: goto tr1907; + case 3338: goto tr1908; + case 3387: goto tr1908; + case 3594: goto tr1909; + case 3643: goto tr1910; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr1877; + goto tr1899; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr1877; + goto tr1899; } else - goto tr1877; - goto tr1838; -tr1885: + goto tr1899; + goto tr1860; +tr1907: { s->buffer_length = 0; } - goto st570; -tr1889: + goto st576; +tr1911: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st570; -st570: + goto st576; +st576: if ( ++p == pe ) - goto _test_eof570; -case 570: + goto _test_eof576; +case 576: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -57420,49 +58505,49 @@ case 570: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1890; + goto tr1912; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1889; - goto tr1838; -tr1871: + goto tr1911; + goto tr1860; +tr1893: { p--; {cs = stack[--top];goto _again;} } - goto st1473; -tr1886: + goto st1512; +tr1908: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1473; -st1473: + goto st1512; +st1512: if ( ++p == pe ) - goto _test_eof1473; -case 1473: - goto tr1824; -tr1887: + goto _test_eof1512; +case 1512: + goto tr1846; +tr1909: { s->line_counter++; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1474; -st1474: + goto st1513; +st1513: if ( ++p == pe ) - goto _test_eof1474; -case 1474: + goto _test_eof1513; +case 1513: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57480,44 +58565,44 @@ case 1474: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st569; - case 32: goto st569; - case 40: goto tr1882; - case 41: goto tr1883; - case 3082: goto tr1884; - case 3131: goto tr1885; - case 3338: goto tr1886; - case 3387: goto tr1886; - case 3594: goto tr1887; - case 3643: goto tr1888; + case 9: goto st575; + case 32: goto st575; + case 40: goto tr1904; + case 41: goto tr1905; + case 3082: goto tr1906; + case 3131: goto tr1907; + case 3338: goto tr1908; + case 3387: goto tr1908; + case 3594: goto tr1909; + case 3643: goto tr1910; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr1877; + goto tr1899; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr1877; + goto tr1899; } else - goto tr1877; - goto tr1838; -tr1888: + goto tr1899; + goto tr1860; +tr1910: { s->buffer_length = 0; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1475; -st1475: + goto st1514; +st1514: if ( ++p == pe ) - goto _test_eof1475; -case 1475: + goto _test_eof1514; +case 1514: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -57537,39 +58622,39 @@ case 1475: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1890; + goto tr1912; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1889; - goto tr1838; -tr1879: + goto tr1911; + goto tr1860; +tr1901: { s->buffer_length = 0; } - goto st571; -tr1891: + goto st577; +tr1913: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st571; -tr1897: + goto st577; +tr1919: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st571; -st571: + goto st577; +st577: if ( ++p == pe ) - goto _test_eof571; -case 571: + goto _test_eof577; +case 577: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -57589,11 +58674,11 @@ case 571: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1892; + goto tr1914; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1891; - goto tr1824; -tr1866: + goto tr1913; + goto tr1846; +tr1888: { s->number64 = 0; } @@ -57608,11 +58693,11 @@ tr1866: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st572; -tr1870: + goto st578; +tr1892: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -57624,14 +58709,14 @@ tr1870: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st572; -st572: + goto st578; +st578: if ( ++p == pe ) - goto _test_eof572; -case 572: + goto _test_eof578; +case 578: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57645,17 +58730,17 @@ case 572: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1893; - case 32: goto tr1893; - case 40: goto tr1894; - case 41: goto tr1895; - case 2058: goto tr1896; - case 2107: goto tr1897; + case 9: goto tr1915; + case 32: goto tr1915; + case 40: goto tr1916; + case 41: goto tr1917; + case 2058: goto tr1918; + case 2107: goto tr1919; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1870; - goto tr1830; -tr1873: + goto tr1892; + goto tr1852; +tr1895: { p--; {cs = stack[--top];goto _again;} } @@ -57664,17 +58749,17 @@ tr1873: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1476; -st1476: + goto st1515; +st1515: if ( ++p == pe ) - goto _test_eof1476; -case 1476: + goto _test_eof1515; +case 1515: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -57694,26 +58779,26 @@ case 1476: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1892; + goto tr1914; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1891; - goto tr1824; -tr1864: + goto tr1913; + goto tr1846; +tr1886: { s->buffer_length = 0; } - goto st573; -tr1898: + goto st579; +tr1920: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st573; -st573: + goto st579; +st579: if ( ++p == pe ) - goto _test_eof573; -case 573: + goto _test_eof579; +case 579: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -57733,71 +58818,71 @@ case 573: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1899; + goto tr1921; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1898; - goto tr1824; -st574: + goto tr1920; + goto tr1846; +st580: if ( ++p == pe ) - goto _test_eof574; -case 574: + goto _test_eof580; +case 580: switch( (*p) ) { - case 97: goto tr1901; - case 100: goto tr1902; - case 101: goto tr1903; - case 105: goto tr1904; - case 107: goto tr1905; - case 110: goto tr1906; - case 111: goto tr1907; - case 112: goto tr1908; + case 97: goto tr1923; + case 100: goto tr1924; + case 101: goto tr1925; + case 105: goto tr1926; + case 107: goto tr1927; + case 110: goto tr1928; + case 111: goto tr1929; + case 112: goto tr1930; } - goto tr1900; -tr1901: + goto tr1922; +tr1923: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st575; -st575: + goto st581; +st581: if ( ++p == pe ) - goto _test_eof575; -case 575: + goto _test_eof581; +case 581: if ( (*p) == 108 ) - goto st576; - goto tr1900; -st576: + goto st582; + goto tr1922; +st582: if ( ++p == pe ) - goto _test_eof576; -case 576: + goto _test_eof582; +case 582: if ( (*p) == 112 ) - goto st577; - goto tr1900; -st577: + goto st583; + goto tr1922; +st583: if ( ++p == pe ) - goto _test_eof577; -case 577: + goto _test_eof583; +case 583: if ( (*p) == 110 ) - goto st578; - goto tr1900; -st578: + goto st584; + goto tr1922; +st584: if ( ++p == pe ) - goto _test_eof578; -case 578: + goto _test_eof584; +case 584: switch( (*p) ) { - case 32: goto tr1912; - case 34: goto tr1912; - case 44: goto tr1912; - case 59: goto tr1912; + case 32: goto tr1934; + case 34: goto tr1934; + case 44: goto tr1934; + case 59: goto tr1934; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1912; + goto tr1934; } else if ( (*p) >= 9 ) - goto tr1912; - goto tr1900; -tr1912: + goto tr1934; + goto tr1922; +tr1934: { uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); @@ -57806,8 +58891,8 @@ tr1912: { p--; {cs = stack[--top];goto _again;} } - goto st1477; -tr1919: + goto st1516; +tr1941: { uint16_t val = htons(7); memcpy(rdata_tail, &val, 2); @@ -57816,8 +58901,8 @@ tr1919: { p--; {cs = stack[--top];goto _again;} } - goto st1477; -tr1922: + goto st1516; +tr1944: { uint16_t val = htons(5); memcpy(rdata_tail, &val, 2); @@ -57826,8 +58911,8 @@ tr1922: { p--; {cs = stack[--top];goto _again;} } - goto st1477; -tr1931: + goto st1516; +tr1953: { uint16_t val = htons(4); memcpy(rdata_tail, &val, 2); @@ -57836,8 +58921,8 @@ tr1931: { p--; {cs = stack[--top];goto _again;} } - goto st1477; -tr1936: + goto st1516; +tr1958: { uint16_t val = htons(6); memcpy(rdata_tail, &val, 2); @@ -57846,8 +58931,8 @@ tr1936: { p--; {cs = stack[--top];goto _again;} } - goto st1477; -tr1941: + goto st1516; +tr1963: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -57855,14 +58940,14 @@ tr1941: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1477; -tr1957: + goto st1516; +tr1979: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -57871,8 +58956,8 @@ tr1957: { p--; {cs = stack[--top];goto _again;} } - goto st1477; -tr1962: + goto st1516; +tr1984: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -57881,8 +58966,8 @@ tr1962: { p--; {cs = stack[--top];goto _again;} } - goto st1477; -tr1966: + goto st1516; +tr1988: { uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); @@ -57891,265 +58976,265 @@ tr1966: { p--; {cs = stack[--top];goto _again;} } - goto st1477; -st1477: + goto st1516; +st1516: if ( ++p == pe ) - goto _test_eof1477; -case 1477: + goto _test_eof1516; +case 1516: goto st0; -tr1902: +tr1924: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st579; -st579: - if ( ++p == pe ) - goto _test_eof579; -case 579: - if ( (*p) == 111 ) - goto st580; - goto tr1900; -st580: - if ( ++p == pe ) - goto _test_eof580; -case 580: - if ( (*p) == 104 ) - goto st581; - goto tr1900; -st581: - if ( ++p == pe ) - goto _test_eof581; -case 581: - if ( (*p) == 112 ) - goto st582; - goto tr1900; -st582: - if ( ++p == pe ) - goto _test_eof582; -case 582: - if ( (*p) == 97 ) - goto st583; - goto tr1900; -st583: - if ( ++p == pe ) - goto _test_eof583; -case 583: - if ( (*p) == 116 ) - goto st584; - goto tr1900; -st584: - if ( ++p == pe ) - goto _test_eof584; -case 584: - if ( (*p) == 104 ) - goto st585; - goto tr1900; + goto st585; st585: if ( ++p == pe ) goto _test_eof585; case 585: - switch( (*p) ) { - case 32: goto tr1919; - case 34: goto tr1919; - case 44: goto tr1919; - case 59: goto tr1919; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1919; - } else if ( (*p) >= 9 ) - goto tr1919; - goto tr1900; -tr1903: - { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} - } - } - goto st586; + if ( (*p) == 111 ) + goto st586; + goto tr1922; st586: if ( ++p == pe ) goto _test_eof586; case 586: - if ( (*p) == 99 ) + if ( (*p) == 104 ) goto st587; - goto tr1900; + goto tr1922; st587: if ( ++p == pe ) goto _test_eof587; case 587: - if ( (*p) == 104 ) + if ( (*p) == 112 ) goto st588; - goto tr1900; + goto tr1922; st588: if ( ++p == pe ) goto _test_eof588; case 588: - switch( (*p) ) { - case 32: goto tr1922; - case 34: goto tr1922; - case 44: goto tr1922; - case 59: goto tr1922; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1922; - } else if ( (*p) >= 9 ) - goto tr1922; - goto tr1900; -tr1904: - { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} - } - } - goto st589; + if ( (*p) == 97 ) + goto st589; + goto tr1922; st589: if ( ++p == pe ) goto _test_eof589; case 589: - if ( (*p) == 112 ) + if ( (*p) == 116 ) goto st590; - goto tr1900; + goto tr1922; st590: if ( ++p == pe ) goto _test_eof590; case 590: - if ( (*p) == 118 ) + if ( (*p) == 104 ) goto st591; - goto tr1900; + goto tr1922; st591: if ( ++p == pe ) goto _test_eof591; case 591: switch( (*p) ) { - case 52: goto st592; - case 54: goto st597; + case 32: goto tr1941; + case 34: goto tr1941; + case 44: goto tr1941; + case 59: goto tr1941; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1941; + } else if ( (*p) >= 9 ) + goto tr1941; + goto tr1922; +tr1925: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } - goto tr1900; + goto st592; st592: if ( ++p == pe ) goto _test_eof592; case 592: - if ( (*p) == 104 ) + if ( (*p) == 99 ) goto st593; - goto tr1900; + goto tr1922; st593: if ( ++p == pe ) goto _test_eof593; case 593: - if ( (*p) == 105 ) + if ( (*p) == 104 ) goto st594; - goto tr1900; + goto tr1922; st594: if ( ++p == pe ) goto _test_eof594; case 594: - if ( (*p) == 110 ) - goto st595; - goto tr1900; + switch( (*p) ) { + case 32: goto tr1944; + case 34: goto tr1944; + case 44: goto tr1944; + case 59: goto tr1944; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1944; + } else if ( (*p) >= 9 ) + goto tr1944; + goto tr1922; +tr1926: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + goto st595; st595: if ( ++p == pe ) goto _test_eof595; case 595: - if ( (*p) == 116 ) + if ( (*p) == 112 ) goto st596; - goto tr1900; + goto tr1922; st596: if ( ++p == pe ) goto _test_eof596; case 596: - switch( (*p) ) { - case 32: goto tr1931; - case 34: goto tr1931; - case 44: goto tr1931; - case 59: goto tr1931; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1931; - } else if ( (*p) >= 9 ) - goto tr1931; - goto tr1900; + if ( (*p) == 118 ) + goto st597; + goto tr1922; st597: if ( ++p == pe ) goto _test_eof597; case 597: - if ( (*p) == 104 ) - goto st598; - goto tr1900; + switch( (*p) ) { + case 52: goto st598; + case 54: goto st603; + } + goto tr1922; st598: if ( ++p == pe ) goto _test_eof598; case 598: - if ( (*p) == 105 ) + if ( (*p) == 104 ) goto st599; - goto tr1900; + goto tr1922; st599: if ( ++p == pe ) goto _test_eof599; case 599: - if ( (*p) == 110 ) + if ( (*p) == 105 ) goto st600; - goto tr1900; + goto tr1922; st600: if ( ++p == pe ) goto _test_eof600; case 600: - if ( (*p) == 116 ) + if ( (*p) == 110 ) goto st601; - goto tr1900; + goto tr1922; st601: if ( ++p == pe ) goto _test_eof601; case 601: + if ( (*p) == 116 ) + goto st602; + goto tr1922; +st602: + if ( ++p == pe ) + goto _test_eof602; +case 602: switch( (*p) ) { - case 32: goto tr1936; - case 34: goto tr1936; - case 44: goto tr1936; - case 59: goto tr1936; + case 32: goto tr1953; + case 34: goto tr1953; + case 44: goto tr1953; + case 59: goto tr1953; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1936; + goto tr1953; } else if ( (*p) >= 9 ) - goto tr1936; - goto tr1900; -tr1905: + goto tr1953; + goto tr1922; +st603: + if ( ++p == pe ) + goto _test_eof603; +case 603: + if ( (*p) == 104 ) + goto st604; + goto tr1922; +st604: + if ( ++p == pe ) + goto _test_eof604; +case 604: + if ( (*p) == 105 ) + goto st605; + goto tr1922; +st605: + if ( ++p == pe ) + goto _test_eof605; +case 605: + if ( (*p) == 110 ) + goto st606; + goto tr1922; +st606: + if ( ++p == pe ) + goto _test_eof606; +case 606: + if ( (*p) == 116 ) + goto st607; + goto tr1922; +st607: + if ( ++p == pe ) + goto _test_eof607; +case 607: + switch( (*p) ) { + case 32: goto tr1958; + case 34: goto tr1958; + case 44: goto tr1958; + case 59: goto tr1958; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1958; + } else if ( (*p) >= 9 ) + goto tr1958; + goto tr1922; +tr1927: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st602; -st602: + goto st608; +st608: if ( ++p == pe ) - goto _test_eof602; -case 602: + goto _test_eof608; +case 608: if ( (*p) == 101 ) - goto st603; - goto tr1900; -st603: + goto st609; + goto tr1922; +st609: if ( ++p == pe ) - goto _test_eof603; -case 603: + goto _test_eof609; +case 609: if ( (*p) == 121 ) - goto st604; - goto tr1900; -st604: + goto st610; + goto tr1922; +st610: if ( ++p == pe ) - goto _test_eof604; -case 604: + goto _test_eof610; +case 610: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1940; - goto tr1939; -tr1940: + goto tr1962; + goto tr1961; +tr1962: { s->number64 = 0; } @@ -58164,11 +59249,11 @@ tr1940: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st605; -tr1942: + goto st611; +tr1964: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -58180,252 +59265,252 @@ tr1942: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st605; -st605: + goto st611; +st611: if ( ++p == pe ) - goto _test_eof605; -case 605: + goto _test_eof611; +case 611: switch( (*p) ) { - case 32: goto tr1941; - case 34: goto tr1941; - case 44: goto tr1941; - case 59: goto tr1941; + case 32: goto tr1963; + case 34: goto tr1963; + case 44: goto tr1963; + case 59: goto tr1963; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1941; + goto tr1963; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1942; + goto tr1964; } else - goto tr1941; - goto tr1939; -tr1906: + goto tr1963; + goto tr1961; +tr1928: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st606; -st606: - if ( ++p == pe ) - goto _test_eof606; -case 606: - if ( (*p) == 111 ) - goto st607; - goto tr1900; -st607: - if ( ++p == pe ) - goto _test_eof607; -case 607: - if ( (*p) == 45 ) - goto st608; - goto tr1900; -st608: - if ( ++p == pe ) - goto _test_eof608; -case 608: - if ( (*p) == 100 ) - goto st609; - goto tr1900; -st609: - if ( ++p == pe ) - goto _test_eof609; -case 609: - if ( (*p) == 101 ) - goto st610; - goto tr1900; -st610: - if ( ++p == pe ) - goto _test_eof610; -case 610: - if ( (*p) == 102 ) - goto st611; - goto tr1900; -st611: - if ( ++p == pe ) - goto _test_eof611; -case 611: - if ( (*p) == 97 ) - goto st612; - goto tr1900; + goto st612; st612: if ( ++p == pe ) goto _test_eof612; case 612: - if ( (*p) == 117 ) + if ( (*p) == 111 ) goto st613; - goto tr1900; + goto tr1922; st613: if ( ++p == pe ) goto _test_eof613; case 613: - if ( (*p) == 108 ) + if ( (*p) == 45 ) goto st614; - goto tr1900; + goto tr1922; st614: if ( ++p == pe ) goto _test_eof614; case 614: - if ( (*p) == 116 ) + if ( (*p) == 100 ) goto st615; - goto tr1900; + goto tr1922; st615: if ( ++p == pe ) goto _test_eof615; case 615: - if ( (*p) == 45 ) + if ( (*p) == 101 ) goto st616; - goto tr1900; + goto tr1922; st616: if ( ++p == pe ) goto _test_eof616; case 616: - if ( (*p) == 97 ) + if ( (*p) == 102 ) goto st617; - goto tr1900; + goto tr1922; st617: if ( ++p == pe ) goto _test_eof617; case 617: - if ( (*p) == 108 ) + if ( (*p) == 97 ) goto st618; - goto tr1900; + goto tr1922; st618: if ( ++p == pe ) goto _test_eof618; case 618: - if ( (*p) == 112 ) + if ( (*p) == 117 ) goto st619; - goto tr1900; + goto tr1922; st619: if ( ++p == pe ) goto _test_eof619; case 619: - if ( (*p) == 110 ) + if ( (*p) == 108 ) goto st620; - goto tr1900; + goto tr1922; st620: if ( ++p == pe ) goto _test_eof620; case 620: - switch( (*p) ) { - case 32: goto tr1957; - case 34: goto tr1957; - case 44: goto tr1957; - case 59: goto tr1957; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1957; - } else if ( (*p) >= 9 ) - goto tr1957; - goto tr1900; -tr1907: - { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} - } - } - goto st621; + if ( (*p) == 116 ) + goto st621; + goto tr1922; st621: if ( ++p == pe ) goto _test_eof621; case 621: - if ( (*p) == 104 ) + if ( (*p) == 45 ) goto st622; - goto tr1900; + goto tr1922; st622: if ( ++p == pe ) goto _test_eof622; case 622: - if ( (*p) == 116 ) + if ( (*p) == 97 ) goto st623; - goto tr1900; + goto tr1922; st623: if ( ++p == pe ) goto _test_eof623; case 623: - if ( (*p) == 116 ) + if ( (*p) == 108 ) goto st624; - goto tr1900; + goto tr1922; st624: if ( ++p == pe ) goto _test_eof624; case 624: if ( (*p) == 112 ) goto st625; - goto tr1900; + goto tr1922; st625: if ( ++p == pe ) goto _test_eof625; case 625: + if ( (*p) == 110 ) + goto st626; + goto tr1922; +st626: + if ( ++p == pe ) + goto _test_eof626; +case 626: switch( (*p) ) { - case 32: goto tr1962; - case 34: goto tr1962; - case 44: goto tr1962; - case 59: goto tr1962; + case 32: goto tr1979; + case 34: goto tr1979; + case 44: goto tr1979; + case 59: goto tr1979; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1962; + goto tr1979; } else if ( (*p) >= 9 ) - goto tr1962; - goto tr1900; -tr1908: + goto tr1979; + goto tr1922; +tr1929: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st626; -st626: - if ( ++p == pe ) - goto _test_eof626; -case 626: - if ( (*p) == 111 ) - goto st627; - goto tr1900; + goto st627; st627: if ( ++p == pe ) goto _test_eof627; case 627: - if ( (*p) == 114 ) + if ( (*p) == 104 ) goto st628; - goto tr1900; + goto tr1922; st628: if ( ++p == pe ) goto _test_eof628; case 628: if ( (*p) == 116 ) goto st629; - goto tr1900; + goto tr1922; st629: if ( ++p == pe ) goto _test_eof629; case 629: + if ( (*p) == 116 ) + goto st630; + goto tr1922; +st630: + if ( ++p == pe ) + goto _test_eof630; +case 630: + if ( (*p) == 112 ) + goto st631; + goto tr1922; +st631: + if ( ++p == pe ) + goto _test_eof631; +case 631: switch( (*p) ) { - case 32: goto tr1966; - case 34: goto tr1966; - case 44: goto tr1966; - case 59: goto tr1966; + case 32: goto tr1984; + case 34: goto tr1984; + case 44: goto tr1984; + case 59: goto tr1984; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1966; + goto tr1984; } else if ( (*p) >= 9 ) - goto tr1966; - goto tr1900; -st630: + goto tr1984; + goto tr1922; +tr1930: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + goto st632; +st632: if ( ++p == pe ) - goto _test_eof630; -case 630: + goto _test_eof632; +case 632: + if ( (*p) == 111 ) + goto st633; + goto tr1922; +st633: + if ( ++p == pe ) + goto _test_eof633; +case 633: + if ( (*p) == 114 ) + goto st634; + goto tr1922; +st634: + if ( ++p == pe ) + goto _test_eof634; +case 634: + if ( (*p) == 116 ) + goto st635; + goto tr1922; +st635: + if ( ++p == pe ) + goto _test_eof635; +case 635: + switch( (*p) ) { + case 32: goto tr1988; + case 34: goto tr1988; + case 44: goto tr1988; + case 59: goto tr1988; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1988; + } else if ( (*p) >= 9 ) + goto tr1988; + goto tr1922; +st636: + if ( ++p == pe ) + goto _test_eof636; +case 636: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58443,42 +59528,42 @@ case 630: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1968; - case 32: goto tr1968; - case 40: goto tr1969; - case 41: goto tr1970; - case 3082: goto tr1971; - case 3131: goto tr1972; - case 3338: goto tr1973; - case 3387: goto tr1973; - case 3594: goto tr1974; - case 3643: goto tr1975; + case 9: goto tr1990; + case 32: goto tr1990; + case 40: goto tr1991; + case 41: goto tr1992; + case 3082: goto tr1993; + case 3131: goto tr1994; + case 3338: goto tr1995; + case 3387: goto tr1995; + case 3594: goto tr1996; + case 3643: goto tr1997; } - goto tr1967; -tr1977: + goto tr1989; +tr1999: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr1978: + goto st637; +tr2000: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr1988: + goto st637; +tr2010: { s->line_counter++; } - goto st631; -tr2008: + goto st637; +tr2030: { s->buffer[s->buffer_length++] = 0; @@ -58488,21 +59573,21 @@ tr2008: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 631; goto _out;} + {p++; cs = 637; goto _out;} } } } { s->line_counter++; } - goto st631; -tr1968: + goto st637; +tr1990: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; } - goto st631; -tr1969: + goto st637; +tr1991: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -58510,12 +59595,12 @@ tr1969: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr1970: + goto st637; +tr1992: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -58523,12 +59608,12 @@ tr1970: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr1971: + goto st637; +tr1993: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -58536,26 +59621,26 @@ tr1971: { s->line_counter++; } - goto st631; -tr1999: + goto st637; +tr2021: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -58566,36 +59651,36 @@ tr1999: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } - goto st631; -tr2000: + goto st637; +tr2022: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -58606,43 +59691,43 @@ tr2000: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr2001: + goto st637; +tr2023: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -58653,43 +59738,43 @@ tr2001: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr2002: + goto st637; +tr2024: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -58700,21 +59785,21 @@ tr2002: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st631; -tr2018: + goto st637; +tr2040: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -58723,18 +59808,18 @@ tr2018: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } - goto st631; -tr2019: + goto st637; +tr2041: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -58743,25 +59828,25 @@ tr2019: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr2020: + goto st637; +tr2042: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -58770,25 +59855,25 @@ tr2020: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr2021: + goto st637; +tr2043: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -58797,86 +59882,86 @@ tr2021: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st631; -tr2028: + goto st637; +tr2050: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } - goto st631; -tr2029: + goto st637; +tr2051: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr2030: + goto st637; +tr2052: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr2031: + goto st637; +tr2053: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st631; -tr2071: + goto st637; +tr2093: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -58889,30 +59974,30 @@ tr2071: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } - goto st631; -tr2072: + goto st637; +tr2094: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -58925,37 +60010,37 @@ tr2072: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr2073: + goto st637; +tr2095: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -58968,37 +60053,37 @@ tr2073: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr2076: + goto st637; +tr2098: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -59011,33 +60096,33 @@ tr2076: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st631; -tr2094: + goto st637; +tr2116: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -59050,30 +60135,30 @@ tr2094: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } - goto st631; -tr2095: + goto st637; +tr2117: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -59086,37 +60171,37 @@ tr2095: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr2096: + goto st637; +tr2118: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -59129,37 +60214,37 @@ tr2096: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr2099: + goto st637; +tr2121: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -59172,21 +60257,21 @@ tr2099: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st631; -tr2109: + goto st637; +tr2131: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -59194,7 +60279,7 @@ tr2109: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -59206,11 +60291,11 @@ tr2109: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } - goto st631; -tr2110: + goto st637; +tr2132: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -59218,7 +60303,7 @@ tr2110: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -59230,18 +60315,18 @@ tr2110: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr2111: + goto st637; +tr2133: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -59249,7 +60334,7 @@ tr2111: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -59261,18 +60346,18 @@ tr2111: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr2114: + goto st637; +tr2136: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -59280,7 +60365,7 @@ tr2114: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -59292,14 +60377,14 @@ tr2114: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st631; -tr2134: + goto st637; +tr2156: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -59308,7 +60393,7 @@ tr2134: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -59318,11 +60403,11 @@ tr2134: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } - goto st631; -tr2135: + goto st637; +tr2157: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -59331,7 +60416,7 @@ tr2135: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -59341,18 +60426,18 @@ tr2135: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr2136: + goto st637; +tr2158: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -59361,7 +60446,7 @@ tr2136: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -59371,18 +60456,18 @@ tr2136: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr2138: + goto st637; +tr2160: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -59391,7 +60476,7 @@ tr2138: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -59401,14 +60486,14 @@ tr2138: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st631; -tr2158: + goto st637; +tr2180: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -59423,11 +60508,11 @@ tr2158: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } - goto st631; -tr2159: + goto st637; +tr2181: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -59442,18 +60527,18 @@ tr2159: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr2160: + goto st637; +tr2182: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -59468,18 +60553,18 @@ tr2160: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr2161: + goto st637; +tr2183: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -59494,14 +60579,14 @@ tr2161: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st631; -tr2170: + goto st637; +tr2192: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -59516,11 +60601,11 @@ tr2170: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } - goto st631; -tr2171: + goto st637; +tr2193: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -59535,18 +60620,18 @@ tr2171: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr2172: + goto st637; +tr2194: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -59561,18 +60646,18 @@ tr2172: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr2173: + goto st637; +tr2195: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -59587,14 +60672,14 @@ tr2173: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st631; -tr2187: + goto st637; +tr2209: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -59602,18 +60687,18 @@ tr2187: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } - goto st631; -tr2188: + goto st637; +tr2210: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -59621,25 +60706,25 @@ tr2188: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st631; -tr2189: + goto st637; +tr2211: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -59647,25 +60732,25 @@ tr2189: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st631; -tr2191: + goto st637; +tr2213: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -59673,24 +60758,24 @@ tr2191: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st631; -st631: + goto st637; +st637: if ( ++p == pe ) - goto _test_eof631; -case 631: + goto _test_eof637; +case 637: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59708,87 +60793,87 @@ case 631: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st631; - case 32: goto st631; - case 40: goto tr1977; - case 41: goto tr1978; - case 97: goto tr1979; - case 100: goto tr1980; - case 101: goto tr1981; - case 105: goto tr1982; - case 107: goto tr1983; - case 109: goto tr1984; - case 110: goto tr1985; - case 111: goto tr1986; - case 112: goto tr1987; - case 3082: goto tr1988; - case 3131: goto tr1989; - case 3338: goto tr1990; - case 3387: goto tr1990; - case 3594: goto tr1991; - case 3643: goto tr1992; - } - goto tr1967; -tr1979: + case 9: goto st637; + case 32: goto st637; + case 40: goto tr1999; + case 41: goto tr2000; + case 97: goto tr2001; + case 100: goto tr2002; + case 101: goto tr2003; + case 105: goto tr2004; + case 107: goto tr2005; + case 109: goto tr2006; + case 110: goto tr2007; + case 111: goto tr2008; + case 112: goto tr2009; + case 3082: goto tr2010; + case 3131: goto tr2011; + case 3338: goto tr2012; + case 3387: goto tr2012; + case 3594: goto tr2013; + case 3643: goto tr2014; + } + goto tr1989; +tr2001: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->svcb.param_position = rdata_tail; } - goto st632; -st632: + goto st638; +st638: if ( ++p == pe ) - goto _test_eof632; -case 632: + goto _test_eof638; +case 638: if ( (*p) == 108 ) - goto st633; - goto tr1967; -st633: + goto st639; + goto tr1989; +st639: if ( ++p == pe ) - goto _test_eof633; -case 633: + goto _test_eof639; +case 639: if ( (*p) == 112 ) - goto st634; - goto tr1967; -st634: + goto st640; + goto tr1989; +st640: if ( ++p == pe ) - goto _test_eof634; -case 634: + goto _test_eof640; +case 640: if ( (*p) == 110 ) - goto st635; - goto tr1967; -st635: + goto st641; + goto tr1989; +st641: if ( ++p == pe ) - goto _test_eof635; -case 635: + goto _test_eof641; +case 641: if ( (*p) == 61 ) - goto tr1996; - goto tr1967; -tr1996: + goto tr2018; + goto tr1989; +tr2018: { uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st636; -st636: + goto st642; +st642: if ( ++p == pe ) - goto _test_eof636; -case 636: + goto _test_eof642; +case 642: switch( (*p) ) { - case 32: goto tr1967; - case 34: goto tr1998; - case 59: goto tr1967; + case 32: goto tr1989; + case 34: goto tr2020; + case 59: goto tr1989; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1967; + goto tr1989; } else if ( (*p) >= 9 ) - goto tr1967; - goto tr1997; -tr1997: + goto tr1989; + goto tr2019; +tr2019: { s->comma_list = true; s->pending_backslash = false; @@ -59799,7 +60884,7 @@ tr1997: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -59807,15 +60892,15 @@ tr1997: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 637;goto st327;} } - goto st637; -st637: + { p--; {stack[top++] = 643;goto st330;} } + goto st643; +st643: if ( ++p == pe ) - goto _test_eof637; -case 637: + goto _test_eof643; +case 643: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59833,31 +60918,31 @@ case 637: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1999; - case 32: goto tr1999; - case 40: goto tr2000; - case 41: goto tr2001; - case 3082: goto tr2002; - case 3131: goto tr2003; - case 3338: goto tr2004; - case 3387: goto tr2004; - case 3594: goto tr2005; - case 3643: goto tr2006; + case 9: goto tr2021; + case 32: goto tr2021; + case 40: goto tr2022; + case 41: goto tr2023; + case 3082: goto tr2024; + case 3131: goto tr2025; + case 3338: goto tr2026; + case 3387: goto tr2026; + case 3594: goto tr2027; + case 3643: goto tr2028; } - goto tr1967; -tr1989: + goto tr1989; +tr2011: { s->buffer_length = 0; } - goto st638; -tr2007: + goto st644; +tr2029: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st638; -tr1972: + goto st644; +tr1994: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -59865,26 +60950,26 @@ tr1972: { s->buffer_length = 0; } - goto st638; -tr2003: + goto st644; +tr2025: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -59895,21 +60980,21 @@ tr2003: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st638; -tr2022: + goto st644; +tr2044: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -59918,45 +61003,45 @@ tr2022: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st638; -tr2032: + goto st644; +tr2054: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st638; -tr2077: + goto st644; +tr2099: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -59969,33 +61054,33 @@ tr2077: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st638; -tr2100: + goto st644; +tr2122: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -60008,21 +61093,21 @@ tr2100: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st638; -tr2115: + goto st644; +tr2137: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -60030,7 +61115,7 @@ tr2115: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60042,14 +61127,14 @@ tr2115: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st638; -tr2139: + goto st644; +tr2161: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -60058,7 +61143,7 @@ tr2139: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60068,14 +61153,14 @@ tr2139: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st638; -tr2162: + goto st644; +tr2184: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -60090,14 +61175,14 @@ tr2162: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st638; -tr2174: + goto st644; +tr2196: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -60112,14 +61197,14 @@ tr2174: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st638; -tr2192: + goto st644; +tr2214: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -60127,24 +61212,24 @@ tr2192: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st638; -st638: + goto st644; +st644: if ( ++p == pe ) - goto _test_eof638; -case 638: + goto _test_eof644; +case 644: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -60164,11 +61249,11 @@ case 638: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2008; + goto tr2030; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2007; - goto tr1967; -tr1973: + goto tr2029; + goto tr1989; +tr1995: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -60177,44 +61262,44 @@ tr1973: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -tr1990: + goto st1517; +tr2012: { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -tr2004: + goto st1517; +tr2026: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60225,28 +61310,28 @@ tr2004: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -tr2023: + goto st1517; +tr2045: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -60255,59 +61340,59 @@ tr2023: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -tr2033: + goto st1517; +tr2055: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -tr2078: + goto st1517; +tr2100: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -60320,40 +61405,40 @@ tr2078: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -tr2101: + goto st1517; +tr2123: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -60366,28 +61451,28 @@ tr2101: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -tr2116: + goto st1517; +tr2138: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -60395,7 +61480,7 @@ tr2116: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60407,21 +61492,21 @@ tr2116: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -tr2140: + goto st1517; +tr2162: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -60430,7 +61515,7 @@ tr2140: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60440,21 +61525,21 @@ tr2140: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -tr2163: + goto st1517; +tr2185: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -60469,21 +61554,21 @@ tr2163: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -tr2175: + goto st1517; +tr2197: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -60498,21 +61583,21 @@ tr2175: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -tr2193: + goto st1517; +tr2215: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -60520,33 +61605,33 @@ tr2193: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1478; -st1478: + goto st1517; +st1517: if ( ++p == pe ) - goto _test_eof1478; -case 1478: + goto _test_eof1517; +case 1517: goto st0; -tr1974: +tr1996: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -60558,14 +61643,14 @@ tr1974: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -tr1991: + goto st1518; +tr2013: { s->line_counter++; } @@ -60573,32 +61658,32 @@ tr1991: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -tr2005: + goto st1518; +tr2027: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60609,14 +61694,14 @@ tr2005: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60626,14 +61711,14 @@ tr2005: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -tr2024: + goto st1518; +tr2046: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -60642,14 +61727,14 @@ tr2024: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60659,19 +61744,19 @@ tr2024: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -tr2034: + goto st1518; +tr2056: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60681,26 +61766,26 @@ tr2034: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -tr2079: + goto st1518; +tr2101: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -60713,14 +61798,14 @@ tr2079: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60730,26 +61815,26 @@ tr2079: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -tr2102: + goto st1518; +tr2124: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -60762,14 +61847,14 @@ tr2102: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60779,14 +61864,14 @@ tr2102: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -tr2117: + goto st1518; +tr2139: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -60794,7 +61879,7 @@ tr2117: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60806,7 +61891,7 @@ tr2117: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60816,14 +61901,14 @@ tr2117: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -tr2141: + goto st1518; +tr2163: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -60832,7 +61917,7 @@ tr2141: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60842,7 +61927,7 @@ tr2141: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60852,14 +61937,14 @@ tr2141: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -tr2164: + goto st1518; +tr2186: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -60874,7 +61959,7 @@ tr2164: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60884,14 +61969,14 @@ tr2164: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -tr2176: + goto st1518; +tr2198: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -60906,7 +61991,7 @@ tr2176: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60916,14 +62001,14 @@ tr2176: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -tr2194: + goto st1518; +tr2216: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -60931,14 +62016,14 @@ tr2194: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -60948,17 +62033,17 @@ tr2194: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1479; -st1479: + goto st1518; +st1518: if ( ++p == pe ) - goto _test_eof1479; -case 1479: + goto _test_eof1518; +case 1518: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60976,123 +62061,123 @@ case 1479: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st631; - case 32: goto st631; - case 40: goto tr1977; - case 41: goto tr1978; - case 97: goto tr1979; - case 100: goto tr1980; - case 101: goto tr1981; - case 105: goto tr1982; - case 107: goto tr1983; - case 109: goto tr1984; - case 110: goto tr1985; - case 111: goto tr1986; - case 112: goto tr1987; - case 3082: goto tr1988; - case 3131: goto tr1989; - case 3338: goto tr1990; - case 3387: goto tr1990; - case 3594: goto tr1991; - case 3643: goto tr1992; - } - goto tr1967; -tr1980: + case 9: goto st637; + case 32: goto st637; + case 40: goto tr1999; + case 41: goto tr2000; + case 97: goto tr2001; + case 100: goto tr2002; + case 101: goto tr2003; + case 105: goto tr2004; + case 107: goto tr2005; + case 109: goto tr2006; + case 110: goto tr2007; + case 111: goto tr2008; + case 112: goto tr2009; + case 3082: goto tr2010; + case 3131: goto tr2011; + case 3338: goto tr2012; + case 3387: goto tr2012; + case 3594: goto tr2013; + case 3643: goto tr2014; + } + goto tr1989; +tr2002: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->svcb.param_position = rdata_tail; } - goto st639; -st639: + goto st645; +st645: if ( ++p == pe ) - goto _test_eof639; -case 639: + goto _test_eof645; +case 645: if ( (*p) == 111 ) - goto st640; - goto tr1967; -st640: + goto st646; + goto tr1989; +st646: if ( ++p == pe ) - goto _test_eof640; -case 640: + goto _test_eof646; +case 646: if ( (*p) == 104 ) - goto st641; - goto tr1967; -st641: + goto st647; + goto tr1989; +st647: if ( ++p == pe ) - goto _test_eof641; -case 641: + goto _test_eof647; +case 647: if ( (*p) == 112 ) - goto st642; - goto tr1967; -st642: + goto st648; + goto tr1989; +st648: if ( ++p == pe ) - goto _test_eof642; -case 642: + goto _test_eof648; +case 648: if ( (*p) == 97 ) - goto st643; - goto tr1967; -st643: + goto st649; + goto tr1989; +st649: if ( ++p == pe ) - goto _test_eof643; -case 643: + goto _test_eof649; +case 649: if ( (*p) == 116 ) - goto st644; - goto tr1967; -st644: + goto st650; + goto tr1989; +st650: if ( ++p == pe ) - goto _test_eof644; -case 644: + goto _test_eof650; +case 650: if ( (*p) == 104 ) - goto st645; - goto tr1967; -st645: + goto st651; + goto tr1989; +st651: if ( ++p == pe ) - goto _test_eof645; -case 645: + goto _test_eof651; +case 651: if ( (*p) == 61 ) - goto tr2015; - goto tr1967; -tr2015: + goto tr2037; + goto tr1989; +tr2037: { uint16_t val = htons(7); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st646; -st646: + goto st652; +st652: if ( ++p == pe ) - goto _test_eof646; -case 646: + goto _test_eof652; +case 652: switch( (*p) ) { - case 32: goto tr1967; - case 34: goto tr2017; - case 59: goto tr1967; + case 32: goto tr1989; + case 34: goto tr2039; + case 59: goto tr1989; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1967; + goto tr1989; } else if ( (*p) >= 9 ) - goto tr1967; - goto tr2016; -tr2016: + goto tr1989; + goto tr2038; +tr2038: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 647;goto st327;} } - goto st647; -st647: + { p--; {stack[top++] = 653;goto st330;} } + goto st653; +st653: if ( ++p == pe ) - goto _test_eof647; -case 647: + goto _test_eof653; +case 653: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61110,19 +62195,19 @@ case 647: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2018; - case 32: goto tr2018; - case 40: goto tr2019; - case 41: goto tr2020; - case 3082: goto tr2021; - case 3131: goto tr2022; - case 3338: goto tr2023; - case 3387: goto tr2023; - case 3594: goto tr2024; - case 3643: goto tr2025; + case 9: goto tr2040; + case 32: goto tr2040; + case 40: goto tr2041; + case 41: goto tr2042; + case 3082: goto tr2043; + case 3131: goto tr2044; + case 3338: goto tr2045; + case 3387: goto tr2045; + case 3594: goto tr2046; + case 3643: goto tr2047; } - goto tr1967; -tr1975: + goto tr1989; +tr1997: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -61134,14 +62219,14 @@ tr1975: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -tr1992: + goto st1519; +tr2014: { s->buffer_length = 0; } @@ -61149,32 +62234,32 @@ tr1992: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -tr2006: + goto st1519; +tr2028: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61185,14 +62270,14 @@ tr2006: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61202,14 +62287,14 @@ tr2006: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -tr2025: + goto st1519; +tr2047: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -61218,14 +62303,14 @@ tr2025: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61235,19 +62320,19 @@ tr2025: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -tr2035: + goto st1519; +tr2057: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61257,26 +62342,26 @@ tr2035: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -tr2080: + goto st1519; +tr2102: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -61289,14 +62374,14 @@ tr2080: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61306,26 +62391,26 @@ tr2080: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -tr2103: + goto st1519; +tr2125: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -61338,14 +62423,14 @@ tr2103: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61355,14 +62440,14 @@ tr2103: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -tr2118: + goto st1519; +tr2140: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -61370,7 +62455,7 @@ tr2118: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61382,7 +62467,7 @@ tr2118: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61392,14 +62477,14 @@ tr2118: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -tr2142: + goto st1519; +tr2164: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -61408,7 +62493,7 @@ tr2142: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61418,7 +62503,7 @@ tr2142: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61428,14 +62513,14 @@ tr2142: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -tr2165: + goto st1519; +tr2187: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -61450,7 +62535,7 @@ tr2165: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61460,14 +62545,14 @@ tr2165: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -tr2177: + goto st1519; +tr2199: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -61482,7 +62567,7 @@ tr2177: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61492,14 +62577,14 @@ tr2177: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -tr2195: + goto st1519; +tr2217: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -61507,14 +62592,14 @@ tr2195: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61524,17 +62609,17 @@ tr2195: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1480; -st1480: + goto st1519; +st1519: if ( ++p == pe ) - goto _test_eof1480; -case 1480: + goto _test_eof1519; +case 1519: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -61554,26 +62639,26 @@ case 1480: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2008; + goto tr2030; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2007; - goto tr1967; -tr2017: + goto tr2029; + goto tr1989; +tr2039: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 648;goto st327;} } - goto st648; -st648: + { p--; {stack[top++] = 654;goto st330;} } + goto st654; +st654: if ( ++p == pe ) - goto _test_eof648; -case 648: + goto _test_eof654; +case 654: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61591,46 +62676,46 @@ case 648: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2018; - case 32: goto tr2018; - case 40: goto tr2019; - case 41: goto tr2020; - case 3082: goto tr2021; - case 3131: goto tr2022; - case 3338: goto tr2023; - case 3387: goto tr2023; - case 3594: goto tr2024; - case 3643: goto tr2025; + case 9: goto tr2040; + case 32: goto tr2040; + case 40: goto tr2041; + case 41: goto tr2042; + case 3082: goto tr2043; + case 3131: goto tr2044; + case 3338: goto tr2045; + case 3387: goto tr2045; + case 3594: goto tr2046; + case 3643: goto tr2047; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2026; + goto tr2048; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2026; + goto tr2048; } else - goto tr2026; - goto tr1967; -tr2026: + goto tr2048; + goto tr1989; +tr2048: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 649;goto st327;} } - goto st649; -st649: + { p--; {stack[top++] = 655;goto st330;} } + goto st655; +st655: if ( ++p == pe ) - goto _test_eof649; -case 649: + goto _test_eof655; +case 655: if ( (*p) == 34 ) - goto tr2027; - goto tr1967; -tr2027: + goto tr2049; + goto tr1989; +tr2049: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -61639,23 +62724,23 @@ tr2027: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st650; -tr2067: + goto st656; +tr2089: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -61668,23 +62753,23 @@ tr2067: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st650; -tr2090: + goto st656; +tr2112: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -61697,11 +62782,11 @@ tr2090: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st650; -tr2185: + goto st656; +tr2207: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -61709,11 +62794,11 @@ tr2185: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st650; -tr2131: + goto st656; +tr2153: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -61722,32 +62807,32 @@ tr2131: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } - goto st650; -tr2197: + goto st656; +tr2219: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61758,14 +62843,14 @@ tr2197: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st650; -st650: + goto st656; +st656: if ( ++p == pe ) - goto _test_eof650; -case 650: + goto _test_eof656; +case 656: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61783,105 +62868,105 @@ case 650: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2028; - case 32: goto tr2028; - case 40: goto tr2029; - case 41: goto tr2030; - case 3082: goto tr2031; - case 3131: goto tr2032; - case 3338: goto tr2033; - case 3387: goto tr2033; - case 3594: goto tr2034; - case 3643: goto tr2035; + case 9: goto tr2050; + case 32: goto tr2050; + case 40: goto tr2051; + case 41: goto tr2052; + case 3082: goto tr2053; + case 3131: goto tr2054; + case 3338: goto tr2055; + case 3387: goto tr2055; + case 3594: goto tr2056; + case 3643: goto tr2057; } - goto tr1967; -tr1981: + goto tr1989; +tr2003: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->svcb.param_position = rdata_tail; } - goto st651; -st651: + goto st657; +st657: if ( ++p == pe ) - goto _test_eof651; -case 651: + goto _test_eof657; +case 657: if ( (*p) == 99 ) - goto st652; - goto tr1967; -st652: + goto st658; + goto tr1989; +st658: if ( ++p == pe ) - goto _test_eof652; -case 652: + goto _test_eof658; +case 658: if ( (*p) == 104 ) - goto st653; - goto tr1967; -st653: + goto st659; + goto tr1989; +st659: if ( ++p == pe ) - goto _test_eof653; -case 653: + goto _test_eof659; +case 659: if ( (*p) == 61 ) - goto tr2038; - goto tr1967; -tr2038: + goto tr2060; + goto tr1989; +tr2060: { uint16_t val = htons(5); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st654; -st654: + goto st660; +st660: if ( ++p == pe ) - goto _test_eof654; -case 654: + goto _test_eof660; +case 660: switch( (*p) ) { - case 34: goto st655; - case 43: goto tr2040; + case 34: goto st661; + case 43: goto tr2062; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2040; + goto tr2062; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2040; + goto tr2062; } else - goto tr2040; - goto tr1967; -st655: + goto tr2062; + goto tr1989; +st661: if ( ++p == pe ) - goto _test_eof655; -case 655: + goto _test_eof661; +case 661: if ( (*p) == 43 ) - goto tr2041; + goto tr2063; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2041; + goto tr2063; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2041; + goto tr2063; } else - goto tr2041; - goto tr1967; -tr2047: + goto tr2063; + goto tr1989; +tr2069: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st656; -tr2041: + goto st662; +tr2063: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -61889,26 +62974,26 @@ tr2041: *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st656; -st656: + goto st662; +st662: if ( ++p == pe ) - goto _test_eof656; -case 656: + goto _test_eof662; +case 662: if ( (*p) == 43 ) - goto tr2042; + goto tr2064; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2042; + goto tr2064; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2042; + goto tr2064; } else - goto tr2042; - goto tr1967; -tr2042: + goto tr2064; + goto tr1989; +tr2064: { *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; @@ -61916,28 +63001,28 @@ tr2042: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st657; -st657: + goto st663; +st663: if ( ++p == pe ) - goto _test_eof657; -case 657: + goto _test_eof663; +case 663: switch( (*p) ) { - case 43: goto tr2043; - case 61: goto st660; + case 43: goto tr2065; + case 61: goto st666; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2043; + goto tr2065; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2043; + goto tr2065; } else - goto tr2043; - goto tr1967; -tr2043: + goto tr2065; + goto tr1989; +tr2065: { *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; @@ -61945,74 +63030,74 @@ tr2043: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st658; -st658: + goto st664; +st664: if ( ++p == pe ) - goto _test_eof658; -case 658: + goto _test_eof664; +case 664: switch( (*p) ) { - case 43: goto tr2045; - case 61: goto st659; + case 43: goto tr2067; + case 61: goto st665; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2045; + goto tr2067; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2045; + goto tr2067; } else - goto tr2045; - goto tr1967; -tr2045: + goto tr2067; + goto tr1989; +tr2067: { *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st659; -st659: + goto st665; +st665: if ( ++p == pe ) - goto _test_eof659; -case 659: + goto _test_eof665; +case 665: switch( (*p) ) { - case 34: goto tr2027; - case 43: goto tr2047; + case 34: goto tr2049; + case 43: goto tr2069; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2047; + goto tr2069; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2047; + goto tr2069; } else - goto tr2047; - goto tr1967; -st660: + goto tr2069; + goto tr1989; +st666: if ( ++p == pe ) - goto _test_eof660; -case 660: + goto _test_eof666; +case 666: if ( (*p) == 61 ) - goto st659; - goto tr1967; -tr2053: + goto st665; + goto tr1989; +tr2075: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st661; -tr2040: + goto st667; +tr2062: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -62020,26 +63105,26 @@ tr2040: *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st661; -st661: + goto st667; +st667: if ( ++p == pe ) - goto _test_eof661; -case 661: + goto _test_eof667; +case 667: if ( (*p) == 43 ) - goto tr2048; + goto tr2070; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2048; + goto tr2070; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2048; + goto tr2070; } else - goto tr2048; - goto tr1967; -tr2048: + goto tr2070; + goto tr1989; +tr2070: { *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; @@ -62047,28 +63132,28 @@ tr2048: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st662; -st662: + goto st668; +st668: if ( ++p == pe ) - goto _test_eof662; -case 662: + goto _test_eof668; +case 668: switch( (*p) ) { - case 43: goto tr2049; - case 61: goto st665; + case 43: goto tr2071; + case 61: goto st671; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2049; + goto tr2071; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2049; + goto tr2071; } else - goto tr2049; - goto tr1967; -tr2049: + goto tr2071; + goto tr1989; +tr2071: { *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; @@ -62076,36 +63161,36 @@ tr2049: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st663; -st663: + goto st669; +st669: if ( ++p == pe ) - goto _test_eof663; -case 663: + goto _test_eof669; +case 669: switch( (*p) ) { - case 43: goto tr2051; - case 61: goto st664; + case 43: goto tr2073; + case 61: goto st670; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2051; + goto tr2073; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2051; + goto tr2073; } else - goto tr2051; - goto tr1967; -tr2051: + goto tr2073; + goto tr1989; +tr2073: { *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st664; -st664: + goto st670; +st670: if ( ++p == pe ) - goto _test_eof664; -case 664: + goto _test_eof670; +case 670: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62123,136 +63208,136 @@ case 664: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2018; - case 32: goto tr2018; - case 40: goto tr2019; - case 41: goto tr2020; - case 43: goto tr2053; - case 3082: goto tr2021; - case 3131: goto tr2022; - case 3338: goto tr2023; - case 3387: goto tr2023; - case 3594: goto tr2024; - case 3643: goto tr2025; + case 9: goto tr2040; + case 32: goto tr2040; + case 40: goto tr2041; + case 41: goto tr2042; + case 43: goto tr2075; + case 3082: goto tr2043; + case 3131: goto tr2044; + case 3338: goto tr2045; + case 3387: goto tr2045; + case 3594: goto tr2046; + case 3643: goto tr2047; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr2053; + goto tr2075; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2053; + goto tr2075; } else - goto tr2053; - goto tr1967; -st665: + goto tr2075; + goto tr1989; +st671: if ( ++p == pe ) - goto _test_eof665; -case 665: + goto _test_eof671; +case 671: if ( (*p) == 61 ) - goto st664; - goto tr1967; -tr1982: + goto st670; + goto tr1989; +tr2004: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->svcb.param_position = rdata_tail; } - goto st666; -st666: + goto st672; +st672: if ( ++p == pe ) - goto _test_eof666; -case 666: + goto _test_eof672; +case 672: if ( (*p) == 112 ) - goto st667; - goto tr1967; -st667: + goto st673; + goto tr1989; +st673: if ( ++p == pe ) - goto _test_eof667; -case 667: + goto _test_eof673; +case 673: if ( (*p) == 118 ) - goto st668; - goto tr1967; -st668: + goto st674; + goto tr1989; +st674: if ( ++p == pe ) - goto _test_eof668; -case 668: + goto _test_eof674; +case 674: switch( (*p) ) { - case 52: goto st669; - case 54: goto st680; + case 52: goto st675; + case 54: goto st686; } - goto tr1967; -st669: + goto tr1989; +st675: if ( ++p == pe ) - goto _test_eof669; -case 669: + goto _test_eof675; +case 675: if ( (*p) == 104 ) - goto st670; - goto tr1967; -st670: + goto st676; + goto tr1989; +st676: if ( ++p == pe ) - goto _test_eof670; -case 670: + goto _test_eof676; +case 676: if ( (*p) == 105 ) - goto st671; - goto tr1967; -st671: + goto st677; + goto tr1989; +st677: if ( ++p == pe ) - goto _test_eof671; -case 671: + goto _test_eof677; +case 677: if ( (*p) == 110 ) - goto st672; - goto tr1967; -st672: + goto st678; + goto tr1989; +st678: if ( ++p == pe ) - goto _test_eof672; -case 672: + goto _test_eof678; +case 678: if ( (*p) == 116 ) - goto st673; - goto tr1967; -st673: + goto st679; + goto tr1989; +st679: if ( ++p == pe ) - goto _test_eof673; -case 673: + goto _test_eof679; +case 679: if ( (*p) == 61 ) - goto tr2062; - goto tr1967; -tr2062: + goto tr2084; + goto tr1989; +tr2084: { uint16_t val = htons(4); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st674; -st674: + goto st680; +st680: if ( ++p == pe ) - goto _test_eof674; -case 674: + goto _test_eof680; +case 680: switch( (*p) ) { - case 34: goto st675; - case 46: goto tr2065; + case 34: goto st681; + case 46: goto tr2087; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2065; - goto tr2063; -st675: + goto tr2087; + goto tr2085; +st681: if ( ++p == pe ) - goto _test_eof675; -case 675: + goto _test_eof681; +case 681: if ( (*p) == 46 ) - goto tr2066; + goto tr2088; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2066; - goto tr2063; -tr2066: + goto tr2088; + goto tr2085; +tr2088: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -62263,21 +63348,21 @@ tr2066: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st676; -tr2069: + goto st682; +tr2091: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st676; -tr2070: + goto st682; +tr2092: { s->buffer_length = 0; } @@ -62286,57 +63371,57 @@ tr2070: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st676; -st676: + goto st682; +st682: if ( ++p == pe ) - goto _test_eof676; -case 676: + goto _test_eof682; +case 682: switch( (*p) ) { - case 34: goto tr2067; - case 44: goto tr2068; - case 46: goto tr2069; + case 34: goto tr2089; + case 44: goto tr2090; + case 46: goto tr2091; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2069; - goto tr2063; -tr2068: + goto tr2091; + goto tr2085; +tr2090: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st677; -st677: + goto st683; +st683: if ( ++p == pe ) - goto _test_eof677; -case 677: + goto _test_eof683; +case 683: if ( (*p) == 46 ) - goto tr2070; + goto tr2092; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2070; - goto tr2063; -tr2065: + goto tr2092; + goto tr2085; +tr2087: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -62347,21 +63432,21 @@ tr2065: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st678; -tr2075: + goto st684; +tr2097: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st678; -tr2081: + goto st684; +tr2103: { s->buffer_length = 0; } @@ -62370,14 +63455,14 @@ tr2081: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st678; -st678: + goto st684; +st684: if ( ++p == pe ) - goto _test_eof678; -case 678: + goto _test_eof684; +case 684: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62395,131 +63480,131 @@ case 678: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2071; - case 32: goto tr2071; - case 40: goto tr2072; - case 41: goto tr2073; - case 44: goto tr2074; - case 46: goto tr2075; - case 3082: goto tr2076; - case 3131: goto tr2077; - case 3338: goto tr2078; - case 3387: goto tr2078; - case 3594: goto tr2079; - case 3643: goto tr2080; + case 9: goto tr2093; + case 32: goto tr2093; + case 40: goto tr2094; + case 41: goto tr2095; + case 44: goto tr2096; + case 46: goto tr2097; + case 3082: goto tr2098; + case 3131: goto tr2099; + case 3338: goto tr2100; + case 3387: goto tr2100; + case 3594: goto tr2101; + case 3643: goto tr2102; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2075; - goto tr2063; -tr2074: + goto tr2097; + goto tr2085; +tr2096: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st679; -st679: + goto st685; +st685: if ( ++p == pe ) - goto _test_eof679; -case 679: + goto _test_eof685; +case 685: if ( (*p) == 46 ) - goto tr2081; + goto tr2103; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2081; - goto tr2063; -st680: + goto tr2103; + goto tr2085; +st686: if ( ++p == pe ) - goto _test_eof680; -case 680: + goto _test_eof686; +case 686: if ( (*p) == 104 ) - goto st681; - goto tr1967; -st681: + goto st687; + goto tr1989; +st687: if ( ++p == pe ) - goto _test_eof681; -case 681: + goto _test_eof687; +case 687: if ( (*p) == 105 ) - goto st682; - goto tr1967; -st682: + goto st688; + goto tr1989; +st688: if ( ++p == pe ) - goto _test_eof682; -case 682: + goto _test_eof688; +case 688: if ( (*p) == 110 ) - goto st683; - goto tr1967; -st683: + goto st689; + goto tr1989; +st689: if ( ++p == pe ) - goto _test_eof683; -case 683: + goto _test_eof689; +case 689: if ( (*p) == 116 ) - goto st684; - goto tr1967; -st684: + goto st690; + goto tr1989; +st690: if ( ++p == pe ) - goto _test_eof684; -case 684: + goto _test_eof690; +case 690: if ( (*p) == 61 ) - goto tr2086; - goto tr1967; -tr2086: + goto tr2108; + goto tr1989; +tr2108: { uint16_t val = htons(6); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st685; -st685: + goto st691; +st691: if ( ++p == pe ) - goto _test_eof685; -case 685: + goto _test_eof691; +case 691: switch( (*p) ) { - case 34: goto st686; - case 46: goto tr2088; + case 34: goto st692; + case 46: goto tr2110; } if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2088; + goto tr2110; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2088; + goto tr2110; } else - goto tr2088; - goto tr2063; -st686: + goto tr2110; + goto tr2085; +st692: if ( ++p == pe ) - goto _test_eof686; -case 686: + goto _test_eof692; +case 692: if ( (*p) == 46 ) - goto tr2089; + goto tr2111; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2089; + goto tr2111; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2089; + goto tr2111; } else - goto tr2089; - goto tr2063; -tr2089: + goto tr2111; + goto tr2085; +tr2111: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -62530,21 +63615,21 @@ tr2089: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st687; -tr2092: + goto st693; +tr2114: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st687; -tr2093: + goto st693; +tr2115: { s->buffer_length = 0; } @@ -62553,69 +63638,69 @@ tr2093: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st687; -st687: + goto st693; +st693: if ( ++p == pe ) - goto _test_eof687; -case 687: + goto _test_eof693; +case 693: switch( (*p) ) { - case 34: goto tr2090; - case 44: goto tr2091; - case 46: goto tr2092; + case 34: goto tr2112; + case 44: goto tr2113; + case 46: goto tr2114; } if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2092; + goto tr2114; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2092; + goto tr2114; } else - goto tr2092; - goto tr2063; -tr2091: + goto tr2114; + goto tr2085; +tr2113: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st688; -st688: + goto st694; +st694: if ( ++p == pe ) - goto _test_eof688; -case 688: + goto _test_eof694; +case 694: if ( (*p) == 46 ) - goto tr2093; + goto tr2115; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2093; + goto tr2115; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2093; + goto tr2115; } else - goto tr2093; - goto tr2063; -tr2088: + goto tr2115; + goto tr2085; +tr2110: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -62626,21 +63711,21 @@ tr2088: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st689; -tr2098: + goto st695; +tr2120: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st689; -tr2104: + goto st695; +tr2126: { s->buffer_length = 0; } @@ -62649,14 +63734,14 @@ tr2104: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st689; -st689: + goto st695; +st695: if ( ++p == pe ) - goto _test_eof689; -case 689: + goto _test_eof695; +case 695: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62674,92 +63759,92 @@ case 689: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2094; - case 32: goto tr2094; - case 40: goto tr2095; - case 41: goto tr2096; - case 44: goto tr2097; - case 46: goto tr2098; - case 3082: goto tr2099; - case 3131: goto tr2100; - case 3338: goto tr2101; - case 3387: goto tr2101; - case 3594: goto tr2102; - case 3643: goto tr2103; + case 9: goto tr2116; + case 32: goto tr2116; + case 40: goto tr2117; + case 41: goto tr2118; + case 44: goto tr2119; + case 46: goto tr2120; + case 3082: goto tr2121; + case 3131: goto tr2122; + case 3338: goto tr2123; + case 3387: goto tr2123; + case 3594: goto tr2124; + case 3643: goto tr2125; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 58 ) - goto tr2098; + goto tr2120; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2098; + goto tr2120; } else - goto tr2098; - goto tr2063; -tr2097: + goto tr2120; + goto tr2085; +tr2119: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st690; -st690: + goto st696; +st696: if ( ++p == pe ) - goto _test_eof690; -case 690: + goto _test_eof696; +case 696: if ( (*p) == 46 ) - goto tr2104; + goto tr2126; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2104; + goto tr2126; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2104; + goto tr2126; } else - goto tr2104; - goto tr2063; -tr1983: + goto tr2126; + goto tr2085; +tr2005: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->svcb.param_position = rdata_tail; } - goto st691; -st691: + goto st697; +st697: if ( ++p == pe ) - goto _test_eof691; -case 691: + goto _test_eof697; +case 697: if ( (*p) == 101 ) - goto st692; - goto tr1967; -st692: + goto st698; + goto tr1989; +st698: if ( ++p == pe ) - goto _test_eof692; -case 692: + goto _test_eof698; +case 698: if ( (*p) == 121 ) - goto st693; - goto tr1967; -st693: + goto st699; + goto tr1989; +st699: if ( ++p == pe ) - goto _test_eof693; -case 693: + goto _test_eof699; +case 699: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2108; - goto tr2107; -tr2108: + goto tr2130; + goto tr2129; +tr2130: { s->number64 = 0; } @@ -62774,11 +63859,11 @@ tr2108: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st694; -tr2112: + goto st700; +tr2134: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -62790,14 +63875,14 @@ tr2112: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st694; -st694: + goto st700; +st700: if ( ++p == pe ) - goto _test_eof694; -case 694: + goto _test_eof700; +case 700: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62815,22 +63900,22 @@ case 694: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2109; - case 32: goto tr2109; - case 40: goto tr2110; - case 41: goto tr2111; - case 61: goto tr2113; - case 3082: goto tr2114; - case 3131: goto tr2115; - case 3338: goto tr2116; - case 3387: goto tr2116; - case 3594: goto tr2117; - case 3643: goto tr2118; + case 9: goto tr2131; + case 32: goto tr2131; + case 40: goto tr2132; + case 41: goto tr2133; + case 61: goto tr2135; + case 3082: goto tr2136; + case 3131: goto tr2137; + case 3338: goto tr2138; + case 3387: goto tr2138; + case 3594: goto tr2139; + case 3643: goto tr2140; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2112; - goto tr2107; -tr2113: + goto tr2134; + goto tr2129; +tr2135: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -62838,126 +63923,126 @@ tr2113: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st695; -st695: + goto st701; +st701: if ( ++p == pe ) - goto _test_eof695; -case 695: + goto _test_eof701; +case 701: switch( (*p) ) { - case 32: goto tr1967; - case 59: goto tr1967; + case 32: goto tr1989; + case 59: goto tr1989; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1967; + goto tr1989; } else if ( (*p) >= 9 ) - goto tr1967; - goto tr2016; -tr1984: + goto tr1989; + goto tr2038; +tr2006: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->svcb.param_position = rdata_tail; } - goto st696; -st696: + goto st702; +st702: if ( ++p == pe ) - goto _test_eof696; -case 696: + goto _test_eof702; +case 702: if ( (*p) == 97 ) - goto st697; - goto tr1967; -st697: + goto st703; + goto tr1989; +st703: if ( ++p == pe ) - goto _test_eof697; -case 697: + goto _test_eof703; +case 703: if ( (*p) == 110 ) - goto st698; - goto tr1967; -st698: + goto st704; + goto tr1989; +st704: if ( ++p == pe ) - goto _test_eof698; -case 698: + goto _test_eof704; +case 704: if ( (*p) == 100 ) - goto st699; - goto tr1967; -st699: + goto st705; + goto tr1989; +st705: if ( ++p == pe ) - goto _test_eof699; -case 699: + goto _test_eof705; +case 705: if ( (*p) == 97 ) - goto st700; - goto tr1967; -st700: + goto st706; + goto tr1989; +st706: if ( ++p == pe ) - goto _test_eof700; -case 700: + goto _test_eof706; +case 706: if ( (*p) == 116 ) - goto st701; - goto tr1967; -st701: + goto st707; + goto tr1989; +st707: if ( ++p == pe ) - goto _test_eof701; -case 701: + goto _test_eof707; +case 707: if ( (*p) == 111 ) - goto st702; - goto tr1967; -st702: + goto st708; + goto tr1989; +st708: if ( ++p == pe ) - goto _test_eof702; -case 702: + goto _test_eof708; +case 708: if ( (*p) == 114 ) - goto st703; - goto tr1967; -st703: + goto st709; + goto tr1989; +st709: if ( ++p == pe ) - goto _test_eof703; -case 703: + goto _test_eof709; +case 709: if ( (*p) == 121 ) - goto st704; - goto tr1967; -st704: + goto st710; + goto tr1989; +st710: if ( ++p == pe ) - goto _test_eof704; -case 704: + goto _test_eof710; +case 710: if ( (*p) == 61 ) - goto tr2127; - goto tr1967; -tr2127: + goto tr2149; + goto tr1989; +tr2149: { uint16_t val = htons(0); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st705; -st705: + goto st711; +st711: if ( ++p == pe ) - goto _test_eof705; -case 705: + goto _test_eof711; +case 711: if ( (*p) == 34 ) - goto st706; + goto st712; if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2129; + goto tr2151; } else if ( (*p) >= 65 ) - goto tr2129; - goto tr1967; -st706: + goto tr2151; + goto tr1989; +st712: if ( ++p == pe ) - goto _test_eof706; -case 706: + goto _test_eof712; +case 712: if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2130; + goto tr2152; } else if ( (*p) >= 65 ) - goto tr2130; - goto tr1967; -tr2130: + goto tr2152; + goto tr1989; +tr2152: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } @@ -62967,34 +64052,34 @@ tr2130: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 707;goto st574;} } - goto st707; -tr2133: - { p--; {stack[top++] = 707;goto st574;} } - goto st707; -st707: + { p--; {stack[top++] = 713;goto st580;} } + goto st713; +tr2155: + { p--; {stack[top++] = 713;goto st580;} } + goto st713; +st713: if ( ++p == pe ) - goto _test_eof707; -case 707: + goto _test_eof713; +case 713: switch( (*p) ) { - case 34: goto tr2131; - case 44: goto st708; + case 34: goto tr2153; + case 44: goto st714; } - goto tr1967; -st708: + goto tr1989; +st714: if ( ++p == pe ) - goto _test_eof708; -case 708: + goto _test_eof714; +case 714: if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2133; + goto tr2155; } else if ( (*p) >= 65 ) - goto tr2133; - goto tr1967; -tr2129: + goto tr2155; + goto tr1989; +tr2151: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } @@ -63004,18 +64089,18 @@ tr2129: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 709;goto st574;} } - goto st709; -tr2143: - { p--; {stack[top++] = 709;goto st574;} } - goto st709; -st709: + { p--; {stack[top++] = 715;goto st580;} } + goto st715; +tr2165: + { p--; {stack[top++] = 715;goto st580;} } + goto st715; +st715: if ( ++p == pe ) - goto _test_eof709; -case 709: + goto _test_eof715; +case 715: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -63033,210 +64118,140 @@ case 709: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2134; - case 32: goto tr2134; - case 40: goto tr2135; - case 41: goto tr2136; - case 44: goto st710; - case 3082: goto tr2138; - case 3131: goto tr2139; - case 3338: goto tr2140; - case 3387: goto tr2140; - case 3594: goto tr2141; - case 3643: goto tr2142; + case 9: goto tr2156; + case 32: goto tr2156; + case 40: goto tr2157; + case 41: goto tr2158; + case 44: goto st716; + case 3082: goto tr2160; + case 3131: goto tr2161; + case 3338: goto tr2162; + case 3387: goto tr2162; + case 3594: goto tr2163; + case 3643: goto tr2164; } - goto tr1967; -st710: + goto tr1989; +st716: if ( ++p == pe ) - goto _test_eof710; -case 710: + goto _test_eof716; +case 716: if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2143; + goto tr2165; } else if ( (*p) >= 65 ) - goto tr2143; - goto tr1967; -tr1985: + goto tr2165; + goto tr1989; +tr2007: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->svcb.param_position = rdata_tail; } - goto st711; -st711: - if ( ++p == pe ) - goto _test_eof711; -case 711: - if ( (*p) == 111 ) - goto st712; - goto tr1967; -st712: - if ( ++p == pe ) - goto _test_eof712; -case 712: - if ( (*p) == 45 ) - goto st713; - goto tr1967; -st713: - if ( ++p == pe ) - goto _test_eof713; -case 713: - if ( (*p) == 100 ) - goto st714; - goto tr1967; -st714: - if ( ++p == pe ) - goto _test_eof714; -case 714: - if ( (*p) == 101 ) - goto st715; - goto tr1967; -st715: - if ( ++p == pe ) - goto _test_eof715; -case 715: - if ( (*p) == 102 ) - goto st716; - goto tr1967; -st716: - if ( ++p == pe ) - goto _test_eof716; -case 716: - if ( (*p) == 97 ) - goto st717; - goto tr1967; + goto st717; st717: if ( ++p == pe ) goto _test_eof717; case 717: - if ( (*p) == 117 ) + if ( (*p) == 111 ) goto st718; - goto tr1967; + goto tr1989; st718: if ( ++p == pe ) goto _test_eof718; case 718: - if ( (*p) == 108 ) + if ( (*p) == 45 ) goto st719; - goto tr1967; + goto tr1989; st719: if ( ++p == pe ) goto _test_eof719; case 719: - if ( (*p) == 116 ) + if ( (*p) == 100 ) goto st720; - goto tr1967; + goto tr1989; st720: if ( ++p == pe ) goto _test_eof720; case 720: - if ( (*p) == 45 ) + if ( (*p) == 101 ) goto st721; - goto tr1967; + goto tr1989; st721: if ( ++p == pe ) goto _test_eof721; case 721: - if ( (*p) == 97 ) + if ( (*p) == 102 ) goto st722; - goto tr1967; + goto tr1989; st722: if ( ++p == pe ) goto _test_eof722; case 722: - if ( (*p) == 108 ) + if ( (*p) == 97 ) goto st723; - goto tr1967; + goto tr1989; st723: if ( ++p == pe ) goto _test_eof723; case 723: - if ( (*p) == 112 ) + if ( (*p) == 117 ) goto st724; - goto tr1967; + goto tr1989; st724: if ( ++p == pe ) goto _test_eof724; case 724: - if ( (*p) == 110 ) + if ( (*p) == 108 ) goto st725; - goto tr1967; + goto tr1989; st725: if ( ++p == pe ) goto _test_eof725; case 725: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr2158; - case 32: goto tr2158; - case 40: goto tr2159; - case 41: goto tr2160; - case 3082: goto tr2161; - case 3131: goto tr2162; - case 3338: goto tr2163; - case 3387: goto tr2163; - case 3594: goto tr2164; - case 3643: goto tr2165; - } - goto tr1967; -tr1986: - { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} - } - s->svcb.param_position = rdata_tail; - } - goto st726; + if ( (*p) == 116 ) + goto st726; + goto tr1989; st726: if ( ++p == pe ) goto _test_eof726; case 726: - if ( (*p) == 104 ) + if ( (*p) == 45 ) goto st727; - goto tr1967; + goto tr1989; st727: if ( ++p == pe ) goto _test_eof727; case 727: - if ( (*p) == 116 ) + if ( (*p) == 97 ) goto st728; - goto tr1967; + goto tr1989; st728: if ( ++p == pe ) goto _test_eof728; case 728: - if ( (*p) == 116 ) + if ( (*p) == 108 ) goto st729; - goto tr1967; + goto tr1989; st729: if ( ++p == pe ) goto _test_eof729; case 729: if ( (*p) == 112 ) goto st730; - goto tr1967; + goto tr1989; st730: if ( ++p == pe ) goto _test_eof730; case 730: + if ( (*p) == 110 ) + goto st731; + goto tr1989; +st731: + if ( ++p == pe ) + goto _test_eof731; +case 731: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -63254,79 +64269,149 @@ case 730: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2170; - case 32: goto tr2170; - case 40: goto tr2171; - case 41: goto tr2172; - case 3082: goto tr2173; - case 3131: goto tr2174; - case 3338: goto tr2175; - case 3387: goto tr2175; - case 3594: goto tr2176; - case 3643: goto tr2177; + case 9: goto tr2180; + case 32: goto tr2180; + case 40: goto tr2181; + case 41: goto tr2182; + case 3082: goto tr2183; + case 3131: goto tr2184; + case 3338: goto tr2185; + case 3387: goto tr2185; + case 3594: goto tr2186; + case 3643: goto tr2187; } - goto tr1967; -tr1987: + goto tr1989; +tr2008: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } s->svcb.param_position = rdata_tail; } - goto st731; -st731: - if ( ++p == pe ) - goto _test_eof731; -case 731: - if ( (*p) == 111 ) - goto st732; - goto tr1967; + goto st732; st732: if ( ++p == pe ) goto _test_eof732; case 732: - if ( (*p) == 114 ) + if ( (*p) == 104 ) goto st733; - goto tr1967; + goto tr1989; st733: if ( ++p == pe ) goto _test_eof733; case 733: if ( (*p) == 116 ) goto st734; - goto tr1967; + goto tr1989; st734: if ( ++p == pe ) goto _test_eof734; case 734: + if ( (*p) == 116 ) + goto st735; + goto tr1989; +st735: + if ( ++p == pe ) + goto _test_eof735; +case 735: + if ( (*p) == 112 ) + goto st736; + goto tr1989; +st736: + if ( ++p == pe ) + goto _test_eof736; +case 736: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2192; + case 32: goto tr2192; + case 40: goto tr2193; + case 41: goto tr2194; + case 3082: goto tr2195; + case 3131: goto tr2196; + case 3338: goto tr2197; + case 3387: goto tr2197; + case 3594: goto tr2198; + case 3643: goto tr2199; + } + goto tr1989; +tr2009: + { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + s->svcb.param_position = rdata_tail; + } + goto st737; +st737: + if ( ++p == pe ) + goto _test_eof737; +case 737: + if ( (*p) == 111 ) + goto st738; + goto tr1989; +st738: + if ( ++p == pe ) + goto _test_eof738; +case 738: + if ( (*p) == 114 ) + goto st739; + goto tr1989; +st739: + if ( ++p == pe ) + goto _test_eof739; +case 739: + if ( (*p) == 116 ) + goto st740; + goto tr1989; +st740: + if ( ++p == pe ) + goto _test_eof740; +case 740: if ( (*p) == 61 ) - goto tr2181; - goto tr1967; -tr2181: + goto tr2203; + goto tr1989; +tr2203: { uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st735; -st735: + goto st741; +st741: if ( ++p == pe ) - goto _test_eof735; -case 735: + goto _test_eof741; +case 741: if ( (*p) == 34 ) - goto st736; + goto st742; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2183; - goto tr2107; -st736: + goto tr2205; + goto tr2129; +st742: if ( ++p == pe ) - goto _test_eof736; -case 736: + goto _test_eof742; +case 742: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2184; - goto tr2107; -tr2186: + goto tr2206; + goto tr2129; +tr2208: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -63338,11 +64423,11 @@ tr2186: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st737; -tr2184: + goto st743; +tr2206: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -63351,7 +64436,7 @@ tr2184: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -63368,20 +64453,20 @@ tr2184: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st737; -st737: + goto st743; +st743: if ( ++p == pe ) - goto _test_eof737; -case 737: + goto _test_eof743; +case 743: if ( (*p) == 34 ) - goto tr2185; + goto tr2207; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2186; - goto tr2107; -tr2190: + goto tr2208; + goto tr2129; +tr2212: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -63393,11 +64478,11 @@ tr2190: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st738; -tr2183: + goto st744; +tr2205: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -63406,7 +64491,7 @@ tr2183: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -63423,14 +64508,14 @@ tr2183: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st738; -st738: + goto st744; +st744: if ( ++p == pe ) - goto _test_eof738; -case 738: + goto _test_eof744; +case 744: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -63448,21 +64533,21 @@ case 738: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2187; - case 32: goto tr2187; - case 40: goto tr2188; - case 41: goto tr2189; - case 3082: goto tr2191; - case 3131: goto tr2192; - case 3338: goto tr2193; - case 3387: goto tr2193; - case 3594: goto tr2194; - case 3643: goto tr2195; + case 9: goto tr2209; + case 32: goto tr2209; + case 40: goto tr2210; + case 41: goto tr2211; + case 3082: goto tr2213; + case 3131: goto tr2214; + case 3338: goto tr2215; + case 3387: goto tr2215; + case 3594: goto tr2216; + case 3643: goto tr2217; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2190; - goto tr2107; -tr1998: + goto tr2212; + goto tr2129; +tr2020: { s->comma_list = true; s->pending_backslash = false; @@ -63473,7 +64558,7 @@ tr1998: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -63481,15 +64566,15 @@ tr1998: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 739;goto st327;} } - goto st739; -st739: + { p--; {stack[top++] = 745;goto st330;} } + goto st745; +st745: if ( ++p == pe ) - goto _test_eof739; -case 739: + goto _test_eof745; +case 745: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -63507,27 +64592,27 @@ case 739: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1999; - case 32: goto tr1999; - case 40: goto tr2000; - case 41: goto tr2001; - case 3082: goto tr2002; - case 3131: goto tr2003; - case 3338: goto tr2004; - case 3387: goto tr2004; - case 3594: goto tr2005; - case 3643: goto tr2006; + case 9: goto tr2021; + case 32: goto tr2021; + case 40: goto tr2022; + case 41: goto tr2023; + case 3082: goto tr2024; + case 3131: goto tr2025; + case 3338: goto tr2026; + case 3387: goto tr2026; + case 3594: goto tr2027; + case 3643: goto tr2028; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2196; + goto tr2218; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2196; + goto tr2218; } else - goto tr2196; - goto tr1967; -tr2196: + goto tr2218; + goto tr1989; +tr2218: { s->comma_list = true; s->pending_backslash = false; @@ -63538,7 +64623,7 @@ tr2196: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -63546,38 +64631,38 @@ tr2196: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 740;goto st327;} } - goto st740; -st740: + { p--; {stack[top++] = 746;goto st330;} } + goto st746; +st746: if ( ++p == pe ) - goto _test_eof740; -case 740: + goto _test_eof746; +case 746: if ( (*p) == 34 ) - goto tr2197; - goto tr1967; -st741: + goto tr2219; + goto tr1989; +st747: if ( ++p == pe ) - goto _test_eof741; -case 741: + goto _test_eof747; +case 747: switch( (*p) ) { - case 68: goto st743; - case 69: goto st758; - case 73: goto st797; - case 80: goto st805; - case 82: goto st818; - case 100: goto st743; - case 101: goto st758; - case 105: goto st797; - case 112: goto st805; - case 114: goto st818; + case 68: goto st749; + case 69: goto st764; + case 73: goto st803; + case 80: goto st811; + case 82: goto st824; + case 100: goto st749; + case 101: goto st764; + case 105: goto st803; + case 112: goto st811; + case 114: goto st824; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2199; - goto tr2198; -tr2199: + goto tr2221; + goto tr2220; +tr2221: { s->number64 = 0; } @@ -63592,11 +64677,11 @@ tr2199: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st742; -tr2206: + goto st748; +tr2228: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -63608,450 +64693,400 @@ tr2206: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st742; -st742: + goto st748; +st748: if ( ++p == pe ) - goto _test_eof742; -case 742: + goto _test_eof748; +case 748: switch( (*p) ) { - case 32: goto tr2205; - case 59: goto tr2205; + case 32: goto tr2227; + case 59: goto tr2227; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2205; + goto tr2227; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2206; + goto tr2228; } else - goto tr2205; - goto tr2198; -tr2205: + goto tr2227; + goto tr2220; +tr2227: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2209: + goto st1520; +tr2231: { *(rdata_tail++) = 2; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2211: + goto st1520; +tr2233: { *(rdata_tail++) = 3; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2223: + goto st1520; +tr2245: { *(rdata_tail++) = 6; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2233: + goto st1520; +tr2255: { *(rdata_tail++) = 12; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2247: + goto st1520; +tr2269: { *(rdata_tail++) = 13; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2256: + goto st1520; +tr2278: { *(rdata_tail++) = 14; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2263: + goto st1520; +tr2285: { *(rdata_tail++) = 15; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2266: + goto st1520; +tr2288: { *(rdata_tail++) = 16; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2274: + goto st1520; +tr2296: { *(rdata_tail++) = 252; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2285: + goto st1520; +tr2307: { *(rdata_tail++) = 253; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2288: + goto st1520; +tr2310: { *(rdata_tail++) = 254; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2295: + goto st1520; +tr2317: { *(rdata_tail++) = 1; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2301: + goto st1520; +tr2323: { *(rdata_tail++) = 5; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2313: + goto st1520; +tr2335: { *(rdata_tail++) = 7; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2316: + goto st1520; +tr2338: { *(rdata_tail++) = 8; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -tr2319: + goto st1520; +tr2341: { *(rdata_tail++) = 10; } { p--; {cs = stack[--top];goto _again;} } - goto st1481; -st1481: + goto st1520; +st1520: if ( ++p == pe ) - goto _test_eof1481; -case 1481: + goto _test_eof1520; +case 1520: goto st0; -st743: - if ( ++p == pe ) - goto _test_eof743; -case 743: - switch( (*p) ) { - case 72: goto st744; - case 83: goto st745; - case 104: goto st744; - case 115: goto st745; - } - goto tr2198; -st744: - if ( ++p == pe ) - goto _test_eof744; -case 744: - switch( (*p) ) { - case 32: goto tr2209; - case 59: goto tr2209; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2209; - } else if ( (*p) >= 9 ) - goto tr2209; - goto tr2198; -st745: - if ( ++p == pe ) - goto _test_eof745; -case 745: - switch( (*p) ) { - case 65: goto st746; - case 97: goto st746; - } - goto tr2198; -st746: - if ( ++p == pe ) - goto _test_eof746; -case 746: - switch( (*p) ) { - case 32: goto tr2211; - case 45: goto st747; - case 59: goto tr2211; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2211; - } else if ( (*p) >= 9 ) - goto tr2211; - goto tr2198; -st747: - if ( ++p == pe ) - goto _test_eof747; -case 747: - switch( (*p) ) { - case 78: goto st748; - case 110: goto st748; - } - goto tr2198; -st748: - if ( ++p == pe ) - goto _test_eof748; -case 748: - switch( (*p) ) { - case 83: goto st749; - case 115: goto st749; - } - goto tr2198; st749: if ( ++p == pe ) goto _test_eof749; case 749: switch( (*p) ) { - case 69: goto st750; - case 101: goto st750; + case 72: goto st750; + case 83: goto st751; + case 104: goto st750; + case 115: goto st751; } - goto tr2198; + goto tr2220; st750: if ( ++p == pe ) goto _test_eof750; case 750: switch( (*p) ) { - case 67: goto st751; - case 99: goto st751; + case 32: goto tr2231; + case 59: goto tr2231; } - goto tr2198; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2231; + } else if ( (*p) >= 9 ) + goto tr2231; + goto tr2220; st751: if ( ++p == pe ) goto _test_eof751; case 751: - if ( (*p) == 51 ) - goto st752; - goto tr2198; + switch( (*p) ) { + case 65: goto st752; + case 97: goto st752; + } + goto tr2220; st752: if ( ++p == pe ) goto _test_eof752; case 752: - if ( (*p) == 45 ) - goto st753; - goto tr2198; + switch( (*p) ) { + case 32: goto tr2233; + case 45: goto st753; + case 59: goto tr2233; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2233; + } else if ( (*p) >= 9 ) + goto tr2233; + goto tr2220; st753: if ( ++p == pe ) goto _test_eof753; case 753: switch( (*p) ) { - case 83: goto st754; - case 115: goto st754; + case 78: goto st754; + case 110: goto st754; } - goto tr2198; + goto tr2220; st754: if ( ++p == pe ) goto _test_eof754; case 754: switch( (*p) ) { - case 72: goto st755; - case 104: goto st755; + case 83: goto st755; + case 115: goto st755; } - goto tr2198; + goto tr2220; st755: if ( ++p == pe ) goto _test_eof755; case 755: switch( (*p) ) { - case 65: goto st756; - case 97: goto st756; + case 69: goto st756; + case 101: goto st756; } - goto tr2198; + goto tr2220; st756: if ( ++p == pe ) goto _test_eof756; case 756: - if ( (*p) == 49 ) - goto st757; - goto tr2198; + switch( (*p) ) { + case 67: goto st757; + case 99: goto st757; + } + goto tr2220; st757: if ( ++p == pe ) goto _test_eof757; case 757: - switch( (*p) ) { - case 32: goto tr2223; - case 59: goto tr2223; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2223; - } else if ( (*p) >= 9 ) - goto tr2223; - goto tr2198; + if ( (*p) == 51 ) + goto st758; + goto tr2220; st758: if ( ++p == pe ) goto _test_eof758; case 758: - switch( (*p) ) { - case 67: goto st759; - case 68: goto st788; - case 99: goto st759; - case 100: goto st788; - } - goto tr2198; + if ( (*p) == 45 ) + goto st759; + goto tr2220; st759: if ( ++p == pe ) goto _test_eof759; case 759: switch( (*p) ) { - case 67: goto st760; - case 68: goto st766; - case 99: goto st760; - case 100: goto st766; + case 83: goto st760; + case 115: goto st760; } - goto tr2198; + goto tr2220; st760: if ( ++p == pe ) goto _test_eof760; case 760: - if ( (*p) == 45 ) - goto st761; - goto tr2198; + switch( (*p) ) { + case 72: goto st761; + case 104: goto st761; + } + goto tr2220; st761: if ( ++p == pe ) goto _test_eof761; case 761: switch( (*p) ) { - case 71: goto st762; - case 103: goto st762; + case 65: goto st762; + case 97: goto st762; } - goto tr2198; + goto tr2220; st762: if ( ++p == pe ) goto _test_eof762; case 762: - switch( (*p) ) { - case 79: goto st763; - case 111: goto st763; - } - goto tr2198; + if ( (*p) == 49 ) + goto st763; + goto tr2220; st763: if ( ++p == pe ) goto _test_eof763; case 763: switch( (*p) ) { - case 83: goto st764; - case 115: goto st764; + case 32: goto tr2245; + case 59: goto tr2245; } - goto tr2198; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2245; + } else if ( (*p) >= 9 ) + goto tr2245; + goto tr2220; st764: if ( ++p == pe ) goto _test_eof764; case 764: switch( (*p) ) { - case 84: goto st765; - case 116: goto st765; + case 67: goto st765; + case 68: goto st794; + case 99: goto st765; + case 100: goto st794; } - goto tr2198; + goto tr2220; st765: if ( ++p == pe ) goto _test_eof765; case 765: switch( (*p) ) { - case 32: goto tr2233; - case 59: goto tr2233; + case 67: goto st766; + case 68: goto st772; + case 99: goto st766; + case 100: goto st772; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2233; - } else if ( (*p) >= 9 ) - goto tr2233; - goto tr2198; + goto tr2220; st766: if ( ++p == pe ) goto _test_eof766; case 766: - switch( (*p) ) { - case 83: goto st767; - case 115: goto st767; - } - goto tr2198; + if ( (*p) == 45 ) + goto st767; + goto tr2220; st767: if ( ++p == pe ) goto _test_eof767; case 767: switch( (*p) ) { - case 65: goto st768; - case 97: goto st768; + case 71: goto st768; + case 103: goto st768; } - goto tr2198; + goto tr2220; st768: if ( ++p == pe ) goto _test_eof768; case 768: switch( (*p) ) { - case 80: goto st769; - case 112: goto st769; + case 79: goto st769; + case 111: goto st769; } - goto tr2198; + goto tr2220; st769: if ( ++p == pe ) goto _test_eof769; case 769: switch( (*p) ) { - case 50: goto st770; - case 51: goto st779; + case 83: goto st770; + case 115: goto st770; } - goto tr2198; + goto tr2220; st770: if ( ++p == pe ) goto _test_eof770; case 770: - if ( (*p) == 53 ) - goto st771; - goto tr2198; + switch( (*p) ) { + case 84: goto st771; + case 116: goto st771; + } + goto tr2220; st771: if ( ++p == pe ) goto _test_eof771; case 771: - if ( (*p) == 54 ) - goto st772; - goto tr2198; + switch( (*p) ) { + case 32: goto tr2255; + case 59: goto tr2255; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2255; + } else if ( (*p) >= 9 ) + goto tr2255; + goto tr2220; st772: if ( ++p == pe ) goto _test_eof772; @@ -64060,328 +65095,319 @@ case 772: case 83: goto st773; case 115: goto st773; } - goto tr2198; + goto tr2220; st773: if ( ++p == pe ) goto _test_eof773; case 773: switch( (*p) ) { - case 72: goto st774; - case 104: goto st774; + case 65: goto st774; + case 97: goto st774; } - goto tr2198; + goto tr2220; st774: if ( ++p == pe ) goto _test_eof774; case 774: switch( (*p) ) { - case 65: goto st775; - case 97: goto st775; + case 80: goto st775; + case 112: goto st775; } - goto tr2198; + goto tr2220; st775: if ( ++p == pe ) goto _test_eof775; case 775: - if ( (*p) == 50 ) - goto st776; - goto tr2198; + switch( (*p) ) { + case 50: goto st776; + case 51: goto st785; + } + goto tr2220; st776: if ( ++p == pe ) goto _test_eof776; case 776: if ( (*p) == 53 ) goto st777; - goto tr2198; + goto tr2220; st777: if ( ++p == pe ) goto _test_eof777; case 777: if ( (*p) == 54 ) goto st778; - goto tr2198; + goto tr2220; st778: if ( ++p == pe ) goto _test_eof778; case 778: switch( (*p) ) { - case 32: goto tr2247; - case 59: goto tr2247; + case 83: goto st779; + case 115: goto st779; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2247; - } else if ( (*p) >= 9 ) - goto tr2247; - goto tr2198; + goto tr2220; st779: if ( ++p == pe ) goto _test_eof779; case 779: - if ( (*p) == 56 ) - goto st780; - goto tr2198; + switch( (*p) ) { + case 72: goto st780; + case 104: goto st780; + } + goto tr2220; st780: if ( ++p == pe ) goto _test_eof780; case 780: - if ( (*p) == 52 ) - goto st781; - goto tr2198; + switch( (*p) ) { + case 65: goto st781; + case 97: goto st781; + } + goto tr2220; st781: if ( ++p == pe ) goto _test_eof781; case 781: - switch( (*p) ) { - case 83: goto st782; - case 115: goto st782; - } - goto tr2198; + if ( (*p) == 50 ) + goto st782; + goto tr2220; st782: if ( ++p == pe ) goto _test_eof782; case 782: - switch( (*p) ) { - case 72: goto st783; - case 104: goto st783; - } - goto tr2198; + if ( (*p) == 53 ) + goto st783; + goto tr2220; st783: if ( ++p == pe ) goto _test_eof783; case 783: - switch( (*p) ) { - case 65: goto st784; - case 97: goto st784; - } - goto tr2198; + if ( (*p) == 54 ) + goto st784; + goto tr2220; st784: if ( ++p == pe ) goto _test_eof784; case 784: - if ( (*p) == 51 ) - goto st785; - goto tr2198; + switch( (*p) ) { + case 32: goto tr2269; + case 59: goto tr2269; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2269; + } else if ( (*p) >= 9 ) + goto tr2269; + goto tr2220; st785: if ( ++p == pe ) goto _test_eof785; case 785: if ( (*p) == 56 ) goto st786; - goto tr2198; + goto tr2220; st786: if ( ++p == pe ) goto _test_eof786; case 786: if ( (*p) == 52 ) goto st787; - goto tr2198; + goto tr2220; st787: if ( ++p == pe ) goto _test_eof787; case 787: switch( (*p) ) { - case 32: goto tr2256; - case 59: goto tr2256; + case 83: goto st788; + case 115: goto st788; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2256; - } else if ( (*p) >= 9 ) - goto tr2256; - goto tr2198; + goto tr2220; st788: if ( ++p == pe ) goto _test_eof788; case 788: switch( (*p) ) { - case 50: goto st789; - case 52: goto st794; + case 72: goto st789; + case 104: goto st789; } - goto tr2198; + goto tr2220; st789: if ( ++p == pe ) goto _test_eof789; case 789: - if ( (*p) == 53 ) - goto st790; - goto tr2198; + switch( (*p) ) { + case 65: goto st790; + case 97: goto st790; + } + goto tr2220; st790: if ( ++p == pe ) goto _test_eof790; case 790: - if ( (*p) == 53 ) + if ( (*p) == 51 ) goto st791; - goto tr2198; + goto tr2220; st791: if ( ++p == pe ) goto _test_eof791; case 791: - if ( (*p) == 49 ) + if ( (*p) == 56 ) goto st792; - goto tr2198; + goto tr2220; st792: if ( ++p == pe ) goto _test_eof792; case 792: - if ( (*p) == 57 ) + if ( (*p) == 52 ) goto st793; - goto tr2198; + goto tr2220; st793: if ( ++p == pe ) goto _test_eof793; case 793: switch( (*p) ) { - case 32: goto tr2263; - case 59: goto tr2263; + case 32: goto tr2278; + case 59: goto tr2278; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2263; + goto tr2278; } else if ( (*p) >= 9 ) - goto tr2263; - goto tr2198; + goto tr2278; + goto tr2220; st794: if ( ++p == pe ) goto _test_eof794; case 794: - if ( (*p) == 52 ) - goto st795; - goto tr2198; + switch( (*p) ) { + case 50: goto st795; + case 52: goto st800; + } + goto tr2220; st795: if ( ++p == pe ) goto _test_eof795; case 795: - if ( (*p) == 56 ) + if ( (*p) == 53 ) goto st796; - goto tr2198; + goto tr2220; st796: if ( ++p == pe ) goto _test_eof796; case 796: - switch( (*p) ) { - case 32: goto tr2266; - case 59: goto tr2266; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2266; - } else if ( (*p) >= 9 ) - goto tr2266; - goto tr2198; + if ( (*p) == 53 ) + goto st797; + goto tr2220; st797: if ( ++p == pe ) goto _test_eof797; case 797: - switch( (*p) ) { - case 78: goto st798; - case 110: goto st798; - } - goto tr2198; + if ( (*p) == 49 ) + goto st798; + goto tr2220; st798: if ( ++p == pe ) goto _test_eof798; case 798: - switch( (*p) ) { - case 68: goto st799; - case 100: goto st799; - } - goto tr2198; + if ( (*p) == 57 ) + goto st799; + goto tr2220; st799: if ( ++p == pe ) goto _test_eof799; case 799: switch( (*p) ) { - case 73: goto st800; - case 105: goto st800; + case 32: goto tr2285; + case 59: goto tr2285; } - goto tr2198; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2285; + } else if ( (*p) >= 9 ) + goto tr2285; + goto tr2220; st800: if ( ++p == pe ) goto _test_eof800; case 800: - switch( (*p) ) { - case 82: goto st801; - case 114: goto st801; - } - goto tr2198; + if ( (*p) == 52 ) + goto st801; + goto tr2220; st801: if ( ++p == pe ) goto _test_eof801; case 801: - switch( (*p) ) { - case 69: goto st802; - case 101: goto st802; - } - goto tr2198; + if ( (*p) == 56 ) + goto st802; + goto tr2220; st802: if ( ++p == pe ) goto _test_eof802; case 802: switch( (*p) ) { - case 67: goto st803; - case 99: goto st803; + case 32: goto tr2288; + case 59: goto tr2288; } - goto tr2198; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2288; + } else if ( (*p) >= 9 ) + goto tr2288; + goto tr2220; st803: if ( ++p == pe ) goto _test_eof803; case 803: switch( (*p) ) { - case 84: goto st804; - case 116: goto st804; + case 78: goto st804; + case 110: goto st804; } - goto tr2198; + goto tr2220; st804: if ( ++p == pe ) goto _test_eof804; case 804: switch( (*p) ) { - case 32: goto tr2274; - case 59: goto tr2274; + case 68: goto st805; + case 100: goto st805; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2274; - } else if ( (*p) >= 9 ) - goto tr2274; - goto tr2198; + goto tr2220; st805: if ( ++p == pe ) goto _test_eof805; case 805: switch( (*p) ) { - case 82: goto st806; - case 114: goto st806; + case 73: goto st806; + case 105: goto st806; } - goto tr2198; + goto tr2220; st806: if ( ++p == pe ) goto _test_eof806; case 806: switch( (*p) ) { - case 73: goto st807; - case 105: goto st807; + case 82: goto st807; + case 114: goto st807; } - goto tr2198; + goto tr2220; st807: if ( ++p == pe ) goto _test_eof807; case 807: switch( (*p) ) { - case 86: goto st808; - case 118: goto st808; + case 69: goto st808; + case 101: goto st808; } - goto tr2198; + goto tr2220; st808: if ( ++p == pe ) goto _test_eof808; case 808: switch( (*p) ) { - case 65: goto st809; - case 97: goto st809; + case 67: goto st809; + case 99: goto st809; } - goto tr2198; + goto tr2220; st809: if ( ++p == pe ) goto _test_eof809; @@ -64390,159 +65416,159 @@ case 809: case 84: goto st810; case 116: goto st810; } - goto tr2198; + goto tr2220; st810: if ( ++p == pe ) goto _test_eof810; case 810: switch( (*p) ) { - case 69: goto st811; - case 101: goto st811; + case 32: goto tr2296; + case 59: goto tr2296; } - goto tr2198; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2296; + } else if ( (*p) >= 9 ) + goto tr2296; + goto tr2220; st811: if ( ++p == pe ) goto _test_eof811; case 811: switch( (*p) ) { - case 68: goto st812; - case 79: goto st815; - case 100: goto st812; - case 111: goto st815; + case 82: goto st812; + case 114: goto st812; } - goto tr2198; + goto tr2220; st812: if ( ++p == pe ) goto _test_eof812; case 812: switch( (*p) ) { - case 78: goto st813; - case 110: goto st813; + case 73: goto st813; + case 105: goto st813; } - goto tr2198; + goto tr2220; st813: if ( ++p == pe ) goto _test_eof813; case 813: switch( (*p) ) { - case 83: goto st814; - case 115: goto st814; + case 86: goto st814; + case 118: goto st814; } - goto tr2198; + goto tr2220; st814: if ( ++p == pe ) goto _test_eof814; case 814: switch( (*p) ) { - case 32: goto tr2285; - case 59: goto tr2285; + case 65: goto st815; + case 97: goto st815; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2285; - } else if ( (*p) >= 9 ) - goto tr2285; - goto tr2198; + goto tr2220; st815: if ( ++p == pe ) goto _test_eof815; case 815: switch( (*p) ) { - case 73: goto st816; - case 105: goto st816; + case 84: goto st816; + case 116: goto st816; } - goto tr2198; + goto tr2220; st816: if ( ++p == pe ) goto _test_eof816; case 816: switch( (*p) ) { - case 68: goto st817; - case 100: goto st817; + case 69: goto st817; + case 101: goto st817; } - goto tr2198; + goto tr2220; st817: if ( ++p == pe ) goto _test_eof817; case 817: switch( (*p) ) { - case 32: goto tr2288; - case 59: goto tr2288; + case 68: goto st818; + case 79: goto st821; + case 100: goto st818; + case 111: goto st821; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2288; - } else if ( (*p) >= 9 ) - goto tr2288; - goto tr2198; + goto tr2220; st818: if ( ++p == pe ) goto _test_eof818; case 818: switch( (*p) ) { - case 83: goto st819; - case 115: goto st819; + case 78: goto st819; + case 110: goto st819; } - goto tr2198; + goto tr2220; st819: if ( ++p == pe ) goto _test_eof819; case 819: switch( (*p) ) { - case 65: goto st820; - case 97: goto st820; + case 83: goto st820; + case 115: goto st820; } - goto tr2198; + goto tr2220; st820: if ( ++p == pe ) goto _test_eof820; case 820: switch( (*p) ) { - case 77: goto st821; - case 83: goto st824; - case 109: goto st821; - case 115: goto st824; + case 32: goto tr2307; + case 59: goto tr2307; } - goto tr2198; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2307; + } else if ( (*p) >= 9 ) + goto tr2307; + goto tr2220; st821: if ( ++p == pe ) goto _test_eof821; case 821: switch( (*p) ) { - case 68: goto st822; - case 100: goto st822; + case 73: goto st822; + case 105: goto st822; } - goto tr2198; + goto tr2220; st822: if ( ++p == pe ) goto _test_eof822; case 822: - if ( (*p) == 53 ) - goto st823; - goto tr2198; + switch( (*p) ) { + case 68: goto st823; + case 100: goto st823; + } + goto tr2220; st823: if ( ++p == pe ) goto _test_eof823; case 823: switch( (*p) ) { - case 32: goto tr2295; - case 59: goto tr2295; + case 32: goto tr2310; + case 59: goto tr2310; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2295; + goto tr2310; } else if ( (*p) >= 9 ) - goto tr2295; - goto tr2198; + goto tr2310; + goto tr2220; st824: if ( ++p == pe ) goto _test_eof824; case 824: switch( (*p) ) { - case 72: goto st825; - case 104: goto st825; + case 83: goto st825; + case 115: goto st825; } - goto tr2198; + goto tr2220; st825: if ( ++p == pe ) goto _test_eof825; @@ -64551,208 +65577,267 @@ case 825: case 65: goto st826; case 97: goto st826; } - goto tr2198; + goto tr2220; st826: if ( ++p == pe ) goto _test_eof826; case 826: switch( (*p) ) { - case 49: goto st827; - case 50: goto st839; - case 53: goto st842; + case 77: goto st827; + case 83: goto st830; + case 109: goto st827; + case 115: goto st830; } - goto tr2198; + goto tr2220; st827: if ( ++p == pe ) goto _test_eof827; case 827: switch( (*p) ) { - case 32: goto tr2301; - case 45: goto st828; - case 59: goto tr2301; + case 68: goto st828; + case 100: goto st828; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2301; - } else if ( (*p) >= 9 ) - goto tr2301; - goto tr2198; + goto tr2220; st828: if ( ++p == pe ) goto _test_eof828; case 828: - switch( (*p) ) { - case 78: goto st829; - case 110: goto st829; - } - goto tr2198; + if ( (*p) == 53 ) + goto st829; + goto tr2220; st829: if ( ++p == pe ) goto _test_eof829; case 829: switch( (*p) ) { - case 83: goto st830; - case 115: goto st830; + case 32: goto tr2317; + case 59: goto tr2317; } - goto tr2198; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2317; + } else if ( (*p) >= 9 ) + goto tr2317; + goto tr2220; st830: if ( ++p == pe ) goto _test_eof830; case 830: switch( (*p) ) { - case 69: goto st831; - case 101: goto st831; + case 72: goto st831; + case 104: goto st831; } - goto tr2198; + goto tr2220; st831: if ( ++p == pe ) goto _test_eof831; case 831: switch( (*p) ) { - case 67: goto st832; - case 99: goto st832; + case 65: goto st832; + case 97: goto st832; } - goto tr2198; + goto tr2220; st832: if ( ++p == pe ) goto _test_eof832; case 832: - if ( (*p) == 51 ) - goto st833; - goto tr2198; + switch( (*p) ) { + case 49: goto st833; + case 50: goto st845; + case 53: goto st848; + } + goto tr2220; st833: if ( ++p == pe ) goto _test_eof833; case 833: - if ( (*p) == 45 ) - goto st834; - goto tr2198; + switch( (*p) ) { + case 32: goto tr2323; + case 45: goto st834; + case 59: goto tr2323; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2323; + } else if ( (*p) >= 9 ) + goto tr2323; + goto tr2220; st834: if ( ++p == pe ) goto _test_eof834; case 834: switch( (*p) ) { - case 83: goto st835; - case 115: goto st835; + case 78: goto st835; + case 110: goto st835; } - goto tr2198; + goto tr2220; st835: if ( ++p == pe ) goto _test_eof835; case 835: switch( (*p) ) { - case 72: goto st836; - case 104: goto st836; + case 83: goto st836; + case 115: goto st836; } - goto tr2198; + goto tr2220; st836: if ( ++p == pe ) goto _test_eof836; case 836: switch( (*p) ) { - case 65: goto st837; - case 97: goto st837; + case 69: goto st837; + case 101: goto st837; } - goto tr2198; + goto tr2220; st837: if ( ++p == pe ) goto _test_eof837; case 837: - if ( (*p) == 49 ) - goto st838; - goto tr2198; + switch( (*p) ) { + case 67: goto st838; + case 99: goto st838; + } + goto tr2220; st838: if ( ++p == pe ) goto _test_eof838; case 838: - switch( (*p) ) { - case 32: goto tr2313; - case 59: goto tr2313; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2313; - } else if ( (*p) >= 9 ) - goto tr2313; - goto tr2198; + if ( (*p) == 51 ) + goto st839; + goto tr2220; st839: if ( ++p == pe ) goto _test_eof839; case 839: - if ( (*p) == 53 ) + if ( (*p) == 45 ) goto st840; - goto tr2198; + goto tr2220; st840: if ( ++p == pe ) goto _test_eof840; case 840: - if ( (*p) == 54 ) - goto st841; - goto tr2198; + switch( (*p) ) { + case 83: goto st841; + case 115: goto st841; + } + goto tr2220; st841: if ( ++p == pe ) goto _test_eof841; case 841: switch( (*p) ) { - case 32: goto tr2316; - case 59: goto tr2316; + case 72: goto st842; + case 104: goto st842; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2316; - } else if ( (*p) >= 9 ) - goto tr2316; - goto tr2198; + goto tr2220; st842: if ( ++p == pe ) goto _test_eof842; case 842: - if ( (*p) == 49 ) - goto st843; - goto tr2198; + switch( (*p) ) { + case 65: goto st843; + case 97: goto st843; + } + goto tr2220; st843: if ( ++p == pe ) goto _test_eof843; case 843: - if ( (*p) == 50 ) + if ( (*p) == 49 ) goto st844; - goto tr2198; + goto tr2220; st844: if ( ++p == pe ) goto _test_eof844; case 844: switch( (*p) ) { - case 32: goto tr2319; - case 59: goto tr2319; + case 32: goto tr2335; + case 59: goto tr2335; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2319; + goto tr2335; } else if ( (*p) >= 9 ) - goto tr2319; - goto tr2198; + goto tr2335; + goto tr2220; st845: if ( ++p == pe ) goto _test_eof845; case 845: + if ( (*p) == 53 ) + goto st846; + goto tr2220; +st846: + if ( ++p == pe ) + goto _test_eof846; +case 846: + if ( (*p) == 54 ) + goto st847; + goto tr2220; +st847: + if ( ++p == pe ) + goto _test_eof847; +case 847: switch( (*p) ) { - case 65: goto st847; - case 73: goto st853; - case 79: goto st870; - case 80: goto st873; - case 83: goto st879; - case 85: goto st883; - case 97: goto st847; - case 105: goto st853; - case 111: goto st870; - case 112: goto st873; - case 115: goto st879; - case 117: goto st883; + case 32: goto tr2338; + case 59: goto tr2338; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2338; + } else if ( (*p) >= 9 ) + goto tr2338; + goto tr2220; +st848: + if ( ++p == pe ) + goto _test_eof848; +case 848: + if ( (*p) == 49 ) + goto st849; + goto tr2220; +st849: + if ( ++p == pe ) + goto _test_eof849; +case 849: + if ( (*p) == 50 ) + goto st850; + goto tr2220; +st850: + if ( ++p == pe ) + goto _test_eof850; +case 850: + switch( (*p) ) { + case 32: goto tr2341; + case 59: goto tr2341; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2341; + } else if ( (*p) >= 9 ) + goto tr2341; + goto tr2220; +st851: + if ( ++p == pe ) + goto _test_eof851; +case 851: + switch( (*p) ) { + case 65: goto st853; + case 73: goto st859; + case 79: goto st876; + case 80: goto st879; + case 83: goto st885; + case 85: goto st889; + case 97: goto st853; + case 105: goto st859; + case 111: goto st876; + case 112: goto st879; + case 115: goto st885; + case 117: goto st889; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2321; - goto tr2320; -tr2321: + goto tr2343; + goto tr2342; +tr2343: { s->number64 = 0; } @@ -64767,11 +65852,11 @@ tr2321: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st846; -tr2329: + goto st852; +tr2351: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -64783,28 +65868,28 @@ tr2329: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st846; -st846: + goto st852; +st852: if ( ++p == pe ) - goto _test_eof846; -case 846: + goto _test_eof852; +case 852: switch( (*p) ) { - case 32: goto tr2328; - case 59: goto tr2328; + case 32: goto tr2350; + case 59: goto tr2350; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2328; + goto tr2350; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2329; + goto tr2351; } else - goto tr2328; - goto tr2320; -tr2365: + goto tr2350; + goto tr2342; +tr2387: { uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); @@ -64813,8 +65898,8 @@ tr2365: { p--; {cs = stack[--top];goto _again;} } - goto st1482; -tr2335: + goto st1521; +tr2357: { uint16_t val = htons(7); memcpy(rdata_tail, &val, 2); @@ -64823,8 +65908,8 @@ tr2335: { p--; {cs = stack[--top];goto _again;} } - goto st1482; -tr2355: + goto st1521; +tr2377: { uint16_t val = htons(5); memcpy(rdata_tail, &val, 2); @@ -64833,8 +65918,8 @@ tr2355: { p--; {cs = stack[--top];goto _again;} } - goto st1482; -tr2351: + goto st1521; +tr2373: { uint16_t val = htons(4); memcpy(rdata_tail, &val, 2); @@ -64843,8 +65928,8 @@ tr2351: { p--; {cs = stack[--top];goto _again;} } - goto st1482; -tr2348: + goto st1521; +tr2370: { uint16_t val = htons(6); memcpy(rdata_tail, &val, 2); @@ -64853,8 +65938,8 @@ tr2348: { p--; {cs = stack[--top];goto _again;} } - goto st1482; -tr2328: + goto st1521; +tr2350: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -64862,14 +65947,14 @@ tr2328: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1482; -tr2369: + goto st1521; +tr2391: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -64878,8 +65963,8 @@ tr2369: { p--; {cs = stack[--top];goto _again;} } - goto st1482; -tr2344: + goto st1521; +tr2366: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -64888,8 +65973,8 @@ tr2344: { p--; {cs = stack[--top];goto _again;} } - goto st1482; -tr2362: + goto st1521; +tr2384: { uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); @@ -64898,8 +65983,8 @@ tr2362: { p--; {cs = stack[--top];goto _again;} } - goto st1482; -tr2358: + goto st1521; +tr2380: { uint16_t val = htons(254); memcpy(rdata_tail, &val, 2); @@ -64908,8 +65993,8 @@ tr2358: { p--; {cs = stack[--top];goto _again;} } - goto st1482; -tr2372: + goto st1521; +tr2394: { uint16_t val = htons(253); memcpy(rdata_tail, &val, 2); @@ -64918,154 +66003,93 @@ tr2372: { p--; {cs = stack[--top];goto _again;} } - goto st1482; -st1482: + goto st1521; +st1521: if ( ++p == pe ) - goto _test_eof1482; -case 1482: + goto _test_eof1521; +case 1521: goto st0; -st847: - if ( ++p == pe ) - goto _test_eof847; -case 847: - switch( (*p) ) { - case 67: goto st848; - case 99: goto st848; - } - goto tr2320; -st848: - if ( ++p == pe ) - goto _test_eof848; -case 848: - switch( (*p) ) { - case 80: goto st849; - case 112: goto st849; - } - goto tr2320; -st849: - if ( ++p == pe ) - goto _test_eof849; -case 849: - switch( (*p) ) { - case 75: goto st850; - case 107: goto st850; - } - goto tr2320; -st850: - if ( ++p == pe ) - goto _test_eof850; -case 850: - switch( (*p) ) { - case 73: goto st851; - case 105: goto st851; - } - goto tr2320; -st851: - if ( ++p == pe ) - goto _test_eof851; -case 851: - switch( (*p) ) { - case 88: goto st852; - case 120: goto st852; - } - goto tr2320; -st852: - if ( ++p == pe ) - goto _test_eof852; -case 852: - switch( (*p) ) { - case 32: goto tr2335; - case 59: goto tr2335; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2335; - } else if ( (*p) >= 9 ) - goto tr2335; - goto tr2320; st853: if ( ++p == pe ) goto _test_eof853; case 853: switch( (*p) ) { - case 65: goto st854; - case 80: goto st860; - case 83: goto st866; - case 97: goto st854; - case 112: goto st860; - case 115: goto st866; + case 67: goto st854; + case 99: goto st854; } - goto tr2320; + goto tr2342; st854: if ( ++p == pe ) goto _test_eof854; case 854: switch( (*p) ) { - case 67: goto st855; - case 99: goto st855; + case 80: goto st855; + case 112: goto st855; } - goto tr2320; + goto tr2342; st855: if ( ++p == pe ) goto _test_eof855; case 855: switch( (*p) ) { - case 80: goto st856; - case 112: goto st856; + case 75: goto st856; + case 107: goto st856; } - goto tr2320; + goto tr2342; st856: if ( ++p == pe ) goto _test_eof856; case 856: switch( (*p) ) { - case 75: goto st857; - case 107: goto st857; + case 73: goto st857; + case 105: goto st857; } - goto tr2320; + goto tr2342; st857: if ( ++p == pe ) goto _test_eof857; case 857: switch( (*p) ) { - case 73: goto st858; - case 105: goto st858; + case 88: goto st858; + case 120: goto st858; } - goto tr2320; + goto tr2342; st858: if ( ++p == pe ) goto _test_eof858; case 858: switch( (*p) ) { - case 88: goto st859; - case 120: goto st859; + case 32: goto tr2357; + case 59: goto tr2357; } - goto tr2320; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2357; + } else if ( (*p) >= 9 ) + goto tr2357; + goto tr2342; st859: if ( ++p == pe ) goto _test_eof859; case 859: switch( (*p) ) { - case 32: goto tr2344; - case 59: goto tr2344; + case 65: goto st860; + case 80: goto st866; + case 83: goto st872; + case 97: goto st860; + case 112: goto st866; + case 115: goto st872; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2344; - } else if ( (*p) >= 9 ) - goto tr2344; - goto tr2320; + goto tr2342; st860: if ( ++p == pe ) goto _test_eof860; case 860: switch( (*p) ) { - case 71: goto st861; - case 75: goto st863; - case 103: goto st861; - case 107: goto st863; + case 67: goto st861; + case 99: goto st861; } - goto tr2320; + goto tr2342; st861: if ( ++p == pe ) goto _test_eof861; @@ -65074,21 +66098,16 @@ case 861: case 80: goto st862; case 112: goto st862; } - goto tr2320; + goto tr2342; st862: if ( ++p == pe ) goto _test_eof862; case 862: switch( (*p) ) { - case 32: goto tr2348; - case 59: goto tr2348; + case 75: goto st863; + case 107: goto st863; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2348; - } else if ( (*p) >= 9 ) - goto tr2348; - goto tr2320; + goto tr2342; st863: if ( ++p == pe ) goto _test_eof863; @@ -65097,7 +66116,7 @@ case 863: case 73: goto st864; case 105: goto st864; } - goto tr2320; + goto tr2342; st864: if ( ++p == pe ) goto _test_eof864; @@ -65106,128 +66125,128 @@ case 864: case 88: goto st865; case 120: goto st865; } - goto tr2320; + goto tr2342; st865: if ( ++p == pe ) goto _test_eof865; case 865: switch( (*p) ) { - case 32: goto tr2351; - case 59: goto tr2351; + case 32: goto tr2366; + case 59: goto tr2366; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2351; + goto tr2366; } else if ( (*p) >= 9 ) - goto tr2351; - goto tr2320; + goto tr2366; + goto tr2342; st866: if ( ++p == pe ) goto _test_eof866; case 866: switch( (*p) ) { - case 80: goto st867; - case 112: goto st867; + case 71: goto st867; + case 75: goto st869; + case 103: goto st867; + case 107: goto st869; } - goto tr2320; + goto tr2342; st867: if ( ++p == pe ) goto _test_eof867; case 867: switch( (*p) ) { - case 75: goto st868; - case 107: goto st868; + case 80: goto st868; + case 112: goto st868; } - goto tr2320; + goto tr2342; st868: if ( ++p == pe ) goto _test_eof868; case 868: switch( (*p) ) { - case 73: goto st869; - case 105: goto st869; + case 32: goto tr2370; + case 59: goto tr2370; } - goto tr2320; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2370; + } else if ( (*p) >= 9 ) + goto tr2370; + goto tr2342; st869: if ( ++p == pe ) goto _test_eof869; case 869: switch( (*p) ) { - case 32: goto tr2355; - case 59: goto tr2355; + case 73: goto st870; + case 105: goto st870; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2355; - } else if ( (*p) >= 9 ) - goto tr2355; - goto tr2320; + goto tr2342; st870: if ( ++p == pe ) goto _test_eof870; case 870: switch( (*p) ) { - case 73: goto st871; - case 105: goto st871; + case 88: goto st871; + case 120: goto st871; } - goto tr2320; + goto tr2342; st871: if ( ++p == pe ) goto _test_eof871; case 871: switch( (*p) ) { - case 68: goto st872; - case 100: goto st872; + case 32: goto tr2373; + case 59: goto tr2373; } - goto tr2320; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2373; + } else if ( (*p) >= 9 ) + goto tr2373; + goto tr2342; st872: if ( ++p == pe ) goto _test_eof872; case 872: switch( (*p) ) { - case 32: goto tr2358; - case 59: goto tr2358; + case 80: goto st873; + case 112: goto st873; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2358; - } else if ( (*p) >= 9 ) - goto tr2358; - goto tr2320; + goto tr2342; st873: if ( ++p == pe ) goto _test_eof873; case 873: switch( (*p) ) { - case 71: goto st874; - case 75: goto st876; - case 103: goto st874; - case 107: goto st876; + case 75: goto st874; + case 107: goto st874; } - goto tr2320; + goto tr2342; st874: if ( ++p == pe ) goto _test_eof874; case 874: switch( (*p) ) { - case 80: goto st875; - case 112: goto st875; + case 73: goto st875; + case 105: goto st875; } - goto tr2320; + goto tr2342; st875: if ( ++p == pe ) goto _test_eof875; case 875: switch( (*p) ) { - case 32: goto tr2362; - case 59: goto tr2362; + case 32: goto tr2377; + case 59: goto tr2377; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2362; + goto tr2377; } else if ( (*p) >= 9 ) - goto tr2362; - goto tr2320; + goto tr2377; + goto tr2342; st876: if ( ++p == pe ) goto _test_eof876; @@ -65236,123 +66255,338 @@ case 876: case 73: goto st877; case 105: goto st877; } - goto tr2320; + goto tr2342; st877: if ( ++p == pe ) goto _test_eof877; case 877: switch( (*p) ) { - case 88: goto st878; - case 120: goto st878; + case 68: goto st878; + case 100: goto st878; } - goto tr2320; + goto tr2342; st878: if ( ++p == pe ) goto _test_eof878; case 878: switch( (*p) ) { - case 32: goto tr2365; - case 59: goto tr2365; + case 32: goto tr2380; + case 59: goto tr2380; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2365; + goto tr2380; } else if ( (*p) >= 9 ) - goto tr2365; - goto tr2320; + goto tr2380; + goto tr2342; st879: if ( ++p == pe ) goto _test_eof879; case 879: switch( (*p) ) { - case 80: goto st880; - case 112: goto st880; + case 71: goto st880; + case 75: goto st882; + case 103: goto st880; + case 107: goto st882; } - goto tr2320; + goto tr2342; st880: if ( ++p == pe ) goto _test_eof880; case 880: switch( (*p) ) { - case 75: goto st881; - case 107: goto st881; + case 80: goto st881; + case 112: goto st881; } - goto tr2320; + goto tr2342; st881: if ( ++p == pe ) goto _test_eof881; case 881: switch( (*p) ) { - case 73: goto st882; - case 105: goto st882; + case 32: goto tr2384; + case 59: goto tr2384; } - goto tr2320; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2384; + } else if ( (*p) >= 9 ) + goto tr2384; + goto tr2342; st882: if ( ++p == pe ) goto _test_eof882; case 882: switch( (*p) ) { - case 32: goto tr2369; - case 59: goto tr2369; + case 73: goto st883; + case 105: goto st883; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2369; - } else if ( (*p) >= 9 ) - goto tr2369; - goto tr2320; + goto tr2342; st883: if ( ++p == pe ) goto _test_eof883; case 883: switch( (*p) ) { - case 82: goto st884; - case 114: goto st884; + case 88: goto st884; + case 120: goto st884; } - goto tr2320; + goto tr2342; st884: if ( ++p == pe ) goto _test_eof884; case 884: switch( (*p) ) { - case 73: goto st885; - case 105: goto st885; + case 32: goto tr2387; + case 59: goto tr2387; } - goto tr2320; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2387; + } else if ( (*p) >= 9 ) + goto tr2387; + goto tr2342; st885: if ( ++p == pe ) goto _test_eof885; case 885: switch( (*p) ) { - case 32: goto tr2372; - case 59: goto tr2372; + case 80: goto st886; + case 112: goto st886; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2372; - } else if ( (*p) >= 9 ) - goto tr2372; - goto tr2320; + goto tr2342; st886: if ( ++p == pe ) goto _test_eof886; case 886: + switch( (*p) ) { + case 75: goto st887; + case 107: goto st887; + } + goto tr2342; +st887: + if ( ++p == pe ) + goto _test_eof887; +case 887: + switch( (*p) ) { + case 73: goto st888; + case 105: goto st888; + } + goto tr2342; +st888: + if ( ++p == pe ) + goto _test_eof888; +case 888: + switch( (*p) ) { + case 32: goto tr2391; + case 59: goto tr2391; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2391; + } else if ( (*p) >= 9 ) + goto tr2391; + goto tr2342; +st889: + if ( ++p == pe ) + goto _test_eof889; +case 889: + switch( (*p) ) { + case 82: goto st890; + case 114: goto st890; + } + goto tr2342; +st890: + if ( ++p == pe ) + goto _test_eof890; +case 890: + switch( (*p) ) { + case 73: goto st891; + case 105: goto st891; + } + goto tr2342; +st891: + if ( ++p == pe ) + goto _test_eof891; +case 891: + switch( (*p) ) { + case 32: goto tr2394; + case 59: goto tr2394; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2394; + } else if ( (*p) >= 9 ) + goto tr2394; + goto tr2342; +st892: + if ( ++p == pe ) + goto _test_eof892; +case 892: + switch( (*p) ) { + case 78: goto st894; + case 110: goto st894; + } + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2396; + goto tr2395; +tr2396: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st893; +tr2399: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st893; +st893: + if ( ++p == pe ) + goto _test_eof893; +case 893: + switch( (*p) ) { + case 32: goto tr2398; + case 59: goto tr2398; + } + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2398; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2399; + } else + goto tr2398; + goto tr2395; +tr2398: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1522; +tr2405: + { + *(rdata_tail++) = 1; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1522; +st1522: + if ( ++p == pe ) + goto _test_eof1522; +case 1522: + goto st0; +st894: + if ( ++p == pe ) + goto _test_eof894; +case 894: + switch( (*p) ) { + case 79: goto st895; + case 111: goto st895; + } + goto tr2395; +st895: + if ( ++p == pe ) + goto _test_eof895; +case 895: + switch( (*p) ) { + case 84: goto st896; + case 116: goto st896; + } + goto tr2395; +st896: + if ( ++p == pe ) + goto _test_eof896; +case 896: + switch( (*p) ) { + case 73: goto st897; + case 105: goto st897; + } + goto tr2395; +st897: + if ( ++p == pe ) + goto _test_eof897; +case 897: + switch( (*p) ) { + case 70: goto st898; + case 102: goto st898; + } + goto tr2395; +st898: + if ( ++p == pe ) + goto _test_eof898; +case 898: + switch( (*p) ) { + case 89: goto st899; + case 121: goto st899; + } + goto tr2395; +st899: + if ( ++p == pe ) + goto _test_eof899; +case 899: + switch( (*p) ) { + case 32: goto tr2405; + case 59: goto tr2405; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2405; + } else if ( (*p) >= 9 ) + goto tr2405; + goto tr2395; +st900: + if ( ++p == pe ) + goto _test_eof900; +case 900: if ( (*p) == 46 ) - goto tr2374; + goto tr2407; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2374; - goto tr2373; -tr2376: + goto tr2407; + goto tr2406; +tr2409: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st887; -tr2374: + goto st901; +tr2407: { s->buffer_length = 0; } @@ -65361,41 +66595,41 @@ tr2374: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st887; -st887: + goto st901; +st901: if ( ++p == pe ) - goto _test_eof887; -case 887: + goto _test_eof901; +case 901: switch( (*p) ) { - case 32: goto tr2375; - case 46: goto tr2376; - case 59: goto tr2375; + case 32: goto tr2408; + case 46: goto tr2409; + case 59: goto tr2408; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2375; + goto tr2408; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2376; + goto tr2409; } else - goto tr2375; - goto tr2373; -tr2375: + goto tr2408; + goto tr2406; +tr2408: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -65403,91 +66637,91 @@ tr2375: { p--; {cs = stack[--top];goto _again;} } - goto st1483; -st1483: + goto st1523; +st1523: if ( ++p == pe ) - goto _test_eof1483; -case 1483: + goto _test_eof1523; +case 1523: goto st0; -st888: +st902: if ( ++p == pe ) - goto _test_eof888; -case 888: + goto _test_eof902; +case 902: switch( (*p) ) { - case 42: goto tr2377; - case 92: goto tr2377; - case 95: goto tr2377; + case 42: goto tr2410; + case 92: goto tr2410; + case 95: goto tr2410; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2377; + goto tr2410; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2377; + goto tr2410; } else - goto tr2377; + goto tr2410; goto tr77; -tr2377: +tr2410: { s->dname = rdata_tail; } - { p--; {stack[top++] = 889;goto st318;} } - goto st889; -st889: + { p--; {stack[top++] = 903;goto st321;} } + goto st903; +st903: if ( ++p == pe ) - goto _test_eof889; -case 889: + goto _test_eof903; +case 903: switch( (*p) ) { - case 32: goto tr2378; - case 59: goto tr2378; + case 32: goto tr2411; + case 59: goto tr2411; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2378; + goto tr2411; } else if ( (*p) >= 9 ) - goto tr2378; + goto tr2411; goto tr77; -tr2378: +tr2411: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1484; -st1484: + goto st1524; +st1524: if ( ++p == pe ) - goto _test_eof1484; -case 1484: + goto _test_eof1524; +case 1524: goto st0; -st890: +st904: if ( ++p == pe ) - goto _test_eof890; -case 890: + goto _test_eof904; +case 904: switch( (*p) ) { - case 42: goto tr2379; - case 92: goto tr2379; - case 95: goto tr2379; + case 42: goto tr2412; + case 92: goto tr2412; + case 95: goto tr2412; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2379; + goto tr2412; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2379; + goto tr2412; } else - goto tr2379; + goto tr2412; goto tr77; -tr2379: +tr2412: { s->dname = rdata_tail; } - { p--; {stack[top++] = 891;goto st318;} } - goto st891; -st891: + { p--; {stack[top++] = 905;goto st321;} } + goto st905; +st905: if ( ++p == pe ) - goto _test_eof891; -case 891: + goto _test_eof905; +case 905: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65501,38 +66735,38 @@ case 891: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2380; - case 32: goto tr2380; - case 40: goto tr2381; - case 41: goto tr2382; - case 2058: goto tr2383; - case 2107: goto tr2384; + case 9: goto tr2413; + case 32: goto tr2413; + case 40: goto tr2414; + case 41: goto tr2415; + case 2058: goto tr2416; + case 2107: goto tr2417; } goto tr77; -tr2386: +tr2419: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st892; -tr2387: + goto st906; +tr2420: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st892; -tr2389: + goto st906; +tr2422: { s->line_counter++; } - goto st892; -tr2533: + goto st906; +tr2566: { s->buffer[s->buffer_length++] = 0; @@ -65542,55 +66776,55 @@ tr2533: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 892; goto _out;} + {p++; cs = 906; goto _out;} } } } { s->line_counter++; } - goto st892; -tr2380: + goto st906; +tr2413: { rdata_tail += s->dname_tmp_length; } - goto st892; -tr2381: + goto st906; +tr2414: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st892; -tr2382: + goto st906; +tr2415: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st892; -tr2383: + goto st906; +tr2416: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st892; -st892: + goto st906; +st906: if ( ++p == pe ) - goto _test_eof892; -case 892: + goto _test_eof906; +case 906: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65604,35 +66838,35 @@ case 892: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st892; - case 32: goto st892; - case 40: goto tr2386; - case 41: goto tr2387; - case 42: goto tr2388; - case 92: goto tr2388; - case 95: goto tr2388; - case 2058: goto tr2389; - case 2107: goto tr2390; + case 9: goto st906; + case 32: goto st906; + case 40: goto tr2419; + case 41: goto tr2420; + case 42: goto tr2421; + case 92: goto tr2421; + case 95: goto tr2421; + case 2058: goto tr2422; + case 2107: goto tr2423; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2388; + goto tr2421; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2388; + goto tr2421; } else - goto tr2388; + goto tr2421; goto tr77; -tr2388: +tr2421: { s->dname = rdata_tail; } - { p--; {stack[top++] = 893;goto st318;} } - goto st893; -st893: + { p--; {stack[top++] = 907;goto st321;} } + goto st907; +st907: if ( ++p == pe ) - goto _test_eof893; -case 893: + goto _test_eof907; +case 907: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65646,38 +66880,38 @@ case 893: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2391; - case 32: goto tr2391; - case 40: goto tr2392; - case 41: goto tr2393; - case 2058: goto tr2394; - case 2107: goto tr2395; + case 9: goto tr2424; + case 32: goto tr2424; + case 40: goto tr2425; + case 41: goto tr2426; + case 2058: goto tr2427; + case 2107: goto tr2428; } goto tr77; -tr2398: +tr2431: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st894; -tr2399: + goto st908; +tr2432: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st894; -tr2401: + goto st908; +tr2434: { s->line_counter++; } - goto st894; -tr2531: + goto st908; +tr2564: { s->buffer[s->buffer_length++] = 0; @@ -65687,55 +66921,55 @@ tr2531: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 894; goto _out;} + {p++; cs = 908; goto _out;} } } } { s->line_counter++; } - goto st894; -tr2391: + goto st908; +tr2424: { rdata_tail += s->dname_tmp_length; } - goto st894; -tr2392: + goto st908; +tr2425: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st894; -tr2393: + goto st908; +tr2426: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st894; -tr2394: + goto st908; +tr2427: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st894; -st894: + goto st908; +st908: if ( ++p == pe ) - goto _test_eof894; -case 894: + goto _test_eof908; +case 908: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65749,17 +66983,17 @@ case 894: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st894; - case 32: goto st894; - case 40: goto tr2398; - case 41: goto tr2399; - case 2058: goto tr2401; - case 2107: goto tr2402; + case 9: goto st908; + case 32: goto st908; + case 40: goto tr2431; + case 41: goto tr2432; + case 2058: goto tr2434; + case 2107: goto tr2435; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2400; - goto tr2396; -tr2400: + goto tr2433; + goto tr2429; +tr2433: { s->number64 = 0; } @@ -65774,11 +67008,11 @@ tr2400: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st895; -tr2406: + goto st909; +tr2439: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -65790,14 +67024,14 @@ tr2406: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st895; -st895: + goto st909; +st909: if ( ++p == pe ) - goto _test_eof895; -case 895: + goto _test_eof909; +case 909: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65811,40 +67045,40 @@ case 895: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2403; - case 32: goto tr2403; - case 40: goto tr2404; - case 41: goto tr2405; - case 2058: goto tr2407; - case 2107: goto tr2408; + case 9: goto tr2436; + case 32: goto tr2436; + case 40: goto tr2437; + case 41: goto tr2438; + case 2058: goto tr2440; + case 2107: goto tr2441; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2406; - goto tr2396; -tr2410: + goto tr2439; + goto tr2429; +tr2443: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st896; -tr2411: + goto st910; +tr2444: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st896; -tr2413: + goto st910; +tr2446: { s->line_counter++; } - goto st896; -tr2529: + goto st910; +tr2562: { s->buffer[s->buffer_length++] = 0; @@ -65854,15 +67088,15 @@ tr2529: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 896; goto _out;} + {p++; cs = 910; goto _out;} } } } { s->line_counter++; } - goto st896; -tr2403: + goto st910; +tr2436: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -65870,11 +67104,11 @@ tr2403: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st896; -tr2404: + goto st910; +tr2437: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -65882,18 +67116,18 @@ tr2404: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st896; -tr2405: + goto st910; +tr2438: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -65901,18 +67135,18 @@ tr2405: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st896; -tr2407: + goto st910; +tr2440: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -65920,17 +67154,17 @@ tr2407: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st896; -st896: + goto st910; +st910: if ( ++p == pe ) - goto _test_eof896; -case 896: + goto _test_eof910; +case 910: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65944,17 +67178,17 @@ case 896: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st896; - case 32: goto st896; - case 40: goto tr2410; - case 41: goto tr2411; - case 2058: goto tr2413; - case 2107: goto tr2414; + case 9: goto st910; + case 32: goto st910; + case 40: goto tr2443; + case 41: goto tr2444; + case 2058: goto tr2446; + case 2107: goto tr2447; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2412; - goto tr2396; -tr2412: + goto tr2445; + goto tr2429; +tr2445: { s->number64 = 0; } @@ -65969,11 +67203,11 @@ tr2412: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st897; -tr2419: + goto st911; +tr2452: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -65985,14 +67219,14 @@ tr2419: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st897; -st897: + goto st911; +st911: if ( ++p == pe ) - goto _test_eof897; -case 897: + goto _test_eof911; +case 911: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66006,50 +67240,50 @@ case 897: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2416; - case 32: goto tr2416; - case 40: goto tr2417; - case 41: goto tr2418; - case 68: goto tr2420; - case 72: goto tr2421; - case 77: goto tr2422; - case 83: goto st916; - case 87: goto tr2424; - case 100: goto tr2420; - case 104: goto tr2421; - case 109: goto tr2422; - case 115: goto st916; - case 119: goto tr2424; - case 2058: goto tr2425; - case 2107: goto tr2426; + case 9: goto tr2449; + case 32: goto tr2449; + case 40: goto tr2450; + case 41: goto tr2451; + case 68: goto tr2453; + case 72: goto tr2454; + case 77: goto tr2455; + case 83: goto st930; + case 87: goto tr2457; + case 100: goto tr2453; + case 104: goto tr2454; + case 109: goto tr2455; + case 115: goto st930; + case 119: goto tr2457; + case 2058: goto tr2458; + case 2107: goto tr2459; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2419; - goto tr2415; -tr2428: + goto tr2452; + goto tr2448; +tr2461: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st898; -tr2429: + goto st912; +tr2462: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st898; -tr2431: + goto st912; +tr2464: { s->line_counter++; } - goto st898; -tr2514: + goto st912; +tr2547: { s->buffer[s->buffer_length++] = 0; @@ -66059,15 +67293,15 @@ tr2514: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 898; goto _out;} + {p++; cs = 912; goto _out;} } } } { s->line_counter++; } - goto st898; -tr2416: + goto st912; +tr2449: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66075,11 +67309,11 @@ tr2416: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st898; -tr2417: + goto st912; +tr2450: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66087,18 +67321,18 @@ tr2417: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st898; -tr2418: + goto st912; +tr2451: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66106,18 +67340,18 @@ tr2418: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st898; -tr2425: + goto st912; +tr2458: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66125,20 +67359,20 @@ tr2425: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st898; -tr2522: + goto st912; +tr2555: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66148,17 +67382,17 @@ tr2522: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st898; -tr2523: + goto st912; +tr2556: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66168,24 +67402,24 @@ tr2523: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st898; -tr2524: + goto st912; +tr2557: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66195,24 +67429,24 @@ tr2524: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st898; -tr2526: + goto st912; +tr2559: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66222,17 +67456,17 @@ tr2526: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st898; -st898: + goto st912; +st912: if ( ++p == pe ) - goto _test_eof898; -case 898: + goto _test_eof912; +case 912: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66246,17 +67480,17 @@ case 898: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st898; - case 32: goto st898; - case 40: goto tr2428; - case 41: goto tr2429; - case 2058: goto tr2431; - case 2107: goto tr2432; + case 9: goto st912; + case 32: goto st912; + case 40: goto tr2461; + case 41: goto tr2462; + case 2058: goto tr2464; + case 2107: goto tr2465; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2430; - goto tr2396; -tr2430: + goto tr2463; + goto tr2429; +tr2463: { s->number64 = 0; } @@ -66271,11 +67505,11 @@ tr2430: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st899; -tr2436: + goto st913; +tr2469: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -66287,14 +67521,14 @@ tr2436: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st899; -st899: + goto st913; +st913: if ( ++p == pe ) - goto _test_eof899; -case 899: + goto _test_eof913; +case 913: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66308,50 +67542,50 @@ case 899: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2433; - case 32: goto tr2433; - case 40: goto tr2434; - case 41: goto tr2435; - case 68: goto tr2437; - case 72: goto tr2438; - case 77: goto tr2439; - case 83: goto st912; - case 87: goto tr2441; - case 100: goto tr2437; - case 104: goto tr2438; - case 109: goto tr2439; - case 115: goto st912; - case 119: goto tr2441; - case 2058: goto tr2442; - case 2107: goto tr2443; + case 9: goto tr2466; + case 32: goto tr2466; + case 40: goto tr2467; + case 41: goto tr2468; + case 68: goto tr2470; + case 72: goto tr2471; + case 77: goto tr2472; + case 83: goto st926; + case 87: goto tr2474; + case 100: goto tr2470; + case 104: goto tr2471; + case 109: goto tr2472; + case 115: goto st926; + case 119: goto tr2474; + case 2058: goto tr2475; + case 2107: goto tr2476; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2436; - goto tr2415; -tr2445: + goto tr2469; + goto tr2448; +tr2478: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st900; -tr2446: + goto st914; +tr2479: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st900; -tr2448: + goto st914; +tr2481: { s->line_counter++; } - goto st900; -tr2499: + goto st914; +tr2532: { s->buffer[s->buffer_length++] = 0; @@ -66361,15 +67595,15 @@ tr2499: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 900; goto _out;} + {p++; cs = 914; goto _out;} } } } { s->line_counter++; } - goto st900; -tr2433: + goto st914; +tr2466: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66377,11 +67611,11 @@ tr2433: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st900; -tr2434: + goto st914; +tr2467: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66389,18 +67623,18 @@ tr2434: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st900; -tr2435: + goto st914; +tr2468: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66408,18 +67642,18 @@ tr2435: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st900; -tr2442: + goto st914; +tr2475: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66427,20 +67661,20 @@ tr2442: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st900; -tr2507: + goto st914; +tr2540: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66450,17 +67684,17 @@ tr2507: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st900; -tr2508: + goto st914; +tr2541: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66470,24 +67704,24 @@ tr2508: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st900; -tr2509: + goto st914; +tr2542: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66497,24 +67731,24 @@ tr2509: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st900; -tr2511: + goto st914; +tr2544: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66524,17 +67758,17 @@ tr2511: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st900; -st900: + goto st914; +st914: if ( ++p == pe ) - goto _test_eof900; -case 900: + goto _test_eof914; +case 914: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66548,17 +67782,17 @@ case 900: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st900; - case 32: goto st900; - case 40: goto tr2445; - case 41: goto tr2446; - case 2058: goto tr2448; - case 2107: goto tr2449; + case 9: goto st914; + case 32: goto st914; + case 40: goto tr2478; + case 41: goto tr2479; + case 2058: goto tr2481; + case 2107: goto tr2482; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2447; - goto tr2396; -tr2447: + goto tr2480; + goto tr2429; +tr2480: { s->number64 = 0; } @@ -66573,11 +67807,11 @@ tr2447: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st901; -tr2453: + goto st915; +tr2486: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -66589,14 +67823,14 @@ tr2453: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st901; -st901: + goto st915; +st915: if ( ++p == pe ) - goto _test_eof901; -case 901: + goto _test_eof915; +case 915: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66610,50 +67844,50 @@ case 901: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2450; - case 32: goto tr2450; - case 40: goto tr2451; - case 41: goto tr2452; - case 68: goto tr2454; - case 72: goto tr2455; - case 77: goto tr2456; - case 83: goto st908; - case 87: goto tr2458; - case 100: goto tr2454; - case 104: goto tr2455; - case 109: goto tr2456; - case 115: goto st908; - case 119: goto tr2458; - case 2058: goto tr2459; - case 2107: goto tr2460; + case 9: goto tr2483; + case 32: goto tr2483; + case 40: goto tr2484; + case 41: goto tr2485; + case 68: goto tr2487; + case 72: goto tr2488; + case 77: goto tr2489; + case 83: goto st922; + case 87: goto tr2491; + case 100: goto tr2487; + case 104: goto tr2488; + case 109: goto tr2489; + case 115: goto st922; + case 119: goto tr2491; + case 2058: goto tr2492; + case 2107: goto tr2493; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2453; - goto tr2415; -tr2462: + goto tr2486; + goto tr2448; +tr2495: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st902; -tr2463: + goto st916; +tr2496: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st902; -tr2465: + goto st916; +tr2498: { s->line_counter++; } - goto st902; -tr2484: + goto st916; +tr2517: { s->buffer[s->buffer_length++] = 0; @@ -66663,15 +67897,15 @@ tr2484: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 902; goto _out;} + {p++; cs = 916; goto _out;} } } } { s->line_counter++; } - goto st902; -tr2450: + goto st916; +tr2483: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66679,11 +67913,11 @@ tr2450: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st902; -tr2451: + goto st916; +tr2484: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66691,18 +67925,18 @@ tr2451: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st902; -tr2452: + goto st916; +tr2485: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66710,18 +67944,18 @@ tr2452: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st902; -tr2459: + goto st916; +tr2492: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66729,20 +67963,20 @@ tr2459: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st902; -tr2492: + goto st916; +tr2525: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66752,17 +67986,17 @@ tr2492: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st902; -tr2493: + goto st916; +tr2526: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66772,24 +68006,24 @@ tr2493: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st902; -tr2494: + goto st916; +tr2527: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66799,24 +68033,24 @@ tr2494: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st902; -tr2496: + goto st916; +tr2529: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66826,17 +68060,17 @@ tr2496: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st902; -st902: + goto st916; +st916: if ( ++p == pe ) - goto _test_eof902; -case 902: + goto _test_eof916; +case 916: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66850,17 +68084,17 @@ case 902: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st902; - case 32: goto st902; - case 40: goto tr2462; - case 41: goto tr2463; - case 2058: goto tr2465; - case 2107: goto tr2466; + case 9: goto st916; + case 32: goto st916; + case 40: goto tr2495; + case 41: goto tr2496; + case 2058: goto tr2498; + case 2107: goto tr2499; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2464; - goto tr2396; -tr2464: + goto tr2497; + goto tr2429; +tr2497: { s->number64 = 0; } @@ -66875,11 +68109,11 @@ tr2464: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st903; -tr2468: + goto st917; +tr2501: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -66891,38 +68125,38 @@ tr2468: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st903; -st903: + goto st917; +st917: if ( ++p == pe ) - goto _test_eof903; -case 903: + goto _test_eof917; +case 917: switch( (*p) ) { - case 32: goto tr2467; - case 59: goto tr2467; - case 68: goto tr2469; - case 72: goto tr2470; - case 77: goto tr2471; - case 83: goto st904; - case 87: goto tr2473; - case 100: goto tr2469; - case 104: goto tr2470; - case 109: goto tr2471; - case 115: goto st904; - case 119: goto tr2473; + case 32: goto tr2500; + case 59: goto tr2500; + case 68: goto tr2502; + case 72: goto tr2503; + case 77: goto tr2504; + case 83: goto st918; + case 87: goto tr2506; + case 100: goto tr2502; + case 104: goto tr2503; + case 109: goto tr2504; + case 115: goto st918; + case 119: goto tr2506; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2467; + goto tr2500; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2468; + goto tr2501; } else - goto tr2467; - goto tr2415; -tr2467: + goto tr2500; + goto tr2448; +tr2500: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -66930,20 +68164,20 @@ tr2467: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1485; -tr2481: + goto st1525; +tr2514: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -66953,72 +68187,72 @@ tr2481: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1485; -st1485: + goto st1525; +st1525: if ( ++p == pe ) - goto _test_eof1485; -case 1485: + goto _test_eof1525; +case 1525: goto st0; -tr2469: +tr2502: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st904; -tr2470: + goto st918; +tr2503: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st904; -tr2471: + goto st918; +tr2504: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st904; -tr2473: + goto st918; +tr2506: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st904; -st904: + goto st918; +st918: if ( ++p == pe ) - goto _test_eof904; -case 904: + goto _test_eof918; +case 918: switch( (*p) ) { - case 32: goto tr2467; - case 59: goto tr2467; + case 32: goto tr2500; + case 59: goto tr2500; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2467; + goto tr2500; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2474; + goto tr2507; } else - goto tr2467; - goto tr2415; -tr2475: + goto tr2500; + goto tr2448; +tr2508: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -67030,11 +68264,11 @@ tr2475: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st905; -tr2474: + goto st919; +tr2507: { s->number64_tmp = s->number64; } @@ -67052,17 +68286,17 @@ tr2474: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st905; -tr2482: + goto st919; +tr2515: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -67082,95 +68316,95 @@ tr2482: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st905; -st905: + goto st919; +st919: if ( ++p == pe ) - goto _test_eof905; -case 905: + goto _test_eof919; +case 919: switch( (*p) ) { - case 68: goto tr2476; - case 72: goto tr2477; - case 77: goto tr2478; - case 83: goto st906; - case 87: goto tr2480; - case 100: goto tr2476; - case 104: goto tr2477; - case 109: goto tr2478; - case 115: goto st906; - case 119: goto tr2480; + case 68: goto tr2509; + case 72: goto tr2510; + case 77: goto tr2511; + case 83: goto st920; + case 87: goto tr2513; + case 100: goto tr2509; + case 104: goto tr2510; + case 109: goto tr2511; + case 115: goto st920; + case 119: goto tr2513; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2475; - goto tr2415; -tr2476: + goto tr2508; + goto tr2448; +tr2509: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st906; -tr2477: + goto st920; +tr2510: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st906; -tr2478: + goto st920; +tr2511: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st906; -tr2480: + goto st920; +tr2513: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st906; -st906: + goto st920; +st920: if ( ++p == pe ) - goto _test_eof906; -case 906: + goto _test_eof920; +case 920: switch( (*p) ) { - case 32: goto tr2481; - case 59: goto tr2481; + case 32: goto tr2514; + case 59: goto tr2514; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2481; + goto tr2514; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2482; + goto tr2515; } else - goto tr2481; - goto tr2415; -tr2466: + goto tr2514; + goto tr2448; +tr2499: { s->buffer_length = 0; } - goto st907; -tr2483: + goto st921; +tr2516: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st907; -tr2460: + goto st921; +tr2493: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -67178,20 +68412,20 @@ tr2460: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st907; -tr2497: + goto st921; +tr2530: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -67201,17 +68435,17 @@ tr2497: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st907; -st907: + goto st921; +st921: if ( ++p == pe ) - goto _test_eof907; -case 907: + goto _test_eof921; +case 921: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -67231,50 +68465,50 @@ case 907: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2484; + goto tr2517; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2483; + goto tr2516; goto tr77; -tr2454: +tr2487: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st908; -tr2455: + goto st922; +tr2488: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st908; -tr2456: + goto st922; +tr2489: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st908; -tr2458: + goto st922; +tr2491: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st908; -st908: + goto st922; +st922: if ( ++p == pe ) - goto _test_eof908; -case 908: + goto _test_eof922; +case 922: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67288,17 +68522,17 @@ case 908: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2450; - case 32: goto tr2450; - case 40: goto tr2451; - case 41: goto tr2452; - case 2058: goto tr2459; - case 2107: goto tr2460; + case 9: goto tr2483; + case 32: goto tr2483; + case 40: goto tr2484; + case 41: goto tr2485; + case 2058: goto tr2492; + case 2107: goto tr2493; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2485; - goto tr2415; -tr2486: + goto tr2518; + goto tr2448; +tr2519: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -67310,11 +68544,11 @@ tr2486: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st909; -tr2485: + goto st923; +tr2518: { s->number64_tmp = s->number64; } @@ -67332,17 +68566,17 @@ tr2485: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st909; -tr2495: + goto st923; +tr2528: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -67362,69 +68596,69 @@ tr2495: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st909; -st909: + goto st923; +st923: if ( ++p == pe ) - goto _test_eof909; -case 909: + goto _test_eof923; +case 923: switch( (*p) ) { - case 68: goto tr2487; - case 72: goto tr2488; - case 77: goto tr2489; - case 83: goto st910; - case 87: goto tr2491; - case 100: goto tr2487; - case 104: goto tr2488; - case 109: goto tr2489; - case 115: goto st910; - case 119: goto tr2491; + case 68: goto tr2520; + case 72: goto tr2521; + case 77: goto tr2522; + case 83: goto st924; + case 87: goto tr2524; + case 100: goto tr2520; + case 104: goto tr2521; + case 109: goto tr2522; + case 115: goto st924; + case 119: goto tr2524; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2486; - goto tr2415; -tr2487: + goto tr2519; + goto tr2448; +tr2520: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st910; -tr2488: + goto st924; +tr2521: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st910; -tr2489: + goto st924; +tr2522: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st910; -tr2491: + goto st924; +tr2524: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st910; -st910: + goto st924; +st924: if ( ++p == pe ) - goto _test_eof910; -case 910: + goto _test_eof924; +case 924: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67438,29 +68672,29 @@ case 910: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2492; - case 32: goto tr2492; - case 40: goto tr2493; - case 41: goto tr2494; - case 2058: goto tr2496; - case 2107: goto tr2497; + case 9: goto tr2525; + case 32: goto tr2525; + case 40: goto tr2526; + case 41: goto tr2527; + case 2058: goto tr2529; + case 2107: goto tr2530; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2495; - goto tr2415; -tr2449: + goto tr2528; + goto tr2448; +tr2482: { s->buffer_length = 0; } - goto st911; -tr2498: + goto st925; +tr2531: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st911; -tr2443: + goto st925; +tr2476: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -67468,20 +68702,20 @@ tr2443: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st911; -tr2512: + goto st925; +tr2545: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -67491,17 +68725,17 @@ tr2512: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st911; -st911: + goto st925; +st925: if ( ++p == pe ) - goto _test_eof911; -case 911: + goto _test_eof925; +case 925: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -67521,50 +68755,50 @@ case 911: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2499; + goto tr2532; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2498; + goto tr2531; goto tr77; -tr2437: +tr2470: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st912; -tr2438: + goto st926; +tr2471: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st912; -tr2439: + goto st926; +tr2472: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st912; -tr2441: + goto st926; +tr2474: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st912; -st912: + goto st926; +st926: if ( ++p == pe ) - goto _test_eof912; -case 912: + goto _test_eof926; +case 926: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67578,17 +68812,17 @@ case 912: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2433; - case 32: goto tr2433; - case 40: goto tr2434; - case 41: goto tr2435; - case 2058: goto tr2442; - case 2107: goto tr2443; + case 9: goto tr2466; + case 32: goto tr2466; + case 40: goto tr2467; + case 41: goto tr2468; + case 2058: goto tr2475; + case 2107: goto tr2476; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2500; - goto tr2415; -tr2501: + goto tr2533; + goto tr2448; +tr2534: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -67600,11 +68834,11 @@ tr2501: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st913; -tr2500: + goto st927; +tr2533: { s->number64_tmp = s->number64; } @@ -67622,17 +68856,17 @@ tr2500: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st913; -tr2510: + goto st927; +tr2543: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -67652,69 +68886,69 @@ tr2510: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st913; -st913: + goto st927; +st927: if ( ++p == pe ) - goto _test_eof913; -case 913: + goto _test_eof927; +case 927: switch( (*p) ) { - case 68: goto tr2502; - case 72: goto tr2503; - case 77: goto tr2504; - case 83: goto st914; - case 87: goto tr2506; - case 100: goto tr2502; - case 104: goto tr2503; - case 109: goto tr2504; - case 115: goto st914; - case 119: goto tr2506; + case 68: goto tr2535; + case 72: goto tr2536; + case 77: goto tr2537; + case 83: goto st928; + case 87: goto tr2539; + case 100: goto tr2535; + case 104: goto tr2536; + case 109: goto tr2537; + case 115: goto st928; + case 119: goto tr2539; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2501; - goto tr2415; -tr2502: + goto tr2534; + goto tr2448; +tr2535: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st914; -tr2503: + goto st928; +tr2536: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st914; -tr2504: + goto st928; +tr2537: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st914; -tr2506: + goto st928; +tr2539: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st914; -st914: + goto st928; +st928: if ( ++p == pe ) - goto _test_eof914; -case 914: + goto _test_eof928; +case 928: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67728,29 +68962,29 @@ case 914: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2507; - case 32: goto tr2507; - case 40: goto tr2508; - case 41: goto tr2509; - case 2058: goto tr2511; - case 2107: goto tr2512; + case 9: goto tr2540; + case 32: goto tr2540; + case 40: goto tr2541; + case 41: goto tr2542; + case 2058: goto tr2544; + case 2107: goto tr2545; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2510; - goto tr2415; -tr2432: + goto tr2543; + goto tr2448; +tr2465: { s->buffer_length = 0; } - goto st915; -tr2513: + goto st929; +tr2546: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st915; -tr2426: + goto st929; +tr2459: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -67758,20 +68992,20 @@ tr2426: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st915; -tr2527: + goto st929; +tr2560: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -67781,17 +69015,17 @@ tr2527: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st915; -st915: + goto st929; +st929: if ( ++p == pe ) - goto _test_eof915; -case 915: + goto _test_eof929; +case 929: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -67811,50 +69045,50 @@ case 915: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2514; + goto tr2547; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2513; + goto tr2546; goto tr77; -tr2420: +tr2453: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st916; -tr2421: + goto st930; +tr2454: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st916; -tr2422: + goto st930; +tr2455: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st916; -tr2424: + goto st930; +tr2457: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st916; -st916: + goto st930; +st930: if ( ++p == pe ) - goto _test_eof916; -case 916: + goto _test_eof930; +case 930: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67868,17 +69102,17 @@ case 916: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2416; - case 32: goto tr2416; - case 40: goto tr2417; - case 41: goto tr2418; - case 2058: goto tr2425; - case 2107: goto tr2426; + case 9: goto tr2449; + case 32: goto tr2449; + case 40: goto tr2450; + case 41: goto tr2451; + case 2058: goto tr2458; + case 2107: goto tr2459; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2515; - goto tr2415; -tr2516: + goto tr2548; + goto tr2448; +tr2549: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -67890,11 +69124,11 @@ tr2516: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st917; -tr2515: + goto st931; +tr2548: { s->number64_tmp = s->number64; } @@ -67912,17 +69146,17 @@ tr2515: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st917; -tr2525: + goto st931; +tr2558: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -67942,69 +69176,69 @@ tr2525: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st917; -st917: + goto st931; +st931: if ( ++p == pe ) - goto _test_eof917; -case 917: + goto _test_eof931; +case 931: switch( (*p) ) { - case 68: goto tr2517; - case 72: goto tr2518; - case 77: goto tr2519; - case 83: goto st918; - case 87: goto tr2521; - case 100: goto tr2517; - case 104: goto tr2518; - case 109: goto tr2519; - case 115: goto st918; - case 119: goto tr2521; + case 68: goto tr2550; + case 72: goto tr2551; + case 77: goto tr2552; + case 83: goto st932; + case 87: goto tr2554; + case 100: goto tr2550; + case 104: goto tr2551; + case 109: goto tr2552; + case 115: goto st932; + case 119: goto tr2554; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2516; - goto tr2415; -tr2517: + goto tr2549; + goto tr2448; +tr2550: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st918; -tr2518: + goto st932; +tr2551: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st918; -tr2519: + goto st932; +tr2552: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st918; -tr2521: + goto st932; +tr2554: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st918; -st918: + goto st932; +st932: if ( ++p == pe ) - goto _test_eof918; -case 918: + goto _test_eof932; +case 932: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -68018,29 +69252,29 @@ case 918: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2522; - case 32: goto tr2522; - case 40: goto tr2523; - case 41: goto tr2524; - case 2058: goto tr2526; - case 2107: goto tr2527; + case 9: goto tr2555; + case 32: goto tr2555; + case 40: goto tr2556; + case 41: goto tr2557; + case 2058: goto tr2559; + case 2107: goto tr2560; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2525; - goto tr2415; -tr2414: + goto tr2558; + goto tr2448; +tr2447: { s->buffer_length = 0; } - goto st919; -tr2528: + goto st933; +tr2561: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st919; -tr2408: + goto st933; +tr2441: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -68048,17 +69282,17 @@ tr2408: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st919; -st919: + goto st933; +st933: if ( ++p == pe ) - goto _test_eof919; -case 919: + goto _test_eof933; +case 933: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -68078,34 +69312,34 @@ case 919: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2529; + goto tr2562; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2528; + goto tr2561; goto tr77; -tr2402: +tr2435: { s->buffer_length = 0; } - goto st920; -tr2530: + goto st934; +tr2563: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st920; -tr2395: + goto st934; +tr2428: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st920; -st920: + goto st934; +st934: if ( ++p == pe ) - goto _test_eof920; -case 920: + goto _test_eof934; +case 934: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -68125,34 +69359,34 @@ case 920: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2531; + goto tr2564; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2530; + goto tr2563; goto tr77; -tr2390: +tr2423: { s->buffer_length = 0; } - goto st921; -tr2532: + goto st935; +tr2565: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st921; -tr2384: + goto st935; +tr2417: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st921; -st921: + goto st935; +st935: if ( ++p == pe ) - goto _test_eof921; -case 921: + goto _test_eof935; +case 935: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -68172,14 +69406,14 @@ case 921: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2533; + goto tr2566; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2532; + goto tr2565; goto tr77; -st922: +st936: if ( ++p == pe ) - goto _test_eof922; -case 922: + goto _test_eof936; +case 936: switch( (*p) ) { case 32: goto tr77; case 59: goto tr77; @@ -68189,22 +69423,22 @@ case 922: goto tr77; } else if ( (*p) >= 9 ) goto tr77; - goto tr2534; -tr2534: + goto tr2567; +tr2567: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 923;goto st327;} } - goto st923; -st923: + { p--; {stack[top++] = 937;goto st330;} } + goto st937; +st937: if ( ++p == pe ) - goto _test_eof923; -case 923: + goto _test_eof937; +case 937: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -68218,38 +69452,38 @@ case 923: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2535; - case 32: goto tr2535; - case 40: goto tr2536; - case 41: goto tr2537; - case 2058: goto tr2538; - case 2107: goto tr2539; + case 9: goto tr2568; + case 32: goto tr2568; + case 40: goto tr2569; + case 41: goto tr2570; + case 2058: goto tr2571; + case 2107: goto tr2572; } goto tr77; -tr2542: +tr2575: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st924; -tr2543: + goto st938; +tr2576: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st924; -tr2544: + goto st938; +tr2577: { s->line_counter++; } - goto st924; -tr2548: + goto st938; +tr2581: { s->buffer[s->buffer_length++] = 0; @@ -68259,95 +69493,95 @@ tr2548: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 924; goto _out;} + {p++; cs = 938; goto _out;} } } } { s->line_counter++; } - goto st924; -tr2535: + goto st938; +tr2568: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st924; -tr2536: + goto st938; +tr2569: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st924; -tr2537: + goto st938; +tr2570: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st924; -tr2538: + goto st938; +tr2571: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st924; -st924: + goto st938; +st938: if ( ++p == pe ) - goto _test_eof924; -case 924: + goto _test_eof938; +case 938: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -68361,104 +69595,104 @@ case 924: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st924; - case 32: goto st924; - case 40: goto tr2542; - case 41: goto tr2543; - case 2058: goto tr2544; - case 2107: goto tr2545; + case 9: goto st938; + case 32: goto st938; + case 40: goto tr2575; + case 41: goto tr2576; + case 2058: goto tr2577; + case 2107: goto tr2578; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2540; + goto tr2573; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2540; + goto tr2573; } else - goto tr2540; + goto tr2573; goto tr77; -tr2540: +tr2573: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 925;goto st327;} } - goto st925; -st925: + { p--; {stack[top++] = 939;goto st330;} } + goto st939; +st939: if ( ++p == pe ) - goto _test_eof925; -case 925: + goto _test_eof939; +case 939: switch( (*p) ) { - case 32: goto tr2546; - case 59: goto tr2546; + case 32: goto tr2579; + case 59: goto tr2579; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2546; + goto tr2579; } else if ( (*p) >= 9 ) - goto tr2546; + goto tr2579; goto tr77; -tr2546: +tr2579: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1486; -st1486: + goto st1526; +st1526: if ( ++p == pe ) - goto _test_eof1486; -case 1486: + goto _test_eof1526; +case 1526: goto st0; -tr2545: +tr2578: { s->buffer_length = 0; } - goto st926; -tr2547: + goto st940; +tr2580: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st926; -tr2539: + goto st940; +tr2572: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st926; -st926: + goto st940; +st940: if ( ++p == pe ) - goto _test_eof926; -case 926: + goto _test_eof940; +case 940: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -68478,38 +69712,38 @@ case 926: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2548; + goto tr2581; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2547; + goto tr2580; goto tr77; -st927: +st941: if ( ++p == pe ) - goto _test_eof927; -case 927: + goto _test_eof941; +case 941: switch( (*p) ) { - case 42: goto tr2549; - case 92: goto tr2549; - case 95: goto tr2549; + case 42: goto tr2582; + case 92: goto tr2582; + case 95: goto tr2582; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2549; + goto tr2582; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2549; + goto tr2582; } else - goto tr2549; + goto tr2582; goto tr77; -tr2549: +tr2582: { s->dname = rdata_tail; } - { p--; {stack[top++] = 928;goto st318;} } - goto st928; -st928: + { p--; {stack[top++] = 942;goto st321;} } + goto st942; +st942: if ( ++p == pe ) - goto _test_eof928; -case 928: + goto _test_eof942; +case 942: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -68523,38 +69757,38 @@ case 928: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2550; - case 32: goto tr2550; - case 40: goto tr2551; - case 41: goto tr2552; - case 2058: goto tr2553; - case 2107: goto tr2554; + case 9: goto tr2583; + case 32: goto tr2583; + case 40: goto tr2584; + case 41: goto tr2585; + case 2058: goto tr2586; + case 2107: goto tr2587; } goto tr77; -tr2556: +tr2589: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st929; -tr2557: + goto st943; +tr2590: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st929; -tr2559: + goto st943; +tr2592: { s->line_counter++; } - goto st929; -tr2563: + goto st943; +tr2596: { s->buffer[s->buffer_length++] = 0; @@ -68564,55 +69798,55 @@ tr2563: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 929; goto _out;} + {p++; cs = 943; goto _out;} } } } { s->line_counter++; } - goto st929; -tr2550: + goto st943; +tr2583: { rdata_tail += s->dname_tmp_length; } - goto st929; -tr2551: + goto st943; +tr2584: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st929; -tr2552: + goto st943; +tr2585: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st929; -tr2553: + goto st943; +tr2586: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st929; -st929: + goto st943; +st943: if ( ++p == pe ) - goto _test_eof929; -case 929: + goto _test_eof943; +case 943: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -68626,82 +69860,82 @@ case 929: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st929; - case 32: goto st929; - case 40: goto tr2556; - case 41: goto tr2557; - case 42: goto tr2558; - case 92: goto tr2558; - case 95: goto tr2558; - case 2058: goto tr2559; - case 2107: goto tr2560; + case 9: goto st943; + case 32: goto st943; + case 40: goto tr2589; + case 41: goto tr2590; + case 42: goto tr2591; + case 92: goto tr2591; + case 95: goto tr2591; + case 2058: goto tr2592; + case 2107: goto tr2593; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2558; + goto tr2591; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2558; + goto tr2591; } else - goto tr2558; + goto tr2591; goto tr77; -tr2558: +tr2591: { s->dname = rdata_tail; } - { p--; {stack[top++] = 930;goto st318;} } - goto st930; -st930: + { p--; {stack[top++] = 944;goto st321;} } + goto st944; +st944: if ( ++p == pe ) - goto _test_eof930; -case 930: + goto _test_eof944; +case 944: switch( (*p) ) { - case 32: goto tr2561; - case 59: goto tr2561; + case 32: goto tr2594; + case 59: goto tr2594; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2561; + goto tr2594; } else if ( (*p) >= 9 ) - goto tr2561; + goto tr2594; goto tr77; -tr2561: +tr2594: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1487; -st1487: + goto st1527; +st1527: if ( ++p == pe ) - goto _test_eof1487; -case 1487: + goto _test_eof1527; +case 1527: goto st0; -tr2560: +tr2593: { s->buffer_length = 0; } - goto st931; -tr2562: + goto st945; +tr2595: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st931; -tr2554: + goto st945; +tr2587: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st931; -st931: + goto st945; +st945: if ( ++p == pe ) - goto _test_eof931; -case 931: + goto _test_eof945; +case 945: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -68721,18 +69955,18 @@ case 931: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2563; + goto tr2596; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2562; + goto tr2595; goto tr77; -st932: +st946: if ( ++p == pe ) - goto _test_eof932; -case 932: + goto _test_eof946; +case 946: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2564; - goto tr2396; -tr2564: + goto tr2597; + goto tr2429; +tr2597: { s->number64 = 0; } @@ -68747,11 +69981,11 @@ tr2564: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st933; -tr2568: + goto st947; +tr2601: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -68763,14 +69997,14 @@ tr2568: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st933; -st933: + goto st947; +st947: if ( ++p == pe ) - goto _test_eof933; -case 933: + goto _test_eof947; +case 947: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -68784,40 +70018,40 @@ case 933: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2565; - case 32: goto tr2565; - case 40: goto tr2566; - case 41: goto tr2567; - case 2058: goto tr2569; - case 2107: goto tr2570; + case 9: goto tr2598; + case 32: goto tr2598; + case 40: goto tr2599; + case 41: goto tr2600; + case 2058: goto tr2602; + case 2107: goto tr2603; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2568; - goto tr2396; -tr2572: + goto tr2601; + goto tr2429; +tr2605: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st934; -tr2573: + goto st948; +tr2606: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st934; -tr2575: + goto st948; +tr2608: { s->line_counter++; } - goto st934; -tr2579: + goto st948; +tr2612: { s->buffer[s->buffer_length++] = 0; @@ -68827,15 +70061,15 @@ tr2579: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 934; goto _out;} + {p++; cs = 948; goto _out;} } } } { s->line_counter++; } - goto st934; -tr2565: + goto st948; +tr2598: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -68843,30 +70077,30 @@ tr2565: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st934; -tr2566: - { + goto st948; +tr2599: + { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); memcpy(rdata_tail, &num16, 2); rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st934; -tr2567: + goto st948; +tr2600: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -68874,18 +70108,18 @@ tr2567: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st934; -tr2569: + goto st948; +tr2602: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -68893,17 +70127,17 @@ tr2569: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st934; -st934: + goto st948; +st948: if ( ++p == pe ) - goto _test_eof934; -case 934: + goto _test_eof948; +case 948: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -68917,71 +70151,71 @@ case 934: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st934; - case 32: goto st934; - case 40: goto tr2572; - case 41: goto tr2573; - case 42: goto tr2574; - case 92: goto tr2574; - case 95: goto tr2574; - case 2058: goto tr2575; - case 2107: goto tr2576; + case 9: goto st948; + case 32: goto st948; + case 40: goto tr2605; + case 41: goto tr2606; + case 42: goto tr2607; + case 92: goto tr2607; + case 95: goto tr2607; + case 2058: goto tr2608; + case 2107: goto tr2609; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2574; + goto tr2607; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2574; + goto tr2607; } else - goto tr2574; + goto tr2607; goto tr77; -tr2574: +tr2607: { s->dname = rdata_tail; } - { p--; {stack[top++] = 935;goto st318;} } - goto st935; -st935: + { p--; {stack[top++] = 949;goto st321;} } + goto st949; +st949: if ( ++p == pe ) - goto _test_eof935; -case 935: + goto _test_eof949; +case 949: switch( (*p) ) { - case 32: goto tr2577; - case 59: goto tr2577; + case 32: goto tr2610; + case 59: goto tr2610; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2577; + goto tr2610; } else if ( (*p) >= 9 ) - goto tr2577; + goto tr2610; goto tr77; -tr2577: +tr2610: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1488; -st1488: + goto st1528; +st1528: if ( ++p == pe ) - goto _test_eof1488; -case 1488: + goto _test_eof1528; +case 1528: goto st0; -tr2576: +tr2609: { s->buffer_length = 0; } - goto st936; -tr2578: + goto st950; +tr2611: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st936; -tr2570: + goto st950; +tr2603: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -68989,17 +70223,17 @@ tr2570: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st936; -st936: + goto st950; +st950: if ( ++p == pe ) - goto _test_eof936; -case 936: + goto _test_eof950; +case 950: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -69019,36 +70253,36 @@ case 936: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2579; + goto tr2612; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2578; + goto tr2611; goto tr77; -st937: +st951: if ( ++p == pe ) - goto _test_eof937; -case 937: + goto _test_eof951; +case 951: switch( (*p) ) { - case 32: goto tr2581; - case 59: goto tr2581; + case 32: goto tr2614; + case 59: goto tr2614; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2581; + goto tr2614; } else if ( (*p) >= 9 ) - goto tr2581; - goto tr2580; -tr2590: + goto tr2614; + goto tr2613; +tr2623: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 938;goto st327;} } - goto st938; -tr2580: + { p--; {stack[top++] = 952;goto st330;} } + goto st952; +tr2613: { s->long_string = true; } @@ -69057,15 +70291,15 @@ tr2580: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 938;goto st327;} } - goto st938; -st938: + { p--; {stack[top++] = 952;goto st330;} } + goto st952; +st952: if ( ++p == pe ) - goto _test_eof938; -case 938: + goto _test_eof952; +case 952: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69083,42 +70317,42 @@ case 938: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2582; - case 32: goto tr2582; - case 40: goto tr2583; - case 41: goto tr2584; - case 3082: goto tr2585; - case 3131: goto tr2586; - case 3338: goto tr2587; - case 3387: goto tr2587; - case 3594: goto tr2588; - case 3643: goto tr2589; + case 9: goto tr2615; + case 32: goto tr2615; + case 40: goto tr2616; + case 41: goto tr2617; + case 3082: goto tr2618; + case 3131: goto tr2619; + case 3338: goto tr2620; + case 3387: goto tr2620; + case 3594: goto tr2621; + case 3643: goto tr2622; } - goto tr2581; -tr2592: + goto tr2614; +tr2625: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st939; -tr2593: + goto st953; +tr2626: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st939; -tr2594: + goto st953; +tr2627: { s->line_counter++; } - goto st939; -tr2600: + goto st953; +tr2633: { s->buffer[s->buffer_length++] = 0; @@ -69128,95 +70362,95 @@ tr2600: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 939; goto _out;} + {p++; cs = 953; goto _out;} } } } { s->line_counter++; } - goto st939; -tr2582: + goto st953; +tr2615: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st939; -tr2583: + goto st953; +tr2616: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st939; -tr2584: + goto st953; +tr2617: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st939; -tr2585: + goto st953; +tr2618: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st939; -st939: + goto st953; +st953: if ( ++p == pe ) - goto _test_eof939; -case 939: + goto _test_eof953; +case 953: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69234,60 +70468,60 @@ case 939: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st939; - case 32: goto st939; - case 40: goto tr2592; - case 41: goto tr2593; - case 3082: goto tr2594; - case 3131: goto tr2595; - case 3338: goto tr2596; - case 3387: goto tr2596; - case 3594: goto tr2597; - case 3643: goto tr2598; + case 9: goto st953; + case 32: goto st953; + case 40: goto tr2625; + case 41: goto tr2626; + case 3082: goto tr2627; + case 3131: goto tr2628; + case 3338: goto tr2629; + case 3387: goto tr2629; + case 3594: goto tr2630; + case 3643: goto tr2631; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2590; + goto tr2623; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2590; + goto tr2623; } else - goto tr2590; - goto tr2581; -tr2595: + goto tr2623; + goto tr2614; +tr2628: { s->buffer_length = 0; } - goto st940; -tr2599: + goto st954; +tr2632: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st940; -tr2586: + goto st954; +tr2619: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st940; -st940: + goto st954; +st954: if ( ++p == pe ) - goto _test_eof940; -case 940: + goto _test_eof954; +case 954: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -69307,22 +70541,22 @@ case 940: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2600; + goto tr2633; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2599; - goto tr2581; -tr2587: + goto tr2632; + goto tr2614; +tr2620: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -69331,32 +70565,32 @@ tr2587: { p--; {cs = stack[--top];goto _again;} } - goto st1489; -tr2596: + goto st1529; +tr2629: { s->long_string = false; } { p--; {cs = stack[--top];goto _again;} } - goto st1489; -st1489: + goto st1529; +st1529: if ( ++p == pe ) - goto _test_eof1489; -case 1489: + goto _test_eof1529; +case 1529: goto st0; -tr2588: +tr2621: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -69368,8 +70602,8 @@ tr2588: { p--; {cs = stack[--top];goto _again;} } - goto st1490; -tr2597: + goto st1530; +tr2630: { s->line_counter++; } @@ -69379,11 +70613,11 @@ tr2597: { p--; {cs = stack[--top];goto _again;} } - goto st1490; -st1490: + goto st1530; +st1530: if ( ++p == pe ) - goto _test_eof1490; -case 1490: + goto _test_eof1530; +case 1530: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69401,38 +70635,38 @@ case 1490: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st939; - case 32: goto st939; - case 40: goto tr2592; - case 41: goto tr2593; - case 3082: goto tr2594; - case 3131: goto tr2595; - case 3338: goto tr2596; - case 3387: goto tr2596; - case 3594: goto tr2597; - case 3643: goto tr2598; + case 9: goto st953; + case 32: goto st953; + case 40: goto tr2625; + case 41: goto tr2626; + case 3082: goto tr2627; + case 3131: goto tr2628; + case 3338: goto tr2629; + case 3387: goto tr2629; + case 3594: goto tr2630; + case 3643: goto tr2631; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2590; + goto tr2623; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2590; + goto tr2623; } else - goto tr2590; - goto tr2581; -tr2589: + goto tr2623; + goto tr2614; +tr2622: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -69444,8 +70678,8 @@ tr2589: { p--; {cs = stack[--top];goto _again;} } - goto st1491; -tr2598: + goto st1531; +tr2631: { s->buffer_length = 0; } @@ -69455,11 +70689,11 @@ tr2598: { p--; {cs = stack[--top];goto _again;} } - goto st1491; -st1491: + goto st1531; +st1531: if ( ++p == pe ) - goto _test_eof1491; -case 1491: + goto _test_eof1531; +case 1531: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -69479,36 +70713,36 @@ case 1491: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2600; + goto tr2633; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2599; - goto tr2581; -st941: + goto tr2632; + goto tr2614; +st955: if ( ++p == pe ) - goto _test_eof941; -case 941: + goto _test_eof955; +case 955: if ( (*p) == 46 ) - goto tr2601; + goto tr2634; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2601; + goto tr2634; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2601; + goto tr2634; } else - goto tr2601; - goto tr2373; -tr2603: + goto tr2634; + goto tr2406; +tr2636: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st942; -tr2601: + goto st956; +tr2634: { s->buffer_length = 0; } @@ -69517,47 +70751,47 @@ tr2601: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st942; -st942: + goto st956; +st956: if ( ++p == pe ) - goto _test_eof942; -case 942: + goto _test_eof956; +case 956: switch( (*p) ) { - case 32: goto tr2602; - case 46: goto tr2603; - case 59: goto tr2602; + case 32: goto tr2635; + case 46: goto tr2636; + case 59: goto tr2635; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2602; + goto tr2635; } else if ( (*p) >= 9 ) - goto tr2602; + goto tr2635; } else if ( (*p) > 58 ) { if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2603; + goto tr2636; } else if ( (*p) >= 65 ) - goto tr2603; + goto tr2636; } else - goto tr2603; - goto tr2373; -tr2602: + goto tr2636; + goto tr2406; +tr2635: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -69565,20 +70799,20 @@ tr2602: { p--; {cs = stack[--top];goto _again;} } - goto st1492; -st1492: + goto st1532; +st1532: if ( ++p == pe ) - goto _test_eof1492; -case 1492: + goto _test_eof1532; +case 1532: goto st0; -st943: +st957: if ( ++p == pe ) - goto _test_eof943; -case 943: + goto _test_eof957; +case 957: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2605; - goto tr2604; -tr2609: + goto tr2638; + goto tr2637; +tr2642: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -69590,11 +70824,11 @@ tr2609: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st944; -tr2605: + goto st958; +tr2638: { memset(&(s->loc), 0, sizeof(s->loc)); // Defaults. @@ -69619,14 +70853,14 @@ tr2605: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st944; -st944: + goto st958; +st958: if ( ++p == pe ) - goto _test_eof944; -case 944: + goto _test_eof958; +case 958: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69640,40 +70874,40 @@ case 944: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2606; - case 32: goto tr2606; - case 40: goto tr2607; - case 41: goto tr2608; - case 2058: goto tr2610; - case 2107: goto tr2611; + case 9: goto tr2639; + case 32: goto tr2639; + case 40: goto tr2640; + case 41: goto tr2641; + case 2058: goto tr2643; + case 2107: goto tr2644; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2609; - goto tr2604; -tr2613: + goto tr2642; + goto tr2637; +tr2646: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st945; -tr2614: + goto st959; +tr2647: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st945; -tr2618: + goto st959; +tr2651: { s->line_counter++; } - goto st945; -tr2861: + goto st959; +tr2894: { s->buffer[s->buffer_length++] = 0; @@ -69683,75 +70917,75 @@ tr2861: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 945; goto _out;} + {p++; cs = 959; goto _out;} } } } { s->line_counter++; } - goto st945; -tr2606: + goto st959; +tr2639: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st945; -tr2607: + goto st959; +tr2640: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st945; -tr2608: + goto st959; +tr2641: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st945; -tr2610: + goto st959; +tr2643: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st945; -st945: + goto st959; +st959: if ( ++p == pe ) - goto _test_eof945; -case 945: + goto _test_eof959; +case 959: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69765,19 +70999,19 @@ case 945: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st945; - case 32: goto st945; - case 40: goto tr2613; - case 41: goto tr2614; - case 78: goto st950; - case 83: goto st992; - case 2058: goto tr2618; - case 2107: goto tr2619; + case 9: goto st959; + case 32: goto st959; + case 40: goto tr2646; + case 41: goto tr2647; + case 78: goto st964; + case 83: goto st1006; + case 2058: goto tr2651; + case 2107: goto tr2652; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2615; - goto tr2604; -tr2615: + goto tr2648; + goto tr2637; +tr2648: { s->number64 = 0; } @@ -69792,11 +71026,11 @@ tr2615: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st946; -tr2623: + goto st960; +tr2656: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -69808,14 +71042,14 @@ tr2623: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st946; -st946: + goto st960; +st960: if ( ++p == pe ) - goto _test_eof946; -case 946: + goto _test_eof960; +case 960: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69829,40 +71063,40 @@ case 946: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2620; - case 32: goto tr2620; - case 40: goto tr2621; - case 41: goto tr2622; - case 2058: goto tr2624; - case 2107: goto tr2625; + case 9: goto tr2653; + case 32: goto tr2653; + case 40: goto tr2654; + case 41: goto tr2655; + case 2058: goto tr2657; + case 2107: goto tr2658; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2623; - goto tr2604; -tr2627: + goto tr2656; + goto tr2637; +tr2660: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st947; -tr2628: + goto st961; +tr2661: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st947; -tr2630: + goto st961; +tr2663: { s->line_counter++; } - goto st947; -tr2859: + goto st961; +tr2892: { s->buffer[s->buffer_length++] = 0; @@ -69872,75 +71106,75 @@ tr2859: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 947; goto _out;} + {p++; cs = 961; goto _out;} } } } { s->line_counter++; } - goto st947; -tr2620: + goto st961; +tr2653: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st947; -tr2621: + goto st961; +tr2654: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st947; -tr2622: + goto st961; +tr2655: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st947; -tr2624: + goto st961; +tr2657: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st947; -st947: + goto st961; +st961: if ( ++p == pe ) - goto _test_eof947; -case 947: + goto _test_eof961; +case 961: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69954,19 +71188,19 @@ case 947: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st947; - case 32: goto st947; - case 40: goto tr2627; - case 41: goto tr2628; - case 78: goto st950; - case 83: goto st992; - case 2058: goto tr2630; - case 2107: goto tr2631; + case 9: goto st961; + case 32: goto st961; + case 40: goto tr2660; + case 41: goto tr2661; + case 78: goto st964; + case 83: goto st1006; + case 2058: goto tr2663; + case 2107: goto tr2664; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2629; - goto tr2604; -tr2636: + goto tr2662; + goto tr2637; +tr2669: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -69978,11 +71212,11 @@ tr2636: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st948; -tr2629: + goto st962; +tr2662: { s->decimals = 3; } @@ -70003,14 +71237,14 @@ tr2629: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st948; -st948: + goto st962; +st962: if ( ++p == pe ) - goto _test_eof948; -case 948: + goto _test_eof962; +case 962: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70024,41 +71258,41 @@ case 948: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2632; - case 32: goto tr2632; - case 40: goto tr2633; - case 41: goto tr2634; - case 46: goto st994; - case 2058: goto tr2637; - case 2107: goto tr2638; + case 9: goto tr2665; + case 32: goto tr2665; + case 40: goto tr2666; + case 41: goto tr2667; + case 46: goto st1008; + case 2058: goto tr2670; + case 2107: goto tr2671; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2636; - goto tr2604; -tr2640: + goto tr2669; + goto tr2637; +tr2673: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st949; -tr2641: + goto st963; +tr2674: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st949; -tr2642: + goto st963; +tr2675: { s->line_counter++; } - goto st949; -tr2850: + goto st963; +tr2883: { s->buffer[s->buffer_length++] = 0; @@ -70068,15 +71302,15 @@ tr2850: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 949; goto _out;} + {p++; cs = 963; goto _out;} } } } { s->line_counter++; } - goto st949; -tr2632: + goto st963; +tr2665: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -70086,7 +71320,7 @@ tr2632: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -70094,11 +71328,11 @@ tr2632: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st949; -tr2633: + goto st963; +tr2666: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -70108,7 +71342,7 @@ tr2633: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -70116,18 +71350,18 @@ tr2633: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st949; -tr2634: + goto st963; +tr2667: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -70137,7 +71371,7 @@ tr2634: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -70145,18 +71379,18 @@ tr2634: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st949; -tr2637: + goto st963; +tr2670: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -70166,7 +71400,7 @@ tr2637: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -70174,14 +71408,14 @@ tr2637: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st949; -tr2851: + goto st963; +tr2884: { s->number64_tmp = s->number64; } @@ -70194,7 +71428,7 @@ tr2851: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -70202,11 +71436,11 @@ tr2851: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st949; -tr2852: + goto st963; +tr2885: { s->number64_tmp = s->number64; } @@ -70219,7 +71453,7 @@ tr2852: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -70227,18 +71461,18 @@ tr2852: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st949; -tr2853: + goto st963; +tr2886: { s->number64_tmp = s->number64; } @@ -70251,7 +71485,7 @@ tr2853: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -70259,18 +71493,18 @@ tr2853: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st949; -tr2855: + goto st963; +tr2888: { s->number64_tmp = s->number64; } @@ -70283,7 +71517,7 @@ tr2855: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -70291,17 +71525,17 @@ tr2855: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st949; -st949: + goto st963; +st963: if ( ++p == pe ) - goto _test_eof949; -case 949: + goto _test_eof963; +case 963: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70315,20 +71549,20 @@ case 949: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st949; - case 32: goto st949; - case 40: goto tr2640; - case 41: goto tr2641; - case 78: goto st950; - case 83: goto st992; - case 2058: goto tr2642; - case 2107: goto tr2643; + case 9: goto st963; + case 32: goto st963; + case 40: goto tr2673; + case 41: goto tr2674; + case 78: goto st964; + case 83: goto st1006; + case 2058: goto tr2675; + case 2107: goto tr2676; } - goto tr2604; -st950: + goto tr2637; +st964: if ( ++p == pe ) - goto _test_eof950; -case 950: + goto _test_eof964; +case 964: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70342,38 +71576,38 @@ case 950: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st951; - case 32: goto st951; - case 40: goto tr2645; - case 41: goto tr2646; - case 2058: goto tr2647; - case 2107: goto tr2648; + case 9: goto st965; + case 32: goto st965; + case 40: goto tr2678; + case 41: goto tr2679; + case 2058: goto tr2680; + case 2107: goto tr2681; } - goto tr2604; -tr2645: + goto tr2637; +tr2678: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st951; -tr2646: + goto st965; +tr2679: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st951; -tr2647: + goto st965; +tr2680: { s->line_counter++; } - goto st951; -tr2843: + goto st965; +tr2876: { s->buffer[s->buffer_length++] = 0; @@ -70383,55 +71617,55 @@ tr2843: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 951; goto _out;} + {p++; cs = 965; goto _out;} } } } { s->line_counter++; } - goto st951; -tr2844: + goto st965; +tr2877: { s->loc.lat_sign = -1; } - goto st951; -tr2845: + goto st965; +tr2878: { s->loc.lat_sign = -1; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st951; -tr2846: + goto st965; +tr2879: { s->loc.lat_sign = -1; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st951; -tr2847: + goto st965; +tr2880: { s->loc.lat_sign = -1; } { s->line_counter++; } - goto st951; -st951: + goto st965; +st965: if ( ++p == pe ) - goto _test_eof951; -case 951: + goto _test_eof965; +case 965: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70445,17 +71679,17 @@ case 951: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st951; - case 32: goto st951; - case 40: goto tr2645; - case 41: goto tr2646; - case 2058: goto tr2647; - case 2107: goto tr2648; + case 9: goto st965; + case 32: goto st965; + case 40: goto tr2678; + case 41: goto tr2679; + case 2058: goto tr2680; + case 2107: goto tr2681; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2649; - goto tr2604; -tr2649: + goto tr2682; + goto tr2637; +tr2682: { s->number64 = 0; } @@ -70470,11 +71704,11 @@ tr2649: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st952; -tr2653: + goto st966; +tr2686: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70486,14 +71720,14 @@ tr2653: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st952; -st952: + goto st966; +st966: if ( ++p == pe ) - goto _test_eof952; -case 952: + goto _test_eof966; +case 966: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70507,40 +71741,40 @@ case 952: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2650; - case 32: goto tr2650; - case 40: goto tr2651; - case 41: goto tr2652; - case 2058: goto tr2654; - case 2107: goto tr2655; + case 9: goto tr2683; + case 32: goto tr2683; + case 40: goto tr2684; + case 41: goto tr2685; + case 2058: goto tr2687; + case 2107: goto tr2688; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2653; - goto tr2604; -tr2657: + goto tr2686; + goto tr2637; +tr2690: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st953; -tr2658: + goto st967; +tr2691: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st953; -tr2662: + goto st967; +tr2695: { s->line_counter++; } - goto st953; -tr2841: + goto st967; +tr2874: { s->buffer[s->buffer_length++] = 0; @@ -70550,75 +71784,75 @@ tr2841: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 953; goto _out;} + {p++; cs = 967; goto _out;} } } } { s->line_counter++; } - goto st953; -tr2650: + goto st967; +tr2683: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st953; -tr2651: + goto st967; +tr2684: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st953; -tr2652: + goto st967; +tr2685: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st953; -tr2654: + goto st967; +tr2687: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st953; -st953: + goto st967; +st967: if ( ++p == pe ) - goto _test_eof953; -case 953: + goto _test_eof967; +case 967: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70632,19 +71866,19 @@ case 953: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st953; - case 32: goto st953; - case 40: goto tr2657; - case 41: goto tr2658; - case 69: goto st958; - case 87: goto st985; - case 2058: goto tr2662; - case 2107: goto tr2663; + case 9: goto st967; + case 32: goto st967; + case 40: goto tr2690; + case 41: goto tr2691; + case 69: goto st972; + case 87: goto st999; + case 2058: goto tr2695; + case 2107: goto tr2696; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2659; - goto tr2604; -tr2659: + goto tr2692; + goto tr2637; +tr2692: { s->number64 = 0; } @@ -70659,11 +71893,11 @@ tr2659: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st954; -tr2667: + goto st968; +tr2700: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70675,14 +71909,14 @@ tr2667: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st954; -st954: + goto st968; +st968: if ( ++p == pe ) - goto _test_eof954; -case 954: + goto _test_eof968; +case 968: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70696,40 +71930,40 @@ case 954: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2664; - case 32: goto tr2664; - case 40: goto tr2665; - case 41: goto tr2666; - case 2058: goto tr2668; - case 2107: goto tr2669; + case 9: goto tr2697; + case 32: goto tr2697; + case 40: goto tr2698; + case 41: goto tr2699; + case 2058: goto tr2701; + case 2107: goto tr2702; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2667; - goto tr2604; -tr2671: + goto tr2700; + goto tr2637; +tr2704: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st955; -tr2672: + goto st969; +tr2705: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st955; -tr2674: + goto st969; +tr2707: { s->line_counter++; } - goto st955; -tr2839: + goto st969; +tr2872: { s->buffer[s->buffer_length++] = 0; @@ -70739,75 +71973,75 @@ tr2839: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 955; goto _out;} + {p++; cs = 969; goto _out;} } } } { s->line_counter++; } - goto st955; -tr2664: + goto st969; +tr2697: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st955; -tr2665: + goto st969; +tr2698: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st955; -tr2666: + goto st969; +tr2699: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st955; -tr2668: + goto st969; +tr2701: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st955; -st955: + goto st969; +st969: if ( ++p == pe ) - goto _test_eof955; -case 955: + goto _test_eof969; +case 969: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70821,19 +72055,19 @@ case 955: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st955; - case 32: goto st955; - case 40: goto tr2671; - case 41: goto tr2672; - case 69: goto st958; - case 87: goto st985; - case 2058: goto tr2674; - case 2107: goto tr2675; + case 9: goto st969; + case 32: goto st969; + case 40: goto tr2704; + case 41: goto tr2705; + case 69: goto st972; + case 87: goto st999; + case 2058: goto tr2707; + case 2107: goto tr2708; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2673; - goto tr2604; -tr2680: + goto tr2706; + goto tr2637; +tr2713: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70845,11 +72079,11 @@ tr2680: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st956; -tr2673: + goto st970; +tr2706: { s->decimals = 3; } @@ -70870,14 +72104,14 @@ tr2673: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st956; -st956: + goto st970; +st970: if ( ++p == pe ) - goto _test_eof956; -case 956: + goto _test_eof970; +case 970: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70891,41 +72125,41 @@ case 956: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2676; - case 32: goto tr2676; - case 40: goto tr2677; - case 41: goto tr2678; - case 46: goto st987; - case 2058: goto tr2681; - case 2107: goto tr2682; + case 9: goto tr2709; + case 32: goto tr2709; + case 40: goto tr2710; + case 41: goto tr2711; + case 46: goto st1001; + case 2058: goto tr2714; + case 2107: goto tr2715; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2680; - goto tr2604; -tr2684: + goto tr2713; + goto tr2637; +tr2717: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st957; -tr2685: + goto st971; +tr2718: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st957; -tr2686: + goto st971; +tr2719: { s->line_counter++; } - goto st957; -tr2830: + goto st971; +tr2863: { s->buffer[s->buffer_length++] = 0; @@ -70935,15 +72169,15 @@ tr2830: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 957; goto _out;} + {p++; cs = 971; goto _out;} } } } { s->line_counter++; } - goto st957; -tr2676: + goto st971; +tr2709: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -70953,7 +72187,7 @@ tr2676: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -70961,11 +72195,11 @@ tr2676: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st957; -tr2677: + goto st971; +tr2710: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -70975,7 +72209,7 @@ tr2677: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -70983,18 +72217,18 @@ tr2677: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st957; -tr2678: + goto st971; +tr2711: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -71004,7 +72238,7 @@ tr2678: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71012,18 +72246,18 @@ tr2678: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st957; -tr2681: + goto st971; +tr2714: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -71033,7 +72267,7 @@ tr2681: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71041,14 +72275,14 @@ tr2681: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st957; -tr2831: + goto st971; +tr2864: { s->number64_tmp = s->number64; } @@ -71061,7 +72295,7 @@ tr2831: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71069,11 +72303,11 @@ tr2831: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st957; -tr2832: + goto st971; +tr2865: { s->number64_tmp = s->number64; } @@ -71086,7 +72320,7 @@ tr2832: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71094,18 +72328,18 @@ tr2832: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st957; -tr2833: + goto st971; +tr2866: { s->number64_tmp = s->number64; } @@ -71118,7 +72352,7 @@ tr2833: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71126,18 +72360,18 @@ tr2833: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st957; -tr2835: + goto st971; +tr2868: { s->number64_tmp = s->number64; } @@ -71150,7 +72384,7 @@ tr2835: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71158,17 +72392,17 @@ tr2835: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st957; -st957: + goto st971; +st971: if ( ++p == pe ) - goto _test_eof957; -case 957: + goto _test_eof971; +case 971: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71182,20 +72416,20 @@ case 957: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st957; - case 32: goto st957; - case 40: goto tr2684; - case 41: goto tr2685; - case 69: goto st958; - case 87: goto st985; - case 2058: goto tr2686; - case 2107: goto tr2687; + case 9: goto st971; + case 32: goto st971; + case 40: goto tr2717; + case 41: goto tr2718; + case 69: goto st972; + case 87: goto st999; + case 2058: goto tr2719; + case 2107: goto tr2720; } - goto tr2604; -st958: + goto tr2637; +st972: if ( ++p == pe ) - goto _test_eof958; -case 958: + goto _test_eof972; +case 972: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71209,38 +72443,38 @@ case 958: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st959; - case 32: goto st959; - case 40: goto tr2689; - case 41: goto tr2690; - case 2058: goto tr2691; - case 2107: goto tr2692; + case 9: goto st973; + case 32: goto st973; + case 40: goto tr2722; + case 41: goto tr2723; + case 2058: goto tr2724; + case 2107: goto tr2725; } - goto tr2604; -tr2689: + goto tr2637; +tr2722: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st959; -tr2690: + goto st973; +tr2723: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st959; -tr2691: + goto st973; +tr2724: { s->line_counter++; } - goto st959; -tr2823: + goto st973; +tr2856: { s->buffer[s->buffer_length++] = 0; @@ -71250,55 +72484,55 @@ tr2823: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 959; goto _out;} + {p++; cs = 973; goto _out;} } } } { s->line_counter++; } - goto st959; -tr2824: + goto st973; +tr2857: { s->loc.long_sign = -1; } - goto st959; -tr2825: + goto st973; +tr2858: { s->loc.long_sign = -1; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st959; -tr2826: + goto st973; +tr2859: { s->loc.long_sign = -1; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st959; -tr2827: + goto st973; +tr2860: { s->loc.long_sign = -1; } { s->line_counter++; } - goto st959; -st959: + goto st973; +st973: if ( ++p == pe ) - goto _test_eof959; -case 959: + goto _test_eof973; +case 973: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71312,25 +72546,25 @@ case 959: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st959; - case 32: goto st959; - case 40: goto tr2689; - case 41: goto tr2690; - case 45: goto st960; - case 2058: goto tr2691; - case 2107: goto tr2692; + case 9: goto st973; + case 32: goto st973; + case 40: goto tr2722; + case 41: goto tr2723; + case 45: goto st974; + case 2058: goto tr2724; + case 2107: goto tr2725; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2694; - goto tr2604; -st960: + goto tr2727; + goto tr2637; +st974: if ( ++p == pe ) - goto _test_eof960; -case 960: + goto _test_eof974; +case 974: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2695; - goto tr2604; -tr2700: + goto tr2728; + goto tr2637; +tr2733: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71342,11 +72576,11 @@ tr2700: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st961; -tr2694: + goto st975; +tr2727: { s->decimals = 2; } @@ -71367,11 +72601,11 @@ tr2694: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st961; -tr2695: + goto st975; +tr2728: { s->loc.alt_sign = -1; } @@ -71395,14 +72629,14 @@ tr2695: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st961; -st961: + goto st975; +st975: if ( ++p == pe ) - goto _test_eof961; -case 961: + goto _test_eof975; +case 975: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71420,46 +72654,46 @@ case 961: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2696; - case 32: goto tr2696; - case 40: goto tr2697; - case 41: goto tr2698; - case 46: goto st981; - case 109: goto tr2701; - case 3082: goto tr2702; - case 3131: goto tr2703; - case 3338: goto tr2704; - case 3387: goto tr2704; - case 3594: goto tr2705; - case 3643: goto tr2706; + case 9: goto tr2729; + case 32: goto tr2729; + case 40: goto tr2730; + case 41: goto tr2731; + case 46: goto st995; + case 109: goto tr2734; + case 3082: goto tr2735; + case 3131: goto tr2736; + case 3338: goto tr2737; + case 3387: goto tr2737; + case 3594: goto tr2738; + case 3643: goto tr2739; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2700; - goto tr2604; -tr2708: + goto tr2733; + goto tr2637; +tr2741: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st962; -tr2709: + goto st976; +tr2742: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st962; -tr2711: + goto st976; +tr2744: { s->line_counter++; } - goto st962; -tr2810: + goto st976; +tr2843: { s->buffer[s->buffer_length++] = 0; @@ -71469,15 +72703,15 @@ tr2810: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 962; goto _out;} + {p++; cs = 976; goto _out;} } } } { s->line_counter++; } - goto st962; -tr2696: + goto st976; +tr2729: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -71487,7 +72721,7 @@ tr2696: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71497,11 +72731,11 @@ tr2696: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st962; -tr2697: + goto st976; +tr2730: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -71511,7 +72745,7 @@ tr2697: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71521,18 +72755,18 @@ tr2697: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st962; -tr2698: + goto st976; +tr2731: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -71542,7 +72776,7 @@ tr2698: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71552,18 +72786,18 @@ tr2698: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st962; -tr2702: + goto st976; +tr2735: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -71573,7 +72807,7 @@ tr2702: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71583,14 +72817,14 @@ tr2702: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st962; -tr2811: + goto st976; +tr2844: { s->number64_tmp = s->number64; } @@ -71603,7 +72837,7 @@ tr2811: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71613,11 +72847,11 @@ tr2811: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st962; -tr2812: + goto st976; +tr2845: { s->number64_tmp = s->number64; } @@ -71630,7 +72864,7 @@ tr2812: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71640,18 +72874,18 @@ tr2812: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st962; -tr2813: + goto st976; +tr2846: { s->number64_tmp = s->number64; } @@ -71664,7 +72898,7 @@ tr2813: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71674,18 +72908,18 @@ tr2813: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st962; -tr2816: + goto st976; +tr2849: { s->number64_tmp = s->number64; } @@ -71698,7 +72932,7 @@ tr2816: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71708,17 +72942,17 @@ tr2816: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st962; -st962: + goto st976; +st976: if ( ++p == pe ) - goto _test_eof962; -case 962: + goto _test_eof976; +case 976: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71736,21 +72970,21 @@ case 962: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st962; - case 32: goto st962; - case 40: goto tr2708; - case 41: goto tr2709; - case 3082: goto tr2711; - case 3131: goto tr2712; - case 3338: goto tr2713; - case 3387: goto tr2713; - case 3594: goto tr2714; - case 3643: goto tr2715; + case 9: goto st976; + case 32: goto st976; + case 40: goto tr2741; + case 41: goto tr2742; + case 3082: goto tr2744; + case 3131: goto tr2745; + case 3338: goto tr2746; + case 3387: goto tr2746; + case 3594: goto tr2747; + case 3643: goto tr2748; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2710; - goto tr2604; -tr2720: + goto tr2743; + goto tr2637; +tr2753: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71762,11 +72996,11 @@ tr2720: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st963; -tr2710: + goto st977; +tr2743: { s->decimals = 2; } @@ -71787,14 +73021,14 @@ tr2710: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st963; -st963: + goto st977; +st977: if ( ++p == pe ) - goto _test_eof963; -case 963: + goto _test_eof977; +case 977: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71812,46 +73046,46 @@ case 963: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2716; - case 32: goto tr2716; - case 40: goto tr2717; - case 41: goto tr2718; - case 46: goto st977; - case 109: goto tr2721; - case 3082: goto tr2722; - case 3131: goto tr2723; - case 3338: goto tr2724; - case 3387: goto tr2724; - case 3594: goto tr2725; - case 3643: goto tr2726; + case 9: goto tr2749; + case 32: goto tr2749; + case 40: goto tr2750; + case 41: goto tr2751; + case 46: goto st991; + case 109: goto tr2754; + case 3082: goto tr2755; + case 3131: goto tr2756; + case 3338: goto tr2757; + case 3387: goto tr2757; + case 3594: goto tr2758; + case 3643: goto tr2759; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2720; - goto tr2604; -tr2728: + goto tr2753; + goto tr2637; +tr2761: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st964; -tr2729: + goto st978; +tr2762: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st964; -tr2731: + goto st978; +tr2764: { s->line_counter++; } - goto st964; -tr2797: + goto st978; +tr2830: { s->buffer[s->buffer_length++] = 0; @@ -71861,15 +73095,15 @@ tr2797: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 964; goto _out;} + {p++; cs = 978; goto _out;} } } } { s->line_counter++; } - goto st964; -tr2716: + goto st978; +tr2749: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -71879,7 +73113,7 @@ tr2716: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71887,11 +73121,11 @@ tr2716: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st964; -tr2717: + goto st978; +tr2750: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -71901,7 +73135,7 @@ tr2717: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71909,18 +73143,18 @@ tr2717: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st964; -tr2718: + goto st978; +tr2751: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -71930,7 +73164,7 @@ tr2718: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71938,18 +73172,18 @@ tr2718: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st964; -tr2722: + goto st978; +tr2755: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -71959,7 +73193,7 @@ tr2722: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71967,14 +73201,14 @@ tr2722: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st964; -tr2798: + goto st978; +tr2831: { s->number64_tmp = s->number64; } @@ -71987,7 +73221,7 @@ tr2798: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -71995,11 +73229,11 @@ tr2798: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st964; -tr2799: + goto st978; +tr2832: { s->number64_tmp = s->number64; } @@ -72012,7 +73246,7 @@ tr2799: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72020,18 +73254,18 @@ tr2799: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st964; -tr2800: + goto st978; +tr2833: { s->number64_tmp = s->number64; } @@ -72044,7 +73278,7 @@ tr2800: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72052,18 +73286,18 @@ tr2800: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st964; -tr2803: + goto st978; +tr2836: { s->number64_tmp = s->number64; } @@ -72076,7 +73310,7 @@ tr2803: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72084,17 +73318,17 @@ tr2803: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st964; -st964: + goto st978; +st978: if ( ++p == pe ) - goto _test_eof964; -case 964: + goto _test_eof978; +case 978: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72112,21 +73346,21 @@ case 964: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st964; - case 32: goto st964; - case 40: goto tr2728; - case 41: goto tr2729; - case 3082: goto tr2731; - case 3131: goto tr2732; - case 3338: goto tr2713; - case 3387: goto tr2713; - case 3594: goto tr2733; - case 3643: goto tr2734; + case 9: goto st978; + case 32: goto st978; + case 40: goto tr2761; + case 41: goto tr2762; + case 3082: goto tr2764; + case 3131: goto tr2765; + case 3338: goto tr2746; + case 3387: goto tr2746; + case 3594: goto tr2766; + case 3643: goto tr2767; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2730; - goto tr2604; -tr2739: + goto tr2763; + goto tr2637; +tr2772: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -72138,11 +73372,11 @@ tr2739: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st965; -tr2730: + goto st979; +tr2763: { s->decimals = 2; } @@ -72163,14 +73397,14 @@ tr2730: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st965; -st965: + goto st979; +st979: if ( ++p == pe ) - goto _test_eof965; -case 965: + goto _test_eof979; +case 979: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72188,46 +73422,46 @@ case 965: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2735; - case 32: goto tr2735; - case 40: goto tr2736; - case 41: goto tr2737; - case 46: goto st973; - case 109: goto tr2740; - case 3082: goto tr2741; - case 3131: goto tr2742; - case 3338: goto tr2743; - case 3387: goto tr2743; - case 3594: goto tr2744; - case 3643: goto tr2745; + case 9: goto tr2768; + case 32: goto tr2768; + case 40: goto tr2769; + case 41: goto tr2770; + case 46: goto st987; + case 109: goto tr2773; + case 3082: goto tr2774; + case 3131: goto tr2775; + case 3338: goto tr2776; + case 3387: goto tr2776; + case 3594: goto tr2777; + case 3643: goto tr2778; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2739; - goto tr2604; -tr2747: + goto tr2772; + goto tr2637; +tr2780: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st966; -tr2748: + goto st980; +tr2781: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st966; -tr2750: + goto st980; +tr2783: { s->line_counter++; } - goto st966; -tr2784: + goto st980; +tr2817: { s->buffer[s->buffer_length++] = 0; @@ -72237,15 +73471,15 @@ tr2784: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 966; goto _out;} + {p++; cs = 980; goto _out;} } } } { s->line_counter++; } - goto st966; -tr2735: + goto st980; +tr2768: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -72255,7 +73489,7 @@ tr2735: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72263,11 +73497,11 @@ tr2735: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st966; -tr2736: + goto st980; +tr2769: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -72277,7 +73511,7 @@ tr2736: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72285,18 +73519,18 @@ tr2736: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st966; -tr2737: + goto st980; +tr2770: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -72306,7 +73540,7 @@ tr2737: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72314,18 +73548,18 @@ tr2737: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st966; -tr2741: + goto st980; +tr2774: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -72335,7 +73569,7 @@ tr2741: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72343,14 +73577,14 @@ tr2741: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st966; -tr2785: + goto st980; +tr2818: { s->number64_tmp = s->number64; } @@ -72363,7 +73597,7 @@ tr2785: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72371,11 +73605,11 @@ tr2785: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st966; -tr2786: + goto st980; +tr2819: { s->number64_tmp = s->number64; } @@ -72388,7 +73622,7 @@ tr2786: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72396,18 +73630,18 @@ tr2786: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st966; -tr2787: + goto st980; +tr2820: { s->number64_tmp = s->number64; } @@ -72420,7 +73654,7 @@ tr2787: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72428,18 +73662,18 @@ tr2787: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st966; -tr2790: + goto st980; +tr2823: { s->number64_tmp = s->number64; } @@ -72452,7 +73686,7 @@ tr2790: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72460,17 +73694,17 @@ tr2790: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st966; -st966: + goto st980; +st980: if ( ++p == pe ) - goto _test_eof966; -case 966: + goto _test_eof980; +case 980: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72488,21 +73722,21 @@ case 966: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st966; - case 32: goto st966; - case 40: goto tr2747; - case 41: goto tr2748; - case 3082: goto tr2750; - case 3131: goto tr2751; - case 3338: goto tr2713; - case 3387: goto tr2713; - case 3594: goto tr2752; - case 3643: goto tr2753; + case 9: goto st980; + case 32: goto st980; + case 40: goto tr2780; + case 41: goto tr2781; + case 3082: goto tr2783; + case 3131: goto tr2784; + case 3338: goto tr2746; + case 3387: goto tr2746; + case 3594: goto tr2785; + case 3643: goto tr2786; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2749; - goto tr2604; -tr2758: + goto tr2782; + goto tr2637; +tr2791: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -72514,11 +73748,11 @@ tr2758: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st967; -tr2749: + goto st981; +tr2782: { s->decimals = 2; } @@ -72539,14 +73773,14 @@ tr2749: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st967; -st967: + goto st981; +st981: if ( ++p == pe ) - goto _test_eof967; -case 967: + goto _test_eof981; +case 981: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72564,46 +73798,46 @@ case 967: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2754; - case 32: goto tr2754; - case 40: goto tr2755; - case 41: goto tr2756; - case 46: goto st970; - case 109: goto tr2754; - case 3082: goto tr2759; - case 3131: goto tr2760; - case 3338: goto tr2761; - case 3387: goto tr2761; - case 3594: goto tr2762; - case 3643: goto tr2763; + case 9: goto tr2787; + case 32: goto tr2787; + case 40: goto tr2788; + case 41: goto tr2789; + case 46: goto st984; + case 109: goto tr2787; + case 3082: goto tr2792; + case 3131: goto tr2793; + case 3338: goto tr2794; + case 3387: goto tr2794; + case 3594: goto tr2795; + case 3643: goto tr2796; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2758; - goto tr2604; -tr2765: + goto tr2791; + goto tr2637; +tr2798: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st968; -tr2766: + goto st982; +tr2799: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st968; -tr2767: + goto st982; +tr2800: { s->line_counter++; } - goto st968; -tr2772: + goto st982; +tr2805: { s->buffer[s->buffer_length++] = 0; @@ -72613,15 +73847,15 @@ tr2772: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 968; goto _out;} + {p++; cs = 982; goto _out;} } } } { s->line_counter++; } - goto st968; -tr2754: + goto st982; +tr2787: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -72631,7 +73865,7 @@ tr2754: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72639,11 +73873,11 @@ tr2754: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st968; -tr2755: + goto st982; +tr2788: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -72653,7 +73887,7 @@ tr2755: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72661,18 +73895,18 @@ tr2755: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st968; -tr2756: + goto st982; +tr2789: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -72682,7 +73916,7 @@ tr2756: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72690,18 +73924,18 @@ tr2756: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st968; -tr2759: + goto st982; +tr2792: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -72711,7 +73945,7 @@ tr2759: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72719,14 +73953,14 @@ tr2759: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st968; -tr2773: + goto st982; +tr2806: { s->number64_tmp = s->number64; } @@ -72739,7 +73973,7 @@ tr2773: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72747,11 +73981,11 @@ tr2773: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st968; -tr2774: + goto st982; +tr2807: { s->number64_tmp = s->number64; } @@ -72764,7 +73998,7 @@ tr2774: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72772,18 +74006,18 @@ tr2774: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st968; -tr2775: + goto st982; +tr2808: { s->number64_tmp = s->number64; } @@ -72796,7 +74030,7 @@ tr2775: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72804,18 +74038,18 @@ tr2775: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st968; -tr2777: + goto st982; +tr2810: { s->number64_tmp = s->number64; } @@ -72828,7 +74062,7 @@ tr2777: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72836,17 +74070,17 @@ tr2777: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st968; -st968: + goto st982; +st982: if ( ++p == pe ) - goto _test_eof968; -case 968: + goto _test_eof982; +case 982: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72864,31 +74098,31 @@ case 968: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st968; - case 32: goto st968; - case 40: goto tr2765; - case 41: goto tr2766; - case 3082: goto tr2767; - case 3131: goto tr2768; - case 3338: goto tr2713; - case 3387: goto tr2713; - case 3594: goto tr2769; - case 3643: goto tr2770; + case 9: goto st982; + case 32: goto st982; + case 40: goto tr2798; + case 41: goto tr2799; + case 3082: goto tr2800; + case 3131: goto tr2801; + case 3338: goto tr2746; + case 3387: goto tr2746; + case 3594: goto tr2802; + case 3643: goto tr2803; } - goto tr2604; -tr2768: + goto tr2637; +tr2801: { s->buffer_length = 0; } - goto st969; -tr2771: + goto st983; +tr2804: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st969; -tr2760: + goto st983; +tr2793: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -72898,7 +74132,7 @@ tr2760: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72906,14 +74140,14 @@ tr2760: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st969; -tr2778: + goto st983; +tr2811: { s->number64_tmp = s->number64; } @@ -72926,7 +74160,7 @@ tr2778: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72934,17 +74168,17 @@ tr2778: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st969; -st969: + goto st983; +st983: if ( ++p == pe ) - goto _test_eof969; -case 969: + goto _test_eof983; +case 983: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -72964,11 +74198,11 @@ case 969: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2772; + goto tr2805; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2771; - goto tr2604; -tr2704: + goto tr2804; + goto tr2637; +tr2737: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -72978,7 +74212,7 @@ tr2704: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -72988,7 +74222,7 @@ tr2704: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73020,8 +74254,8 @@ tr2704: { p--; {cs = stack[--top];goto _again;} } - goto st1493; -tr2713: + goto st1533; +tr2746: { // Write version. *(rdata_tail) = 0; @@ -73051,8 +74285,8 @@ tr2713: { p--; {cs = stack[--top];goto _again;} } - goto st1493; -tr2724: + goto st1533; +tr2757: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -73062,7 +74296,7 @@ tr2724: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73070,7 +74304,7 @@ tr2724: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73102,8 +74336,8 @@ tr2724: { p--; {cs = stack[--top];goto _again;} } - goto st1493; -tr2743: + goto st1533; +tr2776: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -73113,7 +74347,7 @@ tr2743: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73121,7 +74355,7 @@ tr2743: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73153,8 +74387,8 @@ tr2743: { p--; {cs = stack[--top];goto _again;} } - goto st1493; -tr2761: + goto st1533; +tr2794: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -73164,7 +74398,7 @@ tr2761: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73172,7 +74406,7 @@ tr2761: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73204,8 +74438,8 @@ tr2761: { p--; {cs = stack[--top];goto _again;} } - goto st1493; -tr2779: + goto st1533; +tr2812: { s->number64_tmp = s->number64; } @@ -73218,7 +74452,7 @@ tr2779: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73226,7 +74460,7 @@ tr2779: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73258,8 +74492,8 @@ tr2779: { p--; {cs = stack[--top];goto _again;} } - goto st1493; -tr2792: + goto st1533; +tr2825: { s->number64_tmp = s->number64; } @@ -73272,7 +74506,7 @@ tr2792: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73280,7 +74514,7 @@ tr2792: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73312,8 +74546,8 @@ tr2792: { p--; {cs = stack[--top];goto _again;} } - goto st1493; -tr2805: + goto st1533; +tr2838: { s->number64_tmp = s->number64; } @@ -73326,7 +74560,7 @@ tr2805: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73334,7 +74568,7 @@ tr2805: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73366,8 +74600,8 @@ tr2805: { p--; {cs = stack[--top];goto _again;} } - goto st1493; -tr2818: + goto st1533; +tr2851: { s->number64_tmp = s->number64; } @@ -73380,7 +74614,7 @@ tr2818: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73390,7 +74624,7 @@ tr2818: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73422,13 +74656,13 @@ tr2818: { p--; {cs = stack[--top];goto _again;} } - goto st1493; -st1493: + goto st1533; +st1533: if ( ++p == pe ) - goto _test_eof1493; -case 1493: + goto _test_eof1533; +case 1533: goto st0; -tr2769: +tr2802: { s->line_counter++; } @@ -73461,8 +74695,8 @@ tr2769: { p--; {cs = stack[--top];goto _again;} } - goto st1494; -tr2762: + goto st1534; +tr2795: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -73472,7 +74706,7 @@ tr2762: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73480,7 +74714,7 @@ tr2762: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73515,8 +74749,8 @@ tr2762: { p--; {cs = stack[--top];goto _again;} } - goto st1494; -tr2780: + goto st1534; +tr2813: { s->number64_tmp = s->number64; } @@ -73529,7 +74763,7 @@ tr2780: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73537,7 +74771,7 @@ tr2780: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73572,11 +74806,11 @@ tr2780: { p--; {cs = stack[--top];goto _again;} } - goto st1494; -st1494: + goto st1534; +st1534: if ( ++p == pe ) - goto _test_eof1494; -case 1494: + goto _test_eof1534; +case 1534: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73594,19 +74828,19 @@ case 1494: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st968; - case 32: goto st968; - case 40: goto tr2765; - case 41: goto tr2766; - case 3082: goto tr2767; - case 3131: goto tr2768; - case 3338: goto tr2713; - case 3387: goto tr2713; - case 3594: goto tr2769; - case 3643: goto tr2770; + case 9: goto st982; + case 32: goto st982; + case 40: goto tr2798; + case 41: goto tr2799; + case 3082: goto tr2800; + case 3131: goto tr2801; + case 3338: goto tr2746; + case 3387: goto tr2746; + case 3594: goto tr2802; + case 3643: goto tr2803; } - goto tr2604; -tr2770: + goto tr2637; +tr2803: { s->buffer_length = 0; } @@ -73639,8 +74873,8 @@ tr2770: { p--; {cs = stack[--top];goto _again;} } - goto st1495; -tr2763: + goto st1535; +tr2796: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -73650,7 +74884,7 @@ tr2763: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73658,7 +74892,7 @@ tr2763: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73693,8 +74927,8 @@ tr2763: { p--; {cs = stack[--top];goto _again;} } - goto st1495; -tr2781: + goto st1535; +tr2814: { s->number64_tmp = s->number64; } @@ -73707,7 +74941,7 @@ tr2781: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73715,7 +74949,7 @@ tr2781: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73750,11 +74984,11 @@ tr2781: { p--; {cs = stack[--top];goto _again;} } - goto st1495; -st1495: + goto st1535; +st1535: if ( ++p == pe ) - goto _test_eof1495; -case 1495: + goto _test_eof1535; +case 1535: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -73774,14 +75008,14 @@ case 1495: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2772; + goto tr2805; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2771; - goto tr2604; -st970: + goto tr2804; + goto tr2637; +st984: if ( ++p == pe ) - goto _test_eof970; -case 970: + goto _test_eof984; +case 984: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73799,22 +75033,22 @@ case 970: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2773; - case 32: goto tr2773; - case 40: goto tr2774; - case 41: goto tr2775; - case 109: goto tr2773; - case 3082: goto tr2777; - case 3131: goto tr2778; - case 3338: goto tr2779; - case 3387: goto tr2779; - case 3594: goto tr2780; - case 3643: goto tr2781; + case 9: goto tr2806; + case 32: goto tr2806; + case 40: goto tr2807; + case 41: goto tr2808; + case 109: goto tr2806; + case 3082: goto tr2810; + case 3131: goto tr2811; + case 3338: goto tr2812; + case 3387: goto tr2812; + case 3594: goto tr2813; + case 3643: goto tr2814; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2776; - goto tr2604; -tr2776: + goto tr2809; + goto tr2637; +tr2809: { s->number64_tmp = s->number64; } @@ -73832,14 +75066,14 @@ tr2776: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st971; -tr2782: + goto st985; +tr2815: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -73851,17 +75085,17 @@ tr2782: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st971; -st971: + goto st985; +st985: if ( ++p == pe ) - goto _test_eof971; -case 971: + goto _test_eof985; +case 985: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73879,34 +75113,34 @@ case 971: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2754; - case 32: goto tr2754; - case 40: goto tr2755; - case 41: goto tr2756; - case 109: goto tr2754; - case 3082: goto tr2759; - case 3131: goto tr2760; - case 3338: goto tr2761; - case 3387: goto tr2761; - case 3594: goto tr2762; - case 3643: goto tr2763; + case 9: goto tr2787; + case 32: goto tr2787; + case 40: goto tr2788; + case 41: goto tr2789; + case 109: goto tr2787; + case 3082: goto tr2792; + case 3131: goto tr2793; + case 3338: goto tr2794; + case 3387: goto tr2794; + case 3594: goto tr2795; + case 3643: goto tr2796; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2782; - goto tr2604; -tr2751: + goto tr2815; + goto tr2637; +tr2784: { s->buffer_length = 0; } - goto st972; -tr2783: + goto st986; +tr2816: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st972; -tr2742: + goto st986; +tr2775: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -73916,7 +75150,7 @@ tr2742: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73924,14 +75158,14 @@ tr2742: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st972; -tr2791: + goto st986; +tr2824: { s->number64_tmp = s->number64; } @@ -73944,7 +75178,7 @@ tr2791: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -73952,17 +75186,17 @@ tr2791: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st972; -st972: + goto st986; +st986: if ( ++p == pe ) - goto _test_eof972; -case 972: + goto _test_eof986; +case 986: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -73982,11 +75216,11 @@ case 972: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2784; + goto tr2817; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2783; - goto tr2604; -tr2752: + goto tr2816; + goto tr2637; +tr2785: { s->line_counter++; } @@ -74019,8 +75253,8 @@ tr2752: { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr2744: + goto st1536; +tr2777: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74030,7 +75264,7 @@ tr2744: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74038,7 +75272,7 @@ tr2744: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74073,8 +75307,8 @@ tr2744: { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr2793: + goto st1536; +tr2826: { s->number64_tmp = s->number64; } @@ -74087,7 +75321,7 @@ tr2793: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74095,7 +75329,7 @@ tr2793: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74130,11 +75364,11 @@ tr2793: { p--; {cs = stack[--top];goto _again;} } - goto st1496; -st1496: + goto st1536; +st1536: if ( ++p == pe ) - goto _test_eof1496; -case 1496: + goto _test_eof1536; +case 1536: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74152,21 +75386,21 @@ case 1496: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st966; - case 32: goto st966; - case 40: goto tr2747; - case 41: goto tr2748; - case 3082: goto tr2750; - case 3131: goto tr2751; - case 3338: goto tr2713; - case 3387: goto tr2713; - case 3594: goto tr2752; - case 3643: goto tr2753; + case 9: goto st980; + case 32: goto st980; + case 40: goto tr2780; + case 41: goto tr2781; + case 3082: goto tr2783; + case 3131: goto tr2784; + case 3338: goto tr2746; + case 3387: goto tr2746; + case 3594: goto tr2785; + case 3643: goto tr2786; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2749; - goto tr2604; -tr2753: + goto tr2782; + goto tr2637; +tr2786: { s->buffer_length = 0; } @@ -74199,8 +75433,8 @@ tr2753: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr2745: + goto st1537; +tr2778: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74210,7 +75444,7 @@ tr2745: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74218,7 +75452,7 @@ tr2745: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74253,8 +75487,8 @@ tr2745: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr2794: + goto st1537; +tr2827: { s->number64_tmp = s->number64; } @@ -74267,7 +75501,7 @@ tr2794: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74275,7 +75509,7 @@ tr2794: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74310,11 +75544,11 @@ tr2794: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -st1497: + goto st1537; +st1537: if ( ++p == pe ) - goto _test_eof1497; -case 1497: + goto _test_eof1537; +case 1537: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -74334,14 +75568,14 @@ case 1497: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2784; + goto tr2817; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2783; - goto tr2604; -st973: + goto tr2816; + goto tr2637; +st987: if ( ++p == pe ) - goto _test_eof973; -case 973: + goto _test_eof987; +case 987: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74359,22 +75593,22 @@ case 973: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2785; - case 32: goto tr2785; - case 40: goto tr2786; - case 41: goto tr2787; - case 109: goto tr2789; - case 3082: goto tr2790; - case 3131: goto tr2791; - case 3338: goto tr2792; - case 3387: goto tr2792; - case 3594: goto tr2793; - case 3643: goto tr2794; + case 9: goto tr2818; + case 32: goto tr2818; + case 40: goto tr2819; + case 41: goto tr2820; + case 109: goto tr2822; + case 3082: goto tr2823; + case 3131: goto tr2824; + case 3338: goto tr2825; + case 3387: goto tr2825; + case 3594: goto tr2826; + case 3643: goto tr2827; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2788; - goto tr2604; -tr2788: + goto tr2821; + goto tr2637; +tr2821: { s->number64_tmp = s->number64; } @@ -74392,14 +75626,14 @@ tr2788: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st974; -tr2795: + goto st988; +tr2828: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -74411,17 +75645,17 @@ tr2795: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st974; -st974: + goto st988; +st988: if ( ++p == pe ) - goto _test_eof974; -case 974: + goto _test_eof988; +case 988: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74439,22 +75673,22 @@ case 974: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2735; - case 32: goto tr2735; - case 40: goto tr2736; - case 41: goto tr2737; - case 109: goto tr2740; - case 3082: goto tr2741; - case 3131: goto tr2742; - case 3338: goto tr2743; - case 3387: goto tr2743; - case 3594: goto tr2744; - case 3643: goto tr2745; + case 9: goto tr2768; + case 32: goto tr2768; + case 40: goto tr2769; + case 41: goto tr2770; + case 109: goto tr2773; + case 3082: goto tr2774; + case 3131: goto tr2775; + case 3338: goto tr2776; + case 3387: goto tr2776; + case 3594: goto tr2777; + case 3643: goto tr2778; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2795; - goto tr2604; -tr2740: + goto tr2828; + goto tr2637; +tr2773: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74464,7 +75698,7 @@ tr2740: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74472,11 +75706,11 @@ tr2740: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st975; -tr2789: + goto st989; +tr2822: { s->number64_tmp = s->number64; } @@ -74489,7 +75723,7 @@ tr2789: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74497,14 +75731,14 @@ tr2789: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st975; -st975: + goto st989; +st989: if ( ++p == pe ) - goto _test_eof975; -case 975: + goto _test_eof989; +case 989: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74522,31 +75756,31 @@ case 975: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st966; - case 32: goto st966; - case 40: goto tr2747; - case 41: goto tr2748; - case 3082: goto tr2750; - case 3131: goto tr2751; - case 3338: goto tr2713; - case 3387: goto tr2713; - case 3594: goto tr2752; - case 3643: goto tr2753; + case 9: goto st980; + case 32: goto st980; + case 40: goto tr2780; + case 41: goto tr2781; + case 3082: goto tr2783; + case 3131: goto tr2784; + case 3338: goto tr2746; + case 3387: goto tr2746; + case 3594: goto tr2785; + case 3643: goto tr2786; } - goto tr2604; -tr2732: + goto tr2637; +tr2765: { s->buffer_length = 0; } - goto st976; -tr2796: + goto st990; +tr2829: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st976; -tr2723: + goto st990; +tr2756: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74556,7 +75790,7 @@ tr2723: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74564,14 +75798,14 @@ tr2723: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st976; -tr2804: + goto st990; +tr2837: { s->number64_tmp = s->number64; } @@ -74584,7 +75818,7 @@ tr2804: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74592,17 +75826,17 @@ tr2804: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st976; -st976: + goto st990; +st990: if ( ++p == pe ) - goto _test_eof976; -case 976: + goto _test_eof990; +case 990: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -74622,11 +75856,11 @@ case 976: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2797; + goto tr2830; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2796; - goto tr2604; -tr2733: + goto tr2829; + goto tr2637; +tr2766: { s->line_counter++; } @@ -74659,8 +75893,8 @@ tr2733: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr2725: + goto st1538; +tr2758: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74670,7 +75904,7 @@ tr2725: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74678,7 +75912,7 @@ tr2725: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74713,8 +75947,8 @@ tr2725: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr2806: + goto st1538; +tr2839: { s->number64_tmp = s->number64; } @@ -74727,7 +75961,7 @@ tr2806: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74735,7 +75969,7 @@ tr2806: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74770,11 +76004,11 @@ tr2806: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -st1498: + goto st1538; +st1538: if ( ++p == pe ) - goto _test_eof1498; -case 1498: + goto _test_eof1538; +case 1538: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74792,21 +76026,21 @@ case 1498: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st964; - case 32: goto st964; - case 40: goto tr2728; - case 41: goto tr2729; - case 3082: goto tr2731; - case 3131: goto tr2732; - case 3338: goto tr2713; - case 3387: goto tr2713; - case 3594: goto tr2733; - case 3643: goto tr2734; + case 9: goto st978; + case 32: goto st978; + case 40: goto tr2761; + case 41: goto tr2762; + case 3082: goto tr2764; + case 3131: goto tr2765; + case 3338: goto tr2746; + case 3387: goto tr2746; + case 3594: goto tr2766; + case 3643: goto tr2767; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2730; - goto tr2604; -tr2734: + goto tr2763; + goto tr2637; +tr2767: { s->buffer_length = 0; } @@ -74839,8 +76073,8 @@ tr2734: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr2726: + goto st1539; +tr2759: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74850,7 +76084,7 @@ tr2726: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74858,7 +76092,7 @@ tr2726: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74893,8 +76127,8 @@ tr2726: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr2807: + goto st1539; +tr2840: { s->number64_tmp = s->number64; } @@ -74907,7 +76141,7 @@ tr2807: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74915,7 +76149,7 @@ tr2807: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -74950,11 +76184,11 @@ tr2807: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -st1499: + goto st1539; +st1539: if ( ++p == pe ) - goto _test_eof1499; -case 1499: + goto _test_eof1539; +case 1539: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -74974,14 +76208,14 @@ case 1499: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2797; + goto tr2830; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2796; - goto tr2604; -st977: + goto tr2829; + goto tr2637; +st991: if ( ++p == pe ) - goto _test_eof977; -case 977: + goto _test_eof991; +case 991: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74999,22 +76233,22 @@ case 977: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2798; - case 32: goto tr2798; - case 40: goto tr2799; - case 41: goto tr2800; - case 109: goto tr2802; - case 3082: goto tr2803; - case 3131: goto tr2804; - case 3338: goto tr2805; - case 3387: goto tr2805; - case 3594: goto tr2806; - case 3643: goto tr2807; + case 9: goto tr2831; + case 32: goto tr2831; + case 40: goto tr2832; + case 41: goto tr2833; + case 109: goto tr2835; + case 3082: goto tr2836; + case 3131: goto tr2837; + case 3338: goto tr2838; + case 3387: goto tr2838; + case 3594: goto tr2839; + case 3643: goto tr2840; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2801; - goto tr2604; -tr2801: + goto tr2834; + goto tr2637; +tr2834: { s->number64_tmp = s->number64; } @@ -75032,14 +76266,14 @@ tr2801: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st978; -tr2808: + goto st992; +tr2841: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75051,17 +76285,17 @@ tr2808: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st978; -st978: + goto st992; +st992: if ( ++p == pe ) - goto _test_eof978; -case 978: + goto _test_eof992; +case 992: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75079,22 +76313,22 @@ case 978: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2716; - case 32: goto tr2716; - case 40: goto tr2717; - case 41: goto tr2718; - case 109: goto tr2721; - case 3082: goto tr2722; - case 3131: goto tr2723; - case 3338: goto tr2724; - case 3387: goto tr2724; - case 3594: goto tr2725; - case 3643: goto tr2726; + case 9: goto tr2749; + case 32: goto tr2749; + case 40: goto tr2750; + case 41: goto tr2751; + case 109: goto tr2754; + case 3082: goto tr2755; + case 3131: goto tr2756; + case 3338: goto tr2757; + case 3387: goto tr2757; + case 3594: goto tr2758; + case 3643: goto tr2759; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2808; - goto tr2604; -tr2721: + goto tr2841; + goto tr2637; +tr2754: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75104,7 +76338,7 @@ tr2721: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75112,11 +76346,11 @@ tr2721: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st979; -tr2802: + goto st993; +tr2835: { s->number64_tmp = s->number64; } @@ -75129,7 +76363,7 @@ tr2802: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75137,14 +76371,14 @@ tr2802: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st979; -st979: + goto st993; +st993: if ( ++p == pe ) - goto _test_eof979; -case 979: + goto _test_eof993; +case 993: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75162,31 +76396,31 @@ case 979: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st964; - case 32: goto st964; - case 40: goto tr2728; - case 41: goto tr2729; - case 3082: goto tr2731; - case 3131: goto tr2732; - case 3338: goto tr2713; - case 3387: goto tr2713; - case 3594: goto tr2733; - case 3643: goto tr2734; + case 9: goto st978; + case 32: goto st978; + case 40: goto tr2761; + case 41: goto tr2762; + case 3082: goto tr2764; + case 3131: goto tr2765; + case 3338: goto tr2746; + case 3387: goto tr2746; + case 3594: goto tr2766; + case 3643: goto tr2767; } - goto tr2604; -tr2712: + goto tr2637; +tr2745: { s->buffer_length = 0; } - goto st980; -tr2809: + goto st994; +tr2842: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st980; -tr2703: + goto st994; +tr2736: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75196,7 +76430,7 @@ tr2703: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75206,14 +76440,14 @@ tr2703: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st980; -tr2817: + goto st994; +tr2850: { s->number64_tmp = s->number64; } @@ -75226,7 +76460,7 @@ tr2817: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75236,17 +76470,17 @@ tr2817: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st980; -st980: + goto st994; +st994: if ( ++p == pe ) - goto _test_eof980; -case 980: + goto _test_eof994; +case 994: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -75266,11 +76500,11 @@ case 980: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2810; + goto tr2843; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2809; - goto tr2604; -tr2705: + goto tr2842; + goto tr2637; +tr2738: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75280,7 +76514,7 @@ tr2705: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75290,7 +76524,7 @@ tr2705: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75325,8 +76559,8 @@ tr2705: { p--; {cs = stack[--top];goto _again;} } - goto st1500; -tr2714: + goto st1540; +tr2747: { s->line_counter++; } @@ -75359,8 +76593,8 @@ tr2714: { p--; {cs = stack[--top];goto _again;} } - goto st1500; -tr2819: + goto st1540; +tr2852: { s->number64_tmp = s->number64; } @@ -75373,7 +76607,7 @@ tr2819: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75383,7 +76617,7 @@ tr2819: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75418,11 +76652,11 @@ tr2819: { p--; {cs = stack[--top];goto _again;} } - goto st1500; -st1500: + goto st1540; +st1540: if ( ++p == pe ) - goto _test_eof1500; -case 1500: + goto _test_eof1540; +case 1540: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75440,21 +76674,21 @@ case 1500: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st962; - case 32: goto st962; - case 40: goto tr2708; - case 41: goto tr2709; - case 3082: goto tr2711; - case 3131: goto tr2712; - case 3338: goto tr2713; - case 3387: goto tr2713; - case 3594: goto tr2714; - case 3643: goto tr2715; + case 9: goto st976; + case 32: goto st976; + case 40: goto tr2741; + case 41: goto tr2742; + case 3082: goto tr2744; + case 3131: goto tr2745; + case 3338: goto tr2746; + case 3387: goto tr2746; + case 3594: goto tr2747; + case 3643: goto tr2748; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2710; - goto tr2604; -tr2706: + goto tr2743; + goto tr2637; +tr2739: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75464,7 +76698,7 @@ tr2706: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75474,7 +76708,7 @@ tr2706: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75509,8 +76743,8 @@ tr2706: { p--; {cs = stack[--top];goto _again;} } - goto st1501; -tr2715: + goto st1541; +tr2748: { s->buffer_length = 0; } @@ -75543,8 +76777,8 @@ tr2715: { p--; {cs = stack[--top];goto _again;} } - goto st1501; -tr2820: + goto st1541; +tr2853: { s->number64_tmp = s->number64; } @@ -75557,7 +76791,7 @@ tr2820: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75567,7 +76801,7 @@ tr2820: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75602,11 +76836,11 @@ tr2820: { p--; {cs = stack[--top];goto _again;} } - goto st1501; -st1501: + goto st1541; +st1541: if ( ++p == pe ) - goto _test_eof1501; -case 1501: + goto _test_eof1541; +case 1541: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -75626,14 +76860,14 @@ case 1501: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2810; + goto tr2843; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2809; - goto tr2604; -st981: + goto tr2842; + goto tr2637; +st995: if ( ++p == pe ) - goto _test_eof981; -case 981: + goto _test_eof995; +case 995: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75651,22 +76885,22 @@ case 981: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2811; - case 32: goto tr2811; - case 40: goto tr2812; - case 41: goto tr2813; - case 109: goto tr2815; - case 3082: goto tr2816; - case 3131: goto tr2817; - case 3338: goto tr2818; - case 3387: goto tr2818; - case 3594: goto tr2819; - case 3643: goto tr2820; + case 9: goto tr2844; + case 32: goto tr2844; + case 40: goto tr2845; + case 41: goto tr2846; + case 109: goto tr2848; + case 3082: goto tr2849; + case 3131: goto tr2850; + case 3338: goto tr2851; + case 3387: goto tr2851; + case 3594: goto tr2852; + case 3643: goto tr2853; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2814; - goto tr2604; -tr2814: + goto tr2847; + goto tr2637; +tr2847: { s->number64_tmp = s->number64; } @@ -75684,14 +76918,14 @@ tr2814: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st982; -tr2821: + goto st996; +tr2854: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75703,17 +76937,17 @@ tr2821: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st982; -st982: + goto st996; +st996: if ( ++p == pe ) - goto _test_eof982; -case 982: + goto _test_eof996; +case 996: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75731,22 +76965,22 @@ case 982: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2696; - case 32: goto tr2696; - case 40: goto tr2697; - case 41: goto tr2698; - case 109: goto tr2701; - case 3082: goto tr2702; - case 3131: goto tr2703; - case 3338: goto tr2704; - case 3387: goto tr2704; - case 3594: goto tr2705; - case 3643: goto tr2706; + case 9: goto tr2729; + case 32: goto tr2729; + case 40: goto tr2730; + case 41: goto tr2731; + case 109: goto tr2734; + case 3082: goto tr2735; + case 3131: goto tr2736; + case 3338: goto tr2737; + case 3387: goto tr2737; + case 3594: goto tr2738; + case 3643: goto tr2739; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2821; - goto tr2604; -tr2701: + goto tr2854; + goto tr2637; +tr2734: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75756,7 +76990,7 @@ tr2701: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75766,11 +77000,11 @@ tr2701: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st983; -tr2815: + goto st997; +tr2848: { s->number64_tmp = s->number64; } @@ -75783,7 +77017,7 @@ tr2815: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75793,14 +77027,14 @@ tr2815: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } - goto st983; -st983: + goto st997; +st997: if ( ++p == pe ) - goto _test_eof983; -case 983: + goto _test_eof997; +case 997: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75818,42 +77052,42 @@ case 983: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st962; - case 32: goto st962; - case 40: goto tr2708; - case 41: goto tr2709; - case 3082: goto tr2711; - case 3131: goto tr2712; - case 3338: goto tr2713; - case 3387: goto tr2713; - case 3594: goto tr2714; - case 3643: goto tr2715; + case 9: goto st976; + case 32: goto st976; + case 40: goto tr2741; + case 41: goto tr2742; + case 3082: goto tr2744; + case 3131: goto tr2745; + case 3338: goto tr2746; + case 3387: goto tr2746; + case 3594: goto tr2747; + case 3643: goto tr2748; } - goto tr2604; -tr2692: + goto tr2637; +tr2725: { s->buffer_length = 0; } - goto st984; -tr2822: + goto st998; +tr2855: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st984; -tr2828: + goto st998; +tr2861: { s->loc.long_sign = -1; } { s->buffer_length = 0; } - goto st984; -st984: + goto st998; +st998: if ( ++p == pe ) - goto _test_eof984; -case 984: + goto _test_eof998; +case 998: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -75873,14 +77107,14 @@ case 984: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2823; + goto tr2856; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2822; - goto tr2604; -st985: + goto tr2855; + goto tr2637; +st999: if ( ++p == pe ) - goto _test_eof985; -case 985: + goto _test_eof999; +case 999: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75894,27 +77128,27 @@ case 985: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2824; - case 32: goto tr2824; - case 40: goto tr2825; - case 41: goto tr2826; - case 2058: goto tr2827; - case 2107: goto tr2828; + case 9: goto tr2857; + case 32: goto tr2857; + case 40: goto tr2858; + case 41: goto tr2859; + case 2058: goto tr2860; + case 2107: goto tr2861; } - goto tr2604; -tr2687: + goto tr2637; +tr2720: { s->buffer_length = 0; } - goto st986; -tr2829: + goto st1000; +tr2862: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st986; -tr2682: + goto st1000; +tr2715: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75924,7 +77158,7 @@ tr2682: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75932,14 +77166,14 @@ tr2682: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st986; -tr2836: + goto st1000; +tr2869: { s->number64_tmp = s->number64; } @@ -75952,7 +77186,7 @@ tr2836: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -75960,17 +77194,17 @@ tr2836: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st986; -st986: + goto st1000; +st1000: if ( ++p == pe ) - goto _test_eof986; -case 986: + goto _test_eof1000; +case 1000: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -75990,14 +77224,14 @@ case 986: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2830; + goto tr2863; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2829; - goto tr2604; -st987: + goto tr2862; + goto tr2637; +st1001: if ( ++p == pe ) - goto _test_eof987; -case 987: + goto _test_eof1001; +case 1001: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76011,17 +77245,17 @@ case 987: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2831; - case 32: goto tr2831; - case 40: goto tr2832; - case 41: goto tr2833; - case 2058: goto tr2835; - case 2107: goto tr2836; + case 9: goto tr2864; + case 32: goto tr2864; + case 40: goto tr2865; + case 41: goto tr2866; + case 2058: goto tr2868; + case 2107: goto tr2869; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2834; - goto tr2604; -tr2834: + goto tr2867; + goto tr2637; +tr2867: { s->number64_tmp = s->number64; } @@ -76039,14 +77273,14 @@ tr2834: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st988; -tr2837: + goto st1002; +tr2870: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76058,17 +77292,17 @@ tr2837: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st988; -st988: + goto st1002; +st1002: if ( ++p == pe ) - goto _test_eof988; -case 988: + goto _test_eof1002; +case 1002: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76082,45 +77316,45 @@ case 988: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2676; - case 32: goto tr2676; - case 40: goto tr2677; - case 41: goto tr2678; - case 2058: goto tr2681; - case 2107: goto tr2682; + case 9: goto tr2709; + case 32: goto tr2709; + case 40: goto tr2710; + case 41: goto tr2711; + case 2058: goto tr2714; + case 2107: goto tr2715; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2837; - goto tr2604; -tr2675: + goto tr2870; + goto tr2637; +tr2708: { s->buffer_length = 0; } - goto st989; -tr2838: + goto st1003; +tr2871: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st989; -tr2669: + goto st1003; +tr2702: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st989; -st989: + goto st1003; +st1003: if ( ++p == pe ) - goto _test_eof989; -case 989: + goto _test_eof1003; +case 1003: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -76140,39 +77374,39 @@ case 989: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2839; + goto tr2872; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2838; - goto tr2604; -tr2663: + goto tr2871; + goto tr2637; +tr2696: { s->buffer_length = 0; } - goto st990; -tr2840: + goto st1004; +tr2873: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st990; -tr2655: + goto st1004; +tr2688: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st990; -st990: + goto st1004; +st1004: if ( ++p == pe ) - goto _test_eof990; -case 990: + goto _test_eof1004; +case 1004: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -76192,34 +77426,34 @@ case 990: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2841; + goto tr2874; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2840; - goto tr2604; -tr2648: + goto tr2873; + goto tr2637; +tr2681: { s->buffer_length = 0; } - goto st991; -tr2842: + goto st1005; +tr2875: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st991; -tr2848: + goto st1005; +tr2881: { s->loc.lat_sign = -1; } { s->buffer_length = 0; } - goto st991; -st991: + goto st1005; +st1005: if ( ++p == pe ) - goto _test_eof991; -case 991: + goto _test_eof1005; +case 1005: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -76239,14 +77473,14 @@ case 991: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2843; + goto tr2876; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2842; - goto tr2604; -st992: + goto tr2875; + goto tr2637; +st1006: if ( ++p == pe ) - goto _test_eof992; -case 992: + goto _test_eof1006; +case 1006: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76260,27 +77494,27 @@ case 992: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2844; - case 32: goto tr2844; - case 40: goto tr2845; - case 41: goto tr2846; - case 2058: goto tr2847; - case 2107: goto tr2848; + case 9: goto tr2877; + case 32: goto tr2877; + case 40: goto tr2878; + case 41: goto tr2879; + case 2058: goto tr2880; + case 2107: goto tr2881; } - goto tr2604; -tr2643: + goto tr2637; +tr2676: { s->buffer_length = 0; } - goto st993; -tr2849: + goto st1007; +tr2882: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st993; -tr2638: + goto st1007; +tr2671: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76290,7 +77524,7 @@ tr2638: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -76298,14 +77532,14 @@ tr2638: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st993; -tr2856: + goto st1007; +tr2889: { s->number64_tmp = s->number64; } @@ -76318,7 +77552,7 @@ tr2856: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -76326,17 +77560,17 @@ tr2856: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st993; -st993: + goto st1007; +st1007: if ( ++p == pe ) - goto _test_eof993; -case 993: + goto _test_eof1007; +case 1007: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -76356,14 +77590,14 @@ case 993: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2850; + goto tr2883; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2849; - goto tr2604; -st994: + goto tr2882; + goto tr2637; +st1008: if ( ++p == pe ) - goto _test_eof994; -case 994: + goto _test_eof1008; +case 1008: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76377,17 +77611,17 @@ case 994: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2851; - case 32: goto tr2851; - case 40: goto tr2852; - case 41: goto tr2853; - case 2058: goto tr2855; - case 2107: goto tr2856; + case 9: goto tr2884; + case 32: goto tr2884; + case 40: goto tr2885; + case 41: goto tr2886; + case 2058: goto tr2888; + case 2107: goto tr2889; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2854; - goto tr2604; -tr2854: + goto tr2887; + goto tr2637; +tr2887: { s->number64_tmp = s->number64; } @@ -76405,14 +77639,14 @@ tr2854: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st995; -tr2857: + goto st1009; +tr2890: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76424,17 +77658,17 @@ tr2857: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->decimal_counter++; } - goto st995; -st995: + goto st1009; +st1009: if ( ++p == pe ) - goto _test_eof995; -case 995: + goto _test_eof1009; +case 1009: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76448,45 +77682,45 @@ case 995: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2632; - case 32: goto tr2632; - case 40: goto tr2633; - case 41: goto tr2634; - case 2058: goto tr2637; - case 2107: goto tr2638; + case 9: goto tr2665; + case 32: goto tr2665; + case 40: goto tr2666; + case 41: goto tr2667; + case 2058: goto tr2670; + case 2107: goto tr2671; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2857; - goto tr2604; -tr2631: + goto tr2890; + goto tr2637; +tr2664: { s->buffer_length = 0; } - goto st996; -tr2858: + goto st1010; +tr2891: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st996; -tr2625: + goto st1010; +tr2658: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st996; -st996: + goto st1010; +st1010: if ( ++p == pe ) - goto _test_eof996; -case 996: + goto _test_eof1010; +case 1010: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -76506,39 +77740,39 @@ case 996: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2859; + goto tr2892; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2858; - goto tr2604; -tr2619: + goto tr2891; + goto tr2637; +tr2652: { s->buffer_length = 0; } - goto st997; -tr2860: + goto st1011; +tr2893: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st997; -tr2611: + goto st1011; +tr2644: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st997; -st997: + goto st1011; +st1011: if ( ++p == pe ) - goto _test_eof997; -case 997: + goto _test_eof1011; +case 1011: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -76558,18 +77792,18 @@ case 997: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2861; + goto tr2894; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2860; - goto tr2604; -st998: + goto tr2893; + goto tr2637; +st1012: if ( ++p == pe ) - goto _test_eof998; -case 998: + goto _test_eof1012; +case 1012: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2862; - goto tr2396; -tr2862: + goto tr2895; + goto tr2429; +tr2895: { s->number64 = 0; } @@ -76584,11 +77818,11 @@ tr2862: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st999; -tr2866: + goto st1013; +tr2899: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76600,14 +77834,14 @@ tr2866: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st999; -st999: + goto st1013; +st1013: if ( ++p == pe ) - goto _test_eof999; -case 999: + goto _test_eof1013; +case 1013: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76621,40 +77855,40 @@ case 999: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2863; - case 32: goto tr2863; - case 40: goto tr2864; - case 41: goto tr2865; - case 2058: goto tr2867; - case 2107: goto tr2868; + case 9: goto tr2896; + case 32: goto tr2896; + case 40: goto tr2897; + case 41: goto tr2898; + case 2058: goto tr2900; + case 2107: goto tr2901; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2866; - goto tr2396; -tr2870: + goto tr2899; + goto tr2429; +tr2903: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1000; -tr2871: + goto st1014; +tr2904: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1000; -tr2873: + goto st1014; +tr2906: { s->line_counter++; } - goto st1000; -tr2905: + goto st1014; +tr2938: { s->buffer[s->buffer_length++] = 0; @@ -76664,15 +77898,15 @@ tr2905: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1000; goto _out;} + {p++; cs = 1014; goto _out;} } } } { s->line_counter++; } - goto st1000; -tr2863: + goto st1014; +tr2896: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -76680,11 +77914,11 @@ tr2863: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1000; -tr2864: + goto st1014; +tr2897: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -76692,18 +77926,18 @@ tr2864: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1000; -tr2865: + goto st1014; +tr2898: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -76711,18 +77945,18 @@ tr2865: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1000; -tr2867: + goto st1014; +tr2900: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -76730,17 +77964,17 @@ tr2867: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1000; -st1000: + goto st1014; +st1014: if ( ++p == pe ) - goto _test_eof1000; -case 1000: + goto _test_eof1014; +case 1014: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76754,17 +77988,17 @@ case 1000: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1000; - case 32: goto st1000; - case 40: goto tr2870; - case 41: goto tr2871; - case 2058: goto tr2873; - case 2107: goto tr2874; + case 9: goto st1014; + case 32: goto st1014; + case 40: goto tr2903; + case 41: goto tr2904; + case 2058: goto tr2906; + case 2107: goto tr2907; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2872; - goto tr2396; -tr2872: + goto tr2905; + goto tr2429; +tr2905: { s->number64 = 0; } @@ -76779,11 +78013,11 @@ tr2872: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1001; -tr2878: + goto st1015; +tr2911: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76795,14 +78029,14 @@ tr2878: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1001; -st1001: + goto st1015; +st1015: if ( ++p == pe ) - goto _test_eof1001; -case 1001: + goto _test_eof1015; +case 1015: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76816,40 +78050,40 @@ case 1001: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2875; - case 32: goto tr2875; - case 40: goto tr2876; - case 41: goto tr2877; - case 2058: goto tr2879; - case 2107: goto tr2880; + case 9: goto tr2908; + case 32: goto tr2908; + case 40: goto tr2909; + case 41: goto tr2910; + case 2058: goto tr2912; + case 2107: goto tr2913; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2878; - goto tr2396; -tr2882: + goto tr2911; + goto tr2429; +tr2915: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1002; -tr2883: + goto st1016; +tr2916: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1002; -tr2885: + goto st1016; +tr2918: { s->line_counter++; } - goto st1002; -tr2903: + goto st1016; +tr2936: { s->buffer[s->buffer_length++] = 0; @@ -76859,15 +78093,15 @@ tr2903: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1002; goto _out;} + {p++; cs = 1016; goto _out;} } } } { s->line_counter++; } - goto st1002; -tr2875: + goto st1016; +tr2908: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -76875,11 +78109,11 @@ tr2875: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1002; -tr2876: + goto st1016; +tr2909: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -76887,18 +78121,18 @@ tr2876: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1002; -tr2877: + goto st1016; +tr2910: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -76906,18 +78140,18 @@ tr2877: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1002; -tr2879: + goto st1016; +tr2912: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -76925,17 +78159,17 @@ tr2879: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1002; -st1002: + goto st1016; +st1016: if ( ++p == pe ) - goto _test_eof1002; -case 1002: + goto _test_eof1016; +case 1016: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76949,17 +78183,17 @@ case 1002: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1002; - case 32: goto st1002; - case 40: goto tr2882; - case 41: goto tr2883; - case 2058: goto tr2885; - case 2107: goto tr2886; + case 9: goto st1016; + case 32: goto st1016; + case 40: goto tr2915; + case 41: goto tr2916; + case 2058: goto tr2918; + case 2107: goto tr2919; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2884; - goto tr2396; -tr2884: + goto tr2917; + goto tr2429; +tr2917: { s->number64 = 0; } @@ -76974,11 +78208,11 @@ tr2884: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1003; -tr2890: + goto st1017; +tr2923: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76990,14 +78224,14 @@ tr2890: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1003; -st1003: + goto st1017; +st1017: if ( ++p == pe ) - goto _test_eof1003; -case 1003: + goto _test_eof1017; +case 1017: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77011,40 +78245,40 @@ case 1003: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2887; - case 32: goto tr2887; - case 40: goto tr2888; - case 41: goto tr2889; - case 2058: goto tr2891; - case 2107: goto tr2892; + case 9: goto tr2920; + case 32: goto tr2920; + case 40: goto tr2921; + case 41: goto tr2922; + case 2058: goto tr2924; + case 2107: goto tr2925; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2890; - goto tr2396; -tr2894: + goto tr2923; + goto tr2429; +tr2927: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1004; -tr2895: + goto st1018; +tr2928: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1004; -tr2897: + goto st1018; +tr2930: { s->line_counter++; } - goto st1004; -tr2901: + goto st1018; +tr2934: { s->buffer[s->buffer_length++] = 0; @@ -77054,15 +78288,15 @@ tr2901: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1004; goto _out;} + {p++; cs = 1018; goto _out;} } } } { s->line_counter++; } - goto st1004; -tr2887: + goto st1018; +tr2920: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77070,11 +78304,11 @@ tr2887: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1004; -tr2888: + goto st1018; +tr2921: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77082,18 +78316,18 @@ tr2888: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1004; -tr2889: + goto st1018; +tr2922: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77101,18 +78335,18 @@ tr2889: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1004; -tr2891: + goto st1018; +tr2924: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77120,17 +78354,17 @@ tr2891: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1004; -st1004: + goto st1018; +st1018: if ( ++p == pe ) - goto _test_eof1004; -case 1004: + goto _test_eof1018; +case 1018: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77144,71 +78378,71 @@ case 1004: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1004; - case 32: goto st1004; - case 40: goto tr2894; - case 41: goto tr2895; - case 42: goto tr2896; - case 92: goto tr2896; - case 95: goto tr2896; - case 2058: goto tr2897; - case 2107: goto tr2898; + case 9: goto st1018; + case 32: goto st1018; + case 40: goto tr2927; + case 41: goto tr2928; + case 42: goto tr2929; + case 92: goto tr2929; + case 95: goto tr2929; + case 2058: goto tr2930; + case 2107: goto tr2931; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2896; + goto tr2929; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2896; + goto tr2929; } else - goto tr2896; + goto tr2929; goto tr77; -tr2896: +tr2929: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1005;goto st318;} } - goto st1005; -st1005: + { p--; {stack[top++] = 1019;goto st321;} } + goto st1019; +st1019: if ( ++p == pe ) - goto _test_eof1005; -case 1005: + goto _test_eof1019; +case 1019: switch( (*p) ) { - case 32: goto tr2899; - case 59: goto tr2899; + case 32: goto tr2932; + case 59: goto tr2932; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2899; + goto tr2932; } else if ( (*p) >= 9 ) - goto tr2899; + goto tr2932; goto tr77; -tr2899: +tr2932: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1502; -st1502: + goto st1542; +st1542: if ( ++p == pe ) - goto _test_eof1502; -case 1502: + goto _test_eof1542; +case 1542: goto st0; -tr2898: +tr2931: { s->buffer_length = 0; } - goto st1006; -tr2900: + goto st1020; +tr2933: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1006; -tr2892: + goto st1020; +tr2925: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77216,17 +78450,17 @@ tr2892: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1006; -st1006: + goto st1020; +st1020: if ( ++p == pe ) - goto _test_eof1006; -case 1006: + goto _test_eof1020; +case 1020: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -77246,23 +78480,23 @@ case 1006: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2901; + goto tr2934; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2900; + goto tr2933; goto tr77; -tr2886: +tr2919: { s->buffer_length = 0; } - goto st1007; -tr2902: + goto st1021; +tr2935: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1007; -tr2880: + goto st1021; +tr2913: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77270,17 +78504,17 @@ tr2880: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1007; -st1007: + goto st1021; +st1021: if ( ++p == pe ) - goto _test_eof1007; -case 1007: + goto _test_eof1021; +case 1021: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -77300,23 +78534,23 @@ case 1007: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2903; + goto tr2936; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2902; + goto tr2935; goto tr77; -tr2874: +tr2907: { s->buffer_length = 0; } - goto st1008; -tr2904: + goto st1022; +tr2937: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1008; -tr2868: + goto st1022; +tr2901: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77324,17 +78558,17 @@ tr2868: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1008; -st1008: + goto st1022; +st1022: if ( ++p == pe ) - goto _test_eof1008; -case 1008: + goto _test_eof1022; +case 1022: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -77354,18 +78588,18 @@ case 1008: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2905; + goto tr2938; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2904; + goto tr2937; goto tr77; -st1009: +st1023: if ( ++p == pe ) - goto _test_eof1009; -case 1009: + goto _test_eof1023; +case 1023: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2906; - goto tr2396; -tr2906: + goto tr2939; + goto tr2429; +tr2939: { s->number64 = 0; } @@ -77380,11 +78614,11 @@ tr2906: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1010; -tr2910: + goto st1024; +tr2943: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -77396,14 +78630,14 @@ tr2910: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1010; -st1010: + goto st1024; +st1024: if ( ++p == pe ) - goto _test_eof1010; -case 1010: + goto _test_eof1024; +case 1024: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77417,40 +78651,40 @@ case 1010: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2907; - case 32: goto tr2907; - case 40: goto tr2908; - case 41: goto tr2909; - case 2058: goto tr2911; - case 2107: goto tr2912; + case 9: goto tr2940; + case 32: goto tr2940; + case 40: goto tr2941; + case 41: goto tr2942; + case 2058: goto tr2944; + case 2107: goto tr2945; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2910; - goto tr2396; -tr2914: + goto tr2943; + goto tr2429; +tr2947: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1011; -tr2915: + goto st1025; +tr2948: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1011; -tr2917: + goto st1025; +tr2950: { s->line_counter++; } - goto st1011; -tr2974: + goto st1025; +tr3007: { s->buffer[s->buffer_length++] = 0; @@ -77460,15 +78694,15 @@ tr2974: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1011; goto _out;} + {p++; cs = 1025; goto _out;} } } } { s->line_counter++; } - goto st1011; -tr2907: + goto st1025; +tr2940: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77476,11 +78710,11 @@ tr2907: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1011; -tr2908: + goto st1025; +tr2941: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77488,18 +78722,18 @@ tr2908: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1011; -tr2909: + goto st1025; +tr2942: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77507,18 +78741,18 @@ tr2909: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1011; -tr2911: + goto st1025; +tr2944: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77526,17 +78760,17 @@ tr2911: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1011; -st1011: + goto st1025; +st1025: if ( ++p == pe ) - goto _test_eof1011; -case 1011: + goto _test_eof1025; +case 1025: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77550,17 +78784,17 @@ case 1011: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1011; - case 32: goto st1011; - case 40: goto tr2914; - case 41: goto tr2915; - case 2058: goto tr2917; - case 2107: goto tr2918; + case 9: goto st1025; + case 32: goto st1025; + case 40: goto tr2947; + case 41: goto tr2948; + case 2058: goto tr2950; + case 2107: goto tr2951; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2916; - goto tr2396; -tr2916: + goto tr2949; + goto tr2429; +tr2949: { s->number64 = 0; } @@ -77575,11 +78809,11 @@ tr2916: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1012; -tr2922: + goto st1026; +tr2955: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -77591,14 +78825,14 @@ tr2922: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1012; -st1012: + goto st1026; +st1026: if ( ++p == pe ) - goto _test_eof1012; -case 1012: + goto _test_eof1026; +case 1026: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77612,40 +78846,40 @@ case 1012: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2919; - case 32: goto tr2919; - case 40: goto tr2920; - case 41: goto tr2921; - case 2058: goto tr2923; - case 2107: goto tr2924; + case 9: goto tr2952; + case 32: goto tr2952; + case 40: goto tr2953; + case 41: goto tr2954; + case 2058: goto tr2956; + case 2107: goto tr2957; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2922; - goto tr2396; -tr2927: + goto tr2955; + goto tr2429; +tr2960: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1013; -tr2928: + goto st1027; +tr2961: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1013; -tr2929: + goto st1027; +tr2962: { s->line_counter++; } - goto st1013; -tr2972: + goto st1027; +tr3005: { s->buffer[s->buffer_length++] = 0; @@ -77655,15 +78889,15 @@ tr2972: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1013; goto _out;} + {p++; cs = 1027; goto _out;} } } } { s->line_counter++; } - goto st1013; -tr2919: + goto st1027; +tr2952: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77671,11 +78905,11 @@ tr2919: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1013; -tr2920: + goto st1027; +tr2953: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77683,18 +78917,18 @@ tr2920: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1013; -tr2921: + goto st1027; +tr2954: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77702,18 +78936,18 @@ tr2921: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1013; -tr2923: + goto st1027; +tr2956: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -77721,17 +78955,17 @@ tr2923: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1013; -st1013: + goto st1027; +st1027: if ( ++p == pe ) - goto _test_eof1013; -case 1013: + goto _test_eof1027; +case 1027: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77745,37 +78979,37 @@ case 1013: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1013; - case 32: goto st1013; - case 40: goto tr2927; - case 41: goto tr2928; - case 2058: goto tr2929; - case 2107: goto tr2930; + case 9: goto st1027; + case 32: goto st1027; + case 40: goto tr2960; + case 41: goto tr2961; + case 2058: goto tr2962; + case 2107: goto tr2963; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2925; + goto tr2958; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2925; + goto tr2958; } else - goto tr2925; + goto tr2958; goto tr77; -tr2925: +tr2958: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 1014;goto st327;} } - goto st1014; -st1014: + { p--; {stack[top++] = 1028;goto st330;} } + goto st1028; +st1028: if ( ++p == pe ) - goto _test_eof1014; -case 1014: + goto _test_eof1028; +case 1028: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77789,38 +79023,38 @@ case 1014: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2931; - case 32: goto tr2931; - case 40: goto tr2932; - case 41: goto tr2933; - case 2058: goto tr2934; - case 2107: goto tr2935; + case 9: goto tr2964; + case 32: goto tr2964; + case 40: goto tr2965; + case 41: goto tr2966; + case 2058: goto tr2967; + case 2107: goto tr2968; } goto tr77; -tr2938: +tr2971: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1015; -tr2939: + goto st1029; +tr2972: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1015; -tr2940: + goto st1029; +tr2973: { s->line_counter++; } - goto st1015; -tr2970: + goto st1029; +tr3003: { s->buffer[s->buffer_length++] = 0; @@ -77830,95 +79064,95 @@ tr2970: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1015; goto _out;} + {p++; cs = 1029; goto _out;} } } } { s->line_counter++; } - goto st1015; -tr2931: + goto st1029; +tr2964: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1015; -tr2932: + goto st1029; +tr2965: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1015; -tr2933: + goto st1029; +tr2966: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1015; -tr2934: + goto st1029; +tr2967: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1015; -st1015: + goto st1029; +st1029: if ( ++p == pe ) - goto _test_eof1015; -case 1015: + goto _test_eof1029; +case 1029: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77932,37 +79166,37 @@ case 1015: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1015; - case 32: goto st1015; - case 40: goto tr2938; - case 41: goto tr2939; - case 2058: goto tr2940; - case 2107: goto tr2941; + case 9: goto st1029; + case 32: goto st1029; + case 40: goto tr2971; + case 41: goto tr2972; + case 2058: goto tr2973; + case 2107: goto tr2974; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2936; + goto tr2969; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2936; + goto tr2969; } else - goto tr2936; + goto tr2969; goto tr77; -tr2936: +tr2969: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 1016;goto st327;} } - goto st1016; -st1016: + { p--; {stack[top++] = 1030;goto st330;} } + goto st1030; +st1030: if ( ++p == pe ) - goto _test_eof1016; -case 1016: + goto _test_eof1030; +case 1030: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77976,38 +79210,38 @@ case 1016: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2942; - case 32: goto tr2942; - case 40: goto tr2943; - case 41: goto tr2944; - case 2058: goto tr2945; - case 2107: goto tr2946; + case 9: goto tr2975; + case 32: goto tr2975; + case 40: goto tr2976; + case 41: goto tr2977; + case 2058: goto tr2978; + case 2107: goto tr2979; } goto tr77; -tr2949: +tr2982: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1017; -tr2950: + goto st1031; +tr2983: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1017; -tr2951: + goto st1031; +tr2984: { s->line_counter++; } - goto st1017; -tr2968: + goto st1031; +tr3001: { s->buffer[s->buffer_length++] = 0; @@ -78017,95 +79251,95 @@ tr2968: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1017; goto _out;} + {p++; cs = 1031; goto _out;} } } } { s->line_counter++; } - goto st1017; -tr2942: + goto st1031; +tr2975: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1017; -tr2943: + goto st1031; +tr2976: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1017; -tr2944: + goto st1031; +tr2977: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1017; -tr2945: + goto st1031; +tr2978: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1017; -st1017: + goto st1031; +st1031: if ( ++p == pe ) - goto _test_eof1017; -case 1017: + goto _test_eof1031; +case 1031: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78119,37 +79353,37 @@ case 1017: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1017; - case 32: goto st1017; - case 40: goto tr2949; - case 41: goto tr2950; - case 2058: goto tr2951; - case 2107: goto tr2952; + case 9: goto st1031; + case 32: goto st1031; + case 40: goto tr2982; + case 41: goto tr2983; + case 2058: goto tr2984; + case 2107: goto tr2985; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2947; + goto tr2980; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2947; + goto tr2980; } else - goto tr2947; + goto tr2980; goto tr77; -tr2947: +tr2980: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 1018;goto st327;} } - goto st1018; -st1018: + { p--; {stack[top++] = 1032;goto st330;} } + goto st1032; +st1032: if ( ++p == pe ) - goto _test_eof1018; -case 1018: + goto _test_eof1032; +case 1032: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78163,38 +79397,38 @@ case 1018: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2953; - case 32: goto tr2953; - case 40: goto tr2954; - case 41: goto tr2955; - case 2058: goto tr2956; - case 2107: goto tr2957; + case 9: goto tr2986; + case 32: goto tr2986; + case 40: goto tr2987; + case 41: goto tr2988; + case 2058: goto tr2989; + case 2107: goto tr2990; } goto tr77; -tr2959: +tr2992: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1019; -tr2960: + goto st1033; +tr2993: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1019; -tr2962: + goto st1033; +tr2995: { s->line_counter++; } - goto st1019; -tr2966: + goto st1033; +tr2999: { s->buffer[s->buffer_length++] = 0; @@ -78204,95 +79438,95 @@ tr2966: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1019; goto _out;} + {p++; cs = 1033; goto _out;} } } } { s->line_counter++; } - goto st1019; -tr2953: + goto st1033; +tr2986: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1019; -tr2954: + goto st1033; +tr2987: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1019; -tr2955: + goto st1033; +tr2988: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1019; -tr2956: + goto st1033; +tr2989: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1019; -st1019: + goto st1033; +st1033: if ( ++p == pe ) - goto _test_eof1019; -case 1019: + goto _test_eof1033; +case 1033: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78306,92 +79540,92 @@ case 1019: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1019; - case 32: goto st1019; - case 40: goto tr2959; - case 41: goto tr2960; - case 42: goto tr2961; - case 92: goto tr2961; - case 95: goto tr2961; - case 2058: goto tr2962; - case 2107: goto tr2963; + case 9: goto st1033; + case 32: goto st1033; + case 40: goto tr2992; + case 41: goto tr2993; + case 42: goto tr2994; + case 92: goto tr2994; + case 95: goto tr2994; + case 2058: goto tr2995; + case 2107: goto tr2996; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2961; + goto tr2994; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2961; + goto tr2994; } else - goto tr2961; + goto tr2994; goto tr77; -tr2961: +tr2994: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1020;goto st318;} } - goto st1020; -st1020: + { p--; {stack[top++] = 1034;goto st321;} } + goto st1034; +st1034: if ( ++p == pe ) - goto _test_eof1020; -case 1020: + goto _test_eof1034; +case 1034: switch( (*p) ) { - case 32: goto tr2964; - case 59: goto tr2964; + case 32: goto tr2997; + case 59: goto tr2997; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2964; + goto tr2997; } else if ( (*p) >= 9 ) - goto tr2964; + goto tr2997; goto tr77; -tr2964: +tr2997: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1503; -st1503: + goto st1543; +st1543: if ( ++p == pe ) - goto _test_eof1503; -case 1503: + goto _test_eof1543; +case 1543: goto st0; -tr2963: +tr2996: { s->buffer_length = 0; } - goto st1021; -tr2965: + goto st1035; +tr2998: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1021; -tr2957: + goto st1035; +tr2990: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1021; -st1021: + goto st1035; +st1035: if ( ++p == pe ) - goto _test_eof1021; -case 1021: + goto _test_eof1035; +case 1035: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78411,44 +79645,44 @@ case 1021: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2966; + goto tr2999; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2965; + goto tr2998; goto tr77; -tr2952: +tr2985: { s->buffer_length = 0; } - goto st1022; -tr2967: + goto st1036; +tr3000: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1022; -tr2946: + goto st1036; +tr2979: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1022; -st1022: + goto st1036; +st1036: if ( ++p == pe ) - goto _test_eof1022; -case 1022: + goto _test_eof1036; +case 1036: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78468,44 +79702,44 @@ case 1022: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2968; + goto tr3001; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2967; + goto tr3000; goto tr77; -tr2941: +tr2974: { s->buffer_length = 0; } - goto st1023; -tr2969: + goto st1037; +tr3002: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1023; -tr2935: + goto st1037; +tr2968: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1023; -st1023: + goto st1037; +st1037: if ( ++p == pe ) - goto _test_eof1023; -case 1023: + goto _test_eof1037; +case 1037: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78525,23 +79759,23 @@ case 1023: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2970; + goto tr3003; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2969; + goto tr3002; goto tr77; -tr2930: +tr2963: { s->buffer_length = 0; } - goto st1024; -tr2971: + goto st1038; +tr3004: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1024; -tr2924: + goto st1038; +tr2957: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -78549,17 +79783,17 @@ tr2924: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1024; -st1024: + goto st1038; +st1038: if ( ++p == pe ) - goto _test_eof1024; -case 1024: + goto _test_eof1038; +case 1038: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78579,23 +79813,23 @@ case 1024: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2972; + goto tr3005; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2971; + goto tr3004; goto tr77; -tr2918: +tr2951: { s->buffer_length = 0; } - goto st1025; -tr2973: + goto st1039; +tr3006: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1025; -tr2912: + goto st1039; +tr2945: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -78603,17 +79837,17 @@ tr2912: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1025; -st1025: + goto st1039; +st1039: if ( ++p == pe ) - goto _test_eof1025; -case 1025: + goto _test_eof1039; +case 1039: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78633,30 +79867,30 @@ case 1025: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2974; + goto tr3007; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2973; + goto tr3006; goto tr77; -st1026: +st1040: if ( ++p == pe ) - goto _test_eof1026; -case 1026: + goto _test_eof1040; +case 1040: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2975; + goto tr3008; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2975; + goto tr3008; } else - goto tr2975; + goto tr3008; goto tr77; -tr2975: - { p--; {stack[top++] = 1027;goto st845;} } - goto st1027; -st1027: +tr3008: + { p--; {stack[top++] = 1041;goto st851;} } + goto st1041; +st1041: if ( ++p == pe ) - goto _test_eof1027; -case 1027: + goto _test_eof1041; +case 1041: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78670,38 +79904,38 @@ case 1027: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1028; - case 32: goto st1028; - case 40: goto tr2977; - case 41: goto tr2978; - case 2058: goto tr2979; - case 2107: goto tr2980; + case 9: goto st1042; + case 32: goto st1042; + case 40: goto tr3010; + case 41: goto tr3011; + case 2058: goto tr3012; + case 2107: goto tr3013; } goto tr77; -tr2977: +tr3010: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1028; -tr2978: + goto st1042; +tr3011: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1028; -tr2979: + goto st1042; +tr3012: { s->line_counter++; } - goto st1028; -tr3006: + goto st1042; +tr3039: { s->buffer[s->buffer_length++] = 0; @@ -78711,18 +79945,18 @@ tr3006: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1028; goto _out;} + {p++; cs = 1042; goto _out;} } } } { s->line_counter++; } - goto st1028; -st1028: + goto st1042; +st1042: if ( ++p == pe ) - goto _test_eof1028; -case 1028: + goto _test_eof1042; +case 1042: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78736,17 +79970,17 @@ case 1028: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1028; - case 32: goto st1028; - case 40: goto tr2977; - case 41: goto tr2978; - case 2058: goto tr2979; - case 2107: goto tr2980; + case 9: goto st1042; + case 32: goto st1042; + case 40: goto tr3010; + case 41: goto tr3011; + case 2058: goto tr3012; + case 2107: goto tr3013; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2981; - goto tr2396; -tr2981: + goto tr3014; + goto tr2429; +tr3014: { s->number64 = 0; } @@ -78761,11 +79995,11 @@ tr2981: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1029; -tr2985: + goto st1043; +tr3018: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -78777,14 +80011,14 @@ tr2985: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1029; -st1029: + goto st1043; +st1043: if ( ++p == pe ) - goto _test_eof1029; -case 1029: + goto _test_eof1043; +case 1043: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78798,40 +80032,40 @@ case 1029: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2982; - case 32: goto tr2982; - case 40: goto tr2983; - case 41: goto tr2984; - case 2058: goto tr2986; - case 2107: goto tr2987; + case 9: goto tr3015; + case 32: goto tr3015; + case 40: goto tr3016; + case 41: goto tr3017; + case 2058: goto tr3019; + case 2107: goto tr3020; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2985; - goto tr2396; -tr2989: + goto tr3018; + goto tr2429; +tr3022: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1030; -tr2990: + goto st1044; +tr3023: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1030; -tr2992: + goto st1044; +tr3025: { s->line_counter++; } - goto st1030; -tr3004: + goto st1044; +tr3037: { s->buffer[s->buffer_length++] = 0; @@ -78841,15 +80075,15 @@ tr3004: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1030; goto _out;} + {p++; cs = 1044; goto _out;} } } } { s->line_counter++; } - goto st1030; -tr2982: + goto st1044; +tr3015: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -78857,11 +80091,11 @@ tr2982: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1030; -tr2983: + goto st1044; +tr3016: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -78869,18 +80103,18 @@ tr2983: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1030; -tr2984: + goto st1044; +tr3017: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -78888,18 +80122,18 @@ tr2984: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1030; -tr2986: + goto st1044; +tr3019: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -78907,17 +80141,17 @@ tr2986: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1030; -st1030: + goto st1044; +st1044: if ( ++p == pe ) - goto _test_eof1030; -case 1030: + goto _test_eof1044; +case 1044: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78931,29 +80165,29 @@ case 1030: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1030; - case 32: goto st1030; - case 40: goto tr2989; - case 41: goto tr2990; - case 2058: goto tr2992; - case 2107: goto tr2993; + case 9: goto st1044; + case 32: goto st1044; + case 40: goto tr3022; + case 41: goto tr3023; + case 2058: goto tr3025; + case 2107: goto tr3026; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2991; + goto tr3024; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2991; + goto tr3024; } else - goto tr2991; + goto tr3024; goto tr77; -tr2991: - { p--; {stack[top++] = 1031;goto st741;} } - goto st1031; -st1031: +tr3024: + { p--; {stack[top++] = 1045;goto st747;} } + goto st1045; +st1045: if ( ++p == pe ) - goto _test_eof1031; -case 1031: + goto _test_eof1045; +case 1045: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78967,38 +80201,38 @@ case 1031: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1032; - case 32: goto st1032; - case 40: goto tr2995; - case 41: goto tr2996; - case 2058: goto tr2997; - case 2107: goto tr2998; + case 9: goto st1046; + case 32: goto st1046; + case 40: goto tr3028; + case 41: goto tr3029; + case 2058: goto tr3030; + case 2107: goto tr3031; } goto tr77; -tr2995: +tr3028: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1032; -tr2996: + goto st1046; +tr3029: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1032; -tr2997: + goto st1046; +tr3030: { s->line_counter++; } - goto st1032; -tr3002: + goto st1046; +tr3035: { s->buffer[s->buffer_length++] = 0; @@ -79008,18 +80242,18 @@ tr3002: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1032; goto _out;} + {p++; cs = 1046; goto _out;} } } } { s->line_counter++; } - goto st1032; -st1032: + goto st1046; +st1046: if ( ++p == pe ) - goto _test_eof1032; -case 1032: + goto _test_eof1046; +case 1046: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79033,30 +80267,30 @@ case 1032: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1032; - case 32: goto st1032; - case 40: goto tr2995; - case 41: goto tr2996; - case 43: goto tr2999; - case 2058: goto tr2997; - case 2107: goto tr2998; + case 9: goto st1046; + case 32: goto st1046; + case 40: goto tr3028; + case 41: goto tr3029; + case 43: goto tr3032; + case 2058: goto tr3030; + case 2107: goto tr3031; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr2999; + goto tr3032; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2999; + goto tr3032; } else - goto tr2999; + goto tr3032; goto tr77; -tr2999: - { p--; {stack[top++] = 1033;goto st378;} } - goto st1033; -st1033: +tr3032: + { p--; {stack[top++] = 1047;goto st381;} } + goto st1047; +st1047: if ( ++p == pe ) - goto _test_eof1033; -case 1033: + goto _test_eof1047; +case 1047: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79070,36 +80304,36 @@ case 1033: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3000; - case 2619: goto tr3000; + case 2570: goto tr3033; + case 2619: goto tr3033; } goto tr77; -tr3000: +tr3033: { p--; {cs = stack[--top];goto _again;} } - goto st1504; -st1504: + goto st1544; +st1544: if ( ++p == pe ) - goto _test_eof1504; -case 1504: + goto _test_eof1544; +case 1544: goto st0; -tr2998: +tr3031: { s->buffer_length = 0; } - goto st1034; -tr3001: + goto st1048; +tr3034: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1034; -st1034: + goto st1048; +st1048: if ( ++p == pe ) - goto _test_eof1034; -case 1034: + goto _test_eof1048; +case 1048: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79119,23 +80353,23 @@ case 1034: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3002; + goto tr3035; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3001; + goto tr3034; goto tr77; -tr2993: +tr3026: { s->buffer_length = 0; } - goto st1035; -tr3003: + goto st1049; +tr3036: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1035; -tr2987: + goto st1049; +tr3020: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -79143,17 +80377,17 @@ tr2987: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1035; -st1035: + goto st1049; +st1049: if ( ++p == pe ) - goto _test_eof1035; -case 1035: + goto _test_eof1049; +case 1049: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79173,26 +80407,26 @@ case 1035: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3004; + goto tr3037; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3003; + goto tr3036; goto tr77; -tr2980: +tr3013: { s->buffer_length = 0; } - goto st1036; -tr3005: + goto st1050; +tr3038: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1036; -st1036: + goto st1050; +st1050: if ( ++p == pe ) - goto _test_eof1036; -case 1036: + goto _test_eof1050; +case 1050: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79212,34 +80446,34 @@ case 1036: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3006; + goto tr3039; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3005; + goto tr3038; goto tr77; -tr3010: +tr3043: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1037; -tr3011: + goto st1051; +tr3044: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1037; -tr3014: + goto st1051; +tr3047: { s->line_counter++; } - goto st1037; -tr3037: + goto st1051; +tr3070: { s->buffer[s->buffer_length++] = 0; @@ -79249,22 +80483,22 @@ tr3037: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1037; goto _out;} + {p++; cs = 1051; goto _out;} } } } { s->line_counter++; } - goto st1037; -tr3027: + goto st1051; +tr3060: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -79281,7 +80515,7 @@ tr3027: break; default: WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -79293,7 +80527,7 @@ tr3027: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -79309,15 +80543,15 @@ tr3027: memcpy(rdata_tail, s->buffer, len); rdata_tail += len; } - goto st1037; -tr3028: + goto st1051; +tr3061: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -79334,7 +80568,7 @@ tr3028: break; default: WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -79346,7 +80580,7 @@ tr3028: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -79365,19 +80599,19 @@ tr3028: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1037; -tr3029: + goto st1051; +tr3062: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -79394,7 +80628,7 @@ tr3029: break; default: WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -79406,7 +80640,7 @@ tr3029: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -79425,19 +80659,19 @@ tr3029: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1037; -tr3031: + goto st1051; +tr3064: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -79454,7 +80688,7 @@ tr3031: break; default: WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -79466,7 +80700,7 @@ tr3031: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -79485,11 +80719,11 @@ tr3031: { s->line_counter++; } - goto st1037; -st1037: + goto st1051; +st1051: if ( ++p == pe ) - goto _test_eof1037; -case 1037: + goto _test_eof1051; +case 1051: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79507,78 +80741,78 @@ case 1037: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1037; - case 32: goto st1037; - case 33: goto tr3009; - case 40: goto tr3010; - case 41: goto tr3011; - case 49: goto tr3012; - case 50: goto tr3013; - case 3082: goto tr3014; - case 3131: goto tr3015; - case 3338: goto tr3016; - case 3387: goto tr3016; - case 3594: goto tr3017; - case 3643: goto tr3018; - } - goto tr3007; -tr3009: + case 9: goto st1051; + case 32: goto st1051; + case 33: goto tr3042; + case 40: goto tr3043; + case 41: goto tr3044; + case 49: goto tr3045; + case 50: goto tr3046; + case 3082: goto tr3047; + case 3131: goto tr3048; + case 3338: goto tr3049; + case 3387: goto tr3049; + case 3594: goto tr3050; + case 3643: goto tr3051; + } + goto tr3040; +tr3042: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.excl_flag = 128; // dec 128 = bin 10000000. } - goto st1038; -st1038: + goto st1052; +st1052: if ( ++p == pe ) - goto _test_eof1038; -case 1038: + goto _test_eof1052; +case 1052: switch( (*p) ) { - case 49: goto tr3019; - case 50: goto tr3020; + case 49: goto tr3052; + case 50: goto tr3053; } - goto tr3007; -tr3012: + goto tr3040; +tr3045: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.addr_family = 1; } - goto st1039; -tr3019: + goto st1053; +tr3052: { s->apl.addr_family = 1; } - goto st1039; -st1039: + goto st1053; +st1053: if ( ++p == pe ) - goto _test_eof1039; -case 1039: + goto _test_eof1053; +case 1053: if ( (*p) == 58 ) - goto st1040; - goto tr3007; -st1040: + goto st1054; + goto tr3040; +st1054: if ( ++p == pe ) - goto _test_eof1040; -case 1040: + goto _test_eof1054; +case 1054: if ( (*p) == 46 ) - goto tr3023; + goto tr3056; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3023; - goto tr3022; -tr3024: + goto tr3056; + goto tr3055; +tr3057: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1041; -tr3023: + goto st1055; +tr3056: { s->buffer_length = 0; } @@ -79587,47 +80821,47 @@ tr3023: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1041; -st1041: + goto st1055; +st1055: if ( ++p == pe ) - goto _test_eof1041; -case 1041: + goto _test_eof1055; +case 1055: if ( (*p) == 47 ) - goto tr3025; + goto tr3058; if ( 46 <= (*p) && (*p) <= 57 ) - goto tr3024; - goto tr3022; -tr3025: + goto tr3057; + goto tr3055; +tr3058: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1042; -tr3041: + goto st1056; +tr3074: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1042; -st1042: + goto st1056; +st1056: if ( ++p == pe ) - goto _test_eof1042; -case 1042: + goto _test_eof1056; +case 1056: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3026; - goto tr3007; -tr3026: + goto tr3059; + goto tr3040; +tr3059: { s->number64 = 0; } @@ -79642,11 +80876,11 @@ tr3026: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1043; -tr3030: + goto st1057; +tr3063: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -79658,14 +80892,14 @@ tr3030: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1043; -st1043: + goto st1057; +st1057: if ( ++p == pe ) - goto _test_eof1043; -case 1043: + goto _test_eof1057; +case 1057: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79683,40 +80917,40 @@ case 1043: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3027; - case 32: goto tr3027; - case 40: goto tr3028; - case 41: goto tr3029; - case 3082: goto tr3031; - case 3131: goto tr3032; - case 3338: goto tr3033; - case 3387: goto tr3033; - case 3594: goto tr3034; - case 3643: goto tr3035; + case 9: goto tr3060; + case 32: goto tr3060; + case 40: goto tr3061; + case 41: goto tr3062; + case 3082: goto tr3064; + case 3131: goto tr3065; + case 3338: goto tr3066; + case 3387: goto tr3066; + case 3594: goto tr3067; + case 3643: goto tr3068; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3030; - goto tr3007; -tr3015: + goto tr3063; + goto tr3040; +tr3048: { s->buffer_length = 0; } - goto st1044; -tr3036: + goto st1058; +tr3069: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1044; -tr3032: + goto st1058; +tr3065: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -79733,7 +80967,7 @@ tr3032: break; default: WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -79745,7 +80979,7 @@ tr3032: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -79764,11 +80998,11 @@ tr3032: { s->buffer_length = 0; } - goto st1044; -st1044: + goto st1058; +st1058: if ( ++p == pe ) - goto _test_eof1044; -case 1044: + goto _test_eof1058; +case 1058: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79788,23 +81022,23 @@ case 1044: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3037; + goto tr3070; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3036; + goto tr3069; goto tr77; -tr3016: +tr3049: { p--; {cs = stack[--top];goto _again;} } - goto st1505; -tr3033: + goto st1545; +tr3066: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -79821,7 +81055,7 @@ tr3033: break; default: WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -79833,7 +81067,7 @@ tr3033: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -79852,28 +81086,28 @@ tr3033: { p--; {cs = stack[--top];goto _again;} } - goto st1505; -st1505: + goto st1545; +st1545: if ( ++p == pe ) - goto _test_eof1505; -case 1505: + goto _test_eof1545; +case 1545: goto st0; -tr3017: +tr3050: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr3034: + goto st1546; +tr3067: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -79890,7 +81124,7 @@ tr3034: break; default: WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -79902,7 +81136,7 @@ tr3034: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -79924,11 +81158,11 @@ tr3034: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -st1506: + goto st1546; +st1546: if ( ++p == pe ) - goto _test_eof1506; -case 1506: + goto _test_eof1546; +case 1546: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79946,67 +81180,67 @@ case 1506: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1037; - case 32: goto st1037; - case 33: goto tr3009; - case 40: goto tr3010; - case 41: goto tr3011; - case 49: goto tr3012; - case 50: goto tr3013; - case 3082: goto tr3014; - case 3131: goto tr3015; - case 3338: goto tr3016; - case 3387: goto tr3016; - case 3594: goto tr3017; - case 3643: goto tr3018; - } - goto tr3007; -tr3013: + case 9: goto st1051; + case 32: goto st1051; + case 33: goto tr3042; + case 40: goto tr3043; + case 41: goto tr3044; + case 49: goto tr3045; + case 50: goto tr3046; + case 3082: goto tr3047; + case 3131: goto tr3048; + case 3338: goto tr3049; + case 3387: goto tr3049; + case 3594: goto tr3050; + case 3643: goto tr3051; + } + goto tr3040; +tr3046: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.addr_family = 2; } - goto st1045; -tr3020: + goto st1059; +tr3053: { s->apl.addr_family = 2; } - goto st1045; -st1045: + goto st1059; +st1059: if ( ++p == pe ) - goto _test_eof1045; -case 1045: + goto _test_eof1059; +case 1059: if ( (*p) == 58 ) - goto st1046; - goto tr3007; -st1046: + goto st1060; + goto tr3040; +st1060: if ( ++p == pe ) - goto _test_eof1046; -case 1046: + goto _test_eof1060; +case 1060: if ( (*p) == 46 ) - goto tr3039; + goto tr3072; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr3039; + goto tr3072; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3039; + goto tr3072; } else - goto tr3039; - goto tr3022; -tr3040: + goto tr3072; + goto tr3055; +tr3073: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1047; -tr3039: + goto st1061; +tr3072: { s->buffer_length = 0; } @@ -80015,41 +81249,41 @@ tr3039: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1047; -st1047: + goto st1061; +st1061: if ( ++p == pe ) - goto _test_eof1047; -case 1047: + goto _test_eof1061; +case 1061: if ( (*p) == 47 ) - goto tr3041; + goto tr3074; if ( (*p) < 65 ) { if ( 46 <= (*p) && (*p) <= 58 ) - goto tr3040; + goto tr3073; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3040; + goto tr3073; } else - goto tr3040; - goto tr3022; -tr3018: + goto tr3073; + goto tr3055; +tr3051: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr3035: + goto st1547; +tr3068: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -80066,7 +81300,7 @@ tr3035: break; default: WARN(ZS_BAD_APL); - p--; {goto st316;} + p--; {goto st319;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -80078,7 +81312,7 @@ tr3035: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -80100,11 +81334,11 @@ tr3035: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -st1507: + goto st1547; +st1547: if ( ++p == pe ) - goto _test_eof1507; -case 1507: + goto _test_eof1547; +case 1547: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80124,18 +81358,18 @@ case 1507: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3037; + goto tr3070; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3036; + goto tr3069; goto tr77; -st1048: +st1062: if ( ++p == pe ) - goto _test_eof1048; -case 1048: + goto _test_eof1062; +case 1062: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3042; - goto tr2396; -tr3042: + goto tr3075; + goto tr2429; +tr3075: { s->number64 = 0; } @@ -80150,11 +81384,11 @@ tr3042: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1049; -tr3046: + goto st1063; +tr3079: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80166,14 +81400,14 @@ tr3046: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1049; -st1049: + goto st1063; +st1063: if ( ++p == pe ) - goto _test_eof1049; -case 1049: + goto _test_eof1063; +case 1063: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80187,40 +81421,40 @@ case 1049: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3043; - case 32: goto tr3043; - case 40: goto tr3044; - case 41: goto tr3045; - case 2058: goto tr3047; - case 2107: goto tr3048; + case 9: goto tr3076; + case 32: goto tr3076; + case 40: goto tr3077; + case 41: goto tr3078; + case 2058: goto tr3080; + case 2107: goto tr3081; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3046; - goto tr2396; -tr3050: + goto tr3079; + goto tr2429; +tr3083: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1050; -tr3051: + goto st1064; +tr3084: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1050; -tr3053: + goto st1064; +tr3086: { s->line_counter++; } - goto st1050; -tr3090: + goto st1064; +tr3123: { s->buffer[s->buffer_length++] = 0; @@ -80230,15 +81464,15 @@ tr3090: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1050; goto _out;} + {p++; cs = 1064; goto _out;} } } } { s->line_counter++; } - goto st1050; -tr3043: + goto st1064; +tr3076: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80246,11 +81480,11 @@ tr3043: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1050; -tr3044: + goto st1064; +tr3077: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80258,18 +81492,18 @@ tr3044: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1050; -tr3045: + goto st1064; +tr3078: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80277,18 +81511,18 @@ tr3045: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1050; -tr3047: + goto st1064; +tr3080: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80296,17 +81530,17 @@ tr3047: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1050; -st1050: + goto st1064; +st1064: if ( ++p == pe ) - goto _test_eof1050; -case 1050: + goto _test_eof1064; +case 1064: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80320,29 +81554,29 @@ case 1050: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1050; - case 32: goto st1050; - case 40: goto tr3050; - case 41: goto tr3051; - case 2058: goto tr3053; - case 2107: goto tr3054; + case 9: goto st1064; + case 32: goto st1064; + case 40: goto tr3083; + case 41: goto tr3084; + case 2058: goto tr3086; + case 2107: goto tr3087; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3052; + goto tr3085; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3052; + goto tr3085; } else - goto tr3052; + goto tr3085; goto tr77; -tr3052: - { p--; {stack[top++] = 1051;goto st741;} } - goto st1051; -st1051: +tr3085: + { p--; {stack[top++] = 1065;goto st747;} } + goto st1065; +st1065: if ( ++p == pe ) - goto _test_eof1051; -case 1051: + goto _test_eof1065; +case 1065: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80356,38 +81590,38 @@ case 1051: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1052; - case 32: goto st1052; - case 40: goto tr3056; - case 41: goto tr3057; - case 2058: goto tr3058; - case 2107: goto tr3059; + case 9: goto st1066; + case 32: goto st1066; + case 40: goto tr3089; + case 41: goto tr3090; + case 2058: goto tr3091; + case 2107: goto tr3092; } goto tr77; -tr3056: +tr3089: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1052; -tr3057: + goto st1066; +tr3090: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1052; -tr3058: + goto st1066; +tr3091: { s->line_counter++; } - goto st1052; -tr3088: + goto st1066; +tr3121: { s->buffer[s->buffer_length++] = 0; @@ -80397,18 +81631,18 @@ tr3088: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1052; goto _out;} + {p++; cs = 1066; goto _out;} } } } { s->line_counter++; } - goto st1052; -st1052: + goto st1066; +st1066: if ( ++p == pe ) - goto _test_eof1052; -case 1052: + goto _test_eof1066; +case 1066: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80422,17 +81656,17 @@ case 1052: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1052; - case 32: goto st1052; - case 40: goto tr3056; - case 41: goto tr3057; - case 2058: goto tr3058; - case 2107: goto tr3059; + case 9: goto st1066; + case 32: goto st1066; + case 40: goto tr3089; + case 41: goto tr3090; + case 2058: goto tr3091; + case 2107: goto tr3092; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3060; - goto tr2396; -tr3060: + goto tr3093; + goto tr2429; +tr3093: { s->number64 = 0; } @@ -80447,11 +81681,11 @@ tr3060: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1053; -tr3064: + goto st1067; +tr3097: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80463,14 +81697,14 @@ tr3064: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1053; -st1053: + goto st1067; +st1067: if ( ++p == pe ) - goto _test_eof1053; -case 1053: + goto _test_eof1067; +case 1067: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80484,40 +81718,40 @@ case 1053: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3061; - case 32: goto tr3061; - case 40: goto tr3062; - case 41: goto tr3063; - case 2058: goto tr3065; - case 2107: goto tr3066; + case 9: goto tr3094; + case 32: goto tr3094; + case 40: goto tr3095; + case 41: goto tr3096; + case 2058: goto tr3098; + case 2107: goto tr3099; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3064; - goto tr2396; -tr3069: + goto tr3097; + goto tr2429; +tr3102: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1054; -tr3070: + goto st1068; +tr3103: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1054; -tr3072: + goto st1068; +tr3105: { s->line_counter++; } - goto st1054; -tr3086: + goto st1068; +tr3119: { s->buffer[s->buffer_length++] = 0; @@ -80527,79 +81761,79 @@ tr3086: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1054; goto _out;} + {p++; cs = 1068; goto _out;} } } } { s->line_counter++; } - goto st1054; -tr3061: + goto st1068; +tr3094: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1054; -tr3062: + goto st1068; +tr3095: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1054; -tr3063: + goto st1068; +tr3096: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1054; -tr3065: + goto st1068; +tr3098: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1054; -st1054: + goto st1068; +st1068: if ( ++p == pe ) - goto _test_eof1054; -case 1054: + goto _test_eof1068; +case 1068: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80613,69 +81847,69 @@ case 1054: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1054; - case 32: goto st1054; - case 40: goto tr3069; - case 41: goto tr3070; - case 2058: goto tr3072; - case 2107: goto tr3073; + case 9: goto st1068; + case 32: goto st1068; + case 40: goto tr3102; + case 41: goto tr3103; + case 2058: goto tr3105; + case 2107: goto tr3106; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3071; + goto tr3104; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3071; + goto tr3104; } else - goto tr3071; - goto tr3067; -tr3071: + goto tr3104; + goto tr3100; +tr3104: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1055; -st1055: + goto st1069; +st1069: if ( ++p == pe ) - goto _test_eof1055; -case 1055: + goto _test_eof1069; +case 1069: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3074; + goto tr3107; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3074; + goto tr3107; } else - goto tr3074; - goto tr3067; -tr3076: + goto tr3107; + goto tr3100; +tr3109: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1056; -tr3077: + goto st1070; +tr3110: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1056; -tr3078: + goto st1070; +tr3111: { s->line_counter++; } - goto st1056; -tr3084: + goto st1070; +tr3117: { s->buffer[s->buffer_length++] = 0; @@ -80685,24 +81919,24 @@ tr3084: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1056; goto _out;} + {p++; cs = 1070; goto _out;} } } } { s->line_counter++; } - goto st1056; -tr3074: + goto st1070; +tr3107: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1056; -st1056: + goto st1070; +st1070: if ( ++p == pe ) - goto _test_eof1056; -case 1056: + goto _test_eof1070; +case 1070: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80720,42 +81954,42 @@ case 1056: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1056; - case 32: goto st1056; - case 40: goto tr3076; - case 41: goto tr3077; - case 3082: goto tr3078; - case 3131: goto tr3079; - case 3338: goto tr3080; - case 3387: goto tr3080; - case 3594: goto tr3081; - case 3643: goto tr3082; + case 9: goto st1070; + case 32: goto st1070; + case 40: goto tr3109; + case 41: goto tr3110; + case 3082: goto tr3111; + case 3131: goto tr3112; + case 3338: goto tr3113; + case 3387: goto tr3113; + case 3594: goto tr3114; + case 3643: goto tr3115; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3071; + goto tr3104; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3071; + goto tr3104; } else - goto tr3071; - goto tr3067; -tr3079: + goto tr3104; + goto tr3100; +tr3112: { s->buffer_length = 0; } - goto st1057; -tr3083: + goto st1071; +tr3116: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1057; -st1057: + goto st1071; +st1071: if ( ++p == pe ) - goto _test_eof1057; -case 1057: + goto _test_eof1071; +case 1071: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80775,32 +82009,32 @@ case 1057: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3084; + goto tr3117; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3083; - goto tr3067; -tr3080: + goto tr3116; + goto tr3100; +tr3113: { p--; {cs = stack[--top];goto _again;} } - goto st1508; -st1508: + goto st1548; +st1548: if ( ++p == pe ) - goto _test_eof1508; -case 1508: + goto _test_eof1548; +case 1548: goto st0; -tr3081: +tr3114: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -st1509: + goto st1549; +st1549: if ( ++p == pe ) - goto _test_eof1509; -case 1509: + goto _test_eof1549; +case 1549: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80818,38 +82052,38 @@ case 1509: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1056; - case 32: goto st1056; - case 40: goto tr3076; - case 41: goto tr3077; - case 3082: goto tr3078; - case 3131: goto tr3079; - case 3338: goto tr3080; - case 3387: goto tr3080; - case 3594: goto tr3081; - case 3643: goto tr3082; + case 9: goto st1070; + case 32: goto st1070; + case 40: goto tr3109; + case 41: goto tr3110; + case 3082: goto tr3111; + case 3131: goto tr3112; + case 3338: goto tr3113; + case 3387: goto tr3113; + case 3594: goto tr3114; + case 3643: goto tr3115; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3071; + goto tr3104; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3071; + goto tr3104; } else - goto tr3071; - goto tr3067; -tr3082: + goto tr3104; + goto tr3100; +tr3115: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -st1510: + goto st1550; +st1550: if ( ++p == pe ) - goto _test_eof1510; -case 1510: + goto _test_eof1550; +case 1550: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80869,40 +82103,40 @@ case 1510: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3084; + goto tr3117; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3083; - goto tr3067; -tr3073: + goto tr3116; + goto tr3100; +tr3106: { s->buffer_length = 0; } - goto st1058; -tr3085: + goto st1072; +tr3118: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1058; -tr3066: + goto st1072; +tr3099: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1058; -st1058: + goto st1072; +st1072: if ( ++p == pe ) - goto _test_eof1058; -case 1058: + goto _test_eof1072; +case 1072: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80922,26 +82156,26 @@ case 1058: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3086; + goto tr3119; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3085; + goto tr3118; goto tr77; -tr3059: +tr3092: { s->buffer_length = 0; } - goto st1059; -tr3087: + goto st1073; +tr3120: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1059; -st1059: + goto st1073; +st1073: if ( ++p == pe ) - goto _test_eof1059; -case 1059: + goto _test_eof1073; +case 1073: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80961,23 +82195,23 @@ case 1059: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3088; + goto tr3121; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3087; + goto tr3120; goto tr77; -tr3054: +tr3087: { s->buffer_length = 0; } - goto st1060; -tr3089: + goto st1074; +tr3122: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1060; -tr3048: + goto st1074; +tr3081: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80985,17 +82219,17 @@ tr3048: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1060; -st1060: + goto st1074; +st1074: if ( ++p == pe ) - goto _test_eof1060; -case 1060: + goto _test_eof1074; +case 1074: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81015,18 +82249,18 @@ case 1060: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3090; + goto tr3123; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3089; + goto tr3122; goto tr77; -st1061: +st1075: if ( ++p == pe ) - goto _test_eof1061; -case 1061: + goto _test_eof1075; +case 1075: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3091; - goto tr2396; -tr3091: + goto tr3124; + goto tr2429; +tr3124: { s->number64 = 0; } @@ -81041,11 +82275,11 @@ tr3091: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1062; -tr3095: + goto st1076; +tr3128: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -81057,14 +82291,14 @@ tr3095: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1062; -st1062: + goto st1076; +st1076: if ( ++p == pe ) - goto _test_eof1062; -case 1062: + goto _test_eof1076; +case 1076: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81078,40 +82312,40 @@ case 1062: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3092; - case 32: goto tr3092; - case 40: goto tr3093; - case 41: goto tr3094; - case 2058: goto tr3096; - case 2107: goto tr3097; + case 9: goto tr3125; + case 32: goto tr3125; + case 40: goto tr3126; + case 41: goto tr3127; + case 2058: goto tr3129; + case 2107: goto tr3130; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3095; - goto tr2396; -tr3099: + goto tr3128; + goto tr2429; +tr3132: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1063; -tr3100: + goto st1077; +tr3133: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1063; -tr3102: + goto st1077; +tr3135: { s->line_counter++; } - goto st1063; -tr3130: + goto st1077; +tr3163: { s->buffer[s->buffer_length++] = 0; @@ -81121,79 +82355,79 @@ tr3130: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1063; goto _out;} + {p++; cs = 1077; goto _out;} } } } { s->line_counter++; } - goto st1063; -tr3092: + goto st1077; +tr3125: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1063; -tr3093: + goto st1077; +tr3126: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1063; -tr3094: + goto st1077; +tr3127: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1063; -tr3096: + goto st1077; +tr3129: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1063; -st1063: + goto st1077; +st1077: if ( ++p == pe ) - goto _test_eof1063; -case 1063: + goto _test_eof1077; +case 1077: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81207,17 +82441,17 @@ case 1063: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1063; - case 32: goto st1063; - case 40: goto tr3099; - case 41: goto tr3100; - case 2058: goto tr3102; - case 2107: goto tr3103; + case 9: goto st1077; + case 32: goto st1077; + case 40: goto tr3132; + case 41: goto tr3133; + case 2058: goto tr3135; + case 2107: goto tr3136; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3101; - goto tr2396; -tr3101: + goto tr3134; + goto tr2429; +tr3134: { s->number64 = 0; } @@ -81232,11 +82466,11 @@ tr3101: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1064; -tr3107: + goto st1078; +tr3140: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -81248,14 +82482,14 @@ tr3107: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1064; -st1064: + goto st1078; +st1078: if ( ++p == pe ) - goto _test_eof1064; -case 1064: + goto _test_eof1078; +case 1078: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81269,40 +82503,40 @@ case 1064: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3104; - case 32: goto tr3104; - case 40: goto tr3105; - case 41: goto tr3106; - case 2058: goto tr3108; - case 2107: goto tr3109; + case 9: goto tr3137; + case 32: goto tr3137; + case 40: goto tr3138; + case 41: goto tr3139; + case 2058: goto tr3141; + case 2107: goto tr3142; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3107; - goto tr2396; -tr3111: + goto tr3140; + goto tr2429; +tr3144: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1065; -tr3112: + goto st1079; +tr3145: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1065; -tr3114: + goto st1079; +tr3147: { s->line_counter++; } - goto st1065; -tr3128: + goto st1079; +tr3161: { s->buffer[s->buffer_length++] = 0; @@ -81312,79 +82546,79 @@ tr3128: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1065; goto _out;} + {p++; cs = 1079; goto _out;} } } } { s->line_counter++; } - goto st1065; -tr3104: + goto st1079; +tr3137: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1065; -tr3105: + goto st1079; +tr3138: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1065; -tr3106: + goto st1079; +tr3139: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1065; -tr3108: + goto st1079; +tr3141: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1065; -st1065: + goto st1079; +st1079: if ( ++p == pe ) - goto _test_eof1065; -case 1065: + goto _test_eof1079; +case 1079: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81398,69 +82632,69 @@ case 1065: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1065; - case 32: goto st1065; - case 40: goto tr3111; - case 41: goto tr3112; - case 2058: goto tr3114; - case 2107: goto tr3115; + case 9: goto st1079; + case 32: goto st1079; + case 40: goto tr3144; + case 41: goto tr3145; + case 2058: goto tr3147; + case 2107: goto tr3148; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3113; + goto tr3146; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3113; + goto tr3146; } else - goto tr3113; - goto tr3067; -tr3113: + goto tr3146; + goto tr3100; +tr3146: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1066; -st1066: + goto st1080; +st1080: if ( ++p == pe ) - goto _test_eof1066; -case 1066: + goto _test_eof1080; +case 1080: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3116; + goto tr3149; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3116; + goto tr3149; } else - goto tr3116; - goto tr3067; -tr3118: + goto tr3149; + goto tr3100; +tr3151: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1067; -tr3119: + goto st1081; +tr3152: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1067; -tr3120: + goto st1081; +tr3153: { s->line_counter++; } - goto st1067; -tr3126: + goto st1081; +tr3159: { s->buffer[s->buffer_length++] = 0; @@ -81470,24 +82704,24 @@ tr3126: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1067; goto _out;} + {p++; cs = 1081; goto _out;} } } } { s->line_counter++; } - goto st1067; -tr3116: + goto st1081; +tr3149: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1067; -st1067: + goto st1081; +st1081: if ( ++p == pe ) - goto _test_eof1067; -case 1067: + goto _test_eof1081; +case 1081: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81505,42 +82739,42 @@ case 1067: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1067; - case 32: goto st1067; - case 40: goto tr3118; - case 41: goto tr3119; - case 3082: goto tr3120; - case 3131: goto tr3121; - case 3338: goto tr3122; - case 3387: goto tr3122; - case 3594: goto tr3123; - case 3643: goto tr3124; + case 9: goto st1081; + case 32: goto st1081; + case 40: goto tr3151; + case 41: goto tr3152; + case 3082: goto tr3153; + case 3131: goto tr3154; + case 3338: goto tr3155; + case 3387: goto tr3155; + case 3594: goto tr3156; + case 3643: goto tr3157; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3113; + goto tr3146; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3113; + goto tr3146; } else - goto tr3113; - goto tr3067; -tr3121: + goto tr3146; + goto tr3100; +tr3154: { s->buffer_length = 0; } - goto st1068; -tr3125: + goto st1082; +tr3158: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1068; -st1068: + goto st1082; +st1082: if ( ++p == pe ) - goto _test_eof1068; -case 1068: + goto _test_eof1082; +case 1082: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81560,32 +82794,32 @@ case 1068: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3126; + goto tr3159; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3125; - goto tr3067; -tr3122: + goto tr3158; + goto tr3100; +tr3155: { p--; {cs = stack[--top];goto _again;} } - goto st1511; -st1511: + goto st1551; +st1551: if ( ++p == pe ) - goto _test_eof1511; -case 1511: + goto _test_eof1551; +case 1551: goto st0; -tr3123: +tr3156: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -st1512: + goto st1552; +st1552: if ( ++p == pe ) - goto _test_eof1512; -case 1512: + goto _test_eof1552; +case 1552: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81603,38 +82837,38 @@ case 1512: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1067; - case 32: goto st1067; - case 40: goto tr3118; - case 41: goto tr3119; - case 3082: goto tr3120; - case 3131: goto tr3121; - case 3338: goto tr3122; - case 3387: goto tr3122; - case 3594: goto tr3123; - case 3643: goto tr3124; + case 9: goto st1081; + case 32: goto st1081; + case 40: goto tr3151; + case 41: goto tr3152; + case 3082: goto tr3153; + case 3131: goto tr3154; + case 3338: goto tr3155; + case 3387: goto tr3155; + case 3594: goto tr3156; + case 3643: goto tr3157; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3113; + goto tr3146; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3113; + goto tr3146; } else - goto tr3113; - goto tr3067; -tr3124: + goto tr3146; + goto tr3100; +tr3157: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1513; -st1513: + goto st1553; +st1553: if ( ++p == pe ) - goto _test_eof1513; -case 1513: + goto _test_eof1553; +case 1553: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81654,40 +82888,40 @@ case 1513: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3126; + goto tr3159; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3125; - goto tr3067; -tr3115: + goto tr3158; + goto tr3100; +tr3148: { s->buffer_length = 0; } - goto st1069; -tr3127: + goto st1083; +tr3160: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1069; -tr3109: + goto st1083; +tr3142: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1069; -st1069: + goto st1083; +st1083: if ( ++p == pe ) - goto _test_eof1069; -case 1069: + goto _test_eof1083; +case 1083: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81707,40 +82941,40 @@ case 1069: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3128; + goto tr3161; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3127; + goto tr3160; goto tr77; -tr3103: +tr3136: { s->buffer_length = 0; } - goto st1070; -tr3129: + goto st1084; +tr3162: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1070; -tr3097: + goto st1084; +tr3130: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1070; -st1070: + goto st1084; +st1084: if ( ++p == pe ) - goto _test_eof1070; -case 1070: + goto _test_eof1084; +case 1084: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81760,18 +82994,18 @@ case 1070: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3130; + goto tr3163; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3129; + goto tr3162; goto tr77; -st1071: +st1085: if ( ++p == pe ) - goto _test_eof1071; -case 1071: + goto _test_eof1085; +case 1085: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3131; - goto tr2396; -tr3131: + goto tr3164; + goto tr2429; +tr3164: { s->number64 = 0; } @@ -81786,11 +83020,11 @@ tr3131: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1072; -tr3135: + goto st1086; +tr3168: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -81802,14 +83036,14 @@ tr3135: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1072; -st1072: + goto st1086; +st1086: if ( ++p == pe ) - goto _test_eof1072; -case 1072: + goto _test_eof1086; +case 1086: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81823,40 +83057,40 @@ case 1072: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3132; - case 32: goto tr3132; - case 40: goto tr3133; - case 41: goto tr3134; - case 2058: goto tr3136; - case 2107: goto tr3137; + case 9: goto tr3165; + case 32: goto tr3165; + case 40: goto tr3166; + case 41: goto tr3167; + case 2058: goto tr3169; + case 2107: goto tr3170; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3135; - goto tr2396; -tr3140: + goto tr3168; + goto tr2429; +tr3173: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1073; -tr3141: + goto st1087; +tr3174: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1073; -tr3146: + goto st1087; +tr3179: { s->line_counter++; } - goto st1073; -tr3339: + goto st1087; +tr3372: { s->buffer[s->buffer_length++] = 0; @@ -81866,79 +83100,79 @@ tr3339: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1073; goto _out;} + {p++; cs = 1087; goto _out;} } } } { s->line_counter++; } - goto st1073; -tr3132: + goto st1087; +tr3165: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1073; -tr3133: + goto st1087; +tr3166: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1073; -tr3134: + goto st1087; +tr3167: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1073; -tr3136: + goto st1087; +tr3169: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1073; -st1073: + goto st1087; +st1087: if ( ++p == pe ) - goto _test_eof1073; -case 1073: + goto _test_eof1087; +case 1087: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81952,27 +83186,27 @@ case 1073: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1073; - case 32: goto st1073; - case 40: goto tr3140; - case 41: goto tr3141; - case 48: goto tr3142; - case 49: goto tr3143; - case 50: goto tr3144; - case 51: goto tr3145; - case 2058: goto tr3146; - case 2107: goto tr3147; + case 9: goto st1087; + case 32: goto st1087; + case 40: goto tr3173; + case 41: goto tr3174; + case 48: goto tr3175; + case 49: goto tr3176; + case 50: goto tr3177; + case 51: goto tr3178; + case 2058: goto tr3179; + case 2107: goto tr3180; } - goto tr3138; -tr3142: + goto tr3171; +tr3175: { *(rdata_tail++) = 0; } - goto st1074; -st1074: + goto st1088; +st1088: if ( ++p == pe ) - goto _test_eof1074; -case 1074: + goto _test_eof1088; +case 1088: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81986,38 +83220,38 @@ case 1074: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1075; - case 32: goto st1075; - case 40: goto tr3149; - case 41: goto tr3150; - case 2058: goto tr3151; - case 2107: goto tr3152; + case 9: goto st1089; + case 32: goto st1089; + case 40: goto tr3182; + case 41: goto tr3183; + case 2058: goto tr3184; + case 2107: goto tr3185; } - goto tr3138; -tr3149: + goto tr3171; +tr3182: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1075; -tr3150: + goto st1089; +tr3183: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1075; -tr3151: + goto st1089; +tr3184: { s->line_counter++; } - goto st1075; -tr3201: + goto st1089; +tr3234: { s->buffer[s->buffer_length++] = 0; @@ -82027,18 +83261,18 @@ tr3201: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1075; goto _out;} + {p++; cs = 1089; goto _out;} } } } { s->line_counter++; } - goto st1075; -st1075: + goto st1089; +st1089: if ( ++p == pe ) - goto _test_eof1075; -case 1075: + goto _test_eof1089; +case 1089: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82052,17 +83286,17 @@ case 1075: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1075; - case 32: goto st1075; - case 40: goto tr3149; - case 41: goto tr3150; - case 2058: goto tr3151; - case 2107: goto tr3152; + case 9: goto st1089; + case 32: goto st1089; + case 40: goto tr3182; + case 41: goto tr3183; + case 2058: goto tr3184; + case 2107: goto tr3185; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3154; - goto tr3153; -tr3154: + goto tr3187; + goto tr3186; +tr3187: { s->number64 = 0; } @@ -82077,11 +83311,11 @@ tr3154: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1076; -tr3158: + goto st1090; +tr3191: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -82093,14 +83327,14 @@ tr3158: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1076; -st1076: + goto st1090; +st1090: if ( ++p == pe ) - goto _test_eof1076; -case 1076: + goto _test_eof1090; +case 1090: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82114,40 +83348,40 @@ case 1076: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3155; - case 32: goto tr3155; - case 40: goto tr3156; - case 41: goto tr3157; - case 2058: goto tr3159; - case 2107: goto tr3160; + case 9: goto tr3188; + case 32: goto tr3188; + case 40: goto tr3189; + case 41: goto tr3190; + case 2058: goto tr3192; + case 2107: goto tr3193; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3158; - goto tr3153; -tr3162: + goto tr3191; + goto tr3186; +tr3195: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1077; -tr3163: + goto st1091; +tr3196: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1077; -tr3165: + goto st1091; +tr3198: { s->line_counter++; } - goto st1077; -tr3199: + goto st1091; +tr3232: { s->buffer[s->buffer_length++] = 0; @@ -82157,79 +83391,79 @@ tr3199: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1077; goto _out;} + {p++; cs = 1091; goto _out;} } } } { s->line_counter++; } - goto st1077; -tr3155: + goto st1091; +tr3188: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1077; -tr3156: + goto st1091; +tr3189: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1077; -tr3157: + goto st1091; +tr3190: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1077; -tr3159: + goto st1091; +tr3192: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1077; -st1077: + goto st1091; +st1091: if ( ++p == pe ) - goto _test_eof1077; -case 1077: + goto _test_eof1091; +case 1091: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82243,19 +83477,19 @@ case 1077: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1077; - case 32: goto st1077; - case 40: goto tr3162; - case 41: goto tr3163; - case 46: goto st1078; - case 2058: goto tr3165; - case 2107: goto tr3166; + case 9: goto st1091; + case 32: goto st1091; + case 40: goto tr3195; + case 41: goto tr3196; + case 46: goto st1092; + case 2058: goto tr3198; + case 2107: goto tr3199; } - goto tr3138; -st1078: + goto tr3171; +st1092: if ( ++p == pe ) - goto _test_eof1078; -case 1078: + goto _test_eof1092; +case 1092: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -82313,66 +83547,66 @@ case 1078: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 7177: goto st1079; - case 7200: goto st1079; - case 7208: goto tr3169; - case 7209: goto tr3170; - case 7433: goto st1082; - case 7456: goto st1082; - case 7464: goto tr3172; - case 7465: goto tr3173; - case 7689: goto st1084; - case 7712: goto st1084; - case 7720: goto tr3175; - case 7721: goto tr3176; - case 10506: goto tr3177; - case 10555: goto tr3177; - case 10762: goto tr3177; - case 10811: goto tr3177; - case 11274: goto tr3178; - case 11323: goto tr3179; - case 11530: goto tr3177; - case 11579: goto tr3177; - case 11786: goto tr3180; - case 11835: goto tr3181; - case 12298: goto tr3182; - case 12347: goto tr3183; - case 12554: goto tr3177; - case 12603: goto tr3177; - case 12810: goto tr3184; - case 12859: goto tr3185; - case 13322: goto tr3186; - case 13371: goto tr3187; - case 13578: goto tr3177; - case 13627: goto tr3177; - case 13834: goto tr3188; - case 13883: goto tr3189; - } - goto tr3167; -tr3169: + case 7177: goto st1093; + case 7200: goto st1093; + case 7208: goto tr3202; + case 7209: goto tr3203; + case 7433: goto st1096; + case 7456: goto st1096; + case 7464: goto tr3205; + case 7465: goto tr3206; + case 7689: goto st1098; + case 7712: goto st1098; + case 7720: goto tr3208; + case 7721: goto tr3209; + case 10506: goto tr3210; + case 10555: goto tr3210; + case 10762: goto tr3210; + case 10811: goto tr3210; + case 11274: goto tr3211; + case 11323: goto tr3212; + case 11530: goto tr3210; + case 11579: goto tr3210; + case 11786: goto tr3213; + case 11835: goto tr3214; + case 12298: goto tr3215; + case 12347: goto tr3216; + case 12554: goto tr3210; + case 12603: goto tr3210; + case 12810: goto tr3217; + case 12859: goto tr3218; + case 13322: goto tr3219; + case 13371: goto tr3220; + case 13578: goto tr3210; + case 13627: goto tr3210; + case 13834: goto tr3221; + case 13883: goto tr3222; + } + goto tr3200; +tr3202: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1079; -tr3170: + goto st1093; +tr3203: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1079; -tr3178: + goto st1093; +tr3211: { s->line_counter++; } - goto st1079; -tr3193: + goto st1093; +tr3226: { s->buffer[s->buffer_length++] = 0; @@ -82382,100 +83616,100 @@ tr3193: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1079; goto _out;} + {p++; cs = 1093; goto _out;} } } } { s->line_counter++; } - goto st1079; -tr3223: + goto st1093; +tr3256: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1079; -tr3268: + goto st1093; +tr3301: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1079; -tr3312: + goto st1093; +tr3345: { rdata_tail += s->dname_tmp_length; } - goto st1079; -tr3313: + goto st1093; +tr3346: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1079; -tr3314: + goto st1093; +tr3347: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1079; -tr3322: + goto st1093; +tr3355: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1079; -tr3224: + goto st1093; +tr3257: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -82483,24 +83717,24 @@ tr3224: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1079; -tr3225: + goto st1093; +tr3258: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -82508,24 +83742,24 @@ tr3225: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1079; -tr3233: + goto st1093; +tr3266: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -82533,20 +83767,20 @@ tr3233: { s->line_counter++; } - goto st1079; -tr3269: + goto st1093; +tr3302: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -82554,24 +83788,24 @@ tr3269: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1079; -tr3270: + goto st1093; +tr3303: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -82579,24 +83813,24 @@ tr3270: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1079; -tr3278: + goto st1093; +tr3311: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -82604,11 +83838,11 @@ tr3278: { s->line_counter++; } - goto st1079; -st1079: + goto st1093; +st1093: if ( ++p == pe ) - goto _test_eof1079; -case 1079: + goto _test_eof1093; +case 1093: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -82680,30 +83914,30 @@ case 1079: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4105: goto st1079; - case 4128: goto st1079; - case 4136: goto tr3169; - case 4137: goto tr3170; - case 4139: goto tr3191; - case 5130: goto tr3178; - case 5179: goto tr3179; + case 4105: goto st1093; + case 4128: goto st1093; + case 4136: goto tr3202; + case 4137: goto tr3203; + case 4139: goto tr3224; + case 5130: goto tr3211; + case 5179: goto tr3212; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3191; + goto tr3224; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3191; + goto tr3224; } else - goto tr3191; - goto tr3190; -tr3191: - { p--; {stack[top++] = 1080;goto st378;} } - goto st1080; -st1080: + goto tr3224; + goto tr3223; +tr3224: + { p--; {stack[top++] = 1094;goto st381;} } + goto st1094; +st1094: if ( ++p == pe ) - goto _test_eof1080; -case 1080: + goto _test_eof1094; +case 1094: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82717,28 +83951,28 @@ case 1080: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3177; - case 2619: goto tr3177; + case 2570: goto tr3210; + case 2619: goto tr3210; } - goto tr3190; -tr3177: + goto tr3223; +tr3210: { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr3232: + goto st1554; +tr3265: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -82746,28 +83980,28 @@ tr3232: { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr3321: + goto st1554; +tr3354: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr3277: + goto st1554; +tr3310: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -82775,45 +84009,45 @@ tr3277: { p--; {cs = stack[--top];goto _again;} } - goto st1514; -st1514: + goto st1554; +st1554: if ( ++p == pe ) - goto _test_eof1514; -case 1514: + goto _test_eof1554; +case 1554: goto st0; -tr3179: +tr3212: { s->buffer_length = 0; } - goto st1081; -tr3192: + goto st1095; +tr3225: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1081; -tr3323: + goto st1095; +tr3356: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1081; -tr3234: + goto st1095; +tr3267: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -82821,20 +84055,20 @@ tr3234: { s->buffer_length = 0; } - goto st1081; -tr3279: + goto st1095; +tr3312: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -82842,11 +84076,11 @@ tr3279: { s->buffer_length = 0; } - goto st1081; -st1081: + goto st1095; +st1095: if ( ++p == pe ) - goto _test_eof1081; -case 1081: + goto _test_eof1095; +case 1095: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82872,34 +84106,34 @@ case 1081: s->number64 != 0 ) _widec += 512; } if ( _widec == 5130 ) - goto tr3193; + goto tr3226; if ( 4992 <= _widec && _widec <= 5247 ) - goto tr3192; - goto tr3190; -tr3172: + goto tr3225; + goto tr3223; +tr3205: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1082; -tr3173: + goto st1096; +tr3206: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1082; -tr3182: + goto st1096; +tr3215: { s->line_counter++; } - goto st1082; -tr3195: + goto st1096; +tr3228: { s->buffer[s->buffer_length++] = 0; @@ -82909,100 +84143,100 @@ tr3195: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1082; goto _out;} + {p++; cs = 1096; goto _out;} } } } { s->line_counter++; } - goto st1082; -tr3226: + goto st1096; +tr3259: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1082; -tr3271: + goto st1096; +tr3304: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1082; -tr3315: + goto st1096; +tr3348: { rdata_tail += s->dname_tmp_length; } - goto st1082; -tr3316: + goto st1096; +tr3349: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1082; -tr3317: + goto st1096; +tr3350: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1082; -tr3326: + goto st1096; +tr3359: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1082; -tr3227: + goto st1096; +tr3260: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -83010,24 +84244,24 @@ tr3227: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1082; -tr3228: + goto st1096; +tr3261: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -83035,24 +84269,24 @@ tr3228: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1082; -tr3237: + goto st1096; +tr3270: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -83060,20 +84294,20 @@ tr3237: { s->line_counter++; } - goto st1082; -tr3272: + goto st1096; +tr3305: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -83081,24 +84315,24 @@ tr3272: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1082; -tr3273: + goto st1096; +tr3306: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -83106,24 +84340,24 @@ tr3273: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1082; -tr3282: + goto st1096; +tr3315: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -83131,11 +84365,11 @@ tr3282: { s->line_counter++; } - goto st1082; -st1082: + goto st1096; +st1096: if ( ++p == pe ) - goto _test_eof1082; -case 1082: + goto _test_eof1096; +case 1096: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -83181,55 +84415,55 @@ case 1082: s->number64 == 0 ) _widec += 256; } switch( _widec ) { - case 5641: goto st1082; - case 5664: goto st1082; - case 5672: goto tr3172; - case 5673: goto tr3173; - case 14602: goto tr3177; - case 14651: goto tr3177; - case 14858: goto tr3177; - case 14907: goto tr3177; - case 15370: goto tr3182; - case 15419: goto tr3183; - case 15626: goto tr3177; - case 15675: goto tr3177; - case 15882: goto tr3184; - case 15931: goto tr3185; - } - goto tr3190; -tr3183: + case 5641: goto st1096; + case 5664: goto st1096; + case 5672: goto tr3205; + case 5673: goto tr3206; + case 14602: goto tr3210; + case 14651: goto tr3210; + case 14858: goto tr3210; + case 14907: goto tr3210; + case 15370: goto tr3215; + case 15419: goto tr3216; + case 15626: goto tr3210; + case 15675: goto tr3210; + case 15882: goto tr3217; + case 15931: goto tr3218; + } + goto tr3223; +tr3216: { s->buffer_length = 0; } - goto st1083; -tr3194: + goto st1097; +tr3227: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1083; -tr3327: + goto st1097; +tr3360: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1083; -tr3238: + goto st1097; +tr3271: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -83237,20 +84471,20 @@ tr3238: { s->buffer_length = 0; } - goto st1083; -tr3283: + goto st1097; +tr3316: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -83258,11 +84492,11 @@ tr3283: { s->buffer_length = 0; } - goto st1083; -st1083: + goto st1097; +st1097: if ( ++p == pe ) - goto _test_eof1083; -case 1083: + goto _test_eof1097; +case 1097: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -83288,31 +84522,31 @@ case 1083: s->number64 == 0 ) _widec += 512; } if ( _widec == 6666 ) - goto tr3195; + goto tr3228; if ( 6528 <= _widec && _widec <= 6783 ) - goto tr3194; - goto tr3190; -tr3184: + goto tr3227; + goto tr3223; +tr3217: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr3239: + goto st1555; +tr3272: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -83323,20 +84557,20 @@ tr3239: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr3284: + goto st1555; +tr3317: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -83347,8 +84581,8 @@ tr3284: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr3328: + goto st1555; +tr3361: { rdata_tail += s->dname_tmp_length; } @@ -83358,11 +84592,11 @@ tr3328: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -st1515: + goto st1555; +st1555: if ( ++p == pe ) - goto _test_eof1515; -case 1515: + goto _test_eof1555; +case 1555: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -83408,43 +84642,43 @@ case 1515: s->number64 == 0 ) _widec += 256; } switch( _widec ) { - case 5641: goto st1082; - case 5664: goto st1082; - case 5672: goto tr3172; - case 5673: goto tr3173; - case 14602: goto tr3177; - case 14651: goto tr3177; - case 14858: goto tr3177; - case 14907: goto tr3177; - case 15370: goto tr3182; - case 15419: goto tr3183; - case 15626: goto tr3177; - case 15675: goto tr3177; - case 15882: goto tr3184; - case 15931: goto tr3185; - } - goto tr3190; -tr3185: + case 5641: goto st1096; + case 5664: goto st1096; + case 5672: goto tr3205; + case 5673: goto tr3206; + case 14602: goto tr3210; + case 14651: goto tr3210; + case 14858: goto tr3210; + case 14907: goto tr3210; + case 15370: goto tr3215; + case 15419: goto tr3216; + case 15626: goto tr3210; + case 15675: goto tr3210; + case 15882: goto tr3217; + case 15931: goto tr3218; + } + goto tr3223; +tr3218: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr3240: + goto st1556; +tr3273: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -83455,20 +84689,20 @@ tr3240: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr3285: + goto st1556; +tr3318: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -83479,8 +84713,8 @@ tr3285: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr3329: + goto st1556; +tr3362: { rdata_tail += s->dname_tmp_length; } @@ -83490,11 +84724,11 @@ tr3329: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -st1516: + goto st1556; +st1556: if ( ++p == pe ) - goto _test_eof1516; -case 1516: + goto _test_eof1556; +case 1556: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -83520,34 +84754,34 @@ case 1516: s->number64 == 0 ) _widec += 512; } if ( _widec == 6666 ) - goto tr3195; + goto tr3228; if ( 6528 <= _widec && _widec <= 6783 ) - goto tr3194; - goto tr3190; -tr3175: + goto tr3227; + goto tr3223; +tr3208: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1084; -tr3176: + goto st1098; +tr3209: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1084; -tr3186: + goto st1098; +tr3219: { s->line_counter++; } - goto st1084; -tr3197: + goto st1098; +tr3230: { s->buffer[s->buffer_length++] = 0; @@ -83557,100 +84791,100 @@ tr3197: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1084; goto _out;} + {p++; cs = 1098; goto _out;} } } } { s->line_counter++; } - goto st1084; -tr3229: + goto st1098; +tr3262: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1084; -tr3274: + goto st1098; +tr3307: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1084; -tr3318: + goto st1098; +tr3351: { rdata_tail += s->dname_tmp_length; } - goto st1084; -tr3319: + goto st1098; +tr3352: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1084; -tr3320: + goto st1098; +tr3353: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1084; -tr3330: + goto st1098; +tr3363: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1084; -tr3230: + goto st1098; +tr3263: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -83658,24 +84892,24 @@ tr3230: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1084; -tr3231: + goto st1098; +tr3264: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -83683,24 +84917,24 @@ tr3231: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1084; -tr3241: + goto st1098; +tr3274: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -83708,20 +84942,20 @@ tr3241: { s->line_counter++; } - goto st1084; -tr3275: + goto st1098; +tr3308: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -83729,24 +84963,24 @@ tr3275: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1084; -tr3276: + goto st1098; +tr3309: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -83754,24 +84988,24 @@ tr3276: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1084; -tr3286: + goto st1098; +tr3319: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -83779,11 +85013,11 @@ tr3286: { s->line_counter++; } - goto st1084; -st1084: + goto st1098; +st1098: if ( ++p == pe ) - goto _test_eof1084; -case 1084: + goto _test_eof1098; +case 1098: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -83871,72 +85105,72 @@ case 1084: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4139: goto tr3191; - case 7177: goto st1079; - case 7200: goto st1079; - case 7208: goto tr3169; - case 7209: goto tr3170; - case 7433: goto st1082; - case 7456: goto st1082; - case 7464: goto tr3172; - case 7465: goto tr3173; - case 7689: goto st1084; - case 7712: goto st1084; - case 7720: goto tr3175; - case 7721: goto tr3176; - case 10506: goto tr3177; - case 10555: goto tr3177; - case 10762: goto tr3177; - case 10811: goto tr3177; - case 11274: goto tr3178; - case 11323: goto tr3179; - case 11530: goto tr3177; - case 11579: goto tr3177; - case 11786: goto tr3180; - case 11835: goto tr3181; - case 12298: goto tr3182; - case 12347: goto tr3183; - case 12554: goto tr3177; - case 12603: goto tr3177; - case 12810: goto tr3184; - case 12859: goto tr3185; - case 13322: goto tr3186; - case 13371: goto tr3187; - case 13578: goto tr3177; - case 13627: goto tr3177; - case 13834: goto tr3188; - case 13883: goto tr3189; + case 4139: goto tr3224; + case 7177: goto st1093; + case 7200: goto st1093; + case 7208: goto tr3202; + case 7209: goto tr3203; + case 7433: goto st1096; + case 7456: goto st1096; + case 7464: goto tr3205; + case 7465: goto tr3206; + case 7689: goto st1098; + case 7712: goto st1098; + case 7720: goto tr3208; + case 7721: goto tr3209; + case 10506: goto tr3210; + case 10555: goto tr3210; + case 10762: goto tr3210; + case 10811: goto tr3210; + case 11274: goto tr3211; + case 11323: goto tr3212; + case 11530: goto tr3210; + case 11579: goto tr3210; + case 11786: goto tr3213; + case 11835: goto tr3214; + case 12298: goto tr3215; + case 12347: goto tr3216; + case 12554: goto tr3210; + case 12603: goto tr3210; + case 12810: goto tr3217; + case 12859: goto tr3218; + case 13322: goto tr3219; + case 13371: goto tr3220; + case 13578: goto tr3210; + case 13627: goto tr3210; + case 13834: goto tr3221; + case 13883: goto tr3222; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3191; + goto tr3224; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3191; + goto tr3224; } else - goto tr3191; - goto tr3190; -tr3180: + goto tr3224; + goto tr3223; +tr3213: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr3235: + goto st1557; +tr3268: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -83947,20 +85181,20 @@ tr3235: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr3280: + goto st1557; +tr3313: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -83971,8 +85205,8 @@ tr3280: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr3324: + goto st1557; +tr3357: { rdata_tail += s->dname_tmp_length; } @@ -83982,11 +85216,11 @@ tr3324: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -st1517: + goto st1557; +st1557: if ( ++p == pe ) - goto _test_eof1517; -case 1517: + goto _test_eof1557; +case 1557: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -84058,44 +85292,44 @@ case 1517: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4105: goto st1079; - case 4128: goto st1079; - case 4136: goto tr3169; - case 4137: goto tr3170; - case 4139: goto tr3191; - case 5130: goto tr3178; - case 5179: goto tr3179; + case 4105: goto st1093; + case 4128: goto st1093; + case 4136: goto tr3202; + case 4137: goto tr3203; + case 4139: goto tr3224; + case 5130: goto tr3211; + case 5179: goto tr3212; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3191; + goto tr3224; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3191; + goto tr3224; } else - goto tr3191; - goto tr3190; -tr3181: + goto tr3224; + goto tr3223; +tr3214: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1518; -tr3236: + goto st1558; +tr3269: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -84106,20 +85340,20 @@ tr3236: { p--; {cs = stack[--top];goto _again;} } - goto st1518; -tr3281: + goto st1558; +tr3314: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -84130,8 +85364,8 @@ tr3281: { p--; {cs = stack[--top];goto _again;} } - goto st1518; -tr3325: + goto st1558; +tr3358: { rdata_tail += s->dname_tmp_length; } @@ -84141,11 +85375,11 @@ tr3325: { p--; {cs = stack[--top];goto _again;} } - goto st1518; -st1518: + goto st1558; +st1558: if ( ++p == pe ) - goto _test_eof1518; -case 1518: + goto _test_eof1558; +case 1558: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84171,43 +85405,43 @@ case 1518: s->number64 != 0 ) _widec += 512; } if ( _widec == 5130 ) - goto tr3193; + goto tr3226; if ( 4992 <= _widec && _widec <= 5247 ) - goto tr3192; - goto tr3190; -tr3187: + goto tr3225; + goto tr3223; +tr3220: { s->buffer_length = 0; } - goto st1085; -tr3196: + goto st1099; +tr3229: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1085; -tr3331: + goto st1099; +tr3364: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1085; -tr3242: + goto st1099; +tr3275: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -84215,20 +85449,20 @@ tr3242: { s->buffer_length = 0; } - goto st1085; -tr3287: + goto st1099; +tr3320: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -84236,11 +85470,11 @@ tr3287: { s->buffer_length = 0; } - goto st1085; -st1085: + goto st1099; +st1099: if ( ++p == pe ) - goto _test_eof1085; -case 1085: + goto _test_eof1099; +case 1099: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84272,40 +85506,40 @@ case 1085: s->number64 == 0 ) _widec += 1024; } switch( _widec ) { - case 8714: goto tr3193; - case 9226: goto tr3195; - case 9738: goto tr3197; + case 8714: goto tr3226; + case 9226: goto tr3228; + case 9738: goto tr3230; } if ( _widec < 9088 ) { if ( 8576 <= _widec && _widec <= 8831 ) - goto tr3192; + goto tr3225; } else if ( _widec > 9343 ) { if ( 9600 <= _widec && _widec <= 9855 ) - goto tr3196; + goto tr3229; } else - goto tr3194; - goto tr3190; -tr3188: + goto tr3227; + goto tr3223; +tr3221: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1519; -tr3243: + goto st1559; +tr3276: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -84316,20 +85550,20 @@ tr3243: { p--; {cs = stack[--top];goto _again;} } - goto st1519; -tr3288: + goto st1559; +tr3321: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -84340,8 +85574,8 @@ tr3288: { p--; {cs = stack[--top];goto _again;} } - goto st1519; -tr3332: + goto st1559; +tr3365: { rdata_tail += s->dname_tmp_length; } @@ -84351,11 +85585,11 @@ tr3332: { p--; {cs = stack[--top];goto _again;} } - goto st1519; -st1519: + goto st1559; +st1559: if ( ++p == pe ) - goto _test_eof1519; -case 1519: + goto _test_eof1559; +case 1559: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -84443,72 +85677,72 @@ case 1519: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4139: goto tr3191; - case 7177: goto st1079; - case 7200: goto st1079; - case 7208: goto tr3169; - case 7209: goto tr3170; - case 7433: goto st1082; - case 7456: goto st1082; - case 7464: goto tr3172; - case 7465: goto tr3173; - case 7689: goto st1084; - case 7712: goto st1084; - case 7720: goto tr3175; - case 7721: goto tr3176; - case 10506: goto tr3177; - case 10555: goto tr3177; - case 10762: goto tr3177; - case 10811: goto tr3177; - case 11274: goto tr3178; - case 11323: goto tr3179; - case 11530: goto tr3177; - case 11579: goto tr3177; - case 11786: goto tr3180; - case 11835: goto tr3181; - case 12298: goto tr3182; - case 12347: goto tr3183; - case 12554: goto tr3177; - case 12603: goto tr3177; - case 12810: goto tr3184; - case 12859: goto tr3185; - case 13322: goto tr3186; - case 13371: goto tr3187; - case 13578: goto tr3177; - case 13627: goto tr3177; - case 13834: goto tr3188; - case 13883: goto tr3189; + case 4139: goto tr3224; + case 7177: goto st1093; + case 7200: goto st1093; + case 7208: goto tr3202; + case 7209: goto tr3203; + case 7433: goto st1096; + case 7456: goto st1096; + case 7464: goto tr3205; + case 7465: goto tr3206; + case 7689: goto st1098; + case 7712: goto st1098; + case 7720: goto tr3208; + case 7721: goto tr3209; + case 10506: goto tr3210; + case 10555: goto tr3210; + case 10762: goto tr3210; + case 10811: goto tr3210; + case 11274: goto tr3211; + case 11323: goto tr3212; + case 11530: goto tr3210; + case 11579: goto tr3210; + case 11786: goto tr3213; + case 11835: goto tr3214; + case 12298: goto tr3215; + case 12347: goto tr3216; + case 12554: goto tr3210; + case 12603: goto tr3210; + case 12810: goto tr3217; + case 12859: goto tr3218; + case 13322: goto tr3219; + case 13371: goto tr3220; + case 13578: goto tr3210; + case 13627: goto tr3210; + case 13834: goto tr3221; + case 13883: goto tr3222; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3191; + goto tr3224; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3191; + goto tr3224; } else - goto tr3191; - goto tr3190; -tr3189: + goto tr3224; + goto tr3223; +tr3222: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1520; -tr3244: + goto st1560; +tr3277: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -84519,20 +85753,20 @@ tr3244: { p--; {cs = stack[--top];goto _again;} } - goto st1520; -tr3289: + goto st1560; +tr3322: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -84543,8 +85777,8 @@ tr3289: { p--; {cs = stack[--top];goto _again;} } - goto st1520; -tr3333: + goto st1560; +tr3366: { rdata_tail += s->dname_tmp_length; } @@ -84554,11 +85788,11 @@ tr3333: { p--; {cs = stack[--top];goto _again;} } - goto st1520; -st1520: + goto st1560; +st1560: if ( ++p == pe ) - goto _test_eof1520; -case 1520: + goto _test_eof1560; +case 1560: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84590,49 +85824,49 @@ case 1520: s->number64 == 0 ) _widec += 1024; } switch( _widec ) { - case 8714: goto tr3193; - case 9226: goto tr3195; - case 9738: goto tr3197; + case 8714: goto tr3226; + case 9226: goto tr3228; + case 9738: goto tr3230; } if ( _widec < 9088 ) { if ( 8576 <= _widec && _widec <= 8831 ) - goto tr3192; + goto tr3225; } else if ( _widec > 9343 ) { if ( 9600 <= _widec && _widec <= 9855 ) - goto tr3196; + goto tr3229; } else - goto tr3194; - goto tr3190; -tr3166: + goto tr3227; + goto tr3223; +tr3199: { s->buffer_length = 0; } - goto st1086; -tr3198: + goto st1100; +tr3231: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1086; -tr3160: + goto st1100; +tr3193: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1086; -st1086: + goto st1100; +st1100: if ( ++p == pe ) - goto _test_eof1086; -case 1086: + goto _test_eof1100; +case 1100: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84652,26 +85886,26 @@ case 1086: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3199; + goto tr3232; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3198; - goto tr3138; -tr3152: + goto tr3231; + goto tr3171; +tr3185: { s->buffer_length = 0; } - goto st1087; -tr3200: + goto st1101; +tr3233: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1087; -st1087: + goto st1101; +st1101: if ( ++p == pe ) - goto _test_eof1087; -case 1087: + goto _test_eof1101; +case 1101: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84691,19 +85925,19 @@ case 1087: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3201; + goto tr3234; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3200; - goto tr3138; -tr3143: + goto tr3233; + goto tr3171; +tr3176: { *(rdata_tail++) = 1; } - goto st1088; -st1088: + goto st1102; +st1102: if ( ++p == pe ) - goto _test_eof1088; -case 1088: + goto _test_eof1102; +case 1102: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84717,38 +85951,38 @@ case 1088: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1089; - case 32: goto st1089; - case 40: goto tr3203; - case 41: goto tr3204; - case 2058: goto tr3205; - case 2107: goto tr3206; + case 9: goto st1103; + case 32: goto st1103; + case 40: goto tr3236; + case 41: goto tr3237; + case 2058: goto tr3238; + case 2107: goto tr3239; } - goto tr3138; -tr3203: + goto tr3171; +tr3236: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1089; -tr3204: + goto st1103; +tr3237: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1089; -tr3205: + goto st1103; +tr3238: { s->line_counter++; } - goto st1089; -tr3248: + goto st1103; +tr3281: { s->buffer[s->buffer_length++] = 0; @@ -84758,18 +85992,18 @@ tr3248: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1089; goto _out;} + {p++; cs = 1103; goto _out;} } } } { s->line_counter++; } - goto st1089; -st1089: + goto st1103; +st1103: if ( ++p == pe ) - goto _test_eof1089; -case 1089: + goto _test_eof1103; +case 1103: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84783,17 +86017,17 @@ case 1089: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1089; - case 32: goto st1089; - case 40: goto tr3203; - case 41: goto tr3204; - case 2058: goto tr3205; - case 2107: goto tr3206; + case 9: goto st1103; + case 32: goto st1103; + case 40: goto tr3236; + case 41: goto tr3237; + case 2058: goto tr3238; + case 2107: goto tr3239; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3207; - goto tr3153; -tr3207: + goto tr3240; + goto tr3186; +tr3240: { s->number64 = 0; } @@ -84808,11 +86042,11 @@ tr3207: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1090; -tr3211: + goto st1104; +tr3244: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -84824,14 +86058,14 @@ tr3211: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1090; -st1090: + goto st1104; +st1104: if ( ++p == pe ) - goto _test_eof1090; -case 1090: + goto _test_eof1104; +case 1104: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84845,40 +86079,40 @@ case 1090: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3208; - case 32: goto tr3208; - case 40: goto tr3209; - case 41: goto tr3210; - case 2058: goto tr3212; - case 2107: goto tr3213; + case 9: goto tr3241; + case 32: goto tr3241; + case 40: goto tr3242; + case 41: goto tr3243; + case 2058: goto tr3245; + case 2107: goto tr3246; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3211; - goto tr3153; -tr3216: + goto tr3244; + goto tr3186; +tr3249: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1091; -tr3217: + goto st1105; +tr3250: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1091; -tr3219: + goto st1105; +tr3252: { s->line_counter++; } - goto st1091; -tr3246: + goto st1105; +tr3279: { s->buffer[s->buffer_length++] = 0; @@ -84888,79 +86122,79 @@ tr3246: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1091; goto _out;} + {p++; cs = 1105; goto _out;} } } } { s->line_counter++; } - goto st1091; -tr3208: + goto st1105; +tr3241: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1091; -tr3209: + goto st1105; +tr3242: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1091; -tr3210: + goto st1105; +tr3243: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1091; -tr3212: + goto st1105; +tr3245: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1091; -st1091: + goto st1105; +st1105: if ( ++p == pe ) - goto _test_eof1091; -case 1091: + goto _test_eof1105; +case 1105: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84974,28 +86208,28 @@ case 1091: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1091; - case 32: goto st1091; - case 40: goto tr3216; - case 41: goto tr3217; - case 46: goto tr3218; - case 2058: goto tr3219; - case 2107: goto tr3220; + case 9: goto st1105; + case 32: goto st1105; + case 40: goto tr3249; + case 41: goto tr3250; + case 46: goto tr3251; + case 2058: goto tr3252; + case 2107: goto tr3253; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3218; - goto tr3214; -tr3222: + goto tr3251; + goto tr3247; +tr3255: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1092; -tr3218: + goto st1106; +tr3251: { s->buffer_length = 0; } @@ -85004,14 +86238,14 @@ tr3218: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1092; -st1092: + goto st1106; +st1106: if ( ++p == pe ) - goto _test_eof1092; -case 1092: + goto _test_eof1106; +case 1106: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -85069,75 +86303,75 @@ case 1092: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 46: goto tr3222; - case 7177: goto tr3223; - case 7200: goto tr3223; - case 7208: goto tr3224; - case 7209: goto tr3225; - case 7433: goto tr3226; - case 7456: goto tr3226; - case 7464: goto tr3227; - case 7465: goto tr3228; - case 7689: goto tr3229; - case 7712: goto tr3229; - case 7720: goto tr3230; - case 7721: goto tr3231; - case 10506: goto tr3232; - case 10555: goto tr3232; - case 10762: goto tr3232; - case 10811: goto tr3232; - case 11274: goto tr3233; - case 11323: goto tr3234; - case 11530: goto tr3232; - case 11579: goto tr3232; - case 11786: goto tr3235; - case 11835: goto tr3236; - case 12298: goto tr3237; - case 12347: goto tr3238; - case 12554: goto tr3232; - case 12603: goto tr3232; - case 12810: goto tr3239; - case 12859: goto tr3240; - case 13322: goto tr3241; - case 13371: goto tr3242; - case 13578: goto tr3232; - case 13627: goto tr3232; - case 13834: goto tr3243; - case 13883: goto tr3244; + case 46: goto tr3255; + case 7177: goto tr3256; + case 7200: goto tr3256; + case 7208: goto tr3257; + case 7209: goto tr3258; + case 7433: goto tr3259; + case 7456: goto tr3259; + case 7464: goto tr3260; + case 7465: goto tr3261; + case 7689: goto tr3262; + case 7712: goto tr3262; + case 7720: goto tr3263; + case 7721: goto tr3264; + case 10506: goto tr3265; + case 10555: goto tr3265; + case 10762: goto tr3265; + case 10811: goto tr3265; + case 11274: goto tr3266; + case 11323: goto tr3267; + case 11530: goto tr3265; + case 11579: goto tr3265; + case 11786: goto tr3268; + case 11835: goto tr3269; + case 12298: goto tr3270; + case 12347: goto tr3271; + case 12554: goto tr3265; + case 12603: goto tr3265; + case 12810: goto tr3272; + case 12859: goto tr3273; + case 13322: goto tr3274; + case 13371: goto tr3275; + case 13578: goto tr3265; + case 13627: goto tr3265; + case 13834: goto tr3276; + case 13883: goto tr3277; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3222; - goto tr3221; -tr3220: + goto tr3255; + goto tr3254; +tr3253: { s->buffer_length = 0; } - goto st1093; -tr3245: + goto st1107; +tr3278: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1093; -tr3213: + goto st1107; +tr3246: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1093; -st1093: + goto st1107; +st1107: if ( ++p == pe ) - goto _test_eof1093; -case 1093: + goto _test_eof1107; +case 1107: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85157,26 +86391,26 @@ case 1093: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3246; + goto tr3279; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3245; - goto tr3138; -tr3206: + goto tr3278; + goto tr3171; +tr3239: { s->buffer_length = 0; } - goto st1094; -tr3247: + goto st1108; +tr3280: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1094; -st1094: + goto st1108; +st1108: if ( ++p == pe ) - goto _test_eof1094; -case 1094: + goto _test_eof1108; +case 1108: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85196,19 +86430,19 @@ case 1094: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3248; + goto tr3281; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3247; - goto tr3138; -tr3144: + goto tr3280; + goto tr3171; +tr3177: { *(rdata_tail++) = 2; } - goto st1095; -st1095: + goto st1109; +st1109: if ( ++p == pe ) - goto _test_eof1095; -case 1095: + goto _test_eof1109; +case 1109: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85222,38 +86456,38 @@ case 1095: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1096; - case 32: goto st1096; - case 40: goto tr3250; - case 41: goto tr3251; - case 2058: goto tr3252; - case 2107: goto tr3253; + case 9: goto st1110; + case 32: goto st1110; + case 40: goto tr3283; + case 41: goto tr3284; + case 2058: goto tr3285; + case 2107: goto tr3286; } - goto tr3138; -tr3250: + goto tr3171; +tr3283: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1096; -tr3251: + goto st1110; +tr3284: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1096; -tr3252: + goto st1110; +tr3285: { s->line_counter++; } - goto st1096; -tr3293: + goto st1110; +tr3326: { s->buffer[s->buffer_length++] = 0; @@ -85263,18 +86497,18 @@ tr3293: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1096; goto _out;} + {p++; cs = 1110; goto _out;} } } } { s->line_counter++; } - goto st1096; -st1096: + goto st1110; +st1110: if ( ++p == pe ) - goto _test_eof1096; -case 1096: + goto _test_eof1110; +case 1110: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85288,17 +86522,17 @@ case 1096: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1096; - case 32: goto st1096; - case 40: goto tr3250; - case 41: goto tr3251; - case 2058: goto tr3252; - case 2107: goto tr3253; + case 9: goto st1110; + case 32: goto st1110; + case 40: goto tr3283; + case 41: goto tr3284; + case 2058: goto tr3285; + case 2107: goto tr3286; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3254; - goto tr3153; -tr3254: + goto tr3287; + goto tr3186; +tr3287: { s->number64 = 0; } @@ -85313,11 +86547,11 @@ tr3254: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1097; -tr3258: + goto st1111; +tr3291: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -85329,14 +86563,14 @@ tr3258: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1097; -st1097: + goto st1111; +st1111: if ( ++p == pe ) - goto _test_eof1097; -case 1097: + goto _test_eof1111; +case 1111: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85350,40 +86584,40 @@ case 1097: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3255; - case 32: goto tr3255; - case 40: goto tr3256; - case 41: goto tr3257; - case 2058: goto tr3259; - case 2107: goto tr3260; + case 9: goto tr3288; + case 32: goto tr3288; + case 40: goto tr3289; + case 41: goto tr3290; + case 2058: goto tr3292; + case 2107: goto tr3293; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3258; - goto tr3153; -tr3262: + goto tr3291; + goto tr3186; +tr3295: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1098; -tr3263: + goto st1112; +tr3296: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1098; -tr3265: + goto st1112; +tr3298: { s->line_counter++; } - goto st1098; -tr3291: + goto st1112; +tr3324: { s->buffer[s->buffer_length++] = 0; @@ -85393,79 +86627,79 @@ tr3291: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1098; goto _out;} + {p++; cs = 1112; goto _out;} } } } { s->line_counter++; } - goto st1098; -tr3255: + goto st1112; +tr3288: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1098; -tr3256: + goto st1112; +tr3289: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1098; -tr3257: + goto st1112; +tr3290: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1098; -tr3259: + goto st1112; +tr3292: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1098; -st1098: + goto st1112; +st1112: if ( ++p == pe ) - goto _test_eof1098; -case 1098: + goto _test_eof1112; +case 1112: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85479,34 +86713,34 @@ case 1098: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1098; - case 32: goto st1098; - case 40: goto tr3262; - case 41: goto tr3263; - case 46: goto tr3264; - case 2058: goto tr3265; - case 2107: goto tr3266; + case 9: goto st1112; + case 32: goto st1112; + case 40: goto tr3295; + case 41: goto tr3296; + case 46: goto tr3297; + case 2058: goto tr3298; + case 2107: goto tr3299; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 58 ) - goto tr3264; + goto tr3297; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3264; + goto tr3297; } else - goto tr3264; - goto tr3214; -tr3267: + goto tr3297; + goto tr3247; +tr3300: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1099; -tr3264: + goto st1113; +tr3297: { s->buffer_length = 0; } @@ -85515,14 +86749,14 @@ tr3264: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1099; -st1099: + goto st1113; +st1113: if ( ++p == pe ) - goto _test_eof1099; -case 1099: + goto _test_eof1113; +case 1113: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -85580,81 +86814,81 @@ case 1099: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 46: goto tr3267; - case 7177: goto tr3268; - case 7200: goto tr3268; - case 7208: goto tr3269; - case 7209: goto tr3270; - case 7433: goto tr3271; - case 7456: goto tr3271; - case 7464: goto tr3272; - case 7465: goto tr3273; - case 7689: goto tr3274; - case 7712: goto tr3274; - case 7720: goto tr3275; - case 7721: goto tr3276; - case 10506: goto tr3277; - case 10555: goto tr3277; - case 10762: goto tr3277; - case 10811: goto tr3277; - case 11274: goto tr3278; - case 11323: goto tr3279; - case 11530: goto tr3277; - case 11579: goto tr3277; - case 11786: goto tr3280; - case 11835: goto tr3281; - case 12298: goto tr3282; - case 12347: goto tr3283; - case 12554: goto tr3277; - case 12603: goto tr3277; - case 12810: goto tr3284; - case 12859: goto tr3285; - case 13322: goto tr3286; - case 13371: goto tr3287; - case 13578: goto tr3277; - case 13627: goto tr3277; - case 13834: goto tr3288; - case 13883: goto tr3289; + case 46: goto tr3300; + case 7177: goto tr3301; + case 7200: goto tr3301; + case 7208: goto tr3302; + case 7209: goto tr3303; + case 7433: goto tr3304; + case 7456: goto tr3304; + case 7464: goto tr3305; + case 7465: goto tr3306; + case 7689: goto tr3307; + case 7712: goto tr3307; + case 7720: goto tr3308; + case 7721: goto tr3309; + case 10506: goto tr3310; + case 10555: goto tr3310; + case 10762: goto tr3310; + case 10811: goto tr3310; + case 11274: goto tr3311; + case 11323: goto tr3312; + case 11530: goto tr3310; + case 11579: goto tr3310; + case 11786: goto tr3313; + case 11835: goto tr3314; + case 12298: goto tr3315; + case 12347: goto tr3316; + case 12554: goto tr3310; + case 12603: goto tr3310; + case 12810: goto tr3317; + case 12859: goto tr3318; + case 13322: goto tr3319; + case 13371: goto tr3320; + case 13578: goto tr3310; + case 13627: goto tr3310; + case 13834: goto tr3321; + case 13883: goto tr3322; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 58 ) - goto tr3267; + goto tr3300; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3267; + goto tr3300; } else - goto tr3267; - goto tr3221; -tr3266: + goto tr3300; + goto tr3254; +tr3299: { s->buffer_length = 0; } - goto st1100; -tr3290: + goto st1114; +tr3323: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1100; -tr3260: + goto st1114; +tr3293: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1100; -st1100: + goto st1114; +st1114: if ( ++p == pe ) - goto _test_eof1100; -case 1100: + goto _test_eof1114; +case 1114: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85674,26 +86908,26 @@ case 1100: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3291; + goto tr3324; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3290; - goto tr3138; -tr3253: + goto tr3323; + goto tr3171; +tr3286: { s->buffer_length = 0; } - goto st1101; -tr3292: + goto st1115; +tr3325: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1101; -st1101: + goto st1115; +st1115: if ( ++p == pe ) - goto _test_eof1101; -case 1101: + goto _test_eof1115; +case 1115: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85713,19 +86947,19 @@ case 1101: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3293; + goto tr3326; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3292; - goto tr3138; -tr3145: + goto tr3325; + goto tr3171; +tr3178: { *(rdata_tail++) = 3; } - goto st1102; -st1102: + goto st1116; +st1116: if ( ++p == pe ) - goto _test_eof1102; -case 1102: + goto _test_eof1116; +case 1116: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85739,38 +86973,38 @@ case 1102: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1103; - case 32: goto st1103; - case 40: goto tr3295; - case 41: goto tr3296; - case 2058: goto tr3297; - case 2107: goto tr3298; + case 9: goto st1117; + case 32: goto st1117; + case 40: goto tr3328; + case 41: goto tr3329; + case 2058: goto tr3330; + case 2107: goto tr3331; } - goto tr3138; -tr3295: + goto tr3171; +tr3328: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1103; -tr3296: + goto st1117; +tr3329: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1103; -tr3297: + goto st1117; +tr3330: { s->line_counter++; } - goto st1103; -tr3337: + goto st1117; +tr3370: { s->buffer[s->buffer_length++] = 0; @@ -85780,18 +87014,18 @@ tr3337: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1103; goto _out;} + {p++; cs = 1117; goto _out;} } } } { s->line_counter++; } - goto st1103; -st1103: + goto st1117; +st1117: if ( ++p == pe ) - goto _test_eof1103; -case 1103: + goto _test_eof1117; +case 1117: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85805,17 +87039,17 @@ case 1103: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1103; - case 32: goto st1103; - case 40: goto tr3295; - case 41: goto tr3296; - case 2058: goto tr3297; - case 2107: goto tr3298; + case 9: goto st1117; + case 32: goto st1117; + case 40: goto tr3328; + case 41: goto tr3329; + case 2058: goto tr3330; + case 2107: goto tr3331; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3299; - goto tr3153; -tr3299: + goto tr3332; + goto tr3186; +tr3332: { s->number64 = 0; } @@ -85830,11 +87064,11 @@ tr3299: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1104; -tr3303: + goto st1118; +tr3336: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -85846,14 +87080,14 @@ tr3303: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1104; -st1104: + goto st1118; +st1118: if ( ++p == pe ) - goto _test_eof1104; -case 1104: + goto _test_eof1118; +case 1118: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85867,40 +87101,40 @@ case 1104: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3300; - case 32: goto tr3300; - case 40: goto tr3301; - case 41: goto tr3302; - case 2058: goto tr3304; - case 2107: goto tr3305; + case 9: goto tr3333; + case 32: goto tr3333; + case 40: goto tr3334; + case 41: goto tr3335; + case 2058: goto tr3337; + case 2107: goto tr3338; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3303; - goto tr3153; -tr3307: + goto tr3336; + goto tr3186; +tr3340: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1105; -tr3308: + goto st1119; +tr3341: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1105; -tr3310: + goto st1119; +tr3343: { s->line_counter++; } - goto st1105; -tr3335: + goto st1119; +tr3368: { s->buffer[s->buffer_length++] = 0; @@ -85910,79 +87144,79 @@ tr3335: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1105; goto _out;} + {p++; cs = 1119; goto _out;} } } } { s->line_counter++; } - goto st1105; -tr3300: + goto st1119; +tr3333: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1105; -tr3301: + goto st1119; +tr3334: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1105; -tr3302: + goto st1119; +tr3335: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1105; -tr3304: + goto st1119; +tr3337: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1105; -st1105: + goto st1119; +st1119: if ( ++p == pe ) - goto _test_eof1105; -case 1105: + goto _test_eof1119; +case 1119: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85996,35 +87230,35 @@ case 1105: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1105; - case 32: goto st1105; - case 40: goto tr3307; - case 41: goto tr3308; - case 42: goto tr3309; - case 92: goto tr3309; - case 95: goto tr3309; - case 2058: goto tr3310; - case 2107: goto tr3311; + case 9: goto st1119; + case 32: goto st1119; + case 40: goto tr3340; + case 41: goto tr3341; + case 42: goto tr3342; + case 92: goto tr3342; + case 95: goto tr3342; + case 2058: goto tr3343; + case 2107: goto tr3344; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3309; + goto tr3342; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3309; + goto tr3342; } else - goto tr3309; - goto tr3138; -tr3309: + goto tr3342; + goto tr3171; +tr3342: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1106;goto st318;} } - goto st1106; -st1106: + { p--; {stack[top++] = 1120;goto st321;} } + goto st1120; +st1120: if ( ++p == pe ) - goto _test_eof1106; -case 1106: + goto _test_eof1120; +case 1120: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -86082,72 +87316,72 @@ case 1106: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 7177: goto tr3312; - case 7200: goto tr3312; - case 7208: goto tr3313; - case 7209: goto tr3314; - case 7433: goto tr3315; - case 7456: goto tr3315; - case 7464: goto tr3316; - case 7465: goto tr3317; - case 7689: goto tr3318; - case 7712: goto tr3318; - case 7720: goto tr3319; - case 7721: goto tr3320; - case 10506: goto tr3321; - case 10555: goto tr3321; - case 10762: goto tr3321; - case 10811: goto tr3321; - case 11274: goto tr3322; - case 11323: goto tr3323; - case 11530: goto tr3321; - case 11579: goto tr3321; - case 11786: goto tr3324; - case 11835: goto tr3325; - case 12298: goto tr3326; - case 12347: goto tr3327; - case 12554: goto tr3321; - case 12603: goto tr3321; - case 12810: goto tr3328; - case 12859: goto tr3329; - case 13322: goto tr3330; - case 13371: goto tr3331; - case 13578: goto tr3321; - case 13627: goto tr3321; - case 13834: goto tr3332; - case 13883: goto tr3333; - } - goto tr3167; -tr3311: + case 7177: goto tr3345; + case 7200: goto tr3345; + case 7208: goto tr3346; + case 7209: goto tr3347; + case 7433: goto tr3348; + case 7456: goto tr3348; + case 7464: goto tr3349; + case 7465: goto tr3350; + case 7689: goto tr3351; + case 7712: goto tr3351; + case 7720: goto tr3352; + case 7721: goto tr3353; + case 10506: goto tr3354; + case 10555: goto tr3354; + case 10762: goto tr3354; + case 10811: goto tr3354; + case 11274: goto tr3355; + case 11323: goto tr3356; + case 11530: goto tr3354; + case 11579: goto tr3354; + case 11786: goto tr3357; + case 11835: goto tr3358; + case 12298: goto tr3359; + case 12347: goto tr3360; + case 12554: goto tr3354; + case 12603: goto tr3354; + case 12810: goto tr3361; + case 12859: goto tr3362; + case 13322: goto tr3363; + case 13371: goto tr3364; + case 13578: goto tr3354; + case 13627: goto tr3354; + case 13834: goto tr3365; + case 13883: goto tr3366; + } + goto tr3200; +tr3344: { s->buffer_length = 0; } - goto st1107; -tr3334: + goto st1121; +tr3367: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1107; -tr3305: + goto st1121; +tr3338: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1107; -st1107: + goto st1121; +st1121: if ( ++p == pe ) - goto _test_eof1107; -case 1107: + goto _test_eof1121; +case 1121: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86167,26 +87401,26 @@ case 1107: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3335; + goto tr3368; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3334; - goto tr3138; -tr3298: + goto tr3367; + goto tr3171; +tr3331: { s->buffer_length = 0; } - goto st1108; -tr3336: + goto st1122; +tr3369: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1108; -st1108: + goto st1122; +st1122: if ( ++p == pe ) - goto _test_eof1108; -case 1108: + goto _test_eof1122; +case 1122: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86206,40 +87440,40 @@ case 1108: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3337; + goto tr3370; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3336; - goto tr3138; -tr3147: + goto tr3369; + goto tr3171; +tr3180: { s->buffer_length = 0; } - goto st1109; -tr3338: + goto st1123; +tr3371: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1109; -tr3137: + goto st1123; +tr3170: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1109; -st1109: + goto st1123; +st1123: if ( ++p == pe ) - goto _test_eof1109; -case 1109: + goto _test_eof1123; +case 1123: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86259,57 +87493,57 @@ case 1109: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3339; + goto tr3372; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3338; + goto tr3371; goto tr77; -st1110: +st1124: if ( ++p == pe ) - goto _test_eof1110; -case 1110: + goto _test_eof1124; +case 1124: switch( (*p) ) { - case 65: goto st1111; - case 67: goto st1145; - case 68: goto st1166; - case 69: goto st1180; - case 72: goto st1187; - case 73: goto st1196; - case 75: goto st1204; - case 76: goto st1208; - case 77: goto st1216; - case 78: goto st1222; - case 79: goto st1238; - case 80: goto st1248; - case 82: goto st1251; - case 83: goto st1258; - case 84: goto st1277; - case 85: goto st1287; - case 87: goto st1290; - case 90: goto st1296; - case 97: goto st1111; - case 99: goto st1145; - case 100: goto st1166; - case 101: goto st1180; - case 104: goto st1187; - case 105: goto st1196; - case 107: goto st1204; - case 108: goto st1208; - case 109: goto st1216; - case 110: goto st1222; - case 111: goto st1238; - case 112: goto st1248; - case 114: goto st1251; - case 115: goto st1258; - case 116: goto st1277; - case 117: goto st1287; - case 119: goto st1290; - case 122: goto st1296; - } - goto tr3340; -st1111: + case 65: goto st1125; + case 67: goto st1159; + case 68: goto st1180; + case 69: goto st1197; + case 72: goto st1204; + case 73: goto st1213; + case 75: goto st1221; + case 76: goto st1225; + case 77: goto st1233; + case 78: goto st1239; + case 79: goto st1255; + case 80: goto st1265; + case 82: goto st1268; + case 83: goto st1275; + case 84: goto st1294; + case 85: goto st1304; + case 87: goto st1307; + case 90: goto st1313; + case 97: goto st1125; + case 99: goto st1159; + case 100: goto st1180; + case 101: goto st1197; + case 104: goto st1204; + case 105: goto st1213; + case 107: goto st1221; + case 108: goto st1225; + case 109: goto st1233; + case 110: goto st1239; + case 111: goto st1255; + case 112: goto st1265; + case 114: goto st1268; + case 115: goto st1275; + case 116: goto st1294; + case 117: goto st1304; + case 119: goto st1307; + case 122: goto st1313; + } + goto tr3373; +st1125: if ( ++p == pe ) - goto _test_eof1111; -case 1111: + goto _test_eof1125; +case 1125: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86323,44 +87557,44 @@ case 1111: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3359; - case 32: goto tr3359; - case 40: goto tr3360; - case 41: goto tr3361; - case 65: goto st1136; - case 70: goto st1139; - case 80: goto st1143; - case 97: goto st1136; - case 102: goto st1139; - case 112: goto st1143; - case 2058: goto tr3365; - case 2107: goto tr3366; + case 9: goto tr3392; + case 32: goto tr3392; + case 40: goto tr3393; + case 41: goto tr3394; + case 65: goto st1150; + case 70: goto st1153; + case 80: goto st1157; + case 97: goto st1150; + case 102: goto st1153; + case 112: goto st1157; + case 2058: goto tr3398; + case 2107: goto tr3399; } - goto tr3340; -tr3368: + goto tr3373; +tr3401: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3369: + goto st1126; +tr3402: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3371: + goto st1126; +tr3404: { s->line_counter++; } - goto st1112; -tr3467: + goto st1126; +tr3500: { s->buffer[s->buffer_length++] = 0; @@ -86370,15 +87604,15 @@ tr3467: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1112; goto _out;} + {p++; cs = 1126; goto _out;} } } } { s->line_counter++; } - goto st1112; -tr3828: + goto st1126; +tr3869: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -86386,11 +87620,11 @@ tr3828: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1112; -tr3829: + goto st1126; +tr3870: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -86398,18 +87632,18 @@ tr3829: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3830: + goto st1126; +tr3871: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -86417,18 +87651,18 @@ tr3830: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3832: + goto st1126; +tr3873: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -86436,1438 +87670,1467 @@ tr3832: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1112; -tr3359: + goto st1126; +tr3392: { type_num(KNOT_RRTYPE_A, &rdata_tail); } - goto st1112; -tr3360: + goto st1126; +tr3393: { type_num(KNOT_RRTYPE_A, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3361: + goto st1126; +tr3394: { type_num(KNOT_RRTYPE_A, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3365: + goto st1126; +tr3398: { type_num(KNOT_RRTYPE_A, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3470: + goto st1126; +tr3503: { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } - goto st1112; -tr3471: + goto st1126; +tr3504: { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3472: + goto st1126; +tr3505: { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3473: + goto st1126; +tr3506: { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3478: + goto st1126; +tr3511: { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } - goto st1112; -tr3479: + goto st1126; +tr3512: { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3480: + goto st1126; +tr3513: { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3481: + goto st1126; +tr3514: { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3484: + goto st1126; +tr3517: { type_num(KNOT_RRTYPE_APL, &rdata_tail); } - goto st1112; -tr3485: + goto st1126; +tr3518: { type_num(KNOT_RRTYPE_APL, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3486: + goto st1126; +tr3519: { type_num(KNOT_RRTYPE_APL, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3487: + goto st1126; +tr3520: { type_num(KNOT_RRTYPE_APL, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3495: + goto st1126; +tr3528: { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } - goto st1112; -tr3496: + goto st1126; +tr3529: { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3497: + goto st1126; +tr3530: { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3498: + goto st1126; +tr3531: { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3506: + goto st1126; +tr3539: { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } - goto st1112; -tr3507: + goto st1126; +tr3540: { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3508: + goto st1126; +tr3541: { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3509: + goto st1126; +tr3542: { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3511: + goto st1126; +tr3544: { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } - goto st1112; -tr3512: + goto st1126; +tr3545: { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3513: + goto st1126; +tr3546: { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3514: + goto st1126; +tr3547: { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3518: + goto st1126; +tr3551: { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } - goto st1112; -tr3519: + goto st1126; +tr3552: { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3520: + goto st1126; +tr3553: { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3521: + goto st1126; +tr3554: { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3526: + goto st1126; +tr3559: { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } - goto st1112; -tr3527: + goto st1126; +tr3560: { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3528: + goto st1126; +tr3561: { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3529: + goto st1126; +tr3562: { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3534: + goto st1126; +tr3567: { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } - goto st1112; -tr3535: + goto st1126; +tr3568: { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3536: + goto st1126; +tr3569: { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3537: + goto st1126; +tr3570: { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3545: + goto st1126; +tr3578: { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } - goto st1112; -tr3546: + goto st1126; +tr3579: { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3547: + goto st1126; +tr3580: { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3548: + goto st1126; +tr3581: { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3554: + goto st1126; +tr3587: { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } - goto st1112; -tr3555: + goto st1126; +tr3588: { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3556: + goto st1126; +tr3589: { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3557: + goto st1126; +tr3590: { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3562: + goto st1126; +tr3595: { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } - goto st1112; -tr3563: + goto st1126; +tr3596: { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3564: + goto st1126; +tr3597: { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3565: + goto st1126; +tr3598: { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3567: + goto st1126; +tr3600: { type_num(KNOT_RRTYPE_DS, &rdata_tail); } - goto st1112; -tr3568: + goto st1126; +tr3601: { type_num(KNOT_RRTYPE_DS, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3569: + goto st1126; +tr3602: { type_num(KNOT_RRTYPE_DS, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3570: + goto st1126; +tr3604: { type_num(KNOT_RRTYPE_DS, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3577: + goto st1126; +tr3608: + { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } + goto st1126; +tr3609: + { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1126; +tr3610: + { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1126; +tr3611: + { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } + { + s->line_counter++; + } + goto st1126; +tr3618: { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } - goto st1112; -tr3578: + goto st1126; +tr3619: { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3579: + goto st1126; +tr3620: { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3580: + goto st1126; +tr3621: { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3583: + goto st1126; +tr3624: { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } - goto st1112; -tr3584: + goto st1126; +tr3625: { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3585: + goto st1126; +tr3626: { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3586: + goto st1126; +tr3627: { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3593: + goto st1126; +tr3634: { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } - goto st1112; -tr3594: + goto st1126; +tr3635: { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3595: + goto st1126; +tr3636: { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3596: + goto st1126; +tr3637: { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3601: + goto st1126; +tr3642: { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } - goto st1112; -tr3602: + goto st1126; +tr3643: { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3603: + goto st1126; +tr3644: { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3604: + goto st1126; +tr3645: { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3613: + goto st1126; +tr3654: { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } - goto st1112; -tr3614: + goto st1126; +tr3655: { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3615: + goto st1126; +tr3656: { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3616: + goto st1126; +tr3657: { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3621: + goto st1126; +tr3662: { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } - goto st1112; -tr3622: + goto st1126; +tr3663: { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3623: + goto st1126; +tr3664: { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3624: + goto st1126; +tr3665: { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3626: + goto st1126; +tr3667: { type_num(KNOT_RRTYPE_KX, &rdata_tail); } - goto st1112; -tr3627: + goto st1126; +tr3668: { type_num(KNOT_RRTYPE_KX, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3628: + goto st1126; +tr3669: { type_num(KNOT_RRTYPE_KX, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3629: + goto st1126; +tr3670: { type_num(KNOT_RRTYPE_KX, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3636: + goto st1126; +tr3677: { type_num(KNOT_RRTYPE_L32, &rdata_tail); } - goto st1112; -tr3637: + goto st1126; +tr3678: { type_num(KNOT_RRTYPE_L32, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3638: + goto st1126; +tr3679: { type_num(KNOT_RRTYPE_L32, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3639: + goto st1126; +tr3680: { type_num(KNOT_RRTYPE_L32, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3642: + goto st1126; +tr3683: { type_num(KNOT_RRTYPE_L64, &rdata_tail); } - goto st1112; -tr3643: + goto st1126; +tr3684: { type_num(KNOT_RRTYPE_L64, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3644: + goto st1126; +tr3685: { type_num(KNOT_RRTYPE_L64, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3645: + goto st1126; +tr3686: { type_num(KNOT_RRTYPE_L64, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3648: + goto st1126; +tr3689: { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } - goto st1112; -tr3649: + goto st1126; +tr3690: { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3650: + goto st1126; +tr3691: { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3651: + goto st1126; +tr3692: { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3653: + goto st1126; +tr3694: { type_num(KNOT_RRTYPE_LP, &rdata_tail); } - goto st1112; -tr3654: + goto st1126; +tr3695: { type_num(KNOT_RRTYPE_LP, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3655: + goto st1126; +tr3696: { type_num(KNOT_RRTYPE_LP, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3656: + goto st1126; +tr3697: { type_num(KNOT_RRTYPE_LP, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3663: + goto st1126; +tr3704: { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } - goto st1112; -tr3664: + goto st1126; +tr3705: { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3665: + goto st1126; +tr3706: { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3666: + goto st1126; +tr3707: { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3668: + goto st1126; +tr3709: { type_num(KNOT_RRTYPE_MX, &rdata_tail); } - goto st1112; -tr3669: + goto st1126; +tr3710: { type_num(KNOT_RRTYPE_MX, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3670: + goto st1126; +tr3711: { type_num(KNOT_RRTYPE_MX, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3671: + goto st1126; +tr3712: { type_num(KNOT_RRTYPE_MX, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3679: + goto st1126; +tr3720: { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } - goto st1112; -tr3680: + goto st1126; +tr3721: { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3681: + goto st1126; +tr3722: { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3682: + goto st1126; +tr3723: { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3685: + goto st1126; +tr3726: { type_num(KNOT_RRTYPE_NID, &rdata_tail); } - goto st1112; -tr3686: + goto st1126; +tr3727: { type_num(KNOT_RRTYPE_NID, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3687: + goto st1126; +tr3728: { type_num(KNOT_RRTYPE_NID, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3688: + goto st1126; +tr3729: { type_num(KNOT_RRTYPE_NID, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3690: + goto st1126; +tr3731: { type_num(KNOT_RRTYPE_NS, &rdata_tail); } - goto st1112; -tr3691: + goto st1126; +tr3732: { type_num(KNOT_RRTYPE_NS, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3692: + goto st1126; +tr3733: { type_num(KNOT_RRTYPE_NS, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3694: + goto st1126; +tr3735: { type_num(KNOT_RRTYPE_NS, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3697: + goto st1126; +tr3738: { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } - goto st1112; -tr3698: + goto st1126; +tr3739: { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3699: + goto st1126; +tr3740: { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3701: + goto st1126; +tr3742: { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3703: + goto st1126; +tr3744: { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } - goto st1112; -tr3704: + goto st1126; +tr3745: { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3705: + goto st1126; +tr3746: { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3707: + goto st1126; +tr3748: { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3713: + goto st1126; +tr3754: { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } - goto st1112; -tr3714: + goto st1126; +tr3755: { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3715: + goto st1126; +tr3756: { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3716: + goto st1126; +tr3757: { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3727: + goto st1126; +tr3768: { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } - goto st1112; -tr3728: + goto st1126; +tr3769: { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3729: + goto st1126; +tr3770: { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3730: + goto st1126; +tr3771: { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3734: + goto st1126; +tr3775: { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } - goto st1112; -tr3735: + goto st1126; +tr3776: { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3736: + goto st1126; +tr3777: { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3737: + goto st1126; +tr3778: { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3742: + goto st1126; +tr3783: { type_num(KNOT_RRTYPE_RP, &rdata_tail); } - goto st1112; -tr3743: + goto st1126; +tr3784: { type_num(KNOT_RRTYPE_RP, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3744: + goto st1126; +tr3785: { type_num(KNOT_RRTYPE_RP, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3745: + goto st1126; +tr3786: { type_num(KNOT_RRTYPE_RP, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3750: + goto st1126; +tr3791: { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } - goto st1112; -tr3751: + goto st1126; +tr3792: { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3752: + goto st1126; +tr3793: { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3753: + goto st1126; +tr3794: { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3755: + goto st1126; +tr3796: { type_num(KNOT_RRTYPE_RT, &rdata_tail); } - goto st1112; -tr3756: + goto st1126; +tr3797: { type_num(KNOT_RRTYPE_RT, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3757: + goto st1126; +tr3798: { type_num(KNOT_RRTYPE_RT, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3758: + goto st1126; +tr3799: { type_num(KNOT_RRTYPE_RT, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3770: + goto st1126; +tr3811: { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } - goto st1112; -tr3771: + goto st1126; +tr3812: { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3772: + goto st1126; +tr3813: { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3773: + goto st1126; +tr3814: { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3776: + goto st1126; +tr3817: { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } - goto st1112; -tr3777: + goto st1126; +tr3818: { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3778: + goto st1126; +tr3819: { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3779: + goto st1126; +tr3820: { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3782: + goto st1126; +tr3823: { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } - goto st1112; -tr3783: + goto st1126; +tr3824: { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3784: + goto st1126; +tr3825: { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3785: + goto st1126; +tr3826: { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3788: + goto st1126; +tr3829: { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } - goto st1112; -tr3789: + goto st1126; +tr3830: { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3790: + goto st1126; +tr3831: { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3791: + goto st1126; +tr3832: { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3796: + goto st1126; +tr3837: { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } - goto st1112; -tr3797: + goto st1126; +tr3838: { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3798: + goto st1126; +tr3839: { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3799: + goto st1126; +tr3840: { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3803: + goto st1126; +tr3844: { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } - goto st1112; -tr3804: + goto st1126; +tr3845: { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3805: + goto st1126; +tr3846: { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3806: + goto st1126; +tr3847: { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3813: + goto st1126; +tr3854: { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } - goto st1112; -tr3814: + goto st1126; +tr3855: { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3815: + goto st1126; +tr3856: { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3816: + goto st1126; +tr3857: { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3819: + goto st1126; +tr3860: { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } - goto st1112; -tr3820: + goto st1126; +tr3861: { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3821: + goto st1126; +tr3862: { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3822: + goto st1126; +tr3863: { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3836: + goto st1126; +tr3877: { type_num(KNOT_RRTYPE_URI, &rdata_tail); } - goto st1112; -tr3837: + goto st1126; +tr3878: { type_num(KNOT_RRTYPE_URI, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3838: + goto st1126; +tr3879: { type_num(KNOT_RRTYPE_URI, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3839: + goto st1126; +tr3880: { type_num(KNOT_RRTYPE_URI, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3846: + goto st1126; +tr3887: { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } - goto st1112; -tr3847: + goto st1126; +tr3888: { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3848: + goto st1126; +tr3889: { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3849: + goto st1126; +tr3890: { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } { s->line_counter++; } - goto st1112; -tr3856: + goto st1126; +tr3897: { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } - goto st1112; -tr3857: + goto st1126; +tr3898: { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1112; -tr3858: + goto st1126; +tr3899: { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1112; -tr3859: + goto st1126; +tr3900: { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } { s->line_counter++; } - goto st1112; -st1112: + goto st1126; +st1126: if ( ++p == pe ) - goto _test_eof1112; -case 1112: + goto _test_eof1126; +case 1126: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87881,29 +89144,29 @@ case 1112: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1112; - case 32: goto st1112; - case 40: goto tr3368; - case 41: goto tr3369; - case 2058: goto tr3371; - case 2107: goto tr3372; + case 9: goto st1126; + case 32: goto st1126; + case 40: goto tr3401; + case 41: goto tr3402; + case 2058: goto tr3404; + case 2107: goto tr3405; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3370; + goto tr3403; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3370; + goto tr3403; } else - goto tr3370; + goto tr3403; goto tr77; -tr3370: - { p--; {stack[top++] = 1113;goto st741;} } - goto st1113; -st1113: +tr3403: + { p--; {stack[top++] = 1127;goto st747;} } + goto st1127; +st1127: if ( ++p == pe ) - goto _test_eof1113; -case 1113: + goto _test_eof1127; +case 1127: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87917,38 +89180,38 @@ case 1113: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1114; - case 32: goto st1114; - case 40: goto tr3374; - case 41: goto tr3375; - case 2058: goto tr3376; - case 2107: goto tr3377; + case 9: goto st1128; + case 32: goto st1128; + case 40: goto tr3407; + case 41: goto tr3408; + case 2058: goto tr3409; + case 2107: goto tr3410; } goto tr77; -tr3374: +tr3407: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1114; -tr3375: + goto st1128; +tr3408: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1114; -tr3376: + goto st1128; +tr3409: { s->line_counter++; } - goto st1114; -tr3465: + goto st1128; +tr3498: { s->buffer[s->buffer_length++] = 0; @@ -87958,18 +89221,18 @@ tr3465: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1114; goto _out;} + {p++; cs = 1128; goto _out;} } } } { s->line_counter++; } - goto st1114; -st1114: + goto st1128; +st1128: if ( ++p == pe ) - goto _test_eof1114; -case 1114: + goto _test_eof1128; +case 1128: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87983,17 +89246,17 @@ case 1114: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1114; - case 32: goto st1114; - case 40: goto tr3374; - case 41: goto tr3375; - case 2058: goto tr3376; - case 2107: goto tr3377; + case 9: goto st1128; + case 32: goto st1128; + case 40: goto tr3407; + case 41: goto tr3408; + case 2058: goto tr3409; + case 2107: goto tr3410; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3378; - goto tr2396; -tr3378: + goto tr3411; + goto tr2429; +tr3411: { s->number64 = 0; } @@ -88008,11 +89271,11 @@ tr3378: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1115; -tr3382: + goto st1129; +tr3415: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -88024,14 +89287,14 @@ tr3382: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1115; -st1115: + goto st1129; +st1129: if ( ++p == pe ) - goto _test_eof1115; -case 1115: + goto _test_eof1129; +case 1129: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88045,40 +89308,40 @@ case 1115: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3379; - case 32: goto tr3379; - case 40: goto tr3380; - case 41: goto tr3381; - case 2058: goto tr3383; - case 2107: goto tr3384; + case 9: goto tr3412; + case 32: goto tr3412; + case 40: goto tr3413; + case 41: goto tr3414; + case 2058: goto tr3416; + case 2107: goto tr3417; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3382; - goto tr2396; -tr3386: + goto tr3415; + goto tr2429; +tr3419: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1116; -tr3387: + goto st1130; +tr3420: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1116; -tr3389: + goto st1130; +tr3422: { s->line_counter++; } - goto st1116; -tr3463: + goto st1130; +tr3496: { s->buffer[s->buffer_length++] = 0; @@ -88088,79 +89351,79 @@ tr3463: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1116; goto _out;} + {p++; cs = 1130; goto _out;} } } } { s->line_counter++; } - goto st1116; -tr3379: + goto st1130; +tr3412: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1116; -tr3380: + goto st1130; +tr3413: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1116; -tr3381: + goto st1130; +tr3414: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1116; -tr3383: + goto st1130; +tr3416: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1116; -st1116: + goto st1130; +st1130: if ( ++p == pe ) - goto _test_eof1116; -case 1116: + goto _test_eof1130; +case 1130: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88174,17 +89437,17 @@ case 1116: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1116; - case 32: goto st1116; - case 40: goto tr3386; - case 41: goto tr3387; - case 2058: goto tr3389; - case 2107: goto tr3390; + case 9: goto st1130; + case 32: goto st1130; + case 40: goto tr3419; + case 41: goto tr3420; + case 2058: goto tr3422; + case 2107: goto tr3423; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3388; - goto tr2396; -tr3388: + goto tr3421; + goto tr2429; +tr3421: { s->number64 = 0; } @@ -88199,11 +89462,11 @@ tr3388: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1117; -tr3394: + goto st1131; +tr3427: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -88215,14 +89478,14 @@ tr3394: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1117; -st1117: + goto st1131; +st1131: if ( ++p == pe ) - goto _test_eof1117; -case 1117: + goto _test_eof1131; +case 1131: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88236,40 +89499,40 @@ case 1117: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3391; - case 32: goto tr3391; - case 40: goto tr3392; - case 41: goto tr3393; - case 2058: goto tr3395; - case 2107: goto tr3396; + case 9: goto tr3424; + case 32: goto tr3424; + case 40: goto tr3425; + case 41: goto tr3426; + case 2058: goto tr3428; + case 2107: goto tr3429; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3394; - goto tr2396; -tr3399: + goto tr3427; + goto tr2429; +tr3432: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1118; -tr3400: + goto st1132; +tr3433: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1118; -tr3402: + goto st1132; +tr3435: { s->line_counter++; } - goto st1118; -tr3461: + goto st1132; +tr3494: { s->buffer[s->buffer_length++] = 0; @@ -88279,15 +89542,15 @@ tr3461: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1118; goto _out;} + {p++; cs = 1132; goto _out;} } } } { s->line_counter++; } - goto st1118; -tr3391: + goto st1132; +tr3424: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -88295,11 +89558,11 @@ tr3391: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1118; -tr3392: + goto st1132; +tr3425: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -88307,18 +89570,18 @@ tr3392: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1118; -tr3393: + goto st1132; +tr3426: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -88326,18 +89589,18 @@ tr3393: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1118; -tr3395: + goto st1132; +tr3428: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -88345,17 +89608,17 @@ tr3395: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1118; -st1118: + goto st1132; +st1132: if ( ++p == pe ) - goto _test_eof1118; -case 1118: + goto _test_eof1132; +case 1132: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88369,17 +89632,17 @@ case 1118: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1118; - case 32: goto st1118; - case 40: goto tr3399; - case 41: goto tr3400; - case 2058: goto tr3402; - case 2107: goto tr3403; + case 9: goto st1132; + case 32: goto st1132; + case 40: goto tr3432; + case 41: goto tr3433; + case 2058: goto tr3435; + case 2107: goto tr3436; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3401; - goto tr3397; -tr3401: + goto tr3434; + goto tr3430; +tr3434: { s->buffer_length = 0; } @@ -88388,24 +89651,24 @@ tr3401: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1119; -tr3407: + goto st1133; +tr3440: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1119; -st1119: + goto st1133; +st1133: if ( ++p == pe ) - goto _test_eof1119; -case 1119: + goto _test_eof1133; +case 1133: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88419,40 +89682,40 @@ case 1119: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3404; - case 32: goto tr3404; - case 40: goto tr3405; - case 41: goto tr3406; - case 2058: goto tr3408; - case 2107: goto tr3409; + case 9: goto tr3437; + case 32: goto tr3437; + case 40: goto tr3438; + case 41: goto tr3439; + case 2058: goto tr3441; + case 2107: goto tr3442; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3407; - goto tr3397; -tr3411: + goto tr3440; + goto tr3430; +tr3444: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1120; -tr3412: + goto st1134; +tr3445: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1120; -tr3414: + goto st1134; +tr3447: { s->line_counter++; } - goto st1120; -tr3459: + goto st1134; +tr3492: { s->buffer[s->buffer_length++] = 0; @@ -88462,15 +89725,15 @@ tr3459: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1120; goto _out;} + {p++; cs = 1134; goto _out;} } } } { s->line_counter++; } - goto st1120; -tr3404: + goto st1134; +tr3437: { s->buffer[s->buffer_length] = 0; @@ -88483,7 +89746,7 @@ tr3404: rdata_tail += 4; } else { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -88492,7 +89755,7 @@ tr3404: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st316;} + p--; {goto st319;} } if (s->number64 <= UINT32_MAX) { @@ -88500,15 +89763,15 @@ tr3404: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1120; -tr3405: + goto st1134; +tr3438: { s->buffer[s->buffer_length] = 0; @@ -88521,7 +89784,7 @@ tr3405: rdata_tail += 4; } else { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -88530,7 +89793,7 @@ tr3405: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st316;} + p--; {goto st319;} } if (s->number64 <= UINT32_MAX) { @@ -88538,22 +89801,22 @@ tr3405: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1120; -tr3406: + goto st1134; +tr3439: { s->buffer[s->buffer_length] = 0; @@ -88566,7 +89829,7 @@ tr3406: rdata_tail += 4; } else { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -88575,7 +89838,7 @@ tr3406: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st316;} + p--; {goto st319;} } if (s->number64 <= UINT32_MAX) { @@ -88583,22 +89846,22 @@ tr3406: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1120; -tr3408: + goto st1134; +tr3441: { s->buffer[s->buffer_length] = 0; @@ -88611,7 +89874,7 @@ tr3408: rdata_tail += 4; } else { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -88620,7 +89883,7 @@ tr3408: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st316;} + p--; {goto st319;} } if (s->number64 <= UINT32_MAX) { @@ -88628,21 +89891,21 @@ tr3408: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1120; -st1120: + goto st1134; +st1134: if ( ++p == pe ) - goto _test_eof1120; -case 1120: + goto _test_eof1134; +case 1134: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88656,17 +89919,17 @@ case 1120: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1120; - case 32: goto st1120; - case 40: goto tr3411; - case 41: goto tr3412; - case 2058: goto tr3414; - case 2107: goto tr3415; + case 9: goto st1134; + case 32: goto st1134; + case 40: goto tr3444; + case 41: goto tr3445; + case 2058: goto tr3447; + case 2107: goto tr3448; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3413; - goto tr3397; -tr3413: + goto tr3446; + goto tr3430; +tr3446: { s->buffer_length = 0; } @@ -88675,24 +89938,24 @@ tr3413: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1121; -tr3419: + goto st1135; +tr3452: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1121; -st1121: + goto st1135; +st1135: if ( ++p == pe ) - goto _test_eof1121; -case 1121: + goto _test_eof1135; +case 1135: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88706,40 +89969,40 @@ case 1121: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3416; - case 32: goto tr3416; - case 40: goto tr3417; - case 41: goto tr3418; - case 2058: goto tr3420; - case 2107: goto tr3421; + case 9: goto tr3449; + case 32: goto tr3449; + case 40: goto tr3450; + case 41: goto tr3451; + case 2058: goto tr3453; + case 2107: goto tr3454; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3419; - goto tr3397; -tr3423: + goto tr3452; + goto tr3430; +tr3456: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1122; -tr3424: + goto st1136; +tr3457: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1122; -tr3426: + goto st1136; +tr3459: { s->line_counter++; } - goto st1122; -tr3457: + goto st1136; +tr3490: { s->buffer[s->buffer_length++] = 0; @@ -88749,15 +90012,15 @@ tr3457: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1122; goto _out;} + {p++; cs = 1136; goto _out;} } } } { s->line_counter++; } - goto st1122; -tr3416: + goto st1136; +tr3449: { s->buffer[s->buffer_length] = 0; @@ -88770,7 +90033,7 @@ tr3416: rdata_tail += 4; } else { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -88779,7 +90042,7 @@ tr3416: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st316;} + p--; {goto st319;} } if (s->number64 <= UINT32_MAX) { @@ -88787,15 +90050,15 @@ tr3416: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1122; -tr3417: + goto st1136; +tr3450: { s->buffer[s->buffer_length] = 0; @@ -88808,7 +90071,7 @@ tr3417: rdata_tail += 4; } else { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -88817,7 +90080,7 @@ tr3417: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st316;} + p--; {goto st319;} } if (s->number64 <= UINT32_MAX) { @@ -88825,22 +90088,22 @@ tr3417: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1122; -tr3418: + goto st1136; +tr3451: { s->buffer[s->buffer_length] = 0; @@ -88853,7 +90116,7 @@ tr3418: rdata_tail += 4; } else { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -88862,7 +90125,7 @@ tr3418: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st316;} + p--; {goto st319;} } if (s->number64 <= UINT32_MAX) { @@ -88870,22 +90133,22 @@ tr3418: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1122; -tr3420: + goto st1136; +tr3453: { s->buffer[s->buffer_length] = 0; @@ -88898,7 +90161,7 @@ tr3420: rdata_tail += 4; } else { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -88907,7 +90170,7 @@ tr3420: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st316;} + p--; {goto st319;} } if (s->number64 <= UINT32_MAX) { @@ -88915,21 +90178,21 @@ tr3420: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1122; -st1122: + goto st1136; +st1136: if ( ++p == pe ) - goto _test_eof1122; -case 1122: + goto _test_eof1136; +case 1136: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88943,17 +90206,17 @@ case 1122: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1122; - case 32: goto st1122; - case 40: goto tr3423; - case 41: goto tr3424; - case 2058: goto tr3426; - case 2107: goto tr3427; + case 9: goto st1136; + case 32: goto st1136; + case 40: goto tr3456; + case 41: goto tr3457; + case 2058: goto tr3459; + case 2107: goto tr3460; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3425; - goto tr2396; -tr3425: + goto tr3458; + goto tr2429; +tr3458: { s->number64 = 0; } @@ -88968,11 +90231,11 @@ tr3425: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1123; -tr3431: + goto st1137; +tr3464: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -88984,14 +90247,14 @@ tr3431: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1123; -st1123: + goto st1137; +st1137: if ( ++p == pe ) - goto _test_eof1123; -case 1123: + goto _test_eof1137; +case 1137: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89005,40 +90268,40 @@ case 1123: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3428; - case 32: goto tr3428; - case 40: goto tr3429; - case 41: goto tr3430; - case 2058: goto tr3432; - case 2107: goto tr3433; + case 9: goto tr3461; + case 32: goto tr3461; + case 40: goto tr3462; + case 41: goto tr3463; + case 2058: goto tr3465; + case 2107: goto tr3466; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3431; - goto tr2396; -tr3435: + goto tr3464; + goto tr2429; +tr3468: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1124; -tr3436: + goto st1138; +tr3469: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1124; -tr3438: + goto st1138; +tr3471: { s->line_counter++; } - goto st1124; -tr3455: + goto st1138; +tr3488: { s->buffer[s->buffer_length++] = 0; @@ -89048,15 +90311,15 @@ tr3455: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1124; goto _out;} + {p++; cs = 1138; goto _out;} } } } { s->line_counter++; } - goto st1124; -tr3428: + goto st1138; +tr3461: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -89064,11 +90327,11 @@ tr3428: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1124; -tr3429: + goto st1138; +tr3462: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -89076,18 +90339,18 @@ tr3429: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1124; -tr3430: + goto st1138; +tr3463: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -89095,18 +90358,18 @@ tr3430: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1124; -tr3432: + goto st1138; +tr3465: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -89114,17 +90377,17 @@ tr3432: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1124; -st1124: + goto st1138; +st1138: if ( ++p == pe ) - goto _test_eof1124; -case 1124: + goto _test_eof1138; +case 1138: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89138,35 +90401,35 @@ case 1124: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1124; - case 32: goto st1124; - case 40: goto tr3435; - case 41: goto tr3436; - case 42: goto tr3437; - case 92: goto tr3437; - case 95: goto tr3437; - case 2058: goto tr3438; - case 2107: goto tr3439; + case 9: goto st1138; + case 32: goto st1138; + case 40: goto tr3468; + case 41: goto tr3469; + case 42: goto tr3470; + case 92: goto tr3470; + case 95: goto tr3470; + case 2058: goto tr3471; + case 2107: goto tr3472; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3437; + goto tr3470; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3437; + goto tr3470; } else - goto tr3437; + goto tr3470; goto tr77; -tr3437: +tr3470: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1125;goto st318;} } - goto st1125; -st1125: + { p--; {stack[top++] = 1139;goto st321;} } + goto st1139; +st1139: if ( ++p == pe ) - goto _test_eof1125; -case 1125: + goto _test_eof1139; +case 1139: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89180,38 +90443,38 @@ case 1125: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3440; - case 32: goto tr3440; - case 40: goto tr3441; - case 41: goto tr3442; - case 2058: goto tr3443; - case 2107: goto tr3444; + case 9: goto tr3473; + case 32: goto tr3473; + case 40: goto tr3474; + case 41: goto tr3475; + case 2058: goto tr3476; + case 2107: goto tr3477; } goto tr77; -tr3446: +tr3479: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1126; -tr3447: + goto st1140; +tr3480: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1126; -tr3449: + goto st1140; +tr3482: { s->line_counter++; } - goto st1126; -tr3453: + goto st1140; +tr3486: { s->buffer[s->buffer_length++] = 0; @@ -89221,55 +90484,55 @@ tr3453: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1126; goto _out;} + {p++; cs = 1140; goto _out;} } } } { s->line_counter++; } - goto st1126; -tr3440: + goto st1140; +tr3473: { rdata_tail += s->dname_tmp_length; } - goto st1126; -tr3441: + goto st1140; +tr3474: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1126; -tr3442: + goto st1140; +tr3475: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1126; -tr3443: + goto st1140; +tr3476: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1126; -st1126: + goto st1140; +st1140: if ( ++p == pe ) - goto _test_eof1126; -case 1126: + goto _test_eof1140; +case 1140: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89283,30 +90546,30 @@ case 1126: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1126; - case 32: goto st1126; - case 40: goto tr3446; - case 41: goto tr3447; - case 43: goto tr3448; - case 2058: goto tr3449; - case 2107: goto tr3450; + case 9: goto st1140; + case 32: goto st1140; + case 40: goto tr3479; + case 41: goto tr3480; + case 43: goto tr3481; + case 2058: goto tr3482; + case 2107: goto tr3483; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3448; + goto tr3481; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3448; + goto tr3481; } else - goto tr3448; + goto tr3481; goto tr77; -tr3448: - { p--; {stack[top++] = 1127;goto st378;} } - goto st1127; -st1127: +tr3481: + { p--; {stack[top++] = 1141;goto st381;} } + goto st1141; +st1141: if ( ++p == pe ) - goto _test_eof1127; -case 1127: + goto _test_eof1141; +case 1141: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89320,44 +90583,44 @@ case 1127: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3451; - case 2619: goto tr3451; + case 2570: goto tr3484; + case 2619: goto tr3484; } goto tr77; -tr3451: +tr3484: { p--; {cs = stack[--top];goto _again;} } - goto st1521; -st1521: + goto st1561; +st1561: if ( ++p == pe ) - goto _test_eof1521; -case 1521: + goto _test_eof1561; +case 1561: goto st0; -tr3450: +tr3483: { s->buffer_length = 0; } - goto st1128; -tr3452: + goto st1142; +tr3485: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1128; -tr3444: + goto st1142; +tr3477: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1128; -st1128: + goto st1142; +st1142: if ( ++p == pe ) - goto _test_eof1128; -case 1128: + goto _test_eof1142; +case 1142: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89377,23 +90640,23 @@ case 1128: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3453; + goto tr3486; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3452; + goto tr3485; goto tr77; -tr3439: +tr3472: { s->buffer_length = 0; } - goto st1129; -tr3454: + goto st1143; +tr3487: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1129; -tr3433: + goto st1143; +tr3466: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -89401,17 +90664,17 @@ tr3433: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1129; -st1129: + goto st1143; +st1143: if ( ++p == pe ) - goto _test_eof1129; -case 1129: + goto _test_eof1143; +case 1143: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89431,23 +90694,23 @@ case 1129: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3455; + goto tr3488; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3454; + goto tr3487; goto tr77; -tr3427: +tr3460: { s->buffer_length = 0; } - goto st1130; -tr3456: + goto st1144; +tr3489: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1130; -tr3421: + goto st1144; +tr3454: { s->buffer[s->buffer_length] = 0; @@ -89460,7 +90723,7 @@ tr3421: rdata_tail += 4; } else { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -89469,7 +90732,7 @@ tr3421: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st316;} + p--; {goto st319;} } if (s->number64 <= UINT32_MAX) { @@ -89477,21 +90740,21 @@ tr3421: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1130; -st1130: + goto st1144; +st1144: if ( ++p == pe ) - goto _test_eof1130; -case 1130: + goto _test_eof1144; +case 1144: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89511,23 +90774,23 @@ case 1130: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3457; + goto tr3490; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3456; + goto tr3489; goto tr77; -tr3415: +tr3448: { s->buffer_length = 0; } - goto st1131; -tr3458: + goto st1145; +tr3491: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1131; -tr3409: + goto st1145; +tr3442: { s->buffer[s->buffer_length] = 0; @@ -89540,7 +90803,7 @@ tr3409: rdata_tail += 4; } else { WARN(ret); - p--; {goto st316;} + p--; {goto st319;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -89549,7 +90812,7 @@ tr3409: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st316;} + p--; {goto st319;} } if (s->number64 <= UINT32_MAX) { @@ -89557,21 +90820,21 @@ tr3409: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1131; -st1131: + goto st1145; +st1145: if ( ++p == pe ) - goto _test_eof1131; -case 1131: + goto _test_eof1145; +case 1145: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89591,23 +90854,23 @@ case 1131: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3459; + goto tr3492; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3458; + goto tr3491; goto tr77; -tr3403: +tr3436: { s->buffer_length = 0; } - goto st1132; -tr3460: + goto st1146; +tr3493: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1132; -tr3396: + goto st1146; +tr3429: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -89615,17 +90878,17 @@ tr3396: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1132; -st1132: + goto st1146; +st1146: if ( ++p == pe ) - goto _test_eof1132; -case 1132: + goto _test_eof1146; +case 1146: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89645,40 +90908,40 @@ case 1132: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3461; + goto tr3494; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3460; + goto tr3493; goto tr77; -tr3390: +tr3423: { s->buffer_length = 0; } - goto st1133; -tr3462: + goto st1147; +tr3495: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1133; -tr3384: + goto st1147; +tr3417: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1133; -st1133: + goto st1147; +st1147: if ( ++p == pe ) - goto _test_eof1133; -case 1133: + goto _test_eof1147; +case 1147: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89698,26 +90961,26 @@ case 1133: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3463; + goto tr3496; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3462; + goto tr3495; goto tr77; -tr3377: +tr3410: { s->buffer_length = 0; } - goto st1134; -tr3464: + goto st1148; +tr3497: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1134; -st1134: + goto st1148; +st1148: if ( ++p == pe ) - goto _test_eof1134; -case 1134: + goto _test_eof1148; +case 1148: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89737,23 +91000,23 @@ case 1134: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3465; + goto tr3498; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3464; + goto tr3497; goto tr77; -tr3372: +tr3405: { s->buffer_length = 0; } - goto st1135; -tr3466: + goto st1149; +tr3499: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1135; -tr3833: + goto st1149; +tr3874: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -89761,311 +91024,317 @@ tr3833: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1135; -tr3366: + goto st1149; +tr3399: { type_num(KNOT_RRTYPE_A, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3474: + goto st1149; +tr3507: { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3482: + goto st1149; +tr3515: { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3488: + goto st1149; +tr3521: { type_num(KNOT_RRTYPE_APL, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3499: + goto st1149; +tr3532: { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3510: + goto st1149; +tr3543: { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3515: + goto st1149; +tr3548: { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3522: + goto st1149; +tr3555: { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3530: + goto st1149; +tr3563: { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3538: + goto st1149; +tr3571: { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3549: + goto st1149; +tr3582: { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3558: + goto st1149; +tr3591: { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3566: + goto st1149; +tr3599: { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3571: + goto st1149; +tr3605: { type_num(KNOT_RRTYPE_DS, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3581: + goto st1149; +tr3612: + { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } + { + s->buffer_length = 0; + } + goto st1149; +tr3622: { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3587: + goto st1149; +tr3628: { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3597: + goto st1149; +tr3638: { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3605: + goto st1149; +tr3646: { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3617: + goto st1149; +tr3658: { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3625: + goto st1149; +tr3666: { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3630: + goto st1149; +tr3671: { type_num(KNOT_RRTYPE_KX, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3640: + goto st1149; +tr3681: { type_num(KNOT_RRTYPE_L32, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3646: + goto st1149; +tr3687: { type_num(KNOT_RRTYPE_L64, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3652: + goto st1149; +tr3693: { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3657: + goto st1149; +tr3698: { type_num(KNOT_RRTYPE_LP, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3667: + goto st1149; +tr3708: { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3672: + goto st1149; +tr3713: { type_num(KNOT_RRTYPE_MX, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3683: + goto st1149; +tr3724: { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3689: + goto st1149; +tr3730: { type_num(KNOT_RRTYPE_NID, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3695: + goto st1149; +tr3736: { type_num(KNOT_RRTYPE_NS, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3702: + goto st1149; +tr3743: { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3708: + goto st1149; +tr3749: { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3717: + goto st1149; +tr3758: { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3731: + goto st1149; +tr3772: { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3738: + goto st1149; +tr3779: { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3746: + goto st1149; +tr3787: { type_num(KNOT_RRTYPE_RP, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3754: + goto st1149; +tr3795: { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3759: + goto st1149; +tr3800: { type_num(KNOT_RRTYPE_RT, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3774: + goto st1149; +tr3815: { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3780: + goto st1149; +tr3821: { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3786: + goto st1149; +tr3827: { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3792: + goto st1149; +tr3833: { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3800: + goto st1149; +tr3841: { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3807: + goto st1149; +tr3848: { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3817: + goto st1149; +tr3858: { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3823: + goto st1149; +tr3864: { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3840: + goto st1149; +tr3881: { type_num(KNOT_RRTYPE_URI, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3850: + goto st1149; +tr3891: { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -tr3860: + goto st1149; +tr3901: { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } { s->buffer_length = 0; } - goto st1135; -st1135: + goto st1149; +st1149: if ( ++p == pe ) - goto _test_eof1135; -case 1135: + goto _test_eof1149; +case 1149: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90085,241 +91354,32 @@ case 1135: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3467; + goto tr3500; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3466; + goto tr3499; goto tr77; -st1136: - if ( ++p == pe ) - goto _test_eof1136; -case 1136: - switch( (*p) ) { - case 65: goto st1137; - case 97: goto st1137; - } - goto tr3340; -st1137: - if ( ++p == pe ) - goto _test_eof1137; -case 1137: - switch( (*p) ) { - case 65: goto st1138; - case 97: goto st1138; - } - goto tr3340; -st1138: - if ( ++p == pe ) - goto _test_eof1138; -case 1138: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3470; - case 32: goto tr3470; - case 40: goto tr3471; - case 41: goto tr3472; - case 2058: goto tr3473; - case 2107: goto tr3474; - } - goto tr3340; -st1139: - if ( ++p == pe ) - goto _test_eof1139; -case 1139: - switch( (*p) ) { - case 83: goto st1140; - case 115: goto st1140; - } - goto tr3340; -st1140: - if ( ++p == pe ) - goto _test_eof1140; -case 1140: - switch( (*p) ) { - case 68: goto st1141; - case 100: goto st1141; - } - goto tr3340; -st1141: - if ( ++p == pe ) - goto _test_eof1141; -case 1141: - switch( (*p) ) { - case 66: goto st1142; - case 98: goto st1142; - } - goto tr3340; -st1142: - if ( ++p == pe ) - goto _test_eof1142; -case 1142: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3478; - case 32: goto tr3478; - case 40: goto tr3479; - case 41: goto tr3480; - case 2058: goto tr3481; - case 2107: goto tr3482; - } - goto tr3340; -st1143: - if ( ++p == pe ) - goto _test_eof1143; -case 1143: - switch( (*p) ) { - case 76: goto st1144; - case 108: goto st1144; - } - goto tr3340; -st1144: - if ( ++p == pe ) - goto _test_eof1144; -case 1144: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3484; - case 32: goto tr3484; - case 40: goto tr3485; - case 41: goto tr3486; - case 2058: goto tr3487; - case 2107: goto tr3488; - } - goto tr3340; -st1145: - if ( ++p == pe ) - goto _test_eof1145; -case 1145: - switch( (*p) ) { - case 65: goto st1146; - case 68: goto st1148; - case 69: goto st1155; - case 78: goto st1158; - case 83: goto st1162; - case 97: goto st1146; - case 100: goto st1148; - case 101: goto st1155; - case 110: goto st1158; - case 115: goto st1162; - } - goto tr3340; -st1146: - if ( ++p == pe ) - goto _test_eof1146; -case 1146: - switch( (*p) ) { - case 65: goto st1147; - case 97: goto st1147; - } - goto tr3340; -st1147: - if ( ++p == pe ) - goto _test_eof1147; -case 1147: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3495; - case 32: goto tr3495; - case 40: goto tr3496; - case 41: goto tr3497; - case 2058: goto tr3498; - case 2107: goto tr3499; - } - goto tr3340; -st1148: - if ( ++p == pe ) - goto _test_eof1148; -case 1148: - switch( (*p) ) { - case 78: goto st1149; - case 83: goto st1154; - case 110: goto st1149; - case 115: goto st1154; - } - goto tr3340; -st1149: - if ( ++p == pe ) - goto _test_eof1149; -case 1149: - switch( (*p) ) { - case 83: goto st1150; - case 115: goto st1150; - } - goto tr3340; st1150: if ( ++p == pe ) goto _test_eof1150; case 1150: switch( (*p) ) { - case 75: goto st1151; - case 107: goto st1151; + case 65: goto st1151; + case 97: goto st1151; } - goto tr3340; + goto tr3373; st1151: if ( ++p == pe ) goto _test_eof1151; case 1151: switch( (*p) ) { - case 69: goto st1152; - case 101: goto st1152; + case 65: goto st1152; + case 97: goto st1152; } - goto tr3340; + goto tr3373; st1152: if ( ++p == pe ) goto _test_eof1152; case 1152: - switch( (*p) ) { - case 89: goto st1153; - case 121: goto st1153; - } - goto tr3340; -st1153: - if ( ++p == pe ) - goto _test_eof1153; -case 1153: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90333,18 +91393,45 @@ case 1153: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3506; - case 32: goto tr3506; - case 40: goto tr3507; - case 41: goto tr3508; - case 2058: goto tr3509; - case 2107: goto tr3510; + case 9: goto tr3503; + case 32: goto tr3503; + case 40: goto tr3504; + case 41: goto tr3505; + case 2058: goto tr3506; + case 2107: goto tr3507; + } + goto tr3373; +st1153: + if ( ++p == pe ) + goto _test_eof1153; +case 1153: + switch( (*p) ) { + case 83: goto st1154; + case 115: goto st1154; } - goto tr3340; + goto tr3373; st1154: if ( ++p == pe ) goto _test_eof1154; case 1154: + switch( (*p) ) { + case 68: goto st1155; + case 100: goto st1155; + } + goto tr3373; +st1155: + if ( ++p == pe ) + goto _test_eof1155; +case 1155: + switch( (*p) ) { + case 66: goto st1156; + case 98: goto st1156; + } + goto tr3373; +st1156: + if ( ++p == pe ) + goto _test_eof1156; +case 1156: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90365,29 +91452,20 @@ case 1154: case 2058: goto tr3514; case 2107: goto tr3515; } - goto tr3340; -st1155: - if ( ++p == pe ) - goto _test_eof1155; -case 1155: - switch( (*p) ) { - case 82: goto st1156; - case 114: goto st1156; - } - goto tr3340; -st1156: - if ( ++p == pe ) - goto _test_eof1156; -case 1156: - switch( (*p) ) { - case 84: goto st1157; - case 116: goto st1157; - } - goto tr3340; + goto tr3373; st1157: if ( ++p == pe ) goto _test_eof1157; case 1157: + switch( (*p) ) { + case 76: goto st1158; + case 108: goto st1158; + } + goto tr3373; +st1158: + if ( ++p == pe ) + goto _test_eof1158; +case 1158: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90401,41 +91479,40 @@ case 1157: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3518; - case 32: goto tr3518; - case 40: goto tr3519; - case 41: goto tr3520; - case 2058: goto tr3521; - case 2107: goto tr3522; - } - goto tr3340; -st1158: - if ( ++p == pe ) - goto _test_eof1158; -case 1158: - switch( (*p) ) { - case 65: goto st1159; - case 97: goto st1159; + case 9: goto tr3517; + case 32: goto tr3517; + case 40: goto tr3518; + case 41: goto tr3519; + case 2058: goto tr3520; + case 2107: goto tr3521; } - goto tr3340; + goto tr3373; st1159: if ( ++p == pe ) goto _test_eof1159; case 1159: switch( (*p) ) { - case 77: goto st1160; - case 109: goto st1160; - } - goto tr3340; + case 65: goto st1160; + case 68: goto st1162; + case 69: goto st1169; + case 78: goto st1172; + case 83: goto st1176; + case 97: goto st1160; + case 100: goto st1162; + case 101: goto st1169; + case 110: goto st1172; + case 115: goto st1176; + } + goto tr3373; st1160: if ( ++p == pe ) goto _test_eof1160; case 1160: switch( (*p) ) { - case 69: goto st1161; - case 101: goto st1161; + case 65: goto st1161; + case 97: goto st1161; } - goto tr3340; + goto tr3373; st1161: if ( ++p == pe ) goto _test_eof1161; @@ -90453,45 +91530,65 @@ case 1161: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3526; - case 32: goto tr3526; - case 40: goto tr3527; - case 41: goto tr3528; - case 2058: goto tr3529; - case 2107: goto tr3530; + case 9: goto tr3528; + case 32: goto tr3528; + case 40: goto tr3529; + case 41: goto tr3530; + case 2058: goto tr3531; + case 2107: goto tr3532; } - goto tr3340; + goto tr3373; st1162: if ( ++p == pe ) goto _test_eof1162; case 1162: switch( (*p) ) { - case 89: goto st1163; - case 121: goto st1163; + case 78: goto st1163; + case 83: goto st1168; + case 110: goto st1163; + case 115: goto st1168; } - goto tr3340; + goto tr3373; st1163: if ( ++p == pe ) goto _test_eof1163; case 1163: switch( (*p) ) { - case 78: goto st1164; - case 110: goto st1164; + case 83: goto st1164; + case 115: goto st1164; } - goto tr3340; + goto tr3373; st1164: if ( ++p == pe ) goto _test_eof1164; case 1164: switch( (*p) ) { - case 67: goto st1165; - case 99: goto st1165; + case 75: goto st1165; + case 107: goto st1165; } - goto tr3340; + goto tr3373; st1165: if ( ++p == pe ) goto _test_eof1165; case 1165: + switch( (*p) ) { + case 69: goto st1166; + case 101: goto st1166; + } + goto tr3373; +st1166: + if ( ++p == pe ) + goto _test_eof1166; +case 1166: + switch( (*p) ) { + case 89: goto st1167; + case 121: goto st1167; + } + goto tr3373; +st1167: + if ( ++p == pe ) + goto _test_eof1167; +case 1167: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90505,58 +91602,61 @@ case 1165: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3534; - case 32: goto tr3534; - case 40: goto tr3535; - case 41: goto tr3536; - case 2058: goto tr3537; - case 2107: goto tr3538; - } - goto tr3340; -st1166: - if ( ++p == pe ) - goto _test_eof1166; -case 1166: - switch( (*p) ) { - case 72: goto st1167; - case 78: goto st1171; - case 83: goto st1179; - case 104: goto st1167; - case 110: goto st1171; - case 115: goto st1179; - } - goto tr3340; -st1167: - if ( ++p == pe ) - goto _test_eof1167; -case 1167: - switch( (*p) ) { - case 67: goto st1168; - case 99: goto st1168; + case 9: goto tr3539; + case 32: goto tr3539; + case 40: goto tr3540; + case 41: goto tr3541; + case 2058: goto tr3542; + case 2107: goto tr3543; } - goto tr3340; + goto tr3373; st1168: if ( ++p == pe ) goto _test_eof1168; case 1168: - switch( (*p) ) { - case 73: goto st1169; - case 105: goto st1169; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr3544; + case 32: goto tr3544; + case 40: goto tr3545; + case 41: goto tr3546; + case 2058: goto tr3547; + case 2107: goto tr3548; } - goto tr3340; + goto tr3373; st1169: if ( ++p == pe ) goto _test_eof1169; case 1169: switch( (*p) ) { - case 68: goto st1170; - case 100: goto st1170; + case 82: goto st1170; + case 114: goto st1170; } - goto tr3340; + goto tr3373; st1170: if ( ++p == pe ) goto _test_eof1170; case 1170: + switch( (*p) ) { + case 84: goto st1171; + case 116: goto st1171; + } + goto tr3373; +st1171: + if ( ++p == pe ) + goto _test_eof1171; +case 1171: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90570,47 +91670,45 @@ case 1170: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3545; - case 32: goto tr3545; - case 40: goto tr3546; - case 41: goto tr3547; - case 2058: goto tr3548; - case 2107: goto tr3549; - } - goto tr3340; -st1171: - if ( ++p == pe ) - goto _test_eof1171; -case 1171: - switch( (*p) ) { - case 65: goto st1172; - case 83: goto st1175; - case 97: goto st1172; - case 115: goto st1175; + case 9: goto tr3551; + case 32: goto tr3551; + case 40: goto tr3552; + case 41: goto tr3553; + case 2058: goto tr3554; + case 2107: goto tr3555; } - goto tr3340; + goto tr3373; st1172: if ( ++p == pe ) goto _test_eof1172; case 1172: switch( (*p) ) { - case 77: goto st1173; - case 109: goto st1173; + case 65: goto st1173; + case 97: goto st1173; } - goto tr3340; + goto tr3373; st1173: if ( ++p == pe ) goto _test_eof1173; case 1173: switch( (*p) ) { - case 69: goto st1174; - case 101: goto st1174; + case 77: goto st1174; + case 109: goto st1174; } - goto tr3340; + goto tr3373; st1174: if ( ++p == pe ) goto _test_eof1174; case 1174: + switch( (*p) ) { + case 69: goto st1175; + case 101: goto st1175; + } + goto tr3373; +st1175: + if ( ++p == pe ) + goto _test_eof1175; +case 1175: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90624,66 +91722,41 @@ case 1174: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3554; - case 32: goto tr3554; - case 40: goto tr3555; - case 41: goto tr3556; - case 2058: goto tr3557; - case 2107: goto tr3558; - } - goto tr3340; -st1175: - if ( ++p == pe ) - goto _test_eof1175; -case 1175: - switch( (*p) ) { - case 75: goto st1176; - case 107: goto st1176; + case 9: goto tr3559; + case 32: goto tr3559; + case 40: goto tr3560; + case 41: goto tr3561; + case 2058: goto tr3562; + case 2107: goto tr3563; } - goto tr3340; + goto tr3373; st1176: if ( ++p == pe ) goto _test_eof1176; case 1176: switch( (*p) ) { - case 69: goto st1177; - case 101: goto st1177; + case 89: goto st1177; + case 121: goto st1177; } - goto tr3340; + goto tr3373; st1177: if ( ++p == pe ) goto _test_eof1177; case 1177: switch( (*p) ) { - case 89: goto st1178; - case 121: goto st1178; + case 78: goto st1178; + case 110: goto st1178; } - goto tr3340; + goto tr3373; st1178: if ( ++p == pe ) goto _test_eof1178; case 1178: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3562; - case 32: goto tr3562; - case 40: goto tr3563; - case 41: goto tr3564; - case 2058: goto tr3565; - case 2107: goto tr3566; + switch( (*p) ) { + case 67: goto st1179; + case 99: goto st1179; } - goto tr3340; + goto tr3373; st1179: if ( ++p == pe ) goto _test_eof1179; @@ -90708,41 +91781,47 @@ case 1179: case 2058: goto tr3570; case 2107: goto tr3571; } - goto tr3340; + goto tr3373; st1180: if ( ++p == pe ) goto _test_eof1180; case 1180: switch( (*p) ) { - case 85: goto st1181; - case 117: goto st1181; + case 72: goto st1181; + case 78: goto st1185; + case 83: goto st1193; + case 104: goto st1181; + case 110: goto st1185; + case 115: goto st1193; } - goto tr3340; + goto tr3373; st1181: if ( ++p == pe ) goto _test_eof1181; case 1181: switch( (*p) ) { - case 73: goto st1182; - case 105: goto st1182; + case 67: goto st1182; + case 99: goto st1182; } - goto tr3340; + goto tr3373; st1182: if ( ++p == pe ) goto _test_eof1182; case 1182: switch( (*p) ) { - case 52: goto st1183; - case 54: goto st1185; + case 73: goto st1183; + case 105: goto st1183; } - goto tr3340; + goto tr3373; st1183: if ( ++p == pe ) goto _test_eof1183; case 1183: - if ( (*p) == 56 ) - goto st1184; - goto tr3340; + switch( (*p) ) { + case 68: goto st1184; + case 100: goto st1184; + } + goto tr3373; st1184: if ( ++p == pe ) goto _test_eof1184; @@ -90760,25 +91839,47 @@ case 1184: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3577; - case 32: goto tr3577; - case 40: goto tr3578; - case 41: goto tr3579; - case 2058: goto tr3580; - case 2107: goto tr3581; + case 9: goto tr3578; + case 32: goto tr3578; + case 40: goto tr3579; + case 41: goto tr3580; + case 2058: goto tr3581; + case 2107: goto tr3582; } - goto tr3340; + goto tr3373; st1185: if ( ++p == pe ) goto _test_eof1185; case 1185: - if ( (*p) == 52 ) - goto st1186; - goto tr3340; + switch( (*p) ) { + case 65: goto st1186; + case 83: goto st1189; + case 97: goto st1186; + case 115: goto st1189; + } + goto tr3373; st1186: if ( ++p == pe ) goto _test_eof1186; case 1186: + switch( (*p) ) { + case 77: goto st1187; + case 109: goto st1187; + } + goto tr3373; +st1187: + if ( ++p == pe ) + goto _test_eof1187; +case 1187: + switch( (*p) ) { + case 69: goto st1188; + case 101: goto st1188; + } + goto tr3373; +st1188: + if ( ++p == pe ) + goto _test_eof1188; +case 1188: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90792,56 +91893,45 @@ case 1186: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3583; - case 32: goto tr3583; - case 40: goto tr3584; - case 41: goto tr3585; - case 2058: goto tr3586; - case 2107: goto tr3587; - } - goto tr3340; -st1187: - if ( ++p == pe ) - goto _test_eof1187; -case 1187: - switch( (*p) ) { - case 73: goto st1188; - case 84: goto st1192; - case 105: goto st1188; - case 116: goto st1192; - } - goto tr3340; -st1188: - if ( ++p == pe ) - goto _test_eof1188; -case 1188: - switch( (*p) ) { - case 78: goto st1189; - case 110: goto st1189; + case 9: goto tr3587; + case 32: goto tr3587; + case 40: goto tr3588; + case 41: goto tr3589; + case 2058: goto tr3590; + case 2107: goto tr3591; } - goto tr3340; + goto tr3373; st1189: if ( ++p == pe ) goto _test_eof1189; case 1189: switch( (*p) ) { - case 70: goto st1190; - case 102: goto st1190; + case 75: goto st1190; + case 107: goto st1190; } - goto tr3340; + goto tr3373; st1190: if ( ++p == pe ) goto _test_eof1190; case 1190: switch( (*p) ) { - case 79: goto st1191; - case 111: goto st1191; + case 69: goto st1191; + case 101: goto st1191; } - goto tr3340; + goto tr3373; st1191: if ( ++p == pe ) goto _test_eof1191; case 1191: + switch( (*p) ) { + case 89: goto st1192; + case 121: goto st1192; + } + goto tr3373; +st1192: + if ( ++p == pe ) + goto _test_eof1192; +case 1192: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90855,45 +91945,63 @@ case 1191: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3593; - case 32: goto tr3593; - case 40: goto tr3594; - case 41: goto tr3595; - case 2058: goto tr3596; - case 2107: goto tr3597; - } - goto tr3340; -st1192: - if ( ++p == pe ) - goto _test_eof1192; -case 1192: - switch( (*p) ) { - case 84: goto st1193; - case 116: goto st1193; + case 9: goto tr3595; + case 32: goto tr3595; + case 40: goto tr3596; + case 41: goto tr3597; + case 2058: goto tr3598; + case 2107: goto tr3599; } - goto tr3340; + goto tr3373; st1193: if ( ++p == pe ) goto _test_eof1193; case 1193: - switch( (*p) ) { - case 80: goto st1194; - case 112: goto st1194; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr3600; + case 32: goto tr3600; + case 40: goto tr3601; + case 41: goto tr3602; + case 89: goto st1194; + case 121: goto st1194; + case 2058: goto tr3604; + case 2107: goto tr3605; } - goto tr3340; + goto tr3373; st1194: if ( ++p == pe ) goto _test_eof1194; case 1194: switch( (*p) ) { - case 83: goto st1195; - case 115: goto st1195; + case 78: goto st1195; + case 110: goto st1195; } - goto tr3340; + goto tr3373; st1195: if ( ++p == pe ) goto _test_eof1195; case 1195: + switch( (*p) ) { + case 67: goto st1196; + case 99: goto st1196; + } + goto tr3373; +st1196: + if ( ++p == pe ) + goto _test_eof1196; +case 1196: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90907,81 +92015,52 @@ case 1195: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3601; - case 32: goto tr3601; - case 40: goto tr3602; - case 41: goto tr3603; - case 2058: goto tr3604; - case 2107: goto tr3605; - } - goto tr3340; -st1196: - if ( ++p == pe ) - goto _test_eof1196; -case 1196: - switch( (*p) ) { - case 80: goto st1197; - case 112: goto st1197; + case 9: goto tr3608; + case 32: goto tr3608; + case 40: goto tr3609; + case 41: goto tr3610; + case 2058: goto tr3611; + case 2107: goto tr3612; } - goto tr3340; + goto tr3373; st1197: if ( ++p == pe ) goto _test_eof1197; case 1197: switch( (*p) ) { - case 83: goto st1198; - case 115: goto st1198; + case 85: goto st1198; + case 117: goto st1198; } - goto tr3340; + goto tr3373; st1198: if ( ++p == pe ) goto _test_eof1198; case 1198: switch( (*p) ) { - case 69: goto st1199; - case 101: goto st1199; + case 73: goto st1199; + case 105: goto st1199; } - goto tr3340; + goto tr3373; st1199: if ( ++p == pe ) goto _test_eof1199; case 1199: switch( (*p) ) { - case 67: goto st1200; - case 99: goto st1200; + case 52: goto st1200; + case 54: goto st1202; } - goto tr3340; + goto tr3373; st1200: if ( ++p == pe ) goto _test_eof1200; case 1200: - switch( (*p) ) { - case 75: goto st1201; - case 107: goto st1201; - } - goto tr3340; + if ( (*p) == 56 ) + goto st1201; + goto tr3373; st1201: if ( ++p == pe ) goto _test_eof1201; case 1201: - switch( (*p) ) { - case 69: goto st1202; - case 101: goto st1202; - } - goto tr3340; -st1202: - if ( ++p == pe ) - goto _test_eof1202; -case 1202: - switch( (*p) ) { - case 89: goto st1203; - case 121: goto st1203; - } - goto tr3340; -st1203: - if ( ++p == pe ) - goto _test_eof1203; -case 1203: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90995,38 +92074,25 @@ case 1203: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3613; - case 32: goto tr3613; - case 40: goto tr3614; - case 41: goto tr3615; - case 2058: goto tr3616; - case 2107: goto tr3617; + case 9: goto tr3618; + case 32: goto tr3618; + case 40: goto tr3619; + case 41: goto tr3620; + case 2058: goto tr3621; + case 2107: goto tr3622; } - goto tr3340; -st1204: + goto tr3373; +st1202: if ( ++p == pe ) - goto _test_eof1204; -case 1204: - switch( (*p) ) { - case 69: goto st1205; - case 88: goto st1207; - case 101: goto st1205; - case 120: goto st1207; - } - goto tr3340; -st1205: - if ( ++p == pe ) - goto _test_eof1205; -case 1205: - switch( (*p) ) { - case 89: goto st1206; - case 121: goto st1206; - } - goto tr3340; -st1206: + goto _test_eof1202; +case 1202: + if ( (*p) == 52 ) + goto st1203; + goto tr3373; +st1203: if ( ++p == pe ) - goto _test_eof1206; -case 1206: + goto _test_eof1203; +case 1203: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91040,18 +92106,56 @@ case 1206: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3621; - case 32: goto tr3621; - case 40: goto tr3622; - case 41: goto tr3623; - case 2058: goto tr3624; - case 2107: goto tr3625; + case 9: goto tr3624; + case 32: goto tr3624; + case 40: goto tr3625; + case 41: goto tr3626; + case 2058: goto tr3627; + case 2107: goto tr3628; } - goto tr3340; + goto tr3373; +st1204: + if ( ++p == pe ) + goto _test_eof1204; +case 1204: + switch( (*p) ) { + case 73: goto st1205; + case 84: goto st1209; + case 105: goto st1205; + case 116: goto st1209; + } + goto tr3373; +st1205: + if ( ++p == pe ) + goto _test_eof1205; +case 1205: + switch( (*p) ) { + case 78: goto st1206; + case 110: goto st1206; + } + goto tr3373; +st1206: + if ( ++p == pe ) + goto _test_eof1206; +case 1206: + switch( (*p) ) { + case 70: goto st1207; + case 102: goto st1207; + } + goto tr3373; st1207: if ( ++p == pe ) goto _test_eof1207; case 1207: + switch( (*p) ) { + case 79: goto st1208; + case 111: goto st1208; + } + goto tr3373; +st1208: + if ( ++p == pe ) + goto _test_eof1208; +case 1208: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91065,66 +92169,41 @@ case 1207: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3626; - case 32: goto tr3626; - case 40: goto tr3627; - case 41: goto tr3628; - case 2058: goto tr3629; - case 2107: goto tr3630; - } - goto tr3340; -st1208: - if ( ++p == pe ) - goto _test_eof1208; -case 1208: - switch( (*p) ) { - case 51: goto st1209; - case 54: goto st1211; - case 79: goto st1213; - case 80: goto st1215; - case 111: goto st1213; - case 112: goto st1215; + case 9: goto tr3634; + case 32: goto tr3634; + case 40: goto tr3635; + case 41: goto tr3636; + case 2058: goto tr3637; + case 2107: goto tr3638; } - goto tr3340; + goto tr3373; st1209: if ( ++p == pe ) goto _test_eof1209; case 1209: - if ( (*p) == 50 ) - goto st1210; - goto tr3340; + switch( (*p) ) { + case 84: goto st1210; + case 116: goto st1210; + } + goto tr3373; st1210: if ( ++p == pe ) goto _test_eof1210; case 1210: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3636; - case 32: goto tr3636; - case 40: goto tr3637; - case 41: goto tr3638; - case 2058: goto tr3639; - case 2107: goto tr3640; + switch( (*p) ) { + case 80: goto st1211; + case 112: goto st1211; } - goto tr3340; + goto tr3373; st1211: if ( ++p == pe ) goto _test_eof1211; case 1211: - if ( (*p) == 52 ) - goto st1212; - goto tr3340; + switch( (*p) ) { + case 83: goto st1212; + case 115: goto st1212; + } + goto tr3373; st1212: if ( ++p == pe ) goto _test_eof1212; @@ -91149,104 +92228,70 @@ case 1212: case 2058: goto tr3645; case 2107: goto tr3646; } - goto tr3340; + goto tr3373; st1213: if ( ++p == pe ) goto _test_eof1213; case 1213: switch( (*p) ) { - case 67: goto st1214; - case 99: goto st1214; + case 80: goto st1214; + case 112: goto st1214; } - goto tr3340; + goto tr3373; st1214: if ( ++p == pe ) goto _test_eof1214; case 1214: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3648; - case 32: goto tr3648; - case 40: goto tr3649; - case 41: goto tr3650; - case 2058: goto tr3651; - case 2107: goto tr3652; + switch( (*p) ) { + case 83: goto st1215; + case 115: goto st1215; } - goto tr3340; + goto tr3373; st1215: if ( ++p == pe ) goto _test_eof1215; case 1215: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3653; - case 32: goto tr3653; - case 40: goto tr3654; - case 41: goto tr3655; - case 2058: goto tr3656; - case 2107: goto tr3657; + switch( (*p) ) { + case 69: goto st1216; + case 101: goto st1216; } - goto tr3340; + goto tr3373; st1216: if ( ++p == pe ) goto _test_eof1216; case 1216: switch( (*p) ) { - case 73: goto st1217; - case 88: goto st1221; - case 105: goto st1217; - case 120: goto st1221; + case 67: goto st1217; + case 99: goto st1217; } - goto tr3340; + goto tr3373; st1217: if ( ++p == pe ) goto _test_eof1217; case 1217: switch( (*p) ) { - case 78: goto st1218; - case 110: goto st1218; + case 75: goto st1218; + case 107: goto st1218; } - goto tr3340; + goto tr3373; st1218: if ( ++p == pe ) goto _test_eof1218; case 1218: switch( (*p) ) { - case 70: goto st1219; - case 102: goto st1219; + case 69: goto st1219; + case 101: goto st1219; } - goto tr3340; + goto tr3373; st1219: if ( ++p == pe ) goto _test_eof1219; case 1219: switch( (*p) ) { - case 79: goto st1220; - case 111: goto st1220; + case 89: goto st1220; + case 121: goto st1220; } - goto tr3340; + goto tr3373; st1220: if ( ++p == pe ) goto _test_eof1220; @@ -91264,18 +92309,38 @@ case 1220: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3663; - case 32: goto tr3663; - case 40: goto tr3664; - case 41: goto tr3665; - case 2058: goto tr3666; - case 2107: goto tr3667; + case 9: goto tr3654; + case 32: goto tr3654; + case 40: goto tr3655; + case 41: goto tr3656; + case 2058: goto tr3657; + case 2107: goto tr3658; } - goto tr3340; + goto tr3373; st1221: if ( ++p == pe ) goto _test_eof1221; case 1221: + switch( (*p) ) { + case 69: goto st1222; + case 88: goto st1224; + case 101: goto st1222; + case 120: goto st1224; + } + goto tr3373; +st1222: + if ( ++p == pe ) + goto _test_eof1222; +case 1222: + switch( (*p) ) { + case 89: goto st1223; + case 121: goto st1223; + } + goto tr3373; +st1223: + if ( ++p == pe ) + goto _test_eof1223; +case 1223: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91289,58 +92354,18 @@ case 1221: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3668; - case 32: goto tr3668; - case 40: goto tr3669; - case 41: goto tr3670; - case 2058: goto tr3671; - case 2107: goto tr3672; + case 9: goto tr3662; + case 32: goto tr3662; + case 40: goto tr3663; + case 41: goto tr3664; + case 2058: goto tr3665; + case 2107: goto tr3666; } - goto tr3340; -st1222: - if ( ++p == pe ) - goto _test_eof1222; -case 1222: - switch( (*p) ) { - case 65: goto st1223; - case 73: goto st1227; - case 83: goto st1229; - case 97: goto st1223; - case 105: goto st1227; - case 115: goto st1229; - } - goto tr3340; -st1223: - if ( ++p == pe ) - goto _test_eof1223; -case 1223: - switch( (*p) ) { - case 80: goto st1224; - case 112: goto st1224; - } - goto tr3340; + goto tr3373; st1224: if ( ++p == pe ) goto _test_eof1224; case 1224: - switch( (*p) ) { - case 84: goto st1225; - case 116: goto st1225; - } - goto tr3340; -st1225: - if ( ++p == pe ) - goto _test_eof1225; -case 1225: - switch( (*p) ) { - case 82: goto st1226; - case 114: goto st1226; - } - goto tr3340; -st1226: - if ( ++p == pe ) - goto _test_eof1226; -case 1226: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91354,27 +92379,38 @@ case 1226: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3679; - case 32: goto tr3679; - case 40: goto tr3680; - case 41: goto tr3681; - case 2058: goto tr3682; - case 2107: goto tr3683; + case 9: goto tr3667; + case 32: goto tr3667; + case 40: goto tr3668; + case 41: goto tr3669; + case 2058: goto tr3670; + case 2107: goto tr3671; } - goto tr3340; -st1227: + goto tr3373; +st1225: if ( ++p == pe ) - goto _test_eof1227; -case 1227: + goto _test_eof1225; +case 1225: switch( (*p) ) { - case 68: goto st1228; - case 100: goto st1228; + case 51: goto st1226; + case 54: goto st1228; + case 79: goto st1230; + case 80: goto st1232; + case 111: goto st1230; + case 112: goto st1232; } - goto tr3340; -st1228: + goto tr3373; +st1226: if ( ++p == pe ) - goto _test_eof1228; -case 1228: + goto _test_eof1226; +case 1226: + if ( (*p) == 50 ) + goto st1227; + goto tr3373; +st1227: + if ( ++p == pe ) + goto _test_eof1227; +case 1227: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91388,14 +92424,21 @@ case 1228: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3685; - case 32: goto tr3685; - case 40: goto tr3686; - case 41: goto tr3687; - case 2058: goto tr3688; - case 2107: goto tr3689; + case 9: goto tr3677; + case 32: goto tr3677; + case 40: goto tr3678; + case 41: goto tr3679; + case 2058: goto tr3680; + case 2107: goto tr3681; } - goto tr3340; + goto tr3373; +st1228: + if ( ++p == pe ) + goto _test_eof1228; +case 1228: + if ( (*p) == 52 ) + goto st1229; + goto tr3373; st1229: if ( ++p == pe ) goto _test_eof1229; @@ -91413,16 +92456,14 @@ case 1229: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3690; - case 32: goto tr3690; - case 40: goto tr3691; - case 41: goto tr3692; - case 69: goto st1230; - case 101: goto st1230; - case 2058: goto tr3694; - case 2107: goto tr3695; + case 9: goto tr3683; + case 32: goto tr3683; + case 40: goto tr3684; + case 41: goto tr3685; + case 2058: goto tr3686; + case 2107: goto tr3687; } - goto tr3340; + goto tr3373; st1230: if ( ++p == pe ) goto _test_eof1230; @@ -91431,7 +92472,7 @@ case 1230: case 67: goto st1231; case 99: goto st1231; } - goto tr3340; + goto tr3373; st1231: if ( ++p == pe ) goto _test_eof1231; @@ -91449,15 +92490,14 @@ case 1231: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3697; - case 32: goto tr3697; - case 40: goto tr3698; - case 41: goto tr3699; - case 51: goto st1232; - case 2058: goto tr3701; - case 2107: goto tr3702; + case 9: goto tr3689; + case 32: goto tr3689; + case 40: goto tr3690; + case 41: goto tr3691; + case 2058: goto tr3692; + case 2107: goto tr3693; } - goto tr3340; + goto tr3373; st1232: if ( ++p == pe ) goto _test_eof1232; @@ -91475,52 +92515,52 @@ case 1232: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3703; - case 32: goto tr3703; - case 40: goto tr3704; - case 41: goto tr3705; - case 80: goto st1233; - case 112: goto st1233; - case 2058: goto tr3707; - case 2107: goto tr3708; + case 9: goto tr3694; + case 32: goto tr3694; + case 40: goto tr3695; + case 41: goto tr3696; + case 2058: goto tr3697; + case 2107: goto tr3698; } - goto tr3340; + goto tr3373; st1233: if ( ++p == pe ) goto _test_eof1233; case 1233: switch( (*p) ) { - case 65: goto st1234; - case 97: goto st1234; + case 73: goto st1234; + case 88: goto st1238; + case 105: goto st1234; + case 120: goto st1238; } - goto tr3340; + goto tr3373; st1234: if ( ++p == pe ) goto _test_eof1234; case 1234: switch( (*p) ) { - case 82: goto st1235; - case 114: goto st1235; + case 78: goto st1235; + case 110: goto st1235; } - goto tr3340; + goto tr3373; st1235: if ( ++p == pe ) goto _test_eof1235; case 1235: switch( (*p) ) { - case 65: goto st1236; - case 97: goto st1236; + case 70: goto st1236; + case 102: goto st1236; } - goto tr3340; + goto tr3373; st1236: if ( ++p == pe ) goto _test_eof1236; case 1236: switch( (*p) ) { - case 77: goto st1237; - case 109: goto st1237; + case 79: goto st1237; + case 111: goto st1237; } - goto tr3340; + goto tr3373; st1237: if ( ++p == pe ) goto _test_eof1237; @@ -91538,99 +92578,142 @@ case 1237: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3713; - case 32: goto tr3713; - case 40: goto tr3714; - case 41: goto tr3715; - case 2058: goto tr3716; - case 2107: goto tr3717; + case 9: goto tr3704; + case 32: goto tr3704; + case 40: goto tr3705; + case 41: goto tr3706; + case 2058: goto tr3707; + case 2107: goto tr3708; } - goto tr3340; + goto tr3373; st1238: if ( ++p == pe ) goto _test_eof1238; case 1238: - switch( (*p) ) { - case 80: goto st1239; - case 112: goto st1239; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto tr3340; + switch( _widec ) { + case 9: goto tr3709; + case 32: goto tr3709; + case 40: goto tr3710; + case 41: goto tr3711; + case 2058: goto tr3712; + case 2107: goto tr3713; + } + goto tr3373; st1239: if ( ++p == pe ) goto _test_eof1239; case 1239: switch( (*p) ) { - case 69: goto st1240; - case 101: goto st1240; + case 65: goto st1240; + case 73: goto st1244; + case 83: goto st1246; + case 97: goto st1240; + case 105: goto st1244; + case 115: goto st1246; } - goto tr3340; + goto tr3373; st1240: if ( ++p == pe ) goto _test_eof1240; case 1240: switch( (*p) ) { - case 78: goto st1241; - case 110: goto st1241; + case 80: goto st1241; + case 112: goto st1241; } - goto tr3340; + goto tr3373; st1241: if ( ++p == pe ) goto _test_eof1241; case 1241: switch( (*p) ) { - case 80: goto st1242; - case 112: goto st1242; + case 84: goto st1242; + case 116: goto st1242; } - goto tr3340; + goto tr3373; st1242: if ( ++p == pe ) goto _test_eof1242; case 1242: switch( (*p) ) { - case 71: goto st1243; - case 103: goto st1243; + case 82: goto st1243; + case 114: goto st1243; } - goto tr3340; + goto tr3373; st1243: if ( ++p == pe ) goto _test_eof1243; case 1243: - switch( (*p) ) { - case 80: goto st1244; - case 112: goto st1244; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto tr3340; + switch( _widec ) { + case 9: goto tr3720; + case 32: goto tr3720; + case 40: goto tr3721; + case 41: goto tr3722; + case 2058: goto tr3723; + case 2107: goto tr3724; + } + goto tr3373; st1244: if ( ++p == pe ) goto _test_eof1244; case 1244: switch( (*p) ) { - case 75: goto st1245; - case 107: goto st1245; + case 68: goto st1245; + case 100: goto st1245; } - goto tr3340; + goto tr3373; st1245: if ( ++p == pe ) goto _test_eof1245; case 1245: - switch( (*p) ) { - case 69: goto st1246; - case 101: goto st1246; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto tr3340; + switch( _widec ) { + case 9: goto tr3726; + case 32: goto tr3726; + case 40: goto tr3727; + case 41: goto tr3728; + case 2058: goto tr3729; + case 2107: goto tr3730; + } + goto tr3373; st1246: if ( ++p == pe ) goto _test_eof1246; case 1246: - switch( (*p) ) { - case 89: goto st1247; - case 121: goto st1247; - } - goto tr3340; -st1247: - if ( ++p == pe ) - goto _test_eof1247; -case 1247: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91644,36 +92727,55 @@ case 1247: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3727; - case 32: goto tr3727; - case 40: goto tr3728; - case 41: goto tr3729; - case 2058: goto tr3730; - case 2107: goto tr3731; + case 9: goto tr3731; + case 32: goto tr3731; + case 40: goto tr3732; + case 41: goto tr3733; + case 69: goto st1247; + case 101: goto st1247; + case 2058: goto tr3735; + case 2107: goto tr3736; + } + goto tr3373; +st1247: + if ( ++p == pe ) + goto _test_eof1247; +case 1247: + switch( (*p) ) { + case 67: goto st1248; + case 99: goto st1248; } - goto tr3340; + goto tr3373; st1248: if ( ++p == pe ) goto _test_eof1248; case 1248: - switch( (*p) ) { - case 84: goto st1249; - case 116: goto st1249; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto tr3340; + switch( _widec ) { + case 9: goto tr3738; + case 32: goto tr3738; + case 40: goto tr3739; + case 41: goto tr3740; + case 51: goto st1249; + case 2058: goto tr3742; + case 2107: goto tr3743; + } + goto tr3373; st1249: if ( ++p == pe ) goto _test_eof1249; case 1249: - switch( (*p) ) { - case 82: goto st1250; - case 114: goto st1250; - } - goto tr3340; -st1250: - if ( ++p == pe ) - goto _test_eof1250; -case 1250: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91687,83 +92789,56 @@ case 1250: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3734; - case 32: goto tr3734; - case 40: goto tr3735; - case 41: goto tr3736; - case 2058: goto tr3737; - case 2107: goto tr3738; + case 9: goto tr3744; + case 32: goto tr3744; + case 40: goto tr3745; + case 41: goto tr3746; + case 80: goto st1250; + case 112: goto st1250; + case 2058: goto tr3748; + case 2107: goto tr3749; + } + goto tr3373; +st1250: + if ( ++p == pe ) + goto _test_eof1250; +case 1250: + switch( (*p) ) { + case 65: goto st1251; + case 97: goto st1251; } - goto tr3340; + goto tr3373; st1251: if ( ++p == pe ) goto _test_eof1251; case 1251: switch( (*p) ) { - case 80: goto st1252; - case 82: goto st1253; - case 84: goto st1257; - case 112: goto st1252; - case 114: goto st1253; - case 116: goto st1257; + case 82: goto st1252; + case 114: goto st1252; } - goto tr3340; + goto tr3373; st1252: if ( ++p == pe ) goto _test_eof1252; case 1252: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3742; - case 32: goto tr3742; - case 40: goto tr3743; - case 41: goto tr3744; - case 2058: goto tr3745; - case 2107: goto tr3746; + switch( (*p) ) { + case 65: goto st1253; + case 97: goto st1253; } - goto tr3340; + goto tr3373; st1253: if ( ++p == pe ) goto _test_eof1253; case 1253: switch( (*p) ) { - case 83: goto st1254; - case 115: goto st1254; + case 77: goto st1254; + case 109: goto st1254; } - goto tr3340; + goto tr3373; st1254: if ( ++p == pe ) goto _test_eof1254; case 1254: - switch( (*p) ) { - case 73: goto st1255; - case 105: goto st1255; - } - goto tr3340; -st1255: - if ( ++p == pe ) - goto _test_eof1255; -case 1255: - switch( (*p) ) { - case 71: goto st1256; - case 103: goto st1256; - } - goto tr3340; -st1256: - if ( ++p == pe ) - goto _test_eof1256; -case 1256: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91777,132 +92852,99 @@ case 1256: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3750; - case 32: goto tr3750; - case 40: goto tr3751; - case 41: goto tr3752; - case 2058: goto tr3753; - case 2107: goto tr3754; + case 9: goto tr3754; + case 32: goto tr3754; + case 40: goto tr3755; + case 41: goto tr3756; + case 2058: goto tr3757; + case 2107: goto tr3758; + } + goto tr3373; +st1255: + if ( ++p == pe ) + goto _test_eof1255; +case 1255: + switch( (*p) ) { + case 80: goto st1256; + case 112: goto st1256; + } + goto tr3373; +st1256: + if ( ++p == pe ) + goto _test_eof1256; +case 1256: + switch( (*p) ) { + case 69: goto st1257; + case 101: goto st1257; } - goto tr3340; + goto tr3373; st1257: if ( ++p == pe ) goto _test_eof1257; case 1257: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3755; - case 32: goto tr3755; - case 40: goto tr3756; - case 41: goto tr3757; - case 2058: goto tr3758; - case 2107: goto tr3759; + switch( (*p) ) { + case 78: goto st1258; + case 110: goto st1258; } - goto tr3340; + goto tr3373; st1258: if ( ++p == pe ) goto _test_eof1258; case 1258: switch( (*p) ) { - case 77: goto st1259; - case 79: goto st1264; - case 80: goto st1266; - case 82: goto st1268; - case 83: goto st1270; - case 86: goto st1274; - case 109: goto st1259; - case 111: goto st1264; - case 112: goto st1266; - case 114: goto st1268; - case 115: goto st1270; - case 118: goto st1274; + case 80: goto st1259; + case 112: goto st1259; } - goto tr3340; + goto tr3373; st1259: if ( ++p == pe ) goto _test_eof1259; case 1259: switch( (*p) ) { - case 73: goto st1260; - case 105: goto st1260; + case 71: goto st1260; + case 103: goto st1260; } - goto tr3340; + goto tr3373; st1260: if ( ++p == pe ) goto _test_eof1260; case 1260: switch( (*p) ) { - case 77: goto st1261; - case 109: goto st1261; + case 80: goto st1261; + case 112: goto st1261; } - goto tr3340; + goto tr3373; st1261: if ( ++p == pe ) goto _test_eof1261; case 1261: switch( (*p) ) { - case 69: goto st1262; - case 101: goto st1262; + case 75: goto st1262; + case 107: goto st1262; } - goto tr3340; + goto tr3373; st1262: if ( ++p == pe ) goto _test_eof1262; case 1262: switch( (*p) ) { - case 65: goto st1263; - case 97: goto st1263; + case 69: goto st1263; + case 101: goto st1263; } - goto tr3340; + goto tr3373; st1263: if ( ++p == pe ) goto _test_eof1263; case 1263: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3770; - case 32: goto tr3770; - case 40: goto tr3771; - case 41: goto tr3772; - case 2058: goto tr3773; - case 2107: goto tr3774; + switch( (*p) ) { + case 89: goto st1264; + case 121: goto st1264; } - goto tr3340; + goto tr3373; st1264: if ( ++p == pe ) goto _test_eof1264; case 1264: - switch( (*p) ) { - case 65: goto st1265; - case 97: goto st1265; - } - goto tr3340; -st1265: - if ( ++p == pe ) - goto _test_eof1265; -case 1265: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91916,23 +92958,32 @@ case 1265: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3776; - case 32: goto tr3776; - case 40: goto tr3777; - case 41: goto tr3778; - case 2058: goto tr3779; - case 2107: goto tr3780; + case 9: goto tr3768; + case 32: goto tr3768; + case 40: goto tr3769; + case 41: goto tr3770; + case 2058: goto tr3771; + case 2107: goto tr3772; + } + goto tr3373; +st1265: + if ( ++p == pe ) + goto _test_eof1265; +case 1265: + switch( (*p) ) { + case 84: goto st1266; + case 116: goto st1266; } - goto tr3340; + goto tr3373; st1266: if ( ++p == pe ) goto _test_eof1266; case 1266: switch( (*p) ) { - case 70: goto st1267; - case 102: goto st1267; + case 82: goto st1267; + case 114: goto st1267; } - goto tr3340; + goto tr3373; st1267: if ( ++p == pe ) goto _test_eof1267; @@ -91950,23 +93001,27 @@ case 1267: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3782; - case 32: goto tr3782; - case 40: goto tr3783; - case 41: goto tr3784; - case 2058: goto tr3785; - case 2107: goto tr3786; + case 9: goto tr3775; + case 32: goto tr3775; + case 40: goto tr3776; + case 41: goto tr3777; + case 2058: goto tr3778; + case 2107: goto tr3779; } - goto tr3340; + goto tr3373; st1268: if ( ++p == pe ) goto _test_eof1268; case 1268: switch( (*p) ) { - case 86: goto st1269; - case 118: goto st1269; + case 80: goto st1269; + case 82: goto st1270; + case 84: goto st1274; + case 112: goto st1269; + case 114: goto st1270; + case 116: goto st1274; } - goto tr3340; + goto tr3373; st1269: if ( ++p == pe ) goto _test_eof1269; @@ -91984,41 +93039,41 @@ case 1269: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3788; - case 32: goto tr3788; - case 40: goto tr3789; - case 41: goto tr3790; - case 2058: goto tr3791; - case 2107: goto tr3792; + case 9: goto tr3783; + case 32: goto tr3783; + case 40: goto tr3784; + case 41: goto tr3785; + case 2058: goto tr3786; + case 2107: goto tr3787; } - goto tr3340; + goto tr3373; st1270: if ( ++p == pe ) goto _test_eof1270; case 1270: switch( (*p) ) { - case 72: goto st1271; - case 104: goto st1271; + case 83: goto st1271; + case 115: goto st1271; } - goto tr3340; + goto tr3373; st1271: if ( ++p == pe ) goto _test_eof1271; case 1271: switch( (*p) ) { - case 70: goto st1272; - case 102: goto st1272; + case 73: goto st1272; + case 105: goto st1272; } - goto tr3340; + goto tr3373; st1272: if ( ++p == pe ) goto _test_eof1272; case 1272: switch( (*p) ) { - case 80: goto st1273; - case 112: goto st1273; + case 71: goto st1273; + case 103: goto st1273; } - goto tr3340; + goto tr3373; st1273: if ( ++p == pe ) goto _test_eof1273; @@ -92036,36 +93091,18 @@ case 1273: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3796; - case 32: goto tr3796; - case 40: goto tr3797; - case 41: goto tr3798; - case 2058: goto tr3799; - case 2107: goto tr3800; + case 9: goto tr3791; + case 32: goto tr3791; + case 40: goto tr3792; + case 41: goto tr3793; + case 2058: goto tr3794; + case 2107: goto tr3795; } - goto tr3340; + goto tr3373; st1274: if ( ++p == pe ) goto _test_eof1274; case 1274: - switch( (*p) ) { - case 67: goto st1275; - case 99: goto st1275; - } - goto tr3340; -st1275: - if ( ++p == pe ) - goto _test_eof1275; -case 1275: - switch( (*p) ) { - case 66: goto st1276; - case 98: goto st1276; - } - goto tr3340; -st1276: - if ( ++p == pe ) - goto _test_eof1276; -case 1276: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92079,36 +93116,60 @@ case 1276: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3803; - case 32: goto tr3803; - case 40: goto tr3804; - case 41: goto tr3805; - case 2058: goto tr3806; - case 2107: goto tr3807; + case 9: goto tr3796; + case 32: goto tr3796; + case 40: goto tr3797; + case 41: goto tr3798; + case 2058: goto tr3799; + case 2107: goto tr3800; + } + goto tr3373; +st1275: + if ( ++p == pe ) + goto _test_eof1275; +case 1275: + switch( (*p) ) { + case 77: goto st1276; + case 79: goto st1281; + case 80: goto st1283; + case 82: goto st1285; + case 83: goto st1287; + case 86: goto st1291; + case 109: goto st1276; + case 111: goto st1281; + case 112: goto st1283; + case 114: goto st1285; + case 115: goto st1287; + case 118: goto st1291; + } + goto tr3373; +st1276: + if ( ++p == pe ) + goto _test_eof1276; +case 1276: + switch( (*p) ) { + case 73: goto st1277; + case 105: goto st1277; } - goto tr3340; + goto tr3373; st1277: if ( ++p == pe ) goto _test_eof1277; case 1277: switch( (*p) ) { - case 76: goto st1278; - case 88: goto st1281; - case 89: goto st1283; - case 108: goto st1278; - case 120: goto st1281; - case 121: goto st1283; + case 77: goto st1278; + case 109: goto st1278; } - goto tr3340; + goto tr3373; st1278: if ( ++p == pe ) goto _test_eof1278; case 1278: switch( (*p) ) { - case 83: goto st1279; - case 115: goto st1279; + case 69: goto st1279; + case 101: goto st1279; } - goto tr3340; + goto tr3373; st1279: if ( ++p == pe ) goto _test_eof1279; @@ -92117,7 +93178,7 @@ case 1279: case 65: goto st1280; case 97: goto st1280; } - goto tr3340; + goto tr3373; st1280: if ( ++p == pe ) goto _test_eof1280; @@ -92135,23 +93196,23 @@ case 1280: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3813; - case 32: goto tr3813; - case 40: goto tr3814; - case 41: goto tr3815; - case 2058: goto tr3816; - case 2107: goto tr3817; + case 9: goto tr3811; + case 32: goto tr3811; + case 40: goto tr3812; + case 41: goto tr3813; + case 2058: goto tr3814; + case 2107: goto tr3815; } - goto tr3340; + goto tr3373; st1281: if ( ++p == pe ) goto _test_eof1281; case 1281: switch( (*p) ) { - case 84: goto st1282; - case 116: goto st1282; + case 65: goto st1282; + case 97: goto st1282; } - goto tr3340; + goto tr3373; st1282: if ( ++p == pe ) goto _test_eof1282; @@ -92169,74 +93230,57 @@ case 1282: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3819; - case 32: goto tr3819; - case 40: goto tr3820; - case 41: goto tr3821; - case 2058: goto tr3822; - case 2107: goto tr3823; + case 9: goto tr3817; + case 32: goto tr3817; + case 40: goto tr3818; + case 41: goto tr3819; + case 2058: goto tr3820; + case 2107: goto tr3821; } - goto tr3340; + goto tr3373; st1283: if ( ++p == pe ) goto _test_eof1283; case 1283: switch( (*p) ) { - case 80: goto st1284; - case 112: goto st1284; + case 70: goto st1284; + case 102: goto st1284; } - goto tr3340; + goto tr3373; st1284: if ( ++p == pe ) goto _test_eof1284; case 1284: - switch( (*p) ) { - case 69: goto st1285; - case 101: goto st1285; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr3823; + case 32: goto tr3823; + case 40: goto tr3824; + case 41: goto tr3825; + case 2058: goto tr3826; + case 2107: goto tr3827; } - goto tr3340; + goto tr3373; st1285: if ( ++p == pe ) goto _test_eof1285; case 1285: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3827; - goto tr3826; -tr3827: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} - } - } - goto st1286; -tr3831: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} - } + switch( (*p) ) { + case 86: goto st1286; + case 118: goto st1286; } - goto st1286; + goto tr3373; st1286: if ( ++p == pe ) goto _test_eof1286; @@ -92254,38 +93298,45 @@ case 1286: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3828; - case 32: goto tr3828; - case 40: goto tr3829; - case 41: goto tr3830; + case 9: goto tr3829; + case 32: goto tr3829; + case 40: goto tr3830; + case 41: goto tr3831; case 2058: goto tr3832; case 2107: goto tr3833; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3831; - goto tr3826; + goto tr3373; st1287: if ( ++p == pe ) goto _test_eof1287; case 1287: switch( (*p) ) { - case 82: goto st1288; - case 114: goto st1288; + case 72: goto st1288; + case 104: goto st1288; } - goto tr3340; + goto tr3373; st1288: if ( ++p == pe ) goto _test_eof1288; case 1288: switch( (*p) ) { - case 73: goto st1289; - case 105: goto st1289; + case 70: goto st1289; + case 102: goto st1289; } - goto tr3340; + goto tr3373; st1289: if ( ++p == pe ) goto _test_eof1289; case 1289: + switch( (*p) ) { + case 80: goto st1290; + case 112: goto st1290; + } + goto tr3373; +st1290: + if ( ++p == pe ) + goto _test_eof1290; +case 1290: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92299,63 +93350,36 @@ case 1289: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3836; - case 32: goto tr3836; - case 40: goto tr3837; - case 41: goto tr3838; - case 2058: goto tr3839; - case 2107: goto tr3840; - } - goto tr3340; -st1290: - if ( ++p == pe ) - goto _test_eof1290; -case 1290: - switch( (*p) ) { - case 65: goto st1291; - case 97: goto st1291; + case 9: goto tr3837; + case 32: goto tr3837; + case 40: goto tr3838; + case 41: goto tr3839; + case 2058: goto tr3840; + case 2107: goto tr3841; } - goto tr3340; + goto tr3373; st1291: if ( ++p == pe ) goto _test_eof1291; case 1291: switch( (*p) ) { - case 76: goto st1292; - case 108: goto st1292; + case 67: goto st1292; + case 99: goto st1292; } - goto tr3340; + goto tr3373; st1292: if ( ++p == pe ) goto _test_eof1292; case 1292: switch( (*p) ) { - case 76: goto st1293; - case 108: goto st1293; + case 66: goto st1293; + case 98: goto st1293; } - goto tr3340; + goto tr3373; st1293: if ( ++p == pe ) goto _test_eof1293; case 1293: - switch( (*p) ) { - case 69: goto st1294; - case 101: goto st1294; - } - goto tr3340; -st1294: - if ( ++p == pe ) - goto _test_eof1294; -case 1294: - switch( (*p) ) { - case 84: goto st1295; - case 116: goto st1295; - } - goto tr3340; -st1295: - if ( ++p == pe ) - goto _test_eof1295; -case 1295: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92369,63 +93393,168 @@ case 1295: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3846; - case 32: goto tr3846; - case 40: goto tr3847; - case 41: goto tr3848; - case 2058: goto tr3849; - case 2107: goto tr3850; + case 9: goto tr3844; + case 32: goto tr3844; + case 40: goto tr3845; + case 41: goto tr3846; + case 2058: goto tr3847; + case 2107: goto tr3848; + } + goto tr3373; +st1294: + if ( ++p == pe ) + goto _test_eof1294; +case 1294: + switch( (*p) ) { + case 76: goto st1295; + case 88: goto st1298; + case 89: goto st1300; + case 108: goto st1295; + case 120: goto st1298; + case 121: goto st1300; + } + goto tr3373; +st1295: + if ( ++p == pe ) + goto _test_eof1295; +case 1295: + switch( (*p) ) { + case 83: goto st1296; + case 115: goto st1296; } - goto tr3340; + goto tr3373; st1296: if ( ++p == pe ) goto _test_eof1296; case 1296: switch( (*p) ) { - case 79: goto st1297; - case 111: goto st1297; + case 65: goto st1297; + case 97: goto st1297; } - goto tr3340; + goto tr3373; st1297: if ( ++p == pe ) goto _test_eof1297; case 1297: - switch( (*p) ) { - case 78: goto st1298; - case 110: goto st1298; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto tr3340; + switch( _widec ) { + case 9: goto tr3854; + case 32: goto tr3854; + case 40: goto tr3855; + case 41: goto tr3856; + case 2058: goto tr3857; + case 2107: goto tr3858; + } + goto tr3373; st1298: if ( ++p == pe ) goto _test_eof1298; case 1298: switch( (*p) ) { - case 69: goto st1299; - case 101: goto st1299; + case 84: goto st1299; + case 116: goto st1299; } - goto tr3340; + goto tr3373; st1299: if ( ++p == pe ) goto _test_eof1299; case 1299: - switch( (*p) ) { - case 77: goto st1300; - case 109: goto st1300; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr3860; + case 32: goto tr3860; + case 40: goto tr3861; + case 41: goto tr3862; + case 2058: goto tr3863; + case 2107: goto tr3864; } - goto tr3340; + goto tr3373; st1300: if ( ++p == pe ) goto _test_eof1300; case 1300: switch( (*p) ) { - case 68: goto st1301; - case 100: goto st1301; + case 80: goto st1301; + case 112: goto st1301; } - goto tr3340; + goto tr3373; st1301: if ( ++p == pe ) goto _test_eof1301; case 1301: + switch( (*p) ) { + case 69: goto st1302; + case 101: goto st1302; + } + goto tr3373; +st1302: + if ( ++p == pe ) + goto _test_eof1302; +case 1302: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr3868; + goto tr3867; +tr3868: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1303; +tr3872: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1303; +st1303: + if ( ++p == pe ) + goto _test_eof1303; +case 1303: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92439,90 +93568,275 @@ case 1301: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3856; - case 32: goto tr3856; - case 40: goto tr3857; - case 41: goto tr3858; - case 2058: goto tr3859; - case 2107: goto tr3860; + case 9: goto tr3869; + case 32: goto tr3869; + case 40: goto tr3870; + case 41: goto tr3871; + case 2058: goto tr3873; + case 2107: goto tr3874; } - goto tr3340; -st1302: + if ( 48 <= _widec && _widec <= 57 ) + goto tr3872; + goto tr3867; +st1304: if ( ++p == pe ) - goto _test_eof1302; -case 1302: + goto _test_eof1304; +case 1304: + switch( (*p) ) { + case 82: goto st1305; + case 114: goto st1305; + } + goto tr3373; +st1305: + if ( ++p == pe ) + goto _test_eof1305; +case 1305: + switch( (*p) ) { + case 73: goto st1306; + case 105: goto st1306; + } + goto tr3373; +st1306: + if ( ++p == pe ) + goto _test_eof1306; +case 1306: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr3877; + case 32: goto tr3877; + case 40: goto tr3878; + case 41: goto tr3879; + case 2058: goto tr3880; + case 2107: goto tr3881; + } + goto tr3373; +st1307: + if ( ++p == pe ) + goto _test_eof1307; +case 1307: + switch( (*p) ) { + case 65: goto st1308; + case 97: goto st1308; + } + goto tr3373; +st1308: + if ( ++p == pe ) + goto _test_eof1308; +case 1308: + switch( (*p) ) { + case 76: goto st1309; + case 108: goto st1309; + } + goto tr3373; +st1309: + if ( ++p == pe ) + goto _test_eof1309; +case 1309: + switch( (*p) ) { + case 76: goto st1310; + case 108: goto st1310; + } + goto tr3373; +st1310: + if ( ++p == pe ) + goto _test_eof1310; +case 1310: + switch( (*p) ) { + case 69: goto st1311; + case 101: goto st1311; + } + goto tr3373; +st1311: + if ( ++p == pe ) + goto _test_eof1311; +case 1311: + switch( (*p) ) { + case 84: goto st1312; + case 116: goto st1312; + } + goto tr3373; +st1312: + if ( ++p == pe ) + goto _test_eof1312; +case 1312: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr3887; + case 32: goto tr3887; + case 40: goto tr3888; + case 41: goto tr3889; + case 2058: goto tr3890; + case 2107: goto tr3891; + } + goto tr3373; +st1313: + if ( ++p == pe ) + goto _test_eof1313; +case 1313: + switch( (*p) ) { + case 79: goto st1314; + case 111: goto st1314; + } + goto tr3373; +st1314: + if ( ++p == pe ) + goto _test_eof1314; +case 1314: + switch( (*p) ) { + case 78: goto st1315; + case 110: goto st1315; + } + goto tr3373; +st1315: + if ( ++p == pe ) + goto _test_eof1315; +case 1315: + switch( (*p) ) { + case 69: goto st1316; + case 101: goto st1316; + } + goto tr3373; +st1316: + if ( ++p == pe ) + goto _test_eof1316; +case 1316: + switch( (*p) ) { + case 77: goto st1317; + case 109: goto st1317; + } + goto tr3373; +st1317: + if ( ++p == pe ) + goto _test_eof1317; +case 1317: + switch( (*p) ) { + case 68: goto st1318; + case 100: goto st1318; + } + goto tr3373; +st1318: + if ( ++p == pe ) + goto _test_eof1318; +case 1318: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr3897; + case 32: goto tr3897; + case 40: goto tr3898; + case 41: goto tr3899; + case 2058: goto tr3900; + case 2107: goto tr3901; + } + goto tr3373; +st1319: + if ( ++p == pe ) + goto _test_eof1319; +case 1319: switch( (*p) ) { - case 42: goto tr3861; - case 92: goto tr3861; - case 95: goto tr3861; + case 42: goto tr3902; + case 92: goto tr3902; + case 95: goto tr3902; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr3861; + goto tr3902; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3861; + goto tr3902; } else - goto tr3861; + goto tr3902; goto tr77; -tr3861: +tr3902: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1303;goto st318;} } - goto st1303; -st1303: + { p--; {stack[top++] = 1320;goto st321;} } + goto st1320; +st1320: if ( ++p == pe ) - goto _test_eof1303; -case 1303: + goto _test_eof1320; +case 1320: switch( (*p) ) { - case 32: goto tr3862; - case 59: goto tr3862; + case 32: goto tr3903; + case 59: goto tr3903; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3862; + goto tr3903; } else if ( (*p) >= 9 ) - goto tr3862; + goto tr3903; goto tr77; -tr3862: +tr3903: { rdata_tail += s->dname_tmp_length; } - { p--; {stack[top++] = 1304;goto st385;} } - goto st1304; -st1304: + { p--; {stack[top++] = 1321;goto st388;} } + goto st1321; +st1321: if ( ++p == pe ) - goto _test_eof1304; -case 1304: + goto _test_eof1321; +case 1321: switch( (*p) ) { - case 32: goto tr3863; - case 59: goto tr3863; + case 32: goto tr3904; + case 59: goto tr3904; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3863; + goto tr3904; } else if ( (*p) >= 9 ) - goto tr3863; + goto tr3904; goto tr77; -tr3863: +tr3904: { p--; {cs = stack[--top];goto _again;} } - goto st1522; -st1522: + goto st1562; +st1562: if ( ++p == pe ) - goto _test_eof1522; -case 1522: + goto _test_eof1562; +case 1562: goto st0; -st1305: +st1322: if ( ++p == pe ) - goto _test_eof1305; -case 1305: + goto _test_eof1322; +case 1322: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3864; - goto tr2396; -tr3864: + goto tr3905; + goto tr2429; +tr3905: { s->number64 = 0; } @@ -92537,11 +93851,11 @@ tr3864: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1306; -tr3868: + goto st1323; +tr3909: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -92553,14 +93867,14 @@ tr3868: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1306; -st1306: + goto st1323; +st1323: if ( ++p == pe ) - goto _test_eof1306; -case 1306: + goto _test_eof1323; +case 1323: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92574,40 +93888,40 @@ case 1306: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3865; - case 32: goto tr3865; - case 40: goto tr3866; - case 41: goto tr3867; - case 2058: goto tr3869; - case 2107: goto tr3870; + case 9: goto tr3906; + case 32: goto tr3906; + case 40: goto tr3907; + case 41: goto tr3908; + case 2058: goto tr3910; + case 2107: goto tr3911; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3868; - goto tr2396; -tr3872: + goto tr3909; + goto tr2429; +tr3913: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1307; -tr3873: + goto st1324; +tr3914: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1307; -tr3875: + goto st1324; +tr3916: { s->line_counter++; } - goto st1307; -tr3901: + goto st1324; +tr3942: { s->buffer[s->buffer_length++] = 0; @@ -92617,15 +93931,15 @@ tr3901: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1307; goto _out;} + {p++; cs = 1324; goto _out;} } } } { s->line_counter++; } - goto st1307; -tr3865: + goto st1324; +tr3906: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -92633,11 +93947,11 @@ tr3865: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1307; -tr3866: + goto st1324; +tr3907: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -92645,18 +93959,18 @@ tr3866: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1307; -tr3867: + goto st1324; +tr3908: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -92664,18 +93978,18 @@ tr3867: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1307; -tr3869: + goto st1324; +tr3910: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -92683,17 +93997,17 @@ tr3869: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1307; -st1307: + goto st1324; +st1324: if ( ++p == pe ) - goto _test_eof1307; -case 1307: + goto _test_eof1324; +case 1324: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92707,17 +94021,17 @@ case 1307: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1307; - case 32: goto st1307; - case 40: goto tr3872; - case 41: goto tr3873; - case 2058: goto tr3875; - case 2107: goto tr3876; + case 9: goto st1324; + case 32: goto st1324; + case 40: goto tr3913; + case 41: goto tr3914; + case 2058: goto tr3916; + case 2107: goto tr3917; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3874; - goto tr2396; -tr3874: + goto tr3915; + goto tr2429; +tr3915: { s->number64 = 0; } @@ -92732,11 +94046,11 @@ tr3874: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1308; -tr3880: + goto st1325; +tr3921: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -92748,14 +94062,14 @@ tr3880: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1308; -st1308: + goto st1325; +st1325: if ( ++p == pe ) - goto _test_eof1308; -case 1308: + goto _test_eof1325; +case 1325: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92769,40 +94083,40 @@ case 1308: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3877; - case 32: goto tr3877; - case 40: goto tr3878; - case 41: goto tr3879; - case 2058: goto tr3881; - case 2107: goto tr3882; + case 9: goto tr3918; + case 32: goto tr3918; + case 40: goto tr3919; + case 41: goto tr3920; + case 2058: goto tr3922; + case 2107: goto tr3923; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3880; - goto tr2396; -tr3884: + goto tr3921; + goto tr2429; +tr3925: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1309; -tr3885: + goto st1326; +tr3926: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1309; -tr3887: + goto st1326; +tr3928: { s->line_counter++; } - goto st1309; -tr3899: + goto st1326; +tr3940: { s->buffer[s->buffer_length++] = 0; @@ -92812,79 +94126,79 @@ tr3899: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1309; goto _out;} + {p++; cs = 1326; goto _out;} } } } { s->line_counter++; } - goto st1309; -tr3877: + goto st1326; +tr3918: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1309; -tr3878: + goto st1326; +tr3919: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1309; -tr3879: + goto st1326; +tr3920: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1309; -tr3881: + goto st1326; +tr3922: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1309; -st1309: + goto st1326; +st1326: if ( ++p == pe ) - goto _test_eof1309; -case 1309: + goto _test_eof1326; +case 1326: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92898,29 +94212,29 @@ case 1309: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1309; - case 32: goto st1309; - case 40: goto tr3884; - case 41: goto tr3885; - case 2058: goto tr3887; - case 2107: goto tr3888; + case 9: goto st1326; + case 32: goto st1326; + case 40: goto tr3925; + case 41: goto tr3926; + case 2058: goto tr3928; + case 2107: goto tr3929; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3886; + goto tr3927; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3886; + goto tr3927; } else - goto tr3886; + goto tr3927; goto tr77; -tr3886: - { p--; {stack[top++] = 1310;goto st741;} } - goto st1310; -st1310: +tr3927: + { p--; {stack[top++] = 1327;goto st747;} } + goto st1327; +st1327: if ( ++p == pe ) - goto _test_eof1310; -case 1310: + goto _test_eof1327; +case 1327: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92934,38 +94248,38 @@ case 1310: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1311; - case 32: goto st1311; - case 40: goto tr3890; - case 41: goto tr3891; - case 2058: goto tr3892; - case 2107: goto tr3893; + case 9: goto st1328; + case 32: goto st1328; + case 40: goto tr3931; + case 41: goto tr3932; + case 2058: goto tr3933; + case 2107: goto tr3934; } goto tr77; -tr3890: +tr3931: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1311; -tr3891: + goto st1328; +tr3932: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1311; -tr3892: + goto st1328; +tr3933: { s->line_counter++; } - goto st1311; -tr3897: + goto st1328; +tr3938: { s->buffer[s->buffer_length++] = 0; @@ -92975,18 +94289,18 @@ tr3897: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1311; goto _out;} + {p++; cs = 1328; goto _out;} } } } { s->line_counter++; } - goto st1311; -st1311: + goto st1328; +st1328: if ( ++p == pe ) - goto _test_eof1311; -case 1311: + goto _test_eof1328; +case 1328: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93000,30 +94314,30 @@ case 1311: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1311; - case 32: goto st1311; - case 40: goto tr3890; - case 41: goto tr3891; - case 43: goto tr3894; - case 2058: goto tr3892; - case 2107: goto tr3893; + case 9: goto st1328; + case 32: goto st1328; + case 40: goto tr3931; + case 41: goto tr3932; + case 43: goto tr3935; + case 2058: goto tr3933; + case 2107: goto tr3934; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3894; + goto tr3935; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3894; + goto tr3935; } else - goto tr3894; + goto tr3935; goto tr77; -tr3894: - { p--; {stack[top++] = 1312;goto st378;} } - goto st1312; -st1312: +tr3935: + { p--; {stack[top++] = 1329;goto st381;} } + goto st1329; +st1329: if ( ++p == pe ) - goto _test_eof1312; -case 1312: + goto _test_eof1329; +case 1329: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93037,36 +94351,36 @@ case 1312: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3895; - case 2619: goto tr3895; + case 2570: goto tr3936; + case 2619: goto tr3936; } goto tr77; -tr3895: +tr3936: { p--; {cs = stack[--top];goto _again;} } - goto st1523; -st1523: + goto st1563; +st1563: if ( ++p == pe ) - goto _test_eof1523; -case 1523: + goto _test_eof1563; +case 1563: goto st0; -tr3893: +tr3934: { s->buffer_length = 0; } - goto st1313; -tr3896: + goto st1330; +tr3937: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1313; -st1313: + goto st1330; +st1330: if ( ++p == pe ) - goto _test_eof1313; -case 1313: + goto _test_eof1330; +case 1330: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93086,40 +94400,40 @@ case 1313: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3897; + goto tr3938; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3896; + goto tr3937; goto tr77; -tr3888: +tr3929: { s->buffer_length = 0; } - goto st1314; -tr3898: + goto st1331; +tr3939: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1314; -tr3882: + goto st1331; +tr3923: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1314; -st1314: + goto st1331; +st1331: if ( ++p == pe ) - goto _test_eof1314; -case 1314: + goto _test_eof1331; +case 1331: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93139,23 +94453,23 @@ case 1314: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3899; + goto tr3940; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3898; + goto tr3939; goto tr77; -tr3876: +tr3917: { s->buffer_length = 0; } - goto st1315; -tr3900: + goto st1332; +tr3941: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1315; -tr3870: + goto st1332; +tr3911: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93163,17 +94477,17 @@ tr3870: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1315; -st1315: + goto st1332; +st1332: if ( ++p == pe ) - goto _test_eof1315; -case 1315: + goto _test_eof1332; +case 1332: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93193,32 +94507,32 @@ case 1315: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3901; + goto tr3942; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3900; + goto tr3941; goto tr77; -st1316: +st1333: if ( ++p == pe ) - goto _test_eof1316; -case 1316: + goto _test_eof1333; +case 1333: if ( (*p) == 43 ) - goto tr3902; + goto tr3943; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr3902; + goto tr3943; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3902; + goto tr3943; } else - goto tr3902; + goto tr3943; goto tr77; -tr3902: - { p--; {stack[top++] = 1317;goto st378;} } - goto st1317; -st1317: +tr3943: + { p--; {stack[top++] = 1334;goto st381;} } + goto st1334; +st1334: if ( ++p == pe ) - goto _test_eof1317; -case 1317: + goto _test_eof1334; +case 1334: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93232,28 +94546,28 @@ case 1317: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3903; - case 2619: goto tr3903; + case 2570: goto tr3944; + case 2619: goto tr3944; } goto tr77; -tr3903: +tr3944: { p--; {cs = stack[--top];goto _again;} } - goto st1524; -st1524: + goto st1564; +st1564: if ( ++p == pe ) - goto _test_eof1524; -case 1524: + goto _test_eof1564; +case 1564: goto st0; -st1318: +st1335: if ( ++p == pe ) - goto _test_eof1318; -case 1318: + goto _test_eof1335; +case 1335: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3904; - goto tr2396; -tr3904: + goto tr3945; + goto tr2429; +tr3945: { s->number64 = 0; } @@ -93268,11 +94582,11 @@ tr3904: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1319; -tr3908: + goto st1336; +tr3949: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -93284,14 +94598,14 @@ tr3908: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1319; -st1319: + goto st1336; +st1336: if ( ++p == pe ) - goto _test_eof1319; -case 1319: + goto _test_eof1336; +case 1336: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93305,40 +94619,40 @@ case 1319: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3905; - case 32: goto tr3905; - case 40: goto tr3906; - case 41: goto tr3907; - case 2058: goto tr3909; - case 2107: goto tr3910; + case 9: goto tr3946; + case 32: goto tr3946; + case 40: goto tr3947; + case 41: goto tr3948; + case 2058: goto tr3950; + case 2107: goto tr3951; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3908; - goto tr2396; -tr3912: + goto tr3949; + goto tr2429; +tr3953: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1320; -tr3913: + goto st1337; +tr3954: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1320; -tr3915: + goto st1337; +tr3956: { s->line_counter++; } - goto st1320; -tr3979: + goto st1337; +tr4020: { s->buffer[s->buffer_length++] = 0; @@ -93348,79 +94662,79 @@ tr3979: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1320; goto _out;} + {p++; cs = 1337; goto _out;} } } } { s->line_counter++; } - goto st1320; -tr3905: + goto st1337; +tr3946: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1320; -tr3906: + goto st1337; +tr3947: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1320; -tr3907: + goto st1337; +tr3948: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1320; -tr3909: + goto st1337; +tr3950: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1320; -st1320: + goto st1337; +st1337: if ( ++p == pe ) - goto _test_eof1320; -case 1320: + goto _test_eof1337; +case 1337: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93434,17 +94748,17 @@ case 1320: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1320; - case 32: goto st1320; - case 40: goto tr3912; - case 41: goto tr3913; - case 2058: goto tr3915; - case 2107: goto tr3916; + case 9: goto st1337; + case 32: goto st1337; + case 40: goto tr3953; + case 41: goto tr3954; + case 2058: goto tr3956; + case 2107: goto tr3957; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3914; - goto tr2396; -tr3914: + goto tr3955; + goto tr2429; +tr3955: { s->number64 = 0; } @@ -93459,11 +94773,11 @@ tr3914: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1321; -tr3920: + goto st1338; +tr3961: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -93475,14 +94789,14 @@ tr3920: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1321; -st1321: + goto st1338; +st1338: if ( ++p == pe ) - goto _test_eof1321; -case 1321: + goto _test_eof1338; +case 1338: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93496,40 +94810,40 @@ case 1321: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3917; - case 32: goto tr3917; - case 40: goto tr3918; - case 41: goto tr3919; - case 2058: goto tr3921; - case 2107: goto tr3922; + case 9: goto tr3958; + case 32: goto tr3958; + case 40: goto tr3959; + case 41: goto tr3960; + case 2058: goto tr3962; + case 2107: goto tr3963; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3920; - goto tr2396; -tr3924: + goto tr3961; + goto tr2429; +tr3965: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1322; -tr3925: + goto st1339; +tr3966: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1322; -tr3927: + goto st1339; +tr3968: { s->line_counter++; } - goto st1322; -tr3977: + goto st1339; +tr4018: { s->buffer[s->buffer_length++] = 0; @@ -93539,79 +94853,79 @@ tr3977: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1322; goto _out;} + {p++; cs = 1339; goto _out;} } } } { s->line_counter++; } - goto st1322; -tr3917: + goto st1339; +tr3958: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1322; -tr3918: + goto st1339; +tr3959: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1322; -tr3919: + goto st1339; +tr3960: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1322; -tr3921: + goto st1339; +tr3962: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1322; -st1322: + goto st1339; +st1339: if ( ++p == pe ) - goto _test_eof1322; -case 1322: + goto _test_eof1339; +case 1339: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93625,17 +94939,17 @@ case 1322: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1322; - case 32: goto st1322; - case 40: goto tr3924; - case 41: goto tr3925; - case 2058: goto tr3927; - case 2107: goto tr3928; + case 9: goto st1339; + case 32: goto st1339; + case 40: goto tr3965; + case 41: goto tr3966; + case 2058: goto tr3968; + case 2107: goto tr3969; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3926; - goto tr2396; -tr3926: + goto tr3967; + goto tr2429; +tr3967: { s->number64 = 0; } @@ -93650,11 +94964,11 @@ tr3926: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1323; -tr3932: + goto st1340; +tr3973: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -93666,14 +94980,14 @@ tr3932: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1323; -st1323: + goto st1340; +st1340: if ( ++p == pe ) - goto _test_eof1323; -case 1323: + goto _test_eof1340; +case 1340: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93687,40 +95001,40 @@ case 1323: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3929; - case 32: goto tr3929; - case 40: goto tr3930; - case 41: goto tr3931; - case 2058: goto tr3933; - case 2107: goto tr3934; + case 9: goto tr3970; + case 32: goto tr3970; + case 40: goto tr3971; + case 41: goto tr3972; + case 2058: goto tr3974; + case 2107: goto tr3975; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3932; - goto tr2396; -tr3936: + goto tr3973; + goto tr2429; +tr3977: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1324; -tr3937: + goto st1341; +tr3978: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1324; -tr3940: + goto st1341; +tr3981: { s->line_counter++; } - goto st1324; -tr3975: + goto st1341; +tr4016: { s->buffer[s->buffer_length++] = 0; @@ -93730,15 +95044,15 @@ tr3975: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1324; goto _out;} + {p++; cs = 1341; goto _out;} } } } { s->line_counter++; } - goto st1324; -tr3929: + goto st1341; +tr3970: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93746,11 +95060,11 @@ tr3929: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1324; -tr3930: + goto st1341; +tr3971: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93758,18 +95072,18 @@ tr3930: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1324; -tr3931: + goto st1341; +tr3972: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93777,18 +95091,18 @@ tr3931: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1324; -tr3933: + goto st1341; +tr3974: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93796,17 +95110,17 @@ tr3933: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1324; -st1324: + goto st1341; +st1341: if ( ++p == pe ) - goto _test_eof1324; -case 1324: + goto _test_eof1341; +case 1341: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93820,37 +95134,37 @@ case 1324: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1324; - case 32: goto st1324; - case 40: goto tr3936; - case 41: goto tr3937; - case 45: goto tr3938; - case 2058: goto tr3940; - case 2107: goto tr3941; + case 9: goto st1341; + case 32: goto st1341; + case 40: goto tr3977; + case 41: goto tr3978; + case 45: goto tr3979; + case 2058: goto tr3981; + case 2107: goto tr3982; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3939; + goto tr3980; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3939; + goto tr3980; } else - goto tr3939; - goto tr3067; -tr3938: + goto tr3980; + goto tr3100; +tr3979: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1325; -st1325: + goto st1342; +st1342: if ( ++p == pe ) - goto _test_eof1325; -case 1325: + goto _test_eof1342; +case 1342: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93864,38 +95178,38 @@ case 1325: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3942; - case 32: goto tr3942; - case 40: goto tr3943; - case 41: goto tr3944; - case 2058: goto tr3945; - case 2107: goto tr3946; + case 9: goto tr3983; + case 32: goto tr3983; + case 40: goto tr3984; + case 41: goto tr3985; + case 2058: goto tr3986; + case 2107: goto tr3987; } - goto tr3067; -tr3949: + goto tr3100; +tr3990: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1326; -tr3950: + goto st1343; +tr3991: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1326; -tr3952: + goto st1343; +tr3993: { s->line_counter++; } - goto st1326; -tr3971: + goto st1343; +tr4012: { s->buffer[s->buffer_length++] = 0; @@ -93905,95 +95219,95 @@ tr3971: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1326; goto _out;} + {p++; cs = 1343; goto _out;} } } } { s->line_counter++; } - goto st1326; -tr3942: + goto st1343; +tr3983: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1326; -tr3943: + goto st1343; +tr3984: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1326; -tr3944: + goto st1343; +tr3985: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1326; -tr3945: + goto st1343; +tr3986: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1326; -st1326: + goto st1343; +st1343: if ( ++p == pe ) - goto _test_eof1326; -case 1326: + goto _test_eof1343; +case 1343: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94007,29 +95321,29 @@ case 1326: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1326; - case 32: goto st1326; - case 40: goto tr3949; - case 41: goto tr3950; - case 2058: goto tr3952; - case 2107: goto tr3953; + case 9: goto st1343; + case 32: goto st1343; + case 40: goto tr3990; + case 41: goto tr3991; + case 2058: goto tr3993; + case 2107: goto tr3994; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3951; + goto tr3992; } else if ( _widec > 86 ) { if ( 97 <= _widec && _widec <= 118 ) - goto tr3951; + goto tr3992; } else - goto tr3951; - goto tr3947; -tr3951: + goto tr3992; + goto tr3988; +tr3992: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -94037,34 +95351,34 @@ tr3951: *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1327; -tr3966: + goto st1344; +tr4007: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1327; -st1327: + goto st1344; +st1344: if ( ++p == pe ) - goto _test_eof1327; -case 1327: + goto _test_eof1344; +case 1344: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3954; + goto tr3995; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3954; + goto tr3995; } else - goto tr3954; - goto tr3947; -tr3954: + goto tr3995; + goto tr3988; +tr3995: { *(rdata_tail++) += second_left_base32hex_to_num[(uint8_t)(*p)]; @@ -94072,44 +95386,44 @@ tr3954: *rdata_tail = second_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1328; -st1328: + goto st1345; +st1345: if ( ++p == pe ) - goto _test_eof1328; -case 1328: + goto _test_eof1345; +case 1345: if ( (*p) == 61 ) - goto st1339; + goto st1356; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3955; + goto tr3996; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3955; + goto tr3996; } else - goto tr3955; - goto tr3947; -tr3955: + goto tr3996; + goto tr3988; +tr3996: { *rdata_tail += third_base32hex_to_num[(uint8_t)(*p)]; } - goto st1329; -st1329: + goto st1346; +st1346: if ( ++p == pe ) - goto _test_eof1329; -case 1329: + goto _test_eof1346; +case 1346: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3957; + goto tr3998; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3957; + goto tr3998; } else - goto tr3957; - goto tr3947; -tr3957: + goto tr3998; + goto tr3988; +tr3998: { *(rdata_tail++) += fourth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -94117,26 +95431,26 @@ tr3957: *rdata_tail = fourth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1330; -st1330: + goto st1347; +st1347: if ( ++p == pe ) - goto _test_eof1330; -case 1330: + goto _test_eof1347; +case 1347: if ( (*p) == 61 ) - goto st1338; + goto st1355; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3958; + goto tr3999; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3958; + goto tr3999; } else - goto tr3958; - goto tr3947; -tr3958: + goto tr3999; + goto tr3988; +tr3999: { *(rdata_tail++) += fifth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -94144,44 +95458,44 @@ tr3958: *rdata_tail = fifth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1331; -st1331: + goto st1348; +st1348: if ( ++p == pe ) - goto _test_eof1331; -case 1331: + goto _test_eof1348; +case 1348: if ( (*p) == 61 ) - goto st1336; + goto st1353; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3960; + goto tr4001; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3960; + goto tr4001; } else - goto tr3960; - goto tr3947; -tr3960: + goto tr4001; + goto tr3988; +tr4001: { *rdata_tail += sixth_base32hex_to_num[(uint8_t)(*p)]; } - goto st1332; -st1332: + goto st1349; +st1349: if ( ++p == pe ) - goto _test_eof1332; -case 1332: + goto _test_eof1349; +case 1349: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3962; + goto tr4003; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3962; + goto tr4003; } else - goto tr3962; - goto tr3947; -tr3962: + goto tr4003; + goto tr3988; +tr4003: { *(rdata_tail++) += seventh_left_base32hex_to_num[(uint8_t)(*p)]; @@ -94189,162 +95503,162 @@ tr3962: *rdata_tail = seventh_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1333; -st1333: + goto st1350; +st1350: if ( ++p == pe ) - goto _test_eof1333; -case 1333: + goto _test_eof1350; +case 1350: if ( (*p) == 61 ) - goto st1334; + goto st1351; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3963; + goto tr4004; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3963; + goto tr4004; } else - goto tr3963; - goto tr3947; -tr3963: + goto tr4004; + goto tr3988; +tr4004: { *(rdata_tail++) += eighth_base32hex_to_num[(uint8_t)(*p)]; } - goto st1334; -st1334: + goto st1351; +st1351: if ( ++p == pe ) - goto _test_eof1334; -case 1334: + goto _test_eof1351; +case 1351: switch( (*p) ) { - case 32: goto tr3965; - case 59: goto tr3965; + case 32: goto tr4006; + case 59: goto tr4006; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3965; + goto tr4006; } else if ( (*p) >= 9 ) - goto tr3965; + goto tr4006; } else if ( (*p) > 57 ) { if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3966; + goto tr4007; } else if ( (*p) >= 65 ) - goto tr3966; + goto tr4007; } else - goto tr3966; - goto tr3947; -tr3965: + goto tr4007; + goto tr3988; +tr4006: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 1335;goto st385;} } - goto st1335; -st1335: + { p--; {stack[top++] = 1352;goto st388;} } + goto st1352; +st1352: if ( ++p == pe ) - goto _test_eof1335; -case 1335: + goto _test_eof1352; +case 1352: switch( (*p) ) { - case 32: goto tr3967; - case 59: goto tr3967; + case 32: goto tr4008; + case 59: goto tr4008; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3967; + goto tr4008; } else if ( (*p) >= 9 ) - goto tr3967; + goto tr4008; goto tr77; -tr3967: +tr4008: { p--; {cs = stack[--top];goto _again;} } - goto st1525; -st1525: + goto st1565; +st1565: if ( ++p == pe ) - goto _test_eof1525; -case 1525: + goto _test_eof1565; +case 1565: goto st0; -st1336: +st1353: if ( ++p == pe ) - goto _test_eof1336; -case 1336: + goto _test_eof1353; +case 1353: if ( (*p) == 61 ) - goto st1337; - goto tr3947; -st1337: + goto st1354; + goto tr3988; +st1354: if ( ++p == pe ) - goto _test_eof1337; -case 1337: + goto _test_eof1354; +case 1354: if ( (*p) == 61 ) - goto st1334; - goto tr3947; -st1338: + goto st1351; + goto tr3988; +st1355: if ( ++p == pe ) - goto _test_eof1338; -case 1338: + goto _test_eof1355; +case 1355: if ( (*p) == 61 ) - goto st1336; - goto tr3947; -st1339: + goto st1353; + goto tr3988; +st1356: if ( ++p == pe ) - goto _test_eof1339; -case 1339: + goto _test_eof1356; +case 1356: if ( (*p) == 61 ) - goto st1340; - goto tr3947; -st1340: + goto st1357; + goto tr3988; +st1357: if ( ++p == pe ) - goto _test_eof1340; -case 1340: + goto _test_eof1357; +case 1357: if ( (*p) == 61 ) - goto st1338; - goto tr3947; -tr3953: + goto st1355; + goto tr3988; +tr3994: { s->buffer_length = 0; } - goto st1341; -tr3970: + goto st1358; +tr4011: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1341; -tr3946: + goto st1358; +tr3987: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1341; -st1341: + goto st1358; +st1358: if ( ++p == pe ) - goto _test_eof1341; -case 1341: + goto _test_eof1358; +case 1358: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94364,27 +95678,27 @@ case 1341: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3971; + goto tr4012; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3970; + goto tr4011; goto tr77; -tr3973: +tr4014: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1342; -tr3939: + goto st1359; +tr3980: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -94392,33 +95706,33 @@ tr3939: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1342; -st1342: + goto st1359; +st1359: if ( ++p == pe ) - goto _test_eof1342; -case 1342: + goto _test_eof1359; +case 1359: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3972; + goto tr4013; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3972; + goto tr4013; } else - goto tr3972; - goto tr3067; -tr3972: + goto tr4013; + goto tr3100; +tr4013: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1343; -st1343: + goto st1360; +st1360: if ( ++p == pe ) - goto _test_eof1343; -case 1343: + goto _test_eof1360; +case 1360: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94432,35 +95746,35 @@ case 1343: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3942; - case 32: goto tr3942; - case 40: goto tr3943; - case 41: goto tr3944; - case 2058: goto tr3945; - case 2107: goto tr3946; + case 9: goto tr3983; + case 32: goto tr3983; + case 40: goto tr3984; + case 41: goto tr3985; + case 2058: goto tr3986; + case 2107: goto tr3987; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3973; + goto tr4014; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3973; + goto tr4014; } else - goto tr3973; - goto tr3067; -tr3941: + goto tr4014; + goto tr3100; +tr3982: { s->buffer_length = 0; } - goto st1344; -tr3974: + goto st1361; +tr4015: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1344; -tr3934: + goto st1361; +tr3975: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94468,17 +95782,17 @@ tr3934: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1344; -st1344: + goto st1361; +st1361: if ( ++p == pe ) - goto _test_eof1344; -case 1344: + goto _test_eof1361; +case 1361: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94498,40 +95812,40 @@ case 1344: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3975; + goto tr4016; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3974; + goto tr4015; goto tr77; -tr3928: +tr3969: { s->buffer_length = 0; } - goto st1345; -tr3976: + goto st1362; +tr4017: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1345; -tr3922: + goto st1362; +tr3963: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1345; -st1345: + goto st1362; +st1362: if ( ++p == pe ) - goto _test_eof1345; -case 1345: + goto _test_eof1362; +case 1362: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94551,40 +95865,40 @@ case 1345: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3977; + goto tr4018; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3976; + goto tr4017; goto tr77; -tr3916: +tr3957: { s->buffer_length = 0; } - goto st1346; -tr3978: + goto st1363; +tr4019: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1346; -tr3910: + goto st1363; +tr3951: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1346; -st1346: + goto st1363; +st1363: if ( ++p == pe ) - goto _test_eof1346; -case 1346: + goto _test_eof1363; +case 1363: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94604,18 +95918,18 @@ case 1346: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3979; + goto tr4020; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3978; + goto tr4019; goto tr77; -st1347: +st1364: if ( ++p == pe ) - goto _test_eof1347; -case 1347: + goto _test_eof1364; +case 1364: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3980; - goto tr2396; -tr3980: + goto tr4021; + goto tr2429; +tr4021: { s->number64 = 0; } @@ -94630,11 +95944,11 @@ tr3980: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1348; -tr3984: + goto st1365; +tr4025: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94646,14 +95960,14 @@ tr3984: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1348; -st1348: + goto st1365; +st1365: if ( ++p == pe ) - goto _test_eof1348; -case 1348: + goto _test_eof1365; +case 1365: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94667,40 +95981,40 @@ case 1348: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3981; - case 32: goto tr3981; - case 40: goto tr3982; - case 41: goto tr3983; - case 2058: goto tr3985; - case 2107: goto tr3986; + case 9: goto tr4022; + case 32: goto tr4022; + case 40: goto tr4023; + case 41: goto tr4024; + case 2058: goto tr4026; + case 2107: goto tr4027; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3984; - goto tr2396; -tr3988: + goto tr4025; + goto tr2429; +tr4029: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1349; -tr3989: + goto st1366; +tr4030: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1349; -tr3991: + goto st1366; +tr4032: { s->line_counter++; } - goto st1349; -tr4026: + goto st1366; +tr4067: { s->buffer[s->buffer_length++] = 0; @@ -94710,79 +96024,79 @@ tr4026: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1349; goto _out;} + {p++; cs = 1366; goto _out;} } } } { s->line_counter++; } - goto st1349; -tr3981: + goto st1366; +tr4022: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1349; -tr3982: + goto st1366; +tr4023: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1349; -tr3983: + goto st1366; +tr4024: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1349; -tr3985: + goto st1366; +tr4026: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1349; -st1349: + goto st1366; +st1366: if ( ++p == pe ) - goto _test_eof1349; -case 1349: + goto _test_eof1366; +case 1366: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94796,17 +96110,17 @@ case 1349: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1349; - case 32: goto st1349; - case 40: goto tr3988; - case 41: goto tr3989; - case 2058: goto tr3991; - case 2107: goto tr3992; + case 9: goto st1366; + case 32: goto st1366; + case 40: goto tr4029; + case 41: goto tr4030; + case 2058: goto tr4032; + case 2107: goto tr4033; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3990; - goto tr2396; -tr3990: + goto tr4031; + goto tr2429; +tr4031: { s->number64 = 0; } @@ -94821,11 +96135,11 @@ tr3990: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1350; -tr3996: + goto st1367; +tr4037: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94837,14 +96151,14 @@ tr3996: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1350; -st1350: + goto st1367; +st1367: if ( ++p == pe ) - goto _test_eof1350; -case 1350: + goto _test_eof1367; +case 1367: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94858,40 +96172,40 @@ case 1350: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3993; - case 32: goto tr3993; - case 40: goto tr3994; - case 41: goto tr3995; - case 2058: goto tr3997; - case 2107: goto tr3998; + case 9: goto tr4034; + case 32: goto tr4034; + case 40: goto tr4035; + case 41: goto tr4036; + case 2058: goto tr4038; + case 2107: goto tr4039; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3996; - goto tr2396; -tr4000: + goto tr4037; + goto tr2429; +tr4041: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1351; -tr4001: + goto st1368; +tr4042: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1351; -tr4003: + goto st1368; +tr4044: { s->line_counter++; } - goto st1351; -tr4024: + goto st1368; +tr4065: { s->buffer[s->buffer_length++] = 0; @@ -94901,79 +96215,79 @@ tr4024: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1351; goto _out;} + {p++; cs = 1368; goto _out;} } } } { s->line_counter++; } - goto st1351; -tr3993: + goto st1368; +tr4034: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1351; -tr3994: + goto st1368; +tr4035: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1351; -tr3995: + goto st1368; +tr4036: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1351; -tr3997: + goto st1368; +tr4038: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1351; -st1351: + goto st1368; +st1368: if ( ++p == pe ) - goto _test_eof1351; -case 1351: + goto _test_eof1368; +case 1368: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94987,17 +96301,17 @@ case 1351: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1351; - case 32: goto st1351; - case 40: goto tr4000; - case 41: goto tr4001; - case 2058: goto tr4003; - case 2107: goto tr4004; + case 9: goto st1368; + case 32: goto st1368; + case 40: goto tr4041; + case 41: goto tr4042; + case 2058: goto tr4044; + case 2107: goto tr4045; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4002; - goto tr2396; -tr4002: + goto tr4043; + goto tr2429; +tr4043: { s->number64 = 0; } @@ -95012,11 +96326,11 @@ tr4002: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1352; -tr4008: + goto st1369; +tr4049: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95028,14 +96342,14 @@ tr4008: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1352; -st1352: + goto st1369; +st1369: if ( ++p == pe ) - goto _test_eof1352; -case 1352: + goto _test_eof1369; +case 1369: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95049,40 +96363,40 @@ case 1352: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4005; - case 32: goto tr4005; - case 40: goto tr4006; - case 41: goto tr4007; - case 2058: goto tr4009; - case 2107: goto tr4010; + case 9: goto tr4046; + case 32: goto tr4046; + case 40: goto tr4047; + case 41: goto tr4048; + case 2058: goto tr4050; + case 2107: goto tr4051; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4008; - goto tr2396; -tr4012: + goto tr4049; + goto tr2429; +tr4053: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1353; -tr4013: + goto st1370; +tr4054: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1353; -tr4016: + goto st1370; +tr4057: { s->line_counter++; } - goto st1353; -tr4022: + goto st1370; +tr4063: { s->buffer[s->buffer_length++] = 0; @@ -95092,15 +96406,15 @@ tr4022: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1353; goto _out;} + {p++; cs = 1370; goto _out;} } } } { s->line_counter++; } - goto st1353; -tr4005: + goto st1370; +tr4046: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95108,11 +96422,11 @@ tr4005: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1353; -tr4006: + goto st1370; +tr4047: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95120,18 +96434,18 @@ tr4006: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1353; -tr4007: + goto st1370; +tr4048: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95139,18 +96453,18 @@ tr4007: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1353; -tr4009: + goto st1370; +tr4050: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95158,17 +96472,17 @@ tr4009: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1353; -st1353: + goto st1370; +st1370: if ( ++p == pe ) - goto _test_eof1353; -case 1353: + goto _test_eof1370; +case 1370: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95182,87 +96496,87 @@ case 1353: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1353; - case 32: goto st1353; - case 40: goto tr4012; - case 41: goto tr4013; - case 45: goto tr4014; - case 2058: goto tr4016; - case 2107: goto tr4017; + case 9: goto st1370; + case 32: goto st1370; + case 40: goto tr4053; + case 41: goto tr4054; + case 45: goto tr4055; + case 2058: goto tr4057; + case 2107: goto tr4058; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4015; + goto tr4056; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4015; + goto tr4056; } else - goto tr4015; - goto tr3067; -tr4014: + goto tr4056; + goto tr3100; +tr4055: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1354; -st1354: + goto st1371; +st1371: if ( ++p == pe ) - goto _test_eof1354; -case 1354: + goto _test_eof1371; +case 1371: switch( (*p) ) { - case 32: goto tr4018; - case 59: goto tr4018; + case 32: goto tr4059; + case 59: goto tr4059; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4018; + goto tr4059; } else if ( (*p) >= 9 ) - goto tr4018; - goto tr3067; -tr4018: + goto tr4059; + goto tr3100; +tr4059: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -st1526: + goto st1566; +st1566: if ( ++p == pe ) - goto _test_eof1526; -case 1526: + goto _test_eof1566; +case 1566: goto st0; -tr4020: +tr4061: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1355; -tr4015: + goto st1372; +tr4056: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { @@ -95270,65 +96584,65 @@ tr4015: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1355; -st1355: + goto st1372; +st1372: if ( ++p == pe ) - goto _test_eof1355; -case 1355: + goto _test_eof1372; +case 1372: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4019; + goto tr4060; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4019; + goto tr4060; } else - goto tr4019; - goto tr3067; -tr4019: + goto tr4060; + goto tr3100; +tr4060: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1356; -st1356: + goto st1373; +st1373: if ( ++p == pe ) - goto _test_eof1356; -case 1356: + goto _test_eof1373; +case 1373: switch( (*p) ) { - case 32: goto tr4018; - case 59: goto tr4018; + case 32: goto tr4059; + case 59: goto tr4059; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4018; + goto tr4059; } else if ( (*p) >= 9 ) - goto tr4018; + goto tr4059; } else if ( (*p) > 57 ) { if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4020; + goto tr4061; } else if ( (*p) >= 65 ) - goto tr4020; + goto tr4061; } else - goto tr4020; - goto tr3067; -tr4017: + goto tr4061; + goto tr3100; +tr4058: { s->buffer_length = 0; } - goto st1357; -tr4021: + goto st1374; +tr4062: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1357; -tr4010: + goto st1374; +tr4051: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95336,17 +96650,17 @@ tr4010: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1357; -st1357: + goto st1374; +st1374: if ( ++p == pe ) - goto _test_eof1357; -case 1357: + goto _test_eof1374; +case 1374: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95366,40 +96680,40 @@ case 1357: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4022; + goto tr4063; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4021; + goto tr4062; goto tr77; -tr4004: +tr4045: { s->buffer_length = 0; } - goto st1358; -tr4023: + goto st1375; +tr4064: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1358; -tr3998: + goto st1375; +tr4039: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1358; -st1358: + goto st1375; +st1375: if ( ++p == pe ) - goto _test_eof1358; -case 1358: + goto _test_eof1375; +case 1375: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95419,40 +96733,40 @@ case 1358: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4024; + goto tr4065; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4023; + goto tr4064; goto tr77; -tr3992: +tr4033: { s->buffer_length = 0; } - goto st1359; -tr4025: + goto st1376; +tr4066: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1359; -tr3986: + goto st1376; +tr4027: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1359; -st1359: + goto st1376; +st1376: if ( ++p == pe ) - goto _test_eof1359; -case 1359: + goto _test_eof1376; +case 1376: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95472,18 +96786,18 @@ case 1359: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4026; + goto tr4067; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4025; + goto tr4066; goto tr77; -st1360: +st1377: if ( ++p == pe ) - goto _test_eof1360; -case 1360: + goto _test_eof1377; +case 1377: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4027; - goto tr2396; -tr4027: + goto tr4068; + goto tr2429; +tr4068: { s->number64 = 0; } @@ -95498,11 +96812,11 @@ tr4027: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1361; -tr4031: + goto st1378; +tr4072: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95514,14 +96828,14 @@ tr4031: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1361; -st1361: + goto st1378; +st1378: if ( ++p == pe ) - goto _test_eof1361; -case 1361: + goto _test_eof1378; +case 1378: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95535,40 +96849,40 @@ case 1361: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4028; - case 32: goto tr4028; - case 40: goto tr4029; - case 41: goto tr4030; - case 2058: goto tr4032; - case 2107: goto tr4033; + case 9: goto tr4069; + case 32: goto tr4069; + case 40: goto tr4070; + case 41: goto tr4071; + case 2058: goto tr4073; + case 2107: goto tr4074; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4031; - goto tr2396; -tr4035: + goto tr4072; + goto tr2429; +tr4076: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1362; -tr4036: + goto st1379; +tr4077: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1362; -tr4038: + goto st1379; +tr4079: { s->line_counter++; } - goto st1362; -tr4080: + goto st1379; +tr4121: { s->buffer[s->buffer_length++] = 0; @@ -95578,79 +96892,79 @@ tr4080: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1362; goto _out;} + {p++; cs = 1379; goto _out;} } } } { s->line_counter++; } - goto st1362; -tr4028: + goto st1379; +tr4069: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1362; -tr4029: + goto st1379; +tr4070: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1362; -tr4030: + goto st1379; +tr4071: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1362; -tr4032: + goto st1379; +tr4073: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1362; -st1362: + goto st1379; +st1379: if ( ++p == pe ) - goto _test_eof1362; -case 1362: + goto _test_eof1379; +case 1379: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95664,17 +96978,17 @@ case 1362: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1362; - case 32: goto st1362; - case 40: goto tr4035; - case 41: goto tr4036; - case 2058: goto tr4038; - case 2107: goto tr4039; + case 9: goto st1379; + case 32: goto st1379; + case 40: goto tr4076; + case 41: goto tr4077; + case 2058: goto tr4079; + case 2107: goto tr4080; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4037; - goto tr2396; -tr4037: + goto tr4078; + goto tr2429; +tr4078: { s->number64 = 0; } @@ -95689,11 +97003,11 @@ tr4037: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1363; -tr4043: + goto st1380; +tr4084: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95705,14 +97019,14 @@ tr4043: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1363; -st1363: + goto st1380; +st1380: if ( ++p == pe ) - goto _test_eof1363; -case 1363: + goto _test_eof1380; +case 1380: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95726,40 +97040,40 @@ case 1363: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4040; - case 32: goto tr4040; - case 40: goto tr4041; - case 41: goto tr4042; - case 2058: goto tr4044; - case 2107: goto tr4045; + case 9: goto tr4081; + case 32: goto tr4081; + case 40: goto tr4082; + case 41: goto tr4083; + case 2058: goto tr4085; + case 2107: goto tr4086; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4043; - goto tr2396; -tr4047: + goto tr4084; + goto tr2429; +tr4088: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1364; -tr4048: + goto st1381; +tr4089: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1364; -tr4050: + goto st1381; +tr4091: { s->line_counter++; } - goto st1364; -tr4078: + goto st1381; +tr4119: { s->buffer[s->buffer_length++] = 0; @@ -95769,79 +97083,79 @@ tr4078: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1364; goto _out;} + {p++; cs = 1381; goto _out;} } } } { s->line_counter++; } - goto st1364; -tr4040: + goto st1381; +tr4081: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1364; -tr4041: + goto st1381; +tr4082: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1364; -tr4042: + goto st1381; +tr4083: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1364; -tr4044: + goto st1381; +tr4085: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1364; -st1364: + goto st1381; +st1381: if ( ++p == pe ) - goto _test_eof1364; -case 1364: + goto _test_eof1381; +case 1381: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95855,17 +97169,17 @@ case 1364: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1364; - case 32: goto st1364; - case 40: goto tr4047; - case 41: goto tr4048; - case 2058: goto tr4050; - case 2107: goto tr4051; + case 9: goto st1381; + case 32: goto st1381; + case 40: goto tr4088; + case 41: goto tr4089; + case 2058: goto tr4091; + case 2107: goto tr4092; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4049; - goto tr2396; -tr4049: + goto tr4090; + goto tr2429; +tr4090: { s->number64 = 0; } @@ -95880,11 +97194,11 @@ tr4049: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1365; -tr4055: + goto st1382; +tr4096: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95896,14 +97210,14 @@ tr4055: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1365; -st1365: + goto st1382; +st1382: if ( ++p == pe ) - goto _test_eof1365; -case 1365: + goto _test_eof1382; +case 1382: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95917,40 +97231,40 @@ case 1365: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4052; - case 32: goto tr4052; - case 40: goto tr4053; - case 41: goto tr4054; - case 2058: goto tr4056; - case 2107: goto tr4057; + case 9: goto tr4093; + case 32: goto tr4093; + case 40: goto tr4094; + case 41: goto tr4095; + case 2058: goto tr4097; + case 2107: goto tr4098; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4055; - goto tr2396; -tr4059: + goto tr4096; + goto tr2429; +tr4100: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1366; -tr4060: + goto st1383; +tr4101: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1366; -tr4062: + goto st1383; +tr4103: { s->line_counter++; } - goto st1366; -tr4076: + goto st1383; +tr4117: { s->buffer[s->buffer_length++] = 0; @@ -95960,79 +97274,79 @@ tr4076: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1366; goto _out;} + {p++; cs = 1383; goto _out;} } } } { s->line_counter++; } - goto st1366; -tr4052: + goto st1383; +tr4093: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1366; -tr4053: + goto st1383; +tr4094: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1366; -tr4054: + goto st1383; +tr4095: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1366; -tr4056: + goto st1383; +tr4097: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1366; -st1366: + goto st1383; +st1383: if ( ++p == pe ) - goto _test_eof1366; -case 1366: + goto _test_eof1383; +case 1383: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96046,69 +97360,69 @@ case 1366: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1366; - case 32: goto st1366; - case 40: goto tr4059; - case 41: goto tr4060; - case 2058: goto tr4062; - case 2107: goto tr4063; + case 9: goto st1383; + case 32: goto st1383; + case 40: goto tr4100; + case 41: goto tr4101; + case 2058: goto tr4103; + case 2107: goto tr4104; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4061; + goto tr4102; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4061; + goto tr4102; } else - goto tr4061; - goto tr3067; -tr4061: + goto tr4102; + goto tr3100; +tr4102: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1367; -st1367: + goto st1384; +st1384: if ( ++p == pe ) - goto _test_eof1367; -case 1367: + goto _test_eof1384; +case 1384: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4064; + goto tr4105; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4064; + goto tr4105; } else - goto tr4064; - goto tr3067; -tr4066: + goto tr4105; + goto tr3100; +tr4107: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1368; -tr4067: + goto st1385; +tr4108: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1368; -tr4068: + goto st1385; +tr4109: { s->line_counter++; } - goto st1368; -tr4074: + goto st1385; +tr4115: { s->buffer[s->buffer_length++] = 0; @@ -96118,24 +97432,24 @@ tr4074: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1368; goto _out;} + {p++; cs = 1385; goto _out;} } } } { s->line_counter++; } - goto st1368; -tr4064: + goto st1385; +tr4105: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1368; -st1368: + goto st1385; +st1385: if ( ++p == pe ) - goto _test_eof1368; -case 1368: + goto _test_eof1385; +case 1385: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96153,42 +97467,42 @@ case 1368: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1368; - case 32: goto st1368; - case 40: goto tr4066; - case 41: goto tr4067; - case 3082: goto tr4068; - case 3131: goto tr4069; - case 3338: goto tr4070; - case 3387: goto tr4070; - case 3594: goto tr4071; - case 3643: goto tr4072; + case 9: goto st1385; + case 32: goto st1385; + case 40: goto tr4107; + case 41: goto tr4108; + case 3082: goto tr4109; + case 3131: goto tr4110; + case 3338: goto tr4111; + case 3387: goto tr4111; + case 3594: goto tr4112; + case 3643: goto tr4113; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4061; + goto tr4102; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4061; + goto tr4102; } else - goto tr4061; - goto tr3067; -tr4069: + goto tr4102; + goto tr3100; +tr4110: { s->buffer_length = 0; } - goto st1369; -tr4073: + goto st1386; +tr4114: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1369; -st1369: + goto st1386; +st1386: if ( ++p == pe ) - goto _test_eof1369; -case 1369: + goto _test_eof1386; +case 1386: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96208,32 +97522,32 @@ case 1369: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4074; + goto tr4115; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4073; - goto tr3067; -tr4070: + goto tr4114; + goto tr3100; +tr4111: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -st1527: + goto st1567; +st1567: if ( ++p == pe ) - goto _test_eof1527; -case 1527: + goto _test_eof1567; +case 1567: goto st0; -tr4071: +tr4112: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -st1528: + goto st1568; +st1568: if ( ++p == pe ) - goto _test_eof1528; -case 1528: + goto _test_eof1568; +case 1568: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96251,38 +97565,38 @@ case 1528: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1368; - case 32: goto st1368; - case 40: goto tr4066; - case 41: goto tr4067; - case 3082: goto tr4068; - case 3131: goto tr4069; - case 3338: goto tr4070; - case 3387: goto tr4070; - case 3594: goto tr4071; - case 3643: goto tr4072; + case 9: goto st1385; + case 32: goto st1385; + case 40: goto tr4107; + case 41: goto tr4108; + case 3082: goto tr4109; + case 3131: goto tr4110; + case 3338: goto tr4111; + case 3387: goto tr4111; + case 3594: goto tr4112; + case 3643: goto tr4113; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4061; + goto tr4102; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4061; + goto tr4102; } else - goto tr4061; - goto tr3067; -tr4072: + goto tr4102; + goto tr3100; +tr4113: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -st1529: + goto st1569; +st1569: if ( ++p == pe ) - goto _test_eof1529; -case 1529: + goto _test_eof1569; +case 1569: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96302,40 +97616,40 @@ case 1529: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4074; + goto tr4115; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4073; - goto tr3067; -tr4063: + goto tr4114; + goto tr3100; +tr4104: { s->buffer_length = 0; } - goto st1370; -tr4075: + goto st1387; +tr4116: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1370; -tr4057: + goto st1387; +tr4098: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1370; -st1370: + goto st1387; +st1387: if ( ++p == pe ) - goto _test_eof1370; -case 1370: + goto _test_eof1387; +case 1387: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96355,40 +97669,40 @@ case 1370: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4076; + goto tr4117; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4075; + goto tr4116; goto tr77; -tr4051: +tr4092: { s->buffer_length = 0; } - goto st1371; -tr4077: + goto st1388; +tr4118: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1371; -tr4045: + goto st1388; +tr4086: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1371; -st1371: + goto st1388; +st1388: if ( ++p == pe ) - goto _test_eof1371; -case 1371: + goto _test_eof1388; +case 1388: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96408,40 +97722,40 @@ case 1371: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4078; + goto tr4119; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4077; + goto tr4118; goto tr77; -tr4039: +tr4080: { s->buffer_length = 0; } - goto st1372; -tr4079: + goto st1389; +tr4120: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1372; -tr4033: + goto st1389; +tr4074: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1372; -st1372: + goto st1389; +st1389: if ( ++p == pe ) - goto _test_eof1372; -case 1372: + goto _test_eof1389; +case 1389: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96461,18 +97775,18 @@ case 1372: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4080; + goto tr4121; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4079; + goto tr4120; goto tr77; -st1373: +st1390: if ( ++p == pe ) - goto _test_eof1373; -case 1373: + goto _test_eof1390; +case 1390: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4081; - goto tr2396; -tr4081: + goto tr4122; + goto tr2429; +tr4122: { s->number64 = 0; } @@ -96487,11 +97801,11 @@ tr4081: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1374; -tr4085: + goto st1391; +tr4126: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96503,14 +97817,14 @@ tr4085: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1374; -st1374: + goto st1391; +st1391: if ( ++p == pe ) - goto _test_eof1374; -case 1374: + goto _test_eof1391; +case 1391: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96524,40 +97838,40 @@ case 1374: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4082; - case 32: goto tr4082; - case 40: goto tr4083; - case 41: goto tr4084; - case 2058: goto tr4086; - case 2107: goto tr4087; + case 9: goto tr4123; + case 32: goto tr4123; + case 40: goto tr4124; + case 41: goto tr4125; + case 2058: goto tr4127; + case 2107: goto tr4128; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4085; - goto tr2396; -tr4089: + goto tr4126; + goto tr2429; +tr4130: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1375; -tr4090: + goto st1392; +tr4131: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1375; -tr4092: + goto st1392; +tr4133: { s->line_counter++; } - goto st1375; -tr4098: + goto st1392; +tr4139: { s->buffer[s->buffer_length++] = 0; @@ -96567,15 +97881,15 @@ tr4098: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1375; goto _out;} + {p++; cs = 1392; goto _out;} } } } { s->line_counter++; } - goto st1375; -tr4082: + goto st1392; +tr4123: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96583,11 +97897,11 @@ tr4082: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1375; -tr4083: + goto st1392; +tr4124: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96595,18 +97909,18 @@ tr4083: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1375; -tr4084: + goto st1392; +tr4125: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96614,18 +97928,18 @@ tr4084: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1375; -tr4086: + goto st1392; +tr4127: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96633,17 +97947,17 @@ tr4086: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1375; -st1375: + goto st1392; +st1392: if ( ++p == pe ) - goto _test_eof1375; -case 1375: + goto _test_eof1392; +case 1392: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96657,17 +97971,17 @@ case 1375: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1375; - case 32: goto st1375; - case 40: goto tr4089; - case 41: goto tr4090; - case 2058: goto tr4092; - case 2107: goto tr4093; + case 9: goto st1392; + case 32: goto st1392; + case 40: goto tr4130; + case 41: goto tr4131; + case 2058: goto tr4133; + case 2107: goto tr4134; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4091; - goto tr2396; -tr4091: + goto tr4132; + goto tr2429; +tr4132: { s->number64 = 0; } @@ -96682,11 +97996,11 @@ tr4091: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1376; -tr4095: + goto st1393; +tr4136: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96698,28 +98012,28 @@ tr4095: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1376; -st1376: + goto st1393; +st1393: if ( ++p == pe ) - goto _test_eof1376; -case 1376: + goto _test_eof1393; +case 1393: switch( (*p) ) { - case 32: goto tr4094; - case 59: goto tr4094; + case 32: goto tr4135; + case 59: goto tr4135; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr4094; + goto tr4135; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4095; + goto tr4136; } else - goto tr4094; - goto tr2396; -tr4094: + goto tr4135; + goto tr2429; +tr4135: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96727,48 +98041,48 @@ tr4094: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 1377;goto st385;} } - goto st1377; -st1377: + { p--; {stack[top++] = 1394;goto st388;} } + goto st1394; +st1394: if ( ++p == pe ) - goto _test_eof1377; -case 1377: + goto _test_eof1394; +case 1394: switch( (*p) ) { - case 32: goto tr4096; - case 59: goto tr4096; + case 32: goto tr4137; + case 59: goto tr4137; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4096; + goto tr4137; } else if ( (*p) >= 9 ) - goto tr4096; + goto tr4137; goto tr77; -tr4096: +tr4137: { p--; {cs = stack[--top];goto _again;} } - goto st1530; -st1530: + goto st1570; +st1570: if ( ++p == pe ) - goto _test_eof1530; -case 1530: + goto _test_eof1570; +case 1570: goto st0; -tr4093: +tr4134: { s->buffer_length = 0; } - goto st1378; -tr4097: + goto st1395; +tr4138: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1378; -tr4087: + goto st1395; +tr4128: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96776,17 +98090,17 @@ tr4087: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1378; -st1378: + goto st1395; +st1395: if ( ++p == pe ) - goto _test_eof1378; -case 1378: + goto _test_eof1395; +case 1395: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96806,18 +98120,18 @@ case 1378: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4098; + goto tr4139; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4097; + goto tr4138; goto tr77; -st1379: +st1396: if ( ++p == pe ) - goto _test_eof1379; -case 1379: + goto _test_eof1396; +case 1396: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4099; - goto tr2396; -tr4099: + goto tr4140; + goto tr2429; +tr4140: { s->number64 = 0; } @@ -96832,11 +98146,11 @@ tr4099: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1380; -tr4103: + goto st1397; +tr4144: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96848,14 +98162,14 @@ tr4103: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1380; -st1380: + goto st1397; +st1397: if ( ++p == pe ) - goto _test_eof1380; -case 1380: + goto _test_eof1397; +case 1397: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96869,40 +98183,40 @@ case 1380: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4100; - case 32: goto tr4100; - case 40: goto tr4101; - case 41: goto tr4102; - case 2058: goto tr4104; - case 2107: goto tr4105; + case 9: goto tr4141; + case 32: goto tr4141; + case 40: goto tr4142; + case 41: goto tr4143; + case 2058: goto tr4145; + case 2107: goto tr4146; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4103; - goto tr2396; -tr4107: + goto tr4144; + goto tr2429; +tr4148: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1381; -tr4108: + goto st1398; +tr4149: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1381; -tr4110: + goto st1398; +tr4151: { s->line_counter++; } - goto st1381; -tr4152: + goto st1398; +tr4193: { s->buffer[s->buffer_length++] = 0; @@ -96912,15 +98226,15 @@ tr4152: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1381; goto _out;} + {p++; cs = 1398; goto _out;} } } } { s->line_counter++; } - goto st1381; -tr4100: + goto st1398; +tr4141: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96928,11 +98242,11 @@ tr4100: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1381; -tr4101: + goto st1398; +tr4142: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96940,18 +98254,18 @@ tr4101: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1381; -tr4102: + goto st1398; +tr4143: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96959,18 +98273,18 @@ tr4102: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1381; -tr4104: + goto st1398; +tr4145: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96978,17 +98292,17 @@ tr4104: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1381; -st1381: + goto st1398; +st1398: if ( ++p == pe ) - goto _test_eof1381; -case 1381: + goto _test_eof1398; +case 1398: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97002,17 +98316,17 @@ case 1381: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1381; - case 32: goto st1381; - case 40: goto tr4107; - case 41: goto tr4108; - case 2058: goto tr4110; - case 2107: goto tr4111; + case 9: goto st1398; + case 32: goto st1398; + case 40: goto tr4148; + case 41: goto tr4149; + case 2058: goto tr4151; + case 2107: goto tr4152; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4109; - goto tr2396; -tr4109: + goto tr4150; + goto tr2429; +tr4150: { s->number64 = 0; } @@ -97027,11 +98341,11 @@ tr4109: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1382; -tr4115: + goto st1399; +tr4156: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97043,14 +98357,14 @@ tr4115: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1382; -st1382: + goto st1399; +st1399: if ( ++p == pe ) - goto _test_eof1382; -case 1382: + goto _test_eof1399; +case 1399: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97064,40 +98378,40 @@ case 1382: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4112; - case 32: goto tr4112; - case 40: goto tr4113; - case 41: goto tr4114; - case 2058: goto tr4116; - case 2107: goto tr4117; + case 9: goto tr4153; + case 32: goto tr4153; + case 40: goto tr4154; + case 41: goto tr4155; + case 2058: goto tr4157; + case 2107: goto tr4158; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4115; - goto tr2396; -tr4119: + goto tr4156; + goto tr2429; +tr4160: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1383; -tr4120: + goto st1400; +tr4161: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1383; -tr4122: + goto st1400; +tr4163: { s->line_counter++; } - goto st1383; -tr4150: + goto st1400; +tr4191: { s->buffer[s->buffer_length++] = 0; @@ -97107,79 +98421,79 @@ tr4150: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1383; goto _out;} + {p++; cs = 1400; goto _out;} } } } { s->line_counter++; } - goto st1383; -tr4112: + goto st1400; +tr4153: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1383; -tr4113: + goto st1400; +tr4154: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1383; -tr4114: + goto st1400; +tr4155: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1383; -tr4116: + goto st1400; +tr4157: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1383; -st1383: + goto st1400; +st1400: if ( ++p == pe ) - goto _test_eof1383; -case 1383: + goto _test_eof1400; +case 1400: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97193,17 +98507,17 @@ case 1383: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1383; - case 32: goto st1383; - case 40: goto tr4119; - case 41: goto tr4120; - case 2058: goto tr4122; - case 2107: goto tr4123; + case 9: goto st1400; + case 32: goto st1400; + case 40: goto tr4160; + case 41: goto tr4161; + case 2058: goto tr4163; + case 2107: goto tr4164; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4121; - goto tr2396; -tr4121: + goto tr4162; + goto tr2429; +tr4162: { s->number64 = 0; } @@ -97218,11 +98532,11 @@ tr4121: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1384; -tr4127: + goto st1401; +tr4168: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97234,14 +98548,14 @@ tr4127: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1384; -st1384: + goto st1401; +st1401: if ( ++p == pe ) - goto _test_eof1384; -case 1384: + goto _test_eof1401; +case 1401: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97255,40 +98569,40 @@ case 1384: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4124; - case 32: goto tr4124; - case 40: goto tr4125; - case 41: goto tr4126; - case 2058: goto tr4128; - case 2107: goto tr4129; + case 9: goto tr4165; + case 32: goto tr4165; + case 40: goto tr4166; + case 41: goto tr4167; + case 2058: goto tr4169; + case 2107: goto tr4170; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4127; - goto tr2396; -tr4131: + goto tr4168; + goto tr2429; +tr4172: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1385; -tr4132: + goto st1402; +tr4173: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1385; -tr4134: + goto st1402; +tr4175: { s->line_counter++; } - goto st1385; -tr4148: + goto st1402; +tr4189: { s->buffer[s->buffer_length++] = 0; @@ -97298,79 +98612,79 @@ tr4148: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1385; goto _out;} + {p++; cs = 1402; goto _out;} } } } { s->line_counter++; } - goto st1385; -tr4124: + goto st1402; +tr4165: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1385; -tr4125: + goto st1402; +tr4166: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1385; -tr4126: + goto st1402; +tr4167: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1385; -tr4128: + goto st1402; +tr4169: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1385; -st1385: + goto st1402; +st1402: if ( ++p == pe ) - goto _test_eof1385; -case 1385: + goto _test_eof1402; +case 1402: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97384,69 +98698,69 @@ case 1385: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1385; - case 32: goto st1385; - case 40: goto tr4131; - case 41: goto tr4132; - case 2058: goto tr4134; - case 2107: goto tr4135; + case 9: goto st1402; + case 32: goto st1402; + case 40: goto tr4172; + case 41: goto tr4173; + case 2058: goto tr4175; + case 2107: goto tr4176; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4133; + goto tr4174; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4133; + goto tr4174; } else - goto tr4133; - goto tr3067; -tr4133: + goto tr4174; + goto tr3100; +tr4174: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1386; -st1386: + goto st1403; +st1403: if ( ++p == pe ) - goto _test_eof1386; -case 1386: + goto _test_eof1403; +case 1403: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4136; + goto tr4177; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4136; + goto tr4177; } else - goto tr4136; - goto tr3067; -tr4138: + goto tr4177; + goto tr3100; +tr4179: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1387; -tr4139: + goto st1404; +tr4180: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1387; -tr4140: + goto st1404; +tr4181: { s->line_counter++; } - goto st1387; -tr4146: + goto st1404; +tr4187: { s->buffer[s->buffer_length++] = 0; @@ -97456,24 +98770,24 @@ tr4146: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1387; goto _out;} + {p++; cs = 1404; goto _out;} } } } { s->line_counter++; } - goto st1387; -tr4136: + goto st1404; +tr4177: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1387; -st1387: + goto st1404; +st1404: if ( ++p == pe ) - goto _test_eof1387; -case 1387: + goto _test_eof1404; +case 1404: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97491,42 +98805,42 @@ case 1387: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1387; - case 32: goto st1387; - case 40: goto tr4138; - case 41: goto tr4139; - case 3082: goto tr4140; - case 3131: goto tr4141; - case 3338: goto tr4142; - case 3387: goto tr4142; - case 3594: goto tr4143; - case 3643: goto tr4144; + case 9: goto st1404; + case 32: goto st1404; + case 40: goto tr4179; + case 41: goto tr4180; + case 3082: goto tr4181; + case 3131: goto tr4182; + case 3338: goto tr4183; + case 3387: goto tr4183; + case 3594: goto tr4184; + case 3643: goto tr4185; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4133; + goto tr4174; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4133; + goto tr4174; } else - goto tr4133; - goto tr3067; -tr4141: + goto tr4174; + goto tr3100; +tr4182: { s->buffer_length = 0; } - goto st1388; -tr4145: + goto st1405; +tr4186: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1388; -st1388: + goto st1405; +st1405: if ( ++p == pe ) - goto _test_eof1388; -case 1388: + goto _test_eof1405; +case 1405: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97546,32 +98860,32 @@ case 1388: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4146; + goto tr4187; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4145; - goto tr3067; -tr4142: + goto tr4186; + goto tr3100; +tr4183: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -st1531: + goto st1571; +st1571: if ( ++p == pe ) - goto _test_eof1531; -case 1531: + goto _test_eof1571; +case 1571: goto st0; -tr4143: +tr4184: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1532; -st1532: + goto st1572; +st1572: if ( ++p == pe ) - goto _test_eof1532; -case 1532: + goto _test_eof1572; +case 1572: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97589,38 +98903,38 @@ case 1532: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1387; - case 32: goto st1387; - case 40: goto tr4138; - case 41: goto tr4139; - case 3082: goto tr4140; - case 3131: goto tr4141; - case 3338: goto tr4142; - case 3387: goto tr4142; - case 3594: goto tr4143; - case 3643: goto tr4144; + case 9: goto st1404; + case 32: goto st1404; + case 40: goto tr4179; + case 41: goto tr4180; + case 3082: goto tr4181; + case 3131: goto tr4182; + case 3338: goto tr4183; + case 3387: goto tr4183; + case 3594: goto tr4184; + case 3643: goto tr4185; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4133; + goto tr4174; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4133; + goto tr4174; } else - goto tr4133; - goto tr3067; -tr4144: + goto tr4174; + goto tr3100; +tr4185: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1533; -st1533: + goto st1573; +st1573: if ( ++p == pe ) - goto _test_eof1533; -case 1533: + goto _test_eof1573; +case 1573: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97640,40 +98954,40 @@ case 1533: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4146; + goto tr4187; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4145; - goto tr3067; -tr4135: + goto tr4186; + goto tr3100; +tr4176: { s->buffer_length = 0; } - goto st1389; -tr4147: + goto st1406; +tr4188: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1389; -tr4129: + goto st1406; +tr4170: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1389; -st1389: + goto st1406; +st1406: if ( ++p == pe ) - goto _test_eof1389; -case 1389: + goto _test_eof1406; +case 1406: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97693,40 +99007,40 @@ case 1389: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4148; + goto tr4189; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4147; + goto tr4188; goto tr77; -tr4123: +tr4164: { s->buffer_length = 0; } - goto st1390; -tr4149: + goto st1407; +tr4190: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1390; -tr4117: + goto st1407; +tr4158: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1390; -st1390: + goto st1407; +st1407: if ( ++p == pe ) - goto _test_eof1390; -case 1390: + goto _test_eof1407; +case 1407: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97746,23 +99060,23 @@ case 1390: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4150; + goto tr4191; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4149; + goto tr4190; goto tr77; -tr4111: +tr4152: { s->buffer_length = 0; } - goto st1391; -tr4151: + goto st1408; +tr4192: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1391; -tr4105: + goto st1408; +tr4146: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -97770,17 +99084,17 @@ tr4105: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1391; -st1391: + goto st1408; +st1408: if ( ++p == pe ) - goto _test_eof1391; -case 1391: + goto _test_eof1408; +case 1408: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97800,18 +99114,18 @@ case 1391: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4152; + goto tr4193; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4151; + goto tr4192; goto tr77; -st1392: +st1409: if ( ++p == pe ) - goto _test_eof1392; -case 1392: + goto _test_eof1409; +case 1409: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4153; - goto tr2396; -tr4153: + goto tr4194; + goto tr2429; +tr4194: { s->number64 = 0; } @@ -97826,11 +99140,11 @@ tr4153: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1393; -tr4157: + goto st1410; +tr4198: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97842,14 +99156,14 @@ tr4157: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1393; -st1393: + goto st1410; +st1410: if ( ++p == pe ) - goto _test_eof1393; -case 1393: + goto _test_eof1410; +case 1410: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97863,40 +99177,40 @@ case 1393: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4154; - case 32: goto tr4154; - case 40: goto tr4155; - case 41: goto tr4156; - case 2058: goto tr4158; - case 2107: goto tr4159; + case 9: goto tr4195; + case 32: goto tr4195; + case 40: goto tr4196; + case 41: goto tr4197; + case 2058: goto tr4199; + case 2107: goto tr4200; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4157; - goto tr2396; -tr4161: + goto tr4198; + goto tr2429; +tr4202: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1394; -tr4162: + goto st1411; +tr4203: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1394; -tr4164: + goto st1411; +tr4205: { s->line_counter++; } - goto st1394; -tr4169: + goto st1411; +tr4210: { s->buffer[s->buffer_length++] = 0; @@ -97906,15 +99220,15 @@ tr4169: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1394; goto _out;} + {p++; cs = 1411; goto _out;} } } } { s->line_counter++; } - goto st1394; -tr4154: + goto st1411; +tr4195: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97922,11 +99236,11 @@ tr4154: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1394; -tr4155: + goto st1411; +tr4196: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97934,18 +99248,18 @@ tr4155: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1394; -tr4156: + goto st1411; +tr4197: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97953,18 +99267,18 @@ tr4156: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1394; -tr4158: + goto st1411; +tr4199: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97972,17 +99286,17 @@ tr4158: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1394; -st1394: + goto st1411; +st1411: if ( ++p == pe ) - goto _test_eof1394; -case 1394: + goto _test_eof1411; +case 1411: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97996,28 +99310,28 @@ case 1394: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1394; - case 32: goto st1394; - case 40: goto tr4161; - case 41: goto tr4162; - case 46: goto tr4163; - case 2058: goto tr4164; - case 2107: goto tr4165; + case 9: goto st1411; + case 32: goto st1411; + case 40: goto tr4202; + case 41: goto tr4203; + case 46: goto tr4204; + case 2058: goto tr4205; + case 2107: goto tr4206; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4163; - goto tr2373; -tr4167: + goto tr4204; + goto tr2406; +tr4208: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1395; -tr4163: + goto st1412; +tr4204: { s->buffer_length = 0; } @@ -98026,41 +99340,41 @@ tr4163: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1395; -st1395: + goto st1412; +st1412: if ( ++p == pe ) - goto _test_eof1395; -case 1395: + goto _test_eof1412; +case 1412: switch( (*p) ) { - case 32: goto tr4166; - case 46: goto tr4167; - case 59: goto tr4166; + case 32: goto tr4207; + case 46: goto tr4208; + case 59: goto tr4207; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr4166; + goto tr4207; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4167; + goto tr4208; } else - goto tr4166; - goto tr2373; -tr4166: + goto tr4207; + goto tr2406; +tr4207: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st316;} + p--; {goto st319;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -98068,25 +99382,25 @@ tr4166: { p--; {cs = stack[--top];goto _again;} } - goto st1534; -st1534: + goto st1574; +st1574: if ( ++p == pe ) - goto _test_eof1534; -case 1534: + goto _test_eof1574; +case 1574: goto st0; -tr4165: +tr4206: { s->buffer_length = 0; } - goto st1396; -tr4168: + goto st1413; +tr4209: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1396; -tr4159: + goto st1413; +tr4200: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98094,17 +99408,17 @@ tr4159: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1396; -st1396: + goto st1413; +st1413: if ( ++p == pe ) - goto _test_eof1396; -case 1396: + goto _test_eof1413; +case 1413: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -98124,18 +99438,18 @@ case 1396: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4169; + goto tr4210; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4168; + goto tr4209; goto tr77; -st1397: +st1414: if ( ++p == pe ) - goto _test_eof1397; -case 1397: + goto _test_eof1414; +case 1414: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4170; - goto tr2396; -tr4170: + goto tr4211; + goto tr2429; +tr4211: { s->number64 = 0; } @@ -98150,11 +99464,11 @@ tr4170: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1398; -tr4174: + goto st1415; +tr4215: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98166,14 +99480,14 @@ tr4174: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1398; -st1398: + goto st1415; +st1415: if ( ++p == pe ) - goto _test_eof1398; -case 1398: + goto _test_eof1415; +case 1415: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98187,40 +99501,40 @@ case 1398: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4171; - case 32: goto tr4171; - case 40: goto tr4172; - case 41: goto tr4173; - case 2058: goto tr4175; - case 2107: goto tr4176; + case 9: goto tr4212; + case 32: goto tr4212; + case 40: goto tr4213; + case 41: goto tr4214; + case 2058: goto tr4216; + case 2107: goto tr4217; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4174; - goto tr2396; -tr4178: + goto tr4215; + goto tr2429; +tr4219: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1399; -tr4179: + goto st1416; +tr4220: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1399; -tr4181: + goto st1416; +tr4222: { s->line_counter++; } - goto st1399; -tr4195: + goto st1416; +tr4236: { s->buffer[s->buffer_length++] = 0; @@ -98230,15 +99544,15 @@ tr4195: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1399; goto _out;} + {p++; cs = 1416; goto _out;} } } } { s->line_counter++; } - goto st1399; -tr4171: + goto st1416; +tr4212: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98246,11 +99560,11 @@ tr4171: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1399; -tr4172: + goto st1416; +tr4213: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98258,18 +99572,18 @@ tr4172: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1399; -tr4173: + goto st1416; +tr4214: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98277,18 +99591,18 @@ tr4173: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1399; -tr4175: + goto st1416; +tr4216: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98296,17 +99610,17 @@ tr4175: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1399; -st1399: + goto st1416; +st1416: if ( ++p == pe ) - goto _test_eof1399; -case 1399: + goto _test_eof1416; +case 1416: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98320,23 +99634,23 @@ case 1399: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1399; - case 32: goto st1399; - case 40: goto tr4178; - case 41: goto tr4179; - case 2058: goto tr4181; - case 2107: goto tr4182; + case 9: goto st1416; + case 32: goto st1416; + case 40: goto tr4219; + case 41: goto tr4220; + case 2058: goto tr4222; + case 2107: goto tr4223; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4180; + goto tr4221; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4180; + goto tr4221; } else - goto tr4180; - goto tr3067; -tr4180: + goto tr4221; + goto tr3100; +tr4221: { s->item_length = 0; } @@ -98345,214 +99659,214 @@ tr4180: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1400; -st1400: + goto st1417; +st1417: if ( ++p == pe ) - goto _test_eof1400; -case 1400: + goto _test_eof1417; +case 1417: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4183; + goto tr4224; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4183; + goto tr4224; } else - goto tr4183; - goto tr3067; -tr4183: + goto tr4224; + goto tr3100; +tr4224: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1401; -st1401: + goto st1418; +st1418: if ( ++p == pe ) - goto _test_eof1401; -case 1401: + goto _test_eof1418; +case 1418: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4184; + goto tr4225; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4184; + goto tr4225; } else - goto tr4184; - goto tr3067; -tr4184: + goto tr4225; + goto tr3100; +tr4225: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1402; -st1402: + goto st1419; +st1419: if ( ++p == pe ) - goto _test_eof1402; -case 1402: + goto _test_eof1419; +case 1419: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4185; + goto tr4226; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4185; + goto tr4226; } else - goto tr4185; - goto tr3067; -tr4185: + goto tr4226; + goto tr3100; +tr4226: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1403; -st1403: + goto st1420; +st1420: if ( ++p == pe ) - goto _test_eof1403; -case 1403: + goto _test_eof1420; +case 1420: if ( (*p) == 58 ) - goto tr4187; - goto tr4186; -tr4187: + goto tr4228; + goto tr4227; +tr4228: { s->item_length++; } - goto st1404; -st1404: + goto st1421; +st1421: if ( ++p == pe ) - goto _test_eof1404; -case 1404: + goto _test_eof1421; +case 1421: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4188; + goto tr4229; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4188; + goto tr4229; } else - goto tr4188; - goto tr3067; -tr4188: + goto tr4229; + goto tr3100; +tr4229: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1405; -st1405: + goto st1422; +st1422: if ( ++p == pe ) - goto _test_eof1405; -case 1405: + goto _test_eof1422; +case 1422: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4189; + goto tr4230; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4189; + goto tr4230; } else - goto tr4189; - goto tr3067; -tr4189: + goto tr4230; + goto tr3100; +tr4230: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1406; -st1406: + goto st1423; +st1423: if ( ++p == pe ) - goto _test_eof1406; -case 1406: + goto _test_eof1423; +case 1423: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4190; + goto tr4231; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4190; + goto tr4231; } else - goto tr4190; - goto tr3067; -tr4190: + goto tr4231; + goto tr3100; +tr4231: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1407; -st1407: + goto st1424; +st1424: if ( ++p == pe ) - goto _test_eof1407; -case 1407: + goto _test_eof1424; +case 1424: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4191; + goto tr4232; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4191; + goto tr4232; } else - goto tr4191; - goto tr3067; -tr4191: + goto tr4232; + goto tr3100; +tr4232: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1408; -st1408: + goto st1425; +st1425: if ( ++p == pe ) - goto _test_eof1408; -case 1408: + goto _test_eof1425; +case 1425: switch( (*p) ) { - case 32: goto tr4193; - case 58: goto tr4187; - case 59: goto tr4193; + case 32: goto tr4234; + case 58: goto tr4228; + case 59: goto tr4234; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4193; + goto tr4234; } else if ( (*p) >= 9 ) - goto tr4193; - goto tr4192; -tr4193: + goto tr4234; + goto tr4233; +tr4234: { s->item_length++; } { if (s->item_length != 4) { WARN(ZS_BAD_L64_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1535; -st1535: + goto st1575; +st1575: if ( ++p == pe ) - goto _test_eof1535; -case 1535: + goto _test_eof1575; +case 1575: goto st0; -tr4182: +tr4223: { s->buffer_length = 0; } - goto st1409; -tr4194: + goto st1426; +tr4235: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1409; -tr4176: + goto st1426; +tr4217: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98560,17 +99874,17 @@ tr4176: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1409; -st1409: + goto st1426; +st1426: if ( ++p == pe ) - goto _test_eof1409; -case 1409: + goto _test_eof1426; +case 1426: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -98590,24 +99904,24 @@ case 1409: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4195; + goto tr4236; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4194; + goto tr4235; goto tr77; -st1410: +st1427: if ( ++p == pe ) - goto _test_eof1410; -case 1410: + goto _test_eof1427; +case 1427: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4196; + goto tr4237; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4196; + goto tr4237; } else - goto tr4196; - goto tr3067; -tr4196: + goto tr4237; + goto tr3100; +tr4237: { s->item_length = 0; } @@ -98616,131 +99930,131 @@ tr4196: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1411; -st1411: + goto st1428; +st1428: if ( ++p == pe ) - goto _test_eof1411; -case 1411: + goto _test_eof1428; +case 1428: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4197; + goto tr4238; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4197; + goto tr4238; } else - goto tr4197; - goto tr3067; -tr4197: + goto tr4238; + goto tr3100; +tr4238: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1412; -st1412: + goto st1429; +st1429: if ( ++p == pe ) - goto _test_eof1412; -case 1412: + goto _test_eof1429; +case 1429: if ( (*p) == 45 ) - goto tr4199; - goto tr4198; -tr4199: + goto tr4240; + goto tr4239; +tr4240: { s->item_length++; } - goto st1413; -st1413: + goto st1430; +st1430: if ( ++p == pe ) - goto _test_eof1413; -case 1413: + goto _test_eof1430; +case 1430: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4200; + goto tr4241; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4200; + goto tr4241; } else - goto tr4200; - goto tr3067; -tr4200: + goto tr4241; + goto tr3100; +tr4241: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1414; -st1414: + goto st1431; +st1431: if ( ++p == pe ) - goto _test_eof1414; -case 1414: + goto _test_eof1431; +case 1431: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4201; + goto tr4242; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4201; + goto tr4242; } else - goto tr4201; - goto tr3067; -tr4201: + goto tr4242; + goto tr3100; +tr4242: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1415; -st1415: + goto st1432; +st1432: if ( ++p == pe ) - goto _test_eof1415; -case 1415: + goto _test_eof1432; +case 1432: switch( (*p) ) { - case 32: goto tr4202; - case 45: goto tr4199; - case 59: goto tr4202; + case 32: goto tr4243; + case 45: goto tr4240; + case 59: goto tr4243; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4202; + goto tr4243; } else if ( (*p) >= 9 ) - goto tr4202; - goto tr4198; -tr4202: + goto tr4243; + goto tr4239; +tr4243: { s->item_length++; } { if (s->item_length != 6) { WARN(ZS_BAD_EUI_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1536; -st1536: + goto st1576; +st1576: if ( ++p == pe ) - goto _test_eof1536; -case 1536: + goto _test_eof1576; +case 1576: goto st0; -st1416: +st1433: if ( ++p == pe ) - goto _test_eof1416; -case 1416: + goto _test_eof1433; +case 1433: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4203; + goto tr4244; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4203; + goto tr4244; } else - goto tr4203; - goto tr3067; -tr4203: + goto tr4244; + goto tr3100; +tr4244: { s->item_length = 0; } @@ -98749,125 +100063,125 @@ tr4203: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1417; -st1417: + goto st1434; +st1434: if ( ++p == pe ) - goto _test_eof1417; -case 1417: + goto _test_eof1434; +case 1434: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4204; + goto tr4245; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4204; + goto tr4245; } else - goto tr4204; - goto tr3067; -tr4204: + goto tr4245; + goto tr3100; +tr4245: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1418; -st1418: + goto st1435; +st1435: if ( ++p == pe ) - goto _test_eof1418; -case 1418: + goto _test_eof1435; +case 1435: if ( (*p) == 45 ) - goto tr4205; - goto tr4198; -tr4205: + goto tr4246; + goto tr4239; +tr4246: { s->item_length++; } - goto st1419; -st1419: + goto st1436; +st1436: if ( ++p == pe ) - goto _test_eof1419; -case 1419: + goto _test_eof1436; +case 1436: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4206; + goto tr4247; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4206; + goto tr4247; } else - goto tr4206; - goto tr3067; -tr4206: + goto tr4247; + goto tr3100; +tr4247: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1420; -st1420: + goto st1437; +st1437: if ( ++p == pe ) - goto _test_eof1420; -case 1420: + goto _test_eof1437; +case 1437: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4207; + goto tr4248; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4207; + goto tr4248; } else - goto tr4207; - goto tr3067; -tr4207: + goto tr4248; + goto tr3100; +tr4248: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1421; -st1421: + goto st1438; +st1438: if ( ++p == pe ) - goto _test_eof1421; -case 1421: + goto _test_eof1438; +case 1438: switch( (*p) ) { - case 32: goto tr4208; - case 45: goto tr4205; - case 59: goto tr4208; + case 32: goto tr4249; + case 45: goto tr4246; + case 59: goto tr4249; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4208; + goto tr4249; } else if ( (*p) >= 9 ) - goto tr4208; - goto tr4198; -tr4208: + goto tr4249; + goto tr4239; +tr4249: { s->item_length++; } { if (s->item_length != 8) { WARN(ZS_BAD_EUI_LENGTH); - p--; {goto st316;} + p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1537; -st1537: + goto st1577; +st1577: if ( ++p == pe ) - goto _test_eof1537; -case 1537: + goto _test_eof1577; +case 1577: goto st0; -st1422: +st1439: if ( ++p == pe ) - goto _test_eof1422; -case 1422: + goto _test_eof1439; +case 1439: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4209; - goto tr2396; -tr4209: + goto tr4250; + goto tr2429; +tr4250: { s->number64 = 0; } @@ -98882,11 +100196,11 @@ tr4209: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1423; -tr4213: + goto st1440; +tr4254: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98898,14 +100212,14 @@ tr4213: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1423; -st1423: + goto st1440; +st1440: if ( ++p == pe ) - goto _test_eof1423; -case 1423: + goto _test_eof1440; +case 1440: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98919,40 +100233,40 @@ case 1423: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4210; - case 32: goto tr4210; - case 40: goto tr4211; - case 41: goto tr4212; - case 2058: goto tr4214; - case 2107: goto tr4215; + case 9: goto tr4251; + case 32: goto tr4251; + case 40: goto tr4252; + case 41: goto tr4253; + case 2058: goto tr4255; + case 2107: goto tr4256; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4213; - goto tr2396; -tr4217: + goto tr4254; + goto tr2429; +tr4258: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1424; -tr4218: + goto st1441; +tr4259: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1424; -tr4220: + goto st1441; +tr4261: { s->line_counter++; } - goto st1424; -tr4238: + goto st1441; +tr4279: { s->buffer[s->buffer_length++] = 0; @@ -98962,15 +100276,15 @@ tr4238: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1424; goto _out;} + {p++; cs = 1441; goto _out;} } } } { s->line_counter++; } - goto st1424; -tr4210: + goto st1441; +tr4251: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98978,11 +100292,11 @@ tr4210: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1424; -tr4211: + goto st1441; +tr4252: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98990,18 +100304,18 @@ tr4211: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1424; -tr4212: + goto st1441; +tr4253: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99009,18 +100323,18 @@ tr4212: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1424; -tr4214: + goto st1441; +tr4255: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99028,17 +100342,17 @@ tr4214: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1424; -st1424: + goto st1441; +st1441: if ( ++p == pe ) - goto _test_eof1424; -case 1424: + goto _test_eof1441; +case 1441: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99052,17 +100366,17 @@ case 1424: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1424; - case 32: goto st1424; - case 40: goto tr4217; - case 41: goto tr4218; - case 2058: goto tr4220; - case 2107: goto tr4221; + case 9: goto st1441; + case 32: goto st1441; + case 40: goto tr4258; + case 41: goto tr4259; + case 2058: goto tr4261; + case 2107: goto tr4262; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4219; - goto tr2396; -tr4219: + goto tr4260; + goto tr2429; +tr4260: { s->number64 = 0; } @@ -99077,11 +100391,11 @@ tr4219: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1425; -tr4225: + goto st1442; +tr4266: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99093,14 +100407,14 @@ tr4225: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1425; -st1425: + goto st1442; +st1442: if ( ++p == pe ) - goto _test_eof1425; -case 1425: + goto _test_eof1442; +case 1442: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99114,40 +100428,40 @@ case 1425: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4222; - case 32: goto tr4222; - case 40: goto tr4223; - case 41: goto tr4224; - case 2058: goto tr4226; - case 2107: goto tr4227; + case 9: goto tr4263; + case 32: goto tr4263; + case 40: goto tr4264; + case 41: goto tr4265; + case 2058: goto tr4267; + case 2107: goto tr4268; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4225; - goto tr2396; -tr4230: + goto tr4266; + goto tr2429; +tr4271: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1426; -tr4231: + goto st1443; +tr4272: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1426; -tr4232: + goto st1443; +tr4273: { s->line_counter++; } - goto st1426; -tr4236: + goto st1443; +tr4277: { s->buffer[s->buffer_length++] = 0; @@ -99157,15 +100471,15 @@ tr4236: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1426; goto _out;} + {p++; cs = 1443; goto _out;} } } } { s->line_counter++; } - goto st1426; -tr4222: + goto st1443; +tr4263: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99173,11 +100487,11 @@ tr4222: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1426; -tr4223: + goto st1443; +tr4264: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99185,18 +100499,18 @@ tr4223: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1426; -tr4224: + goto st1443; +tr4265: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99204,18 +100518,18 @@ tr4224: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1426; -tr4226: + goto st1443; +tr4267: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99223,17 +100537,17 @@ tr4226: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1426; -st1426: + goto st1443; +st1443: if ( ++p == pe ) - goto _test_eof1426; -case 1426: + goto _test_eof1443; +case 1443: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99247,62 +100561,62 @@ case 1426: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1426; - case 32: goto st1426; - case 40: goto tr4230; - case 41: goto tr4231; - case 2058: goto tr4232; - case 2107: goto tr4233; + case 9: goto st1443; + case 32: goto st1443; + case 40: goto tr4271; + case 41: goto tr4272; + case 2058: goto tr4273; + case 2107: goto tr4274; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4228; + goto tr4269; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4228; + goto tr4269; } else - goto tr4228; + goto tr4269; goto tr77; -tr4228: - { p--; {stack[top++] = 1427;goto st327;} } - goto st1427; -st1427: +tr4269: + { p--; {stack[top++] = 1444;goto st330;} } + goto st1444; +st1444: if ( ++p == pe ) - goto _test_eof1427; -case 1427: + goto _test_eof1444; +case 1444: switch( (*p) ) { - case 32: goto tr4234; - case 59: goto tr4234; + case 32: goto tr4275; + case 59: goto tr4275; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4234; + goto tr4275; } else if ( (*p) >= 9 ) - goto tr4234; + goto tr4275; goto tr77; -tr4234: +tr4275: { p--; {cs = stack[--top];goto _again;} } - goto st1538; -st1538: + goto st1578; +st1578: if ( ++p == pe ) - goto _test_eof1538; -case 1538: + goto _test_eof1578; +case 1578: goto st0; -tr4233: +tr4274: { s->buffer_length = 0; } - goto st1428; -tr4235: + goto st1445; +tr4276: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1428; -tr4227: + goto st1445; +tr4268: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99310,17 +100624,17 @@ tr4227: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1428; -st1428: + goto st1445; +st1445: if ( ++p == pe ) - goto _test_eof1428; -case 1428: + goto _test_eof1445; +case 1445: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99340,23 +100654,23 @@ case 1428: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4236; + goto tr4277; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4235; + goto tr4276; goto tr77; -tr4221: +tr4262: { s->buffer_length = 0; } - goto st1429; -tr4237: + goto st1446; +tr4278: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1429; -tr4215: + goto st1446; +tr4256: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99364,17 +100678,17 @@ tr4215: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1429; -st1429: + goto st1446; +st1446: if ( ++p == pe ) - goto _test_eof1429; -case 1429: + goto _test_eof1446; +case 1446: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99394,18 +100708,18 @@ case 1429: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4238; + goto tr4279; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4237; + goto tr4278; goto tr77; -st1430: +st1447: if ( ++p == pe ) - goto _test_eof1430; -case 1430: + goto _test_eof1447; +case 1447: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4239; - goto tr2396; -tr4239: + goto tr4280; + goto tr2429; +tr4280: { s->number64 = 0; } @@ -99420,11 +100734,11 @@ tr4239: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1431; -tr4243: + goto st1448; +tr4284: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99436,14 +100750,14 @@ tr4243: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1431; -st1431: + goto st1448; +st1448: if ( ++p == pe ) - goto _test_eof1431; -case 1431: + goto _test_eof1448; +case 1448: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99457,40 +100771,40 @@ case 1431: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4240; - case 32: goto tr4240; - case 40: goto tr4241; - case 41: goto tr4242; - case 2058: goto tr4244; - case 2107: goto tr4245; + case 9: goto tr4281; + case 32: goto tr4281; + case 40: goto tr4282; + case 41: goto tr4283; + case 2058: goto tr4285; + case 2107: goto tr4286; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4243; - goto tr2396; -tr4248: + goto tr4284; + goto tr2429; +tr4289: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1432; -tr4249: + goto st1449; +tr4290: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1432; -tr4250: + goto st1449; +tr4291: { s->line_counter++; } - goto st1432; -tr4267: + goto st1449; +tr4308: { s->buffer[s->buffer_length++] = 0; @@ -99500,79 +100814,79 @@ tr4267: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1432; goto _out;} + {p++; cs = 1449; goto _out;} } } } { s->line_counter++; } - goto st1432; -tr4240: + goto st1449; +tr4281: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1432; -tr4241: + goto st1449; +tr4282: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1432; -tr4242: + goto st1449; +tr4283: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1432; -tr4244: + goto st1449; +tr4285: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1432; -st1432: + goto st1449; +st1449: if ( ++p == pe ) - goto _test_eof1432; -case 1432: + goto _test_eof1449; +case 1449: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99586,37 +100900,37 @@ case 1432: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1432; - case 32: goto st1432; - case 40: goto tr4248; - case 41: goto tr4249; - case 2058: goto tr4250; - case 2107: goto tr4251; + case 9: goto st1449; + case 32: goto st1449; + case 40: goto tr4289; + case 41: goto tr4290; + case 2058: goto tr4291; + case 2107: goto tr4292; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4246; + goto tr4287; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4246; + goto tr4287; } else - goto tr4246; + goto tr4287; goto tr77; -tr4246: +tr4287: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - { p--; {stack[top++] = 1433;goto st327;} } - goto st1433; -st1433: + { p--; {stack[top++] = 1450;goto st330;} } + goto st1450; +st1450: if ( ++p == pe ) - goto _test_eof1433; -case 1433: + goto _test_eof1450; +case 1450: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99630,38 +100944,38 @@ case 1433: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4252; - case 32: goto tr4252; - case 40: goto tr4253; - case 41: goto tr4254; - case 2058: goto tr4255; - case 2107: goto tr4256; + case 9: goto tr4293; + case 32: goto tr4293; + case 40: goto tr4294; + case 41: goto tr4295; + case 2058: goto tr4296; + case 2107: goto tr4297; } goto tr77; -tr4259: +tr4300: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1434; -tr4260: + goto st1451; +tr4301: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1434; -tr4261: + goto st1451; +tr4302: { s->line_counter++; } - goto st1434; -tr4265: + goto st1451; +tr4306: { s->buffer[s->buffer_length++] = 0; @@ -99671,95 +100985,95 @@ tr4265: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1434; goto _out;} + {p++; cs = 1451; goto _out;} } } } { s->line_counter++; } - goto st1434; -tr4252: + goto st1451; +tr4293: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1434; -tr4253: + goto st1451; +tr4294: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = true; } - goto st1434; -tr4254: + goto st1451; +tr4295: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} + p--; {goto st319;} } s->multiline = false; } - goto st1434; -tr4255: + goto st1451; +tr4296: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->line_counter++; } - goto st1434; -st1434: + goto st1451; +st1451: if ( ++p == pe ) - goto _test_eof1434; -case 1434: + goto _test_eof1451; +case 1451: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99773,83 +101087,1196 @@ case 1434: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1434; - case 32: goto st1434; - case 40: goto tr4259; - case 41: goto tr4260; - case 2058: goto tr4261; - case 2107: goto tr4262; + case 9: goto st1451; + case 32: goto st1451; + case 40: goto tr4300; + case 41: goto tr4301; + case 2058: goto tr4302; + case 2107: goto tr4303; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4257; + goto tr4298; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4257; + goto tr4298; } else - goto tr4257; + goto tr4298; goto tr77; -tr4257: - { p--; {stack[top++] = 1435;goto st327;} } - goto st1435; -st1435: +tr4298: + { p--; {stack[top++] = 1452;goto st330;} } + goto st1452; +st1452: if ( ++p == pe ) - goto _test_eof1435; -case 1435: + goto _test_eof1452; +case 1452: switch( (*p) ) { - case 32: goto tr4263; - case 59: goto tr4263; + case 32: goto tr4304; + case 59: goto tr4304; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4263; + goto tr4304; } else if ( (*p) >= 9 ) - goto tr4263; + goto tr4304; goto tr77; -tr4263: +tr4304: { p--; {cs = stack[--top];goto _again;} } - goto st1539; -st1539: + goto st1579; +st1579: if ( ++p == pe ) - goto _test_eof1539; -case 1539: + goto _test_eof1579; +case 1579: goto st0; -tr4262: +tr4303: { s->buffer_length = 0; } - goto st1436; -tr4264: + goto st1453; +tr4305: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1436; -tr4256: + goto st1453; +tr4297: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st316;} + p--; {goto st319;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1436; -st1436: + goto st1453; +st1453: if ( ++p == pe ) - goto _test_eof1436; -case 1436: + goto _test_eof1453; +case 1453: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr4306; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr4305; + goto tr77; +tr4292: + { + s->buffer_length = 0; + } + goto st1454; +tr4307: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1454; +tr4286: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1454; +st1454: + if ( ++p == pe ) + goto _test_eof1454; +case 1454: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr4308; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr4307; + goto tr77; +st1455: + if ( ++p == pe ) + goto _test_eof1455; +case 1455: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr4309; + goto tr2429; +tr4309: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1456; +tr4313: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1456; +st1456: + if ( ++p == pe ) + goto _test_eof1456; +case 1456: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr4310; + case 32: goto tr4310; + case 40: goto tr4311; + case 41: goto tr4312; + case 2058: goto tr4314; + case 2107: goto tr4315; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr4313; + goto tr2429; +tr4317: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1457; +tr4318: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1457; +tr4320: + { + s->line_counter++; + } + goto st1457; +tr4325: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1457; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1457; +tr4310: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + goto st1457; +tr4311: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1457; +tr4312: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1457; +tr4314: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + goto st1457; +st1457: + if ( ++p == pe ) + goto _test_eof1457; +case 1457: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1457; + case 32: goto st1457; + case 40: goto tr4317; + case 41: goto tr4318; + case 42: goto tr4319; + case 92: goto tr4319; + case 95: goto tr4319; + case 2058: goto tr4320; + case 2107: goto tr4321; + } + if ( _widec < 64 ) { + if ( 45 <= _widec && _widec <= 57 ) + goto tr4319; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr4319; + } else + goto tr4319; + goto tr77; +tr4319: + { + s->dname = rdata_tail; + } + { p--; {stack[top++] = 1458;goto st321;} } + goto st1458; +st1458: + if ( ++p == pe ) + goto _test_eof1458; +case 1458: + switch( (*p) ) { + case 32: goto tr4322; + case 59: goto tr4322; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr4322; + } else if ( (*p) >= 9 ) + goto tr4322; + goto tr77; +tr4322: + { + rdata_tail += s->dname_tmp_length; + } + { p--; {stack[top++] = 1459;goto st636;} } + goto st1459; +st1459: + if ( ++p == pe ) + goto _test_eof1459; +case 1459: + switch( (*p) ) { + case 32: goto tr4323; + case 59: goto tr4323; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr4323; + } else if ( (*p) >= 9 ) + goto tr4323; + goto tr77; +tr4323: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1580; +st1580: + if ( ++p == pe ) + goto _test_eof1580; +case 1580: + goto st0; +tr4321: + { + s->buffer_length = 0; + } + goto st1460; +tr4324: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1460; +tr4315: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1460; +st1460: + if ( ++p == pe ) + goto _test_eof1460; +case 1460: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr4325; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr4324; + goto tr77; +st1461: + if ( ++p == pe ) + goto _test_eof1461; +case 1461: + switch( (*p) ) { + case 67: goto st1462; + case 84: goto st1478; + case 99: goto st1462; + case 116: goto st1478; + } + goto tr3373; +st1462: + if ( ++p == pe ) + goto _test_eof1462; +case 1462: + switch( (*p) ) { + case 68: goto st1463; + case 83: goto st1474; + case 100: goto st1463; + case 115: goto st1474; + } + goto tr3373; +st1463: + if ( ++p == pe ) + goto _test_eof1463; +case 1463: + switch( (*p) ) { + case 83: goto st1464; + case 115: goto st1464; + } + goto tr3373; +st1464: + if ( ++p == pe ) + goto _test_eof1464; +case 1464: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr4331; + case 32: goto tr4331; + case 40: goto tr4332; + case 41: goto tr4333; + case 2058: goto tr4334; + case 2107: goto tr4335; + } + goto tr3373; +tr4337: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1465; +tr4338: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1465; +tr4340: + { + s->line_counter++; + } + goto st1465; +tr4366: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1465; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1465; +tr4379: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + goto st1465; +tr4380: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1465; +tr4381: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1465; +tr4383: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + goto st1465; +tr4331: + { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } + goto st1465; +tr4332: + { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1465; +tr4333: + { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1465; +tr4334: + { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } + { + s->line_counter++; + } + goto st1465; +tr4370: + { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } + goto st1465; +tr4371: + { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1465; +tr4372: + { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1465; +tr4373: + { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } + { + s->line_counter++; + } + goto st1465; +st1465: + if ( ++p == pe ) + goto _test_eof1465; +case 1465: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1465; + case 32: goto st1465; + case 40: goto tr4337; + case 41: goto tr4338; + case 2058: goto tr4340; + case 2107: goto tr4341; + } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr4339; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr4339; + } else + goto tr4339; + goto tr77; +tr4339: + { p--; {stack[top++] = 1466;goto st892;} } + goto st1466; +st1466: + if ( ++p == pe ) + goto _test_eof1466; +case 1466: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1467; + case 32: goto st1467; + case 40: goto tr4343; + case 41: goto tr4344; + case 2058: goto tr4345; + case 2107: goto tr4346; + } + goto tr77; +tr4343: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1467; +tr4344: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1467; +tr4345: + { + s->line_counter++; + } + goto st1467; +tr4364: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1467; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1467; +st1467: + if ( ++p == pe ) + goto _test_eof1467; +case 1467: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1467; + case 32: goto st1467; + case 40: goto tr4343; + case 41: goto tr4344; + case 2058: goto tr4345; + case 2107: goto tr4346; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr4347; + goto tr2429; +tr4347: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1468; +tr4351: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1468; +st1468: + if ( ++p == pe ) + goto _test_eof1468; +case 1468: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr4348; + case 32: goto tr4348; + case 40: goto tr4349; + case 41: goto tr4350; + case 2058: goto tr4352; + case 2107: goto tr4353; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr4351; + goto tr2429; +tr4355: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1469; +tr4356: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1469; +tr4358: + { + s->line_counter++; + } + goto st1469; +tr4362: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1469; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1469; +tr4348: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + goto st1469; +tr4349: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1469; +tr4350: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1469; +tr4352: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + goto st1469; +st1469: + if ( ++p == pe ) + goto _test_eof1469; +case 1469: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1469; + case 32: goto st1469; + case 40: goto tr4355; + case 41: goto tr4356; + case 42: goto tr4357; + case 92: goto tr4357; + case 95: goto tr4357; + case 2058: goto tr4358; + case 2107: goto tr4359; + } + if ( _widec < 64 ) { + if ( 45 <= _widec && _widec <= 57 ) + goto tr4357; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr4357; + } else + goto tr4357; + goto tr77; +tr4357: + { + s->dname = rdata_tail; + } + { p--; {stack[top++] = 1470;goto st321;} } + goto st1470; +st1470: + if ( ++p == pe ) + goto _test_eof1470; +case 1470: + switch( (*p) ) { + case 32: goto tr4360; + case 59: goto tr4360; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr4360; + } else if ( (*p) >= 9 ) + goto tr4360; + goto tr77; +tr4360: + { + rdata_tail += s->dname_tmp_length; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1581; +st1581: + if ( ++p == pe ) + goto _test_eof1581; +case 1581: + goto st0; +tr4359: + { + s->buffer_length = 0; + } + goto st1471; +tr4361: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1471; +tr4353: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1471; +st1471: + if ( ++p == pe ) + goto _test_eof1471; +case 1471: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr4362; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr4361; + goto tr77; +tr4346: + { + s->buffer_length = 0; + } + goto st1472; +tr4363: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1472; +st1472: + if ( ++p == pe ) + goto _test_eof1472; +case 1472: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr4364; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr4363; + goto tr77; +tr4341: + { + s->buffer_length = 0; + } + goto st1473; +tr4365: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1473; +tr4384: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1473; +tr4335: + { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } + { + s->buffer_length = 0; + } + goto st1473; +tr4374: + { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } + { + s->buffer_length = 0; + } + goto st1473; +st1473: + if ( ++p == pe ) + goto _test_eof1473; +case 1473: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99869,71 +102296,97 @@ case 1436: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4265; + goto tr4366; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4264; + goto tr4365; goto tr77; -tr4251: - { - s->buffer_length = 0; - } - goto st1437; -tr4266: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } +st1474: + if ( ++p == pe ) + goto _test_eof1474; +case 1474: + switch( (*p) ) { + case 89: goto st1475; + case 121: goto st1475; } - goto st1437; -tr4245: - { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st316;} - } + goto tr3373; +st1475: + if ( ++p == pe ) + goto _test_eof1475; +case 1475: + switch( (*p) ) { + case 78: goto st1476; + case 110: goto st1476; } - { - s->buffer_length = 0; + goto tr3373; +st1476: + if ( ++p == pe ) + goto _test_eof1476; +case 1476: + switch( (*p) ) { + case 67: goto st1477; + case 99: goto st1477; } - goto st1437; -st1437: + goto tr3373; +st1477: if ( ++p == pe ) - goto _test_eof1437; -case 1437: + goto _test_eof1477; +case 1477: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr4267; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4266; - goto tr77; -st1438: + switch( _widec ) { + case 9: goto tr4370; + case 32: goto tr4370; + case 40: goto tr4371; + case 41: goto tr4372; + case 2058: goto tr4373; + case 2107: goto tr4374; + } + goto tr3373; +st1478: if ( ++p == pe ) - goto _test_eof1438; -case 1438: + goto _test_eof1478; +case 1478: + switch( (*p) ) { + case 89: goto st1479; + case 121: goto st1479; + } + goto tr3373; +st1479: + if ( ++p == pe ) + goto _test_eof1479; +case 1479: + switch( (*p) ) { + case 80: goto st1480; + case 112: goto st1480; + } + goto tr3373; +st1480: + if ( ++p == pe ) + goto _test_eof1480; +case 1480: + switch( (*p) ) { + case 69: goto st1481; + case 101: goto st1481; + } + goto tr3373; +st1481: + if ( ++p == pe ) + goto _test_eof1481; +case 1481: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4268; - goto tr2396; -tr4268: + goto tr4378; + goto tr3867; +tr4378: { s->number64 = 0; } @@ -99948,11 +102401,11 @@ tr4268: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1439; -tr4272: + goto st1482; +tr4382: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99964,14 +102417,14 @@ tr4272: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st316;} + p--; {goto st319;} } } - goto st1439; -st1439: + goto st1482; +st1482: if ( ++p == pe ) - goto _test_eof1439; -case 1439: + goto _test_eof1482; +case 1482: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99985,264 +102438,18 @@ case 1439: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4269; - case 32: goto tr4269; - case 40: goto tr4270; - case 41: goto tr4271; - case 2058: goto tr4273; - case 2107: goto tr4274; + case 9: goto tr4379; + case 32: goto tr4379; + case 40: goto tr4380; + case 41: goto tr4381; + case 2058: goto tr4383; + case 2107: goto tr4384; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4272; - goto tr2396; -tr4276: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} - } - s->multiline = true; - } - goto st1440; -tr4277: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} - } - s->multiline = false; - } - goto st1440; -tr4279: - { - s->line_counter++; - } - goto st1440; -tr4284: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1440; goto _out;} - } - } - } - { - s->line_counter++; - } - goto st1440; -tr4269: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} - } - } - goto st1440; -tr4270: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} - } - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st316;} - } - s->multiline = true; - } - goto st1440; -tr4271: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} - } - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st316;} - } - s->multiline = false; - } - goto st1440; -tr4273: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} - } - } - { - s->line_counter++; - } - goto st1440; -st1440: - if ( ++p == pe ) - goto _test_eof1440; -case 1440: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1440; - case 32: goto st1440; - case 40: goto tr4276; - case 41: goto tr4277; - case 42: goto tr4278; - case 92: goto tr4278; - case 95: goto tr4278; - case 2058: goto tr4279; - case 2107: goto tr4280; - } - if ( _widec < 64 ) { - if ( 45 <= _widec && _widec <= 57 ) - goto tr4278; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr4278; - } else - goto tr4278; - goto tr77; -tr4278: - { - s->dname = rdata_tail; + goto tr4382; + goto tr3867; } - { p--; {stack[top++] = 1441;goto st318;} } - goto st1441; -st1441: - if ( ++p == pe ) - goto _test_eof1441; -case 1441: - switch( (*p) ) { - case 32: goto tr4281; - case 59: goto tr4281; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4281; - } else if ( (*p) >= 9 ) - goto tr4281; - goto tr77; -tr4281: - { - rdata_tail += s->dname_tmp_length; - } - { p--; {stack[top++] = 1442;goto st630;} } - goto st1442; -st1442: - if ( ++p == pe ) - goto _test_eof1442; -case 1442: - switch( (*p) ) { - case 32: goto tr4282; - case 59: goto tr4282; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4282; - } else if ( (*p) >= 9 ) - goto tr4282; - goto tr77; -tr4282: - { - p--; {cs = stack[--top];goto _again;} - } - goto st1540; -st1540: - if ( ++p == pe ) - goto _test_eof1540; -case 1540: - goto st0; -tr4280: - { - s->buffer_length = 0; - } - goto st1443; -tr4283: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st1443; -tr4274: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st316;} - } - } - { - s->buffer_length = 0; - } - goto st1443; -st1443: - if ( ++p == pe ) - goto _test_eof1443; -case 1443: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr4284; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4283; - goto tr77; - } - _test_eof1444: cs = 1444; goto _test_eof; + _test_eof1483: cs = 1483; goto _test_eof; _test_eof1: cs = 1; goto _test_eof; _test_eof2: cs = 2; goto _test_eof; _test_eof3: cs = 3; goto _test_eof; @@ -100256,7 +102463,7 @@ case 1443: _test_eof11: cs = 11; goto _test_eof; _test_eof12: cs = 12; goto _test_eof; _test_eof13: cs = 13; goto _test_eof; - _test_eof1445: cs = 1445; goto _test_eof; + _test_eof1484: cs = 1484; goto _test_eof; _test_eof14: cs = 14; goto _test_eof; _test_eof15: cs = 15; goto _test_eof; _test_eof16: cs = 16; goto _test_eof; @@ -100423,10 +102630,10 @@ case 1443: _test_eof177: cs = 177; goto _test_eof; _test_eof178: cs = 178; goto _test_eof; _test_eof179: cs = 179; goto _test_eof; - _test_eof1446: cs = 1446; goto _test_eof; _test_eof180: cs = 180; goto _test_eof; _test_eof181: cs = 181; goto _test_eof; _test_eof182: cs = 182; goto _test_eof; + _test_eof1485: cs = 1485; goto _test_eof; _test_eof183: cs = 183; goto _test_eof; _test_eof184: cs = 184; goto _test_eof; _test_eof185: cs = 185; goto _test_eof; @@ -100434,23 +102641,23 @@ case 1443: _test_eof187: cs = 187; goto _test_eof; _test_eof188: cs = 188; goto _test_eof; _test_eof189: cs = 189; goto _test_eof; - _test_eof1447: cs = 1447; goto _test_eof; _test_eof190: cs = 190; goto _test_eof; _test_eof191: cs = 191; goto _test_eof; _test_eof192: cs = 192; goto _test_eof; + _test_eof1486: cs = 1486; goto _test_eof; _test_eof193: cs = 193; goto _test_eof; _test_eof194: cs = 194; goto _test_eof; _test_eof195: cs = 195; goto _test_eof; _test_eof196: cs = 196; goto _test_eof; _test_eof197: cs = 197; goto _test_eof; - _test_eof1448: cs = 1448; goto _test_eof; _test_eof198: cs = 198; goto _test_eof; _test_eof199: cs = 199; goto _test_eof; _test_eof200: cs = 200; goto _test_eof; - _test_eof1449: cs = 1449; goto _test_eof; + _test_eof1487: cs = 1487; goto _test_eof; _test_eof201: cs = 201; goto _test_eof; _test_eof202: cs = 202; goto _test_eof; _test_eof203: cs = 203; goto _test_eof; + _test_eof1488: cs = 1488; goto _test_eof; _test_eof204: cs = 204; goto _test_eof; _test_eof205: cs = 205; goto _test_eof; _test_eof206: cs = 206; goto _test_eof; @@ -100459,15 +102666,15 @@ case 1443: _test_eof209: cs = 209; goto _test_eof; _test_eof210: cs = 210; goto _test_eof; _test_eof211: cs = 211; goto _test_eof; - _test_eof1450: cs = 1450; goto _test_eof; _test_eof212: cs = 212; goto _test_eof; _test_eof213: cs = 213; goto _test_eof; _test_eof214: cs = 214; goto _test_eof; + _test_eof1489: cs = 1489; goto _test_eof; _test_eof215: cs = 215; goto _test_eof; - _test_eof1451: cs = 1451; goto _test_eof; _test_eof216: cs = 216; goto _test_eof; _test_eof217: cs = 217; goto _test_eof; _test_eof218: cs = 218; goto _test_eof; + _test_eof1490: cs = 1490; goto _test_eof; _test_eof219: cs = 219; goto _test_eof; _test_eof220: cs = 220; goto _test_eof; _test_eof221: cs = 221; goto _test_eof; @@ -100484,10 +102691,10 @@ case 1443: _test_eof232: cs = 232; goto _test_eof; _test_eof233: cs = 233; goto _test_eof; _test_eof234: cs = 234; goto _test_eof; - _test_eof1452: cs = 1452; goto _test_eof; _test_eof235: cs = 235; goto _test_eof; _test_eof236: cs = 236; goto _test_eof; _test_eof237: cs = 237; goto _test_eof; + _test_eof1491: cs = 1491; goto _test_eof; _test_eof238: cs = 238; goto _test_eof; _test_eof239: cs = 239; goto _test_eof; _test_eof240: cs = 240; goto _test_eof; @@ -100501,10 +102708,10 @@ case 1443: _test_eof248: cs = 248; goto _test_eof; _test_eof249: cs = 249; goto _test_eof; _test_eof250: cs = 250; goto _test_eof; - _test_eof1453: cs = 1453; goto _test_eof; _test_eof251: cs = 251; goto _test_eof; _test_eof252: cs = 252; goto _test_eof; _test_eof253: cs = 253; goto _test_eof; + _test_eof1492: cs = 1492; goto _test_eof; _test_eof254: cs = 254; goto _test_eof; _test_eof255: cs = 255; goto _test_eof; _test_eof256: cs = 256; goto _test_eof; @@ -100567,27 +102774,27 @@ case 1443: _test_eof313: cs = 313; goto _test_eof; _test_eof314: cs = 314; goto _test_eof; _test_eof315: cs = 315; goto _test_eof; - _test_eof1454: cs = 1454; goto _test_eof; _test_eof316: cs = 316; goto _test_eof; _test_eof317: cs = 317; goto _test_eof; - _test_eof1455: cs = 1455; goto _test_eof; _test_eof318: cs = 318; goto _test_eof; + _test_eof1493: cs = 1493; goto _test_eof; _test_eof319: cs = 319; goto _test_eof; - _test_eof1456: cs = 1456; goto _test_eof; _test_eof320: cs = 320; goto _test_eof; + _test_eof1494: cs = 1494; goto _test_eof; _test_eof321: cs = 321; goto _test_eof; _test_eof322: cs = 322; goto _test_eof; + _test_eof1495: cs = 1495; goto _test_eof; _test_eof323: cs = 323; goto _test_eof; _test_eof324: cs = 324; goto _test_eof; _test_eof325: cs = 325; goto _test_eof; _test_eof326: cs = 326; goto _test_eof; _test_eof327: cs = 327; goto _test_eof; _test_eof328: cs = 328; goto _test_eof; - _test_eof1457: cs = 1457; goto _test_eof; - _test_eof1458: cs = 1458; goto _test_eof; _test_eof329: cs = 329; goto _test_eof; _test_eof330: cs = 330; goto _test_eof; _test_eof331: cs = 331; goto _test_eof; + _test_eof1496: cs = 1496; goto _test_eof; + _test_eof1497: cs = 1497; goto _test_eof; _test_eof332: cs = 332; goto _test_eof; _test_eof333: cs = 333; goto _test_eof; _test_eof334: cs = 334; goto _test_eof; @@ -100600,10 +102807,10 @@ case 1443: _test_eof341: cs = 341; goto _test_eof; _test_eof342: cs = 342; goto _test_eof; _test_eof343: cs = 343; goto _test_eof; - _test_eof1459: cs = 1459; goto _test_eof; _test_eof344: cs = 344; goto _test_eof; _test_eof345: cs = 345; goto _test_eof; _test_eof346: cs = 346; goto _test_eof; + _test_eof1498: cs = 1498; goto _test_eof; _test_eof347: cs = 347; goto _test_eof; _test_eof348: cs = 348; goto _test_eof; _test_eof349: cs = 349; goto _test_eof; @@ -100611,10 +102818,10 @@ case 1443: _test_eof351: cs = 351; goto _test_eof; _test_eof352: cs = 352; goto _test_eof; _test_eof353: cs = 353; goto _test_eof; - _test_eof1460: cs = 1460; goto _test_eof; _test_eof354: cs = 354; goto _test_eof; _test_eof355: cs = 355; goto _test_eof; _test_eof356: cs = 356; goto _test_eof; + _test_eof1499: cs = 1499; goto _test_eof; _test_eof357: cs = 357; goto _test_eof; _test_eof358: cs = 358; goto _test_eof; _test_eof359: cs = 359; goto _test_eof; @@ -100626,44 +102833,44 @@ case 1443: _test_eof365: cs = 365; goto _test_eof; _test_eof366: cs = 366; goto _test_eof; _test_eof367: cs = 367; goto _test_eof; - _test_eof1461: cs = 1461; goto _test_eof; _test_eof368: cs = 368; goto _test_eof; _test_eof369: cs = 369; goto _test_eof; _test_eof370: cs = 370; goto _test_eof; + _test_eof1500: cs = 1500; goto _test_eof; _test_eof371: cs = 371; goto _test_eof; _test_eof372: cs = 372; goto _test_eof; _test_eof373: cs = 373; goto _test_eof; _test_eof374: cs = 374; goto _test_eof; - _test_eof1462: cs = 1462; goto _test_eof; _test_eof375: cs = 375; goto _test_eof; _test_eof376: cs = 376; goto _test_eof; _test_eof377: cs = 377; goto _test_eof; + _test_eof1501: cs = 1501; goto _test_eof; _test_eof378: cs = 378; goto _test_eof; _test_eof379: cs = 379; goto _test_eof; _test_eof380: cs = 380; goto _test_eof; _test_eof381: cs = 381; goto _test_eof; _test_eof382: cs = 382; goto _test_eof; _test_eof383: cs = 383; goto _test_eof; - _test_eof1463: cs = 1463; goto _test_eof; - _test_eof1464: cs = 1464; goto _test_eof; - _test_eof1465: cs = 1465; goto _test_eof; _test_eof384: cs = 384; goto _test_eof; _test_eof385: cs = 385; goto _test_eof; _test_eof386: cs = 386; goto _test_eof; + _test_eof1502: cs = 1502; goto _test_eof; + _test_eof1503: cs = 1503; goto _test_eof; + _test_eof1504: cs = 1504; goto _test_eof; _test_eof387: cs = 387; goto _test_eof; _test_eof388: cs = 388; goto _test_eof; _test_eof389: cs = 389; goto _test_eof; _test_eof390: cs = 390; goto _test_eof; _test_eof391: cs = 391; goto _test_eof; - _test_eof1466: cs = 1466; goto _test_eof; - _test_eof1467: cs = 1467; goto _test_eof; _test_eof392: cs = 392; goto _test_eof; _test_eof393: cs = 393; goto _test_eof; _test_eof394: cs = 394; goto _test_eof; - _test_eof1468: cs = 1468; goto _test_eof; + _test_eof1505: cs = 1505; goto _test_eof; + _test_eof1506: cs = 1506; goto _test_eof; _test_eof395: cs = 395; goto _test_eof; _test_eof396: cs = 396; goto _test_eof; _test_eof397: cs = 397; goto _test_eof; + _test_eof1507: cs = 1507; goto _test_eof; _test_eof398: cs = 398; goto _test_eof; _test_eof399: cs = 399; goto _test_eof; _test_eof400: cs = 400; goto _test_eof; @@ -100828,38 +103035,38 @@ case 1443: _test_eof559: cs = 559; goto _test_eof; _test_eof560: cs = 560; goto _test_eof; _test_eof561: cs = 561; goto _test_eof; - _test_eof1469: cs = 1469; goto _test_eof; - _test_eof1470: cs = 1470; goto _test_eof; - _test_eof1471: cs = 1471; goto _test_eof; _test_eof562: cs = 562; goto _test_eof; _test_eof563: cs = 563; goto _test_eof; _test_eof564: cs = 564; goto _test_eof; _test_eof565: cs = 565; goto _test_eof; _test_eof566: cs = 566; goto _test_eof; - _test_eof1472: cs = 1472; goto _test_eof; _test_eof567: cs = 567; goto _test_eof; + _test_eof1508: cs = 1508; goto _test_eof; + _test_eof1509: cs = 1509; goto _test_eof; + _test_eof1510: cs = 1510; goto _test_eof; _test_eof568: cs = 568; goto _test_eof; _test_eof569: cs = 569; goto _test_eof; _test_eof570: cs = 570; goto _test_eof; - _test_eof1473: cs = 1473; goto _test_eof; - _test_eof1474: cs = 1474; goto _test_eof; - _test_eof1475: cs = 1475; goto _test_eof; _test_eof571: cs = 571; goto _test_eof; _test_eof572: cs = 572; goto _test_eof; - _test_eof1476: cs = 1476; goto _test_eof; + _test_eof1511: cs = 1511; goto _test_eof; _test_eof573: cs = 573; goto _test_eof; _test_eof574: cs = 574; goto _test_eof; _test_eof575: cs = 575; goto _test_eof; _test_eof576: cs = 576; goto _test_eof; + _test_eof1512: cs = 1512; goto _test_eof; + _test_eof1513: cs = 1513; goto _test_eof; + _test_eof1514: cs = 1514; goto _test_eof; _test_eof577: cs = 577; goto _test_eof; _test_eof578: cs = 578; goto _test_eof; - _test_eof1477: cs = 1477; goto _test_eof; + _test_eof1515: cs = 1515; goto _test_eof; _test_eof579: cs = 579; goto _test_eof; _test_eof580: cs = 580; goto _test_eof; _test_eof581: cs = 581; goto _test_eof; _test_eof582: cs = 582; goto _test_eof; _test_eof583: cs = 583; goto _test_eof; _test_eof584: cs = 584; goto _test_eof; + _test_eof1516: cs = 1516; goto _test_eof; _test_eof585: cs = 585; goto _test_eof; _test_eof586: cs = 586; goto _test_eof; _test_eof587: cs = 587; goto _test_eof; @@ -100914,24 +103121,24 @@ case 1443: _test_eof636: cs = 636; goto _test_eof; _test_eof637: cs = 637; goto _test_eof; _test_eof638: cs = 638; goto _test_eof; - _test_eof1478: cs = 1478; goto _test_eof; - _test_eof1479: cs = 1479; goto _test_eof; _test_eof639: cs = 639; goto _test_eof; _test_eof640: cs = 640; goto _test_eof; _test_eof641: cs = 641; goto _test_eof; _test_eof642: cs = 642; goto _test_eof; _test_eof643: cs = 643; goto _test_eof; _test_eof644: cs = 644; goto _test_eof; + _test_eof1517: cs = 1517; goto _test_eof; + _test_eof1518: cs = 1518; goto _test_eof; _test_eof645: cs = 645; goto _test_eof; _test_eof646: cs = 646; goto _test_eof; _test_eof647: cs = 647; goto _test_eof; - _test_eof1480: cs = 1480; goto _test_eof; _test_eof648: cs = 648; goto _test_eof; _test_eof649: cs = 649; goto _test_eof; _test_eof650: cs = 650; goto _test_eof; _test_eof651: cs = 651; goto _test_eof; _test_eof652: cs = 652; goto _test_eof; _test_eof653: cs = 653; goto _test_eof; + _test_eof1519: cs = 1519; goto _test_eof; _test_eof654: cs = 654; goto _test_eof; _test_eof655: cs = 655; goto _test_eof; _test_eof656: cs = 656; goto _test_eof; @@ -101021,13 +103228,13 @@ case 1443: _test_eof740: cs = 740; goto _test_eof; _test_eof741: cs = 741; goto _test_eof; _test_eof742: cs = 742; goto _test_eof; - _test_eof1481: cs = 1481; goto _test_eof; _test_eof743: cs = 743; goto _test_eof; _test_eof744: cs = 744; goto _test_eof; _test_eof745: cs = 745; goto _test_eof; _test_eof746: cs = 746; goto _test_eof; _test_eof747: cs = 747; goto _test_eof; _test_eof748: cs = 748; goto _test_eof; + _test_eof1520: cs = 1520; goto _test_eof; _test_eof749: cs = 749; goto _test_eof; _test_eof750: cs = 750; goto _test_eof; _test_eof751: cs = 751; goto _test_eof; @@ -101126,13 +103333,13 @@ case 1443: _test_eof844: cs = 844; goto _test_eof; _test_eof845: cs = 845; goto _test_eof; _test_eof846: cs = 846; goto _test_eof; - _test_eof1482: cs = 1482; goto _test_eof; _test_eof847: cs = 847; goto _test_eof; _test_eof848: cs = 848; goto _test_eof; _test_eof849: cs = 849; goto _test_eof; _test_eof850: cs = 850; goto _test_eof; _test_eof851: cs = 851; goto _test_eof; _test_eof852: cs = 852; goto _test_eof; + _test_eof1521: cs = 1521; goto _test_eof; _test_eof853: cs = 853; goto _test_eof; _test_eof854: cs = 854; goto _test_eof; _test_eof855: cs = 855; goto _test_eof; @@ -101168,14 +103375,13 @@ case 1443: _test_eof885: cs = 885; goto _test_eof; _test_eof886: cs = 886; goto _test_eof; _test_eof887: cs = 887; goto _test_eof; - _test_eof1483: cs = 1483; goto _test_eof; _test_eof888: cs = 888; goto _test_eof; _test_eof889: cs = 889; goto _test_eof; - _test_eof1484: cs = 1484; goto _test_eof; _test_eof890: cs = 890; goto _test_eof; _test_eof891: cs = 891; goto _test_eof; _test_eof892: cs = 892; goto _test_eof; _test_eof893: cs = 893; goto _test_eof; + _test_eof1522: cs = 1522; goto _test_eof; _test_eof894: cs = 894; goto _test_eof; _test_eof895: cs = 895; goto _test_eof; _test_eof896: cs = 896; goto _test_eof; @@ -101184,9 +103390,10 @@ case 1443: _test_eof899: cs = 899; goto _test_eof; _test_eof900: cs = 900; goto _test_eof; _test_eof901: cs = 901; goto _test_eof; + _test_eof1523: cs = 1523; goto _test_eof; _test_eof902: cs = 902; goto _test_eof; _test_eof903: cs = 903; goto _test_eof; - _test_eof1485: cs = 1485; goto _test_eof; + _test_eof1524: cs = 1524; goto _test_eof; _test_eof904: cs = 904; goto _test_eof; _test_eof905: cs = 905; goto _test_eof; _test_eof906: cs = 906; goto _test_eof; @@ -101201,6 +103408,7 @@ case 1443: _test_eof915: cs = 915; goto _test_eof; _test_eof916: cs = 916; goto _test_eof; _test_eof917: cs = 917; goto _test_eof; + _test_eof1525: cs = 1525; goto _test_eof; _test_eof918: cs = 918; goto _test_eof; _test_eof919: cs = 919; goto _test_eof; _test_eof920: cs = 920; goto _test_eof; @@ -101209,44 +103417,44 @@ case 1443: _test_eof923: cs = 923; goto _test_eof; _test_eof924: cs = 924; goto _test_eof; _test_eof925: cs = 925; goto _test_eof; - _test_eof1486: cs = 1486; goto _test_eof; _test_eof926: cs = 926; goto _test_eof; _test_eof927: cs = 927; goto _test_eof; _test_eof928: cs = 928; goto _test_eof; _test_eof929: cs = 929; goto _test_eof; _test_eof930: cs = 930; goto _test_eof; - _test_eof1487: cs = 1487; goto _test_eof; _test_eof931: cs = 931; goto _test_eof; _test_eof932: cs = 932; goto _test_eof; _test_eof933: cs = 933; goto _test_eof; _test_eof934: cs = 934; goto _test_eof; _test_eof935: cs = 935; goto _test_eof; - _test_eof1488: cs = 1488; goto _test_eof; _test_eof936: cs = 936; goto _test_eof; _test_eof937: cs = 937; goto _test_eof; _test_eof938: cs = 938; goto _test_eof; _test_eof939: cs = 939; goto _test_eof; + _test_eof1526: cs = 1526; goto _test_eof; _test_eof940: cs = 940; goto _test_eof; - _test_eof1489: cs = 1489; goto _test_eof; - _test_eof1490: cs = 1490; goto _test_eof; - _test_eof1491: cs = 1491; goto _test_eof; _test_eof941: cs = 941; goto _test_eof; _test_eof942: cs = 942; goto _test_eof; - _test_eof1492: cs = 1492; goto _test_eof; _test_eof943: cs = 943; goto _test_eof; _test_eof944: cs = 944; goto _test_eof; + _test_eof1527: cs = 1527; goto _test_eof; _test_eof945: cs = 945; goto _test_eof; _test_eof946: cs = 946; goto _test_eof; _test_eof947: cs = 947; goto _test_eof; _test_eof948: cs = 948; goto _test_eof; _test_eof949: cs = 949; goto _test_eof; + _test_eof1528: cs = 1528; goto _test_eof; _test_eof950: cs = 950; goto _test_eof; _test_eof951: cs = 951; goto _test_eof; _test_eof952: cs = 952; goto _test_eof; _test_eof953: cs = 953; goto _test_eof; _test_eof954: cs = 954; goto _test_eof; + _test_eof1529: cs = 1529; goto _test_eof; + _test_eof1530: cs = 1530; goto _test_eof; + _test_eof1531: cs = 1531; goto _test_eof; _test_eof955: cs = 955; goto _test_eof; _test_eof956: cs = 956; goto _test_eof; + _test_eof1532: cs = 1532; goto _test_eof; _test_eof957: cs = 957; goto _test_eof; _test_eof958: cs = 958; goto _test_eof; _test_eof959: cs = 959; goto _test_eof; @@ -101260,40 +103468,40 @@ case 1443: _test_eof967: cs = 967; goto _test_eof; _test_eof968: cs = 968; goto _test_eof; _test_eof969: cs = 969; goto _test_eof; - _test_eof1493: cs = 1493; goto _test_eof; - _test_eof1494: cs = 1494; goto _test_eof; - _test_eof1495: cs = 1495; goto _test_eof; _test_eof970: cs = 970; goto _test_eof; _test_eof971: cs = 971; goto _test_eof; _test_eof972: cs = 972; goto _test_eof; - _test_eof1496: cs = 1496; goto _test_eof; - _test_eof1497: cs = 1497; goto _test_eof; _test_eof973: cs = 973; goto _test_eof; _test_eof974: cs = 974; goto _test_eof; _test_eof975: cs = 975; goto _test_eof; _test_eof976: cs = 976; goto _test_eof; - _test_eof1498: cs = 1498; goto _test_eof; - _test_eof1499: cs = 1499; goto _test_eof; _test_eof977: cs = 977; goto _test_eof; _test_eof978: cs = 978; goto _test_eof; _test_eof979: cs = 979; goto _test_eof; _test_eof980: cs = 980; goto _test_eof; - _test_eof1500: cs = 1500; goto _test_eof; - _test_eof1501: cs = 1501; goto _test_eof; _test_eof981: cs = 981; goto _test_eof; _test_eof982: cs = 982; goto _test_eof; _test_eof983: cs = 983; goto _test_eof; + _test_eof1533: cs = 1533; goto _test_eof; + _test_eof1534: cs = 1534; goto _test_eof; + _test_eof1535: cs = 1535; goto _test_eof; _test_eof984: cs = 984; goto _test_eof; _test_eof985: cs = 985; goto _test_eof; _test_eof986: cs = 986; goto _test_eof; + _test_eof1536: cs = 1536; goto _test_eof; + _test_eof1537: cs = 1537; goto _test_eof; _test_eof987: cs = 987; goto _test_eof; _test_eof988: cs = 988; goto _test_eof; _test_eof989: cs = 989; goto _test_eof; _test_eof990: cs = 990; goto _test_eof; + _test_eof1538: cs = 1538; goto _test_eof; + _test_eof1539: cs = 1539; goto _test_eof; _test_eof991: cs = 991; goto _test_eof; _test_eof992: cs = 992; goto _test_eof; _test_eof993: cs = 993; goto _test_eof; _test_eof994: cs = 994; goto _test_eof; + _test_eof1540: cs = 1540; goto _test_eof; + _test_eof1541: cs = 1541; goto _test_eof; _test_eof995: cs = 995; goto _test_eof; _test_eof996: cs = 996; goto _test_eof; _test_eof997: cs = 997; goto _test_eof; @@ -101305,7 +103513,6 @@ case 1443: _test_eof1003: cs = 1003; goto _test_eof; _test_eof1004: cs = 1004; goto _test_eof; _test_eof1005: cs = 1005; goto _test_eof; - _test_eof1502: cs = 1502; goto _test_eof; _test_eof1006: cs = 1006; goto _test_eof; _test_eof1007: cs = 1007; goto _test_eof; _test_eof1008: cs = 1008; goto _test_eof; @@ -101320,8 +103527,8 @@ case 1443: _test_eof1017: cs = 1017; goto _test_eof; _test_eof1018: cs = 1018; goto _test_eof; _test_eof1019: cs = 1019; goto _test_eof; + _test_eof1542: cs = 1542; goto _test_eof; _test_eof1020: cs = 1020; goto _test_eof; - _test_eof1503: cs = 1503; goto _test_eof; _test_eof1021: cs = 1021; goto _test_eof; _test_eof1022: cs = 1022; goto _test_eof; _test_eof1023: cs = 1023; goto _test_eof; @@ -101335,8 +103542,8 @@ case 1443: _test_eof1031: cs = 1031; goto _test_eof; _test_eof1032: cs = 1032; goto _test_eof; _test_eof1033: cs = 1033; goto _test_eof; - _test_eof1504: cs = 1504; goto _test_eof; _test_eof1034: cs = 1034; goto _test_eof; + _test_eof1543: cs = 1543; goto _test_eof; _test_eof1035: cs = 1035; goto _test_eof; _test_eof1036: cs = 1036; goto _test_eof; _test_eof1037: cs = 1037; goto _test_eof; @@ -101347,12 +103554,10 @@ case 1443: _test_eof1042: cs = 1042; goto _test_eof; _test_eof1043: cs = 1043; goto _test_eof; _test_eof1044: cs = 1044; goto _test_eof; - _test_eof1505: cs = 1505; goto _test_eof; - _test_eof1506: cs = 1506; goto _test_eof; _test_eof1045: cs = 1045; goto _test_eof; _test_eof1046: cs = 1046; goto _test_eof; _test_eof1047: cs = 1047; goto _test_eof; - _test_eof1507: cs = 1507; goto _test_eof; + _test_eof1544: cs = 1544; goto _test_eof; _test_eof1048: cs = 1048; goto _test_eof; _test_eof1049: cs = 1049; goto _test_eof; _test_eof1050: cs = 1050; goto _test_eof; @@ -101363,13 +103568,13 @@ case 1443: _test_eof1055: cs = 1055; goto _test_eof; _test_eof1056: cs = 1056; goto _test_eof; _test_eof1057: cs = 1057; goto _test_eof; - _test_eof1508: cs = 1508; goto _test_eof; - _test_eof1509: cs = 1509; goto _test_eof; - _test_eof1510: cs = 1510; goto _test_eof; _test_eof1058: cs = 1058; goto _test_eof; + _test_eof1545: cs = 1545; goto _test_eof; + _test_eof1546: cs = 1546; goto _test_eof; _test_eof1059: cs = 1059; goto _test_eof; _test_eof1060: cs = 1060; goto _test_eof; _test_eof1061: cs = 1061; goto _test_eof; + _test_eof1547: cs = 1547; goto _test_eof; _test_eof1062: cs = 1062; goto _test_eof; _test_eof1063: cs = 1063; goto _test_eof; _test_eof1064: cs = 1064; goto _test_eof; @@ -101377,12 +103582,12 @@ case 1443: _test_eof1066: cs = 1066; goto _test_eof; _test_eof1067: cs = 1067; goto _test_eof; _test_eof1068: cs = 1068; goto _test_eof; - _test_eof1511: cs = 1511; goto _test_eof; - _test_eof1512: cs = 1512; goto _test_eof; - _test_eof1513: cs = 1513; goto _test_eof; _test_eof1069: cs = 1069; goto _test_eof; _test_eof1070: cs = 1070; goto _test_eof; _test_eof1071: cs = 1071; goto _test_eof; + _test_eof1548: cs = 1548; goto _test_eof; + _test_eof1549: cs = 1549; goto _test_eof; + _test_eof1550: cs = 1550; goto _test_eof; _test_eof1072: cs = 1072; goto _test_eof; _test_eof1073: cs = 1073; goto _test_eof; _test_eof1074: cs = 1074; goto _test_eof; @@ -101392,18 +103597,14 @@ case 1443: _test_eof1078: cs = 1078; goto _test_eof; _test_eof1079: cs = 1079; goto _test_eof; _test_eof1080: cs = 1080; goto _test_eof; - _test_eof1514: cs = 1514; goto _test_eof; _test_eof1081: cs = 1081; goto _test_eof; _test_eof1082: cs = 1082; goto _test_eof; + _test_eof1551: cs = 1551; goto _test_eof; + _test_eof1552: cs = 1552; goto _test_eof; + _test_eof1553: cs = 1553; goto _test_eof; _test_eof1083: cs = 1083; goto _test_eof; - _test_eof1515: cs = 1515; goto _test_eof; - _test_eof1516: cs = 1516; goto _test_eof; _test_eof1084: cs = 1084; goto _test_eof; - _test_eof1517: cs = 1517; goto _test_eof; - _test_eof1518: cs = 1518; goto _test_eof; _test_eof1085: cs = 1085; goto _test_eof; - _test_eof1519: cs = 1519; goto _test_eof; - _test_eof1520: cs = 1520; goto _test_eof; _test_eof1086: cs = 1086; goto _test_eof; _test_eof1087: cs = 1087; goto _test_eof; _test_eof1088: cs = 1088; goto _test_eof; @@ -101413,11 +103614,18 @@ case 1443: _test_eof1092: cs = 1092; goto _test_eof; _test_eof1093: cs = 1093; goto _test_eof; _test_eof1094: cs = 1094; goto _test_eof; + _test_eof1554: cs = 1554; goto _test_eof; _test_eof1095: cs = 1095; goto _test_eof; _test_eof1096: cs = 1096; goto _test_eof; _test_eof1097: cs = 1097; goto _test_eof; + _test_eof1555: cs = 1555; goto _test_eof; + _test_eof1556: cs = 1556; goto _test_eof; _test_eof1098: cs = 1098; goto _test_eof; + _test_eof1557: cs = 1557; goto _test_eof; + _test_eof1558: cs = 1558; goto _test_eof; _test_eof1099: cs = 1099; goto _test_eof; + _test_eof1559: cs = 1559; goto _test_eof; + _test_eof1560: cs = 1560; goto _test_eof; _test_eof1100: cs = 1100; goto _test_eof; _test_eof1101: cs = 1101; goto _test_eof; _test_eof1102: cs = 1102; goto _test_eof; @@ -101446,7 +103654,6 @@ case 1443: _test_eof1125: cs = 1125; goto _test_eof; _test_eof1126: cs = 1126; goto _test_eof; _test_eof1127: cs = 1127; goto _test_eof; - _test_eof1521: cs = 1521; goto _test_eof; _test_eof1128: cs = 1128; goto _test_eof; _test_eof1129: cs = 1129; goto _test_eof; _test_eof1130: cs = 1130; goto _test_eof; @@ -101461,6 +103668,7 @@ case 1443: _test_eof1139: cs = 1139; goto _test_eof; _test_eof1140: cs = 1140; goto _test_eof; _test_eof1141: cs = 1141; goto _test_eof; + _test_eof1561: cs = 1561; goto _test_eof; _test_eof1142: cs = 1142; goto _test_eof; _test_eof1143: cs = 1143; goto _test_eof; _test_eof1144: cs = 1144; goto _test_eof; @@ -101624,7 +103832,6 @@ case 1443: _test_eof1302: cs = 1302; goto _test_eof; _test_eof1303: cs = 1303; goto _test_eof; _test_eof1304: cs = 1304; goto _test_eof; - _test_eof1522: cs = 1522; goto _test_eof; _test_eof1305: cs = 1305; goto _test_eof; _test_eof1306: cs = 1306; goto _test_eof; _test_eof1307: cs = 1307; goto _test_eof; @@ -101633,17 +103840,16 @@ case 1443: _test_eof1310: cs = 1310; goto _test_eof; _test_eof1311: cs = 1311; goto _test_eof; _test_eof1312: cs = 1312; goto _test_eof; - _test_eof1523: cs = 1523; goto _test_eof; _test_eof1313: cs = 1313; goto _test_eof; _test_eof1314: cs = 1314; goto _test_eof; _test_eof1315: cs = 1315; goto _test_eof; _test_eof1316: cs = 1316; goto _test_eof; _test_eof1317: cs = 1317; goto _test_eof; - _test_eof1524: cs = 1524; goto _test_eof; _test_eof1318: cs = 1318; goto _test_eof; _test_eof1319: cs = 1319; goto _test_eof; _test_eof1320: cs = 1320; goto _test_eof; _test_eof1321: cs = 1321; goto _test_eof; + _test_eof1562: cs = 1562; goto _test_eof; _test_eof1322: cs = 1322; goto _test_eof; _test_eof1323: cs = 1323; goto _test_eof; _test_eof1324: cs = 1324; goto _test_eof; @@ -101652,13 +103858,14 @@ case 1443: _test_eof1327: cs = 1327; goto _test_eof; _test_eof1328: cs = 1328; goto _test_eof; _test_eof1329: cs = 1329; goto _test_eof; + _test_eof1563: cs = 1563; goto _test_eof; _test_eof1330: cs = 1330; goto _test_eof; _test_eof1331: cs = 1331; goto _test_eof; _test_eof1332: cs = 1332; goto _test_eof; _test_eof1333: cs = 1333; goto _test_eof; _test_eof1334: cs = 1334; goto _test_eof; + _test_eof1564: cs = 1564; goto _test_eof; _test_eof1335: cs = 1335; goto _test_eof; - _test_eof1525: cs = 1525; goto _test_eof; _test_eof1336: cs = 1336; goto _test_eof; _test_eof1337: cs = 1337; goto _test_eof; _test_eof1338: cs = 1338; goto _test_eof; @@ -101676,9 +103883,9 @@ case 1443: _test_eof1350: cs = 1350; goto _test_eof; _test_eof1351: cs = 1351; goto _test_eof; _test_eof1352: cs = 1352; goto _test_eof; + _test_eof1565: cs = 1565; goto _test_eof; _test_eof1353: cs = 1353; goto _test_eof; _test_eof1354: cs = 1354; goto _test_eof; - _test_eof1526: cs = 1526; goto _test_eof; _test_eof1355: cs = 1355; goto _test_eof; _test_eof1356: cs = 1356; goto _test_eof; _test_eof1357: cs = 1357; goto _test_eof; @@ -101694,18 +103901,15 @@ case 1443: _test_eof1367: cs = 1367; goto _test_eof; _test_eof1368: cs = 1368; goto _test_eof; _test_eof1369: cs = 1369; goto _test_eof; - _test_eof1527: cs = 1527; goto _test_eof; - _test_eof1528: cs = 1528; goto _test_eof; - _test_eof1529: cs = 1529; goto _test_eof; _test_eof1370: cs = 1370; goto _test_eof; _test_eof1371: cs = 1371; goto _test_eof; + _test_eof1566: cs = 1566; goto _test_eof; _test_eof1372: cs = 1372; goto _test_eof; _test_eof1373: cs = 1373; goto _test_eof; _test_eof1374: cs = 1374; goto _test_eof; _test_eof1375: cs = 1375; goto _test_eof; _test_eof1376: cs = 1376; goto _test_eof; _test_eof1377: cs = 1377; goto _test_eof; - _test_eof1530: cs = 1530; goto _test_eof; _test_eof1378: cs = 1378; goto _test_eof; _test_eof1379: cs = 1379; goto _test_eof; _test_eof1380: cs = 1380; goto _test_eof; @@ -101715,19 +103919,19 @@ case 1443: _test_eof1384: cs = 1384; goto _test_eof; _test_eof1385: cs = 1385; goto _test_eof; _test_eof1386: cs = 1386; goto _test_eof; + _test_eof1567: cs = 1567; goto _test_eof; + _test_eof1568: cs = 1568; goto _test_eof; + _test_eof1569: cs = 1569; goto _test_eof; _test_eof1387: cs = 1387; goto _test_eof; _test_eof1388: cs = 1388; goto _test_eof; - _test_eof1531: cs = 1531; goto _test_eof; - _test_eof1532: cs = 1532; goto _test_eof; - _test_eof1533: cs = 1533; goto _test_eof; _test_eof1389: cs = 1389; goto _test_eof; _test_eof1390: cs = 1390; goto _test_eof; _test_eof1391: cs = 1391; goto _test_eof; _test_eof1392: cs = 1392; goto _test_eof; _test_eof1393: cs = 1393; goto _test_eof; _test_eof1394: cs = 1394; goto _test_eof; + _test_eof1570: cs = 1570; goto _test_eof; _test_eof1395: cs = 1395; goto _test_eof; - _test_eof1534: cs = 1534; goto _test_eof; _test_eof1396: cs = 1396; goto _test_eof; _test_eof1397: cs = 1397; goto _test_eof; _test_eof1398: cs = 1398; goto _test_eof; @@ -101738,50 +103942,94 @@ case 1443: _test_eof1403: cs = 1403; goto _test_eof; _test_eof1404: cs = 1404; goto _test_eof; _test_eof1405: cs = 1405; goto _test_eof; + _test_eof1571: cs = 1571; goto _test_eof; + _test_eof1572: cs = 1572; goto _test_eof; + _test_eof1573: cs = 1573; goto _test_eof; _test_eof1406: cs = 1406; goto _test_eof; _test_eof1407: cs = 1407; goto _test_eof; _test_eof1408: cs = 1408; goto _test_eof; - _test_eof1535: cs = 1535; goto _test_eof; _test_eof1409: cs = 1409; goto _test_eof; _test_eof1410: cs = 1410; goto _test_eof; _test_eof1411: cs = 1411; goto _test_eof; _test_eof1412: cs = 1412; goto _test_eof; + _test_eof1574: cs = 1574; goto _test_eof; _test_eof1413: cs = 1413; goto _test_eof; _test_eof1414: cs = 1414; goto _test_eof; _test_eof1415: cs = 1415; goto _test_eof; - _test_eof1536: cs = 1536; goto _test_eof; _test_eof1416: cs = 1416; goto _test_eof; _test_eof1417: cs = 1417; goto _test_eof; _test_eof1418: cs = 1418; goto _test_eof; _test_eof1419: cs = 1419; goto _test_eof; _test_eof1420: cs = 1420; goto _test_eof; _test_eof1421: cs = 1421; goto _test_eof; - _test_eof1537: cs = 1537; goto _test_eof; _test_eof1422: cs = 1422; goto _test_eof; _test_eof1423: cs = 1423; goto _test_eof; _test_eof1424: cs = 1424; goto _test_eof; _test_eof1425: cs = 1425; goto _test_eof; + _test_eof1575: cs = 1575; goto _test_eof; _test_eof1426: cs = 1426; goto _test_eof; _test_eof1427: cs = 1427; goto _test_eof; - _test_eof1538: cs = 1538; goto _test_eof; _test_eof1428: cs = 1428; goto _test_eof; _test_eof1429: cs = 1429; goto _test_eof; _test_eof1430: cs = 1430; goto _test_eof; _test_eof1431: cs = 1431; goto _test_eof; _test_eof1432: cs = 1432; goto _test_eof; + _test_eof1576: cs = 1576; goto _test_eof; _test_eof1433: cs = 1433; goto _test_eof; _test_eof1434: cs = 1434; goto _test_eof; _test_eof1435: cs = 1435; goto _test_eof; - _test_eof1539: cs = 1539; goto _test_eof; _test_eof1436: cs = 1436; goto _test_eof; _test_eof1437: cs = 1437; goto _test_eof; _test_eof1438: cs = 1438; goto _test_eof; + _test_eof1577: cs = 1577; goto _test_eof; _test_eof1439: cs = 1439; goto _test_eof; _test_eof1440: cs = 1440; goto _test_eof; _test_eof1441: cs = 1441; goto _test_eof; _test_eof1442: cs = 1442; goto _test_eof; - _test_eof1540: cs = 1540; goto _test_eof; _test_eof1443: cs = 1443; goto _test_eof; + _test_eof1444: cs = 1444; goto _test_eof; + _test_eof1578: cs = 1578; goto _test_eof; + _test_eof1445: cs = 1445; goto _test_eof; + _test_eof1446: cs = 1446; goto _test_eof; + _test_eof1447: cs = 1447; goto _test_eof; + _test_eof1448: cs = 1448; goto _test_eof; + _test_eof1449: cs = 1449; goto _test_eof; + _test_eof1450: cs = 1450; goto _test_eof; + _test_eof1451: cs = 1451; goto _test_eof; + _test_eof1452: cs = 1452; goto _test_eof; + _test_eof1579: cs = 1579; goto _test_eof; + _test_eof1453: cs = 1453; goto _test_eof; + _test_eof1454: cs = 1454; goto _test_eof; + _test_eof1455: cs = 1455; goto _test_eof; + _test_eof1456: cs = 1456; goto _test_eof; + _test_eof1457: cs = 1457; goto _test_eof; + _test_eof1458: cs = 1458; goto _test_eof; + _test_eof1459: cs = 1459; goto _test_eof; + _test_eof1580: cs = 1580; goto _test_eof; + _test_eof1460: cs = 1460; goto _test_eof; + _test_eof1461: cs = 1461; goto _test_eof; + _test_eof1462: cs = 1462; goto _test_eof; + _test_eof1463: cs = 1463; goto _test_eof; + _test_eof1464: cs = 1464; goto _test_eof; + _test_eof1465: cs = 1465; goto _test_eof; + _test_eof1466: cs = 1466; goto _test_eof; + _test_eof1467: cs = 1467; goto _test_eof; + _test_eof1468: cs = 1468; goto _test_eof; + _test_eof1469: cs = 1469; goto _test_eof; + _test_eof1470: cs = 1470; goto _test_eof; + _test_eof1581: cs = 1581; goto _test_eof; + _test_eof1471: cs = 1471; goto _test_eof; + _test_eof1472: cs = 1472; goto _test_eof; + _test_eof1473: cs = 1473; goto _test_eof; + _test_eof1474: cs = 1474; goto _test_eof; + _test_eof1475: cs = 1475; goto _test_eof; + _test_eof1476: cs = 1476; goto _test_eof; + _test_eof1477: cs = 1477; goto _test_eof; + _test_eof1478: cs = 1478; goto _test_eof; + _test_eof1479: cs = 1479; goto _test_eof; + _test_eof1480: cs = 1480; goto _test_eof; + _test_eof1481: cs = 1481; goto _test_eof; + _test_eof1482: cs = 1482; goto _test_eof; _test_eof: {} if ( p == eof ) @@ -101789,134 +104037,131 @@ case 1443: switch ( cs ) { case 7: case 8: - case 189: - case 213: - case 215: - case 271: - case 285: - case 311: - case 367: - case 368: - case 374: + case 192: + case 216: + case 218: + case 274: + case 288: + case 314: + case 370: + case 371: + case 377: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 318: - case 319: - case 320: - case 325: - case 326: + case 321: + case 322: + case 323: + case 328: + case 329: { WARN(ZS_BAD_DNAME_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 198: + case 201: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 335: + case 338: { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 340: - case 348: + case 343: + case 351: { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 349: - case 350: - case 351: - case 360: + case 352: + case 353: + case 354: + case 363: { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 362: + case 365: { ERR(ZS_BAD_INCLUDE_FILENAME); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 365: - case 375: + case 368: + case 378: { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1448: + case 1487: { NOERR; } break; - case 190: - case 191: - case 192: case 193: case 194: case 195: case 196: case 197: - case 236: - case 237: - case 238: + case 198: + case 199: + case 200: case 239: case 240: case 241: case 242: case 243: case 244: + case 245: + case 246: + case 247: { ERR(ZS_BAD_DIRECTIVE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 378: - case 379: - case 380: case 381: case 382: case 383: case 384: + case 385: + case 386: + case 387: { WARN(ZS_BAD_BASE64_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 385: - case 386: - case 387: case 388: case 389: case 390: @@ -102084,32 +104329,32 @@ goto st316;} case 552: case 553: case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: { WARN(ZS_BAD_BITMAP); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 555: - case 562: - case 563: - case 564: - case 571: - case 573: + case 561: + case 568: + case 569: + case 570: + case 577: + case 579: { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 630: - case 631: - case 632: - case 633: - case 634: - case 635: case 636: case 637: case 638: @@ -102148,19 +104393,19 @@ goto st316;} case 671: case 672: case 673: - case 680: - case 681: - case 682: - case 683: - case 684: - case 691: - case 692: - case 695: - case 696: + case 674: + case 675: + case 676: + case 677: + case 678: + case 679: + case 686: + case 687: + case 688: + case 689: + case 690: case 697: case 698: - case 699: - case 700: case 701: case 702: case 703: @@ -102195,21 +104440,21 @@ goto st316;} case 732: case 733: case 734: + case 735: + case 736: + case 737: + case 738: case 739: case 740: + case 745: + case 746: { WARN(ZS_BAD_SVCB_PARAM); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 574: - case 575: - case 576: - case 577: - case 578: - case 579: case 580: case 581: case 582: @@ -102234,12 +104479,12 @@ goto st316;} case 601: case 602: case 603: + case 604: + case 605: case 606: case 607: case 608: case 609: - case 610: - case 611: case 612: case 613: case 614: @@ -102258,19 +104503,19 @@ goto st316;} case 627: case 628: case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: { WARN(ZS_BAD_SVCB_MANDATORY); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 741: - case 742: - case 743: - case 744: - case 745: - case 746: case 747: case 748: case 749: @@ -102369,19 +104614,19 @@ goto st316;} case 842: case 843: case 844: - { - WARN(ZS_BAD_ALGORITHM); - p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} - } - break; case 845: case 846: case 847: case 848: case 849: case 850: + { + WARN(ZS_BAD_ALGORITHM); + p--; { if ( p == pe ) + goto _test_eof319; +goto st319;} + } + break; case 851: case 852: case 853: @@ -102417,62 +104662,71 @@ goto st316;} case 883: case 884: case 885: + case 886: + case 887: + case 888: + case 889: + case 890: + case 891: { WARN(ZS_BAD_CERT_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} + } + break; + case 892: + case 893: + case 894: + case 895: + case 896: + case 897: + case 898: + case 899: + { + WARN(ZS_BAD_DSYNC_SCHEME); + p--; { if ( p == pe ) + goto _test_eof319; +goto st319;} } break; case 5: case 9: case 10: - case 290: - case 888: - case 889: - case 890: - case 891: - case 892: - case 893: + case 293: + case 902: + case 903: + case 904: + case 905: + case 906: case 907: - case 911: - case 915: - case 919: - case 920: case 921: - case 922: - case 923: - case 924: case 925: - case 926: - case 927: - case 928: case 929: - case 930: - case 931: + case 933: case 934: case 935: case 936: - case 1004: - case 1005: - case 1006: - case 1007: - case 1008: - case 1013: - case 1014: - case 1015: - case 1016: - case 1017: + case 937: + case 938: + case 939: + case 940: + case 941: + case 942: + case 943: + case 944: + case 945: + case 948: + case 949: + case 950: case 1018: case 1019: case 1020: case 1021: case 1022: - case 1023: - case 1024: - case 1025: - case 1026: case 1027: + case 1028: + case 1029: case 1030: case 1031: case 1032: @@ -102480,78 +104734,97 @@ goto st316;} case 1034: case 1035: case 1036: + case 1037: + case 1038: + case 1039: + case 1040: + case 1041: case 1044: + case 1045: + case 1046: + case 1047: + case 1048: + case 1049: case 1050: - case 1051: case 1058: - case 1059: - case 1060: - case 1069: - case 1070: - case 1109: - case 1112: - case 1113: - case 1124: - case 1125: + case 1064: + case 1065: + case 1072: + case 1073: + case 1074: + case 1083: + case 1084: + case 1123: case 1126: case 1127: - case 1128: - case 1129: - case 1130: - case 1131: - case 1132: - case 1133: - case 1134: - case 1135: - case 1302: - case 1303: - case 1304: - case 1309: - case 1310: - case 1311: - case 1312: - case 1313: - case 1314: - case 1315: - case 1316: - case 1317: - case 1335: - case 1341: - case 1344: - case 1345: - case 1346: - case 1357: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: + case 1319: + case 1320: + case 1321: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1332: + case 1333: + case 1334: + case 1352: case 1358: - case 1359: - case 1370: - case 1371: - case 1372: - case 1377: - case 1378: + case 1361: + case 1362: + case 1363: + case 1374: + case 1375: + case 1376: + case 1387: + case 1388: case 1389: - case 1390: - case 1391: - case 1396: - case 1409: + case 1394: + case 1395: + case 1406: + case 1407: + case 1408: + case 1413: case 1426: - case 1427: - case 1428: - case 1429: - case 1432: - case 1433: - case 1434: - case 1435: - case 1436: - case 1437: - case 1440: - case 1441: - case 1442: case 1443: + case 1444: + case 1445: + case 1446: + case 1449: + case 1450: + case 1451: + case 1452: + case 1453: + case 1454: + case 1457: + case 1458: + case 1459: + case 1460: + case 1465: + case 1466: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; case 3: @@ -102582,19 +104855,18 @@ goto st316;} case 51: case 54: case 55: - case 56: case 57: + case 58: case 59: - case 61: + case 60: case 62: - case 63: case 64: + case 65: case 66: case 67: - case 68: + case 69: case 70: case 71: - case 72: case 73: case 74: case 75: @@ -102602,192 +104874,192 @@ goto st316;} case 77: case 78: case 79: + case 80: case 81: case 82: + case 84: case 85: - case 86: case 88: - case 90: + case 89: + case 91: case 93: - case 94: - case 95: case 96: + case 97: + case 98: case 99: - case 100: - case 101: case 102: + case 103: case 104: + case 105: case 107: case 110: - case 111: - case 112: case 113: + case 114: case 115: case 116: - case 117: case 118: case 119: case 120: case 121: case 122: case 123: + case 124: case 125: case 126: case 128: - case 130: + case 129: case 131: - case 132: + case 133: + case 134: case 135: - case 136: - case 137: case 138: case 139: + case 140: case 141: - case 143: - case 145: - case 147: + case 142: + case 144: + case 146: case 148: - case 149: + case 150: case 151: case 152: case 154: case 155: - case 156: + case 157: case 158: - case 160: + case 159: case 161: + case 163: case 164: - case 165: case 167: case 168: - case 169: case 170: case 171: + case 172: case 173: case 174: - case 175: case 176: case 177: + case 178: case 179: - case 181: + case 180: case 182: - case 188: - case 203: - case 207: - case 274: - case 275: + case 184: + case 185: + case 191: + case 206: + case 210: case 277: case 278: - case 279: + case 280: case 281: + case 282: + case 284: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 343: - case 344: + case 346: + case 347: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 352: - case 353: - case 354: - case 359: + case 355: + case 356: + case 357: + case 362: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 321: - case 322: - case 323: case 324: + case 325: + case 326: + case 327: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_DNAME_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 355: - case 356: - case 357: case 358: + case 359: + case 360: + case 361: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 369: - case 370: - case 371: case 372: + case 373: + case 374: + case 375: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 268: + case 271: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 294: - case 295: - case 296: case 297: case 298: case 299: @@ -102802,482 +105074,473 @@ goto st316;} case 308: case 309: case 310: + case 311: + case 312: case 313: + case 316: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 341: + case 344: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 556: - case 557: - case 565: - case 566: + case 562: + case 563: + case 571: case 572: + case 578: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 693: - case 694: - case 735: - case 736: - case 737: - case 738: + case 699: + case 700: + case 741: + case 742: + case 743: + case 744: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_SVCB_PARAM); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 604: - case 605: + case 610: + case 611: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_SVCB_MANDATORY); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 894: - case 895: - case 896: - case 898: - case 900: - case 902: - case 932: - case 933: - case 998: - case 999: - case 1000: - case 1001: - case 1002: - case 1003: - case 1009: - case 1010: - case 1011: + case 908: + case 909: + case 910: + case 912: + case 914: + case 916: + case 946: + case 947: case 1012: - case 1028: - case 1029: - case 1048: - case 1049: - case 1052: - case 1053: - case 1061: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: + case 1023: + case 1024: + case 1025: + case 1026: + case 1042: + case 1043: case 1062: case 1063: - case 1064: - case 1071: - case 1072: - case 1114: - case 1115: - case 1116: - case 1117: - case 1122: - case 1123: - case 1305: - case 1306: - case 1307: - case 1308: - case 1318: - case 1319: - case 1320: - case 1321: + case 1066: + case 1067: + case 1075: + case 1076: + case 1077: + case 1078: + case 1085: + case 1086: + case 1128: + case 1129: + case 1130: + case 1131: + case 1136: + case 1137: case 1322: case 1323: - case 1347: - case 1348: - case 1349: - case 1350: - case 1351: - case 1352: - case 1360: - case 1361: - case 1362: - case 1363: + case 1324: + case 1325: + case 1335: + case 1336: + case 1337: + case 1338: + case 1339: + case 1340: case 1364: case 1365: - case 1373: - case 1374: - case 1375: - case 1376: + case 1366: + case 1367: + case 1368: + case 1369: + case 1377: + case 1378: case 1379: case 1380: case 1381: case 1382: - case 1383: - case 1384: + case 1390: + case 1391: case 1392: case 1393: + case 1396: case 1397: case 1398: - case 1422: - case 1423: - case 1424: - case 1425: - case 1430: - case 1431: - case 1438: + case 1399: + case 1400: + case 1401: + case 1409: + case 1410: + case 1414: + case 1415: case 1439: + case 1440: + case 1441: + case 1442: + case 1447: + case 1448: + case 1455: + case 1456: + case 1467: + case 1468: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 162: - case 183: - case 199: + case 165: + case 186: case 202: + case 205: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1118: - case 1119: - case 1120: - case 1121: + case 1132: + case 1133: + case 1134: + case 1135: { WARN(ZS_BAD_TIMESTAMP_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 327: - case 328: - case 333: - case 334: + case 330: + case 331: + case 336: + case 337: { WARN(ZS_BAD_TEXT_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 937: - case 938: - case 939: - case 940: + case 951: + case 952: + case 953: + case 954: { s->long_string = false; } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 363: + case 366: { ERR(ZS_BAD_INCLUDE_FILENAME); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 364: - case 366: - case 373: + case 367: + case 369: + case 376: { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 674: - case 675: - case 676: - case 677: - case 678: - case 679: + case 680: + case 681: + case 682: + case 683: + case 684: case 685: - case 686: - case 687: - case 688: - case 689: - case 690: + case 691: + case 692: + case 693: + case 694: + case 695: + case 696: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_SVCB_PARAM); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 886: - case 887: - case 941: - case 942: - case 1394: - case 1395: + case 900: + case 901: + case 955: + case 956: + case 1411: + case 1412: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1037: - case 1038: - case 1039: - case 1042: - case 1043: - case 1045: + case 1051: + case 1052: + case 1053: + case 1056: + case 1057: + case 1059: { WARN(ZS_BAD_APL); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1054: - case 1055: - case 1056: - case 1057: - case 1065: - case 1066: - case 1067: case 1068: - case 1324: - case 1325: + case 1069: + case 1070: + case 1071: + case 1079: + case 1080: + case 1081: + case 1082: + case 1341: case 1342: - case 1343: - case 1353: - case 1354: - case 1355: - case 1356: - case 1366: - case 1367: - case 1368: - case 1369: + case 1359: + case 1360: + case 1370: + case 1371: + case 1372: + case 1373: + case 1383: + case 1384: case 1385: case 1386: - case 1387: - case 1388: - case 1399: - case 1400: - case 1401: case 1402: + case 1403: case 1404: case 1405: - case 1406: - case 1407: - case 1410: - case 1411: - case 1413: - case 1414: case 1416: case 1417: + case 1418: case 1419: - case 1420: + case 1421: + case 1422: + case 1423: + case 1424: + case 1427: + case 1428: + case 1430: + case 1431: + case 1433: + case 1434: + case 1436: + case 1437: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1326: - case 1327: - case 1328: - case 1329: - case 1330: - case 1331: - case 1332: - case 1333: - case 1334: - case 1336: - case 1337: - case 1338: - case 1339: - case 1340: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: { WARN(ZS_BAD_BASE32HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1073: - case 1074: - case 1077: - case 1086: case 1087: case 1088: - case 1093: - case 1094: - case 1095: + case 1091: case 1100: case 1101: case 1102: - case 1105: case 1107: case 1108: + case 1109: + case 1114: + case 1115: + case 1116: + case 1119: + case 1121: + case 1122: { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1079: - case 1080: - case 1081: - case 1082: - case 1083: - case 1084: - case 1085: + case 1093: + case 1094: + case 1095: + case 1096: + case 1097: + case 1098: + case 1099: { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1110: - case 1111: - case 1136: - case 1137: - case 1138: - case 1139: - case 1140: - case 1141: - case 1142: - case 1143: - case 1144: - case 1145: - case 1146: - case 1147: - case 1148: - case 1149: + case 1124: + case 1125: case 1150: case 1151: case 1152: @@ -103413,6 +105676,8 @@ goto st316;} case 1282: case 1283: case 1284: + case 1285: + case 1286: case 1287: case 1288: case 1289: @@ -103428,33 +105693,45 @@ goto st316;} case 1299: case 1300: case 1301: + case 1304: + case 1305: + case 1306: + case 1307: + case 1308: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1314: + case 1315: + case 1316: + case 1317: + case 1318: + case 1461: + case 1462: + case 1463: + case 1464: + case 1474: + case 1475: + case 1476: + case 1477: + case 1478: + case 1479: + case 1480: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 943: - case 944: - case 945: - case 946: - case 947: - case 948: - case 949: - case 950: - case 951: - case 952: - case 953: - case 954: - case 955: - case 956: case 957: case 958: case 959: @@ -103496,17 +105773,31 @@ goto st316;} case 995: case 996: case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1003: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: { WARN(ZS_BAD_LOC_DATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; case 6: @@ -103515,48 +105806,48 @@ goto st316;} case 13: case 20: case 21: - case 211: case 214: - case 234: - case 270: - case 272: + case 217: + case 237: case 273: - case 283: - case 284: + case 275: + case 276: case 286: case 287: - case 288: case 289: + case 290: + case 291: case 292: - case 293: + case 295: + case 296: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; case 16: - case 248: - case 312: - case 314: + case 251: + case 315: + case 317: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; case 4: @@ -103570,479 +105861,479 @@ goto st316;} case 48: case 52: case 53: - case 58: - case 60: - case 65: - case 69: - case 80: + case 56: + case 61: + case 63: + case 68: + case 72: case 83: - case 84: + case 86: case 87: - case 89: - case 91: + case 90: case 92: - case 97: - case 98: - case 103: - case 105: + case 94: + case 95: + case 100: + case 101: case 106: case 108: case 109: - case 114: - case 124: + case 111: + case 112: + case 117: case 127: - case 129: - case 133: - case 134: - case 140: - case 142: - case 144: - case 146: - case 150: + case 130: + case 132: + case 136: + case 137: + case 143: + case 145: + case 147: + case 149: case 153: - case 157: - case 159: - case 166: - case 172: - case 178: - case 276: - case 280: - case 282: + case 156: + case 160: + case 162: + case 169: + case 175: + case 181: + case 279: + case 283: + case 285: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 245: + case 248: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 208: + case 211: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1075: - case 1076: case 1089: case 1090: - case 1096: - case 1097: case 1103: case 1104: + case 1110: + case 1111: + case 1117: + case 1118: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1285: - case 1286: + case 1302: + case 1303: + case 1481: + case 1482: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; case 1: - case 180: - case 212: - case 247: + case 183: + case 215: + case 250: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 163: - case 209: + case 166: + case 212: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 346: + case 349: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 897: - case 899: - case 901: - case 903: - case 904: - case 905: - case 906: - case 908: - case 909: - case 910: - case 912: + case 911: case 913: - case 914: - case 916: + case 915: case 917: case 918: + case 919: + case 920: + case 922: + case 923: + case 924: + case 926: + case 927: + case 928: + case 930: + case 931: + case 932: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; case 2: - case 184: - case 185: - case 186: case 187: - case 204: - case 205: - case 206: + case 188: + case 189: + case 190: + case 207: + case 208: + case 209: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 329: - case 330: - case 331: case 332: - case 336: - case 337: - case 338: + case 333: + case 334: + case 335: case 339: + case 340: + case 341: + case 342: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_TEXT_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1040: - case 1041: - case 1046: - case 1047: + case 1054: + case 1055: + case 1060: + case 1061: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_APL); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1091: - case 1098: + case 1105: + case 1112: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 558: - case 559: - case 560: - case 561: + case 564: + case 565: + case 566: case 567: - case 568: - case 569: - case 570: + case 573: + case 574: + case 575: + case 576: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1403: + case 1420: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_CHAR_COLON); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1078: - case 1106: + case 1092: + case 1120: { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1412: - case 1415: - case 1418: - case 1421: + case 1429: + case 1432: + case 1435: + case 1438: { WARN(ZS_BAD_CHAR_DASH); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1408: + case 1425: { WARN(ZS_BAD_CHAR_COLON); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 235: + case 238: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { ERR(ZS_BAD_DIRECTIVE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 210: - case 217: - case 218: - case 219: + case 213: case 220: case 221: case 222: @@ -104057,56 +106348,56 @@ goto st316;} case 231: case 232: case 233: + case 234: + case 235: + case 236: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 201: + case 204: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 249: - case 251: case 252: - case 253: case 254: case 255: case 256: @@ -104121,186 +106412,189 @@ goto st316;} case 265: case 266: case 267: + case 268: + case 269: + case 270: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; case 14: - case 216: - case 250: - case 269: - case 291: + case 219: + case 253: + case 272: + case 294: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 342: case 345: - case 347: + case 348: + case 350: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 1092: - case 1099: + case 1106: + case 1113: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; case 15: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; - case 246: + case 249: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof316; -goto st316;} + goto _test_eof319; +goto st319;} } break; } diff --git a/src/libzscanner/scanner.c.t0 b/src/libzscanner/scanner.c.t0 index ccf4fdce45..1b724f1818 100644 --- a/src/libzscanner/scanner.c.t0 +++ b/src/libzscanner/scanner.c.t0 @@ -127,778 +127,791 @@ static const short _zone_scanner_actions[] = { 246, 1, 247, 1, 248, 1, 249, 1, 250, 1, 251, 1, 252, 1, 253, 1, 254, 1, 255, 1, 256, 1, 257, 1, - 258, 1, 260, 1, 262, 1, 263, 1, - 264, 1, 265, 1, 272, 1, 273, 1, - 278, 1, 280, 1, 285, 1, 288, 1, - 290, 1, 291, 1, 292, 1, 293, 1, - 298, 1, 299, 1, 301, 1, 302, 1, - 303, 1, 304, 1, 306, 1, 307, 1, - 308, 1, 309, 1, 311, 2, 0, 49, - 2, 1, 0, 2, 1, 307, 2, 1, - 361, 2, 2, 5, 2, 2, 7, 2, - 3, 5, 2, 3, 7, 2, 4, 0, - 2, 4, 5, 2, 4, 7, 2, 4, - 307, 2, 5, 2, 2, 5, 3, 2, - 5, 4, 2, 5, 7, 2, 6, 1, - 2, 7, 1, 2, 7, 2, 2, 7, - 3, 2, 7, 4, 2, 7, 5, 2, - 7, 32, 2, 8, 73, 2, 8, 77, - 2, 9, 10, 2, 11, 1, 2, 12, - 1, 2, 13, 14, 2, 16, 17, 2, - 18, 14, 2, 18, 15, 2, 19, 24, - 2, 19, 77, 2, 19, 84, 2, 20, - 0, 2, 20, 7, 2, 22, 0, 2, - 23, 13, 2, 26, 69, 2, 26, 108, - 2, 26, 119, 2, 27, 0, 2, 27, - 1, 2, 27, 2, 2, 27, 3, 2, - 27, 4, 2, 27, 261, 2, 28, 69, - 2, 28, 113, 2, 29, 293, 2, 29, - 297, 2, 30, 25, 2, 31, 1, 2, - 31, 2, 2, 31, 3, 2, 31, 4, - 2, 31, 7, 2, 31, 93, 2, 32, - 7, 2, 33, 8, 2, 33, 306, 2, - 33, 311, 2, 34, 25, 2, 35, 0, - 2, 35, 1, 2, 35, 2, 2, 35, - 3, 2, 35, 4, 2, 35, 261, 2, - 35, 300, 2, 36, 41, 2, 37, 36, - 2, 38, 73, 2, 38, 278, 2, 38, - 290, 2, 38, 291, 2, 38, 306, 2, - 38, 311, 2, 42, 266, 2, 42, 267, - 2, 42, 268, 2, 42, 269, 2, 42, - 270, 2, 42, 271, 2, 45, 0, 2, - 45, 1, 2, 45, 2, 2, 45, 3, - 2, 45, 4, 2, 46, 0, 2, 46, - 1, 2, 46, 2, 2, 46, 3, 2, - 46, 4, 2, 46, 261, 2, 46, 293, - 2, 47, 0, 2, 47, 1, 2, 47, - 2, 2, 47, 3, 2, 47, 4, 2, - 48, 305, 2, 49, 1, 2, 49, 2, - 2, 49, 3, 2, 49, 4, 2, 56, - 7, 2, 56, 47, 2, 56, 93, 2, - 57, 58, 2, 59, 1, 2, 59, 2, - 2, 59, 3, 2, 59, 4, 2, 60, - 306, 2, 62, 63, 2, 64, 65, 2, - 66, 68, 2, 68, 0, 2, 68, 61, - 2, 71, 0, 2, 71, 306, 2, 75, - 23, 2, 79, 69, 2, 80, 7, 2, - 81, 8, 2, 82, 23, 2, 84, 8, - 2, 90, 91, 2, 92, 1, 2, 92, - 2, 2, 92, 3, 2, 92, 4, 2, - 93, 1, 2, 93, 2, 2, 93, 3, - 2, 93, 4, 2, 93, 7, 2, 94, - 95, 2, 96, 290, 2, 96, 306, 2, - 97, 98, 2, 99, 100, 2, 101, 102, - 2, 101, 103, 2, 101, 104, 2, 105, - 106, 2, 107, 306, 2, 110, 306, 2, - 111, 0, 2, 127, 306, 2, 129, 0, - 2, 130, 0, 2, 131, 0, 2, 132, - 0, 2, 133, 0, 2, 134, 0, 2, - 135, 0, 2, 136, 0, 2, 137, 0, - 2, 138, 0, 2, 139, 0, 2, 140, - 0, 2, 141, 0, 2, 142, 0, 2, - 143, 0, 2, 144, 0, 2, 146, 0, - 2, 147, 0, 2, 148, 0, 2, 149, - 0, 2, 150, 0, 2, 151, 0, 2, - 152, 0, 2, 153, 0, 2, 154, 0, - 2, 155, 0, 2, 156, 306, 2, 157, - 306, 2, 158, 306, 2, 159, 1, 2, - 159, 2, 2, 159, 3, 2, 159, 4, - 2, 160, 1, 2, 160, 2, 2, 160, - 3, 2, 160, 4, 2, 161, 1, 2, - 161, 2, 2, 161, 3, 2, 161, 4, - 2, 162, 1, 2, 162, 2, 2, 162, - 3, 2, 162, 4, 2, 163, 1, 2, - 163, 2, 2, 163, 3, 2, 163, 4, - 2, 164, 1, 2, 164, 2, 2, 164, - 3, 2, 164, 4, 2, 165, 1, 2, - 165, 2, 2, 165, 3, 2, 165, 4, - 2, 166, 1, 2, 166, 2, 2, 166, - 3, 2, 166, 4, 2, 167, 1, 2, - 167, 2, 2, 167, 3, 2, 167, 4, - 2, 168, 1, 2, 168, 2, 2, 168, - 3, 2, 168, 4, 2, 169, 1, 2, - 169, 2, 2, 169, 3, 2, 169, 4, - 2, 170, 1, 2, 170, 2, 2, 170, - 3, 2, 170, 4, 2, 171, 1, 2, - 171, 2, 2, 171, 3, 2, 171, 4, - 2, 172, 1, 2, 172, 2, 2, 172, - 3, 2, 172, 4, 2, 173, 1, 2, - 173, 2, 2, 173, 3, 2, 173, 4, - 2, 174, 1, 2, 174, 2, 2, 174, - 3, 2, 174, 4, 2, 175, 1, 2, - 175, 2, 2, 175, 3, 2, 175, 4, - 2, 176, 1, 2, 176, 2, 2, 176, - 3, 2, 176, 4, 2, 177, 1, 2, - 177, 2, 2, 177, 3, 2, 177, 4, - 2, 178, 1, 2, 178, 2, 2, 178, - 3, 2, 178, 4, 2, 179, 1, 2, - 179, 2, 2, 179, 3, 2, 179, 4, - 2, 180, 1, 2, 180, 2, 2, 180, - 3, 2, 180, 4, 2, 181, 1, 2, - 181, 2, 2, 181, 3, 2, 181, 4, - 2, 182, 1, 2, 182, 2, 2, 182, - 3, 2, 182, 4, 2, 183, 1, 2, - 183, 2, 2, 183, 3, 2, 183, 4, - 2, 184, 1, 2, 184, 2, 2, 184, - 3, 2, 184, 4, 2, 185, 1, 2, - 185, 2, 2, 185, 3, 2, 185, 4, - 2, 186, 1, 2, 186, 2, 2, 186, - 3, 2, 186, 4, 2, 187, 1, 2, - 187, 2, 2, 187, 3, 2, 187, 4, - 2, 188, 1, 2, 188, 2, 2, 188, - 3, 2, 188, 4, 2, 189, 1, 2, - 189, 2, 2, 189, 3, 2, 189, 4, - 2, 190, 1, 2, 190, 2, 2, 190, - 3, 2, 190, 4, 2, 191, 1, 2, - 191, 2, 2, 191, 3, 2, 191, 4, - 2, 192, 1, 2, 192, 2, 2, 192, - 3, 2, 192, 4, 2, 193, 1, 2, - 193, 2, 2, 193, 3, 2, 193, 4, - 2, 194, 1, 2, 194, 2, 2, 194, - 3, 2, 194, 4, 2, 195, 1, 2, - 195, 2, 2, 195, 3, 2, 195, 4, - 2, 196, 1, 2, 196, 2, 2, 196, - 3, 2, 196, 4, 2, 197, 1, 2, - 197, 2, 2, 197, 3, 2, 197, 4, - 2, 198, 1, 2, 198, 2, 2, 198, - 3, 2, 198, 4, 2, 199, 1, 2, - 199, 2, 2, 199, 3, 2, 199, 4, - 2, 200, 1, 2, 200, 2, 2, 200, - 3, 2, 200, 4, 2, 201, 1, 2, - 201, 2, 2, 201, 3, 2, 201, 4, - 2, 202, 1, 2, 202, 2, 2, 202, - 3, 2, 202, 4, 2, 203, 1, 2, - 203, 2, 2, 203, 3, 2, 203, 4, - 2, 204, 1, 2, 204, 2, 2, 204, - 3, 2, 204, 4, 2, 205, 1, 2, - 205, 2, 2, 205, 3, 2, 205, 4, - 2, 206, 1, 2, 206, 2, 2, 206, - 3, 2, 206, 4, 2, 207, 1, 2, - 207, 2, 2, 207, 3, 2, 207, 4, - 2, 208, 1, 2, 208, 2, 2, 208, - 3, 2, 208, 4, 2, 209, 1, 2, - 209, 2, 2, 209, 3, 2, 209, 4, - 2, 210, 1, 2, 210, 2, 2, 210, - 3, 2, 210, 4, 2, 211, 1, 2, - 211, 2, 2, 211, 3, 2, 211, 4, - 2, 212, 1, 2, 212, 2, 2, 212, - 3, 2, 212, 4, 2, 213, 1, 2, - 213, 2, 2, 213, 3, 2, 213, 4, - 2, 214, 1, 2, 214, 2, 2, 214, - 3, 2, 214, 4, 2, 215, 1, 2, - 215, 2, 2, 215, 3, 2, 215, 4, - 2, 216, 1, 2, 216, 2, 2, 216, - 3, 2, 216, 4, 2, 217, 1, 2, - 217, 2, 2, 217, 3, 2, 217, 4, - 2, 218, 1, 2, 218, 2, 2, 218, - 3, 2, 218, 4, 2, 219, 1, 2, - 219, 2, 2, 219, 3, 2, 219, 4, - 2, 220, 1, 2, 220, 2, 2, 220, - 3, 2, 220, 4, 2, 221, 1, 2, - 221, 2, 2, 221, 3, 2, 221, 4, - 2, 222, 1, 2, 222, 2, 2, 222, - 3, 2, 222, 4, 2, 223, 1, 2, - 223, 2, 2, 223, 3, 2, 223, 4, - 2, 224, 1, 2, 224, 2, 2, 224, - 3, 2, 224, 4, 2, 225, 1, 2, - 225, 2, 2, 225, 3, 2, 225, 4, - 2, 226, 1, 2, 226, 2, 2, 226, - 3, 2, 226, 4, 2, 227, 1, 2, - 227, 2, 2, 227, 3, 2, 227, 4, - 2, 228, 1, 2, 228, 2, 2, 228, - 3, 2, 228, 4, 2, 229, 1, 2, - 229, 2, 2, 229, 3, 2, 229, 4, - 2, 230, 1, 2, 230, 2, 2, 230, - 3, 2, 230, 4, 2, 231, 1, 2, - 231, 2, 2, 231, 3, 2, 231, 4, - 2, 232, 1, 2, 232, 2, 2, 232, - 3, 2, 232, 4, 2, 233, 1, 2, - 233, 2, 2, 233, 3, 2, 233, 4, - 2, 234, 1, 2, 234, 2, 2, 234, - 3, 2, 234, 4, 2, 235, 1, 2, - 235, 2, 2, 235, 3, 2, 235, 4, - 2, 236, 1, 2, 236, 2, 2, 236, - 3, 2, 236, 4, 2, 237, 1, 2, - 237, 2, 2, 237, 3, 2, 237, 4, - 2, 238, 1, 2, 238, 2, 2, 238, - 3, 2, 238, 4, 2, 239, 1, 2, - 239, 2, 2, 239, 3, 2, 239, 4, - 2, 240, 1, 2, 240, 2, 2, 240, - 3, 2, 240, 4, 2, 241, 1, 2, - 241, 2, 2, 241, 3, 2, 241, 4, - 2, 242, 1, 2, 242, 2, 2, 242, - 3, 2, 242, 4, 2, 243, 1, 2, - 243, 2, 2, 243, 3, 2, 243, 4, - 2, 244, 1, 2, 244, 2, 2, 244, - 3, 2, 244, 4, 2, 245, 1, 2, - 245, 2, 2, 245, 3, 2, 245, 4, - 2, 246, 1, 2, 246, 2, 2, 246, - 3, 2, 246, 4, 2, 247, 1, 2, - 247, 2, 2, 247, 3, 2, 247, 4, - 2, 248, 1, 2, 248, 2, 2, 248, - 3, 2, 248, 4, 2, 249, 1, 2, - 249, 2, 2, 249, 3, 2, 249, 4, - 2, 250, 1, 2, 250, 2, 2, 250, - 3, 2, 250, 4, 2, 251, 1, 2, - 251, 2, 2, 251, 3, 2, 251, 4, - 2, 252, 1, 2, 252, 2, 2, 252, - 3, 2, 252, 4, 2, 253, 1, 2, - 253, 2, 2, 253, 3, 2, 253, 4, - 2, 254, 1, 2, 254, 2, 2, 254, - 3, 2, 254, 4, 2, 255, 1, 2, - 255, 2, 2, 255, 3, 2, 255, 4, - 2, 256, 1, 2, 256, 2, 2, 256, - 3, 2, 256, 4, 2, 257, 1, 2, - 257, 2, 2, 257, 3, 2, 257, 4, - 2, 258, 1, 2, 258, 2, 2, 258, - 3, 2, 258, 4, 2, 259, 0, 2, - 262, 1, 2, 262, 2, 2, 262, 3, - 2, 262, 4, 2, 263, 1, 2, 263, - 2, 2, 263, 3, 2, 263, 4, 2, - 264, 1, 2, 264, 2, 2, 264, 3, - 2, 264, 4, 2, 265, 1, 2, 265, - 2, 2, 265, 3, 2, 265, 4, 2, - 272, 1, 2, 272, 2, 2, 272, 3, - 2, 272, 4, 2, 273, 1, 2, 273, - 2, 2, 273, 3, 2, 273, 4, 2, - 276, 0, 2, 277, 306, 2, 279, 108, - 2, 284, 108, 2, 288, 1, 2, 288, - 2, 2, 288, 3, 2, 288, 4, 2, - 289, 0, 2, 293, 1, 2, 293, 2, - 2, 293, 3, 2, 293, 4, 2, 306, - 8, 2, 307, 1, 2, 307, 4, 2, - 310, 307, 2, 311, 8, 2, 311, 306, - 2, 312, 305, 2, 313, 305, 2, 314, - 305, 2, 315, 305, 2, 316, 305, 2, - 317, 305, 2, 318, 305, 2, 319, 305, - 2, 320, 305, 2, 321, 305, 2, 322, - 305, 2, 323, 305, 2, 324, 305, 2, - 325, 305, 2, 326, 305, 2, 327, 305, - 2, 328, 305, 2, 329, 305, 2, 330, - 305, 2, 331, 305, 2, 332, 305, 2, - 333, 305, 2, 334, 305, 2, 335, 305, - 2, 336, 305, 2, 337, 305, 2, 338, - 305, 2, 339, 305, 2, 340, 305, 2, - 341, 305, 2, 342, 305, 2, 343, 305, - 2, 344, 305, 2, 345, 305, 2, 346, - 305, 2, 347, 305, 2, 348, 305, 2, - 349, 305, 2, 350, 305, 2, 351, 305, - 2, 352, 305, 2, 353, 305, 2, 354, - 305, 2, 355, 305, 2, 356, 305, 2, - 357, 305, 2, 358, 305, 2, 359, 305, - 2, 360, 305, 2, 361, 1, 3, 0, - 49, 1, 3, 0, 49, 2, 3, 0, - 49, 3, 3, 0, 49, 4, 3, 1, - 7, 361, 3, 1, 32, 7, 3, 1, - 71, 0, 3, 1, 111, 0, 3, 1, - 259, 0, 3, 1, 276, 0, 3, 1, - 289, 0, 3, 1, 307, 361, 3, 2, - 7, 32, 3, 2, 32, 7, 3, 3, - 7, 32, 3, 3, 32, 7, 3, 4, - 7, 32, 3, 4, 32, 7, 3, 4, - 71, 0, 3, 4, 111, 0, 3, 4, - 259, 0, 3, 4, 276, 0, 3, 4, - 289, 0, 3, 4, 307, 7, 3, 5, - 7, 2, 3, 5, 7, 3, 3, 5, - 7, 4, 3, 6, 1, 361, 3, 6, - 361, 1, 3, 7, 2, 5, 3, 7, - 2, 32, 3, 7, 3, 5, 3, 7, - 3, 32, 3, 7, 4, 5, 3, 7, - 4, 32, 3, 7, 361, 1, 3, 9, - 11, 1, 3, 15, 21, 0, 3, 20, - 7, 2, 3, 20, 7, 3, 3, 20, - 7, 4, 3, 20, 83, 7, 3, 23, - 13, 14, 3, 27, 71, 0, 3, 27, - 295, 29, 3, 28, 94, 95, 3, 29, - 293, 1, 3, 29, 293, 2, 3, 29, - 293, 3, 3, 29, 293, 4, 3, 29, - 297, 293, 3, 31, 1, 93, 3, 31, - 2, 7, 3, 31, 2, 93, 3, 31, - 3, 7, 3, 31, 3, 93, 3, 31, - 4, 7, 3, 31, 4, 93, 3, 31, - 93, 7, 3, 31, 310, 307, 3, 31, - 312, 305, 3, 32, 1, 7, 3, 32, - 2, 7, 3, 32, 3, 7, 3, 32, - 4, 7, 3, 33, 89, 8, 3, 33, - 306, 8, 3, 33, 311, 8, 3, 33, - 311, 306, 3, 35, 1, 0, 3, 35, - 4, 0, 3, 37, 36, 307, 3, 38, - 156, 306, 3, 38, 158, 306, 3, 38, - 311, 8, 3, 38, 311, 306, 3, 40, - 42, 266, 3, 40, 42, 267, 3, 40, - 42, 268, 3, 40, 42, 269, 3, 40, - 42, 270, 3, 40, 42, 271, 3, 42, - 266, 1, 3, 42, 266, 2, 3, 42, - 266, 3, 3, 42, 266, 4, 3, 42, - 267, 1, 3, 42, 267, 2, 3, 42, - 267, 3, 3, 42, 267, 4, 3, 42, - 268, 1, 3, 42, 268, 2, 3, 42, - 268, 3, 3, 42, 268, 4, 3, 42, - 269, 1, 3, 42, 269, 2, 3, 42, - 269, 3, 3, 42, 269, 4, 3, 42, - 270, 1, 3, 42, 270, 2, 3, 42, - 270, 3, 3, 42, 270, 4, 3, 42, - 271, 1, 3, 42, 271, 2, 3, 42, - 271, 3, 3, 42, 271, 4, 3, 46, - 145, 293, 3, 46, 293, 1, 3, 46, - 293, 2, 3, 46, 293, 3, 3, 46, - 293, 4, 3, 48, 305, 1, 3, 48, - 305, 2, 3, 48, 305, 3, 3, 48, - 305, 4, 3, 48, 305, 307, 3, 50, - 38, 73, 3, 50, 38, 306, 3, 50, - 38, 311, 3, 55, 37, 36, 3, 56, - 7, 2, 3, 56, 7, 3, 3, 56, - 7, 4, 3, 56, 47, 0, 3, 56, - 47, 1, 3, 56, 47, 2, 3, 56, - 47, 3, 3, 56, 47, 4, 3, 56, - 93, 1, 3, 56, 93, 2, 3, 56, - 93, 3, 3, 56, 93, 4, 3, 66, - 68, 0, 3, 66, 68, 61, 3, 67, - 62, 63, 3, 68, 61, 0, 3, 70, - 26, 69, 3, 72, 0, 1, 3, 75, - 23, 13, 3, 76, 0, 1, 3, 80, - 2, 7, 3, 80, 3, 7, 3, 80, - 4, 7, 3, 80, 7, 4, 3, 82, - 23, 13, 3, 85, 0, 1, 3, 88, - 7, 1, 3, 88, 7, 4, 3, 88, - 30, 25, 3, 88, 32, 7, 3, 90, - 30, 25, 3, 90, 91, 307, 3, 93, - 2, 7, 3, 93, 3, 7, 3, 93, - 4, 7, 3, 96, 107, 306, 3, 96, - 156, 306, 3, 97, 98, 0, 3, 97, - 98, 1, 3, 97, 98, 2, 3, 97, - 98, 3, 3, 97, 98, 4, 3, 97, - 98, 29, 3, 99, 100, 0, 3, 99, - 100, 1, 3, 99, 100, 2, 3, 99, - 100, 3, 3, 99, 100, 4, 3, 99, - 100, 29, 3, 105, 106, 0, 3, 105, - 106, 1, 3, 105, 106, 2, 3, 105, - 106, 3, 3, 105, 106, 4, 3, 110, - 112, 278, 3, 110, 287, 306, 3, 147, - 145, 293, 3, 153, 145, 293, 3, 156, - 157, 306, 3, 208, 259, 0, 3, 209, - 259, 0, 3, 210, 259, 0, 3, 211, - 259, 0, 3, 212, 259, 0, 3, 213, - 259, 0, 3, 214, 259, 0, 3, 215, - 259, 0, 3, 216, 259, 0, 3, 217, - 259, 0, 3, 218, 259, 0, 3, 219, - 259, 0, 3, 220, 259, 0, 3, 221, - 259, 0, 3, 222, 259, 0, 3, 223, - 259, 0, 3, 224, 259, 0, 3, 225, - 259, 0, 3, 226, 259, 0, 3, 227, - 259, 0, 3, 228, 259, 0, 3, 229, - 259, 0, 3, 230, 259, 0, 3, 231, - 259, 0, 3, 232, 259, 0, 3, 233, - 259, 0, 3, 234, 259, 0, 3, 235, - 259, 0, 3, 236, 259, 0, 3, 237, - 259, 0, 3, 238, 259, 0, 3, 239, - 259, 0, 3, 240, 259, 0, 3, 241, - 259, 0, 3, 242, 259, 0, 3, 243, - 259, 0, 3, 244, 259, 0, 3, 245, - 259, 0, 3, 246, 259, 0, 3, 247, - 259, 0, 3, 248, 259, 0, 3, 249, - 259, 0, 3, 250, 259, 0, 3, 251, - 259, 0, 3, 252, 259, 0, 3, 253, - 259, 0, 3, 254, 259, 0, 3, 255, - 259, 0, 3, 256, 259, 0, 3, 257, - 259, 0, 3, 258, 259, 0, 3, 275, - 37, 36, 3, 280, 281, 0, 3, 280, - 282, 0, 3, 283, 110, 306, 3, 285, - 286, 0, 3, 287, 110, 306, 3, 288, - 289, 0, 3, 293, 289, 0, 3, 296, - 28, 299, 3, 306, 8, 89, 3, 307, - 7, 1, 3, 307, 7, 4, 3, 307, - 30, 25, 3, 307, 361, 1, 3, 309, - 30, 25, 3, 311, 306, 8, 3, 312, - 305, 1, 3, 312, 305, 2, 3, 312, - 305, 3, 3, 312, 305, 4, 3, 312, - 305, 7, 3, 312, 305, 307, 3, 313, - 305, 1, 3, 313, 305, 2, 3, 313, - 305, 3, 3, 313, 305, 4, 3, 313, - 305, 307, 3, 314, 305, 1, 3, 314, - 305, 2, 3, 314, 305, 3, 3, 314, - 305, 4, 3, 314, 305, 307, 3, 315, - 305, 1, 3, 315, 305, 2, 3, 315, - 305, 3, 3, 315, 305, 4, 3, 315, - 305, 307, 3, 316, 305, 1, 3, 316, - 305, 2, 3, 316, 305, 3, 3, 316, - 305, 4, 3, 316, 305, 307, 3, 317, - 305, 1, 3, 317, 305, 2, 3, 317, - 305, 3, 3, 317, 305, 4, 3, 317, - 305, 307, 3, 318, 305, 1, 3, 318, - 305, 2, 3, 318, 305, 3, 3, 318, - 305, 4, 3, 318, 305, 307, 3, 319, - 305, 1, 3, 319, 305, 2, 3, 319, - 305, 3, 3, 319, 305, 4, 3, 319, - 305, 307, 3, 320, 305, 1, 3, 320, - 305, 2, 3, 320, 305, 3, 3, 320, - 305, 4, 3, 320, 305, 307, 3, 321, - 305, 1, 3, 321, 305, 2, 3, 321, - 305, 3, 3, 321, 305, 4, 3, 321, - 305, 307, 3, 322, 305, 1, 3, 322, - 305, 2, 3, 322, 305, 3, 3, 322, - 305, 4, 3, 322, 305, 307, 3, 323, - 305, 1, 3, 323, 305, 2, 3, 323, - 305, 3, 3, 323, 305, 4, 3, 323, - 305, 307, 3, 324, 305, 1, 3, 324, - 305, 2, 3, 324, 305, 3, 3, 324, - 305, 4, 3, 324, 305, 307, 3, 325, - 305, 1, 3, 325, 305, 2, 3, 325, - 305, 3, 3, 325, 305, 4, 3, 325, - 305, 307, 3, 326, 305, 1, 3, 326, - 305, 2, 3, 326, 305, 3, 3, 326, - 305, 4, 3, 326, 305, 307, 3, 327, - 305, 1, 3, 327, 305, 2, 3, 327, - 305, 3, 3, 327, 305, 4, 3, 327, - 305, 307, 3, 328, 305, 1, 3, 328, - 305, 2, 3, 328, 305, 3, 3, 328, - 305, 4, 3, 328, 305, 307, 3, 329, - 305, 1, 3, 329, 305, 2, 3, 329, - 305, 3, 3, 329, 305, 4, 3, 329, - 305, 307, 3, 330, 305, 1, 3, 330, - 305, 2, 3, 330, 305, 3, 3, 330, - 305, 4, 3, 330, 305, 307, 3, 331, - 305, 1, 3, 331, 305, 2, 3, 331, - 305, 3, 3, 331, 305, 4, 3, 331, - 305, 307, 3, 332, 305, 1, 3, 332, - 305, 2, 3, 332, 305, 3, 3, 332, - 305, 4, 3, 332, 305, 307, 3, 333, - 305, 1, 3, 333, 305, 2, 3, 333, - 305, 3, 3, 333, 305, 4, 3, 333, - 305, 307, 3, 334, 305, 1, 3, 334, - 305, 2, 3, 334, 305, 3, 3, 334, - 305, 4, 3, 334, 305, 307, 3, 335, - 305, 1, 3, 335, 305, 2, 3, 335, - 305, 3, 3, 335, 305, 4, 3, 335, - 305, 307, 3, 336, 305, 1, 3, 336, - 305, 2, 3, 336, 305, 3, 3, 336, - 305, 4, 3, 336, 305, 307, 3, 337, - 305, 1, 3, 337, 305, 2, 3, 337, - 305, 3, 3, 337, 305, 4, 3, 337, - 305, 307, 3, 338, 305, 1, 3, 338, - 305, 2, 3, 338, 305, 3, 3, 338, - 305, 4, 3, 338, 305, 307, 3, 339, - 305, 1, 3, 339, 305, 2, 3, 339, - 305, 3, 3, 339, 305, 4, 3, 339, - 305, 307, 3, 340, 305, 1, 3, 340, - 305, 2, 3, 340, 305, 3, 3, 340, - 305, 4, 3, 340, 305, 307, 3, 341, - 305, 1, 3, 341, 305, 2, 3, 341, - 305, 3, 3, 341, 305, 4, 3, 341, - 305, 307, 3, 342, 305, 1, 3, 342, - 305, 2, 3, 342, 305, 3, 3, 342, - 305, 4, 3, 342, 305, 307, 3, 343, - 305, 1, 3, 343, 305, 2, 3, 343, - 305, 3, 3, 343, 305, 4, 3, 343, - 305, 307, 3, 344, 305, 1, 3, 344, - 305, 2, 3, 344, 305, 3, 3, 344, - 305, 4, 3, 344, 305, 307, 3, 345, - 305, 1, 3, 345, 305, 2, 3, 345, - 305, 3, 3, 345, 305, 4, 3, 345, - 305, 307, 3, 346, 305, 1, 3, 346, - 305, 2, 3, 346, 305, 3, 3, 346, - 305, 4, 3, 346, 305, 307, 3, 347, - 305, 1, 3, 347, 305, 2, 3, 347, - 305, 3, 3, 347, 305, 4, 3, 347, - 305, 307, 3, 348, 305, 1, 3, 348, - 305, 2, 3, 348, 305, 3, 3, 348, - 305, 4, 3, 348, 305, 307, 3, 349, - 305, 1, 3, 349, 305, 2, 3, 349, - 305, 3, 3, 349, 305, 4, 3, 349, - 305, 307, 3, 350, 305, 1, 3, 350, - 305, 2, 3, 350, 305, 3, 3, 350, - 305, 4, 3, 350, 305, 307, 3, 351, - 305, 1, 3, 351, 305, 2, 3, 351, - 305, 3, 3, 351, 305, 4, 3, 351, - 305, 307, 3, 352, 305, 1, 3, 352, - 305, 2, 3, 352, 305, 3, 3, 352, - 305, 4, 3, 352, 305, 307, 3, 353, - 305, 1, 3, 353, 305, 2, 3, 353, - 305, 3, 3, 353, 305, 4, 3, 353, - 305, 307, 3, 354, 305, 1, 3, 354, - 305, 2, 3, 354, 305, 3, 3, 354, - 305, 4, 3, 354, 305, 307, 3, 355, - 305, 1, 3, 355, 305, 2, 3, 355, - 305, 3, 3, 355, 305, 4, 3, 355, - 305, 307, 3, 356, 305, 1, 3, 356, - 305, 2, 3, 356, 305, 3, 3, 356, - 305, 4, 3, 356, 305, 307, 3, 357, - 305, 1, 3, 357, 305, 2, 3, 357, - 305, 3, 3, 357, 305, 4, 3, 357, - 305, 307, 3, 358, 305, 1, 3, 358, - 305, 2, 3, 358, 305, 3, 3, 358, - 305, 4, 3, 358, 305, 307, 3, 359, - 305, 1, 3, 359, 305, 2, 3, 359, - 305, 3, 3, 359, 305, 4, 3, 359, - 305, 307, 3, 360, 305, 1, 3, 360, - 305, 2, 3, 360, 305, 3, 3, 360, - 305, 4, 3, 360, 305, 307, 3, 361, - 1, 6, 4, 1, 7, 361, 32, 4, - 1, 307, 32, 7, 4, 4, 307, 7, - 32, 4, 4, 307, 32, 7, 4, 6, - 1, 7, 361, 4, 6, 1, 85, 0, - 4, 6, 72, 0, 1, 4, 6, 76, - 0, 1, 4, 6, 85, 0, 1, 4, - 7, 6, 361, 1, 4, 7, 72, 0, - 1, 4, 7, 361, 1, 6, 4, 7, - 361, 1, 32, 4, 18, 15, 21, 0, - 4, 20, 83, 7, 2, 4, 20, 83, - 7, 3, 4, 20, 83, 7, 4, 4, - 27, 1, 71, 0, 4, 27, 4, 71, - 0, 4, 27, 295, 29, 293, 4, 29, - 293, 289, 0, 4, 29, 297, 293, 1, - 4, 29, 297, 293, 2, 4, 29, 297, - 293, 3, 4, 29, 297, 293, 4, 4, - 31, 1, 7, 361, 4, 31, 1, 310, - 307, 4, 31, 1, 312, 305, 4, 31, - 2, 93, 7, 4, 31, 2, 310, 307, - 4, 31, 2, 312, 305, 4, 31, 3, - 93, 7, 4, 31, 3, 310, 307, 4, - 31, 3, 312, 305, 4, 31, 4, 93, - 7, 4, 31, 4, 310, 307, 4, 31, - 4, 312, 305, 4, 31, 312, 305, 7, - 4, 33, 38, 311, 8, 4, 33, 50, - 38, 311, 4, 33, 311, 306, 8, 4, - 37, 36, 30, 25, 4, 38, 311, 306, - 8, 4, 40, 37, 36, 41, 4, 40, - 42, 266, 1, 4, 40, 42, 266, 2, - 4, 40, 42, 266, 3, 4, 40, 42, - 266, 4, 4, 40, 42, 267, 1, 4, - 40, 42, 267, 2, 4, 40, 42, 267, - 3, 4, 40, 42, 267, 4, 4, 40, - 42, 268, 1, 4, 40, 42, 268, 2, - 4, 40, 42, 268, 3, 4, 40, 42, - 268, 4, 4, 40, 42, 269, 1, 4, - 40, 42, 269, 2, 4, 40, 42, 269, - 3, 4, 40, 42, 269, 4, 4, 40, - 42, 270, 1, 4, 40, 42, 270, 2, - 4, 40, 42, 270, 3, 4, 40, 42, - 270, 4, 4, 40, 42, 271, 1, 4, - 40, 42, 271, 2, 4, 40, 42, 271, - 3, 4, 40, 42, 271, 4, 4, 42, - 268, 276, 0, 4, 42, 269, 276, 0, - 4, 42, 270, 276, 0, 4, 42, 271, - 276, 0, 4, 43, 39, 37, 36, 4, - 44, 39, 37, 36, 4, 46, 145, 293, - 1, 4, 46, 145, 293, 2, 4, 46, - 145, 293, 3, 4, 46, 145, 293, 4, - 4, 46, 293, 289, 0, 4, 48, 305, - 1, 307, 4, 48, 305, 4, 307, 4, - 50, 38, 8, 73, 4, 56, 55, 37, - 36, 4, 66, 68, 61, 0, 4, 75, - 23, 13, 14, 4, 82, 23, 13, 14, - 4, 88, 32, 1, 7, 4, 88, 32, - 2, 7, 4, 88, 32, 3, 7, 4, - 88, 32, 4, 7, 4, 90, 91, 30, - 25, 4, 93, 1, 7, 361, 4, 96, - 156, 157, 306, 4, 97, 98, 1, 0, - 4, 97, 98, 4, 0, 4, 97, 98, - 29, 293, 4, 99, 100, 1, 0, 4, - 99, 100, 4, 0, 4, 99, 100, 29, - 293, 4, 105, 106, 1, 0, 4, 105, - 106, 4, 0, 4, 147, 145, 293, 1, - 4, 147, 145, 293, 2, 4, 147, 145, - 293, 3, 4, 147, 145, 293, 4, 4, - 147, 298, 37, 36, 4, 153, 145, 293, - 1, 4, 153, 145, 293, 2, 4, 153, - 145, 293, 3, 4, 153, 145, 293, 4, - 4, 208, 1, 259, 0, 4, 208, 4, - 259, 0, 4, 209, 1, 259, 0, 4, - 209, 4, 259, 0, 4, 210, 1, 259, - 0, 4, 210, 4, 259, 0, 4, 211, - 1, 259, 0, 4, 211, 4, 259, 0, - 4, 212, 1, 259, 0, 4, 212, 4, - 259, 0, 4, 213, 1, 259, 0, 4, - 213, 4, 259, 0, 4, 214, 1, 259, - 0, 4, 214, 4, 259, 0, 4, 215, - 1, 259, 0, 4, 215, 4, 259, 0, - 4, 216, 1, 259, 0, 4, 216, 4, - 259, 0, 4, 217, 1, 259, 0, 4, - 217, 4, 259, 0, 4, 218, 1, 259, - 0, 4, 218, 4, 259, 0, 4, 219, - 1, 259, 0, 4, 219, 4, 259, 0, - 4, 220, 1, 259, 0, 4, 220, 4, - 259, 0, 4, 221, 1, 259, 0, 4, - 221, 4, 259, 0, 4, 222, 1, 259, - 0, 4, 222, 4, 259, 0, 4, 223, - 1, 259, 0, 4, 223, 4, 259, 0, - 4, 224, 1, 259, 0, 4, 224, 4, - 259, 0, 4, 225, 1, 259, 0, 4, - 225, 4, 259, 0, 4, 226, 1, 259, - 0, 4, 226, 4, 259, 0, 4, 227, - 1, 259, 0, 4, 227, 4, 259, 0, - 4, 228, 1, 259, 0, 4, 228, 4, - 259, 0, 4, 229, 1, 259, 0, 4, - 229, 4, 259, 0, 4, 230, 1, 259, - 0, 4, 230, 4, 259, 0, 4, 231, - 1, 259, 0, 4, 231, 4, 259, 0, - 4, 232, 1, 259, 0, 4, 232, 4, - 259, 0, 4, 233, 1, 259, 0, 4, - 233, 4, 259, 0, 4, 234, 1, 259, - 0, 4, 234, 4, 259, 0, 4, 235, - 1, 259, 0, 4, 235, 4, 259, 0, - 4, 236, 1, 259, 0, 4, 236, 4, - 259, 0, 4, 237, 1, 259, 0, 4, - 237, 4, 259, 0, 4, 238, 1, 259, - 0, 4, 238, 4, 259, 0, 4, 239, - 1, 259, 0, 4, 239, 4, 259, 0, - 4, 240, 1, 259, 0, 4, 240, 4, - 259, 0, 4, 241, 1, 259, 0, 4, - 241, 4, 259, 0, 4, 242, 1, 259, - 0, 4, 242, 4, 259, 0, 4, 243, - 1, 259, 0, 4, 243, 4, 259, 0, - 4, 244, 1, 259, 0, 4, 244, 4, - 259, 0, 4, 245, 1, 259, 0, 4, - 245, 4, 259, 0, 4, 246, 1, 259, - 0, 4, 246, 4, 259, 0, 4, 247, - 1, 259, 0, 4, 247, 4, 259, 0, - 4, 248, 1, 259, 0, 4, 248, 4, - 259, 0, 4, 249, 1, 259, 0, 4, - 249, 4, 259, 0, 4, 250, 1, 259, - 0, 4, 250, 4, 259, 0, 4, 251, - 1, 259, 0, 4, 251, 4, 259, 0, - 4, 252, 1, 259, 0, 4, 252, 4, - 259, 0, 4, 253, 1, 259, 0, 4, - 253, 4, 259, 0, 4, 254, 1, 259, - 0, 4, 254, 4, 259, 0, 4, 255, - 1, 259, 0, 4, 255, 4, 259, 0, - 4, 256, 1, 259, 0, 4, 256, 4, - 259, 0, 4, 257, 1, 259, 0, 4, - 257, 4, 259, 0, 4, 258, 1, 259, - 0, 4, 258, 4, 259, 0, 4, 288, - 1, 289, 0, 4, 288, 4, 289, 0, - 4, 293, 1, 289, 0, 4, 293, 4, - 289, 0, 4, 294, 28, 26, 69, 4, - 307, 7, 361, 1, 4, 312, 305, 1, - 307, 4, 312, 305, 2, 7, 4, 312, - 305, 3, 7, 4, 312, 305, 4, 7, - 4, 312, 305, 4, 307, 4, 313, 305, - 1, 307, 4, 313, 305, 4, 307, 4, - 314, 305, 1, 307, 4, 314, 305, 4, - 307, 4, 315, 305, 1, 307, 4, 315, - 305, 4, 307, 4, 316, 305, 1, 307, - 4, 316, 305, 4, 307, 4, 317, 305, - 1, 307, 4, 317, 305, 4, 307, 4, - 318, 305, 1, 307, 4, 318, 305, 4, - 307, 4, 319, 305, 1, 307, 4, 319, - 305, 4, 307, 4, 320, 305, 1, 307, - 4, 320, 305, 4, 307, 4, 321, 305, - 1, 307, 4, 321, 305, 4, 307, 4, - 322, 305, 1, 307, 4, 322, 305, 4, - 307, 4, 323, 305, 1, 307, 4, 323, - 305, 4, 307, 4, 324, 305, 1, 307, - 4, 324, 305, 4, 307, 4, 325, 305, - 1, 307, 4, 325, 305, 4, 307, 4, - 326, 305, 1, 307, 4, 326, 305, 4, - 307, 4, 327, 305, 1, 307, 4, 327, - 305, 4, 307, 4, 328, 305, 1, 307, - 4, 328, 305, 4, 307, 4, 329, 305, - 1, 307, 4, 329, 305, 4, 307, 4, - 330, 305, 1, 307, 4, 330, 305, 4, - 307, 4, 331, 305, 1, 307, 4, 331, - 305, 4, 307, 4, 332, 305, 1, 307, - 4, 332, 305, 4, 307, 4, 333, 305, - 1, 307, 4, 333, 305, 4, 307, 4, - 334, 305, 1, 307, 4, 334, 305, 4, - 307, 4, 335, 305, 1, 307, 4, 335, - 305, 4, 307, 4, 336, 305, 1, 307, - 4, 336, 305, 4, 307, 4, 337, 305, - 1, 307, 4, 337, 305, 4, 307, 4, - 338, 305, 1, 307, 4, 338, 305, 4, - 307, 4, 339, 305, 1, 307, 4, 339, - 305, 4, 307, 4, 340, 305, 1, 307, - 4, 340, 305, 4, 307, 4, 341, 305, - 1, 307, 4, 341, 305, 4, 307, 4, - 342, 305, 1, 307, 4, 342, 305, 4, - 307, 4, 343, 305, 1, 307, 4, 343, - 305, 4, 307, 4, 344, 305, 1, 307, - 4, 344, 305, 4, 307, 4, 345, 305, - 1, 307, 4, 345, 305, 4, 307, 4, - 346, 305, 1, 307, 4, 346, 305, 4, - 307, 4, 347, 305, 1, 307, 4, 347, - 305, 4, 307, 4, 348, 305, 1, 307, - 4, 348, 305, 4, 307, 4, 349, 305, - 1, 307, 4, 349, 305, 4, 307, 4, - 350, 305, 1, 307, 4, 350, 305, 4, - 307, 4, 351, 305, 1, 307, 4, 351, - 305, 4, 307, 4, 352, 305, 1, 307, - 4, 352, 305, 4, 307, 4, 353, 305, - 1, 307, 4, 353, 305, 4, 307, 4, - 354, 305, 1, 307, 4, 354, 305, 4, - 307, 4, 355, 305, 1, 307, 4, 355, - 305, 4, 307, 4, 356, 305, 1, 307, - 4, 356, 305, 4, 307, 4, 357, 305, - 1, 307, 4, 357, 305, 4, 307, 4, - 358, 305, 1, 307, 4, 358, 305, 4, - 307, 4, 359, 305, 1, 307, 4, 359, - 305, 4, 307, 4, 360, 305, 1, 307, - 4, 360, 305, 4, 307, 5, 20, 7, - 76, 0, 1, 5, 27, 295, 29, 293, - 1, 5, 27, 295, 29, 293, 2, 5, - 27, 295, 29, 293, 3, 5, 27, 295, - 29, 293, 4, 5, 29, 293, 1, 289, - 0, 5, 29, 293, 4, 289, 0, 5, - 29, 297, 293, 289, 0, 5, 31, 1, - 93, 7, 361, 5, 31, 1, 312, 305, - 307, 5, 31, 2, 312, 305, 7, 5, - 31, 3, 312, 305, 7, 5, 31, 4, - 312, 305, 7, 5, 31, 4, 312, 305, - 307, 5, 33, 38, 311, 306, 8, 5, - 37, 36, 307, 30, 25, 5, 40, 42, - 268, 276, 0, 5, 40, 42, 269, 276, - 0, 5, 40, 42, 270, 276, 0, 5, - 40, 42, 271, 276, 0, 5, 42, 268, - 1, 276, 0, 5, 42, 268, 4, 276, - 0, 5, 42, 269, 1, 276, 0, 5, - 42, 269, 4, 276, 0, 5, 42, 270, - 1, 276, 0, 5, 42, 270, 4, 276, - 0, 5, 42, 271, 1, 276, 0, 5, - 42, 271, 4, 276, 0, 5, 46, 145, - 293, 289, 0, 5, 46, 293, 1, 289, - 0, 5, 46, 293, 4, 289, 0, 5, - 50, 38, 311, 306, 8, 5, 56, 7, - 72, 0, 1, 5, 80, 7, 85, 0, - 1, 5, 90, 91, 307, 30, 25, 5, - 97, 98, 29, 293, 1, 5, 97, 98, - 29, 293, 2, 5, 97, 98, 29, 293, - 3, 5, 97, 98, 29, 293, 4, 5, - 99, 100, 29, 293, 1, 5, 99, 100, - 29, 293, 2, 5, 99, 100, 29, 293, - 3, 5, 99, 100, 29, 293, 4, 5, - 147, 145, 293, 289, 0, 5, 153, 145, - 293, 289, 0, 5, 274, 43, 39, 37, - 36, 5, 312, 305, 1, 7, 361, 5, - 312, 305, 4, 307, 7, 5, 312, 305, - 307, 7, 4, 6, 20, 83, 7, 85, - 0, 1, 6, 27, 295, 29, 293, 289, - 0, 6, 29, 297, 293, 1, 289, 0, - 6, 29, 297, 293, 4, 289, 0, 6, - 31, 1, 312, 305, 7, 361, 6, 31, - 4, 312, 305, 307, 7, 6, 33, 50, - 38, 311, 306, 8, 6, 40, 42, 268, - 1, 276, 0, 6, 40, 42, 268, 4, - 276, 0, 6, 40, 42, 269, 1, 276, - 0, 6, 40, 42, 269, 4, 276, 0, - 6, 40, 42, 270, 1, 276, 0, 6, - 40, 42, 270, 4, 276, 0, 6, 40, - 42, 271, 1, 276, 0, 6, 40, 42, - 271, 4, 276, 0, 6, 46, 145, 293, - 1, 289, 0, 6, 46, 145, 293, 4, - 289, 0, 6, 97, 98, 29, 293, 289, - 0, 6, 99, 100, 29, 293, 289, 0, - 6, 147, 145, 293, 1, 289, 0, 6, - 147, 145, 293, 4, 289, 0, 6, 153, - 145, 293, 1, 289, 0, 6, 153, 145, - 293, 4, 289, 0, 6, 312, 305, 1, - 307, 7, 361, 6, 312, 305, 307, 7, - 361, 1, 7, 27, 295, 29, 293, 1, - 289, 0, 7, 27, 295, 29, 293, 4, - 289, 0, 7, 31, 1, 312, 305, 307, - 7, 361, 7, 97, 98, 29, 293, 1, - 289, 0, 7, 97, 98, 29, 293, 4, - 289, 0, 7, 99, 100, 29, 293, 1, - 289, 0, 7, 99, 100, 29, 293, 4, - 289, 0 + 258, 1, 259, 1, 260, 1, 261, 1, + 262, 1, 264, 1, 266, 1, 267, 1, + 268, 1, 269, 1, 276, 1, 277, 1, + 282, 1, 284, 1, 289, 1, 292, 1, + 294, 1, 295, 1, 296, 1, 297, 1, + 302, 1, 303, 1, 305, 1, 306, 1, + 307, 1, 308, 1, 309, 1, 310, 1, + 312, 1, 313, 1, 314, 1, 315, 1, + 317, 2, 0, 49, 2, 1, 0, 2, + 1, 313, 2, 1, 368, 2, 2, 5, + 2, 2, 7, 2, 3, 5, 2, 3, + 7, 2, 4, 0, 2, 4, 5, 2, + 4, 7, 2, 4, 313, 2, 5, 2, + 2, 5, 3, 2, 5, 4, 2, 5, + 7, 2, 6, 1, 2, 7, 1, 2, + 7, 2, 2, 7, 3, 2, 7, 4, + 2, 7, 5, 2, 7, 32, 2, 8, + 73, 2, 8, 77, 2, 9, 10, 2, + 11, 1, 2, 12, 1, 2, 13, 14, + 2, 16, 17, 2, 18, 14, 2, 18, + 15, 2, 19, 24, 2, 19, 77, 2, + 19, 84, 2, 20, 0, 2, 20, 7, + 2, 22, 0, 2, 23, 13, 2, 26, + 69, 2, 26, 108, 2, 26, 119, 2, + 27, 0, 2, 27, 1, 2, 27, 2, + 2, 27, 3, 2, 27, 4, 2, 27, + 265, 2, 28, 69, 2, 28, 113, 2, + 29, 297, 2, 29, 301, 2, 30, 25, + 2, 31, 1, 2, 31, 2, 2, 31, + 3, 2, 31, 4, 2, 31, 7, 2, + 31, 93, 2, 32, 7, 2, 33, 8, + 2, 33, 312, 2, 33, 317, 2, 34, + 25, 2, 35, 0, 2, 35, 1, 2, + 35, 2, 2, 35, 3, 2, 35, 4, + 2, 35, 265, 2, 35, 304, 2, 36, + 41, 2, 37, 36, 2, 38, 73, 2, + 38, 282, 2, 38, 294, 2, 38, 295, + 2, 38, 312, 2, 38, 317, 2, 42, + 270, 2, 42, 271, 2, 42, 272, 2, + 42, 273, 2, 42, 274, 2, 42, 275, + 2, 45, 0, 2, 45, 1, 2, 45, + 2, 2, 45, 3, 2, 45, 4, 2, + 46, 0, 2, 46, 1, 2, 46, 2, + 2, 46, 3, 2, 46, 4, 2, 46, + 265, 2, 46, 297, 2, 47, 0, 2, + 47, 1, 2, 47, 2, 2, 47, 3, + 2, 47, 4, 2, 48, 311, 2, 49, + 1, 2, 49, 2, 2, 49, 3, 2, + 49, 4, 2, 56, 7, 2, 56, 47, + 2, 56, 93, 2, 57, 58, 2, 59, + 1, 2, 59, 2, 2, 59, 3, 2, + 59, 4, 2, 60, 312, 2, 62, 63, + 2, 64, 65, 2, 66, 68, 2, 68, + 0, 2, 68, 61, 2, 71, 0, 2, + 71, 312, 2, 75, 23, 2, 79, 69, + 2, 80, 7, 2, 81, 8, 2, 82, + 23, 2, 84, 8, 2, 90, 91, 2, + 92, 1, 2, 92, 2, 2, 92, 3, + 2, 92, 4, 2, 93, 1, 2, 93, + 2, 2, 93, 3, 2, 93, 4, 2, + 93, 7, 2, 94, 95, 2, 96, 294, + 2, 96, 312, 2, 97, 98, 2, 99, + 100, 2, 101, 102, 2, 101, 103, 2, + 101, 104, 2, 105, 106, 2, 107, 312, + 2, 110, 312, 2, 111, 0, 2, 127, + 312, 2, 129, 0, 2, 130, 0, 2, + 131, 0, 2, 132, 0, 2, 133, 0, + 2, 134, 0, 2, 135, 0, 2, 136, + 0, 2, 137, 0, 2, 138, 0, 2, + 139, 0, 2, 140, 0, 2, 141, 0, + 2, 142, 0, 2, 143, 0, 2, 144, + 0, 2, 146, 0, 2, 147, 0, 2, + 148, 0, 2, 149, 0, 2, 150, 0, + 2, 151, 0, 2, 152, 0, 2, 153, + 0, 2, 154, 0, 2, 155, 0, 2, + 156, 312, 2, 157, 312, 2, 158, 312, + 2, 159, 1, 2, 159, 2, 2, 159, + 3, 2, 159, 4, 2, 160, 1, 2, + 160, 2, 2, 160, 3, 2, 160, 4, + 2, 161, 1, 2, 161, 2, 2, 161, + 3, 2, 161, 4, 2, 162, 1, 2, + 162, 2, 2, 162, 3, 2, 162, 4, + 2, 163, 1, 2, 163, 2, 2, 163, + 3, 2, 163, 4, 2, 164, 1, 2, + 164, 2, 2, 164, 3, 2, 164, 4, + 2, 165, 1, 2, 165, 2, 2, 165, + 3, 2, 165, 4, 2, 166, 1, 2, + 166, 2, 2, 166, 3, 2, 166, 4, + 2, 167, 1, 2, 167, 2, 2, 167, + 3, 2, 167, 4, 2, 168, 1, 2, + 168, 2, 2, 168, 3, 2, 168, 4, + 2, 169, 1, 2, 169, 2, 2, 169, + 3, 2, 169, 4, 2, 170, 1, 2, + 170, 2, 2, 170, 3, 2, 170, 4, + 2, 171, 1, 2, 171, 2, 2, 171, + 3, 2, 171, 4, 2, 172, 1, 2, + 172, 2, 2, 172, 3, 2, 172, 4, + 2, 173, 1, 2, 173, 2, 2, 173, + 3, 2, 173, 4, 2, 174, 1, 2, + 174, 2, 2, 174, 3, 2, 174, 4, + 2, 175, 1, 2, 175, 2, 2, 175, + 3, 2, 175, 4, 2, 176, 1, 2, + 176, 2, 2, 176, 3, 2, 176, 4, + 2, 177, 1, 2, 177, 2, 2, 177, + 3, 2, 177, 4, 2, 178, 1, 2, + 178, 2, 2, 178, 3, 2, 178, 4, + 2, 179, 1, 2, 179, 2, 2, 179, + 3, 2, 179, 4, 2, 180, 1, 2, + 180, 2, 2, 180, 3, 2, 180, 4, + 2, 181, 1, 2, 181, 2, 2, 181, + 3, 2, 181, 4, 2, 182, 1, 2, + 182, 2, 2, 182, 3, 2, 182, 4, + 2, 183, 1, 2, 183, 2, 2, 183, + 3, 2, 183, 4, 2, 184, 1, 2, + 184, 2, 2, 184, 3, 2, 184, 4, + 2, 185, 1, 2, 185, 2, 2, 185, + 3, 2, 185, 4, 2, 186, 1, 2, + 186, 2, 2, 186, 3, 2, 186, 4, + 2, 187, 1, 2, 187, 2, 2, 187, + 3, 2, 187, 4, 2, 188, 1, 2, + 188, 2, 2, 188, 3, 2, 188, 4, + 2, 189, 1, 2, 189, 2, 2, 189, + 3, 2, 189, 4, 2, 190, 1, 2, + 190, 2, 2, 190, 3, 2, 190, 4, + 2, 191, 1, 2, 191, 2, 2, 191, + 3, 2, 191, 4, 2, 192, 1, 2, + 192, 2, 2, 192, 3, 2, 192, 4, + 2, 193, 1, 2, 193, 2, 2, 193, + 3, 2, 193, 4, 2, 194, 1, 2, + 194, 2, 2, 194, 3, 2, 194, 4, + 2, 195, 1, 2, 195, 2, 2, 195, + 3, 2, 195, 4, 2, 196, 1, 2, + 196, 2, 2, 196, 3, 2, 196, 4, + 2, 197, 1, 2, 197, 2, 2, 197, + 3, 2, 197, 4, 2, 198, 1, 2, + 198, 2, 2, 198, 3, 2, 198, 4, + 2, 199, 1, 2, 199, 2, 2, 199, + 3, 2, 199, 4, 2, 200, 1, 2, + 200, 2, 2, 200, 3, 2, 200, 4, + 2, 201, 1, 2, 201, 2, 2, 201, + 3, 2, 201, 4, 2, 202, 1, 2, + 202, 2, 2, 202, 3, 2, 202, 4, + 2, 203, 1, 2, 203, 2, 2, 203, + 3, 2, 203, 4, 2, 204, 1, 2, + 204, 2, 2, 204, 3, 2, 204, 4, + 2, 205, 1, 2, 205, 2, 2, 205, + 3, 2, 205, 4, 2, 206, 1, 2, + 206, 2, 2, 206, 3, 2, 206, 4, + 2, 207, 1, 2, 207, 2, 2, 207, + 3, 2, 207, 4, 2, 208, 1, 2, + 208, 2, 2, 208, 3, 2, 208, 4, + 2, 209, 1, 2, 209, 2, 2, 209, + 3, 2, 209, 4, 2, 210, 1, 2, + 210, 2, 2, 210, 3, 2, 210, 4, + 2, 211, 1, 2, 211, 2, 2, 211, + 3, 2, 211, 4, 2, 212, 1, 2, + 212, 2, 2, 212, 3, 2, 212, 4, + 2, 213, 1, 2, 213, 2, 2, 213, + 3, 2, 213, 4, 2, 214, 1, 2, + 214, 2, 2, 214, 3, 2, 214, 4, + 2, 215, 1, 2, 215, 2, 2, 215, + 3, 2, 215, 4, 2, 216, 1, 2, + 216, 2, 2, 216, 3, 2, 216, 4, + 2, 217, 1, 2, 217, 2, 2, 217, + 3, 2, 217, 4, 2, 218, 1, 2, + 218, 2, 2, 218, 3, 2, 218, 4, + 2, 219, 1, 2, 219, 2, 2, 219, + 3, 2, 219, 4, 2, 220, 1, 2, + 220, 2, 2, 220, 3, 2, 220, 4, + 2, 221, 1, 2, 221, 2, 2, 221, + 3, 2, 221, 4, 2, 222, 1, 2, + 222, 2, 2, 222, 3, 2, 222, 4, + 2, 223, 1, 2, 223, 2, 2, 223, + 3, 2, 223, 4, 2, 224, 1, 2, + 224, 2, 2, 224, 3, 2, 224, 4, + 2, 225, 1, 2, 225, 2, 2, 225, + 3, 2, 225, 4, 2, 226, 1, 2, + 226, 2, 2, 226, 3, 2, 226, 4, + 2, 227, 1, 2, 227, 2, 2, 227, + 3, 2, 227, 4, 2, 228, 1, 2, + 228, 2, 2, 228, 3, 2, 228, 4, + 2, 229, 1, 2, 229, 2, 2, 229, + 3, 2, 229, 4, 2, 230, 1, 2, + 230, 2, 2, 230, 3, 2, 230, 4, + 2, 231, 1, 2, 231, 2, 2, 231, + 3, 2, 231, 4, 2, 232, 1, 2, + 232, 2, 2, 232, 3, 2, 232, 4, + 2, 233, 1, 2, 233, 2, 2, 233, + 3, 2, 233, 4, 2, 234, 1, 2, + 234, 2, 2, 234, 3, 2, 234, 4, + 2, 235, 1, 2, 235, 2, 2, 235, + 3, 2, 235, 4, 2, 236, 1, 2, + 236, 2, 2, 236, 3, 2, 236, 4, + 2, 237, 1, 2, 237, 2, 2, 237, + 3, 2, 237, 4, 2, 238, 1, 2, + 238, 2, 2, 238, 3, 2, 238, 4, + 2, 239, 1, 2, 239, 2, 2, 239, + 3, 2, 239, 4, 2, 240, 1, 2, + 240, 2, 2, 240, 3, 2, 240, 4, + 2, 241, 1, 2, 241, 2, 2, 241, + 3, 2, 241, 4, 2, 242, 1, 2, + 242, 2, 2, 242, 3, 2, 242, 4, + 2, 243, 1, 2, 243, 2, 2, 243, + 3, 2, 243, 4, 2, 244, 1, 2, + 244, 2, 2, 244, 3, 2, 244, 4, + 2, 245, 1, 2, 245, 2, 2, 245, + 3, 2, 245, 4, 2, 246, 1, 2, + 246, 2, 2, 246, 3, 2, 246, 4, + 2, 247, 1, 2, 247, 2, 2, 247, + 3, 2, 247, 4, 2, 248, 1, 2, + 248, 2, 2, 248, 3, 2, 248, 4, + 2, 249, 1, 2, 249, 2, 2, 249, + 3, 2, 249, 4, 2, 250, 1, 2, + 250, 2, 2, 250, 3, 2, 250, 4, + 2, 251, 1, 2, 251, 2, 2, 251, + 3, 2, 251, 4, 2, 252, 1, 2, + 252, 2, 2, 252, 3, 2, 252, 4, + 2, 253, 1, 2, 253, 2, 2, 253, + 3, 2, 253, 4, 2, 254, 1, 2, + 254, 2, 2, 254, 3, 2, 254, 4, + 2, 255, 1, 2, 255, 2, 2, 255, + 3, 2, 255, 4, 2, 256, 1, 2, + 256, 2, 2, 256, 3, 2, 256, 4, + 2, 257, 1, 2, 257, 2, 2, 257, + 3, 2, 257, 4, 2, 258, 1, 2, + 258, 2, 2, 258, 3, 2, 258, 4, + 2, 259, 1, 2, 259, 2, 2, 259, + 3, 2, 259, 4, 2, 260, 1, 2, + 260, 2, 2, 260, 3, 2, 260, 4, + 2, 261, 1, 2, 261, 2, 2, 261, + 3, 2, 261, 4, 2, 262, 1, 2, + 262, 2, 2, 262, 3, 2, 262, 4, + 2, 263, 0, 2, 266, 1, 2, 266, + 2, 2, 266, 3, 2, 266, 4, 2, + 267, 1, 2, 267, 2, 2, 267, 3, + 2, 267, 4, 2, 268, 1, 2, 268, + 2, 2, 268, 3, 2, 268, 4, 2, + 269, 1, 2, 269, 2, 2, 269, 3, + 2, 269, 4, 2, 276, 1, 2, 276, + 2, 2, 276, 3, 2, 276, 4, 2, + 277, 1, 2, 277, 2, 2, 277, 3, + 2, 277, 4, 2, 280, 0, 2, 281, + 312, 2, 283, 108, 2, 288, 108, 2, + 292, 1, 2, 292, 2, 2, 292, 3, + 2, 292, 4, 2, 293, 0, 2, 297, + 1, 2, 297, 2, 2, 297, 3, 2, + 297, 4, 2, 312, 8, 2, 313, 1, + 2, 313, 4, 2, 316, 313, 2, 317, + 8, 2, 317, 312, 2, 318, 311, 2, + 319, 311, 2, 320, 311, 2, 321, 311, + 2, 322, 311, 2, 323, 311, 2, 324, + 311, 2, 325, 311, 2, 326, 311, 2, + 327, 311, 2, 328, 311, 2, 329, 311, + 2, 330, 311, 2, 331, 311, 2, 332, + 311, 2, 333, 311, 2, 334, 311, 2, + 335, 311, 2, 336, 311, 2, 337, 311, + 2, 338, 311, 2, 339, 311, 2, 340, + 311, 2, 341, 311, 2, 342, 311, 2, + 343, 311, 2, 344, 311, 2, 345, 311, + 2, 346, 311, 2, 347, 311, 2, 348, + 311, 2, 349, 311, 2, 350, 311, 2, + 351, 311, 2, 352, 311, 2, 353, 311, + 2, 354, 311, 2, 355, 311, 2, 356, + 311, 2, 357, 311, 2, 358, 311, 2, + 359, 311, 2, 360, 311, 2, 361, 311, + 2, 362, 311, 2, 363, 311, 2, 364, + 311, 2, 365, 311, 2, 366, 311, 2, + 367, 311, 2, 368, 1, 3, 0, 49, + 1, 3, 0, 49, 2, 3, 0, 49, + 3, 3, 0, 49, 4, 3, 1, 7, + 368, 3, 1, 32, 7, 3, 1, 71, + 0, 3, 1, 111, 0, 3, 1, 263, + 0, 3, 1, 280, 0, 3, 1, 293, + 0, 3, 1, 313, 368, 3, 2, 7, + 32, 3, 2, 32, 7, 3, 3, 7, + 32, 3, 3, 32, 7, 3, 4, 7, + 32, 3, 4, 32, 7, 3, 4, 71, + 0, 3, 4, 111, 0, 3, 4, 263, + 0, 3, 4, 280, 0, 3, 4, 293, + 0, 3, 4, 313, 7, 3, 5, 7, + 2, 3, 5, 7, 3, 3, 5, 7, + 4, 3, 6, 1, 368, 3, 6, 368, + 1, 3, 7, 2, 5, 3, 7, 2, + 32, 3, 7, 3, 5, 3, 7, 3, + 32, 3, 7, 4, 5, 3, 7, 4, + 32, 3, 7, 368, 1, 3, 9, 11, + 1, 3, 15, 21, 0, 3, 20, 7, + 2, 3, 20, 7, 3, 3, 20, 7, + 4, 3, 20, 83, 7, 3, 23, 13, + 14, 3, 27, 71, 0, 3, 27, 299, + 29, 3, 28, 94, 95, 3, 29, 297, + 1, 3, 29, 297, 2, 3, 29, 297, + 3, 3, 29, 297, 4, 3, 29, 301, + 297, 3, 31, 1, 93, 3, 31, 2, + 7, 3, 31, 2, 93, 3, 31, 3, + 7, 3, 31, 3, 93, 3, 31, 4, + 7, 3, 31, 4, 93, 3, 31, 93, + 7, 3, 31, 316, 313, 3, 31, 318, + 311, 3, 32, 1, 7, 3, 32, 2, + 7, 3, 32, 3, 7, 3, 32, 4, + 7, 3, 33, 89, 8, 3, 33, 312, + 8, 3, 33, 317, 8, 3, 33, 317, + 312, 3, 35, 1, 0, 3, 35, 4, + 0, 3, 37, 36, 313, 3, 38, 156, + 312, 3, 38, 158, 312, 3, 38, 317, + 8, 3, 38, 317, 312, 3, 40, 42, + 270, 3, 40, 42, 271, 3, 40, 42, + 272, 3, 40, 42, 273, 3, 40, 42, + 274, 3, 40, 42, 275, 3, 42, 270, + 1, 3, 42, 270, 2, 3, 42, 270, + 3, 3, 42, 270, 4, 3, 42, 271, + 1, 3, 42, 271, 2, 3, 42, 271, + 3, 3, 42, 271, 4, 3, 42, 272, + 1, 3, 42, 272, 2, 3, 42, 272, + 3, 3, 42, 272, 4, 3, 42, 273, + 1, 3, 42, 273, 2, 3, 42, 273, + 3, 3, 42, 273, 4, 3, 42, 274, + 1, 3, 42, 274, 2, 3, 42, 274, + 3, 3, 42, 274, 4, 3, 42, 275, + 1, 3, 42, 275, 2, 3, 42, 275, + 3, 3, 42, 275, 4, 3, 46, 145, + 297, 3, 46, 297, 1, 3, 46, 297, + 2, 3, 46, 297, 3, 3, 46, 297, + 4, 3, 48, 311, 1, 3, 48, 311, + 2, 3, 48, 311, 3, 3, 48, 311, + 4, 3, 48, 311, 313, 3, 50, 38, + 73, 3, 50, 38, 312, 3, 50, 38, + 317, 3, 55, 37, 36, 3, 56, 7, + 2, 3, 56, 7, 3, 3, 56, 7, + 4, 3, 56, 47, 0, 3, 56, 47, + 1, 3, 56, 47, 2, 3, 56, 47, + 3, 3, 56, 47, 4, 3, 56, 93, + 1, 3, 56, 93, 2, 3, 56, 93, + 3, 3, 56, 93, 4, 3, 66, 68, + 0, 3, 66, 68, 61, 3, 67, 62, + 63, 3, 68, 61, 0, 3, 70, 26, + 69, 3, 72, 0, 1, 3, 75, 23, + 13, 3, 76, 0, 1, 3, 80, 2, + 7, 3, 80, 3, 7, 3, 80, 4, + 7, 3, 80, 7, 4, 3, 82, 23, + 13, 3, 85, 0, 1, 3, 88, 7, + 1, 3, 88, 7, 4, 3, 88, 30, + 25, 3, 88, 32, 7, 3, 90, 30, + 25, 3, 90, 91, 313, 3, 93, 2, + 7, 3, 93, 3, 7, 3, 93, 4, + 7, 3, 96, 107, 312, 3, 96, 156, + 312, 3, 97, 98, 0, 3, 97, 98, + 1, 3, 97, 98, 2, 3, 97, 98, + 3, 3, 97, 98, 4, 3, 97, 98, + 29, 3, 99, 100, 0, 3, 99, 100, + 1, 3, 99, 100, 2, 3, 99, 100, + 3, 3, 99, 100, 4, 3, 99, 100, + 29, 3, 105, 106, 0, 3, 105, 106, + 1, 3, 105, 106, 2, 3, 105, 106, + 3, 3, 105, 106, 4, 3, 110, 112, + 282, 3, 110, 291, 312, 3, 147, 145, + 297, 3, 153, 145, 297, 3, 156, 157, + 312, 3, 211, 263, 0, 3, 212, 263, + 0, 3, 213, 263, 0, 3, 214, 263, + 0, 3, 215, 263, 0, 3, 216, 263, + 0, 3, 217, 263, 0, 3, 218, 263, + 0, 3, 219, 263, 0, 3, 220, 263, + 0, 3, 221, 263, 0, 3, 222, 263, + 0, 3, 223, 263, 0, 3, 224, 263, + 0, 3, 225, 263, 0, 3, 226, 263, + 0, 3, 227, 263, 0, 3, 228, 263, + 0, 3, 229, 263, 0, 3, 230, 263, + 0, 3, 231, 263, 0, 3, 232, 263, + 0, 3, 233, 263, 0, 3, 234, 263, + 0, 3, 235, 263, 0, 3, 236, 263, + 0, 3, 237, 263, 0, 3, 238, 263, + 0, 3, 239, 263, 0, 3, 240, 263, + 0, 3, 241, 263, 0, 3, 242, 263, + 0, 3, 243, 263, 0, 3, 244, 263, + 0, 3, 245, 263, 0, 3, 246, 263, + 0, 3, 247, 263, 0, 3, 248, 263, + 0, 3, 249, 263, 0, 3, 250, 263, + 0, 3, 251, 263, 0, 3, 252, 263, + 0, 3, 253, 263, 0, 3, 254, 263, + 0, 3, 255, 263, 0, 3, 256, 263, + 0, 3, 257, 263, 0, 3, 258, 263, + 0, 3, 259, 263, 0, 3, 260, 263, + 0, 3, 261, 263, 0, 3, 262, 263, + 0, 3, 279, 37, 36, 3, 284, 285, + 0, 3, 284, 286, 0, 3, 287, 110, + 312, 3, 289, 290, 0, 3, 291, 110, + 312, 3, 292, 293, 0, 3, 297, 293, + 0, 3, 300, 28, 303, 3, 312, 8, + 89, 3, 313, 7, 1, 3, 313, 7, + 4, 3, 313, 30, 25, 3, 313, 368, + 1, 3, 315, 30, 25, 3, 317, 312, + 8, 3, 318, 311, 1, 3, 318, 311, + 2, 3, 318, 311, 3, 3, 318, 311, + 4, 3, 318, 311, 7, 3, 318, 311, + 313, 3, 319, 311, 1, 3, 319, 311, + 2, 3, 319, 311, 3, 3, 319, 311, + 4, 3, 319, 311, 313, 3, 320, 311, + 1, 3, 320, 311, 2, 3, 320, 311, + 3, 3, 320, 311, 4, 3, 320, 311, + 313, 3, 321, 311, 1, 3, 321, 311, + 2, 3, 321, 311, 3, 3, 321, 311, + 4, 3, 321, 311, 313, 3, 322, 311, + 1, 3, 322, 311, 2, 3, 322, 311, + 3, 3, 322, 311, 4, 3, 322, 311, + 313, 3, 323, 311, 1, 3, 323, 311, + 2, 3, 323, 311, 3, 3, 323, 311, + 4, 3, 323, 311, 313, 3, 324, 311, + 1, 3, 324, 311, 2, 3, 324, 311, + 3, 3, 324, 311, 4, 3, 324, 311, + 313, 3, 325, 311, 1, 3, 325, 311, + 2, 3, 325, 311, 3, 3, 325, 311, + 4, 3, 325, 311, 313, 3, 326, 311, + 1, 3, 326, 311, 2, 3, 326, 311, + 3, 3, 326, 311, 4, 3, 326, 311, + 313, 3, 327, 311, 1, 3, 327, 311, + 2, 3, 327, 311, 3, 3, 327, 311, + 4, 3, 327, 311, 313, 3, 328, 311, + 1, 3, 328, 311, 2, 3, 328, 311, + 3, 3, 328, 311, 4, 3, 328, 311, + 313, 3, 329, 311, 1, 3, 329, 311, + 2, 3, 329, 311, 3, 3, 329, 311, + 4, 3, 329, 311, 313, 3, 330, 311, + 1, 3, 330, 311, 2, 3, 330, 311, + 3, 3, 330, 311, 4, 3, 330, 311, + 313, 3, 331, 311, 1, 3, 331, 311, + 2, 3, 331, 311, 3, 3, 331, 311, + 4, 3, 331, 311, 313, 3, 332, 311, + 1, 3, 332, 311, 2, 3, 332, 311, + 3, 3, 332, 311, 4, 3, 332, 311, + 313, 3, 333, 311, 1, 3, 333, 311, + 2, 3, 333, 311, 3, 3, 333, 311, + 4, 3, 333, 311, 313, 3, 334, 311, + 1, 3, 334, 311, 2, 3, 334, 311, + 3, 3, 334, 311, 4, 3, 334, 311, + 313, 3, 335, 311, 1, 3, 335, 311, + 2, 3, 335, 311, 3, 3, 335, 311, + 4, 3, 335, 311, 313, 3, 336, 311, + 1, 3, 336, 311, 2, 3, 336, 311, + 3, 3, 336, 311, 4, 3, 336, 311, + 313, 3, 337, 311, 1, 3, 337, 311, + 2, 3, 337, 311, 3, 3, 337, 311, + 4, 3, 337, 311, 313, 3, 338, 311, + 1, 3, 338, 311, 2, 3, 338, 311, + 3, 3, 338, 311, 4, 3, 338, 311, + 313, 3, 339, 311, 1, 3, 339, 311, + 2, 3, 339, 311, 3, 3, 339, 311, + 4, 3, 339, 311, 313, 3, 340, 311, + 1, 3, 340, 311, 2, 3, 340, 311, + 3, 3, 340, 311, 4, 3, 340, 311, + 313, 3, 341, 311, 1, 3, 341, 311, + 2, 3, 341, 311, 3, 3, 341, 311, + 4, 3, 341, 311, 313, 3, 342, 311, + 1, 3, 342, 311, 2, 3, 342, 311, + 3, 3, 342, 311, 4, 3, 342, 311, + 313, 3, 343, 311, 1, 3, 343, 311, + 2, 3, 343, 311, 3, 3, 343, 311, + 4, 3, 343, 311, 313, 3, 344, 311, + 1, 3, 344, 311, 2, 3, 344, 311, + 3, 3, 344, 311, 4, 3, 344, 311, + 313, 3, 345, 311, 1, 3, 345, 311, + 2, 3, 345, 311, 3, 3, 345, 311, + 4, 3, 345, 311, 313, 3, 346, 311, + 1, 3, 346, 311, 2, 3, 346, 311, + 3, 3, 346, 311, 4, 3, 346, 311, + 313, 3, 347, 311, 1, 3, 347, 311, + 2, 3, 347, 311, 3, 3, 347, 311, + 4, 3, 347, 311, 313, 3, 348, 311, + 1, 3, 348, 311, 2, 3, 348, 311, + 3, 3, 348, 311, 4, 3, 348, 311, + 313, 3, 349, 311, 1, 3, 349, 311, + 2, 3, 349, 311, 3, 3, 349, 311, + 4, 3, 349, 311, 313, 3, 350, 311, + 1, 3, 350, 311, 2, 3, 350, 311, + 3, 3, 350, 311, 4, 3, 350, 311, + 313, 3, 351, 311, 1, 3, 351, 311, + 2, 3, 351, 311, 3, 3, 351, 311, + 4, 3, 351, 311, 313, 3, 352, 311, + 1, 3, 352, 311, 2, 3, 352, 311, + 3, 3, 352, 311, 4, 3, 352, 311, + 313, 3, 353, 311, 1, 3, 353, 311, + 2, 3, 353, 311, 3, 3, 353, 311, + 4, 3, 353, 311, 313, 3, 354, 311, + 1, 3, 354, 311, 2, 3, 354, 311, + 3, 3, 354, 311, 4, 3, 354, 311, + 313, 3, 355, 311, 1, 3, 355, 311, + 2, 3, 355, 311, 3, 3, 355, 311, + 4, 3, 355, 311, 313, 3, 356, 311, + 1, 3, 356, 311, 2, 3, 356, 311, + 3, 3, 356, 311, 4, 3, 356, 311, + 313, 3, 357, 311, 1, 3, 357, 311, + 2, 3, 357, 311, 3, 3, 357, 311, + 4, 3, 357, 311, 313, 3, 358, 311, + 1, 3, 358, 311, 2, 3, 358, 311, + 3, 3, 358, 311, 4, 3, 358, 311, + 313, 3, 359, 311, 1, 3, 359, 311, + 2, 3, 359, 311, 3, 3, 359, 311, + 4, 3, 359, 311, 313, 3, 360, 311, + 1, 3, 360, 311, 2, 3, 360, 311, + 3, 3, 360, 311, 4, 3, 360, 311, + 313, 3, 361, 311, 1, 3, 361, 311, + 2, 3, 361, 311, 3, 3, 361, 311, + 4, 3, 361, 311, 313, 3, 362, 311, + 1, 3, 362, 311, 2, 3, 362, 311, + 3, 3, 362, 311, 4, 3, 362, 311, + 313, 3, 363, 311, 1, 3, 363, 311, + 2, 3, 363, 311, 3, 3, 363, 311, + 4, 3, 363, 311, 313, 3, 364, 311, + 1, 3, 364, 311, 2, 3, 364, 311, + 3, 3, 364, 311, 4, 3, 364, 311, + 313, 3, 365, 311, 1, 3, 365, 311, + 2, 3, 365, 311, 3, 3, 365, 311, + 4, 3, 365, 311, 313, 3, 366, 311, + 1, 3, 366, 311, 2, 3, 366, 311, + 3, 3, 366, 311, 4, 3, 366, 311, + 313, 3, 367, 311, 1, 3, 367, 311, + 2, 3, 367, 311, 3, 3, 367, 311, + 4, 3, 367, 311, 313, 3, 368, 1, + 6, 4, 1, 7, 368, 32, 4, 1, + 313, 32, 7, 4, 4, 313, 7, 32, + 4, 4, 313, 32, 7, 4, 6, 1, + 7, 368, 4, 6, 1, 85, 0, 4, + 6, 72, 0, 1, 4, 6, 76, 0, + 1, 4, 6, 85, 0, 1, 4, 7, + 6, 368, 1, 4, 7, 72, 0, 1, + 4, 7, 368, 1, 6, 4, 7, 368, + 1, 32, 4, 18, 15, 21, 0, 4, + 20, 83, 7, 2, 4, 20, 83, 7, + 3, 4, 20, 83, 7, 4, 4, 27, + 1, 71, 0, 4, 27, 4, 71, 0, + 4, 27, 299, 29, 297, 4, 29, 297, + 293, 0, 4, 29, 301, 297, 1, 4, + 29, 301, 297, 2, 4, 29, 301, 297, + 3, 4, 29, 301, 297, 4, 4, 31, + 1, 7, 368, 4, 31, 1, 316, 313, + 4, 31, 1, 318, 311, 4, 31, 2, + 93, 7, 4, 31, 2, 316, 313, 4, + 31, 2, 318, 311, 4, 31, 3, 93, + 7, 4, 31, 3, 316, 313, 4, 31, + 3, 318, 311, 4, 31, 4, 93, 7, + 4, 31, 4, 316, 313, 4, 31, 4, + 318, 311, 4, 31, 318, 311, 7, 4, + 33, 38, 317, 8, 4, 33, 50, 38, + 317, 4, 33, 317, 312, 8, 4, 37, + 36, 30, 25, 4, 38, 317, 312, 8, + 4, 40, 37, 36, 41, 4, 40, 42, + 270, 1, 4, 40, 42, 270, 2, 4, + 40, 42, 270, 3, 4, 40, 42, 270, + 4, 4, 40, 42, 271, 1, 4, 40, + 42, 271, 2, 4, 40, 42, 271, 3, + 4, 40, 42, 271, 4, 4, 40, 42, + 272, 1, 4, 40, 42, 272, 2, 4, + 40, 42, 272, 3, 4, 40, 42, 272, + 4, 4, 40, 42, 273, 1, 4, 40, + 42, 273, 2, 4, 40, 42, 273, 3, + 4, 40, 42, 273, 4, 4, 40, 42, + 274, 1, 4, 40, 42, 274, 2, 4, + 40, 42, 274, 3, 4, 40, 42, 274, + 4, 4, 40, 42, 275, 1, 4, 40, + 42, 275, 2, 4, 40, 42, 275, 3, + 4, 40, 42, 275, 4, 4, 42, 272, + 280, 0, 4, 42, 273, 280, 0, 4, + 42, 274, 280, 0, 4, 42, 275, 280, + 0, 4, 43, 39, 37, 36, 4, 44, + 39, 37, 36, 4, 46, 145, 297, 1, + 4, 46, 145, 297, 2, 4, 46, 145, + 297, 3, 4, 46, 145, 297, 4, 4, + 46, 297, 293, 0, 4, 48, 311, 1, + 313, 4, 48, 311, 4, 313, 4, 50, + 38, 8, 73, 4, 56, 55, 37, 36, + 4, 66, 68, 61, 0, 4, 75, 23, + 13, 14, 4, 82, 23, 13, 14, 4, + 88, 32, 1, 7, 4, 88, 32, 2, + 7, 4, 88, 32, 3, 7, 4, 88, + 32, 4, 7, 4, 90, 91, 30, 25, + 4, 93, 1, 7, 368, 4, 96, 156, + 157, 312, 4, 97, 98, 1, 0, 4, + 97, 98, 4, 0, 4, 97, 98, 29, + 297, 4, 99, 100, 1, 0, 4, 99, + 100, 4, 0, 4, 99, 100, 29, 297, + 4, 105, 106, 1, 0, 4, 105, 106, + 4, 0, 4, 147, 145, 297, 1, 4, + 147, 145, 297, 2, 4, 147, 145, 297, + 3, 4, 147, 145, 297, 4, 4, 147, + 302, 37, 36, 4, 153, 145, 297, 1, + 4, 153, 145, 297, 2, 4, 153, 145, + 297, 3, 4, 153, 145, 297, 4, 4, + 211, 1, 263, 0, 4, 211, 4, 263, + 0, 4, 212, 1, 263, 0, 4, 212, + 4, 263, 0, 4, 213, 1, 263, 0, + 4, 213, 4, 263, 0, 4, 214, 1, + 263, 0, 4, 214, 4, 263, 0, 4, + 215, 1, 263, 0, 4, 215, 4, 263, + 0, 4, 216, 1, 263, 0, 4, 216, + 4, 263, 0, 4, 217, 1, 263, 0, + 4, 217, 4, 263, 0, 4, 218, 1, + 263, 0, 4, 218, 4, 263, 0, 4, + 219, 1, 263, 0, 4, 219, 4, 263, + 0, 4, 220, 1, 263, 0, 4, 220, + 4, 263, 0, 4, 221, 1, 263, 0, + 4, 221, 4, 263, 0, 4, 222, 1, + 263, 0, 4, 222, 4, 263, 0, 4, + 223, 1, 263, 0, 4, 223, 4, 263, + 0, 4, 224, 1, 263, 0, 4, 224, + 4, 263, 0, 4, 225, 1, 263, 0, + 4, 225, 4, 263, 0, 4, 226, 1, + 263, 0, 4, 226, 4, 263, 0, 4, + 227, 1, 263, 0, 4, 227, 4, 263, + 0, 4, 228, 1, 263, 0, 4, 228, + 4, 263, 0, 4, 229, 1, 263, 0, + 4, 229, 4, 263, 0, 4, 230, 1, + 263, 0, 4, 230, 4, 263, 0, 4, + 231, 1, 263, 0, 4, 231, 4, 263, + 0, 4, 232, 1, 263, 0, 4, 232, + 4, 263, 0, 4, 233, 1, 263, 0, + 4, 233, 4, 263, 0, 4, 234, 1, + 263, 0, 4, 234, 4, 263, 0, 4, + 235, 1, 263, 0, 4, 235, 4, 263, + 0, 4, 236, 1, 263, 0, 4, 236, + 4, 263, 0, 4, 237, 1, 263, 0, + 4, 237, 4, 263, 0, 4, 238, 1, + 263, 0, 4, 238, 4, 263, 0, 4, + 239, 1, 263, 0, 4, 239, 4, 263, + 0, 4, 240, 1, 263, 0, 4, 240, + 4, 263, 0, 4, 241, 1, 263, 0, + 4, 241, 4, 263, 0, 4, 242, 1, + 263, 0, 4, 242, 4, 263, 0, 4, + 243, 1, 263, 0, 4, 243, 4, 263, + 0, 4, 244, 1, 263, 0, 4, 244, + 4, 263, 0, 4, 245, 1, 263, 0, + 4, 245, 4, 263, 0, 4, 246, 1, + 263, 0, 4, 246, 4, 263, 0, 4, + 247, 1, 263, 0, 4, 247, 4, 263, + 0, 4, 248, 1, 263, 0, 4, 248, + 4, 263, 0, 4, 249, 1, 263, 0, + 4, 249, 4, 263, 0, 4, 250, 1, + 263, 0, 4, 250, 4, 263, 0, 4, + 251, 1, 263, 0, 4, 251, 4, 263, + 0, 4, 252, 1, 263, 0, 4, 252, + 4, 263, 0, 4, 253, 1, 263, 0, + 4, 253, 4, 263, 0, 4, 254, 1, + 263, 0, 4, 254, 4, 263, 0, 4, + 255, 1, 263, 0, 4, 255, 4, 263, + 0, 4, 256, 1, 263, 0, 4, 256, + 4, 263, 0, 4, 257, 1, 263, 0, + 4, 257, 4, 263, 0, 4, 258, 1, + 263, 0, 4, 258, 4, 263, 0, 4, + 259, 1, 263, 0, 4, 259, 4, 263, + 0, 4, 260, 1, 263, 0, 4, 260, + 4, 263, 0, 4, 261, 1, 263, 0, + 4, 261, 4, 263, 0, 4, 262, 1, + 263, 0, 4, 262, 4, 263, 0, 4, + 292, 1, 293, 0, 4, 292, 4, 293, + 0, 4, 297, 1, 293, 0, 4, 297, + 4, 293, 0, 4, 298, 28, 26, 69, + 4, 313, 7, 368, 1, 4, 318, 311, + 1, 313, 4, 318, 311, 2, 7, 4, + 318, 311, 3, 7, 4, 318, 311, 4, + 7, 4, 318, 311, 4, 313, 4, 319, + 311, 1, 313, 4, 319, 311, 4, 313, + 4, 320, 311, 1, 313, 4, 320, 311, + 4, 313, 4, 321, 311, 1, 313, 4, + 321, 311, 4, 313, 4, 322, 311, 1, + 313, 4, 322, 311, 4, 313, 4, 323, + 311, 1, 313, 4, 323, 311, 4, 313, + 4, 324, 311, 1, 313, 4, 324, 311, + 4, 313, 4, 325, 311, 1, 313, 4, + 325, 311, 4, 313, 4, 326, 311, 1, + 313, 4, 326, 311, 4, 313, 4, 327, + 311, 1, 313, 4, 327, 311, 4, 313, + 4, 328, 311, 1, 313, 4, 328, 311, + 4, 313, 4, 329, 311, 1, 313, 4, + 329, 311, 4, 313, 4, 330, 311, 1, + 313, 4, 330, 311, 4, 313, 4, 331, + 311, 1, 313, 4, 331, 311, 4, 313, + 4, 332, 311, 1, 313, 4, 332, 311, + 4, 313, 4, 333, 311, 1, 313, 4, + 333, 311, 4, 313, 4, 334, 311, 1, + 313, 4, 334, 311, 4, 313, 4, 335, + 311, 1, 313, 4, 335, 311, 4, 313, + 4, 336, 311, 1, 313, 4, 336, 311, + 4, 313, 4, 337, 311, 1, 313, 4, + 337, 311, 4, 313, 4, 338, 311, 1, + 313, 4, 338, 311, 4, 313, 4, 339, + 311, 1, 313, 4, 339, 311, 4, 313, + 4, 340, 311, 1, 313, 4, 340, 311, + 4, 313, 4, 341, 311, 1, 313, 4, + 341, 311, 4, 313, 4, 342, 311, 1, + 313, 4, 342, 311, 4, 313, 4, 343, + 311, 1, 313, 4, 343, 311, 4, 313, + 4, 344, 311, 1, 313, 4, 344, 311, + 4, 313, 4, 345, 311, 1, 313, 4, + 345, 311, 4, 313, 4, 346, 311, 1, + 313, 4, 346, 311, 4, 313, 4, 347, + 311, 1, 313, 4, 347, 311, 4, 313, + 4, 348, 311, 1, 313, 4, 348, 311, + 4, 313, 4, 349, 311, 1, 313, 4, + 349, 311, 4, 313, 4, 350, 311, 1, + 313, 4, 350, 311, 4, 313, 4, 351, + 311, 1, 313, 4, 351, 311, 4, 313, + 4, 352, 311, 1, 313, 4, 352, 311, + 4, 313, 4, 353, 311, 1, 313, 4, + 353, 311, 4, 313, 4, 354, 311, 1, + 313, 4, 354, 311, 4, 313, 4, 355, + 311, 1, 313, 4, 355, 311, 4, 313, + 4, 356, 311, 1, 313, 4, 356, 311, + 4, 313, 4, 357, 311, 1, 313, 4, + 357, 311, 4, 313, 4, 358, 311, 1, + 313, 4, 358, 311, 4, 313, 4, 359, + 311, 1, 313, 4, 359, 311, 4, 313, + 4, 360, 311, 1, 313, 4, 360, 311, + 4, 313, 4, 361, 311, 1, 313, 4, + 361, 311, 4, 313, 4, 362, 311, 1, + 313, 4, 362, 311, 4, 313, 4, 363, + 311, 1, 313, 4, 363, 311, 4, 313, + 4, 364, 311, 1, 313, 4, 364, 311, + 4, 313, 4, 365, 311, 1, 313, 4, + 365, 311, 4, 313, 4, 366, 311, 1, + 313, 4, 366, 311, 4, 313, 4, 367, + 311, 1, 313, 4, 367, 311, 4, 313, + 5, 20, 7, 76, 0, 1, 5, 27, + 299, 29, 297, 1, 5, 27, 299, 29, + 297, 2, 5, 27, 299, 29, 297, 3, + 5, 27, 299, 29, 297, 4, 5, 29, + 297, 1, 293, 0, 5, 29, 297, 4, + 293, 0, 5, 29, 301, 297, 293, 0, + 5, 31, 1, 93, 7, 368, 5, 31, + 1, 318, 311, 313, 5, 31, 2, 318, + 311, 7, 5, 31, 3, 318, 311, 7, + 5, 31, 4, 318, 311, 7, 5, 31, + 4, 318, 311, 313, 5, 33, 38, 317, + 312, 8, 5, 37, 36, 313, 30, 25, + 5, 40, 42, 272, 280, 0, 5, 40, + 42, 273, 280, 0, 5, 40, 42, 274, + 280, 0, 5, 40, 42, 275, 280, 0, + 5, 42, 272, 1, 280, 0, 5, 42, + 272, 4, 280, 0, 5, 42, 273, 1, + 280, 0, 5, 42, 273, 4, 280, 0, + 5, 42, 274, 1, 280, 0, 5, 42, + 274, 4, 280, 0, 5, 42, 275, 1, + 280, 0, 5, 42, 275, 4, 280, 0, + 5, 46, 145, 297, 293, 0, 5, 46, + 297, 1, 293, 0, 5, 46, 297, 4, + 293, 0, 5, 50, 38, 317, 312, 8, + 5, 56, 7, 72, 0, 1, 5, 80, + 7, 85, 0, 1, 5, 90, 91, 313, + 30, 25, 5, 97, 98, 29, 297, 1, + 5, 97, 98, 29, 297, 2, 5, 97, + 98, 29, 297, 3, 5, 97, 98, 29, + 297, 4, 5, 99, 100, 29, 297, 1, + 5, 99, 100, 29, 297, 2, 5, 99, + 100, 29, 297, 3, 5, 99, 100, 29, + 297, 4, 5, 147, 145, 297, 293, 0, + 5, 153, 145, 297, 293, 0, 5, 278, + 43, 39, 37, 36, 5, 318, 311, 1, + 7, 368, 5, 318, 311, 4, 313, 7, + 5, 318, 311, 313, 7, 4, 6, 20, + 83, 7, 85, 0, 1, 6, 27, 299, + 29, 297, 293, 0, 6, 29, 301, 297, + 1, 293, 0, 6, 29, 301, 297, 4, + 293, 0, 6, 31, 1, 318, 311, 7, + 368, 6, 31, 4, 318, 311, 313, 7, + 6, 33, 50, 38, 317, 312, 8, 6, + 40, 42, 272, 1, 280, 0, 6, 40, + 42, 272, 4, 280, 0, 6, 40, 42, + 273, 1, 280, 0, 6, 40, 42, 273, + 4, 280, 0, 6, 40, 42, 274, 1, + 280, 0, 6, 40, 42, 274, 4, 280, + 0, 6, 40, 42, 275, 1, 280, 0, + 6, 40, 42, 275, 4, 280, 0, 6, + 46, 145, 297, 1, 293, 0, 6, 46, + 145, 297, 4, 293, 0, 6, 97, 98, + 29, 297, 293, 0, 6, 99, 100, 29, + 297, 293, 0, 6, 147, 145, 297, 1, + 293, 0, 6, 147, 145, 297, 4, 293, + 0, 6, 153, 145, 297, 1, 293, 0, + 6, 153, 145, 297, 4, 293, 0, 6, + 318, 311, 1, 313, 7, 368, 6, 318, + 311, 313, 7, 368, 1, 7, 27, 299, + 29, 297, 1, 293, 0, 7, 27, 299, + 29, 297, 4, 293, 0, 7, 31, 1, + 318, 311, 313, 7, 368, 7, 97, 98, + 29, 297, 1, 293, 0, 7, 97, 98, + 29, 297, 4, 293, 0, 7, 99, 100, + 29, 297, 1, 293, 0, 7, 99, 100, + 29, 297, 4, 293, 0 }; static const short _zone_scanner_cond_offsets[] = { @@ -909,192 +922,197 @@ static const short _zone_scanner_cond_offsets[] = { 48, 48, 48, 48, 50, 50, 50, 50, 52, 52, 52, 52, 52, 54, 54, 54, 54, 56, 56, 56, 56, 58, 60, 60, - 60, 60, 60, 62, 62, 64, 64, 64, - 64, 64, 66, 66, 66, 66, 68, 68, - 70, 72, 72, 72, 72, 72, 72, 72, - 72, 74, 74, 74, 76, 78, 78, 78, - 80, 80, 82, 82, 84, 86, 86, 86, - 86, 86, 88, 90, 90, 90, 90, 90, - 92, 92, 94, 96, 96, 98, 100, 100, - 100, 100, 100, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 104, 104, 104, - 106, 106, 108, 108, 108, 108, 110, 112, - 112, 112, 112, 112, 112, 114, 114, 116, - 116, 118, 118, 120, 120, 120, 120, 122, - 122, 122, 124, 124, 124, 124, 126, 126, - 128, 128, 128, 128, 130, 130, 130, 132, - 132, 132, 132, 132, 132, 134, 134, 134, - 134, 134, 134, 136, 139, 141, 141, 143, - 145, 147, 149, 149, 151, 154, 154, 154, - 154, 154, 154, 154, 154, 154, 154, 156, - 158, 161, 163, 165, 168, 170, 170, 172, - 175, 177, 179, 181, 183, 185, 188, 190, - 192, 194, 196, 198, 200, 202, 204, 206, - 208, 210, 212, 214, 216, 218, 220, 222, - 224, 226, 228, 231, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 235, 237, - 239, 242, 244, 246, 248, 250, 252, 254, - 256, 258, 260, 262, 264, 266, 268, 270, - 272, 274, 276, 278, 280, 282, 284, 289, - 294, 299, 304, 304, 304, 306, 306, 306, - 306, 308, 308, 310, 313, 315, 317, 322, - 327, 332, 337, 340, 342, 347, 352, 354, - 356, 358, 360, 362, 364, 366, 368, 370, - 372, 374, 376, 378, 380, 382, 384, 386, - 389, 392, 394, 397, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 400, 401, - 401, 401, 401, 401, 402, 404, 406, 408, - 410, 410, 412, 412, 414, 417, 419, 421, - 421, 423, 425, 425, 425, 425, 425, 425, - 427, 430, 432, 434, 436, 438, 438, 440, - 442, 442, 442, 442, 442, 442, 444, 447, - 449, 452, 455, 455, 455, 455, 455, 457, - 460, 460, 462, 464, 466, 466, 466, 468, - 471, 471, 471, 473, 473, 473, 473, 473, - 473, 475, 477, 477, 477, 479, 479, 479, - 479, 481, 481, 481, 481, 483, 483, 483, - 483, 483, 485, 485, 485, 485, 487, 487, - 487, 487, 489, 491, 491, 491, 491, 491, - 493, 493, 495, 495, 495, 495, 495, 497, - 497, 497, 497, 499, 499, 499, 499, 499, - 499, 499, 499, 501, 501, 501, 503, 505, - 505, 505, 507, 507, 509, 509, 511, 513, - 513, 513, 513, 513, 515, 517, 517, 517, - 517, 517, 519, 519, 521, 523, 523, 525, - 527, 527, 527, 527, 527, 529, 529, 529, - 529, 529, 529, 529, 529, 529, 529, 531, - 531, 531, 533, 533, 535, 535, 535, 535, - 537, 539, 539, 539, 539, 539, 539, 541, - 541, 543, 543, 545, 545, 547, 547, 547, - 547, 549, 549, 549, 551, 551, 551, 551, + 60, 62, 62, 62, 62, 62, 64, 64, + 66, 66, 66, 66, 66, 68, 68, 68, + 68, 70, 70, 72, 74, 74, 74, 74, + 74, 74, 74, 74, 76, 76, 76, 78, + 80, 80, 80, 82, 82, 84, 84, 86, + 88, 88, 88, 88, 88, 90, 92, 92, + 92, 92, 92, 94, 94, 96, 98, 98, + 100, 102, 102, 102, 102, 102, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, + 106, 106, 106, 108, 108, 110, 110, 110, + 110, 112, 114, 114, 114, 114, 114, 114, + 116, 116, 118, 118, 120, 120, 122, 122, + 122, 122, 124, 124, 124, 126, 126, 126, + 126, 128, 128, 130, 130, 130, 130, 132, + 132, 132, 134, 134, 134, 134, 134, 134, + 136, 136, 136, 136, 136, 136, 138, 141, + 143, 143, 145, 147, 149, 151, 151, 153, + 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 158, 160, 163, 165, 167, 170, + 172, 172, 174, 177, 179, 181, 183, 185, + 187, 190, 192, 194, 196, 198, 200, 202, + 204, 206, 208, 210, 212, 214, 216, 218, + 220, 222, 224, 226, 228, 230, 233, 235, + 235, 235, 235, 235, 235, 235, 235, 235, + 235, 237, 239, 241, 244, 246, 248, 250, + 252, 254, 256, 258, 260, 262, 264, 266, + 268, 270, 272, 274, 276, 278, 280, 282, + 284, 286, 291, 296, 301, 306, 306, 306, + 308, 308, 308, 308, 310, 310, 312, 315, + 317, 319, 324, 329, 334, 339, 342, 344, + 349, 354, 356, 358, 360, 362, 364, 366, + 368, 370, 372, 374, 376, 378, 380, 382, + 384, 386, 388, 391, 394, 396, 399, 401, + 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, + 401, 402, 403, 403, 403, 403, 403, 404, + 406, 408, 410, 412, 412, 414, 414, 416, + 419, 421, 423, 423, 425, 427, 427, 427, + 427, 427, 427, 429, 432, 434, 436, 438, + 440, 440, 442, 444, 444, 444, 444, 444, + 444, 446, 449, 451, 454, 457, 457, 457, + 457, 457, 459, 462, 462, 464, 466, 468, + 468, 468, 470, 473, 473, 473, 475, 475, + 475, 475, 475, 475, 477, 479, 479, 479, + 481, 481, 481, 481, 483, 483, 483, 483, + 485, 485, 485, 485, 485, 487, 487, 487, + 487, 489, 489, 489, 489, 491, 493, 493, + 493, 495, 495, 495, 495, 495, 497, 497, + 499, 499, 499, 499, 499, 501, 501, 501, + 501, 503, 503, 503, 503, 503, 503, 503, + 503, 505, 505, 505, 507, 509, 509, 509, + 511, 511, 513, 513, 515, 517, 517, 517, + 517, 517, 519, 521, 521, 521, 521, 521, + 523, 523, 525, 527, 527, 529, 531, 531, + 531, 531, 531, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 535, 535, 535, + 537, 537, 539, 539, 539, 539, 541, 543, + 543, 543, 543, 543, 543, 545, 545, 547, + 547, 549, 549, 551, 551, 551, 551, 553, 553, 553, 555, 555, 555, 555, 557, 557, - 557, 559, 559, 559, 559, 559, 559, 561, - 561, 561, 561, 561, 561, 563, 563, 563, - 563, 565, 565, 567, 569, 571, 573, 575, - 575, 577, 580, 583, 586, 588, 590, 592, - 594, 594, 596, 599, 602, 604, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 609, - 611, 611, 611, 611, 611, 611, 613, 616, - 616, 616, 616, 616, 616, 616, 616, 616, - 618, 620, 620, 622, 622, 622, 622, 622, - 622, 622, 622, 622, 622, 622, 622, 622, - 622, 624, 624, 624, 624, 624, 624, 624, - 624, 624, 624, 624, 624, 624, 624, 626, - 626, 626, 626, 626, 626, 626, 626, 626, - 626, 626, 628, 628, 628, 628, 628, 630, + 559, 559, 559, 559, 561, 561, 561, 563, + 563, 563, 563, 563, 563, 565, 565, 565, + 565, 565, 565, 567, 567, 567, 567, 569, + 569, 571, 573, 575, 577, 579, 579, 581, + 584, 587, 590, 592, 594, 596, 598, 598, + 600, 603, 606, 608, 611, 611, 611, 611, + 611, 611, 611, 611, 611, 611, 611, 611, + 611, 611, 611, 611, 611, 611, 611, 611, + 611, 611, 611, 611, 611, 611, 611, 611, + 611, 611, 611, 611, 611, 611, 611, 611, + 611, 611, 611, 611, 611, 611, 611, 611, + 611, 611, 611, 611, 611, 611, 611, 611, + 611, 611, 611, 611, 611, 613, 615, 615, + 615, 615, 615, 615, 617, 620, 620, 620, + 620, 620, 620, 620, 620, 620, 622, 624, + 624, 626, 626, 626, 626, 626, 626, 626, + 626, 626, 626, 626, 626, 626, 626, 628, + 628, 628, 628, 628, 628, 628, 628, 628, + 628, 628, 628, 628, 628, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, - 630, 630, 630, 630, 630, 630, 632, 632, - 632, 632, 632, 632, 632, 632, 632, 632, - 632, 632, 632, 632, 632, 632, 634, 634, - 634, 634, 634, 636, 636, 636, 636, 636, - 636, 636, 636, 638, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 642, 644, 646, 648, - 650, 652, 654, 656, 658, 660, 662, 664, - 664, 664, 664, 664, 667, 669, 669, 671, - 674, 676, 676, 678, 681, 683, 683, 685, - 688, 691, 694, 694, 696, 698, 698, 701, - 701, 703, 705, 705, 708, 708, 710, 712, - 712, 715, 715, 717, 719, 722, 722, 722, - 722, 724, 726, 728, 730, 732, 734, 736, - 738, 740, 742, 744, 746, 748, 750, 752, - 754, 754, 756, 758, 760, 762, 764, 766, - 768, 770, 773, 775, 777, 780, 782, 784, - 786, 789, 791, 793, 795, 798, 800, 802, - 804, 807, 809, 812, 814, 816, 819, 822, - 825, 827, 830, 832, 834, 837, 840, 840, - 842, 844, 846, 848, 850, 852, 852, 855, - 858, 861, 861, 863, 865, 867, 869, 871, - 873, 875, 877, 879, 881, 881, 884, 887, - 890, 893, 896, 896, 898, 900, 902, 904, - 906, 908, 910, 913, 916, 919, 921, 921, - 921, 921, 921, 921, 923, 926, 926, 926, - 926, 926, 928, 930, 932, 934, 936, 938, - 938, 940, 943, 946, 949, 952, 952, 954, - 956, 958, 960, 960, 962, 965, 968, 971, - 971, 973, 975, 977, 979, 981, 983, 989, - 1000, 1002, 1005, 1011, 1014, 1025, 1028, 1031, - 1034, 1036, 1038, 1040, 1042, 1048, 1051, 1054, - 1056, 1058, 1060, 1062, 1068, 1071, 1074, 1076, - 1078, 1080, 1082, 1088, 1091, 1094, 1097, 1097, - 1099, 1101, 1103, 1105, 1107, 1109, 1111, 1113, - 1115, 1117, 1119, 1121, 1123, 1125, 1127, 1129, - 1131, 1134, 1137, 1140, 1143, 1146, 1149, 1152, - 1155, 1155, 1155, 1157, 1157, 1157, 1157, 1159, - 1159, 1161, 1161, 1161, 1163, 1163, 1163, 1163, - 1163, 1163, 1165, 1167, 1167, 1167, 1169, 1169, - 1169, 1169, 1171, 1171, 1171, 1171, 1173, 1173, - 1173, 1173, 1173, 1175, 1175, 1175, 1175, 1177, - 1177, 1177, 1177, 1179, 1181, 1181, 1181, 1181, - 1181, 1183, 1183, 1185, 1185, 1185, 1185, 1185, - 1187, 1187, 1187, 1187, 1189, 1189, 1189, 1189, - 1189, 1189, 1189, 1189, 1191, 1191, 1191, 1193, - 1195, 1195, 1195, 1197, 1197, 1199, 1199, 1201, - 1203, 1203, 1203, 1203, 1203, 1205, 1207, 1207, - 1207, 1207, 1207, 1209, 1209, 1211, 1213, 1213, - 1215, 1217, 1217, 1217, 1217, 1217, 1219, 1219, - 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, - 1221, 1221, 1221, 1223, 1223, 1225, 1225, 1225, - 1225, 1227, 1229, 1229, 1229, 1229, 1229, 1229, - 1231, 1231, 1233, 1233, 1235, 1235, 1237, 1237, - 1237, 1237, 1239, 1239, 1239, 1241, 1241, 1241, - 1241, 1243, 1243, 1245, 1245, 1245, 1245, 1247, - 1247, 1247, 1249, 1249, 1249, 1249, 1249, 1249, - 1251, 1251, 1251, 1251, 1251, 1251, 1253, 1253, - 1253, 1253, 1253, 1255, 1257, 1259, 1261, 1263, - 1265, 1267, 1270, 1273, 1276, 1276, 1278, 1278, - 1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294, - 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, - 1294, 1294, 1294, 1294, 1294, 1294, 1297, 1297, - 1299, 1302, 1305, 1308, 1308, 1310, 1312, 1314, - 1316, 1318, 1320, 1320, 1320, 1320, 1323, 1326, - 1329, 1329, 1331, 1333, 1335, 1337, 1339, 1341, - 1341, 1343, 1346, 1349, 1352, 1355, 1355, 1357, - 1359, 1359, 1359, 1362, 1362, 1364, 1366, 1368, - 1370, 1372, 1374, 1374, 1376, 1379, 1382, 1385, - 1388, 1388, 1390, 1392, 1392, 1395, 1395, 1397, - 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, - 1399, 1399, 1402, 1402, 1402, 1402, 1402, 1402, - 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, - 1404, 1406, 1408, 1410, 1410, 1413, 1416, 1416, - 1418, 1420, 1422, 1424, 1424, 1427, 1430, 1430, - 1432, 1434, 1434, 1434, 1437, 1439, 1441, 1443, - 1445, 1447, 1449, 1451, 1453, 1455, 1457, 1457, - 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1459, - 1459, 1461, 1464, 1464, 1466, 1469, 1469, 1471, - 1474, 1476, 1476, 1478, 1481, 1484, 1484, 1484, - 1486, 1489, 1489, 1489, 1489, 1489, 1489, 1489, - 1489, 1489, 1489, 1491, 1494, 1494, 1494, 1496, - 1499, 1501, 1504, 1506, 1509, 1511, 1514, 1514, - 1514, 1514, 1514, 1516, 1519, 1519, 1521, 1524, - 1524, 1526, 1529, 1529, 1535, 1538, 1549, 1552, - 1563, 1566, 1566, 1566, 1566, 1566, 1566, 1566, - 1566, 1568, 1571, 1571, 1571, 1573, 1576, 1576, - 1576, 1576, 1576, 1576, 1576 + 632, 632, 632, 632, 632, 634, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 636, 636, 636, 636, + 636, 636, 636, 636, 636, 636, 636, 636, + 636, 636, 636, 636, 638, 638, 638, 638, + 638, 640, 640, 640, 640, 640, 640, 640, + 640, 642, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 646, 648, 650, 652, 654, 656, + 658, 660, 662, 664, 666, 668, 668, 668, + 668, 668, 671, 673, 673, 675, 678, 680, + 680, 682, 685, 687, 687, 689, 692, 695, + 698, 698, 700, 702, 702, 705, 705, 707, + 709, 709, 712, 712, 714, 716, 716, 719, + 719, 721, 723, 726, 726, 726, 726, 728, + 730, 732, 734, 736, 738, 740, 742, 744, + 746, 748, 750, 752, 754, 756, 758, 758, + 760, 762, 764, 766, 768, 770, 772, 774, + 777, 779, 781, 784, 786, 788, 790, 793, + 795, 797, 799, 802, 804, 806, 808, 811, + 813, 816, 818, 820, 823, 826, 829, 831, + 834, 836, 838, 841, 844, 844, 846, 848, + 850, 852, 854, 856, 856, 859, 862, 865, + 865, 867, 869, 871, 873, 875, 877, 879, + 881, 883, 885, 885, 888, 891, 894, 897, + 900, 900, 902, 904, 906, 908, 910, 912, + 914, 917, 920, 923, 925, 925, 925, 925, + 925, 925, 927, 930, 930, 930, 930, 930, + 932, 934, 936, 938, 940, 942, 942, 944, + 947, 950, 953, 956, 956, 958, 960, 962, + 964, 964, 966, 969, 972, 975, 975, 977, + 979, 981, 983, 985, 987, 993, 1004, 1006, + 1009, 1015, 1018, 1029, 1032, 1035, 1038, 1040, + 1042, 1044, 1046, 1052, 1055, 1058, 1060, 1062, + 1064, 1066, 1072, 1075, 1078, 1080, 1082, 1084, + 1086, 1092, 1095, 1098, 1101, 1101, 1103, 1105, + 1107, 1109, 1111, 1113, 1115, 1117, 1119, 1121, + 1123, 1125, 1127, 1129, 1131, 1133, 1135, 1138, + 1141, 1144, 1147, 1150, 1153, 1156, 1159, 1159, + 1159, 1161, 1161, 1161, 1161, 1163, 1163, 1165, + 1165, 1165, 1167, 1167, 1167, 1167, 1167, 1167, + 1169, 1171, 1171, 1171, 1173, 1173, 1173, 1173, + 1175, 1175, 1175, 1175, 1177, 1177, 1177, 1177, + 1177, 1179, 1179, 1179, 1179, 1181, 1181, 1181, + 1181, 1183, 1185, 1185, 1185, 1187, 1187, 1187, + 1187, 1187, 1189, 1189, 1191, 1191, 1191, 1191, + 1191, 1193, 1193, 1193, 1193, 1195, 1195, 1195, + 1195, 1195, 1195, 1195, 1195, 1197, 1197, 1197, + 1199, 1201, 1201, 1201, 1203, 1203, 1205, 1205, + 1207, 1209, 1209, 1209, 1209, 1209, 1211, 1213, + 1213, 1213, 1213, 1213, 1215, 1215, 1217, 1219, + 1219, 1221, 1223, 1223, 1223, 1223, 1223, 1225, + 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, + 1225, 1227, 1227, 1227, 1229, 1229, 1231, 1231, + 1231, 1231, 1233, 1235, 1235, 1235, 1235, 1235, + 1235, 1237, 1237, 1239, 1239, 1241, 1241, 1243, + 1243, 1243, 1243, 1245, 1245, 1245, 1247, 1247, + 1247, 1247, 1249, 1249, 1251, 1251, 1251, 1251, + 1253, 1253, 1253, 1255, 1255, 1255, 1255, 1255, + 1255, 1257, 1257, 1257, 1257, 1257, 1257, 1259, + 1259, 1259, 1259, 1259, 1261, 1263, 1265, 1267, + 1269, 1271, 1273, 1276, 1279, 1282, 1282, 1284, + 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1298, + 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, + 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1303, + 1303, 1305, 1308, 1311, 1314, 1314, 1316, 1318, + 1320, 1322, 1324, 1326, 1326, 1326, 1326, 1329, + 1332, 1335, 1335, 1337, 1339, 1341, 1343, 1345, + 1347, 1347, 1349, 1352, 1355, 1358, 1361, 1361, + 1363, 1365, 1365, 1365, 1368, 1368, 1370, 1372, + 1374, 1376, 1378, 1380, 1380, 1382, 1385, 1388, + 1391, 1394, 1394, 1396, 1398, 1398, 1401, 1401, + 1403, 1405, 1405, 1405, 1405, 1405, 1405, 1405, + 1405, 1405, 1405, 1408, 1408, 1408, 1408, 1408, + 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, + 1408, 1410, 1412, 1414, 1416, 1416, 1419, 1422, + 1422, 1424, 1426, 1428, 1430, 1430, 1433, 1436, + 1436, 1438, 1440, 1440, 1440, 1443, 1443, 1443, + 1443, 1445, 1447, 1449, 1451, 1453, 1455, 1455, + 1458, 1461, 1464, 1464, 1464, 1464, 1466, 1466, + 1466, 1466, 1466, 1468, 1470, 1472, 1474, 1476, + 1478, 1480, 1482, 1484, 1486, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1490, 1490, + 1492, 1495, 1495, 1497, 1500, 1500, 1502, 1505, + 1507, 1507, 1509, 1512, 1515, 1515, 1515, 1517, + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + 1520, 1520, 1520, 1522, 1525, 1525, 1525, 1527, + 1530, 1532, 1535, 1537, 1540, 1542, 1545, 1545, + 1545, 1545, 1545, 1547, 1550, 1550, 1552, 1555, + 1555, 1557, 1560, 1560, 1566, 1569, 1580, 1583, + 1594, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1599, 1602, 1602, 1602, 1604, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607 }; static const char _zone_scanner_cond_lengths[] = { @@ -1105,8 +1123,55 @@ static const char _zone_scanner_cond_lengths[] = { 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 2, 0, 0, + 2, 0, 0, 0, 0, 2, 0, 2, + 0, 0, 0, 0, 2, 0, 0, 0, + 2, 0, 2, 2, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 2, 2, + 0, 0, 2, 0, 2, 0, 2, 2, + 0, 0, 0, 0, 2, 2, 0, 0, + 0, 0, 2, 0, 2, 2, 0, 2, + 2, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, - 0, 2, 0, 0, 0, 2, 0, 2, + 2, 2, 0, 0, 0, 0, 0, 2, + 0, 2, 0, 2, 0, 2, 0, 0, + 0, 2, 0, 0, 2, 0, 0, 0, + 2, 0, 2, 0, 0, 0, 2, 0, + 0, 2, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 2, 3, 2, + 0, 2, 2, 2, 2, 0, 2, 3, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 2, 3, 2, 2, 3, 2, + 0, 2, 3, 2, 2, 2, 2, 2, + 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 3, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 5, 5, 5, 5, 0, 0, 2, + 0, 0, 0, 2, 0, 2, 3, 2, + 2, 5, 5, 5, 5, 3, 2, 5, + 5, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 3, 2, 3, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 0, 0, 0, 0, 1, 2, + 2, 2, 2, 0, 2, 0, 2, 3, + 2, 2, 0, 2, 2, 0, 0, 0, + 0, 0, 2, 3, 2, 2, 2, 2, + 0, 2, 2, 0, 0, 0, 0, 0, + 2, 3, 2, 3, 3, 0, 0, 0, + 0, 2, 3, 0, 2, 2, 2, 0, + 0, 2, 3, 0, 0, 2, 0, 0, + 0, 0, 0, 2, 2, 0, 0, 2, + 0, 0, 0, 2, 0, 0, 0, 2, + 0, 0, 0, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 2, 2, 0, 0, + 2, 0, 0, 0, 0, 2, 0, 2, + 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 2, 0, 2, 0, 2, 2, 0, 0, 0, @@ -1120,77 +1185,31 @@ static const char _zone_scanner_cond_lengths[] = { 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 2, 3, 2, 0, 2, 2, - 2, 2, 0, 2, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, - 3, 2, 2, 3, 2, 0, 2, 3, - 2, 2, 2, 2, 2, 3, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 2, - 3, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 5, 5, - 5, 5, 0, 0, 2, 0, 0, 0, - 2, 0, 2, 3, 2, 2, 5, 5, - 5, 5, 3, 2, 5, 5, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 3, - 3, 2, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 0, - 0, 0, 0, 1, 2, 2, 2, 2, - 0, 2, 0, 2, 3, 2, 2, 0, - 2, 2, 0, 0, 0, 0, 0, 2, - 3, 2, 2, 2, 2, 0, 2, 2, - 0, 0, 0, 0, 0, 2, 3, 2, - 3, 3, 0, 0, 0, 0, 2, 3, - 0, 2, 2, 2, 0, 0, 2, 3, - 0, 0, 2, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 2, 0, 0, 0, - 0, 2, 0, 0, 0, 2, 0, 0, - 0, 2, 2, 0, 0, 0, 0, 2, - 0, 2, 0, 0, 0, 0, 2, 0, - 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 2, 2, 0, - 0, 2, 0, 2, 0, 2, 2, 0, - 0, 0, 0, 2, 2, 0, 0, 0, - 0, 2, 0, 2, 2, 0, 2, 2, - 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 0, 2, 0, 2, 0, 0, 0, 2, - 2, 0, 0, 0, 0, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 0, 0, - 2, 0, 0, 2, 0, 0, 0, 2, - 0, 2, 0, 0, 0, 2, 0, 0, - 2, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 2, 0, 0, 0, - 2, 0, 2, 2, 2, 2, 2, 0, - 2, 3, 3, 3, 2, 2, 2, 2, - 0, 2, 3, 3, 2, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 2, 0, + 2, 2, 2, 2, 2, 0, 2, 3, + 3, 3, 2, 2, 2, 2, 0, 2, + 3, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, - 0, 0, 0, 0, 0, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 2, 0, 0, + 0, 0, 0, 2, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 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, @@ -1209,88 +1228,92 @@ static const char _zone_scanner_cond_lengths[] = { 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, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 0, - 0, 0, 0, 3, 2, 0, 2, 3, - 2, 0, 2, 3, 2, 0, 2, 3, - 3, 3, 0, 2, 2, 0, 3, 0, - 2, 2, 0, 3, 0, 2, 2, 0, - 3, 0, 2, 2, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 0, 0, 0, + 0, 3, 2, 0, 2, 3, 2, 0, + 2, 3, 2, 0, 2, 3, 3, 3, + 0, 2, 2, 0, 3, 0, 2, 2, + 0, 3, 0, 2, 2, 0, 3, 0, + 2, 2, 3, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 2, + 2, 2, 2, 2, 2, 2, 2, 3, + 2, 2, 3, 2, 2, 2, 3, 2, + 2, 2, 3, 2, 2, 2, 3, 2, + 3, 2, 2, 3, 3, 3, 2, 3, + 2, 2, 3, 3, 0, 2, 2, 2, + 2, 2, 2, 0, 3, 3, 3, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 3, 3, 3, 3, 3, 0, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 2, 2, 3, 2, 2, 2, - 3, 2, 2, 2, 3, 2, 2, 2, - 3, 2, 3, 2, 2, 3, 3, 3, - 2, 3, 2, 2, 3, 3, 0, 2, - 2, 2, 2, 2, 2, 0, 3, 3, - 3, 0, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 0, 3, 3, 3, - 3, 3, 0, 2, 2, 2, 2, 2, - 2, 2, 3, 3, 3, 2, 0, 0, - 0, 0, 0, 2, 3, 0, 0, 0, - 0, 2, 2, 2, 2, 2, 2, 0, - 2, 3, 3, 3, 3, 0, 2, 2, - 2, 2, 0, 2, 3, 3, 3, 0, - 2, 2, 2, 2, 2, 2, 6, 11, - 2, 3, 6, 3, 11, 3, 3, 3, - 2, 2, 2, 2, 6, 3, 3, 2, - 2, 2, 2, 6, 3, 3, 2, 2, - 2, 2, 6, 3, 3, 3, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 2, 0, 0, 0, 0, + 0, 2, 3, 0, 0, 0, 0, 2, + 2, 2, 2, 2, 2, 0, 2, 3, + 3, 3, 3, 0, 2, 2, 2, 2, + 0, 2, 3, 3, 3, 0, 2, 2, + 2, 2, 2, 2, 6, 11, 2, 3, + 6, 3, 11, 3, 3, 3, 2, 2, + 2, 2, 6, 3, 3, 2, 2, 2, + 2, 6, 3, 3, 2, 2, 2, 2, + 6, 3, 3, 3, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 3, 3, - 0, 0, 2, 0, 0, 0, 2, 0, - 2, 0, 0, 2, 0, 0, 0, 0, - 0, 2, 2, 0, 0, 2, 0, 0, - 0, 2, 0, 0, 0, 2, 0, 0, - 0, 0, 2, 0, 0, 0, 2, 0, - 0, 0, 2, 2, 0, 0, 0, 0, - 2, 0, 2, 0, 0, 0, 0, 2, - 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 2, 2, - 0, 0, 2, 0, 2, 0, 2, 2, - 0, 0, 0, 0, 2, 2, 0, 0, - 0, 0, 2, 0, 2, 2, 0, 2, - 2, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 2, 0, 2, 0, 0, 0, - 2, 2, 0, 0, 0, 0, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 0, - 0, 2, 0, 0, 2, 0, 0, 0, - 2, 0, 2, 0, 0, 0, 2, 0, + 2, 2, 2, 2, 2, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 0, 0, + 2, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 2, 2, 2, 2, 2, 2, - 2, 3, 3, 3, 0, 2, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 0, + 2, 0, 0, 2, 0, 0, 0, 2, + 0, 0, 0, 2, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, + 2, 2, 0, 0, 2, 0, 0, 0, + 0, 2, 0, 2, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 2, + 2, 0, 0, 2, 0, 2, 0, 2, + 2, 0, 0, 0, 0, 2, 2, 0, + 0, 0, 0, 2, 0, 2, 2, 0, + 2, 2, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 2, 0, 2, 0, 0, + 0, 2, 2, 0, 0, 0, 0, 0, + 2, 0, 2, 0, 2, 0, 2, 0, + 0, 0, 2, 0, 0, 2, 0, 0, + 0, 2, 0, 2, 0, 0, 0, 2, + 0, 0, 2, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 2, 2, 2, 2, 2, + 2, 2, 3, 3, 3, 0, 2, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 2, - 3, 3, 3, 0, 2, 2, 2, 2, - 2, 2, 0, 0, 0, 3, 3, 3, - 0, 2, 2, 2, 2, 2, 2, 0, - 2, 3, 3, 3, 3, 0, 2, 2, - 0, 0, 3, 0, 2, 2, 2, 2, - 2, 2, 0, 2, 3, 3, 3, 3, - 0, 2, 2, 0, 3, 0, 2, 2, + 0, 0, 0, 0, 0, 0, 3, 0, + 2, 3, 3, 3, 0, 2, 2, 2, + 2, 2, 2, 0, 0, 0, 3, 3, + 3, 0, 2, 2, 2, 2, 2, 2, + 0, 2, 3, 3, 3, 3, 0, 2, + 2, 0, 0, 3, 0, 2, 2, 2, + 2, 2, 2, 0, 2, 3, 3, 3, + 3, 0, 2, 2, 0, 3, 0, 2, + 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 0, 3, 3, 0, + 2, 2, 2, 2, 0, 3, 3, 0, + 2, 2, 0, 0, 3, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 0, 3, + 3, 3, 0, 0, 0, 2, 0, 0, + 0, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 2, + 3, 0, 2, 3, 0, 2, 3, 2, + 0, 2, 3, 3, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 2, 2, 2, 0, 3, 3, 0, 2, - 2, 2, 2, 0, 3, 3, 0, 2, - 2, 0, 0, 3, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 2, 3, 0, 2, 3, 0, 2, 3, - 2, 0, 2, 3, 3, 0, 0, 2, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 2, 3, 2, 3, 2, 3, 2, 3, 0, 0, 0, 0, 2, 3, 0, 2, 3, 0, 2, 3, 0, 6, 3, 11, 3, 11, 3, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 2, 3, 0, 0, - 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0 }; static const short _zone_scanner_cond_keys[] = { @@ -1328,20 +1351,20 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, + 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, 10, 10, 59, 59, + 59, 59, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, @@ -1351,10 +1374,10 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, + 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, @@ -1365,53 +1388,54 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 58, 59, 59, - 60, 127, -128, 9, 10, 10, 11, 58, - 59, 59, 60, 127, -128, 9, 10, 10, + 10, 10, 59, 59, -128, 9, 10, 10, 11, 58, 59, 59, 60, 127, -128, 9, 10, 10, 11, 58, 59, 59, 60, 127, + -128, 9, 10, 10, 11, 58, 59, 59, + 60, 127, -128, 9, 10, 10, 11, 58, + 59, 59, 60, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 58, - 59, 59, 60, 127, -128, 9, 10, 10, - 11, 58, 59, 59, 60, 127, -128, 9, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 58, 59, 59, 60, 127, -128, 9, 10, 10, 11, 58, 59, 59, - 60, 127, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, -128, 9, 10, 10, + 60, 127, -128, 9, 10, 10, 11, 58, + 59, 59, 60, 127, -128, 9, 10, 10, 11, 58, 59, 59, 60, 127, -128, 9, - 10, 10, 11, 58, 59, 59, 60, 127, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 11, 127, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 58, 59, 59, + 60, 127, -128, 9, 10, 10, 11, 58, + 59, 59, 60, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 41, 41, 10, 10, - 10, 10, 10, 10, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, -128, 9, + -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, + 41, 41, 10, 10, 10, 10, 10, 10, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, @@ -1610,61 +1634,69 @@ static const short _zone_scanner_cond_keys[] = { 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, -128, 9, - 10, 10, 11, 127, -128, 9, 10, 10, - 11, 127, -128, 9, 10, 10, 11, 127, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, + -128, 9, 10, 10, 11, 127, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, + -128, 9, 10, 10, 11, 127, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, -128, 9, - 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, + -128, 9, 10, 10, 11, 127, -128, 9, + 10, 10, 11, 127, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, -128, 9, 10, 10, + 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, -128, 9, 10, 10, 11, 127, + 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, - -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, 10, 10, 59, 59, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, -128, 9, 10, 10, - 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, 10, 10, 59, 59, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, -128, 9, 10, 10, 11, 127, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, @@ -1675,20 +1707,18 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 9, 9, 10, 10, 32, 32, - 40, 40, 41, 41, 59, 59, -128, 9, - 10, 10, 11, 127, 9, 9, 10, 10, - 32, 32, 40, 40, 41, 41, 43, 43, - 47, 47, 48, 57, 59, 59, 65, 90, - 97, 122, -128, 9, 10, 10, 11, 127, 9, 9, 10, 10, 32, 32, 40, 40, - 41, 41, 43, 43, 47, 47, 48, 57, - 59, 59, 65, 90, 97, 122, -128, 9, + 41, 41, 59, 59, -128, 9, 10, 10, + 11, 127, 9, 9, 10, 10, 32, 32, + 40, 40, 41, 41, 43, 43, 47, 47, + 48, 57, 59, 59, 65, 90, 97, 122, + -128, 9, 10, 10, 11, 127, 9, 9, + 10, 10, 32, 32, 40, 40, 41, 41, + 43, 43, 47, 47, 48, 57, 59, 59, + 65, 90, 97, 122, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - 0 + -128, 9, 10, 10, 11, 127, 0 }; static const char _zone_scanner_cond_spaces[] = { @@ -1700,8 +1730,8 @@ static const char _zone_scanner_cond_spaces[] = { 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 0, 0, 0, 0, - 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -1709,48 +1739,49 @@ static const char _zone_scanner_cond_spaces[] = { 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 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, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 7, 7, 7, 0, + 0, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 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, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 7, 7, 7, 7, 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, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 3, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 3, 4, - 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 0, 0, 0, 7, 7, 7, 7, - 7, 7, 7, 7, 0, 0, 0, 7, + 0, 7, 7, 0, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 7, 0, 0, + 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -1762,16 +1793,17 @@ static const char _zone_scanner_cond_spaces[] = { 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 7, 0, 0, 0, - 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 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, 0, 0, 0, 0, 0, @@ -1779,20 +1811,21 @@ static const char _zone_scanner_cond_spaces[] = { 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, 7, + 7, 7, 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, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 0, 0, + 0, 7, 7, 7, 7, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 0, 0, + 0, 7, 7, 7, 7, 7, 7, 0, + 0, 0, 7, 7, 7, 7, 7, 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, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 0, 0, 0, 7, 7, 7, - 7, 0, 0, 0, 7, 7, 7, 7, - 7, 7, 0, 0, 0, 7, 7, 7, - 7, 7, 7, 0, 0, 0, 7, 7, - 7, 7, 7, 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, @@ -1803,37 +1836,37 @@ static const char _zone_scanner_cond_spaces[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 13, 10, 10, 10, + 13, 5, 8, 5, 5, 5, 5, 5, + 5, 8, 5, 5, 1, 1, 8, 8, + 8, 6, 11, 6, 6, 6, 11, 9, + 9, 9, 10, 13, 10, 10, 10, 5, + 5, 5, 13, 5, 5, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, - 13, 10, 10, 10, 13, 5, 8, 5, - 5, 5, 5, 5, 5, 8, 5, 5, - 1, 1, 8, 8, 8, 6, 11, 6, - 6, 6, 11, 9, 9, 9, 10, 13, - 10, 10, 10, 5, 5, 5, 13, 5, - 5, 12, 12, 12, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10, 13, + 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 13, 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 13, 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 13, 10, 10, 10, 13, 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, 1, 1, 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, 1, 1, 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, @@ -1847,23 +1880,24 @@ static const char _zone_scanner_cond_spaces[] = { 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, 1, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 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, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 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, 0, 7, 7, 0, + 0, 0, 0, 0, 7, 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, 0, 7, 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, @@ -1871,25 +1905,24 @@ static const char _zone_scanner_cond_spaces[] = { 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, 7, - 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, - 7, 0, 0, 7, 7, 0, 0, 0, - 7, 7, 0, 0, 0, 7, 7, 0, - 0, 0, 0, 0, 7, 7, 0, 0, - 0, 0, 0, 0, 7, 7, 0, 0, - 0, 7, 7, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 7, 7, 7, 7, + 0, 0, 7, 7, 0, 0, 0, 7, + 7, 0, 0, 0, 7, 7, 0, 0, + 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, - 0, 6, 11, 6, 6, 6, 11, 9, - 9, 9, 5, 8, 5, 5, 5, 5, - 5, 5, 8, 5, 5, 8, 8, 8, - 10, 13, 10, 10, 10, 5, 5, 5, - 13, 5, 5, 12, 12, 12, 7, 7, + 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, - 0 + 6, 11, 6, 6, 6, 11, 9, 9, + 9, 5, 8, 5, 5, 5, 5, 5, + 5, 8, 5, 5, 8, 8, 8, 10, + 13, 10, 10, 10, 5, 5, 5, 13, + 5, 5, 12, 12, 12, 7, 7, 0, + 0, 0, 7, 7, 0, 0, 0, 0 }; static const short _zone_scanner_key_offsets[] = { @@ -1899,193 +1932,198 @@ static const short _zone_scanner_key_offsets[] = { 382, 384, 386, 388, 398, 408, 410, 412, 422, 424, 426, 428, 438, 440, 442, 444, 454, 460, 462, 464, 466, 476, 480, 482, - 484, 494, 496, 498, 500, 510, 520, 522, - 524, 526, 527, 537, 538, 548, 552, 554, - 556, 558, 568, 570, 572, 574, 584, 588, - 594, 636, 638, 640, 642, 644, 646, 648, - 650, 660, 664, 666, 676, 686, 692, 693, - 703, 704, 714, 716, 726, 736, 740, 742, - 744, 746, 756, 766, 772, 774, 776, 778, - 788, 790, 800, 812, 814, 825, 837, 839, - 841, 843, 845, 855, 857, 859, 861, 863, - 865, 867, 869, 871, 873, 883, 885, 887, - 897, 903, 913, 915, 917, 919, 929, 939, - 951, 953, 955, 957, 959, 969, 971, 981, - 983, 993, 995, 1005, 1007, 1009, 1011, 1021, - 1023, 1025, 1035, 1041, 1043, 1045, 1055, 1057, - 1067, 1069, 1071, 1073, 1085, 1087, 1089, 1099, - 1101, 1103, 1105, 1107, 1109, 1119, 1121, 1123, - 1125, 1127, 1129, 1139, 1142, 1188, 1192, 1198, - 1242, 1260, 1268, 1280, 1288, 1291, 1292, 1298, - 1300, 1302, 1304, 1306, 1308, 1310, 1316, 1322, - 1366, 1369, 1387, 1431, 1434, 1442, 1454, 1462, - 1465, 1481, 1537, 1555, 1574, 1620, 1626, 1640, - 1654, 1712, 1730, 1744, 1754, 1766, 1778, 1790, - 1804, 1816, 1830, 1840, 1850, 1864, 1884, 1898, - 1908, 1918, 1928, 1934, 1948, 1950, 1952, 1954, - 1956, 1958, 1964, 1966, 1968, 1974, 1982, 2002, - 2048, 2054, 2072, 2130, 2148, 2162, 2172, 2184, - 2196, 2208, 2222, 2234, 2248, 2258, 2268, 2282, - 2302, 2316, 2326, 2336, 2346, 2361, 2407, 2421, - 2435, 2451, 2467, 2469, 2471, 2481, 2483, 2485, - 2487, 2497, 2499, 2509, 2515, 2529, 2543, 2559, - 2575, 2591, 2607, 2610, 2668, 2682, 2696, 2712, - 2724, 2732, 2742, 2752, 2762, 2774, 2784, 2796, - 2804, 2812, 2824, 2842, 2854, 2862, 2870, 2878, - 2884, 2890, 2900, 2906, 2915, 2916, 2917, 2928, - 2944, 2960, 2962, 2964, 2966, 2982, 2988, 2994, - 3000, 3012, 3018, 3020, 3022, 3034, 3042, 3050, - 3056, 3062, 3064, 3066, 3074, 3080, 3088, 3108, - 3116, 3117, 3127, 3139, 3149, 3152, 3158, 3174, - 3184, 3202, 3210, 3211, 3213, 3215, 3217, 3227, - 3235, 3238, 3244, 3256, 3264, 3282, 3292, 3310, - 3318, 3319, 3321, 3323, 3325, 3335, 3343, 3349, - 3365, 3368, 3371, 3378, 3385, 3393, 3401, 3418, - 3421, 3422, 3432, 3478, 3494, 3496, 3498, 3508, - 3511, 3521, 3523, 3533, 3537, 3539, 3541, 3543, - 3545, 3555, 3565, 3567, 3569, 3579, 3581, 3583, - 3585, 3595, 3597, 3599, 3601, 3611, 3617, 3619, - 3621, 3623, 3633, 3637, 3639, 3641, 3651, 3653, - 3655, 3657, 3667, 3677, 3679, 3681, 3683, 3684, - 3694, 3695, 3705, 3709, 3711, 3713, 3715, 3725, - 3727, 3729, 3731, 3741, 3743, 3745, 3747, 3749, - 3751, 3753, 3755, 3765, 3769, 3771, 3781, 3791, - 3797, 3798, 3808, 3809, 3819, 3821, 3831, 3841, - 3845, 3847, 3849, 3851, 3861, 3871, 3877, 3879, - 3881, 3883, 3893, 3895, 3905, 3917, 3919, 3930, - 3942, 3944, 3946, 3948, 3950, 3960, 3962, 3964, - 3966, 3968, 3970, 3972, 3974, 3976, 3978, 3988, - 3990, 3992, 4002, 4008, 4018, 4020, 4022, 4024, - 4034, 4044, 4056, 4058, 4060, 4062, 4064, 4074, - 4076, 4086, 4088, 4098, 4100, 4110, 4112, 4114, - 4116, 4126, 4128, 4130, 4140, 4146, 4148, 4150, - 4160, 4162, 4172, 4174, 4176, 4178, 4190, 4192, - 4194, 4204, 4206, 4208, 4210, 4212, 4214, 4224, - 4226, 4228, 4230, 4232, 4234, 4244, 4246, 4248, - 4250, 4260, 4262, 4272, 4278, 4286, 4294, 4306, - 4312, 4328, 4331, 4334, 4337, 4343, 4352, 4362, - 4374, 4380, 4396, 4399, 4402, 4410, 4413, 4421, - 4422, 4423, 4424, 4432, 4433, 4434, 4435, 4436, - 4437, 4438, 4446, 4447, 4448, 4456, 4457, 4458, - 4460, 4461, 4462, 4463, 4464, 4472, 4473, 4474, - 4475, 4476, 4484, 4485, 4486, 4488, 4498, 4499, - 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, - 4508, 4509, 4510, 4511, 4512, 4520, 4521, 4522, - 4523, 4524, 4532, 4533, 4534, 4535, 4543, 4553, - 4572, 4573, 4574, 4575, 4576, 4583, 4593, 4596, - 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4610, - 4620, 4636, 4637, 4647, 4648, 4649, 4650, 4658, - 4665, 4672, 4680, 4688, 4696, 4697, 4704, 4712, - 4720, 4737, 4738, 4739, 4740, 4742, 4743, 4744, - 4745, 4746, 4747, 4751, 4754, 4759, 4762, 4776, - 4779, 4780, 4781, 4782, 4783, 4784, 4792, 4799, - 4808, 4815, 4833, 4840, 4841, 4842, 4844, 4857, - 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, - 4871, 4872, 4877, 4881, 4883, 4887, 4898, 4902, - 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, - 4911, 4912, 4913, 4914, 4915, 4916, 4926, 4927, - 4928, 4929, 4930, 4940, 4941, 4942, 4943, 4944, - 4947, 4949, 4952, 4964, 4980, 4981, 4993, 5001, - 5005, 5011, 5013, 5020, 5022, 5024, 5026, 5028, - 5029, 5030, 5032, 5034, 5036, 5037, 5043, 5047, - 5051, 5052, 5054, 5056, 5058, 5060, 5066, 5068, - 5070, 5072, 5074, 5075, 5076, 5078, 5080, 5082, - 5083, 5084, 5085, 5091, 5092, 5093, 5095, 5097, - 5099, 5100, 5101, 5102, 5108, 5110, 5111, 5112, - 5113, 5114, 5120, 5121, 5122, 5128, 5130, 5132, - 5134, 5136, 5138, 5140, 5142, 5148, 5150, 5152, - 5154, 5156, 5158, 5160, 5164, 5166, 5168, 5174, - 5176, 5178, 5184, 5186, 5188, 5192, 5194, 5195, - 5201, 5203, 5205, 5208, 5215, 5217, 5219, 5221, - 5223, 5224, 5225, 5227, 5229, 5231, 5232, 5238, - 5239, 5240, 5246, 5247, 5248, 5254, 5268, 5276, - 5278, 5280, 5282, 5284, 5286, 5292, 5298, 5300, - 5302, 5304, 5306, 5308, 5314, 5318, 5320, 5326, - 5328, 5330, 5336, 5338, 5340, 5342, 5348, 5350, - 5352, 5358, 5362, 5364, 5370, 5372, 5374, 5380, - 5382, 5384, 5386, 5392, 5394, 5396, 5402, 5405, - 5414, 5423, 5429, 5438, 5444, 5459, 5465, 5473, - 5481, 5489, 5507, 5515, 5533, 5541, 5559, 5567, - 5585, 5593, 5605, 5613, 5616, 5624, 5636, 5644, - 5647, 5655, 5667, 5675, 5678, 5686, 5698, 5706, - 5709, 5712, 5715, 5721, 5727, 5739, 5745, 5748, - 5757, 5763, 5778, 5784, 5787, 5789, 5797, 5812, - 5818, 5821, 5827, 5837, 5853, 5856, 5863, 5876, - 5878, 5886, 5896, 5904, 5914, 5923, 5931, 5937, - 5945, 5953, 5963, 5971, 5981, 5990, 5998, 6004, - 6013, 6015, 6029, 6041, 6055, 6067, 6081, 6093, - 6107, 6117, 6120, 6133, 6146, 6149, 6162, 6175, - 6185, 6188, 6201, 6214, 6224, 6227, 6240, 6253, - 6263, 6266, 6272, 6275, 6283, 6291, 6294, 6297, - 6300, 6306, 6309, 6317, 6325, 6328, 6331, 6333, - 6341, 6349, 6357, 6365, 6373, 6388, 6394, 6397, - 6400, 6403, 6405, 6413, 6421, 6429, 6441, 6447, - 6459, 6465, 6477, 6483, 6498, 6504, 6507, 6510, - 6513, 6516, 6519, 6525, 6531, 6539, 6547, 6559, - 6565, 6578, 6580, 6583, 6586, 6589, 6602, 6604, - 6605, 6608, 6611, 6613, 6625, 6628, 6629, 6636, - 6643, 6645, 6653, 6665, 6671, 6679, 6687, 6699, - 6705, 6721, 6724, 6727, 6730, 6733, 6735, 6743, - 6751, 6759, 6771, 6777, 6793, 6796, 6799, 6802, - 6804, 6812, 6822, 6828, 6836, 6844, 6851, 6885, - 6898, 6900, 6903, 6917, 6920, 6961, 6970, 6973, - 6976, 6982, 6990, 6998, 7007, 7044, 7047, 7050, - 7056, 7064, 7072, 7085, 7126, 7129, 7132, 7138, - 7146, 7154, 7169, 7203, 7206, 7209, 7212, 7248, - 7260, 7272, 7278, 7286, 7294, 7302, 7310, 7318, - 7326, 7334, 7342, 7350, 7358, 7373, 7379, 7392, - 7394, 7397, 7400, 7403, 7406, 7409, 7412, 7415, - 7418, 7420, 7422, 7428, 7430, 7432, 7434, 7440, - 7442, 7448, 7458, 7460, 7466, 7470, 7472, 7474, - 7476, 7478, 7484, 7490, 7492, 7494, 7500, 7502, - 7504, 7506, 7512, 7514, 7516, 7518, 7524, 7530, - 7532, 7534, 7536, 7542, 7546, 7548, 7550, 7556, - 7558, 7560, 7562, 7568, 7574, 7576, 7578, 7580, - 7581, 7587, 7588, 7594, 7598, 7600, 7602, 7604, - 7610, 7612, 7614, 7616, 7622, 7624, 7626, 7628, - 7630, 7632, 7634, 7636, 7642, 7646, 7648, 7654, - 7660, 7666, 7667, 7673, 7674, 7680, 7682, 7688, - 7694, 7698, 7700, 7702, 7704, 7710, 7716, 7722, - 7724, 7726, 7728, 7734, 7736, 7742, 7750, 7752, - 7759, 7767, 7769, 7771, 7773, 7775, 7781, 7783, - 7785, 7787, 7789, 7791, 7793, 7795, 7797, 7799, - 7805, 7807, 7809, 7815, 7821, 7827, 7829, 7831, - 7833, 7839, 7845, 7857, 7859, 7861, 7863, 7865, - 7871, 7873, 7879, 7881, 7887, 7889, 7895, 7897, - 7899, 7901, 7907, 7909, 7911, 7917, 7923, 7925, - 7927, 7933, 7935, 7941, 7943, 7945, 7947, 7955, - 7957, 7959, 7965, 7967, 7969, 7971, 7973, 7975, - 7981, 7983, 7985, 7987, 7989, 7991, 7997, 8006, - 8012, 8018, 8020, 8028, 8036, 8044, 8056, 8062, - 8075, 8077, 8080, 8083, 8086, 8093, 8095, 8097, - 8105, 8113, 8121, 8129, 8137, 8150, 8156, 8168, - 8174, 8181, 8187, 8194, 8201, 8207, 8214, 8226, - 8232, 8233, 8234, 8235, 8236, 8237, 8240, 8246, - 8258, 8261, 8264, 8267, 8269, 8277, 8285, 8293, - 8301, 8309, 8322, 8328, 8334, 8346, 8349, 8352, - 8355, 8357, 8365, 8373, 8381, 8389, 8397, 8409, - 8415, 8431, 8434, 8437, 8440, 8443, 8445, 8453, - 8461, 8469, 8475, 8478, 8480, 8488, 8496, 8504, - 8512, 8520, 8532, 8538, 8554, 8557, 8560, 8563, - 8566, 8568, 8576, 8585, 8594, 8597, 8599, 8607, - 8619, 8625, 8631, 8637, 8638, 8644, 8650, 8656, - 8662, 8669, 8672, 8678, 8684, 8685, 8691, 8697, - 8704, 8710, 8716, 8717, 8723, 8729, 8736, 8738, - 8746, 8754, 8762, 8774, 8780, 8783, 8786, 8788, - 8796, 8808, 8814, 8826, 8832, 8835, 8838, 8840, - 8848, 8863, 8869, 8875, 8878, 8896, 8929, 8983, - 9039, 9057, 9113, 9131, 9164, 9235, 9306, 9306, - 9306, 9306, 9306, 9318, 9318, 9318, 9318, 9334, - 9334, 9351, 9354, 9354, 9400, 9403, 9403, 9419, - 9422, 9434, 9434, 9450, 9453, 9456, 9456, 9456, - 9475, 9478, 9478, 9478, 9478, 9478, 9478, 9478, - 9478, 9478, 9478, 9494, 9497, 9497, 9497, 9507, - 9510, 9522, 9525, 9537, 9540, 9552, 9555, 9555, - 9555, 9555, 9555, 9568, 9571, 9571, 9587, 9590, - 9590, 9606, 9609, 9609, 9623, 9626, 9639, 9642, - 9683, 9692, 9692, 9692, 9692, 9692, 9692, 9692, - 9692, 9708, 9711, 9711, 9711, 9727, 9730, 9730, - 9730, 9730, 9730, 9730, 9730 + 484, 494, 496, 498, 500, 510, 522, 524, + 526, 536, 538, 540, 542, 543, 553, 554, + 564, 568, 570, 572, 574, 584, 586, 588, + 590, 600, 604, 610, 652, 654, 656, 658, + 660, 662, 664, 666, 676, 680, 682, 692, + 702, 708, 709, 719, 720, 730, 732, 742, + 752, 756, 758, 760, 762, 772, 782, 788, + 790, 792, 794, 804, 806, 816, 828, 830, + 841, 853, 855, 857, 859, 861, 871, 873, + 875, 877, 879, 881, 883, 885, 887, 889, + 899, 901, 903, 913, 919, 929, 931, 933, + 935, 945, 955, 967, 969, 971, 973, 975, + 985, 987, 997, 999, 1009, 1011, 1021, 1023, + 1025, 1027, 1037, 1039, 1041, 1051, 1057, 1059, + 1061, 1071, 1073, 1083, 1085, 1087, 1089, 1101, + 1103, 1105, 1115, 1117, 1119, 1121, 1123, 1125, + 1135, 1137, 1139, 1141, 1143, 1145, 1155, 1158, + 1204, 1208, 1214, 1258, 1276, 1284, 1296, 1304, + 1307, 1308, 1314, 1316, 1318, 1320, 1322, 1324, + 1326, 1332, 1338, 1382, 1385, 1403, 1447, 1450, + 1458, 1470, 1478, 1481, 1497, 1553, 1571, 1590, + 1636, 1642, 1656, 1670, 1728, 1746, 1760, 1770, + 1782, 1794, 1806, 1820, 1832, 1846, 1856, 1866, + 1880, 1900, 1914, 1924, 1934, 1944, 1950, 1964, + 1966, 1968, 1970, 1972, 1974, 1980, 1982, 1984, + 1990, 1998, 2018, 2064, 2070, 2088, 2146, 2164, + 2178, 2188, 2200, 2212, 2224, 2238, 2250, 2264, + 2274, 2284, 2298, 2318, 2332, 2342, 2352, 2362, + 2377, 2423, 2437, 2451, 2467, 2483, 2485, 2487, + 2497, 2499, 2501, 2503, 2513, 2515, 2525, 2531, + 2545, 2559, 2575, 2591, 2607, 2623, 2626, 2684, + 2698, 2712, 2728, 2740, 2748, 2758, 2768, 2778, + 2790, 2800, 2812, 2820, 2828, 2840, 2858, 2870, + 2878, 2886, 2894, 2900, 2906, 2916, 2922, 2931, + 2932, 2933, 2944, 2960, 2976, 2978, 2980, 2982, + 2998, 3004, 3010, 3016, 3028, 3034, 3036, 3038, + 3050, 3058, 3066, 3072, 3078, 3080, 3082, 3090, + 3096, 3104, 3124, 3132, 3133, 3143, 3155, 3165, + 3168, 3174, 3190, 3200, 3218, 3226, 3227, 3229, + 3231, 3233, 3243, 3251, 3254, 3260, 3272, 3280, + 3298, 3308, 3326, 3334, 3335, 3337, 3339, 3341, + 3351, 3359, 3365, 3381, 3384, 3387, 3394, 3401, + 3409, 3417, 3434, 3437, 3438, 3448, 3494, 3510, + 3512, 3514, 3524, 3527, 3537, 3539, 3549, 3553, + 3555, 3557, 3559, 3561, 3571, 3581, 3583, 3585, + 3595, 3597, 3599, 3601, 3611, 3613, 3615, 3617, + 3627, 3633, 3635, 3637, 3639, 3649, 3653, 3655, + 3657, 3667, 3669, 3671, 3673, 3683, 3695, 3697, + 3699, 3709, 3711, 3713, 3715, 3716, 3726, 3727, + 3737, 3741, 3743, 3745, 3747, 3757, 3759, 3761, + 3763, 3773, 3775, 3777, 3779, 3781, 3783, 3785, + 3787, 3797, 3801, 3803, 3813, 3823, 3829, 3830, + 3840, 3841, 3851, 3853, 3863, 3873, 3877, 3879, + 3881, 3883, 3893, 3903, 3909, 3911, 3913, 3915, + 3925, 3927, 3937, 3949, 3951, 3962, 3974, 3976, + 3978, 3980, 3982, 3992, 3994, 3996, 3998, 4000, + 4002, 4004, 4006, 4008, 4010, 4020, 4022, 4024, + 4034, 4040, 4050, 4052, 4054, 4056, 4066, 4076, + 4088, 4090, 4092, 4094, 4096, 4106, 4108, 4118, + 4120, 4130, 4132, 4142, 4144, 4146, 4148, 4158, + 4160, 4162, 4172, 4178, 4180, 4182, 4192, 4194, + 4204, 4206, 4208, 4210, 4222, 4224, 4226, 4236, + 4238, 4240, 4242, 4244, 4246, 4256, 4258, 4260, + 4262, 4264, 4266, 4276, 4278, 4280, 4282, 4292, + 4294, 4304, 4310, 4318, 4326, 4338, 4344, 4360, + 4363, 4366, 4369, 4375, 4384, 4394, 4406, 4412, + 4428, 4431, 4434, 4442, 4445, 4453, 4454, 4455, + 4456, 4464, 4465, 4466, 4467, 4468, 4469, 4470, + 4478, 4479, 4480, 4488, 4489, 4490, 4492, 4493, + 4494, 4495, 4496, 4504, 4505, 4506, 4507, 4508, + 4516, 4517, 4518, 4520, 4530, 4531, 4532, 4533, + 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, + 4542, 4543, 4544, 4552, 4553, 4554, 4555, 4556, + 4564, 4565, 4566, 4567, 4575, 4585, 4604, 4605, + 4606, 4607, 4608, 4615, 4625, 4628, 4629, 4630, + 4631, 4632, 4633, 4634, 4635, 4642, 4652, 4668, + 4669, 4679, 4680, 4681, 4682, 4690, 4697, 4704, + 4712, 4720, 4728, 4729, 4736, 4744, 4752, 4769, + 4770, 4771, 4772, 4774, 4775, 4776, 4777, 4778, + 4779, 4783, 4786, 4791, 4794, 4808, 4811, 4812, + 4813, 4814, 4815, 4816, 4824, 4831, 4840, 4847, + 4865, 4872, 4873, 4874, 4876, 4889, 4895, 4896, + 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, + 4909, 4913, 4915, 4919, 4930, 4934, 4935, 4936, + 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, + 4945, 4946, 4947, 4948, 4958, 4959, 4960, 4961, + 4962, 4972, 4973, 4974, 4975, 4976, 4979, 4981, + 4984, 4996, 5012, 5013, 5025, 5033, 5037, 5043, + 5045, 5052, 5054, 5056, 5058, 5060, 5061, 5062, + 5064, 5066, 5068, 5069, 5075, 5079, 5083, 5084, + 5086, 5088, 5090, 5092, 5098, 5100, 5102, 5104, + 5106, 5107, 5108, 5110, 5112, 5114, 5115, 5116, + 5117, 5123, 5124, 5125, 5127, 5129, 5131, 5132, + 5133, 5134, 5140, 5142, 5143, 5144, 5145, 5146, + 5152, 5153, 5154, 5160, 5162, 5164, 5166, 5168, + 5170, 5172, 5174, 5180, 5182, 5184, 5186, 5188, + 5190, 5192, 5196, 5198, 5200, 5206, 5208, 5210, + 5216, 5218, 5220, 5224, 5226, 5227, 5233, 5235, + 5237, 5240, 5247, 5249, 5251, 5253, 5255, 5256, + 5257, 5259, 5261, 5263, 5264, 5270, 5271, 5272, + 5278, 5279, 5280, 5286, 5300, 5308, 5310, 5312, + 5314, 5316, 5318, 5324, 5330, 5332, 5334, 5336, + 5338, 5340, 5346, 5350, 5352, 5358, 5360, 5362, + 5368, 5370, 5372, 5374, 5380, 5382, 5384, 5390, + 5394, 5396, 5402, 5404, 5406, 5412, 5414, 5416, + 5418, 5424, 5426, 5428, 5434, 5438, 5446, 5448, + 5450, 5452, 5454, 5456, 5462, 5465, 5474, 5483, + 5489, 5498, 5504, 5519, 5525, 5533, 5541, 5549, + 5567, 5575, 5593, 5601, 5619, 5627, 5645, 5653, + 5665, 5673, 5676, 5684, 5696, 5704, 5707, 5715, + 5727, 5735, 5738, 5746, 5758, 5766, 5769, 5772, + 5775, 5781, 5787, 5799, 5805, 5808, 5817, 5823, + 5838, 5844, 5847, 5849, 5857, 5872, 5878, 5881, + 5887, 5897, 5913, 5916, 5923, 5936, 5938, 5946, + 5956, 5964, 5974, 5983, 5991, 5997, 6005, 6013, + 6023, 6031, 6041, 6050, 6058, 6064, 6073, 6075, + 6089, 6101, 6115, 6127, 6141, 6153, 6167, 6177, + 6180, 6193, 6206, 6209, 6222, 6235, 6245, 6248, + 6261, 6274, 6284, 6287, 6300, 6313, 6323, 6326, + 6332, 6335, 6343, 6351, 6354, 6357, 6360, 6366, + 6369, 6377, 6385, 6388, 6391, 6393, 6401, 6409, + 6417, 6425, 6433, 6448, 6454, 6457, 6460, 6463, + 6465, 6473, 6481, 6489, 6501, 6507, 6519, 6525, + 6537, 6543, 6558, 6564, 6567, 6570, 6573, 6576, + 6579, 6585, 6591, 6599, 6607, 6619, 6625, 6638, + 6640, 6643, 6646, 6649, 6662, 6664, 6665, 6668, + 6671, 6673, 6685, 6688, 6689, 6696, 6703, 6705, + 6713, 6725, 6731, 6739, 6747, 6759, 6765, 6781, + 6784, 6787, 6790, 6793, 6795, 6803, 6811, 6819, + 6831, 6837, 6853, 6856, 6859, 6862, 6864, 6872, + 6882, 6888, 6896, 6904, 6911, 6945, 6958, 6960, + 6963, 6977, 6980, 7021, 7030, 7033, 7036, 7042, + 7050, 7058, 7067, 7104, 7107, 7110, 7116, 7124, + 7132, 7145, 7186, 7189, 7192, 7198, 7206, 7214, + 7229, 7263, 7266, 7269, 7272, 7308, 7320, 7332, + 7338, 7346, 7354, 7362, 7370, 7378, 7386, 7394, + 7402, 7410, 7418, 7433, 7439, 7452, 7454, 7457, + 7460, 7463, 7466, 7469, 7472, 7475, 7478, 7480, + 7482, 7488, 7490, 7492, 7494, 7500, 7502, 7508, + 7518, 7520, 7526, 7530, 7532, 7534, 7536, 7538, + 7544, 7550, 7552, 7554, 7560, 7562, 7564, 7566, + 7572, 7574, 7576, 7578, 7584, 7590, 7592, 7594, + 7596, 7602, 7606, 7608, 7610, 7616, 7618, 7620, + 7622, 7628, 7636, 7638, 7640, 7646, 7648, 7650, + 7652, 7653, 7659, 7660, 7666, 7670, 7672, 7674, + 7676, 7682, 7684, 7686, 7688, 7694, 7696, 7698, + 7700, 7702, 7704, 7706, 7708, 7714, 7718, 7720, + 7726, 7732, 7738, 7739, 7745, 7746, 7752, 7754, + 7760, 7766, 7770, 7772, 7774, 7776, 7782, 7788, + 7794, 7796, 7798, 7800, 7806, 7808, 7814, 7822, + 7824, 7831, 7839, 7841, 7843, 7845, 7847, 7853, + 7855, 7857, 7859, 7861, 7863, 7865, 7867, 7869, + 7871, 7877, 7879, 7881, 7887, 7893, 7899, 7901, + 7903, 7905, 7911, 7917, 7929, 7931, 7933, 7935, + 7937, 7943, 7945, 7951, 7953, 7959, 7961, 7967, + 7969, 7971, 7973, 7979, 7981, 7983, 7989, 7995, + 7997, 7999, 8005, 8007, 8013, 8015, 8017, 8019, + 8027, 8029, 8031, 8037, 8039, 8041, 8043, 8045, + 8047, 8053, 8055, 8057, 8059, 8061, 8063, 8069, + 8078, 8084, 8090, 8092, 8100, 8108, 8116, 8128, + 8134, 8147, 8149, 8152, 8155, 8158, 8165, 8167, + 8169, 8177, 8185, 8193, 8201, 8209, 8222, 8228, + 8240, 8246, 8253, 8259, 8266, 8273, 8279, 8286, + 8298, 8304, 8305, 8306, 8307, 8308, 8309, 8312, + 8318, 8330, 8333, 8336, 8339, 8341, 8349, 8357, + 8365, 8373, 8381, 8394, 8400, 8406, 8418, 8421, + 8424, 8427, 8429, 8437, 8445, 8453, 8461, 8469, + 8481, 8487, 8503, 8506, 8509, 8512, 8515, 8517, + 8525, 8533, 8541, 8547, 8550, 8552, 8560, 8568, + 8576, 8584, 8592, 8604, 8610, 8626, 8629, 8632, + 8635, 8638, 8640, 8648, 8657, 8666, 8669, 8671, + 8679, 8691, 8697, 8703, 8709, 8710, 8716, 8722, + 8728, 8734, 8741, 8744, 8750, 8756, 8757, 8763, + 8769, 8776, 8782, 8788, 8789, 8795, 8801, 8808, + 8810, 8818, 8826, 8834, 8846, 8852, 8855, 8858, + 8860, 8868, 8880, 8886, 8898, 8904, 8907, 8910, + 8912, 8920, 8935, 8941, 8947, 8950, 8954, 8958, + 8960, 8966, 8978, 8984, 8992, 9000, 9015, 9021, + 9024, 9027, 9030, 9032, 9034, 9036, 9042, 9044, + 9046, 9048, 9050, 9058, 9076, 9109, 9163, 9219, + 9237, 9293, 9311, 9344, 9415, 9486, 9486, 9486, + 9486, 9486, 9498, 9498, 9498, 9498, 9514, 9514, + 9531, 9534, 9534, 9580, 9583, 9583, 9599, 9602, + 9614, 9614, 9630, 9633, 9636, 9636, 9636, 9655, + 9658, 9658, 9658, 9658, 9658, 9658, 9658, 9658, + 9658, 9658, 9658, 9674, 9677, 9677, 9677, 9687, + 9690, 9702, 9705, 9717, 9720, 9732, 9735, 9735, + 9735, 9735, 9735, 9748, 9751, 9751, 9767, 9770, + 9770, 9786, 9789, 9789, 9803, 9806, 9819, 9822, + 9863, 9872, 9872, 9872, 9872, 9872, 9872, 9872, + 9872, 9888, 9891, 9891, 9891, 9907, 9910, 9910, + 9910, 9910, 9910, 9910, 9910, 9910 }; static const short _zone_scanner_trans_keys[] = { @@ -2153,6 +2191,8 @@ static const short _zone_scanner_trans_keys[] = { 3082, 3131, 3338, 3387, 3594, 3643, 75, 107, 69, 101, 89, 121, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, + 40, 41, 89, 121, 3082, 3131, 3338, 3387, + 3594, 3643, 78, 110, 67, 99, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 85, 117, 73, 105, 52, 54, 56, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, @@ -2547,7 +2587,9 @@ static const short _zone_scanner_trans_keys[] = { 101, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 75, 107, 69, 101, 89, 121, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 9, 32, 40, 41, 3082, + 3387, 3594, 3643, 9, 32, 40, 41, 89, + 121, 3082, 3131, 3338, 3387, 3594, 3643, 78, + 110, 67, 99, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 85, 117, 73, 105, 52, 54, 56, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 52, 9, @@ -2764,277 +2806,282 @@ static const short _zone_scanner_trans_keys[] = { 9, 10, 40, 41, 80, 112, 75, 107, 73, 105, 32, 59, 9, 10, 40, 41, 82, 114, 73, 105, 32, 59, 9, 10, - 40, 41, 46, 48, 57, 32, 46, 59, - 9, 10, 40, 41, 48, 57, 42, 92, - 95, 45, 57, 64, 90, 97, 122, 32, - 59, 9, 10, 40, 41, 42, 92, 95, - 45, 57, 64, 90, 97, 122, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, - 42, 92, 95, 2058, 2107, 45, 57, 64, - 90, 97, 122, 9, 32, 40, 41, 2058, - 2107, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, + 40, 41, 78, 110, 48, 57, 32, 59, + 9, 10, 40, 41, 48, 57, 79, 111, + 84, 116, 73, 105, 70, 102, 89, 121, + 32, 59, 9, 10, 40, 41, 46, 48, + 57, 32, 46, 59, 9, 10, 40, 41, + 48, 57, 42, 92, 95, 45, 57, 64, + 90, 97, 122, 32, 59, 9, 10, 40, + 41, 42, 92, 95, 45, 57, 64, 90, + 97, 122, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 42, 92, 95, 2058, + 2107, 45, 57, 64, 90, 97, 122, 9, + 32, 40, 41, 2058, 2107, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 68, 72, 77, 83, 87, 100, 104, + 109, 115, 119, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 68, 72, 77, 83, 87, + 100, 104, 109, 115, 119, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 68, 72, 77, 83, 87, 100, 104, 109, 115, 119, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 68, - 72, 77, 83, 87, 100, 104, 109, 115, - 119, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 68, 72, 77, 83, 87, 100, 104, - 109, 115, 119, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 32, - 59, 68, 72, 77, 83, 87, 100, 104, - 109, 115, 119, 9, 10, 40, 41, 48, + 2107, 48, 57, 32, 59, 68, 72, 77, + 83, 87, 100, 104, 109, 115, 119, 9, + 10, 40, 41, 48, 57, 32, 59, 9, + 10, 40, 41, 48, 57, 68, 72, 77, + 83, 87, 100, 104, 109, 115, 119, 48, 57, 32, 59, 9, 10, 40, 41, 48, - 57, 68, 72, 77, 83, 87, 100, 104, - 109, 115, 119, 48, 57, 32, 59, 9, - 10, 40, 41, 48, 57, 2058, 1920, 2175, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 68, 72, 77, 83, 87, 100, 104, 109, - 115, 119, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 2058, 1920, 2175, 9, - 32, 40, 41, 2058, 2107, 48, 57, 68, - 72, 77, 83, 87, 100, 104, 109, 115, - 119, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 2058, 1920, 2175, 9, 32, - 40, 41, 2058, 2107, 48, 57, 68, 72, - 77, 83, 87, 100, 104, 109, 115, 119, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 32, 59, 9, 10, 40, - 41, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 2058, 2107, -128, 8, 11, - 58, 60, 127, 32, 59, 9, 10, 40, - 41, 2058, 1920, 2175, 42, 92, 95, 45, - 57, 64, 90, 97, 122, 9, 32, 40, - 41, 2058, 2107, 9, 32, 40, 41, 42, - 92, 95, 2058, 2107, 45, 57, 64, 90, - 97, 122, 32, 59, 9, 10, 40, 41, - 2058, 1920, 2175, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 42, 92, 95, 2058, 2107, 45, 57, - 64, 90, 97, 122, 32, 59, 9, 10, - 40, 41, 2058, 1920, 2175, 32, 59, 9, - 10, 40, 41, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, -128, - 8, 11, 58, 60, 127, 2058, 1920, 2175, - 46, 48, 58, 65, 70, 97, 102, 32, - 46, 59, 9, 10, 40, 41, 48, 58, - 65, 70, 97, 102, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 78, 83, 2058, 2107, 48, 57, + 57, 2058, 1920, 2175, 9, 32, 40, 41, + 2058, 2107, 48, 57, 68, 72, 77, 83, + 87, 100, 104, 109, 115, 119, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 78, 83, 2058, 2107, - 48, 57, 9, 32, 40, 41, 46, 2058, - 2107, 48, 57, 9, 32, 40, 41, 78, - 83, 2058, 2107, 9, 32, 40, 41, 2058, - 2107, 9, 32, 40, 41, 2058, 2107, 48, + 2058, 1920, 2175, 9, 32, 40, 41, 2058, + 2107, 48, 57, 68, 72, 77, 83, 87, + 100, 104, 109, 115, 119, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 2058, + 1920, 2175, 9, 32, 40, 41, 2058, 2107, + 48, 57, 68, 72, 77, 83, 87, 100, + 104, 109, 115, 119, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 32, + 59, 9, 10, 40, 41, 9, 32, 40, + 41, 2058, 2107, 9, 32, 40, 41, 2058, + 2107, -128, 8, 11, 58, 60, 127, 32, + 59, 9, 10, 40, 41, 2058, 1920, 2175, + 42, 92, 95, 45, 57, 64, 90, 97, + 122, 9, 32, 40, 41, 2058, 2107, 9, + 32, 40, 41, 42, 92, 95, 2058, 2107, + 45, 57, 64, 90, 97, 122, 32, 59, + 9, 10, 40, 41, 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 69, 87, 2058, - 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 69, - 87, 2058, 2107, 48, 57, 9, 32, 40, - 41, 46, 2058, 2107, 48, 57, 9, 32, - 40, 41, 69, 87, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, - 45, 2058, 2107, 48, 57, 48, 57, 9, - 32, 40, 41, 46, 109, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 9, 32, 40, 41, 46, 109, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 9, + 57, 9, 32, 40, 41, 42, 92, 95, + 2058, 2107, 45, 57, 64, 90, 97, 122, + 32, 59, 9, 10, 40, 41, 2058, 1920, + 2175, 32, 59, 9, 10, 40, 41, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 9, 32, 40, 41, 46, + 3643, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, -128, 8, 11, 58, 60, + 127, 2058, 1920, 2175, 46, 48, 58, 65, + 70, 97, 102, 32, 46, 59, 9, 10, + 40, 41, 48, 58, 65, 70, 97, 102, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 78, 83, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 78, 83, 2058, 2107, 48, 57, 9, 32, + 40, 41, 46, 2058, 2107, 48, 57, 9, + 32, 40, 41, 78, 83, 2058, 2107, 9, + 32, 40, 41, 2058, 2107, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 69, 87, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 69, 87, 2058, 2107, 48, + 57, 9, 32, 40, 41, 46, 2058, 2107, + 48, 57, 9, 32, 40, 41, 69, 87, + 2058, 2107, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 45, 2058, 2107, 48, + 57, 48, 57, 9, 32, 40, 41, 46, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 46, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, - 9, 32, 40, 41, 109, 3082, 3131, 3338, + 3131, 3338, 3387, 3594, 3643, 48, 57, 9, + 32, 40, 41, 46, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, - 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, - 48, 57, 2058, 1920, 2175, 9, 32, 40, - 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, - 48, 57, 9, 32, 40, 41, 109, 3082, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 9, 32, 40, 41, 46, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 109, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 2058, 1920, + 2175, 9, 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 2058, 1920, 2175, 9, 32, 40, 41, 109, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 40, 41, 109, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, - 1920, 2175, 9, 32, 40, 41, 2058, 2107, - 2058, 1920, 2175, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 2058, 1920, 2175, 2058, 1920, - 2175, 2058, 1920, 2175, 9, 32, 40, 41, - 2058, 2107, 2058, 1920, 2175, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 2058, 1920, 2175, - 2058, 1920, 2175, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 42, 92, 95, 2058, 2107, 45, 57, - 64, 90, 97, 122, 32, 59, 9, 10, - 40, 41, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, + 48, 57, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, + 32, 40, 41, 109, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 9, 32, 40, 41, + 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, + 40, 41, 2058, 2107, 2058, 1920, 2175, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 2058, + 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, + 9, 32, 40, 41, 2058, 2107, 2058, 1920, + 2175, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 2058, 1920, 2175, 2058, 1920, 2175, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 42, 92, 95, + 2058, 2107, 45, 57, 64, 90, 97, 122, + 32, 59, 9, 10, 40, 41, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, -128, + 8, 11, 58, 60, 127, 9, 32, 40, + 41, 2058, 2107, 9, 32, 40, 41, 2058, + 2107, -128, 8, 11, 58, 60, 127, 9, + 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, -128, 8, 11, 58, 60, 127, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 2058, 2107, -128, 8, 11, - 58, 60, 127, 9, 32, 40, 41, 2058, - 2107, 9, 32, 40, 41, 2058, 2107, -128, - 8, 11, 58, 60, 127, 9, 32, 40, - 41, 2058, 2107, 9, 32, 40, 41, 42, - 92, 95, 2058, 2107, 45, 57, 64, 90, - 97, 122, 32, 59, 9, 10, 40, 41, + 32, 40, 41, 42, 92, 95, 2058, 2107, + 45, 57, 64, 90, 97, 122, 32, 59, + 9, 10, 40, 41, 2058, 1920, 2175, 2058, + 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, + 2058, 1920, 2175, 48, 57, 65, 90, 97, + 122, 9, 32, 40, 41, 2058, 2107, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 65, + 90, 97, 122, 9, 32, 40, 41, 2058, + 2107, 9, 32, 40, 41, 43, 2058, 2107, + 47, 57, 65, 90, 97, 122, 2570, 2619, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, + 2175, 9, 32, 33, 40, 41, 49, 50, + 3082, 3131, 3338, 3387, 3594, 3643, 49, 50, + 58, 46, 48, 57, 47, 46, 57, 48, + 57, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 48, 57, 2058, 1920, 2175, + 58, 46, 48, 58, 65, 70, 97, 102, + 47, 46, 58, 65, 70, 97, 102, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 65, 90, 97, 122, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 65, 90, 97, 122, 9, - 32, 40, 41, 2058, 2107, 9, 32, 40, - 41, 43, 2058, 2107, 47, 57, 65, 90, - 97, 122, 2570, 2619, 2058, 1920, 2175, 2058, - 1920, 2175, 2058, 1920, 2175, 9, 32, 33, - 40, 41, 49, 50, 3082, 3131, 3338, 3387, - 3594, 3643, 49, 50, 58, 46, 48, 57, - 47, 46, 57, 48, 57, 9, 32, 40, + 2107, 48, 57, 65, 70, 97, 102, 48, + 57, 65, 70, 97, 102, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 2058, 1920, 2175, 58, 46, 48, 58, - 65, 70, 97, 102, 47, 46, 58, 65, - 70, 97, 102, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 65, 90, 97, - 122, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 65, - 70, 97, 102, 48, 57, 65, 70, 97, - 102, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 65, 70, 97, - 102, 2058, 1920, 2175, 2058, 1920, 2175, 2058, - 1920, 2175, 2058, 1920, 2175, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 65, - 70, 97, 102, 48, 57, 65, 70, 97, - 102, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 65, 70, 97, - 102, 2058, 1920, 2175, 2058, 1920, 2175, 2058, - 1920, 2175, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 48, 49, 50, 51, 2058, 2107, 9, 32, + 57, 65, 70, 97, 102, 2058, 1920, 2175, + 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, + 2175, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 65, 70, 97, 102, 48, + 57, 65, 70, 97, 102, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 65, 70, 97, 102, 2058, 1920, 2175, + 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 48, 49, 50, 51, + 2058, 2107, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 46, 2058, 2107, 7177, + 7200, 7208, 7209, 7433, 7456, 7464, 7465, 7689, + 7712, 7720, 7721, 10506, 10555, 10762, 10811, 11274, + 11323, 11530, 11579, 11786, 11835, 12298, 12347, 12554, + 12603, 12810, 12859, 13322, 13371, 13578, 13627, 13834, + 13883, 4105, 4128, 4136, 4137, 4139, 5130, 5179, + 4143, 4153, 4161, 4186, 4193, 4218, 2570, 2619, + 5130, 4992, 5247, 5641, 5664, 5672, 5673, 14602, + 14651, 14858, 14907, 15370, 15419, 15626, 15675, 15882, + 15931, 6666, 6528, 6783, 4139, 7177, 7200, 7208, + 7209, 7433, 7456, 7464, 7465, 7689, 7712, 7720, + 7721, 10506, 10555, 10762, 10811, 11274, 11323, 11530, + 11579, 11786, 11835, 12298, 12347, 12554, 12603, 12810, + 12859, 13322, 13371, 13578, 13627, 13834, 13883, 4143, + 4153, 4161, 4186, 4193, 4218, 8714, 9226, 9738, + 8576, 8831, 9088, 9343, 9600, 9855, 2058, 1920, + 2175, 2058, 1920, 2175, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 46, 2058, + 2107, 48, 57, 46, 7177, 7200, 7208, 7209, + 7433, 7456, 7464, 7465, 7689, 7712, 7720, 7721, + 10506, 10555, 10762, 10811, 11274, 11323, 11530, 11579, + 11786, 11835, 12298, 12347, 12554, 12603, 12810, 12859, + 13322, 13371, 13578, 13627, 13834, 13883, 48, 57, + 2058, 1920, 2175, 2058, 1920, 2175, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, - 46, 2058, 2107, 7177, 7200, 7208, 7209, 7433, - 7456, 7464, 7465, 7689, 7712, 7720, 7721, 10506, - 10555, 10762, 10811, 11274, 11323, 11530, 11579, 11786, - 11835, 12298, 12347, 12554, 12603, 12810, 12859, 13322, - 13371, 13578, 13627, 13834, 13883, 4105, 4128, 4136, - 4137, 4139, 5130, 5179, 4143, 4153, 4161, 4186, - 4193, 4218, 2570, 2619, 5130, 4992, 5247, 5641, - 5664, 5672, 5673, 14602, 14651, 14858, 14907, 15370, - 15419, 15626, 15675, 15882, 15931, 6666, 6528, 6783, - 4139, 7177, 7200, 7208, 7209, 7433, 7456, 7464, - 7465, 7689, 7712, 7720, 7721, 10506, 10555, 10762, - 10811, 11274, 11323, 11530, 11579, 11786, 11835, 12298, - 12347, 12554, 12603, 12810, 12859, 13322, 13371, 13578, - 13627, 13834, 13883, 4143, 4153, 4161, 4186, 4193, - 4218, 8714, 9226, 9738, 8576, 8831, 9088, 9343, - 9600, 9855, 2058, 1920, 2175, 2058, 1920, 2175, + 46, 2058, 2107, 48, 58, 65, 70, 97, + 102, 46, 7177, 7200, 7208, 7209, 7433, 7456, + 7464, 7465, 7689, 7712, 7720, 7721, 10506, 10555, + 10762, 10811, 11274, 11323, 11530, 11579, 11786, 11835, + 12298, 12347, 12554, 12603, 12810, 12859, 13322, 13371, + 13578, 13627, 13834, 13883, 48, 58, 65, 70, + 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 46, 2058, 2107, 48, 57, 46, - 7177, 7200, 7208, 7209, 7433, 7456, 7464, 7465, - 7689, 7712, 7720, 7721, 10506, 10555, 10762, 10811, - 11274, 11323, 11530, 11579, 11786, 11835, 12298, 12347, - 12554, 12603, 12810, 12859, 13322, 13371, 13578, 13627, - 13834, 13883, 48, 57, 2058, 1920, 2175, 2058, - 1920, 2175, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 2058, 2107, 48, 57, + 40, 41, 42, 92, 95, 2058, 2107, 45, + 57, 64, 90, 97, 122, 7177, 7200, 7208, + 7209, 7433, 7456, 7464, 7465, 7689, 7712, 7720, + 7721, 10506, 10555, 10762, 10811, 11274, 11323, 11530, + 11579, 11786, 11835, 12298, 12347, 12554, 12603, 12810, + 12859, 13322, 13371, 13578, 13627, 13834, 13883, 2058, + 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, + 65, 67, 68, 69, 72, 73, 75, 76, + 77, 78, 79, 80, 82, 83, 84, 85, + 87, 90, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 9, 32, 40, 41, + 65, 70, 80, 97, 102, 112, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 46, 2058, 2107, 48, - 58, 65, 70, 97, 102, 46, 7177, 7200, - 7208, 7209, 7433, 7456, 7464, 7465, 7689, 7712, - 7720, 7721, 10506, 10555, 10762, 10811, 11274, 11323, - 11530, 11579, 11786, 11835, 12298, 12347, 12554, 12603, - 12810, 12859, 13322, 13371, 13578, 13627, 13834, 13883, - 48, 58, 65, 70, 97, 102, 2058, 1920, - 2175, 2058, 1920, 2175, 9, 32, 40, 41, + 65, 90, 97, 122, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 42, 92, 95, 2058, 2107, 45, 57, 64, 90, 97, - 122, 7177, 7200, 7208, 7209, 7433, 7456, 7464, - 7465, 7689, 7712, 7720, 7721, 10506, 10555, 10762, - 10811, 11274, 11323, 11530, 11579, 11786, 11835, 12298, - 12347, 12554, 12603, 12810, 12859, 13322, 13371, 13578, - 13627, 13834, 13883, 2058, 1920, 2175, 2058, 1920, - 2175, 2058, 1920, 2175, 65, 67, 68, 69, - 72, 73, 75, 76, 77, 78, 79, 80, - 82, 83, 84, 85, 87, 90, 97, 99, - 100, 101, 104, 105, 107, 108, 109, 110, - 111, 112, 114, 115, 116, 117, 119, 122, - 9, 32, 40, 41, 65, 70, 80, 97, - 102, 112, 2058, 2107, 9, 32, 40, 41, - 2058, 2107, 48, 57, 65, 90, 97, 122, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 42, 92, 95, 2058, 2107, 45, - 57, 64, 90, 97, 122, 9, 32, 40, - 41, 2058, 2107, 9, 32, 40, 41, 43, - 2058, 2107, 47, 57, 65, 90, 97, 122, - 2570, 2619, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, + 122, 9, 32, 40, 41, 2058, 2107, 9, + 32, 40, 41, 43, 2058, 2107, 47, 57, + 65, 90, 97, 122, 2570, 2619, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, - 1920, 2175, 65, 97, 65, 97, 9, 32, - 40, 41, 2058, 2107, 83, 115, 68, 100, - 66, 98, 9, 32, 40, 41, 2058, 2107, - 76, 108, 9, 32, 40, 41, 2058, 2107, - 65, 68, 69, 78, 83, 97, 100, 101, - 110, 115, 65, 97, 9, 32, 40, 41, - 2058, 2107, 78, 83, 110, 115, 83, 115, + 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, + 2058, 1920, 2175, 2058, 1920, 2175, 65, 97, + 65, 97, 9, 32, 40, 41, 2058, 2107, + 83, 115, 68, 100, 66, 98, 9, 32, + 40, 41, 2058, 2107, 76, 108, 9, 32, + 40, 41, 2058, 2107, 65, 68, 69, 78, + 83, 97, 100, 101, 110, 115, 65, 97, + 9, 32, 40, 41, 2058, 2107, 78, 83, + 110, 115, 83, 115, 75, 107, 69, 101, + 89, 121, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 2058, 2107, 82, 114, + 84, 116, 9, 32, 40, 41, 2058, 2107, + 65, 97, 77, 109, 69, 101, 9, 32, + 40, 41, 2058, 2107, 89, 121, 78, 110, + 67, 99, 9, 32, 40, 41, 2058, 2107, + 72, 78, 83, 104, 110, 115, 67, 99, + 73, 105, 68, 100, 9, 32, 40, 41, + 2058, 2107, 65, 83, 97, 115, 77, 109, + 69, 101, 9, 32, 40, 41, 2058, 2107, 75, 107, 69, 101, 89, 121, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, - 2058, 2107, 82, 114, 84, 116, 9, 32, - 40, 41, 2058, 2107, 65, 97, 77, 109, - 69, 101, 9, 32, 40, 41, 2058, 2107, - 89, 121, 78, 110, 67, 99, 9, 32, - 40, 41, 2058, 2107, 72, 78, 83, 104, - 110, 115, 67, 99, 73, 105, 68, 100, - 9, 32, 40, 41, 2058, 2107, 65, 83, - 97, 115, 77, 109, 69, 101, 9, 32, - 40, 41, 2058, 2107, 75, 107, 69, 101, - 89, 121, 9, 32, 40, 41, 2058, 2107, + 89, 121, 2058, 2107, 78, 110, 67, 99, 9, 32, 40, 41, 2058, 2107, 85, 117, 73, 105, 52, 54, 56, 9, 32, 40, 41, 2058, 2107, 52, 9, 32, 40, 41, @@ -3198,114 +3245,127 @@ static const short _zone_scanner_trans_keys[] = { 9, 32, 40, 41, 42, 92, 95, 2058, 2107, 45, 57, 64, 90, 97, 122, 32, 59, 9, 10, 40, 41, 32, 59, 9, - 10, 40, 41, 2058, 1920, 2175, 9, 32, - 36, 40, 41, 42, 92, 95, 1802, 1851, - 2058, 2107, 45, 57, 64, 90, 97, 122, - 9, 32, 36, 40, 41, 42, 58, 92, - 95, 2826, 2875, 3082, 3131, 3338, 3387, 3594, - 3643, -128, 8, 11, 44, 45, 57, 60, - 63, 64, 90, 91, 96, 97, 122, 123, - 127, 9, 32, 36, 40, 41, 42, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 92, 95, 97, 99, 100, 101, 104, - 105, 107, 108, 109, 110, 111, 112, 114, - 115, 116, 117, 119, 122, 1802, 1851, 2058, - 2107, 45, 57, 64, 89, 98, 121, 9, - 32, 36, 40, 41, 42, 65, 67, 68, - 69, 72, 73, 75, 76, 77, 78, 79, - 80, 82, 83, 84, 85, 87, 90, 92, - 95, 97, 99, 100, 101, 104, 105, 107, - 108, 109, 110, 111, 112, 114, 115, 116, - 117, 119, 122, 1802, 1851, 2058, 2107, 45, - 47, 48, 57, 64, 89, 98, 121, 9, - 32, 36, 40, 41, 42, 92, 95, 1802, - 1851, 2058, 2107, 45, 57, 64, 90, 97, - 122, 9, 32, 36, 40, 41, 42, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 92, 95, 97, 99, 100, 101, 104, - 105, 107, 108, 109, 110, 111, 112, 114, - 115, 116, 117, 119, 122, 1802, 1851, 2058, - 2107, 45, 47, 48, 57, 64, 89, 98, - 121, 9, 32, 36, 40, 41, 42, 92, - 95, 1802, 1851, 2058, 2107, 45, 57, 64, - 90, 97, 122, 9, 32, 36, 40, 41, - 42, 58, 92, 95, 2826, 2875, 3082, 3131, - 3338, 3387, 3594, 3643, -128, 8, 11, 44, - 45, 57, 60, 63, 64, 90, 91, 96, - 97, 122, 123, 127, 9, 32, 36, 40, - 41, 42, 58, 65, 67, 68, 69, 72, + 10, 40, 41, 2058, 1920, 2175, 67, 84, + 99, 116, 68, 83, 100, 115, 83, 115, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 2058, 2107, 48, 57, 65, 90, + 97, 122, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 42, 92, 95, 2058, + 2107, 45, 57, 64, 90, 97, 122, 32, + 59, 9, 10, 40, 41, 2058, 1920, 2175, + 2058, 1920, 2175, 2058, 1920, 2175, 89, 121, + 78, 110, 67, 99, 9, 32, 40, 41, + 2058, 2107, 89, 121, 80, 112, 69, 101, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 36, 40, 41, 42, + 92, 95, 1802, 1851, 2058, 2107, 45, 57, + 64, 90, 97, 122, 9, 32, 36, 40, + 41, 42, 58, 92, 95, 2826, 2875, 3082, + 3131, 3338, 3387, 3594, 3643, -128, 8, 11, + 44, 45, 57, 60, 63, 64, 90, 91, + 96, 97, 122, 123, 127, 9, 32, 36, + 40, 41, 42, 65, 67, 68, 69, 72, 73, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 90, 92, 95, 97, 99, 100, 101, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 119, - 122, 2826, 2875, 3082, 3131, 3338, 3387, 3594, - 3643, -128, 8, 11, 44, 45, 47, 48, - 57, 60, 63, 64, 89, 91, 96, 98, - 121, 123, 127, 9, 32, 36, 40, 41, - 42, 58, 65, 67, 68, 69, 72, 73, - 75, 76, 77, 78, 79, 80, 82, 83, - 84, 85, 87, 90, 92, 95, 97, 99, - 100, 101, 104, 105, 107, 108, 109, 110, - 111, 112, 114, 115, 116, 117, 119, 122, + 122, 1802, 1851, 2058, 2107, 45, 57, 64, + 89, 98, 121, 9, 32, 36, 40, 41, + 42, 65, 67, 68, 69, 72, 73, 75, + 76, 77, 78, 79, 80, 82, 83, 84, + 85, 87, 90, 92, 95, 97, 99, 100, + 101, 104, 105, 107, 108, 109, 110, 111, + 112, 114, 115, 116, 117, 119, 122, 1802, + 1851, 2058, 2107, 45, 47, 48, 57, 64, + 89, 98, 121, 9, 32, 36, 40, 41, + 42, 92, 95, 1802, 1851, 2058, 2107, 45, + 57, 64, 90, 97, 122, 9, 32, 36, + 40, 41, 42, 65, 67, 68, 69, 72, + 73, 75, 76, 77, 78, 79, 80, 82, + 83, 84, 85, 87, 90, 92, 95, 97, + 99, 100, 101, 104, 105, 107, 108, 109, + 110, 111, 112, 114, 115, 116, 117, 119, + 122, 1802, 1851, 2058, 2107, 45, 47, 48, + 57, 64, 89, 98, 121, 9, 32, 36, + 40, 41, 42, 92, 95, 1802, 1851, 2058, + 2107, 45, 57, 64, 90, 97, 122, 9, + 32, 36, 40, 41, 42, 58, 92, 95, 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643, - -128, 8, 11, 44, 45, 47, 48, 57, - 60, 63, 64, 89, 91, 96, 98, 121, - 123, 127, 32, 33, 59, 92, 9, 10, - 35, 39, 40, 41, 42, 126, 9, 32, - 40, 41, 42, 46, 92, 95, 2058, 2107, - 45, 57, 65, 90, 97, 122, 9, 32, - 40, 41, 43, 3082, 3131, 3338, 3387, 3594, - 3643, 47, 57, 65, 90, 97, 122, 2058, - 1920, 2175, 9, 32, 40, 41, 65, 67, + -128, 8, 11, 44, 45, 57, 60, 63, + 64, 90, 91, 96, 97, 122, 123, 127, + 9, 32, 36, 40, 41, 42, 58, 65, + 67, 68, 69, 72, 73, 75, 76, 77, + 78, 79, 80, 82, 83, 84, 85, 87, + 90, 92, 95, 97, 99, 100, 101, 104, + 105, 107, 108, 109, 110, 111, 112, 114, + 115, 116, 117, 119, 122, 2826, 2875, 3082, + 3131, 3338, 3387, 3594, 3643, -128, 8, 11, + 44, 45, 47, 48, 57, 60, 63, 64, + 89, 91, 96, 98, 121, 123, 127, 9, + 32, 36, 40, 41, 42, 58, 65, 67, 68, 69, 72, 73, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 90, - 97, 99, 100, 101, 104, 105, 107, 108, - 109, 110, 111, 112, 114, 115, 116, 117, - 119, 122, 3082, 3131, 3338, 3387, 3594, 3643, - 2058, 1920, 2175, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 65, - 70, 97, 102, 2058, 1920, 2175, 9, 32, - 40, 41, 2058, 2107, 48, 57, 65, 70, - 97, 102, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 65, 70, - 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, - 9, 32, 40, 41, 97, 100, 101, 105, - 107, 109, 110, 111, 112, 3082, 3131, 3338, - 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - -128, 8, 11, 58, 60, 127, 2058, 1920, - 2175, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 48, 57, 2058, 1920, 2175, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 2058, 1920, 2175, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 2058, 1920, 2175, 9, 32, 33, 40, 41, - 49, 50, 3082, 3131, 3338, 3387, 3594, 3643, - 2058, 1920, 2175, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 65, - 70, 97, 102, 2058, 1920, 2175, 9, 32, + 92, 95, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 2826, 2875, 3082, 3131, + 3338, 3387, 3594, 3643, -128, 8, 11, 44, + 45, 47, 48, 57, 60, 63, 64, 89, + 91, 96, 98, 121, 123, 127, 32, 33, + 59, 92, 9, 10, 35, 39, 40, 41, + 42, 126, 9, 32, 40, 41, 42, 46, + 92, 95, 2058, 2107, 45, 57, 65, 90, + 97, 122, 9, 32, 40, 41, 43, 3082, + 3131, 3338, 3387, 3594, 3643, 47, 57, 65, + 90, 97, 122, 2058, 1920, 2175, 9, 32, + 40, 41, 65, 67, 68, 69, 72, 73, + 75, 76, 77, 78, 79, 80, 82, 83, + 84, 85, 87, 90, 97, 99, 100, 101, + 104, 105, 107, 108, 109, 110, 111, 112, + 114, 115, 116, 117, 119, 122, 3082, 3131, + 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 65, 70, 97, 102, 2058, + 1920, 2175, 9, 32, 40, 41, 2058, 2107, + 48, 57, 65, 70, 97, 102, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 65, 70, 97, 102, 2058, 1920, - 2175, 5641, 5664, 5672, 5673, 14602, 14651, 14858, - 14907, 15370, 15419, 15626, 15675, 15882, 15931, 6666, - 6528, 6783, 4105, 4128, 4136, 4137, 4139, 5130, - 5179, 4143, 4153, 4161, 4186, 4193, 4218, 5130, - 4992, 5247, 4139, 7177, 7200, 7208, 7209, 7433, - 7456, 7464, 7465, 7689, 7712, 7720, 7721, 10506, - 10555, 10762, 10811, 11274, 11323, 11530, 11579, 11786, - 11835, 12298, 12347, 12554, 12603, 12810, 12859, 13322, - 13371, 13578, 13627, 13834, 13883, 4143, 4153, 4161, - 4186, 4193, 4218, 8714, 9226, 9738, 8576, 8831, - 9088, 9343, 9600, 9855, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 65, 70, 97, 102, 2058, 1920, 2175, 9, + 2175, 2058, 1920, 2175, 9, 32, 40, 41, + 97, 100, 101, 105, 107, 109, 110, 111, + 112, 3082, 3131, 3338, 3387, 3594, 3643, 2058, + 1920, 2175, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, -128, 8, 11, 58, + 60, 127, 2058, 1920, 2175, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, + 1920, 2175, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 2058, 1920, + 2175, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 48, 57, 2058, 1920, 2175, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 2058, 1920, 2175, 9, + 32, 33, 40, 41, 49, 50, 3082, 3131, + 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 65, 70, 97, 102, 2058, - 1920, 2175, 0 + 1920, 2175, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 65, 70, + 97, 102, 2058, 1920, 2175, 5641, 5664, 5672, + 5673, 14602, 14651, 14858, 14907, 15370, 15419, 15626, + 15675, 15882, 15931, 6666, 6528, 6783, 4105, 4128, + 4136, 4137, 4139, 5130, 5179, 4143, 4153, 4161, + 4186, 4193, 4218, 5130, 4992, 5247, 4139, 7177, + 7200, 7208, 7209, 7433, 7456, 7464, 7465, 7689, + 7712, 7720, 7721, 10506, 10555, 10762, 10811, 11274, + 11323, 11530, 11579, 11786, 11835, 12298, 12347, 12554, + 12603, 12810, 12859, 13322, 13371, 13578, 13627, 13834, + 13883, 4143, 4153, 4161, 4186, 4193, 4218, 8714, + 9226, 9738, 8576, 8831, 9088, 9343, 9600, 9855, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 65, 70, 97, 102, + 2058, 1920, 2175, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 65, + 70, 97, 102, 2058, 1920, 2175, 0 }; static const char _zone_scanner_single_lengths[] = { @@ -3315,10 +3375,57 @@ static const char _zone_scanner_single_lengths[] = { 2, 2, 2, 10, 10, 2, 2, 10, 2, 2, 2, 10, 2, 2, 2, 10, 6, 2, 2, 2, 10, 4, 2, 2, - 10, 2, 2, 2, 10, 10, 2, 2, - 2, 1, 10, 1, 10, 4, 2, 2, - 2, 10, 2, 2, 2, 10, 4, 6, - 42, 2, 2, 2, 2, 2, 2, 2, + 10, 2, 2, 2, 10, 12, 2, 2, + 10, 2, 2, 2, 1, 10, 1, 10, + 4, 2, 2, 2, 10, 2, 2, 2, + 10, 4, 6, 42, 2, 2, 2, 2, + 2, 2, 2, 10, 4, 2, 10, 10, + 6, 1, 10, 1, 10, 2, 10, 10, + 4, 2, 2, 2, 10, 10, 6, 2, + 2, 2, 10, 2, 10, 12, 2, 11, + 12, 2, 2, 2, 2, 10, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 10, + 2, 2, 10, 6, 10, 2, 2, 2, + 10, 10, 12, 2, 2, 2, 2, 10, + 2, 10, 2, 10, 2, 10, 2, 2, + 2, 10, 2, 2, 10, 6, 2, 2, + 10, 2, 10, 2, 2, 0, 10, 2, + 2, 10, 2, 2, 2, 2, 2, 10, + 2, 2, 2, 2, 2, 10, 1, 44, + 4, 6, 42, 16, 6, 10, 6, 1, + 1, 6, 2, 2, 2, 2, 2, 2, + 2, 6, 42, 1, 16, 42, 1, 6, + 10, 6, 1, 16, 48, 18, 13, 44, + 2, 8, 8, 50, 18, 14, 10, 12, + 12, 12, 14, 12, 14, 10, 10, 14, + 20, 14, 10, 10, 10, 2, 14, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 8, 18, 44, 2, 18, 50, 18, 14, + 10, 12, 12, 12, 14, 12, 14, 10, + 10, 14, 20, 14, 10, 10, 10, 9, + 44, 12, 12, 12, 12, 2, 2, 10, + 2, 2, 2, 10, 2, 10, 2, 8, + 8, 12, 12, 12, 12, 1, 50, 12, + 12, 16, 12, 8, 10, 10, 10, 12, + 10, 12, 8, 8, 12, 18, 12, 8, + 8, 8, 2, 2, 10, 2, 3, 1, + 1, 5, 6, 6, 0, 0, 0, 6, + 2, 2, 2, 4, 0, 0, 0, 4, + 6, 6, 2, 0, 0, 0, 6, 6, + 6, 18, 8, 1, 8, 10, 8, 1, + 6, 10, 4, 12, 8, 1, 0, 0, + 0, 4, 8, 1, 6, 6, 8, 12, + 4, 12, 8, 1, 0, 0, 0, 4, + 8, 2, 10, 1, 1, 1, 1, 2, + 2, 11, 1, 1, 10, 46, 16, 2, + 2, 10, 1, 10, 2, 10, 4, 2, + 2, 2, 2, 10, 10, 2, 2, 10, + 2, 2, 2, 10, 2, 2, 2, 10, + 6, 2, 2, 2, 10, 4, 2, 2, + 10, 2, 2, 2, 10, 12, 2, 2, + 10, 2, 2, 2, 1, 10, 1, 10, + 4, 2, 2, 2, 10, 2, 2, 2, + 10, 2, 2, 2, 2, 2, 2, 2, 10, 4, 2, 10, 10, 6, 1, 10, 1, 10, 2, 10, 10, 4, 2, 2, 2, 10, 10, 6, 2, 2, 2, 10, @@ -3331,177 +3438,135 @@ static const char _zone_scanner_single_lengths[] = { 2, 10, 6, 2, 2, 10, 2, 10, 2, 2, 0, 10, 2, 2, 10, 2, 2, 2, 2, 2, 10, 2, 2, 2, - 2, 2, 10, 1, 44, 4, 6, 42, - 16, 6, 10, 6, 1, 1, 6, 2, - 2, 2, 2, 2, 2, 2, 6, 42, - 1, 16, 42, 1, 6, 10, 6, 1, - 16, 48, 18, 13, 44, 2, 8, 8, - 50, 18, 14, 10, 12, 12, 12, 14, - 12, 14, 10, 10, 14, 20, 14, 10, - 10, 10, 2, 14, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 8, 18, 44, - 2, 18, 50, 18, 14, 10, 12, 12, - 12, 14, 12, 14, 10, 10, 14, 20, - 14, 10, 10, 10, 9, 44, 12, 12, - 12, 12, 2, 2, 10, 2, 2, 2, - 10, 2, 10, 2, 8, 8, 12, 12, - 12, 12, 1, 50, 12, 12, 16, 12, - 8, 10, 10, 10, 12, 10, 12, 8, - 8, 12, 18, 12, 8, 8, 8, 2, - 2, 10, 2, 3, 1, 1, 5, 6, - 6, 0, 0, 0, 6, 2, 2, 2, - 4, 0, 0, 0, 4, 6, 6, 2, - 0, 0, 0, 6, 6, 6, 18, 8, - 1, 8, 10, 8, 1, 6, 10, 4, - 12, 8, 1, 0, 0, 0, 4, 8, - 1, 6, 6, 8, 12, 4, 12, 8, - 1, 0, 0, 0, 4, 8, 2, 10, - 1, 1, 1, 1, 2, 2, 11, 1, - 1, 10, 46, 16, 2, 2, 10, 1, - 10, 2, 10, 4, 2, 2, 2, 2, - 10, 10, 2, 2, 10, 2, 2, 2, - 10, 2, 2, 2, 10, 6, 2, 2, - 2, 10, 4, 2, 2, 10, 2, 2, - 2, 10, 10, 2, 2, 2, 1, 10, - 1, 10, 4, 2, 2, 2, 10, 2, - 2, 2, 10, 2, 2, 2, 2, 2, - 2, 2, 10, 4, 2, 10, 10, 6, - 1, 10, 1, 10, 2, 10, 10, 4, - 2, 2, 2, 10, 10, 6, 2, 2, - 2, 10, 2, 10, 12, 2, 11, 12, - 2, 2, 2, 2, 10, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 10, 2, - 2, 10, 6, 10, 2, 2, 2, 10, - 10, 12, 2, 2, 2, 2, 10, 2, - 10, 2, 10, 2, 10, 2, 2, 2, - 10, 2, 2, 10, 6, 2, 2, 10, - 2, 10, 2, 2, 0, 10, 2, 2, - 10, 2, 2, 2, 2, 2, 10, 2, - 2, 2, 2, 2, 10, 2, 2, 2, - 10, 2, 10, 6, 6, 6, 6, 0, - 10, 1, 1, 1, 6, 7, 8, 6, - 0, 10, 1, 1, 6, 1, 8, 1, - 1, 1, 4, 1, 1, 1, 1, 1, - 1, 4, 1, 1, 4, 1, 1, 2, - 1, 1, 1, 1, 4, 1, 1, 1, - 1, 4, 1, 1, 0, 4, 1, 1, + 2, 2, 10, 2, 2, 2, 10, 2, + 10, 6, 6, 6, 6, 0, 10, 1, + 1, 1, 6, 7, 8, 6, 0, 10, + 1, 1, 6, 1, 8, 1, 1, 1, + 4, 1, 1, 1, 1, 1, 1, 4, + 1, 1, 4, 1, 1, 2, 1, 1, + 1, 1, 4, 1, 1, 1, 1, 4, + 1, 1, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, - 1, 4, 1, 1, 1, 4, 10, 19, - 1, 1, 1, 1, 3, 10, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 10, - 10, 1, 10, 1, 1, 1, 2, 1, - 1, 2, 2, 2, 1, 1, 2, 2, - 11, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 2, 1, 3, 1, 12, 1, - 1, 1, 1, 1, 1, 2, 1, 3, - 1, 12, 1, 1, 1, 0, 11, 2, + 1, 1, 4, 1, 1, 1, 1, 4, + 1, 1, 1, 4, 10, 19, 1, 1, + 1, 1, 3, 10, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 10, 10, 1, + 10, 1, 1, 1, 2, 1, 1, 2, + 2, 2, 1, 1, 2, 2, 11, 1, + 1, 1, 2, 1, 1, 1, 1, 1, + 2, 1, 3, 1, 12, 1, 1, 1, + 1, 1, 1, 2, 1, 3, 1, 12, + 1, 1, 1, 0, 11, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 2, 0, 11, 0, 1, + 0, 2, 0, 11, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 10, 1, 1, - 1, 1, 10, 1, 1, 1, 1, 1, - 0, 1, 10, 10, 1, 10, 2, 4, - 2, 2, 3, 2, 2, 2, 2, 1, - 1, 2, 2, 2, 1, 2, 4, 4, - 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 1, 2, 2, 2, 1, - 1, 1, 2, 1, 1, 2, 2, 2, - 1, 1, 1, 2, 2, 1, 1, 1, - 1, 2, 1, 1, 2, 2, 2, 2, + 1, 1, 1, 10, 1, 1, 1, 1, + 10, 1, 1, 1, 1, 1, 0, 1, + 10, 10, 1, 10, 2, 4, 2, 2, + 3, 2, 2, 2, 2, 1, 1, 2, + 2, 2, 1, 2, 4, 4, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 4, 2, 2, 2, 2, - 2, 2, 2, 2, 4, 2, 1, 2, - 2, 2, 3, 3, 2, 2, 2, 2, - 1, 1, 2, 2, 2, 1, 2, 1, - 1, 2, 1, 1, 2, 12, 2, 2, - 2, 2, 2, 2, 2, 6, 2, 2, - 2, 2, 2, 2, 4, 2, 2, 2, + 1, 1, 2, 2, 2, 1, 1, 1, + 2, 1, 1, 2, 2, 2, 1, 1, + 1, 2, 2, 1, 1, 1, 1, 2, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 3, - 3, 2, 3, 6, 9, 6, 6, 6, - 6, 16, 6, 16, 6, 16, 6, 12, - 2, 10, 2, 1, 6, 10, 6, 1, - 6, 10, 6, 1, 6, 10, 6, 1, - 1, 1, 2, 6, 6, 2, 1, 3, - 6, 9, 2, 1, 0, 6, 9, 2, - 1, 2, 10, 10, 1, 1, 3, 0, - 6, 8, 6, 8, 7, 8, 6, 6, - 6, 8, 6, 8, 7, 8, 6, 7, - 0, 12, 10, 12, 10, 12, 10, 12, - 10, 1, 11, 11, 1, 11, 11, 10, - 1, 11, 11, 10, 1, 11, 11, 10, - 1, 6, 1, 6, 6, 1, 1, 1, - 6, 1, 6, 6, 1, 1, 0, 6, - 6, 6, 6, 6, 9, 2, 1, 1, - 1, 0, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 9, 2, 1, 1, 1, - 1, 1, 0, 6, 6, 6, 6, 6, - 7, 2, 1, 1, 1, 13, 2, 1, - 1, 1, 0, 10, 1, 1, 1, 1, - 0, 6, 6, 6, 6, 6, 6, 0, - 10, 1, 1, 1, 1, 0, 6, 6, - 6, 6, 0, 10, 1, 1, 1, 0, - 6, 10, 6, 6, 6, 7, 34, 7, - 2, 1, 14, 1, 35, 3, 1, 1, - 6, 6, 6, 7, 35, 1, 1, 6, - 6, 6, 7, 35, 1, 1, 6, 6, - 6, 9, 34, 1, 1, 1, 36, 12, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 9, 6, 7, 2, - 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 6, 2, 2, 2, 6, 2, - 6, 10, 2, 6, 4, 2, 2, 2, - 2, 6, 6, 2, 2, 6, 2, 2, - 2, 6, 2, 2, 2, 6, 6, 2, - 2, 2, 6, 4, 2, 2, 6, 2, - 2, 2, 6, 6, 2, 2, 2, 1, - 6, 1, 6, 4, 2, 2, 2, 6, + 2, 2, 4, 2, 1, 2, 2, 2, + 3, 3, 2, 2, 2, 2, 1, 1, + 2, 2, 2, 1, 2, 1, 1, 2, + 1, 1, 2, 12, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, - 2, 2, 2, 6, 4, 2, 6, 6, - 6, 1, 6, 1, 6, 2, 6, 6, - 4, 2, 2, 2, 6, 6, 6, 2, - 2, 2, 6, 2, 6, 8, 2, 7, - 8, 2, 2, 2, 2, 6, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 6, - 2, 2, 6, 6, 6, 2, 2, 2, - 6, 6, 12, 2, 2, 2, 2, 6, - 2, 6, 2, 6, 2, 6, 2, 2, - 2, 6, 2, 2, 6, 6, 2, 2, - 6, 2, 6, 2, 2, 0, 6, 2, - 2, 6, 2, 2, 2, 2, 2, 6, - 2, 2, 2, 2, 2, 6, 3, 2, - 2, 0, 6, 6, 6, 6, 6, 7, - 2, 1, 1, 1, 1, 2, 0, 6, - 6, 6, 6, 6, 7, 6, 6, 0, - 1, 0, 1, 1, 0, 1, 2, 2, - 1, 1, 1, 1, 1, 1, 0, 6, + 2, 2, 4, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 4, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 3, 3, 2, + 3, 6, 9, 6, 6, 6, 6, 16, + 6, 16, 6, 16, 6, 12, 2, 10, + 2, 1, 6, 10, 6, 1, 6, 10, + 6, 1, 6, 10, 6, 1, 1, 1, + 2, 6, 6, 2, 1, 3, 6, 9, + 2, 1, 0, 6, 9, 2, 1, 2, + 10, 10, 1, 1, 3, 0, 6, 8, + 6, 8, 7, 8, 6, 6, 6, 8, + 6, 8, 7, 8, 6, 7, 0, 12, + 10, 12, 10, 12, 10, 12, 10, 1, + 11, 11, 1, 11, 11, 10, 1, 11, + 11, 10, 1, 11, 11, 10, 1, 6, + 1, 6, 6, 1, 1, 1, 6, 1, + 6, 6, 1, 1, 0, 6, 6, 6, + 6, 6, 9, 2, 1, 1, 1, 0, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 9, 2, 1, 1, 1, 1, 1, + 0, 6, 6, 6, 6, 6, 7, 2, + 1, 1, 1, 13, 2, 1, 1, 1, + 0, 10, 1, 1, 1, 1, 0, 6, + 6, 6, 6, 6, 6, 0, 10, 1, 1, 1, 1, 0, 6, 6, 6, 6, - 6, 7, 2, 0, 2, 1, 1, 1, - 0, 6, 6, 6, 6, 6, 6, 0, - 10, 1, 1, 1, 1, 0, 6, 6, - 2, 2, 1, 0, 6, 6, 6, 6, - 6, 6, 0, 10, 1, 1, 1, 1, - 0, 6, 7, 3, 1, 0, 6, 6, - 0, 0, 0, 1, 0, 0, 0, 0, - 3, 1, 0, 0, 1, 0, 0, 3, - 0, 0, 1, 0, 0, 3, 0, 6, - 6, 6, 6, 2, 1, 1, 0, 6, - 6, 6, 6, 2, 1, 1, 0, 6, - 9, 2, 2, 1, 12, 17, 48, 48, - 12, 48, 12, 17, 53, 53, 0, 0, - 0, 0, 4, 0, 0, 0, 10, 0, - 11, 1, 0, 46, 1, 0, 10, 1, - 6, 0, 10, 1, 1, 0, 0, 19, - 1, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 1, 1, 1, 0, 6, 10, + 6, 6, 6, 7, 34, 7, 2, 1, + 14, 1, 35, 3, 1, 1, 6, 6, + 6, 7, 35, 1, 1, 6, 6, 6, + 7, 35, 1, 1, 6, 6, 6, 9, + 34, 1, 1, 1, 36, 12, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 9, 6, 7, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, + 6, 2, 2, 2, 6, 2, 6, 10, + 2, 6, 4, 2, 2, 2, 2, 6, + 6, 2, 2, 6, 2, 2, 2, 6, + 2, 2, 2, 6, 6, 2, 2, 2, + 6, 4, 2, 2, 6, 2, 2, 2, + 6, 8, 2, 2, 6, 2, 2, 2, + 1, 6, 1, 6, 4, 2, 2, 2, + 6, 2, 2, 2, 6, 2, 2, 2, + 2, 2, 2, 2, 6, 4, 2, 6, + 6, 6, 1, 6, 1, 6, 2, 6, + 6, 4, 2, 2, 2, 6, 6, 6, + 2, 2, 2, 6, 2, 6, 8, 2, + 7, 8, 2, 2, 2, 2, 6, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 6, 2, 2, 6, 6, 6, 2, 2, + 2, 6, 6, 12, 2, 2, 2, 2, + 6, 2, 6, 2, 6, 2, 6, 2, + 2, 2, 6, 2, 2, 6, 6, 2, + 2, 6, 2, 6, 2, 2, 0, 6, + 2, 2, 6, 2, 2, 2, 2, 2, + 6, 2, 2, 2, 2, 2, 6, 3, + 2, 2, 0, 6, 6, 6, 6, 6, + 7, 2, 1, 1, 1, 1, 2, 0, + 6, 6, 6, 6, 6, 7, 6, 6, + 0, 1, 0, 1, 1, 0, 1, 2, + 2, 1, 1, 1, 1, 1, 1, 0, + 6, 1, 1, 1, 0, 6, 6, 6, + 6, 6, 7, 2, 0, 2, 1, 1, + 1, 0, 6, 6, 6, 6, 6, 6, + 0, 10, 1, 1, 1, 1, 0, 6, + 6, 2, 2, 1, 0, 6, 6, 6, + 6, 6, 6, 0, 10, 1, 1, 1, + 1, 0, 6, 7, 3, 1, 0, 6, + 6, 0, 0, 0, 1, 0, 0, 0, + 0, 3, 1, 0, 0, 1, 0, 0, + 3, 0, 0, 1, 0, 0, 3, 0, + 6, 6, 6, 6, 2, 1, 1, 0, + 6, 6, 6, 6, 2, 1, 1, 0, + 6, 9, 2, 2, 1, 4, 4, 2, + 6, 6, 6, 6, 6, 9, 2, 1, + 1, 1, 2, 2, 2, 6, 2, 2, + 2, 0, 6, 12, 17, 48, 48, 12, + 48, 12, 17, 53, 53, 0, 0, 0, + 0, 4, 0, 0, 0, 10, 0, 11, + 1, 0, 46, 1, 0, 10, 1, 6, + 0, 10, 1, 1, 0, 0, 19, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 0, 0, 10, 1, 10, 1, 10, 1, 10, 1, 0, 0, 0, 0, 13, 1, 0, 10, 1, 0, 10, 1, 0, 14, 1, 7, 1, 35, 3, 0, 0, 0, 0, 0, 0, 0, 10, 1, 0, 0, 10, 1, 0, 0, - 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0 }; static const char _zone_scanner_range_lengths[] = { @@ -3525,36 +3590,36 @@ static const char _zone_scanner_range_lengths[] = { 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, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 0, 0, 1, - 1, 1, 1, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 0, 3, 1, 2, 3, 3, - 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, + 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 2, 0, 1, 1, - 2, 0, 4, 0, 0, 0, 0, 0, + 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 0, 3, 1, + 2, 3, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 1, 1, 1, - 2, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 3, 3, 2, 2, - 2, 2, 1, 4, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 2, + 0, 1, 1, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 2, 0, 2, 3, 0, 0, 3, 5, - 5, 1, 1, 1, 5, 2, 2, 2, - 4, 3, 1, 1, 4, 1, 1, 2, - 3, 1, 1, 1, 0, 1, 1, 0, - 0, 1, 1, 1, 1, 0, 3, 3, - 3, 0, 0, 1, 1, 1, 3, 0, - 1, 0, 3, 0, 3, 3, 3, 0, - 0, 1, 1, 1, 3, 0, 2, 3, - 1, 1, 3, 3, 3, 3, 3, 1, - 0, 0, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 3, + 1, 1, 1, 2, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 3, + 3, 2, 2, 2, 2, 1, 4, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 2, 0, 2, 3, 0, + 0, 3, 5, 5, 1, 1, 1, 5, + 2, 2, 2, 4, 3, 1, 1, 4, + 1, 1, 2, 3, 1, 1, 1, 0, + 1, 1, 0, 0, 1, 1, 1, 1, + 0, 3, 3, 3, 0, 0, 1, 1, + 1, 3, 0, 1, 0, 3, 0, 3, + 3, 3, 0, 0, 1, 1, 1, 3, + 0, 2, 3, 1, 1, 3, 3, 3, + 3, 3, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 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, @@ -3571,82 +3636,84 @@ static const char _zone_scanner_range_lengths[] = { 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 3, 3, - 3, 1, 1, 1, 0, 1, 1, 3, - 3, 3, 1, 1, 1, 1, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, - 0, 2, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, - 0, 2, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 3, 0, 0, 0, 0, 0, 3, 3, - 3, 3, 3, 3, 0, 3, 3, 3, - 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 3, 3, 3, - 3, 3, 3, 0, 0, 1, 1, 2, + 0, 0, 1, 1, 3, 3, 3, 1, + 1, 1, 0, 1, 1, 3, 3, 3, + 1, 1, 1, 1, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 2, + 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 0, 2, 0, 2, 0, + 0, 0, 2, 0, 0, 0, 0, 2, + 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 3, 0, + 0, 0, 0, 0, 3, 3, 3, 3, + 3, 3, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 3, 3, 3, 3, 3, + 3, 0, 0, 1, 1, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 3, 0, 1, 3, 0, - 2, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 1, + 1, 3, 0, 1, 3, 0, 2, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 2, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 0, 2, 0, 0, 2, 1, 3, 0, - 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 2, + 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 2, + 0, 0, 0, 0, 0, 2, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 2, + 0, 0, 2, 1, 3, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 2, 0, 0, 2, 0, - 0, 2, 0, 0, 0, 2, 0, 0, - 2, 0, 0, 2, 0, 0, 2, 0, - 0, 0, 2, 0, 0, 2, 1, 3, - 3, 2, 3, 0, 3, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, - 3, 1, 3, 1, 1, 1, 1, 1, + 0, 2, 0, 0, 2, 0, 0, 0, + 2, 0, 0, 2, 1, 3, 0, 0, + 0, 0, 0, 2, 1, 3, 3, 2, + 3, 0, 3, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 3, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 0, 3, 2, 1, 3, - 0, 3, 2, 1, 1, 1, 3, 2, - 1, 2, 0, 3, 1, 3, 5, 1, - 1, 1, 1, 1, 1, 0, 0, 1, - 1, 1, 1, 1, 1, 0, 0, 1, + 2, 0, 3, 2, 1, 3, 0, 3, + 2, 1, 1, 1, 3, 2, 1, 2, + 0, 3, 1, 3, 5, 1, 1, 1, + 1, 1, 1, 0, 0, 1, 1, 1, + 1, 1, 1, 0, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, + 1, 1, 1, 1, 1, 0, 1, 1, + 1, 0, 1, 1, 1, 0, 1, 0, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 0, 1, 1, 1, 0, - 1, 0, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 2, 1, 1, - 1, 1, 1, 1, 1, 3, 0, 3, - 0, 3, 0, 3, 2, 1, 1, 1, - 1, 1, 3, 0, 1, 1, 3, 0, - 3, 0, 1, 1, 1, 0, 0, 0, - 1, 1, 1, 1, 1, 0, 3, 3, - 1, 1, 3, 0, 1, 1, 3, 3, - 3, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 3, 3, 1, 1, 1, 1, - 1, 0, 0, 1, 1, 0, 0, 3, - 0, 1, 0, 1, 3, 3, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 3, 3, 1, 1, 0, 1, - 1, 3, 0, 1, 1, 1, 0, 0, - 3, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 0, 3, 0, + 1, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 1, 3, 0, 3, 0, 3, + 0, 3, 2, 1, 1, 1, 1, 1, + 3, 0, 1, 1, 3, 0, 3, 0, + 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 0, 3, 3, 1, 1, + 3, 0, 1, 1, 3, 3, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 1, 1, 1, 1, 1, 0, + 0, 1, 1, 0, 0, 3, 0, 1, + 0, 1, 3, 3, 1, 1, 0, 1, + 1, 1, 1, 1, 1, 0, 1, 1, + 3, 3, 1, 1, 0, 1, 1, 3, + 0, 1, 1, 1, 0, 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 0, 3, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 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, @@ -3665,39 +3732,42 @@ static const char _zone_scanner_range_lengths[] = { 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, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 2, - 2, 1, 1, 1, 1, 3, 0, 3, - 0, 1, 1, 1, 3, 0, 1, 1, - 1, 1, 1, 1, 3, 0, 3, 3, - 3, 3, 3, 3, 3, 3, 5, 2, - 0, 0, 0, 0, 0, 1, 3, 3, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 3, 5, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 3, + 0, 0, 0, 0, 0, 0, 0, 3, + 2, 2, 1, 1, 1, 1, 3, 0, + 3, 0, 1, 1, 1, 3, 0, 1, + 1, 1, 1, 1, 1, 3, 0, 3, + 3, 3, 3, 3, 3, 3, 3, 5, + 2, 0, 0, 0, 0, 0, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, - 3, 2, 1, 1, 1, 1, 1, 1, - 1, 3, 3, 3, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 1, 1, 3, - 3, 3, 3, 0, 3, 3, 3, 3, - 2, 1, 3, 3, 0, 3, 3, 2, - 3, 3, 0, 3, 3, 2, 1, 1, - 1, 1, 3, 2, 1, 1, 1, 1, - 3, 0, 3, 2, 1, 1, 1, 1, - 3, 2, 2, 1, 3, 8, 3, 4, - 3, 4, 3, 8, 9, 9, 0, 0, - 0, 0, 4, 0, 0, 0, 3, 0, - 3, 1, 0, 0, 1, 0, 3, 1, - 3, 0, 3, 1, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 3, 2, 3, 5, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 1, 1, 1, 1, 1, 1, + 1, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 3, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 3, 1, 1, 1, + 3, 3, 3, 3, 0, 3, 3, 3, + 3, 2, 1, 3, 3, 0, 3, 3, + 2, 3, 3, 0, 3, 3, 2, 1, + 1, 1, 1, 3, 2, 1, 1, 1, + 1, 3, 0, 3, 2, 1, 1, 1, + 1, 3, 2, 2, 1, 0, 0, 0, + 0, 3, 0, 1, 1, 3, 2, 1, + 1, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 3, 8, 3, 4, 3, + 4, 3, 8, 9, 9, 0, 0, 0, + 0, 4, 0, 0, 0, 3, 0, 3, + 1, 0, 0, 1, 0, 3, 1, 3, + 0, 3, 1, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 3, 1, 0, 3, 1, 0, 0, 1, 3, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 3, 1, 0, 0, - 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0 }; static const short _zone_scanner_index_offsets[] = { @@ -3707,193 +3777,198 @@ static const short _zone_scanner_index_offsets[] = { 384, 387, 390, 393, 404, 415, 418, 421, 432, 435, 438, 441, 452, 455, 458, 461, 472, 479, 482, 485, 488, 499, 504, 507, - 510, 521, 524, 527, 530, 541, 552, 555, - 558, 561, 563, 574, 576, 587, 592, 595, - 598, 601, 612, 615, 618, 621, 632, 637, - 644, 687, 690, 693, 696, 699, 702, 705, - 708, 719, 724, 727, 738, 749, 756, 758, - 769, 771, 782, 785, 796, 807, 812, 815, - 818, 821, 832, 843, 850, 853, 856, 859, - 870, 873, 884, 897, 900, 912, 925, 928, - 931, 934, 937, 948, 951, 954, 957, 960, - 963, 966, 969, 972, 975, 986, 989, 992, - 1003, 1010, 1021, 1024, 1027, 1030, 1041, 1052, - 1065, 1068, 1071, 1074, 1077, 1088, 1091, 1102, - 1105, 1116, 1119, 1130, 1133, 1136, 1139, 1150, - 1153, 1156, 1167, 1174, 1177, 1180, 1191, 1194, - 1205, 1208, 1211, 1213, 1225, 1228, 1231, 1242, - 1245, 1248, 1251, 1254, 1257, 1268, 1271, 1274, - 1277, 1280, 1283, 1294, 1297, 1343, 1348, 1355, - 1399, 1417, 1425, 1437, 1445, 1448, 1450, 1457, - 1460, 1463, 1466, 1469, 1472, 1475, 1480, 1487, - 1531, 1534, 1552, 1596, 1599, 1607, 1619, 1627, - 1630, 1647, 1700, 1719, 1736, 1782, 1787, 1799, - 1811, 1866, 1885, 1900, 1911, 1924, 1937, 1950, - 1965, 1978, 1993, 2004, 2015, 2030, 2051, 2066, - 2077, 2088, 2099, 2104, 2119, 2122, 2125, 2128, - 2131, 2134, 2139, 2142, 2145, 2150, 2159, 2179, - 2225, 2230, 2249, 2304, 2323, 2338, 2349, 2362, - 2375, 2388, 2403, 2416, 2431, 2442, 2453, 2468, - 2489, 2504, 2515, 2526, 2537, 2550, 2596, 2610, - 2624, 2639, 2654, 2657, 2660, 2671, 2674, 2677, - 2680, 2691, 2694, 2705, 2710, 2722, 2734, 2749, - 2764, 2779, 2794, 2797, 2852, 2866, 2880, 2897, - 2910, 2919, 2930, 2941, 2952, 2965, 2976, 2989, - 2998, 3007, 3020, 3039, 3052, 3061, 3070, 3079, - 3084, 3089, 3100, 3105, 3112, 3114, 3116, 3125, - 3137, 3149, 3151, 3153, 3155, 3167, 3172, 3177, - 3182, 3191, 3195, 3197, 3199, 3208, 3216, 3224, - 3229, 3233, 3235, 3237, 3245, 3252, 3260, 3280, - 3289, 3291, 3301, 3313, 3323, 3326, 3333, 3347, - 3355, 3371, 3380, 3382, 3384, 3386, 3388, 3396, - 3405, 3408, 3415, 3425, 3434, 3450, 3458, 3474, - 3483, 3485, 3487, 3489, 3491, 3499, 3508, 3513, - 3527, 3530, 3533, 3538, 3543, 3549, 3555, 3570, - 3573, 3575, 3586, 3633, 3650, 3653, 3656, 3667, - 3670, 3681, 3684, 3695, 3700, 3703, 3706, 3709, - 3712, 3723, 3734, 3737, 3740, 3751, 3754, 3757, - 3760, 3771, 3774, 3777, 3780, 3791, 3798, 3801, - 3804, 3807, 3818, 3823, 3826, 3829, 3840, 3843, - 3846, 3849, 3860, 3871, 3874, 3877, 3880, 3882, - 3893, 3895, 3906, 3911, 3914, 3917, 3920, 3931, - 3934, 3937, 3940, 3951, 3954, 3957, 3960, 3963, - 3966, 3969, 3972, 3983, 3988, 3991, 4002, 4013, - 4020, 4022, 4033, 4035, 4046, 4049, 4060, 4071, - 4076, 4079, 4082, 4085, 4096, 4107, 4114, 4117, - 4120, 4123, 4134, 4137, 4148, 4161, 4164, 4176, - 4189, 4192, 4195, 4198, 4201, 4212, 4215, 4218, - 4221, 4224, 4227, 4230, 4233, 4236, 4239, 4250, - 4253, 4256, 4267, 4274, 4285, 4288, 4291, 4294, - 4305, 4316, 4329, 4332, 4335, 4338, 4341, 4352, - 4355, 4366, 4369, 4380, 4383, 4394, 4397, 4400, - 4403, 4414, 4417, 4420, 4431, 4438, 4441, 4444, - 4455, 4458, 4469, 4472, 4475, 4477, 4489, 4492, - 4495, 4506, 4509, 4512, 4515, 4518, 4521, 4532, - 4535, 4538, 4541, 4544, 4547, 4558, 4561, 4564, - 4567, 4578, 4581, 4592, 4599, 4607, 4615, 4625, - 4629, 4643, 4646, 4649, 4652, 4659, 4668, 4678, - 4688, 4692, 4706, 4709, 4712, 4720, 4723, 4732, - 4734, 4736, 4738, 4745, 4747, 4749, 4751, 4753, - 4755, 4757, 4764, 4766, 4768, 4775, 4777, 4779, - 4782, 4784, 4786, 4788, 4790, 4797, 4799, 4801, - 4803, 4805, 4812, 4814, 4816, 4818, 4826, 4828, - 4830, 4832, 4834, 4836, 4838, 4840, 4842, 4844, - 4846, 4848, 4850, 4852, 4854, 4861, 4863, 4865, - 4867, 4869, 4876, 4878, 4880, 4882, 4889, 4900, - 4920, 4922, 4924, 4926, 4928, 4934, 4945, 4948, - 4950, 4952, 4954, 4956, 4958, 4960, 4962, 4968, - 4979, 4993, 4995, 5006, 5008, 5010, 5012, 5018, - 5023, 5028, 5034, 5040, 5046, 5048, 5053, 5059, - 5065, 5080, 5082, 5084, 5086, 5089, 5091, 5093, - 5095, 5097, 5099, 5103, 5106, 5111, 5114, 5128, - 5131, 5133, 5135, 5137, 5139, 5141, 5147, 5152, - 5159, 5164, 5180, 5185, 5187, 5189, 5191, 5204, - 5209, 5211, 5213, 5215, 5217, 5219, 5221, 5223, - 5225, 5227, 5231, 5234, 5237, 5240, 5252, 5255, - 5257, 5259, 5261, 5263, 5265, 5267, 5269, 5271, - 5273, 5275, 5277, 5279, 5281, 5283, 5294, 5296, - 5298, 5300, 5302, 5313, 5315, 5317, 5319, 5321, - 5324, 5326, 5329, 5341, 5355, 5357, 5369, 5375, - 5380, 5385, 5388, 5394, 5397, 5400, 5403, 5406, - 5408, 5410, 5413, 5416, 5419, 5421, 5426, 5431, - 5436, 5438, 5441, 5444, 5447, 5450, 5455, 5458, - 5461, 5464, 5467, 5469, 5471, 5474, 5477, 5480, - 5482, 5484, 5486, 5491, 5493, 5495, 5498, 5501, - 5504, 5506, 5508, 5510, 5515, 5518, 5520, 5522, - 5524, 5526, 5531, 5533, 5535, 5540, 5543, 5546, - 5549, 5552, 5555, 5558, 5561, 5566, 5569, 5572, - 5575, 5578, 5581, 5584, 5589, 5592, 5595, 5600, - 5603, 5606, 5611, 5614, 5617, 5622, 5625, 5627, - 5632, 5635, 5638, 5642, 5648, 5651, 5654, 5657, - 5660, 5662, 5664, 5667, 5670, 5673, 5675, 5680, - 5682, 5684, 5689, 5691, 5693, 5698, 5712, 5718, - 5721, 5724, 5727, 5730, 5733, 5738, 5745, 5748, - 5751, 5754, 5757, 5760, 5765, 5770, 5773, 5778, - 5781, 5784, 5789, 5792, 5795, 5798, 5803, 5806, - 5809, 5814, 5819, 5822, 5827, 5830, 5833, 5838, - 5841, 5844, 5847, 5852, 5855, 5858, 5863, 5866, - 5873, 5880, 5885, 5892, 5899, 5912, 5919, 5927, - 5935, 5943, 5961, 5969, 5987, 5995, 6013, 6021, - 6037, 6043, 6055, 6061, 6064, 6072, 6084, 6092, - 6095, 6103, 6115, 6123, 6126, 6134, 6146, 6154, - 6157, 6160, 6163, 6168, 6175, 6185, 6190, 6193, - 6200, 6207, 6220, 6225, 6228, 6230, 6238, 6251, - 6256, 6259, 6264, 6275, 6289, 6292, 6297, 6306, - 6308, 6316, 6326, 6334, 6344, 6353, 6362, 6369, - 6377, 6385, 6395, 6403, 6413, 6422, 6431, 6438, - 6447, 6449, 6463, 6475, 6489, 6501, 6515, 6527, - 6541, 6552, 6555, 6568, 6581, 6584, 6597, 6610, - 6621, 6624, 6637, 6650, 6661, 6664, 6677, 6690, - 6701, 6704, 6711, 6714, 6722, 6730, 6733, 6736, - 6739, 6746, 6749, 6757, 6765, 6768, 6771, 6773, - 6781, 6789, 6797, 6805, 6813, 6826, 6831, 6834, - 6837, 6840, 6842, 6850, 6858, 6866, 6876, 6883, - 6893, 6900, 6910, 6917, 6930, 6935, 6938, 6941, - 6944, 6947, 6950, 6954, 6961, 6969, 6977, 6987, - 6994, 7005, 7008, 7011, 7014, 7017, 7031, 7034, - 7036, 7039, 7042, 7044, 7056, 7059, 7061, 7066, - 7071, 7073, 7081, 7091, 7098, 7106, 7114, 7124, - 7128, 7142, 7145, 7148, 7151, 7154, 7156, 7164, - 7172, 7180, 7190, 7194, 7208, 7211, 7214, 7217, - 7219, 7227, 7238, 7245, 7253, 7261, 7269, 7304, - 7315, 7318, 7321, 7336, 7339, 7378, 7385, 7388, - 7391, 7398, 7406, 7414, 7423, 7460, 7463, 7466, - 7473, 7481, 7489, 7500, 7539, 7542, 7545, 7552, - 7560, 7568, 7581, 7616, 7619, 7622, 7625, 7662, - 7675, 7685, 7692, 7700, 7708, 7716, 7724, 7732, - 7740, 7748, 7756, 7764, 7772, 7785, 7792, 7803, - 7806, 7809, 7812, 7815, 7818, 7821, 7824, 7827, - 7830, 7833, 7836, 7843, 7846, 7849, 7852, 7859, - 7862, 7869, 7880, 7883, 7890, 7895, 7898, 7901, - 7904, 7907, 7914, 7921, 7924, 7927, 7934, 7937, - 7940, 7943, 7950, 7953, 7956, 7959, 7966, 7973, - 7976, 7979, 7982, 7989, 7994, 7997, 8000, 8007, - 8010, 8013, 8016, 8023, 8030, 8033, 8036, 8039, - 8041, 8048, 8050, 8057, 8062, 8065, 8068, 8071, - 8078, 8081, 8084, 8087, 8094, 8097, 8100, 8103, - 8106, 8109, 8112, 8115, 8122, 8127, 8130, 8137, - 8144, 8151, 8153, 8160, 8162, 8169, 8172, 8179, - 8186, 8191, 8194, 8197, 8200, 8207, 8214, 8221, - 8224, 8227, 8230, 8237, 8240, 8247, 8256, 8259, - 8267, 8276, 8279, 8282, 8285, 8288, 8295, 8298, - 8301, 8304, 8307, 8310, 8313, 8316, 8319, 8322, - 8329, 8332, 8335, 8342, 8349, 8356, 8359, 8362, - 8365, 8372, 8379, 8392, 8395, 8398, 8401, 8404, - 8411, 8414, 8421, 8424, 8431, 8434, 8441, 8444, - 8447, 8450, 8457, 8460, 8463, 8470, 8477, 8480, - 8483, 8490, 8493, 8500, 8503, 8506, 8508, 8516, - 8519, 8522, 8529, 8532, 8535, 8538, 8541, 8544, - 8551, 8554, 8557, 8560, 8563, 8566, 8573, 8580, - 8585, 8590, 8592, 8600, 8608, 8616, 8626, 8633, - 8644, 8647, 8650, 8653, 8656, 8661, 8664, 8666, - 8674, 8682, 8690, 8698, 8706, 8717, 8724, 8734, - 8738, 8743, 8747, 8752, 8757, 8761, 8766, 8774, - 8779, 8781, 8783, 8785, 8787, 8789, 8792, 8796, - 8806, 8809, 8812, 8815, 8817, 8825, 8833, 8841, - 8849, 8857, 8868, 8873, 8877, 8885, 8888, 8891, - 8894, 8896, 8904, 8912, 8920, 8928, 8936, 8946, - 8950, 8964, 8967, 8970, 8973, 8976, 8978, 8986, - 8994, 9000, 9005, 9008, 9010, 9018, 9026, 9034, - 9042, 9050, 9060, 9064, 9078, 9081, 9084, 9087, - 9090, 9092, 9100, 9109, 9116, 9119, 9121, 9129, - 9139, 9143, 9147, 9151, 9153, 9157, 9161, 9165, - 9169, 9175, 9178, 9182, 9186, 9188, 9192, 9196, - 9202, 9206, 9210, 9212, 9216, 9220, 9226, 9228, - 9236, 9244, 9252, 9262, 9267, 9270, 9273, 9275, - 9283, 9293, 9300, 9310, 9315, 9318, 9321, 9323, - 9331, 9344, 9349, 9354, 9357, 9373, 9399, 9451, - 9504, 9520, 9573, 9589, 9615, 9678, 9741, 9742, - 9743, 9744, 9745, 9754, 9755, 9756, 9757, 9771, - 9772, 9787, 9790, 9791, 9838, 9841, 9842, 9856, - 9859, 9869, 9870, 9884, 9887, 9890, 9891, 9892, - 9912, 9915, 9916, 9917, 9918, 9919, 9920, 9921, - 9922, 9923, 9924, 9938, 9941, 9942, 9943, 9954, - 9957, 9969, 9972, 9984, 9987, 9999, 10002, 10003, - 10004, 10005, 10006, 10020, 10023, 10024, 10038, 10041, - 10042, 10056, 10059, 10060, 10075, 10078, 10089, 10092, - 10131, 10138, 10139, 10140, 10141, 10142, 10143, 10144, - 10145, 10159, 10162, 10163, 10164, 10178, 10181, 10182, - 10183, 10184, 10185, 10186, 10187 + 510, 521, 524, 527, 530, 541, 554, 557, + 560, 571, 574, 577, 580, 582, 593, 595, + 606, 611, 614, 617, 620, 631, 634, 637, + 640, 651, 656, 663, 706, 709, 712, 715, + 718, 721, 724, 727, 738, 743, 746, 757, + 768, 775, 777, 788, 790, 801, 804, 815, + 826, 831, 834, 837, 840, 851, 862, 869, + 872, 875, 878, 889, 892, 903, 916, 919, + 931, 944, 947, 950, 953, 956, 967, 970, + 973, 976, 979, 982, 985, 988, 991, 994, + 1005, 1008, 1011, 1022, 1029, 1040, 1043, 1046, + 1049, 1060, 1071, 1084, 1087, 1090, 1093, 1096, + 1107, 1110, 1121, 1124, 1135, 1138, 1149, 1152, + 1155, 1158, 1169, 1172, 1175, 1186, 1193, 1196, + 1199, 1210, 1213, 1224, 1227, 1230, 1232, 1244, + 1247, 1250, 1261, 1264, 1267, 1270, 1273, 1276, + 1287, 1290, 1293, 1296, 1299, 1302, 1313, 1316, + 1362, 1367, 1374, 1418, 1436, 1444, 1456, 1464, + 1467, 1469, 1476, 1479, 1482, 1485, 1488, 1491, + 1494, 1499, 1506, 1550, 1553, 1571, 1615, 1618, + 1626, 1638, 1646, 1649, 1666, 1719, 1738, 1755, + 1801, 1806, 1818, 1830, 1885, 1904, 1919, 1930, + 1943, 1956, 1969, 1984, 1997, 2012, 2023, 2034, + 2049, 2070, 2085, 2096, 2107, 2118, 2123, 2138, + 2141, 2144, 2147, 2150, 2153, 2158, 2161, 2164, + 2169, 2178, 2198, 2244, 2249, 2268, 2323, 2342, + 2357, 2368, 2381, 2394, 2407, 2422, 2435, 2450, + 2461, 2472, 2487, 2508, 2523, 2534, 2545, 2556, + 2569, 2615, 2629, 2643, 2658, 2673, 2676, 2679, + 2690, 2693, 2696, 2699, 2710, 2713, 2724, 2729, + 2741, 2753, 2768, 2783, 2798, 2813, 2816, 2871, + 2885, 2899, 2916, 2929, 2938, 2949, 2960, 2971, + 2984, 2995, 3008, 3017, 3026, 3039, 3058, 3071, + 3080, 3089, 3098, 3103, 3108, 3119, 3124, 3131, + 3133, 3135, 3144, 3156, 3168, 3170, 3172, 3174, + 3186, 3191, 3196, 3201, 3210, 3214, 3216, 3218, + 3227, 3235, 3243, 3248, 3252, 3254, 3256, 3264, + 3271, 3279, 3299, 3308, 3310, 3320, 3332, 3342, + 3345, 3352, 3366, 3374, 3390, 3399, 3401, 3403, + 3405, 3407, 3415, 3424, 3427, 3434, 3444, 3453, + 3469, 3477, 3493, 3502, 3504, 3506, 3508, 3510, + 3518, 3527, 3532, 3546, 3549, 3552, 3557, 3562, + 3568, 3574, 3589, 3592, 3594, 3605, 3652, 3669, + 3672, 3675, 3686, 3689, 3700, 3703, 3714, 3719, + 3722, 3725, 3728, 3731, 3742, 3753, 3756, 3759, + 3770, 3773, 3776, 3779, 3790, 3793, 3796, 3799, + 3810, 3817, 3820, 3823, 3826, 3837, 3842, 3845, + 3848, 3859, 3862, 3865, 3868, 3879, 3892, 3895, + 3898, 3909, 3912, 3915, 3918, 3920, 3931, 3933, + 3944, 3949, 3952, 3955, 3958, 3969, 3972, 3975, + 3978, 3989, 3992, 3995, 3998, 4001, 4004, 4007, + 4010, 4021, 4026, 4029, 4040, 4051, 4058, 4060, + 4071, 4073, 4084, 4087, 4098, 4109, 4114, 4117, + 4120, 4123, 4134, 4145, 4152, 4155, 4158, 4161, + 4172, 4175, 4186, 4199, 4202, 4214, 4227, 4230, + 4233, 4236, 4239, 4250, 4253, 4256, 4259, 4262, + 4265, 4268, 4271, 4274, 4277, 4288, 4291, 4294, + 4305, 4312, 4323, 4326, 4329, 4332, 4343, 4354, + 4367, 4370, 4373, 4376, 4379, 4390, 4393, 4404, + 4407, 4418, 4421, 4432, 4435, 4438, 4441, 4452, + 4455, 4458, 4469, 4476, 4479, 4482, 4493, 4496, + 4507, 4510, 4513, 4515, 4527, 4530, 4533, 4544, + 4547, 4550, 4553, 4556, 4559, 4570, 4573, 4576, + 4579, 4582, 4585, 4596, 4599, 4602, 4605, 4616, + 4619, 4630, 4637, 4645, 4653, 4663, 4667, 4681, + 4684, 4687, 4690, 4697, 4706, 4716, 4726, 4730, + 4744, 4747, 4750, 4758, 4761, 4770, 4772, 4774, + 4776, 4783, 4785, 4787, 4789, 4791, 4793, 4795, + 4802, 4804, 4806, 4813, 4815, 4817, 4820, 4822, + 4824, 4826, 4828, 4835, 4837, 4839, 4841, 4843, + 4850, 4852, 4854, 4856, 4864, 4866, 4868, 4870, + 4872, 4874, 4876, 4878, 4880, 4882, 4884, 4886, + 4888, 4890, 4892, 4899, 4901, 4903, 4905, 4907, + 4914, 4916, 4918, 4920, 4927, 4938, 4958, 4960, + 4962, 4964, 4966, 4972, 4983, 4986, 4988, 4990, + 4992, 4994, 4996, 4998, 5000, 5006, 5017, 5031, + 5033, 5044, 5046, 5048, 5050, 5056, 5061, 5066, + 5072, 5078, 5084, 5086, 5091, 5097, 5103, 5118, + 5120, 5122, 5124, 5127, 5129, 5131, 5133, 5135, + 5137, 5141, 5144, 5149, 5152, 5166, 5169, 5171, + 5173, 5175, 5177, 5179, 5185, 5190, 5197, 5202, + 5218, 5223, 5225, 5227, 5229, 5242, 5247, 5249, + 5251, 5253, 5255, 5257, 5259, 5261, 5263, 5265, + 5269, 5272, 5275, 5278, 5290, 5293, 5295, 5297, + 5299, 5301, 5303, 5305, 5307, 5309, 5311, 5313, + 5315, 5317, 5319, 5321, 5332, 5334, 5336, 5338, + 5340, 5351, 5353, 5355, 5357, 5359, 5362, 5364, + 5367, 5379, 5393, 5395, 5407, 5413, 5418, 5423, + 5426, 5432, 5435, 5438, 5441, 5444, 5446, 5448, + 5451, 5454, 5457, 5459, 5464, 5469, 5474, 5476, + 5479, 5482, 5485, 5488, 5493, 5496, 5499, 5502, + 5505, 5507, 5509, 5512, 5515, 5518, 5520, 5522, + 5524, 5529, 5531, 5533, 5536, 5539, 5542, 5544, + 5546, 5548, 5553, 5556, 5558, 5560, 5562, 5564, + 5569, 5571, 5573, 5578, 5581, 5584, 5587, 5590, + 5593, 5596, 5599, 5604, 5607, 5610, 5613, 5616, + 5619, 5622, 5627, 5630, 5633, 5638, 5641, 5644, + 5649, 5652, 5655, 5660, 5663, 5665, 5670, 5673, + 5676, 5680, 5686, 5689, 5692, 5695, 5698, 5700, + 5702, 5705, 5708, 5711, 5713, 5718, 5720, 5722, + 5727, 5729, 5731, 5736, 5750, 5756, 5759, 5762, + 5765, 5768, 5771, 5776, 5783, 5786, 5789, 5792, + 5795, 5798, 5803, 5808, 5811, 5816, 5819, 5822, + 5827, 5830, 5833, 5836, 5841, 5844, 5847, 5852, + 5857, 5860, 5865, 5868, 5871, 5876, 5879, 5882, + 5885, 5890, 5893, 5896, 5901, 5905, 5911, 5914, + 5917, 5920, 5923, 5926, 5931, 5934, 5941, 5948, + 5953, 5960, 5967, 5980, 5987, 5995, 6003, 6011, + 6029, 6037, 6055, 6063, 6081, 6089, 6105, 6111, + 6123, 6129, 6132, 6140, 6152, 6160, 6163, 6171, + 6183, 6191, 6194, 6202, 6214, 6222, 6225, 6228, + 6231, 6236, 6243, 6253, 6258, 6261, 6268, 6275, + 6288, 6293, 6296, 6298, 6306, 6319, 6324, 6327, + 6332, 6343, 6357, 6360, 6365, 6374, 6376, 6384, + 6394, 6402, 6412, 6421, 6430, 6437, 6445, 6453, + 6463, 6471, 6481, 6490, 6499, 6506, 6515, 6517, + 6531, 6543, 6557, 6569, 6583, 6595, 6609, 6620, + 6623, 6636, 6649, 6652, 6665, 6678, 6689, 6692, + 6705, 6718, 6729, 6732, 6745, 6758, 6769, 6772, + 6779, 6782, 6790, 6798, 6801, 6804, 6807, 6814, + 6817, 6825, 6833, 6836, 6839, 6841, 6849, 6857, + 6865, 6873, 6881, 6894, 6899, 6902, 6905, 6908, + 6910, 6918, 6926, 6934, 6944, 6951, 6961, 6968, + 6978, 6985, 6998, 7003, 7006, 7009, 7012, 7015, + 7018, 7022, 7029, 7037, 7045, 7055, 7062, 7073, + 7076, 7079, 7082, 7085, 7099, 7102, 7104, 7107, + 7110, 7112, 7124, 7127, 7129, 7134, 7139, 7141, + 7149, 7159, 7166, 7174, 7182, 7192, 7196, 7210, + 7213, 7216, 7219, 7222, 7224, 7232, 7240, 7248, + 7258, 7262, 7276, 7279, 7282, 7285, 7287, 7295, + 7306, 7313, 7321, 7329, 7337, 7372, 7383, 7386, + 7389, 7404, 7407, 7446, 7453, 7456, 7459, 7466, + 7474, 7482, 7491, 7528, 7531, 7534, 7541, 7549, + 7557, 7568, 7607, 7610, 7613, 7620, 7628, 7636, + 7649, 7684, 7687, 7690, 7693, 7730, 7743, 7753, + 7760, 7768, 7776, 7784, 7792, 7800, 7808, 7816, + 7824, 7832, 7840, 7853, 7860, 7871, 7874, 7877, + 7880, 7883, 7886, 7889, 7892, 7895, 7898, 7901, + 7904, 7911, 7914, 7917, 7920, 7927, 7930, 7937, + 7948, 7951, 7958, 7963, 7966, 7969, 7972, 7975, + 7982, 7989, 7992, 7995, 8002, 8005, 8008, 8011, + 8018, 8021, 8024, 8027, 8034, 8041, 8044, 8047, + 8050, 8057, 8062, 8065, 8068, 8075, 8078, 8081, + 8084, 8091, 8100, 8103, 8106, 8113, 8116, 8119, + 8122, 8124, 8131, 8133, 8140, 8145, 8148, 8151, + 8154, 8161, 8164, 8167, 8170, 8177, 8180, 8183, + 8186, 8189, 8192, 8195, 8198, 8205, 8210, 8213, + 8220, 8227, 8234, 8236, 8243, 8245, 8252, 8255, + 8262, 8269, 8274, 8277, 8280, 8283, 8290, 8297, + 8304, 8307, 8310, 8313, 8320, 8323, 8330, 8339, + 8342, 8350, 8359, 8362, 8365, 8368, 8371, 8378, + 8381, 8384, 8387, 8390, 8393, 8396, 8399, 8402, + 8405, 8412, 8415, 8418, 8425, 8432, 8439, 8442, + 8445, 8448, 8455, 8462, 8475, 8478, 8481, 8484, + 8487, 8494, 8497, 8504, 8507, 8514, 8517, 8524, + 8527, 8530, 8533, 8540, 8543, 8546, 8553, 8560, + 8563, 8566, 8573, 8576, 8583, 8586, 8589, 8591, + 8599, 8602, 8605, 8612, 8615, 8618, 8621, 8624, + 8627, 8634, 8637, 8640, 8643, 8646, 8649, 8656, + 8663, 8668, 8673, 8675, 8683, 8691, 8699, 8709, + 8716, 8727, 8730, 8733, 8736, 8739, 8744, 8747, + 8749, 8757, 8765, 8773, 8781, 8789, 8800, 8807, + 8817, 8821, 8826, 8830, 8835, 8840, 8844, 8849, + 8857, 8862, 8864, 8866, 8868, 8870, 8872, 8875, + 8879, 8889, 8892, 8895, 8898, 8900, 8908, 8916, + 8924, 8932, 8940, 8951, 8956, 8960, 8968, 8971, + 8974, 8977, 8979, 8987, 8995, 9003, 9011, 9019, + 9029, 9033, 9047, 9050, 9053, 9056, 9059, 9061, + 9069, 9077, 9083, 9088, 9091, 9093, 9101, 9109, + 9117, 9125, 9133, 9143, 9147, 9161, 9164, 9167, + 9170, 9173, 9175, 9183, 9192, 9199, 9202, 9204, + 9212, 9222, 9226, 9230, 9234, 9236, 9240, 9244, + 9248, 9252, 9258, 9261, 9265, 9269, 9271, 9275, + 9279, 9285, 9289, 9293, 9295, 9299, 9303, 9309, + 9311, 9319, 9327, 9335, 9345, 9350, 9353, 9356, + 9358, 9366, 9376, 9383, 9393, 9398, 9401, 9404, + 9406, 9414, 9427, 9432, 9437, 9440, 9445, 9450, + 9453, 9460, 9470, 9477, 9485, 9493, 9506, 9511, + 9514, 9517, 9520, 9523, 9526, 9529, 9536, 9539, + 9542, 9545, 9547, 9555, 9571, 9597, 9649, 9702, + 9718, 9771, 9787, 9813, 9876, 9939, 9940, 9941, + 9942, 9943, 9952, 9953, 9954, 9955, 9969, 9970, + 9985, 9988, 9989, 10036, 10039, 10040, 10054, 10057, + 10067, 10068, 10082, 10085, 10088, 10089, 10090, 10110, + 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, + 10121, 10122, 10123, 10137, 10140, 10141, 10142, 10153, + 10156, 10168, 10171, 10183, 10186, 10198, 10201, 10202, + 10203, 10204, 10205, 10219, 10222, 10223, 10237, 10240, + 10241, 10255, 10258, 10259, 10274, 10277, 10288, 10291, + 10330, 10337, 10338, 10339, 10340, 10341, 10342, 10343, + 10344, 10358, 10361, 10362, 10363, 10377, 10380, 10381, + 10382, 10383, 10384, 10385, 10386, 10387 }; static const short _zone_scanner_indicies[] = { @@ -3965,1235 +4040,1260 @@ static const short _zone_scanner_indicies[] = { 63, 262, 262, 39, 263, 263, 39, 264, 264, 39, 265, 265, 266, 267, 268, 269, 270, 270, 271, 272, 63, 273, 273, 274, - 275, 276, 277, 278, 278, 279, 280, 63, - 281, 281, 39, 282, 282, 39, 283, 284, - 39, 285, 39, 286, 286, 287, 288, 289, - 290, 291, 291, 292, 293, 63, 294, 39, - 295, 295, 296, 297, 298, 299, 300, 300, - 301, 302, 63, 303, 304, 303, 304, 39, - 305, 305, 39, 306, 306, 39, 307, 307, - 39, 308, 308, 309, 310, 311, 312, 313, - 313, 314, 315, 63, 316, 316, 39, 317, - 317, 39, 318, 318, 39, 319, 319, 320, - 321, 322, 323, 324, 324, 325, 326, 63, - 327, 328, 327, 328, 39, 329, 329, 330, - 331, 332, 333, 39, 334, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, + 275, 276, 276, 277, 278, 279, 279, 280, + 281, 63, 282, 282, 39, 283, 283, 39, + 284, 284, 285, 286, 287, 288, 289, 289, + 290, 291, 63, 292, 292, 39, 293, 293, + 39, 294, 295, 39, 296, 39, 297, 297, + 298, 299, 300, 301, 302, 302, 303, 304, + 63, 305, 39, 306, 306, 307, 308, 309, + 310, 311, 311, 312, 313, 63, 314, 315, + 314, 315, 39, 316, 316, 39, 317, 317, + 39, 318, 318, 39, 319, 319, 320, 321, + 322, 323, 324, 324, 325, 326, 63, 327, + 327, 39, 328, 328, 39, 329, 329, 39, + 330, 330, 331, 332, 333, 334, 335, 335, + 336, 337, 63, 338, 339, 338, 339, 39, + 340, 340, 341, 342, 343, 344, 39, 345, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 39, 328, - 328, 39, 357, 357, 39, 358, 358, 39, - 359, 359, 39, 360, 360, 39, 361, 361, - 39, 362, 362, 39, 363, 363, 364, 365, - 366, 367, 368, 368, 369, 370, 63, 371, - 372, 371, 372, 39, 373, 373, 39, 374, + 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, + 367, 39, 339, 339, 39, 368, 368, 39, + 369, 369, 39, 370, 370, 39, 371, 371, + 39, 372, 372, 39, 373, 373, 39, 374, 374, 375, 376, 377, 378, 379, 379, 380, - 381, 63, 382, 382, 383, 384, 385, 386, - 387, 387, 388, 389, 63, 390, 391, 392, - 393, 392, 393, 39, 394, 39, 395, 395, - 396, 397, 398, 399, 400, 400, 401, 402, - 63, 403, 39, 404, 404, 405, 406, 407, - 408, 409, 409, 410, 411, 63, 412, 412, - 39, 413, 413, 414, 415, 416, 417, 418, - 418, 419, 420, 63, 421, 421, 422, 423, - 424, 425, 426, 426, 427, 428, 63, 429, - 430, 429, 430, 39, 431, 431, 39, 432, - 432, 39, 433, 433, 39, 434, 434, 435, - 436, 437, 438, 439, 439, 440, 441, 63, - 442, 442, 443, 444, 445, 446, 447, 447, - 448, 449, 63, 450, 451, 452, 450, 451, - 452, 39, 453, 453, 39, 454, 454, 39, - 455, 455, 39, 456, 456, 457, 458, 459, - 460, 461, 461, 462, 463, 63, 464, 464, - 39, 465, 465, 466, 467, 468, 469, 470, - 470, 471, 472, 63, 473, 473, 474, 475, - 476, 476, 477, 478, 479, 479, 480, 481, - 63, 482, 482, 39, 483, 483, 484, 485, - 486, 487, 488, 489, 489, 490, 491, 63, - 492, 492, 493, 494, 495, 495, 496, 497, - 498, 498, 499, 500, 63, 501, 501, 39, - 502, 502, 39, 503, 503, 39, 504, 504, - 39, 505, 505, 506, 507, 508, 509, 510, - 510, 511, 512, 63, 513, 513, 39, 514, - 514, 39, 515, 515, 39, 516, 516, 39, - 517, 517, 39, 518, 518, 39, 519, 519, - 39, 520, 520, 39, 521, 521, 39, 522, - 522, 523, 524, 525, 526, 527, 527, 528, - 529, 63, 530, 530, 39, 531, 531, 39, - 532, 532, 533, 534, 535, 536, 537, 537, - 538, 539, 63, 540, 541, 542, 540, 541, - 542, 39, 543, 543, 544, 545, 546, 547, - 548, 548, 549, 550, 63, 551, 551, 39, - 552, 552, 39, 553, 553, 39, 554, 554, - 555, 556, 557, 558, 559, 559, 560, 561, - 63, 562, 562, 563, 564, 565, 566, 567, - 567, 568, 569, 63, 570, 571, 572, 573, - 574, 575, 570, 571, 572, 573, 574, 575, - 39, 576, 576, 39, 577, 577, 39, 578, - 578, 39, 579, 579, 39, 580, 580, 581, - 582, 583, 584, 585, 585, 586, 587, 63, - 588, 588, 39, 589, 589, 590, 591, 592, - 593, 594, 594, 595, 596, 63, 597, 597, - 39, 598, 598, 599, 600, 601, 602, 603, - 603, 604, 605, 63, 606, 606, 39, 607, - 607, 608, 609, 610, 611, 612, 612, 613, - 614, 63, 615, 615, 39, 616, 616, 39, - 617, 617, 39, 618, 618, 619, 620, 621, - 622, 623, 623, 624, 625, 63, 626, 626, - 39, 627, 627, 39, 628, 628, 629, 630, - 631, 632, 633, 633, 634, 635, 63, 636, - 637, 638, 636, 637, 638, 39, 639, 639, - 39, 640, 640, 39, 641, 641, 642, 643, - 644, 645, 646, 646, 647, 648, 63, 649, - 649, 39, 650, 650, 651, 652, 653, 654, - 655, 655, 656, 657, 63, 658, 658, 39, - 659, 659, 39, 661, 660, 663, 663, 664, - 665, 667, 668, 669, 669, 670, 671, 666, - 662, 672, 672, 39, 673, 673, 39, 674, - 674, 675, 676, 677, 678, 679, 679, 680, - 681, 63, 682, 682, 39, 683, 683, 39, - 684, 684, 39, 685, 685, 39, 686, 686, - 39, 687, 687, 688, 689, 690, 691, 692, - 692, 693, 694, 63, 695, 695, 39, 696, - 696, 39, 697, 697, 39, 698, 698, 39, - 699, 699, 39, 700, 700, 701, 702, 703, - 704, 705, 705, 706, 707, 63, 709, 708, - 39, 710, 710, 711, 712, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 5, - 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 713, 714, 4, 0, 715, - 328, 715, 328, 39, 716, 716, 717, 718, - 719, 720, 39, 721, 721, 722, 723, 725, - 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 738, 739, 740, 741, - 742, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, 738, 739, - 740, 741, 742, 743, 744, 724, 660, 745, - 745, 746, 747, 749, 750, 751, 752, 753, - 749, 750, 751, 752, 753, 754, 755, 748, - 27, 745, 745, 746, 747, 754, 755, 756, - 27, 758, 759, 760, 761, 762, 758, 759, - 760, 761, 762, 757, 27, 763, 763, 764, - 765, 767, 768, 766, 27, 770, 769, 39, - 772, 771, 774, 775, 776, 774, 775, 776, - 773, 777, 777, 773, 778, 778, 773, 779, - 779, 773, 780, 780, 773, 781, 781, 773, - 782, 782, 773, 783, 783, 783, 783, 773, - 785, 785, 786, 787, 788, 789, 784, 790, - 790, 791, 792, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 793, - 794, 4, 660, 797, 795, 796, 799, 799, - 800, 801, 32, 33, 34, 35, 36, 32, - 33, 34, 35, 36, 802, 803, 31, 798, - 804, 804, 805, 806, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 5, 6, + 381, 63, 382, 383, 382, 383, 39, 384, + 384, 39, 385, 385, 386, 387, 388, 389, + 390, 390, 391, 392, 63, 393, 393, 394, + 395, 396, 397, 398, 398, 399, 400, 63, + 401, 402, 403, 404, 403, 404, 39, 405, + 39, 406, 406, 407, 408, 409, 410, 411, + 411, 412, 413, 63, 414, 39, 415, 415, + 416, 417, 418, 419, 420, 420, 421, 422, + 63, 423, 423, 39, 424, 424, 425, 426, + 427, 428, 429, 429, 430, 431, 63, 432, + 432, 433, 434, 435, 436, 437, 437, 438, + 439, 63, 440, 441, 440, 441, 39, 442, + 442, 39, 443, 443, 39, 444, 444, 39, + 445, 445, 446, 447, 448, 449, 450, 450, + 451, 452, 63, 453, 453, 454, 455, 456, + 457, 458, 458, 459, 460, 63, 461, 462, + 463, 461, 462, 463, 39, 464, 464, 39, + 465, 465, 39, 466, 466, 39, 467, 467, + 468, 469, 470, 471, 472, 472, 473, 474, + 63, 475, 475, 39, 476, 476, 477, 478, + 479, 480, 481, 481, 482, 483, 63, 484, + 484, 485, 486, 487, 487, 488, 489, 490, + 490, 491, 492, 63, 493, 493, 39, 494, + 494, 495, 496, 497, 498, 499, 500, 500, + 501, 502, 63, 503, 503, 504, 505, 506, + 506, 507, 508, 509, 509, 510, 511, 63, + 512, 512, 39, 513, 513, 39, 514, 514, + 39, 515, 515, 39, 516, 516, 517, 518, + 519, 520, 521, 521, 522, 523, 63, 524, + 524, 39, 525, 525, 39, 526, 526, 39, + 527, 527, 39, 528, 528, 39, 529, 529, + 39, 530, 530, 39, 531, 531, 39, 532, + 532, 39, 533, 533, 534, 535, 536, 537, + 538, 538, 539, 540, 63, 541, 541, 39, + 542, 542, 39, 543, 543, 544, 545, 546, + 547, 548, 548, 549, 550, 63, 551, 552, + 553, 551, 552, 553, 39, 554, 554, 555, + 556, 557, 558, 559, 559, 560, 561, 63, + 562, 562, 39, 563, 563, 39, 564, 564, + 39, 565, 565, 566, 567, 568, 569, 570, + 570, 571, 572, 63, 573, 573, 574, 575, + 576, 577, 578, 578, 579, 580, 63, 581, + 582, 583, 584, 585, 586, 581, 582, 583, + 584, 585, 586, 39, 587, 587, 39, 588, + 588, 39, 589, 589, 39, 590, 590, 39, + 591, 591, 592, 593, 594, 595, 596, 596, + 597, 598, 63, 599, 599, 39, 600, 600, + 601, 602, 603, 604, 605, 605, 606, 607, + 63, 608, 608, 39, 609, 609, 610, 611, + 612, 613, 614, 614, 615, 616, 63, 617, + 617, 39, 618, 618, 619, 620, 621, 622, + 623, 623, 624, 625, 63, 626, 626, 39, + 627, 627, 39, 628, 628, 39, 629, 629, + 630, 631, 632, 633, 634, 634, 635, 636, + 63, 637, 637, 39, 638, 638, 39, 639, + 639, 640, 641, 642, 643, 644, 644, 645, + 646, 63, 647, 648, 649, 647, 648, 649, + 39, 650, 650, 39, 651, 651, 39, 652, + 652, 653, 654, 655, 656, 657, 657, 658, + 659, 63, 660, 660, 39, 661, 661, 662, + 663, 664, 665, 666, 666, 667, 668, 63, + 669, 669, 39, 670, 670, 39, 672, 671, + 674, 674, 675, 676, 678, 679, 680, 680, + 681, 682, 677, 673, 683, 683, 39, 684, + 684, 39, 685, 685, 686, 687, 688, 689, + 690, 690, 691, 692, 63, 693, 693, 39, + 694, 694, 39, 695, 695, 39, 696, 696, + 39, 697, 697, 39, 698, 698, 699, 700, + 701, 702, 703, 703, 704, 705, 63, 706, + 706, 39, 707, 707, 39, 708, 708, 39, + 709, 709, 39, 710, 710, 39, 711, 711, + 712, 713, 714, 715, 716, 716, 717, 718, + 63, 720, 719, 39, 721, 721, 722, 723, + 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 724, 725, + 4, 0, 726, 339, 726, 339, 39, 727, + 727, 728, 729, 730, 731, 39, 732, 732, + 733, 734, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, 747, 748, 749, + 750, 751, 752, 753, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, 747, + 748, 749, 750, 751, 752, 753, 754, 755, + 735, 671, 756, 756, 757, 758, 760, 761, + 762, 763, 764, 760, 761, 762, 763, 764, + 765, 766, 759, 27, 756, 756, 757, 758, + 765, 766, 767, 27, 769, 770, 771, 772, + 773, 769, 770, 771, 772, 773, 768, 27, + 774, 774, 775, 776, 778, 779, 777, 27, + 781, 780, 39, 783, 782, 785, 786, 787, + 785, 786, 787, 784, 788, 788, 784, 789, + 789, 784, 790, 790, 784, 791, 791, 784, + 792, 792, 784, 793, 793, 784, 794, 794, + 794, 794, 784, 796, 796, 797, 798, 799, + 800, 795, 801, 801, 802, 803, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 807, 808, 4, 660, 810, 809, 39, 28, - 28, 29, 30, 37, 38, 811, 27, 813, - 814, 815, 816, 817, 813, 814, 815, 816, - 817, 812, 27, 818, 818, 819, 820, 822, - 823, 821, 27, 825, 824, 39, 827, 827, - 828, 829, 67, 68, 69, 67, 68, 69, - 830, 831, 72, 72, 832, 833, 826, 834, - 834, 835, 836, 75, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 80, 124, + 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 804, 805, 4, 671, 808, 806, + 807, 810, 810, 811, 812, 32, 33, 34, + 35, 36, 32, 33, 34, 35, 36, 813, + 814, 31, 809, 815, 815, 816, 817, 5, + 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, + 22, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 818, 819, 4, 671, 821, + 820, 39, 28, 28, 29, 30, 37, 38, + 822, 27, 824, 825, 826, 827, 828, 824, + 825, 826, 827, 828, 823, 27, 829, 829, + 830, 831, 833, 834, 832, 27, 836, 835, + 39, 838, 838, 839, 840, 67, 68, 69, + 67, 68, 69, 841, 842, 72, 72, 843, + 844, 837, 845, 845, 846, 847, 75, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 837, 838, 75, 75, 839, 840, 75, - 75, 123, 75, 662, 842, 842, 843, 844, - 67, 68, 69, 67, 68, 69, 89, 90, - 845, 846, 847, 848, 849, 850, 841, 851, - 851, 852, 853, 80, 95, 96, 854, 113, - 114, 115, 855, 116, 75, 75, 75, 85, - 856, 856, 857, 858, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, - 95, 96, 859, 860, 4, 0, 98, 862, - 97, 861, 91, 863, 863, 864, 865, 866, - 867, 866, 867, 97, 97, 97, 85, 868, - 868, 869, 870, 98, 871, 98, 871, 97, - 97, 97, 91, 872, 872, 873, 874, 75, - 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 80, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 95, 96, 859, - 875, 114, 115, 859, 876, 75, 75, 123, - 75, 120, 86, 86, 87, 88, 160, 161, - 162, 163, 164, 160, 161, 162, 163, 164, - 89, 90, 89, 90, 841, 86, 86, 87, - 88, 236, 237, 238, 236, 237, 238, 89, - 90, 89, 90, 841, 86, 86, 87, 88, - 281, 281, 89, 90, 89, 90, 841, 86, - 86, 87, 88, 303, 304, 303, 304, 89, - 90, 89, 90, 841, 86, 86, 87, 88, - 715, 328, 715, 328, 89, 90, 89, 90, - 841, 86, 86, 87, 88, 371, 372, 371, - 372, 89, 90, 89, 90, 841, 86, 86, - 87, 88, 390, 391, 392, 393, 392, 393, - 89, 90, 89, 90, 841, 86, 86, 87, - 88, 429, 430, 429, 430, 89, 90, 89, - 90, 841, 86, 86, 87, 88, 450, 451, - 452, 450, 451, 452, 89, 90, 89, 90, - 841, 86, 86, 87, 88, 513, 513, 89, - 90, 89, 90, 841, 86, 86, 87, 88, - 530, 530, 89, 90, 89, 90, 841, 86, - 86, 87, 88, 540, 541, 542, 540, 541, - 542, 89, 90, 89, 90, 841, 86, 86, - 87, 88, 570, 571, 572, 573, 574, 575, - 570, 571, 572, 573, 574, 575, 89, 90, - 89, 90, 841, 86, 86, 87, 88, 636, - 637, 638, 636, 637, 638, 89, 90, 89, - 90, 841, 86, 86, 87, 88, 672, 672, - 89, 90, 89, 90, 841, 86, 86, 87, - 88, 682, 682, 89, 90, 89, 90, 841, - 86, 86, 87, 88, 695, 695, 89, 90, - 89, 90, 841, 98, 878, 97, 877, 85, - 86, 86, 87, 88, 774, 775, 776, 774, - 775, 776, 89, 90, 89, 90, 879, 880, - 880, 773, 881, 881, 773, 882, 882, 773, - 883, 883, 773, 884, 884, 773, 885, 885, - 885, 885, 773, 886, 886, 773, 887, 887, - 773, 888, 888, 888, 888, 773, 890, 890, - 891, 892, 89, 90, 893, 894, 889, 896, - 896, 897, 898, 32, 33, 34, 35, 36, - 32, 33, 34, 35, 36, 89, 90, 899, - 900, 31, 895, 901, 901, 902, 903, 5, + 141, 80, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 848, 849, 75, 75, + 850, 851, 75, 75, 123, 75, 673, 853, + 853, 854, 855, 67, 68, 69, 67, 68, + 69, 89, 90, 856, 857, 858, 859, 860, + 861, 852, 862, 862, 863, 864, 80, 95, + 96, 865, 113, 114, 115, 866, 116, 75, + 75, 75, 85, 867, 867, 868, 869, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 95, 96, 904, 905, 4, - 0, 98, 907, 97, 906, 154, 909, 909, - 910, 911, 67, 68, 69, 67, 68, 69, - 89, 90, 912, 913, 847, 848, 914, 915, - 908, 916, 916, 917, 918, 75, 124, 125, + 20, 21, 22, 95, 96, 870, 871, 4, + 0, 98, 873, 97, 872, 91, 874, 874, + 875, 876, 877, 878, 877, 878, 97, 97, + 97, 85, 879, 879, 880, 881, 98, 882, + 98, 882, 97, 97, 97, 91, 883, 883, + 884, 885, 75, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 80, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 80, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 95, 96, 919, 875, 114, - 115, 920, 876, 75, 75, 123, 75, 120, - 890, 890, 891, 892, 160, 161, 162, 163, - 164, 160, 161, 162, 163, 164, 89, 90, - 893, 894, 908, 890, 890, 891, 892, 236, - 237, 238, 236, 237, 238, 89, 90, 893, - 894, 908, 890, 890, 891, 892, 281, 281, - 89, 90, 893, 894, 908, 890, 890, 891, - 892, 303, 304, 303, 304, 89, 90, 893, - 894, 908, 890, 890, 891, 892, 715, 328, - 715, 328, 89, 90, 893, 894, 908, 890, - 890, 891, 892, 371, 372, 371, 372, 89, - 90, 893, 894, 908, 890, 890, 891, 892, - 390, 391, 392, 393, 392, 393, 89, 90, - 893, 894, 908, 890, 890, 891, 892, 429, - 430, 429, 430, 89, 90, 893, 894, 908, - 890, 890, 891, 892, 450, 451, 452, 450, - 451, 452, 89, 90, 893, 894, 908, 890, - 890, 891, 892, 513, 513, 89, 90, 893, - 894, 908, 890, 890, 891, 892, 530, 530, - 89, 90, 893, 894, 908, 890, 890, 891, - 892, 540, 541, 542, 540, 541, 542, 89, - 90, 893, 894, 908, 890, 890, 891, 892, - 570, 571, 572, 573, 574, 575, 570, 571, - 572, 573, 574, 575, 89, 90, 893, 894, - 908, 890, 890, 891, 892, 636, 637, 638, - 636, 637, 638, 89, 90, 893, 894, 908, - 890, 890, 891, 892, 672, 672, 89, 90, - 893, 894, 908, 890, 890, 891, 892, 682, - 682, 89, 90, 893, 894, 908, 890, 890, - 891, 892, 695, 695, 89, 90, 893, 894, - 908, 921, 921, 100, 923, 924, 99, 99, - 925, 926, 99, 99, 99, 922, 927, 927, - 928, 929, 5, 6, 7, 8, 9, 10, + 95, 96, 870, 886, 114, 115, 870, 887, + 75, 75, 123, 75, 120, 86, 86, 87, + 88, 160, 161, 162, 163, 164, 160, 161, + 162, 163, 164, 89, 90, 89, 90, 852, + 86, 86, 87, 88, 236, 237, 238, 236, + 237, 238, 89, 90, 89, 90, 852, 86, + 86, 87, 88, 292, 292, 89, 90, 89, + 90, 852, 86, 86, 87, 88, 314, 315, + 314, 315, 89, 90, 89, 90, 852, 86, + 86, 87, 88, 726, 339, 726, 339, 89, + 90, 89, 90, 852, 86, 86, 87, 88, + 382, 383, 382, 383, 89, 90, 89, 90, + 852, 86, 86, 87, 88, 401, 402, 403, + 404, 403, 404, 89, 90, 89, 90, 852, + 86, 86, 87, 88, 440, 441, 440, 441, + 89, 90, 89, 90, 852, 86, 86, 87, + 88, 461, 462, 463, 461, 462, 463, 89, + 90, 89, 90, 852, 86, 86, 87, 88, + 524, 524, 89, 90, 89, 90, 852, 86, + 86, 87, 88, 541, 541, 89, 90, 89, + 90, 852, 86, 86, 87, 88, 551, 552, + 553, 551, 552, 553, 89, 90, 89, 90, + 852, 86, 86, 87, 88, 581, 582, 583, + 584, 585, 586, 581, 582, 583, 584, 585, + 586, 89, 90, 89, 90, 852, 86, 86, + 87, 88, 647, 648, 649, 647, 648, 649, + 89, 90, 89, 90, 852, 86, 86, 87, + 88, 683, 683, 89, 90, 89, 90, 852, + 86, 86, 87, 88, 693, 693, 89, 90, + 89, 90, 852, 86, 86, 87, 88, 706, + 706, 89, 90, 89, 90, 852, 98, 889, + 97, 888, 85, 86, 86, 87, 88, 785, + 786, 787, 785, 786, 787, 89, 90, 89, + 90, 890, 891, 891, 784, 892, 892, 784, + 893, 893, 784, 894, 894, 784, 895, 895, + 784, 896, 896, 896, 896, 784, 897, 897, + 784, 898, 898, 784, 899, 899, 899, 899, + 784, 901, 901, 902, 903, 89, 90, 904, + 905, 900, 907, 907, 908, 909, 32, 33, + 34, 35, 36, 32, 33, 34, 35, 36, + 89, 90, 910, 911, 31, 906, 912, 912, + 913, 914, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 89, 90, - 930, 931, 4, 120, 86, 89, 86, 87, - 88, 90, 932, 933, 932, 934, 935, 936, - 795, 85, 92, 95, 92, 93, 94, 96, - 937, 862, 937, 938, 939, 940, 795, 91, - 863, 866, 863, 864, 865, 867, 941, 933, - 941, 942, 943, 944, 97, 877, 85, 868, - 98, 868, 869, 870, 871, 945, 862, 945, - 946, 947, 948, 97, 877, 85, 949, 949, - 39, 950, 950, 39, 951, 951, 952, 953, - 954, 955, 956, 956, 957, 958, 63, 959, - 959, 39, 960, 960, 39, 961, 961, 39, - 962, 962, 963, 964, 965, 966, 967, 967, - 968, 969, 63, 970, 970, 39, 971, 971, - 972, 973, 974, 975, 976, 976, 977, 978, - 63, 772, 980, 771, 979, 85, 981, 981, - 982, 983, 984, 867, 984, 867, 771, 771, - 771, 85, 985, 985, 986, 987, 988, 871, - 988, 871, 771, 771, 771, 91, 981, 984, - 981, 982, 983, 867, 989, 933, 989, 990, - 991, 944, 771, 979, 85, 985, 988, 985, - 986, 987, 871, 992, 862, 992, 993, 994, - 948, 771, 979, 85, 863, 866, 863, 864, - 865, 867, 995, 866, 995, 996, 997, 177, - 97, 117, 85, 868, 98, 868, 869, 870, - 871, 998, 98, 998, 999, 1000, 181, 97, - 117, 85, 1002, 1001, 77, 1003, 1003, 1004, - 1005, 75, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 80, 124, 125, 126, + 17, 18, 19, 20, 21, 22, 95, 96, + 915, 916, 4, 0, 98, 918, 97, 917, + 154, 920, 920, 921, 922, 67, 68, 69, + 67, 68, 69, 89, 90, 923, 924, 858, + 859, 925, 926, 919, 927, 927, 928, 929, + 75, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 80, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 95, 96, + 930, 886, 114, 115, 931, 887, 75, 75, + 123, 75, 120, 901, 901, 902, 903, 160, + 161, 162, 163, 164, 160, 161, 162, 163, + 164, 89, 90, 904, 905, 919, 901, 901, + 902, 903, 236, 237, 238, 236, 237, 238, + 89, 90, 904, 905, 919, 901, 901, 902, + 903, 292, 292, 89, 90, 904, 905, 919, + 901, 901, 902, 903, 314, 315, 314, 315, + 89, 90, 904, 905, 919, 901, 901, 902, + 903, 726, 339, 726, 339, 89, 90, 904, + 905, 919, 901, 901, 902, 903, 382, 383, + 382, 383, 89, 90, 904, 905, 919, 901, + 901, 902, 903, 401, 402, 403, 404, 403, + 404, 89, 90, 904, 905, 919, 901, 901, + 902, 903, 440, 441, 440, 441, 89, 90, + 904, 905, 919, 901, 901, 902, 903, 461, + 462, 463, 461, 462, 463, 89, 90, 904, + 905, 919, 901, 901, 902, 903, 524, 524, + 89, 90, 904, 905, 919, 901, 901, 902, + 903, 541, 541, 89, 90, 904, 905, 919, + 901, 901, 902, 903, 551, 552, 553, 551, + 552, 553, 89, 90, 904, 905, 919, 901, + 901, 902, 903, 581, 582, 583, 584, 585, + 586, 581, 582, 583, 584, 585, 586, 89, + 90, 904, 905, 919, 901, 901, 902, 903, + 647, 648, 649, 647, 648, 649, 89, 90, + 904, 905, 919, 901, 901, 902, 903, 683, + 683, 89, 90, 904, 905, 919, 901, 901, + 902, 903, 693, 693, 89, 90, 904, 905, + 919, 901, 901, 902, 903, 706, 706, 89, + 90, 904, 905, 919, 932, 932, 100, 934, + 935, 99, 99, 936, 937, 99, 99, 99, + 933, 938, 938, 939, 940, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 5, + 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, + 22, 89, 90, 941, 942, 4, 120, 86, + 89, 86, 87, 88, 90, 943, 944, 943, + 945, 946, 947, 806, 85, 92, 95, 92, + 93, 94, 96, 948, 873, 948, 949, 950, + 951, 806, 91, 874, 877, 874, 875, 876, + 878, 952, 944, 952, 953, 954, 955, 97, + 888, 85, 879, 98, 879, 880, 881, 882, + 956, 873, 956, 957, 958, 959, 97, 888, + 85, 960, 960, 39, 961, 961, 39, 962, + 962, 963, 964, 965, 966, 967, 967, 968, + 969, 63, 970, 970, 39, 971, 971, 39, + 972, 972, 39, 973, 973, 974, 975, 976, + 977, 978, 978, 979, 980, 63, 981, 981, + 39, 982, 982, 983, 984, 985, 986, 987, + 987, 988, 989, 63, 783, 991, 782, 990, + 85, 992, 992, 993, 994, 995, 878, 995, + 878, 782, 782, 782, 85, 996, 996, 997, + 998, 999, 882, 999, 882, 782, 782, 782, + 91, 992, 995, 992, 993, 994, 878, 1000, + 944, 1000, 1001, 1002, 955, 782, 990, 85, + 996, 999, 996, 997, 998, 882, 1003, 873, + 1003, 1004, 1005, 959, 782, 990, 85, 874, + 877, 874, 875, 876, 878, 1006, 877, 1006, + 1007, 1008, 177, 97, 117, 85, 879, 98, + 879, 880, 881, 882, 1009, 98, 1009, 1010, + 1011, 181, 97, 117, 85, 1013, 1012, 77, + 1014, 1014, 1015, 1016, 75, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 89, - 90, 930, 1006, 107, 108, 930, 1007, 75, - 75, 123, 75, 120, 86, 89, 86, 87, - 88, 90, 1008, 933, 1008, 1009, 1010, 944, - 1001, 85, 92, 95, 92, 93, 94, 96, - 1011, 862, 1011, 1012, 1013, 948, 1001, 85, - 785, 785, 786, 787, 160, 161, 162, 163, - 164, 160, 161, 162, 163, 164, 788, 789, - 1014, 785, 785, 786, 787, 236, 237, 238, - 236, 237, 238, 788, 789, 1014, 785, 785, - 786, 787, 281, 281, 788, 789, 1014, 785, - 785, 786, 787, 303, 304, 303, 304, 788, - 789, 1014, 785, 785, 786, 787, 715, 328, - 715, 328, 788, 789, 1014, 785, 785, 786, - 787, 371, 372, 371, 372, 788, 789, 1014, - 785, 785, 786, 787, 390, 391, 392, 393, - 392, 393, 788, 789, 1014, 785, 785, 786, - 787, 429, 430, 429, 430, 788, 789, 1014, - 785, 785, 786, 787, 450, 451, 452, 450, - 451, 452, 788, 789, 1014, 785, 785, 786, - 787, 513, 513, 788, 789, 1014, 785, 785, - 786, 787, 530, 530, 788, 789, 1014, 785, - 785, 786, 787, 540, 541, 542, 540, 541, - 542, 788, 789, 1014, 785, 785, 786, 787, - 570, 571, 572, 573, 574, 575, 570, 571, - 572, 573, 574, 575, 788, 789, 1014, 785, - 785, 786, 787, 636, 637, 638, 636, 637, - 638, 788, 789, 1014, 785, 785, 786, 787, - 672, 672, 788, 789, 1014, 785, 785, 786, - 787, 682, 682, 788, 789, 1014, 785, 785, - 786, 787, 695, 695, 788, 789, 1014, 772, - 1016, 771, 1015, 91, 772, 1018, 771, 1017, - 154, 785, 785, 786, 787, 327, 328, 327, - 328, 788, 789, 1014, 98, 1020, 97, 1019, - 154, 1022, 1023, 1024, 1021, 1021, 1021, 796, - 1026, 1025, 1028, 1027, 1030, 1031, 1032, 1033, - 1030, 1030, 1030, 1030, 1029, 1034, 1035, 1036, - 1034, 1037, 1035, 1034, 1034, 1035, 1035, 1035, - 1029, 1038, 1039, 1039, 1038, 1040, 1039, 1038, - 1038, 1039, 1039, 1039, 1029, 1041, 1035, 1043, - 1042, 1044, 1042, 1045, 1046, 1047, 1045, 1048, - 1046, 1045, 1045, 1046, 1046, 1046, 1042, 1038, - 1038, 1038, 1038, 1029, 1049, 1049, 1049, 1049, - 1029, 1052, 1053, 1051, 1051, 1050, 1054, 1055, - 1054, 1057, 1054, 1055, 1056, 1055, 1050, 1051, - 1059, 1051, 1058, 1060, 1058, 1061, 1058, 1062, - 1063, 1062, 1065, 1062, 1063, 1064, 1063, 1058, - 1066, 1066, 1068, 1066, 1069, 1066, 1067, 1050, - 1070, 1070, 1072, 1070, 1073, 1070, 1071, 1050, - 1075, 1075, 1075, 1075, 1074, 1067, 1076, 1067, - 1058, 1077, 1058, 1078, 1058, 1079, 1079, 1081, - 1079, 1082, 1079, 1080, 1058, 1084, 1084, 1085, - 1086, 1087, 1088, 1083, 1084, 1084, 1085, 1086, - 1087, 1088, 1090, 1089, 1092, 1092, 1093, 1094, - 1096, 1097, 1098, 1099, 1100, 1096, 1097, 1098, - 1099, 1100, 1101, 1102, 1101, 1102, 1095, 1091, - 1104, 1104, 1105, 1106, 1107, 1108, 1107, 1108, - 1103, 1110, 1109, 1092, 1092, 1093, 1094, 1101, - 1102, 1101, 1102, 1111, 1091, 1114, 1115, 1116, - 1117, 1118, 1114, 1115, 1116, 1117, 1118, 1113, - 1112, 1119, 1119, 1120, 1121, 1123, 1124, 1123, - 1124, 1122, 1091, 1126, 1125, 1083, 1128, 1128, - 1129, 1130, 1131, 1132, 1127, 1128, 1128, 1129, - 1130, 1133, 1134, 1135, 1133, 1131, 1132, 1133, - 1133, 1133, 1127, 1136, 1137, 1138, 1136, 1136, - 1136, 1136, 1127, 1140, 1140, 1141, 1142, 1143, - 1143, 1144, 1143, 1145, 1146, 1145, 1146, 1143, - 1143, 1143, 1139, 1147, 1147, 1148, 1149, 1150, - 1151, 1150, 1151, 1139, 1153, 1152, 1154, 1136, - 1156, 1155, 1157, 1155, 1158, 1159, 1160, 1158, - 1158, 1158, 1158, 1155, 1140, 1140, 1141, 1142, - 1145, 1146, 1145, 1146, 1139, 1162, 1161, 1127, - 1163, 1163, 1164, 1165, 1166, 1167, 796, 1163, - 1163, 1164, 1165, 1166, 1167, 1168, 1168, 1168, - 1169, 1171, 1171, 1172, 1173, 1174, 1175, 1174, - 1176, 1170, 1178, 1178, 1179, 1180, 1181, 1182, - 1183, 1181, 1184, 1185, 1184, 1186, 1181, 1181, - 1181, 1177, 1188, 1189, 1190, 1188, 1188, 1188, - 1188, 1187, 1191, 1191, 1192, 1193, 1194, 1194, - 1195, 1194, 1196, 1197, 1196, 1197, 1194, 1194, - 1194, 1177, 1198, 1198, 1199, 1200, 1184, 1185, - 1184, 1185, 91, 1202, 1201, 1203, 1188, 1205, - 1204, 1206, 1204, 1207, 1208, 1209, 1207, 1207, - 1207, 1207, 1204, 1191, 1191, 1192, 1193, 1196, - 1197, 1196, 1197, 1177, 1202, 1211, 1201, 1210, - 91, 1212, 1212, 1213, 1214, 1181, 1182, 1183, - 1181, 1215, 1216, 1181, 1181, 1181, 1187, 1218, - 1217, 796, 1220, 1219, 796, 1222, 1222, 1222, - 1222, 1221, 1223, 1223, 1223, 1223, 1221, 1224, - 1225, 1224, 1224, 1224, 1221, 1226, 1227, 1226, - 1226, 1226, 1221, 1227, 1227, 1228, 1229, 1222, - 1230, 1231, 1232, 1232, 1233, 1234, 1222, 1222, - 1222, 1221, 1236, 1235, 1221, 1227, 1221, 1238, - 1238, 1239, 1240, 1241, 1242, 1243, 1243, 1244, - 1245, 1237, 1246, 1246, 1247, 1248, 1249, 1250, - 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, + 135, 136, 137, 138, 139, 140, 141, 80, + 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 89, 90, 941, 1017, 107, 108, + 941, 1018, 75, 75, 123, 75, 120, 86, + 89, 86, 87, 88, 90, 1019, 944, 1019, + 1020, 1021, 955, 1012, 85, 92, 95, 92, + 93, 94, 96, 1022, 873, 1022, 1023, 1024, + 959, 1012, 85, 796, 796, 797, 798, 160, + 161, 162, 163, 164, 160, 161, 162, 163, + 164, 799, 800, 1025, 796, 796, 797, 798, + 236, 237, 238, 236, 237, 238, 799, 800, + 1025, 796, 796, 797, 798, 292, 292, 799, + 800, 1025, 796, 796, 797, 798, 314, 315, + 314, 315, 799, 800, 1025, 796, 796, 797, + 798, 726, 339, 726, 339, 799, 800, 1025, + 796, 796, 797, 798, 382, 383, 382, 383, + 799, 800, 1025, 796, 796, 797, 798, 401, + 402, 403, 404, 403, 404, 799, 800, 1025, + 796, 796, 797, 798, 440, 441, 440, 441, + 799, 800, 1025, 796, 796, 797, 798, 461, + 462, 463, 461, 462, 463, 799, 800, 1025, + 796, 796, 797, 798, 524, 524, 799, 800, + 1025, 796, 796, 797, 798, 541, 541, 799, + 800, 1025, 796, 796, 797, 798, 551, 552, + 553, 551, 552, 553, 799, 800, 1025, 796, + 796, 797, 798, 581, 582, 583, 584, 585, + 586, 581, 582, 583, 584, 585, 586, 799, + 800, 1025, 796, 796, 797, 798, 647, 648, + 649, 647, 648, 649, 799, 800, 1025, 796, + 796, 797, 798, 683, 683, 799, 800, 1025, + 796, 796, 797, 798, 693, 693, 799, 800, + 1025, 796, 796, 797, 798, 706, 706, 799, + 800, 1025, 783, 1027, 782, 1026, 91, 783, + 1029, 782, 1028, 154, 796, 796, 797, 798, + 338, 339, 338, 339, 799, 800, 1025, 98, + 1031, 97, 1030, 154, 1033, 1034, 1035, 1032, + 1032, 1032, 807, 1037, 1036, 1039, 1038, 1041, + 1042, 1043, 1044, 1041, 1041, 1041, 1041, 1040, + 1045, 1046, 1047, 1045, 1048, 1046, 1045, 1045, + 1046, 1046, 1046, 1040, 1049, 1050, 1050, 1049, + 1051, 1050, 1049, 1049, 1050, 1050, 1050, 1040, + 1052, 1046, 1054, 1053, 1055, 1053, 1056, 1057, + 1058, 1056, 1059, 1057, 1056, 1056, 1057, 1057, + 1057, 1053, 1049, 1049, 1049, 1049, 1040, 1060, + 1060, 1060, 1060, 1040, 1063, 1064, 1062, 1062, + 1061, 1065, 1066, 1065, 1068, 1065, 1066, 1067, + 1066, 1061, 1062, 1070, 1062, 1069, 1071, 1069, + 1072, 1069, 1073, 1074, 1073, 1076, 1073, 1074, + 1075, 1074, 1069, 1077, 1077, 1079, 1077, 1080, + 1077, 1078, 1061, 1081, 1081, 1083, 1081, 1084, + 1081, 1082, 1061, 1086, 1086, 1086, 1086, 1085, + 1078, 1087, 1078, 1069, 1088, 1069, 1089, 1069, + 1090, 1090, 1092, 1090, 1093, 1090, 1091, 1069, + 1095, 1095, 1096, 1097, 1098, 1099, 1094, 1095, + 1095, 1096, 1097, 1098, 1099, 1101, 1100, 1103, + 1103, 1104, 1105, 1107, 1108, 1109, 1110, 1111, + 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1112, + 1113, 1106, 1102, 1115, 1115, 1116, 1117, 1118, + 1119, 1118, 1119, 1114, 1121, 1120, 1103, 1103, + 1104, 1105, 1112, 1113, 1112, 1113, 1122, 1102, + 1125, 1126, 1127, 1128, 1129, 1125, 1126, 1127, + 1128, 1129, 1124, 1123, 1130, 1130, 1131, 1132, + 1134, 1135, 1134, 1135, 1133, 1102, 1137, 1136, + 1094, 1139, 1139, 1140, 1141, 1142, 1143, 1138, + 1139, 1139, 1140, 1141, 1144, 1145, 1146, 1144, + 1142, 1143, 1144, 1144, 1144, 1138, 1147, 1148, + 1149, 1147, 1147, 1147, 1147, 1138, 1151, 1151, + 1152, 1153, 1154, 1154, 1155, 1154, 1156, 1157, + 1156, 1157, 1154, 1154, 1154, 1150, 1158, 1158, + 1159, 1160, 1161, 1162, 1161, 1162, 1150, 1164, + 1163, 1165, 1147, 1167, 1166, 1168, 1166, 1169, + 1170, 1171, 1169, 1169, 1169, 1169, 1166, 1151, + 1151, 1152, 1153, 1156, 1157, 1156, 1157, 1150, + 1173, 1172, 1138, 1174, 1174, 1175, 1176, 1177, + 1178, 807, 1174, 1174, 1175, 1176, 1177, 1178, + 1179, 1179, 1179, 1180, 1182, 1182, 1183, 1184, + 1185, 1186, 1185, 1187, 1181, 1189, 1189, 1190, + 1191, 1192, 1193, 1194, 1192, 1195, 1196, 1195, + 1197, 1192, 1192, 1192, 1188, 1199, 1200, 1201, + 1199, 1199, 1199, 1199, 1198, 1202, 1202, 1203, + 1204, 1205, 1205, 1206, 1205, 1207, 1208, 1207, + 1208, 1205, 1205, 1205, 1188, 1209, 1209, 1210, + 1211, 1195, 1196, 1195, 1196, 91, 1213, 1212, + 1214, 1199, 1216, 1215, 1217, 1215, 1218, 1219, + 1220, 1218, 1218, 1218, 1218, 1215, 1202, 1202, + 1203, 1204, 1207, 1208, 1207, 1208, 1188, 1213, + 1222, 1212, 1221, 91, 1223, 1223, 1224, 1225, + 1192, 1193, 1194, 1192, 1226, 1227, 1192, 1192, + 1192, 1198, 1229, 1228, 807, 1231, 1230, 807, + 1233, 1233, 1233, 1233, 1232, 1234, 1234, 1234, + 1234, 1232, 1235, 1236, 1235, 1235, 1235, 1232, + 1237, 1238, 1237, 1237, 1237, 1232, 1238, 1238, + 1239, 1240, 1233, 1241, 1242, 1243, 1243, 1244, + 1245, 1233, 1233, 1233, 1232, 1247, 1246, 1232, + 1238, 1232, 1249, 1249, 1250, 1251, 1252, 1253, + 1254, 1254, 1255, 1256, 1248, 1257, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, - 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, - 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, - 1265, 1266, 1267, 1268, 1269, 1269, 1270, 1271, - 1237, 1272, 1272, 1273, 1274, 1275, 1276, 1277, - 1275, 1276, 1277, 1278, 1279, 1280, 1280, 1281, - 1282, 1237, 1283, 1283, 1237, 1284, 1284, 1237, - 1285, 1285, 1286, 1287, 1288, 1289, 1290, 1290, - 1291, 1292, 1237, 1294, 1293, 1237, 1295, 1296, - 1297, 1298, 1299, 1295, 1296, 1297, 1298, 1299, - 1237, 1300, 1300, 1237, 1301, 1301, 1302, 1303, - 1304, 1305, 1306, 1306, 1307, 1308, 1237, 1309, - 1310, 1309, 1310, 1237, 1311, 1311, 1237, 1312, - 1312, 1237, 1313, 1313, 1237, 1314, 1314, 1237, - 1315, 1315, 1316, 1317, 1318, 1319, 1320, 1320, - 1321, 1322, 1237, 1323, 1323, 1324, 1325, 1326, - 1327, 1328, 1328, 1329, 1330, 1237, 1331, 1331, - 1237, 1332, 1332, 1237, 1333, 1333, 1334, 1335, - 1336, 1337, 1338, 1338, 1339, 1340, 1237, 1341, - 1341, 1237, 1342, 1342, 1237, 1343, 1343, 1237, - 1344, 1344, 1345, 1346, 1347, 1348, 1349, 1349, - 1350, 1351, 1237, 1352, 1352, 1237, 1353, 1353, - 1237, 1354, 1354, 1237, 1355, 1355, 1356, 1357, - 1358, 1359, 1360, 1360, 1361, 1362, 1237, 1363, - 1364, 1365, 1363, 1364, 1365, 1237, 1366, 1366, - 1237, 1367, 1367, 1237, 1368, 1368, 1237, 1369, - 1369, 1370, 1371, 1372, 1373, 1374, 1374, 1375, - 1376, 1237, 1377, 1378, 1377, 1378, 1237, 1379, - 1379, 1237, 1380, 1380, 1237, 1381, 1381, 1382, - 1383, 1384, 1385, 1386, 1386, 1387, 1388, 1237, - 1389, 1389, 1237, 1390, 1390, 1237, 1391, 1391, - 1237, 1392, 1392, 1393, 1394, 1395, 1396, 1397, - 1397, 1398, 1399, 1237, 1400, 1400, 1401, 1402, - 1403, 1404, 1405, 1405, 1406, 1407, 1237, 1408, - 1408, 1237, 1409, 1409, 1237, 1410, 1411, 1237, - 1412, 1237, 1413, 1413, 1414, 1415, 1416, 1417, - 1418, 1418, 1419, 1420, 1237, 1421, 1237, 1422, - 1422, 1423, 1424, 1425, 1426, 1427, 1427, 1428, - 1429, 1237, 1430, 1431, 1430, 1431, 1237, 1432, - 1432, 1237, 1433, 1433, 1237, 1434, 1434, 1237, + 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, + 1275, 1276, 1277, 1260, 1261, 1262, 1263, 1264, + 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, + 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1280, 1281, 1282, 1248, 1283, 1283, 1284, 1285, + 1286, 1287, 1288, 1286, 1287, 1288, 1289, 1290, + 1291, 1291, 1292, 1293, 1248, 1294, 1294, 1248, + 1295, 1295, 1248, 1296, 1296, 1297, 1298, 1299, + 1300, 1301, 1301, 1302, 1303, 1248, 1305, 1304, + 1248, 1306, 1307, 1308, 1309, 1310, 1306, 1307, + 1308, 1309, 1310, 1248, 1311, 1311, 1248, 1312, + 1312, 1313, 1314, 1315, 1316, 1317, 1317, 1318, + 1319, 1248, 1320, 1321, 1320, 1321, 1248, 1322, + 1322, 1248, 1323, 1323, 1248, 1324, 1324, 1248, + 1325, 1325, 1248, 1326, 1326, 1327, 1328, 1329, + 1330, 1331, 1331, 1332, 1333, 1248, 1334, 1334, + 1335, 1336, 1337, 1338, 1339, 1339, 1340, 1341, + 1248, 1342, 1342, 1248, 1343, 1343, 1248, 1344, + 1344, 1345, 1346, 1347, 1348, 1349, 1349, 1350, + 1351, 1248, 1352, 1352, 1248, 1353, 1353, 1248, + 1354, 1354, 1248, 1355, 1355, 1356, 1357, 1358, + 1359, 1360, 1360, 1361, 1362, 1248, 1363, 1363, + 1248, 1364, 1364, 1248, 1365, 1365, 1248, 1366, + 1366, 1367, 1368, 1369, 1370, 1371, 1371, 1372, + 1373, 1248, 1374, 1375, 1376, 1374, 1375, 1376, + 1248, 1377, 1377, 1248, 1378, 1378, 1248, 1379, + 1379, 1248, 1380, 1380, 1381, 1382, 1383, 1384, + 1385, 1385, 1386, 1387, 1248, 1388, 1389, 1388, + 1389, 1248, 1390, 1390, 1248, 1391, 1391, 1248, + 1392, 1392, 1393, 1394, 1395, 1396, 1397, 1397, + 1398, 1399, 1248, 1400, 1400, 1248, 1401, 1401, + 1248, 1402, 1402, 1248, 1403, 1403, 1404, 1405, + 1406, 1407, 1408, 1408, 1409, 1410, 1248, 1411, + 1411, 1412, 1413, 1414, 1414, 1415, 1416, 1417, + 1417, 1418, 1419, 1248, 1420, 1420, 1248, 1421, + 1421, 1248, 1422, 1422, 1423, 1424, 1425, 1426, + 1427, 1427, 1428, 1429, 1248, 1430, 1430, 1248, + 1431, 1431, 1248, 1432, 1433, 1248, 1434, 1248, 1435, 1435, 1436, 1437, 1438, 1439, 1440, 1440, - 1441, 1442, 1237, 1443, 1443, 1237, 1444, 1444, - 1237, 1445, 1445, 1237, 1446, 1446, 1447, 1448, - 1449, 1450, 1451, 1451, 1452, 1453, 1237, 1454, - 1454, 1237, 1455, 1455, 1237, 1456, 1456, 1237, - 1457, 1457, 1237, 1458, 1458, 1237, 1459, 1459, - 1237, 1460, 1460, 1237, 1461, 1461, 1462, 1463, - 1464, 1465, 1466, 1466, 1467, 1468, 1237, 1469, - 1470, 1469, 1470, 1237, 1471, 1471, 1237, 1472, - 1472, 1473, 1474, 1475, 1476, 1477, 1477, 1478, - 1479, 1237, 1480, 1480, 1481, 1482, 1483, 1484, - 1485, 1485, 1486, 1487, 1237, 1488, 1489, 1490, - 1491, 1490, 1491, 1237, 1492, 1237, 1493, 1493, - 1494, 1495, 1496, 1497, 1498, 1498, 1499, 1500, - 1237, 1501, 1237, 1502, 1502, 1503, 1504, 1505, - 1506, 1507, 1507, 1508, 1509, 1237, 1510, 1510, - 1237, 1511, 1511, 1512, 1513, 1514, 1515, 1516, - 1516, 1517, 1518, 1237, 1519, 1519, 1520, 1521, - 1522, 1523, 1524, 1524, 1525, 1526, 1237, 1527, - 1528, 1527, 1528, 1237, 1529, 1529, 1237, 1530, - 1530, 1237, 1531, 1531, 1237, 1532, 1532, 1533, - 1534, 1535, 1536, 1537, 1537, 1538, 1539, 1237, - 1540, 1540, 1541, 1542, 1543, 1544, 1545, 1545, - 1546, 1547, 1237, 1548, 1549, 1550, 1548, 1549, - 1550, 1237, 1551, 1551, 1237, 1552, 1552, 1237, - 1553, 1553, 1237, 1554, 1554, 1555, 1556, 1557, - 1558, 1559, 1559, 1560, 1561, 1237, 1562, 1562, - 1237, 1563, 1563, 1564, 1565, 1566, 1567, 1568, - 1568, 1569, 1570, 1237, 1571, 1571, 1572, 1573, - 1574, 1574, 1575, 1576, 1577, 1577, 1578, 1579, - 1237, 1580, 1580, 1237, 1581, 1581, 1582, 1583, - 1584, 1585, 1586, 1587, 1587, 1588, 1589, 1237, - 1590, 1590, 1591, 1592, 1593, 1593, 1594, 1595, - 1596, 1596, 1597, 1598, 1237, 1599, 1599, 1237, - 1600, 1600, 1237, 1601, 1601, 1237, 1602, 1602, - 1237, 1603, 1603, 1604, 1605, 1606, 1607, 1608, - 1608, 1609, 1610, 1237, 1611, 1611, 1237, 1612, - 1612, 1237, 1613, 1613, 1237, 1614, 1614, 1237, - 1615, 1615, 1237, 1616, 1616, 1237, 1617, 1617, - 1237, 1618, 1618, 1237, 1619, 1619, 1237, 1620, - 1620, 1621, 1622, 1623, 1624, 1625, 1625, 1626, - 1627, 1237, 1628, 1628, 1237, 1629, 1629, 1237, - 1630, 1630, 1631, 1632, 1633, 1634, 1635, 1635, - 1636, 1637, 1237, 1638, 1639, 1640, 1638, 1639, - 1640, 1237, 1641, 1641, 1642, 1643, 1644, 1645, - 1646, 1646, 1647, 1648, 1237, 1649, 1649, 1237, - 1650, 1650, 1237, 1651, 1651, 1237, 1652, 1652, + 1441, 1442, 1248, 1443, 1248, 1444, 1444, 1445, + 1446, 1447, 1448, 1449, 1449, 1450, 1451, 1248, + 1452, 1453, 1452, 1453, 1248, 1454, 1454, 1248, + 1455, 1455, 1248, 1456, 1456, 1248, 1457, 1457, + 1458, 1459, 1460, 1461, 1462, 1462, 1463, 1464, + 1248, 1465, 1465, 1248, 1466, 1466, 1248, 1467, + 1467, 1248, 1468, 1468, 1469, 1470, 1471, 1472, + 1473, 1473, 1474, 1475, 1248, 1476, 1476, 1248, + 1477, 1477, 1248, 1478, 1478, 1248, 1479, 1479, + 1248, 1480, 1480, 1248, 1481, 1481, 1248, 1482, + 1482, 1248, 1483, 1483, 1484, 1485, 1486, 1487, + 1488, 1488, 1489, 1490, 1248, 1491, 1492, 1491, + 1492, 1248, 1493, 1493, 1248, 1494, 1494, 1495, + 1496, 1497, 1498, 1499, 1499, 1500, 1501, 1248, + 1502, 1502, 1503, 1504, 1505, 1506, 1507, 1507, + 1508, 1509, 1248, 1510, 1511, 1512, 1513, 1512, + 1513, 1248, 1514, 1248, 1515, 1515, 1516, 1517, + 1518, 1519, 1520, 1520, 1521, 1522, 1248, 1523, + 1248, 1524, 1524, 1525, 1526, 1527, 1528, 1529, + 1529, 1530, 1531, 1248, 1532, 1532, 1248, 1533, + 1533, 1534, 1535, 1536, 1537, 1538, 1538, 1539, + 1540, 1248, 1541, 1541, 1542, 1543, 1544, 1545, + 1546, 1546, 1547, 1548, 1248, 1549, 1550, 1549, + 1550, 1248, 1551, 1551, 1248, 1552, 1552, 1248, + 1553, 1553, 1248, 1554, 1554, 1555, 1556, 1557, + 1558, 1559, 1559, 1560, 1561, 1248, 1562, 1562, + 1563, 1564, 1565, 1566, 1567, 1567, 1568, 1569, + 1248, 1570, 1571, 1572, 1570, 1571, 1572, 1248, + 1573, 1573, 1248, 1574, 1574, 1248, 1575, 1575, + 1248, 1576, 1576, 1577, 1578, 1579, 1580, 1581, + 1581, 1582, 1583, 1248, 1584, 1584, 1248, 1585, + 1585, 1586, 1587, 1588, 1589, 1590, 1590, 1591, + 1592, 1248, 1593, 1593, 1594, 1595, 1596, 1596, + 1597, 1598, 1599, 1599, 1600, 1601, 1248, 1602, + 1602, 1248, 1603, 1603, 1604, 1605, 1606, 1607, + 1608, 1609, 1609, 1610, 1611, 1248, 1612, 1612, + 1613, 1614, 1615, 1615, 1616, 1617, 1618, 1618, + 1619, 1620, 1248, 1621, 1621, 1248, 1622, 1622, + 1248, 1623, 1623, 1248, 1624, 1624, 1248, 1625, + 1625, 1626, 1627, 1628, 1629, 1630, 1630, 1631, + 1632, 1248, 1633, 1633, 1248, 1634, 1634, 1248, + 1635, 1635, 1248, 1636, 1636, 1248, 1637, 1637, + 1248, 1638, 1638, 1248, 1639, 1639, 1248, 1640, + 1640, 1248, 1641, 1641, 1248, 1642, 1642, 1643, + 1644, 1645, 1646, 1647, 1647, 1648, 1649, 1248, + 1650, 1650, 1248, 1651, 1651, 1248, 1652, 1652, 1653, 1654, 1655, 1656, 1657, 1657, 1658, 1659, - 1237, 1660, 1660, 1661, 1662, 1663, 1664, 1665, - 1665, 1666, 1667, 1237, 1668, 1669, 1670, 1671, - 1672, 1673, 1668, 1669, 1670, 1671, 1672, 1673, - 1237, 1674, 1674, 1237, 1675, 1675, 1237, 1676, - 1676, 1237, 1677, 1677, 1237, 1678, 1678, 1679, - 1680, 1681, 1682, 1683, 1683, 1684, 1685, 1237, - 1686, 1686, 1237, 1687, 1687, 1688, 1689, 1690, - 1691, 1692, 1692, 1693, 1694, 1237, 1695, 1695, - 1237, 1696, 1696, 1697, 1698, 1699, 1700, 1701, - 1701, 1702, 1703, 1237, 1704, 1704, 1237, 1705, - 1705, 1706, 1707, 1708, 1709, 1710, 1710, 1711, - 1712, 1237, 1713, 1713, 1237, 1714, 1714, 1237, - 1715, 1715, 1237, 1716, 1716, 1717, 1718, 1719, - 1720, 1721, 1721, 1722, 1723, 1237, 1724, 1724, - 1237, 1725, 1725, 1237, 1726, 1726, 1727, 1728, - 1729, 1730, 1731, 1731, 1732, 1733, 1237, 1734, - 1735, 1736, 1734, 1735, 1736, 1237, 1737, 1737, - 1237, 1738, 1738, 1237, 1739, 1739, 1740, 1741, - 1742, 1743, 1744, 1744, 1745, 1746, 1237, 1747, - 1747, 1237, 1748, 1748, 1749, 1750, 1751, 1752, - 1753, 1753, 1754, 1755, 1237, 1756, 1756, 1237, - 1757, 1757, 1237, 1758, 1237, 1759, 1759, 1760, - 1761, 1763, 1764, 1765, 1765, 1766, 1767, 1762, - 1237, 1768, 1768, 1237, 1769, 1769, 1237, 1770, - 1770, 1771, 1772, 1773, 1774, 1775, 1775, 1776, - 1777, 1237, 1778, 1778, 1237, 1779, 1779, 1237, - 1780, 1780, 1237, 1781, 1781, 1237, 1782, 1782, - 1237, 1783, 1783, 1784, 1785, 1786, 1787, 1788, - 1788, 1789, 1790, 1237, 1791, 1791, 1237, 1792, - 1792, 1237, 1793, 1793, 1237, 1794, 1794, 1237, - 1795, 1795, 1237, 1796, 1796, 1797, 1798, 1799, - 1800, 1801, 1801, 1802, 1803, 1237, 1804, 1804, - 1237, 1805, 1805, 1237, 1806, 1806, 1237, 1807, - 1807, 1808, 1809, 1810, 1811, 1812, 1812, 1813, - 1814, 1237, 1815, 1815, 1237, 1816, 1816, 1817, - 1818, 1819, 1820, 1821, 1821, 1822, 1823, 1237, - 1825, 1825, 1826, 1827, 1828, 1829, 1824, 1825, - 1825, 1826, 1827, 1828, 1829, 1831, 1830, 1832, - 1832, 1833, 1834, 1836, 1837, 1835, 1830, 1839, - 1839, 1840, 1841, 1843, 1844, 1842, 1842, 1842, - 1838, 1845, 1845, 1845, 1838, 1846, 1846, 1847, - 1848, 1849, 1850, 1851, 1851, 1852, 1853, 1842, - 1842, 1842, 1838, 1855, 1854, 1838, 1857, 1856, - 1824, 1859, 1858, 1824, 1860, 1860, 1861, 1862, - 1863, 1864, 1824, 1860, 1860, 1861, 1862, 1865, - 1863, 1864, 1866, 1830, 1867, 1867, 1868, 1869, - 1871, 1871, 1872, 1873, 1870, 1830, 1874, 1874, - 1875, 1876, 1878, 1879, 1877, 1877, 1877, 1838, - 1880, 1880, 1880, 1838, 1881, 1881, 1882, 1883, - 1884, 1885, 1886, 1886, 1887, 1888, 1877, 1877, - 1877, 1838, 1890, 1889, 1838, 1892, 1891, 1824, - 1893, 1893, 1894, 1895, 1896, 1897, 1870, 1830, - 1899, 1898, 1824, 1901, 1902, 1903, 1904, 1905, - 1906, 1907, 1908, 1900, 1909, 1900, 1910, 1900, - 1911, 1900, 1912, 1912, 1912, 1912, 1912, 1912, - 1900, 1913, 1900, 1914, 1900, 1915, 1900, 1916, - 1900, 1917, 1900, 1918, 1900, 1919, 1919, 1919, - 1919, 1919, 1919, 1900, 1920, 1900, 1921, 1900, - 1922, 1922, 1922, 1922, 1922, 1922, 1900, 1923, - 1900, 1924, 1900, 1925, 1926, 1900, 1927, 1900, - 1928, 1900, 1929, 1900, 1930, 1900, 1931, 1931, - 1931, 1931, 1931, 1931, 1900, 1932, 1900, 1933, - 1900, 1934, 1900, 1935, 1900, 1936, 1936, 1936, - 1936, 1936, 1936, 1900, 1937, 1900, 1938, 1900, - 1940, 1939, 1941, 1941, 1941, 1941, 1941, 1941, - 1942, 1939, 1943, 1900, 1944, 1900, 1945, 1900, - 1946, 1900, 1947, 1900, 1948, 1900, 1949, 1900, - 1950, 1900, 1951, 1900, 1952, 1900, 1953, 1900, - 1954, 1900, 1955, 1900, 1956, 1900, 1957, 1957, - 1957, 1957, 1957, 1957, 1900, 1958, 1900, 1959, - 1900, 1960, 1900, 1961, 1900, 1962, 1962, 1962, - 1962, 1962, 1962, 1900, 1963, 1900, 1964, 1900, - 1965, 1900, 1966, 1966, 1966, 1966, 1966, 1966, - 1900, 1968, 1968, 1969, 1970, 1971, 1972, 1973, - 1973, 1974, 1975, 1967, 1976, 1976, 1977, 1978, - 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, - 1987, 1988, 1989, 1990, 1990, 1991, 1992, 1967, - 1993, 1967, 1994, 1967, 1995, 1967, 1996, 1967, - 1967, 1998, 1967, 1967, 1967, 1997, 1999, 1999, - 2000, 2001, 2002, 2003, 2004, 2004, 2005, 2006, - 1967, 2008, 2007, 1967, 2009, 1967, 2010, 1967, - 2011, 1967, 2012, 1967, 2013, 1967, 2014, 1967, - 2015, 1967, 1967, 2017, 1967, 1967, 1967, 2016, - 2018, 2018, 2019, 2020, 2021, 2022, 2023, 2023, - 2024, 2025, 1967, 2018, 2018, 2019, 2020, 2021, - 2022, 2023, 2023, 2024, 2025, 2026, 2026, 2026, - 1967, 2027, 1967, 2028, 2028, 2029, 2030, 2031, - 2032, 2033, 2033, 2034, 2035, 1967, 2036, 1967, - 2037, 1967, 2038, 1967, 2039, 2040, 2040, 2040, - 2040, 1967, 2041, 2041, 2041, 2041, 1967, 2042, - 2042, 2042, 2042, 1967, 2043, 2044, 2043, 2043, - 2043, 1967, 2045, 2046, 2045, 2045, 2045, 1967, - 2027, 2047, 2047, 2047, 2047, 1967, 2046, 1967, - 2048, 2048, 2048, 2048, 1967, 2049, 2050, 2049, - 2049, 2049, 1967, 2051, 2052, 2051, 2051, 2051, - 1967, 2018, 2018, 2019, 2020, 2053, 2021, 2022, - 2023, 2023, 2024, 2025, 2053, 2053, 2053, 1967, - 2052, 1967, 2054, 1967, 2055, 1967, 2056, 2057, - 1967, 2058, 1967, 2059, 1967, 2060, 1967, 2061, - 1967, 2062, 1967, 2064, 2065, 2065, 2063, 2066, - 2066, 2063, 2067, 2068, 2069, 2069, 2063, 2070, - 2070, 2063, 2071, 2071, 2072, 2073, 2074, 2075, - 2076, 2077, 2078, 2078, 2079, 2080, 2075, 2063, - 2081, 2081, 2063, 2082, 1967, 2083, 1967, 2084, - 1967, 2085, 1967, 2086, 1967, 2087, 2088, 2088, - 2088, 2088, 2063, 2089, 2089, 2089, 2089, 2063, - 2090, 2091, 2092, 2092, 2092, 2092, 2063, 2093, - 2093, 2093, 2093, 2063, 2094, 2094, 2095, 2096, - 2097, 2098, 2099, 2100, 2101, 2101, 2102, 2103, - 2098, 2098, 2098, 2063, 2104, 2104, 2104, 2104, - 2063, 2105, 1967, 2106, 1967, 2108, 2107, 2109, - 2109, 2110, 2111, 2113, 2114, 2115, 2116, 2116, - 2117, 2118, 2112, 2107, 1967, 1967, 1967, 1967, - 2016, 2119, 1967, 2120, 1967, 2121, 1967, 2122, - 1967, 2123, 1967, 2124, 1967, 2125, 1967, 2126, - 1967, 2127, 1967, 2128, 2129, 2129, 1967, 2130, - 2130, 1967, 2131, 2132, 1967, 2133, 2133, 1967, - 2134, 2134, 2135, 2136, 2137, 2138, 2139, 2140, - 2140, 2141, 2142, 1967, 2143, 2143, 1967, 2144, - 1967, 2145, 1967, 2146, 1967, 2147, 1967, 2148, - 1967, 2149, 1967, 2150, 1967, 2151, 1967, 2152, - 1967, 2153, 1967, 2154, 1967, 2155, 1967, 2156, - 1967, 2157, 1967, 2158, 2158, 2159, 2160, 2161, - 2162, 2163, 2163, 2164, 2165, 1967, 2166, 1967, - 2167, 1967, 2168, 1967, 2169, 1967, 2170, 2170, - 2171, 2172, 2173, 2174, 2175, 2175, 2176, 2177, - 1967, 2178, 1967, 2179, 1967, 2180, 1967, 2181, - 1967, 2182, 2183, 2107, 2184, 2107, 2185, 2186, - 2107, 2187, 2187, 2188, 2189, 2191, 2192, 2193, - 2193, 2194, 2195, 2190, 2107, 1999, 1999, 2000, - 2001, 2002, 2003, 2004, 2004, 2005, 2006, 2196, - 2196, 2196, 1967, 2197, 1967, 2200, 2201, 2202, - 2203, 2204, 2200, 2201, 2202, 2203, 2204, 2199, - 2198, 2205, 2205, 2205, 2205, 2206, 2198, 2207, - 2208, 2207, 2208, 2198, 2209, 2209, 2209, 2209, - 2198, 2210, 2210, 2198, 2211, 2212, 2211, 2211, - 2211, 2198, 2213, 2213, 2198, 2214, 2214, 2198, - 2215, 2215, 2198, 2216, 2216, 2198, 2217, 2198, - 2218, 2198, 2219, 2219, 2198, 2220, 2220, 2198, - 2221, 2221, 2198, 2222, 2198, 2223, 2223, 2223, - 2223, 2198, 2224, 2225, 2224, 2225, 2198, 2226, - 2227, 2226, 2227, 2198, 2228, 2198, 2229, 2229, - 2198, 2230, 2230, 2198, 2231, 2231, 2198, 2232, - 2232, 2198, 2233, 2233, 2233, 2233, 2198, 2234, - 2234, 2198, 2235, 2235, 2198, 2236, 2236, 2198, - 2237, 2238, 2198, 2239, 2198, 2240, 2198, 2241, - 2241, 2198, 2242, 2242, 2198, 2243, 2243, 2198, - 2244, 2198, 2245, 2198, 2246, 2198, 2247, 2247, - 2247, 2247, 2198, 2248, 2198, 2249, 2198, 2250, - 2250, 2198, 2251, 2251, 2198, 2252, 2252, 2198, - 2253, 2198, 2254, 2198, 2255, 2198, 2256, 2256, - 2256, 2256, 2198, 2257, 2258, 2198, 2259, 2198, - 2260, 2198, 2261, 2198, 2262, 2198, 2263, 2263, - 2263, 2263, 2198, 2264, 2198, 2265, 2198, 2266, - 2266, 2266, 2266, 2198, 2267, 2267, 2198, 2268, - 2268, 2198, 2269, 2269, 2198, 2270, 2270, 2198, - 2271, 2271, 2198, 2272, 2272, 2198, 2273, 2273, - 2198, 2274, 2274, 2274, 2274, 2198, 2275, 2275, - 2198, 2276, 2276, 2198, 2277, 2277, 2198, 2278, - 2278, 2198, 2279, 2279, 2198, 2280, 2280, 2198, - 2281, 2282, 2281, 2282, 2198, 2283, 2283, 2198, - 2284, 2284, 2198, 2285, 2285, 2285, 2285, 2198, - 2286, 2286, 2198, 2287, 2287, 2198, 2288, 2288, - 2288, 2288, 2198, 2289, 2289, 2198, 2290, 2290, - 2198, 2291, 2292, 2291, 2292, 2198, 2293, 2293, - 2198, 2294, 2198, 2295, 2295, 2295, 2295, 2198, - 2296, 2296, 2198, 2297, 2297, 2198, 2298, 2299, - 2300, 2198, 2301, 2302, 2301, 2301, 2301, 2198, - 2303, 2303, 2198, 2304, 2304, 2198, 2305, 2305, - 2198, 2306, 2306, 2198, 2307, 2198, 2308, 2198, - 2309, 2309, 2198, 2310, 2310, 2198, 2311, 2311, - 2198, 2312, 2198, 2313, 2313, 2313, 2313, 2198, - 2314, 2198, 2315, 2198, 2316, 2316, 2316, 2316, - 2198, 2317, 2198, 2318, 2198, 2319, 2319, 2319, - 2319, 2198, 2322, 2323, 2324, 2325, 2326, 2327, - 2322, 2323, 2324, 2325, 2326, 2327, 2321, 2320, - 2328, 2328, 2328, 2328, 2329, 2320, 2330, 2330, - 2320, 2331, 2331, 2320, 2332, 2332, 2320, 2333, - 2333, 2320, 2334, 2334, 2320, 2335, 2335, 2335, - 2335, 2320, 2336, 2337, 2338, 2336, 2337, 2338, - 2320, 2339, 2339, 2320, 2340, 2340, 2320, 2341, - 2341, 2320, 2342, 2342, 2320, 2343, 2343, 2320, - 2344, 2344, 2344, 2344, 2320, 2345, 2346, 2345, - 2346, 2320, 2347, 2347, 2320, 2348, 2348, 2348, - 2348, 2320, 2349, 2349, 2320, 2350, 2350, 2320, - 2351, 2351, 2351, 2351, 2320, 2352, 2352, 2320, - 2353, 2353, 2320, 2354, 2354, 2320, 2355, 2355, - 2355, 2355, 2320, 2356, 2356, 2320, 2357, 2357, - 2320, 2358, 2358, 2358, 2358, 2320, 2359, 2360, - 2359, 2360, 2320, 2361, 2361, 2320, 2362, 2362, - 2362, 2362, 2320, 2363, 2363, 2320, 2364, 2364, - 2320, 2365, 2365, 2365, 2365, 2320, 2366, 2366, - 2320, 2367, 2367, 2320, 2368, 2368, 2320, 2369, - 2369, 2369, 2369, 2320, 2370, 2370, 2320, 2371, - 2371, 2320, 2372, 2372, 2372, 2372, 2320, 2374, - 2374, 2373, 2375, 2376, 2375, 2375, 2375, 2376, - 2373, 2377, 2377, 2377, 2377, 2377, 2377, 77, - 2378, 2378, 2378, 2378, 77, 2379, 2379, 2379, - 2379, 2379, 2379, 77, 2380, 2380, 2381, 2382, - 2383, 2384, 77, 2385, 2385, 2386, 2387, 2388, - 2388, 2388, 2389, 2390, 2388, 2388, 2388, 77, - 2391, 2391, 2392, 2393, 2394, 2395, 77, 2397, - 2397, 2398, 2399, 2401, 2402, 2400, 2396, 2403, - 2403, 2404, 2405, 2407, 2408, 2406, 2396, 2409, - 2409, 2410, 2411, 2413, 2414, 2412, 2396, 2416, - 2416, 2417, 2418, 2420, 2421, 2422, 2423, 2424, - 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2419, - 2415, 2427, 2427, 2428, 2429, 2431, 2432, 2430, - 2396, 2433, 2433, 2434, 2435, 2437, 2438, 2439, - 2440, 2441, 2437, 2438, 2439, 2440, 2441, 2442, - 2443, 2436, 2415, 2444, 2444, 2445, 2446, 2448, - 2449, 2447, 2396, 2450, 2450, 2451, 2452, 2454, - 2455, 2456, 2457, 2458, 2454, 2455, 2456, 2457, - 2458, 2459, 2460, 2453, 2415, 2461, 2461, 2462, - 2463, 2465, 2466, 2464, 2396, 2467, 2467, 2469, - 2470, 2471, 2472, 2473, 2469, 2470, 2471, 2472, - 2473, 2467, 2467, 2468, 2415, 2467, 2467, 2467, - 2467, 2474, 2415, 2476, 2477, 2478, 2479, 2480, - 2476, 2477, 2478, 2479, 2480, 2475, 2415, 2481, - 2481, 2481, 2481, 2482, 2415, 2484, 2483, 77, - 2450, 2450, 2451, 2452, 2459, 2460, 2485, 2415, - 2487, 2488, 2489, 2490, 2491, 2487, 2488, 2489, - 2490, 2491, 2486, 2415, 2492, 2492, 2493, 2494, - 2496, 2497, 2495, 2415, 2499, 2498, 77, 2433, - 2433, 2434, 2435, 2442, 2443, 2500, 2415, 2502, - 2503, 2504, 2505, 2506, 2502, 2503, 2504, 2505, - 2506, 2501, 2415, 2507, 2507, 2508, 2509, 2511, - 2512, 2510, 2415, 2514, 2513, 77, 2416, 2416, - 2417, 2418, 2425, 2426, 2515, 2415, 2517, 2518, - 2519, 2520, 2521, 2517, 2518, 2519, 2520, 2521, - 2516, 2415, 2522, 2522, 2523, 2524, 2526, 2527, - 2525, 2415, 2529, 2528, 77, 2531, 2530, 77, - 2533, 2532, 77, 77, 77, 77, 77, 2534, - 2535, 2535, 2536, 2537, 2538, 2539, 77, 2541, - 2541, 2542, 2543, 2544, 2545, 2540, 2540, 2540, - 77, 2546, 2546, 2546, 2546, 77, 2548, 2547, - 77, 2549, 2549, 2549, 2549, 2549, 2549, 77, - 2550, 2550, 2551, 2552, 2553, 2554, 77, 2555, - 2555, 2556, 2557, 2558, 2558, 2558, 2559, 2560, - 2558, 2558, 2558, 77, 2561, 2561, 2561, 2561, - 77, 2563, 2562, 77, 2564, 2396, 2565, 2565, - 2566, 2567, 2569, 2570, 2568, 2396, 2571, 2571, - 2572, 2573, 2574, 2574, 2574, 2575, 2576, 2574, - 2574, 2574, 77, 2577, 2577, 2577, 2577, 77, - 2579, 2578, 77, 2581, 2581, 2581, 2581, 2580, - 2582, 2582, 2583, 2584, 2585, 2586, 2587, 2587, - 2588, 2589, 2581, 2591, 2591, 2592, 2593, 2594, - 2595, 2596, 2596, 2597, 2598, 2590, 2590, 2590, - 2581, 2600, 2599, 2581, 2601, 2601, 2601, 2601, - 2373, 2602, 2603, 2602, 2602, 2602, 2603, 2603, - 2603, 2373, 2605, 2604, 2606, 2606, 2607, 2608, - 2610, 2611, 2609, 2604, 2612, 2612, 2613, 2614, - 2616, 2617, 2618, 2619, 2615, 2604, 2620, 2620, - 2621, 2622, 2624, 2625, 2623, 2604, 2626, 2626, - 2627, 2628, 2616, 2617, 2630, 2631, 2629, 2604, - 2632, 2632, 2633, 2634, 2635, 2637, 2638, 2636, - 2604, 2639, 2639, 2640, 2641, 2616, 2617, 2642, - 2643, 2604, 2644, 2644, 2645, 2646, 2647, 2648, - 2604, 2644, 2644, 2645, 2646, 2647, 2648, 2649, - 2604, 2650, 2650, 2651, 2652, 2654, 2655, 2653, - 2604, 2656, 2656, 2657, 2658, 2660, 2661, 2662, - 2663, 2659, 2604, 2664, 2664, 2665, 2666, 2668, - 2669, 2667, 2604, 2670, 2670, 2671, 2672, 2660, - 2661, 2674, 2675, 2673, 2604, 2676, 2676, 2677, - 2678, 2679, 2681, 2682, 2680, 2604, 2683, 2683, - 2684, 2685, 2660, 2661, 2686, 2687, 2604, 2688, - 2688, 2689, 2690, 2691, 2692, 2604, 2688, 2688, - 2689, 2690, 2693, 2691, 2692, 2694, 2604, 2695, - 2604, 2696, 2696, 2697, 2698, 2699, 2701, 2702, - 2703, 2704, 2704, 2705, 2706, 2700, 2604, 2707, - 2707, 2708, 2709, 2711, 2712, 2713, 2713, 2714, - 2715, 2710, 2604, 2716, 2716, 2717, 2718, 2719, - 2721, 2722, 2723, 2724, 2724, 2725, 2726, 2720, - 2604, 2727, 2727, 2728, 2729, 2731, 2732, 2713, - 2713, 2733, 2734, 2730, 2604, 2735, 2735, 2736, - 2737, 2738, 2740, 2741, 2742, 2743, 2743, 2744, - 2745, 2739, 2604, 2746, 2746, 2747, 2748, 2750, - 2751, 2713, 2713, 2752, 2753, 2749, 2604, 2754, - 2754, 2755, 2756, 2757, 2754, 2759, 2760, 2761, - 2761, 2762, 2763, 2758, 2604, 2764, 2764, 2765, - 2766, 2767, 2768, 2713, 2713, 2769, 2770, 2604, - 2772, 2771, 2604, 2773, 2773, 2774, 2775, 2773, - 2777, 2778, 2779, 2779, 2780, 2781, 2776, 2604, - 2754, 2754, 2755, 2756, 2754, 2759, 2760, 2761, - 2761, 2762, 2763, 2782, 2604, 2784, 2783, 2604, - 2785, 2785, 2786, 2787, 2789, 2790, 2791, 2792, - 2792, 2793, 2794, 2788, 2604, 2735, 2735, 2736, - 2737, 2740, 2741, 2742, 2743, 2743, 2744, 2745, - 2795, 2604, 2746, 2746, 2747, 2748, 2750, 2751, - 2713, 2713, 2752, 2753, 2604, 2797, 2796, 2604, - 2798, 2798, 2799, 2800, 2802, 2803, 2804, 2805, - 2805, 2806, 2807, 2801, 2604, 2716, 2716, 2717, - 2718, 2721, 2722, 2723, 2724, 2724, 2725, 2726, - 2808, 2604, 2727, 2727, 2728, 2729, 2731, 2732, - 2713, 2713, 2733, 2734, 2604, 2810, 2809, 2604, - 2811, 2811, 2812, 2813, 2815, 2816, 2817, 2818, - 2818, 2819, 2820, 2814, 2604, 2696, 2696, 2697, - 2698, 2701, 2702, 2703, 2704, 2704, 2705, 2706, - 2821, 2604, 2707, 2707, 2708, 2709, 2711, 2712, - 2713, 2713, 2714, 2715, 2604, 2823, 2822, 2604, - 2824, 2824, 2825, 2826, 2827, 2828, 2604, 2830, - 2829, 2604, 2831, 2831, 2832, 2833, 2835, 2836, - 2834, 2604, 2676, 2676, 2677, 2678, 2681, 2682, - 2837, 2604, 2839, 2838, 2604, 2841, 2840, 2604, - 2843, 2842, 2604, 2844, 2844, 2845, 2846, 2847, - 2848, 2604, 2850, 2849, 2604, 2851, 2851, 2852, - 2853, 2855, 2856, 2854, 2604, 2632, 2632, 2633, - 2634, 2637, 2638, 2857, 2604, 2859, 2858, 2604, - 2861, 2860, 2604, 2862, 2396, 2863, 2863, 2864, - 2865, 2867, 2868, 2866, 2396, 2869, 2869, 2870, - 2871, 2873, 2874, 2872, 2396, 2875, 2875, 2876, - 2877, 2879, 2880, 2878, 2396, 2881, 2881, 2882, - 2883, 2885, 2886, 2884, 2396, 2887, 2887, 2888, - 2889, 2891, 2892, 2890, 2396, 2893, 2893, 2894, - 2895, 2896, 2896, 2896, 2897, 2898, 2896, 2896, - 2896, 77, 2899, 2899, 2899, 2899, 77, 2901, - 2900, 77, 2903, 2902, 77, 2905, 2904, 77, - 2906, 2396, 2907, 2907, 2908, 2909, 2911, 2912, - 2910, 2396, 2913, 2913, 2914, 2915, 2917, 2918, - 2916, 2396, 2919, 2919, 2920, 2921, 2923, 2924, - 2922, 2396, 2926, 2926, 2927, 2928, 2929, 2930, - 2925, 2925, 2925, 77, 2931, 2931, 2932, 2933, - 2934, 2935, 77, 2937, 2937, 2938, 2939, 2940, - 2941, 2936, 2936, 2936, 77, 2942, 2942, 2943, - 2944, 2945, 2946, 77, 2948, 2948, 2949, 2950, - 2951, 2952, 2947, 2947, 2947, 77, 2953, 2953, - 2954, 2955, 2956, 2957, 77, 2958, 2958, 2959, - 2960, 2961, 2961, 2961, 2962, 2963, 2961, 2961, - 2961, 77, 2964, 2964, 2964, 2964, 77, 2966, - 2965, 77, 2968, 2967, 77, 2970, 2969, 77, - 2972, 2971, 77, 2974, 2973, 77, 2975, 2975, - 2975, 77, 2976, 2976, 2977, 2978, 2979, 2980, - 77, 2976, 2976, 2977, 2978, 2979, 2980, 2981, - 2396, 2982, 2982, 2983, 2984, 2986, 2987, 2985, - 2396, 2988, 2988, 2989, 2990, 2992, 2993, 2991, - 2991, 2991, 77, 2994, 2994, 2995, 2996, 2997, - 2998, 77, 2994, 2994, 2995, 2996, 2999, 2997, - 2998, 2999, 2999, 2999, 77, 3000, 3000, 77, - 3002, 3001, 77, 3004, 3003, 77, 3006, 3005, - 77, 3008, 3008, 3009, 3010, 3011, 3012, 3013, - 3014, 3015, 3016, 3016, 3017, 3018, 3007, 3019, - 3020, 3007, 3021, 3007, 3023, 3023, 3022, 3025, - 3024, 3022, 3026, 3007, 3027, 3027, 3028, 3029, - 3031, 3032, 3033, 3033, 3034, 3035, 3030, 3007, - 3037, 3036, 77, 3038, 3007, 3039, 3039, 3039, - 3039, 3022, 3041, 3040, 3040, 3040, 3022, 3042, - 2396, 3043, 3043, 3044, 3045, 3047, 3048, 3046, - 2396, 3049, 3049, 3050, 3051, 3053, 3054, 3052, - 3052, 3052, 77, 3055, 3055, 3056, 3057, 3058, - 3059, 77, 3055, 3055, 3056, 3057, 3058, 3059, - 3060, 2396, 3061, 3061, 3062, 3063, 3065, 3066, - 3064, 2396, 3068, 3068, 3069, 3070, 3072, 3073, - 3071, 3071, 3071, 3067, 3074, 3074, 3074, 3067, - 3075, 3075, 3076, 3077, 3078, 3079, 3080, 3080, - 3081, 3082, 3071, 3071, 3071, 3067, 3084, 3083, - 3067, 3086, 3085, 77, 3088, 3087, 77, 3090, - 3089, 77, 3091, 2396, 3092, 3092, 3093, 3094, - 3096, 3097, 3095, 2396, 3098, 3098, 3099, 3100, - 3102, 3103, 3101, 2396, 3104, 3104, 3105, 3106, - 3108, 3109, 3107, 2396, 3110, 3110, 3111, 3112, - 3114, 3115, 3113, 3113, 3113, 3067, 3116, 3116, - 3116, 3067, 3117, 3117, 3118, 3119, 3120, 3121, - 3122, 3122, 3123, 3124, 3113, 3113, 3113, 3067, - 3126, 3125, 3067, 3128, 3127, 77, 3130, 3129, - 77, 3131, 2396, 3132, 3132, 3133, 3134, 3136, - 3137, 3135, 2396, 3139, 3139, 3140, 3141, 3142, - 3143, 3144, 3145, 3146, 3147, 3138, 3148, 3148, - 3149, 3150, 3151, 3152, 3138, 3148, 3148, 3149, - 3150, 3151, 3152, 3154, 3153, 3155, 3155, 3156, - 3157, 3159, 3160, 3158, 3153, 3161, 3161, 3162, - 3163, 3164, 3165, 3166, 3138, 3168, 3168, 3169, - 3170, 3171, 3171, 3172, 3173, 3174, 3174, 3175, - 3176, 3177, 3177, 3177, 3177, 3178, 3179, 3177, - 3177, 3180, 3181, 3182, 3183, 3177, 3177, 3184, - 3185, 3186, 3187, 3177, 3177, 3188, 3189, 3167, - 3168, 3168, 3169, 3170, 3191, 3178, 3179, 3191, - 3191, 3191, 3190, 3177, 3177, 3190, 3193, 3192, - 3190, 3171, 3171, 3172, 3173, 3177, 3177, 3177, - 3177, 3182, 3183, 3177, 3177, 3184, 3185, 3190, - 3195, 3194, 3190, 3191, 3168, 3168, 3169, 3170, - 3171, 3171, 3172, 3173, 3174, 3174, 3175, 3176, - 3177, 3177, 3177, 3177, 3178, 3179, 3177, 3177, - 3180, 3181, 3182, 3183, 3177, 3177, 3184, 3185, - 3186, 3187, 3177, 3177, 3188, 3189, 3191, 3191, - 3191, 3190, 3193, 3195, 3197, 3192, 3194, 3196, - 3190, 3199, 3198, 3138, 3201, 3200, 3138, 3202, - 3202, 3203, 3204, 3205, 3206, 3138, 3202, 3202, - 3203, 3204, 3205, 3206, 3207, 3153, 3208, 3208, - 3209, 3210, 3212, 3213, 3211, 3153, 3215, 3215, - 3216, 3217, 3218, 3219, 3220, 3218, 3214, 3222, - 3223, 3223, 3224, 3225, 3226, 3226, 3227, 3228, - 3229, 3229, 3230, 3231, 3232, 3232, 3232, 3232, - 3233, 3234, 3232, 3232, 3235, 3236, 3237, 3238, - 3232, 3232, 3239, 3240, 3241, 3242, 3232, 3232, - 3243, 3244, 3222, 3221, 3246, 3245, 3138, 3248, - 3247, 3138, 3249, 3249, 3250, 3251, 3252, 3253, - 3138, 3249, 3249, 3250, 3251, 3252, 3253, 3254, - 3153, 3255, 3255, 3256, 3257, 3259, 3260, 3258, - 3153, 3261, 3261, 3262, 3263, 3264, 3265, 3266, - 3264, 3264, 3264, 3214, 3267, 3268, 3268, 3269, - 3270, 3271, 3271, 3272, 3273, 3274, 3274, 3275, - 3276, 3277, 3277, 3277, 3277, 3278, 3279, 3277, - 3277, 3280, 3281, 3282, 3283, 3277, 3277, 3284, - 3285, 3286, 3287, 3277, 3277, 3288, 3289, 3267, - 3267, 3267, 3221, 3291, 3290, 3138, 3293, 3292, - 3138, 3294, 3294, 3295, 3296, 3297, 3298, 3138, - 3294, 3294, 3295, 3296, 3297, 3298, 3299, 3153, - 3300, 3300, 3301, 3302, 3304, 3305, 3303, 3153, - 3306, 3306, 3307, 3308, 3309, 3309, 3309, 3310, - 3311, 3309, 3309, 3309, 3138, 3312, 3312, 3313, - 3314, 3315, 3315, 3316, 3317, 3318, 3318, 3319, - 3320, 3321, 3321, 3321, 3321, 3322, 3323, 3321, - 3321, 3324, 3325, 3326, 3327, 3321, 3321, 3328, - 3329, 3330, 3331, 3321, 3321, 3332, 3333, 3167, - 3335, 3334, 3138, 3337, 3336, 3138, 3339, 3338, - 77, 3341, 3342, 3343, 3344, 3345, 3346, 3347, - 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, - 3356, 3357, 3358, 3341, 3342, 3343, 3344, 3345, - 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, - 3354, 3355, 3356, 3357, 3358, 3340, 3359, 3359, - 3360, 3361, 3362, 3363, 3364, 3362, 3363, 3364, - 3365, 3366, 3340, 3367, 3367, 3368, 3369, 3371, - 3372, 3370, 3370, 3370, 77, 3373, 3373, 3374, - 3375, 3376, 3377, 77, 3373, 3373, 3374, 3375, - 3376, 3377, 3378, 2396, 3379, 3379, 3380, 3381, - 3383, 3384, 3382, 2396, 3385, 3385, 3386, 3387, - 3389, 3390, 3388, 2396, 3391, 3391, 3392, 3393, - 3395, 3396, 3394, 2396, 3398, 3398, 3399, 3400, - 3402, 3403, 3401, 3397, 3404, 3404, 3405, 3406, - 3408, 3409, 3407, 3397, 3410, 3410, 3411, 3412, - 3414, 3415, 3413, 3397, 3416, 3416, 3417, 3418, - 3420, 3421, 3419, 3397, 3422, 3422, 3423, 3424, - 3426, 3427, 3425, 2396, 3428, 3428, 3429, 3430, - 3432, 3433, 3431, 2396, 3434, 3434, 3435, 3436, - 3437, 3437, 3437, 3438, 3439, 3437, 3437, 3437, - 77, 3440, 3440, 3441, 3442, 3443, 3444, 77, - 3445, 3445, 3446, 3447, 3448, 3449, 3450, 3448, - 3448, 3448, 77, 3451, 3451, 77, 3453, 3452, - 77, 3455, 3454, 77, 3457, 3456, 77, 3459, - 3458, 77, 3461, 3460, 77, 3463, 3462, 77, - 3465, 3464, 77, 3467, 3466, 77, 3468, 3468, - 3340, 3469, 3469, 3340, 3470, 3470, 3471, 3472, - 3473, 3474, 3340, 3475, 3475, 3340, 3476, 3476, - 3340, 3477, 3477, 3340, 3478, 3478, 3479, 3480, - 3481, 3482, 3340, 3483, 3483, 3340, 3484, 3484, - 3485, 3486, 3487, 3488, 3340, 3489, 3490, 3491, - 3492, 3493, 3489, 3490, 3491, 3492, 3493, 3340, - 3494, 3494, 3340, 3495, 3495, 3496, 3497, 3498, - 3499, 3340, 3500, 3501, 3500, 3501, 3340, 3502, - 3502, 3340, 3503, 3503, 3340, 3504, 3504, 3340, - 3505, 3505, 3340, 3506, 3506, 3507, 3508, 3509, - 3510, 3340, 3511, 3511, 3512, 3513, 3514, 3515, - 3340, 3516, 3516, 3340, 3517, 3517, 3340, 3518, - 3518, 3519, 3520, 3521, 3522, 3340, 3523, 3523, - 3340, 3524, 3524, 3340, 3525, 3525, 3340, 3526, - 3526, 3527, 3528, 3529, 3530, 3340, 3531, 3531, - 3340, 3532, 3532, 3340, 3533, 3533, 3340, 3534, - 3534, 3535, 3536, 3537, 3538, 3340, 3539, 3540, - 3541, 3539, 3540, 3541, 3340, 3542, 3542, 3340, - 3543, 3543, 3340, 3544, 3544, 3340, 3545, 3545, - 3546, 3547, 3548, 3549, 3340, 3550, 3551, 3550, - 3551, 3340, 3552, 3552, 3340, 3553, 3553, 3340, - 3554, 3554, 3555, 3556, 3557, 3558, 3340, 3559, - 3559, 3340, 3560, 3560, 3340, 3561, 3561, 3340, - 3562, 3562, 3563, 3564, 3565, 3566, 3340, 3567, - 3567, 3568, 3569, 3570, 3571, 3340, 3572, 3572, - 3340, 3573, 3573, 3340, 3574, 3575, 3340, 3576, - 3340, 3577, 3577, 3578, 3579, 3580, 3581, 3340, - 3582, 3340, 3583, 3583, 3584, 3585, 3586, 3587, - 3340, 3588, 3589, 3588, 3589, 3340, 3590, 3590, - 3340, 3591, 3591, 3340, 3592, 3592, 3340, 3593, - 3593, 3594, 3595, 3596, 3597, 3340, 3598, 3598, - 3340, 3599, 3599, 3340, 3600, 3600, 3340, 3601, - 3601, 3602, 3603, 3604, 3605, 3340, 3606, 3606, - 3340, 3607, 3607, 3340, 3608, 3608, 3340, 3609, - 3609, 3340, 3610, 3610, 3340, 3611, 3611, 3340, - 3612, 3612, 3340, 3613, 3613, 3614, 3615, 3616, - 3617, 3340, 3618, 3619, 3618, 3619, 3340, 3620, - 3620, 3340, 3621, 3621, 3622, 3623, 3624, 3625, - 3340, 3626, 3626, 3627, 3628, 3629, 3630, 3340, - 3631, 3632, 3633, 3634, 3633, 3634, 3340, 3635, - 3340, 3636, 3636, 3637, 3638, 3639, 3640, 3340, - 3641, 3340, 3642, 3642, 3643, 3644, 3645, 3646, - 3340, 3647, 3647, 3340, 3648, 3648, 3649, 3650, - 3651, 3652, 3340, 3653, 3653, 3654, 3655, 3656, - 3657, 3340, 3658, 3659, 3658, 3659, 3340, 3660, - 3660, 3340, 3661, 3661, 3340, 3662, 3662, 3340, - 3663, 3663, 3664, 3665, 3666, 3667, 3340, 3668, - 3668, 3669, 3670, 3671, 3672, 3340, 3673, 3674, - 3675, 3673, 3674, 3675, 3340, 3676, 3676, 3340, - 3677, 3677, 3340, 3678, 3678, 3340, 3679, 3679, - 3680, 3681, 3682, 3683, 3340, 3684, 3684, 3340, - 3685, 3685, 3686, 3687, 3688, 3689, 3340, 3690, - 3690, 3691, 3692, 3693, 3693, 3694, 3695, 3340, - 3696, 3696, 3340, 3697, 3697, 3698, 3699, 3700, - 3701, 3702, 3340, 3703, 3703, 3704, 3705, 3706, - 3706, 3707, 3708, 3340, 3709, 3709, 3340, 3710, - 3710, 3340, 3711, 3711, 3340, 3712, 3712, 3340, - 3713, 3713, 3714, 3715, 3716, 3717, 3340, 3718, - 3718, 3340, 3719, 3719, 3340, 3720, 3720, 3340, - 3721, 3721, 3340, 3722, 3722, 3340, 3723, 3723, - 3340, 3724, 3724, 3340, 3725, 3725, 3340, 3726, - 3726, 3340, 3727, 3727, 3728, 3729, 3730, 3731, - 3340, 3732, 3732, 3340, 3733, 3733, 3340, 3734, - 3734, 3735, 3736, 3737, 3738, 3340, 3739, 3740, - 3741, 3739, 3740, 3741, 3340, 3742, 3742, 3743, - 3744, 3745, 3746, 3340, 3747, 3747, 3340, 3748, - 3748, 3340, 3749, 3749, 3340, 3750, 3750, 3751, - 3752, 3753, 3754, 3340, 3755, 3755, 3756, 3757, - 3758, 3759, 3340, 3760, 3761, 3762, 3763, 3764, - 3765, 3760, 3761, 3762, 3763, 3764, 3765, 3340, - 3766, 3766, 3340, 3767, 3767, 3340, 3768, 3768, - 3340, 3769, 3769, 3340, 3770, 3770, 3771, 3772, - 3773, 3774, 3340, 3775, 3775, 3340, 3776, 3776, - 3777, 3778, 3779, 3780, 3340, 3781, 3781, 3340, - 3782, 3782, 3783, 3784, 3785, 3786, 3340, 3787, - 3787, 3340, 3788, 3788, 3789, 3790, 3791, 3792, - 3340, 3793, 3793, 3340, 3794, 3794, 3340, 3795, - 3795, 3340, 3796, 3796, 3797, 3798, 3799, 3800, - 3340, 3801, 3801, 3340, 3802, 3802, 3340, 3803, - 3803, 3804, 3805, 3806, 3807, 3340, 3808, 3809, - 3810, 3808, 3809, 3810, 3340, 3811, 3811, 3340, - 3812, 3812, 3340, 3813, 3813, 3814, 3815, 3816, - 3817, 3340, 3818, 3818, 3340, 3819, 3819, 3820, - 3821, 3822, 3823, 3340, 3824, 3824, 3340, 3825, - 3825, 3340, 3827, 3826, 3828, 3828, 3829, 3830, - 3832, 3833, 3831, 3826, 3834, 3834, 3340, 3835, - 3835, 3340, 3836, 3836, 3837, 3838, 3839, 3840, - 3340, 3841, 3841, 3340, 3842, 3842, 3340, 3843, - 3843, 3340, 3844, 3844, 3340, 3845, 3845, 3340, - 3846, 3846, 3847, 3848, 3849, 3850, 3340, 3851, - 3851, 3340, 3852, 3852, 3340, 3853, 3853, 3340, - 3854, 3854, 3340, 3855, 3855, 3340, 3856, 3856, - 3857, 3858, 3859, 3860, 3340, 3861, 3861, 3861, - 3861, 3861, 3861, 77, 3862, 3862, 3862, 3862, - 77, 3863, 3863, 3863, 3863, 77, 3864, 2396, - 3865, 3865, 3866, 3867, 3869, 3870, 3868, 2396, - 3871, 3871, 3872, 3873, 3875, 3876, 3874, 2396, - 3877, 3877, 3878, 3879, 3881, 3882, 3880, 2396, - 3883, 3883, 3884, 3885, 3887, 3888, 3886, 3886, - 3886, 77, 3889, 3889, 3890, 3891, 3892, 3893, - 77, 3889, 3889, 3890, 3891, 3894, 3892, 3893, - 3894, 3894, 3894, 77, 3895, 3895, 77, 3897, - 3896, 77, 3899, 3898, 77, 3901, 3900, 77, - 3902, 3902, 3902, 3902, 77, 3903, 3903, 77, - 3904, 2396, 3905, 3905, 3906, 3907, 3909, 3910, - 3908, 2396, 3911, 3911, 3912, 3913, 3915, 3916, - 3914, 2396, 3917, 3917, 3918, 3919, 3921, 3922, - 3920, 2396, 3923, 3923, 3924, 3925, 3927, 3928, - 3926, 2396, 3929, 3929, 3930, 3931, 3933, 3934, - 3932, 2396, 3935, 3935, 3936, 3937, 3938, 3940, - 3941, 3939, 3939, 3939, 3067, 3942, 3942, 3943, - 3944, 3945, 3946, 3067, 3948, 3948, 3949, 3950, - 3952, 3953, 3951, 3951, 3951, 3947, 3954, 3954, - 3954, 3947, 3956, 3955, 3955, 3955, 3947, 3957, - 3957, 3957, 3947, 3959, 3958, 3958, 3958, 3947, - 3961, 3960, 3960, 3960, 3947, 3962, 3962, 3962, - 3947, 3964, 3963, 3963, 3963, 3947, 3965, 3965, - 3965, 3965, 3966, 3966, 3966, 3947, 3967, 3967, - 3967, 3967, 77, 3968, 3947, 3964, 3947, 3961, - 3947, 3969, 3947, 3959, 3947, 3971, 3970, 77, - 3972, 3972, 3972, 3067, 3942, 3942, 3943, 3944, - 3945, 3946, 3973, 3973, 3973, 3067, 3975, 3974, - 77, 3977, 3976, 77, 3979, 3978, 77, 3980, - 2396, 3981, 3981, 3982, 3983, 3985, 3986, 3984, - 2396, 3987, 3987, 3988, 3989, 3991, 3992, 3990, - 2396, 3993, 3993, 3994, 3995, 3997, 3998, 3996, - 2396, 3999, 3999, 4000, 4001, 4003, 4004, 4002, - 2396, 4005, 4005, 4006, 4007, 4009, 4010, 4008, - 2396, 4011, 4011, 4012, 4013, 4014, 4016, 4017, - 4015, 4015, 4015, 3067, 4018, 4018, 4018, 4018, - 3067, 4019, 4019, 4019, 3067, 4018, 4018, 4018, - 4018, 4020, 4020, 4020, 3067, 4022, 4021, 77, - 4024, 4023, 77, 4026, 4025, 77, 4027, 2396, - 4028, 4028, 4029, 4030, 4032, 4033, 4031, 2396, - 4034, 4034, 4035, 4036, 4038, 4039, 4037, 2396, - 4040, 4040, 4041, 4042, 4044, 4045, 4043, 2396, - 4046, 4046, 4047, 4048, 4050, 4051, 4049, 2396, - 4052, 4052, 4053, 4054, 4056, 4057, 4055, 2396, - 4058, 4058, 4059, 4060, 4062, 4063, 4061, 4061, - 4061, 3067, 4064, 4064, 4064, 3067, 4065, 4065, - 4066, 4067, 4068, 4069, 4070, 4070, 4071, 4072, - 4061, 4061, 4061, 3067, 4074, 4073, 3067, 4076, - 4075, 77, 4078, 4077, 77, 4080, 4079, 77, - 4081, 2396, 4082, 4082, 4083, 4084, 4086, 4087, - 4085, 2396, 4088, 4088, 4089, 4090, 4092, 4093, - 4091, 2396, 4094, 4094, 4094, 4094, 4095, 2396, - 4096, 4096, 4096, 4096, 77, 4098, 4097, 77, - 4099, 2396, 4100, 4100, 4101, 4102, 4104, 4105, - 4103, 2396, 4106, 4106, 4107, 4108, 4110, 4111, - 4109, 2396, 4112, 4112, 4113, 4114, 4116, 4117, - 4115, 2396, 4118, 4118, 4119, 4120, 4122, 4123, - 4121, 2396, 4124, 4124, 4125, 4126, 4128, 4129, - 4127, 2396, 4130, 4130, 4131, 4132, 4134, 4135, - 4133, 4133, 4133, 3067, 4136, 4136, 4136, 3067, - 4137, 4137, 4138, 4139, 4140, 4141, 4142, 4142, - 4143, 4144, 4133, 4133, 4133, 3067, 4146, 4145, - 3067, 4148, 4147, 77, 4150, 4149, 77, 4152, - 4151, 77, 4153, 2396, 4154, 4154, 4155, 4156, - 4158, 4159, 4157, 2396, 4160, 4160, 4161, 4162, - 4163, 4164, 4165, 4163, 2373, 4166, 4167, 4166, - 4166, 4166, 4167, 2373, 4169, 4168, 77, 4170, - 2396, 4171, 4171, 4172, 4173, 4175, 4176, 4174, - 2396, 4177, 4177, 4178, 4179, 4181, 4182, 4180, - 4180, 4180, 3067, 4183, 4183, 4183, 3067, 4184, - 4184, 4184, 3067, 4185, 4185, 4185, 3067, 4187, - 4186, 4188, 4188, 4188, 3067, 4189, 4189, 4189, - 3067, 4190, 4190, 4190, 3067, 4191, 4191, 4191, - 3067, 4193, 4187, 4193, 4193, 4193, 4192, 4195, - 4194, 77, 4196, 4196, 4196, 3067, 4197, 4197, - 4197, 3067, 4199, 4198, 4200, 4200, 4200, 3067, - 4201, 4201, 4201, 3067, 4202, 4199, 4202, 4202, - 4202, 4198, 4203, 4203, 4203, 3067, 4204, 4204, - 4204, 3067, 4205, 4198, 4206, 4206, 4206, 3067, - 4207, 4207, 4207, 3067, 4208, 4205, 4208, 4208, - 4208, 4198, 4209, 2396, 4210, 4210, 4211, 4212, - 4214, 4215, 4213, 2396, 4216, 4216, 4217, 4218, - 4220, 4221, 4219, 2396, 4222, 4222, 4223, 4224, - 4226, 4227, 4225, 2396, 4229, 4229, 4230, 4231, - 4232, 4233, 4228, 4228, 4228, 77, 4234, 4234, - 4234, 4234, 77, 4236, 4235, 77, 4238, 4237, - 77, 4239, 2396, 4240, 4240, 4241, 4242, 4244, - 4245, 4243, 2396, 4247, 4247, 4248, 4249, 4250, - 4251, 4246, 4246, 4246, 77, 4252, 4252, 4253, - 4254, 4255, 4256, 77, 4258, 4258, 4259, 4260, - 4261, 4262, 4257, 4257, 4257, 77, 4263, 4263, - 4263, 4263, 77, 4265, 4264, 77, 4267, 4266, - 77, 4268, 2396, 4269, 4269, 4270, 4271, 4273, - 4274, 4272, 2396, 4275, 4275, 4276, 4277, 4278, - 4278, 4278, 4279, 4280, 4278, 4278, 4278, 77, - 4281, 4281, 4281, 4281, 77, 4282, 4282, 4282, - 4282, 77, 4284, 4283, 77, 4286, 4286, 4287, - 4288, 4289, 4290, 4290, 4290, 4291, 4292, 4293, - 4294, 4290, 4290, 4290, 4285, 4295, 4295, 4296, - 4297, 4298, 4299, 75, 4300, 4299, 4291, 4292, - 4301, 4302, 4303, 4304, 4305, 4306, 75, 75, - 4299, 75, 4299, 75, 4299, 75, 889, 4308, - 4308, 4287, 4309, 4310, 4290, 4311, 4312, 4313, - 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, - 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4290, - 4290, 4311, 4312, 4313, 4314, 4315, 4316, 4317, - 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, - 4326, 4327, 4328, 4291, 4292, 4329, 4330, 4290, - 4290, 4290, 4307, 4308, 4308, 4287, 4309, 4310, - 4290, 4333, 4334, 4335, 4336, 4337, 4338, 4339, - 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, - 4348, 4349, 4350, 4290, 4290, 4333, 4334, 4335, - 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, - 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4291, - 4292, 4329, 4330, 4290, 4332, 4290, 4290, 4331, - 4352, 4352, 4353, 4354, 4355, 4356, 4356, 4356, - 4357, 4358, 4359, 4360, 4356, 4356, 4356, 4351, - 4286, 4286, 4287, 4361, 4362, 4290, 4333, 4334, - 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, - 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, - 4290, 4290, 4333, 4334, 4335, 4336, 4337, 4338, - 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, - 4347, 4348, 4349, 4350, 4291, 4292, 4363, 4364, - 4290, 4332, 4290, 4290, 4331, 4365, 4365, 4287, - 4366, 4367, 4290, 4290, 4290, 89, 90, 4368, - 4369, 4290, 4290, 4290, 889, 4370, 4370, 4296, - 4371, 4372, 4299, 75, 4300, 4299, 89, 90, - 4368, 4373, 107, 108, 4368, 4374, 75, 75, - 4299, 75, 4299, 75, 4299, 75, 889, 4295, - 4295, 4296, 4297, 4298, 4299, 75, 4377, 4378, - 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, - 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, - 4300, 4299, 4377, 4378, 4379, 4380, 4381, 4382, - 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, - 4391, 4392, 4393, 4394, 4291, 4292, 4301, 4302, - 4303, 4304, 4305, 4306, 75, 75, 4299, 4376, - 75, 4299, 75, 4299, 75, 4375, 4370, 4370, - 4296, 4371, 4372, 4299, 75, 4377, 4378, 4379, - 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, - 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4300, - 4299, 4377, 4378, 4379, 4380, 4381, 4382, 4383, - 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, - 4392, 4393, 4394, 89, 90, 4395, 4373, 107, - 108, 4395, 4374, 75, 75, 4299, 4376, 75, - 4299, 75, 4299, 75, 4375, 796, 796, 796, - 796, 1054, 1055, 1054, 1057, 1054, 1055, 1056, - 1055, 1050, 796, 796, 796, 1212, 1212, 1213, - 1214, 1181, 1182, 1183, 1181, 1215, 1216, 1181, - 1181, 1181, 1187, 796, 1227, 1227, 1228, 1229, - 1222, 1230, 1231, 1232, 1232, 1233, 1234, 1222, - 1222, 1222, 1221, 1236, 1235, 1221, 796, 1246, - 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, - 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, - 1262, 1263, 1264, 1265, 1266, 1249, 1250, 1251, - 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, - 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, - 1268, 1269, 1269, 1270, 1271, 1237, 1294, 1293, - 1237, 796, 1846, 1846, 1847, 1848, 1849, 1850, - 1851, 1851, 1852, 1853, 1842, 1842, 1842, 1838, - 1855, 1854, 1838, 1874, 1874, 1875, 1876, 1878, - 1879, 1877, 1877, 1877, 1838, 1824, 1881, 1881, - 1882, 1883, 1884, 1885, 1886, 1886, 1887, 1888, - 1877, 1877, 1877, 1838, 1890, 1889, 1838, 1892, - 1891, 1824, 796, 796, 1976, 1976, 1977, 1978, - 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, - 1987, 1988, 1989, 1990, 1990, 1991, 1992, 1967, - 2008, 2007, 1967, 796, 796, 796, 796, 796, - 796, 796, 796, 796, 2591, 2591, 2592, 2593, - 2594, 2595, 2596, 2596, 2597, 2598, 2590, 2590, - 2590, 2581, 2600, 2599, 2581, 796, 796, 2764, - 2764, 2765, 2766, 2767, 2768, 2713, 2713, 2769, - 2770, 2604, 2772, 2771, 2604, 2746, 2746, 2747, - 2748, 2750, 2751, 2713, 2713, 2752, 2753, 2749, - 2604, 2784, 2783, 2604, 2727, 2727, 2728, 2729, - 2731, 2732, 2713, 2713, 2733, 2734, 2730, 2604, - 2797, 2796, 2604, 2707, 2707, 2708, 2709, 2711, - 2712, 2713, 2713, 2714, 2715, 2710, 2604, 2810, - 2809, 2604, 796, 796, 796, 796, 3008, 3008, - 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, - 3016, 3017, 3018, 3007, 3037, 3036, 77, 796, - 3075, 3075, 3076, 3077, 3078, 3079, 3080, 3080, - 3081, 3082, 3071, 3071, 3071, 3067, 3084, 3083, - 3067, 796, 3117, 3117, 3118, 3119, 3120, 3121, - 3122, 3122, 3123, 3124, 3113, 3113, 3113, 3067, - 3126, 3125, 3067, 796, 3171, 3171, 3172, 3173, - 3177, 3177, 3177, 3177, 3182, 3183, 3177, 3177, - 3184, 3185, 3190, 3195, 3194, 3190, 3168, 3168, - 3169, 3170, 3191, 3178, 3179, 3191, 3191, 3191, - 3190, 3193, 3192, 3190, 3191, 3168, 3168, 3169, - 3170, 3171, 3171, 3172, 3173, 3174, 3174, 3175, - 3176, 3177, 3177, 3177, 3177, 3178, 3179, 3177, - 3177, 3180, 3181, 3182, 3183, 3177, 3177, 3184, - 3185, 3186, 3187, 3177, 3177, 3188, 3189, 3191, - 3191, 3191, 3190, 3193, 3195, 3197, 3192, 3194, - 3196, 3190, 796, 796, 796, 796, 796, 796, - 796, 4065, 4065, 4066, 4067, 4068, 4069, 4070, - 4070, 4071, 4072, 4061, 4061, 4061, 3067, 4074, - 4073, 3067, 796, 796, 4137, 4137, 4138, 4139, - 4140, 4141, 4142, 4142, 4143, 4144, 4133, 4133, - 4133, 3067, 4146, 4145, 3067, 796, 796, 796, - 796, 796, 796, 796, 0 + 1248, 1660, 1661, 1662, 1660, 1661, 1662, 1248, + 1663, 1663, 1664, 1665, 1666, 1667, 1668, 1668, + 1669, 1670, 1248, 1671, 1671, 1248, 1672, 1672, + 1248, 1673, 1673, 1248, 1674, 1674, 1675, 1676, + 1677, 1678, 1679, 1679, 1680, 1681, 1248, 1682, + 1682, 1683, 1684, 1685, 1686, 1687, 1687, 1688, + 1689, 1248, 1690, 1691, 1692, 1693, 1694, 1695, + 1690, 1691, 1692, 1693, 1694, 1695, 1248, 1696, + 1696, 1248, 1697, 1697, 1248, 1698, 1698, 1248, + 1699, 1699, 1248, 1700, 1700, 1701, 1702, 1703, + 1704, 1705, 1705, 1706, 1707, 1248, 1708, 1708, + 1248, 1709, 1709, 1710, 1711, 1712, 1713, 1714, + 1714, 1715, 1716, 1248, 1717, 1717, 1248, 1718, + 1718, 1719, 1720, 1721, 1722, 1723, 1723, 1724, + 1725, 1248, 1726, 1726, 1248, 1727, 1727, 1728, + 1729, 1730, 1731, 1732, 1732, 1733, 1734, 1248, + 1735, 1735, 1248, 1736, 1736, 1248, 1737, 1737, + 1248, 1738, 1738, 1739, 1740, 1741, 1742, 1743, + 1743, 1744, 1745, 1248, 1746, 1746, 1248, 1747, + 1747, 1248, 1748, 1748, 1749, 1750, 1751, 1752, + 1753, 1753, 1754, 1755, 1248, 1756, 1757, 1758, + 1756, 1757, 1758, 1248, 1759, 1759, 1248, 1760, + 1760, 1248, 1761, 1761, 1762, 1763, 1764, 1765, + 1766, 1766, 1767, 1768, 1248, 1769, 1769, 1248, + 1770, 1770, 1771, 1772, 1773, 1774, 1775, 1775, + 1776, 1777, 1248, 1778, 1778, 1248, 1779, 1779, + 1248, 1780, 1248, 1781, 1781, 1782, 1783, 1785, + 1786, 1787, 1787, 1788, 1789, 1784, 1248, 1790, + 1790, 1248, 1791, 1791, 1248, 1792, 1792, 1793, + 1794, 1795, 1796, 1797, 1797, 1798, 1799, 1248, + 1800, 1800, 1248, 1801, 1801, 1248, 1802, 1802, + 1248, 1803, 1803, 1248, 1804, 1804, 1248, 1805, + 1805, 1806, 1807, 1808, 1809, 1810, 1810, 1811, + 1812, 1248, 1813, 1813, 1248, 1814, 1814, 1248, + 1815, 1815, 1248, 1816, 1816, 1248, 1817, 1817, + 1248, 1818, 1818, 1819, 1820, 1821, 1822, 1823, + 1823, 1824, 1825, 1248, 1826, 1826, 1248, 1827, + 1827, 1248, 1828, 1828, 1248, 1829, 1829, 1830, + 1831, 1832, 1833, 1834, 1834, 1835, 1836, 1248, + 1837, 1837, 1248, 1838, 1838, 1839, 1840, 1841, + 1842, 1843, 1843, 1844, 1845, 1248, 1847, 1847, + 1848, 1849, 1850, 1851, 1846, 1847, 1847, 1848, + 1849, 1850, 1851, 1853, 1852, 1854, 1854, 1855, + 1856, 1858, 1859, 1857, 1852, 1861, 1861, 1862, + 1863, 1865, 1866, 1864, 1864, 1864, 1860, 1867, + 1867, 1867, 1860, 1868, 1868, 1869, 1870, 1871, + 1872, 1873, 1873, 1874, 1875, 1864, 1864, 1864, + 1860, 1877, 1876, 1860, 1879, 1878, 1846, 1881, + 1880, 1846, 1882, 1882, 1883, 1884, 1885, 1886, + 1846, 1882, 1882, 1883, 1884, 1887, 1885, 1886, + 1888, 1852, 1889, 1889, 1890, 1891, 1893, 1893, + 1894, 1895, 1892, 1852, 1896, 1896, 1897, 1898, + 1900, 1901, 1899, 1899, 1899, 1860, 1902, 1902, + 1902, 1860, 1903, 1903, 1904, 1905, 1906, 1907, + 1908, 1908, 1909, 1910, 1899, 1899, 1899, 1860, + 1912, 1911, 1860, 1914, 1913, 1846, 1915, 1915, + 1916, 1917, 1918, 1919, 1892, 1852, 1921, 1920, + 1846, 1923, 1924, 1925, 1926, 1927, 1928, 1929, + 1930, 1922, 1931, 1922, 1932, 1922, 1933, 1922, + 1934, 1934, 1934, 1934, 1934, 1934, 1922, 1935, + 1922, 1936, 1922, 1937, 1922, 1938, 1922, 1939, + 1922, 1940, 1922, 1941, 1941, 1941, 1941, 1941, + 1941, 1922, 1942, 1922, 1943, 1922, 1944, 1944, + 1944, 1944, 1944, 1944, 1922, 1945, 1922, 1946, + 1922, 1947, 1948, 1922, 1949, 1922, 1950, 1922, + 1951, 1922, 1952, 1922, 1953, 1953, 1953, 1953, + 1953, 1953, 1922, 1954, 1922, 1955, 1922, 1956, + 1922, 1957, 1922, 1958, 1958, 1958, 1958, 1958, + 1958, 1922, 1959, 1922, 1960, 1922, 1962, 1961, + 1963, 1963, 1963, 1963, 1963, 1963, 1964, 1961, + 1965, 1922, 1966, 1922, 1967, 1922, 1968, 1922, + 1969, 1922, 1970, 1922, 1971, 1922, 1972, 1922, + 1973, 1922, 1974, 1922, 1975, 1922, 1976, 1922, + 1977, 1922, 1978, 1922, 1979, 1979, 1979, 1979, + 1979, 1979, 1922, 1980, 1922, 1981, 1922, 1982, + 1922, 1983, 1922, 1984, 1984, 1984, 1984, 1984, + 1984, 1922, 1985, 1922, 1986, 1922, 1987, 1922, + 1988, 1988, 1988, 1988, 1988, 1988, 1922, 1990, + 1990, 1991, 1992, 1993, 1994, 1995, 1995, 1996, + 1997, 1989, 1998, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, + 2011, 2012, 2012, 2013, 2014, 1989, 2015, 1989, + 2016, 1989, 2017, 1989, 2018, 1989, 1989, 2020, + 1989, 1989, 1989, 2019, 2021, 2021, 2022, 2023, + 2024, 2025, 2026, 2026, 2027, 2028, 1989, 2030, + 2029, 1989, 2031, 1989, 2032, 1989, 2033, 1989, + 2034, 1989, 2035, 1989, 2036, 1989, 2037, 1989, + 1989, 2039, 1989, 1989, 1989, 2038, 2040, 2040, + 2041, 2042, 2043, 2044, 2045, 2045, 2046, 2047, + 1989, 2040, 2040, 2041, 2042, 2043, 2044, 2045, + 2045, 2046, 2047, 2048, 2048, 2048, 1989, 2049, + 1989, 2050, 2050, 2051, 2052, 2053, 2054, 2055, + 2055, 2056, 2057, 1989, 2058, 1989, 2059, 1989, + 2060, 1989, 2061, 2062, 2062, 2062, 2062, 1989, + 2063, 2063, 2063, 2063, 1989, 2064, 2064, 2064, + 2064, 1989, 2065, 2066, 2065, 2065, 2065, 1989, + 2067, 2068, 2067, 2067, 2067, 1989, 2049, 2069, + 2069, 2069, 2069, 1989, 2068, 1989, 2070, 2070, + 2070, 2070, 1989, 2071, 2072, 2071, 2071, 2071, + 1989, 2073, 2074, 2073, 2073, 2073, 1989, 2040, + 2040, 2041, 2042, 2075, 2043, 2044, 2045, 2045, + 2046, 2047, 2075, 2075, 2075, 1989, 2074, 1989, + 2076, 1989, 2077, 1989, 2078, 2079, 1989, 2080, + 1989, 2081, 1989, 2082, 1989, 2083, 1989, 2084, + 1989, 2086, 2087, 2087, 2085, 2088, 2088, 2085, + 2089, 2090, 2091, 2091, 2085, 2092, 2092, 2085, + 2093, 2093, 2094, 2095, 2096, 2097, 2098, 2099, + 2100, 2100, 2101, 2102, 2097, 2085, 2103, 2103, + 2085, 2104, 1989, 2105, 1989, 2106, 1989, 2107, + 1989, 2108, 1989, 2109, 2110, 2110, 2110, 2110, + 2085, 2111, 2111, 2111, 2111, 2085, 2112, 2113, + 2114, 2114, 2114, 2114, 2085, 2115, 2115, 2115, + 2115, 2085, 2116, 2116, 2117, 2118, 2119, 2120, + 2121, 2122, 2123, 2123, 2124, 2125, 2120, 2120, + 2120, 2085, 2126, 2126, 2126, 2126, 2085, 2127, + 1989, 2128, 1989, 2130, 2129, 2131, 2131, 2132, + 2133, 2135, 2136, 2137, 2138, 2138, 2139, 2140, + 2134, 2129, 1989, 1989, 1989, 1989, 2038, 2141, + 1989, 2142, 1989, 2143, 1989, 2144, 1989, 2145, + 1989, 2146, 1989, 2147, 1989, 2148, 1989, 2149, + 1989, 2150, 2151, 2151, 1989, 2152, 2152, 1989, + 2153, 2154, 1989, 2155, 2155, 1989, 2156, 2156, + 2157, 2158, 2159, 2160, 2161, 2162, 2162, 2163, + 2164, 1989, 2165, 2165, 1989, 2166, 1989, 2167, + 1989, 2168, 1989, 2169, 1989, 2170, 1989, 2171, + 1989, 2172, 1989, 2173, 1989, 2174, 1989, 2175, + 1989, 2176, 1989, 2177, 1989, 2178, 1989, 2179, + 1989, 2180, 2180, 2181, 2182, 2183, 2184, 2185, + 2185, 2186, 2187, 1989, 2188, 1989, 2189, 1989, + 2190, 1989, 2191, 1989, 2192, 2192, 2193, 2194, + 2195, 2196, 2197, 2197, 2198, 2199, 1989, 2200, + 1989, 2201, 1989, 2202, 1989, 2203, 1989, 2204, + 2205, 2129, 2206, 2129, 2207, 2208, 2129, 2209, + 2209, 2210, 2211, 2213, 2214, 2215, 2215, 2216, + 2217, 2212, 2129, 2021, 2021, 2022, 2023, 2024, + 2025, 2026, 2026, 2027, 2028, 2218, 2218, 2218, + 1989, 2219, 1989, 2222, 2223, 2224, 2225, 2226, + 2222, 2223, 2224, 2225, 2226, 2221, 2220, 2227, + 2227, 2227, 2227, 2228, 2220, 2229, 2230, 2229, + 2230, 2220, 2231, 2231, 2231, 2231, 2220, 2232, + 2232, 2220, 2233, 2234, 2233, 2233, 2233, 2220, + 2235, 2235, 2220, 2236, 2236, 2220, 2237, 2237, + 2220, 2238, 2238, 2220, 2239, 2220, 2240, 2220, + 2241, 2241, 2220, 2242, 2242, 2220, 2243, 2243, + 2220, 2244, 2220, 2245, 2245, 2245, 2245, 2220, + 2246, 2247, 2246, 2247, 2220, 2248, 2249, 2248, + 2249, 2220, 2250, 2220, 2251, 2251, 2220, 2252, + 2252, 2220, 2253, 2253, 2220, 2254, 2254, 2220, + 2255, 2255, 2255, 2255, 2220, 2256, 2256, 2220, + 2257, 2257, 2220, 2258, 2258, 2220, 2259, 2260, + 2220, 2261, 2220, 2262, 2220, 2263, 2263, 2220, + 2264, 2264, 2220, 2265, 2265, 2220, 2266, 2220, + 2267, 2220, 2268, 2220, 2269, 2269, 2269, 2269, + 2220, 2270, 2220, 2271, 2220, 2272, 2272, 2220, + 2273, 2273, 2220, 2274, 2274, 2220, 2275, 2220, + 2276, 2220, 2277, 2220, 2278, 2278, 2278, 2278, + 2220, 2279, 2280, 2220, 2281, 2220, 2282, 2220, + 2283, 2220, 2284, 2220, 2285, 2285, 2285, 2285, + 2220, 2286, 2220, 2287, 2220, 2288, 2288, 2288, + 2288, 2220, 2289, 2289, 2220, 2290, 2290, 2220, + 2291, 2291, 2220, 2292, 2292, 2220, 2293, 2293, + 2220, 2294, 2294, 2220, 2295, 2295, 2220, 2296, + 2296, 2296, 2296, 2220, 2297, 2297, 2220, 2298, + 2298, 2220, 2299, 2299, 2220, 2300, 2300, 2220, + 2301, 2301, 2220, 2302, 2302, 2220, 2303, 2304, + 2303, 2304, 2220, 2305, 2305, 2220, 2306, 2306, + 2220, 2307, 2307, 2307, 2307, 2220, 2308, 2308, + 2220, 2309, 2309, 2220, 2310, 2310, 2310, 2310, + 2220, 2311, 2311, 2220, 2312, 2312, 2220, 2313, + 2314, 2313, 2314, 2220, 2315, 2315, 2220, 2316, + 2220, 2317, 2317, 2317, 2317, 2220, 2318, 2318, + 2220, 2319, 2319, 2220, 2320, 2321, 2322, 2220, + 2323, 2324, 2323, 2323, 2323, 2220, 2325, 2325, + 2220, 2326, 2326, 2220, 2327, 2327, 2220, 2328, + 2328, 2220, 2329, 2220, 2330, 2220, 2331, 2331, + 2220, 2332, 2332, 2220, 2333, 2333, 2220, 2334, + 2220, 2335, 2335, 2335, 2335, 2220, 2336, 2220, + 2337, 2220, 2338, 2338, 2338, 2338, 2220, 2339, + 2220, 2340, 2220, 2341, 2341, 2341, 2341, 2220, + 2344, 2345, 2346, 2347, 2348, 2349, 2344, 2345, + 2346, 2347, 2348, 2349, 2343, 2342, 2350, 2350, + 2350, 2350, 2351, 2342, 2352, 2352, 2342, 2353, + 2353, 2342, 2354, 2354, 2342, 2355, 2355, 2342, + 2356, 2356, 2342, 2357, 2357, 2357, 2357, 2342, + 2358, 2359, 2360, 2358, 2359, 2360, 2342, 2361, + 2361, 2342, 2362, 2362, 2342, 2363, 2363, 2342, + 2364, 2364, 2342, 2365, 2365, 2342, 2366, 2366, + 2366, 2366, 2342, 2367, 2368, 2367, 2368, 2342, + 2369, 2369, 2342, 2370, 2370, 2370, 2370, 2342, + 2371, 2371, 2342, 2372, 2372, 2342, 2373, 2373, + 2373, 2373, 2342, 2374, 2374, 2342, 2375, 2375, + 2342, 2376, 2376, 2342, 2377, 2377, 2377, 2377, + 2342, 2378, 2378, 2342, 2379, 2379, 2342, 2380, + 2380, 2380, 2380, 2342, 2381, 2382, 2381, 2382, + 2342, 2383, 2383, 2342, 2384, 2384, 2384, 2384, + 2342, 2385, 2385, 2342, 2386, 2386, 2342, 2387, + 2387, 2387, 2387, 2342, 2388, 2388, 2342, 2389, + 2389, 2342, 2390, 2390, 2342, 2391, 2391, 2391, + 2391, 2342, 2392, 2392, 2342, 2393, 2393, 2342, + 2394, 2394, 2394, 2394, 2342, 2397, 2397, 2396, + 2395, 2398, 2398, 2398, 2398, 2399, 2395, 2400, + 2400, 2395, 2401, 2401, 2395, 2402, 2402, 2395, + 2403, 2403, 2395, 2404, 2404, 2395, 2405, 2405, + 2405, 2405, 2395, 2407, 2407, 2406, 2408, 2409, + 2408, 2408, 2408, 2409, 2406, 2410, 2410, 2410, + 2410, 2410, 2410, 77, 2411, 2411, 2411, 2411, + 77, 2412, 2412, 2412, 2412, 2412, 2412, 77, + 2413, 2413, 2414, 2415, 2416, 2417, 77, 2418, + 2418, 2419, 2420, 2421, 2421, 2421, 2422, 2423, + 2421, 2421, 2421, 77, 2424, 2424, 2425, 2426, + 2427, 2428, 77, 2430, 2430, 2431, 2432, 2434, + 2435, 2433, 2429, 2436, 2436, 2437, 2438, 2440, + 2441, 2439, 2429, 2442, 2442, 2443, 2444, 2446, + 2447, 2445, 2429, 2449, 2449, 2450, 2451, 2453, + 2454, 2455, 2456, 2457, 2453, 2454, 2455, 2456, + 2457, 2458, 2459, 2452, 2448, 2460, 2460, 2461, + 2462, 2464, 2465, 2463, 2429, 2466, 2466, 2467, + 2468, 2470, 2471, 2472, 2473, 2474, 2470, 2471, + 2472, 2473, 2474, 2475, 2476, 2469, 2448, 2477, + 2477, 2478, 2479, 2481, 2482, 2480, 2429, 2483, + 2483, 2484, 2485, 2487, 2488, 2489, 2490, 2491, + 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2486, + 2448, 2494, 2494, 2495, 2496, 2498, 2499, 2497, + 2429, 2500, 2500, 2502, 2503, 2504, 2505, 2506, + 2502, 2503, 2504, 2505, 2506, 2500, 2500, 2501, + 2448, 2500, 2500, 2500, 2500, 2507, 2448, 2509, + 2510, 2511, 2512, 2513, 2509, 2510, 2511, 2512, + 2513, 2508, 2448, 2514, 2514, 2514, 2514, 2515, + 2448, 2517, 2516, 77, 2483, 2483, 2484, 2485, + 2492, 2493, 2518, 2448, 2520, 2521, 2522, 2523, + 2524, 2520, 2521, 2522, 2523, 2524, 2519, 2448, + 2525, 2525, 2526, 2527, 2529, 2530, 2528, 2448, + 2532, 2531, 77, 2466, 2466, 2467, 2468, 2475, + 2476, 2533, 2448, 2535, 2536, 2537, 2538, 2539, + 2535, 2536, 2537, 2538, 2539, 2534, 2448, 2540, + 2540, 2541, 2542, 2544, 2545, 2543, 2448, 2547, + 2546, 77, 2449, 2449, 2450, 2451, 2458, 2459, + 2548, 2448, 2550, 2551, 2552, 2553, 2554, 2550, + 2551, 2552, 2553, 2554, 2549, 2448, 2555, 2555, + 2556, 2557, 2559, 2560, 2558, 2448, 2562, 2561, + 77, 2564, 2563, 77, 2566, 2565, 77, 77, + 77, 77, 77, 2567, 2568, 2568, 2569, 2570, + 2571, 2572, 77, 2574, 2574, 2575, 2576, 2577, + 2578, 2573, 2573, 2573, 77, 2579, 2579, 2579, + 2579, 77, 2581, 2580, 77, 2582, 2582, 2582, + 2582, 2582, 2582, 77, 2583, 2583, 2584, 2585, + 2586, 2587, 77, 2588, 2588, 2589, 2590, 2591, + 2591, 2591, 2592, 2593, 2591, 2591, 2591, 77, + 2594, 2594, 2594, 2594, 77, 2596, 2595, 77, + 2597, 2429, 2598, 2598, 2599, 2600, 2602, 2603, + 2601, 2429, 2604, 2604, 2605, 2606, 2607, 2607, + 2607, 2608, 2609, 2607, 2607, 2607, 77, 2610, + 2610, 2610, 2610, 77, 2612, 2611, 77, 2614, + 2614, 2614, 2614, 2613, 2615, 2615, 2616, 2617, + 2618, 2619, 2620, 2620, 2621, 2622, 2614, 2624, + 2624, 2625, 2626, 2627, 2628, 2629, 2629, 2630, + 2631, 2623, 2623, 2623, 2614, 2633, 2632, 2614, + 2634, 2634, 2634, 2634, 2406, 2635, 2636, 2635, + 2635, 2635, 2636, 2636, 2636, 2406, 2638, 2637, + 2639, 2639, 2640, 2641, 2643, 2644, 2642, 2637, + 2645, 2645, 2646, 2647, 2649, 2650, 2651, 2652, + 2648, 2637, 2653, 2653, 2654, 2655, 2657, 2658, + 2656, 2637, 2659, 2659, 2660, 2661, 2649, 2650, + 2663, 2664, 2662, 2637, 2665, 2665, 2666, 2667, + 2668, 2670, 2671, 2669, 2637, 2672, 2672, 2673, + 2674, 2649, 2650, 2675, 2676, 2637, 2677, 2677, + 2678, 2679, 2680, 2681, 2637, 2677, 2677, 2678, + 2679, 2680, 2681, 2682, 2637, 2683, 2683, 2684, + 2685, 2687, 2688, 2686, 2637, 2689, 2689, 2690, + 2691, 2693, 2694, 2695, 2696, 2692, 2637, 2697, + 2697, 2698, 2699, 2701, 2702, 2700, 2637, 2703, + 2703, 2704, 2705, 2693, 2694, 2707, 2708, 2706, + 2637, 2709, 2709, 2710, 2711, 2712, 2714, 2715, + 2713, 2637, 2716, 2716, 2717, 2718, 2693, 2694, + 2719, 2720, 2637, 2721, 2721, 2722, 2723, 2724, + 2725, 2637, 2721, 2721, 2722, 2723, 2726, 2724, + 2725, 2727, 2637, 2728, 2637, 2729, 2729, 2730, + 2731, 2732, 2734, 2735, 2736, 2737, 2737, 2738, + 2739, 2733, 2637, 2740, 2740, 2741, 2742, 2744, + 2745, 2746, 2746, 2747, 2748, 2743, 2637, 2749, + 2749, 2750, 2751, 2752, 2754, 2755, 2756, 2757, + 2757, 2758, 2759, 2753, 2637, 2760, 2760, 2761, + 2762, 2764, 2765, 2746, 2746, 2766, 2767, 2763, + 2637, 2768, 2768, 2769, 2770, 2771, 2773, 2774, + 2775, 2776, 2776, 2777, 2778, 2772, 2637, 2779, + 2779, 2780, 2781, 2783, 2784, 2746, 2746, 2785, + 2786, 2782, 2637, 2787, 2787, 2788, 2789, 2790, + 2787, 2792, 2793, 2794, 2794, 2795, 2796, 2791, + 2637, 2797, 2797, 2798, 2799, 2800, 2801, 2746, + 2746, 2802, 2803, 2637, 2805, 2804, 2637, 2806, + 2806, 2807, 2808, 2806, 2810, 2811, 2812, 2812, + 2813, 2814, 2809, 2637, 2787, 2787, 2788, 2789, + 2787, 2792, 2793, 2794, 2794, 2795, 2796, 2815, + 2637, 2817, 2816, 2637, 2818, 2818, 2819, 2820, + 2822, 2823, 2824, 2825, 2825, 2826, 2827, 2821, + 2637, 2768, 2768, 2769, 2770, 2773, 2774, 2775, + 2776, 2776, 2777, 2778, 2828, 2637, 2779, 2779, + 2780, 2781, 2783, 2784, 2746, 2746, 2785, 2786, + 2637, 2830, 2829, 2637, 2831, 2831, 2832, 2833, + 2835, 2836, 2837, 2838, 2838, 2839, 2840, 2834, + 2637, 2749, 2749, 2750, 2751, 2754, 2755, 2756, + 2757, 2757, 2758, 2759, 2841, 2637, 2760, 2760, + 2761, 2762, 2764, 2765, 2746, 2746, 2766, 2767, + 2637, 2843, 2842, 2637, 2844, 2844, 2845, 2846, + 2848, 2849, 2850, 2851, 2851, 2852, 2853, 2847, + 2637, 2729, 2729, 2730, 2731, 2734, 2735, 2736, + 2737, 2737, 2738, 2739, 2854, 2637, 2740, 2740, + 2741, 2742, 2744, 2745, 2746, 2746, 2747, 2748, + 2637, 2856, 2855, 2637, 2857, 2857, 2858, 2859, + 2860, 2861, 2637, 2863, 2862, 2637, 2864, 2864, + 2865, 2866, 2868, 2869, 2867, 2637, 2709, 2709, + 2710, 2711, 2714, 2715, 2870, 2637, 2872, 2871, + 2637, 2874, 2873, 2637, 2876, 2875, 2637, 2877, + 2877, 2878, 2879, 2880, 2881, 2637, 2883, 2882, + 2637, 2884, 2884, 2885, 2886, 2888, 2889, 2887, + 2637, 2665, 2665, 2666, 2667, 2670, 2671, 2890, + 2637, 2892, 2891, 2637, 2894, 2893, 2637, 2895, + 2429, 2896, 2896, 2897, 2898, 2900, 2901, 2899, + 2429, 2902, 2902, 2903, 2904, 2906, 2907, 2905, + 2429, 2908, 2908, 2909, 2910, 2912, 2913, 2911, + 2429, 2914, 2914, 2915, 2916, 2918, 2919, 2917, + 2429, 2920, 2920, 2921, 2922, 2924, 2925, 2923, + 2429, 2926, 2926, 2927, 2928, 2929, 2929, 2929, + 2930, 2931, 2929, 2929, 2929, 77, 2932, 2932, + 2932, 2932, 77, 2934, 2933, 77, 2936, 2935, + 77, 2938, 2937, 77, 2939, 2429, 2940, 2940, + 2941, 2942, 2944, 2945, 2943, 2429, 2946, 2946, + 2947, 2948, 2950, 2951, 2949, 2429, 2952, 2952, + 2953, 2954, 2956, 2957, 2955, 2429, 2959, 2959, + 2960, 2961, 2962, 2963, 2958, 2958, 2958, 77, + 2964, 2964, 2965, 2966, 2967, 2968, 77, 2970, + 2970, 2971, 2972, 2973, 2974, 2969, 2969, 2969, + 77, 2975, 2975, 2976, 2977, 2978, 2979, 77, + 2981, 2981, 2982, 2983, 2984, 2985, 2980, 2980, + 2980, 77, 2986, 2986, 2987, 2988, 2989, 2990, + 77, 2991, 2991, 2992, 2993, 2994, 2994, 2994, + 2995, 2996, 2994, 2994, 2994, 77, 2997, 2997, + 2997, 2997, 77, 2999, 2998, 77, 3001, 3000, + 77, 3003, 3002, 77, 3005, 3004, 77, 3007, + 3006, 77, 3008, 3008, 3008, 77, 3009, 3009, + 3010, 3011, 3012, 3013, 77, 3009, 3009, 3010, + 3011, 3012, 3013, 3014, 2429, 3015, 3015, 3016, + 3017, 3019, 3020, 3018, 2429, 3021, 3021, 3022, + 3023, 3025, 3026, 3024, 3024, 3024, 77, 3027, + 3027, 3028, 3029, 3030, 3031, 77, 3027, 3027, + 3028, 3029, 3032, 3030, 3031, 3032, 3032, 3032, + 77, 3033, 3033, 77, 3035, 3034, 77, 3037, + 3036, 77, 3039, 3038, 77, 3041, 3041, 3042, + 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3049, + 3050, 3051, 3040, 3052, 3053, 3040, 3054, 3040, + 3056, 3056, 3055, 3058, 3057, 3055, 3059, 3040, + 3060, 3060, 3061, 3062, 3064, 3065, 3066, 3066, + 3067, 3068, 3063, 3040, 3070, 3069, 77, 3071, + 3040, 3072, 3072, 3072, 3072, 3055, 3074, 3073, + 3073, 3073, 3055, 3075, 2429, 3076, 3076, 3077, + 3078, 3080, 3081, 3079, 2429, 3082, 3082, 3083, + 3084, 3086, 3087, 3085, 3085, 3085, 77, 3088, + 3088, 3089, 3090, 3091, 3092, 77, 3088, 3088, + 3089, 3090, 3091, 3092, 3093, 2429, 3094, 3094, + 3095, 3096, 3098, 3099, 3097, 2429, 3101, 3101, + 3102, 3103, 3105, 3106, 3104, 3104, 3104, 3100, + 3107, 3107, 3107, 3100, 3108, 3108, 3109, 3110, + 3111, 3112, 3113, 3113, 3114, 3115, 3104, 3104, + 3104, 3100, 3117, 3116, 3100, 3119, 3118, 77, + 3121, 3120, 77, 3123, 3122, 77, 3124, 2429, + 3125, 3125, 3126, 3127, 3129, 3130, 3128, 2429, + 3131, 3131, 3132, 3133, 3135, 3136, 3134, 2429, + 3137, 3137, 3138, 3139, 3141, 3142, 3140, 2429, + 3143, 3143, 3144, 3145, 3147, 3148, 3146, 3146, + 3146, 3100, 3149, 3149, 3149, 3100, 3150, 3150, + 3151, 3152, 3153, 3154, 3155, 3155, 3156, 3157, + 3146, 3146, 3146, 3100, 3159, 3158, 3100, 3161, + 3160, 77, 3163, 3162, 77, 3164, 2429, 3165, + 3165, 3166, 3167, 3169, 3170, 3168, 2429, 3172, + 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, + 3180, 3171, 3181, 3181, 3182, 3183, 3184, 3185, + 3171, 3181, 3181, 3182, 3183, 3184, 3185, 3187, + 3186, 3188, 3188, 3189, 3190, 3192, 3193, 3191, + 3186, 3194, 3194, 3195, 3196, 3197, 3198, 3199, + 3171, 3201, 3201, 3202, 3203, 3204, 3204, 3205, + 3206, 3207, 3207, 3208, 3209, 3210, 3210, 3210, + 3210, 3211, 3212, 3210, 3210, 3213, 3214, 3215, + 3216, 3210, 3210, 3217, 3218, 3219, 3220, 3210, + 3210, 3221, 3222, 3200, 3201, 3201, 3202, 3203, + 3224, 3211, 3212, 3224, 3224, 3224, 3223, 3210, + 3210, 3223, 3226, 3225, 3223, 3204, 3204, 3205, + 3206, 3210, 3210, 3210, 3210, 3215, 3216, 3210, + 3210, 3217, 3218, 3223, 3228, 3227, 3223, 3224, + 3201, 3201, 3202, 3203, 3204, 3204, 3205, 3206, + 3207, 3207, 3208, 3209, 3210, 3210, 3210, 3210, + 3211, 3212, 3210, 3210, 3213, 3214, 3215, 3216, + 3210, 3210, 3217, 3218, 3219, 3220, 3210, 3210, + 3221, 3222, 3224, 3224, 3224, 3223, 3226, 3228, + 3230, 3225, 3227, 3229, 3223, 3232, 3231, 3171, + 3234, 3233, 3171, 3235, 3235, 3236, 3237, 3238, + 3239, 3171, 3235, 3235, 3236, 3237, 3238, 3239, + 3240, 3186, 3241, 3241, 3242, 3243, 3245, 3246, + 3244, 3186, 3248, 3248, 3249, 3250, 3251, 3252, + 3253, 3251, 3247, 3255, 3256, 3256, 3257, 3258, + 3259, 3259, 3260, 3261, 3262, 3262, 3263, 3264, + 3265, 3265, 3265, 3265, 3266, 3267, 3265, 3265, + 3268, 3269, 3270, 3271, 3265, 3265, 3272, 3273, + 3274, 3275, 3265, 3265, 3276, 3277, 3255, 3254, + 3279, 3278, 3171, 3281, 3280, 3171, 3282, 3282, + 3283, 3284, 3285, 3286, 3171, 3282, 3282, 3283, + 3284, 3285, 3286, 3287, 3186, 3288, 3288, 3289, + 3290, 3292, 3293, 3291, 3186, 3294, 3294, 3295, + 3296, 3297, 3298, 3299, 3297, 3297, 3297, 3247, + 3300, 3301, 3301, 3302, 3303, 3304, 3304, 3305, + 3306, 3307, 3307, 3308, 3309, 3310, 3310, 3310, + 3310, 3311, 3312, 3310, 3310, 3313, 3314, 3315, + 3316, 3310, 3310, 3317, 3318, 3319, 3320, 3310, + 3310, 3321, 3322, 3300, 3300, 3300, 3254, 3324, + 3323, 3171, 3326, 3325, 3171, 3327, 3327, 3328, + 3329, 3330, 3331, 3171, 3327, 3327, 3328, 3329, + 3330, 3331, 3332, 3186, 3333, 3333, 3334, 3335, + 3337, 3338, 3336, 3186, 3339, 3339, 3340, 3341, + 3342, 3342, 3342, 3343, 3344, 3342, 3342, 3342, + 3171, 3345, 3345, 3346, 3347, 3348, 3348, 3349, + 3350, 3351, 3351, 3352, 3353, 3354, 3354, 3354, + 3354, 3355, 3356, 3354, 3354, 3357, 3358, 3359, + 3360, 3354, 3354, 3361, 3362, 3363, 3364, 3354, + 3354, 3365, 3366, 3200, 3368, 3367, 3171, 3370, + 3369, 3171, 3372, 3371, 77, 3374, 3375, 3376, + 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, + 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3374, + 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, + 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, + 3391, 3373, 3392, 3392, 3393, 3394, 3395, 3396, + 3397, 3395, 3396, 3397, 3398, 3399, 3373, 3400, + 3400, 3401, 3402, 3404, 3405, 3403, 3403, 3403, + 77, 3406, 3406, 3407, 3408, 3409, 3410, 77, + 3406, 3406, 3407, 3408, 3409, 3410, 3411, 2429, + 3412, 3412, 3413, 3414, 3416, 3417, 3415, 2429, + 3418, 3418, 3419, 3420, 3422, 3423, 3421, 2429, + 3424, 3424, 3425, 3426, 3428, 3429, 3427, 2429, + 3431, 3431, 3432, 3433, 3435, 3436, 3434, 3430, + 3437, 3437, 3438, 3439, 3441, 3442, 3440, 3430, + 3443, 3443, 3444, 3445, 3447, 3448, 3446, 3430, + 3449, 3449, 3450, 3451, 3453, 3454, 3452, 3430, + 3455, 3455, 3456, 3457, 3459, 3460, 3458, 2429, + 3461, 3461, 3462, 3463, 3465, 3466, 3464, 2429, + 3467, 3467, 3468, 3469, 3470, 3470, 3470, 3471, + 3472, 3470, 3470, 3470, 77, 3473, 3473, 3474, + 3475, 3476, 3477, 77, 3478, 3478, 3479, 3480, + 3481, 3482, 3483, 3481, 3481, 3481, 77, 3484, + 3484, 77, 3486, 3485, 77, 3488, 3487, 77, + 3490, 3489, 77, 3492, 3491, 77, 3494, 3493, + 77, 3496, 3495, 77, 3498, 3497, 77, 3500, + 3499, 77, 3501, 3501, 3373, 3502, 3502, 3373, + 3503, 3503, 3504, 3505, 3506, 3507, 3373, 3508, + 3508, 3373, 3509, 3509, 3373, 3510, 3510, 3373, + 3511, 3511, 3512, 3513, 3514, 3515, 3373, 3516, + 3516, 3373, 3517, 3517, 3518, 3519, 3520, 3521, + 3373, 3522, 3523, 3524, 3525, 3526, 3522, 3523, + 3524, 3525, 3526, 3373, 3527, 3527, 3373, 3528, + 3528, 3529, 3530, 3531, 3532, 3373, 3533, 3534, + 3533, 3534, 3373, 3535, 3535, 3373, 3536, 3536, + 3373, 3537, 3537, 3373, 3538, 3538, 3373, 3539, + 3539, 3540, 3541, 3542, 3543, 3373, 3544, 3544, + 3545, 3546, 3547, 3548, 3373, 3549, 3549, 3373, + 3550, 3550, 3373, 3551, 3551, 3552, 3553, 3554, + 3555, 3373, 3556, 3556, 3373, 3557, 3557, 3373, + 3558, 3558, 3373, 3559, 3559, 3560, 3561, 3562, + 3563, 3373, 3564, 3564, 3373, 3565, 3565, 3373, + 3566, 3566, 3373, 3567, 3567, 3568, 3569, 3570, + 3571, 3373, 3572, 3573, 3574, 3572, 3573, 3574, + 3373, 3575, 3575, 3373, 3576, 3576, 3373, 3577, + 3577, 3373, 3578, 3578, 3579, 3580, 3581, 3582, + 3373, 3583, 3584, 3583, 3584, 3373, 3585, 3585, + 3373, 3586, 3586, 3373, 3587, 3587, 3588, 3589, + 3590, 3591, 3373, 3592, 3592, 3373, 3593, 3593, + 3373, 3594, 3594, 3373, 3595, 3595, 3596, 3597, + 3598, 3599, 3373, 3600, 3600, 3601, 3602, 3603, + 3603, 3604, 3605, 3373, 3606, 3606, 3373, 3607, + 3607, 3373, 3608, 3608, 3609, 3610, 3611, 3612, + 3373, 3613, 3613, 3373, 3614, 3614, 3373, 3615, + 3616, 3373, 3617, 3373, 3618, 3618, 3619, 3620, + 3621, 3622, 3373, 3623, 3373, 3624, 3624, 3625, + 3626, 3627, 3628, 3373, 3629, 3630, 3629, 3630, + 3373, 3631, 3631, 3373, 3632, 3632, 3373, 3633, + 3633, 3373, 3634, 3634, 3635, 3636, 3637, 3638, + 3373, 3639, 3639, 3373, 3640, 3640, 3373, 3641, + 3641, 3373, 3642, 3642, 3643, 3644, 3645, 3646, + 3373, 3647, 3647, 3373, 3648, 3648, 3373, 3649, + 3649, 3373, 3650, 3650, 3373, 3651, 3651, 3373, + 3652, 3652, 3373, 3653, 3653, 3373, 3654, 3654, + 3655, 3656, 3657, 3658, 3373, 3659, 3660, 3659, + 3660, 3373, 3661, 3661, 3373, 3662, 3662, 3663, + 3664, 3665, 3666, 3373, 3667, 3667, 3668, 3669, + 3670, 3671, 3373, 3672, 3673, 3674, 3675, 3674, + 3675, 3373, 3676, 3373, 3677, 3677, 3678, 3679, + 3680, 3681, 3373, 3682, 3373, 3683, 3683, 3684, + 3685, 3686, 3687, 3373, 3688, 3688, 3373, 3689, + 3689, 3690, 3691, 3692, 3693, 3373, 3694, 3694, + 3695, 3696, 3697, 3698, 3373, 3699, 3700, 3699, + 3700, 3373, 3701, 3701, 3373, 3702, 3702, 3373, + 3703, 3703, 3373, 3704, 3704, 3705, 3706, 3707, + 3708, 3373, 3709, 3709, 3710, 3711, 3712, 3713, + 3373, 3714, 3715, 3716, 3714, 3715, 3716, 3373, + 3717, 3717, 3373, 3718, 3718, 3373, 3719, 3719, + 3373, 3720, 3720, 3721, 3722, 3723, 3724, 3373, + 3725, 3725, 3373, 3726, 3726, 3727, 3728, 3729, + 3730, 3373, 3731, 3731, 3732, 3733, 3734, 3734, + 3735, 3736, 3373, 3737, 3737, 3373, 3738, 3738, + 3739, 3740, 3741, 3742, 3743, 3373, 3744, 3744, + 3745, 3746, 3747, 3747, 3748, 3749, 3373, 3750, + 3750, 3373, 3751, 3751, 3373, 3752, 3752, 3373, + 3753, 3753, 3373, 3754, 3754, 3755, 3756, 3757, + 3758, 3373, 3759, 3759, 3373, 3760, 3760, 3373, + 3761, 3761, 3373, 3762, 3762, 3373, 3763, 3763, + 3373, 3764, 3764, 3373, 3765, 3765, 3373, 3766, + 3766, 3373, 3767, 3767, 3373, 3768, 3768, 3769, + 3770, 3771, 3772, 3373, 3773, 3773, 3373, 3774, + 3774, 3373, 3775, 3775, 3776, 3777, 3778, 3779, + 3373, 3780, 3781, 3782, 3780, 3781, 3782, 3373, + 3783, 3783, 3784, 3785, 3786, 3787, 3373, 3788, + 3788, 3373, 3789, 3789, 3373, 3790, 3790, 3373, + 3791, 3791, 3792, 3793, 3794, 3795, 3373, 3796, + 3796, 3797, 3798, 3799, 3800, 3373, 3801, 3802, + 3803, 3804, 3805, 3806, 3801, 3802, 3803, 3804, + 3805, 3806, 3373, 3807, 3807, 3373, 3808, 3808, + 3373, 3809, 3809, 3373, 3810, 3810, 3373, 3811, + 3811, 3812, 3813, 3814, 3815, 3373, 3816, 3816, + 3373, 3817, 3817, 3818, 3819, 3820, 3821, 3373, + 3822, 3822, 3373, 3823, 3823, 3824, 3825, 3826, + 3827, 3373, 3828, 3828, 3373, 3829, 3829, 3830, + 3831, 3832, 3833, 3373, 3834, 3834, 3373, 3835, + 3835, 3373, 3836, 3836, 3373, 3837, 3837, 3838, + 3839, 3840, 3841, 3373, 3842, 3842, 3373, 3843, + 3843, 3373, 3844, 3844, 3845, 3846, 3847, 3848, + 3373, 3849, 3850, 3851, 3849, 3850, 3851, 3373, + 3852, 3852, 3373, 3853, 3853, 3373, 3854, 3854, + 3855, 3856, 3857, 3858, 3373, 3859, 3859, 3373, + 3860, 3860, 3861, 3862, 3863, 3864, 3373, 3865, + 3865, 3373, 3866, 3866, 3373, 3868, 3867, 3869, + 3869, 3870, 3871, 3873, 3874, 3872, 3867, 3875, + 3875, 3373, 3876, 3876, 3373, 3877, 3877, 3878, + 3879, 3880, 3881, 3373, 3882, 3882, 3373, 3883, + 3883, 3373, 3884, 3884, 3373, 3885, 3885, 3373, + 3886, 3886, 3373, 3887, 3887, 3888, 3889, 3890, + 3891, 3373, 3892, 3892, 3373, 3893, 3893, 3373, + 3894, 3894, 3373, 3895, 3895, 3373, 3896, 3896, + 3373, 3897, 3897, 3898, 3899, 3900, 3901, 3373, + 3902, 3902, 3902, 3902, 3902, 3902, 77, 3903, + 3903, 3903, 3903, 77, 3904, 3904, 3904, 3904, + 77, 3905, 2429, 3906, 3906, 3907, 3908, 3910, + 3911, 3909, 2429, 3912, 3912, 3913, 3914, 3916, + 3917, 3915, 2429, 3918, 3918, 3919, 3920, 3922, + 3923, 3921, 2429, 3924, 3924, 3925, 3926, 3928, + 3929, 3927, 3927, 3927, 77, 3930, 3930, 3931, + 3932, 3933, 3934, 77, 3930, 3930, 3931, 3932, + 3935, 3933, 3934, 3935, 3935, 3935, 77, 3936, + 3936, 77, 3938, 3937, 77, 3940, 3939, 77, + 3942, 3941, 77, 3943, 3943, 3943, 3943, 77, + 3944, 3944, 77, 3945, 2429, 3946, 3946, 3947, + 3948, 3950, 3951, 3949, 2429, 3952, 3952, 3953, + 3954, 3956, 3957, 3955, 2429, 3958, 3958, 3959, + 3960, 3962, 3963, 3961, 2429, 3964, 3964, 3965, + 3966, 3968, 3969, 3967, 2429, 3970, 3970, 3971, + 3972, 3974, 3975, 3973, 2429, 3976, 3976, 3977, + 3978, 3979, 3981, 3982, 3980, 3980, 3980, 3100, + 3983, 3983, 3984, 3985, 3986, 3987, 3100, 3989, + 3989, 3990, 3991, 3993, 3994, 3992, 3992, 3992, + 3988, 3995, 3995, 3995, 3988, 3997, 3996, 3996, + 3996, 3988, 3998, 3998, 3998, 3988, 4000, 3999, + 3999, 3999, 3988, 4002, 4001, 4001, 4001, 3988, + 4003, 4003, 4003, 3988, 4005, 4004, 4004, 4004, + 3988, 4006, 4006, 4006, 4006, 4007, 4007, 4007, + 3988, 4008, 4008, 4008, 4008, 77, 4009, 3988, + 4005, 3988, 4002, 3988, 4010, 3988, 4000, 3988, + 4012, 4011, 77, 4013, 4013, 4013, 3100, 3983, + 3983, 3984, 3985, 3986, 3987, 4014, 4014, 4014, + 3100, 4016, 4015, 77, 4018, 4017, 77, 4020, + 4019, 77, 4021, 2429, 4022, 4022, 4023, 4024, + 4026, 4027, 4025, 2429, 4028, 4028, 4029, 4030, + 4032, 4033, 4031, 2429, 4034, 4034, 4035, 4036, + 4038, 4039, 4037, 2429, 4040, 4040, 4041, 4042, + 4044, 4045, 4043, 2429, 4046, 4046, 4047, 4048, + 4050, 4051, 4049, 2429, 4052, 4052, 4053, 4054, + 4055, 4057, 4058, 4056, 4056, 4056, 3100, 4059, + 4059, 4059, 4059, 3100, 4060, 4060, 4060, 3100, + 4059, 4059, 4059, 4059, 4061, 4061, 4061, 3100, + 4063, 4062, 77, 4065, 4064, 77, 4067, 4066, + 77, 4068, 2429, 4069, 4069, 4070, 4071, 4073, + 4074, 4072, 2429, 4075, 4075, 4076, 4077, 4079, + 4080, 4078, 2429, 4081, 4081, 4082, 4083, 4085, + 4086, 4084, 2429, 4087, 4087, 4088, 4089, 4091, + 4092, 4090, 2429, 4093, 4093, 4094, 4095, 4097, + 4098, 4096, 2429, 4099, 4099, 4100, 4101, 4103, + 4104, 4102, 4102, 4102, 3100, 4105, 4105, 4105, + 3100, 4106, 4106, 4107, 4108, 4109, 4110, 4111, + 4111, 4112, 4113, 4102, 4102, 4102, 3100, 4115, + 4114, 3100, 4117, 4116, 77, 4119, 4118, 77, + 4121, 4120, 77, 4122, 2429, 4123, 4123, 4124, + 4125, 4127, 4128, 4126, 2429, 4129, 4129, 4130, + 4131, 4133, 4134, 4132, 2429, 4135, 4135, 4135, + 4135, 4136, 2429, 4137, 4137, 4137, 4137, 77, + 4139, 4138, 77, 4140, 2429, 4141, 4141, 4142, + 4143, 4145, 4146, 4144, 2429, 4147, 4147, 4148, + 4149, 4151, 4152, 4150, 2429, 4153, 4153, 4154, + 4155, 4157, 4158, 4156, 2429, 4159, 4159, 4160, + 4161, 4163, 4164, 4162, 2429, 4165, 4165, 4166, + 4167, 4169, 4170, 4168, 2429, 4171, 4171, 4172, + 4173, 4175, 4176, 4174, 4174, 4174, 3100, 4177, + 4177, 4177, 3100, 4178, 4178, 4179, 4180, 4181, + 4182, 4183, 4183, 4184, 4185, 4174, 4174, 4174, + 3100, 4187, 4186, 3100, 4189, 4188, 77, 4191, + 4190, 77, 4193, 4192, 77, 4194, 2429, 4195, + 4195, 4196, 4197, 4199, 4200, 4198, 2429, 4201, + 4201, 4202, 4203, 4204, 4205, 4206, 4204, 2406, + 4207, 4208, 4207, 4207, 4207, 4208, 2406, 4210, + 4209, 77, 4211, 2429, 4212, 4212, 4213, 4214, + 4216, 4217, 4215, 2429, 4218, 4218, 4219, 4220, + 4222, 4223, 4221, 4221, 4221, 3100, 4224, 4224, + 4224, 3100, 4225, 4225, 4225, 3100, 4226, 4226, + 4226, 3100, 4228, 4227, 4229, 4229, 4229, 3100, + 4230, 4230, 4230, 3100, 4231, 4231, 4231, 3100, + 4232, 4232, 4232, 3100, 4234, 4228, 4234, 4234, + 4234, 4233, 4236, 4235, 77, 4237, 4237, 4237, + 3100, 4238, 4238, 4238, 3100, 4240, 4239, 4241, + 4241, 4241, 3100, 4242, 4242, 4242, 3100, 4243, + 4240, 4243, 4243, 4243, 4239, 4244, 4244, 4244, + 3100, 4245, 4245, 4245, 3100, 4246, 4239, 4247, + 4247, 4247, 3100, 4248, 4248, 4248, 3100, 4249, + 4246, 4249, 4249, 4249, 4239, 4250, 2429, 4251, + 4251, 4252, 4253, 4255, 4256, 4254, 2429, 4257, + 4257, 4258, 4259, 4261, 4262, 4260, 2429, 4263, + 4263, 4264, 4265, 4267, 4268, 4266, 2429, 4270, + 4270, 4271, 4272, 4273, 4274, 4269, 4269, 4269, + 77, 4275, 4275, 4275, 4275, 77, 4277, 4276, + 77, 4279, 4278, 77, 4280, 2429, 4281, 4281, + 4282, 4283, 4285, 4286, 4284, 2429, 4288, 4288, + 4289, 4290, 4291, 4292, 4287, 4287, 4287, 77, + 4293, 4293, 4294, 4295, 4296, 4297, 77, 4299, + 4299, 4300, 4301, 4302, 4303, 4298, 4298, 4298, + 77, 4304, 4304, 4304, 4304, 77, 4306, 4305, + 77, 4308, 4307, 77, 4309, 2429, 4310, 4310, + 4311, 4312, 4314, 4315, 4313, 2429, 4316, 4316, + 4317, 4318, 4319, 4319, 4319, 4320, 4321, 4319, + 4319, 4319, 77, 4322, 4322, 4322, 4322, 77, + 4323, 4323, 4323, 4323, 77, 4325, 4324, 77, + 4326, 4327, 4326, 4327, 3373, 4328, 4329, 4328, + 4329, 3373, 4330, 4330, 3373, 4331, 4331, 4332, + 4333, 4334, 4335, 3373, 4336, 4336, 4337, 4338, + 4340, 4341, 4339, 4339, 4339, 77, 4342, 4342, + 4343, 4344, 4345, 4346, 77, 4342, 4342, 4343, + 4344, 4345, 4346, 4347, 2429, 4348, 4348, 4349, + 4350, 4352, 4353, 4351, 2429, 4354, 4354, 4355, + 4356, 4357, 4357, 4357, 4358, 4359, 4357, 4357, + 4357, 77, 4360, 4360, 4360, 4360, 77, 4362, + 4361, 77, 4364, 4363, 77, 4366, 4365, 77, + 4367, 4367, 3373, 4368, 4368, 3373, 4369, 4369, + 3373, 4370, 4370, 4371, 4372, 4373, 4374, 3373, + 4375, 4375, 3373, 4376, 4376, 3373, 4377, 4377, + 3373, 4378, 3867, 4379, 4379, 4380, 4381, 4383, + 4384, 4382, 3867, 4386, 4386, 4387, 4388, 4389, + 4390, 4390, 4390, 4391, 4392, 4393, 4394, 4390, + 4390, 4390, 4385, 4395, 4395, 4396, 4397, 4398, + 4399, 75, 4400, 4399, 4391, 4392, 4401, 4402, + 4403, 4404, 4405, 4406, 75, 75, 4399, 75, + 4399, 75, 4399, 75, 900, 4408, 4408, 4387, + 4409, 4410, 4390, 4411, 4412, 4413, 4414, 4415, + 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, + 4424, 4425, 4426, 4427, 4428, 4390, 4390, 4411, + 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, + 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, + 4428, 4391, 4392, 4429, 4430, 4390, 4390, 4390, + 4407, 4408, 4408, 4387, 4409, 4410, 4390, 4433, + 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, + 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, + 4450, 4390, 4390, 4433, 4434, 4435, 4436, 4437, + 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, + 4446, 4447, 4448, 4449, 4450, 4391, 4392, 4429, + 4430, 4390, 4432, 4390, 4390, 4431, 4452, 4452, + 4453, 4454, 4455, 4456, 4456, 4456, 4457, 4458, + 4459, 4460, 4456, 4456, 4456, 4451, 4386, 4386, + 4387, 4461, 4462, 4390, 4433, 4434, 4435, 4436, + 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, + 4445, 4446, 4447, 4448, 4449, 4450, 4390, 4390, + 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, + 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, + 4449, 4450, 4391, 4392, 4463, 4464, 4390, 4432, + 4390, 4390, 4431, 4465, 4465, 4387, 4466, 4467, + 4390, 4390, 4390, 89, 90, 4468, 4469, 4390, + 4390, 4390, 900, 4470, 4470, 4396, 4471, 4472, + 4399, 75, 4400, 4399, 89, 90, 4468, 4473, + 107, 108, 4468, 4474, 75, 75, 4399, 75, + 4399, 75, 4399, 75, 900, 4395, 4395, 4396, + 4397, 4398, 4399, 75, 4477, 4478, 4479, 4480, + 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, + 4489, 4490, 4491, 4492, 4493, 4494, 4400, 4399, + 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, + 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, + 4493, 4494, 4391, 4392, 4401, 4402, 4403, 4404, + 4405, 4406, 75, 75, 4399, 4476, 75, 4399, + 75, 4399, 75, 4475, 4470, 4470, 4396, 4471, + 4472, 4399, 75, 4477, 4478, 4479, 4480, 4481, + 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, + 4490, 4491, 4492, 4493, 4494, 4400, 4399, 4477, + 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, + 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, + 4494, 89, 90, 4495, 4473, 107, 108, 4495, + 4474, 75, 75, 4399, 4476, 75, 4399, 75, + 4399, 75, 4475, 807, 807, 807, 807, 1065, + 1066, 1065, 1068, 1065, 1066, 1067, 1066, 1061, + 807, 807, 807, 1223, 1223, 1224, 1225, 1192, + 1193, 1194, 1192, 1226, 1227, 1192, 1192, 1192, + 1198, 807, 1238, 1238, 1239, 1240, 1233, 1241, + 1242, 1243, 1243, 1244, 1245, 1233, 1233, 1233, + 1232, 1247, 1246, 1232, 807, 1257, 1257, 1258, + 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, + 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, + 1275, 1276, 1277, 1260, 1261, 1262, 1263, 1264, + 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, + 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1280, 1281, 1282, 1248, 1305, 1304, 1248, 807, + 1868, 1868, 1869, 1870, 1871, 1872, 1873, 1873, + 1874, 1875, 1864, 1864, 1864, 1860, 1877, 1876, + 1860, 1896, 1896, 1897, 1898, 1900, 1901, 1899, + 1899, 1899, 1860, 1846, 1903, 1903, 1904, 1905, + 1906, 1907, 1908, 1908, 1909, 1910, 1899, 1899, + 1899, 1860, 1912, 1911, 1860, 1914, 1913, 1846, + 807, 807, 1998, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, + 2011, 2012, 2012, 2013, 2014, 1989, 2030, 2029, + 1989, 807, 807, 807, 807, 807, 807, 807, + 807, 807, 807, 2624, 2624, 2625, 2626, 2627, + 2628, 2629, 2629, 2630, 2631, 2623, 2623, 2623, + 2614, 2633, 2632, 2614, 807, 807, 2797, 2797, + 2798, 2799, 2800, 2801, 2746, 2746, 2802, 2803, + 2637, 2805, 2804, 2637, 2779, 2779, 2780, 2781, + 2783, 2784, 2746, 2746, 2785, 2786, 2782, 2637, + 2817, 2816, 2637, 2760, 2760, 2761, 2762, 2764, + 2765, 2746, 2746, 2766, 2767, 2763, 2637, 2830, + 2829, 2637, 2740, 2740, 2741, 2742, 2744, 2745, + 2746, 2746, 2747, 2748, 2743, 2637, 2843, 2842, + 2637, 807, 807, 807, 807, 3041, 3041, 3042, + 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3049, + 3050, 3051, 3040, 3070, 3069, 77, 807, 3108, + 3108, 3109, 3110, 3111, 3112, 3113, 3113, 3114, + 3115, 3104, 3104, 3104, 3100, 3117, 3116, 3100, + 807, 3150, 3150, 3151, 3152, 3153, 3154, 3155, + 3155, 3156, 3157, 3146, 3146, 3146, 3100, 3159, + 3158, 3100, 807, 3204, 3204, 3205, 3206, 3210, + 3210, 3210, 3210, 3215, 3216, 3210, 3210, 3217, + 3218, 3223, 3228, 3227, 3223, 3201, 3201, 3202, + 3203, 3224, 3211, 3212, 3224, 3224, 3224, 3223, + 3226, 3225, 3223, 3224, 3201, 3201, 3202, 3203, + 3204, 3204, 3205, 3206, 3207, 3207, 3208, 3209, + 3210, 3210, 3210, 3210, 3211, 3212, 3210, 3210, + 3213, 3214, 3215, 3216, 3210, 3210, 3217, 3218, + 3219, 3220, 3210, 3210, 3221, 3222, 3224, 3224, + 3224, 3223, 3226, 3228, 3230, 3225, 3227, 3229, + 3223, 807, 807, 807, 807, 807, 807, 807, + 4106, 4106, 4107, 4108, 4109, 4110, 4111, 4111, + 4112, 4113, 4102, 4102, 4102, 3100, 4115, 4114, + 3100, 807, 807, 4178, 4178, 4179, 4180, 4181, + 4182, 4183, 4183, 4184, 4185, 4174, 4174, 4174, + 3100, 4187, 4186, 3100, 807, 807, 807, 807, + 807, 807, 807, 807, 0 }; static const short _zone_scanner_trans_targs[] = { 0, 1, 1, 1, 2, 4, 17, 40, - 54, 61, 181, 81, 85, 93, 99, 115, - 125, 128, 135, 154, 164, 167, 173, 1444, - 189, 1449, 311, 0, 3, 3, 3, 2, - 204, 204, 204, 204, 204, 3, 207, 0, - 3, 3, 3, 4, 17, 40, 54, 61, - 70, 81, 85, 93, 99, 115, 125, 128, - 135, 154, 164, 167, 173, 3, 207, 0, - 5, 5, 5, 274, 277, 281, 5, 10, + 57, 64, 184, 84, 88, 96, 102, 118, + 128, 131, 138, 157, 167, 170, 176, 1483, + 192, 1488, 314, 0, 3, 3, 3, 2, + 207, 207, 207, 207, 207, 3, 210, 0, + 3, 3, 3, 4, 17, 40, 57, 64, + 73, 84, 88, 96, 102, 118, 128, 131, + 138, 157, 167, 170, 176, 3, 210, 0, + 5, 5, 5, 277, 280, 284, 5, 10, 6, 11, 20, 6, 5, 0, 5, 5, 9, 5, 10, 11, 20, 0, 7, 7, - 7, 1444, 8, 0, 7, 7, 7, 1444, - 8, 8, 1444, 6, 6, 10, 5, 12, - 12, 12, 13, 1450, 214, 288, 12, 12, - 12, 13, 1450, 214, 288, 13, 1445, 14, - 0, 14, 14, 15, 210, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 1452, 283, - 1450, 284, 1453, 286, 0, 16, 16, 16, - 1446, 314, 0, 16, 16, 16, 1446, 314, + 7, 1483, 8, 0, 7, 7, 7, 1483, + 8, 8, 1483, 6, 6, 10, 5, 12, + 12, 12, 13, 1489, 217, 291, 12, 12, + 12, 13, 1489, 217, 291, 13, 1484, 14, + 0, 14, 14, 15, 213, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 1491, 286, + 1489, 287, 1492, 289, 0, 16, 16, 16, + 1485, 317, 0, 16, 16, 16, 1485, 317, 18, 22, 29, 32, 36, 19, 5, 5, 5, 5, 10, 6, 11, 20, 21, 21, 21, 13, 21, 21, 21, 13, 23, 28, @@ -5208,1271 +5308,1300 @@ static const short _zone_scanner_trans_targs[] = { 11, 20, 46, 49, 47, 48, 5, 5, 5, 5, 10, 6, 11, 20, 50, 51, 52, 5, 5, 5, 5, 10, 6, 11, + 20, 5, 5, 5, 54, 5, 10, 6, + 11, 20, 55, 56, 5, 5, 5, 5, + 10, 6, 11, 20, 58, 59, 60, 62, + 61, 5, 5, 5, 5, 10, 6, 11, + 20, 63, 5, 5, 5, 5, 10, 6, + 11, 20, 65, 69, 66, 67, 68, 5, + 5, 5, 5, 10, 6, 11, 20, 70, + 71, 72, 5, 5, 5, 5, 10, 6, + 11, 20, 74, 77, 75, 75, 75, 75, + 182, 75, 75, 75, 4, 17, 40, 57, + 64, 76, 84, 88, 96, 102, 118, 128, + 131, 138, 157, 167, 170, 176, 75, 182, + 78, 79, 80, 81, 82, 83, 5, 5, + 5, 5, 10, 6, 11, 20, 85, 87, + 86, 5, 5, 5, 5, 10, 6, 11, 20, 5, 5, 5, 5, 10, 6, 11, - 20, 55, 56, 57, 59, 58, 5, 5, - 5, 5, 10, 6, 11, 20, 60, 5, - 5, 5, 5, 10, 6, 11, 20, 62, - 66, 63, 64, 65, 5, 5, 5, 5, - 10, 6, 11, 20, 67, 68, 69, 5, - 5, 5, 5, 10, 6, 11, 20, 71, - 74, 72, 72, 72, 72, 179, 72, 72, - 72, 4, 17, 40, 54, 61, 73, 81, - 85, 93, 99, 115, 125, 128, 135, 154, - 164, 167, 173, 72, 179, 75, 76, 77, - 78, 79, 80, 5, 5, 5, 5, 10, - 6, 11, 20, 82, 84, 83, 5, 5, - 5, 5, 10, 6, 11, 20, 5, 5, - 5, 5, 10, 6, 11, 20, 86, 88, - 90, 92, 87, 5, 5, 5, 5, 10, - 6, 11, 20, 89, 5, 5, 5, 5, - 10, 6, 11, 20, 91, 5, 5, 5, - 5, 10, 6, 11, 20, 5, 5, 5, - 5, 10, 6, 11, 20, 94, 98, 95, - 96, 97, 5, 5, 5, 5, 10, 6, - 11, 20, 5, 5, 5, 5, 10, 6, - 11, 20, 100, 104, 106, 101, 102, 103, + 20, 89, 91, 93, 95, 90, 5, 5, + 5, 5, 10, 6, 11, 20, 92, 5, + 5, 5, 5, 10, 6, 11, 20, 94, 5, 5, 5, 5, 10, 6, 11, 20, - 105, 5, 5, 5, 5, 10, 6, 11, - 20, 5, 5, 5, 107, 5, 10, 6, - 11, 20, 108, 5, 5, 5, 109, 5, + 5, 5, 5, 5, 10, 6, 11, 20, + 97, 101, 98, 99, 100, 5, 5, 5, + 5, 10, 6, 11, 20, 5, 5, 5, + 5, 10, 6, 11, 20, 103, 107, 109, + 104, 105, 106, 5, 5, 5, 5, 10, + 6, 11, 20, 108, 5, 5, 5, 5, 10, 6, 11, 20, 5, 5, 5, 110, - 5, 10, 6, 11, 20, 111, 112, 113, - 114, 5, 5, 5, 5, 10, 6, 11, - 20, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 5, 5, 5, 5, 10, 6, - 11, 20, 126, 127, 5, 5, 5, 5, - 10, 6, 11, 20, 129, 130, 134, 5, - 5, 5, 5, 10, 6, 11, 20, 131, - 132, 133, 5, 5, 5, 5, 10, 6, - 11, 20, 5, 5, 5, 5, 10, 6, - 11, 20, 136, 141, 143, 145, 147, 151, - 137, 138, 139, 140, 5, 5, 5, 5, - 10, 6, 11, 20, 142, 5, 5, 5, - 5, 10, 6, 11, 20, 144, 5, 5, - 5, 5, 10, 6, 11, 20, 146, 5, - 5, 5, 5, 10, 6, 11, 20, 148, - 149, 150, 5, 5, 5, 5, 10, 6, - 11, 20, 152, 153, 5, 5, 5, 5, - 10, 6, 11, 20, 155, 158, 160, 156, - 157, 5, 5, 5, 5, 10, 6, 11, - 20, 159, 5, 5, 5, 5, 10, 6, - 11, 20, 161, 162, 0, 163, 0, 5, - 5, 5, 163, 5, 10, 6, 11, 20, - 165, 166, 5, 5, 5, 5, 10, 6, - 11, 20, 168, 169, 170, 171, 172, 5, - 5, 5, 5, 10, 6, 11, 20, 174, - 175, 176, 177, 178, 5, 5, 5, 5, - 10, 6, 11, 20, 179, 72, 180, 180, - 180, 1447, 312, 182, 183, 183, 183, 183, - 188, 183, 183, 183, 184, 4, 17, 40, - 54, 61, 73, 81, 85, 93, 99, 115, - 125, 128, 135, 154, 164, 167, 173, 183, - 188, 72, 72, 72, 184, 185, 185, 185, - 185, 185, 72, 179, 186, 186, 187, 187, - 187, 187, 187, 72, 72, 72, 186, 72, - 179, 188, 183, 189, 1444, 0, 191, 236, - 242, 192, 193, 194, 195, 196, 197, 1448, - 0, 199, 199, 199, 199, 200, 199, 199, - 199, 199, 200, 200, 0, 199, 0, 202, - 202, 202, 202, 203, 202, 202, 202, 202, - 203, 203, 202, 205, 205, 206, 206, 206, - 206, 206, 3, 3, 3, 205, 3, 207, - 207, 3, 0, 209, 209, 209, 209, 290, - 291, 292, 209, 209, 209, 209, 290, 291, - 292, 0, 211, 211, 211, 1445, 13, 1450, - 214, 1451, 288, 211, 211, 211, 1445, 1451, - 212, 212, 212, 1449, 213, 213, 1449, 215, - 215, 215, 1444, 8, 215, 215, 215, 8, - 216, 216, 216, 234, 272, 234, 1452, 0, - 237, 238, 239, 240, 241, 1448, 243, 244, - 1448, 0, 212, 212, 212, 1449, 213, 0, - 247, 247, 247, 1447, 248, 247, 247, 247, - 1447, 248, 248, 1447, 0, 250, 250, 250, - 1452, 234, 1453, 272, 250, 250, 250, 1452, - 1453, 269, 0, 269, 269, 269, 270, 212, - 212, 212, 1449, 213, 271, 1449, 271, 271, - 213, 271, 271, 271, 213, 273, 273, 273, - 234, 273, 273, 273, 234, 275, 276, 5, - 5, 5, 5, 10, 6, 11, 20, 278, - 279, 280, 5, 5, 5, 5, 10, 6, - 11, 20, 282, 5, 5, 5, 5, 10, - 6, 11, 20, 283, 1452, 285, 285, 285, - 1444, 285, 285, 285, 1444, 287, 287, 287, - 287, 287, 287, 289, 289, 289, 289, 289, - 289, 290, 209, 216, 216, 216, 234, 272, - 293, 293, 293, 293, 293, 293, 0, 311, - 1449, 312, 1447, 314, 1446, 315, 1454, 315, - 315, 317, 1455, 317, 1455, 0, 319, 325, - 326, 321, 1456, 319, 320, 321, 1456, 319, - 321, 322, 0, 323, 324, 1456, 319, 320, - 321, 1456, 0, 328, 333, 329, 1457, 328, - 1458, 329, 0, 330, 331, 332, 1457, 328, - 1458, 329, 333, 334, 335, 336, 333, 334, - 335, 336, 0, 1457, 337, 338, 339, 333, - 334, 335, 336, 0, 341, 341, 341, 341, - 348, 0, 342, 0, 343, 343, 343, 342, - 345, 345, 345, 345, 345, 1459, 344, 0, - 343, 343, 343, 1459, 344, 344, 1459, 346, - 0, 346, 347, 347, 347, 347, 347, 343, - 343, 343, 346, 1459, 344, 348, 341, 0, - 350, 350, 350, 350, 360, 351, 359, 355, - 351, 352, 355, 0, 353, 353, 353, 351, - 355, 1460, 354, 353, 353, 353, 1460, 354, - 354, 1460, 356, 0, 357, 358, 351, 352, - 355, 360, 350, 362, 362, 362, 362, 377, - 363, 0, 0, 364, 364, 364, 1461, 368, - 374, 0, 364, 364, 364, 365, 373, 369, - 1461, 368, 374, 0, 365, 366, 369, 367, - 367, 367, 365, 369, 1461, 368, 367, 367, - 367, 368, 1461, 370, 0, 371, 372, 365, - 366, 369, 374, 1462, 375, 375, 375, 375, - 376, 376, 375, 377, 362, 0, 379, 380, - 381, 384, 382, 382, 382, 382, 382, 383, - 1463, 1464, 1465, 383, 382, 0, 386, 386, - 386, 386, 391, 1466, 1467, 1468, 386, 386, - 386, 387, 392, 413, 427, 434, 443, 451, - 455, 463, 469, 485, 495, 498, 505, 524, - 534, 537, 543, 386, 391, 1466, 1467, 1468, - 386, 386, 386, 388, 549, 553, 386, 391, - 1466, 1467, 1468, 389, 390, 386, 386, 386, - 386, 391, 1466, 1467, 1468, 391, 386, 393, - 395, 402, 405, 409, 394, 386, 386, 386, - 386, 391, 1466, 1467, 1468, 396, 401, 397, - 398, 399, 400, 386, 386, 386, 386, 391, - 1466, 1467, 1468, 386, 386, 386, 386, 391, - 1466, 1467, 1468, 403, 404, 386, 386, 386, - 386, 391, 1466, 1467, 1468, 406, 407, 408, - 386, 386, 386, 386, 391, 1466, 1467, 1468, - 410, 411, 412, 386, 386, 386, 386, 391, - 1466, 1467, 1468, 414, 418, 426, 415, 416, - 417, 386, 386, 386, 386, 391, 1466, 1467, - 1468, 419, 422, 420, 421, 386, 386, 386, - 386, 391, 1466, 1467, 1468, 423, 424, 425, - 386, 386, 386, 386, 391, 1466, 1467, 1468, - 386, 386, 386, 386, 391, 1466, 1467, 1468, - 428, 429, 430, 432, 431, 386, 386, 386, - 386, 391, 1466, 1467, 1468, 433, 386, 386, - 386, 386, 391, 1466, 1467, 1468, 435, 439, - 436, 437, 438, 386, 386, 386, 386, 391, - 1466, 1467, 1468, 440, 441, 442, 386, 386, - 386, 386, 391, 1466, 1467, 1468, 444, 445, - 446, 447, 448, 449, 450, 386, 386, 386, - 386, 391, 1466, 1467, 1468, 452, 454, 453, - 386, 386, 386, 386, 391, 1466, 1467, 1468, - 386, 386, 386, 386, 391, 1466, 1467, 1468, - 456, 458, 460, 462, 457, 386, 386, 386, - 386, 391, 1466, 1467, 1468, 459, 386, 386, - 386, 386, 391, 1466, 1467, 1468, 461, 386, - 386, 386, 386, 391, 1466, 1467, 1468, 386, - 386, 386, 386, 391, 1466, 1467, 1468, 464, - 468, 465, 466, 467, 386, 386, 386, 386, - 391, 1466, 1467, 1468, 386, 386, 386, 386, - 391, 1466, 1467, 1468, 470, 474, 476, 471, - 472, 473, 386, 386, 386, 386, 391, 1466, - 1467, 1468, 475, 386, 386, 386, 386, 391, - 1466, 1467, 1468, 386, 386, 386, 477, 386, - 391, 1466, 1467, 1468, 478, 386, 386, 386, - 479, 386, 391, 1466, 1467, 1468, 386, 386, - 386, 480, 386, 391, 1466, 1467, 1468, 481, - 482, 483, 484, 386, 386, 386, 386, 391, - 1466, 1467, 1468, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 386, 386, 386, 386, - 391, 1466, 1467, 1468, 496, 497, 386, 386, - 386, 386, 391, 1466, 1467, 1468, 499, 500, - 504, 386, 386, 386, 386, 391, 1466, 1467, - 1468, 501, 502, 503, 386, 386, 386, 386, - 391, 1466, 1467, 1468, 386, 386, 386, 386, - 391, 1466, 1467, 1468, 506, 511, 513, 515, - 517, 521, 507, 508, 509, 510, 386, 386, - 386, 386, 391, 1466, 1467, 1468, 512, 386, - 386, 386, 386, 391, 1466, 1467, 1468, 514, - 386, 386, 386, 386, 391, 1466, 1467, 1468, - 516, 386, 386, 386, 386, 391, 1466, 1467, - 1468, 518, 519, 520, 386, 386, 386, 386, - 391, 1466, 1467, 1468, 522, 523, 386, 386, - 386, 386, 391, 1466, 1467, 1468, 525, 528, - 530, 526, 527, 386, 386, 386, 386, 391, - 1466, 1467, 1468, 529, 386, 386, 386, 386, - 391, 1466, 1467, 1468, 531, 532, 533, 386, - 386, 386, 533, 386, 391, 1466, 1467, 1468, - 535, 536, 386, 386, 386, 386, 391, 1466, - 1467, 1468, 538, 539, 540, 541, 542, 386, - 386, 386, 386, 391, 1466, 1467, 1468, 544, - 545, 546, 547, 548, 386, 386, 386, 386, - 391, 1466, 1467, 1468, 550, 551, 552, 386, - 386, 386, 386, 391, 1466, 1467, 1468, 554, - 386, 386, 386, 386, 391, 1466, 1467, 1468, - 0, 556, 556, 556, 556, 563, 0, 557, - 558, 558, 558, 557, 558, 562, 0, 558, - 558, 558, 559, 558, 562, 560, 560, 560, - 560, 560, 561, 1469, 1470, 1471, 561, 560, - 562, 558, 563, 556, 565, 565, 565, 565, - 573, 566, 572, 1472, 1472, 1472, 572, 1473, - 1472, 1476, 567, 567, 567, 568, 567, 571, - 569, 569, 569, 569, 569, 570, 1473, 1474, - 1475, 570, 569, 571, 567, 567, 567, 567, - 567, 571, 573, 565, 0, 575, 579, 586, - 589, 602, 606, 621, 626, 576, 577, 578, - 1477, 580, 581, 582, 583, 584, 585, 1477, - 587, 588, 1477, 590, 591, 592, 597, 593, - 594, 595, 596, 1477, 598, 599, 600, 601, - 1477, 603, 604, 0, 605, 1477, 605, 607, - 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 1477, 622, 623, - 624, 625, 1477, 627, 628, 629, 1477, 0, - 631, 631, 631, 631, 638, 1478, 1479, 1480, - 631, 631, 631, 632, 639, 651, 666, 691, - 696, 711, 726, 731, 631, 638, 1478, 1479, - 1480, 633, 634, 635, 636, 637, 739, 631, - 631, 631, 631, 638, 1478, 1479, 1480, 638, - 631, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 631, 631, 631, 631, 638, 1478, - 1479, 1480, 649, 650, 631, 631, 631, 631, - 638, 1478, 1479, 1480, 652, 653, 654, 655, - 661, 656, 657, 658, 660, 659, 659, 656, - 662, 663, 665, 664, 664, 661, 667, 668, - 669, 680, 670, 671, 672, 673, 674, 0, - 675, 678, 676, 650, 677, 676, 676, 631, - 631, 631, 679, 678, 631, 638, 1478, 1479, - 1480, 678, 681, 682, 683, 684, 685, 686, - 689, 687, 650, 688, 687, 687, 631, 631, - 631, 690, 689, 631, 638, 1478, 1479, 1480, - 689, 692, 693, 0, 694, 631, 631, 631, - 694, 695, 631, 638, 1478, 1479, 1480, 697, - 698, 699, 700, 701, 702, 703, 704, 705, - 706, 709, 707, 650, 708, 707, 631, 631, - 631, 710, 631, 638, 1478, 1479, 1480, 709, - 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 631, 631, - 631, 631, 638, 1478, 1479, 1480, 727, 728, - 729, 730, 631, 631, 631, 631, 638, 1478, - 1479, 1480, 732, 733, 734, 735, 736, 738, - 737, 650, 737, 631, 631, 631, 738, 631, - 638, 1478, 1479, 1480, 740, 650, 0, 742, - 743, 758, 797, 805, 818, 1481, 742, 744, - 745, 1481, 746, 1481, 747, 748, 749, 750, - 751, 752, 753, 754, 755, 756, 757, 1481, - 759, 788, 760, 766, 761, 762, 763, 764, - 765, 1481, 767, 768, 769, 770, 779, 771, - 772, 773, 774, 775, 776, 777, 778, 1481, - 780, 781, 782, 783, 784, 785, 786, 787, - 1481, 789, 794, 790, 791, 792, 793, 1481, - 795, 796, 1481, 798, 799, 800, 801, 802, - 803, 804, 1481, 806, 807, 808, 809, 810, - 811, 812, 815, 813, 814, 1481, 816, 817, - 1481, 819, 820, 821, 824, 822, 823, 1481, - 825, 826, 827, 839, 842, 1481, 828, 829, - 830, 831, 832, 833, 834, 835, 836, 837, - 838, 1481, 840, 841, 1481, 843, 844, 1481, - 0, 846, 847, 853, 870, 873, 879, 883, - 1482, 846, 848, 849, 850, 851, 852, 1482, - 854, 860, 866, 855, 856, 857, 858, 859, - 1482, 861, 863, 862, 1482, 864, 865, 1482, - 867, 868, 869, 1482, 871, 872, 1482, 874, - 876, 875, 1482, 877, 878, 1482, 880, 881, - 882, 1482, 884, 885, 1482, 0, 887, 1483, - 887, 889, 1484, 891, 892, 892, 892, 892, - 921, 892, 892, 892, 893, 892, 921, 894, - 894, 894, 894, 920, 0, 894, 894, 894, - 895, 894, 920, 896, 896, 896, 895, 896, - 919, 896, 896, 896, 897, 896, 919, 0, - 898, 898, 898, 897, 916, 916, 916, 916, - 916, 898, 915, 898, 898, 898, 899, 898, - 915, 900, 900, 900, 899, 912, 912, 912, - 912, 912, 900, 911, 900, 900, 900, 901, - 900, 911, 902, 902, 902, 901, 908, 908, - 908, 908, 908, 902, 907, 902, 902, 902, - 903, 902, 907, 1485, 903, 904, 904, 904, - 904, 904, 905, 905, 906, 906, 906, 906, - 906, 1485, 905, 907, 902, 909, 909, 910, - 910, 910, 910, 910, 902, 902, 902, 909, - 902, 907, 911, 900, 913, 913, 914, 914, - 914, 914, 914, 900, 900, 900, 913, 900, - 911, 915, 898, 917, 917, 918, 918, 918, - 918, 918, 898, 898, 898, 917, 898, 915, - 919, 896, 920, 894, 921, 892, 923, 924, - 924, 924, 924, 926, 925, 924, 924, 924, - 924, 926, 1486, 926, 924, 928, 929, 929, - 929, 929, 931, 929, 929, 929, 930, 929, - 931, 1487, 931, 929, 933, 934, 934, 934, - 933, 934, 936, 934, 934, 934, 935, 934, - 936, 1488, 936, 934, 938, 0, 939, 939, - 939, 939, 940, 1489, 1490, 1491, 938, 939, - 939, 939, 939, 940, 1489, 1490, 1491, 940, - 939, 942, 1492, 942, 0, 944, 945, 945, - 945, 944, 945, 997, 945, 945, 945, 946, - 950, 992, 945, 997, 947, 947, 947, 946, - 947, 996, 947, 947, 947, 948, 947, 996, - 949, 949, 949, 994, 948, 949, 993, 949, - 949, 949, 949, 993, 951, 951, 951, 951, - 991, 952, 953, 953, 953, 952, 953, 990, - 953, 953, 953, 954, 958, 985, 953, 990, - 955, 955, 955, 954, 955, 989, 955, 955, - 955, 956, 955, 989, 957, 957, 957, 987, - 956, 957, 986, 957, 957, 957, 957, 986, - 959, 959, 959, 959, 984, 960, 961, 961, - 962, 962, 962, 981, 961, 983, 962, 980, - 1493, 1500, 1501, 962, 962, 962, 963, 962, - 980, 1493, 1500, 1501, 964, 964, 964, 977, - 963, 979, 964, 976, 1493, 1498, 1499, 964, - 964, 964, 965, 964, 976, 1498, 1499, 966, - 966, 966, 973, 965, 975, 966, 972, 1493, - 1496, 1497, 966, 966, 966, 967, 966, 972, - 1496, 1497, 968, 968, 968, 970, 967, 968, - 969, 1493, 1494, 1495, 968, 968, 968, 968, - 969, 1494, 1495, 969, 968, 968, 968, 968, - 971, 968, 969, 1493, 1494, 1495, 971, 972, - 966, 966, 966, 966, 974, 975, 966, 972, - 1493, 1496, 1497, 974, 976, 964, 964, 964, - 964, 978, 979, 964, 976, 1493, 1498, 1499, - 978, 980, 962, 962, 962, 962, 982, 983, - 962, 980, 1493, 1500, 1501, 982, 984, 959, - 959, 959, 959, 959, 984, 986, 957, 957, - 957, 957, 988, 957, 986, 988, 989, 955, - 990, 953, 991, 951, 951, 951, 951, 951, - 991, 993, 949, 949, 949, 949, 995, 949, - 993, 995, 996, 947, 997, 945, 999, 1000, - 1000, 1000, 999, 1000, 1008, 1000, 1000, 1000, - 1001, 1000, 1008, 1002, 1002, 1002, 1001, 1002, - 1007, 1002, 1002, 1002, 1003, 1002, 1007, 1004, - 1004, 1004, 1003, 1004, 1006, 1004, 1004, 1004, - 1005, 1004, 1006, 1502, 1006, 1004, 1007, 1002, - 1008, 1000, 1010, 1011, 1011, 1011, 1010, 1011, - 1025, 1011, 1011, 1011, 1012, 1011, 1025, 1013, - 1013, 1013, 1012, 1013, 1024, 1014, 1013, 1013, - 1013, 1013, 1024, 1015, 1015, 1015, 1015, 1023, - 1016, 1015, 1015, 1015, 1015, 1023, 1017, 1017, - 1017, 1017, 1022, 1018, 1017, 1017, 1017, 1017, - 1022, 1019, 1019, 1019, 1019, 1021, 1019, 1019, - 1019, 1020, 1019, 1021, 1503, 1021, 1019, 1022, - 1017, 1023, 1015, 1024, 1013, 1025, 1011, 1027, - 1028, 1028, 1028, 1028, 1036, 1029, 1030, 1030, - 1030, 1029, 1030, 1035, 1030, 1030, 1030, 1031, - 1030, 1035, 1032, 1032, 1032, 1032, 1034, 1033, - 1504, 1034, 1032, 1035, 1030, 1036, 1028, 0, - 1037, 1038, 1037, 1037, 1039, 1045, 1037, 1044, - 1505, 1506, 1507, 1039, 1045, 1040, 0, 1041, - 1041, 1042, 1043, 1037, 1037, 1037, 1043, 1037, - 1044, 1505, 1506, 1507, 1044, 1037, 1046, 1047, - 1047, 1042, 1049, 1050, 1050, 1050, 1049, 1050, - 1060, 1050, 1050, 1050, 1051, 1050, 1060, 1052, - 1052, 1052, 1052, 1059, 1053, 1054, 1054, 1054, - 1053, 1054, 1058, 0, 1054, 1054, 1054, 1055, - 1054, 1058, 1056, 1056, 1056, 1056, 1056, 1057, - 1508, 1509, 1510, 1057, 1056, 1058, 1054, 1059, - 1052, 1060, 1050, 1062, 1063, 1063, 1063, 1062, - 1063, 1070, 1063, 1063, 1063, 1064, 1063, 1070, - 1065, 1065, 1065, 1064, 1065, 1069, 1065, 1065, - 1065, 1066, 1065, 1069, 1067, 1067, 1067, 1067, - 1067, 1068, 1511, 1512, 1513, 1068, 1067, 1069, - 1065, 1070, 1063, 1072, 1073, 1073, 1073, 1072, - 1073, 1109, 0, 1073, 1073, 1073, 1074, 1088, - 1095, 1102, 1073, 1109, 1075, 1075, 1075, 1075, - 1087, 0, 1076, 1077, 1077, 1077, 1076, 1077, - 1086, 1077, 1077, 1077, 1078, 1077, 1086, 0, - 1079, 1079, 1079, 1082, 1082, 1082, 1084, 1084, - 1084, 1514, 1079, 1081, 1517, 1518, 1082, 1083, - 1515, 1516, 1084, 1085, 1519, 1520, 0, 1080, - 1081, 1079, 1083, 1082, 1085, 1084, 1086, 1077, - 1087, 1075, 1089, 1089, 1089, 1089, 1094, 1090, - 1091, 1091, 1091, 1090, 1091, 1093, 0, 1091, - 1091, 1091, 1092, 1091, 1093, 0, 1092, 1079, - 1079, 1079, 1082, 1082, 1082, 1084, 1084, 1084, - 1514, 1079, 1081, 1517, 1518, 1082, 1083, 1515, - 1516, 1084, 1085, 1519, 1520, 1093, 1091, 1094, - 1089, 1096, 1096, 1096, 1096, 1101, 1097, 1098, - 1098, 1098, 1097, 1098, 1100, 1098, 1098, 1098, - 1099, 1098, 1100, 1099, 1079, 1079, 1079, 1082, - 1082, 1082, 1084, 1084, 1084, 1514, 1079, 1081, - 1517, 1518, 1082, 1083, 1515, 1516, 1084, 1085, - 1519, 1520, 1100, 1098, 1101, 1096, 1103, 1103, - 1103, 1103, 1108, 1104, 1105, 1105, 1105, 1104, - 1105, 1107, 1105, 1105, 1105, 1106, 1105, 1107, - 1079, 1079, 1079, 1082, 1082, 1082, 1084, 1084, - 1084, 1514, 1079, 1081, 1517, 1518, 1082, 1083, - 1515, 1516, 1084, 1085, 1519, 1520, 1107, 1105, - 1108, 1103, 1109, 1073, 0, 1111, 1145, 1166, - 1180, 1187, 1196, 1204, 1208, 1216, 1222, 1238, - 1248, 1251, 1258, 1277, 1287, 1290, 1296, 1112, - 1112, 1112, 1136, 1139, 1143, 1112, 1135, 1112, - 1112, 1112, 1113, 1112, 1135, 1114, 1114, 1114, - 1114, 1134, 1115, 1116, 1116, 1116, 1115, 1116, - 1133, 1116, 1116, 1116, 1117, 1116, 1133, 1118, - 1118, 1118, 1117, 1118, 1132, 0, 1118, 1118, - 1118, 1119, 1118, 1132, 1120, 1120, 1120, 1119, - 1120, 1131, 1120, 1120, 1120, 1121, 1120, 1131, - 1122, 1122, 1122, 1121, 1122, 1130, 1122, 1122, - 1122, 1123, 1122, 1130, 1124, 1124, 1124, 1123, - 1124, 1129, 1124, 1124, 1124, 1125, 1124, 1129, - 1126, 1126, 1126, 1126, 1128, 1126, 1126, 1126, - 1127, 1126, 1128, 1521, 1128, 1126, 1129, 1124, - 1130, 1122, 1131, 1120, 1132, 1118, 1133, 1116, - 1134, 1114, 1135, 1112, 1137, 1138, 1112, 1112, - 1112, 1112, 1135, 1140, 1141, 1142, 1112, 1112, - 1112, 1112, 1135, 1144, 1112, 1112, 1112, 1112, - 1135, 1146, 1148, 1155, 1158, 1162, 1147, 1112, - 1112, 1112, 1112, 1135, 1149, 1154, 1150, 1151, - 1152, 1153, 1112, 1112, 1112, 1112, 1135, 1112, - 1112, 1112, 1112, 1135, 1156, 1157, 1112, 1112, - 1112, 1112, 1135, 1159, 1160, 1161, 1112, 1112, - 1112, 1112, 1135, 1163, 1164, 1165, 1112, 1112, - 1112, 1112, 1135, 1167, 1171, 1179, 1168, 1169, - 1170, 1112, 1112, 1112, 1112, 1135, 1172, 1175, - 1173, 1174, 1112, 1112, 1112, 1112, 1135, 1176, - 1177, 1178, 1112, 1112, 1112, 1112, 1135, 1112, - 1112, 1112, 1112, 1135, 1181, 1182, 1183, 1185, - 1184, 1112, 1112, 1112, 1112, 1135, 1186, 1112, - 1112, 1112, 1112, 1135, 1188, 1192, 1189, 1190, - 1191, 1112, 1112, 1112, 1112, 1135, 1193, 1194, - 1195, 1112, 1112, 1112, 1112, 1135, 1197, 1198, - 1199, 1200, 1201, 1202, 1203, 1112, 1112, 1112, - 1112, 1135, 1205, 1207, 1206, 1112, 1112, 1112, - 1112, 1135, 1112, 1112, 1112, 1112, 1135, 1209, - 1211, 1213, 1215, 1210, 1112, 1112, 1112, 1112, - 1135, 1212, 1112, 1112, 1112, 1112, 1135, 1214, - 1112, 1112, 1112, 1112, 1135, 1112, 1112, 1112, - 1112, 1135, 1217, 1221, 1218, 1219, 1220, 1112, - 1112, 1112, 1112, 1135, 1112, 1112, 1112, 1112, - 1135, 1223, 1227, 1229, 1224, 1225, 1226, 1112, - 1112, 1112, 1112, 1135, 1228, 1112, 1112, 1112, - 1112, 1135, 1112, 1112, 1112, 1230, 1112, 1135, - 1231, 1112, 1112, 1112, 1232, 1112, 1135, 1112, - 1112, 1112, 1233, 1112, 1135, 1234, 1235, 1236, - 1237, 1112, 1112, 1112, 1112, 1135, 1239, 1240, - 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1112, - 1112, 1112, 1112, 1135, 1249, 1250, 1112, 1112, - 1112, 1112, 1135, 1252, 1253, 1257, 1112, 1112, - 1112, 1112, 1135, 1254, 1255, 1256, 1112, 1112, - 1112, 1112, 1135, 1112, 1112, 1112, 1112, 1135, - 1259, 1264, 1266, 1268, 1270, 1274, 1260, 1261, - 1262, 1263, 1112, 1112, 1112, 1112, 1135, 1265, - 1112, 1112, 1112, 1112, 1135, 1267, 1112, 1112, - 1112, 1112, 1135, 1269, 1112, 1112, 1112, 1112, - 1135, 1271, 1272, 1273, 1112, 1112, 1112, 1112, - 1135, 1275, 1276, 1112, 1112, 1112, 1112, 1135, - 1278, 1281, 1283, 1279, 1280, 1112, 1112, 1112, - 1112, 1135, 1282, 1112, 1112, 1112, 1112, 1135, - 1284, 1285, 0, 1286, 1112, 1112, 1112, 1286, - 1112, 1135, 1288, 1289, 1112, 1112, 1112, 1112, - 1135, 1291, 1292, 1293, 1294, 1295, 1112, 1112, - 1112, 1112, 1135, 1297, 1298, 1299, 1300, 1301, - 1112, 1112, 1112, 1112, 1135, 1303, 1304, 1522, - 1306, 1307, 1307, 1307, 1306, 1307, 1315, 1307, - 1307, 1307, 1308, 1307, 1315, 1309, 1309, 1309, - 1308, 1309, 1314, 1309, 1309, 1309, 1310, 1309, - 1314, 1311, 1311, 1311, 1311, 1313, 1312, 1523, - 1313, 1311, 1314, 1309, 1315, 1307, 1317, 1524, - 1319, 1320, 1320, 1320, 1319, 1320, 1346, 1320, - 1320, 1320, 1321, 1320, 1346, 1322, 1322, 1322, - 1321, 1322, 1345, 1322, 1322, 1322, 1323, 1322, - 1345, 1324, 1324, 1324, 1323, 1324, 1344, 1324, - 1324, 1324, 1325, 1342, 1324, 1344, 1326, 1326, - 1326, 1326, 1341, 0, 1326, 1326, 1326, 1327, - 1326, 1341, 1328, 1329, 1339, 1330, 1331, 1338, - 1332, 1336, 1333, 1334, 1334, 1335, 1327, 1525, - 1337, 1340, 1341, 1326, 1343, 1342, 1344, 1324, - 1345, 1322, 1346, 1320, 1348, 1349, 1349, 1349, - 1348, 1349, 1359, 1349, 1349, 1349, 1350, 1349, - 1359, 1351, 1351, 1351, 1350, 1351, 1358, 1351, - 1351, 1351, 1352, 1351, 1358, 1353, 1353, 1353, - 1352, 1353, 1357, 1353, 1353, 1353, 1354, 1355, - 1353, 1357, 1526, 1356, 1355, 1357, 1353, 1358, - 1351, 1359, 1349, 1361, 1362, 1362, 1362, 1361, - 1362, 1372, 1362, 1362, 1362, 1363, 1362, 1372, - 1364, 1364, 1364, 1363, 1364, 1371, 1364, 1364, - 1364, 1365, 1364, 1371, 1366, 1366, 1366, 1365, - 1366, 1370, 1366, 1366, 1366, 1367, 1366, 1370, - 1368, 1368, 1368, 1368, 1368, 1369, 1527, 1528, - 1529, 1369, 1368, 1370, 1366, 1371, 1364, 1372, - 1362, 1374, 1375, 1375, 1375, 1374, 1375, 1378, - 1375, 1375, 1375, 1376, 1375, 1378, 1377, 1376, - 1530, 1378, 1375, 1380, 1381, 1381, 1381, 1380, - 1381, 1391, 1381, 1381, 1381, 1382, 1381, 1391, - 1383, 1383, 1383, 1382, 1383, 1390, 1383, 1383, - 1383, 1384, 1383, 1390, 1385, 1385, 1385, 1384, - 1385, 1389, 1385, 1385, 1385, 1386, 1385, 1389, - 1387, 1387, 1387, 1387, 1387, 1388, 1531, 1532, - 1533, 1388, 1387, 1389, 1385, 1390, 1383, 1391, - 1381, 1393, 1394, 1394, 1394, 1393, 1394, 1396, - 1394, 1394, 1394, 1395, 1394, 1396, 1534, 1395, - 1396, 1394, 1398, 1399, 1399, 1399, 1398, 1399, - 1409, 1399, 1399, 1399, 1400, 1399, 1409, 1401, - 1402, 1403, 0, 1404, 1405, 1406, 1407, 1408, - 0, 1535, 1409, 1399, 1411, 1412, 0, 1413, - 1414, 1415, 1536, 1417, 1418, 1419, 1420, 1421, - 1537, 1423, 1424, 1424, 1424, 1423, 1424, 1429, - 1424, 1424, 1424, 1425, 1424, 1429, 1426, 1426, - 1426, 1425, 1426, 1428, 1427, 1426, 1426, 1426, - 1426, 1428, 1538, 1428, 1426, 1429, 1424, 1431, - 1432, 1432, 1432, 1431, 1432, 1437, 1433, 1432, - 1432, 1432, 1432, 1437, 1434, 1434, 1434, 1434, - 1436, 1435, 1434, 1434, 1434, 1434, 1436, 1539, - 1436, 1434, 1437, 1432, 1439, 1440, 1440, 1440, - 1439, 1440, 1443, 1440, 1440, 1440, 1441, 1440, - 1443, 1442, 1540, 1443, 1440, 0, 1, 190, - 1, 1, 198, 1444, 189, 1449, 311, 14, - 235, 14, 14, 245, 268, 1452, 283, 1450, - 284, 1453, 286, 0, 180, 180, 180, 208, - 294, 295, 296, 297, 313, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, - 310, 1447, 312, 0, 201, 208, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 0, - 1, 190, 1, 1, 198, 1444, 189, 1449, - 311, 1, 1, 1449, 311, 212, 212, 212, - 1449, 213, 216, 216, 216, 234, 272, 0, - 246, 249, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 1449 + 5, 10, 6, 11, 20, 111, 5, 5, + 5, 112, 5, 10, 6, 11, 20, 5, + 5, 5, 113, 5, 10, 6, 11, 20, + 114, 115, 116, 117, 5, 5, 5, 5, + 10, 6, 11, 20, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 5, 5, 5, + 5, 10, 6, 11, 20, 129, 130, 5, + 5, 5, 5, 10, 6, 11, 20, 132, + 133, 137, 5, 5, 5, 5, 10, 6, + 11, 20, 134, 135, 136, 5, 5, 5, + 5, 10, 6, 11, 20, 5, 5, 5, + 5, 10, 6, 11, 20, 139, 144, 146, + 148, 150, 154, 140, 141, 142, 143, 5, + 5, 5, 5, 10, 6, 11, 20, 145, + 5, 5, 5, 5, 10, 6, 11, 20, + 147, 5, 5, 5, 5, 10, 6, 11, + 20, 149, 5, 5, 5, 5, 10, 6, + 11, 20, 151, 152, 153, 5, 5, 5, + 5, 10, 6, 11, 20, 155, 156, 5, + 5, 5, 5, 10, 6, 11, 20, 158, + 161, 163, 159, 160, 5, 5, 5, 5, + 10, 6, 11, 20, 162, 5, 5, 5, + 5, 10, 6, 11, 20, 164, 165, 0, + 166, 0, 5, 5, 5, 166, 5, 10, + 6, 11, 20, 168, 169, 5, 5, 5, + 5, 10, 6, 11, 20, 171, 172, 173, + 174, 175, 5, 5, 5, 5, 10, 6, + 11, 20, 177, 178, 179, 180, 181, 5, + 5, 5, 5, 10, 6, 11, 20, 182, + 75, 183, 183, 183, 1486, 315, 185, 186, + 186, 186, 186, 191, 186, 186, 186, 187, + 4, 17, 40, 57, 64, 76, 84, 88, + 96, 102, 118, 128, 131, 138, 157, 167, + 170, 176, 186, 191, 75, 75, 75, 187, + 188, 188, 188, 188, 188, 75, 182, 189, + 189, 190, 190, 190, 190, 190, 75, 75, + 75, 189, 75, 182, 191, 186, 192, 1483, + 0, 194, 239, 245, 195, 196, 197, 198, + 199, 200, 1487, 0, 202, 202, 202, 202, + 203, 202, 202, 202, 202, 203, 203, 0, + 202, 0, 205, 205, 205, 205, 206, 205, + 205, 205, 205, 206, 206, 205, 208, 208, + 209, 209, 209, 209, 209, 3, 3, 3, + 208, 3, 210, 210, 3, 0, 212, 212, + 212, 212, 293, 294, 295, 212, 212, 212, + 212, 293, 294, 295, 0, 214, 214, 214, + 1484, 13, 1489, 217, 1490, 291, 214, 214, + 214, 1484, 1490, 215, 215, 215, 1488, 216, + 216, 1488, 218, 218, 218, 1483, 8, 218, + 218, 218, 8, 219, 219, 219, 237, 275, + 237, 1491, 0, 240, 241, 242, 243, 244, + 1487, 246, 247, 1487, 0, 215, 215, 215, + 1488, 216, 0, 250, 250, 250, 1486, 251, + 250, 250, 250, 1486, 251, 251, 1486, 0, + 253, 253, 253, 1491, 237, 1492, 275, 253, + 253, 253, 1491, 1492, 272, 0, 272, 272, + 272, 273, 215, 215, 215, 1488, 216, 274, + 1488, 274, 274, 216, 274, 274, 274, 216, + 276, 276, 276, 237, 276, 276, 276, 237, + 278, 279, 5, 5, 5, 5, 10, 6, + 11, 20, 281, 282, 283, 5, 5, 5, + 5, 10, 6, 11, 20, 285, 5, 5, + 5, 5, 10, 6, 11, 20, 286, 1491, + 288, 288, 288, 1483, 288, 288, 288, 1483, + 290, 290, 290, 290, 290, 290, 292, 292, + 292, 292, 292, 292, 293, 212, 219, 219, + 219, 237, 275, 296, 296, 296, 296, 296, + 296, 0, 314, 1488, 315, 1486, 317, 1485, + 318, 1493, 318, 318, 320, 1494, 320, 1494, + 0, 322, 328, 329, 324, 1495, 322, 323, + 324, 1495, 322, 324, 325, 0, 326, 327, + 1495, 322, 323, 324, 1495, 0, 331, 336, + 332, 1496, 331, 1497, 332, 0, 333, 334, + 335, 1496, 331, 1497, 332, 336, 337, 338, + 339, 336, 337, 338, 339, 0, 1496, 340, + 341, 342, 336, 337, 338, 339, 0, 344, + 344, 344, 344, 351, 0, 345, 0, 346, + 346, 346, 345, 348, 348, 348, 348, 348, + 1498, 347, 0, 346, 346, 346, 1498, 347, + 347, 1498, 349, 0, 349, 350, 350, 350, + 350, 350, 346, 346, 346, 349, 1498, 347, + 351, 344, 0, 353, 353, 353, 353, 363, + 354, 362, 358, 354, 355, 358, 0, 356, + 356, 356, 354, 358, 1499, 357, 356, 356, + 356, 1499, 357, 357, 1499, 359, 0, 360, + 361, 354, 355, 358, 363, 353, 365, 365, + 365, 365, 380, 366, 0, 0, 367, 367, + 367, 1500, 371, 377, 0, 367, 367, 367, + 368, 376, 372, 1500, 371, 377, 0, 368, + 369, 372, 370, 370, 370, 368, 372, 1500, + 371, 370, 370, 370, 371, 1500, 373, 0, + 374, 375, 368, 369, 372, 377, 1501, 378, + 378, 378, 378, 379, 379, 378, 380, 365, + 0, 382, 383, 384, 387, 385, 385, 385, + 385, 385, 386, 1502, 1503, 1504, 386, 385, + 0, 389, 389, 389, 389, 394, 1505, 1506, + 1507, 389, 389, 389, 390, 395, 416, 433, + 440, 449, 457, 461, 469, 475, 491, 501, + 504, 511, 530, 540, 543, 549, 389, 394, + 1505, 1506, 1507, 389, 389, 389, 391, 555, + 559, 389, 394, 1505, 1506, 1507, 392, 393, + 389, 389, 389, 389, 394, 1505, 1506, 1507, + 394, 389, 396, 398, 405, 408, 412, 397, + 389, 389, 389, 389, 394, 1505, 1506, 1507, + 399, 404, 400, 401, 402, 403, 389, 389, + 389, 389, 394, 1505, 1506, 1507, 389, 389, + 389, 389, 394, 1505, 1506, 1507, 406, 407, + 389, 389, 389, 389, 394, 1505, 1506, 1507, + 409, 410, 411, 389, 389, 389, 389, 394, + 1505, 1506, 1507, 413, 414, 415, 389, 389, + 389, 389, 394, 1505, 1506, 1507, 417, 421, + 429, 418, 419, 420, 389, 389, 389, 389, + 394, 1505, 1506, 1507, 422, 425, 423, 424, + 389, 389, 389, 389, 394, 1505, 1506, 1507, + 426, 427, 428, 389, 389, 389, 389, 394, + 1505, 1506, 1507, 389, 389, 389, 430, 389, + 394, 1505, 1506, 1507, 431, 432, 389, 389, + 389, 389, 394, 1505, 1506, 1507, 434, 435, + 436, 438, 437, 389, 389, 389, 389, 394, + 1505, 1506, 1507, 439, 389, 389, 389, 389, + 394, 1505, 1506, 1507, 441, 445, 442, 443, + 444, 389, 389, 389, 389, 394, 1505, 1506, + 1507, 446, 447, 448, 389, 389, 389, 389, + 394, 1505, 1506, 1507, 450, 451, 452, 453, + 454, 455, 456, 389, 389, 389, 389, 394, + 1505, 1506, 1507, 458, 460, 459, 389, 389, + 389, 389, 394, 1505, 1506, 1507, 389, 389, + 389, 389, 394, 1505, 1506, 1507, 462, 464, + 466, 468, 463, 389, 389, 389, 389, 394, + 1505, 1506, 1507, 465, 389, 389, 389, 389, + 394, 1505, 1506, 1507, 467, 389, 389, 389, + 389, 394, 1505, 1506, 1507, 389, 389, 389, + 389, 394, 1505, 1506, 1507, 470, 474, 471, + 472, 473, 389, 389, 389, 389, 394, 1505, + 1506, 1507, 389, 389, 389, 389, 394, 1505, + 1506, 1507, 476, 480, 482, 477, 478, 479, + 389, 389, 389, 389, 394, 1505, 1506, 1507, + 481, 389, 389, 389, 389, 394, 1505, 1506, + 1507, 389, 389, 389, 483, 389, 394, 1505, + 1506, 1507, 484, 389, 389, 389, 485, 389, + 394, 1505, 1506, 1507, 389, 389, 389, 486, + 389, 394, 1505, 1506, 1507, 487, 488, 489, + 490, 389, 389, 389, 389, 394, 1505, 1506, + 1507, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 389, 389, 389, 389, 394, 1505, + 1506, 1507, 502, 503, 389, 389, 389, 389, + 394, 1505, 1506, 1507, 505, 506, 510, 389, + 389, 389, 389, 394, 1505, 1506, 1507, 507, + 508, 509, 389, 389, 389, 389, 394, 1505, + 1506, 1507, 389, 389, 389, 389, 394, 1505, + 1506, 1507, 512, 517, 519, 521, 523, 527, + 513, 514, 515, 516, 389, 389, 389, 389, + 394, 1505, 1506, 1507, 518, 389, 389, 389, + 389, 394, 1505, 1506, 1507, 520, 389, 389, + 389, 389, 394, 1505, 1506, 1507, 522, 389, + 389, 389, 389, 394, 1505, 1506, 1507, 524, + 525, 526, 389, 389, 389, 389, 394, 1505, + 1506, 1507, 528, 529, 389, 389, 389, 389, + 394, 1505, 1506, 1507, 531, 534, 536, 532, + 533, 389, 389, 389, 389, 394, 1505, 1506, + 1507, 535, 389, 389, 389, 389, 394, 1505, + 1506, 1507, 537, 538, 539, 389, 389, 389, + 539, 389, 394, 1505, 1506, 1507, 541, 542, + 389, 389, 389, 389, 394, 1505, 1506, 1507, + 544, 545, 546, 547, 548, 389, 389, 389, + 389, 394, 1505, 1506, 1507, 550, 551, 552, + 553, 554, 389, 389, 389, 389, 394, 1505, + 1506, 1507, 556, 557, 558, 389, 389, 389, + 389, 394, 1505, 1506, 1507, 560, 389, 389, + 389, 389, 394, 1505, 1506, 1507, 0, 562, + 562, 562, 562, 569, 0, 563, 564, 564, + 564, 563, 564, 568, 0, 564, 564, 564, + 565, 564, 568, 566, 566, 566, 566, 566, + 567, 1508, 1509, 1510, 567, 566, 568, 564, + 569, 562, 571, 571, 571, 571, 579, 572, + 578, 1511, 1511, 1511, 578, 1512, 1511, 1515, + 573, 573, 573, 574, 573, 577, 575, 575, + 575, 575, 575, 576, 1512, 1513, 1514, 576, + 575, 577, 573, 573, 573, 573, 573, 577, + 579, 571, 0, 581, 585, 592, 595, 608, + 612, 627, 632, 582, 583, 584, 1516, 586, + 587, 588, 589, 590, 591, 1516, 593, 594, + 1516, 596, 597, 598, 603, 599, 600, 601, + 602, 1516, 604, 605, 606, 607, 1516, 609, + 610, 0, 611, 1516, 611, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 1516, 628, 629, 630, 631, + 1516, 633, 634, 635, 1516, 0, 637, 637, + 637, 637, 644, 1517, 1518, 1519, 637, 637, + 637, 638, 645, 657, 672, 697, 702, 717, + 732, 737, 637, 644, 1517, 1518, 1519, 639, + 640, 641, 642, 643, 745, 637, 637, 637, + 637, 644, 1517, 1518, 1519, 644, 637, 646, + 647, 648, 649, 650, 651, 652, 653, 654, + 637, 637, 637, 637, 644, 1517, 1518, 1519, + 655, 656, 637, 637, 637, 637, 644, 1517, + 1518, 1519, 658, 659, 660, 661, 667, 662, + 663, 664, 666, 665, 665, 662, 668, 669, + 671, 670, 670, 667, 673, 674, 675, 686, + 676, 677, 678, 679, 680, 0, 681, 684, + 682, 656, 683, 682, 682, 637, 637, 637, + 685, 684, 637, 644, 1517, 1518, 1519, 684, + 687, 688, 689, 690, 691, 692, 695, 693, + 656, 694, 693, 693, 637, 637, 637, 696, + 695, 637, 644, 1517, 1518, 1519, 695, 698, + 699, 0, 700, 637, 637, 637, 700, 701, + 637, 644, 1517, 1518, 1519, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 715, + 713, 656, 714, 713, 637, 637, 637, 716, + 637, 644, 1517, 1518, 1519, 715, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 637, 637, 637, 637, + 644, 1517, 1518, 1519, 733, 734, 735, 736, + 637, 637, 637, 637, 644, 1517, 1518, 1519, + 738, 739, 740, 741, 742, 744, 743, 656, + 743, 637, 637, 637, 744, 637, 644, 1517, + 1518, 1519, 746, 656, 0, 748, 749, 764, + 803, 811, 824, 1520, 748, 750, 751, 1520, + 752, 1520, 753, 754, 755, 756, 757, 758, + 759, 760, 761, 762, 763, 1520, 765, 794, + 766, 772, 767, 768, 769, 770, 771, 1520, + 773, 774, 775, 776, 785, 777, 778, 779, + 780, 781, 782, 783, 784, 1520, 786, 787, + 788, 789, 790, 791, 792, 793, 1520, 795, + 800, 796, 797, 798, 799, 1520, 801, 802, + 1520, 804, 805, 806, 807, 808, 809, 810, + 1520, 812, 813, 814, 815, 816, 817, 818, + 821, 819, 820, 1520, 822, 823, 1520, 825, + 826, 827, 830, 828, 829, 1520, 831, 832, + 833, 845, 848, 1520, 834, 835, 836, 837, + 838, 839, 840, 841, 842, 843, 844, 1520, + 846, 847, 1520, 849, 850, 1520, 0, 852, + 853, 859, 876, 879, 885, 889, 1521, 852, + 854, 855, 856, 857, 858, 1521, 860, 866, + 872, 861, 862, 863, 864, 865, 1521, 867, + 869, 868, 1521, 870, 871, 1521, 873, 874, + 875, 1521, 877, 878, 1521, 880, 882, 881, + 1521, 883, 884, 1521, 886, 887, 888, 1521, + 890, 891, 1521, 0, 893, 894, 1522, 893, + 895, 896, 897, 898, 899, 1522, 0, 901, + 1523, 901, 903, 1524, 905, 906, 906, 906, + 906, 935, 906, 906, 906, 907, 906, 935, + 908, 908, 908, 908, 934, 0, 908, 908, + 908, 909, 908, 934, 910, 910, 910, 909, + 910, 933, 910, 910, 910, 911, 910, 933, + 0, 912, 912, 912, 911, 930, 930, 930, + 930, 930, 912, 929, 912, 912, 912, 913, + 912, 929, 914, 914, 914, 913, 926, 926, + 926, 926, 926, 914, 925, 914, 914, 914, + 915, 914, 925, 916, 916, 916, 915, 922, + 922, 922, 922, 922, 916, 921, 916, 916, + 916, 917, 916, 921, 1525, 917, 918, 918, + 918, 918, 918, 919, 919, 920, 920, 920, + 920, 920, 1525, 919, 921, 916, 923, 923, + 924, 924, 924, 924, 924, 916, 916, 916, + 923, 916, 921, 925, 914, 927, 927, 928, + 928, 928, 928, 928, 914, 914, 914, 927, + 914, 925, 929, 912, 931, 931, 932, 932, + 932, 932, 932, 912, 912, 912, 931, 912, + 929, 933, 910, 934, 908, 935, 906, 937, + 938, 938, 938, 938, 940, 939, 938, 938, + 938, 938, 940, 1526, 940, 938, 942, 943, + 943, 943, 943, 945, 943, 943, 943, 944, + 943, 945, 1527, 945, 943, 947, 948, 948, + 948, 947, 948, 950, 948, 948, 948, 949, + 948, 950, 1528, 950, 948, 952, 0, 953, + 953, 953, 953, 954, 1529, 1530, 1531, 952, + 953, 953, 953, 953, 954, 1529, 1530, 1531, + 954, 953, 956, 1532, 956, 0, 958, 959, + 959, 959, 958, 959, 1011, 959, 959, 959, + 960, 964, 1006, 959, 1011, 961, 961, 961, + 960, 961, 1010, 961, 961, 961, 962, 961, + 1010, 963, 963, 963, 1008, 962, 963, 1007, + 963, 963, 963, 963, 1007, 965, 965, 965, + 965, 1005, 966, 967, 967, 967, 966, 967, + 1004, 967, 967, 967, 968, 972, 999, 967, + 1004, 969, 969, 969, 968, 969, 1003, 969, + 969, 969, 970, 969, 1003, 971, 971, 971, + 1001, 970, 971, 1000, 971, 971, 971, 971, + 1000, 973, 973, 973, 973, 998, 974, 975, + 975, 976, 976, 976, 995, 975, 997, 976, + 994, 1533, 1540, 1541, 976, 976, 976, 977, + 976, 994, 1533, 1540, 1541, 978, 978, 978, + 991, 977, 993, 978, 990, 1533, 1538, 1539, + 978, 978, 978, 979, 978, 990, 1538, 1539, + 980, 980, 980, 987, 979, 989, 980, 986, + 1533, 1536, 1537, 980, 980, 980, 981, 980, + 986, 1536, 1537, 982, 982, 982, 984, 981, + 982, 983, 1533, 1534, 1535, 982, 982, 982, + 982, 983, 1534, 1535, 983, 982, 982, 982, + 982, 985, 982, 983, 1533, 1534, 1535, 985, + 986, 980, 980, 980, 980, 988, 989, 980, + 986, 1533, 1536, 1537, 988, 990, 978, 978, + 978, 978, 992, 993, 978, 990, 1533, 1538, + 1539, 992, 994, 976, 976, 976, 976, 996, + 997, 976, 994, 1533, 1540, 1541, 996, 998, + 973, 973, 973, 973, 973, 998, 1000, 971, + 971, 971, 971, 1002, 971, 1000, 1002, 1003, + 969, 1004, 967, 1005, 965, 965, 965, 965, + 965, 1005, 1007, 963, 963, 963, 963, 1009, + 963, 1007, 1009, 1010, 961, 1011, 959, 1013, + 1014, 1014, 1014, 1013, 1014, 1022, 1014, 1014, + 1014, 1015, 1014, 1022, 1016, 1016, 1016, 1015, + 1016, 1021, 1016, 1016, 1016, 1017, 1016, 1021, + 1018, 1018, 1018, 1017, 1018, 1020, 1018, 1018, + 1018, 1019, 1018, 1020, 1542, 1020, 1018, 1021, + 1016, 1022, 1014, 1024, 1025, 1025, 1025, 1024, + 1025, 1039, 1025, 1025, 1025, 1026, 1025, 1039, + 1027, 1027, 1027, 1026, 1027, 1038, 1028, 1027, + 1027, 1027, 1027, 1038, 1029, 1029, 1029, 1029, + 1037, 1030, 1029, 1029, 1029, 1029, 1037, 1031, + 1031, 1031, 1031, 1036, 1032, 1031, 1031, 1031, + 1031, 1036, 1033, 1033, 1033, 1033, 1035, 1033, + 1033, 1033, 1034, 1033, 1035, 1543, 1035, 1033, + 1036, 1031, 1037, 1029, 1038, 1027, 1039, 1025, + 1041, 1042, 1042, 1042, 1042, 1050, 1043, 1044, + 1044, 1044, 1043, 1044, 1049, 1044, 1044, 1044, + 1045, 1044, 1049, 1046, 1046, 1046, 1046, 1048, + 1047, 1544, 1048, 1046, 1049, 1044, 1050, 1042, + 0, 1051, 1052, 1051, 1051, 1053, 1059, 1051, + 1058, 1545, 1546, 1547, 1053, 1059, 1054, 0, + 1055, 1055, 1056, 1057, 1051, 1051, 1051, 1057, + 1051, 1058, 1545, 1546, 1547, 1058, 1051, 1060, + 1061, 1061, 1056, 1063, 1064, 1064, 1064, 1063, + 1064, 1074, 1064, 1064, 1064, 1065, 1064, 1074, + 1066, 1066, 1066, 1066, 1073, 1067, 1068, 1068, + 1068, 1067, 1068, 1072, 0, 1068, 1068, 1068, + 1069, 1068, 1072, 1070, 1070, 1070, 1070, 1070, + 1071, 1548, 1549, 1550, 1071, 1070, 1072, 1068, + 1073, 1066, 1074, 1064, 1076, 1077, 1077, 1077, + 1076, 1077, 1084, 1077, 1077, 1077, 1078, 1077, + 1084, 1079, 1079, 1079, 1078, 1079, 1083, 1079, + 1079, 1079, 1080, 1079, 1083, 1081, 1081, 1081, + 1081, 1081, 1082, 1551, 1552, 1553, 1082, 1081, + 1083, 1079, 1084, 1077, 1086, 1087, 1087, 1087, + 1086, 1087, 1123, 0, 1087, 1087, 1087, 1088, + 1102, 1109, 1116, 1087, 1123, 1089, 1089, 1089, + 1089, 1101, 0, 1090, 1091, 1091, 1091, 1090, + 1091, 1100, 1091, 1091, 1091, 1092, 1091, 1100, + 0, 1093, 1093, 1093, 1096, 1096, 1096, 1098, + 1098, 1098, 1554, 1093, 1095, 1557, 1558, 1096, + 1097, 1555, 1556, 1098, 1099, 1559, 1560, 0, + 1094, 1095, 1093, 1097, 1096, 1099, 1098, 1100, + 1091, 1101, 1089, 1103, 1103, 1103, 1103, 1108, + 1104, 1105, 1105, 1105, 1104, 1105, 1107, 0, + 1105, 1105, 1105, 1106, 1105, 1107, 0, 1106, + 1093, 1093, 1093, 1096, 1096, 1096, 1098, 1098, + 1098, 1554, 1093, 1095, 1557, 1558, 1096, 1097, + 1555, 1556, 1098, 1099, 1559, 1560, 1107, 1105, + 1108, 1103, 1110, 1110, 1110, 1110, 1115, 1111, + 1112, 1112, 1112, 1111, 1112, 1114, 1112, 1112, + 1112, 1113, 1112, 1114, 1113, 1093, 1093, 1093, + 1096, 1096, 1096, 1098, 1098, 1098, 1554, 1093, + 1095, 1557, 1558, 1096, 1097, 1555, 1556, 1098, + 1099, 1559, 1560, 1114, 1112, 1115, 1110, 1117, + 1117, 1117, 1117, 1122, 1118, 1119, 1119, 1119, + 1118, 1119, 1121, 1119, 1119, 1119, 1120, 1119, + 1121, 1093, 1093, 1093, 1096, 1096, 1096, 1098, + 1098, 1098, 1554, 1093, 1095, 1557, 1558, 1096, + 1097, 1555, 1556, 1098, 1099, 1559, 1560, 1121, + 1119, 1122, 1117, 1123, 1087, 0, 1125, 1159, + 1180, 1197, 1204, 1213, 1221, 1225, 1233, 1239, + 1255, 1265, 1268, 1275, 1294, 1304, 1307, 1313, + 1126, 1126, 1126, 1150, 1153, 1157, 1126, 1149, + 1126, 1126, 1126, 1127, 1126, 1149, 1128, 1128, + 1128, 1128, 1148, 1129, 1130, 1130, 1130, 1129, + 1130, 1147, 1130, 1130, 1130, 1131, 1130, 1147, + 1132, 1132, 1132, 1131, 1132, 1146, 0, 1132, + 1132, 1132, 1133, 1132, 1146, 1134, 1134, 1134, + 1133, 1134, 1145, 1134, 1134, 1134, 1135, 1134, + 1145, 1136, 1136, 1136, 1135, 1136, 1144, 1136, + 1136, 1136, 1137, 1136, 1144, 1138, 1138, 1138, + 1137, 1138, 1143, 1138, 1138, 1138, 1139, 1138, + 1143, 1140, 1140, 1140, 1140, 1142, 1140, 1140, + 1140, 1141, 1140, 1142, 1561, 1142, 1140, 1143, + 1138, 1144, 1136, 1145, 1134, 1146, 1132, 1147, + 1130, 1148, 1128, 1149, 1126, 1151, 1152, 1126, + 1126, 1126, 1126, 1149, 1154, 1155, 1156, 1126, + 1126, 1126, 1126, 1149, 1158, 1126, 1126, 1126, + 1126, 1149, 1160, 1162, 1169, 1172, 1176, 1161, + 1126, 1126, 1126, 1126, 1149, 1163, 1168, 1164, + 1165, 1166, 1167, 1126, 1126, 1126, 1126, 1149, + 1126, 1126, 1126, 1126, 1149, 1170, 1171, 1126, + 1126, 1126, 1126, 1149, 1173, 1174, 1175, 1126, + 1126, 1126, 1126, 1149, 1177, 1178, 1179, 1126, + 1126, 1126, 1126, 1149, 1181, 1185, 1193, 1182, + 1183, 1184, 1126, 1126, 1126, 1126, 1149, 1186, + 1189, 1187, 1188, 1126, 1126, 1126, 1126, 1149, + 1190, 1191, 1192, 1126, 1126, 1126, 1126, 1149, + 1126, 1126, 1126, 1194, 1126, 1149, 1195, 1196, + 1126, 1126, 1126, 1126, 1149, 1198, 1199, 1200, + 1202, 1201, 1126, 1126, 1126, 1126, 1149, 1203, + 1126, 1126, 1126, 1126, 1149, 1205, 1209, 1206, + 1207, 1208, 1126, 1126, 1126, 1126, 1149, 1210, + 1211, 1212, 1126, 1126, 1126, 1126, 1149, 1214, + 1215, 1216, 1217, 1218, 1219, 1220, 1126, 1126, + 1126, 1126, 1149, 1222, 1224, 1223, 1126, 1126, + 1126, 1126, 1149, 1126, 1126, 1126, 1126, 1149, + 1226, 1228, 1230, 1232, 1227, 1126, 1126, 1126, + 1126, 1149, 1229, 1126, 1126, 1126, 1126, 1149, + 1231, 1126, 1126, 1126, 1126, 1149, 1126, 1126, + 1126, 1126, 1149, 1234, 1238, 1235, 1236, 1237, + 1126, 1126, 1126, 1126, 1149, 1126, 1126, 1126, + 1126, 1149, 1240, 1244, 1246, 1241, 1242, 1243, + 1126, 1126, 1126, 1126, 1149, 1245, 1126, 1126, + 1126, 1126, 1149, 1126, 1126, 1126, 1247, 1126, + 1149, 1248, 1126, 1126, 1126, 1249, 1126, 1149, + 1126, 1126, 1126, 1250, 1126, 1149, 1251, 1252, + 1253, 1254, 1126, 1126, 1126, 1126, 1149, 1256, + 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, + 1126, 1126, 1126, 1126, 1149, 1266, 1267, 1126, + 1126, 1126, 1126, 1149, 1269, 1270, 1274, 1126, + 1126, 1126, 1126, 1149, 1271, 1272, 1273, 1126, + 1126, 1126, 1126, 1149, 1126, 1126, 1126, 1126, + 1149, 1276, 1281, 1283, 1285, 1287, 1291, 1277, + 1278, 1279, 1280, 1126, 1126, 1126, 1126, 1149, + 1282, 1126, 1126, 1126, 1126, 1149, 1284, 1126, + 1126, 1126, 1126, 1149, 1286, 1126, 1126, 1126, + 1126, 1149, 1288, 1289, 1290, 1126, 1126, 1126, + 1126, 1149, 1292, 1293, 1126, 1126, 1126, 1126, + 1149, 1295, 1298, 1300, 1296, 1297, 1126, 1126, + 1126, 1126, 1149, 1299, 1126, 1126, 1126, 1126, + 1149, 1301, 1302, 0, 1303, 1126, 1126, 1126, + 1303, 1126, 1149, 1305, 1306, 1126, 1126, 1126, + 1126, 1149, 1308, 1309, 1310, 1311, 1312, 1126, + 1126, 1126, 1126, 1149, 1314, 1315, 1316, 1317, + 1318, 1126, 1126, 1126, 1126, 1149, 1320, 1321, + 1562, 1323, 1324, 1324, 1324, 1323, 1324, 1332, + 1324, 1324, 1324, 1325, 1324, 1332, 1326, 1326, + 1326, 1325, 1326, 1331, 1326, 1326, 1326, 1327, + 1326, 1331, 1328, 1328, 1328, 1328, 1330, 1329, + 1563, 1330, 1328, 1331, 1326, 1332, 1324, 1334, + 1564, 1336, 1337, 1337, 1337, 1336, 1337, 1363, + 1337, 1337, 1337, 1338, 1337, 1363, 1339, 1339, + 1339, 1338, 1339, 1362, 1339, 1339, 1339, 1340, + 1339, 1362, 1341, 1341, 1341, 1340, 1341, 1361, + 1341, 1341, 1341, 1342, 1359, 1341, 1361, 1343, + 1343, 1343, 1343, 1358, 0, 1343, 1343, 1343, + 1344, 1343, 1358, 1345, 1346, 1356, 1347, 1348, + 1355, 1349, 1353, 1350, 1351, 1351, 1352, 1344, + 1565, 1354, 1357, 1358, 1343, 1360, 1359, 1361, + 1341, 1362, 1339, 1363, 1337, 1365, 1366, 1366, + 1366, 1365, 1366, 1376, 1366, 1366, 1366, 1367, + 1366, 1376, 1368, 1368, 1368, 1367, 1368, 1375, + 1368, 1368, 1368, 1369, 1368, 1375, 1370, 1370, + 1370, 1369, 1370, 1374, 1370, 1370, 1370, 1371, + 1372, 1370, 1374, 1566, 1373, 1372, 1374, 1370, + 1375, 1368, 1376, 1366, 1378, 1379, 1379, 1379, + 1378, 1379, 1389, 1379, 1379, 1379, 1380, 1379, + 1389, 1381, 1381, 1381, 1380, 1381, 1388, 1381, + 1381, 1381, 1382, 1381, 1388, 1383, 1383, 1383, + 1382, 1383, 1387, 1383, 1383, 1383, 1384, 1383, + 1387, 1385, 1385, 1385, 1385, 1385, 1386, 1567, + 1568, 1569, 1386, 1385, 1387, 1383, 1388, 1381, + 1389, 1379, 1391, 1392, 1392, 1392, 1391, 1392, + 1395, 1392, 1392, 1392, 1393, 1392, 1395, 1394, + 1393, 1570, 1395, 1392, 1397, 1398, 1398, 1398, + 1397, 1398, 1408, 1398, 1398, 1398, 1399, 1398, + 1408, 1400, 1400, 1400, 1399, 1400, 1407, 1400, + 1400, 1400, 1401, 1400, 1407, 1402, 1402, 1402, + 1401, 1402, 1406, 1402, 1402, 1402, 1403, 1402, + 1406, 1404, 1404, 1404, 1404, 1404, 1405, 1571, + 1572, 1573, 1405, 1404, 1406, 1402, 1407, 1400, + 1408, 1398, 1410, 1411, 1411, 1411, 1410, 1411, + 1413, 1411, 1411, 1411, 1412, 1411, 1413, 1574, + 1412, 1413, 1411, 1415, 1416, 1416, 1416, 1415, + 1416, 1426, 1416, 1416, 1416, 1417, 1416, 1426, + 1418, 1419, 1420, 0, 1421, 1422, 1423, 1424, + 1425, 0, 1575, 1426, 1416, 1428, 1429, 0, + 1430, 1431, 1432, 1576, 1434, 1435, 1436, 1437, + 1438, 1577, 1440, 1441, 1441, 1441, 1440, 1441, + 1446, 1441, 1441, 1441, 1442, 1441, 1446, 1443, + 1443, 1443, 1442, 1443, 1445, 1444, 1443, 1443, + 1443, 1443, 1445, 1578, 1445, 1443, 1446, 1441, + 1448, 1449, 1449, 1449, 1448, 1449, 1454, 1450, + 1449, 1449, 1449, 1449, 1454, 1451, 1451, 1451, + 1451, 1453, 1452, 1451, 1451, 1451, 1451, 1453, + 1579, 1453, 1451, 1454, 1449, 1456, 1457, 1457, + 1457, 1456, 1457, 1460, 1457, 1457, 1457, 1458, + 1457, 1460, 1459, 1580, 1460, 1457, 1462, 1478, + 1463, 1474, 1464, 1465, 1465, 1465, 1465, 1473, + 1465, 1465, 1465, 1466, 1465, 1473, 1467, 1467, + 1467, 1467, 1472, 1468, 1469, 1469, 1469, 1468, + 1469, 1471, 1469, 1469, 1469, 1470, 1469, 1471, + 1581, 1471, 1469, 1472, 1467, 1473, 1465, 1475, + 1476, 1477, 1465, 1465, 1465, 1465, 1473, 1479, + 1480, 1481, 1482, 1465, 1465, 1465, 1482, 1465, + 1473, 0, 1, 193, 1, 1, 201, 1483, + 192, 1488, 314, 14, 238, 14, 14, 248, + 271, 1491, 286, 1489, 287, 1492, 289, 0, + 183, 183, 183, 211, 297, 298, 299, 300, + 316, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 1486, 315, 0, + 204, 211, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 0, 1, 193, 1, 1, + 201, 1483, 192, 1488, 314, 1, 1, 1488, + 314, 215, 215, 215, 1488, 216, 219, 219, + 219, 237, 275, 0, 249, 252, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 1488 }; static const short _zone_scanner_trans_actions[] = { - 2742, 0, 5, 7, 637, 808, 808, 808, - 808, 808, 808, 808, 808, 808, 808, 808, - 808, 808, 808, 808, 808, 808, 808, 3, - 9, 3, 9, 2918, 103, 826, 829, 45, - 59, 57, 55, 0, 61, 823, 832, 419, + 2805, 0, 5, 7, 649, 820, 820, 820, + 820, 820, 820, 820, 820, 820, 820, 820, + 820, 820, 820, 820, 820, 820, 820, 3, + 9, 3, 9, 2981, 103, 838, 841, 45, + 59, 57, 55, 0, 61, 835, 844, 431, 0, 5, 7, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 97, 97, 97, 3, 9, 2293, - 2296, 3434, 3438, 0, 0, 0, 3430, 3442, - 3450, 5508, 5528, 413, 0, 411, 5, 7, - 417, 3, 9, 427, 454, 2278, 13, 475, - 478, 2586, 481, 15, 0, 5, 7, 2443, - 9, 11, 2558, 2287, 415, 11, 469, 13, - 436, 442, 451, 5503, 3410, 2538, 0, 5, - 7, 9, 3418, 2284, 454, 11, 2554, 0, - 4628, 5, 7, 2730, 3050, 3050, 3050, 3050, - 3050, 3050, 3050, 3050, 3050, 3050, 3050, 3050, - 3050, 3050, 3050, 3050, 3050, 3050, 3, 9, - 2281, 2284, 427, 454, 6199, 835, 3054, 3058, - 4873, 3062, 2290, 0, 5, 7, 430, 9, - 0, 0, 0, 0, 0, 0, 2431, 4338, - 4342, 4334, 4346, 4350, 5973, 5978, 466, 2542, - 2546, 2550, 11, 457, 460, 463, 0, 0, - 0, 0, 0, 0, 2395, 4098, 4102, 4094, - 4106, 4110, 5853, 5858, 2392, 4078, 4082, 4074, - 4086, 4090, 5843, 5848, 0, 0, 2350, 3798, - 3802, 3794, 3806, 3810, 5703, 5708, 0, 0, - 0, 2302, 3478, 3482, 3474, 3486, 3490, 5543, - 5548, 0, 0, 0, 2401, 4138, 4142, 4134, - 4146, 4150, 5873, 5878, 0, 0, 0, 0, - 0, 0, 2377, 3978, 3982, 3974, 3986, 3990, - 5793, 5798, 0, 0, 0, 0, 2353, 3818, - 3822, 3814, 3826, 3830, 5713, 5718, 0, 0, - 0, 2374, 3958, 3962, 3954, 3966, 3970, 5783, - 5788, 2359, 3858, 3862, 3854, 3866, 3870, 5733, - 5738, 0, 0, 0, 0, 0, 2422, 4278, - 4282, 4274, 4286, 4290, 5943, 5948, 0, 2425, - 4298, 4302, 4294, 4306, 4310, 5953, 5958, 0, - 0, 0, 0, 0, 2311, 3538, 3542, 3534, - 3546, 3550, 5573, 5578, 0, 0, 0, 2437, - 4378, 4382, 4374, 4386, 4390, 5993, 5998, 0, - 0, 101, 814, 817, 811, 820, 0, 5, - 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 9, 0, 0, 0, - 0, 0, 0, 2365, 3898, 3902, 3894, 3906, - 3910, 5753, 5758, 0, 0, 0, 2332, 3678, - 3682, 3674, 3686, 3690, 5643, 5648, 2347, 3778, - 3782, 3774, 3786, 3790, 5693, 5698, 0, 0, - 0, 0, 0, 2413, 4218, 4222, 4214, 4226, - 4230, 5913, 5918, 0, 2416, 4238, 4242, 4234, - 4246, 4250, 5923, 5928, 0, 2338, 3718, 3722, - 3714, 3726, 3730, 5663, 5668, 2419, 4258, 4262, - 4254, 4266, 4270, 5933, 5938, 0, 0, 0, - 0, 0, 2314, 3558, 3562, 3554, 3566, 3570, - 5583, 5588, 2317, 3578, 3582, 3574, 3586, 3590, - 5593, 5598, 0, 0, 0, 0, 0, 0, - 2344, 3758, 3762, 3754, 3766, 3770, 5683, 5688, - 0, 2410, 4198, 4202, 4194, 4206, 4210, 5903, - 5908, 2299, 3458, 3462, 0, 3454, 3466, 3470, - 5533, 5538, 0, 2371, 3938, 3942, 0, 3934, - 3946, 3950, 5773, 5778, 2380, 3998, 4002, 0, - 3994, 4006, 4010, 5803, 5808, 0, 0, 0, - 0, 2383, 4018, 4022, 4014, 4026, 4030, 5813, - 5818, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2398, 4118, 4122, 4114, 4126, 4130, - 5863, 5868, 0, 0, 2308, 3518, 3522, 3514, - 3526, 3530, 5563, 5568, 0, 0, 0, 2323, - 3618, 3622, 3614, 3626, 3630, 5613, 5618, 0, - 0, 0, 2368, 3918, 3922, 3914, 3926, 3930, - 5763, 5768, 2329, 3658, 3662, 3654, 3666, 3670, - 5633, 5638, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2389, 4058, 4062, 4054, - 4066, 4070, 5833, 5838, 0, 2305, 3498, 3502, - 3494, 3506, 3510, 5553, 5558, 0, 2407, 4178, - 4182, 4174, 4186, 4190, 5893, 5898, 0, 2341, - 3738, 3742, 3734, 3746, 3750, 5673, 5678, 0, - 0, 0, 2362, 3878, 3882, 3874, 3886, 3890, - 5743, 5748, 0, 0, 2434, 4358, 4362, 4354, - 4366, 4370, 5983, 5988, 0, 0, 0, 0, - 0, 2386, 4038, 4042, 4034, 4046, 4050, 5823, - 5828, 0, 2320, 3598, 3602, 3594, 3606, 3610, - 5603, 5608, 0, 0, 655, 637, 2746, 727, - 2894, 2898, 45, 2890, 2902, 2906, 4813, 4818, - 0, 0, 2428, 4318, 4322, 4314, 4326, 4330, - 5963, 5968, 0, 0, 0, 0, 0, 2440, - 4398, 4402, 4394, 4406, 4410, 6003, 6008, 0, - 0, 0, 0, 0, 2404, 4158, 4162, 4154, - 4166, 4170, 5883, 5888, 11, 469, 0, 5, - 7, 3, 9, 0, 101, 814, 817, 811, - 820, 0, 5, 7, 637, 99, 99, 99, + 97, 97, 97, 97, 97, 3, 9, 2353, + 2356, 3501, 3505, 0, 0, 0, 3497, 3509, + 3517, 5605, 5625, 425, 0, 423, 5, 7, + 429, 3, 9, 439, 466, 2338, 13, 487, + 490, 2649, 493, 15, 0, 5, 7, 2506, + 9, 11, 2621, 2347, 427, 11, 481, 13, + 448, 454, 463, 5600, 3477, 2601, 0, 5, + 7, 9, 3485, 2344, 466, 11, 2617, 0, + 4715, 5, 7, 2793, 3113, 3113, 3113, 3113, + 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, + 3113, 3113, 3113, 3113, 3113, 3113, 3, 9, + 2341, 2344, 439, 466, 6306, 847, 3117, 3121, + 4960, 3125, 2350, 0, 5, 7, 442, 9, + 0, 0, 0, 0, 0, 0, 2491, 4405, + 4409, 4401, 4413, 4417, 6070, 6075, 478, 2605, + 2609, 2613, 11, 469, 472, 475, 0, 0, + 0, 0, 0, 0, 2455, 4165, 4169, 4161, + 4173, 4177, 5950, 5955, 2452, 4145, 4149, 4141, + 4153, 4157, 5940, 5945, 0, 0, 2410, 3865, + 3869, 3861, 3873, 3877, 5800, 5805, 0, 0, + 0, 2362, 3545, 3549, 3541, 3553, 3557, 5640, + 5645, 0, 0, 0, 2461, 4205, 4209, 4201, + 4213, 4217, 5970, 5975, 0, 0, 0, 0, + 0, 0, 2437, 4045, 4049, 4041, 4053, 4057, + 5890, 5895, 0, 0, 0, 0, 2413, 3885, + 3889, 3881, 3893, 3897, 5810, 5815, 0, 0, + 0, 2434, 4025, 4029, 4021, 4033, 4037, 5880, + 5885, 2419, 3925, 3929, 0, 3921, 3933, 3937, + 5830, 5835, 0, 0, 2500, 4465, 4469, 4461, + 4473, 4477, 6100, 6105, 0, 0, 0, 0, + 0, 2482, 4345, 4349, 4341, 4353, 4357, 6040, + 6045, 0, 2485, 4365, 4369, 4361, 4373, 4377, + 6050, 6055, 0, 0, 0, 0, 0, 2371, + 3605, 3609, 3601, 3613, 3617, 5670, 5675, 0, + 0, 0, 2497, 4445, 4449, 4441, 4453, 4457, + 6090, 6095, 0, 0, 101, 826, 829, 823, + 832, 0, 5, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 9, + 0, 0, 0, 0, 0, 0, 2425, 3965, + 3969, 3961, 3973, 3977, 5850, 5855, 0, 0, + 0, 2392, 3745, 3749, 3741, 3753, 3757, 5740, + 5745, 2407, 3845, 3849, 3841, 3853, 3857, 5790, + 5795, 0, 0, 0, 0, 0, 2473, 4285, + 4289, 4281, 4293, 4297, 6010, 6015, 0, 2476, + 4305, 4309, 4301, 4313, 4317, 6020, 6025, 0, + 2398, 3785, 3789, 3781, 3793, 3797, 5760, 5765, + 2479, 4325, 4329, 4321, 4333, 4337, 6030, 6035, + 0, 0, 0, 0, 0, 2374, 3625, 3629, + 3621, 3633, 3637, 5680, 5685, 2377, 3645, 3649, + 3641, 3653, 3657, 5690, 5695, 0, 0, 0, + 0, 0, 0, 2404, 3825, 3829, 3821, 3833, + 3837, 5780, 5785, 0, 2470, 4265, 4269, 4261, + 4273, 4277, 6000, 6005, 2359, 3525, 3529, 0, + 3521, 3533, 3537, 5630, 5635, 0, 2431, 4005, + 4009, 0, 4001, 4013, 4017, 5870, 5875, 2440, + 4065, 4069, 0, 4061, 4073, 4077, 5900, 5905, + 0, 0, 0, 0, 2443, 4085, 4089, 4081, + 4093, 4097, 5910, 5915, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2458, 4185, 4189, + 4181, 4193, 4197, 5960, 5965, 0, 0, 2368, + 3585, 3589, 3581, 3593, 3597, 5660, 5665, 0, + 0, 0, 2383, 3685, 3689, 3681, 3693, 3697, + 5710, 5715, 0, 0, 0, 2428, 3985, 3989, + 3981, 3993, 3997, 5860, 5865, 2389, 3725, 3729, + 3721, 3733, 3737, 5730, 5735, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2449, + 4125, 4129, 4121, 4133, 4137, 5930, 5935, 0, + 2365, 3565, 3569, 3561, 3573, 3577, 5650, 5655, + 0, 2467, 4245, 4249, 4241, 4253, 4257, 5990, + 5995, 0, 2401, 3805, 3809, 3801, 3813, 3817, + 5770, 5775, 0, 0, 0, 2422, 3945, 3949, + 3941, 3953, 3957, 5840, 5845, 0, 0, 2494, + 4425, 4429, 4421, 4433, 4437, 6080, 6085, 0, + 0, 0, 0, 0, 2446, 4105, 4109, 4101, + 4113, 4117, 5920, 5925, 0, 2380, 3665, 3669, + 3661, 3673, 3677, 5700, 5705, 0, 0, 667, + 649, 2809, 739, 2957, 2961, 45, 2953, 2965, + 2969, 4900, 4905, 0, 0, 2488, 4385, 4389, + 4381, 4393, 4397, 6060, 6065, 0, 0, 0, + 0, 0, 2503, 4485, 4489, 4481, 4493, 4497, + 6110, 6115, 0, 0, 0, 0, 0, 2464, + 4225, 4229, 4221, 4233, 4237, 5980, 5985, 11, + 481, 0, 5, 7, 3, 9, 0, 101, + 826, 829, 823, 832, 0, 5, 7, 649, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 3, - 9, 103, 826, 829, 45, 59, 57, 55, - 0, 61, 823, 832, 2922, 45, 59, 57, - 55, 0, 61, 748, 2962, 2966, 4828, 2958, - 2970, 11, 469, 11, 469, 95, 91, 91, - 91, 0, 0, 0, 0, 0, 0, 89, - 41, 39, 583, 586, 580, 589, 0, 5, - 7, 3, 9, 11, 0, 469, 4613, 595, - 2658, 2666, 2650, 2674, 0, 5, 7, 3, - 9, 11, 469, 2922, 45, 59, 57, 55, - 0, 61, 748, 2962, 2966, 4828, 2958, 2970, - 11, 469, 2718, 2686, 4568, 4583, 4553, 4598, - 6067, 6091, 0, 5, 7, 3, 9, 427, - 454, 3426, 3446, 5513, 5518, 6289, 5523, 6475, - 6301, 6468, 6295, 0, 5, 7, 430, 2490, - 0, 5, 7, 430, 9, 11, 2554, 484, - 2562, 2570, 4463, 2578, 11, 433, 439, 448, - 0, 5, 7, 9, 454, 11, 2554, 3402, - 0, 0, 0, 0, 0, 83, 0, 0, - 79, 2710, 592, 2654, 2662, 4543, 2670, 6349, - 2678, 4558, 4573, 6061, 4588, 0, 5, 7, - 430, 9, 11, 2554, 4618, 4603, 6073, 6079, - 6335, 6085, 6498, 6342, 0, 5, 7, 430, - 2490, 2682, 604, 4563, 4578, 4548, 4593, 13, - 436, 442, 2462, 451, 466, 4438, 2542, 2546, - 2550, 11, 457, 460, 463, 466, 2542, 2546, - 2550, 11, 457, 460, 463, 0, 0, 2335, - 3698, 3702, 3694, 3706, 3710, 5653, 5658, 0, - 0, 0, 2326, 3638, 3642, 3634, 3646, 3650, - 5623, 5628, 0, 2356, 3838, 3842, 3834, 3846, - 3850, 5723, 5728, 11, 469, 484, 2562, 2570, - 4473, 11, 433, 439, 4414, 466, 2542, 2546, - 11, 457, 460, 466, 2542, 2546, 11, 457, - 460, 11, 469, 13, 436, 442, 451, 2538, - 466, 2542, 2546, 11, 457, 460, 607, 11, - 469, 11, 469, 11, 2554, 0, 502, 3, - 7, 496, 2590, 17, 499, 31, 2614, 29, - 0, 535, 2594, 21, 23, 0, 526, 505, - 19, 508, 517, 25, 25, 4483, 511, 514, - 27, 532, 769, 67, 0, 0, 778, 781, - 2986, 73, 2982, 772, 71, 71, 2974, 2978, - 4833, 775, 67, 67, 0, 0, 781, 781, - 73, 73, 69, 1, 772, 71, 71, 2978, - 2978, 775, 775, 77, 0, 5, 7, 3, - 9, 640, 637, 4823, 13, 475, 478, 45, - 59, 57, 55, 0, 61, 4468, 481, 490, - 0, 5, 7, 2994, 9, 11, 4448, 2922, - 2910, 45, 59, 57, 55, 0, 61, 742, - 2926, 2930, 4828, 6205, 2934, 11, 469, 81, - 0, 5, 7, 3, 9, 4838, 790, 2998, - 21, 23, 0, 493, 529, 2598, 2602, 505, - 19, 6013, 2606, 0, 5, 7, 3002, 9, - 11, 4453, 508, 520, 25, 25, 511, 514, - 27, 11, 469, 0, 5, 7, 3, 9, - 793, 85, 799, 796, 3006, 3010, 6211, 3018, - 3014, 805, 0, 5, 7, 4843, 802, 3022, - 3026, 9, 9, 87, 21, 23, 0, 2610, - 4488, 4493, 505, 19, 6307, 4498, 0, 5, - 7, 11, 4458, 508, 523, 25, 25, 511, - 514, 27, 11, 4443, 0, 5, 7, 3, - 9, 11, 469, 11, 469, 127, 119, 121, - 123, 0, 125, 0, 5, 7, 3, 9, - 1, 424, 445, 11, 469, 369, 367, 2155, - 2158, 2152, 2161, 3362, 5468, 5473, 0, 5, - 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 9, 2164, 2478, 2526, - 269, 1567, 1570, 0, 0, 0, 1564, 1573, - 3166, 4978, 4983, 0, 0, 295, 1723, 1726, - 1720, 1729, 3218, 5108, 5113, 11, 469, 0, - 0, 0, 0, 0, 0, 359, 2107, 2110, - 2104, 2113, 3346, 5428, 5433, 0, 0, 0, - 0, 0, 0, 335, 1963, 1966, 1960, 1969, - 3298, 5308, 5313, 333, 1951, 1954, 1948, 1957, - 3294, 5298, 5303, 0, 0, 305, 1783, 1786, - 1780, 1789, 3238, 5158, 5163, 0, 0, 0, - 273, 1591, 1594, 1588, 1597, 3174, 4998, 5003, - 0, 0, 0, 339, 1987, 1990, 1984, 1993, - 3306, 5328, 5333, 0, 0, 0, 0, 0, - 0, 323, 1891, 1894, 1888, 1897, 3274, 5248, - 5253, 0, 0, 0, 0, 307, 1795, 1798, - 1792, 1801, 3242, 5168, 5173, 0, 0, 0, - 321, 1879, 1882, 1876, 1885, 3270, 5238, 5243, - 311, 1819, 1822, 1816, 1825, 3250, 5188, 5193, - 0, 0, 0, 0, 0, 353, 2071, 2074, - 2068, 2077, 3334, 5398, 5403, 0, 355, 2083, - 2086, 2080, 2089, 3338, 5408, 5413, 0, 0, - 0, 0, 0, 279, 1627, 1630, 1624, 1633, - 3186, 5028, 5033, 0, 0, 0, 363, 2131, - 2134, 2128, 2137, 3354, 5448, 5453, 0, 0, - 0, 0, 0, 0, 0, 315, 1843, 1846, - 1840, 1849, 3258, 5208, 5213, 0, 0, 0, - 293, 1711, 1714, 1708, 1717, 3214, 5098, 5103, - 303, 1771, 1774, 1768, 1777, 3234, 5148, 5153, - 0, 0, 0, 0, 0, 347, 2035, 2038, - 2032, 2041, 3322, 5368, 5373, 0, 349, 2047, - 2050, 2044, 2053, 3326, 5378, 5383, 0, 297, - 1735, 1738, 1732, 1741, 3222, 5118, 5123, 351, - 2059, 2062, 2056, 2065, 3330, 5388, 5393, 0, - 0, 0, 0, 0, 281, 1639, 1642, 1636, - 1645, 3190, 5038, 5043, 283, 1651, 1654, 1648, - 1657, 3194, 5048, 5053, 0, 0, 0, 0, - 0, 0, 301, 1759, 1762, 1756, 1765, 3230, - 5138, 5143, 0, 345, 2023, 2026, 2020, 2029, - 3318, 5358, 5363, 271, 1579, 1582, 0, 1576, - 1585, 3170, 4988, 4993, 0, 319, 1867, 1870, - 0, 1864, 1873, 3266, 5228, 5233, 325, 1903, - 1906, 0, 1900, 1909, 3278, 5258, 5263, 0, - 0, 0, 0, 327, 1915, 1918, 1912, 1921, - 3282, 5268, 5273, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 337, 1975, 1978, 1972, - 1981, 3302, 5318, 5323, 0, 0, 277, 1615, - 1618, 1612, 1621, 3182, 5018, 5023, 0, 0, - 0, 287, 1675, 1678, 1672, 1681, 3202, 5068, - 5073, 0, 0, 0, 317, 1855, 1858, 1852, - 1861, 3262, 5218, 5223, 291, 1699, 1702, 1696, - 1705, 3210, 5088, 5093, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 331, 1939, - 1942, 1936, 1945, 3290, 5288, 5293, 0, 275, - 1603, 1606, 1600, 1609, 3178, 5008, 5013, 0, - 343, 2011, 2014, 2008, 2017, 3314, 5348, 5353, - 0, 299, 1747, 1750, 1744, 1753, 3226, 5128, - 5133, 0, 0, 0, 313, 1831, 1834, 1828, - 1837, 3254, 5198, 5203, 0, 0, 361, 2119, - 2122, 2116, 2125, 3350, 5438, 5443, 0, 0, - 0, 0, 0, 329, 1927, 1930, 1924, 1933, - 3286, 5278, 5283, 0, 285, 1663, 1666, 1660, - 1669, 3198, 5058, 5063, 0, 0, 637, 267, - 1555, 1558, 45, 1552, 1561, 3162, 4968, 4973, - 0, 0, 357, 2095, 2098, 2092, 2101, 3342, - 5418, 5423, 0, 0, 0, 0, 0, 365, - 2143, 2146, 2140, 2149, 3358, 5458, 5463, 0, - 0, 0, 0, 0, 341, 1999, 2002, 1996, - 2005, 3310, 5338, 5343, 0, 0, 0, 289, - 1687, 1690, 1684, 1693, 3206, 5078, 5083, 0, - 309, 1807, 1810, 1804, 1813, 3246, 5178, 5183, - 383, 0, 5, 7, 3, 9, 643, 637, - 53, 733, 736, 45, 730, 739, 3142, 0, - 5, 7, 115, 3, 9, 117, 0, 5, - 7, 3, 9, 871, 2474, 2522, 11, 469, - 11, 469, 11, 469, 0, 5, 7, 3, - 9, 637, 637, 421, 2450, 2454, 45, 1, - 2446, 2458, 0, 5, 7, 115, 3, 9, - 117, 0, 5, 7, 3, 9, 871, 2474, - 2522, 11, 469, 11, 469, 53, 733, 736, - 730, 739, 11, 469, 393, 399, 399, 399, - 399, 399, 399, 399, 399, 0, 0, 0, - 925, 0, 0, 0, 0, 0, 0, 943, - 0, 0, 937, 0, 0, 0, 0, 0, - 0, 0, 0, 934, 0, 0, 0, 0, - 940, 0, 0, 649, 637, 691, 45, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 928, 0, 0, - 0, 0, 946, 0, 0, 0, 931, 391, - 389, 2254, 2257, 2251, 2260, 3390, 5478, 5483, - 0, 5, 7, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 3, 9, 2263, 2486, - 2534, 0, 0, 0, 157, 5498, 5498, 4513, - 6025, 6031, 6019, 6037, 6314, 6482, 6490, 11, - 469, 0, 0, 0, 0, 0, 0, 167, - 565, 565, 571, 2634, 2638, 2630, 2642, 4518, - 6043, 6049, 565, 37, 397, 2269, 2272, 2266, - 2275, 3394, 5488, 5493, 0, 0, 163, 0, - 568, 568, 121, 123, 0, 125, 0, 119, - 121, 123, 0, 125, 0, 119, 0, 0, - 0, 0, 0, 0, 0, 0, 161, 841, - 0, 2626, 2626, 3094, 847, 105, 838, 4893, - 6229, 6235, 847, 105, 6223, 6241, 6426, 6506, - 6514, 838, 0, 0, 0, 0, 165, 0, - 2626, 2626, 3118, 850, 105, 838, 4908, 6253, - 6259, 850, 105, 6247, 6265, 6433, 6522, 6530, - 838, 0, 0, 646, 637, 2870, 4793, 4798, - 45, 49, 4788, 4803, 6181, 6412, 6419, 0, - 0, 0, 0, 0, 0, 0, 0, 155, - 0, 3398, 3398, 574, 0, 401, 2646, 4528, - 4533, 0, 4523, 4538, 6055, 6321, 6328, 401, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3150, 4928, - 4933, 4923, 4938, 6271, 6440, 6447, 0, 0, - 0, 0, 3154, 4953, 4958, 4948, 4963, 6277, - 6454, 6461, 0, 0, 0, 159, 0, 4943, - 4943, 49, 45, 709, 2878, 2882, 45, 2874, - 2886, 4808, 6187, 6193, 5498, 2622, 403, 637, - 0, 0, 0, 0, 0, 676, 45, 0, - 0, 880, 0, 883, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 889, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 901, 0, 0, 0, 0, 0, 0, + 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 3, 9, 103, 838, 841, 45, + 59, 57, 55, 0, 61, 835, 844, 2985, + 45, 59, 57, 55, 0, 61, 760, 3025, + 3029, 4915, 3021, 3033, 11, 481, 11, 481, + 95, 91, 91, 91, 0, 0, 0, 0, + 0, 0, 89, 41, 39, 595, 598, 592, + 601, 0, 5, 7, 3, 9, 11, 0, + 481, 4700, 607, 2721, 2729, 2713, 2737, 0, + 5, 7, 3, 9, 11, 481, 2985, 45, + 59, 57, 55, 0, 61, 760, 3025, 3029, + 4915, 3021, 3033, 11, 481, 2781, 2749, 4655, + 4670, 4640, 4685, 6174, 6198, 0, 5, 7, + 3, 9, 439, 466, 3493, 3513, 5610, 5615, + 6396, 5620, 6582, 6408, 6575, 6402, 0, 5, + 7, 442, 2553, 0, 5, 7, 442, 9, + 11, 2617, 496, 2625, 2633, 4550, 2641, 11, + 445, 451, 460, 0, 5, 7, 9, 466, + 11, 2617, 3469, 0, 0, 0, 0, 0, + 83, 0, 0, 79, 2773, 604, 2717, 2725, + 4630, 2733, 6456, 2741, 4645, 4660, 6168, 4675, + 0, 5, 7, 442, 9, 11, 2617, 4705, + 4690, 6180, 6186, 6442, 6192, 6605, 6449, 0, + 5, 7, 442, 2553, 2745, 616, 4650, 4665, + 4635, 4680, 13, 448, 454, 2525, 463, 478, + 4525, 2605, 2609, 2613, 11, 469, 472, 475, + 478, 2605, 2609, 2613, 11, 469, 472, 475, + 0, 0, 2395, 3765, 3769, 3761, 3773, 3777, + 5750, 5755, 0, 0, 0, 2386, 3705, 3709, + 3701, 3713, 3717, 5720, 5725, 0, 2416, 3905, + 3909, 3901, 3913, 3917, 5820, 5825, 11, 481, + 496, 2625, 2633, 4560, 11, 445, 451, 4501, + 478, 2605, 2609, 11, 469, 472, 478, 2605, + 2609, 11, 469, 472, 11, 481, 13, 448, + 454, 463, 2601, 478, 2605, 2609, 11, 469, + 472, 619, 11, 481, 11, 481, 11, 2617, + 0, 514, 3, 7, 508, 2653, 17, 511, + 31, 2677, 29, 0, 547, 2657, 21, 23, + 0, 538, 517, 19, 520, 529, 25, 25, + 4570, 523, 526, 27, 544, 781, 67, 0, + 0, 790, 793, 3049, 73, 3045, 784, 71, + 71, 3037, 3041, 4920, 787, 67, 67, 0, + 0, 793, 793, 73, 73, 69, 1, 784, + 71, 71, 3041, 3041, 787, 787, 77, 0, + 5, 7, 3, 9, 652, 649, 4910, 13, + 487, 490, 45, 59, 57, 55, 0, 61, + 4555, 493, 502, 0, 5, 7, 3057, 9, + 11, 4535, 2985, 2973, 45, 59, 57, 55, + 0, 61, 754, 2989, 2993, 4915, 6312, 2997, + 11, 481, 81, 0, 5, 7, 3, 9, + 4925, 802, 3061, 21, 23, 0, 505, 541, + 2661, 2665, 517, 19, 6120, 2669, 0, 5, + 7, 3065, 9, 11, 4540, 520, 532, 25, + 25, 523, 526, 27, 11, 481, 0, 5, + 7, 3, 9, 805, 85, 811, 808, 3069, + 3073, 6318, 3081, 3077, 817, 0, 5, 7, + 4930, 814, 3085, 3089, 9, 9, 87, 21, + 23, 0, 2673, 4575, 4580, 517, 19, 6414, + 4585, 0, 5, 7, 11, 4545, 520, 535, + 25, 25, 523, 526, 27, 11, 4530, 0, + 5, 7, 3, 9, 11, 481, 11, 481, + 127, 119, 121, 123, 0, 125, 0, 5, + 7, 3, 9, 1, 436, 457, 11, 481, + 377, 375, 2215, 2218, 2212, 2221, 3429, 5565, + 5570, 0, 5, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 9, + 2224, 2541, 2589, 275, 1615, 1618, 0, 0, + 0, 1612, 1621, 3229, 5065, 5070, 0, 0, + 301, 1771, 1774, 1768, 1777, 3281, 5195, 5200, + 11, 481, 0, 0, 0, 0, 0, 0, + 365, 2155, 2158, 2152, 2161, 3409, 5515, 5520, + 0, 0, 0, 0, 0, 0, 341, 2011, + 2014, 2008, 2017, 3361, 5395, 5400, 339, 1999, + 2002, 1996, 2005, 3357, 5385, 5390, 0, 0, + 311, 1831, 1834, 1828, 1837, 3301, 5245, 5250, + 0, 0, 0, 279, 1639, 1642, 1636, 1645, + 3237, 5085, 5090, 0, 0, 0, 345, 2035, + 2038, 2032, 2041, 3369, 5415, 5420, 0, 0, + 0, 0, 0, 0, 329, 1939, 1942, 1936, + 1945, 3337, 5335, 5340, 0, 0, 0, 0, + 313, 1843, 1846, 1840, 1849, 3305, 5255, 5260, + 0, 0, 0, 327, 1927, 1930, 1924, 1933, + 3333, 5325, 5330, 317, 1867, 1870, 0, 1864, + 1873, 3313, 5275, 5280, 0, 0, 371, 2191, + 2194, 2188, 2197, 3421, 5545, 5550, 0, 0, + 0, 0, 0, 359, 2119, 2122, 2116, 2125, + 3397, 5485, 5490, 0, 361, 2131, 2134, 2128, + 2137, 3401, 5495, 5500, 0, 0, 0, 0, + 0, 285, 1675, 1678, 1672, 1681, 3249, 5115, + 5120, 0, 0, 0, 369, 2179, 2182, 2176, + 2185, 3417, 5535, 5540, 0, 0, 0, 0, + 0, 0, 0, 321, 1891, 1894, 1888, 1897, + 3321, 5295, 5300, 0, 0, 0, 299, 1759, + 1762, 1756, 1765, 3277, 5185, 5190, 309, 1819, + 1822, 1816, 1825, 3297, 5235, 5240, 0, 0, + 0, 0, 0, 353, 2083, 2086, 2080, 2089, + 3385, 5455, 5460, 0, 355, 2095, 2098, 2092, + 2101, 3389, 5465, 5470, 0, 303, 1783, 1786, + 1780, 1789, 3285, 5205, 5210, 357, 2107, 2110, + 2104, 2113, 3393, 5475, 5480, 0, 0, 0, + 0, 0, 287, 1687, 1690, 1684, 1693, 3253, + 5125, 5130, 289, 1699, 1702, 1696, 1705, 3257, + 5135, 5140, 0, 0, 0, 0, 0, 0, + 307, 1807, 1810, 1804, 1813, 3293, 5225, 5230, + 0, 351, 2071, 2074, 2068, 2077, 3381, 5445, + 5450, 277, 1627, 1630, 0, 1624, 1633, 3233, + 5075, 5080, 0, 325, 1915, 1918, 0, 1912, + 1921, 3329, 5315, 5320, 331, 1951, 1954, 0, + 1948, 1957, 3341, 5345, 5350, 0, 0, 0, + 0, 333, 1963, 1966, 1960, 1969, 3345, 5355, + 5360, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 343, 2023, 2026, 2020, 2029, 3365, + 5405, 5410, 0, 0, 283, 1663, 1666, 1660, + 1669, 3245, 5105, 5110, 0, 0, 0, 293, + 1723, 1726, 1720, 1729, 3265, 5155, 5160, 0, + 0, 0, 323, 1903, 1906, 1900, 1909, 3325, + 5305, 5310, 297, 1747, 1750, 1744, 1753, 3273, + 5175, 5180, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 337, 1987, 1990, 1984, + 1993, 3353, 5375, 5380, 0, 281, 1651, 1654, + 1648, 1657, 3241, 5095, 5100, 0, 349, 2059, + 2062, 2056, 2065, 3377, 5435, 5440, 0, 305, + 1795, 1798, 1792, 1801, 3289, 5215, 5220, 0, + 0, 0, 319, 1879, 1882, 1876, 1885, 3317, + 5285, 5290, 0, 0, 367, 2167, 2170, 2164, + 2173, 3413, 5525, 5530, 0, 0, 0, 0, + 0, 335, 1975, 1978, 1972, 1981, 3349, 5365, + 5370, 0, 291, 1711, 1714, 1708, 1717, 3261, + 5145, 5150, 0, 0, 649, 273, 1603, 1606, + 45, 1600, 1609, 3225, 5055, 5060, 0, 0, + 363, 2143, 2146, 2140, 2149, 3405, 5505, 5510, + 0, 0, 0, 0, 0, 373, 2203, 2206, + 2200, 2209, 3425, 5555, 5560, 0, 0, 0, + 0, 0, 347, 2047, 2050, 2044, 2053, 3373, + 5425, 5430, 0, 0, 0, 295, 1735, 1738, + 1732, 1741, 3269, 5165, 5170, 0, 315, 1855, + 1858, 1852, 1861, 3309, 5265, 5270, 391, 0, + 5, 7, 3, 9, 655, 649, 53, 745, + 748, 45, 742, 751, 3205, 0, 5, 7, + 115, 3, 9, 117, 0, 5, 7, 3, + 9, 883, 2537, 2585, 11, 481, 11, 481, + 11, 481, 0, 5, 7, 3, 9, 649, + 649, 433, 2513, 2517, 45, 1, 2509, 2521, + 0, 5, 7, 115, 3, 9, 117, 0, + 5, 7, 3, 9, 883, 2537, 2585, 11, + 481, 11, 481, 53, 745, 748, 742, 751, + 11, 481, 401, 407, 407, 407, 407, 407, + 407, 407, 407, 0, 0, 0, 937, 0, + 0, 0, 0, 0, 0, 955, 0, 0, + 949, 0, 0, 0, 0, 0, 0, 0, + 0, 946, 0, 0, 0, 0, 952, 0, + 0, 661, 649, 703, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 940, 0, 0, 0, 0, + 958, 0, 0, 0, 943, 399, 397, 2314, + 2317, 2311, 2320, 3457, 5575, 5580, 0, 5, + 7, 403, 403, 403, 403, 403, 403, 403, + 403, 403, 3, 9, 2323, 2549, 2597, 0, + 0, 0, 157, 5595, 5595, 4600, 6132, 6138, + 6126, 6144, 6421, 6589, 6597, 11, 481, 0, + 0, 0, 0, 0, 0, 167, 577, 577, + 583, 2697, 2701, 2693, 2705, 4605, 6150, 6156, + 577, 37, 405, 2329, 2332, 2326, 2335, 3461, + 5585, 5590, 0, 0, 163, 0, 580, 580, + 121, 123, 0, 125, 0, 119, 121, 123, + 0, 125, 0, 119, 0, 0, 0, 0, + 0, 0, 0, 0, 161, 853, 0, 2689, + 2689, 3157, 859, 105, 850, 4980, 6336, 6342, + 859, 105, 6330, 6348, 6533, 6613, 6621, 850, + 0, 0, 0, 0, 165, 0, 2689, 2689, + 3181, 862, 105, 850, 4995, 6360, 6366, 862, + 105, 6354, 6372, 6540, 6629, 6637, 850, 0, + 0, 658, 649, 2933, 4880, 4885, 45, 49, + 4875, 4890, 6288, 6519, 6526, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 0, 3465, + 3465, 586, 0, 409, 2709, 4615, 4620, 0, + 4610, 4625, 6162, 6428, 6435, 409, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3213, 5015, 5020, 5010, + 5025, 6378, 6547, 6554, 0, 0, 0, 0, + 3217, 5040, 5045, 5035, 5050, 6384, 6561, 6568, + 0, 0, 0, 159, 0, 5030, 5030, 49, + 45, 721, 2941, 2945, 45, 2937, 2949, 4895, + 6294, 6300, 5595, 2685, 411, 649, 0, 0, + 0, 0, 0, 688, 45, 0, 0, 892, + 0, 895, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 901, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 913, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 916, 0, 0, + 0, 0, 0, 0, 0, 0, 919, 0, + 0, 0, 0, 0, 0, 922, 0, 0, + 925, 0, 0, 0, 0, 0, 0, 0, + 928, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 931, 0, 0, 934, 0, + 0, 0, 0, 0, 0, 889, 0, 0, + 0, 0, 0, 898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, - 0, 0, 0, 0, 0, 0, 0, 0, - 907, 0, 0, 0, 0, 0, 0, 910, - 0, 0, 913, 0, 0, 0, 0, 0, - 0, 0, 916, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 919, 0, 0, - 922, 0, 0, 0, 0, 0, 0, 877, - 0, 0, 0, 0, 0, 886, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 892, 0, 0, 895, 0, 0, 898, - 405, 637, 0, 0, 0, 0, 0, 0, - 691, 45, 0, 0, 0, 0, 0, 943, - 0, 0, 0, 0, 0, 0, 0, 0, - 946, 0, 0, 0, 940, 0, 0, 934, - 0, 0, 0, 937, 0, 0, 952, 0, - 0, 0, 931, 0, 0, 925, 0, 0, - 0, 928, 0, 0, 949, 844, 838, 3074, - 105, 610, 613, 610, 43, 619, 622, 616, - 625, 0, 5, 7, 610, 3, 9, 43, - 619, 622, 616, 625, 652, 0, 5, 7, - 637, 3, 9, 51, 718, 721, 45, 715, - 724, 0, 5, 7, 637, 3, 9, 2914, - 51, 718, 721, 45, 59, 57, 55, 0, - 61, 715, 724, 0, 5, 7, 637, 3, - 9, 51, 718, 721, 45, 59, 57, 55, - 0, 61, 715, 724, 0, 5, 7, 637, - 3, 9, 51, 718, 721, 45, 59, 57, - 55, 0, 61, 715, 724, 0, 5, 7, - 637, 3, 9, 712, 45, 59, 57, 55, - 0, 61, 2922, 45, 59, 57, 55, 0, - 61, 2938, 4828, 11, 469, 2922, 45, 59, - 57, 55, 0, 61, 745, 2946, 2950, 4828, - 2942, 2954, 11, 469, 2922, 45, 59, 57, - 55, 0, 61, 745, 2946, 2950, 4828, 2942, - 2954, 11, 469, 2922, 45, 59, 57, 55, - 0, 61, 745, 2946, 2950, 4828, 2942, 2954, - 11, 469, 11, 469, 11, 469, 538, 35, - 553, 556, 550, 559, 538, 0, 5, 7, - 3, 9, 547, 11, 469, 610, 43, 619, - 622, 616, 625, 0, 5, 7, 610, 3, - 9, 613, 11, 469, 637, 49, 697, 700, - 45, 694, 703, 0, 5, 7, 610, 3, - 9, 613, 11, 469, 2990, 787, 35, 553, - 556, 550, 559, 2618, 4503, 4508, 538, 0, - 5, 7, 3, 9, 784, 2470, 2518, 11, - 469, 838, 3098, 105, 2242, 3366, 371, 2170, - 2173, 45, 2167, 2176, 0, 5, 7, 637, - 0, 0, 3, 9, 375, 2194, 2197, 45, - 2191, 2200, 0, 5, 7, 4783, 3, 9, - 658, 2778, 2782, 0, 45, 2774, 2786, 0, - 5, 7, 3, 9, 0, 5, 7, 3, - 9, 637, 373, 2182, 2185, 45, 2179, 2188, - 0, 5, 7, 637, 0, 0, 3, 9, - 377, 2206, 2209, 45, 2203, 2212, 0, 5, - 7, 4783, 3, 9, 661, 2794, 2798, 0, - 45, 2790, 2802, 0, 5, 7, 3, 9, - 0, 5, 7, 3, 9, 0, 4778, 6283, - 664, 2810, 2814, 0, 45, 664, 2806, 2818, - 4758, 6133, 6139, 0, 5, 7, 4778, 3, - 9, 2239, 2482, 2530, 667, 2826, 2830, 0, - 45, 667, 2822, 2834, 4763, 6145, 6151, 0, - 5, 7, 4778, 3, 9, 2482, 2530, 670, - 2842, 2846, 0, 45, 670, 2838, 2850, 4768, - 6157, 6163, 0, 5, 7, 4778, 3, 9, - 2482, 2530, 673, 2858, 2862, 0, 45, 2854, - 2866, 4773, 6169, 6175, 0, 5, 7, 3, - 9, 2482, 2530, 11, 469, 2770, 4743, 4748, - 4633, 4738, 4753, 6127, 6398, 6405, 634, 11, - 469, 2766, 4723, 4728, 4633, 2766, 4718, 4733, - 6121, 6384, 6391, 634, 11, 469, 2762, 4703, - 4708, 4633, 2762, 4698, 4713, 6115, 6370, 6377, - 634, 11, 469, 2758, 4683, 4688, 4633, 2758, - 4678, 4693, 6109, 6356, 6363, 634, 11, 469, - 381, 2230, 2233, 2227, 2236, 11, 469, 2754, - 4663, 4668, 4633, 4658, 4673, 634, 11, 469, - 11, 469, 11, 469, 379, 2218, 2221, 2215, - 2224, 11, 469, 2750, 4643, 4648, 4633, 4638, - 4653, 634, 11, 469, 11, 469, 637, 49, - 697, 700, 45, 694, 703, 0, 5, 7, - 637, 3, 9, 49, 697, 700, 45, 694, - 703, 0, 5, 7, 637, 3, 9, 49, - 697, 700, 45, 694, 703, 0, 5, 7, - 610, 3, 9, 613, 11, 469, 11, 469, - 11, 469, 637, 49, 697, 700, 45, 694, - 703, 0, 5, 7, 637, 3, 9, 49, - 697, 700, 45, 694, 703, 538, 0, 5, - 7, 3, 9, 35, 553, 556, 550, 559, - 538, 0, 5, 7, 3, 9, 35, 553, - 556, 550, 559, 538, 0, 5, 7, 3, - 9, 35, 553, 556, 550, 559, 0, 5, - 7, 610, 3, 9, 613, 11, 469, 11, - 469, 11, 469, 11, 469, 11, 469, 409, - 0, 5, 7, 3, 9, 637, 49, 697, - 700, 45, 694, 703, 0, 5, 7, 407, + 0, 0, 907, 0, 0, 910, 413, 649, + 0, 0, 0, 0, 0, 0, 703, 45, + 0, 0, 0, 0, 0, 955, 0, 0, + 0, 0, 0, 0, 0, 0, 958, 0, + 0, 0, 952, 0, 0, 946, 0, 0, + 0, 949, 0, 0, 964, 0, 0, 0, + 943, 0, 0, 937, 0, 0, 0, 940, + 0, 0, 961, 415, 649, 0, 688, 45, + 0, 0, 0, 0, 0, 889, 856, 850, + 3137, 105, 622, 625, 622, 43, 631, 634, + 628, 637, 0, 5, 7, 622, 3, 9, + 43, 631, 634, 628, 637, 664, 0, 5, + 7, 649, 3, 9, 51, 730, 733, 45, + 727, 736, 0, 5, 7, 649, 3, 9, + 2977, 51, 730, 733, 45, 59, 57, 55, + 0, 61, 727, 736, 0, 5, 7, 649, + 3, 9, 51, 730, 733, 45, 59, 57, + 55, 0, 61, 727, 736, 0, 5, 7, + 649, 3, 9, 51, 730, 733, 45, 59, + 57, 55, 0, 61, 727, 736, 0, 5, + 7, 649, 3, 9, 724, 45, 59, 57, + 55, 0, 61, 2985, 45, 59, 57, 55, + 0, 61, 3001, 4915, 11, 481, 2985, 45, + 59, 57, 55, 0, 61, 757, 3009, 3013, + 4915, 3005, 3017, 11, 481, 2985, 45, 59, + 57, 55, 0, 61, 757, 3009, 3013, 4915, + 3005, 3017, 11, 481, 2985, 45, 59, 57, + 55, 0, 61, 757, 3009, 3013, 4915, 3005, + 3017, 11, 481, 11, 481, 11, 481, 550, + 35, 565, 568, 562, 571, 550, 0, 5, + 7, 3, 9, 559, 11, 481, 622, 43, + 631, 634, 628, 637, 0, 5, 7, 622, + 3, 9, 625, 11, 481, 649, 49, 709, + 712, 45, 706, 715, 0, 5, 7, 622, + 3, 9, 625, 11, 481, 3053, 799, 35, + 565, 568, 562, 571, 2681, 4590, 4595, 550, + 0, 5, 7, 3, 9, 796, 2533, 2581, + 11, 481, 850, 3161, 105, 2302, 3433, 379, + 2230, 2233, 45, 2227, 2236, 0, 5, 7, + 649, 0, 0, 3, 9, 383, 2254, 2257, + 45, 2251, 2260, 0, 5, 7, 4870, 3, + 9, 670, 2841, 2845, 0, 45, 2837, 2849, + 0, 5, 7, 3, 9, 0, 5, 7, + 3, 9, 649, 381, 2242, 2245, 45, 2239, + 2248, 0, 5, 7, 649, 0, 0, 3, + 9, 385, 2266, 2269, 45, 2263, 2272, 0, + 5, 7, 4870, 3, 9, 673, 2857, 2861, + 0, 45, 2853, 2865, 0, 5, 7, 3, + 9, 0, 5, 7, 3, 9, 0, 4865, + 6390, 676, 2873, 2877, 0, 45, 676, 2869, + 2881, 4845, 6240, 6246, 0, 5, 7, 4865, + 3, 9, 2299, 2545, 2593, 679, 2889, 2893, + 0, 45, 679, 2885, 2897, 4850, 6252, 6258, + 0, 5, 7, 4865, 3, 9, 2545, 2593, + 682, 2905, 2909, 0, 45, 682, 2901, 2913, + 4855, 6264, 6270, 0, 5, 7, 4865, 3, + 9, 2545, 2593, 685, 2921, 2925, 0, 45, + 2917, 2929, 4860, 6276, 6282, 0, 5, 7, + 3, 9, 2545, 2593, 11, 481, 2833, 4830, + 4835, 4720, 4825, 4840, 6234, 6505, 6512, 646, + 11, 481, 2829, 4810, 4815, 4720, 2829, 4805, + 4820, 6228, 6491, 6498, 646, 11, 481, 2825, + 4790, 4795, 4720, 2825, 4785, 4800, 6222, 6477, + 6484, 646, 11, 481, 2821, 4770, 4775, 4720, + 2821, 4765, 4780, 6216, 6463, 6470, 646, 11, + 481, 389, 2290, 2293, 2287, 2296, 11, 481, + 2817, 4750, 4755, 4720, 4745, 4760, 646, 11, + 481, 11, 481, 11, 481, 387, 2278, 2281, + 2275, 2284, 11, 481, 2813, 4730, 4735, 4720, + 4725, 4740, 646, 11, 481, 11, 481, 649, + 49, 709, 712, 45, 706, 715, 0, 5, + 7, 649, 3, 9, 49, 709, 712, 45, + 706, 715, 0, 5, 7, 649, 3, 9, + 49, 709, 712, 45, 706, 715, 0, 5, + 7, 622, 3, 9, 625, 11, 481, 11, + 481, 11, 481, 649, 49, 709, 712, 45, + 706, 715, 0, 5, 7, 649, 3, 9, + 49, 709, 712, 45, 706, 715, 550, 0, + 5, 7, 3, 9, 35, 565, 568, 562, + 571, 550, 0, 5, 7, 3, 9, 35, + 565, 568, 562, 571, 550, 0, 5, 7, + 3, 9, 35, 565, 568, 562, 571, 0, + 5, 7, 622, 3, 9, 625, 11, 481, + 11, 481, 11, 481, 11, 481, 11, 481, + 419, 0, 5, 7, 3, 9, 649, 49, + 709, 712, 45, 706, 715, 0, 5, 7, + 417, 3, 9, 0, 5, 7, 3, 9, + 129, 1, 11, 481, 11, 481, 11, 481, + 877, 0, 865, 5, 7, 868, 871, 3, + 9, 1, 436, 457, 111, 113, 0, 3129, + 850, 105, 107, 649, 874, 3193, 3197, 45, + 3189, 3201, 3185, 5000, 5005, 11, 481, 0, + 850, 105, 109, 649, 49, 709, 712, 45, + 706, 715, 0, 5, 7, 417, 3, 9, + 0, 5, 7, 3, 9, 649, 47, 694, + 697, 45, 691, 700, 880, 0, 5, 7, + 115, 3, 9, 117, 0, 5, 7, 3, + 9, 1, 436, 457, 11, 481, 11, 481, + 11, 481, 11, 481, 649, 47, 694, 697, + 45, 691, 700, 0, 5, 7, 649, 3, + 9, 47, 694, 697, 45, 691, 700, 0, + 5, 7, 115, 3, 9, 117, 0, 5, + 7, 3, 9, 1, 436, 457, 11, 481, + 11, 481, 11, 481, 649, 47, 694, 697, + 45, 691, 700, 967, 0, 5, 7, 147, + 149, 151, 153, 3, 9, 0, 5, 7, + 3, 9, 2797, 649, 47, 694, 697, 45, + 691, 700, 0, 5, 7, 0, 3, 9, + 3221, 0, 5, 7, 0, 5, 7, 0, + 5, 7, 1, 3, 9, 436, 457, 3, + 9, 436, 457, 3, 9, 436, 457, 970, + 129, 11, 481, 11, 481, 11, 481, 11, + 481, 11, 481, 0, 5, 7, 3, 9, + 649, 47, 694, 697, 45, 691, 700, 3133, + 0, 5, 7, 850, 3, 9, 4965, 105, + 859, 3145, 3149, 859, 3145, 3149, 859, 3145, + 3149, 3137, 3141, 3153, 4970, 4975, 3141, 3153, + 4970, 4975, 3141, 3153, 4970, 4975, 11, 481, + 11, 481, 0, 5, 7, 3, 9, 649, + 47, 694, 697, 45, 691, 700, 0, 5, + 7, 850, 3, 9, 105, 862, 3169, 3173, + 862, 3169, 3173, 862, 3169, 3173, 3161, 3165, + 3177, 4985, 4990, 3165, 3177, 4985, 4990, 3165, + 3177, 4985, 4990, 11, 481, 11, 481, 0, + 5, 7, 3, 9, 649, 47, 694, 697, + 45, 691, 700, 0, 5, 7, 622, 3, + 9, 43, 631, 634, 43, 631, 634, 43, + 631, 634, 625, 628, 637, 2785, 2789, 628, + 637, 2785, 2789, 628, 637, 2785, 2789, 11, + 481, 11, 481, 11, 481, 973, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 169, 979, 982, 0, 0, 0, 976, 985, + 0, 5, 7, 417, 3, 9, 0, 5, + 7, 3, 9, 649, 47, 694, 697, 45, + 691, 700, 0, 5, 7, 649, 3, 9, + 51, 730, 733, 45, 727, 736, 778, 0, + 5, 7, 763, 3, 9, 65, 769, 772, + 63, 766, 775, 0, 5, 7, 763, 3, + 9, 65, 769, 772, 63, 766, 775, 0, + 5, 7, 649, 3, 9, 49, 709, 712, + 45, 706, 715, 0, 5, 7, 622, 3, + 9, 43, 631, 634, 628, 637, 0, 5, + 7, 129, 3, 9, 1, 11, 481, 11, + 481, 11, 481, 11, 481, 11, 481, 11, + 481, 11, 481, 11, 481, 0, 0, 195, + 1135, 1138, 1132, 1141, 0, 0, 0, 189, + 1099, 1102, 1096, 1105, 0, 209, 1219, 1222, + 1216, 1225, 0, 0, 0, 0, 0, 0, + 259, 1519, 1522, 1516, 1525, 0, 0, 0, + 0, 0, 0, 235, 1375, 1378, 1372, 1381, + 233, 1363, 1366, 1360, 1369, 0, 0, 205, + 1195, 1198, 1192, 1201, 0, 0, 0, 173, + 1003, 1006, 1000, 1009, 0, 0, 0, 239, + 1399, 1402, 1396, 1405, 0, 0, 0, 0, + 0, 0, 223, 1303, 1306, 1300, 1309, 0, + 0, 0, 0, 207, 1207, 1210, 1204, 1213, + 0, 0, 0, 221, 1291, 1294, 1288, 1297, + 211, 1231, 1234, 0, 1228, 1237, 0, 0, + 265, 1555, 1558, 1552, 1561, 0, 0, 0, + 0, 0, 253, 1483, 1486, 1480, 1489, 0, + 255, 1495, 1498, 1492, 1501, 0, 0, 0, + 0, 0, 179, 1039, 1042, 1036, 1045, 0, + 0, 0, 263, 1543, 1546, 1540, 1549, 0, + 0, 0, 0, 0, 0, 0, 215, 1255, + 1258, 1252, 1261, 0, 0, 0, 193, 1123, + 1126, 1120, 1129, 203, 1183, 1186, 1180, 1189, + 0, 0, 0, 0, 0, 247, 1447, 1450, + 1444, 1453, 0, 249, 1459, 1462, 1456, 1465, + 0, 197, 1147, 1150, 1144, 1153, 251, 1471, + 1474, 1468, 1477, 0, 0, 0, 0, 0, + 181, 1051, 1054, 1048, 1057, 183, 1063, 1066, + 1060, 1069, 0, 0, 0, 0, 0, 0, + 201, 1171, 1174, 1168, 1177, 0, 245, 1435, + 1438, 1432, 1441, 171, 991, 994, 0, 988, + 997, 0, 219, 1279, 1282, 0, 1276, 1285, + 225, 1315, 1318, 0, 1312, 1321, 0, 0, + 0, 0, 227, 1327, 1330, 1324, 1333, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 237, 1387, 1390, 1384, 1393, 0, 0, 177, + 1027, 1030, 1024, 1033, 0, 0, 0, 187, + 1087, 1090, 1084, 1093, 0, 0, 0, 217, + 1267, 1270, 1264, 1273, 191, 1111, 1114, 1108, + 1117, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 231, 1351, 1354, 1348, 1357, + 0, 175, 1015, 1018, 1012, 1021, 0, 243, + 1423, 1426, 1420, 1429, 0, 199, 1159, 1162, + 1156, 1165, 0, 0, 0, 213, 1243, 1246, + 1240, 1249, 0, 0, 261, 1531, 1534, 1528, + 1537, 0, 0, 0, 0, 0, 229, 1339, + 1342, 1336, 1345, 0, 185, 1075, 1078, 1072, + 1081, 0, 0, 2801, 649, 49, 709, 712, + 45, 706, 715, 0, 0, 257, 1507, 1510, + 1504, 1513, 0, 0, 0, 0, 0, 267, + 1567, 1570, 1564, 1573, 0, 0, 0, 0, + 0, 241, 1411, 1414, 1408, 1417, 622, 640, + 1, 649, 49, 709, 712, 45, 706, 715, + 0, 5, 7, 649, 3, 9, 47, 694, + 697, 45, 691, 700, 0, 5, 7, 417, 3, 9, 0, 5, 7, 3, 9, 129, - 1, 11, 469, 11, 469, 11, 469, 865, - 0, 853, 5, 7, 856, 859, 3, 9, - 1, 424, 445, 111, 113, 0, 3066, 838, - 105, 107, 637, 862, 3130, 3134, 45, 3126, - 3138, 3122, 4913, 4918, 11, 469, 0, 838, - 105, 109, 637, 49, 697, 700, 45, 694, - 703, 0, 5, 7, 407, 3, 9, 0, - 5, 7, 3, 9, 637, 47, 682, 685, - 45, 679, 688, 868, 0, 5, 7, 115, - 3, 9, 117, 0, 5, 7, 3, 9, - 1, 424, 445, 11, 469, 11, 469, 11, - 469, 11, 469, 637, 47, 682, 685, 45, - 679, 688, 0, 5, 7, 637, 3, 9, - 47, 682, 685, 45, 679, 688, 0, 5, - 7, 115, 3, 9, 117, 0, 5, 7, - 3, 9, 1, 424, 445, 11, 469, 11, - 469, 11, 469, 637, 47, 682, 685, 45, - 679, 688, 955, 0, 5, 7, 147, 149, - 151, 153, 3, 9, 0, 5, 7, 3, - 9, 2734, 637, 47, 682, 685, 45, 679, - 688, 0, 5, 7, 0, 3, 9, 3158, - 0, 5, 7, 0, 5, 7, 0, 5, - 7, 1, 3, 9, 424, 445, 3, 9, - 424, 445, 3, 9, 424, 445, 958, 129, - 11, 469, 11, 469, 11, 469, 11, 469, - 11, 469, 0, 5, 7, 3, 9, 637, - 47, 682, 685, 45, 679, 688, 3070, 0, - 5, 7, 838, 3, 9, 4878, 105, 847, - 3082, 3086, 847, 3082, 3086, 847, 3082, 3086, - 3074, 3078, 3090, 4883, 4888, 3078, 3090, 4883, - 4888, 3078, 3090, 4883, 4888, 11, 469, 11, - 469, 0, 5, 7, 3, 9, 637, 47, - 682, 685, 45, 679, 688, 0, 5, 7, - 838, 3, 9, 105, 850, 3106, 3110, 850, - 3106, 3110, 850, 3106, 3110, 3098, 3102, 3114, - 4898, 4903, 3102, 3114, 4898, 4903, 3102, 3114, - 4898, 4903, 11, 469, 11, 469, 0, 5, - 7, 3, 9, 637, 47, 682, 685, 45, - 679, 688, 0, 5, 7, 610, 3, 9, - 43, 619, 622, 43, 619, 622, 43, 619, - 622, 613, 616, 625, 2722, 2726, 616, 625, - 2722, 2726, 616, 625, 2722, 2726, 11, 469, - 11, 469, 11, 469, 961, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 169, - 967, 970, 0, 0, 0, 964, 973, 0, - 5, 7, 407, 3, 9, 0, 5, 7, - 3, 9, 637, 47, 682, 685, 45, 679, - 688, 0, 5, 7, 637, 3, 9, 51, - 718, 721, 45, 715, 724, 766, 0, 5, - 7, 751, 3, 9, 65, 757, 760, 63, - 754, 763, 0, 5, 7, 751, 3, 9, - 65, 757, 760, 63, 754, 763, 0, 5, - 7, 637, 3, 9, 49, 697, 700, 45, - 694, 703, 0, 5, 7, 610, 3, 9, - 43, 619, 622, 616, 625, 0, 5, 7, - 129, 3, 9, 1, 11, 469, 11, 469, - 11, 469, 11, 469, 11, 469, 11, 469, - 11, 469, 11, 469, 0, 0, 195, 1123, - 1126, 1120, 1129, 0, 0, 0, 189, 1087, - 1090, 1084, 1093, 0, 209, 1207, 1210, 1204, - 1213, 0, 0, 0, 0, 0, 0, 259, - 1507, 1510, 1504, 1513, 0, 0, 0, 0, - 0, 0, 235, 1363, 1366, 1360, 1369, 233, - 1351, 1354, 1348, 1357, 0, 0, 205, 1183, - 1186, 1180, 1189, 0, 0, 0, 173, 991, - 994, 988, 997, 0, 0, 0, 239, 1387, - 1390, 1384, 1393, 0, 0, 0, 0, 0, - 0, 223, 1291, 1294, 1288, 1297, 0, 0, - 0, 0, 207, 1195, 1198, 1192, 1201, 0, - 0, 0, 221, 1279, 1282, 1276, 1285, 211, - 1219, 1222, 1216, 1225, 0, 0, 0, 0, - 0, 253, 1471, 1474, 1468, 1477, 0, 255, - 1483, 1486, 1480, 1489, 0, 0, 0, 0, - 0, 179, 1027, 1030, 1024, 1033, 0, 0, - 0, 263, 1531, 1534, 1528, 1537, 0, 0, - 0, 0, 0, 0, 0, 215, 1243, 1246, - 1240, 1249, 0, 0, 0, 193, 1111, 1114, - 1108, 1117, 203, 1171, 1174, 1168, 1177, 0, - 0, 0, 0, 0, 247, 1435, 1438, 1432, - 1441, 0, 249, 1447, 1450, 1444, 1453, 0, - 197, 1135, 1138, 1132, 1141, 251, 1459, 1462, - 1456, 1465, 0, 0, 0, 0, 0, 181, - 1039, 1042, 1036, 1045, 183, 1051, 1054, 1048, - 1057, 0, 0, 0, 0, 0, 0, 201, - 1159, 1162, 1156, 1165, 0, 245, 1423, 1426, - 1420, 1429, 171, 979, 982, 0, 976, 985, - 0, 219, 1267, 1270, 0, 1264, 1273, 225, - 1303, 1306, 0, 1300, 1309, 0, 0, 0, - 0, 227, 1315, 1318, 1312, 1321, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, - 1375, 1378, 1372, 1381, 0, 0, 177, 1015, - 1018, 1012, 1021, 0, 0, 0, 187, 1075, - 1078, 1072, 1081, 0, 0, 0, 217, 1255, - 1258, 1252, 1261, 191, 1099, 1102, 1096, 1105, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 231, 1339, 1342, 1336, 1345, 0, - 175, 1003, 1006, 1000, 1009, 0, 243, 1411, - 1414, 1408, 1417, 0, 199, 1147, 1150, 1144, - 1153, 0, 0, 0, 213, 1231, 1234, 1228, - 1237, 0, 0, 261, 1519, 1522, 1516, 1525, - 0, 0, 0, 0, 0, 229, 1327, 1330, - 1324, 1333, 0, 185, 1063, 1066, 1060, 1069, - 0, 0, 2738, 637, 49, 697, 700, 45, - 694, 703, 0, 0, 257, 1495, 1498, 1492, - 1501, 0, 0, 0, 0, 0, 265, 1543, - 1546, 1540, 1549, 0, 0, 0, 0, 0, - 241, 1399, 1402, 1396, 1405, 610, 628, 1, - 637, 49, 697, 700, 45, 694, 703, 0, - 5, 7, 637, 3, 9, 47, 682, 685, - 45, 679, 688, 0, 5, 7, 407, 3, - 9, 0, 5, 7, 3, 9, 129, 1, - 11, 469, 11, 469, 11, 469, 129, 1, - 637, 47, 682, 685, 45, 679, 688, 0, - 5, 7, 637, 3, 9, 47, 682, 685, - 45, 679, 688, 0, 5, 7, 637, 3, - 9, 49, 697, 700, 45, 694, 703, 0, - 5, 7, 33, 541, 3, 9, 35, 553, - 556, 550, 559, 874, 0, 5, 7, 544, - 3, 9, 133, 135, 0, 137, 139, 0, - 141, 0, 143, 145, 0, 562, 131, 1, - 0, 0, 11, 469, 117, 115, 11, 469, - 11, 469, 11, 469, 637, 47, 682, 685, - 45, 679, 688, 0, 5, 7, 637, 3, - 9, 47, 682, 685, 45, 679, 688, 0, - 5, 7, 637, 3, 9, 49, 697, 700, - 45, 694, 703, 0, 5, 7, 33, 541, - 3, 9, 547, 117, 115, 11, 469, 11, - 469, 11, 469, 637, 47, 682, 685, 45, - 679, 688, 0, 5, 7, 637, 3, 9, - 47, 682, 685, 45, 679, 688, 0, 5, - 7, 637, 3, 9, 47, 682, 685, 45, - 679, 688, 0, 5, 7, 115, 3, 9, - 117, 0, 5, 7, 3, 9, 1, 424, - 445, 11, 469, 11, 469, 11, 469, 11, - 469, 637, 51, 718, 721, 45, 715, 724, - 0, 5, 7, 637, 3, 9, 706, 45, - 1, 11, 469, 637, 51, 718, 721, 45, - 715, 724, 0, 5, 7, 637, 3, 9, - 47, 682, 685, 45, 679, 688, 0, 5, - 7, 637, 3, 9, 47, 682, 685, 45, - 679, 688, 0, 5, 7, 115, 3, 9, - 117, 0, 5, 7, 3, 9, 1, 424, - 445, 11, 469, 11, 469, 11, 469, 11, - 469, 637, 49, 697, 700, 45, 694, 703, - 0, 5, 7, 838, 3, 9, 3074, 105, - 11, 469, 637, 49, 697, 700, 45, 694, - 703, 0, 5, 7, 2248, 3, 9, 117, - 115, 117, 3146, 387, 115, 117, 115, 117, - 3386, 3382, 11, 469, 2245, 117, 3378, 385, - 115, 117, 3370, 2245, 117, 385, 115, 117, - 3374, 637, 49, 697, 700, 45, 694, 703, - 0, 5, 7, 637, 3, 9, 49, 697, - 700, 45, 694, 703, 75, 0, 5, 7, - 3, 9, 1, 11, 469, 11, 469, 637, - 47, 682, 685, 45, 679, 688, 538, 0, - 5, 7, 3, 9, 35, 553, 556, 550, - 559, 75, 0, 5, 7, 3, 9, 1, - 11, 469, 11, 469, 637, 49, 697, 700, - 45, 694, 703, 0, 5, 7, 610, 3, - 9, 631, 1, 11, 469, 601, 598, 0, - 2694, 2698, 577, 472, 481, 2690, 2702, 598, - 413, 2498, 2506, 3414, 3422, 2466, 2514, 3406, - 3410, 4423, 4433, 2714, 598, 2498, 2506, 3046, - 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, - 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, - 3046, 2466, 2514, 4608, 4623, 4868, 4868, 4868, - 4868, 4868, 4868, 4868, 4868, 4868, 4868, 4868, - 4868, 4868, 4868, 4868, 4868, 4868, 4868, 2706, - 3042, 93, 4853, 4858, 3038, 3030, 3034, 4848, - 4863, 2498, 2506, 2466, 2514, 487, 2566, 2574, - 4478, 2582, 487, 2494, 2502, 2510, 4428, 6097, - 6103, 6217, 6217, 6217, 6217, 6217, 6217, 6217, - 6217, 6217, 6217, 6217, 6217, 6217, 6217, 6217, - 6217, 6217, 6217, 4418 + 1, 11, 481, 11, 481, 11, 481, 129, + 1, 649, 47, 694, 697, 45, 691, 700, + 0, 5, 7, 649, 3, 9, 47, 694, + 697, 45, 691, 700, 0, 5, 7, 649, + 3, 9, 49, 709, 712, 45, 706, 715, + 0, 5, 7, 33, 553, 3, 9, 35, + 565, 568, 562, 571, 886, 0, 5, 7, + 556, 3, 9, 133, 135, 0, 137, 139, + 0, 141, 0, 143, 145, 0, 574, 131, + 1, 0, 0, 11, 481, 117, 115, 11, + 481, 11, 481, 11, 481, 649, 47, 694, + 697, 45, 691, 700, 0, 5, 7, 649, + 3, 9, 47, 694, 697, 45, 691, 700, + 0, 5, 7, 649, 3, 9, 49, 709, + 712, 45, 706, 715, 0, 5, 7, 33, + 553, 3, 9, 559, 117, 115, 11, 481, + 11, 481, 11, 481, 649, 47, 694, 697, + 45, 691, 700, 0, 5, 7, 649, 3, + 9, 47, 694, 697, 45, 691, 700, 0, + 5, 7, 649, 3, 9, 47, 694, 697, + 45, 691, 700, 0, 5, 7, 115, 3, + 9, 117, 0, 5, 7, 3, 9, 1, + 436, 457, 11, 481, 11, 481, 11, 481, + 11, 481, 649, 51, 730, 733, 45, 727, + 736, 0, 5, 7, 649, 3, 9, 718, + 45, 1, 11, 481, 649, 51, 730, 733, + 45, 727, 736, 0, 5, 7, 649, 3, + 9, 47, 694, 697, 45, 691, 700, 0, + 5, 7, 649, 3, 9, 47, 694, 697, + 45, 691, 700, 0, 5, 7, 115, 3, + 9, 117, 0, 5, 7, 3, 9, 1, + 436, 457, 11, 481, 11, 481, 11, 481, + 11, 481, 649, 49, 709, 712, 45, 706, + 715, 0, 5, 7, 850, 3, 9, 3137, + 105, 11, 481, 649, 49, 709, 712, 45, + 706, 715, 0, 5, 7, 2308, 3, 9, + 117, 115, 117, 3209, 395, 115, 117, 115, + 117, 3453, 3449, 11, 481, 2305, 117, 3445, + 393, 115, 117, 3437, 2305, 117, 393, 115, + 117, 3441, 649, 49, 709, 712, 45, 706, + 715, 0, 5, 7, 649, 3, 9, 49, + 709, 712, 45, 706, 715, 75, 0, 5, + 7, 3, 9, 1, 11, 481, 11, 481, + 649, 47, 694, 697, 45, 691, 700, 550, + 0, 5, 7, 3, 9, 35, 565, 568, + 562, 571, 75, 0, 5, 7, 3, 9, + 1, 11, 481, 11, 481, 649, 49, 709, + 712, 45, 706, 715, 0, 5, 7, 622, + 3, 9, 643, 1, 11, 481, 0, 0, + 0, 0, 0, 269, 1579, 1582, 1576, 1585, + 0, 5, 7, 421, 3, 9, 0, 5, + 7, 3, 9, 649, 49, 709, 712, 45, + 706, 715, 0, 5, 7, 622, 3, 9, + 625, 11, 481, 11, 481, 11, 481, 0, + 0, 0, 271, 1591, 1594, 1588, 1597, 0, + 0, 0, 649, 49, 709, 712, 45, 706, + 715, 613, 610, 0, 2757, 2761, 589, 484, + 493, 2753, 2765, 610, 425, 2561, 2569, 3481, + 3489, 2529, 2577, 3473, 3477, 4510, 4520, 2777, + 610, 2561, 2569, 3109, 3109, 3109, 3109, 3109, + 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, + 3109, 3109, 3109, 3109, 3109, 2529, 2577, 4695, + 4710, 4955, 4955, 4955, 4955, 4955, 4955, 4955, + 4955, 4955, 4955, 4955, 4955, 4955, 4955, 4955, + 4955, 4955, 4955, 2769, 3105, 93, 4940, 4945, + 3101, 3093, 3097, 4935, 4950, 2561, 2569, 2529, + 2577, 499, 2629, 2637, 4565, 2645, 499, 2557, + 2565, 2573, 4515, 6204, 6210, 6324, 6324, 6324, + 6324, 6324, 6324, 6324, 6324, 6324, 6324, 6324, + 6324, 6324, 6324, 6324, 6324, 6324, 6324, 4505 }; static const short _zone_scanner_eof_actions[] = { - 0, 2742, 2918, 419, 2293, 411, 2278, 15, - 15, 411, 411, 2278, 2278, 2278, 4628, 6199, - 2290, 419, 419, 2293, 2278, 2278, 419, 419, - 419, 419, 419, 2293, 2293, 419, 419, 2293, - 419, 419, 419, 2293, 419, 419, 419, 2293, - 419, 419, 419, 419, 2293, 419, 419, 419, - 2293, 419, 419, 419, 2293, 2293, 419, 419, - 419, 419, 2293, 419, 2293, 419, 419, 419, - 419, 2293, 419, 419, 419, 2293, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, - 2293, 419, 419, 2293, 2293, 419, 419, 2293, - 419, 2293, 419, 2293, 2293, 419, 419, 419, - 419, 2293, 2293, 419, 419, 419, 419, 2293, - 419, 2293, 2293, 419, 2293, 2293, 419, 419, - 419, 419, 2293, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 2293, 419, 419, 2293, - 419, 2293, 419, 419, 419, 2293, 2293, 419, - 419, 419, 419, 419, 2293, 419, 2293, 419, - 2293, 419, 2293, 419, 419, 419, 2293, 419, - 419, 2293, 419, 419, 419, 2293, 419, 2293, - 419, 419, 655, 2746, 419, 419, 2293, 419, - 419, 419, 419, 419, 2293, 419, 419, 419, - 419, 419, 2293, 419, 2742, 419, 419, 655, - 2918, 2918, 2918, 2918, 419, 15, 95, 95, - 95, 95, 95, 95, 95, 95, 41, 655, - 0, 4613, 655, 419, 2918, 2918, 2918, 419, - 2718, 2746, 3426, 2278, 2742, 15, 2278, 15, - 4628, 3426, 3426, 3426, 3426, 3426, 3426, 3426, - 3426, 3426, 3426, 3426, 3426, 3426, 3426, 3426, - 3426, 3426, 2278, 3402, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 2710, 6349, 2742, - 2290, 4618, 4628, 4618, 4618, 4618, 4618, 4618, - 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, - 4618, 4618, 4618, 4618, 604, 4628, 2278, 15, - 2278, 2278, 419, 419, 2293, 419, 419, 419, - 2293, 419, 2293, 2278, 2278, 15, 2278, 2278, - 2278, 2278, 411, 4628, 2278, 2278, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 15, - 2290, 607, 2290, 0, 0, 0, 31, 31, - 31, 517, 517, 517, 517, 31, 31, 769, - 769, 2982, 2982, 2982, 2982, 769, 769, 69, - 2982, 2982, 2982, 2982, 77, 640, 4823, 490, - 490, 4823, 2910, 4823, 77, 81, 81, 81, - 493, 493, 493, 520, 520, 520, 520, 493, - 81, 0, 85, 799, 805, 87, 805, 15, - 15, 523, 523, 523, 523, 805, 15, 87, - 0, 0, 127, 127, 127, 127, 127, 127, - 127, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 383, 643, 643, 3142, 3142, - 3142, 3142, 383, 383, 383, 643, 643, 3142, - 3142, 3142, 3142, 383, 643, 383, 393, 393, - 393, 393, 393, 393, 393, 393, 393, 393, - 393, 393, 393, 393, 393, 393, 393, 393, - 393, 393, 393, 393, 393, 393, 393, 393, - 393, 393, 393, 393, 649, 649, 393, 393, - 393, 393, 393, 393, 393, 393, 393, 393, - 393, 393, 393, 393, 393, 393, 393, 393, - 393, 393, 393, 393, 393, 393, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 841, 841, 841, 841, 841, 841, - 391, 391, 391, 391, 391, 841, 841, 841, - 841, 841, 841, 391, 391, 646, 646, 391, - 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 646, - 646, 646, 646, 391, 391, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 405, 405, 405, - 405, 405, 405, 405, 405, 405, 405, 405, - 405, 405, 405, 405, 405, 405, 405, 405, - 405, 405, 405, 405, 405, 405, 405, 405, - 405, 405, 405, 405, 405, 405, 405, 405, - 405, 405, 405, 405, 405, 405, 844, 844, - 411, 411, 411, 411, 411, 411, 652, 652, - 652, 2914, 652, 2914, 652, 2914, 652, 2914, - 2914, 2914, 2914, 411, 2914, 2914, 2914, 411, - 2914, 2914, 2914, 411, 2914, 2914, 2914, 411, + 0, 2805, 2981, 431, 2353, 423, 2338, 15, + 15, 423, 423, 2338, 2338, 2338, 4715, 6306, + 2350, 431, 431, 2353, 2338, 2338, 431, 431, + 431, 431, 431, 2353, 2353, 431, 431, 2353, + 431, 431, 431, 2353, 431, 431, 431, 2353, + 431, 431, 431, 431, 2353, 431, 431, 431, + 2353, 431, 431, 431, 2353, 2353, 431, 431, + 2353, 431, 431, 431, 431, 2353, 431, 2353, + 431, 431, 431, 431, 2353, 431, 431, 431, + 2353, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 2353, 431, 431, 2353, 2353, + 431, 431, 2353, 431, 2353, 431, 2353, 2353, + 431, 431, 431, 431, 2353, 2353, 431, 431, + 431, 431, 2353, 431, 2353, 2353, 431, 2353, + 2353, 431, 431, 431, 431, 2353, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 2353, + 431, 431, 2353, 431, 2353, 431, 431, 431, + 2353, 2353, 431, 431, 431, 431, 431, 2353, + 431, 2353, 431, 2353, 431, 2353, 431, 431, + 431, 2353, 431, 431, 2353, 431, 431, 431, + 2353, 431, 2353, 431, 431, 667, 2809, 431, + 431, 2353, 431, 431, 431, 431, 431, 2353, + 431, 431, 431, 431, 431, 2353, 431, 2805, + 431, 431, 667, 2981, 2981, 2981, 2981, 431, + 15, 95, 95, 95, 95, 95, 95, 95, + 95, 41, 667, 0, 4700, 667, 431, 2981, + 2981, 2981, 431, 2781, 2809, 3493, 2338, 2805, + 15, 2338, 15, 4715, 3493, 3493, 3493, 3493, + 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, + 3493, 3493, 3493, 3493, 3493, 2338, 3469, 95, + 95, 95, 95, 95, 95, 95, 95, 95, + 2773, 6456, 2805, 2350, 4705, 4715, 4705, 4705, + 4705, 4705, 4705, 4705, 4705, 4705, 4705, 4705, + 4705, 4705, 4705, 4705, 4705, 4705, 4705, 616, + 4715, 2338, 15, 2338, 2338, 431, 431, 2353, + 431, 431, 431, 2353, 431, 2353, 2338, 2338, + 15, 2338, 2338, 2338, 2338, 423, 4715, 2338, + 2338, 619, 619, 619, 619, 619, 619, 619, + 619, 619, 619, 619, 619, 619, 619, 619, + 619, 619, 15, 2350, 619, 2350, 0, 0, + 0, 31, 31, 31, 529, 529, 529, 529, + 31, 31, 781, 781, 3045, 3045, 3045, 3045, + 781, 781, 69, 3045, 3045, 3045, 3045, 77, + 652, 4910, 502, 502, 4910, 2973, 4910, 77, + 81, 81, 81, 505, 505, 505, 532, 532, + 532, 532, 505, 81, 0, 85, 811, 817, + 87, 817, 15, 15, 535, 535, 535, 535, + 817, 15, 87, 0, 0, 127, 127, 127, + 127, 127, 127, 127, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 377, 377, 377, 377, 377, 377, 377, + 377, 391, 655, 655, 3205, 3205, 3205, 3205, + 391, 391, 391, 655, 655, 3205, 3205, 3205, + 3205, 391, 655, 391, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 661, 661, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, + 853, 853, 853, 853, 853, 853, 399, 399, + 399, 399, 399, 853, 853, 853, 853, 853, + 853, 399, 399, 658, 658, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 658, 658, 658, + 658, 399, 399, 411, 411, 411, 411, 411, + 411, 411, 411, 411, 411, 411, 411, 411, + 411, 411, 411, 411, 411, 411, 411, 411, + 411, 411, 411, 411, 411, 411, 411, 411, + 411, 411, 411, 411, 411, 411, 411, 411, + 411, 411, 411, 411, 411, 411, 411, 411, + 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 652, 652, 411, 411, - 411, 787, 787, 787, 787, 844, 844, 2242, - 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, - 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, - 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, - 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, - 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, - 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, - 2242, 2242, 2242, 2242, 2242, 2242, 652, 652, - 652, 652, 652, 652, 411, 411, 411, 411, - 411, 652, 652, 652, 652, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 652, 652, 411, 411, - 411, 411, 411, 411, 411, 865, 865, 865, - 3066, 3066, 865, 865, 411, 865, 3066, 3066, - 652, 652, 411, 411, 652, 652, 868, 868, - 868, 868, 411, 411, 411, 652, 652, 652, - 652, 868, 868, 868, 868, 411, 411, 652, - 652, 955, 955, 2734, 2734, 955, 3158, 958, - 958, 958, 958, 958, 958, 958, 955, 955, - 955, 2734, 2734, 3070, 4878, 955, 955, 955, - 2734, 2734, 3070, 4878, 955, 955, 955, 2734, - 2734, 955, 3158, 955, 955, 411, 961, 961, - 411, 411, 652, 652, 652, 652, 766, 766, - 766, 766, 652, 652, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 2738, 2738, 961, - 961, 961, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 961, 961, 411, 411, - 411, 652, 652, 652, 652, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 652, 652, - 652, 652, 652, 652, 868, 868, 874, 874, - 874, 874, 874, 874, 874, 874, 874, 411, - 874, 874, 874, 874, 874, 411, 868, 868, - 411, 411, 411, 652, 652, 652, 652, 652, - 652, 868, 868, 868, 868, 411, 411, 411, - 652, 652, 652, 652, 652, 652, 868, 868, - 868, 868, 411, 411, 411, 652, 652, 652, - 652, 411, 411, 652, 652, 652, 652, 652, - 652, 868, 868, 868, 868, 411, 411, 411, - 652, 652, 844, 844, 411, 652, 652, 868, - 868, 868, 868, 3146, 868, 868, 868, 868, - 3386, 411, 868, 868, 3378, 868, 868, 3378, - 868, 868, 3378, 868, 868, 3378, 652, 652, - 652, 652, 411, 411, 411, 411, 652, 652, - 411, 411, 411, 411, 411, 411, 652, 652, - 411, 411, 411, 411, 0, 0, 0, 0, - 93, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0 + 411, 411, 411, 411, 411, 411, 411, 411, + 411, 411, 411, 411, 411, 411, 411, 411, + 411, 411, 411, 411, 411, 411, 411, 411, + 411, 411, 411, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 415, 415, 415, 415, + 415, 415, 415, 415, 856, 856, 423, 423, + 423, 423, 423, 423, 664, 664, 664, 2977, + 664, 2977, 664, 2977, 664, 2977, 2977, 2977, + 2977, 423, 2977, 2977, 2977, 423, 2977, 2977, + 2977, 423, 2977, 2977, 2977, 423, 423, 423, + 423, 423, 423, 423, 423, 423, 423, 423, + 423, 423, 664, 664, 423, 423, 423, 799, + 799, 799, 799, 856, 856, 2302, 2302, 2302, + 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, + 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, + 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, + 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, + 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, + 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, + 2302, 2302, 2302, 2302, 664, 664, 664, 664, + 664, 664, 423, 423, 423, 423, 423, 664, + 664, 664, 664, 423, 423, 423, 423, 423, + 423, 423, 423, 423, 423, 423, 423, 423, + 423, 423, 664, 664, 423, 423, 423, 423, + 423, 423, 423, 877, 877, 877, 3129, 3129, + 877, 877, 423, 877, 3129, 3129, 664, 664, + 423, 423, 664, 664, 880, 880, 880, 880, + 423, 423, 423, 664, 664, 664, 664, 880, + 880, 880, 880, 423, 423, 664, 664, 967, + 967, 2797, 2797, 967, 3221, 970, 970, 970, + 970, 970, 970, 970, 967, 967, 967, 2797, + 2797, 3133, 4965, 967, 967, 967, 2797, 2797, + 3133, 4965, 967, 967, 967, 2797, 2797, 967, + 3221, 967, 967, 423, 973, 973, 423, 423, + 664, 664, 664, 664, 778, 778, 778, 778, + 664, 664, 423, 423, 423, 423, 423, 423, + 423, 423, 423, 423, 423, 423, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 2801, 2801, + 973, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 973, 973, 423, + 423, 423, 664, 664, 664, 664, 423, 423, + 423, 423, 423, 423, 423, 423, 423, 664, + 664, 664, 664, 664, 664, 880, 880, 886, + 886, 886, 886, 886, 886, 886, 886, 886, + 423, 886, 886, 886, 886, 886, 423, 880, + 880, 423, 423, 423, 664, 664, 664, 664, + 664, 664, 880, 880, 880, 880, 423, 423, + 423, 664, 664, 664, 664, 664, 664, 880, + 880, 880, 880, 423, 423, 423, 664, 664, + 664, 664, 423, 423, 664, 664, 664, 664, + 664, 664, 880, 880, 880, 880, 423, 423, + 423, 664, 664, 856, 856, 423, 664, 664, + 880, 880, 880, 880, 3209, 880, 880, 880, + 880, 3453, 423, 880, 880, 3445, 880, 880, + 3445, 880, 880, 3445, 880, 880, 3445, 664, + 664, 664, 664, 423, 423, 423, 423, 664, + 664, 423, 423, 423, 423, 423, 423, 664, + 664, 423, 423, 423, 423, 973, 973, 973, + 973, 423, 423, 664, 664, 423, 423, 423, + 423, 423, 973, 973, 973, 973, 973, 973, + 973, 2801, 2801, 0, 0, 0, 0, 93, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 }; @@ -6494,7 +6623,7 @@ int zs_init( memset(s, 0, sizeof(*s)); // Nonzero initial scanner state. - s->cs = 1444; + s->cs = 1483; // Reset the file descriptor. s->file.descriptor = -1; @@ -7034,7 +7163,7 @@ _match: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } s->multiline = true; } @@ -7043,7 +7172,7 @@ _match: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } s->multiline = false; } @@ -7084,7 +7213,7 @@ _match: case 8: { WARN(ZS_BAD_REST); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 9: @@ -7137,15 +7266,15 @@ _match: if (s->error.fatal) { {p++; goto _out; } } - {cs = 315;goto _again;} + {cs = 318;goto _again;} } else { // Return if external processing. - p--; cs = 315; {p++; goto _out; } + p--; cs = 318; {p++; goto _out; } } } break; case 12: - { p--; {stack[top++] = cs; cs = 1444;goto _again;} } + { p--; {stack[top++] = cs; cs = 1483;goto _again;} } break; case 13: { @@ -7161,7 +7290,7 @@ _match: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7174,7 +7303,7 @@ _match: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7185,7 +7314,7 @@ _match: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7203,7 +7332,7 @@ _match: case 19: { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 20: @@ -7223,7 +7352,7 @@ _match: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7246,11 +7375,11 @@ _match: case 24: { WARN(ZS_BAD_DNAME_CHAR); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 25: - { p--; {stack[top++] = cs; cs = 318;goto _again;} } + { p--; {stack[top++] = cs; cs = 321;goto _again;} } break; case 26: { @@ -7258,7 +7387,7 @@ _match: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7267,13 +7396,13 @@ _match: s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7284,7 +7413,7 @@ _match: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7297,7 +7426,7 @@ _match: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7316,7 +7445,7 @@ _match: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7324,7 +7453,7 @@ _match: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 34: @@ -7349,7 +7478,7 @@ _match: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7361,7 +7490,7 @@ _match: case 38: { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 39: @@ -7389,7 +7518,7 @@ _match: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7410,7 +7539,7 @@ _match: rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7422,7 +7551,7 @@ _match: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7434,7 +7563,7 @@ _match: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7444,7 +7573,7 @@ _match: s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7454,14 +7583,14 @@ _match: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; case 50: { WARN(ZS_BAD_TIME_UNIT); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 51: @@ -7469,7 +7598,7 @@ _match: s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7478,7 +7607,7 @@ _match: s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7487,7 +7616,7 @@ _match: s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7496,7 +7625,7 @@ _match: s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7511,7 +7640,7 @@ _match: s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7526,7 +7655,7 @@ _match: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7543,7 +7672,7 @@ _match: rdata_tail += 4; } else { WARN(ret); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -7552,7 +7681,7 @@ _match: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } if (s->number64 <= UINT32_MAX) { @@ -7560,18 +7689,18 @@ _match: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; case 60: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 61: @@ -7587,27 +7716,27 @@ _match: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; case 62: { WARN(ZS_BAD_TEXT_CHAR); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 63: { WARN(ZS_BAD_TEXT); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 64: @@ -7623,7 +7752,7 @@ _match: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } @@ -7631,7 +7760,7 @@ _match: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7646,7 +7775,7 @@ _match: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7658,7 +7787,7 @@ _match: case 67: { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 68: @@ -7669,7 +7798,7 @@ _match: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -7687,13 +7816,13 @@ _match: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } } break; case 69: - { p--; {stack[top++] = cs; cs = 327;goto _again;} } + { p--; {stack[top++] = cs; cs = 330;goto _again;} } break; case 70: { @@ -7711,18 +7840,18 @@ _match: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; case 73: { ERR(ZS_BAD_TTL); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 74: - { p--; {stack[top++] = cs; cs = 340;goto _again;} } + { p--; {stack[top++] = cs; cs = 343;goto _again;} } break; case 75: { @@ -7737,11 +7866,11 @@ _match: case 77: { ERR(ZS_BAD_ORIGIN); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 78: - { p--; {stack[top++] = cs; cs = 349;goto _again;} } + { p--; {stack[top++] = cs; cs = 352;goto _again;} } break; case 79: { @@ -7753,7 +7882,7 @@ _match: size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } // Store zero terminated include filename. @@ -7767,7 +7896,7 @@ _match: case 81: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 82: @@ -7783,7 +7912,7 @@ _match: case 84: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 85: @@ -7794,7 +7923,7 @@ _match: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -7814,7 +7943,7 @@ _match: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } // Parse included zone file. @@ -7834,18 +7963,18 @@ _match: } zs_deinit(ss); free(ss); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1444; {p++; goto _out; } + p--; cs = 1483; {p++; goto _out; } } } break; case 86: - { p--; {stack[top++] = cs; cs = 361;goto _again;} } + { p--; {stack[top++] = cs; cs = 364;goto _again;} } break; case 87: { @@ -7860,7 +7989,7 @@ _match: case 89: { ERR(ZS_BAD_DIRECTIVE); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 90: @@ -7884,7 +8013,7 @@ _match: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7899,14 +8028,14 @@ _match: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; case 96: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 97: @@ -7915,7 +8044,7 @@ _match: if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7923,7 +8052,7 @@ _match: { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -7935,7 +8064,7 @@ _match: if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7943,7 +8072,7 @@ _match: { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -7976,7 +8105,7 @@ _match: s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -7995,7 +8124,7 @@ _match: break; default: WARN(ZS_BAD_APL); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -8007,7 +8136,7 @@ _match: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -8027,7 +8156,7 @@ _match: case 107: { WARN(ZS_BAD_APL); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 108: @@ -8036,7 +8165,7 @@ _match: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -8049,21 +8178,21 @@ _match: case 110: { WARN(ZS_BAD_HEX_CHAR); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 111: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; case 112: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 113: @@ -8072,7 +8201,7 @@ _match: *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -8084,7 +8213,7 @@ _match: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -8096,7 +8225,7 @@ _match: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -8108,11 +8237,11 @@ _match: case 117: { WARN(ZS_BAD_BASE64_CHAR); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 118: - { p--; {stack[top++] = cs; cs = 378;goto _again;} } + { p--; {stack[top++] = cs; cs = 381;goto _again;} } break; case 119: { @@ -8120,7 +8249,7 @@ _match: *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -8132,7 +8261,7 @@ _match: *rdata_tail = second_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -8149,7 +8278,7 @@ _match: *rdata_tail = fourth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -8161,7 +8290,7 @@ _match: *rdata_tail = fifth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -8178,7 +8307,7 @@ _match: *rdata_tail = seventh_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; @@ -8190,7 +8319,7 @@ _match: case 127: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 128: @@ -8358,19 +8487,19 @@ _match: case 156: { WARN(ZS_BAD_GATEWAY); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 157: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 158: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; case 159: @@ -8518,172 +8647,184 @@ _match: { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } break; case 207: - { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } + { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } break; case 208: + { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } + break; + case 209: + { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } + break; + case 210: + { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } + break; + case 211: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 209: + case 212: { window_add_bit(KNOT_RRTYPE_A, s); } break; - case 210: + case 213: { window_add_bit(KNOT_RRTYPE_NS, s); } break; - case 211: + case 214: { window_add_bit(KNOT_RRTYPE_CNAME, s); } break; - case 212: + case 215: { window_add_bit(KNOT_RRTYPE_SOA, s); } break; - case 213: + case 216: { window_add_bit(KNOT_RRTYPE_PTR, s); } break; - case 214: + case 217: { window_add_bit(KNOT_RRTYPE_HINFO, s); } break; - case 215: + case 218: { window_add_bit(KNOT_RRTYPE_MINFO, s); } break; - case 216: + case 219: { window_add_bit(KNOT_RRTYPE_MX, s); } break; - case 217: + case 220: { window_add_bit(KNOT_RRTYPE_TXT, s); } break; - case 218: + case 221: { window_add_bit(KNOT_RRTYPE_RP, s); } break; - case 219: + case 222: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } break; - case 220: + case 223: { window_add_bit(KNOT_RRTYPE_RT, s); } break; - case 221: + case 224: { window_add_bit(KNOT_RRTYPE_KEY, s); } break; - case 222: + case 225: { window_add_bit(KNOT_RRTYPE_AAAA, s); } break; - case 223: + case 226: { window_add_bit(KNOT_RRTYPE_LOC, s); } break; - case 224: + case 227: { window_add_bit(KNOT_RRTYPE_SRV, s); } break; - case 225: + case 228: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } break; - case 226: + case 229: { window_add_bit(KNOT_RRTYPE_KX, s); } break; - case 227: + case 230: { window_add_bit(KNOT_RRTYPE_CERT, s); } break; - case 228: + case 231: { window_add_bit(KNOT_RRTYPE_DNAME, s); } break; - case 229: + case 232: { window_add_bit(KNOT_RRTYPE_APL, s); } break; - case 230: + case 233: { window_add_bit(KNOT_RRTYPE_DS, s); } break; - case 231: + case 234: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } break; - case 232: + case 235: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } break; - case 233: + case 236: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } break; - case 234: + case 237: { window_add_bit(KNOT_RRTYPE_NSEC, s); } break; - case 235: + case 238: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } break; - case 236: + case 239: { window_add_bit(KNOT_RRTYPE_DHCID, s); } break; - case 237: + case 240: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } break; - case 238: + case 241: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } break; - case 239: + case 242: { window_add_bit(KNOT_RRTYPE_TLSA, s); } break; - case 240: + case 243: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } break; - case 241: + case 244: { window_add_bit(KNOT_RRTYPE_CDS, s); } break; - case 242: + case 245: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } break; - case 243: + case 246: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } break; - case 244: + case 247: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } break; - case 245: + case 248: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } break; - case 246: + case 249: { window_add_bit(KNOT_RRTYPE_SPF, s); } break; - case 247: + case 250: { window_add_bit(KNOT_RRTYPE_NID, s); } break; - case 248: + case 251: { window_add_bit(KNOT_RRTYPE_L32, s); } break; - case 249: + case 252: { window_add_bit(KNOT_RRTYPE_L64, s); } break; - case 250: + case 253: { window_add_bit(KNOT_RRTYPE_LP, s); } break; - case 251: + case 254: { window_add_bit(KNOT_RRTYPE_EUI48, s); } break; - case 252: + case 255: { window_add_bit(KNOT_RRTYPE_EUI64, s); } break; - case 253: + case 256: { window_add_bit(KNOT_RRTYPE_URI, s); } break; - case 254: + case 257: { window_add_bit(KNOT_RRTYPE_CAA, s); } break; - case 255: + case 258: { window_add_bit(KNOT_RRTYPE_SVCB, s); } break; - case 256: + case 259: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } break; - case 257: + case 260: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + break; + case 261: { window_add_bit(KNOT_RRTYPE_WALLET, s); } break; - case 258: + case 262: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } break; - case 259: + case 263: { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -8702,82 +8843,82 @@ _match: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } } } break; - case 260: + case 264: { WARN(ZS_BAD_BITMAP); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; - case 261: - { p--; {stack[top++] = cs; cs = 385;goto _again;} } + case 265: + { p--; {stack[top++] = cs; cs = 388;goto _again;} } break; - case 262: + case 266: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 263: + case 267: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 264: + case 268: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 265: + case 269: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 266: + case 270: { if (s->number64 <= 59999) { s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 267: + case 271: { if (s->number64 <= 59999) { s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 268: + case 272: { if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || (s->loc.alt_sign == -1 && s->number64 <= 10000000)) @@ -8785,56 +8926,56 @@ _match: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 269: + case 273: { if (s->number64 <= 9000000000ULL) { s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 270: + case 274: { if (s->number64 <= 9000000000ULL) { s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 271: + case 275: { if (s->number64 <= 9000000000ULL) { s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 272: + case 276: { s->loc.lat_sign = -1; } break; - case 273: + case 277: { s->loc.long_sign = -1; } break; - case 274: + case 278: { s->loc.alt_sign = -1; } break; - case 275: + case 279: { memset(&(s->loc), 0, sizeof(s->loc)); // Defaults. @@ -8846,7 +8987,7 @@ _match: s->loc.alt_sign = 1; } break; - case 276: + case 280: { // Write version. *(rdata_tail) = 0; @@ -8874,279 +9015,290 @@ _match: rdata_tail += 4; } break; - case 277: + case 281: { WARN(ZS_BAD_LOC_DATA); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; - case 278: + case 282: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; - case 279: + case 283: { s->item_length = 0; } break; - case 280: + case 284: { s->item_length++; } break; - case 281: + case 285: { if (s->item_length != 6) { WARN(ZS_BAD_EUI_LENGTH); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 282: + case 286: { if (s->item_length != 8) { WARN(ZS_BAD_EUI_LENGTH); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 283: + case 287: { WARN(ZS_BAD_CHAR_DASH); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; - case 284: + case 288: { s->item_length = 0; } break; - case 285: + case 289: { s->item_length++; } break; - case 286: + case 290: { if (s->item_length != 4) { WARN(ZS_BAD_L64_LENGTH); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 287: + case 291: { WARN(ZS_BAD_CHAR_COLON); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; - case 288: + case 292: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; } break; - case 289: + case 293: { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 290: + case 294: { WARN(ZS_BAD_SVCB_PARAM); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; - case 291: + case 295: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; - case 292: + case 296: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } s->svcb.param_position = rdata_tail; } break; - case 293: + case 297: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 294: + case 298: { s->comma_list = true; s->pending_backslash = false; } break; - case 295: + case 299: { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 296: + case 300: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } break; - case 297: + case 301: { svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } break; - case 298: + case 302: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } } break; - case 299: - { p--; {stack[top++] = cs; cs = 574;goto _again;} } + case 303: + { p--; {stack[top++] = cs; cs = 580;goto _again;} } break; - case 300: - { p--; {stack[top++] = cs; cs = 630;goto _again;} } + case 304: + { p--; {stack[top++] = cs; cs = 636;goto _again;} } break; - case 301: + case 305: { WARN(ZS_BAD_ALGORITHM); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; - case 302: + case 306: { WARN(ZS_BAD_CERT_TYPE); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; - case 303: - { p--; {stack[top++] = cs; cs = 741;goto _again;} } + case 307: + { + WARN(ZS_BAD_DSYNC_SCHEME); + p--; {cs = 319;goto _again;} + } break; - case 304: - { p--; {stack[top++] = cs; cs = 845;goto _again;} } + case 308: + { p--; {stack[top++] = cs; cs = 747;goto _again;} } break; - case 305: + case 309: + { p--; {stack[top++] = cs; cs = 851;goto _again;} } + break; + case 310: + { p--; {stack[top++] = cs; cs = 892;goto _again;} } + break; + case 311: { rdata_tail = s->r_data; } break; - case 306: + case 312: { WARN(ZS_BAD_RDATA); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; - case 307: + case 313: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = cs; cs = 886;goto _again;} + {stack[top++] = cs; cs = 900;goto _again;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = cs; cs = 888;goto _again;} + {stack[top++] = cs; cs = 902;goto _again;} case KNOT_RRTYPE_SOA: - {stack[top++] = cs; cs = 890;goto _again;} + {stack[top++] = cs; cs = 904;goto _again;} case KNOT_RRTYPE_HINFO: - {stack[top++] = cs; cs = 922;goto _again;} + {stack[top++] = cs; cs = 936;goto _again;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = cs; cs = 927;goto _again;} + {stack[top++] = cs; cs = 941;goto _again;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = cs; cs = 932;goto _again;} + {stack[top++] = cs; cs = 946;goto _again;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = cs; cs = 937;goto _again;} + {stack[top++] = cs; cs = 951;goto _again;} case KNOT_RRTYPE_AAAA: - {stack[top++] = cs; cs = 941;goto _again;} + {stack[top++] = cs; cs = 955;goto _again;} case KNOT_RRTYPE_LOC: - {stack[top++] = cs; cs = 943;goto _again;} + {stack[top++] = cs; cs = 957;goto _again;} case KNOT_RRTYPE_SRV: - {stack[top++] = cs; cs = 998;goto _again;} + {stack[top++] = cs; cs = 1012;goto _again;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = cs; cs = 1009;goto _again;} + {stack[top++] = cs; cs = 1023;goto _again;} case KNOT_RRTYPE_CERT: - {stack[top++] = cs; cs = 1026;goto _again;} + {stack[top++] = cs; cs = 1040;goto _again;} case KNOT_RRTYPE_APL: - {stack[top++] = cs; cs = 1037;goto _again;} + {stack[top++] = cs; cs = 1051;goto _again;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = cs; cs = 1048;goto _again;} + {stack[top++] = cs; cs = 1062;goto _again;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = cs; cs = 1061;goto _again;} + {stack[top++] = cs; cs = 1075;goto _again;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = cs; cs = 1071;goto _again;} + {stack[top++] = cs; cs = 1085;goto _again;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = cs; cs = 1110;goto _again;} + {stack[top++] = cs; cs = 1124;goto _again;} case KNOT_RRTYPE_NSEC: - {stack[top++] = cs; cs = 1302;goto _again;} + {stack[top++] = cs; cs = 1319;goto _again;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = cs; cs = 1305;goto _again;} + {stack[top++] = cs; cs = 1322;goto _again;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = cs; cs = 1316;goto _again;} + {stack[top++] = cs; cs = 1333;goto _again;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = cs; cs = 1318;goto _again;} + {stack[top++] = cs; cs = 1335;goto _again;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = cs; cs = 1347;goto _again;} + {stack[top++] = cs; cs = 1364;goto _again;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = cs; cs = 1360;goto _again;} + {stack[top++] = cs; cs = 1377;goto _again;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = cs; cs = 1373;goto _again;} + {stack[top++] = cs; cs = 1390;goto _again;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = cs; cs = 1379;goto _again;} + {stack[top++] = cs; cs = 1396;goto _again;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = cs; cs = 1397;goto _again;} + {stack[top++] = cs; cs = 1414;goto _again;} case KNOT_RRTYPE_L32: - {stack[top++] = cs; cs = 1392;goto _again;} + {stack[top++] = cs; cs = 1409;goto _again;} case KNOT_RRTYPE_EUI48: - {stack[top++] = cs; cs = 1410;goto _again;} + {stack[top++] = cs; cs = 1427;goto _again;} case KNOT_RRTYPE_EUI64: - {stack[top++] = cs; cs = 1416;goto _again;} + {stack[top++] = cs; cs = 1433;goto _again;} case KNOT_RRTYPE_URI: - {stack[top++] = cs; cs = 1422;goto _again;} + {stack[top++] = cs; cs = 1439;goto _again;} case KNOT_RRTYPE_CAA: - {stack[top++] = cs; cs = 1430;goto _again;} + {stack[top++] = cs; cs = 1447;goto _again;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = cs; cs = 1438;goto _again;} + {stack[top++] = cs; cs = 1455;goto _again;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = cs; cs = 1461;goto _again;} default: WARN(ZS_CANNOT_TEXT_DATA); - {cs = 316;goto _again;} + {cs = 319;goto _again;} } } break; - case 308: + case 314: { switch (s->r_type) { // Next types must not have empty rdata. @@ -9197,187 +9349,191 @@ _match: case KNOT_RRTYPE_CAA: case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: + case KNOT_RRTYPE_DSYNC: case KNOT_RRTYPE_WALLET: - {stack[top++] = cs; cs = 555;goto _again;} + {stack[top++] = cs; cs = 561;goto _again;} // Next types can have empty rdata. case KNOT_RRTYPE_APL: default: - {stack[top++] = cs; cs = 564;goto _again;} + {stack[top++] = cs; cs = 570;goto _again;} } } break; - case 309: + case 315: { if (pe - p == 1) { *wrap = WRAP_DETECTED; } } break; - case 310: + case 316: { if (*wrap == WRAP_NONE) { p--; } } break; - case 311: + case 317: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } break; - case 312: + case 318: { s->r_type = KNOT_RRTYPE_A; } break; - case 313: + case 319: { s->r_type = KNOT_RRTYPE_NS; } break; - case 314: + case 320: { s->r_type = KNOT_RRTYPE_CNAME; } break; - case 315: + case 321: { s->r_type = KNOT_RRTYPE_SOA; } break; - case 316: + case 322: { s->r_type = KNOT_RRTYPE_PTR; } break; - case 317: + case 323: { s->r_type = KNOT_RRTYPE_HINFO; } break; - case 318: + case 324: { s->r_type = KNOT_RRTYPE_MINFO; } break; - case 319: + case 325: { s->r_type = KNOT_RRTYPE_MX; } break; - case 320: + case 326: { s->r_type = KNOT_RRTYPE_TXT; } break; - case 321: + case 327: { s->r_type = KNOT_RRTYPE_RP; } break; - case 322: + case 328: { s->r_type = KNOT_RRTYPE_AFSDB; } break; - case 323: + case 329: { s->r_type = KNOT_RRTYPE_RT; } break; - case 324: + case 330: { s->r_type = KNOT_RRTYPE_KEY; } break; - case 325: + case 331: { s->r_type = KNOT_RRTYPE_AAAA; } break; - case 326: + case 332: { s->r_type = KNOT_RRTYPE_LOC; } break; - case 327: + case 333: { s->r_type = KNOT_RRTYPE_SRV; } break; - case 328: + case 334: { s->r_type = KNOT_RRTYPE_NAPTR; } break; - case 329: + case 335: { s->r_type = KNOT_RRTYPE_KX; } break; - case 330: + case 336: { s->r_type = KNOT_RRTYPE_CERT; } break; - case 331: + case 337: { s->r_type = KNOT_RRTYPE_DNAME; } break; - case 332: + case 338: { s->r_type = KNOT_RRTYPE_APL; } break; - case 333: + case 339: { s->r_type = KNOT_RRTYPE_DS; } break; - case 334: + case 340: { s->r_type = KNOT_RRTYPE_SSHFP; } break; - case 335: + case 341: { s->r_type = KNOT_RRTYPE_IPSECKEY; } break; - case 336: + case 342: { s->r_type = KNOT_RRTYPE_RRSIG; } break; - case 337: + case 343: { s->r_type = KNOT_RRTYPE_NSEC; } break; - case 338: + case 344: { s->r_type = KNOT_RRTYPE_DNSKEY; } break; - case 339: + case 345: { s->r_type = KNOT_RRTYPE_DHCID; } break; - case 340: + case 346: { s->r_type = KNOT_RRTYPE_NSEC3; } break; - case 341: + case 347: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } break; - case 342: + case 348: { s->r_type = KNOT_RRTYPE_TLSA; } break; - case 343: + case 349: { s->r_type = KNOT_RRTYPE_SMIMEA; } break; - case 344: + case 350: { s->r_type = KNOT_RRTYPE_CDS; } break; - case 345: + case 351: { s->r_type = KNOT_RRTYPE_CDNSKEY; } break; - case 346: + case 352: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } break; - case 347: + case 353: { s->r_type = KNOT_RRTYPE_CSYNC; } break; - case 348: + case 354: { s->r_type = KNOT_RRTYPE_ZONEMD; } break; - case 349: + case 355: { s->r_type = KNOT_RRTYPE_SPF; } break; - case 350: + case 356: { s->r_type = KNOT_RRTYPE_NID; } break; - case 351: + case 357: { s->r_type = KNOT_RRTYPE_L32; } break; - case 352: + case 358: { s->r_type = KNOT_RRTYPE_L64; } break; - case 353: + case 359: { s->r_type = KNOT_RRTYPE_LP; } break; - case 354: + case 360: { s->r_type = KNOT_RRTYPE_EUI48; } break; - case 355: + case 361: { s->r_type = KNOT_RRTYPE_EUI64; } break; - case 356: + case 362: { s->r_type = KNOT_RRTYPE_URI; } break; - case 357: + case 363: { s->r_type = KNOT_RRTYPE_CAA; } break; - case 358: + case 364: { s->r_type = KNOT_RRTYPE_SVCB; } break; - case 359: + case 365: { s->r_type = KNOT_RRTYPE_HTTPS; } break; - case 360: + case 366: + { s->r_type = KNOT_RRTYPE_DSYNC; } + break; + case 367: { s->r_type = KNOT_RRTYPE_WALLET; } break; - case 361: + case 368: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 316;goto _again;} + p--; {cs = 319;goto _again;} } s->r_data_length = rdata_tail - s->r_data; @@ -9417,7 +9573,7 @@ _again: case 8: { WARN(ZS_BAD_REST); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9425,7 +9581,7 @@ goto _again;} case 19: { WARN(ZS_BAD_NUMBER); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9433,7 +9589,7 @@ goto _again;} case 24: { WARN(ZS_BAD_DNAME_CHAR); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9442,7 +9598,7 @@ goto _again;} { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9450,7 +9606,7 @@ goto _again;} case 38: { WARN(ZS_BAD_NUMBER); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9458,7 +9614,7 @@ goto _again;} case 50: { WARN(ZS_BAD_TIME_UNIT); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9466,7 +9622,7 @@ goto _again;} case 60: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9474,7 +9630,7 @@ goto _again;} case 62: { WARN(ZS_BAD_TEXT_CHAR); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9482,7 +9638,7 @@ goto _again;} case 63: { WARN(ZS_BAD_TEXT); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9490,7 +9646,7 @@ goto _again;} case 67: { WARN(ZS_BAD_NUMBER); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9503,7 +9659,7 @@ goto _again;} case 73: { ERR(ZS_BAD_TTL); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9511,7 +9667,7 @@ goto _again;} case 77: { ERR(ZS_BAD_ORIGIN); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9519,7 +9675,7 @@ goto _again;} case 81: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9527,7 +9683,7 @@ goto _again;} case 84: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9540,7 +9696,7 @@ goto _again;} case 89: { ERR(ZS_BAD_DIRECTIVE); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9548,7 +9704,7 @@ goto _again;} case 96: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9556,7 +9712,7 @@ goto _again;} case 107: { WARN(ZS_BAD_APL); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9564,7 +9720,7 @@ goto _again;} case 110: { WARN(ZS_BAD_HEX_CHAR); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9572,7 +9728,7 @@ goto _again;} case 112: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9580,7 +9736,7 @@ goto _again;} case 117: { WARN(ZS_BAD_BASE64_CHAR); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9588,7 +9744,7 @@ goto _again;} case 127: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9596,7 +9752,7 @@ goto _again;} case 156: { WARN(ZS_BAD_GATEWAY); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9604,7 +9760,7 @@ goto _again;} case 157: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9612,95 +9768,103 @@ goto _again;} case 158: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 260: + case 264: { WARN(ZS_BAD_BITMAP); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 277: + case 281: { WARN(ZS_BAD_LOC_DATA); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 278: + case 282: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 283: + case 287: { WARN(ZS_BAD_CHAR_DASH); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 287: + case 291: { WARN(ZS_BAD_CHAR_COLON); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 290: + case 294: { WARN(ZS_BAD_SVCB_PARAM); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 291: + case 295: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 301: + case 305: { WARN(ZS_BAD_ALGORITHM); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 302: + case 306: { WARN(ZS_BAD_CERT_TYPE); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 306: + case 307: + { + WARN(ZS_BAD_DSYNC_SCHEME); + p--; {cs = 319; if ( p == pe ) + goto _test_eof; +goto _again;} + } + break; + case 312: { WARN(ZS_BAD_RDATA); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 311: + case 317: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 316; if ( p == pe ) + p--; {cs = 319; if ( p == pe ) goto _test_eof; goto _again;} } diff --git a/src/libzscanner/scanner_body.rl b/src/libzscanner/scanner_body.rl index cbe7c9f7b7..23e36c0b28 100644 --- a/src/libzscanner/scanner_body.rl +++ b/src/libzscanner/scanner_body.rl @@ -1419,9 +1419,17 @@ | "CAA"i %{ type_num(KNOT_RRTYPE_CAA, &rdata_tail); } | "SVCB"i %{ type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } | "HTTPS"i %{ type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } + | "DSYNC"i %{ type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } | "WALLET"i %{ type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } | "TYPE"i . num16 # TYPE0-TYPE65535. ) $!_type_error; + + # Reduced list of RR types in order to reduce the total number of states. + type_num_dsync = + ( "CDS"i %{ type_num(KNOT_RRTYPE_CDS, &rdata_tail); } + | "CSYNC"i %{ type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } + | "TYPE"i . num16 # TYPE0-TYPE65535. + ) $!_type_error; # END # BEGIN - Bitmap processing @@ -1486,6 +1494,7 @@ | "CAA"i %{ window_add_bit(KNOT_RRTYPE_CAA, s); } | "SVCB"i %{ window_add_bit(KNOT_RRTYPE_SVCB, s); } | "HTTPS"i %{ window_add_bit(KNOT_RRTYPE_HTTPS, s); } + | "DSYNC"i %{ window_add_bit(KNOT_RRTYPE_DSYNC, s); } | "WALLET"i %{ window_add_bit(KNOT_RRTYPE_WALLET, s); } | "TYPE"i . type_bitmap # TYPE0-TYPE65535. ); @@ -1883,6 +1892,10 @@ WARN(ZS_BAD_CERT_TYPE); fhold; fgoto err_line; } + action _dsync_scheme_error { + WARN(ZS_BAD_DSYNC_SCHEME); + fhold; fgoto err_line; + } dns_alg_ := ( number %_num8_write @@ -1919,6 +1932,12 @@ | "OID"i %_write16_254 ) $!_cert_type_error %_ret . all_wchar; cert_type = alnum ${ fhold; fcall cert_type_; }; + + dsync_scheme_ := + ( number %_num8_write + | "NOTIFY"i %_write8_1 + ) $!_dsync_scheme_error %_ret . all_wchar; + dsync_scheme = alnum ${ fhold; fcall dsync_scheme_; }; # END # BEGIN - Rdata processing @@ -2063,6 +2082,10 @@ (num16 . sep . r_dname . svcb_params) $!_r_data_error %_ret . all_wchar; + r_data_dsync := + (type_num_dsync . sep . dsync_scheme . sep . num16 . sep . r_dname ) + $!_r_data_error %_ret . all_wchar; + action _text_r_data { fhold; switch (s->r_type) { @@ -2147,6 +2170,8 @@ case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: fcall r_data_svcb; + case KNOT_RRTYPE_DSYNC: + fcall r_data_dsync; default: WARN(ZS_CANNOT_TEXT_DATA); fgoto err_line; @@ -2202,6 +2227,7 @@ case KNOT_RRTYPE_CAA: case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: + case KNOT_RRTYPE_DSYNC: case KNOT_RRTYPE_WALLET: fcall nonempty_hex_r_data; // Next types can have empty rdata. @@ -2287,6 +2313,7 @@ | "CAA"i %{ s->r_type = KNOT_RRTYPE_CAA; } | "SVCB"i %{ s->r_type = KNOT_RRTYPE_SVCB; } | "HTTPS"i %{ s->r_type = KNOT_RRTYPE_HTTPS; } + | "DSYNC"i %{ s->r_type = KNOT_RRTYPE_DSYNC; } | "WALLET"i %{ s->r_type = KNOT_RRTYPE_WALLET; } | "TYPE"i . type_number ) $!_r_type_error; diff --git a/tests/libzscanner/TESTS b/tests/libzscanner/TESTS index 1ac5755b68..7119f9521b 100644 --- a/tests/libzscanner/TESTS +++ b/tests/libzscanner/TESTS @@ -85,3 +85,4 @@ 57_SVCB 58_HTTPS 59_WALLET +60_DSYNC diff --git a/tests/libzscanner/data/60_DSYNC.in b/tests/libzscanner/data/60_DSYNC.in new file mode 100644 index 0000000000..a458a45f0a --- /dev/null +++ b/tests/libzscanner/data/60_DSYNC.in @@ -0,0 +1,16 @@ +$ORIGIN . +$TTL 1 + +; OK +@ DSYNC CDS NOTIFY 53 *._dsync.example. +@ TYPE66 CSYNC 1 5360 . +@ dsync type59 0 0 \000\001\002\003\004\005\006\007\008\009 + +; KO +@ DSYNC +@ DSYNC \# 0 +@ DSYNC CDS +@ DSYNC JUNK NOTIFY 53 example.com. +@ DSYNC CDS JUNK 53 junk._dsync.example. +@ DSYNC CDS NOTIFY 65567 port.number.overflow. +@ DSYNC CDS NOTIFY 5360 too-long-label.1234567890123456789012345678901234567890123456789012345678901234.example.com. diff --git a/tests/libzscanner/data/60_DSYNC.out b/tests/libzscanner/data/60_DSYNC.out new file mode 100644 index 0000000000..bada1faf6e --- /dev/null +++ b/tests/libzscanner/data/60_DSYNC.out @@ -0,0 +1,32 @@ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=0042 +RDATA=003B010035012A065F6473796E63076578616D706C6500 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=0042 +RDATA=003E0114F000 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=0042 +RDATA=003B0000000A0001020304050607080900 +------ +WARNG=ZS_UNSUPPORTED_TYPE +------ +WARNG=ZS_BAD_NUMBER +------ +WARNG=ZS_UNSUPPORTED_TYPE +------ +WARNG=ZS_UNSUPPORTED_TYPE +------ +WARNG=ZS_BAD_DSYNC_SCHEME +------ +WARNG=ZS_NUMBER16_OVERFLOW +------ +WARNG=ZS_LABEL_OVERFLOW +------ diff --git a/tests/libzscanner/test_zscanner.in b/tests/libzscanner/test_zscanner.in index 92d025298a..0f29ba7fa7 100644 --- a/tests/libzscanner/test_zscanner.in +++ b/tests/libzscanner/test_zscanner.in @@ -14,7 +14,7 @@ TMPDIR=$(test_tmpdir) TESTS_DIR="$SOURCE"/data ZSCANNER_TOOL="$BUILD"/zscanner-tool -plan 87 +plan 88 mkdir -p "$TMPDIR"/includes/ for a in 1 2 3 4 5 6; do From b64678fa48b7e2aba0b6735e87610ca2e59f8f64 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 3 Nov 2025 09:48:38 +0100 Subject: [PATCH 224/675] libzscanner: merge type_num with type_num_dsync --- src/libzscanner/scanner.c.g2 | 86315 +++++++++++++------------- src/libzscanner/scanner.c.t0 | 8916 ++- src/libzscanner/scanner_body.rl | 14 +- tests/libzscanner/data/36_RRSIG.out | 4 +- tests/libzscanner/data/60_DSYNC.out | 4 +- 5 files changed, 46332 insertions(+), 48921 deletions(-) diff --git a/src/libzscanner/scanner.c.g2 b/src/libzscanner/scanner.c.g2 index bdb129dec4..857f52b239 100644 --- a/src/libzscanner/scanner.c.g2 +++ b/src/libzscanner/scanner.c.g2 @@ -99,7 +99,7 @@ int zs_init( memset(s, 0, sizeof(*s)); // Nonzero initial scanner state. - s->cs = 1483; + s->cs = 1474; // Reset the file descriptor. s->file.descriptor = -1; @@ -429,7 +429,7 @@ static void parse( _again: switch ( cs ) { - case 1483: goto st1483; + case 1474: goto st1474; case 0: goto st0; case 1: goto st1; case 2: goto st2; @@ -444,7 +444,7 @@ _again: case 11: goto st11; case 12: goto st12; case 13: goto st13; - case 1484: goto st1484; + case 1475: goto st1475; case 14: goto st14; case 15: goto st15; case 16: goto st16; @@ -614,7 +614,7 @@ _again: case 180: goto st180; case 181: goto st181; case 182: goto st182; - case 1485: goto st1485; + case 1476: goto st1476; case 183: goto st183; case 184: goto st184; case 185: goto st185; @@ -625,7 +625,7 @@ _again: case 190: goto st190; case 191: goto st191; case 192: goto st192; - case 1486: goto st1486; + case 1477: goto st1477; case 193: goto st193; case 194: goto st194; case 195: goto st195; @@ -634,11 +634,11 @@ _again: case 198: goto st198; case 199: goto st199; case 200: goto st200; - case 1487: goto st1487; + case 1478: goto st1478; case 201: goto st201; case 202: goto st202; case 203: goto st203; - case 1488: goto st1488; + case 1479: goto st1479; case 204: goto st204; case 205: goto st205; case 206: goto st206; @@ -650,12 +650,12 @@ _again: case 212: goto st212; case 213: goto st213; case 214: goto st214; - case 1489: goto st1489; + case 1480: goto st1480; case 215: goto st215; case 216: goto st216; case 217: goto st217; case 218: goto st218; - case 1490: goto st1490; + case 1481: goto st1481; case 219: goto st219; case 220: goto st220; case 221: goto st221; @@ -675,7 +675,7 @@ _again: case 235: goto st235; case 236: goto st236; case 237: goto st237; - case 1491: goto st1491; + case 1482: goto st1482; case 238: goto st238; case 239: goto st239; case 240: goto st240; @@ -692,7 +692,7 @@ _again: case 251: goto st251; case 252: goto st252; case 253: goto st253; - case 1492: goto st1492; + case 1483: goto st1483; case 254: goto st254; case 255: goto st255; case 256: goto st256; @@ -758,13 +758,13 @@ _again: case 316: goto st316; case 317: goto st317; case 318: goto st318; - case 1493: goto st1493; + case 1484: goto st1484; case 319: goto st319; case 320: goto st320; - case 1494: goto st1494; + case 1485: goto st1485; case 321: goto st321; case 322: goto st322; - case 1495: goto st1495; + case 1486: goto st1486; case 323: goto st323; case 324: goto st324; case 325: goto st325; @@ -774,8 +774,8 @@ _again: case 329: goto st329; case 330: goto st330; case 331: goto st331; - case 1496: goto st1496; - case 1497: goto st1497; + case 1487: goto st1487; + case 1488: goto st1488; case 332: goto st332; case 333: goto st333; case 334: goto st334; @@ -791,7 +791,7 @@ _again: case 344: goto st344; case 345: goto st345; case 346: goto st346; - case 1498: goto st1498; + case 1489: goto st1489; case 347: goto st347; case 348: goto st348; case 349: goto st349; @@ -802,7 +802,7 @@ _again: case 354: goto st354; case 355: goto st355; case 356: goto st356; - case 1499: goto st1499; + case 1490: goto st1490; case 357: goto st357; case 358: goto st358; case 359: goto st359; @@ -817,7 +817,7 @@ _again: case 368: goto st368; case 369: goto st369; case 370: goto st370; - case 1500: goto st1500; + case 1491: goto st1491; case 371: goto st371; case 372: goto st372; case 373: goto st373; @@ -825,7 +825,7 @@ _again: case 375: goto st375; case 376: goto st376; case 377: goto st377; - case 1501: goto st1501; + case 1492: goto st1492; case 378: goto st378; case 379: goto st379; case 380: goto st380; @@ -835,23 +835,21 @@ _again: case 384: goto st384; case 385: goto st385; case 386: goto st386; - case 1502: goto st1502; - case 1503: goto st1503; - case 1504: goto st1504; + case 1493: goto st1493; + case 1494: goto st1494; + case 1495: goto st1495; case 387: goto st387; case 388: goto st388; case 389: goto st389; + case 1496: goto st1496; case 390: goto st390; case 391: goto st391; case 392: goto st392; case 393: goto st393; case 394: goto st394; - case 1505: goto st1505; - case 1506: goto st1506; case 395: goto st395; case 396: goto st396; case 397: goto st397; - case 1507: goto st1507; case 398: goto st398; case 399: goto st399; case 400: goto st400; @@ -1020,34 +1018,28 @@ _again: case 563: goto st563; case 564: goto st564; case 565: goto st565; + case 1497: goto st1497; + case 1498: goto st1498; case 566: goto st566; case 567: goto st567; - case 1508: goto st1508; - case 1509: goto st1509; - case 1510: goto st1510; case 568: goto st568; + case 1499: goto st1499; case 569: goto st569; case 570: goto st570; case 571: goto st571; case 572: goto st572; - case 1511: goto st1511; case 573: goto st573; case 574: goto st574; case 575: goto st575; case 576: goto st576; - case 1512: goto st1512; - case 1513: goto st1513; - case 1514: goto st1514; case 577: goto st577; case 578: goto st578; - case 1515: goto st1515; case 579: goto st579; case 580: goto st580; case 581: goto st581; case 582: goto st582; case 583: goto st583; case 584: goto st584; - case 1516: goto st1516; case 585: goto st585; case 586: goto st586; case 587: goto st587; @@ -1108,8 +1100,6 @@ _again: case 642: goto st642; case 643: goto st643; case 644: goto st644; - case 1517: goto st1517; - case 1518: goto st1518; case 645: goto st645; case 646: goto st646; case 647: goto st647; @@ -1119,7 +1109,6 @@ _again: case 651: goto st651; case 652: goto st652; case 653: goto st653; - case 1519: goto st1519; case 654: goto st654; case 655: goto st655; case 656: goto st656; @@ -1205,24 +1194,32 @@ _again: case 736: goto st736; case 737: goto st737; case 738: goto st738; + case 1500: goto st1500; + case 1501: goto st1501; + case 1502: goto st1502; case 739: goto st739; case 740: goto st740; case 741: goto st741; case 742: goto st742; case 743: goto st743; + case 1503: goto st1503; case 744: goto st744; case 745: goto st745; case 746: goto st746; case 747: goto st747; + case 1504: goto st1504; + case 1505: goto st1505; + case 1506: goto st1506; case 748: goto st748; - case 1520: goto st1520; case 749: goto st749; + case 1507: goto st1507; case 750: goto st750; case 751: goto st751; case 752: goto st752; case 753: goto st753; case 754: goto st754; case 755: goto st755; + case 1508: goto st1508; case 756: goto st756; case 757: goto st757; case 758: goto st758; @@ -1283,6 +1280,8 @@ _again: case 813: goto st813; case 814: goto st814; case 815: goto st815; + case 1509: goto st1509; + case 1510: goto st1510; case 816: goto st816; case 817: goto st817; case 818: goto st818; @@ -1292,6 +1291,7 @@ _again: case 822: goto st822; case 823: goto st823; case 824: goto st824; + case 1511: goto st1511; case 825: goto st825; case 826: goto st826; case 827: goto st827; @@ -1320,7 +1320,6 @@ _again: case 850: goto st850; case 851: goto st851; case 852: goto st852; - case 1521: goto st1521; case 853: goto st853; case 854: goto st854; case 855: goto st855; @@ -1362,7 +1361,6 @@ _again: case 891: goto st891; case 892: goto st892; case 893: goto st893; - case 1522: goto st1522; case 894: goto st894; case 895: goto st895; case 896: goto st896; @@ -1371,10 +1369,8 @@ _again: case 899: goto st899; case 900: goto st900; case 901: goto st901; - case 1523: goto st1523; case 902: goto st902; case 903: goto st903; - case 1524: goto st1524; case 904: goto st904; case 905: goto st905; case 906: goto st906; @@ -1389,9 +1385,9 @@ _again: case 915: goto st915; case 916: goto st916; case 917: goto st917; - case 1525: goto st1525; case 918: goto st918; case 919: goto st919; + case 1512: goto st1512; case 920: goto st920; case 921: goto st921; case 922: goto st922; @@ -1412,30 +1408,23 @@ _again: case 937: goto st937; case 938: goto st938; case 939: goto st939; - case 1526: goto st1526; case 940: goto st940; case 941: goto st941; case 942: goto st942; case 943: goto st943; case 944: goto st944; - case 1527: goto st1527; case 945: goto st945; case 946: goto st946; case 947: goto st947; case 948: goto st948; case 949: goto st949; - case 1528: goto st1528; case 950: goto st950; case 951: goto st951; case 952: goto st952; case 953: goto st953; case 954: goto st954; - case 1529: goto st1529; - case 1530: goto st1530; - case 1531: goto st1531; case 955: goto st955; case 956: goto st956; - case 1532: goto st1532; case 957: goto st957; case 958: goto st958; case 959: goto st959; @@ -1463,26 +1452,17 @@ _again: case 981: goto st981; case 982: goto st982; case 983: goto st983; - case 1533: goto st1533; - case 1534: goto st1534; - case 1535: goto st1535; case 984: goto st984; case 985: goto st985; case 986: goto st986; - case 1536: goto st1536; - case 1537: goto st1537; case 987: goto st987; case 988: goto st988; case 989: goto st989; case 990: goto st990; - case 1538: goto st1538; - case 1539: goto st1539; case 991: goto st991; case 992: goto st992; case 993: goto st993; case 994: goto st994; - case 1540: goto st1540; - case 1541: goto st1541; case 995: goto st995; case 996: goto st996; case 997: goto st997; @@ -1508,11 +1488,11 @@ _again: case 1017: goto st1017; case 1018: goto st1018; case 1019: goto st1019; - case 1542: goto st1542; case 1020: goto st1020; case 1021: goto st1021; case 1022: goto st1022; case 1023: goto st1023; + case 1513: goto st1513; case 1024: goto st1024; case 1025: goto st1025; case 1026: goto st1026; @@ -1524,7 +1504,6 @@ _again: case 1032: goto st1032; case 1033: goto st1033; case 1034: goto st1034; - case 1543: goto st1543; case 1035: goto st1035; case 1036: goto st1036; case 1037: goto st1037; @@ -1538,7 +1517,6 @@ _again: case 1045: goto st1045; case 1046: goto st1046; case 1047: goto st1047; - case 1544: goto st1544; case 1048: goto st1048; case 1049: goto st1049; case 1050: goto st1050; @@ -1550,15 +1528,13 @@ _again: case 1056: goto st1056; case 1057: goto st1057; case 1058: goto st1058; - case 1545: goto st1545; - case 1546: goto st1546; case 1059: goto st1059; case 1060: goto st1060; case 1061: goto st1061; - case 1547: goto st1547; case 1062: goto st1062; case 1063: goto st1063; case 1064: goto st1064; + case 1514: goto st1514; case 1065: goto st1065; case 1066: goto st1066; case 1067: goto st1067; @@ -1566,12 +1542,11 @@ _again: case 1069: goto st1069; case 1070: goto st1070; case 1071: goto st1071; - case 1548: goto st1548; - case 1549: goto st1549; - case 1550: goto st1550; case 1072: goto st1072; + case 1515: goto st1515; case 1073: goto st1073; case 1074: goto st1074; + case 1516: goto st1516; case 1075: goto st1075; case 1076: goto st1076; case 1077: goto st1077; @@ -1580,33 +1555,24 @@ _again: case 1080: goto st1080; case 1081: goto st1081; case 1082: goto st1082; - case 1551: goto st1551; - case 1552: goto st1552; - case 1553: goto st1553; case 1083: goto st1083; case 1084: goto st1084; case 1085: goto st1085; case 1086: goto st1086; case 1087: goto st1087; case 1088: goto st1088; + case 1517: goto st1517; case 1089: goto st1089; case 1090: goto st1090; case 1091: goto st1091; case 1092: goto st1092; case 1093: goto st1093; case 1094: goto st1094; - case 1554: goto st1554; case 1095: goto st1095; case 1096: goto st1096; case 1097: goto st1097; - case 1555: goto st1555; - case 1556: goto st1556; case 1098: goto st1098; - case 1557: goto st1557; - case 1558: goto st1558; case 1099: goto st1099; - case 1559: goto st1559; - case 1560: goto st1560; case 1100: goto st1100; case 1101: goto st1101; case 1102: goto st1102; @@ -1618,23 +1584,30 @@ _again: case 1108: goto st1108; case 1109: goto st1109; case 1110: goto st1110; + case 1518: goto st1518; case 1111: goto st1111; case 1112: goto st1112; case 1113: goto st1113; case 1114: goto st1114; case 1115: goto st1115; + case 1519: goto st1519; case 1116: goto st1116; case 1117: goto st1117; case 1118: goto st1118; case 1119: goto st1119; case 1120: goto st1120; + case 1520: goto st1520; case 1121: goto st1121; case 1122: goto st1122; case 1123: goto st1123; case 1124: goto st1124; case 1125: goto st1125; + case 1521: goto st1521; + case 1522: goto st1522; + case 1523: goto st1523; case 1126: goto st1126; case 1127: goto st1127; + case 1524: goto st1524; case 1128: goto st1128; case 1129: goto st1129; case 1130: goto st1130; @@ -1649,7 +1622,6 @@ _again: case 1139: goto st1139; case 1140: goto st1140; case 1141: goto st1141; - case 1561: goto st1561; case 1142: goto st1142; case 1143: goto st1143; case 1144: goto st1144; @@ -1663,17 +1635,26 @@ _again: case 1152: goto st1152; case 1153: goto st1153; case 1154: goto st1154; + case 1525: goto st1525; + case 1526: goto st1526; + case 1527: goto st1527; case 1155: goto st1155; case 1156: goto st1156; case 1157: goto st1157; + case 1528: goto st1528; + case 1529: goto st1529; case 1158: goto st1158; case 1159: goto st1159; case 1160: goto st1160; case 1161: goto st1161; + case 1530: goto st1530; + case 1531: goto st1531; case 1162: goto st1162; case 1163: goto st1163; case 1164: goto st1164; case 1165: goto st1165; + case 1532: goto st1532; + case 1533: goto st1533; case 1166: goto st1166; case 1167: goto st1167; case 1168: goto st1168; @@ -1699,6 +1680,7 @@ _again: case 1188: goto st1188; case 1189: goto st1189; case 1190: goto st1190; + case 1534: goto st1534; case 1191: goto st1191; case 1192: goto st1192; case 1193: goto st1193; @@ -1714,6 +1696,7 @@ _again: case 1203: goto st1203; case 1204: goto st1204; case 1205: goto st1205; + case 1535: goto st1535; case 1206: goto st1206; case 1207: goto st1207; case 1208: goto st1208; @@ -1727,6 +1710,7 @@ _again: case 1216: goto st1216; case 1217: goto st1217; case 1218: goto st1218; + case 1536: goto st1536; case 1219: goto st1219; case 1220: goto st1220; case 1221: goto st1221; @@ -1738,9 +1722,12 @@ _again: case 1227: goto st1227; case 1228: goto st1228; case 1229: goto st1229; + case 1537: goto st1537; + case 1538: goto st1538; case 1230: goto st1230; case 1231: goto st1231; case 1232: goto st1232; + case 1539: goto st1539; case 1233: goto st1233; case 1234: goto st1234; case 1235: goto st1235; @@ -1751,6 +1738,9 @@ _again: case 1240: goto st1240; case 1241: goto st1241; case 1242: goto st1242; + case 1540: goto st1540; + case 1541: goto st1541; + case 1542: goto st1542; case 1243: goto st1243; case 1244: goto st1244; case 1245: goto st1245; @@ -1762,6 +1752,9 @@ _again: case 1251: goto st1251; case 1252: goto st1252; case 1253: goto st1253; + case 1543: goto st1543; + case 1544: goto st1544; + case 1545: goto st1545; case 1254: goto st1254; case 1255: goto st1255; case 1256: goto st1256; @@ -1774,11 +1767,18 @@ _again: case 1263: goto st1263; case 1264: goto st1264; case 1265: goto st1265; + case 1546: goto st1546; case 1266: goto st1266; case 1267: goto st1267; case 1268: goto st1268; + case 1547: goto st1547; + case 1548: goto st1548; case 1269: goto st1269; + case 1549: goto st1549; + case 1550: goto st1550; case 1270: goto st1270; + case 1551: goto st1551; + case 1552: goto st1552; case 1271: goto st1271; case 1272: goto st1272; case 1273: goto st1273; @@ -1821,6 +1821,7 @@ _again: case 1310: goto st1310; case 1311: goto st1311; case 1312: goto st1312; + case 1553: goto st1553; case 1313: goto st1313; case 1314: goto st1314; case 1315: goto st1315; @@ -1830,24 +1831,24 @@ _again: case 1319: goto st1319; case 1320: goto st1320; case 1321: goto st1321; - case 1562: goto st1562; case 1322: goto st1322; case 1323: goto st1323; + case 1554: goto st1554; case 1324: goto st1324; case 1325: goto st1325; case 1326: goto st1326; case 1327: goto st1327; case 1328: goto st1328; case 1329: goto st1329; - case 1563: goto st1563; case 1330: goto st1330; case 1331: goto st1331; + case 1555: goto st1555; case 1332: goto st1332; case 1333: goto st1333; case 1334: goto st1334; - case 1564: goto st1564; case 1335: goto st1335; case 1336: goto st1336; + case 1556: goto st1556; case 1337: goto st1337; case 1338: goto st1338; case 1339: goto st1339; @@ -1864,9 +1865,9 @@ _again: case 1350: goto st1350; case 1351: goto st1351; case 1352: goto st1352; - case 1565: goto st1565; case 1353: goto st1353; case 1354: goto st1354; + case 1557: goto st1557; case 1355: goto st1355; case 1356: goto st1356; case 1357: goto st1357; @@ -1884,9 +1885,9 @@ _again: case 1369: goto st1369; case 1370: goto st1370; case 1371: goto st1371; - case 1566: goto st1566; case 1372: goto st1372; case 1373: goto st1373; + case 1558: goto st1558; case 1374: goto st1374; case 1375: goto st1375; case 1376: goto st1376; @@ -1900,20 +1901,20 @@ _again: case 1384: goto st1384; case 1385: goto st1385; case 1386: goto st1386; - case 1567: goto st1567; - case 1568: goto st1568; - case 1569: goto st1569; case 1387: goto st1387; case 1388: goto st1388; + case 1559: goto st1559; + case 1560: goto st1560; + case 1561: goto st1561; case 1389: goto st1389; case 1390: goto st1390; case 1391: goto st1391; case 1392: goto st1392; case 1393: goto st1393; case 1394: goto st1394; - case 1570: goto st1570; case 1395: goto st1395; case 1396: goto st1396; + case 1562: goto st1562; case 1397: goto st1397; case 1398: goto st1398; case 1399: goto st1399; @@ -1923,19 +1924,19 @@ _again: case 1403: goto st1403; case 1404: goto st1404; case 1405: goto st1405; - case 1571: goto st1571; - case 1572: goto st1572; - case 1573: goto st1573; case 1406: goto st1406; case 1407: goto st1407; + case 1563: goto st1563; + case 1564: goto st1564; + case 1565: goto st1565; case 1408: goto st1408; case 1409: goto st1409; case 1410: goto st1410; case 1411: goto st1411; case 1412: goto st1412; - case 1574: goto st1574; case 1413: goto st1413; case 1414: goto st1414; + case 1566: goto st1566; case 1415: goto st1415; case 1416: goto st1416; case 1417: goto st1417; @@ -1947,48 +1948,48 @@ _again: case 1423: goto st1423; case 1424: goto st1424; case 1425: goto st1425; - case 1575: goto st1575; case 1426: goto st1426; case 1427: goto st1427; + case 1567: goto st1567; case 1428: goto st1428; case 1429: goto st1429; case 1430: goto st1430; case 1431: goto st1431; case 1432: goto st1432; - case 1576: goto st1576; case 1433: goto st1433; case 1434: goto st1434; + case 1568: goto st1568; case 1435: goto st1435; case 1436: goto st1436; case 1437: goto st1437; case 1438: goto st1438; - case 1577: goto st1577; case 1439: goto st1439; case 1440: goto st1440; + case 1569: goto st1569; case 1441: goto st1441; case 1442: goto st1442; case 1443: goto st1443; case 1444: goto st1444; - case 1578: goto st1578; case 1445: goto st1445; case 1446: goto st1446; + case 1570: goto st1570; case 1447: goto st1447; case 1448: goto st1448; case 1449: goto st1449; case 1450: goto st1450; case 1451: goto st1451; case 1452: goto st1452; - case 1579: goto st1579; case 1453: goto st1453; case 1454: goto st1454; + case 1571: goto st1571; case 1455: goto st1455; case 1456: goto st1456; case 1457: goto st1457; case 1458: goto st1458; case 1459: goto st1459; - case 1580: goto st1580; case 1460: goto st1460; case 1461: goto st1461; + case 1572: goto st1572; case 1462: goto st1462; case 1463: goto st1463; case 1464: goto st1464; @@ -1998,19 +1999,10 @@ _again: case 1468: goto st1468; case 1469: goto st1469; case 1470: goto st1470; - case 1581: goto st1581; + case 1573: goto st1573; case 1471: goto st1471; case 1472: goto st1472; case 1473: goto st1473; - case 1474: goto st1474; - case 1475: goto st1475; - case 1476: goto st1476; - case 1477: goto st1477; - case 1478: goto st1478; - case 1479: goto st1479; - case 1480: goto st1480; - case 1481: goto st1481; - case 1482: goto st1482; default: break; } @@ -2023,7 +2015,7 @@ tr23: { s->line_counter++; } - goto st1483; + goto st1474; tr89: { s->buffer[0] = 0; @@ -2045,18 +2037,18 @@ tr89: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1474; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1483; goto _out;} + p--; {p++; cs = 1474; goto _out;} } } { s->line_counter++; } - goto st1483; + goto st1474; tr95: { if (rdata_tail - s->r_data > UINT16_MAX) { @@ -2074,18 +2066,18 @@ tr95: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1474; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1483; goto _out;} + p--; {p++; cs = 1474; goto _out;} } } { s->line_counter++; } - goto st1483; + goto st1474; tr98: { s->buffer[s->buffer_length++] = 0; @@ -2096,7 +2088,7 @@ tr98: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1474; goto _out;} } } } @@ -2116,18 +2108,18 @@ tr98: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1474; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1483; goto _out;} + p--; {p++; cs = 1474; goto _out;} } } { s->line_counter++; } - goto st1483; + goto st1474; tr783: { s->buffer[s->buffer_length++] = 0; @@ -2138,14 +2130,14 @@ tr783: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1474; goto _out;} } } } { s->line_counter++; } - goto st1483; + goto st1474; tr877: { s->buffer[0] = 0; @@ -2160,7 +2152,7 @@ tr877: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1474; goto _out;} } } } @@ -2180,18 +2172,18 @@ tr877: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1474; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1483; goto _out;} + p--; {p++; cs = 1474; goto _out;} } } { s->line_counter++; } - goto st1483; + goto st1474; tr995: { s->buffer[0] = 0; @@ -2213,12 +2205,12 @@ tr995: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1474; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1483; goto _out;} + p--; {p++; cs = 1474; goto _out;} } } { @@ -2233,11 +2225,11 @@ tr995: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1474; goto _out;} } } } - goto st1483; + goto st1474; tr999: { if (rdata_tail - s->r_data > UINT16_MAX) { @@ -2255,12 +2247,12 @@ tr999: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1474; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1483; goto _out;} + p--; {p++; cs = 1474; goto _out;} } } { @@ -2275,12 +2267,12 @@ tr999: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1474; goto _out;} } } } - goto st1483; -tr4391: + goto st1474; +tr4161: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2288,8 +2280,8 @@ tr4391: { s->line_counter++; } - goto st1483; -tr4457: + goto st1474; +tr4227: { NOERR; } @@ -2300,11 +2292,11 @@ tr4457: { s->line_counter++; } - goto st1483; -st1483: + goto st1474; +st1474: if ( ++p == pe ) - goto _test_eof1483; -case 1483: + goto _test_eof1474; +case 1474: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -2318,28 +2310,28 @@ case 1483: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4386; - case 32: goto tr4386; + case 9: goto tr4156; + case 32: goto tr4156; case 36: goto st193; - case 40: goto tr4388; - case 41: goto tr4389; - case 42: goto tr4390; - case 92: goto tr4390; - case 95: goto tr4390; - case 1802: goto tr4391; - case 1851: goto tr4392; - case 2058: goto tr4393; - case 2107: goto tr4394; + case 40: goto tr4158; + case 41: goto tr4159; + case 42: goto tr4160; + case 92: goto tr4160; + case 95: goto tr4160; + case 1802: goto tr4161; + case 1851: goto tr4162; + case 2058: goto tr4163; + case 2107: goto tr4164; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4390; + goto tr4160; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4390; + goto tr4160; } else - goto tr4390; - goto tr4385; + goto tr4160; + goto tr4155; tr0: { WARN(ZS_BAD_NUMBER); @@ -2817,18 +2809,34 @@ tr1232: } goto st0; tr1248: + { + WARN(ZS_UNSUPPORTED_TYPE); + p--; {goto st319;} + } + goto st0; +tr1453: + { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + { + WARN(ZS_UNSUPPORTED_TYPE); + p--; {goto st319;} + } + goto st0; +tr1472: { WARN(ZS_BAD_BITMAP); p--; {goto st319;} } goto st0; -tr1846: +tr2070: { WARN(ZS_BAD_HEX_RDATA); p--; {goto st319;} } goto st0; -tr1852: +tr2076: { WARN(ZS_BAD_NUMBER); p--; {goto st319;} @@ -2838,7 +2846,7 @@ tr1852: p--; {goto st319;} } goto st0; -tr1860: +tr2084: { WARN(ZS_BAD_HEX_CHAR); p--; {goto st319;} @@ -2852,13 +2860,13 @@ tr1860: p--; {goto st319;} } goto st0; -tr1922: +tr2146: { WARN(ZS_BAD_SVCB_MANDATORY); p--; {goto st319;} } goto st0; -tr1961: +tr2185: { WARN(ZS_BAD_NUMBER); p--; {goto st319;} @@ -2868,13 +2876,13 @@ tr1961: p--; {goto st319;} } goto st0; -tr1989: +tr2213: { WARN(ZS_BAD_SVCB_PARAM); p--; {goto st319;} } goto st0; -tr2085: +tr2309: { WARN(ZS_BAD_ADDRESS_CHAR); p--; {goto st319;} @@ -2884,7 +2892,7 @@ tr2085: p--; {goto st319;} } goto st0; -tr2129: +tr2353: { WARN(ZS_BAD_NUMBER); p--; {goto st319;} @@ -2894,25 +2902,25 @@ tr2129: p--; {goto st319;} } goto st0; -tr2220: +tr2444: { WARN(ZS_BAD_ALGORITHM); p--; {goto st319;} } goto st0; -tr2342: +tr2566: { WARN(ZS_BAD_CERT_TYPE); p--; {goto st319;} } goto st0; -tr2395: +tr2619: { WARN(ZS_BAD_DSYNC_SCHEME); p--; {goto st319;} } goto st0; -tr2406: +tr2630: { WARN(ZS_BAD_ADDRESS_CHAR); p--; {goto st319;} @@ -2922,7 +2930,7 @@ tr2406: p--; {goto st319;} } goto st0; -tr2429: +tr2653: { WARN(ZS_BAD_NUMBER); p--; {goto st319;} @@ -2932,7 +2940,7 @@ tr2429: p--; {goto st319;} } goto st0; -tr2448: +tr2672: { WARN(ZS_BAD_TIME_UNIT); p--; {goto st319;} @@ -2946,7 +2954,7 @@ tr2448: p--; {goto st319;} } goto st0; -tr2614: +tr2838: { s->long_string = false; } @@ -2955,7 +2963,7 @@ tr2614: p--; {goto st319;} } goto st0; -tr2637: +tr2861: { WARN(ZS_BAD_LOC_DATA); p--; {goto st319;} @@ -2965,7 +2973,7 @@ tr2637: p--; {goto st319;} } goto st0; -tr3040: +tr3264: { WARN(ZS_BAD_APL); p--; {goto st319;} @@ -2975,7 +2983,7 @@ tr3040: p--; {goto st319;} } goto st0; -tr3055: +tr3279: { WARN(ZS_BAD_ADDRESS_CHAR); p--; {goto st319;} @@ -2989,7 +2997,7 @@ tr3055: p--; {goto st319;} } goto st0; -tr3100: +tr3324: { WARN(ZS_BAD_HEX_CHAR); p--; {goto st319;} @@ -2999,7 +3007,7 @@ tr3100: p--; {goto st319;} } goto st0; -tr3171: +tr3395: { WARN(ZS_BAD_GATEWAY); p--; {goto st319;} @@ -3009,7 +3017,7 @@ tr3171: p--; {goto st319;} } goto st0; -tr3186: +tr3410: { WARN(ZS_BAD_NUMBER); p--; {goto st319;} @@ -3023,7 +3031,7 @@ tr3186: p--; {goto st319;} } goto st0; -tr3200: +tr3424: { WARN(ZS_BAD_GATEWAY); p--; {goto st319;} @@ -3037,7 +3045,7 @@ tr3200: p--; {goto st319;} } goto st0; -tr3223: +tr3447: { WARN(ZS_BAD_GATEWAY_KEY); p--; {goto st319;} @@ -3047,7 +3055,7 @@ tr3223: p--; {goto st319;} } goto st0; -tr3247: +tr3471: { WARN(ZS_BAD_ADDRESS_CHAR); p--; {goto st319;} @@ -3061,7 +3069,7 @@ tr3247: p--; {goto st319;} } goto st0; -tr3254: +tr3478: { WARN(ZS_BAD_ADDRESS_CHAR); p--; {goto st319;} @@ -3079,17 +3087,7 @@ tr3254: p--; {goto st319;} } goto st0; -tr3373: - { - WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} - } - { - WARN(ZS_BAD_RDATA); - p--; {goto st319;} - } - goto st0; -tr3430: +tr3628: { WARN(ZS_BAD_TIMESTAMP_CHAR); p--; {goto st319;} @@ -3099,21 +3097,7 @@ tr3430: p--; {goto st319;} } goto st0; -tr3867: - { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - { - WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} - } - { - WARN(ZS_BAD_RDATA); - p--; {goto st319;} - } - goto st0; -tr3988: +tr3785: { WARN(ZS_BAD_BASE32HEX_CHAR); p--; {goto st319;} @@ -3123,7 +3107,7 @@ tr3988: p--; {goto st319;} } goto st0; -tr4227: +tr4024: { WARN(ZS_BAD_HEX_CHAR); p--; {goto st319;} @@ -3137,7 +3121,7 @@ tr4227: p--; {goto st319;} } goto st0; -tr4233: +tr4030: { WARN(ZS_BAD_CHAR_COLON); p--; {goto st319;} @@ -3151,7 +3135,7 @@ tr4233: p--; {goto st319;} } goto st0; -tr4239: +tr4036: { WARN(ZS_BAD_CHAR_DASH); p--; {goto st319;} @@ -3165,7 +3149,7 @@ tr4239: p--; {goto st319;} } goto st0; -tr4385: +tr4155: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); @@ -3176,7 +3160,7 @@ tr4385: p--; {goto st319;} } goto st0; -tr4407: +tr4177: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); @@ -3191,7 +3175,7 @@ tr4407: p--; {goto st319;} } goto st0; -tr4431: +tr4201: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); @@ -3210,7 +3194,7 @@ tr4431: p--; {goto st319;} } goto st0; -tr4451: +tr4221: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); @@ -3225,7 +3209,7 @@ tr4451: p--; {goto st319;} } goto st0; -tr4475: +tr4245: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); @@ -3269,7 +3253,7 @@ tr3: s->multiline = false; } goto st1; -tr4386: +tr4156: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); @@ -3281,7 +3265,7 @@ tr4386: s->buffer_length = 0; } goto st1; -tr4388: +tr4158: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); @@ -3300,7 +3284,7 @@ tr4388: s->buffer_length = 0; } goto st1; -tr4389: +tr4159: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); @@ -3319,7 +3303,7 @@ tr4389: s->buffer_length = 0; } goto st1; -tr4461: +tr4231: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -3338,7 +3322,7 @@ tr4461: s->buffer_length = 0; } goto st1; -tr4462: +tr4232: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -3357,7 +3341,7 @@ tr4462: s->buffer_length = 0; } goto st1; -tr4452: +tr4222: { NOERR; } @@ -3372,7 +3356,7 @@ tr4452: s->buffer_length = 0; } goto st1; -tr4454: +tr4224: { NOERR; } @@ -3394,7 +3378,7 @@ tr4454: s->buffer_length = 0; } goto st1; -tr4455: +tr4225: { NOERR; } @@ -6069,88 +6053,88 @@ tr72: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -6162,88 +6146,88 @@ tr75: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -6260,88 +6244,88 @@ tr99: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -6401,11 +6385,11 @@ tr100: case KNOT_RRTYPE_HTTPS: case KNOT_RRTYPE_DSYNC: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st561;} + {stack[top++] = 6;goto st732;} // Next types can have empty rdata. case KNOT_RRTYPE_APL: default: - {stack[top++] = 6;goto st570;} + {stack[top++] = 6;goto st741;} } } goto st6; @@ -6418,88 +6402,88 @@ tr171: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -6515,88 +6499,88 @@ tr193: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -6612,88 +6596,88 @@ tr201: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -6709,88 +6693,88 @@ tr211: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -6806,88 +6790,88 @@ tr222: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -6903,88 +6887,88 @@ tr233: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -7000,88 +6984,88 @@ tr247: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -7097,88 +7081,88 @@ tr259: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -7194,88 +7178,88 @@ tr270: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -7291,88 +7275,88 @@ tr279: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -7388,88 +7372,88 @@ tr289: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -7485,88 +7469,88 @@ tr302: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -7582,88 +7566,88 @@ tr311: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -7679,88 +7663,88 @@ tr324: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -7776,88 +7760,88 @@ tr335: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -7873,88 +7857,88 @@ tr379: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -7970,88 +7954,88 @@ tr390: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -8067,88 +8051,88 @@ tr398: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -8164,88 +8148,88 @@ tr411: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -8261,88 +8245,88 @@ tr420: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -8358,88 +8342,88 @@ tr429: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -8455,88 +8439,88 @@ tr437: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -8552,88 +8536,88 @@ tr450: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -8649,88 +8633,88 @@ tr458: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -8746,88 +8730,88 @@ tr472: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -8843,88 +8827,88 @@ tr481: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -8940,88 +8924,88 @@ tr490: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -9037,88 +9021,88 @@ tr500: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -9134,88 +9118,88 @@ tr509: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -9231,88 +9215,88 @@ tr521: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -9328,88 +9312,88 @@ tr538: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -9425,88 +9409,88 @@ tr548: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -9522,88 +9506,88 @@ tr559: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -9619,88 +9603,88 @@ tr570: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -9716,88 +9700,88 @@ tr578: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -9813,88 +9797,88 @@ tr596: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -9910,88 +9894,88 @@ tr605: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -10007,88 +9991,88 @@ tr614: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -10104,88 +10088,88 @@ tr623: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -10201,88 +10185,88 @@ tr634: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -10298,88 +10282,88 @@ tr644: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -10395,88 +10379,88 @@ tr657: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -10492,88 +10476,88 @@ tr666: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -10596,88 +10580,88 @@ tr680: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -10693,88 +10677,88 @@ tr690: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -10790,88 +10774,88 @@ tr703: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -10887,88 +10871,88 @@ tr716: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -10984,88 +10968,88 @@ tr967: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -11081,88 +11065,88 @@ tr978: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -11178,88 +11162,88 @@ tr987: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st900;} + {stack[top++] = 6;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st902;} + {stack[top++] = 6;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st904;} + {stack[top++] = 6;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st936;} + {stack[top++] = 6;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st941;} + {stack[top++] = 6;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st946;} + {stack[top++] = 6;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st951;} + {stack[top++] = 6;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st955;} + {stack[top++] = 6;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st957;} + {stack[top++] = 6;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1012;} + {stack[top++] = 6;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1023;} + {stack[top++] = 6;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1040;} + {stack[top++] = 6;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1051;} + {stack[top++] = 6;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1062;} + {stack[top++] = 6;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1085;} + {stack[top++] = 6;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1124;} + {stack[top++] = 6;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1319;} + {stack[top++] = 6;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1322;} + {stack[top++] = 6;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 6;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1364;} + {stack[top++] = 6;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1377;} + {stack[top++] = 6;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1390;} + {stack[top++] = 6;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1414;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1427;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1433;} + {stack[top++] = 6;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1439;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1455;} + {stack[top++] = 6;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1461;} + {stack[top++] = 6;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -11953,88 +11937,88 @@ tr73: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -12049,88 +12033,88 @@ tr83: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -12149,88 +12133,88 @@ tr172: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -12249,88 +12233,88 @@ tr194: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -12349,88 +12333,88 @@ tr202: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -12449,88 +12433,88 @@ tr212: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -12549,88 +12533,88 @@ tr223: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -12649,88 +12633,88 @@ tr234: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -12749,88 +12733,88 @@ tr248: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -12849,88 +12833,88 @@ tr260: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -12949,88 +12933,88 @@ tr271: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -13049,88 +13033,88 @@ tr280: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -13149,88 +13133,88 @@ tr290: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -13249,88 +13233,88 @@ tr303: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -13349,88 +13333,88 @@ tr312: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -13449,88 +13433,88 @@ tr325: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -13549,88 +13533,88 @@ tr336: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -13649,88 +13633,88 @@ tr380: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -13749,88 +13733,88 @@ tr391: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -13849,88 +13833,88 @@ tr399: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -13949,88 +13933,88 @@ tr412: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -14049,88 +14033,88 @@ tr421: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -14149,88 +14133,88 @@ tr430: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -14249,88 +14233,88 @@ tr438: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -14349,88 +14333,88 @@ tr451: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -14449,88 +14433,88 @@ tr459: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -14549,88 +14533,88 @@ tr473: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -14649,88 +14633,88 @@ tr482: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -14749,88 +14733,88 @@ tr491: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -14849,88 +14833,88 @@ tr501: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -14949,88 +14933,88 @@ tr510: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -15049,88 +15033,88 @@ tr522: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -15149,88 +15133,88 @@ tr539: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -15249,88 +15233,88 @@ tr549: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -15349,88 +15333,88 @@ tr560: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -15449,88 +15433,88 @@ tr571: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -15549,88 +15533,88 @@ tr579: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -15649,88 +15633,88 @@ tr597: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -15749,88 +15733,88 @@ tr606: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -15849,88 +15833,88 @@ tr615: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -15949,88 +15933,88 @@ tr624: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -16049,88 +16033,88 @@ tr635: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -16149,88 +16133,88 @@ tr645: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -16249,88 +16233,88 @@ tr658: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -16349,88 +16333,88 @@ tr667: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -16456,88 +16440,88 @@ tr681: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -16556,88 +16540,88 @@ tr691: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -16656,88 +16640,88 @@ tr704: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -16756,88 +16740,88 @@ tr717: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -16856,88 +16840,88 @@ tr968: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -16956,88 +16940,88 @@ tr979: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -17056,88 +17040,88 @@ tr988: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st900;} + {stack[top++] = 11;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st902;} + {stack[top++] = 11;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st904;} + {stack[top++] = 11;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st936;} + {stack[top++] = 11;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st941;} + {stack[top++] = 11;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st946;} + {stack[top++] = 11;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st951;} + {stack[top++] = 11;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st955;} + {stack[top++] = 11;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st957;} + {stack[top++] = 11;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1012;} + {stack[top++] = 11;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1023;} + {stack[top++] = 11;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1040;} + {stack[top++] = 11;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1051;} + {stack[top++] = 11;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1062;} + {stack[top++] = 11;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1085;} + {stack[top++] = 11;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1124;} + {stack[top++] = 11;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1319;} + {stack[top++] = 11;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1322;} + {stack[top++] = 11;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 11;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1364;} + {stack[top++] = 11;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1377;} + {stack[top++] = 11;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1390;} + {stack[top++] = 11;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1414;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1427;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1433;} + {stack[top++] = 11;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1439;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1455;} + {stack[top++] = 11;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1461;} + {stack[top++] = 11;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -17382,7 +17366,7 @@ tr118: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1484; goto _out;} + {p++; cs = 1475; goto _out;} } } } @@ -17405,15 +17389,15 @@ tr118: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1484; goto _out;} + {p++; cs = 1475; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1484; goto _out;} + p--; {p++; cs = 1475; goto _out;} } } - goto st1484; + goto st1475; tr865: { s->line_counter++; @@ -17434,15 +17418,15 @@ tr865: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1484; goto _out;} + {p++; cs = 1475; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1484; goto _out;} + p--; {p++; cs = 1475; goto _out;} } } - goto st1484; + goto st1475; tr856: { s->r_type = KNOT_RRTYPE_A; } { @@ -17471,19 +17455,19 @@ tr856: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1484; goto _out;} + {p++; cs = 1475; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1484; goto _out;} + p--; {p++; cs = 1475; goto _out;} } } - goto st1484; -st1484: + goto st1475; +st1475: if ( ++p == pe ) - goto _test_eof1484; -case 1484: + goto _test_eof1475; +case 1475: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -17501,23 +17485,23 @@ case 1484: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4395; - case 32: goto tr4395; - case 36: goto tr4396; - case 40: goto tr4397; - case 41: goto tr4398; - case 42: goto tr4399; + case 9: goto tr4165; + case 32: goto tr4165; + case 36: goto tr4166; + case 40: goto tr4167; + case 41: goto tr4168; + case 42: goto tr4169; case 58: goto tr75; - case 92: goto tr4400; - case 95: goto tr4399; - case 2826: goto tr4391; - case 2875: goto tr4392; - case 3082: goto tr4401; - case 3131: goto tr4402; - case 3338: goto tr4403; - case 3387: goto tr4404; - case 3594: goto tr4405; - case 3643: goto tr4406; + case 92: goto tr4170; + case 95: goto tr4169; + case 2826: goto tr4161; + case 2875: goto tr4162; + case 3082: goto tr4171; + case 3131: goto tr4172; + case 3338: goto tr4173; + case 3387: goto tr4174; + case 3594: goto tr4175; + case 3643: goto tr4176; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -17525,19 +17509,19 @@ case 1484: goto tr75; } else if ( _widec > 44 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4399; + goto tr4169; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 90 ) - goto tr4399; + goto tr4169; } else if ( _widec > 96 ) { if ( _widec > 122 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 97 ) - goto tr4399; + goto tr4169; } else goto tr75; } else @@ -17561,7 +17545,7 @@ tr122: s->multiline = false; } goto st14; -tr4395: +tr4165: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); @@ -17573,7 +17557,7 @@ tr4395: s->buffer_length = 0; } goto st14; -tr4397: +tr4167: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -17592,7 +17576,7 @@ tr4397: s->buffer_length = 0; } goto st14; -tr4398: +tr4168: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -17717,88 +17701,88 @@ tr123: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 15;goto st900;} + {stack[top++] = 15;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 15;goto st902;} + {stack[top++] = 15;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 15;goto st904;} + {stack[top++] = 15;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 15;goto st936;} + {stack[top++] = 15;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 15;goto st941;} + {stack[top++] = 15;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 15;goto st946;} + {stack[top++] = 15;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 15;goto st951;} + {stack[top++] = 15;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 15;goto st955;} + {stack[top++] = 15;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 15;goto st957;} + {stack[top++] = 15;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 15;goto st1012;} + {stack[top++] = 15;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 15;goto st1023;} + {stack[top++] = 15;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 15;goto st1040;} + {stack[top++] = 15;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 15;goto st1051;} + {stack[top++] = 15;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 15;goto st1062;} + {stack[top++] = 15;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 15;goto st1075;} + {stack[top++] = 15;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 15;goto st1085;} + {stack[top++] = 15;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 15;goto st1124;} + {stack[top++] = 15;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 15;goto st1319;} + {stack[top++] = 15;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 15;goto st1322;} + {stack[top++] = 15;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 15;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 15;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 15;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 15;goto st1364;} + {stack[top++] = 15;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 15;goto st1377;} + {stack[top++] = 15;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 15;goto st1390;} + {stack[top++] = 15;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 15;goto st1396;} + {stack[top++] = 15;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 15;goto st1414;} + {stack[top++] = 15;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 15;goto st1409;} + {stack[top++] = 15;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 15;goto st1427;} + {stack[top++] = 15;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 15;goto st1433;} + {stack[top++] = 15;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 15;goto st1439;} + {stack[top++] = 15;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 15;goto st1447;} + {stack[top++] = 15;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 15;goto st1455;} + {stack[top++] = 15;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 15;goto st1461;} + {stack[top++] = 15;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -18070,88 +18054,88 @@ tr74: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -18166,88 +18150,88 @@ tr84: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -18266,88 +18250,88 @@ tr173: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -18366,88 +18350,88 @@ tr195: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -18466,88 +18450,88 @@ tr203: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -18566,88 +18550,88 @@ tr213: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -18666,88 +18650,88 @@ tr224: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -18766,88 +18750,88 @@ tr235: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -18866,88 +18850,88 @@ tr249: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -18966,88 +18950,88 @@ tr261: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -19066,88 +19050,88 @@ tr272: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -19166,88 +19150,88 @@ tr281: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -19266,88 +19250,88 @@ tr291: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -19366,88 +19350,88 @@ tr304: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -19466,88 +19450,88 @@ tr313: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -19566,88 +19550,88 @@ tr326: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -19666,88 +19650,88 @@ tr337: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -19766,88 +19750,88 @@ tr381: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -19866,88 +19850,88 @@ tr392: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -19966,88 +19950,88 @@ tr400: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -20066,88 +20050,88 @@ tr413: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -20166,88 +20150,88 @@ tr422: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -20266,88 +20250,88 @@ tr431: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -20366,88 +20350,88 @@ tr439: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -20466,88 +20450,88 @@ tr452: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -20566,88 +20550,88 @@ tr460: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -20666,88 +20650,88 @@ tr474: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -20766,88 +20750,88 @@ tr483: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -20866,88 +20850,88 @@ tr492: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -20966,88 +20950,88 @@ tr502: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -21066,88 +21050,88 @@ tr511: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -21166,88 +21150,88 @@ tr523: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -21266,88 +21250,88 @@ tr540: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -21366,88 +21350,88 @@ tr550: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -21466,296 +21450,96 @@ tr561: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} - case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} - case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} - case KNOT_RRTYPE_SSHFP: {stack[top++] = 20;goto st1075;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1335;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} - case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} - case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} - case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} - } - } - goto st20; -tr572: - { s->r_type = KNOT_RRTYPE_RRSIG; } - { - rdata_tail = s->r_data; - } - { - s->buffer_length = 0; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} - case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} - case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} - case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} - } - } - goto st20; -tr580: - { s->r_type = KNOT_RRTYPE_RT; } - { - rdata_tail = s->r_data; - } - { - s->buffer_length = 0; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} - case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} - case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} } } goto st20; -tr598: - { s->r_type = KNOT_RRTYPE_SMIMEA; } +tr572: + { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; } @@ -21766,88 +21550,288 @@ tr598: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1246;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1256;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1295;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1321;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1324;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1366;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1379;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1392;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1398;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1416;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1411;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1435;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1441;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1449;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1457;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1463;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st20; +tr580: + { s->r_type = KNOT_RRTYPE_RT; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st1071;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st1073;} + case KNOT_RRTYPE_SOA: {stack[top++] = 20;goto st1075;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st1107;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st1112;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st1117;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st1122;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st1126;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st1128;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1183;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1194;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1211;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1222;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1233;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1366;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1379;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1392;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1398;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1416;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1411;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1435;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1441;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1449;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1457;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1463;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st20; +tr598: + { s->r_type = KNOT_RRTYPE_SMIMEA; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st1071;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st1073;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st1075;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st1107;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st1112;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st1117;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st1122;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st1126;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st1128;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1183;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1194;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1211;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1222;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1233;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1246;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1256;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1295;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1321;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1324;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -21866,88 +21850,88 @@ tr607: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -21966,88 +21950,88 @@ tr616: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -22066,88 +22050,88 @@ tr625: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -22166,88 +22150,88 @@ tr636: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -22266,88 +22250,88 @@ tr646: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -22366,88 +22350,88 @@ tr659: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -22466,88 +22450,88 @@ tr668: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -22573,88 +22557,88 @@ tr682: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -22673,88 +22657,88 @@ tr692: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -22773,88 +22757,88 @@ tr705: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -22873,88 +22857,88 @@ tr718: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -22973,188 +22957,188 @@ tr969: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} + {stack[top++] = 20;goto st1335;} case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1366;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1379;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1392;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1398;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1416;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1411;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1435;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1441;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1449;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1457;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1463;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st319;} + } + } + goto st20; +tr980: + { s->r_type = KNOT_RRTYPE_AFSDB; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st1071;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st1073;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st1075;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st1107;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st1112;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st1117;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st1122;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st1126;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st1128;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1183;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1194;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1211;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1222;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1233;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1246;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1256;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1295;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1321;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1324;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} - } - } - goto st20; -tr980: - { s->r_type = KNOT_RRTYPE_AFSDB; } - { - rdata_tail = s->r_data; - } - { - s->buffer_length = 0; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} - case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} - case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1335;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} - case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} - case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} - case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -23173,88 +23157,88 @@ tr989: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st900;} + {stack[top++] = 20;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st902;} + {stack[top++] = 20;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st904;} + {stack[top++] = 20;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st936;} + {stack[top++] = 20;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st941;} + {stack[top++] = 20;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st946;} + {stack[top++] = 20;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st951;} + {stack[top++] = 20;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st955;} + {stack[top++] = 20;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st957;} + {stack[top++] = 20;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1012;} + {stack[top++] = 20;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1023;} + {stack[top++] = 20;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1040;} + {stack[top++] = 20;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1051;} + {stack[top++] = 20;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1062;} + {stack[top++] = 20;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1085;} + {stack[top++] = 20;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1124;} + {stack[top++] = 20;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1319;} + {stack[top++] = 20;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1322;} + {stack[top++] = 20;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 20;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1364;} + {stack[top++] = 20;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1377;} + {stack[top++] = 20;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1390;} + {stack[top++] = 20;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1414;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1427;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1433;} + {stack[top++] = 20;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1439;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1455;} + {stack[top++] = 20;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1461;} + {stack[top++] = 20;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -26728,7 +26712,7 @@ tr1031: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1485; goto _out;} + {p++; cs = 1476; goto _out;} } } } @@ -26751,15 +26735,15 @@ tr1031: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1485; goto _out;} + {p++; cs = 1476; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1485; goto _out;} + p--; {p++; cs = 1476; goto _out;} } } - goto st1485; + goto st1476; tr152: { if (s->number64 <= UINT32_MAX) { @@ -26792,15 +26776,15 @@ tr152: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1485; goto _out;} + {p++; cs = 1476; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1485; goto _out;} + p--; {p++; cs = 1476; goto _out;} } } - goto st1485; + goto st1476; tr158: { s->line_counter++; @@ -26821,19 +26805,19 @@ tr158: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1485; goto _out;} + {p++; cs = 1476; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1485; goto _out;} + p--; {p++; cs = 1476; goto _out;} } } - goto st1485; -st1485: + goto st1476; +st1476: if ( ++p == pe ) - goto _test_eof1485; -case 1485: + goto _test_eof1476; +case 1476: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26847,64 +26831,64 @@ case 1485: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4408; - case 32: goto tr4408; + case 9: goto tr4178; + case 32: goto tr4178; case 36: goto st193; - case 40: goto tr4409; - case 41: goto tr4410; - case 42: goto tr4390; - case 65: goto tr4411; - case 67: goto tr4412; - case 68: goto tr4413; - case 69: goto tr4414; - case 72: goto tr4415; - case 73: goto tr4416; - case 75: goto tr4417; - case 76: goto tr4418; - case 77: goto tr4419; - case 78: goto tr4420; - case 79: goto tr4421; - case 80: goto tr4422; - case 82: goto tr4423; - case 83: goto tr4424; - case 84: goto tr4425; - case 85: goto tr4426; - case 87: goto tr4427; - case 90: goto tr4428; - case 92: goto tr4390; - case 95: goto tr4390; - case 97: goto tr4411; - case 99: goto tr4412; - case 100: goto tr4413; - case 101: goto tr4414; - case 104: goto tr4415; - case 105: goto tr4416; - case 107: goto tr4417; - case 108: goto tr4418; - case 109: goto tr4419; - case 110: goto tr4420; - case 111: goto tr4421; - case 112: goto tr4422; - case 114: goto tr4423; - case 115: goto tr4424; - case 116: goto tr4425; - case 117: goto tr4426; - case 119: goto tr4427; - case 122: goto tr4428; - case 1802: goto tr4391; - case 1851: goto tr4392; - case 2058: goto tr4429; - case 2107: goto tr4430; + case 40: goto tr4179; + case 41: goto tr4180; + case 42: goto tr4160; + case 65: goto tr4181; + case 67: goto tr4182; + case 68: goto tr4183; + case 69: goto tr4184; + case 72: goto tr4185; + case 73: goto tr4186; + case 75: goto tr4187; + case 76: goto tr4188; + case 77: goto tr4189; + case 78: goto tr4190; + case 79: goto tr4191; + case 80: goto tr4192; + case 82: goto tr4193; + case 83: goto tr4194; + case 84: goto tr4195; + case 85: goto tr4196; + case 87: goto tr4197; + case 90: goto tr4198; + case 92: goto tr4160; + case 95: goto tr4160; + case 97: goto tr4181; + case 99: goto tr4182; + case 100: goto tr4183; + case 101: goto tr4184; + case 104: goto tr4185; + case 105: goto tr4186; + case 107: goto tr4187; + case 108: goto tr4188; + case 109: goto tr4189; + case 110: goto tr4190; + case 111: goto tr4191; + case 112: goto tr4192; + case 114: goto tr4193; + case 115: goto tr4194; + case 116: goto tr4195; + case 117: goto tr4196; + case 119: goto tr4197; + case 122: goto tr4198; + case 1802: goto tr4161; + case 1851: goto tr4162; + case 2058: goto tr4199; + case 2107: goto tr4200; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4390; + goto tr4160; } else if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4390; + goto tr4160; } else - goto tr4390; - goto tr4407; + goto tr4160; + goto tr4177; tr722: { if (s->multiline == true) { @@ -26923,7 +26907,7 @@ tr723: s->multiline = false; } goto st183; -tr4408: +tr4178: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); @@ -26935,7 +26919,7 @@ tr4408: s->buffer_length = 0; } goto st183; -tr4409: +tr4179: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -26954,7 +26938,7 @@ tr4409: s->buffer_length = 0; } goto st183; -tr4410: +tr4180: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -27560,7 +27544,7 @@ tr24: s->buffer_length = 0; } goto st192; -tr4392: +tr4162: { s->buffer[0] = 0; s->buffer_length = 0; @@ -27576,7 +27560,7 @@ tr782: } } goto st192; -tr4458: +tr4228: { NOERR; } @@ -27599,7 +27583,7 @@ tr724: { s->line_counter++; } - goto st1486; + goto st1477; tr1029: { s->buffer[s->buffer_length++] = 0; @@ -27610,14 +27594,14 @@ tr1029: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1486; goto _out;} + {p++; cs = 1477; goto _out;} } } } { s->line_counter++; } - goto st1486; + goto st1477; tr918: { s->buffer[s->buffer_length++] = 0; @@ -27628,7 +27612,7 @@ tr918: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1486; goto _out;} + {p++; cs = 1477; goto _out;} } } } @@ -27651,15 +27635,15 @@ tr918: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1486; goto _out;} + {p++; cs = 1477; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1486; goto _out;} + p--; {p++; cs = 1477; goto _out;} } } - goto st1486; + goto st1477; tr915: { s->line_counter++; @@ -27680,15 +27664,15 @@ tr915: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1486; goto _out;} + {p++; cs = 1477; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1486; goto _out;} + p--; {p++; cs = 1477; goto _out;} } } - goto st1486; + goto st1477; tr910: { s->r_owner_length = s->dname_tmp_length; @@ -27724,16 +27708,16 @@ tr910: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1486; goto _out;} + {p++; cs = 1477; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1486; goto _out;} + p--; {p++; cs = 1477; goto _out;} } } - goto st1486; -tr4429: + goto st1477; +tr4199: { s->line_counter++; } @@ -27747,11 +27731,11 @@ tr4429: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1486; -st1486: + goto st1477; +st1477: if ( ++p == pe ) - goto _test_eof1486; -case 1486: + goto _test_eof1477; +case 1477: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27765,68 +27749,68 @@ case 1486: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4408; - case 32: goto tr4408; + case 9: goto tr4178; + case 32: goto tr4178; case 36: goto st193; - case 40: goto tr4409; - case 41: goto tr4410; - case 42: goto tr4390; - case 65: goto tr4433; - case 67: goto tr4434; - case 68: goto tr4435; - case 69: goto tr4436; - case 72: goto tr4437; - case 73: goto tr4438; - case 75: goto tr4439; - case 76: goto tr4440; - case 77: goto tr4441; - case 78: goto tr4442; - case 79: goto tr4443; - case 80: goto tr4444; - case 82: goto tr4445; - case 83: goto tr4446; - case 84: goto tr4447; - case 85: goto tr4448; - case 87: goto tr4449; - case 90: goto tr4450; - case 92: goto tr4390; - case 95: goto tr4390; - case 97: goto tr4433; - case 99: goto tr4434; - case 100: goto tr4435; - case 101: goto tr4436; - case 104: goto tr4437; - case 105: goto tr4438; - case 107: goto tr4439; - case 108: goto tr4440; - case 109: goto tr4441; - case 110: goto tr4442; - case 111: goto tr4443; - case 112: goto tr4444; - case 114: goto tr4445; - case 115: goto tr4446; - case 116: goto tr4447; - case 117: goto tr4448; - case 119: goto tr4449; - case 122: goto tr4450; - case 1802: goto tr4391; - case 1851: goto tr4392; - case 2058: goto tr4429; - case 2107: goto tr4430; + case 40: goto tr4179; + case 41: goto tr4180; + case 42: goto tr4160; + case 65: goto tr4203; + case 67: goto tr4204; + case 68: goto tr4205; + case 69: goto tr4206; + case 72: goto tr4207; + case 73: goto tr4208; + case 75: goto tr4209; + case 76: goto tr4210; + case 77: goto tr4211; + case 78: goto tr4212; + case 79: goto tr4213; + case 80: goto tr4214; + case 82: goto tr4215; + case 83: goto tr4216; + case 84: goto tr4217; + case 85: goto tr4218; + case 87: goto tr4219; + case 90: goto tr4220; + case 92: goto tr4160; + case 95: goto tr4160; + case 97: goto tr4203; + case 99: goto tr4204; + case 100: goto tr4205; + case 101: goto tr4206; + case 104: goto tr4207; + case 105: goto tr4208; + case 107: goto tr4209; + case 108: goto tr4210; + case 109: goto tr4211; + case 110: goto tr4212; + case 111: goto tr4213; + case 112: goto tr4214; + case 114: goto tr4215; + case 115: goto tr4216; + case 116: goto tr4217; + case 117: goto tr4218; + case 119: goto tr4219; + case 122: goto tr4220; + case 1802: goto tr4161; + case 1851: goto tr4162; + case 2058: goto tr4199; + case 2107: goto tr4200; } if ( _widec < 48 ) { if ( 45 <= _widec && _widec <= 47 ) - goto tr4390; + goto tr4160; } else if ( _widec > 57 ) { if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4390; + goto tr4160; } else if ( _widec >= 64 ) - goto tr4390; + goto tr4160; } else - goto tr4432; - goto tr4431; -tr4453: + goto tr4202; + goto tr4201; +tr4223: { NOERR; } @@ -27918,18 +27902,18 @@ case 200: goto tr794; goto tr784; tr794: - { p--; {stack[top++] = 1487;goto st364;} } - goto st1487; + { p--; {stack[top++] = 1478;goto st364;} } + goto st1478; tr896: - { p--; {stack[top++] = 1487;goto st352;} } - goto st1487; + { p--; {stack[top++] = 1478;goto st352;} } + goto st1478; tr899: - { p--; {stack[top++] = 1487;goto st343;} } - goto st1487; -st1487: + { p--; {stack[top++] = 1478;goto st343;} } + goto st1478; +st1478: if ( ++p == pe ) - goto _test_eof1487; -case 1487: + goto _test_eof1478; +case 1478: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27943,36 +27927,36 @@ case 1487: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4452; - case 32: goto tr4452; - case 36: goto tr4453; - case 40: goto tr4454; - case 41: goto tr4455; - case 42: goto tr4456; - case 92: goto tr4456; - case 95: goto tr4456; - case 1802: goto tr4457; - case 1851: goto tr4458; - case 2058: goto tr4459; - case 2107: goto tr4460; + case 9: goto tr4222; + case 32: goto tr4222; + case 36: goto tr4223; + case 40: goto tr4224; + case 41: goto tr4225; + case 42: goto tr4226; + case 92: goto tr4226; + case 95: goto tr4226; + case 1802: goto tr4227; + case 1851: goto tr4228; + case 2058: goto tr4229; + case 2107: goto tr4230; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4456; + goto tr4226; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4456; + goto tr4226; } else - goto tr4456; - goto tr4451; -tr4390: + goto tr4226; + goto tr4221; +tr4160: { s->dname = s->r_owner; s->r_owner_length = 0; } { p--; {stack[top++] = 201;goto st321;} } goto st201; -tr4456: +tr4226: { NOERR; } @@ -28199,7 +28183,7 @@ tr25: { s->line_counter++; } - goto st1488; + goto st1479; tr1027: { s->buffer[s->buffer_length++] = 0; @@ -28210,14 +28194,14 @@ tr1027: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1488; goto _out;} + {p++; cs = 1479; goto _out;} } } } { s->line_counter++; } - goto st1488; + goto st1479; tr873: { s->buffer[s->buffer_length++] = 0; @@ -28228,7 +28212,7 @@ tr873: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1488; goto _out;} + {p++; cs = 1479; goto _out;} } } } @@ -28251,15 +28235,15 @@ tr873: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1488; goto _out;} + {p++; cs = 1479; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1488; goto _out;} + p--; {p++; cs = 1479; goto _out;} } } - goto st1488; + goto st1479; tr870: { s->line_counter++; @@ -28280,15 +28264,15 @@ tr870: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1488; goto _out;} + {p++; cs = 1479; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1488; goto _out;} + p--; {p++; cs = 1479; goto _out;} } } - goto st1488; + goto st1479; tr904: { s->r_owner_length = s->dname_tmp_length; @@ -28316,15 +28300,15 @@ tr904: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1488; goto _out;} + {p++; cs = 1479; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1488; goto _out;} + p--; {p++; cs = 1479; goto _out;} } } - goto st1488; + goto st1479; tr941: { s->line_counter++; @@ -28349,15 +28333,15 @@ tr941: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1488; goto _out;} + {p++; cs = 1479; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1488; goto _out;} + p--; {p++; cs = 1479; goto _out;} } } - goto st1488; + goto st1479; tr944: { s->buffer[s->buffer_length++] = 0; @@ -28368,7 +28352,7 @@ tr944: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1488; goto _out;} + {p++; cs = 1479; goto _out;} } } } @@ -28395,16 +28379,16 @@ tr944: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1488; goto _out;} + {p++; cs = 1479; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1488; goto _out;} + p--; {p++; cs = 1479; goto _out;} } } - goto st1488; -tr4393: + goto st1479; +tr4163: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); @@ -28418,8 +28402,8 @@ tr4393: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1488; -tr4463: + goto st1479; +tr4233: { s->line_counter++; } @@ -28433,8 +28417,8 @@ tr4463: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1488; -tr4459: + goto st1479; +tr4229: { NOERR; } @@ -28451,8 +28435,8 @@ tr4459: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1488; -tr4468: + goto st1479; +tr4238: { s->buffer[0] = 0; s->buffer_length = 0; @@ -28473,12 +28457,12 @@ tr4468: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1488; goto _out;} + {p++; cs = 1479; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1488; goto _out;} + p--; {p++; cs = 1479; goto _out;} } } { @@ -28490,8 +28474,8 @@ tr4468: p--; {goto st319;} } } - goto st1488; -tr4495: + goto st1479; +tr4265: { s->line_counter++; } @@ -28515,12 +28499,12 @@ tr4495: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1488; goto _out;} + {p++; cs = 1479; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1488; goto _out;} + p--; {p++; cs = 1479; goto _out;} } } { @@ -28529,11 +28513,11 @@ tr4495: p--; {goto st319;} } } - goto st1488; -st1488: + goto st1479; +st1479: if ( ++p == pe ) - goto _test_eof1488; -case 1488: + goto _test_eof1479; +case 1479: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28547,68 +28531,68 @@ case 1488: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4386; - case 32: goto tr4386; + case 9: goto tr4156; + case 32: goto tr4156; case 36: goto st193; - case 40: goto tr4461; - case 41: goto tr4462; - case 42: goto tr4390; - case 65: goto tr4433; - case 67: goto tr4434; - case 68: goto tr4435; - case 69: goto tr4436; - case 72: goto tr4437; - case 73: goto tr4438; - case 75: goto tr4439; - case 76: goto tr4440; - case 77: goto tr4441; - case 78: goto tr4442; - case 79: goto tr4443; - case 80: goto tr4444; - case 82: goto tr4445; - case 83: goto tr4446; - case 84: goto tr4447; - case 85: goto tr4448; - case 87: goto tr4449; - case 90: goto tr4450; - case 92: goto tr4390; - case 95: goto tr4390; - case 97: goto tr4433; - case 99: goto tr4434; - case 100: goto tr4435; - case 101: goto tr4436; - case 104: goto tr4437; - case 105: goto tr4438; - case 107: goto tr4439; - case 108: goto tr4440; - case 109: goto tr4441; - case 110: goto tr4442; - case 111: goto tr4443; - case 112: goto tr4444; - case 114: goto tr4445; - case 115: goto tr4446; - case 116: goto tr4447; - case 117: goto tr4448; - case 119: goto tr4449; - case 122: goto tr4450; - case 1802: goto tr4391; - case 1851: goto tr4392; - case 2058: goto tr4463; - case 2107: goto tr4464; + case 40: goto tr4231; + case 41: goto tr4232; + case 42: goto tr4160; + case 65: goto tr4203; + case 67: goto tr4204; + case 68: goto tr4205; + case 69: goto tr4206; + case 72: goto tr4207; + case 73: goto tr4208; + case 75: goto tr4209; + case 76: goto tr4210; + case 77: goto tr4211; + case 78: goto tr4212; + case 79: goto tr4213; + case 80: goto tr4214; + case 82: goto tr4215; + case 83: goto tr4216; + case 84: goto tr4217; + case 85: goto tr4218; + case 87: goto tr4219; + case 90: goto tr4220; + case 92: goto tr4160; + case 95: goto tr4160; + case 97: goto tr4203; + case 99: goto tr4204; + case 100: goto tr4205; + case 101: goto tr4206; + case 104: goto tr4207; + case 105: goto tr4208; + case 107: goto tr4209; + case 108: goto tr4210; + case 109: goto tr4211; + case 110: goto tr4212; + case 111: goto tr4213; + case 112: goto tr4214; + case 114: goto tr4215; + case 115: goto tr4216; + case 116: goto tr4217; + case 117: goto tr4218; + case 119: goto tr4219; + case 122: goto tr4220; + case 1802: goto tr4161; + case 1851: goto tr4162; + case 2058: goto tr4233; + case 2107: goto tr4234; } if ( _widec < 48 ) { if ( 45 <= _widec && _widec <= 47 ) - goto tr4390; + goto tr4160; } else if ( _widec > 57 ) { if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4390; + goto tr4160; } else if ( _widec >= 64 ) - goto tr4390; + goto tr4160; } else - goto tr4432; - goto tr4431; -tr4432: + goto tr4202; + goto tr4201; +tr4202: { s->number64 = 0; } @@ -29183,7 +29167,7 @@ case 210: if ( 1920 <= _widec && _widec <= 2175 ) goto tr835; goto tr39; -tr4411: +tr4181: { s->r_class = s->default_class; } @@ -29193,7 +29177,7 @@ tr4411: } { p--; {stack[top++] = 211;goto st321;} } goto st211; -tr4433: +tr4203: { s->r_class = s->default_class; } @@ -29432,88 +29416,88 @@ tr124: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 213;goto st900;} + {stack[top++] = 213;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 213;goto st902;} + {stack[top++] = 213;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 213;goto st904;} + {stack[top++] = 213;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 213;goto st936;} + {stack[top++] = 213;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 213;goto st941;} + {stack[top++] = 213;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 213;goto st946;} + {stack[top++] = 213;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 213;goto st951;} + {stack[top++] = 213;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 213;goto st955;} + {stack[top++] = 213;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 213;goto st957;} + {stack[top++] = 213;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 213;goto st1012;} + {stack[top++] = 213;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 213;goto st1023;} + {stack[top++] = 213;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 213;goto st1040;} + {stack[top++] = 213;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 213;goto st1051;} + {stack[top++] = 213;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 213;goto st1062;} + {stack[top++] = 213;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 213;goto st1075;} + {stack[top++] = 213;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 213;goto st1085;} + {stack[top++] = 213;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 213;goto st1124;} + {stack[top++] = 213;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 213;goto st1319;} + {stack[top++] = 213;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 213;goto st1322;} + {stack[top++] = 213;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 213;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 213;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 213;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 213;goto st1364;} + {stack[top++] = 213;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 213;goto st1377;} + {stack[top++] = 213;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 213;goto st1390;} + {stack[top++] = 213;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 213;goto st1396;} + {stack[top++] = 213;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 213;goto st1414;} + {stack[top++] = 213;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 213;goto st1409;} + {stack[top++] = 213;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 213;goto st1427;} + {stack[top++] = 213;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 213;goto st1433;} + {stack[top++] = 213;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 213;goto st1439;} + {stack[top++] = 213;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 213;goto st1447;} + {stack[top++] = 213;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 213;goto st1455;} + {stack[top++] = 213;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 213;goto st1461;} + {stack[top++] = 213;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -29672,88 +29656,88 @@ tr107: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1489;goto st900;} + {stack[top++] = 1480;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1489;goto st902;} + {stack[top++] = 1480;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1489;goto st904;} + {stack[top++] = 1480;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1489;goto st936;} + {stack[top++] = 1480;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1489;goto st941;} + {stack[top++] = 1480;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1489;goto st946;} + {stack[top++] = 1480;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1489;goto st951;} + {stack[top++] = 1480;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1489;goto st955;} + {stack[top++] = 1480;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1489;goto st957;} + {stack[top++] = 1480;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1489;goto st1012;} + {stack[top++] = 1480;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1489;goto st1023;} + {stack[top++] = 1480;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1489;goto st1040;} + {stack[top++] = 1480;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 1489;goto st1051;} + {stack[top++] = 1480;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1489;goto st1062;} + {stack[top++] = 1480;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1489;goto st1075;} + {stack[top++] = 1480;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1489;goto st1085;} + {stack[top++] = 1480;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1489;goto st1124;} + {stack[top++] = 1480;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1489;goto st1319;} + {stack[top++] = 1480;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1489;goto st1322;} + {stack[top++] = 1480;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1489;goto st1333;} + {stack[top++] = 1480;goto st1335;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1489;goto st1335;} + {stack[top++] = 1480;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1489;goto st1364;} + {stack[top++] = 1480;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1489;goto st1377;} + {stack[top++] = 1480;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1489;goto st1390;} + {stack[top++] = 1480;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1489;goto st1396;} + {stack[top++] = 1480;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1489;goto st1414;} + {stack[top++] = 1480;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 1489;goto st1409;} + {stack[top++] = 1480;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1489;goto st1427;} + {stack[top++] = 1480;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1489;goto st1433;} + {stack[top++] = 1480;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 1489;goto st1439;} + {stack[top++] = 1480;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1489;goto st1447;} + {stack[top++] = 1480;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1489;goto st1455;} + {stack[top++] = 1480;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1489;goto st1461;} + {stack[top++] = 1480;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -29779,105 +29763,105 @@ tr107: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1489; goto _out;} + {p++; cs = 1480; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1489; goto _out;} + p--; {p++; cs = 1480; goto _out;} } } { s->line_counter++; } - goto st1489; + goto st1480; tr114: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1489;goto st900;} + {stack[top++] = 1480;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1489;goto st902;} + {stack[top++] = 1480;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1489;goto st904;} + {stack[top++] = 1480;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1489;goto st936;} + {stack[top++] = 1480;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1489;goto st941;} + {stack[top++] = 1480;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1489;goto st946;} + {stack[top++] = 1480;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1489;goto st951;} + {stack[top++] = 1480;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1489;goto st955;} + {stack[top++] = 1480;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1489;goto st957;} + {stack[top++] = 1480;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1489;goto st1012;} + {stack[top++] = 1480;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1489;goto st1023;} + {stack[top++] = 1480;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1489;goto st1040;} + {stack[top++] = 1480;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 1489;goto st1051;} + {stack[top++] = 1480;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1489;goto st1062;} + {stack[top++] = 1480;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1489;goto st1075;} + {stack[top++] = 1480;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1489;goto st1085;} + {stack[top++] = 1480;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1489;goto st1124;} + {stack[top++] = 1480;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1489;goto st1319;} + {stack[top++] = 1480;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1489;goto st1322;} + {stack[top++] = 1480;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1489;goto st1333;} + {stack[top++] = 1480;goto st1335;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1489;goto st1335;} + {stack[top++] = 1480;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1489;goto st1364;} + {stack[top++] = 1480;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1489;goto st1377;} + {stack[top++] = 1480;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1489;goto st1390;} + {stack[top++] = 1480;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1489;goto st1396;} + {stack[top++] = 1480;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1489;goto st1414;} + {stack[top++] = 1480;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 1489;goto st1409;} + {stack[top++] = 1480;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1489;goto st1427;} + {stack[top++] = 1480;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1489;goto st1433;} + {stack[top++] = 1480;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 1489;goto st1439;} + {stack[top++] = 1480;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1489;goto st1447;} + {stack[top++] = 1480;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1489;goto st1455;} + {stack[top++] = 1480;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1489;goto st1461;} + {stack[top++] = 1480;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -29899,105 +29883,105 @@ tr114: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1489; goto _out;} + {p++; cs = 1480; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1489; goto _out;} + p--; {p++; cs = 1480; goto _out;} } } { s->line_counter++; } - goto st1489; + goto st1480; tr144: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1489;goto st900;} + {stack[top++] = 1480;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1489;goto st902;} + {stack[top++] = 1480;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1489;goto st904;} + {stack[top++] = 1480;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1489;goto st936;} + {stack[top++] = 1480;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1489;goto st941;} + {stack[top++] = 1480;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1489;goto st946;} + {stack[top++] = 1480;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1489;goto st951;} + {stack[top++] = 1480;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1489;goto st955;} + {stack[top++] = 1480;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1489;goto st957;} + {stack[top++] = 1480;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1489;goto st1012;} + {stack[top++] = 1480;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1489;goto st1023;} + {stack[top++] = 1480;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1489;goto st1040;} + {stack[top++] = 1480;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 1489;goto st1051;} + {stack[top++] = 1480;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1489;goto st1062;} + {stack[top++] = 1480;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1489;goto st1075;} + {stack[top++] = 1480;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1489;goto st1085;} + {stack[top++] = 1480;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1489;goto st1124;} + {stack[top++] = 1480;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1489;goto st1319;} + {stack[top++] = 1480;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1489;goto st1322;} + {stack[top++] = 1480;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1489;goto st1333;} + {stack[top++] = 1480;goto st1335;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1489;goto st1335;} + {stack[top++] = 1480;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1489;goto st1364;} + {stack[top++] = 1480;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1489;goto st1377;} + {stack[top++] = 1480;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1489;goto st1390;} + {stack[top++] = 1480;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1489;goto st1396;} + {stack[top++] = 1480;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1489;goto st1414;} + {stack[top++] = 1480;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 1489;goto st1409;} + {stack[top++] = 1480;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1489;goto st1427;} + {stack[top++] = 1480;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1489;goto st1433;} + {stack[top++] = 1480;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 1489;goto st1439;} + {stack[top++] = 1480;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1489;goto st1447;} + {stack[top++] = 1480;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1489;goto st1455;} + {stack[top++] = 1480;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1489;goto st1461;} + {stack[top++] = 1480;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -30006,7 +29990,7 @@ tr144: { s->line_counter++; } - goto st1489; + goto st1480; tr858: { s->r_type = KNOT_RRTYPE_A; } { @@ -30016,88 +30000,88 @@ tr858: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1489;goto st900;} + {stack[top++] = 1480;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1489;goto st902;} + {stack[top++] = 1480;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1489;goto st904;} + {stack[top++] = 1480;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1489;goto st936;} + {stack[top++] = 1480;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1489;goto st941;} + {stack[top++] = 1480;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1489;goto st946;} + {stack[top++] = 1480;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1489;goto st951;} + {stack[top++] = 1480;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1489;goto st955;} + {stack[top++] = 1480;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1489;goto st957;} + {stack[top++] = 1480;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1489;goto st1012;} + {stack[top++] = 1480;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1489;goto st1023;} + {stack[top++] = 1480;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1489;goto st1040;} + {stack[top++] = 1480;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 1489;goto st1051;} + {stack[top++] = 1480;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1489;goto st1062;} + {stack[top++] = 1480;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1489;goto st1075;} + {stack[top++] = 1480;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1489;goto st1085;} + {stack[top++] = 1480;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1489;goto st1124;} + {stack[top++] = 1480;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1489;goto st1319;} + {stack[top++] = 1480;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1489;goto st1322;} + {stack[top++] = 1480;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1489;goto st1333;} + {stack[top++] = 1480;goto st1335;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1489;goto st1335;} + {stack[top++] = 1480;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1489;goto st1364;} + {stack[top++] = 1480;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1489;goto st1377;} + {stack[top++] = 1480;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1489;goto st1390;} + {stack[top++] = 1480;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1489;goto st1396;} + {stack[top++] = 1480;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1489;goto st1414;} + {stack[top++] = 1480;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 1489;goto st1409;} + {stack[top++] = 1480;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1489;goto st1427;} + {stack[top++] = 1480;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1489;goto st1433;} + {stack[top++] = 1480;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 1489;goto st1439;} + {stack[top++] = 1480;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1489;goto st1447;} + {stack[top++] = 1480;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1489;goto st1455;} + {stack[top++] = 1480;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1489;goto st1461;} + {stack[top++] = 1480;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -30123,105 +30107,105 @@ tr858: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1489; goto _out;} + {p++; cs = 1480; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1489; goto _out;} + p--; {p++; cs = 1480; goto _out;} } } { s->line_counter++; } - goto st1489; -tr4403: + goto st1480; +tr4173: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1489;goto st900;} + {stack[top++] = 1480;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1489;goto st902;} + {stack[top++] = 1480;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1489;goto st904;} + {stack[top++] = 1480;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1489;goto st936;} + {stack[top++] = 1480;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1489;goto st941;} + {stack[top++] = 1480;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1489;goto st946;} + {stack[top++] = 1480;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1489;goto st951;} + {stack[top++] = 1480;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1489;goto st955;} + {stack[top++] = 1480;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1489;goto st957;} + {stack[top++] = 1480;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1489;goto st1012;} + {stack[top++] = 1480;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1489;goto st1023;} + {stack[top++] = 1480;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1489;goto st1040;} + {stack[top++] = 1480;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 1489;goto st1051;} + {stack[top++] = 1480;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1489;goto st1062;} + {stack[top++] = 1480;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1489;goto st1075;} + {stack[top++] = 1480;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1489;goto st1085;} + {stack[top++] = 1480;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1489;goto st1124;} + {stack[top++] = 1480;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1489;goto st1319;} + {stack[top++] = 1480;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1489;goto st1322;} + {stack[top++] = 1480;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1489;goto st1333;} + {stack[top++] = 1480;goto st1335;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1489;goto st1335;} + {stack[top++] = 1480;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1489;goto st1364;} + {stack[top++] = 1480;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1489;goto st1377;} + {stack[top++] = 1480;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1489;goto st1390;} + {stack[top++] = 1480;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1489;goto st1396;} + {stack[top++] = 1480;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1489;goto st1414;} + {stack[top++] = 1480;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 1489;goto st1409;} + {stack[top++] = 1480;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1489;goto st1427;} + {stack[top++] = 1480;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1489;goto st1433;} + {stack[top++] = 1480;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 1489;goto st1439;} + {stack[top++] = 1480;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1489;goto st1447;} + {stack[top++] = 1480;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1489;goto st1455;} + {stack[top++] = 1480;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1489;goto st1461;} + {stack[top++] = 1480;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -30234,11 +30218,11 @@ tr4403: { s->line_counter++; } - goto st1489; -st1489: + goto st1480; +st1480: if ( ++p == pe ) - goto _test_eof1489; -case 1489: + goto _test_eof1480; +case 1480: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30252,27 +30236,27 @@ case 1489: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4465; - case 32: goto tr4465; + case 9: goto tr4235; + case 32: goto tr4235; case 36: goto st193; - case 40: goto tr4466; - case 41: goto tr4467; - case 42: goto tr4390; - case 92: goto tr4390; - case 95: goto tr4390; + case 40: goto tr4236; + case 41: goto tr4237; + case 42: goto tr4160; + case 92: goto tr4160; + case 95: goto tr4160; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr4468; - case 2107: goto tr4469; + case 2058: goto tr4238; + case 2107: goto tr4239; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4390; + goto tr4160; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4390; + goto tr4160; } else - goto tr4390; + goto tr4160; goto tr900; tr868: { @@ -30365,7 +30349,7 @@ tr903: s->buffer_length = 0; } goto st215; -tr4465: +tr4235: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30377,7 +30361,7 @@ tr4465: } } goto st215; -tr4466: +tr4236: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30396,7 +30380,7 @@ tr4466: } } goto st215; -tr4467: +tr4237: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30537,7 +30521,7 @@ tr905: s->buffer_length = 0; } goto st216; -tr4469: +tr4239: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30589,88 +30573,88 @@ tr108: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 217;goto st900;} + {stack[top++] = 217;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 217;goto st902;} + {stack[top++] = 217;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 217;goto st904;} + {stack[top++] = 217;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 217;goto st936;} + {stack[top++] = 217;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 217;goto st941;} + {stack[top++] = 217;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 217;goto st946;} + {stack[top++] = 217;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 217;goto st951;} + {stack[top++] = 217;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 217;goto st955;} + {stack[top++] = 217;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 217;goto st957;} + {stack[top++] = 217;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 217;goto st1012;} + {stack[top++] = 217;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 217;goto st1023;} + {stack[top++] = 217;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 217;goto st1040;} + {stack[top++] = 217;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 217;goto st1051;} + {stack[top++] = 217;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 217;goto st1062;} + {stack[top++] = 217;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 217;goto st1075;} + {stack[top++] = 217;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 217;goto st1085;} + {stack[top++] = 217;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 217;goto st1124;} + {stack[top++] = 217;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 217;goto st1319;} + {stack[top++] = 217;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 217;goto st1322;} + {stack[top++] = 217;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 217;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 217;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 217;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 217;goto st1364;} + {stack[top++] = 217;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 217;goto st1377;} + {stack[top++] = 217;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 217;goto st1390;} + {stack[top++] = 217;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 217;goto st1396;} + {stack[top++] = 217;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 217;goto st1414;} + {stack[top++] = 217;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 217;goto st1409;} + {stack[top++] = 217;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 217;goto st1427;} + {stack[top++] = 217;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 217;goto st1433;} + {stack[top++] = 217;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 217;goto st1439;} + {stack[top++] = 217;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 217;goto st1447;} + {stack[top++] = 217;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 217;goto st1455;} + {stack[top++] = 217;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 217;goto st1461;} + {stack[top++] = 217;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -30689,88 +30673,88 @@ tr115: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 217;goto st900;} + {stack[top++] = 217;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 217;goto st902;} + {stack[top++] = 217;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 217;goto st904;} + {stack[top++] = 217;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 217;goto st936;} + {stack[top++] = 217;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 217;goto st941;} + {stack[top++] = 217;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 217;goto st946;} + {stack[top++] = 217;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 217;goto st951;} + {stack[top++] = 217;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 217;goto st955;} + {stack[top++] = 217;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 217;goto st957;} + {stack[top++] = 217;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 217;goto st1012;} + {stack[top++] = 217;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 217;goto st1023;} + {stack[top++] = 217;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 217;goto st1040;} + {stack[top++] = 217;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 217;goto st1051;} + {stack[top++] = 217;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 217;goto st1062;} + {stack[top++] = 217;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 217;goto st1075;} + {stack[top++] = 217;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 217;goto st1085;} + {stack[top++] = 217;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 217;goto st1124;} + {stack[top++] = 217;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 217;goto st1319;} + {stack[top++] = 217;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 217;goto st1322;} + {stack[top++] = 217;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 217;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 217;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 217;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 217;goto st1364;} + {stack[top++] = 217;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 217;goto st1377;} + {stack[top++] = 217;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 217;goto st1390;} + {stack[top++] = 217;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 217;goto st1396;} + {stack[top++] = 217;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 217;goto st1414;} + {stack[top++] = 217;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 217;goto st1409;} + {stack[top++] = 217;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 217;goto st1427;} + {stack[top++] = 217;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 217;goto st1433;} + {stack[top++] = 217;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 217;goto st1439;} + {stack[top++] = 217;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 217;goto st1447;} + {stack[top++] = 217;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 217;goto st1455;} + {stack[top++] = 217;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 217;goto st1461;} + {stack[top++] = 217;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -30789,88 +30773,88 @@ tr859: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 217;goto st900;} + {stack[top++] = 217;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 217;goto st902;} + {stack[top++] = 217;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 217;goto st904;} + {stack[top++] = 217;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 217;goto st936;} + {stack[top++] = 217;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 217;goto st941;} + {stack[top++] = 217;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 217;goto st946;} + {stack[top++] = 217;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 217;goto st951;} + {stack[top++] = 217;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 217;goto st955;} + {stack[top++] = 217;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 217;goto st957;} + {stack[top++] = 217;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 217;goto st1012;} + {stack[top++] = 217;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 217;goto st1023;} + {stack[top++] = 217;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 217;goto st1040;} + {stack[top++] = 217;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 217;goto st1051;} + {stack[top++] = 217;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 217;goto st1062;} + {stack[top++] = 217;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 217;goto st1075;} + {stack[top++] = 217;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 217;goto st1085;} + {stack[top++] = 217;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 217;goto st1124;} + {stack[top++] = 217;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 217;goto st1319;} + {stack[top++] = 217;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 217;goto st1322;} + {stack[top++] = 217;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 217;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 217;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 217;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 217;goto st1364;} + {stack[top++] = 217;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 217;goto st1377;} + {stack[top++] = 217;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 217;goto st1390;} + {stack[top++] = 217;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 217;goto st1396;} + {stack[top++] = 217;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 217;goto st1414;} + {stack[top++] = 217;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 217;goto st1409;} + {stack[top++] = 217;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 217;goto st1427;} + {stack[top++] = 217;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 217;goto st1433;} + {stack[top++] = 217;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 217;goto st1439;} + {stack[top++] = 217;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 217;goto st1447;} + {stack[top++] = 217;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 217;goto st1455;} + {stack[top++] = 217;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 217;goto st1461;} + {stack[top++] = 217;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -31048,88 +31032,88 @@ tr860: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1490;goto st900;} + {stack[top++] = 1481;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1490;goto st902;} + {stack[top++] = 1481;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1490;goto st904;} + {stack[top++] = 1481;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1490;goto st936;} + {stack[top++] = 1481;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1490;goto st941;} + {stack[top++] = 1481;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1490;goto st946;} + {stack[top++] = 1481;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1490;goto st951;} + {stack[top++] = 1481;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1490;goto st955;} + {stack[top++] = 1481;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1490;goto st957;} + {stack[top++] = 1481;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1490;goto st1012;} + {stack[top++] = 1481;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1490;goto st1023;} + {stack[top++] = 1481;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1490;goto st1040;} + {stack[top++] = 1481;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 1490;goto st1051;} + {stack[top++] = 1481;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1490;goto st1062;} + {stack[top++] = 1481;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1490;goto st1075;} + {stack[top++] = 1481;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1490;goto st1085;} + {stack[top++] = 1481;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1490;goto st1124;} + {stack[top++] = 1481;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1490;goto st1319;} + {stack[top++] = 1481;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1490;goto st1322;} + {stack[top++] = 1481;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1490;goto st1333;} + {stack[top++] = 1481;goto st1335;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1490;goto st1335;} + {stack[top++] = 1481;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1490;goto st1364;} + {stack[top++] = 1481;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1490;goto st1377;} + {stack[top++] = 1481;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1490;goto st1390;} + {stack[top++] = 1481;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1490;goto st1396;} + {stack[top++] = 1481;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1490;goto st1414;} + {stack[top++] = 1481;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 1490;goto st1409;} + {stack[top++] = 1481;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1490;goto st1427;} + {stack[top++] = 1481;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1490;goto st1433;} + {stack[top++] = 1481;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 1490;goto st1439;} + {stack[top++] = 1481;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1490;goto st1447;} + {stack[top++] = 1481;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1490;goto st1455;} + {stack[top++] = 1481;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1490;goto st1461;} + {stack[top++] = 1481;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -31155,15 +31139,15 @@ tr860: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1490; goto _out;} + {p++; cs = 1481; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1490; goto _out;} + p--; {p++; cs = 1481; goto _out;} } } - goto st1490; + goto st1481; tr866: { s->line_counter++; @@ -31172,88 +31156,88 @@ tr866: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1490;goto st900;} + {stack[top++] = 1481;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1490;goto st902;} + {stack[top++] = 1481;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1490;goto st904;} + {stack[top++] = 1481;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1490;goto st936;} + {stack[top++] = 1481;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1490;goto st941;} + {stack[top++] = 1481;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1490;goto st946;} + {stack[top++] = 1481;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1490;goto st951;} + {stack[top++] = 1481;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1490;goto st955;} + {stack[top++] = 1481;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1490;goto st957;} + {stack[top++] = 1481;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1490;goto st1012;} + {stack[top++] = 1481;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1490;goto st1023;} + {stack[top++] = 1481;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1490;goto st1040;} + {stack[top++] = 1481;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 1490;goto st1051;} + {stack[top++] = 1481;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1490;goto st1062;} + {stack[top++] = 1481;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1490;goto st1075;} + {stack[top++] = 1481;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1490;goto st1085;} + {stack[top++] = 1481;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1490;goto st1124;} + {stack[top++] = 1481;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1490;goto st1319;} + {stack[top++] = 1481;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1490;goto st1322;} + {stack[top++] = 1481;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1490;goto st1333;} + {stack[top++] = 1481;goto st1335;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1490;goto st1335;} + {stack[top++] = 1481;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1490;goto st1364;} + {stack[top++] = 1481;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1490;goto st1377;} + {stack[top++] = 1481;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1490;goto st1390;} + {stack[top++] = 1481;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1490;goto st1396;} + {stack[top++] = 1481;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1490;goto st1414;} + {stack[top++] = 1481;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 1490;goto st1409;} + {stack[top++] = 1481;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1490;goto st1427;} + {stack[top++] = 1481;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1490;goto st1433;} + {stack[top++] = 1481;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 1490;goto st1439;} + {stack[top++] = 1481;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1490;goto st1447;} + {stack[top++] = 1481;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1490;goto st1455;} + {stack[top++] = 1481;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1490;goto st1461;} + {stack[top++] = 1481;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -31275,19 +31259,19 @@ tr866: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1490; goto _out;} + {p++; cs = 1481; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1490; goto _out;} + p--; {p++; cs = 1481; goto _out;} } } - goto st1490; -st1490: + goto st1481; +st1481: if ( ++p == pe ) - goto _test_eof1490; -case 1490: + goto _test_eof1481; +case 1481: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31305,23 +31289,23 @@ case 1490: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4470; - case 32: goto tr4470; - case 36: goto tr4396; - case 40: goto tr4471; - case 41: goto tr4472; - case 42: goto tr4399; + case 9: goto tr4240; + case 32: goto tr4240; + case 36: goto tr4166; + case 40: goto tr4241; + case 41: goto tr4242; + case 42: goto tr4169; case 58: goto tr75; - case 92: goto tr4400; - case 95: goto tr4399; + case 92: goto tr4170; + case 95: goto tr4169; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr4468; - case 3131: goto tr4473; + case 3082: goto tr4238; + case 3131: goto tr4243; case 3338: goto tr107; case 3387: goto tr108; - case 3594: goto tr4468; - case 3643: goto tr4474; + case 3594: goto tr4238; + case 3643: goto tr4244; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -31329,19 +31313,19 @@ case 1490: goto tr75; } else if ( _widec > 44 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4399; + goto tr4169; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 90 ) - goto tr4399; + goto tr4169; } else if ( _widec > 96 ) { if ( _widec > 122 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 97 ) - goto tr4399; + goto tr4169; } else goto tr75; } else @@ -31397,7 +31381,7 @@ tr1016: s->buffer_length = 0; } goto st219; -tr4470: +tr4240: { s->buffer[0] = 0; s->buffer_length = 0; @@ -31409,7 +31393,7 @@ tr4470: } } goto st219; -tr4471: +tr4241: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -31428,7 +31412,7 @@ tr4471: } } goto st219; -tr4472: +tr4242: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -31542,88 +31526,88 @@ tr125: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 220;goto st900;} + {stack[top++] = 220;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 220;goto st902;} + {stack[top++] = 220;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 220;goto st904;} + {stack[top++] = 220;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 220;goto st936;} + {stack[top++] = 220;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 220;goto st941;} + {stack[top++] = 220;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 220;goto st946;} + {stack[top++] = 220;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 220;goto st951;} + {stack[top++] = 220;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 220;goto st955;} + {stack[top++] = 220;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 220;goto st957;} + {stack[top++] = 220;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 220;goto st1012;} + {stack[top++] = 220;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 220;goto st1023;} + {stack[top++] = 220;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 220;goto st1040;} + {stack[top++] = 220;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 220;goto st1051;} + {stack[top++] = 220;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 220;goto st1062;} + {stack[top++] = 220;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 220;goto st1075;} + {stack[top++] = 220;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 220;goto st1085;} + {stack[top++] = 220;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 220;goto st1124;} + {stack[top++] = 220;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 220;goto st1319;} + {stack[top++] = 220;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 220;goto st1322;} + {stack[top++] = 220;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 220;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 220;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 220;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 220;goto st1364;} + {stack[top++] = 220;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 220;goto st1377;} + {stack[top++] = 220;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 220;goto st1390;} + {stack[top++] = 220;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 220;goto st1396;} + {stack[top++] = 220;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 220;goto st1414;} + {stack[top++] = 220;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 220;goto st1409;} + {stack[top++] = 220;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 220;goto st1427;} + {stack[top++] = 220;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 220;goto st1433;} + {stack[top++] = 220;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 220;goto st1439;} + {stack[top++] = 220;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 220;goto st1447;} + {stack[top++] = 220;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 220;goto st1455;} + {stack[top++] = 220;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 220;goto st1461;} + {stack[top++] = 220;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -31678,88 +31662,88 @@ tr126: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 221;goto st900;} + {stack[top++] = 221;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 221;goto st902;} + {stack[top++] = 221;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 221;goto st904;} + {stack[top++] = 221;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 221;goto st936;} + {stack[top++] = 221;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 221;goto st941;} + {stack[top++] = 221;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 221;goto st946;} + {stack[top++] = 221;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 221;goto st951;} + {stack[top++] = 221;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 221;goto st955;} + {stack[top++] = 221;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 221;goto st957;} + {stack[top++] = 221;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 221;goto st1012;} + {stack[top++] = 221;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 221;goto st1023;} + {stack[top++] = 221;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 221;goto st1040;} + {stack[top++] = 221;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 221;goto st1051;} + {stack[top++] = 221;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 221;goto st1062;} + {stack[top++] = 221;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 221;goto st1075;} + {stack[top++] = 221;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 221;goto st1085;} + {stack[top++] = 221;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 221;goto st1124;} + {stack[top++] = 221;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 221;goto st1319;} + {stack[top++] = 221;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 221;goto st1322;} + {stack[top++] = 221;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 221;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 221;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 221;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 221;goto st1364;} + {stack[top++] = 221;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 221;goto st1377;} + {stack[top++] = 221;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 221;goto st1390;} + {stack[top++] = 221;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 221;goto st1396;} + {stack[top++] = 221;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 221;goto st1414;} + {stack[top++] = 221;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 221;goto st1409;} + {stack[top++] = 221;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 221;goto st1427;} + {stack[top++] = 221;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 221;goto st1433;} + {stack[top++] = 221;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 221;goto st1439;} + {stack[top++] = 221;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 221;goto st1447;} + {stack[top++] = 221;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 221;goto st1455;} + {stack[top++] = 221;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 221;goto st1461;} + {stack[top++] = 221;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -31810,88 +31794,88 @@ tr127: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 222;goto st900;} + {stack[top++] = 222;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 222;goto st902;} + {stack[top++] = 222;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 222;goto st904;} + {stack[top++] = 222;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 222;goto st936;} + {stack[top++] = 222;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 222;goto st941;} + {stack[top++] = 222;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 222;goto st946;} + {stack[top++] = 222;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 222;goto st951;} + {stack[top++] = 222;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 222;goto st955;} + {stack[top++] = 222;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 222;goto st957;} + {stack[top++] = 222;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 222;goto st1012;} + {stack[top++] = 222;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 222;goto st1023;} + {stack[top++] = 222;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 222;goto st1040;} + {stack[top++] = 222;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 222;goto st1051;} + {stack[top++] = 222;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 222;goto st1062;} + {stack[top++] = 222;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 222;goto st1075;} + {stack[top++] = 222;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 222;goto st1085;} + {stack[top++] = 222;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 222;goto st1124;} + {stack[top++] = 222;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 222;goto st1319;} + {stack[top++] = 222;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 222;goto st1322;} + {stack[top++] = 222;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 222;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 222;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 222;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 222;goto st1364;} + {stack[top++] = 222;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 222;goto st1377;} + {stack[top++] = 222;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 222;goto st1390;} + {stack[top++] = 222;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 222;goto st1396;} + {stack[top++] = 222;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 222;goto st1414;} + {stack[top++] = 222;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 222;goto st1409;} + {stack[top++] = 222;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 222;goto st1427;} + {stack[top++] = 222;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 222;goto st1433;} + {stack[top++] = 222;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 222;goto st1439;} + {stack[top++] = 222;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 222;goto st1447;} + {stack[top++] = 222;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 222;goto st1455;} + {stack[top++] = 222;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 222;goto st1461;} + {stack[top++] = 222;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -31938,88 +31922,88 @@ tr128: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 223;goto st900;} + {stack[top++] = 223;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 223;goto st902;} + {stack[top++] = 223;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 223;goto st904;} + {stack[top++] = 223;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 223;goto st936;} + {stack[top++] = 223;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 223;goto st941;} + {stack[top++] = 223;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 223;goto st946;} + {stack[top++] = 223;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 223;goto st951;} + {stack[top++] = 223;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 223;goto st955;} + {stack[top++] = 223;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 223;goto st957;} + {stack[top++] = 223;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 223;goto st1012;} + {stack[top++] = 223;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 223;goto st1023;} + {stack[top++] = 223;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 223;goto st1040;} + {stack[top++] = 223;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 223;goto st1051;} + {stack[top++] = 223;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 223;goto st1062;} + {stack[top++] = 223;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 223;goto st1075;} + {stack[top++] = 223;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 223;goto st1085;} + {stack[top++] = 223;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 223;goto st1124;} + {stack[top++] = 223;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 223;goto st1319;} + {stack[top++] = 223;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 223;goto st1322;} + {stack[top++] = 223;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 223;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 223;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 223;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 223;goto st1364;} + {stack[top++] = 223;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 223;goto st1377;} + {stack[top++] = 223;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 223;goto st1390;} + {stack[top++] = 223;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 223;goto st1396;} + {stack[top++] = 223;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 223;goto st1414;} + {stack[top++] = 223;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 223;goto st1409;} + {stack[top++] = 223;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 223;goto st1427;} + {stack[top++] = 223;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 223;goto st1433;} + {stack[top++] = 223;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 223;goto st1439;} + {stack[top++] = 223;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 223;goto st1447;} + {stack[top++] = 223;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 223;goto st1455;} + {stack[top++] = 223;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 223;goto st1461;} + {stack[top++] = 223;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -32068,88 +32052,88 @@ tr129: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 224;goto st900;} + {stack[top++] = 224;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 224;goto st902;} + {stack[top++] = 224;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 224;goto st904;} + {stack[top++] = 224;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 224;goto st936;} + {stack[top++] = 224;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 224;goto st941;} + {stack[top++] = 224;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 224;goto st946;} + {stack[top++] = 224;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 224;goto st951;} + {stack[top++] = 224;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 224;goto st955;} + {stack[top++] = 224;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 224;goto st957;} + {stack[top++] = 224;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 224;goto st1012;} + {stack[top++] = 224;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 224;goto st1023;} + {stack[top++] = 224;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 224;goto st1040;} + {stack[top++] = 224;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 224;goto st1051;} + {stack[top++] = 224;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 224;goto st1062;} + {stack[top++] = 224;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 224;goto st1075;} + {stack[top++] = 224;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 224;goto st1085;} + {stack[top++] = 224;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 224;goto st1124;} + {stack[top++] = 224;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 224;goto st1319;} + {stack[top++] = 224;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 224;goto st1322;} + {stack[top++] = 224;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 224;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 224;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 224;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 224;goto st1364;} + {stack[top++] = 224;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 224;goto st1377;} + {stack[top++] = 224;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 224;goto st1390;} + {stack[top++] = 224;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 224;goto st1396;} + {stack[top++] = 224;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 224;goto st1414;} + {stack[top++] = 224;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 224;goto st1409;} + {stack[top++] = 224;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 224;goto st1427;} + {stack[top++] = 224;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 224;goto st1433;} + {stack[top++] = 224;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 224;goto st1439;} + {stack[top++] = 224;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 224;goto st1447;} + {stack[top++] = 224;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 224;goto st1455;} + {stack[top++] = 224;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 224;goto st1461;} + {stack[top++] = 224;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -32198,88 +32182,88 @@ tr130: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 225;goto st900;} + {stack[top++] = 225;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 225;goto st902;} + {stack[top++] = 225;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 225;goto st904;} + {stack[top++] = 225;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 225;goto st936;} + {stack[top++] = 225;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 225;goto st941;} + {stack[top++] = 225;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 225;goto st946;} + {stack[top++] = 225;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 225;goto st951;} + {stack[top++] = 225;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 225;goto st955;} + {stack[top++] = 225;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 225;goto st957;} + {stack[top++] = 225;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 225;goto st1012;} + {stack[top++] = 225;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 225;goto st1023;} + {stack[top++] = 225;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 225;goto st1040;} + {stack[top++] = 225;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 225;goto st1051;} + {stack[top++] = 225;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 225;goto st1062;} + {stack[top++] = 225;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 225;goto st1075;} + {stack[top++] = 225;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 225;goto st1085;} + {stack[top++] = 225;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 225;goto st1124;} + {stack[top++] = 225;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 225;goto st1319;} + {stack[top++] = 225;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 225;goto st1322;} + {stack[top++] = 225;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 225;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 225;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 225;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 225;goto st1364;} + {stack[top++] = 225;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 225;goto st1377;} + {stack[top++] = 225;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 225;goto st1390;} + {stack[top++] = 225;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 225;goto st1396;} + {stack[top++] = 225;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 225;goto st1414;} + {stack[top++] = 225;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 225;goto st1409;} + {stack[top++] = 225;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 225;goto st1427;} + {stack[top++] = 225;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 225;goto st1433;} + {stack[top++] = 225;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 225;goto st1439;} + {stack[top++] = 225;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 225;goto st1447;} + {stack[top++] = 225;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 225;goto st1455;} + {stack[top++] = 225;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 225;goto st1461;} + {stack[top++] = 225;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -32328,88 +32312,88 @@ tr131: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 226;goto st900;} + {stack[top++] = 226;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 226;goto st902;} + {stack[top++] = 226;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 226;goto st904;} + {stack[top++] = 226;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 226;goto st936;} + {stack[top++] = 226;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 226;goto st941;} + {stack[top++] = 226;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 226;goto st946;} + {stack[top++] = 226;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 226;goto st951;} + {stack[top++] = 226;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 226;goto st955;} + {stack[top++] = 226;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 226;goto st957;} + {stack[top++] = 226;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 226;goto st1012;} + {stack[top++] = 226;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 226;goto st1023;} + {stack[top++] = 226;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 226;goto st1040;} + {stack[top++] = 226;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 226;goto st1051;} + {stack[top++] = 226;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 226;goto st1062;} + {stack[top++] = 226;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 226;goto st1075;} + {stack[top++] = 226;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 226;goto st1085;} + {stack[top++] = 226;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 226;goto st1124;} + {stack[top++] = 226;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 226;goto st1319;} + {stack[top++] = 226;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 226;goto st1322;} + {stack[top++] = 226;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 226;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 226;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 226;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 226;goto st1364;} + {stack[top++] = 226;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 226;goto st1377;} + {stack[top++] = 226;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 226;goto st1390;} + {stack[top++] = 226;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 226;goto st1396;} + {stack[top++] = 226;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 226;goto st1414;} + {stack[top++] = 226;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 226;goto st1409;} + {stack[top++] = 226;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 226;goto st1427;} + {stack[top++] = 226;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 226;goto st1433;} + {stack[top++] = 226;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 226;goto st1439;} + {stack[top++] = 226;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 226;goto st1447;} + {stack[top++] = 226;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 226;goto st1455;} + {stack[top++] = 226;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 226;goto st1461;} + {stack[top++] = 226;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -32460,88 +32444,88 @@ tr132: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 227;goto st900;} + {stack[top++] = 227;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 227;goto st902;} + {stack[top++] = 227;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 227;goto st904;} + {stack[top++] = 227;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 227;goto st936;} + {stack[top++] = 227;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 227;goto st941;} + {stack[top++] = 227;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 227;goto st946;} + {stack[top++] = 227;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 227;goto st951;} + {stack[top++] = 227;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 227;goto st955;} + {stack[top++] = 227;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 227;goto st957;} + {stack[top++] = 227;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 227;goto st1012;} + {stack[top++] = 227;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 227;goto st1023;} + {stack[top++] = 227;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 227;goto st1040;} + {stack[top++] = 227;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 227;goto st1051;} + {stack[top++] = 227;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 227;goto st1062;} + {stack[top++] = 227;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 227;goto st1075;} + {stack[top++] = 227;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 227;goto st1085;} + {stack[top++] = 227;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 227;goto st1124;} + {stack[top++] = 227;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 227;goto st1319;} + {stack[top++] = 227;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 227;goto st1322;} + {stack[top++] = 227;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 227;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 227;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 227;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 227;goto st1364;} + {stack[top++] = 227;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 227;goto st1377;} + {stack[top++] = 227;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 227;goto st1390;} + {stack[top++] = 227;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 227;goto st1396;} + {stack[top++] = 227;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 227;goto st1414;} + {stack[top++] = 227;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 227;goto st1409;} + {stack[top++] = 227;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 227;goto st1427;} + {stack[top++] = 227;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 227;goto st1433;} + {stack[top++] = 227;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 227;goto st1439;} + {stack[top++] = 227;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 227;goto st1447;} + {stack[top++] = 227;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 227;goto st1455;} + {stack[top++] = 227;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 227;goto st1461;} + {stack[top++] = 227;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -32590,88 +32574,88 @@ tr133: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 228;goto st900;} + {stack[top++] = 228;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 228;goto st902;} + {stack[top++] = 228;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 228;goto st904;} + {stack[top++] = 228;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 228;goto st936;} + {stack[top++] = 228;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 228;goto st941;} + {stack[top++] = 228;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 228;goto st946;} + {stack[top++] = 228;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 228;goto st951;} + {stack[top++] = 228;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 228;goto st955;} + {stack[top++] = 228;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 228;goto st957;} + {stack[top++] = 228;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 228;goto st1012;} + {stack[top++] = 228;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 228;goto st1023;} + {stack[top++] = 228;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 228;goto st1040;} + {stack[top++] = 228;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 228;goto st1051;} + {stack[top++] = 228;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 228;goto st1062;} + {stack[top++] = 228;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 228;goto st1075;} + {stack[top++] = 228;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 228;goto st1085;} + {stack[top++] = 228;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 228;goto st1124;} + {stack[top++] = 228;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 228;goto st1319;} + {stack[top++] = 228;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 228;goto st1322;} + {stack[top++] = 228;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 228;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 228;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 228;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 228;goto st1364;} + {stack[top++] = 228;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 228;goto st1377;} + {stack[top++] = 228;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 228;goto st1390;} + {stack[top++] = 228;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 228;goto st1396;} + {stack[top++] = 228;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 228;goto st1414;} + {stack[top++] = 228;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 228;goto st1409;} + {stack[top++] = 228;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 228;goto st1427;} + {stack[top++] = 228;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 228;goto st1433;} + {stack[top++] = 228;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 228;goto st1439;} + {stack[top++] = 228;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 228;goto st1447;} + {stack[top++] = 228;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 228;goto st1455;} + {stack[top++] = 228;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 228;goto st1461;} + {stack[top++] = 228;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -32722,88 +32706,88 @@ tr134: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 229;goto st900;} + {stack[top++] = 229;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 229;goto st902;} + {stack[top++] = 229;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 229;goto st904;} + {stack[top++] = 229;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 229;goto st936;} + {stack[top++] = 229;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 229;goto st941;} + {stack[top++] = 229;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 229;goto st946;} + {stack[top++] = 229;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 229;goto st951;} + {stack[top++] = 229;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 229;goto st955;} + {stack[top++] = 229;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 229;goto st957;} + {stack[top++] = 229;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 229;goto st1012;} + {stack[top++] = 229;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 229;goto st1023;} + {stack[top++] = 229;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 229;goto st1040;} + {stack[top++] = 229;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 229;goto st1051;} + {stack[top++] = 229;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 229;goto st1062;} + {stack[top++] = 229;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 229;goto st1075;} + {stack[top++] = 229;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 229;goto st1085;} + {stack[top++] = 229;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 229;goto st1124;} + {stack[top++] = 229;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 229;goto st1319;} + {stack[top++] = 229;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 229;goto st1322;} + {stack[top++] = 229;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 229;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 229;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 229;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 229;goto st1364;} + {stack[top++] = 229;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 229;goto st1377;} + {stack[top++] = 229;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 229;goto st1390;} + {stack[top++] = 229;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 229;goto st1396;} + {stack[top++] = 229;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 229;goto st1414;} + {stack[top++] = 229;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 229;goto st1409;} + {stack[top++] = 229;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 229;goto st1427;} + {stack[top++] = 229;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 229;goto st1433;} + {stack[top++] = 229;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 229;goto st1439;} + {stack[top++] = 229;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 229;goto st1447;} + {stack[top++] = 229;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 229;goto st1455;} + {stack[top++] = 229;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 229;goto st1461;} + {stack[top++] = 229;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -32850,88 +32834,88 @@ tr135: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 230;goto st900;} + {stack[top++] = 230;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 230;goto st902;} + {stack[top++] = 230;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 230;goto st904;} + {stack[top++] = 230;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 230;goto st936;} + {stack[top++] = 230;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 230;goto st941;} + {stack[top++] = 230;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 230;goto st946;} + {stack[top++] = 230;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 230;goto st951;} + {stack[top++] = 230;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 230;goto st955;} + {stack[top++] = 230;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 230;goto st957;} + {stack[top++] = 230;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 230;goto st1012;} + {stack[top++] = 230;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 230;goto st1023;} + {stack[top++] = 230;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 230;goto st1040;} + {stack[top++] = 230;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 230;goto st1051;} + {stack[top++] = 230;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 230;goto st1062;} + {stack[top++] = 230;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 230;goto st1075;} + {stack[top++] = 230;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 230;goto st1085;} + {stack[top++] = 230;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 230;goto st1124;} + {stack[top++] = 230;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 230;goto st1319;} + {stack[top++] = 230;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 230;goto st1322;} + {stack[top++] = 230;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 230;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 230;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 230;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 230;goto st1364;} + {stack[top++] = 230;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 230;goto st1377;} + {stack[top++] = 230;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 230;goto st1390;} + {stack[top++] = 230;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 230;goto st1396;} + {stack[top++] = 230;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 230;goto st1414;} + {stack[top++] = 230;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 230;goto st1409;} + {stack[top++] = 230;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 230;goto st1427;} + {stack[top++] = 230;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 230;goto st1433;} + {stack[top++] = 230;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 230;goto st1439;} + {stack[top++] = 230;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 230;goto st1447;} + {stack[top++] = 230;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 230;goto st1455;} + {stack[top++] = 230;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 230;goto st1461;} + {stack[top++] = 230;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -32978,88 +32962,88 @@ tr136: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 231;goto st900;} + {stack[top++] = 231;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 231;goto st902;} + {stack[top++] = 231;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 231;goto st904;} + {stack[top++] = 231;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 231;goto st936;} + {stack[top++] = 231;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 231;goto st941;} + {stack[top++] = 231;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 231;goto st946;} + {stack[top++] = 231;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 231;goto st951;} + {stack[top++] = 231;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 231;goto st955;} + {stack[top++] = 231;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 231;goto st957;} + {stack[top++] = 231;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 231;goto st1012;} + {stack[top++] = 231;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 231;goto st1023;} + {stack[top++] = 231;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 231;goto st1040;} + {stack[top++] = 231;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 231;goto st1051;} + {stack[top++] = 231;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 231;goto st1062;} + {stack[top++] = 231;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 231;goto st1075;} + {stack[top++] = 231;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 231;goto st1085;} + {stack[top++] = 231;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 231;goto st1124;} + {stack[top++] = 231;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 231;goto st1319;} + {stack[top++] = 231;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 231;goto st1322;} + {stack[top++] = 231;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 231;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 231;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 231;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 231;goto st1364;} + {stack[top++] = 231;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 231;goto st1377;} + {stack[top++] = 231;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 231;goto st1390;} + {stack[top++] = 231;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 231;goto st1396;} + {stack[top++] = 231;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 231;goto st1414;} + {stack[top++] = 231;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 231;goto st1409;} + {stack[top++] = 231;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 231;goto st1427;} + {stack[top++] = 231;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 231;goto st1433;} + {stack[top++] = 231;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 231;goto st1439;} + {stack[top++] = 231;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 231;goto st1447;} + {stack[top++] = 231;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 231;goto st1455;} + {stack[top++] = 231;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 231;goto st1461;} + {stack[top++] = 231;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -33110,88 +33094,88 @@ tr137: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 232;goto st900;} + {stack[top++] = 232;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 232;goto st902;} + {stack[top++] = 232;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 232;goto st904;} + {stack[top++] = 232;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 232;goto st936;} + {stack[top++] = 232;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 232;goto st941;} + {stack[top++] = 232;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 232;goto st946;} + {stack[top++] = 232;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 232;goto st951;} + {stack[top++] = 232;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 232;goto st955;} + {stack[top++] = 232;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 232;goto st957;} + {stack[top++] = 232;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 232;goto st1012;} + {stack[top++] = 232;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 232;goto st1023;} + {stack[top++] = 232;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 232;goto st1040;} + {stack[top++] = 232;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 232;goto st1051;} + {stack[top++] = 232;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 232;goto st1062;} + {stack[top++] = 232;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 232;goto st1075;} + {stack[top++] = 232;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 232;goto st1085;} + {stack[top++] = 232;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 232;goto st1124;} + {stack[top++] = 232;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 232;goto st1319;} + {stack[top++] = 232;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 232;goto st1322;} + {stack[top++] = 232;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 232;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 232;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 232;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 232;goto st1364;} + {stack[top++] = 232;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 232;goto st1377;} + {stack[top++] = 232;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 232;goto st1390;} + {stack[top++] = 232;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 232;goto st1396;} + {stack[top++] = 232;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 232;goto st1414;} + {stack[top++] = 232;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 232;goto st1409;} + {stack[top++] = 232;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 232;goto st1427;} + {stack[top++] = 232;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 232;goto st1433;} + {stack[top++] = 232;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 232;goto st1439;} + {stack[top++] = 232;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 232;goto st1447;} + {stack[top++] = 232;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 232;goto st1455;} + {stack[top++] = 232;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 232;goto st1461;} + {stack[top++] = 232;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -33248,88 +33232,88 @@ tr138: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 233;goto st900;} + {stack[top++] = 233;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 233;goto st902;} + {stack[top++] = 233;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 233;goto st904;} + {stack[top++] = 233;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 233;goto st936;} + {stack[top++] = 233;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 233;goto st941;} + {stack[top++] = 233;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 233;goto st946;} + {stack[top++] = 233;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 233;goto st951;} + {stack[top++] = 233;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 233;goto st955;} + {stack[top++] = 233;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 233;goto st957;} + {stack[top++] = 233;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 233;goto st1012;} + {stack[top++] = 233;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 233;goto st1023;} + {stack[top++] = 233;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 233;goto st1040;} + {stack[top++] = 233;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 233;goto st1051;} + {stack[top++] = 233;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 233;goto st1062;} + {stack[top++] = 233;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 233;goto st1075;} + {stack[top++] = 233;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 233;goto st1085;} + {stack[top++] = 233;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 233;goto st1124;} + {stack[top++] = 233;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 233;goto st1319;} + {stack[top++] = 233;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 233;goto st1322;} + {stack[top++] = 233;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 233;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 233;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 233;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 233;goto st1364;} + {stack[top++] = 233;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 233;goto st1377;} + {stack[top++] = 233;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 233;goto st1390;} + {stack[top++] = 233;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 233;goto st1396;} + {stack[top++] = 233;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 233;goto st1414;} + {stack[top++] = 233;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 233;goto st1409;} + {stack[top++] = 233;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 233;goto st1427;} + {stack[top++] = 233;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 233;goto st1433;} + {stack[top++] = 233;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 233;goto st1439;} + {stack[top++] = 233;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 233;goto st1447;} + {stack[top++] = 233;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 233;goto st1455;} + {stack[top++] = 233;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 233;goto st1461;} + {stack[top++] = 233;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -33380,88 +33364,88 @@ tr139: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 234;goto st900;} + {stack[top++] = 234;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 234;goto st902;} + {stack[top++] = 234;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 234;goto st904;} + {stack[top++] = 234;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 234;goto st936;} + {stack[top++] = 234;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 234;goto st941;} + {stack[top++] = 234;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 234;goto st946;} + {stack[top++] = 234;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 234;goto st951;} + {stack[top++] = 234;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 234;goto st955;} + {stack[top++] = 234;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 234;goto st957;} + {stack[top++] = 234;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 234;goto st1012;} + {stack[top++] = 234;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 234;goto st1023;} + {stack[top++] = 234;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 234;goto st1040;} + {stack[top++] = 234;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 234;goto st1051;} + {stack[top++] = 234;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 234;goto st1062;} + {stack[top++] = 234;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 234;goto st1075;} + {stack[top++] = 234;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 234;goto st1085;} + {stack[top++] = 234;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 234;goto st1124;} + {stack[top++] = 234;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 234;goto st1319;} + {stack[top++] = 234;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 234;goto st1322;} + {stack[top++] = 234;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 234;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 234;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 234;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 234;goto st1364;} + {stack[top++] = 234;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 234;goto st1377;} + {stack[top++] = 234;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 234;goto st1390;} + {stack[top++] = 234;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 234;goto st1396;} + {stack[top++] = 234;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 234;goto st1414;} + {stack[top++] = 234;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 234;goto st1409;} + {stack[top++] = 234;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 234;goto st1427;} + {stack[top++] = 234;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 234;goto st1433;} + {stack[top++] = 234;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 234;goto st1439;} + {stack[top++] = 234;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 234;goto st1447;} + {stack[top++] = 234;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 234;goto st1455;} + {stack[top++] = 234;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 234;goto st1461;} + {stack[top++] = 234;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -33508,88 +33492,88 @@ tr140: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 235;goto st900;} + {stack[top++] = 235;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 235;goto st902;} + {stack[top++] = 235;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 235;goto st904;} + {stack[top++] = 235;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 235;goto st936;} + {stack[top++] = 235;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 235;goto st941;} + {stack[top++] = 235;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 235;goto st946;} + {stack[top++] = 235;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 235;goto st951;} + {stack[top++] = 235;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 235;goto st955;} + {stack[top++] = 235;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 235;goto st957;} + {stack[top++] = 235;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 235;goto st1012;} + {stack[top++] = 235;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 235;goto st1023;} + {stack[top++] = 235;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 235;goto st1040;} + {stack[top++] = 235;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 235;goto st1051;} + {stack[top++] = 235;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 235;goto st1062;} + {stack[top++] = 235;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 235;goto st1075;} + {stack[top++] = 235;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 235;goto st1085;} + {stack[top++] = 235;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 235;goto st1124;} + {stack[top++] = 235;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 235;goto st1319;} + {stack[top++] = 235;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 235;goto st1322;} + {stack[top++] = 235;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 235;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 235;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 235;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 235;goto st1364;} + {stack[top++] = 235;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 235;goto st1377;} + {stack[top++] = 235;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 235;goto st1390;} + {stack[top++] = 235;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 235;goto st1396;} + {stack[top++] = 235;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 235;goto st1414;} + {stack[top++] = 235;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 235;goto st1409;} + {stack[top++] = 235;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 235;goto st1427;} + {stack[top++] = 235;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 235;goto st1433;} + {stack[top++] = 235;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 235;goto st1439;} + {stack[top++] = 235;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 235;goto st1447;} + {stack[top++] = 235;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 235;goto st1455;} + {stack[top++] = 235;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 235;goto st1461;} + {stack[top++] = 235;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -33636,88 +33620,88 @@ tr141: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 236;goto st900;} + {stack[top++] = 236;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 236;goto st902;} + {stack[top++] = 236;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 236;goto st904;} + {stack[top++] = 236;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 236;goto st936;} + {stack[top++] = 236;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 236;goto st941;} + {stack[top++] = 236;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 236;goto st946;} + {stack[top++] = 236;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 236;goto st951;} + {stack[top++] = 236;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 236;goto st955;} + {stack[top++] = 236;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 236;goto st957;} + {stack[top++] = 236;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 236;goto st1012;} + {stack[top++] = 236;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 236;goto st1023;} + {stack[top++] = 236;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 236;goto st1040;} + {stack[top++] = 236;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 236;goto st1051;} + {stack[top++] = 236;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 236;goto st1062;} + {stack[top++] = 236;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 236;goto st1075;} + {stack[top++] = 236;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 236;goto st1085;} + {stack[top++] = 236;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 236;goto st1124;} + {stack[top++] = 236;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 236;goto st1319;} + {stack[top++] = 236;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 236;goto st1322;} + {stack[top++] = 236;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 236;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 236;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 236;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 236;goto st1364;} + {stack[top++] = 236;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 236;goto st1377;} + {stack[top++] = 236;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 236;goto st1390;} + {stack[top++] = 236;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 236;goto st1396;} + {stack[top++] = 236;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 236;goto st1414;} + {stack[top++] = 236;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 236;goto st1409;} + {stack[top++] = 236;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 236;goto st1427;} + {stack[top++] = 236;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 236;goto st1433;} + {stack[top++] = 236;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 236;goto st1439;} + {stack[top++] = 236;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 236;goto st1447;} + {stack[top++] = 236;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 236;goto st1455;} + {stack[top++] = 236;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 236;goto st1461;} + {stack[top++] = 236;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -33814,7 +33798,7 @@ tr924: s->buffer_length = 0; } goto st237; -tr4473: +tr4243: { s->buffer_length = 0; } @@ -33865,7 +33849,7 @@ tr142: { s->line_counter++; } - goto st1491; + goto st1482; tr991: { s->buffer[s->buffer_length++] = 0; @@ -33876,14 +33860,14 @@ tr991: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1491; goto _out;} + {p++; cs = 1482; goto _out;} } } } { s->line_counter++; } - goto st1491; + goto st1482; tr889: { s->buffer[s->buffer_length++] = 0; @@ -33894,7 +33878,7 @@ tr889: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1491; goto _out;} + {p++; cs = 1482; goto _out;} } } } @@ -33917,15 +33901,15 @@ tr889: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1491; goto _out;} + {p++; cs = 1482; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1491; goto _out;} + p--; {p++; cs = 1482; goto _out;} } } - goto st1491; + goto st1482; tr930: { s->line_counter++; @@ -33946,15 +33930,15 @@ tr930: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1491; goto _out;} + {p++; cs = 1482; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1491; goto _out;} + p--; {p++; cs = 1482; goto _out;} } } - goto st1491; + goto st1482; tr923: { s->r_owner_length = s->dname_tmp_length; @@ -33986,16 +33970,16 @@ tr923: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1491; goto _out;} + {p++; cs = 1482; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1491; goto _out;} + p--; {p++; cs = 1482; goto _out;} } } - goto st1491; -tr4401: + goto st1482; +tr4171: { s->line_counter++; } @@ -34009,11 +33993,11 @@ tr4401: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1491; -st1491: + goto st1482; +st1482: if ( ++p == pe ) - goto _test_eof1491; -case 1491: + goto _test_eof1482; +case 1482: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34031,59 +34015,59 @@ case 1491: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4395; - case 32: goto tr4395; - case 36: goto tr4396; - case 40: goto tr4397; - case 41: goto tr4398; - case 42: goto tr4399; + case 9: goto tr4165; + case 32: goto tr4165; + case 36: goto tr4166; + case 40: goto tr4167; + case 41: goto tr4168; + case 42: goto tr4169; case 58: goto tr75; - case 65: goto tr4477; - case 67: goto tr4478; - case 68: goto tr4479; - case 69: goto tr4480; - case 72: goto tr4481; - case 73: goto tr4482; - case 75: goto tr4483; - case 76: goto tr4484; - case 77: goto tr4485; - case 78: goto tr4486; - case 79: goto tr4487; - case 80: goto tr4488; - case 82: goto tr4489; - case 83: goto tr4490; - case 84: goto tr4491; - case 85: goto tr4492; - case 87: goto tr4493; - case 90: goto tr4494; - case 92: goto tr4400; - case 95: goto tr4399; - case 97: goto tr4477; - case 99: goto tr4478; - case 100: goto tr4479; - case 101: goto tr4480; - case 104: goto tr4481; - case 105: goto tr4482; - case 107: goto tr4483; - case 108: goto tr4484; - case 109: goto tr4485; - case 110: goto tr4486; - case 111: goto tr4487; - case 112: goto tr4488; - case 114: goto tr4489; - case 115: goto tr4490; - case 116: goto tr4491; - case 117: goto tr4492; - case 119: goto tr4493; - case 122: goto tr4494; - case 2826: goto tr4391; - case 2875: goto tr4392; - case 3082: goto tr4401; - case 3131: goto tr4402; - case 3338: goto tr4403; - case 3387: goto tr4404; - case 3594: goto tr4405; - case 3643: goto tr4406; + case 65: goto tr4247; + case 67: goto tr4248; + case 68: goto tr4249; + case 69: goto tr4250; + case 72: goto tr4251; + case 73: goto tr4252; + case 75: goto tr4253; + case 76: goto tr4254; + case 77: goto tr4255; + case 78: goto tr4256; + case 79: goto tr4257; + case 80: goto tr4258; + case 82: goto tr4259; + case 83: goto tr4260; + case 84: goto tr4261; + case 85: goto tr4262; + case 87: goto tr4263; + case 90: goto tr4264; + case 92: goto tr4170; + case 95: goto tr4169; + case 97: goto tr4247; + case 99: goto tr4248; + case 100: goto tr4249; + case 101: goto tr4250; + case 104: goto tr4251; + case 105: goto tr4252; + case 107: goto tr4253; + case 108: goto tr4254; + case 109: goto tr4255; + case 110: goto tr4256; + case 111: goto tr4257; + case 112: goto tr4258; + case 114: goto tr4259; + case 115: goto tr4260; + case 116: goto tr4261; + case 117: goto tr4262; + case 119: goto tr4263; + case 122: goto tr4264; + case 2826: goto tr4161; + case 2875: goto tr4162; + case 3082: goto tr4171; + case 3131: goto tr4172; + case 3338: goto tr4173; + case 3387: goto tr4174; + case 3594: goto tr4175; + case 3643: goto tr4176; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -34092,113 +34076,113 @@ case 1491: } else if ( _widec > 44 ) { if ( _widec > 47 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4476; + goto tr4246; } else if ( _widec >= 45 ) - goto tr4399; + goto tr4169; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 89 ) - goto tr4399; + goto tr4169; } else if ( _widec > 96 ) { if ( _widec > 121 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 98 ) - goto tr4399; + goto tr4169; } else goto tr75; } else goto tr75; - goto tr4475; -tr4396: + goto tr4245; +tr4166: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 238;goto st900;} + {stack[top++] = 238;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 238;goto st902;} + {stack[top++] = 238;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 238;goto st904;} + {stack[top++] = 238;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 238;goto st936;} + {stack[top++] = 238;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 238;goto st941;} + {stack[top++] = 238;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 238;goto st946;} + {stack[top++] = 238;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 238;goto st951;} + {stack[top++] = 238;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 238;goto st955;} + {stack[top++] = 238;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 238;goto st957;} + {stack[top++] = 238;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 238;goto st1012;} + {stack[top++] = 238;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 238;goto st1023;} + {stack[top++] = 238;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 238;goto st1040;} + {stack[top++] = 238;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 238;goto st1051;} + {stack[top++] = 238;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 238;goto st1062;} + {stack[top++] = 238;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 238;goto st1075;} + {stack[top++] = 238;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 238;goto st1085;} + {stack[top++] = 238;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 238;goto st1124;} + {stack[top++] = 238;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 238;goto st1319;} + {stack[top++] = 238;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 238;goto st1322;} + {stack[top++] = 238;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 238;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 238;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 238;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 238;goto st1364;} + {stack[top++] = 238;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 238;goto st1377;} + {stack[top++] = 238;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 238;goto st1390;} + {stack[top++] = 238;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 238;goto st1396;} + {stack[top++] = 238;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 238;goto st1414;} + {stack[top++] = 238;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 238;goto st1409;} + {stack[top++] = 238;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 238;goto st1427;} + {stack[top++] = 238;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 238;goto st1433;} + {stack[top++] = 238;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 238;goto st1439;} + {stack[top++] = 238;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 238;goto st1447;} + {stack[top++] = 238;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 238;goto st1455;} + {stack[top++] = 238;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 238;goto st1461;} + {stack[top++] = 238;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -34339,93 +34323,93 @@ case 247: } else if ( (*p) >= 9 ) goto tr899; goto tr784; -tr4399: +tr4169: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 248;goto st900;} + {stack[top++] = 248;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 248;goto st902;} + {stack[top++] = 248;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 248;goto st904;} + {stack[top++] = 248;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 248;goto st936;} + {stack[top++] = 248;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 248;goto st941;} + {stack[top++] = 248;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 248;goto st946;} + {stack[top++] = 248;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 248;goto st951;} + {stack[top++] = 248;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 248;goto st955;} + {stack[top++] = 248;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 248;goto st957;} + {stack[top++] = 248;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 248;goto st1012;} + {stack[top++] = 248;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 248;goto st1023;} + {stack[top++] = 248;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 248;goto st1040;} + {stack[top++] = 248;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 248;goto st1051;} + {stack[top++] = 248;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 248;goto st1062;} + {stack[top++] = 248;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 248;goto st1075;} + {stack[top++] = 248;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 248;goto st1085;} + {stack[top++] = 248;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 248;goto st1124;} + {stack[top++] = 248;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 248;goto st1319;} + {stack[top++] = 248;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 248;goto st1322;} + {stack[top++] = 248;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 248;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 248;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 248;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 248;goto st1364;} + {stack[top++] = 248;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 248;goto st1377;} + {stack[top++] = 248;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 248;goto st1390;} + {stack[top++] = 248;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 248;goto st1396;} + {stack[top++] = 248;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 248;goto st1414;} + {stack[top++] = 248;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 248;goto st1409;} + {stack[top++] = 248;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 248;goto st1427;} + {stack[top++] = 248;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 248;goto st1433;} + {stack[top++] = 248;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 248;goto st1439;} + {stack[top++] = 248;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 248;goto st1447;} + {stack[top++] = 248;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 248;goto st1455;} + {stack[top++] = 248;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 248;goto st1461;} + {stack[top++] = 248;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -34464,7 +34448,7 @@ case 248: case 2107: goto tr905; } goto tr900; -tr4476: +tr4246: { s->number64 = 0; } @@ -34486,88 +34470,88 @@ tr4476: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 249;goto st900;} + {stack[top++] = 249;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 249;goto st902;} + {stack[top++] = 249;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 249;goto st904;} + {stack[top++] = 249;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 249;goto st936;} + {stack[top++] = 249;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 249;goto st941;} + {stack[top++] = 249;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 249;goto st946;} + {stack[top++] = 249;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 249;goto st951;} + {stack[top++] = 249;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 249;goto st955;} + {stack[top++] = 249;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 249;goto st957;} + {stack[top++] = 249;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 249;goto st1012;} + {stack[top++] = 249;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 249;goto st1023;} + {stack[top++] = 249;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 249;goto st1040;} + {stack[top++] = 249;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 249;goto st1051;} + {stack[top++] = 249;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 249;goto st1062;} + {stack[top++] = 249;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 249;goto st1075;} + {stack[top++] = 249;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 249;goto st1085;} + {stack[top++] = 249;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 249;goto st1124;} + {stack[top++] = 249;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 249;goto st1319;} + {stack[top++] = 249;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 249;goto st1322;} + {stack[top++] = 249;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 249;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 249;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 249;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 249;goto st1364;} + {stack[top++] = 249;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 249;goto st1377;} + {stack[top++] = 249;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 249;goto st1390;} + {stack[top++] = 249;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 249;goto st1396;} + {stack[top++] = 249;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 249;goto st1414;} + {stack[top++] = 249;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 249;goto st1409;} + {stack[top++] = 249;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 249;goto st1427;} + {stack[top++] = 249;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 249;goto st1433;} + {stack[top++] = 249;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 249;goto st1439;} + {stack[top++] = 249;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 249;goto st1447;} + {stack[top++] = 249;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 249;goto st1455;} + {stack[top++] = 249;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 249;goto st1461;} + {stack[top++] = 249;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -34830,7 +34814,7 @@ case 251: } else if ( _widec >= 1664 ) goto tr97; goto tr154; -tr4477: +tr4247: { s->r_class = s->default_class; } @@ -34841,88 +34825,88 @@ tr4477: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 252;goto st900;} + {stack[top++] = 252;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 252;goto st902;} + {stack[top++] = 252;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 252;goto st904;} + {stack[top++] = 252;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 252;goto st936;} + {stack[top++] = 252;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 252;goto st941;} + {stack[top++] = 252;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 252;goto st946;} + {stack[top++] = 252;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 252;goto st951;} + {stack[top++] = 252;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 252;goto st955;} + {stack[top++] = 252;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 252;goto st957;} + {stack[top++] = 252;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 252;goto st1012;} + {stack[top++] = 252;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 252;goto st1023;} + {stack[top++] = 252;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 252;goto st1040;} + {stack[top++] = 252;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 252;goto st1051;} + {stack[top++] = 252;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 252;goto st1062;} + {stack[top++] = 252;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 252;goto st1075;} + {stack[top++] = 252;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 252;goto st1085;} + {stack[top++] = 252;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 252;goto st1124;} + {stack[top++] = 252;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 252;goto st1319;} + {stack[top++] = 252;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 252;goto st1322;} + {stack[top++] = 252;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 252;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 252;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 252;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 252;goto st1364;} + {stack[top++] = 252;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 252;goto st1377;} + {stack[top++] = 252;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 252;goto st1390;} + {stack[top++] = 252;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 252;goto st1396;} + {stack[top++] = 252;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 252;goto st1414;} + {stack[top++] = 252;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 252;goto st1409;} + {stack[top++] = 252;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 252;goto st1427;} + {stack[top++] = 252;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 252;goto st1433;} + {stack[top++] = 252;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 252;goto st1439;} + {stack[top++] = 252;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 252;goto st1447;} + {stack[top++] = 252;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 252;goto st1455;} + {stack[top++] = 252;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 252;goto st1461;} + {stack[top++] = 252;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -35138,94 +35122,94 @@ tr146: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1492;goto st900;} + {stack[top++] = 1483;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1492;goto st902;} + {stack[top++] = 1483;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1492;goto st904;} + {stack[top++] = 1483;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1492;goto st936;} + {stack[top++] = 1483;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1492;goto st941;} + {stack[top++] = 1483;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1492;goto st946;} + {stack[top++] = 1483;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1492;goto st951;} + {stack[top++] = 1483;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1492;goto st955;} + {stack[top++] = 1483;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1492;goto st957;} + {stack[top++] = 1483;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1492;goto st1012;} + {stack[top++] = 1483;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1492;goto st1023;} + {stack[top++] = 1483;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1492;goto st1040;} + {stack[top++] = 1483;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 1492;goto st1051;} + {stack[top++] = 1483;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1492;goto st1062;} + {stack[top++] = 1483;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1492;goto st1075;} + {stack[top++] = 1483;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1492;goto st1085;} + {stack[top++] = 1483;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1492;goto st1124;} + {stack[top++] = 1483;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1492;goto st1319;} + {stack[top++] = 1483;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1492;goto st1322;} + {stack[top++] = 1483;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1492;goto st1333;} + {stack[top++] = 1483;goto st1335;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1492;goto st1335;} + {stack[top++] = 1483;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1492;goto st1364;} + {stack[top++] = 1483;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1492;goto st1377;} + {stack[top++] = 1483;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1492;goto st1390;} + {stack[top++] = 1483;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1492;goto st1396;} + {stack[top++] = 1483;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1492;goto st1414;} + {stack[top++] = 1483;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 1492;goto st1409;} + {stack[top++] = 1483;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1492;goto st1427;} + {stack[top++] = 1483;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1492;goto st1433;} + {stack[top++] = 1483;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 1492;goto st1439;} + {stack[top++] = 1483;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1492;goto st1447;} + {stack[top++] = 1483;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1492;goto st1455;} + {stack[top++] = 1483;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1492;goto st1461;} + {stack[top++] = 1483;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} } } - goto st1492; + goto st1483; tr931: { s->line_counter++; @@ -35234,88 +35218,88 @@ tr931: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1492;goto st900;} + {stack[top++] = 1483;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1492;goto st902;} + {stack[top++] = 1483;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1492;goto st904;} + {stack[top++] = 1483;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1492;goto st936;} + {stack[top++] = 1483;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1492;goto st941;} + {stack[top++] = 1483;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1492;goto st946;} + {stack[top++] = 1483;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1492;goto st951;} + {stack[top++] = 1483;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1492;goto st955;} + {stack[top++] = 1483;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1492;goto st957;} + {stack[top++] = 1483;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1492;goto st1012;} + {stack[top++] = 1483;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1492;goto st1023;} + {stack[top++] = 1483;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1492;goto st1040;} + {stack[top++] = 1483;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 1492;goto st1051;} + {stack[top++] = 1483;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1492;goto st1062;} + {stack[top++] = 1483;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1492;goto st1075;} + {stack[top++] = 1483;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1492;goto st1085;} + {stack[top++] = 1483;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1492;goto st1124;} + {stack[top++] = 1483;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1492;goto st1319;} + {stack[top++] = 1483;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1492;goto st1322;} + {stack[top++] = 1483;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1492;goto st1333;} + {stack[top++] = 1483;goto st1335;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1492;goto st1335;} + {stack[top++] = 1483;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1492;goto st1364;} + {stack[top++] = 1483;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1492;goto st1377;} + {stack[top++] = 1483;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1492;goto st1390;} + {stack[top++] = 1483;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1492;goto st1396;} + {stack[top++] = 1483;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1492;goto st1414;} + {stack[top++] = 1483;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 1492;goto st1409;} + {stack[top++] = 1483;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1492;goto st1427;} + {stack[top++] = 1483;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1492;goto st1433;} + {stack[top++] = 1483;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 1492;goto st1439;} + {stack[top++] = 1483;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1492;goto st1447;} + {stack[top++] = 1483;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1492;goto st1455;} + {stack[top++] = 1483;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1492;goto st1461;} + {stack[top++] = 1483;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -35337,15 +35321,15 @@ tr931: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1483; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1492; goto _out;} + p--; {p++; cs = 1483; goto _out;} } } - goto st1492; + goto st1483; tr925: { s->r_owner_length = s->dname_tmp_length; @@ -35361,88 +35345,88 @@ tr925: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1492;goto st900;} + {stack[top++] = 1483;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1492;goto st902;} + {stack[top++] = 1483;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1492;goto st904;} + {stack[top++] = 1483;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1492;goto st936;} + {stack[top++] = 1483;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1492;goto st941;} + {stack[top++] = 1483;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1492;goto st946;} + {stack[top++] = 1483;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1492;goto st951;} + {stack[top++] = 1483;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1492;goto st955;} + {stack[top++] = 1483;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1492;goto st957;} + {stack[top++] = 1483;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1492;goto st1012;} + {stack[top++] = 1483;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1492;goto st1023;} + {stack[top++] = 1483;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1492;goto st1040;} + {stack[top++] = 1483;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 1492;goto st1051;} + {stack[top++] = 1483;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1492;goto st1062;} + {stack[top++] = 1483;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1492;goto st1075;} + {stack[top++] = 1483;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1492;goto st1085;} + {stack[top++] = 1483;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1492;goto st1124;} + {stack[top++] = 1483;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1492;goto st1319;} + {stack[top++] = 1483;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1492;goto st1322;} + {stack[top++] = 1483;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1492;goto st1333;} + {stack[top++] = 1483;goto st1335;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1492;goto st1335;} + {stack[top++] = 1483;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1492;goto st1364;} + {stack[top++] = 1483;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1492;goto st1377;} + {stack[top++] = 1483;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1492;goto st1390;} + {stack[top++] = 1483;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1492;goto st1396;} + {stack[top++] = 1483;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1492;goto st1414;} + {stack[top++] = 1483;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 1492;goto st1409;} + {stack[top++] = 1483;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1492;goto st1427;} + {stack[top++] = 1483;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1492;goto st1433;} + {stack[top++] = 1483;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 1492;goto st1439;} + {stack[top++] = 1483;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1492;goto st1447;} + {stack[top++] = 1483;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1492;goto st1455;} + {stack[top++] = 1483;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1492;goto st1461;} + {stack[top++] = 1483;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -35468,16 +35452,16 @@ tr925: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1483; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1492; goto _out;} + p--; {p++; cs = 1483; goto _out;} } } - goto st1492; -tr4405: + goto st1483; +tr4175: { s->line_counter++; } @@ -35485,88 +35469,88 @@ tr4405: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1492;goto st900;} + {stack[top++] = 1483;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1492;goto st902;} + {stack[top++] = 1483;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1492;goto st904;} + {stack[top++] = 1483;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1492;goto st936;} + {stack[top++] = 1483;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1492;goto st941;} + {stack[top++] = 1483;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1492;goto st946;} + {stack[top++] = 1483;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1492;goto st951;} + {stack[top++] = 1483;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1492;goto st955;} + {stack[top++] = 1483;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1492;goto st957;} + {stack[top++] = 1483;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1492;goto st1012;} + {stack[top++] = 1483;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1492;goto st1023;} + {stack[top++] = 1483;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1492;goto st1040;} + {stack[top++] = 1483;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 1492;goto st1051;} + {stack[top++] = 1483;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1492;goto st1062;} + {stack[top++] = 1483;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1492;goto st1075;} + {stack[top++] = 1483;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1492;goto st1085;} + {stack[top++] = 1483;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1492;goto st1124;} + {stack[top++] = 1483;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1492;goto st1319;} + {stack[top++] = 1483;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1492;goto st1322;} + {stack[top++] = 1483;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1492;goto st1333;} + {stack[top++] = 1483;goto st1335;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1492;goto st1335;} + {stack[top++] = 1483;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1492;goto st1364;} + {stack[top++] = 1483;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1492;goto st1377;} + {stack[top++] = 1483;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1492;goto st1390;} + {stack[top++] = 1483;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1492;goto st1396;} + {stack[top++] = 1483;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1492;goto st1414;} + {stack[top++] = 1483;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 1492;goto st1409;} + {stack[top++] = 1483;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1492;goto st1427;} + {stack[top++] = 1483;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1492;goto st1433;} + {stack[top++] = 1483;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 1492;goto st1439;} + {stack[top++] = 1483;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1492;goto st1447;} + {stack[top++] = 1483;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1492;goto st1455;} + {stack[top++] = 1483;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1492;goto st1461;} + {stack[top++] = 1483;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -35582,11 +35566,11 @@ tr4405: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1492; -st1492: + goto st1483; +st1483: if ( ++p == pe ) - goto _test_eof1492; -case 1492: + goto _test_eof1483; +case 1483: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35604,59 +35588,59 @@ case 1492: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4470; - case 32: goto tr4470; - case 36: goto tr4396; - case 40: goto tr4471; - case 41: goto tr4472; - case 42: goto tr4399; + case 9: goto tr4240; + case 32: goto tr4240; + case 36: goto tr4166; + case 40: goto tr4241; + case 41: goto tr4242; + case 42: goto tr4169; case 58: goto tr75; - case 65: goto tr4477; - case 67: goto tr4478; - case 68: goto tr4479; - case 69: goto tr4480; - case 72: goto tr4481; - case 73: goto tr4482; - case 75: goto tr4483; - case 76: goto tr4484; - case 77: goto tr4485; - case 78: goto tr4486; - case 79: goto tr4487; - case 80: goto tr4488; - case 82: goto tr4489; - case 83: goto tr4490; - case 84: goto tr4491; - case 85: goto tr4492; - case 87: goto tr4493; - case 90: goto tr4494; - case 92: goto tr4400; - case 95: goto tr4399; - case 97: goto tr4477; - case 99: goto tr4478; - case 100: goto tr4479; - case 101: goto tr4480; - case 104: goto tr4481; - case 105: goto tr4482; - case 107: goto tr4483; - case 108: goto tr4484; - case 109: goto tr4485; - case 110: goto tr4486; - case 111: goto tr4487; - case 112: goto tr4488; - case 114: goto tr4489; - case 115: goto tr4490; - case 116: goto tr4491; - case 117: goto tr4492; - case 119: goto tr4493; - case 122: goto tr4494; + case 65: goto tr4247; + case 67: goto tr4248; + case 68: goto tr4249; + case 69: goto tr4250; + case 72: goto tr4251; + case 73: goto tr4252; + case 75: goto tr4253; + case 76: goto tr4254; + case 77: goto tr4255; + case 78: goto tr4256; + case 79: goto tr4257; + case 80: goto tr4258; + case 82: goto tr4259; + case 83: goto tr4260; + case 84: goto tr4261; + case 85: goto tr4262; + case 87: goto tr4263; + case 90: goto tr4264; + case 92: goto tr4170; + case 95: goto tr4169; + case 97: goto tr4247; + case 99: goto tr4248; + case 100: goto tr4249; + case 101: goto tr4250; + case 104: goto tr4251; + case 105: goto tr4252; + case 107: goto tr4253; + case 108: goto tr4254; + case 109: goto tr4255; + case 110: goto tr4256; + case 111: goto tr4257; + case 112: goto tr4258; + case 114: goto tr4259; + case 115: goto tr4260; + case 116: goto tr4261; + case 117: goto tr4262; + case 119: goto tr4263; + case 122: goto tr4264; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr4495; - case 3131: goto tr4473; + case 3082: goto tr4265; + case 3131: goto tr4243; case 3338: goto tr107; case 3387: goto tr108; - case 3594: goto tr4495; - case 3643: goto tr4474; + case 3594: goto tr4265; + case 3643: goto tr4244; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -35665,27 +35649,27 @@ case 1492: } else if ( _widec > 44 ) { if ( _widec > 47 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4476; + goto tr4246; } else if ( _widec >= 45 ) - goto tr4399; + goto tr4169; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 89 ) - goto tr4399; + goto tr4169; } else if ( _widec > 96 ) { if ( _widec > 121 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 98 ) - goto tr4399; + goto tr4169; } else goto tr75; } else goto tr75; - goto tr4475; -tr4478: + goto tr4245; +tr4248: { s->r_class = s->default_class; } @@ -35696,88 +35680,88 @@ tr4478: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 254;goto st900;} + {stack[top++] = 254;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 254;goto st902;} + {stack[top++] = 254;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 254;goto st904;} + {stack[top++] = 254;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 254;goto st936;} + {stack[top++] = 254;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 254;goto st941;} + {stack[top++] = 254;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 254;goto st946;} + {stack[top++] = 254;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 254;goto st951;} + {stack[top++] = 254;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 254;goto st955;} + {stack[top++] = 254;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 254;goto st957;} + {stack[top++] = 254;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 254;goto st1012;} + {stack[top++] = 254;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 254;goto st1023;} + {stack[top++] = 254;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 254;goto st1040;} + {stack[top++] = 254;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 254;goto st1051;} + {stack[top++] = 254;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 254;goto st1062;} + {stack[top++] = 254;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 254;goto st1075;} + {stack[top++] = 254;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 254;goto st1085;} + {stack[top++] = 254;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 254;goto st1124;} + {stack[top++] = 254;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 254;goto st1319;} + {stack[top++] = 254;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 254;goto st1322;} + {stack[top++] = 254;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 254;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 254;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 254;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 254;goto st1364;} + {stack[top++] = 254;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 254;goto st1377;} + {stack[top++] = 254;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 254;goto st1390;} + {stack[top++] = 254;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 254;goto st1396;} + {stack[top++] = 254;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 254;goto st1414;} + {stack[top++] = 254;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 254;goto st1409;} + {stack[top++] = 254;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 254;goto st1427;} + {stack[top++] = 254;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 254;goto st1433;} + {stack[top++] = 254;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 254;goto st1439;} + {stack[top++] = 254;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 254;goto st1447;} + {stack[top++] = 254;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 254;goto st1455;} + {stack[top++] = 254;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 254;goto st1461;} + {stack[top++] = 254;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -35826,7 +35810,7 @@ case 254: case 2107: goto tr905; } goto tr919; -tr4479: +tr4249: { s->r_class = s->default_class; } @@ -35837,88 +35821,88 @@ tr4479: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 255;goto st900;} + {stack[top++] = 255;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 255;goto st902;} + {stack[top++] = 255;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 255;goto st904;} + {stack[top++] = 255;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 255;goto st936;} + {stack[top++] = 255;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 255;goto st941;} + {stack[top++] = 255;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 255;goto st946;} + {stack[top++] = 255;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 255;goto st951;} + {stack[top++] = 255;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 255;goto st955;} + {stack[top++] = 255;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 255;goto st957;} + {stack[top++] = 255;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 255;goto st1012;} + {stack[top++] = 255;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 255;goto st1023;} + {stack[top++] = 255;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 255;goto st1040;} + {stack[top++] = 255;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 255;goto st1051;} + {stack[top++] = 255;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 255;goto st1062;} + {stack[top++] = 255;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 255;goto st1075;} + {stack[top++] = 255;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 255;goto st1085;} + {stack[top++] = 255;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 255;goto st1124;} + {stack[top++] = 255;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 255;goto st1319;} + {stack[top++] = 255;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 255;goto st1322;} + {stack[top++] = 255;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 255;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 255;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 255;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 255;goto st1364;} + {stack[top++] = 255;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 255;goto st1377;} + {stack[top++] = 255;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 255;goto st1390;} + {stack[top++] = 255;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 255;goto st1396;} + {stack[top++] = 255;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 255;goto st1414;} + {stack[top++] = 255;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 255;goto st1409;} + {stack[top++] = 255;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 255;goto st1427;} + {stack[top++] = 255;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 255;goto st1433;} + {stack[top++] = 255;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 255;goto st1439;} + {stack[top++] = 255;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 255;goto st1447;} + {stack[top++] = 255;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 255;goto st1455;} + {stack[top++] = 255;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 255;goto st1461;} + {stack[top++] = 255;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -35963,7 +35947,7 @@ case 255: case 2107: goto tr905; } goto tr919; -tr4480: +tr4250: { s->r_class = s->default_class; } @@ -35974,88 +35958,88 @@ tr4480: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 256;goto st900;} + {stack[top++] = 256;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 256;goto st902;} + {stack[top++] = 256;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 256;goto st904;} + {stack[top++] = 256;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 256;goto st936;} + {stack[top++] = 256;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 256;goto st941;} + {stack[top++] = 256;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 256;goto st946;} + {stack[top++] = 256;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 256;goto st951;} + {stack[top++] = 256;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 256;goto st955;} + {stack[top++] = 256;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 256;goto st957;} + {stack[top++] = 256;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 256;goto st1012;} + {stack[top++] = 256;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 256;goto st1023;} + {stack[top++] = 256;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 256;goto st1040;} + {stack[top++] = 256;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 256;goto st1051;} + {stack[top++] = 256;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 256;goto st1062;} + {stack[top++] = 256;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 256;goto st1075;} + {stack[top++] = 256;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 256;goto st1085;} + {stack[top++] = 256;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 256;goto st1124;} + {stack[top++] = 256;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 256;goto st1319;} + {stack[top++] = 256;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 256;goto st1322;} + {stack[top++] = 256;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 256;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 256;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 256;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 256;goto st1364;} + {stack[top++] = 256;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 256;goto st1377;} + {stack[top++] = 256;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 256;goto st1390;} + {stack[top++] = 256;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 256;goto st1396;} + {stack[top++] = 256;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 256;goto st1414;} + {stack[top++] = 256;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 256;goto st1409;} + {stack[top++] = 256;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 256;goto st1427;} + {stack[top++] = 256;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 256;goto st1433;} + {stack[top++] = 256;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 256;goto st1439;} + {stack[top++] = 256;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 256;goto st1447;} + {stack[top++] = 256;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 256;goto st1455;} + {stack[top++] = 256;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 256;goto st1461;} + {stack[top++] = 256;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -36096,7 +36080,7 @@ case 256: case 2107: goto tr905; } goto tr919; -tr4481: +tr4251: { s->r_class = s->default_class; } @@ -36107,88 +36091,88 @@ tr4481: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 257;goto st900;} + {stack[top++] = 257;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 257;goto st902;} + {stack[top++] = 257;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 257;goto st904;} + {stack[top++] = 257;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 257;goto st936;} + {stack[top++] = 257;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 257;goto st941;} + {stack[top++] = 257;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 257;goto st946;} + {stack[top++] = 257;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 257;goto st951;} + {stack[top++] = 257;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 257;goto st955;} + {stack[top++] = 257;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 257;goto st957;} + {stack[top++] = 257;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 257;goto st1012;} + {stack[top++] = 257;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 257;goto st1023;} + {stack[top++] = 257;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 257;goto st1040;} + {stack[top++] = 257;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 257;goto st1051;} + {stack[top++] = 257;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 257;goto st1062;} + {stack[top++] = 257;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 257;goto st1075;} + {stack[top++] = 257;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 257;goto st1085;} + {stack[top++] = 257;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 257;goto st1124;} + {stack[top++] = 257;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 257;goto st1319;} + {stack[top++] = 257;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 257;goto st1322;} + {stack[top++] = 257;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 257;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 257;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 257;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 257;goto st1364;} + {stack[top++] = 257;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 257;goto st1377;} + {stack[top++] = 257;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 257;goto st1390;} + {stack[top++] = 257;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 257;goto st1396;} + {stack[top++] = 257;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 257;goto st1414;} + {stack[top++] = 257;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 257;goto st1409;} + {stack[top++] = 257;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 257;goto st1427;} + {stack[top++] = 257;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 257;goto st1433;} + {stack[top++] = 257;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 257;goto st1439;} + {stack[top++] = 257;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 257;goto st1447;} + {stack[top++] = 257;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 257;goto st1455;} + {stack[top++] = 257;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 257;goto st1461;} + {stack[top++] = 257;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -36231,7 +36215,7 @@ case 257: case 2107: goto tr905; } goto tr919; -tr4482: +tr4252: { s->r_class = s->default_class; } @@ -36242,88 +36226,88 @@ tr4482: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 258;goto st900;} + {stack[top++] = 258;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 258;goto st902;} + {stack[top++] = 258;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 258;goto st904;} + {stack[top++] = 258;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 258;goto st936;} + {stack[top++] = 258;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 258;goto st941;} + {stack[top++] = 258;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 258;goto st946;} + {stack[top++] = 258;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 258;goto st951;} + {stack[top++] = 258;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 258;goto st955;} + {stack[top++] = 258;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 258;goto st957;} + {stack[top++] = 258;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 258;goto st1012;} + {stack[top++] = 258;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 258;goto st1023;} + {stack[top++] = 258;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 258;goto st1040;} + {stack[top++] = 258;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 258;goto st1051;} + {stack[top++] = 258;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 258;goto st1062;} + {stack[top++] = 258;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 258;goto st1075;} + {stack[top++] = 258;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 258;goto st1085;} + {stack[top++] = 258;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 258;goto st1124;} + {stack[top++] = 258;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 258;goto st1319;} + {stack[top++] = 258;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 258;goto st1322;} + {stack[top++] = 258;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 258;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 258;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 258;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 258;goto st1364;} + {stack[top++] = 258;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 258;goto st1377;} + {stack[top++] = 258;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 258;goto st1390;} + {stack[top++] = 258;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 258;goto st1396;} + {stack[top++] = 258;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 258;goto st1414;} + {stack[top++] = 258;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 258;goto st1409;} + {stack[top++] = 258;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 258;goto st1427;} + {stack[top++] = 258;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 258;goto st1433;} + {stack[top++] = 258;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 258;goto st1439;} + {stack[top++] = 258;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 258;goto st1447;} + {stack[top++] = 258;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 258;goto st1455;} + {stack[top++] = 258;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 258;goto st1461;} + {stack[top++] = 258;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -36366,7 +36350,7 @@ case 258: case 2107: goto tr905; } goto tr919; -tr4483: +tr4253: { s->r_class = s->default_class; } @@ -36377,88 +36361,88 @@ tr4483: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 259;goto st900;} + {stack[top++] = 259;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 259;goto st902;} + {stack[top++] = 259;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 259;goto st904;} + {stack[top++] = 259;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 259;goto st936;} + {stack[top++] = 259;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 259;goto st941;} + {stack[top++] = 259;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 259;goto st946;} + {stack[top++] = 259;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 259;goto st951;} + {stack[top++] = 259;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 259;goto st955;} + {stack[top++] = 259;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 259;goto st957;} + {stack[top++] = 259;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 259;goto st1012;} + {stack[top++] = 259;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 259;goto st1023;} + {stack[top++] = 259;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 259;goto st1040;} + {stack[top++] = 259;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 259;goto st1051;} + {stack[top++] = 259;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 259;goto st1062;} + {stack[top++] = 259;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 259;goto st1075;} + {stack[top++] = 259;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 259;goto st1085;} + {stack[top++] = 259;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 259;goto st1124;} + {stack[top++] = 259;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 259;goto st1319;} + {stack[top++] = 259;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 259;goto st1322;} + {stack[top++] = 259;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 259;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 259;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 259;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 259;goto st1364;} + {stack[top++] = 259;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 259;goto st1377;} + {stack[top++] = 259;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 259;goto st1390;} + {stack[top++] = 259;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 259;goto st1396;} + {stack[top++] = 259;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 259;goto st1414;} + {stack[top++] = 259;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 259;goto st1409;} + {stack[top++] = 259;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 259;goto st1427;} + {stack[top++] = 259;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 259;goto st1433;} + {stack[top++] = 259;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 259;goto st1439;} + {stack[top++] = 259;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 259;goto st1447;} + {stack[top++] = 259;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 259;goto st1455;} + {stack[top++] = 259;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 259;goto st1461;} + {stack[top++] = 259;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -36501,7 +36485,7 @@ case 259: case 2107: goto tr905; } goto tr919; -tr4484: +tr4254: { s->r_class = s->default_class; } @@ -36512,88 +36496,88 @@ tr4484: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 260;goto st900;} + {stack[top++] = 260;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 260;goto st902;} + {stack[top++] = 260;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 260;goto st904;} + {stack[top++] = 260;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 260;goto st936;} + {stack[top++] = 260;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 260;goto st941;} + {stack[top++] = 260;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 260;goto st946;} + {stack[top++] = 260;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 260;goto st951;} + {stack[top++] = 260;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 260;goto st955;} + {stack[top++] = 260;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 260;goto st957;} + {stack[top++] = 260;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 260;goto st1012;} + {stack[top++] = 260;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 260;goto st1023;} + {stack[top++] = 260;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 260;goto st1040;} + {stack[top++] = 260;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 260;goto st1051;} + {stack[top++] = 260;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 260;goto st1062;} + {stack[top++] = 260;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 260;goto st1075;} + {stack[top++] = 260;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 260;goto st1085;} + {stack[top++] = 260;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 260;goto st1124;} + {stack[top++] = 260;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 260;goto st1319;} + {stack[top++] = 260;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 260;goto st1322;} + {stack[top++] = 260;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 260;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 260;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 260;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 260;goto st1364;} + {stack[top++] = 260;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 260;goto st1377;} + {stack[top++] = 260;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 260;goto st1390;} + {stack[top++] = 260;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 260;goto st1396;} + {stack[top++] = 260;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 260;goto st1414;} + {stack[top++] = 260;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 260;goto st1409;} + {stack[top++] = 260;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 260;goto st1427;} + {stack[top++] = 260;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 260;goto st1433;} + {stack[top++] = 260;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 260;goto st1439;} + {stack[top++] = 260;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 260;goto st1447;} + {stack[top++] = 260;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 260;goto st1455;} + {stack[top++] = 260;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 260;goto st1461;} + {stack[top++] = 260;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -36638,7 +36622,7 @@ case 260: case 2107: goto tr905; } goto tr919; -tr4485: +tr4255: { s->r_class = s->default_class; } @@ -36649,88 +36633,88 @@ tr4485: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 261;goto st900;} + {stack[top++] = 261;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 261;goto st902;} + {stack[top++] = 261;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 261;goto st904;} + {stack[top++] = 261;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 261;goto st936;} + {stack[top++] = 261;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 261;goto st941;} + {stack[top++] = 261;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 261;goto st946;} + {stack[top++] = 261;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 261;goto st951;} + {stack[top++] = 261;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 261;goto st955;} + {stack[top++] = 261;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 261;goto st957;} + {stack[top++] = 261;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 261;goto st1012;} + {stack[top++] = 261;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 261;goto st1023;} + {stack[top++] = 261;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 261;goto st1040;} + {stack[top++] = 261;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 261;goto st1051;} + {stack[top++] = 261;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 261;goto st1062;} + {stack[top++] = 261;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 261;goto st1075;} + {stack[top++] = 261;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 261;goto st1085;} + {stack[top++] = 261;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 261;goto st1124;} + {stack[top++] = 261;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 261;goto st1319;} + {stack[top++] = 261;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 261;goto st1322;} + {stack[top++] = 261;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 261;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 261;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 261;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 261;goto st1364;} + {stack[top++] = 261;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 261;goto st1377;} + {stack[top++] = 261;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 261;goto st1390;} + {stack[top++] = 261;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 261;goto st1396;} + {stack[top++] = 261;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 261;goto st1414;} + {stack[top++] = 261;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 261;goto st1409;} + {stack[top++] = 261;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 261;goto st1427;} + {stack[top++] = 261;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 261;goto st1433;} + {stack[top++] = 261;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 261;goto st1439;} + {stack[top++] = 261;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 261;goto st1447;} + {stack[top++] = 261;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 261;goto st1455;} + {stack[top++] = 261;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 261;goto st1461;} + {stack[top++] = 261;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -36773,7 +36757,7 @@ case 261: case 2107: goto tr905; } goto tr919; -tr4486: +tr4256: { s->r_class = s->default_class; } @@ -36784,88 +36768,88 @@ tr4486: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 262;goto st900;} + {stack[top++] = 262;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 262;goto st902;} + {stack[top++] = 262;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 262;goto st904;} + {stack[top++] = 262;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 262;goto st936;} + {stack[top++] = 262;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 262;goto st941;} + {stack[top++] = 262;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 262;goto st946;} + {stack[top++] = 262;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 262;goto st951;} + {stack[top++] = 262;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 262;goto st955;} + {stack[top++] = 262;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 262;goto st957;} + {stack[top++] = 262;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 262;goto st1012;} + {stack[top++] = 262;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 262;goto st1023;} + {stack[top++] = 262;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 262;goto st1040;} + {stack[top++] = 262;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 262;goto st1051;} + {stack[top++] = 262;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 262;goto st1062;} + {stack[top++] = 262;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 262;goto st1075;} + {stack[top++] = 262;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 262;goto st1085;} + {stack[top++] = 262;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 262;goto st1124;} + {stack[top++] = 262;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 262;goto st1319;} + {stack[top++] = 262;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 262;goto st1322;} + {stack[top++] = 262;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 262;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 262;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 262;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 262;goto st1364;} + {stack[top++] = 262;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 262;goto st1377;} + {stack[top++] = 262;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 262;goto st1390;} + {stack[top++] = 262;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 262;goto st1396;} + {stack[top++] = 262;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 262;goto st1414;} + {stack[top++] = 262;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 262;goto st1409;} + {stack[top++] = 262;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 262;goto st1427;} + {stack[top++] = 262;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 262;goto st1433;} + {stack[top++] = 262;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 262;goto st1439;} + {stack[top++] = 262;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 262;goto st1447;} + {stack[top++] = 262;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 262;goto st1455;} + {stack[top++] = 262;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 262;goto st1461;} + {stack[top++] = 262;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -36910,7 +36894,7 @@ case 262: case 2107: goto tr905; } goto tr919; -tr4487: +tr4257: { s->r_class = s->default_class; } @@ -36921,88 +36905,88 @@ tr4487: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 263;goto st900;} + {stack[top++] = 263;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 263;goto st902;} + {stack[top++] = 263;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 263;goto st904;} + {stack[top++] = 263;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 263;goto st936;} + {stack[top++] = 263;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 263;goto st941;} + {stack[top++] = 263;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 263;goto st946;} + {stack[top++] = 263;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 263;goto st951;} + {stack[top++] = 263;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 263;goto st955;} + {stack[top++] = 263;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 263;goto st957;} + {stack[top++] = 263;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 263;goto st1012;} + {stack[top++] = 263;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 263;goto st1023;} + {stack[top++] = 263;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 263;goto st1040;} + {stack[top++] = 263;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 263;goto st1051;} + {stack[top++] = 263;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 263;goto st1062;} + {stack[top++] = 263;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 263;goto st1075;} + {stack[top++] = 263;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 263;goto st1085;} + {stack[top++] = 263;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 263;goto st1124;} + {stack[top++] = 263;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 263;goto st1319;} + {stack[top++] = 263;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 263;goto st1322;} + {stack[top++] = 263;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 263;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 263;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 263;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 263;goto st1364;} + {stack[top++] = 263;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 263;goto st1377;} + {stack[top++] = 263;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 263;goto st1390;} + {stack[top++] = 263;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 263;goto st1396;} + {stack[top++] = 263;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 263;goto st1414;} + {stack[top++] = 263;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 263;goto st1409;} + {stack[top++] = 263;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 263;goto st1427;} + {stack[top++] = 263;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 263;goto st1433;} + {stack[top++] = 263;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 263;goto st1439;} + {stack[top++] = 263;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 263;goto st1447;} + {stack[top++] = 263;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 263;goto st1455;} + {stack[top++] = 263;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 263;goto st1461;} + {stack[top++] = 263;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -37043,7 +37027,7 @@ case 263: case 2107: goto tr905; } goto tr919; -tr4488: +tr4258: { s->r_class = s->default_class; } @@ -37054,88 +37038,88 @@ tr4488: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 264;goto st900;} + {stack[top++] = 264;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 264;goto st902;} + {stack[top++] = 264;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 264;goto st904;} + {stack[top++] = 264;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 264;goto st936;} + {stack[top++] = 264;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 264;goto st941;} + {stack[top++] = 264;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 264;goto st946;} + {stack[top++] = 264;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 264;goto st951;} + {stack[top++] = 264;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 264;goto st955;} + {stack[top++] = 264;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 264;goto st957;} + {stack[top++] = 264;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 264;goto st1012;} + {stack[top++] = 264;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 264;goto st1023;} + {stack[top++] = 264;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 264;goto st1040;} + {stack[top++] = 264;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 264;goto st1051;} + {stack[top++] = 264;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 264;goto st1062;} + {stack[top++] = 264;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 264;goto st1075;} + {stack[top++] = 264;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 264;goto st1085;} + {stack[top++] = 264;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 264;goto st1124;} + {stack[top++] = 264;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 264;goto st1319;} + {stack[top++] = 264;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 264;goto st1322;} + {stack[top++] = 264;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 264;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 264;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 264;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 264;goto st1364;} + {stack[top++] = 264;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 264;goto st1377;} + {stack[top++] = 264;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 264;goto st1390;} + {stack[top++] = 264;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 264;goto st1396;} + {stack[top++] = 264;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 264;goto st1414;} + {stack[top++] = 264;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 264;goto st1409;} + {stack[top++] = 264;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 264;goto st1427;} + {stack[top++] = 264;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 264;goto st1433;} + {stack[top++] = 264;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 264;goto st1439;} + {stack[top++] = 264;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 264;goto st1447;} + {stack[top++] = 264;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 264;goto st1455;} + {stack[top++] = 264;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 264;goto st1461;} + {stack[top++] = 264;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -37176,7 +37160,7 @@ case 264: case 2107: goto tr905; } goto tr919; -tr4489: +tr4259: { s->r_class = s->default_class; } @@ -37187,88 +37171,88 @@ tr4489: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 265;goto st900;} + {stack[top++] = 265;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 265;goto st902;} + {stack[top++] = 265;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 265;goto st904;} + {stack[top++] = 265;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 265;goto st936;} + {stack[top++] = 265;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 265;goto st941;} + {stack[top++] = 265;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 265;goto st946;} + {stack[top++] = 265;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 265;goto st951;} + {stack[top++] = 265;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 265;goto st955;} + {stack[top++] = 265;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 265;goto st957;} + {stack[top++] = 265;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 265;goto st1012;} + {stack[top++] = 265;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 265;goto st1023;} + {stack[top++] = 265;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 265;goto st1040;} + {stack[top++] = 265;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 265;goto st1051;} + {stack[top++] = 265;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 265;goto st1062;} + {stack[top++] = 265;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 265;goto st1075;} + {stack[top++] = 265;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 265;goto st1085;} + {stack[top++] = 265;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 265;goto st1124;} + {stack[top++] = 265;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 265;goto st1319;} + {stack[top++] = 265;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 265;goto st1322;} + {stack[top++] = 265;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 265;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 265;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 265;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 265;goto st1364;} + {stack[top++] = 265;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 265;goto st1377;} + {stack[top++] = 265;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 265;goto st1390;} + {stack[top++] = 265;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 265;goto st1396;} + {stack[top++] = 265;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 265;goto st1414;} + {stack[top++] = 265;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 265;goto st1409;} + {stack[top++] = 265;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 265;goto st1427;} + {stack[top++] = 265;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 265;goto st1433;} + {stack[top++] = 265;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 265;goto st1439;} + {stack[top++] = 265;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 265;goto st1447;} + {stack[top++] = 265;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 265;goto st1455;} + {stack[top++] = 265;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 265;goto st1461;} + {stack[top++] = 265;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -37313,7 +37297,7 @@ case 265: case 2107: goto tr905; } goto tr919; -tr4490: +tr4260: { s->r_class = s->default_class; } @@ -37324,88 +37308,88 @@ tr4490: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 266;goto st900;} + {stack[top++] = 266;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 266;goto st902;} + {stack[top++] = 266;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 266;goto st904;} + {stack[top++] = 266;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 266;goto st936;} + {stack[top++] = 266;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 266;goto st941;} + {stack[top++] = 266;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 266;goto st946;} + {stack[top++] = 266;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 266;goto st951;} + {stack[top++] = 266;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 266;goto st955;} + {stack[top++] = 266;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 266;goto st957;} + {stack[top++] = 266;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 266;goto st1012;} + {stack[top++] = 266;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 266;goto st1023;} + {stack[top++] = 266;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 266;goto st1040;} + {stack[top++] = 266;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 266;goto st1051;} + {stack[top++] = 266;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 266;goto st1062;} + {stack[top++] = 266;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 266;goto st1075;} + {stack[top++] = 266;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 266;goto st1085;} + {stack[top++] = 266;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 266;goto st1124;} + {stack[top++] = 266;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 266;goto st1319;} + {stack[top++] = 266;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 266;goto st1322;} + {stack[top++] = 266;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 266;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 266;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 266;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 266;goto st1364;} + {stack[top++] = 266;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 266;goto st1377;} + {stack[top++] = 266;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 266;goto st1390;} + {stack[top++] = 266;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 266;goto st1396;} + {stack[top++] = 266;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 266;goto st1414;} + {stack[top++] = 266;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 266;goto st1409;} + {stack[top++] = 266;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 266;goto st1427;} + {stack[top++] = 266;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 266;goto st1433;} + {stack[top++] = 266;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 266;goto st1439;} + {stack[top++] = 266;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 266;goto st1447;} + {stack[top++] = 266;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 266;goto st1455;} + {stack[top++] = 266;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 266;goto st1461;} + {stack[top++] = 266;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -37456,7 +37440,7 @@ case 266: case 2107: goto tr905; } goto tr919; -tr4491: +tr4261: { s->r_class = s->default_class; } @@ -37467,88 +37451,88 @@ tr4491: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 267;goto st900;} + {stack[top++] = 267;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 267;goto st902;} + {stack[top++] = 267;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 267;goto st904;} + {stack[top++] = 267;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 267;goto st936;} + {stack[top++] = 267;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 267;goto st941;} + {stack[top++] = 267;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 267;goto st946;} + {stack[top++] = 267;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 267;goto st951;} + {stack[top++] = 267;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 267;goto st955;} + {stack[top++] = 267;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 267;goto st957;} + {stack[top++] = 267;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 267;goto st1012;} + {stack[top++] = 267;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 267;goto st1023;} + {stack[top++] = 267;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 267;goto st1040;} + {stack[top++] = 267;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 267;goto st1051;} + {stack[top++] = 267;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 267;goto st1062;} + {stack[top++] = 267;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 267;goto st1075;} + {stack[top++] = 267;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 267;goto st1085;} + {stack[top++] = 267;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 267;goto st1124;} + {stack[top++] = 267;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 267;goto st1319;} + {stack[top++] = 267;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 267;goto st1322;} + {stack[top++] = 267;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 267;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 267;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 267;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 267;goto st1364;} + {stack[top++] = 267;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 267;goto st1377;} + {stack[top++] = 267;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 267;goto st1390;} + {stack[top++] = 267;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 267;goto st1396;} + {stack[top++] = 267;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 267;goto st1414;} + {stack[top++] = 267;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 267;goto st1409;} + {stack[top++] = 267;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 267;goto st1427;} + {stack[top++] = 267;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 267;goto st1433;} + {stack[top++] = 267;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 267;goto st1439;} + {stack[top++] = 267;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 267;goto st1447;} + {stack[top++] = 267;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 267;goto st1455;} + {stack[top++] = 267;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 267;goto st1461;} + {stack[top++] = 267;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -37593,7 +37577,7 @@ case 267: case 2107: goto tr905; } goto tr919; -tr4492: +tr4262: { s->r_class = s->default_class; } @@ -37604,88 +37588,88 @@ tr4492: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 268;goto st900;} + {stack[top++] = 268;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 268;goto st902;} + {stack[top++] = 268;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 268;goto st904;} + {stack[top++] = 268;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 268;goto st936;} + {stack[top++] = 268;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 268;goto st941;} + {stack[top++] = 268;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 268;goto st946;} + {stack[top++] = 268;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 268;goto st951;} + {stack[top++] = 268;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 268;goto st955;} + {stack[top++] = 268;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 268;goto st957;} + {stack[top++] = 268;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 268;goto st1012;} + {stack[top++] = 268;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 268;goto st1023;} + {stack[top++] = 268;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 268;goto st1040;} + {stack[top++] = 268;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 268;goto st1051;} + {stack[top++] = 268;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 268;goto st1062;} + {stack[top++] = 268;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 268;goto st1075;} + {stack[top++] = 268;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 268;goto st1085;} + {stack[top++] = 268;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 268;goto st1124;} + {stack[top++] = 268;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 268;goto st1319;} + {stack[top++] = 268;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 268;goto st1322;} + {stack[top++] = 268;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 268;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 268;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 268;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 268;goto st1364;} + {stack[top++] = 268;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 268;goto st1377;} + {stack[top++] = 268;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 268;goto st1390;} + {stack[top++] = 268;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 268;goto st1396;} + {stack[top++] = 268;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 268;goto st1414;} + {stack[top++] = 268;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 268;goto st1409;} + {stack[top++] = 268;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 268;goto st1427;} + {stack[top++] = 268;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 268;goto st1433;} + {stack[top++] = 268;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 268;goto st1439;} + {stack[top++] = 268;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 268;goto st1447;} + {stack[top++] = 268;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 268;goto st1455;} + {stack[top++] = 268;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 268;goto st1461;} + {stack[top++] = 268;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -37726,7 +37710,7 @@ case 268: case 2107: goto tr905; } goto tr919; -tr4493: +tr4263: { s->r_class = s->default_class; } @@ -37737,88 +37721,88 @@ tr4493: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 269;goto st900;} + {stack[top++] = 269;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 269;goto st902;} + {stack[top++] = 269;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 269;goto st904;} + {stack[top++] = 269;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 269;goto st936;} + {stack[top++] = 269;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 269;goto st941;} + {stack[top++] = 269;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 269;goto st946;} + {stack[top++] = 269;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 269;goto st951;} + {stack[top++] = 269;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 269;goto st955;} + {stack[top++] = 269;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 269;goto st957;} + {stack[top++] = 269;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 269;goto st1012;} + {stack[top++] = 269;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 269;goto st1023;} + {stack[top++] = 269;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 269;goto st1040;} + {stack[top++] = 269;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 269;goto st1051;} + {stack[top++] = 269;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 269;goto st1062;} + {stack[top++] = 269;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 269;goto st1075;} + {stack[top++] = 269;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 269;goto st1085;} + {stack[top++] = 269;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 269;goto st1124;} + {stack[top++] = 269;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 269;goto st1319;} + {stack[top++] = 269;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 269;goto st1322;} + {stack[top++] = 269;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 269;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 269;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 269;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 269;goto st1364;} + {stack[top++] = 269;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 269;goto st1377;} + {stack[top++] = 269;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 269;goto st1390;} + {stack[top++] = 269;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 269;goto st1396;} + {stack[top++] = 269;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 269;goto st1414;} + {stack[top++] = 269;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 269;goto st1409;} + {stack[top++] = 269;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 269;goto st1427;} + {stack[top++] = 269;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 269;goto st1433;} + {stack[top++] = 269;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 269;goto st1439;} + {stack[top++] = 269;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 269;goto st1447;} + {stack[top++] = 269;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 269;goto st1455;} + {stack[top++] = 269;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 269;goto st1461;} + {stack[top++] = 269;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -37859,7 +37843,7 @@ case 269: case 2107: goto tr905; } goto tr919; -tr4494: +tr4264: { s->r_class = s->default_class; } @@ -37870,88 +37854,88 @@ tr4494: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 270;goto st900;} + {stack[top++] = 270;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 270;goto st902;} + {stack[top++] = 270;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 270;goto st904;} + {stack[top++] = 270;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 270;goto st936;} + {stack[top++] = 270;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 270;goto st941;} + {stack[top++] = 270;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 270;goto st946;} + {stack[top++] = 270;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 270;goto st951;} + {stack[top++] = 270;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 270;goto st955;} + {stack[top++] = 270;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 270;goto st957;} + {stack[top++] = 270;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 270;goto st1012;} + {stack[top++] = 270;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 270;goto st1023;} + {stack[top++] = 270;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 270;goto st1040;} + {stack[top++] = 270;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 270;goto st1051;} + {stack[top++] = 270;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 270;goto st1062;} + {stack[top++] = 270;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 270;goto st1075;} + {stack[top++] = 270;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 270;goto st1085;} + {stack[top++] = 270;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 270;goto st1124;} + {stack[top++] = 270;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 270;goto st1319;} + {stack[top++] = 270;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 270;goto st1322;} + {stack[top++] = 270;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 270;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 270;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 270;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 270;goto st1364;} + {stack[top++] = 270;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 270;goto st1377;} + {stack[top++] = 270;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 270;goto st1390;} + {stack[top++] = 270;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 270;goto st1396;} + {stack[top++] = 270;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 270;goto st1414;} + {stack[top++] = 270;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 270;goto st1409;} + {stack[top++] = 270;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 270;goto st1427;} + {stack[top++] = 270;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 270;goto st1433;} + {stack[top++] = 270;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 270;goto st1439;} + {stack[top++] = 270;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 270;goto st1447;} + {stack[top++] = 270;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 270;goto st1455;} + {stack[top++] = 270;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 270;goto st1461;} + {stack[top++] = 270;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -37992,7 +37976,7 @@ case 270: case 2107: goto tr905; } goto tr919; -tr4400: +tr4170: { if (pe - p == 1) { *wrap = WRAP_DETECTED; @@ -38053,88 +38037,88 @@ tr932: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st900;} + {stack[top++] = 272;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st902;} + {stack[top++] = 272;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st904;} + {stack[top++] = 272;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st936;} + {stack[top++] = 272;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st941;} + {stack[top++] = 272;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st946;} + {stack[top++] = 272;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st951;} + {stack[top++] = 272;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st955;} + {stack[top++] = 272;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st957;} + {stack[top++] = 272;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st1012;} + {stack[top++] = 272;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1023;} + {stack[top++] = 272;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1040;} + {stack[top++] = 272;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1051;} + {stack[top++] = 272;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1062;} + {stack[top++] = 272;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1075;} + {stack[top++] = 272;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1085;} + {stack[top++] = 272;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1124;} + {stack[top++] = 272;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1319;} + {stack[top++] = 272;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1322;} + {stack[top++] = 272;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 272;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 272;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1364;} + {stack[top++] = 272;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1377;} + {stack[top++] = 272;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1390;} + {stack[top++] = 272;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1396;} + {stack[top++] = 272;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1414;} + {stack[top++] = 272;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1409;} + {stack[top++] = 272;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1427;} + {stack[top++] = 272;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1433;} + {stack[top++] = 272;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1439;} + {stack[top++] = 272;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1447;} + {stack[top++] = 272;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1455;} + {stack[top++] = 272;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 272;goto st1461;} + {stack[top++] = 272;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -38161,88 +38145,88 @@ tr934: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st900;} + {stack[top++] = 272;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st902;} + {stack[top++] = 272;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st904;} + {stack[top++] = 272;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st936;} + {stack[top++] = 272;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st941;} + {stack[top++] = 272;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st946;} + {stack[top++] = 272;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st951;} + {stack[top++] = 272;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st955;} + {stack[top++] = 272;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st957;} + {stack[top++] = 272;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st1012;} + {stack[top++] = 272;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1023;} + {stack[top++] = 272;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1040;} + {stack[top++] = 272;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1051;} + {stack[top++] = 272;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1062;} + {stack[top++] = 272;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1075;} + {stack[top++] = 272;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1085;} + {stack[top++] = 272;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1124;} + {stack[top++] = 272;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1319;} + {stack[top++] = 272;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1322;} + {stack[top++] = 272;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 272;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 272;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1364;} + {stack[top++] = 272;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1377;} + {stack[top++] = 272;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1390;} + {stack[top++] = 272;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1396;} + {stack[top++] = 272;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1414;} + {stack[top++] = 272;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1409;} + {stack[top++] = 272;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1427;} + {stack[top++] = 272;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1433;} + {stack[top++] = 272;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1439;} + {stack[top++] = 272;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1447;} + {stack[top++] = 272;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1455;} + {stack[top++] = 272;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 272;goto st1461;} + {stack[top++] = 272;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -38269,88 +38253,88 @@ tr935: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st900;} + {stack[top++] = 272;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st902;} + {stack[top++] = 272;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st904;} + {stack[top++] = 272;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st936;} + {stack[top++] = 272;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st941;} + {stack[top++] = 272;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st946;} + {stack[top++] = 272;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st951;} + {stack[top++] = 272;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st955;} + {stack[top++] = 272;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st957;} + {stack[top++] = 272;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st1012;} + {stack[top++] = 272;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1023;} + {stack[top++] = 272;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1040;} + {stack[top++] = 272;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1051;} + {stack[top++] = 272;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1062;} + {stack[top++] = 272;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1075;} + {stack[top++] = 272;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1085;} + {stack[top++] = 272;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1124;} + {stack[top++] = 272;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1319;} + {stack[top++] = 272;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1322;} + {stack[top++] = 272;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 272;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 272;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1364;} + {stack[top++] = 272;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1377;} + {stack[top++] = 272;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1390;} + {stack[top++] = 272;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1396;} + {stack[top++] = 272;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1414;} + {stack[top++] = 272;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1409;} + {stack[top++] = 272;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1427;} + {stack[top++] = 272;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1433;} + {stack[top++] = 272;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1439;} + {stack[top++] = 272;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1447;} + {stack[top++] = 272;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1455;} + {stack[top++] = 272;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 272;goto st1461;} + {stack[top++] = 272;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -38373,88 +38357,88 @@ tr936: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st900;} + {stack[top++] = 272;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st902;} + {stack[top++] = 272;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st904;} + {stack[top++] = 272;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st936;} + {stack[top++] = 272;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st941;} + {stack[top++] = 272;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st946;} + {stack[top++] = 272;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st951;} + {stack[top++] = 272;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st955;} + {stack[top++] = 272;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st957;} + {stack[top++] = 272;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st1012;} + {stack[top++] = 272;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1023;} + {stack[top++] = 272;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1040;} + {stack[top++] = 272;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1051;} + {stack[top++] = 272;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1062;} + {stack[top++] = 272;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1075;} + {stack[top++] = 272;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1085;} + {stack[top++] = 272;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1124;} + {stack[top++] = 272;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1319;} + {stack[top++] = 272;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1322;} + {stack[top++] = 272;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 272;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 272;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1364;} + {stack[top++] = 272;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1377;} + {stack[top++] = 272;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1390;} + {stack[top++] = 272;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1396;} + {stack[top++] = 272;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1414;} + {stack[top++] = 272;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1409;} + {stack[top++] = 272;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1427;} + {stack[top++] = 272;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1433;} + {stack[top++] = 272;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1439;} + {stack[top++] = 272;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1447;} + {stack[top++] = 272;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1455;} + {stack[top++] = 272;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 272;goto st1461;} + {stack[top++] = 272;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -38542,88 +38526,88 @@ tr937: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 273;goto st900;} + {stack[top++] = 273;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 273;goto st902;} + {stack[top++] = 273;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 273;goto st904;} + {stack[top++] = 273;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 273;goto st936;} + {stack[top++] = 273;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 273;goto st941;} + {stack[top++] = 273;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 273;goto st946;} + {stack[top++] = 273;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 273;goto st951;} + {stack[top++] = 273;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 273;goto st955;} + {stack[top++] = 273;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 273;goto st957;} + {stack[top++] = 273;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 273;goto st1012;} + {stack[top++] = 273;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 273;goto st1023;} + {stack[top++] = 273;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 273;goto st1040;} + {stack[top++] = 273;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 273;goto st1051;} + {stack[top++] = 273;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 273;goto st1062;} + {stack[top++] = 273;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 273;goto st1075;} + {stack[top++] = 273;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 273;goto st1085;} + {stack[top++] = 273;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 273;goto st1124;} + {stack[top++] = 273;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 273;goto st1319;} + {stack[top++] = 273;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 273;goto st1322;} + {stack[top++] = 273;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 273;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 273;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 273;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 273;goto st1364;} + {stack[top++] = 273;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 273;goto st1377;} + {stack[top++] = 273;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 273;goto st1390;} + {stack[top++] = 273;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 273;goto st1396;} + {stack[top++] = 273;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 273;goto st1414;} + {stack[top++] = 273;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 273;goto st1409;} + {stack[top++] = 273;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 273;goto st1427;} + {stack[top++] = 273;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 273;goto st1433;} + {stack[top++] = 273;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 273;goto st1439;} + {stack[top++] = 273;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 273;goto st1447;} + {stack[top++] = 273;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 273;goto st1455;} + {stack[top++] = 273;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 273;goto st1461;} + {stack[top++] = 273;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -38822,88 +38806,88 @@ tr887: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 275;goto st900;} + {stack[top++] = 275;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 275;goto st902;} + {stack[top++] = 275;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 275;goto st904;} + {stack[top++] = 275;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 275;goto st936;} + {stack[top++] = 275;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 275;goto st941;} + {stack[top++] = 275;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 275;goto st946;} + {stack[top++] = 275;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 275;goto st951;} + {stack[top++] = 275;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 275;goto st955;} + {stack[top++] = 275;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 275;goto st957;} + {stack[top++] = 275;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 275;goto st1012;} + {stack[top++] = 275;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 275;goto st1023;} + {stack[top++] = 275;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 275;goto st1040;} + {stack[top++] = 275;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 275;goto st1051;} + {stack[top++] = 275;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 275;goto st1062;} + {stack[top++] = 275;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 275;goto st1075;} + {stack[top++] = 275;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 275;goto st1085;} + {stack[top++] = 275;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 275;goto st1124;} + {stack[top++] = 275;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 275;goto st1319;} + {stack[top++] = 275;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 275;goto st1322;} + {stack[top++] = 275;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 275;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 275;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 275;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 275;goto st1364;} + {stack[top++] = 275;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 275;goto st1377;} + {stack[top++] = 275;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 275;goto st1390;} + {stack[top++] = 275;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 275;goto st1396;} + {stack[top++] = 275;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 275;goto st1414;} + {stack[top++] = 275;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 275;goto st1409;} + {stack[top++] = 275;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 275;goto st1427;} + {stack[top++] = 275;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 275;goto st1433;} + {stack[top++] = 275;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 275;goto st1439;} + {stack[top++] = 275;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 275;goto st1447;} + {stack[top++] = 275;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 275;goto st1455;} + {stack[top++] = 275;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 275;goto st1461;} + {stack[top++] = 275;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -38918,88 +38902,88 @@ tr1018: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 275;goto st900;} + {stack[top++] = 275;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 275;goto st902;} + {stack[top++] = 275;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 275;goto st904;} + {stack[top++] = 275;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 275;goto st936;} + {stack[top++] = 275;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 275;goto st941;} + {stack[top++] = 275;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 275;goto st946;} + {stack[top++] = 275;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 275;goto st951;} + {stack[top++] = 275;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 275;goto st955;} + {stack[top++] = 275;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 275;goto st957;} + {stack[top++] = 275;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 275;goto st1012;} + {stack[top++] = 275;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 275;goto st1023;} + {stack[top++] = 275;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 275;goto st1040;} + {stack[top++] = 275;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 275;goto st1051;} + {stack[top++] = 275;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 275;goto st1062;} + {stack[top++] = 275;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 275;goto st1075;} + {stack[top++] = 275;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 275;goto st1085;} + {stack[top++] = 275;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 275;goto st1124;} + {stack[top++] = 275;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 275;goto st1319;} + {stack[top++] = 275;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 275;goto st1322;} + {stack[top++] = 275;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 275;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 275;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 275;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 275;goto st1364;} + {stack[top++] = 275;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 275;goto st1377;} + {stack[top++] = 275;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 275;goto st1390;} + {stack[top++] = 275;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 275;goto st1396;} + {stack[top++] = 275;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 275;goto st1414;} + {stack[top++] = 275;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 275;goto st1409;} + {stack[top++] = 275;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 275;goto st1427;} + {stack[top++] = 275;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 275;goto st1433;} + {stack[top++] = 275;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 275;goto st1439;} + {stack[top++] = 275;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 275;goto st1447;} + {stack[top++] = 275;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 275;goto st1455;} + {stack[top++] = 275;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 275;goto st1461;} + {stack[top++] = 275;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -39025,88 +39009,88 @@ tr926: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 275;goto st900;} + {stack[top++] = 275;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 275;goto st902;} + {stack[top++] = 275;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 275;goto st904;} + {stack[top++] = 275;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 275;goto st936;} + {stack[top++] = 275;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 275;goto st941;} + {stack[top++] = 275;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 275;goto st946;} + {stack[top++] = 275;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 275;goto st951;} + {stack[top++] = 275;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 275;goto st955;} + {stack[top++] = 275;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 275;goto st957;} + {stack[top++] = 275;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 275;goto st1012;} + {stack[top++] = 275;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 275;goto st1023;} + {stack[top++] = 275;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 275;goto st1040;} + {stack[top++] = 275;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 275;goto st1051;} + {stack[top++] = 275;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 275;goto st1062;} + {stack[top++] = 275;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 275;goto st1075;} + {stack[top++] = 275;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 275;goto st1085;} + {stack[top++] = 275;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 275;goto st1124;} + {stack[top++] = 275;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 275;goto st1319;} + {stack[top++] = 275;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 275;goto st1322;} + {stack[top++] = 275;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 275;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 275;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 275;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 275;goto st1364;} + {stack[top++] = 275;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 275;goto st1377;} + {stack[top++] = 275;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 275;goto st1390;} + {stack[top++] = 275;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 275;goto st1396;} + {stack[top++] = 275;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 275;goto st1414;} + {stack[top++] = 275;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 275;goto st1409;} + {stack[top++] = 275;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 275;goto st1427;} + {stack[top++] = 275;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 275;goto st1433;} + {stack[top++] = 275;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 275;goto st1439;} + {stack[top++] = 275;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 275;goto st1447;} + {stack[top++] = 275;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 275;goto st1455;} + {stack[top++] = 275;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 275;goto st1461;} + {stack[top++] = 275;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -39117,7 +39101,7 @@ tr926: s->buffer_length = 0; } goto st275; -tr4474: +tr4244: { s->buffer_length = 0; } @@ -39125,88 +39109,88 @@ tr4474: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 275;goto st900;} + {stack[top++] = 275;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 275;goto st902;} + {stack[top++] = 275;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 275;goto st904;} + {stack[top++] = 275;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 275;goto st936;} + {stack[top++] = 275;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 275;goto st941;} + {stack[top++] = 275;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 275;goto st946;} + {stack[top++] = 275;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 275;goto st951;} + {stack[top++] = 275;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 275;goto st955;} + {stack[top++] = 275;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 275;goto st957;} + {stack[top++] = 275;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 275;goto st1012;} + {stack[top++] = 275;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 275;goto st1023;} + {stack[top++] = 275;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 275;goto st1040;} + {stack[top++] = 275;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 275;goto st1051;} + {stack[top++] = 275;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 275;goto st1062;} + {stack[top++] = 275;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 275;goto st1075;} + {stack[top++] = 275;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 275;goto st1085;} + {stack[top++] = 275;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 275;goto st1124;} + {stack[top++] = 275;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 275;goto st1319;} + {stack[top++] = 275;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 275;goto st1322;} + {stack[top++] = 275;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 275;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 275;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 275;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 275;goto st1364;} + {stack[top++] = 275;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 275;goto st1377;} + {stack[top++] = 275;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 275;goto st1390;} + {stack[top++] = 275;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 275;goto st1396;} + {stack[top++] = 275;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 275;goto st1414;} + {stack[top++] = 275;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 275;goto st1409;} + {stack[top++] = 275;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 275;goto st1427;} + {stack[top++] = 275;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 275;goto st1433;} + {stack[top++] = 275;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 275;goto st1439;} + {stack[top++] = 275;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 275;goto st1447;} + {stack[top++] = 275;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 275;goto st1455;} + {stack[top++] = 275;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 275;goto st1461;} + {stack[top++] = 275;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -39578,7 +39562,7 @@ tr990: } } goto st286; -tr4402: +tr4172: { s->buffer_length = 0; } @@ -39625,93 +39609,93 @@ case 286: } else if ( _widec >= 1664 ) goto tr782; goto tr85; -tr4404: +tr4174: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 287;goto st900;} + {stack[top++] = 287;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 287;goto st902;} + {stack[top++] = 287;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 287;goto st904;} + {stack[top++] = 287;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 287;goto st936;} + {stack[top++] = 287;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 287;goto st941;} + {stack[top++] = 287;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 287;goto st946;} + {stack[top++] = 287;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 287;goto st951;} + {stack[top++] = 287;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 287;goto st955;} + {stack[top++] = 287;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 287;goto st957;} + {stack[top++] = 287;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 287;goto st1012;} + {stack[top++] = 287;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 287;goto st1023;} + {stack[top++] = 287;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 287;goto st1040;} + {stack[top++] = 287;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 287;goto st1051;} + {stack[top++] = 287;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 287;goto st1062;} + {stack[top++] = 287;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 287;goto st1075;} + {stack[top++] = 287;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 287;goto st1085;} + {stack[top++] = 287;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 287;goto st1124;} + {stack[top++] = 287;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 287;goto st1319;} + {stack[top++] = 287;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 287;goto st1322;} + {stack[top++] = 287;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 287;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 287;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 287;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 287;goto st1364;} + {stack[top++] = 287;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 287;goto st1377;} + {stack[top++] = 287;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 287;goto st1390;} + {stack[top++] = 287;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 287;goto st1396;} + {stack[top++] = 287;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 287;goto st1414;} + {stack[top++] = 287;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 287;goto st1409;} + {stack[top++] = 287;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 287;goto st1427;} + {stack[top++] = 287;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 287;goto st1433;} + {stack[top++] = 287;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 287;goto st1439;} + {stack[top++] = 287;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 287;goto st1447;} + {stack[top++] = 287;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 287;goto st1455;} + {stack[top++] = 287;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 287;goto st1461;} + {stack[top++] = 287;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -39730,88 +39714,88 @@ tr145: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 287;goto st900;} + {stack[top++] = 287;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 287;goto st902;} + {stack[top++] = 287;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 287;goto st904;} + {stack[top++] = 287;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 287;goto st936;} + {stack[top++] = 287;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 287;goto st941;} + {stack[top++] = 287;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 287;goto st946;} + {stack[top++] = 287;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 287;goto st951;} + {stack[top++] = 287;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 287;goto st955;} + {stack[top++] = 287;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 287;goto st957;} + {stack[top++] = 287;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 287;goto st1012;} + {stack[top++] = 287;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 287;goto st1023;} + {stack[top++] = 287;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 287;goto st1040;} + {stack[top++] = 287;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 287;goto st1051;} + {stack[top++] = 287;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 287;goto st1062;} + {stack[top++] = 287;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 287;goto st1075;} + {stack[top++] = 287;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 287;goto st1085;} + {stack[top++] = 287;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 287;goto st1124;} + {stack[top++] = 287;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 287;goto st1319;} + {stack[top++] = 287;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 287;goto st1322;} + {stack[top++] = 287;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 287;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 287;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 287;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 287;goto st1364;} + {stack[top++] = 287;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 287;goto st1377;} + {stack[top++] = 287;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 287;goto st1390;} + {stack[top++] = 287;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 287;goto st1396;} + {stack[top++] = 287;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 287;goto st1414;} + {stack[top++] = 287;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 287;goto st1409;} + {stack[top++] = 287;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 287;goto st1427;} + {stack[top++] = 287;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 287;goto st1433;} + {stack[top++] = 287;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 287;goto st1439;} + {stack[top++] = 287;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 287;goto st1447;} + {stack[top++] = 287;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 287;goto st1455;} + {stack[top++] = 287;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 287;goto st1461;} + {stack[top++] = 287;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -39981,95 +39965,95 @@ tr147: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 289;goto st900;} + {stack[top++] = 289;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 289;goto st902;} + {stack[top++] = 289;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 289;goto st904;} + {stack[top++] = 289;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 289;goto st936;} + {stack[top++] = 289;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 289;goto st941;} + {stack[top++] = 289;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 289;goto st946;} + {stack[top++] = 289;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 289;goto st951;} + {stack[top++] = 289;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 289;goto st955;} + {stack[top++] = 289;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 289;goto st957;} + {stack[top++] = 289;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 289;goto st1012;} + {stack[top++] = 289;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 289;goto st1023;} + {stack[top++] = 289;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 289;goto st1040;} + {stack[top++] = 289;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 289;goto st1051;} + {stack[top++] = 289;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 289;goto st1062;} + {stack[top++] = 289;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 289;goto st1075;} + {stack[top++] = 289;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 289;goto st1085;} + {stack[top++] = 289;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 289;goto st1124;} + {stack[top++] = 289;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 289;goto st1319;} + {stack[top++] = 289;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 289;goto st1322;} + {stack[top++] = 289;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 289;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 289;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 289;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 289;goto st1364;} + {stack[top++] = 289;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 289;goto st1377;} + {stack[top++] = 289;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 289;goto st1390;} + {stack[top++] = 289;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 289;goto st1396;} + {stack[top++] = 289;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 289;goto st1414;} + {stack[top++] = 289;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 289;goto st1409;} + {stack[top++] = 289;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 289;goto st1427;} + {stack[top++] = 289;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 289;goto st1433;} + {stack[top++] = 289;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 289;goto st1439;} + {stack[top++] = 289;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 289;goto st1447;} + {stack[top++] = 289;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 289;goto st1455;} + {stack[top++] = 289;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 289;goto st1461;} + {stack[top++] = 289;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} } } goto st289; -tr4406: +tr4176: { s->buffer_length = 0; } @@ -40077,88 +40061,88 @@ tr4406: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 289;goto st900;} + {stack[top++] = 289;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 289;goto st902;} + {stack[top++] = 289;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 289;goto st904;} + {stack[top++] = 289;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 289;goto st936;} + {stack[top++] = 289;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 289;goto st941;} + {stack[top++] = 289;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 289;goto st946;} + {stack[top++] = 289;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 289;goto st951;} + {stack[top++] = 289;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 289;goto st955;} + {stack[top++] = 289;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 289;goto st957;} + {stack[top++] = 289;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 289;goto st1012;} + {stack[top++] = 289;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 289;goto st1023;} + {stack[top++] = 289;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 289;goto st1040;} + {stack[top++] = 289;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 289;goto st1051;} + {stack[top++] = 289;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 289;goto st1062;} + {stack[top++] = 289;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 289;goto st1075;} + {stack[top++] = 289;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 289;goto st1085;} + {stack[top++] = 289;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 289;goto st1124;} + {stack[top++] = 289;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 289;goto st1319;} + {stack[top++] = 289;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 289;goto st1322;} + {stack[top++] = 289;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 289;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 289;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 289;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 289;goto st1364;} + {stack[top++] = 289;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 289;goto st1377;} + {stack[top++] = 289;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 289;goto st1390;} + {stack[top++] = 289;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 289;goto st1396;} + {stack[top++] = 289;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 289;goto st1414;} + {stack[top++] = 289;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 289;goto st1409;} + {stack[top++] = 289;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 289;goto st1427;} + {stack[top++] = 289;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 289;goto st1433;} + {stack[top++] = 289;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 289;goto st1439;} + {stack[top++] = 289;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 289;goto st1447;} + {stack[top++] = 289;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 289;goto st1455;} + {stack[top++] = 289;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 289;goto st1461;} + {stack[top++] = 289;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -40373,88 +40357,88 @@ tr116: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 291;goto st900;} + {stack[top++] = 291;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 291;goto st902;} + {stack[top++] = 291;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 291;goto st904;} + {stack[top++] = 291;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 291;goto st936;} + {stack[top++] = 291;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 291;goto st941;} + {stack[top++] = 291;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 291;goto st946;} + {stack[top++] = 291;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 291;goto st951;} + {stack[top++] = 291;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 291;goto st955;} + {stack[top++] = 291;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 291;goto st957;} + {stack[top++] = 291;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 291;goto st1012;} + {stack[top++] = 291;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 291;goto st1023;} + {stack[top++] = 291;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 291;goto st1040;} + {stack[top++] = 291;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 291;goto st1051;} + {stack[top++] = 291;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 291;goto st1062;} + {stack[top++] = 291;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 291;goto st1075;} + {stack[top++] = 291;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 291;goto st1085;} + {stack[top++] = 291;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 291;goto st1124;} + {stack[top++] = 291;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 291;goto st1319;} + {stack[top++] = 291;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 291;goto st1322;} + {stack[top++] = 291;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 291;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 291;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 291;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 291;goto st1364;} + {stack[top++] = 291;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 291;goto st1377;} + {stack[top++] = 291;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 291;goto st1390;} + {stack[top++] = 291;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 291;goto st1396;} + {stack[top++] = 291;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 291;goto st1414;} + {stack[top++] = 291;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 291;goto st1409;} + {stack[top++] = 291;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 291;goto st1427;} + {stack[top++] = 291;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 291;goto st1433;} + {stack[top++] = 291;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 291;goto st1439;} + {stack[top++] = 291;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 291;goto st1447;} + {stack[top++] = 291;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 291;goto st1455;} + {stack[top++] = 291;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 291;goto st1461;} + {stack[top++] = 291;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -40469,88 +40453,88 @@ tr109: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 291;goto st900;} + {stack[top++] = 291;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 291;goto st902;} + {stack[top++] = 291;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 291;goto st904;} + {stack[top++] = 291;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 291;goto st936;} + {stack[top++] = 291;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 291;goto st941;} + {stack[top++] = 291;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 291;goto st946;} + {stack[top++] = 291;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 291;goto st951;} + {stack[top++] = 291;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 291;goto st955;} + {stack[top++] = 291;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 291;goto st957;} + {stack[top++] = 291;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 291;goto st1012;} + {stack[top++] = 291;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 291;goto st1023;} + {stack[top++] = 291;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 291;goto st1040;} + {stack[top++] = 291;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 291;goto st1051;} + {stack[top++] = 291;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 291;goto st1062;} + {stack[top++] = 291;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 291;goto st1075;} + {stack[top++] = 291;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 291;goto st1085;} + {stack[top++] = 291;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 291;goto st1124;} + {stack[top++] = 291;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 291;goto st1319;} + {stack[top++] = 291;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 291;goto st1322;} + {stack[top++] = 291;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 291;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 291;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 291;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 291;goto st1364;} + {stack[top++] = 291;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 291;goto st1377;} + {stack[top++] = 291;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 291;goto st1390;} + {stack[top++] = 291;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 291;goto st1396;} + {stack[top++] = 291;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 291;goto st1414;} + {stack[top++] = 291;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 291;goto st1409;} + {stack[top++] = 291;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 291;goto st1427;} + {stack[top++] = 291;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 291;goto st1433;} + {stack[top++] = 291;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 291;goto st1439;} + {stack[top++] = 291;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 291;goto st1447;} + {stack[top++] = 291;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 291;goto st1455;} + {stack[top++] = 291;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 291;goto st1461;} + {stack[top++] = 291;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -40573,88 +40557,88 @@ tr861: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 291;goto st900;} + {stack[top++] = 291;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 291;goto st902;} + {stack[top++] = 291;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 291;goto st904;} + {stack[top++] = 291;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 291;goto st936;} + {stack[top++] = 291;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 291;goto st941;} + {stack[top++] = 291;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 291;goto st946;} + {stack[top++] = 291;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 291;goto st951;} + {stack[top++] = 291;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 291;goto st955;} + {stack[top++] = 291;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 291;goto st957;} + {stack[top++] = 291;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 291;goto st1012;} + {stack[top++] = 291;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 291;goto st1023;} + {stack[top++] = 291;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 291;goto st1040;} + {stack[top++] = 291;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 291;goto st1051;} + {stack[top++] = 291;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 291;goto st1062;} + {stack[top++] = 291;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 291;goto st1075;} + {stack[top++] = 291;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 291;goto st1085;} + {stack[top++] = 291;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 291;goto st1124;} + {stack[top++] = 291;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 291;goto st1319;} + {stack[top++] = 291;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 291;goto st1322;} + {stack[top++] = 291;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 291;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 291;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 291;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 291;goto st1364;} + {stack[top++] = 291;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 291;goto st1377;} + {stack[top++] = 291;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 291;goto st1390;} + {stack[top++] = 291;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 291;goto st1396;} + {stack[top++] = 291;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 291;goto st1414;} + {stack[top++] = 291;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 291;goto st1409;} + {stack[top++] = 291;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 291;goto st1427;} + {stack[top++] = 291;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 291;goto st1433;} + {stack[top++] = 291;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 291;goto st1439;} + {stack[top++] = 291;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 291;goto st1447;} + {stack[top++] = 291;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 291;goto st1455;} + {stack[top++] = 291;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 291;goto st1461;} + {stack[top++] = 291;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -40914,88 +40898,88 @@ tr850: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 294;goto st900;} + {stack[top++] = 294;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 294;goto st902;} + {stack[top++] = 294;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 294;goto st904;} + {stack[top++] = 294;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 294;goto st936;} + {stack[top++] = 294;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 294;goto st941;} + {stack[top++] = 294;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 294;goto st946;} + {stack[top++] = 294;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 294;goto st951;} + {stack[top++] = 294;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 294;goto st955;} + {stack[top++] = 294;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 294;goto st957;} + {stack[top++] = 294;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 294;goto st1012;} + {stack[top++] = 294;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 294;goto st1023;} + {stack[top++] = 294;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 294;goto st1040;} + {stack[top++] = 294;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 294;goto st1051;} + {stack[top++] = 294;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 294;goto st1062;} + {stack[top++] = 294;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 294;goto st1075;} + {stack[top++] = 294;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 294;goto st1085;} + {stack[top++] = 294;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 294;goto st1124;} + {stack[top++] = 294;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 294;goto st1319;} + {stack[top++] = 294;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 294;goto st1322;} + {stack[top++] = 294;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 294;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 294;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 294;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 294;goto st1364;} + {stack[top++] = 294;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 294;goto st1377;} + {stack[top++] = 294;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 294;goto st1390;} + {stack[top++] = 294;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 294;goto st1396;} + {stack[top++] = 294;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 294;goto st1414;} + {stack[top++] = 294;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 294;goto st1409;} + {stack[top++] = 294;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 294;goto st1427;} + {stack[top++] = 294;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 294;goto st1433;} + {stack[top++] = 294;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 294;goto st1439;} + {stack[top++] = 294;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 294;goto st1447;} + {stack[top++] = 294;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 294;goto st1455;} + {stack[top++] = 294;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 294;goto st1461;} + {stack[top++] = 294;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -41017,88 +41001,88 @@ tr843: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 294;goto st900;} + {stack[top++] = 294;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 294;goto st902;} + {stack[top++] = 294;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 294;goto st904;} + {stack[top++] = 294;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 294;goto st936;} + {stack[top++] = 294;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 294;goto st941;} + {stack[top++] = 294;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 294;goto st946;} + {stack[top++] = 294;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 294;goto st951;} + {stack[top++] = 294;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 294;goto st955;} + {stack[top++] = 294;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 294;goto st957;} + {stack[top++] = 294;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 294;goto st1012;} + {stack[top++] = 294;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 294;goto st1023;} + {stack[top++] = 294;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 294;goto st1040;} + {stack[top++] = 294;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 294;goto st1051;} + {stack[top++] = 294;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 294;goto st1062;} + {stack[top++] = 294;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 294;goto st1075;} + {stack[top++] = 294;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 294;goto st1085;} + {stack[top++] = 294;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 294;goto st1124;} + {stack[top++] = 294;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 294;goto st1319;} + {stack[top++] = 294;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 294;goto st1322;} + {stack[top++] = 294;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 294;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 294;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 294;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 294;goto st1364;} + {stack[top++] = 294;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 294;goto st1377;} + {stack[top++] = 294;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 294;goto st1390;} + {stack[top++] = 294;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 294;goto st1396;} + {stack[top++] = 294;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 294;goto st1414;} + {stack[top++] = 294;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 294;goto st1409;} + {stack[top++] = 294;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 294;goto st1427;} + {stack[top++] = 294;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 294;goto st1433;} + {stack[top++] = 294;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 294;goto st1439;} + {stack[top++] = 294;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 294;goto st1447;} + {stack[top++] = 294;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 294;goto st1455;} + {stack[top++] = 294;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 294;goto st1461;} + {stack[top++] = 294;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -41197,88 +41181,88 @@ tr851: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 295;goto st900;} + {stack[top++] = 295;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 295;goto st902;} + {stack[top++] = 295;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 295;goto st904;} + {stack[top++] = 295;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 295;goto st936;} + {stack[top++] = 295;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 295;goto st941;} + {stack[top++] = 295;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 295;goto st946;} + {stack[top++] = 295;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 295;goto st951;} + {stack[top++] = 295;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 295;goto st955;} + {stack[top++] = 295;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 295;goto st957;} + {stack[top++] = 295;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 295;goto st1012;} + {stack[top++] = 295;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 295;goto st1023;} + {stack[top++] = 295;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 295;goto st1040;} + {stack[top++] = 295;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 295;goto st1051;} + {stack[top++] = 295;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 295;goto st1062;} + {stack[top++] = 295;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 295;goto st1075;} + {stack[top++] = 295;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 295;goto st1085;} + {stack[top++] = 295;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 295;goto st1124;} + {stack[top++] = 295;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 295;goto st1319;} + {stack[top++] = 295;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 295;goto st1322;} + {stack[top++] = 295;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 295;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 295;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 295;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 295;goto st1364;} + {stack[top++] = 295;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 295;goto st1377;} + {stack[top++] = 295;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 295;goto st1390;} + {stack[top++] = 295;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 295;goto st1396;} + {stack[top++] = 295;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 295;goto st1414;} + {stack[top++] = 295;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 295;goto st1409;} + {stack[top++] = 295;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 295;goto st1427;} + {stack[top++] = 295;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 295;goto st1433;} + {stack[top++] = 295;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 295;goto st1439;} + {stack[top++] = 295;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 295;goto st1447;} + {stack[top++] = 295;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 295;goto st1455;} + {stack[top++] = 295;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 295;goto st1461;} + {stack[top++] = 295;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -41300,88 +41284,88 @@ tr844: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 295;goto st900;} + {stack[top++] = 295;goto st1071;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 295;goto st902;} + {stack[top++] = 295;goto st1073;} case KNOT_RRTYPE_SOA: - {stack[top++] = 295;goto st904;} + {stack[top++] = 295;goto st1075;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 295;goto st936;} + {stack[top++] = 295;goto st1107;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 295;goto st941;} + {stack[top++] = 295;goto st1112;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 295;goto st946;} + {stack[top++] = 295;goto st1117;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = 295;goto st951;} + {stack[top++] = 295;goto st1122;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 295;goto st955;} + {stack[top++] = 295;goto st1126;} case KNOT_RRTYPE_LOC: - {stack[top++] = 295;goto st957;} + {stack[top++] = 295;goto st1128;} case KNOT_RRTYPE_SRV: - {stack[top++] = 295;goto st1012;} + {stack[top++] = 295;goto st1183;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 295;goto st1023;} + {stack[top++] = 295;goto st1194;} case KNOT_RRTYPE_CERT: - {stack[top++] = 295;goto st1040;} + {stack[top++] = 295;goto st1211;} case KNOT_RRTYPE_APL: - {stack[top++] = 295;goto st1051;} + {stack[top++] = 295;goto st1222;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 295;goto st1062;} + {stack[top++] = 295;goto st1233;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 295;goto st1075;} + {stack[top++] = 295;goto st1246;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 295;goto st1085;} + {stack[top++] = 295;goto st1256;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 295;goto st1124;} + {stack[top++] = 295;goto st1295;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 295;goto st1319;} + {stack[top++] = 295;goto st1321;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 295;goto st1322;} + {stack[top++] = 295;goto st1324;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 295;goto st1333;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = 295;goto st1335;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 295;goto st1337;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 295;goto st1364;} + {stack[top++] = 295;goto st1366;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 295;goto st1377;} + {stack[top++] = 295;goto st1379;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 295;goto st1390;} + {stack[top++] = 295;goto st1392;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 295;goto st1396;} + {stack[top++] = 295;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 295;goto st1414;} + {stack[top++] = 295;goto st1416;} case KNOT_RRTYPE_L32: - {stack[top++] = 295;goto st1409;} + {stack[top++] = 295;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 295;goto st1427;} + {stack[top++] = 295;goto st1429;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 295;goto st1433;} + {stack[top++] = 295;goto st1435;} case KNOT_RRTYPE_URI: - {stack[top++] = 295;goto st1439;} + {stack[top++] = 295;goto st1441;} case KNOT_RRTYPE_CAA: - {stack[top++] = 295;goto st1447;} + {stack[top++] = 295;goto st1449;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 295;goto st1455;} + {stack[top++] = 295;goto st1457;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 295;goto st1461;} + {stack[top++] = 295;goto st1463;} default: WARN(ZS_CANNOT_TEXT_DATA); {goto st319;} @@ -41572,7 +41556,7 @@ case 296: if ( 1920 <= _widec && _widec <= 2175 ) goto tr1012; goto tr85; -tr4412: +tr4182: { s->r_class = s->default_class; } @@ -41582,7 +41566,7 @@ tr4412: } { p--; {stack[top++] = 297;goto st321;} } goto st297; -tr4434: +tr4204: { s->r_class = s->default_class; } @@ -41630,7 +41614,7 @@ case 297: case 2107: goto tr800; } goto tr1025; -tr4413: +tr4183: { s->r_class = s->default_class; } @@ -41640,7 +41624,7 @@ tr4413: } { p--; {stack[top++] = 298;goto st321;} } goto st298; -tr4435: +tr4205: { s->r_class = s->default_class; } @@ -41684,7 +41668,7 @@ case 298: case 2107: goto tr800; } goto tr1025; -tr4414: +tr4184: { s->r_class = s->default_class; } @@ -41694,7 +41678,7 @@ tr4414: } { p--; {stack[top++] = 299;goto st321;} } goto st299; -tr4436: +tr4206: { s->r_class = s->default_class; } @@ -41734,7 +41718,7 @@ case 299: case 2107: goto tr800; } goto tr1025; -tr4415: +tr4185: { s->r_class = s->default_class; } @@ -41744,7 +41728,7 @@ tr4415: } { p--; {stack[top++] = 300;goto st321;} } goto st300; -tr4437: +tr4207: { s->r_class = s->default_class; } @@ -41786,7 +41770,7 @@ case 300: case 2107: goto tr800; } goto tr1025; -tr4438: +tr4208: { s->r_class = s->default_class; } @@ -41828,7 +41812,7 @@ case 301: case 2107: goto tr800; } goto tr1025; -tr4417: +tr4187: { s->r_class = s->default_class; } @@ -41838,7 +41822,7 @@ tr4417: } { p--; {stack[top++] = 302;goto st321;} } goto st302; -tr4439: +tr4209: { s->r_class = s->default_class; } @@ -41880,7 +41864,7 @@ case 302: case 2107: goto tr800; } goto tr1025; -tr4418: +tr4188: { s->r_class = s->default_class; } @@ -41890,7 +41874,7 @@ tr4418: } { p--; {stack[top++] = 303;goto st321;} } goto st303; -tr4440: +tr4210: { s->r_class = s->default_class; } @@ -41934,7 +41918,7 @@ case 303: case 2107: goto tr800; } goto tr1025; -tr4419: +tr4189: { s->r_class = s->default_class; } @@ -41944,7 +41928,7 @@ tr4419: } { p--; {stack[top++] = 304;goto st321;} } goto st304; -tr4441: +tr4211: { s->r_class = s->default_class; } @@ -41986,7 +41970,7 @@ case 304: case 2107: goto tr800; } goto tr1025; -tr4420: +tr4190: { s->r_class = s->default_class; } @@ -41996,7 +41980,7 @@ tr4420: } { p--; {stack[top++] = 305;goto st321;} } goto st305; -tr4442: +tr4212: { s->r_class = s->default_class; } @@ -42040,7 +42024,7 @@ case 305: case 2107: goto tr800; } goto tr1025; -tr4421: +tr4191: { s->r_class = s->default_class; } @@ -42050,7 +42034,7 @@ tr4421: } { p--; {stack[top++] = 306;goto st321;} } goto st306; -tr4443: +tr4213: { s->r_class = s->default_class; } @@ -42090,7 +42074,7 @@ case 306: case 2107: goto tr800; } goto tr1025; -tr4422: +tr4192: { s->r_class = s->default_class; } @@ -42100,7 +42084,7 @@ tr4422: } { p--; {stack[top++] = 307;goto st321;} } goto st307; -tr4444: +tr4214: { s->r_class = s->default_class; } @@ -42140,7 +42124,7 @@ case 307: case 2107: goto tr800; } goto tr1025; -tr4423: +tr4193: { s->r_class = s->default_class; } @@ -42150,7 +42134,7 @@ tr4423: } { p--; {stack[top++] = 308;goto st321;} } goto st308; -tr4445: +tr4215: { s->r_class = s->default_class; } @@ -42194,7 +42178,7 @@ case 308: case 2107: goto tr800; } goto tr1025; -tr4424: +tr4194: { s->r_class = s->default_class; } @@ -42204,7 +42188,7 @@ tr4424: } { p--; {stack[top++] = 309;goto st321;} } goto st309; -tr4446: +tr4216: { s->r_class = s->default_class; } @@ -42254,7 +42238,7 @@ case 309: case 2107: goto tr800; } goto tr1025; -tr4425: +tr4195: { s->r_class = s->default_class; } @@ -42264,7 +42248,7 @@ tr4425: } { p--; {stack[top++] = 310;goto st321;} } goto st310; -tr4447: +tr4217: { s->r_class = s->default_class; } @@ -42308,7 +42292,7 @@ case 310: case 2107: goto tr800; } goto tr1025; -tr4426: +tr4196: { s->r_class = s->default_class; } @@ -42318,7 +42302,7 @@ tr4426: } { p--; {stack[top++] = 311;goto st321;} } goto st311; -tr4448: +tr4218: { s->r_class = s->default_class; } @@ -42358,7 +42342,7 @@ case 311: case 2107: goto tr800; } goto tr1025; -tr4427: +tr4197: { s->r_class = s->default_class; } @@ -42368,7 +42352,7 @@ tr4427: } { p--; {stack[top++] = 312;goto st321;} } goto st312; -tr4449: +tr4219: { s->r_class = s->default_class; } @@ -42408,7 +42392,7 @@ case 312: case 2107: goto tr800; } goto tr1025; -tr4428: +tr4198: { s->r_class = s->default_class; } @@ -42418,7 +42402,7 @@ tr4428: } { p--; {stack[top++] = 313;goto st321;} } goto st313; -tr4450: +tr4220: { s->r_class = s->default_class; } @@ -42470,7 +42454,7 @@ tr1026: } } goto st314; -tr4394: +tr4164: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); @@ -42485,7 +42469,7 @@ tr4394: s->buffer_length = 0; } goto st314; -tr4464: +tr4234: { s->buffer_length = 0; } @@ -42500,7 +42484,7 @@ tr4464: s->buffer_length = 0; } goto st314; -tr4460: +tr4230: { NOERR; } @@ -42562,7 +42546,7 @@ tr1028: } } goto st315; -tr4430: +tr4200: { s->buffer_length = 0; } @@ -42609,7 +42593,7 @@ case 315: } else if ( _widec >= 1664 ) goto tr782; goto tr154; -tr4416: +tr4186: { s->r_class = s->default_class; } @@ -42754,15 +42738,15 @@ case 318: goto st318; goto st0; tr1033: - { p--; {stack[top++] = 1493;goto st1483;} } + { p--; {stack[top++] = 1484;goto st1474;} } { s->line_counter++; } - goto st1493; -st1493: + goto st1484; +st1484: if ( ++p == pe ) - goto _test_eof1493; -case 1493: + goto _test_eof1484; +case 1484: goto st0; st319: if ( ++p == pe ) @@ -42804,7 +42788,7 @@ case 320: goto tr1039; goto tr1038; tr1037: - cs = 1494; + cs = 1485; { s->buffer_length = 0; } @@ -42852,7 +42836,7 @@ tr1037: } goto _again; tr1039: - cs = 1494; + cs = 1485; { // Terminate the error context string. s->buffer[s->buffer_length++] = 0; @@ -42896,10 +42880,10 @@ tr1039: s->line_counter++; } goto _again; -st1494: +st1485: if ( ++p == pe ) - goto _test_eof1494; -case 1494: + goto _test_eof1485; +case 1485: goto st0; st321: if ( ++p == pe ) @@ -43039,7 +43023,7 @@ tr1045: { p--; {cs = stack[--top];goto _again;} } - goto st1495; + goto st1486; tr1049: { // Enough room for the terminal label is guaranteed (_label_exit). @@ -43048,7 +43032,7 @@ tr1049: { p--; {cs = stack[--top];goto _again;} } - goto st1495; + goto st1486; tr1056: { s->dname_tmp_length++; @@ -43080,7 +43064,7 @@ tr1056: { p--; {cs = stack[--top];goto _again;} } - goto st1495; + goto st1486; tr1060: { // Copy already verified zone origin. @@ -43093,11 +43077,11 @@ tr1060: { p--; {cs = stack[--top];goto _again;} } - goto st1495; -st1495: + goto st1486; +st1486: if ( ++p == pe ) - goto _test_eof1495; -case 1495: + goto _test_eof1486; +case 1486: goto st0; tr1047: { @@ -43487,7 +43471,7 @@ tr1065: { p--; {cs = stack[--top];goto _again;} } - goto st1496; + goto st1487; tr1073: { rdata_tail++; @@ -43524,16 +43508,16 @@ tr1073: { p--; {cs = stack[--top];goto _again;} } - goto st1496; + goto st1487; tr1086: { p--; {cs = stack[--top];goto _again;} } - goto st1496; -st1496: + goto st1487; +st1487: if ( ++p == pe ) - goto _test_eof1496; -case 1496: + goto _test_eof1487; +case 1487: goto st0; tr1067: { @@ -43590,7 +43574,7 @@ tr1067: { p--; {cs = stack[--top];goto _again;} } - goto st1497; + goto st1488; tr1075: { rdata_tail++; @@ -43649,11 +43633,11 @@ tr1075: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -st1497: + goto st1488; +st1488: if ( ++p == pe ) - goto _test_eof1497; -case 1497: + goto _test_eof1488; +case 1488: switch( (*p) ) { case 32: goto tr1065; case 33: goto tr1066; @@ -44741,7 +44725,7 @@ tr1112: { s->line_counter++; } - goto st1498; + goto st1489; tr1118: { if (s->number64 <= UINT32_MAX) { @@ -44757,7 +44741,7 @@ tr1118: { s->line_counter++; } - goto st1498; + goto st1489; tr1121: { s->buffer[s->buffer_length++] = 0; @@ -44768,7 +44752,7 @@ tr1121: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1498; goto _out;} + {p++; cs = 1489; goto _out;} } } } @@ -44786,7 +44770,7 @@ tr1121: { s->line_counter++; } - goto st1498; + goto st1489; tr1134: { if (s->number64 + s->number64_tmp < UINT32_MAX) { @@ -44814,11 +44798,11 @@ tr1134: { s->line_counter++; } - goto st1498; -st1498: + goto st1489; +st1489: if ( ++p == pe ) - goto _test_eof1498; -case 1498: + goto _test_eof1489; +case 1489: goto st0; tr1119: { @@ -45484,7 +45468,7 @@ tr1156: { s->line_counter++; } - goto st1499; + goto st1490; tr1161: { s->zone_origin_length = s->dname_tmp_length; @@ -45495,7 +45479,7 @@ tr1161: { s->line_counter++; } - goto st1499; + goto st1490; tr1164: { s->buffer[s->buffer_length++] = 0; @@ -45506,7 +45490,7 @@ tr1164: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1499; goto _out;} + {p++; cs = 1490; goto _out;} } } } @@ -45519,11 +45503,11 @@ tr1164: { s->line_counter++; } - goto st1499; -st1499: + goto st1490; +st1490: if ( ++p == pe ) - goto _test_eof1499; -case 1499: + goto _test_eof1490; +case 1490: goto st0; tr1162: { @@ -46238,7 +46222,7 @@ case 370: } goto tr91; tr1185: - cs = 1500; + cs = 1491; { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { @@ -46310,7 +46294,7 @@ tr1185: free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1483; {p++; goto _out;} + p--; cs = 1474; {p++; goto _out;} } } { @@ -46321,7 +46305,7 @@ tr1185: } goto _again; tr1195: - cs = 1500; + cs = 1491; { // Extend relative file path. if (s->include_filename[0] != '/') { @@ -46375,7 +46359,7 @@ tr1195: free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1483; {p++; goto _out;} + p--; cs = 1474; {p++; goto _out;} } } { @@ -46386,7 +46370,7 @@ tr1195: } goto _again; tr1207: - cs = 1500; + cs = 1491; { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46451,7 +46435,7 @@ tr1207: free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1483; {p++; goto _out;} + p--; cs = 1474; {p++; goto _out;} } } { @@ -46462,7 +46446,7 @@ tr1207: } goto _again; tr1213: - cs = 1500; + cs = 1491; { s->buffer[s->buffer_length++] = 0; @@ -46529,7 +46513,7 @@ tr1213: free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1483; {p++; goto _out;} + p--; cs = 1474; {p++; goto _out;} } } { @@ -46539,10 +46523,10 @@ tr1213: s->line_counter++; } goto _again; -st1500: +st1491: if ( ++p == pe ) - goto _test_eof1500; -case 1500: + goto _test_eof1491; +case 1491: goto st0; tr1196: { @@ -46797,7 +46781,7 @@ case 377: goto tr1212; goto tr91; tr1222: - cs = 1501; + cs = 1492; { s->buffer[s->buffer_length++] = 0; @@ -46867,17 +46851,17 @@ tr1222: free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1483; {p++; goto _out;} + p--; cs = 1474; {p++; goto _out;} } } { p--; {cs = stack[--top];goto _again;} } goto _again; -st1501: +st1492: if ( ++p == pe ) - goto _test_eof1501; -case 1501: + goto _test_eof1492; +case 1492: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47296,11 +47280,11 @@ tr1243: { p--; {cs = stack[--top];goto _again;} } - goto st1502; -st1502: + goto st1493; +st1493: if ( ++p == pe ) - goto _test_eof1502; -case 1502: + goto _test_eof1493; +case 1493: goto st0; tr1244: { @@ -47309,11 +47293,11 @@ tr1244: { p--; {cs = stack[--top];goto _again;} } - goto st1503; -st1503: + goto st1494; +st1494: if ( ++p == pe ) - goto _test_eof1503; -case 1503: + goto _test_eof1494; +case 1494: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47359,11 +47343,11 @@ tr1245: { p--; {cs = stack[--top];goto _again;} } - goto st1504; -st1504: + goto st1495; +st1495: if ( ++p == pe ) - goto _test_eof1504; -case 1504: + goto _test_eof1495; +case 1495: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -47398,3510 +47382,3660 @@ st388: if ( ++p == pe ) goto _test_eof388; case 388: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + switch( (*p) ) { + case 65: goto st389; + case 67: goto st399; + case 68: goto st420; + case 69: goto st437; + case 72: goto st444; + case 73: goto st453; + case 75: goto st461; + case 76: goto st465; + case 77: goto st473; + case 78: goto st479; + case 79: goto st495; + case 80: goto st505; + case 82: goto st508; + case 83: goto st515; + case 84: goto st534; + case 85: goto st544; + case 87: goto st547; + case 90: goto st553; + case 97: goto st389; + case 99: goto st399; + case 100: goto st420; + case 101: goto st437; + case 104: goto st444; + case 105: goto st453; + case 107: goto st461; + case 108: goto st465; + case 109: goto st473; + case 110: goto st479; + case 111: goto st495; + case 112: goto st505; + case 114: goto st508; + case 115: goto st515; + case 116: goto st534; + case 117: goto st544; + case 119: goto st547; + case 122: goto st553; } - switch( _widec ) { - case 9: goto tr1249; - case 32: goto tr1249; - case 40: goto tr1250; - case 41: goto tr1251; - case 3082: goto tr1252; - case 3131: goto tr1253; - case 3338: goto tr1254; - case 3387: goto tr1254; - case 3594: goto tr1255; - case 3643: goto tr1256; + goto tr1248; +st389: + if ( ++p == pe ) + goto _test_eof389; +case 389: + switch( (*p) ) { + case 32: goto tr1267; + case 59: goto tr1267; + case 65: goto st390; + case 70: goto st393; + case 80: goto st397; + case 97: goto st390; + case 102: goto st393; + case 112: goto st397; } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1267; + } else if ( (*p) >= 9 ) + goto tr1267; goto tr1248; -tr1258: +tr1267: + { type_num(KNOT_RRTYPE_A, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1259: + goto st1496; +tr1273: + { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1278: + goto st1496; +tr1277: + { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1305: + goto st1496; +tr1279: + { type_num(KNOT_RRTYPE_APL, &rdata_tail); } { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 389; goto _out;} - } - } + p--; {cs = stack[--top];goto _again;} } + goto st1496; +tr1286: + { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1249: + goto st1496; +tr1293: + { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } { - memset(s->windows, 0, sizeof(s->windows)); - s->last_window = -1; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1250: + goto st1496; +tr1294: + { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } { - memset(s->windows, 0, sizeof(s->windows)); - s->last_window = -1; + p--; {cs = stack[--top];goto _again;} } + goto st1496; +tr1297: + { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1251: + goto st1496; +tr1301: + { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } { - memset(s->windows, 0, sizeof(s->windows)); - s->last_window = -1; + p--; {cs = stack[--top];goto _again;} } + goto st1496; +tr1305: + { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1252: + goto st1496; +tr1312: + { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } { - memset(s->windows, 0, sizeof(s->windows)); - s->last_window = -1; + p--; {cs = stack[--top];goto _again;} } + goto st1496; +tr1317: + { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1283: - { window_add_bit(KNOT_RRTYPE_A, s); } - goto st389; -tr1284: - { window_add_bit(KNOT_RRTYPE_A, s); } + goto st1496; +tr1321: + { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1285: - { window_add_bit(KNOT_RRTYPE_A, s); } + goto st1496; +tr1322: + { type_num(KNOT_RRTYPE_DS, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1289: - { window_add_bit(KNOT_RRTYPE_A, s); } + goto st1496; +tr1326: + { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1296: - { window_add_bit(KNOT_RRTYPE_AAAA, s); } - goto st389; -tr1297: - { window_add_bit(KNOT_RRTYPE_AAAA, s); } + goto st1496; +tr1332: + { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1298: - { window_add_bit(KNOT_RRTYPE_AAAA, s); } + goto st1496; +tr1334: + { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1299: - { window_add_bit(KNOT_RRTYPE_AAAA, s); } + goto st1496; +tr1340: + { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1312: - { window_add_bit(KNOT_RRTYPE_CAA, s); } - goto st389; -tr1313: - { window_add_bit(KNOT_RRTYPE_CAA, s); } + goto st1496; +tr1344: + { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1314: - { window_add_bit(KNOT_RRTYPE_CAA, s); } + goto st1496; +tr1352: + { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1315: - { window_add_bit(KNOT_RRTYPE_CAA, s); } + goto st1496; +tr1356: + { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1326: - { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } - goto st389; -tr1327: - { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } + goto st1496; +tr1357: + { type_num(KNOT_RRTYPE_KX, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1328: - { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } + goto st1496; +tr1363: + { type_num(KNOT_RRTYPE_L32, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1329: - { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } + goto st1496; +tr1365: + { type_num(KNOT_RRTYPE_L64, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1334: - { window_add_bit(KNOT_RRTYPE_CDS, s); } - goto st389; -tr1335: - { window_add_bit(KNOT_RRTYPE_CDS, s); } + goto st1496; +tr1367: + { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1336: - { window_add_bit(KNOT_RRTYPE_CDS, s); } + goto st1496; +tr1368: + { type_num(KNOT_RRTYPE_LP, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1337: - { window_add_bit(KNOT_RRTYPE_CDS, s); } + goto st1496; +tr1374: + { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1344: - { window_add_bit(KNOT_RRTYPE_CERT, s); } - goto st389; -tr1345: - { window_add_bit(KNOT_RRTYPE_CERT, s); } + goto st1496; +tr1375: + { type_num(KNOT_RRTYPE_MX, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1346: - { window_add_bit(KNOT_RRTYPE_CERT, s); } + goto st1496; +tr1382: + { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1347: - { window_add_bit(KNOT_RRTYPE_CERT, s); } + goto st1496; +tr1384: + { type_num(KNOT_RRTYPE_NID, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1355: - { window_add_bit(KNOT_RRTYPE_CNAME, s); } - goto st389; -tr1356: - { window_add_bit(KNOT_RRTYPE_CNAME, s); } + goto st1496; +tr1385: + { type_num(KNOT_RRTYPE_NS, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1357: - { window_add_bit(KNOT_RRTYPE_CNAME, s); } + goto st1496; +tr1388: + { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1358: - { window_add_bit(KNOT_RRTYPE_CNAME, s); } + goto st1496; +tr1390: + { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1366: - { window_add_bit(KNOT_RRTYPE_CSYNC, s); } - goto st389; -tr1367: - { window_add_bit(KNOT_RRTYPE_CSYNC, s); } + goto st1496; +tr1396: + { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1368: - { window_add_bit(KNOT_RRTYPE_CSYNC, s); } + goto st1496; +tr1406: + { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1369: - { window_add_bit(KNOT_RRTYPE_CSYNC, s); } + goto st1496; +tr1409: + { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1380: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } - goto st389; -tr1381: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } + goto st1496; +tr1413: + { type_num(KNOT_RRTYPE_RP, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1382: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } + goto st1496; +tr1417: + { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1383: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } + goto st1496; +tr1418: + { type_num(KNOT_RRTYPE_RT, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1392: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } - goto st389; -tr1393: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } + goto st1496; +tr1429: + { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1394: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } + goto st1496; +tr1431: + { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1395: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } + goto st1496; +tr1433: + { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1403: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } - goto st389; -tr1404: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } + goto st1496; +tr1435: + { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1405: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } + goto st1496; +tr1439: + { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1406: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } - { - s->line_counter++; - } - goto st389; -tr1411: - { window_add_bit(KNOT_RRTYPE_DS, s); } - goto st389; -tr1412: - { window_add_bit(KNOT_RRTYPE_DS, s); } + goto st1496; +tr1442: + { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1413: - { window_add_bit(KNOT_RRTYPE_DS, s); } + goto st1496; +tr1448: + { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1415: - { window_add_bit(KNOT_RRTYPE_DS, s); } + goto st1496; +tr1450: + { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1422: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } - goto st389; -tr1423: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + goto st1496; +tr1455: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st389; -tr1424: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1425: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + goto st1496; +tr1459: + { type_num(KNOT_RRTYPE_URI, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1435: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } - goto st389; -tr1436: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } + goto st1496; +tr1465: + { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1437: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } + goto st1496; +tr1471: + { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st389; -tr1438: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } - { - s->line_counter++; + goto st1496; +st1496: + if ( ++p == pe ) + goto _test_eof1496; +case 1496: + goto st0; +st390: + if ( ++p == pe ) + goto _test_eof390; +case 390: + switch( (*p) ) { + case 65: goto st391; + case 97: goto st391; } - goto st389; -tr1444: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } - goto st389; -tr1445: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st391: + if ( ++p == pe ) + goto _test_eof391; +case 391: + switch( (*p) ) { + case 65: goto st392; + case 97: goto st392; } - goto st389; -tr1446: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st392: + if ( ++p == pe ) + goto _test_eof392; +case 392: + switch( (*p) ) { + case 32: goto tr1273; + case 59: goto tr1273; } - goto st389; -tr1447: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1273; + } else if ( (*p) >= 9 ) + goto tr1273; + goto tr1248; +st393: + if ( ++p == pe ) + goto _test_eof393; +case 393: + switch( (*p) ) { + case 83: goto st394; + case 115: goto st394; } - goto st389; -tr1457: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } - goto st389; -tr1458: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st394: + if ( ++p == pe ) + goto _test_eof394; +case 394: + switch( (*p) ) { + case 68: goto st395; + case 100: goto st395; } - goto st389; -tr1459: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st395: + if ( ++p == pe ) + goto _test_eof395; +case 395: + switch( (*p) ) { + case 66: goto st396; + case 98: goto st396; } - goto st389; -tr1460: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } - { - s->line_counter++; + goto tr1248; +st396: + if ( ++p == pe ) + goto _test_eof396; +case 396: + switch( (*p) ) { + case 32: goto tr1277; + case 59: goto tr1277; } - goto st389; -tr1468: - { window_add_bit(KNOT_RRTYPE_HTTPS, s); } - goto st389; -tr1469: - { window_add_bit(KNOT_RRTYPE_HTTPS, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1277; + } else if ( (*p) >= 9 ) + goto tr1277; + goto tr1248; +st397: + if ( ++p == pe ) + goto _test_eof397; +case 397: + switch( (*p) ) { + case 76: goto st398; + case 108: goto st398; } - goto st389; -tr1470: - { window_add_bit(KNOT_RRTYPE_HTTPS, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st398: + if ( ++p == pe ) + goto _test_eof398; +case 398: + switch( (*p) ) { + case 32: goto tr1279; + case 59: goto tr1279; } - goto st389; -tr1471: - { window_add_bit(KNOT_RRTYPE_HTTPS, s); } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1279; + } else if ( (*p) >= 9 ) + goto tr1279; + goto tr1248; +st399: + if ( ++p == pe ) + goto _test_eof399; +case 399: + switch( (*p) ) { + case 65: goto st400; + case 68: goto st402; + case 69: goto st409; + case 78: goto st412; + case 83: goto st416; + case 97: goto st400; + case 100: goto st402; + case 101: goto st409; + case 110: goto st412; + case 115: goto st416; } - goto st389; -tr1483: - { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } - goto st389; -tr1484: - { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st400: + if ( ++p == pe ) + goto _test_eof400; +case 400: + switch( (*p) ) { + case 65: goto st401; + case 97: goto st401; } - goto st389; -tr1485: - { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st401: + if ( ++p == pe ) + goto _test_eof401; +case 401: + switch( (*p) ) { + case 32: goto tr1286; + case 59: goto tr1286; } - goto st389; -tr1486: - { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1286; + } else if ( (*p) >= 9 ) + goto tr1286; + goto tr1248; +st402: + if ( ++p == pe ) + goto _test_eof402; +case 402: + switch( (*p) ) { + case 78: goto st403; + case 83: goto st408; + case 110: goto st403; + case 115: goto st408; } - goto st389; -tr1494: - { window_add_bit(KNOT_RRTYPE_KEY, s); } - goto st389; -tr1495: - { window_add_bit(KNOT_RRTYPE_KEY, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st403: + if ( ++p == pe ) + goto _test_eof403; +case 403: + switch( (*p) ) { + case 83: goto st404; + case 115: goto st404; } - goto st389; -tr1496: - { window_add_bit(KNOT_RRTYPE_KEY, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st404: + if ( ++p == pe ) + goto _test_eof404; +case 404: + switch( (*p) ) { + case 75: goto st405; + case 107: goto st405; } - goto st389; -tr1497: - { window_add_bit(KNOT_RRTYPE_KEY, s); } - { - s->line_counter++; + goto tr1248; +st405: + if ( ++p == pe ) + goto _test_eof405; +case 405: + switch( (*p) ) { + case 69: goto st406; + case 101: goto st406; } - goto st389; -tr1502: - { window_add_bit(KNOT_RRTYPE_KX, s); } - goto st389; -tr1503: - { window_add_bit(KNOT_RRTYPE_KX, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st406: + if ( ++p == pe ) + goto _test_eof406; +case 406: + switch( (*p) ) { + case 89: goto st407; + case 121: goto st407; } - goto st389; -tr1504: - { window_add_bit(KNOT_RRTYPE_KX, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st407: + if ( ++p == pe ) + goto _test_eof407; +case 407: + switch( (*p) ) { + case 32: goto tr1293; + case 59: goto tr1293; } - goto st389; -tr1505: - { window_add_bit(KNOT_RRTYPE_KX, s); } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1293; + } else if ( (*p) >= 9 ) + goto tr1293; + goto tr1248; +st408: + if ( ++p == pe ) + goto _test_eof408; +case 408: + switch( (*p) ) { + case 32: goto tr1294; + case 59: goto tr1294; } - goto st389; -tr1515: - { window_add_bit(KNOT_RRTYPE_L32, s); } - goto st389; -tr1516: - { window_add_bit(KNOT_RRTYPE_L32, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1294; + } else if ( (*p) >= 9 ) + goto tr1294; + goto tr1248; +st409: + if ( ++p == pe ) + goto _test_eof409; +case 409: + switch( (*p) ) { + case 82: goto st410; + case 114: goto st410; } - goto st389; -tr1517: - { window_add_bit(KNOT_RRTYPE_L32, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st410: + if ( ++p == pe ) + goto _test_eof410; +case 410: + switch( (*p) ) { + case 84: goto st411; + case 116: goto st411; } - goto st389; -tr1518: - { window_add_bit(KNOT_RRTYPE_L32, s); } - { - s->line_counter++; + goto tr1248; +st411: + if ( ++p == pe ) + goto _test_eof411; +case 411: + switch( (*p) ) { + case 32: goto tr1297; + case 59: goto tr1297; } - goto st389; -tr1524: - { window_add_bit(KNOT_RRTYPE_L64, s); } - goto st389; -tr1525: - { window_add_bit(KNOT_RRTYPE_L64, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1297; + } else if ( (*p) >= 9 ) + goto tr1297; + goto tr1248; +st412: + if ( ++p == pe ) + goto _test_eof412; +case 412: + switch( (*p) ) { + case 65: goto st413; + case 97: goto st413; } - goto st389; -tr1526: - { window_add_bit(KNOT_RRTYPE_L64, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st413: + if ( ++p == pe ) + goto _test_eof413; +case 413: + switch( (*p) ) { + case 77: goto st414; + case 109: goto st414; } - goto st389; -tr1527: - { window_add_bit(KNOT_RRTYPE_L64, s); } - { - s->line_counter++; + goto tr1248; +st414: + if ( ++p == pe ) + goto _test_eof414; +case 414: + switch( (*p) ) { + case 69: goto st415; + case 101: goto st415; } - goto st389; -tr1533: - { window_add_bit(KNOT_RRTYPE_LOC, s); } - goto st389; -tr1534: - { window_add_bit(KNOT_RRTYPE_LOC, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st415: + if ( ++p == pe ) + goto _test_eof415; +case 415: + switch( (*p) ) { + case 32: goto tr1301; + case 59: goto tr1301; } - goto st389; -tr1535: - { window_add_bit(KNOT_RRTYPE_LOC, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1301; + } else if ( (*p) >= 9 ) + goto tr1301; + goto tr1248; +st416: + if ( ++p == pe ) + goto _test_eof416; +case 416: + switch( (*p) ) { + case 89: goto st417; + case 121: goto st417; } - goto st389; -tr1536: - { window_add_bit(KNOT_RRTYPE_LOC, s); } - { - s->line_counter++; + goto tr1248; +st417: + if ( ++p == pe ) + goto _test_eof417; +case 417: + switch( (*p) ) { + case 78: goto st418; + case 110: goto st418; } - goto st389; -tr1541: - { window_add_bit(KNOT_RRTYPE_LP, s); } - goto st389; -tr1542: - { window_add_bit(KNOT_RRTYPE_LP, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st418: + if ( ++p == pe ) + goto _test_eof418; +case 418: + switch( (*p) ) { + case 67: goto st419; + case 99: goto st419; } - goto st389; -tr1543: - { window_add_bit(KNOT_RRTYPE_LP, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st419: + if ( ++p == pe ) + goto _test_eof419; +case 419: + switch( (*p) ) { + case 32: goto tr1305; + case 59: goto tr1305; } - goto st389; -tr1544: - { window_add_bit(KNOT_RRTYPE_LP, s); } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1305; + } else if ( (*p) >= 9 ) + goto tr1305; + goto tr1248; +st420: + if ( ++p == pe ) + goto _test_eof420; +case 420: + switch( (*p) ) { + case 72: goto st421; + case 78: goto st425; + case 83: goto st433; + case 104: goto st421; + case 110: goto st425; + case 115: goto st433; } - goto st389; -tr1554: - { window_add_bit(KNOT_RRTYPE_MINFO, s); } - goto st389; -tr1555: - { window_add_bit(KNOT_RRTYPE_MINFO, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st389; -tr1556: - { window_add_bit(KNOT_RRTYPE_MINFO, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st421: + if ( ++p == pe ) + goto _test_eof421; +case 421: + switch( (*p) ) { + case 67: goto st422; + case 99: goto st422; } - goto st389; -tr1557: - { window_add_bit(KNOT_RRTYPE_MINFO, s); } - { - s->line_counter++; + goto tr1248; +st422: + if ( ++p == pe ) + goto _test_eof422; +case 422: + switch( (*p) ) { + case 73: goto st423; + case 105: goto st423; } - goto st389; -tr1562: - { window_add_bit(KNOT_RRTYPE_MX, s); } - goto st389; -tr1563: - { window_add_bit(KNOT_RRTYPE_MX, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st423: + if ( ++p == pe ) + goto _test_eof423; +case 423: + switch( (*p) ) { + case 68: goto st424; + case 100: goto st424; } - goto st389; -tr1564: - { window_add_bit(KNOT_RRTYPE_MX, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st424: + if ( ++p == pe ) + goto _test_eof424; +case 424: + switch( (*p) ) { + case 32: goto tr1312; + case 59: goto tr1312; } - goto st389; -tr1565: - { window_add_bit(KNOT_RRTYPE_MX, s); } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1312; + } else if ( (*p) >= 9 ) + goto tr1312; + goto tr1248; +st425: + if ( ++p == pe ) + goto _test_eof425; +case 425: + switch( (*p) ) { + case 65: goto st426; + case 83: goto st429; + case 97: goto st426; + case 115: goto st429; } - goto st389; -tr1576: - { window_add_bit(KNOT_RRTYPE_NAPTR, s); } - goto st389; -tr1577: - { window_add_bit(KNOT_RRTYPE_NAPTR, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st426: + if ( ++p == pe ) + goto _test_eof426; +case 426: + switch( (*p) ) { + case 77: goto st427; + case 109: goto st427; } - goto st389; -tr1578: - { window_add_bit(KNOT_RRTYPE_NAPTR, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st427: + if ( ++p == pe ) + goto _test_eof427; +case 427: + switch( (*p) ) { + case 69: goto st428; + case 101: goto st428; } - goto st389; -tr1579: - { window_add_bit(KNOT_RRTYPE_NAPTR, s); } - { - s->line_counter++; + goto tr1248; +st428: + if ( ++p == pe ) + goto _test_eof428; +case 428: + switch( (*p) ) { + case 32: goto tr1317; + case 59: goto tr1317; } - goto st389; -tr1585: - { window_add_bit(KNOT_RRTYPE_NID, s); } - goto st389; -tr1586: - { window_add_bit(KNOT_RRTYPE_NID, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1317; + } else if ( (*p) >= 9 ) + goto tr1317; + goto tr1248; +st429: + if ( ++p == pe ) + goto _test_eof429; +case 429: + switch( (*p) ) { + case 75: goto st430; + case 107: goto st430; } - goto st389; -tr1587: - { window_add_bit(KNOT_RRTYPE_NID, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st430: + if ( ++p == pe ) + goto _test_eof430; +case 430: + switch( (*p) ) { + case 69: goto st431; + case 101: goto st431; } - goto st389; -tr1588: - { window_add_bit(KNOT_RRTYPE_NID, s); } - { - s->line_counter++; + goto tr1248; +st431: + if ( ++p == pe ) + goto _test_eof431; +case 431: + switch( (*p) ) { + case 89: goto st432; + case 121: goto st432; } - goto st389; -tr1593: - { window_add_bit(KNOT_RRTYPE_NS, s); } - goto st389; -tr1594: - { window_add_bit(KNOT_RRTYPE_NS, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st432: + if ( ++p == pe ) + goto _test_eof432; +case 432: + switch( (*p) ) { + case 32: goto tr1321; + case 59: goto tr1321; } - goto st389; -tr1595: - { window_add_bit(KNOT_RRTYPE_NS, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1321; + } else if ( (*p) >= 9 ) + goto tr1321; + goto tr1248; +st433: + if ( ++p == pe ) + goto _test_eof433; +case 433: + switch( (*p) ) { + case 32: goto tr1322; + case 59: goto tr1322; + case 89: goto st434; + case 121: goto st434; } - goto st389; -tr1597: - { window_add_bit(KNOT_RRTYPE_NS, s); } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1322; + } else if ( (*p) >= 9 ) + goto tr1322; + goto tr1248; +st434: + if ( ++p == pe ) + goto _test_eof434; +case 434: + switch( (*p) ) { + case 78: goto st435; + case 110: goto st435; } - goto st389; -tr1603: - { window_add_bit(KNOT_RRTYPE_NSEC, s); } - goto st389; -tr1604: - { window_add_bit(KNOT_RRTYPE_NSEC, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st435: + if ( ++p == pe ) + goto _test_eof435; +case 435: + switch( (*p) ) { + case 67: goto st436; + case 99: goto st436; } - goto st389; -tr1605: - { window_add_bit(KNOT_RRTYPE_NSEC, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st436: + if ( ++p == pe ) + goto _test_eof436; +case 436: + switch( (*p) ) { + case 32: goto tr1326; + case 59: goto tr1326; } - goto st389; -tr1607: - { window_add_bit(KNOT_RRTYPE_NSEC, s); } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1326; + } else if ( (*p) >= 9 ) + goto tr1326; + goto tr1248; +st437: + if ( ++p == pe ) + goto _test_eof437; +case 437: + switch( (*p) ) { + case 85: goto st438; + case 117: goto st438; } - goto st389; -tr1612: - { window_add_bit(KNOT_RRTYPE_NSEC3, s); } - goto st389; -tr1613: - { window_add_bit(KNOT_RRTYPE_NSEC3, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st438: + if ( ++p == pe ) + goto _test_eof438; +case 438: + switch( (*p) ) { + case 73: goto st439; + case 105: goto st439; } - goto st389; -tr1614: - { window_add_bit(KNOT_RRTYPE_NSEC3, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st439: + if ( ++p == pe ) + goto _test_eof439; +case 439: + switch( (*p) ) { + case 52: goto st440; + case 54: goto st442; } - goto st389; -tr1616: - { window_add_bit(KNOT_RRTYPE_NSEC3, s); } - { - s->line_counter++; + goto tr1248; +st440: + if ( ++p == pe ) + goto _test_eof440; +case 440: + if ( (*p) == 56 ) + goto st441; + goto tr1248; +st441: + if ( ++p == pe ) + goto _test_eof441; +case 441: + switch( (*p) ) { + case 32: goto tr1332; + case 59: goto tr1332; } - goto st389; -tr1625: - { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } - goto st389; -tr1626: - { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1332; + } else if ( (*p) >= 9 ) + goto tr1332; + goto tr1248; +st442: + if ( ++p == pe ) + goto _test_eof442; +case 442: + if ( (*p) == 52 ) + goto st443; + goto tr1248; +st443: + if ( ++p == pe ) + goto _test_eof443; +case 443: + switch( (*p) ) { + case 32: goto tr1334; + case 59: goto tr1334; } - goto st389; -tr1627: - { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1334; + } else if ( (*p) >= 9 ) + goto tr1334; + goto tr1248; +st444: + if ( ++p == pe ) + goto _test_eof444; +case 444: + switch( (*p) ) { + case 73: goto st445; + case 84: goto st449; + case 105: goto st445; + case 116: goto st449; } - goto st389; -tr1628: - { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } - { - s->line_counter++; + goto tr1248; +st445: + if ( ++p == pe ) + goto _test_eof445; +case 445: + switch( (*p) ) { + case 78: goto st446; + case 110: goto st446; } - goto st389; -tr1642: - { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } - goto st389; -tr1643: - { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st446: + if ( ++p == pe ) + goto _test_eof446; +case 446: + switch( (*p) ) { + case 70: goto st447; + case 102: goto st447; } - goto st389; -tr1644: - { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st447: + if ( ++p == pe ) + goto _test_eof447; +case 447: + switch( (*p) ) { + case 79: goto st448; + case 111: goto st448; } - goto st389; -tr1645: - { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } - { - s->line_counter++; + goto tr1248; +st448: + if ( ++p == pe ) + goto _test_eof448; +case 448: + switch( (*p) ) { + case 32: goto tr1340; + case 59: goto tr1340; } - goto st389; -tr1652: - { window_add_bit(KNOT_RRTYPE_PTR, s); } - goto st389; -tr1653: - { window_add_bit(KNOT_RRTYPE_PTR, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1340; + } else if ( (*p) >= 9 ) + goto tr1340; + goto tr1248; +st449: + if ( ++p == pe ) + goto _test_eof449; +case 449: + switch( (*p) ) { + case 84: goto st450; + case 116: goto st450; } - goto st389; -tr1654: - { window_add_bit(KNOT_RRTYPE_PTR, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st450: + if ( ++p == pe ) + goto _test_eof450; +case 450: + switch( (*p) ) { + case 80: goto st451; + case 112: goto st451; } - goto st389; -tr1655: - { window_add_bit(KNOT_RRTYPE_PTR, s); } - { - s->line_counter++; + goto tr1248; +st451: + if ( ++p == pe ) + goto _test_eof451; +case 451: + switch( (*p) ) { + case 83: goto st452; + case 115: goto st452; } - goto st389; -tr1663: - { window_add_bit(KNOT_RRTYPE_RP, s); } - goto st389; -tr1664: - { window_add_bit(KNOT_RRTYPE_RP, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st452: + if ( ++p == pe ) + goto _test_eof452; +case 452: + switch( (*p) ) { + case 32: goto tr1344; + case 59: goto tr1344; } - goto st389; -tr1665: - { window_add_bit(KNOT_RRTYPE_RP, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1344; + } else if ( (*p) >= 9 ) + goto tr1344; + goto tr1248; +st453: + if ( ++p == pe ) + goto _test_eof453; +case 453: + switch( (*p) ) { + case 80: goto st454; + case 112: goto st454; } - goto st389; -tr1666: - { window_add_bit(KNOT_RRTYPE_RP, s); } - { - s->line_counter++; + goto tr1248; +st454: + if ( ++p == pe ) + goto _test_eof454; +case 454: + switch( (*p) ) { + case 83: goto st455; + case 115: goto st455; } - goto st389; -tr1674: - { window_add_bit(KNOT_RRTYPE_RRSIG, s); } - goto st389; -tr1675: - { window_add_bit(KNOT_RRTYPE_RRSIG, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st455: + if ( ++p == pe ) + goto _test_eof455; +case 455: + switch( (*p) ) { + case 69: goto st456; + case 101: goto st456; } - goto st389; -tr1676: - { window_add_bit(KNOT_RRTYPE_RRSIG, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st456: + if ( ++p == pe ) + goto _test_eof456; +case 456: + switch( (*p) ) { + case 67: goto st457; + case 99: goto st457; } - goto st389; -tr1677: - { window_add_bit(KNOT_RRTYPE_RRSIG, s); } - { - s->line_counter++; + goto tr1248; +st457: + if ( ++p == pe ) + goto _test_eof457; +case 457: + switch( (*p) ) { + case 75: goto st458; + case 107: goto st458; } - goto st389; -tr1682: - { window_add_bit(KNOT_RRTYPE_RT, s); } - goto st389; -tr1683: - { window_add_bit(KNOT_RRTYPE_RT, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st458: + if ( ++p == pe ) + goto _test_eof458; +case 458: + switch( (*p) ) { + case 69: goto st459; + case 101: goto st459; } - goto st389; -tr1684: - { window_add_bit(KNOT_RRTYPE_RT, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st459: + if ( ++p == pe ) + goto _test_eof459; +case 459: + switch( (*p) ) { + case 89: goto st460; + case 121: goto st460; } - goto st389; -tr1685: - { window_add_bit(KNOT_RRTYPE_RT, s); } - { - s->line_counter++; + goto tr1248; +st460: + if ( ++p == pe ) + goto _test_eof460; +case 460: + switch( (*p) ) { + case 32: goto tr1352; + case 59: goto tr1352; } - goto st389; -tr1700: - { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } - goto st389; -tr1701: - { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1352; + } else if ( (*p) >= 9 ) + goto tr1352; + goto tr1248; +st461: + if ( ++p == pe ) + goto _test_eof461; +case 461: + switch( (*p) ) { + case 69: goto st462; + case 88: goto st464; + case 101: goto st462; + case 120: goto st464; } - goto st389; -tr1702: - { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st462: + if ( ++p == pe ) + goto _test_eof462; +case 462: + switch( (*p) ) { + case 89: goto st463; + case 121: goto st463; } - goto st389; -tr1703: - { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } - { - s->line_counter++; + goto tr1248; +st463: + if ( ++p == pe ) + goto _test_eof463; +case 463: + switch( (*p) ) { + case 32: goto tr1356; + case 59: goto tr1356; } - goto st389; -tr1709: - { window_add_bit(KNOT_RRTYPE_SOA, s); } - goto st389; -tr1710: - { window_add_bit(KNOT_RRTYPE_SOA, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1356; + } else if ( (*p) >= 9 ) + goto tr1356; + goto tr1248; +st464: + if ( ++p == pe ) + goto _test_eof464; +case 464: + switch( (*p) ) { + case 32: goto tr1357; + case 59: goto tr1357; } - goto st389; -tr1711: - { window_add_bit(KNOT_RRTYPE_SOA, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1357; + } else if ( (*p) >= 9 ) + goto tr1357; + goto tr1248; +st465: + if ( ++p == pe ) + goto _test_eof465; +case 465: + switch( (*p) ) { + case 51: goto st466; + case 54: goto st468; + case 79: goto st470; + case 80: goto st472; + case 111: goto st470; + case 112: goto st472; } - goto st389; -tr1712: - { window_add_bit(KNOT_RRTYPE_SOA, s); } - { - s->line_counter++; + goto tr1248; +st466: + if ( ++p == pe ) + goto _test_eof466; +case 466: + if ( (*p) == 50 ) + goto st467; + goto tr1248; +st467: + if ( ++p == pe ) + goto _test_eof467; +case 467: + switch( (*p) ) { + case 32: goto tr1363; + case 59: goto tr1363; } - goto st389; -tr1718: - { window_add_bit(KNOT_RRTYPE_SPF, s); } - goto st389; -tr1719: - { window_add_bit(KNOT_RRTYPE_SPF, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1363; + } else if ( (*p) >= 9 ) + goto tr1363; + goto tr1248; +st468: + if ( ++p == pe ) + goto _test_eof468; +case 468: + if ( (*p) == 52 ) + goto st469; + goto tr1248; +st469: + if ( ++p == pe ) + goto _test_eof469; +case 469: + switch( (*p) ) { + case 32: goto tr1365; + case 59: goto tr1365; } - goto st389; -tr1720: - { window_add_bit(KNOT_RRTYPE_SPF, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1365; + } else if ( (*p) >= 9 ) + goto tr1365; + goto tr1248; +st470: + if ( ++p == pe ) + goto _test_eof470; +case 470: + switch( (*p) ) { + case 67: goto st471; + case 99: goto st471; } - goto st389; -tr1721: - { window_add_bit(KNOT_RRTYPE_SPF, s); } - { - s->line_counter++; + goto tr1248; +st471: + if ( ++p == pe ) + goto _test_eof471; +case 471: + switch( (*p) ) { + case 32: goto tr1367; + case 59: goto tr1367; } - goto st389; -tr1727: - { window_add_bit(KNOT_RRTYPE_SRV, s); } - goto st389; -tr1728: - { window_add_bit(KNOT_RRTYPE_SRV, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1367; + } else if ( (*p) >= 9 ) + goto tr1367; + goto tr1248; +st472: + if ( ++p == pe ) + goto _test_eof472; +case 472: + switch( (*p) ) { + case 32: goto tr1368; + case 59: goto tr1368; } - goto st389; -tr1729: - { window_add_bit(KNOT_RRTYPE_SRV, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1368; + } else if ( (*p) >= 9 ) + goto tr1368; + goto tr1248; +st473: + if ( ++p == pe ) + goto _test_eof473; +case 473: + switch( (*p) ) { + case 73: goto st474; + case 88: goto st478; + case 105: goto st474; + case 120: goto st478; } - goto st389; -tr1730: - { window_add_bit(KNOT_RRTYPE_SRV, s); } - { - s->line_counter++; + goto tr1248; +st474: + if ( ++p == pe ) + goto _test_eof474; +case 474: + switch( (*p) ) { + case 78: goto st475; + case 110: goto st475; } - goto st389; -tr1738: - { window_add_bit(KNOT_RRTYPE_SSHFP, s); } - goto st389; -tr1739: - { window_add_bit(KNOT_RRTYPE_SSHFP, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st475: + if ( ++p == pe ) + goto _test_eof475; +case 475: + switch( (*p) ) { + case 70: goto st476; + case 102: goto st476; } - goto st389; -tr1740: - { window_add_bit(KNOT_RRTYPE_SSHFP, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st476: + if ( ++p == pe ) + goto _test_eof476; +case 476: + switch( (*p) ) { + case 79: goto st477; + case 111: goto st477; } - goto st389; -tr1741: - { window_add_bit(KNOT_RRTYPE_SSHFP, s); } - { - s->line_counter++; + goto tr1248; +st477: + if ( ++p == pe ) + goto _test_eof477; +case 477: + switch( (*p) ) { + case 32: goto tr1374; + case 59: goto tr1374; } - goto st389; -tr1748: - { window_add_bit(KNOT_RRTYPE_SVCB, s); } - goto st389; -tr1749: - { window_add_bit(KNOT_RRTYPE_SVCB, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1374; + } else if ( (*p) >= 9 ) + goto tr1374; + goto tr1248; +st478: + if ( ++p == pe ) + goto _test_eof478; +case 478: + switch( (*p) ) { + case 32: goto tr1375; + case 59: goto tr1375; } - goto st389; -tr1750: - { window_add_bit(KNOT_RRTYPE_SVCB, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1375; + } else if ( (*p) >= 9 ) + goto tr1375; + goto tr1248; +st479: + if ( ++p == pe ) + goto _test_eof479; +case 479: + switch( (*p) ) { + case 65: goto st480; + case 73: goto st484; + case 83: goto st486; + case 97: goto st480; + case 105: goto st484; + case 115: goto st486; } - goto st389; -tr1751: - { window_add_bit(KNOT_RRTYPE_SVCB, s); } - { - s->line_counter++; + goto tr1248; +st480: + if ( ++p == pe ) + goto _test_eof480; +case 480: + switch( (*p) ) { + case 80: goto st481; + case 112: goto st481; } - goto st389; -tr1761: - { window_add_bit(KNOT_RRTYPE_TLSA, s); } - goto st389; -tr1762: - { window_add_bit(KNOT_RRTYPE_TLSA, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st481: + if ( ++p == pe ) + goto _test_eof481; +case 481: + switch( (*p) ) { + case 84: goto st482; + case 116: goto st482; } - goto st389; -tr1763: - { window_add_bit(KNOT_RRTYPE_TLSA, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st482: + if ( ++p == pe ) + goto _test_eof482; +case 482: + switch( (*p) ) { + case 82: goto st483; + case 114: goto st483; } - goto st389; -tr1764: - { window_add_bit(KNOT_RRTYPE_TLSA, s); } - { - s->line_counter++; + goto tr1248; +st483: + if ( ++p == pe ) + goto _test_eof483; +case 483: + switch( (*p) ) { + case 32: goto tr1382; + case 59: goto tr1382; } - goto st389; -tr1770: - { window_add_bit(KNOT_RRTYPE_TXT, s); } - goto st389; -tr1771: - { window_add_bit(KNOT_RRTYPE_TXT, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1382; + } else if ( (*p) >= 9 ) + goto tr1382; + goto tr1248; +st484: + if ( ++p == pe ) + goto _test_eof484; +case 484: + switch( (*p) ) { + case 68: goto st485; + case 100: goto st485; } - goto st389; -tr1772: - { window_add_bit(KNOT_RRTYPE_TXT, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st485: + if ( ++p == pe ) + goto _test_eof485; +case 485: + switch( (*p) ) { + case 32: goto tr1384; + case 59: goto tr1384; } - goto st389; -tr1773: - { window_add_bit(KNOT_RRTYPE_TXT, s); } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1384; + } else if ( (*p) >= 9 ) + goto tr1384; + goto tr1248; +st486: + if ( ++p == pe ) + goto _test_eof486; +case 486: + switch( (*p) ) { + case 32: goto tr1385; + case 59: goto tr1385; + case 69: goto st487; + case 101: goto st487; } - goto st389; -tr1781: - { - if (s->number64 <= UINT16_MAX) { - window_add_bit(s->number64, s); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1385; + } else if ( (*p) >= 9 ) + goto tr1385; + goto tr1248; +st487: + if ( ++p == pe ) + goto _test_eof487; +case 487: + switch( (*p) ) { + case 67: goto st488; + case 99: goto st488; } - goto st389; -tr1782: - { - if (s->number64 <= UINT16_MAX) { - window_add_bit(s->number64, s); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + goto tr1248; +st488: + if ( ++p == pe ) + goto _test_eof488; +case 488: + switch( (*p) ) { + case 32: goto tr1388; + case 51: goto st489; + case 59: goto tr1388; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1388; + } else if ( (*p) >= 9 ) + goto tr1388; + goto tr1248; +st489: + if ( ++p == pe ) + goto _test_eof489; +case 489: + switch( (*p) ) { + case 32: goto tr1390; + case 59: goto tr1390; + case 80: goto st490; + case 112: goto st490; } - goto st389; -tr1783: - { - if (s->number64 <= UINT16_MAX) { - window_add_bit(s->number64, s); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1390; + } else if ( (*p) >= 9 ) + goto tr1390; + goto tr1248; +st490: + if ( ++p == pe ) + goto _test_eof490; +case 490: + switch( (*p) ) { + case 65: goto st491; + case 97: goto st491; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st491: + if ( ++p == pe ) + goto _test_eof491; +case 491: + switch( (*p) ) { + case 82: goto st492; + case 114: goto st492; } - goto st389; -tr1785: - { - if (s->number64 <= UINT16_MAX) { - window_add_bit(s->number64, s); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + goto tr1248; +st492: + if ( ++p == pe ) + goto _test_eof492; +case 492: + switch( (*p) ) { + case 65: goto st493; + case 97: goto st493; } - { - s->line_counter++; + goto tr1248; +st493: + if ( ++p == pe ) + goto _test_eof493; +case 493: + switch( (*p) ) { + case 77: goto st494; + case 109: goto st494; } - goto st389; -tr1792: - { window_add_bit(KNOT_RRTYPE_URI, s); } - goto st389; -tr1793: - { window_add_bit(KNOT_RRTYPE_URI, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st494: + if ( ++p == pe ) + goto _test_eof494; +case 494: + switch( (*p) ) { + case 32: goto tr1396; + case 59: goto tr1396; } - goto st389; -tr1794: - { window_add_bit(KNOT_RRTYPE_URI, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1396; + } else if ( (*p) >= 9 ) + goto tr1396; + goto tr1248; +st495: + if ( ++p == pe ) + goto _test_eof495; +case 495: + switch( (*p) ) { + case 80: goto st496; + case 112: goto st496; } - goto st389; -tr1795: - { window_add_bit(KNOT_RRTYPE_URI, s); } - { - s->line_counter++; + goto tr1248; +st496: + if ( ++p == pe ) + goto _test_eof496; +case 496: + switch( (*p) ) { + case 69: goto st497; + case 101: goto st497; } - goto st389; -tr1805: - { window_add_bit(KNOT_RRTYPE_WALLET, s); } - goto st389; -tr1806: - { window_add_bit(KNOT_RRTYPE_WALLET, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st497: + if ( ++p == pe ) + goto _test_eof497; +case 497: + switch( (*p) ) { + case 78: goto st498; + case 110: goto st498; } - goto st389; -tr1807: - { window_add_bit(KNOT_RRTYPE_WALLET, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st498: + if ( ++p == pe ) + goto _test_eof498; +case 498: + switch( (*p) ) { + case 80: goto st499; + case 112: goto st499; } - goto st389; -tr1808: - { window_add_bit(KNOT_RRTYPE_WALLET, s); } - { - s->line_counter++; + goto tr1248; +st499: + if ( ++p == pe ) + goto _test_eof499; +case 499: + switch( (*p) ) { + case 71: goto st500; + case 103: goto st500; } - goto st389; -tr1818: - { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } - goto st389; -tr1819: - { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st500: + if ( ++p == pe ) + goto _test_eof500; +case 500: + switch( (*p) ) { + case 80: goto st501; + case 112: goto st501; } - goto st389; -tr1820: - { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st501: + if ( ++p == pe ) + goto _test_eof501; +case 501: + switch( (*p) ) { + case 75: goto st502; + case 107: goto st502; } - goto st389; -tr1821: - { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } - { - s->line_counter++; + goto tr1248; +st502: + if ( ++p == pe ) + goto _test_eof502; +case 502: + switch( (*p) ) { + case 69: goto st503; + case 101: goto st503; } - goto st389; -tr1829: - { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - goto st389; -tr1830: - { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st503: + if ( ++p == pe ) + goto _test_eof503; +case 503: + switch( (*p) ) { + case 89: goto st504; + case 121: goto st504; } - goto st389; -tr1831: - { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st504: + if ( ++p == pe ) + goto _test_eof504; +case 504: + switch( (*p) ) { + case 32: goto tr1406; + case 59: goto tr1406; } - goto st389; -tr1832: - { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1406; + } else if ( (*p) >= 9 ) + goto tr1406; + goto tr1248; +st505: + if ( ++p == pe ) + goto _test_eof505; +case 505: + switch( (*p) ) { + case 84: goto st506; + case 116: goto st506; } - goto st389; -tr1838: - { window_add_bit(KNOT_RRTYPE_APL, s); } - goto st389; -tr1839: - { window_add_bit(KNOT_RRTYPE_APL, s); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1248; +st506: + if ( ++p == pe ) + goto _test_eof506; +case 506: + switch( (*p) ) { + case 82: goto st507; + case 114: goto st507; } - goto st389; -tr1840: - { window_add_bit(KNOT_RRTYPE_APL, s); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1248; +st507: + if ( ++p == pe ) + goto _test_eof507; +case 507: + switch( (*p) ) { + case 32: goto tr1409; + case 59: goto tr1409; } - goto st389; -tr1841: - { window_add_bit(KNOT_RRTYPE_APL, s); } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1409; + } else if ( (*p) >= 9 ) + goto tr1409; + goto tr1248; +st508: + if ( ++p == pe ) + goto _test_eof508; +case 508: + switch( (*p) ) { + case 80: goto st509; + case 82: goto st510; + case 84: goto st514; + case 112: goto st509; + case 114: goto st510; + case 116: goto st514; } - goto st389; -st389: + goto tr1248; +st509: if ( ++p == pe ) - goto _test_eof389; -case 389: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + goto _test_eof509; +case 509: + switch( (*p) ) { + case 32: goto tr1413; + case 59: goto tr1413; } - switch( _widec ) { - case 9: goto st389; - case 32: goto st389; - case 40: goto tr1258; - case 41: goto tr1259; - case 65: goto st390; - case 67: goto st395; - case 68: goto st416; - case 69: goto st433; - case 72: goto st440; - case 73: goto st449; - case 75: goto st457; - case 76: goto st461; - case 77: goto st469; - case 78: goto st475; - case 79: goto st491; - case 80: goto st501; - case 82: goto st504; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1413; + } else if ( (*p) >= 9 ) + goto tr1413; + goto tr1248; +st510: + if ( ++p == pe ) + goto _test_eof510; +case 510: + switch( (*p) ) { case 83: goto st511; - case 84: goto st530; - case 85: goto st540; - case 87: goto st543; - case 90: goto st549; - case 97: goto st390; - case 99: goto st395; - case 100: goto st416; - case 101: goto st433; - case 104: goto st440; - case 105: goto st449; - case 107: goto st457; - case 108: goto st461; - case 109: goto st469; - case 110: goto st475; - case 111: goto st491; - case 112: goto st501; - case 114: goto st504; case 115: goto st511; - case 116: goto st530; - case 117: goto st540; - case 119: goto st543; - case 122: goto st549; - case 3082: goto tr1278; - case 3131: goto tr1279; - case 3338: goto tr1280; - case 3387: goto tr1280; - case 3594: goto tr1281; - case 3643: goto tr1282; } goto tr1248; -st390: +st511: if ( ++p == pe ) - goto _test_eof390; -case 390: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1283; - case 32: goto tr1283; - case 40: goto tr1284; - case 41: goto tr1285; - case 65: goto st391; - case 70: goto st555; - case 80: goto st559; - case 97: goto st391; - case 102: goto st555; - case 112: goto st559; - case 3082: goto tr1289; - case 3131: goto tr1290; - case 3338: goto tr1291; - case 3387: goto tr1291; - case 3594: goto tr1292; - case 3643: goto tr1293; + goto _test_eof511; +case 511: + switch( (*p) ) { + case 73: goto st512; + case 105: goto st512; } goto tr1248; -st391: +st512: if ( ++p == pe ) - goto _test_eof391; -case 391: + goto _test_eof512; +case 512: switch( (*p) ) { - case 65: goto st392; - case 97: goto st392; + case 71: goto st513; + case 103: goto st513; } goto tr1248; -st392: +st513: if ( ++p == pe ) - goto _test_eof392; -case 392: + goto _test_eof513; +case 513: switch( (*p) ) { - case 65: goto st393; - case 97: goto st393; + case 32: goto tr1417; + case 59: goto tr1417; } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1417; + } else if ( (*p) >= 9 ) + goto tr1417; goto tr1248; -st393: +st514: if ( ++p == pe ) - goto _test_eof393; -case 393: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1296; - case 32: goto tr1296; - case 40: goto tr1297; - case 41: goto tr1298; - case 3082: goto tr1299; - case 3131: goto tr1300; - case 3338: goto tr1301; - case 3387: goto tr1301; - case 3594: goto tr1302; - case 3643: goto tr1303; + goto _test_eof514; +case 514: + switch( (*p) ) { + case 32: goto tr1418; + case 59: goto tr1418; } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1418; + } else if ( (*p) >= 9 ) + goto tr1418; goto tr1248; -tr1279: - { - s->buffer_length = 0; +st515: + if ( ++p == pe ) + goto _test_eof515; +case 515: + switch( (*p) ) { + case 77: goto st516; + case 79: goto st521; + case 80: goto st523; + case 82: goto st525; + case 83: goto st527; + case 86: goto st531; + case 109: goto st516; + case 111: goto st521; + case 112: goto st523; + case 114: goto st525; + case 115: goto st527; + case 118: goto st531; } - goto st394; -tr1304: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + goto tr1248; +st516: + if ( ++p == pe ) + goto _test_eof516; +case 516: + switch( (*p) ) { + case 73: goto st517; + case 105: goto st517; } - goto st394; -tr1253: - { - memset(s->windows, 0, sizeof(s->windows)); - s->last_window = -1; + goto tr1248; +st517: + if ( ++p == pe ) + goto _test_eof517; +case 517: + switch( (*p) ) { + case 77: goto st518; + case 109: goto st518; } - { - s->buffer_length = 0; + goto tr1248; +st518: + if ( ++p == pe ) + goto _test_eof518; +case 518: + switch( (*p) ) { + case 69: goto st519; + case 101: goto st519; } - goto st394; -tr1290: - { window_add_bit(KNOT_RRTYPE_A, s); } - { - s->buffer_length = 0; + goto tr1248; +st519: + if ( ++p == pe ) + goto _test_eof519; +case 519: + switch( (*p) ) { + case 65: goto st520; + case 97: goto st520; } - goto st394; -tr1300: - { window_add_bit(KNOT_RRTYPE_AAAA, s); } - { - s->buffer_length = 0; + goto tr1248; +st520: + if ( ++p == pe ) + goto _test_eof520; +case 520: + switch( (*p) ) { + case 32: goto tr1429; + case 59: goto tr1429; } - goto st394; -tr1316: - { window_add_bit(KNOT_RRTYPE_CAA, s); } - { - s->buffer_length = 0; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1429; + } else if ( (*p) >= 9 ) + goto tr1429; + goto tr1248; +st521: + if ( ++p == pe ) + goto _test_eof521; +case 521: + switch( (*p) ) { + case 65: goto st522; + case 97: goto st522; } - goto st394; -tr1330: - { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } - { - s->buffer_length = 0; + goto tr1248; +st522: + if ( ++p == pe ) + goto _test_eof522; +case 522: + switch( (*p) ) { + case 32: goto tr1431; + case 59: goto tr1431; } - goto st394; -tr1338: - { window_add_bit(KNOT_RRTYPE_CDS, s); } - { - s->buffer_length = 0; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1431; + } else if ( (*p) >= 9 ) + goto tr1431; + goto tr1248; +st523: + if ( ++p == pe ) + goto _test_eof523; +case 523: + switch( (*p) ) { + case 70: goto st524; + case 102: goto st524; } - goto st394; -tr1348: - { window_add_bit(KNOT_RRTYPE_CERT, s); } - { - s->buffer_length = 0; + goto tr1248; +st524: + if ( ++p == pe ) + goto _test_eof524; +case 524: + switch( (*p) ) { + case 32: goto tr1433; + case 59: goto tr1433; } - goto st394; -tr1359: - { window_add_bit(KNOT_RRTYPE_CNAME, s); } - { - s->buffer_length = 0; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1433; + } else if ( (*p) >= 9 ) + goto tr1433; + goto tr1248; +st525: + if ( ++p == pe ) + goto _test_eof525; +case 525: + switch( (*p) ) { + case 86: goto st526; + case 118: goto st526; } - goto st394; -tr1370: - { window_add_bit(KNOT_RRTYPE_CSYNC, s); } - { - s->buffer_length = 0; + goto tr1248; +st526: + if ( ++p == pe ) + goto _test_eof526; +case 526: + switch( (*p) ) { + case 32: goto tr1435; + case 59: goto tr1435; } - goto st394; -tr1384: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } - { - s->buffer_length = 0; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1435; + } else if ( (*p) >= 9 ) + goto tr1435; + goto tr1248; +st527: + if ( ++p == pe ) + goto _test_eof527; +case 527: + switch( (*p) ) { + case 72: goto st528; + case 104: goto st528; } - goto st394; -tr1396: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } - { - s->buffer_length = 0; + goto tr1248; +st528: + if ( ++p == pe ) + goto _test_eof528; +case 528: + switch( (*p) ) { + case 70: goto st529; + case 102: goto st529; } - goto st394; -tr1407: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } - { - s->buffer_length = 0; + goto tr1248; +st529: + if ( ++p == pe ) + goto _test_eof529; +case 529: + switch( (*p) ) { + case 80: goto st530; + case 112: goto st530; } - goto st394; -tr1416: - { window_add_bit(KNOT_RRTYPE_DS, s); } - { - s->buffer_length = 0; + goto tr1248; +st530: + if ( ++p == pe ) + goto _test_eof530; +case 530: + switch( (*p) ) { + case 32: goto tr1439; + case 59: goto tr1439; } - goto st394; -tr1426: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } - { - s->buffer_length = 0; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1439; + } else if ( (*p) >= 9 ) + goto tr1439; + goto tr1248; +st531: + if ( ++p == pe ) + goto _test_eof531; +case 531: + switch( (*p) ) { + case 67: goto st532; + case 99: goto st532; } - goto st394; -tr1439: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } - { - s->buffer_length = 0; + goto tr1248; +st532: + if ( ++p == pe ) + goto _test_eof532; +case 532: + switch( (*p) ) { + case 66: goto st533; + case 98: goto st533; } - goto st394; -tr1448: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } - { - s->buffer_length = 0; + goto tr1248; +st533: + if ( ++p == pe ) + goto _test_eof533; +case 533: + switch( (*p) ) { + case 32: goto tr1442; + case 59: goto tr1442; } - goto st394; -tr1461: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } - { - s->buffer_length = 0; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1442; + } else if ( (*p) >= 9 ) + goto tr1442; + goto tr1248; +st534: + if ( ++p == pe ) + goto _test_eof534; +case 534: + switch( (*p) ) { + case 76: goto st535; + case 88: goto st538; + case 89: goto st540; + case 108: goto st535; + case 120: goto st538; + case 121: goto st540; } - goto st394; -tr1472: - { window_add_bit(KNOT_RRTYPE_HTTPS, s); } - { - s->buffer_length = 0; + goto tr1248; +st535: + if ( ++p == pe ) + goto _test_eof535; +case 535: + switch( (*p) ) { + case 83: goto st536; + case 115: goto st536; } - goto st394; -tr1487: - { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } - { - s->buffer_length = 0; + goto tr1248; +st536: + if ( ++p == pe ) + goto _test_eof536; +case 536: + switch( (*p) ) { + case 65: goto st537; + case 97: goto st537; } - goto st394; -tr1498: - { window_add_bit(KNOT_RRTYPE_KEY, s); } - { - s->buffer_length = 0; + goto tr1248; +st537: + if ( ++p == pe ) + goto _test_eof537; +case 537: + switch( (*p) ) { + case 32: goto tr1448; + case 59: goto tr1448; } - goto st394; -tr1506: - { window_add_bit(KNOT_RRTYPE_KX, s); } - { - s->buffer_length = 0; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1448; + } else if ( (*p) >= 9 ) + goto tr1448; + goto tr1248; +st538: + if ( ++p == pe ) + goto _test_eof538; +case 538: + switch( (*p) ) { + case 84: goto st539; + case 116: goto st539; } - goto st394; -tr1519: - { window_add_bit(KNOT_RRTYPE_L32, s); } - { - s->buffer_length = 0; + goto tr1248; +st539: + if ( ++p == pe ) + goto _test_eof539; +case 539: + switch( (*p) ) { + case 32: goto tr1450; + case 59: goto tr1450; } - goto st394; -tr1528: - { window_add_bit(KNOT_RRTYPE_L64, s); } - { - s->buffer_length = 0; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1450; + } else if ( (*p) >= 9 ) + goto tr1450; + goto tr1248; +st540: + if ( ++p == pe ) + goto _test_eof540; +case 540: + switch( (*p) ) { + case 80: goto st541; + case 112: goto st541; } - goto st394; -tr1537: - { window_add_bit(KNOT_RRTYPE_LOC, s); } - { - s->buffer_length = 0; + goto tr1248; +st541: + if ( ++p == pe ) + goto _test_eof541; +case 541: + switch( (*p) ) { + case 69: goto st542; + case 101: goto st542; } - goto st394; -tr1545: - { window_add_bit(KNOT_RRTYPE_LP, s); } + goto tr1248; +st542: + if ( ++p == pe ) + goto _test_eof542; +case 542: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr1454; + goto tr1453; +tr1454: { - s->buffer_length = 0; + s->number64 = 0; } - goto st394; -tr1558: - { window_add_bit(KNOT_RRTYPE_MINFO, s); } { - s->buffer_length = 0; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } - goto st394; -tr1566: - { window_add_bit(KNOT_RRTYPE_MX, s); } + goto st543; +tr1456: { - s->buffer_length = 0; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } - goto st394; -tr1580: - { window_add_bit(KNOT_RRTYPE_NAPTR, s); } - { - s->buffer_length = 0; + goto st543; +st543: + if ( ++p == pe ) + goto _test_eof543; +case 543: + switch( (*p) ) { + case 32: goto tr1455; + case 59: goto tr1455; } - goto st394; -tr1589: - { window_add_bit(KNOT_RRTYPE_NID, s); } - { - s->buffer_length = 0; + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr1455; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr1456; + } else + goto tr1455; + goto tr1453; +st544: + if ( ++p == pe ) + goto _test_eof544; +case 544: + switch( (*p) ) { + case 82: goto st545; + case 114: goto st545; } - goto st394; -tr1598: - { window_add_bit(KNOT_RRTYPE_NS, s); } - { - s->buffer_length = 0; + goto tr1248; +st545: + if ( ++p == pe ) + goto _test_eof545; +case 545: + switch( (*p) ) { + case 73: goto st546; + case 105: goto st546; } - goto st394; -tr1608: - { window_add_bit(KNOT_RRTYPE_NSEC, s); } - { - s->buffer_length = 0; + goto tr1248; +st546: + if ( ++p == pe ) + goto _test_eof546; +case 546: + switch( (*p) ) { + case 32: goto tr1459; + case 59: goto tr1459; } - goto st394; -tr1617: - { window_add_bit(KNOT_RRTYPE_NSEC3, s); } - { - s->buffer_length = 0; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1459; + } else if ( (*p) >= 9 ) + goto tr1459; + goto tr1248; +st547: + if ( ++p == pe ) + goto _test_eof547; +case 547: + switch( (*p) ) { + case 65: goto st548; + case 97: goto st548; } - goto st394; -tr1629: - { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } - { - s->buffer_length = 0; + goto tr1248; +st548: + if ( ++p == pe ) + goto _test_eof548; +case 548: + switch( (*p) ) { + case 76: goto st549; + case 108: goto st549; } - goto st394; -tr1646: - { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } - { - s->buffer_length = 0; + goto tr1248; +st549: + if ( ++p == pe ) + goto _test_eof549; +case 549: + switch( (*p) ) { + case 76: goto st550; + case 108: goto st550; } - goto st394; -tr1656: - { window_add_bit(KNOT_RRTYPE_PTR, s); } - { - s->buffer_length = 0; + goto tr1248; +st550: + if ( ++p == pe ) + goto _test_eof550; +case 550: + switch( (*p) ) { + case 69: goto st551; + case 101: goto st551; } - goto st394; -tr1667: - { window_add_bit(KNOT_RRTYPE_RP, s); } - { - s->buffer_length = 0; + goto tr1248; +st551: + if ( ++p == pe ) + goto _test_eof551; +case 551: + switch( (*p) ) { + case 84: goto st552; + case 116: goto st552; } - goto st394; -tr1678: - { window_add_bit(KNOT_RRTYPE_RRSIG, s); } - { - s->buffer_length = 0; + goto tr1248; +st552: + if ( ++p == pe ) + goto _test_eof552; +case 552: + switch( (*p) ) { + case 32: goto tr1465; + case 59: goto tr1465; } - goto st394; -tr1686: - { window_add_bit(KNOT_RRTYPE_RT, s); } - { - s->buffer_length = 0; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1465; + } else if ( (*p) >= 9 ) + goto tr1465; + goto tr1248; +st553: + if ( ++p == pe ) + goto _test_eof553; +case 553: + switch( (*p) ) { + case 79: goto st554; + case 111: goto st554; } - goto st394; -tr1704: - { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } - { - s->buffer_length = 0; + goto tr1248; +st554: + if ( ++p == pe ) + goto _test_eof554; +case 554: + switch( (*p) ) { + case 78: goto st555; + case 110: goto st555; } - goto st394; -tr1713: - { window_add_bit(KNOT_RRTYPE_SOA, s); } - { - s->buffer_length = 0; + goto tr1248; +st555: + if ( ++p == pe ) + goto _test_eof555; +case 555: + switch( (*p) ) { + case 69: goto st556; + case 101: goto st556; } - goto st394; -tr1722: - { window_add_bit(KNOT_RRTYPE_SPF, s); } - { - s->buffer_length = 0; + goto tr1248; +st556: + if ( ++p == pe ) + goto _test_eof556; +case 556: + switch( (*p) ) { + case 77: goto st557; + case 109: goto st557; } - goto st394; -tr1731: - { window_add_bit(KNOT_RRTYPE_SRV, s); } - { - s->buffer_length = 0; + goto tr1248; +st557: + if ( ++p == pe ) + goto _test_eof557; +case 557: + switch( (*p) ) { + case 68: goto st558; + case 100: goto st558; } - goto st394; -tr1742: - { window_add_bit(KNOT_RRTYPE_SSHFP, s); } - { - s->buffer_length = 0; + goto tr1248; +st558: + if ( ++p == pe ) + goto _test_eof558; +case 558: + switch( (*p) ) { + case 32: goto tr1471; + case 59: goto tr1471; } - goto st394; -tr1752: - { window_add_bit(KNOT_RRTYPE_SVCB, s); } - { - s->buffer_length = 0; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1471; + } else if ( (*p) >= 9 ) + goto tr1471; + goto tr1248; +st559: + if ( ++p == pe ) + goto _test_eof559; +case 559: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st394; -tr1765: - { window_add_bit(KNOT_RRTYPE_TLSA, s); } - { - s->buffer_length = 0; + switch( _widec ) { + case 9: goto tr1473; + case 32: goto tr1473; + case 40: goto tr1474; + case 41: goto tr1475; + case 3082: goto tr1476; + case 3131: goto tr1477; + case 3338: goto tr1478; + case 3387: goto tr1478; + case 3594: goto tr1479; + case 3643: goto tr1480; } - goto st394; -tr1774: - { window_add_bit(KNOT_RRTYPE_TXT, s); } + goto tr1472; +tr1482: { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st394; -tr1786: + goto st560; +tr1483: { - if (s->number64 <= UINT16_MAX) { - window_add_bit(s->number64, s); - } else { - WARN(ZS_NUMBER16_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st560; +tr1502: { - s->buffer_length = 0; + s->line_counter++; } - goto st394; -tr1796: - { window_add_bit(KNOT_RRTYPE_URI, s); } + goto st560; +tr1529: { - s->buffer_length = 0; + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 560; goto _out;} + } + } } - goto st394; -tr1809: - { window_add_bit(KNOT_RRTYPE_WALLET, s); } { - s->buffer_length = 0; + s->line_counter++; } - goto st394; -tr1822: - { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } + goto st560; +tr1473: { - s->buffer_length = 0; + memset(s->windows, 0, sizeof(s->windows)); + s->last_window = -1; } - goto st394; -tr1833: - { window_add_bit(KNOT_RRTYPE_AFSDB, s); } + goto st560; +tr1474: { - s->buffer_length = 0; + memset(s->windows, 0, sizeof(s->windows)); + s->last_window = -1; } - goto st394; -tr1842: - { window_add_bit(KNOT_RRTYPE_APL, s); } { - s->buffer_length = 0; - } - goto st394; -st394: - if ( ++p == pe ) - goto _test_eof394; -case 394: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->multiline = true; } - if ( _widec == 2058 ) - goto tr1305; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1304; - goto tr1248; -tr1254: + goto st560; +tr1475: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } + goto st560; +tr1476: { - p--; {cs = stack[--top];goto _again;} + memset(s->windows, 0, sizeof(s->windows)); + s->last_window = -1; } - goto st1505; -tr1280: { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } + s->line_counter++; } + goto st560; +tr1507: + { window_add_bit(KNOT_RRTYPE_A, s); } + goto st560; +tr1508: + { window_add_bit(KNOT_RRTYPE_A, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1505; -tr1291: + goto st560; +tr1509: { window_add_bit(KNOT_RRTYPE_A, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } + goto st560; +tr1513: + { window_add_bit(KNOT_RRTYPE_A, s); } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1505; -tr1301: + goto st560; +tr1520: + { window_add_bit(KNOT_RRTYPE_AAAA, s); } + goto st560; +tr1521: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1522: + { window_add_bit(KNOT_RRTYPE_AAAA, s); } { - p--; {cs = stack[--top];goto _again;} - } - goto st1505; -tr1317: - { window_add_bit(KNOT_RRTYPE_CAA, s); } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } + goto st560; +tr1523: + { window_add_bit(KNOT_RRTYPE_AAAA, s); } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1505; -tr1331: + goto st560; +tr1536: + { window_add_bit(KNOT_RRTYPE_CAA, s); } + goto st560; +tr1537: + { window_add_bit(KNOT_RRTYPE_CAA, s); } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st560; +tr1538: + { window_add_bit(KNOT_RRTYPE_CAA, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st560; +tr1539: + { window_add_bit(KNOT_RRTYPE_CAA, s); } + { + s->line_counter++; + } + goto st560; +tr1550: + { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } + goto st560; +tr1551: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1552: + { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1339: + goto st560; +tr1553: + { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } + { + s->line_counter++; + } + goto st560; +tr1558: + { window_add_bit(KNOT_RRTYPE_CDS, s); } + goto st560; +tr1559: { window_add_bit(KNOT_RRTYPE_CDS, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1560: + { window_add_bit(KNOT_RRTYPE_CDS, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1349: + goto st560; +tr1561: + { window_add_bit(KNOT_RRTYPE_CDS, s); } + { + s->line_counter++; + } + goto st560; +tr1568: + { window_add_bit(KNOT_RRTYPE_CERT, s); } + goto st560; +tr1569: { window_add_bit(KNOT_RRTYPE_CERT, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1570: + { window_add_bit(KNOT_RRTYPE_CERT, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1360: + goto st560; +tr1571: + { window_add_bit(KNOT_RRTYPE_CERT, s); } + { + s->line_counter++; + } + goto st560; +tr1579: + { window_add_bit(KNOT_RRTYPE_CNAME, s); } + goto st560; +tr1580: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1581: + { window_add_bit(KNOT_RRTYPE_CNAME, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1371: + goto st560; +tr1582: + { window_add_bit(KNOT_RRTYPE_CNAME, s); } + { + s->line_counter++; + } + goto st560; +tr1590: + { window_add_bit(KNOT_RRTYPE_CSYNC, s); } + goto st560; +tr1591: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1592: + { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1385: + goto st560; +tr1593: + { window_add_bit(KNOT_RRTYPE_CSYNC, s); } + { + s->line_counter++; + } + goto st560; +tr1604: + { window_add_bit(KNOT_RRTYPE_DHCID, s); } + goto st560; +tr1605: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1606: + { window_add_bit(KNOT_RRTYPE_DHCID, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1397: + goto st560; +tr1607: + { window_add_bit(KNOT_RRTYPE_DHCID, s); } + { + s->line_counter++; + } + goto st560; +tr1616: + { window_add_bit(KNOT_RRTYPE_DNAME, s); } + goto st560; +tr1617: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1618: + { window_add_bit(KNOT_RRTYPE_DNAME, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1408: + goto st560; +tr1619: + { window_add_bit(KNOT_RRTYPE_DNAME, s); } + { + s->line_counter++; + } + goto st560; +tr1627: + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } + goto st560; +tr1628: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1629: + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1417: + goto st560; +tr1630: + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } + { + s->line_counter++; + } + goto st560; +tr1635: + { window_add_bit(KNOT_RRTYPE_DS, s); } + goto st560; +tr1636: { window_add_bit(KNOT_RRTYPE_DS, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1637: + { window_add_bit(KNOT_RRTYPE_DS, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1427: + goto st560; +tr1639: + { window_add_bit(KNOT_RRTYPE_DS, s); } + { + s->line_counter++; + } + goto st560; +tr1646: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + goto st560; +tr1647: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1648: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1440: + goto st560; +tr1649: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + { + s->line_counter++; + } + goto st560; +tr1659: + { window_add_bit(KNOT_RRTYPE_EUI48, s); } + goto st560; +tr1660: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1661: + { window_add_bit(KNOT_RRTYPE_EUI48, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1449: + goto st560; +tr1662: + { window_add_bit(KNOT_RRTYPE_EUI48, s); } + { + s->line_counter++; + } + goto st560; +tr1668: + { window_add_bit(KNOT_RRTYPE_EUI64, s); } + goto st560; +tr1669: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1670: + { window_add_bit(KNOT_RRTYPE_EUI64, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1462: + goto st560; +tr1671: + { window_add_bit(KNOT_RRTYPE_EUI64, s); } + { + s->line_counter++; + } + goto st560; +tr1681: + { window_add_bit(KNOT_RRTYPE_HINFO, s); } + goto st560; +tr1682: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1683: + { window_add_bit(KNOT_RRTYPE_HINFO, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1473: + goto st560; +tr1684: + { window_add_bit(KNOT_RRTYPE_HINFO, s); } + { + s->line_counter++; + } + goto st560; +tr1692: + { window_add_bit(KNOT_RRTYPE_HTTPS, s); } + goto st560; +tr1693: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1694: + { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1488: + goto st560; +tr1695: + { window_add_bit(KNOT_RRTYPE_HTTPS, s); } + { + s->line_counter++; + } + goto st560; +tr1707: + { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } + goto st560; +tr1708: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1709: + { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1499: + goto st560; +tr1710: + { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } + { + s->line_counter++; + } + goto st560; +tr1718: + { window_add_bit(KNOT_RRTYPE_KEY, s); } + goto st560; +tr1719: { window_add_bit(KNOT_RRTYPE_KEY, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1720: + { window_add_bit(KNOT_RRTYPE_KEY, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1507: + goto st560; +tr1721: + { window_add_bit(KNOT_RRTYPE_KEY, s); } + { + s->line_counter++; + } + goto st560; +tr1726: + { window_add_bit(KNOT_RRTYPE_KX, s); } + goto st560; +tr1727: { window_add_bit(KNOT_RRTYPE_KX, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1728: + { window_add_bit(KNOT_RRTYPE_KX, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1520: + goto st560; +tr1729: + { window_add_bit(KNOT_RRTYPE_KX, s); } + { + s->line_counter++; + } + goto st560; +tr1739: + { window_add_bit(KNOT_RRTYPE_L32, s); } + goto st560; +tr1740: { window_add_bit(KNOT_RRTYPE_L32, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1741: + { window_add_bit(KNOT_RRTYPE_L32, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1529: + goto st560; +tr1742: + { window_add_bit(KNOT_RRTYPE_L32, s); } + { + s->line_counter++; + } + goto st560; +tr1748: + { window_add_bit(KNOT_RRTYPE_L64, s); } + goto st560; +tr1749: { window_add_bit(KNOT_RRTYPE_L64, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1750: + { window_add_bit(KNOT_RRTYPE_L64, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1538: + goto st560; +tr1751: + { window_add_bit(KNOT_RRTYPE_L64, s); } + { + s->line_counter++; + } + goto st560; +tr1757: + { window_add_bit(KNOT_RRTYPE_LOC, s); } + goto st560; +tr1758: { window_add_bit(KNOT_RRTYPE_LOC, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st560; +tr1759: + { window_add_bit(KNOT_RRTYPE_LOC, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } + goto st560; +tr1760: + { window_add_bit(KNOT_RRTYPE_LOC, s); } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1505; -tr1546: + goto st560; +tr1765: + { window_add_bit(KNOT_RRTYPE_LP, s); } + goto st560; +tr1766: { window_add_bit(KNOT_RRTYPE_LP, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1767: + { window_add_bit(KNOT_RRTYPE_LP, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1559: + goto st560; +tr1768: + { window_add_bit(KNOT_RRTYPE_LP, s); } + { + s->line_counter++; + } + goto st560; +tr1778: + { window_add_bit(KNOT_RRTYPE_MINFO, s); } + goto st560; +tr1779: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st560; +tr1780: + { window_add_bit(KNOT_RRTYPE_MINFO, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } + goto st560; +tr1781: + { window_add_bit(KNOT_RRTYPE_MINFO, s); } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1505; -tr1567: + goto st560; +tr1786: + { window_add_bit(KNOT_RRTYPE_MX, s); } + goto st560; +tr1787: { window_add_bit(KNOT_RRTYPE_MX, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1788: + { window_add_bit(KNOT_RRTYPE_MX, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1581: + goto st560; +tr1789: + { window_add_bit(KNOT_RRTYPE_MX, s); } + { + s->line_counter++; + } + goto st560; +tr1800: + { window_add_bit(KNOT_RRTYPE_NAPTR, s); } + goto st560; +tr1801: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st560; +tr1802: + { window_add_bit(KNOT_RRTYPE_NAPTR, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } + goto st560; +tr1803: + { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1505; -tr1590: + goto st560; +tr1809: + { window_add_bit(KNOT_RRTYPE_NID, s); } + goto st560; +tr1810: { window_add_bit(KNOT_RRTYPE_NID, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1811: + { window_add_bit(KNOT_RRTYPE_NID, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1599: + goto st560; +tr1812: + { window_add_bit(KNOT_RRTYPE_NID, s); } + { + s->line_counter++; + } + goto st560; +tr1817: + { window_add_bit(KNOT_RRTYPE_NS, s); } + goto st560; +tr1818: { window_add_bit(KNOT_RRTYPE_NS, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st560; +tr1819: + { window_add_bit(KNOT_RRTYPE_NS, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } + goto st560; +tr1821: + { window_add_bit(KNOT_RRTYPE_NS, s); } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1505; -tr1609: + goto st560; +tr1827: + { window_add_bit(KNOT_RRTYPE_NSEC, s); } + goto st560; +tr1828: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1829: + { window_add_bit(KNOT_RRTYPE_NSEC, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1618: + goto st560; +tr1831: + { window_add_bit(KNOT_RRTYPE_NSEC, s); } + { + s->line_counter++; + } + goto st560; +tr1836: + { window_add_bit(KNOT_RRTYPE_NSEC3, s); } + goto st560; +tr1837: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st560; +tr1838: + { window_add_bit(KNOT_RRTYPE_NSEC3, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } + goto st560; +tr1840: + { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1505; -tr1630: + goto st560; +tr1849: + { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } + goto st560; +tr1850: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1851: + { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1647: + goto st560; +tr1852: + { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } + { + s->line_counter++; + } + goto st560; +tr1866: + { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } + goto st560; +tr1867: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1868: + { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1657: + goto st560; +tr1869: + { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } + { + s->line_counter++; + } + goto st560; +tr1876: + { window_add_bit(KNOT_RRTYPE_PTR, s); } + goto st560; +tr1877: { window_add_bit(KNOT_RRTYPE_PTR, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1878: + { window_add_bit(KNOT_RRTYPE_PTR, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1668: + goto st560; +tr1879: + { window_add_bit(KNOT_RRTYPE_PTR, s); } + { + s->line_counter++; + } + goto st560; +tr1887: + { window_add_bit(KNOT_RRTYPE_RP, s); } + goto st560; +tr1888: { window_add_bit(KNOT_RRTYPE_RP, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1889: + { window_add_bit(KNOT_RRTYPE_RP, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1679: + goto st560; +tr1890: + { window_add_bit(KNOT_RRTYPE_RP, s); } + { + s->line_counter++; + } + goto st560; +tr1898: + { window_add_bit(KNOT_RRTYPE_RRSIG, s); } + goto st560; +tr1899: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st560; +tr1900: + { window_add_bit(KNOT_RRTYPE_RRSIG, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } + goto st560; +tr1901: + { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1505; -tr1687: + goto st560; +tr1906: + { window_add_bit(KNOT_RRTYPE_RT, s); } + goto st560; +tr1907: { window_add_bit(KNOT_RRTYPE_RT, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1908: + { window_add_bit(KNOT_RRTYPE_RT, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1705: + goto st560; +tr1909: + { window_add_bit(KNOT_RRTYPE_RT, s); } + { + s->line_counter++; + } + goto st560; +tr1924: + { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } + goto st560; +tr1925: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1926: + { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1714: + goto st560; +tr1927: + { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } + { + s->line_counter++; + } + goto st560; +tr1933: + { window_add_bit(KNOT_RRTYPE_SOA, s); } + goto st560; +tr1934: { window_add_bit(KNOT_RRTYPE_SOA, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1935: + { window_add_bit(KNOT_RRTYPE_SOA, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1723: + goto st560; +tr1936: + { window_add_bit(KNOT_RRTYPE_SOA, s); } + { + s->line_counter++; + } + goto st560; +tr1942: + { window_add_bit(KNOT_RRTYPE_SPF, s); } + goto st560; +tr1943: { window_add_bit(KNOT_RRTYPE_SPF, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1944: + { window_add_bit(KNOT_RRTYPE_SPF, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1732: + goto st560; +tr1945: + { window_add_bit(KNOT_RRTYPE_SPF, s); } + { + s->line_counter++; + } + goto st560; +tr1951: + { window_add_bit(KNOT_RRTYPE_SRV, s); } + goto st560; +tr1952: { window_add_bit(KNOT_RRTYPE_SRV, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1953: + { window_add_bit(KNOT_RRTYPE_SRV, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1743: + goto st560; +tr1954: + { window_add_bit(KNOT_RRTYPE_SRV, s); } + { + s->line_counter++; + } + goto st560; +tr1962: + { window_add_bit(KNOT_RRTYPE_SSHFP, s); } + goto st560; +tr1963: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1964: + { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1753: + goto st560; +tr1965: + { window_add_bit(KNOT_RRTYPE_SSHFP, s); } + { + s->line_counter++; + } + goto st560; +tr1972: + { window_add_bit(KNOT_RRTYPE_SVCB, s); } + goto st560; +tr1973: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1974: + { window_add_bit(KNOT_RRTYPE_SVCB, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1766: + goto st560; +tr1975: + { window_add_bit(KNOT_RRTYPE_SVCB, s); } + { + s->line_counter++; + } + goto st560; +tr1985: + { window_add_bit(KNOT_RRTYPE_TLSA, s); } + goto st560; +tr1986: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1987: + { window_add_bit(KNOT_RRTYPE_TLSA, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1775: + goto st560; +tr1988: + { window_add_bit(KNOT_RRTYPE_TLSA, s); } + { + s->line_counter++; + } + goto st560; +tr1994: + { window_add_bit(KNOT_RRTYPE_TXT, s); } + goto st560; +tr1995: { window_add_bit(KNOT_RRTYPE_TXT, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr1996: + { window_add_bit(KNOT_RRTYPE_TXT, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1787: + goto st560; +tr1997: + { window_add_bit(KNOT_RRTYPE_TXT, s); } + { + s->line_counter++; + } + goto st560; +tr2005: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); @@ -50910,286 +51044,724 @@ tr1787: p--; {goto st319;} } } + goto st560; +tr2006: { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->number64 <= UINT16_MAX) { + window_add_bit(s->number64, s); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1505; -tr1797: - { window_add_bit(KNOT_RRTYPE_URI, s); } + goto st560; +tr2007: { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->number64 <= UINT16_MAX) { + window_add_bit(s->number64, s); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1505; -tr1810: - { window_add_bit(KNOT_RRTYPE_WALLET, s); } + goto st560; +tr2009: { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->number64 <= UINT16_MAX) { + window_add_bit(s->number64, s); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1505; -tr1823: - { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } + goto st560; +tr2016: + { window_add_bit(KNOT_RRTYPE_URI, s); } + goto st560; +tr2017: + { window_add_bit(KNOT_RRTYPE_URI, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr2018: + { window_add_bit(KNOT_RRTYPE_URI, s); } { - p--; {cs = stack[--top];goto _again;} - } - goto st1505; -tr1834: - { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } + goto st560; +tr2019: + { window_add_bit(KNOT_RRTYPE_URI, s); } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1505; -tr1843: - { window_add_bit(KNOT_RRTYPE_APL, s); } + goto st560; +tr2029: + { window_add_bit(KNOT_RRTYPE_WALLET, s); } + goto st560; +tr2030: + { window_add_bit(KNOT_RRTYPE_WALLET, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr2031: + { window_add_bit(KNOT_RRTYPE_WALLET, s); } { - p--; {cs = stack[--top];goto _again;} - } - goto st1505; -st1505: - if ( ++p == pe ) - goto _test_eof1505; -case 1505: - goto st0; -tr1255: - { - memset(s->windows, 0, sizeof(s->windows)); - s->last_window = -1; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st560; +tr2032: + { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->line_counter++; } + goto st560; +tr2042: + { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } + goto st560; +tr2043: + { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr2044: + { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1506; -tr1281: + goto st560; +tr2045: + { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->line_counter++; } + goto st560; +tr2053: + { window_add_bit(KNOT_RRTYPE_AFSDB, s); } + goto st560; +tr2054: + { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr2055: + { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1506; -tr1292: - { window_add_bit(KNOT_RRTYPE_A, s); } + goto st560; +tr2056: + { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->line_counter++; } + goto st560; +tr2062: + { window_add_bit(KNOT_RRTYPE_APL, s); } + goto st560; +tr2063: + { window_add_bit(KNOT_RRTYPE_APL, s); } { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } + goto st560; +tr2064: + { window_add_bit(KNOT_RRTYPE_APL, s); } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1506; -tr1302: - { window_add_bit(KNOT_RRTYPE_AAAA, s); } + goto st560; +tr2065: + { window_add_bit(KNOT_RRTYPE_APL, s); } { s->line_counter++; } + goto st560; +st560: + if ( ++p == pe ) + goto _test_eof560; +case 560: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st560; + case 32: goto st560; + case 40: goto tr1482; + case 41: goto tr1483; + case 65: goto st561; + case 67: goto st566; + case 68: goto st587; + case 69: goto st604; + case 72: goto st611; + case 73: goto st620; + case 75: goto st628; + case 76: goto st632; + case 77: goto st640; + case 78: goto st646; + case 79: goto st662; + case 80: goto st672; + case 82: goto st675; + case 83: goto st682; + case 84: goto st701; + case 85: goto st711; + case 87: goto st714; + case 90: goto st720; + case 97: goto st561; + case 99: goto st566; + case 100: goto st587; + case 101: goto st604; + case 104: goto st611; + case 105: goto st620; + case 107: goto st628; + case 108: goto st632; + case 109: goto st640; + case 110: goto st646; + case 111: goto st662; + case 112: goto st672; + case 114: goto st675; + case 115: goto st682; + case 116: goto st701; + case 117: goto st711; + case 119: goto st714; + case 122: goto st720; + case 3082: goto tr1502; + case 3131: goto tr1503; + case 3338: goto tr1504; + case 3387: goto tr1504; + case 3594: goto tr1505; + case 3643: goto tr1506; + } + goto tr1472; +st561: + if ( ++p == pe ) + goto _test_eof561; +case 561: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1507; + case 32: goto tr1507; + case 40: goto tr1508; + case 41: goto tr1509; + case 65: goto st562; + case 70: goto st726; + case 80: goto st730; + case 97: goto st562; + case 102: goto st726; + case 112: goto st730; + case 3082: goto tr1513; + case 3131: goto tr1514; + case 3338: goto tr1515; + case 3387: goto tr1515; + case 3594: goto tr1516; + case 3643: goto tr1517; + } + goto tr1472; +st562: + if ( ++p == pe ) + goto _test_eof562; +case 562: + switch( (*p) ) { + case 65: goto st563; + case 97: goto st563; + } + goto tr1472; +st563: + if ( ++p == pe ) + goto _test_eof563; +case 563: + switch( (*p) ) { + case 65: goto st564; + case 97: goto st564; + } + goto tr1472; +st564: + if ( ++p == pe ) + goto _test_eof564; +case 564: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1520; + case 32: goto tr1520; + case 40: goto tr1521; + case 41: goto tr1522; + case 3082: goto tr1523; + case 3131: goto tr1524; + case 3338: goto tr1525; + case 3387: goto tr1525; + case 3594: goto tr1526; + case 3643: goto tr1527; + } + goto tr1472; +tr1503: + { + s->buffer_length = 0; + } + goto st565; +tr1528: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st565; +tr1477: + { + memset(s->windows, 0, sizeof(s->windows)); + s->last_window = -1; + } + { + s->buffer_length = 0; + } + goto st565; +tr1514: + { window_add_bit(KNOT_RRTYPE_A, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1524: + { window_add_bit(KNOT_RRTYPE_AAAA, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1540: + { window_add_bit(KNOT_RRTYPE_CAA, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1554: + { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1562: + { window_add_bit(KNOT_RRTYPE_CDS, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1572: + { window_add_bit(KNOT_RRTYPE_CERT, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1583: + { window_add_bit(KNOT_RRTYPE_CNAME, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1594: + { window_add_bit(KNOT_RRTYPE_CSYNC, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1608: + { window_add_bit(KNOT_RRTYPE_DHCID, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1620: + { window_add_bit(KNOT_RRTYPE_DNAME, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1631: + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1640: + { window_add_bit(KNOT_RRTYPE_DS, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1650: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1663: + { window_add_bit(KNOT_RRTYPE_EUI48, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1672: + { window_add_bit(KNOT_RRTYPE_EUI64, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1685: + { window_add_bit(KNOT_RRTYPE_HINFO, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1696: + { window_add_bit(KNOT_RRTYPE_HTTPS, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1711: + { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1722: + { window_add_bit(KNOT_RRTYPE_KEY, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1730: + { window_add_bit(KNOT_RRTYPE_KX, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1743: + { window_add_bit(KNOT_RRTYPE_L32, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1752: + { window_add_bit(KNOT_RRTYPE_L64, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1761: + { window_add_bit(KNOT_RRTYPE_LOC, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1769: + { window_add_bit(KNOT_RRTYPE_LP, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1782: + { window_add_bit(KNOT_RRTYPE_MINFO, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1790: + { window_add_bit(KNOT_RRTYPE_MX, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1804: + { window_add_bit(KNOT_RRTYPE_NAPTR, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1813: + { window_add_bit(KNOT_RRTYPE_NID, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1822: + { window_add_bit(KNOT_RRTYPE_NS, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1832: + { window_add_bit(KNOT_RRTYPE_NSEC, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1841: + { window_add_bit(KNOT_RRTYPE_NSEC3, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1853: + { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1870: + { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1880: + { window_add_bit(KNOT_RRTYPE_PTR, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1891: + { window_add_bit(KNOT_RRTYPE_RP, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1902: + { window_add_bit(KNOT_RRTYPE_RRSIG, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1910: + { window_add_bit(KNOT_RRTYPE_RT, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1928: + { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1937: + { window_add_bit(KNOT_RRTYPE_SOA, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1946: + { window_add_bit(KNOT_RRTYPE_SPF, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1955: + { window_add_bit(KNOT_RRTYPE_SRV, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1966: + { window_add_bit(KNOT_RRTYPE_SSHFP, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1976: + { window_add_bit(KNOT_RRTYPE_SVCB, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1989: + { window_add_bit(KNOT_RRTYPE_TLSA, s); } + { + s->buffer_length = 0; + } + goto st565; +tr1998: + { window_add_bit(KNOT_RRTYPE_TXT, s); } + { + s->buffer_length = 0; + } + goto st565; +tr2010: + { + if (s->number64 <= UINT16_MAX) { + window_add_bit(s->number64, s); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st565; +tr2020: + { window_add_bit(KNOT_RRTYPE_URI, s); } + { + s->buffer_length = 0; + } + goto st565; +tr2033: + { window_add_bit(KNOT_RRTYPE_WALLET, s); } + { + s->buffer_length = 0; + } + goto st565; +tr2046: + { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } + { + s->buffer_length = 0; + } + goto st565; +tr2057: + { window_add_bit(KNOT_RRTYPE_AFSDB, s); } + { + s->buffer_length = 0; + } + goto st565; +tr2066: + { window_add_bit(KNOT_RRTYPE_APL, s); } + { + s->buffer_length = 0; + } + goto st565; +st565: + if ( ++p == pe ) + goto _test_eof565; +case 565: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr1529; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr1528; + goto tr1472; +tr1478: + { + memset(s->windows, 0, sizeof(s->windows)); + s->last_window = -1; + } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51216,12 +51788,8 @@ tr1302: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1318: - { window_add_bit(KNOT_RRTYPE_CAA, s); } - { - s->line_counter++; - } + goto st1497; +tr1504: { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51248,12 +51816,9 @@ tr1318: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1332: - { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } - { - s->line_counter++; - } + goto st1497; +tr1515: + { window_add_bit(KNOT_RRTYPE_A, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51280,12 +51845,9 @@ tr1332: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1340: - { window_add_bit(KNOT_RRTYPE_CDS, s); } - { - s->line_counter++; - } + goto st1497; +tr1525: + { window_add_bit(KNOT_RRTYPE_AAAA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51312,12 +51874,9 @@ tr1340: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1350: - { window_add_bit(KNOT_RRTYPE_CERT, s); } - { - s->line_counter++; - } + goto st1497; +tr1541: + { window_add_bit(KNOT_RRTYPE_CAA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51344,12 +51903,9 @@ tr1350: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1361: - { window_add_bit(KNOT_RRTYPE_CNAME, s); } - { - s->line_counter++; - } + goto st1497; +tr1555: + { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51376,12 +51932,9 @@ tr1361: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1372: - { window_add_bit(KNOT_RRTYPE_CSYNC, s); } - { - s->line_counter++; - } + goto st1497; +tr1563: + { window_add_bit(KNOT_RRTYPE_CDS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51408,12 +51961,9 @@ tr1372: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1386: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } - { - s->line_counter++; - } + goto st1497; +tr1573: + { window_add_bit(KNOT_RRTYPE_CERT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51440,12 +51990,9 @@ tr1386: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1398: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } - { - s->line_counter++; - } + goto st1497; +tr1584: + { window_add_bit(KNOT_RRTYPE_CNAME, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51472,12 +52019,9 @@ tr1398: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1409: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } - { - s->line_counter++; - } + goto st1497; +tr1595: + { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51504,12 +52048,9 @@ tr1409: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1418: - { window_add_bit(KNOT_RRTYPE_DS, s); } - { - s->line_counter++; - } + goto st1497; +tr1609: + { window_add_bit(KNOT_RRTYPE_DHCID, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51536,12 +52077,9 @@ tr1418: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1428: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } - { - s->line_counter++; - } + goto st1497; +tr1621: + { window_add_bit(KNOT_RRTYPE_DNAME, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51568,12 +52106,38 @@ tr1428: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1441: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } + goto st1497; +tr1632: + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { - s->line_counter++; + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} } + goto st1497; +tr1641: + { window_add_bit(KNOT_RRTYPE_DS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51600,12 +52164,38 @@ tr1441: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1450: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } + goto st1497; +tr1651: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { - s->line_counter++; + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} } + goto st1497; +tr1664: + { window_add_bit(KNOT_RRTYPE_EUI48, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51632,12 +52222,38 @@ tr1450: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1463: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } + goto st1497; +tr1673: + { window_add_bit(KNOT_RRTYPE_EUI64, s); } { - s->line_counter++; + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} } + goto st1497; +tr1686: + { window_add_bit(KNOT_RRTYPE_HINFO, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51664,12 +52280,9 @@ tr1463: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1474: + goto st1497; +tr1697: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51696,12 +52309,9 @@ tr1474: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1489: + goto st1497; +tr1712: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51728,12 +52338,9 @@ tr1489: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1500: + goto st1497; +tr1723: { window_add_bit(KNOT_RRTYPE_KEY, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51760,12 +52367,9 @@ tr1500: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1508: + goto st1497; +tr1731: { window_add_bit(KNOT_RRTYPE_KX, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51792,12 +52396,9 @@ tr1508: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1521: + goto st1497; +tr1744: { window_add_bit(KNOT_RRTYPE_L32, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51824,12 +52425,9 @@ tr1521: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1530: + goto st1497; +tr1753: { window_add_bit(KNOT_RRTYPE_L64, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51856,12 +52454,9 @@ tr1530: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1539: + goto st1497; +tr1762: { window_add_bit(KNOT_RRTYPE_LOC, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51888,12 +52483,9 @@ tr1539: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1547: + goto st1497; +tr1770: { window_add_bit(KNOT_RRTYPE_LP, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51920,12 +52512,9 @@ tr1547: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1560: + goto st1497; +tr1783: { window_add_bit(KNOT_RRTYPE_MINFO, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51952,12 +52541,9 @@ tr1560: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1568: + goto st1497; +tr1791: { window_add_bit(KNOT_RRTYPE_MX, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51984,12 +52570,9 @@ tr1568: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1582: + goto st1497; +tr1805: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52016,12 +52599,9 @@ tr1582: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1591: + goto st1497; +tr1814: { window_add_bit(KNOT_RRTYPE_NID, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52048,12 +52628,9 @@ tr1591: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1600: + goto st1497; +tr1823: { window_add_bit(KNOT_RRTYPE_NS, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52080,12 +52657,9 @@ tr1600: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1610: + goto st1497; +tr1833: { window_add_bit(KNOT_RRTYPE_NSEC, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52112,12 +52686,9 @@ tr1610: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1619: + goto st1497; +tr1842: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52144,12 +52715,9 @@ tr1619: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1631: + goto st1497; +tr1854: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52176,12 +52744,9 @@ tr1631: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1648: + goto st1497; +tr1871: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52208,12 +52773,9 @@ tr1648: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1658: + goto st1497; +tr1881: { window_add_bit(KNOT_RRTYPE_PTR, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52240,12 +52802,9 @@ tr1658: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1669: + goto st1497; +tr1892: { window_add_bit(KNOT_RRTYPE_RP, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52272,12 +52831,9 @@ tr1669: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1680: + goto st1497; +tr1903: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52304,12 +52860,9 @@ tr1680: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1688: + goto st1497; +tr1911: { window_add_bit(KNOT_RRTYPE_RT, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52336,12 +52889,9 @@ tr1688: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1706: + goto st1497; +tr1929: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52368,12 +52918,9 @@ tr1706: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1715: + goto st1497; +tr1938: { window_add_bit(KNOT_RRTYPE_SOA, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52400,12 +52947,9 @@ tr1715: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1724: + goto st1497; +tr1947: { window_add_bit(KNOT_RRTYPE_SPF, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52432,12 +52976,9 @@ tr1724: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1733: + goto st1497; +tr1956: { window_add_bit(KNOT_RRTYPE_SRV, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52464,12 +53005,9 @@ tr1733: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1744: + goto st1497; +tr1967: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52496,12 +53034,9 @@ tr1744: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1754: + goto st1497; +tr1977: { window_add_bit(KNOT_RRTYPE_SVCB, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52528,12 +53063,9 @@ tr1754: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1767: + goto st1497; +tr1990: { window_add_bit(KNOT_RRTYPE_TLSA, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52560,12 +53092,9 @@ tr1767: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1776: + goto st1497; +tr1999: { window_add_bit(KNOT_RRTYPE_TXT, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52592,8 +53121,8 @@ tr1776: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1788: + goto st1497; +tr2011: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); @@ -52602,9 +53131,6 @@ tr1788: p--; {goto st319;} } } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52631,12 +53157,9 @@ tr1788: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1798: + goto st1497; +tr2021: { window_add_bit(KNOT_RRTYPE_URI, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52663,12 +53186,9 @@ tr1798: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1811: + goto st1497; +tr2034: { window_add_bit(KNOT_RRTYPE_WALLET, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52695,12 +53215,9 @@ tr1811: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1824: + goto st1497; +tr2047: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52727,12 +53244,9 @@ tr1824: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1835: + goto st1497; +tr2058: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52759,12 +53273,9 @@ tr1835: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1844: + goto st1497; +tr2067: { window_add_bit(KNOT_RRTYPE_APL, s); } - { - s->line_counter++; - } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52791,142 +53302,19 @@ tr1844: { p--; {cs = stack[--top];goto _again;} } - goto st1506; -st1506: - if ( ++p == pe ) - goto _test_eof1506; -case 1506: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto st389; - case 32: goto st389; - case 40: goto tr1258; - case 41: goto tr1259; - case 65: goto st390; - case 67: goto st395; - case 68: goto st416; - case 69: goto st433; - case 72: goto st440; - case 73: goto st449; - case 75: goto st457; - case 76: goto st461; - case 77: goto st469; - case 78: goto st475; - case 79: goto st491; - case 80: goto st501; - case 82: goto st504; - case 83: goto st511; - case 84: goto st530; - case 85: goto st540; - case 87: goto st543; - case 90: goto st549; - case 97: goto st390; - case 99: goto st395; - case 100: goto st416; - case 101: goto st433; - case 104: goto st440; - case 105: goto st449; - case 107: goto st457; - case 108: goto st461; - case 109: goto st469; - case 110: goto st475; - case 111: goto st491; - case 112: goto st501; - case 114: goto st504; - case 115: goto st511; - case 116: goto st530; - case 117: goto st540; - case 119: goto st543; - case 122: goto st549; - case 3082: goto tr1278; - case 3131: goto tr1279; - case 3338: goto tr1280; - case 3387: goto tr1280; - case 3594: goto tr1281; - case 3643: goto tr1282; - } - goto tr1248; -st395: - if ( ++p == pe ) - goto _test_eof395; -case 395: - switch( (*p) ) { - case 65: goto st396; - case 68: goto st398; - case 69: goto st405; - case 78: goto st408; - case 83: goto st412; - case 97: goto st396; - case 100: goto st398; - case 101: goto st405; - case 110: goto st408; - case 115: goto st412; - } - goto tr1248; -st396: - if ( ++p == pe ) - goto _test_eof396; -case 396: - switch( (*p) ) { - case 65: goto st397; - case 97: goto st397; - } - goto tr1248; -st397: + goto st1497; +st1497: if ( ++p == pe ) - goto _test_eof397; -case 397: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1312; - case 32: goto tr1312; - case 40: goto tr1313; - case 41: goto tr1314; - case 3082: goto tr1315; - case 3131: goto tr1316; - case 3338: goto tr1317; - case 3387: goto tr1317; - case 3594: goto tr1318; - case 3643: goto tr1319; - } - goto tr1248; -tr1256: + goto _test_eof1497; +case 1497: + goto st0; +tr1479: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52954,10 +53342,10 @@ tr1256: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1282: + goto st1498; +tr1505: { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52985,11 +53373,11 @@ tr1282: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1293: + goto st1498; +tr1516: { window_add_bit(KNOT_RRTYPE_A, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53017,11 +53405,11 @@ tr1293: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1303: + goto st1498; +tr1526: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53049,11 +53437,11 @@ tr1303: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1319: + goto st1498; +tr1542: { window_add_bit(KNOT_RRTYPE_CAA, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53081,11 +53469,11 @@ tr1319: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1333: + goto st1498; +tr1556: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53113,11 +53501,11 @@ tr1333: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1341: + goto st1498; +tr1564: { window_add_bit(KNOT_RRTYPE_CDS, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53145,11 +53533,11 @@ tr1341: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1351: + goto st1498; +tr1574: { window_add_bit(KNOT_RRTYPE_CERT, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53177,11 +53565,11 @@ tr1351: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1362: + goto st1498; +tr1585: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53209,11 +53597,11 @@ tr1362: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1373: + goto st1498; +tr1596: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53241,11 +53629,11 @@ tr1373: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1387: + goto st1498; +tr1610: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53273,11 +53661,11 @@ tr1387: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1399: + goto st1498; +tr1622: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53305,11 +53693,11 @@ tr1399: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1410: + goto st1498; +tr1633: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53337,11 +53725,11 @@ tr1410: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1419: + goto st1498; +tr1642: { window_add_bit(KNOT_RRTYPE_DS, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53369,11 +53757,11 @@ tr1419: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1429: + goto st1498; +tr1652: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53401,11 +53789,11 @@ tr1429: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1442: + goto st1498; +tr1665: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53433,11 +53821,11 @@ tr1442: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1451: + goto st1498; +tr1674: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53465,11 +53853,11 @@ tr1451: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1464: + goto st1498; +tr1687: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53497,11 +53885,11 @@ tr1464: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1475: + goto st1498; +tr1698: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53529,11 +53917,11 @@ tr1475: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1490: + goto st1498; +tr1713: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53561,11 +53949,11 @@ tr1490: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1501: + goto st1498; +tr1724: { window_add_bit(KNOT_RRTYPE_KEY, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53593,11 +53981,11 @@ tr1501: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1509: + goto st1498; +tr1732: { window_add_bit(KNOT_RRTYPE_KX, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53625,11 +54013,11 @@ tr1509: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1522: + goto st1498; +tr1745: { window_add_bit(KNOT_RRTYPE_L32, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53657,11 +54045,11 @@ tr1522: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1531: + goto st1498; +tr1754: { window_add_bit(KNOT_RRTYPE_L64, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53689,11 +54077,11 @@ tr1531: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1540: + goto st1498; +tr1763: { window_add_bit(KNOT_RRTYPE_LOC, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53721,11 +54109,11 @@ tr1540: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1548: + goto st1498; +tr1771: { window_add_bit(KNOT_RRTYPE_LP, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53753,11 +54141,11 @@ tr1548: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1561: + goto st1498; +tr1784: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53785,11 +54173,11 @@ tr1561: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1569: + goto st1498; +tr1792: { window_add_bit(KNOT_RRTYPE_MX, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53817,11 +54205,11 @@ tr1569: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1583: + goto st1498; +tr1806: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53849,491 +54237,11 @@ tr1583: { p--; {cs = stack[--top];goto _again;} } - goto st1507; -tr1592: + goto st1498; +tr1815: { window_add_bit(KNOT_RRTYPE_NID, s); } { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1601: - { window_add_bit(KNOT_RRTYPE_NS, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1611: - { window_add_bit(KNOT_RRTYPE_NSEC, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1620: - { window_add_bit(KNOT_RRTYPE_NSEC3, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1632: - { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1649: - { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1659: - { window_add_bit(KNOT_RRTYPE_PTR, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1670: - { window_add_bit(KNOT_RRTYPE_RP, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1681: - { window_add_bit(KNOT_RRTYPE_RRSIG, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1689: - { window_add_bit(KNOT_RRTYPE_RT, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1707: - { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1716: - { window_add_bit(KNOT_RRTYPE_SOA, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1725: - { window_add_bit(KNOT_RRTYPE_SPF, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1734: - { window_add_bit(KNOT_RRTYPE_SRV, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1745: - { window_add_bit(KNOT_RRTYPE_SSHFP, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1755: - { window_add_bit(KNOT_RRTYPE_SVCB, s); } - { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54354,3357 +54262,761 @@ tr1755: } else { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1768: - { window_add_bit(KNOT_RRTYPE_TLSA, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1777: - { window_add_bit(KNOT_RRTYPE_TXT, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1789: - { - if (s->number64 <= UINT16_MAX) { - window_add_bit(s->number64, s); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1799: - { window_add_bit(KNOT_RRTYPE_URI, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1812: - { window_add_bit(KNOT_RRTYPE_WALLET, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1825: - { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1836: - { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -tr1845: - { window_add_bit(KNOT_RRTYPE_APL, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1507; -st1507: - if ( ++p == pe ) - goto _test_eof1507; -case 1507: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr1305; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1304; - goto tr1248; -st398: - if ( ++p == pe ) - goto _test_eof398; -case 398: - switch( (*p) ) { - case 78: goto st399; - case 83: goto st404; - case 110: goto st399; - case 115: goto st404; - } - goto tr1248; -st399: - if ( ++p == pe ) - goto _test_eof399; -case 399: - switch( (*p) ) { - case 83: goto st400; - case 115: goto st400; - } - goto tr1248; -st400: - if ( ++p == pe ) - goto _test_eof400; -case 400: - switch( (*p) ) { - case 75: goto st401; - case 107: goto st401; - } - goto tr1248; -st401: - if ( ++p == pe ) - goto _test_eof401; -case 401: - switch( (*p) ) { - case 69: goto st402; - case 101: goto st402; - } - goto tr1248; -st402: - if ( ++p == pe ) - goto _test_eof402; -case 402: - switch( (*p) ) { - case 89: goto st403; - case 121: goto st403; - } - goto tr1248; -st403: - if ( ++p == pe ) - goto _test_eof403; -case 403: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1326; - case 32: goto tr1326; - case 40: goto tr1327; - case 41: goto tr1328; - case 3082: goto tr1329; - case 3131: goto tr1330; - case 3338: goto tr1331; - case 3387: goto tr1331; - case 3594: goto tr1332; - case 3643: goto tr1333; - } - goto tr1248; -st404: - if ( ++p == pe ) - goto _test_eof404; -case 404: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1334; - case 32: goto tr1334; - case 40: goto tr1335; - case 41: goto tr1336; - case 3082: goto tr1337; - case 3131: goto tr1338; - case 3338: goto tr1339; - case 3387: goto tr1339; - case 3594: goto tr1340; - case 3643: goto tr1341; - } - goto tr1248; -st405: - if ( ++p == pe ) - goto _test_eof405; -case 405: - switch( (*p) ) { - case 82: goto st406; - case 114: goto st406; - } - goto tr1248; -st406: - if ( ++p == pe ) - goto _test_eof406; -case 406: - switch( (*p) ) { - case 84: goto st407; - case 116: goto st407; - } - goto tr1248; -st407: - if ( ++p == pe ) - goto _test_eof407; -case 407: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1344; - case 32: goto tr1344; - case 40: goto tr1345; - case 41: goto tr1346; - case 3082: goto tr1347; - case 3131: goto tr1348; - case 3338: goto tr1349; - case 3387: goto tr1349; - case 3594: goto tr1350; - case 3643: goto tr1351; - } - goto tr1248; -st408: - if ( ++p == pe ) - goto _test_eof408; -case 408: - switch( (*p) ) { - case 65: goto st409; - case 97: goto st409; - } - goto tr1248; -st409: - if ( ++p == pe ) - goto _test_eof409; -case 409: - switch( (*p) ) { - case 77: goto st410; - case 109: goto st410; - } - goto tr1248; -st410: - if ( ++p == pe ) - goto _test_eof410; -case 410: - switch( (*p) ) { - case 69: goto st411; - case 101: goto st411; - } - goto tr1248; -st411: - if ( ++p == pe ) - goto _test_eof411; -case 411: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1355; - case 32: goto tr1355; - case 40: goto tr1356; - case 41: goto tr1357; - case 3082: goto tr1358; - case 3131: goto tr1359; - case 3338: goto tr1360; - case 3387: goto tr1360; - case 3594: goto tr1361; - case 3643: goto tr1362; - } - goto tr1248; -st412: - if ( ++p == pe ) - goto _test_eof412; -case 412: - switch( (*p) ) { - case 89: goto st413; - case 121: goto st413; - } - goto tr1248; -st413: - if ( ++p == pe ) - goto _test_eof413; -case 413: - switch( (*p) ) { - case 78: goto st414; - case 110: goto st414; - } - goto tr1248; -st414: - if ( ++p == pe ) - goto _test_eof414; -case 414: - switch( (*p) ) { - case 67: goto st415; - case 99: goto st415; - } - goto tr1248; -st415: - if ( ++p == pe ) - goto _test_eof415; -case 415: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1366; - case 32: goto tr1366; - case 40: goto tr1367; - case 41: goto tr1368; - case 3082: goto tr1369; - case 3131: goto tr1370; - case 3338: goto tr1371; - case 3387: goto tr1371; - case 3594: goto tr1372; - case 3643: goto tr1373; - } - goto tr1248; -st416: - if ( ++p == pe ) - goto _test_eof416; -case 416: - switch( (*p) ) { - case 72: goto st417; - case 78: goto st421; - case 83: goto st429; - case 104: goto st417; - case 110: goto st421; - case 115: goto st429; - } - goto tr1248; -st417: - if ( ++p == pe ) - goto _test_eof417; -case 417: - switch( (*p) ) { - case 67: goto st418; - case 99: goto st418; - } - goto tr1248; -st418: - if ( ++p == pe ) - goto _test_eof418; -case 418: - switch( (*p) ) { - case 73: goto st419; - case 105: goto st419; - } - goto tr1248; -st419: - if ( ++p == pe ) - goto _test_eof419; -case 419: - switch( (*p) ) { - case 68: goto st420; - case 100: goto st420; - } - goto tr1248; -st420: - if ( ++p == pe ) - goto _test_eof420; -case 420: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1380; - case 32: goto tr1380; - case 40: goto tr1381; - case 41: goto tr1382; - case 3082: goto tr1383; - case 3131: goto tr1384; - case 3338: goto tr1385; - case 3387: goto tr1385; - case 3594: goto tr1386; - case 3643: goto tr1387; - } - goto tr1248; -st421: - if ( ++p == pe ) - goto _test_eof421; -case 421: - switch( (*p) ) { - case 65: goto st422; - case 83: goto st425; - case 97: goto st422; - case 115: goto st425; - } - goto tr1248; -st422: - if ( ++p == pe ) - goto _test_eof422; -case 422: - switch( (*p) ) { - case 77: goto st423; - case 109: goto st423; - } - goto tr1248; -st423: - if ( ++p == pe ) - goto _test_eof423; -case 423: - switch( (*p) ) { - case 69: goto st424; - case 101: goto st424; - } - goto tr1248; -st424: - if ( ++p == pe ) - goto _test_eof424; -case 424: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1392; - case 32: goto tr1392; - case 40: goto tr1393; - case 41: goto tr1394; - case 3082: goto tr1395; - case 3131: goto tr1396; - case 3338: goto tr1397; - case 3387: goto tr1397; - case 3594: goto tr1398; - case 3643: goto tr1399; - } - goto tr1248; -st425: - if ( ++p == pe ) - goto _test_eof425; -case 425: - switch( (*p) ) { - case 75: goto st426; - case 107: goto st426; - } - goto tr1248; -st426: - if ( ++p == pe ) - goto _test_eof426; -case 426: - switch( (*p) ) { - case 69: goto st427; - case 101: goto st427; - } - goto tr1248; -st427: - if ( ++p == pe ) - goto _test_eof427; -case 427: - switch( (*p) ) { - case 89: goto st428; - case 121: goto st428; - } - goto tr1248; -st428: - if ( ++p == pe ) - goto _test_eof428; -case 428: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1403; - case 32: goto tr1403; - case 40: goto tr1404; - case 41: goto tr1405; - case 3082: goto tr1406; - case 3131: goto tr1407; - case 3338: goto tr1408; - case 3387: goto tr1408; - case 3594: goto tr1409; - case 3643: goto tr1410; - } - goto tr1248; -st429: - if ( ++p == pe ) - goto _test_eof429; -case 429: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1411; - case 32: goto tr1411; - case 40: goto tr1412; - case 41: goto tr1413; - case 89: goto st430; - case 121: goto st430; - case 3082: goto tr1415; - case 3131: goto tr1416; - case 3338: goto tr1417; - case 3387: goto tr1417; - case 3594: goto tr1418; - case 3643: goto tr1419; - } - goto tr1248; -st430: - if ( ++p == pe ) - goto _test_eof430; -case 430: - switch( (*p) ) { - case 78: goto st431; - case 110: goto st431; - } - goto tr1248; -st431: - if ( ++p == pe ) - goto _test_eof431; -case 431: - switch( (*p) ) { - case 67: goto st432; - case 99: goto st432; - } - goto tr1248; -st432: - if ( ++p == pe ) - goto _test_eof432; -case 432: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1422; - case 32: goto tr1422; - case 40: goto tr1423; - case 41: goto tr1424; - case 3082: goto tr1425; - case 3131: goto tr1426; - case 3338: goto tr1427; - case 3387: goto tr1427; - case 3594: goto tr1428; - case 3643: goto tr1429; - } - goto tr1248; -st433: - if ( ++p == pe ) - goto _test_eof433; -case 433: - switch( (*p) ) { - case 85: goto st434; - case 117: goto st434; - } - goto tr1248; -st434: - if ( ++p == pe ) - goto _test_eof434; -case 434: - switch( (*p) ) { - case 73: goto st435; - case 105: goto st435; - } - goto tr1248; -st435: - if ( ++p == pe ) - goto _test_eof435; -case 435: - switch( (*p) ) { - case 52: goto st436; - case 54: goto st438; - } - goto tr1248; -st436: - if ( ++p == pe ) - goto _test_eof436; -case 436: - if ( (*p) == 56 ) - goto st437; - goto tr1248; -st437: - if ( ++p == pe ) - goto _test_eof437; -case 437: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1435; - case 32: goto tr1435; - case 40: goto tr1436; - case 41: goto tr1437; - case 3082: goto tr1438; - case 3131: goto tr1439; - case 3338: goto tr1440; - case 3387: goto tr1440; - case 3594: goto tr1441; - case 3643: goto tr1442; - } - goto tr1248; -st438: - if ( ++p == pe ) - goto _test_eof438; -case 438: - if ( (*p) == 52 ) - goto st439; - goto tr1248; -st439: - if ( ++p == pe ) - goto _test_eof439; -case 439: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1444; - case 32: goto tr1444; - case 40: goto tr1445; - case 41: goto tr1446; - case 3082: goto tr1447; - case 3131: goto tr1448; - case 3338: goto tr1449; - case 3387: goto tr1449; - case 3594: goto tr1450; - case 3643: goto tr1451; - } - goto tr1248; -st440: - if ( ++p == pe ) - goto _test_eof440; -case 440: - switch( (*p) ) { - case 73: goto st441; - case 84: goto st445; - case 105: goto st441; - case 116: goto st445; - } - goto tr1248; -st441: - if ( ++p == pe ) - goto _test_eof441; -case 441: - switch( (*p) ) { - case 78: goto st442; - case 110: goto st442; - } - goto tr1248; -st442: - if ( ++p == pe ) - goto _test_eof442; -case 442: - switch( (*p) ) { - case 70: goto st443; - case 102: goto st443; - } - goto tr1248; -st443: - if ( ++p == pe ) - goto _test_eof443; -case 443: - switch( (*p) ) { - case 79: goto st444; - case 111: goto st444; - } - goto tr1248; -st444: - if ( ++p == pe ) - goto _test_eof444; -case 444: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1457; - case 32: goto tr1457; - case 40: goto tr1458; - case 41: goto tr1459; - case 3082: goto tr1460; - case 3131: goto tr1461; - case 3338: goto tr1462; - case 3387: goto tr1462; - case 3594: goto tr1463; - case 3643: goto tr1464; - } - goto tr1248; -st445: - if ( ++p == pe ) - goto _test_eof445; -case 445: - switch( (*p) ) { - case 84: goto st446; - case 116: goto st446; - } - goto tr1248; -st446: - if ( ++p == pe ) - goto _test_eof446; -case 446: - switch( (*p) ) { - case 80: goto st447; - case 112: goto st447; - } - goto tr1248; -st447: - if ( ++p == pe ) - goto _test_eof447; -case 447: - switch( (*p) ) { - case 83: goto st448; - case 115: goto st448; - } - goto tr1248; -st448: - if ( ++p == pe ) - goto _test_eof448; -case 448: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1468; - case 32: goto tr1468; - case 40: goto tr1469; - case 41: goto tr1470; - case 3082: goto tr1471; - case 3131: goto tr1472; - case 3338: goto tr1473; - case 3387: goto tr1473; - case 3594: goto tr1474; - case 3643: goto tr1475; - } - goto tr1248; -st449: - if ( ++p == pe ) - goto _test_eof449; -case 449: - switch( (*p) ) { - case 80: goto st450; - case 112: goto st450; - } - goto tr1248; -st450: - if ( ++p == pe ) - goto _test_eof450; -case 450: - switch( (*p) ) { - case 83: goto st451; - case 115: goto st451; - } - goto tr1248; -st451: - if ( ++p == pe ) - goto _test_eof451; -case 451: - switch( (*p) ) { - case 69: goto st452; - case 101: goto st452; - } - goto tr1248; -st452: - if ( ++p == pe ) - goto _test_eof452; -case 452: - switch( (*p) ) { - case 67: goto st453; - case 99: goto st453; - } - goto tr1248; -st453: - if ( ++p == pe ) - goto _test_eof453; -case 453: - switch( (*p) ) { - case 75: goto st454; - case 107: goto st454; - } - goto tr1248; -st454: - if ( ++p == pe ) - goto _test_eof454; -case 454: - switch( (*p) ) { - case 69: goto st455; - case 101: goto st455; - } - goto tr1248; -st455: - if ( ++p == pe ) - goto _test_eof455; -case 455: - switch( (*p) ) { - case 89: goto st456; - case 121: goto st456; - } - goto tr1248; -st456: - if ( ++p == pe ) - goto _test_eof456; -case 456: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1483; - case 32: goto tr1483; - case 40: goto tr1484; - case 41: goto tr1485; - case 3082: goto tr1486; - case 3131: goto tr1487; - case 3338: goto tr1488; - case 3387: goto tr1488; - case 3594: goto tr1489; - case 3643: goto tr1490; - } - goto tr1248; -st457: - if ( ++p == pe ) - goto _test_eof457; -case 457: - switch( (*p) ) { - case 69: goto st458; - case 88: goto st460; - case 101: goto st458; - case 120: goto st460; - } - goto tr1248; -st458: - if ( ++p == pe ) - goto _test_eof458; -case 458: - switch( (*p) ) { - case 89: goto st459; - case 121: goto st459; - } - goto tr1248; -st459: - if ( ++p == pe ) - goto _test_eof459; -case 459: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1494; - case 32: goto tr1494; - case 40: goto tr1495; - case 41: goto tr1496; - case 3082: goto tr1497; - case 3131: goto tr1498; - case 3338: goto tr1499; - case 3387: goto tr1499; - case 3594: goto tr1500; - case 3643: goto tr1501; - } - goto tr1248; -st460: - if ( ++p == pe ) - goto _test_eof460; -case 460: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1502; - case 32: goto tr1502; - case 40: goto tr1503; - case 41: goto tr1504; - case 3082: goto tr1505; - case 3131: goto tr1506; - case 3338: goto tr1507; - case 3387: goto tr1507; - case 3594: goto tr1508; - case 3643: goto tr1509; - } - goto tr1248; -st461: - if ( ++p == pe ) - goto _test_eof461; -case 461: - switch( (*p) ) { - case 51: goto st462; - case 54: goto st464; - case 79: goto st466; - case 80: goto st468; - case 111: goto st466; - case 112: goto st468; - } - goto tr1248; -st462: - if ( ++p == pe ) - goto _test_eof462; -case 462: - if ( (*p) == 50 ) - goto st463; - goto tr1248; -st463: - if ( ++p == pe ) - goto _test_eof463; -case 463: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1515; - case 32: goto tr1515; - case 40: goto tr1516; - case 41: goto tr1517; - case 3082: goto tr1518; - case 3131: goto tr1519; - case 3338: goto tr1520; - case 3387: goto tr1520; - case 3594: goto tr1521; - case 3643: goto tr1522; - } - goto tr1248; -st464: - if ( ++p == pe ) - goto _test_eof464; -case 464: - if ( (*p) == 52 ) - goto st465; - goto tr1248; -st465: - if ( ++p == pe ) - goto _test_eof465; -case 465: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1524; - case 32: goto tr1524; - case 40: goto tr1525; - case 41: goto tr1526; - case 3082: goto tr1527; - case 3131: goto tr1528; - case 3338: goto tr1529; - case 3387: goto tr1529; - case 3594: goto tr1530; - case 3643: goto tr1531; - } - goto tr1248; -st466: - if ( ++p == pe ) - goto _test_eof466; -case 466: - switch( (*p) ) { - case 67: goto st467; - case 99: goto st467; - } - goto tr1248; -st467: - if ( ++p == pe ) - goto _test_eof467; -case 467: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1533; - case 32: goto tr1533; - case 40: goto tr1534; - case 41: goto tr1535; - case 3082: goto tr1536; - case 3131: goto tr1537; - case 3338: goto tr1538; - case 3387: goto tr1538; - case 3594: goto tr1539; - case 3643: goto tr1540; - } - goto tr1248; -st468: - if ( ++p == pe ) - goto _test_eof468; -case 468: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1541; - case 32: goto tr1541; - case 40: goto tr1542; - case 41: goto tr1543; - case 3082: goto tr1544; - case 3131: goto tr1545; - case 3338: goto tr1546; - case 3387: goto tr1546; - case 3594: goto tr1547; - case 3643: goto tr1548; - } - goto tr1248; -st469: - if ( ++p == pe ) - goto _test_eof469; -case 469: - switch( (*p) ) { - case 73: goto st470; - case 88: goto st474; - case 105: goto st470; - case 120: goto st474; - } - goto tr1248; -st470: - if ( ++p == pe ) - goto _test_eof470; -case 470: - switch( (*p) ) { - case 78: goto st471; - case 110: goto st471; - } - goto tr1248; -st471: - if ( ++p == pe ) - goto _test_eof471; -case 471: - switch( (*p) ) { - case 70: goto st472; - case 102: goto st472; - } - goto tr1248; -st472: - if ( ++p == pe ) - goto _test_eof472; -case 472: - switch( (*p) ) { - case 79: goto st473; - case 111: goto st473; - } - goto tr1248; -st473: - if ( ++p == pe ) - goto _test_eof473; -case 473: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1554; - case 32: goto tr1554; - case 40: goto tr1555; - case 41: goto tr1556; - case 3082: goto tr1557; - case 3131: goto tr1558; - case 3338: goto tr1559; - case 3387: goto tr1559; - case 3594: goto tr1560; - case 3643: goto tr1561; - } - goto tr1248; -st474: - if ( ++p == pe ) - goto _test_eof474; -case 474: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1562; - case 32: goto tr1562; - case 40: goto tr1563; - case 41: goto tr1564; - case 3082: goto tr1565; - case 3131: goto tr1566; - case 3338: goto tr1567; - case 3387: goto tr1567; - case 3594: goto tr1568; - case 3643: goto tr1569; - } - goto tr1248; -st475: - if ( ++p == pe ) - goto _test_eof475; -case 475: - switch( (*p) ) { - case 65: goto st476; - case 73: goto st480; - case 83: goto st482; - case 97: goto st476; - case 105: goto st480; - case 115: goto st482; - } - goto tr1248; -st476: - if ( ++p == pe ) - goto _test_eof476; -case 476: - switch( (*p) ) { - case 80: goto st477; - case 112: goto st477; - } - goto tr1248; -st477: - if ( ++p == pe ) - goto _test_eof477; -case 477: - switch( (*p) ) { - case 84: goto st478; - case 116: goto st478; - } - goto tr1248; -st478: - if ( ++p == pe ) - goto _test_eof478; -case 478: - switch( (*p) ) { - case 82: goto st479; - case 114: goto st479; - } - goto tr1248; -st479: - if ( ++p == pe ) - goto _test_eof479; -case 479: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1576; - case 32: goto tr1576; - case 40: goto tr1577; - case 41: goto tr1578; - case 3082: goto tr1579; - case 3131: goto tr1580; - case 3338: goto tr1581; - case 3387: goto tr1581; - case 3594: goto tr1582; - case 3643: goto tr1583; - } - goto tr1248; -st480: - if ( ++p == pe ) - goto _test_eof480; -case 480: - switch( (*p) ) { - case 68: goto st481; - case 100: goto st481; - } - goto tr1248; -st481: - if ( ++p == pe ) - goto _test_eof481; -case 481: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1585; - case 32: goto tr1585; - case 40: goto tr1586; - case 41: goto tr1587; - case 3082: goto tr1588; - case 3131: goto tr1589; - case 3338: goto tr1590; - case 3387: goto tr1590; - case 3594: goto tr1591; - case 3643: goto tr1592; - } - goto tr1248; -st482: - if ( ++p == pe ) - goto _test_eof482; -case 482: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1593; - case 32: goto tr1593; - case 40: goto tr1594; - case 41: goto tr1595; - case 69: goto st483; - case 101: goto st483; - case 3082: goto tr1597; - case 3131: goto tr1598; - case 3338: goto tr1599; - case 3387: goto tr1599; - case 3594: goto tr1600; - case 3643: goto tr1601; - } - goto tr1248; -st483: - if ( ++p == pe ) - goto _test_eof483; -case 483: - switch( (*p) ) { - case 67: goto st484; - case 99: goto st484; - } - goto tr1248; -st484: - if ( ++p == pe ) - goto _test_eof484; -case 484: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1603; - case 32: goto tr1603; - case 40: goto tr1604; - case 41: goto tr1605; - case 51: goto st485; - case 3082: goto tr1607; - case 3131: goto tr1608; - case 3338: goto tr1609; - case 3387: goto tr1609; - case 3594: goto tr1610; - case 3643: goto tr1611; - } - goto tr1248; -st485: - if ( ++p == pe ) - goto _test_eof485; -case 485: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1612; - case 32: goto tr1612; - case 40: goto tr1613; - case 41: goto tr1614; - case 80: goto st486; - case 112: goto st486; - case 3082: goto tr1616; - case 3131: goto tr1617; - case 3338: goto tr1618; - case 3387: goto tr1618; - case 3594: goto tr1619; - case 3643: goto tr1620; - } - goto tr1248; -st486: - if ( ++p == pe ) - goto _test_eof486; -case 486: - switch( (*p) ) { - case 65: goto st487; - case 97: goto st487; - } - goto tr1248; -st487: - if ( ++p == pe ) - goto _test_eof487; -case 487: - switch( (*p) ) { - case 82: goto st488; - case 114: goto st488; - } - goto tr1248; -st488: - if ( ++p == pe ) - goto _test_eof488; -case 488: - switch( (*p) ) { - case 65: goto st489; - case 97: goto st489; - } - goto tr1248; -st489: - if ( ++p == pe ) - goto _test_eof489; -case 489: - switch( (*p) ) { - case 77: goto st490; - case 109: goto st490; - } - goto tr1248; -st490: - if ( ++p == pe ) - goto _test_eof490; -case 490: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1625; - case 32: goto tr1625; - case 40: goto tr1626; - case 41: goto tr1627; - case 3082: goto tr1628; - case 3131: goto tr1629; - case 3338: goto tr1630; - case 3387: goto tr1630; - case 3594: goto tr1631; - case 3643: goto tr1632; - } - goto tr1248; -st491: - if ( ++p == pe ) - goto _test_eof491; -case 491: - switch( (*p) ) { - case 80: goto st492; - case 112: goto st492; - } - goto tr1248; -st492: - if ( ++p == pe ) - goto _test_eof492; -case 492: - switch( (*p) ) { - case 69: goto st493; - case 101: goto st493; - } - goto tr1248; -st493: - if ( ++p == pe ) - goto _test_eof493; -case 493: - switch( (*p) ) { - case 78: goto st494; - case 110: goto st494; - } - goto tr1248; -st494: - if ( ++p == pe ) - goto _test_eof494; -case 494: - switch( (*p) ) { - case 80: goto st495; - case 112: goto st495; - } - goto tr1248; -st495: - if ( ++p == pe ) - goto _test_eof495; -case 495: - switch( (*p) ) { - case 71: goto st496; - case 103: goto st496; - } - goto tr1248; -st496: - if ( ++p == pe ) - goto _test_eof496; -case 496: - switch( (*p) ) { - case 80: goto st497; - case 112: goto st497; - } - goto tr1248; -st497: - if ( ++p == pe ) - goto _test_eof497; -case 497: - switch( (*p) ) { - case 75: goto st498; - case 107: goto st498; - } - goto tr1248; -st498: - if ( ++p == pe ) - goto _test_eof498; -case 498: - switch( (*p) ) { - case 69: goto st499; - case 101: goto st499; - } - goto tr1248; -st499: - if ( ++p == pe ) - goto _test_eof499; -case 499: - switch( (*p) ) { - case 89: goto st500; - case 121: goto st500; - } - goto tr1248; -st500: - if ( ++p == pe ) - goto _test_eof500; -case 500: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1642; - case 32: goto tr1642; - case 40: goto tr1643; - case 41: goto tr1644; - case 3082: goto tr1645; - case 3131: goto tr1646; - case 3338: goto tr1647; - case 3387: goto tr1647; - case 3594: goto tr1648; - case 3643: goto tr1649; - } - goto tr1248; -st501: - if ( ++p == pe ) - goto _test_eof501; -case 501: - switch( (*p) ) { - case 84: goto st502; - case 116: goto st502; - } - goto tr1248; -st502: - if ( ++p == pe ) - goto _test_eof502; -case 502: - switch( (*p) ) { - case 82: goto st503; - case 114: goto st503; - } - goto tr1248; -st503: - if ( ++p == pe ) - goto _test_eof503; -case 503: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1652; - case 32: goto tr1652; - case 40: goto tr1653; - case 41: goto tr1654; - case 3082: goto tr1655; - case 3131: goto tr1656; - case 3338: goto tr1657; - case 3387: goto tr1657; - case 3594: goto tr1658; - case 3643: goto tr1659; - } - goto tr1248; -st504: - if ( ++p == pe ) - goto _test_eof504; -case 504: - switch( (*p) ) { - case 80: goto st505; - case 82: goto st506; - case 84: goto st510; - case 112: goto st505; - case 114: goto st506; - case 116: goto st510; - } - goto tr1248; -st505: - if ( ++p == pe ) - goto _test_eof505; -case 505: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1663; - case 32: goto tr1663; - case 40: goto tr1664; - case 41: goto tr1665; - case 3082: goto tr1666; - case 3131: goto tr1667; - case 3338: goto tr1668; - case 3387: goto tr1668; - case 3594: goto tr1669; - case 3643: goto tr1670; - } - goto tr1248; -st506: - if ( ++p == pe ) - goto _test_eof506; -case 506: - switch( (*p) ) { - case 83: goto st507; - case 115: goto st507; - } - goto tr1248; -st507: - if ( ++p == pe ) - goto _test_eof507; -case 507: - switch( (*p) ) { - case 73: goto st508; - case 105: goto st508; - } - goto tr1248; -st508: - if ( ++p == pe ) - goto _test_eof508; -case 508: - switch( (*p) ) { - case 71: goto st509; - case 103: goto st509; - } - goto tr1248; -st509: - if ( ++p == pe ) - goto _test_eof509; -case 509: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1674; - case 32: goto tr1674; - case 40: goto tr1675; - case 41: goto tr1676; - case 3082: goto tr1677; - case 3131: goto tr1678; - case 3338: goto tr1679; - case 3387: goto tr1679; - case 3594: goto tr1680; - case 3643: goto tr1681; - } - goto tr1248; -st510: - if ( ++p == pe ) - goto _test_eof510; -case 510: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1682; - case 32: goto tr1682; - case 40: goto tr1683; - case 41: goto tr1684; - case 3082: goto tr1685; - case 3131: goto tr1686; - case 3338: goto tr1687; - case 3387: goto tr1687; - case 3594: goto tr1688; - case 3643: goto tr1689; - } - goto tr1248; -st511: - if ( ++p == pe ) - goto _test_eof511; -case 511: - switch( (*p) ) { - case 77: goto st512; - case 79: goto st517; - case 80: goto st519; - case 82: goto st521; - case 83: goto st523; - case 86: goto st527; - case 109: goto st512; - case 111: goto st517; - case 112: goto st519; - case 114: goto st521; - case 115: goto st523; - case 118: goto st527; - } - goto tr1248; -st512: - if ( ++p == pe ) - goto _test_eof512; -case 512: - switch( (*p) ) { - case 73: goto st513; - case 105: goto st513; - } - goto tr1248; -st513: - if ( ++p == pe ) - goto _test_eof513; -case 513: - switch( (*p) ) { - case 77: goto st514; - case 109: goto st514; - } - goto tr1248; -st514: - if ( ++p == pe ) - goto _test_eof514; -case 514: - switch( (*p) ) { - case 69: goto st515; - case 101: goto st515; - } - goto tr1248; -st515: - if ( ++p == pe ) - goto _test_eof515; -case 515: - switch( (*p) ) { - case 65: goto st516; - case 97: goto st516; - } - goto tr1248; -st516: - if ( ++p == pe ) - goto _test_eof516; -case 516: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1700; - case 32: goto tr1700; - case 40: goto tr1701; - case 41: goto tr1702; - case 3082: goto tr1703; - case 3131: goto tr1704; - case 3338: goto tr1705; - case 3387: goto tr1705; - case 3594: goto tr1706; - case 3643: goto tr1707; - } - goto tr1248; -st517: - if ( ++p == pe ) - goto _test_eof517; -case 517: - switch( (*p) ) { - case 65: goto st518; - case 97: goto st518; - } - goto tr1248; -st518: - if ( ++p == pe ) - goto _test_eof518; -case 518: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1709; - case 32: goto tr1709; - case 40: goto tr1710; - case 41: goto tr1711; - case 3082: goto tr1712; - case 3131: goto tr1713; - case 3338: goto tr1714; - case 3387: goto tr1714; - case 3594: goto tr1715; - case 3643: goto tr1716; - } - goto tr1248; -st519: - if ( ++p == pe ) - goto _test_eof519; -case 519: - switch( (*p) ) { - case 70: goto st520; - case 102: goto st520; - } - goto tr1248; -st520: - if ( ++p == pe ) - goto _test_eof520; -case 520: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1718; - case 32: goto tr1718; - case 40: goto tr1719; - case 41: goto tr1720; - case 3082: goto tr1721; - case 3131: goto tr1722; - case 3338: goto tr1723; - case 3387: goto tr1723; - case 3594: goto tr1724; - case 3643: goto tr1725; - } - goto tr1248; -st521: - if ( ++p == pe ) - goto _test_eof521; -case 521: - switch( (*p) ) { - case 86: goto st522; - case 118: goto st522; - } - goto tr1248; -st522: - if ( ++p == pe ) - goto _test_eof522; -case 522: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1727; - case 32: goto tr1727; - case 40: goto tr1728; - case 41: goto tr1729; - case 3082: goto tr1730; - case 3131: goto tr1731; - case 3338: goto tr1732; - case 3387: goto tr1732; - case 3594: goto tr1733; - case 3643: goto tr1734; - } - goto tr1248; -st523: - if ( ++p == pe ) - goto _test_eof523; -case 523: - switch( (*p) ) { - case 72: goto st524; - case 104: goto st524; - } - goto tr1248; -st524: - if ( ++p == pe ) - goto _test_eof524; -case 524: - switch( (*p) ) { - case 70: goto st525; - case 102: goto st525; - } - goto tr1248; -st525: - if ( ++p == pe ) - goto _test_eof525; -case 525: - switch( (*p) ) { - case 80: goto st526; - case 112: goto st526; - } - goto tr1248; -st526: - if ( ++p == pe ) - goto _test_eof526; -case 526: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1738; - case 32: goto tr1738; - case 40: goto tr1739; - case 41: goto tr1740; - case 3082: goto tr1741; - case 3131: goto tr1742; - case 3338: goto tr1743; - case 3387: goto tr1743; - case 3594: goto tr1744; - case 3643: goto tr1745; - } - goto tr1248; -st527: - if ( ++p == pe ) - goto _test_eof527; -case 527: - switch( (*p) ) { - case 67: goto st528; - case 99: goto st528; - } - goto tr1248; -st528: - if ( ++p == pe ) - goto _test_eof528; -case 528: - switch( (*p) ) { - case 66: goto st529; - case 98: goto st529; - } - goto tr1248; -st529: - if ( ++p == pe ) - goto _test_eof529; -case 529: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1748; - case 32: goto tr1748; - case 40: goto tr1749; - case 41: goto tr1750; - case 3082: goto tr1751; - case 3131: goto tr1752; - case 3338: goto tr1753; - case 3387: goto tr1753; - case 3594: goto tr1754; - case 3643: goto tr1755; - } - goto tr1248; -st530: - if ( ++p == pe ) - goto _test_eof530; -case 530: - switch( (*p) ) { - case 76: goto st531; - case 88: goto st534; - case 89: goto st536; - case 108: goto st531; - case 120: goto st534; - case 121: goto st536; - } - goto tr1248; -st531: - if ( ++p == pe ) - goto _test_eof531; -case 531: - switch( (*p) ) { - case 83: goto st532; - case 115: goto st532; - } - goto tr1248; -st532: - if ( ++p == pe ) - goto _test_eof532; -case 532: - switch( (*p) ) { - case 65: goto st533; - case 97: goto st533; - } - goto tr1248; -st533: - if ( ++p == pe ) - goto _test_eof533; -case 533: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1761; - case 32: goto tr1761; - case 40: goto tr1762; - case 41: goto tr1763; - case 3082: goto tr1764; - case 3131: goto tr1765; - case 3338: goto tr1766; - case 3387: goto tr1766; - case 3594: goto tr1767; - case 3643: goto tr1768; - } - goto tr1248; -st534: - if ( ++p == pe ) - goto _test_eof534; -case 534: - switch( (*p) ) { - case 84: goto st535; - case 116: goto st535; - } - goto tr1248; -st535: - if ( ++p == pe ) - goto _test_eof535; -case 535: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1770; - case 32: goto tr1770; - case 40: goto tr1771; - case 41: goto tr1772; - case 3082: goto tr1773; - case 3131: goto tr1774; - case 3338: goto tr1775; - case 3387: goto tr1775; - case 3594: goto tr1776; - case 3643: goto tr1777; - } - goto tr1248; -st536: - if ( ++p == pe ) - goto _test_eof536; -case 536: - switch( (*p) ) { - case 80: goto st537; - case 112: goto st537; + } + } + } } - goto tr1248; -st537: - if ( ++p == pe ) - goto _test_eof537; -case 537: - switch( (*p) ) { - case 69: goto st538; - case 101: goto st538; + { + p--; {cs = stack[--top];goto _again;} } - goto tr1248; -st538: - if ( ++p == pe ) - goto _test_eof538; -case 538: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1780; - goto tr1248; -tr1780: + goto st1498; +tr1824: + { window_add_bit(KNOT_RRTYPE_NS, s); } { - s->number64 = 0; + s->line_counter++; } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st539; -tr1784: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } - goto st539; -st539: - if ( ++p == pe ) - goto _test_eof539; -case 539: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + goto st1498; +tr1834: + { window_add_bit(KNOT_RRTYPE_NSEC, s); } + { + s->line_counter++; } - switch( _widec ) { - case 9: goto tr1781; - case 32: goto tr1781; - case 40: goto tr1782; - case 41: goto tr1783; - case 3082: goto tr1785; - case 3131: goto tr1786; - case 3338: goto tr1787; - case 3387: goto tr1787; - case 3594: goto tr1788; - case 3643: goto tr1789; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } } - if ( 48 <= _widec && _widec <= 57 ) - goto tr1784; - goto tr1248; -st540: - if ( ++p == pe ) - goto _test_eof540; -case 540: - switch( (*p) ) { - case 82: goto st541; - case 114: goto st541; + { + p--; {cs = stack[--top];goto _again;} } - goto tr1248; -st541: - if ( ++p == pe ) - goto _test_eof541; -case 541: - switch( (*p) ) { - case 73: goto st542; - case 105: goto st542; + goto st1498; +tr1843: + { window_add_bit(KNOT_RRTYPE_NSEC3, s); } + { + s->line_counter++; } - goto tr1248; -st542: - if ( ++p == pe ) - goto _test_eof542; -case 542: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto tr1792; - case 32: goto tr1792; - case 40: goto tr1793; - case 41: goto tr1794; - case 3082: goto tr1795; - case 3131: goto tr1796; - case 3338: goto tr1797; - case 3387: goto tr1797; - case 3594: goto tr1798; - case 3643: goto tr1799; - } - goto tr1248; -st543: - if ( ++p == pe ) - goto _test_eof543; -case 543: - switch( (*p) ) { - case 65: goto st544; - case 97: goto st544; + { + p--; {cs = stack[--top];goto _again;} } - goto tr1248; -st544: - if ( ++p == pe ) - goto _test_eof544; -case 544: - switch( (*p) ) { - case 76: goto st545; - case 108: goto st545; + goto st1498; +tr1855: + { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } + { + s->line_counter++; } - goto tr1248; -st545: - if ( ++p == pe ) - goto _test_eof545; -case 545: - switch( (*p) ) { - case 76: goto st546; - case 108: goto st546; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } } - goto tr1248; -st546: - if ( ++p == pe ) - goto _test_eof546; -case 546: - switch( (*p) ) { - case 69: goto st547; - case 101: goto st547; + { + p--; {cs = stack[--top];goto _again;} } - goto tr1248; -st547: - if ( ++p == pe ) - goto _test_eof547; -case 547: - switch( (*p) ) { - case 84: goto st548; - case 116: goto st548; + goto st1498; +tr1872: + { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } + { + s->line_counter++; } - goto tr1248; -st548: - if ( ++p == pe ) - goto _test_eof548; -case 548: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto tr1805; - case 32: goto tr1805; - case 40: goto tr1806; - case 41: goto tr1807; - case 3082: goto tr1808; - case 3131: goto tr1809; - case 3338: goto tr1810; - case 3387: goto tr1810; - case 3594: goto tr1811; - case 3643: goto tr1812; - } - goto tr1248; -st549: - if ( ++p == pe ) - goto _test_eof549; -case 549: - switch( (*p) ) { - case 79: goto st550; - case 111: goto st550; + { + p--; {cs = stack[--top];goto _again;} } - goto tr1248; -st550: - if ( ++p == pe ) - goto _test_eof550; -case 550: - switch( (*p) ) { - case 78: goto st551; - case 110: goto st551; + goto st1498; +tr1882: + { window_add_bit(KNOT_RRTYPE_PTR, s); } + { + s->line_counter++; } - goto tr1248; -st551: - if ( ++p == pe ) - goto _test_eof551; -case 551: - switch( (*p) ) { - case 69: goto st552; - case 101: goto st552; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } } - goto tr1248; -st552: - if ( ++p == pe ) - goto _test_eof552; -case 552: - switch( (*p) ) { - case 77: goto st553; - case 109: goto st553; + { + p--; {cs = stack[--top];goto _again;} } - goto tr1248; -st553: - if ( ++p == pe ) - goto _test_eof553; -case 553: - switch( (*p) ) { - case 68: goto st554; - case 100: goto st554; + goto st1498; +tr1893: + { window_add_bit(KNOT_RRTYPE_RP, s); } + { + s->line_counter++; } - goto tr1248; -st554: - if ( ++p == pe ) - goto _test_eof554; -case 554: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1818; - case 32: goto tr1818; - case 40: goto tr1819; - case 41: goto tr1820; - case 3082: goto tr1821; - case 3131: goto tr1822; - case 3338: goto tr1823; - case 3387: goto tr1823; - case 3594: goto tr1824; - case 3643: goto tr1825; - } - goto tr1248; -st555: - if ( ++p == pe ) - goto _test_eof555; -case 555: - switch( (*p) ) { - case 83: goto st556; - case 115: goto st556; } - goto tr1248; -st556: - if ( ++p == pe ) - goto _test_eof556; -case 556: - switch( (*p) ) { - case 68: goto st557; - case 100: goto st557; + { + p--; {cs = stack[--top];goto _again;} } - goto tr1248; -st557: - if ( ++p == pe ) - goto _test_eof557; -case 557: - switch( (*p) ) { - case 66: goto st558; - case 98: goto st558; + goto st1498; +tr1904: + { window_add_bit(KNOT_RRTYPE_RRSIG, s); } + { + s->line_counter++; } - goto tr1248; -st558: - if ( ++p == pe ) - goto _test_eof558; -case 558: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto tr1829; - case 32: goto tr1829; - case 40: goto tr1830; - case 41: goto tr1831; - case 3082: goto tr1832; - case 3131: goto tr1833; - case 3338: goto tr1834; - case 3387: goto tr1834; - case 3594: goto tr1835; - case 3643: goto tr1836; + { + p--; {cs = stack[--top];goto _again;} } - goto tr1248; -st559: - if ( ++p == pe ) - goto _test_eof559; -case 559: - switch( (*p) ) { - case 76: goto st560; - case 108: goto st560; + goto st1498; +tr1912: + { window_add_bit(KNOT_RRTYPE_RT, s); } + { + s->line_counter++; } - goto tr1248; -st560: - if ( ++p == pe ) - goto _test_eof560; -case 560: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1838; - case 32: goto tr1838; - case 40: goto tr1839; - case 41: goto tr1840; - case 3082: goto tr1841; - case 3131: goto tr1842; - case 3338: goto tr1843; - case 3387: goto tr1843; - case 3594: goto tr1844; - case 3643: goto tr1845; } - goto tr1248; -st561: - if ( ++p == pe ) - goto _test_eof561; -case 561: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + p--; {cs = stack[--top];goto _again;} } - switch( _widec ) { - case 9: goto st562; - case 32: goto st562; - case 40: goto tr1848; - case 41: goto tr1849; - case 2058: goto tr1850; - case 2107: goto tr1851; + goto st1498; +tr1930: + { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } + { + s->line_counter++; } - goto tr1846; -tr1848: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = true; } - goto st562; -tr1849: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st562; -tr1850: + goto st1498; +tr1939: + { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->line_counter++; } - goto st562; -tr1881: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 562; goto _out;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } } } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1498; +tr1948: + { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->line_counter++; } - goto st562; -st562: - if ( ++p == pe ) - goto _test_eof562; -case 562: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto st562; - case 32: goto st562; - case 40: goto tr1848; - case 41: goto tr1849; - case 2058: goto tr1850; - case 2107: goto tr1851; + { + p--; {cs = stack[--top];goto _again;} } - if ( 48 <= _widec && _widec <= 57 ) - goto tr1853; - goto tr1852; -tr1853: + goto st1498; +tr1957: + { window_add_bit(KNOT_RRTYPE_SRV, s); } { - s->number64 = 0; + s->line_counter++; } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st563; -tr1857: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } - goto st563; -st563: - if ( ++p == pe ) - goto _test_eof563; -case 563: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1498; +tr1968: + { window_add_bit(KNOT_RRTYPE_SSHFP, s); } + { + s->line_counter++; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr1854; - case 32: goto tr1854; - case 40: goto tr1855; - case 41: goto tr1856; - case 2058: goto tr1858; - case 2107: goto tr1859; + { + p--; {cs = stack[--top];goto _again;} } - if ( 48 <= _widec && _widec <= 57 ) - goto tr1857; - goto tr1852; -tr1862: + goto st1498; +tr1978: + { window_add_bit(KNOT_RRTYPE_SVCB, s); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->line_counter++; } - goto st564; -tr1863: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = false; } - goto st564; -tr1865: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1498; +tr1991: + { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->line_counter++; } - goto st564; -tr1879: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 564; goto _out;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } } } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1498; +tr2000: + { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->line_counter++; } - goto st564; -tr1854: { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st564; -tr1855: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1498; +tr2012: { if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); + window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->line_counter++; } - goto st564; -tr1856: { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st564; -tr1858: + goto st1498; +tr2022: + { window_add_bit(KNOT_RRTYPE_URI, s); } { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + s->line_counter++; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1498; +tr2035: + { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->line_counter++; } - goto st564; -st564: - if ( ++p == pe ) - goto _test_eof564; -case 564: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto st564; - case 32: goto st564; - case 40: goto tr1862; - case 41: goto tr1863; - case 2058: goto tr1865; - case 2107: goto tr1866; + { + p--; {cs = stack[--top];goto _again;} } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr1864; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr1864; - } else - goto tr1864; - goto tr1860; -tr1864: + goto st1498; +tr2048: + { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + s->line_counter++; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st565; -st565: - if ( ++p == pe ) - goto _test_eof565; -case 565: - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1867; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr1867; - } else - goto tr1867; - goto tr1860; -tr1869: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {cs = stack[--top];goto _again;} + } + goto st1498; +tr2059: + { window_add_bit(KNOT_RRTYPE_AFSDB, s); } + { + s->line_counter++; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = true; } - goto st566; -tr1870: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st566; -tr1871: + goto st1498; +tr2068: + { window_add_bit(KNOT_RRTYPE_APL, s); } { s->line_counter++; } - goto st566; -tr1877: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 566; goto _out;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } } } { - s->line_counter++; - } - goto st566; -tr1867: - { - *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; - rdata_tail++; + p--; {cs = stack[--top];goto _again;} } - goto st566; -st566: + goto st1498; +st1498: if ( ++p == pe ) - goto _test_eof566; -case 566: + goto _test_eof1498; +case 1498: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57722,99 +55034,84 @@ case 566: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st566; - case 32: goto st566; - case 40: goto tr1869; - case 41: goto tr1870; - case 3082: goto tr1871; - case 3131: goto tr1872; - case 3338: goto tr1873; - case 3387: goto tr1873; - case 3594: goto tr1874; - case 3643: goto tr1875; - } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr1864; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr1864; - } else - goto tr1864; - goto tr1860; -tr1872: - { - s->buffer_length = 0; - } - goto st567; -tr1876: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st567; + case 9: goto st560; + case 32: goto st560; + case 40: goto tr1482; + case 41: goto tr1483; + case 65: goto st561; + case 67: goto st566; + case 68: goto st587; + case 69: goto st604; + case 72: goto st611; + case 73: goto st620; + case 75: goto st628; + case 76: goto st632; + case 77: goto st640; + case 78: goto st646; + case 79: goto st662; + case 80: goto st672; + case 82: goto st675; + case 83: goto st682; + case 84: goto st701; + case 85: goto st711; + case 87: goto st714; + case 90: goto st720; + case 97: goto st561; + case 99: goto st566; + case 100: goto st587; + case 101: goto st604; + case 104: goto st611; + case 105: goto st620; + case 107: goto st628; + case 108: goto st632; + case 109: goto st640; + case 110: goto st646; + case 111: goto st662; + case 112: goto st672; + case 114: goto st675; + case 115: goto st682; + case 116: goto st701; + case 117: goto st711; + case 119: goto st714; + case 122: goto st720; + case 3082: goto tr1502; + case 3131: goto tr1503; + case 3338: goto tr1504; + case 3387: goto tr1504; + case 3594: goto tr1505; + case 3643: goto tr1506; + } + goto tr1472; +st566: + if ( ++p == pe ) + goto _test_eof566; +case 566: + switch( (*p) ) { + case 65: goto st567; + case 68: goto st569; + case 69: goto st576; + case 78: goto st579; + case 83: goto st583; + case 97: goto st567; + case 100: goto st569; + case 101: goto st576; + case 110: goto st579; + case 115: goto st583; + } + goto tr1472; st567: if ( ++p == pe ) goto _test_eof567; case 567: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr1877; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1876; - goto tr1860; -tr1873: - { - if ((rdata_tail - s->r_data) != s->r_data_length) { - WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1508; -st1508: - if ( ++p == pe ) - goto _test_eof1508; -case 1508: - goto st0; -tr1874: - { - s->line_counter++; - } - { - if ((rdata_tail - s->r_data) != s->r_data_length) { - WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} - } - } - { - p--; {cs = stack[--top];goto _again;} + switch( (*p) ) { + case 65: goto st568; + case 97: goto st568; } - goto st1509; -st1509: + goto tr1472; +st568: if ( ++p == pe ) - goto _test_eof1509; -case 1509: + goto _test_eof568; +case 568: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57832,2950 +55129,3667 @@ case 1509: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st566; - case 32: goto st566; - case 40: goto tr1869; - case 41: goto tr1870; - case 3082: goto tr1871; - case 3131: goto tr1872; - case 3338: goto tr1873; - case 3387: goto tr1873; - case 3594: goto tr1874; - case 3643: goto tr1875; + case 9: goto tr1536; + case 32: goto tr1536; + case 40: goto tr1537; + case 41: goto tr1538; + case 3082: goto tr1539; + case 3131: goto tr1540; + case 3338: goto tr1541; + case 3387: goto tr1541; + case 3594: goto tr1542; + case 3643: goto tr1543; + } + goto tr1472; +tr1480: + { + memset(s->windows, 0, sizeof(s->windows)); + s->last_window = -1; } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr1864; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr1864; - } else - goto tr1864; - goto tr1860; -tr1875: { s->buffer_length = 0; } { - if ((rdata_tail - s->r_data) != s->r_data_length) { - WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -st1510: - if ( ++p == pe ) - goto _test_eof1510; -case 1510: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr1877; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1876; - goto tr1860; -tr1866: + goto st1499; +tr1506: { s->buffer_length = 0; } - goto st568; -tr1878: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st568; -tr1859: { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1517: + { window_add_bit(KNOT_RRTYPE_A, s); } { s->buffer_length = 0; } - goto st568; -st568: - if ( ++p == pe ) - goto _test_eof568; -case 568: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr1879; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1878; - goto tr1846; -tr1851: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1499; +tr1527: + { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->buffer_length = 0; } - goto st569; -tr1880: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st569; -st569: - if ( ++p == pe ) - goto _test_eof569; -case 569: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + p--; {cs = stack[--top];goto _again;} } - if ( _widec == 2058 ) - goto tr1881; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1880; - goto tr1846; -st570: - if ( ++p == pe ) - goto _test_eof570; -case 570: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1499; +tr1543: + { window_add_bit(KNOT_RRTYPE_CAA, s); } + { + s->buffer_length = 0; } - switch( _widec ) { - case 9: goto st571; - case 32: goto st571; - case 40: goto tr1883; - case 41: goto tr1884; - case 2058: goto tr1885; - case 2107: goto tr1886; - } - goto tr1846; -tr1883: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = true; } - goto st571; -tr1884: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st571; -tr1885: + goto st1499; +tr1557: + { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { - s->line_counter++; + s->buffer_length = 0; } - goto st571; -tr1921: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 571; goto _out;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } } } { - s->line_counter++; - } - goto st571; -st571: - if ( ++p == pe ) - goto _test_eof571; -case 571: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st571; - case 32: goto st571; - case 40: goto tr1883; - case 41: goto tr1884; - case 48: goto tr1887; - case 2058: goto tr1885; - case 2107: goto tr1886; + p--; {cs = stack[--top];goto _again;} } - if ( 49 <= _widec && _widec <= 57 ) - goto tr1888; - goto tr1852; -tr1887: + goto st1499; +tr1565: + { window_add_bit(KNOT_RRTYPE_CDS, s); } { - s->number64 = 0; + s->buffer_length = 0; } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } - } - goto st572; -st572: - if ( ++p == pe ) - goto _test_eof572; -case 572: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr1889; - case 32: goto tr1889; - case 40: goto tr1890; - case 41: goto tr1891; - case 1802: goto tr1893; - case 1851: goto tr1893; - case 2058: goto tr1894; - case 2107: goto tr1895; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr1892; - goto tr1852; -tr1889: { p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1575: + { window_add_bit(KNOT_RRTYPE_CERT, s); } { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st1511; -tr1890: { p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1586: + { window_add_bit(KNOT_RRTYPE_CNAME, s); } { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = true; } - goto st1511; -tr1891: { p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1597: + { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = false; } - goto st1511; -tr1894: { p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1611: + { window_add_bit(KNOT_RRTYPE_DHCID, s); } { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } - { - s->line_counter++; - } - goto st1511; -st1511: - if ( ++p == pe ) - goto _test_eof1511; -case 1511: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st573; - case 32: goto st573; - case 40: goto tr1897; - case 41: goto tr1898; - case 2058: goto tr1900; - case 2107: goto tr1901; + s->buffer_length = 0; } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr1899; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr1899; - } else - goto tr1899; - goto tr1860; -tr1897: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = true; } - goto st573; -tr1898: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st573; -tr1900: + goto st1499; +tr1623: + { window_add_bit(KNOT_RRTYPE_DNAME, s); } { - s->line_counter++; + s->buffer_length = 0; } - goto st573; -tr1914: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 573; goto _out;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } } } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st573; -tr1915: + goto st1499; +tr1634: + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } - goto st573; -tr1916: { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st573; -tr1917: + goto st1499; +tr1643: + { window_add_bit(KNOT_RRTYPE_DS, s); } { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = false; } - goto st573; -tr1918: { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1653: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { - s->line_counter++; + s->buffer_length = 0; } - goto st573; -st573: - if ( ++p == pe ) - goto _test_eof573; -case 573: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto st573; - case 32: goto st573; - case 40: goto tr1897; - case 41: goto tr1898; - case 2058: goto tr1900; - case 2107: goto tr1901; + { + p--; {cs = stack[--top];goto _again;} } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr1899; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr1899; - } else - goto tr1899; - goto tr1860; -tr1899: + goto st1499; +tr1666: + { window_add_bit(KNOT_RRTYPE_EUI48, s); } { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } - goto st574; -st574: - if ( ++p == pe ) - goto _test_eof574; -case 574: - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1902; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr1902; - } else - goto tr1902; - goto tr1860; -tr1904: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = true; } - goto st575; -tr1905: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st575; -tr1906: + goto st1499; +tr1675: + { window_add_bit(KNOT_RRTYPE_EUI64, s); } { - s->line_counter++; + s->buffer_length = 0; } - goto st575; -tr1912: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 575; goto _out;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } } } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st575; -tr1902: + goto st1499; +tr1688: + { window_add_bit(KNOT_RRTYPE_HINFO, s); } { - *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; - rdata_tail++; + s->buffer_length = 0; } - goto st575; -st575: - if ( ++p == pe ) - goto _test_eof575; -case 575: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto st575; - case 32: goto st575; - case 40: goto tr1904; - case 41: goto tr1905; - case 3082: goto tr1906; - case 3131: goto tr1907; - case 3338: goto tr1908; - case 3387: goto tr1908; - case 3594: goto tr1909; - case 3643: goto tr1910; + { + p--; {cs = stack[--top];goto _again;} } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr1899; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr1899; - } else - goto tr1899; - goto tr1860; -tr1907: + goto st1499; +tr1699: + { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->buffer_length = 0; } - goto st576; -tr1911: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st576; -st576: - if ( ++p == pe ) - goto _test_eof576; -case 576: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } } - if ( _widec == 2058 ) - goto tr1912; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1911; - goto tr1860; -tr1893: { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr1908: + goto st1499; +tr1714: + { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { - if ((rdata_tail - s->r_data) != s->r_data_length) { - WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -st1512: - if ( ++p == pe ) - goto _test_eof1512; -case 1512: - goto tr1846; -tr1909: + goto st1499; +tr1725: + { window_add_bit(KNOT_RRTYPE_KEY, s); } { - s->line_counter++; + s->buffer_length = 0; } { - if ((rdata_tail - s->r_data) != s->r_data_length) { - WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { p--; {cs = stack[--top];goto _again;} } - goto st1513; -st1513: - if ( ++p == pe ) - goto _test_eof1513; -case 1513: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto st575; - case 32: goto st575; - case 40: goto tr1904; - case 41: goto tr1905; - case 3082: goto tr1906; - case 3131: goto tr1907; - case 3338: goto tr1908; - case 3387: goto tr1908; - case 3594: goto tr1909; - case 3643: goto tr1910; - } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr1899; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr1899; - } else - goto tr1899; - goto tr1860; -tr1910: + goto st1499; +tr1733: + { window_add_bit(KNOT_RRTYPE_KX, s); } { s->buffer_length = 0; } { - if ((rdata_tail - s->r_data) != s->r_data_length) { - WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -st1514: - if ( ++p == pe ) - goto _test_eof1514; -case 1514: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr1912; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1911; - goto tr1860; -tr1901: + goto st1499; +tr1746: + { window_add_bit(KNOT_RRTYPE_L32, s); } { s->buffer_length = 0; } - goto st577; -tr1913: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st577; -tr1919: { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1755: + { window_add_bit(KNOT_RRTYPE_L64, s); } { s->buffer_length = 0; } - goto st577; -st577: - if ( ++p == pe ) - goto _test_eof577; -case 577: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr1914; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1913; - goto tr1846; -tr1888: { - s->number64 = 0; + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1764: + { window_add_bit(KNOT_RRTYPE_LOC, s); } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } - goto st578; -tr1892: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } - } - goto st578; -st578: - if ( ++p == pe ) - goto _test_eof578; -case 578: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr1915; - case 32: goto tr1915; - case 40: goto tr1916; - case 41: goto tr1917; - case 2058: goto tr1918; - case 2107: goto tr1919; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr1892; - goto tr1852; -tr1895: { p--; {cs = stack[--top];goto _again;} } - { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } + goto st1499; +tr1772: + { window_add_bit(KNOT_RRTYPE_LP, s); } { s->buffer_length = 0; } - goto st1515; -st1515: - if ( ++p == pe ) - goto _test_eof1515; -case 1515: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr1914; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1913; - goto tr1846; -tr1886: { - s->buffer_length = 0; + p--; {cs = stack[--top];goto _again;} } - goto st579; -tr1920: + goto st1499; +tr1785: + { window_add_bit(KNOT_RRTYPE_MINFO, s); } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st579; -st579: - if ( ++p == pe ) - goto _test_eof579; -case 579: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr1921; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1920; - goto tr1846; -st580: - if ( ++p == pe ) - goto _test_eof580; -case 580: - switch( (*p) ) { - case 97: goto tr1923; - case 100: goto tr1924; - case 101: goto tr1925; - case 105: goto tr1926; - case 107: goto tr1927; - case 110: goto tr1928; - case 111: goto tr1929; - case 112: goto tr1930; + s->buffer_length = 0; } - goto tr1922; -tr1923: { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st581; -st581: - if ( ++p == pe ) - goto _test_eof581; -case 581: - if ( (*p) == 108 ) - goto st582; - goto tr1922; -st582: - if ( ++p == pe ) - goto _test_eof582; -case 582: - if ( (*p) == 112 ) - goto st583; - goto tr1922; -st583: - if ( ++p == pe ) - goto _test_eof583; -case 583: - if ( (*p) == 110 ) - goto st584; - goto tr1922; -st584: - if ( ++p == pe ) - goto _test_eof584; -case 584: - switch( (*p) ) { - case 32: goto tr1934; - case 34: goto tr1934; - case 44: goto tr1934; - case 59: goto tr1934; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1934; - } else if ( (*p) >= 9 ) - goto tr1934; - goto tr1922; -tr1934: - { - uint16_t val = htons(1); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1941: + goto st1499; +tr1793: + { window_add_bit(KNOT_RRTYPE_MX, s); } { - uint16_t val = htons(7); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->buffer_length = 0; } { - p--; {cs = stack[--top];goto _again;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } } - goto st1516; -tr1944: { - uint16_t val = htons(5); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1807: + { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { - p--; {cs = stack[--top];goto _again;} + s->buffer_length = 0; } - goto st1516; -tr1953: { - uint16_t val = htons(4); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } } { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1958: - { - uint16_t val = htons(6); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } + goto st1499; +tr1816: + { window_add_bit(KNOT_RRTYPE_NID, s); } { - p--; {cs = stack[--top];goto _again;} + s->buffer_length = 0; } - goto st1516; -tr1963: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1979: + goto st1499; +tr1825: + { window_add_bit(KNOT_RRTYPE_NS, s); } { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->buffer_length = 0; } { - p--; {cs = stack[--top];goto _again;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } } - goto st1516; -tr1984: { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1835: + { window_add_bit(KNOT_RRTYPE_NSEC, s); } { - p--; {cs = stack[--top];goto _again;} + s->buffer_length = 0; } - goto st1516; -tr1988: { - uint16_t val = htons(3); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } } { p--; {cs = stack[--top];goto _again;} } - goto st1516; -st1516: - if ( ++p == pe ) - goto _test_eof1516; -case 1516: - goto st0; -tr1924: + goto st1499; +tr1844: + { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - goto st585; -st585: - if ( ++p == pe ) - goto _test_eof585; -case 585: - if ( (*p) == 111 ) - goto st586; - goto tr1922; -st586: - if ( ++p == pe ) - goto _test_eof586; -case 586: - if ( (*p) == 104 ) - goto st587; - goto tr1922; -st587: - if ( ++p == pe ) - goto _test_eof587; -case 587: - if ( (*p) == 112 ) - goto st588; - goto tr1922; -st588: - if ( ++p == pe ) - goto _test_eof588; -case 588: - if ( (*p) == 97 ) - goto st589; - goto tr1922; -st589: - if ( ++p == pe ) - goto _test_eof589; -case 589: - if ( (*p) == 116 ) - goto st590; - goto tr1922; -st590: - if ( ++p == pe ) - goto _test_eof590; -case 590: - if ( (*p) == 104 ) - goto st591; - goto tr1922; -st591: - if ( ++p == pe ) - goto _test_eof591; -case 591: - switch( (*p) ) { - case 32: goto tr1941; - case 34: goto tr1941; - case 44: goto tr1941; - case 59: goto tr1941; + s->buffer_length = 0; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1941; - } else if ( (*p) >= 9 ) - goto tr1941; - goto tr1922; -tr1925: { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st592; -st592: - if ( ++p == pe ) - goto _test_eof592; -case 592: - if ( (*p) == 99 ) - goto st593; - goto tr1922; -st593: - if ( ++p == pe ) - goto _test_eof593; -case 593: - if ( (*p) == 104 ) - goto st594; - goto tr1922; -st594: - if ( ++p == pe ) - goto _test_eof594; -case 594: - switch( (*p) ) { - case 32: goto tr1944; - case 34: goto tr1944; - case 44: goto tr1944; - case 59: goto tr1944; + { + p--; {cs = stack[--top];goto _again;} } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1944; - } else if ( (*p) >= 9 ) - goto tr1944; - goto tr1922; -tr1926: + goto st1499; +tr1856: + { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } - goto st595; -st595: - if ( ++p == pe ) - goto _test_eof595; -case 595: - if ( (*p) == 112 ) - goto st596; - goto tr1922; -st596: - if ( ++p == pe ) - goto _test_eof596; -case 596: - if ( (*p) == 118 ) - goto st597; - goto tr1922; -st597: - if ( ++p == pe ) - goto _test_eof597; -case 597: - switch( (*p) ) { - case 52: goto st598; - case 54: goto st603; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } } - goto tr1922; -st598: - if ( ++p == pe ) - goto _test_eof598; -case 598: - if ( (*p) == 104 ) - goto st599; - goto tr1922; -st599: - if ( ++p == pe ) - goto _test_eof599; -case 599: - if ( (*p) == 105 ) - goto st600; - goto tr1922; -st600: - if ( ++p == pe ) - goto _test_eof600; -case 600: - if ( (*p) == 110 ) - goto st601; - goto tr1922; -st601: - if ( ++p == pe ) - goto _test_eof601; -case 601: - if ( (*p) == 116 ) - goto st602; - goto tr1922; -st602: - if ( ++p == pe ) - goto _test_eof602; -case 602: - switch( (*p) ) { - case 32: goto tr1953; - case 34: goto tr1953; - case 44: goto tr1953; - case 59: goto tr1953; + { + p--; {cs = stack[--top];goto _again;} } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1953; - } else if ( (*p) >= 9 ) - goto tr1953; - goto tr1922; -st603: - if ( ++p == pe ) - goto _test_eof603; -case 603: - if ( (*p) == 104 ) - goto st604; - goto tr1922; -st604: - if ( ++p == pe ) - goto _test_eof604; -case 604: - if ( (*p) == 105 ) - goto st605; - goto tr1922; -st605: - if ( ++p == pe ) - goto _test_eof605; -case 605: - if ( (*p) == 110 ) - goto st606; - goto tr1922; -st606: - if ( ++p == pe ) - goto _test_eof606; -case 606: - if ( (*p) == 116 ) - goto st607; - goto tr1922; -st607: - if ( ++p == pe ) - goto _test_eof607; -case 607: - switch( (*p) ) { - case 32: goto tr1958; - case 34: goto tr1958; - case 44: goto tr1958; - case 59: goto tr1958; + goto st1499; +tr1873: + { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } + { + s->buffer_length = 0; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1958; - } else if ( (*p) >= 9 ) - goto tr1958; - goto tr1922; -tr1927: { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st608; -st608: - if ( ++p == pe ) - goto _test_eof608; -case 608: - if ( (*p) == 101 ) - goto st609; - goto tr1922; -st609: - if ( ++p == pe ) - goto _test_eof609; -case 609: - if ( (*p) == 121 ) - goto st610; - goto tr1922; -st610: - if ( ++p == pe ) - goto _test_eof610; -case 610: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1962; - goto tr1961; -tr1962: { - s->number64 = 0; + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1883: + { window_add_bit(KNOT_RRTYPE_PTR, s); } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } - goto st611; -tr1964: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st611; -st611: - if ( ++p == pe ) - goto _test_eof611; -case 611: - switch( (*p) ) { - case 32: goto tr1963; - case 34: goto tr1963; - case 44: goto tr1963; - case 59: goto tr1963; + { + p--; {cs = stack[--top];goto _again;} } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1963; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1964; - } else - goto tr1963; - goto tr1961; -tr1928: + goto st1499; +tr1894: + { window_add_bit(KNOT_RRTYPE_RP, s); } { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } - goto st612; -st612: - if ( ++p == pe ) - goto _test_eof612; -case 612: - if ( (*p) == 111 ) - goto st613; - goto tr1922; -st613: - if ( ++p == pe ) - goto _test_eof613; -case 613: - if ( (*p) == 45 ) - goto st614; - goto tr1922; -st614: - if ( ++p == pe ) - goto _test_eof614; -case 614: - if ( (*p) == 100 ) - goto st615; - goto tr1922; -st615: - if ( ++p == pe ) - goto _test_eof615; -case 615: - if ( (*p) == 101 ) - goto st616; - goto tr1922; -st616: - if ( ++p == pe ) - goto _test_eof616; -case 616: - if ( (*p) == 102 ) - goto st617; - goto tr1922; -st617: - if ( ++p == pe ) - goto _test_eof617; -case 617: - if ( (*p) == 97 ) - goto st618; - goto tr1922; -st618: - if ( ++p == pe ) - goto _test_eof618; -case 618: - if ( (*p) == 117 ) - goto st619; - goto tr1922; -st619: - if ( ++p == pe ) - goto _test_eof619; -case 619: - if ( (*p) == 108 ) - goto st620; - goto tr1922; -st620: - if ( ++p == pe ) - goto _test_eof620; -case 620: - if ( (*p) == 116 ) - goto st621; - goto tr1922; -st621: - if ( ++p == pe ) - goto _test_eof621; -case 621: - if ( (*p) == 45 ) - goto st622; - goto tr1922; -st622: - if ( ++p == pe ) - goto _test_eof622; -case 622: - if ( (*p) == 97 ) - goto st623; - goto tr1922; -st623: - if ( ++p == pe ) - goto _test_eof623; -case 623: - if ( (*p) == 108 ) - goto st624; - goto tr1922; -st624: - if ( ++p == pe ) - goto _test_eof624; -case 624: - if ( (*p) == 112 ) - goto st625; - goto tr1922; -st625: - if ( ++p == pe ) - goto _test_eof625; -case 625: - if ( (*p) == 110 ) - goto st626; - goto tr1922; -st626: - if ( ++p == pe ) - goto _test_eof626; -case 626: - switch( (*p) ) { - case 32: goto tr1979; - case 34: goto tr1979; - case 44: goto tr1979; - case 59: goto tr1979; + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1979; - } else if ( (*p) >= 9 ) - goto tr1979; - goto tr1922; -tr1929: { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } - goto st627; -st627: - if ( ++p == pe ) - goto _test_eof627; -case 627: - if ( (*p) == 104 ) - goto st628; - goto tr1922; -st628: - if ( ++p == pe ) - goto _test_eof628; -case 628: - if ( (*p) == 116 ) - goto st629; - goto tr1922; -st629: - if ( ++p == pe ) - goto _test_eof629; -case 629: - if ( (*p) == 116 ) - goto st630; - goto tr1922; -st630: - if ( ++p == pe ) - goto _test_eof630; -case 630: - if ( (*p) == 112 ) - goto st631; - goto tr1922; -st631: - if ( ++p == pe ) - goto _test_eof631; -case 631: - switch( (*p) ) { - case 32: goto tr1984; - case 34: goto tr1984; - case 44: goto tr1984; - case 59: goto tr1984; + goto st1499; +tr1905: + { window_add_bit(KNOT_RRTYPE_RRSIG, s); } + { + s->buffer_length = 0; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1984; - } else if ( (*p) >= 9 ) - goto tr1984; - goto tr1922; -tr1930: { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st632; -st632: - if ( ++p == pe ) - goto _test_eof632; -case 632: - if ( (*p) == 111 ) - goto st633; - goto tr1922; -st633: - if ( ++p == pe ) - goto _test_eof633; -case 633: - if ( (*p) == 114 ) - goto st634; - goto tr1922; -st634: - if ( ++p == pe ) - goto _test_eof634; -case 634: - if ( (*p) == 116 ) - goto st635; - goto tr1922; -st635: - if ( ++p == pe ) - goto _test_eof635; -case 635: - switch( (*p) ) { - case 32: goto tr1988; - case 34: goto tr1988; - case 44: goto tr1988; - case 59: goto tr1988; + { + p--; {cs = stack[--top];goto _again;} } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1988; - } else if ( (*p) >= 9 ) - goto tr1988; - goto tr1922; -st636: - if ( ++p == pe ) - goto _test_eof636; -case 636: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + goto st1499; +tr1913: + { window_add_bit(KNOT_RRTYPE_RT, s); } + { + s->buffer_length = 0; } - switch( _widec ) { - case 9: goto tr1990; - case 32: goto tr1990; - case 40: goto tr1991; - case 41: goto tr1992; - case 3082: goto tr1993; - case 3131: goto tr1994; - case 3338: goto tr1995; - case 3387: goto tr1995; - case 3594: goto tr1996; - case 3643: goto tr1997; - } - goto tr1989; -tr1999: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = true; } - goto st637; -tr2000: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st637; -tr2010: + goto st1499; +tr1931: + { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { - s->line_counter++; + s->buffer_length = 0; } - goto st637; -tr2030: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 637; goto _out;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } } } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st637; -tr1990: + goto st1499; +tr1940: + { window_add_bit(KNOT_RRTYPE_SOA, s); } { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; + s->buffer_length = 0; } - goto st637; -tr1991: { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st637; -tr1992: + goto st1499; +tr1949: + { window_add_bit(KNOT_RRTYPE_SPF, s); } { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; + s->buffer_length = 0; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = false; } - goto st637; -tr1993: { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1958: + { window_add_bit(KNOT_RRTYPE_SRV, s); } { - s->line_counter++; + s->buffer_length = 0; } - goto st637; -tr2021: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1969: + { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } - goto st637; -tr2022: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr1979: + { window_add_bit(KNOT_RRTYPE_SVCB, s); } { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} - } + s->buffer_length = 0; } { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} + } + goto st1499; +tr1992: + { window_add_bit(KNOT_RRTYPE_TLSA, s); } + { + s->buffer_length = 0; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = true; } - goto st637; -tr2023: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {cs = stack[--top];goto _again;} + } + goto st1499; +tr2001: + { window_add_bit(KNOT_RRTYPE_TXT, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1499; +tr2013: + { + if (s->number64 <= UINT16_MAX) { + window_add_bit(s->number64, s); } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} - } + s->buffer_length = 0; } { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} + } + goto st1499; +tr2023: + { window_add_bit(KNOT_RRTYPE_URI, s); } + { + s->buffer_length = 0; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } - s->multiline = false; } - goto st637; -tr2024: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr2036: + { window_add_bit(KNOT_RRTYPE_WALLET, s); } { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} - } + s->buffer_length = 0; } { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1499; +tr2049: + { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { - s->line_counter++; + s->buffer_length = 0; } - goto st637; -tr2040: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } - goto st637; -tr2041: + goto st1499; +tr2060: + { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st637; -tr2042: + goto st1499; +tr2069: + { window_add_bit(KNOT_RRTYPE_APL, s); } { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {cs = stack[--top];goto _again;} + } + goto st1499; +st1499: + if ( ++p == pe ) + goto _test_eof1499; +case 1499: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - s->multiline = false; + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st637; -tr2043: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + if ( _widec == 2058 ) + goto tr1529; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr1528; + goto tr1472; +st569: + if ( ++p == pe ) + goto _test_eof569; +case 569: + switch( (*p) ) { + case 78: goto st570; + case 83: goto st575; + case 110: goto st570; + case 115: goto st575; + } + goto tr1472; +st570: + if ( ++p == pe ) + goto _test_eof570; +case 570: + switch( (*p) ) { + case 83: goto st571; + case 115: goto st571; + } + goto tr1472; +st571: + if ( ++p == pe ) + goto _test_eof571; +case 571: + switch( (*p) ) { + case 75: goto st572; + case 107: goto st572; + } + goto tr1472; +st572: + if ( ++p == pe ) + goto _test_eof572; +case 572: + switch( (*p) ) { + case 69: goto st573; + case 101: goto st573; + } + goto tr1472; +st573: + if ( ++p == pe ) + goto _test_eof573; +case 573: + switch( (*p) ) { + case 89: goto st574; + case 121: goto st574; + } + goto tr1472; +st574: + if ( ++p == pe ) + goto _test_eof574; +case 574: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + switch( _widec ) { + case 9: goto tr1550; + case 32: goto tr1550; + case 40: goto tr1551; + case 41: goto tr1552; + case 3082: goto tr1553; + case 3131: goto tr1554; + case 3338: goto tr1555; + case 3387: goto tr1555; + case 3594: goto tr1556; + case 3643: goto tr1557; + } + goto tr1472; +st575: + if ( ++p == pe ) + goto _test_eof575; +case 575: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->line_counter++; + switch( _widec ) { + case 9: goto tr1558; + case 32: goto tr1558; + case 40: goto tr1559; + case 41: goto tr1560; + case 3082: goto tr1561; + case 3131: goto tr1562; + case 3338: goto tr1563; + case 3387: goto tr1563; + case 3594: goto tr1564; + case 3643: goto tr1565; } - goto st637; -tr2050: - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st576: + if ( ++p == pe ) + goto _test_eof576; +case 576: + switch( (*p) ) { + case 82: goto st577; + case 114: goto st577; + } + goto tr1472; +st577: + if ( ++p == pe ) + goto _test_eof577; +case 577: + switch( (*p) ) { + case 84: goto st578; + case 116: goto st578; + } + goto tr1472; +st578: + if ( ++p == pe ) + goto _test_eof578; +case 578: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2051: - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + switch( _widec ) { + case 9: goto tr1568; + case 32: goto tr1568; + case 40: goto tr1569; + case 41: goto tr1570; + case 3082: goto tr1571; + case 3131: goto tr1572; + case 3338: goto tr1573; + case 3387: goto tr1573; + case 3594: goto tr1574; + case 3643: goto tr1575; + } + goto tr1472; +st579: + if ( ++p == pe ) + goto _test_eof579; +case 579: + switch( (*p) ) { + case 65: goto st580; + case 97: goto st580; + } + goto tr1472; +st580: + if ( ++p == pe ) + goto _test_eof580; +case 580: + switch( (*p) ) { + case 77: goto st581; + case 109: goto st581; + } + goto tr1472; +st581: + if ( ++p == pe ) + goto _test_eof581; +case 581: + switch( (*p) ) { + case 69: goto st582; + case 101: goto st582; + } + goto tr1472; +st582: + if ( ++p == pe ) + goto _test_eof582; +case 582: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + switch( _widec ) { + case 9: goto tr1579; + case 32: goto tr1579; + case 40: goto tr1580; + case 41: goto tr1581; + case 3082: goto tr1582; + case 3131: goto tr1583; + case 3338: goto tr1584; + case 3387: goto tr1584; + case 3594: goto tr1585; + case 3643: goto tr1586; + } + goto tr1472; +st583: + if ( ++p == pe ) + goto _test_eof583; +case 583: + switch( (*p) ) { + case 89: goto st584; + case 121: goto st584; + } + goto tr1472; +st584: + if ( ++p == pe ) + goto _test_eof584; +case 584: + switch( (*p) ) { + case 78: goto st585; + case 110: goto st585; + } + goto tr1472; +st585: + if ( ++p == pe ) + goto _test_eof585; +case 585: + switch( (*p) ) { + case 67: goto st586; + case 99: goto st586; + } + goto tr1472; +st586: + if ( ++p == pe ) + goto _test_eof586; +case 586: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - s->multiline = true; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2052: - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + switch( _widec ) { + case 9: goto tr1590; + case 32: goto tr1590; + case 40: goto tr1591; + case 41: goto tr1592; + case 3082: goto tr1593; + case 3131: goto tr1594; + case 3338: goto tr1595; + case 3387: goto tr1595; + case 3594: goto tr1596; + case 3643: goto tr1597; + } + goto tr1472; +st587: + if ( ++p == pe ) + goto _test_eof587; +case 587: + switch( (*p) ) { + case 72: goto st588; + case 78: goto st592; + case 83: goto st600; + case 104: goto st588; + case 110: goto st592; + case 115: goto st600; + } + goto tr1472; +st588: + if ( ++p == pe ) + goto _test_eof588; +case 588: + switch( (*p) ) { + case 67: goto st589; + case 99: goto st589; + } + goto tr1472; +st589: + if ( ++p == pe ) + goto _test_eof589; +case 589: + switch( (*p) ) { + case 73: goto st590; + case 105: goto st590; + } + goto tr1472; +st590: + if ( ++p == pe ) + goto _test_eof590; +case 590: + switch( (*p) ) { + case 68: goto st591; + case 100: goto st591; + } + goto tr1472; +st591: + if ( ++p == pe ) + goto _test_eof591; +case 591: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1604; + case 32: goto tr1604; + case 40: goto tr1605; + case 41: goto tr1606; + case 3082: goto tr1607; + case 3131: goto tr1608; + case 3338: goto tr1609; + case 3387: goto tr1609; + case 3594: goto tr1610; + case 3643: goto tr1611; + } + goto tr1472; +st592: + if ( ++p == pe ) + goto _test_eof592; +case 592: + switch( (*p) ) { + case 65: goto st593; + case 83: goto st596; + case 97: goto st593; + case 115: goto st596; + } + goto tr1472; +st593: + if ( ++p == pe ) + goto _test_eof593; +case 593: + switch( (*p) ) { + case 77: goto st594; + case 109: goto st594; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1472; +st594: + if ( ++p == pe ) + goto _test_eof594; +case 594: + switch( (*p) ) { + case 69: goto st595; + case 101: goto st595; } - goto st637; -tr2053: - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st595: + if ( ++p == pe ) + goto _test_eof595; +case 595: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->line_counter++; + switch( _widec ) { + case 9: goto tr1616; + case 32: goto tr1616; + case 40: goto tr1617; + case 41: goto tr1618; + case 3082: goto tr1619; + case 3131: goto tr1620; + case 3338: goto tr1621; + case 3387: goto tr1621; + case 3594: goto tr1622; + case 3643: goto tr1623; } - goto st637; -tr2093: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } + goto tr1472; +st596: + if ( ++p == pe ) + goto _test_eof596; +case 596: + switch( (*p) ) { + case 75: goto st597; + case 107: goto st597; } - { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + goto tr1472; +st597: + if ( ++p == pe ) + goto _test_eof597; +case 597: + switch( (*p) ) { + case 69: goto st598; + case 101: goto st598; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st598: + if ( ++p == pe ) + goto _test_eof598; +case 598: + switch( (*p) ) { + case 89: goto st599; + case 121: goto st599; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st599: + if ( ++p == pe ) + goto _test_eof599; +case 599: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2094: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1627; + case 32: goto tr1627; + case 40: goto tr1628; + case 41: goto tr1629; + case 3082: goto tr1630; + case 3131: goto tr1631; + case 3338: goto tr1632; + case 3387: goto tr1632; + case 3594: goto tr1633; + case 3643: goto tr1634; } - { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + goto tr1472; +st600: + if ( ++p == pe ) + goto _test_eof600; +case 600: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1635; + case 32: goto tr1635; + case 40: goto tr1636; + case 41: goto tr1637; + case 89: goto st601; + case 121: goto st601; + case 3082: goto tr1639; + case 3131: goto tr1640; + case 3338: goto tr1641; + case 3387: goto tr1641; + case 3594: goto tr1642; + case 3643: goto tr1643; + } + goto tr1472; +st601: + if ( ++p == pe ) + goto _test_eof601; +case 601: + switch( (*p) ) { + case 78: goto st602; + case 110: goto st602; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st602: + if ( ++p == pe ) + goto _test_eof602; +case 602: + switch( (*p) ) { + case 67: goto st603; + case 99: goto st603; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + goto tr1472; +st603: + if ( ++p == pe ) + goto _test_eof603; +case 603: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - s->multiline = true; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2095: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1646; + case 32: goto tr1646; + case 40: goto tr1647; + case 41: goto tr1648; + case 3082: goto tr1649; + case 3131: goto tr1650; + case 3338: goto tr1651; + case 3387: goto tr1651; + case 3594: goto tr1652; + case 3643: goto tr1653; } - { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + goto tr1472; +st604: + if ( ++p == pe ) + goto _test_eof604; +case 604: + switch( (*p) ) { + case 85: goto st605; + case 117: goto st605; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st605: + if ( ++p == pe ) + goto _test_eof605; +case 605: + switch( (*p) ) { + case 73: goto st606; + case 105: goto st606; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st606: + if ( ++p == pe ) + goto _test_eof606; +case 606: + switch( (*p) ) { + case 52: goto st607; + case 54: goto st609; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + goto tr1472; +st607: + if ( ++p == pe ) + goto _test_eof607; +case 607: + if ( (*p) == 56 ) + goto st608; + goto tr1472; +st608: + if ( ++p == pe ) + goto _test_eof608; +case 608: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - s->multiline = false; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2098: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1659; + case 32: goto tr1659; + case 40: goto tr1660; + case 41: goto tr1661; + case 3082: goto tr1662; + case 3131: goto tr1663; + case 3338: goto tr1664; + case 3387: goto tr1664; + case 3594: goto tr1665; + case 3643: goto tr1666; } - { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + goto tr1472; +st609: + if ( ++p == pe ) + goto _test_eof609; +case 609: + if ( (*p) == 52 ) + goto st610; + goto tr1472; +st610: + if ( ++p == pe ) + goto _test_eof610; +case 610: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1668; + case 32: goto tr1668; + case 40: goto tr1669; + case 41: goto tr1670; + case 3082: goto tr1671; + case 3131: goto tr1672; + case 3338: goto tr1673; + case 3387: goto tr1673; + case 3594: goto tr1674; + case 3643: goto tr1675; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st611: + if ( ++p == pe ) + goto _test_eof611; +case 611: + switch( (*p) ) { + case 73: goto st612; + case 84: goto st616; + case 105: goto st612; + case 116: goto st616; } - { - s->line_counter++; + goto tr1472; +st612: + if ( ++p == pe ) + goto _test_eof612; +case 612: + switch( (*p) ) { + case 78: goto st613; + case 110: goto st613; } - goto st637; -tr2116: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} - } + goto tr1472; +st613: + if ( ++p == pe ) + goto _test_eof613; +case 613: + switch( (*p) ) { + case 70: goto st614; + case 102: goto st614; } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + goto tr1472; +st614: + if ( ++p == pe ) + goto _test_eof614; +case 614: + switch( (*p) ) { + case 79: goto st615; + case 111: goto st615; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + goto tr1472; +st615: + if ( ++p == pe ) + goto _test_eof615; +case 615: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1681; + case 32: goto tr1681; + case 40: goto tr1682; + case 41: goto tr1683; + case 3082: goto tr1684; + case 3131: goto tr1685; + case 3338: goto tr1686; + case 3387: goto tr1686; + case 3594: goto tr1687; + case 3643: goto tr1688; } - goto st637; -tr2117: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} - } + goto tr1472; +st616: + if ( ++p == pe ) + goto _test_eof616; +case 616: + switch( (*p) ) { + case 84: goto st617; + case 116: goto st617; } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + goto tr1472; +st617: + if ( ++p == pe ) + goto _test_eof617; +case 617: + switch( (*p) ) { + case 80: goto st618; + case 112: goto st618; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st618: + if ( ++p == pe ) + goto _test_eof618; +case 618: + switch( (*p) ) { + case 83: goto st619; + case 115: goto st619; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st619: + if ( ++p == pe ) + goto _test_eof619; +case 619: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + switch( _widec ) { + case 9: goto tr1692; + case 32: goto tr1692; + case 40: goto tr1693; + case 41: goto tr1694; + case 3082: goto tr1695; + case 3131: goto tr1696; + case 3338: goto tr1697; + case 3387: goto tr1697; + case 3594: goto tr1698; + case 3643: goto tr1699; } - goto st637; -tr2118: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} - } + goto tr1472; +st620: + if ( ++p == pe ) + goto _test_eof620; +case 620: + switch( (*p) ) { + case 80: goto st621; + case 112: goto st621; } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + goto tr1472; +st621: + if ( ++p == pe ) + goto _test_eof621; +case 621: + switch( (*p) ) { + case 83: goto st622; + case 115: goto st622; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st622: + if ( ++p == pe ) + goto _test_eof622; +case 622: + switch( (*p) ) { + case 69: goto st623; + case 101: goto st623; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st623: + if ( ++p == pe ) + goto _test_eof623; +case 623: + switch( (*p) ) { + case 67: goto st624; + case 99: goto st624; + } + goto tr1472; +st624: + if ( ++p == pe ) + goto _test_eof624; +case 624: + switch( (*p) ) { + case 75: goto st625; + case 107: goto st625; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr1472; +st625: + if ( ++p == pe ) + goto _test_eof625; +case 625: + switch( (*p) ) { + case 69: goto st626; + case 101: goto st626; } - goto st637; -tr2121: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} - } + goto tr1472; +st626: + if ( ++p == pe ) + goto _test_eof626; +case 626: + switch( (*p) ) { + case 89: goto st627; + case 121: goto st627; } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + goto tr1472; +st627: + if ( ++p == pe ) + goto _test_eof627; +case 627: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1707; + case 32: goto tr1707; + case 40: goto tr1708; + case 41: goto tr1709; + case 3082: goto tr1710; + case 3131: goto tr1711; + case 3338: goto tr1712; + case 3387: goto tr1712; + case 3594: goto tr1713; + case 3643: goto tr1714; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st628: + if ( ++p == pe ) + goto _test_eof628; +case 628: + switch( (*p) ) { + case 69: goto st629; + case 88: goto st631; + case 101: goto st629; + case 120: goto st631; } - { - s->line_counter++; + goto tr1472; +st629: + if ( ++p == pe ) + goto _test_eof629; +case 629: + switch( (*p) ) { + case 89: goto st630; + case 121: goto st630; } - goto st637; -tr2131: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + goto tr1472; +st630: + if ( ++p == pe ) + goto _test_eof630; +case 630: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto tr1718; + case 32: goto tr1718; + case 40: goto tr1719; + case 41: goto tr1720; + case 3082: goto tr1721; + case 3131: goto tr1722; + case 3338: goto tr1723; + case 3387: goto tr1723; + case 3594: goto tr1724; + case 3643: goto tr1725; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st631: + if ( ++p == pe ) + goto _test_eof631; +case 631: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2132: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1726; + case 32: goto tr1726; + case 40: goto tr1727; + case 41: goto tr1728; + case 3082: goto tr1729; + case 3131: goto tr1730; + case 3338: goto tr1731; + case 3387: goto tr1731; + case 3594: goto tr1732; + case 3643: goto tr1733; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st632: + if ( ++p == pe ) + goto _test_eof632; +case 632: + switch( (*p) ) { + case 51: goto st633; + case 54: goto st635; + case 79: goto st637; + case 80: goto st639; + case 111: goto st637; + case 112: goto st639; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st633: + if ( ++p == pe ) + goto _test_eof633; +case 633: + if ( (*p) == 50 ) + goto st634; + goto tr1472; +st634: + if ( ++p == pe ) + goto _test_eof634; +case 634: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + switch( _widec ) { + case 9: goto tr1739; + case 32: goto tr1739; + case 40: goto tr1740; + case 41: goto tr1741; + case 3082: goto tr1742; + case 3131: goto tr1743; + case 3338: goto tr1744; + case 3387: goto tr1744; + case 3594: goto tr1745; + case 3643: goto tr1746; } - goto st637; -tr2133: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + goto tr1472; +st635: + if ( ++p == pe ) + goto _test_eof635; +case 635: + if ( (*p) == 52 ) + goto st636; + goto tr1472; +st636: + if ( ++p == pe ) + goto _test_eof636; +case 636: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto tr1748; + case 32: goto tr1748; + case 40: goto tr1749; + case 41: goto tr1750; + case 3082: goto tr1751; + case 3131: goto tr1752; + case 3338: goto tr1753; + case 3387: goto tr1753; + case 3594: goto tr1754; + case 3643: goto tr1755; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st637: + if ( ++p == pe ) + goto _test_eof637; +case 637: + switch( (*p) ) { + case 67: goto st638; + case 99: goto st638; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + goto tr1472; +st638: + if ( ++p == pe ) + goto _test_eof638; +case 638: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - s->multiline = false; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2136: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + switch( _widec ) { + case 9: goto tr1757; + case 32: goto tr1757; + case 40: goto tr1758; + case 41: goto tr1759; + case 3082: goto tr1760; + case 3131: goto tr1761; + case 3338: goto tr1762; + case 3387: goto tr1762; + case 3594: goto tr1763; + case 3643: goto tr1764; + } + goto tr1472; +st639: + if ( ++p == pe ) + goto _test_eof639; +case 639: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto tr1765; + case 32: goto tr1765; + case 40: goto tr1766; + case 41: goto tr1767; + case 3082: goto tr1768; + case 3131: goto tr1769; + case 3338: goto tr1770; + case 3387: goto tr1770; + case 3594: goto tr1771; + case 3643: goto tr1772; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st640: + if ( ++p == pe ) + goto _test_eof640; +case 640: + switch( (*p) ) { + case 73: goto st641; + case 88: goto st645; + case 105: goto st641; + case 120: goto st645; } - { - s->line_counter++; + goto tr1472; +st641: + if ( ++p == pe ) + goto _test_eof641; +case 641: + switch( (*p) ) { + case 78: goto st642; + case 110: goto st642; } - goto st637; -tr2156: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st642: + if ( ++p == pe ) + goto _test_eof642; +case 642: + switch( (*p) ) { + case 70: goto st643; + case 102: goto st643; } - { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + goto tr1472; +st643: + if ( ++p == pe ) + goto _test_eof643; +case 643: + switch( (*p) ) { + case 79: goto st644; + case 111: goto st644; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st644: + if ( ++p == pe ) + goto _test_eof644; +case 644: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2157: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + switch( _widec ) { + case 9: goto tr1778; + case 32: goto tr1778; + case 40: goto tr1779; + case 41: goto tr1780; + case 3082: goto tr1781; + case 3131: goto tr1782; + case 3338: goto tr1783; + case 3387: goto tr1783; + case 3594: goto tr1784; + case 3643: goto tr1785; + } + goto tr1472; +st645: + if ( ++p == pe ) + goto _test_eof645; +case 645: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + switch( _widec ) { + case 9: goto tr1786; + case 32: goto tr1786; + case 40: goto tr1787; + case 41: goto tr1788; + case 3082: goto tr1789; + case 3131: goto tr1790; + case 3338: goto tr1791; + case 3387: goto tr1791; + case 3594: goto tr1792; + case 3643: goto tr1793; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st646: + if ( ++p == pe ) + goto _test_eof646; +case 646: + switch( (*p) ) { + case 65: goto st647; + case 73: goto st651; + case 83: goto st653; + case 97: goto st647; + case 105: goto st651; + case 115: goto st653; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr1472; +st647: + if ( ++p == pe ) + goto _test_eof647; +case 647: + switch( (*p) ) { + case 80: goto st648; + case 112: goto st648; } - goto st637; -tr2158: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st648: + if ( ++p == pe ) + goto _test_eof648; +case 648: + switch( (*p) ) { + case 84: goto st649; + case 116: goto st649; } - { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + goto tr1472; +st649: + if ( ++p == pe ) + goto _test_eof649; +case 649: + switch( (*p) ) { + case 82: goto st650; + case 114: goto st650; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st650: + if ( ++p == pe ) + goto _test_eof650; +case 650: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + switch( _widec ) { + case 9: goto tr1800; + case 32: goto tr1800; + case 40: goto tr1801; + case 41: goto tr1802; + case 3082: goto tr1803; + case 3131: goto tr1804; + case 3338: goto tr1805; + case 3387: goto tr1805; + case 3594: goto tr1806; + case 3643: goto tr1807; } - goto st637; -tr2160: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + goto tr1472; +st651: + if ( ++p == pe ) + goto _test_eof651; +case 651: + switch( (*p) ) { + case 68: goto st652; + case 100: goto st652; + } + goto tr1472; +st652: + if ( ++p == pe ) + goto _test_eof652; +case 652: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + switch( _widec ) { + case 9: goto tr1809; + case 32: goto tr1809; + case 40: goto tr1810; + case 41: goto tr1811; + case 3082: goto tr1812; + case 3131: goto tr1813; + case 3338: goto tr1814; + case 3387: goto tr1814; + case 3594: goto tr1815; + case 3643: goto tr1816; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st653: + if ( ++p == pe ) + goto _test_eof653; +case 653: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->line_counter++; - } - goto st637; -tr2180: - { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto tr1817; + case 32: goto tr1817; + case 40: goto tr1818; + case 41: goto tr1819; + case 69: goto st654; + case 101: goto st654; + case 3082: goto tr1821; + case 3131: goto tr1822; + case 3338: goto tr1823; + case 3387: goto tr1823; + case 3594: goto tr1824; + case 3643: goto tr1825; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st654: + if ( ++p == pe ) + goto _test_eof654; +case 654: + switch( (*p) ) { + case 67: goto st655; + case 99: goto st655; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st655: + if ( ++p == pe ) + goto _test_eof655; +case 655: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2181: - { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto tr1827; + case 32: goto tr1827; + case 40: goto tr1828; + case 41: goto tr1829; + case 51: goto st656; + case 3082: goto tr1831; + case 3131: goto tr1832; + case 3338: goto tr1833; + case 3387: goto tr1833; + case 3594: goto tr1834; + case 3643: goto tr1835; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st656: + if ( ++p == pe ) + goto _test_eof656; +case 656: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + switch( _widec ) { + case 9: goto tr1836; + case 32: goto tr1836; + case 40: goto tr1837; + case 41: goto tr1838; + case 80: goto st657; + case 112: goto st657; + case 3082: goto tr1840; + case 3131: goto tr1841; + case 3338: goto tr1842; + case 3387: goto tr1842; + case 3594: goto tr1843; + case 3643: goto tr1844; + } + goto tr1472; +st657: + if ( ++p == pe ) + goto _test_eof657; +case 657: + switch( (*p) ) { + case 65: goto st658; + case 97: goto st658; } - goto st637; -tr2182: - { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st658: + if ( ++p == pe ) + goto _test_eof658; +case 658: + switch( (*p) ) { + case 82: goto st659; + case 114: goto st659; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st659: + if ( ++p == pe ) + goto _test_eof659; +case 659: + switch( (*p) ) { + case 65: goto st660; + case 97: goto st660; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st660: + if ( ++p == pe ) + goto _test_eof660; +case 660: + switch( (*p) ) { + case 77: goto st661; + case 109: goto st661; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + goto tr1472; +st661: + if ( ++p == pe ) + goto _test_eof661; +case 661: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - s->multiline = false; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2183: - { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto tr1849; + case 32: goto tr1849; + case 40: goto tr1850; + case 41: goto tr1851; + case 3082: goto tr1852; + case 3131: goto tr1853; + case 3338: goto tr1854; + case 3387: goto tr1854; + case 3594: goto tr1855; + case 3643: goto tr1856; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st662: + if ( ++p == pe ) + goto _test_eof662; +case 662: + switch( (*p) ) { + case 80: goto st663; + case 112: goto st663; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st663: + if ( ++p == pe ) + goto _test_eof663; +case 663: + switch( (*p) ) { + case 69: goto st664; + case 101: goto st664; } - { - s->line_counter++; + goto tr1472; +st664: + if ( ++p == pe ) + goto _test_eof664; +case 664: + switch( (*p) ) { + case 78: goto st665; + case 110: goto st665; } - goto st637; -tr2192: - { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st665: + if ( ++p == pe ) + goto _test_eof665; +case 665: + switch( (*p) ) { + case 80: goto st666; + case 112: goto st666; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st666: + if ( ++p == pe ) + goto _test_eof666; +case 666: + switch( (*p) ) { + case 71: goto st667; + case 103: goto st667; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st667: + if ( ++p == pe ) + goto _test_eof667; +case 667: + switch( (*p) ) { + case 80: goto st668; + case 112: goto st668; } - goto st637; -tr2193: - { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st668: + if ( ++p == pe ) + goto _test_eof668; +case 668: + switch( (*p) ) { + case 75: goto st669; + case 107: goto st669; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st669: + if ( ++p == pe ) + goto _test_eof669; +case 669: + switch( (*p) ) { + case 69: goto st670; + case 101: goto st670; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st670: + if ( ++p == pe ) + goto _test_eof670; +case 670: + switch( (*p) ) { + case 89: goto st671; + case 121: goto st671; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + goto tr1472; +st671: + if ( ++p == pe ) + goto _test_eof671; +case 671: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - s->multiline = true; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2194: - { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto tr1866; + case 32: goto tr1866; + case 40: goto tr1867; + case 41: goto tr1868; + case 3082: goto tr1869; + case 3131: goto tr1870; + case 3338: goto tr1871; + case 3387: goto tr1871; + case 3594: goto tr1872; + case 3643: goto tr1873; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st672: + if ( ++p == pe ) + goto _test_eof672; +case 672: + switch( (*p) ) { + case 84: goto st673; + case 116: goto st673; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st673: + if ( ++p == pe ) + goto _test_eof673; +case 673: + switch( (*p) ) { + case 82: goto st674; + case 114: goto st674; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + goto tr1472; +st674: + if ( ++p == pe ) + goto _test_eof674; +case 674: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - s->multiline = false; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2195: - { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto tr1876; + case 32: goto tr1876; + case 40: goto tr1877; + case 41: goto tr1878; + case 3082: goto tr1879; + case 3131: goto tr1880; + case 3338: goto tr1881; + case 3387: goto tr1881; + case 3594: goto tr1882; + case 3643: goto tr1883; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st675: + if ( ++p == pe ) + goto _test_eof675; +case 675: + switch( (*p) ) { + case 80: goto st676; + case 82: goto st677; + case 84: goto st681; + case 112: goto st676; + case 114: goto st677; + case 116: goto st681; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st676: + if ( ++p == pe ) + goto _test_eof676; +case 676: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->line_counter++; - } - goto st637; -tr2209: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1887; + case 32: goto tr1887; + case 40: goto tr1888; + case 41: goto tr1889; + case 3082: goto tr1890; + case 3131: goto tr1891; + case 3338: goto tr1892; + case 3387: goto tr1892; + case 3594: goto tr1893; + case 3643: goto tr1894; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st677: + if ( ++p == pe ) + goto _test_eof677; +case 677: + switch( (*p) ) { + case 83: goto st678; + case 115: goto st678; } - goto st637; -tr2210: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st678: + if ( ++p == pe ) + goto _test_eof678; +case 678: + switch( (*p) ) { + case 73: goto st679; + case 105: goto st679; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st679: + if ( ++p == pe ) + goto _test_eof679; +case 679: + switch( (*p) ) { + case 71: goto st680; + case 103: goto st680; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + goto tr1472; +st680: + if ( ++p == pe ) + goto _test_eof680; +case 680: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - s->multiline = true; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st637; -tr2211: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1898; + case 32: goto tr1898; + case 40: goto tr1899; + case 41: goto tr1900; + case 3082: goto tr1901; + case 3131: goto tr1902; + case 3338: goto tr1903; + case 3387: goto tr1903; + case 3594: goto tr1904; + case 3643: goto tr1905; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st681: + if ( ++p == pe ) + goto _test_eof681; +case 681: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + switch( _widec ) { + case 9: goto tr1906; + case 32: goto tr1906; + case 40: goto tr1907; + case 41: goto tr1908; + case 3082: goto tr1909; + case 3131: goto tr1910; + case 3338: goto tr1911; + case 3387: goto tr1911; + case 3594: goto tr1912; + case 3643: goto tr1913; } - goto st637; -tr2213: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st682: + if ( ++p == pe ) + goto _test_eof682; +case 682: + switch( (*p) ) { + case 77: goto st683; + case 79: goto st688; + case 80: goto st690; + case 82: goto st692; + case 83: goto st694; + case 86: goto st698; + case 109: goto st683; + case 111: goto st688; + case 112: goto st690; + case 114: goto st692; + case 115: goto st694; + case 118: goto st698; + } + goto tr1472; +st683: + if ( ++p == pe ) + goto _test_eof683; +case 683: + switch( (*p) ) { + case 73: goto st684; + case 105: goto st684; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st684: + if ( ++p == pe ) + goto _test_eof684; +case 684: + switch( (*p) ) { + case 77: goto st685; + case 109: goto st685; } - { - s->line_counter++; + goto tr1472; +st685: + if ( ++p == pe ) + goto _test_eof685; +case 685: + switch( (*p) ) { + case 69: goto st686; + case 101: goto st686; } - goto st637; -st637: + goto tr1472; +st686: if ( ++p == pe ) - goto _test_eof637; -case 637: + goto _test_eof686; +case 686: + switch( (*p) ) { + case 65: goto st687; + case 97: goto st687; + } + goto tr1472; +st687: + if ( ++p == pe ) + goto _test_eof687; +case 687: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60793,114 +58807,31 @@ case 637: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st637; - case 32: goto st637; - case 40: goto tr1999; - case 41: goto tr2000; - case 97: goto tr2001; - case 100: goto tr2002; - case 101: goto tr2003; - case 105: goto tr2004; - case 107: goto tr2005; - case 109: goto tr2006; - case 110: goto tr2007; - case 111: goto tr2008; - case 112: goto tr2009; - case 3082: goto tr2010; - case 3131: goto tr2011; - case 3338: goto tr2012; - case 3387: goto tr2012; - case 3594: goto tr2013; - case 3643: goto tr2014; - } - goto tr1989; -tr2001: - { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - s->svcb.param_position = rdata_tail; - } - goto st638; -st638: - if ( ++p == pe ) - goto _test_eof638; -case 638: - if ( (*p) == 108 ) - goto st639; - goto tr1989; -st639: - if ( ++p == pe ) - goto _test_eof639; -case 639: - if ( (*p) == 112 ) - goto st640; - goto tr1989; -st640: - if ( ++p == pe ) - goto _test_eof640; -case 640: - if ( (*p) == 110 ) - goto st641; - goto tr1989; -st641: - if ( ++p == pe ) - goto _test_eof641; -case 641: - if ( (*p) == 61 ) - goto tr2018; - goto tr1989; -tr2018: - { - uint16_t val = htons(1); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + case 9: goto tr1924; + case 32: goto tr1924; + case 40: goto tr1925; + case 41: goto tr1926; + case 3082: goto tr1927; + case 3131: goto tr1928; + case 3338: goto tr1929; + case 3387: goto tr1929; + case 3594: goto tr1930; + case 3643: goto tr1931; } - goto st642; -st642: + goto tr1472; +st688: if ( ++p == pe ) - goto _test_eof642; -case 642: + goto _test_eof688; +case 688: switch( (*p) ) { - case 32: goto tr1989; - case 34: goto tr2020; - case 59: goto tr1989; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1989; - } else if ( (*p) >= 9 ) - goto tr1989; - goto tr2019; -tr2019: - { - s->comma_list = true; - s->pending_backslash = false; - } - { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + case 65: goto st689; + case 97: goto st689; } - { p--; {stack[top++] = 643;goto st330;} } - goto st643; -st643: + goto tr1472; +st689: if ( ++p == pe ) - goto _test_eof643; -case 643: + goto _test_eof689; +case 689: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60918,1266 +58849,1811 @@ case 643: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2021; - case 32: goto tr2021; - case 40: goto tr2022; - case 41: goto tr2023; - case 3082: goto tr2024; - case 3131: goto tr2025; - case 3338: goto tr2026; - case 3387: goto tr2026; - case 3594: goto tr2027; - case 3643: goto tr2028; - } - goto tr1989; -tr2011: - { - s->buffer_length = 0; - } - goto st644; -tr2029: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st644; -tr1994: - { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; - } - { - s->buffer_length = 0; - } - goto st644; -tr2025: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } - } - { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} - } - } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } - } - { - s->buffer_length = 0; - } - goto st644; -tr2044: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + case 9: goto tr1933; + case 32: goto tr1933; + case 40: goto tr1934; + case 41: goto tr1935; + case 3082: goto tr1936; + case 3131: goto tr1937; + case 3338: goto tr1938; + case 3387: goto tr1938; + case 3594: goto tr1939; + case 3643: goto tr1940; } - { - s->buffer_length = 0; + goto tr1472; +st690: + if ( ++p == pe ) + goto _test_eof690; +case 690: + switch( (*p) ) { + case 70: goto st691; + case 102: goto st691; } - goto st644; -tr2054: - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st691: + if ( ++p == pe ) + goto _test_eof691; +case 691: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->buffer_length = 0; + switch( _widec ) { + case 9: goto tr1942; + case 32: goto tr1942; + case 40: goto tr1943; + case 41: goto tr1944; + case 3082: goto tr1945; + case 3131: goto tr1946; + case 3338: goto tr1947; + case 3387: goto tr1947; + case 3594: goto tr1948; + case 3643: goto tr1949; } - goto st644; -tr2099: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } + goto tr1472; +st692: + if ( ++p == pe ) + goto _test_eof692; +case 692: + switch( (*p) ) { + case 86: goto st693; + case 118: goto st693; } - { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + goto tr1472; +st693: + if ( ++p == pe ) + goto _test_eof693; +case 693: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1951; + case 32: goto tr1951; + case 40: goto tr1952; + case 41: goto tr1953; + case 3082: goto tr1954; + case 3131: goto tr1955; + case 3338: goto tr1956; + case 3387: goto tr1956; + case 3594: goto tr1957; + case 3643: goto tr1958; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st694: + if ( ++p == pe ) + goto _test_eof694; +case 694: + switch( (*p) ) { + case 72: goto st695; + case 104: goto st695; } - { - s->buffer_length = 0; + goto tr1472; +st695: + if ( ++p == pe ) + goto _test_eof695; +case 695: + switch( (*p) ) { + case 70: goto st696; + case 102: goto st696; } - goto st644; -tr2122: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} - } + goto tr1472; +st696: + if ( ++p == pe ) + goto _test_eof696; +case 696: + switch( (*p) ) { + case 80: goto st697; + case 112: goto st697; } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + goto tr1472; +st697: + if ( ++p == pe ) + goto _test_eof697; +case 697: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1962; + case 32: goto tr1962; + case 40: goto tr1963; + case 41: goto tr1964; + case 3082: goto tr1965; + case 3131: goto tr1966; + case 3338: goto tr1967; + case 3387: goto tr1967; + case 3594: goto tr1968; + case 3643: goto tr1969; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st698: + if ( ++p == pe ) + goto _test_eof698; +case 698: + switch( (*p) ) { + case 67: goto st699; + case 99: goto st699; } - { - s->buffer_length = 0; + goto tr1472; +st699: + if ( ++p == pe ) + goto _test_eof699; +case 699: + switch( (*p) ) { + case 66: goto st700; + case 98: goto st700; } - goto st644; -tr2137: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + goto tr1472; +st700: + if ( ++p == pe ) + goto _test_eof700; +case 700: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr1972; + case 32: goto tr1972; + case 40: goto tr1973; + case 41: goto tr1974; + case 3082: goto tr1975; + case 3131: goto tr1976; + case 3338: goto tr1977; + case 3387: goto tr1977; + case 3594: goto tr1978; + case 3643: goto tr1979; } - { - s->buffer_length = 0; + goto tr1472; +st701: + if ( ++p == pe ) + goto _test_eof701; +case 701: + switch( (*p) ) { + case 76: goto st702; + case 88: goto st705; + case 89: goto st707; + case 108: goto st702; + case 120: goto st705; + case 121: goto st707; } - goto st644; -tr2161: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st702: + if ( ++p == pe ) + goto _test_eof702; +case 702: + switch( (*p) ) { + case 83: goto st703; + case 115: goto st703; } - { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + goto tr1472; +st703: + if ( ++p == pe ) + goto _test_eof703; +case 703: + switch( (*p) ) { + case 65: goto st704; + case 97: goto st704; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st704: + if ( ++p == pe ) + goto _test_eof704; +case 704: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->buffer_length = 0; - } - goto st644; -tr2184: - { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto tr1985; + case 32: goto tr1985; + case 40: goto tr1986; + case 41: goto tr1987; + case 3082: goto tr1988; + case 3131: goto tr1989; + case 3338: goto tr1990; + case 3387: goto tr1990; + case 3594: goto tr1991; + case 3643: goto tr1992; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st705: + if ( ++p == pe ) + goto _test_eof705; +case 705: + switch( (*p) ) { + case 84: goto st706; + case 116: goto st706; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st706: + if ( ++p == pe ) + goto _test_eof706; +case 706: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->buffer_length = 0; - } - goto st644; -tr2196: - { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto tr1994; + case 32: goto tr1994; + case 40: goto tr1995; + case 41: goto tr1996; + case 3082: goto tr1997; + case 3131: goto tr1998; + case 3338: goto tr1999; + case 3387: goto tr1999; + case 3594: goto tr2000; + case 3643: goto tr2001; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto tr1472; +st707: + if ( ++p == pe ) + goto _test_eof707; +case 707: + switch( (*p) ) { + case 80: goto st708; + case 112: goto st708; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st708: + if ( ++p == pe ) + goto _test_eof708; +case 708: + switch( (*p) ) { + case 69: goto st709; + case 101: goto st709; } + goto tr1472; +st709: + if ( ++p == pe ) + goto _test_eof709; +case 709: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2004; + goto tr1472; +tr2004: { - s->buffer_length = 0; + s->number64 = 0; } - goto st644; -tr2214: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } + goto st710; +tr2008: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } - { - s->buffer_length = 0; - } - goto st644; -st644: + goto st710; +st710: if ( ++p == pe ) - goto _test_eof644; -case 644: + goto _test_eof710; +case 710: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + !s->multiline ) _widec += 512; } - } else { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - if ( _widec == 2058 ) - goto tr2030; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2029; - goto tr1989; -tr1995: - { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; + switch( _widec ) { + case 9: goto tr2005; + case 32: goto tr2005; + case 40: goto tr2006; + case 41: goto tr2007; + case 3082: goto tr2009; + case 3131: goto tr2010; + case 3338: goto tr2011; + case 3387: goto tr2011; + case 3594: goto tr2012; + case 3643: goto tr2013; } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2008; + goto tr1472; +st711: + if ( ++p == pe ) + goto _test_eof711; +case 711: + switch( (*p) ) { + case 82: goto st712; + case 114: goto st712; } - { - p--; {cs = stack[--top];goto _again;} + goto tr1472; +st712: + if ( ++p == pe ) + goto _test_eof712; +case 712: + switch( (*p) ) { + case 73: goto st713; + case 105: goto st713; } - goto st1517; -tr2012: - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st713: + if ( ++p == pe ) + goto _test_eof713; +case 713: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - p--; {cs = stack[--top];goto _again;} + switch( _widec ) { + case 9: goto tr2016; + case 32: goto tr2016; + case 40: goto tr2017; + case 41: goto tr2018; + case 3082: goto tr2019; + case 3131: goto tr2020; + case 3338: goto tr2021; + case 3387: goto tr2021; + case 3594: goto tr2022; + case 3643: goto tr2023; } - goto st1517; -tr2026: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st714: + if ( ++p == pe ) + goto _test_eof714; +case 714: + switch( (*p) ) { + case 65: goto st715; + case 97: goto st715; } - { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} - } + goto tr1472; +st715: + if ( ++p == pe ) + goto _test_eof715; +case 715: + switch( (*p) ) { + case 76: goto st716; + case 108: goto st716; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st716: + if ( ++p == pe ) + goto _test_eof716; +case 716: + switch( (*p) ) { + case 76: goto st717; + case 108: goto st717; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st717: + if ( ++p == pe ) + goto _test_eof717; +case 717: + switch( (*p) ) { + case 69: goto st718; + case 101: goto st718; } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st718: + if ( ++p == pe ) + goto _test_eof718; +case 718: + switch( (*p) ) { + case 84: goto st719; + case 116: goto st719; + } + goto tr1472; +st719: + if ( ++p == pe ) + goto _test_eof719; +case 719: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - p--; {cs = stack[--top];goto _again;} + switch( _widec ) { + case 9: goto tr2029; + case 32: goto tr2029; + case 40: goto tr2030; + case 41: goto tr2031; + case 3082: goto tr2032; + case 3131: goto tr2033; + case 3338: goto tr2034; + case 3387: goto tr2034; + case 3594: goto tr2035; + case 3643: goto tr2036; } - goto st1517; -tr2045: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st720: + if ( ++p == pe ) + goto _test_eof720; +case 720: + switch( (*p) ) { + case 79: goto st721; + case 111: goto st721; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st721: + if ( ++p == pe ) + goto _test_eof721; +case 721: + switch( (*p) ) { + case 78: goto st722; + case 110: goto st722; } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st722: + if ( ++p == pe ) + goto _test_eof722; +case 722: + switch( (*p) ) { + case 69: goto st723; + case 101: goto st723; } - { - p--; {cs = stack[--top];goto _again;} + goto tr1472; +st723: + if ( ++p == pe ) + goto _test_eof723; +case 723: + switch( (*p) ) { + case 77: goto st724; + case 109: goto st724; } - goto st1517; -tr2055: - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + goto tr1472; +st724: + if ( ++p == pe ) + goto _test_eof724; +case 724: + switch( (*p) ) { + case 68: goto st725; + case 100: goto st725; } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st725: + if ( ++p == pe ) + goto _test_eof725; +case 725: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - p--; {cs = stack[--top];goto _again;} + switch( _widec ) { + case 9: goto tr2042; + case 32: goto tr2042; + case 40: goto tr2043; + case 41: goto tr2044; + case 3082: goto tr2045; + case 3131: goto tr2046; + case 3338: goto tr2047; + case 3387: goto tr2047; + case 3594: goto tr2048; + case 3643: goto tr2049; } - goto st1517; -tr2100: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } + goto tr1472; +st726: + if ( ++p == pe ) + goto _test_eof726; +case 726: + switch( (*p) ) { + case 83: goto st727; + case 115: goto st727; } - { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + goto tr1472; +st727: + if ( ++p == pe ) + goto _test_eof727; +case 727: + switch( (*p) ) { + case 68: goto st728; + case 100: goto st728; } - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr1472; +st728: + if ( ++p == pe ) + goto _test_eof728; +case 728: + switch( (*p) ) { + case 66: goto st729; + case 98: goto st729; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto tr1472; +st729: + if ( ++p == pe ) + goto _test_eof729; +case 729: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + switch( _widec ) { + case 9: goto tr2053; + case 32: goto tr2053; + case 40: goto tr2054; + case 41: goto tr2055; + case 3082: goto tr2056; + case 3131: goto tr2057; + case 3338: goto tr2058; + case 3387: goto tr2058; + case 3594: goto tr2059; + case 3643: goto tr2060; + } + goto tr1472; +st730: + if ( ++p == pe ) + goto _test_eof730; +case 730: + switch( (*p) ) { + case 76: goto st731; + case 108: goto st731; + } + goto tr1472; +st731: + if ( ++p == pe ) + goto _test_eof731; +case 731: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - p--; {cs = stack[--top];goto _again;} + switch( _widec ) { + case 9: goto tr2062; + case 32: goto tr2062; + case 40: goto tr2063; + case 41: goto tr2064; + case 3082: goto tr2065; + case 3131: goto tr2066; + case 3338: goto tr2067; + case 3387: goto tr2067; + case 3594: goto tr2068; + case 3643: goto tr2069; } - goto st1517; -tr2123: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} + goto tr1472; +st732: + if ( ++p == pe ) + goto _test_eof732; +case 732: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st733; + case 32: goto st733; + case 40: goto tr2072; + case 41: goto tr2073; + case 2058: goto tr2074; + case 2107: goto tr2075; } + goto tr2070; +tr2072: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + s->multiline = true; } + goto st733; +tr2073: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st733; +tr2074: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + s->line_counter++; } + goto st733; +tr2105: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 733; goto _out;} + } } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1517; -tr2138: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + goto st733; +st733: + if ( ++p == pe ) + goto _test_eof733; +case 733: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto st733; + case 32: goto st733; + case 40: goto tr2072; + case 41: goto tr2073; + case 2058: goto tr2074; + case 2107: goto tr2075; } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2077; + goto tr2076; +tr2077: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + s->number64 = 0; } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } + goto st734; +tr2081: { - p--; {cs = stack[--top];goto _again;} - } - goto st1517; -tr2162: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } - { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + goto st734; +st734: + if ( ++p == pe ) + goto _test_eof734; +case 734: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr2078; + case 32: goto tr2078; + case 40: goto tr2079; + case 41: goto tr2080; + case 2058: goto tr2082; + case 2107: goto tr2083; } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2081; + goto tr2076; +tr2086: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st735; +tr2087: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st735; +tr2089: { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1517; -tr2185: + goto st735; +tr2103: { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 735; goto _out;} + } + } } { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->line_counter++; } + goto st735; +tr2078: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } + goto st735; +tr2079: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - p--; {cs = stack[--top];goto _again;} - } - goto st1517; -tr2197: - { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st735; +tr2080: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1517; -tr2215: + goto st735; +tr2082: { if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + s->line_counter++; + } + goto st735; +st735: + if ( ++p == pe ) + goto _test_eof735; +case 735: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st735; + case 32: goto st735; + case 40: goto tr2086; + case 41: goto tr2087; + case 2058: goto tr2089; + case 2107: goto tr2090; } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr2088; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2088; + } else + goto tr2088; + goto tr2084; +tr2088: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st736; +st736: + if ( ++p == pe ) + goto _test_eof736; +case 736: + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2091; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2091; + } else + goto tr2091; + goto tr2084; +tr2093: { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1517; -st1517: - if ( ++p == pe ) - goto _test_eof1517; -case 1517: - goto st0; -tr1996: + goto st737; +tr2094: { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st737; +tr2095: { s->line_counter++; } + goto st737; +tr2101: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 737; goto _out;} + } } } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1518; -tr2013: { s->line_counter++; } + goto st737; +tr2091: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; + rdata_tail++; + } + goto st737; +st737: + if ( ++p == pe ) + goto _test_eof737; +case 737: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st737; + case 32: goto st737; + case 40: goto tr2093; + case 41: goto tr2094; + case 3082: goto tr2095; + case 3131: goto tr2096; + case 3338: goto tr2097; + case 3387: goto tr2097; + case 3594: goto tr2098; + case 3643: goto tr2099; } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr2088; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2088; + } else + goto tr2088; + goto tr2084; +tr2096: { - p--; {cs = stack[--top];goto _again;} + s->buffer_length = 0; } - goto st1518; -tr2027: + goto st738; +tr2100: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } - { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + goto st738; +st738: + if ( ++p == pe ) + goto _test_eof738; +case 738: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr2101; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2100; + goto tr2084; +tr2097: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); + if ((rdata_tail - s->r_data) != s->r_data_length) { + WARN(ZS_BAD_RDATA_LENGTH); p--; {goto st319;} } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1500; +st1500: + if ( ++p == pe ) + goto _test_eof1500; +case 1500: + goto st0; +tr2098: { s->line_counter++; } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if ((rdata_tail - s->r_data) != s->r_data_length) { + WARN(ZS_BAD_RDATA_LENGTH); p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1518; -tr2046: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + goto st1501; +st1501: + if ( ++p == pe ) + goto _test_eof1501; +case 1501: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto st737; + case 32: goto st737; + case 40: goto tr2093; + case 41: goto tr2094; + case 3082: goto tr2095; + case 3131: goto tr2096; + case 3338: goto tr2097; + case 3387: goto tr2097; + case 3594: goto tr2098; + case 3643: goto tr2099; } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr2088; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2088; + } else + goto tr2088; + goto tr2084; +tr2099: { - s->line_counter++; + s->buffer_length = 0; } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if ((rdata_tail - s->r_data) != s->r_data_length) { + WARN(ZS_BAD_RDATA_LENGTH); p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1518; -tr2056: - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto st1502; +st1502: + if ( ++p == pe ) + goto _test_eof1502; +case 1502: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr2101; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2100; + goto tr2084; +tr2090: { - s->line_counter++; + s->buffer_length = 0; } + goto st739; +tr2102: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } + goto st739; +tr2083: { - p--; {cs = stack[--top];goto _again;} - } - goto st1518; -tr2101: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + s->buffer_length = 0; + } + goto st739; +st739: + if ( ++p == pe ) + goto _test_eof739; +case 739: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr2103; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2102; + goto tr2070; +tr2075: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } + goto st740; +tr2104: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } - { - s->line_counter++; + goto st740; +st740: + if ( ++p == pe ) + goto _test_eof740; +case 740: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + if ( _widec == 2058 ) + goto tr2105; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2104; + goto tr2070; +st741: + if ( ++p == pe ) + goto _test_eof741; +case 741: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - { - p--; {cs = stack[--top];goto _again;} + switch( _widec ) { + case 9: goto st742; + case 32: goto st742; + case 40: goto tr2107; + case 41: goto tr2108; + case 2058: goto tr2109; + case 2107: goto tr2110; } - goto st1518; -tr2124: + goto tr2070; +tr2107: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st742; +tr2108: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + s->multiline = false; + } + goto st742; +tr2109: + { + s->line_counter++; } + goto st742; +tr2145: { - s->item_length = rdata_tail - s->item_length2_location - 2; + s->buffer[s->buffer_length++] = 0; - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 742; goto _out;} + } } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + s->line_counter++; + } + goto st742; +st742: + if ( ++p == pe ) + goto _test_eof742; +case 742: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st742; + case 32: goto st742; + case 40: goto tr2107; + case 41: goto tr2108; + case 48: goto tr2111; + case 2058: goto tr2109; + case 2107: goto tr2110; } + if ( 49 <= _widec && _widec <= 57 ) + goto tr2112; + goto tr2076; +tr2111: { - s->line_counter++; + s->number64 = 0; } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } + goto st743; +st743: + if ( ++p == pe ) + goto _test_eof743; +case 743: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr2113; + case 32: goto tr2113; + case 40: goto tr2114; + case 41: goto tr2115; + case 1802: goto tr2117; + case 1851: goto tr2117; + case 2058: goto tr2118; + case 2107: goto tr2119; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2116; + goto tr2076; +tr2113: { p--; {cs = stack[--top];goto _again;} } - goto st1518; -tr2139: { if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } + goto st1503; +tr2114: { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + p--; {cs = stack[--top];goto _again;} } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - s->line_counter++; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st1503; +tr2115: { p--; {cs = stack[--top];goto _again;} } - goto st1518; -tr2163: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1503; +tr2118: { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1518; -tr2186: - { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + goto st1503; +st1503: + if ( ++p == pe ) + goto _test_eof1503; +case 1503: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto st744; + case 32: goto st744; + case 40: goto tr2121; + case 41: goto tr2122; + case 2058: goto tr2124; + case 2107: goto tr2125; } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr2123; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2123; + } else + goto tr2123; + goto tr2084; +tr2121: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st744; +tr2122: { - s->line_counter++; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st744; +tr2124: { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1518; -tr2198: + goto st744; +tr2138: { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 744; goto _out;} + } + } } { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->line_counter++; } + goto st744; +tr2139: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } + goto st744; +tr2140: { - s->line_counter++; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1518; -tr2216: + goto st744; +tr2141: { if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st744; +tr2142: { - s->line_counter++; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1518; -st1518: + goto st744; +st744: if ( ++p == pe ) - goto _test_eof1518; -case 1518: + goto _test_eof744; +case 744: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st637; - case 32: goto st637; - case 40: goto tr1999; - case 41: goto tr2000; - case 97: goto tr2001; - case 100: goto tr2002; - case 101: goto tr2003; - case 105: goto tr2004; - case 107: goto tr2005; - case 109: goto tr2006; - case 110: goto tr2007; - case 111: goto tr2008; - case 112: goto tr2009; - case 3082: goto tr2010; - case 3131: goto tr2011; - case 3338: goto tr2012; - case 3387: goto tr2012; - case 3594: goto tr2013; - case 3643: goto tr2014; - } - goto tr1989; -tr2002: + case 9: goto st744; + case 32: goto st744; + case 40: goto tr2121; + case 41: goto tr2122; + case 2058: goto tr2124; + case 2107: goto tr2125; + } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr2123; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2123; + } else + goto tr2123; + goto tr2084; +tr2123: { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; + } else { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->svcb.param_position = rdata_tail; } - goto st645; -st645: - if ( ++p == pe ) - goto _test_eof645; -case 645: - if ( (*p) == 111 ) - goto st646; - goto tr1989; -st646: - if ( ++p == pe ) - goto _test_eof646; -case 646: - if ( (*p) == 104 ) - goto st647; - goto tr1989; -st647: - if ( ++p == pe ) - goto _test_eof647; -case 647: - if ( (*p) == 112 ) - goto st648; - goto tr1989; -st648: - if ( ++p == pe ) - goto _test_eof648; -case 648: - if ( (*p) == 97 ) - goto st649; - goto tr1989; -st649: - if ( ++p == pe ) - goto _test_eof649; -case 649: - if ( (*p) == 116 ) - goto st650; - goto tr1989; -st650: - if ( ++p == pe ) - goto _test_eof650; -case 650: - if ( (*p) == 104 ) - goto st651; - goto tr1989; -st651: + goto st745; +st745: if ( ++p == pe ) - goto _test_eof651; -case 651: - if ( (*p) == 61 ) - goto tr2037; - goto tr1989; -tr2037: + goto _test_eof745; +case 745: + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2126; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2126; + } else + goto tr2126; + goto tr2084; +tr2128: { - uint16_t val = htons(7); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - goto st652; -st652: - if ( ++p == pe ) - goto _test_eof652; -case 652: - switch( (*p) ) { - case 32: goto tr1989; - case 34: goto tr2039; - case 59: goto tr1989; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1989; - } else if ( (*p) >= 9 ) - goto tr1989; - goto tr2038; -tr2038: + goto st746; +tr2129: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } - { p--; {stack[top++] = 653;goto st330;} } - goto st653; -st653: + goto st746; +tr2130: + { + s->line_counter++; + } + goto st746; +tr2136: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 746; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st746; +tr2126: + { + *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; + rdata_tail++; + } + goto st746; +st746: if ( ++p == pe ) - goto _test_eof653; -case 653: + goto _test_eof746; +case 746: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62195,259 +60671,439 @@ case 653: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2040; - case 32: goto tr2040; - case 40: goto tr2041; - case 41: goto tr2042; - case 3082: goto tr2043; - case 3131: goto tr2044; - case 3338: goto tr2045; - case 3387: goto tr2045; - case 3594: goto tr2046; - case 3643: goto tr2047; - } - goto tr1989; -tr1997: - { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; + case 9: goto st746; + case 32: goto st746; + case 40: goto tr2128; + case 41: goto tr2129; + case 3082: goto tr2130; + case 3131: goto tr2131; + case 3338: goto tr2132; + case 3387: goto tr2132; + case 3594: goto tr2133; + case 3643: goto tr2134; } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr2123; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2123; + } else + goto tr2123; + goto tr2084; +tr2131: { s->buffer_length = 0; } + goto st747; +tr2135: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } - { - p--; {cs = stack[--top];goto _again;} + goto st747; +st747: + if ( ++p == pe ) + goto _test_eof747; +case 747: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st1519; -tr2014: + if ( _widec == 2058 ) + goto tr2136; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2135; + goto tr2084; +tr2117: { - s->buffer_length = 0; + p--; {cs = stack[--top];goto _again;} } + goto st1504; +tr2132: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if ((rdata_tail - s->r_data) != s->r_data_length) { + WARN(ZS_BAD_RDATA_LENGTH); p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1519; -tr2028: + goto st1504; +st1504: + if ( ++p == pe ) + goto _test_eof1504; +case 1504: + goto tr2070; +tr2133: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + s->line_counter++; } { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); + if ((rdata_tail - s->r_data) != s->r_data_length) { + WARN(ZS_BAD_RDATA_LENGTH); p--; {goto st319;} } } { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto st1505; +st1505: + if ( ++p == pe ) + goto _test_eof1505; +case 1505: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st746; + case 32: goto st746; + case 40: goto tr2128; + case 41: goto tr2129; + case 3082: goto tr2130; + case 3131: goto tr2131; + case 3338: goto tr2132; + case 3387: goto tr2132; + case 3594: goto tr2133; + case 3643: goto tr2134; } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr2123; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2123; + } else + goto tr2123; + goto tr2084; +tr2134: { s->buffer_length = 0; } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if ((rdata_tail - s->r_data) != s->r_data_length) { + WARN(ZS_BAD_RDATA_LENGTH); p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1519; -tr2047: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + goto st1506; +st1506: + if ( ++p == pe ) + goto _test_eof1506; +case 1506: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr2136; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2135; + goto tr2084; +tr2125: { s->buffer_length = 0; } + goto st748; +tr2137: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } + goto st748; +tr2143: { - p--; {cs = stack[--top];goto _again;} - } - goto st1519; -tr2057: - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { s->buffer_length = 0; } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto st748; +st748: + if ( ++p == pe ) + goto _test_eof748; +case 748: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr2138; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2137; + goto tr2070; +tr2112: { - p--; {cs = stack[--top];goto _again;} - } - goto st1519; -tr2102: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } + s->number64 = 0; } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } + goto st749; +tr2116: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto st749; +st749: + if ( ++p == pe ) + goto _test_eof749; +case 749: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr2139; + case 32: goto tr2139; + case 40: goto tr2140; + case 41: goto tr2141; + case 2058: goto tr2142; + case 2107: goto tr2143; } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2116; + goto tr2076; +tr2119: { - s->buffer_length = 0; + p--; {cs = stack[--top];goto _again;} } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - p--; {cs = stack[--top];goto _again;} + s->buffer_length = 0; } - goto st1519; -tr2125: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} + goto st1507; +st1507: + if ( ++p == pe ) + goto _test_eof1507; +case 1507: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr2138; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2137; + goto tr2070; +tr2110: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + s->buffer_length = 0; } + goto st750; +tr2144: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} + goto st750; +st750: + if ( ++p == pe ) + goto _test_eof750; +case 750: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - { - s->buffer_length = 0; + if ( _widec == 2058 ) + goto tr2145; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2144; + goto tr2070; +st751: + if ( ++p == pe ) + goto _test_eof751; +case 751: + switch( (*p) ) { + case 97: goto tr2147; + case 100: goto tr2148; + case 101: goto tr2149; + case 105: goto tr2150; + case 107: goto tr2151; + case 110: goto tr2152; + case 111: goto tr2153; + case 112: goto tr2154; } + goto tr2146; +tr2147: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { - p--; {cs = stack[--top];goto _again;} + goto st752; +st752: + if ( ++p == pe ) + goto _test_eof752; +case 752: + if ( (*p) == 108 ) + goto st753; + goto tr2146; +st753: + if ( ++p == pe ) + goto _test_eof753; +case 753: + if ( (*p) == 112 ) + goto st754; + goto tr2146; +st754: + if ( ++p == pe ) + goto _test_eof754; +case 754: + if ( (*p) == 110 ) + goto st755; + goto tr2146; +st755: + if ( ++p == pe ) + goto _test_eof755; +case 755: + switch( (*p) ) { + case 32: goto tr2158; + case 34: goto tr2158; + case 44: goto tr2158; + case 59: goto tr2158; } - goto st1519; -tr2140: + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2158; + } else if ( (*p) >= 9 ) + goto tr2158; + goto tr2146; +tr2187: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -62459,206 +61115,623 @@ tr2140: } } { - uint16_t val = htons(0); + p--; {cs = stack[--top];goto _again;} + } + goto st1508; +tr2158: + { + uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1508; +tr2165: { - s->buffer_length = 0; + uint16_t val = htons(7); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} + } + goto st1508; +tr2168: + { + uint16_t val = htons(5); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { p--; {cs = stack[--top];goto _again;} } - goto st1519; -tr2164: + goto st1508; +tr2177: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + uint16_t val = htons(4); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + p--; {cs = stack[--top];goto _again;} } + goto st1508; +tr2182: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + uint16_t val = htons(6); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - s->buffer_length = 0; + p--; {cs = stack[--top];goto _again;} } + goto st1508; +tr2203: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st319;} - } + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { p--; {cs = stack[--top];goto _again;} } - goto st1519; -tr2187: + goto st1508; +tr2208: { - uint16_t val = htons(2); + uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } { - uint16_t val = htons(0); + p--; {cs = stack[--top];goto _again;} + } + goto st1508; +tr2212: + { + uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + p--; {cs = stack[--top];goto _again;} + } + goto st1508; +st1508: + if ( ++p == pe ) + goto _test_eof1508; +case 1508: + goto st0; +tr2148: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { - s->buffer_length = 0; + goto st756; +st756: + if ( ++p == pe ) + goto _test_eof756; +case 756: + if ( (*p) == 111 ) + goto st757; + goto tr2146; +st757: + if ( ++p == pe ) + goto _test_eof757; +case 757: + if ( (*p) == 104 ) + goto st758; + goto tr2146; +st758: + if ( ++p == pe ) + goto _test_eof758; +case 758: + if ( (*p) == 112 ) + goto st759; + goto tr2146; +st759: + if ( ++p == pe ) + goto _test_eof759; +case 759: + if ( (*p) == 97 ) + goto st760; + goto tr2146; +st760: + if ( ++p == pe ) + goto _test_eof760; +case 760: + if ( (*p) == 116 ) + goto st761; + goto tr2146; +st761: + if ( ++p == pe ) + goto _test_eof761; +case 761: + if ( (*p) == 104 ) + goto st762; + goto tr2146; +st762: + if ( ++p == pe ) + goto _test_eof762; +case 762: + switch( (*p) ) { + case 32: goto tr2165; + case 34: goto tr2165; + case 44: goto tr2165; + case 59: goto tr2165; } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2165; + } else if ( (*p) >= 9 ) + goto tr2165; + goto tr2146; +tr2149: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { - p--; {cs = stack[--top];goto _again;} + goto st763; +st763: + if ( ++p == pe ) + goto _test_eof763; +case 763: + if ( (*p) == 99 ) + goto st764; + goto tr2146; +st764: + if ( ++p == pe ) + goto _test_eof764; +case 764: + if ( (*p) == 104 ) + goto st765; + goto tr2146; +st765: + if ( ++p == pe ) + goto _test_eof765; +case 765: + switch( (*p) ) { + case 32: goto tr2168; + case 34: goto tr2168; + case 44: goto tr2168; + case 59: goto tr2168; } - goto st1519; -tr2199: + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2168; + } else if ( (*p) >= 9 ) + goto tr2168; + goto tr2146; +tr2150: { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + goto st766; +st766: + if ( ++p == pe ) + goto _test_eof766; +case 766: + if ( (*p) == 112 ) + goto st767; + goto tr2146; +st767: + if ( ++p == pe ) + goto _test_eof767; +case 767: + if ( (*p) == 118 ) + goto st768; + goto tr2146; +st768: + if ( ++p == pe ) + goto _test_eof768; +case 768: + switch( (*p) ) { + case 52: goto st769; + case 54: goto st774; + } + goto tr2146; +st769: + if ( ++p == pe ) + goto _test_eof769; +case 769: + if ( (*p) == 104 ) + goto st770; + goto tr2146; +st770: + if ( ++p == pe ) + goto _test_eof770; +case 770: + if ( (*p) == 105 ) + goto st771; + goto tr2146; +st771: + if ( ++p == pe ) + goto _test_eof771; +case 771: + if ( (*p) == 110 ) + goto st772; + goto tr2146; +st772: + if ( ++p == pe ) + goto _test_eof772; +case 772: + if ( (*p) == 116 ) + goto st773; + goto tr2146; +st773: + if ( ++p == pe ) + goto _test_eof773; +case 773: + switch( (*p) ) { + case 32: goto tr2177; + case 34: goto tr2177; + case 44: goto tr2177; + case 59: goto tr2177; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2177; + } else if ( (*p) >= 9 ) + goto tr2177; + goto tr2146; +st774: + if ( ++p == pe ) + goto _test_eof774; +case 774: + if ( (*p) == 104 ) + goto st775; + goto tr2146; +st775: + if ( ++p == pe ) + goto _test_eof775; +case 775: + if ( (*p) == 105 ) + goto st776; + goto tr2146; +st776: + if ( ++p == pe ) + goto _test_eof776; +case 776: + if ( (*p) == 110 ) + goto st777; + goto tr2146; +st777: + if ( ++p == pe ) + goto _test_eof777; +case 777: + if ( (*p) == 116 ) + goto st778; + goto tr2146; +st778: + if ( ++p == pe ) + goto _test_eof778; +case 778: + switch( (*p) ) { + case 32: goto tr2182; + case 34: goto tr2182; + case 44: goto tr2182; + case 59: goto tr2182; } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2182; + } else if ( (*p) >= 9 ) + goto tr2182; + goto tr2146; +tr2151: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st779; +st779: + if ( ++p == pe ) + goto _test_eof779; +case 779: + if ( (*p) == 101 ) + goto st780; + goto tr2146; +st780: + if ( ++p == pe ) + goto _test_eof780; +case 780: + if ( (*p) == 121 ) + goto st781; + goto tr2146; +st781: + if ( ++p == pe ) + goto _test_eof781; +case 781: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2186; + goto tr2185; +tr2186: { - s->buffer_length = 0; + s->number64 = 0; } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } + goto st782; +tr2188: { - p--; {cs = stack[--top];goto _again;} - } - goto st1519; -tr2217: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } + goto st782; +st782: + if ( ++p == pe ) + goto _test_eof782; +case 782: + switch( (*p) ) { + case 32: goto tr2187; + case 34: goto tr2187; + case 44: goto tr2187; + case 59: goto tr2187; + } + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2187; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2188; + } else + goto tr2187; + goto tr2185; +tr2152: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { - s->buffer_length = 0; + goto st783; +st783: + if ( ++p == pe ) + goto _test_eof783; +case 783: + if ( (*p) == 111 ) + goto st784; + goto tr2146; +st784: + if ( ++p == pe ) + goto _test_eof784; +case 784: + if ( (*p) == 45 ) + goto st785; + goto tr2146; +st785: + if ( ++p == pe ) + goto _test_eof785; +case 785: + if ( (*p) == 100 ) + goto st786; + goto tr2146; +st786: + if ( ++p == pe ) + goto _test_eof786; +case 786: + if ( (*p) == 101 ) + goto st787; + goto tr2146; +st787: + if ( ++p == pe ) + goto _test_eof787; +case 787: + if ( (*p) == 102 ) + goto st788; + goto tr2146; +st788: + if ( ++p == pe ) + goto _test_eof788; +case 788: + if ( (*p) == 97 ) + goto st789; + goto tr2146; +st789: + if ( ++p == pe ) + goto _test_eof789; +case 789: + if ( (*p) == 117 ) + goto st790; + goto tr2146; +st790: + if ( ++p == pe ) + goto _test_eof790; +case 790: + if ( (*p) == 108 ) + goto st791; + goto tr2146; +st791: + if ( ++p == pe ) + goto _test_eof791; +case 791: + if ( (*p) == 116 ) + goto st792; + goto tr2146; +st792: + if ( ++p == pe ) + goto _test_eof792; +case 792: + if ( (*p) == 45 ) + goto st793; + goto tr2146; +st793: + if ( ++p == pe ) + goto _test_eof793; +case 793: + if ( (*p) == 97 ) + goto st794; + goto tr2146; +st794: + if ( ++p == pe ) + goto _test_eof794; +case 794: + if ( (*p) == 108 ) + goto st795; + goto tr2146; +st795: + if ( ++p == pe ) + goto _test_eof795; +case 795: + if ( (*p) == 112 ) + goto st796; + goto tr2146; +st796: + if ( ++p == pe ) + goto _test_eof796; +case 796: + if ( (*p) == 110 ) + goto st797; + goto tr2146; +st797: + if ( ++p == pe ) + goto _test_eof797; +case 797: + switch( (*p) ) { + case 32: goto tr2203; + case 34: goto tr2203; + case 44: goto tr2203; + case 59: goto tr2203; } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2203; + } else if ( (*p) >= 9 ) + goto tr2203; + goto tr2146; +tr2153: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1519; -st1519: + goto st798; +st798: if ( ++p == pe ) - goto _test_eof1519; -case 1519: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto _test_eof798; +case 798: + if ( (*p) == 104 ) + goto st799; + goto tr2146; +st799: + if ( ++p == pe ) + goto _test_eof799; +case 799: + if ( (*p) == 116 ) + goto st800; + goto tr2146; +st800: + if ( ++p == pe ) + goto _test_eof800; +case 800: + if ( (*p) == 116 ) + goto st801; + goto tr2146; +st801: + if ( ++p == pe ) + goto _test_eof801; +case 801: + if ( (*p) == 112 ) + goto st802; + goto tr2146; +st802: + if ( ++p == pe ) + goto _test_eof802; +case 802: + switch( (*p) ) { + case 32: goto tr2208; + case 34: goto tr2208; + case 44: goto tr2208; + case 59: goto tr2208; } - if ( _widec == 2058 ) - goto tr2030; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2029; - goto tr1989; -tr2039: + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2208; + } else if ( (*p) >= 9 ) + goto tr2208; + goto tr2146; +tr2154: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { + if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { p--; {stack[top++] = 654;goto st330;} } - goto st654; -st654: + goto st803; +st803: if ( ++p == pe ) - goto _test_eof654; -case 654: + goto _test_eof803; +case 803: + if ( (*p) == 111 ) + goto st804; + goto tr2146; +st804: + if ( ++p == pe ) + goto _test_eof804; +case 804: + if ( (*p) == 114 ) + goto st805; + goto tr2146; +st805: + if ( ++p == pe ) + goto _test_eof805; +case 805: + if ( (*p) == 116 ) + goto st806; + goto tr2146; +st806: + if ( ++p == pe ) + goto _test_eof806; +case 806: + switch( (*p) ) { + case 32: goto tr2212; + case 34: goto tr2212; + case 44: goto tr2212; + case 59: goto tr2212; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2212; + } else if ( (*p) >= 9 ) + goto tr2212; + goto tr2146; +st807: + if ( ++p == pe ) + goto _test_eof807; +case 807: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62676,129 +61749,121 @@ case 654: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2040; - case 32: goto tr2040; - case 40: goto tr2041; - case 41: goto tr2042; - case 3082: goto tr2043; - case 3131: goto tr2044; - case 3338: goto tr2045; - case 3387: goto tr2045; - case 3594: goto tr2046; - case 3643: goto tr2047; + case 9: goto tr2214; + case 32: goto tr2214; + case 40: goto tr2215; + case 41: goto tr2216; + case 3082: goto tr2217; + case 3131: goto tr2218; + case 3338: goto tr2219; + case 3387: goto tr2219; + case 3594: goto tr2220; + case 3643: goto tr2221; } - if ( _widec < 11 ) { - if ( _widec <= 8 ) - goto tr2048; - } else if ( _widec > 58 ) { - if ( 60 <= _widec ) - goto tr2048; - } else - goto tr2048; - goto tr1989; -tr2048: + goto tr2213; +tr2223: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } - { p--; {stack[top++] = 655;goto st330;} } - goto st655; -st655: - if ( ++p == pe ) - goto _test_eof655; -case 655: - if ( (*p) == 34 ) - goto tr2049; - goto tr1989; -tr2049: + goto st808; +tr2224: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } - goto st656; -tr2089: + goto st808; +tr2234: { - s->buffer[s->buffer_length] = 0; + s->line_counter++; + } + goto st808; +tr2254: + { + s->buffer[s->buffer_length++] = 0; - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 808; goto _out;} + } } } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + s->line_counter++; } + goto st808; +tr2214: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } - goto st656; -tr2112: + goto st808; +tr2215: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st808; +tr2216: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + s->multiline = false; } + goto st808; +tr2217: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + s->line_counter++; + } + goto st808; +tr2245: + { + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st656; -tr2207: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); p--; {goto st319;} } } - goto st656; -tr2153: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -62811,10 +61876,14 @@ tr2153: } } { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto st656; -tr2219: + goto st808; +tr2246: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -62846,657 +61915,262 @@ tr2219: p--; {goto st319;} } } - goto st656; -st656: - if ( ++p == pe ) - goto _test_eof656; -case 656: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr2050; - case 32: goto tr2050; - case 40: goto tr2051; - case 41: goto tr2052; - case 3082: goto tr2053; - case 3131: goto tr2054; - case 3338: goto tr2055; - case 3387: goto tr2055; - case 3594: goto tr2056; - case 3643: goto tr2057; - } - goto tr1989; -tr2003: { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->svcb.param_position = rdata_tail; - } - goto st657; -st657: - if ( ++p == pe ) - goto _test_eof657; -case 657: - if ( (*p) == 99 ) - goto st658; - goto tr1989; -st658: - if ( ++p == pe ) - goto _test_eof658; -case 658: - if ( (*p) == 104 ) - goto st659; - goto tr1989; -st659: - if ( ++p == pe ) - goto _test_eof659; -case 659: - if ( (*p) == 61 ) - goto tr2060; - goto tr1989; -tr2060: - { - uint16_t val = htons(5); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - goto st660; -st660: - if ( ++p == pe ) - goto _test_eof660; -case 660: - switch( (*p) ) { - case 34: goto st661; - case 43: goto tr2062; } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2062; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2062; - } else - goto tr2062; - goto tr1989; -st661: - if ( ++p == pe ) - goto _test_eof661; -case 661: - if ( (*p) == 43 ) - goto tr2063; - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2063; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2063; - } else - goto tr2063; - goto tr1989; -tr2069: { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } - goto st662; -tr2063: + goto st808; +tr2247: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st662; -st662: - if ( ++p == pe ) - goto _test_eof662; -case 662: - if ( (*p) == 43 ) - goto tr2064; - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2064; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2064; - } else - goto tr2064; - goto tr1989; -tr2064: { - *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; - - if (rdata_tail <= rdata_stop) { - *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); p--; {goto st319;} } } - goto st663; -st663: - if ( ++p == pe ) - goto _test_eof663; -case 663: - switch( (*p) ) { - case 43: goto tr2065; - case 61: goto st666; - } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2065; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2065; - } else - goto tr2065; - goto tr1989; -tr2065: { - *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; + s->item_length = rdata_tail - s->item_length2_location - 2; - if (rdata_tail <= rdata_stop) { - *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st664; -st664: - if ( ++p == pe ) - goto _test_eof664; -case 664: - switch( (*p) ) { - case 43: goto tr2067; - case 61: goto st665; - } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2067; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2067; - } else - goto tr2067; - goto tr1989; -tr2067: - { - *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; - } - goto st665; -st665: - if ( ++p == pe ) - goto _test_eof665; -case 665: - switch( (*p) ) { - case 34: goto tr2049; - case 43: goto tr2069; - } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2069; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2069; - } else - goto tr2069; - goto tr1989; -st666: - if ( ++p == pe ) - goto _test_eof666; -case 666: - if ( (*p) == 61 ) - goto st665; - goto tr1989; -tr2075: { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } - goto st667; -tr2062: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st808; +tr2248: { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st667; -st667: - if ( ++p == pe ) - goto _test_eof667; -case 667: - if ( (*p) == 43 ) - goto tr2070; - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2070; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2070; - } else - goto tr2070; - goto tr1989; -tr2070: { - *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; - - if (rdata_tail <= rdata_stop) { - *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); p--; {goto st319;} } } - goto st668; -st668: - if ( ++p == pe ) - goto _test_eof668; -case 668: - switch( (*p) ) { - case 43: goto tr2071; - case 61: goto st671; - } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2071; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2071; - } else - goto tr2071; - goto tr1989; -tr2071: { - *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; + s->item_length = rdata_tail - s->item_length2_location - 2; - if (rdata_tail <= rdata_stop) { - *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st669; -st669: - if ( ++p == pe ) - goto _test_eof669; -case 669: - switch( (*p) ) { - case 43: goto tr2073; - case 61: goto st670; - } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2073; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2073; - } else - goto tr2073; - goto tr1989; -tr2073: { - *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; - } - goto st670; -st670: - if ( ++p == pe ) - goto _test_eof670; -case 670: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto tr2040; - case 32: goto tr2040; - case 40: goto tr2041; - case 41: goto tr2042; - case 43: goto tr2075; - case 3082: goto tr2043; - case 3131: goto tr2044; - case 3338: goto tr2045; - case 3387: goto tr2045; - case 3594: goto tr2046; - case 3643: goto tr2047; + { + s->line_counter++; } - if ( _widec < 65 ) { - if ( 47 <= _widec && _widec <= 57 ) - goto tr2075; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr2075; - } else - goto tr2075; - goto tr1989; -st671: - if ( ++p == pe ) - goto _test_eof671; -case 671: - if ( (*p) == 61 ) - goto st670; - goto tr1989; -tr2004: + goto st808; +tr2264: { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } - s->svcb.param_position = rdata_tail; - } - goto st672; -st672: - if ( ++p == pe ) - goto _test_eof672; -case 672: - if ( (*p) == 112 ) - goto st673; - goto tr1989; -st673: - if ( ++p == pe ) - goto _test_eof673; -case 673: - if ( (*p) == 118 ) - goto st674; - goto tr1989; -st674: - if ( ++p == pe ) - goto _test_eof674; -case 674: - switch( (*p) ) { - case 52: goto st675; - case 54: goto st686; } - goto tr1989; -st675: - if ( ++p == pe ) - goto _test_eof675; -case 675: - if ( (*p) == 104 ) - goto st676; - goto tr1989; -st676: - if ( ++p == pe ) - goto _test_eof676; -case 676: - if ( (*p) == 105 ) - goto st677; - goto tr1989; -st677: - if ( ++p == pe ) - goto _test_eof677; -case 677: - if ( (*p) == 110 ) - goto st678; - goto tr1989; -st678: - if ( ++p == pe ) - goto _test_eof678; -case 678: - if ( (*p) == 116 ) - goto st679; - goto tr1989; -st679: - if ( ++p == pe ) - goto _test_eof679; -case 679: - if ( (*p) == 61 ) - goto tr2084; - goto tr1989; -tr2084: { - uint16_t val = htons(4); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - goto st680; -st680: - if ( ++p == pe ) - goto _test_eof680; -case 680: - switch( (*p) ) { - case 34: goto st681; - case 46: goto tr2087; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2087; - goto tr2085; -st681: - if ( ++p == pe ) - goto _test_eof681; -case 681: - if ( (*p) == 46 ) - goto tr2088; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2088; - goto tr2085; -tr2088: + goto st808; +tr2265: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - s->buffer_length = 0; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } - goto st682; -tr2091: + goto st808; +tr2266: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st682; -tr2092: { - s->buffer_length = 0; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } - goto st682; -st682: - if ( ++p == pe ) - goto _test_eof682; -case 682: - switch( (*p) ) { - case 34: goto tr2089; - case 44: goto tr2090; - case 46: goto tr2091; - } - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2091; - goto tr2085; -tr2090: + goto st808; +tr2267: { - s->buffer[s->buffer_length] = 0; + s->item_length = rdata_tail - s->item_length2_location - 2; - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st683; -st683: - if ( ++p == pe ) - goto _test_eof683; -case 683: - if ( (*p) == 46 ) - goto tr2092; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2092; - goto tr2085; -tr2087: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + s->line_counter++; } + goto st808; +tr2274: { - s->buffer_length = 0; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } + goto st808; +tr2275: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } - goto st684; -tr2097: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } - goto st684; -tr2103: + goto st808; +tr2276: { - s->buffer_length = 0; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } - goto st684; -st684: - if ( ++p == pe ) - goto _test_eof684; -case 684: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + goto st808; +tr2277: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto tr2093; - case 32: goto tr2093; - case 40: goto tr2094; - case 41: goto tr2095; - case 44: goto tr2096; - case 46: goto tr2097; - case 3082: goto tr2098; - case 3131: goto tr2099; - case 3338: goto tr2100; - case 3387: goto tr2100; - case 3594: goto tr2101; - case 3643: goto tr2102; + { + s->line_counter++; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2097; - goto tr2085; -tr2096: + goto st808; +tr2317: { s->buffer[s->buffer_length] = 0; @@ -63513,275 +62187,151 @@ tr2096: memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st685; -st685: - if ( ++p == pe ) - goto _test_eof685; -case 685: - if ( (*p) == 46 ) - goto tr2103; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2103; - goto tr2085; -st686: - if ( ++p == pe ) - goto _test_eof686; -case 686: - if ( (*p) == 104 ) - goto st687; - goto tr1989; -st687: - if ( ++p == pe ) - goto _test_eof687; -case 687: - if ( (*p) == 105 ) - goto st688; - goto tr1989; -st688: - if ( ++p == pe ) - goto _test_eof688; -case 688: - if ( (*p) == 110 ) - goto st689; - goto tr1989; -st689: - if ( ++p == pe ) - goto _test_eof689; -case 689: - if ( (*p) == 116 ) - goto st690; - goto tr1989; -st690: - if ( ++p == pe ) - goto _test_eof690; -case 690: - if ( (*p) == 61 ) - goto tr2108; - goto tr1989; -tr2108: { - uint16_t val = htons(6); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - goto st691; -st691: - if ( ++p == pe ) - goto _test_eof691; -case 691: - switch( (*p) ) { - case 34: goto st692; - case 46: goto tr2110; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2110; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2110; - } else - goto tr2110; - goto tr2085; -st692: - if ( ++p == pe ) - goto _test_eof692; -case 692: - if ( (*p) == 46 ) - goto tr2111; - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2111; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2111; - } else - goto tr2111; - goto tr2085; -tr2111: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } + goto st808; +tr2318: { - s->buffer_length = 0; + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st319;} + } } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st693; -tr2114: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st693; -tr2115: { - s->buffer_length = 0; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } - goto st693; -st693: - if ( ++p == pe ) - goto _test_eof693; -case 693: - switch( (*p) ) { - case 34: goto tr2112; - case 44: goto tr2113; - case 46: goto tr2114; - } - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2114; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2114; - } else - goto tr2114; - goto tr2085; -tr2113: + goto st808; +tr2319: { s->buffer[s->buffer_length] = 0; - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } } { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st694; -st694: - if ( ++p == pe ) - goto _test_eof694; -case 694: - if ( (*p) == 46 ) - goto tr2115; - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2115; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2115; - } else - goto tr2115; - goto tr2085; -tr2110: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - s->buffer_length = 0; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } - goto st695; -tr2120: + goto st808; +tr2322: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } } - goto st695; -tr2126: { - s->buffer_length = 0; + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st695; -st695: - if ( ++p == pe ) - goto _test_eof695; -case 695: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto tr2116; - case 32: goto tr2116; - case 40: goto tr2117; - case 41: goto tr2118; - case 44: goto tr2119; - case 46: goto tr2120; - case 3082: goto tr2121; - case 3131: goto tr2122; - case 3338: goto tr2123; - case 3387: goto tr2123; - case 3594: goto tr2124; - case 3643: goto tr2125; + { + s->line_counter++; } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 58 ) - goto tr2120; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr2120; - } else - goto tr2120; - goto tr2085; -tr2119: + goto st808; +tr2340: { s->buffer[s->buffer_length] = 0; @@ -63798,2148 +62348,1084 @@ tr2119: memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st696; -st696: - if ( ++p == pe ) - goto _test_eof696; -case 696: - if ( (*p) == 46 ) - goto tr2126; - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2126; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2126; - } else - goto tr2126; - goto tr2085; -tr2005: { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } - s->svcb.param_position = rdata_tail; - } - goto st697; -st697: - if ( ++p == pe ) - goto _test_eof697; -case 697: - if ( (*p) == 101 ) - goto st698; - goto tr1989; -st698: - if ( ++p == pe ) - goto _test_eof698; -case 698: - if ( (*p) == 121 ) - goto st699; - goto tr1989; -st699: - if ( ++p == pe ) - goto _test_eof699; -case 699: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2130; - goto tr2129; -tr2130: - { - s->number64 = 0; } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } - goto st700; -tr2134: + goto st808; +tr2341: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } } - goto st700; -st700: - if ( ++p == pe ) - goto _test_eof700; -case 700: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr2131; - case 32: goto tr2131; - case 40: goto tr2132; - case 41: goto tr2133; - case 61: goto tr2135; - case 3082: goto tr2136; - case 3131: goto tr2137; - case 3338: goto tr2138; - case 3387: goto tr2138; - case 3594: goto tr2139; - case 3643: goto tr2140; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2134; - goto tr2129; -tr2135: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st701; -st701: - if ( ++p == pe ) - goto _test_eof701; -case 701: - switch( (*p) ) { - case 32: goto tr1989; - case 59: goto tr1989; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1989; - } else if ( (*p) >= 9 ) - goto tr1989; - goto tr2038; -tr2006: { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->svcb.param_position = rdata_tail; } - goto st702; -st702: - if ( ++p == pe ) - goto _test_eof702; -case 702: - if ( (*p) == 97 ) - goto st703; - goto tr1989; -st703: - if ( ++p == pe ) - goto _test_eof703; -case 703: - if ( (*p) == 110 ) - goto st704; - goto tr1989; -st704: - if ( ++p == pe ) - goto _test_eof704; -case 704: - if ( (*p) == 100 ) - goto st705; - goto tr1989; -st705: - if ( ++p == pe ) - goto _test_eof705; -case 705: - if ( (*p) == 97 ) - goto st706; - goto tr1989; -st706: - if ( ++p == pe ) - goto _test_eof706; -case 706: - if ( (*p) == 116 ) - goto st707; - goto tr1989; -st707: - if ( ++p == pe ) - goto _test_eof707; -case 707: - if ( (*p) == 111 ) - goto st708; - goto tr1989; -st708: - if ( ++p == pe ) - goto _test_eof708; -case 708: - if ( (*p) == 114 ) - goto st709; - goto tr1989; -st709: - if ( ++p == pe ) - goto _test_eof709; -case 709: - if ( (*p) == 121 ) - goto st710; - goto tr1989; -st710: - if ( ++p == pe ) - goto _test_eof710; -case 710: - if ( (*p) == 61 ) - goto tr2149; - goto tr1989; -tr2149: { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st711; -st711: - if ( ++p == pe ) - goto _test_eof711; -case 711: - if ( (*p) == 34 ) - goto st712; - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2151; - } else if ( (*p) >= 65 ) - goto tr2151; - goto tr1989; -st712: - if ( ++p == pe ) - goto _test_eof712; -case 712: - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2152; - } else if ( (*p) >= 65 ) - goto tr2152; - goto tr1989; -tr2152: + goto st808; +tr2342: { - s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st319;} + } } { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - } - { p--; {stack[top++] = 713;goto st580;} } - goto st713; -tr2155: - { p--; {stack[top++] = 713;goto st580;} } - goto st713; -st713: - if ( ++p == pe ) - goto _test_eof713; -case 713: - switch( (*p) ) { - case 34: goto tr2153; - case 44: goto st714; - } - goto tr1989; -st714: - if ( ++p == pe ) - goto _test_eof714; -case 714: - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2155; - } else if ( (*p) >= 65 ) - goto tr2155; - goto tr1989; -tr2151: - { - s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - { p--; {stack[top++] = 715;goto st580;} } - goto st715; -tr2165: - { p--; {stack[top++] = 715;goto st580;} } - goto st715; -st715: - if ( ++p == pe ) - goto _test_eof715; -case 715: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto tr2156; - case 32: goto tr2156; - case 40: goto tr2157; - case 41: goto tr2158; - case 44: goto st716; - case 3082: goto tr2160; - case 3131: goto tr2161; - case 3338: goto tr2162; - case 3387: goto tr2162; - case 3594: goto tr2163; - case 3643: goto tr2164; - } - goto tr1989; -st716: - if ( ++p == pe ) - goto _test_eof716; -case 716: - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2165; - } else if ( (*p) >= 65 ) - goto tr2165; - goto tr1989; -tr2007: { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } - s->svcb.param_position = rdata_tail; + s->multiline = false; } - goto st717; -st717: - if ( ++p == pe ) - goto _test_eof717; -case 717: - if ( (*p) == 111 ) - goto st718; - goto tr1989; -st718: - if ( ++p == pe ) - goto _test_eof718; -case 718: - if ( (*p) == 45 ) - goto st719; - goto tr1989; -st719: - if ( ++p == pe ) - goto _test_eof719; -case 719: - if ( (*p) == 100 ) - goto st720; - goto tr1989; -st720: - if ( ++p == pe ) - goto _test_eof720; -case 720: - if ( (*p) == 101 ) - goto st721; - goto tr1989; -st721: - if ( ++p == pe ) - goto _test_eof721; -case 721: - if ( (*p) == 102 ) - goto st722; - goto tr1989; -st722: - if ( ++p == pe ) - goto _test_eof722; -case 722: - if ( (*p) == 97 ) - goto st723; - goto tr1989; -st723: - if ( ++p == pe ) - goto _test_eof723; -case 723: - if ( (*p) == 117 ) - goto st724; - goto tr1989; -st724: - if ( ++p == pe ) - goto _test_eof724; -case 724: - if ( (*p) == 108 ) - goto st725; - goto tr1989; -st725: - if ( ++p == pe ) - goto _test_eof725; -case 725: - if ( (*p) == 116 ) - goto st726; - goto tr1989; -st726: - if ( ++p == pe ) - goto _test_eof726; -case 726: - if ( (*p) == 45 ) - goto st727; - goto tr1989; -st727: - if ( ++p == pe ) - goto _test_eof727; -case 727: - if ( (*p) == 97 ) - goto st728; - goto tr1989; -st728: - if ( ++p == pe ) - goto _test_eof728; -case 728: - if ( (*p) == 108 ) - goto st729; - goto tr1989; -st729: - if ( ++p == pe ) - goto _test_eof729; -case 729: - if ( (*p) == 112 ) - goto st730; - goto tr1989; -st730: - if ( ++p == pe ) - goto _test_eof730; -case 730: - if ( (*p) == 110 ) - goto st731; - goto tr1989; -st731: - if ( ++p == pe ) - goto _test_eof731; -case 731: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + goto st808; +tr2345: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st319;} + } } - switch( _widec ) { - case 9: goto tr2180; - case 32: goto tr2180; - case 40: goto tr2181; - case 41: goto tr2182; - case 3082: goto tr2183; - case 3131: goto tr2184; - case 3338: goto tr2185; - case 3387: goto tr2185; - case 3594: goto tr2186; - case 3643: goto tr2187; - } - goto tr1989; -tr2008: { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->svcb.param_position = rdata_tail; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st732; -st732: - if ( ++p == pe ) - goto _test_eof732; -case 732: - if ( (*p) == 104 ) - goto st733; - goto tr1989; -st733: - if ( ++p == pe ) - goto _test_eof733; -case 733: - if ( (*p) == 116 ) - goto st734; - goto tr1989; -st734: - if ( ++p == pe ) - goto _test_eof734; -case 734: - if ( (*p) == 116 ) - goto st735; - goto tr1989; -st735: - if ( ++p == pe ) - goto _test_eof735; -case 735: - if ( (*p) == 112 ) - goto st736; - goto tr1989; -st736: - if ( ++p == pe ) - goto _test_eof736; -case 736: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto tr2192; - case 32: goto tr2192; - case 40: goto tr2193; - case 41: goto tr2194; - case 3082: goto tr2195; - case 3131: goto tr2196; - case 3338: goto tr2197; - case 3387: goto tr2197; - case 3594: goto tr2198; - case 3643: goto tr2199; - } - goto tr1989; -tr2009: { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->svcb.param_position = rdata_tail; } - goto st737; -st737: - if ( ++p == pe ) - goto _test_eof737; -case 737: - if ( (*p) == 111 ) - goto st738; - goto tr1989; -st738: - if ( ++p == pe ) - goto _test_eof738; -case 738: - if ( (*p) == 114 ) - goto st739; - goto tr1989; -st739: - if ( ++p == pe ) - goto _test_eof739; -case 739: - if ( (*p) == 116 ) - goto st740; - goto tr1989; -st740: - if ( ++p == pe ) - goto _test_eof740; -case 740: - if ( (*p) == 61 ) - goto tr2203; - goto tr1989; -tr2203: { - uint16_t val = htons(3); + s->line_counter++; + } + goto st808; +tr2355: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + uint16_t val = htons(0); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st741; -st741: - if ( ++p == pe ) - goto _test_eof741; -case 741: - if ( (*p) == 34 ) - goto st742; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2205; - goto tr2129; -st742: - if ( ++p == pe ) - goto _test_eof742; -case 742: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2206; - goto tr2129; -tr2208: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } + } + goto st808; +tr2356: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } - goto st743; -tr2206: { - uint16_t val = htons(2); + uint16_t val = htons(0); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - s->number64 = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } + goto st808; +tr2357: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } - goto st743; -st743: - if ( ++p == pe ) - goto _test_eof743; -case 743: - if ( (*p) == 34 ) - goto tr2207; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2208; - goto tr2129; -tr2212: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st808; +tr2360: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } - goto st744; -tr2205: { - uint16_t val = htons(2); + uint16_t val = htons(0); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - s->number64 = 0; + s->line_counter++; } + goto st808; +tr2380: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st744; -st744: - if ( ++p == pe ) - goto _test_eof744; -case 744: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto tr2209; - case 32: goto tr2209; - case 40: goto tr2210; - case 41: goto tr2211; - case 3082: goto tr2213; - case 3131: goto tr2214; - case 3338: goto tr2215; - case 3387: goto tr2215; - case 3594: goto tr2216; - case 3643: goto tr2217; + goto st808; +tr2381: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2212; - goto tr2129; -tr2020: { - s->comma_list = true; - s->pending_backslash = false; + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } - { p--; {stack[top++] = 745;goto st330;} } - goto st745; -st745: - if ( ++p == pe ) - goto _test_eof745; -case 745: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + goto st808; +tr2382: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto tr2021; - case 32: goto tr2021; - case 40: goto tr2022; - case 41: goto tr2023; - case 3082: goto tr2024; - case 3131: goto tr2025; - case 3338: goto tr2026; - case 3387: goto tr2026; - case 3594: goto tr2027; - case 3643: goto tr2028; + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } - if ( _widec < 11 ) { - if ( _widec <= 8 ) - goto tr2218; - } else if ( _widec > 58 ) { - if ( 60 <= _widec ) - goto tr2218; - } else - goto tr2218; - goto tr1989; -tr2218: { - s->comma_list = true; - s->pending_backslash = false; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st808; +tr2384: { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - { p--; {stack[top++] = 746;goto st330;} } - goto st746; -st746: - if ( ++p == pe ) - goto _test_eof746; -case 746: - if ( (*p) == 34 ) - goto tr2219; - goto tr1989; -st747: - if ( ++p == pe ) - goto _test_eof747; -case 747: - switch( (*p) ) { - case 68: goto st749; - case 69: goto st764; - case 73: goto st803; - case 80: goto st811; - case 82: goto st824; - case 100: goto st749; - case 101: goto st764; - case 105: goto st803; - case 112: goto st811; - case 114: goto st824; - } - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2221; - goto tr2220; -tr2221: { - s->number64 = 0; + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } - goto st748; -tr2228: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + s->line_counter++; + } + goto st808; +tr2404: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } - goto st748; -st748: - if ( ++p == pe ) - goto _test_eof748; -case 748: - switch( (*p) ) { - case 32: goto tr2227; - case 59: goto tr2227; + goto st808; +tr2405: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2227; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2228; - } else - goto tr2227; - goto tr2220; -tr2227: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1520; -tr2231: + goto st808; +tr2406: { - *(rdata_tail++) = 2; + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - p--; {cs = stack[--top];goto _again;} + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st1520; -tr2233: { - *(rdata_tail++) = 3; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1520; -tr2245: + goto st808; +tr2407: { - *(rdata_tail++) = 6; + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - p--; {cs = stack[--top];goto _again;} + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st1520; -tr2255: { - *(rdata_tail++) = 12; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1520; -tr2269: + goto st808; +tr2416: { - *(rdata_tail++) = 13; + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - p--; {cs = stack[--top];goto _again;} + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st1520; -tr2278: { - *(rdata_tail++) = 14; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } + goto st808; +tr2417: { - p--; {cs = stack[--top];goto _again;} + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st1520; -tr2285: { - *(rdata_tail++) = 15; + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - p--; {cs = stack[--top];goto _again;} + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto st1520; -tr2288: { - *(rdata_tail++) = 16; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } + goto st808; +tr2418: { - p--; {cs = stack[--top];goto _again;} + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st1520; -tr2296: { - *(rdata_tail++) = 252; + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - p--; {cs = stack[--top];goto _again;} + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto st1520; -tr2307: { - *(rdata_tail++) = 253; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st808; +tr2419: { - p--; {cs = stack[--top];goto _again;} + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st1520; -tr2310: { - *(rdata_tail++) = 254; + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - p--; {cs = stack[--top];goto _again;} + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto st1520; -tr2317: { - *(rdata_tail++) = 1; + s->line_counter++; } + goto st808; +tr2433: { - p--; {cs = stack[--top];goto _again;} + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } } - goto st1520; -tr2323: { - *(rdata_tail++) = 5; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } + goto st808; +tr2434: { - p--; {cs = stack[--top];goto _again;} + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } } - goto st1520; -tr2335: { - *(rdata_tail++) = 7; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1520; -tr2338: + goto st808; +tr2435: { - *(rdata_tail++) = 8; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto st1520; -tr2341: { - *(rdata_tail++) = 10; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st808; +tr2437: { - p--; {cs = stack[--top];goto _again;} - } - goto st1520; -st1520: - if ( ++p == pe ) - goto _test_eof1520; -case 1520: - goto st0; -st749: - if ( ++p == pe ) - goto _test_eof749; -case 749: - switch( (*p) ) { - case 72: goto st750; - case 83: goto st751; - case 104: goto st750; - case 115: goto st751; - } - goto tr2220; -st750: - if ( ++p == pe ) - goto _test_eof750; -case 750: - switch( (*p) ) { - case 32: goto tr2231; - case 59: goto tr2231; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2231; - } else if ( (*p) >= 9 ) - goto tr2231; - goto tr2220; -st751: - if ( ++p == pe ) - goto _test_eof751; -case 751: - switch( (*p) ) { - case 65: goto st752; - case 97: goto st752; - } - goto tr2220; -st752: - if ( ++p == pe ) - goto _test_eof752; -case 752: - switch( (*p) ) { - case 32: goto tr2233; - case 45: goto st753; - case 59: goto tr2233; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2233; - } else if ( (*p) >= 9 ) - goto tr2233; - goto tr2220; -st753: - if ( ++p == pe ) - goto _test_eof753; -case 753: - switch( (*p) ) { - case 78: goto st754; - case 110: goto st754; - } - goto tr2220; -st754: - if ( ++p == pe ) - goto _test_eof754; -case 754: - switch( (*p) ) { - case 83: goto st755; - case 115: goto st755; - } - goto tr2220; -st755: - if ( ++p == pe ) - goto _test_eof755; -case 755: - switch( (*p) ) { - case 69: goto st756; - case 101: goto st756; - } - goto tr2220; -st756: - if ( ++p == pe ) - goto _test_eof756; -case 756: - switch( (*p) ) { - case 67: goto st757; - case 99: goto st757; - } - goto tr2220; -st757: - if ( ++p == pe ) - goto _test_eof757; -case 757: - if ( (*p) == 51 ) - goto st758; - goto tr2220; -st758: - if ( ++p == pe ) - goto _test_eof758; -case 758: - if ( (*p) == 45 ) - goto st759; - goto tr2220; -st759: - if ( ++p == pe ) - goto _test_eof759; -case 759: - switch( (*p) ) { - case 83: goto st760; - case 115: goto st760; - } - goto tr2220; -st760: - if ( ++p == pe ) - goto _test_eof760; -case 760: - switch( (*p) ) { - case 72: goto st761; - case 104: goto st761; - } - goto tr2220; -st761: - if ( ++p == pe ) - goto _test_eof761; -case 761: - switch( (*p) ) { - case 65: goto st762; - case 97: goto st762; - } - goto tr2220; -st762: - if ( ++p == pe ) - goto _test_eof762; -case 762: - if ( (*p) == 49 ) - goto st763; - goto tr2220; -st763: - if ( ++p == pe ) - goto _test_eof763; -case 763: - switch( (*p) ) { - case 32: goto tr2245; - case 59: goto tr2245; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2245; - } else if ( (*p) >= 9 ) - goto tr2245; - goto tr2220; -st764: - if ( ++p == pe ) - goto _test_eof764; -case 764: - switch( (*p) ) { - case 67: goto st765; - case 68: goto st794; - case 99: goto st765; - case 100: goto st794; - } - goto tr2220; -st765: - if ( ++p == pe ) - goto _test_eof765; -case 765: - switch( (*p) ) { - case 67: goto st766; - case 68: goto st772; - case 99: goto st766; - case 100: goto st772; - } - goto tr2220; -st766: - if ( ++p == pe ) - goto _test_eof766; -case 766: - if ( (*p) == 45 ) - goto st767; - goto tr2220; -st767: - if ( ++p == pe ) - goto _test_eof767; -case 767: - switch( (*p) ) { - case 71: goto st768; - case 103: goto st768; - } - goto tr2220; -st768: - if ( ++p == pe ) - goto _test_eof768; -case 768: - switch( (*p) ) { - case 79: goto st769; - case 111: goto st769; - } - goto tr2220; -st769: - if ( ++p == pe ) - goto _test_eof769; -case 769: - switch( (*p) ) { - case 83: goto st770; - case 115: goto st770; - } - goto tr2220; -st770: - if ( ++p == pe ) - goto _test_eof770; -case 770: - switch( (*p) ) { - case 84: goto st771; - case 116: goto st771; - } - goto tr2220; -st771: - if ( ++p == pe ) - goto _test_eof771; -case 771: - switch( (*p) ) { - case 32: goto tr2255; - case 59: goto tr2255; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2255; - } else if ( (*p) >= 9 ) - goto tr2255; - goto tr2220; -st772: - if ( ++p == pe ) - goto _test_eof772; -case 772: - switch( (*p) ) { - case 83: goto st773; - case 115: goto st773; - } - goto tr2220; -st773: - if ( ++p == pe ) - goto _test_eof773; -case 773: - switch( (*p) ) { - case 65: goto st774; - case 97: goto st774; - } - goto tr2220; -st774: - if ( ++p == pe ) - goto _test_eof774; -case 774: - switch( (*p) ) { - case 80: goto st775; - case 112: goto st775; - } - goto tr2220; -st775: - if ( ++p == pe ) - goto _test_eof775; -case 775: - switch( (*p) ) { - case 50: goto st776; - case 51: goto st785; - } - goto tr2220; -st776: - if ( ++p == pe ) - goto _test_eof776; -case 776: - if ( (*p) == 53 ) - goto st777; - goto tr2220; -st777: - if ( ++p == pe ) - goto _test_eof777; -case 777: - if ( (*p) == 54 ) - goto st778; - goto tr2220; -st778: - if ( ++p == pe ) - goto _test_eof778; -case 778: - switch( (*p) ) { - case 83: goto st779; - case 115: goto st779; - } - goto tr2220; -st779: - if ( ++p == pe ) - goto _test_eof779; -case 779: - switch( (*p) ) { - case 72: goto st780; - case 104: goto st780; - } - goto tr2220; -st780: - if ( ++p == pe ) - goto _test_eof780; -case 780: - switch( (*p) ) { - case 65: goto st781; - case 97: goto st781; - } - goto tr2220; -st781: - if ( ++p == pe ) - goto _test_eof781; -case 781: - if ( (*p) == 50 ) - goto st782; - goto tr2220; -st782: - if ( ++p == pe ) - goto _test_eof782; -case 782: - if ( (*p) == 53 ) - goto st783; - goto tr2220; -st783: - if ( ++p == pe ) - goto _test_eof783; -case 783: - if ( (*p) == 54 ) - goto st784; - goto tr2220; -st784: - if ( ++p == pe ) - goto _test_eof784; -case 784: - switch( (*p) ) { - case 32: goto tr2269; - case 59: goto tr2269; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2269; - } else if ( (*p) >= 9 ) - goto tr2269; - goto tr2220; -st785: - if ( ++p == pe ) - goto _test_eof785; -case 785: - if ( (*p) == 56 ) - goto st786; - goto tr2220; -st786: - if ( ++p == pe ) - goto _test_eof786; -case 786: - if ( (*p) == 52 ) - goto st787; - goto tr2220; -st787: - if ( ++p == pe ) - goto _test_eof787; -case 787: - switch( (*p) ) { - case 83: goto st788; - case 115: goto st788; - } - goto tr2220; -st788: - if ( ++p == pe ) - goto _test_eof788; -case 788: - switch( (*p) ) { - case 72: goto st789; - case 104: goto st789; - } - goto tr2220; -st789: - if ( ++p == pe ) - goto _test_eof789; -case 789: - switch( (*p) ) { - case 65: goto st790; - case 97: goto st790; - } - goto tr2220; -st790: - if ( ++p == pe ) - goto _test_eof790; -case 790: - if ( (*p) == 51 ) - goto st791; - goto tr2220; -st791: - if ( ++p == pe ) - goto _test_eof791; -case 791: - if ( (*p) == 56 ) - goto st792; - goto tr2220; -st792: - if ( ++p == pe ) - goto _test_eof792; -case 792: - if ( (*p) == 52 ) - goto st793; - goto tr2220; -st793: - if ( ++p == pe ) - goto _test_eof793; -case 793: - switch( (*p) ) { - case 32: goto tr2278; - case 59: goto tr2278; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2278; - } else if ( (*p) >= 9 ) - goto tr2278; - goto tr2220; -st794: - if ( ++p == pe ) - goto _test_eof794; -case 794: - switch( (*p) ) { - case 50: goto st795; - case 52: goto st800; - } - goto tr2220; -st795: - if ( ++p == pe ) - goto _test_eof795; -case 795: - if ( (*p) == 53 ) - goto st796; - goto tr2220; -st796: - if ( ++p == pe ) - goto _test_eof796; -case 796: - if ( (*p) == 53 ) - goto st797; - goto tr2220; -st797: - if ( ++p == pe ) - goto _test_eof797; -case 797: - if ( (*p) == 49 ) - goto st798; - goto tr2220; -st798: - if ( ++p == pe ) - goto _test_eof798; -case 798: - if ( (*p) == 57 ) - goto st799; - goto tr2220; -st799: - if ( ++p == pe ) - goto _test_eof799; -case 799: - switch( (*p) ) { - case 32: goto tr2285; - case 59: goto tr2285; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2285; - } else if ( (*p) >= 9 ) - goto tr2285; - goto tr2220; -st800: - if ( ++p == pe ) - goto _test_eof800; -case 800: - if ( (*p) == 52 ) - goto st801; - goto tr2220; -st801: - if ( ++p == pe ) - goto _test_eof801; -case 801: - if ( (*p) == 56 ) - goto st802; - goto tr2220; -st802: - if ( ++p == pe ) - goto _test_eof802; -case 802: - switch( (*p) ) { - case 32: goto tr2288; - case 59: goto tr2288; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2288; - } else if ( (*p) >= 9 ) - goto tr2288; - goto tr2220; -st803: - if ( ++p == pe ) - goto _test_eof803; -case 803: - switch( (*p) ) { - case 78: goto st804; - case 110: goto st804; - } - goto tr2220; -st804: - if ( ++p == pe ) - goto _test_eof804; -case 804: - switch( (*p) ) { - case 68: goto st805; - case 100: goto st805; - } - goto tr2220; -st805: - if ( ++p == pe ) - goto _test_eof805; -case 805: - switch( (*p) ) { - case 73: goto st806; - case 105: goto st806; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } } - goto tr2220; -st806: - if ( ++p == pe ) - goto _test_eof806; -case 806: - switch( (*p) ) { - case 82: goto st807; - case 114: goto st807; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2220; -st807: - if ( ++p == pe ) - goto _test_eof807; -case 807: - switch( (*p) ) { - case 69: goto st808; - case 101: goto st808; + { + s->line_counter++; } - goto tr2220; + goto st808; st808: if ( ++p == pe ) goto _test_eof808; case 808: - switch( (*p) ) { - case 67: goto st809; - case 99: goto st809; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st808; + case 32: goto st808; + case 40: goto tr2223; + case 41: goto tr2224; + case 97: goto tr2225; + case 100: goto tr2226; + case 101: goto tr2227; + case 105: goto tr2228; + case 107: goto tr2229; + case 109: goto tr2230; + case 110: goto tr2231; + case 111: goto tr2232; + case 112: goto tr2233; + case 3082: goto tr2234; + case 3131: goto tr2235; + case 3338: goto tr2236; + case 3387: goto tr2236; + case 3594: goto tr2237; + case 3643: goto tr2238; + } + goto tr2213; +tr2225: + { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + s->svcb.param_position = rdata_tail; } - goto tr2220; + goto st809; st809: if ( ++p == pe ) goto _test_eof809; case 809: - switch( (*p) ) { - case 84: goto st810; - case 116: goto st810; - } - goto tr2220; + if ( (*p) == 108 ) + goto st810; + goto tr2213; st810: if ( ++p == pe ) goto _test_eof810; case 810: - switch( (*p) ) { - case 32: goto tr2296; - case 59: goto tr2296; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2296; - } else if ( (*p) >= 9 ) - goto tr2296; - goto tr2220; + if ( (*p) == 112 ) + goto st811; + goto tr2213; st811: if ( ++p == pe ) goto _test_eof811; case 811: - switch( (*p) ) { - case 82: goto st812; - case 114: goto st812; - } - goto tr2220; + if ( (*p) == 110 ) + goto st812; + goto tr2213; st812: if ( ++p == pe ) goto _test_eof812; case 812: - switch( (*p) ) { - case 73: goto st813; - case 105: goto st813; + if ( (*p) == 61 ) + goto tr2242; + goto tr2213; +tr2242: + { + uint16_t val = htons(1); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto tr2220; + goto st813; st813: if ( ++p == pe ) goto _test_eof813; case 813: switch( (*p) ) { - case 86: goto st814; - case 118: goto st814; + case 32: goto tr2213; + case 34: goto tr2244; + case 59: goto tr2213; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2213; + } else if ( (*p) >= 9 ) + goto tr2213; + goto tr2243; +tr2243: + { + s->comma_list = true; + s->pending_backslash = false; + } + { + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + { + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } - goto tr2220; + { p--; {stack[top++] = 814;goto st330;} } + goto st814; st814: if ( ++p == pe ) goto _test_eof814; case 814: - switch( (*p) ) { - case 65: goto st815; - case 97: goto st815; - } - goto tr2220; -st815: - if ( ++p == pe ) - goto _test_eof815; -case 815: - switch( (*p) ) { - case 84: goto st816; - case 116: goto st816; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr2220; -st816: - if ( ++p == pe ) - goto _test_eof816; -case 816: - switch( (*p) ) { - case 69: goto st817; - case 101: goto st817; + switch( _widec ) { + case 9: goto tr2245; + case 32: goto tr2245; + case 40: goto tr2246; + case 41: goto tr2247; + case 3082: goto tr2248; + case 3131: goto tr2249; + case 3338: goto tr2250; + case 3387: goto tr2250; + case 3594: goto tr2251; + case 3643: goto tr2252; } - goto tr2220; -st817: - if ( ++p == pe ) - goto _test_eof817; -case 817: - switch( (*p) ) { - case 68: goto st818; - case 79: goto st821; - case 100: goto st818; - case 111: goto st821; + goto tr2213; +tr2235: + { + s->buffer_length = 0; } - goto tr2220; -st818: - if ( ++p == pe ) - goto _test_eof818; -case 818: - switch( (*p) ) { - case 78: goto st819; - case 110: goto st819; + goto st815; +tr2253: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto tr2220; -st819: - if ( ++p == pe ) - goto _test_eof819; -case 819: - switch( (*p) ) { - case 83: goto st820; - case 115: goto st820; + goto st815; +tr2218: + { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } - goto tr2220; -st820: - if ( ++p == pe ) - goto _test_eof820; -case 820: - switch( (*p) ) { - case 32: goto tr2307; - case 59: goto tr2307; + { + s->buffer_length = 0; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2307; - } else if ( (*p) >= 9 ) - goto tr2307; - goto tr2220; -st821: - if ( ++p == pe ) - goto _test_eof821; -case 821: - switch( (*p) ) { - case 73: goto st822; - case 105: goto st822; + goto st815; +tr2249: + { + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - goto tr2220; -st822: - if ( ++p == pe ) - goto _test_eof822; -case 822: - switch( (*p) ) { - case 68: goto st823; - case 100: goto st823; + { + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st319;} + } } - goto tr2220; -st823: - if ( ++p == pe ) - goto _test_eof823; -case 823: - switch( (*p) ) { - case 32: goto tr2310; - case 59: goto tr2310; + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2310; - } else if ( (*p) >= 9 ) - goto tr2310; - goto tr2220; -st824: - if ( ++p == pe ) - goto _test_eof824; -case 824: - switch( (*p) ) { - case 83: goto st825; - case 115: goto st825; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2220; -st825: - if ( ++p == pe ) - goto _test_eof825; -case 825: - switch( (*p) ) { - case 65: goto st826; - case 97: goto st826; + { + s->buffer_length = 0; } - goto tr2220; -st826: - if ( ++p == pe ) - goto _test_eof826; -case 826: - switch( (*p) ) { - case 77: goto st827; - case 83: goto st830; - case 109: goto st827; - case 115: goto st830; + goto st815; +tr2268: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - goto tr2220; -st827: - if ( ++p == pe ) - goto _test_eof827; -case 827: - switch( (*p) ) { - case 68: goto st828; - case 100: goto st828; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2220; -st828: - if ( ++p == pe ) - goto _test_eof828; -case 828: - if ( (*p) == 53 ) - goto st829; - goto tr2220; -st829: - if ( ++p == pe ) - goto _test_eof829; -case 829: - switch( (*p) ) { - case 32: goto tr2317; - case 59: goto tr2317; + { + s->buffer_length = 0; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2317; - } else if ( (*p) >= 9 ) - goto tr2317; - goto tr2220; -st830: - if ( ++p == pe ) - goto _test_eof830; -case 830: - switch( (*p) ) { - case 72: goto st831; - case 104: goto st831; + goto st815; +tr2278: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2220; -st831: - if ( ++p == pe ) - goto _test_eof831; -case 831: - switch( (*p) ) { - case 65: goto st832; - case 97: goto st832; + { + s->buffer_length = 0; } - goto tr2220; -st832: - if ( ++p == pe ) - goto _test_eof832; -case 832: - switch( (*p) ) { - case 49: goto st833; - case 50: goto st845; - case 53: goto st848; + goto st815; +tr2323: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st319;} + } } - goto tr2220; -st833: - if ( ++p == pe ) - goto _test_eof833; -case 833: - switch( (*p) ) { - case 32: goto tr2323; - case 45: goto st834; - case 59: goto tr2323; + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2323; - } else if ( (*p) >= 9 ) - goto tr2323; - goto tr2220; -st834: - if ( ++p == pe ) - goto _test_eof834; -case 834: - switch( (*p) ) { - case 78: goto st835; - case 110: goto st835; + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - goto tr2220; -st835: - if ( ++p == pe ) - goto _test_eof835; -case 835: - switch( (*p) ) { - case 83: goto st836; - case 115: goto st836; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2220; -st836: - if ( ++p == pe ) - goto _test_eof836; -case 836: - switch( (*p) ) { - case 69: goto st837; - case 101: goto st837; + { + s->buffer_length = 0; } - goto tr2220; -st837: - if ( ++p == pe ) - goto _test_eof837; -case 837: - switch( (*p) ) { - case 67: goto st838; - case 99: goto st838; + goto st815; +tr2346: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st319;} + } } - goto tr2220; -st838: - if ( ++p == pe ) - goto _test_eof838; -case 838: - if ( (*p) == 51 ) - goto st839; - goto tr2220; -st839: - if ( ++p == pe ) - goto _test_eof839; -case 839: - if ( (*p) == 45 ) - goto st840; - goto tr2220; -st840: - if ( ++p == pe ) - goto _test_eof840; -case 840: - switch( (*p) ) { - case 83: goto st841; - case 115: goto st841; + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto tr2220; -st841: - if ( ++p == pe ) - goto _test_eof841; -case 841: - switch( (*p) ) { - case 72: goto st842; - case 104: goto st842; + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - goto tr2220; -st842: - if ( ++p == pe ) - goto _test_eof842; -case 842: - switch( (*p) ) { - case 65: goto st843; - case 97: goto st843; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2220; -st843: - if ( ++p == pe ) - goto _test_eof843; -case 843: - if ( (*p) == 49 ) - goto st844; - goto tr2220; -st844: - if ( ++p == pe ) - goto _test_eof844; -case 844: - switch( (*p) ) { - case 32: goto tr2335; - case 59: goto tr2335; + { + s->buffer_length = 0; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2335; - } else if ( (*p) >= 9 ) - goto tr2335; - goto tr2220; -st845: - if ( ++p == pe ) - goto _test_eof845; -case 845: - if ( (*p) == 53 ) - goto st846; - goto tr2220; -st846: - if ( ++p == pe ) - goto _test_eof846; -case 846: - if ( (*p) == 54 ) - goto st847; - goto tr2220; -st847: - if ( ++p == pe ) - goto _test_eof847; -case 847: - switch( (*p) ) { - case 32: goto tr2338; - case 59: goto tr2338; + goto st815; +tr2361: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2338; - } else if ( (*p) >= 9 ) - goto tr2338; - goto tr2220; -st848: - if ( ++p == pe ) - goto _test_eof848; -case 848: - if ( (*p) == 49 ) - goto st849; - goto tr2220; -st849: - if ( ++p == pe ) - goto _test_eof849; -case 849: - if ( (*p) == 50 ) - goto st850; - goto tr2220; -st850: - if ( ++p == pe ) - goto _test_eof850; -case 850: - switch( (*p) ) { - case 32: goto tr2341; - case 59: goto tr2341; + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2341; - } else if ( (*p) >= 9 ) - goto tr2341; - goto tr2220; -st851: - if ( ++p == pe ) - goto _test_eof851; -case 851: - switch( (*p) ) { - case 65: goto st853; - case 73: goto st859; - case 79: goto st876; - case 80: goto st879; - case 83: goto st885; - case 85: goto st889; - case 97: goto st853; - case 105: goto st859; - case 111: goto st876; - case 112: goto st879; - case 115: goto st885; - case 117: goto st889; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2343; - goto tr2342; -tr2343: { - s->number64 = 0; + s->buffer_length = 0; } + goto st815; +tr2385: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st852; -tr2351: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } - goto st852; -st852: - if ( ++p == pe ) - goto _test_eof852; -case 852: - switch( (*p) ) { - case 32: goto tr2350; - case 59: goto tr2350; + { + s->buffer_length = 0; } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2350; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2351; - } else - goto tr2350; - goto tr2342; -tr2387: + goto st815; +tr2408: { - uint16_t val = htons(1); + uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } { - p--; {cs = stack[--top];goto _again;} - } - goto st1521; -tr2357: - { - uint16_t val = htons(7); + uint16_t val = htons(0); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } { - p--; {cs = stack[--top];goto _again;} - } - goto st1521; -tr2377: - { - uint16_t val = htons(5); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + s->buffer_length = 0; } - goto st1521; -tr2373: + goto st815; +tr2420: { - uint16_t val = htons(4); + uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } { - p--; {cs = stack[--top];goto _again;} - } - goto st1521; -tr2370: - { - uint16_t val = htons(6); + uint16_t val = htons(0); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } { - p--; {cs = stack[--top];goto _again;} + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto st1521; -tr2350: + { + s->buffer_length = 0; + } + goto st815; +tr2438: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -65951,2897 +63437,2635 @@ tr2350: } } { - p--; {cs = stack[--top];goto _again;} + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto st1521; -tr2391: { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->buffer_length = 0; + } + goto st815; +st815: + if ( ++p == pe ) + goto _test_eof815; +case 815: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr2254; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2253; + goto tr2213; +tr2219: { - p--; {cs = stack[--top];goto _again;} + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } - goto st1521; -tr2366: { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { p--; {cs = stack[--top];goto _again;} } - goto st1521; -tr2384: + goto st1509; +tr2236: { - uint16_t val = htons(3); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { p--; {cs = stack[--top];goto _again;} } - goto st1521; -tr2380: + goto st1509; +tr2250: { - uint16_t val = htons(254); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st319;} + } } - goto st1521; -tr2394: { - uint16_t val = htons(253); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} - } - goto st1521; -st1521: - if ( ++p == pe ) - goto _test_eof1521; -case 1521: - goto st0; -st853: - if ( ++p == pe ) - goto _test_eof853; -case 853: - switch( (*p) ) { - case 67: goto st854; - case 99: goto st854; - } - goto tr2342; -st854: - if ( ++p == pe ) - goto _test_eof854; -case 854: - switch( (*p) ) { - case 80: goto st855; - case 112: goto st855; - } - goto tr2342; -st855: - if ( ++p == pe ) - goto _test_eof855; -case 855: - switch( (*p) ) { - case 75: goto st856; - case 107: goto st856; - } - goto tr2342; -st856: - if ( ++p == pe ) - goto _test_eof856; -case 856: - switch( (*p) ) { - case 73: goto st857; - case 105: goto st857; - } - goto tr2342; -st857: - if ( ++p == pe ) - goto _test_eof857; -case 857: - switch( (*p) ) { - case 88: goto st858; - case 120: goto st858; - } - goto tr2342; -st858: - if ( ++p == pe ) - goto _test_eof858; -case 858: - switch( (*p) ) { - case 32: goto tr2357; - case 59: goto tr2357; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2357; - } else if ( (*p) >= 9 ) - goto tr2357; - goto tr2342; -st859: - if ( ++p == pe ) - goto _test_eof859; -case 859: - switch( (*p) ) { - case 65: goto st860; - case 80: goto st866; - case 83: goto st872; - case 97: goto st860; - case 112: goto st866; - case 115: goto st872; - } - goto tr2342; -st860: - if ( ++p == pe ) - goto _test_eof860; -case 860: - switch( (*p) ) { - case 67: goto st861; - case 99: goto st861; - } - goto tr2342; -st861: - if ( ++p == pe ) - goto _test_eof861; -case 861: - switch( (*p) ) { - case 80: goto st862; - case 112: goto st862; - } - goto tr2342; -st862: - if ( ++p == pe ) - goto _test_eof862; -case 862: - switch( (*p) ) { - case 75: goto st863; - case 107: goto st863; - } - goto tr2342; -st863: - if ( ++p == pe ) - goto _test_eof863; -case 863: - switch( (*p) ) { - case 73: goto st864; - case 105: goto st864; - } - goto tr2342; -st864: - if ( ++p == pe ) - goto _test_eof864; -case 864: - switch( (*p) ) { - case 88: goto st865; - case 120: goto st865; - } - goto tr2342; -st865: - if ( ++p == pe ) - goto _test_eof865; -case 865: - switch( (*p) ) { - case 32: goto tr2366; - case 59: goto tr2366; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2366; - } else if ( (*p) >= 9 ) - goto tr2366; - goto tr2342; -st866: - if ( ++p == pe ) - goto _test_eof866; -case 866: - switch( (*p) ) { - case 71: goto st867; - case 75: goto st869; - case 103: goto st867; - case 107: goto st869; - } - goto tr2342; -st867: - if ( ++p == pe ) - goto _test_eof867; -case 867: - switch( (*p) ) { - case 80: goto st868; - case 112: goto st868; - } - goto tr2342; -st868: - if ( ++p == pe ) - goto _test_eof868; -case 868: - switch( (*p) ) { - case 32: goto tr2370; - case 59: goto tr2370; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2370; - } else if ( (*p) >= 9 ) - goto tr2370; - goto tr2342; -st869: - if ( ++p == pe ) - goto _test_eof869; -case 869: - switch( (*p) ) { - case 73: goto st870; - case 105: goto st870; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2342; -st870: - if ( ++p == pe ) - goto _test_eof870; -case 870: - switch( (*p) ) { - case 88: goto st871; - case 120: goto st871; + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2342; -st871: - if ( ++p == pe ) - goto _test_eof871; -case 871: - switch( (*p) ) { - case 32: goto tr2373; - case 59: goto tr2373; + { + p--; {cs = stack[--top];goto _again;} } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2373; - } else if ( (*p) >= 9 ) - goto tr2373; - goto tr2342; -st872: - if ( ++p == pe ) - goto _test_eof872; -case 872: - switch( (*p) ) { - case 80: goto st873; - case 112: goto st873; + goto st1509; +tr2269: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - goto tr2342; -st873: - if ( ++p == pe ) - goto _test_eof873; -case 873: - switch( (*p) ) { - case 75: goto st874; - case 107: goto st874; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2342; -st874: - if ( ++p == pe ) - goto _test_eof874; -case 874: - switch( (*p) ) { - case 73: goto st875; - case 105: goto st875; + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2342; -st875: - if ( ++p == pe ) - goto _test_eof875; -case 875: - switch( (*p) ) { - case 32: goto tr2377; - case 59: goto tr2377; + { + p--; {cs = stack[--top];goto _again;} } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2377; - } else if ( (*p) >= 9 ) - goto tr2377; - goto tr2342; -st876: - if ( ++p == pe ) - goto _test_eof876; -case 876: - switch( (*p) ) { - case 73: goto st877; - case 105: goto st877; + goto st1509; +tr2279: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2342; -st877: - if ( ++p == pe ) - goto _test_eof877; -case 877: - switch( (*p) ) { - case 68: goto st878; - case 100: goto st878; + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2342; -st878: - if ( ++p == pe ) - goto _test_eof878; -case 878: - switch( (*p) ) { - case 32: goto tr2380; - case 59: goto tr2380; + { + p--; {cs = stack[--top];goto _again;} } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2380; - } else if ( (*p) >= 9 ) - goto tr2380; - goto tr2342; -st879: - if ( ++p == pe ) - goto _test_eof879; -case 879: - switch( (*p) ) { - case 71: goto st880; - case 75: goto st882; - case 103: goto st880; - case 107: goto st882; + goto st1509; +tr2324: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st319;} + } } - goto tr2342; -st880: - if ( ++p == pe ) - goto _test_eof880; -case 880: - switch( (*p) ) { - case 80: goto st881; - case 112: goto st881; + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto tr2342; -st881: - if ( ++p == pe ) - goto _test_eof881; -case 881: - switch( (*p) ) { - case 32: goto tr2384; - case 59: goto tr2384; + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2384; - } else if ( (*p) >= 9 ) - goto tr2384; - goto tr2342; -st882: - if ( ++p == pe ) - goto _test_eof882; -case 882: - switch( (*p) ) { - case 73: goto st883; - case 105: goto st883; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2342; -st883: - if ( ++p == pe ) - goto _test_eof883; -case 883: - switch( (*p) ) { - case 88: goto st884; - case 120: goto st884; + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2342; -st884: - if ( ++p == pe ) - goto _test_eof884; -case 884: - switch( (*p) ) { - case 32: goto tr2387; - case 59: goto tr2387; + { + p--; {cs = stack[--top];goto _again;} } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2387; - } else if ( (*p) >= 9 ) - goto tr2387; - goto tr2342; -st885: - if ( ++p == pe ) - goto _test_eof885; -case 885: - switch( (*p) ) { - case 80: goto st886; - case 112: goto st886; + goto st1509; +tr2347: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st319;} + } } - goto tr2342; -st886: - if ( ++p == pe ) - goto _test_eof886; -case 886: - switch( (*p) ) { - case 75: goto st887; - case 107: goto st887; + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto tr2342; -st887: - if ( ++p == pe ) - goto _test_eof887; -case 887: - switch( (*p) ) { - case 73: goto st888; - case 105: goto st888; + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - goto tr2342; -st888: - if ( ++p == pe ) - goto _test_eof888; -case 888: - switch( (*p) ) { - case 32: goto tr2391; - case 59: goto tr2391; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2391; - } else if ( (*p) >= 9 ) - goto tr2391; - goto tr2342; -st889: - if ( ++p == pe ) - goto _test_eof889; -case 889: - switch( (*p) ) { - case 82: goto st890; - case 114: goto st890; + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2342; -st890: - if ( ++p == pe ) - goto _test_eof890; -case 890: - switch( (*p) ) { - case 73: goto st891; - case 105: goto st891; + { + p--; {cs = stack[--top];goto _again;} } - goto tr2342; -st891: - if ( ++p == pe ) - goto _test_eof891; -case 891: - switch( (*p) ) { - case 32: goto tr2394; - case 59: goto tr2394; + goto st1509; +tr2362: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2394; - } else if ( (*p) >= 9 ) - goto tr2394; - goto tr2342; -st892: - if ( ++p == pe ) - goto _test_eof892; -case 892: - switch( (*p) ) { - case 78: goto st894; - case 110: goto st894; + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2396; - goto tr2395; -tr2396: { - s->number64 = 0; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } - goto st893; -tr2399: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + p--; {cs = stack[--top];goto _again;} + } + goto st1509; +tr2386: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st893; -st893: - if ( ++p == pe ) - goto _test_eof893; -case 893: - switch( (*p) ) { - case 32: goto tr2398; - case 59: goto tr2398; + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2398; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2399; - } else - goto tr2398; - goto tr2395; -tr2398: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1522; -tr2405: + goto st1509; +tr2409: { - *(rdata_tail++) = 1; + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - p--; {cs = stack[--top];goto _again;} + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st1522; -st1522: - if ( ++p == pe ) - goto _test_eof1522; -case 1522: - goto st0; -st894: - if ( ++p == pe ) - goto _test_eof894; -case 894: - switch( (*p) ) { - case 79: goto st895; - case 111: goto st895; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2395; -st895: - if ( ++p == pe ) - goto _test_eof895; -case 895: - switch( (*p) ) { - case 84: goto st896; - case 116: goto st896; + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto tr2395; -st896: - if ( ++p == pe ) - goto _test_eof896; -case 896: - switch( (*p) ) { - case 73: goto st897; - case 105: goto st897; + { + p--; {cs = stack[--top];goto _again;} } - goto tr2395; -st897: - if ( ++p == pe ) - goto _test_eof897; -case 897: - switch( (*p) ) { - case 70: goto st898; - case 102: goto st898; + goto st1509; +tr2421: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto tr2395; -st898: - if ( ++p == pe ) - goto _test_eof898; -case 898: - switch( (*p) ) { - case 89: goto st899; - case 121: goto st899; + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto tr2395; -st899: - if ( ++p == pe ) - goto _test_eof899; -case 899: - switch( (*p) ) { - case 32: goto tr2405; - case 59: goto tr2405; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2405; - } else if ( (*p) >= 9 ) - goto tr2405; - goto tr2395; -st900: - if ( ++p == pe ) - goto _test_eof900; -case 900: - if ( (*p) == 46 ) - goto tr2407; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2407; - goto tr2406; -tr2409: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } - goto st901; -tr2407: { - s->buffer_length = 0; + p--; {cs = stack[--top];goto _again;} } + goto st1509; +tr2439: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } - goto st901; -st901: - if ( ++p == pe ) - goto _test_eof901; -case 901: - switch( (*p) ) { - case 32: goto tr2408; - case 46: goto tr2409; - case 59: goto tr2408; - } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2408; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2409; - } else - goto tr2408; - goto tr2406; -tr2408: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } { p--; {cs = stack[--top];goto _again;} } - goto st1523; -st1523: + goto st1509; +st1509: if ( ++p == pe ) - goto _test_eof1523; -case 1523: + goto _test_eof1509; +case 1509: goto st0; -st902: - if ( ++p == pe ) - goto _test_eof902; -case 902: - switch( (*p) ) { - case 42: goto tr2410; - case 92: goto tr2410; - case 95: goto tr2410; - } - if ( (*p) < 64 ) { - if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2410; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2410; - } else - goto tr2410; - goto tr77; -tr2410: +tr2220: { - s->dname = rdata_tail; + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } - { p--; {stack[top++] = 903;goto st321;} } - goto st903; -st903: - if ( ++p == pe ) - goto _test_eof903; -case 903: - switch( (*p) ) { - case 32: goto tr2411; - case 59: goto tr2411; + { + s->line_counter++; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2411; - } else if ( (*p) >= 9 ) - goto tr2411; - goto tr77; -tr2411: { - rdata_tail += s->dname_tmp_length; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } { p--; {cs = stack[--top];goto _again;} } - goto st1524; -st1524: - if ( ++p == pe ) - goto _test_eof1524; -case 1524: - goto st0; -st904: - if ( ++p == pe ) - goto _test_eof904; -case 904: - switch( (*p) ) { - case 42: goto tr2412; - case 92: goto tr2412; - case 95: goto tr2412; + goto st1510; +tr2237: + { + s->line_counter++; } - if ( (*p) < 64 ) { - if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2412; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2412; - } else - goto tr2412; - goto tr77; -tr2412: { - s->dname = rdata_tail; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - { p--; {stack[top++] = 905;goto st321;} } - goto st905; -st905: - if ( ++p == pe ) - goto _test_eof905; -case 905: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + p--; {cs = stack[--top];goto _again;} + } + goto st1510; +tr2251: + { + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr2413; - case 32: goto tr2413; - case 40: goto tr2414; - case 41: goto tr2415; - case 2058: goto tr2416; - case 2107: goto tr2417; + { + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st319;} + } } - goto tr77; -tr2419: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st906; -tr2420: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = false; } - goto st906; -tr2422: { s->line_counter++; } - goto st906; -tr2566: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1510; +tr2270: + { + s->item_length = rdata_tail - s->item_length2_location - 2; - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 906; goto _out;} - } + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } } { s->line_counter++; } - goto st906; -tr2413: { - rdata_tail += s->dname_tmp_length; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto st906; -tr2414: { - rdata_tail += s->dname_tmp_length; + p--; {cs = stack[--top];goto _again;} } + goto st1510; +tr2280: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = true; } - goto st906; -tr2415: { - rdata_tail += s->dname_tmp_length; + s->line_counter++; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = false; } - goto st906; -tr2416: { - rdata_tail += s->dname_tmp_length; + p--; {cs = stack[--top];goto _again;} } + goto st1510; +tr2325: { - s->line_counter++; + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st319;} + } } - goto st906; -st906: - if ( ++p == pe ) - goto _test_eof906; -case 906: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - switch( _widec ) { - case 9: goto st906; - case 32: goto st906; - case 40: goto tr2419; - case 41: goto tr2420; - case 42: goto tr2421; - case 92: goto tr2421; - case 95: goto tr2421; - case 2058: goto tr2422; - case 2107: goto tr2423; + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - if ( _widec < 64 ) { - if ( 45 <= _widec && _widec <= 57 ) - goto tr2421; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr2421; - } else - goto tr2421; - goto tr77; -tr2421: { - s->dname = rdata_tail; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - { p--; {stack[top++] = 907;goto st321;} } - goto st907; -st907: - if ( ++p == pe ) - goto _test_eof907; -case 907: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr2424; - case 32: goto tr2424; - case 40: goto tr2425; - case 41: goto tr2426; - case 2058: goto tr2427; - case 2107: goto tr2428; + { + p--; {cs = stack[--top];goto _again;} } - goto tr77; -tr2431: + goto st1510; +tr2348: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st908; -tr2432: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st908; -tr2434: { - s->line_counter++; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - goto st908; -tr2564: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 908; goto _out;} - } + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } } { s->line_counter++; } - goto st908; -tr2424: { - rdata_tail += s->dname_tmp_length; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } } - goto st908; -tr2425: { - rdata_tail += s->dname_tmp_length; + p--; {cs = stack[--top];goto _again;} } + goto st1510; +tr2363: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st908; -tr2426: { - rdata_tail += s->dname_tmp_length; + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = false; - } - goto st908; -tr2427: - { - rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st908; -st908: - if ( ++p == pe ) - goto _test_eof908; -case 908: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto st908; - case 32: goto st908; - case 40: goto tr2431; - case 41: goto tr2432; - case 2058: goto tr2434; - case 2107: goto tr2435; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2433; - goto tr2429; -tr2433: { - s->number64 = 0; + p--; {cs = stack[--top];goto _again;} } + goto st1510; +tr2387: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st909; -tr2439: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } - goto st909; -st909: - if ( ++p == pe ) - goto _test_eof909; -case 909: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr2436; - case 32: goto tr2436; - case 40: goto tr2437; - case 41: goto tr2438; - case 2058: goto tr2440; - case 2107: goto tr2441; + { + s->line_counter++; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2439; - goto tr2429; -tr2443: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = true; } - goto st910; -tr2444: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st910; -tr2446: + goto st1510; +tr2410: { - s->line_counter++; + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st910; -tr2562: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 910; goto _out;} - } + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } } { s->line_counter++; } - goto st910; -tr2436: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } - goto st910; -tr2437: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + p--; {cs = stack[--top];goto _again;} + } + goto st1510; +tr2422: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = true; } - goto st910; -tr2438: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + p--; {cs = stack[--top];goto _again;} + } + goto st1510; +tr2440: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = false; } - goto st910; -tr2440: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st910; -st910: + goto st1510; +st1510: if ( ++p == pe ) - goto _test_eof910; -case 910: + goto _test_eof1510; +case 1510: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st910; - case 32: goto st910; - case 40: goto tr2443; - case 41: goto tr2444; - case 2058: goto tr2446; - case 2107: goto tr2447; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2445; - goto tr2429; -tr2445: - { - s->number64 = 0; - } + case 9: goto st808; + case 32: goto st808; + case 40: goto tr2223; + case 41: goto tr2224; + case 97: goto tr2225; + case 100: goto tr2226; + case 101: goto tr2227; + case 105: goto tr2228; + case 107: goto tr2229; + case 109: goto tr2230; + case 110: goto tr2231; + case 111: goto tr2232; + case 112: goto tr2233; + case 3082: goto tr2234; + case 3131: goto tr2235; + case 3338: goto tr2236; + case 3387: goto tr2236; + case 3594: goto tr2237; + case 3643: goto tr2238; + } + goto tr2213; +tr2226: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } + s->svcb.param_position = rdata_tail; } - goto st911; -tr2452: + goto st816; +st816: + if ( ++p == pe ) + goto _test_eof816; +case 816: + if ( (*p) == 111 ) + goto st817; + goto tr2213; +st817: + if ( ++p == pe ) + goto _test_eof817; +case 817: + if ( (*p) == 104 ) + goto st818; + goto tr2213; +st818: + if ( ++p == pe ) + goto _test_eof818; +case 818: + if ( (*p) == 112 ) + goto st819; + goto tr2213; +st819: + if ( ++p == pe ) + goto _test_eof819; +case 819: + if ( (*p) == 97 ) + goto st820; + goto tr2213; +st820: + if ( ++p == pe ) + goto _test_eof820; +case 820: + if ( (*p) == 116 ) + goto st821; + goto tr2213; +st821: + if ( ++p == pe ) + goto _test_eof821; +case 821: + if ( (*p) == 104 ) + goto st822; + goto tr2213; +st822: + if ( ++p == pe ) + goto _test_eof822; +case 822: + if ( (*p) == 61 ) + goto tr2261; + goto tr2213; +tr2261: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + uint16_t val = htons(7); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st823; +st823: + if ( ++p == pe ) + goto _test_eof823; +case 823: + switch( (*p) ) { + case 32: goto tr2213; + case 34: goto tr2263; + case 59: goto tr2213; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2213; + } else if ( (*p) >= 9 ) + goto tr2213; + goto tr2262; +tr2262: + { + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st911; -st911: + { p--; {stack[top++] = 824;goto st330;} } + goto st824; +st824: if ( ++p == pe ) - goto _test_eof911; -case 911: + goto _test_eof824; +case 824: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2449; - case 32: goto tr2449; - case 40: goto tr2450; - case 41: goto tr2451; - case 68: goto tr2453; - case 72: goto tr2454; - case 77: goto tr2455; - case 83: goto st930; - case 87: goto tr2457; - case 100: goto tr2453; - case 104: goto tr2454; - case 109: goto tr2455; - case 115: goto st930; - case 119: goto tr2457; - case 2058: goto tr2458; - case 2107: goto tr2459; + case 9: goto tr2264; + case 32: goto tr2264; + case 40: goto tr2265; + case 41: goto tr2266; + case 3082: goto tr2267; + case 3131: goto tr2268; + case 3338: goto tr2269; + case 3387: goto tr2269; + case 3594: goto tr2270; + case 3643: goto tr2271; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2452; - goto tr2448; -tr2461: + goto tr2213; +tr2221: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = true; } - goto st912; -tr2462: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + p--; {cs = stack[--top];goto _again;} + } + goto st1511; +tr2238: + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = false; } - goto st912; -tr2464: { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st912; -tr2547: + goto st1511; +tr2252: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 912; goto _out;} - } + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} } } { - s->line_counter++; + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st319;} + } } - goto st912; -tr2449: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st912; -tr2450: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = true; } - goto st912; -tr2451: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + p--; {cs = stack[--top];goto _again;} + } + goto st1511; +tr2271: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = false; } - goto st912; -tr2458: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + p--; {cs = stack[--top];goto _again;} + } + goto st1511; +tr2281: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - s->line_counter++; + s->buffer_length = 0; } - goto st912; -tr2555: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + p--; {cs = stack[--top];goto _again;} + } + goto st1511; +tr2326: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } } - goto st912; -tr2556: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = true; } - goto st912; -tr2557: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + p--; {cs = stack[--top];goto _again;} + } + goto st1511; +tr2349: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = false; } - goto st912; -tr2559: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - s->line_counter++; - } - goto st912; -st912: - if ( ++p == pe ) - goto _test_eof912; -case 912: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st912; - case 32: goto st912; - case 40: goto tr2461; - case 41: goto tr2462; - case 2058: goto tr2464; - case 2107: goto tr2465; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2463; - goto tr2429; -tr2463: { - s->number64 = 0; + s->buffer_length = 0; } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } - goto st913; -tr2469: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + p--; {cs = stack[--top];goto _again;} + } + goto st1511; +tr2364: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } - goto st913; -st913: - if ( ++p == pe ) - goto _test_eof913; -case 913: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr2466; - case 32: goto tr2466; - case 40: goto tr2467; - case 41: goto tr2468; - case 68: goto tr2470; - case 72: goto tr2471; - case 77: goto tr2472; - case 83: goto st926; - case 87: goto tr2474; - case 100: goto tr2470; - case 104: goto tr2471; - case 109: goto tr2472; - case 115: goto st926; - case 119: goto tr2474; - case 2058: goto tr2475; - case 2107: goto tr2476; + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2469; - goto tr2448; -tr2478: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = true; } - goto st914; -tr2479: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = false; } - goto st914; -tr2481: { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st914; -tr2532: + goto st1511; +tr2388: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); + s->item_length = rdata_tail - s->item_length2_location - 2; - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 914; goto _out;} - } + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} } } { - s->line_counter++; + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } - goto st914; -tr2466: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } - goto st914; -tr2467: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = true; } - goto st914; -tr2468: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1511; +tr2411: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st914; -tr2475: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - s->line_counter++; + s->buffer_length = 0; } - goto st914; -tr2540: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } - goto st914; -tr2541: + goto st1511; +tr2423: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = true; } - goto st914; -tr2542: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + p--; {cs = stack[--top];goto _again;} + } + goto st1511; +tr2441: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } - s->multiline = false; } - goto st914; -tr2544: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); p--; {goto st319;} } } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st914; -st914: + goto st1511; +st1511: if ( ++p == pe ) - goto _test_eof914; -case 914: + goto _test_eof1511; +case 1511: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto st914; - case 32: goto st914; - case 40: goto tr2478; - case 41: goto tr2479; - case 2058: goto tr2481; - case 2107: goto tr2482; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2480; - goto tr2429; -tr2480: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } - } - goto st915; -tr2486: + if ( _widec == 2058 ) + goto tr2254; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2253; + goto tr2213; +tr2263: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st915; -st915: + { p--; {stack[top++] = 825;goto st330;} } + goto st825; +st825: if ( ++p == pe ) - goto _test_eof915; -case 915: + goto _test_eof825; +case 825: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2483; - case 32: goto tr2483; - case 40: goto tr2484; - case 41: goto tr2485; - case 68: goto tr2487; - case 72: goto tr2488; - case 77: goto tr2489; - case 83: goto st922; - case 87: goto tr2491; - case 100: goto tr2487; - case 104: goto tr2488; - case 109: goto tr2489; - case 115: goto st922; - case 119: goto tr2491; - case 2058: goto tr2492; - case 2107: goto tr2493; + case 9: goto tr2264; + case 32: goto tr2264; + case 40: goto tr2265; + case 41: goto tr2266; + case 3082: goto tr2267; + case 3131: goto tr2268; + case 3338: goto tr2269; + case 3387: goto tr2269; + case 3594: goto tr2270; + case 3643: goto tr2271; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2486; - goto tr2448; -tr2495: + if ( _widec < 11 ) { + if ( _widec <= 8 ) + goto tr2272; + } else if ( _widec > 58 ) { + if ( 60 <= _widec ) + goto tr2272; + } else + goto tr2272; + goto tr2213; +tr2272: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st916; -tr2496: + { p--; {stack[top++] = 826;goto st330;} } + goto st826; +st826: + if ( ++p == pe ) + goto _test_eof826; +case 826: + if ( (*p) == 34 ) + goto tr2273; + goto tr2213; +tr2273: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} - } - s->multiline = false; - } - goto st916; -tr2498: - { - s->line_counter++; + } } - goto st916; -tr2517: + goto st827; +tr2313: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); + s->buffer[s->buffer_length] = 0; - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 916; goto _out;} - } + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st319;} } } { - s->line_counter++; + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st916; -tr2483: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st916; -tr2484: + goto st827; +tr2336: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = true; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st916; -tr2485: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } + goto st827; +tr2431: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st916; -tr2492: + goto st827; +tr2377: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - s->line_counter++; + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } - goto st916; -tr2525: + goto st827; +tr2443: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st916; -tr2526: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); p--; {goto st319;} } } { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } + goto st827; +st827: + if ( ++p == pe ) + goto _test_eof827; +case 827: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2274; + case 32: goto tr2274; + case 40: goto tr2275; + case 41: goto tr2276; + case 3082: goto tr2277; + case 3131: goto tr2278; + case 3338: goto tr2279; + case 3387: goto tr2279; + case 3594: goto tr2280; + case 3643: goto tr2281; + } + goto tr2213; +tr2227: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = true; + s->svcb.param_position = rdata_tail; } - goto st916; -tr2527: + goto st828; +st828: + if ( ++p == pe ) + goto _test_eof828; +case 828: + if ( (*p) == 99 ) + goto st829; + goto tr2213; +st829: + if ( ++p == pe ) + goto _test_eof829; +case 829: + if ( (*p) == 104 ) + goto st830; + goto tr2213; +st830: + if ( ++p == pe ) + goto _test_eof830; +case 830: + if ( (*p) == 61 ) + goto tr2284; + goto tr2213; +tr2284: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; + uint16_t val = htons(5); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st831; +st831: + if ( ++p == pe ) + goto _test_eof831; +case 831: + switch( (*p) ) { + case 34: goto st832; + case 43: goto tr2286; + } + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2286; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2286; + } else + goto tr2286; + goto tr2213; +st832: + if ( ++p == pe ) + goto _test_eof832; +case 832: + if ( (*p) == 43 ) + goto tr2287; + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2287; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2287; + } else + goto tr2287; + goto tr2213; +tr2293: + { + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st833; +tr2287: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st916; -tr2529: + goto st833; +st833: + if ( ++p == pe ) + goto _test_eof833; +case 833: + if ( (*p) == 43 ) + goto tr2288; + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2288; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2288; + } else + goto tr2288; + goto tr2213; +tr2288: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; + *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; + + if (rdata_tail <= rdata_stop) { + *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st834; +st834: + if ( ++p == pe ) + goto _test_eof834; +case 834: + switch( (*p) ) { + case 43: goto tr2289; + case 61: goto st837; + } + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2289; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2289; + } else + goto tr2289; + goto tr2213; +tr2289: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; + + if (rdata_tail <= rdata_stop) { + *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st835; +st835: + if ( ++p == pe ) + goto _test_eof835; +case 835: + switch( (*p) ) { + case 43: goto tr2291; + case 61: goto st836; + } + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2291; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2291; + } else + goto tr2291; + goto tr2213; +tr2291: { - s->line_counter++; + *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st916; -st916: + goto st836; +st836: if ( ++p == pe ) - goto _test_eof916; -case 916: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto _test_eof836; +case 836: + switch( (*p) ) { + case 34: goto tr2273; + case 43: goto tr2293; } - switch( _widec ) { - case 9: goto st916; - case 32: goto st916; - case 40: goto tr2495; - case 41: goto tr2496; - case 2058: goto tr2498; - case 2107: goto tr2499; + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2293; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2293; + } else + goto tr2293; + goto tr2213; +st837: + if ( ++p == pe ) + goto _test_eof837; +case 837: + if ( (*p) == 61 ) + goto st836; + goto tr2213; +tr2299: + { + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2497; - goto tr2429; -tr2497: + goto st838; +tr2286: { - s->number64 = 0; + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st917; -tr2501: + goto st838; +st838: + if ( ++p == pe ) + goto _test_eof838; +case 838: + if ( (*p) == 43 ) + goto tr2294; + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2294; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2294; + } else + goto tr2294; + goto tr2213; +tr2294: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; + + if (rdata_tail <= rdata_stop) { + *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st917; -st917: + goto st839; +st839: if ( ++p == pe ) - goto _test_eof917; -case 917: + goto _test_eof839; +case 839: switch( (*p) ) { - case 32: goto tr2500; - case 59: goto tr2500; - case 68: goto tr2502; - case 72: goto tr2503; - case 77: goto tr2504; - case 83: goto st918; - case 87: goto tr2506; - case 100: goto tr2502; - case 104: goto tr2503; - case 109: goto tr2504; - case 115: goto st918; - case 119: goto tr2506; + case 43: goto tr2295; + case 61: goto st842; } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2500; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2501; + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2295; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2295; } else - goto tr2500; - goto tr2448; -tr2500: + goto tr2295; + goto tr2213; +tr2295: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; + + if (rdata_tail <= rdata_stop) { + *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { - p--; {cs = stack[--top];goto _again;} + goto st840; +st840: + if ( ++p == pe ) + goto _test_eof840; +case 840: + switch( (*p) ) { + case 43: goto tr2297; + case 61: goto st841; } - goto st1525; -tr2514: + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2297; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2297; + } else + goto tr2297; + goto tr2213; +tr2297: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; + } + goto st841; +st841: + if ( ++p == pe ) + goto _test_eof841; +case 841: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + switch( _widec ) { + case 9: goto tr2264; + case 32: goto tr2264; + case 40: goto tr2265; + case 41: goto tr2266; + case 43: goto tr2299; + case 3082: goto tr2267; + case 3131: goto tr2268; + case 3338: goto tr2269; + case 3387: goto tr2269; + case 3594: goto tr2270; + case 3643: goto tr2271; + } + if ( _widec < 65 ) { + if ( 47 <= _widec && _widec <= 57 ) + goto tr2299; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr2299; + } else + goto tr2299; + goto tr2213; +st842: + if ( ++p == pe ) + goto _test_eof842; +case 842: + if ( (*p) == 61 ) + goto st841; + goto tr2213; +tr2228: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } + s->svcb.param_position = rdata_tail; } - { - p--; {cs = stack[--top];goto _again;} + goto st843; +st843: + if ( ++p == pe ) + goto _test_eof843; +case 843: + if ( (*p) == 112 ) + goto st844; + goto tr2213; +st844: + if ( ++p == pe ) + goto _test_eof844; +case 844: + if ( (*p) == 118 ) + goto st845; + goto tr2213; +st845: + if ( ++p == pe ) + goto _test_eof845; +case 845: + switch( (*p) ) { + case 52: goto st846; + case 54: goto st857; } - goto st1525; -st1525: + goto tr2213; +st846: if ( ++p == pe ) - goto _test_eof1525; -case 1525: - goto st0; -tr2502: - { if (s->number64 <= (UINT32_MAX / 86400)) { - s->number64 *= 86400; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st918; -tr2503: - { if (s->number64 <= (UINT32_MAX / 3600)) { - s->number64 *= 3600; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st918; -tr2504: - { if (s->number64 <= (UINT32_MAX / 60)) { - s->number64 *= 60; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st918; -tr2506: - { if (s->number64 <= (UINT32_MAX / 604800)) { - s->number64 *= 604800; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st918; -st918: + goto _test_eof846; +case 846: + if ( (*p) == 104 ) + goto st847; + goto tr2213; +st847: + if ( ++p == pe ) + goto _test_eof847; +case 847: + if ( (*p) == 105 ) + goto st848; + goto tr2213; +st848: + if ( ++p == pe ) + goto _test_eof848; +case 848: + if ( (*p) == 110 ) + goto st849; + goto tr2213; +st849: if ( ++p == pe ) - goto _test_eof918; -case 918: + goto _test_eof849; +case 849: + if ( (*p) == 116 ) + goto st850; + goto tr2213; +st850: + if ( ++p == pe ) + goto _test_eof850; +case 850: + if ( (*p) == 61 ) + goto tr2308; + goto tr2213; +tr2308: + { + uint16_t val = htons(4); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st851; +st851: + if ( ++p == pe ) + goto _test_eof851; +case 851: switch( (*p) ) { - case 32: goto tr2500; - case 59: goto tr2500; + case 34: goto st852; + case 46: goto tr2311; } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2500; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2507; - } else - goto tr2500; - goto tr2448; -tr2508: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2311; + goto tr2309; +st852: + if ( ++p == pe ) + goto _test_eof852; +case 852: + if ( (*p) == 46 ) + goto tr2312; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2312; + goto tr2309; +tr2312: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st919; -tr2507: - { - s->number64_tmp = s->number64; - } { - s->number64 = 0; + s->buffer_length = 0; } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st919; -tr2515: + goto st853; +tr2315: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st853; +tr2316: { - s->number64_tmp = s->number64; - } - { - s->number64 = 0; + s->buffer_length = 0; } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st919; -st919: + goto st853; +st853: if ( ++p == pe ) - goto _test_eof919; -case 919: + goto _test_eof853; +case 853: switch( (*p) ) { - case 68: goto tr2509; - case 72: goto tr2510; - case 77: goto tr2511; - case 83: goto st920; - case 87: goto tr2513; - case 100: goto tr2509; - case 104: goto tr2510; - case 109: goto tr2511; - case 115: goto st920; - case 119: goto tr2513; + case 34: goto tr2313; + case 44: goto tr2314; + case 46: goto tr2315; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2508; - goto tr2448; -tr2509: - { if (s->number64 <= (UINT32_MAX / 86400)) { - s->number64 *= 86400; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st920; -tr2510: - { if (s->number64 <= (UINT32_MAX / 3600)) { - s->number64 *= 3600; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st920; -tr2511: - { if (s->number64 <= (UINT32_MAX / 60)) { - s->number64 *= 60; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st920; -tr2513: - { if (s->number64 <= (UINT32_MAX / 604800)) { - s->number64 *= 604800; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st920; -st920: - if ( ++p == pe ) - goto _test_eof920; -case 920: - switch( (*p) ) { - case 32: goto tr2514; - case 59: goto tr2514; - } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2514; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2515; - } else - goto tr2514; - goto tr2448; -tr2499: + goto tr2315; + goto tr2309; +tr2314: { - s->buffer_length = 0; + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st319;} + } } - goto st921; -tr2516: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st921; -tr2493: + goto st854; +st854: + if ( ++p == pe ) + goto _test_eof854; +case 854: + if ( (*p) == 46 ) + goto tr2316; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2316; + goto tr2309; +tr2311: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st921; -tr2530: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st855; +tr2321: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st855; +tr2327: { s->buffer_length = 0; } - goto st921; -st921: - if ( ++p == pe ) - goto _test_eof921; -case 921: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2517; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2516; - goto tr77; -tr2487: - { if (s->number64 <= (UINT32_MAX / 86400)) { - s->number64 *= 86400; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st922; -tr2488: - { if (s->number64 <= (UINT32_MAX / 3600)) { - s->number64 *= 3600; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st922; -tr2489: - { if (s->number64 <= (UINT32_MAX / 60)) { - s->number64 *= 60; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st922; -tr2491: - { if (s->number64 <= (UINT32_MAX / 604800)) { - s->number64 *= 604800; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st922; -st922: + goto st855; +st855: if ( ++p == pe ) - goto _test_eof922; -case 922: + goto _test_eof855; +case 855: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2483; - case 32: goto tr2483; - case 40: goto tr2484; - case 41: goto tr2485; - case 2058: goto tr2492; - case 2107: goto tr2493; + case 9: goto tr2317; + case 32: goto tr2317; + case 40: goto tr2318; + case 41: goto tr2319; + case 44: goto tr2320; + case 46: goto tr2321; + case 3082: goto tr2322; + case 3131: goto tr2323; + case 3338: goto tr2324; + case 3387: goto tr2324; + case 3594: goto tr2325; + case 3643: goto tr2326; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2518; - goto tr2448; -tr2519: + goto tr2321; + goto tr2309; +tr2320: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } } - goto st923; -tr2518: { - s->number64_tmp = s->number64; + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } + goto st856; +st856: + if ( ++p == pe ) + goto _test_eof856; +case 856: + if ( (*p) == 46 ) + goto tr2327; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2327; + goto tr2309; +st857: + if ( ++p == pe ) + goto _test_eof857; +case 857: + if ( (*p) == 104 ) + goto st858; + goto tr2213; +st858: + if ( ++p == pe ) + goto _test_eof858; +case 858: + if ( (*p) == 105 ) + goto st859; + goto tr2213; +st859: + if ( ++p == pe ) + goto _test_eof859; +case 859: + if ( (*p) == 110 ) + goto st860; + goto tr2213; +st860: + if ( ++p == pe ) + goto _test_eof860; +case 860: + if ( (*p) == 116 ) + goto st861; + goto tr2213; +st861: + if ( ++p == pe ) + goto _test_eof861; +case 861: + if ( (*p) == 61 ) + goto tr2332; + goto tr2213; +tr2332: { - s->number64 = 0; + uint16_t val = htons(6); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st862; +st862: + if ( ++p == pe ) + goto _test_eof862; +case 862: + switch( (*p) ) { + case 34: goto st863; + case 46: goto tr2334; } + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2334; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2334; + } else + goto tr2334; + goto tr2309; +st863: + if ( ++p == pe ) + goto _test_eof863; +case 863: + if ( (*p) == 46 ) + goto tr2335; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2335; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2335; + } else + goto tr2335; + goto tr2309; +tr2335: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st923; -tr2528: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; + s->buffer_length = 0; + } + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st864; +tr2338: { - s->number64_tmp = s->number64; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } + goto st864; +tr2339: { - s->number64 = 0; + s->buffer_length = 0; } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st923; -st923: + goto st864; +st864: if ( ++p == pe ) - goto _test_eof923; -case 923: + goto _test_eof864; +case 864: switch( (*p) ) { - case 68: goto tr2520; - case 72: goto tr2521; - case 77: goto tr2522; - case 83: goto st924; - case 87: goto tr2524; - case 100: goto tr2520; - case 104: goto tr2521; - case 109: goto tr2522; - case 115: goto st924; - case 119: goto tr2524; - } - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2519; - goto tr2448; -tr2520: - { if (s->number64 <= (UINT32_MAX / 86400)) { - s->number64 *= 86400; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st924; -tr2521: - { if (s->number64 <= (UINT32_MAX / 3600)) { - s->number64 *= 3600; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st924; -tr2522: - { if (s->number64 <= (UINT32_MAX / 60)) { - s->number64 *= 60; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st924; -tr2524: - { if (s->number64 <= (UINT32_MAX / 604800)) { - s->number64 *= 604800; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st924; -st924: - if ( ++p == pe ) - goto _test_eof924; -case 924: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + case 34: goto tr2336; + case 44: goto tr2337; + case 46: goto tr2338; } - switch( _widec ) { - case 9: goto tr2525; - case 32: goto tr2525; - case 40: goto tr2526; - case 41: goto tr2527; - case 2058: goto tr2529; - case 2107: goto tr2530; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2528; - goto tr2448; -tr2482: + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2338; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2338; + } else + goto tr2338; + goto tr2309; +tr2337: { - s->buffer_length = 0; + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st319;} + } } - goto st925; -tr2531: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st925; -tr2476: + goto st865; +st865: + if ( ++p == pe ) + goto _test_eof865; +case 865: + if ( (*p) == 46 ) + goto tr2339; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2339; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2339; + } else + goto tr2339; + goto tr2309; +tr2334: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st925; -tr2545: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st866; +tr2344: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st866; +tr2350: { s->buffer_length = 0; } - goto st925; -st925: - if ( ++p == pe ) - goto _test_eof925; -case 925: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2532; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2531; - goto tr77; -tr2470: - { if (s->number64 <= (UINT32_MAX / 86400)) { - s->number64 *= 86400; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st926; -tr2471: - { if (s->number64 <= (UINT32_MAX / 3600)) { - s->number64 *= 3600; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st926; -tr2472: - { if (s->number64 <= (UINT32_MAX / 60)) { - s->number64 *= 60; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st926; -tr2474: - { if (s->number64 <= (UINT32_MAX / 604800)) { - s->number64 *= 604800; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st926; -st926: + goto st866; +st866: if ( ++p == pe ) - goto _test_eof926; -case 926: + goto _test_eof866; +case 866: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2466; - case 32: goto tr2466; - case 40: goto tr2467; - case 41: goto tr2468; - case 2058: goto tr2475; - case 2107: goto tr2476; + case 9: goto tr2340; + case 32: goto tr2340; + case 40: goto tr2341; + case 41: goto tr2342; + case 44: goto tr2343; + case 46: goto tr2344; + case 3082: goto tr2345; + case 3131: goto tr2346; + case 3338: goto tr2347; + case 3387: goto tr2347; + case 3594: goto tr2348; + case 3643: goto tr2349; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2533; - goto tr2448; -tr2534: + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 58 ) + goto tr2344; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2344; + } else + goto tr2344; + goto tr2309; +tr2343: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } } - goto st927; -tr2533: { - s->number64_tmp = s->number64; + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; + } + goto st867; +st867: + if ( ++p == pe ) + goto _test_eof867; +case 867: + if ( (*p) == 46 ) + goto tr2350; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2350; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2350; + } else + goto tr2350; + goto tr2309; +tr2229: + { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + s->svcb.param_position = rdata_tail; } + goto st868; +st868: + if ( ++p == pe ) + goto _test_eof868; +case 868: + if ( (*p) == 101 ) + goto st869; + goto tr2213; +st869: + if ( ++p == pe ) + goto _test_eof869; +case 869: + if ( (*p) == 121 ) + goto st870; + goto tr2213; +st870: + if ( ++p == pe ) + goto _test_eof870; +case 870: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2354; + goto tr2353; +tr2354: { s->number64 = 0; } @@ -68859,22 +66083,8 @@ tr2533: p--; {goto st319;} } } - goto st927; -tr2543: - { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - { - s->number64_tmp = s->number64; - } - { - s->number64 = 0; - } + goto st871; +tr2358: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -68889,230 +66099,540 @@ tr2543: p--; {goto st319;} } } - goto st927; -st927: - if ( ++p == pe ) - goto _test_eof927; -case 927: - switch( (*p) ) { - case 68: goto tr2535; - case 72: goto tr2536; - case 77: goto tr2537; - case 83: goto st928; - case 87: goto tr2539; - case 100: goto tr2535; - case 104: goto tr2536; - case 109: goto tr2537; - case 115: goto st928; - case 119: goto tr2539; - } - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2534; - goto tr2448; -tr2535: - { if (s->number64 <= (UINT32_MAX / 86400)) { - s->number64 *= 86400; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st928; -tr2536: - { if (s->number64 <= (UINT32_MAX / 3600)) { - s->number64 *= 3600; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st928; -tr2537: - { if (s->number64 <= (UINT32_MAX / 60)) { - s->number64 *= 60; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st928; -tr2539: - { if (s->number64 <= (UINT32_MAX / 604800)) { - s->number64 *= 604800; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st928; -st928: + goto st871; +st871: if ( ++p == pe ) - goto _test_eof928; -case 928: + goto _test_eof871; +case 871: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2540; - case 32: goto tr2540; - case 40: goto tr2541; - case 41: goto tr2542; - case 2058: goto tr2544; - case 2107: goto tr2545; + case 9: goto tr2355; + case 32: goto tr2355; + case 40: goto tr2356; + case 41: goto tr2357; + case 61: goto tr2359; + case 3082: goto tr2360; + case 3131: goto tr2361; + case 3338: goto tr2362; + case 3387: goto tr2362; + case 3594: goto tr2363; + case 3643: goto tr2364; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2543; - goto tr2448; -tr2465: - { - s->buffer_length = 0; - } - goto st929; -tr2546: + goto tr2358; + goto tr2353; +tr2359: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} } } - goto st929; -tr2459: + goto st872; +st872: + if ( ++p == pe ) + goto _test_eof872; +case 872: + switch( (*p) ) { + case 32: goto tr2213; + case 59: goto tr2213; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2213; + } else if ( (*p) >= 9 ) + goto tr2213; + goto tr2262; +tr2230: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } + s->svcb.param_position = rdata_tail; + } + goto st873; +st873: + if ( ++p == pe ) + goto _test_eof873; +case 873: + if ( (*p) == 97 ) + goto st874; + goto tr2213; +st874: + if ( ++p == pe ) + goto _test_eof874; +case 874: + if ( (*p) == 110 ) + goto st875; + goto tr2213; +st875: + if ( ++p == pe ) + goto _test_eof875; +case 875: + if ( (*p) == 100 ) + goto st876; + goto tr2213; +st876: + if ( ++p == pe ) + goto _test_eof876; +case 876: + if ( (*p) == 97 ) + goto st877; + goto tr2213; +st877: + if ( ++p == pe ) + goto _test_eof877; +case 877: + if ( (*p) == 116 ) + goto st878; + goto tr2213; +st878: + if ( ++p == pe ) + goto _test_eof878; +case 878: + if ( (*p) == 111 ) + goto st879; + goto tr2213; +st879: + if ( ++p == pe ) + goto _test_eof879; +case 879: + if ( (*p) == 114 ) + goto st880; + goto tr2213; +st880: + if ( ++p == pe ) + goto _test_eof880; +case 880: + if ( (*p) == 121 ) + goto st881; + goto tr2213; +st881: + if ( ++p == pe ) + goto _test_eof881; +case 881: + if ( (*p) == 61 ) + goto tr2373; + goto tr2213; +tr2373: + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } + goto st882; +st882: + if ( ++p == pe ) + goto _test_eof882; +case 882: + if ( (*p) == 34 ) + goto st883; + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2375; + } else if ( (*p) >= 65 ) + goto tr2375; + goto tr2213; +st883: + if ( ++p == pe ) + goto _test_eof883; +case 883: + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2376; + } else if ( (*p) >= 65 ) + goto tr2376; + goto tr2213; +tr2376: { - s->buffer_length = 0; + s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } - goto st929; -tr2560: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + { p--; {stack[top++] = 884;goto st751;} } + goto st884; +tr2379: + { p--; {stack[top++] = 884;goto st751;} } + goto st884; +st884: + if ( ++p == pe ) + goto _test_eof884; +case 884: + switch( (*p) ) { + case 34: goto tr2377; + case 44: goto st885; + } + goto tr2213; +st885: + if ( ++p == pe ) + goto _test_eof885; +case 885: + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2379; + } else if ( (*p) >= 65 ) + goto tr2379; + goto tr2213; +tr2375: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. + } + { + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { - s->buffer_length = 0; - } - goto st929; -st929: + { p--; {stack[top++] = 886;goto st751;} } + goto st886; +tr2389: + { p--; {stack[top++] = 886;goto st751;} } + goto st886; +st886: if ( ++p == pe ) - goto _test_eof929; -case 929: + goto _test_eof886; +case 886: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2380; + case 32: goto tr2380; + case 40: goto tr2381; + case 41: goto tr2382; + case 44: goto st887; + case 3082: goto tr2384; + case 3131: goto tr2385; + case 3338: goto tr2386; + case 3387: goto tr2386; + case 3594: goto tr2387; + case 3643: goto tr2388; + } + goto tr2213; +st887: + if ( ++p == pe ) + goto _test_eof887; +case 887: + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2389; + } else if ( (*p) >= 65 ) + goto tr2389; + goto tr2213; +tr2231: + { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + s->svcb.param_position = rdata_tail; + } + goto st888; +st888: + if ( ++p == pe ) + goto _test_eof888; +case 888: + if ( (*p) == 111 ) + goto st889; + goto tr2213; +st889: + if ( ++p == pe ) + goto _test_eof889; +case 889: + if ( (*p) == 45 ) + goto st890; + goto tr2213; +st890: + if ( ++p == pe ) + goto _test_eof890; +case 890: + if ( (*p) == 100 ) + goto st891; + goto tr2213; +st891: + if ( ++p == pe ) + goto _test_eof891; +case 891: + if ( (*p) == 101 ) + goto st892; + goto tr2213; +st892: + if ( ++p == pe ) + goto _test_eof892; +case 892: + if ( (*p) == 102 ) + goto st893; + goto tr2213; +st893: + if ( ++p == pe ) + goto _test_eof893; +case 893: + if ( (*p) == 97 ) + goto st894; + goto tr2213; +st894: + if ( ++p == pe ) + goto _test_eof894; +case 894: + if ( (*p) == 117 ) + goto st895; + goto tr2213; +st895: + if ( ++p == pe ) + goto _test_eof895; +case 895: + if ( (*p) == 108 ) + goto st896; + goto tr2213; +st896: + if ( ++p == pe ) + goto _test_eof896; +case 896: + if ( (*p) == 116 ) + goto st897; + goto tr2213; +st897: + if ( ++p == pe ) + goto _test_eof897; +case 897: + if ( (*p) == 45 ) + goto st898; + goto tr2213; +st898: + if ( ++p == pe ) + goto _test_eof898; +case 898: + if ( (*p) == 97 ) + goto st899; + goto tr2213; +st899: + if ( ++p == pe ) + goto _test_eof899; +case 899: + if ( (*p) == 108 ) + goto st900; + goto tr2213; +st900: + if ( ++p == pe ) + goto _test_eof900; +case 900: + if ( (*p) == 112 ) + goto st901; + goto tr2213; +st901: + if ( ++p == pe ) + goto _test_eof901; +case 901: + if ( (*p) == 110 ) + goto st902; + goto tr2213; +st902: + if ( ++p == pe ) + goto _test_eof902; +case 902: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - } else { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - if ( _widec == 2058 ) - goto tr2547; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2546; - goto tr77; -tr2453: - { if (s->number64 <= (UINT32_MAX / 86400)) { - s->number64 *= 86400; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st930; -tr2454: - { if (s->number64 <= (UINT32_MAX / 3600)) { - s->number64 *= 3600; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st930; -tr2455: - { if (s->number64 <= (UINT32_MAX / 60)) { - s->number64 *= 60; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st930; -tr2457: - { if (s->number64 <= (UINT32_MAX / 604800)) { - s->number64 *= 604800; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st930; -st930: + switch( _widec ) { + case 9: goto tr2404; + case 32: goto tr2404; + case 40: goto tr2405; + case 41: goto tr2406; + case 3082: goto tr2407; + case 3131: goto tr2408; + case 3338: goto tr2409; + case 3387: goto tr2409; + case 3594: goto tr2410; + case 3643: goto tr2411; + } + goto tr2213; +tr2232: + { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + s->svcb.param_position = rdata_tail; + } + goto st903; +st903: if ( ++p == pe ) - goto _test_eof930; -case 930: + goto _test_eof903; +case 903: + if ( (*p) == 104 ) + goto st904; + goto tr2213; +st904: + if ( ++p == pe ) + goto _test_eof904; +case 904: + if ( (*p) == 116 ) + goto st905; + goto tr2213; +st905: + if ( ++p == pe ) + goto _test_eof905; +case 905: + if ( (*p) == 116 ) + goto st906; + goto tr2213; +st906: + if ( ++p == pe ) + goto _test_eof906; +case 906: + if ( (*p) == 112 ) + goto st907; + goto tr2213; +st907: + if ( ++p == pe ) + goto _test_eof907; +case 907: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2449; - case 32: goto tr2449; - case 40: goto tr2450; - case 41: goto tr2451; - case 2058: goto tr2458; - case 2107: goto tr2459; + case 9: goto tr2416; + case 32: goto tr2416; + case 40: goto tr2417; + case 41: goto tr2418; + case 3082: goto tr2419; + case 3131: goto tr2420; + case 3338: goto tr2421; + case 3387: goto tr2421; + case 3594: goto tr2422; + case 3643: goto tr2423; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2548; - goto tr2448; -tr2549: + goto tr2213; +tr2233: + { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + s->svcb.param_position = rdata_tail; + } + goto st908; +st908: + if ( ++p == pe ) + goto _test_eof908; +case 908: + if ( (*p) == 111 ) + goto st909; + goto tr2213; +st909: + if ( ++p == pe ) + goto _test_eof909; +case 909: + if ( (*p) == 114 ) + goto st910; + goto tr2213; +st910: + if ( ++p == pe ) + goto _test_eof910; +case 910: + if ( (*p) == 116 ) + goto st911; + goto tr2213; +st911: + if ( ++p == pe ) + goto _test_eof911; +case 911: + if ( (*p) == 61 ) + goto tr2427; + goto tr2213; +tr2427: + { + uint16_t val = htons(3); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st912; +st912: + if ( ++p == pe ) + goto _test_eof912; +case 912: + if ( (*p) == 34 ) + goto st913; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2429; + goto tr2353; +st913: + if ( ++p == pe ) + goto _test_eof913; +case 913: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2430; + goto tr2353; +tr2432: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -69127,10 +66647,18 @@ tr2549: p--; {goto st319;} } } - goto st931; -tr2548: + goto st914; +tr2430: { - s->number64_tmp = s->number64; + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } { s->number64 = 0; @@ -69149,18 +66677,43 @@ tr2548: p--; {goto st319;} } } - goto st931; -tr2558: + goto st914; +st914: + if ( ++p == pe ) + goto _test_eof914; +case 914: + if ( (*p) == 34 ) + goto tr2431; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2432; + goto tr2353; +tr2436: { - if (s->number64 + s->number64_tmp < UINT32_MAX) { - s->number64 += s->number64_tmp; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } + goto st915; +tr2429: { - s->number64_tmp = s->number64; + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } { s->number64 = 0; @@ -69179,794 +66732,1333 @@ tr2558: p--; {goto st319;} } } - goto st931; -st931: - if ( ++p == pe ) - goto _test_eof931; -case 931: - switch( (*p) ) { - case 68: goto tr2550; - case 72: goto tr2551; - case 77: goto tr2552; - case 83: goto st932; - case 87: goto tr2554; - case 100: goto tr2550; - case 104: goto tr2551; - case 109: goto tr2552; - case 115: goto st932; - case 119: goto tr2554; - } - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2549; - goto tr2448; -tr2550: - { if (s->number64 <= (UINT32_MAX / 86400)) { - s->number64 *= 86400; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st932; -tr2551: - { if (s->number64 <= (UINT32_MAX / 3600)) { - s->number64 *= 3600; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st932; -tr2552: - { if (s->number64 <= (UINT32_MAX / 60)) { - s->number64 *= 60; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st932; -tr2554: - { if (s->number64 <= (UINT32_MAX / 604800)) { - s->number64 *= 604800; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } - goto st932; -st932: + goto st915; +st915: if ( ++p == pe ) - goto _test_eof932; -case 932: + goto _test_eof915; +case 915: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2555; - case 32: goto tr2555; - case 40: goto tr2556; - case 41: goto tr2557; - case 2058: goto tr2559; - case 2107: goto tr2560; + case 9: goto tr2433; + case 32: goto tr2433; + case 40: goto tr2434; + case 41: goto tr2435; + case 3082: goto tr2437; + case 3131: goto tr2438; + case 3338: goto tr2439; + case 3387: goto tr2439; + case 3594: goto tr2440; + case 3643: goto tr2441; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2558; - goto tr2448; -tr2447: + goto tr2436; + goto tr2353; +tr2244: { - s->buffer_length = 0; + s->comma_list = true; + s->pending_backslash = false; } - goto st933; -tr2561: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} } } - goto st933; -tr2441: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { - s->buffer_length = 0; - } - goto st933; -st933: + { p--; {stack[top++] = 916;goto st330;} } + goto st916; +st916: if ( ++p == pe ) - goto _test_eof933; -case 933: + goto _test_eof916; +case 916: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + !s->multiline ) _widec += 512; } - } else { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - if ( _widec == 2058 ) - goto tr2562; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2561; - goto tr77; -tr2435: + switch( _widec ) { + case 9: goto tr2245; + case 32: goto tr2245; + case 40: goto tr2246; + case 41: goto tr2247; + case 3082: goto tr2248; + case 3131: goto tr2249; + case 3338: goto tr2250; + case 3387: goto tr2250; + case 3594: goto tr2251; + case 3643: goto tr2252; + } + if ( _widec < 11 ) { + if ( _widec <= 8 ) + goto tr2442; + } else if ( _widec > 58 ) { + if ( 60 <= _widec ) + goto tr2442; + } else + goto tr2442; + goto tr2213; +tr2442: { - s->buffer_length = 0; + s->comma_list = true; + s->pending_backslash = false; } - goto st934; -tr2563: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} } } - goto st934; -tr2428: { - rdata_tail += s->dname_tmp_length; + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + { p--; {stack[top++] = 917;goto st330;} } + goto st917; +st917: + if ( ++p == pe ) + goto _test_eof917; +case 917: + if ( (*p) == 34 ) + goto tr2443; + goto tr2213; +st918: + if ( ++p == pe ) + goto _test_eof918; +case 918: + switch( (*p) ) { + case 68: goto st920; + case 69: goto st935; + case 73: goto st974; + case 80: goto st982; + case 82: goto st995; + case 100: goto st920; + case 101: goto st935; + case 105: goto st974; + case 112: goto st982; + case 114: goto st995; + } + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2445; + goto tr2444; +tr2445: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st919; +tr2452: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st919; +st919: + if ( ++p == pe ) + goto _test_eof919; +case 919: + switch( (*p) ) { + case 32: goto tr2451; + case 59: goto tr2451; + } + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2451; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2452; + } else + goto tr2451; + goto tr2444; +tr2451: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2455: + { + *(rdata_tail++) = 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2457: + { + *(rdata_tail++) = 3; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2469: + { + *(rdata_tail++) = 6; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2479: + { + *(rdata_tail++) = 12; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2493: + { + *(rdata_tail++) = 13; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2502: + { + *(rdata_tail++) = 14; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2509: + { + *(rdata_tail++) = 15; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2512: + { + *(rdata_tail++) = 16; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2520: + { + *(rdata_tail++) = 252; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2531: + { + *(rdata_tail++) = 253; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2534: + { + *(rdata_tail++) = 254; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2541: + { + *(rdata_tail++) = 1; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2547: + { + *(rdata_tail++) = 5; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2559: + { + *(rdata_tail++) = 7; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2562: + { + *(rdata_tail++) = 8; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +tr2565: + { + *(rdata_tail++) = 10; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1512; +st1512: + if ( ++p == pe ) + goto _test_eof1512; +case 1512: + goto st0; +st920: + if ( ++p == pe ) + goto _test_eof920; +case 920: + switch( (*p) ) { + case 72: goto st921; + case 83: goto st922; + case 104: goto st921; + case 115: goto st922; + } + goto tr2444; +st921: + if ( ++p == pe ) + goto _test_eof921; +case 921: + switch( (*p) ) { + case 32: goto tr2455; + case 59: goto tr2455; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2455; + } else if ( (*p) >= 9 ) + goto tr2455; + goto tr2444; +st922: + if ( ++p == pe ) + goto _test_eof922; +case 922: + switch( (*p) ) { + case 65: goto st923; + case 97: goto st923; + } + goto tr2444; +st923: + if ( ++p == pe ) + goto _test_eof923; +case 923: + switch( (*p) ) { + case 32: goto tr2457; + case 45: goto st924; + case 59: goto tr2457; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2457; + } else if ( (*p) >= 9 ) + goto tr2457; + goto tr2444; +st924: + if ( ++p == pe ) + goto _test_eof924; +case 924: + switch( (*p) ) { + case 78: goto st925; + case 110: goto st925; + } + goto tr2444; +st925: + if ( ++p == pe ) + goto _test_eof925; +case 925: + switch( (*p) ) { + case 83: goto st926; + case 115: goto st926; + } + goto tr2444; +st926: + if ( ++p == pe ) + goto _test_eof926; +case 926: + switch( (*p) ) { + case 69: goto st927; + case 101: goto st927; + } + goto tr2444; +st927: + if ( ++p == pe ) + goto _test_eof927; +case 927: + switch( (*p) ) { + case 67: goto st928; + case 99: goto st928; + } + goto tr2444; +st928: + if ( ++p == pe ) + goto _test_eof928; +case 928: + if ( (*p) == 51 ) + goto st929; + goto tr2444; +st929: + if ( ++p == pe ) + goto _test_eof929; +case 929: + if ( (*p) == 45 ) + goto st930; + goto tr2444; +st930: + if ( ++p == pe ) + goto _test_eof930; +case 930: + switch( (*p) ) { + case 83: goto st931; + case 115: goto st931; + } + goto tr2444; +st931: + if ( ++p == pe ) + goto _test_eof931; +case 931: + switch( (*p) ) { + case 72: goto st932; + case 104: goto st932; } - { - s->buffer_length = 0; + goto tr2444; +st932: + if ( ++p == pe ) + goto _test_eof932; +case 932: + switch( (*p) ) { + case 65: goto st933; + case 97: goto st933; } - goto st934; + goto tr2444; +st933: + if ( ++p == pe ) + goto _test_eof933; +case 933: + if ( (*p) == 49 ) + goto st934; + goto tr2444; st934: if ( ++p == pe ) goto _test_eof934; case 934: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr2564; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2563; - goto tr77; -tr2423: - { - s->buffer_length = 0; - } - goto st935; -tr2565: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st935; -tr2417: - { - rdata_tail += s->dname_tmp_length; - } - { - s->buffer_length = 0; + switch( (*p) ) { + case 32: goto tr2469; + case 59: goto tr2469; } - goto st935; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2469; + } else if ( (*p) >= 9 ) + goto tr2469; + goto tr2444; st935: if ( ++p == pe ) goto _test_eof935; case 935: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + switch( (*p) ) { + case 67: goto st936; + case 68: goto st965; + case 99: goto st936; + case 100: goto st965; } - if ( _widec == 2058 ) - goto tr2566; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2565; - goto tr77; + goto tr2444; st936: if ( ++p == pe ) goto _test_eof936; case 936: switch( (*p) ) { - case 32: goto tr77; - case 59: goto tr77; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr77; - } else if ( (*p) >= 9 ) - goto tr77; - goto tr2567; -tr2567: - { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + case 67: goto st937; + case 68: goto st943; + case 99: goto st937; + case 100: goto st943; } - { p--; {stack[top++] = 937;goto st330;} } - goto st937; + goto tr2444; st937: if ( ++p == pe ) goto _test_eof937; case 937: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if ( (*p) == 45 ) + goto st938; + goto tr2444; +st938: + if ( ++p == pe ) + goto _test_eof938; +case 938: + switch( (*p) ) { + case 71: goto st939; + case 103: goto st939; } - switch( _widec ) { - case 9: goto tr2568; - case 32: goto tr2568; - case 40: goto tr2569; - case 41: goto tr2570; - case 2058: goto tr2571; - case 2107: goto tr2572; + goto tr2444; +st939: + if ( ++p == pe ) + goto _test_eof939; +case 939: + switch( (*p) ) { + case 79: goto st940; + case 111: goto st940; } - goto tr77; -tr2575: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr2444; +st940: + if ( ++p == pe ) + goto _test_eof940; +case 940: + switch( (*p) ) { + case 83: goto st941; + case 115: goto st941; } - goto st938; -tr2576: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr2444; +st941: + if ( ++p == pe ) + goto _test_eof941; +case 941: + switch( (*p) ) { + case 84: goto st942; + case 116: goto st942; } - goto st938; -tr2577: - { - s->line_counter++; + goto tr2444; +st942: + if ( ++p == pe ) + goto _test_eof942; +case 942: + switch( (*p) ) { + case 32: goto tr2479; + case 59: goto tr2479; } - goto st938; -tr2581: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 938; goto _out;} - } - } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2479; + } else if ( (*p) >= 9 ) + goto tr2479; + goto tr2444; +st943: + if ( ++p == pe ) + goto _test_eof943; +case 943: + switch( (*p) ) { + case 83: goto st944; + case 115: goto st944; } - { - s->line_counter++; + goto tr2444; +st944: + if ( ++p == pe ) + goto _test_eof944; +case 944: + switch( (*p) ) { + case 65: goto st945; + case 97: goto st945; } - goto st938; -tr2568: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr2444; +st945: + if ( ++p == pe ) + goto _test_eof945; +case 945: + switch( (*p) ) { + case 80: goto st946; + case 112: goto st946; } - goto st938; -tr2569: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr2444; +st946: + if ( ++p == pe ) + goto _test_eof946; +case 946: + switch( (*p) ) { + case 50: goto st947; + case 51: goto st956; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr2444; +st947: + if ( ++p == pe ) + goto _test_eof947; +case 947: + if ( (*p) == 53 ) + goto st948; + goto tr2444; +st948: + if ( ++p == pe ) + goto _test_eof948; +case 948: + if ( (*p) == 54 ) + goto st949; + goto tr2444; +st949: + if ( ++p == pe ) + goto _test_eof949; +case 949: + switch( (*p) ) { + case 83: goto st950; + case 115: goto st950; } - goto st938; -tr2570: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr2444; +st950: + if ( ++p == pe ) + goto _test_eof950; +case 950: + switch( (*p) ) { + case 72: goto st951; + case 104: goto st951; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr2444; +st951: + if ( ++p == pe ) + goto _test_eof951; +case 951: + switch( (*p) ) { + case 65: goto st952; + case 97: goto st952; } - goto st938; -tr2571: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr2444; +st952: + if ( ++p == pe ) + goto _test_eof952; +case 952: + if ( (*p) == 50 ) + goto st953; + goto tr2444; +st953: + if ( ++p == pe ) + goto _test_eof953; +case 953: + if ( (*p) == 53 ) + goto st954; + goto tr2444; +st954: + if ( ++p == pe ) + goto _test_eof954; +case 954: + if ( (*p) == 54 ) + goto st955; + goto tr2444; +st955: + if ( ++p == pe ) + goto _test_eof955; +case 955: + switch( (*p) ) { + case 32: goto tr2493; + case 59: goto tr2493; } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2493; + } else if ( (*p) >= 9 ) + goto tr2493; + goto tr2444; +st956: + if ( ++p == pe ) + goto _test_eof956; +case 956: + if ( (*p) == 56 ) + goto st957; + goto tr2444; +st957: + if ( ++p == pe ) + goto _test_eof957; +case 957: + if ( (*p) == 52 ) + goto st958; + goto tr2444; +st958: + if ( ++p == pe ) + goto _test_eof958; +case 958: + switch( (*p) ) { + case 83: goto st959; + case 115: goto st959; } - goto st938; -st938: + goto tr2444; +st959: if ( ++p == pe ) - goto _test_eof938; -case 938: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto _test_eof959; +case 959: + switch( (*p) ) { + case 72: goto st960; + case 104: goto st960; } - switch( _widec ) { - case 9: goto st938; - case 32: goto st938; - case 40: goto tr2575; - case 41: goto tr2576; - case 2058: goto tr2577; - case 2107: goto tr2578; + goto tr2444; +st960: + if ( ++p == pe ) + goto _test_eof960; +case 960: + switch( (*p) ) { + case 65: goto st961; + case 97: goto st961; } - if ( _widec < 11 ) { - if ( _widec <= 8 ) - goto tr2573; - } else if ( _widec > 58 ) { - if ( 60 <= _widec ) - goto tr2573; - } else - goto tr2573; - goto tr77; -tr2573: - { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + goto tr2444; +st961: + if ( ++p == pe ) + goto _test_eof961; +case 961: + if ( (*p) == 51 ) + goto st962; + goto tr2444; +st962: + if ( ++p == pe ) + goto _test_eof962; +case 962: + if ( (*p) == 56 ) + goto st963; + goto tr2444; +st963: + if ( ++p == pe ) + goto _test_eof963; +case 963: + if ( (*p) == 52 ) + goto st964; + goto tr2444; +st964: + if ( ++p == pe ) + goto _test_eof964; +case 964: + switch( (*p) ) { + case 32: goto tr2502; + case 59: goto tr2502; } - { p--; {stack[top++] = 939;goto st330;} } - goto st939; -st939: + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2502; + } else if ( (*p) >= 9 ) + goto tr2502; + goto tr2444; +st965: if ( ++p == pe ) - goto _test_eof939; -case 939: + goto _test_eof965; +case 965: + switch( (*p) ) { + case 50: goto st966; + case 52: goto st971; + } + goto tr2444; +st966: + if ( ++p == pe ) + goto _test_eof966; +case 966: + if ( (*p) == 53 ) + goto st967; + goto tr2444; +st967: + if ( ++p == pe ) + goto _test_eof967; +case 967: + if ( (*p) == 53 ) + goto st968; + goto tr2444; +st968: + if ( ++p == pe ) + goto _test_eof968; +case 968: + if ( (*p) == 49 ) + goto st969; + goto tr2444; +st969: + if ( ++p == pe ) + goto _test_eof969; +case 969: + if ( (*p) == 57 ) + goto st970; + goto tr2444; +st970: + if ( ++p == pe ) + goto _test_eof970; +case 970: switch( (*p) ) { - case 32: goto tr2579; - case 59: goto tr2579; + case 32: goto tr2509; + case 59: goto tr2509; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2579; + goto tr2509; } else if ( (*p) >= 9 ) - goto tr2579; - goto tr77; -tr2579: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr2509; + goto tr2444; +st971: + if ( ++p == pe ) + goto _test_eof971; +case 971: + if ( (*p) == 52 ) + goto st972; + goto tr2444; +st972: + if ( ++p == pe ) + goto _test_eof972; +case 972: + if ( (*p) == 56 ) + goto st973; + goto tr2444; +st973: + if ( ++p == pe ) + goto _test_eof973; +case 973: + switch( (*p) ) { + case 32: goto tr2512; + case 59: goto tr2512; } - { - p--; {cs = stack[--top];goto _again;} + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2512; + } else if ( (*p) >= 9 ) + goto tr2512; + goto tr2444; +st974: + if ( ++p == pe ) + goto _test_eof974; +case 974: + switch( (*p) ) { + case 78: goto st975; + case 110: goto st975; } - goto st1526; -st1526: + goto tr2444; +st975: if ( ++p == pe ) - goto _test_eof1526; -case 1526: - goto st0; -tr2578: - { - s->buffer_length = 0; + goto _test_eof975; +case 975: + switch( (*p) ) { + case 68: goto st976; + case 100: goto st976; } - goto st940; -tr2580: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + goto tr2444; +st976: + if ( ++p == pe ) + goto _test_eof976; +case 976: + switch( (*p) ) { + case 73: goto st977; + case 105: goto st977; } - goto st940; -tr2572: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + goto tr2444; +st977: + if ( ++p == pe ) + goto _test_eof977; +case 977: + switch( (*p) ) { + case 82: goto st978; + case 114: goto st978; } - { - s->buffer_length = 0; + goto tr2444; +st978: + if ( ++p == pe ) + goto _test_eof978; +case 978: + switch( (*p) ) { + case 69: goto st979; + case 101: goto st979; + } + goto tr2444; +st979: + if ( ++p == pe ) + goto _test_eof979; +case 979: + switch( (*p) ) { + case 67: goto st980; + case 99: goto st980; + } + goto tr2444; +st980: + if ( ++p == pe ) + goto _test_eof980; +case 980: + switch( (*p) ) { + case 84: goto st981; + case 116: goto st981; + } + goto tr2444; +st981: + if ( ++p == pe ) + goto _test_eof981; +case 981: + switch( (*p) ) { + case 32: goto tr2520; + case 59: goto tr2520; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2520; + } else if ( (*p) >= 9 ) + goto tr2520; + goto tr2444; +st982: + if ( ++p == pe ) + goto _test_eof982; +case 982: + switch( (*p) ) { + case 82: goto st983; + case 114: goto st983; } - goto st940; -st940: + goto tr2444; +st983: if ( ++p == pe ) - goto _test_eof940; -case 940: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto _test_eof983; +case 983: + switch( (*p) ) { + case 73: goto st984; + case 105: goto st984; } - if ( _widec == 2058 ) - goto tr2581; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2580; - goto tr77; -st941: + goto tr2444; +st984: if ( ++p == pe ) - goto _test_eof941; -case 941: + goto _test_eof984; +case 984: switch( (*p) ) { - case 42: goto tr2582; - case 92: goto tr2582; - case 95: goto tr2582; - } - if ( (*p) < 64 ) { - if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2582; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2582; - } else - goto tr2582; - goto tr77; -tr2582: - { - s->dname = rdata_tail; + case 86: goto st985; + case 118: goto st985; } - { p--; {stack[top++] = 942;goto st321;} } - goto st942; -st942: + goto tr2444; +st985: if ( ++p == pe ) - goto _test_eof942; -case 942: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto _test_eof985; +case 985: + switch( (*p) ) { + case 65: goto st986; + case 97: goto st986; } - switch( _widec ) { - case 9: goto tr2583; - case 32: goto tr2583; - case 40: goto tr2584; - case 41: goto tr2585; - case 2058: goto tr2586; - case 2107: goto tr2587; + goto tr2444; +st986: + if ( ++p == pe ) + goto _test_eof986; +case 986: + switch( (*p) ) { + case 84: goto st987; + case 116: goto st987; } - goto tr77; -tr2589: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr2444; +st987: + if ( ++p == pe ) + goto _test_eof987; +case 987: + switch( (*p) ) { + case 69: goto st988; + case 101: goto st988; } - goto st943; -tr2590: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr2444; +st988: + if ( ++p == pe ) + goto _test_eof988; +case 988: + switch( (*p) ) { + case 68: goto st989; + case 79: goto st992; + case 100: goto st989; + case 111: goto st992; } - goto st943; -tr2592: - { - s->line_counter++; + goto tr2444; +st989: + if ( ++p == pe ) + goto _test_eof989; +case 989: + switch( (*p) ) { + case 78: goto st990; + case 110: goto st990; } - goto st943; -tr2596: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 943; goto _out;} - } - } + goto tr2444; +st990: + if ( ++p == pe ) + goto _test_eof990; +case 990: + switch( (*p) ) { + case 83: goto st991; + case 115: goto st991; } - { - s->line_counter++; + goto tr2444; +st991: + if ( ++p == pe ) + goto _test_eof991; +case 991: + switch( (*p) ) { + case 32: goto tr2531; + case 59: goto tr2531; } - goto st943; -tr2583: - { - rdata_tail += s->dname_tmp_length; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2531; + } else if ( (*p) >= 9 ) + goto tr2531; + goto tr2444; +st992: + if ( ++p == pe ) + goto _test_eof992; +case 992: + switch( (*p) ) { + case 73: goto st993; + case 105: goto st993; } - goto st943; -tr2584: - { - rdata_tail += s->dname_tmp_length; + goto tr2444; +st993: + if ( ++p == pe ) + goto _test_eof993; +case 993: + switch( (*p) ) { + case 68: goto st994; + case 100: goto st994; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + goto tr2444; +st994: + if ( ++p == pe ) + goto _test_eof994; +case 994: + switch( (*p) ) { + case 32: goto tr2534; + case 59: goto tr2534; } - goto st943; -tr2585: - { - rdata_tail += s->dname_tmp_length; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2534; + } else if ( (*p) >= 9 ) + goto tr2534; + goto tr2444; +st995: + if ( ++p == pe ) + goto _test_eof995; +case 995: + switch( (*p) ) { + case 83: goto st996; + case 115: goto st996; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr2444; +st996: + if ( ++p == pe ) + goto _test_eof996; +case 996: + switch( (*p) ) { + case 65: goto st997; + case 97: goto st997; } - goto st943; -tr2586: - { - rdata_tail += s->dname_tmp_length; + goto tr2444; +st997: + if ( ++p == pe ) + goto _test_eof997; +case 997: + switch( (*p) ) { + case 77: goto st998; + case 83: goto st1001; + case 109: goto st998; + case 115: goto st1001; } - { - s->line_counter++; + goto tr2444; +st998: + if ( ++p == pe ) + goto _test_eof998; +case 998: + switch( (*p) ) { + case 68: goto st999; + case 100: goto st999; } - goto st943; -st943: + goto tr2444; +st999: if ( ++p == pe ) - goto _test_eof943; -case 943: - _widec = (*p); + goto _test_eof999; +case 999: + if ( (*p) == 53 ) + goto st1000; + goto tr2444; +st1000: + if ( ++p == pe ) + goto _test_eof1000; +case 1000: + switch( (*p) ) { + case 32: goto tr2541; + case 59: goto tr2541; + } if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2541; + } else if ( (*p) >= 9 ) + goto tr2541; + goto tr2444; +st1001: + if ( ++p == pe ) + goto _test_eof1001; +case 1001: + switch( (*p) ) { + case 72: goto st1002; + case 104: goto st1002; } - switch( _widec ) { - case 9: goto st943; - case 32: goto st943; - case 40: goto tr2589; - case 41: goto tr2590; - case 42: goto tr2591; - case 92: goto tr2591; - case 95: goto tr2591; - case 2058: goto tr2592; - case 2107: goto tr2593; + goto tr2444; +st1002: + if ( ++p == pe ) + goto _test_eof1002; +case 1002: + switch( (*p) ) { + case 65: goto st1003; + case 97: goto st1003; } - if ( _widec < 64 ) { - if ( 45 <= _widec && _widec <= 57 ) - goto tr2591; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr2591; - } else - goto tr2591; - goto tr77; -tr2591: - { - s->dname = rdata_tail; + goto tr2444; +st1003: + if ( ++p == pe ) + goto _test_eof1003; +case 1003: + switch( (*p) ) { + case 49: goto st1004; + case 50: goto st1016; + case 53: goto st1019; } - { p--; {stack[top++] = 944;goto st321;} } - goto st944; -st944: + goto tr2444; +st1004: if ( ++p == pe ) - goto _test_eof944; -case 944: + goto _test_eof1004; +case 1004: switch( (*p) ) { - case 32: goto tr2594; - case 59: goto tr2594; + case 32: goto tr2547; + case 45: goto st1005; + case 59: goto tr2547; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2594; + goto tr2547; } else if ( (*p) >= 9 ) - goto tr2594; - goto tr77; -tr2594: - { - rdata_tail += s->dname_tmp_length; + goto tr2547; + goto tr2444; +st1005: + if ( ++p == pe ) + goto _test_eof1005; +case 1005: + switch( (*p) ) { + case 78: goto st1006; + case 110: goto st1006; } - { - p--; {cs = stack[--top];goto _again;} + goto tr2444; +st1006: + if ( ++p == pe ) + goto _test_eof1006; +case 1006: + switch( (*p) ) { + case 83: goto st1007; + case 115: goto st1007; } - goto st1527; -st1527: + goto tr2444; +st1007: if ( ++p == pe ) - goto _test_eof1527; -case 1527: - goto st0; -tr2593: - { - s->buffer_length = 0; + goto _test_eof1007; +case 1007: + switch( (*p) ) { + case 69: goto st1008; + case 101: goto st1008; } - goto st945; -tr2595: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + goto tr2444; +st1008: + if ( ++p == pe ) + goto _test_eof1008; +case 1008: + switch( (*p) ) { + case 67: goto st1009; + case 99: goto st1009; } - goto st945; -tr2587: - { - rdata_tail += s->dname_tmp_length; + goto tr2444; +st1009: + if ( ++p == pe ) + goto _test_eof1009; +case 1009: + if ( (*p) == 51 ) + goto st1010; + goto tr2444; +st1010: + if ( ++p == pe ) + goto _test_eof1010; +case 1010: + if ( (*p) == 45 ) + goto st1011; + goto tr2444; +st1011: + if ( ++p == pe ) + goto _test_eof1011; +case 1011: + switch( (*p) ) { + case 83: goto st1012; + case 115: goto st1012; } - { - s->buffer_length = 0; + goto tr2444; +st1012: + if ( ++p == pe ) + goto _test_eof1012; +case 1012: + switch( (*p) ) { + case 72: goto st1013; + case 104: goto st1013; } - goto st945; -st945: + goto tr2444; +st1013: if ( ++p == pe ) - goto _test_eof945; -case 945: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto _test_eof1013; +case 1013: + switch( (*p) ) { + case 65: goto st1014; + case 97: goto st1014; } - if ( _widec == 2058 ) - goto tr2596; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2595; - goto tr77; -st946: + goto tr2444; +st1014: if ( ++p == pe ) - goto _test_eof946; -case 946: + goto _test_eof1014; +case 1014: + if ( (*p) == 49 ) + goto st1015; + goto tr2444; +st1015: + if ( ++p == pe ) + goto _test_eof1015; +case 1015: + switch( (*p) ) { + case 32: goto tr2559; + case 59: goto tr2559; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2559; + } else if ( (*p) >= 9 ) + goto tr2559; + goto tr2444; +st1016: + if ( ++p == pe ) + goto _test_eof1016; +case 1016: + if ( (*p) == 53 ) + goto st1017; + goto tr2444; +st1017: + if ( ++p == pe ) + goto _test_eof1017; +case 1017: + if ( (*p) == 54 ) + goto st1018; + goto tr2444; +st1018: + if ( ++p == pe ) + goto _test_eof1018; +case 1018: + switch( (*p) ) { + case 32: goto tr2562; + case 59: goto tr2562; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2562; + } else if ( (*p) >= 9 ) + goto tr2562; + goto tr2444; +st1019: + if ( ++p == pe ) + goto _test_eof1019; +case 1019: + if ( (*p) == 49 ) + goto st1020; + goto tr2444; +st1020: + if ( ++p == pe ) + goto _test_eof1020; +case 1020: + if ( (*p) == 50 ) + goto st1021; + goto tr2444; +st1021: + if ( ++p == pe ) + goto _test_eof1021; +case 1021: + switch( (*p) ) { + case 32: goto tr2565; + case 59: goto tr2565; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2565; + } else if ( (*p) >= 9 ) + goto tr2565; + goto tr2444; +st1022: + if ( ++p == pe ) + goto _test_eof1022; +case 1022: + switch( (*p) ) { + case 65: goto st1024; + case 73: goto st1030; + case 79: goto st1047; + case 80: goto st1050; + case 83: goto st1056; + case 85: goto st1060; + case 97: goto st1024; + case 105: goto st1030; + case 111: goto st1047; + case 112: goto st1050; + case 115: goto st1056; + case 117: goto st1060; + } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2597; - goto tr2429; -tr2597: + goto tr2567; + goto tr2566; +tr2567: { s->number64 = 0; } @@ -69984,8 +68076,8 @@ tr2597: p--; {goto st319;} } } - goto st947; -tr2601: + goto st1023; +tr2575: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70000,867 +68092,1002 @@ tr2601: p--; {goto st319;} } } - goto st947; -st947: + goto st1023; +st1023: if ( ++p == pe ) - goto _test_eof947; -case 947: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr2598; - case 32: goto tr2598; - case 40: goto tr2599; - case 41: goto tr2600; - case 2058: goto tr2602; - case 2107: goto tr2603; + goto _test_eof1023; +case 1023: + switch( (*p) ) { + case 32: goto tr2574; + case 59: goto tr2574; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2601; - goto tr2429; -tr2605: + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2574; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2575; + } else + goto tr2574; + goto tr2566; +tr2574: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st948; -tr2606: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} + } + goto st1513; +tr2611: + { + uint16_t val = htons(1); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1513; +tr2581: + { + uint16_t val = htons(7); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1513; +tr2601: + { + uint16_t val = htons(5); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1513; +tr2597: + { + uint16_t val = htons(4); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1513; +tr2594: + { + uint16_t val = htons(6); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1513; +tr2615: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1513; +tr2590: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} } - goto st948; + goto st1513; tr2608: { - s->line_counter++; + uint16_t val = htons(3); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st948; -tr2612: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 948; goto _out;} - } - } + p--; {cs = stack[--top];goto _again;} } + goto st1513; +tr2604: { - s->line_counter++; + uint16_t val = htons(254); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st948; -tr2598: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } - goto st948; -tr2599: + goto st1513; +tr2618: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + uint16_t val = htons(253); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st948; -tr2600: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + goto st1513; +st1513: + if ( ++p == pe ) + goto _test_eof1513; +case 1513: + goto st0; +st1024: + if ( ++p == pe ) + goto _test_eof1024; +case 1024: + switch( (*p) ) { + case 67: goto st1025; + case 99: goto st1025; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto tr2566; +st1025: + if ( ++p == pe ) + goto _test_eof1025; +case 1025: + switch( (*p) ) { + case 80: goto st1026; + case 112: goto st1026; } - goto st948; -tr2602: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + goto tr2566; +st1026: + if ( ++p == pe ) + goto _test_eof1026; +case 1026: + switch( (*p) ) { + case 75: goto st1027; + case 107: goto st1027; } - { - s->line_counter++; + goto tr2566; +st1027: + if ( ++p == pe ) + goto _test_eof1027; +case 1027: + switch( (*p) ) { + case 73: goto st1028; + case 105: goto st1028; } - goto st948; -st948: + goto tr2566; +st1028: if ( ++p == pe ) - goto _test_eof948; -case 948: - _widec = (*p); + goto _test_eof1028; +case 1028: + switch( (*p) ) { + case 88: goto st1029; + case 120: goto st1029; + } + goto tr2566; +st1029: + if ( ++p == pe ) + goto _test_eof1029; +case 1029: + switch( (*p) ) { + case 32: goto tr2581; + case 59: goto tr2581; + } if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2581; + } else if ( (*p) >= 9 ) + goto tr2581; + goto tr2566; +st1030: + if ( ++p == pe ) + goto _test_eof1030; +case 1030: + switch( (*p) ) { + case 65: goto st1031; + case 80: goto st1037; + case 83: goto st1043; + case 97: goto st1031; + case 112: goto st1037; + case 115: goto st1043; } - switch( _widec ) { - case 9: goto st948; - case 32: goto st948; - case 40: goto tr2605; - case 41: goto tr2606; - case 42: goto tr2607; - case 92: goto tr2607; - case 95: goto tr2607; - case 2058: goto tr2608; - case 2107: goto tr2609; + goto tr2566; +st1031: + if ( ++p == pe ) + goto _test_eof1031; +case 1031: + switch( (*p) ) { + case 67: goto st1032; + case 99: goto st1032; } - if ( _widec < 64 ) { - if ( 45 <= _widec && _widec <= 57 ) - goto tr2607; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr2607; - } else - goto tr2607; - goto tr77; -tr2607: - { - s->dname = rdata_tail; + goto tr2566; +st1032: + if ( ++p == pe ) + goto _test_eof1032; +case 1032: + switch( (*p) ) { + case 80: goto st1033; + case 112: goto st1033; } - { p--; {stack[top++] = 949;goto st321;} } - goto st949; -st949: + goto tr2566; +st1033: if ( ++p == pe ) - goto _test_eof949; -case 949: + goto _test_eof1033; +case 1033: + switch( (*p) ) { + case 75: goto st1034; + case 107: goto st1034; + } + goto tr2566; +st1034: + if ( ++p == pe ) + goto _test_eof1034; +case 1034: + switch( (*p) ) { + case 73: goto st1035; + case 105: goto st1035; + } + goto tr2566; +st1035: + if ( ++p == pe ) + goto _test_eof1035; +case 1035: + switch( (*p) ) { + case 88: goto st1036; + case 120: goto st1036; + } + goto tr2566; +st1036: + if ( ++p == pe ) + goto _test_eof1036; +case 1036: switch( (*p) ) { - case 32: goto tr2610; - case 59: goto tr2610; + case 32: goto tr2590; + case 59: goto tr2590; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2610; + goto tr2590; } else if ( (*p) >= 9 ) - goto tr2610; - goto tr77; -tr2610: - { - rdata_tail += s->dname_tmp_length; + goto tr2590; + goto tr2566; +st1037: + if ( ++p == pe ) + goto _test_eof1037; +case 1037: + switch( (*p) ) { + case 71: goto st1038; + case 75: goto st1040; + case 103: goto st1038; + case 107: goto st1040; } - { - p--; {cs = stack[--top];goto _again;} + goto tr2566; +st1038: + if ( ++p == pe ) + goto _test_eof1038; +case 1038: + switch( (*p) ) { + case 80: goto st1039; + case 112: goto st1039; } - goto st1528; -st1528: + goto tr2566; +st1039: if ( ++p == pe ) - goto _test_eof1528; -case 1528: - goto st0; -tr2609: - { - s->buffer_length = 0; + goto _test_eof1039; +case 1039: + switch( (*p) ) { + case 32: goto tr2594; + case 59: goto tr2594; } - goto st950; -tr2611: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2594; + } else if ( (*p) >= 9 ) + goto tr2594; + goto tr2566; +st1040: + if ( ++p == pe ) + goto _test_eof1040; +case 1040: + switch( (*p) ) { + case 73: goto st1041; + case 105: goto st1041; } - goto st950; -tr2603: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + goto tr2566; +st1041: + if ( ++p == pe ) + goto _test_eof1041; +case 1041: + switch( (*p) ) { + case 88: goto st1042; + case 120: goto st1042; } - { - s->buffer_length = 0; + goto tr2566; +st1042: + if ( ++p == pe ) + goto _test_eof1042; +case 1042: + switch( (*p) ) { + case 32: goto tr2597; + case 59: goto tr2597; } - goto st950; -st950: + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2597; + } else if ( (*p) >= 9 ) + goto tr2597; + goto tr2566; +st1043: if ( ++p == pe ) - goto _test_eof950; -case 950: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto _test_eof1043; +case 1043: + switch( (*p) ) { + case 80: goto st1044; + case 112: goto st1044; } - if ( _widec == 2058 ) - goto tr2612; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2611; - goto tr77; -st951: + goto tr2566; +st1044: if ( ++p == pe ) - goto _test_eof951; -case 951: + goto _test_eof1044; +case 1044: + switch( (*p) ) { + case 75: goto st1045; + case 107: goto st1045; + } + goto tr2566; +st1045: + if ( ++p == pe ) + goto _test_eof1045; +case 1045: + switch( (*p) ) { + case 73: goto st1046; + case 105: goto st1046; + } + goto tr2566; +st1046: + if ( ++p == pe ) + goto _test_eof1046; +case 1046: switch( (*p) ) { - case 32: goto tr2614; - case 59: goto tr2614; + case 32: goto tr2601; + case 59: goto tr2601; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2614; + goto tr2601; } else if ( (*p) >= 9 ) - goto tr2614; - goto tr2613; -tr2623: - { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + goto tr2601; + goto tr2566; +st1047: + if ( ++p == pe ) + goto _test_eof1047; +case 1047: + switch( (*p) ) { + case 73: goto st1048; + case 105: goto st1048; } - { p--; {stack[top++] = 952;goto st330;} } - goto st952; -tr2613: - { - s->long_string = true; + goto tr2566; +st1048: + if ( ++p == pe ) + goto _test_eof1048; +case 1048: + switch( (*p) ) { + case 68: goto st1049; + case 100: goto st1049; } - { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + goto tr2566; +st1049: + if ( ++p == pe ) + goto _test_eof1049; +case 1049: + switch( (*p) ) { + case 32: goto tr2604; + case 59: goto tr2604; } - { p--; {stack[top++] = 952;goto st330;} } - goto st952; -st952: + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2604; + } else if ( (*p) >= 9 ) + goto tr2604; + goto tr2566; +st1050: if ( ++p == pe ) - goto _test_eof952; -case 952: - _widec = (*p); + goto _test_eof1050; +case 1050: + switch( (*p) ) { + case 71: goto st1051; + case 75: goto st1053; + case 103: goto st1051; + case 107: goto st1053; + } + goto tr2566; +st1051: + if ( ++p == pe ) + goto _test_eof1051; +case 1051: + switch( (*p) ) { + case 80: goto st1052; + case 112: goto st1052; + } + goto tr2566; +st1052: + if ( ++p == pe ) + goto _test_eof1052; +case 1052: + switch( (*p) ) { + case 32: goto tr2608; + case 59: goto tr2608; + } if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2608; + } else if ( (*p) >= 9 ) + goto tr2608; + goto tr2566; +st1053: + if ( ++p == pe ) + goto _test_eof1053; +case 1053: + switch( (*p) ) { + case 73: goto st1054; + case 105: goto st1054; } - switch( _widec ) { - case 9: goto tr2615; + goto tr2566; +st1054: + if ( ++p == pe ) + goto _test_eof1054; +case 1054: + switch( (*p) ) { + case 88: goto st1055; + case 120: goto st1055; + } + goto tr2566; +st1055: + if ( ++p == pe ) + goto _test_eof1055; +case 1055: + switch( (*p) ) { + case 32: goto tr2611; + case 59: goto tr2611; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2611; + } else if ( (*p) >= 9 ) + goto tr2611; + goto tr2566; +st1056: + if ( ++p == pe ) + goto _test_eof1056; +case 1056: + switch( (*p) ) { + case 80: goto st1057; + case 112: goto st1057; + } + goto tr2566; +st1057: + if ( ++p == pe ) + goto _test_eof1057; +case 1057: + switch( (*p) ) { + case 75: goto st1058; + case 107: goto st1058; + } + goto tr2566; +st1058: + if ( ++p == pe ) + goto _test_eof1058; +case 1058: + switch( (*p) ) { + case 73: goto st1059; + case 105: goto st1059; + } + goto tr2566; +st1059: + if ( ++p == pe ) + goto _test_eof1059; +case 1059: + switch( (*p) ) { case 32: goto tr2615; - case 40: goto tr2616; - case 41: goto tr2617; - case 3082: goto tr2618; - case 3131: goto tr2619; - case 3338: goto tr2620; - case 3387: goto tr2620; - case 3594: goto tr2621; - case 3643: goto tr2622; - } - goto tr2614; -tr2625: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + case 59: goto tr2615; } - goto st953; -tr2626: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2615; + } else if ( (*p) >= 9 ) + goto tr2615; + goto tr2566; +st1060: + if ( ++p == pe ) + goto _test_eof1060; +case 1060: + switch( (*p) ) { + case 82: goto st1061; + case 114: goto st1061; } - goto st953; -tr2627: - { - s->line_counter++; + goto tr2566; +st1061: + if ( ++p == pe ) + goto _test_eof1061; +case 1061: + switch( (*p) ) { + case 73: goto st1062; + case 105: goto st1062; } - goto st953; -tr2633: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 953; goto _out;} - } - } + goto tr2566; +st1062: + if ( ++p == pe ) + goto _test_eof1062; +case 1062: + switch( (*p) ) { + case 32: goto tr2618; + case 59: goto tr2618; } - { - s->line_counter++; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2618; + } else if ( (*p) >= 9 ) + goto tr2618; + goto tr2566; +st1063: + if ( ++p == pe ) + goto _test_eof1063; +case 1063: + switch( (*p) ) { + case 78: goto st1065; + case 110: goto st1065; } - goto st953; -tr2615: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2620; + goto tr2619; +tr2620: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + s->number64 = 0; } - goto st953; -tr2616: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st953; -tr2617: + goto st1064; +tr2623: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + goto st1064; +st1064: + if ( ++p == pe ) + goto _test_eof1064; +case 1064: + switch( (*p) ) { + case 32: goto tr2622; + case 59: goto tr2622; } - goto st953; -tr2618: + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2622; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2623; + } else + goto tr2622; + goto tr2619; +tr2622: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_NUMBER8_OVERFLOW); p--; {goto st319;} } } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st953; -st953: + goto st1514; +tr2629: + { + *(rdata_tail++) = 1; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1514; +st1514: if ( ++p == pe ) - goto _test_eof953; -case 953: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + goto _test_eof1514; +case 1514: + goto st0; +st1065: + if ( ++p == pe ) + goto _test_eof1065; +case 1065: + switch( (*p) ) { + case 79: goto st1066; + case 111: goto st1066; } - switch( _widec ) { - case 9: goto st953; - case 32: goto st953; - case 40: goto tr2625; - case 41: goto tr2626; - case 3082: goto tr2627; - case 3131: goto tr2628; - case 3338: goto tr2629; - case 3387: goto tr2629; - case 3594: goto tr2630; - case 3643: goto tr2631; + goto tr2619; +st1066: + if ( ++p == pe ) + goto _test_eof1066; +case 1066: + switch( (*p) ) { + case 84: goto st1067; + case 116: goto st1067; } - if ( _widec < 11 ) { - if ( _widec <= 8 ) - goto tr2623; - } else if ( _widec > 58 ) { - if ( 60 <= _widec ) - goto tr2623; - } else - goto tr2623; - goto tr2614; -tr2628: - { - s->buffer_length = 0; + goto tr2619; +st1067: + if ( ++p == pe ) + goto _test_eof1067; +case 1067: + switch( (*p) ) { + case 73: goto st1068; + case 105: goto st1068; } - goto st954; -tr2632: + goto tr2619; +st1068: + if ( ++p == pe ) + goto _test_eof1068; +case 1068: + switch( (*p) ) { + case 70: goto st1069; + case 102: goto st1069; + } + goto tr2619; +st1069: + if ( ++p == pe ) + goto _test_eof1069; +case 1069: + switch( (*p) ) { + case 89: goto st1070; + case 121: goto st1070; + } + goto tr2619; +st1070: + if ( ++p == pe ) + goto _test_eof1070; +case 1070: + switch( (*p) ) { + case 32: goto tr2629; + case 59: goto tr2629; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2629; + } else if ( (*p) >= 9 ) + goto tr2629; + goto tr2619; +st1071: + if ( ++p == pe ) + goto _test_eof1071; +case 1071: + if ( (*p) == 46 ) + goto tr2631; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2631; + goto tr2630; +tr2633: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); - } - } - goto st954; -tr2619: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st1072; +tr2631: { s->buffer_length = 0; } - goto st954; -st954: - if ( ++p == pe ) - goto _test_eof954; -case 954: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr2633; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2632; - goto tr2614; -tr2620: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { - s->long_string = false; + goto st1072; +st1072: + if ( ++p == pe ) + goto _test_eof1072; +case 1072: + switch( (*p) ) { + case 32: goto tr2632; + case 46: goto tr2633; + case 59: goto tr2632; } + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2632; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2633; + } else + goto tr2632; + goto tr2630; +tr2632: { - p--; {cs = stack[--top];goto _again;} + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st319;} + } } - goto st1529; -tr2629: { - s->long_string = false; + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -st1529: + goto st1515; +st1515: if ( ++p == pe ) - goto _test_eof1529; -case 1529: + goto _test_eof1515; +case 1515: goto st0; -tr2621: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } +st1073: + if ( ++p == pe ) + goto _test_eof1073; +case 1073: + switch( (*p) ) { + case 42: goto tr2634; + case 92: goto tr2634; + case 95: goto tr2634; } + if ( (*p) < 64 ) { + if ( 45 <= (*p) && (*p) <= 57 ) + goto tr2634; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2634; + } else + goto tr2634; + goto tr77; +tr2634: { - s->line_counter++; + s->dname = rdata_tail; } - { - s->long_string = false; + { p--; {stack[top++] = 1074;goto st321;} } + goto st1074; +st1074: + if ( ++p == pe ) + goto _test_eof1074; +case 1074: + switch( (*p) ) { + case 32: goto tr2635; + case 59: goto tr2635; } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2635; + } else if ( (*p) >= 9 ) + goto tr2635; + goto tr77; +tr2635: { - p--; {cs = stack[--top];goto _again;} + rdata_tail += s->dname_tmp_length; } - goto st1530; -tr2630: { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - { - s->long_string = false; + goto st1516; +st1516: + if ( ++p == pe ) + goto _test_eof1516; +case 1516: + goto st0; +st1075: + if ( ++p == pe ) + goto _test_eof1075; +case 1075: + switch( (*p) ) { + case 42: goto tr2636; + case 92: goto tr2636; + case 95: goto tr2636; } + if ( (*p) < 64 ) { + if ( 45 <= (*p) && (*p) <= 57 ) + goto tr2636; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2636; + } else + goto tr2636; + goto tr77; +tr2636: { - p--; {cs = stack[--top];goto _again;} + s->dname = rdata_tail; } - goto st1530; -st1530: + { p--; {stack[top++] = 1076;goto st321;} } + goto st1076; +st1076: if ( ++p == pe ) - goto _test_eof1530; -case 1530: + goto _test_eof1076; +case 1076: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st953; - case 32: goto st953; - case 40: goto tr2625; - case 41: goto tr2626; - case 3082: goto tr2627; - case 3131: goto tr2628; - case 3338: goto tr2629; - case 3387: goto tr2629; - case 3594: goto tr2630; - case 3643: goto tr2631; + case 9: goto tr2637; + case 32: goto tr2637; + case 40: goto tr2638; + case 41: goto tr2639; + case 2058: goto tr2640; + case 2107: goto tr2641; } - if ( _widec < 11 ) { - if ( _widec <= 8 ) - goto tr2623; - } else if ( _widec > 58 ) { - if ( 60 <= _widec ) - goto tr2623; - } else - goto tr2623; - goto tr2614; -tr2622: + goto tr77; +tr2643: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st1077; +tr2644: { - s->buffer_length = 0; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st1077; +tr2646: { - s->long_string = false; + s->line_counter++; } + goto st1077; +tr2790: { - p--; {cs = stack[--top];goto _again;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1077; goto _out;} + } + } } - goto st1531; -tr2631: { - s->buffer_length = 0; + s->line_counter++; } + goto st1077; +tr2637: { - s->long_string = false; + rdata_tail += s->dname_tmp_length; } + goto st1077; +tr2638: { - p--; {cs = stack[--top];goto _again;} - } - goto st1531; -st1531: - if ( ++p == pe ) - goto _test_eof1531; -case 1531: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + rdata_tail += s->dname_tmp_length; } - if ( _widec == 2058 ) - goto tr2633; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2632; - goto tr2614; -st955: - if ( ++p == pe ) - goto _test_eof955; -case 955: - if ( (*p) == 46 ) - goto tr2634; - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2634; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2634; - } else - goto tr2634; - goto tr2406; -tr2636: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } - goto st956; -tr2634: - { - s->buffer_length = 0; - } + goto st1077; +tr2639: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - goto st956; -st956: - if ( ++p == pe ) - goto _test_eof956; -case 956: - switch( (*p) ) { - case 32: goto tr2635; - case 46: goto tr2636; - case 59: goto tr2635; + rdata_tail += s->dname_tmp_length; } - if ( (*p) < 48 ) { - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2635; - } else if ( (*p) >= 9 ) - goto tr2635; - } else if ( (*p) > 58 ) { - if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2636; - } else if ( (*p) >= 65 ) - goto tr2636; - } else - goto tr2636; - goto tr2406; -tr2635: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1077; +tr2640: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + rdata_tail += s->dname_tmp_length; } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1532; -st1532: - if ( ++p == pe ) - goto _test_eof1532; -case 1532: - goto st0; -st957: + goto st1077; +st1077: if ( ++p == pe ) - goto _test_eof957; -case 957: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2638; - goto tr2637; -tr2642: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } - } - goto st958; -tr2638: - { - memset(&(s->loc), 0, sizeof(s->loc)); - // Defaults. - s->loc.siz = 100; - s->loc.vp = 1000; - s->loc.hp = 1000000; - s->loc.lat_sign = 1; - s->loc.long_sign = 1; - s->loc.alt_sign = 1; + goto _test_eof1077; +case 1077: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - { - s->number64 = 0; + switch( _widec ) { + case 9: goto st1077; + case 32: goto st1077; + case 40: goto tr2643; + case 41: goto tr2644; + case 42: goto tr2645; + case 92: goto tr2645; + case 95: goto tr2645; + case 2058: goto tr2646; + case 2107: goto tr2647; } + if ( _widec < 64 ) { + if ( 45 <= _widec && _widec <= 57 ) + goto tr2645; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr2645; + } else + goto tr2645; + goto tr77; +tr2645: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + s->dname = rdata_tail; } - goto st958; -st958: + { p--; {stack[top++] = 1078;goto st321;} } + goto st1078; +st1078: if ( ++p == pe ) - goto _test_eof958; -case 958: + goto _test_eof1078; +case 1078: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70874,17 +69101,15 @@ case 958: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2639; - case 32: goto tr2639; - case 40: goto tr2640; - case 41: goto tr2641; - case 2058: goto tr2643; - case 2107: goto tr2644; + case 9: goto tr2648; + case 32: goto tr2648; + case 40: goto tr2649; + case 41: goto tr2650; + case 2058: goto tr2651; + case 2107: goto tr2652; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2642; - goto tr2637; -tr2646: + goto tr77; +tr2655: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -70892,8 +69117,8 @@ tr2646: } s->multiline = true; } - goto st959; -tr2647: + goto st1079; +tr2656: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -70901,13 +69126,13 @@ tr2647: } s->multiline = false; } - goto st959; -tr2651: + goto st1079; +tr2658: { s->line_counter++; } - goto st959; -tr2894: + goto st1079; +tr2788: { s->buffer[s->buffer_length++] = 0; @@ -70917,32 +69142,22 @@ tr2894: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 959; goto _out;} + {p++; cs = 1079; goto _out;} } } } { s->line_counter++; } - goto st959; -tr2639: + goto st1079; +tr2648: { - if (s->number64 <= 90) { - s->loc.d1 = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + rdata_tail += s->dname_tmp_length; } - goto st959; -tr2640: + goto st1079; +tr2649: { - if (s->number64 <= 90) { - s->loc.d1 = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { @@ -70951,15 +69166,10 @@ tr2640: } s->multiline = true; } - goto st959; -tr2641: + goto st1079; +tr2650: { - if (s->number64 <= 90) { - s->loc.d1 = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { @@ -70968,24 +69178,19 @@ tr2641: } s->multiline = false; } - goto st959; -tr2643: + goto st1079; +tr2651: { - if (s->number64 <= 90) { - s->loc.d1 = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st959; -st959: + goto st1079; +st1079: if ( ++p == pe ) - goto _test_eof959; -case 959: + goto _test_eof1079; +case 1079: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70999,19 +69204,17 @@ case 959: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st959; - case 32: goto st959; - case 40: goto tr2646; - case 41: goto tr2647; - case 78: goto st964; - case 83: goto st1006; - case 2058: goto tr2651; - case 2107: goto tr2652; + case 9: goto st1079; + case 32: goto st1079; + case 40: goto tr2655; + case 41: goto tr2656; + case 2058: goto tr2658; + case 2107: goto tr2659; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2648; - goto tr2637; -tr2648: + goto tr2657; + goto tr2653; +tr2657: { s->number64 = 0; } @@ -71029,8 +69232,8 @@ tr2648: p--; {goto st319;} } } - goto st960; -tr2656: + goto st1080; +tr2663: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71045,11 +69248,11 @@ tr2656: p--; {goto st319;} } } - goto st960; -st960: + goto st1080; +st1080: if ( ++p == pe ) - goto _test_eof960; -case 960: + goto _test_eof1080; +case 1080: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71063,17 +69266,17 @@ case 960: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2653; - case 32: goto tr2653; - case 40: goto tr2654; - case 41: goto tr2655; - case 2058: goto tr2657; - case 2107: goto tr2658; + case 9: goto tr2660; + case 32: goto tr2660; + case 40: goto tr2661; + case 41: goto tr2662; + case 2058: goto tr2664; + case 2107: goto tr2665; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2656; - goto tr2637; -tr2660: + goto tr2663; + goto tr2653; +tr2667: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -71081,8 +69284,8 @@ tr2660: } s->multiline = true; } - goto st961; -tr2661: + goto st1081; +tr2668: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -71090,13 +69293,13 @@ tr2661: } s->multiline = false; } - goto st961; -tr2663: + goto st1081; +tr2670: { s->line_counter++; } - goto st961; -tr2892: + goto st1081; +tr2786: { s->buffer[s->buffer_length++] = 0; @@ -71106,30 +69309,34 @@ tr2892: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 961; goto _out;} + {p++; cs = 1081; goto _out;} } } } { s->line_counter++; } - goto st961; -tr2653: + goto st1081; +tr2660: { - if (s->number64 <= 59) { - s->loc.m1 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } - goto st961; -tr2654: + goto st1081; +tr2661: { - if (s->number64 <= 59) { - s->loc.m1 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } @@ -71140,13 +69347,15 @@ tr2654: } s->multiline = true; } - goto st961; -tr2655: + goto st1081; +tr2662: { - if (s->number64 <= 59) { - s->loc.m1 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } @@ -71157,24 +69366,26 @@ tr2655: } s->multiline = false; } - goto st961; -tr2657: + goto st1081; +tr2664: { - if (s->number64 <= 59) { - s->loc.m1 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { s->line_counter++; } - goto st961; -st961: + goto st1081; +st1081: if ( ++p == pe ) - goto _test_eof961; -case 961: + goto _test_eof1081; +case 1081: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71188,19 +69399,20 @@ case 961: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st961; - case 32: goto st961; - case 40: goto tr2660; - case 41: goto tr2661; - case 78: goto st964; - case 83: goto st1006; - case 2058: goto tr2663; - case 2107: goto tr2664; + case 9: goto st1081; + case 32: goto st1081; + case 40: goto tr2667; + case 41: goto tr2668; + case 2058: goto tr2670; + case 2107: goto tr2671; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2662; - goto tr2637; + goto tr2669; + goto tr2653; tr2669: + { + s->number64 = 0; + } { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71215,17 +69427,8 @@ tr2669: p--; {goto st319;} } } - goto st962; -tr2662: - { - s->decimals = 3; - } - { - s->decimal_counter = 0; - } - { - s->number64 = 0; - } + goto st1082; +tr2676: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71240,11 +69443,11 @@ tr2662: p--; {goto st319;} } } - goto st962; -st962: + goto st1082; +st1082: if ( ++p == pe ) - goto _test_eof962; -case 962: + goto _test_eof1082; +case 1082: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71258,18 +69461,27 @@ case 962: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2665; - case 32: goto tr2665; - case 40: goto tr2666; - case 41: goto tr2667; - case 46: goto st1008; - case 2058: goto tr2670; - case 2107: goto tr2671; + case 9: goto tr2673; + case 32: goto tr2673; + case 40: goto tr2674; + case 41: goto tr2675; + case 68: goto tr2677; + case 72: goto tr2678; + case 77: goto tr2679; + case 83: goto st1101; + case 87: goto tr2681; + case 100: goto tr2677; + case 104: goto tr2678; + case 109: goto tr2679; + case 115: goto st1101; + case 119: goto tr2681; + case 2058: goto tr2682; + case 2107: goto tr2683; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2669; - goto tr2637; -tr2673: + goto tr2676; + goto tr2672; +tr2685: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -71277,8 +69489,8 @@ tr2673: } s->multiline = true; } - goto st963; -tr2674: + goto st1083; +tr2686: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -71286,13 +69498,13 @@ tr2674: } s->multiline = false; } - goto st963; -tr2675: + goto st1083; +tr2688: { s->line_counter++; } - goto st963; -tr2883: + goto st1083; +tr2771: { s->buffer[s->buffer_length++] = 0; @@ -71302,54 +69514,34 @@ tr2883: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 963; goto _out;} + {p++; cs = 1083; goto _out;} } } } { s->line_counter++; } - goto st963; -tr2665: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 59999) { - s->loc.s1 = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - goto st963; -tr2666: + goto st1083; +tr2673: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } + goto st1083; +tr2674: { - if (s->number64 <= 59999) { - s->loc.s1 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } @@ -71360,25 +69552,15 @@ tr2666: } s->multiline = true; } - goto st963; -tr2667: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } + goto st1083; +tr2675: { - if (s->number64 <= 59999) { - s->loc.s1 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } @@ -71389,78 +69571,58 @@ tr2667: } s->multiline = false; } - goto st963; -tr2670: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } + goto st1083; +tr2682: { - if (s->number64 <= 59999) { - s->loc.s1 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { s->line_counter++; } - goto st963; -tr2884: - { - s->number64_tmp = s->number64; - } + goto st1083; +tr2779: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { - if (s->number64 <= 59999) { - s->loc.s1 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } - goto st963; -tr2885: - { - s->number64_tmp = s->number64; - } + goto st1083; +tr2780: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { - if (s->number64 <= 59999) { - s->loc.s1 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } @@ -71471,28 +69633,23 @@ tr2885: } s->multiline = true; } - goto st963; -tr2886: - { - s->number64_tmp = s->number64; - } + goto st1083; +tr2781: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { - if (s->number64 <= 59999) { - s->loc.s1 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } @@ -71503,39 +69660,34 @@ tr2886: } s->multiline = false; } - goto st963; -tr2888: - { - s->number64_tmp = s->number64; - } + goto st1083; +tr2783: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { - if (s->number64 <= 59999) { - s->loc.s1 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { s->line_counter++; } - goto st963; -st963: + goto st1083; +st1083: if ( ++p == pe ) - goto _test_eof963; -case 963: + goto _test_eof1083; +case 1083: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71549,20 +69701,55 @@ case 963: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st963; - case 32: goto st963; - case 40: goto tr2673; - case 41: goto tr2674; - case 78: goto st964; - case 83: goto st1006; - case 2058: goto tr2675; - case 2107: goto tr2676; - } - goto tr2637; -st964: + case 9: goto st1083; + case 32: goto st1083; + case 40: goto tr2685; + case 41: goto tr2686; + case 2058: goto tr2688; + case 2107: goto tr2689; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2687; + goto tr2653; +tr2687: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1084; +tr2693: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1084; +st1084: if ( ++p == pe ) - goto _test_eof964; -case 964: + goto _test_eof1084; +case 1084: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71576,24 +69763,109 @@ case 964: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st965; - case 32: goto st965; - case 40: goto tr2678; - case 41: goto tr2679; - case 2058: goto tr2680; - case 2107: goto tr2681; - } - goto tr2637; -tr2678: + case 9: goto tr2690; + case 32: goto tr2690; + case 40: goto tr2691; + case 41: goto tr2692; + case 68: goto tr2694; + case 72: goto tr2695; + case 77: goto tr2696; + case 83: goto st1097; + case 87: goto tr2698; + case 100: goto tr2694; + case 104: goto tr2695; + case 109: goto tr2696; + case 115: goto st1097; + case 119: goto tr2698; + case 2058: goto tr2699; + case 2107: goto tr2700; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2693; + goto tr2672; +tr2702: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1085; +tr2703: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1085; +tr2705: + { + s->line_counter++; + } + goto st1085; +tr2756: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1085; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1085; +tr2690: + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1085; +tr2691: + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } - s->multiline = true; + s->multiline = true; + } + goto st1085; +tr2692: + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } - goto st965; -tr2679: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -71601,38 +69873,60 @@ tr2679: } s->multiline = false; } - goto st965; -tr2680: + goto st1085; +tr2699: + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } { s->line_counter++; } - goto st965; -tr2876: + goto st1085; +tr2764: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 965; goto _out;} - } + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} } } { - s->line_counter++; + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } - goto st965; -tr2877: + goto st1085; +tr2765: { - s->loc.lat_sign = -1; + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } - goto st965; -tr2878: { - s->loc.lat_sign = -1; + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } { if (s->multiline == true) { @@ -71641,10 +69935,25 @@ tr2878: } s->multiline = true; } - goto st965; -tr2879: + goto st1085; +tr2766: { - s->loc.lat_sign = -1; + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } { if (s->multiline == false) { @@ -71653,19 +69962,34 @@ tr2879: } s->multiline = false; } - goto st965; -tr2880: + goto st1085; +tr2768: { - s->loc.lat_sign = -1; + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } { s->line_counter++; } - goto st965; -st965: + goto st1085; +st1085: if ( ++p == pe ) - goto _test_eof965; -case 965: + goto _test_eof1085; +case 1085: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71679,17 +70003,17 @@ case 965: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st965; - case 32: goto st965; - case 40: goto tr2678; - case 41: goto tr2679; - case 2058: goto tr2680; - case 2107: goto tr2681; + case 9: goto st1085; + case 32: goto st1085; + case 40: goto tr2702; + case 41: goto tr2703; + case 2058: goto tr2705; + case 2107: goto tr2706; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2682; - goto tr2637; -tr2682: + goto tr2704; + goto tr2653; +tr2704: { s->number64 = 0; } @@ -71707,8 +70031,8 @@ tr2682: p--; {goto st319;} } } - goto st966; -tr2686: + goto st1086; +tr2710: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71723,11 +70047,11 @@ tr2686: p--; {goto st319;} } } - goto st966; -st966: + goto st1086; +st1086: if ( ++p == pe ) - goto _test_eof966; -case 966: + goto _test_eof1086; +case 1086: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71741,17 +70065,27 @@ case 966: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2683; - case 32: goto tr2683; - case 40: goto tr2684; - case 41: goto tr2685; - case 2058: goto tr2687; - case 2107: goto tr2688; + case 9: goto tr2707; + case 32: goto tr2707; + case 40: goto tr2708; + case 41: goto tr2709; + case 68: goto tr2711; + case 72: goto tr2712; + case 77: goto tr2713; + case 83: goto st1093; + case 87: goto tr2715; + case 100: goto tr2711; + case 104: goto tr2712; + case 109: goto tr2713; + case 115: goto st1093; + case 119: goto tr2715; + case 2058: goto tr2716; + case 2107: goto tr2717; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2686; - goto tr2637; -tr2690: + goto tr2710; + goto tr2672; +tr2719: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -71759,8 +70093,8 @@ tr2690: } s->multiline = true; } - goto st967; -tr2691: + goto st1087; +tr2720: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -71768,13 +70102,13 @@ tr2691: } s->multiline = false; } - goto st967; -tr2695: + goto st1087; +tr2722: { s->line_counter++; } - goto st967; -tr2874: + goto st1087; +tr2741: { s->buffer[s->buffer_length++] = 0; @@ -71784,30 +70118,34 @@ tr2874: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 967; goto _out;} + {p++; cs = 1087; goto _out;} } } } { s->line_counter++; } - goto st967; -tr2683: + goto st1087; +tr2707: { - if (s->number64 <= 180) { - s->loc.d2 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } - goto st967; -tr2684: + goto st1087; +tr2708: { - if (s->number64 <= 180) { - s->loc.d2 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } @@ -71818,13 +70156,15 @@ tr2684: } s->multiline = true; } - goto st967; -tr2685: + goto st1087; +tr2709: { - if (s->number64 <= 180) { - s->loc.d2 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } @@ -71835,24 +70175,123 @@ tr2685: } s->multiline = false; } - goto st967; -tr2687: + goto st1087; +tr2716: { - if (s->number64 <= 180) { - s->loc.d2 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { s->line_counter++; } - goto st967; -st967: + goto st1087; +tr2749: + { + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1087; +tr2750: + { + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1087; +tr2751: + { + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1087; +tr2753: + { + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + goto st1087; +st1087: if ( ++p == pe ) - goto _test_eof967; -case 967: + goto _test_eof1087; +case 1087: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71866,19 +70305,17 @@ case 967: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st967; - case 32: goto st967; - case 40: goto tr2690; - case 41: goto tr2691; - case 69: goto st972; - case 87: goto st999; - case 2058: goto tr2695; - case 2107: goto tr2696; + case 9: goto st1087; + case 32: goto st1087; + case 40: goto tr2719; + case 41: goto tr2720; + case 2058: goto tr2722; + case 2107: goto tr2723; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2692; - goto tr2637; -tr2692: + goto tr2721; + goto tr2653; +tr2721: { s->number64 = 0; } @@ -71896,8 +70333,8 @@ tr2692: p--; {goto st319;} } } - goto st968; -tr2700: + goto st1088; +tr2725: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71912,136 +70349,387 @@ tr2700: p--; {goto st319;} } } - goto st968; -st968: + goto st1088; +st1088: if ( ++p == pe ) - goto _test_eof968; -case 968: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto _test_eof1088; +case 1088: + switch( (*p) ) { + case 32: goto tr2724; + case 59: goto tr2724; + case 68: goto tr2726; + case 72: goto tr2727; + case 77: goto tr2728; + case 83: goto st1089; + case 87: goto tr2730; + case 100: goto tr2726; + case 104: goto tr2727; + case 109: goto tr2728; + case 115: goto st1089; + case 119: goto tr2730; + } + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2724; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2725; + } else + goto tr2724; + goto tr2672; +tr2724: + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr2697; - case 32: goto tr2697; - case 40: goto tr2698; - case 41: goto tr2699; - case 2058: goto tr2701; - case 2107: goto tr2702; + { + p--; {cs = stack[--top];goto _again;} } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2700; - goto tr2637; -tr2704: + goto st1517; +tr2738: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st969; -tr2705: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st969; -tr2707: { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st969; -tr2872: + goto st1517; +st1517: + if ( ++p == pe ) + goto _test_eof1517; +case 1517: + goto st0; +tr2726: + { if (s->number64 <= (UINT32_MAX / 86400)) { + s->number64 *= 86400; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1089; +tr2727: + { if (s->number64 <= (UINT32_MAX / 3600)) { + s->number64 *= 3600; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1089; +tr2728: + { if (s->number64 <= (UINT32_MAX / 60)) { + s->number64 *= 60; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1089; +tr2730: + { if (s->number64 <= (UINT32_MAX / 604800)) { + s->number64 *= 604800; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1089; +st1089: + if ( ++p == pe ) + goto _test_eof1089; +case 1089: + switch( (*p) ) { + case 32: goto tr2724; + case 59: goto tr2724; + } + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2724; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2731; + } else + goto tr2724; + goto tr2672; +tr2732: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 969; goto _out;} - } + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1090; +tr2731: + { + s->number64_tmp = s->number64; + } + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1090; +tr2739: + { + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} } } { - s->line_counter++; + s->number64_tmp = s->number64; + } + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1090; +st1090: + if ( ++p == pe ) + goto _test_eof1090; +case 1090: + switch( (*p) ) { + case 68: goto tr2733; + case 72: goto tr2734; + case 77: goto tr2735; + case 83: goto st1091; + case 87: goto tr2737; + case 100: goto tr2733; + case 104: goto tr2734; + case 109: goto tr2735; + case 115: goto st1091; + case 119: goto tr2737; + } + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2732; + goto tr2672; +tr2733: + { if (s->number64 <= (UINT32_MAX / 86400)) { + s->number64 *= 86400; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1091; +tr2734: + { if (s->number64 <= (UINT32_MAX / 3600)) { + s->number64 *= 3600; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1091; +tr2735: + { if (s->number64 <= (UINT32_MAX / 60)) { + s->number64 *= 60; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1091; +tr2737: + { if (s->number64 <= (UINT32_MAX / 604800)) { + s->number64 *= 604800; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1091; +st1091: + if ( ++p == pe ) + goto _test_eof1091; +case 1091: + switch( (*p) ) { + case 32: goto tr2738; + case 59: goto tr2738; + } + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2738; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2739; + } else + goto tr2738; + goto tr2672; +tr2723: + { + s->buffer_length = 0; } - goto st969; -tr2697: + goto st1092; +tr2740: { - if (s->number64 <= 59) { - s->loc.m2 = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } - goto st969; -tr2698: + goto st1092; +tr2717: { - if (s->number64 <= 59) { - s->loc.m2 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->buffer_length = 0; } - goto st969; -tr2699: + goto st1092; +tr2754: { - if (s->number64 <= 59) { - s->loc.m2 = (uint32_t)(s->number64); + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st969; -tr2701: { - if (s->number64 <= 59) { - s->loc.m2 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { - s->line_counter++; + s->buffer_length = 0; } - goto st969; -st969: + goto st1092; +st1092: if ( ++p == pe ) - goto _test_eof969; -case 969: + goto _test_eof1092; +case 1092: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr2741; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2740; + goto tr77; +tr2711: + { if (s->number64 <= (UINT32_MAX / 86400)) { + s->number64 *= 86400; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1093; +tr2712: + { if (s->number64 <= (UINT32_MAX / 3600)) { + s->number64 *= 3600; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1093; +tr2713: + { if (s->number64 <= (UINT32_MAX / 60)) { + s->number64 *= 60; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1093; +tr2715: + { if (s->number64 <= (UINT32_MAX / 604800)) { + s->number64 *= 604800; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1093; +st1093: + if ( ++p == pe ) + goto _test_eof1093; +case 1093: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72055,19 +70743,17 @@ case 969: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st969; - case 32: goto st969; - case 40: goto tr2704; - case 41: goto tr2705; - case 69: goto st972; - case 87: goto st999; - case 2058: goto tr2707; - case 2107: goto tr2708; + case 9: goto tr2707; + case 32: goto tr2707; + case 40: goto tr2708; + case 41: goto tr2709; + case 2058: goto tr2716; + case 2107: goto tr2717; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2706; - goto tr2637; -tr2713: + goto tr2742; + goto tr2672; +tr2743: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -72082,13 +70768,40 @@ tr2713: p--; {goto st319;} } } - goto st970; -tr2706: + goto st1094; +tr2742: { - s->decimals = 3; + s->number64_tmp = s->number64; } { - s->decimal_counter = 0; + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1094; +tr2752: + { + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + { + s->number64_tmp = s->number64; } { s->number64 = 0; @@ -72107,11 +70820,66 @@ tr2706: p--; {goto st319;} } } - goto st970; -st970: + goto st1094; +st1094: if ( ++p == pe ) - goto _test_eof970; -case 970: + goto _test_eof1094; +case 1094: + switch( (*p) ) { + case 68: goto tr2744; + case 72: goto tr2745; + case 77: goto tr2746; + case 83: goto st1095; + case 87: goto tr2748; + case 100: goto tr2744; + case 104: goto tr2745; + case 109: goto tr2746; + case 115: goto st1095; + case 119: goto tr2748; + } + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2743; + goto tr2672; +tr2744: + { if (s->number64 <= (UINT32_MAX / 86400)) { + s->number64 *= 86400; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1095; +tr2745: + { if (s->number64 <= (UINT32_MAX / 3600)) { + s->number64 *= 3600; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1095; +tr2746: + { if (s->number64 <= (UINT32_MAX / 60)) { + s->number64 *= 60; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1095; +tr2748: + { if (s->number64 <= (UINT32_MAX / 604800)) { + s->number64 *= 604800; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1095; +st1095: + if ( ++p == pe ) + goto _test_eof1095; +case 1095: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72125,311 +70893,283 @@ case 970: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2709; - case 32: goto tr2709; - case 40: goto tr2710; - case 41: goto tr2711; - case 46: goto st1001; - case 2058: goto tr2714; - case 2107: goto tr2715; + case 9: goto tr2749; + case 32: goto tr2749; + case 40: goto tr2750; + case 41: goto tr2751; + case 2058: goto tr2753; + case 2107: goto tr2754; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2713; - goto tr2637; -tr2717: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st971; -tr2718: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st971; -tr2719: - { - s->line_counter++; - } - goto st971; -tr2863: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 971; goto _out;} - } - } - } - { - s->line_counter++; - } - goto st971; -tr2709: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } + goto tr2752; + goto tr2672; +tr2706: { - if (s->number64 <= 59999) { - s->loc.s2 = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + s->buffer_length = 0; } - goto st971; -tr2710: + goto st1096; +tr2755: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } + goto st1096; +tr2700: { - if (s->number64 <= 59999) { - s->loc.s2 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->buffer_length = 0; } - goto st971; -tr2711: + goto st1096; +tr2769: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } { - if (s->number64 <= 59999) { - s->loc.s2 = (uint32_t)(s->number64); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st971; -tr2714: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } - { - if (s->number64 <= 59999) { - s->loc.s2 = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + goto st1096; +st1096: + if ( ++p == pe ) + goto _test_eof1096; +case 1096: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - } - { - s->line_counter++; - } - goto st971; -tr2864: - { - s->number64_tmp = s->number64; - } - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - { - if (s->number64 <= 59999) { - s->loc.s2 = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + if ( _widec == 2058 ) + goto tr2756; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2755; + goto tr77; +tr2694: + { if (s->number64 <= (UINT32_MAX / 86400)) { + s->number64 *= 86400; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1097; +tr2695: + { if (s->number64 <= (UINT32_MAX / 3600)) { + s->number64 *= 3600; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1097; +tr2696: + { if (s->number64 <= (UINT32_MAX / 60)) { + s->number64 *= 60; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1097; +tr2698: + { if (s->number64 <= (UINT32_MAX / 604800)) { + s->number64 *= 604800; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1097; +st1097: + if ( ++p == pe ) + goto _test_eof1097; +case 1097: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st971; -tr2865: - { - s->number64_tmp = s->number64; - } - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr2690; + case 32: goto tr2690; + case 40: goto tr2691; + case 41: goto tr2692; + case 2058: goto tr2699; + case 2107: goto tr2700; } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2757; + goto tr2672; +tr2758: { - if (s->number64 <= 59999) { - s->loc.s2 = (uint32_t)(s->number64); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st971; -tr2866: + goto st1098; +tr2757: { s->number64_tmp = s->number64; } { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } + s->number64 = 0; } { - if (s->number64 <= 59999) { - s->loc.s2 = (uint32_t)(s->number64); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } + goto st1098; +tr2767: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st971; -tr2868: { s->number64_tmp = s->number64; } { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } + s->number64 = 0; } { - if (s->number64 <= 59999) { - s->loc.s2 = (uint32_t)(s->number64); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } - { - s->line_counter++; - } - goto st971; -st971: + goto st1098; +st1098: if ( ++p == pe ) - goto _test_eof971; -case 971: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto _test_eof1098; +case 1098: + switch( (*p) ) { + case 68: goto tr2759; + case 72: goto tr2760; + case 77: goto tr2761; + case 83: goto st1099; + case 87: goto tr2763; + case 100: goto tr2759; + case 104: goto tr2760; + case 109: goto tr2761; + case 115: goto st1099; + case 119: goto tr2763; } - switch( _widec ) { - case 9: goto st971; - case 32: goto st971; - case 40: goto tr2717; - case 41: goto tr2718; - case 69: goto st972; - case 87: goto st999; - case 2058: goto tr2719; - case 2107: goto tr2720; - } - goto tr2637; -st972: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2758; + goto tr2672; +tr2759: + { if (s->number64 <= (UINT32_MAX / 86400)) { + s->number64 *= 86400; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1099; +tr2760: + { if (s->number64 <= (UINT32_MAX / 3600)) { + s->number64 *= 3600; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1099; +tr2761: + { if (s->number64 <= (UINT32_MAX / 60)) { + s->number64 *= 60; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1099; +tr2763: + { if (s->number64 <= (UINT32_MAX / 604800)) { + s->number64 *= 604800; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1099; +st1099: if ( ++p == pe ) - goto _test_eof972; -case 972: + goto _test_eof1099; +case 1099: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72443,96 +71183,133 @@ case 972: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st973; - case 32: goto st973; - case 40: goto tr2722; - case 41: goto tr2723; - case 2058: goto tr2724; - case 2107: goto tr2725; - } - goto tr2637; -tr2722: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st973; -tr2723: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + case 9: goto tr2764; + case 32: goto tr2764; + case 40: goto tr2765; + case 41: goto tr2766; + case 2058: goto tr2768; + case 2107: goto tr2769; } - goto st973; -tr2724: + if ( 48 <= _widec && _widec <= 57 ) + goto tr2767; + goto tr2672; +tr2689: { - s->line_counter++; + s->buffer_length = 0; } - goto st973; -tr2856: + goto st1100; +tr2770: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 973; goto _out;} - } + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } + goto st1100; +tr2683: { - s->line_counter++; - } - goto st973; -tr2857: - { - s->loc.long_sign = -1; + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } - goto st973; -tr2858: { - s->loc.long_sign = -1; + s->buffer_length = 0; } + goto st1100; +tr2784: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } - s->multiline = true; - } - goto st973; -tr2859: - { - s->loc.long_sign = -1; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st973; -tr2860: { - s->loc.long_sign = -1; + s->buffer_length = 0; } - { - s->line_counter++; + goto st1100; +st1100: + if ( ++p == pe ) + goto _test_eof1100; +case 1100: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st973; -st973: + if ( _widec == 2058 ) + goto tr2771; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2770; + goto tr77; +tr2677: + { if (s->number64 <= (UINT32_MAX / 86400)) { + s->number64 *= 86400; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1101; +tr2678: + { if (s->number64 <= (UINT32_MAX / 3600)) { + s->number64 *= 3600; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1101; +tr2679: + { if (s->number64 <= (UINT32_MAX / 60)) { + s->number64 *= 60; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1101; +tr2681: + { if (s->number64 <= (UINT32_MAX / 604800)) { + s->number64 *= 604800; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1101; +st1101: if ( ++p == pe ) - goto _test_eof973; -case 973: + goto _test_eof1101; +case 1101: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72546,25 +71323,17 @@ case 973: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st973; - case 32: goto st973; - case 40: goto tr2722; - case 41: goto tr2723; - case 45: goto st974; - case 2058: goto tr2724; - case 2107: goto tr2725; + case 9: goto tr2673; + case 32: goto tr2673; + case 40: goto tr2674; + case 41: goto tr2675; + case 2058: goto tr2682; + case 2107: goto tr2683; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2727; - goto tr2637; -st974: - if ( ++p == pe ) - goto _test_eof974; -case 974: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2728; - goto tr2637; -tr2733: + goto tr2772; + goto tr2672; +tr2773: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -72579,13 +71348,10 @@ tr2733: p--; {goto st319;} } } - goto st975; -tr2727: - { - s->decimals = 2; - } + goto st1102; +tr2772: { - s->decimal_counter = 0; + s->number64_tmp = s->number64; } { s->number64 = 0; @@ -72604,16 +71370,18 @@ tr2727: p--; {goto st319;} } } - goto st975; -tr2728: - { - s->loc.alt_sign = -1; - } + goto st1102; +tr2782: { - s->decimals = 2; + if (s->number64 + s->number64_tmp < UINT32_MAX) { + s->number64 += s->number64_tmp; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } { - s->decimal_counter = 0; + s->number64_tmp = s->number64; } { s->number64 = 0; @@ -72632,45 +71400,288 @@ tr2728: p--; {goto st319;} } } - goto st975; -st975: + goto st1102; +st1102: if ( ++p == pe ) - goto _test_eof975; -case 975: + goto _test_eof1102; +case 1102: + switch( (*p) ) { + case 68: goto tr2774; + case 72: goto tr2775; + case 77: goto tr2776; + case 83: goto st1103; + case 87: goto tr2778; + case 100: goto tr2774; + case 104: goto tr2775; + case 109: goto tr2776; + case 115: goto st1103; + case 119: goto tr2778; + } + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2773; + goto tr2672; +tr2774: + { if (s->number64 <= (UINT32_MAX / 86400)) { + s->number64 *= 86400; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1103; +tr2775: + { if (s->number64 <= (UINT32_MAX / 3600)) { + s->number64 *= 3600; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1103; +tr2776: + { if (s->number64 <= (UINT32_MAX / 60)) { + s->number64 *= 60; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1103; +tr2778: + { if (s->number64 <= (UINT32_MAX / 604800)) { + s->number64 *= 604800; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + goto st1103; +st1103: + if ( ++p == pe ) + goto _test_eof1103; +case 1103: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2729; - case 32: goto tr2729; - case 40: goto tr2730; - case 41: goto tr2731; - case 46: goto st995; - case 109: goto tr2734; - case 3082: goto tr2735; - case 3131: goto tr2736; - case 3338: goto tr2737; - case 3387: goto tr2737; - case 3594: goto tr2738; - case 3643: goto tr2739; + case 9: goto tr2779; + case 32: goto tr2779; + case 40: goto tr2780; + case 41: goto tr2781; + case 2058: goto tr2783; + case 2107: goto tr2784; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2733; - goto tr2637; -tr2741: + goto tr2782; + goto tr2672; +tr2671: + { + s->buffer_length = 0; + } + goto st1104; +tr2785: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1104; +tr2665: + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1104; +st1104: + if ( ++p == pe ) + goto _test_eof1104; +case 1104: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr2786; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2785; + goto tr77; +tr2659: + { + s->buffer_length = 0; + } + goto st1105; +tr2787: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1105; +tr2652: + { + rdata_tail += s->dname_tmp_length; + } + { + s->buffer_length = 0; + } + goto st1105; +st1105: + if ( ++p == pe ) + goto _test_eof1105; +case 1105: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr2788; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2787; + goto tr77; +tr2647: + { + s->buffer_length = 0; + } + goto st1106; +tr2789: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1106; +tr2641: + { + rdata_tail += s->dname_tmp_length; + } + { + s->buffer_length = 0; + } + goto st1106; +st1106: + if ( ++p == pe ) + goto _test_eof1106; +case 1106: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr2790; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2789; + goto tr77; +st1107: + if ( ++p == pe ) + goto _test_eof1107; +case 1107: + switch( (*p) ) { + case 32: goto tr77; + case 59: goto tr77; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr77; + } else if ( (*p) >= 9 ) + goto tr77; + goto tr2791; +tr2791: + { + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + { p--; {stack[top++] = 1108;goto st330;} } + goto st1108; +st1108: + if ( ++p == pe ) + goto _test_eof1108; +case 1108: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr2792; + case 32: goto tr2792; + case 40: goto tr2793; + case 41: goto tr2794; + case 2058: goto tr2795; + case 2107: goto tr2796; + } + goto tr77; +tr2799: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -72678,8 +71689,8 @@ tr2741: } s->multiline = true; } - goto st976; -tr2742: + goto st1109; +tr2800: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -72687,13 +71698,13 @@ tr2742: } s->multiline = false; } - goto st976; -tr2744: + goto st1109; +tr2801: { s->line_counter++; } - goto st976; -tr2843: + goto st1109; +tr2805: { s->buffer[s->buffer_length++] = 0; @@ -72703,58 +71714,40 @@ tr2843: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 976; goto _out;} + {p++; cs = 1109; goto _out;} } } } { s->line_counter++; } - goto st976; -tr2729: + goto st1109; +tr2792: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st976; -tr2730: + goto st1109; +tr2793: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } @@ -72765,27 +71758,18 @@ tr2730: } s->multiline = true; } - goto st976; -tr2731: + goto st1109; +tr2794: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } @@ -72796,356 +71780,213 @@ tr2731: } s->multiline = false; } - goto st976; -tr2735: + goto st1109; +tr2795: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { s->line_counter++; } - goto st976; -tr2844: - { - s->number64_tmp = s->number64; - } - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + goto st1109; +st1109: + if ( ++p == pe ) + goto _test_eof1109; +case 1109: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st976; -tr2845: - { - s->number64_tmp = s->number64; + switch( _widec ) { + case 9: goto st1109; + case 32: goto st1109; + case 40: goto tr2799; + case 41: goto tr2800; + case 2058: goto tr2801; + case 2107: goto tr2802; } + if ( _widec < 11 ) { + if ( _widec <= 8 ) + goto tr2797; + } else if ( _widec > 58 ) { + if ( 60 <= _widec ) + goto tr2797; + } else + goto tr2797; + goto tr77; +tr2797: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + { p--; {stack[top++] = 1110;goto st330;} } + goto st1110; +st1110: + if ( ++p == pe ) + goto _test_eof1110; +case 1110: + switch( (*p) ) { + case 32: goto tr2803; + case 59: goto tr2803; } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2803; + } else if ( (*p) >= 9 ) + goto tr2803; + goto tr77; +tr2803: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - s->multiline = true; - } - goto st976; -tr2846: - { - s->number64_tmp = s->number64; - } - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1518; +st1518: + if ( ++p == pe ) + goto _test_eof1518; +case 1518: + goto st0; +tr2802: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + s->buffer_length = 0; } - goto st976; -tr2849: + goto st1111; +tr2804: { - s->number64_tmp = s->number64; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } + goto st1111; +tr2796: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - s->line_counter++; + s->buffer_length = 0; } - goto st976; -st976: + goto st1111; +st1111: if ( ++p == pe ) - goto _test_eof976; -case 976: + goto _test_eof1111; +case 1111: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); if ( - !s->multiline ) _widec += 512; + s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + } else { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto st976; - case 32: goto st976; - case 40: goto tr2741; - case 41: goto tr2742; - case 3082: goto tr2744; - case 3131: goto tr2745; - case 3338: goto tr2746; - case 3387: goto tr2746; - case 3594: goto tr2747; - case 3643: goto tr2748; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2743; - goto tr2637; -tr2753: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } - } - goto st977; -tr2743: - { - s->decimals = 2; - } - { - s->decimal_counter = 0; } - { - s->number64 = 0; + if ( _widec == 2058 ) + goto tr2805; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2804; + goto tr77; +st1112: + if ( ++p == pe ) + goto _test_eof1112; +case 1112: + switch( (*p) ) { + case 42: goto tr2806; + case 92: goto tr2806; + case 95: goto tr2806; } + if ( (*p) < 64 ) { + if ( 45 <= (*p) && (*p) <= 57 ) + goto tr2806; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2806; + } else + goto tr2806; + goto tr77; +tr2806: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + s->dname = rdata_tail; } - goto st977; -st977: + { p--; {stack[top++] = 1113;goto st321;} } + goto st1113; +st1113: if ( ++p == pe ) - goto _test_eof977; -case 977: + goto _test_eof1113; +case 1113: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2749; - case 32: goto tr2749; - case 40: goto tr2750; - case 41: goto tr2751; - case 46: goto st991; - case 109: goto tr2754; - case 3082: goto tr2755; - case 3131: goto tr2756; - case 3338: goto tr2757; - case 3387: goto tr2757; - case 3594: goto tr2758; - case 3643: goto tr2759; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2753; - goto tr2637; -tr2761: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st978; -tr2762: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st978; -tr2764: - { - s->line_counter++; - } - goto st978; -tr2830: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 978; goto _out;} - } - } - } - { - s->line_counter++; - } - goto st978; -tr2749: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - goto st978; -tr2750: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + case 9: goto tr2807; + case 32: goto tr2807; + case 40: goto tr2808; + case 41: goto tr2809; + case 2058: goto tr2810; + case 2107: goto tr2811; } + goto tr77; +tr2813: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -73153,28 +71994,8 @@ tr2750: } s->multiline = true; } - goto st978; -tr2751: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } + goto st1114; +tr2814: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -73182,80 +72003,38 @@ tr2751: } s->multiline = false; } - goto st978; -tr2755: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } + goto st1114; +tr2816: { s->line_counter++; } - goto st978; -tr2831: - { - s->number64_tmp = s->number64; - } - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + goto st1114; +tr2820: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1114; goto _out;} + } } } - goto st978; -tr2832: { - s->number64_tmp = s->number64; + s->line_counter++; } + goto st1114; +tr2807: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } + rdata_tail += s->dname_tmp_length; } + goto st1114; +tr2808: { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { @@ -73264,103 +72043,154 @@ tr2832: } s->multiline = true; } - goto st978; -tr2833: + goto st1114; +tr2809: { - s->number64_tmp = s->number64; + rdata_tail += s->dname_tmp_length; } { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1114; +tr2810: { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + rdata_tail += s->dname_tmp_length; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + s->line_counter++; + } + goto st1114; +st1114: + if ( ++p == pe ) + goto _test_eof1114; +case 1114: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - s->multiline = false; + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st978; -tr2836: + switch( _widec ) { + case 9: goto st1114; + case 32: goto st1114; + case 40: goto tr2813; + case 41: goto tr2814; + case 42: goto tr2815; + case 92: goto tr2815; + case 95: goto tr2815; + case 2058: goto tr2816; + case 2107: goto tr2817; + } + if ( _widec < 64 ) { + if ( 45 <= _widec && _widec <= 57 ) + goto tr2815; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr2815; + } else + goto tr2815; + goto tr77; +tr2815: { - s->number64_tmp = s->number64; + s->dname = rdata_tail; } + { p--; {stack[top++] = 1115;goto st321;} } + goto st1115; +st1115: + if ( ++p == pe ) + goto _test_eof1115; +case 1115: + switch( (*p) ) { + case 32: goto tr2818; + case 59: goto tr2818; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2818; + } else if ( (*p) >= 9 ) + goto tr2818; + goto tr77; +tr2818: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } + rdata_tail += s->dname_tmp_length; } { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {cs = stack[--top];goto _again;} + } + goto st1519; +st1519: + if ( ++p == pe ) + goto _test_eof1519; +case 1519: + goto st0; +tr2817: + { + s->buffer_length = 0; + } + goto st1116; +tr2819: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } + goto st1116; +tr2811: + { + rdata_tail += s->dname_tmp_length; + } { - s->line_counter++; + s->buffer_length = 0; } - goto st978; -st978: + goto st1116; +st1116: if ( ++p == pe ) - goto _test_eof978; -case 978: + goto _test_eof1116; +case 1116: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); if ( - !s->multiline ) _widec += 512; + s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + } else { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto st978; - case 32: goto st978; - case 40: goto tr2761; - case 41: goto tr2762; - case 3082: goto tr2764; - case 3131: goto tr2765; - case 3338: goto tr2746; - case 3387: goto tr2746; - case 3594: goto tr2766; - case 3643: goto tr2767; + if ( _widec == 2058 ) + goto tr2820; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2819; + goto tr77; +st1117: + if ( ++p == pe ) + goto _test_eof1117; +case 1117: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2821; + goto tr2653; +tr2821: + { + s->number64 = 0; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2763; - goto tr2637; -tr2772: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -73375,17 +72205,8 @@ tr2772: p--; {goto st319;} } } - goto st979; -tr2763: - { - s->decimals = 2; - } - { - s->decimal_counter = 0; - } - { - s->number64 = 0; - } + goto st1118; +tr2825: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -73400,45 +72221,35 @@ tr2763: p--; {goto st319;} } } - goto st979; -st979: + goto st1118; +st1118: if ( ++p == pe ) - goto _test_eof979; -case 979: + goto _test_eof1118; +case 1118: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2768; - case 32: goto tr2768; - case 40: goto tr2769; - case 41: goto tr2770; - case 46: goto st987; - case 109: goto tr2773; - case 3082: goto tr2774; - case 3131: goto tr2775; - case 3338: goto tr2776; - case 3387: goto tr2776; - case 3594: goto tr2777; - case 3643: goto tr2778; + case 9: goto tr2822; + case 32: goto tr2822; + case 40: goto tr2823; + case 41: goto tr2824; + case 2058: goto tr2826; + case 2107: goto tr2827; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2772; - goto tr2637; -tr2780: + goto tr2825; + goto tr2653; +tr2829: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -73446,8 +72257,8 @@ tr2780: } s->multiline = true; } - goto st980; -tr2781: + goto st1119; +tr2830: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -73455,13 +72266,13 @@ tr2781: } s->multiline = false; } - goto st980; -tr2783: + goto st1119; +tr2832: { s->line_counter++; } - goto st980; -tr2817: + goto st1119; +tr2836: { s->buffer[s->buffer_length++] = 0; @@ -73471,54 +72282,34 @@ tr2817: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 980; goto _out;} + {p++; cs = 1119; goto _out;} } } } { s->line_counter++; } - goto st980; -tr2768: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - goto st980; -tr2769: + goto st1119; +tr2822: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } + goto st1119; +tr2823: { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } @@ -73529,25 +72320,15 @@ tr2769: } s->multiline = true; } - goto st980; -tr2770: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } + goto st1119; +tr2824: { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } @@ -73558,229 +72339,188 @@ tr2770: } s->multiline = false; } - goto st980; -tr2774: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } + goto st1119; +tr2826: { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { s->line_counter++; } - goto st980; -tr2818: - { - s->number64_tmp = s->number64; - } - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - goto st980; -tr2819: - { - s->number64_tmp = s->number64; - } - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + goto st1119; +st1119: + if ( ++p == pe ) + goto _test_eof1119; +case 1119: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + switch( _widec ) { + case 9: goto st1119; + case 32: goto st1119; + case 40: goto tr2829; + case 41: goto tr2830; + case 42: goto tr2831; + case 92: goto tr2831; + case 95: goto tr2831; + case 2058: goto tr2832; + case 2107: goto tr2833; } - goto st980; -tr2820: + if ( _widec < 64 ) { + if ( 45 <= _widec && _widec <= 57 ) + goto tr2831; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr2831; + } else + goto tr2831; + goto tr77; +tr2831: { - s->number64_tmp = s->number64; + s->dname = rdata_tail; } - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } + { p--; {stack[top++] = 1120;goto st321;} } + goto st1120; +st1120: + if ( ++p == pe ) + goto _test_eof1120; +case 1120: + switch( (*p) ) { + case 32: goto tr2834; + case 59: goto tr2834; } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2834; + } else if ( (*p) >= 9 ) + goto tr2834; + goto tr77; +tr2834: { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + rdata_tail += s->dname_tmp_length; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st980; -tr2823: + goto st1520; +st1520: + if ( ++p == pe ) + goto _test_eof1520; +case 1520: + goto st0; +tr2833: { - s->number64_tmp = s->number64; + s->buffer_length = 0; } + goto st1121; +tr2835: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } + goto st1121; +tr2827: { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - s->line_counter++; + s->buffer_length = 0; } - goto st980; -st980: + goto st1121; +st1121: if ( ++p == pe ) - goto _test_eof980; -case 980: + goto _test_eof1121; +case 1121: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); if ( - !s->multiline ) _widec += 512; + s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + } else { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } - switch( _widec ) { - case 9: goto st980; - case 32: goto st980; - case 40: goto tr2780; - case 41: goto tr2781; - case 3082: goto tr2783; - case 3131: goto tr2784; - case 3338: goto tr2746; - case 3387: goto tr2746; - case 3594: goto tr2785; - case 3643: goto tr2786; + if ( _widec == 2058 ) + goto tr2836; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2835; + goto tr77; +st1122: + if ( ++p == pe ) + goto _test_eof1122; +case 1122: + switch( (*p) ) { + case 32: goto tr2838; + case 59: goto tr2838; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2782; - goto tr2637; -tr2791: + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2838; + } else if ( (*p) >= 9 ) + goto tr2838; + goto tr2837; +tr2847: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st981; -tr2782: - { - s->decimals = 2; - } - { - s->decimal_counter = 0; - } + { p--; {stack[top++] = 1123;goto st330;} } + goto st1123; +tr2837: { - s->number64 = 0; + s->long_string = true; } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st981; -st981: + { p--; {stack[top++] = 1123;goto st330;} } + goto st1123; +st1123: if ( ++p == pe ) - goto _test_eof981; -case 981: + goto _test_eof1123; +case 1123: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73798,23 +72538,19 @@ case 981: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2787; - case 32: goto tr2787; - case 40: goto tr2788; - case 41: goto tr2789; - case 46: goto st984; - case 109: goto tr2787; - case 3082: goto tr2792; - case 3131: goto tr2793; - case 3338: goto tr2794; - case 3387: goto tr2794; - case 3594: goto tr2795; - case 3643: goto tr2796; + case 9: goto tr2839; + case 32: goto tr2839; + case 40: goto tr2840; + case 41: goto tr2841; + case 3082: goto tr2842; + case 3131: goto tr2843; + case 3338: goto tr2844; + case 3387: goto tr2844; + case 3594: goto tr2845; + case 3643: goto tr2846; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2791; - goto tr2637; -tr2798: + goto tr2838; +tr2849: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -73822,8 +72558,8 @@ tr2798: } s->multiline = true; } - goto st982; -tr2799: + goto st1124; +tr2850: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -73831,13 +72567,13 @@ tr2799: } s->multiline = false; } - goto st982; -tr2800: + goto st1124; +tr2851: { s->line_counter++; } - goto st982; -tr2805: + goto st1124; +tr2857: { s->buffer[s->buffer_length++] = 0; @@ -73847,165 +72583,40 @@ tr2805: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 982; goto _out;} + {p++; cs = 1124; goto _out;} } } } { s->line_counter++; } - goto st982; -tr2787: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - goto st982; -tr2788: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st982; -tr2789: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st982; -tr2792: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - { - s->line_counter++; - } - goto st982; -tr2806: - { - s->number64_tmp = s->number64; - } + goto st1124; +tr2839: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } - goto st982; -tr2807: - { - s->number64_tmp = s->number64; - } + goto st1124; +tr2840: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } @@ -74016,28 +72627,18 @@ tr2807: } s->multiline = true; } - goto st982; -tr2808: - { - s->number64_tmp = s->number64; - } + goto st1124; +tr2841: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } @@ -74048,39 +72649,29 @@ tr2808: } s->multiline = false; } - goto st982; -tr2810: - { - s->number64_tmp = s->number64; - } + goto st1124; +tr2842: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { s->line_counter++; } - goto st982; -st982: + goto st1124; +st1124: if ( ++p == pe ) - goto _test_eof982; -case 982: + goto _test_eof1124; +case 1124: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74098,87 +72689,60 @@ case 982: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st982; - case 32: goto st982; - case 40: goto tr2798; - case 41: goto tr2799; - case 3082: goto tr2800; - case 3131: goto tr2801; - case 3338: goto tr2746; - case 3387: goto tr2746; - case 3594: goto tr2802; - case 3643: goto tr2803; - } - goto tr2637; -tr2801: + case 9: goto st1124; + case 32: goto st1124; + case 40: goto tr2849; + case 41: goto tr2850; + case 3082: goto tr2851; + case 3131: goto tr2852; + case 3338: goto tr2853; + case 3387: goto tr2853; + case 3594: goto tr2854; + case 3643: goto tr2855; + } + if ( _widec < 11 ) { + if ( _widec <= 8 ) + goto tr2847; + } else if ( _widec > 58 ) { + if ( 60 <= _widec ) + goto tr2847; + } else + goto tr2847; + goto tr2838; +tr2852: { s->buffer_length = 0; } - goto st983; -tr2804: + goto st1125; +tr2856: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st983; -tr2793: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - { - s->buffer_length = 0; - } - goto st983; -tr2811: - { - s->number64_tmp = s->number64; - } + goto st1125; +tr2843: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st983; -st983: + goto st1125; +st1125: if ( ++p == pe ) - goto _test_eof983; -case 983: + goto _test_eof1125; +case 1125: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -74195,866 +72759,669 @@ case 983: } else { _widec = (short)(1664 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr2805; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2804; - goto tr2637; -tr2737: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1533; -tr2746: - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1533; -tr2757: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1533; -tr2776: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} + s->multiline ) _widec += 256; } - goto st1533; -tr2794: + if ( _widec == 2058 ) + goto tr2857; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2856; + goto tr2838; +tr2844: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + s->long_string = false; } { p--; {cs = stack[--top];goto _again;} } - goto st1533; -tr2812: + goto st1521; +tr2853: { - s->number64_tmp = s->number64; + s->long_string = false; } { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1521; +st1521: + if ( ++p == pe ) + goto _test_eof1521; +case 1521: + goto st0; +tr2845: { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + s->line_counter++; + } + { + s->long_string = false; } { p--; {cs = stack[--top];goto _again;} } - goto st1533; -tr2825: + goto st1522; +tr2854: { - s->number64_tmp = s->number64; + s->line_counter++; } { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + s->long_string = false; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1522; +st1522: + if ( ++p == pe ) + goto _test_eof1522; +case 1522: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + switch( _widec ) { + case 9: goto st1124; + case 32: goto st1124; + case 40: goto tr2849; + case 41: goto tr2850; + case 3082: goto tr2851; + case 3131: goto tr2852; + case 3338: goto tr2853; + case 3387: goto tr2853; + case 3594: goto tr2854; + case 3643: goto tr2855; + } + if ( _widec < 11 ) { + if ( _widec <= 8 ) + goto tr2847; + } else if ( _widec > 58 ) { + if ( 60 <= _widec ) + goto tr2847; + } else + goto tr2847; + goto tr2838; +tr2846: { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + s->buffer_length = 0; + } + { + s->long_string = false; } { p--; {cs = stack[--top];goto _again;} } - goto st1533; -tr2838: + goto st1523; +tr2855: { - s->number64_tmp = s->number64; + s->buffer_length = 0; } { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + s->long_string = false; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1523; +st1523: + if ( ++p == pe ) + goto _test_eof1523; +case 1523: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr2857; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2856; + goto tr2838; +st1126: + if ( ++p == pe ) + goto _test_eof1126; +case 1126: + if ( (*p) == 46 ) + goto tr2858; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2858; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2858; + } else + goto tr2858; + goto tr2630; +tr2860: { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st1127; +tr2858: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1533; -tr2851: - { - s->number64_tmp = s->number64; + s->buffer_length = 0; } { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st1127; +st1127: + if ( ++p == pe ) + goto _test_eof1127; +case 1127: + switch( (*p) ) { + case 32: goto tr2859; + case 46: goto tr2860; + case 59: goto tr2859; + } + if ( (*p) < 48 ) { + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2859; + } else if ( (*p) >= 9 ) + goto tr2859; + } else if ( (*p) > 58 ) { + if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2860; + } else if ( (*p) >= 65 ) + goto tr2860; + } else + goto tr2860; + goto tr2630; +tr2859: { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } } { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } { p--; {cs = stack[--top];goto _again;} } - goto st1533; -st1533: + goto st1524; +st1524: if ( ++p == pe ) - goto _test_eof1533; -case 1533: + goto _test_eof1524; +case 1524: goto st0; -tr2802: +st1128: + if ( ++p == pe ) + goto _test_eof1128; +case 1128: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2862; + goto tr2861; +tr2866: { - s->line_counter++; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } + goto st1129; +tr2862: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + memset(&(s->loc), 0, sizeof(s->loc)); + // Defaults. + s->loc.siz = 100; + s->loc.vp = 1000; + s->loc.hp = 1000000; + s->loc.lat_sign = 1; + s->loc.long_sign = 1; + s->loc.alt_sign = 1; } { - p--; {cs = stack[--top];goto _again;} + s->number64 = 0; } - goto st1534; -tr2795: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1129; +st1129: + if ( ++p == pe ) + goto _test_eof1129; +case 1129: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr2863; + case 32: goto tr2863; + case 40: goto tr2864; + case 41: goto tr2865; + case 2058: goto tr2867; + case 2107: goto tr2868; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2866; + goto tr2861; +tr2870: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st1130; +tr2871: { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1130; +tr2875: { s->line_counter++; } + goto st1130; +tr3118: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1130; goto _out;} + } + } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1534; -tr2813: + goto st1130; +tr2863: { - s->number64_tmp = s->number64; + if (s->number64 <= 90) { + s->loc.d1 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } + goto st1130; +tr2864: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->number64 <= 90) { + s->loc.d1 = (uint32_t)(s->number64); } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1130; +tr2865: + { + if (s->number64 <= 90) { + s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->line_counter++; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st1130; +tr2867: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + if (s->number64 <= 90) { + s->loc.d1 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1534; -st1534: + goto st1130; +st1130: if ( ++p == pe ) - goto _test_eof1534; -case 1534: + goto _test_eof1130; +case 1130: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st982; - case 32: goto st982; - case 40: goto tr2798; - case 41: goto tr2799; - case 3082: goto tr2800; - case 3131: goto tr2801; - case 3338: goto tr2746; - case 3387: goto tr2746; - case 3594: goto tr2802; - case 3643: goto tr2803; - } - goto tr2637; -tr2803: - { - s->buffer_length = 0; + case 9: goto st1130; + case 32: goto st1130; + case 40: goto tr2870; + case 41: goto tr2871; + case 78: goto st1135; + case 83: goto st1177; + case 2058: goto tr2875; + case 2107: goto tr2876; } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2872; + goto tr2861; +tr2872: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + s->number64 = 0; } { - p--; {cs = stack[--top];goto _again;} + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } - goto st1535; -tr2796: + goto st1131; +tr2880: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } + goto st1131; +st1131: + if ( ++p == pe ) + goto _test_eof1131; +case 1131: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr2877; + case 32: goto tr2877; + case 40: goto tr2878; + case 41: goto tr2879; + case 2058: goto tr2881; + case 2107: goto tr2882; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2880; + goto tr2861; +tr2884: { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st1132; +tr2885: { - s->buffer_length = 0; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st1132; +tr2887: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + s->line_counter++; } + goto st1132; +tr3116: { - p--; {cs = stack[--top];goto _again;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1132; goto _out;} + } + } } - goto st1535; -tr2814: { - s->number64_tmp = s->number64; + s->line_counter++; } + goto st1132; +tr2877: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->number64 <= 59) { + s->loc.m1 = (uint32_t)(s->number64); } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } + goto st1132; +tr2878: { - if (s->number64 <= 9000000000ULL) { - s->loc.vp = s->number64; + if (s->number64 <= 59) { + s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } + goto st1132; +tr2879: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + if (s->number64 <= 59) { + s->loc.m1 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} - } - goto st1535; -st1535: - if ( ++p == pe ) - goto _test_eof1535; -case 1535: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->multiline = false; + } + goto st1132; +tr2881: + { + if (s->number64 <= 59) { + s->loc.m1 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2805; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2804; - goto tr2637; -st984: + { + s->line_counter++; + } + goto st1132; +st1132: if ( ++p == pe ) - goto _test_eof984; -case 984: + goto _test_eof1132; +case 1132: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2806; - case 32: goto tr2806; - case 40: goto tr2807; - case 41: goto tr2808; - case 109: goto tr2806; - case 3082: goto tr2810; - case 3131: goto tr2811; - case 3338: goto tr2812; - case 3387: goto tr2812; - case 3594: goto tr2813; - case 3643: goto tr2814; + case 9: goto st1132; + case 32: goto st1132; + case 40: goto tr2884; + case 41: goto tr2885; + case 78: goto st1135; + case 83: goto st1177; + case 2058: goto tr2887; + case 2107: goto tr2888; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2809; - goto tr2637; -tr2809: - { - s->number64_tmp = s->number64; - } - { - s->number64 = 0; - } + goto tr2886; + goto tr2861; +tr2893: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75069,11 +73436,17 @@ tr2809: p--; {goto st319;} } } + goto st1133; +tr2886: { - s->decimal_counter++; + s->decimals = 3; + } + { + s->decimal_counter = 0; + } + { + s->number64 = 0; } - goto st985; -tr2815: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75088,59 +73461,77 @@ tr2815: p--; {goto st319;} } } - { - s->decimal_counter++; - } - goto st985; -st985: + goto st1133; +st1133: if ( ++p == pe ) - goto _test_eof985; -case 985: + goto _test_eof1133; +case 1133: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2787; - case 32: goto tr2787; - case 40: goto tr2788; - case 41: goto tr2789; - case 109: goto tr2787; - case 3082: goto tr2792; - case 3131: goto tr2793; - case 3338: goto tr2794; - case 3387: goto tr2794; - case 3594: goto tr2795; - case 3643: goto tr2796; + case 9: goto tr2889; + case 32: goto tr2889; + case 40: goto tr2890; + case 41: goto tr2891; + case 46: goto st1179; + case 2058: goto tr2894; + case 2107: goto tr2895; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2815; - goto tr2637; -tr2784: + goto tr2893; + goto tr2861; +tr2897: { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st986; -tr2816: + goto st1134; +tr2898: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } - goto st986; -tr2775: + goto st1134; +tr2899: + { + s->line_counter++; + } + goto st1134; +tr3107: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1134; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1134; +tr2889: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75154,21 +73545,73 @@ tr2775: } } { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; + if (s->number64 <= 59999) { + s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } + goto st1134; +tr2890: { - s->buffer_length = 0; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } } - goto st986; -tr2824: { - s->number64_tmp = s->number64; + if (s->number64 <= 59999) { + s->loc.s1 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1134; +tr2891: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= 59999) { + s->loc.s1 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st1134; +tr2894: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75182,79 +73625,21 @@ tr2824: } } { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; + if (s->number64 <= 59999) { + s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - { - s->buffer_length = 0; - } - goto st986; -st986: - if ( ++p == pe ) - goto _test_eof986; -case 986: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr2817; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2816; - goto tr2637; -tr2785: { s->line_counter++; } + goto st1134; +tr3108: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} + s->number64_tmp = s->number64; } - goto st1536; -tr2777: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75268,47 +73653,15 @@ tr2777: } } { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; + if (s->number64 <= 59999) { + s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - { - s->line_counter++; - } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1536; -tr2826: + goto st1134; +tr3109: { s->number64_tmp = s->number64; } @@ -75325,116 +73678,25 @@ tr2826: } } { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; + if (s->number64 <= 59999) { + s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->line_counter++; - } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1536; -st1536: - if ( ++p == pe ) - goto _test_eof1536; -case 1536: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto st980; - case 32: goto st980; - case 40: goto tr2780; - case 41: goto tr2781; - case 3082: goto tr2783; - case 3131: goto tr2784; - case 3338: goto tr2746; - case 3387: goto tr2746; - case 3594: goto tr2785; - case 3643: goto tr2786; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2782; - goto tr2637; -tr2786: - { - s->buffer_length = 0; - } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + s->multiline = true; } + goto st1134; +tr3110: { - p--; {cs = stack[--top];goto _again;} + s->number64_tmp = s->number64; } - goto st1537; -tr2778: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75448,47 +73710,22 @@ tr2778: } } { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; + if (s->number64 <= 59999) { + s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; - } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1537; -tr2827: + goto st1134; +tr3112: { s->number64_tmp = s->number64; } @@ -75505,756 +73742,553 @@ tr2827: } } { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; + if (s->number64 <= 59999) { + s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; - } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1537; -st1537: + goto st1134; +st1134: if ( ++p == pe ) - goto _test_eof1537; -case 1537: + goto _test_eof1134; +case 1134: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2817; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2816; - goto tr2637; -st987: + switch( _widec ) { + case 9: goto st1134; + case 32: goto st1134; + case 40: goto tr2897; + case 41: goto tr2898; + case 78: goto st1135; + case 83: goto st1177; + case 2058: goto tr2899; + case 2107: goto tr2900; + } + goto tr2861; +st1135: if ( ++p == pe ) - goto _test_eof987; -case 987: + goto _test_eof1135; +case 1135: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2818; - case 32: goto tr2818; - case 40: goto tr2819; - case 41: goto tr2820; - case 109: goto tr2822; - case 3082: goto tr2823; - case 3131: goto tr2824; - case 3338: goto tr2825; - case 3387: goto tr2825; - case 3594: goto tr2826; - case 3643: goto tr2827; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2821; - goto tr2637; -tr2821: - { - s->number64_tmp = s->number64; + case 9: goto st1136; + case 32: goto st1136; + case 40: goto tr2902; + case 41: goto tr2903; + case 2058: goto tr2904; + case 2107: goto tr2905; } + goto tr2861; +tr2902: { - s->number64 = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } + goto st1136; +tr2903: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1136; +tr2904: { - s->decimal_counter++; + s->line_counter++; } - goto st988; -tr2828: + goto st1136; +tr3100: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1136; goto _out;} + } } } { - s->decimal_counter++; - } - goto st988; -st988: - if ( ++p == pe ) - goto _test_eof988; -case 988: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + s->line_counter++; } - switch( _widec ) { - case 9: goto tr2768; - case 32: goto tr2768; - case 40: goto tr2769; - case 41: goto tr2770; - case 109: goto tr2773; - case 3082: goto tr2774; - case 3131: goto tr2775; - case 3338: goto tr2776; - case 3387: goto tr2776; - case 3594: goto tr2777; - case 3643: goto tr2778; + goto st1136; +tr3101: + { + s->loc.lat_sign = -1; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2828; - goto tr2637; -tr2773: + goto st1136; +tr3102: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } + s->loc.lat_sign = -1; } { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } - goto st989; -tr2822: + goto st1136; +tr3103: { - s->number64_tmp = s->number64; + s->loc.lat_sign = -1; } { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; + } + goto st1136; +tr3104: + { + s->loc.lat_sign = -1; } { - if (s->number64 <= 9000000000ULL) { - s->loc.hp = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } + s->line_counter++; } - goto st989; -st989: + goto st1136; +st1136: if ( ++p == pe ) - goto _test_eof989; -case 989: + goto _test_eof1136; +case 1136: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st980; - case 32: goto st980; - case 40: goto tr2780; - case 41: goto tr2781; - case 3082: goto tr2783; - case 3131: goto tr2784; - case 3338: goto tr2746; - case 3387: goto tr2746; - case 3594: goto tr2785; - case 3643: goto tr2786; - } - goto tr2637; -tr2765: - { - s->buffer_length = 0; - } - goto st990; -tr2829: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st990; -tr2756: - { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); - p--; {goto st319;} - } - } - { - s->buffer_length = 0; + case 9: goto st1136; + case 32: goto st1136; + case 40: goto tr2902; + case 41: goto tr2903; + case 2058: goto tr2904; + case 2107: goto tr2905; } - goto st990; -tr2837: + if ( 48 <= _widec && _widec <= 57 ) + goto tr2906; + goto tr2861; +tr2906: { - s->number64_tmp = s->number64; + s->number64 = 0; } { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } + goto st1137; +tr2910: { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_BAD_NUMBER); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } - { - s->buffer_length = 0; - } - goto st990; -st990: + goto st1137; +st1137: if ( ++p == pe ) - goto _test_eof990; -case 990: + goto _test_eof1137; +case 1137: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2830; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2829; - goto tr2637; -tr2766: - { - s->line_counter++; - } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} + switch( _widec ) { + case 9: goto tr2907; + case 32: goto tr2907; + case 40: goto tr2908; + case 41: goto tr2909; + case 2058: goto tr2911; + case 2107: goto tr2912; } - goto st1538; -tr2758: + if ( 48 <= _widec && _widec <= 57 ) + goto tr2910; + goto tr2861; +tr2914: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st1138; +tr2915: { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1138; +tr2919: { s->line_counter++; } + goto st1138; +tr3098: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1138; goto _out;} + } + } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1538; -tr2839: + goto st1138; +tr2907: { - s->number64_tmp = s->number64; + if (s->number64 <= 180) { + s->loc.d2 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } + goto st1138; +tr2908: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->number64 <= 180) { + s->loc.d2 = (uint32_t)(s->number64); } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1138; +tr2909: + { + if (s->number64 <= 180) { + s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->line_counter++; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st1138; +tr2911: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + if (s->number64 <= 180) { + s->loc.d2 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1538; -st1538: + goto st1138; +st1138: if ( ++p == pe ) - goto _test_eof1538; -case 1538: + goto _test_eof1138; +case 1138: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st978; - case 32: goto st978; - case 40: goto tr2761; - case 41: goto tr2762; - case 3082: goto tr2764; - case 3131: goto tr2765; - case 3338: goto tr2746; - case 3387: goto tr2746; - case 3594: goto tr2766; - case 3643: goto tr2767; + case 9: goto st1138; + case 32: goto st1138; + case 40: goto tr2914; + case 41: goto tr2915; + case 69: goto st1143; + case 87: goto st1170; + case 2058: goto tr2919; + case 2107: goto tr2920; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2763; - goto tr2637; -tr2767: - { - s->buffer_length = 0; - } + goto tr2916; + goto tr2861; +tr2916: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + s->number64 = 0; } { - p--; {cs = stack[--top];goto _again;} + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } - goto st1539; -tr2759: + goto st1139; +tr2924: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } + goto st1139; +st1139: + if ( ++p == pe ) + goto _test_eof1139; +case 1139: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr2921; + case 32: goto tr2921; + case 40: goto tr2922; + case 41: goto tr2923; + case 2058: goto tr2925; + case 2107: goto tr2926; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2924; + goto tr2861; +tr2928: { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; - } else { - WARN(ZS_BAD_NUMBER); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st1140; +tr2929: { - s->buffer_length = 0; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st1140; +tr2931: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + s->line_counter++; } + goto st1140; +tr3096: { - p--; {cs = stack[--top];goto _again;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1140; goto _out;} + } + } } - goto st1539; -tr2840: { - s->number64_tmp = s->number64; + s->line_counter++; } + goto st1140; +tr2921: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); + if (s->number64 <= 59) { + s->loc.m2 = (uint32_t)(s->number64); } else { - WARN(ZS_FLOAT_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } + goto st1140; +tr2922: { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; + if (s->number64 <= 59) { + s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } + goto st1140; +tr2923: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + if (s->number64 <= 59) { + s->loc.m2 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} - } - goto st1539; -st1539: - if ( ++p == pe ) - goto _test_eof1539; -case 1539: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->multiline = false; + } + goto st1140; +tr2925: + { + if (s->number64 <= 59) { + s->loc.m2 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2830; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2829; - goto tr2637; -st991: + { + s->line_counter++; + } + goto st1140; +st1140: if ( ++p == pe ) - goto _test_eof991; -case 991: + goto _test_eof1140; +case 1140: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2831; - case 32: goto tr2831; - case 40: goto tr2832; - case 41: goto tr2833; - case 109: goto tr2835; - case 3082: goto tr2836; - case 3131: goto tr2837; - case 3338: goto tr2838; - case 3387: goto tr2838; - case 3594: goto tr2839; - case 3643: goto tr2840; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2834; - goto tr2637; -tr2834: - { - s->number64_tmp = s->number64; - } - { - s->number64 = 0; + case 9: goto st1140; + case 32: goto st1140; + case 40: goto tr2928; + case 41: goto tr2929; + case 69: goto st1143; + case 87: goto st1170; + case 2058: goto tr2931; + case 2107: goto tr2932; } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2930; + goto tr2861; +tr2937: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76269,11 +74303,17 @@ tr2834: p--; {goto st319;} } } + goto st1141; +tr2930: { - s->decimal_counter++; + s->decimals = 3; + } + { + s->decimal_counter = 0; + } + { + s->number64 = 0; } - goto st992; -tr2841: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76288,47 +74328,77 @@ tr2841: p--; {goto st319;} } } - { - s->decimal_counter++; - } - goto st992; -st992: + goto st1141; +st1141: if ( ++p == pe ) - goto _test_eof992; -case 992: + goto _test_eof1141; +case 1141: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2749; - case 32: goto tr2749; - case 40: goto tr2750; - case 41: goto tr2751; - case 109: goto tr2754; - case 3082: goto tr2755; - case 3131: goto tr2756; - case 3338: goto tr2757; - case 3387: goto tr2757; - case 3594: goto tr2758; - case 3643: goto tr2759; + case 9: goto tr2933; + case 32: goto tr2933; + case 40: goto tr2934; + case 41: goto tr2935; + case 46: goto st1172; + case 2058: goto tr2938; + case 2107: goto tr2939; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2841; - goto tr2637; -tr2754: + goto tr2937; + goto tr2861; +tr2941: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1142; +tr2942: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1142; +tr2943: + { + s->line_counter++; + } + goto st1142; +tr3087: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1142; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1142; +tr2933: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76342,18 +74412,15 @@ tr2754: } } { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; + if (s->number64 <= 59999) { + s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - goto st993; -tr2835: - { - s->number64_tmp = s->number64; - } + goto st1142; +tr2934: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76367,60 +74434,51 @@ tr2835: } } { - if (s->number64 <= 9000000000ULL) { - s->loc.siz = s->number64; + if (s->number64 <= 59999) { + s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - goto st993; -st993: - if ( ++p == pe ) - goto _test_eof993; -case 993: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + s->multiline = true; } - switch( _widec ) { - case 9: goto st978; - case 32: goto st978; - case 40: goto tr2761; - case 41: goto tr2762; - case 3082: goto tr2764; - case 3131: goto tr2765; - case 3338: goto tr2746; - case 3387: goto tr2746; - case 3594: goto tr2766; - case 3643: goto tr2767; - } - goto tr2637; -tr2745: + goto st1142; +tr2935: { - s->buffer_length = 0; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } } - goto st994; -tr2842: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->number64 <= 59999) { + s->loc.s2 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } - goto st994; -tr2736: + goto st1142; +tr2938: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76434,20 +74492,18 @@ tr2736: } } { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); + if (s->number64 <= 59999) { + s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; + s->line_counter++; } - goto st994; -tr2850: + goto st1142; +tr3088: { s->number64_tmp = s->number64; } @@ -76464,47 +74520,18 @@ tr2850: } } { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); + if (s->number64 <= 59999) { + s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } + goto st1142; +tr3089: { - s->buffer_length = 0; - } - goto st994; -st994: - if ( ++p == pe ) - goto _test_eof994; -case 994: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->number64_tmp = s->number64; } - if ( _widec == 2058 ) - goto tr2843; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2842; - goto tr2637; -tr2738: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76518,83 +74545,54 @@ tr2738: } } { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); + if (s->number64 <= 59999) { + s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->line_counter++; - } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } + goto st1142; +tr3090: { - p--; {cs = stack[--top];goto _again;} + s->number64_tmp = s->number64; } - goto st1540; -tr2747: { - s->line_counter++; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } } { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + if (s->number64 <= 59999) { + s->loc.s2 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1540; -tr2852: + goto st1142; +tr3092: { s->number64_tmp = s->number64; } @@ -76611,10 +74609,8 @@ tr2852: } } { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); + if (s->number64 <= 59999) { + s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} @@ -76623,286 +74619,194 @@ tr2852: { s->line_counter++; } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + goto st1142; +st1142: + if ( ++p == pe ) + goto _test_eof1142; +case 1142: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - { - p--; {cs = stack[--top];goto _again;} + switch( _widec ) { + case 9: goto st1142; + case 32: goto st1142; + case 40: goto tr2941; + case 41: goto tr2942; + case 69: goto st1143; + case 87: goto st1170; + case 2058: goto tr2943; + case 2107: goto tr2944; } - goto st1540; -st1540: + goto tr2861; +st1143: if ( ++p == pe ) - goto _test_eof1540; -case 1540: + goto _test_eof1143; +case 1143: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st976; - case 32: goto st976; - case 40: goto tr2741; - case 41: goto tr2742; - case 3082: goto tr2744; - case 3131: goto tr2745; - case 3338: goto tr2746; - case 3387: goto tr2746; - case 3594: goto tr2747; - case 3643: goto tr2748; + case 9: goto st1144; + case 32: goto st1144; + case 40: goto tr2946; + case 41: goto tr2947; + case 2058: goto tr2948; + case 2107: goto tr2949; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2743; - goto tr2637; -tr2739: + goto tr2861; +tr2946: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st1144; +tr2947: { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1144; +tr2948: { - s->buffer_length = 0; - } - { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1541; -tr2748: - { - s->buffer_length = 0; + s->line_counter++; } + goto st1144; +tr3080: { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1144; goto _out;} + } + } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1541; -tr2853: + goto st1144; +tr3081: { - s->number64_tmp = s->number64; + s->loc.long_sign = -1; } + goto st1144; +tr3082: { - if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { - s->number64 *= pow(10, s->decimals); - } else if (s->decimal_counter <= s->decimals && - s->number64_tmp < UINT32_MAX) { - s->number64 *= pow(10, s->decimals - s->decimal_counter); - s->number64 += s->number64_tmp * pow(10, s->decimals); - } else { - WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} - } + s->loc.long_sign = -1; } { - if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || - (s->loc.alt_sign == -1 && s->number64 <= 10000000)) - { - s->loc.alt = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st1144; +tr3083: { - s->buffer_length = 0; + s->loc.long_sign = -1; } { - // Write version. - *(rdata_tail) = 0; - rdata_tail += 1; - // Write size. - *(rdata_tail) = loc64to8(s->loc.siz); - rdata_tail += 1; - // Write horizontal precision. - *(rdata_tail) = loc64to8(s->loc.hp); - rdata_tail += 1; - // Write vertical precision. - *(rdata_tail) = loc64to8(s->loc.vp); - rdata_tail += 1; - // Write latitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * - (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); - rdata_tail += 4; - // Write longitude. - *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * - (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); - rdata_tail += 4; - // Write altitude. - *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * - (s->loc.alt)); - rdata_tail += 4; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st1144; +tr3084: { - p--; {cs = stack[--top];goto _again;} + s->loc.long_sign = -1; } - goto st1541; -st1541: - if ( ++p == pe ) - goto _test_eof1541; -case 1541: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + s->line_counter++; } - if ( _widec == 2058 ) - goto tr2843; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2842; - goto tr2637; -st995: + goto st1144; +st1144: if ( ++p == pe ) - goto _test_eof995; -case 995: + goto _test_eof1144; +case 1144: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2844; - case 32: goto tr2844; - case 40: goto tr2845; - case 41: goto tr2846; - case 109: goto tr2848; - case 3082: goto tr2849; - case 3131: goto tr2850; - case 3338: goto tr2851; - case 3387: goto tr2851; - case 3594: goto tr2852; - case 3643: goto tr2853; + case 9: goto st1144; + case 32: goto st1144; + case 40: goto tr2946; + case 41: goto tr2947; + case 45: goto st1145; + case 2058: goto tr2948; + case 2107: goto tr2949; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2847; - goto tr2637; -tr2847: + goto tr2951; + goto tr2861; +st1145: + if ( ++p == pe ) + goto _test_eof1145; +case 1145: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2952; + goto tr2861; +tr2957: { - s->number64_tmp = s->number64; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1146; +tr2951: + { + s->decimals = 2; + } + { + s->decimal_counter = 0; } { s->number64 = 0; @@ -76921,11 +74825,20 @@ tr2847: p--; {goto st319;} } } + goto st1146; +tr2952: + { + s->loc.alt_sign = -1; + } { - s->decimal_counter++; + s->decimals = 2; + } + { + s->decimal_counter = 0; + } + { + s->number64 = 0; } - goto st996; -tr2854: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76940,14 +74853,11 @@ tr2854: p--; {goto st319;} } } - { - s->decimal_counter++; - } - goto st996; -st996: + goto st1146; +st1146: if ( ++p == pe ) - goto _test_eof996; -case 996: + goto _test_eof1146; +case 1146: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76965,22 +74875,64 @@ case 996: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2729; - case 32: goto tr2729; - case 40: goto tr2730; - case 41: goto tr2731; - case 109: goto tr2734; - case 3082: goto tr2735; - case 3131: goto tr2736; - case 3338: goto tr2737; - case 3387: goto tr2737; - case 3594: goto tr2738; - case 3643: goto tr2739; + case 9: goto tr2953; + case 32: goto tr2953; + case 40: goto tr2954; + case 41: goto tr2955; + case 46: goto st1166; + case 109: goto tr2958; + case 3082: goto tr2959; + case 3131: goto tr2960; + case 3338: goto tr2961; + case 3387: goto tr2961; + case 3594: goto tr2962; + case 3643: goto tr2963; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2854; - goto tr2637; -tr2734: + goto tr2957; + goto tr2861; +tr2965: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1147; +tr2966: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1147; +tr2968: + { + s->line_counter++; + } + goto st1147; +tr3067: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1147; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1147; +tr2953: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77003,11 +74955,39 @@ tr2734: p--; {goto st319;} } } - goto st997; -tr2848: + goto st1147; +tr2954: { - s->number64_tmp = s->number64; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } + } + { + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } + goto st1147; +tr2955: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77030,125 +75010,106 @@ tr2848: p--; {goto st319;} } } - goto st997; -st997: - if ( ++p == pe ) - goto _test_eof997; -case 997: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + s->multiline = false; } - switch( _widec ) { - case 9: goto st976; - case 32: goto st976; - case 40: goto tr2741; - case 41: goto tr2742; - case 3082: goto tr2744; - case 3131: goto tr2745; - case 3338: goto tr2746; - case 3387: goto tr2746; - case 3594: goto tr2747; - case 3643: goto tr2748; - } - goto tr2637; -tr2725: + goto st1147; +tr2959: { - s->buffer_length = 0; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } } - goto st998; -tr2855: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} } } - goto st998; -tr2861: { - s->loc.long_sign = -1; + s->line_counter++; } + goto st1147; +tr3068: { - s->buffer_length = 0; + s->number64_tmp = s->number64; } - goto st998; -st998: - if ( ++p == pe ) - goto _test_eof998; -case 998: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + } + { + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2856; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2855; - goto tr2637; -st999: - if ( ++p == pe ) - goto _test_eof999; -case 999: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1147; +tr3069: + { + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr2857; - case 32: goto tr2857; - case 40: goto tr2858; - case 41: goto tr2859; - case 2058: goto tr2860; - case 2107: goto tr2861; - } - goto tr2637; -tr2720: { - s->buffer_length = 0; + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } - goto st1000; -tr2862: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; + } + goto st1147; +tr3070: + { + s->number64_tmp = s->number64; } - goto st1000; -tr2715: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77162,18 +75123,24 @@ tr2715: } } { - if (s->number64 <= 59999) { - s->loc.s2 = (uint32_t)(s->number64); + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1000; -tr2869: + goto st1147; +tr3073: { s->number64_tmp = s->number64; } @@ -77190,78 +75157,55 @@ tr2869: } } { - if (s->number64 <= 59999) { - s->loc.s2 = (uint32_t)(s->number64); + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; - } - goto st1000; -st1000: - if ( ++p == pe ) - goto _test_eof1000; -case 1000: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->line_counter++; } - if ( _widec == 2058 ) - goto tr2863; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2862; - goto tr2637; -st1001: + goto st1147; +st1147: if ( ++p == pe ) - goto _test_eof1001; -case 1001: + goto _test_eof1147; +case 1147: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2864; - case 32: goto tr2864; - case 40: goto tr2865; - case 41: goto tr2866; - case 2058: goto tr2868; - case 2107: goto tr2869; + case 9: goto st1147; + case 32: goto st1147; + case 40: goto tr2965; + case 41: goto tr2966; + case 3082: goto tr2968; + case 3131: goto tr2969; + case 3338: goto tr2970; + case 3387: goto tr2970; + case 3594: goto tr2971; + case 3643: goto tr2972; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2867; - goto tr2637; -tr2867: - { - s->number64_tmp = s->number64; - } - { - s->number64 = 0; - } + goto tr2967; + goto tr2861; +tr2977: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -77276,11 +75220,17 @@ tr2867: p--; {goto st319;} } } + goto st1148; +tr2967: { - s->decimal_counter++; + s->decimals = 2; + } + { + s->decimal_counter = 0; + } + { + s->number64 = 0; } - goto st1002; -tr2870: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -77295,226 +75245,251 @@ tr2870: p--; {goto st319;} } } - { - s->decimal_counter++; - } - goto st1002; -st1002: + goto st1148; +st1148: if ( ++p == pe ) - goto _test_eof1002; -case 1002: + goto _test_eof1148; +case 1148: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2709; - case 32: goto tr2709; - case 40: goto tr2710; - case 41: goto tr2711; - case 2058: goto tr2714; - case 2107: goto tr2715; + case 9: goto tr2973; + case 32: goto tr2973; + case 40: goto tr2974; + case 41: goto tr2975; + case 46: goto st1162; + case 109: goto tr2978; + case 3082: goto tr2979; + case 3131: goto tr2980; + case 3338: goto tr2981; + case 3387: goto tr2981; + case 3594: goto tr2982; + case 3643: goto tr2983; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2870; - goto tr2637; -tr2708: + goto tr2977; + goto tr2861; +tr2985: { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1149; +tr2986: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1149; +tr2988: + { + s->line_counter++; + } + goto st1149; +tr3054: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1149; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1149; +tr2973: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + goto st1149; +tr2974: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1003; -tr2871: + goto st1149; +tr2975: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } } - goto st1003; -tr2702: { - if (s->number64 <= 59) { - s->loc.m2 = (uint32_t)(s->number64); + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; - } - goto st1003; -st1003: - if ( ++p == pe ) - goto _test_eof1003; -case 1003: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr2872; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2871; - goto tr2637; -tr2696: - { - s->buffer_length = 0; + s->multiline = false; } - goto st1004; -tr2873: + goto st1149; +tr2979: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } } - goto st1004; -tr2688: { - if (s->number64 <= 180) { - s->loc.d2 = (uint32_t)(s->number64); + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; - } - goto st1004; -st1004: - if ( ++p == pe ) - goto _test_eof1004; -case 1004: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->line_counter++; } - if ( _widec == 2058 ) - goto tr2874; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2873; - goto tr2637; -tr2681: + goto st1149; +tr3055: { - s->buffer_length = 0; + s->number64_tmp = s->number64; } - goto st1005; -tr2875: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } } - goto st1005; -tr2881: { - s->loc.lat_sign = -1; + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } + goto st1149; +tr3056: { - s->buffer_length = 0; + s->number64_tmp = s->number64; } - goto st1005; -st1005: - if ( ++p == pe ) - goto _test_eof1005; -case 1005: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2876; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2875; - goto tr2637; -st1006: - if ( ++p == pe ) - goto _test_eof1006; -case 1006: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr2877; - case 32: goto tr2877; - case 40: goto tr2878; - case 41: goto tr2879; - case 2058: goto tr2880; - case 2107: goto tr2881; } - goto tr2637; -tr2676: { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1007; -tr2882: + goto st1149; +tr3057: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + s->number64_tmp = s->number64; } - goto st1007; -tr2671: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77528,18 +75503,22 @@ tr2671: } } { - if (s->number64 <= 59999) { - s->loc.s1 = (uint32_t)(s->number64); + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1007; -tr2889: + goto st1149; +tr3060: { s->number64_tmp = s->number64; } @@ -77556,78 +75535,53 @@ tr2889: } } { - if (s->number64 <= 59999) { - s->loc.s1 = (uint32_t)(s->number64); + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; - } - goto st1007; -st1007: - if ( ++p == pe ) - goto _test_eof1007; -case 1007: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->line_counter++; } - if ( _widec == 2058 ) - goto tr2883; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2882; - goto tr2637; -st1008: + goto st1149; +st1149: if ( ++p == pe ) - goto _test_eof1008; -case 1008: + goto _test_eof1149; +case 1149: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2884; - case 32: goto tr2884; - case 40: goto tr2885; - case 41: goto tr2886; - case 2058: goto tr2888; - case 2107: goto tr2889; + case 9: goto st1149; + case 32: goto st1149; + case 40: goto tr2985; + case 41: goto tr2986; + case 3082: goto tr2988; + case 3131: goto tr2989; + case 3338: goto tr2970; + case 3387: goto tr2970; + case 3594: goto tr2990; + case 3643: goto tr2991; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2887; - goto tr2637; -tr2887: - { - s->number64_tmp = s->number64; - } - { - s->number64 = 0; - } + goto tr2987; + goto tr2861; +tr2996: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -77642,11 +75596,17 @@ tr2887: p--; {goto st319;} } } + goto st1150; +tr2987: { - s->decimal_counter++; + s->decimals = 2; + } + { + s->decimal_counter = 0; + } + { + s->number64 = 0; } - goto st1009; -tr2890: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -77661,271 +75621,236 @@ tr2890: p--; {goto st319;} } } - { - s->decimal_counter++; - } - goto st1009; -st1009: + goto st1150; +st1150: if ( ++p == pe ) - goto _test_eof1009; -case 1009: + goto _test_eof1150; +case 1150: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2665; - case 32: goto tr2665; - case 40: goto tr2666; - case 41: goto tr2667; - case 2058: goto tr2670; - case 2107: goto tr2671; + case 9: goto tr2992; + case 32: goto tr2992; + case 40: goto tr2993; + case 41: goto tr2994; + case 46: goto st1158; + case 109: goto tr2997; + case 3082: goto tr2998; + case 3131: goto tr2999; + case 3338: goto tr3000; + case 3387: goto tr3000; + case 3594: goto tr3001; + case 3643: goto tr3002; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2890; - goto tr2637; -tr2664: - { - s->buffer_length = 0; - } - goto st1010; -tr2891: + goto tr2996; + goto tr2861; +tr3004: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } - goto st1010; -tr2658: + goto st1151; +tr3005: { - if (s->number64 <= 59) { - s->loc.m1 = (uint32_t)(s->number64); - } else { - WARN(ZS_BAD_NUMBER); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1151; +tr3007: { - s->buffer_length = 0; + s->line_counter++; } - goto st1010; -st1010: - if ( ++p == pe ) - goto _test_eof1010; -case 1010: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1151; +tr3041: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1151; goto _out;} + } } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2892; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2891; - goto tr2637; -tr2652: { - s->buffer_length = 0; + s->line_counter++; } - goto st1011; -tr2893: + goto st1151; +tr2992: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } } - goto st1011; -tr2644: { - if (s->number64 <= 90) { - s->loc.d1 = (uint32_t)(s->number64); + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } + goto st1151; +tr2993: { - s->buffer_length = 0; - } - goto st1011; -st1011: - if ( ++p == pe ) - goto _test_eof1011; -case 1011: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + } + { + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2894; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2893; - goto tr2637; -st1012: - if ( ++p == pe ) - goto _test_eof1012; -case 1012: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2895; - goto tr2429; -tr2895: { - s->number64 = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } + goto st1151; +tr2994: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1013; -tr2899: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - goto st1013; -st1013: - if ( ++p == pe ) - goto _test_eof1013; -case 1013: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->multiline = false; } - switch( _widec ) { - case 9: goto tr2896; - case 32: goto tr2896; - case 40: goto tr2897; - case 41: goto tr2898; - case 2058: goto tr2900; - case 2107: goto tr2901; + goto st1151; +tr2998: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2899; - goto tr2429; -tr2903: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; + } else { + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } - s->multiline = true; } - goto st1014; -tr2904: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->line_counter++; + } + goto st1151; +tr3042: + { + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = false; - } - goto st1014; -tr2906: - { - s->line_counter++; } - goto st1014; -tr2938: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1014; goto _out;} - } + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} } } + goto st1151; +tr3043: { - s->line_counter++; + s->number64_tmp = s->number64; } - goto st1014; -tr2896: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1014; -tr2897: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } @@ -77936,15 +75861,28 @@ tr2897: } s->multiline = true; } - goto st1014; -tr2898: + goto st1151; +tr3044: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; + } else { + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } @@ -77955,53 +75893,71 @@ tr2898: } s->multiline = false; } - goto st1014; -tr2900: + goto st1151; +tr3047: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; + } else { + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { s->line_counter++; } - goto st1014; -st1014: + goto st1151; +st1151: if ( ++p == pe ) - goto _test_eof1014; -case 1014: + goto _test_eof1151; +case 1151: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1014; - case 32: goto st1014; - case 40: goto tr2903; - case 41: goto tr2904; - case 2058: goto tr2906; - case 2107: goto tr2907; + case 9: goto st1151; + case 32: goto st1151; + case 40: goto tr3004; + case 41: goto tr3005; + case 3082: goto tr3007; + case 3131: goto tr3008; + case 3338: goto tr2970; + case 3387: goto tr2970; + case 3594: goto tr3009; + case 3643: goto tr3010; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2905; - goto tr2429; -tr2905: - { - s->number64 = 0; - } + goto tr3006; + goto tr2861; +tr3015: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -78016,8 +75972,17 @@ tr2905: p--; {goto st319;} } } - goto st1015; -tr2911: + goto st1152; +tr3006: + { + s->decimals = 2; + } + { + s->decimal_counter = 0; + } + { + s->number64 = 0; + } { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -78032,35 +75997,45 @@ tr2911: p--; {goto st319;} } } - goto st1015; -st1015: + goto st1152; +st1152: if ( ++p == pe ) - goto _test_eof1015; -case 1015: + goto _test_eof1152; +case 1152: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2908; - case 32: goto tr2908; - case 40: goto tr2909; - case 41: goto tr2910; - case 2058: goto tr2912; - case 2107: goto tr2913; + case 9: goto tr3011; + case 32: goto tr3011; + case 40: goto tr3012; + case 41: goto tr3013; + case 46: goto st1155; + case 109: goto tr3011; + case 3082: goto tr3016; + case 3131: goto tr3017; + case 3338: goto tr3018; + case 3387: goto tr3018; + case 3594: goto tr3019; + case 3643: goto tr3020; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2911; - goto tr2429; -tr2915: + goto tr3015; + goto tr2861; +tr3022: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -78068,8 +76043,8 @@ tr2915: } s->multiline = true; } - goto st1016; -tr2916: + goto st1153; +tr3023: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -78077,13 +76052,13 @@ tr2916: } s->multiline = false; } - goto st1016; -tr2918: + goto st1153; +tr3024: { s->line_counter++; } - goto st1016; -tr2936: + goto st1153; +tr3029: { s->buffer[s->buffer_length++] = 0; @@ -78093,229 +76068,165 @@ tr2936: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1016; goto _out;} + {p++; cs = 1153; goto _out;} } } } { s->line_counter++; } - goto st1016; -tr2908: + goto st1153; +tr3011: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1016; -tr2909: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } + goto st1153; +tr3012: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st1016; -tr2910: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } - s->multiline = false; + s->multiline = true; } - goto st1016; -tr2912: + goto st1153; +tr3013: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } { - s->line_counter++; - } - goto st1016; -st1016: - if ( ++p == pe ) - goto _test_eof1016; -case 1016: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1016; - case 32: goto st1016; - case 40: goto tr2915; - case 41: goto tr2916; - case 2058: goto tr2918; - case 2107: goto tr2919; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2917; - goto tr2429; -tr2917: { - s->number64 = 0; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } + goto st1153; +tr3016: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1017; -tr2923: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - goto st1017; -st1017: - if ( ++p == pe ) - goto _test_eof1017; -case 1017: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr2920; - case 32: goto tr2920; - case 40: goto tr2921; - case 41: goto tr2922; - case 2058: goto tr2924; - case 2107: goto tr2925; + { + s->line_counter++; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2923; - goto tr2429; -tr2927: + goto st1153; +tr3030: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->number64_tmp = s->number64; } - goto st1018; -tr2928: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st1018; -tr2930: - { - s->line_counter++; - } - goto st1018; -tr2934: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1018; goto _out;} - } + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} } } + goto st1153; +tr3031: { - s->line_counter++; + s->number64_tmp = s->number64; } - goto st1018; -tr2920: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1018; -tr2921: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } @@ -78326,249 +76237,169 @@ tr2921: } s->multiline = true; } - goto st1018; -tr2922: + goto st1153; +tr3032: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + s->number64_tmp = s->number64; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st1018; -tr2924: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->line_counter++; - } - goto st1018; -st1018: - if ( ++p == pe ) - goto _test_eof1018; -case 1018: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1018; - case 32: goto st1018; - case 40: goto tr2927; - case 41: goto tr2928; - case 42: goto tr2929; - case 92: goto tr2929; - case 95: goto tr2929; - case 2058: goto tr2930; - case 2107: goto tr2931; - } - if ( _widec < 64 ) { - if ( 45 <= _widec && _widec <= 57 ) - goto tr2929; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr2929; - } else - goto tr2929; - goto tr77; -tr2929: - { - s->dname = rdata_tail; - } - { p--; {stack[top++] = 1019;goto st321;} } - goto st1019; -st1019: - if ( ++p == pe ) - goto _test_eof1019; -case 1019: - switch( (*p) ) { - case 32: goto tr2932; - case 59: goto tr2932; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2932; - } else if ( (*p) >= 9 ) - goto tr2932; - goto tr77; -tr2932: - { - rdata_tail += s->dname_tmp_length; - } - { - p--; {cs = stack[--top];goto _again;} + s->multiline = false; } - goto st1542; -st1542: - if ( ++p == pe ) - goto _test_eof1542; -case 1542: - goto st0; -tr2931: + goto st1153; +tr3034: { - s->buffer_length = 0; + s->number64_tmp = s->number64; } - goto st1020; -tr2933: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } } - goto st1020; -tr2925: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; + s->line_counter++; } - goto st1020; -st1020: + goto st1153; +st1153: if ( ++p == pe ) - goto _test_eof1020; -case 1020: + goto _test_eof1153; +case 1153: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + !s->multiline ) _widec += 512; } - } else { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - if ( _widec == 2058 ) - goto tr2934; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2933; - goto tr77; -tr2919: + switch( _widec ) { + case 9: goto st1153; + case 32: goto st1153; + case 40: goto tr3022; + case 41: goto tr3023; + case 3082: goto tr3024; + case 3131: goto tr3025; + case 3338: goto tr2970; + case 3387: goto tr2970; + case 3594: goto tr3026; + case 3643: goto tr3027; + } + goto tr2861; +tr3025: { s->buffer_length = 0; } - goto st1021; -tr2935: + goto st1154; +tr3028: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1021; -tr2913: + goto st1154; +tr3017: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } + } { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1021; -st1021: - if ( ++p == pe ) - goto _test_eof1021; -case 1021: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr2936; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2935; - goto tr77; -tr2907: + goto st1154; +tr3035: { - s->buffer_length = 0; + s->number64_tmp = s->number64; } - goto st1022; -tr2937: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } } - goto st1022; -tr2901: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1022; -st1022: + goto st1154; +st1154: if ( ++p == pe ) - goto _test_eof1022; -case 1022: + goto _test_eof1154; +case 1154: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78588,1044 +76419,1005 @@ case 1022: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2938; + goto tr3029; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2937; - goto tr77; -st1023: - if ( ++p == pe ) - goto _test_eof1023; -case 1023: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2939; - goto tr2429; -tr2939: - { - s->number64 = 0; - } + goto tr3028; + goto tr2861; +tr2961: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1024; -tr2943: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - goto st1024; -st1024: - if ( ++p == pe ) - goto _test_eof1024; -case 1024: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - switch( _widec ) { - case 9: goto tr2940; - case 32: goto tr2940; - case 40: goto tr2941; - case 41: goto tr2942; - case 2058: goto tr2944; - case 2107: goto tr2945; + { + p--; {cs = stack[--top];goto _again;} } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2943; - goto tr2429; -tr2947: + goto st1525; +tr2970: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - goto st1025; -tr2948: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + p--; {cs = stack[--top];goto _again;} + } + goto st1525; +tr2981: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st1025; -tr2950: { - s->line_counter++; + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } - goto st1025; -tr3007: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1025; goto _out;} - } - } + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1025; -tr2940: + goto st1525; +tr3000: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1025; -tr2941: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - goto st1025; -tr2942: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1525; +tr3018: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st1025; -tr2944: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->line_counter++; - } - goto st1025; -st1025: - if ( ++p == pe ) - goto _test_eof1025; -case 1025: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - switch( _widec ) { - case 9: goto st1025; - case 32: goto st1025; - case 40: goto tr2947; - case 41: goto tr2948; - case 2058: goto tr2950; - case 2107: goto tr2951; + { + p--; {cs = stack[--top];goto _again;} } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2949; - goto tr2429; -tr2949: + goto st1525; +tr3036: { - s->number64 = 0; + s->number64_tmp = s->number64; } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1026; -tr2955: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - goto st1026; -st1026: - if ( ++p == pe ) - goto _test_eof1026; -case 1026: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - switch( _widec ) { - case 9: goto tr2952; - case 32: goto tr2952; - case 40: goto tr2953; - case 41: goto tr2954; - case 2058: goto tr2956; - case 2107: goto tr2957; + { + p--; {cs = stack[--top];goto _again;} } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2955; - goto tr2429; -tr2960: + goto st1525; +tr3049: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->number64_tmp = s->number64; } - goto st1027; -tr2961: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st1027; -tr2962: { - s->line_counter++; + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } - goto st1027; -tr3005: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1027; goto _out;} - } - } + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1027; -tr2952: + goto st1525; +tr3062: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1027; -tr2953: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - goto st1027; -tr2954: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1525; +tr3075: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + s->number64_tmp = s->number64; } - goto st1027; -tr2956: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } { - s->line_counter++; - } - goto st1027; -st1027: - if ( ++p == pe ) - goto _test_eof1027; -case 1027: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1027; - case 32: goto st1027; - case 40: goto tr2960; - case 41: goto tr2961; - case 2058: goto tr2962; - case 2107: goto tr2963; - } - if ( _widec < 11 ) { - if ( _widec <= 8 ) - goto tr2958; - } else if ( _widec > 58 ) { - if ( 60 <= _widec ) - goto tr2958; - } else - goto tr2958; - goto tr77; -tr2958: - { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - { p--; {stack[top++] = 1028;goto st330;} } - goto st1028; -st1028: - if ( ++p == pe ) - goto _test_eof1028; -case 1028: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr2964; - case 32: goto tr2964; - case 40: goto tr2965; - case 41: goto tr2966; - case 2058: goto tr2967; - case 2107: goto tr2968; - } - goto tr77; -tr2971: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - goto st1029; -tr2972: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st1029; -tr2973: + goto st1525; +st1525: + if ( ++p == pe ) + goto _test_eof1525; +case 1525: + goto st0; +tr3026: { s->line_counter++; } - goto st1029; -tr3003: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1029; goto _out;} - } - } + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1029; -tr2964: + goto st1526; +tr3019: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1029; -tr2965: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->line_counter++; } - goto st1029; -tr2966: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + p--; {cs = stack[--top];goto _again;} } - goto st1029; -tr2967: + goto st1526; +tr3037: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + } + { + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { s->line_counter++; } - goto st1029; -st1029: + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1526; +st1526: if ( ++p == pe ) - goto _test_eof1029; -case 1029: + goto _test_eof1526; +case 1526: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1029; - case 32: goto st1029; - case 40: goto tr2971; - case 41: goto tr2972; - case 2058: goto tr2973; - case 2107: goto tr2974; + case 9: goto st1153; + case 32: goto st1153; + case 40: goto tr3022; + case 41: goto tr3023; + case 3082: goto tr3024; + case 3131: goto tr3025; + case 3338: goto tr2970; + case 3387: goto tr2970; + case 3594: goto tr3026; + case 3643: goto tr3027; } - if ( _widec < 11 ) { - if ( _widec <= 8 ) - goto tr2969; - } else if ( _widec > 58 ) { - if ( 60 <= _widec ) - goto tr2969; - } else - goto tr2969; - goto tr77; -tr2969: + goto tr2861; +tr3027: { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } - { p--; {stack[top++] = 1030;goto st330;} } - goto st1030; -st1030: - if ( ++p == pe ) - goto _test_eof1030; -case 1030: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - switch( _widec ) { - case 9: goto tr2975; - case 32: goto tr2975; - case 40: goto tr2976; - case 41: goto tr2977; - case 2058: goto tr2978; - case 2107: goto tr2979; + { + p--; {cs = stack[--top];goto _again;} } - goto tr77; -tr2982: + goto st1527; +tr3020: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st1031; -tr2983: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; + } else { + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } - s->multiline = false; } - goto st1031; -tr2984: - { - s->line_counter++; - } - goto st1031; -tr3001: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1031; goto _out;} - } - } + s->buffer_length = 0; } { - s->line_counter++; + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - goto st1031; -tr2975: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } - goto st1031; -tr2976: + goto st1527; +tr3038: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + s->number64_tmp = s->number64; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st1031; -tr2977: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + if (s->number64 <= 9000000000ULL) { + s->loc.vp = s->number64; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + s->buffer_length = 0; } - goto st1031; -tr2978: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1031; -st1031: + goto st1527; +st1527: if ( ++p == pe ) - goto _test_eof1031; -case 1031: + goto _test_eof1527; +case 1527: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto st1031; - case 32: goto st1031; - case 40: goto tr2982; - case 41: goto tr2983; - case 2058: goto tr2984; - case 2107: goto tr2985; - } - if ( _widec < 11 ) { - if ( _widec <= 8 ) - goto tr2980; - } else if ( _widec > 58 ) { - if ( 60 <= _widec ) - goto tr2980; - } else - goto tr2980; - goto tr77; -tr2980: - { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - } - { p--; {stack[top++] = 1032;goto st330;} } - goto st1032; -st1032: + if ( _widec == 2058 ) + goto tr3029; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3028; + goto tr2861; +st1155: if ( ++p == pe ) - goto _test_eof1032; -case 1032: + goto _test_eof1155; +case 1155: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2986; - case 32: goto tr2986; - case 40: goto tr2987; - case 41: goto tr2988; - case 2058: goto tr2989; - case 2107: goto tr2990; - } - goto tr77; -tr2992: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1033; -tr2993: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1033; -tr2995: - { - s->line_counter++; - } - goto st1033; -tr2999: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1033; goto _out;} - } - } - } - { - s->line_counter++; - } - goto st1033; -tr2986: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + case 9: goto tr3030; + case 32: goto tr3030; + case 40: goto tr3031; + case 41: goto tr3032; + case 109: goto tr3030; + case 3082: goto tr3034; + case 3131: goto tr3035; + case 3338: goto tr3036; + case 3387: goto tr3036; + case 3594: goto tr3037; + case 3643: goto tr3038; } - goto st1033; -tr2987: + if ( 48 <= _widec && _widec <= 57 ) + goto tr3033; + goto tr2861; +tr3033: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} - } + s->number64_tmp = s->number64; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->number64 = 0; } - goto st1033; -tr2988: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + s->decimal_counter++; } - goto st1033; -tr2989: + goto st1156; +tr3039: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } { - s->line_counter++; + s->decimal_counter++; } - goto st1033; -st1033: + goto st1156; +st1156: if ( ++p == pe ) - goto _test_eof1033; -case 1033: + goto _test_eof1156; +case 1156: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1033; - case 32: goto st1033; - case 40: goto tr2992; - case 41: goto tr2993; - case 42: goto tr2994; - case 92: goto tr2994; - case 95: goto tr2994; - case 2058: goto tr2995; - case 2107: goto tr2996; + case 9: goto tr3011; + case 32: goto tr3011; + case 40: goto tr3012; + case 41: goto tr3013; + case 109: goto tr3011; + case 3082: goto tr3016; + case 3131: goto tr3017; + case 3338: goto tr3018; + case 3387: goto tr3018; + case 3594: goto tr3019; + case 3643: goto tr3020; } - if ( _widec < 64 ) { - if ( 45 <= _widec && _widec <= 57 ) - goto tr2994; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr2994; - } else - goto tr2994; - goto tr77; -tr2994: + if ( 48 <= _widec && _widec <= 57 ) + goto tr3039; + goto tr2861; +tr3008: { - s->dname = rdata_tail; + s->buffer_length = 0; } - { p--; {stack[top++] = 1034;goto st321;} } - goto st1034; -st1034: - if ( ++p == pe ) - goto _test_eof1034; -case 1034: - switch( (*p) ) { - case 32: goto tr2997; - case 59: goto tr2997; + goto st1157; +tr3040: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2997; - } else if ( (*p) >= 9 ) - goto tr2997; - goto tr77; -tr2997: + goto st1157; +tr2999: { - rdata_tail += s->dname_tmp_length; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } - goto st1543; -st1543: - if ( ++p == pe ) - goto _test_eof1543; -case 1543: - goto st0; -tr2996: { s->buffer_length = 0; } - goto st1035; -tr2998: + goto st1157; +tr3048: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + s->number64_tmp = s->number64; } - goto st1035; -tr2990: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + } + { + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1035; -st1035: + goto st1157; +st1157: if ( ++p == pe ) - goto _test_eof1035; -case 1035: + goto _test_eof1157; +case 1157: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79645,209 +77437,339 @@ case 1035: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2999; + goto tr3041; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2998; - goto tr77; -tr2985: + goto tr3040; + goto tr2861; +tr3009: { - s->buffer_length = 0; + s->line_counter++; } - goto st1036; -tr3000: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - goto st1036; -tr2979: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); + p--; {cs = stack[--top];goto _again;} + } + goto st1528; +tr3001: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + } + { + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; + s->line_counter++; } - goto st1036; -st1036: - if ( ++p == pe ) - goto _test_eof1036; -case 1036: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - if ( _widec == 2058 ) - goto tr3001; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3000; - goto tr77; -tr2974: { - s->buffer_length = 0; + p--; {cs = stack[--top];goto _again;} } - goto st1037; -tr3002: + goto st1528; +tr3050: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + s->number64_tmp = s->number64; } - goto st1037; -tr2968: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + } + { + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; } else { - WARN(ZS_ITEM_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->buffer_length = 0; + s->line_counter++; + } + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} } - goto st1037; -st1037: + goto st1528; +st1528: if ( ++p == pe ) - goto _test_eof1037; -case 1037: + goto _test_eof1528; +case 1528: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + !s->multiline ) _widec += 512; } - } else { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - if ( _widec == 2058 ) - goto tr3003; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3002; - goto tr77; -tr2963: + switch( _widec ) { + case 9: goto st1151; + case 32: goto st1151; + case 40: goto tr3004; + case 41: goto tr3005; + case 3082: goto tr3007; + case 3131: goto tr3008; + case 3338: goto tr2970; + case 3387: goto tr2970; + case 3594: goto tr3009; + case 3643: goto tr3010; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3006; + goto tr2861; +tr3010: { s->buffer_length = 0; } - goto st1038; -tr3004: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1529; +tr3002: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } } - goto st1038; -tr2957: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1038; -st1038: - if ( ++p == pe ) - goto _test_eof1038; -case 1038: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } - if ( _widec == 2058 ) - goto tr3005; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3004; - goto tr77; -tr2951: { - s->buffer_length = 0; + p--; {cs = stack[--top];goto _again;} } - goto st1039; -tr3006: + goto st1529; +tr3051: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } } - goto st1039; -tr2945: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1039; -st1039: + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1529; +st1529: if ( ++p == pe ) - goto _test_eof1039; -case 1039: + goto _test_eof1529; +case 1529: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79867,120 +77789,50 @@ case 1039: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3007; + goto tr3041; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3006; - goto tr77; -st1040: - if ( ++p == pe ) - goto _test_eof1040; -case 1040: - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3008; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3008; - } else - goto tr3008; - goto tr77; -tr3008: - { p--; {stack[top++] = 1041;goto st851;} } - goto st1041; -st1041: + goto tr3040; + goto tr2861; +st1158: if ( ++p == pe ) - goto _test_eof1041; -case 1041: + goto _test_eof1158; +case 1158: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1042; - case 32: goto st1042; - case 40: goto tr3010; - case 41: goto tr3011; - case 2058: goto tr3012; - case 2107: goto tr3013; - } - goto tr77; -tr3010: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1042; -tr3011: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1042; -tr3012: - { - s->line_counter++; - } - goto st1042; -tr3039: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1042; goto _out;} - } - } - } - { - s->line_counter++; - } - goto st1042; -st1042: - if ( ++p == pe ) - goto _test_eof1042; -case 1042: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1042; - case 32: goto st1042; - case 40: goto tr3010; - case 41: goto tr3011; - case 2058: goto tr3012; - case 2107: goto tr3013; + case 9: goto tr3042; + case 32: goto tr3042; + case 40: goto tr3043; + case 41: goto tr3044; + case 109: goto tr3046; + case 3082: goto tr3047; + case 3131: goto tr3048; + case 3338: goto tr3049; + case 3387: goto tr3049; + case 3594: goto tr3050; + case 3643: goto tr3051; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3014; - goto tr2429; -tr3014: + goto tr3045; + goto tr2861; +tr3045: + { + s->number64_tmp = s->number64; + } { s->number64 = 0; } @@ -79998,8 +77850,11 @@ tr3014: p--; {goto st319;} } } - goto st1043; -tr3018: + { + s->decimal_counter++; + } + goto st1159; +tr3052: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80014,380 +77869,195 @@ tr3018: p--; {goto st319;} } } - goto st1043; -st1043: + { + s->decimal_counter++; + } + goto st1159; +st1159: if ( ++p == pe ) - goto _test_eof1043; -case 1043: + goto _test_eof1159; +case 1159: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3015; - case 32: goto tr3015; - case 40: goto tr3016; - case 41: goto tr3017; - case 2058: goto tr3019; - case 2107: goto tr3020; + case 9: goto tr2992; + case 32: goto tr2992; + case 40: goto tr2993; + case 41: goto tr2994; + case 109: goto tr2997; + case 3082: goto tr2998; + case 3131: goto tr2999; + case 3338: goto tr3000; + case 3387: goto tr3000; + case 3594: goto tr3001; + case 3643: goto tr3002; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3018; - goto tr2429; -tr3022: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1044; -tr3023: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1044; -tr3025: - { - s->line_counter++; - } - goto st1044; -tr3037: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1044; goto _out;} - } - } - } - { - s->line_counter++; - } - goto st1044; -tr3015: + goto tr3052; + goto tr2861; +tr2997: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1044; -tr3016: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } + goto st1160; +tr3046: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->number64_tmp = s->number64; } - goto st1044; -tr3017: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st1044; -tr3019: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.hp = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } - { - s->line_counter++; - } - goto st1044; -st1044: - if ( ++p == pe ) - goto _test_eof1044; -case 1044: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1044; - case 32: goto st1044; - case 40: goto tr3022; - case 41: goto tr3023; - case 2058: goto tr3025; - case 2107: goto tr3026; - } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr3024; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr3024; - } else - goto tr3024; - goto tr77; -tr3024: - { p--; {stack[top++] = 1045;goto st747;} } - goto st1045; -st1045: - if ( ++p == pe ) - goto _test_eof1045; -case 1045: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1046; - case 32: goto st1046; - case 40: goto tr3028; - case 41: goto tr3029; - case 2058: goto tr3030; - case 2107: goto tr3031; - } - goto tr77; -tr3028: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1046; -tr3029: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1046; -tr3030: - { - s->line_counter++; - } - goto st1046; -tr3035: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1046; goto _out;} - } - } - } - { - s->line_counter++; - } - goto st1046; -st1046: - if ( ++p == pe ) - goto _test_eof1046; -case 1046: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1046; - case 32: goto st1046; - case 40: goto tr3028; - case 41: goto tr3029; - case 43: goto tr3032; - case 2058: goto tr3030; - case 2107: goto tr3031; } - if ( _widec < 65 ) { - if ( 47 <= _widec && _widec <= 57 ) - goto tr3032; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr3032; - } else - goto tr3032; - goto tr77; -tr3032: - { p--; {stack[top++] = 1047;goto st381;} } - goto st1047; -st1047: + goto st1160; +st1160: if ( ++p == pe ) - goto _test_eof1047; -case 1047: + goto _test_eof1160; +case 1160: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2176 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( - !s->multiline ) _widec += 256; + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2176 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( - !s->multiline ) _widec += 256; + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 2570: goto tr3033; - case 2619: goto tr3033; + case 9: goto st1151; + case 32: goto st1151; + case 40: goto tr3004; + case 41: goto tr3005; + case 3082: goto tr3007; + case 3131: goto tr3008; + case 3338: goto tr2970; + case 3387: goto tr2970; + case 3594: goto tr3009; + case 3643: goto tr3010; } - goto tr77; -tr3033: - { - p--; {cs = stack[--top];goto _again;} - } - goto st1544; -st1544: - if ( ++p == pe ) - goto _test_eof1544; -case 1544: - goto st0; -tr3031: + goto tr2861; +tr2989: { s->buffer_length = 0; } - goto st1048; -tr3034: + goto st1161; +tr3053: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1048; -st1048: - if ( ++p == pe ) - goto _test_eof1048; -case 1048: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1161; +tr2980: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + } + { + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr3035; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3034; - goto tr77; -tr3026: { s->buffer_length = 0; } - goto st1049; -tr3036: + goto st1161; +tr3061: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } } - goto st1049; -tr3020: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1049; -st1049: + goto st1161; +st1161: if ( ++p == pe ) - goto _test_eof1049; -case 1049: + goto _test_eof1161; +case 1161: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80407,323 +78077,529 @@ case 1049: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3037; + goto tr3054; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3036; - goto tr77; -tr3013: + goto tr3053; + goto tr2861; +tr2990: { - s->buffer_length = 0; + s->line_counter++; } - goto st1050; -tr3038: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1530; +tr2982: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } } - goto st1050; -st1050: + { + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1530; +tr3063: + { + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1530; +st1530: if ( ++p == pe ) - goto _test_eof1050; -case 1050: + goto _test_eof1530; +case 1530: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + !s->multiline ) _widec += 512; } - } else { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - if ( _widec == 2058 ) - goto tr3039; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3038; - goto tr77; -tr3043: + switch( _widec ) { + case 9: goto st1149; + case 32: goto st1149; + case 40: goto tr2985; + case 41: goto tr2986; + case 3082: goto tr2988; + case 3131: goto tr2989; + case 3338: goto tr2970; + case 3387: goto tr2970; + case 3594: goto tr2990; + case 3643: goto tr2991; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2987; + goto tr2861; +tr2991: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer_length = 0; + } + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1531; +tr2983: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st1051; -tr3044: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } - s->multiline = false; } - goto st1051; -tr3047: { - s->line_counter++; + s->buffer_length = 0; } - goto st1051; -tr3070: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1051; goto _out;} - } - } + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1051; -tr3060: + goto st1531; +tr3064: { - if ((s->apl.addr_family == 1 && s->number64 <= 32) || - (s->apl.addr_family == 2 && s->number64 <= 128)) { - s->apl.prefix_length = (uint8_t)(s->number64); + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_BAD_APL); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } { - // Copy address to buffer. - uint8_t len; - switch (s->apl.addr_family) { - case 1: - len = ZS_INET4_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - case 2: - len = ZS_INET6_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - default: - WARN(ZS_BAD_APL); - p--; {goto st319;} - } - // Find prefix without trailing zeroes. - while (len > 0) { - if ((s->buffer[len - 1] & 255) != 0) { - break; - } - len--; - } - // Check for rdata overflow. - if (rdata_tail + 4 + len > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } - // Write address family. - uint16_t af = htons(s->apl.addr_family); - memcpy(rdata_tail, &af, sizeof(af)); - rdata_tail += 2; - // Write prefix length in bits. - *(rdata_tail) = s->apl.prefix_length; + } + { + s->buffer_length = 0; + } + { + // Write version. + *(rdata_tail) = 0; rdata_tail += 1; - // Write negation flag + prefix length in bytes. - *(rdata_tail) = len + s->apl.excl_flag; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); rdata_tail += 1; - // Write address prefix non-null data. - memcpy(rdata_tail, s->buffer, len); - rdata_tail += len; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1531; +st1531: + if ( ++p == pe ) + goto _test_eof1531; +case 1531: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr3054; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3053; + goto tr2861; +st1162: + if ( ++p == pe ) + goto _test_eof1162; +case 1162: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st1051; -tr3061: + switch( _widec ) { + case 9: goto tr3055; + case 32: goto tr3055; + case 40: goto tr3056; + case 41: goto tr3057; + case 109: goto tr3059; + case 3082: goto tr3060; + case 3131: goto tr3061; + case 3338: goto tr3062; + case 3387: goto tr3062; + case 3594: goto tr3063; + case 3643: goto tr3064; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3058; + goto tr2861; +tr3058: { - if ((s->apl.addr_family == 1 && s->number64 <= 32) || - (s->apl.addr_family == 2 && s->number64 <= 128)) { - s->apl.prefix_length = (uint8_t)(s->number64); + s->number64_tmp = s->number64; + } + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_BAD_APL); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } { - // Copy address to buffer. - uint8_t len; - switch (s->apl.addr_family) { - case 1: - len = ZS_INET4_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - case 2: - len = ZS_INET6_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - default: - WARN(ZS_BAD_APL); - p--; {goto st319;} - } - // Find prefix without trailing zeroes. - while (len > 0) { - if ((s->buffer[len - 1] & 255) != 0) { - break; - } - len--; - } - // Check for rdata overflow. - if (rdata_tail + 4 + len > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + s->decimal_counter++; + } + goto st1163; +tr3065: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } - // Write address family. - uint16_t af = htons(s->apl.addr_family); - memcpy(rdata_tail, &af, sizeof(af)); - rdata_tail += 2; - // Write prefix length in bits. - *(rdata_tail) = s->apl.prefix_length; - rdata_tail += 1; - // Write negation flag + prefix length in bytes. - *(rdata_tail) = len + s->apl.excl_flag; - rdata_tail += 1; - // Write address prefix non-null data. - memcpy(rdata_tail, s->buffer, len); - rdata_tail += len; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + s->decimal_counter++; + } + goto st1163; +st1163: + if ( ++p == pe ) + goto _test_eof1163; +case 1163: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - s->multiline = true; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st1051; -tr3062: + switch( _widec ) { + case 9: goto tr2973; + case 32: goto tr2973; + case 40: goto tr2974; + case 41: goto tr2975; + case 109: goto tr2978; + case 3082: goto tr2979; + case 3131: goto tr2980; + case 3338: goto tr2981; + case 3387: goto tr2981; + case 3594: goto tr2982; + case 3643: goto tr2983; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3065; + goto tr2861; +tr2978: { - if ((s->apl.addr_family == 1 && s->number64 <= 32) || - (s->apl.addr_family == 2 && s->number64 <= 128)) { - s->apl.prefix_length = (uint8_t)(s->number64); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_BAD_APL); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } { - // Copy address to buffer. - uint8_t len; - switch (s->apl.addr_family) { - case 1: - len = ZS_INET4_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - case 2: - len = ZS_INET6_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - default: - WARN(ZS_BAD_APL); - p--; {goto st319;} - } - // Find prefix without trailing zeroes. - while (len > 0) { - if ((s->buffer[len - 1] & 255) != 0) { - break; - } - len--; - } - // Check for rdata overflow. - if (rdata_tail + 4 + len > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } - // Write address family. - uint16_t af = htons(s->apl.addr_family); - memcpy(rdata_tail, &af, sizeof(af)); - rdata_tail += 2; - // Write prefix length in bits. - *(rdata_tail) = s->apl.prefix_length; - rdata_tail += 1; - // Write negation flag + prefix length in bytes. - *(rdata_tail) = len + s->apl.excl_flag; - rdata_tail += 1; - // Write address prefix non-null data. - memcpy(rdata_tail, s->buffer, len); - rdata_tail += len; } + goto st1164; +tr3059: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + s->number64_tmp = s->number64; } - goto st1051; -tr3064: { - if ((s->apl.addr_family == 1 && s->number64 <= 32) || - (s->apl.addr_family == 2 && s->number64 <= 128)) { - s->apl.prefix_length = (uint8_t)(s->number64); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_BAD_APL); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } { - // Copy address to buffer. - uint8_t len; - switch (s->apl.addr_family) { - case 1: - len = ZS_INET4_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - case 2: - len = ZS_INET6_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - default: - WARN(ZS_BAD_APL); - p--; {goto st319;} - } - // Find prefix without trailing zeroes. - while (len > 0) { - if ((s->buffer[len - 1] & 255) != 0) { - break; - } - len--; - } - // Check for rdata overflow. - if (rdata_tail + 4 + len > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->number64 <= 9000000000ULL) { + s->loc.siz = s->number64; + } else { + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } - // Write address family. - uint16_t af = htons(s->apl.addr_family); - memcpy(rdata_tail, &af, sizeof(af)); - rdata_tail += 2; - // Write prefix length in bits. - *(rdata_tail) = s->apl.prefix_length; - rdata_tail += 1; - // Write negation flag + prefix length in bytes. - *(rdata_tail) = len + s->apl.excl_flag; - rdata_tail += 1; - // Write address prefix non-null data. - memcpy(rdata_tail, s->buffer, len); - rdata_tail += len; - } - { - s->line_counter++; } - goto st1051; -st1051: + goto st1164; +st1164: if ( ++p == pe ) - goto _test_eof1051; -case 1051: + goto _test_eof1164; +case 1164: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80741,165 +78617,267 @@ case 1051: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1051; - case 32: goto st1051; - case 33: goto tr3042; - case 40: goto tr3043; - case 41: goto tr3044; - case 49: goto tr3045; - case 50: goto tr3046; - case 3082: goto tr3047; - case 3131: goto tr3048; - case 3338: goto tr3049; - case 3387: goto tr3049; - case 3594: goto tr3050; - case 3643: goto tr3051; + case 9: goto st1149; + case 32: goto st1149; + case 40: goto tr2985; + case 41: goto tr2986; + case 3082: goto tr2988; + case 3131: goto tr2989; + case 3338: goto tr2970; + case 3387: goto tr2970; + case 3594: goto tr2990; + case 3643: goto tr2991; } - goto tr3040; -tr3042: + goto tr2861; +tr2969: { - memset(&(s->apl), 0, sizeof(s->apl)); + s->buffer_length = 0; } + goto st1165; +tr3066: { - s->apl.excl_flag = 128; // dec 128 = bin 10000000. + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto st1052; -st1052: - if ( ++p == pe ) - goto _test_eof1052; -case 1052: - switch( (*p) ) { - case 49: goto tr3052; - case 50: goto tr3053; + goto st1165; +tr2960: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } } - goto tr3040; -tr3045: { - memset(&(s->apl), 0, sizeof(s->apl)); + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } } { - s->apl.addr_family = 1; + s->buffer_length = 0; } - goto st1053; -tr3052: + goto st1165; +tr3074: { - s->apl.addr_family = 1; + s->number64_tmp = s->number64; } - goto st1053; -st1053: - if ( ++p == pe ) - goto _test_eof1053; -case 1053: - if ( (*p) == 58 ) - goto st1054; - goto tr3040; -st1054: - if ( ++p == pe ) - goto _test_eof1054; -case 1054: - if ( (*p) == 46 ) - goto tr3056; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3056; - goto tr3055; -tr3057: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1055; -tr3056: - { - s->buffer_length = 0; - } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - goto st1055; -st1055: + { + s->buffer_length = 0; + } + goto st1165; +st1165: if ( ++p == pe ) - goto _test_eof1055; -case 1055: - if ( (*p) == 47 ) - goto tr3058; - if ( 46 <= (*p) && (*p) <= 57 ) - goto tr3057; - goto tr3055; -tr3058: + goto _test_eof1165; +case 1165: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr3067; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3066; + goto tr2861; +tr2962: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1056; -tr3074: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - goto st1056; -st1056: - if ( ++p == pe ) - goto _test_eof1056; -case 1056: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3059; - goto tr3040; -tr3059: { - s->number64 = 0; + s->line_counter++; } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1532; +tr2971: + { + s->line_counter++; + } + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1532; +tr3076: + { + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1057; -tr3063: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} } - goto st1057; -st1057: + goto st1532; +st1532: if ( ++p == pe ) - goto _test_eof1057; -case 1057: + goto _test_eof1532; +case 1532: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80917,92 +78895,173 @@ case 1057: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3060; - case 32: goto tr3060; - case 40: goto tr3061; - case 41: goto tr3062; - case 3082: goto tr3064; - case 3131: goto tr3065; - case 3338: goto tr3066; - case 3387: goto tr3066; - case 3594: goto tr3067; - case 3643: goto tr3068; + case 9: goto st1147; + case 32: goto st1147; + case 40: goto tr2965; + case 41: goto tr2966; + case 3082: goto tr2968; + case 3131: goto tr2969; + case 3338: goto tr2970; + case 3387: goto tr2970; + case 3594: goto tr2971; + case 3643: goto tr2972; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3063; - goto tr3040; -tr3048: - { - s->buffer_length = 0; - } - goto st1058; -tr3069: + goto tr2967; + goto tr2861; +tr2963: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} } } - goto st1058; -tr3065: { - if ((s->apl.addr_family == 1 && s->number64 <= 32) || - (s->apl.addr_family == 2 && s->number64 <= 128)) { - s->apl.prefix_length = (uint8_t)(s->number64); + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); } else { - WARN(ZS_BAD_APL); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - // Copy address to buffer. - uint8_t len; - switch (s->apl.addr_family) { - case 1: - len = ZS_INET4_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - case 2: - len = ZS_INET6_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - default: - WARN(ZS_BAD_APL); + s->buffer_length = 0; + } + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1533; +tr2972: + { + s->buffer_length = 0; + } + { + // Write version. + *(rdata_tail) = 0; + rdata_tail += 1; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); + rdata_tail += 1; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1533; +tr3077: + { + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - // Find prefix without trailing zeroes. - while (len > 0) { - if ((s->buffer[len - 1] & 255) != 0) { - break; - } - len--; - } - // Check for rdata overflow. - if (rdata_tail + 4 + len > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + } + { + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } - // Write address family. - uint16_t af = htons(s->apl.addr_family); - memcpy(rdata_tail, &af, sizeof(af)); - rdata_tail += 2; - // Write prefix length in bits. - *(rdata_tail) = s->apl.prefix_length; + } + { + s->buffer_length = 0; + } + { + // Write version. + *(rdata_tail) = 0; rdata_tail += 1; - // Write negation flag + prefix length in bytes. - *(rdata_tail) = len + s->apl.excl_flag; + // Write size. + *(rdata_tail) = loc64to8(s->loc.siz); rdata_tail += 1; - // Write address prefix non-null data. - memcpy(rdata_tail, s->buffer, len); - rdata_tail += len; + // Write horizontal precision. + *(rdata_tail) = loc64to8(s->loc.hp); + rdata_tail += 1; + // Write vertical precision. + *(rdata_tail) = loc64to8(s->loc.vp); + rdata_tail += 1; + // Write latitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LAT_ZERO + s->loc.lat_sign * + (3600000 * s->loc.d1 + 60000 * s->loc.m1 + s->loc.s1)); + rdata_tail += 4; + // Write longitude. + *((uint32_t *)rdata_tail) = htonl(LOC_LONG_ZERO + s->loc.long_sign * + (3600000 * s->loc.d2 + 60000 * s->loc.m2 + s->loc.s2)); + rdata_tail += 4; + // Write altitude. + *((uint32_t *)rdata_tail) = htonl(LOC_ALT_ZERO + s->loc.alt_sign * + (s->loc.alt)); + rdata_tail += 4; } { - s->buffer_length = 0; + p--; {cs = stack[--top];goto _again;} } - goto st1058; -st1058: + goto st1533; +st1533: if ( ++p == pe ) - goto _test_eof1058; -case 1058: + goto _test_eof1533; +case 1533: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81022,147 +79081,94 @@ case 1058: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3070; + goto tr3067; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3069; - goto tr77; -tr3049: - { - p--; {cs = stack[--top];goto _again;} - } - goto st1545; -tr3066: - { - if ((s->apl.addr_family == 1 && s->number64 <= 32) || - (s->apl.addr_family == 2 && s->number64 <= 128)) { - s->apl.prefix_length = (uint8_t)(s->number64); - } else { - WARN(ZS_BAD_APL); - p--; {goto st319;} - } - } - { - // Copy address to buffer. - uint8_t len; - switch (s->apl.addr_family) { - case 1: - len = ZS_INET4_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - case 2: - len = ZS_INET6_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - default: - WARN(ZS_BAD_APL); - p--; {goto st319;} - } - // Find prefix without trailing zeroes. - while (len > 0) { - if ((s->buffer[len - 1] & 255) != 0) { - break; - } - len--; - } - // Check for rdata overflow. - if (rdata_tail + 4 + len > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + goto tr3066; + goto tr2861; +st1166: + if ( ++p == pe ) + goto _test_eof1166; +case 1166: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - // Write address family. - uint16_t af = htons(s->apl.addr_family); - memcpy(rdata_tail, &af, sizeof(af)); - rdata_tail += 2; - // Write prefix length in bits. - *(rdata_tail) = s->apl.prefix_length; - rdata_tail += 1; - // Write negation flag + prefix length in bytes. - *(rdata_tail) = len + s->apl.excl_flag; - rdata_tail += 1; - // Write address prefix non-null data. - memcpy(rdata_tail, s->buffer, len); - rdata_tail += len; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - p--; {cs = stack[--top];goto _again;} + switch( _widec ) { + case 9: goto tr3068; + case 32: goto tr3068; + case 40: goto tr3069; + case 41: goto tr3070; + case 109: goto tr3072; + case 3082: goto tr3073; + case 3131: goto tr3074; + case 3338: goto tr3075; + case 3387: goto tr3075; + case 3594: goto tr3076; + case 3643: goto tr3077; } - goto st1545; -st1545: - if ( ++p == pe ) - goto _test_eof1545; -case 1545: - goto st0; -tr3050: + if ( 48 <= _widec && _widec <= 57 ) + goto tr3071; + goto tr2861; +tr3071: { - s->line_counter++; + s->number64_tmp = s->number64; } { - p--; {cs = stack[--top];goto _again;} + s->number64 = 0; } - goto st1546; -tr3067: { - if ((s->apl.addr_family == 1 && s->number64 <= 32) || - (s->apl.addr_family == 2 && s->number64 <= 128)) { - s->apl.prefix_length = (uint8_t)(s->number64); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_BAD_APL); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } { - // Copy address to buffer. - uint8_t len; - switch (s->apl.addr_family) { - case 1: - len = ZS_INET4_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - case 2: - len = ZS_INET6_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - default: - WARN(ZS_BAD_APL); - p--; {goto st319;} - } - // Find prefix without trailing zeroes. - while (len > 0) { - if ((s->buffer[len - 1] & 255) != 0) { - break; - } - len--; - } - // Check for rdata overflow. - if (rdata_tail + 4 + len > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - // Write address family. - uint16_t af = htons(s->apl.addr_family); - memcpy(rdata_tail, &af, sizeof(af)); - rdata_tail += 2; - // Write prefix length in bits. - *(rdata_tail) = s->apl.prefix_length; - rdata_tail += 1; - // Write negation flag + prefix length in bytes. - *(rdata_tail) = len + s->apl.excl_flag; - rdata_tail += 1; - // Write address prefix non-null data. - memcpy(rdata_tail, s->buffer, len); - rdata_tail += len; + s->decimal_counter++; } + goto st1167; +tr3078: { - s->line_counter++; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + s->decimal_counter++; } - goto st1546; -st1546: + goto st1167; +st1167: if ( ++p == pe ) - goto _test_eof1546; -case 1546: + goto _test_eof1167; +case 1167: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81180,165 +79186,129 @@ case 1546: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1051; - case 32: goto st1051; - case 33: goto tr3042; - case 40: goto tr3043; - case 41: goto tr3044; - case 49: goto tr3045; - case 50: goto tr3046; - case 3082: goto tr3047; - case 3131: goto tr3048; - case 3338: goto tr3049; - case 3387: goto tr3049; - case 3594: goto tr3050; - case 3643: goto tr3051; - } - goto tr3040; -tr3046: - { - memset(&(s->apl), 0, sizeof(s->apl)); - } - { - s->apl.addr_family = 2; - } - goto st1059; -tr3053: - { - s->apl.addr_family = 2; + case 9: goto tr2953; + case 32: goto tr2953; + case 40: goto tr2954; + case 41: goto tr2955; + case 109: goto tr2958; + case 3082: goto tr2959; + case 3131: goto tr2960; + case 3338: goto tr2961; + case 3387: goto tr2961; + case 3594: goto tr2962; + case 3643: goto tr2963; } - goto st1059; -st1059: - if ( ++p == pe ) - goto _test_eof1059; -case 1059: - if ( (*p) == 58 ) - goto st1060; - goto tr3040; -st1060: - if ( ++p == pe ) - goto _test_eof1060; -case 1060: - if ( (*p) == 46 ) - goto tr3072; - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr3072; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3072; - } else - goto tr3072; - goto tr3055; -tr3073: + if ( 48 <= _widec && _widec <= 57 ) + goto tr3078; + goto tr2861; +tr2958: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1061; -tr3072: - { - s->buffer_length = 0; - } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - goto st1061; -st1061: - if ( ++p == pe ) - goto _test_eof1061; -case 1061: - if ( (*p) == 47 ) - goto tr3074; - if ( (*p) < 65 ) { - if ( 46 <= (*p) && (*p) <= 58 ) - goto tr3073; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3073; - } else - goto tr3073; - goto tr3055; -tr3051: - { - s->buffer_length = 0; - } + goto st1168; +tr3072: { - p--; {cs = stack[--top];goto _again;} + s->number64_tmp = s->number64; } - goto st1547; -tr3068: { - if ((s->apl.addr_family == 1 && s->number64 <= 32) || - (s->apl.addr_family == 2 && s->number64 <= 128)) { - s->apl.prefix_length = (uint8_t)(s->number64); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_BAD_APL); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } { - // Copy address to buffer. - uint8_t len; - switch (s->apl.addr_family) { - case 1: - len = ZS_INET4_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - case 2: - len = ZS_INET6_ADDR_LENGTH; - memcpy(s->buffer, s->addr, len); - break; - default: - WARN(ZS_BAD_APL); - p--; {goto st319;} - } - // Find prefix without trailing zeroes. - while (len > 0) { - if ((s->buffer[len - 1] & 255) != 0) { - break; - } - len--; - } - // Check for rdata overflow. - if (rdata_tail + 4 + len > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || + (s->loc.alt_sign == -1 && s->number64 <= 10000000)) + { + s->loc.alt = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } - // Write address family. - uint16_t af = htons(s->apl.addr_family); - memcpy(rdata_tail, &af, sizeof(af)); - rdata_tail += 2; - // Write prefix length in bits. - *(rdata_tail) = s->apl.prefix_length; - rdata_tail += 1; - // Write negation flag + prefix length in bytes. - *(rdata_tail) = len + s->apl.excl_flag; - rdata_tail += 1; - // Write address prefix non-null data. - memcpy(rdata_tail, s->buffer, len); - rdata_tail += len; } + goto st1168; +st1168: + if ( ++p == pe ) + goto _test_eof1168; +case 1168: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st1147; + case 32: goto st1147; + case 40: goto tr2965; + case 41: goto tr2966; + case 3082: goto tr2968; + case 3131: goto tr2969; + case 3338: goto tr2970; + case 3387: goto tr2970; + case 3594: goto tr2971; + case 3643: goto tr2972; + } + goto tr2861; +tr2949: { s->buffer_length = 0; } + goto st1169; +tr3079: { - p--; {cs = stack[--top];goto _again;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto st1547; -st1547: + goto st1169; +tr3085: + { + s->loc.long_sign = -1; + } + { + s->buffer_length = 0; + } + goto st1169; +st1169: if ( ++p == pe ) - goto _test_eof1547; -case 1547: + goto _test_eof1169; +case 1169: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81358,56 +79328,14 @@ case 1547: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3070; + goto tr3080; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3069; - goto tr77; -st1062: - if ( ++p == pe ) - goto _test_eof1062; -case 1062: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3075; - goto tr2429; -tr3075: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } - } - goto st1063; -tr3079: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } - } - goto st1063; -st1063: + goto tr3079; + goto tr2861; +st1170: if ( ++p == pe ) - goto _test_eof1063; -case 1063: + goto _test_eof1170; +case 1170: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81421,228 +79349,110 @@ case 1063: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3076; - case 32: goto tr3076; - case 40: goto tr3077; - case 41: goto tr3078; - case 2058: goto tr3080; - case 2107: goto tr3081; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3079; - goto tr2429; -tr3083: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + case 9: goto tr3081; + case 32: goto tr3081; + case 40: goto tr3082; + case 41: goto tr3083; + case 2058: goto tr3084; + case 2107: goto tr3085; } - goto st1064; -tr3084: + goto tr2861; +tr2944: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + s->buffer_length = 0; } - goto st1064; + goto st1171; tr3086: { - s->line_counter++; - } - goto st1064; -tr3123: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1064; goto _out;} - } + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } + goto st1171; +tr2939: { - s->line_counter++; - } - goto st1064; -tr3076: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } } - goto st1064; -tr3077: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 59999) { + s->loc.s2 = (uint32_t)(s->number64); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->buffer_length = 0; } - goto st1064; -tr3078: + goto st1171; +tr3093: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } + s->number64_tmp = s->number64; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st1064; -tr3080: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= 59999) { + s->loc.s2 = (uint32_t)(s->number64); } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->line_counter++; + s->buffer_length = 0; } - goto st1064; -st1064: + goto st1171; +st1171: if ( ++p == pe ) - goto _test_eof1064; -case 1064: + goto _test_eof1171; +case 1171: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1064; - case 32: goto st1064; - case 40: goto tr3083; - case 41: goto tr3084; - case 2058: goto tr3086; - case 2107: goto tr3087; - } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr3085; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr3085; - } else - goto tr3085; - goto tr77; -tr3085: - { p--; {stack[top++] = 1065;goto st747;} } - goto st1065; -st1065: - if ( ++p == pe ) - goto _test_eof1065; -case 1065: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto st1066; - case 32: goto st1066; - case 40: goto tr3089; - case 41: goto tr3090; - case 2058: goto tr3091; - case 2107: goto tr3092; - } - goto tr77; -tr3089: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1066; -tr3090: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1066; -tr3091: - { - s->line_counter++; - } - goto st1066; -tr3121: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1066; goto _out;} - } - } - } - { - s->line_counter++; - } - goto st1066; -st1066: + if ( _widec == 2058 ) + goto tr3087; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3086; + goto tr2861; +st1172: if ( ++p == pe ) - goto _test_eof1066; -case 1066: + goto _test_eof1172; +case 1172: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81656,17 +79466,20 @@ case 1066: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1066; - case 32: goto st1066; + case 9: goto tr3088; + case 32: goto tr3088; case 40: goto tr3089; case 41: goto tr3090; - case 2058: goto tr3091; - case 2107: goto tr3092; + case 2058: goto tr3092; + case 2107: goto tr3093; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3093; - goto tr2429; -tr3093: + goto tr3091; + goto tr2861; +tr3091: + { + s->number64_tmp = s->number64; + } { s->number64 = 0; } @@ -81684,8 +79497,11 @@ tr3093: p--; {goto st319;} } } - goto st1067; -tr3097: + { + s->decimal_counter++; + } + goto st1173; +tr3094: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -81700,11 +79516,14 @@ tr3097: p--; {goto st319;} } } - goto st1067; -st1067: + { + s->decimal_counter++; + } + goto st1173; +st1173: if ( ++p == pe ) - goto _test_eof1067; -case 1067: + goto _test_eof1173; +case 1173: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81718,278 +79537,261 @@ case 1067: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3094; - case 32: goto tr3094; - case 40: goto tr3095; - case 41: goto tr3096; - case 2058: goto tr3098; - case 2107: goto tr3099; + case 9: goto tr2933; + case 32: goto tr2933; + case 40: goto tr2934; + case 41: goto tr2935; + case 2058: goto tr2938; + case 2107: goto tr2939; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3097; - goto tr2429; -tr3102: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1068; -tr3103: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1068; -tr3105: + goto tr3094; + goto tr2861; +tr2932: { - s->line_counter++; + s->buffer_length = 0; } - goto st1068; -tr3119: + goto st1174; +tr3095: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1068; goto _out;} - } + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } + goto st1174; +tr2926: { - s->line_counter++; - } - goto st1068; -tr3094: - { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= 59) { + s->loc.m2 = (uint32_t)(s->number64); } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } - goto st1068; -tr3095: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + goto st1174; +st1174: + if ( ++p == pe ) + goto _test_eof1174; +case 1174: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - s->multiline = true; + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st1068; -tr3096: + if ( _widec == 2058 ) + goto tr3096; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3095; + goto tr2861; +tr2920: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } + goto st1175; +tr3097: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } - s->multiline = false; } - goto st1068; -tr3098: + goto st1175; +tr2912: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= 180) { + s->loc.d2 = (uint32_t)(s->number64); } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { - s->line_counter++; + s->buffer_length = 0; } - goto st1068; -st1068: + goto st1175; +st1175: if ( ++p == pe ) - goto _test_eof1068; -case 1068: + goto _test_eof1175; +case 1175: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto st1068; - case 32: goto st1068; - case 40: goto tr3102; - case 41: goto tr3103; - case 2058: goto tr3105; - case 2107: goto tr3106; - } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr3104; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr3104; - } else - goto tr3104; - goto tr3100; -tr3104: + if ( _widec == 2058 ) + goto tr3098; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3097; + goto tr2861; +tr2905: { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } - goto st1069; -st1069: - if ( ++p == pe ) - goto _test_eof1069; -case 1069: - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3107; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3107; - } else - goto tr3107; - goto tr3100; -tr3109: + goto st1176; +tr3099: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } - s->multiline = true; } - goto st1070; -tr3110: + goto st1176; +tr3105: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + s->loc.lat_sign = -1; } - goto st1070; -tr3111: { - s->line_counter++; + s->buffer_length = 0; } - goto st1070; -tr3117: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1070; goto _out;} - } + goto st1176; +st1176: + if ( ++p == pe ) + goto _test_eof1176; +case 1176: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - { - s->line_counter++; - } - goto st1070; -tr3107: - { - *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; - rdata_tail++; - } - goto st1070; -st1070: + if ( _widec == 2058 ) + goto tr3100; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3099; + goto tr2861; +st1177: if ( ++p == pe ) - goto _test_eof1070; -case 1070: + goto _test_eof1177; +case 1177: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1070; - case 32: goto st1070; - case 40: goto tr3109; - case 41: goto tr3110; - case 3082: goto tr3111; - case 3131: goto tr3112; - case 3338: goto tr3113; - case 3387: goto tr3113; - case 3594: goto tr3114; - case 3643: goto tr3115; + case 9: goto tr3101; + case 32: goto tr3101; + case 40: goto tr3102; + case 41: goto tr3103; + case 2058: goto tr3104; + case 2107: goto tr3105; } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr3104; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr3104; - } else - goto tr3104; - goto tr3100; -tr3112: + goto tr2861; +tr2900: { s->buffer_length = 0; } - goto st1071; -tr3116: + goto st1178; +tr3106: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1071; -st1071: + goto st1178; +tr2895: + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= 59999) { + s->loc.s1 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1178; +tr3113: + { + s->number64_tmp = s->number64; + } + { + if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { + s->number64 *= pow(10, s->decimals); + } else if (s->decimal_counter <= s->decimals && + s->number64_tmp < UINT32_MAX) { + s->number64 *= pow(10, s->decimals - s->decimal_counter); + s->number64 += s->number64_tmp * pow(10, s->decimals); + } else { + WARN(ZS_FLOAT_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->number64 <= 59999) { + s->loc.s1 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1178; +st1178: if ( ++p == pe ) - goto _test_eof1071; -case 1071: + goto _test_eof1178; +case 1178: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82009,81 +79811,137 @@ case 1071: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3117; + goto tr3107; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3116; - goto tr3100; -tr3113: + goto tr3106; + goto tr2861; +st1179: + if ( ++p == pe ) + goto _test_eof1179; +case 1179: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr3108; + case 32: goto tr3108; + case 40: goto tr3109; + case 41: goto tr3110; + case 2058: goto tr3112; + case 2107: goto tr3113; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3111; + goto tr2861; +tr3111: { - p--; {cs = stack[--top];goto _again;} + s->number64_tmp = s->number64; } - goto st1548; -st1548: - if ( ++p == pe ) - goto _test_eof1548; -case 1548: - goto st0; + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + { + s->decimal_counter++; + } + goto st1180; tr3114: { - s->line_counter++; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } { - p--; {cs = stack[--top];goto _again;} + s->decimal_counter++; } - goto st1549; -st1549: + goto st1180; +st1180: if ( ++p == pe ) - goto _test_eof1549; -case 1549: + goto _test_eof1180; +case 1180: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1070; - case 32: goto st1070; - case 40: goto tr3109; - case 41: goto tr3110; - case 3082: goto tr3111; - case 3131: goto tr3112; - case 3338: goto tr3113; - case 3387: goto tr3113; - case 3594: goto tr3114; - case 3643: goto tr3115; + case 9: goto tr2889; + case 32: goto tr2889; + case 40: goto tr2890; + case 41: goto tr2891; + case 2058: goto tr2894; + case 2107: goto tr2895; } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr3104; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr3104; - } else - goto tr3104; - goto tr3100; -tr3115: + if ( 48 <= _widec && _widec <= 57 ) + goto tr3114; + goto tr2861; +tr2888: { s->buffer_length = 0; } + goto st1181; +tr3115: { - p--; {cs = stack[--top];goto _again;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto st1550; -st1550: + goto st1181; +tr2882: + { + if (s->number64 <= 59) { + s->loc.m1 = (uint32_t)(s->number64); + } else { + WARN(ZS_BAD_NUMBER); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1181; +st1181: if ( ++p == pe ) - goto _test_eof1550; -case 1550: + goto _test_eof1181; +case 1181: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82103,40 +79961,39 @@ case 1550: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3117; - if ( 1920 <= _widec && _widec <= 2175 ) goto tr3116; - goto tr3100; -tr3106: + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3115; + goto tr2861; +tr2876: { s->buffer_length = 0; } - goto st1072; -tr3118: + goto st1182; +tr3117: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1072; -tr3099: + goto st1182; +tr2868: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= 90) { + s->loc.d1 = (uint32_t)(s->number64); } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_BAD_NUMBER); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1072; -st1072: + goto st1182; +st1182: if ( ++p == pe ) - goto _test_eof1072; -case 1072: + goto _test_eof1182; +case 1182: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82156,62 +80013,171 @@ case 1072: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3119; - if ( 1920 <= _widec && _widec <= 2175 ) goto tr3118; - goto tr77; -tr3092: + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3117; + goto tr2861; +st1183: + if ( ++p == pe ) + goto _test_eof1183; +case 1183: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr3119; + goto tr2653; +tr3119: { - s->buffer_length = 0; + s->number64 = 0; } - goto st1073; -tr3120: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} } } - goto st1073; -st1073: + goto st1184; +tr3123: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1184; +st1184: if ( ++p == pe ) - goto _test_eof1073; -case 1073: + goto _test_eof1184; +case 1184: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr3121; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3120; - goto tr77; -tr3087: + switch( _widec ) { + case 9: goto tr3120; + case 32: goto tr3120; + case 40: goto tr3121; + case 41: goto tr3122; + case 2058: goto tr3124; + case 2107: goto tr3125; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3123; + goto tr2653; +tr3127: { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1074; + goto st1185; +tr3128: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1185; +tr3130: + { + s->line_counter++; + } + goto st1185; +tr3162: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1185; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1185; +tr3120: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + goto st1185; +tr3121: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1185; tr3122: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} } } - goto st1074; -tr3081: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1185; +tr3124: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82223,44 +80189,37 @@ tr3081: } } { - s->buffer_length = 0; + s->line_counter++; } - goto st1074; -st1074: + goto st1185; +st1185: if ( ++p == pe ) - goto _test_eof1074; -case 1074: + goto _test_eof1185; +case 1185: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr3123; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3122; - goto tr77; -st1075: - if ( ++p == pe ) - goto _test_eof1075; -case 1075: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3124; - goto tr2429; -tr3124: + switch( _widec ) { + case 9: goto st1185; + case 32: goto st1185; + case 40: goto tr3127; + case 41: goto tr3128; + case 2058: goto tr3130; + case 2107: goto tr3131; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3129; + goto tr2653; +tr3129: { s->number64 = 0; } @@ -82278,8 +80237,8 @@ tr3124: p--; {goto st319;} } } - goto st1076; -tr3128: + goto st1186; +tr3135: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -82294,11 +80253,11 @@ tr3128: p--; {goto st319;} } } - goto st1076; -st1076: + goto st1186; +st1186: if ( ++p == pe ) - goto _test_eof1076; -case 1076: + goto _test_eof1186; +case 1186: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82312,17 +80271,17 @@ case 1076: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3125; - case 32: goto tr3125; - case 40: goto tr3126; - case 41: goto tr3127; - case 2058: goto tr3129; - case 2107: goto tr3130; + case 9: goto tr3132; + case 32: goto tr3132; + case 40: goto tr3133; + case 41: goto tr3134; + case 2058: goto tr3136; + case 2107: goto tr3137; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3128; - goto tr2429; -tr3132: + goto tr3135; + goto tr2653; +tr3139: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -82330,8 +80289,8 @@ tr3132: } s->multiline = true; } - goto st1077; -tr3133: + goto st1187; +tr3140: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -82339,13 +80298,13 @@ tr3133: } s->multiline = false; } - goto st1077; -tr3135: + goto st1187; +tr3142: { s->line_counter++; } - goto st1077; -tr3163: + goto st1187; +tr3160: { s->buffer[s->buffer_length++] = 0; @@ -82355,32 +80314,34 @@ tr3163: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1077; goto _out;} + {p++; cs = 1187; goto _out;} } } } { s->line_counter++; } - goto st1077; -tr3125: + goto st1187; +tr3132: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } - goto st1077; -tr3126: + goto st1187; +tr3133: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } @@ -82391,14 +80352,15 @@ tr3126: } s->multiline = true; } - goto st1077; -tr3127: + goto st1187; +tr3134: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } @@ -82409,25 +80371,26 @@ tr3127: } s->multiline = false; } - goto st1077; -tr3129: + goto st1187; +tr3136: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { s->line_counter++; } - goto st1077; -st1077: + goto st1187; +st1187: if ( ++p == pe ) - goto _test_eof1077; -case 1077: + goto _test_eof1187; +case 1187: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82441,17 +80404,17 @@ case 1077: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1077; - case 32: goto st1077; - case 40: goto tr3132; - case 41: goto tr3133; - case 2058: goto tr3135; - case 2107: goto tr3136; + case 9: goto st1187; + case 32: goto st1187; + case 40: goto tr3139; + case 41: goto tr3140; + case 2058: goto tr3142; + case 2107: goto tr3143; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3134; - goto tr2429; -tr3134: + goto tr3141; + goto tr2653; +tr3141: { s->number64 = 0; } @@ -82469,8 +80432,8 @@ tr3134: p--; {goto st319;} } } - goto st1078; -tr3140: + goto st1188; +tr3147: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -82485,11 +80448,11 @@ tr3140: p--; {goto st319;} } } - goto st1078; -st1078: + goto st1188; +st1188: if ( ++p == pe ) - goto _test_eof1078; -case 1078: + goto _test_eof1188; +case 1188: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82503,26 +80466,26 @@ case 1078: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3137; - case 32: goto tr3137; - case 40: goto tr3138; - case 41: goto tr3139; - case 2058: goto tr3141; - case 2107: goto tr3142; + case 9: goto tr3144; + case 32: goto tr3144; + case 40: goto tr3145; + case 41: goto tr3146; + case 2058: goto tr3148; + case 2107: goto tr3149; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3140; - goto tr2429; -tr3144: + goto tr3147; + goto tr2653; +tr3151: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } s->multiline = true; - } - goto st1079; -tr3145: + } + goto st1189; +tr3152: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -82530,13 +80493,13 @@ tr3145: } s->multiline = false; } - goto st1079; -tr3147: + goto st1189; +tr3154: { s->line_counter++; } - goto st1079; -tr3161: + goto st1189; +tr3158: { s->buffer[s->buffer_length++] = 0; @@ -82546,32 +80509,34 @@ tr3161: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1079; goto _out;} + {p++; cs = 1189; goto _out;} } } } { s->line_counter++; } - goto st1079; -tr3137: + goto st1189; +tr3144: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } - goto st1079; -tr3138: + goto st1189; +tr3145: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } @@ -82582,14 +80547,15 @@ tr3138: } s->multiline = true; } - goto st1079; -tr3139: + goto st1189; +tr3146: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } @@ -82600,25 +80566,26 @@ tr3139: } s->multiline = false; } - goto st1079; -tr3141: + goto st1189; +tr3148: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { s->line_counter++; } - goto st1079; -st1079: + goto st1189; +st1189: if ( ++p == pe ) - goto _test_eof1079; -case 1079: + goto _test_eof1189; +case 1189: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82632,243 +80599,89 @@ case 1079: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1079; - case 32: goto st1079; - case 40: goto tr3144; - case 41: goto tr3145; - case 2058: goto tr3147; - case 2107: goto tr3148; - } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr3146; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr3146; - } else - goto tr3146; - goto tr3100; -tr3146: - { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + case 9: goto st1189; + case 32: goto st1189; + case 40: goto tr3151; + case 41: goto tr3152; + case 42: goto tr3153; + case 92: goto tr3153; + case 95: goto tr3153; + case 2058: goto tr3154; + case 2107: goto tr3155; } - goto st1080; -st1080: - if ( ++p == pe ) - goto _test_eof1080; -case 1080: - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3149; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3149; + if ( _widec < 64 ) { + if ( 45 <= _widec && _widec <= 57 ) + goto tr3153; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr3153; } else - goto tr3149; - goto tr3100; -tr3151: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1081; -tr3152: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1081; + goto tr3153; + goto tr77; tr3153: { - s->line_counter++; + s->dname = rdata_tail; } - goto st1081; -tr3159: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1081; goto _out;} - } - } + { p--; {stack[top++] = 1190;goto st321;} } + goto st1190; +st1190: + if ( ++p == pe ) + goto _test_eof1190; +case 1190: + switch( (*p) ) { + case 32: goto tr3156; + case 59: goto tr3156; } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr3156; + } else if ( (*p) >= 9 ) + goto tr3156; + goto tr77; +tr3156: { - s->line_counter++; + rdata_tail += s->dname_tmp_length; } - goto st1081; -tr3149: { - *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; - rdata_tail++; + p--; {cs = stack[--top];goto _again;} } - goto st1081; -st1081: + goto st1534; +st1534: if ( ++p == pe ) - goto _test_eof1081; -case 1081: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto st1081; - case 32: goto st1081; - case 40: goto tr3151; - case 41: goto tr3152; - case 3082: goto tr3153; - case 3131: goto tr3154; - case 3338: goto tr3155; - case 3387: goto tr3155; - case 3594: goto tr3156; - case 3643: goto tr3157; - } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr3146; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr3146; - } else - goto tr3146; - goto tr3100; -tr3154: + goto _test_eof1534; +case 1534: + goto st0; +tr3155: { s->buffer_length = 0; } - goto st1082; -tr3158: + goto st1191; +tr3157: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1082; -st1082: - if ( ++p == pe ) - goto _test_eof1082; -case 1082: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr3159; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3158; - goto tr3100; -tr3155: - { - p--; {cs = stack[--top];goto _again;} - } - goto st1551; -st1551: - if ( ++p == pe ) - goto _test_eof1551; -case 1551: - goto st0; -tr3156: - { - s->line_counter++; - } + goto st1191; +tr3149: { - p--; {cs = stack[--top];goto _again;} - } - goto st1552; -st1552: - if ( ++p == pe ) - goto _test_eof1552; -case 1552: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto st1081; - case 32: goto st1081; - case 40: goto tr3151; - case 41: goto tr3152; - case 3082: goto tr3153; - case 3131: goto tr3154; - case 3338: goto tr3155; - case 3387: goto tr3155; - case 3594: goto tr3156; - case 3643: goto tr3157; } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr3146; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr3146; - } else - goto tr3146; - goto tr3100; -tr3157: { s->buffer_length = 0; } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1553; -st1553: + goto st1191; +st1191: if ( ++p == pe ) - goto _test_eof1553; -case 1553: + goto _test_eof1191; +case 1191: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82888,40 +80701,41 @@ case 1553: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3159; - if ( 1920 <= _widec && _widec <= 2175 ) goto tr3158; - goto tr3100; -tr3148: + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3157; + goto tr77; +tr3143: { s->buffer_length = 0; } - goto st1083; -tr3160: + goto st1192; +tr3159: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1083; -tr3142: + goto st1192; +tr3137: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1083; -st1083: + goto st1192; +st1192: if ( ++p == pe ) - goto _test_eof1083; -case 1083: + goto _test_eof1192; +case 1192: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82941,40 +80755,41 @@ case 1083: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3161; - if ( 1920 <= _widec && _widec <= 2175 ) goto tr3160; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3159; goto tr77; -tr3136: +tr3131: { s->buffer_length = 0; } - goto st1084; -tr3162: + goto st1193; +tr3161: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1084; -tr3130: + goto st1193; +tr3125: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { s->buffer_length = 0; } - goto st1084; -st1084: + goto st1193; +st1193: if ( ++p == pe ) - goto _test_eof1084; -case 1084: + goto _test_eof1193; +case 1193: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82994,18 +80809,18 @@ case 1084: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3163; - if ( 1920 <= _widec && _widec <= 2175 ) goto tr3162; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3161; goto tr77; -st1085: +st1194: if ( ++p == pe ) - goto _test_eof1085; -case 1085: + goto _test_eof1194; +case 1194: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3164; - goto tr2429; -tr3164: + goto tr3163; + goto tr2653; +tr3163: { s->number64 = 0; } @@ -83023,8 +80838,8 @@ tr3164: p--; {goto st319;} } } - goto st1086; -tr3168: + goto st1195; +tr3167: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -83039,11 +80854,11 @@ tr3168: p--; {goto st319;} } } - goto st1086; -st1086: + goto st1195; +st1195: if ( ++p == pe ) - goto _test_eof1086; -case 1086: + goto _test_eof1195; +case 1195: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83057,17 +80872,17 @@ case 1086: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3165; - case 32: goto tr3165; - case 40: goto tr3166; - case 41: goto tr3167; - case 2058: goto tr3169; - case 2107: goto tr3170; + case 9: goto tr3164; + case 32: goto tr3164; + case 40: goto tr3165; + case 41: goto tr3166; + case 2058: goto tr3168; + case 2107: goto tr3169; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3168; - goto tr2429; -tr3173: + goto tr3167; + goto tr2653; +tr3171: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -83075,8 +80890,8 @@ tr3173: } s->multiline = true; } - goto st1087; -tr3174: + goto st1196; +tr3172: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -83084,13 +80899,13 @@ tr3174: } s->multiline = false; } - goto st1087; -tr3179: + goto st1196; +tr3174: { s->line_counter++; } - goto st1087; -tr3372: + goto st1196; +tr3231: { s->buffer[s->buffer_length++] = 0; @@ -83100,32 +80915,34 @@ tr3372: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1087; goto _out;} + {p++; cs = 1196; goto _out;} } } } { s->line_counter++; } - goto st1087; -tr3165: + goto st1196; +tr3164: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } - goto st1087; -tr3166: + goto st1196; +tr3165: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } @@ -83136,14 +80953,15 @@ tr3166: } s->multiline = true; } - goto st1087; -tr3167: + goto st1196; +tr3166: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } @@ -83154,125 +80972,26 @@ tr3167: } s->multiline = false; } - goto st1087; -tr3169: + goto st1196; +tr3168: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} - } - } - { - s->line_counter++; - } - goto st1087; -st1087: - if ( ++p == pe ) - goto _test_eof1087; -case 1087: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1087; - case 32: goto st1087; - case 40: goto tr3173; - case 41: goto tr3174; - case 48: goto tr3175; - case 49: goto tr3176; - case 50: goto tr3177; - case 51: goto tr3178; - case 2058: goto tr3179; - case 2107: goto tr3180; - } - goto tr3171; -tr3175: - { - *(rdata_tail++) = 0; - } - goto st1088; -st1088: - if ( ++p == pe ) - goto _test_eof1088; -case 1088: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1089; - case 32: goto st1089; - case 40: goto tr3182; - case 41: goto tr3183; - case 2058: goto tr3184; - case 2107: goto tr3185; - } - goto tr3171; -tr3182: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1089; -tr3183: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } - s->multiline = false; - } - goto st1089; -tr3184: - { - s->line_counter++; - } - goto st1089; -tr3234: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1089; goto _out;} - } - } } { s->line_counter++; } - goto st1089; -st1089: + goto st1196; +st1196: if ( ++p == pe ) - goto _test_eof1089; -case 1089: + goto _test_eof1196; +case 1196: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83286,17 +81005,17 @@ case 1089: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1089; - case 32: goto st1089; - case 40: goto tr3182; - case 41: goto tr3183; - case 2058: goto tr3184; - case 2107: goto tr3185; + case 9: goto st1196; + case 32: goto st1196; + case 40: goto tr3171; + case 41: goto tr3172; + case 2058: goto tr3174; + case 2107: goto tr3175; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3187; - goto tr3186; -tr3187: + goto tr3173; + goto tr2653; +tr3173: { s->number64 = 0; } @@ -83314,8 +81033,8 @@ tr3187: p--; {goto st319;} } } - goto st1090; -tr3191: + goto st1197; +tr3179: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -83330,11 +81049,11 @@ tr3191: p--; {goto st319;} } } - goto st1090; -st1090: + goto st1197; +st1197: if ( ++p == pe ) - goto _test_eof1090; -case 1090: + goto _test_eof1197; +case 1197: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83348,17 +81067,17 @@ case 1090: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3188; - case 32: goto tr3188; - case 40: goto tr3189; - case 41: goto tr3190; - case 2058: goto tr3192; - case 2107: goto tr3193; + case 9: goto tr3176; + case 32: goto tr3176; + case 40: goto tr3177; + case 41: goto tr3178; + case 2058: goto tr3180; + case 2107: goto tr3181; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3191; - goto tr3186; -tr3195: + goto tr3179; + goto tr2653; +tr3184: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -83366,8 +81085,8 @@ tr3195: } s->multiline = true; } - goto st1091; -tr3196: + goto st1198; +tr3185: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -83375,13 +81094,13 @@ tr3196: } s->multiline = false; } - goto st1091; -tr3198: + goto st1198; +tr3186: { s->line_counter++; } - goto st1091; -tr3232: + goto st1198; +tr3229: { s->buffer[s->buffer_length++] = 0; @@ -83391,32 +81110,34 @@ tr3232: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1091; goto _out;} + {p++; cs = 1198; goto _out;} } } } { s->line_counter++; } - goto st1091; -tr3188: + goto st1198; +tr3176: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } - goto st1091; -tr3189: + goto st1198; +tr3177: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } @@ -83427,14 +81148,15 @@ tr3189: } s->multiline = true; } - goto st1091; -tr3190: + goto st1198; +tr3178: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } @@ -83445,25 +81167,26 @@ tr3190: } s->multiline = false; } - goto st1091; -tr3192: + goto st1198; +tr3180: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { s->line_counter++; } - goto st1091; -st1091: + goto st1198; +st1198: if ( ++p == pe ) - goto _test_eof1091; -case 1091: + goto _test_eof1198; +case 1198: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83477,113 +81200,59 @@ case 1091: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1091; - case 32: goto st1091; - case 40: goto tr3195; - case 41: goto tr3196; - case 46: goto st1092; - case 2058: goto tr3198; - case 2107: goto tr3199; + case 9: goto st1198; + case 32: goto st1198; + case 40: goto tr3184; + case 41: goto tr3185; + case 2058: goto tr3186; + case 2107: goto tr3187; } - goto tr3171; -st1092: + if ( _widec < 11 ) { + if ( _widec <= 8 ) + goto tr3182; + } else if ( _widec > 58 ) { + if ( 60 <= _widec ) + goto tr3182; + } else + goto tr3182; + goto tr77; +tr3182: + { + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + { p--; {stack[top++] = 1199;goto st330;} } + goto st1199; +st1199: if ( ++p == pe ) - goto _test_eof1092; -case 1092: + goto _test_eof1199; +case 1199: _widec = (*p); - if ( (*p) < 32 ) { - if ( (*p) > 9 ) { - if ( 10 <= (*p) && (*p) <= 10 ) { - _widec = (short)(9856 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - if ( - s->number64 != 0 ) _widec += 1024; - if ( - s->number64 == 0 ) _widec += 2048; - } - } else if ( (*p) >= 9 ) { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( - s->number64 == 0 ) _widec += 512; - } - } else if ( (*p) > 32 ) { - if ( (*p) < 41 ) { - if ( 40 <= (*p) && (*p) <= 40 ) { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - } else if ( (*p) > 41 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(9856 + ((*p) - -128)); - if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - if ( - s->number64 != 0 ) _widec += 1024; - if ( - s->number64 == 0 ) _widec += 2048; - } - } else { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; } - } else { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( - s->number64 == 0 ) _widec += 512; + s->multiline ) _widec += 256; } switch( _widec ) { - case 7177: goto st1093; - case 7200: goto st1093; - case 7208: goto tr3202; - case 7209: goto tr3203; - case 7433: goto st1096; - case 7456: goto st1096; - case 7464: goto tr3205; - case 7465: goto tr3206; - case 7689: goto st1098; - case 7712: goto st1098; - case 7720: goto tr3208; - case 7721: goto tr3209; - case 10506: goto tr3210; - case 10555: goto tr3210; - case 10762: goto tr3210; - case 10811: goto tr3210; - case 11274: goto tr3211; - case 11323: goto tr3212; - case 11530: goto tr3210; - case 11579: goto tr3210; - case 11786: goto tr3213; - case 11835: goto tr3214; - case 12298: goto tr3215; - case 12347: goto tr3216; - case 12554: goto tr3210; - case 12603: goto tr3210; - case 12810: goto tr3217; - case 12859: goto tr3218; - case 13322: goto tr3219; - case 13371: goto tr3220; - case 13578: goto tr3210; - case 13627: goto tr3210; - case 13834: goto tr3221; - case 13883: goto tr3222; - } - goto tr3200; -tr3202: + case 9: goto tr3188; + case 32: goto tr3188; + case 40: goto tr3189; + case 41: goto tr3190; + case 2058: goto tr3191; + case 2107: goto tr3192; + } + goto tr77; +tr3195: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -83591,8 +81260,8 @@ tr3202: } s->multiline = true; } - goto st1093; -tr3203: + goto st1200; +tr3196: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -83600,13 +81269,13 @@ tr3203: } s->multiline = false; } - goto st1093; -tr3211: + goto st1200; +tr3197: { s->line_counter++; } - goto st1093; -tr3226: + goto st1200; +tr3227: { s->buffer[s->buffer_length++] = 0; @@ -83616,58 +81285,42 @@ tr3226: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1093; goto _out;} + {p++; cs = 1200; goto _out;} } } } { s->line_counter++; } - goto st1093; -tr3256: + goto st1200; +tr3188: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1093; -tr3301: + goto st1200; +tr3189: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; - } - goto st1093; -tr3345: - { - rdata_tail += s->dname_tmp_length; - } - goto st1093; -tr3346: - { - rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { @@ -83676,10 +81329,20 @@ tr3346: } s->multiline = true; } - goto st1093; -tr3347: + goto st1200; +tr3190: { - rdata_tail += s->dname_tmp_length; + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } { if (s->multiline == false) { @@ -83688,57 +81351,104 @@ tr3347: } s->multiline = false; } - goto st1093; -tr3355: + goto st1200; +tr3191: { - rdata_tail += s->dname_tmp_length; + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } { s->line_counter++; } - goto st1093; -tr3257: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} + goto st1200; +st1200: + if ( ++p == pe ) + goto _test_eof1200; +case 1200: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1200; + case 32: goto st1200; + case 40: goto tr3195; + case 41: goto tr3196; + case 2058: goto tr3197; + case 2107: goto tr3198; } + if ( _widec < 11 ) { + if ( _widec <= 8 ) + goto tr3193; + } else if ( _widec > 58 ) { + if ( 60 <= _widec ) + goto tr3193; + } else + goto tr3193; + goto tr77; +tr3193: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; + } else { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + { p--; {stack[top++] = 1201;goto st330;} } + goto st1201; +st1201: + if ( ++p == pe ) + goto _test_eof1201; +case 1201: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - s->multiline = true; + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st1093; -tr3258: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto tr3199; + case 32: goto tr3199; + case 40: goto tr3200; + case 41: goto tr3201; + case 2058: goto tr3202; + case 2107: goto tr3203; } + goto tr77; +tr3206: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + s->multiline = true; } + goto st1202; +tr3207: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -83746,44 +81456,58 @@ tr3258: } s->multiline = false; } - goto st1093; -tr3266: + goto st1202; +tr3208: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } + s->line_counter++; } + goto st1202; +tr3225: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1202; goto _out;} + } } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } { s->line_counter++; } - goto st1093; -tr3302: + goto st1202; +tr3199: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } + goto st1202; +tr3200: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; } { if (s->multiline == true) { @@ -83792,23 +81516,20 @@ tr3302: } s->multiline = true; } - goto st1093; -tr3303: + goto st1202; +tr3201: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; } { if (s->multiline == false) { @@ -83817,430 +81538,602 @@ tr3303: } s->multiline = false; } - goto st1093; -tr3311: + goto st1202; +tr3202: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; } { s->line_counter++; } - goto st1093; -st1093: + goto st1202; +st1202: if ( ++p == pe ) - goto _test_eof1093; -case 1093: + goto _test_eof1202; +case 1202: _widec = (*p); - if ( (*p) < 43 ) { - if ( (*p) < 32 ) { - if ( (*p) > 9 ) { - if ( 10 <= (*p) && (*p) <= 10 ) { - _widec = (short)(4224 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; - } - } else if ( (*p) >= 9 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) > 32 ) { - if ( (*p) > 40 ) { - if ( 41 <= (*p) && (*p) <= 41 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) >= 40 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) > 43 ) { - if ( (*p) < 59 ) { - if ( (*p) > 47 ) { - if ( 48 <= (*p) && (*p) <= 57 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) >= 47 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) > 59 ) { - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) >= 65 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else { - _widec = (short)(4224 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; } - } else { - _widec = (short)(3712 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( - s->number64 != 0 ) _widec += 256; + s->multiline ) _widec += 256; } switch( _widec ) { - case 4105: goto st1093; - case 4128: goto st1093; - case 4136: goto tr3202; - case 4137: goto tr3203; - case 4139: goto tr3224; - case 5130: goto tr3211; - case 5179: goto tr3212; + case 9: goto st1202; + case 32: goto st1202; + case 40: goto tr3206; + case 41: goto tr3207; + case 2058: goto tr3208; + case 2107: goto tr3209; } - if ( _widec < 4161 ) { - if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3224; - } else if ( _widec > 4186 ) { - if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3224; + if ( _widec < 11 ) { + if ( _widec <= 8 ) + goto tr3204; + } else if ( _widec > 58 ) { + if ( 60 <= _widec ) + goto tr3204; } else - goto tr3224; - goto tr3223; -tr3224: - { p--; {stack[top++] = 1094;goto st381;} } - goto st1094; -st1094: + goto tr3204; + goto tr77; +tr3204: + { + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + } + { p--; {stack[top++] = 1203;goto st330;} } + goto st1203; +st1203: if ( ++p == pe ) - goto _test_eof1094; -case 1094: + goto _test_eof1203; +case 1203: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2176 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( - !s->multiline ) _widec += 256; + s->multiline ) _widec += 256; } } else if ( (*p) >= 10 ) { - _widec = (short)(2176 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( - !s->multiline ) _widec += 256; + s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3210; - case 2619: goto tr3210; + case 9: goto tr3210; + case 32: goto tr3210; + case 40: goto tr3211; + case 41: goto tr3212; + case 2058: goto tr3213; + case 2107: goto tr3214; } - goto tr3223; -tr3210: - { - p--; {cs = stack[--top];goto _again;} - } - goto st1554; -tr3265: + goto tr77; +tr3216: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st1204; +tr3217: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + s->multiline = false; } + goto st1204; +tr3219: { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1554; -tr3354: + goto st1204; +tr3223: { - rdata_tail += s->dname_tmp_length; + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1204; goto _out;} + } + } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1554; -tr3310: + goto st1204; +tr3210: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } + goto st1204; +tr3211: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1554; -st1554: - if ( ++p == pe ) - goto _test_eof1554; -case 1554: - goto st0; + goto st1204; tr3212: { - s->buffer_length = 0; + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } - goto st1095; -tr3225: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } - goto st1095; -tr3356: + goto st1204; +tr3213: { - rdata_tail += s->dname_tmp_length; + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st319;} + } } { - s->buffer_length = 0; + s->line_counter++; } - goto st1095; -tr3267: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} + goto st1204; +st1204: + if ( ++p == pe ) + goto _test_eof1204; +case 1204: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1204; + case 32: goto st1204; + case 40: goto tr3216; + case 41: goto tr3217; + case 42: goto tr3218; + case 92: goto tr3218; + case 95: goto tr3218; + case 2058: goto tr3219; + case 2107: goto tr3220; } + if ( _widec < 64 ) { + if ( 45 <= _widec && _widec <= 57 ) + goto tr3218; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr3218; + } else + goto tr3218; + goto tr77; +tr3218: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + s->dname = rdata_tail; + } + { p--; {stack[top++] = 1205;goto st321;} } + goto st1205; +st1205: + if ( ++p == pe ) + goto _test_eof1205; +case 1205: + switch( (*p) ) { + case 32: goto tr3221; + case 59: goto tr3221; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr3221; + } else if ( (*p) >= 9 ) + goto tr3221; + goto tr77; +tr3221: + { + rdata_tail += s->dname_tmp_length; } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1535; +st1535: + if ( ++p == pe ) + goto _test_eof1535; +case 1535: + goto st0; +tr3220: { s->buffer_length = 0; } - goto st1095; -tr3312: + goto st1206; +tr3222: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } + goto st1206; +tr3214: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; } { s->buffer_length = 0; } - goto st1095; -st1095: + goto st1206; +st1206: if ( ++p == pe ) - goto _test_eof1095; -case 1095: + goto _test_eof1206; +case 1206: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { - _widec = (short)(4224 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; } } else if ( (*p) > 10 ) { if ( 11 <= (*p) ) - { _widec = (short)(4224 + ((*p) - -128)); + { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; } } else { - _widec = (short)(4224 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; } - if ( _widec == 5130 ) - goto tr3226; - if ( 4992 <= _widec && _widec <= 5247 ) - goto tr3225; - goto tr3223; -tr3205: + if ( _widec == 2058 ) + goto tr3223; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3222; + goto tr77; +tr3209: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + s->buffer_length = 0; + } + goto st1207; +tr3224: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } - s->multiline = true; } - goto st1096; -tr3206: + goto st1207; +tr3203: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st319;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } - s->multiline = false; } - goto st1096; -tr3215: { - s->line_counter++; + s->buffer_length = 0; } - goto st1096; -tr3228: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1096; goto _out;} - } + goto st1207; +st1207: + if ( ++p == pe ) + goto _test_eof1207; +case 1207: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr3225; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3224; + goto tr77; +tr3198: { - s->line_counter++; + s->buffer_length = 0; } - goto st1096; -tr3259: + goto st1208; +tr3226: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } + goto st1208; +tr3192: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; - } - goto st1096; -tr3304: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); p--; {goto st319;} } } { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + s->buffer_length = 0; + } + goto st1208; +st1208: + if ( ++p == pe ) + goto _test_eof1208; +case 1208: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st1096; -tr3348: + if ( _widec == 2058 ) + goto tr3227; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3226; + goto tr77; +tr3187: { - rdata_tail += s->dname_tmp_length; + s->buffer_length = 0; } - goto st1096; -tr3349: + goto st1209; +tr3228: { - rdata_tail += s->dname_tmp_length; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } + goto st1209; +tr3181: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st1096; -tr3350: { - rdata_tail += s->dname_tmp_length; + s->buffer_length = 0; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + goto st1209; +st1209: + if ( ++p == pe ) + goto _test_eof1209; +case 1209: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - s->multiline = false; + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st1096; -tr3359: + if ( _widec == 2058 ) + goto tr3229; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3228; + goto tr77; +tr3175: { - rdata_tail += s->dname_tmp_length; + s->buffer_length = 0; } + goto st1210; +tr3230: { - s->line_counter++; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto st1096; -tr3260: + goto st1210; +tr3169: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + s->buffer_length = 0; + } + goto st1210; +st1210: + if ( ++p == pe ) + goto _test_eof1210; +case 1210: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr3231; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3230; + goto tr77; +st1211: + if ( ++p == pe ) + goto _test_eof1211; +case 1211: + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr3232; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr3232; + } else + goto tr3232; + goto tr77; +tr3232: + { p--; {stack[top++] = 1212;goto st1022;} } + goto st1212; +st1212: + if ( ++p == pe ) + goto _test_eof1212; +case 1212: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1213; + case 32: goto st1213; + case 40: goto tr3234; + case 41: goto tr3235; + case 2058: goto tr3236; + case 2107: goto tr3237; } + goto tr77; +tr3234: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -84248,24 +82141,8 @@ tr3260: } s->multiline = true; } - goto st1096; -tr3261: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } - } - { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; - } + goto st1213; +tr3235: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -84273,70 +82150,129 @@ tr3261: } s->multiline = false; } - goto st1096; -tr3270: + goto st1213; +tr3236: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } + s->line_counter++; } + goto st1213; +tr3263: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1213; goto _out;} + } } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } { s->line_counter++; } - goto st1096; -tr3305: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} + goto st1213; +st1213: + if ( ++p == pe ) + goto _test_eof1213; +case 1213: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1213; + case 32: goto st1213; + case 40: goto tr3234; + case 41: goto tr3235; + case 2058: goto tr3236; + case 2107: goto tr3237; } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3238; + goto tr2653; +tr3238: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + s->number64 = 0; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } - s->multiline = true; } - goto st1096; -tr3306: + goto st1214; +tr3242: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } + goto st1214; +st1214: + if ( ++p == pe ) + goto _test_eof1214; +case 1214: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr3239; + case 32: goto tr3239; + case 40: goto tr3240; + case 41: goto tr3241; + case 2058: goto tr3243; + case 2107: goto tr3244; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3242; + goto tr2653; +tr3246: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + s->multiline = true; } + goto st1215; +tr3247: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -84344,421 +82280,398 @@ tr3306: } s->multiline = false; } - goto st1096; -tr3315: + goto st1215; +tr3249: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} - } + s->line_counter++; } + goto st1215; +tr3261: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1215; goto _out;} + } } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; } { s->line_counter++; } - goto st1096; -st1096: - if ( ++p == pe ) - goto _test_eof1096; -case 1096: - _widec = (*p); - if ( (*p) < 32 ) { - if ( (*p) > 9 ) { - if ( 10 <= (*p) && (*p) <= 10 ) { - _widec = (short)(13952 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - if ( - s->number64 == 0 ) _widec += 1024; - } - } else if ( (*p) >= 9 ) { - _widec = (short)(5248 + ((*p) - -128)); - if ( - s->number64 == 0 ) _widec += 256; - } - } else if ( (*p) > 32 ) { - if ( (*p) < 41 ) { - if ( 40 <= (*p) && (*p) <= 40 ) { - _widec = (short)(5248 + ((*p) - -128)); - if ( - s->number64 == 0 ) _widec += 256; - } - } else if ( (*p) > 41 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(13952 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - if ( - s->number64 == 0 ) _widec += 1024; - } + goto st1215; +tr3239: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - _widec = (short)(5248 + ((*p) - -128)); - if ( - s->number64 == 0 ) _widec += 256; + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} } - } else { - _widec = (short)(5248 + ((*p) - -128)); - if ( - s->number64 == 0 ) _widec += 256; - } - switch( _widec ) { - case 5641: goto st1096; - case 5664: goto st1096; - case 5672: goto tr3205; - case 5673: goto tr3206; - case 14602: goto tr3210; - case 14651: goto tr3210; - case 14858: goto tr3210; - case 14907: goto tr3210; - case 15370: goto tr3215; - case 15419: goto tr3216; - case 15626: goto tr3210; - case 15675: goto tr3210; - case 15882: goto tr3217; - case 15931: goto tr3218; - } - goto tr3223; -tr3216: - { - s->buffer_length = 0; } - goto st1097; -tr3227: + goto st1215; +tr3240: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} } } - goto st1097; -tr3360: - { - rdata_tail += s->dname_tmp_length; - } { - s->buffer_length = 0; - } - goto st1097; -tr3271: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st1215; +tr3241: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; - } - { - s->buffer_length = 0; } - goto st1097; -tr3316: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1215; +tr3243: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; } { - s->buffer_length = 0; + s->line_counter++; } - goto st1097; -st1097: + goto st1215; +st1215: if ( ++p == pe ) - goto _test_eof1097; -case 1097: + goto _test_eof1215; +case 1215: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(5760 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(5760 + ((*p) - -128)); - if ( + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1215; + case 32: goto st1215; + case 40: goto tr3246; + case 41: goto tr3247; + case 2058: goto tr3249; + case 2107: goto tr3250; + } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr3248; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr3248; + } else + goto tr3248; + goto tr77; +tr3248: + { p--; {stack[top++] = 1216;goto st918;} } + goto st1216; +st1216: + if ( ++p == pe ) + goto _test_eof1216; +case 1216: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( - s->number64 == 0 ) _widec += 512; + s->multiline ) _widec += 256; } - } else { - _widec = (short)(5760 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - if ( _widec == 6666 ) - goto tr3228; - if ( 6528 <= _widec && _widec <= 6783 ) - goto tr3227; - goto tr3223; -tr3217: - { - s->line_counter++; } - { - p--; {cs = stack[--top];goto _again;} + switch( _widec ) { + case 9: goto st1217; + case 32: goto st1217; + case 40: goto tr3252; + case 41: goto tr3253; + case 2058: goto tr3254; + case 2107: goto tr3255; } - goto st1555; -tr3272: + goto tr77; +tr3252: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); p--; {goto st319;} } + s->multiline = true; } + goto st1217; +tr3253: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + s->multiline = false; } + goto st1217; +tr3254: { s->line_counter++; } + goto st1217; +tr3259: { - p--; {cs = stack[--top];goto _again;} - } - goto st1555; -tr3317: - { - s->buffer[s->buffer_length] = 0; + s->buffer[s->buffer_length++] = 0; - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} - } - } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1217; goto _out;} + } } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; - } - { - s->line_counter++; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1555; -tr3361: - { - rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1555; -st1555: + goto st1217; +st1217: if ( ++p == pe ) - goto _test_eof1555; -case 1555: + goto _test_eof1217; +case 1217: _widec = (*p); - if ( (*p) < 32 ) { - if ( (*p) > 9 ) { - if ( 10 <= (*p) && (*p) <= 10 ) { - _widec = (short)(13952 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - if ( - s->number64 == 0 ) _widec += 1024; - } - } else if ( (*p) >= 9 ) { - _widec = (short)(5248 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( - s->number64 == 0 ) _widec += 256; + s->multiline ) _widec += 256; } - } else if ( (*p) > 32 ) { - if ( (*p) < 41 ) { - if ( 40 <= (*p) && (*p) <= 40 ) { - _widec = (short)(5248 + ((*p) - -128)); - if ( - s->number64 == 0 ) _widec += 256; - } - } else if ( (*p) > 41 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(13952 + ((*p) - -128)); - if ( + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - if ( - s->number64 == 0 ) _widec += 1024; - } - } else { - _widec = (short)(5248 + ((*p) - -128)); + } + switch( _widec ) { + case 9: goto st1217; + case 32: goto st1217; + case 40: goto tr3252; + case 41: goto tr3253; + case 43: goto tr3256; + case 2058: goto tr3254; + case 2107: goto tr3255; + } + if ( _widec < 65 ) { + if ( 47 <= _widec && _widec <= 57 ) + goto tr3256; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr3256; + } else + goto tr3256; + goto tr77; +tr3256: + { p--; {stack[top++] = 1218;goto st381;} } + goto st1218; +st1218: + if ( ++p == pe ) + goto _test_eof1218; +case 1218: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2176 + ((*p) - -128)); if ( - s->number64 == 0 ) _widec += 256; + !s->multiline ) _widec += 256; } - } else { - _widec = (short)(5248 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2176 + ((*p) - -128)); if ( - s->number64 == 0 ) _widec += 256; + !s->multiline ) _widec += 256; } switch( _widec ) { - case 5641: goto st1096; - case 5664: goto st1096; - case 5672: goto tr3205; - case 5673: goto tr3206; - case 14602: goto tr3210; - case 14651: goto tr3210; - case 14858: goto tr3210; - case 14907: goto tr3210; - case 15370: goto tr3215; - case 15419: goto tr3216; - case 15626: goto tr3210; - case 15675: goto tr3210; - case 15882: goto tr3217; - case 15931: goto tr3218; - } - goto tr3223; -tr3218: - { - s->buffer_length = 0; + case 2570: goto tr3257; + case 2619: goto tr3257; } + goto tr77; +tr3257: { p--; {cs = stack[--top];goto _again;} } - goto st1556; -tr3273: + goto st1536; +st1536: + if ( ++p == pe ) + goto _test_eof1536; +case 1536: + goto st0; +tr3255: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} + s->buffer_length = 0; + } + goto st1219; +tr3258: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1219; +st1219: + if ( ++p == pe ) + goto _test_eof1219; +case 1219: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - } - { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr3259; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3258; + goto tr77; +tr3250: { s->buffer_length = 0; } + goto st1220; +tr3260: { - p--; {cs = stack[--top];goto _again;} - } - goto st1556; -tr3318: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } + goto st1220; +tr3244: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; } { s->buffer_length = 0; } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1556; -tr3362: - { - rdata_tail += s->dname_tmp_length; + goto st1220; +st1220: + if ( ++p == pe ) + goto _test_eof1220; +case 1220: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr3261; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3260; + goto tr77; +tr3237: { s->buffer_length = 0; } + goto st1221; +tr3262: { - p--; {cs = stack[--top];goto _again;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto st1556; -st1556: + goto st1221; +st1221: if ( ++p == pe ) - goto _test_eof1556; -case 1556: + goto _test_eof1221; +case 1221: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { - _widec = (short)(5760 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; } } else if ( (*p) > 10 ) { if ( 11 <= (*p) ) - { _widec = (short)(5760 + ((*p) - -128)); + { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; } } else { - _widec = (short)(5760 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; } - if ( _widec == 6666 ) - goto tr3228; - if ( 6528 <= _widec && _widec <= 6783 ) - goto tr3227; - goto tr3223; -tr3208: + if ( _widec == 2058 ) + goto tr3263; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3262; + goto tr77; +tr3267: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -84766,8 +82679,8 @@ tr3208: } s->multiline = true; } - goto st1098; -tr3209: + goto st1222; +tr3268: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -84775,13 +82688,13 @@ tr3209: } s->multiline = false; } - goto st1098; -tr3219: + goto st1222; +tr3271: { s->line_counter++; } - goto st1098; -tr3230: + goto st1222; +tr3294: { s->buffer[s->buffer_length++] = 0; @@ -84791,174 +82704,118 @@ tr3230: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1098; goto _out;} + {p++; cs = 1222; goto _out;} } } } { s->line_counter++; } - goto st1098; -tr3262: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } - } - { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; - } - goto st1098; -tr3307: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} - } - } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; - } - goto st1098; -tr3351: - { - rdata_tail += s->dname_tmp_length; - } - goto st1098; -tr3352: - { - rdata_tail += s->dname_tmp_length; - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1098; -tr3353: - { - rdata_tail += s->dname_tmp_length; - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1098; -tr3363: - { - rdata_tail += s->dname_tmp_length; - } - { - s->line_counter++; - } - goto st1098; -tr3263: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } - } + goto st1222; +tr3284: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if ((s->apl.addr_family == 1 && s->number64 <= 32) || + (s->apl.addr_family == 2 && s->number64 <= 128)) { + s->apl.prefix_length = (uint8_t)(s->number64); + } else { + WARN(ZS_BAD_APL); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + // Copy address to buffer. + uint8_t len; + switch (s->apl.addr_family) { + case 1: + len = ZS_INET4_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + case 2: + len = ZS_INET6_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + default: + WARN(ZS_BAD_APL); p--; {goto st319;} } - s->multiline = true; - } - goto st1098; -tr3264: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} + // Find prefix without trailing zeroes. + while (len > 0) { + if ((s->buffer[len - 1] & 255) != 0) { + break; + } + len--; } - } - { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + // Check for rdata overflow. + if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + // Write address family. + uint16_t af = htons(s->apl.addr_family); + memcpy(rdata_tail, &af, sizeof(af)); + rdata_tail += 2; + // Write prefix length in bits. + *(rdata_tail) = s->apl.prefix_length; + rdata_tail += 1; + // Write negation flag + prefix length in bytes. + *(rdata_tail) = len + s->apl.excl_flag; + rdata_tail += 1; + // Write address prefix non-null data. + memcpy(rdata_tail, s->buffer, len); + rdata_tail += len; } - goto st1098; -tr3274: + goto st1222; +tr3285: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + if ((s->apl.addr_family == 1 && s->number64 <= 32) || + (s->apl.addr_family == 2 && s->number64 <= 128)) { + s->apl.prefix_length = (uint8_t)(s->number64); + } else { + WARN(ZS_BAD_APL); p--; {goto st319;} } } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + // Copy address to buffer. + uint8_t len; + switch (s->apl.addr_family) { + case 1: + len = ZS_INET4_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + case 2: + len = ZS_INET6_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + default: + WARN(ZS_BAD_APL); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; - } - { - s->line_counter++; - } - goto st1098; -tr3308: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} + // Find prefix without trailing zeroes. + while (len > 0) { + if ((s->buffer[len - 1] & 255) != 0) { + break; + } + len--; } - } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + // Check for rdata overflow. + if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + // Write address family. + uint16_t af = htons(s->apl.addr_family); + memcpy(rdata_tail, &af, sizeof(af)); + rdata_tail += 2; + // Write prefix length in bits. + *(rdata_tail) = s->apl.prefix_length; + rdata_tail += 1; + // Write negation flag + prefix length in bytes. + *(rdata_tail) = len + s->apl.excl_flag; + rdata_tail += 1; + // Write address prefix non-null data. + memcpy(rdata_tail, s->buffer, len); + rdata_tail += len; } { if (s->multiline == true) { @@ -84967,617 +82824,554 @@ tr3308: } s->multiline = true; } - goto st1098; -tr3309: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} - } - } + goto st1222; +tr3286: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if ((s->apl.addr_family == 1 && s->number64 <= 32) || + (s->apl.addr_family == 2 && s->number64 <= 128)) { + s->apl.prefix_length = (uint8_t)(s->number64); + } else { + WARN(ZS_BAD_APL); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + // Copy address to buffer. + uint8_t len; + switch (s->apl.addr_family) { + case 1: + len = ZS_INET4_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + case 2: + len = ZS_INET6_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + default: + WARN(ZS_BAD_APL); p--; {goto st319;} } - s->multiline = false; - } - goto st1098; -tr3319: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} + // Find prefix without trailing zeroes. + while (len > 0) { + if ((s->buffer[len - 1] & 255) != 0) { + break; + } + len--; } - } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + // Check for rdata overflow. + if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; - } - { - s->line_counter++; - } - goto st1098; -st1098: - if ( ++p == pe ) - goto _test_eof1098; -case 1098: - _widec = (*p); - if ( (*p) < 43 ) { - if ( (*p) < 32 ) { - if ( (*p) > 9 ) { - if ( 10 <= (*p) && (*p) <= 10 ) { - _widec = (short)(9856 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - if ( - s->number64 != 0 ) _widec += 1024; - if ( - s->number64 == 0 ) _widec += 2048; - } - } else if ( (*p) >= 9 ) { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - } else if ( (*p) > 32 ) { - if ( (*p) > 40 ) { - if ( 41 <= (*p) && (*p) <= 41 ) { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - } else if ( (*p) >= 40 ) { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - } else { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - } else if ( (*p) > 43 ) { - if ( (*p) < 59 ) { - if ( (*p) > 47 ) { - if ( 48 <= (*p) && (*p) <= 57 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) >= 47 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) > 59 ) { - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) >= 65 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else { - _widec = (short)(9856 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - if ( - s->number64 != 0 ) _widec += 1024; - if ( - s->number64 == 0 ) _widec += 2048; - } - } else { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - switch( _widec ) { - case 4139: goto tr3224; - case 7177: goto st1093; - case 7200: goto st1093; - case 7208: goto tr3202; - case 7209: goto tr3203; - case 7433: goto st1096; - case 7456: goto st1096; - case 7464: goto tr3205; - case 7465: goto tr3206; - case 7689: goto st1098; - case 7712: goto st1098; - case 7720: goto tr3208; - case 7721: goto tr3209; - case 10506: goto tr3210; - case 10555: goto tr3210; - case 10762: goto tr3210; - case 10811: goto tr3210; - case 11274: goto tr3211; - case 11323: goto tr3212; - case 11530: goto tr3210; - case 11579: goto tr3210; - case 11786: goto tr3213; - case 11835: goto tr3214; - case 12298: goto tr3215; - case 12347: goto tr3216; - case 12554: goto tr3210; - case 12603: goto tr3210; - case 12810: goto tr3217; - case 12859: goto tr3218; - case 13322: goto tr3219; - case 13371: goto tr3220; - case 13578: goto tr3210; - case 13627: goto tr3210; - case 13834: goto tr3221; - case 13883: goto tr3222; - } - if ( _widec < 4161 ) { - if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3224; - } else if ( _widec > 4186 ) { - if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3224; - } else - goto tr3224; - goto tr3223; -tr3213: - { - s->line_counter++; - } - { - p--; {cs = stack[--top];goto _again;} + // Write address family. + uint16_t af = htons(s->apl.addr_family); + memcpy(rdata_tail, &af, sizeof(af)); + rdata_tail += 2; + // Write prefix length in bits. + *(rdata_tail) = s->apl.prefix_length; + rdata_tail += 1; + // Write negation flag + prefix length in bytes. + *(rdata_tail) = len + s->apl.excl_flag; + rdata_tail += 1; + // Write address prefix non-null data. + memcpy(rdata_tail, s->buffer, len); + rdata_tail += len; } - goto st1557; -tr3268: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1222; +tr3288: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + if ((s->apl.addr_family == 1 && s->number64 <= 32) || + (s->apl.addr_family == 2 && s->number64 <= 128)) { + s->apl.prefix_length = (uint8_t)(s->number64); + } else { + WARN(ZS_BAD_APL); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; - } - { - s->line_counter++; } { - p--; {cs = stack[--top];goto _again;} - } - goto st1557; -tr3313: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + // Copy address to buffer. + uint8_t len; + switch (s->apl.addr_family) { + case 1: + len = ZS_INET4_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + case 2: + len = ZS_INET6_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + default: + WARN(ZS_BAD_APL); p--; {goto st319;} } - } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + // Find prefix without trailing zeroes. + while (len > 0) { + if ((s->buffer[len - 1] & 255) != 0) { + break; + } + len--; + } + // Check for rdata overflow. + if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; - } - { - s->line_counter++; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1557; -tr3357: - { - rdata_tail += s->dname_tmp_length; + // Write address family. + uint16_t af = htons(s->apl.addr_family); + memcpy(rdata_tail, &af, sizeof(af)); + rdata_tail += 2; + // Write prefix length in bits. + *(rdata_tail) = s->apl.prefix_length; + rdata_tail += 1; + // Write negation flag + prefix length in bytes. + *(rdata_tail) = len + s->apl.excl_flag; + rdata_tail += 1; + // Write address prefix non-null data. + memcpy(rdata_tail, s->buffer, len); + rdata_tail += len; } { s->line_counter++; } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1557; -st1557: + goto st1222; +st1222: if ( ++p == pe ) - goto _test_eof1557; -case 1557: + goto _test_eof1222; +case 1222: _widec = (*p); - if ( (*p) < 43 ) { - if ( (*p) < 32 ) { - if ( (*p) > 9 ) { - if ( 10 <= (*p) && (*p) <= 10 ) { - _widec = (short)(4224 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; - } - } else if ( (*p) >= 9 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) > 32 ) { - if ( (*p) > 40 ) { - if ( 41 <= (*p) && (*p) <= 41 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) >= 40 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) > 43 ) { - if ( (*p) < 59 ) { - if ( (*p) > 47 ) { - if ( 48 <= (*p) && (*p) <= 57 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) >= 47 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) > 59 ) { - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) >= 65 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else { - _widec = (short)(4224 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; if ( - s->number64 != 0 ) _widec += 512; + !s->multiline ) _widec += 512; } - } else { - _widec = (short)(3712 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( - s->number64 != 0 ) _widec += 256; + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 4105: goto st1093; - case 4128: goto st1093; - case 4136: goto tr3202; - case 4137: goto tr3203; - case 4139: goto tr3224; - case 5130: goto tr3211; - case 5179: goto tr3212; - } - if ( _widec < 4161 ) { - if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3224; - } else if ( _widec > 4186 ) { - if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3224; - } else - goto tr3224; - goto tr3223; -tr3214: + case 9: goto st1222; + case 32: goto st1222; + case 33: goto tr3266; + case 40: goto tr3267; + case 41: goto tr3268; + case 49: goto tr3269; + case 50: goto tr3270; + case 3082: goto tr3271; + case 3131: goto tr3272; + case 3338: goto tr3273; + case 3387: goto tr3273; + case 3594: goto tr3274; + case 3643: goto tr3275; + } + goto tr3264; +tr3266: { - s->buffer_length = 0; + memset(&(s->apl), 0, sizeof(s->apl)); } { - p--; {cs = stack[--top];goto _again;} + s->apl.excl_flag = 128; // dec 128 = bin 10000000. } - goto st1558; + goto st1223; +st1223: + if ( ++p == pe ) + goto _test_eof1223; +case 1223: + switch( (*p) ) { + case 49: goto tr3276; + case 50: goto tr3277; + } + goto tr3264; tr3269: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st319;} - } + memset(&(s->apl), 0, sizeof(s->apl)); } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + s->apl.addr_family = 1; + } + goto st1224; +tr3276: + { + s->apl.addr_family = 1; + } + goto st1224; +st1224: + if ( ++p == pe ) + goto _test_eof1224; +case 1224: + if ( (*p) == 58 ) + goto st1225; + goto tr3264; +st1225: + if ( ++p == pe ) + goto _test_eof1225; +case 1225: + if ( (*p) == 46 ) + goto tr3280; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr3280; + goto tr3279; +tr3281: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } + goto st1226; +tr3280: { s->buffer_length = 0; } { - p--; {cs = stack[--top];goto _again;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } - goto st1558; -tr3314: + goto st1226; +st1226: + if ( ++p == pe ) + goto _test_eof1226; +case 1226: + if ( (*p) == 47 ) + goto tr3282; + if ( 46 <= (*p) && (*p) <= 57 ) + goto tr3281; + goto tr3279; +tr3282: { s->buffer[s->buffer_length] = 0; - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } } + goto st1227; +tr3298: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; - } - { - s->buffer_length = 0; - } - { - p--; {cs = stack[--top];goto _again;} } - goto st1558; -tr3358: + goto st1227; +st1227: + if ( ++p == pe ) + goto _test_eof1227; +case 1227: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr3283; + goto tr3264; +tr3283: { - rdata_tail += s->dname_tmp_length; + s->number64 = 0; } { - s->buffer_length = 0; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } + goto st1228; +tr3287: { - p--; {cs = stack[--top];goto _again;} + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } - goto st1558; -st1558: + goto st1228; +st1228: if ( ++p == pe ) - goto _test_eof1558; -case 1558: + goto _test_eof1228; +case 1228: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(4224 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(4224 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; if ( - s->number64 != 0 ) _widec += 512; + !s->multiline ) _widec += 512; } - } else { - _widec = (short)(4224 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; if ( - s->number64 != 0 ) _widec += 512; + !s->multiline ) _widec += 512; } - if ( _widec == 5130 ) - goto tr3226; - if ( 4992 <= _widec && _widec <= 5247 ) - goto tr3225; - goto tr3223; -tr3220: + switch( _widec ) { + case 9: goto tr3284; + case 32: goto tr3284; + case 40: goto tr3285; + case 41: goto tr3286; + case 3082: goto tr3288; + case 3131: goto tr3289; + case 3338: goto tr3290; + case 3387: goto tr3290; + case 3594: goto tr3291; + case 3643: goto tr3292; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3287; + goto tr3264; +tr3272: { s->buffer_length = 0; } - goto st1099; -tr3229: + goto st1229; +tr3293: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1099; -tr3364: - { - rdata_tail += s->dname_tmp_length; - } - { - s->buffer_length = 0; - } - goto st1099; -tr3275: + goto st1229; +tr3289: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + if ((s->apl.addr_family == 1 && s->number64 <= 32) || + (s->apl.addr_family == 2 && s->number64 <= 128)) { + s->apl.prefix_length = (uint8_t)(s->number64); + } else { + WARN(ZS_BAD_APL); p--; {goto st319;} } } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); + // Copy address to buffer. + uint8_t len; + switch (s->apl.addr_family) { + case 1: + len = ZS_INET4_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + case 2: + len = ZS_INET6_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + default: + WARN(ZS_BAD_APL); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; - } - { - s->buffer_length = 0; - } - goto st1099; -tr3320: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st319;} + // Find prefix without trailing zeroes. + while (len > 0) { + if ((s->buffer[len - 1] & 255) != 0) { + break; + } + len--; } - } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + // Check for rdata overflow. + if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + // Write address family. + uint16_t af = htons(s->apl.addr_family); + memcpy(rdata_tail, &af, sizeof(af)); + rdata_tail += 2; + // Write prefix length in bits. + *(rdata_tail) = s->apl.prefix_length; + rdata_tail += 1; + // Write negation flag + prefix length in bytes. + *(rdata_tail) = len + s->apl.excl_flag; + rdata_tail += 1; + // Write address prefix non-null data. + memcpy(rdata_tail, s->buffer, len); + rdata_tail += len; } { s->buffer_length = 0; } - goto st1099; -st1099: + goto st1229; +st1229: if ( ++p == pe ) - goto _test_eof1099; -case 1099: + goto _test_eof1229; +case 1229: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { - _widec = (short)(7808 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; - if ( - s->number64 == 0 ) _widec += 1024; } } else if ( (*p) > 10 ) { if ( 11 <= (*p) ) - { _widec = (short)(7808 + ((*p) - -128)); + { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; - if ( - s->number64 == 0 ) _widec += 1024; } } else { - _widec = (short)(7808 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; - if ( - s->number64 == 0 ) _widec += 1024; - } - switch( _widec ) { - case 8714: goto tr3226; - case 9226: goto tr3228; - case 9738: goto tr3230; - } - if ( _widec < 9088 ) { - if ( 8576 <= _widec && _widec <= 8831 ) - goto tr3225; - } else if ( _widec > 9343 ) { - if ( 9600 <= _widec && _widec <= 9855 ) - goto tr3229; - } else - goto tr3227; - goto tr3223; -tr3221: - { - s->line_counter++; } + if ( _widec == 2058 ) + goto tr3294; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3293; + goto tr77; +tr3273: { p--; {cs = stack[--top];goto _again;} } - goto st1559; -tr3276: + goto st1537; +tr3290: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + if ((s->apl.addr_family == 1 && s->number64 <= 32) || + (s->apl.addr_family == 2 && s->number64 <= 128)) { + s->apl.prefix_length = (uint8_t)(s->number64); + } else { + WARN(ZS_BAD_APL); p--; {goto st319;} } } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + // Copy address to buffer. + uint8_t len; + switch (s->apl.addr_family) { + case 1: + len = ZS_INET4_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + case 2: + len = ZS_INET6_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + default: + WARN(ZS_BAD_APL); + p--; {goto st319;} + } + // Find prefix without trailing zeroes. + while (len > 0) { + if ((s->buffer[len - 1] & 255) != 0) { + break; + } + len--; + } + // Check for rdata overflow. + if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + // Write address family. + uint16_t af = htons(s->apl.addr_family); + memcpy(rdata_tail, &af, sizeof(af)); + rdata_tail += 2; + // Write prefix length in bits. + *(rdata_tail) = s->apl.prefix_length; + rdata_tail += 1; + // Write negation flag + prefix length in bytes. + *(rdata_tail) = len + s->apl.excl_flag; + rdata_tail += 1; + // Write address prefix non-null data. + memcpy(rdata_tail, s->buffer, len); + rdata_tail += len; } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1537; +st1537: + if ( ++p == pe ) + goto _test_eof1537; +case 1537: + goto st0; +tr3274: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1559; -tr3321: + goto st1538; +tr3291: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + if ((s->apl.addr_family == 1 && s->number64 <= 32) || + (s->apl.addr_family == 2 && s->number64 <= 128)) { + s->apl.prefix_length = (uint8_t)(s->number64); + } else { + WARN(ZS_BAD_APL); p--; {goto st319;} } } { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + // Copy address to buffer. + uint8_t len; + switch (s->apl.addr_family) { + case 1: + len = ZS_INET4_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + case 2: + len = ZS_INET6_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + default: + WARN(ZS_BAD_APL); + p--; {goto st319;} + } + // Find prefix without trailing zeroes. + while (len > 0) { + if ((s->buffer[len - 1] & 255) != 0) { + break; + } + len--; + } + // Check for rdata overflow. + if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; - } - { - s->line_counter++; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1559; -tr3365: - { - rdata_tail += s->dname_tmp_length; + // Write address family. + uint16_t af = htons(s->apl.addr_family); + memcpy(rdata_tail, &af, sizeof(af)); + rdata_tail += 2; + // Write prefix length in bits. + *(rdata_tail) = s->apl.prefix_length; + rdata_tail += 1; + // Write negation flag + prefix length in bytes. + *(rdata_tail) = len + s->apl.excl_flag; + rdata_tail += 1; + // Write address prefix non-null data. + memcpy(rdata_tail, s->buffer, len); + rdata_tail += len; } { s->line_counter++; @@ -85585,202 +83379,175 @@ tr3365: { p--; {cs = stack[--top];goto _again;} } - goto st1559; -st1559: + goto st1538; +st1538: if ( ++p == pe ) - goto _test_eof1559; -case 1559: + goto _test_eof1538; +case 1538: _widec = (*p); - if ( (*p) < 43 ) { - if ( (*p) < 32 ) { - if ( (*p) > 9 ) { - if ( 10 <= (*p) && (*p) <= 10 ) { - _widec = (short)(9856 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - if ( - s->number64 != 0 ) _widec += 1024; - if ( - s->number64 == 0 ) _widec += 2048; - } - } else if ( (*p) >= 9 ) { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - } else if ( (*p) > 32 ) { - if ( (*p) > 40 ) { - if ( 41 <= (*p) && (*p) <= 41 ) { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - } else if ( (*p) >= 40 ) { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - } else { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - } else if ( (*p) > 43 ) { - if ( (*p) < 59 ) { - if ( (*p) > 47 ) { - if ( 48 <= (*p) && (*p) <= 57 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) >= 47 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) > 59 ) { - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else if ( (*p) >= 65 ) { - _widec = (short)(3712 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - } - } else { - _widec = (short)(9856 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; if ( !s->multiline ) _widec += 512; - if ( - s->number64 != 0 ) _widec += 1024; - if ( - s->number64 == 0 ) _widec += 2048; } - } else { - _widec = (short)(3712 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( - s->number64 != 0 ) _widec += 256; + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 4139: goto tr3224; - case 7177: goto st1093; - case 7200: goto st1093; - case 7208: goto tr3202; - case 7209: goto tr3203; - case 7433: goto st1096; - case 7456: goto st1096; - case 7464: goto tr3205; - case 7465: goto tr3206; - case 7689: goto st1098; - case 7712: goto st1098; - case 7720: goto tr3208; - case 7721: goto tr3209; - case 10506: goto tr3210; - case 10555: goto tr3210; - case 10762: goto tr3210; - case 10811: goto tr3210; - case 11274: goto tr3211; - case 11323: goto tr3212; - case 11530: goto tr3210; - case 11579: goto tr3210; - case 11786: goto tr3213; - case 11835: goto tr3214; - case 12298: goto tr3215; - case 12347: goto tr3216; - case 12554: goto tr3210; - case 12603: goto tr3210; - case 12810: goto tr3217; - case 12859: goto tr3218; - case 13322: goto tr3219; - case 13371: goto tr3220; - case 13578: goto tr3210; - case 13627: goto tr3210; - case 13834: goto tr3221; - case 13883: goto tr3222; - } - if ( _widec < 4161 ) { - if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3224; - } else if ( _widec > 4186 ) { - if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3224; - } else - goto tr3224; - goto tr3223; -tr3222: + case 9: goto st1222; + case 32: goto st1222; + case 33: goto tr3266; + case 40: goto tr3267; + case 41: goto tr3268; + case 49: goto tr3269; + case 50: goto tr3270; + case 3082: goto tr3271; + case 3131: goto tr3272; + case 3338: goto tr3273; + case 3387: goto tr3273; + case 3594: goto tr3274; + case 3643: goto tr3275; + } + goto tr3264; +tr3270: { - s->buffer_length = 0; + memset(&(s->apl), 0, sizeof(s->apl)); } { - p--; {cs = stack[--top];goto _again;} + s->apl.addr_family = 2; } - goto st1560; + goto st1230; tr3277: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); + s->apl.addr_family = 2; + } + goto st1230; +st1230: + if ( ++p == pe ) + goto _test_eof1230; +case 1230: + if ( (*p) == 58 ) + goto st1231; + goto tr3264; +st1231: + if ( ++p == pe ) + goto _test_eof1231; +case 1231: + if ( (*p) == 46 ) + goto tr3296; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr3296; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr3296; + } else + goto tr3296; + goto tr3279; +tr3297: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } + goto st1232; +tr3296: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + s->buffer_length = 0; + } + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } + goto st1232; +st1232: + if ( ++p == pe ) + goto _test_eof1232; +case 1232: + if ( (*p) == 47 ) + goto tr3298; + if ( (*p) < 65 ) { + if ( 46 <= (*p) && (*p) <= 58 ) + goto tr3297; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr3297; + } else + goto tr3297; + goto tr3279; +tr3275: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1560; -tr3322: + goto st1539; +tr3292: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); + if ((s->apl.addr_family == 1 && s->number64 <= 32) || + (s->apl.addr_family == 2 && s->number64 <= 128)) { + s->apl.prefix_length = (uint8_t)(s->number64); + } else { + WARN(ZS_BAD_APL); p--; {goto st319;} } } { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + // Copy address to buffer. + uint8_t len; + switch (s->apl.addr_family) { + case 1: + len = ZS_INET4_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + case 2: + len = ZS_INET6_ADDR_LENGTH; + memcpy(s->buffer, s->addr, len); + break; + default: + WARN(ZS_BAD_APL); + p--; {goto st319;} + } + // Find prefix without trailing zeroes. + while (len > 0) { + if ((s->buffer[len - 1] & 255) != 0) { + break; + } + len--; + } + // Check for rdata overflow. + if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; - } - { - s->buffer_length = 0; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1560; -tr3366: - { - rdata_tail += s->dname_tmp_length; + // Write address family. + uint16_t af = htons(s->apl.addr_family); + memcpy(rdata_tail, &af, sizeof(af)); + rdata_tail += 2; + // Write prefix length in bits. + *(rdata_tail) = s->apl.prefix_length; + rdata_tail += 1; + // Write negation flag + prefix length in bytes. + *(rdata_tail) = len + s->apl.excl_flag; + rdata_tail += 1; + // Write address prefix non-null data. + memcpy(rdata_tail, s->buffer, len); + rdata_tail += len; } { s->buffer_length = 0; @@ -85788,156 +83555,249 @@ tr3366: { p--; {cs = stack[--top];goto _again;} } - goto st1560; -st1560: + goto st1539; +st1539: if ( ++p == pe ) - goto _test_eof1560; -case 1560: + goto _test_eof1539; +case 1539: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { - _widec = (short)(7808 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; - if ( - s->number64 == 0 ) _widec += 1024; } } else if ( (*p) > 10 ) { if ( 11 <= (*p) ) - { _widec = (short)(7808 + ((*p) - -128)); + { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; - if ( - s->number64 == 0 ) _widec += 1024; } } else { - _widec = (short)(7808 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - s->number64 != 0 ) _widec += 512; - if ( - s->number64 == 0 ) _widec += 1024; - } - switch( _widec ) { - case 8714: goto tr3226; - case 9226: goto tr3228; - case 9738: goto tr3230; } - if ( _widec < 9088 ) { - if ( 8576 <= _widec && _widec <= 8831 ) - goto tr3225; - } else if ( _widec > 9343 ) { - if ( 9600 <= _widec && _widec <= 9855 ) - goto tr3229; - } else - goto tr3227; - goto tr3223; -tr3199: + if ( _widec == 2058 ) + goto tr3294; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3293; + goto tr77; +st1233: + if ( ++p == pe ) + goto _test_eof1233; +case 1233: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr3299; + goto tr2653; +tr3299: { - s->buffer_length = 0; + s->number64 = 0; } - goto st1100; -tr3231: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} } } - goto st1100; -tr3193: + goto st1234; +tr3303: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER8_OVERFLOW); + WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } } - { - s->buffer_length = 0; - } - goto st1100; -st1100: + goto st1234; +st1234: if ( ++p == pe ) - goto _test_eof1100; -case 1100: + goto _test_eof1234; +case 1234: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr3232; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3231; - goto tr3171; -tr3185: + switch( _widec ) { + case 9: goto tr3300; + case 32: goto tr3300; + case 40: goto tr3301; + case 41: goto tr3302; + case 2058: goto tr3304; + case 2107: goto tr3305; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3303; + goto tr2653; +tr3307: { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1101; -tr3233: + goto st1235; +tr3308: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = false; } - goto st1101; -st1101: - if ( ++p == pe ) - goto _test_eof1101; -case 1101: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1235; +tr3310: + { + s->line_counter++; + } + goto st1235; +tr3347: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1235; goto _out;} + } } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); + } + { + s->line_counter++; + } + goto st1235; +tr3300: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + goto st1235; +tr3301: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1235; +tr3302: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1235; +tr3304: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + goto st1235; +st1235: + if ( ++p == pe ) + goto _test_eof1235; +case 1235: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr3234; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3233; - goto tr3171; -tr3176: - { - *(rdata_tail++) = 1; + switch( _widec ) { + case 9: goto st1235; + case 32: goto st1235; + case 40: goto tr3307; + case 41: goto tr3308; + case 2058: goto tr3310; + case 2107: goto tr3311; } - goto st1102; -st1102: + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr3309; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr3309; + } else + goto tr3309; + goto tr77; +tr3309: + { p--; {stack[top++] = 1236;goto st918;} } + goto st1236; +st1236: if ( ++p == pe ) - goto _test_eof1102; -case 1102: + goto _test_eof1236; +case 1236: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85951,15 +83811,15 @@ case 1102: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1103; - case 32: goto st1103; - case 40: goto tr3236; - case 41: goto tr3237; - case 2058: goto tr3238; - case 2107: goto tr3239; - } - goto tr3171; -tr3236: + case 9: goto st1237; + case 32: goto st1237; + case 40: goto tr3313; + case 41: goto tr3314; + case 2058: goto tr3315; + case 2107: goto tr3316; + } + goto tr77; +tr3313: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -85967,8 +83827,8 @@ tr3236: } s->multiline = true; } - goto st1103; -tr3237: + goto st1237; +tr3314: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -85976,13 +83836,13 @@ tr3237: } s->multiline = false; } - goto st1103; -tr3238: + goto st1237; +tr3315: { s->line_counter++; } - goto st1103; -tr3281: + goto st1237; +tr3345: { s->buffer[s->buffer_length++] = 0; @@ -85992,18 +83852,18 @@ tr3281: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1103; goto _out;} + {p++; cs = 1237; goto _out;} } } } { s->line_counter++; } - goto st1103; -st1103: + goto st1237; +st1237: if ( ++p == pe ) - goto _test_eof1103; -case 1103: + goto _test_eof1237; +case 1237: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86017,17 +83877,17 @@ case 1103: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1103; - case 32: goto st1103; - case 40: goto tr3236; - case 41: goto tr3237; - case 2058: goto tr3238; - case 2107: goto tr3239; + case 9: goto st1237; + case 32: goto st1237; + case 40: goto tr3313; + case 41: goto tr3314; + case 2058: goto tr3315; + case 2107: goto tr3316; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3240; - goto tr3186; -tr3240: + goto tr3317; + goto tr2653; +tr3317: { s->number64 = 0; } @@ -86045,8 +83905,8 @@ tr3240: p--; {goto st319;} } } - goto st1104; -tr3244: + goto st1238; +tr3321: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -86061,11 +83921,11 @@ tr3244: p--; {goto st319;} } } - goto st1104; -st1104: + goto st1238; +st1238: if ( ++p == pe ) - goto _test_eof1104; -case 1104: + goto _test_eof1238; +case 1238: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86079,17 +83939,17 @@ case 1104: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3241; - case 32: goto tr3241; - case 40: goto tr3242; - case 41: goto tr3243; - case 2058: goto tr3245; - case 2107: goto tr3246; + case 9: goto tr3318; + case 32: goto tr3318; + case 40: goto tr3319; + case 41: goto tr3320; + case 2058: goto tr3322; + case 2107: goto tr3323; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3244; - goto tr3186; -tr3249: + goto tr3321; + goto tr2653; +tr3326: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -86097,8 +83957,8 @@ tr3249: } s->multiline = true; } - goto st1105; -tr3250: + goto st1239; +tr3327: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -86106,13 +83966,13 @@ tr3250: } s->multiline = false; } - goto st1105; -tr3252: + goto st1239; +tr3329: { s->line_counter++; } - goto st1105; -tr3279: + goto st1239; +tr3343: { s->buffer[s->buffer_length++] = 0; @@ -86122,15 +83982,15 @@ tr3279: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1105; goto _out;} + {p++; cs = 1239; goto _out;} } } } { s->line_counter++; } - goto st1105; -tr3241: + goto st1239; +tr3318: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -86140,8 +84000,8 @@ tr3241: p--; {goto st319;} } } - goto st1105; -tr3242: + goto st1239; +tr3319: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -86158,8 +84018,8 @@ tr3242: } s->multiline = true; } - goto st1105; -tr3243: + goto st1239; +tr3320: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -86176,8 +84036,8 @@ tr3243: } s->multiline = false; } - goto st1105; -tr3245: + goto st1239; +tr3322: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -86190,11 +84050,11 @@ tr3245: { s->line_counter++; } - goto st1105; -st1105: + goto st1239; +st1239: if ( ++p == pe ) - goto _test_eof1105; -case 1105: + goto _test_eof1239; +case 1239: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86208,153 +84068,279 @@ case 1105: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1105; - case 32: goto st1105; - case 40: goto tr3249; - case 41: goto tr3250; - case 46: goto tr3251; - case 2058: goto tr3252; - case 2107: goto tr3253; + case 9: goto st1239; + case 32: goto st1239; + case 40: goto tr3326; + case 41: goto tr3327; + case 2058: goto tr3329; + case 2107: goto tr3330; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3251; - goto tr3247; -tr3255: + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr3328; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr3328; + } else + goto tr3328; + goto tr3324; +tr3328: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st1106; -tr3251: + goto st1240; +st1240: + if ( ++p == pe ) + goto _test_eof1240; +case 1240: + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr3331; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr3331; + } else + goto tr3331; + goto tr3324; +tr3333: { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } + goto st1241; +tr3334: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } - goto st1106; -st1106: + goto st1241; +tr3335: + { + s->line_counter++; + } + goto st1241; +tr3341: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1241; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1241; +tr3331: + { + *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; + rdata_tail++; + } + goto st1241; +st1241: if ( ++p == pe ) - goto _test_eof1106; -case 1106: + goto _test_eof1241; +case 1241: _widec = (*p); - if ( (*p) < 32 ) { - if ( (*p) > 9 ) { - if ( 10 <= (*p) && (*p) <= 10 ) { - _widec = (short)(9856 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - if ( - s->number64 != 0 ) _widec += 1024; - if ( - s->number64 == 0 ) _widec += 2048; - } - } else if ( (*p) >= 9 ) { - _widec = (short)(6784 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( - s->number64 != 0 ) _widec += 256; + s->multiline ) _widec += 256; if ( - s->number64 == 0 ) _widec += 512; + !s->multiline ) _widec += 512; } - } else if ( (*p) > 32 ) { - if ( (*p) < 41 ) { - if ( 40 <= (*p) && (*p) <= 40 ) { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - } else if ( (*p) > 41 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(9856 + ((*p) - -128)); - if ( + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( s->multiline ) _widec += 256; - if ( + if ( !s->multiline ) _widec += 512; - if ( - s->number64 != 0 ) _widec += 1024; - if ( - s->number64 == 0 ) _widec += 2048; - } - } else { - _widec = (short)(6784 + ((*p) - -128)); + } + switch( _widec ) { + case 9: goto st1241; + case 32: goto st1241; + case 40: goto tr3333; + case 41: goto tr3334; + case 3082: goto tr3335; + case 3131: goto tr3336; + case 3338: goto tr3337; + case 3387: goto tr3337; + case 3594: goto tr3338; + case 3643: goto tr3339; + } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr3328; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr3328; + } else + goto tr3328; + goto tr3324; +tr3336: + { + s->buffer_length = 0; + } + goto st1242; +tr3340: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1242; +st1242: + if ( ++p == pe ) + goto _test_eof1242; +case 1242: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( - s->number64 != 0 ) _widec += 256; + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); if ( - s->number64 == 0 ) _widec += 512; + s->multiline ) _widec += 256; } } else { - _widec = (short)(6784 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( - s->number64 != 0 ) _widec += 256; + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr3341; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3340; + goto tr3324; +tr3337: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1540; +st1540: + if ( ++p == pe ) + goto _test_eof1540; +case 1540: + goto st0; +tr3338: + { + s->line_counter++; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1541; +st1541: + if ( ++p == pe ) + goto _test_eof1541; +case 1541: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( - s->number64 == 0 ) _widec += 512; + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 46: goto tr3255; - case 7177: goto tr3256; - case 7200: goto tr3256; - case 7208: goto tr3257; - case 7209: goto tr3258; - case 7433: goto tr3259; - case 7456: goto tr3259; - case 7464: goto tr3260; - case 7465: goto tr3261; - case 7689: goto tr3262; - case 7712: goto tr3262; - case 7720: goto tr3263; - case 7721: goto tr3264; - case 10506: goto tr3265; - case 10555: goto tr3265; - case 10762: goto tr3265; - case 10811: goto tr3265; - case 11274: goto tr3266; - case 11323: goto tr3267; - case 11530: goto tr3265; - case 11579: goto tr3265; - case 11786: goto tr3268; - case 11835: goto tr3269; - case 12298: goto tr3270; - case 12347: goto tr3271; - case 12554: goto tr3265; - case 12603: goto tr3265; - case 12810: goto tr3272; - case 12859: goto tr3273; - case 13322: goto tr3274; - case 13371: goto tr3275; - case 13578: goto tr3265; - case 13627: goto tr3265; - case 13834: goto tr3276; - case 13883: goto tr3277; + case 9: goto st1241; + case 32: goto st1241; + case 40: goto tr3333; + case 41: goto tr3334; + case 3082: goto tr3335; + case 3131: goto tr3336; + case 3338: goto tr3337; + case 3387: goto tr3337; + case 3594: goto tr3338; + case 3643: goto tr3339; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3255; - goto tr3254; -tr3253: + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr3328; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr3328; + } else + goto tr3328; + goto tr3324; +tr3339: + { + s->buffer_length = 0; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1542; +st1542: + if ( ++p == pe ) + goto _test_eof1542; +case 1542: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr3341; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3340; + goto tr3324; +tr3330: { s->buffer_length = 0; } - goto st1107; -tr3278: + goto st1243; +tr3342: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1107; -tr3246: + goto st1243; +tr3323: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -86367,11 +84353,11 @@ tr3246: { s->buffer_length = 0; } - goto st1107; -st1107: + goto st1243; +st1243: if ( ++p == pe ) - goto _test_eof1107; -case 1107: + goto _test_eof1243; +case 1243: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86391,26 +84377,26 @@ case 1107: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3279; + goto tr3343; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3278; - goto tr3171; -tr3239: + goto tr3342; + goto tr77; +tr3316: { s->buffer_length = 0; } - goto st1108; -tr3280: + goto st1244; +tr3344: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1108; -st1108: + goto st1244; +st1244: if ( ++p == pe ) - goto _test_eof1108; -case 1108: + goto _test_eof1244; +case 1244: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86430,19 +84416,110 @@ case 1108: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3281; + goto tr3345; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3280; - goto tr3171; -tr3177: + goto tr3344; + goto tr77; +tr3311: { - *(rdata_tail++) = 2; + s->buffer_length = 0; } - goto st1109; -st1109: + goto st1245; +tr3346: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1245; +tr3305: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1245; +st1245: if ( ++p == pe ) - goto _test_eof1109; -case 1109: + goto _test_eof1245; +case 1245: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr3347; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3346; + goto tr77; +st1246: + if ( ++p == pe ) + goto _test_eof1246; +case 1246: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr3348; + goto tr2653; +tr3348: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1247; +tr3352: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1247; +st1247: + if ( ++p == pe ) + goto _test_eof1247; +case 1247: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86456,15 +84533,17 @@ case 1109: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1110; - case 32: goto st1110; - case 40: goto tr3283; - case 41: goto tr3284; - case 2058: goto tr3285; - case 2107: goto tr3286; - } - goto tr3171; -tr3283: + case 9: goto tr3349; + case 32: goto tr3349; + case 40: goto tr3350; + case 41: goto tr3351; + case 2058: goto tr3353; + case 2107: goto tr3354; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3352; + goto tr2653; +tr3356: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -86472,8 +84551,8 @@ tr3283: } s->multiline = true; } - goto st1110; -tr3284: + goto st1248; +tr3357: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -86481,34 +84560,95 @@ tr3284: } s->multiline = false; } - goto st1110; -tr3285: + goto st1248; +tr3359: { s->line_counter++; } - goto st1110; -tr3326: + goto st1248; +tr3387: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1248; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1248; +tr3349: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + goto st1248; +tr3350: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1248; +tr3351: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1248; +tr3353: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1110; goto _out;} - } + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} } } { s->line_counter++; } - goto st1110; -st1110: + goto st1248; +st1248: if ( ++p == pe ) - goto _test_eof1110; -case 1110: + goto _test_eof1248; +case 1248: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86522,17 +84662,17 @@ case 1110: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1110; - case 32: goto st1110; - case 40: goto tr3283; - case 41: goto tr3284; - case 2058: goto tr3285; - case 2107: goto tr3286; + case 9: goto st1248; + case 32: goto st1248; + case 40: goto tr3356; + case 41: goto tr3357; + case 2058: goto tr3359; + case 2107: goto tr3360; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3287; - goto tr3186; -tr3287: + goto tr3358; + goto tr2653; +tr3358: { s->number64 = 0; } @@ -86550,8 +84690,8 @@ tr3287: p--; {goto st319;} } } - goto st1111; -tr3291: + goto st1249; +tr3364: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -86566,11 +84706,11 @@ tr3291: p--; {goto st319;} } } - goto st1111; -st1111: + goto st1249; +st1249: if ( ++p == pe ) - goto _test_eof1111; -case 1111: + goto _test_eof1249; +case 1249: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86584,17 +84724,17 @@ case 1111: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3288; - case 32: goto tr3288; - case 40: goto tr3289; - case 41: goto tr3290; - case 2058: goto tr3292; - case 2107: goto tr3293; + case 9: goto tr3361; + case 32: goto tr3361; + case 40: goto tr3362; + case 41: goto tr3363; + case 2058: goto tr3365; + case 2107: goto tr3366; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3291; - goto tr3186; -tr3295: + goto tr3364; + goto tr2653; +tr3368: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -86602,8 +84742,8 @@ tr3295: } s->multiline = true; } - goto st1112; -tr3296: + goto st1250; +tr3369: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -86611,13 +84751,13 @@ tr3296: } s->multiline = false; } - goto st1112; -tr3298: + goto st1250; +tr3371: { s->line_counter++; } - goto st1112; -tr3324: + goto st1250; +tr3385: { s->buffer[s->buffer_length++] = 0; @@ -86627,15 +84767,15 @@ tr3324: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1112; goto _out;} + {p++; cs = 1250; goto _out;} } } } { s->line_counter++; } - goto st1112; -tr3288: + goto st1250; +tr3361: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -86645,8 +84785,8 @@ tr3288: p--; {goto st319;} } } - goto st1112; -tr3289: + goto st1250; +tr3362: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -86663,8 +84803,8 @@ tr3289: } s->multiline = true; } - goto st1112; -tr3290: + goto st1250; +tr3363: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -86681,8 +84821,8 @@ tr3290: } s->multiline = false; } - goto st1112; -tr3292: + goto st1250; +tr3365: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -86695,11 +84835,11 @@ tr3292: { s->line_counter++; } - goto st1112; -st1112: + goto st1250; +st1250: if ( ++p == pe ) - goto _test_eof1112; -case 1112: + goto _test_eof1250; +case 1250: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86713,165 +84853,279 @@ case 1112: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1112; - case 32: goto st1112; - case 40: goto tr3295; - case 41: goto tr3296; - case 46: goto tr3297; - case 2058: goto tr3298; - case 2107: goto tr3299; + case 9: goto st1250; + case 32: goto st1250; + case 40: goto tr3368; + case 41: goto tr3369; + case 2058: goto tr3371; + case 2107: goto tr3372; } if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 58 ) - goto tr3297; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3370; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3297; + goto tr3370; } else - goto tr3297; - goto tr3247; -tr3300: + goto tr3370; + goto tr3324; +tr3370: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - goto st1113; -tr3297: + goto st1251; +st1251: + if ( ++p == pe ) + goto _test_eof1251; +case 1251: + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr3373; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr3373; + } else + goto tr3373; + goto tr3324; +tr3375: { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } + goto st1252; +tr3376: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } - goto st1113; -st1113: + goto st1252; +tr3377: + { + s->line_counter++; + } + goto st1252; +tr3383: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1252; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1252; +tr3373: + { + *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; + rdata_tail++; + } + goto st1252; +st1252: if ( ++p == pe ) - goto _test_eof1113; -case 1113: + goto _test_eof1252; +case 1252: _widec = (*p); - if ( (*p) < 32 ) { - if ( (*p) > 9 ) { - if ( 10 <= (*p) && (*p) <= 10 ) { - _widec = (short)(9856 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - if ( - s->number64 != 0 ) _widec += 1024; - if ( - s->number64 == 0 ) _widec += 2048; - } - } else if ( (*p) >= 9 ) { - _widec = (short)(6784 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( - s->number64 != 0 ) _widec += 256; + s->multiline ) _widec += 256; if ( - s->number64 == 0 ) _widec += 512; + !s->multiline ) _widec += 512; } - } else if ( (*p) > 32 ) { - if ( (*p) < 41 ) { - if ( 40 <= (*p) && (*p) <= 40 ) { - _widec = (short)(6784 + ((*p) - -128)); - if ( - s->number64 != 0 ) _widec += 256; - if ( - s->number64 == 0 ) _widec += 512; - } - } else if ( (*p) > 41 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(9856 + ((*p) - -128)); - if ( + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( s->multiline ) _widec += 256; - if ( + if ( !s->multiline ) _widec += 512; - if ( - s->number64 != 0 ) _widec += 1024; - if ( - s->number64 == 0 ) _widec += 2048; - } - } else { - _widec = (short)(6784 + ((*p) - -128)); + } + switch( _widec ) { + case 9: goto st1252; + case 32: goto st1252; + case 40: goto tr3375; + case 41: goto tr3376; + case 3082: goto tr3377; + case 3131: goto tr3378; + case 3338: goto tr3379; + case 3387: goto tr3379; + case 3594: goto tr3380; + case 3643: goto tr3381; + } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr3370; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr3370; + } else + goto tr3370; + goto tr3324; +tr3378: + { + s->buffer_length = 0; + } + goto st1253; +tr3382: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1253; +st1253: + if ( ++p == pe ) + goto _test_eof1253; +case 1253: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( - s->number64 != 0 ) _widec += 256; + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); if ( - s->number64 == 0 ) _widec += 512; + s->multiline ) _widec += 256; } } else { - _widec = (short)(6784 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( - s->number64 != 0 ) _widec += 256; + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr3383; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3382; + goto tr3324; +tr3379: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1543; +st1543: + if ( ++p == pe ) + goto _test_eof1543; +case 1543: + goto st0; +tr3380: + { + s->line_counter++; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1544; +st1544: + if ( ++p == pe ) + goto _test_eof1544; +case 1544: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( - s->number64 == 0 ) _widec += 512; + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 46: goto tr3300; - case 7177: goto tr3301; - case 7200: goto tr3301; - case 7208: goto tr3302; - case 7209: goto tr3303; - case 7433: goto tr3304; - case 7456: goto tr3304; - case 7464: goto tr3305; - case 7465: goto tr3306; - case 7689: goto tr3307; - case 7712: goto tr3307; - case 7720: goto tr3308; - case 7721: goto tr3309; - case 10506: goto tr3310; - case 10555: goto tr3310; - case 10762: goto tr3310; - case 10811: goto tr3310; - case 11274: goto tr3311; - case 11323: goto tr3312; - case 11530: goto tr3310; - case 11579: goto tr3310; - case 11786: goto tr3313; - case 11835: goto tr3314; - case 12298: goto tr3315; - case 12347: goto tr3316; - case 12554: goto tr3310; - case 12603: goto tr3310; - case 12810: goto tr3317; - case 12859: goto tr3318; - case 13322: goto tr3319; - case 13371: goto tr3320; - case 13578: goto tr3310; - case 13627: goto tr3310; - case 13834: goto tr3321; - case 13883: goto tr3322; + case 9: goto st1252; + case 32: goto st1252; + case 40: goto tr3375; + case 41: goto tr3376; + case 3082: goto tr3377; + case 3131: goto tr3378; + case 3338: goto tr3379; + case 3387: goto tr3379; + case 3594: goto tr3380; + case 3643: goto tr3381; } if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 58 ) - goto tr3300; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3370; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3300; + goto tr3370; } else - goto tr3300; - goto tr3254; -tr3299: + goto tr3370; + goto tr3324; +tr3381: { s->buffer_length = 0; } - goto st1114; -tr3323: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1545; +st1545: + if ( ++p == pe ) + goto _test_eof1545; +case 1545: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr3383; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3382; + goto tr3324; +tr3372: + { + s->buffer_length = 0; + } + goto st1254; +tr3384: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1114; -tr3293: + goto st1254; +tr3366: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -86884,11 +85138,11 @@ tr3293: { s->buffer_length = 0; } - goto st1114; -st1114: + goto st1254; +st1254: if ( ++p == pe ) - goto _test_eof1114; -case 1114: + goto _test_eof1254; +case 1254: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86908,26 +85162,40 @@ case 1114: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3324; + goto tr3385; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3323; - goto tr3171; -tr3286: + goto tr3384; + goto tr77; +tr3360: { s->buffer_length = 0; } - goto st1115; -tr3325: + goto st1255; +tr3386: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1115; -st1115: + goto st1255; +tr3354: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1255; +st1255: if ( ++p == pe ) - goto _test_eof1115; -case 1115: + goto _test_eof1255; +case 1255: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86947,19 +85215,56 @@ case 1115: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3326; + goto tr3387; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3325; - goto tr3171; -tr3178: + goto tr3386; + goto tr77; +st1256: + if ( ++p == pe ) + goto _test_eof1256; +case 1256: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr3388; + goto tr2653; +tr3388: { - *(rdata_tail++) = 3; + s->number64 = 0; } - goto st1116; -st1116: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1257; +tr3392: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1257; +st1257: if ( ++p == pe ) - goto _test_eof1116; -case 1116: + goto _test_eof1257; +case 1257: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86973,15 +85278,17 @@ case 1116: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1117; - case 32: goto st1117; - case 40: goto tr3328; - case 41: goto tr3329; - case 2058: goto tr3330; - case 2107: goto tr3331; - } - goto tr3171; -tr3328: + case 9: goto tr3389; + case 32: goto tr3389; + case 40: goto tr3390; + case 41: goto tr3391; + case 2058: goto tr3393; + case 2107: goto tr3394; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3392; + goto tr2653; +tr3397: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -86989,8 +85296,8 @@ tr3328: } s->multiline = true; } - goto st1117; -tr3329: + goto st1258; +tr3398: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -86998,13 +85305,13 @@ tr3329: } s->multiline = false; } - goto st1117; -tr3330: + goto st1258; +tr3403: { s->line_counter++; } - goto st1117; -tr3370: + goto st1258; +tr3596: { s->buffer[s->buffer_length++] = 0; @@ -87014,18 +85321,179 @@ tr3370: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1117; goto _out;} + {p++; cs = 1258; goto _out;} } } } { s->line_counter++; } - goto st1117; -st1117: + goto st1258; +tr3389: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + goto st1258; +tr3390: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1258; +tr3391: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1258; +tr3393: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + goto st1258; +st1258: if ( ++p == pe ) - goto _test_eof1117; -case 1117: + goto _test_eof1258; +case 1258: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1258; + case 32: goto st1258; + case 40: goto tr3397; + case 41: goto tr3398; + case 48: goto tr3399; + case 49: goto tr3400; + case 50: goto tr3401; + case 51: goto tr3402; + case 2058: goto tr3403; + case 2107: goto tr3404; + } + goto tr3395; +tr3399: + { + *(rdata_tail++) = 0; + } + goto st1259; +st1259: + if ( ++p == pe ) + goto _test_eof1259; +case 1259: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st1260; + case 32: goto st1260; + case 40: goto tr3406; + case 41: goto tr3407; + case 2058: goto tr3408; + case 2107: goto tr3409; + } + goto tr3395; +tr3406: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1260; +tr3407: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1260; +tr3408: + { + s->line_counter++; + } + goto st1260; +tr3458: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1260; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1260; +st1260: + if ( ++p == pe ) + goto _test_eof1260; +case 1260: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87039,17 +85507,17 @@ case 1117: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1117; - case 32: goto st1117; - case 40: goto tr3328; - case 41: goto tr3329; - case 2058: goto tr3330; - case 2107: goto tr3331; + case 9: goto st1260; + case 32: goto st1260; + case 40: goto tr3406; + case 41: goto tr3407; + case 2058: goto tr3408; + case 2107: goto tr3409; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3332; - goto tr3186; -tr3332: + goto tr3411; + goto tr3410; +tr3411: { s->number64 = 0; } @@ -87067,8 +85535,8 @@ tr3332: p--; {goto st319;} } } - goto st1118; -tr3336: + goto st1261; +tr3415: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -87082,12 +85550,12 @@ tr3336: WARN(ZS_NUMBER64_OVERFLOW); p--; {goto st319;} } - } - goto st1118; -st1118: + } + goto st1261; +st1261: if ( ++p == pe ) - goto _test_eof1118; -case 1118: + goto _test_eof1261; +case 1261: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87101,17 +85569,17 @@ case 1118: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3333; - case 32: goto tr3333; - case 40: goto tr3334; - case 41: goto tr3335; - case 2058: goto tr3337; - case 2107: goto tr3338; + case 9: goto tr3412; + case 32: goto tr3412; + case 40: goto tr3413; + case 41: goto tr3414; + case 2058: goto tr3416; + case 2107: goto tr3417; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3336; - goto tr3186; -tr3340: + goto tr3415; + goto tr3410; +tr3419: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -87119,8 +85587,8 @@ tr3340: } s->multiline = true; } - goto st1119; -tr3341: + goto st1262; +tr3420: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -87128,13 +85596,13 @@ tr3341: } s->multiline = false; } - goto st1119; -tr3343: + goto st1262; +tr3422: { s->line_counter++; } - goto st1119; -tr3368: + goto st1262; +tr3456: { s->buffer[s->buffer_length++] = 0; @@ -87144,15 +85612,15 @@ tr3368: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1119; goto _out;} + {p++; cs = 1262; goto _out;} } } } { s->line_counter++; } - goto st1119; -tr3333: + goto st1262; +tr3412: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -87162,8 +85630,8 @@ tr3333: p--; {goto st319;} } } - goto st1119; -tr3334: + goto st1262; +tr3413: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -87180,8 +85648,8 @@ tr3334: } s->multiline = true; } - goto st1119; -tr3335: + goto st1262; +tr3414: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -87198,8 +85666,8 @@ tr3335: } s->multiline = false; } - goto st1119; -tr3337: + goto st1262; +tr3416: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -87212,11 +85680,11 @@ tr3337: { s->line_counter++; } - goto st1119; -st1119: + goto st1262; +st1262: if ( ++p == pe ) - goto _test_eof1119; -case 1119: + goto _test_eof1262; +case 1262: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87230,35 +85698,19 @@ case 1119: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1119; - case 32: goto st1119; - case 40: goto tr3340; - case 41: goto tr3341; - case 42: goto tr3342; - case 92: goto tr3342; - case 95: goto tr3342; - case 2058: goto tr3343; - case 2107: goto tr3344; - } - if ( _widec < 64 ) { - if ( 45 <= _widec && _widec <= 57 ) - goto tr3342; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr3342; - } else - goto tr3342; - goto tr3171; -tr3342: - { - s->dname = rdata_tail; + case 9: goto st1262; + case 32: goto st1262; + case 40: goto tr3419; + case 41: goto tr3420; + case 46: goto st1263; + case 2058: goto tr3422; + case 2107: goto tr3423; } - { p--; {stack[top++] = 1120;goto st321;} } - goto st1120; -st1120: + goto tr3395; +st1263: if ( ++p == pe ) - goto _test_eof1120; -case 1120: + goto _test_eof1263; +case 1263: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -87316,262 +85768,128 @@ case 1120: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 7177: goto tr3345; - case 7200: goto tr3345; - case 7208: goto tr3346; - case 7209: goto tr3347; - case 7433: goto tr3348; - case 7456: goto tr3348; - case 7464: goto tr3349; - case 7465: goto tr3350; - case 7689: goto tr3351; - case 7712: goto tr3351; - case 7720: goto tr3352; - case 7721: goto tr3353; - case 10506: goto tr3354; - case 10555: goto tr3354; - case 10762: goto tr3354; - case 10811: goto tr3354; - case 11274: goto tr3355; - case 11323: goto tr3356; - case 11530: goto tr3354; - case 11579: goto tr3354; - case 11786: goto tr3357; - case 11835: goto tr3358; - case 12298: goto tr3359; - case 12347: goto tr3360; - case 12554: goto tr3354; - case 12603: goto tr3354; - case 12810: goto tr3361; - case 12859: goto tr3362; - case 13322: goto tr3363; - case 13371: goto tr3364; - case 13578: goto tr3354; - case 13627: goto tr3354; - case 13834: goto tr3365; - case 13883: goto tr3366; - } - goto tr3200; -tr3344: - { - s->buffer_length = 0; - } - goto st1121; -tr3367: + case 7177: goto st1264; + case 7200: goto st1264; + case 7208: goto tr3426; + case 7209: goto tr3427; + case 7433: goto st1267; + case 7456: goto st1267; + case 7464: goto tr3429; + case 7465: goto tr3430; + case 7689: goto st1269; + case 7712: goto st1269; + case 7720: goto tr3432; + case 7721: goto tr3433; + case 10506: goto tr3434; + case 10555: goto tr3434; + case 10762: goto tr3434; + case 10811: goto tr3434; + case 11274: goto tr3435; + case 11323: goto tr3436; + case 11530: goto tr3434; + case 11579: goto tr3434; + case 11786: goto tr3437; + case 11835: goto tr3438; + case 12298: goto tr3439; + case 12347: goto tr3440; + case 12554: goto tr3434; + case 12603: goto tr3434; + case 12810: goto tr3441; + case 12859: goto tr3442; + case 13322: goto tr3443; + case 13371: goto tr3444; + case 13578: goto tr3434; + case 13627: goto tr3434; + case 13834: goto tr3445; + case 13883: goto tr3446; + } + goto tr3424; +tr3426: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } + s->multiline = true; } - goto st1121; -tr3338: + goto st1264; +tr3427: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1264; +tr3435: { - s->buffer_length = 0; + s->line_counter++; } - goto st1121; -st1121: - if ( ++p == pe ) - goto _test_eof1121; -case 1121: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1264; +tr3450: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1264; goto _out;} + } } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr3368; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3367; - goto tr3171; -tr3331: { - s->buffer_length = 0; + s->line_counter++; } - goto st1122; -tr3369: + goto st1264; +tr3480: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st1122; -st1122: - if ( ++p == pe ) - goto _test_eof1122; -case 1122: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st319;} } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr3370; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3369; - goto tr3171; -tr3180: { - s->buffer_length = 0; + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1123; -tr3371: + goto st1264; +tr3525: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st319;} } } - goto st1123; -tr3170: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } + goto st1264; +tr3569: { - s->buffer_length = 0; - } - goto st1123; -st1123: - if ( ++p == pe ) - goto _test_eof1123; -case 1123: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + rdata_tail += s->dname_tmp_length; } - if ( _widec == 2058 ) - goto tr3372; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3371; - goto tr77; -st1124: - if ( ++p == pe ) - goto _test_eof1124; -case 1124: - switch( (*p) ) { - case 65: goto st1125; - case 67: goto st1159; - case 68: goto st1180; - case 69: goto st1197; - case 72: goto st1204; - case 73: goto st1213; - case 75: goto st1221; - case 76: goto st1225; - case 77: goto st1233; - case 78: goto st1239; - case 79: goto st1255; - case 80: goto st1265; - case 82: goto st1268; - case 83: goto st1275; - case 84: goto st1294; - case 85: goto st1304; - case 87: goto st1307; - case 90: goto st1313; - case 97: goto st1125; - case 99: goto st1159; - case 100: goto st1180; - case 101: goto st1197; - case 104: goto st1204; - case 105: goto st1213; - case 107: goto st1221; - case 108: goto st1225; - case 109: goto st1233; - case 110: goto st1239; - case 111: goto st1255; - case 112: goto st1265; - case 114: goto st1268; - case 115: goto st1275; - case 116: goto st1294; - case 117: goto st1304; - case 119: goto st1307; - case 122: goto st1313; - } - goto tr3373; -st1125: - if ( ++p == pe ) - goto _test_eof1125; -case 1125: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1264; +tr3570: + { + rdata_tail += s->dname_tmp_length; } - switch( _widec ) { - case 9: goto tr3392; - case 32: goto tr3392; - case 40: goto tr3393; - case 41: goto tr3394; - case 65: goto st1150; - case 70: goto st1153; - case 80: goto st1157; - case 97: goto st1150; - case 102: goto st1153; - case 112: goto st1157; - case 2058: goto tr3398; - case 2107: goto tr3399; - } - goto tr3373; -tr3401: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -87579,8 +85897,11 @@ tr3401: } s->multiline = true; } - goto st1126; -tr3402: + goto st1264; +tr3571: + { + rdata_tail += s->dname_tmp_length; + } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -87588,52 +85909,31 @@ tr3402: } s->multiline = false; } - goto st1126; -tr3404: - { - s->line_counter++; - } - goto st1126; -tr3500: + goto st1264; +tr3579: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1126; goto _out;} - } - } + rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1126; -tr3869: + goto st1264; +tr3481: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } } - goto st1126; -tr3870: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } { if (s->multiline == true) { @@ -87642,104 +85942,70 @@ tr3870: } s->multiline = true; } - goto st1126; -tr3871: + goto st1264; +tr3482: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3873: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); p--; {goto st319;} } + s->multiline = false; } + goto st1264; +tr3490: { - s->line_counter++; - } - goto st1126; -tr3392: - { type_num(KNOT_RRTYPE_A, &rdata_tail); } - goto st1126; -tr3393: - { type_num(KNOT_RRTYPE_A, &rdata_tail); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3394: - { type_num(KNOT_RRTYPE_A, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3398: - { type_num(KNOT_RRTYPE_A, &rdata_tail); } { s->line_counter++; } - goto st1126; -tr3503: - { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } - goto st1126; -tr3504: - { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } + goto st1264; +tr3526: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3505: - { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3506: - { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } - { - s->line_counter++; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3511: - { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } - goto st1126; -tr3512: - { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -87747,38 +86013,24 @@ tr3512: } s->multiline = true; } - goto st1126; -tr3513: - { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } + goto st1264; +tr3527: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3514: - { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } - { - s->line_counter++; } - goto st1126; -tr3517: - { type_num(KNOT_RRTYPE_APL, &rdata_tail); } - goto st1126; -tr3518: - { type_num(KNOT_RRTYPE_APL, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = true; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3519: - { type_num(KNOT_RRTYPE_APL, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -87786,308 +86038,300 @@ tr3519: } s->multiline = false; } - goto st1126; -tr3520: - { type_num(KNOT_RRTYPE_APL, &rdata_tail); } - { - s->line_counter++; - } - goto st1126; -tr3528: - { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } - goto st1126; -tr3529: - { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } + goto st1264; +tr3535: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3530: - { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3531: - { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } { s->line_counter++; } - goto st1126; -tr3539: - { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } - goto st1126; -tr3540: - { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + goto st1264; +st1264: + if ( ++p == pe ) + goto _test_eof1264; +case 1264: + _widec = (*p); + if ( (*p) < 43 ) { + if ( (*p) < 32 ) { + if ( (*p) > 9 ) { + if ( 10 <= (*p) && (*p) <= 10 ) { + _widec = (short)(4224 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; + } + } else if ( (*p) >= 9 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) > 32 ) { + if ( (*p) > 40 ) { + if ( 41 <= (*p) && (*p) <= 41 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) >= 40 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; } - s->multiline = true; - } - goto st1126; -tr3541: - { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + } else if ( (*p) > 43 ) { + if ( (*p) < 59 ) { + if ( (*p) > 47 ) { + if ( 48 <= (*p) && (*p) <= 57 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) >= 47 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) > 59 ) { + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) >= 65 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else { + _widec = (short)(4224 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; } - s->multiline = false; + } else { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; } - goto st1126; -tr3542: - { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } - { - s->line_counter++; + switch( _widec ) { + case 4105: goto st1264; + case 4128: goto st1264; + case 4136: goto tr3426; + case 4137: goto tr3427; + case 4139: goto tr3448; + case 5130: goto tr3435; + case 5179: goto tr3436; } - goto st1126; -tr3544: - { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } - goto st1126; -tr3545: - { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + if ( _widec < 4161 ) { + if ( 4143 <= _widec && _widec <= 4153 ) + goto tr3448; + } else if ( _widec > 4186 ) { + if ( 4193 <= _widec && _widec <= 4218 ) + goto tr3448; + } else + goto tr3448; + goto tr3447; +tr3448: + { p--; {stack[top++] = 1265;goto st381;} } + goto st1265; +st1265: + if ( ++p == pe ) + goto _test_eof1265; +case 1265: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2176 + ((*p) - -128)); + if ( + !s->multiline ) _widec += 256; } - s->multiline = true; + } else if ( (*p) >= 10 ) { + _widec = (short)(2176 + ((*p) - -128)); + if ( + !s->multiline ) _widec += 256; } - goto st1126; -tr3546: - { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + switch( _widec ) { + case 2570: goto tr3434; + case 2619: goto tr3434; } - goto st1126; -tr3547: - { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } + goto tr3447; +tr3434: { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1126; -tr3551: - { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } - goto st1126; -tr3552: - { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } + goto st1546; +tr3489: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3553: - { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3554: - { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } - { - s->line_counter++; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3559: - { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } - goto st1126; -tr3560: - { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st1126; -tr3561: - { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } + goto st1546; +tr3578: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + rdata_tail += s->dname_tmp_length; } - goto st1126; -tr3562: - { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1126; -tr3567: - { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } - goto st1126; -tr3568: - { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } + goto st1546; +tr3534: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3569: - { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3570: - { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1126; -tr3578: - { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } - goto st1126; -tr3579: - { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } + goto st1546; +st1546: + if ( ++p == pe ) + goto _test_eof1546; +case 1546: + goto st0; +tr3436: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + s->buffer_length = 0; + } + goto st1266; +tr3449: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } - s->multiline = true; } - goto st1126; + goto st1266; tr3580: - { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + rdata_tail += s->dname_tmp_length; } - goto st1126; -tr3581: - { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } { - s->line_counter++; + s->buffer_length = 0; } - goto st1126; -tr3587: - { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } - goto st1126; -tr3588: - { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } + goto st1266; +tr3491: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3589: - { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3590: - { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } { - s->line_counter++; + s->buffer_length = 0; } - goto st1126; -tr3595: - { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } - goto st1126; -tr3596: - { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } + goto st1266; +tr3536: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3597: - { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3598: - { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } { - s->line_counter++; + s->buffer_length = 0; } - goto st1126; -tr3600: - { type_num(KNOT_RRTYPE_DS, &rdata_tail); } - goto st1126; -tr3601: - { type_num(KNOT_RRTYPE_DS, &rdata_tail); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + goto st1266; +st1266: + if ( ++p == pe ) + goto _test_eof1266; +case 1266: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(4224 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; } - s->multiline = true; - } - goto st1126; -tr3602: - { type_num(KNOT_RRTYPE_DS, &rdata_tail); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(4224 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; } - s->multiline = false; - } - goto st1126; -tr3604: - { type_num(KNOT_RRTYPE_DS, &rdata_tail); } - { - s->line_counter++; + } else { + _widec = (short)(4224 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; } - goto st1126; -tr3608: - { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } - goto st1126; -tr3609: - { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } + if ( _widec == 5130 ) + goto tr3450; + if ( 4992 <= _widec && _widec <= 5247 ) + goto tr3449; + goto tr3447; +tr3429: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -88095,9 +86339,8 @@ tr3609: } s->multiline = true; } - goto st1126; -tr3610: - { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } + goto st1267; +tr3430: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -88105,134 +86348,75 @@ tr3610: } s->multiline = false; } - goto st1126; -tr3611: - { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } + goto st1267; +tr3439: { s->line_counter++; } - goto st1126; -tr3618: - { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } - goto st1126; -tr3619: - { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1126; -tr3620: - { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } + goto st1267; +tr3452: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1267; goto _out;} + } } - s->multiline = false; } - goto st1126; -tr3621: - { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } { s->line_counter++; } - goto st1126; -tr3624: - { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } - goto st1126; -tr3625: - { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1126; -tr3626: - { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } + goto st1267; +tr3483: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3627: - { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } - { - s->line_counter++; } - goto st1126; -tr3634: - { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } - goto st1126; -tr3635: - { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = true; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3636: - { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } + goto st1267; +tr3528: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3637: - { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } - { - s->line_counter++; } - goto st1126; -tr3642: - { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } - goto st1126; -tr3643: - { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = true; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3644: - { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } + goto st1267; +tr3572: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + rdata_tail += s->dname_tmp_length; } - goto st1126; -tr3645: - { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } + goto st1267; +tr3573: { - s->line_counter++; + rdata_tail += s->dname_tmp_length; } - goto st1126; -tr3654: - { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } - goto st1126; -tr3655: - { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -88240,38 +86424,11 @@ tr3655: } s->multiline = true; } - goto st1126; -tr3656: - { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1126; -tr3657: - { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } - { - s->line_counter++; - } - goto st1126; -tr3662: - { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } - goto st1126; -tr3663: - { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } + goto st1267; +tr3574: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + rdata_tail += s->dname_tmp_length; } - goto st1126; -tr3664: - { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -88279,47 +86436,32 @@ tr3664: } s->multiline = false; } - goto st1126; -tr3665: - { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } + goto st1267; +tr3583: + { + rdata_tail += s->dname_tmp_length; + } { s->line_counter++; } - goto st1126; -tr3667: - { type_num(KNOT_RRTYPE_KX, &rdata_tail); } - goto st1126; -tr3668: - { type_num(KNOT_RRTYPE_KX, &rdata_tail); } + goto st1267; +tr3484: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3669: - { type_num(KNOT_RRTYPE_KX, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3670: - { type_num(KNOT_RRTYPE_KX, &rdata_tail); } - { - s->line_counter++; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3677: - { type_num(KNOT_RRTYPE_L32, &rdata_tail); } - goto st1126; -tr3678: - { type_num(KNOT_RRTYPE_L32, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -88327,38 +86469,24 @@ tr3678: } s->multiline = true; } - goto st1126; -tr3679: - { type_num(KNOT_RRTYPE_L32, &rdata_tail); } + goto st1267; +tr3485: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3680: - { type_num(KNOT_RRTYPE_L32, &rdata_tail); } - { - s->line_counter++; } - goto st1126; -tr3683: - { type_num(KNOT_RRTYPE_L64, &rdata_tail); } - goto st1126; -tr3684: - { type_num(KNOT_RRTYPE_L64, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = true; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3685: - { type_num(KNOT_RRTYPE_L64, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -88366,76 +86494,45 @@ tr3685: } s->multiline = false; } - goto st1126; -tr3686: - { type_num(KNOT_RRTYPE_L64, &rdata_tail); } - { - s->line_counter++; - } - goto st1126; -tr3689: - { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } - goto st1126; -tr3690: - { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } + goto st1267; +tr3494: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3691: - { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3692: - { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } { s->line_counter++; } - goto st1126; -tr3694: - { type_num(KNOT_RRTYPE_LP, &rdata_tail); } - goto st1126; -tr3695: - { type_num(KNOT_RRTYPE_LP, &rdata_tail); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1126; -tr3696: - { type_num(KNOT_RRTYPE_LP, &rdata_tail); } + goto st1267; +tr3529: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = false; } - goto st1126; -tr3697: - { type_num(KNOT_RRTYPE_LP, &rdata_tail); } { - s->line_counter++; + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3704: - { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } - goto st1126; -tr3705: - { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -88443,38 +86540,24 @@ tr3705: } s->multiline = true; } - goto st1126; -tr3706: - { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } + goto st1267; +tr3530: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3707: - { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } - { - s->line_counter++; } - goto st1126; -tr3709: - { type_num(KNOT_RRTYPE_MX, &rdata_tail); } - goto st1126; -tr3710: - { type_num(KNOT_RRTYPE_MX, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = true; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3711: - { type_num(KNOT_RRTYPE_MX, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -88482,308 +86565,421 @@ tr3711: } s->multiline = false; } - goto st1126; -tr3712: - { type_num(KNOT_RRTYPE_MX, &rdata_tail); } - { - s->line_counter++; - } - goto st1126; -tr3720: - { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } - goto st1126; -tr3721: - { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } + goto st1267; +tr3539: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3722: - { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3723: - { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } { s->line_counter++; } - goto st1126; -tr3726: - { type_num(KNOT_RRTYPE_NID, &rdata_tail); } - goto st1126; -tr3727: - { type_num(KNOT_RRTYPE_NID, &rdata_tail); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + goto st1267; +st1267: + if ( ++p == pe ) + goto _test_eof1267; +case 1267: + _widec = (*p); + if ( (*p) < 32 ) { + if ( (*p) > 9 ) { + if ( 10 <= (*p) && (*p) <= 10 ) { + _widec = (short)(13952 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 == 0 ) _widec += 1024; + } + } else if ( (*p) >= 9 ) { + _widec = (short)(5248 + ((*p) - -128)); + if ( + s->number64 == 0 ) _widec += 256; } - s->multiline = true; + } else if ( (*p) > 32 ) { + if ( (*p) < 41 ) { + if ( 40 <= (*p) && (*p) <= 40 ) { + _widec = (short)(5248 + ((*p) - -128)); + if ( + s->number64 == 0 ) _widec += 256; + } + } else if ( (*p) > 41 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(13952 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 == 0 ) _widec += 1024; + } + } else { + _widec = (short)(5248 + ((*p) - -128)); + if ( + s->number64 == 0 ) _widec += 256; + } + } else { + _widec = (short)(5248 + ((*p) - -128)); + if ( + s->number64 == 0 ) _widec += 256; } - goto st1126; -tr3728: - { type_num(KNOT_RRTYPE_NID, &rdata_tail); } + switch( _widec ) { + case 5641: goto st1267; + case 5664: goto st1267; + case 5672: goto tr3429; + case 5673: goto tr3430; + case 14602: goto tr3434; + case 14651: goto tr3434; + case 14858: goto tr3434; + case 14907: goto tr3434; + case 15370: goto tr3439; + case 15419: goto tr3440; + case 15626: goto tr3434; + case 15675: goto tr3434; + case 15882: goto tr3441; + case 15931: goto tr3442; + } + goto tr3447; +tr3440: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + s->buffer_length = 0; + } + goto st1268; +tr3451: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } - s->multiline = false; } - goto st1126; -tr3729: - { type_num(KNOT_RRTYPE_NID, &rdata_tail); } + goto st1268; +tr3584: { - s->line_counter++; + rdata_tail += s->dname_tmp_length; } - goto st1126; -tr3731: - { type_num(KNOT_RRTYPE_NS, &rdata_tail); } - goto st1126; -tr3732: - { type_num(KNOT_RRTYPE_NS, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer_length = 0; + } + goto st1268; +tr3495: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3733: - { type_num(KNOT_RRTYPE_NS, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3735: - { type_num(KNOT_RRTYPE_NS, &rdata_tail); } { - s->line_counter++; + s->buffer_length = 0; } - goto st1126; -tr3738: - { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } - goto st1126; -tr3739: - { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } + goto st1268; +tr3540: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3740: - { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3742: - { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } + { + s->buffer_length = 0; + } + goto st1268; +st1268: + if ( ++p == pe ) + goto _test_eof1268; +case 1268: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(5760 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(5760 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else { + _widec = (short)(5760 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + if ( _widec == 6666 ) + goto tr3452; + if ( 6528 <= _widec && _widec <= 6783 ) + goto tr3451; + goto tr3447; +tr3441: { s->line_counter++; } - goto st1126; -tr3744: - { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } - goto st1126; -tr3745: - { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + p--; {cs = stack[--top];goto _again;} + } + goto st1547; +tr3496: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3746: - { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3748: - { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } { s->line_counter++; } - goto st1126; -tr3754: - { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } - goto st1126; -tr3755: - { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + p--; {cs = stack[--top];goto _again;} + } + goto st1547; +tr3541: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3756: - { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3757: - { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } { s->line_counter++; } - goto st1126; -tr3768: - { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } - goto st1126; -tr3769: - { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + p--; {cs = stack[--top];goto _again;} } - goto st1126; -tr3770: - { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } + goto st1547; +tr3585: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + rdata_tail += s->dname_tmp_length; } - goto st1126; -tr3771: - { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } { s->line_counter++; } - goto st1126; -tr3775: - { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } - goto st1126; -tr3776: - { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {cs = stack[--top];goto _again;} + } + goto st1547; +st1547: + if ( ++p == pe ) + goto _test_eof1547; +case 1547: + _widec = (*p); + if ( (*p) < 32 ) { + if ( (*p) > 9 ) { + if ( 10 <= (*p) && (*p) <= 10 ) { + _widec = (short)(13952 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 == 0 ) _widec += 1024; + } + } else if ( (*p) >= 9 ) { + _widec = (short)(5248 + ((*p) - -128)); + if ( + s->number64 == 0 ) _widec += 256; } - s->multiline = true; + } else if ( (*p) > 32 ) { + if ( (*p) < 41 ) { + if ( 40 <= (*p) && (*p) <= 40 ) { + _widec = (short)(5248 + ((*p) - -128)); + if ( + s->number64 == 0 ) _widec += 256; + } + } else if ( (*p) > 41 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(13952 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 == 0 ) _widec += 1024; + } + } else { + _widec = (short)(5248 + ((*p) - -128)); + if ( + s->number64 == 0 ) _widec += 256; + } + } else { + _widec = (short)(5248 + ((*p) - -128)); + if ( + s->number64 == 0 ) _widec += 256; } - goto st1126; -tr3777: - { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } + switch( _widec ) { + case 5641: goto st1267; + case 5664: goto st1267; + case 5672: goto tr3429; + case 5673: goto tr3430; + case 14602: goto tr3434; + case 14651: goto tr3434; + case 14858: goto tr3434; + case 14907: goto tr3434; + case 15370: goto tr3439; + case 15419: goto tr3440; + case 15626: goto tr3434; + case 15675: goto tr3434; + case 15882: goto tr3441; + case 15931: goto tr3442; + } + goto tr3447; +tr3442: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + s->buffer_length = 0; } - goto st1126; -tr3778: - { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1126; -tr3783: - { type_num(KNOT_RRTYPE_RP, &rdata_tail); } - goto st1126; -tr3784: - { type_num(KNOT_RRTYPE_RP, &rdata_tail); } + goto st1548; +tr3497: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3785: - { type_num(KNOT_RRTYPE_RP, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3786: - { type_num(KNOT_RRTYPE_RP, &rdata_tail); } { - s->line_counter++; + s->buffer_length = 0; } - goto st1126; -tr3791: - { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } - goto st1126; -tr3792: - { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + p--; {cs = stack[--top];goto _again;} + } + goto st1548; +tr3542: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3793: - { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3794: - { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } { - s->line_counter++; + s->buffer_length = 0; } - goto st1126; -tr3796: - { type_num(KNOT_RRTYPE_RT, &rdata_tail); } - goto st1126; -tr3797: - { type_num(KNOT_RRTYPE_RT, &rdata_tail); } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1548; +tr3586: + { + rdata_tail += s->dname_tmp_length; + } + { + s->buffer_length = 0; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1548; +st1548: + if ( ++p == pe ) + goto _test_eof1548; +case 1548: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(5760 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(5760 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else { + _widec = (short)(5760 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + if ( _widec == 6666 ) + goto tr3452; + if ( 6528 <= _widec && _widec <= 6783 ) + goto tr3451; + goto tr3447; +tr3432: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -88791,9 +86987,8 @@ tr3797: } s->multiline = true; } - goto st1126; -tr3798: - { type_num(KNOT_RRTYPE_RT, &rdata_tail); } + goto st1269; +tr3433: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -88801,76 +86996,75 @@ tr3798: } s->multiline = false; } - goto st1126; -tr3799: - { type_num(KNOT_RRTYPE_RT, &rdata_tail); } + goto st1269; +tr3443: { s->line_counter++; } - goto st1126; -tr3811: - { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } - goto st1126; -tr3812: - { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } + goto st1269; +tr3454: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1269; goto _out;} + } } - s->multiline = true; } - goto st1126; -tr3813: - { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->line_counter++; + } + goto st1269; +tr3486: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = false; } - goto st1126; -tr3814: - { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } { - s->line_counter++; + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3817: - { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } - goto st1126; -tr3818: - { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } + goto st1269; +tr3531: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3819: - { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3820: - { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } + goto st1269; +tr3575: { - s->line_counter++; + rdata_tail += s->dname_tmp_length; + } + goto st1269; +tr3576: + { + rdata_tail += s->dname_tmp_length; } - goto st1126; -tr3823: - { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } - goto st1126; -tr3824: - { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -88878,9 +87072,11 @@ tr3824: } s->multiline = true; } - goto st1126; -tr3825: - { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } + goto st1269; +tr3577: + { + rdata_tail += s->dname_tmp_length; + } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -88888,47 +87084,32 @@ tr3825: } s->multiline = false; } - goto st1126; -tr3826: - { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } + goto st1269; +tr3587: + { + rdata_tail += s->dname_tmp_length; + } { s->line_counter++; } - goto st1126; -tr3829: - { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } - goto st1126; -tr3830: - { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } + goto st1269; +tr3487: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3831: - { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3832: - { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } - { - s->line_counter++; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3837: - { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } - goto st1126; -tr3838: - { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -88936,38 +87117,24 @@ tr3838: } s->multiline = true; } - goto st1126; -tr3839: - { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } + goto st1269; +tr3488: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3840: - { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } - { - s->line_counter++; } - goto st1126; -tr3844: - { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } - goto st1126; -tr3845: - { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = true; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3846: - { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -88975,76 +87142,45 @@ tr3846: } s->multiline = false; } - goto st1126; -tr3847: - { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } - { - s->line_counter++; - } - goto st1126; -tr3854: - { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } - goto st1126; -tr3855: - { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } + goto st1269; +tr3498: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3856: - { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1126; -tr3857: - { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } { s->line_counter++; } - goto st1126; -tr3860: - { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } - goto st1126; -tr3861: - { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } + goto st1269; +tr3532: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3862: - { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3863: - { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } - { - s->line_counter++; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3877: - { type_num(KNOT_RRTYPE_URI, &rdata_tail); } - goto st1126; -tr3878: - { type_num(KNOT_RRTYPE_URI, &rdata_tail); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -89052,38 +87188,24 @@ tr3878: } s->multiline = true; } - goto st1126; -tr3879: - { type_num(KNOT_RRTYPE_URI, &rdata_tail); } + goto st1269; +tr3533: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = false; - } - goto st1126; -tr3880: - { type_num(KNOT_RRTYPE_URI, &rdata_tail); } - { - s->line_counter++; } - goto st1126; -tr3887: - { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } - goto st1126; -tr3888: - { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = true; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3889: - { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -89091,1010 +87213,974 @@ tr3889: } s->multiline = false; } - goto st1126; -tr3890: - { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } - { - s->line_counter++; - } - goto st1126; -tr3897: - { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } - goto st1126; -tr3898: - { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } + goto st1269; +tr3543: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1126; -tr3899: - { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1126; -tr3900: - { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } { s->line_counter++; } - goto st1126; -st1126: + goto st1269; +st1269: if ( ++p == pe ) - goto _test_eof1126; -case 1126: + goto _test_eof1269; +case 1269: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) < 43 ) { + if ( (*p) < 32 ) { + if ( (*p) > 9 ) { + if ( 10 <= (*p) && (*p) <= 10 ) { + _widec = (short)(9856 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 != 0 ) _widec += 1024; + if ( + s->number64 == 0 ) _widec += 2048; + } + } else if ( (*p) >= 9 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 32 ) { + if ( (*p) > 40 ) { + if ( 41 <= (*p) && (*p) <= 41 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) >= 40 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 43 ) { + if ( (*p) < 59 ) { + if ( (*p) > 47 ) { + if ( 48 <= (*p) && (*p) <= 57 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) >= 47 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) > 59 ) { + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) >= 65 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else { + _widec = (short)(9856 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 != 0 ) _widec += 1024; + if ( + s->number64 == 0 ) _widec += 2048; } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + } else { + _widec = (short)(3712 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 9: goto st1126; - case 32: goto st1126; - case 40: goto tr3401; - case 41: goto tr3402; - case 2058: goto tr3404; - case 2107: goto tr3405; + case 4139: goto tr3448; + case 7177: goto st1264; + case 7200: goto st1264; + case 7208: goto tr3426; + case 7209: goto tr3427; + case 7433: goto st1267; + case 7456: goto st1267; + case 7464: goto tr3429; + case 7465: goto tr3430; + case 7689: goto st1269; + case 7712: goto st1269; + case 7720: goto tr3432; + case 7721: goto tr3433; + case 10506: goto tr3434; + case 10555: goto tr3434; + case 10762: goto tr3434; + case 10811: goto tr3434; + case 11274: goto tr3435; + case 11323: goto tr3436; + case 11530: goto tr3434; + case 11579: goto tr3434; + case 11786: goto tr3437; + case 11835: goto tr3438; + case 12298: goto tr3439; + case 12347: goto tr3440; + case 12554: goto tr3434; + case 12603: goto tr3434; + case 12810: goto tr3441; + case 12859: goto tr3442; + case 13322: goto tr3443; + case 13371: goto tr3444; + case 13578: goto tr3434; + case 13627: goto tr3434; + case 13834: goto tr3445; + case 13883: goto tr3446; } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr3403; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr3403; + if ( _widec < 4161 ) { + if ( 4143 <= _widec && _widec <= 4153 ) + goto tr3448; + } else if ( _widec > 4186 ) { + if ( 4193 <= _widec && _widec <= 4218 ) + goto tr3448; } else - goto tr3403; - goto tr77; -tr3403: - { p--; {stack[top++] = 1127;goto st747;} } - goto st1127; -st1127: - if ( ++p == pe ) - goto _test_eof1127; -case 1127: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto tr3448; + goto tr3447; +tr3437: + { + s->line_counter++; } - switch( _widec ) { - case 9: goto st1128; - case 32: goto st1128; - case 40: goto tr3407; - case 41: goto tr3408; - case 2058: goto tr3409; - case 2107: goto tr3410; + { + p--; {cs = stack[--top];goto _again;} } - goto tr77; -tr3407: + goto st1549; +tr3492: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1128; -tr3408: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1128; -tr3409: { s->line_counter++; } - goto st1128; -tr3498: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); + p--; {cs = stack[--top];goto _again;} + } + goto st1549; +tr3537: + { + s->buffer[s->buffer_length] = 0; - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1128; goto _out;} - } + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st319;} } } { - s->line_counter++; - } - goto st1128; -st1128: - if ( ++p == pe ) - goto _test_eof1128; -case 1128: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - switch( _widec ) { - case 9: goto st1128; - case 32: goto st1128; - case 40: goto tr3407; - case 41: goto tr3408; - case 2058: goto tr3409; - case 2107: goto tr3410; + { + s->line_counter++; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3411; - goto tr2429; -tr3411: { - s->number64 = 0; + p--; {cs = stack[--top];goto _again;} } + goto st1549; +tr3581: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + rdata_tail += s->dname_tmp_length; } - goto st1129; -tr3415: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + s->line_counter++; } - goto st1129; -st1129: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1549; +st1549: if ( ++p == pe ) - goto _test_eof1129; -case 1129: + goto _test_eof1549; +case 1549: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) < 43 ) { + if ( (*p) < 32 ) { + if ( (*p) > 9 ) { + if ( 10 <= (*p) && (*p) <= 10 ) { + _widec = (short)(4224 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; + } + } else if ( (*p) >= 9 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) > 32 ) { + if ( (*p) > 40 ) { + if ( 41 <= (*p) && (*p) <= 41 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) >= 40 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) > 43 ) { + if ( (*p) < 59 ) { + if ( (*p) > 47 ) { + if ( 48 <= (*p) && (*p) <= 57 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) >= 47 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) > 59 ) { + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) >= 65 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else { + _widec = (short)(4224 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + } else { + _widec = (short)(3712 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 9: goto tr3412; - case 32: goto tr3412; - case 40: goto tr3413; - case 41: goto tr3414; - case 2058: goto tr3416; - case 2107: goto tr3417; + case 4105: goto st1264; + case 4128: goto st1264; + case 4136: goto tr3426; + case 4137: goto tr3427; + case 4139: goto tr3448; + case 5130: goto tr3435; + case 5179: goto tr3436; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3415; - goto tr2429; -tr3419: + if ( _widec < 4161 ) { + if ( 4143 <= _widec && _widec <= 4153 ) + goto tr3448; + } else if ( _widec > 4186 ) { + if ( 4193 <= _widec && _widec <= 4218 ) + goto tr3448; + } else + goto tr3448; + goto tr3447; +tr3438: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->buffer_length = 0; } - goto st1130; -tr3420: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + p--; {cs = stack[--top];goto _again;} + } + goto st1550; +tr3493: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = false; } - goto st1130; -tr3422: { - s->line_counter++; + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1130; -tr3496: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1130; goto _out;} - } - } + s->buffer_length = 0; } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1130; -tr3412: + goto st1550; +tr3538: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } } - goto st1130; -tr3413: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->buffer_length = 0; } - goto st1130; -tr3414: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1550; +tr3582: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + rdata_tail += s->dname_tmp_length; } - goto st1130; -tr3416: { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} - } + s->buffer_length = 0; } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1130; -st1130: + goto st1550; +st1550: if ( ++p == pe ) - goto _test_eof1130; -case 1130: + goto _test_eof1550; +case 1550: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(4224 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(4224 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; + } + } else { + _widec = (short)(4224 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; } - switch( _widec ) { - case 9: goto st1130; - case 32: goto st1130; - case 40: goto tr3419; - case 41: goto tr3420; - case 2058: goto tr3422; - case 2107: goto tr3423; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3421; - goto tr2429; -tr3421: + if ( _widec == 5130 ) + goto tr3450; + if ( 4992 <= _widec && _widec <= 5247 ) + goto tr3449; + goto tr3447; +tr3444: { - s->number64 = 0; + s->buffer_length = 0; } + goto st1270; +tr3453: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } - goto st1131; -tr3427: + goto st1270; +tr3588: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); + rdata_tail += s->dname_tmp_length; + } + { + s->buffer_length = 0; + } + goto st1270; +tr3499: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } } - goto st1131; -st1131: - if ( ++p == pe ) - goto _test_eof1131; -case 1131: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - switch( _widec ) { - case 9: goto tr3424; - case 32: goto tr3424; - case 40: goto tr3425; - case 41: goto tr3426; - case 2058: goto tr3428; - case 2107: goto tr3429; + { + s->buffer_length = 0; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3427; - goto tr2429; -tr3432: + goto st1270; +tr3544: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = true; } - goto st1132; -tr3433: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1132; -tr3435: { - s->line_counter++; + s->buffer_length = 0; } - goto st1132; -tr3494: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1132; goto _out;} - } + goto st1270; +st1270: + if ( ++p == pe ) + goto _test_eof1270; +case 1270: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(7808 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; + if ( + s->number64 == 0 ) _widec += 1024; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(7808 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; + if ( + s->number64 == 0 ) _widec += 1024; } + } else { + _widec = (short)(7808 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; + if ( + s->number64 == 0 ) _widec += 1024; + } + switch( _widec ) { + case 8714: goto tr3450; + case 9226: goto tr3452; + case 9738: goto tr3454; } + if ( _widec < 9088 ) { + if ( 8576 <= _widec && _widec <= 8831 ) + goto tr3449; + } else if ( _widec > 9343 ) { + if ( 9600 <= _widec && _widec <= 9855 ) + goto tr3453; + } else + goto tr3451; + goto tr3447; +tr3445: { s->line_counter++; } - goto st1132; -tr3424: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } - goto st1132; -tr3425: + goto st1551; +tr3500: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = true; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1132; -tr3426: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } + s->line_counter++; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + p--; {cs = stack[--top];goto _again;} + } + goto st1551; +tr3545: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } - s->multiline = false; } - goto st1132; -tr3428: { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } { s->line_counter++; } - goto st1132; -st1132: - if ( ++p == pe ) - goto _test_eof1132; -case 1132: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1132; - case 32: goto st1132; - case 40: goto tr3432; - case 41: goto tr3433; - case 2058: goto tr3435; - case 2107: goto tr3436; + { + p--; {cs = stack[--top];goto _again;} } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3434; - goto tr3430; -tr3434: + goto st1551; +tr3589: { - s->buffer_length = 0; + rdata_tail += s->dname_tmp_length; } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + s->line_counter++; } - goto st1133; -tr3440: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } - goto st1133; -st1133: + goto st1551; +st1551: if ( ++p == pe ) - goto _test_eof1133; -case 1133: + goto _test_eof1551; +case 1551: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) < 43 ) { + if ( (*p) < 32 ) { + if ( (*p) > 9 ) { + if ( 10 <= (*p) && (*p) <= 10 ) { + _widec = (short)(9856 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 != 0 ) _widec += 1024; + if ( + s->number64 == 0 ) _widec += 2048; + } + } else if ( (*p) >= 9 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 32 ) { + if ( (*p) > 40 ) { + if ( 41 <= (*p) && (*p) <= 41 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) >= 40 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 43 ) { + if ( (*p) < 59 ) { + if ( (*p) > 47 ) { + if ( 48 <= (*p) && (*p) <= 57 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) >= 47 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) > 59 ) { + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else if ( (*p) >= 65 ) { + _widec = (short)(3712 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + } + } else { + _widec = (short)(9856 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 != 0 ) _widec += 1024; + if ( + s->number64 == 0 ) _widec += 2048; } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + } else { + _widec = (short)(3712 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + s->number64 != 0 ) _widec += 256; + } + switch( _widec ) { + case 4139: goto tr3448; + case 7177: goto st1264; + case 7200: goto st1264; + case 7208: goto tr3426; + case 7209: goto tr3427; + case 7433: goto st1267; + case 7456: goto st1267; + case 7464: goto tr3429; + case 7465: goto tr3430; + case 7689: goto st1269; + case 7712: goto st1269; + case 7720: goto tr3432; + case 7721: goto tr3433; + case 10506: goto tr3434; + case 10555: goto tr3434; + case 10762: goto tr3434; + case 10811: goto tr3434; + case 11274: goto tr3435; + case 11323: goto tr3436; + case 11530: goto tr3434; + case 11579: goto tr3434; + case 11786: goto tr3437; + case 11835: goto tr3438; + case 12298: goto tr3439; + case 12347: goto tr3440; + case 12554: goto tr3434; + case 12603: goto tr3434; + case 12810: goto tr3441; + case 12859: goto tr3442; + case 13322: goto tr3443; + case 13371: goto tr3444; + case 13578: goto tr3434; + case 13627: goto tr3434; + case 13834: goto tr3445; + case 13883: goto tr3446; + } + if ( _widec < 4161 ) { + if ( 4143 <= _widec && _widec <= 4153 ) + goto tr3448; + } else if ( _widec > 4186 ) { + if ( 4193 <= _widec && _widec <= 4218 ) + goto tr3448; + } else + goto tr3448; + goto tr3447; +tr3446: + { + s->buffer_length = 0; } - switch( _widec ) { - case 9: goto tr3437; - case 32: goto tr3437; - case 40: goto tr3438; - case 41: goto tr3439; - case 2058: goto tr3441; - case 2107: goto tr3442; + { + p--; {cs = stack[--top];goto _again;} } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3440; - goto tr3430; -tr3444: + goto st1552; +tr3501: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); p--; {goto st319;} } - s->multiline = true; } - goto st1134; -tr3445: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } - s->multiline = false; - } - goto st1134; -tr3447: - { - s->line_counter++; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1134; -tr3492: { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1134; goto _out;} - } - } + s->buffer_length = 0; } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1134; -tr3437: + goto st1552; +tr3546: { s->buffer[s->buffer_length] = 0; - if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). - uint32_t timestamp; - int ret = date_to_timestamp(s->buffer, ×tamp); - - if (ret == ZS_OK) { - *((uint32_t *)rdata_tail) = htonl(timestamp); - rdata_tail += 4; - } else { - WARN(ret); - p--; {goto st319;} - } - } else if (s->buffer_length <= 10) { // Timestamp format. - char *end; - - s->number64 = strtoull((char *)(s->buffer), &end, 10); - - if (end == (char *)(s->buffer) || *end != '\0') { - WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} - } - - if (s->number64 <= UINT32_MAX) { - *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } else { - WARN(ZS_BAD_TIMESTAMP_LENGTH); + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); p--; {goto st319;} } } - goto st1134; -tr3438: { - s->buffer[s->buffer_length] = 0; - - if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). - uint32_t timestamp; - int ret = date_to_timestamp(s->buffer, ×tamp); - - if (ret == ZS_OK) { - *((uint32_t *)rdata_tail) = htonl(timestamp); - rdata_tail += 4; - } else { - WARN(ret); - p--; {goto st319;} - } - } else if (s->buffer_length <= 10) { // Timestamp format. - char *end; - - s->number64 = strtoull((char *)(s->buffer), &end, 10); - - if (end == (char *)(s->buffer) || *end != '\0') { - WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} - } - - if (s->number64 <= UINT32_MAX) { - *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } else { - WARN(ZS_BAD_TIMESTAMP_LENGTH); + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->buffer_length = 0; } - goto st1134; -tr3439: { - s->buffer[s->buffer_length] = 0; - - if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). - uint32_t timestamp; - int ret = date_to_timestamp(s->buffer, ×tamp); - - if (ret == ZS_OK) { - *((uint32_t *)rdata_tail) = htonl(timestamp); - rdata_tail += 4; - } else { - WARN(ret); - p--; {goto st319;} - } - } else if (s->buffer_length <= 10) { // Timestamp format. - char *end; - - s->number64 = strtoull((char *)(s->buffer), &end, 10); - - if (end == (char *)(s->buffer) || *end != '\0') { - WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} - } - - if (s->number64 <= UINT32_MAX) { - *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } else { - WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1552; +tr3590: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + rdata_tail += s->dname_tmp_length; } - goto st1134; -tr3441: { - s->buffer[s->buffer_length] = 0; - - if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). - uint32_t timestamp; - int ret = date_to_timestamp(s->buffer, ×tamp); - - if (ret == ZS_OK) { - *((uint32_t *)rdata_tail) = htonl(timestamp); - rdata_tail += 4; - } else { - WARN(ret); - p--; {goto st319;} - } - } else if (s->buffer_length <= 10) { // Timestamp format. - char *end; - - s->number64 = strtoull((char *)(s->buffer), &end, 10); - - if (end == (char *)(s->buffer) || *end != '\0') { - WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} - } - - if (s->number64 <= UINT32_MAX) { - *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } else { - WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} - } + s->buffer_length = 0; } { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st1134; -st1134: + goto st1552; +st1552: if ( ++p == pe ) - goto _test_eof1134; -case 1134: + goto _test_eof1552; +case 1552: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(7808 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; + if ( + s->number64 == 0 ) _widec += 1024; } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(7808 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; + if ( + s->number64 == 0 ) _widec += 1024; + } + } else { + _widec = (short)(7808 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + s->number64 != 0 ) _widec += 512; + if ( + s->number64 == 0 ) _widec += 1024; } switch( _widec ) { - case 9: goto st1134; - case 32: goto st1134; - case 40: goto tr3444; - case 41: goto tr3445; - case 2058: goto tr3447; - case 2107: goto tr3448; + case 8714: goto tr3450; + case 9226: goto tr3452; + case 9738: goto tr3454; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3446; - goto tr3430; -tr3446: + if ( _widec < 9088 ) { + if ( 8576 <= _widec && _widec <= 8831 ) + goto tr3449; + } else if ( _widec > 9343 ) { + if ( 9600 <= _widec && _widec <= 9855 ) + goto tr3453; + } else + goto tr3451; + goto tr3447; +tr3423: { s->buffer_length = 0; } + goto st1271; +tr3455: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} } } - goto st1135; -tr3452: + goto st1271; +tr3417: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; } else { - WARN(ZS_RDATA_OVERFLOW); + WARN(ZS_NUMBER8_OVERFLOW); p--; {goto st319;} } } - goto st1135; -st1135: + { + s->buffer_length = 0; + } + goto st1271; +st1271: if ( ++p == pe ) - goto _test_eof1135; -case 1135: + goto _test_eof1271; +case 1271: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3449; - case 32: goto tr3449; - case 40: goto tr3450; - case 41: goto tr3451; - case 2058: goto tr3453; - case 2107: goto tr3454; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3452; - goto tr3430; -tr3456: + if ( _widec == 2058 ) + goto tr3456; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3455; + goto tr3395; +tr3409: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; + s->buffer_length = 0; } - goto st1136; + goto st1272; tr3457: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } - s->multiline = false; - } - goto st1136; -tr3459: - { - s->line_counter++; } - goto st1136; -tr3490: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1136; goto _out;} - } + goto st1272; +st1272: + if ( ++p == pe ) + goto _test_eof1272; +case 1272: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + if ( _widec == 2058 ) + goto tr3458; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3457; + goto tr3395; +tr3400: { - s->line_counter++; + *(rdata_tail++) = 1; } - goto st1136; -tr3449: - { - s->buffer[s->buffer_length] = 0; - - if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). - uint32_t timestamp; - int ret = date_to_timestamp(s->buffer, ×tamp); - - if (ret == ZS_OK) { - *((uint32_t *)rdata_tail) = htonl(timestamp); - rdata_tail += 4; - } else { - WARN(ret); - p--; {goto st319;} - } - } else if (s->buffer_length <= 10) { // Timestamp format. - char *end; - - s->number64 = strtoull((char *)(s->buffer), &end, 10); - - if (end == (char *)(s->buffer) || *end != '\0') { - WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} - } - - if (s->number64 <= UINT32_MAX) { - *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } else { - WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} + goto st1273; +st1273: + if ( ++p == pe ) + goto _test_eof1273; +case 1273: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st1136; -tr3450: - { - s->buffer[s->buffer_length] = 0; - - if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). - uint32_t timestamp; - int ret = date_to_timestamp(s->buffer, ×tamp); - - if (ret == ZS_OK) { - *((uint32_t *)rdata_tail) = htonl(timestamp); - rdata_tail += 4; - } else { - WARN(ret); - p--; {goto st319;} - } - } else if (s->buffer_length <= 10) { // Timestamp format. - char *end; - - s->number64 = strtoull((char *)(s->buffer), &end, 10); - - if (end == (char *)(s->buffer) || *end != '\0') { - WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} - } - - if (s->number64 <= UINT32_MAX) { - *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } else { - WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} - } + switch( _widec ) { + case 9: goto st1274; + case 32: goto st1274; + case 40: goto tr3460; + case 41: goto tr3461; + case 2058: goto tr3462; + case 2107: goto tr3463; } + goto tr3395; +tr3460: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -90102,44 +88188,8 @@ tr3450: } s->multiline = true; } - goto st1136; -tr3451: - { - s->buffer[s->buffer_length] = 0; - - if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). - uint32_t timestamp; - int ret = date_to_timestamp(s->buffer, ×tamp); - - if (ret == ZS_OK) { - *((uint32_t *)rdata_tail) = htonl(timestamp); - rdata_tail += 4; - } else { - WARN(ret); - p--; {goto st319;} - } - } else if (s->buffer_length <= 10) { // Timestamp format. - char *end; - - s->number64 = strtoull((char *)(s->buffer), &end, 10); - - if (end == (char *)(s->buffer) || *end != '\0') { - WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} - } - - if (s->number64 <= UINT32_MAX) { - *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } else { - WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} - } - } + goto st1274; +tr3461: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -90147,52 +88197,34 @@ tr3451: } s->multiline = false; } - goto st1136; -tr3453: + goto st1274; +tr3462: { - s->buffer[s->buffer_length] = 0; - - if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). - uint32_t timestamp; - int ret = date_to_timestamp(s->buffer, ×tamp); - - if (ret == ZS_OK) { - *((uint32_t *)rdata_tail) = htonl(timestamp); - rdata_tail += 4; - } else { - WARN(ret); - p--; {goto st319;} - } - } else if (s->buffer_length <= 10) { // Timestamp format. - char *end; - - s->number64 = strtoull((char *)(s->buffer), &end, 10); - - if (end == (char *)(s->buffer) || *end != '\0') { - WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} - } + s->line_counter++; + } + goto st1274; +tr3505: + { + s->buffer[s->buffer_length++] = 0; - if (s->number64 <= UINT32_MAX) { - *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1274; goto _out;} } - } else { - WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} } } { s->line_counter++; } - goto st1136; -st1136: + goto st1274; +st1274: if ( ++p == pe ) - goto _test_eof1136; -case 1136: + goto _test_eof1274; +case 1274: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90206,17 +88238,17 @@ case 1136: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1136; - case 32: goto st1136; - case 40: goto tr3456; - case 41: goto tr3457; - case 2058: goto tr3459; - case 2107: goto tr3460; + case 9: goto st1274; + case 32: goto st1274; + case 40: goto tr3460; + case 41: goto tr3461; + case 2058: goto tr3462; + case 2107: goto tr3463; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3458; - goto tr2429; -tr3458: + goto tr3464; + goto tr3410; +tr3464: { s->number64 = 0; } @@ -90234,8 +88266,8 @@ tr3458: p--; {goto st319;} } } - goto st1137; -tr3464: + goto st1275; +tr3468: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -90250,11 +88282,11 @@ tr3464: p--; {goto st319;} } } - goto st1137; -st1137: + goto st1275; +st1275: if ( ++p == pe ) - goto _test_eof1137; -case 1137: + goto _test_eof1275; +case 1275: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90268,17 +88300,17 @@ case 1137: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3461; - case 32: goto tr3461; - case 40: goto tr3462; - case 41: goto tr3463; - case 2058: goto tr3465; - case 2107: goto tr3466; + case 9: goto tr3465; + case 32: goto tr3465; + case 40: goto tr3466; + case 41: goto tr3467; + case 2058: goto tr3469; + case 2107: goto tr3470; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3464; - goto tr2429; -tr3468: + goto tr3468; + goto tr3410; +tr3473: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -90286,8 +88318,8 @@ tr3468: } s->multiline = true; } - goto st1138; -tr3469: + goto st1276; +tr3474: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -90295,13 +88327,13 @@ tr3469: } s->multiline = false; } - goto st1138; -tr3471: + goto st1276; +tr3476: { s->line_counter++; } - goto st1138; -tr3488: + goto st1276; +tr3503: { s->buffer[s->buffer_length++] = 0; @@ -90311,34 +88343,32 @@ tr3488: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1138; goto _out;} + {p++; cs = 1276; goto _out;} } } } { s->line_counter++; } - goto st1138; -tr3461: + goto st1276; +tr3465: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_NUMBER8_OVERFLOW); p--; {goto st319;} } } - goto st1138; -tr3462: + goto st1276; +tr3466: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_NUMBER8_OVERFLOW); p--; {goto st319;} } } @@ -90349,15 +88379,14 @@ tr3462: } s->multiline = true; } - goto st1138; -tr3463: + goto st1276; +tr3467: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_NUMBER8_OVERFLOW); p--; {goto st319;} } } @@ -90368,68 +88397,25 @@ tr3463: } s->multiline = false; } - goto st1138; -tr3465: + goto st1276; +tr3469: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; } else { - WARN(ZS_NUMBER16_OVERFLOW); + WARN(ZS_NUMBER8_OVERFLOW); p--; {goto st319;} } } { s->line_counter++; } - goto st1138; -st1138: - if ( ++p == pe ) - goto _test_eof1138; -case 1138: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1138; - case 32: goto st1138; - case 40: goto tr3468; - case 41: goto tr3469; - case 42: goto tr3470; - case 92: goto tr3470; - case 95: goto tr3470; - case 2058: goto tr3471; - case 2107: goto tr3472; - } - if ( _widec < 64 ) { - if ( 45 <= _widec && _widec <= 57 ) - goto tr3470; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr3470; - } else - goto tr3470; - goto tr77; -tr3470: - { - s->dname = rdata_tail; - } - { p--; {stack[top++] = 1139;goto st321;} } - goto st1139; -st1139: + goto st1276; +st1276: if ( ++p == pe ) - goto _test_eof1139; -case 1139: + goto _test_eof1276; +case 1276: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90443,488 +88429,153 @@ case 1139: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3473; - case 32: goto tr3473; - case 40: goto tr3474; - case 41: goto tr3475; + case 9: goto st1276; + case 32: goto st1276; + case 40: goto tr3473; + case 41: goto tr3474; + case 46: goto tr3475; case 2058: goto tr3476; case 2107: goto tr3477; } - goto tr77; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3475; + goto tr3471; tr3479: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1140; -tr3480: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1140; -tr3482: - { - s->line_counter++; - } - goto st1140; -tr3486: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 1140; goto _out;} - } - } - } - { - s->line_counter++; - } - goto st1140; -tr3473: - { - rdata_tail += s->dname_tmp_length; - } - goto st1140; -tr3474: - { - rdata_tail += s->dname_tmp_length; - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1140; -tr3475: - { - rdata_tail += s->dname_tmp_length; - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1140; -tr3476: - { - rdata_tail += s->dname_tmp_length; - } - { - s->line_counter++; - } - goto st1140; -st1140: - if ( ++p == pe ) - goto _test_eof1140; -case 1140: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st1140; - case 32: goto st1140; - case 40: goto tr3479; - case 41: goto tr3480; - case 43: goto tr3481; - case 2058: goto tr3482; - case 2107: goto tr3483; - } - if ( _widec < 65 ) { - if ( 47 <= _widec && _widec <= 57 ) - goto tr3481; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr3481; - } else - goto tr3481; - goto tr77; -tr3481: - { p--; {stack[top++] = 1141;goto st381;} } - goto st1141; -st1141: - if ( ++p == pe ) - goto _test_eof1141; -case 1141: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2176 + ((*p) - -128)); - if ( - !s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2176 + ((*p) - -128)); - if ( - !s->multiline ) _widec += 256; - } - switch( _widec ) { - case 2570: goto tr3484; - case 2619: goto tr3484; - } - goto tr77; -tr3484: - { - p--; {cs = stack[--top];goto _again;} - } - goto st1561; -st1561: - if ( ++p == pe ) - goto _test_eof1561; -case 1561: - goto st0; -tr3483: - { - s->buffer_length = 0; - } - goto st1142; -tr3485: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st1142; -tr3477: - { - rdata_tail += s->dname_tmp_length; - } - { - s->buffer_length = 0; - } - goto st1142; -st1142: - if ( ++p == pe ) - goto _test_eof1142; -case 1142: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr3486; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3485; - goto tr77; -tr3472: - { - s->buffer_length = 0; - } - goto st1143; -tr3487: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st1143; -tr3466: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } - { - s->buffer_length = 0; - } - goto st1143; -st1143: - if ( ++p == pe ) - goto _test_eof1143; -case 1143: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr3488; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3487; - goto tr77; -tr3460: - { - s->buffer_length = 0; - } - goto st1144; -tr3489: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st1144; -tr3454: - { - s->buffer[s->buffer_length] = 0; - - if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). - uint32_t timestamp; - int ret = date_to_timestamp(s->buffer, ×tamp); - - if (ret == ZS_OK) { - *((uint32_t *)rdata_tail) = htonl(timestamp); - rdata_tail += 4; - } else { - WARN(ret); - p--; {goto st319;} - } - } else if (s->buffer_length <= 10) { // Timestamp format. - char *end; - - s->number64 = strtoull((char *)(s->buffer), &end, 10); - - if (end == (char *)(s->buffer) || *end != '\0') { - WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} - } - - if (s->number64 <= UINT32_MAX) { - *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } - } else { - WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} - } - } - { - s->buffer_length = 0; - } - goto st1144; -st1144: - if ( ++p == pe ) - goto _test_eof1144; -case 1144: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr3490; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3489; - goto tr77; -tr3448: - { - s->buffer_length = 0; - } - goto st1145; -tr3491: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); - } - } - goto st1145; -tr3442: - { - s->buffer[s->buffer_length] = 0; - - if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). - uint32_t timestamp; - int ret = date_to_timestamp(s->buffer, ×tamp); - - if (ret == ZS_OK) { - *((uint32_t *)rdata_tail) = htonl(timestamp); - rdata_tail += 4; - } else { - WARN(ret); - p--; {goto st319;} - } - } else if (s->buffer_length <= 10) { // Timestamp format. - char *end; - - s->number64 = strtoull((char *)(s->buffer), &end, 10); - - if (end == (char *)(s->buffer) || *end != '\0') { - WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} - } - - if (s->number64 <= UINT32_MAX) { - *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); - rdata_tail += 4; - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } } else { - WARN(ZS_BAD_TIMESTAMP_LENGTH); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} - } - } - { - s->buffer_length = 0; - } - goto st1145; -st1145: - if ( ++p == pe ) - goto _test_eof1145; -case 1145: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + } } - if ( _widec == 2058 ) - goto tr3492; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3491; - goto tr77; -tr3436: + goto st1277; +tr3475: { s->buffer_length = 0; } - goto st1146; -tr3493: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); - } - } - goto st1146; -tr3429: - { - if (s->number64 <= UINT32_MAX) { - uint32_t num32 = htonl((uint32_t)s->number64); - memcpy(rdata_tail, &num32, 4); - rdata_tail += 4; } else { - WARN(ZS_NUMBER32_OVERFLOW); + WARN(ZS_RDATA_OVERFLOW); p--; {goto st319;} } } - { - s->buffer_length = 0; - } - goto st1146; -st1146: + goto st1277; +st1277: if ( ++p == pe ) - goto _test_eof1146; -case 1146: + goto _test_eof1277; +case 1277: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( + if ( (*p) < 32 ) { + if ( (*p) > 9 ) { + if ( 10 <= (*p) && (*p) <= 10 ) { + _widec = (short)(9856 + ((*p) - -128)); + if ( s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 != 0 ) _widec += 1024; + if ( + s->number64 == 0 ) _widec += 2048; + } + } else if ( (*p) >= 9 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 32 ) { + if ( (*p) < 41 ) { + if ( 40 <= (*p) && (*p) <= 40 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 41 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(9856 + ((*p) - -128)); + if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 != 0 ) _widec += 1024; + if ( + s->number64 == 0 ) _widec += 2048; + } + } else { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; } } else { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(6784 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; } - if ( _widec == 2058 ) - goto tr3494; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3493; - goto tr77; -tr3423: + switch( _widec ) { + case 46: goto tr3479; + case 7177: goto tr3480; + case 7200: goto tr3480; + case 7208: goto tr3481; + case 7209: goto tr3482; + case 7433: goto tr3483; + case 7456: goto tr3483; + case 7464: goto tr3484; + case 7465: goto tr3485; + case 7689: goto tr3486; + case 7712: goto tr3486; + case 7720: goto tr3487; + case 7721: goto tr3488; + case 10506: goto tr3489; + case 10555: goto tr3489; + case 10762: goto tr3489; + case 10811: goto tr3489; + case 11274: goto tr3490; + case 11323: goto tr3491; + case 11530: goto tr3489; + case 11579: goto tr3489; + case 11786: goto tr3492; + case 11835: goto tr3493; + case 12298: goto tr3494; + case 12347: goto tr3495; + case 12554: goto tr3489; + case 12603: goto tr3489; + case 12810: goto tr3496; + case 12859: goto tr3497; + case 13322: goto tr3498; + case 13371: goto tr3499; + case 13578: goto tr3489; + case 13627: goto tr3489; + case 13834: goto tr3500; + case 13883: goto tr3501; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3479; + goto tr3478; +tr3477: { s->buffer_length = 0; } - goto st1147; -tr3495: + goto st1278; +tr3502: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1147; -tr3417: + goto st1278; +tr3470: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -90937,11 +88588,11 @@ tr3417: { s->buffer_length = 0; } - goto st1147; -st1147: + goto st1278; +st1278: if ( ++p == pe ) - goto _test_eof1147; -case 1147: + goto _test_eof1278; +case 1278: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90961,26 +88612,26 @@ case 1147: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3496; + goto tr3503; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3495; - goto tr77; -tr3410: + goto tr3502; + goto tr3395; +tr3463: { s->buffer_length = 0; } - goto st1148; -tr3497: + goto st1279; +tr3504: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1148; -st1148: + goto st1279; +st1279: if ( ++p == pe ) - goto _test_eof1148; -case 1148: + goto _test_eof1279; +case 1279: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91000,341 +88651,465 @@ case 1148: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3498; + goto tr3505; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3497; - goto tr77; -tr3405: - { - s->buffer_length = 0; - } - goto st1149; -tr3499: + goto tr3504; + goto tr3395; +tr3401: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + *(rdata_tail++) = 2; } - goto st1149; -tr3874: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + goto st1280; +st1280: + if ( ++p == pe ) + goto _test_eof1280; +case 1280: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - { - s->buffer_length = 0; - } - goto st1149; -tr3399: - { type_num(KNOT_RRTYPE_A, &rdata_tail); } - { - s->buffer_length = 0; + switch( _widec ) { + case 9: goto st1281; + case 32: goto st1281; + case 40: goto tr3507; + case 41: goto tr3508; + case 2058: goto tr3509; + case 2107: goto tr3510; } - goto st1149; + goto tr3395; tr3507: - { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3515: - { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3521: - { type_num(KNOT_RRTYPE_APL, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3532: - { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3543: - { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3548: - { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3555: - { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3563: - { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3571: - { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3582: - { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3591: - { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3599: - { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3605: - { type_num(KNOT_RRTYPE_DS, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3612: - { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1149; -tr3622: - { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1149; -tr3628: - { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } + goto st1281; +tr3508: { - s->buffer_length = 0; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1149; -tr3638: - { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } + goto st1281; +tr3509: { - s->buffer_length = 0; + s->line_counter++; } - goto st1149; -tr3646: - { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } + goto st1281; +tr3550: { - s->buffer_length = 0; + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1281; goto _out;} + } + } } - goto st1149; -tr3658: - { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } { - s->buffer_length = 0; + s->line_counter++; } - goto st1149; -tr3666: - { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } - { - s->buffer_length = 0; + goto st1281; +st1281: + if ( ++p == pe ) + goto _test_eof1281; +case 1281: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st1149; -tr3671: - { type_num(KNOT_RRTYPE_KX, &rdata_tail); } - { - s->buffer_length = 0; + switch( _widec ) { + case 9: goto st1281; + case 32: goto st1281; + case 40: goto tr3507; + case 41: goto tr3508; + case 2058: goto tr3509; + case 2107: goto tr3510; } - goto st1149; -tr3681: - { type_num(KNOT_RRTYPE_L32, &rdata_tail); } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3511; + goto tr3410; +tr3511: { - s->buffer_length = 0; + s->number64 = 0; } - goto st1149; -tr3687: - { type_num(KNOT_RRTYPE_L64, &rdata_tail); } { - s->buffer_length = 0; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } - goto st1149; -tr3693: - { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } + goto st1282; +tr3515: { - s->buffer_length = 0; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } - goto st1149; -tr3698: - { type_num(KNOT_RRTYPE_LP, &rdata_tail); } - { - s->buffer_length = 0; + goto st1282; +st1282: + if ( ++p == pe ) + goto _test_eof1282; +case 1282: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st1149; -tr3708: - { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } - { - s->buffer_length = 0; + switch( _widec ) { + case 9: goto tr3512; + case 32: goto tr3512; + case 40: goto tr3513; + case 41: goto tr3514; + case 2058: goto tr3516; + case 2107: goto tr3517; } - goto st1149; -tr3713: - { type_num(KNOT_RRTYPE_MX, &rdata_tail); } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3515; + goto tr3410; +tr3519: { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1149; -tr3724: - { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } + goto st1283; +tr3520: { - s->buffer_length = 0; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1149; -tr3730: - { type_num(KNOT_RRTYPE_NID, &rdata_tail); } + goto st1283; +tr3522: { - s->buffer_length = 0; + s->line_counter++; } - goto st1149; -tr3736: - { type_num(KNOT_RRTYPE_NS, &rdata_tail); } + goto st1283; +tr3548: { - s->buffer_length = 0; + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1283; goto _out;} + } + } } - goto st1149; -tr3743: - { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } { - s->buffer_length = 0; + s->line_counter++; } - goto st1149; -tr3749: - { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } + goto st1283; +tr3512: { - s->buffer_length = 0; + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } } - goto st1149; -tr3758: - { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } + goto st1283; +tr3513: { - s->buffer_length = 0; + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } } - goto st1149; -tr3772: - { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } { - s->buffer_length = 0; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto st1149; -tr3779: - { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } + goto st1283; +tr3514: { - s->buffer_length = 0; + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } } - goto st1149; -tr3787: - { type_num(KNOT_RRTYPE_RP, &rdata_tail); } { - s->buffer_length = 0; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto st1149; -tr3795: - { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } + goto st1283; +tr3516: { - s->buffer_length = 0; + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } } - goto st1149; -tr3800: - { type_num(KNOT_RRTYPE_RT, &rdata_tail); } { - s->buffer_length = 0; + s->line_counter++; } - goto st1149; -tr3815: - { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } - { - s->buffer_length = 0; + goto st1283; +st1283: + if ( ++p == pe ) + goto _test_eof1283; +case 1283: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st1149; -tr3821: - { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } - { - s->buffer_length = 0; + switch( _widec ) { + case 9: goto st1283; + case 32: goto st1283; + case 40: goto tr3519; + case 41: goto tr3520; + case 46: goto tr3521; + case 2058: goto tr3522; + case 2107: goto tr3523; } - goto st1149; -tr3827: - { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 58 ) + goto tr3521; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr3521; + } else + goto tr3521; + goto tr3471; +tr3524: { - s->buffer_length = 0; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } - goto st1149; -tr3833: - { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } + goto st1284; +tr3521: { s->buffer_length = 0; } - goto st1149; -tr3841: - { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } { - s->buffer_length = 0; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } - goto st1149; -tr3848: - { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } - { - s->buffer_length = 0; + goto st1284; +st1284: + if ( ++p == pe ) + goto _test_eof1284; +case 1284: + _widec = (*p); + if ( (*p) < 32 ) { + if ( (*p) > 9 ) { + if ( 10 <= (*p) && (*p) <= 10 ) { + _widec = (short)(9856 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 != 0 ) _widec += 1024; + if ( + s->number64 == 0 ) _widec += 2048; + } + } else if ( (*p) >= 9 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 32 ) { + if ( (*p) < 41 ) { + if ( 40 <= (*p) && (*p) <= 40 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 41 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(9856 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 != 0 ) _widec += 1024; + if ( + s->number64 == 0 ) _widec += 2048; + } + } else { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; } - goto st1149; -tr3858: - { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } - { - s->buffer_length = 0; + switch( _widec ) { + case 46: goto tr3524; + case 7177: goto tr3525; + case 7200: goto tr3525; + case 7208: goto tr3526; + case 7209: goto tr3527; + case 7433: goto tr3528; + case 7456: goto tr3528; + case 7464: goto tr3529; + case 7465: goto tr3530; + case 7689: goto tr3531; + case 7712: goto tr3531; + case 7720: goto tr3532; + case 7721: goto tr3533; + case 10506: goto tr3534; + case 10555: goto tr3534; + case 10762: goto tr3534; + case 10811: goto tr3534; + case 11274: goto tr3535; + case 11323: goto tr3536; + case 11530: goto tr3534; + case 11579: goto tr3534; + case 11786: goto tr3537; + case 11835: goto tr3538; + case 12298: goto tr3539; + case 12347: goto tr3540; + case 12554: goto tr3534; + case 12603: goto tr3534; + case 12810: goto tr3541; + case 12859: goto tr3542; + case 13322: goto tr3543; + case 13371: goto tr3544; + case 13578: goto tr3534; + case 13627: goto tr3534; + case 13834: goto tr3545; + case 13883: goto tr3546; } - goto st1149; -tr3864: - { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 58 ) + goto tr3524; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr3524; + } else + goto tr3524; + goto tr3478; +tr3523: { s->buffer_length = 0; } - goto st1149; -tr3881: - { type_num(KNOT_RRTYPE_URI, &rdata_tail); } + goto st1285; +tr3547: { - s->buffer_length = 0; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto st1149; -tr3891: - { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } + goto st1285; +tr3517: { - s->buffer_length = 0; + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } } - goto st1149; -tr3901: - { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } { s->buffer_length = 0; } - goto st1149; -st1149: + goto st1285; +st1285: if ( ++p == pe ) - goto _test_eof1149; -case 1149: + goto _test_eof1285; +case 1285: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91354,84 +89129,58 @@ case 1149: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3500; + goto tr3548; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3499; - goto tr77; -st1150: - if ( ++p == pe ) - goto _test_eof1150; -case 1150: - switch( (*p) ) { - case 65: goto st1151; - case 97: goto st1151; + goto tr3547; + goto tr3395; +tr3510: + { + s->buffer_length = 0; } - goto tr3373; -st1151: - if ( ++p == pe ) - goto _test_eof1151; -case 1151: - switch( (*p) ) { - case 65: goto st1152; - case 97: goto st1152; + goto st1286; +tr3549: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto tr3373; -st1152: + goto st1286; +st1286: if ( ++p == pe ) - goto _test_eof1152; -case 1152: + goto _test_eof1286; +case 1286: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3503; - case 32: goto tr3503; - case 40: goto tr3504; - case 41: goto tr3505; - case 2058: goto tr3506; - case 2107: goto tr3507; - } - goto tr3373; -st1153: - if ( ++p == pe ) - goto _test_eof1153; -case 1153: - switch( (*p) ) { - case 83: goto st1154; - case 115: goto st1154; - } - goto tr3373; -st1154: - if ( ++p == pe ) - goto _test_eof1154; -case 1154: - switch( (*p) ) { - case 68: goto st1155; - case 100: goto st1155; - } - goto tr3373; -st1155: - if ( ++p == pe ) - goto _test_eof1155; -case 1155: - switch( (*p) ) { - case 66: goto st1156; - case 98: goto st1156; + if ( _widec == 2058 ) + goto tr3550; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3549; + goto tr3395; +tr3402: + { + *(rdata_tail++) = 3; } - goto tr3373; -st1156: + goto st1287; +st1287: if ( ++p == pe ) - goto _test_eof1156; -case 1156: + goto _test_eof1287; +case 1287: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91445,27 +89194,59 @@ case 1156: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3511; - case 32: goto tr3511; - case 40: goto tr3512; - case 41: goto tr3513; - case 2058: goto tr3514; - case 2107: goto tr3515; - } - goto tr3373; -st1157: - if ( ++p == pe ) - goto _test_eof1157; -case 1157: - switch( (*p) ) { - case 76: goto st1158; - case 108: goto st1158; + case 9: goto st1288; + case 32: goto st1288; + case 40: goto tr3552; + case 41: goto tr3553; + case 2058: goto tr3554; + case 2107: goto tr3555; } - goto tr3373; -st1158: + goto tr3395; +tr3552: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1288; +tr3553: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1288; +tr3554: + { + s->line_counter++; + } + goto st1288; +tr3594: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1288; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1288; +st1288: if ( ++p == pe ) - goto _test_eof1158; -case 1158: + goto _test_eof1288; +case 1288: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91479,44 +89260,55 @@ case 1158: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3517; - case 32: goto tr3517; - case 40: goto tr3518; - case 41: goto tr3519; - case 2058: goto tr3520; - case 2107: goto tr3521; - } - goto tr3373; -st1159: - if ( ++p == pe ) - goto _test_eof1159; -case 1159: - switch( (*p) ) { - case 65: goto st1160; - case 68: goto st1162; - case 69: goto st1169; - case 78: goto st1172; - case 83: goto st1176; - case 97: goto st1160; - case 100: goto st1162; - case 101: goto st1169; - case 110: goto st1172; - case 115: goto st1176; - } - goto tr3373; -st1160: - if ( ++p == pe ) - goto _test_eof1160; -case 1160: - switch( (*p) ) { - case 65: goto st1161; - case 97: goto st1161; + case 9: goto st1288; + case 32: goto st1288; + case 40: goto tr3552; + case 41: goto tr3553; + case 2058: goto tr3554; + case 2107: goto tr3555; } - goto tr3373; -st1161: + if ( 48 <= _widec && _widec <= 57 ) + goto tr3556; + goto tr3410; +tr3556: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1289; +tr3560: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1289; +st1289: if ( ++p == pe ) - goto _test_eof1161; -case 1161: + goto _test_eof1289; +case 1289: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91530,90 +89322,122 @@ case 1161: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3528; - case 32: goto tr3528; - case 40: goto tr3529; - case 41: goto tr3530; - case 2058: goto tr3531; - case 2107: goto tr3532; - } - goto tr3373; -st1162: - if ( ++p == pe ) - goto _test_eof1162; -case 1162: - switch( (*p) ) { - case 78: goto st1163; - case 83: goto st1168; - case 110: goto st1163; - case 115: goto st1168; + case 9: goto tr3557; + case 32: goto tr3557; + case 40: goto tr3558; + case 41: goto tr3559; + case 2058: goto tr3561; + case 2107: goto tr3562; } - goto tr3373; -st1163: - if ( ++p == pe ) - goto _test_eof1163; -case 1163: - switch( (*p) ) { - case 83: goto st1164; - case 115: goto st1164; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3560; + goto tr3410; +tr3564: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto tr3373; -st1164: - if ( ++p == pe ) - goto _test_eof1164; -case 1164: - switch( (*p) ) { - case 75: goto st1165; - case 107: goto st1165; + goto st1290; +tr3565: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto tr3373; -st1165: - if ( ++p == pe ) - goto _test_eof1165; -case 1165: - switch( (*p) ) { - case 69: goto st1166; - case 101: goto st1166; + goto st1290; +tr3567: + { + s->line_counter++; } - goto tr3373; -st1166: - if ( ++p == pe ) - goto _test_eof1166; -case 1166: - switch( (*p) ) { - case 89: goto st1167; - case 121: goto st1167; + goto st1290; +tr3592: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1290; goto _out;} + } + } } - goto tr3373; -st1167: - if ( ++p == pe ) - goto _test_eof1167; -case 1167: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + s->line_counter++; + } + goto st1290; +tr3557: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3539; - case 32: goto tr3539; - case 40: goto tr3540; - case 41: goto tr3541; - case 2058: goto tr3542; - case 2107: goto tr3543; - } - goto tr3373; -st1168: + goto st1290; +tr3558: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1290; +tr3559: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1290; +tr3561: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + goto st1290; +st1290: if ( ++p == pe ) - goto _test_eof1168; -case 1168: + goto _test_eof1290; +case 1290: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91627,259 +89451,293 @@ case 1168: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3544; - case 32: goto tr3544; - case 40: goto tr3545; - case 41: goto tr3546; - case 2058: goto tr3547; - case 2107: goto tr3548; - } - goto tr3373; -st1169: - if ( ++p == pe ) - goto _test_eof1169; -case 1169: - switch( (*p) ) { - case 82: goto st1170; - case 114: goto st1170; + case 9: goto st1290; + case 32: goto st1290; + case 40: goto tr3564; + case 41: goto tr3565; + case 42: goto tr3566; + case 92: goto tr3566; + case 95: goto tr3566; + case 2058: goto tr3567; + case 2107: goto tr3568; } - goto tr3373; -st1170: - if ( ++p == pe ) - goto _test_eof1170; -case 1170: - switch( (*p) ) { - case 84: goto st1171; - case 116: goto st1171; + if ( _widec < 64 ) { + if ( 45 <= _widec && _widec <= 57 ) + goto tr3566; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr3566; + } else + goto tr3566; + goto tr3395; +tr3566: + { + s->dname = rdata_tail; } - goto tr3373; -st1171: + { p--; {stack[top++] = 1291;goto st321;} } + goto st1291; +st1291: if ( ++p == pe ) - goto _test_eof1171; -case 1171: + goto _test_eof1291; +case 1291: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) < 32 ) { + if ( (*p) > 9 ) { + if ( 10 <= (*p) && (*p) <= 10 ) { + _widec = (short)(9856 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 != 0 ) _widec += 1024; + if ( + s->number64 == 0 ) _widec += 2048; + } + } else if ( (*p) >= 9 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 32 ) { + if ( (*p) < 41 ) { + if ( 40 <= (*p) && (*p) <= 40 ) { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; + } + } else if ( (*p) > 41 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(9856 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + if ( + s->number64 != 0 ) _widec += 1024; + if ( + s->number64 == 0 ) _widec += 2048; + } + } else { + _widec = (short)(6784 + ((*p) - -128)); + if ( + s->number64 != 0 ) _widec += 256; if ( - s->multiline ) _widec += 256; + s->number64 == 0 ) _widec += 512; } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + } else { + _widec = (short)(6784 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + s->number64 != 0 ) _widec += 256; + if ( + s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 9: goto tr3551; - case 32: goto tr3551; - case 40: goto tr3552; - case 41: goto tr3553; - case 2058: goto tr3554; - case 2107: goto tr3555; + case 7177: goto tr3569; + case 7200: goto tr3569; + case 7208: goto tr3570; + case 7209: goto tr3571; + case 7433: goto tr3572; + case 7456: goto tr3572; + case 7464: goto tr3573; + case 7465: goto tr3574; + case 7689: goto tr3575; + case 7712: goto tr3575; + case 7720: goto tr3576; + case 7721: goto tr3577; + case 10506: goto tr3578; + case 10555: goto tr3578; + case 10762: goto tr3578; + case 10811: goto tr3578; + case 11274: goto tr3579; + case 11323: goto tr3580; + case 11530: goto tr3578; + case 11579: goto tr3578; + case 11786: goto tr3581; + case 11835: goto tr3582; + case 12298: goto tr3583; + case 12347: goto tr3584; + case 12554: goto tr3578; + case 12603: goto tr3578; + case 12810: goto tr3585; + case 12859: goto tr3586; + case 13322: goto tr3587; + case 13371: goto tr3588; + case 13578: goto tr3578; + case 13627: goto tr3578; + case 13834: goto tr3589; + case 13883: goto tr3590; + } + goto tr3424; +tr3568: + { + s->buffer_length = 0; } - goto tr3373; -st1172: - if ( ++p == pe ) - goto _test_eof1172; -case 1172: - switch( (*p) ) { - case 65: goto st1173; - case 97: goto st1173; + goto st1292; +tr3591: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto tr3373; -st1173: - if ( ++p == pe ) - goto _test_eof1173; -case 1173: - switch( (*p) ) { - case 77: goto st1174; - case 109: goto st1174; + goto st1292; +tr3562: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1174: - if ( ++p == pe ) - goto _test_eof1174; -case 1174: - switch( (*p) ) { - case 69: goto st1175; - case 101: goto st1175; + { + s->buffer_length = 0; } - goto tr3373; -st1175: + goto st1292; +st1292: if ( ++p == pe ) - goto _test_eof1175; -case 1175: + goto _test_eof1292; +case 1292: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3559; - case 32: goto tr3559; - case 40: goto tr3560; - case 41: goto tr3561; - case 2058: goto tr3562; - case 2107: goto tr3563; - } - goto tr3373; -st1176: - if ( ++p == pe ) - goto _test_eof1176; -case 1176: - switch( (*p) ) { - case 89: goto st1177; - case 121: goto st1177; - } - goto tr3373; -st1177: - if ( ++p == pe ) - goto _test_eof1177; -case 1177: - switch( (*p) ) { - case 78: goto st1178; - case 110: goto st1178; + if ( _widec == 2058 ) + goto tr3592; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3591; + goto tr3395; +tr3555: + { + s->buffer_length = 0; } - goto tr3373; -st1178: - if ( ++p == pe ) - goto _test_eof1178; -case 1178: - switch( (*p) ) { - case 67: goto st1179; - case 99: goto st1179; + goto st1293; +tr3593: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto tr3373; -st1179: + goto st1293; +st1293: if ( ++p == pe ) - goto _test_eof1179; -case 1179: + goto _test_eof1293; +case 1293: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3567; - case 32: goto tr3567; - case 40: goto tr3568; - case 41: goto tr3569; - case 2058: goto tr3570; - case 2107: goto tr3571; - } - goto tr3373; -st1180: - if ( ++p == pe ) - goto _test_eof1180; -case 1180: - switch( (*p) ) { - case 72: goto st1181; - case 78: goto st1185; - case 83: goto st1193; - case 104: goto st1181; - case 110: goto st1185; - case 115: goto st1193; + if ( _widec == 2058 ) + goto tr3594; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3593; + goto tr3395; +tr3404: + { + s->buffer_length = 0; } - goto tr3373; -st1181: - if ( ++p == pe ) - goto _test_eof1181; -case 1181: - switch( (*p) ) { - case 67: goto st1182; - case 99: goto st1182; + goto st1294; +tr3595: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto tr3373; -st1182: - if ( ++p == pe ) - goto _test_eof1182; -case 1182: - switch( (*p) ) { - case 73: goto st1183; - case 105: goto st1183; + goto st1294; +tr3394: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1183: - if ( ++p == pe ) - goto _test_eof1183; -case 1183: - switch( (*p) ) { - case 68: goto st1184; - case 100: goto st1184; + { + s->buffer_length = 0; } - goto tr3373; -st1184: + goto st1294; +st1294: if ( ++p == pe ) - goto _test_eof1184; -case 1184: + goto _test_eof1294; +case 1294: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3578; - case 32: goto tr3578; - case 40: goto tr3579; - case 41: goto tr3580; - case 2058: goto tr3581; - case 2107: goto tr3582; - } - goto tr3373; -st1185: - if ( ++p == pe ) - goto _test_eof1185; -case 1185: - switch( (*p) ) { - case 65: goto st1186; - case 83: goto st1189; - case 97: goto st1186; - case 115: goto st1189; - } - goto tr3373; -st1186: - if ( ++p == pe ) - goto _test_eof1186; -case 1186: - switch( (*p) ) { - case 77: goto st1187; - case 109: goto st1187; - } - goto tr3373; -st1187: + if ( _widec == 2058 ) + goto tr3596; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3595; + goto tr77; +st1295: if ( ++p == pe ) - goto _test_eof1187; -case 1187: - switch( (*p) ) { - case 69: goto st1188; - case 101: goto st1188; - } - goto tr3373; -st1188: + goto _test_eof1295; +case 1295: + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr3597; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr3597; + } else + goto tr3597; + goto tr77; +tr3597: + { p--; {stack[top++] = 1296;goto st388;} } + goto st1296; +st1296: if ( ++p == pe ) - goto _test_eof1188; -case 1188: + goto _test_eof1296; +case 1296: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91893,45 +89751,59 @@ case 1188: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3587; - case 32: goto tr3587; - case 40: goto tr3588; - case 41: goto tr3589; - case 2058: goto tr3590; - case 2107: goto tr3591; - } - goto tr3373; -st1189: - if ( ++p == pe ) - goto _test_eof1189; -case 1189: - switch( (*p) ) { - case 75: goto st1190; - case 107: goto st1190; + case 9: goto st1297; + case 32: goto st1297; + case 40: goto tr3599; + case 41: goto tr3600; + case 2058: goto tr3601; + case 2107: goto tr3602; } - goto tr3373; -st1190: - if ( ++p == pe ) - goto _test_eof1190; -case 1190: - switch( (*p) ) { - case 69: goto st1191; - case 101: goto st1191; + goto tr77; +tr3599: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto tr3373; -st1191: - if ( ++p == pe ) - goto _test_eof1191; -case 1191: - switch( (*p) ) { - case 89: goto st1192; - case 121: goto st1192; + goto st1297; +tr3600: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto tr3373; -st1192: + goto st1297; +tr3601: + { + s->line_counter++; + } + goto st1297; +tr3698: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1297; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1297; +st1297: if ( ++p == pe ) - goto _test_eof1192; -case 1192: + goto _test_eof1297; +case 1297: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91945,18 +89817,29 @@ case 1192: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3595; - case 32: goto tr3595; - case 40: goto tr3596; - case 41: goto tr3597; - case 2058: goto tr3598; - case 2107: goto tr3599; - } - goto tr3373; -st1193: + case 9: goto st1297; + case 32: goto st1297; + case 40: goto tr3599; + case 41: goto tr3600; + case 2058: goto tr3601; + case 2107: goto tr3602; + } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr3603; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr3603; + } else + goto tr3603; + goto tr77; +tr3603: + { p--; {stack[top++] = 1298;goto st918;} } + goto st1298; +st1298: if ( ++p == pe ) - goto _test_eof1193; -case 1193: + goto _test_eof1298; +case 1298: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91970,97 +89853,59 @@ case 1193: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3600; - case 32: goto tr3600; - case 40: goto tr3601; - case 41: goto tr3602; - case 89: goto st1194; - case 121: goto st1194; - case 2058: goto tr3604; - case 2107: goto tr3605; - } - goto tr3373; -st1194: - if ( ++p == pe ) - goto _test_eof1194; -case 1194: - switch( (*p) ) { - case 78: goto st1195; - case 110: goto st1195; + case 9: goto st1299; + case 32: goto st1299; + case 40: goto tr3605; + case 41: goto tr3606; + case 2058: goto tr3607; + case 2107: goto tr3608; } - goto tr3373; -st1195: - if ( ++p == pe ) - goto _test_eof1195; -case 1195: - switch( (*p) ) { - case 67: goto st1196; - case 99: goto st1196; + goto tr77; +tr3605: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto tr3373; -st1196: - if ( ++p == pe ) - goto _test_eof1196; -case 1196: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1299; +tr3606: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->multiline = false; } - switch( _widec ) { - case 9: goto tr3608; - case 32: goto tr3608; - case 40: goto tr3609; - case 41: goto tr3610; - case 2058: goto tr3611; - case 2107: goto tr3612; - } - goto tr3373; -st1197: - if ( ++p == pe ) - goto _test_eof1197; -case 1197: - switch( (*p) ) { - case 85: goto st1198; - case 117: goto st1198; + goto st1299; +tr3607: + { + s->line_counter++; } - goto tr3373; -st1198: - if ( ++p == pe ) - goto _test_eof1198; -case 1198: - switch( (*p) ) { - case 73: goto st1199; - case 105: goto st1199; + goto st1299; +tr3696: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1299; goto _out;} + } + } } - goto tr3373; -st1199: - if ( ++p == pe ) - goto _test_eof1199; -case 1199: - switch( (*p) ) { - case 52: goto st1200; - case 54: goto st1202; + { + s->line_counter++; } - goto tr3373; -st1200: - if ( ++p == pe ) - goto _test_eof1200; -case 1200: - if ( (*p) == 56 ) - goto st1201; - goto tr3373; -st1201: + goto st1299; +st1299: if ( ++p == pe ) - goto _test_eof1201; -case 1201: + goto _test_eof1299; +case 1299: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92074,25 +89919,55 @@ case 1201: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3618; - case 32: goto tr3618; - case 40: goto tr3619; - case 41: goto tr3620; - case 2058: goto tr3621; - case 2107: goto tr3622; - } - goto tr3373; -st1202: - if ( ++p == pe ) - goto _test_eof1202; -case 1202: - if ( (*p) == 52 ) - goto st1203; - goto tr3373; -st1203: + case 9: goto st1299; + case 32: goto st1299; + case 40: goto tr3605; + case 41: goto tr3606; + case 2058: goto tr3607; + case 2107: goto tr3608; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3609; + goto tr2653; +tr3609: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1300; +tr3613: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1300; +st1300: if ( ++p == pe ) - goto _test_eof1203; -case 1203: + goto _test_eof1300; +case 1300: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92106,56 +89981,122 @@ case 1203: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3624; - case 32: goto tr3624; - case 40: goto tr3625; - case 41: goto tr3626; - case 2058: goto tr3627; - case 2107: goto tr3628; - } - goto tr3373; -st1204: - if ( ++p == pe ) - goto _test_eof1204; -case 1204: - switch( (*p) ) { - case 73: goto st1205; - case 84: goto st1209; - case 105: goto st1205; - case 116: goto st1209; + case 9: goto tr3610; + case 32: goto tr3610; + case 40: goto tr3611; + case 41: goto tr3612; + case 2058: goto tr3614; + case 2107: goto tr3615; } - goto tr3373; -st1205: - if ( ++p == pe ) - goto _test_eof1205; -case 1205: - switch( (*p) ) { - case 78: goto st1206; - case 110: goto st1206; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3613; + goto tr2653; +tr3617: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto tr3373; -st1206: - if ( ++p == pe ) - goto _test_eof1206; -case 1206: - switch( (*p) ) { - case 70: goto st1207; - case 102: goto st1207; + goto st1301; +tr3618: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto tr3373; -st1207: - if ( ++p == pe ) - goto _test_eof1207; -case 1207: - switch( (*p) ) { - case 79: goto st1208; - case 111: goto st1208; + goto st1301; +tr3620: + { + s->line_counter++; } - goto tr3373; -st1208: + goto st1301; +tr3694: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1301; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st1301; +tr3610: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + goto st1301; +tr3611: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1301; +tr3612: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1301; +tr3614: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + goto st1301; +st1301: if ( ++p == pe ) - goto _test_eof1208; -case 1208: + goto _test_eof1301; +case 1301: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92169,45 +90110,55 @@ case 1208: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3634; - case 32: goto tr3634; - case 40: goto tr3635; - case 41: goto tr3636; - case 2058: goto tr3637; - case 2107: goto tr3638; - } - goto tr3373; -st1209: - if ( ++p == pe ) - goto _test_eof1209; -case 1209: - switch( (*p) ) { - case 84: goto st1210; - case 116: goto st1210; + case 9: goto st1301; + case 32: goto st1301; + case 40: goto tr3617; + case 41: goto tr3618; + case 2058: goto tr3620; + case 2107: goto tr3621; } - goto tr3373; -st1210: - if ( ++p == pe ) - goto _test_eof1210; -case 1210: - switch( (*p) ) { - case 80: goto st1211; - case 112: goto st1211; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3619; + goto tr2653; +tr3619: + { + s->number64 = 0; } - goto tr3373; -st1211: - if ( ++p == pe ) - goto _test_eof1211; -case 1211: - switch( (*p) ) { - case 83: goto st1212; - case 115: goto st1212; + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1212: + goto st1302; +tr3625: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } + } + goto st1302; +st1302: if ( ++p == pe ) - goto _test_eof1212; -case 1212: + goto _test_eof1302; +case 1302: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92221,126 +90172,126 @@ case 1212: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3642; - case 32: goto tr3642; - case 40: goto tr3643; - case 41: goto tr3644; - case 2058: goto tr3645; - case 2107: goto tr3646; + case 9: goto tr3622; + case 32: goto tr3622; + case 40: goto tr3623; + case 41: goto tr3624; + case 2058: goto tr3626; + case 2107: goto tr3627; } - goto tr3373; -st1213: - if ( ++p == pe ) - goto _test_eof1213; -case 1213: - switch( (*p) ) { - case 80: goto st1214; - case 112: goto st1214; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3625; + goto tr2653; +tr3630: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto tr3373; -st1214: - if ( ++p == pe ) - goto _test_eof1214; -case 1214: - switch( (*p) ) { - case 83: goto st1215; - case 115: goto st1215; + goto st1303; +tr3631: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto tr3373; -st1215: - if ( ++p == pe ) - goto _test_eof1215; -case 1215: - switch( (*p) ) { - case 69: goto st1216; - case 101: goto st1216; + goto st1303; +tr3633: + { + s->line_counter++; } - goto tr3373; -st1216: - if ( ++p == pe ) - goto _test_eof1216; -case 1216: - switch( (*p) ) { - case 67: goto st1217; - case 99: goto st1217; + goto st1303; +tr3692: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1303; goto _out;} + } + } } - goto tr3373; -st1217: - if ( ++p == pe ) - goto _test_eof1217; -case 1217: - switch( (*p) ) { - case 75: goto st1218; - case 107: goto st1218; + { + s->line_counter++; } - goto tr3373; -st1218: - if ( ++p == pe ) - goto _test_eof1218; -case 1218: - switch( (*p) ) { - case 69: goto st1219; - case 101: goto st1219; + goto st1303; +tr3622: + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1219: - if ( ++p == pe ) - goto _test_eof1219; -case 1219: - switch( (*p) ) { - case 89: goto st1220; - case 121: goto st1220; + goto st1303; +tr3623: + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1220: - if ( ++p == pe ) - goto _test_eof1220; -case 1220: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->multiline = true; } - switch( _widec ) { - case 9: goto tr3654; - case 32: goto tr3654; - case 40: goto tr3655; - case 41: goto tr3656; - case 2058: goto tr3657; - case 2107: goto tr3658; + goto st1303; +tr3624: + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1221: - if ( ++p == pe ) - goto _test_eof1221; -case 1221: - switch( (*p) ) { - case 69: goto st1222; - case 88: goto st1224; - case 101: goto st1222; - case 120: goto st1224; + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto tr3373; -st1222: - if ( ++p == pe ) - goto _test_eof1222; -case 1222: - switch( (*p) ) { - case 89: goto st1223; - case 121: goto st1223; + goto st1303; +tr3626: + { + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1223: + { + s->line_counter++; + } + goto st1303; +st1303: if ( ++p == pe ) - goto _test_eof1223; -case 1223: + goto _test_eof1303; +case 1303: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92354,63 +90305,43 @@ case 1223: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3662; - case 32: goto tr3662; - case 40: goto tr3663; - case 41: goto tr3664; - case 2058: goto tr3665; - case 2107: goto tr3666; - } - goto tr3373; -st1224: - if ( ++p == pe ) - goto _test_eof1224; -case 1224: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + case 9: goto st1303; + case 32: goto st1303; + case 40: goto tr3630; + case 41: goto tr3631; + case 2058: goto tr3633; + case 2107: goto tr3634; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr3632; + goto tr3628; +tr3632: + { + s->buffer_length = 0; + } + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3667; - case 32: goto tr3667; - case 40: goto tr3668; - case 41: goto tr3669; - case 2058: goto tr3670; - case 2107: goto tr3671; - } - goto tr3373; -st1225: - if ( ++p == pe ) - goto _test_eof1225; -case 1225: - switch( (*p) ) { - case 51: goto st1226; - case 54: goto st1228; - case 79: goto st1230; - case 80: goto st1232; - case 111: goto st1230; - case 112: goto st1232; + goto st1304; +tr3638: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1226: - if ( ++p == pe ) - goto _test_eof1226; -case 1226: - if ( (*p) == 50 ) - goto st1227; - goto tr3373; -st1227: + goto st1304; +st1304: if ( ++p == pe ) - goto _test_eof1227; -case 1227: + goto _test_eof1304; +case 1304: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92424,84 +90355,230 @@ case 1227: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3677; - case 32: goto tr3677; - case 40: goto tr3678; - case 41: goto tr3679; - case 2058: goto tr3680; - case 2107: goto tr3681; + case 9: goto tr3635; + case 32: goto tr3635; + case 40: goto tr3636; + case 41: goto tr3637; + case 2058: goto tr3639; + case 2107: goto tr3640; } - goto tr3373; -st1228: - if ( ++p == pe ) - goto _test_eof1228; -case 1228: - if ( (*p) == 52 ) - goto st1229; - goto tr3373; -st1229: - if ( ++p == pe ) - goto _test_eof1229; -case 1229: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3638; + goto tr3628; +tr3642: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->multiline = true; } - switch( _widec ) { - case 9: goto tr3683; - case 32: goto tr3683; - case 40: goto tr3684; - case 41: goto tr3685; - case 2058: goto tr3686; - case 2107: goto tr3687; - } - goto tr3373; -st1230: - if ( ++p == pe ) - goto _test_eof1230; -case 1230: - switch( (*p) ) { - case 67: goto st1231; - case 99: goto st1231; + goto st1305; +tr3643: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto tr3373; -st1231: - if ( ++p == pe ) - goto _test_eof1231; -case 1231: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1305; +tr3645: + { + s->line_counter++; + } + goto st1305; +tr3690: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1305; goto _out;} + } } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3689; - case 32: goto tr3689; - case 40: goto tr3690; - case 41: goto tr3691; - case 2058: goto tr3692; - case 2107: goto tr3693; - } - goto tr3373; -st1232: + { + s->line_counter++; + } + goto st1305; +tr3635: + { + s->buffer[s->buffer_length] = 0; + + if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). + uint32_t timestamp; + int ret = date_to_timestamp(s->buffer, ×tamp); + + if (ret == ZS_OK) { + *((uint32_t *)rdata_tail) = htonl(timestamp); + rdata_tail += 4; + } else { + WARN(ret); + p--; {goto st319;} + } + } else if (s->buffer_length <= 10) { // Timestamp format. + char *end; + + s->number64 = strtoull((char *)(s->buffer), &end, 10); + + if (end == (char *)(s->buffer) || *end != '\0') { + WARN(ZS_BAD_TIMESTAMP); + p--; {goto st319;} + } + + if (s->number64 <= UINT32_MAX) { + *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } else { + WARN(ZS_BAD_TIMESTAMP_LENGTH); + p--; {goto st319;} + } + } + goto st1305; +tr3636: + { + s->buffer[s->buffer_length] = 0; + + if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). + uint32_t timestamp; + int ret = date_to_timestamp(s->buffer, ×tamp); + + if (ret == ZS_OK) { + *((uint32_t *)rdata_tail) = htonl(timestamp); + rdata_tail += 4; + } else { + WARN(ret); + p--; {goto st319;} + } + } else if (s->buffer_length <= 10) { // Timestamp format. + char *end; + + s->number64 = strtoull((char *)(s->buffer), &end, 10); + + if (end == (char *)(s->buffer) || *end != '\0') { + WARN(ZS_BAD_TIMESTAMP); + p--; {goto st319;} + } + + if (s->number64 <= UINT32_MAX) { + *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } else { + WARN(ZS_BAD_TIMESTAMP_LENGTH); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1305; +tr3637: + { + s->buffer[s->buffer_length] = 0; + + if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). + uint32_t timestamp; + int ret = date_to_timestamp(s->buffer, ×tamp); + + if (ret == ZS_OK) { + *((uint32_t *)rdata_tail) = htonl(timestamp); + rdata_tail += 4; + } else { + WARN(ret); + p--; {goto st319;} + } + } else if (s->buffer_length <= 10) { // Timestamp format. + char *end; + + s->number64 = strtoull((char *)(s->buffer), &end, 10); + + if (end == (char *)(s->buffer) || *end != '\0') { + WARN(ZS_BAD_TIMESTAMP); + p--; {goto st319;} + } + + if (s->number64 <= UINT32_MAX) { + *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } else { + WARN(ZS_BAD_TIMESTAMP_LENGTH); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; + } + goto st1305; +tr3639: + { + s->buffer[s->buffer_length] = 0; + + if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). + uint32_t timestamp; + int ret = date_to_timestamp(s->buffer, ×tamp); + + if (ret == ZS_OK) { + *((uint32_t *)rdata_tail) = htonl(timestamp); + rdata_tail += 4; + } else { + WARN(ret); + p--; {goto st319;} + } + } else if (s->buffer_length <= 10) { // Timestamp format. + char *end; + + s->number64 = strtoull((char *)(s->buffer), &end, 10); + + if (end == (char *)(s->buffer) || *end != '\0') { + WARN(ZS_BAD_TIMESTAMP); + p--; {goto st319;} + } + + if (s->number64 <= UINT32_MAX) { + *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } else { + WARN(ZS_BAD_TIMESTAMP_LENGTH); + p--; {goto st319;} + } + } + { + s->line_counter++; + } + goto st1305; +st1305: if ( ++p == pe ) - goto _test_eof1232; -case 1232: + goto _test_eof1305; +case 1305: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92515,56 +90592,43 @@ case 1232: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3694; - case 32: goto tr3694; - case 40: goto tr3695; - case 41: goto tr3696; - case 2058: goto tr3697; - case 2107: goto tr3698; - } - goto tr3373; -st1233: - if ( ++p == pe ) - goto _test_eof1233; -case 1233: - switch( (*p) ) { - case 73: goto st1234; - case 88: goto st1238; - case 105: goto st1234; - case 120: goto st1238; + case 9: goto st1305; + case 32: goto st1305; + case 40: goto tr3642; + case 41: goto tr3643; + case 2058: goto tr3645; + case 2107: goto tr3646; } - goto tr3373; -st1234: - if ( ++p == pe ) - goto _test_eof1234; -case 1234: - switch( (*p) ) { - case 78: goto st1235; - case 110: goto st1235; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3644; + goto tr3628; +tr3644: + { + s->buffer_length = 0; } - goto tr3373; -st1235: - if ( ++p == pe ) - goto _test_eof1235; -case 1235: - switch( (*p) ) { - case 70: goto st1236; - case 102: goto st1236; + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1236: - if ( ++p == pe ) - goto _test_eof1236; -case 1236: - switch( (*p) ) { - case 79: goto st1237; - case 111: goto st1237; + goto st1306; +tr3650: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1237: + goto st1306; +st1306: if ( ++p == pe ) - goto _test_eof1237; -case 1237: + goto _test_eof1306; +case 1306: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92578,204 +90642,230 @@ case 1237: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3704; - case 32: goto tr3704; - case 40: goto tr3705; - case 41: goto tr3706; - case 2058: goto tr3707; - case 2107: goto tr3708; + case 9: goto tr3647; + case 32: goto tr3647; + case 40: goto tr3648; + case 41: goto tr3649; + case 2058: goto tr3651; + case 2107: goto tr3652; } - goto tr3373; -st1238: - if ( ++p == pe ) - goto _test_eof1238; -case 1238: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3650; + goto tr3628; +tr3654: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr3709; - case 32: goto tr3709; - case 40: goto tr3710; - case 41: goto tr3711; - case 2058: goto tr3712; - case 2107: goto tr3713; + s->multiline = true; } - goto tr3373; -st1239: - if ( ++p == pe ) - goto _test_eof1239; -case 1239: - switch( (*p) ) { - case 65: goto st1240; - case 73: goto st1244; - case 83: goto st1246; - case 97: goto st1240; - case 105: goto st1244; - case 115: goto st1246; + goto st1307; +tr3655: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto tr3373; -st1240: - if ( ++p == pe ) - goto _test_eof1240; -case 1240: - switch( (*p) ) { - case 80: goto st1241; - case 112: goto st1241; + goto st1307; +tr3657: + { + s->line_counter++; } - goto tr3373; -st1241: - if ( ++p == pe ) - goto _test_eof1241; -case 1241: - switch( (*p) ) { - case 84: goto st1242; - case 116: goto st1242; + goto st1307; +tr3688: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1307; goto _out;} + } + } } - goto tr3373; -st1242: - if ( ++p == pe ) - goto _test_eof1242; -case 1242: - switch( (*p) ) { - case 82: goto st1243; - case 114: goto st1243; + { + s->line_counter++; } - goto tr3373; -st1243: - if ( ++p == pe ) - goto _test_eof1243; -case 1243: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1307; +tr3647: + { + s->buffer[s->buffer_length] = 0; + + if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). + uint32_t timestamp; + int ret = date_to_timestamp(s->buffer, ×tamp); + + if (ret == ZS_OK) { + *((uint32_t *)rdata_tail) = htonl(timestamp); + rdata_tail += 4; + } else { + WARN(ret); + p--; {goto st319;} + } + } else if (s->buffer_length <= 10) { // Timestamp format. + char *end; + + s->number64 = strtoull((char *)(s->buffer), &end, 10); + + if (end == (char *)(s->buffer) || *end != '\0') { + WARN(ZS_BAD_TIMESTAMP); + p--; {goto st319;} + } + + if (s->number64 <= UINT32_MAX) { + *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } else { + WARN(ZS_BAD_TIMESTAMP_LENGTH); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3720; - case 32: goto tr3720; - case 40: goto tr3721; - case 41: goto tr3722; - case 2058: goto tr3723; - case 2107: goto tr3724; - } - goto tr3373; -st1244: - if ( ++p == pe ) - goto _test_eof1244; -case 1244: - switch( (*p) ) { - case 68: goto st1245; - case 100: goto st1245; + goto st1307; +tr3648: + { + s->buffer[s->buffer_length] = 0; + + if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). + uint32_t timestamp; + int ret = date_to_timestamp(s->buffer, ×tamp); + + if (ret == ZS_OK) { + *((uint32_t *)rdata_tail) = htonl(timestamp); + rdata_tail += 4; + } else { + WARN(ret); + p--; {goto st319;} + } + } else if (s->buffer_length <= 10) { // Timestamp format. + char *end; + + s->number64 = strtoull((char *)(s->buffer), &end, 10); + + if (end == (char *)(s->buffer) || *end != '\0') { + WARN(ZS_BAD_TIMESTAMP); + p--; {goto st319;} + } + + if (s->number64 <= UINT32_MAX) { + *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } else { + WARN(ZS_BAD_TIMESTAMP_LENGTH); + p--; {goto st319;} + } } - goto tr3373; -st1245: - if ( ++p == pe ) - goto _test_eof1245; -case 1245: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->multiline = true; } - switch( _widec ) { - case 9: goto tr3726; - case 32: goto tr3726; - case 40: goto tr3727; - case 41: goto tr3728; - case 2058: goto tr3729; - case 2107: goto tr3730; - } - goto tr3373; -st1246: - if ( ++p == pe ) - goto _test_eof1246; -case 1246: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1307; +tr3649: + { + s->buffer[s->buffer_length] = 0; + + if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). + uint32_t timestamp; + int ret = date_to_timestamp(s->buffer, ×tamp); + + if (ret == ZS_OK) { + *((uint32_t *)rdata_tail) = htonl(timestamp); + rdata_tail += 4; + } else { + WARN(ret); + p--; {goto st319;} + } + } else if (s->buffer_length <= 10) { // Timestamp format. + char *end; + + s->number64 = strtoull((char *)(s->buffer), &end, 10); + + if (end == (char *)(s->buffer) || *end != '\0') { + WARN(ZS_BAD_TIMESTAMP); + p--; {goto st319;} + } + + if (s->number64 <= UINT32_MAX) { + *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } else { + WARN(ZS_BAD_TIMESTAMP_LENGTH); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3731; - case 32: goto tr3731; - case 40: goto tr3732; - case 41: goto tr3733; - case 69: goto st1247; - case 101: goto st1247; - case 2058: goto tr3735; - case 2107: goto tr3736; - } - goto tr3373; -st1247: - if ( ++p == pe ) - goto _test_eof1247; -case 1247: - switch( (*p) ) { - case 67: goto st1248; - case 99: goto st1248; + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto tr3373; -st1248: - if ( ++p == pe ) - goto _test_eof1248; -case 1248: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1307; +tr3651: + { + s->buffer[s->buffer_length] = 0; + + if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). + uint32_t timestamp; + int ret = date_to_timestamp(s->buffer, ×tamp); + + if (ret == ZS_OK) { + *((uint32_t *)rdata_tail) = htonl(timestamp); + rdata_tail += 4; + } else { + WARN(ret); + p--; {goto st319;} + } + } else if (s->buffer_length <= 10) { // Timestamp format. + char *end; + + s->number64 = strtoull((char *)(s->buffer), &end, 10); + + if (end == (char *)(s->buffer) || *end != '\0') { + WARN(ZS_BAD_TIMESTAMP); + p--; {goto st319;} + } + + if (s->number64 <= UINT32_MAX) { + *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } else { + WARN(ZS_BAD_TIMESTAMP_LENGTH); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3738; - case 32: goto tr3738; - case 40: goto tr3739; - case 41: goto tr3740; - case 51: goto st1249; - case 2058: goto tr3742; - case 2107: goto tr3743; - } - goto tr3373; -st1249: + { + s->line_counter++; + } + goto st1307; +st1307: if ( ++p == pe ) - goto _test_eof1249; -case 1249: + goto _test_eof1307; +case 1307: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92789,56 +90879,55 @@ case 1249: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3744; - case 32: goto tr3744; - case 40: goto tr3745; - case 41: goto tr3746; - case 80: goto st1250; - case 112: goto st1250; - case 2058: goto tr3748; - case 2107: goto tr3749; - } - goto tr3373; -st1250: - if ( ++p == pe ) - goto _test_eof1250; -case 1250: - switch( (*p) ) { - case 65: goto st1251; - case 97: goto st1251; + case 9: goto st1307; + case 32: goto st1307; + case 40: goto tr3654; + case 41: goto tr3655; + case 2058: goto tr3657; + case 2107: goto tr3658; } - goto tr3373; -st1251: - if ( ++p == pe ) - goto _test_eof1251; -case 1251: - switch( (*p) ) { - case 82: goto st1252; - case 114: goto st1252; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3656; + goto tr2653; +tr3656: + { + s->number64 = 0; } - goto tr3373; -st1252: - if ( ++p == pe ) - goto _test_eof1252; -case 1252: - switch( (*p) ) { - case 65: goto st1253; - case 97: goto st1253; + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1253: - if ( ++p == pe ) - goto _test_eof1253; -case 1253: - switch( (*p) ) { - case 77: goto st1254; - case 109: goto st1254; + goto st1308; +tr3662: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1254: + goto st1308; +st1308: if ( ++p == pe ) - goto _test_eof1254; -case 1254: + goto _test_eof1308; +case 1308: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92852,99 +90941,126 @@ case 1254: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3754; - case 32: goto tr3754; - case 40: goto tr3755; - case 41: goto tr3756; - case 2058: goto tr3757; - case 2107: goto tr3758; - } - goto tr3373; -st1255: - if ( ++p == pe ) - goto _test_eof1255; -case 1255: - switch( (*p) ) { - case 80: goto st1256; - case 112: goto st1256; + case 9: goto tr3659; + case 32: goto tr3659; + case 40: goto tr3660; + case 41: goto tr3661; + case 2058: goto tr3663; + case 2107: goto tr3664; } - goto tr3373; -st1256: - if ( ++p == pe ) - goto _test_eof1256; -case 1256: - switch( (*p) ) { - case 69: goto st1257; - case 101: goto st1257; + if ( 48 <= _widec && _widec <= 57 ) + goto tr3662; + goto tr2653; +tr3666: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto tr3373; -st1257: - if ( ++p == pe ) - goto _test_eof1257; -case 1257: - switch( (*p) ) { - case 78: goto st1258; - case 110: goto st1258; + goto st1309; +tr3667: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto tr3373; -st1258: - if ( ++p == pe ) - goto _test_eof1258; -case 1258: - switch( (*p) ) { - case 80: goto st1259; - case 112: goto st1259; + goto st1309; +tr3669: + { + s->line_counter++; } - goto tr3373; -st1259: - if ( ++p == pe ) - goto _test_eof1259; -case 1259: - switch( (*p) ) { - case 71: goto st1260; - case 103: goto st1260; + goto st1309; +tr3686: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1309; goto _out;} + } + } } - goto tr3373; -st1260: - if ( ++p == pe ) - goto _test_eof1260; -case 1260: - switch( (*p) ) { - case 80: goto st1261; - case 112: goto st1261; + { + s->line_counter++; } - goto tr3373; -st1261: - if ( ++p == pe ) - goto _test_eof1261; -case 1261: - switch( (*p) ) { - case 75: goto st1262; - case 107: goto st1262; + goto st1309; +tr3659: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + goto st1309; +tr3660: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; + } + goto st1309; +tr3661: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto tr3373; -st1262: - if ( ++p == pe ) - goto _test_eof1262; -case 1262: - switch( (*p) ) { - case 69: goto st1263; - case 101: goto st1263; + goto st1309; +tr3663: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1263: - if ( ++p == pe ) - goto _test_eof1263; -case 1263: - switch( (*p) ) { - case 89: goto st1264; - case 121: goto st1264; + { + s->line_counter++; } - goto tr3373; -st1264: + goto st1309; +st1309: if ( ++p == pe ) - goto _test_eof1264; -case 1264: + goto _test_eof1309; +case 1309: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92958,36 +91074,35 @@ case 1264: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3768; - case 32: goto tr3768; - case 40: goto tr3769; - case 41: goto tr3770; - case 2058: goto tr3771; - case 2107: goto tr3772; - } - goto tr3373; -st1265: - if ( ++p == pe ) - goto _test_eof1265; -case 1265: - switch( (*p) ) { - case 84: goto st1266; - case 116: goto st1266; + case 9: goto st1309; + case 32: goto st1309; + case 40: goto tr3666; + case 41: goto tr3667; + case 42: goto tr3668; + case 92: goto tr3668; + case 95: goto tr3668; + case 2058: goto tr3669; + case 2107: goto tr3670; } - goto tr3373; -st1266: - if ( ++p == pe ) - goto _test_eof1266; -case 1266: - switch( (*p) ) { - case 82: goto st1267; - case 114: goto st1267; + if ( _widec < 64 ) { + if ( 45 <= _widec && _widec <= 57 ) + goto tr3668; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr3668; + } else + goto tr3668; + goto tr77; +tr3668: + { + s->dname = rdata_tail; } - goto tr3373; -st1267: + { p--; {stack[top++] = 1310;goto st321;} } + goto st1310; +st1310: if ( ++p == pe ) - goto _test_eof1267; -case 1267: + goto _test_eof1310; +case 1310: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93001,188 +91116,96 @@ case 1267: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3775; - case 32: goto tr3775; - case 40: goto tr3776; - case 41: goto tr3777; - case 2058: goto tr3778; - case 2107: goto tr3779; + case 9: goto tr3671; + case 32: goto tr3671; + case 40: goto tr3672; + case 41: goto tr3673; + case 2058: goto tr3674; + case 2107: goto tr3675; } - goto tr3373; -st1268: - if ( ++p == pe ) - goto _test_eof1268; -case 1268: - switch( (*p) ) { - case 80: goto st1269; - case 82: goto st1270; - case 84: goto st1274; - case 112: goto st1269; - case 114: goto st1270; - case 116: goto st1274; + goto tr77; +tr3677: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = true; } - goto tr3373; -st1269: - if ( ++p == pe ) - goto _test_eof1269; -case 1269: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1311; +tr3678: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->multiline = false; } - switch( _widec ) { - case 9: goto tr3783; - case 32: goto tr3783; - case 40: goto tr3784; - case 41: goto tr3785; - case 2058: goto tr3786; - case 2107: goto tr3787; - } - goto tr3373; -st1270: - if ( ++p == pe ) - goto _test_eof1270; -case 1270: - switch( (*p) ) { - case 83: goto st1271; - case 115: goto st1271; + goto st1311; +tr3680: + { + s->line_counter++; } - goto tr3373; -st1271: - if ( ++p == pe ) - goto _test_eof1271; -case 1271: - switch( (*p) ) { - case 73: goto st1272; - case 105: goto st1272; + goto st1311; +tr3684: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1311; goto _out;} + } + } } - goto tr3373; -st1272: - if ( ++p == pe ) - goto _test_eof1272; -case 1272: - switch( (*p) ) { - case 71: goto st1273; - case 103: goto st1273; + { + s->line_counter++; } - goto tr3373; -st1273: - if ( ++p == pe ) - goto _test_eof1273; -case 1273: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1311; +tr3671: + { + rdata_tail += s->dname_tmp_length; } - switch( _widec ) { - case 9: goto tr3791; - case 32: goto tr3791; - case 40: goto tr3792; - case 41: goto tr3793; - case 2058: goto tr3794; - case 2107: goto tr3795; - } - goto tr3373; -st1274: - if ( ++p == pe ) - goto _test_eof1274; -case 1274: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1311; +tr3672: + { + rdata_tail += s->dname_tmp_length; + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + s->multiline = true; } - switch( _widec ) { - case 9: goto tr3796; - case 32: goto tr3796; - case 40: goto tr3797; - case 41: goto tr3798; - case 2058: goto tr3799; - case 2107: goto tr3800; - } - goto tr3373; -st1275: - if ( ++p == pe ) - goto _test_eof1275; -case 1275: - switch( (*p) ) { - case 77: goto st1276; - case 79: goto st1281; - case 80: goto st1283; - case 82: goto st1285; - case 83: goto st1287; - case 86: goto st1291; - case 109: goto st1276; - case 111: goto st1281; - case 112: goto st1283; - case 114: goto st1285; - case 115: goto st1287; - case 118: goto st1291; - } - goto tr3373; -st1276: - if ( ++p == pe ) - goto _test_eof1276; -case 1276: - switch( (*p) ) { - case 73: goto st1277; - case 105: goto st1277; + goto st1311; +tr3673: + { + rdata_tail += s->dname_tmp_length; } - goto tr3373; -st1277: - if ( ++p == pe ) - goto _test_eof1277; -case 1277: - switch( (*p) ) { - case 77: goto st1278; - case 109: goto st1278; + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st319;} + } + s->multiline = false; } - goto tr3373; -st1278: - if ( ++p == pe ) - goto _test_eof1278; -case 1278: - switch( (*p) ) { - case 69: goto st1279; - case 101: goto st1279; + goto st1311; +tr3674: + { + rdata_tail += s->dname_tmp_length; } - goto tr3373; -st1279: - if ( ++p == pe ) - goto _test_eof1279; -case 1279: - switch( (*p) ) { - case 65: goto st1280; - case 97: goto st1280; + { + s->line_counter++; } - goto tr3373; -st1280: + goto st1311; +st1311: if ( ++p == pe ) - goto _test_eof1280; -case 1280: + goto _test_eof1311; +case 1311: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93196,647 +91219,579 @@ case 1280: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3811; - case 32: goto tr3811; - case 40: goto tr3812; - case 41: goto tr3813; - case 2058: goto tr3814; - case 2107: goto tr3815; - } - goto tr3373; -st1281: - if ( ++p == pe ) - goto _test_eof1281; -case 1281: - switch( (*p) ) { - case 65: goto st1282; - case 97: goto st1282; + case 9: goto st1311; + case 32: goto st1311; + case 40: goto tr3677; + case 41: goto tr3678; + case 43: goto tr3679; + case 2058: goto tr3680; + case 2107: goto tr3681; } - goto tr3373; -st1282: + if ( _widec < 65 ) { + if ( 47 <= _widec && _widec <= 57 ) + goto tr3679; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr3679; + } else + goto tr3679; + goto tr77; +tr3679: + { p--; {stack[top++] = 1312;goto st381;} } + goto st1312; +st1312: if ( ++p == pe ) - goto _test_eof1282; -case 1282: + goto _test_eof1312; +case 1312: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2176 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + !s->multiline ) _widec += 256; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2176 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + !s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3817; - case 32: goto tr3817; - case 40: goto tr3818; - case 41: goto tr3819; - case 2058: goto tr3820; - case 2107: goto tr3821; - } - goto tr3373; -st1283: - if ( ++p == pe ) - goto _test_eof1283; -case 1283: - switch( (*p) ) { - case 70: goto st1284; - case 102: goto st1284; + case 2570: goto tr3682; + case 2619: goto tr3682; } - goto tr3373; -st1284: + goto tr77; +tr3682: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1553; +st1553: if ( ++p == pe ) - goto _test_eof1284; -case 1284: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto _test_eof1553; +case 1553: + goto st0; +tr3681: + { + s->buffer_length = 0; + } + goto st1313; +tr3683: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3823; - case 32: goto tr3823; - case 40: goto tr3824; - case 41: goto tr3825; - case 2058: goto tr3826; - case 2107: goto tr3827; - } - goto tr3373; -st1285: - if ( ++p == pe ) - goto _test_eof1285; -case 1285: - switch( (*p) ) { - case 86: goto st1286; - case 118: goto st1286; + goto st1313; +tr3675: + { + rdata_tail += s->dname_tmp_length; } - goto tr3373; -st1286: + { + s->buffer_length = 0; + } + goto st1313; +st1313: if ( ++p == pe ) - goto _test_eof1286; -case 1286: + goto _test_eof1313; +case 1313: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3829; - case 32: goto tr3829; - case 40: goto tr3830; - case 41: goto tr3831; - case 2058: goto tr3832; - case 2107: goto tr3833; - } - goto tr3373; -st1287: - if ( ++p == pe ) - goto _test_eof1287; -case 1287: - switch( (*p) ) { - case 72: goto st1288; - case 104: goto st1288; + if ( _widec == 2058 ) + goto tr3684; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3683; + goto tr77; +tr3670: + { + s->buffer_length = 0; } - goto tr3373; -st1288: - if ( ++p == pe ) - goto _test_eof1288; -case 1288: - switch( (*p) ) { - case 70: goto st1289; - case 102: goto st1289; + goto st1314; +tr3685: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto tr3373; -st1289: - if ( ++p == pe ) - goto _test_eof1289; -case 1289: - switch( (*p) ) { - case 80: goto st1290; - case 112: goto st1290; + goto st1314; +tr3664: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1290: + { + s->buffer_length = 0; + } + goto st1314; +st1314: if ( ++p == pe ) - goto _test_eof1290; -case 1290: + goto _test_eof1314; +case 1314: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3837; - case 32: goto tr3837; - case 40: goto tr3838; - case 41: goto tr3839; - case 2058: goto tr3840; - case 2107: goto tr3841; + if ( _widec == 2058 ) + goto tr3686; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3685; + goto tr77; +tr3658: + { + s->buffer_length = 0; } - goto tr3373; -st1291: - if ( ++p == pe ) - goto _test_eof1291; -case 1291: - switch( (*p) ) { - case 67: goto st1292; - case 99: goto st1292; + goto st1315; +tr3687: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto tr3373; -st1292: - if ( ++p == pe ) - goto _test_eof1292; -case 1292: - switch( (*p) ) { - case 66: goto st1293; - case 98: goto st1293; + goto st1315; +tr3652: + { + s->buffer[s->buffer_length] = 0; + + if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). + uint32_t timestamp; + int ret = date_to_timestamp(s->buffer, ×tamp); + + if (ret == ZS_OK) { + *((uint32_t *)rdata_tail) = htonl(timestamp); + rdata_tail += 4; + } else { + WARN(ret); + p--; {goto st319;} + } + } else if (s->buffer_length <= 10) { // Timestamp format. + char *end; + + s->number64 = strtoull((char *)(s->buffer), &end, 10); + + if (end == (char *)(s->buffer) || *end != '\0') { + WARN(ZS_BAD_TIMESTAMP); + p--; {goto st319;} + } + + if (s->number64 <= UINT32_MAX) { + *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } else { + WARN(ZS_BAD_TIMESTAMP_LENGTH); + p--; {goto st319;} + } } - goto tr3373; -st1293: + { + s->buffer_length = 0; + } + goto st1315; +st1315: if ( ++p == pe ) - goto _test_eof1293; -case 1293: + goto _test_eof1315; +case 1315: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3844; - case 32: goto tr3844; - case 40: goto tr3845; - case 41: goto tr3846; - case 2058: goto tr3847; - case 2107: goto tr3848; - } - goto tr3373; -st1294: - if ( ++p == pe ) - goto _test_eof1294; -case 1294: - switch( (*p) ) { - case 76: goto st1295; - case 88: goto st1298; - case 89: goto st1300; - case 108: goto st1295; - case 120: goto st1298; - case 121: goto st1300; - } - goto tr3373; -st1295: - if ( ++p == pe ) - goto _test_eof1295; -case 1295: - switch( (*p) ) { - case 83: goto st1296; - case 115: goto st1296; + if ( _widec == 2058 ) + goto tr3688; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3687; + goto tr77; +tr3646: + { + s->buffer_length = 0; } - goto tr3373; -st1296: - if ( ++p == pe ) - goto _test_eof1296; -case 1296: - switch( (*p) ) { - case 65: goto st1297; - case 97: goto st1297; + goto st1316; +tr3689: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto tr3373; -st1297: - if ( ++p == pe ) - goto _test_eof1297; -case 1297: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto st1316; +tr3640: + { + s->buffer[s->buffer_length] = 0; + + if (s->buffer_length == 14) { // Date; 14 = len("YYYYMMDDHHmmSS"). + uint32_t timestamp; + int ret = date_to_timestamp(s->buffer, ×tamp); + + if (ret == ZS_OK) { + *((uint32_t *)rdata_tail) = htonl(timestamp); + rdata_tail += 4; + } else { + WARN(ret); + p--; {goto st319;} + } + } else if (s->buffer_length <= 10) { // Timestamp format. + char *end; + + s->number64 = strtoull((char *)(s->buffer), &end, 10); + + if (end == (char *)(s->buffer) || *end != '\0') { + WARN(ZS_BAD_TIMESTAMP); + p--; {goto st319;} + } + + if (s->number64 <= UINT32_MAX) { + *((uint32_t *)rdata_tail) = htonl((uint32_t)s->number64); + rdata_tail += 4; + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st319;} + } + } else { + WARN(ZS_BAD_TIMESTAMP_LENGTH); + p--; {goto st319;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3854; - case 32: goto tr3854; - case 40: goto tr3855; - case 41: goto tr3856; - case 2058: goto tr3857; - case 2107: goto tr3858; - } - goto tr3373; -st1298: - if ( ++p == pe ) - goto _test_eof1298; -case 1298: - switch( (*p) ) { - case 84: goto st1299; - case 116: goto st1299; + { + s->buffer_length = 0; } - goto tr3373; -st1299: + goto st1316; +st1316: if ( ++p == pe ) - goto _test_eof1299; -case 1299: + goto _test_eof1316; +case 1316: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3860; - case 32: goto tr3860; - case 40: goto tr3861; - case 41: goto tr3862; - case 2058: goto tr3863; - case 2107: goto tr3864; - } - goto tr3373; -st1300: - if ( ++p == pe ) - goto _test_eof1300; -case 1300: - switch( (*p) ) { - case 80: goto st1301; - case 112: goto st1301; - } - goto tr3373; -st1301: - if ( ++p == pe ) - goto _test_eof1301; -case 1301: - switch( (*p) ) { - case 69: goto st1302; - case 101: goto st1302; - } - goto tr3373; -st1302: - if ( ++p == pe ) - goto _test_eof1302; -case 1302: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3868; - goto tr3867; -tr3868: + if ( _widec == 2058 ) + goto tr3690; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3689; + goto tr77; +tr3634: { - s->number64 = 0; + s->buffer_length = 0; } + goto st1317; +tr3691: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } - goto st1303; -tr3872: + goto st1317; +tr3627: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->number64 <= UINT32_MAX) { + uint32_t num32 = htonl((uint32_t)s->number64); + memcpy(rdata_tail, &num32, 4); + rdata_tail += 4; } else { - WARN(ZS_NUMBER64_OVERFLOW); + WARN(ZS_NUMBER32_OVERFLOW); p--; {goto st319;} } } - goto st1303; -st1303: + { + s->buffer_length = 0; + } + goto st1317; +st1317: if ( ++p == pe ) - goto _test_eof1303; -case 1303: + goto _test_eof1317; +case 1317: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3869; - case 32: goto tr3869; - case 40: goto tr3870; - case 41: goto tr3871; - case 2058: goto tr3873; - case 2107: goto tr3874; + if ( _widec == 2058 ) + goto tr3692; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3691; + goto tr77; +tr3621: + { + s->buffer_length = 0; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr3872; - goto tr3867; -st1304: - if ( ++p == pe ) - goto _test_eof1304; -case 1304: - switch( (*p) ) { - case 82: goto st1305; - case 114: goto st1305; + goto st1318; +tr3693: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto tr3373; -st1305: - if ( ++p == pe ) - goto _test_eof1305; -case 1305: - switch( (*p) ) { - case 73: goto st1306; - case 105: goto st1306; + goto st1318; +tr3615: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } } - goto tr3373; -st1306: + { + s->buffer_length = 0; + } + goto st1318; +st1318: if ( ++p == pe ) - goto _test_eof1306; -case 1306: + goto _test_eof1318; +case 1318: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3877; - case 32: goto tr3877; - case 40: goto tr3878; - case 41: goto tr3879; - case 2058: goto tr3880; - case 2107: goto tr3881; - } - goto tr3373; -st1307: - if ( ++p == pe ) - goto _test_eof1307; -case 1307: - switch( (*p) ) { - case 65: goto st1308; - case 97: goto st1308; - } - goto tr3373; -st1308: - if ( ++p == pe ) - goto _test_eof1308; -case 1308: - switch( (*p) ) { - case 76: goto st1309; - case 108: goto st1309; - } - goto tr3373; -st1309: - if ( ++p == pe ) - goto _test_eof1309; -case 1309: - switch( (*p) ) { - case 76: goto st1310; - case 108: goto st1310; - } - goto tr3373; -st1310: - if ( ++p == pe ) - goto _test_eof1310; -case 1310: - switch( (*p) ) { - case 69: goto st1311; - case 101: goto st1311; + if ( _widec == 2058 ) + goto tr3694; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3693; + goto tr77; +tr3608: + { + s->buffer_length = 0; } - goto tr3373; -st1311: - if ( ++p == pe ) - goto _test_eof1311; -case 1311: - switch( (*p) ) { - case 84: goto st1312; - case 116: goto st1312; + goto st1319; +tr3695: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto tr3373; -st1312: + goto st1319; +st1319: if ( ++p == pe ) - goto _test_eof1312; -case 1312: + goto _test_eof1319; +case 1319: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3887; - case 32: goto tr3887; - case 40: goto tr3888; - case 41: goto tr3889; - case 2058: goto tr3890; - case 2107: goto tr3891; - } - goto tr3373; -st1313: - if ( ++p == pe ) - goto _test_eof1313; -case 1313: - switch( (*p) ) { - case 79: goto st1314; - case 111: goto st1314; - } - goto tr3373; -st1314: - if ( ++p == pe ) - goto _test_eof1314; -case 1314: - switch( (*p) ) { - case 78: goto st1315; - case 110: goto st1315; - } - goto tr3373; -st1315: - if ( ++p == pe ) - goto _test_eof1315; -case 1315: - switch( (*p) ) { - case 69: goto st1316; - case 101: goto st1316; - } - goto tr3373; -st1316: - if ( ++p == pe ) - goto _test_eof1316; -case 1316: - switch( (*p) ) { - case 77: goto st1317; - case 109: goto st1317; + if ( _widec == 2058 ) + goto tr3696; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3695; + goto tr77; +tr3602: + { + s->buffer_length = 0; } - goto tr3373; -st1317: - if ( ++p == pe ) - goto _test_eof1317; -case 1317: - switch( (*p) ) { - case 68: goto st1318; - case 100: goto st1318; + goto st1320; +tr3697: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } - goto tr3373; -st1318: + goto st1320; +st1320: if ( ++p == pe ) - goto _test_eof1318; -case 1318: + goto _test_eof1320; +case 1320: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - switch( _widec ) { - case 9: goto tr3897; - case 32: goto tr3897; - case 40: goto tr3898; - case 41: goto tr3899; - case 2058: goto tr3900; - case 2107: goto tr3901; - } - goto tr3373; -st1319: + if ( _widec == 2058 ) + goto tr3698; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3697; + goto tr77; +st1321: if ( ++p == pe ) - goto _test_eof1319; -case 1319: + goto _test_eof1321; +case 1321: switch( (*p) ) { - case 42: goto tr3902; - case 92: goto tr3902; - case 95: goto tr3902; + case 42: goto tr3699; + case 92: goto tr3699; + case 95: goto tr3699; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr3902; + goto tr3699; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3902; + goto tr3699; } else - goto tr3902; + goto tr3699; goto tr77; -tr3902: +tr3699: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1320;goto st321;} } - goto st1320; -st1320: + { p--; {stack[top++] = 1322;goto st321;} } + goto st1322; +st1322: if ( ++p == pe ) - goto _test_eof1320; -case 1320: + goto _test_eof1322; +case 1322: switch( (*p) ) { - case 32: goto tr3903; - case 59: goto tr3903; + case 32: goto tr3700; + case 59: goto tr3700; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3903; + goto tr3700; } else if ( (*p) >= 9 ) - goto tr3903; + goto tr3700; goto tr77; -tr3903: +tr3700: { rdata_tail += s->dname_tmp_length; } - { p--; {stack[top++] = 1321;goto st388;} } - goto st1321; -st1321: + { p--; {stack[top++] = 1323;goto st559;} } + goto st1323; +st1323: if ( ++p == pe ) - goto _test_eof1321; -case 1321: + goto _test_eof1323; +case 1323: switch( (*p) ) { - case 32: goto tr3904; - case 59: goto tr3904; + case 32: goto tr3701; + case 59: goto tr3701; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3904; + goto tr3701; } else if ( (*p) >= 9 ) - goto tr3904; + goto tr3701; goto tr77; -tr3904: +tr3701: { p--; {cs = stack[--top];goto _again;} } - goto st1562; -st1562: + goto st1554; +st1554: if ( ++p == pe ) - goto _test_eof1562; -case 1562: + goto _test_eof1554; +case 1554: goto st0; -st1322: +st1324: if ( ++p == pe ) - goto _test_eof1322; -case 1322: + goto _test_eof1324; +case 1324: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3905; - goto tr2429; -tr3905: + goto tr3702; + goto tr2653; +tr3702: { s->number64 = 0; } @@ -93854,8 +91809,8 @@ tr3905: p--; {goto st319;} } } - goto st1323; -tr3909: + goto st1325; +tr3706: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -93870,11 +91825,11 @@ tr3909: p--; {goto st319;} } } - goto st1323; -st1323: + goto st1325; +st1325: if ( ++p == pe ) - goto _test_eof1323; -case 1323: + goto _test_eof1325; +case 1325: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93888,17 +91843,17 @@ case 1323: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3906; - case 32: goto tr3906; - case 40: goto tr3907; - case 41: goto tr3908; - case 2058: goto tr3910; - case 2107: goto tr3911; + case 9: goto tr3703; + case 32: goto tr3703; + case 40: goto tr3704; + case 41: goto tr3705; + case 2058: goto tr3707; + case 2107: goto tr3708; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3909; - goto tr2429; -tr3913: + goto tr3706; + goto tr2653; +tr3710: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -93906,8 +91861,8 @@ tr3913: } s->multiline = true; } - goto st1324; -tr3914: + goto st1326; +tr3711: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -93915,13 +91870,13 @@ tr3914: } s->multiline = false; } - goto st1324; -tr3916: + goto st1326; +tr3713: { s->line_counter++; } - goto st1324; -tr3942: + goto st1326; +tr3739: { s->buffer[s->buffer_length++] = 0; @@ -93931,15 +91886,15 @@ tr3942: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1324; goto _out;} + {p++; cs = 1326; goto _out;} } } } { s->line_counter++; } - goto st1324; -tr3906: + goto st1326; +tr3703: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93950,8 +91905,8 @@ tr3906: p--; {goto st319;} } } - goto st1324; -tr3907: + goto st1326; +tr3704: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93969,8 +91924,8 @@ tr3907: } s->multiline = true; } - goto st1324; -tr3908: + goto st1326; +tr3705: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93988,8 +91943,8 @@ tr3908: } s->multiline = false; } - goto st1324; -tr3910: + goto st1326; +tr3707: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94003,11 +91958,11 @@ tr3910: { s->line_counter++; } - goto st1324; -st1324: + goto st1326; +st1326: if ( ++p == pe ) - goto _test_eof1324; -case 1324: + goto _test_eof1326; +case 1326: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94021,17 +91976,17 @@ case 1324: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1324; - case 32: goto st1324; - case 40: goto tr3913; - case 41: goto tr3914; - case 2058: goto tr3916; - case 2107: goto tr3917; + case 9: goto st1326; + case 32: goto st1326; + case 40: goto tr3710; + case 41: goto tr3711; + case 2058: goto tr3713; + case 2107: goto tr3714; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3915; - goto tr2429; -tr3915: + goto tr3712; + goto tr2653; +tr3712: { s->number64 = 0; } @@ -94049,8 +92004,8 @@ tr3915: p--; {goto st319;} } } - goto st1325; -tr3921: + goto st1327; +tr3718: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94065,11 +92020,11 @@ tr3921: p--; {goto st319;} } } - goto st1325; -st1325: + goto st1327; +st1327: if ( ++p == pe ) - goto _test_eof1325; -case 1325: + goto _test_eof1327; +case 1327: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94083,17 +92038,17 @@ case 1325: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3918; - case 32: goto tr3918; - case 40: goto tr3919; - case 41: goto tr3920; - case 2058: goto tr3922; - case 2107: goto tr3923; + case 9: goto tr3715; + case 32: goto tr3715; + case 40: goto tr3716; + case 41: goto tr3717; + case 2058: goto tr3719; + case 2107: goto tr3720; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3921; - goto tr2429; -tr3925: + goto tr3718; + goto tr2653; +tr3722: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -94101,8 +92056,8 @@ tr3925: } s->multiline = true; } - goto st1326; -tr3926: + goto st1328; +tr3723: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -94110,13 +92065,13 @@ tr3926: } s->multiline = false; } - goto st1326; -tr3928: + goto st1328; +tr3725: { s->line_counter++; } - goto st1326; -tr3940: + goto st1328; +tr3737: { s->buffer[s->buffer_length++] = 0; @@ -94126,15 +92081,15 @@ tr3940: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1326; goto _out;} + {p++; cs = 1328; goto _out;} } } } { s->line_counter++; } - goto st1326; -tr3918: + goto st1328; +tr3715: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94144,8 +92099,8 @@ tr3918: p--; {goto st319;} } } - goto st1326; -tr3919: + goto st1328; +tr3716: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94162,8 +92117,8 @@ tr3919: } s->multiline = true; } - goto st1326; -tr3920: + goto st1328; +tr3717: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94180,8 +92135,8 @@ tr3920: } s->multiline = false; } - goto st1326; -tr3922: + goto st1328; +tr3719: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94194,11 +92149,11 @@ tr3922: { s->line_counter++; } - goto st1326; -st1326: + goto st1328; +st1328: if ( ++p == pe ) - goto _test_eof1326; -case 1326: + goto _test_eof1328; +case 1328: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94212,29 +92167,29 @@ case 1326: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1326; - case 32: goto st1326; - case 40: goto tr3925; - case 41: goto tr3926; - case 2058: goto tr3928; - case 2107: goto tr3929; + case 9: goto st1328; + case 32: goto st1328; + case 40: goto tr3722; + case 41: goto tr3723; + case 2058: goto tr3725; + case 2107: goto tr3726; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3927; + goto tr3724; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3927; + goto tr3724; } else - goto tr3927; + goto tr3724; goto tr77; -tr3927: - { p--; {stack[top++] = 1327;goto st747;} } - goto st1327; -st1327: +tr3724: + { p--; {stack[top++] = 1329;goto st918;} } + goto st1329; +st1329: if ( ++p == pe ) - goto _test_eof1327; -case 1327: + goto _test_eof1329; +case 1329: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94248,15 +92203,15 @@ case 1327: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1328; - case 32: goto st1328; - case 40: goto tr3931; - case 41: goto tr3932; - case 2058: goto tr3933; - case 2107: goto tr3934; + case 9: goto st1330; + case 32: goto st1330; + case 40: goto tr3728; + case 41: goto tr3729; + case 2058: goto tr3730; + case 2107: goto tr3731; } goto tr77; -tr3931: +tr3728: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -94264,8 +92219,8 @@ tr3931: } s->multiline = true; } - goto st1328; -tr3932: + goto st1330; +tr3729: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -94273,13 +92228,13 @@ tr3932: } s->multiline = false; } - goto st1328; -tr3933: + goto st1330; +tr3730: { s->line_counter++; } - goto st1328; -tr3938: + goto st1330; +tr3735: { s->buffer[s->buffer_length++] = 0; @@ -94289,18 +92244,18 @@ tr3938: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1328; goto _out;} + {p++; cs = 1330; goto _out;} } } } { s->line_counter++; } - goto st1328; -st1328: + goto st1330; +st1330: if ( ++p == pe ) - goto _test_eof1328; -case 1328: + goto _test_eof1330; +case 1330: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94314,30 +92269,30 @@ case 1328: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1328; - case 32: goto st1328; - case 40: goto tr3931; - case 41: goto tr3932; - case 43: goto tr3935; - case 2058: goto tr3933; - case 2107: goto tr3934; + case 9: goto st1330; + case 32: goto st1330; + case 40: goto tr3728; + case 41: goto tr3729; + case 43: goto tr3732; + case 2058: goto tr3730; + case 2107: goto tr3731; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3935; + goto tr3732; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3935; + goto tr3732; } else - goto tr3935; + goto tr3732; goto tr77; -tr3935: - { p--; {stack[top++] = 1329;goto st381;} } - goto st1329; -st1329: +tr3732: + { p--; {stack[top++] = 1331;goto st381;} } + goto st1331; +st1331: if ( ++p == pe ) - goto _test_eof1329; -case 1329: + goto _test_eof1331; +case 1331: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94351,36 +92306,36 @@ case 1329: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3936; - case 2619: goto tr3936; + case 2570: goto tr3733; + case 2619: goto tr3733; } goto tr77; -tr3936: +tr3733: { p--; {cs = stack[--top];goto _again;} } - goto st1563; -st1563: + goto st1555; +st1555: if ( ++p == pe ) - goto _test_eof1563; -case 1563: + goto _test_eof1555; +case 1555: goto st0; -tr3934: +tr3731: { s->buffer_length = 0; } - goto st1330; -tr3937: + goto st1332; +tr3734: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1330; -st1330: + goto st1332; +st1332: if ( ++p == pe ) - goto _test_eof1330; -case 1330: + goto _test_eof1332; +case 1332: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94400,23 +92355,23 @@ case 1330: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3938; + goto tr3735; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3937; + goto tr3734; goto tr77; -tr3929: +tr3726: { s->buffer_length = 0; } - goto st1331; -tr3939: + goto st1333; +tr3736: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1331; -tr3923: + goto st1333; +tr3720: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94429,11 +92384,11 @@ tr3923: { s->buffer_length = 0; } - goto st1331; -st1331: + goto st1333; +st1333: if ( ++p == pe ) - goto _test_eof1331; -case 1331: + goto _test_eof1333; +case 1333: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94453,23 +92408,23 @@ case 1331: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3940; + goto tr3737; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3939; + goto tr3736; goto tr77; -tr3917: +tr3714: { s->buffer_length = 0; } - goto st1332; -tr3941: + goto st1334; +tr3738: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1332; -tr3911: + goto st1334; +tr3708: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94483,11 +92438,11 @@ tr3911: { s->buffer_length = 0; } - goto st1332; -st1332: + goto st1334; +st1334: if ( ++p == pe ) - goto _test_eof1332; -case 1332: + goto _test_eof1334; +case 1334: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94507,32 +92462,32 @@ case 1332: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3942; + goto tr3739; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3941; + goto tr3738; goto tr77; -st1333: +st1335: if ( ++p == pe ) - goto _test_eof1333; -case 1333: + goto _test_eof1335; +case 1335: if ( (*p) == 43 ) - goto tr3943; + goto tr3740; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr3943; + goto tr3740; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3943; + goto tr3740; } else - goto tr3943; + goto tr3740; goto tr77; -tr3943: - { p--; {stack[top++] = 1334;goto st381;} } - goto st1334; -st1334: +tr3740: + { p--; {stack[top++] = 1336;goto st381;} } + goto st1336; +st1336: if ( ++p == pe ) - goto _test_eof1334; -case 1334: + goto _test_eof1336; +case 1336: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94546,28 +92501,28 @@ case 1334: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3944; - case 2619: goto tr3944; + case 2570: goto tr3741; + case 2619: goto tr3741; } goto tr77; -tr3944: +tr3741: { p--; {cs = stack[--top];goto _again;} } - goto st1564; -st1564: + goto st1556; +st1556: if ( ++p == pe ) - goto _test_eof1564; -case 1564: + goto _test_eof1556; +case 1556: goto st0; -st1335: +st1337: if ( ++p == pe ) - goto _test_eof1335; -case 1335: + goto _test_eof1337; +case 1337: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3945; - goto tr2429; -tr3945: + goto tr3742; + goto tr2653; +tr3742: { s->number64 = 0; } @@ -94585,8 +92540,8 @@ tr3945: p--; {goto st319;} } } - goto st1336; -tr3949: + goto st1338; +tr3746: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94601,11 +92556,11 @@ tr3949: p--; {goto st319;} } } - goto st1336; -st1336: + goto st1338; +st1338: if ( ++p == pe ) - goto _test_eof1336; -case 1336: + goto _test_eof1338; +case 1338: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94619,17 +92574,17 @@ case 1336: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3946; - case 32: goto tr3946; - case 40: goto tr3947; - case 41: goto tr3948; - case 2058: goto tr3950; - case 2107: goto tr3951; + case 9: goto tr3743; + case 32: goto tr3743; + case 40: goto tr3744; + case 41: goto tr3745; + case 2058: goto tr3747; + case 2107: goto tr3748; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3949; - goto tr2429; -tr3953: + goto tr3746; + goto tr2653; +tr3750: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -94637,8 +92592,8 @@ tr3953: } s->multiline = true; } - goto st1337; -tr3954: + goto st1339; +tr3751: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -94646,13 +92601,13 @@ tr3954: } s->multiline = false; } - goto st1337; -tr3956: + goto st1339; +tr3753: { s->line_counter++; } - goto st1337; -tr4020: + goto st1339; +tr3817: { s->buffer[s->buffer_length++] = 0; @@ -94662,15 +92617,15 @@ tr4020: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1337; goto _out;} + {p++; cs = 1339; goto _out;} } } } { s->line_counter++; } - goto st1337; -tr3946: + goto st1339; +tr3743: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94680,8 +92635,8 @@ tr3946: p--; {goto st319;} } } - goto st1337; -tr3947: + goto st1339; +tr3744: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94698,8 +92653,8 @@ tr3947: } s->multiline = true; } - goto st1337; -tr3948: + goto st1339; +tr3745: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94716,8 +92671,8 @@ tr3948: } s->multiline = false; } - goto st1337; -tr3950: + goto st1339; +tr3747: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94730,11 +92685,11 @@ tr3950: { s->line_counter++; } - goto st1337; -st1337: + goto st1339; +st1339: if ( ++p == pe ) - goto _test_eof1337; -case 1337: + goto _test_eof1339; +case 1339: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94748,17 +92703,17 @@ case 1337: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1337; - case 32: goto st1337; - case 40: goto tr3953; - case 41: goto tr3954; - case 2058: goto tr3956; - case 2107: goto tr3957; + case 9: goto st1339; + case 32: goto st1339; + case 40: goto tr3750; + case 41: goto tr3751; + case 2058: goto tr3753; + case 2107: goto tr3754; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3955; - goto tr2429; -tr3955: + goto tr3752; + goto tr2653; +tr3752: { s->number64 = 0; } @@ -94776,8 +92731,8 @@ tr3955: p--; {goto st319;} } } - goto st1338; -tr3961: + goto st1340; +tr3758: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94792,11 +92747,11 @@ tr3961: p--; {goto st319;} } } - goto st1338; -st1338: + goto st1340; +st1340: if ( ++p == pe ) - goto _test_eof1338; -case 1338: + goto _test_eof1340; +case 1340: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94810,17 +92765,17 @@ case 1338: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3958; - case 32: goto tr3958; - case 40: goto tr3959; - case 41: goto tr3960; - case 2058: goto tr3962; - case 2107: goto tr3963; + case 9: goto tr3755; + case 32: goto tr3755; + case 40: goto tr3756; + case 41: goto tr3757; + case 2058: goto tr3759; + case 2107: goto tr3760; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3961; - goto tr2429; -tr3965: + goto tr3758; + goto tr2653; +tr3762: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -94828,8 +92783,8 @@ tr3965: } s->multiline = true; } - goto st1339; -tr3966: + goto st1341; +tr3763: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -94837,13 +92792,13 @@ tr3966: } s->multiline = false; } - goto st1339; -tr3968: + goto st1341; +tr3765: { s->line_counter++; } - goto st1339; -tr4018: + goto st1341; +tr3815: { s->buffer[s->buffer_length++] = 0; @@ -94853,15 +92808,15 @@ tr4018: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1339; goto _out;} + {p++; cs = 1341; goto _out;} } } } { s->line_counter++; } - goto st1339; -tr3958: + goto st1341; +tr3755: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94871,8 +92826,8 @@ tr3958: p--; {goto st319;} } } - goto st1339; -tr3959: + goto st1341; +tr3756: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94889,8 +92844,8 @@ tr3959: } s->multiline = true; } - goto st1339; -tr3960: + goto st1341; +tr3757: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94907,8 +92862,8 @@ tr3960: } s->multiline = false; } - goto st1339; -tr3962: + goto st1341; +tr3759: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -94921,11 +92876,11 @@ tr3962: { s->line_counter++; } - goto st1339; -st1339: + goto st1341; +st1341: if ( ++p == pe ) - goto _test_eof1339; -case 1339: + goto _test_eof1341; +case 1341: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94939,17 +92894,17 @@ case 1339: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1339; - case 32: goto st1339; - case 40: goto tr3965; - case 41: goto tr3966; - case 2058: goto tr3968; - case 2107: goto tr3969; + case 9: goto st1341; + case 32: goto st1341; + case 40: goto tr3762; + case 41: goto tr3763; + case 2058: goto tr3765; + case 2107: goto tr3766; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3967; - goto tr2429; -tr3967: + goto tr3764; + goto tr2653; +tr3764: { s->number64 = 0; } @@ -94967,8 +92922,8 @@ tr3967: p--; {goto st319;} } } - goto st1340; -tr3973: + goto st1342; +tr3770: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94983,11 +92938,11 @@ tr3973: p--; {goto st319;} } } - goto st1340; -st1340: + goto st1342; +st1342: if ( ++p == pe ) - goto _test_eof1340; -case 1340: + goto _test_eof1342; +case 1342: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95001,17 +92956,17 @@ case 1340: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3970; - case 32: goto tr3970; - case 40: goto tr3971; - case 41: goto tr3972; - case 2058: goto tr3974; - case 2107: goto tr3975; + case 9: goto tr3767; + case 32: goto tr3767; + case 40: goto tr3768; + case 41: goto tr3769; + case 2058: goto tr3771; + case 2107: goto tr3772; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3973; - goto tr2429; -tr3977: + goto tr3770; + goto tr2653; +tr3774: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -95019,8 +92974,8 @@ tr3977: } s->multiline = true; } - goto st1341; -tr3978: + goto st1343; +tr3775: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -95028,13 +92983,13 @@ tr3978: } s->multiline = false; } - goto st1341; -tr3981: + goto st1343; +tr3778: { s->line_counter++; } - goto st1341; -tr4016: + goto st1343; +tr3813: { s->buffer[s->buffer_length++] = 0; @@ -95044,15 +92999,15 @@ tr4016: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1341; goto _out;} + {p++; cs = 1343; goto _out;} } } } { s->line_counter++; } - goto st1341; -tr3970: + goto st1343; +tr3767: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95063,8 +93018,8 @@ tr3970: p--; {goto st319;} } } - goto st1341; -tr3971: + goto st1343; +tr3768: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95082,8 +93037,8 @@ tr3971: } s->multiline = true; } - goto st1341; -tr3972: + goto st1343; +tr3769: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95101,8 +93056,8 @@ tr3972: } s->multiline = false; } - goto st1341; -tr3974: + goto st1343; +tr3771: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95116,11 +93071,11 @@ tr3974: { s->line_counter++; } - goto st1341; -st1341: + goto st1343; +st1343: if ( ++p == pe ) - goto _test_eof1341; -case 1341: + goto _test_eof1343; +case 1343: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95134,24 +93089,24 @@ case 1341: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1341; - case 32: goto st1341; - case 40: goto tr3977; - case 41: goto tr3978; - case 45: goto tr3979; - case 2058: goto tr3981; - case 2107: goto tr3982; + case 9: goto st1343; + case 32: goto st1343; + case 40: goto tr3774; + case 41: goto tr3775; + case 45: goto tr3776; + case 2058: goto tr3778; + case 2107: goto tr3779; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3980; + goto tr3777; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3980; + goto tr3777; } else - goto tr3980; - goto tr3100; -tr3979: + goto tr3777; + goto tr3324; +tr3776: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; @@ -95160,11 +93115,11 @@ tr3979: p--; {goto st319;} } } - goto st1342; -st1342: + goto st1344; +st1344: if ( ++p == pe ) - goto _test_eof1342; -case 1342: + goto _test_eof1344; +case 1344: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95178,15 +93133,15 @@ case 1342: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3983; - case 32: goto tr3983; - case 40: goto tr3984; - case 41: goto tr3985; - case 2058: goto tr3986; - case 2107: goto tr3987; - } - goto tr3100; -tr3990: + case 9: goto tr3780; + case 32: goto tr3780; + case 40: goto tr3781; + case 41: goto tr3782; + case 2058: goto tr3783; + case 2107: goto tr3784; + } + goto tr3324; +tr3787: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -95194,8 +93149,8 @@ tr3990: } s->multiline = true; } - goto st1343; -tr3991: + goto st1345; +tr3788: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -95203,13 +93158,13 @@ tr3991: } s->multiline = false; } - goto st1343; -tr3993: + goto st1345; +tr3790: { s->line_counter++; } - goto st1343; -tr4012: + goto st1345; +tr3809: { s->buffer[s->buffer_length++] = 0; @@ -95219,15 +93174,15 @@ tr4012: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1343; goto _out;} + {p++; cs = 1345; goto _out;} } } } { s->line_counter++; } - goto st1343; -tr3983: + goto st1345; +tr3780: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -95241,8 +93196,8 @@ tr3983: p--; {goto st319;} } } - goto st1343; -tr3984: + goto st1345; +tr3781: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -95263,8 +93218,8 @@ tr3984: } s->multiline = true; } - goto st1343; -tr3985: + goto st1345; +tr3782: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -95285,8 +93240,8 @@ tr3985: } s->multiline = false; } - goto st1343; -tr3986: + goto st1345; +tr3783: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -95303,11 +93258,11 @@ tr3986: { s->line_counter++; } - goto st1343; -st1343: + goto st1345; +st1345: if ( ++p == pe ) - goto _test_eof1343; -case 1343: + goto _test_eof1345; +case 1345: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95321,23 +93276,23 @@ case 1343: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1343; - case 32: goto st1343; - case 40: goto tr3990; - case 41: goto tr3991; - case 2058: goto tr3993; - case 2107: goto tr3994; + case 9: goto st1345; + case 32: goto st1345; + case 40: goto tr3787; + case 41: goto tr3788; + case 2058: goto tr3790; + case 2107: goto tr3791; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3992; + goto tr3789; } else if ( _widec > 86 ) { if ( 97 <= _widec && _widec <= 118 ) - goto tr3992; + goto tr3789; } else - goto tr3992; - goto tr3988; -tr3992: + goto tr3789; + goto tr3785; +tr3789: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; @@ -95354,8 +93309,8 @@ tr3992: p--; {goto st319;} } } - goto st1344; -tr4007: + goto st1346; +tr3804: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; @@ -95364,21 +93319,21 @@ tr4007: p--; {goto st319;} } } - goto st1344; -st1344: + goto st1346; +st1346: if ( ++p == pe ) - goto _test_eof1344; -case 1344: + goto _test_eof1346; +case 1346: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3995; + goto tr3792; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3995; + goto tr3792; } else - goto tr3995; - goto tr3988; -tr3995: + goto tr3792; + goto tr3785; +tr3792: { *(rdata_tail++) += second_left_base32hex_to_num[(uint8_t)(*p)]; @@ -95389,41 +93344,41 @@ tr3995: p--; {goto st319;} } } - goto st1345; -st1345: + goto st1347; +st1347: if ( ++p == pe ) - goto _test_eof1345; -case 1345: + goto _test_eof1347; +case 1347: if ( (*p) == 61 ) - goto st1356; + goto st1358; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3996; + goto tr3793; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3996; + goto tr3793; } else - goto tr3996; - goto tr3988; -tr3996: + goto tr3793; + goto tr3785; +tr3793: { *rdata_tail += third_base32hex_to_num[(uint8_t)(*p)]; } - goto st1346; -st1346: + goto st1348; +st1348: if ( ++p == pe ) - goto _test_eof1346; -case 1346: + goto _test_eof1348; +case 1348: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3998; + goto tr3795; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3998; + goto tr3795; } else - goto tr3998; - goto tr3988; -tr3998: + goto tr3795; + goto tr3785; +tr3795: { *(rdata_tail++) += fourth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -95434,23 +93389,23 @@ tr3998: p--; {goto st319;} } } - goto st1347; -st1347: + goto st1349; +st1349: if ( ++p == pe ) - goto _test_eof1347; -case 1347: + goto _test_eof1349; +case 1349: if ( (*p) == 61 ) - goto st1355; + goto st1357; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3999; + goto tr3796; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3999; + goto tr3796; } else - goto tr3999; - goto tr3988; -tr3999: + goto tr3796; + goto tr3785; +tr3796: { *(rdata_tail++) += fifth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -95461,41 +93416,41 @@ tr3999: p--; {goto st319;} } } - goto st1348; -st1348: + goto st1350; +st1350: if ( ++p == pe ) - goto _test_eof1348; -case 1348: + goto _test_eof1350; +case 1350: if ( (*p) == 61 ) - goto st1353; + goto st1355; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4001; + goto tr3798; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr4001; + goto tr3798; } else - goto tr4001; - goto tr3988; -tr4001: + goto tr3798; + goto tr3785; +tr3798: { *rdata_tail += sixth_base32hex_to_num[(uint8_t)(*p)]; } - goto st1349; -st1349: + goto st1351; +st1351: if ( ++p == pe ) - goto _test_eof1349; -case 1349: + goto _test_eof1351; +case 1351: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4003; + goto tr3800; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr4003; + goto tr3800; } else - goto tr4003; - goto tr3988; -tr4003: + goto tr3800; + goto tr3785; +tr3800: { *(rdata_tail++) += seventh_left_base32hex_to_num[(uint8_t)(*p)]; @@ -95506,51 +93461,51 @@ tr4003: p--; {goto st319;} } } - goto st1350; -st1350: + goto st1352; +st1352: if ( ++p == pe ) - goto _test_eof1350; -case 1350: + goto _test_eof1352; +case 1352: if ( (*p) == 61 ) - goto st1351; + goto st1353; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4004; + goto tr3801; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr4004; + goto tr3801; } else - goto tr4004; - goto tr3988; -tr4004: + goto tr3801; + goto tr3785; +tr3801: { *(rdata_tail++) += eighth_base32hex_to_num[(uint8_t)(*p)]; } - goto st1351; -st1351: + goto st1353; +st1353: if ( ++p == pe ) - goto _test_eof1351; -case 1351: + goto _test_eof1353; +case 1353: switch( (*p) ) { - case 32: goto tr4006; - case 59: goto tr4006; + case 32: goto tr3803; + case 59: goto tr3803; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4006; + goto tr3803; } else if ( (*p) >= 9 ) - goto tr4006; + goto tr3803; } else if ( (*p) > 57 ) { if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr4007; + goto tr3804; } else if ( (*p) >= 65 ) - goto tr4007; + goto tr3804; } else - goto tr4007; - goto tr3988; -tr4006: + goto tr3804; + goto tr3785; +tr3803: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -95564,80 +93519,80 @@ tr4006: p--; {goto st319;} } } - { p--; {stack[top++] = 1352;goto st388;} } - goto st1352; -st1352: + { p--; {stack[top++] = 1354;goto st559;} } + goto st1354; +st1354: if ( ++p == pe ) - goto _test_eof1352; -case 1352: + goto _test_eof1354; +case 1354: switch( (*p) ) { - case 32: goto tr4008; - case 59: goto tr4008; + case 32: goto tr3805; + case 59: goto tr3805; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4008; + goto tr3805; } else if ( (*p) >= 9 ) - goto tr4008; + goto tr3805; goto tr77; -tr4008: +tr3805: { p--; {cs = stack[--top];goto _again;} } - goto st1565; -st1565: + goto st1557; +st1557: if ( ++p == pe ) - goto _test_eof1565; -case 1565: + goto _test_eof1557; +case 1557: goto st0; -st1353: - if ( ++p == pe ) - goto _test_eof1353; -case 1353: - if ( (*p) == 61 ) - goto st1354; - goto tr3988; -st1354: - if ( ++p == pe ) - goto _test_eof1354; -case 1354: - if ( (*p) == 61 ) - goto st1351; - goto tr3988; st1355: if ( ++p == pe ) goto _test_eof1355; case 1355: if ( (*p) == 61 ) - goto st1353; - goto tr3988; + goto st1356; + goto tr3785; st1356: if ( ++p == pe ) goto _test_eof1356; case 1356: if ( (*p) == 61 ) - goto st1357; - goto tr3988; + goto st1353; + goto tr3785; st1357: if ( ++p == pe ) goto _test_eof1357; case 1357: if ( (*p) == 61 ) goto st1355; - goto tr3988; -tr3994: + goto tr3785; +st1358: + if ( ++p == pe ) + goto _test_eof1358; +case 1358: + if ( (*p) == 61 ) + goto st1359; + goto tr3785; +st1359: + if ( ++p == pe ) + goto _test_eof1359; +case 1359: + if ( (*p) == 61 ) + goto st1357; + goto tr3785; +tr3791: { s->buffer_length = 0; } - goto st1358; -tr4011: + goto st1360; +tr3808: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1358; -tr3987: + goto st1360; +tr3784: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -95654,11 +93609,11 @@ tr3987: { s->buffer_length = 0; } - goto st1358; -st1358: + goto st1360; +st1360: if ( ++p == pe ) - goto _test_eof1358; -case 1358: + goto _test_eof1360; +case 1360: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95678,11 +93633,11 @@ case 1358: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4012; + goto tr3809; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4011; + goto tr3808; goto tr77; -tr4014: +tr3811: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; @@ -95691,8 +93646,8 @@ tr4014: p--; {goto st319;} } } - goto st1359; -tr3980: + goto st1361; +tr3777: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; @@ -95709,30 +93664,30 @@ tr3980: p--; {goto st319;} } } - goto st1359; -st1359: + goto st1361; +st1361: if ( ++p == pe ) - goto _test_eof1359; -case 1359: + goto _test_eof1361; +case 1361: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4013; + goto tr3810; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4013; + goto tr3810; } else - goto tr4013; - goto tr3100; -tr4013: + goto tr3810; + goto tr3324; +tr3810: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1360; -st1360: + goto st1362; +st1362: if ( ++p == pe ) - goto _test_eof1360; -case 1360: + goto _test_eof1362; +case 1362: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95746,35 +93701,35 @@ case 1360: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3983; - case 32: goto tr3983; - case 40: goto tr3984; - case 41: goto tr3985; - case 2058: goto tr3986; - case 2107: goto tr3987; + case 9: goto tr3780; + case 32: goto tr3780; + case 40: goto tr3781; + case 41: goto tr3782; + case 2058: goto tr3783; + case 2107: goto tr3784; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4014; + goto tr3811; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4014; + goto tr3811; } else - goto tr4014; - goto tr3100; -tr3982: + goto tr3811; + goto tr3324; +tr3779: { s->buffer_length = 0; } - goto st1361; -tr4015: + goto st1363; +tr3812: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1361; -tr3975: + goto st1363; +tr3772: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95788,11 +93743,11 @@ tr3975: { s->buffer_length = 0; } - goto st1361; -st1361: + goto st1363; +st1363: if ( ++p == pe ) - goto _test_eof1361; -case 1361: + goto _test_eof1363; +case 1363: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95812,23 +93767,23 @@ case 1361: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4016; + goto tr3813; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4015; + goto tr3812; goto tr77; -tr3969: +tr3766: { s->buffer_length = 0; } - goto st1362; -tr4017: + goto st1364; +tr3814: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1362; -tr3963: + goto st1364; +tr3760: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -95841,11 +93796,11 @@ tr3963: { s->buffer_length = 0; } - goto st1362; -st1362: + goto st1364; +st1364: if ( ++p == pe ) - goto _test_eof1362; -case 1362: + goto _test_eof1364; +case 1364: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95865,23 +93820,23 @@ case 1362: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4018; + goto tr3815; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4017; + goto tr3814; goto tr77; -tr3957: +tr3754: { s->buffer_length = 0; } - goto st1363; -tr4019: + goto st1365; +tr3816: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1363; -tr3951: + goto st1365; +tr3748: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -95894,11 +93849,11 @@ tr3951: { s->buffer_length = 0; } - goto st1363; -st1363: + goto st1365; +st1365: if ( ++p == pe ) - goto _test_eof1363; -case 1363: + goto _test_eof1365; +case 1365: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95918,18 +93873,18 @@ case 1363: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4020; + goto tr3817; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4019; + goto tr3816; goto tr77; -st1364: +st1366: if ( ++p == pe ) - goto _test_eof1364; -case 1364: + goto _test_eof1366; +case 1366: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4021; - goto tr2429; -tr4021: + goto tr3818; + goto tr2653; +tr3818: { s->number64 = 0; } @@ -95947,8 +93902,8 @@ tr4021: p--; {goto st319;} } } - goto st1365; -tr4025: + goto st1367; +tr3822: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95963,11 +93918,11 @@ tr4025: p--; {goto st319;} } } - goto st1365; -st1365: + goto st1367; +st1367: if ( ++p == pe ) - goto _test_eof1365; -case 1365: + goto _test_eof1367; +case 1367: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95981,17 +93936,17 @@ case 1365: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4022; - case 32: goto tr4022; - case 40: goto tr4023; - case 41: goto tr4024; - case 2058: goto tr4026; - case 2107: goto tr4027; + case 9: goto tr3819; + case 32: goto tr3819; + case 40: goto tr3820; + case 41: goto tr3821; + case 2058: goto tr3823; + case 2107: goto tr3824; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4025; - goto tr2429; -tr4029: + goto tr3822; + goto tr2653; +tr3826: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -95999,8 +93954,8 @@ tr4029: } s->multiline = true; } - goto st1366; -tr4030: + goto st1368; +tr3827: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -96008,13 +93963,13 @@ tr4030: } s->multiline = false; } - goto st1366; -tr4032: + goto st1368; +tr3829: { s->line_counter++; } - goto st1366; -tr4067: + goto st1368; +tr3864: { s->buffer[s->buffer_length++] = 0; @@ -96024,15 +93979,15 @@ tr4067: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1366; goto _out;} + {p++; cs = 1368; goto _out;} } } } { s->line_counter++; } - goto st1366; -tr4022: + goto st1368; +tr3819: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96042,8 +93997,8 @@ tr4022: p--; {goto st319;} } } - goto st1366; -tr4023: + goto st1368; +tr3820: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96060,8 +94015,8 @@ tr4023: } s->multiline = true; } - goto st1366; -tr4024: + goto st1368; +tr3821: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96078,8 +94033,8 @@ tr4024: } s->multiline = false; } - goto st1366; -tr4026: + goto st1368; +tr3823: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96092,11 +94047,11 @@ tr4026: { s->line_counter++; } - goto st1366; -st1366: + goto st1368; +st1368: if ( ++p == pe ) - goto _test_eof1366; -case 1366: + goto _test_eof1368; +case 1368: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96110,17 +94065,17 @@ case 1366: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1366; - case 32: goto st1366; - case 40: goto tr4029; - case 41: goto tr4030; - case 2058: goto tr4032; - case 2107: goto tr4033; + case 9: goto st1368; + case 32: goto st1368; + case 40: goto tr3826; + case 41: goto tr3827; + case 2058: goto tr3829; + case 2107: goto tr3830; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4031; - goto tr2429; -tr4031: + goto tr3828; + goto tr2653; +tr3828: { s->number64 = 0; } @@ -96138,8 +94093,8 @@ tr4031: p--; {goto st319;} } } - goto st1367; -tr4037: + goto st1369; +tr3834: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96154,11 +94109,11 @@ tr4037: p--; {goto st319;} } } - goto st1367; -st1367: + goto st1369; +st1369: if ( ++p == pe ) - goto _test_eof1367; -case 1367: + goto _test_eof1369; +case 1369: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96172,17 +94127,17 @@ case 1367: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4034; - case 32: goto tr4034; - case 40: goto tr4035; - case 41: goto tr4036; - case 2058: goto tr4038; - case 2107: goto tr4039; + case 9: goto tr3831; + case 32: goto tr3831; + case 40: goto tr3832; + case 41: goto tr3833; + case 2058: goto tr3835; + case 2107: goto tr3836; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4037; - goto tr2429; -tr4041: + goto tr3834; + goto tr2653; +tr3838: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -96190,8 +94145,8 @@ tr4041: } s->multiline = true; } - goto st1368; -tr4042: + goto st1370; +tr3839: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -96199,13 +94154,13 @@ tr4042: } s->multiline = false; } - goto st1368; -tr4044: + goto st1370; +tr3841: { s->line_counter++; } - goto st1368; -tr4065: + goto st1370; +tr3862: { s->buffer[s->buffer_length++] = 0; @@ -96215,15 +94170,15 @@ tr4065: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1368; goto _out;} + {p++; cs = 1370; goto _out;} } } } { s->line_counter++; } - goto st1368; -tr4034: + goto st1370; +tr3831: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96233,8 +94188,8 @@ tr4034: p--; {goto st319;} } } - goto st1368; -tr4035: + goto st1370; +tr3832: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96251,8 +94206,8 @@ tr4035: } s->multiline = true; } - goto st1368; -tr4036: + goto st1370; +tr3833: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96269,8 +94224,8 @@ tr4036: } s->multiline = false; } - goto st1368; -tr4038: + goto st1370; +tr3835: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96283,11 +94238,11 @@ tr4038: { s->line_counter++; } - goto st1368; -st1368: + goto st1370; +st1370: if ( ++p == pe ) - goto _test_eof1368; -case 1368: + goto _test_eof1370; +case 1370: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96301,17 +94256,17 @@ case 1368: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1368; - case 32: goto st1368; - case 40: goto tr4041; - case 41: goto tr4042; - case 2058: goto tr4044; - case 2107: goto tr4045; + case 9: goto st1370; + case 32: goto st1370; + case 40: goto tr3838; + case 41: goto tr3839; + case 2058: goto tr3841; + case 2107: goto tr3842; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4043; - goto tr2429; -tr4043: + goto tr3840; + goto tr2653; +tr3840: { s->number64 = 0; } @@ -96329,8 +94284,8 @@ tr4043: p--; {goto st319;} } } - goto st1369; -tr4049: + goto st1371; +tr3846: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96345,11 +94300,11 @@ tr4049: p--; {goto st319;} } } - goto st1369; -st1369: + goto st1371; +st1371: if ( ++p == pe ) - goto _test_eof1369; -case 1369: + goto _test_eof1371; +case 1371: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96363,17 +94318,17 @@ case 1369: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4046; - case 32: goto tr4046; - case 40: goto tr4047; - case 41: goto tr4048; - case 2058: goto tr4050; - case 2107: goto tr4051; + case 9: goto tr3843; + case 32: goto tr3843; + case 40: goto tr3844; + case 41: goto tr3845; + case 2058: goto tr3847; + case 2107: goto tr3848; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4049; - goto tr2429; -tr4053: + goto tr3846; + goto tr2653; +tr3850: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -96381,8 +94336,8 @@ tr4053: } s->multiline = true; } - goto st1370; -tr4054: + goto st1372; +tr3851: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -96390,13 +94345,13 @@ tr4054: } s->multiline = false; } - goto st1370; -tr4057: + goto st1372; +tr3854: { s->line_counter++; } - goto st1370; -tr4063: + goto st1372; +tr3860: { s->buffer[s->buffer_length++] = 0; @@ -96406,15 +94361,15 @@ tr4063: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1370; goto _out;} + {p++; cs = 1372; goto _out;} } } } { s->line_counter++; } - goto st1370; -tr4046: + goto st1372; +tr3843: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96425,8 +94380,8 @@ tr4046: p--; {goto st319;} } } - goto st1370; -tr4047: + goto st1372; +tr3844: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96444,8 +94399,8 @@ tr4047: } s->multiline = true; } - goto st1370; -tr4048: + goto st1372; +tr3845: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96463,8 +94418,8 @@ tr4048: } s->multiline = false; } - goto st1370; -tr4050: + goto st1372; +tr3847: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96478,11 +94433,11 @@ tr4050: { s->line_counter++; } - goto st1370; -st1370: + goto st1372; +st1372: if ( ++p == pe ) - goto _test_eof1370; -case 1370: + goto _test_eof1372; +case 1372: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96496,24 +94451,24 @@ case 1370: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1370; - case 32: goto st1370; - case 40: goto tr4053; - case 41: goto tr4054; - case 45: goto tr4055; - case 2058: goto tr4057; - case 2107: goto tr4058; + case 9: goto st1372; + case 32: goto st1372; + case 40: goto tr3850; + case 41: goto tr3851; + case 45: goto tr3852; + case 2058: goto tr3854; + case 2107: goto tr3855; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4056; + goto tr3853; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4056; + goto tr3853; } else - goto tr4056; - goto tr3100; -tr4055: + goto tr3853; + goto tr3324; +tr3852: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; @@ -96522,22 +94477,22 @@ tr4055: p--; {goto st319;} } } - goto st1371; -st1371: + goto st1373; +st1373: if ( ++p == pe ) - goto _test_eof1371; -case 1371: + goto _test_eof1373; +case 1373: switch( (*p) ) { - case 32: goto tr4059; - case 59: goto tr4059; + case 32: goto tr3856; + case 59: goto tr3856; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4059; + goto tr3856; } else if ( (*p) >= 9 ) - goto tr4059; - goto tr3100; -tr4059: + goto tr3856; + goto tr3324; +tr3856: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -96554,13 +94509,13 @@ tr4059: { p--; {cs = stack[--top];goto _again;} } - goto st1566; -st1566: + goto st1558; +st1558: if ( ++p == pe ) - goto _test_eof1566; -case 1566: + goto _test_eof1558; +case 1558: goto st0; -tr4061: +tr3858: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; @@ -96569,8 +94524,8 @@ tr4061: p--; {goto st319;} } } - goto st1372; -tr4056: + goto st1374; +tr3853: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; @@ -96587,62 +94542,62 @@ tr4056: p--; {goto st319;} } } - goto st1372; -st1372: + goto st1374; +st1374: if ( ++p == pe ) - goto _test_eof1372; -case 1372: + goto _test_eof1374; +case 1374: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4060; + goto tr3857; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4060; + goto tr3857; } else - goto tr4060; - goto tr3100; -tr4060: + goto tr3857; + goto tr3324; +tr3857: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1373; -st1373: + goto st1375; +st1375: if ( ++p == pe ) - goto _test_eof1373; -case 1373: + goto _test_eof1375; +case 1375: switch( (*p) ) { - case 32: goto tr4059; - case 59: goto tr4059; + case 32: goto tr3856; + case 59: goto tr3856; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4059; + goto tr3856; } else if ( (*p) >= 9 ) - goto tr4059; + goto tr3856; } else if ( (*p) > 57 ) { if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4061; + goto tr3858; } else if ( (*p) >= 65 ) - goto tr4061; + goto tr3858; } else - goto tr4061; - goto tr3100; -tr4058: + goto tr3858; + goto tr3324; +tr3855: { s->buffer_length = 0; } - goto st1374; -tr4062: + goto st1376; +tr3859: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1374; -tr4051: + goto st1376; +tr3848: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96656,11 +94611,11 @@ tr4051: { s->buffer_length = 0; } - goto st1374; -st1374: + goto st1376; +st1376: if ( ++p == pe ) - goto _test_eof1374; -case 1374: + goto _test_eof1376; +case 1376: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96680,23 +94635,23 @@ case 1374: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4063; + goto tr3860; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4062; + goto tr3859; goto tr77; -tr4045: +tr3842: { s->buffer_length = 0; } - goto st1375; -tr4064: + goto st1377; +tr3861: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1375; -tr4039: + goto st1377; +tr3836: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96709,11 +94664,11 @@ tr4039: { s->buffer_length = 0; } - goto st1375; -st1375: + goto st1377; +st1377: if ( ++p == pe ) - goto _test_eof1375; -case 1375: + goto _test_eof1377; +case 1377: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96733,23 +94688,23 @@ case 1375: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4065; + goto tr3862; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4064; + goto tr3861; goto tr77; -tr4033: +tr3830: { s->buffer_length = 0; } - goto st1376; -tr4066: + goto st1378; +tr3863: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1376; -tr4027: + goto st1378; +tr3824: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96762,11 +94717,11 @@ tr4027: { s->buffer_length = 0; } - goto st1376; -st1376: + goto st1378; +st1378: if ( ++p == pe ) - goto _test_eof1376; -case 1376: + goto _test_eof1378; +case 1378: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96786,18 +94741,18 @@ case 1376: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4067; + goto tr3864; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4066; + goto tr3863; goto tr77; -st1377: +st1379: if ( ++p == pe ) - goto _test_eof1377; -case 1377: + goto _test_eof1379; +case 1379: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4068; - goto tr2429; -tr4068: + goto tr3865; + goto tr2653; +tr3865: { s->number64 = 0; } @@ -96815,8 +94770,8 @@ tr4068: p--; {goto st319;} } } - goto st1378; -tr4072: + goto st1380; +tr3869: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96831,11 +94786,11 @@ tr4072: p--; {goto st319;} } } - goto st1378; -st1378: + goto st1380; +st1380: if ( ++p == pe ) - goto _test_eof1378; -case 1378: + goto _test_eof1380; +case 1380: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96849,17 +94804,17 @@ case 1378: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4069; - case 32: goto tr4069; - case 40: goto tr4070; - case 41: goto tr4071; - case 2058: goto tr4073; - case 2107: goto tr4074; + case 9: goto tr3866; + case 32: goto tr3866; + case 40: goto tr3867; + case 41: goto tr3868; + case 2058: goto tr3870; + case 2107: goto tr3871; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4072; - goto tr2429; -tr4076: + goto tr3869; + goto tr2653; +tr3873: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -96867,8 +94822,8 @@ tr4076: } s->multiline = true; } - goto st1379; -tr4077: + goto st1381; +tr3874: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -96876,13 +94831,13 @@ tr4077: } s->multiline = false; } - goto st1379; -tr4079: + goto st1381; +tr3876: { s->line_counter++; } - goto st1379; -tr4121: + goto st1381; +tr3918: { s->buffer[s->buffer_length++] = 0; @@ -96892,15 +94847,15 @@ tr4121: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1379; goto _out;} + {p++; cs = 1381; goto _out;} } } } { s->line_counter++; } - goto st1379; -tr4069: + goto st1381; +tr3866: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96910,8 +94865,8 @@ tr4069: p--; {goto st319;} } } - goto st1379; -tr4070: + goto st1381; +tr3867: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96928,8 +94883,8 @@ tr4070: } s->multiline = true; } - goto st1379; -tr4071: + goto st1381; +tr3868: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96946,8 +94901,8 @@ tr4071: } s->multiline = false; } - goto st1379; -tr4073: + goto st1381; +tr3870: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -96960,11 +94915,11 @@ tr4073: { s->line_counter++; } - goto st1379; -st1379: + goto st1381; +st1381: if ( ++p == pe ) - goto _test_eof1379; -case 1379: + goto _test_eof1381; +case 1381: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96978,17 +94933,17 @@ case 1379: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1379; - case 32: goto st1379; - case 40: goto tr4076; - case 41: goto tr4077; - case 2058: goto tr4079; - case 2107: goto tr4080; + case 9: goto st1381; + case 32: goto st1381; + case 40: goto tr3873; + case 41: goto tr3874; + case 2058: goto tr3876; + case 2107: goto tr3877; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4078; - goto tr2429; -tr4078: + goto tr3875; + goto tr2653; +tr3875: { s->number64 = 0; } @@ -97006,8 +94961,8 @@ tr4078: p--; {goto st319;} } } - goto st1380; -tr4084: + goto st1382; +tr3881: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97022,11 +94977,11 @@ tr4084: p--; {goto st319;} } } - goto st1380; -st1380: + goto st1382; +st1382: if ( ++p == pe ) - goto _test_eof1380; -case 1380: + goto _test_eof1382; +case 1382: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97040,17 +94995,17 @@ case 1380: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4081; - case 32: goto tr4081; - case 40: goto tr4082; - case 41: goto tr4083; - case 2058: goto tr4085; - case 2107: goto tr4086; + case 9: goto tr3878; + case 32: goto tr3878; + case 40: goto tr3879; + case 41: goto tr3880; + case 2058: goto tr3882; + case 2107: goto tr3883; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4084; - goto tr2429; -tr4088: + goto tr3881; + goto tr2653; +tr3885: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -97058,8 +95013,8 @@ tr4088: } s->multiline = true; } - goto st1381; -tr4089: + goto st1383; +tr3886: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -97067,13 +95022,13 @@ tr4089: } s->multiline = false; } - goto st1381; -tr4091: + goto st1383; +tr3888: { s->line_counter++; } - goto st1381; -tr4119: + goto st1383; +tr3916: { s->buffer[s->buffer_length++] = 0; @@ -97083,15 +95038,15 @@ tr4119: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1381; goto _out;} + {p++; cs = 1383; goto _out;} } } } { s->line_counter++; } - goto st1381; -tr4081: + goto st1383; +tr3878: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -97101,8 +95056,8 @@ tr4081: p--; {goto st319;} } } - goto st1381; -tr4082: + goto st1383; +tr3879: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -97119,8 +95074,8 @@ tr4082: } s->multiline = true; } - goto st1381; -tr4083: + goto st1383; +tr3880: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -97137,8 +95092,8 @@ tr4083: } s->multiline = false; } - goto st1381; -tr4085: + goto st1383; +tr3882: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -97151,11 +95106,11 @@ tr4085: { s->line_counter++; } - goto st1381; -st1381: + goto st1383; +st1383: if ( ++p == pe ) - goto _test_eof1381; -case 1381: + goto _test_eof1383; +case 1383: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97169,17 +95124,17 @@ case 1381: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1381; - case 32: goto st1381; - case 40: goto tr4088; - case 41: goto tr4089; - case 2058: goto tr4091; - case 2107: goto tr4092; + case 9: goto st1383; + case 32: goto st1383; + case 40: goto tr3885; + case 41: goto tr3886; + case 2058: goto tr3888; + case 2107: goto tr3889; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4090; - goto tr2429; -tr4090: + goto tr3887; + goto tr2653; +tr3887: { s->number64 = 0; } @@ -97197,8 +95152,8 @@ tr4090: p--; {goto st319;} } } - goto st1382; -tr4096: + goto st1384; +tr3893: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97213,11 +95168,11 @@ tr4096: p--; {goto st319;} } } - goto st1382; -st1382: + goto st1384; +st1384: if ( ++p == pe ) - goto _test_eof1382; -case 1382: + goto _test_eof1384; +case 1384: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97231,17 +95186,17 @@ case 1382: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4093; - case 32: goto tr4093; - case 40: goto tr4094; - case 41: goto tr4095; - case 2058: goto tr4097; - case 2107: goto tr4098; + case 9: goto tr3890; + case 32: goto tr3890; + case 40: goto tr3891; + case 41: goto tr3892; + case 2058: goto tr3894; + case 2107: goto tr3895; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4096; - goto tr2429; -tr4100: + goto tr3893; + goto tr2653; +tr3897: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -97249,8 +95204,8 @@ tr4100: } s->multiline = true; } - goto st1383; -tr4101: + goto st1385; +tr3898: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -97258,13 +95213,13 @@ tr4101: } s->multiline = false; } - goto st1383; -tr4103: + goto st1385; +tr3900: { s->line_counter++; } - goto st1383; -tr4117: + goto st1385; +tr3914: { s->buffer[s->buffer_length++] = 0; @@ -97274,15 +95229,15 @@ tr4117: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1383; goto _out;} + {p++; cs = 1385; goto _out;} } } } { s->line_counter++; } - goto st1383; -tr4093: + goto st1385; +tr3890: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -97292,8 +95247,8 @@ tr4093: p--; {goto st319;} } } - goto st1383; -tr4094: + goto st1385; +tr3891: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -97310,8 +95265,8 @@ tr4094: } s->multiline = true; } - goto st1383; -tr4095: + goto st1385; +tr3892: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -97328,8 +95283,8 @@ tr4095: } s->multiline = false; } - goto st1383; -tr4097: + goto st1385; +tr3894: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -97342,11 +95297,11 @@ tr4097: { s->line_counter++; } - goto st1383; -st1383: + goto st1385; +st1385: if ( ++p == pe ) - goto _test_eof1383; -case 1383: + goto _test_eof1385; +case 1385: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97360,23 +95315,23 @@ case 1383: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1383; - case 32: goto st1383; - case 40: goto tr4100; - case 41: goto tr4101; - case 2058: goto tr4103; - case 2107: goto tr4104; + case 9: goto st1385; + case 32: goto st1385; + case 40: goto tr3897; + case 41: goto tr3898; + case 2058: goto tr3900; + case 2107: goto tr3901; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4102; + goto tr3899; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4102; + goto tr3899; } else - goto tr4102; - goto tr3100; -tr4102: + goto tr3899; + goto tr3324; +tr3899: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; @@ -97385,21 +95340,21 @@ tr4102: p--; {goto st319;} } } - goto st1384; -st1384: + goto st1386; +st1386: if ( ++p == pe ) - goto _test_eof1384; -case 1384: + goto _test_eof1386; +case 1386: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4105; + goto tr3902; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4105; + goto tr3902; } else - goto tr4105; - goto tr3100; -tr4107: + goto tr3902; + goto tr3324; +tr3904: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -97407,8 +95362,8 @@ tr4107: } s->multiline = true; } - goto st1385; -tr4108: + goto st1387; +tr3905: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -97416,13 +95371,13 @@ tr4108: } s->multiline = false; } - goto st1385; -tr4109: + goto st1387; +tr3906: { s->line_counter++; } - goto st1385; -tr4115: + goto st1387; +tr3912: { s->buffer[s->buffer_length++] = 0; @@ -97432,24 +95387,24 @@ tr4115: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1385; goto _out;} + {p++; cs = 1387; goto _out;} } } } { s->line_counter++; } - goto st1385; -tr4105: + goto st1387; +tr3902: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1385; -st1385: + goto st1387; +st1387: if ( ++p == pe ) - goto _test_eof1385; -case 1385: + goto _test_eof1387; +case 1387: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97467,42 +95422,42 @@ case 1385: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1385; - case 32: goto st1385; - case 40: goto tr4107; - case 41: goto tr4108; - case 3082: goto tr4109; - case 3131: goto tr4110; - case 3338: goto tr4111; - case 3387: goto tr4111; - case 3594: goto tr4112; - case 3643: goto tr4113; + case 9: goto st1387; + case 32: goto st1387; + case 40: goto tr3904; + case 41: goto tr3905; + case 3082: goto tr3906; + case 3131: goto tr3907; + case 3338: goto tr3908; + case 3387: goto tr3908; + case 3594: goto tr3909; + case 3643: goto tr3910; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4102; + goto tr3899; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4102; + goto tr3899; } else - goto tr4102; - goto tr3100; -tr4110: + goto tr3899; + goto tr3324; +tr3907: { s->buffer_length = 0; } - goto st1386; -tr4114: + goto st1388; +tr3911: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1386; -st1386: + goto st1388; +st1388: if ( ++p == pe ) - goto _test_eof1386; -case 1386: + goto _test_eof1388; +case 1388: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97522,32 +95477,32 @@ case 1386: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4115; + goto tr3912; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4114; - goto tr3100; -tr4111: + goto tr3911; + goto tr3324; +tr3908: { p--; {cs = stack[--top];goto _again;} } - goto st1567; -st1567: + goto st1559; +st1559: if ( ++p == pe ) - goto _test_eof1567; -case 1567: + goto _test_eof1559; +case 1559: goto st0; -tr4112: +tr3909: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1568; -st1568: + goto st1560; +st1560: if ( ++p == pe ) - goto _test_eof1568; -case 1568: + goto _test_eof1560; +case 1560: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97565,144 +95520,38 @@ case 1568: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1385; - case 32: goto st1385; - case 40: goto tr4107; - case 41: goto tr4108; - case 3082: goto tr4109; - case 3131: goto tr4110; - case 3338: goto tr4111; - case 3387: goto tr4111; - case 3594: goto tr4112; - case 3643: goto tr4113; + case 9: goto st1387; + case 32: goto st1387; + case 40: goto tr3904; + case 41: goto tr3905; + case 3082: goto tr3906; + case 3131: goto tr3907; + case 3338: goto tr3908; + case 3387: goto tr3908; + case 3594: goto tr3909; + case 3643: goto tr3910; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4102; + goto tr3899; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4102; + goto tr3899; } else - goto tr4102; - goto tr3100; -tr4113: + goto tr3899; + goto tr3324; +tr3910: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1569; -st1569: - if ( ++p == pe ) - goto _test_eof1569; -case 1569: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr4115; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4114; - goto tr3100; -tr4104: - { - s->buffer_length = 0; - } - goto st1387; -tr4116: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st1387; -tr4098: - { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} - } - } - { - s->buffer_length = 0; - } - goto st1387; -st1387: - if ( ++p == pe ) - goto _test_eof1387; -case 1387: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr4117; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4116; - goto tr77; -tr4092: - { - s->buffer_length = 0; - } - goto st1388; -tr4118: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st1388; -tr4086: - { - if (s->number64 <= UINT8_MAX) { - *rdata_tail = (uint8_t)(s->number64); - rdata_tail += 1; - } else { - WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} - } - } - { - s->buffer_length = 0; - } - goto st1388; -st1388: + goto st1561; +st1561: if ( ++p == pe ) - goto _test_eof1388; -case 1388: + goto _test_eof1561; +case 1561: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97722,23 +95571,23 @@ case 1388: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4119; + goto tr3912; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4118; - goto tr77; -tr4080: + goto tr3911; + goto tr3324; +tr3901: { s->buffer_length = 0; } goto st1389; -tr4120: +tr3913: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st1389; -tr4074: +tr3895: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -97775,18 +95624,124 @@ case 1389: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4121; + goto tr3914; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4120; + goto tr3913; goto tr77; +tr3889: + { + s->buffer_length = 0; + } + goto st1390; +tr3915: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1390; +tr3883: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1390; st1390: if ( ++p == pe ) goto _test_eof1390; case 1390: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr3916; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3915; + goto tr77; +tr3877: + { + s->buffer_length = 0; + } + goto st1391; +tr3917: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1391; +tr3871: + { + if (s->number64 <= UINT8_MAX) { + *rdata_tail = (uint8_t)(s->number64); + rdata_tail += 1; + } else { + WARN(ZS_NUMBER8_OVERFLOW); + p--; {goto st319;} + } + } + { + s->buffer_length = 0; + } + goto st1391; +st1391: + if ( ++p == pe ) + goto _test_eof1391; +case 1391: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr3918; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr3917; + goto tr77; +st1392: + if ( ++p == pe ) + goto _test_eof1392; +case 1392: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4122; - goto tr2429; -tr4122: + goto tr3919; + goto tr2653; +tr3919: { s->number64 = 0; } @@ -97804,8 +95759,8 @@ tr4122: p--; {goto st319;} } } - goto st1391; -tr4126: + goto st1393; +tr3923: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97820,11 +95775,11 @@ tr4126: p--; {goto st319;} } } - goto st1391; -st1391: + goto st1393; +st1393: if ( ++p == pe ) - goto _test_eof1391; -case 1391: + goto _test_eof1393; +case 1393: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97838,17 +95793,17 @@ case 1391: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4123; - case 32: goto tr4123; - case 40: goto tr4124; - case 41: goto tr4125; - case 2058: goto tr4127; - case 2107: goto tr4128; + case 9: goto tr3920; + case 32: goto tr3920; + case 40: goto tr3921; + case 41: goto tr3922; + case 2058: goto tr3924; + case 2107: goto tr3925; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4126; - goto tr2429; -tr4130: + goto tr3923; + goto tr2653; +tr3927: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -97856,8 +95811,8 @@ tr4130: } s->multiline = true; } - goto st1392; -tr4131: + goto st1394; +tr3928: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -97865,13 +95820,13 @@ tr4131: } s->multiline = false; } - goto st1392; -tr4133: + goto st1394; +tr3930: { s->line_counter++; } - goto st1392; -tr4139: + goto st1394; +tr3936: { s->buffer[s->buffer_length++] = 0; @@ -97881,15 +95836,15 @@ tr4139: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1392; goto _out;} + {p++; cs = 1394; goto _out;} } } } { s->line_counter++; } - goto st1392; -tr4123: + goto st1394; +tr3920: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -97900,8 +95855,8 @@ tr4123: p--; {goto st319;} } } - goto st1392; -tr4124: + goto st1394; +tr3921: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -97919,8 +95874,8 @@ tr4124: } s->multiline = true; } - goto st1392; -tr4125: + goto st1394; +tr3922: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -97938,8 +95893,8 @@ tr4125: } s->multiline = false; } - goto st1392; -tr4127: + goto st1394; +tr3924: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -97953,11 +95908,11 @@ tr4127: { s->line_counter++; } - goto st1392; -st1392: + goto st1394; +st1394: if ( ++p == pe ) - goto _test_eof1392; -case 1392: + goto _test_eof1394; +case 1394: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97971,17 +95926,17 @@ case 1392: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1392; - case 32: goto st1392; - case 40: goto tr4130; - case 41: goto tr4131; - case 2058: goto tr4133; - case 2107: goto tr4134; + case 9: goto st1394; + case 32: goto st1394; + case 40: goto tr3927; + case 41: goto tr3928; + case 2058: goto tr3930; + case 2107: goto tr3931; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4132; - goto tr2429; -tr4132: + goto tr3929; + goto tr2653; +tr3929: { s->number64 = 0; } @@ -97999,8 +95954,8 @@ tr4132: p--; {goto st319;} } } - goto st1393; -tr4136: + goto st1395; +tr3933: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98015,25 +95970,25 @@ tr4136: p--; {goto st319;} } } - goto st1393; -st1393: + goto st1395; +st1395: if ( ++p == pe ) - goto _test_eof1393; -case 1393: + goto _test_eof1395; +case 1395: switch( (*p) ) { - case 32: goto tr4135; - case 59: goto tr4135; + case 32: goto tr3932; + case 59: goto tr3932; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr4135; + goto tr3932; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4136; + goto tr3933; } else - goto tr4135; - goto tr2429; -tr4135: + goto tr3932; + goto tr2653; +tr3932: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98044,45 +95999,45 @@ tr4135: p--; {goto st319;} } } - { p--; {stack[top++] = 1394;goto st388;} } - goto st1394; -st1394: + { p--; {stack[top++] = 1396;goto st559;} } + goto st1396; +st1396: if ( ++p == pe ) - goto _test_eof1394; -case 1394: + goto _test_eof1396; +case 1396: switch( (*p) ) { - case 32: goto tr4137; - case 59: goto tr4137; + case 32: goto tr3934; + case 59: goto tr3934; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4137; + goto tr3934; } else if ( (*p) >= 9 ) - goto tr4137; + goto tr3934; goto tr77; -tr4137: +tr3934: { p--; {cs = stack[--top];goto _again;} } - goto st1570; -st1570: + goto st1562; +st1562: if ( ++p == pe ) - goto _test_eof1570; -case 1570: + goto _test_eof1562; +case 1562: goto st0; -tr4134: +tr3931: { s->buffer_length = 0; } - goto st1395; -tr4138: + goto st1397; +tr3935: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1395; -tr4128: + goto st1397; +tr3925: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98096,11 +96051,11 @@ tr4128: { s->buffer_length = 0; } - goto st1395; -st1395: + goto st1397; +st1397: if ( ++p == pe ) - goto _test_eof1395; -case 1395: + goto _test_eof1397; +case 1397: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -98120,18 +96075,18 @@ case 1395: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4139; + goto tr3936; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4138; + goto tr3935; goto tr77; -st1396: +st1398: if ( ++p == pe ) - goto _test_eof1396; -case 1396: + goto _test_eof1398; +case 1398: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4140; - goto tr2429; -tr4140: + goto tr3937; + goto tr2653; +tr3937: { s->number64 = 0; } @@ -98149,8 +96104,8 @@ tr4140: p--; {goto st319;} } } - goto st1397; -tr4144: + goto st1399; +tr3941: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98165,11 +96120,11 @@ tr4144: p--; {goto st319;} } } - goto st1397; -st1397: + goto st1399; +st1399: if ( ++p == pe ) - goto _test_eof1397; -case 1397: + goto _test_eof1399; +case 1399: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98183,17 +96138,17 @@ case 1397: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4141; - case 32: goto tr4141; - case 40: goto tr4142; - case 41: goto tr4143; - case 2058: goto tr4145; - case 2107: goto tr4146; + case 9: goto tr3938; + case 32: goto tr3938; + case 40: goto tr3939; + case 41: goto tr3940; + case 2058: goto tr3942; + case 2107: goto tr3943; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4144; - goto tr2429; -tr4148: + goto tr3941; + goto tr2653; +tr3945: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -98201,8 +96156,8 @@ tr4148: } s->multiline = true; } - goto st1398; -tr4149: + goto st1400; +tr3946: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -98210,13 +96165,13 @@ tr4149: } s->multiline = false; } - goto st1398; -tr4151: + goto st1400; +tr3948: { s->line_counter++; } - goto st1398; -tr4193: + goto st1400; +tr3990: { s->buffer[s->buffer_length++] = 0; @@ -98226,15 +96181,15 @@ tr4193: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1398; goto _out;} + {p++; cs = 1400; goto _out;} } } } { s->line_counter++; } - goto st1398; -tr4141: + goto st1400; +tr3938: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98245,8 +96200,8 @@ tr4141: p--; {goto st319;} } } - goto st1398; -tr4142: + goto st1400; +tr3939: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98264,8 +96219,8 @@ tr4142: } s->multiline = true; } - goto st1398; -tr4143: + goto st1400; +tr3940: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98283,8 +96238,8 @@ tr4143: } s->multiline = false; } - goto st1398; -tr4145: + goto st1400; +tr3942: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98298,11 +96253,11 @@ tr4145: { s->line_counter++; } - goto st1398; -st1398: + goto st1400; +st1400: if ( ++p == pe ) - goto _test_eof1398; -case 1398: + goto _test_eof1400; +case 1400: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98316,17 +96271,17 @@ case 1398: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1398; - case 32: goto st1398; - case 40: goto tr4148; - case 41: goto tr4149; - case 2058: goto tr4151; - case 2107: goto tr4152; + case 9: goto st1400; + case 32: goto st1400; + case 40: goto tr3945; + case 41: goto tr3946; + case 2058: goto tr3948; + case 2107: goto tr3949; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4150; - goto tr2429; -tr4150: + goto tr3947; + goto tr2653; +tr3947: { s->number64 = 0; } @@ -98344,8 +96299,8 @@ tr4150: p--; {goto st319;} } } - goto st1399; -tr4156: + goto st1401; +tr3953: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98360,11 +96315,11 @@ tr4156: p--; {goto st319;} } } - goto st1399; -st1399: + goto st1401; +st1401: if ( ++p == pe ) - goto _test_eof1399; -case 1399: + goto _test_eof1401; +case 1401: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98378,17 +96333,17 @@ case 1399: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4153; - case 32: goto tr4153; - case 40: goto tr4154; - case 41: goto tr4155; - case 2058: goto tr4157; - case 2107: goto tr4158; + case 9: goto tr3950; + case 32: goto tr3950; + case 40: goto tr3951; + case 41: goto tr3952; + case 2058: goto tr3954; + case 2107: goto tr3955; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4156; - goto tr2429; -tr4160: + goto tr3953; + goto tr2653; +tr3957: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -98396,8 +96351,8 @@ tr4160: } s->multiline = true; } - goto st1400; -tr4161: + goto st1402; +tr3958: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -98405,13 +96360,13 @@ tr4161: } s->multiline = false; } - goto st1400; -tr4163: + goto st1402; +tr3960: { s->line_counter++; } - goto st1400; -tr4191: + goto st1402; +tr3988: { s->buffer[s->buffer_length++] = 0; @@ -98421,15 +96376,15 @@ tr4191: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1400; goto _out;} + {p++; cs = 1402; goto _out;} } } } { s->line_counter++; } - goto st1400; -tr4153: + goto st1402; +tr3950: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -98439,8 +96394,8 @@ tr4153: p--; {goto st319;} } } - goto st1400; -tr4154: + goto st1402; +tr3951: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -98457,8 +96412,8 @@ tr4154: } s->multiline = true; } - goto st1400; -tr4155: + goto st1402; +tr3952: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -98475,8 +96430,8 @@ tr4155: } s->multiline = false; } - goto st1400; -tr4157: + goto st1402; +tr3954: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -98489,11 +96444,11 @@ tr4157: { s->line_counter++; } - goto st1400; -st1400: + goto st1402; +st1402: if ( ++p == pe ) - goto _test_eof1400; -case 1400: + goto _test_eof1402; +case 1402: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98507,17 +96462,17 @@ case 1400: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1400; - case 32: goto st1400; - case 40: goto tr4160; - case 41: goto tr4161; - case 2058: goto tr4163; - case 2107: goto tr4164; + case 9: goto st1402; + case 32: goto st1402; + case 40: goto tr3957; + case 41: goto tr3958; + case 2058: goto tr3960; + case 2107: goto tr3961; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4162; - goto tr2429; -tr4162: + goto tr3959; + goto tr2653; +tr3959: { s->number64 = 0; } @@ -98535,8 +96490,8 @@ tr4162: p--; {goto st319;} } } - goto st1401; -tr4168: + goto st1403; +tr3965: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98551,11 +96506,11 @@ tr4168: p--; {goto st319;} } } - goto st1401; -st1401: + goto st1403; +st1403: if ( ++p == pe ) - goto _test_eof1401; -case 1401: + goto _test_eof1403; +case 1403: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98569,17 +96524,17 @@ case 1401: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4165; - case 32: goto tr4165; - case 40: goto tr4166; - case 41: goto tr4167; - case 2058: goto tr4169; - case 2107: goto tr4170; + case 9: goto tr3962; + case 32: goto tr3962; + case 40: goto tr3963; + case 41: goto tr3964; + case 2058: goto tr3966; + case 2107: goto tr3967; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4168; - goto tr2429; -tr4172: + goto tr3965; + goto tr2653; +tr3969: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -98587,8 +96542,8 @@ tr4172: } s->multiline = true; } - goto st1402; -tr4173: + goto st1404; +tr3970: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -98596,13 +96551,13 @@ tr4173: } s->multiline = false; } - goto st1402; -tr4175: + goto st1404; +tr3972: { s->line_counter++; } - goto st1402; -tr4189: + goto st1404; +tr3986: { s->buffer[s->buffer_length++] = 0; @@ -98612,15 +96567,15 @@ tr4189: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1402; goto _out;} + {p++; cs = 1404; goto _out;} } } } { s->line_counter++; } - goto st1402; -tr4165: + goto st1404; +tr3962: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -98630,8 +96585,8 @@ tr4165: p--; {goto st319;} } } - goto st1402; -tr4166: + goto st1404; +tr3963: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -98648,8 +96603,8 @@ tr4166: } s->multiline = true; } - goto st1402; -tr4167: + goto st1404; +tr3964: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -98666,8 +96621,8 @@ tr4167: } s->multiline = false; } - goto st1402; -tr4169: + goto st1404; +tr3966: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -98680,11 +96635,11 @@ tr4169: { s->line_counter++; } - goto st1402; -st1402: + goto st1404; +st1404: if ( ++p == pe ) - goto _test_eof1402; -case 1402: + goto _test_eof1404; +case 1404: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98698,23 +96653,23 @@ case 1402: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1402; - case 32: goto st1402; - case 40: goto tr4172; - case 41: goto tr4173; - case 2058: goto tr4175; - case 2107: goto tr4176; + case 9: goto st1404; + case 32: goto st1404; + case 40: goto tr3969; + case 41: goto tr3970; + case 2058: goto tr3972; + case 2107: goto tr3973; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4174; + goto tr3971; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4174; + goto tr3971; } else - goto tr4174; - goto tr3100; -tr4174: + goto tr3971; + goto tr3324; +tr3971: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; @@ -98723,21 +96678,21 @@ tr4174: p--; {goto st319;} } } - goto st1403; -st1403: + goto st1405; +st1405: if ( ++p == pe ) - goto _test_eof1403; -case 1403: + goto _test_eof1405; +case 1405: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4177; + goto tr3974; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4177; + goto tr3974; } else - goto tr4177; - goto tr3100; -tr4179: + goto tr3974; + goto tr3324; +tr3976: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -98745,8 +96700,8 @@ tr4179: } s->multiline = true; } - goto st1404; -tr4180: + goto st1406; +tr3977: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -98754,13 +96709,13 @@ tr4180: } s->multiline = false; } - goto st1404; -tr4181: + goto st1406; +tr3978: { s->line_counter++; } - goto st1404; -tr4187: + goto st1406; +tr3984: { s->buffer[s->buffer_length++] = 0; @@ -98770,24 +96725,24 @@ tr4187: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1404; goto _out;} + {p++; cs = 1406; goto _out;} } } } { s->line_counter++; } - goto st1404; -tr4177: + goto st1406; +tr3974: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1404; -st1404: + goto st1406; +st1406: if ( ++p == pe ) - goto _test_eof1404; -case 1404: + goto _test_eof1406; +case 1406: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98805,42 +96760,42 @@ case 1404: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1404; - case 32: goto st1404; - case 40: goto tr4179; - case 41: goto tr4180; - case 3082: goto tr4181; - case 3131: goto tr4182; - case 3338: goto tr4183; - case 3387: goto tr4183; - case 3594: goto tr4184; - case 3643: goto tr4185; + case 9: goto st1406; + case 32: goto st1406; + case 40: goto tr3976; + case 41: goto tr3977; + case 3082: goto tr3978; + case 3131: goto tr3979; + case 3338: goto tr3980; + case 3387: goto tr3980; + case 3594: goto tr3981; + case 3643: goto tr3982; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4174; + goto tr3971; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4174; + goto tr3971; } else - goto tr4174; - goto tr3100; -tr4182: + goto tr3971; + goto tr3324; +tr3979: { s->buffer_length = 0; } - goto st1405; -tr4186: + goto st1407; +tr3983: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1405; -st1405: + goto st1407; +st1407: if ( ++p == pe ) - goto _test_eof1405; -case 1405: + goto _test_eof1407; +case 1407: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -98860,32 +96815,32 @@ case 1405: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4187; + goto tr3984; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4186; - goto tr3100; -tr4183: + goto tr3983; + goto tr3324; +tr3980: { p--; {cs = stack[--top];goto _again;} } - goto st1571; -st1571: + goto st1563; +st1563: if ( ++p == pe ) - goto _test_eof1571; -case 1571: + goto _test_eof1563; +case 1563: goto st0; -tr4184: +tr3981: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1572; -st1572: + goto st1564; +st1564: if ( ++p == pe ) - goto _test_eof1572; -case 1572: + goto _test_eof1564; +case 1564: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98903,38 +96858,38 @@ case 1572: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1404; - case 32: goto st1404; - case 40: goto tr4179; - case 41: goto tr4180; - case 3082: goto tr4181; - case 3131: goto tr4182; - case 3338: goto tr4183; - case 3387: goto tr4183; - case 3594: goto tr4184; - case 3643: goto tr4185; + case 9: goto st1406; + case 32: goto st1406; + case 40: goto tr3976; + case 41: goto tr3977; + case 3082: goto tr3978; + case 3131: goto tr3979; + case 3338: goto tr3980; + case 3387: goto tr3980; + case 3594: goto tr3981; + case 3643: goto tr3982; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4174; + goto tr3971; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4174; + goto tr3971; } else - goto tr4174; - goto tr3100; -tr4185: + goto tr3971; + goto tr3324; +tr3982: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1573; -st1573: + goto st1565; +st1565: if ( ++p == pe ) - goto _test_eof1573; -case 1573: + goto _test_eof1565; +case 1565: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -98954,23 +96909,23 @@ case 1573: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4187; + goto tr3984; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4186; - goto tr3100; -tr4176: + goto tr3983; + goto tr3324; +tr3973: { s->buffer_length = 0; } - goto st1406; -tr4188: + goto st1408; +tr3985: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1406; -tr4170: + goto st1408; +tr3967: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -98983,11 +96938,11 @@ tr4170: { s->buffer_length = 0; } - goto st1406; -st1406: + goto st1408; +st1408: if ( ++p == pe ) - goto _test_eof1406; -case 1406: + goto _test_eof1408; +case 1408: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99007,23 +96962,23 @@ case 1406: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4189; + goto tr3986; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4188; + goto tr3985; goto tr77; -tr4164: +tr3961: { s->buffer_length = 0; } - goto st1407; -tr4190: + goto st1409; +tr3987: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1407; -tr4158: + goto st1409; +tr3955: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -99036,11 +96991,11 @@ tr4158: { s->buffer_length = 0; } - goto st1407; -st1407: + goto st1409; +st1409: if ( ++p == pe ) - goto _test_eof1407; -case 1407: + goto _test_eof1409; +case 1409: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99060,23 +97015,23 @@ case 1407: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4191; + goto tr3988; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4190; + goto tr3987; goto tr77; -tr4152: +tr3949: { s->buffer_length = 0; } - goto st1408; -tr4192: + goto st1410; +tr3989: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1408; -tr4146: + goto st1410; +tr3943: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -99090,11 +97045,11 @@ tr4146: { s->buffer_length = 0; } - goto st1408; -st1408: + goto st1410; +st1410: if ( ++p == pe ) - goto _test_eof1408; -case 1408: + goto _test_eof1410; +case 1410: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99114,18 +97069,18 @@ case 1408: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4193; + goto tr3990; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4192; + goto tr3989; goto tr77; -st1409: +st1411: if ( ++p == pe ) - goto _test_eof1409; -case 1409: + goto _test_eof1411; +case 1411: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4194; - goto tr2429; -tr4194: + goto tr3991; + goto tr2653; +tr3991: { s->number64 = 0; } @@ -99143,8 +97098,8 @@ tr4194: p--; {goto st319;} } } - goto st1410; -tr4198: + goto st1412; +tr3995: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99159,11 +97114,11 @@ tr4198: p--; {goto st319;} } } - goto st1410; -st1410: + goto st1412; +st1412: if ( ++p == pe ) - goto _test_eof1410; -case 1410: + goto _test_eof1412; +case 1412: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99177,17 +97132,17 @@ case 1410: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4195; - case 32: goto tr4195; - case 40: goto tr4196; - case 41: goto tr4197; - case 2058: goto tr4199; - case 2107: goto tr4200; + case 9: goto tr3992; + case 32: goto tr3992; + case 40: goto tr3993; + case 41: goto tr3994; + case 2058: goto tr3996; + case 2107: goto tr3997; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4198; - goto tr2429; -tr4202: + goto tr3995; + goto tr2653; +tr3999: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -99195,8 +97150,8 @@ tr4202: } s->multiline = true; } - goto st1411; -tr4203: + goto st1413; +tr4000: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -99204,13 +97159,13 @@ tr4203: } s->multiline = false; } - goto st1411; -tr4205: + goto st1413; +tr4002: { s->line_counter++; } - goto st1411; -tr4210: + goto st1413; +tr4007: { s->buffer[s->buffer_length++] = 0; @@ -99220,15 +97175,15 @@ tr4210: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1411; goto _out;} + {p++; cs = 1413; goto _out;} } } } { s->line_counter++; } - goto st1411; -tr4195: + goto st1413; +tr3992: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99239,8 +97194,8 @@ tr4195: p--; {goto st319;} } } - goto st1411; -tr4196: + goto st1413; +tr3993: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99258,8 +97213,8 @@ tr4196: } s->multiline = true; } - goto st1411; -tr4197: + goto st1413; +tr3994: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99277,8 +97232,8 @@ tr4197: } s->multiline = false; } - goto st1411; -tr4199: + goto st1413; +tr3996: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99292,11 +97247,11 @@ tr4199: { s->line_counter++; } - goto st1411; -st1411: + goto st1413; +st1413: if ( ++p == pe ) - goto _test_eof1411; -case 1411: + goto _test_eof1413; +case 1413: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99310,18 +97265,18 @@ case 1411: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1411; - case 32: goto st1411; - case 40: goto tr4202; - case 41: goto tr4203; - case 46: goto tr4204; - case 2058: goto tr4205; - case 2107: goto tr4206; + case 9: goto st1413; + case 32: goto st1413; + case 40: goto tr3999; + case 41: goto tr4000; + case 46: goto tr4001; + case 2058: goto tr4002; + case 2107: goto tr4003; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4204; - goto tr2406; -tr4208: + goto tr4001; + goto tr2630; +tr4005: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -99330,8 +97285,8 @@ tr4208: p--; {goto st319;} } } - goto st1412; -tr4204: + goto st1414; +tr4001: { s->buffer_length = 0; } @@ -99343,26 +97298,26 @@ tr4204: p--; {goto st319;} } } - goto st1412; -st1412: + goto st1414; +st1414: if ( ++p == pe ) - goto _test_eof1412; -case 1412: + goto _test_eof1414; +case 1414: switch( (*p) ) { - case 32: goto tr4207; - case 46: goto tr4208; - case 59: goto tr4207; + case 32: goto tr4004; + case 46: goto tr4005; + case 59: goto tr4004; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr4207; + goto tr4004; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4208; + goto tr4005; } else - goto tr4207; - goto tr2406; -tr4207: + goto tr4004; + goto tr2630; +tr4004: { s->buffer[s->buffer_length] = 0; @@ -99382,25 +97337,25 @@ tr4207: { p--; {cs = stack[--top];goto _again;} } - goto st1574; -st1574: + goto st1566; +st1566: if ( ++p == pe ) - goto _test_eof1574; -case 1574: + goto _test_eof1566; +case 1566: goto st0; -tr4206: +tr4003: { s->buffer_length = 0; } - goto st1413; -tr4209: + goto st1415; +tr4006: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1413; -tr4200: + goto st1415; +tr3997: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99414,11 +97369,11 @@ tr4200: { s->buffer_length = 0; } - goto st1413; -st1413: + goto st1415; +st1415: if ( ++p == pe ) - goto _test_eof1413; -case 1413: + goto _test_eof1415; +case 1415: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99438,18 +97393,18 @@ case 1413: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4210; + goto tr4007; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4209; + goto tr4006; goto tr77; -st1414: +st1416: if ( ++p == pe ) - goto _test_eof1414; -case 1414: + goto _test_eof1416; +case 1416: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4211; - goto tr2429; -tr4211: + goto tr4008; + goto tr2653; +tr4008: { s->number64 = 0; } @@ -99467,8 +97422,8 @@ tr4211: p--; {goto st319;} } } - goto st1415; -tr4215: + goto st1417; +tr4012: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99483,11 +97438,11 @@ tr4215: p--; {goto st319;} } } - goto st1415; -st1415: + goto st1417; +st1417: if ( ++p == pe ) - goto _test_eof1415; -case 1415: + goto _test_eof1417; +case 1417: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99501,17 +97456,17 @@ case 1415: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4212; - case 32: goto tr4212; - case 40: goto tr4213; - case 41: goto tr4214; - case 2058: goto tr4216; - case 2107: goto tr4217; + case 9: goto tr4009; + case 32: goto tr4009; + case 40: goto tr4010; + case 41: goto tr4011; + case 2058: goto tr4013; + case 2107: goto tr4014; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4215; - goto tr2429; -tr4219: + goto tr4012; + goto tr2653; +tr4016: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -99519,8 +97474,8 @@ tr4219: } s->multiline = true; } - goto st1416; -tr4220: + goto st1418; +tr4017: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -99528,13 +97483,13 @@ tr4220: } s->multiline = false; } - goto st1416; -tr4222: + goto st1418; +tr4019: { s->line_counter++; } - goto st1416; -tr4236: + goto st1418; +tr4033: { s->buffer[s->buffer_length++] = 0; @@ -99544,15 +97499,15 @@ tr4236: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1416; goto _out;} + {p++; cs = 1418; goto _out;} } } } { s->line_counter++; } - goto st1416; -tr4212: + goto st1418; +tr4009: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99563,8 +97518,8 @@ tr4212: p--; {goto st319;} } } - goto st1416; -tr4213: + goto st1418; +tr4010: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99582,8 +97537,8 @@ tr4213: } s->multiline = true; } - goto st1416; -tr4214: + goto st1418; +tr4011: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99601,8 +97556,8 @@ tr4214: } s->multiline = false; } - goto st1416; -tr4216: + goto st1418; +tr4013: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99616,11 +97571,11 @@ tr4216: { s->line_counter++; } - goto st1416; -st1416: + goto st1418; +st1418: if ( ++p == pe ) - goto _test_eof1416; -case 1416: + goto _test_eof1418; +case 1418: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99634,23 +97589,23 @@ case 1416: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1416; - case 32: goto st1416; - case 40: goto tr4219; - case 41: goto tr4220; - case 2058: goto tr4222; - case 2107: goto tr4223; + case 9: goto st1418; + case 32: goto st1418; + case 40: goto tr4016; + case 41: goto tr4017; + case 2058: goto tr4019; + case 2107: goto tr4020; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4221; + goto tr4018; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4221; + goto tr4018; } else - goto tr4221; - goto tr3100; -tr4221: + goto tr4018; + goto tr3324; +tr4018: { s->item_length = 0; } @@ -99662,40 +97617,40 @@ tr4221: p--; {goto st319;} } } - goto st1417; -st1417: + goto st1419; +st1419: if ( ++p == pe ) - goto _test_eof1417; -case 1417: + goto _test_eof1419; +case 1419: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4224; + goto tr4021; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4224; + goto tr4021; } else - goto tr4224; - goto tr3100; -tr4224: + goto tr4021; + goto tr3324; +tr4021: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1418; -st1418: + goto st1420; +st1420: if ( ++p == pe ) - goto _test_eof1418; -case 1418: + goto _test_eof1420; +case 1420: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4225; + goto tr4022; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4225; + goto tr4022; } else - goto tr4225; - goto tr3100; -tr4225: + goto tr4022; + goto tr3324; +tr4022: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; @@ -99704,52 +97659,52 @@ tr4225: p--; {goto st319;} } } - goto st1419; -st1419: + goto st1421; +st1421: if ( ++p == pe ) - goto _test_eof1419; -case 1419: + goto _test_eof1421; +case 1421: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4226; + goto tr4023; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4226; + goto tr4023; } else - goto tr4226; - goto tr3100; -tr4226: + goto tr4023; + goto tr3324; +tr4023: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1420; -st1420: + goto st1422; +st1422: if ( ++p == pe ) - goto _test_eof1420; -case 1420: + goto _test_eof1422; +case 1422: if ( (*p) == 58 ) - goto tr4228; - goto tr4227; -tr4228: + goto tr4025; + goto tr4024; +tr4025: { s->item_length++; } - goto st1421; -st1421: + goto st1423; +st1423: if ( ++p == pe ) - goto _test_eof1421; -case 1421: + goto _test_eof1423; +case 1423: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4229; + goto tr4026; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4229; + goto tr4026; } else - goto tr4229; - goto tr3100; -tr4229: + goto tr4026; + goto tr3324; +tr4026: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; @@ -99758,40 +97713,40 @@ tr4229: p--; {goto st319;} } } - goto st1422; -st1422: + goto st1424; +st1424: if ( ++p == pe ) - goto _test_eof1422; -case 1422: + goto _test_eof1424; +case 1424: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4230; + goto tr4027; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4230; + goto tr4027; } else - goto tr4230; - goto tr3100; -tr4230: + goto tr4027; + goto tr3324; +tr4027: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1423; -st1423: + goto st1425; +st1425: if ( ++p == pe ) - goto _test_eof1423; -case 1423: + goto _test_eof1425; +case 1425: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4231; + goto tr4028; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4231; + goto tr4028; } else - goto tr4231; - goto tr3100; -tr4231: + goto tr4028; + goto tr3324; +tr4028: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; @@ -99800,42 +97755,42 @@ tr4231: p--; {goto st319;} } } - goto st1424; -st1424: + goto st1426; +st1426: if ( ++p == pe ) - goto _test_eof1424; -case 1424: + goto _test_eof1426; +case 1426: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4232; + goto tr4029; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4232; + goto tr4029; } else - goto tr4232; - goto tr3100; -tr4232: + goto tr4029; + goto tr3324; +tr4029: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1425; -st1425: + goto st1427; +st1427: if ( ++p == pe ) - goto _test_eof1425; -case 1425: + goto _test_eof1427; +case 1427: switch( (*p) ) { - case 32: goto tr4234; - case 58: goto tr4228; - case 59: goto tr4234; + case 32: goto tr4031; + case 58: goto tr4025; + case 59: goto tr4031; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4234; + goto tr4031; } else if ( (*p) >= 9 ) - goto tr4234; - goto tr4233; -tr4234: + goto tr4031; + goto tr4030; +tr4031: { s->item_length++; } @@ -99848,25 +97803,25 @@ tr4234: { p--; {cs = stack[--top];goto _again;} } - goto st1575; -st1575: + goto st1567; +st1567: if ( ++p == pe ) - goto _test_eof1575; -case 1575: + goto _test_eof1567; +case 1567: goto st0; -tr4223: +tr4020: { s->buffer_length = 0; } - goto st1426; -tr4235: + goto st1428; +tr4032: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1426; -tr4217: + goto st1428; +tr4014: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99880,11 +97835,11 @@ tr4217: { s->buffer_length = 0; } - goto st1426; -st1426: + goto st1428; +st1428: if ( ++p == pe ) - goto _test_eof1426; -case 1426: + goto _test_eof1428; +case 1428: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99904,24 +97859,24 @@ case 1426: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4236; + goto tr4033; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4235; + goto tr4032; goto tr77; -st1427: +st1429: if ( ++p == pe ) - goto _test_eof1427; -case 1427: + goto _test_eof1429; +case 1429: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4237; + goto tr4034; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4237; + goto tr4034; } else - goto tr4237; - goto tr3100; -tr4237: + goto tr4034; + goto tr3324; +tr4034: { s->item_length = 0; } @@ -99933,52 +97888,52 @@ tr4237: p--; {goto st319;} } } - goto st1428; -st1428: + goto st1430; +st1430: if ( ++p == pe ) - goto _test_eof1428; -case 1428: + goto _test_eof1430; +case 1430: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4238; + goto tr4035; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4238; + goto tr4035; } else - goto tr4238; - goto tr3100; -tr4238: + goto tr4035; + goto tr3324; +tr4035: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1429; -st1429: + goto st1431; +st1431: if ( ++p == pe ) - goto _test_eof1429; -case 1429: + goto _test_eof1431; +case 1431: if ( (*p) == 45 ) - goto tr4240; - goto tr4239; -tr4240: + goto tr4037; + goto tr4036; +tr4037: { s->item_length++; } - goto st1430; -st1430: + goto st1432; +st1432: if ( ++p == pe ) - goto _test_eof1430; -case 1430: + goto _test_eof1432; +case 1432: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4241; + goto tr4038; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4241; + goto tr4038; } else - goto tr4241; - goto tr3100; -tr4241: + goto tr4038; + goto tr3324; +tr4038: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; @@ -99987,42 +97942,42 @@ tr4241: p--; {goto st319;} } } - goto st1431; -st1431: + goto st1433; +st1433: if ( ++p == pe ) - goto _test_eof1431; -case 1431: + goto _test_eof1433; +case 1433: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4242; + goto tr4039; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4242; + goto tr4039; } else - goto tr4242; - goto tr3100; -tr4242: + goto tr4039; + goto tr3324; +tr4039: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1432; -st1432: + goto st1434; +st1434: if ( ++p == pe ) - goto _test_eof1432; -case 1432: + goto _test_eof1434; +case 1434: switch( (*p) ) { - case 32: goto tr4243; - case 45: goto tr4240; - case 59: goto tr4243; + case 32: goto tr4040; + case 45: goto tr4037; + case 59: goto tr4040; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4243; + goto tr4040; } else if ( (*p) >= 9 ) - goto tr4243; - goto tr4239; -tr4243: + goto tr4040; + goto tr4036; +tr4040: { s->item_length++; } @@ -100035,26 +97990,26 @@ tr4243: { p--; {cs = stack[--top];goto _again;} } - goto st1576; -st1576: + goto st1568; +st1568: if ( ++p == pe ) - goto _test_eof1576; -case 1576: + goto _test_eof1568; +case 1568: goto st0; -st1433: +st1435: if ( ++p == pe ) - goto _test_eof1433; -case 1433: + goto _test_eof1435; +case 1435: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4244; + goto tr4041; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4244; + goto tr4041; } else - goto tr4244; - goto tr3100; -tr4244: + goto tr4041; + goto tr3324; +tr4041: { s->item_length = 0; } @@ -100066,52 +98021,52 @@ tr4244: p--; {goto st319;} } } - goto st1434; -st1434: + goto st1436; +st1436: if ( ++p == pe ) - goto _test_eof1434; -case 1434: + goto _test_eof1436; +case 1436: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4245; + goto tr4042; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4245; + goto tr4042; } else - goto tr4245; - goto tr3100; -tr4245: + goto tr4042; + goto tr3324; +tr4042: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1435; -st1435: + goto st1437; +st1437: if ( ++p == pe ) - goto _test_eof1435; -case 1435: + goto _test_eof1437; +case 1437: if ( (*p) == 45 ) - goto tr4246; - goto tr4239; -tr4246: + goto tr4043; + goto tr4036; +tr4043: { s->item_length++; } - goto st1436; -st1436: + goto st1438; +st1438: if ( ++p == pe ) - goto _test_eof1436; -case 1436: + goto _test_eof1438; +case 1438: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4247; + goto tr4044; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4247; + goto tr4044; } else - goto tr4247; - goto tr3100; -tr4247: + goto tr4044; + goto tr3324; +tr4044: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; @@ -100120,42 +98075,42 @@ tr4247: p--; {goto st319;} } } - goto st1437; -st1437: + goto st1439; +st1439: if ( ++p == pe ) - goto _test_eof1437; -case 1437: + goto _test_eof1439; +case 1439: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4248; + goto tr4045; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4248; + goto tr4045; } else - goto tr4248; - goto tr3100; -tr4248: + goto tr4045; + goto tr3324; +tr4045: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1438; -st1438: + goto st1440; +st1440: if ( ++p == pe ) - goto _test_eof1438; -case 1438: + goto _test_eof1440; +case 1440: switch( (*p) ) { - case 32: goto tr4249; - case 45: goto tr4246; - case 59: goto tr4249; + case 32: goto tr4046; + case 45: goto tr4043; + case 59: goto tr4046; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4249; + goto tr4046; } else if ( (*p) >= 9 ) - goto tr4249; - goto tr4239; -tr4249: + goto tr4046; + goto tr4036; +tr4046: { s->item_length++; } @@ -100168,20 +98123,20 @@ tr4249: { p--; {cs = stack[--top];goto _again;} } - goto st1577; -st1577: + goto st1569; +st1569: if ( ++p == pe ) - goto _test_eof1577; -case 1577: + goto _test_eof1569; +case 1569: goto st0; -st1439: +st1441: if ( ++p == pe ) - goto _test_eof1439; -case 1439: + goto _test_eof1441; +case 1441: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4250; - goto tr2429; -tr4250: + goto tr4047; + goto tr2653; +tr4047: { s->number64 = 0; } @@ -100199,8 +98154,8 @@ tr4250: p--; {goto st319;} } } - goto st1440; -tr4254: + goto st1442; +tr4051: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -100215,11 +98170,11 @@ tr4254: p--; {goto st319;} } } - goto st1440; -st1440: + goto st1442; +st1442: if ( ++p == pe ) - goto _test_eof1440; -case 1440: + goto _test_eof1442; +case 1442: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100233,17 +98188,17 @@ case 1440: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4251; - case 32: goto tr4251; - case 40: goto tr4252; - case 41: goto tr4253; - case 2058: goto tr4255; - case 2107: goto tr4256; + case 9: goto tr4048; + case 32: goto tr4048; + case 40: goto tr4049; + case 41: goto tr4050; + case 2058: goto tr4052; + case 2107: goto tr4053; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4254; - goto tr2429; -tr4258: + goto tr4051; + goto tr2653; +tr4055: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -100251,8 +98206,8 @@ tr4258: } s->multiline = true; } - goto st1441; -tr4259: + goto st1443; +tr4056: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -100260,13 +98215,13 @@ tr4259: } s->multiline = false; } - goto st1441; -tr4261: + goto st1443; +tr4058: { s->line_counter++; } - goto st1441; -tr4279: + goto st1443; +tr4076: { s->buffer[s->buffer_length++] = 0; @@ -100276,15 +98231,15 @@ tr4279: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1441; goto _out;} + {p++; cs = 1443; goto _out;} } } } { s->line_counter++; } - goto st1441; -tr4251: + goto st1443; +tr4048: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100295,8 +98250,8 @@ tr4251: p--; {goto st319;} } } - goto st1441; -tr4252: + goto st1443; +tr4049: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100314,8 +98269,8 @@ tr4252: } s->multiline = true; } - goto st1441; -tr4253: + goto st1443; +tr4050: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100333,8 +98288,8 @@ tr4253: } s->multiline = false; } - goto st1441; -tr4255: + goto st1443; +tr4052: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100348,11 +98303,11 @@ tr4255: { s->line_counter++; } - goto st1441; -st1441: + goto st1443; +st1443: if ( ++p == pe ) - goto _test_eof1441; -case 1441: + goto _test_eof1443; +case 1443: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100366,17 +98321,17 @@ case 1441: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1441; - case 32: goto st1441; - case 40: goto tr4258; - case 41: goto tr4259; - case 2058: goto tr4261; - case 2107: goto tr4262; + case 9: goto st1443; + case 32: goto st1443; + case 40: goto tr4055; + case 41: goto tr4056; + case 2058: goto tr4058; + case 2107: goto tr4059; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4260; - goto tr2429; -tr4260: + goto tr4057; + goto tr2653; +tr4057: { s->number64 = 0; } @@ -100394,8 +98349,8 @@ tr4260: p--; {goto st319;} } } - goto st1442; -tr4266: + goto st1444; +tr4063: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -100410,11 +98365,11 @@ tr4266: p--; {goto st319;} } } - goto st1442; -st1442: + goto st1444; +st1444: if ( ++p == pe ) - goto _test_eof1442; -case 1442: + goto _test_eof1444; +case 1444: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100428,17 +98383,17 @@ case 1442: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4263; - case 32: goto tr4263; - case 40: goto tr4264; - case 41: goto tr4265; - case 2058: goto tr4267; - case 2107: goto tr4268; + case 9: goto tr4060; + case 32: goto tr4060; + case 40: goto tr4061; + case 41: goto tr4062; + case 2058: goto tr4064; + case 2107: goto tr4065; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4266; - goto tr2429; -tr4271: + goto tr4063; + goto tr2653; +tr4068: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -100446,8 +98401,8 @@ tr4271: } s->multiline = true; } - goto st1443; -tr4272: + goto st1445; +tr4069: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -100455,13 +98410,13 @@ tr4272: } s->multiline = false; } - goto st1443; -tr4273: + goto st1445; +tr4070: { s->line_counter++; } - goto st1443; -tr4277: + goto st1445; +tr4074: { s->buffer[s->buffer_length++] = 0; @@ -100471,15 +98426,15 @@ tr4277: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1443; goto _out;} + {p++; cs = 1445; goto _out;} } } } { s->line_counter++; } - goto st1443; -tr4263: + goto st1445; +tr4060: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100490,8 +98445,8 @@ tr4263: p--; {goto st319;} } } - goto st1443; -tr4264: + goto st1445; +tr4061: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100509,8 +98464,8 @@ tr4264: } s->multiline = true; } - goto st1443; -tr4265: + goto st1445; +tr4062: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100528,8 +98483,8 @@ tr4265: } s->multiline = false; } - goto st1443; -tr4267: + goto st1445; +tr4064: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100543,11 +98498,11 @@ tr4267: { s->line_counter++; } - goto st1443; -st1443: + goto st1445; +st1445: if ( ++p == pe ) - goto _test_eof1443; -case 1443: + goto _test_eof1445; +case 1445: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100561,62 +98516,62 @@ case 1443: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1443; - case 32: goto st1443; - case 40: goto tr4271; - case 41: goto tr4272; - case 2058: goto tr4273; - case 2107: goto tr4274; + case 9: goto st1445; + case 32: goto st1445; + case 40: goto tr4068; + case 41: goto tr4069; + case 2058: goto tr4070; + case 2107: goto tr4071; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4269; + goto tr4066; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4269; + goto tr4066; } else - goto tr4269; + goto tr4066; goto tr77; -tr4269: - { p--; {stack[top++] = 1444;goto st330;} } - goto st1444; -st1444: +tr4066: + { p--; {stack[top++] = 1446;goto st330;} } + goto st1446; +st1446: if ( ++p == pe ) - goto _test_eof1444; -case 1444: + goto _test_eof1446; +case 1446: switch( (*p) ) { - case 32: goto tr4275; - case 59: goto tr4275; + case 32: goto tr4072; + case 59: goto tr4072; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4275; + goto tr4072; } else if ( (*p) >= 9 ) - goto tr4275; + goto tr4072; goto tr77; -tr4275: +tr4072: { p--; {cs = stack[--top];goto _again;} } - goto st1578; -st1578: + goto st1570; +st1570: if ( ++p == pe ) - goto _test_eof1578; -case 1578: + goto _test_eof1570; +case 1570: goto st0; -tr4274: +tr4071: { s->buffer_length = 0; } - goto st1445; -tr4276: + goto st1447; +tr4073: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1445; -tr4268: + goto st1447; +tr4065: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100630,11 +98585,11 @@ tr4268: { s->buffer_length = 0; } - goto st1445; -st1445: + goto st1447; +st1447: if ( ++p == pe ) - goto _test_eof1445; -case 1445: + goto _test_eof1447; +case 1447: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100654,23 +98609,23 @@ case 1445: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4277; + goto tr4074; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4276; + goto tr4073; goto tr77; -tr4262: +tr4059: { s->buffer_length = 0; } - goto st1446; -tr4278: + goto st1448; +tr4075: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1446; -tr4256: + goto st1448; +tr4053: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100684,11 +98639,11 @@ tr4256: { s->buffer_length = 0; } - goto st1446; -st1446: + goto st1448; +st1448: if ( ++p == pe ) - goto _test_eof1446; -case 1446: + goto _test_eof1448; +case 1448: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100708,18 +98663,18 @@ case 1446: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4279; + goto tr4076; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4278; + goto tr4075; goto tr77; -st1447: +st1449: if ( ++p == pe ) - goto _test_eof1447; -case 1447: + goto _test_eof1449; +case 1449: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4280; - goto tr2429; -tr4280: + goto tr4077; + goto tr2653; +tr4077: { s->number64 = 0; } @@ -100737,8 +98692,8 @@ tr4280: p--; {goto st319;} } } - goto st1448; -tr4284: + goto st1450; +tr4081: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -100753,11 +98708,11 @@ tr4284: p--; {goto st319;} } } - goto st1448; -st1448: + goto st1450; +st1450: if ( ++p == pe ) - goto _test_eof1448; -case 1448: + goto _test_eof1450; +case 1450: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100771,17 +98726,17 @@ case 1448: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4281; - case 32: goto tr4281; - case 40: goto tr4282; - case 41: goto tr4283; - case 2058: goto tr4285; - case 2107: goto tr4286; + case 9: goto tr4078; + case 32: goto tr4078; + case 40: goto tr4079; + case 41: goto tr4080; + case 2058: goto tr4082; + case 2107: goto tr4083; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4284; - goto tr2429; -tr4289: + goto tr4081; + goto tr2653; +tr4086: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -100789,8 +98744,8 @@ tr4289: } s->multiline = true; } - goto st1449; -tr4290: + goto st1451; +tr4087: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -100798,13 +98753,13 @@ tr4290: } s->multiline = false; } - goto st1449; -tr4291: + goto st1451; +tr4088: { s->line_counter++; } - goto st1449; -tr4308: + goto st1451; +tr4105: { s->buffer[s->buffer_length++] = 0; @@ -100814,15 +98769,15 @@ tr4308: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1449; goto _out;} + {p++; cs = 1451; goto _out;} } } } { s->line_counter++; } - goto st1449; -tr4281: + goto st1451; +tr4078: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -100832,8 +98787,8 @@ tr4281: p--; {goto st319;} } } - goto st1449; -tr4282: + goto st1451; +tr4079: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -100850,8 +98805,8 @@ tr4282: } s->multiline = true; } - goto st1449; -tr4283: + goto st1451; +tr4080: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -100868,8 +98823,8 @@ tr4283: } s->multiline = false; } - goto st1449; -tr4285: + goto st1451; +tr4082: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -100882,11 +98837,11 @@ tr4285: { s->line_counter++; } - goto st1449; -st1449: + goto st1451; +st1451: if ( ++p == pe ) - goto _test_eof1449; -case 1449: + goto _test_eof1451; +case 1451: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100900,23 +98855,23 @@ case 1449: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1449; - case 32: goto st1449; - case 40: goto tr4289; - case 41: goto tr4290; - case 2058: goto tr4291; - case 2107: goto tr4292; + case 9: goto st1451; + case 32: goto st1451; + case 40: goto tr4086; + case 41: goto tr4087; + case 2058: goto tr4088; + case 2107: goto tr4089; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4287; + goto tr4084; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4287; + goto tr4084; } else - goto tr4287; + goto tr4084; goto tr77; -tr4287: +tr4084: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; @@ -100925,12 +98880,12 @@ tr4287: p--; {goto st319;} } } - { p--; {stack[top++] = 1450;goto st330;} } - goto st1450; -st1450: + { p--; {stack[top++] = 1452;goto st330;} } + goto st1452; +st1452: if ( ++p == pe ) - goto _test_eof1450; -case 1450: + goto _test_eof1452; +case 1452: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100944,15 +98899,15 @@ case 1450: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4293; - case 32: goto tr4293; - case 40: goto tr4294; - case 41: goto tr4295; - case 2058: goto tr4296; - case 2107: goto tr4297; + case 9: goto tr4090; + case 32: goto tr4090; + case 40: goto tr4091; + case 41: goto tr4092; + case 2058: goto tr4093; + case 2107: goto tr4094; } goto tr77; -tr4300: +tr4097: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -100960,8 +98915,8 @@ tr4300: } s->multiline = true; } - goto st1451; -tr4301: + goto st1453; +tr4098: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -100969,13 +98924,13 @@ tr4301: } s->multiline = false; } - goto st1451; -tr4302: + goto st1453; +tr4099: { s->line_counter++; } - goto st1451; -tr4306: + goto st1453; +tr4103: { s->buffer[s->buffer_length++] = 0; @@ -100985,15 +98940,15 @@ tr4306: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1451; goto _out;} + {p++; cs = 1453; goto _out;} } } } { s->line_counter++; } - goto st1451; -tr4293: + goto st1453; +tr4090: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -101007,8 +98962,8 @@ tr4293: p--; {goto st319;} } } - goto st1451; -tr4294: + goto st1453; +tr4091: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -101029,8 +98984,8 @@ tr4294: } s->multiline = true; } - goto st1451; -tr4295: + goto st1453; +tr4092: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -101051,8 +99006,8 @@ tr4295: } s->multiline = false; } - goto st1451; -tr4296: + goto st1453; +tr4093: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -101069,11 +99024,11 @@ tr4296: { s->line_counter++; } - goto st1451; -st1451: + goto st1453; +st1453: if ( ++p == pe ) - goto _test_eof1451; -case 1451: + goto _test_eof1453; +case 1453: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101087,62 +99042,62 @@ case 1451: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1451; - case 32: goto st1451; - case 40: goto tr4300; - case 41: goto tr4301; - case 2058: goto tr4302; - case 2107: goto tr4303; + case 9: goto st1453; + case 32: goto st1453; + case 40: goto tr4097; + case 41: goto tr4098; + case 2058: goto tr4099; + case 2107: goto tr4100; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4298; + goto tr4095; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4298; + goto tr4095; } else - goto tr4298; + goto tr4095; goto tr77; -tr4298: - { p--; {stack[top++] = 1452;goto st330;} } - goto st1452; -st1452: +tr4095: + { p--; {stack[top++] = 1454;goto st330;} } + goto st1454; +st1454: if ( ++p == pe ) - goto _test_eof1452; -case 1452: + goto _test_eof1454; +case 1454: switch( (*p) ) { - case 32: goto tr4304; - case 59: goto tr4304; + case 32: goto tr4101; + case 59: goto tr4101; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4304; + goto tr4101; } else if ( (*p) >= 9 ) - goto tr4304; + goto tr4101; goto tr77; -tr4304: +tr4101: { p--; {cs = stack[--top];goto _again;} } - goto st1579; -st1579: + goto st1571; +st1571: if ( ++p == pe ) - goto _test_eof1579; -case 1579: + goto _test_eof1571; +case 1571: goto st0; -tr4303: +tr4100: { s->buffer_length = 0; } - goto st1453; -tr4305: + goto st1455; +tr4102: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1453; -tr4297: + goto st1455; +tr4094: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { @@ -101159,11 +99114,11 @@ tr4297: { s->buffer_length = 0; } - goto st1453; -st1453: + goto st1455; +st1455: if ( ++p == pe ) - goto _test_eof1453; -case 1453: + goto _test_eof1455; +case 1455: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -101183,23 +99138,23 @@ case 1453: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4306; + goto tr4103; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4305; + goto tr4102; goto tr77; -tr4292: +tr4089: { s->buffer_length = 0; } - goto st1454; -tr4307: + goto st1456; +tr4104: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1454; -tr4286: + goto st1456; +tr4083: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -101212,11 +99167,11 @@ tr4286: { s->buffer_length = 0; } - goto st1454; -st1454: + goto st1456; +st1456: if ( ++p == pe ) - goto _test_eof1454; -case 1454: + goto _test_eof1456; +case 1456: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -101236,18 +99191,18 @@ case 1454: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4308; + goto tr4105; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4307; + goto tr4104; goto tr77; -st1455: +st1457: if ( ++p == pe ) - goto _test_eof1455; -case 1455: + goto _test_eof1457; +case 1457: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4309; - goto tr2429; -tr4309: + goto tr4106; + goto tr2653; +tr4106: { s->number64 = 0; } @@ -101265,8 +99220,8 @@ tr4309: p--; {goto st319;} } } - goto st1456; -tr4313: + goto st1458; +tr4110: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -101281,11 +99236,11 @@ tr4313: p--; {goto st319;} } } - goto st1456; -st1456: + goto st1458; +st1458: if ( ++p == pe ) - goto _test_eof1456; -case 1456: + goto _test_eof1458; +case 1458: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101299,17 +99254,17 @@ case 1456: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4310; - case 32: goto tr4310; - case 40: goto tr4311; - case 41: goto tr4312; - case 2058: goto tr4314; - case 2107: goto tr4315; + case 9: goto tr4107; + case 32: goto tr4107; + case 40: goto tr4108; + case 41: goto tr4109; + case 2058: goto tr4111; + case 2107: goto tr4112; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4313; - goto tr2429; -tr4317: + goto tr4110; + goto tr2653; +tr4114: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -101317,8 +99272,8 @@ tr4317: } s->multiline = true; } - goto st1457; -tr4318: + goto st1459; +tr4115: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -101326,13 +99281,13 @@ tr4318: } s->multiline = false; } - goto st1457; -tr4320: + goto st1459; +tr4117: { s->line_counter++; } - goto st1457; -tr4325: + goto st1459; +tr4122: { s->buffer[s->buffer_length++] = 0; @@ -101342,15 +99297,15 @@ tr4325: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1457; goto _out;} + {p++; cs = 1459; goto _out;} } } } { s->line_counter++; } - goto st1457; -tr4310: + goto st1459; +tr4107: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -101361,8 +99316,8 @@ tr4310: p--; {goto st319;} } } - goto st1457; -tr4311: + goto st1459; +tr4108: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -101380,8 +99335,8 @@ tr4311: } s->multiline = true; } - goto st1457; -tr4312: + goto st1459; +tr4109: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -101399,8 +99354,8 @@ tr4312: } s->multiline = false; } - goto st1457; -tr4314: + goto st1459; +tr4111: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -101414,11 +99369,11 @@ tr4314: { s->line_counter++; } - goto st1457; -st1457: + goto st1459; +st1459: if ( ++p == pe ) - goto _test_eof1457; -case 1457: + goto _test_eof1459; +case 1459: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101432,88 +99387,88 @@ case 1457: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1457; - case 32: goto st1457; - case 40: goto tr4317; - case 41: goto tr4318; - case 42: goto tr4319; - case 92: goto tr4319; - case 95: goto tr4319; - case 2058: goto tr4320; - case 2107: goto tr4321; + case 9: goto st1459; + case 32: goto st1459; + case 40: goto tr4114; + case 41: goto tr4115; + case 42: goto tr4116; + case 92: goto tr4116; + case 95: goto tr4116; + case 2058: goto tr4117; + case 2107: goto tr4118; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4319; + goto tr4116; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4319; + goto tr4116; } else - goto tr4319; + goto tr4116; goto tr77; -tr4319: +tr4116: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1458;goto st321;} } - goto st1458; -st1458: + { p--; {stack[top++] = 1460;goto st321;} } + goto st1460; +st1460: if ( ++p == pe ) - goto _test_eof1458; -case 1458: + goto _test_eof1460; +case 1460: switch( (*p) ) { - case 32: goto tr4322; - case 59: goto tr4322; + case 32: goto tr4119; + case 59: goto tr4119; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4322; + goto tr4119; } else if ( (*p) >= 9 ) - goto tr4322; + goto tr4119; goto tr77; -tr4322: +tr4119: { rdata_tail += s->dname_tmp_length; } - { p--; {stack[top++] = 1459;goto st636;} } - goto st1459; -st1459: + { p--; {stack[top++] = 1461;goto st807;} } + goto st1461; +st1461: if ( ++p == pe ) - goto _test_eof1459; -case 1459: + goto _test_eof1461; +case 1461: switch( (*p) ) { - case 32: goto tr4323; - case 59: goto tr4323; + case 32: goto tr4120; + case 59: goto tr4120; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4323; + goto tr4120; } else if ( (*p) >= 9 ) - goto tr4323; + goto tr4120; goto tr77; -tr4323: +tr4120: { p--; {cs = stack[--top];goto _again;} } - goto st1580; -st1580: + goto st1572; +st1572: if ( ++p == pe ) - goto _test_eof1580; -case 1580: + goto _test_eof1572; +case 1572: goto st0; -tr4321: +tr4118: { s->buffer_length = 0; } - goto st1460; -tr4324: + goto st1462; +tr4121: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1460; -tr4315: + goto st1462; +tr4112: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -101527,11 +99482,11 @@ tr4315: { s->buffer_length = 0; } - goto st1460; -st1460: + goto st1462; +st1462: if ( ++p == pe ) - goto _test_eof1460; -case 1460: + goto _test_eof1462; +case 1462: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -101551,41 +99506,26 @@ case 1460: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4325; + goto tr4122; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4324; + goto tr4121; goto tr77; -st1461: - if ( ++p == pe ) - goto _test_eof1461; -case 1461: - switch( (*p) ) { - case 67: goto st1462; - case 84: goto st1478; - case 99: goto st1462; - case 116: goto st1478; - } - goto tr3373; -st1462: - if ( ++p == pe ) - goto _test_eof1462; -case 1462: - switch( (*p) ) { - case 68: goto st1463; - case 83: goto st1474; - case 100: goto st1463; - case 115: goto st1474; - } - goto tr3373; st1463: if ( ++p == pe ) goto _test_eof1463; case 1463: - switch( (*p) ) { - case 83: goto st1464; - case 115: goto st1464; - } - goto tr3373; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr4123; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr4123; + } else + goto tr4123; + goto tr77; +tr4123: + { p--; {stack[top++] = 1464;goto st388;} } + goto st1464; st1464: if ( ++p == pe ) goto _test_eof1464; @@ -101603,15 +99543,15 @@ case 1464: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4331; - case 32: goto tr4331; - case 40: goto tr4332; - case 41: goto tr4333; - case 2058: goto tr4334; - case 2107: goto tr4335; + case 9: goto st1465; + case 32: goto st1465; + case 40: goto tr4125; + case 41: goto tr4126; + case 2058: goto tr4127; + case 2107: goto tr4128; } - goto tr3373; -tr4337: + goto tr77; +tr4125: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -101620,7 +99560,7 @@ tr4337: s->multiline = true; } goto st1465; -tr4338: +tr4126: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -101629,12 +99569,12 @@ tr4338: s->multiline = false; } goto st1465; -tr4340: +tr4127: { s->line_counter++; } goto st1465; -tr4366: +tr4154: { s->buffer[s->buffer_length++] = 0; @@ -101652,129 +99592,6 @@ tr4366: s->line_counter++; } goto st1465; -tr4379: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } - goto st1465; -tr4380: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1465; -tr4381: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1465; -tr4383: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } - { - s->line_counter++; - } - goto st1465; -tr4331: - { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } - goto st1465; -tr4332: - { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1465; -tr4333: - { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1465; -tr4334: - { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } - { - s->line_counter++; - } - goto st1465; -tr4370: - { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } - goto st1465; -tr4371: - { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = true; - } - goto st1465; -tr4372: - { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; - } - goto st1465; -tr4373: - { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } - { - s->line_counter++; - } - goto st1465; st1465: if ( ++p == pe ) goto _test_eof1465; @@ -101794,22 +99611,22 @@ case 1465: switch( _widec ) { case 9: goto st1465; case 32: goto st1465; - case 40: goto tr4337; - case 41: goto tr4338; - case 2058: goto tr4340; - case 2107: goto tr4341; + case 40: goto tr4125; + case 41: goto tr4126; + case 2058: goto tr4127; + case 2107: goto tr4128; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4339; + goto tr4129; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4339; + goto tr4129; } else - goto tr4339; + goto tr4129; goto tr77; -tr4339: - { p--; {stack[top++] = 1466;goto st892;} } +tr4129: + { p--; {stack[top++] = 1466;goto st1063;} } goto st1466; st1466: if ( ++p == pe ) @@ -101830,13 +99647,13 @@ case 1466: switch( _widec ) { case 9: goto st1467; case 32: goto st1467; - case 40: goto tr4343; - case 41: goto tr4344; - case 2058: goto tr4345; - case 2107: goto tr4346; + case 40: goto tr4131; + case 41: goto tr4132; + case 2058: goto tr4133; + case 2107: goto tr4134; } goto tr77; -tr4343: +tr4131: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -101845,7 +99662,7 @@ tr4343: s->multiline = true; } goto st1467; -tr4344: +tr4132: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -101854,12 +99671,12 @@ tr4344: s->multiline = false; } goto st1467; -tr4345: +tr4133: { s->line_counter++; } goto st1467; -tr4364: +tr4152: { s->buffer[s->buffer_length++] = 0; @@ -101896,15 +99713,15 @@ case 1467: switch( _widec ) { case 9: goto st1467; case 32: goto st1467; - case 40: goto tr4343; - case 41: goto tr4344; - case 2058: goto tr4345; - case 2107: goto tr4346; + case 40: goto tr4131; + case 41: goto tr4132; + case 2058: goto tr4133; + case 2107: goto tr4134; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4347; - goto tr2429; -tr4347: + goto tr4135; + goto tr2653; +tr4135: { s->number64 = 0; } @@ -101923,7 +99740,7 @@ tr4347: } } goto st1468; -tr4351: +tr4139: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -101956,17 +99773,17 @@ case 1468: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4348; - case 32: goto tr4348; - case 40: goto tr4349; - case 41: goto tr4350; - case 2058: goto tr4352; - case 2107: goto tr4353; + case 9: goto tr4136; + case 32: goto tr4136; + case 40: goto tr4137; + case 41: goto tr4138; + case 2058: goto tr4140; + case 2107: goto tr4141; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4351; - goto tr2429; -tr4355: + goto tr4139; + goto tr2653; +tr4143: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); @@ -101975,7 +99792,7 @@ tr4355: s->multiline = true; } goto st1469; -tr4356: +tr4144: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); @@ -101984,12 +99801,12 @@ tr4356: s->multiline = false; } goto st1469; -tr4358: +tr4146: { s->line_counter++; } goto st1469; -tr4362: +tr4150: { s->buffer[s->buffer_length++] = 0; @@ -102007,7 +99824,7 @@ tr4362: s->line_counter++; } goto st1469; -tr4348: +tr4136: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -102019,7 +99836,7 @@ tr4348: } } goto st1469; -tr4349: +tr4137: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -102038,7 +99855,7 @@ tr4349: s->multiline = true; } goto st1469; -tr4350: +tr4138: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -102057,7 +99874,7 @@ tr4350: s->multiline = false; } goto st1469; -tr4352: +tr4140: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -102091,24 +99908,24 @@ case 1469: switch( _widec ) { case 9: goto st1469; case 32: goto st1469; - case 40: goto tr4355; - case 41: goto tr4356; - case 42: goto tr4357; - case 92: goto tr4357; - case 95: goto tr4357; - case 2058: goto tr4358; - case 2107: goto tr4359; + case 40: goto tr4143; + case 41: goto tr4144; + case 42: goto tr4145; + case 92: goto tr4145; + case 95: goto tr4145; + case 2058: goto tr4146; + case 2107: goto tr4147; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4357; + goto tr4145; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4357; + goto tr4145; } else - goto tr4357; + goto tr4145; goto tr77; -tr4357: +tr4145: { s->dname = rdata_tail; } @@ -102119,41 +99936,41 @@ st1470: goto _test_eof1470; case 1470: switch( (*p) ) { - case 32: goto tr4360; - case 59: goto tr4360; + case 32: goto tr4148; + case 59: goto tr4148; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4360; + goto tr4148; } else if ( (*p) >= 9 ) - goto tr4360; + goto tr4148; goto tr77; -tr4360: +tr4148: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1581; -st1581: + goto st1573; +st1573: if ( ++p == pe ) - goto _test_eof1581; -case 1581: + goto _test_eof1573; +case 1573: goto st0; -tr4359: +tr4147: { s->buffer_length = 0; } goto st1471; -tr4361: +tr4149: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st1471; -tr4353: +tr4141: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -102191,16 +100008,16 @@ case 1471: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4362; + goto tr4150; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4361; + goto tr4149; goto tr77; -tr4346: +tr4134: { s->buffer_length = 0; } goto st1472; -tr4363: +tr4151: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -102230,49 +100047,22 @@ case 1472: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4364; + goto tr4152; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4363; + goto tr4151; goto tr77; -tr4341: +tr4128: { s->buffer_length = 0; } goto st1473; -tr4365: +tr4153: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st1473; -tr4384: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } - { - s->buffer_length = 0; - } - goto st1473; -tr4335: - { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1473; -tr4374: - { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } - { - s->buffer_length = 0; - } - goto st1473; st1473: if ( ++p == pe ) goto _test_eof1473; @@ -102296,160 +100086,12 @@ case 1473: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4366; + goto tr4154; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4365; + goto tr4153; goto tr77; -st1474: - if ( ++p == pe ) - goto _test_eof1474; -case 1474: - switch( (*p) ) { - case 89: goto st1475; - case 121: goto st1475; - } - goto tr3373; -st1475: - if ( ++p == pe ) - goto _test_eof1475; -case 1475: - switch( (*p) ) { - case 78: goto st1476; - case 110: goto st1476; - } - goto tr3373; -st1476: - if ( ++p == pe ) - goto _test_eof1476; -case 1476: - switch( (*p) ) { - case 67: goto st1477; - case 99: goto st1477; - } - goto tr3373; -st1477: - if ( ++p == pe ) - goto _test_eof1477; -case 1477: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr4370; - case 32: goto tr4370; - case 40: goto tr4371; - case 41: goto tr4372; - case 2058: goto tr4373; - case 2107: goto tr4374; - } - goto tr3373; -st1478: - if ( ++p == pe ) - goto _test_eof1478; -case 1478: - switch( (*p) ) { - case 89: goto st1479; - case 121: goto st1479; - } - goto tr3373; -st1479: - if ( ++p == pe ) - goto _test_eof1479; -case 1479: - switch( (*p) ) { - case 80: goto st1480; - case 112: goto st1480; - } - goto tr3373; -st1480: - if ( ++p == pe ) - goto _test_eof1480; -case 1480: - switch( (*p) ) { - case 69: goto st1481; - case 101: goto st1481; - } - goto tr3373; -st1481: - if ( ++p == pe ) - goto _test_eof1481; -case 1481: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4378; - goto tr3867; -tr4378: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } - } - goto st1482; -tr4382: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } - } - goto st1482; -st1482: - if ( ++p == pe ) - goto _test_eof1482; -case 1482: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr4379; - case 32: goto tr4379; - case 40: goto tr4380; - case 41: goto tr4381; - case 2058: goto tr4383; - case 2107: goto tr4384; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr4382; - goto tr3867; } - _test_eof1483: cs = 1483; goto _test_eof; + _test_eof1474: cs = 1474; goto _test_eof; _test_eof1: cs = 1; goto _test_eof; _test_eof2: cs = 2; goto _test_eof; _test_eof3: cs = 3; goto _test_eof; @@ -102463,7 +100105,7 @@ case 1482: _test_eof11: cs = 11; goto _test_eof; _test_eof12: cs = 12; goto _test_eof; _test_eof13: cs = 13; goto _test_eof; - _test_eof1484: cs = 1484; goto _test_eof; + _test_eof1475: cs = 1475; goto _test_eof; _test_eof14: cs = 14; goto _test_eof; _test_eof15: cs = 15; goto _test_eof; _test_eof16: cs = 16; goto _test_eof; @@ -102633,7 +100275,7 @@ case 1482: _test_eof180: cs = 180; goto _test_eof; _test_eof181: cs = 181; goto _test_eof; _test_eof182: cs = 182; goto _test_eof; - _test_eof1485: cs = 1485; goto _test_eof; + _test_eof1476: cs = 1476; goto _test_eof; _test_eof183: cs = 183; goto _test_eof; _test_eof184: cs = 184; goto _test_eof; _test_eof185: cs = 185; goto _test_eof; @@ -102644,7 +100286,7 @@ case 1482: _test_eof190: cs = 190; goto _test_eof; _test_eof191: cs = 191; goto _test_eof; _test_eof192: cs = 192; goto _test_eof; - _test_eof1486: cs = 1486; goto _test_eof; + _test_eof1477: cs = 1477; goto _test_eof; _test_eof193: cs = 193; goto _test_eof; _test_eof194: cs = 194; goto _test_eof; _test_eof195: cs = 195; goto _test_eof; @@ -102653,11 +100295,11 @@ case 1482: _test_eof198: cs = 198; goto _test_eof; _test_eof199: cs = 199; goto _test_eof; _test_eof200: cs = 200; goto _test_eof; - _test_eof1487: cs = 1487; goto _test_eof; + _test_eof1478: cs = 1478; goto _test_eof; _test_eof201: cs = 201; goto _test_eof; _test_eof202: cs = 202; goto _test_eof; _test_eof203: cs = 203; goto _test_eof; - _test_eof1488: cs = 1488; goto _test_eof; + _test_eof1479: cs = 1479; goto _test_eof; _test_eof204: cs = 204; goto _test_eof; _test_eof205: cs = 205; goto _test_eof; _test_eof206: cs = 206; goto _test_eof; @@ -102669,12 +100311,12 @@ case 1482: _test_eof212: cs = 212; goto _test_eof; _test_eof213: cs = 213; goto _test_eof; _test_eof214: cs = 214; goto _test_eof; - _test_eof1489: cs = 1489; goto _test_eof; + _test_eof1480: cs = 1480; goto _test_eof; _test_eof215: cs = 215; goto _test_eof; _test_eof216: cs = 216; goto _test_eof; _test_eof217: cs = 217; goto _test_eof; _test_eof218: cs = 218; goto _test_eof; - _test_eof1490: cs = 1490; goto _test_eof; + _test_eof1481: cs = 1481; goto _test_eof; _test_eof219: cs = 219; goto _test_eof; _test_eof220: cs = 220; goto _test_eof; _test_eof221: cs = 221; goto _test_eof; @@ -102694,7 +100336,7 @@ case 1482: _test_eof235: cs = 235; goto _test_eof; _test_eof236: cs = 236; goto _test_eof; _test_eof237: cs = 237; goto _test_eof; - _test_eof1491: cs = 1491; goto _test_eof; + _test_eof1482: cs = 1482; goto _test_eof; _test_eof238: cs = 238; goto _test_eof; _test_eof239: cs = 239; goto _test_eof; _test_eof240: cs = 240; goto _test_eof; @@ -102711,7 +100353,7 @@ case 1482: _test_eof251: cs = 251; goto _test_eof; _test_eof252: cs = 252; goto _test_eof; _test_eof253: cs = 253; goto _test_eof; - _test_eof1492: cs = 1492; goto _test_eof; + _test_eof1483: cs = 1483; goto _test_eof; _test_eof254: cs = 254; goto _test_eof; _test_eof255: cs = 255; goto _test_eof; _test_eof256: cs = 256; goto _test_eof; @@ -102777,13 +100419,13 @@ case 1482: _test_eof316: cs = 316; goto _test_eof; _test_eof317: cs = 317; goto _test_eof; _test_eof318: cs = 318; goto _test_eof; - _test_eof1493: cs = 1493; goto _test_eof; + _test_eof1484: cs = 1484; goto _test_eof; _test_eof319: cs = 319; goto _test_eof; _test_eof320: cs = 320; goto _test_eof; - _test_eof1494: cs = 1494; goto _test_eof; + _test_eof1485: cs = 1485; goto _test_eof; _test_eof321: cs = 321; goto _test_eof; _test_eof322: cs = 322; goto _test_eof; - _test_eof1495: cs = 1495; goto _test_eof; + _test_eof1486: cs = 1486; goto _test_eof; _test_eof323: cs = 323; goto _test_eof; _test_eof324: cs = 324; goto _test_eof; _test_eof325: cs = 325; goto _test_eof; @@ -102793,8 +100435,8 @@ case 1482: _test_eof329: cs = 329; goto _test_eof; _test_eof330: cs = 330; goto _test_eof; _test_eof331: cs = 331; goto _test_eof; - _test_eof1496: cs = 1496; goto _test_eof; - _test_eof1497: cs = 1497; goto _test_eof; + _test_eof1487: cs = 1487; goto _test_eof; + _test_eof1488: cs = 1488; goto _test_eof; _test_eof332: cs = 332; goto _test_eof; _test_eof333: cs = 333; goto _test_eof; _test_eof334: cs = 334; goto _test_eof; @@ -102810,7 +100452,7 @@ case 1482: _test_eof344: cs = 344; goto _test_eof; _test_eof345: cs = 345; goto _test_eof; _test_eof346: cs = 346; goto _test_eof; - _test_eof1498: cs = 1498; goto _test_eof; + _test_eof1489: cs = 1489; goto _test_eof; _test_eof347: cs = 347; goto _test_eof; _test_eof348: cs = 348; goto _test_eof; _test_eof349: cs = 349; goto _test_eof; @@ -102821,7 +100463,7 @@ case 1482: _test_eof354: cs = 354; goto _test_eof; _test_eof355: cs = 355; goto _test_eof; _test_eof356: cs = 356; goto _test_eof; - _test_eof1499: cs = 1499; goto _test_eof; + _test_eof1490: cs = 1490; goto _test_eof; _test_eof357: cs = 357; goto _test_eof; _test_eof358: cs = 358; goto _test_eof; _test_eof359: cs = 359; goto _test_eof; @@ -102836,7 +100478,7 @@ case 1482: _test_eof368: cs = 368; goto _test_eof; _test_eof369: cs = 369; goto _test_eof; _test_eof370: cs = 370; goto _test_eof; - _test_eof1500: cs = 1500; goto _test_eof; + _test_eof1491: cs = 1491; goto _test_eof; _test_eof371: cs = 371; goto _test_eof; _test_eof372: cs = 372; goto _test_eof; _test_eof373: cs = 373; goto _test_eof; @@ -102844,7 +100486,7 @@ case 1482: _test_eof375: cs = 375; goto _test_eof; _test_eof376: cs = 376; goto _test_eof; _test_eof377: cs = 377; goto _test_eof; - _test_eof1501: cs = 1501; goto _test_eof; + _test_eof1492: cs = 1492; goto _test_eof; _test_eof378: cs = 378; goto _test_eof; _test_eof379: cs = 379; goto _test_eof; _test_eof380: cs = 380; goto _test_eof; @@ -102854,23 +100496,21 @@ case 1482: _test_eof384: cs = 384; goto _test_eof; _test_eof385: cs = 385; goto _test_eof; _test_eof386: cs = 386; goto _test_eof; - _test_eof1502: cs = 1502; goto _test_eof; - _test_eof1503: cs = 1503; goto _test_eof; - _test_eof1504: cs = 1504; goto _test_eof; + _test_eof1493: cs = 1493; goto _test_eof; + _test_eof1494: cs = 1494; goto _test_eof; + _test_eof1495: cs = 1495; goto _test_eof; _test_eof387: cs = 387; goto _test_eof; _test_eof388: cs = 388; goto _test_eof; _test_eof389: cs = 389; goto _test_eof; + _test_eof1496: cs = 1496; goto _test_eof; _test_eof390: cs = 390; goto _test_eof; _test_eof391: cs = 391; goto _test_eof; _test_eof392: cs = 392; goto _test_eof; _test_eof393: cs = 393; goto _test_eof; _test_eof394: cs = 394; goto _test_eof; - _test_eof1505: cs = 1505; goto _test_eof; - _test_eof1506: cs = 1506; goto _test_eof; _test_eof395: cs = 395; goto _test_eof; _test_eof396: cs = 396; goto _test_eof; _test_eof397: cs = 397; goto _test_eof; - _test_eof1507: cs = 1507; goto _test_eof; _test_eof398: cs = 398; goto _test_eof; _test_eof399: cs = 399; goto _test_eof; _test_eof400: cs = 400; goto _test_eof; @@ -103039,34 +100679,28 @@ case 1482: _test_eof563: cs = 563; goto _test_eof; _test_eof564: cs = 564; goto _test_eof; _test_eof565: cs = 565; goto _test_eof; + _test_eof1497: cs = 1497; goto _test_eof; + _test_eof1498: cs = 1498; goto _test_eof; _test_eof566: cs = 566; goto _test_eof; _test_eof567: cs = 567; goto _test_eof; - _test_eof1508: cs = 1508; goto _test_eof; - _test_eof1509: cs = 1509; goto _test_eof; - _test_eof1510: cs = 1510; goto _test_eof; _test_eof568: cs = 568; goto _test_eof; + _test_eof1499: cs = 1499; goto _test_eof; _test_eof569: cs = 569; goto _test_eof; _test_eof570: cs = 570; goto _test_eof; _test_eof571: cs = 571; goto _test_eof; _test_eof572: cs = 572; goto _test_eof; - _test_eof1511: cs = 1511; goto _test_eof; _test_eof573: cs = 573; goto _test_eof; _test_eof574: cs = 574; goto _test_eof; _test_eof575: cs = 575; goto _test_eof; _test_eof576: cs = 576; goto _test_eof; - _test_eof1512: cs = 1512; goto _test_eof; - _test_eof1513: cs = 1513; goto _test_eof; - _test_eof1514: cs = 1514; goto _test_eof; _test_eof577: cs = 577; goto _test_eof; _test_eof578: cs = 578; goto _test_eof; - _test_eof1515: cs = 1515; goto _test_eof; _test_eof579: cs = 579; goto _test_eof; _test_eof580: cs = 580; goto _test_eof; _test_eof581: cs = 581; goto _test_eof; _test_eof582: cs = 582; goto _test_eof; _test_eof583: cs = 583; goto _test_eof; _test_eof584: cs = 584; goto _test_eof; - _test_eof1516: cs = 1516; goto _test_eof; _test_eof585: cs = 585; goto _test_eof; _test_eof586: cs = 586; goto _test_eof; _test_eof587: cs = 587; goto _test_eof; @@ -103127,8 +100761,6 @@ case 1482: _test_eof642: cs = 642; goto _test_eof; _test_eof643: cs = 643; goto _test_eof; _test_eof644: cs = 644; goto _test_eof; - _test_eof1517: cs = 1517; goto _test_eof; - _test_eof1518: cs = 1518; goto _test_eof; _test_eof645: cs = 645; goto _test_eof; _test_eof646: cs = 646; goto _test_eof; _test_eof647: cs = 647; goto _test_eof; @@ -103138,7 +100770,6 @@ case 1482: _test_eof651: cs = 651; goto _test_eof; _test_eof652: cs = 652; goto _test_eof; _test_eof653: cs = 653; goto _test_eof; - _test_eof1519: cs = 1519; goto _test_eof; _test_eof654: cs = 654; goto _test_eof; _test_eof655: cs = 655; goto _test_eof; _test_eof656: cs = 656; goto _test_eof; @@ -103224,24 +100855,32 @@ case 1482: _test_eof736: cs = 736; goto _test_eof; _test_eof737: cs = 737; goto _test_eof; _test_eof738: cs = 738; goto _test_eof; + _test_eof1500: cs = 1500; goto _test_eof; + _test_eof1501: cs = 1501; goto _test_eof; + _test_eof1502: cs = 1502; goto _test_eof; _test_eof739: cs = 739; goto _test_eof; _test_eof740: cs = 740; goto _test_eof; _test_eof741: cs = 741; goto _test_eof; _test_eof742: cs = 742; goto _test_eof; _test_eof743: cs = 743; goto _test_eof; + _test_eof1503: cs = 1503; goto _test_eof; _test_eof744: cs = 744; goto _test_eof; _test_eof745: cs = 745; goto _test_eof; _test_eof746: cs = 746; goto _test_eof; _test_eof747: cs = 747; goto _test_eof; + _test_eof1504: cs = 1504; goto _test_eof; + _test_eof1505: cs = 1505; goto _test_eof; + _test_eof1506: cs = 1506; goto _test_eof; _test_eof748: cs = 748; goto _test_eof; - _test_eof1520: cs = 1520; goto _test_eof; _test_eof749: cs = 749; goto _test_eof; + _test_eof1507: cs = 1507; goto _test_eof; _test_eof750: cs = 750; goto _test_eof; _test_eof751: cs = 751; goto _test_eof; _test_eof752: cs = 752; goto _test_eof; _test_eof753: cs = 753; goto _test_eof; _test_eof754: cs = 754; goto _test_eof; _test_eof755: cs = 755; goto _test_eof; + _test_eof1508: cs = 1508; goto _test_eof; _test_eof756: cs = 756; goto _test_eof; _test_eof757: cs = 757; goto _test_eof; _test_eof758: cs = 758; goto _test_eof; @@ -103302,6 +100941,8 @@ case 1482: _test_eof813: cs = 813; goto _test_eof; _test_eof814: cs = 814; goto _test_eof; _test_eof815: cs = 815; goto _test_eof; + _test_eof1509: cs = 1509; goto _test_eof; + _test_eof1510: cs = 1510; goto _test_eof; _test_eof816: cs = 816; goto _test_eof; _test_eof817: cs = 817; goto _test_eof; _test_eof818: cs = 818; goto _test_eof; @@ -103311,6 +100952,7 @@ case 1482: _test_eof822: cs = 822; goto _test_eof; _test_eof823: cs = 823; goto _test_eof; _test_eof824: cs = 824; goto _test_eof; + _test_eof1511: cs = 1511; goto _test_eof; _test_eof825: cs = 825; goto _test_eof; _test_eof826: cs = 826; goto _test_eof; _test_eof827: cs = 827; goto _test_eof; @@ -103339,7 +100981,6 @@ case 1482: _test_eof850: cs = 850; goto _test_eof; _test_eof851: cs = 851; goto _test_eof; _test_eof852: cs = 852; goto _test_eof; - _test_eof1521: cs = 1521; goto _test_eof; _test_eof853: cs = 853; goto _test_eof; _test_eof854: cs = 854; goto _test_eof; _test_eof855: cs = 855; goto _test_eof; @@ -103381,7 +101022,6 @@ case 1482: _test_eof891: cs = 891; goto _test_eof; _test_eof892: cs = 892; goto _test_eof; _test_eof893: cs = 893; goto _test_eof; - _test_eof1522: cs = 1522; goto _test_eof; _test_eof894: cs = 894; goto _test_eof; _test_eof895: cs = 895; goto _test_eof; _test_eof896: cs = 896; goto _test_eof; @@ -103390,10 +101030,8 @@ case 1482: _test_eof899: cs = 899; goto _test_eof; _test_eof900: cs = 900; goto _test_eof; _test_eof901: cs = 901; goto _test_eof; - _test_eof1523: cs = 1523; goto _test_eof; _test_eof902: cs = 902; goto _test_eof; _test_eof903: cs = 903; goto _test_eof; - _test_eof1524: cs = 1524; goto _test_eof; _test_eof904: cs = 904; goto _test_eof; _test_eof905: cs = 905; goto _test_eof; _test_eof906: cs = 906; goto _test_eof; @@ -103408,9 +101046,9 @@ case 1482: _test_eof915: cs = 915; goto _test_eof; _test_eof916: cs = 916; goto _test_eof; _test_eof917: cs = 917; goto _test_eof; - _test_eof1525: cs = 1525; goto _test_eof; _test_eof918: cs = 918; goto _test_eof; _test_eof919: cs = 919; goto _test_eof; + _test_eof1512: cs = 1512; goto _test_eof; _test_eof920: cs = 920; goto _test_eof; _test_eof921: cs = 921; goto _test_eof; _test_eof922: cs = 922; goto _test_eof; @@ -103431,30 +101069,23 @@ case 1482: _test_eof937: cs = 937; goto _test_eof; _test_eof938: cs = 938; goto _test_eof; _test_eof939: cs = 939; goto _test_eof; - _test_eof1526: cs = 1526; goto _test_eof; _test_eof940: cs = 940; goto _test_eof; _test_eof941: cs = 941; goto _test_eof; _test_eof942: cs = 942; goto _test_eof; _test_eof943: cs = 943; goto _test_eof; _test_eof944: cs = 944; goto _test_eof; - _test_eof1527: cs = 1527; goto _test_eof; _test_eof945: cs = 945; goto _test_eof; _test_eof946: cs = 946; goto _test_eof; _test_eof947: cs = 947; goto _test_eof; _test_eof948: cs = 948; goto _test_eof; _test_eof949: cs = 949; goto _test_eof; - _test_eof1528: cs = 1528; goto _test_eof; _test_eof950: cs = 950; goto _test_eof; _test_eof951: cs = 951; goto _test_eof; _test_eof952: cs = 952; goto _test_eof; _test_eof953: cs = 953; goto _test_eof; _test_eof954: cs = 954; goto _test_eof; - _test_eof1529: cs = 1529; goto _test_eof; - _test_eof1530: cs = 1530; goto _test_eof; - _test_eof1531: cs = 1531; goto _test_eof; _test_eof955: cs = 955; goto _test_eof; _test_eof956: cs = 956; goto _test_eof; - _test_eof1532: cs = 1532; goto _test_eof; _test_eof957: cs = 957; goto _test_eof; _test_eof958: cs = 958; goto _test_eof; _test_eof959: cs = 959; goto _test_eof; @@ -103482,26 +101113,17 @@ case 1482: _test_eof981: cs = 981; goto _test_eof; _test_eof982: cs = 982; goto _test_eof; _test_eof983: cs = 983; goto _test_eof; - _test_eof1533: cs = 1533; goto _test_eof; - _test_eof1534: cs = 1534; goto _test_eof; - _test_eof1535: cs = 1535; goto _test_eof; _test_eof984: cs = 984; goto _test_eof; _test_eof985: cs = 985; goto _test_eof; _test_eof986: cs = 986; goto _test_eof; - _test_eof1536: cs = 1536; goto _test_eof; - _test_eof1537: cs = 1537; goto _test_eof; _test_eof987: cs = 987; goto _test_eof; _test_eof988: cs = 988; goto _test_eof; _test_eof989: cs = 989; goto _test_eof; _test_eof990: cs = 990; goto _test_eof; - _test_eof1538: cs = 1538; goto _test_eof; - _test_eof1539: cs = 1539; goto _test_eof; _test_eof991: cs = 991; goto _test_eof; _test_eof992: cs = 992; goto _test_eof; _test_eof993: cs = 993; goto _test_eof; _test_eof994: cs = 994; goto _test_eof; - _test_eof1540: cs = 1540; goto _test_eof; - _test_eof1541: cs = 1541; goto _test_eof; _test_eof995: cs = 995; goto _test_eof; _test_eof996: cs = 996; goto _test_eof; _test_eof997: cs = 997; goto _test_eof; @@ -103527,11 +101149,11 @@ case 1482: _test_eof1017: cs = 1017; goto _test_eof; _test_eof1018: cs = 1018; goto _test_eof; _test_eof1019: cs = 1019; goto _test_eof; - _test_eof1542: cs = 1542; goto _test_eof; _test_eof1020: cs = 1020; goto _test_eof; _test_eof1021: cs = 1021; goto _test_eof; _test_eof1022: cs = 1022; goto _test_eof; _test_eof1023: cs = 1023; goto _test_eof; + _test_eof1513: cs = 1513; goto _test_eof; _test_eof1024: cs = 1024; goto _test_eof; _test_eof1025: cs = 1025; goto _test_eof; _test_eof1026: cs = 1026; goto _test_eof; @@ -103543,7 +101165,6 @@ case 1482: _test_eof1032: cs = 1032; goto _test_eof; _test_eof1033: cs = 1033; goto _test_eof; _test_eof1034: cs = 1034; goto _test_eof; - _test_eof1543: cs = 1543; goto _test_eof; _test_eof1035: cs = 1035; goto _test_eof; _test_eof1036: cs = 1036; goto _test_eof; _test_eof1037: cs = 1037; goto _test_eof; @@ -103557,7 +101178,6 @@ case 1482: _test_eof1045: cs = 1045; goto _test_eof; _test_eof1046: cs = 1046; goto _test_eof; _test_eof1047: cs = 1047; goto _test_eof; - _test_eof1544: cs = 1544; goto _test_eof; _test_eof1048: cs = 1048; goto _test_eof; _test_eof1049: cs = 1049; goto _test_eof; _test_eof1050: cs = 1050; goto _test_eof; @@ -103569,15 +101189,13 @@ case 1482: _test_eof1056: cs = 1056; goto _test_eof; _test_eof1057: cs = 1057; goto _test_eof; _test_eof1058: cs = 1058; goto _test_eof; - _test_eof1545: cs = 1545; goto _test_eof; - _test_eof1546: cs = 1546; goto _test_eof; _test_eof1059: cs = 1059; goto _test_eof; _test_eof1060: cs = 1060; goto _test_eof; _test_eof1061: cs = 1061; goto _test_eof; - _test_eof1547: cs = 1547; goto _test_eof; _test_eof1062: cs = 1062; goto _test_eof; _test_eof1063: cs = 1063; goto _test_eof; _test_eof1064: cs = 1064; goto _test_eof; + _test_eof1514: cs = 1514; goto _test_eof; _test_eof1065: cs = 1065; goto _test_eof; _test_eof1066: cs = 1066; goto _test_eof; _test_eof1067: cs = 1067; goto _test_eof; @@ -103585,12 +101203,11 @@ case 1482: _test_eof1069: cs = 1069; goto _test_eof; _test_eof1070: cs = 1070; goto _test_eof; _test_eof1071: cs = 1071; goto _test_eof; - _test_eof1548: cs = 1548; goto _test_eof; - _test_eof1549: cs = 1549; goto _test_eof; - _test_eof1550: cs = 1550; goto _test_eof; _test_eof1072: cs = 1072; goto _test_eof; + _test_eof1515: cs = 1515; goto _test_eof; _test_eof1073: cs = 1073; goto _test_eof; _test_eof1074: cs = 1074; goto _test_eof; + _test_eof1516: cs = 1516; goto _test_eof; _test_eof1075: cs = 1075; goto _test_eof; _test_eof1076: cs = 1076; goto _test_eof; _test_eof1077: cs = 1077; goto _test_eof; @@ -103599,33 +101216,24 @@ case 1482: _test_eof1080: cs = 1080; goto _test_eof; _test_eof1081: cs = 1081; goto _test_eof; _test_eof1082: cs = 1082; goto _test_eof; - _test_eof1551: cs = 1551; goto _test_eof; - _test_eof1552: cs = 1552; goto _test_eof; - _test_eof1553: cs = 1553; goto _test_eof; _test_eof1083: cs = 1083; goto _test_eof; _test_eof1084: cs = 1084; goto _test_eof; _test_eof1085: cs = 1085; goto _test_eof; _test_eof1086: cs = 1086; goto _test_eof; _test_eof1087: cs = 1087; goto _test_eof; _test_eof1088: cs = 1088; goto _test_eof; + _test_eof1517: cs = 1517; goto _test_eof; _test_eof1089: cs = 1089; goto _test_eof; _test_eof1090: cs = 1090; goto _test_eof; _test_eof1091: cs = 1091; goto _test_eof; _test_eof1092: cs = 1092; goto _test_eof; _test_eof1093: cs = 1093; goto _test_eof; _test_eof1094: cs = 1094; goto _test_eof; - _test_eof1554: cs = 1554; goto _test_eof; _test_eof1095: cs = 1095; goto _test_eof; _test_eof1096: cs = 1096; goto _test_eof; _test_eof1097: cs = 1097; goto _test_eof; - _test_eof1555: cs = 1555; goto _test_eof; - _test_eof1556: cs = 1556; goto _test_eof; _test_eof1098: cs = 1098; goto _test_eof; - _test_eof1557: cs = 1557; goto _test_eof; - _test_eof1558: cs = 1558; goto _test_eof; _test_eof1099: cs = 1099; goto _test_eof; - _test_eof1559: cs = 1559; goto _test_eof; - _test_eof1560: cs = 1560; goto _test_eof; _test_eof1100: cs = 1100; goto _test_eof; _test_eof1101: cs = 1101; goto _test_eof; _test_eof1102: cs = 1102; goto _test_eof; @@ -103637,23 +101245,30 @@ case 1482: _test_eof1108: cs = 1108; goto _test_eof; _test_eof1109: cs = 1109; goto _test_eof; _test_eof1110: cs = 1110; goto _test_eof; + _test_eof1518: cs = 1518; goto _test_eof; _test_eof1111: cs = 1111; goto _test_eof; _test_eof1112: cs = 1112; goto _test_eof; _test_eof1113: cs = 1113; goto _test_eof; _test_eof1114: cs = 1114; goto _test_eof; _test_eof1115: cs = 1115; goto _test_eof; + _test_eof1519: cs = 1519; goto _test_eof; _test_eof1116: cs = 1116; goto _test_eof; _test_eof1117: cs = 1117; goto _test_eof; _test_eof1118: cs = 1118; goto _test_eof; _test_eof1119: cs = 1119; goto _test_eof; _test_eof1120: cs = 1120; goto _test_eof; + _test_eof1520: cs = 1520; goto _test_eof; _test_eof1121: cs = 1121; goto _test_eof; _test_eof1122: cs = 1122; goto _test_eof; _test_eof1123: cs = 1123; goto _test_eof; _test_eof1124: cs = 1124; goto _test_eof; _test_eof1125: cs = 1125; goto _test_eof; + _test_eof1521: cs = 1521; goto _test_eof; + _test_eof1522: cs = 1522; goto _test_eof; + _test_eof1523: cs = 1523; goto _test_eof; _test_eof1126: cs = 1126; goto _test_eof; _test_eof1127: cs = 1127; goto _test_eof; + _test_eof1524: cs = 1524; goto _test_eof; _test_eof1128: cs = 1128; goto _test_eof; _test_eof1129: cs = 1129; goto _test_eof; _test_eof1130: cs = 1130; goto _test_eof; @@ -103668,7 +101283,6 @@ case 1482: _test_eof1139: cs = 1139; goto _test_eof; _test_eof1140: cs = 1140; goto _test_eof; _test_eof1141: cs = 1141; goto _test_eof; - _test_eof1561: cs = 1561; goto _test_eof; _test_eof1142: cs = 1142; goto _test_eof; _test_eof1143: cs = 1143; goto _test_eof; _test_eof1144: cs = 1144; goto _test_eof; @@ -103682,17 +101296,26 @@ case 1482: _test_eof1152: cs = 1152; goto _test_eof; _test_eof1153: cs = 1153; goto _test_eof; _test_eof1154: cs = 1154; goto _test_eof; + _test_eof1525: cs = 1525; goto _test_eof; + _test_eof1526: cs = 1526; goto _test_eof; + _test_eof1527: cs = 1527; goto _test_eof; _test_eof1155: cs = 1155; goto _test_eof; _test_eof1156: cs = 1156; goto _test_eof; _test_eof1157: cs = 1157; goto _test_eof; + _test_eof1528: cs = 1528; goto _test_eof; + _test_eof1529: cs = 1529; goto _test_eof; _test_eof1158: cs = 1158; goto _test_eof; _test_eof1159: cs = 1159; goto _test_eof; _test_eof1160: cs = 1160; goto _test_eof; _test_eof1161: cs = 1161; goto _test_eof; + _test_eof1530: cs = 1530; goto _test_eof; + _test_eof1531: cs = 1531; goto _test_eof; _test_eof1162: cs = 1162; goto _test_eof; _test_eof1163: cs = 1163; goto _test_eof; _test_eof1164: cs = 1164; goto _test_eof; _test_eof1165: cs = 1165; goto _test_eof; + _test_eof1532: cs = 1532; goto _test_eof; + _test_eof1533: cs = 1533; goto _test_eof; _test_eof1166: cs = 1166; goto _test_eof; _test_eof1167: cs = 1167; goto _test_eof; _test_eof1168: cs = 1168; goto _test_eof; @@ -103718,6 +101341,7 @@ case 1482: _test_eof1188: cs = 1188; goto _test_eof; _test_eof1189: cs = 1189; goto _test_eof; _test_eof1190: cs = 1190; goto _test_eof; + _test_eof1534: cs = 1534; goto _test_eof; _test_eof1191: cs = 1191; goto _test_eof; _test_eof1192: cs = 1192; goto _test_eof; _test_eof1193: cs = 1193; goto _test_eof; @@ -103733,6 +101357,7 @@ case 1482: _test_eof1203: cs = 1203; goto _test_eof; _test_eof1204: cs = 1204; goto _test_eof; _test_eof1205: cs = 1205; goto _test_eof; + _test_eof1535: cs = 1535; goto _test_eof; _test_eof1206: cs = 1206; goto _test_eof; _test_eof1207: cs = 1207; goto _test_eof; _test_eof1208: cs = 1208; goto _test_eof; @@ -103746,6 +101371,7 @@ case 1482: _test_eof1216: cs = 1216; goto _test_eof; _test_eof1217: cs = 1217; goto _test_eof; _test_eof1218: cs = 1218; goto _test_eof; + _test_eof1536: cs = 1536; goto _test_eof; _test_eof1219: cs = 1219; goto _test_eof; _test_eof1220: cs = 1220; goto _test_eof; _test_eof1221: cs = 1221; goto _test_eof; @@ -103757,9 +101383,12 @@ case 1482: _test_eof1227: cs = 1227; goto _test_eof; _test_eof1228: cs = 1228; goto _test_eof; _test_eof1229: cs = 1229; goto _test_eof; + _test_eof1537: cs = 1537; goto _test_eof; + _test_eof1538: cs = 1538; goto _test_eof; _test_eof1230: cs = 1230; goto _test_eof; _test_eof1231: cs = 1231; goto _test_eof; _test_eof1232: cs = 1232; goto _test_eof; + _test_eof1539: cs = 1539; goto _test_eof; _test_eof1233: cs = 1233; goto _test_eof; _test_eof1234: cs = 1234; goto _test_eof; _test_eof1235: cs = 1235; goto _test_eof; @@ -103770,6 +101399,9 @@ case 1482: _test_eof1240: cs = 1240; goto _test_eof; _test_eof1241: cs = 1241; goto _test_eof; _test_eof1242: cs = 1242; goto _test_eof; + _test_eof1540: cs = 1540; goto _test_eof; + _test_eof1541: cs = 1541; goto _test_eof; + _test_eof1542: cs = 1542; goto _test_eof; _test_eof1243: cs = 1243; goto _test_eof; _test_eof1244: cs = 1244; goto _test_eof; _test_eof1245: cs = 1245; goto _test_eof; @@ -103781,6 +101413,9 @@ case 1482: _test_eof1251: cs = 1251; goto _test_eof; _test_eof1252: cs = 1252; goto _test_eof; _test_eof1253: cs = 1253; goto _test_eof; + _test_eof1543: cs = 1543; goto _test_eof; + _test_eof1544: cs = 1544; goto _test_eof; + _test_eof1545: cs = 1545; goto _test_eof; _test_eof1254: cs = 1254; goto _test_eof; _test_eof1255: cs = 1255; goto _test_eof; _test_eof1256: cs = 1256; goto _test_eof; @@ -103793,11 +101428,18 @@ case 1482: _test_eof1263: cs = 1263; goto _test_eof; _test_eof1264: cs = 1264; goto _test_eof; _test_eof1265: cs = 1265; goto _test_eof; + _test_eof1546: cs = 1546; goto _test_eof; _test_eof1266: cs = 1266; goto _test_eof; _test_eof1267: cs = 1267; goto _test_eof; _test_eof1268: cs = 1268; goto _test_eof; + _test_eof1547: cs = 1547; goto _test_eof; + _test_eof1548: cs = 1548; goto _test_eof; _test_eof1269: cs = 1269; goto _test_eof; + _test_eof1549: cs = 1549; goto _test_eof; + _test_eof1550: cs = 1550; goto _test_eof; _test_eof1270: cs = 1270; goto _test_eof; + _test_eof1551: cs = 1551; goto _test_eof; + _test_eof1552: cs = 1552; goto _test_eof; _test_eof1271: cs = 1271; goto _test_eof; _test_eof1272: cs = 1272; goto _test_eof; _test_eof1273: cs = 1273; goto _test_eof; @@ -103840,6 +101482,7 @@ case 1482: _test_eof1310: cs = 1310; goto _test_eof; _test_eof1311: cs = 1311; goto _test_eof; _test_eof1312: cs = 1312; goto _test_eof; + _test_eof1553: cs = 1553; goto _test_eof; _test_eof1313: cs = 1313; goto _test_eof; _test_eof1314: cs = 1314; goto _test_eof; _test_eof1315: cs = 1315; goto _test_eof; @@ -103849,24 +101492,24 @@ case 1482: _test_eof1319: cs = 1319; goto _test_eof; _test_eof1320: cs = 1320; goto _test_eof; _test_eof1321: cs = 1321; goto _test_eof; - _test_eof1562: cs = 1562; goto _test_eof; _test_eof1322: cs = 1322; goto _test_eof; _test_eof1323: cs = 1323; goto _test_eof; + _test_eof1554: cs = 1554; goto _test_eof; _test_eof1324: cs = 1324; goto _test_eof; _test_eof1325: cs = 1325; goto _test_eof; _test_eof1326: cs = 1326; goto _test_eof; _test_eof1327: cs = 1327; goto _test_eof; _test_eof1328: cs = 1328; goto _test_eof; _test_eof1329: cs = 1329; goto _test_eof; - _test_eof1563: cs = 1563; goto _test_eof; _test_eof1330: cs = 1330; goto _test_eof; _test_eof1331: cs = 1331; goto _test_eof; + _test_eof1555: cs = 1555; goto _test_eof; _test_eof1332: cs = 1332; goto _test_eof; _test_eof1333: cs = 1333; goto _test_eof; _test_eof1334: cs = 1334; goto _test_eof; - _test_eof1564: cs = 1564; goto _test_eof; _test_eof1335: cs = 1335; goto _test_eof; _test_eof1336: cs = 1336; goto _test_eof; + _test_eof1556: cs = 1556; goto _test_eof; _test_eof1337: cs = 1337; goto _test_eof; _test_eof1338: cs = 1338; goto _test_eof; _test_eof1339: cs = 1339; goto _test_eof; @@ -103883,9 +101526,9 @@ case 1482: _test_eof1350: cs = 1350; goto _test_eof; _test_eof1351: cs = 1351; goto _test_eof; _test_eof1352: cs = 1352; goto _test_eof; - _test_eof1565: cs = 1565; goto _test_eof; _test_eof1353: cs = 1353; goto _test_eof; _test_eof1354: cs = 1354; goto _test_eof; + _test_eof1557: cs = 1557; goto _test_eof; _test_eof1355: cs = 1355; goto _test_eof; _test_eof1356: cs = 1356; goto _test_eof; _test_eof1357: cs = 1357; goto _test_eof; @@ -103903,9 +101546,9 @@ case 1482: _test_eof1369: cs = 1369; goto _test_eof; _test_eof1370: cs = 1370; goto _test_eof; _test_eof1371: cs = 1371; goto _test_eof; - _test_eof1566: cs = 1566; goto _test_eof; _test_eof1372: cs = 1372; goto _test_eof; _test_eof1373: cs = 1373; goto _test_eof; + _test_eof1558: cs = 1558; goto _test_eof; _test_eof1374: cs = 1374; goto _test_eof; _test_eof1375: cs = 1375; goto _test_eof; _test_eof1376: cs = 1376; goto _test_eof; @@ -103919,20 +101562,20 @@ case 1482: _test_eof1384: cs = 1384; goto _test_eof; _test_eof1385: cs = 1385; goto _test_eof; _test_eof1386: cs = 1386; goto _test_eof; - _test_eof1567: cs = 1567; goto _test_eof; - _test_eof1568: cs = 1568; goto _test_eof; - _test_eof1569: cs = 1569; goto _test_eof; _test_eof1387: cs = 1387; goto _test_eof; _test_eof1388: cs = 1388; goto _test_eof; + _test_eof1559: cs = 1559; goto _test_eof; + _test_eof1560: cs = 1560; goto _test_eof; + _test_eof1561: cs = 1561; goto _test_eof; _test_eof1389: cs = 1389; goto _test_eof; _test_eof1390: cs = 1390; goto _test_eof; _test_eof1391: cs = 1391; goto _test_eof; _test_eof1392: cs = 1392; goto _test_eof; _test_eof1393: cs = 1393; goto _test_eof; _test_eof1394: cs = 1394; goto _test_eof; - _test_eof1570: cs = 1570; goto _test_eof; _test_eof1395: cs = 1395; goto _test_eof; _test_eof1396: cs = 1396; goto _test_eof; + _test_eof1562: cs = 1562; goto _test_eof; _test_eof1397: cs = 1397; goto _test_eof; _test_eof1398: cs = 1398; goto _test_eof; _test_eof1399: cs = 1399; goto _test_eof; @@ -103942,19 +101585,19 @@ case 1482: _test_eof1403: cs = 1403; goto _test_eof; _test_eof1404: cs = 1404; goto _test_eof; _test_eof1405: cs = 1405; goto _test_eof; - _test_eof1571: cs = 1571; goto _test_eof; - _test_eof1572: cs = 1572; goto _test_eof; - _test_eof1573: cs = 1573; goto _test_eof; _test_eof1406: cs = 1406; goto _test_eof; _test_eof1407: cs = 1407; goto _test_eof; + _test_eof1563: cs = 1563; goto _test_eof; + _test_eof1564: cs = 1564; goto _test_eof; + _test_eof1565: cs = 1565; goto _test_eof; _test_eof1408: cs = 1408; goto _test_eof; _test_eof1409: cs = 1409; goto _test_eof; _test_eof1410: cs = 1410; goto _test_eof; _test_eof1411: cs = 1411; goto _test_eof; _test_eof1412: cs = 1412; goto _test_eof; - _test_eof1574: cs = 1574; goto _test_eof; _test_eof1413: cs = 1413; goto _test_eof; _test_eof1414: cs = 1414; goto _test_eof; + _test_eof1566: cs = 1566; goto _test_eof; _test_eof1415: cs = 1415; goto _test_eof; _test_eof1416: cs = 1416; goto _test_eof; _test_eof1417: cs = 1417; goto _test_eof; @@ -103966,48 +101609,48 @@ case 1482: _test_eof1423: cs = 1423; goto _test_eof; _test_eof1424: cs = 1424; goto _test_eof; _test_eof1425: cs = 1425; goto _test_eof; - _test_eof1575: cs = 1575; goto _test_eof; _test_eof1426: cs = 1426; goto _test_eof; _test_eof1427: cs = 1427; goto _test_eof; + _test_eof1567: cs = 1567; goto _test_eof; _test_eof1428: cs = 1428; goto _test_eof; _test_eof1429: cs = 1429; goto _test_eof; _test_eof1430: cs = 1430; goto _test_eof; _test_eof1431: cs = 1431; goto _test_eof; _test_eof1432: cs = 1432; goto _test_eof; - _test_eof1576: cs = 1576; goto _test_eof; _test_eof1433: cs = 1433; goto _test_eof; _test_eof1434: cs = 1434; goto _test_eof; + _test_eof1568: cs = 1568; goto _test_eof; _test_eof1435: cs = 1435; goto _test_eof; _test_eof1436: cs = 1436; goto _test_eof; _test_eof1437: cs = 1437; goto _test_eof; _test_eof1438: cs = 1438; goto _test_eof; - _test_eof1577: cs = 1577; goto _test_eof; _test_eof1439: cs = 1439; goto _test_eof; _test_eof1440: cs = 1440; goto _test_eof; + _test_eof1569: cs = 1569; goto _test_eof; _test_eof1441: cs = 1441; goto _test_eof; _test_eof1442: cs = 1442; goto _test_eof; _test_eof1443: cs = 1443; goto _test_eof; _test_eof1444: cs = 1444; goto _test_eof; - _test_eof1578: cs = 1578; goto _test_eof; _test_eof1445: cs = 1445; goto _test_eof; _test_eof1446: cs = 1446; goto _test_eof; + _test_eof1570: cs = 1570; goto _test_eof; _test_eof1447: cs = 1447; goto _test_eof; _test_eof1448: cs = 1448; goto _test_eof; _test_eof1449: cs = 1449; goto _test_eof; _test_eof1450: cs = 1450; goto _test_eof; _test_eof1451: cs = 1451; goto _test_eof; _test_eof1452: cs = 1452; goto _test_eof; - _test_eof1579: cs = 1579; goto _test_eof; _test_eof1453: cs = 1453; goto _test_eof; _test_eof1454: cs = 1454; goto _test_eof; + _test_eof1571: cs = 1571; goto _test_eof; _test_eof1455: cs = 1455; goto _test_eof; _test_eof1456: cs = 1456; goto _test_eof; _test_eof1457: cs = 1457; goto _test_eof; _test_eof1458: cs = 1458; goto _test_eof; _test_eof1459: cs = 1459; goto _test_eof; - _test_eof1580: cs = 1580; goto _test_eof; _test_eof1460: cs = 1460; goto _test_eof; _test_eof1461: cs = 1461; goto _test_eof; + _test_eof1572: cs = 1572; goto _test_eof; _test_eof1462: cs = 1462; goto _test_eof; _test_eof1463: cs = 1463; goto _test_eof; _test_eof1464: cs = 1464; goto _test_eof; @@ -104017,19 +101660,10 @@ case 1482: _test_eof1468: cs = 1468; goto _test_eof; _test_eof1469: cs = 1469; goto _test_eof; _test_eof1470: cs = 1470; goto _test_eof; - _test_eof1581: cs = 1581; goto _test_eof; + _test_eof1573: cs = 1573; goto _test_eof; _test_eof1471: cs = 1471; goto _test_eof; _test_eof1472: cs = 1472; goto _test_eof; _test_eof1473: cs = 1473; goto _test_eof; - _test_eof1474: cs = 1474; goto _test_eof; - _test_eof1475: cs = 1475; goto _test_eof; - _test_eof1476: cs = 1476; goto _test_eof; - _test_eof1477: cs = 1477; goto _test_eof; - _test_eof1478: cs = 1478; goto _test_eof; - _test_eof1479: cs = 1479; goto _test_eof; - _test_eof1480: cs = 1480; goto _test_eof; - _test_eof1481: cs = 1481; goto _test_eof; - _test_eof1482: cs = 1482; goto _test_eof; _test_eof: {} if ( p == eof ) @@ -104119,7 +101753,7 @@ goto st319;} goto st319;} } break; - case 1487: + case 1478: { NOERR; } @@ -104316,8 +101950,6 @@ goto st319;} case 539: case 540: case 541: - case 542: - case 543: case 544: case 545: case 546: @@ -104333,28 +101965,90 @@ goto st319;} case 556: case 557: case 558: - case 559: - case 560: { - WARN(ZS_BAD_BITMAP); + WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) goto _test_eof319; goto st319;} } break; + case 559: + case 560: case 561: + case 562: + case 563: + case 564: + case 565: + case 566: + case 567: case 568: case 569: case 570: + case 571: + case 572: + case 573: + case 574: + case 575: + case 576: case 577: + case 578: case 579: - { - WARN(ZS_BAD_HEX_RDATA); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - break; + case 580: + case 581: + case 582: + case 583: + case 584: + case 585: + case 586: + case 587: + case 588: + case 589: + case 590: + case 591: + case 592: + case 593: + case 594: + case 595: + case 596: + case 597: + case 598: + case 599: + case 600: + case 601: + case 602: + case 603: + case 604: + case 605: + case 606: + case 607: + case 608: + case 609: + case 610: + case 611: + case 612: + case 613: + case 614: + case 615: + case 616: + case 617: + case 618: + case 619: + case 620: + case 621: + case 622: + case 623: + case 624: + case 625: + case 626: + case 627: + case 628: + case 629: + case 630: + case 631: + case 632: + case 633: + case 634: + case 635: case 636: case 637: case 638: @@ -104399,13 +102093,27 @@ goto st319;} case 677: case 678: case 679: + case 680: + case 681: + case 682: + case 683: + case 684: + case 685: case 686: case 687: case 688: case 689: case 690: + case 691: + case 692: + case 693: + case 694: + case 695: + case 696: case 697: case 698: + case 699: + case 700: case 701: case 702: case 703: @@ -104432,150 +102140,31 @@ goto st319;} case 724: case 725: case 726: - case 727: - case 728: - case 729: - case 730: - case 731: - case 732: - case 733: - case 734: - case 735: - case 736: - case 737: - case 738: - case 739: - case 740: - case 745: - case 746: + case 727: + case 728: + case 729: + case 730: + case 731: { - WARN(ZS_BAD_SVCB_PARAM); + WARN(ZS_BAD_BITMAP); p--; { if ( p == pe ) goto _test_eof319; goto st319;} } break; - case 580: - case 581: - case 582: - case 583: - case 584: - case 585: - case 586: - case 587: - case 588: - case 589: - case 590: - case 591: - case 592: - case 593: - case 594: - case 595: - case 596: - case 597: - case 598: - case 599: - case 600: - case 601: - case 602: - case 603: - case 604: - case 605: - case 606: - case 607: - case 608: - case 609: - case 612: - case 613: - case 614: - case 615: - case 616: - case 617: - case 618: - case 619: - case 620: - case 621: - case 622: - case 623: - case 624: - case 625: - case 626: - case 627: - case 628: - case 629: - case 630: - case 631: - case 632: - case 633: - case 634: - case 635: + case 732: + case 739: + case 740: + case 741: + case 748: + case 750: { - WARN(ZS_BAD_SVCB_MANDATORY); + WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) goto _test_eof319; goto st319;} } break; - case 747: - case 748: - case 749: - case 750: - case 751: - case 752: - case 753: - case 754: - case 755: - case 756: - case 757: - case 758: - case 759: - case 760: - case 761: - case 762: - case 763: - case 764: - case 765: - case 766: - case 767: - case 768: - case 769: - case 770: - case 771: - case 772: - case 773: - case 774: - case 775: - case 776: - case 777: - case 778: - case 779: - case 780: - case 781: - case 782: - case 783: - case 784: - case 785: - case 786: - case 787: - case 788: - case 789: - case 790: - case 791: - case 792: - case 793: - case 794: - case 795: - case 796: - case 797: - case 798: - case 799: - case 800: - case 801: - case 802: - case 803: - case 804: - case 805: - case 806: case 807: case 808: case 809: @@ -104620,34 +102209,13 @@ goto st319;} case 848: case 849: case 850: - { - WARN(ZS_BAD_ALGORITHM); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - break; - case 851: - case 852: - case 853: - case 854: - case 855: - case 856: case 857: case 858: case 859: case 860: case 861: - case 862: - case 863: - case 864: - case 865: - case 866: - case 867: case 868: case 869: - case 870: - case 871: case 872: case 873: case 874: @@ -104668,13 +102236,6 @@ goto st319;} case 889: case 890: case 891: - { - WARN(ZS_BAD_CERT_TYPE); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - break; case 892: case 893: case 894: @@ -104683,26 +102244,103 @@ goto st319;} case 897: case 898: case 899: - { - WARN(ZS_BAD_DSYNC_SCHEME); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - break; - case 5: - case 9: - case 10: - case 293: + case 900: + case 901: case 902: case 903: case 904: case 905: case 906: case 907: + case 908: + case 909: + case 910: + case 911: + case 916: + case 917: + { + WARN(ZS_BAD_SVCB_PARAM); + p--; { if ( p == pe ) + goto _test_eof319; +goto st319;} + } + break; + case 751: + case 752: + case 753: + case 754: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: + case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: + case 769: + case 770: + case 771: + case 772: + case 773: + case 774: + case 775: + case 776: + case 777: + case 778: + case 779: + case 780: + case 783: + case 784: + case 785: + case 786: + case 787: + case 788: + case 789: + case 790: + case 791: + case 792: + case 793: + case 794: + case 795: + case 796: + case 797: + case 798: + case 799: + case 800: + case 801: + case 802: + case 803: + case 804: + case 805: + case 806: + { + WARN(ZS_BAD_SVCB_MANDATORY); + p--; { if ( p == pe ) + goto _test_eof319; +goto st319;} + } + break; + case 918: + case 919: + case 920: case 921: + case 922: + case 923: + case 924: case 925: + case 926: + case 927: + case 928: case 929: + case 930: + case 931: + case 932: case 933: case 934: case 935: @@ -104716,14 +102354,94 @@ goto st319;} case 943: case 944: case 945: + case 946: + case 947: case 948: case 949: case 950: + case 951: + case 952: + case 953: + case 954: + case 955: + case 956: + case 957: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 964: + case 965: + case 966: + case 967: + case 968: + case 969: + case 970: + case 971: + case 972: + case 973: + case 974: + case 975: + case 976: + case 977: + case 978: + case 979: + case 980: + case 981: + case 982: + case 983: + case 984: + case 985: + case 986: + case 987: + case 988: + case 989: + case 990: + case 991: + case 992: + case 993: + case 994: + case 995: + case 996: + case 997: + case 998: + case 999: + case 1000: + case 1001: + case 1002: + case 1003: + case 1004: + case 1005: + case 1006: + case 1007: + case 1008: + case 1009: + case 1010: + case 1011: + case 1012: + case 1013: + case 1014: + case 1015: + case 1016: + case 1017: case 1018: case 1019: case 1020: case 1021: + { + WARN(ZS_BAD_ALGORITHM); + p--; { if ( p == pe ) + goto _test_eof319; +goto st319;} + } + break; case 1022: + case 1023: + case 1024: + case 1025: + case 1026: case 1027: case 1028: case 1029: @@ -104739,6 +102457,8 @@ goto st319;} case 1039: case 1040: case 1041: + case 1042: + case 1043: case 1044: case 1045: case 1046: @@ -104746,34 +102466,124 @@ goto st319;} case 1048: case 1049: case 1050: + case 1051: + case 1052: + case 1053: + case 1054: + case 1055: + case 1056: + case 1057: case 1058: + case 1059: + case 1060: + case 1061: + case 1062: + { + WARN(ZS_BAD_CERT_TYPE); + p--; { if ( p == pe ) + goto _test_eof319; +goto st319;} + } + break; + case 1063: case 1064: case 1065: - case 1072: + case 1066: + case 1067: + case 1068: + case 1069: + case 1070: + { + WARN(ZS_BAD_DSYNC_SCHEME); + p--; { if ( p == pe ) + goto _test_eof319; +goto st319;} + } + break; + case 5: + case 9: + case 10: + case 293: case 1073: case 1074: - case 1083: - case 1084: - case 1123: - case 1126: - case 1127: - case 1138: - case 1139: - case 1140: - case 1141: - case 1142: - case 1143: - case 1144: - case 1145: - case 1146: - case 1147: - case 1148: - case 1149: + case 1075: + case 1076: + case 1077: + case 1078: + case 1092: + case 1096: + case 1100: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1115: + case 1116: + case 1119: + case 1120: + case 1121: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1198: + case 1199: + case 1200: + case 1201: + case 1202: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1215: + case 1216: + case 1217: + case 1218: + case 1219: + case 1220: + case 1221: + case 1229: + case 1235: + case 1236: + case 1243: + case 1244: + case 1245: + case 1254: + case 1255: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1309: + case 1310: + case 1311: + case 1312: + case 1313: + case 1314: + case 1315: + case 1316: + case 1317: + case 1318: case 1319: case 1320: case 1321: - case 1326: - case 1327: + case 1322: + case 1323: case 1328: case 1329: case 1330: @@ -104781,38 +102591,42 @@ goto st319;} case 1332: case 1333: case 1334: - case 1352: - case 1358: - case 1361: - case 1362: + case 1335: + case 1336: + case 1354: + case 1360: case 1363: - case 1374: - case 1375: + case 1364: + case 1365: case 1376: - case 1387: - case 1388: + case 1377: + case 1378: case 1389: - case 1394: - case 1395: - case 1406: - case 1407: + case 1390: + case 1391: + case 1396: + case 1397: case 1408: - case 1413: - case 1426: - case 1443: - case 1444: + case 1409: + case 1410: + case 1415: + case 1428: case 1445: case 1446: - case 1449: - case 1450: + case 1447: + case 1448: case 1451: case 1452: case 1453: case 1454: - case 1457: - case 1458: + case 1455: + case 1456: case 1459: case 1460: + case 1461: + case 1462: + case 1463: + case 1464: case 1465: case 1466: case 1469: @@ -105106,11 +102920,8 @@ goto st319;} goto st319;} } break; - case 562: - case 563: - case 571: - case 572: - case 578: + case 542: + case 543: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) @@ -105118,18 +102929,36 @@ goto st319;} goto st319;} } { - WARN(ZS_BAD_HEX_RDATA); + WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) goto _test_eof319; goto st319;} } break; - case 699: - case 700: - case 741: + case 733: + case 734: case 742: case 743: - case 744: + case 749: + { + WARN(ZS_BAD_NUMBER); + p--; { if ( p == pe ) + goto _test_eof319; +goto st319;} + } + { + WARN(ZS_BAD_HEX_RDATA); + p--; { if ( p == pe ) + goto _test_eof319; +goto st319;} + } + break; + case 870: + case 871: + case 912: + case 913: + case 914: + case 915: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) @@ -105143,8 +102972,8 @@ goto st319;} goto st319;} } break; - case 610: - case 611: + case 781: + case 782: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) @@ -105158,86 +102987,86 @@ goto st319;} goto st319;} } break; - case 908: - case 909: - case 910: - case 912: - case 914: - case 916: - case 946: - case 947: - case 1012: - case 1013: - case 1014: - case 1015: - case 1016: - case 1017: - case 1023: - case 1024: - case 1025: - case 1026: - case 1042: - case 1043: - case 1062: - case 1063: - case 1066: - case 1067: - case 1075: - case 1076: - case 1077: - case 1078: + case 1079: + case 1080: + case 1081: + case 1083: case 1085: - case 1086: - case 1128: - case 1129: - case 1130: - case 1131: - case 1136: - case 1137: - case 1322: - case 1323: + case 1087: + case 1117: + case 1118: + case 1183: + case 1184: + case 1185: + case 1186: + case 1187: + case 1188: + case 1194: + case 1195: + case 1196: + case 1197: + case 1213: + case 1214: + case 1233: + case 1234: + case 1237: + case 1238: + case 1246: + case 1247: + case 1248: + case 1249: + case 1256: + case 1257: + case 1299: + case 1300: + case 1301: + case 1302: + case 1307: + case 1308: case 1324: case 1325: - case 1335: - case 1336: + case 1326: + case 1327: case 1337: case 1338: case 1339: case 1340: - case 1364: - case 1365: + case 1341: + case 1342: case 1366: case 1367: case 1368: case 1369: - case 1377: - case 1378: + case 1370: + case 1371: case 1379: case 1380: case 1381: case 1382: - case 1390: - case 1391: + case 1383: + case 1384: case 1392: case 1393: - case 1396: - case 1397: + case 1394: + case 1395: case 1398: case 1399: case 1400: case 1401: - case 1409: - case 1410: - case 1414: - case 1415: - case 1439: - case 1440: + case 1402: + case 1403: + case 1411: + case 1412: + case 1416: + case 1417: case 1441: case 1442: - case 1447: - case 1448: - case 1455: - case 1456: + case 1443: + case 1444: + case 1449: + case 1450: + case 1457: + case 1458: case 1467: case 1468: { @@ -105270,10 +103099,10 @@ goto st319;} goto st319;} } break; - case 1132: - case 1133: - case 1134: - case 1135: + case 1303: + case 1304: + case 1305: + case 1306: { WARN(ZS_BAD_TIMESTAMP_CHAR); p--; { if ( p == pe ) @@ -105304,10 +103133,10 @@ goto st319;} goto st319;} } break; - case 951: - case 952: - case 953: - case 954: + case 1122: + case 1123: + case 1124: + case 1125: { s->long_string = false; } @@ -105348,18 +103177,18 @@ goto st319;} goto st319;} } break; - case 680: - case 681: - case 682: - case 683: - case 684: - case 685: - case 691: - case 692: - case 693: - case 694: - case 695: - case 696: + case 851: + case 852: + case 853: + case 854: + case 855: + case 856: + case 862: + case 863: + case 864: + case 865: + case 866: + case 867: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) @@ -105373,12 +103202,12 @@ goto st319;} goto st319;} } break; - case 900: - case 901: - case 955: - case 956: - case 1411: - case 1412: + case 1071: + case 1072: + case 1126: + case 1127: + case 1413: + case 1414: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) @@ -105392,12 +103221,12 @@ goto st319;} goto st319;} } break; - case 1051: - case 1052: - case 1053: - case 1056: - case 1057: - case 1059: + case 1222: + case 1223: + case 1224: + case 1227: + case 1228: + case 1230: { WARN(ZS_BAD_APL); p--; { if ( p == pe ) @@ -105411,46 +103240,46 @@ goto st319;} goto st319;} } break; - case 1068: - case 1069: - case 1070: - case 1071: - case 1079: - case 1080: - case 1081: - case 1082: - case 1341: - case 1342: - case 1359: - case 1360: - case 1370: - case 1371: + case 1239: + case 1240: + case 1241: + case 1242: + case 1250: + case 1251: + case 1252: + case 1253: + case 1343: + case 1344: + case 1361: + case 1362: case 1372: case 1373: - case 1383: - case 1384: + case 1374: + case 1375: case 1385: case 1386: - case 1402: - case 1403: + case 1387: + case 1388: case 1404: case 1405: - case 1416: - case 1417: + case 1406: + case 1407: case 1418: case 1419: + case 1420: case 1421: - case 1422: case 1423: case 1424: - case 1427: - case 1428: + case 1425: + case 1426: + case 1429: case 1430: - case 1431: + case 1432: case 1433: - case 1434: + case 1435: case 1436: - case 1437: + case 1438: + case 1439: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) @@ -105464,8 +103293,6 @@ goto st319;} goto st319;} } break; - case 1343: - case 1344: case 1345: case 1346: case 1347: @@ -105473,11 +103300,13 @@ goto st319;} case 1349: case 1350: case 1351: + case 1352: case 1353: - case 1354: case 1355: case 1356: case 1357: + case 1358: + case 1359: { WARN(ZS_BAD_BASE32HEX_CHAR); p--; { if ( p == pe ) @@ -105491,21 +103320,21 @@ goto st319;} goto st319;} } break; - case 1087: - case 1088: - case 1091: - case 1100: - case 1101: - case 1102: - case 1107: - case 1108: - case 1109: - case 1114: - case 1115: - case 1116: - case 1119: - case 1121: - case 1122: + case 1258: + case 1259: + case 1262: + case 1271: + case 1272: + case 1273: + case 1278: + case 1279: + case 1280: + case 1285: + case 1286: + case 1287: + case 1290: + case 1292: + case 1293: { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) @@ -105519,13 +103348,13 @@ goto st319;} goto st319;} } break; - case 1093: - case 1094: - case 1095: - case 1096: - case 1097: - case 1098: - case 1099: + case 1264: + case 1265: + case 1266: + case 1267: + case 1268: + case 1269: + case 1270: { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) @@ -105539,8 +103368,28 @@ goto st319;} goto st319;} } break; - case 1124: - case 1125: + case 1128: + case 1129: + case 1130: + case 1131: + case 1132: + case 1133: + case 1134: + case 1135: + case 1136: + case 1137: + case 1138: + case 1139: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1147: + case 1148: + case 1149: case 1150: case 1151: case 1152: @@ -105574,219 +103423,6 @@ goto st319;} case 1180: case 1181: case 1182: - case 1183: - case 1184: - case 1185: - case 1186: - case 1187: - case 1188: - case 1189: - case 1190: - case 1191: - case 1192: - case 1193: - case 1194: - case 1195: - case 1196: - case 1197: - case 1198: - case 1199: - case 1200: - case 1201: - case 1202: - case 1203: - case 1204: - case 1205: - case 1206: - case 1207: - case 1208: - case 1209: - case 1210: - case 1211: - case 1212: - case 1213: - case 1214: - case 1215: - case 1216: - case 1217: - case 1218: - case 1219: - case 1220: - case 1221: - case 1222: - case 1223: - case 1224: - case 1225: - case 1226: - case 1227: - case 1228: - case 1229: - case 1230: - case 1231: - case 1232: - case 1233: - case 1234: - case 1235: - case 1236: - case 1237: - case 1238: - case 1239: - case 1240: - case 1241: - case 1242: - case 1243: - case 1244: - case 1245: - case 1246: - case 1247: - case 1248: - case 1249: - case 1250: - case 1251: - case 1252: - case 1253: - case 1254: - case 1255: - case 1256: - case 1257: - case 1258: - case 1259: - case 1260: - case 1261: - case 1262: - case 1263: - case 1264: - case 1265: - case 1266: - case 1267: - case 1268: - case 1269: - case 1270: - case 1271: - case 1272: - case 1273: - case 1274: - case 1275: - case 1276: - case 1277: - case 1278: - case 1279: - case 1280: - case 1281: - case 1282: - case 1283: - case 1284: - case 1285: - case 1286: - case 1287: - case 1288: - case 1289: - case 1290: - case 1291: - case 1292: - case 1293: - case 1294: - case 1295: - case 1296: - case 1297: - case 1298: - case 1299: - case 1300: - case 1301: - case 1304: - case 1305: - case 1306: - case 1307: - case 1308: - case 1309: - case 1310: - case 1311: - case 1312: - case 1313: - case 1314: - case 1315: - case 1316: - case 1317: - case 1318: - case 1461: - case 1462: - case 1463: - case 1464: - case 1474: - case 1475: - case 1476: - case 1477: - case 1478: - case 1479: - case 1480: - { - WARN(ZS_UNSUPPORTED_TYPE); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - { - WARN(ZS_BAD_RDATA); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - break; - case 957: - case 958: - case 959: - case 960: - case 961: - case 962: - case 963: - case 964: - case 965: - case 966: - case 967: - case 968: - case 969: - case 970: - case 971: - case 972: - case 973: - case 974: - case 975: - case 976: - case 977: - case 978: - case 979: - case 980: - case 981: - case 982: - case 983: - case 984: - case 985: - case 986: - case 987: - case 988: - case 989: - case 990: - case 991: - case 992: - case 993: - case 994: - case 995: - case 996: - case 997: - case 998: - case 999: - case 1000: - case 1001: - case 1002: - case 1003: - case 1004: - case 1005: - case 1006: - case 1007: - case 1008: - case 1009: - case 1010: - case 1011: { WARN(ZS_BAD_LOC_DATA); p--; { if ( p == pe ) @@ -105955,14 +103591,14 @@ goto st319;} goto st319;} } break; - case 1089: - case 1090: - case 1103: - case 1104: - case 1110: - case 1111: - case 1117: - case 1118: + case 1260: + case 1261: + case 1274: + case 1275: + case 1281: + case 1282: + case 1288: + case 1289: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) @@ -105979,29 +103615,6 @@ goto st319;} WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) goto _test_eof319; -goto st319;} - } - break; - case 1302: - case 1303: - case 1481: - case 1482: - { - WARN(ZS_BAD_NUMBER); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - { - WARN(ZS_UNSUPPORTED_TYPE); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - { - WARN(ZS_BAD_RDATA); - p--; { if ( p == pe ) - goto _test_eof319; goto st319;} } break; @@ -106069,22 +103682,22 @@ goto st319;} goto st319;} } break; - case 911: - case 913: - case 915: - case 917: - case 918: - case 919: - case 920: - case 922: - case 923: - case 924: - case 926: - case 927: - case 928: - case 930: - case 931: - case 932: + case 1082: + case 1084: + case 1086: + case 1088: + case 1089: + case 1090: + case 1091: + case 1093: + case 1094: + case 1095: + case 1097: + case 1098: + case 1099: + case 1101: + case 1102: + case 1103: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) @@ -106158,10 +103771,10 @@ goto st319;} goto st319;} } break; - case 1054: - case 1055: - case 1060: - case 1061: + case 1225: + case 1226: + case 1231: + case 1232: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) @@ -106181,8 +103794,8 @@ goto st319;} goto st319;} } break; - case 1105: - case 1112: + case 1276: + case 1283: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) @@ -106202,14 +103815,14 @@ goto st319;} goto st319;} } break; - case 564: - case 565: - case 566: - case 567: - case 573: - case 574: - case 575: - case 576: + case 735: + case 736: + case 737: + case 738: + case 744: + case 745: + case 746: + case 747: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) @@ -106229,7 +103842,7 @@ goto st319;} goto st319;} } break; - case 1420: + case 1422: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) @@ -106249,8 +103862,8 @@ goto st319;} goto st319;} } break; - case 1092: - case 1120: + case 1263: + case 1291: { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) @@ -106270,10 +103883,10 @@ goto st319;} goto st319;} } break; - case 1429: - case 1432: - case 1435: - case 1438: + case 1431: + case 1434: + case 1437: + case 1440: { WARN(ZS_BAD_CHAR_DASH); p--; { if ( p == pe ) @@ -106293,7 +103906,7 @@ goto st319;} goto st319;} } break; - case 1425: + case 1427: { WARN(ZS_BAD_CHAR_COLON); p--; { if ( p == pe ) @@ -106499,8 +104112,8 @@ goto st319;} goto st319;} } break; - case 1106: - case 1113: + case 1277: + case 1284: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) diff --git a/src/libzscanner/scanner.c.t0 b/src/libzscanner/scanner.c.t0 index 1b724f1818..73493915e0 100644 --- a/src/libzscanner/scanner.c.t0 +++ b/src/libzscanner/scanner.c.t0 @@ -102,816 +102,744 @@ static const short _zone_scanner_actions[] = { 125, 1, 126, 1, 128, 1, 129, 1, 130, 1, 131, 1, 145, 1, 146, 1, 148, 1, 149, 1, 150, 1, 151, 1, - 152, 1, 159, 1, 160, 1, 161, 1, - 162, 1, 163, 1, 164, 1, 165, 1, - 166, 1, 167, 1, 168, 1, 169, 1, - 170, 1, 171, 1, 172, 1, 173, 1, - 174, 1, 175, 1, 176, 1, 177, 1, - 178, 1, 179, 1, 180, 1, 181, 1, - 182, 1, 183, 1, 184, 1, 185, 1, - 186, 1, 187, 1, 188, 1, 189, 1, - 190, 1, 191, 1, 192, 1, 193, 1, - 194, 1, 195, 1, 196, 1, 197, 1, - 198, 1, 199, 1, 200, 1, 201, 1, - 202, 1, 203, 1, 204, 1, 205, 1, - 206, 1, 207, 1, 208, 1, 209, 1, - 210, 1, 211, 1, 212, 1, 213, 1, - 214, 1, 215, 1, 216, 1, 217, 1, - 218, 1, 219, 1, 220, 1, 221, 1, - 222, 1, 223, 1, 224, 1, 225, 1, - 226, 1, 227, 1, 228, 1, 229, 1, - 230, 1, 231, 1, 232, 1, 233, 1, - 234, 1, 235, 1, 236, 1, 237, 1, - 238, 1, 239, 1, 240, 1, 241, 1, - 242, 1, 243, 1, 244, 1, 245, 1, - 246, 1, 247, 1, 248, 1, 249, 1, - 250, 1, 251, 1, 252, 1, 253, 1, - 254, 1, 255, 1, 256, 1, 257, 1, - 258, 1, 259, 1, 260, 1, 261, 1, - 262, 1, 264, 1, 266, 1, 267, 1, - 268, 1, 269, 1, 276, 1, 277, 1, - 282, 1, 284, 1, 289, 1, 292, 1, - 294, 1, 295, 1, 296, 1, 297, 1, - 302, 1, 303, 1, 305, 1, 306, 1, - 307, 1, 308, 1, 309, 1, 310, 1, - 312, 1, 313, 1, 314, 1, 315, 1, - 317, 2, 0, 49, 2, 1, 0, 2, - 1, 313, 2, 1, 368, 2, 2, 5, - 2, 2, 7, 2, 3, 5, 2, 3, - 7, 2, 4, 0, 2, 4, 5, 2, - 4, 7, 2, 4, 313, 2, 5, 2, - 2, 5, 3, 2, 5, 4, 2, 5, - 7, 2, 6, 1, 2, 7, 1, 2, - 7, 2, 2, 7, 3, 2, 7, 4, - 2, 7, 5, 2, 7, 32, 2, 8, - 73, 2, 8, 77, 2, 9, 10, 2, - 11, 1, 2, 12, 1, 2, 13, 14, - 2, 16, 17, 2, 18, 14, 2, 18, - 15, 2, 19, 24, 2, 19, 77, 2, - 19, 84, 2, 20, 0, 2, 20, 7, - 2, 22, 0, 2, 23, 13, 2, 26, - 69, 2, 26, 108, 2, 26, 119, 2, - 27, 0, 2, 27, 1, 2, 27, 2, - 2, 27, 3, 2, 27, 4, 2, 27, - 265, 2, 28, 69, 2, 28, 113, 2, - 29, 297, 2, 29, 301, 2, 30, 25, - 2, 31, 1, 2, 31, 2, 2, 31, - 3, 2, 31, 4, 2, 31, 7, 2, - 31, 93, 2, 32, 7, 2, 33, 8, - 2, 33, 312, 2, 33, 317, 2, 34, - 25, 2, 35, 0, 2, 35, 1, 2, - 35, 2, 2, 35, 3, 2, 35, 4, - 2, 35, 265, 2, 35, 304, 2, 36, - 41, 2, 37, 36, 2, 38, 73, 2, - 38, 282, 2, 38, 294, 2, 38, 295, - 2, 38, 312, 2, 38, 317, 2, 42, - 270, 2, 42, 271, 2, 42, 272, 2, - 42, 273, 2, 42, 274, 2, 42, 275, - 2, 45, 0, 2, 45, 1, 2, 45, - 2, 2, 45, 3, 2, 45, 4, 2, - 46, 0, 2, 46, 1, 2, 46, 2, - 2, 46, 3, 2, 46, 4, 2, 46, - 265, 2, 46, 297, 2, 47, 0, 2, - 47, 1, 2, 47, 2, 2, 47, 3, - 2, 47, 4, 2, 48, 311, 2, 49, - 1, 2, 49, 2, 2, 49, 3, 2, - 49, 4, 2, 56, 7, 2, 56, 47, - 2, 56, 93, 2, 57, 58, 2, 59, - 1, 2, 59, 2, 2, 59, 3, 2, - 59, 4, 2, 60, 312, 2, 62, 63, - 2, 64, 65, 2, 66, 68, 2, 68, - 0, 2, 68, 61, 2, 71, 0, 2, - 71, 312, 2, 75, 23, 2, 79, 69, - 2, 80, 7, 2, 81, 8, 2, 82, - 23, 2, 84, 8, 2, 90, 91, 2, - 92, 1, 2, 92, 2, 2, 92, 3, - 2, 92, 4, 2, 93, 1, 2, 93, - 2, 2, 93, 3, 2, 93, 4, 2, - 93, 7, 2, 94, 95, 2, 96, 294, - 2, 96, 312, 2, 97, 98, 2, 99, - 100, 2, 101, 102, 2, 101, 103, 2, - 101, 104, 2, 105, 106, 2, 107, 312, - 2, 110, 312, 2, 111, 0, 2, 127, - 312, 2, 129, 0, 2, 130, 0, 2, - 131, 0, 2, 132, 0, 2, 133, 0, - 2, 134, 0, 2, 135, 0, 2, 136, - 0, 2, 137, 0, 2, 138, 0, 2, - 139, 0, 2, 140, 0, 2, 141, 0, - 2, 142, 0, 2, 143, 0, 2, 144, - 0, 2, 146, 0, 2, 147, 0, 2, - 148, 0, 2, 149, 0, 2, 150, 0, - 2, 151, 0, 2, 152, 0, 2, 153, - 0, 2, 154, 0, 2, 155, 0, 2, - 156, 312, 2, 157, 312, 2, 158, 312, - 2, 159, 1, 2, 159, 2, 2, 159, - 3, 2, 159, 4, 2, 160, 1, 2, - 160, 2, 2, 160, 3, 2, 160, 4, - 2, 161, 1, 2, 161, 2, 2, 161, - 3, 2, 161, 4, 2, 162, 1, 2, - 162, 2, 2, 162, 3, 2, 162, 4, - 2, 163, 1, 2, 163, 2, 2, 163, - 3, 2, 163, 4, 2, 164, 1, 2, - 164, 2, 2, 164, 3, 2, 164, 4, - 2, 165, 1, 2, 165, 2, 2, 165, - 3, 2, 165, 4, 2, 166, 1, 2, - 166, 2, 2, 166, 3, 2, 166, 4, - 2, 167, 1, 2, 167, 2, 2, 167, - 3, 2, 167, 4, 2, 168, 1, 2, - 168, 2, 2, 168, 3, 2, 168, 4, - 2, 169, 1, 2, 169, 2, 2, 169, - 3, 2, 169, 4, 2, 170, 1, 2, - 170, 2, 2, 170, 3, 2, 170, 4, - 2, 171, 1, 2, 171, 2, 2, 171, - 3, 2, 171, 4, 2, 172, 1, 2, - 172, 2, 2, 172, 3, 2, 172, 4, - 2, 173, 1, 2, 173, 2, 2, 173, - 3, 2, 173, 4, 2, 174, 1, 2, - 174, 2, 2, 174, 3, 2, 174, 4, - 2, 175, 1, 2, 175, 2, 2, 175, - 3, 2, 175, 4, 2, 176, 1, 2, - 176, 2, 2, 176, 3, 2, 176, 4, - 2, 177, 1, 2, 177, 2, 2, 177, - 3, 2, 177, 4, 2, 178, 1, 2, - 178, 2, 2, 178, 3, 2, 178, 4, - 2, 179, 1, 2, 179, 2, 2, 179, - 3, 2, 179, 4, 2, 180, 1, 2, - 180, 2, 2, 180, 3, 2, 180, 4, - 2, 181, 1, 2, 181, 2, 2, 181, - 3, 2, 181, 4, 2, 182, 1, 2, - 182, 2, 2, 182, 3, 2, 182, 4, - 2, 183, 1, 2, 183, 2, 2, 183, - 3, 2, 183, 4, 2, 184, 1, 2, - 184, 2, 2, 184, 3, 2, 184, 4, - 2, 185, 1, 2, 185, 2, 2, 185, - 3, 2, 185, 4, 2, 186, 1, 2, - 186, 2, 2, 186, 3, 2, 186, 4, - 2, 187, 1, 2, 187, 2, 2, 187, - 3, 2, 187, 4, 2, 188, 1, 2, - 188, 2, 2, 188, 3, 2, 188, 4, - 2, 189, 1, 2, 189, 2, 2, 189, - 3, 2, 189, 4, 2, 190, 1, 2, - 190, 2, 2, 190, 3, 2, 190, 4, - 2, 191, 1, 2, 191, 2, 2, 191, - 3, 2, 191, 4, 2, 192, 1, 2, - 192, 2, 2, 192, 3, 2, 192, 4, - 2, 193, 1, 2, 193, 2, 2, 193, - 3, 2, 193, 4, 2, 194, 1, 2, - 194, 2, 2, 194, 3, 2, 194, 4, - 2, 195, 1, 2, 195, 2, 2, 195, - 3, 2, 195, 4, 2, 196, 1, 2, - 196, 2, 2, 196, 3, 2, 196, 4, - 2, 197, 1, 2, 197, 2, 2, 197, - 3, 2, 197, 4, 2, 198, 1, 2, - 198, 2, 2, 198, 3, 2, 198, 4, - 2, 199, 1, 2, 199, 2, 2, 199, - 3, 2, 199, 4, 2, 200, 1, 2, - 200, 2, 2, 200, 3, 2, 200, 4, - 2, 201, 1, 2, 201, 2, 2, 201, - 3, 2, 201, 4, 2, 202, 1, 2, - 202, 2, 2, 202, 3, 2, 202, 4, - 2, 203, 1, 2, 203, 2, 2, 203, - 3, 2, 203, 4, 2, 204, 1, 2, - 204, 2, 2, 204, 3, 2, 204, 4, - 2, 205, 1, 2, 205, 2, 2, 205, - 3, 2, 205, 4, 2, 206, 1, 2, - 206, 2, 2, 206, 3, 2, 206, 4, - 2, 207, 1, 2, 207, 2, 2, 207, - 3, 2, 207, 4, 2, 208, 1, 2, - 208, 2, 2, 208, 3, 2, 208, 4, - 2, 209, 1, 2, 209, 2, 2, 209, - 3, 2, 209, 4, 2, 210, 1, 2, - 210, 2, 2, 210, 3, 2, 210, 4, - 2, 211, 1, 2, 211, 2, 2, 211, - 3, 2, 211, 4, 2, 212, 1, 2, - 212, 2, 2, 212, 3, 2, 212, 4, - 2, 213, 1, 2, 213, 2, 2, 213, - 3, 2, 213, 4, 2, 214, 1, 2, - 214, 2, 2, 214, 3, 2, 214, 4, - 2, 215, 1, 2, 215, 2, 2, 215, - 3, 2, 215, 4, 2, 216, 1, 2, - 216, 2, 2, 216, 3, 2, 216, 4, - 2, 217, 1, 2, 217, 2, 2, 217, - 3, 2, 217, 4, 2, 218, 1, 2, - 218, 2, 2, 218, 3, 2, 218, 4, - 2, 219, 1, 2, 219, 2, 2, 219, - 3, 2, 219, 4, 2, 220, 1, 2, - 220, 2, 2, 220, 3, 2, 220, 4, - 2, 221, 1, 2, 221, 2, 2, 221, - 3, 2, 221, 4, 2, 222, 1, 2, - 222, 2, 2, 222, 3, 2, 222, 4, - 2, 223, 1, 2, 223, 2, 2, 223, - 3, 2, 223, 4, 2, 224, 1, 2, - 224, 2, 2, 224, 3, 2, 224, 4, - 2, 225, 1, 2, 225, 2, 2, 225, - 3, 2, 225, 4, 2, 226, 1, 2, - 226, 2, 2, 226, 3, 2, 226, 4, - 2, 227, 1, 2, 227, 2, 2, 227, - 3, 2, 227, 4, 2, 228, 1, 2, - 228, 2, 2, 228, 3, 2, 228, 4, - 2, 229, 1, 2, 229, 2, 2, 229, - 3, 2, 229, 4, 2, 230, 1, 2, - 230, 2, 2, 230, 3, 2, 230, 4, - 2, 231, 1, 2, 231, 2, 2, 231, - 3, 2, 231, 4, 2, 232, 1, 2, - 232, 2, 2, 232, 3, 2, 232, 4, - 2, 233, 1, 2, 233, 2, 2, 233, - 3, 2, 233, 4, 2, 234, 1, 2, - 234, 2, 2, 234, 3, 2, 234, 4, - 2, 235, 1, 2, 235, 2, 2, 235, - 3, 2, 235, 4, 2, 236, 1, 2, - 236, 2, 2, 236, 3, 2, 236, 4, - 2, 237, 1, 2, 237, 2, 2, 237, - 3, 2, 237, 4, 2, 238, 1, 2, - 238, 2, 2, 238, 3, 2, 238, 4, - 2, 239, 1, 2, 239, 2, 2, 239, - 3, 2, 239, 4, 2, 240, 1, 2, - 240, 2, 2, 240, 3, 2, 240, 4, - 2, 241, 1, 2, 241, 2, 2, 241, - 3, 2, 241, 4, 2, 242, 1, 2, - 242, 2, 2, 242, 3, 2, 242, 4, - 2, 243, 1, 2, 243, 2, 2, 243, - 3, 2, 243, 4, 2, 244, 1, 2, - 244, 2, 2, 244, 3, 2, 244, 4, - 2, 245, 1, 2, 245, 2, 2, 245, - 3, 2, 245, 4, 2, 246, 1, 2, - 246, 2, 2, 246, 3, 2, 246, 4, - 2, 247, 1, 2, 247, 2, 2, 247, - 3, 2, 247, 4, 2, 248, 1, 2, - 248, 2, 2, 248, 3, 2, 248, 4, - 2, 249, 1, 2, 249, 2, 2, 249, - 3, 2, 249, 4, 2, 250, 1, 2, - 250, 2, 2, 250, 3, 2, 250, 4, - 2, 251, 1, 2, 251, 2, 2, 251, - 3, 2, 251, 4, 2, 252, 1, 2, - 252, 2, 2, 252, 3, 2, 252, 4, - 2, 253, 1, 2, 253, 2, 2, 253, - 3, 2, 253, 4, 2, 254, 1, 2, - 254, 2, 2, 254, 3, 2, 254, 4, - 2, 255, 1, 2, 255, 2, 2, 255, - 3, 2, 255, 4, 2, 256, 1, 2, - 256, 2, 2, 256, 3, 2, 256, 4, - 2, 257, 1, 2, 257, 2, 2, 257, - 3, 2, 257, 4, 2, 258, 1, 2, - 258, 2, 2, 258, 3, 2, 258, 4, - 2, 259, 1, 2, 259, 2, 2, 259, - 3, 2, 259, 4, 2, 260, 1, 2, - 260, 2, 2, 260, 3, 2, 260, 4, - 2, 261, 1, 2, 261, 2, 2, 261, - 3, 2, 261, 4, 2, 262, 1, 2, - 262, 2, 2, 262, 3, 2, 262, 4, - 2, 263, 0, 2, 266, 1, 2, 266, - 2, 2, 266, 3, 2, 266, 4, 2, - 267, 1, 2, 267, 2, 2, 267, 3, - 2, 267, 4, 2, 268, 1, 2, 268, - 2, 2, 268, 3, 2, 268, 4, 2, - 269, 1, 2, 269, 2, 2, 269, 3, - 2, 269, 4, 2, 276, 1, 2, 276, - 2, 2, 276, 3, 2, 276, 4, 2, - 277, 1, 2, 277, 2, 2, 277, 3, - 2, 277, 4, 2, 280, 0, 2, 281, - 312, 2, 283, 108, 2, 288, 108, 2, - 292, 1, 2, 292, 2, 2, 292, 3, - 2, 292, 4, 2, 293, 0, 2, 297, - 1, 2, 297, 2, 2, 297, 3, 2, - 297, 4, 2, 312, 8, 2, 313, 1, - 2, 313, 4, 2, 316, 313, 2, 317, - 8, 2, 317, 312, 2, 318, 311, 2, - 319, 311, 2, 320, 311, 2, 321, 311, - 2, 322, 311, 2, 323, 311, 2, 324, - 311, 2, 325, 311, 2, 326, 311, 2, - 327, 311, 2, 328, 311, 2, 329, 311, - 2, 330, 311, 2, 331, 311, 2, 332, - 311, 2, 333, 311, 2, 334, 311, 2, - 335, 311, 2, 336, 311, 2, 337, 311, - 2, 338, 311, 2, 339, 311, 2, 340, - 311, 2, 341, 311, 2, 342, 311, 2, - 343, 311, 2, 344, 311, 2, 345, 311, - 2, 346, 311, 2, 347, 311, 2, 348, - 311, 2, 349, 311, 2, 350, 311, 2, - 351, 311, 2, 352, 311, 2, 353, 311, - 2, 354, 311, 2, 355, 311, 2, 356, - 311, 2, 357, 311, 2, 358, 311, 2, - 359, 311, 2, 360, 311, 2, 361, 311, - 2, 362, 311, 2, 363, 311, 2, 364, - 311, 2, 365, 311, 2, 366, 311, 2, - 367, 311, 2, 368, 1, 3, 0, 49, - 1, 3, 0, 49, 2, 3, 0, 49, - 3, 3, 0, 49, 4, 3, 1, 7, - 368, 3, 1, 32, 7, 3, 1, 71, - 0, 3, 1, 111, 0, 3, 1, 263, - 0, 3, 1, 280, 0, 3, 1, 293, - 0, 3, 1, 313, 368, 3, 2, 7, - 32, 3, 2, 32, 7, 3, 3, 7, - 32, 3, 3, 32, 7, 3, 4, 7, - 32, 3, 4, 32, 7, 3, 4, 71, - 0, 3, 4, 111, 0, 3, 4, 263, - 0, 3, 4, 280, 0, 3, 4, 293, - 0, 3, 4, 313, 7, 3, 5, 7, - 2, 3, 5, 7, 3, 3, 5, 7, - 4, 3, 6, 1, 368, 3, 6, 368, - 1, 3, 7, 2, 5, 3, 7, 2, - 32, 3, 7, 3, 5, 3, 7, 3, - 32, 3, 7, 4, 5, 3, 7, 4, - 32, 3, 7, 368, 1, 3, 9, 11, - 1, 3, 15, 21, 0, 3, 20, 7, - 2, 3, 20, 7, 3, 3, 20, 7, - 4, 3, 20, 83, 7, 3, 23, 13, - 14, 3, 27, 71, 0, 3, 27, 299, - 29, 3, 28, 94, 95, 3, 29, 297, - 1, 3, 29, 297, 2, 3, 29, 297, - 3, 3, 29, 297, 4, 3, 29, 301, - 297, 3, 31, 1, 93, 3, 31, 2, - 7, 3, 31, 2, 93, 3, 31, 3, - 7, 3, 31, 3, 93, 3, 31, 4, - 7, 3, 31, 4, 93, 3, 31, 93, - 7, 3, 31, 316, 313, 3, 31, 318, - 311, 3, 32, 1, 7, 3, 32, 2, - 7, 3, 32, 3, 7, 3, 32, 4, - 7, 3, 33, 89, 8, 3, 33, 312, - 8, 3, 33, 317, 8, 3, 33, 317, - 312, 3, 35, 1, 0, 3, 35, 4, - 0, 3, 37, 36, 313, 3, 38, 156, - 312, 3, 38, 158, 312, 3, 38, 317, - 8, 3, 38, 317, 312, 3, 40, 42, - 270, 3, 40, 42, 271, 3, 40, 42, - 272, 3, 40, 42, 273, 3, 40, 42, - 274, 3, 40, 42, 275, 3, 42, 270, - 1, 3, 42, 270, 2, 3, 42, 270, - 3, 3, 42, 270, 4, 3, 42, 271, - 1, 3, 42, 271, 2, 3, 42, 271, - 3, 3, 42, 271, 4, 3, 42, 272, - 1, 3, 42, 272, 2, 3, 42, 272, - 3, 3, 42, 272, 4, 3, 42, 273, - 1, 3, 42, 273, 2, 3, 42, 273, - 3, 3, 42, 273, 4, 3, 42, 274, - 1, 3, 42, 274, 2, 3, 42, 274, - 3, 3, 42, 274, 4, 3, 42, 275, - 1, 3, 42, 275, 2, 3, 42, 275, - 3, 3, 42, 275, 4, 3, 46, 145, - 297, 3, 46, 297, 1, 3, 46, 297, - 2, 3, 46, 297, 3, 3, 46, 297, - 4, 3, 48, 311, 1, 3, 48, 311, - 2, 3, 48, 311, 3, 3, 48, 311, - 4, 3, 48, 311, 313, 3, 50, 38, - 73, 3, 50, 38, 312, 3, 50, 38, - 317, 3, 55, 37, 36, 3, 56, 7, - 2, 3, 56, 7, 3, 3, 56, 7, - 4, 3, 56, 47, 0, 3, 56, 47, - 1, 3, 56, 47, 2, 3, 56, 47, - 3, 3, 56, 47, 4, 3, 56, 93, - 1, 3, 56, 93, 2, 3, 56, 93, - 3, 3, 56, 93, 4, 3, 66, 68, - 0, 3, 66, 68, 61, 3, 67, 62, - 63, 3, 68, 61, 0, 3, 70, 26, - 69, 3, 72, 0, 1, 3, 75, 23, - 13, 3, 76, 0, 1, 3, 80, 2, - 7, 3, 80, 3, 7, 3, 80, 4, - 7, 3, 80, 7, 4, 3, 82, 23, - 13, 3, 85, 0, 1, 3, 88, 7, - 1, 3, 88, 7, 4, 3, 88, 30, - 25, 3, 88, 32, 7, 3, 90, 30, - 25, 3, 90, 91, 313, 3, 93, 2, - 7, 3, 93, 3, 7, 3, 93, 4, - 7, 3, 96, 107, 312, 3, 96, 156, - 312, 3, 97, 98, 0, 3, 97, 98, - 1, 3, 97, 98, 2, 3, 97, 98, - 3, 3, 97, 98, 4, 3, 97, 98, - 29, 3, 99, 100, 0, 3, 99, 100, - 1, 3, 99, 100, 2, 3, 99, 100, - 3, 3, 99, 100, 4, 3, 99, 100, - 29, 3, 105, 106, 0, 3, 105, 106, - 1, 3, 105, 106, 2, 3, 105, 106, - 3, 3, 105, 106, 4, 3, 110, 112, - 282, 3, 110, 291, 312, 3, 147, 145, - 297, 3, 153, 145, 297, 3, 156, 157, - 312, 3, 211, 263, 0, 3, 212, 263, - 0, 3, 213, 263, 0, 3, 214, 263, - 0, 3, 215, 263, 0, 3, 216, 263, - 0, 3, 217, 263, 0, 3, 218, 263, - 0, 3, 219, 263, 0, 3, 220, 263, - 0, 3, 221, 263, 0, 3, 222, 263, - 0, 3, 223, 263, 0, 3, 224, 263, - 0, 3, 225, 263, 0, 3, 226, 263, - 0, 3, 227, 263, 0, 3, 228, 263, - 0, 3, 229, 263, 0, 3, 230, 263, - 0, 3, 231, 263, 0, 3, 232, 263, - 0, 3, 233, 263, 0, 3, 234, 263, - 0, 3, 235, 263, 0, 3, 236, 263, - 0, 3, 237, 263, 0, 3, 238, 263, - 0, 3, 239, 263, 0, 3, 240, 263, - 0, 3, 241, 263, 0, 3, 242, 263, - 0, 3, 243, 263, 0, 3, 244, 263, - 0, 3, 245, 263, 0, 3, 246, 263, - 0, 3, 247, 263, 0, 3, 248, 263, - 0, 3, 249, 263, 0, 3, 250, 263, - 0, 3, 251, 263, 0, 3, 252, 263, - 0, 3, 253, 263, 0, 3, 254, 263, - 0, 3, 255, 263, 0, 3, 256, 263, - 0, 3, 257, 263, 0, 3, 258, 263, - 0, 3, 259, 263, 0, 3, 260, 263, - 0, 3, 261, 263, 0, 3, 262, 263, - 0, 3, 279, 37, 36, 3, 284, 285, - 0, 3, 284, 286, 0, 3, 287, 110, - 312, 3, 289, 290, 0, 3, 291, 110, - 312, 3, 292, 293, 0, 3, 297, 293, - 0, 3, 300, 28, 303, 3, 312, 8, - 89, 3, 313, 7, 1, 3, 313, 7, - 4, 3, 313, 30, 25, 3, 313, 368, - 1, 3, 315, 30, 25, 3, 317, 312, - 8, 3, 318, 311, 1, 3, 318, 311, - 2, 3, 318, 311, 3, 3, 318, 311, - 4, 3, 318, 311, 7, 3, 318, 311, - 313, 3, 319, 311, 1, 3, 319, 311, - 2, 3, 319, 311, 3, 3, 319, 311, - 4, 3, 319, 311, 313, 3, 320, 311, - 1, 3, 320, 311, 2, 3, 320, 311, - 3, 3, 320, 311, 4, 3, 320, 311, - 313, 3, 321, 311, 1, 3, 321, 311, - 2, 3, 321, 311, 3, 3, 321, 311, - 4, 3, 321, 311, 313, 3, 322, 311, - 1, 3, 322, 311, 2, 3, 322, 311, - 3, 3, 322, 311, 4, 3, 322, 311, - 313, 3, 323, 311, 1, 3, 323, 311, - 2, 3, 323, 311, 3, 3, 323, 311, - 4, 3, 323, 311, 313, 3, 324, 311, - 1, 3, 324, 311, 2, 3, 324, 311, - 3, 3, 324, 311, 4, 3, 324, 311, - 313, 3, 325, 311, 1, 3, 325, 311, - 2, 3, 325, 311, 3, 3, 325, 311, - 4, 3, 325, 311, 313, 3, 326, 311, - 1, 3, 326, 311, 2, 3, 326, 311, - 3, 3, 326, 311, 4, 3, 326, 311, - 313, 3, 327, 311, 1, 3, 327, 311, - 2, 3, 327, 311, 3, 3, 327, 311, - 4, 3, 327, 311, 313, 3, 328, 311, - 1, 3, 328, 311, 2, 3, 328, 311, - 3, 3, 328, 311, 4, 3, 328, 311, - 313, 3, 329, 311, 1, 3, 329, 311, - 2, 3, 329, 311, 3, 3, 329, 311, - 4, 3, 329, 311, 313, 3, 330, 311, - 1, 3, 330, 311, 2, 3, 330, 311, - 3, 3, 330, 311, 4, 3, 330, 311, - 313, 3, 331, 311, 1, 3, 331, 311, - 2, 3, 331, 311, 3, 3, 331, 311, - 4, 3, 331, 311, 313, 3, 332, 311, - 1, 3, 332, 311, 2, 3, 332, 311, - 3, 3, 332, 311, 4, 3, 332, 311, - 313, 3, 333, 311, 1, 3, 333, 311, - 2, 3, 333, 311, 3, 3, 333, 311, - 4, 3, 333, 311, 313, 3, 334, 311, - 1, 3, 334, 311, 2, 3, 334, 311, - 3, 3, 334, 311, 4, 3, 334, 311, - 313, 3, 335, 311, 1, 3, 335, 311, - 2, 3, 335, 311, 3, 3, 335, 311, - 4, 3, 335, 311, 313, 3, 336, 311, - 1, 3, 336, 311, 2, 3, 336, 311, - 3, 3, 336, 311, 4, 3, 336, 311, - 313, 3, 337, 311, 1, 3, 337, 311, - 2, 3, 337, 311, 3, 3, 337, 311, - 4, 3, 337, 311, 313, 3, 338, 311, - 1, 3, 338, 311, 2, 3, 338, 311, - 3, 3, 338, 311, 4, 3, 338, 311, - 313, 3, 339, 311, 1, 3, 339, 311, - 2, 3, 339, 311, 3, 3, 339, 311, - 4, 3, 339, 311, 313, 3, 340, 311, - 1, 3, 340, 311, 2, 3, 340, 311, - 3, 3, 340, 311, 4, 3, 340, 311, - 313, 3, 341, 311, 1, 3, 341, 311, - 2, 3, 341, 311, 3, 3, 341, 311, - 4, 3, 341, 311, 313, 3, 342, 311, - 1, 3, 342, 311, 2, 3, 342, 311, - 3, 3, 342, 311, 4, 3, 342, 311, - 313, 3, 343, 311, 1, 3, 343, 311, - 2, 3, 343, 311, 3, 3, 343, 311, - 4, 3, 343, 311, 313, 3, 344, 311, - 1, 3, 344, 311, 2, 3, 344, 311, - 3, 3, 344, 311, 4, 3, 344, 311, - 313, 3, 345, 311, 1, 3, 345, 311, - 2, 3, 345, 311, 3, 3, 345, 311, - 4, 3, 345, 311, 313, 3, 346, 311, - 1, 3, 346, 311, 2, 3, 346, 311, - 3, 3, 346, 311, 4, 3, 346, 311, - 313, 3, 347, 311, 1, 3, 347, 311, - 2, 3, 347, 311, 3, 3, 347, 311, - 4, 3, 347, 311, 313, 3, 348, 311, - 1, 3, 348, 311, 2, 3, 348, 311, - 3, 3, 348, 311, 4, 3, 348, 311, - 313, 3, 349, 311, 1, 3, 349, 311, - 2, 3, 349, 311, 3, 3, 349, 311, - 4, 3, 349, 311, 313, 3, 350, 311, - 1, 3, 350, 311, 2, 3, 350, 311, - 3, 3, 350, 311, 4, 3, 350, 311, - 313, 3, 351, 311, 1, 3, 351, 311, - 2, 3, 351, 311, 3, 3, 351, 311, - 4, 3, 351, 311, 313, 3, 352, 311, - 1, 3, 352, 311, 2, 3, 352, 311, - 3, 3, 352, 311, 4, 3, 352, 311, - 313, 3, 353, 311, 1, 3, 353, 311, - 2, 3, 353, 311, 3, 3, 353, 311, - 4, 3, 353, 311, 313, 3, 354, 311, - 1, 3, 354, 311, 2, 3, 354, 311, - 3, 3, 354, 311, 4, 3, 354, 311, - 313, 3, 355, 311, 1, 3, 355, 311, - 2, 3, 355, 311, 3, 3, 355, 311, - 4, 3, 355, 311, 313, 3, 356, 311, - 1, 3, 356, 311, 2, 3, 356, 311, - 3, 3, 356, 311, 4, 3, 356, 311, - 313, 3, 357, 311, 1, 3, 357, 311, - 2, 3, 357, 311, 3, 3, 357, 311, - 4, 3, 357, 311, 313, 3, 358, 311, - 1, 3, 358, 311, 2, 3, 358, 311, - 3, 3, 358, 311, 4, 3, 358, 311, - 313, 3, 359, 311, 1, 3, 359, 311, - 2, 3, 359, 311, 3, 3, 359, 311, - 4, 3, 359, 311, 313, 3, 360, 311, - 1, 3, 360, 311, 2, 3, 360, 311, - 3, 3, 360, 311, 4, 3, 360, 311, - 313, 3, 361, 311, 1, 3, 361, 311, - 2, 3, 361, 311, 3, 3, 361, 311, - 4, 3, 361, 311, 313, 3, 362, 311, - 1, 3, 362, 311, 2, 3, 362, 311, - 3, 3, 362, 311, 4, 3, 362, 311, - 313, 3, 363, 311, 1, 3, 363, 311, - 2, 3, 363, 311, 3, 3, 363, 311, - 4, 3, 363, 311, 313, 3, 364, 311, - 1, 3, 364, 311, 2, 3, 364, 311, - 3, 3, 364, 311, 4, 3, 364, 311, - 313, 3, 365, 311, 1, 3, 365, 311, - 2, 3, 365, 311, 3, 3, 365, 311, - 4, 3, 365, 311, 313, 3, 366, 311, - 1, 3, 366, 311, 2, 3, 366, 311, - 3, 3, 366, 311, 4, 3, 366, 311, - 313, 3, 367, 311, 1, 3, 367, 311, - 2, 3, 367, 311, 3, 3, 367, 311, - 4, 3, 367, 311, 313, 3, 368, 1, - 6, 4, 1, 7, 368, 32, 4, 1, - 313, 32, 7, 4, 4, 313, 7, 32, - 4, 4, 313, 32, 7, 4, 6, 1, - 7, 368, 4, 6, 1, 85, 0, 4, - 6, 72, 0, 1, 4, 6, 76, 0, - 1, 4, 6, 85, 0, 1, 4, 7, - 6, 368, 1, 4, 7, 72, 0, 1, - 4, 7, 368, 1, 6, 4, 7, 368, - 1, 32, 4, 18, 15, 21, 0, 4, - 20, 83, 7, 2, 4, 20, 83, 7, - 3, 4, 20, 83, 7, 4, 4, 27, - 1, 71, 0, 4, 27, 4, 71, 0, - 4, 27, 299, 29, 297, 4, 29, 297, - 293, 0, 4, 29, 301, 297, 1, 4, - 29, 301, 297, 2, 4, 29, 301, 297, - 3, 4, 29, 301, 297, 4, 4, 31, - 1, 7, 368, 4, 31, 1, 316, 313, - 4, 31, 1, 318, 311, 4, 31, 2, - 93, 7, 4, 31, 2, 316, 313, 4, - 31, 2, 318, 311, 4, 31, 3, 93, - 7, 4, 31, 3, 316, 313, 4, 31, - 3, 318, 311, 4, 31, 4, 93, 7, - 4, 31, 4, 316, 313, 4, 31, 4, - 318, 311, 4, 31, 318, 311, 7, 4, - 33, 38, 317, 8, 4, 33, 50, 38, - 317, 4, 33, 317, 312, 8, 4, 37, - 36, 30, 25, 4, 38, 317, 312, 8, - 4, 40, 37, 36, 41, 4, 40, 42, - 270, 1, 4, 40, 42, 270, 2, 4, - 40, 42, 270, 3, 4, 40, 42, 270, - 4, 4, 40, 42, 271, 1, 4, 40, - 42, 271, 2, 4, 40, 42, 271, 3, - 4, 40, 42, 271, 4, 4, 40, 42, - 272, 1, 4, 40, 42, 272, 2, 4, - 40, 42, 272, 3, 4, 40, 42, 272, - 4, 4, 40, 42, 273, 1, 4, 40, - 42, 273, 2, 4, 40, 42, 273, 3, - 4, 40, 42, 273, 4, 4, 40, 42, - 274, 1, 4, 40, 42, 274, 2, 4, - 40, 42, 274, 3, 4, 40, 42, 274, - 4, 4, 40, 42, 275, 1, 4, 40, - 42, 275, 2, 4, 40, 42, 275, 3, - 4, 40, 42, 275, 4, 4, 42, 272, - 280, 0, 4, 42, 273, 280, 0, 4, - 42, 274, 280, 0, 4, 42, 275, 280, - 0, 4, 43, 39, 37, 36, 4, 44, - 39, 37, 36, 4, 46, 145, 297, 1, - 4, 46, 145, 297, 2, 4, 46, 145, - 297, 3, 4, 46, 145, 297, 4, 4, - 46, 297, 293, 0, 4, 48, 311, 1, - 313, 4, 48, 311, 4, 313, 4, 50, - 38, 8, 73, 4, 56, 55, 37, 36, - 4, 66, 68, 61, 0, 4, 75, 23, - 13, 14, 4, 82, 23, 13, 14, 4, - 88, 32, 1, 7, 4, 88, 32, 2, - 7, 4, 88, 32, 3, 7, 4, 88, - 32, 4, 7, 4, 90, 91, 30, 25, - 4, 93, 1, 7, 368, 4, 96, 156, - 157, 312, 4, 97, 98, 1, 0, 4, - 97, 98, 4, 0, 4, 97, 98, 29, - 297, 4, 99, 100, 1, 0, 4, 99, - 100, 4, 0, 4, 99, 100, 29, 297, - 4, 105, 106, 1, 0, 4, 105, 106, - 4, 0, 4, 147, 145, 297, 1, 4, - 147, 145, 297, 2, 4, 147, 145, 297, - 3, 4, 147, 145, 297, 4, 4, 147, - 302, 37, 36, 4, 153, 145, 297, 1, - 4, 153, 145, 297, 2, 4, 153, 145, - 297, 3, 4, 153, 145, 297, 4, 4, - 211, 1, 263, 0, 4, 211, 4, 263, - 0, 4, 212, 1, 263, 0, 4, 212, - 4, 263, 0, 4, 213, 1, 263, 0, - 4, 213, 4, 263, 0, 4, 214, 1, - 263, 0, 4, 214, 4, 263, 0, 4, - 215, 1, 263, 0, 4, 215, 4, 263, - 0, 4, 216, 1, 263, 0, 4, 216, - 4, 263, 0, 4, 217, 1, 263, 0, - 4, 217, 4, 263, 0, 4, 218, 1, - 263, 0, 4, 218, 4, 263, 0, 4, - 219, 1, 263, 0, 4, 219, 4, 263, - 0, 4, 220, 1, 263, 0, 4, 220, - 4, 263, 0, 4, 221, 1, 263, 0, - 4, 221, 4, 263, 0, 4, 222, 1, - 263, 0, 4, 222, 4, 263, 0, 4, - 223, 1, 263, 0, 4, 223, 4, 263, - 0, 4, 224, 1, 263, 0, 4, 224, - 4, 263, 0, 4, 225, 1, 263, 0, - 4, 225, 4, 263, 0, 4, 226, 1, - 263, 0, 4, 226, 4, 263, 0, 4, - 227, 1, 263, 0, 4, 227, 4, 263, - 0, 4, 228, 1, 263, 0, 4, 228, - 4, 263, 0, 4, 229, 1, 263, 0, - 4, 229, 4, 263, 0, 4, 230, 1, - 263, 0, 4, 230, 4, 263, 0, 4, - 231, 1, 263, 0, 4, 231, 4, 263, - 0, 4, 232, 1, 263, 0, 4, 232, - 4, 263, 0, 4, 233, 1, 263, 0, - 4, 233, 4, 263, 0, 4, 234, 1, - 263, 0, 4, 234, 4, 263, 0, 4, - 235, 1, 263, 0, 4, 235, 4, 263, - 0, 4, 236, 1, 263, 0, 4, 236, - 4, 263, 0, 4, 237, 1, 263, 0, - 4, 237, 4, 263, 0, 4, 238, 1, - 263, 0, 4, 238, 4, 263, 0, 4, - 239, 1, 263, 0, 4, 239, 4, 263, - 0, 4, 240, 1, 263, 0, 4, 240, - 4, 263, 0, 4, 241, 1, 263, 0, - 4, 241, 4, 263, 0, 4, 242, 1, - 263, 0, 4, 242, 4, 263, 0, 4, - 243, 1, 263, 0, 4, 243, 4, 263, - 0, 4, 244, 1, 263, 0, 4, 244, - 4, 263, 0, 4, 245, 1, 263, 0, - 4, 245, 4, 263, 0, 4, 246, 1, - 263, 0, 4, 246, 4, 263, 0, 4, - 247, 1, 263, 0, 4, 247, 4, 263, - 0, 4, 248, 1, 263, 0, 4, 248, - 4, 263, 0, 4, 249, 1, 263, 0, - 4, 249, 4, 263, 0, 4, 250, 1, - 263, 0, 4, 250, 4, 263, 0, 4, - 251, 1, 263, 0, 4, 251, 4, 263, - 0, 4, 252, 1, 263, 0, 4, 252, - 4, 263, 0, 4, 253, 1, 263, 0, - 4, 253, 4, 263, 0, 4, 254, 1, - 263, 0, 4, 254, 4, 263, 0, 4, - 255, 1, 263, 0, 4, 255, 4, 263, - 0, 4, 256, 1, 263, 0, 4, 256, - 4, 263, 0, 4, 257, 1, 263, 0, - 4, 257, 4, 263, 0, 4, 258, 1, - 263, 0, 4, 258, 4, 263, 0, 4, - 259, 1, 263, 0, 4, 259, 4, 263, - 0, 4, 260, 1, 263, 0, 4, 260, - 4, 263, 0, 4, 261, 1, 263, 0, - 4, 261, 4, 263, 0, 4, 262, 1, - 263, 0, 4, 262, 4, 263, 0, 4, - 292, 1, 293, 0, 4, 292, 4, 293, - 0, 4, 297, 1, 293, 0, 4, 297, - 4, 293, 0, 4, 298, 28, 26, 69, - 4, 313, 7, 368, 1, 4, 318, 311, - 1, 313, 4, 318, 311, 2, 7, 4, - 318, 311, 3, 7, 4, 318, 311, 4, - 7, 4, 318, 311, 4, 313, 4, 319, - 311, 1, 313, 4, 319, 311, 4, 313, - 4, 320, 311, 1, 313, 4, 320, 311, - 4, 313, 4, 321, 311, 1, 313, 4, - 321, 311, 4, 313, 4, 322, 311, 1, - 313, 4, 322, 311, 4, 313, 4, 323, - 311, 1, 313, 4, 323, 311, 4, 313, - 4, 324, 311, 1, 313, 4, 324, 311, - 4, 313, 4, 325, 311, 1, 313, 4, - 325, 311, 4, 313, 4, 326, 311, 1, - 313, 4, 326, 311, 4, 313, 4, 327, - 311, 1, 313, 4, 327, 311, 4, 313, - 4, 328, 311, 1, 313, 4, 328, 311, - 4, 313, 4, 329, 311, 1, 313, 4, - 329, 311, 4, 313, 4, 330, 311, 1, - 313, 4, 330, 311, 4, 313, 4, 331, - 311, 1, 313, 4, 331, 311, 4, 313, - 4, 332, 311, 1, 313, 4, 332, 311, - 4, 313, 4, 333, 311, 1, 313, 4, - 333, 311, 4, 313, 4, 334, 311, 1, - 313, 4, 334, 311, 4, 313, 4, 335, - 311, 1, 313, 4, 335, 311, 4, 313, - 4, 336, 311, 1, 313, 4, 336, 311, - 4, 313, 4, 337, 311, 1, 313, 4, - 337, 311, 4, 313, 4, 338, 311, 1, - 313, 4, 338, 311, 4, 313, 4, 339, - 311, 1, 313, 4, 339, 311, 4, 313, - 4, 340, 311, 1, 313, 4, 340, 311, - 4, 313, 4, 341, 311, 1, 313, 4, - 341, 311, 4, 313, 4, 342, 311, 1, - 313, 4, 342, 311, 4, 313, 4, 343, - 311, 1, 313, 4, 343, 311, 4, 313, - 4, 344, 311, 1, 313, 4, 344, 311, - 4, 313, 4, 345, 311, 1, 313, 4, - 345, 311, 4, 313, 4, 346, 311, 1, - 313, 4, 346, 311, 4, 313, 4, 347, - 311, 1, 313, 4, 347, 311, 4, 313, - 4, 348, 311, 1, 313, 4, 348, 311, - 4, 313, 4, 349, 311, 1, 313, 4, - 349, 311, 4, 313, 4, 350, 311, 1, - 313, 4, 350, 311, 4, 313, 4, 351, - 311, 1, 313, 4, 351, 311, 4, 313, - 4, 352, 311, 1, 313, 4, 352, 311, - 4, 313, 4, 353, 311, 1, 313, 4, - 353, 311, 4, 313, 4, 354, 311, 1, - 313, 4, 354, 311, 4, 313, 4, 355, - 311, 1, 313, 4, 355, 311, 4, 313, - 4, 356, 311, 1, 313, 4, 356, 311, - 4, 313, 4, 357, 311, 1, 313, 4, - 357, 311, 4, 313, 4, 358, 311, 1, - 313, 4, 358, 311, 4, 313, 4, 359, - 311, 1, 313, 4, 359, 311, 4, 313, - 4, 360, 311, 1, 313, 4, 360, 311, - 4, 313, 4, 361, 311, 1, 313, 4, - 361, 311, 4, 313, 4, 362, 311, 1, - 313, 4, 362, 311, 4, 313, 4, 363, - 311, 1, 313, 4, 363, 311, 4, 313, - 4, 364, 311, 1, 313, 4, 364, 311, - 4, 313, 4, 365, 311, 1, 313, 4, - 365, 311, 4, 313, 4, 366, 311, 1, - 313, 4, 366, 311, 4, 313, 4, 367, - 311, 1, 313, 4, 367, 311, 4, 313, - 5, 20, 7, 76, 0, 1, 5, 27, - 299, 29, 297, 1, 5, 27, 299, 29, - 297, 2, 5, 27, 299, 29, 297, 3, - 5, 27, 299, 29, 297, 4, 5, 29, - 297, 1, 293, 0, 5, 29, 297, 4, - 293, 0, 5, 29, 301, 297, 293, 0, - 5, 31, 1, 93, 7, 368, 5, 31, - 1, 318, 311, 313, 5, 31, 2, 318, - 311, 7, 5, 31, 3, 318, 311, 7, - 5, 31, 4, 318, 311, 7, 5, 31, - 4, 318, 311, 313, 5, 33, 38, 317, - 312, 8, 5, 37, 36, 313, 30, 25, - 5, 40, 42, 272, 280, 0, 5, 40, - 42, 273, 280, 0, 5, 40, 42, 274, - 280, 0, 5, 40, 42, 275, 280, 0, - 5, 42, 272, 1, 280, 0, 5, 42, - 272, 4, 280, 0, 5, 42, 273, 1, - 280, 0, 5, 42, 273, 4, 280, 0, - 5, 42, 274, 1, 280, 0, 5, 42, - 274, 4, 280, 0, 5, 42, 275, 1, - 280, 0, 5, 42, 275, 4, 280, 0, - 5, 46, 145, 297, 293, 0, 5, 46, - 297, 1, 293, 0, 5, 46, 297, 4, - 293, 0, 5, 50, 38, 317, 312, 8, - 5, 56, 7, 72, 0, 1, 5, 80, - 7, 85, 0, 1, 5, 90, 91, 313, - 30, 25, 5, 97, 98, 29, 297, 1, - 5, 97, 98, 29, 297, 2, 5, 97, - 98, 29, 297, 3, 5, 97, 98, 29, - 297, 4, 5, 99, 100, 29, 297, 1, - 5, 99, 100, 29, 297, 2, 5, 99, - 100, 29, 297, 3, 5, 99, 100, 29, - 297, 4, 5, 147, 145, 297, 293, 0, - 5, 153, 145, 297, 293, 0, 5, 278, - 43, 39, 37, 36, 5, 318, 311, 1, - 7, 368, 5, 318, 311, 4, 313, 7, - 5, 318, 311, 313, 7, 4, 6, 20, - 83, 7, 85, 0, 1, 6, 27, 299, - 29, 297, 293, 0, 6, 29, 301, 297, - 1, 293, 0, 6, 29, 301, 297, 4, - 293, 0, 6, 31, 1, 318, 311, 7, - 368, 6, 31, 4, 318, 311, 313, 7, - 6, 33, 50, 38, 317, 312, 8, 6, - 40, 42, 272, 1, 280, 0, 6, 40, - 42, 272, 4, 280, 0, 6, 40, 42, - 273, 1, 280, 0, 6, 40, 42, 273, - 4, 280, 0, 6, 40, 42, 274, 1, - 280, 0, 6, 40, 42, 274, 4, 280, - 0, 6, 40, 42, 275, 1, 280, 0, - 6, 40, 42, 275, 4, 280, 0, 6, - 46, 145, 297, 1, 293, 0, 6, 46, - 145, 297, 4, 293, 0, 6, 97, 98, - 29, 297, 293, 0, 6, 99, 100, 29, - 297, 293, 0, 6, 147, 145, 297, 1, - 293, 0, 6, 147, 145, 297, 4, 293, - 0, 6, 153, 145, 297, 1, 293, 0, - 6, 153, 145, 297, 4, 293, 0, 6, - 318, 311, 1, 313, 7, 368, 6, 318, - 311, 313, 7, 368, 1, 7, 27, 299, - 29, 297, 1, 293, 0, 7, 27, 299, - 29, 297, 4, 293, 0, 7, 31, 1, - 318, 311, 313, 7, 368, 7, 97, 98, - 29, 297, 1, 293, 0, 7, 97, 98, - 29, 297, 4, 293, 0, 7, 99, 100, - 29, 297, 1, 293, 0, 7, 99, 100, - 29, 297, 4, 293, 0 + 152, 1, 158, 1, 209, 1, 210, 1, + 211, 1, 212, 1, 213, 1, 214, 1, + 215, 1, 216, 1, 217, 1, 218, 1, + 219, 1, 220, 1, 221, 1, 222, 1, + 223, 1, 224, 1, 225, 1, 226, 1, + 227, 1, 228, 1, 229, 1, 230, 1, + 231, 1, 232, 1, 233, 1, 234, 1, + 235, 1, 236, 1, 237, 1, 238, 1, + 239, 1, 240, 1, 241, 1, 242, 1, + 243, 1, 244, 1, 245, 1, 246, 1, + 247, 1, 248, 1, 249, 1, 250, 1, + 251, 1, 252, 1, 253, 1, 254, 1, + 255, 1, 256, 1, 257, 1, 258, 1, + 259, 1, 260, 1, 261, 1, 263, 1, + 265, 1, 266, 1, 267, 1, 268, 1, + 275, 1, 276, 1, 281, 1, 283, 1, + 288, 1, 291, 1, 293, 1, 294, 1, + 295, 1, 296, 1, 301, 1, 302, 1, + 304, 1, 305, 1, 306, 1, 307, 1, + 308, 1, 309, 1, 311, 1, 312, 1, + 313, 1, 314, 1, 316, 2, 0, 49, + 2, 1, 0, 2, 1, 312, 2, 1, + 367, 2, 2, 5, 2, 2, 7, 2, + 3, 5, 2, 3, 7, 2, 4, 0, + 2, 4, 5, 2, 4, 7, 2, 4, + 312, 2, 5, 2, 2, 5, 3, 2, + 5, 4, 2, 5, 7, 2, 6, 1, + 2, 7, 1, 2, 7, 2, 2, 7, + 3, 2, 7, 4, 2, 7, 5, 2, + 7, 32, 2, 8, 73, 2, 8, 77, + 2, 9, 10, 2, 11, 1, 2, 12, + 1, 2, 13, 14, 2, 16, 17, 2, + 18, 14, 2, 18, 15, 2, 19, 24, + 2, 19, 77, 2, 19, 84, 2, 20, + 0, 2, 20, 7, 2, 22, 0, 2, + 23, 13, 2, 26, 69, 2, 26, 108, + 2, 26, 119, 2, 27, 0, 2, 27, + 1, 2, 27, 2, 2, 27, 3, 2, + 27, 4, 2, 27, 264, 2, 28, 69, + 2, 28, 113, 2, 29, 296, 2, 29, + 300, 2, 30, 25, 2, 31, 1, 2, + 31, 2, 2, 31, 3, 2, 31, 4, + 2, 31, 7, 2, 31, 93, 2, 32, + 7, 2, 33, 8, 2, 33, 311, 2, + 33, 316, 2, 34, 25, 2, 35, 0, + 2, 35, 1, 2, 35, 2, 2, 35, + 3, 2, 35, 4, 2, 35, 264, 2, + 35, 303, 2, 36, 41, 2, 37, 36, + 2, 38, 73, 2, 38, 158, 2, 38, + 281, 2, 38, 293, 2, 38, 294, 2, + 38, 311, 2, 38, 316, 2, 42, 269, + 2, 42, 270, 2, 42, 271, 2, 42, + 272, 2, 42, 273, 2, 42, 274, 2, + 45, 0, 2, 45, 1, 2, 45, 2, + 2, 45, 3, 2, 45, 4, 2, 46, + 0, 2, 46, 1, 2, 46, 2, 2, + 46, 3, 2, 46, 4, 2, 46, 264, + 2, 46, 296, 2, 47, 0, 2, 47, + 1, 2, 47, 2, 2, 47, 3, 2, + 47, 4, 2, 48, 310, 2, 49, 1, + 2, 49, 2, 2, 49, 3, 2, 49, + 4, 2, 56, 7, 2, 56, 47, 2, + 56, 93, 2, 57, 58, 2, 59, 1, + 2, 59, 2, 2, 59, 3, 2, 59, + 4, 2, 60, 311, 2, 62, 63, 2, + 64, 65, 2, 66, 68, 2, 68, 0, + 2, 68, 61, 2, 71, 0, 2, 71, + 311, 2, 75, 23, 2, 79, 69, 2, + 80, 7, 2, 81, 8, 2, 82, 23, + 2, 84, 8, 2, 90, 91, 2, 92, + 1, 2, 92, 2, 2, 92, 3, 2, + 92, 4, 2, 93, 1, 2, 93, 2, + 2, 93, 3, 2, 93, 4, 2, 93, + 7, 2, 94, 95, 2, 96, 293, 2, + 96, 311, 2, 97, 98, 2, 99, 100, + 2, 101, 102, 2, 101, 103, 2, 101, + 104, 2, 105, 106, 2, 107, 311, 2, + 110, 311, 2, 111, 0, 2, 127, 311, + 2, 129, 0, 2, 130, 0, 2, 131, + 0, 2, 132, 0, 2, 133, 0, 2, + 134, 0, 2, 135, 0, 2, 136, 0, + 2, 137, 0, 2, 138, 0, 2, 139, + 0, 2, 140, 0, 2, 141, 0, 2, + 142, 0, 2, 143, 0, 2, 144, 0, + 2, 146, 0, 2, 147, 0, 2, 148, + 0, 2, 149, 0, 2, 150, 0, 2, + 151, 0, 2, 152, 0, 2, 153, 0, + 2, 154, 0, 2, 155, 0, 2, 156, + 311, 2, 157, 311, 2, 159, 0, 2, + 160, 0, 2, 161, 0, 2, 162, 0, + 2, 163, 0, 2, 164, 0, 2, 165, + 0, 2, 166, 0, 2, 167, 0, 2, + 168, 0, 2, 169, 0, 2, 170, 0, + 2, 171, 0, 2, 172, 0, 2, 173, + 0, 2, 174, 0, 2, 175, 0, 2, + 176, 0, 2, 177, 0, 2, 178, 0, + 2, 179, 0, 2, 180, 0, 2, 181, + 0, 2, 182, 0, 2, 183, 0, 2, + 184, 0, 2, 185, 0, 2, 186, 0, + 2, 187, 0, 2, 188, 0, 2, 189, + 0, 2, 190, 0, 2, 191, 0, 2, + 192, 0, 2, 193, 0, 2, 194, 0, + 2, 195, 0, 2, 196, 0, 2, 197, + 0, 2, 198, 0, 2, 199, 0, 2, + 200, 0, 2, 201, 0, 2, 202, 0, + 2, 203, 0, 2, 204, 0, 2, 205, + 0, 2, 206, 0, 2, 207, 0, 2, + 208, 0, 2, 210, 1, 2, 210, 2, + 2, 210, 3, 2, 210, 4, 2, 211, + 1, 2, 211, 2, 2, 211, 3, 2, + 211, 4, 2, 212, 1, 2, 212, 2, + 2, 212, 3, 2, 212, 4, 2, 213, + 1, 2, 213, 2, 2, 213, 3, 2, + 213, 4, 2, 214, 1, 2, 214, 2, + 2, 214, 3, 2, 214, 4, 2, 215, + 1, 2, 215, 2, 2, 215, 3, 2, + 215, 4, 2, 216, 1, 2, 216, 2, + 2, 216, 3, 2, 216, 4, 2, 217, + 1, 2, 217, 2, 2, 217, 3, 2, + 217, 4, 2, 218, 1, 2, 218, 2, + 2, 218, 3, 2, 218, 4, 2, 219, + 1, 2, 219, 2, 2, 219, 3, 2, + 219, 4, 2, 220, 1, 2, 220, 2, + 2, 220, 3, 2, 220, 4, 2, 221, + 1, 2, 221, 2, 2, 221, 3, 2, + 221, 4, 2, 222, 1, 2, 222, 2, + 2, 222, 3, 2, 222, 4, 2, 223, + 1, 2, 223, 2, 2, 223, 3, 2, + 223, 4, 2, 224, 1, 2, 224, 2, + 2, 224, 3, 2, 224, 4, 2, 225, + 1, 2, 225, 2, 2, 225, 3, 2, + 225, 4, 2, 226, 1, 2, 226, 2, + 2, 226, 3, 2, 226, 4, 2, 227, + 1, 2, 227, 2, 2, 227, 3, 2, + 227, 4, 2, 228, 1, 2, 228, 2, + 2, 228, 3, 2, 228, 4, 2, 229, + 1, 2, 229, 2, 2, 229, 3, 2, + 229, 4, 2, 230, 1, 2, 230, 2, + 2, 230, 3, 2, 230, 4, 2, 231, + 1, 2, 231, 2, 2, 231, 3, 2, + 231, 4, 2, 232, 1, 2, 232, 2, + 2, 232, 3, 2, 232, 4, 2, 233, + 1, 2, 233, 2, 2, 233, 3, 2, + 233, 4, 2, 234, 1, 2, 234, 2, + 2, 234, 3, 2, 234, 4, 2, 235, + 1, 2, 235, 2, 2, 235, 3, 2, + 235, 4, 2, 236, 1, 2, 236, 2, + 2, 236, 3, 2, 236, 4, 2, 237, + 1, 2, 237, 2, 2, 237, 3, 2, + 237, 4, 2, 238, 1, 2, 238, 2, + 2, 238, 3, 2, 238, 4, 2, 239, + 1, 2, 239, 2, 2, 239, 3, 2, + 239, 4, 2, 240, 1, 2, 240, 2, + 2, 240, 3, 2, 240, 4, 2, 241, + 1, 2, 241, 2, 2, 241, 3, 2, + 241, 4, 2, 242, 1, 2, 242, 2, + 2, 242, 3, 2, 242, 4, 2, 243, + 1, 2, 243, 2, 2, 243, 3, 2, + 243, 4, 2, 244, 1, 2, 244, 2, + 2, 244, 3, 2, 244, 4, 2, 245, + 1, 2, 245, 2, 2, 245, 3, 2, + 245, 4, 2, 246, 1, 2, 246, 2, + 2, 246, 3, 2, 246, 4, 2, 247, + 1, 2, 247, 2, 2, 247, 3, 2, + 247, 4, 2, 248, 1, 2, 248, 2, + 2, 248, 3, 2, 248, 4, 2, 249, + 1, 2, 249, 2, 2, 249, 3, 2, + 249, 4, 2, 250, 1, 2, 250, 2, + 2, 250, 3, 2, 250, 4, 2, 251, + 1, 2, 251, 2, 2, 251, 3, 2, + 251, 4, 2, 252, 1, 2, 252, 2, + 2, 252, 3, 2, 252, 4, 2, 253, + 1, 2, 253, 2, 2, 253, 3, 2, + 253, 4, 2, 254, 1, 2, 254, 2, + 2, 254, 3, 2, 254, 4, 2, 255, + 1, 2, 255, 2, 2, 255, 3, 2, + 255, 4, 2, 256, 1, 2, 256, 2, + 2, 256, 3, 2, 256, 4, 2, 257, + 1, 2, 257, 2, 2, 257, 3, 2, + 257, 4, 2, 258, 1, 2, 258, 2, + 2, 258, 3, 2, 258, 4, 2, 259, + 1, 2, 259, 2, 2, 259, 3, 2, + 259, 4, 2, 260, 1, 2, 260, 2, + 2, 260, 3, 2, 260, 4, 2, 261, + 1, 2, 261, 2, 2, 261, 3, 2, + 261, 4, 2, 262, 0, 2, 265, 1, + 2, 265, 2, 2, 265, 3, 2, 265, + 4, 2, 266, 1, 2, 266, 2, 2, + 266, 3, 2, 266, 4, 2, 267, 1, + 2, 267, 2, 2, 267, 3, 2, 267, + 4, 2, 268, 1, 2, 268, 2, 2, + 268, 3, 2, 268, 4, 2, 275, 1, + 2, 275, 2, 2, 275, 3, 2, 275, + 4, 2, 276, 1, 2, 276, 2, 2, + 276, 3, 2, 276, 4, 2, 279, 0, + 2, 280, 311, 2, 282, 108, 2, 287, + 108, 2, 291, 1, 2, 291, 2, 2, + 291, 3, 2, 291, 4, 2, 292, 0, + 2, 296, 1, 2, 296, 2, 2, 296, + 3, 2, 296, 4, 2, 311, 8, 2, + 312, 1, 2, 312, 4, 2, 315, 312, + 2, 316, 8, 2, 316, 311, 2, 317, + 310, 2, 318, 310, 2, 319, 310, 2, + 320, 310, 2, 321, 310, 2, 322, 310, + 2, 323, 310, 2, 324, 310, 2, 325, + 310, 2, 326, 310, 2, 327, 310, 2, + 328, 310, 2, 329, 310, 2, 330, 310, + 2, 331, 310, 2, 332, 310, 2, 333, + 310, 2, 334, 310, 2, 335, 310, 2, + 336, 310, 2, 337, 310, 2, 338, 310, + 2, 339, 310, 2, 340, 310, 2, 341, + 310, 2, 342, 310, 2, 343, 310, 2, + 344, 310, 2, 345, 310, 2, 346, 310, + 2, 347, 310, 2, 348, 310, 2, 349, + 310, 2, 350, 310, 2, 351, 310, 2, + 352, 310, 2, 353, 310, 2, 354, 310, + 2, 355, 310, 2, 356, 310, 2, 357, + 310, 2, 358, 310, 2, 359, 310, 2, + 360, 310, 2, 361, 310, 2, 362, 310, + 2, 363, 310, 2, 364, 310, 2, 365, + 310, 2, 366, 310, 2, 367, 1, 3, + 0, 49, 1, 3, 0, 49, 2, 3, + 0, 49, 3, 3, 0, 49, 4, 3, + 1, 7, 367, 3, 1, 32, 7, 3, + 1, 71, 0, 3, 1, 111, 0, 3, + 1, 262, 0, 3, 1, 279, 0, 3, + 1, 292, 0, 3, 1, 312, 367, 3, + 2, 7, 32, 3, 2, 32, 7, 3, + 3, 7, 32, 3, 3, 32, 7, 3, + 4, 7, 32, 3, 4, 32, 7, 3, + 4, 71, 0, 3, 4, 111, 0, 3, + 4, 262, 0, 3, 4, 279, 0, 3, + 4, 292, 0, 3, 4, 312, 7, 3, + 5, 7, 2, 3, 5, 7, 3, 3, + 5, 7, 4, 3, 6, 1, 367, 3, + 6, 367, 1, 3, 7, 2, 5, 3, + 7, 2, 32, 3, 7, 3, 5, 3, + 7, 3, 32, 3, 7, 4, 5, 3, + 7, 4, 32, 3, 7, 367, 1, 3, + 9, 11, 1, 3, 15, 21, 0, 3, + 20, 7, 2, 3, 20, 7, 3, 3, + 20, 7, 4, 3, 20, 83, 7, 3, + 23, 13, 14, 3, 27, 71, 0, 3, + 27, 298, 29, 3, 28, 94, 95, 3, + 29, 296, 1, 3, 29, 296, 2, 3, + 29, 296, 3, 3, 29, 296, 4, 3, + 29, 300, 296, 3, 31, 1, 93, 3, + 31, 2, 7, 3, 31, 2, 93, 3, + 31, 3, 7, 3, 31, 3, 93, 3, + 31, 4, 7, 3, 31, 4, 93, 3, + 31, 93, 7, 3, 31, 315, 312, 3, + 31, 317, 310, 3, 32, 1, 7, 3, + 32, 2, 7, 3, 32, 3, 7, 3, + 32, 4, 7, 3, 33, 89, 8, 3, + 33, 311, 8, 3, 33, 316, 8, 3, + 33, 316, 311, 3, 35, 1, 0, 3, + 35, 4, 0, 3, 37, 36, 312, 3, + 38, 156, 311, 3, 38, 316, 8, 3, + 38, 316, 311, 3, 40, 42, 269, 3, + 40, 42, 270, 3, 40, 42, 271, 3, + 40, 42, 272, 3, 40, 42, 273, 3, + 40, 42, 274, 3, 42, 269, 1, 3, + 42, 269, 2, 3, 42, 269, 3, 3, + 42, 269, 4, 3, 42, 270, 1, 3, + 42, 270, 2, 3, 42, 270, 3, 3, + 42, 270, 4, 3, 42, 271, 1, 3, + 42, 271, 2, 3, 42, 271, 3, 3, + 42, 271, 4, 3, 42, 272, 1, 3, + 42, 272, 2, 3, 42, 272, 3, 3, + 42, 272, 4, 3, 42, 273, 1, 3, + 42, 273, 2, 3, 42, 273, 3, 3, + 42, 273, 4, 3, 42, 274, 1, 3, + 42, 274, 2, 3, 42, 274, 3, 3, + 42, 274, 4, 3, 46, 145, 296, 3, + 46, 296, 1, 3, 46, 296, 2, 3, + 46, 296, 3, 3, 46, 296, 4, 3, + 48, 310, 1, 3, 48, 310, 2, 3, + 48, 310, 3, 3, 48, 310, 4, 3, + 48, 310, 312, 3, 50, 38, 73, 3, + 50, 38, 311, 3, 50, 38, 316, 3, + 55, 37, 36, 3, 56, 7, 2, 3, + 56, 7, 3, 3, 56, 7, 4, 3, + 56, 47, 0, 3, 56, 47, 1, 3, + 56, 47, 2, 3, 56, 47, 3, 3, + 56, 47, 4, 3, 56, 93, 1, 3, + 56, 93, 2, 3, 56, 93, 3, 3, + 56, 93, 4, 3, 66, 68, 0, 3, + 66, 68, 61, 3, 67, 62, 63, 3, + 68, 61, 0, 3, 70, 26, 69, 3, + 72, 0, 1, 3, 75, 23, 13, 3, + 76, 0, 1, 3, 80, 2, 7, 3, + 80, 3, 7, 3, 80, 4, 7, 3, + 80, 7, 4, 3, 82, 23, 13, 3, + 85, 0, 1, 3, 88, 7, 1, 3, + 88, 7, 4, 3, 88, 30, 25, 3, + 88, 32, 7, 3, 90, 30, 25, 3, + 90, 91, 312, 3, 93, 2, 7, 3, + 93, 3, 7, 3, 93, 4, 7, 3, + 96, 107, 311, 3, 96, 156, 311, 3, + 97, 98, 0, 3, 97, 98, 1, 3, + 97, 98, 2, 3, 97, 98, 3, 3, + 97, 98, 4, 3, 97, 98, 29, 3, + 99, 100, 0, 3, 99, 100, 1, 3, + 99, 100, 2, 3, 99, 100, 3, 3, + 99, 100, 4, 3, 99, 100, 29, 3, + 105, 106, 0, 3, 105, 106, 1, 3, + 105, 106, 2, 3, 105, 106, 3, 3, + 105, 106, 4, 3, 110, 112, 281, 3, + 110, 290, 311, 3, 147, 145, 296, 3, + 153, 145, 296, 3, 156, 157, 311, 3, + 210, 262, 0, 3, 211, 262, 0, 3, + 212, 262, 0, 3, 213, 262, 0, 3, + 214, 262, 0, 3, 215, 262, 0, 3, + 216, 262, 0, 3, 217, 262, 0, 3, + 218, 262, 0, 3, 219, 262, 0, 3, + 220, 262, 0, 3, 221, 262, 0, 3, + 222, 262, 0, 3, 223, 262, 0, 3, + 224, 262, 0, 3, 225, 262, 0, 3, + 226, 262, 0, 3, 227, 262, 0, 3, + 228, 262, 0, 3, 229, 262, 0, 3, + 230, 262, 0, 3, 231, 262, 0, 3, + 232, 262, 0, 3, 233, 262, 0, 3, + 234, 262, 0, 3, 235, 262, 0, 3, + 236, 262, 0, 3, 237, 262, 0, 3, + 238, 262, 0, 3, 239, 262, 0, 3, + 240, 262, 0, 3, 241, 262, 0, 3, + 242, 262, 0, 3, 243, 262, 0, 3, + 244, 262, 0, 3, 245, 262, 0, 3, + 246, 262, 0, 3, 247, 262, 0, 3, + 248, 262, 0, 3, 249, 262, 0, 3, + 250, 262, 0, 3, 251, 262, 0, 3, + 252, 262, 0, 3, 253, 262, 0, 3, + 254, 262, 0, 3, 255, 262, 0, 3, + 256, 262, 0, 3, 257, 262, 0, 3, + 258, 262, 0, 3, 259, 262, 0, 3, + 260, 262, 0, 3, 261, 262, 0, 3, + 278, 37, 36, 3, 283, 284, 0, 3, + 283, 285, 0, 3, 286, 110, 311, 3, + 288, 289, 0, 3, 290, 110, 311, 3, + 291, 292, 0, 3, 296, 292, 0, 3, + 299, 28, 302, 3, 311, 8, 89, 3, + 312, 7, 1, 3, 312, 7, 4, 3, + 312, 30, 25, 3, 312, 367, 1, 3, + 314, 30, 25, 3, 316, 311, 8, 3, + 317, 310, 1, 3, 317, 310, 2, 3, + 317, 310, 3, 3, 317, 310, 4, 3, + 317, 310, 7, 3, 317, 310, 312, 3, + 318, 310, 1, 3, 318, 310, 2, 3, + 318, 310, 3, 3, 318, 310, 4, 3, + 318, 310, 312, 3, 319, 310, 1, 3, + 319, 310, 2, 3, 319, 310, 3, 3, + 319, 310, 4, 3, 319, 310, 312, 3, + 320, 310, 1, 3, 320, 310, 2, 3, + 320, 310, 3, 3, 320, 310, 4, 3, + 320, 310, 312, 3, 321, 310, 1, 3, + 321, 310, 2, 3, 321, 310, 3, 3, + 321, 310, 4, 3, 321, 310, 312, 3, + 322, 310, 1, 3, 322, 310, 2, 3, + 322, 310, 3, 3, 322, 310, 4, 3, + 322, 310, 312, 3, 323, 310, 1, 3, + 323, 310, 2, 3, 323, 310, 3, 3, + 323, 310, 4, 3, 323, 310, 312, 3, + 324, 310, 1, 3, 324, 310, 2, 3, + 324, 310, 3, 3, 324, 310, 4, 3, + 324, 310, 312, 3, 325, 310, 1, 3, + 325, 310, 2, 3, 325, 310, 3, 3, + 325, 310, 4, 3, 325, 310, 312, 3, + 326, 310, 1, 3, 326, 310, 2, 3, + 326, 310, 3, 3, 326, 310, 4, 3, + 326, 310, 312, 3, 327, 310, 1, 3, + 327, 310, 2, 3, 327, 310, 3, 3, + 327, 310, 4, 3, 327, 310, 312, 3, + 328, 310, 1, 3, 328, 310, 2, 3, + 328, 310, 3, 3, 328, 310, 4, 3, + 328, 310, 312, 3, 329, 310, 1, 3, + 329, 310, 2, 3, 329, 310, 3, 3, + 329, 310, 4, 3, 329, 310, 312, 3, + 330, 310, 1, 3, 330, 310, 2, 3, + 330, 310, 3, 3, 330, 310, 4, 3, + 330, 310, 312, 3, 331, 310, 1, 3, + 331, 310, 2, 3, 331, 310, 3, 3, + 331, 310, 4, 3, 331, 310, 312, 3, + 332, 310, 1, 3, 332, 310, 2, 3, + 332, 310, 3, 3, 332, 310, 4, 3, + 332, 310, 312, 3, 333, 310, 1, 3, + 333, 310, 2, 3, 333, 310, 3, 3, + 333, 310, 4, 3, 333, 310, 312, 3, + 334, 310, 1, 3, 334, 310, 2, 3, + 334, 310, 3, 3, 334, 310, 4, 3, + 334, 310, 312, 3, 335, 310, 1, 3, + 335, 310, 2, 3, 335, 310, 3, 3, + 335, 310, 4, 3, 335, 310, 312, 3, + 336, 310, 1, 3, 336, 310, 2, 3, + 336, 310, 3, 3, 336, 310, 4, 3, + 336, 310, 312, 3, 337, 310, 1, 3, + 337, 310, 2, 3, 337, 310, 3, 3, + 337, 310, 4, 3, 337, 310, 312, 3, + 338, 310, 1, 3, 338, 310, 2, 3, + 338, 310, 3, 3, 338, 310, 4, 3, + 338, 310, 312, 3, 339, 310, 1, 3, + 339, 310, 2, 3, 339, 310, 3, 3, + 339, 310, 4, 3, 339, 310, 312, 3, + 340, 310, 1, 3, 340, 310, 2, 3, + 340, 310, 3, 3, 340, 310, 4, 3, + 340, 310, 312, 3, 341, 310, 1, 3, + 341, 310, 2, 3, 341, 310, 3, 3, + 341, 310, 4, 3, 341, 310, 312, 3, + 342, 310, 1, 3, 342, 310, 2, 3, + 342, 310, 3, 3, 342, 310, 4, 3, + 342, 310, 312, 3, 343, 310, 1, 3, + 343, 310, 2, 3, 343, 310, 3, 3, + 343, 310, 4, 3, 343, 310, 312, 3, + 344, 310, 1, 3, 344, 310, 2, 3, + 344, 310, 3, 3, 344, 310, 4, 3, + 344, 310, 312, 3, 345, 310, 1, 3, + 345, 310, 2, 3, 345, 310, 3, 3, + 345, 310, 4, 3, 345, 310, 312, 3, + 346, 310, 1, 3, 346, 310, 2, 3, + 346, 310, 3, 3, 346, 310, 4, 3, + 346, 310, 312, 3, 347, 310, 1, 3, + 347, 310, 2, 3, 347, 310, 3, 3, + 347, 310, 4, 3, 347, 310, 312, 3, + 348, 310, 1, 3, 348, 310, 2, 3, + 348, 310, 3, 3, 348, 310, 4, 3, + 348, 310, 312, 3, 349, 310, 1, 3, + 349, 310, 2, 3, 349, 310, 3, 3, + 349, 310, 4, 3, 349, 310, 312, 3, + 350, 310, 1, 3, 350, 310, 2, 3, + 350, 310, 3, 3, 350, 310, 4, 3, + 350, 310, 312, 3, 351, 310, 1, 3, + 351, 310, 2, 3, 351, 310, 3, 3, + 351, 310, 4, 3, 351, 310, 312, 3, + 352, 310, 1, 3, 352, 310, 2, 3, + 352, 310, 3, 3, 352, 310, 4, 3, + 352, 310, 312, 3, 353, 310, 1, 3, + 353, 310, 2, 3, 353, 310, 3, 3, + 353, 310, 4, 3, 353, 310, 312, 3, + 354, 310, 1, 3, 354, 310, 2, 3, + 354, 310, 3, 3, 354, 310, 4, 3, + 354, 310, 312, 3, 355, 310, 1, 3, + 355, 310, 2, 3, 355, 310, 3, 3, + 355, 310, 4, 3, 355, 310, 312, 3, + 356, 310, 1, 3, 356, 310, 2, 3, + 356, 310, 3, 3, 356, 310, 4, 3, + 356, 310, 312, 3, 357, 310, 1, 3, + 357, 310, 2, 3, 357, 310, 3, 3, + 357, 310, 4, 3, 357, 310, 312, 3, + 358, 310, 1, 3, 358, 310, 2, 3, + 358, 310, 3, 3, 358, 310, 4, 3, + 358, 310, 312, 3, 359, 310, 1, 3, + 359, 310, 2, 3, 359, 310, 3, 3, + 359, 310, 4, 3, 359, 310, 312, 3, + 360, 310, 1, 3, 360, 310, 2, 3, + 360, 310, 3, 3, 360, 310, 4, 3, + 360, 310, 312, 3, 361, 310, 1, 3, + 361, 310, 2, 3, 361, 310, 3, 3, + 361, 310, 4, 3, 361, 310, 312, 3, + 362, 310, 1, 3, 362, 310, 2, 3, + 362, 310, 3, 3, 362, 310, 4, 3, + 362, 310, 312, 3, 363, 310, 1, 3, + 363, 310, 2, 3, 363, 310, 3, 3, + 363, 310, 4, 3, 363, 310, 312, 3, + 364, 310, 1, 3, 364, 310, 2, 3, + 364, 310, 3, 3, 364, 310, 4, 3, + 364, 310, 312, 3, 365, 310, 1, 3, + 365, 310, 2, 3, 365, 310, 3, 3, + 365, 310, 4, 3, 365, 310, 312, 3, + 366, 310, 1, 3, 366, 310, 2, 3, + 366, 310, 3, 3, 366, 310, 4, 3, + 366, 310, 312, 3, 367, 1, 6, 4, + 1, 7, 367, 32, 4, 1, 312, 32, + 7, 4, 4, 312, 7, 32, 4, 4, + 312, 32, 7, 4, 6, 1, 7, 367, + 4, 6, 1, 85, 0, 4, 6, 72, + 0, 1, 4, 6, 76, 0, 1, 4, + 6, 85, 0, 1, 4, 7, 6, 367, + 1, 4, 7, 72, 0, 1, 4, 7, + 367, 1, 6, 4, 7, 367, 1, 32, + 4, 18, 15, 21, 0, 4, 20, 83, + 7, 2, 4, 20, 83, 7, 3, 4, + 20, 83, 7, 4, 4, 27, 1, 71, + 0, 4, 27, 4, 71, 0, 4, 27, + 298, 29, 296, 4, 29, 296, 292, 0, + 4, 29, 300, 296, 1, 4, 29, 300, + 296, 2, 4, 29, 300, 296, 3, 4, + 29, 300, 296, 4, 4, 31, 1, 7, + 367, 4, 31, 1, 315, 312, 4, 31, + 1, 317, 310, 4, 31, 2, 93, 7, + 4, 31, 2, 315, 312, 4, 31, 2, + 317, 310, 4, 31, 3, 93, 7, 4, + 31, 3, 315, 312, 4, 31, 3, 317, + 310, 4, 31, 4, 93, 7, 4, 31, + 4, 315, 312, 4, 31, 4, 317, 310, + 4, 31, 317, 310, 7, 4, 33, 38, + 316, 8, 4, 33, 50, 38, 316, 4, + 33, 316, 311, 8, 4, 37, 36, 30, + 25, 4, 38, 316, 311, 8, 4, 40, + 37, 36, 41, 4, 40, 42, 269, 1, + 4, 40, 42, 269, 2, 4, 40, 42, + 269, 3, 4, 40, 42, 269, 4, 4, + 40, 42, 270, 1, 4, 40, 42, 270, + 2, 4, 40, 42, 270, 3, 4, 40, + 42, 270, 4, 4, 40, 42, 271, 1, + 4, 40, 42, 271, 2, 4, 40, 42, + 271, 3, 4, 40, 42, 271, 4, 4, + 40, 42, 272, 1, 4, 40, 42, 272, + 2, 4, 40, 42, 272, 3, 4, 40, + 42, 272, 4, 4, 40, 42, 273, 1, + 4, 40, 42, 273, 2, 4, 40, 42, + 273, 3, 4, 40, 42, 273, 4, 4, + 40, 42, 274, 1, 4, 40, 42, 274, + 2, 4, 40, 42, 274, 3, 4, 40, + 42, 274, 4, 4, 42, 271, 279, 0, + 4, 42, 272, 279, 0, 4, 42, 273, + 279, 0, 4, 42, 274, 279, 0, 4, + 43, 39, 37, 36, 4, 44, 39, 37, + 36, 4, 46, 145, 296, 1, 4, 46, + 145, 296, 2, 4, 46, 145, 296, 3, + 4, 46, 145, 296, 4, 4, 46, 296, + 292, 0, 4, 48, 310, 1, 312, 4, + 48, 310, 4, 312, 4, 50, 38, 8, + 73, 4, 56, 55, 37, 36, 4, 66, + 68, 61, 0, 4, 75, 23, 13, 14, + 4, 82, 23, 13, 14, 4, 88, 32, + 1, 7, 4, 88, 32, 2, 7, 4, + 88, 32, 3, 7, 4, 88, 32, 4, + 7, 4, 90, 91, 30, 25, 4, 93, + 1, 7, 367, 4, 96, 156, 157, 311, + 4, 97, 98, 1, 0, 4, 97, 98, + 4, 0, 4, 97, 98, 29, 296, 4, + 99, 100, 1, 0, 4, 99, 100, 4, + 0, 4, 99, 100, 29, 296, 4, 105, + 106, 1, 0, 4, 105, 106, 4, 0, + 4, 147, 145, 296, 1, 4, 147, 145, + 296, 2, 4, 147, 145, 296, 3, 4, + 147, 145, 296, 4, 4, 147, 301, 37, + 36, 4, 153, 145, 296, 1, 4, 153, + 145, 296, 2, 4, 153, 145, 296, 3, + 4, 153, 145, 296, 4, 4, 210, 1, + 262, 0, 4, 210, 4, 262, 0, 4, + 211, 1, 262, 0, 4, 211, 4, 262, + 0, 4, 212, 1, 262, 0, 4, 212, + 4, 262, 0, 4, 213, 1, 262, 0, + 4, 213, 4, 262, 0, 4, 214, 1, + 262, 0, 4, 214, 4, 262, 0, 4, + 215, 1, 262, 0, 4, 215, 4, 262, + 0, 4, 216, 1, 262, 0, 4, 216, + 4, 262, 0, 4, 217, 1, 262, 0, + 4, 217, 4, 262, 0, 4, 218, 1, + 262, 0, 4, 218, 4, 262, 0, 4, + 219, 1, 262, 0, 4, 219, 4, 262, + 0, 4, 220, 1, 262, 0, 4, 220, + 4, 262, 0, 4, 221, 1, 262, 0, + 4, 221, 4, 262, 0, 4, 222, 1, + 262, 0, 4, 222, 4, 262, 0, 4, + 223, 1, 262, 0, 4, 223, 4, 262, + 0, 4, 224, 1, 262, 0, 4, 224, + 4, 262, 0, 4, 225, 1, 262, 0, + 4, 225, 4, 262, 0, 4, 226, 1, + 262, 0, 4, 226, 4, 262, 0, 4, + 227, 1, 262, 0, 4, 227, 4, 262, + 0, 4, 228, 1, 262, 0, 4, 228, + 4, 262, 0, 4, 229, 1, 262, 0, + 4, 229, 4, 262, 0, 4, 230, 1, + 262, 0, 4, 230, 4, 262, 0, 4, + 231, 1, 262, 0, 4, 231, 4, 262, + 0, 4, 232, 1, 262, 0, 4, 232, + 4, 262, 0, 4, 233, 1, 262, 0, + 4, 233, 4, 262, 0, 4, 234, 1, + 262, 0, 4, 234, 4, 262, 0, 4, + 235, 1, 262, 0, 4, 235, 4, 262, + 0, 4, 236, 1, 262, 0, 4, 236, + 4, 262, 0, 4, 237, 1, 262, 0, + 4, 237, 4, 262, 0, 4, 238, 1, + 262, 0, 4, 238, 4, 262, 0, 4, + 239, 1, 262, 0, 4, 239, 4, 262, + 0, 4, 240, 1, 262, 0, 4, 240, + 4, 262, 0, 4, 241, 1, 262, 0, + 4, 241, 4, 262, 0, 4, 242, 1, + 262, 0, 4, 242, 4, 262, 0, 4, + 243, 1, 262, 0, 4, 243, 4, 262, + 0, 4, 244, 1, 262, 0, 4, 244, + 4, 262, 0, 4, 245, 1, 262, 0, + 4, 245, 4, 262, 0, 4, 246, 1, + 262, 0, 4, 246, 4, 262, 0, 4, + 247, 1, 262, 0, 4, 247, 4, 262, + 0, 4, 248, 1, 262, 0, 4, 248, + 4, 262, 0, 4, 249, 1, 262, 0, + 4, 249, 4, 262, 0, 4, 250, 1, + 262, 0, 4, 250, 4, 262, 0, 4, + 251, 1, 262, 0, 4, 251, 4, 262, + 0, 4, 252, 1, 262, 0, 4, 252, + 4, 262, 0, 4, 253, 1, 262, 0, + 4, 253, 4, 262, 0, 4, 254, 1, + 262, 0, 4, 254, 4, 262, 0, 4, + 255, 1, 262, 0, 4, 255, 4, 262, + 0, 4, 256, 1, 262, 0, 4, 256, + 4, 262, 0, 4, 257, 1, 262, 0, + 4, 257, 4, 262, 0, 4, 258, 1, + 262, 0, 4, 258, 4, 262, 0, 4, + 259, 1, 262, 0, 4, 259, 4, 262, + 0, 4, 260, 1, 262, 0, 4, 260, + 4, 262, 0, 4, 261, 1, 262, 0, + 4, 261, 4, 262, 0, 4, 291, 1, + 292, 0, 4, 291, 4, 292, 0, 4, + 296, 1, 292, 0, 4, 296, 4, 292, + 0, 4, 297, 28, 26, 69, 4, 312, + 7, 367, 1, 4, 317, 310, 1, 312, + 4, 317, 310, 2, 7, 4, 317, 310, + 3, 7, 4, 317, 310, 4, 7, 4, + 317, 310, 4, 312, 4, 318, 310, 1, + 312, 4, 318, 310, 4, 312, 4, 319, + 310, 1, 312, 4, 319, 310, 4, 312, + 4, 320, 310, 1, 312, 4, 320, 310, + 4, 312, 4, 321, 310, 1, 312, 4, + 321, 310, 4, 312, 4, 322, 310, 1, + 312, 4, 322, 310, 4, 312, 4, 323, + 310, 1, 312, 4, 323, 310, 4, 312, + 4, 324, 310, 1, 312, 4, 324, 310, + 4, 312, 4, 325, 310, 1, 312, 4, + 325, 310, 4, 312, 4, 326, 310, 1, + 312, 4, 326, 310, 4, 312, 4, 327, + 310, 1, 312, 4, 327, 310, 4, 312, + 4, 328, 310, 1, 312, 4, 328, 310, + 4, 312, 4, 329, 310, 1, 312, 4, + 329, 310, 4, 312, 4, 330, 310, 1, + 312, 4, 330, 310, 4, 312, 4, 331, + 310, 1, 312, 4, 331, 310, 4, 312, + 4, 332, 310, 1, 312, 4, 332, 310, + 4, 312, 4, 333, 310, 1, 312, 4, + 333, 310, 4, 312, 4, 334, 310, 1, + 312, 4, 334, 310, 4, 312, 4, 335, + 310, 1, 312, 4, 335, 310, 4, 312, + 4, 336, 310, 1, 312, 4, 336, 310, + 4, 312, 4, 337, 310, 1, 312, 4, + 337, 310, 4, 312, 4, 338, 310, 1, + 312, 4, 338, 310, 4, 312, 4, 339, + 310, 1, 312, 4, 339, 310, 4, 312, + 4, 340, 310, 1, 312, 4, 340, 310, + 4, 312, 4, 341, 310, 1, 312, 4, + 341, 310, 4, 312, 4, 342, 310, 1, + 312, 4, 342, 310, 4, 312, 4, 343, + 310, 1, 312, 4, 343, 310, 4, 312, + 4, 344, 310, 1, 312, 4, 344, 310, + 4, 312, 4, 345, 310, 1, 312, 4, + 345, 310, 4, 312, 4, 346, 310, 1, + 312, 4, 346, 310, 4, 312, 4, 347, + 310, 1, 312, 4, 347, 310, 4, 312, + 4, 348, 310, 1, 312, 4, 348, 310, + 4, 312, 4, 349, 310, 1, 312, 4, + 349, 310, 4, 312, 4, 350, 310, 1, + 312, 4, 350, 310, 4, 312, 4, 351, + 310, 1, 312, 4, 351, 310, 4, 312, + 4, 352, 310, 1, 312, 4, 352, 310, + 4, 312, 4, 353, 310, 1, 312, 4, + 353, 310, 4, 312, 4, 354, 310, 1, + 312, 4, 354, 310, 4, 312, 4, 355, + 310, 1, 312, 4, 355, 310, 4, 312, + 4, 356, 310, 1, 312, 4, 356, 310, + 4, 312, 4, 357, 310, 1, 312, 4, + 357, 310, 4, 312, 4, 358, 310, 1, + 312, 4, 358, 310, 4, 312, 4, 359, + 310, 1, 312, 4, 359, 310, 4, 312, + 4, 360, 310, 1, 312, 4, 360, 310, + 4, 312, 4, 361, 310, 1, 312, 4, + 361, 310, 4, 312, 4, 362, 310, 1, + 312, 4, 362, 310, 4, 312, 4, 363, + 310, 1, 312, 4, 363, 310, 4, 312, + 4, 364, 310, 1, 312, 4, 364, 310, + 4, 312, 4, 365, 310, 1, 312, 4, + 365, 310, 4, 312, 4, 366, 310, 1, + 312, 4, 366, 310, 4, 312, 5, 20, + 7, 76, 0, 1, 5, 27, 298, 29, + 296, 1, 5, 27, 298, 29, 296, 2, + 5, 27, 298, 29, 296, 3, 5, 27, + 298, 29, 296, 4, 5, 29, 296, 1, + 292, 0, 5, 29, 296, 4, 292, 0, + 5, 29, 300, 296, 292, 0, 5, 31, + 1, 93, 7, 367, 5, 31, 1, 317, + 310, 312, 5, 31, 2, 317, 310, 7, + 5, 31, 3, 317, 310, 7, 5, 31, + 4, 317, 310, 7, 5, 31, 4, 317, + 310, 312, 5, 33, 38, 316, 311, 8, + 5, 37, 36, 312, 30, 25, 5, 40, + 42, 271, 279, 0, 5, 40, 42, 272, + 279, 0, 5, 40, 42, 273, 279, 0, + 5, 40, 42, 274, 279, 0, 5, 42, + 271, 1, 279, 0, 5, 42, 271, 4, + 279, 0, 5, 42, 272, 1, 279, 0, + 5, 42, 272, 4, 279, 0, 5, 42, + 273, 1, 279, 0, 5, 42, 273, 4, + 279, 0, 5, 42, 274, 1, 279, 0, + 5, 42, 274, 4, 279, 0, 5, 46, + 145, 296, 292, 0, 5, 46, 296, 1, + 292, 0, 5, 46, 296, 4, 292, 0, + 5, 50, 38, 316, 311, 8, 5, 56, + 7, 72, 0, 1, 5, 80, 7, 85, + 0, 1, 5, 90, 91, 312, 30, 25, + 5, 97, 98, 29, 296, 1, 5, 97, + 98, 29, 296, 2, 5, 97, 98, 29, + 296, 3, 5, 97, 98, 29, 296, 4, + 5, 99, 100, 29, 296, 1, 5, 99, + 100, 29, 296, 2, 5, 99, 100, 29, + 296, 3, 5, 99, 100, 29, 296, 4, + 5, 147, 145, 296, 292, 0, 5, 153, + 145, 296, 292, 0, 5, 277, 43, 39, + 37, 36, 5, 317, 310, 1, 7, 367, + 5, 317, 310, 4, 312, 7, 5, 317, + 310, 312, 7, 4, 6, 20, 83, 7, + 85, 0, 1, 6, 27, 298, 29, 296, + 292, 0, 6, 29, 300, 296, 1, 292, + 0, 6, 29, 300, 296, 4, 292, 0, + 6, 31, 1, 317, 310, 7, 367, 6, + 31, 4, 317, 310, 312, 7, 6, 33, + 50, 38, 316, 311, 8, 6, 40, 42, + 271, 1, 279, 0, 6, 40, 42, 271, + 4, 279, 0, 6, 40, 42, 272, 1, + 279, 0, 6, 40, 42, 272, 4, 279, + 0, 6, 40, 42, 273, 1, 279, 0, + 6, 40, 42, 273, 4, 279, 0, 6, + 40, 42, 274, 1, 279, 0, 6, 40, + 42, 274, 4, 279, 0, 6, 46, 145, + 296, 1, 292, 0, 6, 46, 145, 296, + 4, 292, 0, 6, 97, 98, 29, 296, + 292, 0, 6, 99, 100, 29, 296, 292, + 0, 6, 147, 145, 296, 1, 292, 0, + 6, 147, 145, 296, 4, 292, 0, 6, + 153, 145, 296, 1, 292, 0, 6, 153, + 145, 296, 4, 292, 0, 6, 317, 310, + 1, 312, 7, 367, 6, 317, 310, 312, + 7, 367, 1, 7, 27, 298, 29, 296, + 1, 292, 0, 7, 27, 298, 29, 296, + 4, 292, 0, 7, 31, 1, 317, 310, + 312, 7, 367, 7, 97, 98, 29, 296, + 1, 292, 0, 7, 97, 98, 29, 296, + 4, 292, 0, 7, 99, 100, 29, 296, + 1, 292, 0, 7, 99, 100, 29, 296, + 4, 292, 0 }; static const short _zone_scanner_cond_offsets[] = { @@ -963,52 +891,73 @@ static const short _zone_scanner_cond_offsets[] = { 427, 427, 427, 429, 432, 434, 436, 438, 440, 440, 442, 444, 444, 444, 444, 444, 444, 446, 449, 451, 454, 457, 457, 457, - 457, 457, 459, 462, 462, 464, 466, 468, - 468, 468, 470, 473, 473, 473, 475, 475, - 475, 475, 475, 475, 477, 479, 479, 479, - 481, 481, 481, 481, 483, 483, 483, 483, - 485, 485, 485, 485, 485, 487, 487, 487, - 487, 489, 489, 489, 489, 491, 493, 493, - 493, 495, 495, 495, 495, 495, 497, 497, - 499, 499, 499, 499, 499, 501, 501, 501, - 501, 503, 503, 503, 503, 503, 503, 503, - 503, 505, 505, 505, 507, 509, 509, 509, - 511, 511, 513, 513, 515, 517, 517, 517, - 517, 517, 519, 521, 521, 521, 521, 521, - 523, 523, 525, 527, 527, 529, 531, 531, - 531, 531, 531, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 535, 535, 535, - 537, 537, 539, 539, 539, 539, 541, 543, - 543, 543, 543, 543, 543, 545, 545, 547, - 547, 549, 549, 551, 551, 551, 551, 553, - 553, 553, 555, 555, 555, 555, 557, 557, - 559, 559, 559, 559, 561, 561, 561, 563, - 563, 563, 563, 563, 563, 565, 565, 565, - 565, 565, 565, 567, 567, 567, 567, 569, - 569, 571, 573, 575, 577, 579, 579, 581, - 584, 587, 590, 592, 594, 596, 598, 598, - 600, 603, 606, 608, 611, 611, 611, 611, + 457, 457, 459, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 462, + 464, 466, 468, 468, 468, 470, 473, 473, + 473, 475, 475, 475, 475, 475, 475, 477, + 479, 479, 479, 481, 481, 481, 481, 483, + 483, 483, 483, 485, 485, 485, 485, 485, + 487, 487, 487, 487, 489, 489, 489, 489, + 491, 493, 493, 493, 495, 495, 495, 495, + 495, 497, 497, 499, 499, 499, 499, 499, + 501, 501, 501, 501, 503, 503, 503, 503, + 503, 503, 503, 503, 505, 505, 505, 507, + 509, 509, 509, 511, 511, 513, 513, 515, + 517, 517, 517, 517, 517, 519, 521, 521, + 521, 521, 521, 523, 523, 525, 527, 527, + 529, 531, 531, 531, 531, 531, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, + 535, 535, 535, 537, 537, 539, 539, 539, + 539, 541, 543, 543, 543, 543, 543, 543, + 545, 545, 547, 547, 549, 549, 551, 551, + 551, 551, 553, 553, 553, 555, 555, 555, + 555, 557, 557, 559, 559, 559, 559, 561, + 561, 561, 563, 563, 563, 563, 563, 563, + 565, 565, 565, 565, 565, 565, 567, 567, + 567, 567, 569, 569, 571, 573, 575, 577, + 579, 579, 581, 584, 587, 590, 592, 594, + 596, 598, 598, 600, 603, 606, 608, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, - 611, 611, 611, 611, 611, 613, 615, 615, - 615, 615, 615, 615, 617, 620, 620, 620, - 620, 620, 620, 620, 620, 620, 622, 624, - 624, 626, 626, 626, 626, 626, 626, 626, - 626, 626, 626, 626, 626, 626, 626, 628, + 611, 611, 611, 611, 611, 611, 611, 611, + 613, 615, 615, 615, 615, 615, 615, 617, + 620, 620, 620, 620, 620, 620, 620, 620, + 620, 622, 624, 624, 626, 626, 626, 626, + 626, 626, 626, 626, 626, 626, 626, 626, + 626, 626, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, - 628, 628, 628, 628, 628, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, - 632, 632, 632, 632, 632, 634, 634, 634, + 630, 630, 630, 632, 632, 632, 632, 632, 634, 634, 634, 634, 634, 634, 634, 634, - 634, 634, 634, 634, 636, 636, 636, 636, + 634, 634, 634, 634, 634, 634, 634, 636, 636, 636, 636, 636, 636, 636, 636, 636, - 636, 636, 636, 636, 638, 638, 638, 638, - 638, 640, 640, 640, 640, 640, 640, 640, - 640, 642, 644, 644, 644, 644, 644, 644, + 636, 636, 636, 636, 636, 636, 636, 638, + 638, 638, 638, 638, 640, 640, 640, 640, + 640, 640, 640, 640, 642, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, @@ -1028,91 +977,69 @@ static const short _zone_scanner_cond_offsets[] = { 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 646, 648, 650, 652, 654, 656, - 658, 660, 662, 664, 666, 668, 668, 668, - 668, 668, 671, 673, 673, 675, 678, 680, - 680, 682, 685, 687, 687, 689, 692, 695, - 698, 698, 700, 702, 702, 705, 705, 707, - 709, 709, 712, 712, 714, 716, 716, 719, - 719, 721, 723, 726, 726, 726, 726, 728, - 730, 732, 734, 736, 738, 740, 742, 744, - 746, 748, 750, 752, 754, 756, 758, 758, - 760, 762, 764, 766, 768, 770, 772, 774, - 777, 779, 781, 784, 786, 788, 790, 793, - 795, 797, 799, 802, 804, 806, 808, 811, - 813, 816, 818, 820, 823, 826, 829, 831, - 834, 836, 838, 841, 844, 844, 846, 848, - 850, 852, 854, 856, 856, 859, 862, 865, - 865, 867, 869, 871, 873, 875, 877, 879, - 881, 883, 885, 885, 888, 891, 894, 897, - 900, 900, 902, 904, 906, 908, 910, 912, - 914, 917, 920, 923, 925, 925, 925, 925, - 925, 925, 927, 930, 930, 930, 930, 930, - 932, 934, 936, 938, 940, 942, 942, 944, - 947, 950, 953, 956, 956, 958, 960, 962, - 964, 964, 966, 969, 972, 975, 975, 977, - 979, 981, 983, 985, 987, 993, 1004, 1006, - 1009, 1015, 1018, 1029, 1032, 1035, 1038, 1040, - 1042, 1044, 1046, 1052, 1055, 1058, 1060, 1062, - 1064, 1066, 1072, 1075, 1078, 1080, 1082, 1084, - 1086, 1092, 1095, 1098, 1101, 1101, 1103, 1105, - 1107, 1109, 1111, 1113, 1115, 1117, 1119, 1121, - 1123, 1125, 1127, 1129, 1131, 1133, 1135, 1138, - 1141, 1144, 1147, 1150, 1153, 1156, 1159, 1159, - 1159, 1161, 1161, 1161, 1161, 1163, 1163, 1165, - 1165, 1165, 1167, 1167, 1167, 1167, 1167, 1167, - 1169, 1171, 1171, 1171, 1173, 1173, 1173, 1173, - 1175, 1175, 1175, 1175, 1177, 1177, 1177, 1177, - 1177, 1179, 1179, 1179, 1179, 1181, 1181, 1181, - 1181, 1183, 1185, 1185, 1185, 1187, 1187, 1187, - 1187, 1187, 1189, 1189, 1191, 1191, 1191, 1191, - 1191, 1193, 1193, 1193, 1193, 1195, 1195, 1195, - 1195, 1195, 1195, 1195, 1195, 1197, 1197, 1197, - 1199, 1201, 1201, 1201, 1203, 1203, 1205, 1205, - 1207, 1209, 1209, 1209, 1209, 1209, 1211, 1213, - 1213, 1213, 1213, 1213, 1215, 1215, 1217, 1219, - 1219, 1221, 1223, 1223, 1223, 1223, 1223, 1225, - 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, - 1225, 1227, 1227, 1227, 1229, 1229, 1231, 1231, - 1231, 1231, 1233, 1235, 1235, 1235, 1235, 1235, - 1235, 1237, 1237, 1239, 1239, 1241, 1241, 1243, - 1243, 1243, 1243, 1245, 1245, 1245, 1247, 1247, - 1247, 1247, 1249, 1249, 1251, 1251, 1251, 1251, - 1253, 1253, 1253, 1255, 1255, 1255, 1255, 1255, - 1255, 1257, 1257, 1257, 1257, 1257, 1257, 1259, - 1259, 1259, 1259, 1259, 1261, 1263, 1265, 1267, - 1269, 1271, 1273, 1276, 1279, 1282, 1282, 1284, - 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1298, - 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, - 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1303, - 1303, 1305, 1308, 1311, 1314, 1314, 1316, 1318, - 1320, 1322, 1324, 1326, 1326, 1326, 1326, 1329, - 1332, 1335, 1335, 1337, 1339, 1341, 1343, 1345, - 1347, 1347, 1349, 1352, 1355, 1358, 1361, 1361, - 1363, 1365, 1365, 1365, 1368, 1368, 1370, 1372, - 1374, 1376, 1378, 1380, 1380, 1382, 1385, 1388, - 1391, 1394, 1394, 1396, 1398, 1398, 1401, 1401, - 1403, 1405, 1405, 1405, 1405, 1405, 1405, 1405, - 1405, 1405, 1405, 1408, 1408, 1408, 1408, 1408, - 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, - 1408, 1410, 1412, 1414, 1416, 1416, 1419, 1422, - 1422, 1424, 1426, 1428, 1430, 1430, 1433, 1436, - 1436, 1438, 1440, 1440, 1440, 1443, 1443, 1443, - 1443, 1445, 1447, 1449, 1451, 1453, 1455, 1455, - 1458, 1461, 1464, 1464, 1464, 1464, 1466, 1466, - 1466, 1466, 1466, 1468, 1470, 1472, 1474, 1476, - 1478, 1480, 1482, 1484, 1486, 1488, 1488, 1488, - 1488, 1488, 1488, 1488, 1488, 1488, 1490, 1490, - 1492, 1495, 1495, 1497, 1500, 1500, 1502, 1505, - 1507, 1507, 1509, 1512, 1515, 1515, 1515, 1517, - 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, - 1520, 1520, 1520, 1522, 1525, 1525, 1525, 1527, - 1530, 1532, 1535, 1537, 1540, 1542, 1545, 1545, - 1545, 1545, 1545, 1547, 1550, 1550, 1552, 1555, - 1555, 1557, 1560, 1560, 1566, 1569, 1580, 1583, - 1594, 1597, 1597, 1597, 1597, 1597, 1597, 1597, - 1597, 1599, 1602, 1602, 1602, 1604, 1607, 1607, - 1607, 1607, 1607, 1607, 1607, 1607 + 644, 644, 644, 644, 644, 646, 648, 650, + 652, 654, 656, 658, 660, 662, 664, 666, + 668, 668, 668, 668, 668, 671, 673, 673, + 675, 678, 680, 680, 682, 685, 687, 687, + 689, 692, 695, 698, 698, 700, 702, 702, + 705, 705, 707, 709, 709, 712, 712, 714, + 716, 716, 719, 719, 721, 723, 726, 726, + 726, 726, 728, 730, 732, 734, 736, 738, + 740, 742, 744, 746, 748, 750, 752, 754, + 756, 758, 758, 760, 762, 764, 766, 768, + 770, 772, 774, 777, 779, 781, 784, 786, + 788, 790, 793, 795, 797, 799, 802, 804, + 806, 808, 811, 813, 816, 818, 820, 823, + 826, 829, 831, 834, 836, 838, 841, 844, + 844, 846, 848, 850, 852, 854, 856, 856, + 859, 862, 865, 865, 867, 869, 871, 873, + 875, 877, 879, 881, 883, 885, 885, 888, + 891, 894, 897, 900, 900, 902, 904, 906, + 908, 910, 912, 914, 917, 920, 923, 925, + 925, 925, 925, 925, 925, 927, 930, 930, + 930, 930, 930, 932, 934, 936, 938, 940, + 942, 942, 944, 947, 950, 953, 956, 956, + 958, 960, 962, 964, 964, 966, 969, 972, + 975, 975, 977, 979, 981, 983, 985, 987, + 993, 1004, 1006, 1009, 1015, 1018, 1029, 1032, + 1035, 1038, 1040, 1042, 1044, 1046, 1052, 1055, + 1058, 1060, 1062, 1064, 1066, 1072, 1075, 1078, + 1080, 1082, 1084, 1086, 1092, 1095, 1098, 1101, + 1101, 1103, 1105, 1107, 1109, 1111, 1113, 1115, + 1117, 1119, 1121, 1123, 1125, 1127, 1129, 1131, + 1133, 1135, 1138, 1141, 1144, 1147, 1150, 1153, + 1156, 1159, 1159, 1159, 1159, 1159, 1161, 1163, + 1165, 1167, 1169, 1171, 1173, 1176, 1179, 1182, + 1182, 1184, 1184, 1186, 1188, 1190, 1192, 1194, + 1196, 1198, 1200, 1200, 1200, 1200, 1200, 1200, + 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, + 1200, 1203, 1203, 1205, 1208, 1211, 1214, 1214, + 1216, 1218, 1220, 1222, 1224, 1226, 1226, 1226, + 1226, 1229, 1232, 1235, 1235, 1237, 1239, 1241, + 1243, 1245, 1247, 1247, 1249, 1252, 1255, 1258, + 1261, 1261, 1263, 1265, 1265, 1265, 1268, 1268, + 1270, 1272, 1274, 1276, 1278, 1280, 1280, 1282, + 1285, 1288, 1291, 1294, 1294, 1296, 1298, 1298, + 1301, 1301, 1303, 1305, 1305, 1305, 1305, 1305, + 1305, 1305, 1305, 1305, 1305, 1308, 1308, 1308, + 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, + 1308, 1308, 1308, 1310, 1312, 1314, 1316, 1316, + 1319, 1322, 1322, 1324, 1326, 1328, 1330, 1330, + 1333, 1336, 1336, 1338, 1340, 1340, 1340, 1343, + 1343, 1345, 1347, 1349, 1351, 1353, 1355, 1355, + 1358, 1361, 1364, 1366, 1368, 1370, 1372, 1374, + 1376, 1378, 1380, 1382, 1384, 1384, 1384, 1384, + 1384, 1384, 1384, 1384, 1384, 1386, 1386, 1388, + 1391, 1391, 1391, 1393, 1396, 1396, 1398, 1401, + 1403, 1403, 1405, 1408, 1411, 1411, 1411, 1413, + 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, + 1416, 1416, 1416, 1418, 1421, 1421, 1421, 1423, + 1426, 1428, 1431, 1433, 1436, 1438, 1441, 1441, + 1441, 1441, 1441, 1443, 1446, 1446, 1448, 1451, + 1451, 1453, 1456, 1456, 1462, 1465, 1476, 1479, + 1490, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1495, 1498, 1498, 1498, 1500, 1503, 1503, + 1503, 1503, 1503, 1503, 1503, 1503 }; static const char _zone_scanner_cond_lengths[] = { @@ -1164,52 +1091,73 @@ static const char _zone_scanner_cond_lengths[] = { 0, 0, 2, 3, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 2, 3, 2, 3, 3, 0, 0, 0, - 0, 2, 3, 0, 2, 2, 2, 0, - 0, 2, 3, 0, 0, 2, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 2, + 0, 2, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, 2, + 2, 2, 0, 0, 2, 3, 0, 0, + 2, 0, 0, 0, 0, 0, 2, 2, + 0, 0, 2, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 2, 2, 0, 0, - 2, 0, 0, 0, 0, 2, 0, 2, - 0, 0, 0, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 2, 2, 0, 0, 2, - 0, 2, 0, 2, 2, 0, 0, 0, - 0, 2, 2, 0, 0, 0, 0, 2, - 0, 2, 2, 0, 2, 2, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 2, - 0, 2, 0, 0, 0, 2, 2, 0, - 0, 0, 0, 0, 2, 0, 2, 0, + 2, 0, 0, 2, 0, 0, 0, 0, + 2, 0, 2, 0, 0, 0, 0, 2, + 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 2, 2, + 0, 0, 2, 0, 2, 0, 2, 2, + 0, 0, 0, 0, 2, 2, 0, 0, + 0, 0, 2, 0, 2, 2, 0, 2, + 2, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 2, 0, 2, 0, 0, 0, + 2, 2, 0, 0, 0, 0, 0, 2, + 0, 2, 0, 2, 0, 2, 0, 0, + 0, 2, 0, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0, - 0, 2, 0, 0, 0, 2, 0, 2, - 0, 0, 0, 2, 0, 0, 2, 0, - 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 2, 0, - 2, 2, 2, 2, 2, 0, 2, 3, - 3, 3, 2, 2, 2, 2, 0, 2, - 3, 3, 2, 3, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 2, 0, 0, + 0, 2, 0, 2, 2, 2, 2, 2, + 0, 2, 3, 3, 3, 2, 2, 2, + 2, 0, 2, 3, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, - 0, 0, 0, 2, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, - 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, + 2, 2, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 2, 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, @@ -1229,82 +1177,60 @@ static const char _zone_scanner_cond_lengths[] = { 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, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 0, 0, 0, - 0, 3, 2, 0, 2, 3, 2, 0, - 2, 3, 2, 0, 2, 3, 3, 3, - 0, 2, 2, 0, 3, 0, 2, 2, - 0, 3, 0, 2, 2, 0, 3, 0, - 2, 2, 3, 0, 0, 0, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 3, - 2, 2, 3, 2, 2, 2, 3, 2, - 2, 2, 3, 2, 2, 2, 3, 2, - 3, 2, 2, 3, 3, 3, 2, 3, - 2, 2, 3, 3, 0, 2, 2, 2, - 2, 2, 2, 0, 3, 3, 3, 0, + 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 0, 3, 3, 3, 3, 3, + 0, 0, 0, 0, 3, 2, 0, 2, + 3, 2, 0, 2, 3, 2, 0, 2, + 3, 3, 3, 0, 2, 2, 0, 3, + 0, 2, 2, 0, 3, 0, 2, 2, + 0, 3, 0, 2, 2, 3, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 3, 2, 0, 0, 0, 0, - 0, 2, 3, 0, 0, 0, 0, 2, - 2, 2, 2, 2, 2, 0, 2, 3, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 2, 2, 3, 2, 2, + 2, 3, 2, 2, 2, 3, 2, 2, + 2, 3, 2, 3, 2, 2, 3, 3, + 3, 2, 3, 2, 2, 3, 3, 0, + 2, 2, 2, 2, 2, 2, 0, 3, + 3, 3, 0, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 0, 3, 3, 3, 3, 3, 0, 2, 2, 2, 2, - 0, 2, 3, 3, 3, 0, 2, 2, - 2, 2, 2, 2, 6, 11, 2, 3, - 6, 3, 11, 3, 3, 3, 2, 2, - 2, 2, 6, 3, 3, 2, 2, 2, - 2, 6, 3, 3, 2, 2, 2, 2, - 6, 3, 3, 3, 0, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 2, 0, + 0, 0, 0, 0, 2, 3, 0, 0, + 0, 0, 2, 2, 2, 2, 2, 2, + 0, 2, 3, 3, 3, 3, 0, 2, + 2, 2, 2, 0, 2, 3, 3, 3, + 0, 2, 2, 2, 2, 2, 2, 6, + 11, 2, 3, 6, 3, 11, 3, 3, + 3, 2, 2, 2, 2, 6, 3, 3, + 2, 2, 2, 2, 6, 3, 3, 2, + 2, 2, 2, 6, 3, 3, 3, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 0, 0, - 2, 0, 0, 0, 2, 0, 2, 0, - 0, 2, 0, 0, 0, 0, 0, 2, - 2, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 2, 0, 0, 0, 0, - 2, 0, 0, 0, 2, 0, 0, 0, - 2, 2, 0, 0, 2, 0, 0, 0, - 0, 2, 0, 2, 0, 0, 0, 0, - 2, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 2, - 2, 0, 0, 2, 0, 2, 0, 2, - 2, 0, 0, 0, 0, 2, 2, 0, - 0, 0, 0, 2, 0, 2, 2, 0, - 2, 2, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 2, 0, 2, 0, 0, - 0, 2, 2, 0, 0, 0, 0, 0, - 2, 0, 2, 0, 2, 0, 2, 0, - 0, 0, 2, 0, 0, 2, 0, 0, - 0, 2, 0, 2, 0, 0, 0, 2, - 0, 0, 2, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 2, 2, 2, 2, 2, - 2, 2, 3, 3, 3, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 3, 3, 3, 3, 3, 3, + 3, 0, 0, 0, 0, 2, 2, 2, + 2, 2, 2, 2, 3, 3, 3, 0, + 2, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, - 2, 3, 3, 3, 0, 2, 2, 2, - 2, 2, 2, 0, 0, 0, 3, 3, - 3, 0, 2, 2, 2, 2, 2, 2, - 0, 2, 3, 3, 3, 3, 0, 2, - 2, 0, 0, 3, 0, 2, 2, 2, - 2, 2, 2, 0, 2, 3, 3, 3, - 3, 0, 2, 2, 0, 3, 0, 2, - 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 0, + 3, 0, 2, 3, 3, 3, 0, 2, + 2, 2, 2, 2, 2, 0, 0, 0, + 3, 3, 3, 0, 2, 2, 2, 2, + 2, 2, 0, 2, 3, 3, 3, 3, + 0, 2, 2, 0, 0, 3, 0, 2, + 2, 2, 2, 2, 2, 0, 2, 3, + 3, 3, 3, 0, 2, 2, 0, 3, + 0, 2, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 2, 0, 3, 3, 0, - 2, 2, 2, 2, 0, 3, 3, 0, - 2, 2, 0, 0, 3, 0, 0, 0, + 0, 0, 2, 2, 2, 2, 0, 3, + 3, 0, 2, 2, 2, 2, 0, 3, + 3, 0, 2, 2, 0, 0, 3, 0, 2, 2, 2, 2, 2, 2, 0, 3, - 3, 3, 0, 0, 0, 2, 0, 0, - 0, 0, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 2, - 3, 0, 2, 3, 0, 2, 3, 2, + 3, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 2, 3, + 0, 0, 2, 3, 0, 2, 3, 2, 0, 2, 3, 3, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 2, 3, @@ -1610,31 +1536,6 @@ static const short _zone_scanner_cond_keys[] = { 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, @@ -1689,7 +1590,6 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, @@ -1868,6 +1768,8 @@ static const char _zone_scanner_cond_spaces[] = { 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, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1875,27 +1777,12 @@ static const char _zone_scanner_cond_spaces[] = { 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, 7, + 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, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 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, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 7, 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, @@ -1974,156 +1861,155 @@ static const short _zone_scanner_key_offsets[] = { 3231, 3233, 3243, 3251, 3254, 3260, 3272, 3280, 3298, 3308, 3326, 3334, 3335, 3337, 3339, 3341, 3351, 3359, 3365, 3381, 3384, 3387, 3394, 3401, - 3409, 3417, 3434, 3437, 3438, 3448, 3494, 3510, - 3512, 3514, 3524, 3527, 3537, 3539, 3549, 3553, - 3555, 3557, 3559, 3561, 3571, 3581, 3583, 3585, - 3595, 3597, 3599, 3601, 3611, 3613, 3615, 3617, - 3627, 3633, 3635, 3637, 3639, 3649, 3653, 3655, - 3657, 3667, 3669, 3671, 3673, 3683, 3695, 3697, - 3699, 3709, 3711, 3713, 3715, 3716, 3726, 3727, - 3737, 3741, 3743, 3745, 3747, 3757, 3759, 3761, - 3763, 3773, 3775, 3777, 3779, 3781, 3783, 3785, - 3787, 3797, 3801, 3803, 3813, 3823, 3829, 3830, - 3840, 3841, 3851, 3853, 3863, 3873, 3877, 3879, - 3881, 3883, 3893, 3903, 3909, 3911, 3913, 3915, - 3925, 3927, 3937, 3949, 3951, 3962, 3974, 3976, - 3978, 3980, 3982, 3992, 3994, 3996, 3998, 4000, - 4002, 4004, 4006, 4008, 4010, 4020, 4022, 4024, - 4034, 4040, 4050, 4052, 4054, 4056, 4066, 4076, - 4088, 4090, 4092, 4094, 4096, 4106, 4108, 4118, - 4120, 4130, 4132, 4142, 4144, 4146, 4148, 4158, - 4160, 4162, 4172, 4178, 4180, 4182, 4192, 4194, - 4204, 4206, 4208, 4210, 4222, 4224, 4226, 4236, - 4238, 4240, 4242, 4244, 4246, 4256, 4258, 4260, - 4262, 4264, 4266, 4276, 4278, 4280, 4282, 4292, - 4294, 4304, 4310, 4318, 4326, 4338, 4344, 4360, - 4363, 4366, 4369, 4375, 4384, 4394, 4406, 4412, - 4428, 4431, 4434, 4442, 4445, 4453, 4454, 4455, - 4456, 4464, 4465, 4466, 4467, 4468, 4469, 4470, - 4478, 4479, 4480, 4488, 4489, 4490, 4492, 4493, - 4494, 4495, 4496, 4504, 4505, 4506, 4507, 4508, - 4516, 4517, 4518, 4520, 4530, 4531, 4532, 4533, - 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, - 4542, 4543, 4544, 4552, 4553, 4554, 4555, 4556, - 4564, 4565, 4566, 4567, 4575, 4585, 4604, 4605, - 4606, 4607, 4608, 4615, 4625, 4628, 4629, 4630, - 4631, 4632, 4633, 4634, 4635, 4642, 4652, 4668, - 4669, 4679, 4680, 4681, 4682, 4690, 4697, 4704, - 4712, 4720, 4728, 4729, 4736, 4744, 4752, 4769, - 4770, 4771, 4772, 4774, 4775, 4776, 4777, 4778, - 4779, 4783, 4786, 4791, 4794, 4808, 4811, 4812, - 4813, 4814, 4815, 4816, 4824, 4831, 4840, 4847, - 4865, 4872, 4873, 4874, 4876, 4889, 4895, 4896, - 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, - 4909, 4913, 4915, 4919, 4930, 4934, 4935, 4936, - 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, - 4945, 4946, 4947, 4948, 4958, 4959, 4960, 4961, - 4962, 4972, 4973, 4974, 4975, 4976, 4979, 4981, - 4984, 4996, 5012, 5013, 5025, 5033, 5037, 5043, - 5045, 5052, 5054, 5056, 5058, 5060, 5061, 5062, - 5064, 5066, 5068, 5069, 5075, 5079, 5083, 5084, - 5086, 5088, 5090, 5092, 5098, 5100, 5102, 5104, - 5106, 5107, 5108, 5110, 5112, 5114, 5115, 5116, - 5117, 5123, 5124, 5125, 5127, 5129, 5131, 5132, - 5133, 5134, 5140, 5142, 5143, 5144, 5145, 5146, - 5152, 5153, 5154, 5160, 5162, 5164, 5166, 5168, - 5170, 5172, 5174, 5180, 5182, 5184, 5186, 5188, - 5190, 5192, 5196, 5198, 5200, 5206, 5208, 5210, - 5216, 5218, 5220, 5224, 5226, 5227, 5233, 5235, - 5237, 5240, 5247, 5249, 5251, 5253, 5255, 5256, - 5257, 5259, 5261, 5263, 5264, 5270, 5271, 5272, - 5278, 5279, 5280, 5286, 5300, 5308, 5310, 5312, - 5314, 5316, 5318, 5324, 5330, 5332, 5334, 5336, - 5338, 5340, 5346, 5350, 5352, 5358, 5360, 5362, - 5368, 5370, 5372, 5374, 5380, 5382, 5384, 5390, - 5394, 5396, 5402, 5404, 5406, 5412, 5414, 5416, - 5418, 5424, 5426, 5428, 5434, 5438, 5446, 5448, - 5450, 5452, 5454, 5456, 5462, 5465, 5474, 5483, - 5489, 5498, 5504, 5519, 5525, 5533, 5541, 5549, - 5567, 5575, 5593, 5601, 5619, 5627, 5645, 5653, - 5665, 5673, 5676, 5684, 5696, 5704, 5707, 5715, - 5727, 5735, 5738, 5746, 5758, 5766, 5769, 5772, - 5775, 5781, 5787, 5799, 5805, 5808, 5817, 5823, - 5838, 5844, 5847, 5849, 5857, 5872, 5878, 5881, - 5887, 5897, 5913, 5916, 5923, 5936, 5938, 5946, - 5956, 5964, 5974, 5983, 5991, 5997, 6005, 6013, - 6023, 6031, 6041, 6050, 6058, 6064, 6073, 6075, - 6089, 6101, 6115, 6127, 6141, 6153, 6167, 6177, - 6180, 6193, 6206, 6209, 6222, 6235, 6245, 6248, - 6261, 6274, 6284, 6287, 6300, 6313, 6323, 6326, - 6332, 6335, 6343, 6351, 6354, 6357, 6360, 6366, - 6369, 6377, 6385, 6388, 6391, 6393, 6401, 6409, - 6417, 6425, 6433, 6448, 6454, 6457, 6460, 6463, - 6465, 6473, 6481, 6489, 6501, 6507, 6519, 6525, - 6537, 6543, 6558, 6564, 6567, 6570, 6573, 6576, - 6579, 6585, 6591, 6599, 6607, 6619, 6625, 6638, - 6640, 6643, 6646, 6649, 6662, 6664, 6665, 6668, - 6671, 6673, 6685, 6688, 6689, 6696, 6703, 6705, - 6713, 6725, 6731, 6739, 6747, 6759, 6765, 6781, - 6784, 6787, 6790, 6793, 6795, 6803, 6811, 6819, - 6831, 6837, 6853, 6856, 6859, 6862, 6864, 6872, - 6882, 6888, 6896, 6904, 6911, 6945, 6958, 6960, - 6963, 6977, 6980, 7021, 7030, 7033, 7036, 7042, - 7050, 7058, 7067, 7104, 7107, 7110, 7116, 7124, - 7132, 7145, 7186, 7189, 7192, 7198, 7206, 7214, - 7229, 7263, 7266, 7269, 7272, 7308, 7320, 7332, - 7338, 7346, 7354, 7362, 7370, 7378, 7386, 7394, - 7402, 7410, 7418, 7433, 7439, 7452, 7454, 7457, - 7460, 7463, 7466, 7469, 7472, 7475, 7478, 7480, - 7482, 7488, 7490, 7492, 7494, 7500, 7502, 7508, - 7518, 7520, 7526, 7530, 7532, 7534, 7536, 7538, - 7544, 7550, 7552, 7554, 7560, 7562, 7564, 7566, - 7572, 7574, 7576, 7578, 7584, 7590, 7592, 7594, - 7596, 7602, 7606, 7608, 7610, 7616, 7618, 7620, - 7622, 7628, 7636, 7638, 7640, 7646, 7648, 7650, - 7652, 7653, 7659, 7660, 7666, 7670, 7672, 7674, - 7676, 7682, 7684, 7686, 7688, 7694, 7696, 7698, - 7700, 7702, 7704, 7706, 7708, 7714, 7718, 7720, - 7726, 7732, 7738, 7739, 7745, 7746, 7752, 7754, - 7760, 7766, 7770, 7772, 7774, 7776, 7782, 7788, - 7794, 7796, 7798, 7800, 7806, 7808, 7814, 7822, - 7824, 7831, 7839, 7841, 7843, 7845, 7847, 7853, - 7855, 7857, 7859, 7861, 7863, 7865, 7867, 7869, - 7871, 7877, 7879, 7881, 7887, 7893, 7899, 7901, - 7903, 7905, 7911, 7917, 7929, 7931, 7933, 7935, - 7937, 7943, 7945, 7951, 7953, 7959, 7961, 7967, - 7969, 7971, 7973, 7979, 7981, 7983, 7989, 7995, - 7997, 7999, 8005, 8007, 8013, 8015, 8017, 8019, - 8027, 8029, 8031, 8037, 8039, 8041, 8043, 8045, - 8047, 8053, 8055, 8057, 8059, 8061, 8063, 8069, - 8078, 8084, 8090, 8092, 8100, 8108, 8116, 8128, - 8134, 8147, 8149, 8152, 8155, 8158, 8165, 8167, - 8169, 8177, 8185, 8193, 8201, 8209, 8222, 8228, - 8240, 8246, 8253, 8259, 8266, 8273, 8279, 8286, - 8298, 8304, 8305, 8306, 8307, 8308, 8309, 8312, - 8318, 8330, 8333, 8336, 8339, 8341, 8349, 8357, - 8365, 8373, 8381, 8394, 8400, 8406, 8418, 8421, - 8424, 8427, 8429, 8437, 8445, 8453, 8461, 8469, - 8481, 8487, 8503, 8506, 8509, 8512, 8515, 8517, - 8525, 8533, 8541, 8547, 8550, 8552, 8560, 8568, - 8576, 8584, 8592, 8604, 8610, 8626, 8629, 8632, - 8635, 8638, 8640, 8648, 8657, 8666, 8669, 8671, - 8679, 8691, 8697, 8703, 8709, 8710, 8716, 8722, - 8728, 8734, 8741, 8744, 8750, 8756, 8757, 8763, - 8769, 8776, 8782, 8788, 8789, 8795, 8801, 8808, - 8810, 8818, 8826, 8834, 8846, 8852, 8855, 8858, - 8860, 8868, 8880, 8886, 8898, 8904, 8907, 8910, - 8912, 8920, 8935, 8941, 8947, 8950, 8954, 8958, - 8960, 8966, 8978, 8984, 8992, 9000, 9015, 9021, - 9024, 9027, 9030, 9032, 9034, 9036, 9042, 9044, - 9046, 9048, 9050, 9058, 9076, 9109, 9163, 9219, - 9237, 9293, 9311, 9344, 9415, 9486, 9486, 9486, - 9486, 9486, 9498, 9498, 9498, 9498, 9514, 9514, - 9531, 9534, 9534, 9580, 9583, 9583, 9599, 9602, - 9614, 9614, 9630, 9633, 9636, 9636, 9636, 9655, - 9658, 9658, 9658, 9658, 9658, 9658, 9658, 9658, - 9658, 9658, 9658, 9674, 9677, 9677, 9677, 9687, - 9690, 9702, 9705, 9717, 9720, 9732, 9735, 9735, - 9735, 9735, 9735, 9748, 9751, 9751, 9767, 9770, - 9770, 9786, 9789, 9789, 9803, 9806, 9819, 9822, - 9863, 9872, 9872, 9872, 9872, 9872, 9872, 9872, - 9872, 9888, 9891, 9891, 9891, 9907, 9910, 9910, - 9910, 9910, 9910, 9910, 9910, 9910 + 3409, 3417, 3434, 3437, 3438, 3474, 3486, 3488, + 3490, 3496, 3498, 3500, 3502, 3508, 3510, 3516, + 3526, 3528, 3534, 3538, 3540, 3542, 3544, 3546, + 3552, 3558, 3560, 3562, 3568, 3570, 3572, 3574, + 3580, 3582, 3584, 3586, 3592, 3598, 3600, 3602, + 3604, 3610, 3614, 3616, 3618, 3624, 3626, 3628, + 3630, 3636, 3644, 3646, 3648, 3654, 3656, 3658, + 3660, 3661, 3667, 3668, 3674, 3678, 3680, 3682, + 3684, 3690, 3692, 3694, 3696, 3702, 3704, 3706, + 3708, 3710, 3712, 3714, 3716, 3722, 3726, 3728, + 3734, 3740, 3746, 3747, 3753, 3754, 3760, 3762, + 3768, 3774, 3778, 3780, 3782, 3784, 3790, 3796, + 3802, 3804, 3806, 3808, 3814, 3816, 3822, 3830, + 3832, 3839, 3847, 3849, 3851, 3853, 3855, 3861, + 3863, 3865, 3867, 3869, 3871, 3873, 3875, 3877, + 3879, 3885, 3887, 3889, 3895, 3901, 3907, 3909, + 3911, 3913, 3919, 3925, 3937, 3939, 3941, 3943, + 3945, 3951, 3953, 3959, 3961, 3967, 3969, 3975, + 3977, 3979, 3981, 3987, 3989, 3991, 3997, 4003, + 4005, 4007, 4013, 4015, 4021, 4023, 4025, 4027, + 4035, 4037, 4039, 4045, 4047, 4049, 4051, 4053, + 4055, 4061, 4063, 4065, 4067, 4069, 4071, 4077, + 4087, 4133, 4149, 4151, 4153, 4163, 4166, 4176, + 4178, 4188, 4192, 4194, 4196, 4198, 4200, 4210, + 4220, 4222, 4224, 4234, 4236, 4238, 4240, 4250, + 4252, 4254, 4256, 4266, 4272, 4274, 4276, 4278, + 4288, 4292, 4294, 4296, 4306, 4308, 4310, 4312, + 4322, 4334, 4336, 4338, 4348, 4350, 4352, 4354, + 4355, 4365, 4366, 4376, 4380, 4382, 4384, 4386, + 4396, 4398, 4400, 4402, 4412, 4414, 4416, 4418, + 4420, 4422, 4424, 4426, 4436, 4440, 4442, 4452, + 4462, 4468, 4469, 4479, 4480, 4490, 4492, 4502, + 4512, 4516, 4518, 4520, 4522, 4532, 4542, 4548, + 4550, 4552, 4554, 4564, 4566, 4576, 4588, 4590, + 4601, 4613, 4615, 4617, 4619, 4621, 4631, 4633, + 4635, 4637, 4639, 4641, 4643, 4645, 4647, 4649, + 4659, 4661, 4663, 4673, 4679, 4689, 4691, 4693, + 4695, 4705, 4715, 4727, 4729, 4731, 4733, 4735, + 4745, 4747, 4757, 4759, 4769, 4771, 4781, 4783, + 4785, 4787, 4797, 4799, 4801, 4811, 4817, 4819, + 4821, 4831, 4833, 4843, 4845, 4847, 4849, 4861, + 4863, 4865, 4875, 4877, 4879, 4881, 4883, 4885, + 4895, 4897, 4899, 4901, 4903, 4905, 4915, 4917, + 4919, 4921, 4931, 4933, 4943, 4949, 4957, 4965, + 4977, 4983, 4999, 5002, 5005, 5008, 5014, 5023, + 5033, 5045, 5051, 5067, 5070, 5073, 5081, 5084, + 5092, 5093, 5094, 5095, 5103, 5104, 5105, 5106, + 5107, 5108, 5109, 5117, 5118, 5119, 5127, 5128, + 5129, 5131, 5132, 5133, 5134, 5135, 5143, 5144, + 5145, 5146, 5147, 5155, 5156, 5157, 5159, 5169, + 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, + 5178, 5179, 5180, 5181, 5182, 5183, 5191, 5192, + 5193, 5194, 5195, 5203, 5204, 5205, 5206, 5214, + 5224, 5243, 5244, 5245, 5246, 5247, 5254, 5264, + 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, + 5281, 5291, 5307, 5308, 5318, 5319, 5320, 5321, + 5329, 5336, 5343, 5351, 5359, 5367, 5368, 5375, + 5383, 5391, 5408, 5409, 5410, 5411, 5413, 5414, + 5415, 5416, 5417, 5418, 5422, 5425, 5430, 5433, + 5447, 5450, 5451, 5452, 5453, 5454, 5455, 5463, + 5470, 5479, 5486, 5504, 5511, 5512, 5513, 5515, + 5528, 5534, 5535, 5536, 5537, 5538, 5539, 5540, + 5541, 5542, 5543, 5548, 5552, 5554, 5558, 5569, + 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, + 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5597, + 5598, 5599, 5600, 5601, 5611, 5612, 5613, 5614, + 5615, 5618, 5620, 5623, 5635, 5651, 5652, 5664, + 5672, 5676, 5682, 5684, 5691, 5693, 5695, 5697, + 5699, 5700, 5701, 5703, 5705, 5707, 5708, 5714, + 5718, 5722, 5723, 5725, 5727, 5729, 5731, 5737, + 5739, 5741, 5743, 5745, 5746, 5747, 5749, 5751, + 5753, 5754, 5755, 5756, 5762, 5763, 5764, 5766, + 5768, 5770, 5771, 5772, 5773, 5779, 5781, 5782, + 5783, 5784, 5785, 5791, 5792, 5793, 5799, 5801, + 5803, 5805, 5807, 5809, 5811, 5813, 5819, 5821, + 5823, 5825, 5827, 5829, 5831, 5835, 5837, 5839, + 5845, 5847, 5849, 5855, 5857, 5859, 5863, 5865, + 5866, 5872, 5874, 5876, 5879, 5886, 5888, 5890, + 5892, 5894, 5895, 5896, 5898, 5900, 5902, 5903, + 5909, 5910, 5911, 5917, 5918, 5919, 5925, 5939, + 5947, 5949, 5951, 5953, 5955, 5957, 5963, 5969, + 5971, 5973, 5975, 5977, 5979, 5985, 5989, 5991, + 5997, 5999, 6001, 6007, 6009, 6011, 6013, 6019, + 6021, 6023, 6029, 6033, 6035, 6041, 6043, 6045, + 6051, 6053, 6055, 6057, 6063, 6065, 6067, 6073, + 6077, 6085, 6087, 6089, 6091, 6093, 6095, 6101, + 6104, 6113, 6122, 6128, 6137, 6143, 6158, 6164, + 6172, 6180, 6188, 6206, 6214, 6232, 6240, 6258, + 6266, 6284, 6292, 6304, 6312, 6315, 6323, 6335, + 6343, 6346, 6354, 6366, 6374, 6377, 6385, 6397, + 6405, 6408, 6411, 6414, 6420, 6426, 6438, 6444, + 6447, 6456, 6462, 6477, 6483, 6486, 6488, 6496, + 6511, 6517, 6520, 6526, 6536, 6552, 6555, 6562, + 6575, 6577, 6585, 6595, 6603, 6613, 6622, 6630, + 6636, 6644, 6652, 6662, 6670, 6680, 6689, 6697, + 6703, 6712, 6714, 6728, 6740, 6754, 6766, 6780, + 6792, 6806, 6816, 6819, 6832, 6845, 6848, 6861, + 6874, 6884, 6887, 6900, 6913, 6923, 6926, 6939, + 6952, 6962, 6965, 6971, 6974, 6982, 6990, 6993, + 6996, 6999, 7005, 7008, 7016, 7024, 7027, 7030, + 7032, 7040, 7048, 7056, 7064, 7072, 7087, 7093, + 7096, 7099, 7102, 7104, 7112, 7120, 7128, 7140, + 7146, 7158, 7164, 7176, 7182, 7197, 7203, 7206, + 7209, 7212, 7215, 7218, 7224, 7230, 7238, 7246, + 7258, 7264, 7277, 7279, 7282, 7285, 7288, 7301, + 7303, 7304, 7307, 7310, 7312, 7324, 7327, 7328, + 7335, 7342, 7344, 7352, 7364, 7370, 7378, 7386, + 7398, 7404, 7420, 7423, 7426, 7429, 7432, 7434, + 7442, 7450, 7458, 7470, 7476, 7492, 7495, 7498, + 7501, 7503, 7511, 7521, 7527, 7535, 7543, 7550, + 7584, 7597, 7599, 7602, 7616, 7619, 7660, 7669, + 7672, 7675, 7681, 7689, 7697, 7706, 7743, 7746, + 7749, 7755, 7763, 7771, 7784, 7825, 7828, 7831, + 7837, 7845, 7853, 7868, 7902, 7905, 7908, 7911, + 7917, 7923, 7935, 7941, 7949, 7957, 7965, 7973, + 7981, 7989, 7997, 8005, 8013, 8021, 8036, 8042, + 8055, 8057, 8060, 8063, 8066, 8069, 8072, 8075, + 8078, 8081, 8090, 8096, 8102, 8104, 8112, 8120, + 8128, 8140, 8146, 8159, 8161, 8164, 8167, 8170, + 8177, 8179, 8181, 8189, 8197, 8205, 8213, 8221, + 8234, 8240, 8252, 8258, 8265, 8271, 8278, 8285, + 8291, 8298, 8310, 8316, 8317, 8318, 8319, 8320, + 8321, 8324, 8330, 8342, 8345, 8348, 8351, 8353, + 8361, 8369, 8377, 8385, 8393, 8406, 8412, 8418, + 8430, 8433, 8436, 8439, 8441, 8449, 8457, 8465, + 8473, 8481, 8493, 8499, 8515, 8518, 8521, 8524, + 8527, 8529, 8537, 8545, 8553, 8559, 8562, 8564, + 8572, 8580, 8588, 8596, 8604, 8616, 8622, 8638, + 8641, 8644, 8647, 8650, 8652, 8660, 8669, 8678, + 8681, 8683, 8691, 8703, 8709, 8715, 8721, 8722, + 8728, 8734, 8740, 8746, 8753, 8756, 8762, 8768, + 8769, 8775, 8781, 8788, 8794, 8800, 8801, 8807, + 8813, 8820, 8822, 8830, 8838, 8846, 8858, 8864, + 8867, 8870, 8872, 8880, 8892, 8898, 8910, 8916, + 8919, 8922, 8924, 8932, 8947, 8953, 8959, 8962, + 8968, 8974, 8986, 8992, 9000, 9008, 9023, 9029, + 9032, 9035, 9038, 9056, 9089, 9143, 9199, 9217, + 9273, 9291, 9324, 9395, 9466, 9466, 9466, 9466, + 9466, 9478, 9478, 9478, 9478, 9494, 9494, 9511, + 9514, 9514, 9514, 9560, 9563, 9563, 9579, 9582, + 9594, 9594, 9610, 9613, 9616, 9616, 9616, 9635, + 9638, 9638, 9638, 9638, 9638, 9638, 9638, 9638, + 9638, 9638, 9638, 9654, 9657, 9657, 9657, 9667, + 9670, 9682, 9685, 9697, 9700, 9712, 9715, 9715, + 9715, 9715, 9715, 9728, 9731, 9731, 9747, 9750, + 9750, 9766, 9769, 9769, 9783, 9786, 9799, 9802, + 9843, 9852, 9852, 9852, 9852, 9852, 9852, 9852, + 9852, 9868, 9871, 9871, 9871, 9887, 9890, 9890, + 9890, 9890, 9890, 9890, 9890, 9890 }; static const short _zone_scanner_trans_keys[] = { @@ -2556,290 +2442,366 @@ static const short _zone_scanner_trans_keys[] = { 122, 43, 61, 47, 57, 65, 90, 97, 122, 9, 32, 40, 41, 43, 3082, 3131, 3338, 3387, 3594, 3643, 47, 57, 65, 90, - 97, 122, 2058, 1920, 2175, 61, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 9, 32, 40, 41, 65, 67, 68, 69, - 72, 73, 75, 76, 77, 78, 79, 80, - 82, 83, 84, 85, 87, 90, 97, 99, - 100, 101, 104, 105, 107, 108, 109, 110, - 111, 112, 114, 115, 116, 117, 119, 122, - 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, - 40, 41, 65, 70, 80, 97, 102, 112, - 3082, 3131, 3338, 3387, 3594, 3643, 65, 97, - 65, 97, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 2058, 1920, 2175, 65, - 68, 69, 78, 83, 97, 100, 101, 110, - 115, 65, 97, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 78, 83, 110, - 115, 83, 115, 75, 107, 69, 101, 89, - 121, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 82, 114, 84, - 116, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 65, 97, 77, 109, 69, - 101, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 89, 121, 78, 110, 67, - 99, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 72, 78, 83, 104, 110, - 115, 67, 99, 73, 105, 68, 100, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 65, 83, 97, 115, 77, 109, 69, - 101, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 75, 107, 69, 101, 89, - 121, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 9, 32, 40, 41, 89, - 121, 3082, 3131, 3338, 3387, 3594, 3643, 78, - 110, 67, 99, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 85, 117, 73, - 105, 52, 54, 56, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 52, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 73, 84, 105, 116, 78, 110, 70, - 102, 79, 111, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 84, 116, 80, - 112, 83, 115, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 80, 112, 83, - 115, 69, 101, 67, 99, 75, 107, 69, - 101, 89, 121, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 69, 88, 101, - 120, 89, 121, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 51, - 54, 79, 80, 111, 112, 50, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 52, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 67, 99, 9, 32, 40, + 97, 122, 2058, 1920, 2175, 61, 65, 67, + 68, 69, 72, 73, 75, 76, 77, 78, + 79, 80, 82, 83, 84, 85, 87, 90, + 97, 99, 100, 101, 104, 105, 107, 108, + 109, 110, 111, 112, 114, 115, 116, 117, + 119, 122, 32, 59, 65, 70, 80, 97, + 102, 112, 9, 10, 40, 41, 65, 97, + 65, 97, 32, 59, 9, 10, 40, 41, + 83, 115, 68, 100, 66, 98, 32, 59, + 9, 10, 40, 41, 76, 108, 32, 59, + 9, 10, 40, 41, 65, 68, 69, 78, + 83, 97, 100, 101, 110, 115, 65, 97, + 32, 59, 9, 10, 40, 41, 78, 83, + 110, 115, 83, 115, 75, 107, 69, 101, + 89, 121, 32, 59, 9, 10, 40, 41, + 32, 59, 9, 10, 40, 41, 82, 114, + 84, 116, 32, 59, 9, 10, 40, 41, + 65, 97, 77, 109, 69, 101, 32, 59, + 9, 10, 40, 41, 89, 121, 78, 110, + 67, 99, 32, 59, 9, 10, 40, 41, + 72, 78, 83, 104, 110, 115, 67, 99, + 73, 105, 68, 100, 32, 59, 9, 10, + 40, 41, 65, 83, 97, 115, 77, 109, + 69, 101, 32, 59, 9, 10, 40, 41, + 75, 107, 69, 101, 89, 121, 32, 59, + 9, 10, 40, 41, 32, 59, 89, 121, + 9, 10, 40, 41, 78, 110, 67, 99, + 32, 59, 9, 10, 40, 41, 85, 117, + 73, 105, 52, 54, 56, 32, 59, 9, + 10, 40, 41, 52, 32, 59, 9, 10, + 40, 41, 73, 84, 105, 116, 78, 110, + 70, 102, 79, 111, 32, 59, 9, 10, + 40, 41, 84, 116, 80, 112, 83, 115, + 32, 59, 9, 10, 40, 41, 80, 112, + 83, 115, 69, 101, 67, 99, 75, 107, + 69, 101, 89, 121, 32, 59, 9, 10, + 40, 41, 69, 88, 101, 120, 89, 121, + 32, 59, 9, 10, 40, 41, 32, 59, + 9, 10, 40, 41, 51, 54, 79, 80, + 111, 112, 50, 32, 59, 9, 10, 40, + 41, 52, 32, 59, 9, 10, 40, 41, + 67, 99, 32, 59, 9, 10, 40, 41, + 32, 59, 9, 10, 40, 41, 73, 88, + 105, 120, 78, 110, 70, 102, 79, 111, + 32, 59, 9, 10, 40, 41, 32, 59, + 9, 10, 40, 41, 65, 73, 83, 97, + 105, 115, 80, 112, 84, 116, 82, 114, + 32, 59, 9, 10, 40, 41, 68, 100, + 32, 59, 9, 10, 40, 41, 32, 59, + 69, 101, 9, 10, 40, 41, 67, 99, + 32, 51, 59, 9, 10, 40, 41, 32, + 59, 80, 112, 9, 10, 40, 41, 65, + 97, 82, 114, 65, 97, 77, 109, 32, + 59, 9, 10, 40, 41, 80, 112, 69, + 101, 78, 110, 80, 112, 71, 103, 80, + 112, 75, 107, 69, 101, 89, 121, 32, + 59, 9, 10, 40, 41, 84, 116, 82, + 114, 32, 59, 9, 10, 40, 41, 80, + 82, 84, 112, 114, 116, 32, 59, 9, + 10, 40, 41, 83, 115, 73, 105, 71, + 103, 32, 59, 9, 10, 40, 41, 32, + 59, 9, 10, 40, 41, 77, 79, 80, + 82, 83, 86, 109, 111, 112, 114, 115, + 118, 73, 105, 77, 109, 69, 101, 65, + 97, 32, 59, 9, 10, 40, 41, 65, + 97, 32, 59, 9, 10, 40, 41, 70, + 102, 32, 59, 9, 10, 40, 41, 86, + 118, 32, 59, 9, 10, 40, 41, 72, + 104, 70, 102, 80, 112, 32, 59, 9, + 10, 40, 41, 67, 99, 66, 98, 32, + 59, 9, 10, 40, 41, 76, 88, 89, + 108, 120, 121, 83, 115, 65, 97, 32, + 59, 9, 10, 40, 41, 84, 116, 32, + 59, 9, 10, 40, 41, 80, 112, 69, + 101, 48, 57, 32, 59, 9, 10, 40, + 41, 48, 57, 82, 114, 73, 105, 32, + 59, 9, 10, 40, 41, 65, 97, 76, + 108, 76, 108, 69, 101, 84, 116, 32, + 59, 9, 10, 40, 41, 79, 111, 78, + 110, 69, 101, 77, 109, 68, 100, 32, + 59, 9, 10, 40, 41, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 73, 88, 105, 120, 78, 110, 70, - 102, 79, 111, 9, 32, 40, 41, 3082, + 32, 40, 41, 65, 67, 68, 69, 72, + 73, 75, 76, 77, 78, 79, 80, 82, + 83, 84, 85, 87, 90, 97, 99, 100, + 101, 104, 105, 107, 108, 109, 110, 111, + 112, 114, 115, 116, 117, 119, 122, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 65, - 73, 83, 97, 105, 115, 80, 112, 84, - 116, 82, 114, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 68, 100, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 9, 32, 40, 41, 69, 101, 3082, - 3131, 3338, 3387, 3594, 3643, 67, 99, 9, - 32, 40, 41, 51, 3082, 3131, 3338, 3387, - 3594, 3643, 9, 32, 40, 41, 80, 112, - 3082, 3131, 3338, 3387, 3594, 3643, 65, 97, - 82, 114, 65, 97, 77, 109, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 80, 112, 69, 101, 78, 110, 80, 112, - 71, 103, 80, 112, 75, 107, 69, 101, - 89, 121, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 84, 116, 82, 114, + 41, 65, 70, 80, 97, 102, 112, 3082, + 3131, 3338, 3387, 3594, 3643, 65, 97, 65, + 97, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 2058, 1920, 2175, 65, 68, + 69, 78, 83, 97, 100, 101, 110, 115, + 65, 97, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 78, 83, 110, 115, + 83, 115, 75, 107, 69, 101, 89, 121, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 80, 82, 84, 112, 114, 116, + 3594, 3643, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 82, 114, 84, 116, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 83, 115, 73, 105, 71, 103, + 3594, 3643, 65, 97, 77, 109, 69, 101, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 77, 79, 80, 82, - 83, 86, 109, 111, 112, 114, 115, 118, - 73, 105, 77, 109, 69, 101, 65, 97, + 3594, 3643, 89, 121, 78, 110, 67, 99, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 72, 78, 83, 104, 110, 115, + 67, 99, 73, 105, 68, 100, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 65, 83, 97, 115, 77, 109, 69, 101, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 65, 97, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 70, 102, + 3594, 3643, 75, 107, 69, 101, 89, 121, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 86, 118, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 72, 104, - 70, 102, 80, 112, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 67, 99, - 66, 98, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 76, 88, 89, 108, - 120, 121, 83, 115, 65, 97, 9, 32, + 3594, 3643, 9, 32, 40, 41, 89, 121, + 3082, 3131, 3338, 3387, 3594, 3643, 78, 110, + 67, 99, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 85, 117, 73, 105, + 52, 54, 56, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 52, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 84, 116, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 80, 112, 69, 101, - 48, 57, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 82, 114, - 73, 105, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 65, 97, 76, 108, - 76, 108, 69, 101, 84, 116, 9, 32, + 73, 84, 105, 116, 78, 110, 70, 102, + 79, 111, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 84, 116, 80, 112, + 83, 115, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 80, 112, 83, 115, + 69, 101, 67, 99, 75, 107, 69, 101, + 89, 121, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 69, 88, 101, 120, + 89, 121, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 51, 54, + 79, 80, 111, 112, 50, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 52, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 67, 99, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 79, 111, 78, 110, 69, 101, 77, 109, - 68, 100, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 83, 115, 68, 100, - 66, 98, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 76, 108, 9, 32, + 73, 88, 105, 120, 78, 110, 70, 102, + 79, 111, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 65, 73, + 83, 97, 105, 115, 80, 112, 84, 116, + 82, 114, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 68, 100, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 65, 70, - 97, 102, 48, 57, 65, 70, 97, 102, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 65, 70, 97, 102, - 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, - 2175, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 48, 2058, 2107, 49, 57, - 9, 32, 40, 41, 1802, 1851, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 65, 70, 97, 102, 48, 57, - 65, 70, 97, 102, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 65, 70, 97, 102, 2058, 1920, 2175, 2058, - 1920, 2175, 9, 32, 40, 41, 2058, 2107, - 48, 57, 2058, 1920, 2175, 97, 100, 101, - 105, 107, 110, 111, 112, 108, 112, 110, - 32, 34, 44, 59, 9, 10, 40, 41, - 111, 104, 112, 97, 116, 104, 32, 34, - 44, 59, 9, 10, 40, 41, 99, 104, - 32, 34, 44, 59, 9, 10, 40, 41, - 112, 118, 52, 54, 104, 105, 110, 116, - 32, 34, 44, 59, 9, 10, 40, 41, - 104, 105, 110, 116, 32, 34, 44, 59, - 9, 10, 40, 41, 101, 121, 48, 57, - 32, 34, 44, 59, 9, 10, 40, 41, - 48, 57, 111, 45, 100, 101, 102, 97, - 117, 108, 116, 45, 97, 108, 112, 110, - 32, 34, 44, 59, 9, 10, 40, 41, - 104, 116, 116, 112, 32, 34, 44, 59, - 9, 10, 40, 41, 111, 114, 116, 32, - 34, 44, 59, 9, 10, 40, 41, 9, + 9, 32, 40, 41, 69, 101, 3082, 3131, + 3338, 3387, 3594, 3643, 67, 99, 9, 32, + 40, 41, 51, 3082, 3131, 3338, 3387, 3594, + 3643, 9, 32, 40, 41, 80, 112, 3082, + 3131, 3338, 3387, 3594, 3643, 65, 97, 82, + 114, 65, 97, 77, 109, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 80, + 112, 69, 101, 78, 110, 80, 112, 71, + 103, 80, 112, 75, 107, 69, 101, 89, + 121, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 84, 116, 82, 114, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 9, 32, 40, 41, 97, 100, 101, - 105, 107, 109, 110, 111, 112, 3082, 3131, - 3338, 3387, 3594, 3643, 108, 112, 110, 61, - 32, 34, 59, 9, 10, 40, 41, 9, + 3643, 80, 82, 84, 112, 114, 116, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 2058, 1920, 2175, 111, 104, 112, 97, - 116, 104, 61, 32, 34, 59, 9, 10, - 40, 41, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, - 11, 58, 60, 127, 34, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 99, - 104, 61, 34, 43, 47, 57, 65, 90, - 97, 122, 43, 47, 57, 65, 90, 97, - 122, 43, 47, 57, 65, 90, 97, 122, - 43, 61, 47, 57, 65, 90, 97, 122, - 43, 61, 47, 57, 65, 90, 97, 122, - 34, 43, 47, 57, 65, 90, 97, 122, - 61, 43, 47, 57, 65, 90, 97, 122, - 43, 61, 47, 57, 65, 90, 97, 122, - 43, 61, 47, 57, 65, 90, 97, 122, - 9, 32, 40, 41, 43, 3082, 3131, 3338, - 3387, 3594, 3643, 47, 57, 65, 90, 97, - 122, 61, 112, 118, 52, 54, 104, 105, - 110, 116, 61, 34, 46, 48, 57, 46, - 48, 57, 34, 44, 46, 48, 57, 46, - 48, 57, 9, 32, 40, 41, 44, 46, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 46, 48, 57, 104, 105, 110, 116, 61, - 34, 46, 48, 58, 65, 70, 97, 102, - 46, 48, 58, 65, 70, 97, 102, 34, - 44, 46, 48, 58, 65, 70, 97, 102, - 46, 48, 58, 65, 70, 97, 102, 9, - 32, 40, 41, 44, 46, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 58, 65, 70, 97, - 102, 46, 48, 58, 65, 70, 97, 102, - 101, 121, 48, 57, 9, 32, 40, 41, - 61, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 32, 59, 9, 10, 40, 41, 97, - 110, 100, 97, 116, 111, 114, 121, 61, - 34, 65, 90, 97, 122, 65, 90, 97, - 122, 34, 44, 65, 90, 97, 122, 9, - 32, 40, 41, 44, 3082, 3131, 3338, 3387, - 3594, 3643, 65, 90, 97, 122, 111, 45, - 100, 101, 102, 97, 117, 108, 116, 45, - 97, 108, 112, 110, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 104, 116, - 116, 112, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 111, 114, 116, 61, - 34, 48, 57, 48, 57, 34, 48, 57, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, - 11, 58, 60, 127, 34, 68, 69, 73, - 80, 82, 100, 101, 105, 112, 114, 48, - 57, 32, 59, 9, 10, 40, 41, 48, - 57, 72, 83, 104, 115, 32, 59, 9, - 10, 40, 41, 65, 97, 32, 45, 59, - 9, 10, 40, 41, 78, 110, 83, 115, - 69, 101, 67, 99, 51, 45, 83, 115, - 72, 104, 65, 97, 49, 32, 59, 9, - 10, 40, 41, 67, 68, 99, 100, 67, - 68, 99, 100, 45, 71, 103, 79, 111, - 83, 115, 84, 116, 32, 59, 9, 10, - 40, 41, 83, 115, 65, 97, 80, 112, - 50, 51, 53, 54, 83, 115, 72, 104, - 65, 97, 50, 53, 54, 32, 59, 9, - 10, 40, 41, 56, 52, 83, 115, 72, - 104, 65, 97, 51, 56, 52, 32, 59, - 9, 10, 40, 41, 50, 52, 53, 53, - 49, 57, 32, 59, 9, 10, 40, 41, - 52, 56, 32, 59, 9, 10, 40, 41, - 78, 110, 68, 100, 73, 105, 82, 114, - 69, 101, 67, 99, 84, 116, 32, 59, - 9, 10, 40, 41, 82, 114, 73, 105, - 86, 118, 65, 97, 84, 116, 69, 101, - 68, 79, 100, 111, 78, 110, 83, 115, - 32, 59, 9, 10, 40, 41, 73, 105, - 68, 100, 32, 59, 9, 10, 40, 41, - 83, 115, 65, 97, 77, 83, 109, 115, - 68, 100, 53, 32, 59, 9, 10, 40, - 41, 72, 104, 65, 97, 49, 50, 53, - 32, 45, 59, 9, 10, 40, 41, 78, - 110, 83, 115, 69, 101, 67, 99, 51, - 45, 83, 115, 72, 104, 65, 97, 49, - 32, 59, 9, 10, 40, 41, 53, 54, - 32, 59, 9, 10, 40, 41, 49, 50, - 32, 59, 9, 10, 40, 41, 65, 73, - 79, 80, 83, 85, 97, 105, 111, 112, - 115, 117, 48, 57, 32, 59, 9, 10, - 40, 41, 48, 57, 67, 99, 80, 112, - 75, 107, 73, 105, 88, 120, 32, 59, - 9, 10, 40, 41, 65, 80, 83, 97, - 112, 115, 67, 99, 80, 112, 75, 107, - 73, 105, 88, 120, 32, 59, 9, 10, - 40, 41, 71, 75, 103, 107, 80, 112, - 32, 59, 9, 10, 40, 41, 73, 105, - 88, 120, 32, 59, 9, 10, 40, 41, - 80, 112, 75, 107, 73, 105, 32, 59, - 9, 10, 40, 41, 73, 105, 68, 100, - 32, 59, 9, 10, 40, 41, 71, 75, - 103, 107, 80, 112, 32, 59, 9, 10, - 40, 41, 73, 105, 88, 120, 32, 59, - 9, 10, 40, 41, 80, 112, 75, 107, - 73, 105, 32, 59, 9, 10, 40, 41, - 82, 114, 73, 105, 32, 59, 9, 10, - 40, 41, 78, 110, 48, 57, 32, 59, - 9, 10, 40, 41, 48, 57, 79, 111, - 84, 116, 73, 105, 70, 102, 89, 121, - 32, 59, 9, 10, 40, 41, 46, 48, - 57, 32, 46, 59, 9, 10, 40, 41, - 48, 57, 42, 92, 95, 45, 57, 64, - 90, 97, 122, 32, 59, 9, 10, 40, - 41, 42, 92, 95, 45, 57, 64, 90, - 97, 122, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 42, 92, 95, 2058, - 2107, 45, 57, 64, 90, 97, 122, 9, + 3643, 83, 115, 73, 105, 71, 103, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 77, 79, 80, 82, 83, + 86, 109, 111, 112, 114, 115, 118, 73, + 105, 77, 109, 69, 101, 65, 97, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 65, 97, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 70, 102, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 86, 118, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 72, 104, 70, + 102, 80, 112, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 67, 99, 66, + 98, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 76, 88, 89, 108, 120, + 121, 83, 115, 65, 97, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 84, + 116, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 80, 112, 69, 101, 48, + 57, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 48, 57, 82, 114, 73, + 105, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 65, 97, 76, 108, 76, + 108, 69, 101, 84, 116, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 79, + 111, 78, 110, 69, 101, 77, 109, 68, + 100, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 83, 115, 68, 100, 66, + 98, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 76, 108, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 68, 72, 77, 83, 87, 100, 104, - 109, 115, 119, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 68, 72, 77, 83, 87, - 100, 104, 109, 115, 119, 2058, 2107, 48, + 41, 2058, 2107, 48, 57, 65, 70, 97, + 102, 48, 57, 65, 70, 97, 102, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 65, 70, 97, 102, 2058, + 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 48, 2058, 2107, 49, 57, 9, + 32, 40, 41, 1802, 1851, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 68, 72, 77, - 83, 87, 100, 104, 109, 115, 119, 2058, - 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 32, 59, 68, 72, 77, - 83, 87, 100, 104, 109, 115, 119, 9, - 10, 40, 41, 48, 57, 32, 59, 9, - 10, 40, 41, 48, 57, 68, 72, 77, - 83, 87, 100, 104, 109, 115, 119, 48, - 57, 32, 59, 9, 10, 40, 41, 48, - 57, 2058, 1920, 2175, 9, 32, 40, 41, - 2058, 2107, 48, 57, 68, 72, 77, 83, - 87, 100, 104, 109, 115, 119, 48, 57, + 57, 65, 70, 97, 102, 48, 57, 65, + 70, 97, 102, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 65, + 70, 97, 102, 2058, 1920, 2175, 2058, 1920, + 2175, 9, 32, 40, 41, 2058, 2107, 48, + 57, 2058, 1920, 2175, 97, 100, 101, 105, + 107, 110, 111, 112, 108, 112, 110, 32, + 34, 44, 59, 9, 10, 40, 41, 111, + 104, 112, 97, 116, 104, 32, 34, 44, + 59, 9, 10, 40, 41, 99, 104, 32, + 34, 44, 59, 9, 10, 40, 41, 112, + 118, 52, 54, 104, 105, 110, 116, 32, + 34, 44, 59, 9, 10, 40, 41, 104, + 105, 110, 116, 32, 34, 44, 59, 9, + 10, 40, 41, 101, 121, 48, 57, 32, + 34, 44, 59, 9, 10, 40, 41, 48, + 57, 111, 45, 100, 101, 102, 97, 117, + 108, 116, 45, 97, 108, 112, 110, 32, + 34, 44, 59, 9, 10, 40, 41, 104, + 116, 116, 112, 32, 34, 44, 59, 9, + 10, 40, 41, 111, 114, 116, 32, 34, + 44, 59, 9, 10, 40, 41, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 9, 32, 40, 41, 97, 100, 101, 105, + 107, 109, 110, 111, 112, 3082, 3131, 3338, + 3387, 3594, 3643, 108, 112, 110, 61, 32, + 34, 59, 9, 10, 40, 41, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 2058, 1920, 2175, 111, 104, 112, 97, 116, + 104, 61, 32, 34, 59, 9, 10, 40, + 41, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, -128, 8, 11, + 58, 60, 127, 34, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 99, 104, + 61, 34, 43, 47, 57, 65, 90, 97, + 122, 43, 47, 57, 65, 90, 97, 122, + 43, 47, 57, 65, 90, 97, 122, 43, + 61, 47, 57, 65, 90, 97, 122, 43, + 61, 47, 57, 65, 90, 97, 122, 34, + 43, 47, 57, 65, 90, 97, 122, 61, + 43, 47, 57, 65, 90, 97, 122, 43, + 61, 47, 57, 65, 90, 97, 122, 43, + 61, 47, 57, 65, 90, 97, 122, 9, + 32, 40, 41, 43, 3082, 3131, 3338, 3387, + 3594, 3643, 47, 57, 65, 90, 97, 122, + 61, 112, 118, 52, 54, 104, 105, 110, + 116, 61, 34, 46, 48, 57, 46, 48, + 57, 34, 44, 46, 48, 57, 46, 48, + 57, 9, 32, 40, 41, 44, 46, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 46, + 48, 57, 104, 105, 110, 116, 61, 34, + 46, 48, 58, 65, 70, 97, 102, 46, + 48, 58, 65, 70, 97, 102, 34, 44, + 46, 48, 58, 65, 70, 97, 102, 46, + 48, 58, 65, 70, 97, 102, 9, 32, + 40, 41, 44, 46, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 58, 65, 70, 97, 102, + 46, 48, 58, 65, 70, 97, 102, 101, + 121, 48, 57, 9, 32, 40, 41, 61, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 32, 59, 9, 10, 40, 41, 97, 110, + 100, 97, 116, 111, 114, 121, 61, 34, + 65, 90, 97, 122, 65, 90, 97, 122, + 34, 44, 65, 90, 97, 122, 9, 32, + 40, 41, 44, 3082, 3131, 3338, 3387, 3594, + 3643, 65, 90, 97, 122, 111, 45, 100, + 101, 102, 97, 117, 108, 116, 45, 97, + 108, 112, 110, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 104, 116, 116, + 112, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 111, 114, 116, 61, 34, + 48, 57, 48, 57, 34, 48, 57, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, -128, 8, 11, + 58, 60, 127, 34, 68, 69, 73, 80, + 82, 100, 101, 105, 112, 114, 48, 57, + 32, 59, 9, 10, 40, 41, 48, 57, + 72, 83, 104, 115, 32, 59, 9, 10, + 40, 41, 65, 97, 32, 45, 59, 9, + 10, 40, 41, 78, 110, 83, 115, 69, + 101, 67, 99, 51, 45, 83, 115, 72, + 104, 65, 97, 49, 32, 59, 9, 10, + 40, 41, 67, 68, 99, 100, 67, 68, + 99, 100, 45, 71, 103, 79, 111, 83, + 115, 84, 116, 32, 59, 9, 10, 40, + 41, 83, 115, 65, 97, 80, 112, 50, + 51, 53, 54, 83, 115, 72, 104, 65, + 97, 50, 53, 54, 32, 59, 9, 10, + 40, 41, 56, 52, 83, 115, 72, 104, + 65, 97, 51, 56, 52, 32, 59, 9, + 10, 40, 41, 50, 52, 53, 53, 49, + 57, 32, 59, 9, 10, 40, 41, 52, + 56, 32, 59, 9, 10, 40, 41, 78, + 110, 68, 100, 73, 105, 82, 114, 69, + 101, 67, 99, 84, 116, 32, 59, 9, + 10, 40, 41, 82, 114, 73, 105, 86, + 118, 65, 97, 84, 116, 69, 101, 68, + 79, 100, 111, 78, 110, 83, 115, 32, + 59, 9, 10, 40, 41, 73, 105, 68, + 100, 32, 59, 9, 10, 40, 41, 83, + 115, 65, 97, 77, 83, 109, 115, 68, + 100, 53, 32, 59, 9, 10, 40, 41, + 72, 104, 65, 97, 49, 50, 53, 32, + 45, 59, 9, 10, 40, 41, 78, 110, + 83, 115, 69, 101, 67, 99, 51, 45, + 83, 115, 72, 104, 65, 97, 49, 32, + 59, 9, 10, 40, 41, 53, 54, 32, + 59, 9, 10, 40, 41, 49, 50, 32, + 59, 9, 10, 40, 41, 65, 73, 79, + 80, 83, 85, 97, 105, 111, 112, 115, + 117, 48, 57, 32, 59, 9, 10, 40, + 41, 48, 57, 67, 99, 80, 112, 75, + 107, 73, 105, 88, 120, 32, 59, 9, + 10, 40, 41, 65, 80, 83, 97, 112, + 115, 67, 99, 80, 112, 75, 107, 73, + 105, 88, 120, 32, 59, 9, 10, 40, + 41, 71, 75, 103, 107, 80, 112, 32, + 59, 9, 10, 40, 41, 73, 105, 88, + 120, 32, 59, 9, 10, 40, 41, 80, + 112, 75, 107, 73, 105, 32, 59, 9, + 10, 40, 41, 73, 105, 68, 100, 32, + 59, 9, 10, 40, 41, 71, 75, 103, + 107, 80, 112, 32, 59, 9, 10, 40, + 41, 73, 105, 88, 120, 32, 59, 9, + 10, 40, 41, 80, 112, 75, 107, 73, + 105, 32, 59, 9, 10, 40, 41, 82, + 114, 73, 105, 32, 59, 9, 10, 40, + 41, 78, 110, 48, 57, 32, 59, 9, + 10, 40, 41, 48, 57, 79, 111, 84, + 116, 73, 105, 70, 102, 89, 121, 32, + 59, 9, 10, 40, 41, 46, 48, 57, + 32, 46, 59, 9, 10, 40, 41, 48, + 57, 42, 92, 95, 45, 57, 64, 90, + 97, 122, 32, 59, 9, 10, 40, 41, + 42, 92, 95, 45, 57, 64, 90, 97, + 122, 9, 32, 40, 41, 2058, 2107, 9, + 32, 40, 41, 42, 92, 95, 2058, 2107, + 45, 57, 64, 90, 97, 122, 9, 32, + 40, 41, 2058, 2107, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 68, 72, 77, 83, 87, 100, 104, 109, + 115, 119, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 68, 72, 77, 83, 87, 100, + 104, 109, 115, 119, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 68, 72, 77, 83, + 87, 100, 104, 109, 115, 119, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 32, 59, 68, 72, 77, 83, + 87, 100, 104, 109, 115, 119, 9, 10, + 40, 41, 48, 57, 32, 59, 9, 10, + 40, 41, 48, 57, 68, 72, 77, 83, + 87, 100, 104, 109, 115, 119, 48, 57, + 32, 59, 9, 10, 40, 41, 48, 57, 2058, 1920, 2175, 9, 32, 40, 41, 2058, 2107, 48, 57, 68, 72, 77, 83, 87, 100, 104, 109, 115, 119, 48, 57, 9, @@ -2848,66 +2810,65 @@ static const short _zone_scanner_trans_keys[] = { 48, 57, 68, 72, 77, 83, 87, 100, 104, 109, 115, 119, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 32, - 59, 9, 10, 40, 41, 9, 32, 40, - 41, 2058, 2107, 9, 32, 40, 41, 2058, - 2107, -128, 8, 11, 58, 60, 127, 32, + 2175, 9, 32, 40, 41, 2058, 2107, 48, + 57, 68, 72, 77, 83, 87, 100, 104, + 109, 115, 119, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 2058, 1920, 2175, + 2058, 1920, 2175, 2058, 1920, 2175, 32, 59, + 9, 10, 40, 41, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 2058, 2107, + -128, 8, 11, 58, 60, 127, 32, 59, + 9, 10, 40, 41, 2058, 1920, 2175, 42, + 92, 95, 45, 57, 64, 90, 97, 122, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 42, 92, 95, 2058, 2107, 45, + 57, 64, 90, 97, 122, 32, 59, 9, + 10, 40, 41, 2058, 1920, 2175, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 42, 92, 95, 2058, + 2107, 45, 57, 64, 90, 97, 122, 32, 59, 9, 10, 40, 41, 2058, 1920, 2175, - 42, 92, 95, 45, 57, 64, 90, 97, - 122, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 42, 92, 95, 2058, 2107, - 45, 57, 64, 90, 97, 122, 32, 59, - 9, 10, 40, 41, 2058, 1920, 2175, 48, + 32, 59, 9, 10, 40, 41, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, -128, 8, 11, 58, 60, 127, + 2058, 1920, 2175, 46, 48, 58, 65, 70, + 97, 102, 32, 46, 59, 9, 10, 40, + 41, 48, 58, 65, 70, 97, 102, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 42, 92, 95, - 2058, 2107, 45, 57, 64, 90, 97, 122, - 32, 59, 9, 10, 40, 41, 2058, 1920, - 2175, 32, 59, 9, 10, 40, 41, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, -128, 8, 11, 58, 60, - 127, 2058, 1920, 2175, 46, 48, 58, 65, - 70, 97, 102, 32, 46, 59, 9, 10, - 40, 41, 48, 58, 65, 70, 97, 102, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 78, 83, + 57, 9, 32, 40, 41, 78, 83, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 78, + 83, 2058, 2107, 48, 57, 9, 32, 40, + 41, 46, 2058, 2107, 48, 57, 9, 32, + 40, 41, 78, 83, 2058, 2107, 9, 32, + 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, - 78, 83, 2058, 2107, 48, 57, 9, 32, - 40, 41, 46, 2058, 2107, 48, 57, 9, - 32, 40, 41, 78, 83, 2058, 2107, 9, - 32, 40, 41, 2058, 2107, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 69, 87, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 69, 87, 2058, 2107, 48, - 57, 9, 32, 40, 41, 46, 2058, 2107, - 48, 57, 9, 32, 40, 41, 69, 87, - 2058, 2107, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 45, 2058, 2107, 48, - 57, 48, 57, 9, 32, 40, 41, 46, - 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 9, 32, 40, - 41, 46, 109, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 9, - 32, 40, 41, 46, 109, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 9, 32, 40, 41, 46, 109, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 2058, 1920, 2175, 9, 32, 40, 41, - 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 9, 32, 40, 41, 109, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 2058, 1920, - 2175, 9, 32, 40, 41, 109, 3082, 3131, + 69, 87, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 69, 87, 2058, 2107, 48, 57, + 9, 32, 40, 41, 46, 2058, 2107, 48, + 57, 9, 32, 40, 41, 69, 87, 2058, + 2107, 9, 32, 40, 41, 2058, 2107, 9, + 32, 40, 41, 45, 2058, 2107, 48, 57, + 48, 57, 9, 32, 40, 41, 46, 109, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 9, 32, 40, 41, + 46, 109, 3082, 3131, 3338, 3387, 3594, 3643, + 48, 57, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, - 40, 41, 109, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, + 40, 41, 46, 109, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 9, 32, 40, 41, 46, 109, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 2058, 1920, 2175, 9, 32, 40, 41, 109, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 9, 32, 40, 41, 109, 3082, 3131, 3338, + 3387, 3594, 3643, 48, 57, 2058, 1920, 2175, 9, 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, @@ -2918,335 +2879,261 @@ static const short _zone_scanner_trans_keys[] = { 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, - 40, 41, 2058, 2107, 2058, 1920, 2175, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 2058, - 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, - 9, 32, 40, 41, 2058, 2107, 2058, 1920, - 2175, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 2058, 1920, 2175, 2058, 1920, 2175, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 42, 92, 95, - 2058, 2107, 45, 57, 64, 90, 97, 122, - 32, 59, 9, 10, 40, 41, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, -128, - 8, 11, 58, 60, 127, 9, 32, 40, - 41, 2058, 2107, 9, 32, 40, 41, 2058, - 2107, -128, 8, 11, 58, 60, 127, 9, - 32, 40, 41, 2058, 2107, 9, 32, 40, - 41, 2058, 2107, -128, 8, 11, 58, 60, - 127, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 42, 92, 95, 2058, 2107, - 45, 57, 64, 90, 97, 122, 32, 59, - 9, 10, 40, 41, 2058, 1920, 2175, 2058, - 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 48, 57, 65, 90, 97, - 122, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 65, - 90, 97, 122, 9, 32, 40, 41, 2058, - 2107, 9, 32, 40, 41, 43, 2058, 2107, - 47, 57, 65, 90, 97, 122, 2570, 2619, - 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, - 2175, 9, 32, 33, 40, 41, 49, 50, - 3082, 3131, 3338, 3387, 3594, 3643, 49, 50, - 58, 46, 48, 57, 47, 46, 57, 48, - 57, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 2058, 1920, 2175, - 58, 46, 48, 58, 65, 70, 97, 102, - 47, 46, 58, 65, 70, 97, 102, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 65, 90, 97, 122, 9, 32, 40, - 41, 2058, 2107, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 65, 70, 97, 102, 48, - 57, 65, 70, 97, 102, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 65, 70, 97, 102, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, - 2175, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 65, 70, 97, 102, 48, - 57, 65, 70, 97, 102, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 65, 70, 97, 102, 2058, 1920, 2175, + 40, 41, 109, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 9, 32, 40, 41, 109, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 2058, 1920, 2175, 9, 32, 40, + 41, 2058, 2107, 2058, 1920, 2175, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 9, + 32, 40, 41, 2058, 2107, 2058, 1920, 2175, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 42, 92, 95, 2058, + 2107, 45, 57, 64, 90, 97, 122, 32, + 59, 9, 10, 40, 41, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 48, 49, 50, 51, - 2058, 2107, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 46, 2058, 2107, 7177, - 7200, 7208, 7209, 7433, 7456, 7464, 7465, 7689, - 7712, 7720, 7721, 10506, 10555, 10762, 10811, 11274, - 11323, 11530, 11579, 11786, 11835, 12298, 12347, 12554, - 12603, 12810, 12859, 13322, 13371, 13578, 13627, 13834, - 13883, 4105, 4128, 4136, 4137, 4139, 5130, 5179, - 4143, 4153, 4161, 4186, 4193, 4218, 2570, 2619, - 5130, 4992, 5247, 5641, 5664, 5672, 5673, 14602, - 14651, 14858, 14907, 15370, 15419, 15626, 15675, 15882, - 15931, 6666, 6528, 6783, 4139, 7177, 7200, 7208, - 7209, 7433, 7456, 7464, 7465, 7689, 7712, 7720, - 7721, 10506, 10555, 10762, 10811, 11274, 11323, 11530, - 11579, 11786, 11835, 12298, 12347, 12554, 12603, 12810, - 12859, 13322, 13371, 13578, 13627, 13834, 13883, 4143, - 4153, 4161, 4186, 4193, 4218, 8714, 9226, 9738, - 8576, 8831, 9088, 9343, 9600, 9855, 2058, 1920, - 2175, 2058, 1920, 2175, 9, 32, 40, 41, + 9, 32, 40, 41, 2058, 2107, -128, 8, + 11, 58, 60, 127, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 46, 2058, - 2107, 48, 57, 46, 7177, 7200, 7208, 7209, - 7433, 7456, 7464, 7465, 7689, 7712, 7720, 7721, - 10506, 10555, 10762, 10811, 11274, 11323, 11530, 11579, - 11786, 11835, 12298, 12347, 12554, 12603, 12810, 12859, - 13322, 13371, 13578, 13627, 13834, 13883, 48, 57, - 2058, 1920, 2175, 2058, 1920, 2175, 9, 32, + -128, 8, 11, 58, 60, 127, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 46, 2058, 2107, 48, 58, 65, 70, 97, - 102, 46, 7177, 7200, 7208, 7209, 7433, 7456, - 7464, 7465, 7689, 7712, 7720, 7721, 10506, 10555, - 10762, 10811, 11274, 11323, 11530, 11579, 11786, 11835, - 12298, 12347, 12554, 12603, 12810, 12859, 13322, 13371, - 13578, 13627, 13834, 13883, 48, 58, 65, 70, - 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, + 2058, 2107, -128, 8, 11, 58, 60, 127, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 42, 92, 95, 2058, 2107, 45, + 57, 64, 90, 97, 122, 32, 59, 9, + 10, 40, 41, 2058, 1920, 2175, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 48, 57, 65, 90, 97, 122, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 42, 92, 95, 2058, 2107, 45, - 57, 64, 90, 97, 122, 7177, 7200, 7208, - 7209, 7433, 7456, 7464, 7465, 7689, 7712, 7720, - 7721, 10506, 10555, 10762, 10811, 11274, 11323, 11530, - 11579, 11786, 11835, 12298, 12347, 12554, 12603, 12810, - 12859, 13322, 13371, 13578, 13627, 13834, 13883, 2058, + 40, 41, 2058, 2107, 48, 57, 65, 90, + 97, 122, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 43, 2058, 2107, 47, + 57, 65, 90, 97, 122, 2570, 2619, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, - 65, 67, 68, 69, 72, 73, 75, 76, - 77, 78, 79, 80, 82, 83, 84, 85, - 87, 90, 97, 99, 100, 101, 104, 105, - 107, 108, 109, 110, 111, 112, 114, 115, - 116, 117, 119, 122, 9, 32, 40, 41, - 65, 70, 80, 97, 102, 112, 2058, 2107, + 9, 32, 33, 40, 41, 49, 50, 3082, + 3131, 3338, 3387, 3594, 3643, 49, 50, 58, + 46, 48, 57, 47, 46, 57, 48, 57, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 2058, 1920, 2175, 58, + 46, 48, 58, 65, 70, 97, 102, 47, + 46, 58, 65, 70, 97, 102, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 65, 90, 97, 122, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 65, 70, 97, 102, 48, 57, + 65, 70, 97, 102, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 65, 70, 97, 102, 2058, 1920, 2175, 2058, + 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 42, 92, - 95, 2058, 2107, 45, 57, 64, 90, 97, - 122, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 43, 2058, 2107, 47, 57, - 65, 90, 97, 122, 2570, 2619, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, - 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 65, 97, - 65, 97, 9, 32, 40, 41, 2058, 2107, - 83, 115, 68, 100, 66, 98, 9, 32, - 40, 41, 2058, 2107, 76, 108, 9, 32, - 40, 41, 2058, 2107, 65, 68, 69, 78, - 83, 97, 100, 101, 110, 115, 65, 97, - 9, 32, 40, 41, 2058, 2107, 78, 83, - 110, 115, 83, 115, 75, 107, 69, 101, - 89, 121, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 2058, 2107, 82, 114, - 84, 116, 9, 32, 40, 41, 2058, 2107, - 65, 97, 77, 109, 69, 101, 9, 32, - 40, 41, 2058, 2107, 89, 121, 78, 110, - 67, 99, 9, 32, 40, 41, 2058, 2107, - 72, 78, 83, 104, 110, 115, 67, 99, - 73, 105, 68, 100, 9, 32, 40, 41, - 2058, 2107, 65, 83, 97, 115, 77, 109, - 69, 101, 9, 32, 40, 41, 2058, 2107, - 75, 107, 69, 101, 89, 121, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, - 89, 121, 2058, 2107, 78, 110, 67, 99, - 9, 32, 40, 41, 2058, 2107, 85, 117, - 73, 105, 52, 54, 56, 9, 32, 40, - 41, 2058, 2107, 52, 9, 32, 40, 41, - 2058, 2107, 73, 84, 105, 116, 78, 110, - 70, 102, 79, 111, 9, 32, 40, 41, - 2058, 2107, 84, 116, 80, 112, 83, 115, - 9, 32, 40, 41, 2058, 2107, 80, 112, - 83, 115, 69, 101, 67, 99, 75, 107, - 69, 101, 89, 121, 9, 32, 40, 41, - 2058, 2107, 69, 88, 101, 120, 89, 121, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, 51, 54, 79, 80, - 111, 112, 50, 9, 32, 40, 41, 2058, - 2107, 52, 9, 32, 40, 41, 2058, 2107, - 67, 99, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 2058, 2107, 73, 88, - 105, 120, 78, 110, 70, 102, 79, 111, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, 65, 73, 83, 97, - 105, 115, 80, 112, 84, 116, 82, 114, - 9, 32, 40, 41, 2058, 2107, 68, 100, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 69, 101, 2058, 2107, 67, 99, - 9, 32, 40, 41, 51, 2058, 2107, 9, - 32, 40, 41, 80, 112, 2058, 2107, 65, - 97, 82, 114, 65, 97, 77, 109, 9, - 32, 40, 41, 2058, 2107, 80, 112, 69, - 101, 78, 110, 80, 112, 71, 103, 80, - 112, 75, 107, 69, 101, 89, 121, 9, - 32, 40, 41, 2058, 2107, 84, 116, 82, - 114, 9, 32, 40, 41, 2058, 2107, 80, - 82, 84, 112, 114, 116, 9, 32, 40, - 41, 2058, 2107, 83, 115, 73, 105, 71, - 103, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 2058, 2107, 77, 79, 80, - 82, 83, 86, 109, 111, 112, 114, 115, - 118, 73, 105, 77, 109, 69, 101, 65, - 97, 9, 32, 40, 41, 2058, 2107, 65, - 97, 9, 32, 40, 41, 2058, 2107, 70, - 102, 9, 32, 40, 41, 2058, 2107, 86, - 118, 9, 32, 40, 41, 2058, 2107, 72, - 104, 70, 102, 80, 112, 9, 32, 40, - 41, 2058, 2107, 67, 99, 66, 98, 9, - 32, 40, 41, 2058, 2107, 76, 88, 89, - 108, 120, 121, 83, 115, 65, 97, 9, - 32, 40, 41, 2058, 2107, 84, 116, 9, - 32, 40, 41, 2058, 2107, 80, 112, 69, - 101, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 82, 114, 73, 105, 9, - 32, 40, 41, 2058, 2107, 65, 97, 76, - 108, 76, 108, 69, 101, 84, 116, 9, - 32, 40, 41, 2058, 2107, 79, 111, 78, - 110, 69, 101, 77, 109, 68, 100, 9, - 32, 40, 41, 2058, 2107, 42, 92, 95, - 45, 57, 64, 90, 97, 122, 32, 59, - 9, 10, 40, 41, 32, 59, 9, 10, - 40, 41, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 65, 90, 97, 122, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 43, 2058, 2107, 47, 57, 65, - 90, 97, 122, 2570, 2619, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 43, 47, - 57, 65, 90, 97, 122, 2570, 2619, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, + 48, 57, 65, 70, 97, 102, 48, 57, + 65, 70, 97, 102, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 65, 70, 97, 102, 2058, 1920, 2175, 2058, + 1920, 2175, 2058, 1920, 2175, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 48, 49, 50, 51, 2058, + 2107, 9, 32, 40, 41, 2058, 2107, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 46, 2058, 2107, 7177, 7200, + 7208, 7209, 7433, 7456, 7464, 7465, 7689, 7712, + 7720, 7721, 10506, 10555, 10762, 10811, 11274, 11323, + 11530, 11579, 11786, 11835, 12298, 12347, 12554, 12603, + 12810, 12859, 13322, 13371, 13578, 13627, 13834, 13883, + 4105, 4128, 4136, 4137, 4139, 5130, 5179, 4143, + 4153, 4161, 4186, 4193, 4218, 2570, 2619, 5130, + 4992, 5247, 5641, 5664, 5672, 5673, 14602, 14651, + 14858, 14907, 15370, 15419, 15626, 15675, 15882, 15931, + 6666, 6528, 6783, 4139, 7177, 7200, 7208, 7209, + 7433, 7456, 7464, 7465, 7689, 7712, 7720, 7721, + 10506, 10555, 10762, 10811, 11274, 11323, 11530, 11579, + 11786, 11835, 12298, 12347, 12554, 12603, 12810, 12859, + 13322, 13371, 13578, 13627, 13834, 13883, 4143, 4153, + 4161, 4186, 4193, 4218, 8714, 9226, 9738, 8576, + 8831, 9088, 9343, 9600, 9855, 2058, 1920, 2175, + 2058, 1920, 2175, 9, 32, 40, 41, 2058, + 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 45, 2058, 2107, - 48, 57, 65, 70, 97, 102, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, - 2058, 2107, 48, 57, 65, 86, 97, 118, - 48, 57, 65, 86, 97, 118, 61, 48, - 57, 65, 86, 97, 118, 48, 57, 65, - 86, 97, 118, 61, 48, 57, 65, 86, - 97, 118, 61, 48, 57, 65, 86, 97, - 118, 48, 57, 65, 86, 97, 118, 61, - 48, 57, 65, 86, 97, 118, 32, 59, - 9, 10, 40, 41, 48, 57, 65, 86, - 97, 118, 32, 59, 9, 10, 40, 41, - 61, 61, 61, 61, 61, 2058, 1920, 2175, - 48, 57, 65, 70, 97, 102, 9, 32, - 40, 41, 2058, 2107, 48, 57, 65, 70, - 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 48, 57, 9, 32, 40, + 57, 9, 32, 40, 41, 46, 2058, 2107, + 48, 57, 46, 7177, 7200, 7208, 7209, 7433, + 7456, 7464, 7465, 7689, 7712, 7720, 7721, 10506, + 10555, 10762, 10811, 11274, 11323, 11530, 11579, 11786, + 11835, 12298, 12347, 12554, 12603, 12810, 12859, 13322, + 13371, 13578, 13627, 13834, 13883, 48, 57, 2058, + 1920, 2175, 2058, 1920, 2175, 9, 32, 40, + 41, 2058, 2107, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 46, + 2058, 2107, 48, 58, 65, 70, 97, 102, + 46, 7177, 7200, 7208, 7209, 7433, 7456, 7464, + 7465, 7689, 7712, 7720, 7721, 10506, 10555, 10762, + 10811, 11274, 11323, 11530, 11579, 11786, 11835, 12298, + 12347, 12554, 12603, 12810, 12859, 13322, 13371, 13578, + 13627, 13834, 13883, 48, 58, 65, 70, 97, + 102, 2058, 1920, 2175, 2058, 1920, 2175, 9, + 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 42, 92, 95, 2058, 2107, 45, 57, + 64, 90, 97, 122, 7177, 7200, 7208, 7209, + 7433, 7456, 7464, 7465, 7689, 7712, 7720, 7721, + 10506, 10555, 10762, 10811, 11274, 11323, 11530, 11579, + 11786, 11835, 12298, 12347, 12554, 12603, 12810, 12859, + 13322, 13371, 13578, 13627, 13834, 13883, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, + 57, 65, 90, 97, 122, 9, 32, 40, + 41, 2058, 2107, 9, 32, 40, 41, 2058, + 2107, 48, 57, 65, 90, 97, 122, 9, + 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 45, 2058, 2107, 48, 57, 65, 70, - 97, 102, 32, 59, 9, 10, 40, 41, - 48, 57, 65, 70, 97, 102, 32, 59, - 9, 10, 40, 41, 48, 57, 65, 70, - 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 65, 70, 97, - 102, 48, 57, 65, 70, 97, 102, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 65, 70, 97, 102, 2058, - 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 32, 59, 9, - 10, 40, 41, 48, 57, 32, 59, 9, - 10, 40, 41, 2058, 1920, 2175, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 42, 92, 95, 2058, 2107, 45, 57, + 64, 90, 97, 122, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 43, 2058, + 2107, 47, 57, 65, 90, 97, 122, 2570, + 2619, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, + 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, + 2175, 42, 92, 95, 45, 57, 64, 90, + 97, 122, 32, 59, 9, 10, 40, 41, + 32, 59, 9, 10, 40, 41, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, - 65, 70, 97, 102, 48, 57, 65, 70, - 97, 102, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 65, 70, - 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, + 65, 90, 97, 122, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 43, 2058, + 2107, 47, 57, 65, 90, 97, 122, 2570, + 2619, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 43, 47, 57, 65, 90, 97, + 122, 2570, 2619, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 45, 2058, 2107, 48, 57, 65, 70, + 97, 102, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 46, 2058, 2107, 48, - 57, 32, 46, 59, 9, 10, 40, 41, - 48, 57, 2058, 1920, 2175, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 65, + 65, 86, 97, 118, 48, 57, 65, 86, + 97, 118, 61, 48, 57, 65, 86, 97, + 118, 48, 57, 65, 86, 97, 118, 61, + 48, 57, 65, 86, 97, 118, 61, 48, + 57, 65, 86, 97, 118, 48, 57, 65, + 86, 97, 118, 61, 48, 57, 65, 86, + 97, 118, 32, 59, 9, 10, 40, 41, + 48, 57, 65, 86, 97, 118, 32, 59, + 9, 10, 40, 41, 61, 61, 61, 61, + 61, 2058, 1920, 2175, 48, 57, 65, 70, + 97, 102, 9, 32, 40, 41, 2058, 2107, + 48, 57, 65, 70, 97, 102, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 45, 2058, 2107, + 48, 57, 65, 70, 97, 102, 32, 59, + 9, 10, 40, 41, 48, 57, 65, 70, + 97, 102, 32, 59, 9, 10, 40, 41, + 48, 57, 65, 70, 97, 102, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 65, 70, 97, 102, 48, 57, 65, + 70, 97, 102, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 65, + 70, 97, 102, 2058, 1920, 2175, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 32, 59, 9, 10, 40, 41, 48, + 57, 32, 59, 9, 10, 40, 41, 2058, + 1920, 2175, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 65, 70, 97, 102, + 48, 57, 65, 70, 97, 102, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 48, 57, 65, 70, 97, 102, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 46, 2058, 2107, 48, 57, 32, 46, 59, + 9, 10, 40, 41, 48, 57, 2058, 1920, + 2175, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 65, 70, 97, 102, 48, + 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, - 102, 48, 57, 65, 70, 97, 102, 48, - 57, 65, 70, 97, 102, 58, 48, 57, + 102, 58, 48, 57, 65, 70, 97, 102, + 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, + 97, 102, 32, 58, 59, 9, 10, 40, + 41, 2058, 1920, 2175, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, - 48, 57, 65, 70, 97, 102, 32, 58, - 59, 9, 10, 40, 41, 2058, 1920, 2175, - 48, 57, 65, 70, 97, 102, 48, 57, - 65, 70, 97, 102, 45, 48, 57, 65, - 70, 97, 102, 48, 57, 65, 70, 97, - 102, 32, 45, 59, 9, 10, 40, 41, - 48, 57, 65, 70, 97, 102, 48, 57, - 65, 70, 97, 102, 45, 48, 57, 65, - 70, 97, 102, 48, 57, 65, 70, 97, - 102, 32, 45, 59, 9, 10, 40, 41, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - -128, 8, 11, 58, 60, 127, 32, 59, - 9, 10, 40, 41, 2058, 1920, 2175, 2058, - 1920, 2175, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, -128, 8, 11, 58, 60, 127, - 9, 32, 40, 41, 2058, 2107, 9, 32, + 45, 48, 57, 65, 70, 97, 102, 48, + 57, 65, 70, 97, 102, 32, 45, 59, + 9, 10, 40, 41, 48, 57, 65, 70, + 97, 102, 48, 57, 65, 70, 97, 102, + 45, 48, 57, 65, 70, 97, 102, 48, + 57, 65, 70, 97, 102, 32, 45, 59, + 9, 10, 40, 41, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, -128, 8, 11, 58, 60, 127, 32, 59, 9, 10, 40, 41, 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 42, 92, 95, 2058, - 2107, 45, 57, 64, 90, 97, 122, 32, - 59, 9, 10, 40, 41, 32, 59, 9, - 10, 40, 41, 2058, 1920, 2175, 67, 84, - 99, 116, 68, 83, 100, 115, 83, 115, + 9, 32, 40, 41, 2058, 2107, -128, 8, + 11, 58, 60, 127, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 2058, 2107, + -128, 8, 11, 58, 60, 127, 32, 59, + 9, 10, 40, 41, 2058, 1920, 2175, 2058, + 1920, 2175, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 42, 92, 95, 2058, 2107, 45, 57, 64, + 90, 97, 122, 32, 59, 9, 10, 40, + 41, 32, 59, 9, 10, 40, 41, 2058, + 1920, 2175, 48, 57, 65, 90, 97, 122, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 65, 90, 97, 122, 9, 32, 40, 41, 2058, 2107, @@ -3255,117 +3142,114 @@ static const short _zone_scanner_trans_keys[] = { 9, 32, 40, 41, 42, 92, 95, 2058, 2107, 45, 57, 64, 90, 97, 122, 32, 59, 9, 10, 40, 41, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 89, 121, - 78, 110, 67, 99, 9, 32, 40, 41, - 2058, 2107, 89, 121, 80, 112, 69, 101, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 36, 40, 41, 42, - 92, 95, 1802, 1851, 2058, 2107, 45, 57, - 64, 90, 97, 122, 9, 32, 36, 40, - 41, 42, 58, 92, 95, 2826, 2875, 3082, - 3131, 3338, 3387, 3594, 3643, -128, 8, 11, - 44, 45, 57, 60, 63, 64, 90, 91, - 96, 97, 122, 123, 127, 9, 32, 36, - 40, 41, 42, 65, 67, 68, 69, 72, - 73, 75, 76, 77, 78, 79, 80, 82, - 83, 84, 85, 87, 90, 92, 95, 97, - 99, 100, 101, 104, 105, 107, 108, 109, - 110, 111, 112, 114, 115, 116, 117, 119, - 122, 1802, 1851, 2058, 2107, 45, 57, 64, - 89, 98, 121, 9, 32, 36, 40, 41, - 42, 65, 67, 68, 69, 72, 73, 75, - 76, 77, 78, 79, 80, 82, 83, 84, - 85, 87, 90, 92, 95, 97, 99, 100, - 101, 104, 105, 107, 108, 109, 110, 111, - 112, 114, 115, 116, 117, 119, 122, 1802, - 1851, 2058, 2107, 45, 47, 48, 57, 64, - 89, 98, 121, 9, 32, 36, 40, 41, - 42, 92, 95, 1802, 1851, 2058, 2107, 45, - 57, 64, 90, 97, 122, 9, 32, 36, - 40, 41, 42, 65, 67, 68, 69, 72, + 2058, 1920, 2175, 2058, 1920, 2175, 9, 32, + 36, 40, 41, 42, 92, 95, 1802, 1851, + 2058, 2107, 45, 57, 64, 90, 97, 122, + 9, 32, 36, 40, 41, 42, 58, 92, + 95, 2826, 2875, 3082, 3131, 3338, 3387, 3594, + 3643, -128, 8, 11, 44, 45, 57, 60, + 63, 64, 90, 91, 96, 97, 122, 123, + 127, 9, 32, 36, 40, 41, 42, 65, + 67, 68, 69, 72, 73, 75, 76, 77, + 78, 79, 80, 82, 83, 84, 85, 87, + 90, 92, 95, 97, 99, 100, 101, 104, + 105, 107, 108, 109, 110, 111, 112, 114, + 115, 116, 117, 119, 122, 1802, 1851, 2058, + 2107, 45, 57, 64, 89, 98, 121, 9, + 32, 36, 40, 41, 42, 65, 67, 68, + 69, 72, 73, 75, 76, 77, 78, 79, + 80, 82, 83, 84, 85, 87, 90, 92, + 95, 97, 99, 100, 101, 104, 105, 107, + 108, 109, 110, 111, 112, 114, 115, 116, + 117, 119, 122, 1802, 1851, 2058, 2107, 45, + 47, 48, 57, 64, 89, 98, 121, 9, + 32, 36, 40, 41, 42, 92, 95, 1802, + 1851, 2058, 2107, 45, 57, 64, 90, 97, + 122, 9, 32, 36, 40, 41, 42, 65, + 67, 68, 69, 72, 73, 75, 76, 77, + 78, 79, 80, 82, 83, 84, 85, 87, + 90, 92, 95, 97, 99, 100, 101, 104, + 105, 107, 108, 109, 110, 111, 112, 114, + 115, 116, 117, 119, 122, 1802, 1851, 2058, + 2107, 45, 47, 48, 57, 64, 89, 98, + 121, 9, 32, 36, 40, 41, 42, 92, + 95, 1802, 1851, 2058, 2107, 45, 57, 64, + 90, 97, 122, 9, 32, 36, 40, 41, + 42, 58, 92, 95, 2826, 2875, 3082, 3131, + 3338, 3387, 3594, 3643, -128, 8, 11, 44, + 45, 57, 60, 63, 64, 90, 91, 96, + 97, 122, 123, 127, 9, 32, 36, 40, + 41, 42, 58, 65, 67, 68, 69, 72, 73, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 90, 92, 95, 97, 99, 100, 101, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 119, - 122, 1802, 1851, 2058, 2107, 45, 47, 48, - 57, 64, 89, 98, 121, 9, 32, 36, - 40, 41, 42, 92, 95, 1802, 1851, 2058, - 2107, 45, 57, 64, 90, 97, 122, 9, - 32, 36, 40, 41, 42, 58, 92, 95, + 122, 2826, 2875, 3082, 3131, 3338, 3387, 3594, + 3643, -128, 8, 11, 44, 45, 47, 48, + 57, 60, 63, 64, 89, 91, 96, 98, + 121, 123, 127, 9, 32, 36, 40, 41, + 42, 58, 65, 67, 68, 69, 72, 73, + 75, 76, 77, 78, 79, 80, 82, 83, + 84, 85, 87, 90, 92, 95, 97, 99, + 100, 101, 104, 105, 107, 108, 109, 110, + 111, 112, 114, 115, 116, 117, 119, 122, 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643, - -128, 8, 11, 44, 45, 57, 60, 63, - 64, 90, 91, 96, 97, 122, 123, 127, - 9, 32, 36, 40, 41, 42, 58, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 92, 95, 97, 99, 100, 101, 104, - 105, 107, 108, 109, 110, 111, 112, 114, - 115, 116, 117, 119, 122, 2826, 2875, 3082, - 3131, 3338, 3387, 3594, 3643, -128, 8, 11, - 44, 45, 47, 48, 57, 60, 63, 64, - 89, 91, 96, 98, 121, 123, 127, 9, - 32, 36, 40, 41, 42, 58, 65, 67, + -128, 8, 11, 44, 45, 47, 48, 57, + 60, 63, 64, 89, 91, 96, 98, 121, + 123, 127, 32, 33, 59, 92, 9, 10, + 35, 39, 40, 41, 42, 126, 9, 32, + 40, 41, 42, 46, 92, 95, 2058, 2107, + 45, 57, 65, 90, 97, 122, 9, 32, + 40, 41, 43, 3082, 3131, 3338, 3387, 3594, + 3643, 47, 57, 65, 90, 97, 122, 2058, + 1920, 2175, 9, 32, 40, 41, 65, 67, 68, 69, 72, 73, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 90, - 92, 95, 97, 99, 100, 101, 104, 105, - 107, 108, 109, 110, 111, 112, 114, 115, - 116, 117, 119, 122, 2826, 2875, 3082, 3131, - 3338, 3387, 3594, 3643, -128, 8, 11, 44, - 45, 47, 48, 57, 60, 63, 64, 89, - 91, 96, 98, 121, 123, 127, 32, 33, - 59, 92, 9, 10, 35, 39, 40, 41, - 42, 126, 9, 32, 40, 41, 42, 46, - 92, 95, 2058, 2107, 45, 57, 65, 90, - 97, 122, 9, 32, 40, 41, 43, 3082, - 3131, 3338, 3387, 3594, 3643, 47, 57, 65, - 90, 97, 122, 2058, 1920, 2175, 9, 32, - 40, 41, 65, 67, 68, 69, 72, 73, - 75, 76, 77, 78, 79, 80, 82, 83, - 84, 85, 87, 90, 97, 99, 100, 101, - 104, 105, 107, 108, 109, 110, 111, 112, - 114, 115, 116, 117, 119, 122, 3082, 3131, - 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 65, 70, 97, 102, 2058, - 1920, 2175, 9, 32, 40, 41, 2058, 2107, - 48, 57, 65, 70, 97, 102, 9, 32, + 97, 99, 100, 101, 104, 105, 107, 108, + 109, 110, 111, 112, 114, 115, 116, 117, + 119, 122, 3082, 3131, 3338, 3387, 3594, 3643, + 2058, 1920, 2175, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 65, + 70, 97, 102, 2058, 1920, 2175, 9, 32, + 40, 41, 2058, 2107, 48, 57, 65, 70, + 97, 102, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 65, 70, + 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, + 9, 32, 40, 41, 97, 100, 101, 105, + 107, 109, 110, 111, 112, 3082, 3131, 3338, + 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 48, 57, 65, 70, 97, 102, 2058, 1920, - 2175, 2058, 1920, 2175, 9, 32, 40, 41, - 97, 100, 101, 105, 107, 109, 110, 111, - 112, 3082, 3131, 3338, 3387, 3594, 3643, 2058, - 1920, 2175, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, -128, 8, 11, 58, - 60, 127, 2058, 1920, 2175, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, - 1920, 2175, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 2058, 1920, + -128, 8, 11, 58, 60, 127, 2058, 1920, 2175, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 2058, 1920, 2175, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 2058, 1920, 2175, 9, - 32, 33, 40, 41, 49, 50, 3082, 3131, - 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 65, 70, 97, 102, 2058, - 1920, 2175, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 65, 70, - 97, 102, 2058, 1920, 2175, 5641, 5664, 5672, - 5673, 14602, 14651, 14858, 14907, 15370, 15419, 15626, - 15675, 15882, 15931, 6666, 6528, 6783, 4105, 4128, - 4136, 4137, 4139, 5130, 5179, 4143, 4153, 4161, - 4186, 4193, 4218, 5130, 4992, 5247, 4139, 7177, - 7200, 7208, 7209, 7433, 7456, 7464, 7465, 7689, - 7712, 7720, 7721, 10506, 10555, 10762, 10811, 11274, - 11323, 11530, 11579, 11786, 11835, 12298, 12347, 12554, - 12603, 12810, 12859, 13322, 13371, 13578, 13627, 13834, - 13883, 4143, 4153, 4161, 4186, 4193, 4218, 8714, - 9226, 9738, 8576, 8831, 9088, 9343, 9600, 9855, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 65, 70, 97, 102, + 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 48, 57, 2058, 1920, 2175, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 2058, 1920, 2175, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 2058, 1920, 2175, 9, 32, 33, 40, 41, + 49, 50, 3082, 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 65, - 70, 97, 102, 2058, 1920, 2175, 0 + 70, 97, 102, 2058, 1920, 2175, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 48, 57, 65, 70, 97, 102, 2058, 1920, + 2175, 5641, 5664, 5672, 5673, 14602, 14651, 14858, + 14907, 15370, 15419, 15626, 15675, 15882, 15931, 6666, + 6528, 6783, 4105, 4128, 4136, 4137, 4139, 5130, + 5179, 4143, 4153, 4161, 4186, 4193, 4218, 5130, + 4992, 5247, 4139, 7177, 7200, 7208, 7209, 7433, + 7456, 7464, 7465, 7689, 7712, 7720, 7721, 10506, + 10555, 10762, 10811, 11274, 11323, 11530, 11579, 11786, + 11835, 12298, 12347, 12554, 12603, 12810, 12859, 13322, + 13371, 13578, 13627, 13834, 13883, 4143, 4153, 4161, + 4186, 4193, 4218, 8714, 9226, 9738, 8576, 8831, + 9088, 9343, 9600, 9855, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 65, 70, 97, 102, 2058, 1920, 2175, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 65, 70, 97, 102, 2058, + 1920, 2175, 0 }; static const char _zone_scanner_single_lengths[] = { @@ -3417,147 +3301,146 @@ static const char _zone_scanner_single_lengths[] = { 0, 4, 8, 1, 6, 6, 8, 12, 4, 12, 8, 1, 0, 0, 0, 4, 8, 2, 10, 1, 1, 1, 1, 2, - 2, 11, 1, 1, 10, 46, 16, 2, - 2, 10, 1, 10, 2, 10, 4, 2, - 2, 2, 2, 10, 10, 2, 2, 10, - 2, 2, 2, 10, 2, 2, 2, 10, - 6, 2, 2, 2, 10, 4, 2, 2, - 10, 2, 2, 2, 10, 12, 2, 2, - 10, 2, 2, 2, 1, 10, 1, 10, - 4, 2, 2, 2, 10, 2, 2, 2, - 10, 2, 2, 2, 2, 2, 2, 2, - 10, 4, 2, 10, 10, 6, 1, 10, - 1, 10, 2, 10, 10, 4, 2, 2, - 2, 10, 10, 6, 2, 2, 2, 10, - 2, 10, 12, 2, 11, 12, 2, 2, - 2, 2, 10, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 10, 2, 2, 10, - 6, 10, 2, 2, 2, 10, 10, 12, - 2, 2, 2, 2, 10, 2, 10, 2, - 10, 2, 10, 2, 2, 2, 10, 2, - 2, 10, 6, 2, 2, 10, 2, 10, - 2, 2, 0, 10, 2, 2, 10, 2, - 2, 2, 2, 2, 10, 2, 2, 2, + 2, 11, 1, 1, 36, 8, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 10, + 2, 2, 4, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 6, 2, 2, 2, + 2, 4, 2, 2, 2, 2, 2, 2, + 2, 4, 2, 2, 2, 2, 2, 2, + 1, 2, 1, 2, 4, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 2, 2, + 2, 6, 1, 2, 1, 2, 2, 2, + 2, 4, 2, 2, 2, 2, 2, 6, + 2, 2, 2, 2, 2, 2, 4, 2, + 3, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 6, 2, 2, 2, + 2, 2, 2, 12, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 6, 2, + 2, 2, 2, 2, 2, 2, 0, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 10, + 46, 16, 2, 2, 10, 1, 10, 2, + 10, 4, 2, 2, 2, 2, 10, 10, 2, 2, 10, 2, 2, 2, 10, 2, - 10, 6, 6, 6, 6, 0, 10, 1, - 1, 1, 6, 7, 8, 6, 0, 10, - 1, 1, 6, 1, 8, 1, 1, 1, - 4, 1, 1, 1, 1, 1, 1, 4, - 1, 1, 4, 1, 1, 2, 1, 1, - 1, 1, 4, 1, 1, 1, 1, 4, - 1, 1, 0, 4, 1, 1, 1, 1, + 2, 2, 10, 6, 2, 2, 2, 10, + 4, 2, 2, 10, 2, 2, 2, 10, + 12, 2, 2, 10, 2, 2, 2, 1, + 10, 1, 10, 4, 2, 2, 2, 10, + 2, 2, 2, 10, 2, 2, 2, 2, + 2, 2, 2, 10, 4, 2, 10, 10, + 6, 1, 10, 1, 10, 2, 10, 10, + 4, 2, 2, 2, 10, 10, 6, 2, + 2, 2, 10, 2, 10, 12, 2, 11, + 12, 2, 2, 2, 2, 10, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 10, + 2, 2, 10, 6, 10, 2, 2, 2, + 10, 10, 12, 2, 2, 2, 2, 10, + 2, 10, 2, 10, 2, 10, 2, 2, + 2, 10, 2, 2, 10, 6, 2, 2, + 10, 2, 10, 2, 2, 0, 10, 2, + 2, 10, 2, 2, 2, 2, 2, 10, + 2, 2, 2, 2, 2, 10, 2, 2, + 2, 10, 2, 10, 6, 6, 6, 6, + 0, 10, 1, 1, 1, 6, 7, 8, + 6, 0, 10, 1, 1, 6, 1, 8, + 1, 1, 1, 4, 1, 1, 1, 1, + 1, 1, 4, 1, 1, 4, 1, 1, + 2, 1, 1, 1, 1, 4, 1, 1, + 1, 1, 4, 1, 1, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 1, 1, 1, 1, 4, - 1, 1, 1, 4, 10, 19, 1, 1, - 1, 1, 3, 10, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 10, 10, 1, - 10, 1, 1, 1, 2, 1, 1, 2, - 2, 2, 1, 1, 2, 2, 11, 1, - 1, 1, 2, 1, 1, 1, 1, 1, - 2, 1, 3, 1, 12, 1, 1, 1, + 1, 1, 1, 1, 1, 4, 1, 1, + 1, 1, 4, 1, 1, 1, 4, 10, + 19, 1, 1, 1, 1, 3, 10, 1, + 1, 1, 1, 1, 1, 1, 1, 3, + 10, 10, 1, 10, 1, 1, 1, 2, + 1, 1, 2, 2, 2, 1, 1, 2, + 2, 11, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 3, 1, 12, - 1, 1, 1, 0, 11, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 0, 2, 0, 11, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, + 3, 1, 12, 1, 1, 1, 0, 11, + 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 2, 0, 11, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 10, 1, 1, 1, 1, 10, 1, 1, 1, 1, - 10, 1, 1, 1, 1, 1, 0, 1, - 10, 10, 1, 10, 2, 4, 2, 2, - 3, 2, 2, 2, 2, 1, 1, 2, - 2, 2, 1, 2, 4, 4, 1, 2, + 1, 0, 1, 10, 10, 1, 10, 2, + 4, 2, 2, 3, 2, 2, 2, 2, + 1, 1, 2, 2, 2, 1, 2, 4, + 4, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 2, 2, 2, + 1, 1, 1, 2, 1, 1, 2, 2, + 2, 1, 1, 1, 2, 2, 1, 1, + 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 1, 2, 2, 2, 1, 1, 1, - 2, 1, 1, 2, 2, 2, 1, 1, - 1, 2, 2, 1, 1, 1, 1, 2, - 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 4, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 2, 1, + 2, 2, 2, 3, 3, 2, 2, 2, + 2, 1, 1, 2, 2, 2, 1, 2, + 1, 1, 2, 1, 1, 2, 12, 2, + 2, 2, 2, 2, 2, 2, 6, 2, + 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 4, 2, 2, 2, 2, 2, 2, - 2, 2, 4, 2, 1, 2, 2, 2, - 3, 3, 2, 2, 2, 2, 1, 1, - 2, 2, 2, 1, 2, 1, 1, 2, - 1, 1, 2, 12, 2, 2, 2, 2, - 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 3, 3, 2, - 3, 6, 9, 6, 6, 6, 6, 16, - 6, 16, 6, 16, 6, 12, 2, 10, - 2, 1, 6, 10, 6, 1, 6, 10, - 6, 1, 6, 10, 6, 1, 1, 1, - 2, 6, 6, 2, 1, 3, 6, 9, - 2, 1, 0, 6, 9, 2, 1, 2, - 10, 10, 1, 1, 3, 0, 6, 8, - 6, 8, 7, 8, 6, 6, 6, 8, - 6, 8, 7, 8, 6, 7, 0, 12, - 10, 12, 10, 12, 10, 12, 10, 1, - 11, 11, 1, 11, 11, 10, 1, 11, - 11, 10, 1, 11, 11, 10, 1, 6, - 1, 6, 6, 1, 1, 1, 6, 1, - 6, 6, 1, 1, 0, 6, 6, 6, - 6, 6, 9, 2, 1, 1, 1, 0, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 9, 2, 1, 1, 1, 1, 1, - 0, 6, 6, 6, 6, 6, 7, 2, - 1, 1, 1, 13, 2, 1, 1, 1, - 0, 10, 1, 1, 1, 1, 0, 6, - 6, 6, 6, 6, 6, 0, 10, 1, + 2, 2, 2, 2, 2, 2, 2, 1, + 3, 3, 2, 3, 6, 9, 6, 6, + 6, 6, 16, 6, 16, 6, 16, 6, + 12, 2, 10, 2, 1, 6, 10, 6, + 1, 6, 10, 6, 1, 6, 10, 6, + 1, 1, 1, 2, 6, 6, 2, 1, + 3, 6, 9, 2, 1, 0, 6, 9, + 2, 1, 2, 10, 10, 1, 1, 3, + 0, 6, 8, 6, 8, 7, 8, 6, + 6, 6, 8, 6, 8, 7, 8, 6, + 7, 0, 12, 10, 12, 10, 12, 10, + 12, 10, 1, 11, 11, 1, 11, 11, + 10, 1, 11, 11, 10, 1, 11, 11, + 10, 1, 6, 1, 6, 6, 1, 1, + 1, 6, 1, 6, 6, 1, 1, 0, + 6, 6, 6, 6, 6, 9, 2, 1, + 1, 1, 0, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 9, 2, 1, 1, 1, 1, 1, 0, 6, 6, 6, 6, - 0, 10, 1, 1, 1, 0, 6, 10, - 6, 6, 6, 7, 34, 7, 2, 1, - 14, 1, 35, 3, 1, 1, 6, 6, - 6, 7, 35, 1, 1, 6, 6, 6, - 7, 35, 1, 1, 6, 6, 6, 9, - 34, 1, 1, 1, 36, 12, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 9, 6, 7, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, - 6, 2, 2, 2, 6, 2, 6, 10, - 2, 6, 4, 2, 2, 2, 2, 6, - 6, 2, 2, 6, 2, 2, 2, 6, - 2, 2, 2, 6, 6, 2, 2, 2, - 6, 4, 2, 2, 6, 2, 2, 2, - 6, 8, 2, 2, 6, 2, 2, 2, - 1, 6, 1, 6, 4, 2, 2, 2, - 6, 2, 2, 2, 6, 2, 2, 2, - 2, 2, 2, 2, 6, 4, 2, 6, - 6, 6, 1, 6, 1, 6, 2, 6, - 6, 4, 2, 2, 2, 6, 6, 6, - 2, 2, 2, 6, 2, 6, 8, 2, - 7, 8, 2, 2, 2, 2, 6, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 6, 2, 2, 6, 6, 6, 2, 2, - 2, 6, 6, 12, 2, 2, 2, 2, - 6, 2, 6, 2, 6, 2, 6, 2, - 2, 2, 6, 2, 2, 6, 6, 2, - 2, 6, 2, 6, 2, 2, 0, 6, - 2, 2, 6, 2, 2, 2, 2, 2, - 6, 2, 2, 2, 2, 2, 6, 3, - 2, 2, 0, 6, 6, 6, 6, 6, - 7, 2, 1, 1, 1, 1, 2, 0, - 6, 6, 6, 6, 6, 7, 6, 6, - 0, 1, 0, 1, 1, 0, 1, 2, - 2, 1, 1, 1, 1, 1, 1, 0, - 6, 1, 1, 1, 0, 6, 6, 6, - 6, 6, 7, 2, 0, 2, 1, 1, + 6, 7, 2, 1, 1, 1, 13, 2, + 1, 1, 1, 0, 10, 1, 1, 1, 1, 0, 6, 6, 6, 6, 6, 6, 0, 10, 1, 1, 1, 1, 0, 6, - 6, 2, 2, 1, 0, 6, 6, 6, 6, 6, 6, 0, 10, 1, 1, 1, - 1, 0, 6, 7, 3, 1, 0, 6, - 6, 0, 0, 0, 1, 0, 0, 0, - 0, 3, 1, 0, 0, 1, 0, 0, - 3, 0, 0, 1, 0, 0, 3, 0, - 6, 6, 6, 6, 2, 1, 1, 0, - 6, 6, 6, 6, 2, 1, 1, 0, - 6, 9, 2, 2, 1, 4, 4, 2, + 0, 6, 10, 6, 6, 6, 7, 34, + 7, 2, 1, 14, 1, 35, 3, 1, + 1, 6, 6, 6, 7, 35, 1, 1, + 6, 6, 6, 7, 35, 1, 1, 6, + 6, 6, 9, 34, 1, 1, 1, 0, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 9, 6, 7, + 2, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 2, 2, 0, 6, 6, 6, + 6, 6, 7, 2, 1, 1, 1, 1, + 2, 0, 6, 6, 6, 6, 6, 7, + 6, 6, 0, 1, 0, 1, 1, 0, + 1, 2, 2, 1, 1, 1, 1, 1, + 1, 0, 6, 1, 1, 1, 0, 6, + 6, 6, 6, 6, 7, 2, 0, 2, + 1, 1, 1, 0, 6, 6, 6, 6, + 6, 6, 0, 10, 1, 1, 1, 1, + 0, 6, 6, 2, 2, 1, 0, 6, + 6, 6, 6, 6, 6, 0, 10, 1, + 1, 1, 1, 0, 6, 7, 3, 1, + 0, 6, 6, 0, 0, 0, 1, 0, + 0, 0, 0, 3, 1, 0, 0, 1, + 0, 0, 3, 0, 0, 1, 0, 0, + 3, 0, 6, 6, 6, 6, 2, 1, + 1, 0, 6, 6, 6, 6, 2, 1, + 1, 0, 6, 9, 2, 2, 1, 0, 6, 6, 6, 6, 6, 9, 2, 1, - 1, 1, 2, 2, 2, 6, 2, 2, - 2, 0, 6, 12, 17, 48, 48, 12, - 48, 12, 17, 53, 53, 0, 0, 0, - 0, 4, 0, 0, 0, 10, 0, 11, - 1, 0, 46, 1, 0, 10, 1, 6, + 1, 1, 12, 17, 48, 48, 12, 48, + 12, 17, 53, 53, 0, 0, 0, 0, + 4, 0, 0, 0, 10, 0, 11, 1, + 0, 0, 46, 1, 0, 10, 1, 6, 0, 10, 1, 1, 0, 0, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 0, 0, 10, 1, @@ -3618,9 +3501,29 @@ static const char _zone_scanner_range_lengths[] = { 1, 3, 0, 1, 0, 3, 0, 3, 3, 3, 0, 0, 1, 1, 1, 3, 0, 2, 3, 1, 1, 3, 3, 3, - 3, 3, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, + 3, 3, 1, 0, 0, 2, 0, 0, + 2, 0, 0, 0, 2, 0, 2, 0, + 0, 2, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 2, 0, 0, 0, 2, + 0, 0, 0, 2, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, + 2, 2, 0, 0, 2, 0, 0, 0, + 0, 2, 0, 2, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 2, + 2, 0, 0, 2, 0, 2, 0, 2, + 2, 0, 0, 0, 0, 2, 2, 0, + 0, 0, 0, 2, 0, 2, 2, 0, + 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 2, 0, 2, 0, 0, + 0, 2, 2, 0, 0, 0, 0, 0, + 2, 0, 2, 0, 2, 0, 2, 0, + 0, 0, 2, 0, 0, 2, 0, 0, + 0, 2, 0, 2, 0, 0, 1, 3, + 0, 0, 2, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 1, 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, @@ -3637,128 +3540,107 @@ static const char _zone_scanner_range_lengths[] = { 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 3, 3, 3, 1, - 1, 1, 0, 1, 1, 3, 3, 3, - 1, 1, 1, 1, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 2, - 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 1, 1, 3, + 3, 3, 1, 1, 1, 0, 1, 1, + 3, 3, 3, 1, 1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 2, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 3, 0, - 0, 0, 0, 0, 3, 3, 3, 3, - 3, 3, 0, 3, 3, 3, 3, 0, + 0, 0, 2, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 2, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 0, 3, 3, 3, 3, 3, - 3, 0, 0, 1, 1, 2, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 2, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 0, 2, 0, 2, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 0, 3, + 3, 3, 3, 3, 3, 0, 3, 3, + 3, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 0, 3, 3, + 3, 3, 3, 3, 0, 0, 1, 1, + 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, - 1, 3, 0, 1, 3, 0, 2, 0, - 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 2, - 0, 0, 2, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 3, 0, 1, 3, + 0, 2, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 2, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 2, + 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 2, 0, 0, 2, 1, 3, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, - 0, 0, 2, 1, 3, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 2, - 0, 0, 0, 2, 0, 0, 2, 0, - 0, 2, 0, 0, 2, 0, 0, 0, - 2, 0, 0, 2, 1, 3, 0, 0, - 0, 0, 0, 2, 1, 3, 3, 2, - 3, 0, 3, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 3, 1, - 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 2, 0, 3, 2, 1, 3, 0, 3, - 2, 1, 1, 1, 3, 2, 1, 2, - 0, 3, 1, 3, 5, 1, 1, 1, - 1, 1, 1, 0, 0, 1, 1, 1, - 1, 1, 1, 0, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, - 1, 1, 1, 1, 1, 0, 1, 1, - 1, 0, 1, 1, 1, 0, 1, 0, - 1, 1, 1, 1, 1, 1, 0, 1, + 0, 0, 0, 2, 0, 0, 2, 1, + 3, 0, 0, 0, 0, 0, 2, 1, + 3, 3, 2, 3, 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 3, 0, 3, 0, 3, - 0, 3, 2, 1, 1, 1, 1, 1, - 3, 0, 1, 1, 3, 0, 3, 0, - 1, 1, 1, 0, 0, 0, 1, 1, - 1, 1, 1, 0, 3, 3, 1, 1, - 3, 0, 1, 1, 3, 3, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 1, 1, 1, 1, 1, 0, - 0, 1, 1, 0, 0, 3, 0, 1, - 0, 1, 3, 3, 1, 1, 0, 1, - 1, 1, 1, 1, 1, 0, 1, 1, - 3, 3, 1, 1, 0, 1, 1, 3, - 0, 1, 1, 1, 0, 0, 3, 0, + 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 3, 0, 1, 1, + 1, 1, 1, 2, 0, 3, 2, 1, + 3, 0, 3, 2, 1, 1, 1, 3, + 2, 1, 2, 0, 3, 1, 3, 5, 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, - 2, 2, 1, 1, 1, 1, 3, 0, - 3, 0, 1, 1, 1, 3, 0, 1, - 1, 1, 1, 1, 1, 3, 0, 3, - 3, 3, 3, 3, 3, 3, 3, 5, - 2, 0, 0, 0, 0, 0, 1, 3, - 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 2, 3, 5, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, + 1, 1, 1, 1, 1, 1, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 1, 0, 1, 1, 1, + 0, 1, 0, 1, 1, 1, 1, 1, + 1, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 3, 0, + 3, 0, 3, 0, 3, 2, 1, 1, + 1, 1, 1, 3, 0, 1, 1, 3, + 0, 3, 0, 1, 1, 1, 0, 0, + 0, 1, 1, 1, 1, 1, 0, 3, + 3, 1, 1, 3, 0, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 1, 1, - 3, 3, 3, 3, 0, 3, 3, 3, - 3, 2, 1, 3, 3, 0, 3, 3, - 2, 3, 3, 0, 3, 3, 2, 1, + 1, 1, 0, 0, 1, 1, 0, 0, + 3, 0, 1, 0, 1, 3, 3, 1, + 1, 0, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 3, 3, 1, 1, 0, + 1, 1, 3, 0, 1, 1, 1, 3, + 0, 3, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 0, 3, + 0, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 2, 2, 1, 1, 1, 1, + 3, 0, 3, 0, 1, 1, 1, 3, + 0, 1, 1, 1, 1, 1, 1, 3, + 0, 3, 3, 3, 3, 3, 3, 3, + 3, 5, 2, 0, 0, 0, 0, 0, + 1, 3, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 2, 3, 5, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, - 1, 3, 0, 3, 2, 1, 1, 1, - 1, 3, 2, 2, 1, 0, 0, 0, + 1, 1, 1, 1, 3, 3, 3, 1, + 1, 1, 1, 1, 1, 1, 3, 1, + 1, 1, 3, 3, 3, 3, 0, 3, + 3, 3, 3, 2, 1, 3, 3, 0, + 3, 3, 2, 3, 3, 0, 3, 3, + 2, 1, 1, 1, 1, 3, 2, 1, + 1, 1, 1, 3, 0, 3, 2, 1, + 1, 1, 1, 3, 2, 2, 1, 3, 0, 3, 0, 1, 1, 3, 2, 1, - 1, 1, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 3, 8, 3, 4, 3, - 4, 3, 8, 9, 9, 0, 0, 0, - 0, 4, 0, 0, 0, 3, 0, 3, - 1, 0, 0, 1, 0, 3, 1, 3, + 1, 1, 3, 8, 3, 4, 3, 4, + 3, 8, 9, 9, 0, 0, 0, 0, + 4, 0, 0, 0, 3, 0, 3, 1, + 0, 0, 0, 1, 0, 3, 1, 3, 0, 3, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 1, @@ -3819,156 +3701,155 @@ static const short _zone_scanner_index_offsets[] = { 3405, 3407, 3415, 3424, 3427, 3434, 3444, 3453, 3469, 3477, 3493, 3502, 3504, 3506, 3508, 3510, 3518, 3527, 3532, 3546, 3549, 3552, 3557, 3562, - 3568, 3574, 3589, 3592, 3594, 3605, 3652, 3669, - 3672, 3675, 3686, 3689, 3700, 3703, 3714, 3719, - 3722, 3725, 3728, 3731, 3742, 3753, 3756, 3759, - 3770, 3773, 3776, 3779, 3790, 3793, 3796, 3799, - 3810, 3817, 3820, 3823, 3826, 3837, 3842, 3845, - 3848, 3859, 3862, 3865, 3868, 3879, 3892, 3895, - 3898, 3909, 3912, 3915, 3918, 3920, 3931, 3933, - 3944, 3949, 3952, 3955, 3958, 3969, 3972, 3975, - 3978, 3989, 3992, 3995, 3998, 4001, 4004, 4007, - 4010, 4021, 4026, 4029, 4040, 4051, 4058, 4060, - 4071, 4073, 4084, 4087, 4098, 4109, 4114, 4117, - 4120, 4123, 4134, 4145, 4152, 4155, 4158, 4161, - 4172, 4175, 4186, 4199, 4202, 4214, 4227, 4230, - 4233, 4236, 4239, 4250, 4253, 4256, 4259, 4262, - 4265, 4268, 4271, 4274, 4277, 4288, 4291, 4294, - 4305, 4312, 4323, 4326, 4329, 4332, 4343, 4354, - 4367, 4370, 4373, 4376, 4379, 4390, 4393, 4404, - 4407, 4418, 4421, 4432, 4435, 4438, 4441, 4452, - 4455, 4458, 4469, 4476, 4479, 4482, 4493, 4496, - 4507, 4510, 4513, 4515, 4527, 4530, 4533, 4544, - 4547, 4550, 4553, 4556, 4559, 4570, 4573, 4576, - 4579, 4582, 4585, 4596, 4599, 4602, 4605, 4616, - 4619, 4630, 4637, 4645, 4653, 4663, 4667, 4681, - 4684, 4687, 4690, 4697, 4706, 4716, 4726, 4730, - 4744, 4747, 4750, 4758, 4761, 4770, 4772, 4774, - 4776, 4783, 4785, 4787, 4789, 4791, 4793, 4795, - 4802, 4804, 4806, 4813, 4815, 4817, 4820, 4822, - 4824, 4826, 4828, 4835, 4837, 4839, 4841, 4843, - 4850, 4852, 4854, 4856, 4864, 4866, 4868, 4870, - 4872, 4874, 4876, 4878, 4880, 4882, 4884, 4886, - 4888, 4890, 4892, 4899, 4901, 4903, 4905, 4907, - 4914, 4916, 4918, 4920, 4927, 4938, 4958, 4960, - 4962, 4964, 4966, 4972, 4983, 4986, 4988, 4990, - 4992, 4994, 4996, 4998, 5000, 5006, 5017, 5031, - 5033, 5044, 5046, 5048, 5050, 5056, 5061, 5066, - 5072, 5078, 5084, 5086, 5091, 5097, 5103, 5118, - 5120, 5122, 5124, 5127, 5129, 5131, 5133, 5135, - 5137, 5141, 5144, 5149, 5152, 5166, 5169, 5171, - 5173, 5175, 5177, 5179, 5185, 5190, 5197, 5202, - 5218, 5223, 5225, 5227, 5229, 5242, 5247, 5249, - 5251, 5253, 5255, 5257, 5259, 5261, 5263, 5265, - 5269, 5272, 5275, 5278, 5290, 5293, 5295, 5297, - 5299, 5301, 5303, 5305, 5307, 5309, 5311, 5313, - 5315, 5317, 5319, 5321, 5332, 5334, 5336, 5338, - 5340, 5351, 5353, 5355, 5357, 5359, 5362, 5364, - 5367, 5379, 5393, 5395, 5407, 5413, 5418, 5423, - 5426, 5432, 5435, 5438, 5441, 5444, 5446, 5448, - 5451, 5454, 5457, 5459, 5464, 5469, 5474, 5476, - 5479, 5482, 5485, 5488, 5493, 5496, 5499, 5502, - 5505, 5507, 5509, 5512, 5515, 5518, 5520, 5522, - 5524, 5529, 5531, 5533, 5536, 5539, 5542, 5544, - 5546, 5548, 5553, 5556, 5558, 5560, 5562, 5564, - 5569, 5571, 5573, 5578, 5581, 5584, 5587, 5590, - 5593, 5596, 5599, 5604, 5607, 5610, 5613, 5616, - 5619, 5622, 5627, 5630, 5633, 5638, 5641, 5644, - 5649, 5652, 5655, 5660, 5663, 5665, 5670, 5673, - 5676, 5680, 5686, 5689, 5692, 5695, 5698, 5700, - 5702, 5705, 5708, 5711, 5713, 5718, 5720, 5722, - 5727, 5729, 5731, 5736, 5750, 5756, 5759, 5762, - 5765, 5768, 5771, 5776, 5783, 5786, 5789, 5792, - 5795, 5798, 5803, 5808, 5811, 5816, 5819, 5822, - 5827, 5830, 5833, 5836, 5841, 5844, 5847, 5852, - 5857, 5860, 5865, 5868, 5871, 5876, 5879, 5882, - 5885, 5890, 5893, 5896, 5901, 5905, 5911, 5914, - 5917, 5920, 5923, 5926, 5931, 5934, 5941, 5948, - 5953, 5960, 5967, 5980, 5987, 5995, 6003, 6011, - 6029, 6037, 6055, 6063, 6081, 6089, 6105, 6111, - 6123, 6129, 6132, 6140, 6152, 6160, 6163, 6171, - 6183, 6191, 6194, 6202, 6214, 6222, 6225, 6228, - 6231, 6236, 6243, 6253, 6258, 6261, 6268, 6275, - 6288, 6293, 6296, 6298, 6306, 6319, 6324, 6327, - 6332, 6343, 6357, 6360, 6365, 6374, 6376, 6384, - 6394, 6402, 6412, 6421, 6430, 6437, 6445, 6453, - 6463, 6471, 6481, 6490, 6499, 6506, 6515, 6517, - 6531, 6543, 6557, 6569, 6583, 6595, 6609, 6620, - 6623, 6636, 6649, 6652, 6665, 6678, 6689, 6692, - 6705, 6718, 6729, 6732, 6745, 6758, 6769, 6772, - 6779, 6782, 6790, 6798, 6801, 6804, 6807, 6814, - 6817, 6825, 6833, 6836, 6839, 6841, 6849, 6857, - 6865, 6873, 6881, 6894, 6899, 6902, 6905, 6908, - 6910, 6918, 6926, 6934, 6944, 6951, 6961, 6968, - 6978, 6985, 6998, 7003, 7006, 7009, 7012, 7015, - 7018, 7022, 7029, 7037, 7045, 7055, 7062, 7073, - 7076, 7079, 7082, 7085, 7099, 7102, 7104, 7107, - 7110, 7112, 7124, 7127, 7129, 7134, 7139, 7141, - 7149, 7159, 7166, 7174, 7182, 7192, 7196, 7210, - 7213, 7216, 7219, 7222, 7224, 7232, 7240, 7248, - 7258, 7262, 7276, 7279, 7282, 7285, 7287, 7295, - 7306, 7313, 7321, 7329, 7337, 7372, 7383, 7386, - 7389, 7404, 7407, 7446, 7453, 7456, 7459, 7466, - 7474, 7482, 7491, 7528, 7531, 7534, 7541, 7549, - 7557, 7568, 7607, 7610, 7613, 7620, 7628, 7636, - 7649, 7684, 7687, 7690, 7693, 7730, 7743, 7753, - 7760, 7768, 7776, 7784, 7792, 7800, 7808, 7816, - 7824, 7832, 7840, 7853, 7860, 7871, 7874, 7877, - 7880, 7883, 7886, 7889, 7892, 7895, 7898, 7901, - 7904, 7911, 7914, 7917, 7920, 7927, 7930, 7937, - 7948, 7951, 7958, 7963, 7966, 7969, 7972, 7975, - 7982, 7989, 7992, 7995, 8002, 8005, 8008, 8011, - 8018, 8021, 8024, 8027, 8034, 8041, 8044, 8047, - 8050, 8057, 8062, 8065, 8068, 8075, 8078, 8081, - 8084, 8091, 8100, 8103, 8106, 8113, 8116, 8119, - 8122, 8124, 8131, 8133, 8140, 8145, 8148, 8151, - 8154, 8161, 8164, 8167, 8170, 8177, 8180, 8183, - 8186, 8189, 8192, 8195, 8198, 8205, 8210, 8213, - 8220, 8227, 8234, 8236, 8243, 8245, 8252, 8255, - 8262, 8269, 8274, 8277, 8280, 8283, 8290, 8297, - 8304, 8307, 8310, 8313, 8320, 8323, 8330, 8339, - 8342, 8350, 8359, 8362, 8365, 8368, 8371, 8378, - 8381, 8384, 8387, 8390, 8393, 8396, 8399, 8402, - 8405, 8412, 8415, 8418, 8425, 8432, 8439, 8442, - 8445, 8448, 8455, 8462, 8475, 8478, 8481, 8484, - 8487, 8494, 8497, 8504, 8507, 8514, 8517, 8524, - 8527, 8530, 8533, 8540, 8543, 8546, 8553, 8560, - 8563, 8566, 8573, 8576, 8583, 8586, 8589, 8591, - 8599, 8602, 8605, 8612, 8615, 8618, 8621, 8624, - 8627, 8634, 8637, 8640, 8643, 8646, 8649, 8656, - 8663, 8668, 8673, 8675, 8683, 8691, 8699, 8709, - 8716, 8727, 8730, 8733, 8736, 8739, 8744, 8747, - 8749, 8757, 8765, 8773, 8781, 8789, 8800, 8807, - 8817, 8821, 8826, 8830, 8835, 8840, 8844, 8849, - 8857, 8862, 8864, 8866, 8868, 8870, 8872, 8875, - 8879, 8889, 8892, 8895, 8898, 8900, 8908, 8916, - 8924, 8932, 8940, 8951, 8956, 8960, 8968, 8971, - 8974, 8977, 8979, 8987, 8995, 9003, 9011, 9019, - 9029, 9033, 9047, 9050, 9053, 9056, 9059, 9061, - 9069, 9077, 9083, 9088, 9091, 9093, 9101, 9109, - 9117, 9125, 9133, 9143, 9147, 9161, 9164, 9167, - 9170, 9173, 9175, 9183, 9192, 9199, 9202, 9204, - 9212, 9222, 9226, 9230, 9234, 9236, 9240, 9244, - 9248, 9252, 9258, 9261, 9265, 9269, 9271, 9275, - 9279, 9285, 9289, 9293, 9295, 9299, 9303, 9309, - 9311, 9319, 9327, 9335, 9345, 9350, 9353, 9356, - 9358, 9366, 9376, 9383, 9393, 9398, 9401, 9404, - 9406, 9414, 9427, 9432, 9437, 9440, 9445, 9450, - 9453, 9460, 9470, 9477, 9485, 9493, 9506, 9511, - 9514, 9517, 9520, 9523, 9526, 9529, 9536, 9539, - 9542, 9545, 9547, 9555, 9571, 9597, 9649, 9702, - 9718, 9771, 9787, 9813, 9876, 9939, 9940, 9941, - 9942, 9943, 9952, 9953, 9954, 9955, 9969, 9970, - 9985, 9988, 9989, 10036, 10039, 10040, 10054, 10057, - 10067, 10068, 10082, 10085, 10088, 10089, 10090, 10110, - 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, - 10121, 10122, 10123, 10137, 10140, 10141, 10142, 10153, - 10156, 10168, 10171, 10183, 10186, 10198, 10201, 10202, - 10203, 10204, 10205, 10219, 10222, 10223, 10237, 10240, - 10241, 10255, 10258, 10259, 10274, 10277, 10288, 10291, - 10330, 10337, 10338, 10339, 10340, 10341, 10342, 10343, - 10344, 10358, 10361, 10362, 10363, 10377, 10380, 10381, - 10382, 10383, 10384, 10385, 10386, 10387 + 3568, 3574, 3589, 3592, 3594, 3631, 3642, 3645, + 3648, 3653, 3656, 3659, 3662, 3667, 3670, 3675, + 3686, 3689, 3694, 3699, 3702, 3705, 3708, 3711, + 3716, 3721, 3724, 3727, 3732, 3735, 3738, 3741, + 3746, 3749, 3752, 3755, 3760, 3767, 3770, 3773, + 3776, 3781, 3786, 3789, 3792, 3797, 3800, 3803, + 3806, 3811, 3818, 3821, 3824, 3829, 3832, 3835, + 3838, 3840, 3845, 3847, 3852, 3857, 3860, 3863, + 3866, 3871, 3874, 3877, 3880, 3885, 3888, 3891, + 3894, 3897, 3900, 3903, 3906, 3911, 3916, 3919, + 3924, 3929, 3936, 3938, 3943, 3945, 3950, 3953, + 3958, 3963, 3968, 3971, 3974, 3977, 3982, 3987, + 3994, 3997, 4000, 4003, 4008, 4011, 4016, 4023, + 4026, 4032, 4039, 4042, 4045, 4048, 4051, 4056, + 4059, 4062, 4065, 4068, 4071, 4074, 4077, 4080, + 4083, 4088, 4091, 4094, 4099, 4106, 4111, 4114, + 4117, 4120, 4125, 4130, 4143, 4146, 4149, 4152, + 4155, 4160, 4163, 4168, 4171, 4176, 4179, 4184, + 4187, 4190, 4193, 4198, 4201, 4204, 4209, 4216, + 4219, 4222, 4227, 4230, 4235, 4238, 4241, 4243, + 4249, 4252, 4255, 4260, 4263, 4266, 4269, 4272, + 4275, 4280, 4283, 4286, 4289, 4292, 4295, 4300, + 4311, 4358, 4375, 4378, 4381, 4392, 4395, 4406, + 4409, 4420, 4425, 4428, 4431, 4434, 4437, 4448, + 4459, 4462, 4465, 4476, 4479, 4482, 4485, 4496, + 4499, 4502, 4505, 4516, 4523, 4526, 4529, 4532, + 4543, 4548, 4551, 4554, 4565, 4568, 4571, 4574, + 4585, 4598, 4601, 4604, 4615, 4618, 4621, 4624, + 4626, 4637, 4639, 4650, 4655, 4658, 4661, 4664, + 4675, 4678, 4681, 4684, 4695, 4698, 4701, 4704, + 4707, 4710, 4713, 4716, 4727, 4732, 4735, 4746, + 4757, 4764, 4766, 4777, 4779, 4790, 4793, 4804, + 4815, 4820, 4823, 4826, 4829, 4840, 4851, 4858, + 4861, 4864, 4867, 4878, 4881, 4892, 4905, 4908, + 4920, 4933, 4936, 4939, 4942, 4945, 4956, 4959, + 4962, 4965, 4968, 4971, 4974, 4977, 4980, 4983, + 4994, 4997, 5000, 5011, 5018, 5029, 5032, 5035, + 5038, 5049, 5060, 5073, 5076, 5079, 5082, 5085, + 5096, 5099, 5110, 5113, 5124, 5127, 5138, 5141, + 5144, 5147, 5158, 5161, 5164, 5175, 5182, 5185, + 5188, 5199, 5202, 5213, 5216, 5219, 5221, 5233, + 5236, 5239, 5250, 5253, 5256, 5259, 5262, 5265, + 5276, 5279, 5282, 5285, 5288, 5291, 5302, 5305, + 5308, 5311, 5322, 5325, 5336, 5343, 5351, 5359, + 5369, 5373, 5387, 5390, 5393, 5396, 5403, 5412, + 5422, 5432, 5436, 5450, 5453, 5456, 5464, 5467, + 5476, 5478, 5480, 5482, 5489, 5491, 5493, 5495, + 5497, 5499, 5501, 5508, 5510, 5512, 5519, 5521, + 5523, 5526, 5528, 5530, 5532, 5534, 5541, 5543, + 5545, 5547, 5549, 5556, 5558, 5560, 5562, 5570, + 5572, 5574, 5576, 5578, 5580, 5582, 5584, 5586, + 5588, 5590, 5592, 5594, 5596, 5598, 5605, 5607, + 5609, 5611, 5613, 5620, 5622, 5624, 5626, 5633, + 5644, 5664, 5666, 5668, 5670, 5672, 5678, 5689, + 5692, 5694, 5696, 5698, 5700, 5702, 5704, 5706, + 5712, 5723, 5737, 5739, 5750, 5752, 5754, 5756, + 5762, 5767, 5772, 5778, 5784, 5790, 5792, 5797, + 5803, 5809, 5824, 5826, 5828, 5830, 5833, 5835, + 5837, 5839, 5841, 5843, 5847, 5850, 5855, 5858, + 5872, 5875, 5877, 5879, 5881, 5883, 5885, 5891, + 5896, 5903, 5908, 5924, 5929, 5931, 5933, 5935, + 5948, 5953, 5955, 5957, 5959, 5961, 5963, 5965, + 5967, 5969, 5971, 5975, 5978, 5981, 5984, 5996, + 5999, 6001, 6003, 6005, 6007, 6009, 6011, 6013, + 6015, 6017, 6019, 6021, 6023, 6025, 6027, 6038, + 6040, 6042, 6044, 6046, 6057, 6059, 6061, 6063, + 6065, 6068, 6070, 6073, 6085, 6099, 6101, 6113, + 6119, 6124, 6129, 6132, 6138, 6141, 6144, 6147, + 6150, 6152, 6154, 6157, 6160, 6163, 6165, 6170, + 6175, 6180, 6182, 6185, 6188, 6191, 6194, 6199, + 6202, 6205, 6208, 6211, 6213, 6215, 6218, 6221, + 6224, 6226, 6228, 6230, 6235, 6237, 6239, 6242, + 6245, 6248, 6250, 6252, 6254, 6259, 6262, 6264, + 6266, 6268, 6270, 6275, 6277, 6279, 6284, 6287, + 6290, 6293, 6296, 6299, 6302, 6305, 6310, 6313, + 6316, 6319, 6322, 6325, 6328, 6333, 6336, 6339, + 6344, 6347, 6350, 6355, 6358, 6361, 6366, 6369, + 6371, 6376, 6379, 6382, 6386, 6392, 6395, 6398, + 6401, 6404, 6406, 6408, 6411, 6414, 6417, 6419, + 6424, 6426, 6428, 6433, 6435, 6437, 6442, 6456, + 6462, 6465, 6468, 6471, 6474, 6477, 6482, 6489, + 6492, 6495, 6498, 6501, 6504, 6509, 6514, 6517, + 6522, 6525, 6528, 6533, 6536, 6539, 6542, 6547, + 6550, 6553, 6558, 6563, 6566, 6571, 6574, 6577, + 6582, 6585, 6588, 6591, 6596, 6599, 6602, 6607, + 6611, 6617, 6620, 6623, 6626, 6629, 6632, 6637, + 6640, 6647, 6654, 6659, 6666, 6673, 6686, 6693, + 6701, 6709, 6717, 6735, 6743, 6761, 6769, 6787, + 6795, 6811, 6817, 6829, 6835, 6838, 6846, 6858, + 6866, 6869, 6877, 6889, 6897, 6900, 6908, 6920, + 6928, 6931, 6934, 6937, 6942, 6949, 6959, 6964, + 6967, 6974, 6981, 6994, 6999, 7002, 7004, 7012, + 7025, 7030, 7033, 7038, 7049, 7063, 7066, 7071, + 7080, 7082, 7090, 7100, 7108, 7118, 7127, 7136, + 7143, 7151, 7159, 7169, 7177, 7187, 7196, 7205, + 7212, 7221, 7223, 7237, 7249, 7263, 7275, 7289, + 7301, 7315, 7326, 7329, 7342, 7355, 7358, 7371, + 7384, 7395, 7398, 7411, 7424, 7435, 7438, 7451, + 7464, 7475, 7478, 7485, 7488, 7496, 7504, 7507, + 7510, 7513, 7520, 7523, 7531, 7539, 7542, 7545, + 7547, 7555, 7563, 7571, 7579, 7587, 7600, 7605, + 7608, 7611, 7614, 7616, 7624, 7632, 7640, 7650, + 7657, 7667, 7674, 7684, 7691, 7704, 7709, 7712, + 7715, 7718, 7721, 7724, 7728, 7735, 7743, 7751, + 7761, 7768, 7779, 7782, 7785, 7788, 7791, 7805, + 7808, 7810, 7813, 7816, 7818, 7830, 7833, 7835, + 7840, 7845, 7847, 7855, 7865, 7872, 7880, 7888, + 7898, 7902, 7916, 7919, 7922, 7925, 7928, 7930, + 7938, 7946, 7954, 7964, 7968, 7982, 7985, 7988, + 7991, 7993, 8001, 8012, 8019, 8027, 8035, 8043, + 8078, 8089, 8092, 8095, 8110, 8113, 8152, 8159, + 8162, 8165, 8172, 8180, 8188, 8197, 8234, 8237, + 8240, 8247, 8255, 8263, 8274, 8313, 8316, 8319, + 8326, 8334, 8342, 8355, 8390, 8393, 8396, 8399, + 8403, 8410, 8420, 8427, 8435, 8443, 8451, 8459, + 8467, 8475, 8483, 8491, 8499, 8507, 8520, 8527, + 8538, 8541, 8544, 8547, 8550, 8553, 8556, 8559, + 8562, 8565, 8572, 8577, 8582, 8584, 8592, 8600, + 8608, 8618, 8625, 8636, 8639, 8642, 8645, 8648, + 8653, 8656, 8658, 8666, 8674, 8682, 8690, 8698, + 8709, 8716, 8726, 8730, 8735, 8739, 8744, 8749, + 8753, 8758, 8766, 8771, 8773, 8775, 8777, 8779, + 8781, 8784, 8788, 8798, 8801, 8804, 8807, 8809, + 8817, 8825, 8833, 8841, 8849, 8860, 8865, 8869, + 8877, 8880, 8883, 8886, 8888, 8896, 8904, 8912, + 8920, 8928, 8938, 8942, 8956, 8959, 8962, 8965, + 8968, 8970, 8978, 8986, 8992, 8997, 9000, 9002, + 9010, 9018, 9026, 9034, 9042, 9052, 9056, 9070, + 9073, 9076, 9079, 9082, 9084, 9092, 9101, 9108, + 9111, 9113, 9121, 9131, 9135, 9139, 9143, 9145, + 9149, 9153, 9157, 9161, 9167, 9170, 9174, 9178, + 9180, 9184, 9188, 9194, 9198, 9202, 9204, 9208, + 9212, 9218, 9220, 9228, 9236, 9244, 9254, 9259, + 9262, 9265, 9267, 9275, 9285, 9292, 9302, 9307, + 9310, 9313, 9315, 9323, 9336, 9341, 9346, 9349, + 9353, 9360, 9370, 9377, 9385, 9393, 9406, 9411, + 9414, 9417, 9420, 9436, 9462, 9514, 9567, 9583, + 9636, 9652, 9678, 9741, 9804, 9805, 9806, 9807, + 9808, 9817, 9818, 9819, 9820, 9834, 9835, 9850, + 9853, 9854, 9855, 9902, 9905, 9906, 9920, 9923, + 9933, 9934, 9948, 9951, 9954, 9955, 9956, 9976, + 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, + 9987, 9988, 9989, 10003, 10006, 10007, 10008, 10019, + 10022, 10034, 10037, 10049, 10052, 10064, 10067, 10068, + 10069, 10070, 10071, 10085, 10088, 10089, 10103, 10106, + 10107, 10121, 10124, 10125, 10140, 10143, 10154, 10157, + 10196, 10203, 10204, 10205, 10206, 10207, 10208, 10209, + 10210, 10224, 10227, 10228, 10229, 10243, 10246, 10247, + 10248, 10249, 10250, 10251, 10252, 10253 }; static const short _zone_scanner_indicies[] = { @@ -4421,863 +4302,846 @@ static const short _zone_scanner_indicies[] = { 1237, 1238, 1237, 1237, 1237, 1232, 1238, 1238, 1239, 1240, 1233, 1241, 1242, 1243, 1243, 1244, 1245, 1233, 1233, 1233, 1232, 1247, 1246, 1232, - 1238, 1232, 1249, 1249, 1250, 1251, 1252, 1253, - 1254, 1254, 1255, 1256, 1248, 1257, 1257, 1258, - 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, - 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, - 1275, 1276, 1277, 1260, 1261, 1262, 1263, 1264, - 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, - 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, - 1280, 1281, 1282, 1248, 1283, 1283, 1284, 1285, - 1286, 1287, 1288, 1286, 1287, 1288, 1289, 1290, - 1291, 1291, 1292, 1293, 1248, 1294, 1294, 1248, - 1295, 1295, 1248, 1296, 1296, 1297, 1298, 1299, - 1300, 1301, 1301, 1302, 1303, 1248, 1305, 1304, - 1248, 1306, 1307, 1308, 1309, 1310, 1306, 1307, - 1308, 1309, 1310, 1248, 1311, 1311, 1248, 1312, - 1312, 1313, 1314, 1315, 1316, 1317, 1317, 1318, - 1319, 1248, 1320, 1321, 1320, 1321, 1248, 1322, - 1322, 1248, 1323, 1323, 1248, 1324, 1324, 1248, - 1325, 1325, 1248, 1326, 1326, 1327, 1328, 1329, - 1330, 1331, 1331, 1332, 1333, 1248, 1334, 1334, - 1335, 1336, 1337, 1338, 1339, 1339, 1340, 1341, - 1248, 1342, 1342, 1248, 1343, 1343, 1248, 1344, - 1344, 1345, 1346, 1347, 1348, 1349, 1349, 1350, - 1351, 1248, 1352, 1352, 1248, 1353, 1353, 1248, - 1354, 1354, 1248, 1355, 1355, 1356, 1357, 1358, - 1359, 1360, 1360, 1361, 1362, 1248, 1363, 1363, - 1248, 1364, 1364, 1248, 1365, 1365, 1248, 1366, - 1366, 1367, 1368, 1369, 1370, 1371, 1371, 1372, - 1373, 1248, 1374, 1375, 1376, 1374, 1375, 1376, - 1248, 1377, 1377, 1248, 1378, 1378, 1248, 1379, - 1379, 1248, 1380, 1380, 1381, 1382, 1383, 1384, - 1385, 1385, 1386, 1387, 1248, 1388, 1389, 1388, - 1389, 1248, 1390, 1390, 1248, 1391, 1391, 1248, - 1392, 1392, 1393, 1394, 1395, 1396, 1397, 1397, - 1398, 1399, 1248, 1400, 1400, 1248, 1401, 1401, - 1248, 1402, 1402, 1248, 1403, 1403, 1404, 1405, - 1406, 1407, 1408, 1408, 1409, 1410, 1248, 1411, - 1411, 1412, 1413, 1414, 1414, 1415, 1416, 1417, - 1417, 1418, 1419, 1248, 1420, 1420, 1248, 1421, - 1421, 1248, 1422, 1422, 1423, 1424, 1425, 1426, - 1427, 1427, 1428, 1429, 1248, 1430, 1430, 1248, - 1431, 1431, 1248, 1432, 1433, 1248, 1434, 1248, - 1435, 1435, 1436, 1437, 1438, 1439, 1440, 1440, - 1441, 1442, 1248, 1443, 1248, 1444, 1444, 1445, - 1446, 1447, 1448, 1449, 1449, 1450, 1451, 1248, - 1452, 1453, 1452, 1453, 1248, 1454, 1454, 1248, - 1455, 1455, 1248, 1456, 1456, 1248, 1457, 1457, - 1458, 1459, 1460, 1461, 1462, 1462, 1463, 1464, - 1248, 1465, 1465, 1248, 1466, 1466, 1248, 1467, - 1467, 1248, 1468, 1468, 1469, 1470, 1471, 1472, - 1473, 1473, 1474, 1475, 1248, 1476, 1476, 1248, - 1477, 1477, 1248, 1478, 1478, 1248, 1479, 1479, - 1248, 1480, 1480, 1248, 1481, 1481, 1248, 1482, - 1482, 1248, 1483, 1483, 1484, 1485, 1486, 1487, - 1488, 1488, 1489, 1490, 1248, 1491, 1492, 1491, - 1492, 1248, 1493, 1493, 1248, 1494, 1494, 1495, - 1496, 1497, 1498, 1499, 1499, 1500, 1501, 1248, - 1502, 1502, 1503, 1504, 1505, 1506, 1507, 1507, - 1508, 1509, 1248, 1510, 1511, 1512, 1513, 1512, - 1513, 1248, 1514, 1248, 1515, 1515, 1516, 1517, - 1518, 1519, 1520, 1520, 1521, 1522, 1248, 1523, - 1248, 1524, 1524, 1525, 1526, 1527, 1528, 1529, - 1529, 1530, 1531, 1248, 1532, 1532, 1248, 1533, - 1533, 1534, 1535, 1536, 1537, 1538, 1538, 1539, - 1540, 1248, 1541, 1541, 1542, 1543, 1544, 1545, - 1546, 1546, 1547, 1548, 1248, 1549, 1550, 1549, - 1550, 1248, 1551, 1551, 1248, 1552, 1552, 1248, - 1553, 1553, 1248, 1554, 1554, 1555, 1556, 1557, - 1558, 1559, 1559, 1560, 1561, 1248, 1562, 1562, - 1563, 1564, 1565, 1566, 1567, 1567, 1568, 1569, - 1248, 1570, 1571, 1572, 1570, 1571, 1572, 1248, - 1573, 1573, 1248, 1574, 1574, 1248, 1575, 1575, - 1248, 1576, 1576, 1577, 1578, 1579, 1580, 1581, - 1581, 1582, 1583, 1248, 1584, 1584, 1248, 1585, - 1585, 1586, 1587, 1588, 1589, 1590, 1590, 1591, - 1592, 1248, 1593, 1593, 1594, 1595, 1596, 1596, - 1597, 1598, 1599, 1599, 1600, 1601, 1248, 1602, - 1602, 1248, 1603, 1603, 1604, 1605, 1606, 1607, - 1608, 1609, 1609, 1610, 1611, 1248, 1612, 1612, - 1613, 1614, 1615, 1615, 1616, 1617, 1618, 1618, - 1619, 1620, 1248, 1621, 1621, 1248, 1622, 1622, - 1248, 1623, 1623, 1248, 1624, 1624, 1248, 1625, - 1625, 1626, 1627, 1628, 1629, 1630, 1630, 1631, - 1632, 1248, 1633, 1633, 1248, 1634, 1634, 1248, - 1635, 1635, 1248, 1636, 1636, 1248, 1637, 1637, - 1248, 1638, 1638, 1248, 1639, 1639, 1248, 1640, - 1640, 1248, 1641, 1641, 1248, 1642, 1642, 1643, - 1644, 1645, 1646, 1647, 1647, 1648, 1649, 1248, - 1650, 1650, 1248, 1651, 1651, 1248, 1652, 1652, - 1653, 1654, 1655, 1656, 1657, 1657, 1658, 1659, - 1248, 1660, 1661, 1662, 1660, 1661, 1662, 1248, - 1663, 1663, 1664, 1665, 1666, 1667, 1668, 1668, - 1669, 1670, 1248, 1671, 1671, 1248, 1672, 1672, - 1248, 1673, 1673, 1248, 1674, 1674, 1675, 1676, - 1677, 1678, 1679, 1679, 1680, 1681, 1248, 1682, - 1682, 1683, 1684, 1685, 1686, 1687, 1687, 1688, - 1689, 1248, 1690, 1691, 1692, 1693, 1694, 1695, - 1690, 1691, 1692, 1693, 1694, 1695, 1248, 1696, - 1696, 1248, 1697, 1697, 1248, 1698, 1698, 1248, - 1699, 1699, 1248, 1700, 1700, 1701, 1702, 1703, - 1704, 1705, 1705, 1706, 1707, 1248, 1708, 1708, - 1248, 1709, 1709, 1710, 1711, 1712, 1713, 1714, - 1714, 1715, 1716, 1248, 1717, 1717, 1248, 1718, + 1238, 1232, 1249, 1250, 1251, 1252, 1253, 1254, + 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, + 1263, 1264, 1265, 1266, 1249, 1250, 1251, 1252, + 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, + 1261, 1262, 1263, 1264, 1265, 1266, 1248, 1267, + 1267, 1268, 1269, 1270, 1268, 1269, 1270, 1267, + 1267, 1248, 1271, 1271, 1248, 1272, 1272, 1248, + 1273, 1273, 1273, 1273, 1248, 1274, 1274, 1248, + 1275, 1275, 1248, 1276, 1276, 1248, 1277, 1277, + 1277, 1277, 1248, 1278, 1278, 1248, 1279, 1279, + 1279, 1279, 1248, 1280, 1281, 1282, 1283, 1284, + 1280, 1281, 1282, 1283, 1284, 1248, 1285, 1285, + 1248, 1286, 1286, 1286, 1286, 1248, 1287, 1288, + 1287, 1288, 1248, 1289, 1289, 1248, 1290, 1290, + 1248, 1291, 1291, 1248, 1292, 1292, 1248, 1293, + 1293, 1293, 1293, 1248, 1294, 1294, 1294, 1294, + 1248, 1295, 1295, 1248, 1296, 1296, 1248, 1297, + 1297, 1297, 1297, 1248, 1298, 1298, 1248, 1299, + 1299, 1248, 1300, 1300, 1248, 1301, 1301, 1301, + 1301, 1248, 1302, 1302, 1248, 1303, 1303, 1248, + 1304, 1304, 1248, 1305, 1305, 1305, 1305, 1248, + 1306, 1307, 1308, 1306, 1307, 1308, 1248, 1309, + 1309, 1248, 1310, 1310, 1248, 1311, 1311, 1248, + 1312, 1312, 1312, 1312, 1248, 1313, 1314, 1313, + 1314, 1248, 1315, 1315, 1248, 1316, 1316, 1248, + 1317, 1317, 1317, 1317, 1248, 1318, 1318, 1248, + 1319, 1319, 1248, 1320, 1320, 1248, 1321, 1321, + 1321, 1321, 1248, 1322, 1322, 1323, 1323, 1322, + 1322, 1248, 1324, 1324, 1248, 1325, 1325, 1248, + 1326, 1326, 1326, 1326, 1248, 1327, 1327, 1248, + 1328, 1328, 1248, 1329, 1330, 1248, 1331, 1248, + 1332, 1332, 1332, 1332, 1248, 1333, 1248, 1334, + 1334, 1334, 1334, 1248, 1335, 1336, 1335, 1336, + 1248, 1337, 1337, 1248, 1338, 1338, 1248, 1339, + 1339, 1248, 1340, 1340, 1340, 1340, 1248, 1341, + 1341, 1248, 1342, 1342, 1248, 1343, 1343, 1248, + 1344, 1344, 1344, 1344, 1248, 1345, 1345, 1248, + 1346, 1346, 1248, 1347, 1347, 1248, 1348, 1348, + 1248, 1349, 1349, 1248, 1350, 1350, 1248, 1351, + 1351, 1248, 1352, 1352, 1352, 1352, 1248, 1353, + 1354, 1353, 1354, 1248, 1355, 1355, 1248, 1356, + 1356, 1356, 1356, 1248, 1357, 1357, 1357, 1357, + 1248, 1358, 1359, 1360, 1361, 1360, 1361, 1248, + 1362, 1248, 1363, 1363, 1363, 1363, 1248, 1364, + 1248, 1365, 1365, 1365, 1365, 1248, 1366, 1366, + 1248, 1367, 1367, 1367, 1367, 1248, 1368, 1368, + 1368, 1368, 1248, 1369, 1370, 1369, 1370, 1248, + 1371, 1371, 1248, 1372, 1372, 1248, 1373, 1373, + 1248, 1374, 1374, 1374, 1374, 1248, 1375, 1375, + 1375, 1375, 1248, 1376, 1377, 1378, 1376, 1377, + 1378, 1248, 1379, 1379, 1248, 1380, 1380, 1248, + 1381, 1381, 1248, 1382, 1382, 1382, 1382, 1248, + 1383, 1383, 1248, 1384, 1384, 1384, 1384, 1248, + 1385, 1385, 1386, 1386, 1385, 1385, 1248, 1387, + 1387, 1248, 1388, 1389, 1388, 1388, 1388, 1248, + 1390, 1390, 1391, 1391, 1390, 1390, 1248, 1392, + 1392, 1248, 1393, 1393, 1248, 1394, 1394, 1248, + 1395, 1395, 1248, 1396, 1396, 1396, 1396, 1248, + 1397, 1397, 1248, 1398, 1398, 1248, 1399, 1399, + 1248, 1400, 1400, 1248, 1401, 1401, 1248, 1402, + 1402, 1248, 1403, 1403, 1248, 1404, 1404, 1248, + 1405, 1405, 1248, 1406, 1406, 1406, 1406, 1248, + 1407, 1407, 1248, 1408, 1408, 1248, 1409, 1409, + 1409, 1409, 1248, 1410, 1411, 1412, 1410, 1411, + 1412, 1248, 1413, 1413, 1413, 1413, 1248, 1414, + 1414, 1248, 1415, 1415, 1248, 1416, 1416, 1248, + 1417, 1417, 1417, 1417, 1248, 1418, 1418, 1418, + 1418, 1248, 1419, 1420, 1421, 1422, 1423, 1424, + 1419, 1420, 1421, 1422, 1423, 1424, 1248, 1425, + 1425, 1248, 1426, 1426, 1248, 1427, 1427, 1248, + 1428, 1428, 1248, 1429, 1429, 1429, 1429, 1248, + 1430, 1430, 1248, 1431, 1431, 1431, 1431, 1248, + 1432, 1432, 1248, 1433, 1433, 1433, 1433, 1248, + 1434, 1434, 1248, 1435, 1435, 1435, 1435, 1248, + 1436, 1436, 1248, 1437, 1437, 1248, 1438, 1438, + 1248, 1439, 1439, 1439, 1439, 1248, 1440, 1440, + 1248, 1441, 1441, 1248, 1442, 1442, 1442, 1442, + 1248, 1443, 1444, 1445, 1443, 1444, 1445, 1248, + 1446, 1446, 1248, 1447, 1447, 1248, 1448, 1448, + 1448, 1448, 1248, 1449, 1449, 1248, 1450, 1450, + 1450, 1450, 1248, 1451, 1451, 1248, 1452, 1452, + 1248, 1454, 1453, 1455, 1455, 1455, 1455, 1456, + 1453, 1457, 1457, 1248, 1458, 1458, 1248, 1459, + 1459, 1459, 1459, 1248, 1460, 1460, 1248, 1461, + 1461, 1248, 1462, 1462, 1248, 1463, 1463, 1248, + 1464, 1464, 1248, 1465, 1465, 1465, 1465, 1248, + 1466, 1466, 1248, 1467, 1467, 1248, 1468, 1468, + 1248, 1469, 1469, 1248, 1470, 1470, 1248, 1471, + 1471, 1471, 1471, 1248, 1473, 1473, 1474, 1475, + 1476, 1477, 1478, 1478, 1479, 1480, 1472, 1481, + 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, + 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, + 1497, 1498, 1499, 1500, 1501, 1484, 1485, 1486, + 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, + 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, + 1503, 1504, 1504, 1505, 1506, 1472, 1507, 1507, + 1508, 1509, 1510, 1511, 1512, 1510, 1511, 1512, + 1513, 1514, 1515, 1515, 1516, 1517, 1472, 1518, + 1518, 1472, 1519, 1519, 1472, 1520, 1520, 1521, + 1522, 1523, 1524, 1525, 1525, 1526, 1527, 1472, + 1529, 1528, 1472, 1530, 1531, 1532, 1533, 1534, + 1530, 1531, 1532, 1533, 1534, 1472, 1535, 1535, + 1472, 1536, 1536, 1537, 1538, 1539, 1540, 1541, + 1541, 1542, 1543, 1472, 1544, 1545, 1544, 1545, + 1472, 1546, 1546, 1472, 1547, 1547, 1472, 1548, + 1548, 1472, 1549, 1549, 1472, 1550, 1550, 1551, + 1552, 1553, 1554, 1555, 1555, 1556, 1557, 1472, + 1558, 1558, 1559, 1560, 1561, 1562, 1563, 1563, + 1564, 1565, 1472, 1566, 1566, 1472, 1567, 1567, + 1472, 1568, 1568, 1569, 1570, 1571, 1572, 1573, + 1573, 1574, 1575, 1472, 1576, 1576, 1472, 1577, + 1577, 1472, 1578, 1578, 1472, 1579, 1579, 1580, + 1581, 1582, 1583, 1584, 1584, 1585, 1586, 1472, + 1587, 1587, 1472, 1588, 1588, 1472, 1589, 1589, + 1472, 1590, 1590, 1591, 1592, 1593, 1594, 1595, + 1595, 1596, 1597, 1472, 1598, 1599, 1600, 1598, + 1599, 1600, 1472, 1601, 1601, 1472, 1602, 1602, + 1472, 1603, 1603, 1472, 1604, 1604, 1605, 1606, + 1607, 1608, 1609, 1609, 1610, 1611, 1472, 1612, + 1613, 1612, 1613, 1472, 1614, 1614, 1472, 1615, + 1615, 1472, 1616, 1616, 1617, 1618, 1619, 1620, + 1621, 1621, 1622, 1623, 1472, 1624, 1624, 1472, + 1625, 1625, 1472, 1626, 1626, 1472, 1627, 1627, + 1628, 1629, 1630, 1631, 1632, 1632, 1633, 1634, + 1472, 1635, 1635, 1636, 1637, 1638, 1638, 1639, + 1640, 1641, 1641, 1642, 1643, 1472, 1644, 1644, + 1472, 1645, 1645, 1472, 1646, 1646, 1647, 1648, + 1649, 1650, 1651, 1651, 1652, 1653, 1472, 1654, + 1654, 1472, 1655, 1655, 1472, 1656, 1657, 1472, + 1658, 1472, 1659, 1659, 1660, 1661, 1662, 1663, + 1664, 1664, 1665, 1666, 1472, 1667, 1472, 1668, + 1668, 1669, 1670, 1671, 1672, 1673, 1673, 1674, + 1675, 1472, 1676, 1677, 1676, 1677, 1472, 1678, + 1678, 1472, 1679, 1679, 1472, 1680, 1680, 1472, + 1681, 1681, 1682, 1683, 1684, 1685, 1686, 1686, + 1687, 1688, 1472, 1689, 1689, 1472, 1690, 1690, + 1472, 1691, 1691, 1472, 1692, 1692, 1693, 1694, + 1695, 1696, 1697, 1697, 1698, 1699, 1472, 1700, + 1700, 1472, 1701, 1701, 1472, 1702, 1702, 1472, + 1703, 1703, 1472, 1704, 1704, 1472, 1705, 1705, + 1472, 1706, 1706, 1472, 1707, 1707, 1708, 1709, + 1710, 1711, 1712, 1712, 1713, 1714, 1472, 1715, + 1716, 1715, 1716, 1472, 1717, 1717, 1472, 1718, 1718, 1719, 1720, 1721, 1722, 1723, 1723, 1724, - 1725, 1248, 1726, 1726, 1248, 1727, 1727, 1728, - 1729, 1730, 1731, 1732, 1732, 1733, 1734, 1248, - 1735, 1735, 1248, 1736, 1736, 1248, 1737, 1737, - 1248, 1738, 1738, 1739, 1740, 1741, 1742, 1743, - 1743, 1744, 1745, 1248, 1746, 1746, 1248, 1747, - 1747, 1248, 1748, 1748, 1749, 1750, 1751, 1752, - 1753, 1753, 1754, 1755, 1248, 1756, 1757, 1758, - 1756, 1757, 1758, 1248, 1759, 1759, 1248, 1760, - 1760, 1248, 1761, 1761, 1762, 1763, 1764, 1765, - 1766, 1766, 1767, 1768, 1248, 1769, 1769, 1248, - 1770, 1770, 1771, 1772, 1773, 1774, 1775, 1775, - 1776, 1777, 1248, 1778, 1778, 1248, 1779, 1779, - 1248, 1780, 1248, 1781, 1781, 1782, 1783, 1785, - 1786, 1787, 1787, 1788, 1789, 1784, 1248, 1790, - 1790, 1248, 1791, 1791, 1248, 1792, 1792, 1793, - 1794, 1795, 1796, 1797, 1797, 1798, 1799, 1248, - 1800, 1800, 1248, 1801, 1801, 1248, 1802, 1802, - 1248, 1803, 1803, 1248, 1804, 1804, 1248, 1805, - 1805, 1806, 1807, 1808, 1809, 1810, 1810, 1811, - 1812, 1248, 1813, 1813, 1248, 1814, 1814, 1248, - 1815, 1815, 1248, 1816, 1816, 1248, 1817, 1817, - 1248, 1818, 1818, 1819, 1820, 1821, 1822, 1823, - 1823, 1824, 1825, 1248, 1826, 1826, 1248, 1827, - 1827, 1248, 1828, 1828, 1248, 1829, 1829, 1830, - 1831, 1832, 1833, 1834, 1834, 1835, 1836, 1248, - 1837, 1837, 1248, 1838, 1838, 1839, 1840, 1841, - 1842, 1843, 1843, 1844, 1845, 1248, 1847, 1847, - 1848, 1849, 1850, 1851, 1846, 1847, 1847, 1848, - 1849, 1850, 1851, 1853, 1852, 1854, 1854, 1855, - 1856, 1858, 1859, 1857, 1852, 1861, 1861, 1862, - 1863, 1865, 1866, 1864, 1864, 1864, 1860, 1867, - 1867, 1867, 1860, 1868, 1868, 1869, 1870, 1871, - 1872, 1873, 1873, 1874, 1875, 1864, 1864, 1864, - 1860, 1877, 1876, 1860, 1879, 1878, 1846, 1881, - 1880, 1846, 1882, 1882, 1883, 1884, 1885, 1886, - 1846, 1882, 1882, 1883, 1884, 1887, 1885, 1886, - 1888, 1852, 1889, 1889, 1890, 1891, 1893, 1893, - 1894, 1895, 1892, 1852, 1896, 1896, 1897, 1898, - 1900, 1901, 1899, 1899, 1899, 1860, 1902, 1902, - 1902, 1860, 1903, 1903, 1904, 1905, 1906, 1907, - 1908, 1908, 1909, 1910, 1899, 1899, 1899, 1860, - 1912, 1911, 1860, 1914, 1913, 1846, 1915, 1915, - 1916, 1917, 1918, 1919, 1892, 1852, 1921, 1920, - 1846, 1923, 1924, 1925, 1926, 1927, 1928, 1929, - 1930, 1922, 1931, 1922, 1932, 1922, 1933, 1922, - 1934, 1934, 1934, 1934, 1934, 1934, 1922, 1935, - 1922, 1936, 1922, 1937, 1922, 1938, 1922, 1939, - 1922, 1940, 1922, 1941, 1941, 1941, 1941, 1941, - 1941, 1922, 1942, 1922, 1943, 1922, 1944, 1944, - 1944, 1944, 1944, 1944, 1922, 1945, 1922, 1946, - 1922, 1947, 1948, 1922, 1949, 1922, 1950, 1922, - 1951, 1922, 1952, 1922, 1953, 1953, 1953, 1953, - 1953, 1953, 1922, 1954, 1922, 1955, 1922, 1956, - 1922, 1957, 1922, 1958, 1958, 1958, 1958, 1958, - 1958, 1922, 1959, 1922, 1960, 1922, 1962, 1961, - 1963, 1963, 1963, 1963, 1963, 1963, 1964, 1961, - 1965, 1922, 1966, 1922, 1967, 1922, 1968, 1922, - 1969, 1922, 1970, 1922, 1971, 1922, 1972, 1922, - 1973, 1922, 1974, 1922, 1975, 1922, 1976, 1922, - 1977, 1922, 1978, 1922, 1979, 1979, 1979, 1979, - 1979, 1979, 1922, 1980, 1922, 1981, 1922, 1982, - 1922, 1983, 1922, 1984, 1984, 1984, 1984, 1984, - 1984, 1922, 1985, 1922, 1986, 1922, 1987, 1922, - 1988, 1988, 1988, 1988, 1988, 1988, 1922, 1990, - 1990, 1991, 1992, 1993, 1994, 1995, 1995, 1996, - 1997, 1989, 1998, 1998, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, - 2011, 2012, 2012, 2013, 2014, 1989, 2015, 1989, - 2016, 1989, 2017, 1989, 2018, 1989, 1989, 2020, - 1989, 1989, 1989, 2019, 2021, 2021, 2022, 2023, - 2024, 2025, 2026, 2026, 2027, 2028, 1989, 2030, - 2029, 1989, 2031, 1989, 2032, 1989, 2033, 1989, - 2034, 1989, 2035, 1989, 2036, 1989, 2037, 1989, - 1989, 2039, 1989, 1989, 1989, 2038, 2040, 2040, - 2041, 2042, 2043, 2044, 2045, 2045, 2046, 2047, - 1989, 2040, 2040, 2041, 2042, 2043, 2044, 2045, - 2045, 2046, 2047, 2048, 2048, 2048, 1989, 2049, - 1989, 2050, 2050, 2051, 2052, 2053, 2054, 2055, - 2055, 2056, 2057, 1989, 2058, 1989, 2059, 1989, - 2060, 1989, 2061, 2062, 2062, 2062, 2062, 1989, - 2063, 2063, 2063, 2063, 1989, 2064, 2064, 2064, - 2064, 1989, 2065, 2066, 2065, 2065, 2065, 1989, - 2067, 2068, 2067, 2067, 2067, 1989, 2049, 2069, - 2069, 2069, 2069, 1989, 2068, 1989, 2070, 2070, - 2070, 2070, 1989, 2071, 2072, 2071, 2071, 2071, - 1989, 2073, 2074, 2073, 2073, 2073, 1989, 2040, - 2040, 2041, 2042, 2075, 2043, 2044, 2045, 2045, - 2046, 2047, 2075, 2075, 2075, 1989, 2074, 1989, - 2076, 1989, 2077, 1989, 2078, 2079, 1989, 2080, - 1989, 2081, 1989, 2082, 1989, 2083, 1989, 2084, - 1989, 2086, 2087, 2087, 2085, 2088, 2088, 2085, - 2089, 2090, 2091, 2091, 2085, 2092, 2092, 2085, - 2093, 2093, 2094, 2095, 2096, 2097, 2098, 2099, - 2100, 2100, 2101, 2102, 2097, 2085, 2103, 2103, - 2085, 2104, 1989, 2105, 1989, 2106, 1989, 2107, - 1989, 2108, 1989, 2109, 2110, 2110, 2110, 2110, - 2085, 2111, 2111, 2111, 2111, 2085, 2112, 2113, - 2114, 2114, 2114, 2114, 2085, 2115, 2115, 2115, - 2115, 2085, 2116, 2116, 2117, 2118, 2119, 2120, - 2121, 2122, 2123, 2123, 2124, 2125, 2120, 2120, - 2120, 2085, 2126, 2126, 2126, 2126, 2085, 2127, - 1989, 2128, 1989, 2130, 2129, 2131, 2131, 2132, - 2133, 2135, 2136, 2137, 2138, 2138, 2139, 2140, - 2134, 2129, 1989, 1989, 1989, 1989, 2038, 2141, - 1989, 2142, 1989, 2143, 1989, 2144, 1989, 2145, - 1989, 2146, 1989, 2147, 1989, 2148, 1989, 2149, - 1989, 2150, 2151, 2151, 1989, 2152, 2152, 1989, - 2153, 2154, 1989, 2155, 2155, 1989, 2156, 2156, - 2157, 2158, 2159, 2160, 2161, 2162, 2162, 2163, - 2164, 1989, 2165, 2165, 1989, 2166, 1989, 2167, - 1989, 2168, 1989, 2169, 1989, 2170, 1989, 2171, - 1989, 2172, 1989, 2173, 1989, 2174, 1989, 2175, - 1989, 2176, 1989, 2177, 1989, 2178, 1989, 2179, - 1989, 2180, 2180, 2181, 2182, 2183, 2184, 2185, - 2185, 2186, 2187, 1989, 2188, 1989, 2189, 1989, - 2190, 1989, 2191, 1989, 2192, 2192, 2193, 2194, - 2195, 2196, 2197, 2197, 2198, 2199, 1989, 2200, - 1989, 2201, 1989, 2202, 1989, 2203, 1989, 2204, - 2205, 2129, 2206, 2129, 2207, 2208, 2129, 2209, - 2209, 2210, 2211, 2213, 2214, 2215, 2215, 2216, - 2217, 2212, 2129, 2021, 2021, 2022, 2023, 2024, - 2025, 2026, 2026, 2027, 2028, 2218, 2218, 2218, - 1989, 2219, 1989, 2222, 2223, 2224, 2225, 2226, - 2222, 2223, 2224, 2225, 2226, 2221, 2220, 2227, - 2227, 2227, 2227, 2228, 2220, 2229, 2230, 2229, - 2230, 2220, 2231, 2231, 2231, 2231, 2220, 2232, - 2232, 2220, 2233, 2234, 2233, 2233, 2233, 2220, - 2235, 2235, 2220, 2236, 2236, 2220, 2237, 2237, - 2220, 2238, 2238, 2220, 2239, 2220, 2240, 2220, - 2241, 2241, 2220, 2242, 2242, 2220, 2243, 2243, - 2220, 2244, 2220, 2245, 2245, 2245, 2245, 2220, - 2246, 2247, 2246, 2247, 2220, 2248, 2249, 2248, - 2249, 2220, 2250, 2220, 2251, 2251, 2220, 2252, - 2252, 2220, 2253, 2253, 2220, 2254, 2254, 2220, - 2255, 2255, 2255, 2255, 2220, 2256, 2256, 2220, - 2257, 2257, 2220, 2258, 2258, 2220, 2259, 2260, - 2220, 2261, 2220, 2262, 2220, 2263, 2263, 2220, - 2264, 2264, 2220, 2265, 2265, 2220, 2266, 2220, - 2267, 2220, 2268, 2220, 2269, 2269, 2269, 2269, - 2220, 2270, 2220, 2271, 2220, 2272, 2272, 2220, - 2273, 2273, 2220, 2274, 2274, 2220, 2275, 2220, - 2276, 2220, 2277, 2220, 2278, 2278, 2278, 2278, - 2220, 2279, 2280, 2220, 2281, 2220, 2282, 2220, - 2283, 2220, 2284, 2220, 2285, 2285, 2285, 2285, - 2220, 2286, 2220, 2287, 2220, 2288, 2288, 2288, - 2288, 2220, 2289, 2289, 2220, 2290, 2290, 2220, - 2291, 2291, 2220, 2292, 2292, 2220, 2293, 2293, - 2220, 2294, 2294, 2220, 2295, 2295, 2220, 2296, - 2296, 2296, 2296, 2220, 2297, 2297, 2220, 2298, - 2298, 2220, 2299, 2299, 2220, 2300, 2300, 2220, - 2301, 2301, 2220, 2302, 2302, 2220, 2303, 2304, - 2303, 2304, 2220, 2305, 2305, 2220, 2306, 2306, - 2220, 2307, 2307, 2307, 2307, 2220, 2308, 2308, - 2220, 2309, 2309, 2220, 2310, 2310, 2310, 2310, - 2220, 2311, 2311, 2220, 2312, 2312, 2220, 2313, - 2314, 2313, 2314, 2220, 2315, 2315, 2220, 2316, - 2220, 2317, 2317, 2317, 2317, 2220, 2318, 2318, - 2220, 2319, 2319, 2220, 2320, 2321, 2322, 2220, - 2323, 2324, 2323, 2323, 2323, 2220, 2325, 2325, - 2220, 2326, 2326, 2220, 2327, 2327, 2220, 2328, - 2328, 2220, 2329, 2220, 2330, 2220, 2331, 2331, - 2220, 2332, 2332, 2220, 2333, 2333, 2220, 2334, - 2220, 2335, 2335, 2335, 2335, 2220, 2336, 2220, - 2337, 2220, 2338, 2338, 2338, 2338, 2220, 2339, - 2220, 2340, 2220, 2341, 2341, 2341, 2341, 2220, - 2344, 2345, 2346, 2347, 2348, 2349, 2344, 2345, - 2346, 2347, 2348, 2349, 2343, 2342, 2350, 2350, - 2350, 2350, 2351, 2342, 2352, 2352, 2342, 2353, - 2353, 2342, 2354, 2354, 2342, 2355, 2355, 2342, - 2356, 2356, 2342, 2357, 2357, 2357, 2357, 2342, - 2358, 2359, 2360, 2358, 2359, 2360, 2342, 2361, - 2361, 2342, 2362, 2362, 2342, 2363, 2363, 2342, - 2364, 2364, 2342, 2365, 2365, 2342, 2366, 2366, - 2366, 2366, 2342, 2367, 2368, 2367, 2368, 2342, - 2369, 2369, 2342, 2370, 2370, 2370, 2370, 2342, - 2371, 2371, 2342, 2372, 2372, 2342, 2373, 2373, - 2373, 2373, 2342, 2374, 2374, 2342, 2375, 2375, - 2342, 2376, 2376, 2342, 2377, 2377, 2377, 2377, - 2342, 2378, 2378, 2342, 2379, 2379, 2342, 2380, - 2380, 2380, 2380, 2342, 2381, 2382, 2381, 2382, - 2342, 2383, 2383, 2342, 2384, 2384, 2384, 2384, - 2342, 2385, 2385, 2342, 2386, 2386, 2342, 2387, - 2387, 2387, 2387, 2342, 2388, 2388, 2342, 2389, - 2389, 2342, 2390, 2390, 2342, 2391, 2391, 2391, - 2391, 2342, 2392, 2392, 2342, 2393, 2393, 2342, - 2394, 2394, 2394, 2394, 2342, 2397, 2397, 2396, - 2395, 2398, 2398, 2398, 2398, 2399, 2395, 2400, - 2400, 2395, 2401, 2401, 2395, 2402, 2402, 2395, - 2403, 2403, 2395, 2404, 2404, 2395, 2405, 2405, - 2405, 2405, 2395, 2407, 2407, 2406, 2408, 2409, - 2408, 2408, 2408, 2409, 2406, 2410, 2410, 2410, - 2410, 2410, 2410, 77, 2411, 2411, 2411, 2411, - 77, 2412, 2412, 2412, 2412, 2412, 2412, 77, - 2413, 2413, 2414, 2415, 2416, 2417, 77, 2418, - 2418, 2419, 2420, 2421, 2421, 2421, 2422, 2423, - 2421, 2421, 2421, 77, 2424, 2424, 2425, 2426, - 2427, 2428, 77, 2430, 2430, 2431, 2432, 2434, - 2435, 2433, 2429, 2436, 2436, 2437, 2438, 2440, - 2441, 2439, 2429, 2442, 2442, 2443, 2444, 2446, - 2447, 2445, 2429, 2449, 2449, 2450, 2451, 2453, - 2454, 2455, 2456, 2457, 2453, 2454, 2455, 2456, - 2457, 2458, 2459, 2452, 2448, 2460, 2460, 2461, - 2462, 2464, 2465, 2463, 2429, 2466, 2466, 2467, - 2468, 2470, 2471, 2472, 2473, 2474, 2470, 2471, - 2472, 2473, 2474, 2475, 2476, 2469, 2448, 2477, - 2477, 2478, 2479, 2481, 2482, 2480, 2429, 2483, - 2483, 2484, 2485, 2487, 2488, 2489, 2490, 2491, - 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2486, - 2448, 2494, 2494, 2495, 2496, 2498, 2499, 2497, - 2429, 2500, 2500, 2502, 2503, 2504, 2505, 2506, - 2502, 2503, 2504, 2505, 2506, 2500, 2500, 2501, - 2448, 2500, 2500, 2500, 2500, 2507, 2448, 2509, - 2510, 2511, 2512, 2513, 2509, 2510, 2511, 2512, - 2513, 2508, 2448, 2514, 2514, 2514, 2514, 2515, - 2448, 2517, 2516, 77, 2483, 2483, 2484, 2485, - 2492, 2493, 2518, 2448, 2520, 2521, 2522, 2523, - 2524, 2520, 2521, 2522, 2523, 2524, 2519, 2448, - 2525, 2525, 2526, 2527, 2529, 2530, 2528, 2448, - 2532, 2531, 77, 2466, 2466, 2467, 2468, 2475, - 2476, 2533, 2448, 2535, 2536, 2537, 2538, 2539, - 2535, 2536, 2537, 2538, 2539, 2534, 2448, 2540, - 2540, 2541, 2542, 2544, 2545, 2543, 2448, 2547, - 2546, 77, 2449, 2449, 2450, 2451, 2458, 2459, - 2548, 2448, 2550, 2551, 2552, 2553, 2554, 2550, - 2551, 2552, 2553, 2554, 2549, 2448, 2555, 2555, - 2556, 2557, 2559, 2560, 2558, 2448, 2562, 2561, - 77, 2564, 2563, 77, 2566, 2565, 77, 77, - 77, 77, 77, 2567, 2568, 2568, 2569, 2570, - 2571, 2572, 77, 2574, 2574, 2575, 2576, 2577, - 2578, 2573, 2573, 2573, 77, 2579, 2579, 2579, - 2579, 77, 2581, 2580, 77, 2582, 2582, 2582, - 2582, 2582, 2582, 77, 2583, 2583, 2584, 2585, - 2586, 2587, 77, 2588, 2588, 2589, 2590, 2591, - 2591, 2591, 2592, 2593, 2591, 2591, 2591, 77, - 2594, 2594, 2594, 2594, 77, 2596, 2595, 77, - 2597, 2429, 2598, 2598, 2599, 2600, 2602, 2603, - 2601, 2429, 2604, 2604, 2605, 2606, 2607, 2607, - 2607, 2608, 2609, 2607, 2607, 2607, 77, 2610, - 2610, 2610, 2610, 77, 2612, 2611, 77, 2614, - 2614, 2614, 2614, 2613, 2615, 2615, 2616, 2617, - 2618, 2619, 2620, 2620, 2621, 2622, 2614, 2624, - 2624, 2625, 2626, 2627, 2628, 2629, 2629, 2630, - 2631, 2623, 2623, 2623, 2614, 2633, 2632, 2614, - 2634, 2634, 2634, 2634, 2406, 2635, 2636, 2635, - 2635, 2635, 2636, 2636, 2636, 2406, 2638, 2637, - 2639, 2639, 2640, 2641, 2643, 2644, 2642, 2637, - 2645, 2645, 2646, 2647, 2649, 2650, 2651, 2652, - 2648, 2637, 2653, 2653, 2654, 2655, 2657, 2658, - 2656, 2637, 2659, 2659, 2660, 2661, 2649, 2650, - 2663, 2664, 2662, 2637, 2665, 2665, 2666, 2667, - 2668, 2670, 2671, 2669, 2637, 2672, 2672, 2673, - 2674, 2649, 2650, 2675, 2676, 2637, 2677, 2677, - 2678, 2679, 2680, 2681, 2637, 2677, 2677, 2678, - 2679, 2680, 2681, 2682, 2637, 2683, 2683, 2684, - 2685, 2687, 2688, 2686, 2637, 2689, 2689, 2690, - 2691, 2693, 2694, 2695, 2696, 2692, 2637, 2697, - 2697, 2698, 2699, 2701, 2702, 2700, 2637, 2703, - 2703, 2704, 2705, 2693, 2694, 2707, 2708, 2706, - 2637, 2709, 2709, 2710, 2711, 2712, 2714, 2715, - 2713, 2637, 2716, 2716, 2717, 2718, 2693, 2694, - 2719, 2720, 2637, 2721, 2721, 2722, 2723, 2724, - 2725, 2637, 2721, 2721, 2722, 2723, 2726, 2724, - 2725, 2727, 2637, 2728, 2637, 2729, 2729, 2730, - 2731, 2732, 2734, 2735, 2736, 2737, 2737, 2738, - 2739, 2733, 2637, 2740, 2740, 2741, 2742, 2744, - 2745, 2746, 2746, 2747, 2748, 2743, 2637, 2749, - 2749, 2750, 2751, 2752, 2754, 2755, 2756, 2757, - 2757, 2758, 2759, 2753, 2637, 2760, 2760, 2761, - 2762, 2764, 2765, 2746, 2746, 2766, 2767, 2763, - 2637, 2768, 2768, 2769, 2770, 2771, 2773, 2774, - 2775, 2776, 2776, 2777, 2778, 2772, 2637, 2779, - 2779, 2780, 2781, 2783, 2784, 2746, 2746, 2785, - 2786, 2782, 2637, 2787, 2787, 2788, 2789, 2790, - 2787, 2792, 2793, 2794, 2794, 2795, 2796, 2791, - 2637, 2797, 2797, 2798, 2799, 2800, 2801, 2746, - 2746, 2802, 2803, 2637, 2805, 2804, 2637, 2806, - 2806, 2807, 2808, 2806, 2810, 2811, 2812, 2812, - 2813, 2814, 2809, 2637, 2787, 2787, 2788, 2789, - 2787, 2792, 2793, 2794, 2794, 2795, 2796, 2815, - 2637, 2817, 2816, 2637, 2818, 2818, 2819, 2820, - 2822, 2823, 2824, 2825, 2825, 2826, 2827, 2821, - 2637, 2768, 2768, 2769, 2770, 2773, 2774, 2775, - 2776, 2776, 2777, 2778, 2828, 2637, 2779, 2779, - 2780, 2781, 2783, 2784, 2746, 2746, 2785, 2786, - 2637, 2830, 2829, 2637, 2831, 2831, 2832, 2833, - 2835, 2836, 2837, 2838, 2838, 2839, 2840, 2834, - 2637, 2749, 2749, 2750, 2751, 2754, 2755, 2756, - 2757, 2757, 2758, 2759, 2841, 2637, 2760, 2760, - 2761, 2762, 2764, 2765, 2746, 2746, 2766, 2767, - 2637, 2843, 2842, 2637, 2844, 2844, 2845, 2846, - 2848, 2849, 2850, 2851, 2851, 2852, 2853, 2847, - 2637, 2729, 2729, 2730, 2731, 2734, 2735, 2736, - 2737, 2737, 2738, 2739, 2854, 2637, 2740, 2740, - 2741, 2742, 2744, 2745, 2746, 2746, 2747, 2748, - 2637, 2856, 2855, 2637, 2857, 2857, 2858, 2859, - 2860, 2861, 2637, 2863, 2862, 2637, 2864, 2864, - 2865, 2866, 2868, 2869, 2867, 2637, 2709, 2709, - 2710, 2711, 2714, 2715, 2870, 2637, 2872, 2871, - 2637, 2874, 2873, 2637, 2876, 2875, 2637, 2877, - 2877, 2878, 2879, 2880, 2881, 2637, 2883, 2882, - 2637, 2884, 2884, 2885, 2886, 2888, 2889, 2887, - 2637, 2665, 2665, 2666, 2667, 2670, 2671, 2890, - 2637, 2892, 2891, 2637, 2894, 2893, 2637, 2895, - 2429, 2896, 2896, 2897, 2898, 2900, 2901, 2899, - 2429, 2902, 2902, 2903, 2904, 2906, 2907, 2905, - 2429, 2908, 2908, 2909, 2910, 2912, 2913, 2911, - 2429, 2914, 2914, 2915, 2916, 2918, 2919, 2917, - 2429, 2920, 2920, 2921, 2922, 2924, 2925, 2923, - 2429, 2926, 2926, 2927, 2928, 2929, 2929, 2929, - 2930, 2931, 2929, 2929, 2929, 77, 2932, 2932, - 2932, 2932, 77, 2934, 2933, 77, 2936, 2935, - 77, 2938, 2937, 77, 2939, 2429, 2940, 2940, - 2941, 2942, 2944, 2945, 2943, 2429, 2946, 2946, - 2947, 2948, 2950, 2951, 2949, 2429, 2952, 2952, - 2953, 2954, 2956, 2957, 2955, 2429, 2959, 2959, - 2960, 2961, 2962, 2963, 2958, 2958, 2958, 77, - 2964, 2964, 2965, 2966, 2967, 2968, 77, 2970, - 2970, 2971, 2972, 2973, 2974, 2969, 2969, 2969, - 77, 2975, 2975, 2976, 2977, 2978, 2979, 77, - 2981, 2981, 2982, 2983, 2984, 2985, 2980, 2980, - 2980, 77, 2986, 2986, 2987, 2988, 2989, 2990, - 77, 2991, 2991, 2992, 2993, 2994, 2994, 2994, - 2995, 2996, 2994, 2994, 2994, 77, 2997, 2997, - 2997, 2997, 77, 2999, 2998, 77, 3001, 3000, - 77, 3003, 3002, 77, 3005, 3004, 77, 3007, - 3006, 77, 3008, 3008, 3008, 77, 3009, 3009, - 3010, 3011, 3012, 3013, 77, 3009, 3009, 3010, - 3011, 3012, 3013, 3014, 2429, 3015, 3015, 3016, - 3017, 3019, 3020, 3018, 2429, 3021, 3021, 3022, - 3023, 3025, 3026, 3024, 3024, 3024, 77, 3027, - 3027, 3028, 3029, 3030, 3031, 77, 3027, 3027, - 3028, 3029, 3032, 3030, 3031, 3032, 3032, 3032, - 77, 3033, 3033, 77, 3035, 3034, 77, 3037, - 3036, 77, 3039, 3038, 77, 3041, 3041, 3042, - 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3049, - 3050, 3051, 3040, 3052, 3053, 3040, 3054, 3040, - 3056, 3056, 3055, 3058, 3057, 3055, 3059, 3040, - 3060, 3060, 3061, 3062, 3064, 3065, 3066, 3066, - 3067, 3068, 3063, 3040, 3070, 3069, 77, 3071, - 3040, 3072, 3072, 3072, 3072, 3055, 3074, 3073, - 3073, 3073, 3055, 3075, 2429, 3076, 3076, 3077, - 3078, 3080, 3081, 3079, 2429, 3082, 3082, 3083, - 3084, 3086, 3087, 3085, 3085, 3085, 77, 3088, - 3088, 3089, 3090, 3091, 3092, 77, 3088, 3088, - 3089, 3090, 3091, 3092, 3093, 2429, 3094, 3094, - 3095, 3096, 3098, 3099, 3097, 2429, 3101, 3101, - 3102, 3103, 3105, 3106, 3104, 3104, 3104, 3100, - 3107, 3107, 3107, 3100, 3108, 3108, 3109, 3110, - 3111, 3112, 3113, 3113, 3114, 3115, 3104, 3104, - 3104, 3100, 3117, 3116, 3100, 3119, 3118, 77, - 3121, 3120, 77, 3123, 3122, 77, 3124, 2429, - 3125, 3125, 3126, 3127, 3129, 3130, 3128, 2429, - 3131, 3131, 3132, 3133, 3135, 3136, 3134, 2429, - 3137, 3137, 3138, 3139, 3141, 3142, 3140, 2429, - 3143, 3143, 3144, 3145, 3147, 3148, 3146, 3146, - 3146, 3100, 3149, 3149, 3149, 3100, 3150, 3150, - 3151, 3152, 3153, 3154, 3155, 3155, 3156, 3157, - 3146, 3146, 3146, 3100, 3159, 3158, 3100, 3161, - 3160, 77, 3163, 3162, 77, 3164, 2429, 3165, - 3165, 3166, 3167, 3169, 3170, 3168, 2429, 3172, - 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, - 3180, 3171, 3181, 3181, 3182, 3183, 3184, 3185, - 3171, 3181, 3181, 3182, 3183, 3184, 3185, 3187, - 3186, 3188, 3188, 3189, 3190, 3192, 3193, 3191, - 3186, 3194, 3194, 3195, 3196, 3197, 3198, 3199, - 3171, 3201, 3201, 3202, 3203, 3204, 3204, 3205, - 3206, 3207, 3207, 3208, 3209, 3210, 3210, 3210, - 3210, 3211, 3212, 3210, 3210, 3213, 3214, 3215, - 3216, 3210, 3210, 3217, 3218, 3219, 3220, 3210, - 3210, 3221, 3222, 3200, 3201, 3201, 3202, 3203, - 3224, 3211, 3212, 3224, 3224, 3224, 3223, 3210, - 3210, 3223, 3226, 3225, 3223, 3204, 3204, 3205, - 3206, 3210, 3210, 3210, 3210, 3215, 3216, 3210, - 3210, 3217, 3218, 3223, 3228, 3227, 3223, 3224, - 3201, 3201, 3202, 3203, 3204, 3204, 3205, 3206, - 3207, 3207, 3208, 3209, 3210, 3210, 3210, 3210, - 3211, 3212, 3210, 3210, 3213, 3214, 3215, 3216, - 3210, 3210, 3217, 3218, 3219, 3220, 3210, 3210, - 3221, 3222, 3224, 3224, 3224, 3223, 3226, 3228, - 3230, 3225, 3227, 3229, 3223, 3232, 3231, 3171, - 3234, 3233, 3171, 3235, 3235, 3236, 3237, 3238, - 3239, 3171, 3235, 3235, 3236, 3237, 3238, 3239, - 3240, 3186, 3241, 3241, 3242, 3243, 3245, 3246, - 3244, 3186, 3248, 3248, 3249, 3250, 3251, 3252, - 3253, 3251, 3247, 3255, 3256, 3256, 3257, 3258, - 3259, 3259, 3260, 3261, 3262, 3262, 3263, 3264, - 3265, 3265, 3265, 3265, 3266, 3267, 3265, 3265, - 3268, 3269, 3270, 3271, 3265, 3265, 3272, 3273, - 3274, 3275, 3265, 3265, 3276, 3277, 3255, 3254, - 3279, 3278, 3171, 3281, 3280, 3171, 3282, 3282, - 3283, 3284, 3285, 3286, 3171, 3282, 3282, 3283, - 3284, 3285, 3286, 3287, 3186, 3288, 3288, 3289, - 3290, 3292, 3293, 3291, 3186, 3294, 3294, 3295, - 3296, 3297, 3298, 3299, 3297, 3297, 3297, 3247, - 3300, 3301, 3301, 3302, 3303, 3304, 3304, 3305, - 3306, 3307, 3307, 3308, 3309, 3310, 3310, 3310, - 3310, 3311, 3312, 3310, 3310, 3313, 3314, 3315, - 3316, 3310, 3310, 3317, 3318, 3319, 3320, 3310, - 3310, 3321, 3322, 3300, 3300, 3300, 3254, 3324, - 3323, 3171, 3326, 3325, 3171, 3327, 3327, 3328, - 3329, 3330, 3331, 3171, 3327, 3327, 3328, 3329, - 3330, 3331, 3332, 3186, 3333, 3333, 3334, 3335, - 3337, 3338, 3336, 3186, 3339, 3339, 3340, 3341, - 3342, 3342, 3342, 3343, 3344, 3342, 3342, 3342, - 3171, 3345, 3345, 3346, 3347, 3348, 3348, 3349, - 3350, 3351, 3351, 3352, 3353, 3354, 3354, 3354, - 3354, 3355, 3356, 3354, 3354, 3357, 3358, 3359, - 3360, 3354, 3354, 3361, 3362, 3363, 3364, 3354, - 3354, 3365, 3366, 3200, 3368, 3367, 3171, 3370, - 3369, 3171, 3372, 3371, 77, 3374, 3375, 3376, - 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, - 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3374, - 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, - 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, - 3391, 3373, 3392, 3392, 3393, 3394, 3395, 3396, - 3397, 3395, 3396, 3397, 3398, 3399, 3373, 3400, - 3400, 3401, 3402, 3404, 3405, 3403, 3403, 3403, - 77, 3406, 3406, 3407, 3408, 3409, 3410, 77, - 3406, 3406, 3407, 3408, 3409, 3410, 3411, 2429, - 3412, 3412, 3413, 3414, 3416, 3417, 3415, 2429, - 3418, 3418, 3419, 3420, 3422, 3423, 3421, 2429, - 3424, 3424, 3425, 3426, 3428, 3429, 3427, 2429, - 3431, 3431, 3432, 3433, 3435, 3436, 3434, 3430, - 3437, 3437, 3438, 3439, 3441, 3442, 3440, 3430, - 3443, 3443, 3444, 3445, 3447, 3448, 3446, 3430, - 3449, 3449, 3450, 3451, 3453, 3454, 3452, 3430, - 3455, 3455, 3456, 3457, 3459, 3460, 3458, 2429, - 3461, 3461, 3462, 3463, 3465, 3466, 3464, 2429, - 3467, 3467, 3468, 3469, 3470, 3470, 3470, 3471, - 3472, 3470, 3470, 3470, 77, 3473, 3473, 3474, - 3475, 3476, 3477, 77, 3478, 3478, 3479, 3480, - 3481, 3482, 3483, 3481, 3481, 3481, 77, 3484, - 3484, 77, 3486, 3485, 77, 3488, 3487, 77, - 3490, 3489, 77, 3492, 3491, 77, 3494, 3493, - 77, 3496, 3495, 77, 3498, 3497, 77, 3500, - 3499, 77, 3501, 3501, 3373, 3502, 3502, 3373, - 3503, 3503, 3504, 3505, 3506, 3507, 3373, 3508, - 3508, 3373, 3509, 3509, 3373, 3510, 3510, 3373, - 3511, 3511, 3512, 3513, 3514, 3515, 3373, 3516, - 3516, 3373, 3517, 3517, 3518, 3519, 3520, 3521, - 3373, 3522, 3523, 3524, 3525, 3526, 3522, 3523, - 3524, 3525, 3526, 3373, 3527, 3527, 3373, 3528, - 3528, 3529, 3530, 3531, 3532, 3373, 3533, 3534, - 3533, 3534, 3373, 3535, 3535, 3373, 3536, 3536, - 3373, 3537, 3537, 3373, 3538, 3538, 3373, 3539, - 3539, 3540, 3541, 3542, 3543, 3373, 3544, 3544, - 3545, 3546, 3547, 3548, 3373, 3549, 3549, 3373, - 3550, 3550, 3373, 3551, 3551, 3552, 3553, 3554, - 3555, 3373, 3556, 3556, 3373, 3557, 3557, 3373, - 3558, 3558, 3373, 3559, 3559, 3560, 3561, 3562, - 3563, 3373, 3564, 3564, 3373, 3565, 3565, 3373, - 3566, 3566, 3373, 3567, 3567, 3568, 3569, 3570, - 3571, 3373, 3572, 3573, 3574, 3572, 3573, 3574, - 3373, 3575, 3575, 3373, 3576, 3576, 3373, 3577, - 3577, 3373, 3578, 3578, 3579, 3580, 3581, 3582, - 3373, 3583, 3584, 3583, 3584, 3373, 3585, 3585, - 3373, 3586, 3586, 3373, 3587, 3587, 3588, 3589, - 3590, 3591, 3373, 3592, 3592, 3373, 3593, 3593, - 3373, 3594, 3594, 3373, 3595, 3595, 3596, 3597, - 3598, 3599, 3373, 3600, 3600, 3601, 3602, 3603, - 3603, 3604, 3605, 3373, 3606, 3606, 3373, 3607, - 3607, 3373, 3608, 3608, 3609, 3610, 3611, 3612, - 3373, 3613, 3613, 3373, 3614, 3614, 3373, 3615, - 3616, 3373, 3617, 3373, 3618, 3618, 3619, 3620, - 3621, 3622, 3373, 3623, 3373, 3624, 3624, 3625, - 3626, 3627, 3628, 3373, 3629, 3630, 3629, 3630, - 3373, 3631, 3631, 3373, 3632, 3632, 3373, 3633, - 3633, 3373, 3634, 3634, 3635, 3636, 3637, 3638, - 3373, 3639, 3639, 3373, 3640, 3640, 3373, 3641, - 3641, 3373, 3642, 3642, 3643, 3644, 3645, 3646, - 3373, 3647, 3647, 3373, 3648, 3648, 3373, 3649, - 3649, 3373, 3650, 3650, 3373, 3651, 3651, 3373, - 3652, 3652, 3373, 3653, 3653, 3373, 3654, 3654, - 3655, 3656, 3657, 3658, 3373, 3659, 3660, 3659, - 3660, 3373, 3661, 3661, 3373, 3662, 3662, 3663, - 3664, 3665, 3666, 3373, 3667, 3667, 3668, 3669, - 3670, 3671, 3373, 3672, 3673, 3674, 3675, 3674, - 3675, 3373, 3676, 3373, 3677, 3677, 3678, 3679, - 3680, 3681, 3373, 3682, 3373, 3683, 3683, 3684, - 3685, 3686, 3687, 3373, 3688, 3688, 3373, 3689, - 3689, 3690, 3691, 3692, 3693, 3373, 3694, 3694, - 3695, 3696, 3697, 3698, 3373, 3699, 3700, 3699, - 3700, 3373, 3701, 3701, 3373, 3702, 3702, 3373, - 3703, 3703, 3373, 3704, 3704, 3705, 3706, 3707, - 3708, 3373, 3709, 3709, 3710, 3711, 3712, 3713, - 3373, 3714, 3715, 3716, 3714, 3715, 3716, 3373, - 3717, 3717, 3373, 3718, 3718, 3373, 3719, 3719, - 3373, 3720, 3720, 3721, 3722, 3723, 3724, 3373, - 3725, 3725, 3373, 3726, 3726, 3727, 3728, 3729, - 3730, 3373, 3731, 3731, 3732, 3733, 3734, 3734, - 3735, 3736, 3373, 3737, 3737, 3373, 3738, 3738, - 3739, 3740, 3741, 3742, 3743, 3373, 3744, 3744, - 3745, 3746, 3747, 3747, 3748, 3749, 3373, 3750, - 3750, 3373, 3751, 3751, 3373, 3752, 3752, 3373, - 3753, 3753, 3373, 3754, 3754, 3755, 3756, 3757, - 3758, 3373, 3759, 3759, 3373, 3760, 3760, 3373, - 3761, 3761, 3373, 3762, 3762, 3373, 3763, 3763, - 3373, 3764, 3764, 3373, 3765, 3765, 3373, 3766, - 3766, 3373, 3767, 3767, 3373, 3768, 3768, 3769, - 3770, 3771, 3772, 3373, 3773, 3773, 3373, 3774, - 3774, 3373, 3775, 3775, 3776, 3777, 3778, 3779, - 3373, 3780, 3781, 3782, 3780, 3781, 3782, 3373, - 3783, 3783, 3784, 3785, 3786, 3787, 3373, 3788, - 3788, 3373, 3789, 3789, 3373, 3790, 3790, 3373, - 3791, 3791, 3792, 3793, 3794, 3795, 3373, 3796, - 3796, 3797, 3798, 3799, 3800, 3373, 3801, 3802, - 3803, 3804, 3805, 3806, 3801, 3802, 3803, 3804, - 3805, 3806, 3373, 3807, 3807, 3373, 3808, 3808, - 3373, 3809, 3809, 3373, 3810, 3810, 3373, 3811, - 3811, 3812, 3813, 3814, 3815, 3373, 3816, 3816, - 3373, 3817, 3817, 3818, 3819, 3820, 3821, 3373, - 3822, 3822, 3373, 3823, 3823, 3824, 3825, 3826, - 3827, 3373, 3828, 3828, 3373, 3829, 3829, 3830, - 3831, 3832, 3833, 3373, 3834, 3834, 3373, 3835, - 3835, 3373, 3836, 3836, 3373, 3837, 3837, 3838, - 3839, 3840, 3841, 3373, 3842, 3842, 3373, 3843, - 3843, 3373, 3844, 3844, 3845, 3846, 3847, 3848, - 3373, 3849, 3850, 3851, 3849, 3850, 3851, 3373, - 3852, 3852, 3373, 3853, 3853, 3373, 3854, 3854, - 3855, 3856, 3857, 3858, 3373, 3859, 3859, 3373, - 3860, 3860, 3861, 3862, 3863, 3864, 3373, 3865, - 3865, 3373, 3866, 3866, 3373, 3868, 3867, 3869, - 3869, 3870, 3871, 3873, 3874, 3872, 3867, 3875, - 3875, 3373, 3876, 3876, 3373, 3877, 3877, 3878, - 3879, 3880, 3881, 3373, 3882, 3882, 3373, 3883, - 3883, 3373, 3884, 3884, 3373, 3885, 3885, 3373, - 3886, 3886, 3373, 3887, 3887, 3888, 3889, 3890, - 3891, 3373, 3892, 3892, 3373, 3893, 3893, 3373, - 3894, 3894, 3373, 3895, 3895, 3373, 3896, 3896, - 3373, 3897, 3897, 3898, 3899, 3900, 3901, 3373, - 3902, 3902, 3902, 3902, 3902, 3902, 77, 3903, - 3903, 3903, 3903, 77, 3904, 3904, 3904, 3904, - 77, 3905, 2429, 3906, 3906, 3907, 3908, 3910, - 3911, 3909, 2429, 3912, 3912, 3913, 3914, 3916, - 3917, 3915, 2429, 3918, 3918, 3919, 3920, 3922, - 3923, 3921, 2429, 3924, 3924, 3925, 3926, 3928, - 3929, 3927, 3927, 3927, 77, 3930, 3930, 3931, - 3932, 3933, 3934, 77, 3930, 3930, 3931, 3932, - 3935, 3933, 3934, 3935, 3935, 3935, 77, 3936, - 3936, 77, 3938, 3937, 77, 3940, 3939, 77, - 3942, 3941, 77, 3943, 3943, 3943, 3943, 77, - 3944, 3944, 77, 3945, 2429, 3946, 3946, 3947, - 3948, 3950, 3951, 3949, 2429, 3952, 3952, 3953, - 3954, 3956, 3957, 3955, 2429, 3958, 3958, 3959, - 3960, 3962, 3963, 3961, 2429, 3964, 3964, 3965, - 3966, 3968, 3969, 3967, 2429, 3970, 3970, 3971, - 3972, 3974, 3975, 3973, 2429, 3976, 3976, 3977, - 3978, 3979, 3981, 3982, 3980, 3980, 3980, 3100, - 3983, 3983, 3984, 3985, 3986, 3987, 3100, 3989, - 3989, 3990, 3991, 3993, 3994, 3992, 3992, 3992, - 3988, 3995, 3995, 3995, 3988, 3997, 3996, 3996, - 3996, 3988, 3998, 3998, 3998, 3988, 4000, 3999, - 3999, 3999, 3988, 4002, 4001, 4001, 4001, 3988, - 4003, 4003, 4003, 3988, 4005, 4004, 4004, 4004, - 3988, 4006, 4006, 4006, 4006, 4007, 4007, 4007, - 3988, 4008, 4008, 4008, 4008, 77, 4009, 3988, - 4005, 3988, 4002, 3988, 4010, 3988, 4000, 3988, - 4012, 4011, 77, 4013, 4013, 4013, 3100, 3983, - 3983, 3984, 3985, 3986, 3987, 4014, 4014, 4014, - 3100, 4016, 4015, 77, 4018, 4017, 77, 4020, - 4019, 77, 4021, 2429, 4022, 4022, 4023, 4024, - 4026, 4027, 4025, 2429, 4028, 4028, 4029, 4030, - 4032, 4033, 4031, 2429, 4034, 4034, 4035, 4036, - 4038, 4039, 4037, 2429, 4040, 4040, 4041, 4042, - 4044, 4045, 4043, 2429, 4046, 4046, 4047, 4048, - 4050, 4051, 4049, 2429, 4052, 4052, 4053, 4054, - 4055, 4057, 4058, 4056, 4056, 4056, 3100, 4059, - 4059, 4059, 4059, 3100, 4060, 4060, 4060, 3100, - 4059, 4059, 4059, 4059, 4061, 4061, 4061, 3100, - 4063, 4062, 77, 4065, 4064, 77, 4067, 4066, - 77, 4068, 2429, 4069, 4069, 4070, 4071, 4073, - 4074, 4072, 2429, 4075, 4075, 4076, 4077, 4079, - 4080, 4078, 2429, 4081, 4081, 4082, 4083, 4085, - 4086, 4084, 2429, 4087, 4087, 4088, 4089, 4091, - 4092, 4090, 2429, 4093, 4093, 4094, 4095, 4097, - 4098, 4096, 2429, 4099, 4099, 4100, 4101, 4103, - 4104, 4102, 4102, 4102, 3100, 4105, 4105, 4105, - 3100, 4106, 4106, 4107, 4108, 4109, 4110, 4111, - 4111, 4112, 4113, 4102, 4102, 4102, 3100, 4115, - 4114, 3100, 4117, 4116, 77, 4119, 4118, 77, - 4121, 4120, 77, 4122, 2429, 4123, 4123, 4124, - 4125, 4127, 4128, 4126, 2429, 4129, 4129, 4130, - 4131, 4133, 4134, 4132, 2429, 4135, 4135, 4135, - 4135, 4136, 2429, 4137, 4137, 4137, 4137, 77, - 4139, 4138, 77, 4140, 2429, 4141, 4141, 4142, - 4143, 4145, 4146, 4144, 2429, 4147, 4147, 4148, - 4149, 4151, 4152, 4150, 2429, 4153, 4153, 4154, - 4155, 4157, 4158, 4156, 2429, 4159, 4159, 4160, - 4161, 4163, 4164, 4162, 2429, 4165, 4165, 4166, - 4167, 4169, 4170, 4168, 2429, 4171, 4171, 4172, - 4173, 4175, 4176, 4174, 4174, 4174, 3100, 4177, - 4177, 4177, 3100, 4178, 4178, 4179, 4180, 4181, - 4182, 4183, 4183, 4184, 4185, 4174, 4174, 4174, - 3100, 4187, 4186, 3100, 4189, 4188, 77, 4191, - 4190, 77, 4193, 4192, 77, 4194, 2429, 4195, - 4195, 4196, 4197, 4199, 4200, 4198, 2429, 4201, - 4201, 4202, 4203, 4204, 4205, 4206, 4204, 2406, - 4207, 4208, 4207, 4207, 4207, 4208, 2406, 4210, - 4209, 77, 4211, 2429, 4212, 4212, 4213, 4214, - 4216, 4217, 4215, 2429, 4218, 4218, 4219, 4220, - 4222, 4223, 4221, 4221, 4221, 3100, 4224, 4224, - 4224, 3100, 4225, 4225, 4225, 3100, 4226, 4226, - 4226, 3100, 4228, 4227, 4229, 4229, 4229, 3100, - 4230, 4230, 4230, 3100, 4231, 4231, 4231, 3100, - 4232, 4232, 4232, 3100, 4234, 4228, 4234, 4234, - 4234, 4233, 4236, 4235, 77, 4237, 4237, 4237, - 3100, 4238, 4238, 4238, 3100, 4240, 4239, 4241, - 4241, 4241, 3100, 4242, 4242, 4242, 3100, 4243, - 4240, 4243, 4243, 4243, 4239, 4244, 4244, 4244, - 3100, 4245, 4245, 4245, 3100, 4246, 4239, 4247, - 4247, 4247, 3100, 4248, 4248, 4248, 3100, 4249, - 4246, 4249, 4249, 4249, 4239, 4250, 2429, 4251, - 4251, 4252, 4253, 4255, 4256, 4254, 2429, 4257, - 4257, 4258, 4259, 4261, 4262, 4260, 2429, 4263, - 4263, 4264, 4265, 4267, 4268, 4266, 2429, 4270, - 4270, 4271, 4272, 4273, 4274, 4269, 4269, 4269, - 77, 4275, 4275, 4275, 4275, 77, 4277, 4276, - 77, 4279, 4278, 77, 4280, 2429, 4281, 4281, - 4282, 4283, 4285, 4286, 4284, 2429, 4288, 4288, - 4289, 4290, 4291, 4292, 4287, 4287, 4287, 77, - 4293, 4293, 4294, 4295, 4296, 4297, 77, 4299, - 4299, 4300, 4301, 4302, 4303, 4298, 4298, 4298, - 77, 4304, 4304, 4304, 4304, 77, 4306, 4305, - 77, 4308, 4307, 77, 4309, 2429, 4310, 4310, - 4311, 4312, 4314, 4315, 4313, 2429, 4316, 4316, - 4317, 4318, 4319, 4319, 4319, 4320, 4321, 4319, - 4319, 4319, 77, 4322, 4322, 4322, 4322, 77, - 4323, 4323, 4323, 4323, 77, 4325, 4324, 77, - 4326, 4327, 4326, 4327, 3373, 4328, 4329, 4328, - 4329, 3373, 4330, 4330, 3373, 4331, 4331, 4332, - 4333, 4334, 4335, 3373, 4336, 4336, 4337, 4338, - 4340, 4341, 4339, 4339, 4339, 77, 4342, 4342, - 4343, 4344, 4345, 4346, 77, 4342, 4342, 4343, - 4344, 4345, 4346, 4347, 2429, 4348, 4348, 4349, - 4350, 4352, 4353, 4351, 2429, 4354, 4354, 4355, - 4356, 4357, 4357, 4357, 4358, 4359, 4357, 4357, - 4357, 77, 4360, 4360, 4360, 4360, 77, 4362, - 4361, 77, 4364, 4363, 77, 4366, 4365, 77, - 4367, 4367, 3373, 4368, 4368, 3373, 4369, 4369, - 3373, 4370, 4370, 4371, 4372, 4373, 4374, 3373, - 4375, 4375, 3373, 4376, 4376, 3373, 4377, 4377, - 3373, 4378, 3867, 4379, 4379, 4380, 4381, 4383, - 4384, 4382, 3867, 4386, 4386, 4387, 4388, 4389, - 4390, 4390, 4390, 4391, 4392, 4393, 4394, 4390, - 4390, 4390, 4385, 4395, 4395, 4396, 4397, 4398, - 4399, 75, 4400, 4399, 4391, 4392, 4401, 4402, - 4403, 4404, 4405, 4406, 75, 75, 4399, 75, - 4399, 75, 4399, 75, 900, 4408, 4408, 4387, - 4409, 4410, 4390, 4411, 4412, 4413, 4414, 4415, - 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, - 4424, 4425, 4426, 4427, 4428, 4390, 4390, 4411, - 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, - 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, - 4428, 4391, 4392, 4429, 4430, 4390, 4390, 4390, - 4407, 4408, 4408, 4387, 4409, 4410, 4390, 4433, - 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, - 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, - 4450, 4390, 4390, 4433, 4434, 4435, 4436, 4437, - 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, - 4446, 4447, 4448, 4449, 4450, 4391, 4392, 4429, - 4430, 4390, 4432, 4390, 4390, 4431, 4452, 4452, - 4453, 4454, 4455, 4456, 4456, 4456, 4457, 4458, - 4459, 4460, 4456, 4456, 4456, 4451, 4386, 4386, - 4387, 4461, 4462, 4390, 4433, 4434, 4435, 4436, - 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, - 4445, 4446, 4447, 4448, 4449, 4450, 4390, 4390, - 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, - 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, - 4449, 4450, 4391, 4392, 4463, 4464, 4390, 4432, - 4390, 4390, 4431, 4465, 4465, 4387, 4466, 4467, - 4390, 4390, 4390, 89, 90, 4468, 4469, 4390, - 4390, 4390, 900, 4470, 4470, 4396, 4471, 4472, - 4399, 75, 4400, 4399, 89, 90, 4468, 4473, - 107, 108, 4468, 4474, 75, 75, 4399, 75, - 4399, 75, 4399, 75, 900, 4395, 4395, 4396, - 4397, 4398, 4399, 75, 4477, 4478, 4479, 4480, - 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, - 4489, 4490, 4491, 4492, 4493, 4494, 4400, 4399, - 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, - 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, - 4493, 4494, 4391, 4392, 4401, 4402, 4403, 4404, - 4405, 4406, 75, 75, 4399, 4476, 75, 4399, - 75, 4399, 75, 4475, 4470, 4470, 4396, 4471, - 4472, 4399, 75, 4477, 4478, 4479, 4480, 4481, - 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, - 4490, 4491, 4492, 4493, 4494, 4400, 4399, 4477, - 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, - 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, - 4494, 89, 90, 4495, 4473, 107, 108, 4495, - 4474, 75, 75, 4399, 4476, 75, 4399, 75, - 4399, 75, 4475, 807, 807, 807, 807, 1065, - 1066, 1065, 1068, 1065, 1066, 1067, 1066, 1061, - 807, 807, 807, 1223, 1223, 1224, 1225, 1192, - 1193, 1194, 1192, 1226, 1227, 1192, 1192, 1192, - 1198, 807, 1238, 1238, 1239, 1240, 1233, 1241, - 1242, 1243, 1243, 1244, 1245, 1233, 1233, 1233, - 1232, 1247, 1246, 1232, 807, 1257, 1257, 1258, - 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, - 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, - 1275, 1276, 1277, 1260, 1261, 1262, 1263, 1264, - 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, - 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, - 1280, 1281, 1282, 1248, 1305, 1304, 1248, 807, - 1868, 1868, 1869, 1870, 1871, 1872, 1873, 1873, - 1874, 1875, 1864, 1864, 1864, 1860, 1877, 1876, - 1860, 1896, 1896, 1897, 1898, 1900, 1901, 1899, - 1899, 1899, 1860, 1846, 1903, 1903, 1904, 1905, - 1906, 1907, 1908, 1908, 1909, 1910, 1899, 1899, - 1899, 1860, 1912, 1911, 1860, 1914, 1913, 1846, - 807, 807, 1998, 1998, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, - 2011, 2012, 2012, 2013, 2014, 1989, 2030, 2029, - 1989, 807, 807, 807, 807, 807, 807, 807, - 807, 807, 807, 2624, 2624, 2625, 2626, 2627, - 2628, 2629, 2629, 2630, 2631, 2623, 2623, 2623, - 2614, 2633, 2632, 2614, 807, 807, 2797, 2797, - 2798, 2799, 2800, 2801, 2746, 2746, 2802, 2803, - 2637, 2805, 2804, 2637, 2779, 2779, 2780, 2781, - 2783, 2784, 2746, 2746, 2785, 2786, 2782, 2637, - 2817, 2816, 2637, 2760, 2760, 2761, 2762, 2764, - 2765, 2746, 2746, 2766, 2767, 2763, 2637, 2830, - 2829, 2637, 2740, 2740, 2741, 2742, 2744, 2745, - 2746, 2746, 2747, 2748, 2743, 2637, 2843, 2842, - 2637, 807, 807, 807, 807, 3041, 3041, 3042, - 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3049, - 3050, 3051, 3040, 3070, 3069, 77, 807, 3108, - 3108, 3109, 3110, 3111, 3112, 3113, 3113, 3114, - 3115, 3104, 3104, 3104, 3100, 3117, 3116, 3100, - 807, 3150, 3150, 3151, 3152, 3153, 3154, 3155, - 3155, 3156, 3157, 3146, 3146, 3146, 3100, 3159, - 3158, 3100, 807, 3204, 3204, 3205, 3206, 3210, - 3210, 3210, 3210, 3215, 3216, 3210, 3210, 3217, - 3218, 3223, 3228, 3227, 3223, 3201, 3201, 3202, - 3203, 3224, 3211, 3212, 3224, 3224, 3224, 3223, - 3226, 3225, 3223, 3224, 3201, 3201, 3202, 3203, - 3204, 3204, 3205, 3206, 3207, 3207, 3208, 3209, - 3210, 3210, 3210, 3210, 3211, 3212, 3210, 3210, - 3213, 3214, 3215, 3216, 3210, 3210, 3217, 3218, - 3219, 3220, 3210, 3210, 3221, 3222, 3224, 3224, - 3224, 3223, 3226, 3228, 3230, 3225, 3227, 3229, - 3223, 807, 807, 807, 807, 807, 807, 807, - 4106, 4106, 4107, 4108, 4109, 4110, 4111, 4111, - 4112, 4113, 4102, 4102, 4102, 3100, 4115, 4114, - 3100, 807, 807, 4178, 4178, 4179, 4180, 4181, - 4182, 4183, 4183, 4184, 4185, 4174, 4174, 4174, - 3100, 4187, 4186, 3100, 807, 807, 807, 807, - 807, 807, 807, 807, 0 + 1725, 1472, 1726, 1726, 1727, 1728, 1729, 1730, + 1731, 1731, 1732, 1733, 1472, 1734, 1735, 1736, + 1737, 1736, 1737, 1472, 1738, 1472, 1739, 1739, + 1740, 1741, 1742, 1743, 1744, 1744, 1745, 1746, + 1472, 1747, 1472, 1748, 1748, 1749, 1750, 1751, + 1752, 1753, 1753, 1754, 1755, 1472, 1756, 1756, + 1472, 1757, 1757, 1758, 1759, 1760, 1761, 1762, + 1762, 1763, 1764, 1472, 1765, 1765, 1766, 1767, + 1768, 1769, 1770, 1770, 1771, 1772, 1472, 1773, + 1774, 1773, 1774, 1472, 1775, 1775, 1472, 1776, + 1776, 1472, 1777, 1777, 1472, 1778, 1778, 1779, + 1780, 1781, 1782, 1783, 1783, 1784, 1785, 1472, + 1786, 1786, 1787, 1788, 1789, 1790, 1791, 1791, + 1792, 1793, 1472, 1794, 1795, 1796, 1794, 1795, + 1796, 1472, 1797, 1797, 1472, 1798, 1798, 1472, + 1799, 1799, 1472, 1800, 1800, 1801, 1802, 1803, + 1804, 1805, 1805, 1806, 1807, 1472, 1808, 1808, + 1472, 1809, 1809, 1810, 1811, 1812, 1813, 1814, + 1814, 1815, 1816, 1472, 1817, 1817, 1818, 1819, + 1820, 1820, 1821, 1822, 1823, 1823, 1824, 1825, + 1472, 1826, 1826, 1472, 1827, 1827, 1828, 1829, + 1830, 1831, 1832, 1833, 1833, 1834, 1835, 1472, + 1836, 1836, 1837, 1838, 1839, 1839, 1840, 1841, + 1842, 1842, 1843, 1844, 1472, 1845, 1845, 1472, + 1846, 1846, 1472, 1847, 1847, 1472, 1848, 1848, + 1472, 1849, 1849, 1850, 1851, 1852, 1853, 1854, + 1854, 1855, 1856, 1472, 1857, 1857, 1472, 1858, + 1858, 1472, 1859, 1859, 1472, 1860, 1860, 1472, + 1861, 1861, 1472, 1862, 1862, 1472, 1863, 1863, + 1472, 1864, 1864, 1472, 1865, 1865, 1472, 1866, + 1866, 1867, 1868, 1869, 1870, 1871, 1871, 1872, + 1873, 1472, 1874, 1874, 1472, 1875, 1875, 1472, + 1876, 1876, 1877, 1878, 1879, 1880, 1881, 1881, + 1882, 1883, 1472, 1884, 1885, 1886, 1884, 1885, + 1886, 1472, 1887, 1887, 1888, 1889, 1890, 1891, + 1892, 1892, 1893, 1894, 1472, 1895, 1895, 1472, + 1896, 1896, 1472, 1897, 1897, 1472, 1898, 1898, + 1899, 1900, 1901, 1902, 1903, 1903, 1904, 1905, + 1472, 1906, 1906, 1907, 1908, 1909, 1910, 1911, + 1911, 1912, 1913, 1472, 1914, 1915, 1916, 1917, + 1918, 1919, 1914, 1915, 1916, 1917, 1918, 1919, + 1472, 1920, 1920, 1472, 1921, 1921, 1472, 1922, + 1922, 1472, 1923, 1923, 1472, 1924, 1924, 1925, + 1926, 1927, 1928, 1929, 1929, 1930, 1931, 1472, + 1932, 1932, 1472, 1933, 1933, 1934, 1935, 1936, + 1937, 1938, 1938, 1939, 1940, 1472, 1941, 1941, + 1472, 1942, 1942, 1943, 1944, 1945, 1946, 1947, + 1947, 1948, 1949, 1472, 1950, 1950, 1472, 1951, + 1951, 1952, 1953, 1954, 1955, 1956, 1956, 1957, + 1958, 1472, 1959, 1959, 1472, 1960, 1960, 1472, + 1961, 1961, 1472, 1962, 1962, 1963, 1964, 1965, + 1966, 1967, 1967, 1968, 1969, 1472, 1970, 1970, + 1472, 1971, 1971, 1472, 1972, 1972, 1973, 1974, + 1975, 1976, 1977, 1977, 1978, 1979, 1472, 1980, + 1981, 1982, 1980, 1981, 1982, 1472, 1983, 1983, + 1472, 1984, 1984, 1472, 1985, 1985, 1986, 1987, + 1988, 1989, 1990, 1990, 1991, 1992, 1472, 1993, + 1993, 1472, 1994, 1994, 1995, 1996, 1997, 1998, + 1999, 1999, 2000, 2001, 1472, 2002, 2002, 1472, + 2003, 2003, 1472, 2004, 1472, 2005, 2005, 2006, + 2007, 2009, 2010, 2011, 2011, 2012, 2013, 2008, + 1472, 2014, 2014, 1472, 2015, 2015, 1472, 2016, + 2016, 2017, 2018, 2019, 2020, 2021, 2021, 2022, + 2023, 1472, 2024, 2024, 1472, 2025, 2025, 1472, + 2026, 2026, 1472, 2027, 2027, 1472, 2028, 2028, + 1472, 2029, 2029, 2030, 2031, 2032, 2033, 2034, + 2034, 2035, 2036, 1472, 2037, 2037, 1472, 2038, + 2038, 1472, 2039, 2039, 1472, 2040, 2040, 1472, + 2041, 2041, 1472, 2042, 2042, 2043, 2044, 2045, + 2046, 2047, 2047, 2048, 2049, 1472, 2050, 2050, + 1472, 2051, 2051, 1472, 2052, 2052, 1472, 2053, + 2053, 2054, 2055, 2056, 2057, 2058, 2058, 2059, + 2060, 1472, 2061, 2061, 1472, 2062, 2062, 2063, + 2064, 2065, 2066, 2067, 2067, 2068, 2069, 1472, + 2071, 2071, 2072, 2073, 2074, 2075, 2070, 2071, + 2071, 2072, 2073, 2074, 2075, 2077, 2076, 2078, + 2078, 2079, 2080, 2082, 2083, 2081, 2076, 2085, + 2085, 2086, 2087, 2089, 2090, 2088, 2088, 2088, + 2084, 2091, 2091, 2091, 2084, 2092, 2092, 2093, + 2094, 2095, 2096, 2097, 2097, 2098, 2099, 2088, + 2088, 2088, 2084, 2101, 2100, 2084, 2103, 2102, + 2070, 2105, 2104, 2070, 2106, 2106, 2107, 2108, + 2109, 2110, 2070, 2106, 2106, 2107, 2108, 2111, + 2109, 2110, 2112, 2076, 2113, 2113, 2114, 2115, + 2117, 2117, 2118, 2119, 2116, 2076, 2120, 2120, + 2121, 2122, 2124, 2125, 2123, 2123, 2123, 2084, + 2126, 2126, 2126, 2084, 2127, 2127, 2128, 2129, + 2130, 2131, 2132, 2132, 2133, 2134, 2123, 2123, + 2123, 2084, 2136, 2135, 2084, 2138, 2137, 2070, + 2139, 2139, 2140, 2141, 2142, 2143, 2116, 2076, + 2145, 2144, 2070, 2147, 2148, 2149, 2150, 2151, + 2152, 2153, 2154, 2146, 2155, 2146, 2156, 2146, + 2157, 2146, 2158, 2158, 2158, 2158, 2158, 2158, + 2146, 2159, 2146, 2160, 2146, 2161, 2146, 2162, + 2146, 2163, 2146, 2164, 2146, 2165, 2165, 2165, + 2165, 2165, 2165, 2146, 2166, 2146, 2167, 2146, + 2168, 2168, 2168, 2168, 2168, 2168, 2146, 2169, + 2146, 2170, 2146, 2171, 2172, 2146, 2173, 2146, + 2174, 2146, 2175, 2146, 2176, 2146, 2177, 2177, + 2177, 2177, 2177, 2177, 2146, 2178, 2146, 2179, + 2146, 2180, 2146, 2181, 2146, 2182, 2182, 2182, + 2182, 2182, 2182, 2146, 2183, 2146, 2184, 2146, + 2186, 2185, 2187, 2187, 2187, 2187, 2187, 2187, + 2188, 2185, 2189, 2146, 2190, 2146, 2191, 2146, + 2192, 2146, 2193, 2146, 2194, 2146, 2195, 2146, + 2196, 2146, 2197, 2146, 2198, 2146, 2199, 2146, + 2200, 2146, 2201, 2146, 2202, 2146, 2203, 2203, + 2203, 2203, 2203, 2203, 2146, 2204, 2146, 2205, + 2146, 2206, 2146, 2207, 2146, 2208, 2208, 2208, + 2208, 2208, 2208, 2146, 2209, 2146, 2210, 2146, + 2211, 2146, 2212, 2212, 2212, 2212, 2212, 2212, + 2146, 2214, 2214, 2215, 2216, 2217, 2218, 2219, + 2219, 2220, 2221, 2213, 2222, 2222, 2223, 2224, + 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, + 2233, 2234, 2235, 2236, 2236, 2237, 2238, 2213, + 2239, 2213, 2240, 2213, 2241, 2213, 2242, 2213, + 2213, 2244, 2213, 2213, 2213, 2243, 2245, 2245, + 2246, 2247, 2248, 2249, 2250, 2250, 2251, 2252, + 2213, 2254, 2253, 2213, 2255, 2213, 2256, 2213, + 2257, 2213, 2258, 2213, 2259, 2213, 2260, 2213, + 2261, 2213, 2213, 2263, 2213, 2213, 2213, 2262, + 2264, 2264, 2265, 2266, 2267, 2268, 2269, 2269, + 2270, 2271, 2213, 2264, 2264, 2265, 2266, 2267, + 2268, 2269, 2269, 2270, 2271, 2272, 2272, 2272, + 2213, 2273, 2213, 2274, 2274, 2275, 2276, 2277, + 2278, 2279, 2279, 2280, 2281, 2213, 2282, 2213, + 2283, 2213, 2284, 2213, 2285, 2286, 2286, 2286, + 2286, 2213, 2287, 2287, 2287, 2287, 2213, 2288, + 2288, 2288, 2288, 2213, 2289, 2290, 2289, 2289, + 2289, 2213, 2291, 2292, 2291, 2291, 2291, 2213, + 2273, 2293, 2293, 2293, 2293, 2213, 2292, 2213, + 2294, 2294, 2294, 2294, 2213, 2295, 2296, 2295, + 2295, 2295, 2213, 2297, 2298, 2297, 2297, 2297, + 2213, 2264, 2264, 2265, 2266, 2299, 2267, 2268, + 2269, 2269, 2270, 2271, 2299, 2299, 2299, 2213, + 2298, 2213, 2300, 2213, 2301, 2213, 2302, 2303, + 2213, 2304, 2213, 2305, 2213, 2306, 2213, 2307, + 2213, 2308, 2213, 2310, 2311, 2311, 2309, 2312, + 2312, 2309, 2313, 2314, 2315, 2315, 2309, 2316, + 2316, 2309, 2317, 2317, 2318, 2319, 2320, 2321, + 2322, 2323, 2324, 2324, 2325, 2326, 2321, 2309, + 2327, 2327, 2309, 2328, 2213, 2329, 2213, 2330, + 2213, 2331, 2213, 2332, 2213, 2333, 2334, 2334, + 2334, 2334, 2309, 2335, 2335, 2335, 2335, 2309, + 2336, 2337, 2338, 2338, 2338, 2338, 2309, 2339, + 2339, 2339, 2339, 2309, 2340, 2340, 2341, 2342, + 2343, 2344, 2345, 2346, 2347, 2347, 2348, 2349, + 2344, 2344, 2344, 2309, 2350, 2350, 2350, 2350, + 2309, 2351, 2213, 2352, 2213, 2354, 2353, 2355, + 2355, 2356, 2357, 2359, 2360, 2361, 2362, 2362, + 2363, 2364, 2358, 2353, 2213, 2213, 2213, 2213, + 2262, 2365, 2213, 2366, 2213, 2367, 2213, 2368, + 2213, 2369, 2213, 2370, 2213, 2371, 2213, 2372, + 2213, 2373, 2213, 2374, 2375, 2375, 2213, 2376, + 2376, 2213, 2377, 2378, 2213, 2379, 2379, 2213, + 2380, 2380, 2381, 2382, 2383, 2384, 2385, 2386, + 2386, 2387, 2388, 2213, 2389, 2389, 2213, 2390, + 2213, 2391, 2213, 2392, 2213, 2393, 2213, 2394, + 2213, 2395, 2213, 2396, 2213, 2397, 2213, 2398, + 2213, 2399, 2213, 2400, 2213, 2401, 2213, 2402, + 2213, 2403, 2213, 2404, 2404, 2405, 2406, 2407, + 2408, 2409, 2409, 2410, 2411, 2213, 2412, 2213, + 2413, 2213, 2414, 2213, 2415, 2213, 2416, 2416, + 2417, 2418, 2419, 2420, 2421, 2421, 2422, 2423, + 2213, 2424, 2213, 2425, 2213, 2426, 2213, 2427, + 2213, 2428, 2429, 2353, 2430, 2353, 2431, 2432, + 2353, 2433, 2433, 2434, 2435, 2437, 2438, 2439, + 2439, 2440, 2441, 2436, 2353, 2245, 2245, 2246, + 2247, 2248, 2249, 2250, 2250, 2251, 2252, 2442, + 2442, 2442, 2213, 2443, 2213, 2446, 2447, 2448, + 2449, 2450, 2446, 2447, 2448, 2449, 2450, 2445, + 2444, 2451, 2451, 2451, 2451, 2452, 2444, 2453, + 2454, 2453, 2454, 2444, 2455, 2455, 2455, 2455, + 2444, 2456, 2456, 2444, 2457, 2458, 2457, 2457, + 2457, 2444, 2459, 2459, 2444, 2460, 2460, 2444, + 2461, 2461, 2444, 2462, 2462, 2444, 2463, 2444, + 2464, 2444, 2465, 2465, 2444, 2466, 2466, 2444, + 2467, 2467, 2444, 2468, 2444, 2469, 2469, 2469, + 2469, 2444, 2470, 2471, 2470, 2471, 2444, 2472, + 2473, 2472, 2473, 2444, 2474, 2444, 2475, 2475, + 2444, 2476, 2476, 2444, 2477, 2477, 2444, 2478, + 2478, 2444, 2479, 2479, 2479, 2479, 2444, 2480, + 2480, 2444, 2481, 2481, 2444, 2482, 2482, 2444, + 2483, 2484, 2444, 2485, 2444, 2486, 2444, 2487, + 2487, 2444, 2488, 2488, 2444, 2489, 2489, 2444, + 2490, 2444, 2491, 2444, 2492, 2444, 2493, 2493, + 2493, 2493, 2444, 2494, 2444, 2495, 2444, 2496, + 2496, 2444, 2497, 2497, 2444, 2498, 2498, 2444, + 2499, 2444, 2500, 2444, 2501, 2444, 2502, 2502, + 2502, 2502, 2444, 2503, 2504, 2444, 2505, 2444, + 2506, 2444, 2507, 2444, 2508, 2444, 2509, 2509, + 2509, 2509, 2444, 2510, 2444, 2511, 2444, 2512, + 2512, 2512, 2512, 2444, 2513, 2513, 2444, 2514, + 2514, 2444, 2515, 2515, 2444, 2516, 2516, 2444, + 2517, 2517, 2444, 2518, 2518, 2444, 2519, 2519, + 2444, 2520, 2520, 2520, 2520, 2444, 2521, 2521, + 2444, 2522, 2522, 2444, 2523, 2523, 2444, 2524, + 2524, 2444, 2525, 2525, 2444, 2526, 2526, 2444, + 2527, 2528, 2527, 2528, 2444, 2529, 2529, 2444, + 2530, 2530, 2444, 2531, 2531, 2531, 2531, 2444, + 2532, 2532, 2444, 2533, 2533, 2444, 2534, 2534, + 2534, 2534, 2444, 2535, 2535, 2444, 2536, 2536, + 2444, 2537, 2538, 2537, 2538, 2444, 2539, 2539, + 2444, 2540, 2444, 2541, 2541, 2541, 2541, 2444, + 2542, 2542, 2444, 2543, 2543, 2444, 2544, 2545, + 2546, 2444, 2547, 2548, 2547, 2547, 2547, 2444, + 2549, 2549, 2444, 2550, 2550, 2444, 2551, 2551, + 2444, 2552, 2552, 2444, 2553, 2444, 2554, 2444, + 2555, 2555, 2444, 2556, 2556, 2444, 2557, 2557, + 2444, 2558, 2444, 2559, 2559, 2559, 2559, 2444, + 2560, 2444, 2561, 2444, 2562, 2562, 2562, 2562, + 2444, 2563, 2444, 2564, 2444, 2565, 2565, 2565, + 2565, 2444, 2568, 2569, 2570, 2571, 2572, 2573, + 2568, 2569, 2570, 2571, 2572, 2573, 2567, 2566, + 2574, 2574, 2574, 2574, 2575, 2566, 2576, 2576, + 2566, 2577, 2577, 2566, 2578, 2578, 2566, 2579, + 2579, 2566, 2580, 2580, 2566, 2581, 2581, 2581, + 2581, 2566, 2582, 2583, 2584, 2582, 2583, 2584, + 2566, 2585, 2585, 2566, 2586, 2586, 2566, 2587, + 2587, 2566, 2588, 2588, 2566, 2589, 2589, 2566, + 2590, 2590, 2590, 2590, 2566, 2591, 2592, 2591, + 2592, 2566, 2593, 2593, 2566, 2594, 2594, 2594, + 2594, 2566, 2595, 2595, 2566, 2596, 2596, 2566, + 2597, 2597, 2597, 2597, 2566, 2598, 2598, 2566, + 2599, 2599, 2566, 2600, 2600, 2566, 2601, 2601, + 2601, 2601, 2566, 2602, 2602, 2566, 2603, 2603, + 2566, 2604, 2604, 2604, 2604, 2566, 2605, 2606, + 2605, 2606, 2566, 2607, 2607, 2566, 2608, 2608, + 2608, 2608, 2566, 2609, 2609, 2566, 2610, 2610, + 2566, 2611, 2611, 2611, 2611, 2566, 2612, 2612, + 2566, 2613, 2613, 2566, 2614, 2614, 2566, 2615, + 2615, 2615, 2615, 2566, 2616, 2616, 2566, 2617, + 2617, 2566, 2618, 2618, 2618, 2618, 2566, 2621, + 2621, 2620, 2619, 2622, 2622, 2622, 2622, 2623, + 2619, 2624, 2624, 2619, 2625, 2625, 2619, 2626, + 2626, 2619, 2627, 2627, 2619, 2628, 2628, 2619, + 2629, 2629, 2629, 2629, 2619, 2631, 2631, 2630, + 2632, 2633, 2632, 2632, 2632, 2633, 2630, 2634, + 2634, 2634, 2634, 2634, 2634, 77, 2635, 2635, + 2635, 2635, 77, 2636, 2636, 2636, 2636, 2636, + 2636, 77, 2637, 2637, 2638, 2639, 2640, 2641, + 77, 2642, 2642, 2643, 2644, 2645, 2645, 2645, + 2646, 2647, 2645, 2645, 2645, 77, 2648, 2648, + 2649, 2650, 2651, 2652, 77, 2654, 2654, 2655, + 2656, 2658, 2659, 2657, 2653, 2660, 2660, 2661, + 2662, 2664, 2665, 2663, 2653, 2666, 2666, 2667, + 2668, 2670, 2671, 2669, 2653, 2673, 2673, 2674, + 2675, 2677, 2678, 2679, 2680, 2681, 2677, 2678, + 2679, 2680, 2681, 2682, 2683, 2676, 2672, 2684, + 2684, 2685, 2686, 2688, 2689, 2687, 2653, 2690, + 2690, 2691, 2692, 2694, 2695, 2696, 2697, 2698, + 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2693, + 2672, 2701, 2701, 2702, 2703, 2705, 2706, 2704, + 2653, 2707, 2707, 2708, 2709, 2711, 2712, 2713, + 2714, 2715, 2711, 2712, 2713, 2714, 2715, 2716, + 2717, 2710, 2672, 2718, 2718, 2719, 2720, 2722, + 2723, 2721, 2653, 2724, 2724, 2726, 2727, 2728, + 2729, 2730, 2726, 2727, 2728, 2729, 2730, 2724, + 2724, 2725, 2672, 2724, 2724, 2724, 2724, 2731, + 2672, 2733, 2734, 2735, 2736, 2737, 2733, 2734, + 2735, 2736, 2737, 2732, 2672, 2738, 2738, 2738, + 2738, 2739, 2672, 2741, 2740, 77, 2707, 2707, + 2708, 2709, 2716, 2717, 2742, 2672, 2744, 2745, + 2746, 2747, 2748, 2744, 2745, 2746, 2747, 2748, + 2743, 2672, 2749, 2749, 2750, 2751, 2753, 2754, + 2752, 2672, 2756, 2755, 77, 2690, 2690, 2691, + 2692, 2699, 2700, 2757, 2672, 2759, 2760, 2761, + 2762, 2763, 2759, 2760, 2761, 2762, 2763, 2758, + 2672, 2764, 2764, 2765, 2766, 2768, 2769, 2767, + 2672, 2771, 2770, 77, 2673, 2673, 2674, 2675, + 2682, 2683, 2772, 2672, 2774, 2775, 2776, 2777, + 2778, 2774, 2775, 2776, 2777, 2778, 2773, 2672, + 2779, 2779, 2780, 2781, 2783, 2784, 2782, 2672, + 2786, 2785, 77, 2788, 2787, 77, 2790, 2789, + 77, 77, 77, 77, 77, 2791, 2792, 2792, + 2793, 2794, 2795, 2796, 77, 2798, 2798, 2799, + 2800, 2801, 2802, 2797, 2797, 2797, 77, 2803, + 2803, 2803, 2803, 77, 2805, 2804, 77, 2806, + 2806, 2806, 2806, 2806, 2806, 77, 2807, 2807, + 2808, 2809, 2810, 2811, 77, 2812, 2812, 2813, + 2814, 2815, 2815, 2815, 2816, 2817, 2815, 2815, + 2815, 77, 2818, 2818, 2818, 2818, 77, 2820, + 2819, 77, 2821, 2653, 2822, 2822, 2823, 2824, + 2826, 2827, 2825, 2653, 2828, 2828, 2829, 2830, + 2831, 2831, 2831, 2832, 2833, 2831, 2831, 2831, + 77, 2834, 2834, 2834, 2834, 77, 2836, 2835, + 77, 2838, 2838, 2838, 2838, 2837, 2839, 2839, + 2840, 2841, 2842, 2843, 2844, 2844, 2845, 2846, + 2838, 2848, 2848, 2849, 2850, 2851, 2852, 2853, + 2853, 2854, 2855, 2847, 2847, 2847, 2838, 2857, + 2856, 2838, 2858, 2858, 2858, 2858, 2630, 2859, + 2860, 2859, 2859, 2859, 2860, 2860, 2860, 2630, + 2862, 2861, 2863, 2863, 2864, 2865, 2867, 2868, + 2866, 2861, 2869, 2869, 2870, 2871, 2873, 2874, + 2875, 2876, 2872, 2861, 2877, 2877, 2878, 2879, + 2881, 2882, 2880, 2861, 2883, 2883, 2884, 2885, + 2873, 2874, 2887, 2888, 2886, 2861, 2889, 2889, + 2890, 2891, 2892, 2894, 2895, 2893, 2861, 2896, + 2896, 2897, 2898, 2873, 2874, 2899, 2900, 2861, + 2901, 2901, 2902, 2903, 2904, 2905, 2861, 2901, + 2901, 2902, 2903, 2904, 2905, 2906, 2861, 2907, + 2907, 2908, 2909, 2911, 2912, 2910, 2861, 2913, + 2913, 2914, 2915, 2917, 2918, 2919, 2920, 2916, + 2861, 2921, 2921, 2922, 2923, 2925, 2926, 2924, + 2861, 2927, 2927, 2928, 2929, 2917, 2918, 2931, + 2932, 2930, 2861, 2933, 2933, 2934, 2935, 2936, + 2938, 2939, 2937, 2861, 2940, 2940, 2941, 2942, + 2917, 2918, 2943, 2944, 2861, 2945, 2945, 2946, + 2947, 2948, 2949, 2861, 2945, 2945, 2946, 2947, + 2950, 2948, 2949, 2951, 2861, 2952, 2861, 2953, + 2953, 2954, 2955, 2956, 2958, 2959, 2960, 2961, + 2961, 2962, 2963, 2957, 2861, 2964, 2964, 2965, + 2966, 2968, 2969, 2970, 2970, 2971, 2972, 2967, + 2861, 2973, 2973, 2974, 2975, 2976, 2978, 2979, + 2980, 2981, 2981, 2982, 2983, 2977, 2861, 2984, + 2984, 2985, 2986, 2988, 2989, 2970, 2970, 2990, + 2991, 2987, 2861, 2992, 2992, 2993, 2994, 2995, + 2997, 2998, 2999, 3000, 3000, 3001, 3002, 2996, + 2861, 3003, 3003, 3004, 3005, 3007, 3008, 2970, + 2970, 3009, 3010, 3006, 2861, 3011, 3011, 3012, + 3013, 3014, 3011, 3016, 3017, 3018, 3018, 3019, + 3020, 3015, 2861, 3021, 3021, 3022, 3023, 3024, + 3025, 2970, 2970, 3026, 3027, 2861, 3029, 3028, + 2861, 3030, 3030, 3031, 3032, 3030, 3034, 3035, + 3036, 3036, 3037, 3038, 3033, 2861, 3011, 3011, + 3012, 3013, 3011, 3016, 3017, 3018, 3018, 3019, + 3020, 3039, 2861, 3041, 3040, 2861, 3042, 3042, + 3043, 3044, 3046, 3047, 3048, 3049, 3049, 3050, + 3051, 3045, 2861, 2992, 2992, 2993, 2994, 2997, + 2998, 2999, 3000, 3000, 3001, 3002, 3052, 2861, + 3003, 3003, 3004, 3005, 3007, 3008, 2970, 2970, + 3009, 3010, 2861, 3054, 3053, 2861, 3055, 3055, + 3056, 3057, 3059, 3060, 3061, 3062, 3062, 3063, + 3064, 3058, 2861, 2973, 2973, 2974, 2975, 2978, + 2979, 2980, 2981, 2981, 2982, 2983, 3065, 2861, + 2984, 2984, 2985, 2986, 2988, 2989, 2970, 2970, + 2990, 2991, 2861, 3067, 3066, 2861, 3068, 3068, + 3069, 3070, 3072, 3073, 3074, 3075, 3075, 3076, + 3077, 3071, 2861, 2953, 2953, 2954, 2955, 2958, + 2959, 2960, 2961, 2961, 2962, 2963, 3078, 2861, + 2964, 2964, 2965, 2966, 2968, 2969, 2970, 2970, + 2971, 2972, 2861, 3080, 3079, 2861, 3081, 3081, + 3082, 3083, 3084, 3085, 2861, 3087, 3086, 2861, + 3088, 3088, 3089, 3090, 3092, 3093, 3091, 2861, + 2933, 2933, 2934, 2935, 2938, 2939, 3094, 2861, + 3096, 3095, 2861, 3098, 3097, 2861, 3100, 3099, + 2861, 3101, 3101, 3102, 3103, 3104, 3105, 2861, + 3107, 3106, 2861, 3108, 3108, 3109, 3110, 3112, + 3113, 3111, 2861, 2889, 2889, 2890, 2891, 2894, + 2895, 3114, 2861, 3116, 3115, 2861, 3118, 3117, + 2861, 3119, 2653, 3120, 3120, 3121, 3122, 3124, + 3125, 3123, 2653, 3126, 3126, 3127, 3128, 3130, + 3131, 3129, 2653, 3132, 3132, 3133, 3134, 3136, + 3137, 3135, 2653, 3138, 3138, 3139, 3140, 3142, + 3143, 3141, 2653, 3144, 3144, 3145, 3146, 3148, + 3149, 3147, 2653, 3150, 3150, 3151, 3152, 3153, + 3153, 3153, 3154, 3155, 3153, 3153, 3153, 77, + 3156, 3156, 3156, 3156, 77, 3158, 3157, 77, + 3160, 3159, 77, 3162, 3161, 77, 3163, 2653, + 3164, 3164, 3165, 3166, 3168, 3169, 3167, 2653, + 3170, 3170, 3171, 3172, 3174, 3175, 3173, 2653, + 3176, 3176, 3177, 3178, 3180, 3181, 3179, 2653, + 3183, 3183, 3184, 3185, 3186, 3187, 3182, 3182, + 3182, 77, 3188, 3188, 3189, 3190, 3191, 3192, + 77, 3194, 3194, 3195, 3196, 3197, 3198, 3193, + 3193, 3193, 77, 3199, 3199, 3200, 3201, 3202, + 3203, 77, 3205, 3205, 3206, 3207, 3208, 3209, + 3204, 3204, 3204, 77, 3210, 3210, 3211, 3212, + 3213, 3214, 77, 3215, 3215, 3216, 3217, 3218, + 3218, 3218, 3219, 3220, 3218, 3218, 3218, 77, + 3221, 3221, 3221, 3221, 77, 3223, 3222, 77, + 3225, 3224, 77, 3227, 3226, 77, 3229, 3228, + 77, 3231, 3230, 77, 3232, 3232, 3232, 77, + 3233, 3233, 3234, 3235, 3236, 3237, 77, 3233, + 3233, 3234, 3235, 3236, 3237, 3238, 2653, 3239, + 3239, 3240, 3241, 3243, 3244, 3242, 2653, 3245, + 3245, 3246, 3247, 3249, 3250, 3248, 3248, 3248, + 77, 3251, 3251, 3252, 3253, 3254, 3255, 77, + 3251, 3251, 3252, 3253, 3256, 3254, 3255, 3256, + 3256, 3256, 77, 3257, 3257, 77, 3259, 3258, + 77, 3261, 3260, 77, 3263, 3262, 77, 3265, + 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, + 3273, 3273, 3274, 3275, 3264, 3276, 3277, 3264, + 3278, 3264, 3280, 3280, 3279, 3282, 3281, 3279, + 3283, 3264, 3284, 3284, 3285, 3286, 3288, 3289, + 3290, 3290, 3291, 3292, 3287, 3264, 3294, 3293, + 77, 3295, 3264, 3296, 3296, 3296, 3296, 3279, + 3298, 3297, 3297, 3297, 3279, 3299, 2653, 3300, + 3300, 3301, 3302, 3304, 3305, 3303, 2653, 3306, + 3306, 3307, 3308, 3310, 3311, 3309, 3309, 3309, + 77, 3312, 3312, 3313, 3314, 3315, 3316, 77, + 3312, 3312, 3313, 3314, 3315, 3316, 3317, 2653, + 3318, 3318, 3319, 3320, 3322, 3323, 3321, 2653, + 3325, 3325, 3326, 3327, 3329, 3330, 3328, 3328, + 3328, 3324, 3331, 3331, 3331, 3324, 3332, 3332, + 3333, 3334, 3335, 3336, 3337, 3337, 3338, 3339, + 3328, 3328, 3328, 3324, 3341, 3340, 3324, 3343, + 3342, 77, 3345, 3344, 77, 3347, 3346, 77, + 3348, 2653, 3349, 3349, 3350, 3351, 3353, 3354, + 3352, 2653, 3355, 3355, 3356, 3357, 3359, 3360, + 3358, 2653, 3361, 3361, 3362, 3363, 3365, 3366, + 3364, 2653, 3367, 3367, 3368, 3369, 3371, 3372, + 3370, 3370, 3370, 3324, 3373, 3373, 3373, 3324, + 3374, 3374, 3375, 3376, 3377, 3378, 3379, 3379, + 3380, 3381, 3370, 3370, 3370, 3324, 3383, 3382, + 3324, 3385, 3384, 77, 3387, 3386, 77, 3388, + 2653, 3389, 3389, 3390, 3391, 3393, 3394, 3392, + 2653, 3396, 3396, 3397, 3398, 3399, 3400, 3401, + 3402, 3403, 3404, 3395, 3405, 3405, 3406, 3407, + 3408, 3409, 3395, 3405, 3405, 3406, 3407, 3408, + 3409, 3411, 3410, 3412, 3412, 3413, 3414, 3416, + 3417, 3415, 3410, 3418, 3418, 3419, 3420, 3421, + 3422, 3423, 3395, 3425, 3425, 3426, 3427, 3428, + 3428, 3429, 3430, 3431, 3431, 3432, 3433, 3434, + 3434, 3434, 3434, 3435, 3436, 3434, 3434, 3437, + 3438, 3439, 3440, 3434, 3434, 3441, 3442, 3443, + 3444, 3434, 3434, 3445, 3446, 3424, 3425, 3425, + 3426, 3427, 3448, 3435, 3436, 3448, 3448, 3448, + 3447, 3434, 3434, 3447, 3450, 3449, 3447, 3428, + 3428, 3429, 3430, 3434, 3434, 3434, 3434, 3439, + 3440, 3434, 3434, 3441, 3442, 3447, 3452, 3451, + 3447, 3448, 3425, 3425, 3426, 3427, 3428, 3428, + 3429, 3430, 3431, 3431, 3432, 3433, 3434, 3434, + 3434, 3434, 3435, 3436, 3434, 3434, 3437, 3438, + 3439, 3440, 3434, 3434, 3441, 3442, 3443, 3444, + 3434, 3434, 3445, 3446, 3448, 3448, 3448, 3447, + 3450, 3452, 3454, 3449, 3451, 3453, 3447, 3456, + 3455, 3395, 3458, 3457, 3395, 3459, 3459, 3460, + 3461, 3462, 3463, 3395, 3459, 3459, 3460, 3461, + 3462, 3463, 3464, 3410, 3465, 3465, 3466, 3467, + 3469, 3470, 3468, 3410, 3472, 3472, 3473, 3474, + 3475, 3476, 3477, 3475, 3471, 3479, 3480, 3480, + 3481, 3482, 3483, 3483, 3484, 3485, 3486, 3486, + 3487, 3488, 3489, 3489, 3489, 3489, 3490, 3491, + 3489, 3489, 3492, 3493, 3494, 3495, 3489, 3489, + 3496, 3497, 3498, 3499, 3489, 3489, 3500, 3501, + 3479, 3478, 3503, 3502, 3395, 3505, 3504, 3395, + 3506, 3506, 3507, 3508, 3509, 3510, 3395, 3506, + 3506, 3507, 3508, 3509, 3510, 3511, 3410, 3512, + 3512, 3513, 3514, 3516, 3517, 3515, 3410, 3518, + 3518, 3519, 3520, 3521, 3522, 3523, 3521, 3521, + 3521, 3471, 3524, 3525, 3525, 3526, 3527, 3528, + 3528, 3529, 3530, 3531, 3531, 3532, 3533, 3534, + 3534, 3534, 3534, 3535, 3536, 3534, 3534, 3537, + 3538, 3539, 3540, 3534, 3534, 3541, 3542, 3543, + 3544, 3534, 3534, 3545, 3546, 3524, 3524, 3524, + 3478, 3548, 3547, 3395, 3550, 3549, 3395, 3551, + 3551, 3552, 3553, 3554, 3555, 3395, 3551, 3551, + 3552, 3553, 3554, 3555, 3556, 3410, 3557, 3557, + 3558, 3559, 3561, 3562, 3560, 3410, 3563, 3563, + 3564, 3565, 3566, 3566, 3566, 3567, 3568, 3566, + 3566, 3566, 3395, 3569, 3569, 3570, 3571, 3572, + 3572, 3573, 3574, 3575, 3575, 3576, 3577, 3578, + 3578, 3578, 3578, 3579, 3580, 3578, 3578, 3581, + 3582, 3583, 3584, 3578, 3578, 3585, 3586, 3587, + 3588, 3578, 3578, 3589, 3590, 3424, 3592, 3591, + 3395, 3594, 3593, 3395, 3596, 3595, 77, 3597, + 3597, 3597, 77, 3598, 3598, 3599, 3600, 3601, + 3602, 77, 3598, 3598, 3599, 3600, 3601, 3602, + 3603, 3603, 3603, 77, 3604, 3604, 3605, 3606, + 3607, 3608, 77, 3604, 3604, 3605, 3606, 3607, + 3608, 3609, 2653, 3610, 3610, 3611, 3612, 3614, + 3615, 3613, 2653, 3616, 3616, 3617, 3618, 3620, + 3621, 3619, 2653, 3622, 3622, 3623, 3624, 3626, + 3627, 3625, 2653, 3629, 3629, 3630, 3631, 3633, + 3634, 3632, 3628, 3635, 3635, 3636, 3637, 3639, + 3640, 3638, 3628, 3641, 3641, 3642, 3643, 3645, + 3646, 3644, 3628, 3647, 3647, 3648, 3649, 3651, + 3652, 3650, 3628, 3653, 3653, 3654, 3655, 3657, + 3658, 3656, 2653, 3659, 3659, 3660, 3661, 3663, + 3664, 3662, 2653, 3665, 3665, 3666, 3667, 3668, + 3668, 3668, 3669, 3670, 3668, 3668, 3668, 77, + 3671, 3671, 3672, 3673, 3674, 3675, 77, 3676, + 3676, 3677, 3678, 3679, 3680, 3681, 3679, 3679, + 3679, 77, 3682, 3682, 77, 3684, 3683, 77, + 3686, 3685, 77, 3688, 3687, 77, 3690, 3689, + 77, 3692, 3691, 77, 3694, 3693, 77, 3696, + 3695, 77, 3698, 3697, 77, 3699, 3699, 3699, + 3699, 3699, 3699, 77, 3700, 3700, 3700, 3700, + 77, 3701, 3701, 3701, 3701, 77, 3702, 2653, + 3703, 3703, 3704, 3705, 3707, 3708, 3706, 2653, + 3709, 3709, 3710, 3711, 3713, 3714, 3712, 2653, + 3715, 3715, 3716, 3717, 3719, 3720, 3718, 2653, + 3721, 3721, 3722, 3723, 3725, 3726, 3724, 3724, + 3724, 77, 3727, 3727, 3728, 3729, 3730, 3731, + 77, 3727, 3727, 3728, 3729, 3732, 3730, 3731, + 3732, 3732, 3732, 77, 3733, 3733, 77, 3735, + 3734, 77, 3737, 3736, 77, 3739, 3738, 77, + 3740, 3740, 3740, 3740, 77, 3741, 3741, 77, + 3742, 2653, 3743, 3743, 3744, 3745, 3747, 3748, + 3746, 2653, 3749, 3749, 3750, 3751, 3753, 3754, + 3752, 2653, 3755, 3755, 3756, 3757, 3759, 3760, + 3758, 2653, 3761, 3761, 3762, 3763, 3765, 3766, + 3764, 2653, 3767, 3767, 3768, 3769, 3771, 3772, + 3770, 2653, 3773, 3773, 3774, 3775, 3776, 3778, + 3779, 3777, 3777, 3777, 3324, 3780, 3780, 3781, + 3782, 3783, 3784, 3324, 3786, 3786, 3787, 3788, + 3790, 3791, 3789, 3789, 3789, 3785, 3792, 3792, + 3792, 3785, 3794, 3793, 3793, 3793, 3785, 3795, + 3795, 3795, 3785, 3797, 3796, 3796, 3796, 3785, + 3799, 3798, 3798, 3798, 3785, 3800, 3800, 3800, + 3785, 3802, 3801, 3801, 3801, 3785, 3803, 3803, + 3803, 3803, 3804, 3804, 3804, 3785, 3805, 3805, + 3805, 3805, 77, 3806, 3785, 3802, 3785, 3799, + 3785, 3807, 3785, 3797, 3785, 3809, 3808, 77, + 3810, 3810, 3810, 3324, 3780, 3780, 3781, 3782, + 3783, 3784, 3811, 3811, 3811, 3324, 3813, 3812, + 77, 3815, 3814, 77, 3817, 3816, 77, 3818, + 2653, 3819, 3819, 3820, 3821, 3823, 3824, 3822, + 2653, 3825, 3825, 3826, 3827, 3829, 3830, 3828, + 2653, 3831, 3831, 3832, 3833, 3835, 3836, 3834, + 2653, 3837, 3837, 3838, 3839, 3841, 3842, 3840, + 2653, 3843, 3843, 3844, 3845, 3847, 3848, 3846, + 2653, 3849, 3849, 3850, 3851, 3852, 3854, 3855, + 3853, 3853, 3853, 3324, 3856, 3856, 3856, 3856, + 3324, 3857, 3857, 3857, 3324, 3856, 3856, 3856, + 3856, 3858, 3858, 3858, 3324, 3860, 3859, 77, + 3862, 3861, 77, 3864, 3863, 77, 3865, 2653, + 3866, 3866, 3867, 3868, 3870, 3871, 3869, 2653, + 3872, 3872, 3873, 3874, 3876, 3877, 3875, 2653, + 3878, 3878, 3879, 3880, 3882, 3883, 3881, 2653, + 3884, 3884, 3885, 3886, 3888, 3889, 3887, 2653, + 3890, 3890, 3891, 3892, 3894, 3895, 3893, 2653, + 3896, 3896, 3897, 3898, 3900, 3901, 3899, 3899, + 3899, 3324, 3902, 3902, 3902, 3324, 3903, 3903, + 3904, 3905, 3906, 3907, 3908, 3908, 3909, 3910, + 3899, 3899, 3899, 3324, 3912, 3911, 3324, 3914, + 3913, 77, 3916, 3915, 77, 3918, 3917, 77, + 3919, 2653, 3920, 3920, 3921, 3922, 3924, 3925, + 3923, 2653, 3926, 3926, 3927, 3928, 3930, 3931, + 3929, 2653, 3932, 3932, 3932, 3932, 3933, 2653, + 3934, 3934, 3934, 3934, 77, 3936, 3935, 77, + 3937, 2653, 3938, 3938, 3939, 3940, 3942, 3943, + 3941, 2653, 3944, 3944, 3945, 3946, 3948, 3949, + 3947, 2653, 3950, 3950, 3951, 3952, 3954, 3955, + 3953, 2653, 3956, 3956, 3957, 3958, 3960, 3961, + 3959, 2653, 3962, 3962, 3963, 3964, 3966, 3967, + 3965, 2653, 3968, 3968, 3969, 3970, 3972, 3973, + 3971, 3971, 3971, 3324, 3974, 3974, 3974, 3324, + 3975, 3975, 3976, 3977, 3978, 3979, 3980, 3980, + 3981, 3982, 3971, 3971, 3971, 3324, 3984, 3983, + 3324, 3986, 3985, 77, 3988, 3987, 77, 3990, + 3989, 77, 3991, 2653, 3992, 3992, 3993, 3994, + 3996, 3997, 3995, 2653, 3998, 3998, 3999, 4000, + 4001, 4002, 4003, 4001, 2630, 4004, 4005, 4004, + 4004, 4004, 4005, 2630, 4007, 4006, 77, 4008, + 2653, 4009, 4009, 4010, 4011, 4013, 4014, 4012, + 2653, 4015, 4015, 4016, 4017, 4019, 4020, 4018, + 4018, 4018, 3324, 4021, 4021, 4021, 3324, 4022, + 4022, 4022, 3324, 4023, 4023, 4023, 3324, 4025, + 4024, 4026, 4026, 4026, 3324, 4027, 4027, 4027, + 3324, 4028, 4028, 4028, 3324, 4029, 4029, 4029, + 3324, 4031, 4025, 4031, 4031, 4031, 4030, 4033, + 4032, 77, 4034, 4034, 4034, 3324, 4035, 4035, + 4035, 3324, 4037, 4036, 4038, 4038, 4038, 3324, + 4039, 4039, 4039, 3324, 4040, 4037, 4040, 4040, + 4040, 4036, 4041, 4041, 4041, 3324, 4042, 4042, + 4042, 3324, 4043, 4036, 4044, 4044, 4044, 3324, + 4045, 4045, 4045, 3324, 4046, 4043, 4046, 4046, + 4046, 4036, 4047, 2653, 4048, 4048, 4049, 4050, + 4052, 4053, 4051, 2653, 4054, 4054, 4055, 4056, + 4058, 4059, 4057, 2653, 4060, 4060, 4061, 4062, + 4064, 4065, 4063, 2653, 4067, 4067, 4068, 4069, + 4070, 4071, 4066, 4066, 4066, 77, 4072, 4072, + 4072, 4072, 77, 4074, 4073, 77, 4076, 4075, + 77, 4077, 2653, 4078, 4078, 4079, 4080, 4082, + 4083, 4081, 2653, 4085, 4085, 4086, 4087, 4088, + 4089, 4084, 4084, 4084, 77, 4090, 4090, 4091, + 4092, 4093, 4094, 77, 4096, 4096, 4097, 4098, + 4099, 4100, 4095, 4095, 4095, 77, 4101, 4101, + 4101, 4101, 77, 4103, 4102, 77, 4105, 4104, + 77, 4106, 2653, 4107, 4107, 4108, 4109, 4111, + 4112, 4110, 2653, 4113, 4113, 4114, 4115, 4116, + 4116, 4116, 4117, 4118, 4116, 4116, 4116, 77, + 4119, 4119, 4119, 4119, 77, 4120, 4120, 4120, + 4120, 77, 4122, 4121, 77, 4123, 4123, 4123, + 77, 4124, 4124, 4125, 4126, 4127, 4128, 77, + 4124, 4124, 4125, 4126, 4127, 4128, 4129, 4129, + 4129, 77, 4130, 4130, 4131, 4132, 4133, 4134, + 77, 4130, 4130, 4131, 4132, 4133, 4134, 4135, + 2653, 4136, 4136, 4137, 4138, 4140, 4141, 4139, + 2653, 4142, 4142, 4143, 4144, 4145, 4145, 4145, + 4146, 4147, 4145, 4145, 4145, 77, 4148, 4148, + 4148, 4148, 77, 4150, 4149, 77, 4152, 4151, + 77, 4154, 4153, 77, 4156, 4156, 4157, 4158, + 4159, 4160, 4160, 4160, 4161, 4162, 4163, 4164, + 4160, 4160, 4160, 4155, 4165, 4165, 4166, 4167, + 4168, 4169, 75, 4170, 4169, 4161, 4162, 4171, + 4172, 4173, 4174, 4175, 4176, 75, 75, 4169, + 75, 4169, 75, 4169, 75, 900, 4178, 4178, + 4157, 4179, 4180, 4160, 4181, 4182, 4183, 4184, + 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, + 4193, 4194, 4195, 4196, 4197, 4198, 4160, 4160, + 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, + 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, + 4197, 4198, 4161, 4162, 4199, 4200, 4160, 4160, + 4160, 4177, 4178, 4178, 4157, 4179, 4180, 4160, + 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, + 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, + 4219, 4220, 4160, 4160, 4203, 4204, 4205, 4206, + 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, + 4215, 4216, 4217, 4218, 4219, 4220, 4161, 4162, + 4199, 4200, 4160, 4202, 4160, 4160, 4201, 4222, + 4222, 4223, 4224, 4225, 4226, 4226, 4226, 4227, + 4228, 4229, 4230, 4226, 4226, 4226, 4221, 4156, + 4156, 4157, 4231, 4232, 4160, 4203, 4204, 4205, + 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, + 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4160, + 4160, 4203, 4204, 4205, 4206, 4207, 4208, 4209, + 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, + 4218, 4219, 4220, 4161, 4162, 4233, 4234, 4160, + 4202, 4160, 4160, 4201, 4235, 4235, 4157, 4236, + 4237, 4160, 4160, 4160, 89, 90, 4238, 4239, + 4160, 4160, 4160, 900, 4240, 4240, 4166, 4241, + 4242, 4169, 75, 4170, 4169, 89, 90, 4238, + 4243, 107, 108, 4238, 4244, 75, 75, 4169, + 75, 4169, 75, 4169, 75, 900, 4165, 4165, + 4166, 4167, 4168, 4169, 75, 4247, 4248, 4249, + 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, + 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4170, + 4169, 4247, 4248, 4249, 4250, 4251, 4252, 4253, + 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, + 4262, 4263, 4264, 4161, 4162, 4171, 4172, 4173, + 4174, 4175, 4176, 75, 75, 4169, 4246, 75, + 4169, 75, 4169, 75, 4245, 4240, 4240, 4166, + 4241, 4242, 4169, 75, 4247, 4248, 4249, 4250, + 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, + 4259, 4260, 4261, 4262, 4263, 4264, 4170, 4169, + 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, + 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, + 4263, 4264, 89, 90, 4265, 4243, 107, 108, + 4265, 4244, 75, 75, 4169, 4246, 75, 4169, + 75, 4169, 75, 4245, 807, 807, 807, 807, + 1065, 1066, 1065, 1068, 1065, 1066, 1067, 1066, + 1061, 807, 807, 807, 1223, 1223, 1224, 1225, + 1192, 1193, 1194, 1192, 1226, 1227, 1192, 1192, + 1192, 1198, 807, 1238, 1238, 1239, 1240, 1233, + 1241, 1242, 1243, 1243, 1244, 1245, 1233, 1233, + 1233, 1232, 1247, 1246, 1232, 807, 807, 1481, + 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, + 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, + 1497, 1498, 1499, 1500, 1501, 1484, 1485, 1486, + 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, + 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, + 1503, 1504, 1504, 1505, 1506, 1472, 1529, 1528, + 1472, 807, 2092, 2092, 2093, 2094, 2095, 2096, + 2097, 2097, 2098, 2099, 2088, 2088, 2088, 2084, + 2101, 2100, 2084, 2120, 2120, 2121, 2122, 2124, + 2125, 2123, 2123, 2123, 2084, 2070, 2127, 2127, + 2128, 2129, 2130, 2131, 2132, 2132, 2133, 2134, + 2123, 2123, 2123, 2084, 2136, 2135, 2084, 2138, + 2137, 2070, 807, 807, 2222, 2222, 2223, 2224, + 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, + 2233, 2234, 2235, 2236, 2236, 2237, 2238, 2213, + 2254, 2253, 2213, 807, 807, 807, 807, 807, + 807, 807, 807, 807, 807, 2848, 2848, 2849, + 2850, 2851, 2852, 2853, 2853, 2854, 2855, 2847, + 2847, 2847, 2838, 2857, 2856, 2838, 807, 807, + 3021, 3021, 3022, 3023, 3024, 3025, 2970, 2970, + 3026, 3027, 2861, 3029, 3028, 2861, 3003, 3003, + 3004, 3005, 3007, 3008, 2970, 2970, 3009, 3010, + 3006, 2861, 3041, 3040, 2861, 2984, 2984, 2985, + 2986, 2988, 2989, 2970, 2970, 2990, 2991, 2987, + 2861, 3054, 3053, 2861, 2964, 2964, 2965, 2966, + 2968, 2969, 2970, 2970, 2971, 2972, 2967, 2861, + 3067, 3066, 2861, 807, 807, 807, 807, 3265, + 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, + 3273, 3273, 3274, 3275, 3264, 3294, 3293, 77, + 807, 3332, 3332, 3333, 3334, 3335, 3336, 3337, + 3337, 3338, 3339, 3328, 3328, 3328, 3324, 3341, + 3340, 3324, 807, 3374, 3374, 3375, 3376, 3377, + 3378, 3379, 3379, 3380, 3381, 3370, 3370, 3370, + 3324, 3383, 3382, 3324, 807, 3428, 3428, 3429, + 3430, 3434, 3434, 3434, 3434, 3439, 3440, 3434, + 3434, 3441, 3442, 3447, 3452, 3451, 3447, 3425, + 3425, 3426, 3427, 3448, 3435, 3436, 3448, 3448, + 3448, 3447, 3450, 3449, 3447, 3448, 3425, 3425, + 3426, 3427, 3428, 3428, 3429, 3430, 3431, 3431, + 3432, 3433, 3434, 3434, 3434, 3434, 3435, 3436, + 3434, 3434, 3437, 3438, 3439, 3440, 3434, 3434, + 3441, 3442, 3443, 3444, 3434, 3434, 3445, 3446, + 3448, 3448, 3448, 3447, 3450, 3452, 3454, 3449, + 3451, 3453, 3447, 807, 807, 807, 807, 807, + 807, 807, 3903, 3903, 3904, 3905, 3906, 3907, + 3908, 3908, 3909, 3910, 3899, 3899, 3899, 3324, + 3912, 3911, 3324, 807, 807, 3975, 3975, 3976, + 3977, 3978, 3979, 3980, 3980, 3981, 3982, 3971, + 3971, 3971, 3324, 3984, 3983, 3324, 807, 807, + 807, 807, 807, 807, 807, 807, 0 }; static const short _zone_scanner_trans_targs[] = { 0, 1, 1, 1, 2, 4, 17, 40, 57, 64, 184, 84, 88, 96, 102, 118, - 128, 131, 138, 157, 167, 170, 176, 1483, - 192, 1488, 314, 0, 3, 3, 3, 2, + 128, 131, 138, 157, 167, 170, 176, 1474, + 192, 1479, 314, 0, 3, 3, 3, 2, 207, 207, 207, 207, 207, 3, 210, 0, 3, 3, 3, 4, 17, 40, 57, 64, 73, 84, 88, 96, 102, 118, 128, 131, @@ -5285,15 +5149,15 @@ static const short _zone_scanner_trans_targs[] = { 5, 5, 5, 277, 280, 284, 5, 10, 6, 11, 20, 6, 5, 0, 5, 5, 9, 5, 10, 11, 20, 0, 7, 7, - 7, 1483, 8, 0, 7, 7, 7, 1483, - 8, 8, 1483, 6, 6, 10, 5, 12, - 12, 12, 13, 1489, 217, 291, 12, 12, - 12, 13, 1489, 217, 291, 13, 1484, 14, + 7, 1474, 8, 0, 7, 7, 7, 1474, + 8, 8, 1474, 6, 6, 10, 5, 12, + 12, 12, 13, 1480, 217, 291, 12, 12, + 12, 13, 1480, 217, 291, 13, 1475, 14, 0, 14, 14, 15, 213, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 1491, 286, - 1489, 287, 1492, 289, 0, 16, 16, 16, - 1485, 317, 0, 16, 16, 16, 1485, 317, + 231, 232, 233, 234, 235, 236, 1482, 286, + 1480, 287, 1483, 289, 0, 16, 16, 16, + 1476, 317, 0, 16, 16, 16, 1476, 317, 18, 22, 29, 32, 36, 19, 5, 5, 5, 5, 10, 6, 11, 20, 21, 21, 21, 13, 21, 21, 21, 13, 23, 28, @@ -5364,16 +5228,16 @@ static const short _zone_scanner_trans_targs[] = { 174, 175, 5, 5, 5, 5, 10, 6, 11, 20, 177, 178, 179, 180, 181, 5, 5, 5, 5, 10, 6, 11, 20, 182, - 75, 183, 183, 183, 1486, 315, 185, 186, + 75, 183, 183, 183, 1477, 315, 185, 186, 186, 186, 186, 191, 186, 186, 186, 187, 4, 17, 40, 57, 64, 76, 84, 88, 96, 102, 118, 128, 131, 138, 157, 167, 170, 176, 186, 191, 75, 75, 75, 187, 188, 188, 188, 188, 188, 75, 182, 189, 189, 190, 190, 190, 190, 190, 75, 75, - 75, 189, 75, 182, 191, 186, 192, 1483, + 75, 189, 75, 182, 191, 186, 192, 1474, 0, 194, 239, 245, 195, 196, 197, 198, - 199, 200, 1487, 0, 202, 202, 202, 202, + 199, 200, 1478, 0, 202, 202, 202, 202, 203, 202, 202, 202, 202, 203, 203, 0, 202, 0, 205, 205, 205, 205, 206, 205, 205, 205, 205, 206, 206, 205, 208, 208, @@ -5381,1215 +5245,1158 @@ static const short _zone_scanner_trans_targs[] = { 208, 3, 210, 210, 3, 0, 212, 212, 212, 212, 293, 294, 295, 212, 212, 212, 212, 293, 294, 295, 0, 214, 214, 214, - 1484, 13, 1489, 217, 1490, 291, 214, 214, - 214, 1484, 1490, 215, 215, 215, 1488, 216, - 216, 1488, 218, 218, 218, 1483, 8, 218, + 1475, 13, 1480, 217, 1481, 291, 214, 214, + 214, 1475, 1481, 215, 215, 215, 1479, 216, + 216, 1479, 218, 218, 218, 1474, 8, 218, 218, 218, 8, 219, 219, 219, 237, 275, - 237, 1491, 0, 240, 241, 242, 243, 244, - 1487, 246, 247, 1487, 0, 215, 215, 215, - 1488, 216, 0, 250, 250, 250, 1486, 251, - 250, 250, 250, 1486, 251, 251, 1486, 0, - 253, 253, 253, 1491, 237, 1492, 275, 253, - 253, 253, 1491, 1492, 272, 0, 272, 272, - 272, 273, 215, 215, 215, 1488, 216, 274, - 1488, 274, 274, 216, 274, 274, 274, 216, + 237, 1482, 0, 240, 241, 242, 243, 244, + 1478, 246, 247, 1478, 0, 215, 215, 215, + 1479, 216, 0, 250, 250, 250, 1477, 251, + 250, 250, 250, 1477, 251, 251, 1477, 0, + 253, 253, 253, 1482, 237, 1483, 275, 253, + 253, 253, 1482, 1483, 272, 0, 272, 272, + 272, 273, 215, 215, 215, 1479, 216, 274, + 1479, 274, 274, 216, 274, 274, 274, 216, 276, 276, 276, 237, 276, 276, 276, 237, 278, 279, 5, 5, 5, 5, 10, 6, 11, 20, 281, 282, 283, 5, 5, 5, 5, 10, 6, 11, 20, 285, 5, 5, - 5, 5, 10, 6, 11, 20, 286, 1491, - 288, 288, 288, 1483, 288, 288, 288, 1483, + 5, 5, 10, 6, 11, 20, 286, 1482, + 288, 288, 288, 1474, 288, 288, 288, 1474, 290, 290, 290, 290, 290, 290, 292, 292, 292, 292, 292, 292, 293, 212, 219, 219, 219, 237, 275, 296, 296, 296, 296, 296, - 296, 0, 314, 1488, 315, 1486, 317, 1485, - 318, 1493, 318, 318, 320, 1494, 320, 1494, - 0, 322, 328, 329, 324, 1495, 322, 323, - 324, 1495, 322, 324, 325, 0, 326, 327, - 1495, 322, 323, 324, 1495, 0, 331, 336, - 332, 1496, 331, 1497, 332, 0, 333, 334, - 335, 1496, 331, 1497, 332, 336, 337, 338, - 339, 336, 337, 338, 339, 0, 1496, 340, + 296, 0, 314, 1479, 315, 1477, 317, 1476, + 318, 1484, 318, 318, 320, 1485, 320, 1485, + 0, 322, 328, 329, 324, 1486, 322, 323, + 324, 1486, 322, 324, 325, 0, 326, 327, + 1486, 322, 323, 324, 1486, 0, 331, 336, + 332, 1487, 331, 1488, 332, 0, 333, 334, + 335, 1487, 331, 1488, 332, 336, 337, 338, + 339, 336, 337, 338, 339, 0, 1487, 340, 341, 342, 336, 337, 338, 339, 0, 344, 344, 344, 344, 351, 0, 345, 0, 346, 346, 346, 345, 348, 348, 348, 348, 348, - 1498, 347, 0, 346, 346, 346, 1498, 347, - 347, 1498, 349, 0, 349, 350, 350, 350, - 350, 350, 346, 346, 346, 349, 1498, 347, + 1489, 347, 0, 346, 346, 346, 1489, 347, + 347, 1489, 349, 0, 349, 350, 350, 350, + 350, 350, 346, 346, 346, 349, 1489, 347, 351, 344, 0, 353, 353, 353, 353, 363, 354, 362, 358, 354, 355, 358, 0, 356, - 356, 356, 354, 358, 1499, 357, 356, 356, - 356, 1499, 357, 357, 1499, 359, 0, 360, + 356, 356, 354, 358, 1490, 357, 356, 356, + 356, 1490, 357, 357, 1490, 359, 0, 360, 361, 354, 355, 358, 363, 353, 365, 365, 365, 365, 380, 366, 0, 0, 367, 367, - 367, 1500, 371, 377, 0, 367, 367, 367, - 368, 376, 372, 1500, 371, 377, 0, 368, - 369, 372, 370, 370, 370, 368, 372, 1500, - 371, 370, 370, 370, 371, 1500, 373, 0, - 374, 375, 368, 369, 372, 377, 1501, 378, + 367, 1491, 371, 377, 0, 367, 367, 367, + 368, 376, 372, 1491, 371, 377, 0, 368, + 369, 372, 370, 370, 370, 368, 372, 1491, + 371, 370, 370, 370, 371, 1491, 373, 0, + 374, 375, 368, 369, 372, 377, 1492, 378, 378, 378, 378, 379, 379, 378, 380, 365, 0, 382, 383, 384, 387, 385, 385, 385, - 385, 385, 386, 1502, 1503, 1504, 386, 385, - 0, 389, 389, 389, 389, 394, 1505, 1506, - 1507, 389, 389, 389, 390, 395, 416, 433, - 440, 449, 457, 461, 469, 475, 491, 501, - 504, 511, 530, 540, 543, 549, 389, 394, - 1505, 1506, 1507, 389, 389, 389, 391, 555, - 559, 389, 394, 1505, 1506, 1507, 392, 393, - 389, 389, 389, 389, 394, 1505, 1506, 1507, - 394, 389, 396, 398, 405, 408, 412, 397, - 389, 389, 389, 389, 394, 1505, 1506, 1507, - 399, 404, 400, 401, 402, 403, 389, 389, - 389, 389, 394, 1505, 1506, 1507, 389, 389, - 389, 389, 394, 1505, 1506, 1507, 406, 407, - 389, 389, 389, 389, 394, 1505, 1506, 1507, - 409, 410, 411, 389, 389, 389, 389, 394, - 1505, 1506, 1507, 413, 414, 415, 389, 389, - 389, 389, 394, 1505, 1506, 1507, 417, 421, - 429, 418, 419, 420, 389, 389, 389, 389, - 394, 1505, 1506, 1507, 422, 425, 423, 424, - 389, 389, 389, 389, 394, 1505, 1506, 1507, - 426, 427, 428, 389, 389, 389, 389, 394, - 1505, 1506, 1507, 389, 389, 389, 430, 389, - 394, 1505, 1506, 1507, 431, 432, 389, 389, - 389, 389, 394, 1505, 1506, 1507, 434, 435, - 436, 438, 437, 389, 389, 389, 389, 394, - 1505, 1506, 1507, 439, 389, 389, 389, 389, - 394, 1505, 1506, 1507, 441, 445, 442, 443, - 444, 389, 389, 389, 389, 394, 1505, 1506, - 1507, 446, 447, 448, 389, 389, 389, 389, - 394, 1505, 1506, 1507, 450, 451, 452, 453, - 454, 455, 456, 389, 389, 389, 389, 394, - 1505, 1506, 1507, 458, 460, 459, 389, 389, - 389, 389, 394, 1505, 1506, 1507, 389, 389, - 389, 389, 394, 1505, 1506, 1507, 462, 464, - 466, 468, 463, 389, 389, 389, 389, 394, - 1505, 1506, 1507, 465, 389, 389, 389, 389, - 394, 1505, 1506, 1507, 467, 389, 389, 389, - 389, 394, 1505, 1506, 1507, 389, 389, 389, - 389, 394, 1505, 1506, 1507, 470, 474, 471, - 472, 473, 389, 389, 389, 389, 394, 1505, - 1506, 1507, 389, 389, 389, 389, 394, 1505, - 1506, 1507, 476, 480, 482, 477, 478, 479, - 389, 389, 389, 389, 394, 1505, 1506, 1507, - 481, 389, 389, 389, 389, 394, 1505, 1506, - 1507, 389, 389, 389, 483, 389, 394, 1505, - 1506, 1507, 484, 389, 389, 389, 485, 389, - 394, 1505, 1506, 1507, 389, 389, 389, 486, - 389, 394, 1505, 1506, 1507, 487, 488, 489, - 490, 389, 389, 389, 389, 394, 1505, 1506, - 1507, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 389, 389, 389, 389, 394, 1505, - 1506, 1507, 502, 503, 389, 389, 389, 389, - 394, 1505, 1506, 1507, 505, 506, 510, 389, - 389, 389, 389, 394, 1505, 1506, 1507, 507, - 508, 509, 389, 389, 389, 389, 394, 1505, - 1506, 1507, 389, 389, 389, 389, 394, 1505, - 1506, 1507, 512, 517, 519, 521, 523, 527, - 513, 514, 515, 516, 389, 389, 389, 389, - 394, 1505, 1506, 1507, 518, 389, 389, 389, - 389, 394, 1505, 1506, 1507, 520, 389, 389, - 389, 389, 394, 1505, 1506, 1507, 522, 389, - 389, 389, 389, 394, 1505, 1506, 1507, 524, - 525, 526, 389, 389, 389, 389, 394, 1505, - 1506, 1507, 528, 529, 389, 389, 389, 389, - 394, 1505, 1506, 1507, 531, 534, 536, 532, - 533, 389, 389, 389, 389, 394, 1505, 1506, - 1507, 535, 389, 389, 389, 389, 394, 1505, - 1506, 1507, 537, 538, 539, 389, 389, 389, - 539, 389, 394, 1505, 1506, 1507, 541, 542, - 389, 389, 389, 389, 394, 1505, 1506, 1507, - 544, 545, 546, 547, 548, 389, 389, 389, - 389, 394, 1505, 1506, 1507, 550, 551, 552, - 553, 554, 389, 389, 389, 389, 394, 1505, - 1506, 1507, 556, 557, 558, 389, 389, 389, - 389, 394, 1505, 1506, 1507, 560, 389, 389, - 389, 389, 394, 1505, 1506, 1507, 0, 562, - 562, 562, 562, 569, 0, 563, 564, 564, - 564, 563, 564, 568, 0, 564, 564, 564, - 565, 564, 568, 566, 566, 566, 566, 566, - 567, 1508, 1509, 1510, 567, 566, 568, 564, - 569, 562, 571, 571, 571, 571, 579, 572, - 578, 1511, 1511, 1511, 578, 1512, 1511, 1515, - 573, 573, 573, 574, 573, 577, 575, 575, - 575, 575, 575, 576, 1512, 1513, 1514, 576, - 575, 577, 573, 573, 573, 573, 573, 577, - 579, 571, 0, 581, 585, 592, 595, 608, - 612, 627, 632, 582, 583, 584, 1516, 586, - 587, 588, 589, 590, 591, 1516, 593, 594, - 1516, 596, 597, 598, 603, 599, 600, 601, - 602, 1516, 604, 605, 606, 607, 1516, 609, - 610, 0, 611, 1516, 611, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 1516, 628, 629, 630, 631, - 1516, 633, 634, 635, 1516, 0, 637, 637, - 637, 637, 644, 1517, 1518, 1519, 637, 637, - 637, 638, 645, 657, 672, 697, 702, 717, - 732, 737, 637, 644, 1517, 1518, 1519, 639, - 640, 641, 642, 643, 745, 637, 637, 637, - 637, 644, 1517, 1518, 1519, 644, 637, 646, - 647, 648, 649, 650, 651, 652, 653, 654, - 637, 637, 637, 637, 644, 1517, 1518, 1519, - 655, 656, 637, 637, 637, 637, 644, 1517, - 1518, 1519, 658, 659, 660, 661, 667, 662, - 663, 664, 666, 665, 665, 662, 668, 669, - 671, 670, 670, 667, 673, 674, 675, 686, - 676, 677, 678, 679, 680, 0, 681, 684, - 682, 656, 683, 682, 682, 637, 637, 637, - 685, 684, 637, 644, 1517, 1518, 1519, 684, - 687, 688, 689, 690, 691, 692, 695, 693, - 656, 694, 693, 693, 637, 637, 637, 696, - 695, 637, 644, 1517, 1518, 1519, 695, 698, - 699, 0, 700, 637, 637, 637, 700, 701, - 637, 644, 1517, 1518, 1519, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 715, - 713, 656, 714, 713, 637, 637, 637, 716, - 637, 644, 1517, 1518, 1519, 715, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 637, 637, 637, 637, - 644, 1517, 1518, 1519, 733, 734, 735, 736, - 637, 637, 637, 637, 644, 1517, 1518, 1519, - 738, 739, 740, 741, 742, 744, 743, 656, - 743, 637, 637, 637, 744, 637, 644, 1517, - 1518, 1519, 746, 656, 0, 748, 749, 764, - 803, 811, 824, 1520, 748, 750, 751, 1520, - 752, 1520, 753, 754, 755, 756, 757, 758, - 759, 760, 761, 762, 763, 1520, 765, 794, - 766, 772, 767, 768, 769, 770, 771, 1520, - 773, 774, 775, 776, 785, 777, 778, 779, - 780, 781, 782, 783, 784, 1520, 786, 787, - 788, 789, 790, 791, 792, 793, 1520, 795, - 800, 796, 797, 798, 799, 1520, 801, 802, - 1520, 804, 805, 806, 807, 808, 809, 810, - 1520, 812, 813, 814, 815, 816, 817, 818, - 821, 819, 820, 1520, 822, 823, 1520, 825, - 826, 827, 830, 828, 829, 1520, 831, 832, - 833, 845, 848, 1520, 834, 835, 836, 837, - 838, 839, 840, 841, 842, 843, 844, 1520, - 846, 847, 1520, 849, 850, 1520, 0, 852, - 853, 859, 876, 879, 885, 889, 1521, 852, - 854, 855, 856, 857, 858, 1521, 860, 866, - 872, 861, 862, 863, 864, 865, 1521, 867, - 869, 868, 1521, 870, 871, 1521, 873, 874, - 875, 1521, 877, 878, 1521, 880, 882, 881, - 1521, 883, 884, 1521, 886, 887, 888, 1521, - 890, 891, 1521, 0, 893, 894, 1522, 893, - 895, 896, 897, 898, 899, 1522, 0, 901, - 1523, 901, 903, 1524, 905, 906, 906, 906, - 906, 935, 906, 906, 906, 907, 906, 935, - 908, 908, 908, 908, 934, 0, 908, 908, - 908, 909, 908, 934, 910, 910, 910, 909, - 910, 933, 910, 910, 910, 911, 910, 933, - 0, 912, 912, 912, 911, 930, 930, 930, - 930, 930, 912, 929, 912, 912, 912, 913, - 912, 929, 914, 914, 914, 913, 926, 926, - 926, 926, 926, 914, 925, 914, 914, 914, - 915, 914, 925, 916, 916, 916, 915, 922, - 922, 922, 922, 922, 916, 921, 916, 916, - 916, 917, 916, 921, 1525, 917, 918, 918, - 918, 918, 918, 919, 919, 920, 920, 920, - 920, 920, 1525, 919, 921, 916, 923, 923, - 924, 924, 924, 924, 924, 916, 916, 916, - 923, 916, 921, 925, 914, 927, 927, 928, - 928, 928, 928, 928, 914, 914, 914, 927, - 914, 925, 929, 912, 931, 931, 932, 932, - 932, 932, 932, 912, 912, 912, 931, 912, - 929, 933, 910, 934, 908, 935, 906, 937, - 938, 938, 938, 938, 940, 939, 938, 938, - 938, 938, 940, 1526, 940, 938, 942, 943, - 943, 943, 943, 945, 943, 943, 943, 944, - 943, 945, 1527, 945, 943, 947, 948, 948, - 948, 947, 948, 950, 948, 948, 948, 949, - 948, 950, 1528, 950, 948, 952, 0, 953, - 953, 953, 953, 954, 1529, 1530, 1531, 952, - 953, 953, 953, 953, 954, 1529, 1530, 1531, - 954, 953, 956, 1532, 956, 0, 958, 959, - 959, 959, 958, 959, 1011, 959, 959, 959, - 960, 964, 1006, 959, 1011, 961, 961, 961, - 960, 961, 1010, 961, 961, 961, 962, 961, - 1010, 963, 963, 963, 1008, 962, 963, 1007, - 963, 963, 963, 963, 1007, 965, 965, 965, - 965, 1005, 966, 967, 967, 967, 966, 967, - 1004, 967, 967, 967, 968, 972, 999, 967, - 1004, 969, 969, 969, 968, 969, 1003, 969, - 969, 969, 970, 969, 1003, 971, 971, 971, - 1001, 970, 971, 1000, 971, 971, 971, 971, - 1000, 973, 973, 973, 973, 998, 974, 975, - 975, 976, 976, 976, 995, 975, 997, 976, - 994, 1533, 1540, 1541, 976, 976, 976, 977, - 976, 994, 1533, 1540, 1541, 978, 978, 978, - 991, 977, 993, 978, 990, 1533, 1538, 1539, - 978, 978, 978, 979, 978, 990, 1538, 1539, - 980, 980, 980, 987, 979, 989, 980, 986, - 1533, 1536, 1537, 980, 980, 980, 981, 980, - 986, 1536, 1537, 982, 982, 982, 984, 981, - 982, 983, 1533, 1534, 1535, 982, 982, 982, - 982, 983, 1534, 1535, 983, 982, 982, 982, - 982, 985, 982, 983, 1533, 1534, 1535, 985, - 986, 980, 980, 980, 980, 988, 989, 980, - 986, 1533, 1536, 1537, 988, 990, 978, 978, - 978, 978, 992, 993, 978, 990, 1533, 1538, - 1539, 992, 994, 976, 976, 976, 976, 996, - 997, 976, 994, 1533, 1540, 1541, 996, 998, - 973, 973, 973, 973, 973, 998, 1000, 971, - 971, 971, 971, 1002, 971, 1000, 1002, 1003, - 969, 1004, 967, 1005, 965, 965, 965, 965, - 965, 1005, 1007, 963, 963, 963, 963, 1009, - 963, 1007, 1009, 1010, 961, 1011, 959, 1013, - 1014, 1014, 1014, 1013, 1014, 1022, 1014, 1014, - 1014, 1015, 1014, 1022, 1016, 1016, 1016, 1015, - 1016, 1021, 1016, 1016, 1016, 1017, 1016, 1021, - 1018, 1018, 1018, 1017, 1018, 1020, 1018, 1018, - 1018, 1019, 1018, 1020, 1542, 1020, 1018, 1021, - 1016, 1022, 1014, 1024, 1025, 1025, 1025, 1024, - 1025, 1039, 1025, 1025, 1025, 1026, 1025, 1039, - 1027, 1027, 1027, 1026, 1027, 1038, 1028, 1027, - 1027, 1027, 1027, 1038, 1029, 1029, 1029, 1029, - 1037, 1030, 1029, 1029, 1029, 1029, 1037, 1031, - 1031, 1031, 1031, 1036, 1032, 1031, 1031, 1031, - 1031, 1036, 1033, 1033, 1033, 1033, 1035, 1033, - 1033, 1033, 1034, 1033, 1035, 1543, 1035, 1033, - 1036, 1031, 1037, 1029, 1038, 1027, 1039, 1025, - 1041, 1042, 1042, 1042, 1042, 1050, 1043, 1044, - 1044, 1044, 1043, 1044, 1049, 1044, 1044, 1044, - 1045, 1044, 1049, 1046, 1046, 1046, 1046, 1048, - 1047, 1544, 1048, 1046, 1049, 1044, 1050, 1042, - 0, 1051, 1052, 1051, 1051, 1053, 1059, 1051, - 1058, 1545, 1546, 1547, 1053, 1059, 1054, 0, - 1055, 1055, 1056, 1057, 1051, 1051, 1051, 1057, - 1051, 1058, 1545, 1546, 1547, 1058, 1051, 1060, - 1061, 1061, 1056, 1063, 1064, 1064, 1064, 1063, - 1064, 1074, 1064, 1064, 1064, 1065, 1064, 1074, - 1066, 1066, 1066, 1066, 1073, 1067, 1068, 1068, - 1068, 1067, 1068, 1072, 0, 1068, 1068, 1068, - 1069, 1068, 1072, 1070, 1070, 1070, 1070, 1070, - 1071, 1548, 1549, 1550, 1071, 1070, 1072, 1068, - 1073, 1066, 1074, 1064, 1076, 1077, 1077, 1077, - 1076, 1077, 1084, 1077, 1077, 1077, 1078, 1077, - 1084, 1079, 1079, 1079, 1078, 1079, 1083, 1079, - 1079, 1079, 1080, 1079, 1083, 1081, 1081, 1081, - 1081, 1081, 1082, 1551, 1552, 1553, 1082, 1081, - 1083, 1079, 1084, 1077, 1086, 1087, 1087, 1087, - 1086, 1087, 1123, 0, 1087, 1087, 1087, 1088, - 1102, 1109, 1116, 1087, 1123, 1089, 1089, 1089, - 1089, 1101, 0, 1090, 1091, 1091, 1091, 1090, - 1091, 1100, 1091, 1091, 1091, 1092, 1091, 1100, - 0, 1093, 1093, 1093, 1096, 1096, 1096, 1098, - 1098, 1098, 1554, 1093, 1095, 1557, 1558, 1096, - 1097, 1555, 1556, 1098, 1099, 1559, 1560, 0, - 1094, 1095, 1093, 1097, 1096, 1099, 1098, 1100, - 1091, 1101, 1089, 1103, 1103, 1103, 1103, 1108, - 1104, 1105, 1105, 1105, 1104, 1105, 1107, 0, - 1105, 1105, 1105, 1106, 1105, 1107, 0, 1106, - 1093, 1093, 1093, 1096, 1096, 1096, 1098, 1098, - 1098, 1554, 1093, 1095, 1557, 1558, 1096, 1097, - 1555, 1556, 1098, 1099, 1559, 1560, 1107, 1105, - 1108, 1103, 1110, 1110, 1110, 1110, 1115, 1111, - 1112, 1112, 1112, 1111, 1112, 1114, 1112, 1112, - 1112, 1113, 1112, 1114, 1113, 1093, 1093, 1093, - 1096, 1096, 1096, 1098, 1098, 1098, 1554, 1093, - 1095, 1557, 1558, 1096, 1097, 1555, 1556, 1098, - 1099, 1559, 1560, 1114, 1112, 1115, 1110, 1117, - 1117, 1117, 1117, 1122, 1118, 1119, 1119, 1119, - 1118, 1119, 1121, 1119, 1119, 1119, 1120, 1119, - 1121, 1093, 1093, 1093, 1096, 1096, 1096, 1098, - 1098, 1098, 1554, 1093, 1095, 1557, 1558, 1096, - 1097, 1555, 1556, 1098, 1099, 1559, 1560, 1121, - 1119, 1122, 1117, 1123, 1087, 0, 1125, 1159, - 1180, 1197, 1204, 1213, 1221, 1225, 1233, 1239, - 1255, 1265, 1268, 1275, 1294, 1304, 1307, 1313, - 1126, 1126, 1126, 1150, 1153, 1157, 1126, 1149, - 1126, 1126, 1126, 1127, 1126, 1149, 1128, 1128, - 1128, 1128, 1148, 1129, 1130, 1130, 1130, 1129, - 1130, 1147, 1130, 1130, 1130, 1131, 1130, 1147, - 1132, 1132, 1132, 1131, 1132, 1146, 0, 1132, - 1132, 1132, 1133, 1132, 1146, 1134, 1134, 1134, - 1133, 1134, 1145, 1134, 1134, 1134, 1135, 1134, - 1145, 1136, 1136, 1136, 1135, 1136, 1144, 1136, - 1136, 1136, 1137, 1136, 1144, 1138, 1138, 1138, - 1137, 1138, 1143, 1138, 1138, 1138, 1139, 1138, - 1143, 1140, 1140, 1140, 1140, 1142, 1140, 1140, - 1140, 1141, 1140, 1142, 1561, 1142, 1140, 1143, - 1138, 1144, 1136, 1145, 1134, 1146, 1132, 1147, - 1130, 1148, 1128, 1149, 1126, 1151, 1152, 1126, - 1126, 1126, 1126, 1149, 1154, 1155, 1156, 1126, - 1126, 1126, 1126, 1149, 1158, 1126, 1126, 1126, - 1126, 1149, 1160, 1162, 1169, 1172, 1176, 1161, - 1126, 1126, 1126, 1126, 1149, 1163, 1168, 1164, - 1165, 1166, 1167, 1126, 1126, 1126, 1126, 1149, - 1126, 1126, 1126, 1126, 1149, 1170, 1171, 1126, - 1126, 1126, 1126, 1149, 1173, 1174, 1175, 1126, - 1126, 1126, 1126, 1149, 1177, 1178, 1179, 1126, - 1126, 1126, 1126, 1149, 1181, 1185, 1193, 1182, - 1183, 1184, 1126, 1126, 1126, 1126, 1149, 1186, - 1189, 1187, 1188, 1126, 1126, 1126, 1126, 1149, - 1190, 1191, 1192, 1126, 1126, 1126, 1126, 1149, - 1126, 1126, 1126, 1194, 1126, 1149, 1195, 1196, - 1126, 1126, 1126, 1126, 1149, 1198, 1199, 1200, - 1202, 1201, 1126, 1126, 1126, 1126, 1149, 1203, - 1126, 1126, 1126, 1126, 1149, 1205, 1209, 1206, - 1207, 1208, 1126, 1126, 1126, 1126, 1149, 1210, - 1211, 1212, 1126, 1126, 1126, 1126, 1149, 1214, - 1215, 1216, 1217, 1218, 1219, 1220, 1126, 1126, - 1126, 1126, 1149, 1222, 1224, 1223, 1126, 1126, - 1126, 1126, 1149, 1126, 1126, 1126, 1126, 1149, - 1226, 1228, 1230, 1232, 1227, 1126, 1126, 1126, - 1126, 1149, 1229, 1126, 1126, 1126, 1126, 1149, - 1231, 1126, 1126, 1126, 1126, 1149, 1126, 1126, - 1126, 1126, 1149, 1234, 1238, 1235, 1236, 1237, - 1126, 1126, 1126, 1126, 1149, 1126, 1126, 1126, - 1126, 1149, 1240, 1244, 1246, 1241, 1242, 1243, - 1126, 1126, 1126, 1126, 1149, 1245, 1126, 1126, - 1126, 1126, 1149, 1126, 1126, 1126, 1247, 1126, - 1149, 1248, 1126, 1126, 1126, 1249, 1126, 1149, - 1126, 1126, 1126, 1250, 1126, 1149, 1251, 1252, - 1253, 1254, 1126, 1126, 1126, 1126, 1149, 1256, - 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, - 1126, 1126, 1126, 1126, 1149, 1266, 1267, 1126, - 1126, 1126, 1126, 1149, 1269, 1270, 1274, 1126, - 1126, 1126, 1126, 1149, 1271, 1272, 1273, 1126, - 1126, 1126, 1126, 1149, 1126, 1126, 1126, 1126, - 1149, 1276, 1281, 1283, 1285, 1287, 1291, 1277, - 1278, 1279, 1280, 1126, 1126, 1126, 1126, 1149, - 1282, 1126, 1126, 1126, 1126, 1149, 1284, 1126, - 1126, 1126, 1126, 1149, 1286, 1126, 1126, 1126, - 1126, 1149, 1288, 1289, 1290, 1126, 1126, 1126, - 1126, 1149, 1292, 1293, 1126, 1126, 1126, 1126, - 1149, 1295, 1298, 1300, 1296, 1297, 1126, 1126, - 1126, 1126, 1149, 1299, 1126, 1126, 1126, 1126, - 1149, 1301, 1302, 0, 1303, 1126, 1126, 1126, - 1303, 1126, 1149, 1305, 1306, 1126, 1126, 1126, - 1126, 1149, 1308, 1309, 1310, 1311, 1312, 1126, - 1126, 1126, 1126, 1149, 1314, 1315, 1316, 1317, - 1318, 1126, 1126, 1126, 1126, 1149, 1320, 1321, - 1562, 1323, 1324, 1324, 1324, 1323, 1324, 1332, - 1324, 1324, 1324, 1325, 1324, 1332, 1326, 1326, - 1326, 1325, 1326, 1331, 1326, 1326, 1326, 1327, - 1326, 1331, 1328, 1328, 1328, 1328, 1330, 1329, - 1563, 1330, 1328, 1331, 1326, 1332, 1324, 1334, - 1564, 1336, 1337, 1337, 1337, 1336, 1337, 1363, - 1337, 1337, 1337, 1338, 1337, 1363, 1339, 1339, - 1339, 1338, 1339, 1362, 1339, 1339, 1339, 1340, - 1339, 1362, 1341, 1341, 1341, 1340, 1341, 1361, - 1341, 1341, 1341, 1342, 1359, 1341, 1361, 1343, - 1343, 1343, 1343, 1358, 0, 1343, 1343, 1343, - 1344, 1343, 1358, 1345, 1346, 1356, 1347, 1348, - 1355, 1349, 1353, 1350, 1351, 1351, 1352, 1344, - 1565, 1354, 1357, 1358, 1343, 1360, 1359, 1361, - 1341, 1362, 1339, 1363, 1337, 1365, 1366, 1366, - 1366, 1365, 1366, 1376, 1366, 1366, 1366, 1367, - 1366, 1376, 1368, 1368, 1368, 1367, 1368, 1375, - 1368, 1368, 1368, 1369, 1368, 1375, 1370, 1370, - 1370, 1369, 1370, 1374, 1370, 1370, 1370, 1371, - 1372, 1370, 1374, 1566, 1373, 1372, 1374, 1370, - 1375, 1368, 1376, 1366, 1378, 1379, 1379, 1379, - 1378, 1379, 1389, 1379, 1379, 1379, 1380, 1379, - 1389, 1381, 1381, 1381, 1380, 1381, 1388, 1381, - 1381, 1381, 1382, 1381, 1388, 1383, 1383, 1383, - 1382, 1383, 1387, 1383, 1383, 1383, 1384, 1383, - 1387, 1385, 1385, 1385, 1385, 1385, 1386, 1567, - 1568, 1569, 1386, 1385, 1387, 1383, 1388, 1381, - 1389, 1379, 1391, 1392, 1392, 1392, 1391, 1392, - 1395, 1392, 1392, 1392, 1393, 1392, 1395, 1394, - 1393, 1570, 1395, 1392, 1397, 1398, 1398, 1398, - 1397, 1398, 1408, 1398, 1398, 1398, 1399, 1398, - 1408, 1400, 1400, 1400, 1399, 1400, 1407, 1400, - 1400, 1400, 1401, 1400, 1407, 1402, 1402, 1402, - 1401, 1402, 1406, 1402, 1402, 1402, 1403, 1402, - 1406, 1404, 1404, 1404, 1404, 1404, 1405, 1571, - 1572, 1573, 1405, 1404, 1406, 1402, 1407, 1400, - 1408, 1398, 1410, 1411, 1411, 1411, 1410, 1411, - 1413, 1411, 1411, 1411, 1412, 1411, 1413, 1574, - 1412, 1413, 1411, 1415, 1416, 1416, 1416, 1415, - 1416, 1426, 1416, 1416, 1416, 1417, 1416, 1426, - 1418, 1419, 1420, 0, 1421, 1422, 1423, 1424, - 1425, 0, 1575, 1426, 1416, 1428, 1429, 0, - 1430, 1431, 1432, 1576, 1434, 1435, 1436, 1437, - 1438, 1577, 1440, 1441, 1441, 1441, 1440, 1441, - 1446, 1441, 1441, 1441, 1442, 1441, 1446, 1443, - 1443, 1443, 1442, 1443, 1445, 1444, 1443, 1443, - 1443, 1443, 1445, 1578, 1445, 1443, 1446, 1441, - 1448, 1449, 1449, 1449, 1448, 1449, 1454, 1450, - 1449, 1449, 1449, 1449, 1454, 1451, 1451, 1451, - 1451, 1453, 1452, 1451, 1451, 1451, 1451, 1453, - 1579, 1453, 1451, 1454, 1449, 1456, 1457, 1457, - 1457, 1456, 1457, 1460, 1457, 1457, 1457, 1458, - 1457, 1460, 1459, 1580, 1460, 1457, 1462, 1478, - 1463, 1474, 1464, 1465, 1465, 1465, 1465, 1473, - 1465, 1465, 1465, 1466, 1465, 1473, 1467, 1467, - 1467, 1467, 1472, 1468, 1469, 1469, 1469, 1468, - 1469, 1471, 1469, 1469, 1469, 1470, 1469, 1471, - 1581, 1471, 1469, 1472, 1467, 1473, 1465, 1475, - 1476, 1477, 1465, 1465, 1465, 1465, 1473, 1479, - 1480, 1481, 1482, 1465, 1465, 1465, 1482, 1465, - 1473, 0, 1, 193, 1, 1, 201, 1483, - 192, 1488, 314, 14, 238, 14, 14, 248, - 271, 1491, 286, 1489, 287, 1492, 289, 0, - 183, 183, 183, 211, 297, 298, 299, 300, - 316, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 1486, 315, 0, - 204, 211, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 0, 1, 193, 1, 1, - 201, 1483, 192, 1488, 314, 1, 1, 1488, - 314, 215, 215, 215, 1488, 216, 219, 219, - 219, 237, 275, 0, 249, 252, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 1488 + 385, 385, 386, 1493, 1494, 1495, 386, 385, + 0, 389, 399, 420, 437, 444, 453, 461, + 465, 473, 479, 495, 505, 508, 515, 534, + 544, 547, 553, 1496, 390, 393, 397, 391, + 392, 1496, 394, 395, 396, 1496, 398, 1496, + 400, 402, 409, 412, 416, 401, 1496, 403, + 408, 404, 405, 406, 407, 1496, 1496, 410, + 411, 1496, 413, 414, 415, 1496, 417, 418, + 419, 1496, 421, 425, 433, 422, 423, 424, + 1496, 426, 429, 427, 428, 1496, 430, 431, + 432, 1496, 1496, 434, 435, 436, 1496, 438, + 439, 440, 442, 441, 1496, 443, 1496, 445, + 449, 446, 447, 448, 1496, 450, 451, 452, + 1496, 454, 455, 456, 457, 458, 459, 460, + 1496, 462, 464, 463, 1496, 1496, 466, 468, + 470, 472, 467, 1496, 469, 1496, 471, 1496, + 1496, 474, 478, 475, 476, 477, 1496, 1496, + 480, 484, 486, 481, 482, 483, 1496, 485, + 1496, 1496, 487, 488, 1496, 489, 1496, 490, + 491, 492, 493, 494, 1496, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 1496, 506, + 507, 1496, 509, 510, 514, 1496, 511, 512, + 513, 1496, 1496, 516, 521, 523, 525, 527, + 531, 517, 518, 519, 520, 1496, 522, 1496, + 524, 1496, 526, 1496, 528, 529, 530, 1496, + 532, 533, 1496, 535, 538, 540, 536, 537, + 1496, 539, 1496, 541, 542, 0, 543, 1496, + 543, 545, 546, 1496, 548, 549, 550, 551, + 552, 1496, 554, 555, 556, 557, 558, 1496, + 0, 560, 560, 560, 560, 565, 1497, 1498, + 1499, 560, 560, 560, 561, 566, 587, 604, + 611, 620, 628, 632, 640, 646, 662, 672, + 675, 682, 701, 711, 714, 720, 560, 565, + 1497, 1498, 1499, 560, 560, 560, 562, 726, + 730, 560, 565, 1497, 1498, 1499, 563, 564, + 560, 560, 560, 560, 565, 1497, 1498, 1499, + 565, 560, 567, 569, 576, 579, 583, 568, + 560, 560, 560, 560, 565, 1497, 1498, 1499, + 570, 575, 571, 572, 573, 574, 560, 560, + 560, 560, 565, 1497, 1498, 1499, 560, 560, + 560, 560, 565, 1497, 1498, 1499, 577, 578, + 560, 560, 560, 560, 565, 1497, 1498, 1499, + 580, 581, 582, 560, 560, 560, 560, 565, + 1497, 1498, 1499, 584, 585, 586, 560, 560, + 560, 560, 565, 1497, 1498, 1499, 588, 592, + 600, 589, 590, 591, 560, 560, 560, 560, + 565, 1497, 1498, 1499, 593, 596, 594, 595, + 560, 560, 560, 560, 565, 1497, 1498, 1499, + 597, 598, 599, 560, 560, 560, 560, 565, + 1497, 1498, 1499, 560, 560, 560, 601, 560, + 565, 1497, 1498, 1499, 602, 603, 560, 560, + 560, 560, 565, 1497, 1498, 1499, 605, 606, + 607, 609, 608, 560, 560, 560, 560, 565, + 1497, 1498, 1499, 610, 560, 560, 560, 560, + 565, 1497, 1498, 1499, 612, 616, 613, 614, + 615, 560, 560, 560, 560, 565, 1497, 1498, + 1499, 617, 618, 619, 560, 560, 560, 560, + 565, 1497, 1498, 1499, 621, 622, 623, 624, + 625, 626, 627, 560, 560, 560, 560, 565, + 1497, 1498, 1499, 629, 631, 630, 560, 560, + 560, 560, 565, 1497, 1498, 1499, 560, 560, + 560, 560, 565, 1497, 1498, 1499, 633, 635, + 637, 639, 634, 560, 560, 560, 560, 565, + 1497, 1498, 1499, 636, 560, 560, 560, 560, + 565, 1497, 1498, 1499, 638, 560, 560, 560, + 560, 565, 1497, 1498, 1499, 560, 560, 560, + 560, 565, 1497, 1498, 1499, 641, 645, 642, + 643, 644, 560, 560, 560, 560, 565, 1497, + 1498, 1499, 560, 560, 560, 560, 565, 1497, + 1498, 1499, 647, 651, 653, 648, 649, 650, + 560, 560, 560, 560, 565, 1497, 1498, 1499, + 652, 560, 560, 560, 560, 565, 1497, 1498, + 1499, 560, 560, 560, 654, 560, 565, 1497, + 1498, 1499, 655, 560, 560, 560, 656, 560, + 565, 1497, 1498, 1499, 560, 560, 560, 657, + 560, 565, 1497, 1498, 1499, 658, 659, 660, + 661, 560, 560, 560, 560, 565, 1497, 1498, + 1499, 663, 664, 665, 666, 667, 668, 669, + 670, 671, 560, 560, 560, 560, 565, 1497, + 1498, 1499, 673, 674, 560, 560, 560, 560, + 565, 1497, 1498, 1499, 676, 677, 681, 560, + 560, 560, 560, 565, 1497, 1498, 1499, 678, + 679, 680, 560, 560, 560, 560, 565, 1497, + 1498, 1499, 560, 560, 560, 560, 565, 1497, + 1498, 1499, 683, 688, 690, 692, 694, 698, + 684, 685, 686, 687, 560, 560, 560, 560, + 565, 1497, 1498, 1499, 689, 560, 560, 560, + 560, 565, 1497, 1498, 1499, 691, 560, 560, + 560, 560, 565, 1497, 1498, 1499, 693, 560, + 560, 560, 560, 565, 1497, 1498, 1499, 695, + 696, 697, 560, 560, 560, 560, 565, 1497, + 1498, 1499, 699, 700, 560, 560, 560, 560, + 565, 1497, 1498, 1499, 702, 705, 707, 703, + 704, 560, 560, 560, 560, 565, 1497, 1498, + 1499, 706, 560, 560, 560, 560, 565, 1497, + 1498, 1499, 708, 709, 710, 560, 560, 560, + 710, 560, 565, 1497, 1498, 1499, 712, 713, + 560, 560, 560, 560, 565, 1497, 1498, 1499, + 715, 716, 717, 718, 719, 560, 560, 560, + 560, 565, 1497, 1498, 1499, 721, 722, 723, + 724, 725, 560, 560, 560, 560, 565, 1497, + 1498, 1499, 727, 728, 729, 560, 560, 560, + 560, 565, 1497, 1498, 1499, 731, 560, 560, + 560, 560, 565, 1497, 1498, 1499, 0, 733, + 733, 733, 733, 740, 0, 734, 735, 735, + 735, 734, 735, 739, 0, 735, 735, 735, + 736, 735, 739, 737, 737, 737, 737, 737, + 738, 1500, 1501, 1502, 738, 737, 739, 735, + 740, 733, 742, 742, 742, 742, 750, 743, + 749, 1503, 1503, 1503, 749, 1504, 1503, 1507, + 744, 744, 744, 745, 744, 748, 746, 746, + 746, 746, 746, 747, 1504, 1505, 1506, 747, + 746, 748, 744, 744, 744, 744, 744, 748, + 750, 742, 0, 752, 756, 763, 766, 779, + 783, 798, 803, 753, 754, 755, 1508, 757, + 758, 759, 760, 761, 762, 1508, 764, 765, + 1508, 767, 768, 769, 774, 770, 771, 772, + 773, 1508, 775, 776, 777, 778, 1508, 780, + 781, 0, 782, 1508, 782, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, + 795, 796, 797, 1508, 799, 800, 801, 802, + 1508, 804, 805, 806, 1508, 0, 808, 808, + 808, 808, 815, 1509, 1510, 1511, 808, 808, + 808, 809, 816, 828, 843, 868, 873, 888, + 903, 908, 808, 815, 1509, 1510, 1511, 810, + 811, 812, 813, 814, 916, 808, 808, 808, + 808, 815, 1509, 1510, 1511, 815, 808, 817, + 818, 819, 820, 821, 822, 823, 824, 825, + 808, 808, 808, 808, 815, 1509, 1510, 1511, + 826, 827, 808, 808, 808, 808, 815, 1509, + 1510, 1511, 829, 830, 831, 832, 838, 833, + 834, 835, 837, 836, 836, 833, 839, 840, + 842, 841, 841, 838, 844, 845, 846, 857, + 847, 848, 849, 850, 851, 0, 852, 855, + 853, 827, 854, 853, 853, 808, 808, 808, + 856, 855, 808, 815, 1509, 1510, 1511, 855, + 858, 859, 860, 861, 862, 863, 866, 864, + 827, 865, 864, 864, 808, 808, 808, 867, + 866, 808, 815, 1509, 1510, 1511, 866, 869, + 870, 0, 871, 808, 808, 808, 871, 872, + 808, 815, 1509, 1510, 1511, 874, 875, 876, + 877, 878, 879, 880, 881, 882, 883, 886, + 884, 827, 885, 884, 808, 808, 808, 887, + 808, 815, 1509, 1510, 1511, 886, 889, 890, + 891, 892, 893, 894, 895, 896, 897, 898, + 899, 900, 901, 902, 808, 808, 808, 808, + 815, 1509, 1510, 1511, 904, 905, 906, 907, + 808, 808, 808, 808, 815, 1509, 1510, 1511, + 909, 910, 911, 912, 913, 915, 914, 827, + 914, 808, 808, 808, 915, 808, 815, 1509, + 1510, 1511, 917, 827, 0, 919, 920, 935, + 974, 982, 995, 1512, 919, 921, 922, 1512, + 923, 1512, 924, 925, 926, 927, 928, 929, + 930, 931, 932, 933, 934, 1512, 936, 965, + 937, 943, 938, 939, 940, 941, 942, 1512, + 944, 945, 946, 947, 956, 948, 949, 950, + 951, 952, 953, 954, 955, 1512, 957, 958, + 959, 960, 961, 962, 963, 964, 1512, 966, + 971, 967, 968, 969, 970, 1512, 972, 973, + 1512, 975, 976, 977, 978, 979, 980, 981, + 1512, 983, 984, 985, 986, 987, 988, 989, + 992, 990, 991, 1512, 993, 994, 1512, 996, + 997, 998, 1001, 999, 1000, 1512, 1002, 1003, + 1004, 1016, 1019, 1512, 1005, 1006, 1007, 1008, + 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1512, + 1017, 1018, 1512, 1020, 1021, 1512, 0, 1023, + 1024, 1030, 1047, 1050, 1056, 1060, 1513, 1023, + 1025, 1026, 1027, 1028, 1029, 1513, 1031, 1037, + 1043, 1032, 1033, 1034, 1035, 1036, 1513, 1038, + 1040, 1039, 1513, 1041, 1042, 1513, 1044, 1045, + 1046, 1513, 1048, 1049, 1513, 1051, 1053, 1052, + 1513, 1054, 1055, 1513, 1057, 1058, 1059, 1513, + 1061, 1062, 1513, 0, 1064, 1065, 1514, 1064, + 1066, 1067, 1068, 1069, 1070, 1514, 0, 1072, + 1515, 1072, 1074, 1516, 1076, 1077, 1077, 1077, + 1077, 1106, 1077, 1077, 1077, 1078, 1077, 1106, + 1079, 1079, 1079, 1079, 1105, 0, 1079, 1079, + 1079, 1080, 1079, 1105, 1081, 1081, 1081, 1080, + 1081, 1104, 1081, 1081, 1081, 1082, 1081, 1104, + 0, 1083, 1083, 1083, 1082, 1101, 1101, 1101, + 1101, 1101, 1083, 1100, 1083, 1083, 1083, 1084, + 1083, 1100, 1085, 1085, 1085, 1084, 1097, 1097, + 1097, 1097, 1097, 1085, 1096, 1085, 1085, 1085, + 1086, 1085, 1096, 1087, 1087, 1087, 1086, 1093, + 1093, 1093, 1093, 1093, 1087, 1092, 1087, 1087, + 1087, 1088, 1087, 1092, 1517, 1088, 1089, 1089, + 1089, 1089, 1089, 1090, 1090, 1091, 1091, 1091, + 1091, 1091, 1517, 1090, 1092, 1087, 1094, 1094, + 1095, 1095, 1095, 1095, 1095, 1087, 1087, 1087, + 1094, 1087, 1092, 1096, 1085, 1098, 1098, 1099, + 1099, 1099, 1099, 1099, 1085, 1085, 1085, 1098, + 1085, 1096, 1100, 1083, 1102, 1102, 1103, 1103, + 1103, 1103, 1103, 1083, 1083, 1083, 1102, 1083, + 1100, 1104, 1081, 1105, 1079, 1106, 1077, 1108, + 1109, 1109, 1109, 1109, 1111, 1110, 1109, 1109, + 1109, 1109, 1111, 1518, 1111, 1109, 1113, 1114, + 1114, 1114, 1114, 1116, 1114, 1114, 1114, 1115, + 1114, 1116, 1519, 1116, 1114, 1118, 1119, 1119, + 1119, 1118, 1119, 1121, 1119, 1119, 1119, 1120, + 1119, 1121, 1520, 1121, 1119, 1123, 0, 1124, + 1124, 1124, 1124, 1125, 1521, 1522, 1523, 1123, + 1124, 1124, 1124, 1124, 1125, 1521, 1522, 1523, + 1125, 1124, 1127, 1524, 1127, 0, 1129, 1130, + 1130, 1130, 1129, 1130, 1182, 1130, 1130, 1130, + 1131, 1135, 1177, 1130, 1182, 1132, 1132, 1132, + 1131, 1132, 1181, 1132, 1132, 1132, 1133, 1132, + 1181, 1134, 1134, 1134, 1179, 1133, 1134, 1178, + 1134, 1134, 1134, 1134, 1178, 1136, 1136, 1136, + 1136, 1176, 1137, 1138, 1138, 1138, 1137, 1138, + 1175, 1138, 1138, 1138, 1139, 1143, 1170, 1138, + 1175, 1140, 1140, 1140, 1139, 1140, 1174, 1140, + 1140, 1140, 1141, 1140, 1174, 1142, 1142, 1142, + 1172, 1141, 1142, 1171, 1142, 1142, 1142, 1142, + 1171, 1144, 1144, 1144, 1144, 1169, 1145, 1146, + 1146, 1147, 1147, 1147, 1166, 1146, 1168, 1147, + 1165, 1525, 1532, 1533, 1147, 1147, 1147, 1148, + 1147, 1165, 1525, 1532, 1533, 1149, 1149, 1149, + 1162, 1148, 1164, 1149, 1161, 1525, 1530, 1531, + 1149, 1149, 1149, 1150, 1149, 1161, 1530, 1531, + 1151, 1151, 1151, 1158, 1150, 1160, 1151, 1157, + 1525, 1528, 1529, 1151, 1151, 1151, 1152, 1151, + 1157, 1528, 1529, 1153, 1153, 1153, 1155, 1152, + 1153, 1154, 1525, 1526, 1527, 1153, 1153, 1153, + 1153, 1154, 1526, 1527, 1154, 1153, 1153, 1153, + 1153, 1156, 1153, 1154, 1525, 1526, 1527, 1156, + 1157, 1151, 1151, 1151, 1151, 1159, 1160, 1151, + 1157, 1525, 1528, 1529, 1159, 1161, 1149, 1149, + 1149, 1149, 1163, 1164, 1149, 1161, 1525, 1530, + 1531, 1163, 1165, 1147, 1147, 1147, 1147, 1167, + 1168, 1147, 1165, 1525, 1532, 1533, 1167, 1169, + 1144, 1144, 1144, 1144, 1144, 1169, 1171, 1142, + 1142, 1142, 1142, 1173, 1142, 1171, 1173, 1174, + 1140, 1175, 1138, 1176, 1136, 1136, 1136, 1136, + 1136, 1176, 1178, 1134, 1134, 1134, 1134, 1180, + 1134, 1178, 1180, 1181, 1132, 1182, 1130, 1184, + 1185, 1185, 1185, 1184, 1185, 1193, 1185, 1185, + 1185, 1186, 1185, 1193, 1187, 1187, 1187, 1186, + 1187, 1192, 1187, 1187, 1187, 1188, 1187, 1192, + 1189, 1189, 1189, 1188, 1189, 1191, 1189, 1189, + 1189, 1190, 1189, 1191, 1534, 1191, 1189, 1192, + 1187, 1193, 1185, 1195, 1196, 1196, 1196, 1195, + 1196, 1210, 1196, 1196, 1196, 1197, 1196, 1210, + 1198, 1198, 1198, 1197, 1198, 1209, 1199, 1198, + 1198, 1198, 1198, 1209, 1200, 1200, 1200, 1200, + 1208, 1201, 1200, 1200, 1200, 1200, 1208, 1202, + 1202, 1202, 1202, 1207, 1203, 1202, 1202, 1202, + 1202, 1207, 1204, 1204, 1204, 1204, 1206, 1204, + 1204, 1204, 1205, 1204, 1206, 1535, 1206, 1204, + 1207, 1202, 1208, 1200, 1209, 1198, 1210, 1196, + 1212, 1213, 1213, 1213, 1213, 1221, 1214, 1215, + 1215, 1215, 1214, 1215, 1220, 1215, 1215, 1215, + 1216, 1215, 1220, 1217, 1217, 1217, 1217, 1219, + 1218, 1536, 1219, 1217, 1220, 1215, 1221, 1213, + 0, 1222, 1223, 1222, 1222, 1224, 1230, 1222, + 1229, 1537, 1538, 1539, 1224, 1230, 1225, 0, + 1226, 1226, 1227, 1228, 1222, 1222, 1222, 1228, + 1222, 1229, 1537, 1538, 1539, 1229, 1222, 1231, + 1232, 1232, 1227, 1234, 1235, 1235, 1235, 1234, + 1235, 1245, 1235, 1235, 1235, 1236, 1235, 1245, + 1237, 1237, 1237, 1237, 1244, 1238, 1239, 1239, + 1239, 1238, 1239, 1243, 0, 1239, 1239, 1239, + 1240, 1239, 1243, 1241, 1241, 1241, 1241, 1241, + 1242, 1540, 1541, 1542, 1242, 1241, 1243, 1239, + 1244, 1237, 1245, 1235, 1247, 1248, 1248, 1248, + 1247, 1248, 1255, 1248, 1248, 1248, 1249, 1248, + 1255, 1250, 1250, 1250, 1249, 1250, 1254, 1250, + 1250, 1250, 1251, 1250, 1254, 1252, 1252, 1252, + 1252, 1252, 1253, 1543, 1544, 1545, 1253, 1252, + 1254, 1250, 1255, 1248, 1257, 1258, 1258, 1258, + 1257, 1258, 1294, 0, 1258, 1258, 1258, 1259, + 1273, 1280, 1287, 1258, 1294, 1260, 1260, 1260, + 1260, 1272, 0, 1261, 1262, 1262, 1262, 1261, + 1262, 1271, 1262, 1262, 1262, 1263, 1262, 1271, + 0, 1264, 1264, 1264, 1267, 1267, 1267, 1269, + 1269, 1269, 1546, 1264, 1266, 1549, 1550, 1267, + 1268, 1547, 1548, 1269, 1270, 1551, 1552, 0, + 1265, 1266, 1264, 1268, 1267, 1270, 1269, 1271, + 1262, 1272, 1260, 1274, 1274, 1274, 1274, 1279, + 1275, 1276, 1276, 1276, 1275, 1276, 1278, 0, + 1276, 1276, 1276, 1277, 1276, 1278, 0, 1277, + 1264, 1264, 1264, 1267, 1267, 1267, 1269, 1269, + 1269, 1546, 1264, 1266, 1549, 1550, 1267, 1268, + 1547, 1548, 1269, 1270, 1551, 1552, 1278, 1276, + 1279, 1274, 1281, 1281, 1281, 1281, 1286, 1282, + 1283, 1283, 1283, 1282, 1283, 1285, 1283, 1283, + 1283, 1284, 1283, 1285, 1284, 1264, 1264, 1264, + 1267, 1267, 1267, 1269, 1269, 1269, 1546, 1264, + 1266, 1549, 1550, 1267, 1268, 1547, 1548, 1269, + 1270, 1551, 1552, 1285, 1283, 1286, 1281, 1288, + 1288, 1288, 1288, 1293, 1289, 1290, 1290, 1290, + 1289, 1290, 1292, 1290, 1290, 1290, 1291, 1290, + 1292, 1264, 1264, 1264, 1267, 1267, 1267, 1269, + 1269, 1269, 1546, 1264, 1266, 1549, 1550, 1267, + 1268, 1547, 1548, 1269, 1270, 1551, 1552, 1292, + 1290, 1293, 1288, 1294, 1258, 1296, 1297, 1297, + 1297, 1297, 1320, 1298, 1299, 1299, 1299, 1299, + 1319, 1300, 1301, 1301, 1301, 1300, 1301, 1318, + 1301, 1301, 1301, 1302, 1301, 1318, 1303, 1303, + 1303, 1302, 1303, 1317, 0, 1303, 1303, 1303, + 1304, 1303, 1317, 1305, 1305, 1305, 1304, 1305, + 1316, 1305, 1305, 1305, 1306, 1305, 1316, 1307, + 1307, 1307, 1306, 1307, 1315, 1307, 1307, 1307, + 1308, 1307, 1315, 1309, 1309, 1309, 1308, 1309, + 1314, 1309, 1309, 1309, 1310, 1309, 1314, 1311, + 1311, 1311, 1311, 1313, 1311, 1311, 1311, 1312, + 1311, 1313, 1553, 1313, 1311, 1314, 1309, 1315, + 1307, 1316, 1305, 1317, 1303, 1318, 1301, 1319, + 1299, 1320, 1297, 1322, 1323, 1554, 1325, 1326, + 1326, 1326, 1325, 1326, 1334, 1326, 1326, 1326, + 1327, 1326, 1334, 1328, 1328, 1328, 1327, 1328, + 1333, 1328, 1328, 1328, 1329, 1328, 1333, 1330, + 1330, 1330, 1330, 1332, 1331, 1555, 1332, 1330, + 1333, 1328, 1334, 1326, 1336, 1556, 1338, 1339, + 1339, 1339, 1338, 1339, 1365, 1339, 1339, 1339, + 1340, 1339, 1365, 1341, 1341, 1341, 1340, 1341, + 1364, 1341, 1341, 1341, 1342, 1341, 1364, 1343, + 1343, 1343, 1342, 1343, 1363, 1343, 1343, 1343, + 1344, 1361, 1343, 1363, 1345, 1345, 1345, 1345, + 1360, 0, 1345, 1345, 1345, 1346, 1345, 1360, + 1347, 1348, 1358, 1349, 1350, 1357, 1351, 1355, + 1352, 1353, 1353, 1354, 1346, 1557, 1356, 1359, + 1360, 1345, 1362, 1361, 1363, 1343, 1364, 1341, + 1365, 1339, 1367, 1368, 1368, 1368, 1367, 1368, + 1378, 1368, 1368, 1368, 1369, 1368, 1378, 1370, + 1370, 1370, 1369, 1370, 1377, 1370, 1370, 1370, + 1371, 1370, 1377, 1372, 1372, 1372, 1371, 1372, + 1376, 1372, 1372, 1372, 1373, 1374, 1372, 1376, + 1558, 1375, 1374, 1376, 1372, 1377, 1370, 1378, + 1368, 1380, 1381, 1381, 1381, 1380, 1381, 1391, + 1381, 1381, 1381, 1382, 1381, 1391, 1383, 1383, + 1383, 1382, 1383, 1390, 1383, 1383, 1383, 1384, + 1383, 1390, 1385, 1385, 1385, 1384, 1385, 1389, + 1385, 1385, 1385, 1386, 1385, 1389, 1387, 1387, + 1387, 1387, 1387, 1388, 1559, 1560, 1561, 1388, + 1387, 1389, 1385, 1390, 1383, 1391, 1381, 1393, + 1394, 1394, 1394, 1393, 1394, 1397, 1394, 1394, + 1394, 1395, 1394, 1397, 1396, 1395, 1562, 1397, + 1394, 1399, 1400, 1400, 1400, 1399, 1400, 1410, + 1400, 1400, 1400, 1401, 1400, 1410, 1402, 1402, + 1402, 1401, 1402, 1409, 1402, 1402, 1402, 1403, + 1402, 1409, 1404, 1404, 1404, 1403, 1404, 1408, + 1404, 1404, 1404, 1405, 1404, 1408, 1406, 1406, + 1406, 1406, 1406, 1407, 1563, 1564, 1565, 1407, + 1406, 1408, 1404, 1409, 1402, 1410, 1400, 1412, + 1413, 1413, 1413, 1412, 1413, 1415, 1413, 1413, + 1413, 1414, 1413, 1415, 1566, 1414, 1415, 1413, + 1417, 1418, 1418, 1418, 1417, 1418, 1428, 1418, + 1418, 1418, 1419, 1418, 1428, 1420, 1421, 1422, + 0, 1423, 1424, 1425, 1426, 1427, 0, 1567, + 1428, 1418, 1430, 1431, 0, 1432, 1433, 1434, + 1568, 1436, 1437, 1438, 1439, 1440, 1569, 1442, + 1443, 1443, 1443, 1442, 1443, 1448, 1443, 1443, + 1443, 1444, 1443, 1448, 1445, 1445, 1445, 1444, + 1445, 1447, 1446, 1445, 1445, 1445, 1445, 1447, + 1570, 1447, 1445, 1448, 1443, 1450, 1451, 1451, + 1451, 1450, 1451, 1456, 1452, 1451, 1451, 1451, + 1451, 1456, 1453, 1453, 1453, 1453, 1455, 1454, + 1453, 1453, 1453, 1453, 1455, 1571, 1455, 1453, + 1456, 1451, 1458, 1459, 1459, 1459, 1458, 1459, + 1462, 1459, 1459, 1459, 1460, 1459, 1462, 1461, + 1572, 1462, 1459, 1464, 1465, 1465, 1465, 1465, + 1473, 1466, 1467, 1467, 1467, 1467, 1472, 1468, + 1469, 1469, 1469, 1468, 1469, 1471, 1469, 1469, + 1469, 1470, 1469, 1471, 1573, 1471, 1469, 1472, + 1467, 1473, 1465, 0, 1, 193, 1, 1, + 201, 1474, 192, 1479, 314, 14, 238, 14, + 14, 248, 271, 1482, 286, 1480, 287, 1483, + 289, 0, 183, 183, 183, 211, 297, 298, + 299, 300, 316, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 1477, + 315, 0, 204, 211, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 0, 1, 193, + 1, 1, 201, 1474, 192, 1479, 314, 1, + 1, 1479, 314, 215, 215, 215, 1479, 216, + 219, 219, 219, 237, 275, 0, 249, 252, + 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, + 270, 1479 }; static const short _zone_scanner_trans_actions[] = { - 2805, 0, 5, 7, 649, 820, 820, 820, - 820, 820, 820, 820, 820, 820, 820, 820, - 820, 820, 820, 820, 820, 820, 820, 3, - 9, 3, 9, 2981, 103, 838, 841, 45, - 59, 57, 55, 0, 61, 835, 844, 431, + 2227, 0, 5, 7, 549, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 723, + 723, 723, 723, 723, 723, 723, 723, 3, + 9, 3, 9, 2403, 103, 741, 744, 45, + 59, 57, 55, 0, 61, 738, 747, 331, 0, 5, 7, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 97, 97, 97, 3, 9, 2353, - 2356, 3501, 3505, 0, 0, 0, 3497, 3509, - 3517, 5605, 5625, 425, 0, 423, 5, 7, - 429, 3, 9, 439, 466, 2338, 13, 487, - 490, 2649, 493, 15, 0, 5, 7, 2506, - 9, 11, 2621, 2347, 427, 11, 481, 13, - 448, 454, 463, 5600, 3477, 2601, 0, 5, - 7, 9, 3485, 2344, 466, 11, 2617, 0, - 4715, 5, 7, 2793, 3113, 3113, 3113, 3113, - 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, - 3113, 3113, 3113, 3113, 3113, 3113, 3, 9, - 2341, 2344, 439, 466, 6306, 847, 3117, 3121, - 4960, 3125, 2350, 0, 5, 7, 442, 9, - 0, 0, 0, 0, 0, 0, 2491, 4405, - 4409, 4401, 4413, 4417, 6070, 6075, 478, 2605, - 2609, 2613, 11, 469, 472, 475, 0, 0, - 0, 0, 0, 0, 2455, 4165, 4169, 4161, - 4173, 4177, 5950, 5955, 2452, 4145, 4149, 4141, - 4153, 4157, 5940, 5945, 0, 0, 2410, 3865, - 3869, 3861, 3873, 3877, 5800, 5805, 0, 0, - 0, 2362, 3545, 3549, 3541, 3553, 3557, 5640, - 5645, 0, 0, 0, 2461, 4205, 4209, 4201, - 4213, 4217, 5970, 5975, 0, 0, 0, 0, - 0, 0, 2437, 4045, 4049, 4041, 4053, 4057, - 5890, 5895, 0, 0, 0, 0, 2413, 3885, - 3889, 3881, 3893, 3897, 5810, 5815, 0, 0, - 0, 2434, 4025, 4029, 4021, 4033, 4037, 5880, - 5885, 2419, 3925, 3929, 0, 3921, 3933, 3937, - 5830, 5835, 0, 0, 2500, 4465, 4469, 4461, - 4473, 4477, 6100, 6105, 0, 0, 0, 0, - 0, 2482, 4345, 4349, 4341, 4353, 4357, 6040, - 6045, 0, 2485, 4365, 4369, 4361, 4373, 4377, - 6050, 6055, 0, 0, 0, 0, 0, 2371, - 3605, 3609, 3601, 3613, 3617, 5670, 5675, 0, - 0, 0, 2497, 4445, 4449, 4441, 4453, 4457, - 6090, 6095, 0, 0, 101, 826, 829, 823, - 832, 0, 5, 7, 0, 0, 0, 0, + 97, 97, 97, 97, 97, 3, 9, 1779, + 1782, 2923, 2927, 0, 0, 0, 2919, 2931, + 2939, 5027, 5047, 325, 0, 323, 5, 7, + 329, 3, 9, 339, 366, 1764, 13, 387, + 390, 2075, 393, 15, 0, 5, 7, 1932, + 9, 11, 2047, 1773, 327, 11, 381, 13, + 348, 354, 363, 5022, 2899, 2027, 0, 5, + 7, 9, 2907, 1770, 366, 11, 2043, 0, + 4137, 5, 7, 2219, 2535, 2535, 2535, 2535, + 2535, 2535, 2535, 2535, 2535, 2535, 2535, 2535, + 2535, 2535, 2535, 2535, 2535, 2535, 3, 9, + 1767, 1770, 339, 366, 5728, 750, 2539, 2543, + 4382, 2547, 1776, 0, 5, 7, 342, 9, + 0, 0, 0, 0, 0, 0, 1917, 3827, + 3831, 3823, 3835, 3839, 5492, 5497, 378, 2031, + 2035, 2039, 11, 369, 372, 375, 0, 0, + 0, 0, 0, 0, 1881, 3587, 3591, 3583, + 3595, 3599, 5372, 5377, 1878, 3567, 3571, 3563, + 3575, 3579, 5362, 5367, 0, 0, 1836, 3287, + 3291, 3283, 3295, 3299, 5222, 5227, 0, 0, + 0, 1788, 2967, 2971, 2963, 2975, 2979, 5062, + 5067, 0, 0, 0, 1887, 3627, 3631, 3623, + 3635, 3639, 5392, 5397, 0, 0, 0, 0, + 0, 0, 1863, 3467, 3471, 3463, 3475, 3479, + 5312, 5317, 0, 0, 0, 0, 1839, 3307, + 3311, 3303, 3315, 3319, 5232, 5237, 0, 0, + 0, 1860, 3447, 3451, 3443, 3455, 3459, 5302, + 5307, 1845, 3347, 3351, 0, 3343, 3355, 3359, + 5252, 5257, 0, 0, 1926, 3887, 3891, 3883, + 3895, 3899, 5522, 5527, 0, 0, 0, 0, + 0, 1908, 3767, 3771, 3763, 3775, 3779, 5462, + 5467, 0, 1911, 3787, 3791, 3783, 3795, 3799, + 5472, 5477, 0, 0, 0, 0, 0, 1797, + 3027, 3031, 3023, 3035, 3039, 5092, 5097, 0, + 0, 0, 1923, 3867, 3871, 3863, 3875, 3879, + 5512, 5517, 0, 0, 101, 729, 732, 726, + 735, 0, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9, - 0, 0, 0, 0, 0, 0, 2425, 3965, - 3969, 3961, 3973, 3977, 5850, 5855, 0, 0, - 0, 2392, 3745, 3749, 3741, 3753, 3757, 5740, - 5745, 2407, 3845, 3849, 3841, 3853, 3857, 5790, - 5795, 0, 0, 0, 0, 0, 2473, 4285, - 4289, 4281, 4293, 4297, 6010, 6015, 0, 2476, - 4305, 4309, 4301, 4313, 4317, 6020, 6025, 0, - 2398, 3785, 3789, 3781, 3793, 3797, 5760, 5765, - 2479, 4325, 4329, 4321, 4333, 4337, 6030, 6035, - 0, 0, 0, 0, 0, 2374, 3625, 3629, - 3621, 3633, 3637, 5680, 5685, 2377, 3645, 3649, - 3641, 3653, 3657, 5690, 5695, 0, 0, 0, - 0, 0, 0, 2404, 3825, 3829, 3821, 3833, - 3837, 5780, 5785, 0, 2470, 4265, 4269, 4261, - 4273, 4277, 6000, 6005, 2359, 3525, 3529, 0, - 3521, 3533, 3537, 5630, 5635, 0, 2431, 4005, - 4009, 0, 4001, 4013, 4017, 5870, 5875, 2440, - 4065, 4069, 0, 4061, 4073, 4077, 5900, 5905, - 0, 0, 0, 0, 2443, 4085, 4089, 4081, - 4093, 4097, 5910, 5915, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2458, 4185, 4189, - 4181, 4193, 4197, 5960, 5965, 0, 0, 2368, - 3585, 3589, 3581, 3593, 3597, 5660, 5665, 0, - 0, 0, 2383, 3685, 3689, 3681, 3693, 3697, - 5710, 5715, 0, 0, 0, 2428, 3985, 3989, - 3981, 3993, 3997, 5860, 5865, 2389, 3725, 3729, - 3721, 3733, 3737, 5730, 5735, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2449, - 4125, 4129, 4121, 4133, 4137, 5930, 5935, 0, - 2365, 3565, 3569, 3561, 3573, 3577, 5650, 5655, - 0, 2467, 4245, 4249, 4241, 4253, 4257, 5990, - 5995, 0, 2401, 3805, 3809, 3801, 3813, 3817, - 5770, 5775, 0, 0, 0, 2422, 3945, 3949, - 3941, 3953, 3957, 5840, 5845, 0, 0, 2494, - 4425, 4429, 4421, 4433, 4437, 6080, 6085, 0, - 0, 0, 0, 0, 2446, 4105, 4109, 4101, - 4113, 4117, 5920, 5925, 0, 2380, 3665, 3669, - 3661, 3673, 3677, 5700, 5705, 0, 0, 667, - 649, 2809, 739, 2957, 2961, 45, 2953, 2965, - 2969, 4900, 4905, 0, 0, 2488, 4385, 4389, - 4381, 4393, 4397, 6060, 6065, 0, 0, 0, - 0, 0, 2503, 4485, 4489, 4481, 4493, 4497, - 6110, 6115, 0, 0, 0, 0, 0, 2464, - 4225, 4229, 4221, 4233, 4237, 5980, 5985, 11, - 481, 0, 5, 7, 3, 9, 0, 101, - 826, 829, 823, 832, 0, 5, 7, 649, + 0, 0, 0, 0, 0, 0, 1851, 3387, + 3391, 3383, 3395, 3399, 5272, 5277, 0, 0, + 0, 1818, 3167, 3171, 3163, 3175, 3179, 5162, + 5167, 1833, 3267, 3271, 3263, 3275, 3279, 5212, + 5217, 0, 0, 0, 0, 0, 1899, 3707, + 3711, 3703, 3715, 3719, 5432, 5437, 0, 1902, + 3727, 3731, 3723, 3735, 3739, 5442, 5447, 0, + 1824, 3207, 3211, 3203, 3215, 3219, 5182, 5187, + 1905, 3747, 3751, 3743, 3755, 3759, 5452, 5457, + 0, 0, 0, 0, 0, 1800, 3047, 3051, + 3043, 3055, 3059, 5102, 5107, 1803, 3067, 3071, + 3063, 3075, 3079, 5112, 5117, 0, 0, 0, + 0, 0, 0, 1830, 3247, 3251, 3243, 3255, + 3259, 5202, 5207, 0, 1896, 3687, 3691, 3683, + 3695, 3699, 5422, 5427, 1785, 2947, 2951, 0, + 2943, 2955, 2959, 5052, 5057, 0, 1857, 3427, + 3431, 0, 3423, 3435, 3439, 5292, 5297, 1866, + 3487, 3491, 0, 3483, 3495, 3499, 5322, 5327, + 0, 0, 0, 0, 1869, 3507, 3511, 3503, + 3515, 3519, 5332, 5337, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1884, 3607, 3611, + 3603, 3615, 3619, 5382, 5387, 0, 0, 1794, + 3007, 3011, 3003, 3015, 3019, 5082, 5087, 0, + 0, 0, 1809, 3107, 3111, 3103, 3115, 3119, + 5132, 5137, 0, 0, 0, 1854, 3407, 3411, + 3403, 3415, 3419, 5282, 5287, 1815, 3147, 3151, + 3143, 3155, 3159, 5152, 5157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1875, + 3547, 3551, 3543, 3555, 3559, 5352, 5357, 0, + 1791, 2987, 2991, 2983, 2995, 2999, 5072, 5077, + 0, 1893, 3667, 3671, 3663, 3675, 3679, 5412, + 5417, 0, 1827, 3227, 3231, 3223, 3235, 3239, + 5192, 5197, 0, 0, 0, 1848, 3367, 3371, + 3363, 3375, 3379, 5262, 5267, 0, 0, 1920, + 3847, 3851, 3843, 3855, 3859, 5502, 5507, 0, + 0, 0, 0, 0, 1872, 3527, 3531, 3523, + 3535, 3539, 5342, 5347, 0, 1806, 3087, 3091, + 3083, 3095, 3099, 5122, 5127, 0, 0, 570, + 549, 2231, 642, 2379, 2383, 45, 2375, 2387, + 2391, 4322, 4327, 0, 0, 1914, 3807, 3811, + 3803, 3815, 3819, 5482, 5487, 0, 0, 0, + 0, 0, 1929, 3907, 3911, 3903, 3915, 3919, + 5532, 5537, 0, 0, 0, 0, 0, 1890, + 3647, 3651, 3643, 3655, 3659, 5402, 5407, 11, + 381, 0, 5, 7, 3, 9, 0, 101, + 729, 732, 726, 735, 0, 5, 7, 549, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 3, 9, 103, 838, 841, 45, - 59, 57, 55, 0, 61, 835, 844, 2985, - 45, 59, 57, 55, 0, 61, 760, 3025, - 3029, 4915, 3021, 3033, 11, 481, 11, 481, + 99, 99, 3, 9, 103, 741, 744, 45, + 59, 57, 55, 0, 61, 738, 747, 2407, + 45, 59, 57, 55, 0, 61, 663, 2447, + 2451, 4337, 2443, 2455, 11, 381, 11, 381, 95, 91, 91, 91, 0, 0, 0, 0, - 0, 0, 89, 41, 39, 595, 598, 592, - 601, 0, 5, 7, 3, 9, 11, 0, - 481, 4700, 607, 2721, 2729, 2713, 2737, 0, - 5, 7, 3, 9, 11, 481, 2985, 45, - 59, 57, 55, 0, 61, 760, 3025, 3029, - 4915, 3021, 3033, 11, 481, 2781, 2749, 4655, - 4670, 4640, 4685, 6174, 6198, 0, 5, 7, - 3, 9, 439, 466, 3493, 3513, 5610, 5615, - 6396, 5620, 6582, 6408, 6575, 6402, 0, 5, - 7, 442, 2553, 0, 5, 7, 442, 9, - 11, 2617, 496, 2625, 2633, 4550, 2641, 11, - 445, 451, 460, 0, 5, 7, 9, 466, - 11, 2617, 3469, 0, 0, 0, 0, 0, - 83, 0, 0, 79, 2773, 604, 2717, 2725, - 4630, 2733, 6456, 2741, 4645, 4660, 6168, 4675, - 0, 5, 7, 442, 9, 11, 2617, 4705, - 4690, 6180, 6186, 6442, 6192, 6605, 6449, 0, - 5, 7, 442, 2553, 2745, 616, 4650, 4665, - 4635, 4680, 13, 448, 454, 2525, 463, 478, - 4525, 2605, 2609, 2613, 11, 469, 472, 475, - 478, 2605, 2609, 2613, 11, 469, 472, 475, - 0, 0, 2395, 3765, 3769, 3761, 3773, 3777, - 5750, 5755, 0, 0, 0, 2386, 3705, 3709, - 3701, 3713, 3717, 5720, 5725, 0, 2416, 3905, - 3909, 3901, 3913, 3917, 5820, 5825, 11, 481, - 496, 2625, 2633, 4560, 11, 445, 451, 4501, - 478, 2605, 2609, 11, 469, 472, 478, 2605, - 2609, 11, 469, 472, 11, 481, 13, 448, - 454, 463, 2601, 478, 2605, 2609, 11, 469, - 472, 619, 11, 481, 11, 481, 11, 2617, - 0, 514, 3, 7, 508, 2653, 17, 511, - 31, 2677, 29, 0, 547, 2657, 21, 23, - 0, 538, 517, 19, 520, 529, 25, 25, - 4570, 523, 526, 27, 544, 781, 67, 0, - 0, 790, 793, 3049, 73, 3045, 784, 71, - 71, 3037, 3041, 4920, 787, 67, 67, 0, - 0, 793, 793, 73, 73, 69, 1, 784, - 71, 71, 3041, 3041, 787, 787, 77, 0, - 5, 7, 3, 9, 652, 649, 4910, 13, - 487, 490, 45, 59, 57, 55, 0, 61, - 4555, 493, 502, 0, 5, 7, 3057, 9, - 11, 4535, 2985, 2973, 45, 59, 57, 55, - 0, 61, 754, 2989, 2993, 4915, 6312, 2997, - 11, 481, 81, 0, 5, 7, 3, 9, - 4925, 802, 3061, 21, 23, 0, 505, 541, - 2661, 2665, 517, 19, 6120, 2669, 0, 5, - 7, 3065, 9, 11, 4540, 520, 532, 25, - 25, 523, 526, 27, 11, 481, 0, 5, - 7, 3, 9, 805, 85, 811, 808, 3069, - 3073, 6318, 3081, 3077, 817, 0, 5, 7, - 4930, 814, 3085, 3089, 9, 9, 87, 21, - 23, 0, 2673, 4575, 4580, 517, 19, 6414, - 4585, 0, 5, 7, 11, 4545, 520, 535, - 25, 25, 523, 526, 27, 11, 4530, 0, - 5, 7, 3, 9, 11, 481, 11, 481, + 0, 0, 89, 41, 39, 495, 498, 492, + 501, 0, 5, 7, 3, 9, 11, 0, + 381, 4122, 507, 2147, 2155, 2139, 2163, 0, + 5, 7, 3, 9, 11, 381, 2407, 45, + 59, 57, 55, 0, 61, 663, 2447, 2451, + 4337, 2443, 2455, 11, 381, 2207, 2175, 4077, + 4092, 4062, 4107, 5596, 5620, 0, 5, 7, + 3, 9, 339, 366, 2915, 2935, 5032, 5037, + 5818, 5042, 6004, 5830, 5997, 5824, 0, 5, + 7, 342, 1979, 0, 5, 7, 342, 9, + 11, 2043, 396, 2051, 2059, 3972, 2067, 11, + 345, 351, 360, 0, 5, 7, 9, 366, + 11, 2043, 2891, 0, 0, 0, 0, 0, + 83, 0, 0, 79, 2199, 504, 2143, 2151, + 4052, 2159, 5878, 2167, 4067, 4082, 5590, 4097, + 0, 5, 7, 342, 9, 11, 2043, 4127, + 4112, 5602, 5608, 5864, 5614, 6027, 5871, 0, + 5, 7, 342, 1979, 2171, 516, 4072, 4087, + 4057, 4102, 13, 348, 354, 1951, 363, 378, + 3947, 2031, 2035, 2039, 11, 369, 372, 375, + 378, 2031, 2035, 2039, 11, 369, 372, 375, + 0, 0, 1821, 3187, 3191, 3183, 3195, 3199, + 5172, 5177, 0, 0, 0, 1812, 3127, 3131, + 3123, 3135, 3139, 5142, 5147, 0, 1842, 3327, + 3331, 3323, 3335, 3339, 5242, 5247, 11, 381, + 396, 2051, 2059, 3982, 11, 345, 351, 3923, + 378, 2031, 2035, 11, 369, 372, 378, 2031, + 2035, 11, 369, 372, 11, 381, 13, 348, + 354, 363, 2027, 378, 2031, 2035, 11, 369, + 372, 519, 11, 381, 11, 381, 11, 2043, + 0, 414, 3, 7, 408, 2079, 17, 411, + 31, 2103, 29, 0, 447, 2083, 21, 23, + 0, 438, 417, 19, 420, 429, 25, 25, + 3992, 423, 426, 27, 444, 684, 67, 0, + 0, 693, 696, 2471, 73, 2467, 687, 71, + 71, 2459, 2463, 4342, 690, 67, 67, 0, + 0, 696, 696, 73, 73, 69, 1, 687, + 71, 71, 2463, 2463, 690, 690, 77, 0, + 5, 7, 3, 9, 552, 549, 4332, 13, + 387, 390, 45, 59, 57, 55, 0, 61, + 3977, 393, 402, 0, 5, 7, 2479, 9, + 11, 3957, 2407, 2395, 45, 59, 57, 55, + 0, 61, 657, 2411, 2415, 4337, 5734, 2419, + 11, 381, 81, 0, 5, 7, 3, 9, + 4347, 705, 2483, 21, 23, 0, 405, 441, + 2087, 2091, 417, 19, 5542, 2095, 0, 5, + 7, 2487, 9, 11, 3962, 420, 432, 25, + 25, 423, 426, 27, 11, 381, 0, 5, + 7, 3, 9, 708, 85, 714, 711, 2491, + 2495, 5740, 2503, 2499, 720, 0, 5, 7, + 4352, 717, 2507, 2511, 9, 9, 87, 21, + 23, 0, 2099, 3997, 4002, 417, 19, 5836, + 4007, 0, 5, 7, 11, 3967, 420, 435, + 25, 25, 423, 426, 27, 11, 3952, 0, + 5, 7, 3, 9, 11, 381, 11, 381, 127, 119, 121, 123, 0, 125, 0, 5, - 7, 3, 9, 1, 436, 457, 11, 481, - 377, 375, 2215, 2218, 2212, 2221, 3429, 5565, - 5570, 0, 5, 7, 0, 0, 0, 0, + 7, 3, 9, 1, 336, 357, 11, 381, + 169, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 876, 0, 0, 0, 0, + 0, 915, 0, 0, 0, 906, 0, 936, + 0, 0, 0, 0, 0, 0, 1011, 0, + 0, 0, 0, 0, 0, 975, 972, 0, + 0, 930, 0, 0, 0, 882, 0, 0, + 0, 981, 0, 0, 0, 0, 0, 0, + 957, 0, 0, 0, 0, 933, 0, 0, + 0, 954, 939, 0, 0, 0, 1020, 0, + 0, 0, 0, 0, 1002, 0, 1005, 0, + 0, 0, 0, 0, 891, 0, 0, 0, + 1017, 0, 0, 0, 0, 0, 0, 0, + 945, 0, 0, 0, 912, 927, 0, 0, + 0, 0, 0, 993, 0, 996, 0, 918, + 999, 0, 0, 0, 0, 0, 894, 897, + 0, 0, 0, 0, 0, 0, 924, 0, + 990, 879, 0, 0, 951, 0, 960, 0, + 0, 0, 0, 0, 963, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 978, 0, + 0, 888, 0, 0, 0, 903, 0, 0, + 0, 948, 909, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 969, 0, 885, + 0, 987, 0, 921, 0, 0, 0, 942, + 0, 0, 1014, 0, 0, 0, 0, 0, + 966, 0, 900, 0, 0, 555, 549, 606, + 45, 0, 0, 1008, 0, 0, 0, 0, + 0, 1023, 0, 0, 0, 0, 0, 984, + 277, 275, 1641, 1644, 1638, 1647, 2851, 4987, + 4992, 0, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9, - 2224, 2541, 2589, 275, 1615, 1618, 0, 0, - 0, 1612, 1621, 3229, 5065, 5070, 0, 0, - 301, 1771, 1774, 1768, 1777, 3281, 5195, 5200, - 11, 481, 0, 0, 0, 0, 0, 0, - 365, 2155, 2158, 2152, 2161, 3409, 5515, 5520, - 0, 0, 0, 0, 0, 0, 341, 2011, - 2014, 2008, 2017, 3361, 5395, 5400, 339, 1999, - 2002, 1996, 2005, 3357, 5385, 5390, 0, 0, - 311, 1831, 1834, 1828, 1837, 3301, 5245, 5250, - 0, 0, 0, 279, 1639, 1642, 1636, 1645, - 3237, 5085, 5090, 0, 0, 0, 345, 2035, - 2038, 2032, 2041, 3369, 5415, 5420, 0, 0, - 0, 0, 0, 0, 329, 1939, 1942, 1936, - 1945, 3337, 5335, 5340, 0, 0, 0, 0, - 313, 1843, 1846, 1840, 1849, 3305, 5255, 5260, - 0, 0, 0, 327, 1927, 1930, 1924, 1933, - 3333, 5325, 5330, 317, 1867, 1870, 0, 1864, - 1873, 3313, 5275, 5280, 0, 0, 371, 2191, - 2194, 2188, 2197, 3421, 5545, 5550, 0, 0, - 0, 0, 0, 359, 2119, 2122, 2116, 2125, - 3397, 5485, 5490, 0, 361, 2131, 2134, 2128, - 2137, 3401, 5495, 5500, 0, 0, 0, 0, - 0, 285, 1675, 1678, 1672, 1681, 3249, 5115, - 5120, 0, 0, 0, 369, 2179, 2182, 2176, - 2185, 3417, 5535, 5540, 0, 0, 0, 0, - 0, 0, 0, 321, 1891, 1894, 1888, 1897, - 3321, 5295, 5300, 0, 0, 0, 299, 1759, - 1762, 1756, 1765, 3277, 5185, 5190, 309, 1819, - 1822, 1816, 1825, 3297, 5235, 5240, 0, 0, - 0, 0, 0, 353, 2083, 2086, 2080, 2089, - 3385, 5455, 5460, 0, 355, 2095, 2098, 2092, - 2101, 3389, 5465, 5470, 0, 303, 1783, 1786, - 1780, 1789, 3285, 5205, 5210, 357, 2107, 2110, - 2104, 2113, 3393, 5475, 5480, 0, 0, 0, - 0, 0, 287, 1687, 1690, 1684, 1693, 3253, - 5125, 5130, 289, 1699, 1702, 1696, 1705, 3257, - 5135, 5140, 0, 0, 0, 0, 0, 0, - 307, 1807, 1810, 1804, 1813, 3293, 5225, 5230, - 0, 351, 2071, 2074, 2068, 2077, 3381, 5445, - 5450, 277, 1627, 1630, 0, 1624, 1633, 3233, - 5075, 5080, 0, 325, 1915, 1918, 0, 1912, - 1921, 3329, 5315, 5320, 331, 1951, 1954, 0, - 1948, 1957, 3341, 5345, 5350, 0, 0, 0, - 0, 333, 1963, 1966, 1960, 1969, 3345, 5355, - 5360, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 343, 2023, 2026, 2020, 2029, 3365, - 5405, 5410, 0, 0, 283, 1663, 1666, 1660, - 1669, 3245, 5105, 5110, 0, 0, 0, 293, - 1723, 1726, 1720, 1729, 3265, 5155, 5160, 0, - 0, 0, 323, 1903, 1906, 1900, 1909, 3325, - 5305, 5310, 297, 1747, 1750, 1744, 1753, 3273, - 5175, 5180, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 337, 1987, 1990, 1984, - 1993, 3353, 5375, 5380, 0, 281, 1651, 1654, - 1648, 1657, 3241, 5095, 5100, 0, 349, 2059, - 2062, 2056, 2065, 3377, 5435, 5440, 0, 305, - 1795, 1798, 1792, 1801, 3289, 5215, 5220, 0, - 0, 0, 319, 1879, 1882, 1876, 1885, 3317, - 5285, 5290, 0, 0, 367, 2167, 2170, 2164, - 2173, 3413, 5525, 5530, 0, 0, 0, 0, - 0, 335, 1975, 1978, 1972, 1981, 3349, 5365, - 5370, 0, 291, 1711, 1714, 1708, 1717, 3261, - 5145, 5150, 0, 0, 649, 273, 1603, 1606, - 45, 1600, 1609, 3225, 5055, 5060, 0, 0, - 363, 2143, 2146, 2140, 2149, 3405, 5505, 5510, - 0, 0, 0, 0, 0, 373, 2203, 2206, - 2200, 2209, 3425, 5555, 5560, 0, 0, 0, - 0, 0, 347, 2047, 2050, 2044, 2053, 3373, - 5425, 5430, 0, 0, 0, 295, 1735, 1738, - 1732, 1741, 3269, 5165, 5170, 0, 315, 1855, - 1858, 1852, 1861, 3309, 5265, 5270, 391, 0, - 5, 7, 3, 9, 655, 649, 53, 745, - 748, 45, 742, 751, 3205, 0, 5, 7, + 1650, 1967, 2015, 175, 1041, 1044, 0, 0, + 0, 1038, 1047, 2651, 4487, 4492, 0, 0, + 201, 1197, 1200, 1194, 1203, 2703, 4617, 4622, + 11, 381, 0, 0, 0, 0, 0, 0, + 265, 1581, 1584, 1578, 1587, 2831, 4937, 4942, + 0, 0, 0, 0, 0, 0, 241, 1437, + 1440, 1434, 1443, 2783, 4817, 4822, 239, 1425, + 1428, 1422, 1431, 2779, 4807, 4812, 0, 0, + 211, 1257, 1260, 1254, 1263, 2723, 4667, 4672, + 0, 0, 0, 179, 1065, 1068, 1062, 1071, + 2659, 4507, 4512, 0, 0, 0, 245, 1461, + 1464, 1458, 1467, 2791, 4837, 4842, 0, 0, + 0, 0, 0, 0, 229, 1365, 1368, 1362, + 1371, 2759, 4757, 4762, 0, 0, 0, 0, + 213, 1269, 1272, 1266, 1275, 2727, 4677, 4682, + 0, 0, 0, 227, 1353, 1356, 1350, 1359, + 2755, 4747, 4752, 217, 1293, 1296, 0, 1290, + 1299, 2735, 4697, 4702, 0, 0, 271, 1617, + 1620, 1614, 1623, 2843, 4967, 4972, 0, 0, + 0, 0, 0, 259, 1545, 1548, 1542, 1551, + 2819, 4907, 4912, 0, 261, 1557, 1560, 1554, + 1563, 2823, 4917, 4922, 0, 0, 0, 0, + 0, 185, 1101, 1104, 1098, 1107, 2671, 4537, + 4542, 0, 0, 0, 269, 1605, 1608, 1602, + 1611, 2839, 4957, 4962, 0, 0, 0, 0, + 0, 0, 0, 221, 1317, 1320, 1314, 1323, + 2743, 4717, 4722, 0, 0, 0, 199, 1185, + 1188, 1182, 1191, 2699, 4607, 4612, 209, 1245, + 1248, 1242, 1251, 2719, 4657, 4662, 0, 0, + 0, 0, 0, 253, 1509, 1512, 1506, 1515, + 2807, 4877, 4882, 0, 255, 1521, 1524, 1518, + 1527, 2811, 4887, 4892, 0, 203, 1209, 1212, + 1206, 1215, 2707, 4627, 4632, 257, 1533, 1536, + 1530, 1539, 2815, 4897, 4902, 0, 0, 0, + 0, 0, 187, 1113, 1116, 1110, 1119, 2675, + 4547, 4552, 189, 1125, 1128, 1122, 1131, 2679, + 4557, 4562, 0, 0, 0, 0, 0, 0, + 207, 1233, 1236, 1230, 1239, 2715, 4647, 4652, + 0, 251, 1497, 1500, 1494, 1503, 2803, 4867, + 4872, 177, 1053, 1056, 0, 1050, 1059, 2655, + 4497, 4502, 0, 225, 1341, 1344, 0, 1338, + 1347, 2751, 4737, 4742, 231, 1377, 1380, 0, + 1374, 1383, 2763, 4767, 4772, 0, 0, 0, + 0, 233, 1389, 1392, 1386, 1395, 2767, 4777, + 4782, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 243, 1449, 1452, 1446, 1455, 2787, + 4827, 4832, 0, 0, 183, 1089, 1092, 1086, + 1095, 2667, 4527, 4532, 0, 0, 0, 193, + 1149, 1152, 1146, 1155, 2687, 4577, 4582, 0, + 0, 0, 223, 1329, 1332, 1326, 1335, 2747, + 4727, 4732, 197, 1173, 1176, 1170, 1179, 2695, + 4597, 4602, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 1413, 1416, 1410, + 1419, 2775, 4797, 4802, 0, 181, 1077, 1080, + 1074, 1083, 2663, 4517, 4522, 0, 249, 1485, + 1488, 1482, 1491, 2799, 4857, 4862, 0, 205, + 1221, 1224, 1218, 1227, 2711, 4637, 4642, 0, + 0, 0, 219, 1305, 1308, 1302, 1311, 2739, + 4707, 4712, 0, 0, 267, 1593, 1596, 1590, + 1599, 2835, 4947, 4952, 0, 0, 0, 0, + 0, 235, 1401, 1404, 1398, 1407, 2771, 4787, + 4792, 0, 191, 1137, 1140, 1134, 1143, 2683, + 4567, 4572, 0, 0, 549, 173, 1029, 1032, + 45, 1026, 1035, 2647, 4477, 4482, 0, 0, + 263, 1569, 1572, 1566, 1575, 2827, 4927, 4932, + 0, 0, 0, 0, 0, 273, 1629, 1632, + 1626, 1635, 2847, 4977, 4982, 0, 0, 0, + 0, 0, 247, 1473, 1476, 1470, 1479, 2795, + 4847, 4852, 0, 0, 0, 195, 1161, 1164, + 1158, 1167, 2691, 4587, 4592, 0, 215, 1281, + 1284, 1278, 1287, 2731, 4687, 4692, 291, 0, + 5, 7, 3, 9, 558, 549, 53, 648, + 651, 45, 645, 654, 2627, 0, 5, 7, 115, 3, 9, 117, 0, 5, 7, 3, - 9, 883, 2537, 2585, 11, 481, 11, 481, - 11, 481, 0, 5, 7, 3, 9, 649, - 649, 433, 2513, 2517, 45, 1, 2509, 2521, + 9, 786, 1963, 2011, 11, 381, 11, 381, + 11, 381, 0, 5, 7, 3, 9, 549, + 549, 333, 1939, 1943, 45, 1, 1935, 1947, 0, 5, 7, 115, 3, 9, 117, 0, - 5, 7, 3, 9, 883, 2537, 2585, 11, - 481, 11, 481, 53, 745, 748, 742, 751, - 11, 481, 401, 407, 407, 407, 407, 407, - 407, 407, 407, 0, 0, 0, 937, 0, - 0, 0, 0, 0, 0, 955, 0, 0, - 949, 0, 0, 0, 0, 0, 0, 0, - 0, 946, 0, 0, 0, 0, 952, 0, - 0, 661, 649, 703, 45, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 940, 0, 0, 0, 0, - 958, 0, 0, 0, 943, 399, 397, 2314, - 2317, 2311, 2320, 3457, 5575, 5580, 0, 5, - 7, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 3, 9, 2323, 2549, 2597, 0, - 0, 0, 157, 5595, 5595, 4600, 6132, 6138, - 6126, 6144, 6421, 6589, 6597, 11, 481, 0, - 0, 0, 0, 0, 0, 167, 577, 577, - 583, 2697, 2701, 2693, 2705, 4605, 6150, 6156, - 577, 37, 405, 2329, 2332, 2326, 2335, 3461, - 5585, 5590, 0, 0, 163, 0, 580, 580, + 5, 7, 3, 9, 786, 1963, 2011, 11, + 381, 11, 381, 53, 648, 651, 645, 654, + 11, 381, 301, 307, 307, 307, 307, 307, + 307, 307, 307, 0, 0, 0, 840, 0, + 0, 0, 0, 0, 0, 858, 0, 0, + 852, 0, 0, 0, 0, 0, 0, 0, + 0, 849, 0, 0, 0, 0, 855, 0, + 0, 564, 549, 606, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 843, 0, 0, 0, 0, + 861, 0, 0, 0, 846, 299, 297, 1740, + 1743, 1737, 1746, 2879, 4997, 5002, 0, 5, + 7, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 3, 9, 1749, 1975, 2023, 0, + 0, 0, 157, 5017, 5017, 4022, 5554, 5560, + 5548, 5566, 5843, 6011, 6019, 11, 381, 0, + 0, 0, 0, 0, 0, 167, 477, 477, + 483, 2123, 2127, 2119, 2131, 4027, 5572, 5578, + 477, 37, 305, 1755, 1758, 1752, 1761, 2883, + 5007, 5012, 0, 0, 163, 0, 480, 480, 121, 123, 0, 125, 0, 119, 121, 123, 0, 125, 0, 119, 0, 0, 0, 0, - 0, 0, 0, 0, 161, 853, 0, 2689, - 2689, 3157, 859, 105, 850, 4980, 6336, 6342, - 859, 105, 6330, 6348, 6533, 6613, 6621, 850, - 0, 0, 0, 0, 165, 0, 2689, 2689, - 3181, 862, 105, 850, 4995, 6360, 6366, 862, - 105, 6354, 6372, 6540, 6629, 6637, 850, 0, - 0, 658, 649, 2933, 4880, 4885, 45, 49, - 4875, 4890, 6288, 6519, 6526, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 3465, - 3465, 586, 0, 409, 2709, 4615, 4620, 0, - 4610, 4625, 6162, 6428, 6435, 409, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3213, 5015, 5020, 5010, - 5025, 6378, 6547, 6554, 0, 0, 0, 0, - 3217, 5040, 5045, 5035, 5050, 6384, 6561, 6568, - 0, 0, 0, 159, 0, 5030, 5030, 49, - 45, 721, 2941, 2945, 45, 2937, 2949, 4895, - 6294, 6300, 5595, 2685, 411, 649, 0, 0, - 0, 0, 0, 688, 45, 0, 0, 892, - 0, 895, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 901, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 913, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 916, 0, 0, - 0, 0, 0, 0, 0, 0, 919, 0, - 0, 0, 0, 0, 0, 922, 0, 0, - 925, 0, 0, 0, 0, 0, 0, 0, - 928, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 931, 0, 0, 934, 0, - 0, 0, 0, 0, 0, 889, 0, 0, - 0, 0, 0, 898, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 904, - 0, 0, 907, 0, 0, 910, 413, 649, - 0, 0, 0, 0, 0, 0, 703, 45, - 0, 0, 0, 0, 0, 955, 0, 0, - 0, 0, 0, 0, 0, 0, 958, 0, - 0, 0, 952, 0, 0, 946, 0, 0, - 0, 949, 0, 0, 964, 0, 0, 0, - 943, 0, 0, 937, 0, 0, 0, 940, - 0, 0, 961, 415, 649, 0, 688, 45, - 0, 0, 0, 0, 0, 889, 856, 850, - 3137, 105, 622, 625, 622, 43, 631, 634, - 628, 637, 0, 5, 7, 622, 3, 9, - 43, 631, 634, 628, 637, 664, 0, 5, - 7, 649, 3, 9, 51, 730, 733, 45, - 727, 736, 0, 5, 7, 649, 3, 9, - 2977, 51, 730, 733, 45, 59, 57, 55, - 0, 61, 727, 736, 0, 5, 7, 649, - 3, 9, 51, 730, 733, 45, 59, 57, - 55, 0, 61, 727, 736, 0, 5, 7, - 649, 3, 9, 51, 730, 733, 45, 59, - 57, 55, 0, 61, 727, 736, 0, 5, - 7, 649, 3, 9, 724, 45, 59, 57, - 55, 0, 61, 2985, 45, 59, 57, 55, - 0, 61, 3001, 4915, 11, 481, 2985, 45, - 59, 57, 55, 0, 61, 757, 3009, 3013, - 4915, 3005, 3017, 11, 481, 2985, 45, 59, - 57, 55, 0, 61, 757, 3009, 3013, 4915, - 3005, 3017, 11, 481, 2985, 45, 59, 57, - 55, 0, 61, 757, 3009, 3013, 4915, 3005, - 3017, 11, 481, 11, 481, 11, 481, 550, - 35, 565, 568, 562, 571, 550, 0, 5, - 7, 3, 9, 559, 11, 481, 622, 43, - 631, 634, 628, 637, 0, 5, 7, 622, - 3, 9, 625, 11, 481, 649, 49, 709, - 712, 45, 706, 715, 0, 5, 7, 622, - 3, 9, 625, 11, 481, 3053, 799, 35, - 565, 568, 562, 571, 2681, 4590, 4595, 550, - 0, 5, 7, 3, 9, 796, 2533, 2581, - 11, 481, 850, 3161, 105, 2302, 3433, 379, - 2230, 2233, 45, 2227, 2236, 0, 5, 7, - 649, 0, 0, 3, 9, 383, 2254, 2257, - 45, 2251, 2260, 0, 5, 7, 4870, 3, - 9, 670, 2841, 2845, 0, 45, 2837, 2849, + 0, 0, 0, 0, 161, 756, 0, 2115, + 2115, 2579, 762, 105, 753, 4402, 5758, 5764, + 762, 105, 5752, 5770, 5955, 6035, 6043, 753, + 0, 0, 0, 0, 165, 0, 2115, 2115, + 2603, 765, 105, 753, 4417, 5782, 5788, 765, + 105, 5776, 5794, 5962, 6051, 6059, 753, 0, + 0, 561, 549, 2355, 4302, 4307, 45, 49, + 4297, 4312, 5710, 5941, 5948, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 0, 2887, + 2887, 486, 0, 309, 2135, 4037, 4042, 0, + 4032, 4047, 5584, 5850, 5857, 309, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2635, 4437, 4442, 4432, + 4447, 5800, 5969, 5976, 0, 0, 0, 0, + 2639, 4462, 4467, 4457, 4472, 5806, 5983, 5990, + 0, 0, 0, 159, 0, 4452, 4452, 49, + 45, 624, 2363, 2367, 45, 2359, 2371, 4317, + 5716, 5722, 5017, 2111, 311, 549, 0, 0, + 0, 0, 0, 591, 45, 0, 0, 795, + 0, 798, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 804, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 816, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 819, 0, 0, + 0, 0, 0, 0, 0, 0, 822, 0, + 0, 0, 0, 0, 0, 825, 0, 0, + 828, 0, 0, 0, 0, 0, 0, 0, + 831, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 834, 0, 0, 837, 0, + 0, 0, 0, 0, 0, 792, 0, 0, + 0, 0, 0, 801, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 807, + 0, 0, 810, 0, 0, 813, 313, 549, + 0, 0, 0, 0, 0, 0, 606, 45, + 0, 0, 0, 0, 0, 858, 0, 0, + 0, 0, 0, 0, 0, 0, 861, 0, + 0, 0, 855, 0, 0, 849, 0, 0, + 0, 852, 0, 0, 867, 0, 0, 0, + 846, 0, 0, 840, 0, 0, 0, 843, + 0, 0, 864, 315, 549, 0, 591, 45, + 0, 0, 0, 0, 0, 792, 759, 753, + 2559, 105, 522, 525, 522, 43, 531, 534, + 528, 537, 0, 5, 7, 522, 3, 9, + 43, 531, 534, 528, 537, 567, 0, 5, + 7, 549, 3, 9, 51, 633, 636, 45, + 630, 639, 0, 5, 7, 549, 3, 9, + 2399, 51, 633, 636, 45, 59, 57, 55, + 0, 61, 630, 639, 0, 5, 7, 549, + 3, 9, 51, 633, 636, 45, 59, 57, + 55, 0, 61, 630, 639, 0, 5, 7, + 549, 3, 9, 51, 633, 636, 45, 59, + 57, 55, 0, 61, 630, 639, 0, 5, + 7, 549, 3, 9, 627, 45, 59, 57, + 55, 0, 61, 2407, 45, 59, 57, 55, + 0, 61, 2423, 4337, 11, 381, 2407, 45, + 59, 57, 55, 0, 61, 660, 2431, 2435, + 4337, 2427, 2439, 11, 381, 2407, 45, 59, + 57, 55, 0, 61, 660, 2431, 2435, 4337, + 2427, 2439, 11, 381, 2407, 45, 59, 57, + 55, 0, 61, 660, 2431, 2435, 4337, 2427, + 2439, 11, 381, 11, 381, 11, 381, 450, + 35, 465, 468, 462, 471, 450, 0, 5, + 7, 3, 9, 459, 11, 381, 522, 43, + 531, 534, 528, 537, 0, 5, 7, 522, + 3, 9, 525, 11, 381, 549, 49, 612, + 615, 45, 609, 618, 0, 5, 7, 522, + 3, 9, 525, 11, 381, 2475, 702, 35, + 465, 468, 462, 471, 2107, 4012, 4017, 450, + 0, 5, 7, 3, 9, 699, 1959, 2007, + 11, 381, 753, 2583, 105, 1728, 2855, 279, + 1656, 1659, 45, 1653, 1662, 0, 5, 7, + 549, 0, 0, 3, 9, 283, 1680, 1683, + 45, 1677, 1686, 0, 5, 7, 4292, 3, + 9, 573, 2263, 2267, 0, 45, 2259, 2271, 0, 5, 7, 3, 9, 0, 5, 7, - 3, 9, 649, 381, 2242, 2245, 45, 2239, - 2248, 0, 5, 7, 649, 0, 0, 3, - 9, 385, 2266, 2269, 45, 2263, 2272, 0, - 5, 7, 4870, 3, 9, 673, 2857, 2861, - 0, 45, 2853, 2865, 0, 5, 7, 3, - 9, 0, 5, 7, 3, 9, 0, 4865, - 6390, 676, 2873, 2877, 0, 45, 676, 2869, - 2881, 4845, 6240, 6246, 0, 5, 7, 4865, - 3, 9, 2299, 2545, 2593, 679, 2889, 2893, - 0, 45, 679, 2885, 2897, 4850, 6252, 6258, - 0, 5, 7, 4865, 3, 9, 2545, 2593, - 682, 2905, 2909, 0, 45, 682, 2901, 2913, - 4855, 6264, 6270, 0, 5, 7, 4865, 3, - 9, 2545, 2593, 685, 2921, 2925, 0, 45, - 2917, 2929, 4860, 6276, 6282, 0, 5, 7, - 3, 9, 2545, 2593, 11, 481, 2833, 4830, - 4835, 4720, 4825, 4840, 6234, 6505, 6512, 646, - 11, 481, 2829, 4810, 4815, 4720, 2829, 4805, - 4820, 6228, 6491, 6498, 646, 11, 481, 2825, - 4790, 4795, 4720, 2825, 4785, 4800, 6222, 6477, - 6484, 646, 11, 481, 2821, 4770, 4775, 4720, - 2821, 4765, 4780, 6216, 6463, 6470, 646, 11, - 481, 389, 2290, 2293, 2287, 2296, 11, 481, - 2817, 4750, 4755, 4720, 4745, 4760, 646, 11, - 481, 11, 481, 11, 481, 387, 2278, 2281, - 2275, 2284, 11, 481, 2813, 4730, 4735, 4720, - 4725, 4740, 646, 11, 481, 11, 481, 649, - 49, 709, 712, 45, 706, 715, 0, 5, - 7, 649, 3, 9, 49, 709, 712, 45, - 706, 715, 0, 5, 7, 649, 3, 9, - 49, 709, 712, 45, 706, 715, 0, 5, - 7, 622, 3, 9, 625, 11, 481, 11, - 481, 11, 481, 649, 49, 709, 712, 45, - 706, 715, 0, 5, 7, 649, 3, 9, - 49, 709, 712, 45, 706, 715, 550, 0, - 5, 7, 3, 9, 35, 565, 568, 562, - 571, 550, 0, 5, 7, 3, 9, 35, - 565, 568, 562, 571, 550, 0, 5, 7, - 3, 9, 35, 565, 568, 562, 571, 0, - 5, 7, 622, 3, 9, 625, 11, 481, - 11, 481, 11, 481, 11, 481, 11, 481, - 419, 0, 5, 7, 3, 9, 649, 49, - 709, 712, 45, 706, 715, 0, 5, 7, - 417, 3, 9, 0, 5, 7, 3, 9, - 129, 1, 11, 481, 11, 481, 11, 481, - 877, 0, 865, 5, 7, 868, 871, 3, - 9, 1, 436, 457, 111, 113, 0, 3129, - 850, 105, 107, 649, 874, 3193, 3197, 45, - 3189, 3201, 3185, 5000, 5005, 11, 481, 0, - 850, 105, 109, 649, 49, 709, 712, 45, - 706, 715, 0, 5, 7, 417, 3, 9, - 0, 5, 7, 3, 9, 649, 47, 694, - 697, 45, 691, 700, 880, 0, 5, 7, + 3, 9, 549, 281, 1668, 1671, 45, 1665, + 1674, 0, 5, 7, 549, 0, 0, 3, + 9, 285, 1692, 1695, 45, 1689, 1698, 0, + 5, 7, 4292, 3, 9, 576, 2279, 2283, + 0, 45, 2275, 2287, 0, 5, 7, 3, + 9, 0, 5, 7, 3, 9, 0, 4287, + 5812, 579, 2295, 2299, 0, 45, 579, 2291, + 2303, 4267, 5662, 5668, 0, 5, 7, 4287, + 3, 9, 1725, 1971, 2019, 582, 2311, 2315, + 0, 45, 582, 2307, 2319, 4272, 5674, 5680, + 0, 5, 7, 4287, 3, 9, 1971, 2019, + 585, 2327, 2331, 0, 45, 585, 2323, 2335, + 4277, 5686, 5692, 0, 5, 7, 4287, 3, + 9, 1971, 2019, 588, 2343, 2347, 0, 45, + 2339, 2351, 4282, 5698, 5704, 0, 5, 7, + 3, 9, 1971, 2019, 11, 381, 2255, 4252, + 4257, 4142, 4247, 4262, 5656, 5927, 5934, 546, + 11, 381, 2251, 4232, 4237, 4142, 2251, 4227, + 4242, 5650, 5913, 5920, 546, 11, 381, 2247, + 4212, 4217, 4142, 2247, 4207, 4222, 5644, 5899, + 5906, 546, 11, 381, 2243, 4192, 4197, 4142, + 2243, 4187, 4202, 5638, 5885, 5892, 546, 11, + 381, 289, 1716, 1719, 1713, 1722, 11, 381, + 2239, 4172, 4177, 4142, 4167, 4182, 546, 11, + 381, 11, 381, 11, 381, 287, 1704, 1707, + 1701, 1710, 11, 381, 2235, 4152, 4157, 4142, + 4147, 4162, 546, 11, 381, 11, 381, 549, + 49, 612, 615, 45, 609, 618, 0, 5, + 7, 549, 3, 9, 49, 612, 615, 45, + 609, 618, 0, 5, 7, 549, 3, 9, + 49, 612, 615, 45, 609, 618, 0, 5, + 7, 522, 3, 9, 525, 11, 381, 11, + 381, 11, 381, 549, 49, 612, 615, 45, + 609, 618, 0, 5, 7, 549, 3, 9, + 49, 612, 615, 45, 609, 618, 450, 0, + 5, 7, 3, 9, 35, 465, 468, 462, + 471, 450, 0, 5, 7, 3, 9, 35, + 465, 468, 462, 471, 450, 0, 5, 7, + 3, 9, 35, 465, 468, 462, 471, 0, + 5, 7, 522, 3, 9, 525, 11, 381, + 11, 381, 11, 381, 11, 381, 11, 381, + 319, 0, 5, 7, 3, 9, 549, 49, + 612, 615, 45, 609, 618, 0, 5, 7, + 317, 3, 9, 0, 5, 7, 3, 9, + 129, 1, 11, 381, 11, 381, 11, 381, + 780, 0, 768, 5, 7, 771, 774, 3, + 9, 1, 336, 357, 111, 113, 0, 2551, + 753, 105, 107, 549, 777, 2615, 2619, 45, + 2611, 2623, 2607, 4422, 4427, 11, 381, 0, + 753, 105, 109, 549, 49, 612, 615, 45, + 609, 618, 0, 5, 7, 317, 3, 9, + 0, 5, 7, 3, 9, 549, 47, 597, + 600, 45, 594, 603, 783, 0, 5, 7, 115, 3, 9, 117, 0, 5, 7, 3, - 9, 1, 436, 457, 11, 481, 11, 481, - 11, 481, 11, 481, 649, 47, 694, 697, - 45, 691, 700, 0, 5, 7, 649, 3, - 9, 47, 694, 697, 45, 691, 700, 0, + 9, 1, 336, 357, 11, 381, 11, 381, + 11, 381, 11, 381, 549, 47, 597, 600, + 45, 594, 603, 0, 5, 7, 549, 3, + 9, 47, 597, 600, 45, 594, 603, 0, 5, 7, 115, 3, 9, 117, 0, 5, - 7, 3, 9, 1, 436, 457, 11, 481, - 11, 481, 11, 481, 649, 47, 694, 697, - 45, 691, 700, 967, 0, 5, 7, 147, + 7, 3, 9, 1, 336, 357, 11, 381, + 11, 381, 11, 381, 549, 47, 597, 600, + 45, 594, 603, 870, 0, 5, 7, 147, 149, 151, 153, 3, 9, 0, 5, 7, - 3, 9, 2797, 649, 47, 694, 697, 45, - 691, 700, 0, 5, 7, 0, 3, 9, - 3221, 0, 5, 7, 0, 5, 7, 0, - 5, 7, 1, 3, 9, 436, 457, 3, - 9, 436, 457, 3, 9, 436, 457, 970, - 129, 11, 481, 11, 481, 11, 481, 11, - 481, 11, 481, 0, 5, 7, 3, 9, - 649, 47, 694, 697, 45, 691, 700, 3133, - 0, 5, 7, 850, 3, 9, 4965, 105, - 859, 3145, 3149, 859, 3145, 3149, 859, 3145, - 3149, 3137, 3141, 3153, 4970, 4975, 3141, 3153, - 4970, 4975, 3141, 3153, 4970, 4975, 11, 481, - 11, 481, 0, 5, 7, 3, 9, 649, - 47, 694, 697, 45, 691, 700, 0, 5, - 7, 850, 3, 9, 105, 862, 3169, 3173, - 862, 3169, 3173, 862, 3169, 3173, 3161, 3165, - 3177, 4985, 4990, 3165, 3177, 4985, 4990, 3165, - 3177, 4985, 4990, 11, 481, 11, 481, 0, - 5, 7, 3, 9, 649, 47, 694, 697, - 45, 691, 700, 0, 5, 7, 622, 3, - 9, 43, 631, 634, 43, 631, 634, 43, - 631, 634, 625, 628, 637, 2785, 2789, 628, - 637, 2785, 2789, 628, 637, 2785, 2789, 11, - 481, 11, 481, 11, 481, 973, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 169, 979, 982, 0, 0, 0, 976, 985, - 0, 5, 7, 417, 3, 9, 0, 5, - 7, 3, 9, 649, 47, 694, 697, 45, - 691, 700, 0, 5, 7, 649, 3, 9, - 51, 730, 733, 45, 727, 736, 778, 0, - 5, 7, 763, 3, 9, 65, 769, 772, - 63, 766, 775, 0, 5, 7, 763, 3, - 9, 65, 769, 772, 63, 766, 775, 0, - 5, 7, 649, 3, 9, 49, 709, 712, - 45, 706, 715, 0, 5, 7, 622, 3, - 9, 43, 631, 634, 628, 637, 0, 5, - 7, 129, 3, 9, 1, 11, 481, 11, - 481, 11, 481, 11, 481, 11, 481, 11, - 481, 11, 481, 11, 481, 0, 0, 195, - 1135, 1138, 1132, 1141, 0, 0, 0, 189, - 1099, 1102, 1096, 1105, 0, 209, 1219, 1222, - 1216, 1225, 0, 0, 0, 0, 0, 0, - 259, 1519, 1522, 1516, 1525, 0, 0, 0, - 0, 0, 0, 235, 1375, 1378, 1372, 1381, - 233, 1363, 1366, 1360, 1369, 0, 0, 205, - 1195, 1198, 1192, 1201, 0, 0, 0, 173, - 1003, 1006, 1000, 1009, 0, 0, 0, 239, - 1399, 1402, 1396, 1405, 0, 0, 0, 0, - 0, 0, 223, 1303, 1306, 1300, 1309, 0, - 0, 0, 0, 207, 1207, 1210, 1204, 1213, - 0, 0, 0, 221, 1291, 1294, 1288, 1297, - 211, 1231, 1234, 0, 1228, 1237, 0, 0, - 265, 1555, 1558, 1552, 1561, 0, 0, 0, - 0, 0, 253, 1483, 1486, 1480, 1489, 0, - 255, 1495, 1498, 1492, 1501, 0, 0, 0, - 0, 0, 179, 1039, 1042, 1036, 1045, 0, - 0, 0, 263, 1543, 1546, 1540, 1549, 0, - 0, 0, 0, 0, 0, 0, 215, 1255, - 1258, 1252, 1261, 0, 0, 0, 193, 1123, - 1126, 1120, 1129, 203, 1183, 1186, 1180, 1189, - 0, 0, 0, 0, 0, 247, 1447, 1450, - 1444, 1453, 0, 249, 1459, 1462, 1456, 1465, - 0, 197, 1147, 1150, 1144, 1153, 251, 1471, - 1474, 1468, 1477, 0, 0, 0, 0, 0, - 181, 1051, 1054, 1048, 1057, 183, 1063, 1066, - 1060, 1069, 0, 0, 0, 0, 0, 0, - 201, 1171, 1174, 1168, 1177, 0, 245, 1435, - 1438, 1432, 1441, 171, 991, 994, 0, 988, - 997, 0, 219, 1279, 1282, 0, 1276, 1285, - 225, 1315, 1318, 0, 1312, 1321, 0, 0, - 0, 0, 227, 1327, 1330, 1324, 1333, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 237, 1387, 1390, 1384, 1393, 0, 0, 177, - 1027, 1030, 1024, 1033, 0, 0, 0, 187, - 1087, 1090, 1084, 1093, 0, 0, 0, 217, - 1267, 1270, 1264, 1273, 191, 1111, 1114, 1108, - 1117, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 231, 1351, 1354, 1348, 1357, - 0, 175, 1015, 1018, 1012, 1021, 0, 243, - 1423, 1426, 1420, 1429, 0, 199, 1159, 1162, - 1156, 1165, 0, 0, 0, 213, 1243, 1246, - 1240, 1249, 0, 0, 261, 1531, 1534, 1528, - 1537, 0, 0, 0, 0, 0, 229, 1339, - 1342, 1336, 1345, 0, 185, 1075, 1078, 1072, - 1081, 0, 0, 2801, 649, 49, 709, 712, - 45, 706, 715, 0, 0, 257, 1507, 1510, - 1504, 1513, 0, 0, 0, 0, 0, 267, - 1567, 1570, 1564, 1573, 0, 0, 0, 0, - 0, 241, 1411, 1414, 1408, 1417, 622, 640, - 1, 649, 49, 709, 712, 45, 706, 715, - 0, 5, 7, 649, 3, 9, 47, 694, - 697, 45, 691, 700, 0, 5, 7, 417, - 3, 9, 0, 5, 7, 3, 9, 129, - 1, 11, 481, 11, 481, 11, 481, 129, - 1, 649, 47, 694, 697, 45, 691, 700, - 0, 5, 7, 649, 3, 9, 47, 694, - 697, 45, 691, 700, 0, 5, 7, 649, - 3, 9, 49, 709, 712, 45, 706, 715, - 0, 5, 7, 33, 553, 3, 9, 35, - 565, 568, 562, 571, 886, 0, 5, 7, - 556, 3, 9, 133, 135, 0, 137, 139, - 0, 141, 0, 143, 145, 0, 574, 131, - 1, 0, 0, 11, 481, 117, 115, 11, - 481, 11, 481, 11, 481, 649, 47, 694, - 697, 45, 691, 700, 0, 5, 7, 649, - 3, 9, 47, 694, 697, 45, 691, 700, - 0, 5, 7, 649, 3, 9, 49, 709, - 712, 45, 706, 715, 0, 5, 7, 33, - 553, 3, 9, 559, 117, 115, 11, 481, - 11, 481, 11, 481, 649, 47, 694, 697, - 45, 691, 700, 0, 5, 7, 649, 3, - 9, 47, 694, 697, 45, 691, 700, 0, - 5, 7, 649, 3, 9, 47, 694, 697, - 45, 691, 700, 0, 5, 7, 115, 3, - 9, 117, 0, 5, 7, 3, 9, 1, - 436, 457, 11, 481, 11, 481, 11, 481, - 11, 481, 649, 51, 730, 733, 45, 727, - 736, 0, 5, 7, 649, 3, 9, 718, - 45, 1, 11, 481, 649, 51, 730, 733, - 45, 727, 736, 0, 5, 7, 649, 3, - 9, 47, 694, 697, 45, 691, 700, 0, - 5, 7, 649, 3, 9, 47, 694, 697, - 45, 691, 700, 0, 5, 7, 115, 3, - 9, 117, 0, 5, 7, 3, 9, 1, - 436, 457, 11, 481, 11, 481, 11, 481, - 11, 481, 649, 49, 709, 712, 45, 706, - 715, 0, 5, 7, 850, 3, 9, 3137, - 105, 11, 481, 649, 49, 709, 712, 45, - 706, 715, 0, 5, 7, 2308, 3, 9, - 117, 115, 117, 3209, 395, 115, 117, 115, - 117, 3453, 3449, 11, 481, 2305, 117, 3445, - 393, 115, 117, 3437, 2305, 117, 393, 115, - 117, 3441, 649, 49, 709, 712, 45, 706, - 715, 0, 5, 7, 649, 3, 9, 49, - 709, 712, 45, 706, 715, 75, 0, 5, - 7, 3, 9, 1, 11, 481, 11, 481, - 649, 47, 694, 697, 45, 691, 700, 550, - 0, 5, 7, 3, 9, 35, 565, 568, - 562, 571, 75, 0, 5, 7, 3, 9, - 1, 11, 481, 11, 481, 649, 49, 709, - 712, 45, 706, 715, 0, 5, 7, 622, - 3, 9, 643, 1, 11, 481, 0, 0, - 0, 0, 0, 269, 1579, 1582, 1576, 1585, - 0, 5, 7, 421, 3, 9, 0, 5, - 7, 3, 9, 649, 49, 709, 712, 45, - 706, 715, 0, 5, 7, 622, 3, 9, - 625, 11, 481, 11, 481, 11, 481, 0, - 0, 0, 271, 1591, 1594, 1588, 1597, 0, - 0, 0, 649, 49, 709, 712, 45, 706, - 715, 613, 610, 0, 2757, 2761, 589, 484, - 493, 2753, 2765, 610, 425, 2561, 2569, 3481, - 3489, 2529, 2577, 3473, 3477, 4510, 4520, 2777, - 610, 2561, 2569, 3109, 3109, 3109, 3109, 3109, - 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, - 3109, 3109, 3109, 3109, 3109, 2529, 2577, 4695, - 4710, 4955, 4955, 4955, 4955, 4955, 4955, 4955, - 4955, 4955, 4955, 4955, 4955, 4955, 4955, 4955, - 4955, 4955, 4955, 2769, 3105, 93, 4940, 4945, - 3101, 3093, 3097, 4935, 4950, 2561, 2569, 2529, - 2577, 499, 2629, 2637, 4565, 2645, 499, 2557, - 2565, 2573, 4515, 6204, 6210, 6324, 6324, 6324, - 6324, 6324, 6324, 6324, 6324, 6324, 6324, 6324, - 6324, 6324, 6324, 6324, 6324, 6324, 6324, 4505 + 3, 9, 2223, 549, 47, 597, 600, 45, + 594, 603, 0, 5, 7, 0, 3, 9, + 2643, 0, 5, 7, 0, 5, 7, 0, + 5, 7, 1, 3, 9, 336, 357, 3, + 9, 336, 357, 3, 9, 336, 357, 873, + 129, 11, 381, 11, 381, 11, 381, 11, + 381, 11, 381, 0, 5, 7, 3, 9, + 549, 47, 597, 600, 45, 594, 603, 2555, + 0, 5, 7, 753, 3, 9, 4387, 105, + 762, 2567, 2571, 762, 2567, 2571, 762, 2567, + 2571, 2559, 2563, 2575, 4392, 4397, 2563, 2575, + 4392, 4397, 2563, 2575, 4392, 4397, 11, 381, + 11, 381, 0, 5, 7, 3, 9, 549, + 47, 597, 600, 45, 594, 603, 0, 5, + 7, 753, 3, 9, 105, 765, 2591, 2595, + 765, 2591, 2595, 765, 2591, 2595, 2583, 2587, + 2599, 4407, 4412, 2587, 2599, 4407, 4412, 2587, + 2599, 4407, 4412, 11, 381, 11, 381, 0, + 5, 7, 3, 9, 549, 47, 597, 600, + 45, 594, 603, 0, 5, 7, 522, 3, + 9, 43, 531, 534, 43, 531, 534, 43, + 531, 534, 525, 528, 537, 2211, 2215, 528, + 537, 2211, 2215, 528, 537, 2211, 2215, 11, + 381, 11, 381, 11, 381, 171, 0, 5, + 7, 3, 9, 317, 0, 5, 7, 3, + 9, 549, 47, 597, 600, 45, 594, 603, + 0, 5, 7, 549, 3, 9, 51, 633, + 636, 45, 630, 639, 681, 0, 5, 7, + 666, 3, 9, 65, 672, 675, 63, 669, + 678, 0, 5, 7, 666, 3, 9, 65, + 672, 675, 63, 669, 678, 0, 5, 7, + 549, 3, 9, 49, 612, 615, 45, 609, + 618, 0, 5, 7, 522, 3, 9, 43, + 531, 534, 528, 537, 0, 5, 7, 129, + 3, 9, 1, 11, 381, 11, 381, 11, + 381, 11, 381, 11, 381, 11, 381, 11, + 381, 11, 381, 522, 540, 1, 549, 49, + 612, 615, 45, 609, 618, 0, 5, 7, + 549, 3, 9, 47, 597, 600, 45, 594, + 603, 0, 5, 7, 317, 3, 9, 0, + 5, 7, 3, 9, 129, 1, 11, 381, + 11, 381, 11, 381, 129, 1, 549, 47, + 597, 600, 45, 594, 603, 0, 5, 7, + 549, 3, 9, 47, 597, 600, 45, 594, + 603, 0, 5, 7, 549, 3, 9, 49, + 612, 615, 45, 609, 618, 0, 5, 7, + 33, 453, 3, 9, 35, 465, 468, 462, + 471, 789, 0, 5, 7, 456, 3, 9, + 133, 135, 0, 137, 139, 0, 141, 0, + 143, 145, 0, 474, 131, 1, 0, 0, + 11, 381, 117, 115, 11, 381, 11, 381, + 11, 381, 549, 47, 597, 600, 45, 594, + 603, 0, 5, 7, 549, 3, 9, 47, + 597, 600, 45, 594, 603, 0, 5, 7, + 549, 3, 9, 49, 612, 615, 45, 609, + 618, 0, 5, 7, 33, 453, 3, 9, + 459, 117, 115, 11, 381, 11, 381, 11, + 381, 549, 47, 597, 600, 45, 594, 603, + 0, 5, 7, 549, 3, 9, 47, 597, + 600, 45, 594, 603, 0, 5, 7, 549, + 3, 9, 47, 597, 600, 45, 594, 603, + 0, 5, 7, 115, 3, 9, 117, 0, + 5, 7, 3, 9, 1, 336, 357, 11, + 381, 11, 381, 11, 381, 11, 381, 549, + 51, 633, 636, 45, 630, 639, 0, 5, + 7, 549, 3, 9, 621, 45, 1, 11, + 381, 549, 51, 633, 636, 45, 630, 639, + 0, 5, 7, 549, 3, 9, 47, 597, + 600, 45, 594, 603, 0, 5, 7, 549, + 3, 9, 47, 597, 600, 45, 594, 603, + 0, 5, 7, 115, 3, 9, 117, 0, + 5, 7, 3, 9, 1, 336, 357, 11, + 381, 11, 381, 11, 381, 11, 381, 549, + 49, 612, 615, 45, 609, 618, 0, 5, + 7, 753, 3, 9, 2559, 105, 11, 381, + 549, 49, 612, 615, 45, 609, 618, 0, + 5, 7, 1734, 3, 9, 117, 115, 117, + 2631, 295, 115, 117, 115, 117, 2875, 2871, + 11, 381, 1731, 117, 2867, 293, 115, 117, + 2859, 1731, 117, 293, 115, 117, 2863, 549, + 49, 612, 615, 45, 609, 618, 0, 5, + 7, 549, 3, 9, 49, 612, 615, 45, + 609, 618, 75, 0, 5, 7, 3, 9, + 1, 11, 381, 11, 381, 549, 47, 597, + 600, 45, 594, 603, 450, 0, 5, 7, + 3, 9, 35, 465, 468, 462, 471, 75, + 0, 5, 7, 3, 9, 1, 11, 381, + 11, 381, 549, 49, 612, 615, 45, 609, + 618, 0, 5, 7, 522, 3, 9, 543, + 1, 11, 381, 171, 0, 5, 7, 3, + 9, 321, 0, 5, 7, 3, 9, 549, + 49, 612, 615, 45, 609, 618, 0, 5, + 7, 522, 3, 9, 525, 11, 381, 11, + 381, 11, 381, 513, 510, 0, 2183, 2187, + 489, 384, 393, 2179, 2191, 510, 325, 1987, + 1995, 2903, 2911, 1955, 2003, 2895, 2899, 3932, + 3942, 2203, 510, 1987, 1995, 2531, 2531, 2531, + 2531, 2531, 2531, 2531, 2531, 2531, 2531, 2531, + 2531, 2531, 2531, 2531, 2531, 2531, 2531, 1955, + 2003, 4117, 4132, 4377, 4377, 4377, 4377, 4377, + 4377, 4377, 4377, 4377, 4377, 4377, 4377, 4377, + 4377, 4377, 4377, 4377, 4377, 2195, 2527, 93, + 4362, 4367, 2523, 2515, 2519, 4357, 4372, 1987, + 1995, 1955, 2003, 399, 2055, 2063, 3987, 2071, + 399, 1983, 1991, 1999, 3937, 5626, 5632, 5746, + 5746, 5746, 5746, 5746, 5746, 5746, 5746, 5746, + 5746, 5746, 5746, 5746, 5746, 5746, 5746, 5746, + 5746, 3927 }; static const short _zone_scanner_eof_actions[] = { - 0, 2805, 2981, 431, 2353, 423, 2338, 15, - 15, 423, 423, 2338, 2338, 2338, 4715, 6306, - 2350, 431, 431, 2353, 2338, 2338, 431, 431, - 431, 431, 431, 2353, 2353, 431, 431, 2353, - 431, 431, 431, 2353, 431, 431, 431, 2353, - 431, 431, 431, 431, 2353, 431, 431, 431, - 2353, 431, 431, 431, 2353, 2353, 431, 431, - 2353, 431, 431, 431, 431, 2353, 431, 2353, - 431, 431, 431, 431, 2353, 431, 431, 431, - 2353, 431, 431, 431, 431, 431, 431, 431, - 431, 431, 431, 2353, 431, 431, 2353, 2353, - 431, 431, 2353, 431, 2353, 431, 2353, 2353, - 431, 431, 431, 431, 2353, 2353, 431, 431, - 431, 431, 2353, 431, 2353, 2353, 431, 2353, - 2353, 431, 431, 431, 431, 2353, 431, 431, - 431, 431, 431, 431, 431, 431, 431, 2353, - 431, 431, 2353, 431, 2353, 431, 431, 431, - 2353, 2353, 431, 431, 431, 431, 431, 2353, - 431, 2353, 431, 2353, 431, 2353, 431, 431, - 431, 2353, 431, 431, 2353, 431, 431, 431, - 2353, 431, 2353, 431, 431, 667, 2809, 431, - 431, 2353, 431, 431, 431, 431, 431, 2353, - 431, 431, 431, 431, 431, 2353, 431, 2805, - 431, 431, 667, 2981, 2981, 2981, 2981, 431, + 0, 2227, 2403, 331, 1779, 323, 1764, 15, + 15, 323, 323, 1764, 1764, 1764, 4137, 5728, + 1776, 331, 331, 1779, 1764, 1764, 331, 331, + 331, 331, 331, 1779, 1779, 331, 331, 1779, + 331, 331, 331, 1779, 331, 331, 331, 1779, + 331, 331, 331, 331, 1779, 331, 331, 331, + 1779, 331, 331, 331, 1779, 1779, 331, 331, + 1779, 331, 331, 331, 331, 1779, 331, 1779, + 331, 331, 331, 331, 1779, 331, 331, 331, + 1779, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 1779, 331, 331, 1779, 1779, + 331, 331, 1779, 331, 1779, 331, 1779, 1779, + 331, 331, 331, 331, 1779, 1779, 331, 331, + 331, 331, 1779, 331, 1779, 1779, 331, 1779, + 1779, 331, 331, 331, 331, 1779, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 1779, + 331, 331, 1779, 331, 1779, 331, 331, 331, + 1779, 1779, 331, 331, 331, 331, 331, 1779, + 331, 1779, 331, 1779, 331, 1779, 331, 331, + 331, 1779, 331, 331, 1779, 331, 331, 331, + 1779, 331, 1779, 331, 331, 570, 2231, 331, + 331, 1779, 331, 331, 331, 331, 331, 1779, + 331, 331, 331, 331, 331, 1779, 331, 2227, + 331, 331, 570, 2403, 2403, 2403, 2403, 331, 15, 95, 95, 95, 95, 95, 95, 95, - 95, 41, 667, 0, 4700, 667, 431, 2981, - 2981, 2981, 431, 2781, 2809, 3493, 2338, 2805, - 15, 2338, 15, 4715, 3493, 3493, 3493, 3493, - 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, - 3493, 3493, 3493, 3493, 3493, 2338, 3469, 95, + 95, 41, 570, 0, 4122, 570, 331, 2403, + 2403, 2403, 331, 2207, 2231, 2915, 1764, 2227, + 15, 1764, 15, 4137, 2915, 2915, 2915, 2915, + 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, + 2915, 2915, 2915, 2915, 2915, 1764, 2891, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 2773, 6456, 2805, 2350, 4705, 4715, 4705, 4705, - 4705, 4705, 4705, 4705, 4705, 4705, 4705, 4705, - 4705, 4705, 4705, 4705, 4705, 4705, 4705, 616, - 4715, 2338, 15, 2338, 2338, 431, 431, 2353, - 431, 431, 431, 2353, 431, 2353, 2338, 2338, - 15, 2338, 2338, 2338, 2338, 423, 4715, 2338, - 2338, 619, 619, 619, 619, 619, 619, 619, - 619, 619, 619, 619, 619, 619, 619, 619, - 619, 619, 15, 2350, 619, 2350, 0, 0, - 0, 31, 31, 31, 529, 529, 529, 529, - 31, 31, 781, 781, 3045, 3045, 3045, 3045, - 781, 781, 69, 3045, 3045, 3045, 3045, 77, - 652, 4910, 502, 502, 4910, 2973, 4910, 77, - 81, 81, 81, 505, 505, 505, 532, 532, - 532, 532, 505, 81, 0, 85, 811, 817, - 87, 817, 15, 15, 535, 535, 535, 535, - 817, 15, 87, 0, 0, 127, 127, 127, - 127, 127, 127, 127, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, - 377, 391, 655, 655, 3205, 3205, 3205, 3205, - 391, 391, 391, 655, 655, 3205, 3205, 3205, - 3205, 391, 655, 391, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 661, 661, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, - 853, 853, 853, 853, 853, 853, 399, 399, - 399, 399, 399, 853, 853, 853, 853, 853, - 853, 399, 399, 658, 658, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 658, 658, 658, - 658, 399, 399, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 411, 411, 411, 411, 411, - 411, 411, 411, 413, 413, 413, 413, 413, - 413, 413, 413, 413, 413, 413, 413, 413, - 413, 413, 413, 413, 413, 413, 413, 413, - 413, 413, 413, 413, 413, 413, 413, 413, - 413, 413, 413, 413, 413, 413, 413, 413, - 413, 413, 413, 413, 415, 415, 415, 415, - 415, 415, 415, 415, 856, 856, 423, 423, - 423, 423, 423, 423, 664, 664, 664, 2977, - 664, 2977, 664, 2977, 664, 2977, 2977, 2977, - 2977, 423, 2977, 2977, 2977, 423, 2977, 2977, - 2977, 423, 2977, 2977, 2977, 423, 423, 423, - 423, 423, 423, 423, 423, 423, 423, 423, - 423, 423, 664, 664, 423, 423, 423, 799, - 799, 799, 799, 856, 856, 2302, 2302, 2302, - 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, - 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, - 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, - 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, - 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, - 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, - 2302, 2302, 2302, 2302, 664, 664, 664, 664, - 664, 664, 423, 423, 423, 423, 423, 664, - 664, 664, 664, 423, 423, 423, 423, 423, - 423, 423, 423, 423, 423, 423, 423, 423, - 423, 423, 664, 664, 423, 423, 423, 423, - 423, 423, 423, 877, 877, 877, 3129, 3129, - 877, 877, 423, 877, 3129, 3129, 664, 664, - 423, 423, 664, 664, 880, 880, 880, 880, - 423, 423, 423, 664, 664, 664, 664, 880, - 880, 880, 880, 423, 423, 664, 664, 967, - 967, 2797, 2797, 967, 3221, 970, 970, 970, - 970, 970, 970, 970, 967, 967, 967, 2797, - 2797, 3133, 4965, 967, 967, 967, 2797, 2797, - 3133, 4965, 967, 967, 967, 2797, 2797, 967, - 3221, 967, 967, 423, 973, 973, 423, 423, - 664, 664, 664, 664, 778, 778, 778, 778, - 664, 664, 423, 423, 423, 423, 423, 423, - 423, 423, 423, 423, 423, 423, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 2801, 2801, - 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 423, - 423, 423, 664, 664, 664, 664, 423, 423, - 423, 423, 423, 423, 423, 423, 423, 664, - 664, 664, 664, 664, 664, 880, 880, 886, - 886, 886, 886, 886, 886, 886, 886, 886, - 423, 886, 886, 886, 886, 886, 423, 880, - 880, 423, 423, 423, 664, 664, 664, 664, - 664, 664, 880, 880, 880, 880, 423, 423, - 423, 664, 664, 664, 664, 664, 664, 880, - 880, 880, 880, 423, 423, 423, 664, 664, - 664, 664, 423, 423, 664, 664, 664, 664, - 664, 664, 880, 880, 880, 880, 423, 423, - 423, 664, 664, 856, 856, 423, 664, 664, - 880, 880, 880, 880, 3209, 880, 880, 880, - 880, 3453, 423, 880, 880, 3445, 880, 880, - 3445, 880, 880, 3445, 880, 880, 3445, 664, - 664, 664, 664, 423, 423, 423, 423, 664, - 664, 423, 423, 423, 423, 423, 423, 664, - 664, 423, 423, 423, 423, 973, 973, 973, - 973, 423, 423, 664, 664, 423, 423, 423, - 423, 423, 973, 973, 973, 973, 973, 973, - 973, 2801, 2801, 0, 0, 0, 0, 93, + 2199, 5878, 2227, 1776, 4127, 4137, 4127, 4127, + 4127, 4127, 4127, 4127, 4127, 4127, 4127, 4127, + 4127, 4127, 4127, 4127, 4127, 4127, 4127, 516, + 4137, 1764, 15, 1764, 1764, 331, 331, 1779, + 331, 331, 331, 1779, 331, 1779, 1764, 1764, + 15, 1764, 1764, 1764, 1764, 323, 4137, 1764, + 1764, 519, 519, 519, 519, 519, 519, 519, + 519, 519, 519, 519, 519, 519, 519, 519, + 519, 519, 15, 1776, 519, 1776, 0, 0, + 0, 31, 31, 31, 429, 429, 429, 429, + 31, 31, 684, 684, 2467, 2467, 2467, 2467, + 684, 684, 69, 2467, 2467, 2467, 2467, 77, + 552, 4332, 402, 402, 4332, 2395, 4332, 77, + 81, 81, 81, 405, 405, 405, 432, 432, + 432, 432, 405, 81, 0, 85, 714, 720, + 87, 720, 15, 15, 435, 435, 435, 435, + 720, 15, 87, 0, 0, 127, 127, 127, + 127, 127, 127, 127, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 555, 555, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 291, 558, 558, 2627, + 2627, 2627, 2627, 291, 291, 291, 558, 558, + 2627, 2627, 2627, 2627, 291, 558, 291, 301, + 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 564, 564, 301, + 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 299, + 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 756, 756, 756, 756, 756, + 756, 299, 299, 299, 299, 299, 756, 756, + 756, 756, 756, 756, 299, 299, 561, 561, + 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, + 561, 561, 561, 561, 299, 299, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 315, + 315, 315, 315, 315, 315, 315, 315, 759, + 759, 323, 323, 323, 323, 323, 323, 567, + 567, 567, 2399, 567, 2399, 567, 2399, 567, + 2399, 2399, 2399, 2399, 323, 2399, 2399, 2399, + 323, 2399, 2399, 2399, 323, 2399, 2399, 2399, + 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 567, 567, 323, + 323, 323, 702, 702, 702, 702, 759, 759, + 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, + 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, + 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, + 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, + 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, + 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, + 1728, 1728, 1728, 1728, 1728, 1728, 1728, 567, + 567, 567, 567, 567, 567, 323, 323, 323, + 323, 323, 567, 567, 567, 567, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 567, 567, 323, + 323, 323, 323, 323, 323, 323, 780, 780, + 780, 2551, 2551, 780, 780, 323, 780, 2551, + 2551, 567, 567, 323, 323, 567, 567, 783, + 783, 783, 783, 323, 323, 323, 567, 567, + 567, 567, 783, 783, 783, 783, 323, 323, + 567, 567, 870, 870, 2223, 2223, 870, 2643, + 873, 873, 873, 873, 873, 873, 873, 870, + 870, 870, 2223, 2223, 2555, 4387, 870, 870, + 870, 2223, 2223, 2555, 4387, 870, 870, 870, + 2223, 2223, 870, 2643, 870, 870, 323, 323, + 323, 323, 323, 567, 567, 567, 567, 681, + 681, 681, 681, 567, 567, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 567, 567, 567, 567, + 323, 323, 323, 323, 323, 323, 323, 323, + 323, 567, 567, 567, 567, 567, 567, 783, + 783, 789, 789, 789, 789, 789, 789, 789, + 789, 789, 323, 789, 789, 789, 789, 789, + 323, 783, 783, 323, 323, 323, 567, 567, + 567, 567, 567, 567, 783, 783, 783, 783, + 323, 323, 323, 567, 567, 567, 567, 567, + 567, 783, 783, 783, 783, 323, 323, 323, + 567, 567, 567, 567, 323, 323, 567, 567, + 567, 567, 567, 567, 783, 783, 783, 783, + 323, 323, 323, 567, 567, 759, 759, 323, + 567, 567, 783, 783, 783, 783, 2631, 783, + 783, 783, 783, 2875, 323, 783, 783, 2867, + 783, 783, 2867, 783, 783, 2867, 783, 783, + 2867, 567, 567, 567, 567, 323, 323, 323, + 323, 567, 567, 323, 323, 323, 323, 323, + 323, 567, 567, 323, 323, 323, 323, 323, + 323, 323, 323, 567, 567, 323, 323, 323, + 323, 323, 0, 0, 0, 0, 93, 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, @@ -6623,7 +6430,7 @@ int zs_init( memset(s, 0, sizeof(*s)); // Nonzero initial scanner state. - s->cs = 1483; + s->cs = 1474; // Reset the file descriptor. s->file.descriptor = -1; @@ -7274,7 +7081,7 @@ _match: } break; case 12: - { p--; {stack[top++] = cs; cs = 1483;goto _again;} } + { p--; {stack[top++] = cs; cs = 1474;goto _again;} } break; case 13: { @@ -7969,7 +7776,7 @@ _match: free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1483; {p++; goto _out; } + p--; cs = 1474; {p++; goto _out; } } } break; @@ -8653,12 +8460,9 @@ _match: { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } break; case 209: - { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } + { p--; {stack[top++] = cs; cs = 388;goto _again;} } break; case 210: - { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } - break; - case 211: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); @@ -8668,163 +8472,163 @@ _match: } } break; - case 212: + case 211: { window_add_bit(KNOT_RRTYPE_A, s); } break; - case 213: + case 212: { window_add_bit(KNOT_RRTYPE_NS, s); } break; - case 214: + case 213: { window_add_bit(KNOT_RRTYPE_CNAME, s); } break; - case 215: + case 214: { window_add_bit(KNOT_RRTYPE_SOA, s); } break; - case 216: + case 215: { window_add_bit(KNOT_RRTYPE_PTR, s); } break; - case 217: + case 216: { window_add_bit(KNOT_RRTYPE_HINFO, s); } break; - case 218: + case 217: { window_add_bit(KNOT_RRTYPE_MINFO, s); } break; - case 219: + case 218: { window_add_bit(KNOT_RRTYPE_MX, s); } break; - case 220: + case 219: { window_add_bit(KNOT_RRTYPE_TXT, s); } break; - case 221: + case 220: { window_add_bit(KNOT_RRTYPE_RP, s); } break; - case 222: + case 221: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } break; - case 223: + case 222: { window_add_bit(KNOT_RRTYPE_RT, s); } break; - case 224: + case 223: { window_add_bit(KNOT_RRTYPE_KEY, s); } break; - case 225: + case 224: { window_add_bit(KNOT_RRTYPE_AAAA, s); } break; - case 226: + case 225: { window_add_bit(KNOT_RRTYPE_LOC, s); } break; - case 227: + case 226: { window_add_bit(KNOT_RRTYPE_SRV, s); } break; - case 228: + case 227: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } break; - case 229: + case 228: { window_add_bit(KNOT_RRTYPE_KX, s); } break; - case 230: + case 229: { window_add_bit(KNOT_RRTYPE_CERT, s); } break; - case 231: + case 230: { window_add_bit(KNOT_RRTYPE_DNAME, s); } break; - case 232: + case 231: { window_add_bit(KNOT_RRTYPE_APL, s); } break; - case 233: + case 232: { window_add_bit(KNOT_RRTYPE_DS, s); } break; - case 234: + case 233: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } break; - case 235: + case 234: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } break; - case 236: + case 235: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } break; - case 237: + case 236: { window_add_bit(KNOT_RRTYPE_NSEC, s); } break; - case 238: + case 237: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } break; - case 239: + case 238: { window_add_bit(KNOT_RRTYPE_DHCID, s); } break; - case 240: + case 239: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } break; - case 241: + case 240: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } break; - case 242: + case 241: { window_add_bit(KNOT_RRTYPE_TLSA, s); } break; - case 243: + case 242: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } break; - case 244: + case 243: { window_add_bit(KNOT_RRTYPE_CDS, s); } break; - case 245: + case 244: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } break; - case 246: + case 245: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } break; - case 247: + case 246: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } break; - case 248: + case 247: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } break; - case 249: + case 248: { window_add_bit(KNOT_RRTYPE_SPF, s); } break; - case 250: + case 249: { window_add_bit(KNOT_RRTYPE_NID, s); } break; - case 251: + case 250: { window_add_bit(KNOT_RRTYPE_L32, s); } break; - case 252: + case 251: { window_add_bit(KNOT_RRTYPE_L64, s); } break; - case 253: + case 252: { window_add_bit(KNOT_RRTYPE_LP, s); } break; - case 254: + case 253: { window_add_bit(KNOT_RRTYPE_EUI48, s); } break; - case 255: + case 254: { window_add_bit(KNOT_RRTYPE_EUI64, s); } break; - case 256: + case 255: { window_add_bit(KNOT_RRTYPE_URI, s); } break; - case 257: + case 256: { window_add_bit(KNOT_RRTYPE_CAA, s); } break; - case 258: + case 257: { window_add_bit(KNOT_RRTYPE_SVCB, s); } break; - case 259: + case 258: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } break; - case 260: + case 259: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } break; - case 261: + case 260: { window_add_bit(KNOT_RRTYPE_WALLET, s); } break; - case 262: + case 261: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } break; - case 263: + case 262: { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -8849,16 +8653,16 @@ _match: } } break; - case 264: + case 263: { WARN(ZS_BAD_BITMAP); p--; {cs = 319;goto _again;} } break; - case 265: - { p--; {stack[top++] = cs; cs = 388;goto _again;} } + case 264: + { p--; {stack[top++] = cs; cs = 559;goto _again;} } break; - case 266: + case 265: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); @@ -8868,7 +8672,7 @@ _match: } } break; - case 267: + case 266: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); @@ -8878,7 +8682,7 @@ _match: } } break; - case 268: + case 267: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); @@ -8888,7 +8692,7 @@ _match: } } break; - case 269: + case 268: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); @@ -8898,7 +8702,7 @@ _match: } } break; - case 270: + case 269: { if (s->number64 <= 59999) { s->loc.s1 = (uint32_t)(s->number64); @@ -8908,7 +8712,7 @@ _match: } } break; - case 271: + case 270: { if (s->number64 <= 59999) { s->loc.s2 = (uint32_t)(s->number64); @@ -8918,7 +8722,7 @@ _match: } } break; - case 272: + case 271: { if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || (s->loc.alt_sign == -1 && s->number64 <= 10000000)) @@ -8930,7 +8734,7 @@ _match: } } break; - case 273: + case 272: { if (s->number64 <= 9000000000ULL) { s->loc.siz = s->number64; @@ -8940,7 +8744,7 @@ _match: } } break; - case 274: + case 273: { if (s->number64 <= 9000000000ULL) { s->loc.hp = s->number64; @@ -8950,7 +8754,7 @@ _match: } } break; - case 275: + case 274: { if (s->number64 <= 9000000000ULL) { s->loc.vp = s->number64; @@ -8960,22 +8764,22 @@ _match: } } break; - case 276: + case 275: { s->loc.lat_sign = -1; } break; - case 277: + case 276: { s->loc.long_sign = -1; } break; - case 278: + case 277: { s->loc.alt_sign = -1; } break; - case 279: + case 278: { memset(&(s->loc), 0, sizeof(s->loc)); // Defaults. @@ -8987,7 +8791,7 @@ _match: s->loc.alt_sign = 1; } break; - case 280: + case 279: { // Write version. *(rdata_tail) = 0; @@ -9015,29 +8819,29 @@ _match: rdata_tail += 4; } break; - case 281: + case 280: { WARN(ZS_BAD_LOC_DATA); p--; {cs = 319;goto _again;} } break; - case 282: + case 281: { WARN(ZS_BAD_HEX_RDATA); p--; {cs = 319;goto _again;} } break; - case 283: + case 282: { s->item_length = 0; } break; - case 284: + case 283: { s->item_length++; } break; - case 285: + case 284: { if (s->item_length != 6) { WARN(ZS_BAD_EUI_LENGTH); @@ -9045,7 +8849,7 @@ _match: } } break; - case 286: + case 285: { if (s->item_length != 8) { WARN(ZS_BAD_EUI_LENGTH); @@ -9053,23 +8857,23 @@ _match: } } break; - case 287: + case 286: { WARN(ZS_BAD_CHAR_DASH); p--; {cs = 319;goto _again;} } break; - case 288: + case 287: { s->item_length = 0; } break; - case 289: + case 288: { s->item_length++; } break; - case 290: + case 289: { if (s->item_length != 4) { WARN(ZS_BAD_L64_LENGTH); @@ -9077,19 +8881,19 @@ _match: } } break; - case 291: + case 290: { WARN(ZS_BAD_CHAR_COLON); p--; {cs = 319;goto _again;} } break; - case 292: + case 291: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; } break; - case 293: + case 292: { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { @@ -9098,19 +8902,19 @@ _match: } } break; - case 294: + case 293: { WARN(ZS_BAD_SVCB_PARAM); p--; {cs = 319;goto _again;} } break; - case 295: + case 294: { WARN(ZS_BAD_SVCB_MANDATORY); p--; {cs = 319;goto _again;} } break; - case 296: + case 295: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); @@ -9119,7 +8923,7 @@ _match: s->svcb.param_position = rdata_tail; } break; - case 297: + case 296: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { @@ -9128,13 +8932,13 @@ _match: } } break; - case 298: + case 297: { s->comma_list = true; s->pending_backslash = false; } break; - case 299: + case 298: { s->comma_list = false; if (s->pending_backslash) { @@ -9143,17 +8947,17 @@ _match: } } break; - case 300: + case 299: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } break; - case 301: + case 300: { svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } break; - case 302: + case 301: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); @@ -9161,144 +8965,144 @@ _match: } } break; + case 302: + { p--; {stack[top++] = cs; cs = 751;goto _again;} } + break; case 303: - { p--; {stack[top++] = cs; cs = 580;goto _again;} } + { p--; {stack[top++] = cs; cs = 807;goto _again;} } break; case 304: - { p--; {stack[top++] = cs; cs = 636;goto _again;} } - break; - case 305: { WARN(ZS_BAD_ALGORITHM); p--; {cs = 319;goto _again;} } break; - case 306: + case 305: { WARN(ZS_BAD_CERT_TYPE); p--; {cs = 319;goto _again;} } break; - case 307: + case 306: { WARN(ZS_BAD_DSYNC_SCHEME); p--; {cs = 319;goto _again;} } break; + case 307: + { p--; {stack[top++] = cs; cs = 918;goto _again;} } + break; case 308: - { p--; {stack[top++] = cs; cs = 747;goto _again;} } + { p--; {stack[top++] = cs; cs = 1022;goto _again;} } break; case 309: - { p--; {stack[top++] = cs; cs = 851;goto _again;} } + { p--; {stack[top++] = cs; cs = 1063;goto _again;} } break; case 310: - { p--; {stack[top++] = cs; cs = 892;goto _again;} } - break; - case 311: { rdata_tail = s->r_data; } break; - case 312: + case 311: { WARN(ZS_BAD_RDATA); p--; {cs = 319;goto _again;} } break; - case 313: + case 312: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = cs; cs = 900;goto _again;} + {stack[top++] = cs; cs = 1071;goto _again;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = cs; cs = 902;goto _again;} + {stack[top++] = cs; cs = 1073;goto _again;} case KNOT_RRTYPE_SOA: - {stack[top++] = cs; cs = 904;goto _again;} + {stack[top++] = cs; cs = 1075;goto _again;} case KNOT_RRTYPE_HINFO: - {stack[top++] = cs; cs = 936;goto _again;} + {stack[top++] = cs; cs = 1107;goto _again;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = cs; cs = 941;goto _again;} + {stack[top++] = cs; cs = 1112;goto _again;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = cs; cs = 946;goto _again;} + {stack[top++] = cs; cs = 1117;goto _again;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_WALLET: - {stack[top++] = cs; cs = 951;goto _again;} + {stack[top++] = cs; cs = 1122;goto _again;} case KNOT_RRTYPE_AAAA: - {stack[top++] = cs; cs = 955;goto _again;} + {stack[top++] = cs; cs = 1126;goto _again;} case KNOT_RRTYPE_LOC: - {stack[top++] = cs; cs = 957;goto _again;} + {stack[top++] = cs; cs = 1128;goto _again;} case KNOT_RRTYPE_SRV: - {stack[top++] = cs; cs = 1012;goto _again;} + {stack[top++] = cs; cs = 1183;goto _again;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = cs; cs = 1023;goto _again;} + {stack[top++] = cs; cs = 1194;goto _again;} case KNOT_RRTYPE_CERT: - {stack[top++] = cs; cs = 1040;goto _again;} + {stack[top++] = cs; cs = 1211;goto _again;} case KNOT_RRTYPE_APL: - {stack[top++] = cs; cs = 1051;goto _again;} + {stack[top++] = cs; cs = 1222;goto _again;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = cs; cs = 1062;goto _again;} + {stack[top++] = cs; cs = 1233;goto _again;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = cs; cs = 1075;goto _again;} + {stack[top++] = cs; cs = 1246;goto _again;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = cs; cs = 1085;goto _again;} + {stack[top++] = cs; cs = 1256;goto _again;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = cs; cs = 1124;goto _again;} + {stack[top++] = cs; cs = 1295;goto _again;} case KNOT_RRTYPE_NSEC: - {stack[top++] = cs; cs = 1319;goto _again;} + {stack[top++] = cs; cs = 1321;goto _again;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = cs; cs = 1322;goto _again;} + {stack[top++] = cs; cs = 1324;goto _again;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = cs; cs = 1333;goto _again;} - case KNOT_RRTYPE_NSEC3: {stack[top++] = cs; cs = 1335;goto _again;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = cs; cs = 1337;goto _again;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = cs; cs = 1364;goto _again;} + {stack[top++] = cs; cs = 1366;goto _again;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = cs; cs = 1377;goto _again;} + {stack[top++] = cs; cs = 1379;goto _again;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = cs; cs = 1390;goto _again;} + {stack[top++] = cs; cs = 1392;goto _again;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = cs; cs = 1396;goto _again;} + {stack[top++] = cs; cs = 1398;goto _again;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = cs; cs = 1414;goto _again;} + {stack[top++] = cs; cs = 1416;goto _again;} case KNOT_RRTYPE_L32: - {stack[top++] = cs; cs = 1409;goto _again;} + {stack[top++] = cs; cs = 1411;goto _again;} case KNOT_RRTYPE_EUI48: - {stack[top++] = cs; cs = 1427;goto _again;} + {stack[top++] = cs; cs = 1429;goto _again;} case KNOT_RRTYPE_EUI64: - {stack[top++] = cs; cs = 1433;goto _again;} + {stack[top++] = cs; cs = 1435;goto _again;} case KNOT_RRTYPE_URI: - {stack[top++] = cs; cs = 1439;goto _again;} + {stack[top++] = cs; cs = 1441;goto _again;} case KNOT_RRTYPE_CAA: - {stack[top++] = cs; cs = 1447;goto _again;} + {stack[top++] = cs; cs = 1449;goto _again;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = cs; cs = 1455;goto _again;} + {stack[top++] = cs; cs = 1457;goto _again;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = cs; cs = 1461;goto _again;} + {stack[top++] = cs; cs = 1463;goto _again;} default: WARN(ZS_CANNOT_TEXT_DATA); {cs = 319;goto _again;} } } break; - case 314: + case 313: { switch (s->r_type) { // Next types must not have empty rdata. @@ -9351,185 +9155,185 @@ _match: case KNOT_RRTYPE_HTTPS: case KNOT_RRTYPE_DSYNC: case KNOT_RRTYPE_WALLET: - {stack[top++] = cs; cs = 561;goto _again;} + {stack[top++] = cs; cs = 732;goto _again;} // Next types can have empty rdata. case KNOT_RRTYPE_APL: default: - {stack[top++] = cs; cs = 570;goto _again;} + {stack[top++] = cs; cs = 741;goto _again;} } } break; - case 315: + case 314: { if (pe - p == 1) { *wrap = WRAP_DETECTED; } } break; - case 316: + case 315: { if (*wrap == WRAP_NONE) { p--; } } break; - case 317: + case 316: { WARN(ZS_UNSUPPORTED_TYPE); p--; {cs = 319;goto _again;} } break; - case 318: + case 317: { s->r_type = KNOT_RRTYPE_A; } break; - case 319: + case 318: { s->r_type = KNOT_RRTYPE_NS; } break; - case 320: + case 319: { s->r_type = KNOT_RRTYPE_CNAME; } break; - case 321: + case 320: { s->r_type = KNOT_RRTYPE_SOA; } break; - case 322: + case 321: { s->r_type = KNOT_RRTYPE_PTR; } break; - case 323: + case 322: { s->r_type = KNOT_RRTYPE_HINFO; } break; - case 324: + case 323: { s->r_type = KNOT_RRTYPE_MINFO; } break; - case 325: + case 324: { s->r_type = KNOT_RRTYPE_MX; } break; - case 326: + case 325: { s->r_type = KNOT_RRTYPE_TXT; } break; - case 327: + case 326: { s->r_type = KNOT_RRTYPE_RP; } break; - case 328: + case 327: { s->r_type = KNOT_RRTYPE_AFSDB; } break; - case 329: + case 328: { s->r_type = KNOT_RRTYPE_RT; } break; - case 330: + case 329: { s->r_type = KNOT_RRTYPE_KEY; } break; - case 331: + case 330: { s->r_type = KNOT_RRTYPE_AAAA; } break; - case 332: + case 331: { s->r_type = KNOT_RRTYPE_LOC; } break; - case 333: + case 332: { s->r_type = KNOT_RRTYPE_SRV; } break; - case 334: + case 333: { s->r_type = KNOT_RRTYPE_NAPTR; } break; - case 335: + case 334: { s->r_type = KNOT_RRTYPE_KX; } break; - case 336: + case 335: { s->r_type = KNOT_RRTYPE_CERT; } break; - case 337: + case 336: { s->r_type = KNOT_RRTYPE_DNAME; } break; - case 338: + case 337: { s->r_type = KNOT_RRTYPE_APL; } break; - case 339: + case 338: { s->r_type = KNOT_RRTYPE_DS; } break; - case 340: + case 339: { s->r_type = KNOT_RRTYPE_SSHFP; } break; - case 341: + case 340: { s->r_type = KNOT_RRTYPE_IPSECKEY; } break; - case 342: + case 341: { s->r_type = KNOT_RRTYPE_RRSIG; } break; - case 343: + case 342: { s->r_type = KNOT_RRTYPE_NSEC; } break; - case 344: + case 343: { s->r_type = KNOT_RRTYPE_DNSKEY; } break; - case 345: + case 344: { s->r_type = KNOT_RRTYPE_DHCID; } break; - case 346: + case 345: { s->r_type = KNOT_RRTYPE_NSEC3; } break; - case 347: + case 346: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } break; - case 348: + case 347: { s->r_type = KNOT_RRTYPE_TLSA; } break; - case 349: + case 348: { s->r_type = KNOT_RRTYPE_SMIMEA; } break; - case 350: + case 349: { s->r_type = KNOT_RRTYPE_CDS; } break; - case 351: + case 350: { s->r_type = KNOT_RRTYPE_CDNSKEY; } break; - case 352: + case 351: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } break; - case 353: + case 352: { s->r_type = KNOT_RRTYPE_CSYNC; } break; - case 354: + case 353: { s->r_type = KNOT_RRTYPE_ZONEMD; } break; - case 355: + case 354: { s->r_type = KNOT_RRTYPE_SPF; } break; - case 356: + case 355: { s->r_type = KNOT_RRTYPE_NID; } break; - case 357: + case 356: { s->r_type = KNOT_RRTYPE_L32; } break; - case 358: + case 357: { s->r_type = KNOT_RRTYPE_L64; } break; - case 359: + case 358: { s->r_type = KNOT_RRTYPE_LP; } break; - case 360: + case 359: { s->r_type = KNOT_RRTYPE_EUI48; } break; - case 361: + case 360: { s->r_type = KNOT_RRTYPE_EUI64; } break; - case 362: + case 361: { s->r_type = KNOT_RRTYPE_URI; } break; - case 363: + case 362: { s->r_type = KNOT_RRTYPE_CAA; } break; - case 364: + case 363: { s->r_type = KNOT_RRTYPE_SVCB; } break; - case 365: + case 364: { s->r_type = KNOT_RRTYPE_HTTPS; } break; - case 366: + case 365: { s->r_type = KNOT_RRTYPE_DSYNC; } break; - case 367: + case 366: { s->r_type = KNOT_RRTYPE_WALLET; } break; - case 368: + case 367: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); @@ -9773,7 +9577,7 @@ goto _again;} goto _again;} } break; - case 264: + case 263: { WARN(ZS_BAD_BITMAP); p--; {cs = 319; if ( p == pe ) @@ -9781,7 +9585,7 @@ goto _again;} goto _again;} } break; - case 281: + case 280: { WARN(ZS_BAD_LOC_DATA); p--; {cs = 319; if ( p == pe ) @@ -9789,7 +9593,7 @@ goto _again;} goto _again;} } break; - case 282: + case 281: { WARN(ZS_BAD_HEX_RDATA); p--; {cs = 319; if ( p == pe ) @@ -9797,7 +9601,7 @@ goto _again;} goto _again;} } break; - case 287: + case 286: { WARN(ZS_BAD_CHAR_DASH); p--; {cs = 319; if ( p == pe ) @@ -9805,7 +9609,7 @@ goto _again;} goto _again;} } break; - case 291: + case 290: { WARN(ZS_BAD_CHAR_COLON); p--; {cs = 319; if ( p == pe ) @@ -9813,7 +9617,7 @@ goto _again;} goto _again;} } break; - case 294: + case 293: { WARN(ZS_BAD_SVCB_PARAM); p--; {cs = 319; if ( p == pe ) @@ -9821,7 +9625,7 @@ goto _again;} goto _again;} } break; - case 295: + case 294: { WARN(ZS_BAD_SVCB_MANDATORY); p--; {cs = 319; if ( p == pe ) @@ -9829,7 +9633,7 @@ goto _again;} goto _again;} } break; - case 305: + case 304: { WARN(ZS_BAD_ALGORITHM); p--; {cs = 319; if ( p == pe ) @@ -9837,7 +9641,7 @@ goto _again;} goto _again;} } break; - case 306: + case 305: { WARN(ZS_BAD_CERT_TYPE); p--; {cs = 319; if ( p == pe ) @@ -9845,7 +9649,7 @@ goto _again;} goto _again;} } break; - case 307: + case 306: { WARN(ZS_BAD_DSYNC_SCHEME); p--; {cs = 319; if ( p == pe ) @@ -9853,7 +9657,7 @@ goto _again;} goto _again;} } break; - case 312: + case 311: { WARN(ZS_BAD_RDATA); p--; {cs = 319; if ( p == pe ) @@ -9861,7 +9665,7 @@ goto _again;} goto _again;} } break; - case 317: + case 316: { WARN(ZS_UNSUPPORTED_TYPE); p--; {cs = 319; if ( p == pe ) diff --git a/src/libzscanner/scanner_body.rl b/src/libzscanner/scanner_body.rl index 23e36c0b28..63cdc522a0 100644 --- a/src/libzscanner/scanner_body.rl +++ b/src/libzscanner/scanner_body.rl @@ -1370,7 +1370,7 @@ fhold; fgoto err_line; } - type_num = + type_num_ := ( "A"i %{ type_num(KNOT_RRTYPE_A, &rdata_tail); } | "NS"i %{ type_num(KNOT_RRTYPE_NS, &rdata_tail); } | "CNAME"i %{ type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } @@ -1422,14 +1422,8 @@ | "DSYNC"i %{ type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } | "WALLET"i %{ type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } | "TYPE"i . num16 # TYPE0-TYPE65535. - ) $!_type_error; - - # Reduced list of RR types in order to reduce the total number of states. - type_num_dsync = - ( "CDS"i %{ type_num(KNOT_RRTYPE_CDS, &rdata_tail); } - | "CSYNC"i %{ type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } - | "TYPE"i . num16 # TYPE0-TYPE65535. - ) $!_type_error; + ) $!_type_error %_ret . all_wchar; + type_num = alnum ${ fhold; fcall type_num_; }; # END # BEGIN - Bitmap processing @@ -2083,7 +2077,7 @@ $!_r_data_error %_ret . all_wchar; r_data_dsync := - (type_num_dsync . sep . dsync_scheme . sep . num16 . sep . r_dname ) + (type_num . sep . dsync_scheme . sep . num16 . sep . r_dname ) $!_r_data_error %_ret . all_wchar; action _text_r_data { diff --git a/tests/libzscanner/data/36_RRSIG.out b/tests/libzscanner/data/36_RRSIG.out index dff14717ad..c1100e4e73 100644 --- a/tests/libzscanner/data/36_RRSIG.out +++ b/tests/libzscanner/data/36_RRSIG.out @@ -88,9 +88,9 @@ RRTTL=00000001 RTYPE=002E RDATA=0001000000000000000000000000000000000000 ------ -WARNG=ZS_UNSUPPORTED_TYPE +WARNG=ZS_BAD_RDATA ------ -WARNG=ZS_UNSUPPORTED_TYPE +WARNG=ZS_BAD_RDATA ------ WARNG=ZS_BAD_HEX_CHAR ------ diff --git a/tests/libzscanner/data/60_DSYNC.out b/tests/libzscanner/data/60_DSYNC.out index bada1faf6e..188353750f 100644 --- a/tests/libzscanner/data/60_DSYNC.out +++ b/tests/libzscanner/data/60_DSYNC.out @@ -16,11 +16,11 @@ RRTTL=00000001 RTYPE=0042 RDATA=003B0000000A0001020304050607080900 ------ -WARNG=ZS_UNSUPPORTED_TYPE +WARNG=ZS_BAD_RDATA ------ WARNG=ZS_BAD_NUMBER ------ -WARNG=ZS_UNSUPPORTED_TYPE +WARNG=ZS_BAD_RDATA ------ WARNG=ZS_UNSUPPORTED_TYPE ------ From f760173bb5b099f56681b104a42b1319c52b752c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 3 Nov 2025 15:14:32 +0100 Subject: [PATCH 225/675] doc: extend listen comment in the configuration example --- doc/configuration.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/configuration.rst b/doc/configuration.rst index 81c7ed168b..0cdc4ddbac 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -31,7 +31,8 @@ Now let's walk through this configuration step by step: - The :ref:`server_listen` statement in the :ref:`server section` defines where the server will listen for incoming connections. We have defined the server to listen on all available IPv4 and IPv6 addresses, - all on port 53. + all on port 53. Note that if a resolver is already running on the host, it must + be turned off or reconfigured so it does not compete for the port. - The :ref:`zone section` defines the zones that the server will serve. In this case, we defined one zone named *example.com* which is stored in the zone file :file:`/var/lib/knot/zones/example.com.zone`. From 5a7d434aaf502e48b4b8c7e35bb7617d836d0203 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 3 Nov 2025 13:47:57 +0100 Subject: [PATCH 226/675] events: add missing checks for empty zone + unification --- src/knot/events/handlers/dnskey_sync.c | 2 +- src/knot/events/handlers/dnssec.c | 4 ++++ src/knot/events/handlers/ds_check.c | 6 ++++++ src/knot/events/handlers/ds_push.c | 2 +- src/knot/events/handlers/flush.c | 3 +-- src/knot/events/handlers/load.c | 2 ++ src/knot/events/handlers/notify.c | 6 +++--- src/knot/events/handlers/validate.c | 6 ++++++ 8 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/knot/events/handlers/dnskey_sync.c b/src/knot/events/handlers/dnskey_sync.c index 6ee381f383..ec162a5389 100644 --- a/src/knot/events/handlers/dnskey_sync.c +++ b/src/knot/events/handlers/dnskey_sync.c @@ -360,7 +360,7 @@ int event_dnskey_sync(conf_t *conf, zone_t *zone) assert(zone); if (zone_contents_is_empty(zone->contents)) { - return KNOT_EOK; + return KNOT_EEMPTYZONE; } int timeout = conf->cache.srv_tcp_remote_io_timeout; diff --git a/src/knot/events/handlers/dnssec.c b/src/knot/events/handlers/dnssec.c index 585e7dc47b..e451ce20a5 100644 --- a/src/knot/events/handlers/dnssec.c +++ b/src/knot/events/handlers/dnssec.c @@ -58,6 +58,10 @@ int event_dnssec(conf_t *conf, zone_t *zone) { assert(zone); + if (zone_contents_is_empty(zone->contents)) { + return KNOT_EEMPTYZONE; + } + zone_sign_reschedule_t resch = { 0 }; zone_sign_roll_flags_t r_flags = KEY_ROLL_ALLOW_ALL; int sign_flags = 0; diff --git a/src/knot/events/handlers/ds_check.c b/src/knot/events/handlers/ds_check.c index 4a7734516c..2a9a5a50f0 100644 --- a/src/knot/events/handlers/ds_check.c +++ b/src/knot/events/handlers/ds_check.c @@ -8,6 +8,12 @@ int event_ds_check(conf_t *conf, zone_t *zone) { + assert(zone); + + if (zone_contents_is_empty(zone->contents)) { + return KNOT_EEMPTYZONE; + } + kdnssec_ctx_t ctx = { 0 }; int ret = kdnssec_ctx_init(conf, &ctx, zone->name, zone_kaspdb(zone), NULL); diff --git a/src/knot/events/handlers/ds_push.c b/src/knot/events/handlers/ds_push.c index 97a488f898..1c53b993fb 100644 --- a/src/knot/events/handlers/ds_push.c +++ b/src/knot/events/handlers/ds_push.c @@ -217,7 +217,7 @@ int event_ds_push(conf_t *conf, zone_t *zone) assert(zone); if (zone_contents_is_empty(zone->contents)) { - return KNOT_EOK; + return KNOT_EEMPTYZONE; } int timeout = conf->cache.srv_tcp_remote_io_timeout; diff --git a/src/knot/events/handlers/flush.c b/src/knot/events/handlers/flush.c index d26bc8e30f..024ac7e336 100644 --- a/src/knot/events/handlers/flush.c +++ b/src/knot/events/handlers/flush.c @@ -11,11 +11,10 @@ int event_flush(conf_t *conf, zone_t *zone) { - assert(conf); assert(zone); if (zone_contents_is_empty(zone->contents)) { - return KNOT_EOK; + return KNOT_EEMPTYZONE; } return zone_flush_journal(conf, zone, true); diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index be476a1de9..0ca539f720 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -52,6 +52,8 @@ static int upd_add_rem(const knot_rrset_t *rr, bool add, void *ctx) int event_load(conf_t *conf, zone_t *zone) { + assert(zone); + zone_update_t up = { 0 }; zone_contents_t *journal_conts = NULL, *zf_conts = NULL; bool old_contents_exist = (zone->contents != NULL), zone_in_journal_exists = false; diff --git a/src/knot/events/handlers/notify.c b/src/knot/events/handlers/notify.c index d4e5ad805d..1b9a7a7fe2 100644 --- a/src/knot/events/handlers/notify.c +++ b/src/knot/events/handlers/notify.c @@ -133,12 +133,12 @@ int event_notify(conf_t *conf, zone_t *zone) { assert(zone); - bool failed = false; - if (zone_contents_is_empty(zone->contents)) { - return KNOT_EOK; + return KNOT_EEMPTYZONE; } + bool failed = false; + // NOTIFY content int timeout = conf->cache.srv_tcp_remote_io_timeout; rcu_read_lock(); diff --git a/src/knot/events/handlers/validate.c b/src/knot/events/handlers/validate.c index 52f1d2a297..617b4bb73c 100644 --- a/src/knot/events/handlers/validate.c +++ b/src/knot/events/handlers/validate.c @@ -10,6 +10,12 @@ int event_validate(conf_t *conf, zone_t *zone) { + assert(zone); + + if (zone_contents_is_empty(zone->contents)) { + return KNOT_EEMPTYZONE; + } + zone_update_t fake_upd = { .zone = zone, .new_cont = zone->contents, From 356e9c4987bdb24e1758df233a4ae6c367748f9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Mon, 22 Sep 2025 14:00:24 +0200 Subject: [PATCH 227/675] redis: command knot.zone.info --- doc/operation.rst | 8 ++ src/redis/internal.h | 175 +++++++++++++++++++++++++++++++++++++++++-- src/redis/knot.c | 32 ++++++++ tests-redis/test.py | 12 +++ 4 files changed, 222 insertions(+), 5 deletions(-) diff --git a/doc/operation.rst b/doc/operation.rst index 8ee919d743..47dd1c4e83 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -490,6 +490,8 @@ The ``KNOT.ZONE.*`` commands are used for manipulating entire zones: - ``KNOT.ZONE.PURGE `` — Purges all data for the specified zone. - ``KNOT.ZONE.LIST [--instances]`` — Lists stored zones, optionally including available instances. +- ``KNOT.ZONE.INFO [zone] [instance]`` — Print info about zones and its updates, + optionally filtered by zone and instance number. Example of a zone initialization:: @@ -581,6 +583,12 @@ Example of a zone update:: 2) 1) (empty array) 2) 1) "test.example.com. 600 TXT \"Knot DNS\"" + $ redis-cli KNOT.ZONE.INFO + 1) 1) "example.com." + 2) 1) 1) "instance: 1" + 2) "serial: 2" + 3) 1) "update: 1 -> 2" + .. WARNING:: Do not modify the zone data using native commands such as SET or ZADD, as this may cause data corruption! diff --git a/src/redis/internal.h b/src/redis/internal.h index 215bbdfe13..8d94ef1c2d 100644 --- a/src/redis/internal.h +++ b/src/redis/internal.h @@ -1296,14 +1296,15 @@ typedef struct { RedisModuleCtx *ctx; size_t count; int ret; - bool txt; - bool instances; -} scan_ctx; + uint8_t instance; // Used by zone_info + bool txt; // Used by zone_list + bool instances; // Used by zone_list +} scan_ctx_t; static void zone_list_cb(RedisModuleKey *key, RedisModuleString *zone_name, RedisModuleString *mask, void *privdata) { - scan_ctx *sctx = privdata; + scan_ctx_t *sctx = privdata; if (sctx->txt) { size_t len; const char *dname = RedisModule_StringPtrLen(zone_name, &len); @@ -1359,11 +1360,12 @@ static void zone_list(RedisModuleCtx *ctx, bool instances, bool txt) RedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_ARRAY_LEN); - scan_ctx sctx = { + scan_ctx_t sctx = { .ctx = ctx, .txt = txt, .instances = instances }; + RedisModuleScanCursor *cursor = RedisModule_ScanCursorCreate(); while (RedisModule_ScanKey(zones_index, cursor, zone_list_cb, &sctx) && sctx.ret == KNOT_EOK); RedisModule_ReplySetArrayLength(ctx, sctx.count); @@ -1371,6 +1373,169 @@ static void zone_list(RedisModuleCtx *ctx, bool instances, bool txt) RedisModule_ScanCursorDestroy(cursor); } +exception_t zone_info_serial(RedisModuleCtx *ctx, size_t *counter, const arg_dname_t *origin, + const rdb_txn_t *txn, const uint32_t serial_end, const uint32_t serial) +{ + index_k upd_index_key = get_commited_upd_index(ctx, origin, txn, serial, REDISMODULE_READ); + if (upd_index_key == NULL) { + return_ok; + } + + uint32_t serial_next = 0; + exception_t e = index_soa_serial(ctx, upd_index_key, true, &serial_next); + if (e.ret != KNOT_EOK) { + RedisModule_CloseKey(upd_index_key); + raise(e); + } + + if (serial_next != serial_end) { + e = zone_info_serial(ctx, counter, origin, txn, serial_end, serial_next); + if (e.ret != KNOT_EOK) { + RedisModule_CloseKey(upd_index_key); + raise(e); + } + } + + char buf[64]; + (void)snprintf(buf, sizeof(buf), "update: %u -> %u", serial_next, serial); + RedisModule_ReplyWithCString(ctx, buf); + *counter += 1; + + RedisModule_CloseKey(upd_index_key); + + return_ok; +} + +static void zone_info_serials(RedisModuleCtx *ctx, arg_dname_t *origin, rdb_txn_t *txn) +{ + if (set_active_transaction(ctx, origin, txn) != KNOT_EOK) { + RedisModule_ReplyWithError(ctx, RDB_EZONE); + return; + } + + RedisModuleString *soa_rrset_keyname = rrset_keyname_construct(ctx, origin, txn, origin, KNOT_RRTYPE_SOA); + rrset_k soa_rrset_key = RedisModule_OpenKey(ctx, soa_rrset_keyname, REDISMODULE_READ); + RedisModule_FreeString(ctx, soa_rrset_keyname); + rrset_v *rrset = RedisModule_ModuleTypeGetValue(soa_rrset_key); + if (rrset == NULL) { + RedisModule_CloseKey(soa_rrset_key); + RedisModule_ReplyWithError(ctx, RDB_ENOSOA); + return; + } + uint32_t serial_it = knot_soa_serial(rrset->rrs.rdata); + RedisModule_CloseKey(soa_rrset_key); + + RedisModule_ReplyWithArray(ctx, 3); + char buf[64]; + (void)snprintf(buf, sizeof(buf), "instance: %u", txn->instance); + RedisModule_ReplyWithCString(ctx, buf); + (void)snprintf(buf, sizeof(buf), "serial: %u", serial_it); + RedisModule_ReplyWithCString(ctx, buf); + + size_t upd_count = 0; + RedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_ARRAY_LEN); + exception_t e = zone_info_serial(ctx, &upd_count, origin, txn, serial_it, serial_it); + if (e.ret != KNOT_EOK && e.what != NULL) { + RedisModule_ReplyWithError(ctx, e.what); + upd_count++; + } + RedisModule_ReplySetArrayLength(ctx, upd_count); +} + +static void zone_info_cb(RedisModuleKey *key, RedisModuleString *zone_name, + RedisModuleString *mask, void *privdata) +{ + scan_ctx_t *sctx = privdata; + + char buf[KNOT_DNAME_TXT_MAXLEN]; + + size_t len; + const char *dname = RedisModule_StringPtrLen(zone_name, &len); + arg_dname_t origin = { .data = (uint8_t *)dname, .len = len }; + RedisModule_Assert(knot_dname_to_str(buf, (knot_dname_t *)dname, sizeof(buf)) != NULL); + + const uint8_t *mask_p = (const uint8_t *)RedisModule_StringPtrLen(mask, &len); + RedisModule_Assert(len == sizeof(uint8_t)); + + RedisModule_ReplyWithArray(sctx->ctx, 2); + RedisModule_ReplyWithCString(sctx->ctx, buf); + + RedisModule_ReplyWithArray(sctx->ctx, REDISMODULE_POSTPONED_ARRAY_LEN); + size_t inst_count = 0; + if (sctx->instance != 0) { + if ((*mask_p) & (1 << (sctx->instance - 1))) { + rdb_txn_t txn = { + .instance = sctx->instance, + .id = TXN_ID_ACTIVE + }; + zone_info_serials(sctx->ctx, &origin, &txn); + ++inst_count; + } + } else { + for (unsigned inst = 1; inst <= INSTANCE_MAX; ++inst) { + if ((*mask_p) & (1 << (inst - 1))) { + rdb_txn_t txn = { + .instance = inst, + .id = TXN_ID_ACTIVE + }; + zone_info_serials(sctx->ctx, &origin, &txn); + ++inst_count; + } + } + } + RedisModule_ReplySetArrayLength(sctx->ctx, inst_count); + + ++(sctx->count); +} + +static void zone_info(RedisModuleCtx *ctx, arg_dname_t *origin, rdb_txn_t *txn) +{ + scan_ctx_t sctx = { + .ctx = ctx, + .instance = (txn != NULL) ? txn->instance : 0 + }; + + RedisModuleKey *zones_index = get_zones_index(ctx, REDISMODULE_READ); + if (zones_index == NULL) { + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return; + } + + if (origin != NULL) { + RedisModuleString *origin_str = RedisModule_CreateString(ctx, (const char *)origin->data, origin->len); + if (origin_str == NULL) { + RedisModule_CloseKey(zones_index); + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return; + } + + RedisModuleString *value; + if (RedisModule_HashGet(zones_index, REDISMODULE_HASH_NONE, origin_str, &value, NULL) != REDISMODULE_OK) { + RedisModule_FreeString(ctx, origin_str); + RedisModule_CloseKey(zones_index); + RedisModule_ReplyWithError(ctx, RDB_ECORRUPTED); + return; + } + zone_info_cb(zones_index, origin_str, value, &sctx); + RedisModule_FreeString(ctx, value); + RedisModule_FreeString(ctx, origin_str); + } else { + RedisModuleScanCursor *cursor = RedisModule_ScanCursorCreate(); + if (cursor == NULL) { + RedisModule_CloseKey(zones_index); + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return; + } + + RedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_ARRAY_LEN); + while (RedisModule_ScanKey(zones_index, cursor, zone_info_cb, &sctx) && sctx.ret == KNOT_EOK); + RedisModule_ReplySetArrayLength(ctx, sctx.count); + + RedisModule_ScanCursorDestroy(cursor); + } + RedisModule_CloseKey(zones_index); +} + static exception_t zone_meta_active_exchange(RedisModuleCtx *ctx, zone_meta_k key, const arg_dname_t *origin, rdb_txn_t *txn) { diff --git a/src/redis/knot.c b/src/redis/knot.c index 5074b9ab22..f6235bbf98 100644 --- a/src/redis/knot.c +++ b/src/redis/knot.c @@ -70,6 +70,12 @@ static RedisModuleCommandArg zone_list_txt_info_args[] = { { 0 } }; +static RedisModuleCommandArg zone_info_txt_info_args[] = { + {"zone", REDISMODULE_ARG_TYPE_STRING, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_OPTIONAL}, + {"instance", REDISMODULE_ARG_TYPE_INTEGER, -1, NULL, NULL, NULL, REDISMODULE_CMD_ARG_OPTIONAL}, + { 0 } +}; + static const RedisModuleCommandInfo zone_begin_txt_info = { .version = REDISMODULE_COMMAND_INFO_VERSION, .summary = "Create a zone full transaction", @@ -133,6 +139,15 @@ static const RedisModuleCommandInfo zone_list_txt_info = { .args = zone_list_txt_info_args, }; +static const RedisModuleCommandInfo zone_info_txt_info = { + .version = REDISMODULE_COMMAND_INFO_VERSION, + .summary = "List zones stored in the database showing serials and updates", + .complexity = "O(z), where z is the number of zones", + .since = "7.0.0", + .arity = -1, + .args = zone_info_txt_info_args, +}; + static const RedisModuleCommandInfo upd_begin_txt_info = { .version = REDISMODULE_COMMAND_INFO_VERSION, .summary = "Create an zone update transaction", @@ -452,6 +467,22 @@ static int zone_list_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc return REDISMODULE_OK; } +static int zone_info_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + arg_dname_t origin; + if (argc >= 2) { + ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); + } + + rdb_txn_t txn; + if (argc >= 3) { + ARG_INST_TXT(argv[2], txn); + } + + zone_info(ctx, (argc >= 2) ? &origin : NULL, (argc >= 3) ? &txn : NULL); + return REDISMODULE_OK; +} + static int upd_begin_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { arg_dname_t origin; @@ -848,6 +879,7 @@ int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) register_command_txt("KNOT.ZONE.LOAD", zone_load_txt, "readonly") || register_command_txt("KNOT.ZONE.PURGE", zone_purge_txt, "write") || register_command_txt("KNOT.ZONE.LIST", zone_list_txt, "readonly") || + register_command_txt("KNOT.ZONE.INFO", zone_info_txt, "readonly") || register_command_txt("KNOT.UPD.BEGIN", upd_begin_txt, "write fast") || register_command_txt("KNOT.UPD.ADD", upd_add_txt, "write fast") || register_command_txt("KNOT.UPD.REMOVE", upd_remove_txt, "write fast") || diff --git a/tests-redis/test.py b/tests-redis/test.py index 8f4542e065..8a6cac7159 100644 --- a/tests-redis/test.py +++ b/tests-redis/test.py @@ -283,6 +283,18 @@ def test_zone_list(): resp = env.cmd('KNOT.ZONE.LIST', txn_get_instance(txn)) env.assertEqual(len(resp), 2, message="Failed to purge zone") + # zone info + INFO = [ + [b'example.com.', [[b'instance: 1', b'serial: 1', []]]], + [b'example.net.', [[b'instance: 1', b'serial: 1', []]]] + ] + + resp = env.cmd('KNOT.ZONE.INFO') + env.assertEqual(resp, INFO, message="Failed to info zones") + + resp = env.cmd('KNOT.ZONE.INFO', 'example.com', '1') + env.assertEqual(resp, INFO[0], message="Failed to info zones") + def test_upd_begin(): env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) From 88860fe2c966f0ff9344257f979d02eba5c7bfee Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 5 Nov 2025 14:38:14 +0100 Subject: [PATCH 228/675] redis: refactor knot.zone.list --- src/redis/internal.h | 63 ++++++++++++++++++++------------------------ tests-redis/test.py | 26 +++++++++++------- 2 files changed, 46 insertions(+), 43 deletions(-) diff --git a/src/redis/internal.h b/src/redis/internal.h index 8d94ef1c2d..50e0999b90 100644 --- a/src/redis/internal.h +++ b/src/redis/internal.h @@ -1305,35 +1305,24 @@ static void zone_list_cb(RedisModuleKey *key, RedisModuleString *zone_name, RedisModuleString *mask, void *privdata) { scan_ctx_t *sctx = privdata; + if (sctx->txt) { + char buf[KNOT_DNAME_TXT_MAXLEN + INSTANCE_MAX * 3]; + size_t len; const char *dname = RedisModule_StringPtrLen(zone_name, &len); - char buf[KNOT_DNAME_TXT_MAXLEN + TXN_MAX * 3]; - if (knot_dname_to_str(buf, (knot_dname_t *)dname, sizeof(buf)) == NULL) { - sctx->ret = KNOT_EMALF; - RedisModule_ReplyWithError(sctx->ctx, RDB_ECORRUPTED); - ++(sctx->count); - return; - } - char *buf_ptr = buf + knot_dname_size((knot_dname_t *)dname) - 1; - size_t mask_len = 0; - const uint8_t *mask_p = (const uint8_t *)RedisModule_StringPtrLen(mask, &mask_len); - if (mask_len != sizeof(uint8_t)) { - sctx->ret = KNOT_EMALF; - RedisModule_ReplyWithError(sctx->ctx, RDB_ECORRUPTED); - ++(sctx->count); - return; - } + RedisModule_Assert(knot_dname_to_str(buf, (knot_dname_t *)dname, sizeof(buf)) != NULL); + if (sctx->instances) { - int count = 0; - for (int it = 0; it < TXN_MAX; ++it) { - const char separator = (count) ? ',' : ':'; - if ((*mask_p) & (1 << it)) { - *(buf_ptr++) = separator; - *(buf_ptr++) = ' '; - *(buf_ptr++) = '0' + it + 1; - *buf_ptr = '\0'; - count++; + const uint8_t *mask_p = (const uint8_t *)RedisModule_StringPtrLen(mask, &len); + RedisModule_Assert(len == sizeof(uint8_t)); + + bool first = true; + for (unsigned inst = 1; inst <= INSTANCE_MAX; ++inst) { + if ((*mask_p) & (1 << (inst - 1))) { + char item[] = { first ? ':' : ',', ' ', '0' + inst, '\0' }; + strlcat(buf, item, sizeof(buf)); + first = false; } } } @@ -1347,30 +1336,36 @@ static void zone_list_cb(RedisModuleKey *key, RedisModuleString *zone_name, RedisModule_ReplyWithString(sctx->ctx, zone_name); } } + ++(sctx->count); } static void zone_list(RedisModuleCtx *ctx, bool instances, bool txt) { - RedisModuleKey *zones_index = get_zones_index(ctx, REDISMODULE_READ); - if (zones_index == NULL) { - RedisModule_ReplyWithEmptyArray(ctx); - return; - } - - RedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_ARRAY_LEN); - scan_ctx_t sctx = { .ctx = ctx, .txt = txt, .instances = instances }; + RedisModuleKey *zones_index = get_zones_index(ctx, REDISMODULE_READ); + if (zones_index == NULL) { + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return; + } RedisModuleScanCursor *cursor = RedisModule_ScanCursorCreate(); + if (cursor == NULL) { + RedisModule_CloseKey(zones_index); + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return; + } + + RedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_ARRAY_LEN); while (RedisModule_ScanKey(zones_index, cursor, zone_list_cb, &sctx) && sctx.ret == KNOT_EOK); RedisModule_ReplySetArrayLength(ctx, sctx.count); - RedisModule_CloseKey(zones_index); + RedisModule_ScanCursorDestroy(cursor); + RedisModule_CloseKey(zones_index); } exception_t zone_info_serial(RedisModuleCtx *ctx, size_t *counter, const arg_dname_t *origin, diff --git a/tests-redis/test.py b/tests-redis/test.py index 8a6cac7159..758b6f0ce2 100644 --- a/tests-redis/test.py +++ b/tests-redis/test.py @@ -259,29 +259,37 @@ def test_zone_purge(): def test_zone_list(): env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) - # First zone + # first zone txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) - resp = env.cmd('KNOT.ZONE.LIST', txn_get_instance(txn)) - env.assertEqual(len(resp), 1, message="Failed to purge zone") + resp = env.cmd('KNOT.ZONE.LIST') + env.assertEqual(len(resp), 1, message="Failed to list zones") - # Rewrite zone + # rewrite zone txn = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) env.cmd('KNOT.ZONE.STORE', 'example.com', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn) - resp = env.cmd('KNOT.ZONE.LIST', txn_get_instance(txn)) - env.assertEqual(len(resp), 1, message="Failed to purge zone") + resp = env.cmd('KNOT.ZONE.LIST') + env.assertEqual(len(resp), 1, message="Failed to list zones") - # Second zone + # second zone txn = env.cmd('KNOT.ZONE.BEGIN', 'example.net', 1) env.cmd('KNOT.ZONE.STORE', 'example.net', txn, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") env.cmd('KNOT.ZONE.COMMIT', 'example.net', txn) - resp = env.cmd('KNOT.ZONE.LIST', txn_get_instance(txn)) - env.assertEqual(len(resp), 2, message="Failed to purge zone") + resp = env.cmd('KNOT.ZONE.LIST') + env.assertEqual(len(resp), 2, message="Failed to list zones") + + LIST = [ + b'example.com.: 1', + b'example.net.: 1' + ] + + resp = env.cmd('KNOT.ZONE.LIST', '--instances') + env.assertEqual(resp, LIST, message="Failed to list zones with instances") # zone info INFO = [ From 605ddcc9dc86dd7650e395475e78b19aaffe7a47 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 6 Nov 2025 14:09:35 +0100 Subject: [PATCH 229/675] zone/purge: refactoring: perform as zone event instead by main thread... ...but only in case of knotc zone-purge; catalog-induced purges are still performed by main thread while zone events all frozen for all zones --- Knot.files | 1 + src/knot/Makefile.inc | 1 + src/knot/ctl/commands.c | 20 +++---------------- src/knot/events/events.c | 2 ++ src/knot/events/events.h | 1 + src/knot/events/handlers.h | 2 ++ src/knot/events/handlers/expire.c | 32 +------------------------------ src/knot/events/handlers/purge.c | 17 ++++++++++++++++ src/knot/events/replan.c | 1 + src/knot/zone/zone.c | 25 ++++++++++++++++++++++++ src/knot/zone/zone.h | 30 +++++++++++++++++++++-------- 11 files changed, 76 insertions(+), 56 deletions(-) create mode 100644 src/knot/events/handlers/purge.c diff --git a/Knot.files b/Knot.files index 437b96ed23..4f617a7eb4 100644 --- a/Knot.files +++ b/Knot.files @@ -268,6 +268,7 @@ src/knot/events/handlers/flush.c src/knot/events/handlers/freeze_thaw.c src/knot/events/handlers/load.c src/knot/events/handlers/notify.c +src/knot/events/handlers/purge.c src/knot/events/handlers/refresh.c src/knot/events/handlers/update.c src/knot/events/handlers/validate.c diff --git a/src/knot/Makefile.inc b/src/knot/Makefile.inc index d32f7df02c..b325ea4fb0 100644 --- a/src/knot/Makefile.inc +++ b/src/knot/Makefile.inc @@ -94,6 +94,7 @@ libknotd_la_SOURCES = \ knot/events/handlers/freeze_thaw.c \ knot/events/handlers/load.c \ knot/events/handlers/notify.c \ + knot/events/handlers/purge.c \ knot/events/handlers/refresh.c \ knot/events/handlers/update.c \ knot/events/handlers/validate.c \ diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 433ead8fbe..392f0664a0 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1811,31 +1811,17 @@ static int orphans_purge(ctl_args_t *args) static int zone_purge(zone_t *zone, ctl_args_t *args) { - if (MATCH_OR_FILTER(args, CTL_FILTER_PURGE_EXPIRE)) { - // Abort possible editing transaction. - int ret = zone_txn_abort(zone, args); - if (ret != KNOT_EOK && ret != KNOT_TXN_ENOTEXISTS) { - log_zone_error(zone->name, - "failed to abort pending transaction (%s)", - knot_strerror(ret)); - return ret; - } - - // Expire the zone. - // No ret, KNOT_EOK is the only return value from event_expire(). - (void)zone_events_schedule_blocking(zone, ZONE_EVENT_EXPIRE, true); - } - const purge_flag_t params = MATCH_OR_FILTER(args, CTL_FILTER_PURGE_TIMERS) * PURGE_ZONE_TIMERS | MATCH_OR_FILTER(args, CTL_FILTER_PURGE_ZONEFILE) * PURGE_ZONE_ZONEFILE | MATCH_OR_FILTER(args, CTL_FILTER_PURGE_JOURNAL) * PURGE_ZONE_JOURNAL | MATCH_OR_FILTER(args, CTL_FILTER_PURGE_KASPDB) * PURGE_ZONE_KASPDB | MATCH_OR_FILTER(args, CTL_FILTER_PURGE_CATALOG) * PURGE_ZONE_CATALOG | + MATCH_OR_FILTER(args, CTL_FILTER_PURGE_EXPIRE) * PURGE_ZONE_EXPIRE | PURGE_ZONE_NOSYNC; // Purge even zonefiles with disabled syncing. - // Purge the requested zone data. - return selective_zone_purge(conf(), zone, params); + zone_set_flag(zone, (zone_flag_t)params); + return schedule_trigger(zone, args, ZONE_EVENT_PURGE, true); } int ctl_dump_ctr(stats_dump_params_t *params, stats_dump_ctx_t *ctx) diff --git a/src/knot/events/events.c b/src/knot/events/events.c index 860f588bf8..b401c04061 100644 --- a/src/knot/events/events.c +++ b/src/knot/events/events.c @@ -31,6 +31,7 @@ static const event_info_t EVENT_INFO[] = { { ZONE_EVENT_REFRESH, event_refresh, "refresh" }, { ZONE_EVENT_UPDATE, event_update, "update" }, { ZONE_EVENT_EXPIRE, event_expire, "expiration" }, + { ZONE_EVENT_PURGE, event_purge, "purge" }, { ZONE_EVENT_FLUSH, event_flush, "flush" }, { ZONE_EVENT_BACKUP, event_backup, "backup/restore" }, { ZONE_EVENT_NOTIFY, event_notify, "notify" }, @@ -68,6 +69,7 @@ bool ufreeze_applies(zone_event_type_t type) case ZONE_EVENT_LOAD: case ZONE_EVENT_REFRESH: case ZONE_EVENT_UPDATE: + case ZONE_EVENT_PURGE: case ZONE_EVENT_FLUSH: case ZONE_EVENT_DNSSEC: case ZONE_EVENT_DS_CHECK: diff --git a/src/knot/events/events.h b/src/knot/events/events.h index 1759acbd96..49bba840f7 100644 --- a/src/knot/events/events.h +++ b/src/knot/events/events.h @@ -23,6 +23,7 @@ typedef enum zone_event_type { ZONE_EVENT_REFRESH, ZONE_EVENT_UPDATE, ZONE_EVENT_EXPIRE, + ZONE_EVENT_PURGE, ZONE_EVENT_FLUSH, ZONE_EVENT_BACKUP, ZONE_EVENT_NOTIFY, diff --git a/src/knot/events/handlers.h b/src/knot/events/handlers.h index 7f6e979de0..7cc96c7c70 100644 --- a/src/knot/events/handlers.h +++ b/src/knot/events/handlers.h @@ -17,6 +17,8 @@ int event_refresh(conf_t *conf, zone_t *zone); int event_update(conf_t *conf, zone_t *zone); /*! \brief Empties in-memory zone contents. */ int event_expire(conf_t *conf, zone_t *zone); +/*! \brief Expires the zone and purges metadata based on zone->flags. */ +int event_purge(conf_t *conf, zone_t *zone); /*! \brief Flushes zone contents into text file. */ int event_flush(conf_t *conf, zone_t *zone); /*! \brief Backs up zone contents, metadata, keys, etc to a directory. */ diff --git a/src/knot/events/handlers/expire.c b/src/knot/events/handlers/expire.c index c49cd8f9c0..5a45a757be 100644 --- a/src/knot/events/handlers/expire.c +++ b/src/knot/events/handlers/expire.c @@ -3,41 +3,11 @@ * For more information, see */ -#include -#include - -#include "knot/common/log.h" -#include "knot/conf/conf.h" -#include "knot/events/handlers.h" -#include "knot/events/replan.h" -#include "knot/zone/contents.h" #include "knot/zone/zone.h" int event_expire(conf_t *conf, zone_t *zone) { - assert(zone); - - zone_contents_t *expired = zone_switch_contents(zone, NULL); - log_zone_info(zone->name, "zone expired"); - - synchronize_rcu(); - - pthread_mutex_lock(&zone->cu_lock); - assert(zone->control_update == NULL || !(zone->control_update->flags & UPDATE_WFEV)); - zone_control_clear(zone); - pthread_mutex_unlock(&zone->cu_lock); - - knot_sem_wait(&zone->cow_lock); - zone_contents_deep_free(expired); - knot_sem_post(&zone->cow_lock); - - zone->zonefile.exists = false; - - zone_set_last_master(zone, NULL); - - zone->timers.next_expire = time(NULL); - zone->timers.next_refresh = zone->timers.next_expire; - replan_from_timers(conf, zone); + zone_perform_expire(conf, zone); return KNOT_EOK; } diff --git a/src/knot/events/handlers/purge.c b/src/knot/events/handlers/purge.c new file mode 100644 index 0000000000..deb7e437bc --- /dev/null +++ b/src/knot/events/handlers/purge.c @@ -0,0 +1,17 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#include "knot/zone/zone.h" + +int event_purge(conf_t *conf, zone_t *zone) +{ + purge_flag_t what = (purge_flag_t)zone_get_flag(zone, (zone_flag_t)PURGE_ZONE_FLAGS, true); + + if (what & PURGE_ZONE_EXPIRE) { + zone_perform_expire(conf, zone); + } + + return selective_zone_purge(conf, zone, what); +} diff --git a/src/knot/events/replan.c b/src/knot/events/replan.c index 703811252f..e219d43833 100644 --- a/src/knot/events/replan.c +++ b/src/knot/events/replan.c @@ -49,6 +49,7 @@ static void replan_from_zone(zone_t *zone, zone_t *old_zone) const zone_event_type_t types[] = { ZONE_EVENT_REFRESH, + ZONE_EVENT_PURGE, ZONE_EVENT_FLUSH, ZONE_EVENT_BACKUP, ZONE_EVENT_NOTIFY, diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 1d2169c173..8d28ec4b7f 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -359,6 +359,31 @@ int selective_zone_purge(conf_t *conf, zone_t *zone, purge_flag_t params) return KNOT_EOK; } +void zone_perform_expire(conf_t *conf, zone_t *zone) +{ + zone_contents_t *expired = zone_switch_contents(zone, NULL); + log_zone_info(zone->name, "zone expired"); + + synchronize_rcu(); + + pthread_mutex_lock(&zone->cu_lock); + assert(zone->control_update == NULL || !(zone->control_update->flags & UPDATE_WFEV)); + zone_control_clear(zone); + pthread_mutex_unlock(&zone->cu_lock); + + knot_sem_wait(&zone->cow_lock); + zone_contents_deep_free(expired); + knot_sem_post(&zone->cow_lock); + + zone->zonefile.exists = false; + + zone_set_last_master(zone, NULL); + + zone->timers.next_expire = time(NULL); + zone->timers.next_refresh = zone->timers.next_expire; + replan_from_timers(conf, zone); +} + knot_lmdb_db_t *zone_journaldb(const zone_t *zone) { return &zone->server->journaldb; diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 0a8cf528de..52088de85e 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -40,6 +40,9 @@ typedef enum { ZONE_USER_FLUSH = 1 << 8, /*!< User-triggered flush. */ ZONE_LAST_SIGN_OK = 1 << 9, /*!< Last full-sign event finished OK. */ ZONE_PREF_MASTER_2X = 1 << 10, /*!< Preferred master has been overwritten at least once. */ + + ZONE_FLAG_MAX = 1 << 19, /*!< Maximal usable flag below purge_flag_t. */ + ZONE_FLAG_TYPESIZE = 1 << 30, /*!< Enforces the compiler to use 32-bit variable for this enum. */ } zone_flag_t; /*! @@ -50,16 +53,19 @@ knot_dynarray_declare(notifailed_rmt, notifailed_rmt_hash, DYNARRAY_VISIBILITY_N /*! * \brief Zone purging parameter flags. + * + * \warning Note they are and must be mutually exclusive with zone_flag_t so that they can be stored in zone->flags. */ typedef enum { - PURGE_ZONE_BEST = 1 << 0, /*!< Best effort -- continue on failures. */ - PURGE_ZONE_LOG = 1 << 1, /*!< Log a purged zone even if requested less. */ - PURGE_ZONE_NOSYNC = 1 << 2, /*!< Remove even zone files with disabled syncing. */ - PURGE_ZONE_TIMERS = 1 << 3, /*!< Purge the zone timers. */ - PURGE_ZONE_ZONEFILE = 1 << 4, /*!< Purge the zone file. */ - PURGE_ZONE_JOURNAL = 1 << 5, /*!< Purge the zone journal. */ - PURGE_ZONE_KASPDB = 1 << 6, /*!< Purge KASP DB. */ - PURGE_ZONE_CATALOG = 1 << 7, /*!< Purge the catalog. */ + PURGE_ZONE_BEST = 1 << 20, /*!< Best effort -- continue on failures. */ + PURGE_ZONE_LOG = 1 << 21, /*!< Log a purged zone even if requested less. */ + PURGE_ZONE_NOSYNC = 1 << 22, /*!< Remove even zone files with disabled syncing. */ + PURGE_ZONE_TIMERS = 1 << 23, /*!< Purge the zone timers. */ + PURGE_ZONE_ZONEFILE = 1 << 24, /*!< Purge the zone file. */ + PURGE_ZONE_JOURNAL = 1 << 25, /*!< Purge the zone journal. */ + PURGE_ZONE_KASPDB = 1 << 26, /*!< Purge KASP DB. */ + PURGE_ZONE_CATALOG = 1 << 27, /*!< Purge the catalog. */ + PURGE_ZONE_EXPIRE = 1 << 28, /*!< Expire the zone, free contents. */ } purge_flag_t; /*!< All data. */ @@ -69,6 +75,9 @@ typedef enum { /*!< Standard purge (respect C_ZONEFILE_SYNC param). */ #define PURGE_ZONE_ALL (PURGE_ZONE_DATA | PURGE_ZONE_BEST | PURGE_ZONE_LOG) +/*!< All purge-related flags. */ +#define PURGE_ZONE_FLAGS (PURGE_ZONE_ALL | PURGE_ZONE_NOSYNC | PURGE_ZONE_EXPIRE) + /*! * \brief Structure for holding DNS zone. */ @@ -187,6 +196,11 @@ void zone_reset(conf_t *conf, zone_t *zone); */ int selective_zone_purge(conf_t *conf, zone_t *zone, purge_flag_t params); +/*! + * \brief Expire zone, NULL and free zone->contents, clear CTL txn, expire timers, replan events. + */ +void zone_perform_expire(conf_t *conf, zone_t *zone); + /*! * \brief Clears possible control update transaction. * From fef6c6a26615b0d4ba8d6ea00c99ef88f9ac297e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ru=C5=BEi=C4=8Dka?= Date: Wed, 12 Nov 2025 13:47:40 +0100 Subject: [PATCH 230/675] distro: update to latest apkg compat level 6 Modify scripts/make-archive.sh to output YAML only to stdout as required by latest apkg compat level 6. All stdout was redirected to stderr. --- distro/config/apkg.toml | 2 +- scripts/make_dev_archive.sh | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/distro/config/apkg.toml b/distro/config/apkg.toml index 1d3cd72366..e08582906d 100644 --- a/distro/config/apkg.toml +++ b/distro/config/apkg.toml @@ -9,7 +9,7 @@ archive_url = "https://secure.nic.cz/files/knot-dns/knot-{{ version }}.tar.xz" signature_url = "https://secure.nic.cz/files/knot-dns/knot-{{ version }}.tar.xz.asc" [apkg] -compat = 3 +compat = 6 [[distro.aliases]] name = "deb-nolibxdp" diff --git a/scripts/make_dev_archive.sh b/scripts/make_dev_archive.sh index b9929df42f..e37682a52c 100755 --- a/scripts/make_dev_archive.sh +++ b/scripts/make_dev_archive.sh @@ -2,19 +2,21 @@ # Copyright (C) CZ.NIC, z.s.p.o. and contributors # SPDX-License-Identifier: GPL-2.0-or-later # For more information, see - # # Create a development tarball # +# This script is used by apkg to generate archive from current sources. +# It must only output valid YAML to stdout! set -o errexit -o nounset -o xtrace cd "$(dirname ${0})/.." # configure Knot DNS in order to create archive -autoreconf -if -./configure +autoreconf -if >&2 +./configure >&2 # create archive and parse output for archive name TARDIR=$(make dist 2>&1 | sed -n 's/tardir=\([^ ]\+\).*/\1/p') # print created archive name -ls -1 $TARDIR.tar.* +archive=$(ls -1 $TARDIR.tar.*) +echo "archive: '$archive'" From a8ebb5cab81e54fa879bd7286cd3550a2ad33fda Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 4 Nov 2025 13:58:45 +0100 Subject: [PATCH 231/675] zone/timers: refactoring: allocated separately from zone_t --- src/knot/catalog/generate.c | 4 +- src/knot/dnssec/zone-sign.c | 4 +- src/knot/events/handlers/dnssec.c | 2 +- src/knot/events/handlers/ds_check.c | 4 +- src/knot/events/handlers/ds_push.c | 4 +- src/knot/events/handlers/load.c | 6 +-- src/knot/events/handlers/notify.c | 2 +- src/knot/events/handlers/refresh.c | 32 +++++++-------- src/knot/events/replan.c | 12 +++--- src/knot/nameserver/process_query.c | 2 +- src/knot/zone/backup.c | 4 +- src/knot/zone/timers.c | 2 +- src/knot/zone/zone.c | 62 ++++++++++++++++------------- src/knot/zone/zone.h | 2 +- src/knot/zone/zonedb-load.c | 14 +++---- 15 files changed, 81 insertions(+), 75 deletions(-) diff --git a/src/knot/catalog/generate.c b/src/knot/catalog/generate.c index f12da65f5e..852fe5e623 100644 --- a/src/knot/catalog/generate.c +++ b/src/knot/catalog/generate.c @@ -66,7 +66,7 @@ void catalog_generate_rem(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new) return; } assert(catz->cat_members != NULL); // if this failed to allocate, catz wasn't added to zonedb - knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers.catalog_member); + knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers->catalog_member); if (owner == NULL) { catz->cat_members->error = KNOT_ENOENT; return; @@ -98,7 +98,7 @@ void catalog_generate_add(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new, boo log_zone_error(zone->name, "member zone belongs to non-generated catalog zone"); return; } - knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers.catalog_member); + knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers->catalog_member); if (owner == NULL) { catz->cat_members->error = KNOT_ENOENT; return; diff --git a/src/knot/dnssec/zone-sign.c b/src/knot/dnssec/zone-sign.c index c090ab1129..856c089cf6 100644 --- a/src/knot/dnssec/zone-sign.c +++ b/src/knot/dnssec/zone-sign.c @@ -886,8 +886,8 @@ int knot_zone_sign_update_dnskeys(zone_update_t *update, if (dnssec_ctx->policy->ds_push && node_rrtype_exists(ch.add->apex, KNOT_RRTYPE_CDS)) { // there is indeed a change to CDS - update->zone->timers.next_ds_push = time(NULL) + dnssec_ctx->policy->propagation_delay; - zone_events_schedule_at(update->zone, ZONE_EVENT_DS_PUSH, update->zone->timers.next_ds_push); + update->zone->timers->next_ds_push = time(NULL) + dnssec_ctx->policy->propagation_delay; + zone_events_schedule_at(update->zone, ZONE_EVENT_DS_PUSH, update->zone->timers->next_ds_push); } ret = zone_update_apply_changeset(update, &ch); diff --git a/src/knot/events/handlers/dnssec.c b/src/knot/events/handlers/dnssec.c index e451ce20a5..0150bdd3b6 100644 --- a/src/knot/events/handlers/dnssec.c +++ b/src/knot/events/handlers/dnssec.c @@ -40,7 +40,7 @@ void event_dnssec_reschedule(conf_t *conf, zone_t *zone, log_dnssec_next(zone->name, (time_t)refresh_at); if (refresh->plan_ds_check) { - zone->timers.next_ds_check = now; + zone->timers->next_ds_check = now; } unsigned jitter = dnskey_sync_jitter(conf, zone); diff --git a/src/knot/events/handlers/ds_check.c b/src/knot/events/handlers/ds_check.c index 2a9a5a50f0..f4f8cae2b3 100644 --- a/src/knot/events/handlers/ds_check.c +++ b/src/knot/events/handlers/ds_check.c @@ -24,7 +24,7 @@ int event_ds_check(conf_t *conf, zone_t *zone) ret = knot_parent_ds_query(conf, &ctx, zone->server, conf->cache.srv_tcp_remote_io_timeout); - zone->timers.next_ds_check = 0; + zone->timers->next_ds_check = 0; switch (ret) { case KNOT_NO_READY_KEY: break; @@ -34,7 +34,7 @@ int event_ds_check(conf_t *conf, zone_t *zone) default: if (ctx.policy->ksk_sbm_check_interval > 0) { time_t next_check = time(NULL) + ctx.policy->ksk_sbm_check_interval; - zone->timers.next_ds_check = next_check; + zone->timers->next_ds_check = next_check; zone_events_schedule_at(zone, ZONE_EVENT_DS_CHECK, next_check); } } diff --git a/src/knot/events/handlers/ds_push.c b/src/knot/events/handlers/ds_push.c index 1c53b993fb..deb6392050 100644 --- a/src/knot/events/handlers/ds_push.c +++ b/src/knot/events/handlers/ds_push.c @@ -239,7 +239,7 @@ int event_ds_push(conf_t *conf, zone_t *zone) conf_remote_t parent = conf_remote(conf, iter.id, i); ret = send_ds_push(conf, zone, &parent, timeout); if (ret == KNOT_EOK) { - zone->timers.next_ds_push = 0; + zone->timers->next_ds_push = 0; break; } } @@ -247,7 +247,7 @@ int event_ds_push(conf_t *conf, zone_t *zone) if (ret != KNOT_EOK) { time_t next_push = time(NULL) + DS_PUSH_RETRY; zone_events_schedule_at(zone, ZONE_EVENT_DS_PUSH, next_push); - zone->timers.next_ds_push = next_push; + zone->timers->next_ds_push = next_push; } conf_mix_iter_next(&iter); diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 0ca539f720..b19c443bd1 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -485,10 +485,10 @@ int event_load(conf_t *conf, zone_t *zone) } char expires_in[32] = ""; - if (zone->timers.next_expire > 0) { + if (zone->timers->next_expire > 0) { (void)snprintf(expires_in, sizeof(expires_in), ", expires in %u seconds", - (uint32_t)MAX(zone->timers.next_expire - time(NULL), 0)); + (uint32_t)MAX(zone->timers->next_expire - time(NULL), 0)); } log_zone_info(zone->name, "loaded, serial %s -> %u%s, %zu bytes%s", @@ -505,7 +505,7 @@ int event_load(conf_t *conf, zone_t *zone) replan_from_timers(conf, zone); - if (!zone_timers_serial_notified(&zone->timers, new_serial)) { + if (!zone_timers_serial_notified(zone->timers, new_serial)) { zone_schedule_notify(conf, zone, 0); } zone_redis_disconnect(db_ctx, true); diff --git a/src/knot/events/handlers/notify.c b/src/knot/events/handlers/notify.c index 1b9a7a7fe2..b8a54232ce 100644 --- a/src/knot/events/handlers/notify.c +++ b/src/knot/events/handlers/notify.c @@ -111,7 +111,7 @@ static int send_notify(conf_t *conf, zone_t *zone, const knot_rrset_t *soa, NOTIFY_OUT_LOG(LOG_INFO, zone->name, slave, requestor.layer.flags, "%sserial %u", log_retry, knot_soa_serial(soa->rrs.rdata)); - zone->timers.last_notified_serial = (knot_soa_serial(soa->rrs.rdata) | LAST_NOTIFIED_SERIAL_VALID); + zone->timers->last_notified_serial = (knot_soa_serial(soa->rrs.rdata) | LAST_NOTIFIED_SERIAL_VALID); } else if (knot_pkt_ext_rcode(req->resp) == 0) { NOTIFY_OUT_LOG(LOG_WARNING, zone->name, slave, requestor.layer.flags, diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 544fbe9c9f..5c0b34bfb3 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -199,7 +199,7 @@ static void consume_edns_expire(struct refresh_data *data, knot_pkt_t *pkt, bool if (expire_opt != NULL && knot_edns_opt_get_length(expire_opt) == sizeof(uint32_t)) { uint32_t edns_expire = knot_wire_read_u32(knot_edns_opt_get_data(expire_opt)); data->expire_timer = strictly_follow ? edns_expire : - MAX(edns_expire, data->zone->timers.next_expire - time(NULL)); + MAX(edns_expire, data->zone->timers->next_expire - time(NULL)); } } @@ -218,19 +218,19 @@ static void finalize_timers_base(struct refresh_data *data, bool also_expire) uint32_t soa_refresh = knot_soa_refresh(soa->rdata); limit_timer(conf, zone->name, &soa_refresh, "refresh", C_REFRESH_MIN_INTERVAL, C_REFRESH_MAX_INTERVAL); - zone->timers.next_refresh = now + soa_refresh; - zone->timers.last_refresh_ok = true; + zone->timers->next_refresh = now + soa_refresh; + zone->timers->last_refresh_ok = true; if (zone->is_catalog_flag) { // It's already zero in most cases. - zone->timers.next_expire = 0; + zone->timers->next_expire = 0; } else if (also_expire) { limit_timer(conf, zone->name, &data->expire_timer, "expire", // Limit min if not received as EDNS Expire. data->expire_timer == knot_soa_expire(soa->rdata) ? C_EXPIRE_MIN_INTERVAL : 0, C_EXPIRE_MAX_INTERVAL); - zone->timers.next_expire = now + data->expire_timer; + zone->timers->next_expire = now + data->expire_timer; } } @@ -246,8 +246,8 @@ static void finalize_timers_noexpire(struct refresh_data *data) static void fill_expires_in(char *expires_in, size_t size, const struct refresh_data *data) { - assert(!data->zone->is_catalog_flag || data->zone->timers.next_expire == 0); - if (data->zone->timers.next_expire > 0 && data->expire_timer > 0) { + assert(!data->zone->is_catalog_flag || data->zone->timers->next_expire == 0); + if (data->zone->timers->next_expire > 0 && data->expire_timer > 0) { (void)snprintf(expires_in, size, ", expires in %u seconds", data->expire_timer); } @@ -1074,24 +1074,24 @@ static bool wait4pinned_master(struct refresh_data *data) } else if (data->fallback->trying_last) { return false; // Pinned master expected but not yet set, force AXFR (e.g. dropped timers). - } else if (data->zone->timers.last_master.sin6_family == AF_UNSPEC) { + } else if (data->zone->timers->last_master.sin6_family == AF_UNSPEC) { data->xfr_type = XFR_TYPE_AXFR; return false; } time_t now = time(NULL); // Starting countdown for master transition. - if (data->zone->timers.master_pin_hit == 0) { - data->zone->timers.master_pin_hit = now; + if (data->zone->timers->master_pin_hit == 0) { + data->zone->timers->master_pin_hit = now; zone_events_schedule_at(data->zone, ZONE_EVENT_REFRESH, now + data->fallback->pin_tol); // Switch to a new master. - } else if (data->zone->timers.master_pin_hit + data->fallback->pin_tol <= now) { + } else if (data->zone->timers->master_pin_hit + data->fallback->pin_tol <= now) { data->xfr_type = XFR_TYPE_AXFR; return false; // Replan the refresh to the moment when the pin tolerance times out. } else { zone_events_schedule_at(data->zone, ZONE_EVENT_REFRESH, - data->zone->timers.master_pin_hit + data->fallback->pin_tol); + data->zone->timers->master_pin_hit + data->fallback->pin_tol); } return true; @@ -1505,19 +1505,19 @@ int event_refresh(conf_t *conf, zone_t *zone) limit_timer(conf, zone->name, &next, "retry", C_RETRY_MIN_INTERVAL, C_RETRY_MAX_INTERVAL); time_t now = time(NULL); - zone->timers.next_refresh = now + next; - zone->timers.last_refresh_ok = false; + zone->timers->next_refresh = now + next; + zone->timers->last_refresh_ok = false; char time_str[64] = { 0 }; struct tm time_gm = { 0 }; - localtime_r(&zone->timers.next_refresh, &time_gm); + localtime_r(&zone->timers->next_refresh, &time_gm); strftime(time_str, sizeof(time_str), KNOT_LOG_TIME_FORMAT, &time_gm); char expires_in[32] = ""; if (!zone->is_catalog_flag) { struct refresh_data data = { .zone = zone, - .expire_timer = zone->timers.next_expire - now, + .expire_timer = zone->timers->next_expire - now, }; fill_expires_in(expires_in, sizeof(expires_in), &data); } diff --git a/src/knot/events/replan.c b/src/knot/events/replan.c index e219d43833..203ad4db12 100644 --- a/src/knot/events/replan.c +++ b/src/knot/events/replan.c @@ -94,8 +94,8 @@ void replan_from_timers(conf_t *conf, zone_t *zone) time_t refresh = TIME_CANCEL; if (zone_is_slave(conf, zone)) { - refresh = zone->timers.next_refresh; - if (zone->contents == NULL && zone->timers.last_refresh_ok) { // zone disappeared w/o expiry + refresh = zone->timers->next_refresh; + if (zone->contents == NULL && zone->timers->last_refresh_ok) { // zone disappeared w/o expiry refresh = now; } if (refresh == 0) { // sanitize in case of concurrent purge event @@ -108,7 +108,7 @@ void replan_from_timers(conf_t *conf, zone_t *zone) time_t expire = TIME_IGNORE; if (zone_is_slave(conf, zone) && zone->contents != NULL) { expire_pre = TIME_CANCEL; - expire = zone->timers.next_expire; + expire = zone->timers->next_expire; } time_t flush = TIME_IGNORE; @@ -116,7 +116,7 @@ void replan_from_timers(conf_t *conf, zone_t *zone) conf_val_t val = conf_zone_get(conf, C_ZONEFILE_SYNC, zone->name); int64_t sync_timeout = conf_int(&val); if (sync_timeout > 0) { - flush = zone->timers.last_flush + sync_timeout; + flush = zone->timers->last_flush + sync_timeout; } } @@ -143,11 +143,11 @@ void replan_from_timers(conf_t *conf, zone_t *zone) } } - ds_check = zone->timers.next_ds_check; + ds_check = zone->timers->next_ds_check; if (ds_check == 0) { ds_check = TIME_IGNORE; } - ds_push = zone->timers.next_ds_push; + ds_push = zone->timers->next_ds_push; if (ds_push == 0) { ds_push = TIME_IGNORE; } diff --git a/src/knot/nameserver/process_query.c b/src/knot/nameserver/process_query.c index b044260811..f9d79f588a 100644 --- a/src/knot/nameserver/process_query.c +++ b/src/knot/nameserver/process_query.c @@ -353,7 +353,7 @@ static int answer_edns_put(knot_pkt_t *resp, knotd_qdata_t *qdata) if (knot_pkt_edns_option(qdata->query, KNOT_EDNS_OPTION_EXPIRE) != NULL && qdata->extra->contents != NULL && !qdata->extra->zone->is_catalog_flag) { knot_time_t expire = knot_time_min(ATOMIC_GET(qdata->extra->contents->dnssec_expire), - qdata->extra->zone->timers.next_expire); + qdata->extra->zone->timers->next_expire); uint32_t timer; if (expire == 0) { timer = zone_soa_expire(qdata->extra->zone); diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index 49f460b3ed..8ffe1441cb 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -494,11 +494,11 @@ int zone_backup(conf_t *conf, zone_t *zone) return ret; } if (ctx->restore_mode) { - ret = zone_timers_read(&ctx->bck_timer_db, zone->name, &zone->timers); + ret = zone_timers_read(&ctx->bck_timer_db, zone->name, zone->timers); zone_timers_sanitize(conf, zone); zone->zonefile.bootstrap_cnt = 0; } else { - ret = zone_timers_write(&ctx->bck_timer_db, zone->name, &zone->timers); + ret = zone_timers_write(&ctx->bck_timer_db, zone->name, zone->timers); } if (ret != KNOT_EOK) { LOG_MARK_FAIL("timers"); diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index 40e3414901..9c88779517 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -199,7 +199,7 @@ int zone_timers_write(knot_lmdb_db_t *db, const knot_dname_t *zone, static void txn_zone_write(zone_t *z, knot_lmdb_txn_t *txn) { - txn_write_timers(txn, z->name, &z->timers); + txn_write_timers(txn, z->name, z->timers); } int zone_timers_write_all(knot_lmdb_db_t *db, knot_zonedb_t *zonedb) diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 8d28ec4b7f..f5c6a25de1 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -140,9 +140,9 @@ static int flush_journal(conf_t *conf, zone_t *zone, bool allow_empty_zone, bool flush_journal_replan: /* Plan next journal flush after proper period. */ - zone->timers.last_flush = time(NULL); + zone->timers->last_flush = time(NULL); if (sync_timeout > 0) { - time_t next_flush = zone->timers.last_flush + sync_timeout; + time_t next_flush = zone->timers->last_flush + sync_timeout; zone_events_schedule_at(zone, ZONE_EVENT_FLUSH, (time_t)0, ZONE_EVENT_FLUSH, next_flush); } @@ -164,6 +164,13 @@ zone_t* zone_new(const knot_dname_t *name) return NULL; } + zone->timers = calloc(1, sizeof(*zone->timers)); + if (zone->timers == NULL) { + knot_dname_free(zone->name, NULL); + free(zone); + return NULL; + } + // DDNS pthread_mutex_init(&zone->ddns_lock, NULL); zone->ddns_queue_size = 0; @@ -247,6 +254,7 @@ void zone_free(zone_t **zone_ptr) ATOMIC_DEINIT(zone->backup_ctx); + free(zone->timers); free(zone); *zone_ptr = NULL; } @@ -297,13 +305,13 @@ int selective_zone_purge(conf_t *conf, zone_t *zone, purge_flag_t params) // Purge the zone timers. if (params & PURGE_ZONE_TIMERS) { - bool member = (zone->catalog_gen != NULL); - zone->timers = (zone_timers_t) { - .catalog_member = member ? zone->timers.catalog_member : 0 - }; + time_t member = (zone->catalog_gen != NULL ? zone->timers->catalog_member : 0); + memset(zone->timers, 0, sizeof(*zone->timers)); + zone->timers->catalog_member = member; + if (member) { ret = zone_timers_write(&zone->server->timerdb, zone->name, - &zone->timers); + zone->timers); } else { ret = zone_timers_sweep(&zone->server->timerdb, dname_cmp_sweep_wrap, zone->name); @@ -379,8 +387,8 @@ void zone_perform_expire(conf_t *conf, zone_t *zone) zone_set_last_master(zone, NULL); - zone->timers.next_expire = time(NULL); - zone->timers.next_refresh = zone->timers.next_expire; + zone->timers->next_expire = time(NULL); + zone->timers->next_refresh = zone->timers->next_expire; replan_from_timers(conf, zone); } @@ -585,11 +593,11 @@ void zone_set_last_master(zone_t *zone, const struct sockaddr_storage *addr) } if (addr == NULL) { - memset(&zone->timers.last_master, 0, sizeof(zone->timers.last_master)); + memset(&zone->timers->last_master, 0, sizeof(zone->timers->last_master)); } else { - memcpy(&zone->timers.last_master, addr, sizeof(zone->timers.last_master)); + memcpy(&zone->timers->last_master, addr, sizeof(zone->timers->last_master)); } - zone->timers.master_pin_hit = 0; + zone->timers->master_pin_hit = 0; } static void set_flag(zone_t *zone, zone_flag_t flag, bool remove) @@ -655,9 +663,7 @@ bool zone_expired(const zone_t *zone) return false; } - const zone_timers_t *timers = &zone->timers; - - return timers->next_expire > 0 && timers->next_expire <= time(NULL); + return zone->timers->next_expire > 0 && zone->timers->next_expire <= time(NULL); } static void time_set_default(time_t *time, time_t value) @@ -677,20 +683,20 @@ void zone_timers_sanitize(conf_t *conf, zone_t *zone) time_t now = time(NULL); // assume now if we don't know when we flushed - time_set_default(&zone->timers.last_flush, now); + time_set_default(&zone->timers->last_flush, now); if (zone_is_slave(conf, zone)) { // assume now if we don't know - time_set_default(&zone->timers.next_refresh, now); + time_set_default(&zone->timers->next_refresh, now); if (zone->is_catalog_flag) { - zone->timers.next_expire = 0; + zone->timers->next_expire = 0; } } else { // invalidate if we don't have a master - zone->timers.last_refresh = 0; - zone->timers.next_refresh = 0; - zone->timers.last_refresh_ok = false; - zone->timers.next_expire = 0; + zone->timers->last_refresh = 0; + zone->timers->next_refresh = 0; + zone->timers->last_refresh_ok = false; + zone->timers->next_expire = 0; } } @@ -760,7 +766,7 @@ int zone_master_try(conf_t *conf, zone_t *zone, zone_master_cb callback, preferred_2x = (zone->flags & ZONE_PREF_MASTER_2X); } if (pin_tolerance > 0 && - sockaddr_net_match(&remote.addr, (struct sockaddr_storage *)&zone->timers.last_master, -1)) { + sockaddr_net_match(&remote.addr, (struct sockaddr_storage *)&zone->timers->last_master, -1)) { last_id = conf_str(iter.id); last = *iter.id; last_idx = idx; @@ -919,20 +925,20 @@ int zone_get_master_serial(zone_t *zone, uint32_t *serial) void zone_set_lastsigned_serial(zone_t *zone, uint32_t serial) { - zone->timers.last_signed_serial = serial; - zone->timers.last_signed_s_flags = LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID; + zone->timers->last_signed_serial = serial; + zone->timers->last_signed_s_flags = LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID; } int zone_get_lastsigned_serial(zone_t *zone, uint32_t *serial) { - if (!(zone->timers.last_signed_s_flags & LAST_SIGNED_SERIAL_FOUND)) { + if (!(zone->timers->last_signed_s_flags & LAST_SIGNED_SERIAL_FOUND)) { // backwards compatibility: it used to be stored in KASP DB, moved to timers for performance return kasp_db_load_serial(zone_kaspdb(zone), zone->name, KASPDB_SERIAL_LASTSIGNED, serial); } - if (!(zone->timers.last_signed_s_flags & LAST_SIGNED_SERIAL_VALID)) { + if (!(zone->timers->last_signed_s_flags & LAST_SIGNED_SERIAL_VALID)) { return KNOT_ENOENT; } - *serial = zone->timers.last_signed_serial; + *serial = zone->timers->last_signed_serial; return KNOT_EOK; } diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 52088de85e..28788e2fc2 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -100,7 +100,7 @@ typedef struct zone } zonefile; /*! \brief Zone events. */ - zone_timers_t timers; //!< Persistent zone timers. + zone_timers_t *timers; //!< Persistent zone timers. zone_events_t events; //!< Zone events timers. /*! \brief Track unsuccessful NOTIFY targets. */ diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index f7135b0df3..933a2cb207 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -103,7 +103,7 @@ static zone_t *create_zone_reload(conf_t *conf, const knot_dname_t *name, zone->contents = old_zone->contents; zone_set_flag(zone, zone_get_flag(old_zone, ~0, false)); - zone->timers = old_zone->timers; + memcpy(zone->timers, old_zone->timers, sizeof(*zone->timers)); zone_timers_sanitize(conf, zone); if (old_zone->control_update != NULL) { @@ -128,7 +128,7 @@ static zone_t *create_zone_new(conf_t *conf, const knot_dname_t *name, return NULL; } - int ret = zone_timers_read(&server->timerdb, name, &zone->timers); + int ret = zone_timers_read(&server->timerdb, name, zone->timers); if (ret != KNOT_EOK && ret != KNOT_ENODB && ret != KNOT_ENOENT) { log_zone_error(zone->name, "failed to load persistent timers (%s)", knot_strerror(ret)); @@ -144,10 +144,10 @@ static zone_t *create_zone_new(conf_t *conf, const knot_dname_t *name, conf_val_t catz = conf_zone_get(conf, C_CATALOG_ZONE, name); assert(catz.code == KNOT_EOK); // conf consistency checked in conf/tools.c zone->catalog_gen = knot_dname_copy(conf_dname(&catz), NULL); - if (zone->timers.catalog_member == 0) { - zone->timers.catalog_member = time(NULL); + if (zone->timers->catalog_member == 0) { + zone->timers->catalog_member = time(NULL); ret = zone_timers_write(&zone->server->timerdb, zone->name, - &zone->timers); + zone->timers); } if (ret != KNOT_EOK || zone->catalog_gen == NULL) { log_zone_error(zone->name, "failed to initialize catalog member zone (%s)", @@ -226,8 +226,8 @@ static void zone_purge(conf_t *conf, zone_t *zone) static zone_contents_t *zone_expire(zone_t *zone, bool zonedb_cow) { if (!zonedb_cow) { - zone->timers.next_expire = time(NULL); - zone->timers.next_refresh = zone->timers.next_expire; + zone->timers->next_expire = time(NULL); + zone->timers->next_refresh = zone->timers->next_expire; } return zone_switch_contents(zone, NULL); } From f5873a7d2e6ed374dec6ffc39ffceb558a8b4a72 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 23 Nov 2025 16:59:21 +0100 Subject: [PATCH 232/675] libngtcp2: update embedded library to v1.18.0 --- src/contrib/libngtcp2/ngtcp2/crypto/shared.c | 110 +++++- .../libngtcp2/ngtcp2/lib/ngtcp2_acktr.c | 14 +- .../libngtcp2/ngtcp2/lib/ngtcp2_addr.c | 7 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c | 9 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c | 8 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c | 1 - src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h | 44 +-- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c | 12 +- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.c | 340 ++++++++++-------- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.h | 10 +- .../libngtcp2/ngtcp2/lib/ngtcp2_crypto.c | 24 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c | 198 +++++----- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h | 49 +-- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c | 124 ++++--- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h | 2 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c | 266 ++++++++------ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h | 13 +- .../libngtcp2/ngtcp2/lib/ngtcp2_path.c | 6 - .../libngtcp2/ngtcp2/lib/ngtcp2_path.h | 8 - src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c | 2 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c | 12 +- .../libngtcp2/ngtcp2/lib/ngtcp2_qlog.c | 43 +-- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c | 28 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c | 15 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c | 33 +- .../libngtcp2/ngtcp2/lib/ngtcp2_settings.h | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c | 178 +++++++-- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.h | 35 +- .../libngtcp2/ngtcp2/lib/ngtcp2_strm.c | 58 ++- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c | 19 +- src/contrib/libngtcp2/ngtcp2/ngtcp2.h | 11 +- src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h | 76 +++- src/contrib/libngtcp2/ngtcp2/version.h | 4 +- 33 files changed, 1033 insertions(+), 730 deletions(-) diff --git a/src/contrib/libngtcp2/ngtcp2/crypto/shared.c b/src/contrib/libngtcp2/ngtcp2/crypto/shared.c index 98cd4de7e8..062efb45e9 100644 --- a/src/contrib/libngtcp2/ngtcp2/crypto/shared.c +++ b/src/contrib/libngtcp2/ngtcp2/crypto/shared.c @@ -461,7 +461,9 @@ int ngtcp2_crypto_derive_and_install_tx_key(ngtcp2_conn *conn, uint8_t *key, if (ngtcp2_conn_is_server(conn) && crypto_set_local_transport_params(conn, tls) != 0) { - goto fail; + /* Just return -1 because aead_ctx and hp_ctx are now owned by + conn. */ + return -1; } break; @@ -1305,13 +1307,22 @@ static size_t crypto_generate_regular_token_aad(uint8_t *dest, return addrlen; } +/* NGTCP2_CRYPTO_MAX_REGULAR_TOKEN_DATALEN is the maximum length of + opaque data embedded in a regular token. */ +#define NGTCP2_CRYPTO_MAX_REGULAR_TOKEN_DATALEN 256 + +/* NGTCP2_CRYPTO_MAX_REGULAR_TOKEN_PLAINTEXTLEN is the maximum length + of plaintext included in a regular token. */ +#define NGTCP2_CRYPTO_MAX_REGULAR_TOKEN_PLAINTEXTLEN \ + (sizeof(ngtcp2_tstamp) + NGTCP2_CRYPTO_MAX_REGULAR_TOKEN_DATALEN) + static const uint8_t regular_token_info_prefix[] = "regular_token"; -ngtcp2_ssize ngtcp2_crypto_generate_regular_token( +static ngtcp2_ssize crypto_generate_regular_token( uint8_t *token, const uint8_t *secret, size_t secretlen, const ngtcp2_sockaddr *remote_addr, ngtcp2_socklen remote_addrlen, - ngtcp2_tstamp ts) { - uint8_t plaintext[sizeof(ngtcp2_tstamp)]; + const void *data, size_t datalen, ngtcp2_tstamp ts) { + uint8_t plaintext[NGTCP2_CRYPTO_MAX_REGULAR_TOKEN_PLAINTEXTLEN]; uint8_t rand_data[NGTCP2_CRYPTO_TOKEN_RAND_DATALEN]; uint8_t key[16]; uint8_t iv[12]; @@ -1328,9 +1339,18 @@ ngtcp2_ssize ngtcp2_crypto_generate_regular_token( int rv; (void)remote_addrlen; + if (datalen > NGTCP2_CRYPTO_MAX_REGULAR_TOKEN_DATALEN) { + return -1; + } + memcpy(p, &ts_be, sizeof(ts_be)); p += sizeof(ts_be); + if (datalen) { + memcpy(p, data, datalen); + p += datalen; + } + plaintextlen = (size_t)(p - plaintext); if (ngtcp2_crypto_random(rand_data, sizeof(rand_data)) != 0) { @@ -1378,13 +1398,11 @@ ngtcp2_ssize ngtcp2_crypto_generate_regular_token( return p - token; } -int ngtcp2_crypto_verify_regular_token(const uint8_t *token, size_t tokenlen, - const uint8_t *secret, size_t secretlen, - const ngtcp2_sockaddr *remote_addr, - ngtcp2_socklen remote_addrlen, - ngtcp2_duration timeout, - ngtcp2_tstamp ts) { - uint8_t plaintext[sizeof(ngtcp2_tstamp)]; +static ngtcp2_ssize crypto_verify_regular_token( + void *data, size_t max_datalen, const uint8_t *token, size_t tokenlen, + const uint8_t *secret, size_t secretlen, const ngtcp2_sockaddr *remote_addr, + ngtcp2_socklen remote_addrlen, ngtcp2_duration timeout, ngtcp2_tstamp ts) { + uint8_t plaintext[NGTCP2_CRYPTO_MAX_REGULAR_TOKEN_PLAINTEXTLEN]; uint8_t key[16]; uint8_t iv[12]; size_t keylen; @@ -1397,13 +1415,14 @@ int ngtcp2_crypto_verify_regular_token(const uint8_t *token, size_t tokenlen, const uint8_t *rand_data; const uint8_t *ciphertext; size_t ciphertextlen; + size_t datalen; int rv; ngtcp2_tstamp gen_ts; (void)remote_addrlen; - if (tokenlen != NGTCP2_CRYPTO_MAX_REGULAR_TOKENLEN || + if (tokenlen < NGTCP2_CRYPTO_MAX_REGULAR_TOKENLEN || token[0] != NGTCP2_CRYPTO_TOKEN_MAGIC_REGULAR) { - return -1; + return NGTCP2_CRYPTO_ERR_UNREADABLE_TOKEN; } rand_data = token + tokenlen - NGTCP2_CRYPTO_TOKEN_RAND_DATALEN; @@ -1413,6 +1432,10 @@ int ngtcp2_crypto_verify_regular_token(const uint8_t *token, size_t tokenlen, ngtcp2_crypto_aead_aes_128_gcm(&aead); ngtcp2_crypto_md_sha256(&md); + if (ciphertextlen > sizeof(plaintext) + aead.max_overhead) { + return NGTCP2_CRYPTO_ERR_UNREADABLE_TOKEN; + } + keylen = ngtcp2_crypto_aead_keylen(&aead); ivlen = ngtcp2_crypto_aead_noncelen(&aead); @@ -1423,13 +1446,13 @@ int ngtcp2_crypto_verify_regular_token(const uint8_t *token, size_t tokenlen, rand_data, NGTCP2_CRYPTO_TOKEN_RAND_DATALEN, regular_token_info_prefix, sizeof(regular_token_info_prefix) - 1) != 0) { - return -1; + return NGTCP2_CRYPTO_ERR_INTERNAL; } aadlen = crypto_generate_regular_token_aad(aad, remote_addr); if (ngtcp2_crypto_aead_ctx_decrypt_init(&aead_ctx, &aead, key, ivlen) != 0) { - return -1; + return NGTCP2_CRYPTO_ERR_INTERNAL; } rv = ngtcp2_crypto_decrypt(plaintext, &aead, &aead_ctx, ciphertext, @@ -1438,19 +1461,74 @@ int ngtcp2_crypto_verify_regular_token(const uint8_t *token, size_t tokenlen, ngtcp2_crypto_aead_ctx_free(&aead_ctx); if (rv != 0) { - return -1; + return NGTCP2_CRYPTO_ERR_UNREADABLE_TOKEN; } memcpy(&gen_ts, plaintext, sizeof(gen_ts)); gen_ts = ngtcp2_ntohl64(gen_ts); if (gen_ts + timeout <= ts) { + return NGTCP2_CRYPTO_ERR_VERIFY_TOKEN; + } + + if (max_datalen == 0) { + return 0; + } + + datalen = ciphertextlen - aead.max_overhead - sizeof(gen_ts); + if (datalen > max_datalen) { + return 0; + } + + memcpy(data, plaintext + sizeof(gen_ts), datalen); + + return (ngtcp2_ssize)datalen; +} + +ngtcp2_ssize ngtcp2_crypto_generate_regular_token( + uint8_t *token, const uint8_t *secret, size_t secretlen, + const ngtcp2_sockaddr *remote_addr, ngtcp2_socklen remote_addrlen, + ngtcp2_tstamp ts) { + return crypto_generate_regular_token(token, secret, secretlen, remote_addr, + remote_addrlen, NULL, 0, ts); +} + +int ngtcp2_crypto_verify_regular_token(const uint8_t *token, size_t tokenlen, + const uint8_t *secret, size_t secretlen, + const ngtcp2_sockaddr *remote_addr, + ngtcp2_socklen remote_addrlen, + ngtcp2_duration timeout, + ngtcp2_tstamp ts) { + ngtcp2_ssize datalen = + crypto_verify_regular_token(NULL, 0, token, tokenlen, secret, secretlen, + remote_addr, remote_addrlen, timeout, ts); + + if (datalen < 0) { return -1; } + assert(0 == datalen); + return 0; } +ngtcp2_ssize ngtcp2_crypto_generate_regular_token2( + uint8_t *token, const uint8_t *secret, size_t secretlen, + const ngtcp2_sockaddr *remote_addr, ngtcp2_socklen remote_addrlen, + const void *data, size_t datalen, ngtcp2_tstamp ts) { + return crypto_generate_regular_token(token, secret, secretlen, remote_addr, + remote_addrlen, data, datalen, ts); +} + +ngtcp2_ssize ngtcp2_crypto_verify_regular_token2( + void *data, size_t max_datalen, const uint8_t *token, size_t tokenlen, + const uint8_t *secret, size_t secretlen, const ngtcp2_sockaddr *remote_addr, + ngtcp2_socklen remote_addrlen, ngtcp2_duration timeout, ngtcp2_tstamp ts) { + return crypto_verify_regular_token(data, max_datalen, token, tokenlen, secret, + secretlen, remote_addr, remote_addrlen, + timeout, ts); +} + ngtcp2_ssize ngtcp2_crypto_write_connection_close( uint8_t *dest, size_t destlen, uint32_t version, const ngtcp2_cid *dcid, const ngtcp2_cid *scid, uint64_t error_code, const uint8_t *reason, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c index 59bc621ef4..0781f082e7 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c @@ -34,9 +34,11 @@ ngtcp2_objalloc_def(acktr_entry, ngtcp2_acktr_entry, oplent) static void acktr_entry_init(ngtcp2_acktr_entry *ent, int64_t pkt_num, ngtcp2_tstamp tstamp) { - ent->pkt_num = pkt_num; - ent->len = 1; - ent->tstamp = tstamp; + *ent = (ngtcp2_acktr_entry){ + .pkt_num = pkt_num, + .len = 1, + .tstamp = tstamp, + }; } int ngtcp2_acktr_entry_objalloc_new(ngtcp2_acktr_entry **ent, int64_t pkt_num, @@ -219,8 +221,10 @@ ngtcp2_acktr_ack_entry *ngtcp2_acktr_add_ack(ngtcp2_acktr *acktr, int64_t largest_ack) { ngtcp2_acktr_ack_entry *ent = ngtcp2_ringbuf_push_front(&acktr->acks.rb); - ent->largest_ack = largest_ack; - ent->pkt_num = pkt_num; + *ent = (ngtcp2_acktr_ack_entry){ + .largest_ack = largest_ack, + .pkt_num = pkt_num, + }; return ent; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.c index a028a8a8f4..58694e3836 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.c @@ -31,8 +31,11 @@ ngtcp2_addr *ngtcp2_addr_init(ngtcp2_addr *dest, const ngtcp2_sockaddr *addr, ngtcp2_socklen addrlen) { - dest->addrlen = addrlen; - dest->addr = (ngtcp2_sockaddr *)addr; + *dest = (ngtcp2_addr){ + .addr = (ngtcp2_sockaddr *)addr, + .addrlen = addrlen, + }; + return dest; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c index 62e6b2f125..babf35bfdb 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c @@ -1097,13 +1097,8 @@ static void bbr_check_probe_rtt_done(ngtcp2_cc_bbr *bbr, static void bbr_mark_connection_app_limited(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { - uint64_t app_limited = bbr->rst->delivered + cstat->bytes_in_flight; - - if (app_limited) { - bbr->rst->app_limited = app_limited; - } else { - bbr->rst->app_limited = cstat->max_tx_udp_payload_size; - } + bbr->rst->app_limited = + ngtcp2_max_uint64(bbr->rst->delivered + cstat->bytes_in_flight, 1); } static void bbr_exit_probe_rtt(ngtcp2_cc_bbr *bbr, ngtcp2_tstamp ts) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c index bf4273f816..083a766281 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c @@ -26,8 +26,12 @@ #include "ngtcp2_mem.h" void ngtcp2_buf_init(ngtcp2_buf *buf, uint8_t *begin, size_t len) { - buf->begin = buf->pos = buf->last = begin; - buf->end = begin + len; + *buf = (ngtcp2_buf){ + .begin = begin, + .end = begin + len, + .pos = begin, + .last = begin, + }; } void ngtcp2_buf_reset(ngtcp2_buf *buf) { buf->pos = buf->last = buf->begin; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c index f8e420ed7d..73dfde6904 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c @@ -261,7 +261,6 @@ uint64_t ngtcp2_cbrt(uint64_t n) { y <<= 1; b = 3 * y * (y + 1) + 1; if (n >= b) { - n -= b; y++; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h index 010a1c3541..a19e90b1d0 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h @@ -184,20 +184,12 @@ typedef void (*ngtcp2_cc_on_ack_recv)(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, * @functypedef * * :type:`ngtcp2_cc_on_pkt_sent` is a callback function which is - * called when an ack-eliciting packet is sent. + * called when an ack-eliciting packet is sent. The lost, + * tx_in_flight, and is_app_limited fields in |pkt| are set to 0. */ typedef void (*ngtcp2_cc_on_pkt_sent)(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, const ngtcp2_cc_pkt *pkt); -/** - * @functypedef - * - * :type:`ngtcp2_cc_new_rtt_sample` is a callback function which is - * called when new RTT sample is obtained. - */ -typedef void (*ngtcp2_cc_new_rtt_sample)(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, - ngtcp2_tstamp ts); - /** * @functypedef * @@ -207,28 +199,6 @@ typedef void (*ngtcp2_cc_new_rtt_sample)(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, typedef void (*ngtcp2_cc_reset)(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts); -/** - * @enum - * - * :type:`ngtcp2_cc_event_type` defines congestion control events. - */ -typedef enum ngtcp2_cc_event_type { - /** - * :enum:`NGTCP2_CC_EVENT_TX_START` occurs when ack-eliciting packet - * is sent and no other ack-eliciting packet is present. - */ - NGTCP2_CC_EVENT_TYPE_TX_START -} ngtcp2_cc_event_type; - -/** - * @functypedef - * - * :type:`ngtcp2_cc_event` is a callback function which is called when - * a specific event happens. - */ -typedef void (*ngtcp2_cc_event)(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, - ngtcp2_cc_event_type event, ngtcp2_tstamp ts); - /** * @struct * @@ -275,21 +245,11 @@ typedef struct ngtcp2_cc { * ack-eliciting packet is sent. */ ngtcp2_cc_on_pkt_sent on_pkt_sent; - /** - * :member:`new_rtt_sample` is a callback function which is called - * when new RTT sample is obtained. - */ - ngtcp2_cc_new_rtt_sample new_rtt_sample; /** * :member:`reset` is a callback function which is called when * congestion control state must be reset. */ ngtcp2_cc_reset reset; - /** - * :member:`event` is a callback function which is called when a - * specific event happens. - */ - ngtcp2_cc_event event; } ngtcp2_cc; /* diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c index acbee78aaf..42a4827664 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c @@ -58,11 +58,13 @@ int ngtcp2_cid_less(const ngtcp2_cid *lhs, const ngtcp2_cid *rhs) { int ngtcp2_cid_empty(const ngtcp2_cid *cid) { return cid->datalen == 0; } void ngtcp2_scid_init(ngtcp2_scid *scid, uint64_t seq, const ngtcp2_cid *cid) { - scid->pe.index = NGTCP2_PQ_BAD_INDEX; - scid->seq = seq; - scid->cid = *cid; - scid->retired_ts = UINT64_MAX; - scid->flags = NGTCP2_SCID_FLAG_NONE; + *scid = (ngtcp2_scid){ + .pe.index = NGTCP2_PQ_BAD_INDEX, + .seq = seq, + .cid = *cid, + .retired_ts = UINT64_MAX, + .flags = NGTCP2_SCID_FLAG_NONE, + }; } void ngtcp2_scid_copy(ngtcp2_scid *dest, const ngtcp2_scid *src) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c index b1a9840c6e..827cacd535 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c @@ -697,8 +697,10 @@ static int conn_call_recv_tx_key(ngtcp2_conn *conn, return 0; } -// pktns_init initializes |pktns|. It assumes that the object pointed -// by |pktns| is zero-cleared. +/* + * pktns_init initializes |pktns|. It assumes that the object pointed + * by |pktns| is zero-cleared. + */ static void pktns_init(ngtcp2_pktns *pktns, ngtcp2_pktns_id pktns_id, ngtcp2_rst *rst, ngtcp2_cc *cc, int64_t initial_pkt_num, ngtcp2_log *log, ngtcp2_qlog *qlog, @@ -1525,6 +1527,8 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, fail_token: ngtcp2_mem_free(mem, *pconn); + *pconn = NULL; + return rv; } @@ -1552,6 +1556,8 @@ int ngtcp2_conn_client_new_versioned( rv = ngtcp2_conn_commit_local_transport_params(*pconn); if (rv != 0) { ngtcp2_conn_del(*pconn); + *pconn = NULL; + return rv; } @@ -1809,8 +1815,18 @@ static int conn_ppe_write_frame(ngtcp2_conn *conn, ngtcp2_ppe *ppe, static int conn_on_pkt_sent(ngtcp2_conn *conn, ngtcp2_pktns *pktns, ngtcp2_rtb_entry *ent) { ngtcp2_rtb *rtb = &pktns->rtb; + ngtcp2_cc_pkt cc_pkt; int rv; + if ((ent->flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) && + conn->cc.on_pkt_sent) { + conn->cc.on_pkt_sent( + &conn->cc, &conn->cstat, + ngtcp2_cc_pkt_init(&cc_pkt, ent->hd.pkt_num, ent->pktlen, pktns->id, + ent->ts, /* lost = */ 0, + /* tx_in_flight = */ 0, /* is_app_limited = */ 0)); + } + /* This function implements OnPacketSent, but it handles only non-ACK-only packet. */ rv = ngtcp2_rtb_add(rtb, ent, &conn->cstat); @@ -2015,6 +2031,12 @@ static int conn_should_pad_pkt(ngtcp2_conn *conn, uint8_t type, size_t left, return 1; } + /* We might send Handshake packet even if exceeding CWND. In that + case, we do not write non-probe 1RTT packet. */ + if (conn_cwnd_is_zero(conn) && conn->pktns.rtb.probe_pkt_left == 0) { + return 1; + } + min_payloadlen = NGTCP2_MIN_COALESCED_PAYLOADLEN; } @@ -2194,12 +2216,15 @@ static int conn_cut_crypto_frame(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, } /* ngtcp2_frame_chain for the removed data */ - removed_frc->fr.stream.type = NGTCP2_FRAME_CRYPTO; - removed_frc->fr.stream.offset = (*pfrc)->fr.stream.offset + offset; - removed_frc->fr.stream.datacnt = 1; - removed_frc->fr.stream.data[0] = (ngtcp2_vec){ - .base = data->base + offset, - .len = removed_data->len, + removed_frc->fr.stream = (ngtcp2_stream){ + .type = NGTCP2_FRAME_CRYPTO, + .offset = (*pfrc)->fr.stream.offset + offset, + .datacnt = 1, + .data[0] = + { + .base = data->base + offset, + .len = removed_data->len, + }, }; rv = ngtcp2_strm_streamfrq_push(crypto_strm, removed_frc); @@ -2249,12 +2274,15 @@ static int conn_cut_crypto_frame(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, return rv; } - left_frc->fr.stream.type = NGTCP2_FRAME_CRYPTO; - left_frc->fr.stream.offset = (*pfrc)->fr.stream.offset; - left_frc->fr.stream.datacnt = 1; - left_frc->fr.stream.data[0] = (ngtcp2_vec){ - .base = data[0].base, - .len = offset, + left_frc->fr.stream = (ngtcp2_stream){ + .type = NGTCP2_FRAME_CRYPTO, + .offset = (*pfrc)->fr.stream.offset, + .datacnt = 1, + .data[0] = + { + .base = data[0].base, + .len = offset, + }, }; left_frc->next = right_frc; @@ -3078,21 +3106,16 @@ static ngtcp2_ssize conn_write_handshake_pkts(ngtcp2_conn *conn, dest += nwrite; destlen -= (size_t)nwrite; - /* If initial packet size is at least - NGTCP2_MAX_UDP_PAYLOAD_SIZE, no extra padding is needed in a - subsequent packet. */ - if (nwrite < NGTCP2_MAX_UDP_PAYLOAD_SIZE) { - if (conn->server) { - it = ngtcp2_rtb_head(&conn->in_pktns->rtb); - if (!ngtcp2_ksl_it_end(&it)) { - rtbent = ngtcp2_ksl_it_get(&it); - if (rtbent->flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) { - wflags |= NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING; - } + if (conn->server) { + it = ngtcp2_rtb_head(&conn->in_pktns->rtb); + if (!ngtcp2_ksl_it_end(&it)) { + rtbent = ngtcp2_ksl_it_get(&it); + if (rtbent->flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) { + wflags |= NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING; } - } else { - wflags |= NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING; } + } else { + wflags |= NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING; } } } @@ -3457,7 +3480,6 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, size_t min_pktlen = conn_min_pktlen(conn); int min_padded = 0; int padded = 0; - ngtcp2_cc_pkt cc_pkt; uint64_t crypto_offset; uint64_t stream_offset; ngtcp2_ssize num_reclaimed; @@ -3573,8 +3595,10 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, conn->tx.last_max_data_ts = ts; - nfrc->fr.type = NGTCP2_FRAME_MAX_DATA; - nfrc->fr.max_data.max_data = conn->rx.unsent_max_offset + delta; + nfrc->fr.max_data = (ngtcp2_max_data){ + .type = NGTCP2_FRAME_MAX_DATA, + .max_data = conn->rx.unsent_max_offset + delta, + }; nfrc->next = pktns->tx.frq; pktns->tx.frq = nfrc; @@ -3817,11 +3841,12 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, return rv; } - nfrc->fr.type = NGTCP2_FRAME_RESET_STREAM; - nfrc->fr.reset_stream.stream_id = strm->stream_id; - nfrc->fr.reset_stream.app_error_code = - strm->tx.reset_stream_app_error_code; - nfrc->fr.reset_stream.final_size = strm->tx.offset; + nfrc->fr.reset_stream = (ngtcp2_reset_stream){ + .type = NGTCP2_FRAME_RESET_STREAM, + .stream_id = strm->stream_id, + .app_error_code = strm->tx.reset_stream_app_error_code, + .final_size = strm->tx.offset, + }; *pfrc = nfrc; strm->flags &= ~NGTCP2_STRM_FLAG_SEND_RESET_STREAM; @@ -3860,10 +3885,11 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, return rv; } - nfrc->fr.type = NGTCP2_FRAME_STOP_SENDING; - nfrc->fr.stop_sending.stream_id = strm->stream_id; - nfrc->fr.stop_sending.app_error_code = - strm->tx.stop_sending_app_error_code; + nfrc->fr.stop_sending = (ngtcp2_stop_sending){ + .type = NGTCP2_FRAME_STOP_SENDING, + .stream_id = strm->stream_id, + .app_error_code = strm->tx.stop_sending_app_error_code, + }; *pfrc = nfrc; strm->flags &= ~NGTCP2_STRM_FLAG_SEND_STOP_SENDING; @@ -3891,9 +3917,11 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, return rv; } - nfrc->fr.type = NGTCP2_FRAME_STREAM_DATA_BLOCKED; - nfrc->fr.stream_data_blocked.stream_id = strm->stream_id; - nfrc->fr.stream_data_blocked.offset = strm->tx.max_offset; + nfrc->fr.stream_data_blocked = (ngtcp2_stream_data_blocked){ + .type = NGTCP2_FRAME_STREAM_DATA_BLOCKED, + .stream_id = strm->stream_id, + .offset = strm->tx.max_offset, + }; *pfrc = nfrc; strm->tx.last_blocked_offset = strm->tx.max_offset; @@ -3945,10 +3973,11 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, strm->tx.last_max_stream_data_ts = ts; - nfrc->fr.type = NGTCP2_FRAME_MAX_STREAM_DATA; - nfrc->fr.max_stream_data.stream_id = strm->stream_id; - nfrc->fr.max_stream_data.max_stream_data = - strm->rx.unsent_max_offset + delta; + nfrc->fr.max_stream_data = (ngtcp2_max_stream_data){ + .type = NGTCP2_FRAME_MAX_STREAM_DATA, + .stream_id = strm->stream_id, + .max_stream_data = strm->rx.unsent_max_offset + delta, + }; *pfrc = nfrc; strm->rx.max_offset = strm->rx.unsent_max_offset = @@ -4044,8 +4073,10 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, assert(ngtcp2_err_is_fatal(rv)); return rv; } - nfrc->fr.type = NGTCP2_FRAME_MAX_STREAMS_BIDI; - nfrc->fr.max_streams.max_streams = conn->remote.bidi.unsent_max_streams; + nfrc->fr.max_streams = (ngtcp2_max_streams){ + .type = NGTCP2_FRAME_MAX_STREAMS_BIDI, + .max_streams = conn->remote.bidi.unsent_max_streams, + }; *pfrc = nfrc; conn->remote.bidi.max_streams = conn->remote.bidi.unsent_max_streams; @@ -4076,8 +4107,10 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, assert(ngtcp2_err_is_fatal(rv)); return rv; } - nfrc->fr.type = NGTCP2_FRAME_MAX_STREAMS_UNI; - nfrc->fr.max_streams.max_streams = conn->remote.uni.unsent_max_streams; + nfrc->fr.max_streams = (ngtcp2_max_streams){ + .type = NGTCP2_FRAME_MAX_STREAMS_UNI, + .max_streams = conn->remote.uni.unsent_max_streams, + }; *pfrc = nfrc; conn->remote.uni.max_streams = conn->remote.uni.unsent_max_streams; @@ -4198,8 +4231,10 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, return rv; } - nfrc->fr.type = NGTCP2_FRAME_DATA_BLOCKED; - nfrc->fr.data_blocked.offset = conn->tx.offset; + nfrc->fr.data_blocked = (ngtcp2_data_blocked){ + .type = NGTCP2_FRAME_DATA_BLOCKED, + .offset = conn->tx.offset, + }; rv = conn_ppe_write_frame_hd_log(conn, ppe, &hd_logged, hd, &nfrc->fr); if (rv != 0) { @@ -4230,9 +4265,11 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, return rv; } - nfrc->fr.type = NGTCP2_FRAME_STREAM_DATA_BLOCKED; - nfrc->fr.stream_data_blocked.stream_id = strm->stream_id; - nfrc->fr.stream_data_blocked.offset = strm->tx.max_offset; + nfrc->fr.stream_data_blocked = (ngtcp2_stream_data_blocked){ + .type = NGTCP2_FRAME_STREAM_DATA_BLOCKED, + .stream_id = strm->stream_id, + .offset = strm->tx.max_offset, + }; rv = conn_ppe_write_frame_hd_log(conn, ppe, &hd_logged, hd, &nfrc->fr); if (rv != 0) { @@ -4390,7 +4427,6 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, rtb_entry_flags |= NGTCP2_RTB_ENTRY_FLAG_PTO_ELICITING; } pktns->tx.non_ack_pkt_start_ts = UINT64_MAX; - pkt_empty = 0; } } else if (pktns->tx.non_ack_pkt_start_ts == UINT64_MAX) { pktns->tx.non_ack_pkt_start_ts = ts; @@ -4452,12 +4488,6 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, *pfrc = NULL; } - if ((rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) && - pktns->rtb.num_ack_eliciting == 0 && conn->cc.event) { - conn->cc.event(&conn->cc, &conn->cstat, NGTCP2_CC_EVENT_TYPE_TX_START, - ts); - } - rv = conn_on_pkt_sent(conn, pktns, ent); if (rv != 0) { assert(ngtcp2_err_is_fatal(rv)); @@ -4466,18 +4496,9 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, return rv; } - if (rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) { - if (conn->cc.on_pkt_sent) { - conn->cc.on_pkt_sent( - &conn->cc, &conn->cstat, - ngtcp2_cc_pkt_init(&cc_pkt, hd->pkt_num, (size_t)nwrite, - NGTCP2_PKTNS_ID_APPLICATION, ts, ent->rst.lost, - ent->rst.tx_in_flight, ent->rst.is_app_limited)); - } - - if (conn->flags & NGTCP2_CONN_FLAG_RESTART_IDLE_TIMER_ON_WRITE) { - conn_restart_timer_on_write(conn, ts); - } + if ((rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) && + (conn->flags & NGTCP2_CONN_FLAG_RESTART_IDLE_TIMER_ON_WRITE)) { + conn_restart_timer_on_write(conn, ts); } } else if (pi && conn->tx.ecn.state == NGTCP2_ECN_STATE_CAPABLE) { conn_handle_tx_ecn(conn, pi, NULL, pktns, hd, ts); @@ -4652,6 +4673,13 @@ ngtcp2_ssize ngtcp2_conn_write_single_frame_pkt( padded = 0; } + break; + case NGTCP2_FRAME_CONNECTION_CLOSE: + case NGTCP2_FRAME_CONNECTION_CLOSE_APP: + /* Clear padded so that we never store the terminal packet in + ngtcp2_rtb. */ + padded = 0; + break; } @@ -4778,8 +4806,10 @@ static int conn_enqueue_retire_connection_id(ngtcp2_conn *conn, uint64_t seq) { return rv; } - nfrc->fr.type = NGTCP2_FRAME_RETIRE_CONNECTION_ID; - nfrc->fr.retire_connection_id.seq = seq; + nfrc->fr.retire_connection_id = (ngtcp2_retire_connection_id){ + .type = NGTCP2_FRAME_RETIRE_CONNECTION_ID, + .seq = seq, + }; nfrc->next = pktns->tx.frq; pktns->tx.frq = nfrc; @@ -5415,7 +5445,7 @@ static int conn_on_retry(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd, ngtcp2_pktns *in_pktns = conn->in_pktns; ngtcp2_rtb *rtb = &conn->pktns.rtb; ngtcp2_rtb *in_rtb; - uint8_t cidbuf[sizeof(retry.odcid.data) * 2 + 1]; + char cidbuf[sizeof(retry.odcid.data) * 2 + 1]; uint8_t *token; if (!in_pktns || (conn->flags & NGTCP2_CONN_FLAG_RECV_RETRY)) { @@ -5440,9 +5470,9 @@ static int conn_on_retry(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd, return rv; } - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, "odcid=0x%s", - (const char *)ngtcp2_encode_hex(cidbuf, retry.odcid.data, - retry.odcid.datalen)); + ngtcp2_log_infof( + &conn->log, NGTCP2_LOG_EVENT_PKT, "odcid=0x%s", + ngtcp2_encode_hex_cstr(cidbuf, retry.odcid.data, retry.odcid.datalen)); if (retry.tokenlen == 0) { return NGTCP2_ERR_PROTO; @@ -8742,7 +8772,6 @@ static int conn_recv_non_probing_pkt_on_new_path(ngtcp2_conn *conn, ngtcp2_pv *pv = NULL; int rv; ngtcp2_duration pto; - int require_new_cid; int local_addr_eq; int pref_addr_migration; uint32_t remote_addr_cmp; @@ -8800,9 +8829,6 @@ static int conn_recv_non_probing_pkt_on_new_path(ngtcp2_conn *conn, * continue to use the current connection ID with the new remote * address while still sending from the same local address. */ - require_new_cid = conn->dcid.current.cid.datalen && - ((new_cid_used && remote_addr_cmp) || !local_addr_eq); - ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, "non-probing packet was received from new remote address"); @@ -8810,8 +8836,6 @@ static int conn_recv_non_probing_pkt_on_new_path(ngtcp2_conn *conn, ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, "Found DCID which has already been bound to the new path"); - require_new_cid = 0; - if (dcid.cid.datalen) { rv = conn_call_activate_dcid(conn, &dcid); if (rv != 0) { @@ -8819,7 +8843,9 @@ static int conn_recv_non_probing_pkt_on_new_path(ngtcp2_conn *conn, } } } else { - if (require_new_cid) { + if (conn->dcid.current.cid.datalen && + ((new_cid_used && remote_addr_cmp) || !local_addr_eq)) { + /* New DCID is required. */ if (ngtcp2_dcidtr_unused_empty(&conn->dcid.dtr)) { return NGTCP2_ERR_CONN_ID_BLOCKED; } @@ -10592,8 +10618,6 @@ static ngtcp2_ssize conn_write_handshake(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, } res += nwrite; - dest += nwrite; - destlen -= (size_t)nwrite; } if (res == 0) { @@ -10603,8 +10627,6 @@ static ngtcp2_ssize conn_write_handshake(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, } res += nwrite; - dest += nwrite; - origlen -= (size_t)nwrite; } return res; @@ -10840,6 +10862,9 @@ int ngtcp2_conn_install_initial_key( rv = ngtcp2_crypto_km_new(&pktns->crypto.tx.ckm, NULL, 0, NULL, tx_iv, ivlen, conn->mem); if (rv != 0) { + ngtcp2_crypto_km_del(pktns->crypto.rx.ckm, conn->mem); + pktns->crypto.rx.ckm = NULL; + return rv; } @@ -10890,6 +10915,9 @@ int ngtcp2_conn_install_vneg_initial_key( rv = ngtcp2_crypto_km_new(&conn->vneg.tx.ckm, NULL, 0, NULL, tx_iv, ivlen, conn->mem); if (rv != 0) { + ngtcp2_crypto_km_del(conn->vneg.rx.ckm, conn->mem); + conn->vneg.rx.ckm = NULL; + return rv; } @@ -10958,21 +10986,27 @@ int ngtcp2_conn_install_tx_handshake_key( if (conn->server) { rv = ngtcp2_conn_commit_local_transport_params(conn); if (rv != 0) { - return rv; + goto fail; } } rv = conn_call_recv_tx_key(conn, NGTCP2_ENCRYPTION_LEVEL_HANDSHAKE); if (rv != 0) { - ngtcp2_crypto_km_del(pktns->crypto.tx.ckm, conn->mem); - pktns->crypto.tx.ckm = NULL; - - memset(&pktns->crypto.tx.hp_ctx, 0, sizeof(pktns->crypto.tx.hp_ctx)); - - return rv; + goto fail; } return 0; + +fail: + /* If this function fails, aead_ctx and hp_ctx are still owned by + the caller. Delete the install key to remove the any reference + to them. */ + ngtcp2_crypto_km_del(pktns->crypto.tx.ckm, conn->mem); + pktns->crypto.tx.ckm = NULL; + + memset(&pktns->crypto.tx.hp_ctx, 0, sizeof(pktns->crypto.tx.hp_ctx)); + + return rv; } int ngtcp2_conn_install_0rtt_key(ngtcp2_conn *conn, @@ -11924,11 +11958,8 @@ conn_write_vmsg_wrapper(ngtcp2_conn *conn, ngtcp2_path *path, packet is produced, if it is set, we are sure that we are not app-limited. */ !(conn->flags & NGTCP2_CONN_FLAG_AGGREGATE_PKTS)) { - conn->rst.app_limited = conn->rst.delivered + cstat->bytes_in_flight; - - if (conn->rst.app_limited == 0) { - conn->rst.app_limited = cstat->max_tx_udp_payload_size; - } + conn->rst.app_limited = + ngtcp2_max_uint64(conn->rst.delivered + cstat->bytes_in_flight, 1); } return nwrite; @@ -12111,27 +12142,29 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, conn_client_write_handshake(conn, pi, dest, destlen, wflags, vmsg, ts); /* We might be unable to write a packet because of depletion of congestion window budget, perhaps due to packet loss that - shrinks the window drastically. */ - if (nwrite <= 0) { + shrinks the window drastically. Then continue if we are in + post-handshake. There, we might be able to write packets + exceeding CWND to avoid deadlock. */ + if (nwrite < 0) { return nwrite; } if (conn->state != NGTCP2_CS_POST_HANDSHAKE) { return nwrite; } - assert(nwrite); - assert(dest[0] & NGTCP2_HEADER_FORM_BIT); - assert(conn->negotiated_version); + if (nwrite) { + assert(dest[0] & NGTCP2_HEADER_FORM_BIT); + assert(conn->negotiated_version); - if (nwrite < NGTCP2_MAX_UDP_PAYLOAD_SIZE && - ngtcp2_pkt_get_type_long(conn->negotiated_version, dest[0]) == + if (ngtcp2_pkt_get_type_long(conn->negotiated_version, dest[0]) == NGTCP2_PKT_INITIAL) { - wflags |= NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING; - } + wflags |= NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING; + } - res = nwrite; - dest += nwrite; - destlen -= (size_t)nwrite; + res = nwrite; + dest += nwrite; + destlen -= (size_t)nwrite; + } /* Break here so that we can coalesces 1RTT packet. */ break; case NGTCP2_CS_SERVER_INITIAL: @@ -12186,7 +12219,7 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, dest += nwrite; destlen -= (size_t)nwrite; - if (res < NGTCP2_MAX_UDP_PAYLOAD_SIZE && conn->in_pktns && nwrite > 0) { + if (conn->in_pktns && nwrite > 0) { it = ngtcp2_rtb_head(&conn->in_pktns->rtb); if (!ngtcp2_ksl_it_end(&it)) { rtbent = ngtcp2_ksl_it_get(&it); @@ -12333,9 +12366,22 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, return nwrite; } if (nwrite > 0) { + /* This makes 1RTT packet padded. If 1RTT packet is not going + to be sent, packet is already padded. */ + if (ngtcp2_pkt_get_type_long(conn->negotiated_version, dest[0]) == + NGTCP2_PKT_INITIAL) { + wflags |= NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING; + } + res = nwrite; dest += nwrite; destlen -= (size_t)nwrite; + + /* We only exceed CWND to avoid deadlock. Do no write 1RTT + packet if CWND is depleted. */ + if (conn_cwnd_is_zero(conn) && conn->pktns.rtb.probe_pkt_left == 0) { + goto fin; + } } else if (destlen == 0) { res = conn_write_handshake_ack_pkts(conn, pi, dest, origlen, ts); if (res) { @@ -12402,11 +12448,12 @@ conn_write_connection_close(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, ngtcp2_frame fr; uint8_t flags = NGTCP2_WRITE_PKT_FLAG_NONE; - fr.type = NGTCP2_FRAME_CONNECTION_CLOSE; - fr.connection_close.error_code = error_code; - fr.connection_close.frame_type = 0; - fr.connection_close.reasonlen = reasonlen; - fr.connection_close.reason = (uint8_t *)reason; + fr.connection_close = (ngtcp2_connection_close){ + .type = NGTCP2_FRAME_CONNECTION_CLOSE, + .error_code = error_code, + .reasonlen = reasonlen, + .reason = (uint8_t *)reason, + }; if (!(conn->flags & NGTCP2_CONN_FLAG_HANDSHAKE_CONFIRMED) && pkt_type != NGTCP2_PKT_INITIAL) { @@ -12581,11 +12628,12 @@ ngtcp2_ssize ngtcp2_conn_write_application_close_pkt( assert(conn->pktns.crypto.tx.ckm); - fr.type = NGTCP2_FRAME_CONNECTION_CLOSE_APP; - fr.connection_close.error_code = app_error_code; - fr.connection_close.frame_type = 0; - fr.connection_close.reasonlen = reasonlen; - fr.connection_close.reason = (uint8_t *)reason; + fr.connection_close = (ngtcp2_connection_close){ + .type = NGTCP2_FRAME_CONNECTION_CLOSE_APP, + .error_code = app_error_code, + .reasonlen = reasonlen, + .reason = (uint8_t *)reason, + }; nwrite = ngtcp2_conn_write_single_frame_pkt( conn, pi, dest, destlen, NGTCP2_PKT_1RTT, NGTCP2_WRITE_PKT_FLAG_NONE, @@ -12609,11 +12657,12 @@ ngtcp2_ssize ngtcp2_conn_write_application_close_pkt( static void ccerr_init(ngtcp2_ccerr *ccerr, ngtcp2_ccerr_type type, uint64_t error_code, const uint8_t *reason, size_t reasonlen) { - ccerr->type = type; - ccerr->error_code = error_code; - ccerr->frame_type = 0; - ccerr->reason = (uint8_t *)reason; - ccerr->reasonlen = reasonlen; + *ccerr = (ngtcp2_ccerr){ + .type = type, + .error_code = error_code, + .reason = (uint8_t *)reason, + .reasonlen = reasonlen, + }; } void ngtcp2_ccerr_default(ngtcp2_ccerr *ccerr) { @@ -13029,8 +13078,8 @@ int ngtcp2_conn_get_tls_early_data_rejected(ngtcp2_conn *conn) { return (conn->flags & NGTCP2_CONN_FLAG_EARLY_DATA_REJECTED) != 0; } -int ngtcp2_conn_update_rtt(ngtcp2_conn *conn, ngtcp2_duration rtt, - ngtcp2_duration ack_delay, ngtcp2_tstamp ts) { +void ngtcp2_conn_update_rtt(ngtcp2_conn *conn, ngtcp2_duration rtt, + ngtcp2_duration ack_delay, ngtcp2_tstamp ts) { ngtcp2_conn_stat *cstat = &conn->cstat; assert(rtt > 0); @@ -13057,7 +13106,7 @@ int ngtcp2_conn_update_rtt(ngtcp2_conn *conn, ngtcp2_duration rtt, " min_rtt=%" PRIu64 " ack_delay=%" PRIu64, rtt / NGTCP2_MILLISECONDS, cstat->min_rtt / NGTCP2_MILLISECONDS, ack_delay / NGTCP2_MILLISECONDS); - return NGTCP2_ERR_INVALID_ARGUMENT; + return; } cstat->latest_rtt = rtt; @@ -13082,8 +13131,6 @@ int ngtcp2_conn_update_rtt(ngtcp2_conn *conn, ngtcp2_duration rtt, cstat->min_rtt / NGTCP2_MILLISECONDS, cstat->smoothed_rtt / NGTCP2_MILLISECONDS, cstat->rttvar / NGTCP2_MILLISECONDS, ack_delay / NGTCP2_MILLISECONDS); - - return 0; } void ngtcp2_conn_get_conn_info_versioned(ngtcp2_conn *conn, @@ -13314,7 +13361,6 @@ int ngtcp2_conn_submit_crypto_data(ngtcp2_conn *conn, const uint8_t *data, const size_t datalen) { ngtcp2_pktns *pktns; ngtcp2_frame_chain *frc; - ngtcp2_stream *fr; int rv; if (datalen == 0) { @@ -13347,16 +13393,16 @@ int ngtcp2_conn_submit_crypto_data(ngtcp2_conn *conn, return rv; } - fr = &frc->fr.stream; - - fr->type = NGTCP2_FRAME_CRYPTO; - fr->flags = 0; - fr->fin = 0; - fr->stream_id = 0; - fr->offset = pktns->crypto.tx.offset; - fr->datacnt = 1; - fr->data[0].len = datalen; - fr->data[0].base = (uint8_t *)data; + frc->fr.stream = (ngtcp2_stream){ + .type = NGTCP2_FRAME_CRYPTO, + .offset = pktns->crypto.tx.offset, + .datacnt = 1, + .data[0] = + { + .base = (uint8_t *)data, + .len = datalen, + }, + }; rv = ngtcp2_strm_streamfrq_push(&pktns->crypto.strm, frc); if (rv != 0) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h index 30a44e7266..8cda85edbf 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h @@ -768,15 +768,9 @@ int ngtcp2_conn_close_stream_if_shut_rdwr(ngtcp2_conn *conn, ngtcp2_strm *strm); * ack_delay included in ACK frame. |ack_delay| is actually tainted * (sent by peer), so don't assume that |ack_delay| is always smaller * than, or equals to |rtt|. - * - * This function returns 0 if it succeeds, or one of the following - * negative error codes: - * - * NGTCP2_ERR_INVALID_ARGUMENT - * RTT sample is ignored. */ -int ngtcp2_conn_update_rtt(ngtcp2_conn *conn, ngtcp2_duration rtt, - ngtcp2_duration ack_delay, ngtcp2_tstamp ts); +void ngtcp2_conn_update_rtt(ngtcp2_conn *conn, ngtcp2_duration rtt, + ngtcp2_duration ack_delay, ngtcp2_tstamp ts); void ngtcp2_conn_set_loss_detection_timer(ngtcp2_conn *conn, ngtcp2_tstamp ts); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.c index 1f74e8c583..078568fde3 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.c @@ -65,15 +65,21 @@ int ngtcp2_crypto_km_nocopy_new(ngtcp2_crypto_km **pckm, size_t secretlen, } p = (uint8_t *)(*pckm) + sizeof(ngtcp2_crypto_km); - (*pckm)->secret.base = p; - (*pckm)->secret.len = secretlen; - p += secretlen; - (*pckm)->iv.base = p; - (*pckm)->iv.len = ivlen; - (*pckm)->aead_ctx.native_handle = NULL; - (*pckm)->pkt_num = -1; - (*pckm)->use_count = 0; - (*pckm)->flags = NGTCP2_CRYPTO_KM_FLAG_NONE; + + **pckm = (ngtcp2_crypto_km){ + .secret = + { + .base = p, + .len = secretlen, + }, + .iv = + { + .base = p + secretlen, + .len = ivlen, + }, + .pkt_num = -1, + .flags = NGTCP2_CRYPTO_KM_FLAG_NONE, + }; return 0; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c index 22c131a1ac..25e803efbb 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c @@ -37,33 +37,31 @@ static ngtcp2_ksl_blk null_blk; ngtcp2_objalloc_def(ksl_blk, ngtcp2_ksl_blk, oplent) -static size_t ksl_nodelen(size_t keylen) { - assert(keylen >= sizeof(uint64_t)); - - return (sizeof(ngtcp2_ksl_node) + keylen - sizeof(uint64_t) + 0x7u) & - ~(uintptr_t)0x7u; -} - -static size_t ksl_blklen(size_t nodelen) { - return sizeof(ngtcp2_ksl_blk) + nodelen * NGTCP2_KSL_MAX_NBLK - +static size_t ksl_blklen(size_t aligned_keylen) { + return sizeof(ngtcp2_ksl_blk) + NGTCP2_KSL_MAX_NBLK * aligned_keylen - sizeof(uint64_t); } /* - * ksl_node_set_key sets |key| to |node|. + * ksl_set_nth_key sets |key| to |n|th node under |blk|. */ -static void ksl_node_set_key(ngtcp2_ksl *ksl, ngtcp2_ksl_node *node, - const void *key) { - memcpy(node->key, key, ksl->keylen); +static void ksl_set_nth_key(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, + size_t n, const ngtcp2_ksl_key *key) { + memcpy(blk->keys + n * ksl->aligned_keylen, key, ksl->keylen); } void ngtcp2_ksl_init(ngtcp2_ksl *ksl, ngtcp2_ksl_compar compar, ngtcp2_ksl_search search, size_t keylen, const ngtcp2_mem *mem) { - size_t nodelen = ksl_nodelen(keylen); + size_t aligned_keylen; + + assert(keylen >= sizeof(uint64_t)); + + aligned_keylen = (keylen + 0x7u) & ~0x7u; ngtcp2_objalloc_init(&ksl->blkalloc, - (ksl_blklen(nodelen) + 0xfu) & ~(uintptr_t)0xfu, mem); + (ksl_blklen(aligned_keylen) + 0xfu) & ~(uintptr_t)0xfu, + mem); ksl->head = NULL; ksl->front = ksl->back = NULL; @@ -71,12 +69,12 @@ void ngtcp2_ksl_init(ngtcp2_ksl *ksl, ngtcp2_ksl_compar compar, ksl->search = search; ksl->n = 0; ksl->keylen = keylen; - ksl->nodelen = nodelen; + ksl->aligned_keylen = aligned_keylen; } static ngtcp2_ksl_blk *ksl_blk_objalloc_new(ngtcp2_ksl *ksl) { return ngtcp2_objalloc_ksl_blk_len_get(&ksl->blkalloc, - ksl_blklen(ksl->nodelen)); + ksl_blklen(ksl->aligned_keylen)); } static void ksl_blk_objalloc_del(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk) { @@ -109,7 +107,7 @@ static void ksl_free_blk(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk) { if (!blk->leaf) { for (i = 0; i < blk->n; ++i) { - ksl_free_blk(ksl, ngtcp2_ksl_nth_node(ksl, blk, i)->blk); + ksl_free_blk(ksl, blk->nodes[i].blk); } } @@ -160,8 +158,10 @@ static ngtcp2_ksl_blk *ksl_split_blk(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk) { rblk->n = blk->n / 2; blk->n -= rblk->n; - memcpy(rblk->nodes, blk->nodes + ksl->nodelen * blk->n, - ksl->nodelen * rblk->n); + memcpy(rblk->nodes, blk->nodes + blk->n, rblk->n * sizeof(ngtcp2_ksl_node)); + + memcpy(rblk->keys, blk->keys + blk->n * ksl->aligned_keylen, + rblk->n * ksl->aligned_keylen); assert(blk->n >= NGTCP2_KSL_MIN_NBLK); assert(rblk->n >= NGTCP2_KSL_MIN_NBLK); @@ -181,25 +181,25 @@ static ngtcp2_ksl_blk *ksl_split_blk(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk) { * Out of memory. */ static int ksl_split_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { - ngtcp2_ksl_node *node; - ngtcp2_ksl_blk *lblk = ngtcp2_ksl_nth_node(ksl, blk, i)->blk, *rblk; + ngtcp2_ksl_blk *lblk = blk->nodes[i].blk, *rblk; rblk = ksl_split_blk(ksl, lblk); if (rblk == NULL) { return NGTCP2_ERR_NOMEM; } - memmove(blk->nodes + (i + 2) * ksl->nodelen, - blk->nodes + (i + 1) * ksl->nodelen, - ksl->nodelen * (blk->n - (i + 1))); + memmove(blk->nodes + (i + 2), blk->nodes + (i + 1), + (blk->n - (i + 1)) * sizeof(ngtcp2_ksl_node)); - node = ngtcp2_ksl_nth_node(ksl, blk, i + 1); - node->blk = rblk; + memmove(blk->keys + (i + 2) * ksl->aligned_keylen, + blk->keys + (i + 1) * ksl->aligned_keylen, + (blk->n - (i + 1)) * ksl->aligned_keylen); + + blk->nodes[i + 1].blk = rblk; ++blk->n; - ksl_node_set_key(ksl, node, ngtcp2_ksl_nth_node(ksl, rblk, rblk->n - 1)->key); + ksl_set_nth_key(ksl, blk, i + 1, ngtcp2_ksl_nth_key(ksl, rblk, rblk->n - 1)); - node = ngtcp2_ksl_nth_node(ksl, blk, i); - ksl_node_set_key(ksl, node, ngtcp2_ksl_nth_node(ksl, lblk, lblk->n - 1)->key); + ksl_set_nth_key(ksl, blk, i, ngtcp2_ksl_nth_key(ksl, lblk, lblk->n - 1)); return 0; } @@ -216,7 +216,6 @@ static int ksl_split_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { */ static int ksl_split_head(ngtcp2_ksl *ksl) { ngtcp2_ksl_blk *rblk = NULL, *lblk, *nhead = NULL; - ngtcp2_ksl_node *node; rblk = ksl_split_blk(ksl, ksl->head); if (rblk == NULL) { @@ -236,13 +235,11 @@ static int ksl_split_head(ngtcp2_ksl *ksl) { nhead->n = 2; nhead->leaf = 0; - node = ngtcp2_ksl_nth_node(ksl, nhead, 0); - ksl_node_set_key(ksl, node, ngtcp2_ksl_nth_node(ksl, lblk, lblk->n - 1)->key); - node->blk = lblk; + ksl_set_nth_key(ksl, nhead, 0, ngtcp2_ksl_nth_key(ksl, lblk, lblk->n - 1)); + nhead->nodes[0].blk = lblk; - node = ngtcp2_ksl_nth_node(ksl, nhead, 1); - ksl_node_set_key(ksl, node, ngtcp2_ksl_nth_node(ksl, rblk, rblk->n - 1)->key); - node->blk = rblk; + ksl_set_nth_key(ksl, nhead, 1, ngtcp2_ksl_nth_key(ksl, rblk, rblk->n - 1)); + nhead->nodes[1].blk = rblk; ksl->head = nhead; @@ -257,16 +254,17 @@ static int ksl_split_head(ngtcp2_ksl *ksl) { */ static void ksl_insert_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i, const ngtcp2_ksl_key *key, void *data) { - ngtcp2_ksl_node *node; - assert(blk->n < NGTCP2_KSL_MAX_NBLK); - memmove(blk->nodes + (i + 1) * ksl->nodelen, blk->nodes + i * ksl->nodelen, - ksl->nodelen * (blk->n - i)); + memmove(blk->nodes + (i + 1), blk->nodes + i, + (blk->n - i) * sizeof(ngtcp2_ksl_node)); + + memmove(blk->keys + (i + 1) * ksl->aligned_keylen, + blk->keys + i * ksl->aligned_keylen, + (blk->n - i) * ksl->aligned_keylen); - node = ngtcp2_ksl_nth_node(ksl, blk, i); - ksl_node_set_key(ksl, node, key); - node->data = data; + ksl_set_nth_key(ksl, blk, i, key); + blk->nodes[i].data = data; ++blk->n; } @@ -298,8 +296,7 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, i = ksl->search(ksl, blk, key); if (blk->leaf) { - if (i < blk->n && - !ksl->compar(key, ngtcp2_ksl_nth_node(ksl, blk, i)->key)) { + if (i < blk->n && !ksl->compar(key, ngtcp2_ksl_nth_key(ksl, blk, i))) { if (it) { *it = ngtcp2_ksl_end(ksl); } @@ -320,17 +317,17 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, if (i == blk->n) { /* This insertion extends the largest key in this subtree. */ for (; !blk->leaf;) { - node = ngtcp2_ksl_nth_node(ksl, blk, blk->n - 1); + node = &blk->nodes[blk->n - 1]; if (node->blk->n == NGTCP2_KSL_MAX_NBLK) { rv = ksl_split_node(ksl, blk, blk->n - 1); if (rv != 0) { return rv; } - node = ngtcp2_ksl_nth_node(ksl, blk, blk->n - 1); + node = &blk->nodes[blk->n - 1]; } - ksl_node_set_key(ksl, node, key); + ksl_set_nth_key(ksl, blk, blk->n - 1, key); blk = node->blk; } @@ -344,7 +341,7 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, return 0; } - node = ngtcp2_ksl_nth_node(ksl, blk, i); + node = &blk->nodes[i]; if (node->blk->n == NGTCP2_KSL_MAX_NBLK) { rv = ksl_split_node(ksl, blk, i); @@ -352,11 +349,11 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, return rv; } - if (ksl->compar((ngtcp2_ksl_key *)node->key, key)) { - node = ngtcp2_ksl_nth_node(ksl, blk, i + 1); + if (ksl->compar(ngtcp2_ksl_nth_key(ksl, blk, i), key)) { + node = &blk->nodes[i + 1]; - if (ksl->compar((ngtcp2_ksl_key *)node->key, key)) { - ksl_node_set_key(ksl, node, key); + if (ksl->compar(ngtcp2_ksl_nth_key(ksl, blk, i + 1), key)) { + ksl_set_nth_key(ksl, blk, i + 1, key); } } } @@ -370,8 +367,12 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, * |i|. */ static void ksl_remove_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { - memmove(blk->nodes + i * ksl->nodelen, blk->nodes + (i + 1) * ksl->nodelen, - ksl->nodelen * (blk->n - (i + 1))); + memmove(blk->nodes + i, blk->nodes + (i + 1), + (blk->n - (i + 1)) * sizeof(ngtcp2_ksl_node)); + + memmove(blk->keys + i * ksl->aligned_keylen, + blk->keys + (i + 1) * ksl->aligned_keylen, + (blk->n - (i + 1)) * ksl->aligned_keylen); --blk->n; } @@ -393,15 +394,17 @@ static ngtcp2_ksl_blk *ksl_merge_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, assert(i + 1 < blk->n); - lnode = ngtcp2_ksl_nth_node(ksl, blk, i); + lnode = &blk->nodes[i]; lblk = lnode->blk; - rblk = ngtcp2_ksl_nth_node(ksl, blk, i + 1)->blk; + rblk = blk->nodes[i + 1].blk; assert(lblk->n + rblk->n < NGTCP2_KSL_MAX_NBLK); - memcpy(lblk->nodes + ksl->nodelen * lblk->n, rblk->nodes, - ksl->nodelen * rblk->n); + memcpy(lblk->nodes + lblk->n, rblk->nodes, rblk->n * sizeof(ngtcp2_ksl_node)); + + memcpy(lblk->keys + lblk->n * ksl->aligned_keylen, rblk->keys, + rblk->n * ksl->aligned_keylen); lblk->n += rblk->n; lblk->next = rblk->next; @@ -419,8 +422,7 @@ static ngtcp2_ksl_blk *ksl_merge_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, ksl->head = lblk; } else { ksl_remove_node(ksl, blk, i + 1); - ksl_node_set_key(ksl, lnode, - ngtcp2_ksl_nth_node(ksl, lblk, lblk->n - 1)->key); + ksl_set_nth_key(ksl, blk, i, ngtcp2_ksl_nth_key(ksl, lblk, lblk->n - 1)); } return lblk; @@ -438,8 +440,8 @@ static void ksl_shift_left(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { assert(i > 0); - lnode = ngtcp2_ksl_nth_node(ksl, blk, i - 1); - rnode = ngtcp2_ksl_nth_node(ksl, blk, i); + lnode = &blk->nodes[i - 1]; + rnode = &blk->nodes[i]; lblk = lnode->blk; rblk = rnode->blk; @@ -453,15 +455,20 @@ static void ksl_shift_left(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { assert(lblk->n <= NGTCP2_KSL_MAX_NBLK - n); assert(rblk->n >= NGTCP2_KSL_MIN_NBLK + n); - memcpy(lblk->nodes + ksl->nodelen * lblk->n, rblk->nodes, ksl->nodelen * n); + memcpy(lblk->nodes + lblk->n, rblk->nodes, n * sizeof(ngtcp2_ksl_node)); + + memcpy(lblk->keys + lblk->n * ksl->aligned_keylen, rblk->keys, + n * ksl->aligned_keylen); lblk->n += (uint32_t)n; rblk->n -= (uint32_t)n; - ksl_node_set_key(ksl, lnode, - ngtcp2_ksl_nth_node(ksl, lblk, lblk->n - 1)->key); + ksl_set_nth_key(ksl, blk, i - 1, ngtcp2_ksl_nth_key(ksl, lblk, lblk->n - 1)); + + memmove(rblk->nodes, rblk->nodes + n, rblk->n * sizeof(ngtcp2_ksl_node)); - memmove(rblk->nodes, rblk->nodes + ksl->nodelen * n, ksl->nodelen * rblk->n); + memmove(rblk->keys, rblk->keys + n * ksl->aligned_keylen, + rblk->n * ksl->aligned_keylen); } /* @@ -476,8 +483,8 @@ static void ksl_shift_right(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { assert(i < blk->n - 1); - lnode = ngtcp2_ksl_nth_node(ksl, blk, i); - rnode = ngtcp2_ksl_nth_node(ksl, blk, i + 1); + lnode = &blk->nodes[i]; + rnode = &blk->nodes[i + 1]; lblk = lnode->blk; rblk = rnode->blk; @@ -491,15 +498,20 @@ static void ksl_shift_right(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { assert(lblk->n >= NGTCP2_KSL_MIN_NBLK + n); assert(rblk->n <= NGTCP2_KSL_MAX_NBLK - n); - memmove(rblk->nodes + ksl->nodelen * n, rblk->nodes, ksl->nodelen * rblk->n); + memmove(rblk->nodes + n, rblk->nodes, rblk->n * sizeof(ngtcp2_ksl_node)); + + memmove(rblk->keys + n * ksl->aligned_keylen, rblk->keys, + rblk->n * ksl->aligned_keylen); rblk->n += (uint32_t)n; lblk->n -= (uint32_t)n; - memcpy(rblk->nodes, lblk->nodes + ksl->nodelen * lblk->n, ksl->nodelen * n); + memcpy(rblk->nodes, lblk->nodes + lblk->n, n * sizeof(ngtcp2_ksl_node)); - ksl_node_set_key(ksl, lnode, - ngtcp2_ksl_nth_node(ksl, lblk, lblk->n - 1)->key); + memcpy(rblk->keys, lblk->keys + lblk->n * ksl->aligned_keylen, + n * ksl->aligned_keylen); + + ksl_set_nth_key(ksl, blk, i, ngtcp2_ksl_nth_key(ksl, lblk, lblk->n - 1)); } /* @@ -548,8 +560,8 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, } if (!blk->leaf && blk->n == 2 && - ngtcp2_ksl_nth_node(ksl, blk, 0)->blk->n == NGTCP2_KSL_MIN_NBLK && - ngtcp2_ksl_nth_node(ksl, blk, 1)->blk->n == NGTCP2_KSL_MIN_NBLK) { + blk->nodes[0].blk->n == NGTCP2_KSL_MIN_NBLK && + blk->nodes[1].blk->n == NGTCP2_KSL_MIN_NBLK) { blk = ksl_merge_node(ksl, blk, 0); } @@ -565,7 +577,7 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, } if (blk->leaf) { - if (ksl->compar(key, ngtcp2_ksl_nth_node(ksl, blk, i)->key)) { + if (ksl->compar(key, ngtcp2_ksl_nth_key(ksl, blk, i))) { if (it) { *it = ngtcp2_ksl_end(ksl); } @@ -587,7 +599,7 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, return 0; } - node = ngtcp2_ksl_nth_node(ksl, blk, i); + node = &blk->nodes[i]; if (node->blk->n > NGTCP2_KSL_MIN_NBLK) { blk = node->blk; @@ -596,16 +608,14 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, assert(node->blk->n == NGTCP2_KSL_MIN_NBLK); - if (i + 1 < blk->n && - ngtcp2_ksl_nth_node(ksl, blk, i + 1)->blk->n > NGTCP2_KSL_MIN_NBLK) { + if (i + 1 < blk->n && blk->nodes[i + 1].blk->n > NGTCP2_KSL_MIN_NBLK) { ksl_shift_left(ksl, blk, i + 1); blk = node->blk; continue; } - if (i > 0 && - ngtcp2_ksl_nth_node(ksl, blk, i - 1)->blk->n > NGTCP2_KSL_MIN_NBLK) { + if (i > 0 && blk->nodes[i - 1].blk->n > NGTCP2_KSL_MIN_NBLK) { ksl_shift_right(ksl, blk, i - 1); blk = node->blk; @@ -657,7 +667,7 @@ ngtcp2_ksl_it ngtcp2_ksl_lower_bound_search(const ngtcp2_ksl *ksl, if (i == blk->n) { /* This happens if descendant has smaller key. Fast forward to find last node in this subtree. */ - for (; !blk->leaf; blk = ngtcp2_ksl_nth_node(ksl, blk, blk->n - 1)->blk) + for (; !blk->leaf; blk = blk->nodes[blk->n - 1].blk) ; if (blk->next) { @@ -672,7 +682,7 @@ ngtcp2_ksl_it ngtcp2_ksl_lower_bound_search(const ngtcp2_ksl *ksl, return it; } - blk = ngtcp2_ksl_nth_node(ksl, blk, i)->blk; + blk = blk->nodes[i].blk; } } @@ -680,6 +690,7 @@ void ngtcp2_ksl_update_key(ngtcp2_ksl *ksl, const ngtcp2_ksl_key *old_key, const ngtcp2_ksl_key *new_key) { ngtcp2_ksl_blk *blk = ksl->head; ngtcp2_ksl_node *node; + const ngtcp2_ksl_key *node_key; size_t i; assert(ksl->head); @@ -688,18 +699,19 @@ void ngtcp2_ksl_update_key(ngtcp2_ksl *ksl, const ngtcp2_ksl_key *old_key, i = ksl->search(ksl, blk, old_key); assert(i < blk->n); - node = ngtcp2_ksl_nth_node(ksl, blk, i); + node = &blk->nodes[i]; + node_key = ngtcp2_ksl_nth_key(ksl, blk, i); if (blk->leaf) { - assert(key_equal(ksl->compar, (ngtcp2_ksl_key *)node->key, old_key)); - ksl_node_set_key(ksl, node, new_key); + assert(key_equal(ksl->compar, node_key, old_key)); + ksl_set_nth_key(ksl, blk, i, new_key); return; } - if (key_equal(ksl->compar, (ngtcp2_ksl_key *)node->key, old_key) || - ksl->compar((ngtcp2_ksl_key *)node->key, new_key)) { - ksl_node_set_key(ksl, node, new_key); + if (key_equal(ksl->compar, node_key, old_key) || + ksl->compar(node_key, new_key)) { + ksl_set_nth_key(ksl, blk, i, new_key); } blk = node->blk; @@ -727,14 +739,12 @@ void ngtcp2_ksl_clear(ngtcp2_ksl *ksl) { static void ksl_print(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t level) { size_t i; - ngtcp2_ksl_node *node; fprintf(stderr, "LV=%zu n=%u\n", level, blk->n); if (blk->leaf) { for (i = 0; i < blk->n; ++i) { - node = ngtcp2_ksl_nth_node(ksl, blk, i); - fprintf(stderr, " %" PRId64, *(int64_t *)(void *)node->key); + fprintf(stderr, " %" PRId64, *(int64_t *)ngtcp2_ksl_nth_key(ksl, blk, i)); } fprintf(stderr, "\n"); @@ -743,7 +753,7 @@ static void ksl_print(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, } for (i = 0; i < blk->n; ++i) { - ksl_print(ksl, ngtcp2_ksl_nth_node(ksl, blk, i)->blk, level + 1); + ksl_print(ksl, blk->nodes[i].blk, level + 1); } } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h index d5c3f61d2a..32f754c459 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h @@ -55,22 +55,13 @@ typedef struct ngtcp2_ksl_blk ngtcp2_ksl_blk; /* * ngtcp2_ksl_node is a node which contains either ngtcp2_ksl_blk or * opaque data. If a node is an internal node, it contains - * ngtcp2_ksl_blk. Otherwise, it has data. The key is stored at the - * location starting at key. + * ngtcp2_ksl_blk. Otherwise, it has data. */ struct ngtcp2_ksl_node { union { ngtcp2_ksl_blk *blk; void *data; }; - union { - uint64_t align; - /* key is a buffer to include key associated to this node. - Because the length of key is unknown until ngtcp2_ksl_init is - called, the actual buffer will be allocated after this - field. */ - uint8_t key[1]; - }; }; /* @@ -88,14 +79,14 @@ struct ngtcp2_ksl_blk { uint32_t n; /* leaf is nonzero if this block contains leaf nodes. */ uint32_t leaf; + ngtcp2_ksl_node nodes[NGTCP2_KSL_MAX_NBLK]; union { uint64_t align; - /* nodes is a buffer to contain NGTCP2_KSL_MAX_NBLK - ngtcp2_ksl_node objects. Because ngtcp2_ksl_node object is - allocated along with the additional variable length key - storage, the size of buffer is unknown until ngtcp2_ksl_init is - called. */ - uint8_t nodes[1]; + /* keys is a buffer to include NGTCP2_KSL_MAX_NBLK keys. + Because the length of key is unknown until ngtcp2_ksl_init + is called, the actual buffer will be allocated after this + field. */ + uint8_t keys[1]; }; }; @@ -131,11 +122,10 @@ typedef size_t (*ngtcp2_ksl_search)(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, static size_t ksl_##NAME##_search( \ const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, const ngtcp2_ksl_key *key) { \ size_t i; \ - ngtcp2_ksl_node *node; \ + uint8_t *node_key; \ \ - for (i = 0, node = (ngtcp2_ksl_node *)(void *)blk->nodes; \ - i < blk->n && COMPAR((ngtcp2_ksl_key *)node->key, key); ++i, \ - node = (ngtcp2_ksl_node *)(void *)((uint8_t *)node + ksl->nodelen)) \ + for (i = 0, node_key = blk->keys; i < blk->n && COMPAR(node_key, key); \ + ++i, node_key += ksl->aligned_keylen) \ ; \ \ return i; \ @@ -169,9 +159,7 @@ struct ngtcp2_ksl { size_t n; /* keylen is the size of key */ size_t keylen; - /* nodelen is the actual size of ngtcp2_ksl_node including key - storage. */ - size_t nodelen; + size_t aligned_keylen; }; /* @@ -290,12 +278,11 @@ size_t ngtcp2_ksl_len(const ngtcp2_ksl *ksl); void ngtcp2_ksl_clear(ngtcp2_ksl *ksl); /* - * ngtcp2_ksl_nth_node returns the |n|th node under |blk|. + * ngtcp2_ksl_nth_key returns the |n|th key under |blk|. */ -static inline ngtcp2_ksl_node *ngtcp2_ksl_nth_node(const ngtcp2_ksl *ksl, - const ngtcp2_ksl_blk *blk, - size_t n) { - return (ngtcp2_ksl_node *)(void *)(blk->nodes + ksl->nodelen * n); +static inline const ngtcp2_ksl_key * +ngtcp2_ksl_nth_key(const ngtcp2_ksl *ksl, const ngtcp2_ksl_blk *blk, size_t n) { + return blk->keys + n * ksl->aligned_keylen; } #ifndef WIN32 @@ -319,7 +306,7 @@ void ngtcp2_ksl_it_init(ngtcp2_ksl_it *it, const ngtcp2_ksl *ksl, * ngtcp2_ksl_it_end(it) returns nonzero. */ static inline void *ngtcp2_ksl_it_get(const ngtcp2_ksl_it *it) { - return ngtcp2_ksl_nth_node(it->ksl, it->blk, it->i)->data; + return it->blk->nodes[it->i].data; } /* @@ -361,8 +348,8 @@ int ngtcp2_ksl_it_begin(const ngtcp2_ksl_it *it); * It is undefined to call this function when ngtcp2_ksl_it_end(it) * returns nonzero. */ -static inline ngtcp2_ksl_key *ngtcp2_ksl_it_key(const ngtcp2_ksl_it *it) { - return (ngtcp2_ksl_key *)ngtcp2_ksl_nth_node(it->ksl, it->blk, it->i)->key; +static inline const ngtcp2_ksl_key *ngtcp2_ksl_it_key(const ngtcp2_ksl_it *it) { + return ngtcp2_ksl_nth_key(it->ksl, it->blk, it->i); } /* diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c index 5c31f44a73..d11e24455a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c @@ -42,7 +42,7 @@ void ngtcp2_log_init(ngtcp2_log *log, const ngtcp2_cid *scid, ngtcp2_printf log_printf, ngtcp2_tstamp ts, void *user_data) { if (scid) { - ngtcp2_encode_hex(log->scid, scid->data, scid->datalen); + ngtcp2_encode_hex_cstr(log->scid, scid->data, scid->datalen); } else { log->scid[0] = '\0'; } @@ -267,7 +267,7 @@ static void log_fr_connection_close(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, fr->type == NGTCP2_FRAME_CONNECTION_CLOSE ? strerrorcode(fr->error_code) : strapperrorcode(fr->error_code), fr->error_code, fr->frame_type, fr->reasonlen, - ngtcp2_encode_printable_ascii(reason, fr->reason, reasonlen)); + ngtcp2_encode_printable_ascii_cstr(reason, fr->reason, reasonlen)); } static void log_fr_max_data(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -335,8 +335,8 @@ static void log_fr_streams_blocked(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, static void log_fr_new_connection_id(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_new_connection_id *fr, const char *dir) { - uint8_t buf[sizeof(fr->stateless_reset_token) * 2 + 1]; - uint8_t cid[sizeof(fr->cid.data) * 2 + 1]; + char buf[sizeof(fr->stateless_reset_token) * 2 + 1]; + char cid[sizeof(fr->cid.data) * 2 + 1]; ngtcp2_log_infof_raw( log, NGTCP2_LOG_EVENT_FRM, @@ -344,10 +344,10 @@ static void log_fr_new_connection_id(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, " cid=0x%s retire_prior_to=%" PRIu64 " stateless_reset_token=0x%s", NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->seq, - (const char *)ngtcp2_encode_hex(cid, fr->cid.data, fr->cid.datalen), + ngtcp2_encode_hex_cstr(cid, fr->cid.data, fr->cid.datalen), fr->retire_prior_to, - (const char *)ngtcp2_encode_hex(buf, fr->stateless_reset_token, - sizeof(fr->stateless_reset_token))); + ngtcp2_encode_hex_cstr(buf, fr->stateless_reset_token, + sizeof(fr->stateless_reset_token))); } static void log_fr_stop_sending(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -364,25 +364,25 @@ static void log_fr_stop_sending(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, static void log_fr_path_challenge(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_path_challenge *fr, const char *dir) { - uint8_t buf[sizeof(fr->data) * 2 + 1]; + char buf[sizeof(fr->data) * 2 + 1]; - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " PATH_CHALLENGE(0x%02" PRIx64 ") data=0x%s", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, - (const char *)ngtcp2_encode_hex(buf, fr->data, sizeof(fr->data))); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " PATH_CHALLENGE(0x%02" PRIx64 + ") data=0x%s", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, + ngtcp2_encode_hex_cstr(buf, fr->data, sizeof(fr->data))); } static void log_fr_path_response(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_path_response *fr, const char *dir) { - uint8_t buf[sizeof(fr->data) * 2 + 1]; + char buf[sizeof(fr->data) * 2 + 1]; - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " PATH_RESPONSE(0x%02" PRIx64 ") data=0x%s", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, - (const char *)ngtcp2_encode_hex(buf, fr->data, sizeof(fr->data))); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " PATH_RESPONSE(0x%02" PRIx64 + ") data=0x%s", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, + ngtcp2_encode_hex_cstr(buf, fr->data, sizeof(fr->data))); } static void log_fr_crypto(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -398,21 +398,21 @@ static void log_fr_new_token(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_new_token *fr, const char *dir) { /* Show at most first 64 bytes of token. If token is longer than 64 bytes, log first 64 bytes and then append "*" */ - uint8_t buf[128 + 1 + 1]; - uint8_t *p; + char buf[128 + 1 + 1]; + char *p; if (fr->tokenlen > 64) { - p = ngtcp2_encode_hex(buf, fr->token, 64); + p = ngtcp2_encode_hex_cstr(buf, fr->token, 64); p[128] = '*'; p[129] = '\0'; } else { - p = ngtcp2_encode_hex(buf, fr->token, fr->tokenlen); + p = ngtcp2_encode_hex_cstr(buf, fr->token, fr->tokenlen); } ngtcp2_log_infof_raw( log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT " NEW_TOKEN(0x%02" PRIx64 ") token=0x%s len=%zu", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, (const char *)p, fr->tokenlen); + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, p, fr->tokenlen); } static void log_fr_retire_connection_id(ngtcp2_log *log, @@ -550,7 +550,7 @@ void ngtcp2_log_rx_vn(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, } void ngtcp2_log_rx_sr(ngtcp2_log *log, const ngtcp2_pkt_stateless_reset *sr) { - uint8_t buf[sizeof(sr->stateless_reset_token) * 2 + 1]; + char buf[sizeof(sr->stateless_reset_token) * 2 + 1]; ngtcp2_pkt_hd shd; ngtcp2_pkt_hd *hd = &shd; @@ -565,16 +565,16 @@ void ngtcp2_log_rx_sr(ngtcp2_log *log, const ngtcp2_pkt_stateless_reset *sr) { ngtcp2_log_infof_raw( log, NGTCP2_LOG_EVENT_PKT, NGTCP2_LOG_PKT " token=0x%s randlen=%zu", NGTCP2_LOG_PKT_HD_FIELDS("rx"), - (const char *)ngtcp2_encode_hex(buf, sr->stateless_reset_token, - sizeof(sr->stateless_reset_token)), + ngtcp2_encode_hex_cstr(buf, sr->stateless_reset_token, + sizeof(sr->stateless_reset_token)), sr->randlen); } void ngtcp2_log_remote_tp(ngtcp2_log *log, const ngtcp2_transport_params *params) { - uint8_t token[NGTCP2_STATELESS_RESET_TOKENLEN * 2 + 1]; - uint8_t addr[16 * 2 + 7 + 1]; - uint8_t cid[NGTCP2_MAX_CIDLEN * 2 + 1]; + char token[NGTCP2_STATELESS_RESET_TOKENLEN * 2 + 1]; + char addr[16 * 2 + 7 + 1]; + char cid[NGTCP2_MAX_CIDLEN * 2 + 1]; size_t i; const ngtcp2_sockaddr_in *sa_in; const ngtcp2_sockaddr_in6 *sa_in6; @@ -588,18 +588,18 @@ void ngtcp2_log_remote_tp(ngtcp2_log *log, if (params->stateless_reset_token_present) { ngtcp2_log_infof_raw( log, NGTCP2_LOG_EVENT_CRY, NGTCP2_LOG_TP " stateless_reset_token=0x%s", - (const char *)ngtcp2_encode_hex(token, params->stateless_reset_token, - sizeof(params->stateless_reset_token))); + ngtcp2_encode_hex_cstr(token, params->stateless_reset_token, + sizeof(params->stateless_reset_token))); } if (params->preferred_addr_present) { if (params->preferred_addr.ipv4_present) { sa_in = ¶ms->preferred_addr.ipv4; - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " preferred_address.ipv4_addr=%s", - (const char *)ngtcp2_encode_ipv4( - addr, (const uint8_t *)&sa_in->sin_addr)); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " preferred_address.ipv4_addr=%s", + ngtcp2_encode_ipv4_cstr(addr, (const uint8_t *)&sa_in->sin_addr)); ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, NGTCP2_LOG_TP " preferred_address.ipv4_port=%u", ngtcp2_ntohs(sa_in->sin_port)); @@ -608,10 +608,10 @@ void ngtcp2_log_remote_tp(ngtcp2_log *log, if (params->preferred_addr.ipv6_present) { sa_in6 = ¶ms->preferred_addr.ipv6; - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " preferred_address.ipv6_addr=%s", - (const char *)ngtcp2_encode_ipv6( - addr, (const uint8_t *)&sa_in6->sin6_addr)); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " preferred_address.ipv6_addr=%s", + ngtcp2_encode_ipv6_cstr(addr, (const uint8_t *)&sa_in6->sin6_addr)); ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, NGTCP2_LOG_TP " preferred_address.ipv6_port=%u", ngtcp2_ntohs(sa_in6->sin6_port)); @@ -619,38 +619,36 @@ void ngtcp2_log_remote_tp(ngtcp2_log *log, ngtcp2_log_infof_raw( log, NGTCP2_LOG_EVENT_CRY, NGTCP2_LOG_TP " preferred_address.cid=0x%s", - (const char *)ngtcp2_encode_hex(cid, params->preferred_addr.cid.data, - params->preferred_addr.cid.datalen)); + ngtcp2_encode_hex_cstr(cid, params->preferred_addr.cid.data, + params->preferred_addr.cid.datalen)); ngtcp2_log_infof_raw( log, NGTCP2_LOG_EVENT_CRY, NGTCP2_LOG_TP " preferred_address.stateless_reset_token=0x%s", - (const char *)ngtcp2_encode_hex( + ngtcp2_encode_hex_cstr( token, params->preferred_addr.stateless_reset_token, sizeof(params->preferred_addr.stateless_reset_token))); } if (params->original_dcid_present) { - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " original_destination_connection_id=0x%s", - (const char *)ngtcp2_encode_hex(cid, params->original_dcid.data, - params->original_dcid.datalen)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP + " original_destination_connection_id=0x%s", + ngtcp2_encode_hex_cstr(cid, params->original_dcid.data, + params->original_dcid.datalen)); } if (params->retry_scid_present) { - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " retry_source_connection_id=0x%s", - (const char *)ngtcp2_encode_hex(cid, params->retry_scid.data, - params->retry_scid.datalen)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " retry_source_connection_id=0x%s", + ngtcp2_encode_hex_cstr(cid, params->retry_scid.data, + params->retry_scid.datalen)); } if (params->initial_scid_present) { - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " initial_source_connection_id=0x%s", - (const char *)ngtcp2_encode_hex(cid, params->initial_scid.data, - params->initial_scid.datalen)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " initial_source_connection_id=0x%s", + ngtcp2_encode_hex_cstr(cid, params->initial_scid.data, + params->initial_scid.datalen)); } ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, @@ -732,8 +730,8 @@ void ngtcp2_log_pkt_lost(ngtcp2_log *log, int64_t pkt_num, uint8_t type, static void log_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const char *dir) { - uint8_t dcid[sizeof(hd->dcid.data) * 2 + 1]; - uint8_t scid[sizeof(hd->scid.data) * 2 + 1]; + char dcid[sizeof(hd->dcid.data) * 2 + 1]; + char scid[sizeof(hd->scid.data) * 2 + 1]; if (!log->log_printf || !(log->events & NGTCP2_LOG_EVENT_PKT)) { return; @@ -743,15 +741,15 @@ static void log_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, ngtcp2_log_infof( log, NGTCP2_LOG_EVENT_PKT, "%s pkn=%" PRId64 " dcid=0x%s type=%s k=%d", dir, hd->pkt_num, - (const char *)ngtcp2_encode_hex(dcid, hd->dcid.data, hd->dcid.datalen), + ngtcp2_encode_hex_cstr(dcid, hd->dcid.data, hd->dcid.datalen), strpkttype(hd), (hd->flags & NGTCP2_PKT_FLAG_KEY_PHASE) != 0); } else { ngtcp2_log_infof( log, NGTCP2_LOG_EVENT_PKT, "%s pkn=%" PRId64 " dcid=0x%s scid=0x%s version=0x%08x type=%s len=%zu", dir, hd->pkt_num, - (const char *)ngtcp2_encode_hex(dcid, hd->dcid.data, hd->dcid.datalen), - (const char *)ngtcp2_encode_hex(scid, hd->scid.data, hd->scid.datalen), + ngtcp2_encode_hex_cstr(dcid, hd->dcid.data, hd->dcid.datalen), + ngtcp2_encode_hex_cstr(scid, hd->scid.data, hd->scid.datalen), hd->version, strpkttype(hd), hd->len); } } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h index 707cd3089e..fabd5908e0 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h @@ -49,7 +49,7 @@ typedef struct ngtcp2_log { log_pritnf. */ void *user_data; /* scid is SCID encoded as NULL-terminated hex string. */ - uint8_t scid[NGTCP2_MAX_CIDLEN * 2 + 1]; + char scid[NGTCP2_MAX_CIDLEN * 2 + 1]; } ngtcp2_log; /** diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c index 246c779f29..6b332f6b58 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c @@ -34,11 +34,10 @@ #define NGTCP2_INITIAL_HASHBITS 4 void ngtcp2_map_init(ngtcp2_map *map, uint64_t seed, const ngtcp2_mem *mem) { - map->mem = mem; - map->hashbits = 0; - map->table = NULL; - map->seed = seed; - map->size = 0; + *map = (ngtcp2_map){ + .mem = mem, + .seed = seed, + }; } void ngtcp2_map_free(ngtcp2_map *map) { @@ -46,30 +45,27 @@ void ngtcp2_map_free(ngtcp2_map *map) { return; } - ngtcp2_mem_free(map->mem, map->table); + ngtcp2_mem_free(map->mem, map->keys); } int ngtcp2_map_each(const ngtcp2_map *map, int (*func)(void *data, void *ptr), void *ptr) { int rv; size_t i; - ngtcp2_map_bucket *bkt; size_t tablelen; if (map->size == 0) { return 0; } - tablelen = 1u << map->hashbits; + tablelen = (size_t)1 << map->hashbits; for (i = 0; i < tablelen; ++i) { - bkt = &map->table[i]; - - if (bkt->data == NULL) { + if (map->psl[i] == 0) { continue; } - rv = func(bkt->data, ptr); + rv = func(map->data[i], ptr); if (rv != 0) { return rv; } @@ -78,176 +74,228 @@ int ngtcp2_map_each(const ngtcp2_map *map, int (*func)(void *data, void *ptr), return 0; } -static size_t map_hash(const ngtcp2_map *map, ngtcp2_map_key_type key) { - /* hasher from - https://github.com/rust-lang/rustc-hash/blob/dc5c33f1283de2da64d8d7a06401d91aded03ad4/src/lib.rs - We do not perform finalization here because we use top bits - anyway. */ - key += map->seed; - key *= 0xf1357aea2e62a9c5ull; - return (size_t)((key * 11400714819323198485llu) >> (64 - map->hashbits)); -} - -static void map_bucket_swap(ngtcp2_map_bucket *a, ngtcp2_map_bucket *b) { - ngtcp2_map_bucket c = *a; +/* Hasher from + https://github.com/rust-lang/rustc-hash/blob/dc5c33f1283de2da64d8d7a06401d91aded03ad4/src/lib.rs + to maximize the output's sensitivity to all input bits. */ +#define NGTCP2_MAP_HASHER 0xf1357aea2e62a9c5ull +/* 64-bit Fibonacci hashing constant, Golden Ratio constant, to get + the high bits with the good distribution. */ +#define NGTCP2_MAP_FIBO 0x9e3779b97f4a7c15ull - *a = *b; - *b = c; +static size_t map_index(const ngtcp2_map *map, ngtcp2_map_key_type key) { + key += map->seed; + key *= NGTCP2_MAP_HASHER; + return (size_t)((key * NGTCP2_MAP_FIBO) >> (64 - map->hashbits)); } #ifndef WIN32 void ngtcp2_map_print_distance(const ngtcp2_map *map) { size_t i; size_t idx; - ngtcp2_map_bucket *bkt; size_t tablelen; if (map->size == 0) { return; } - tablelen = 1u << map->hashbits; + tablelen = (size_t)1 << map->hashbits; for (i = 0; i < tablelen; ++i) { - bkt = &map->table[i]; - - if (bkt->data == NULL) { + if (map->psl[i] == 0) { fprintf(stderr, "@%zu \n", i); continue; } - idx = map_hash(map, bkt->key); - fprintf(stderr, "@%zu hash=%zu key=%" PRIu64 " base=%zu distance=%u\n", i, - map_hash(map, bkt->key), bkt->key, idx, bkt->psl); + idx = map_index(map, map->keys[i]); + fprintf(stderr, "@%zu key=%" PRIu64 " base=%zu distance=%u\n", i, + map->keys[i], idx, map->psl[i] - 1); } } #endif /* !defined(WIN32) */ -static int map_insert(ngtcp2_map *map, ngtcp2_map_key_type key, void *data) { - size_t idx = map_hash(map, key); - ngtcp2_map_bucket b = { - .key = key, - .data = data, - }; - ngtcp2_map_bucket *bkt; - size_t mask = (1u << map->hashbits) - 1; +static void map_set_entry(ngtcp2_map *map, size_t idx, ngtcp2_map_key_type key, + void *data, size_t psl) { + map->keys[idx] = key; + map->data[idx] = data; + map->psl[idx] = (uint8_t)psl; +} + +#define NGTCP2_SWAP(TYPE, A, B) \ + do { \ + TYPE t = (TYPE) * (A); \ + \ + *(A) = *(B); \ + *(B) = t; \ + } while (0) + +/* + * map_insert inserts |key| and |data| to |map|, and returns the index + * where the pair is stored if it succeeds. Otherwise, it returns one + * of the following negative error codes: + * + * NGTCP2_ERR_INVALID_ARGUMENT + * The another data associated to |key| is already present. + */ +static ngtcp2_ssize map_insert(ngtcp2_map *map, ngtcp2_map_key_type key, + void *data) { + size_t idx = map_index(map, key); + size_t mask = ((size_t)1 << map->hashbits) - 1; + size_t psl = 1; + size_t kpsl; for (;;) { - bkt = &map->table[idx]; + kpsl = map->psl[idx]; - if (bkt->data == NULL) { - *bkt = b; + if (kpsl == 0) { + map_set_entry(map, idx, key, data, psl); ++map->size; - return 0; + + return (ngtcp2_ssize)idx; } - if (b.psl > bkt->psl) { - map_bucket_swap(bkt, &b); - } else if (bkt->key == key) { - /* TODO This check is just a waste after first swap or if this - function is called from map_resize. That said, there is no - difference with or without this conditional in performance - wise. */ + if (psl > kpsl) { + NGTCP2_SWAP(ngtcp2_map_key_type, &key, &map->keys[idx]); + NGTCP2_SWAP(void *, &data, &map->data[idx]); + NGTCP2_SWAP(uint8_t, &psl, &map->psl[idx]); + } else if (map->keys[idx] == key) { + /* This check ensures that no duplicate keys are inserted. But + it is just a waste after first swap or if this function is + called from map_resize. That said, there is no difference + with or without this conditional in performance wise. */ return NGTCP2_ERR_INVALID_ARGUMENT; } - ++b.psl; + ++psl; idx = (idx + 1) & mask; } } +/* NGTCP2_MAP_MAX_HASHBITS is the maximum number of bits used for hash + table. The theoretical limit of the maximum number of keys that + can be stored is 1 << NGTCP2_MAP_MAX_HASHBITS. */ +#define NGTCP2_MAP_MAX_HASHBITS (sizeof(size_t) * 8 - 1) + static int map_resize(ngtcp2_map *map, size_t new_hashbits) { size_t i; - ngtcp2_map_bucket *bkt; size_t tablelen; - int rv; + ngtcp2_ssize idx; ngtcp2_map new_map = { - .table = ngtcp2_mem_calloc(map->mem, 1u << new_hashbits, - sizeof(ngtcp2_map_bucket)), .mem = map->mem, .seed = map->seed, .hashbits = new_hashbits, }; - (void)rv; + void *buf; + (void)idx; - if (new_map.table == NULL) { + if (new_hashbits > NGTCP2_MAP_MAX_HASHBITS) { return NGTCP2_ERR_NOMEM; } + tablelen = (size_t)1 << new_hashbits; + + buf = ngtcp2_mem_calloc(map->mem, tablelen, + sizeof(ngtcp2_map_key_type) + sizeof(void *) + + sizeof(uint8_t)); + if (buf == NULL) { + return NGTCP2_ERR_NOMEM; + } + + new_map.keys = buf; + new_map.data = + (void *)((uint8_t *)new_map.keys + tablelen * sizeof(ngtcp2_map_key_type)); + new_map.psl = (uint8_t *)new_map.data + tablelen * sizeof(void *); + if (map->size) { - tablelen = 1u << map->hashbits; + tablelen = (size_t)1 << map->hashbits; for (i = 0; i < tablelen; ++i) { - bkt = &map->table[i]; - if (bkt->data == NULL) { + if (map->psl[i] == 0) { continue; } - rv = map_insert(&new_map, bkt->key, bkt->data); + idx = map_insert(&new_map, map->keys[i], map->data[i]); - assert(0 == rv); + /* map_insert must not fail because all keys are unique during + resize. */ + assert(idx >= 0); } } - ngtcp2_mem_free(map->mem, map->table); - map->table = new_map.table; + ngtcp2_mem_free(map->mem, map->keys); + map->keys = new_map.keys; + map->data = new_map.data; + map->psl = new_map.psl; map->hashbits = new_hashbits; return 0; } +/* NGTCP2_MAX_PSL_RESIZE_THRESH is the maximum psl threshold. If + reached, resize the table. */ +#define NGTCP2_MAX_PSL_RESIZE_THRESH 128 + int ngtcp2_map_insert(ngtcp2_map *map, ngtcp2_map_key_type key, void *data) { int rv; + size_t tablelen; + ngtcp2_ssize idx; assert(data); - /* Load factor is 7/8 */ - /* Under the very initial condition, that is map->size == 0 and - map->hashbits == 0, 8 > 7 still holds nicely. */ - if ((map->size + 1) * 8 > (1u << map->hashbits) * 7) { - if (map->hashbits) { - rv = map_resize(map, map->hashbits + 1); - if (rv != 0) { - return rv; - } - } else { - rv = map_resize(map, NGTCP2_INITIAL_HASHBITS); - if (rv != 0) { - return rv; - } + /* tablelen is incorrect if map->hashbits == 0 which leads to + tablelen = 1, but it is only used to check the load factor, and + it works in this special case. */ + tablelen = (size_t)1 << map->hashbits; + + /* Load factor is 7 / 8. Because tablelen is power of 2, (tablelen + - (tablelen >> 3)) computes tablelen * 7 / 8. */ + if (map->size + 1 >= (tablelen - (tablelen >> 3))) { + rv = map_resize(map, map->hashbits ? map->hashbits + 1 + : NGTCP2_INITIAL_HASHBITS); + if (rv != 0) { + return rv; } + + idx = map_insert(map, key, data); + if (idx < 0) { + return (int)idx; + } + + return 0; } - rv = map_insert(map, key, data); - if (rv != 0) { - return rv; + idx = map_insert(map, key, data); + if (idx < 0) { + return (int)idx; } - return 0; + /* Resize if psl reaches really large value which is almost + improbable, but just in case. */ + if (map->psl[idx] - 1 < NGTCP2_MAX_PSL_RESIZE_THRESH) { + return 0; + } + + return map_resize(map, map->hashbits + 1); } void *ngtcp2_map_find(const ngtcp2_map *map, ngtcp2_map_key_type key) { size_t idx; - ngtcp2_map_bucket *bkt; - size_t psl = 0; + size_t psl = 1; size_t mask; if (map->size == 0) { return NULL; } - idx = map_hash(map, key); - mask = (1u << map->hashbits) - 1; + idx = map_index(map, key); + mask = ((size_t)1 << map->hashbits) - 1; for (;;) { - bkt = &map->table[idx]; - - if (bkt->data == NULL || psl > bkt->psl) { + if (psl > map->psl[idx]) { return NULL; } - if (bkt->key == key) { - return bkt->data; + if (map->keys[idx] == key) { + return map->data[idx]; } ++psl; @@ -257,38 +305,36 @@ void *ngtcp2_map_find(const ngtcp2_map *map, ngtcp2_map_key_type key) { int ngtcp2_map_remove(ngtcp2_map *map, ngtcp2_map_key_type key) { size_t idx; - ngtcp2_map_bucket *b, *bkt; - size_t psl = 0; + size_t dest; + size_t psl = 1, kpsl; size_t mask; if (map->size == 0) { return NGTCP2_ERR_INVALID_ARGUMENT; } - idx = map_hash(map, key); - mask = (1u << map->hashbits) - 1; + idx = map_index(map, key); + mask = ((size_t)1 << map->hashbits) - 1; for (;;) { - bkt = &map->table[idx]; - - if (bkt->data == NULL || psl > bkt->psl) { + if (psl > map->psl[idx]) { return NGTCP2_ERR_INVALID_ARGUMENT; } - if (bkt->key == key) { - b = bkt; + if (map->keys[idx] == key) { + dest = idx; idx = (idx + 1) & mask; for (;;) { - bkt = &map->table[idx]; - if (bkt->data == NULL || bkt->psl == 0) { - b->data = NULL; + kpsl = map->psl[idx]; + if (kpsl <= 1) { + map->psl[dest] = 0; break; } - --bkt->psl; - *b = *bkt; - b = bkt; + map_set_entry(map, dest, map->keys[idx], map->data[idx], kpsl - 1); + + dest = idx; idx = (idx + 1) & mask; } @@ -308,7 +354,7 @@ void ngtcp2_map_clear(ngtcp2_map *map) { return; } - memset(map->table, 0, sizeof(*map->table) * (1u << map->hashbits)); + memset(map->psl, 0, sizeof(*map->psl) * ((size_t)1 << map->hashbits)); map->size = 0; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h index 0c1a76552a..1afe3167e6 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.h @@ -38,14 +38,13 @@ typedef uint64_t ngtcp2_map_key_type; -typedef struct ngtcp2_map_bucket { - uint32_t psl; - ngtcp2_map_key_type key; - void *data; -} ngtcp2_map_bucket; - typedef struct ngtcp2_map { - ngtcp2_map_bucket *table; + ngtcp2_map_key_type *keys; + void **data; + /* psl is the Probe Sequence Length. 0 has special meaning that the + element is not stored at i-th position if psl[i] == 0. Because + of this, the actual psl value is psl[i] - 1 if psl[i] > 0. */ + uint8_t *psl; const ngtcp2_mem *mem; uint64_t seed; size_t size; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.c index 8323873003..c9636a8db9 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.c @@ -28,12 +28,6 @@ #include "ngtcp2_addr.h" -void ngtcp2_path_init(ngtcp2_path *path, const ngtcp2_addr *local, - const ngtcp2_addr *remote) { - path->local = *local; - path->remote = *remote; -} - void ngtcp2_path_copy(ngtcp2_path *dest, const ngtcp2_path *src) { ngtcp2_addr_copy(&dest->local, &src->local); ngtcp2_addr_copy(&dest->remote, &src->remote); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.h index a708378db3..9d4205cee2 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_path.h @@ -31,14 +31,6 @@ #include -/* - * ngtcp2_path_init initializes |path| with the given addresses. Note - * that the buffer pointed by local->addr and remote->addr are not - * copied. Their pointer values are assigned instead. - */ -void ngtcp2_path_init(ngtcp2_path *path, const ngtcp2_addr *local, - const ngtcp2_addr *remote); - /* * ngtcp2_path_storage_init2 initializes |ps| using |path| as initial * data. diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c index 9d0eb57e0d..c8490467e4 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c @@ -66,7 +66,7 @@ void ngtcp2_pcg32_init(ngtcp2_pcg32 *pcg, uint64_t seed) { } static uint32_t pcg_rotr_32(uint32_t value, unsigned int rot) { - return (value >> rot) | (value << ((-rot) & 31)); + return (value >> rot) | (value << ((32 - rot) & 31)); } static uint32_t pcg_output_xsh_rr_64_32(uint64_t state) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c index d63dc932e1..db9ecf8313 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c @@ -918,7 +918,7 @@ ngtcp2_ssize ngtcp2_pkt_decode_connection_close_frame( return NGTCP2_ERR_FRAME_ENCODING; } - p = ngtcp2_get_uvarint(&vi, p); + ngtcp2_get_uvarint(&vi, p); if (payloadlen - len < vi) { return NGTCP2_ERR_FRAME_ENCODING; } @@ -1053,6 +1053,8 @@ ngtcp2_ssize ngtcp2_pkt_decode_ping_frame(ngtcp2_ping *dest, (void)payload; (void)payloadlen; + assert(payloadlen > 0); + dest->type = NGTCP2_FRAME_PING; return 1; } @@ -1321,7 +1323,7 @@ ngtcp2_ssize ngtcp2_pkt_decode_crypto_frame(ngtcp2_stream *dest, return NGTCP2_ERR_FRAME_ENCODING; } - p = ngtcp2_get_uvarint(&vi, p); + ngtcp2_get_uvarint(&vi, p); if (payloadlen - len < vi) { return NGTCP2_ERR_FRAME_ENCODING; } @@ -1428,6 +1430,8 @@ ngtcp2_ssize ngtcp2_pkt_decode_handshake_done_frame(ngtcp2_handshake_done *dest, (void)payload; (void)payloadlen; + assert(payloadlen > 0); + dest->type = NGTCP2_FRAME_HANDSHAKE_DONE; return 1; } @@ -1442,9 +1446,7 @@ ngtcp2_ssize ngtcp2_pkt_decode_datagram_frame(ngtcp2_datagram *dest, size_t n; uint64_t vi; - if (payloadlen < len) { - return NGTCP2_ERR_FRAME_ENCODING; - } + assert(payloadlen > 0); type = payload[0]; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c index 19667e17db..b8a94b7c95 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c @@ -55,15 +55,9 @@ static uint8_t *write_string_impl(uint8_t *p, const uint8_t *data, #define write_string(DEST, S) \ write_string_impl((DEST), (const uint8_t *)(S), sizeof(S) - 1) -#define NGTCP2_LOWER_XDIGITS "0123456789abcdef" - static uint8_t *write_hex(uint8_t *p, const uint8_t *data, size_t datalen) { - const uint8_t *b = data, *end = data + datalen; *p++ = '"'; - for (; b != end; ++b) { - *p++ = (uint8_t)NGTCP2_LOWER_XDIGITS[*b >> 4]; - *p++ = (uint8_t)NGTCP2_LOWER_XDIGITS[*b & 0xf]; - } + p = ngtcp2_encode_hex(p, data, datalen); *p++ = '"'; return p; } @@ -72,31 +66,12 @@ static uint8_t *write_cid(uint8_t *p, const ngtcp2_cid *cid) { return write_hex(p, cid->data, cid->datalen); } -static uint8_t *write_number(uint8_t *p, uint64_t n) { - size_t nlen = 0; - uint64_t t; - uint8_t *res; - - if (n == 0) { - *p++ = '0'; - return p; - } - for (t = n; t; t /= 10, ++nlen) - ; - p += nlen; - res = p; - for (; n; n /= 10) { - *--p = (uint8_t)((n % 10) + '0'); - } - return res; -} - static uint8_t *write_tstamp(uint8_t *p, ngtcp2_tstamp ts) { - return write_number(p, ts / NGTCP2_MILLISECONDS); + return ngtcp2_encode_uint(p, ts / NGTCP2_MILLISECONDS); } static uint8_t *write_duration(uint8_t *p, ngtcp2_duration duration) { - return write_number(p, duration / NGTCP2_MILLISECONDS); + return ngtcp2_encode_uint(p, duration / NGTCP2_MILLISECONDS); } static uint8_t *write_bool(uint8_t *p, int b) { @@ -132,7 +107,7 @@ static uint8_t *write_pair_number_impl(uint8_t *p, const uint8_t *name, size_t namelen, uint64_t value) { p = write_string_impl(p, name, namelen); *p++ = ':'; - return write_number(p, value); + return ngtcp2_encode_uint(p, value); } #define write_pair_number(DEST, NAME, VALUE) \ @@ -338,10 +313,10 @@ static uint8_t *write_ack_frame(uint8_t *p, const ngtcp2_ack *fr) { min_ack = fr->largest_ack - (int64_t)fr->first_ack_range; *p++ = '['; - p = write_number(p, (uint64_t)min_ack); + p = ngtcp2_encode_uint(p, (uint64_t)min_ack); if (largest_ack != min_ack) { *p++ = ','; - p = write_number(p, (uint64_t)largest_ack); + p = ngtcp2_encode_uint(p, (uint64_t)largest_ack); } *p++ = ']'; @@ -351,10 +326,10 @@ static uint8_t *write_ack_frame(uint8_t *p, const ngtcp2_ack *fr) { min_ack = largest_ack - (int64_t)range->len; *p++ = ','; *p++ = '['; - p = write_number(p, (uint64_t)min_ack); + p = ngtcp2_encode_uint(p, (uint64_t)min_ack); if (largest_ack != min_ack) { *p++ = ','; - p = write_number(p, (uint64_t)largest_ack); + p = ngtcp2_encode_uint(p, (uint64_t)largest_ack); } *p++ = ']'; } @@ -736,7 +711,7 @@ static void qlog_pkt_write_end(ngtcp2_qlog *qlog, const ngtcp2_pkt_hd *hd, p = write_verbatim(p, "],\"header\":"); p = write_pkt_hd(p, hd); p = write_verbatim(p, ",\"raw\":{\"length\":"); - p = write_number(p, pktlen); + p = ngtcp2_encode_uint(p, pktlen); p = write_verbatim(p, "}}}\n"); qlog->buf.last = p; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c index ef1938ea63..20eae1d881 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c @@ -36,8 +36,13 @@ int ngtcp2_rob_gap_new(ngtcp2_rob_gap **pg, uint64_t begin, uint64_t end, return NGTCP2_ERR_NOMEM; } - (*pg)->range.begin = begin; - (*pg)->range.end = end; + **pg = (ngtcp2_rob_gap){ + .range = + { + .begin = begin, + .end = end, + }, + }; return 0; } @@ -53,9 +58,14 @@ int ngtcp2_rob_data_new(ngtcp2_rob_data **pd, uint64_t offset, size_t chunk, return NGTCP2_ERR_NOMEM; } - (*pd)->range.begin = offset; - (*pd)->range.end = offset + chunk; - (*pd)->begin = (uint8_t *)(*pd) + sizeof(ngtcp2_rob_data); + **pd = (ngtcp2_rob_data){ + .range = + { + .begin = offset, + .end = offset + chunk, + }, + .begin = (uint8_t *)(*pd) + sizeof(ngtcp2_rob_data), + }; return 0; } @@ -254,9 +264,11 @@ void ngtcp2_rob_remove_prefix(ngtcp2_rob *rob, uint64_t offset) { } if (offset < g->range.end) { - ngtcp2_range r = {offset, g->range.end}; - - ngtcp2_ksl_update_key(&rob->gapksl, &g->range, &r); + ngtcp2_ksl_update_key(&rob->gapksl, &g->range, + &(ngtcp2_range){ + .begin = offset, + .end = g->range.end, + }); g->range.begin = offset; break; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c index 77247108ec..89b395cd95 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c @@ -32,16 +32,11 @@ #include "ngtcp2_conn_stat.h" void ngtcp2_rs_init(ngtcp2_rs *rs) { - rs->interval = UINT64_MAX; - rs->delivered = 0; - rs->prior_delivered = 0; - rs->prior_ts = UINT64_MAX; - rs->tx_in_flight = 0; - rs->lost = 0; - rs->send_elapsed = 0; - rs->ack_elapsed = 0; - rs->last_end_seq = -1; - rs->is_app_limited = 0; + *rs = (ngtcp2_rs){ + .interval = UINT64_MAX, + .prior_ts = UINT64_MAX, + .last_end_seq = -1, + }; } void ngtcp2_rst_init(ngtcp2_rst *rst) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c index 5908fcc5c5..ae68d93e95 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c @@ -531,9 +531,10 @@ static void rtb_remove(ngtcp2_rtb *rtb, ngtcp2_ksl_it *it, int rv; (void)rv; + rtb_on_remove(rtb, ent, cstat); + rv = ngtcp2_ksl_remove_hint(&rtb->ents, it, it, &ent->hd.pkt_num); assert(0 == rv); - rtb_on_remove(rtb, ent, cstat); assert(ent->next == NULL); @@ -895,11 +896,7 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, cc_ack.rtt = ngtcp2_max_uint64(pkt_ts - cc_ack.largest_pkt_sent_ts, NGTCP2_NANOSECONDS); - rv = ngtcp2_conn_update_rtt(conn, cc_ack.rtt, fr->ack_delay_unscaled, ts); - if (rv == 0 && cc->new_rtt_sample && - rtb->largest_acked_tx_pkt_num >= rtb->cc_pkt_num) { - cc->new_rtt_sample(cc, cstat, ts); - } + ngtcp2_conn_update_rtt(conn, cc_ack.rtt, fr->ack_delay_unscaled, ts); } if (conn) { @@ -1193,12 +1190,12 @@ static int rtb_detect_lost_pkt(ngtcp2_rtb *rtb, ngtcp2_cc_ack *cc_ack, int ngtcp2_rtb_detect_lost_pkt(ngtcp2_rtb *rtb, ngtcp2_conn *conn, ngtcp2_pktns *pktns, ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts) { - ngtcp2_cc_ack cc_ack = { - .largest_pkt_sent_ts = UINT64_MAX, - .rtt = UINT64_MAX, - }; - - return rtb_detect_lost_pkt(rtb, &cc_ack, conn, pktns, cstat, ts); + return rtb_detect_lost_pkt(rtb, + &(ngtcp2_cc_ack){ + .largest_pkt_sent_ts = UINT64_MAX, + .rtt = UINT64_MAX, + }, + conn, pktns, cstat, ts); } void ngtcp2_rtb_remove_excessive_lost_pkt(ngtcp2_rtb *rtb, size_t n) { @@ -1251,8 +1248,9 @@ void ngtcp2_rtb_remove_expired_lost_pkt(ngtcp2_rtb *rtb, ngtcp2_ksl_it_prev(&it); ent = ngtcp2_ksl_it_get(&it); - if (!(ent->flags & NGTCP2_RTB_ENTRY_FLAG_LOST_RETRANSMITTED) || - ts - ent->lost_ts < timeout) { + assert(ent->flags & NGTCP2_RTB_ENTRY_FLAG_LOST_RETRANSMITTED); + + if (ts - ent->lost_ts < timeout) { return; } @@ -1412,12 +1410,19 @@ int ngtcp2_rtb_reclaim_on_retry(ngtcp2_rtb *rtb, ngtcp2_conn *conn, ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, "pkn=%" PRId64 " has already been reclaimed on PTO", ent->hd.pkt_num); + + ngtcp2_rtb_entry_objalloc_del(ent, rtb->rtb_entry_objalloc, + rtb->frc_objalloc, rtb->mem); + continue; } if (!(ent->flags & NGTCP2_RTB_ENTRY_FLAG_RETRANSMITTABLE) && (!(ent->flags & NGTCP2_RTB_ENTRY_FLAG_DATAGRAM) || !conn->callbacks.lost_datagram)) { + ngtcp2_rtb_entry_objalloc_del(ent, rtb->rtb_entry_objalloc, + rtb->frc_objalloc, rtb->mem); + continue; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h index caa0fb58c5..28b91d8d36 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h @@ -33,10 +33,10 @@ /* NGTCP2_DEFAULT_GLITCH_RATELIM_BURST is the maximum number of tokens in glitch rate limiter. It is also the initial value. */ -#define NGTCP2_DEFAULT_GLITCH_RATELIM_BURST 1000 +#define NGTCP2_DEFAULT_GLITCH_RATELIM_BURST 4000 /* NGTCP2_DEFAULT_GLITCH_RATELIM_RATE is the rate of tokens generated per second for glitch rate limiter. */ -#define NGTCP2_DEFAULT_GLITCH_RATELIM_RATE 33 +#define NGTCP2_DEFAULT_GLITCH_RATELIM_RATE 132 /* * ngtcp2_settings_convert_to_latest converts |src| of version diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c index a61636d188..01f2706043 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c @@ -54,13 +54,19 @@ uint8_t *ngtcp2_encode_hex(uint8_t *dest, const uint8_t *data, size_t len) { *p++ = (uint8_t)LOWER_XDIGITS[data[i] & 0xf]; } + return p; +} + +char *ngtcp2_encode_hex_cstr(char *dest, const uint8_t *data, size_t len) { + uint8_t *p = ngtcp2_encode_hex((uint8_t *)dest, data, len); + *p = '\0'; return dest; } -char *ngtcp2_encode_printable_ascii(char *dest, const uint8_t *data, - size_t len) { +char *ngtcp2_encode_printable_ascii_cstr(char *dest, const uint8_t *data, + size_t len) { size_t i; char *p = dest; uint8_t c; @@ -79,40 +85,15 @@ char *ngtcp2_encode_printable_ascii(char *dest, const uint8_t *data, return dest; } -/* - * write_uint writes |n| to the buffer pointed by |p| in decimal - * representation. It returns |p| plus the number of bytes written. - * The function assumes that the buffer has enough capacity to contain - * a string. - */ -static uint8_t *write_uint(uint8_t *p, uint64_t n) { - size_t nlen = 0; - uint64_t t; - uint8_t *res; - - if (n == 0) { - *p++ = '0'; - return p; - } - for (t = n; t; t /= 10, ++nlen) - ; - p += nlen; - res = p; - for (; n; n /= 10) { - *--p = (uint8_t)((n % 10) + '0'); - } - return res; -} - -uint8_t *ngtcp2_encode_ipv4(uint8_t *dest, const uint8_t *addr) { +char *ngtcp2_encode_ipv4_cstr(char *dest, const uint8_t *addr) { size_t i; - uint8_t *p = dest; + char *p = dest; - p = write_uint(p, addr[0]); + p = (char *)ngtcp2_encode_uint((uint8_t *)p, addr[0]); for (i = 1; i < 4; ++i) { *p++ = '.'; - p = write_uint(p, addr[i]); + p = (char *)ngtcp2_encode_uint((uint8_t *)p, addr[i]); } *p = '\0'; @@ -125,9 +106,9 @@ uint8_t *ngtcp2_encode_ipv4(uint8_t *dest, const uint8_t *addr) { * length |len| to |dest| in hex string. Any leading zeros are * suppressed. It returns |dest| plus the number of bytes written. */ -static uint8_t *write_hex_zsup(uint8_t *dest, const uint8_t *data, size_t len) { +static char *write_hex_zsup(char *dest, const uint8_t *data, size_t len) { size_t i; - uint8_t *p = dest; + char *p = dest; uint8_t d; for (i = 0; i < len; ++i) { @@ -139,7 +120,7 @@ static uint8_t *write_hex_zsup(uint8_t *dest, const uint8_t *data, size_t len) { d &= 0xf; if (d) { - *p++ = (uint8_t)LOWER_XDIGITS[d]; + *p++ = LOWER_XDIGITS[d]; ++i; break; } @@ -152,19 +133,19 @@ static uint8_t *write_hex_zsup(uint8_t *dest, const uint8_t *data, size_t len) { for (; i < len; ++i) { d = data[i]; - *p++ = (uint8_t)LOWER_XDIGITS[d >> 4]; - *p++ = (uint8_t)LOWER_XDIGITS[d & 0xf]; + *p++ = LOWER_XDIGITS[d >> 4]; + *p++ = LOWER_XDIGITS[d & 0xf]; } return p; } -uint8_t *ngtcp2_encode_ipv6(uint8_t *dest, const uint8_t *addr) { +char *ngtcp2_encode_ipv6_cstr(char *dest, const uint8_t *addr) { uint16_t blks[8]; size_t i; size_t zlen, zoff; size_t max_zlen = 0, max_zoff = 8; - uint8_t *p = dest; + char *p = dest; for (i = 0; i < 16; i += sizeof(uint16_t)) { /* Copy in network byte order. */ @@ -231,3 +212,124 @@ int ngtcp2_cmemeq(const uint8_t *a, const uint8_t *b, size_t n) { return rv == 0; } + +/* countl_zero counts the number of leading zeros in |x|. It is + undefined if |x| is 0. */ +static int countl_zero(uint64_t x) { +#ifdef __GNUC__ + return __builtin_clzll(x); +#else /* !defined(__GNUC__) */ + /* This is the same implementation of Go's LeadingZeros64 in + math/bits package. */ + static const uint8_t len8tab[] = { + 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + }; + int n = 0; + + if (x >= 1ull << 32) { + x >>= 32; + n += 32; + } + + if (x >= 1 << 16) { + x >>= 16; + n += 16; + } + + if (x >= 1 << 8) { + x >>= 8; + n += 8; + } + + return 64 - (n + len8tab[x]); +#endif /* !defined(__GNUC__) */ +} + +/* + * count_digit returns the minimum number of digits to represent |x| + * in base 10. + * + * credit: + * https://lemire.me/blog/2025/01/07/counting-the-digits-of-64-bit-integers/ + */ +static size_t count_digit(uint64_t x) { + static const uint64_t count_digit_tbl[] = { + 9ull, + 99ull, + 999ull, + 9999ull, + 99999ull, + 999999ull, + 9999999ull, + 99999999ull, + 999999999ull, + 9999999999ull, + 99999999999ull, + 999999999999ull, + 9999999999999ull, + 99999999999999ull, + 999999999999999ull, + 9999999999999999ull, + 99999999999999999ull, + 999999999999999999ull, + 9999999999999999999ull, + }; + size_t y = (size_t)(19 * (63 - countl_zero(x | 1)) >> 6); + + y += x > count_digit_tbl[y]; + + return y + 1; +} + +uint8_t *ngtcp2_encode_uint(uint8_t *dest, uint64_t n) { + static const uint8_t uint_digits[] = + "00010203040506070809101112131415161718192021222324252627282930313233343536" + "37383940414243444546474849505152535455565758596061626364656667686970717273" + "7475767778798081828384858687888990919293949596979899"; + uint8_t *p; + const uint8_t *tp; + + if (n < 10) { + *dest++ = (uint8_t)('0' + n); + return dest; + } + + if (n < 100) { + tp = &uint_digits[n * 2]; + *dest++ = *tp++; + *dest++ = *tp; + return dest; + } + + dest += count_digit(n); + p = dest; + + for (; n >= 100; n /= 100) { + p -= 2; + tp = &uint_digits[(n % 100) * 2]; + p[0] = *tp++; + p[1] = *tp; + } + + if (n < 10) { + *--p = (uint8_t)('0' + n); + return dest; + } + + p -= 2; + tp = &uint_digits[n * 2]; + p[0] = *tp++; + p[1] = *tp; + + return dest; +} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.h index f970c153e8..051053d75b 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.h @@ -46,24 +46,31 @@ uint8_t *ngtcp2_setmem(uint8_t *dest, uint8_t b, size_t n); const void *ngtcp2_get_bytes(void *dest, const void *src, size_t n); /* - * ngtcp2_encode_hex encodes |data| of length |len| in hex string. It - * writes additional NULL bytes at the end of the buffer. The buffer - * pointed by |dest| must have at least |len| * 2 + 1 bytes space. - * This function returns |dest|. + * ngtcp2_encode_hex encodes |data| of length |len| in hex string. + * The buffer pointed by |dest| must have at least |len| * 2 bytes + * space. This function returns |dest| + |len| * 2. */ uint8_t *ngtcp2_encode_hex(uint8_t *dest, const uint8_t *data, size_t len); /* - * ngtcp2_encode_ipv4 encodes binary form IPv4 address stored in + * ngtcp2_encode_hex_cstr encodes |data| of length |len| in hex + * string. It writes additional NULL bytes at the end of the buffer. + * The buffer pointed by |dest| must have at least |len| * 2 + 1 bytes + * space. This function returns |dest|. + */ +char *ngtcp2_encode_hex_cstr(char *dest, const uint8_t *data, size_t len); + +/* + * ngtcp2_encode_ipv4_cstr encodes binary form IPv4 address stored in * |addr| to human readable text form in the buffer pointed by |dest|. * The capacity of buffer must have enough length to store a text form * plus a terminating NULL byte. The resulting text form ends with * NULL byte. The function returns |dest|. */ -uint8_t *ngtcp2_encode_ipv4(uint8_t *dest, const uint8_t *addr); +char *ngtcp2_encode_ipv4_cstr(char *dest, const uint8_t *addr); /* - * ngtcp2_encode_ipv6 encodes binary form IPv6 address stored in + * ngtcp2_encode_ipv6_cstr encodes binary form IPv6 address stored in * |addr| to human readable text form in the buffer pointed by |dest|. * The capacity of buffer must have enough length to store a text form * plus a terminating NULL byte. The resulting text form ends with @@ -72,7 +79,7 @@ uint8_t *ngtcp2_encode_ipv4(uint8_t *dest, const uint8_t *addr); * https://tools.ietf.org/html/rfc5952#section-4. The function * returns |dest|. */ -uint8_t *ngtcp2_encode_ipv6(uint8_t *dest, const uint8_t *addr); +char *ngtcp2_encode_ipv6_cstr(char *dest, const uint8_t *addr); /* * ngtcp2_encode_printable_ascii encodes |data| of length |len| in @@ -81,8 +88,8 @@ uint8_t *ngtcp2_encode_ipv6(uint8_t *dest, const uint8_t *addr); * writes additional NULL bytes at the end of the buffer. |dest| must * have at least |len| + 1 bytes. This function returns |dest|. */ -char *ngtcp2_encode_printable_ascii(char *dest, const uint8_t *data, - size_t len); +char *ngtcp2_encode_printable_ascii_cstr(char *dest, const uint8_t *data, + size_t len); /* * ngtcp2_cmemeq returns nonzero if the first |n| bytes of the buffers @@ -91,4 +98,12 @@ char *ngtcp2_encode_printable_ascii(char *dest, const uint8_t *data, */ int ngtcp2_cmemeq(const uint8_t *a, const uint8_t *b, size_t n); +/* + * ngtcp2_encode_uint encodes |n| as a decimal integer to the buffer + * pointed by |dest|. This function assumes that the buffer contains + * the sufficient capacity to write the number. This function returns + * the pointer to the buffer past the last byte written. + */ +uint8_t *ngtcp2_encode_uint(uint8_t *dest, uint64_t n); + #endif /* !defined(NGTCP2_STR_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c index faa4177132..26871aa0a2 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c @@ -36,30 +36,27 @@ void ngtcp2_strm_init(ngtcp2_strm *strm, int64_t stream_id, uint32_t flags, uint64_t max_rx_offset, uint64_t max_tx_offset, void *stream_user_data, ngtcp2_objalloc *frc_objalloc, const ngtcp2_mem *mem) { - strm->pe.index = NGTCP2_PQ_BAD_INDEX; - strm->cycle = 0; - strm->frc_objalloc = frc_objalloc; - strm->tx.acked_offset = NULL; - strm->tx.cont_acked_offset = 0; - strm->tx.streamfrq = NULL; - strm->tx.offset = 0; - strm->tx.max_offset = max_tx_offset; - strm->tx.last_blocked_offset = UINT64_MAX; - strm->tx.last_max_stream_data_ts = UINT64_MAX; - strm->tx.loss_count = 0; - strm->tx.last_lost_pkt_num = -1; - strm->tx.stop_sending_app_error_code = 0; - strm->tx.reset_stream_app_error_code = 0; - strm->rx.rob = NULL; - strm->rx.cont_offset = 0; - strm->rx.last_offset = 0; - strm->rx.max_offset = strm->rx.unsent_max_offset = strm->rx.window = - max_rx_offset; - strm->mem = mem; - strm->stream_id = stream_id; - strm->stream_user_data = stream_user_data; - strm->flags = flags; - strm->app_error_code = 0; + *strm = (ngtcp2_strm){ + .pe.index = NGTCP2_PQ_BAD_INDEX, + .frc_objalloc = frc_objalloc, + .tx = + { + .max_offset = max_tx_offset, + .last_blocked_offset = UINT64_MAX, + .last_max_stream_data_ts = UINT64_MAX, + .last_lost_pkt_num = -1, + }, + .rx = + { + .max_offset = max_rx_offset, + .unsent_max_offset = max_rx_offset, + .window = max_rx_offset, + }, + .mem = mem, + .stream_id = stream_id, + .stream_user_data = stream_user_data, + .flags = flags, + }; } void ngtcp2_strm_free(ngtcp2_strm *strm) { @@ -120,7 +117,7 @@ uint64_t ngtcp2_strm_rx_offset(const ngtcp2_strm *strm) { /* strm_rob_heavily_fragmented returns nonzero if the number of gaps in |rob| exceeds the limit. */ static int strm_rob_heavily_fragmented(const ngtcp2_rob *rob) { - return ngtcp2_ksl_len(&rob->gapksl) >= 1000; + return ngtcp2_ksl_len(&rob->gapksl) >= 4000; } ngtcp2_ssize ngtcp2_strm_recv_reordering(ngtcp2_strm *strm, const uint8_t *data, @@ -694,12 +691,11 @@ int ngtcp2_strm_is_all_tx_data_fin_acked(const ngtcp2_strm *strm) { ngtcp2_range ngtcp2_strm_get_unacked_range_after(const ngtcp2_strm *strm, uint64_t offset) { - ngtcp2_range gap; - if (strm->tx.acked_offset == NULL) { - gap.begin = strm->tx.cont_acked_offset; - gap.end = UINT64_MAX; - return gap; + return (ngtcp2_range){ + .begin = strm->tx.cont_acked_offset, + .end = UINT64_MAX, + }; } return ngtcp2_gaptr_get_first_gap_after(strm->tx.acked_offset, offset); @@ -754,7 +750,7 @@ int ngtcp2_strm_ack_data(ngtcp2_strm *strm, uint64_t offset, uint64_t len) { return rv; } - if (ngtcp2_ksl_len(&strm->tx.acked_offset->gap) >= 1000) { + if (ngtcp2_ksl_len(&strm->tx.acked_offset->gap) >= 4000) { return NGTCP2_ERR_INTERNAL; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c index ada027b909..537599f6c1 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c @@ -30,8 +30,11 @@ #include "ngtcp2_str.h" ngtcp2_vec *ngtcp2_vec_init(ngtcp2_vec *vec, const uint8_t *base, size_t len) { - vec->base = (uint8_t *)base; - vec->len = len; + *vec = (ngtcp2_vec){ + .base = (uint8_t *)base, + .len = len, + }; + return vec; } @@ -158,8 +161,10 @@ size_t ngtcp2_vec_merge(ngtcp2_vec *dst, size_t *pdstcnt, ngtcp2_vec *src, } else if (*pdstcnt == maxcnt) { break; } else { - dst[*pdstcnt].len = left; - dst[*pdstcnt].base = b->base; + dst[*pdstcnt] = (ngtcp2_vec){ + .base = b->base, + .len = left, + }; ++*pdstcnt; } @@ -199,8 +204,10 @@ size_t ngtcp2_vec_copy_at_most(ngtcp2_vec *dst, size_t dstcnt, } if (src[i].len > left) { - dst[j].base = src[i].base; - dst[j].len = left; + dst[j] = (ngtcp2_vec){ + .base = src[i].base, + .len = left, + }; return j + 1; } diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h index 5634c9c751..a89e9d8184 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h @@ -5579,7 +5579,9 @@ NGTCP2_EXTERN void ngtcp2_ccerr_set_application_error(ngtcp2_ccerr *ccerr, * |destlen| could be shorten by some factors (e.g., server side * amplification limit). This function returns * :macro:`NGTCP2_ERR_NOBUF` if the resulting buffer is too small even - * if the given buffer has enough space. + * if the given buffer has enough space. This can happen if sending a + * packet would exceed a transmission limit (e.g., for amplification + * attack protection). * * This function must not be called from inside the callback * functions. @@ -5594,7 +5596,8 @@ NGTCP2_EXTERN void ngtcp2_ccerr_set_application_error(ngtcp2_ccerr *ccerr, * :macro:`NGTCP2_ERR_NOMEM` * Out of memory * :macro:`NGTCP2_ERR_NOBUF` - * Buffer is too small + * Buffer is too small or packet would exceed the transmission + * limit (e.g., for amplification attack protection). * :macro:`NGTCP2_ERR_INVALID_STATE` * The current state does not allow sending CONNECTION_CLOSE * frame. @@ -5916,9 +5919,9 @@ NGTCP2_EXTERN void ngtcp2_path_storage_zero(ngtcp2_path_storage *ps); * * :member:`handshake_timeout ` = * ``UINT64_MAX`` * * :member:`glitch_ratelim_burst - * ` = 1000 + * ` = 4000 * * :member:`glitch_ratelim_rate - * ` = 33 + * ` = 132 */ NGTCP2_EXTERN void ngtcp2_settings_default_versioned(int settings_version, ngtcp2_settings *settings); diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h index 003ec6b4c3..c2099d2495 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h @@ -627,7 +627,10 @@ NGTCP2_EXTERN int ngtcp2_crypto_generate_stateless_reset_token( * @macro * * :macro:`NGTCP2_CRYPTO_MAX_REGULAR_TOKENLEN` is the maximum length - * of a token generated by `ngtcp2_crypto_generate_regular_token`. + * of a token generated by `ngtcp2_crypto_generate_regular_token`. + * `ngtcp2_crypto_generate_regular_token2` generates a token of length + * at most :macro:`NGTCP2_CRYPTO_MAX_REGULAR_TOKENLEN` bytes + the + * length of the provided opaque data. */ #define NGTCP2_CRYPTO_MAX_REGULAR_TOKENLEN \ (/* magic = */ 1 + sizeof(ngtcp2_tstamp) + /* aead tag = */ 16 + \ @@ -787,6 +790,77 @@ NGTCP2_EXTERN int ngtcp2_crypto_verify_regular_token( size_t secretlen, const ngtcp2_sockaddr *remote_addr, ngtcp2_socklen remote_addrlen, ngtcp2_duration timeout, ngtcp2_tstamp ts); +/** + * @function + * + * `ngtcp2_crypto_generate_regular_token2` generates a token in the + * buffer pointed by |token| that is sent with NEW_TOKEN frame. The + * buffer pointed by |token| must have at least + * :macro:`NGTCP2_CRYPTO_MAX_REGULAR_TOKENLEN` + |datalen| bytes long. + * The successfully generated token starts with + * :macro:`NGTCP2_CRYPTO_TOKEN_MAGIC_REGULAR`. |secret| of length + * |secretlen| is a keying material to generate keys to encrypt the + * token. |remote_addr| of length |remote_addrlen| is an address of + * client. |ts| is the timestamp when the token is generated. |data| + * of length |datalen| is an opaque data embedded in the token. + * |datalen| must be less than or equal to 256. + * + * Calling this function with |datalen| = 0 is equivalent to calling + * `ngtcp2_crypto_generate_regular_token`. + * + * To get the opaque data after successful verification, use + * `ngtcp2_crypto_verify_regular_token2`. + * `ngtcp2_crypto_verify_regular_token` can verify the token with + * |datalen| > 0, but it discards the opaque data. + * + * This function returns the length of generated token if it succeeds, + * or -1. + */ +NGTCP2_EXTERN ngtcp2_ssize ngtcp2_crypto_generate_regular_token2( + uint8_t *token, const uint8_t *secret, size_t secretlen, + const ngtcp2_sockaddr *remote_addr, ngtcp2_socklen remote_addrlen, + const void *data, size_t datalen, ngtcp2_tstamp ts); + +/** + * @function + * + * `ngtcp2_crypto_verify_regular_token2` verifies a regular token + * stored in the buffer pointed by |token| of length |tokenlen|. + * |secret| of length |secretlen| is a keying material to generate + * keys to decrypt the token. |remote_addr| of length + * |remote_addrlen| is an address of client. |timeout| is the period + * during which the token is valid. |ts| is the current timestamp. + * |data| is the pointer to the buffer of length at least + * |max_datalen| bytes. If the token is verified successfully, the + * opaque data embedded in the token is copied to the buffer pointed + * by |data|. + * + * If |tokenlen| is less than + * :macro:`NGTCP2_CRYPTO_MAX_REGULAR_TOKENLEN`, this function returns + * :macro:`NGTCP2_CRYPTO_ERR_UNREADABLE_TOKEN`. + * + * If the length of opaque data is larger than |max_datalen|, the + * verification still succeeds, but nothing is written to the buffer + * pointed by |data|, and this function returns 0. In other words, + * the opaque data is discarded. + * + * This function returns the number of the opaque data written to the + * buffer pointed by |data| if it succeeds, or one of the following + * negative error codes: + * + * :macro:`NGTCP2_CRYPTO_ERR_UNREADABLE_TOKEN` + * A token is badly formatted; or verifying the integrity + * protection failed. + * :macro:`NGTCP2_CRYPTO_ERR_VERIFY_TOKEN` + * A token validity has expired. + * :macro:`NGTCP2_CRYPTO_ERR_INTERNAL` + * Internal error occurred. + */ +NGTCP2_EXTERN ngtcp2_ssize ngtcp2_crypto_verify_regular_token2( + void *data, size_t max_datalen, const uint8_t *token, size_t tokenlen, + const uint8_t *secret, size_t secretlen, const ngtcp2_sockaddr *remote_addr, + ngtcp2_socklen remote_addrlen, ngtcp2_duration timeout, ngtcp2_tstamp ts); + /** * @function * diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index 3ff1ebac97..3e60b39d5d 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.17.0" +#define NGTCP2_VERSION "1.18.0" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x011100 +#define NGTCP2_VERSION_NUM 0x011200 #endif /* !defined(NGTCP2_VERSION_H) */ From 3d51c5faa62c28bca967e9eff942a5466f42e17c Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 4 Nov 2025 17:19:19 +0100 Subject: [PATCH 233/675] zone/timers: COW for timers enabling safe readout by other threads --- src/knot/catalog/generate.c | 4 +-- src/knot/events/events.c | 7 ++++- src/knot/nameserver/process_query.c | 2 +- src/knot/zone/timers.c | 2 +- src/knot/zone/zone.c | 46 ++++++++++++++++++++++++++++- src/knot/zone/zone.h | 8 +++-- src/knot/zone/zonedb-load.c | 4 +++ 7 files changed, 65 insertions(+), 8 deletions(-) diff --git a/src/knot/catalog/generate.c b/src/knot/catalog/generate.c index 852fe5e623..dc3333691d 100644 --- a/src/knot/catalog/generate.c +++ b/src/knot/catalog/generate.c @@ -66,7 +66,7 @@ void catalog_generate_rem(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new) return; } assert(catz->cat_members != NULL); // if this failed to allocate, catz wasn't added to zonedb - knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers->catalog_member); + knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers_static->catalog_member); if (owner == NULL) { catz->cat_members->error = KNOT_ENOENT; return; @@ -98,7 +98,7 @@ void catalog_generate_add(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new, boo log_zone_error(zone->name, "member zone belongs to non-generated catalog zone"); return; } - knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers->catalog_member); + knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers_static->catalog_member); if (owner == NULL) { catz->cat_members->error = KNOT_ENOENT; return; diff --git a/src/knot/events/events.c b/src/knot/events/events.c index b401c04061..d2ec669370 100644 --- a/src/knot/events/events.c +++ b/src/knot/events/events.c @@ -217,14 +217,19 @@ static void event_wrap(worker_task_t *task) const event_info_t *info = get_event_info(type); - /* Create a configuration copy just for this event. */ + /* Create a configuration and timers copy just for this event. */ conf_t *conf; rcu_read_lock(); int ret = conf_clone(&conf); rcu_read_unlock(); + if (ret == KNOT_EOK) { + ret = zone_timers_begin(zone); + } + if (ret == KNOT_EOK) { /* Execute the event callback. */ ret = info->callback(conf, zone); + zone_timers_commit(zone); conf_free(conf); } diff --git a/src/knot/nameserver/process_query.c b/src/knot/nameserver/process_query.c index f9d79f588a..6f37928bfe 100644 --- a/src/knot/nameserver/process_query.c +++ b/src/knot/nameserver/process_query.c @@ -353,7 +353,7 @@ static int answer_edns_put(knot_pkt_t *resp, knotd_qdata_t *qdata) if (knot_pkt_edns_option(qdata->query, KNOT_EDNS_OPTION_EXPIRE) != NULL && qdata->extra->contents != NULL && !qdata->extra->zone->is_catalog_flag) { knot_time_t expire = knot_time_min(ATOMIC_GET(qdata->extra->contents->dnssec_expire), - qdata->extra->zone->timers->next_expire); + qdata->extra->zone->timers_static->next_expire); uint32_t timer; if (expire == 0) { timer = zone_soa_expire(qdata->extra->zone); diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index 9c88779517..e1942fd061 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -199,7 +199,7 @@ int zone_timers_write(knot_lmdb_db_t *db, const knot_dname_t *zone, static void txn_zone_write(zone_t *z, knot_lmdb_txn_t *txn) { - txn_write_timers(txn, z->name, z->timers); + txn_write_timers(txn, z->name, z->timers_static); } int zone_timers_write_all(knot_lmdb_db_t *db, knot_zonedb_t *zonedb) diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index f5c6a25de1..10f905978f 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -170,6 +170,7 @@ zone_t* zone_new(const knot_dname_t *name) free(zone); return NULL; } + zone->timers_static = zone->timers; // DDNS pthread_mutex_init(&zone->ddns_lock, NULL); @@ -663,7 +664,7 @@ bool zone_expired(const zone_t *zone) return false; } - return zone->timers->next_expire > 0 && zone->timers->next_expire <= time(NULL); + return zone->timers_static->next_expire > 0 && zone->timers_static->next_expire <= time(NULL); } static void time_set_default(time_t *time, time_t value) @@ -700,6 +701,45 @@ void zone_timers_sanitize(conf_t *conf, zone_t *zone) } } +int zone_timers_begin(zone_t *zone) +{ + assert(zone->timers == zone->timers_static); + zone->timers = malloc(sizeof(*zone->timers)); + if (zone->timers == NULL) { + zone->timers = zone->timers_static; + return KNOT_ENOMEM; + } + memcpy(zone->timers, zone->timers_static, sizeof(*zone->timers)); + return KNOT_EOK; +} + +typedef struct { + struct rcu_head rcuhead; + zone_timers_t *timers; +} zone_timers_cleanup_t; + +static void timers_cleanup(struct rcu_head *head) +{ + zone_timers_cleanup_t *cleanup = (zone_timers_cleanup_t *)head; + free(cleanup->timers); + free(cleanup); +} + +void zone_timers_commit(zone_t *zone) +{ + if (zone->timers_static == zone->timers) { + return; + } + + zone_timers_t *old_static = rcu_xchg_pointer(&zone->timers_static, zone->timers); + + zone_timers_cleanup_t *cleanup = calloc(1, sizeof(*cleanup)); + if (cleanup != NULL) { + cleanup->timers = old_static; + call_rcu((struct rcu_head *)cleanup, timers_cleanup); + } +} + static int try_remote(conf_t *conf, zone_t *zone, zone_master_cb callback, void *callback_data, const char *err_str, const char *remote_id, conf_val_t *remote, zone_master_fallback_t *fallback, @@ -925,8 +965,12 @@ int zone_get_master_serial(zone_t *zone, uint32_t *serial) void zone_set_lastsigned_serial(zone_t *zone, uint32_t serial) { + bool extra_txn = (zone->control_update != NULL && zone->timers == zone->timers_static && zone_timers_begin(zone) == KNOT_EOK); // zone_update_commit() is not within a zone event in case of control_update zone->timers->last_signed_serial = serial; zone->timers->last_signed_s_flags = LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID; + if (extra_txn) { + zone_timers_commit(zone); + } } int zone_get_lastsigned_serial(zone_t *zone, uint32_t *serial) diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 28788e2fc2..d177c0a864 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -100,8 +100,9 @@ typedef struct zone } zonefile; /*! \brief Zone events. */ - zone_timers_t *timers; //!< Persistent zone timers. - zone_events_t events; //!< Zone events timers. + zone_timers_t *timers; //!< Persistent zone timers. + zone_timers_t *timers_static; //!< An instance of zone_timers structure which is safe to read from anywhere under rcu_read_lock. + zone_events_t events; //!< Zone events timers. /*! \brief Track unsuccessful NOTIFY targets. */ notifailed_rmt_dynarray_t notifailed; @@ -285,6 +286,9 @@ bool zone_expired(const zone_t *zone); */ void zone_timers_sanitize(conf_t *conf, zone_t *zone); +int zone_timers_begin(zone_t *zone); +void zone_timers_commit(zone_t *zone); + typedef struct { bool address; //!< Fallback to next remote address is required. bool remote; //!< Fallback to next remote server is required. diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 933a2cb207..91d137b9ff 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -220,14 +220,18 @@ static zone_t *create_zone(conf_t *conf, const knot_dname_t *name, server_t *ser static void zone_purge(conf_t *conf, zone_t *zone) { + zone_timers_begin(zone); (void)selective_zone_purge(conf, zone, PURGE_ZONE_ALL); + zone_timers_commit(zone); } static zone_contents_t *zone_expire(zone_t *zone, bool zonedb_cow) { if (!zonedb_cow) { + zone_timers_begin(zone); zone->timers->next_expire = time(NULL); zone->timers->next_refresh = zone->timers->next_expire; + zone_timers_commit(zone); } return zone_switch_contents(zone, NULL); } From 0df86d0039618ea367f322c7d9cae6ca293934b6 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 4 Nov 2025 08:45:35 +0100 Subject: [PATCH 234/675] zone/timers: remove compatibility for obsoleted in 3.2.0 --- src/knot/zone/timers.c | 10 ---------- src/knot/zone/timers.h | 2 -- src/knot/zone/zone.c | 1 - 3 files changed, 13 deletions(-) diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index e1942fd061..408db5e6a5 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -38,9 +38,7 @@ */ enum timer_id { TIMER_INVALID = 0, - TIMER_SOA_EXPIRE = 0x80, // DEPRECATED TIMER_LAST_FLUSH = 0x81, - TIMER_LAST_REFRESH = 0x82, // DEPRECATED TIMER_NEXT_REFRESH = 0x83, TIMER_NEXT_DS_CHECK = 0x85, TIMER_NEXT_DS_PUSH = 0x86, @@ -78,9 +76,7 @@ static int deserialize_timers(zone_timers_t *timers_ptr, } uint64_t value = wire_ctx_read_u64(&wire); switch (id) { - case TIMER_SOA_EXPIRE: timers.soa_expire = value; break; case TIMER_LAST_FLUSH: timers.last_flush = value; break; - case TIMER_LAST_REFRESH: timers.last_refresh = value; break; case TIMER_NEXT_REFRESH: timers.next_refresh = value; break; case TIMER_LAST_REFR_OK: timers.last_refresh_ok = value; break; case TIMER_LAST_NOTIFIED: timers.last_notified_serial = value; break; @@ -174,12 +170,6 @@ int zone_timers_read(knot_lmdb_db_t *db, const knot_dname_t *zone, } knot_lmdb_abort(&txn); - // backward compatibility - // For catalog zones, next_expire is cleaned up later by zone_timers_sanitize(). - if (timers->next_expire == 0 && timers->last_refresh > 0) { - timers->next_expire = timers->last_refresh + timers->soa_expire; - } - return txn.ret; } diff --git a/src/knot/zone/timers.h b/src/knot/zone/timers.h index 293781039b..3885431d91 100644 --- a/src/knot/zone/timers.h +++ b/src/knot/zone/timers.h @@ -20,9 +20,7 @@ * \brief Persistent zone timers. */ struct zone_timers { - uint32_t soa_expire; //!< SOA expire value. DEPRECATED time_t last_flush; //!< Last zone file synchronization. - time_t last_refresh; //!< Last successful zone refresh attempt. DEPRECATED time_t next_refresh; //!< Next zone refresh attempt. uint32_t last_signed_serial; //!< SOA serial of last signed zone version. uint8_t last_signed_s_flags; //!< If last signed serial detected and valid; diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 10f905978f..9e200cf779 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -694,7 +694,6 @@ void zone_timers_sanitize(conf_t *conf, zone_t *zone) } } else { // invalidate if we don't have a master - zone->timers->last_refresh = 0; zone->timers->next_refresh = 0; zone->timers->last_refresh_ok = false; zone->timers->next_expire = 0; From 106ac64764bf02171b339590649f87e6ec9b8090 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 13 Nov 2025 18:15:17 +0100 Subject: [PATCH 235/675] zone/timers: refactoring: unify flags --- src/knot/events/handlers/notify.c | 3 ++- src/knot/events/handlers/refresh.c | 4 ++-- src/knot/events/replan.c | 2 +- src/knot/zone/timers.c | 30 +++++++++++++++++++++--------- src/knot/zone/timers.h | 12 ++++++------ src/knot/zone/zone.c | 8 ++++---- tests/knot/test_zone_timers.c | 10 ++++------ 7 files changed, 40 insertions(+), 29 deletions(-) diff --git a/src/knot/events/handlers/notify.c b/src/knot/events/handlers/notify.c index b8a54232ce..1cb788cb53 100644 --- a/src/knot/events/handlers/notify.c +++ b/src/knot/events/handlers/notify.c @@ -111,7 +111,8 @@ static int send_notify(conf_t *conf, zone_t *zone, const knot_rrset_t *soa, NOTIFY_OUT_LOG(LOG_INFO, zone->name, slave, requestor.layer.flags, "%sserial %u", log_retry, knot_soa_serial(soa->rrs.rdata)); - zone->timers->last_notified_serial = (knot_soa_serial(soa->rrs.rdata) | LAST_NOTIFIED_SERIAL_VALID); + zone->timers->last_notified_serial = knot_soa_serial(soa->rrs.rdata); + zone->timers->flags |= LAST_NOTIFIED_SERIAL_VALID; } else if (knot_pkt_ext_rcode(req->resp) == 0) { NOTIFY_OUT_LOG(LOG_WARNING, zone->name, slave, requestor.layer.flags, diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 5c0b34bfb3..fc5f2fbf19 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -219,7 +219,7 @@ static void finalize_timers_base(struct refresh_data *data, bool also_expire) limit_timer(conf, zone->name, &soa_refresh, "refresh", C_REFRESH_MIN_INTERVAL, C_REFRESH_MAX_INTERVAL); zone->timers->next_refresh = now + soa_refresh; - zone->timers->last_refresh_ok = true; + zone->timers->flags |= LAST_REFRESH_OK; if (zone->is_catalog_flag) { // It's already zero in most cases. @@ -1506,7 +1506,7 @@ int event_refresh(conf_t *conf, zone_t *zone) C_RETRY_MIN_INTERVAL, C_RETRY_MAX_INTERVAL); time_t now = time(NULL); zone->timers->next_refresh = now + next; - zone->timers->last_refresh_ok = false; + zone->timers->flags &= ~LAST_REFRESH_OK; char time_str[64] = { 0 }; struct tm time_gm = { 0 }; diff --git a/src/knot/events/replan.c b/src/knot/events/replan.c index 203ad4db12..5c3ddbcf77 100644 --- a/src/knot/events/replan.c +++ b/src/knot/events/replan.c @@ -95,7 +95,7 @@ void replan_from_timers(conf_t *conf, zone_t *zone) time_t refresh = TIME_CANCEL; if (zone_is_slave(conf, zone)) { refresh = zone->timers->next_refresh; - if (zone->contents == NULL && zone->timers->last_refresh_ok) { // zone disappeared w/o expiry + if (zone->contents == NULL && (zone->timers->flags & LAST_REFRESH_OK)) { // zone disappeared w/o expiry refresh = now; } if (refresh == 0) { // sanitize in case of concurrent purge event diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index 408db5e6a5..4e591ee968 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -53,6 +53,15 @@ enum timer_id { #define TIMER_SIZE (sizeof(uint8_t) + sizeof(uint64_t)) +inline static void set_flag(zone_timers_t *t, uint32_t flag, uint32_t on) +{ + if (on) { + t->flags |= flag; + } else { + t->flags &= ~flag; + } +} + /*! * \brief Deserialize timers from a binary buffer. * @@ -78,8 +87,11 @@ static int deserialize_timers(zone_timers_t *timers_ptr, switch (id) { case TIMER_LAST_FLUSH: timers.last_flush = value; break; case TIMER_NEXT_REFRESH: timers.next_refresh = value; break; - case TIMER_LAST_REFR_OK: timers.last_refresh_ok = value; break; - case TIMER_LAST_NOTIFIED: timers.last_notified_serial = value; break; + case TIMER_LAST_REFR_OK: set_flag(&timers, LAST_REFRESH_OK, value); break; + case TIMER_LAST_NOTIFIED: + timers.last_notified_serial = (value & 0xffffffffLLU); + set_flag(&timers, LAST_NOTIFIED_SERIAL_VALID, (value >> 32)); + break; case TIMER_NEXT_DS_CHECK: timers.next_ds_check = value; break; case TIMER_NEXT_DS_PUSH: timers.next_ds_push = value; break; case TIMER_CATALOG_MEMBER: timers.catalog_member = value; break; @@ -87,8 +99,8 @@ static int deserialize_timers(zone_timers_t *timers_ptr, case TIMER_MASTER_PIN_HIT: timers.master_pin_hit = value; break; case TIMER_LAST_SIGNED: timers.last_signed_serial = (value & 0xffffffffLLU); - timers.last_signed_s_flags = LAST_SIGNED_SERIAL_FOUND; - timers.last_signed_s_flags |= (value >> 32) & LAST_SIGNED_SERIAL_VALID; + timers.flags |= LAST_SIGNED_SERIAL_FOUND; + set_flag(&timers, LAST_SIGNED_SERIAL_VALID, (value >> 32)); break; default: break; // ignore } @@ -116,13 +128,13 @@ static void txn_write_timers(knot_lmdb_txn_t *txn, const knot_dname_t *zone, MDB_val v = knot_lmdb_make_key(format, TIMER_LAST_FLUSH, (uint64_t)timers->last_flush, TIMER_NEXT_REFRESH, (uint64_t)timers->next_refresh, - TIMER_LAST_REFR_OK, (uint64_t)timers->last_refresh_ok, - TIMER_LAST_NOTIFIED, timers->last_notified_serial, + TIMER_LAST_REFR_OK, (uint64_t)(bool)(timers->flags & LAST_REFRESH_OK), + TIMER_LAST_NOTIFIED, (uint64_t)timers->last_notified_serial | (((uint64_t)(bool)(timers->flags & LAST_NOTIFIED_SERIAL_VALID)) << 32), TIMER_NEXT_DS_CHECK, (uint64_t)timers->next_ds_check, TIMER_NEXT_DS_PUSH, (uint64_t)timers->next_ds_push, TIMER_CATALOG_MEMBER,(uint64_t)timers->catalog_member, TIMER_NEXT_EXPIRE, (uint64_t)timers->next_expire, - TIMER_LAST_SIGNED, (uint64_t)timers->last_signed_serial | (((uint64_t)timers->last_signed_s_flags) << 32), + TIMER_LAST_SIGNED, (uint64_t)timers->last_signed_serial | (((uint64_t)(bool)(timers->flags & LAST_SIGNED_SERIAL_VALID)) << 32), TIMER_MASTER_PIN_HIT,(uint64_t)timers->master_pin_hit, // those items should be last two TIMER_LAST_MASTER, &timers->last_master, sizeof(timers->last_master)); knot_lmdb_insert(txn, &k, &v); @@ -227,6 +239,6 @@ int zone_timers_sweep(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) bool zone_timers_serial_notified(const zone_timers_t *timers, uint32_t serial) { - return (timers->last_notified_serial & LAST_NOTIFIED_SERIAL_VALID) && - ((uint32_t)timers->last_notified_serial == serial); + return (timers->flags & LAST_NOTIFIED_SERIAL_VALID) && + (timers->last_notified_serial == serial); } diff --git a/src/knot/zone/timers.h b/src/knot/zone/timers.h index 3885431d91..17bf72e306 100644 --- a/src/knot/zone/timers.h +++ b/src/knot/zone/timers.h @@ -12,20 +12,20 @@ #include "libknot/dname.h" #include "knot/journal/knot_lmdb.h" -#define LAST_NOTIFIED_SERIAL_VALID (1LLU << 32) -#define LAST_SIGNED_SERIAL_FOUND (1 << 0) -#define LAST_SIGNED_SERIAL_VALID (1 << 1) +#define LAST_SIGNED_SERIAL_FOUND (1 << 1) +#define LAST_SIGNED_SERIAL_VALID (1 << 2) +#define LAST_NOTIFIED_SERIAL_VALID (1 << 3) +#define LAST_REFRESH_OK (1 << 4) /*! * \brief Persistent zone timers. */ struct zone_timers { + uint32_t flags; //!< Various flags. time_t last_flush; //!< Last zone file synchronization. time_t next_refresh; //!< Next zone refresh attempt. uint32_t last_signed_serial; //!< SOA serial of last signed zone version. - uint8_t last_signed_s_flags; //!< If last signed serial detected and valid; - bool last_refresh_ok; //!< Last zone refresh attempt was successful. - uint64_t last_notified_serial; //!< SOA serial of last successful NOTIFY; (1<<32) if none. + uint32_t last_notified_serial; //!< SOA serial of last successful NOTIFY. time_t next_ds_check; //!< Next parent DS check. time_t next_ds_push; //!< Next DDNS to parent zone with updated DS record. time_t catalog_member; //!< This catalog member zone created. diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 9e200cf779..3312483af4 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -695,7 +695,7 @@ void zone_timers_sanitize(conf_t *conf, zone_t *zone) } else { // invalidate if we don't have a master zone->timers->next_refresh = 0; - zone->timers->last_refresh_ok = false; + zone->timers->flags &= ~LAST_REFRESH_OK; zone->timers->next_expire = 0; } } @@ -966,7 +966,7 @@ void zone_set_lastsigned_serial(zone_t *zone, uint32_t serial) { bool extra_txn = (zone->control_update != NULL && zone->timers == zone->timers_static && zone_timers_begin(zone) == KNOT_EOK); // zone_update_commit() is not within a zone event in case of control_update zone->timers->last_signed_serial = serial; - zone->timers->last_signed_s_flags = LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID; + zone->timers->flags |= LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID; if (extra_txn) { zone_timers_commit(zone); } @@ -974,11 +974,11 @@ void zone_set_lastsigned_serial(zone_t *zone, uint32_t serial) int zone_get_lastsigned_serial(zone_t *zone, uint32_t *serial) { - if (!(zone->timers->last_signed_s_flags & LAST_SIGNED_SERIAL_FOUND)) { + if (!(zone->timers->flags & LAST_SIGNED_SERIAL_FOUND)) { // backwards compatibility: it used to be stored in KASP DB, moved to timers for performance return kasp_db_load_serial(zone_kaspdb(zone), zone->name, KASPDB_SERIAL_LASTSIGNED, serial); } - if (!(zone->timers->last_signed_s_flags & LAST_SIGNED_SERIAL_VALID)) { + if (!(zone->timers->flags & LAST_SIGNED_SERIAL_VALID)) { return KNOT_ENOENT; } *serial = zone->timers->last_signed_serial; diff --git a/tests/knot/test_zone_timers.c b/tests/knot/test_zone_timers.c index 80878776d0..6fcddc18b2 100644 --- a/tests/knot/test_zone_timers.c +++ b/tests/knot/test_zone_timers.c @@ -15,9 +15,9 @@ #include "libknot/error.h" static const zone_timers_t MOCK_TIMERS = { + .flags = LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID, .last_flush = 1474559960, .next_refresh = 1474559961, - .last_refresh_ok = true, .last_notified_serial = 123456, .next_ds_check = 1474559962, .next_ds_push = 1474559963, @@ -26,15 +26,14 @@ static const zone_timers_t MOCK_TIMERS = { .last_master = { .sin6_family = AF_INET, .sin6_port = 53 }, .master_pin_hit = 1474559966, .last_signed_serial = 12354678, - .last_signed_s_flags = LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID, }; static bool timers_eq(const zone_timers_t *val, const zone_timers_t *ref) { return val->last_flush == ref->last_flush && + val->flags == ref->flags && val->next_refresh == ref->next_refresh && - val->last_refresh_ok == ref->last_refresh_ok && - val->last_notified_serial == ref->last_notified_serial && + (val->last_notified_serial == ref->last_notified_serial || !(val->flags & LAST_NOTIFIED_SERIAL_VALID)) && val->next_ds_check == ref->next_ds_check && val->next_ds_push == ref->next_ds_push && val->catalog_member == ref->catalog_member && @@ -42,8 +41,7 @@ static bool timers_eq(const zone_timers_t *val, const zone_timers_t *ref) sockaddr_cmp((struct sockaddr_storage *)&val->last_master, (struct sockaddr_storage *)&ref->last_master, false) == 0 && val->master_pin_hit == ref->master_pin_hit && - (val->last_signed_s_flags & LAST_SIGNED_SERIAL_VALID) == (ref->last_signed_s_flags & LAST_SIGNED_SERIAL_VALID) && - (val->last_signed_serial == ref->last_signed_serial || !(val->last_signed_s_flags & LAST_SIGNED_SERIAL_VALID)); + (val->last_signed_serial == ref->last_signed_serial || !(val->flags & LAST_SIGNED_SERIAL_VALID)); } static bool keep_all(const knot_dname_t *zone, void *data) From 9cff75c48b0a9c9fa52c62384f1bc097db09de10 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 14 Nov 2025 09:02:51 +0100 Subject: [PATCH 236/675] zone/timers: only write to timerDB if modified --- src/knot/dnssec/zone-sign.c | 1 + src/knot/events/handlers/dnssec.c | 1 + src/knot/events/handlers/ds_check.c | 2 ++ src/knot/events/handlers/ds_push.c | 1 + src/knot/events/handlers/notify.c | 2 +- src/knot/events/handlers/refresh.c | 4 +++- src/knot/zone/backup.c | 1 + src/knot/zone/timers.c | 13 ++++++++++--- src/knot/zone/timers.h | 3 ++- src/knot/zone/zone.c | 11 ++++++++++- src/knot/zone/zonedb-load.c | 2 ++ tests/knot/test_zone_timers.c | 13 ++++++------- 12 files changed, 40 insertions(+), 14 deletions(-) diff --git a/src/knot/dnssec/zone-sign.c b/src/knot/dnssec/zone-sign.c index 856c089cf6..7308ec4f9d 100644 --- a/src/knot/dnssec/zone-sign.c +++ b/src/knot/dnssec/zone-sign.c @@ -887,6 +887,7 @@ int knot_zone_sign_update_dnskeys(zone_update_t *update, if (dnssec_ctx->policy->ds_push && node_rrtype_exists(ch.add->apex, KNOT_RRTYPE_CDS)) { // there is indeed a change to CDS update->zone->timers->next_ds_push = time(NULL) + dnssec_ctx->policy->propagation_delay; + update->zone->timers->flags |= TIMERS_MODIFIED; zone_events_schedule_at(update->zone, ZONE_EVENT_DS_PUSH, update->zone->timers->next_ds_push); } diff --git a/src/knot/events/handlers/dnssec.c b/src/knot/events/handlers/dnssec.c index 0150bdd3b6..d0367a76a6 100644 --- a/src/knot/events/handlers/dnssec.c +++ b/src/knot/events/handlers/dnssec.c @@ -41,6 +41,7 @@ void event_dnssec_reschedule(conf_t *conf, zone_t *zone, if (refresh->plan_ds_check) { zone->timers->next_ds_check = now; + zone->timers->flags |= TIMERS_MODIFIED; } unsigned jitter = dnskey_sync_jitter(conf, zone); diff --git a/src/knot/events/handlers/ds_check.c b/src/knot/events/handlers/ds_check.c index f4f8cae2b3..eaf44f5b9e 100644 --- a/src/knot/events/handlers/ds_check.c +++ b/src/knot/events/handlers/ds_check.c @@ -25,6 +25,8 @@ int event_ds_check(conf_t *conf, zone_t *zone) conf->cache.srv_tcp_remote_io_timeout); zone->timers->next_ds_check = 0; + zone->timers->flags |= TIMERS_MODIFIED; + switch (ret) { case KNOT_NO_READY_KEY: break; diff --git a/src/knot/events/handlers/ds_push.c b/src/knot/events/handlers/ds_push.c index deb6392050..1f59d2fddc 100644 --- a/src/knot/events/handlers/ds_push.c +++ b/src/knot/events/handlers/ds_push.c @@ -249,6 +249,7 @@ int event_ds_push(conf_t *conf, zone_t *zone) zone_events_schedule_at(zone, ZONE_EVENT_DS_PUSH, next_push); zone->timers->next_ds_push = next_push; } + zone->timers->flags |= TIMERS_MODIFIED; conf_mix_iter_next(&iter); } diff --git a/src/knot/events/handlers/notify.c b/src/knot/events/handlers/notify.c index 1cb788cb53..7728dc23a0 100644 --- a/src/knot/events/handlers/notify.c +++ b/src/knot/events/handlers/notify.c @@ -112,7 +112,7 @@ static int send_notify(conf_t *conf, zone_t *zone, const knot_rrset_t *soa, requestor.layer.flags, "%sserial %u", log_retry, knot_soa_serial(soa->rrs.rdata)); zone->timers->last_notified_serial = knot_soa_serial(soa->rrs.rdata); - zone->timers->flags |= LAST_NOTIFIED_SERIAL_VALID; + zone->timers->flags |= LAST_NOTIFIED_SERIAL_VALID | TIMERS_MODIFIED; } else if (knot_pkt_ext_rcode(req->resp) == 0) { NOTIFY_OUT_LOG(LOG_WARNING, zone->name, slave, requestor.layer.flags, diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index fc5f2fbf19..46f7834564 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -219,7 +219,7 @@ static void finalize_timers_base(struct refresh_data *data, bool also_expire) limit_timer(conf, zone->name, &soa_refresh, "refresh", C_REFRESH_MIN_INTERVAL, C_REFRESH_MAX_INTERVAL); zone->timers->next_refresh = now + soa_refresh; - zone->timers->flags |= LAST_REFRESH_OK; + zone->timers->flags |= LAST_REFRESH_OK | TIMERS_MODIFIED; if (zone->is_catalog_flag) { // It's already zero in most cases. @@ -1083,6 +1083,7 @@ static bool wait4pinned_master(struct refresh_data *data) // Starting countdown for master transition. if (data->zone->timers->master_pin_hit == 0) { data->zone->timers->master_pin_hit = now; + data->zone->timers->flags |= TIMERS_MODIFIED; zone_events_schedule_at(data->zone, ZONE_EVENT_REFRESH, now + data->fallback->pin_tol); // Switch to a new master. } else if (data->zone->timers->master_pin_hit + data->fallback->pin_tol <= now) { @@ -1507,6 +1508,7 @@ int event_refresh(conf_t *conf, zone_t *zone) time_t now = time(NULL); zone->timers->next_refresh = now + next; zone->timers->flags &= ~LAST_REFRESH_OK; + zone->timers->flags |= TIMERS_MODIFIED; char time_str[64] = { 0 }; struct tm time_gm = { 0 }; diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index 8ffe1441cb..73ec28c50f 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -498,6 +498,7 @@ int zone_backup(conf_t *conf, zone_t *zone) zone_timers_sanitize(conf, zone); zone->zonefile.bootstrap_cnt = 0; } else { + zone->timers->flags |= TIMERS_MODIFIED; // otherwise the write is skipped! ret = zone_timers_write(&ctx->bck_timer_db, zone->name, zone->timers); } if (ret != KNOT_EOK) { diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index 4e591ee968..e920f11d12 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -117,8 +117,11 @@ static int deserialize_timers(zone_timers_t *timers_ptr, } static void txn_write_timers(knot_lmdb_txn_t *txn, const knot_dname_t *zone, - const zone_timers_t *timers) + zone_timers_t *timers) { + if (!(timers->flags & TIMERS_MODIFIED)) { // TODO move this conditional to txn_zone_write, as it is also in zone_timers_write. Here temporarily to avoid git conflicts. + return; + } const char *format = (timers->last_master.sin6_family == AF_INET || timers->last_master.sin6_family == AF_INET6) ? "TTTTTTTTTTBD" : @@ -139,6 +142,10 @@ static void txn_write_timers(knot_lmdb_txn_t *txn, const knot_dname_t *zone, TIMER_LAST_MASTER, &timers->last_master, sizeof(timers->last_master)); knot_lmdb_insert(txn, &k, &v); free(v.mv_data); + + if (txn->ret == KNOT_EOK) { + timers->flags &= ~TIMERS_MODIFIED; + } } @@ -186,10 +193,10 @@ int zone_timers_read(knot_lmdb_db_t *db, const knot_dname_t *zone, } int zone_timers_write(knot_lmdb_db_t *db, const knot_dname_t *zone, - const zone_timers_t *timers) + zone_timers_t *timers) { int ret = knot_lmdb_open(db); - if (ret != KNOT_EOK) { + if (ret != KNOT_EOK || !(timers->flags & TIMERS_MODIFIED)) { return ret; } knot_lmdb_txn_t txn = { 0 }; diff --git a/src/knot/zone/timers.h b/src/knot/zone/timers.h index 17bf72e306..e992c9fde9 100644 --- a/src/knot/zone/timers.h +++ b/src/knot/zone/timers.h @@ -12,6 +12,7 @@ #include "libknot/dname.h" #include "knot/journal/knot_lmdb.h" +#define TIMERS_MODIFIED (1 << 0) #define LAST_SIGNED_SERIAL_FOUND (1 << 1) #define LAST_SIGNED_SERIAL_VALID (1 << 2) #define LAST_NOTIFIED_SERIAL_VALID (1 << 3) @@ -64,7 +65,7 @@ int zone_timers_read(knot_lmdb_db_t *db, const knot_dname_t *zone, * \return KNOT_E* */ int zone_timers_write(knot_lmdb_db_t *db, const knot_dname_t *zone, - const zone_timers_t *timers); + zone_timers_t *timers); /*! * \brief Write timers for all zones. diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 3312483af4..01e03f83d5 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -141,6 +141,7 @@ static int flush_journal(conf_t *conf, zone_t *zone, bool allow_empty_zone, bool flush_journal_replan: /* Plan next journal flush after proper period. */ zone->timers->last_flush = time(NULL); + zone->timers->flags |= TIMERS_MODIFIED; if (sync_timeout > 0) { time_t next_flush = zone->timers->last_flush + sync_timeout; zone_events_schedule_at(zone, ZONE_EVENT_FLUSH, (time_t)0, @@ -309,6 +310,7 @@ int selective_zone_purge(conf_t *conf, zone_t *zone, purge_flag_t params) time_t member = (zone->catalog_gen != NULL ? zone->timers->catalog_member : 0); memset(zone->timers, 0, sizeof(*zone->timers)); zone->timers->catalog_member = member; + zone->timers->flags |= TIMERS_MODIFIED; if (member) { ret = zone_timers_write(&zone->server->timerdb, zone->name, @@ -390,6 +392,7 @@ void zone_perform_expire(conf_t *conf, zone_t *zone) zone->timers->next_expire = time(NULL); zone->timers->next_refresh = zone->timers->next_expire; + zone->timers->flags |= TIMERS_MODIFIED; replan_from_timers(conf, zone); } @@ -599,6 +602,7 @@ void zone_set_last_master(zone_t *zone, const struct sockaddr_storage *addr) memcpy(&zone->timers->last_master, addr, sizeof(zone->timers->last_master)); } zone->timers->master_pin_hit = 0; + zone->timers->flags |= TIMERS_MODIFIED; } static void set_flag(zone_t *zone, zone_flag_t flag, bool remove) @@ -682,6 +686,7 @@ void zone_timers_sanitize(conf_t *conf, zone_t *zone) assert(zone); time_t now = time(NULL); + zone_timers_t prev = *zone->timers; // assume now if we don't know when we flushed time_set_default(&zone->timers->last_flush, now); @@ -698,6 +703,10 @@ void zone_timers_sanitize(conf_t *conf, zone_t *zone) zone->timers->flags &= ~LAST_REFRESH_OK; zone->timers->next_expire = 0; } + + if (memcmp(&prev, zone->timers, sizeof(prev)) != 0) { + zone->timers->flags |= TIMERS_MODIFIED; + } } int zone_timers_begin(zone_t *zone) @@ -966,7 +975,7 @@ void zone_set_lastsigned_serial(zone_t *zone, uint32_t serial) { bool extra_txn = (zone->control_update != NULL && zone->timers == zone->timers_static && zone_timers_begin(zone) == KNOT_EOK); // zone_update_commit() is not within a zone event in case of control_update zone->timers->last_signed_serial = serial; - zone->timers->flags |= LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID; + zone->timers->flags |= LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID | TIMERS_MODIFIED; if (extra_txn) { zone_timers_commit(zone); } diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 91d137b9ff..d00f76cb35 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -146,6 +146,7 @@ static zone_t *create_zone_new(conf_t *conf, const knot_dname_t *name, zone->catalog_gen = knot_dname_copy(conf_dname(&catz), NULL); if (zone->timers->catalog_member == 0) { zone->timers->catalog_member = time(NULL); + zone->timers->flags |= TIMERS_MODIFIED; ret = zone_timers_write(&zone->server->timerdb, zone->name, zone->timers); } @@ -231,6 +232,7 @@ static zone_contents_t *zone_expire(zone_t *zone, bool zonedb_cow) zone_timers_begin(zone); zone->timers->next_expire = time(NULL); zone->timers->next_refresh = zone->timers->next_expire; + zone->timers->flags |= TIMERS_MODIFIED; zone_timers_commit(zone); } return zone_switch_contents(zone, NULL); diff --git a/tests/knot/test_zone_timers.c b/tests/knot/test_zone_timers.c index 6fcddc18b2..e0d93f4ce0 100644 --- a/tests/knot/test_zone_timers.c +++ b/tests/knot/test_zone_timers.c @@ -15,7 +15,7 @@ #include "libknot/error.h" static const zone_timers_t MOCK_TIMERS = { - .flags = LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID, + .flags = LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID | TIMERS_MODIFIED, .last_flush = 1474559960, .next_refresh = 1474559961, .last_notified_serial = 123456, @@ -65,7 +65,7 @@ int main(int argc, char *argv[]) } const knot_dname_t *zone = (uint8_t *)"\x7""example""\x3""com"; - struct zone_timers timers = MOCK_TIMERS; + struct zone_timers timers = MOCK_TIMERS, timers2 = { 0 }; // Create database knot_lmdb_db_t _db = { 0 }, *db = &_db; @@ -82,21 +82,20 @@ int main(int argc, char *argv[]) is_int(KNOT_EOK, ret, "zone_timers_write()"); // Read timers - memset(&timers, 0, sizeof(timers)); - ret = zone_timers_read(db, zone, &timers); + ret = zone_timers_read(db, zone, &timers2); ok(ret == KNOT_EOK, "zone_timers_read()"); - ok(timers_eq(&timers, &MOCK_TIMERS), "inconsistent timers"); + ok(timers_eq(&timers2, &timers), "inconsistent timers"); // Sweep none ret = zone_timers_sweep(db, keep_all, NULL); is_int(KNOT_EOK, ret, "zone_timers_sweep() none"); - ret = zone_timers_read(db, zone, &timers); + ret = zone_timers_read(db, zone, &timers2); is_int(KNOT_EOK, ret, "zone_timers_read()"); // Sweep all ret = zone_timers_sweep(db, remove_all, NULL); is_int(KNOT_EOK, ret, "zone_timers_sweep() all"); - ret = zone_timers_read(db, zone, &timers); + ret = zone_timers_read(db, zone, &timers2); is_int(KNOT_ENOENT, ret, "zone_timers_read() nonexistent"); // Clean up. From d5c05c4c2c1a3f8ebe8d2b11c0b60f0058316398 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 20 Nov 2025 14:43:09 +0100 Subject: [PATCH 237/675] yp: add new type for mixed integer with options --- distro/pkg/deb/libknot16.symbols | 2 + src/knot/conf/base.c | 3 ++ src/knot/conf/conf.c | 4 +- src/knot/nameserver/query_module.c | 3 ++ src/libknot/yparser/ypschema.h | 4 ++ src/libknot/yparser/yptrafo.c | 61 +++++++++++++++++++++++++++--- src/libknot/yparser/yptrafo.h | 20 +++++++++- tests/libknot/test_ypschema.c | 10 ++++- tests/libknot/test_yptrafo.c | 37 ++++++++++++++++++ 9 files changed, 134 insertions(+), 10 deletions(-) diff --git a/distro/pkg/deb/libknot16.symbols b/distro/pkg/deb/libknot16.symbols index 0e02587b7e..cd0f9f5162 100644 --- a/distro/pkg/deb/libknot16.symbols +++ b/distro/pkg/deb/libknot16.symbols @@ -376,6 +376,8 @@ libknot.so.16 libknot16 #MINVER# yp_int_to_txt@Base 3.5.0 yp_item_to_bin@Base 3.5.0 yp_item_to_txt@Base 3.5.0 + yp_optint_to_bin@Base 3.5.2 + yp_optint_to_txt@Base 3.5.2 yp_option_to_bin@Base 3.5.0 yp_option_to_txt@Base 3.5.0 yp_parse@Base 3.5.0 diff --git a/src/knot/conf/base.c b/src/knot/conf/base.c index b3f0fe0b76..23fa1433ba 100644 --- a/src/knot/conf/base.c +++ b/src/knot/conf/base.c @@ -1171,6 +1171,9 @@ static void export_type(jsonw_t *w, const yp_item_t *item) jsonw_str(w, "type", "string"); ); break; + case YP_TOPTINT: + // TODO + break; default: assert(0); break; diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index 38250616b0..fe20b00026 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -605,8 +605,10 @@ int64_t conf_int_alt( { assert(val != NULL && val->item != NULL); assert(val->item->type == YP_TINT || + val->item->type == YP_TOPTINT || (val->item->type == YP_TREF && - val->item->var.r.ref->var.g.id->type == YP_TINT)); + (val->item->var.r.ref->var.g.id->type == YP_TINT || + val->item->var.r.ref->var.g.id->type == YP_TOPTINT))); if (val->code == KNOT_EOK) { conf_val(val); diff --git a/src/knot/nameserver/query_module.c b/src/knot/nameserver/query_module.c index 0872e2523d..8d7c4af2de 100644 --- a/src/knot/nameserver/query_module.c +++ b/src/knot/nameserver/query_module.c @@ -473,6 +473,9 @@ static void set_val(yp_type_t type, knotd_conf_val_t *item, conf_val_t *val) case YP_TDATA: item->data = conf_data(val, &item->data_len); break; + case YP_TOPTINT: + item->integer = conf_int(val); + break; default: return; } diff --git a/src/libknot/yparser/ypschema.h b/src/libknot/yparser/ypschema.h index 6e2b9f70c9..3be4eb0483 100644 --- a/src/libknot/yparser/ypschema.h +++ b/src/libknot/yparser/ypschema.h @@ -52,6 +52,7 @@ struct wire_ctx; #define YP_VDATA .var.d #define YP_VREF .var.r #define YP_VGRP .var.g +#define YP_VOPTINT .var.i /*! Schema item name is a char string with a leading byte (string length). */ typedef char yp_name_t; @@ -71,6 +72,7 @@ typedef enum { YP_TDATA, /*!< Customized data. */ YP_TREF, /*!< Reference to another item. */ YP_TGRP, /*!< Group of sub-items. */ + YP_TOPTINT, /*!< Option from the list or integer. */ } yp_type_t; /*! Schema item flags. */ @@ -121,6 +123,8 @@ typedef union { yp_style_t unit; /*! Alternative default value. */ int64_t dflt_alt; + /*! List of options if OPTINT. */ + struct knot_lookup const *opts; } i; /*! Boolean variables. */ struct { diff --git a/src/libknot/yparser/yptrafo.c b/src/libknot/yparser/yptrafo.c index 0550f7d962..30321164f3 100644 --- a/src/libknot/yparser/yptrafo.c +++ b/src/libknot/yparser/yptrafo.c @@ -724,14 +724,19 @@ int yp_addr_range_to_txt( _public_ int yp_option_to_bin( YP_TXT_BIN_PARAMS, - const knot_lookup_t *opts) + const knot_lookup_t *opts, + bool extended) { YP_CHECK_PARAMS_BIN; while (opts->name != NULL) { if (YP_LEN == strlen(opts->name) && strncasecmp((char *)in->position, opts->name, YP_LEN) == 0) { - wire_ctx_write_u8(out, opts->id); + if (extended) { + wire_ctx_write_u64(out, opts->id); + } else { + wire_ctx_write_u8(out, opts->id); + } wire_ctx_skip(in, YP_LEN); YP_CHECK_RET; } @@ -744,9 +749,10 @@ int yp_option_to_bin( _public_ int yp_option_to_txt( YP_BIN_TXT_PARAMS, - const knot_lookup_t *opts) + const knot_lookup_t *opts, + bool extended) { - uint8_t id = wire_ctx_read_u8(in); + int64_t id = extended ? wire_ctx_read_u64(in) : wire_ctx_read_u8(in); while (opts->name != NULL) { if (id == opts->id) { @@ -955,6 +961,41 @@ int yp_base64_to_txt( YP_CHECK_RET; } +_public_ +int yp_optint_to_bin( + YP_TXT_BIN_PARAMS, + int64_t min, + int64_t max, + const knot_lookup_t *opts, + yp_style_t style) +{ + YP_CHECK_PARAMS_BIN; + + const char first = *in->position; + if (is_digit(first) || first == '-') { + return yp_int_to_bin(in, out, stop, min, max, style); + } else { + return yp_option_to_bin(in, out, stop, opts, true); + } +} + +_public_ +int yp_optint_to_txt( + YP_BIN_TXT_PARAMS, + const knot_lookup_t *opts, + yp_style_t style) +{ + YP_CHECK_PARAMS_TXT; + + size_t offset = wire_ctx_offset(in); + if (yp_option_to_txt(in, out, opts, true) == KNOT_EOK) { + return KNOT_EOK; + } else { + wire_ctx_set_offset(in, offset); + return yp_int_to_txt(in, out, style); + } +} + _public_ int yp_item_to_bin( const yp_item_t *item, @@ -982,7 +1023,7 @@ int yp_item_to_bin( ret = yp_bool_to_bin(&in, &out, NULL); break; case YP_TOPT: - ret = yp_option_to_bin(&in, &out, NULL, item->var.o.opts); + ret = yp_option_to_bin(&in, &out, NULL, item->var.o.opts, false); break; case YP_TSTR: ret = yp_str_to_bin(&in, &out, NULL); @@ -1012,6 +1053,11 @@ int yp_item_to_bin( out.position, &ref_len); wire_ctx_skip(&out, ref_len); break; + case YP_TOPTINT: + ret = yp_optint_to_bin(&in, &out, NULL, item->var.i.min, + item->var.i.max, item->var.i.opts, + item->var.i.unit); + break; default: ret = KNOT_EOK; } @@ -1061,7 +1107,7 @@ int yp_item_to_txt( ret = yp_bool_to_txt(&in, &out); break; case YP_TOPT: - ret = yp_option_to_txt(&in, &out, item->var.o.opts); + ret = yp_option_to_txt(&in, &out, item->var.o.opts, false); break; case YP_TSTR: ret = yp_str_to_txt(&in, &out); @@ -1092,6 +1138,9 @@ int yp_item_to_txt( &ref_len, style | YP_SNOQUOTE); wire_ctx_skip(&out, ref_len); break; + case YP_TOPTINT: + ret = yp_optint_to_txt(&in, &out, item->var.i.opts, item->var.i.unit & style); + break; default: ret = KNOT_EOK; } diff --git a/src/libknot/yparser/yptrafo.h b/src/libknot/yparser/yptrafo.h index 1a448f67cb..457f805cf3 100644 --- a/src/libknot/yparser/yptrafo.h +++ b/src/libknot/yparser/yptrafo.h @@ -265,12 +265,14 @@ int yp_addr_range_to_txt( int yp_option_to_bin( YP_TXT_BIN_PARAMS, - const struct knot_lookup *opts + const struct knot_lookup *opts, + bool extended ); int yp_option_to_txt( YP_BIN_TXT_PARAMS, - const struct knot_lookup *opts + const struct knot_lookup *opts, + bool extended ); int yp_dname_to_bin( @@ -297,4 +299,18 @@ int yp_base64_to_txt( YP_BIN_TXT_PARAMS ); +int yp_optint_to_bin( + YP_TXT_BIN_PARAMS, + int64_t min, + int64_t max, + const knot_lookup_t *opts, + yp_style_t style +); + +int yp_optint_to_txt( + YP_BIN_TXT_PARAMS, + const knot_lookup_t *opts, + yp_style_t style +); + /*! @} */ diff --git a/tests/libknot/test_ypschema.c b/tests/libknot/test_ypschema.c index 6ba7ae0592..b792824807 100644 --- a/tests/libknot/test_ypschema.c +++ b/tests/libknot/test_ypschema.c @@ -25,6 +25,7 @@ #define C_REF "\x09""reference" #define C_GRP "\x05""group" #define C_MULTIGRP "\x0B""multi-group" +#define C_OPTINT "\x06""optint" static const yp_item_t group[] = { { C_INT, YP_TINT, YP_VINT = { 0, 100, YP_NIL } }, @@ -43,7 +44,13 @@ static const knot_lookup_t opts[] = { { 1, "one" }, { 10, "ten" }, { 0, NULL } - }; +}; + +static const knot_lookup_t optints[] = { + { 1000, "opt1" }, + { -2000, "opt2" }, + { 0, NULL } +}; static const yp_item_t static_schema[] = { { C_OPT, YP_TOPT, YP_VOPT = { opts } }, @@ -53,6 +60,7 @@ static const yp_item_t static_schema[] = { { C_MULTIGRP, YP_TGRP, YP_VGRP = { multi_group }, YP_FMULTI }, { C_REF, YP_TREF, YP_VREF = { C_MULTIGRP } }, { C_DATA, YP_TDATA, YP_VNONE }, + { C_OPTINT, YP_TOPTINT,YP_VOPTINT = { -2, 1000, -10, YP_STIME, 0, optints } }, { NULL } }; diff --git a/tests/libknot/test_yptrafo.c b/tests/libknot/test_yptrafo.c index 066db6d36d..b8f91baae5 100644 --- a/tests/libknot/test_yptrafo.c +++ b/tests/libknot/test_yptrafo.c @@ -297,6 +297,27 @@ static void ref_test(const char *txt, bool val) ok(memcmp(txt, t, t_len) == 0, "compare"); } +static void optint_test(const char *txt, int64_t num, yp_style_t s, + int64_t min, int64_t max, const knot_lookup_t *opts) +{ + int ret; + uint8_t b[64]; + size_t b_len = sizeof(b); + char t[64]; + size_t t_len = sizeof(t); + yp_item_t i = { NULL, YP_TOPTINT, YP_VOPTINT = { min, max, 0, s, 0, opts } }; + + diag("optint \"%s\":", txt); + ret = yp_item_to_bin(&i, txt, strlen(txt), b, &b_len); + is_int(KNOT_EOK, ret, "txt to bin"); + ok(yp_int(b) == num, "compare"); + ret = yp_item_to_txt(&i, b, b_len, t, &t_len, s | YP_SNOQUOTE); + is_int(KNOT_EOK, ret, "bin to txt"); + ok(strlen(t) == t_len, "txt ret length"); + ok(strlen(txt) == t_len, "txt length"); + ok(memcmp(txt, t, t_len) == 0, "compare"); +} + int main(int argc, char *argv[]) { plan_lazy(); @@ -401,5 +422,21 @@ int main(int argc, char *argv[]) /* Ref tests. */ ref_test("on", true); + /* Optint tests. */ + static const knot_lookup_t optints[] = { + { 0, "opt1" }, + { -1, "opt2" }, + { INT32_MIN, "opt3" }, + { 0, NULL } + }; + int64_t optmin = -1000000, optmax = 10000; + optint_test("-1000000", -1000000, YP_SNONE, optmin, optmax, optints); + optint_test("-2", -2, YP_SNONE, optmin, optmax, optints); + optint_test("1", 1, YP_SNONE, optmin, optmax, optints); + optint_test("1h", 3600, YP_STIME, optmin, optmax, optints); + optint_test("opt1", 0, YP_STIME, optmin, optmax, optints); + optint_test("opt2", -1, YP_STIME, optmin, optmax, optints); + optint_test("opt3", INT32_MIN, YP_STIME, optmin, optmax, optints); + return 0; } From 3f9b634dab605f8ccf623eaf2cb99b789dd67748 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 13 Nov 2025 17:48:34 +0100 Subject: [PATCH 238/675] timers: implemented configurable periodic dump --- doc/reference.rst | 19 +++++++ src/knot/conf/base.c | 3 ++ src/knot/conf/base.h | 1 + src/knot/conf/schema.c | 9 ++++ src/knot/conf/schema.h | 7 +++ src/knot/server/server.c | 55 ++++++++++++++++++-- src/knot/server/server.h | 3 ++ src/knot/zone/timers.c | 7 ++- src/knot/zone/zone.c | 8 +++ tests-extra/tests/dnssec/dnskey_sync/test.py | 3 +- tests-extra/tools/dnstest/server.py | 1 + tests/knot/test_confio.c | 7 +++ 12 files changed, 118 insertions(+), 5 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 441c32116e..317c0474b6 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -1212,6 +1212,7 @@ Configuration of databases for zone contents, DNSSEC metadata, or event timers. kasp-db-max-size: SIZE timer-db: STR timer-db-max-size: SIZE + timer-db-sync: never | shutdown | immediate | TIME catalog-db: str catalog-db-max-size: SIZE zone-db-listen: ADDR[@INT] | STR[@INT] ... @@ -1321,6 +1322,24 @@ The hard limit for the timer database maximum size. *Default:* ``100M`` (100 MiB) +.. _database_timer-db-sync: + +timer-db-sync +------------- + +Specifies when zone timers should be written to the persistent timer database. + +Possible values: + +- ``never`` – Never written. +- ``shutdown`` – Written once when the server is shut down. +- ``immediate`` – Each zone writes its timers whenever they are modified. + This mode might slow down zones' events if many zones are configured. +- `INT` – A dedicated thread continuously iterates through the configured zones + and writes their timers at the specified non-zero interval (in seconds). + +*Default:* ``shutdown`` + .. _database_catalog-db: catalog-db diff --git a/src/knot/conf/base.c b/src/knot/conf/base.c index 23fa1433ba..04329bf672 100644 --- a/src/knot/conf/base.c +++ b/src/knot/conf/base.c @@ -280,6 +280,9 @@ static void init_cache( conf->cache.srv_has_version = false; conf->cache.srv_version = "Knot DNS " PACKAGE_VERSION; } + + val = conf_get(conf, C_DB, C_TIMER_DB_SYNC); + conf->cache.db_timer_db_sync = conf_int(&val); } int conf_new( diff --git a/src/knot/conf/base.h b/src/knot/conf/base.h index 675e8b956f..ec60293fcc 100644 --- a/src/knot/conf/base.h +++ b/src/knot/conf/base.h @@ -150,6 +150,7 @@ typedef struct { uint32_t xdp_tcp_idle_close; uint32_t xdp_tcp_idle_reset; uint32_t xdp_tcp_idle_resend; + int32_t db_timer_db_sync; size_t srv_quic_max_clients; size_t srv_quic_obuf_max_size; const uint8_t *srv_nsid_data; diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index d75d8922d1..a0d52cfb1e 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -176,6 +176,13 @@ static const knot_lookup_t journal_modes[] = { { 0, NULL } }; +static const knot_lookup_t timer_db_sync[] = { + { TIMER_DB_SYNC_IMMEDIATE, "immediate" }, + { TIMER_DB_SYNC_NEVER, "never" }, + { TIMER_DB_SYNC_SHUTDOWN, "shutdown" }, + { 0, NULL } +}; + static const knot_lookup_t catalog_roles[] = { { CATALOG_ROLE_NONE, "none" }, { CATALOG_ROLE_INTERPRET, "interpret" }, @@ -310,6 +317,8 @@ static const yp_item_t desc_database[] = { { C_TIMER_DB, YP_TSTR, YP_VSTR = { "timers" } }, { C_TIMER_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(1), VIRT_MEM_LIMIT(GIGA(100)), MEGA(100), YP_SSIZE } }, + { C_TIMER_DB_SYNC, YP_TOPTINT, YP_VOPTINT = { 1, UINT32_MAX, TIMER_DB_SYNC_SHUTDOWN, + YP_STIME, 0, timer_db_sync } }, { C_CATALOG_DB, YP_TSTR, YP_VSTR = { "catalog" } }, { C_CATALOG_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(5), VIRT_MEM_LIMIT(GIGA(100)), VIRT_MEM_LIMIT(GIGA(20)), YP_SSIZE } }, diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 6face8f1ee..30a0348739 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -169,6 +169,7 @@ #define C_TIMER "\x05""timer" #define C_TIMER_DB "\x08""timer-db" #define C_TIMER_DB_MAX_SIZE "\x11""timer-db-max-size" +#define C_TIMER_DB_SYNC "\x0D""timer-db-sync" #define C_TLS "\x03""tls" #define C_TPL "\x08""template" #define C_UDP "\x03""udp" @@ -264,6 +265,12 @@ enum { JOURNAL_MODE_ASYNC = 1, // Asynchronous journal DB disk synchronization. }; +enum { + TIMER_DB_SYNC_IMMEDIATE = 0, + TIMER_DB_SYNC_NEVER = -1, + TIMER_DB_SYNC_SHUTDOWN = -2, +}; + enum { ZONEFILE_LOAD_NONE = 0, ZONEFILE_LOAD_DIFF = 1, diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 31c37d1004..7c0503c11d 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -982,6 +982,29 @@ static int rdb_listener_run(struct dthread *thread) } #endif // ENABLE_REDIS +static int timer_db_do_sync(struct dthread *thread) +{ + server_t *s = thread->data; + + while (thread->state & ThreadActive) { + int ret = zone_timers_write_all(&s->timerdb, s->zone_db); + if (ret == KNOT_EOK) { + log_info("updated persistent timer DB"); + } else { + log_error("failed to update persistent timer DB (%s)", knot_strerror(ret)); + } + + if (conf()->cache.db_timer_db_sync <= 0) { + break; + } + /* NOTE the following sleep() may be interrupted by any signal, including + SIGALRM during dt_stop() in case of server_stop() or server_reconfigure(). */ + sleep(conf()->cache.db_timer_db_sync); + } + + return KNOT_EOK; +} + int server_init(server_t *server, int bg_workers) { if (server == NULL) { @@ -1057,12 +1080,14 @@ void server_deinit(server_t *server) zone_backups_deinit(&server->backup_ctxs); /* Save zone timers. */ - if (server->zone_db != NULL) { + bool should_sync = (conf()->cache.db_timer_db_sync == TIMER_DB_SYNC_SHUTDOWN || + conf()->cache.db_timer_db_sync > 0); + if (should_sync && server->zone_db != NULL) { log_info("updating persistent timer DB"); int ret = zone_timers_write_all(&server->timerdb, server->zone_db); if (ret != KNOT_EOK) { - log_warning("failed to update persistent timer DB (%s)", - knot_strerror(ret)); + log_error("failed to update persistent timer DB (%s)", + knot_strerror(ret)); } } @@ -1072,6 +1097,9 @@ void server_deinit(server_t *server) /* Free threads and event handlers. */ worker_pool_destroy(server->workers); + /* Free eventual timer DB syncing thread. */ + dt_delete(&server->timerdb_sync); + /* Free optional zone DB event thread. */ dt_delete(&server->rdb_events); @@ -1191,6 +1219,9 @@ int server_start(server_t *server, bool answering) /* Start workers. */ worker_pool_start(server->workers); + /* Start timer DB syncing thread. NOTE ignoring return code including KNOT_EINVAL when disabled (NULL). */ + dt_start(server->timerdb_sync); + /* Start zone DB event loop. */ dt_start(server->rdb_events); @@ -1582,6 +1613,8 @@ void server_stop(server_t *server) evsched_stop(&server->sched); /* Mark the server is shutting down. */ server->state |= ServerShutting; + /* Stop timer DB syncing thread */ + dt_stop(server->timerdb_sync); /* Interrupt background workers. */ worker_pool_stop(server->workers); @@ -1653,6 +1686,22 @@ static int reconfigure_timer_db(conf_t *conf, server_t *server) conf_val_t timer_size = conf_db_param(conf, C_TIMER_DB_MAX_SIZE); int ret = knot_lmdb_reconfigure(&server->timerdb, timer_dir, conf_int(&timer_size), 0); free(timer_dir); + if (ret != KNOT_EOK) { + return ret; + } + + bool should_sync = (conf->cache.db_timer_db_sync > 0); + bool exists_sync = (server->timerdb_sync != NULL); + if (should_sync && !exists_sync) { + server->timerdb_sync = dt_create(1, timer_db_do_sync, NULL, server); + if (server->timerdb_sync == NULL) { + return KNOT_ENOMEM; + } + } else if (!should_sync && exists_sync) { + dt_stop(server->timerdb_sync); + dt_delete(&server->timerdb_sync); + } + return ret; } diff --git a/src/knot/server/server.h b/src/knot/server/server.h index 5faf010210..ee88184186 100644 --- a/src/knot/server/server.h +++ b/src/knot/server/server.h @@ -108,6 +108,9 @@ typedef struct server { /*! \brief Background jobs. */ worker_pool_t *workers; + /*! \brief TimerDB syncing thread. */ + dt_unit_t *timerdb_sync; + /*! \brief Zone DB event loop context. */ dt_unit_t *rdb_events; struct redisContext *rdb_ctx; diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index e920f11d12..72f4cdbe92 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -8,6 +8,8 @@ #include "contrib/wire_ctx.h" #include "knot/zone/zonedb.h" +#include + /* * # Timer database * @@ -208,7 +210,10 @@ int zone_timers_write(knot_lmdb_db_t *db, const knot_dname_t *zone, static void txn_zone_write(zone_t *z, knot_lmdb_txn_t *txn) { - txn_write_timers(txn, z->name, z->timers_static); + rcu_read_lock(); + zone_timers_t *t = z->timers_static; + txn_write_timers(txn, z->name, t); + rcu_read_unlock(); } int zone_timers_write_all(knot_lmdb_db_t *db, knot_zonedb_t *zonedb) diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 01e03f83d5..8ac0634040 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -746,6 +746,14 @@ void zone_timers_commit(zone_t *zone) cleanup->timers = old_static; call_rcu((struct rcu_head *)cleanup, timers_cleanup); } + + if (conf()->cache.db_timer_db_sync == TIMER_DB_SYNC_IMMEDIATE) { + int ret = zone_timers_write(&zone->server->timerdb, zone->name, zone->timers); + if (ret != KNOT_EOK) { + log_zone_error(zone->name, "failed to update persistent timer DB (%s)", + knot_strerror(ret)); + } + } } static int try_remote(conf_t *conf, zone_t *zone, zone_master_cb callback, diff --git a/tests-extra/tests/dnssec/dnskey_sync/test.py b/tests-extra/tests/dnssec/dnskey_sync/test.py index b438799ab6..40d96e5005 100644 --- a/tests-extra/tests/dnssec/dnskey_sync/test.py +++ b/tests-extra/tests/dnssec/dnskey_sync/test.py @@ -29,7 +29,8 @@ def detect_ddns_deadlock(server): lastline="" with open(server.fout, "r") as fl: for line in fl: - lastline = line + if "persistent" not in line: + lastline = line #detect recent (any) activity in the logfile so that servers settle down before equivalence test if now_hms(0) in lastline: diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index deda3c6211..8de79ec2e3 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1692,6 +1692,7 @@ def get_config(self): s.item_str("kasp-db-max-size", self.kasp_db_size) s.item_str("journal-db-max-size", self.journal_db_size) s.item_str("timer-db-max-size", self.timer_db_size) + s.item_str("timer-db-sync", random.choice(["shutdown", "immediate", "5", "3600"])) s.item_str("catalog-db-max-size", self.catalog_db_size) if self.redis is not None: tls = random.choice([True, False]) diff --git a/tests/knot/test_confio.c b/tests/knot/test_confio.c index 7c8251728c..8e0a49bed5 100644 --- a/tests/knot/test_confio.c +++ b/tests/knot/test_confio.c @@ -883,6 +883,7 @@ static void test_conf_io_list(void) ref = "server\n" "xdp\n" "control\n" + "database\n" "remote\n" "template\n" "zone\n" @@ -1013,6 +1014,11 @@ static const yp_item_t desc_remote[] = { { NULL } }; +static const yp_item_t desc_database[] = { + { C_TIMER_DB_SYNC, YP_TOPTINT, YP_VNONE }, + { NULL } +}; + static const knot_lookup_t opts[] = { { 1, "opt1" }, { 2, "opt2" }, @@ -1048,6 +1054,7 @@ const yp_item_t test_schema[] = { { C_SRV, YP_TGRP, YP_VGRP = { desc_server } }, { C_XDP, YP_TGRP, YP_VGRP = { desc_xdp } }, { C_CTL, YP_TGRP, YP_VGRP = { desc_control } }, + { C_DB, YP_TGRP, YP_VGRP = { desc_database } }, { C_RMT, YP_TGRP, YP_VGRP = { desc_remote }, YP_FMULTI, { check_remote } }, { C_TPL, YP_TGRP, YP_VGRP = { desc_template }, YP_FMULTI, { check_template } }, { C_ZONE, YP_TGRP, YP_VGRP = { desc_zone }, YP_FMULTI, { check_zone } }, From b23735a2bb843e50e48f5dcf07f8f191f3914215 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 21 Nov 2025 20:08:32 +0100 Subject: [PATCH 239/675] zone/timers/commit: bugfix: use correct conf_t reference --- src/knot/events/events.c | 2 +- src/knot/updates/zone-update.c | 2 +- src/knot/zone/zone.c | 8 ++++---- src/knot/zone/zone.h | 4 ++-- src/knot/zone/zonedb-load.c | 10 +++++----- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/knot/events/events.c b/src/knot/events/events.c index d2ec669370..0648641e63 100644 --- a/src/knot/events/events.c +++ b/src/knot/events/events.c @@ -229,7 +229,7 @@ static void event_wrap(worker_task_t *task) if (ret == KNOT_EOK) { /* Execute the event callback. */ ret = info->callback(conf, zone); - zone_timers_commit(zone); + zone_timers_commit(conf, zone); conf_free(conf); } diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index f4c7bddb26..6aede8d73e 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1211,7 +1211,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) } if (dnssec) { - zone_set_lastsigned_serial(update->zone, zone_contents_serial(update->new_cont)); + zone_set_lastsigned_serial(conf, update->zone, zone_contents_serial(update->new_cont)); if ((update->flags & UPDATE_SIGNED_FULL)) { zone_set_flag(update->zone, ZONE_LAST_SIGN_OK); diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 8ac0634040..201459cf16 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -733,7 +733,7 @@ static void timers_cleanup(struct rcu_head *head) free(cleanup); } -void zone_timers_commit(zone_t *zone) +void zone_timers_commit(conf_t *conf, zone_t *zone) { if (zone->timers_static == zone->timers) { return; @@ -747,7 +747,7 @@ void zone_timers_commit(zone_t *zone) call_rcu((struct rcu_head *)cleanup, timers_cleanup); } - if (conf()->cache.db_timer_db_sync == TIMER_DB_SYNC_IMMEDIATE) { + if (conf->cache.db_timer_db_sync == TIMER_DB_SYNC_IMMEDIATE) { int ret = zone_timers_write(&zone->server->timerdb, zone->name, zone->timers); if (ret != KNOT_EOK) { log_zone_error(zone->name, "failed to update persistent timer DB (%s)", @@ -979,13 +979,13 @@ int zone_get_master_serial(zone_t *zone, uint32_t *serial) return kasp_db_load_serial(zone_kaspdb(zone), zone->name, KASPDB_SERIAL_MASTER, serial); } -void zone_set_lastsigned_serial(zone_t *zone, uint32_t serial) +void zone_set_lastsigned_serial(conf_t *conf, zone_t *zone, uint32_t serial) { bool extra_txn = (zone->control_update != NULL && zone->timers == zone->timers_static && zone_timers_begin(zone) == KNOT_EOK); // zone_update_commit() is not within a zone event in case of control_update zone->timers->last_signed_serial = serial; zone->timers->flags |= LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID | TIMERS_MODIFIED; if (extra_txn) { - zone_timers_commit(zone); + zone_timers_commit(conf, zone); } } diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index d177c0a864..3b14bebca2 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -287,7 +287,7 @@ bool zone_expired(const zone_t *zone); void zone_timers_sanitize(conf_t *conf, zone_t *zone); int zone_timers_begin(zone_t *zone); -void zone_timers_commit(zone_t *zone); +void zone_timers_commit(conf_t *conf, zone_t *zone); typedef struct { bool address; //!< Fallback to next remote address is required. @@ -331,7 +331,7 @@ int zone_set_master_serial(zone_t *zone, uint32_t serial); int zone_get_master_serial(zone_t *zone, uint32_t *serial); -void zone_set_lastsigned_serial(zone_t *zone, uint32_t serial); +void zone_set_lastsigned_serial(conf_t *conf, zone_t *zone, uint32_t serial); int zone_get_lastsigned_serial(zone_t *zone, uint32_t *serial); diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index d00f76cb35..1e6b79e2e8 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -223,17 +223,17 @@ static void zone_purge(conf_t *conf, zone_t *zone) { zone_timers_begin(zone); (void)selective_zone_purge(conf, zone, PURGE_ZONE_ALL); - zone_timers_commit(zone); + zone_timers_commit(conf, zone); } -static zone_contents_t *zone_expire(zone_t *zone, bool zonedb_cow) +static zone_contents_t *zone_expire(conf_t *conf, zone_t *zone, bool zonedb_cow) { if (!zonedb_cow) { zone_timers_begin(zone); zone->timers->next_expire = time(NULL); zone->timers->next_refresh = zone->timers->next_expire; zone->timers->flags |= TIMERS_MODIFIED; - zone_timers_commit(zone); + zone_timers_commit(conf, zone); } return zone_switch_contents(zone, NULL); } @@ -269,7 +269,7 @@ static zone_t *reuse_member_zone(zone_t *zone, server_t *server, conf_t *conf, case CAT_UPD_UNIQ: zone_purge(conf, zone); knot_sem_wait(&zone->cow_lock); - ptrlist_add(expired_contents, zone_expire(zone, false), NULL); + ptrlist_add(expired_contents, zone_expire(conf, zone, false), NULL); knot_sem_post(&zone->cow_lock); // FALLTHROUGH case CAT_UPD_PROP: @@ -595,7 +595,7 @@ static knot_zonedb_t *create_zonedb_catalog(conf_t *conf, server_t *server, if (upd->type == CAT_UPD_UNIQ && zone != NULL) { zone_purge(conf, zone); knot_sem_wait(&zone->cow_lock); - ptrlist_add(expired_contents, zone_expire(zone, true), NULL); + ptrlist_add(expired_contents, zone_expire(conf, zone, true), NULL); knot_sem_post(&zone->cow_lock); } zone_t *old = knot_zonedb_find(db_old, upd->member); From c7474f06604194d7ca39d60a5ae8a40f528ebcd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Mon, 24 Nov 2025 15:11:46 +0100 Subject: [PATCH 240/675] knotc: add OPTINT in JSON schema of configuration file --- src/knot/conf/base.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/knot/conf/base.c b/src/knot/conf/base.c index 04329bf672..5bc126d353 100644 --- a/src/knot/conf/base.c +++ b/src/knot/conf/base.c @@ -1175,7 +1175,28 @@ static void export_type(jsonw_t *w, const yp_item_t *item) ); break; case YP_TOPTINT: - // TODO + SINGLE_OR_ARRAY( + jsonw_list(w, "anyOf"); + jsonw_object(w, NULL); + jsonw_str(w, "$ref", "#/$defs/int"); + jsonw_end(w); + jsonw_object(w, NULL); + jsonw_str(w, "$ref", "#/$defs/int_time"); + jsonw_end(w); + jsonw_object(w, NULL); + jsonw_str(w, "$ref", "#/$defs/int_size"); + jsonw_end(w); + jsonw_object(w, NULL); + jsonw_str(w, "type", "string"); + jsonw_list(w, "enum"); + for (const knot_lookup_t *o = item->var.i.opts; + o->name != NULL; ++o) { + jsonw_str(w, NULL, o->name); + } + jsonw_end(w); + jsonw_end(w); + jsonw_end(w); + ); break; default: assert(0); From 372da80c3c875a0335038eeaa8beec31a83038c6 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 25 Nov 2025 08:14:34 +0100 Subject: [PATCH 241/675] tests-fuzz: fix compilation on some platforms --- tests-fuzz/fuzz_packet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-fuzz/fuzz_packet.c b/tests-fuzz/fuzz_packet.c index 3e92c5ccea..4fe390ea75 100644 --- a/tests-fuzz/fuzz_packet.c +++ b/tests-fuzz/fuzz_packet.c @@ -5,7 +5,7 @@ #include -#include "libknot/libknot.h" +#include "libknot/packet/pkt.h" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { From a71b1925bab0ef9fcb555a9dcd8df3880872299f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 25 Nov 2025 20:26:00 +0100 Subject: [PATCH 242/675] tests-extra: set number of threads to 1 for dnssec-signzone --- tests-extra/tools/zone_generate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-extra/tools/zone_generate.py b/tests-extra/tools/zone_generate.py index 781ea2a70b..3c43cc35da 100755 --- a/tests-extra/tools/zone_generate.py +++ b/tests-extra/tools/zone_generate.py @@ -549,7 +549,7 @@ def main(args): nsec3_params = ['-3', binascii.hexlify(os.urandom(random.randint(1, 30))).decode('ascii')] subprocess.check_output(["dnssec-signzone", "-d", tmp_dir, "-P", "-u", \ - "-k", k2, "-x", "-o", ctx.ORIGIN, \ + "-k", k2, "-x", "-o", ctx.ORIGIN, "-n", "1", \ "-O", "full"] + nsec3_params + [in_fname, k1 + ".key"], stderr=subprocess.DEVNULL) shutil.copyfile(in_fname + '.signed', out_fname) From 2408e1cd3c7f712d090b3fc3254658f57968dca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Wed, 5 Nov 2025 10:06:22 +0100 Subject: [PATCH 243/675] redis: add missing send commands to replica --- src/redis/internal.h | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/redis/internal.h b/src/redis/internal.h index 50e0999b90..8a13e21b84 100644 --- a/src/redis/internal.h +++ b/src/redis/internal.h @@ -668,6 +668,7 @@ static void zone_begin_txt_format(RedisModuleCtx *ctx, const arg_dname_t *origin if (e.ret != KNOT_EOK) { RedisModule_ReplyWithError(ctx, e.what); } else { + RedisModule_ReplicateVerbatim(ctx); RedisModule_ReplyWithLongLong(ctx, serialize_transaction(txn)); } } @@ -678,6 +679,7 @@ static void zone_begin_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin if (e.ret != KNOT_EOK) { RedisModule_ReplyWithError(ctx, e.what); } else { + RedisModule_ReplicateVerbatim(ctx); RedisModule_ReplyWithStringBuffer(ctx, (const char *)txn, sizeof(*txn)); } } @@ -716,10 +718,10 @@ static void upd_begin_txt_format(RedisModuleCtx *ctx, const arg_dname_t *origin, exception_t e = upd_begin(ctx, origin, txn); if (e.ret != KNOT_EOK) { RedisModule_ReplyWithError(ctx, e.what); - return; + } else { + RedisModule_ReplicateVerbatim(ctx); + RedisModule_ReplyWithLongLong(ctx, serialize_transaction(txn)); } - - RedisModule_ReplyWithLongLong(ctx, serialize_transaction(txn)); } static void upd_begin_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) @@ -727,10 +729,10 @@ static void upd_begin_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin, exception_t e = upd_begin(ctx, origin, txn); if (e.ret != KNOT_EOK) { RedisModule_ReplyWithError(ctx, e.what); - return; + } else { + RedisModule_ReplicateVerbatim(ctx); + RedisModule_ReplyWithStringBuffer(ctx, (const char *)txn, sizeof(*txn)); } - - RedisModule_ReplyWithStringBuffer(ctx, (const char *)txn, sizeof(*txn)); } static upd_meta_k upd_meta_get_when_open(RedisModuleCtx *ctx, const arg_dname_t *origin, @@ -892,6 +894,7 @@ static void upd_add_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin, if (e.ret != KNOT_EOK) { RedisModule_ReplyWithError(ctx, e.what); } else { + RedisModule_ReplicateVerbatim(ctx); RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); } } @@ -905,6 +908,7 @@ static void upd_remove_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin if (e.ret != KNOT_EOK) { RedisModule_ReplyWithError(ctx, e.what); } else { + RedisModule_ReplicateVerbatim(ctx); RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); } } @@ -1024,6 +1028,7 @@ static void zone_store_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin return; } + RedisModule_ReplicateVerbatim(ctx); RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); } @@ -1043,6 +1048,7 @@ static void run_scanner(scanner_ctx_t *s_ctx, const arg_dname_t *origin, } zs_deinit(&s); + RedisModule_ReplicateVerbatim(s_ctx->ctx); RedisModule_ReplyWithSimpleString(s_ctx->ctx, RDB_RETURN_OK); } @@ -1288,6 +1294,7 @@ static void zone_purge_v(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn if (e.ret != KNOT_EOK) { RedisModule_ReplyWithError(ctx, RDB_EEVENT); } else { + RedisModule_ReplicateVerbatim(ctx); RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); } } @@ -1621,6 +1628,7 @@ static void zone_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_ RedisModule_FreeString(ctx, value); RedisModule_CloseKey(zones_index); + RedisModule_ReplicateVerbatim(ctx); commit_event(ctx, RDB_EVENT_ZONE, origin, txn->instance, serial); RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); } @@ -1645,6 +1653,7 @@ static void zone_abort(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t int ret = delete_zone_index(ctx, origin, txn); if (ret == KNOT_EOK) { + RedisModule_ReplicateVerbatim(ctx); RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); } else if (ret == KNOT_EEXIST) { RedisModule_ReplyWithError(ctx, RDB_EZONE); @@ -1894,6 +1903,7 @@ static void upd_abort_v(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_ if (e.ret != KNOT_EOK) { RedisModule_ReplyWithError(ctx, e.what); } else { + RedisModule_ReplicateVerbatim(ctx); RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); } } @@ -2213,6 +2223,7 @@ static void upd_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t if (e.ret != KNOT_EOK) { RedisModule_ReplyWithError(ctx, e.what); } else { + RedisModule_ReplicateVerbatim(ctx); RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); } } @@ -2396,6 +2407,4 @@ static void upd_load(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t * counter++; } RedisModule_ReplySetArrayLength(ctx, counter); - - return; } From 3e21446c680440436d9a8a8173cb1fbf263d226e Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 22 Nov 2025 21:19:44 +0100 Subject: [PATCH 244/675] redis: preserve event ID during replication --- src/redis/arg.h | 20 ++++++++++++++++++-- src/redis/internal.h | 39 +++++++++++++++++++++++++++------------ src/redis/knot.c | 26 ++++++++++++++++++++------ 3 files changed, 65 insertions(+), 20 deletions(-) diff --git a/src/redis/arg.h b/src/redis/arg.h index bc94fa4a83..ced5479c2f 100644 --- a/src/redis/arg.h +++ b/src/redis/arg.h @@ -129,7 +129,8 @@ typedef struct { #define ARG_NUM(arg, out, name) { \ long long val; \ - long long max = (1ULL << (sizeof(out) * 8)) - 1; \ + uint8_t shift = sizeof(out) < 8 ? sizeof(out) * 8 : 63; \ + long long max = (1ULL << shift) - 1; \ if (RedisModule_StringToLongLong(arg, &val) != REDISMODULE_OK || val > max) { \ return RedisModule_ReplyWithError(ctx, RDB_E("invalid " name)); \ } \ @@ -142,6 +143,17 @@ typedef struct { } \ } +#define ARG_STREAM_ID(arg, out) { \ + size_t len; \ + const uint8_t *ptr = (const uint8_t *)RedisModule_StringPtrLen(arg, &len); \ + wire_ctx_t w = wire_ctx_init_const(ptr, len); \ + out.ms = wire_ctx_read_u64(&w); \ + out.seq = wire_ctx_read_u64(&w); \ + if (w.error != KNOT_EOK || wire_ctx_available(&w) != 0) { \ + return RedisModule_ReplyWithError(ctx, RDB_E("invalid stream ID")); \ + } \ +} + #define ARG_DNAME(arg, out, name) { \ size_t len; \ const uint8_t *ptr = (const uint8_t *)RedisModule_StringPtrLen(arg, &len); \ @@ -172,9 +184,13 @@ typedef struct { } \ } +#define WIRE_STREAM_ID(id) \ + (RedisModuleStreamID){ .ms = htobe64(id->ms), .seq = htobe64(id->seq) }; \ + RedisModule_Assert(sizeof(RedisModuleStreamID) == 16); + static knot_dname_t *dname_from_str(const char *ptr, size_t len, uint8_t *out, arg_dname_t *origin) { - assert(ptr != NULL && out != NULL); + RedisModule_Assert(ptr != NULL && out != NULL); if (knot_dname_from_str(out, ptr, KNOT_DNAME_MAXLEN) == NULL) { return NULL; diff --git a/src/redis/internal.h b/src/redis/internal.h index 8a13e21b84..166b5f0b1e 100644 --- a/src/redis/internal.h +++ b/src/redis/internal.h @@ -188,7 +188,7 @@ static bool zone_txn_is_open(RedisModuleCtx *ctx, const arg_dname_t *origin, con } static void commit_event(RedisModuleCtx *ctx, rdb_event_t type, const arg_dname_t *origin, - uint8_t instance, uint32_t serial) + uint8_t instance, uint32_t serial, RedisModuleStreamID *stream_id) { RedisModuleString *keyname = RedisModule_CreateString(ctx, RDB_EVENT_KEY, strlen(RDB_EVENT_KEY)); RedisModuleKey *stream_key = RedisModule_OpenKey(ctx, keyname, REDISMODULE_READ | REDISMODULE_WRITE); @@ -213,8 +213,11 @@ static void commit_event(RedisModuleCtx *ctx, rdb_event_t type, const arg_dname_ NULL, }; - RedisModuleStreamID ts; - int ret = RedisModule_StreamAdd(stream_key, REDISMODULE_STREAM_ADD_AUTOID, &ts, events, 4); + int flags = 0; + if (stream_id->ms == 0) { + flags = REDISMODULE_STREAM_ADD_AUTOID; + } + int ret = RedisModule_StreamAdd(stream_key, flags, stream_id, events, 4); for (RedisModuleString **event = events; *event != NULL; event++) { RedisModule_FreeString(ctx, *event); @@ -231,11 +234,12 @@ static void commit_event(RedisModuleCtx *ctx, rdb_event_t type, const arg_dname_ return; } - ts.ms -= 1000LLU * rdb_event_age; - ts.seq = 0; + RedisModuleStreamID trim_id = { + .ms = stream_id->ms - 1000LLU * rdb_event_age + }; // NOTE Trimming with REDISMODULE_STREAM_TRIM_APPROX improves preformance - long long removed_cnt = RedisModule_StreamTrimByID(stream_key, REDISMODULE_STREAM_TRIM_APPROX, &ts); + long long removed_cnt = RedisModule_StreamTrimByID(stream_key, REDISMODULE_STREAM_TRIM_APPROX, &trim_id); if (removed_cnt) { RedisModule_Log(ctx, REDISMODULE_LOGLEVEL_NOTICE, "stream cleanup %lld old events", removed_cnt); } @@ -1561,7 +1565,8 @@ static exception_t zone_meta_active_exchange(RedisModuleCtx *ctx, zone_meta_k ke raise(e); } -static void zone_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn) +static void zone_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *txn, + RedisModuleStreamID *stream_id) { zone_meta_k meta_key = zone_meta_get_when_open(ctx, origin, txn, REDISMODULE_READ | REDISMODULE_WRITE); if (meta_key == NULL) { @@ -1628,8 +1633,13 @@ static void zone_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_ RedisModule_FreeString(ctx, value); RedisModule_CloseKey(zones_index); - RedisModule_ReplicateVerbatim(ctx); - commit_event(ctx, RDB_EVENT_ZONE, origin, txn->instance, serial); + commit_event(ctx, RDB_EVENT_ZONE, origin, txn->instance, serial, stream_id); + + // Replicate with explicit ID so replicas use the same ID. + RedisModuleStreamID wire_id = WIRE_STREAM_ID(stream_id); + RedisModule_Replicate(ctx, RDB_CMD_ZONE_COMMIT, "bbb", (char *)origin->data, + origin->len, txn, sizeof(*txn), &wire_id, sizeof(wire_id)); + RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); } @@ -2031,7 +2041,8 @@ static exception_t upd_trim_history(RedisModuleCtx *ctx, const arg_dname_t *orig return_ok; } -static void upd_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *upd_txn) +static void upd_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t *upd_txn, + RedisModuleStreamID *stream_id) { upd_meta_k meta_key = upd_meta_get_when_open(ctx, origin, upd_txn, REDISMODULE_READ | REDISMODULE_WRITE); if (meta_key == NULL) { @@ -2219,11 +2230,15 @@ static void upd_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t upd_meta_unlock(ctx, meta_key, upd_txn->id); RedisModule_CloseKey(meta_key); - commit_event(ctx, RDB_EVENT_UPD, origin, upd_txn->instance, serial_new); + commit_event(ctx, RDB_EVENT_UPD, origin, upd_txn->instance, serial_new, stream_id); + if (e.ret != KNOT_EOK) { RedisModule_ReplyWithError(ctx, e.what); } else { - RedisModule_ReplicateVerbatim(ctx); + // Replicate with explicit ID so replicas use the same ID. + RedisModuleStreamID wire_id = WIRE_STREAM_ID(stream_id); + RedisModule_Replicate(ctx, RDB_CMD_UPD_COMMIT, "bbb", (char *)origin->data, + origin->len, upd_txn, sizeof(*upd_txn), &wire_id, sizeof(wire_id)); RedisModule_ReplyWithSimpleString(ctx, RDB_RETURN_OK); } } diff --git a/src/redis/knot.c b/src/redis/knot.c index f6235bbf98..534f12937a 100644 --- a/src/redis/knot.c +++ b/src/redis/knot.c @@ -295,13 +295,15 @@ static int zone_commit_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int ar rdb_txn_t txn; ARG_TXN_TXT(argv[2], txn); - zone_commit(ctx, &origin, &txn); + RedisModuleStreamID stream_id = { 0 }; + + zone_commit(ctx, &origin, &txn, &stream_id); return REDISMODULE_OK; } static int zone_commit_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { - if (argc != 3) { + if (argc < 3) { return RedisModule_WrongArity(ctx); } @@ -311,7 +313,12 @@ static int zone_commit_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int ar rdb_txn_t txn; ARG_TXN(argv[2], txn); - zone_commit(ctx, &origin, &txn); + RedisModuleStreamID stream_id = { 0 }; + if (argc > 3) { + ARG_STREAM_ID(argv[3], stream_id); + } + + zone_commit(ctx, &origin, &txn, &stream_id); return REDISMODULE_OK; } @@ -641,13 +648,15 @@ static int upd_commit_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int arg rdb_txn_t txn; ARG_TXN_TXT(argv[2], txn); - upd_commit(ctx, &origin, &txn); + RedisModuleStreamID stream_id = { 0 }; + + upd_commit(ctx, &origin, &txn, &stream_id); return REDISMODULE_OK; } static int upd_commit_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { - if (argc != 3) { + if (argc < 3) { return RedisModule_WrongArity(ctx); } @@ -657,7 +666,12 @@ static int upd_commit_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int arg rdb_txn_t txn; ARG_TXN(argv[2], txn) - upd_commit(ctx, &origin, &txn); + RedisModuleStreamID stream_id = { 0 }; + if (argc > 3) { + ARG_STREAM_ID(argv[3], stream_id); + } + + upd_commit(ctx, &origin, &txn, &stream_id); return REDISMODULE_OK; } From 40f6c3b9426c5311a11faed21d9a428b011e0676 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 8 Nov 2025 19:03:52 +0100 Subject: [PATCH 245/675] redis: fix sentinel processing --- src/knot/common/hiredis.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c index c64a0157a3..4f1ea01f00 100644 --- a/src/knot/common/hiredis.c +++ b/src/knot/common/hiredis.c @@ -356,7 +356,7 @@ redisContext *rdb_connect(conf_t *conf, bool require_master) goto connected; } else if (role == 2) { // Sentinel if (get_master(rdb, addr_str, sizeof(addr_str), &port) == KNOT_EOK && - (rdb = connect_addr(conf, addr_str, port)) == KNOT_EOK) { + (rdb = connect_addr(conf, addr_str, port)) != NULL) { goto connected; } } From 4957f7635b1d8cb1edf5bb49204a57f3a232d7a9 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 9 Nov 2025 20:33:20 +0100 Subject: [PATCH 246/675] redis: fix timeout conflict with TLS resulting in NULL reply --- src/knot/server/server.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 7c0503c11d..2a53074761 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -942,7 +942,7 @@ static int rdb_listener_run(struct dthread *thread) if (s->rdb_ctx == NULL) { s->rdb_ctx = rdb_connect(conf(), false); if (s->rdb_ctx == NULL) { - log_error("rdb, failed to connect"); + log_error("rdb, failed to connect to read events"); sleep(2); continue; } else if (!rdb_compatible(s->rdb_ctx)) { @@ -951,8 +951,9 @@ static int rdb_listener_run(struct dthread *thread) } } + // Note the timeout should be lower than the TLS timeout (see hiredis_attach_gnutls()) redisReply *reply = redisCommand(s->rdb_ctx, "XREAD BLOCK %d STREAMS %b %s", - 10000, RDB_EVENT_KEY, strlen(RDB_EVENT_KEY), since); + 4000, RDB_EVENT_KEY, strlen(RDB_EVENT_KEY), since); if (reply == NULL) { if (thread->state & ThreadDead) { break; @@ -960,6 +961,8 @@ static int rdb_listener_run(struct dthread *thread) if (s->rdb_ctx->err != REDIS_OK) { log_error("rdb, failed to read events (%s)", s->rdb_ctx->errstr); } + rdb_disconnect(s->rdb_ctx, false); + s->rdb_ctx = NULL; sleep(2); continue; } From 8db93f2215e4067898646bbfc98543b3da40ccbd Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 12 Nov 2025 14:16:07 +0100 Subject: [PATCH 247/675] redis: add rebootstrap scheduling --- src/knot/events/handlers/load.c | 10 ++++++++++ src/knot/events/handlers/refresh.c | 17 +---------------- src/knot/zone/zone.c | 15 +++++++++++++++ src/knot/zone/zone.h | 2 ++ 4 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index b19c443bd1..634b4c6730 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -171,6 +171,15 @@ int event_load(conf_t *conf, zone_t *zone) if (ret != KNOT_EOK) { log_zone_error(zone->name, "failed to load from database (%s)", ret == KNOT_ERDB ? err : knot_strerror(ret)); + + time_t next = time(NULL); + const knot_rdataset_t *soa = zone_soa(zone); + if (soa != NULL) { + next += knot_soa_retry(soa->rdata); + } else { + next += zone_bootstrap_next(&zone->zonefile.bootstrap_cnt); + } + zone_events_schedule_at(zone, ZONE_EVENT_LOAD, next); goto cleanup; } zone->zonefile.serial = zone_contents_serial(zf_conts); // for logging @@ -212,6 +221,7 @@ int event_load(conf_t *conf, zone_t *zone) zone->zonefile.serial = zone_contents_serial(zf_conts); zone->zonefile.exists = (zf_conts != NULL); zone->zonefile.mtime = mtime; + zone->zonefile.bootstrap_cnt = 0; zonefile_loaded: // If configured, add reverse records to zone contents diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 46f7834564..364a2a47a1 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -143,21 +143,6 @@ static bool serial_is_current(uint32_t local_serial, uint32_t remote_serial) return (serial_compare(local_serial, remote_serial) & SERIAL_MASK_GEQ); } -static time_t bootstrap_next(uint8_t *count) -{ - // Let the increment gradually grow in a sensible way. - time_t increment = 5 * (*count) * (*count); - - if (increment < 7200) { // two hours - (*count)++; - } else { - increment = 7200; - } - - // Add a random delay to prevent burst refresh. - return increment + dnssec_random_uint16_t() % 30; -} - static void limit_timer(conf_t *conf, const knot_dname_t *zone, uint32_t *timer, const char *tm_name, const yp_name_t *low, const yp_name_t *upp) { @@ -1500,7 +1485,7 @@ int event_refresh(conf_t *conf, zone_t *zone) if (soa) { next = knot_soa_retry(soa->rdata); } else { - next = bootstrap_next(&zone->zonefile.bootstrap_cnt); + next = zone_bootstrap_next(&zone->zonefile.bootstrap_cnt); } limit_timer(conf, zone->name, &next, "retry", diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 201459cf16..b09a5e08fe 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -1015,3 +1015,18 @@ int slave_zone_serial(zone_t *zone, conf_t *conf, uint32_t *serial) return ret; } + +time_t zone_bootstrap_next(uint8_t *count) +{ + // Let the increment gradually grow in a sensible way. + time_t increment = 5 * (*count) * (*count); + + if (increment < 7200) { // two hours + (*count)++; + } else { + increment = 7200; + } + + // Add a random delay to prevent burst refresh. + return increment + dnssec_random_uint16_t() % 30; +} diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 3b14bebca2..33be90b5f8 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -336,3 +336,5 @@ void zone_set_lastsigned_serial(conf_t *conf, zone_t *zone, uint32_t serial); int zone_get_lastsigned_serial(zone_t *zone, uint32_t *serial); int slave_zone_serial(zone_t *zone, conf_t *conf, uint32_t *serial); + +time_t zone_bootstrap_next(uint8_t *count); From f9b11c94f40eff8c90f2d310fc414c5f024997b9 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 12 Nov 2025 14:01:41 +0100 Subject: [PATCH 248/675] zone: change constant random part of rebootstrap scheduling to be progressive --- src/knot/zone/zone.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index b09a5e08fe..82b1ef3cb0 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -1028,5 +1028,5 @@ time_t zone_bootstrap_next(uint8_t *count) } // Add a random delay to prevent burst refresh. - return increment + dnssec_random_uint16_t() % 30; + return increment + dnssec_random_uint16_t() % MIN(30, (1 + *count) * 5); } From 4edfe2d458faab5483c9c5d537aa3399ffe4e5da Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 10 Nov 2025 14:09:19 +0100 Subject: [PATCH 249/675] redis: improve error processing in knot_redis_tls_read() and knot_redis_tls_write() --- src/knot/common/hiredis.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c index 4f1ea01f00..37cfcd3290 100644 --- a/src/knot/common/hiredis.c +++ b/src/knot/common/hiredis.c @@ -71,15 +71,11 @@ static ssize_t knot_redis_tls_read(struct redisContext *ctx, char *buff, size_t int ret = knot_tls_recv(tls_ctx->conn, buff, size); if (ret >= 0) { return ret; - } else if (ret == KNOT_EBADCERT || - ret == KNOT_NET_ERECV || - ret == KNOT_NET_ECONNECT || - ret == KNOT_NET_EHSHAKE || - ret == KNOT_ETIMEOUT - ) { + } else if (ret == KNOT_NET_EAGAIN) { + return 0; + } else { return -1; } - return 0; } static ssize_t knot_redis_tls_write(struct redisContext *ctx) @@ -89,15 +85,11 @@ static ssize_t knot_redis_tls_write(struct redisContext *ctx) int ret = knot_tls_send(tls_ctx->conn, ctx->obuf, sdslen(ctx->obuf)); if (ret >= 0) { return ret; - } else if (ret == KNOT_EBADCERT || - ret == KNOT_NET_ESEND || - ret == KNOT_NET_ECONNECT || - ret == KNOT_NET_EHSHAKE || - ret == KNOT_ETIMEOUT - ) { + } else if (ret == KNOT_NET_EAGAIN) { + return 0; + } else { return -1; } - return 0; } static int hiredis_attach_gnutls(redisContext *ctx, struct knot_creds *local_creds, From c36558d0a28d46bad56148329f2d56bb7e9b0c79 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 12 Nov 2025 17:21:39 +0100 Subject: [PATCH 250/675] redis: fix memory leaks --- src/knot/common/hiredis.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c index 37cfcd3290..631fe2533d 100644 --- a/src/knot/common/hiredis.c +++ b/src/knot/common/hiredis.c @@ -37,18 +37,6 @@ redisContextFuncs redisContextGnuTLSFuncs = { .write = knot_redis_tls_write }; -static void ctx_deinit(redis_tls_ctx_t *ctx) -{ - if (ctx != NULL) { - if (ctx->tls != NULL) { - knot_creds_free(ctx->tls->creds); - knot_tls_ctx_free(ctx->tls); - } - knot_creds_free(ctx->local_creds); - hi_free(ctx); - } -} - static void knot_redis_tls_close(redisContext *ctx) { redis_tls_ctx_t *tls_ctx = ctx->privctx; @@ -61,7 +49,15 @@ static void knot_redis_tls_close(redisContext *ctx) static void knot_redis_tls_free(void *privctx) { - ctx_deinit((redis_tls_ctx_t *)privctx); + redis_tls_ctx_t *tls_ctx = privctx; + if (tls_ctx != NULL) { + if (tls_ctx->tls != NULL) { + knot_creds_free(tls_ctx->tls->creds); + knot_tls_ctx_free(tls_ctx->tls); + } + knot_creds_free(tls_ctx->local_creds); + hi_free(tls_ctx); + } } static ssize_t knot_redis_tls_read(struct redisContext *ctx, char *buff, size_t size) @@ -103,17 +99,21 @@ static int hiredis_attach_gnutls(redisContext *ctx, struct knot_creds *local_cre privctx->tls = knot_tls_ctx_new(creds, 5000, 2000, KNOT_TLS_CLIENT); if (privctx->tls == NULL) { - ctx_deinit(privctx); + hi_free(privctx); return KNOT_EINVAL; } privctx->conn = knot_tls_conn_new(privctx->tls, ctx->fd); if (privctx->conn == NULL) { - ctx_deinit(privctx); + knot_tls_ctx_free(privctx->tls); + hi_free(privctx); return KNOT_ECONN; } if (knot_tls_handshake(privctx->conn, true) != KNOT_EOK) { + knot_tls_conn_del(privctx->conn); + knot_tls_ctx_free(privctx->tls); + hi_free(privctx); return KNOT_ECONN; } @@ -138,6 +138,7 @@ static redisContext *connect_addr(conf_t *conf, const char *addr_str, int port) log_debug("rdb, failed to connect, remote %s%s%.0u (%s)", addr_str, (port != 0 ? "@" : ""), port, (rdb != NULL ? rdb->errstr : "no reply")); + redisFree(rdb); return NULL; } @@ -347,10 +348,14 @@ redisContext *rdb_connect(conf_t *conf, bool require_master) } else if (role == 1 && !require_master) { // Replica goto connected; } else if (role == 2) { // Sentinel - if (get_master(rdb, addr_str, sizeof(addr_str), &port) == KNOT_EOK && + int ret = get_master(rdb, addr_str, sizeof(addr_str), &port); + redisFree(rdb); + if (ret == KNOT_EOK && (rdb = connect_addr(conf, addr_str, port)) != NULL) { goto connected; } + } else { + redisFree(rdb); } conf_val_next(&db_listen); From 6349de4ae6e8fab5c97ba66df74df1126c847cb8 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 22 Nov 2025 23:04:46 +0100 Subject: [PATCH 251/675] redis: add debug log when a valid event is received --- src/knot/server/server.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 2a53074761..8b24918c11 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -900,6 +900,8 @@ static void rdb_process_event(redisReply *reply, knot_zonedb_t *zone_db, switch (type) { case RDB_EVENT_ZONE: case RDB_EVENT_UPD: + log_zone_debug(zone->name, "rdb, event %s %s, serial %u", + since, (type == RDB_EVENT_ZONE ? "zone" : "update"), serial); zone_schedule_update(conf(), zone, ZONE_EVENT_LOAD); break; default: From 7def9e4595ab9eef1411e82ad13e54d4a42a6eac Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 18 Nov 2025 21:58:02 +0100 Subject: [PATCH 252/675] ci: add libhiredis-dev to testing Dockerfiles --- scripts/docker/debian-latest/Dockerfile | 1 + scripts/docker/debian-unstable/Dockerfile | 1 + scripts/docker/fedora-latest/Dockerfile | 1 + scripts/docker/rocky-latest/Dockerfile | 1 + scripts/docker/ubuntu-latest/Dockerfile | 1 + 5 files changed, 5 insertions(+) diff --git a/scripts/docker/debian-latest/Dockerfile b/scripts/docker/debian-latest/Dockerfile index c29551e8f1..8f3daf4dfe 100644 --- a/scripts/docker/debian-latest/Dockerfile +++ b/scripts/docker/debian-latest/Dockerfile @@ -18,6 +18,7 @@ RUN apt-get -y install \ libedit-dev \ libfstrm-dev \ libgnutls28-dev \ + libhiredis-dev \ libidn2-dev \ liblmdb-dev \ libmaxminddb-dev \ diff --git a/scripts/docker/debian-unstable/Dockerfile b/scripts/docker/debian-unstable/Dockerfile index 47f5e69176..f266c54aab 100644 --- a/scripts/docker/debian-unstable/Dockerfile +++ b/scripts/docker/debian-unstable/Dockerfile @@ -14,6 +14,7 @@ RUN apt-get -y install \ libedit-dev \ libfstrm-dev \ libgnutls28-dev \ + libhiredis-dev \ libidn2-dev \ liblmdb-dev \ libmaxminddb-dev \ diff --git a/scripts/docker/fedora-latest/Dockerfile b/scripts/docker/fedora-latest/Dockerfile index 054f34e89a..061bbe9a8a 100644 --- a/scripts/docker/fedora-latest/Dockerfile +++ b/scripts/docker/fedora-latest/Dockerfile @@ -13,6 +13,7 @@ RUN dnf -y install \ 'pkgconfig' \ 'pkgconfig(lmdb)' \ 'pkgconfig(gnutls)' \ + 'pkgconfig(hiredis)' \ 'pkgconfig(libbpf)' \ 'pkgconfig(libcap-ng)' \ 'pkgconfig(libedit)' \ diff --git a/scripts/docker/rocky-latest/Dockerfile b/scripts/docker/rocky-latest/Dockerfile index a4ae823867..15b90d7e1f 100644 --- a/scripts/docker/rocky-latest/Dockerfile +++ b/scripts/docker/rocky-latest/Dockerfile @@ -12,6 +12,7 @@ RUN dnf -y --enablerepo crb install \ 'pkgconfig' \ 'pkgconfig(lmdb)' \ 'pkgconfig(gnutls)' \ + 'pkgconfig(hiredis)' \ 'pkgconfig(libbpf)' \ 'pkgconfig(libcap-ng)' \ 'pkgconfig(libedit)' \ diff --git a/scripts/docker/ubuntu-latest/Dockerfile b/scripts/docker/ubuntu-latest/Dockerfile index 996f85d3cb..614f7f6f5d 100644 --- a/scripts/docker/ubuntu-latest/Dockerfile +++ b/scripts/docker/ubuntu-latest/Dockerfile @@ -17,6 +17,7 @@ RUN apt-get -y install \ libedit-dev \ libfstrm-dev \ libgnutls28-dev \ + libhiredis-dev \ libidn2-dev \ liblmdb-dev \ libmaxminddb-dev \ From a3f44a47e9c36652b01377d1ce20c68933af99ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Wed, 5 Nov 2025 13:49:33 +0100 Subject: [PATCH 253/675] tests-extra: add support for multiple redis backends --- tests-extra/tests/redis/basic/test.py | 23 ++-- .../tests/redis/ha/data/example.com.zone | 16 +++ tests-extra/tests/redis/ha/test.py | 106 ++++++++++++++++++ tests-extra/tools/dnstest/__init__.py | 1 + tests-extra/tools/dnstest/redis.py | 73 ++++++++++-- tests-extra/tools/dnstest/server.py | 24 ++-- tests-extra/tools/dnstest/test.py | 48 ++++---- 7 files changed, 242 insertions(+), 49 deletions(-) create mode 100644 tests-extra/tests/redis/ha/data/example.com.zone create mode 100644 tests-extra/tests/redis/ha/test.py diff --git a/tests-extra/tests/redis/basic/test.py b/tests-extra/tests/redis/basic/test.py index 5e01555991..d8edab350a 100644 --- a/tests-extra/tests/redis/basic/test.py +++ b/tests-extra/tests/redis/basic/test.py @@ -2,10 +2,11 @@ '''Test master-slave-like replication using Redis database.''' +import random from dnstest.test import Test from dnstest.utils import * -t = Test(redis=True) +t = Test() master = t.server("knot") slave = t.server("knot") @@ -15,12 +16,10 @@ t.link(zones, master) t.link(zones, slave) -master.conf_zone(zones).zonefile_sync = "0" -master.conf_zone(zones).zone_db_output = "1" -slave.conf_zone(zones).zone_db_input = "1" +redis_master = t.backend("redis", tls=random.choice([True, False])) -for z in zones: - slave.zones[z.name].zfile.remove() +master.db_out(zones, [redis_master], 1) +slave.db_in(zones, [redis_master], 1) t.start() @@ -67,13 +66,13 @@ # Add to DB manually. Slave will diverge from master. for z in zones: - txn = t.redis.cli("knot.upd.begin", z.name, master.conf_zone(z).zone_db_output) - r = t.redis.cli("knot.upd.remove", z.name, txn, "example.com. 3600 in soa dns1.example.com. hostmaster.example.com. %d 10800 3600 1209600 7200" % serials3[z.name]) - r = t.redis.cli("knot.upd.add", z.name, txn, "example.com. 3600 in soa dns1.example.com. hostmaster.example.com. %d 10800 3600 1209600 7200" % (serials3[z.name] + 1)) - r = t.redis.cli("knot.upd.add", z.name, txn, "txtadd 3600 A 1.2.3.4") - r = t.redis.cli("knot.upd.commit", z.name, txn) + txn = redis_master.cli("knot.upd.begin", z.name, master.conf_zone(z).zone_db_output) + r = redis_master.cli("knot.upd.remove", z.name, txn, "example.com. 3600 in soa dns1.example.com. hostmaster.example.com. %d 10800 3600 1209600 7200" % serials3[z.name]) + r = redis_master.cli("knot.upd.add", z.name, txn, "example.com. 3600 in soa dns1.example.com. hostmaster.example.com. %d 10800 3600 1209600 7200" % (serials3[z.name] + 1)) + r = redis_master.cli("knot.upd.add", z.name, txn, "txtadd 3600 A 1.2.3.4") + r = redis_master.cli("knot.upd.commit", z.name, txn) - r = t.redis.cli("knot.upd.load", z.name, master.conf_zone(z).zone_db_output, str(serials3[z.name])) + r = redis_master.cli("knot.upd.load", z.name, master.conf_zone(z).zone_db_output, str(serials3[z.name])) if not "txtadd" in r: set_err("NO TXTADD IN UPD") diff --git a/tests-extra/tests/redis/ha/data/example.com.zone b/tests-extra/tests/redis/ha/data/example.com.zone new file mode 100644 index 0000000000..e5d9cd7142 --- /dev/null +++ b/tests-extra/tests/redis/ha/data/example.com.zone @@ -0,0 +1,16 @@ +$ORIGIN example.com. +$TTL 3600 + +@ SOA dns1 hostmaster 1 3600 5 7200 600 + NS dns1 + NS dns2 + MX 10 mail + +dns1 A 192.0.2.1 + AAAA 2001:DB8::1 + +dns2 A 192.0.2.2 + AAAA 2001:DB8::2 + +mail A 192.0.2.3 + AAAA 2001:DB8::3 diff --git a/tests-extra/tests/redis/ha/test.py b/tests-extra/tests/redis/ha/test.py new file mode 100644 index 0000000000..5a2f41f415 --- /dev/null +++ b/tests-extra/tests/redis/ha/test.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 + +'''Test of high availability using Redis replication with the sentinel mode.''' + +import random +from dnstest.test import Test +from dnstest.utils import * + +t = Test() + +master = t.server("knot") +slave1 = t.server("knot") +slave2 = t.server("knot") + +ZONE = "example.com" +zones = t.zone(ZONE, storage=".") + +t.link(zones, master) +t.link(zones, slave1) +t.link(zones, slave2) + +freeze_kill = random.choice([True, False]) +tls = random.choice([True, False]) +redis_sentinel = t.backend("redis", tls=tls) +redis_master = t.backend("redis", tls=tls) +redis_slave1 = t.backend("redis", tls=tls) +redis_slave2 = t.backend("redis", tls=tls) + +redis_slave1.slave_of(redis_master) +redis_slave2.slave_of(redis_master) +redis_sentinel.sentinel_of(redis_master, 1) + +zone_write_instances = random.choice([ + [redis_sentinel], + [redis_master, redis_slave1, redis_slave2], + [redis_sentinel, redis_master, redis_slave1, redis_slave2] +]) +master.db_out(zones, zone_write_instances, 1) +slave1.db_in(zones, [redis_slave1], 1) +slave2.db_in(zones, [redis_slave1, redis_slave2], 1) + +t.start() + +# Give sentinel some time to discover the replicas +t.sleep(10) + +# Initial synchronization +serial_init = slave1.zones_wait(zones) +serial = slave2.zones_wait(zones) +# serial == serial_init now + +# Update master, wait for for replicas +master.ctl(f"zone-serial-set {ZONE} +1") +slave1.zones_wait(zones, serial) +serial = slave2.zones_wait(zones, serial) + +# Update replica2/new_master - original master is down +redis_slave1.stop() # Ensure replica2 becomes a new master +redis_master.stop() +t.sleep(1) +for i in range(10): # usualy just 2x + try: + master.ctl(f"zone-serial-set {ZONE} +1") + except Exception: + t.sleep(2) + continue + break +slave2.zones_wait(zones, serial) +redis_slave1.start() # Put replica2 into operation +serial = slave1.zones_wait(zones, serial) + +# Clog replica2/new_master and update new master to replica1 +if freeze_kill: + redis_slave2.freeze(20).wait() +else: + redis_slave2.stop(kill=True) + t.sleep(20) + redis_slave2.start() +redis_slave1.run_monitor() +redis_slave2.run_monitor() +master.ctl(f"zone-serial-set {ZONE} +1") +slave1.zones_wait(zones, serial) +serial = slave2.zones_wait(zones, serial) + +t.xfr_diff(master, slave1, zones, serial_init) +t.xfr_diff(master, slave2, zones, serial_init) + +# Add to DB manually. +slave2.stop() +slave2.db_in(zones, [redis_slave2], 1) +slave2.gen_confile() +slave2.start() +slave2.zones_wait(zones) # interesting: remove and see +txn = redis_slave1.cli("knot.upd.begin", ZONE, "1") +redis_slave1.cli("knot.upd.add", ZONE, txn, "test TXT test") +redis_slave1.cli("knot.upd.commit", ZONE, txn) +slave1.zones_wait(zones, serial) +serial = slave2.zones_wait(zones, serial) + +t.xfr_diff(slave1, slave2, zones, serial_init) + +# Gather some information from replica2. +redis_slave2.cli("XREAD", "BLOCK", "50", "STREAMS", b"k\x01\x01", "0-0") +redis_slave2.cli("KNOT.ZONE.INFO", ZONE) + +t.end() diff --git a/tests-extra/tools/dnstest/__init__.py b/tests-extra/tools/dnstest/__init__.py index 4995bd8a12..c91a5aa575 100644 --- a/tests-extra/tools/dnstest/__init__.py +++ b/tests-extra/tools/dnstest/__init__.py @@ -7,6 +7,7 @@ "libknot", "module", "params", + "redis", "response", "server", "test", diff --git a/tests-extra/tools/dnstest/redis.py b/tests-extra/tools/dnstest/redis.py index 99892351a8..a84aeff2b7 100644 --- a/tests-extra/tools/dnstest/redis.py +++ b/tests-extra/tools/dnstest/redis.py @@ -6,12 +6,15 @@ import time class Redis(object): - def __init__(self, addr, wrk_dir, redis_bin, redis_cli, knotso): + counter = 0 + def __init__(self, addr, wrk_dir, redis_bin, redis_cli, knotso, tls=False): self.addr = addr self.port = None + self.tls = tls self.tls_port = None self.pin = None - self.wrk_dir = wrk_dir + Redis.counter += 1 + self.wrk_dir = os.path.join(wrk_dir, str(Redis.counter)) self.redis_bin = redis_bin self.redis_cli = redis_cli self.knotso = knotso @@ -19,8 +22,11 @@ def __init__(self, addr, wrk_dir, redis_bin, redis_cli, knotso): self.monitor = None self.monitor_log = None - if not os.path.exists(wrk_dir): - os.makedirs(wrk_dir) + self._master = None + self._sentinel_of = dict() + + if not os.path.exists(self.wrk_dir): + os.makedirs(self.wrk_dir) def wrk_file(self, filename): return os.path.join(self.wrk_dir, filename) @@ -32,16 +38,35 @@ def gen_confile(self): with open(self.conf_file(), "w") as cf: cf.write("dir " + self.wrk_dir + os.linesep) cf.write("logfile " + self.wrk_file("redis.log") + os.linesep) - cf.write("loadmodule " + self.knotso + os.linesep) + if len(self._sentinel_of) == 0: + cf.write("loadmodule " + self.knotso + os.linesep) cf.write("bind " + self.addr + os.linesep) cf.write("port " + str(self.port) + os.linesep) cf.write("tls-port " + str(self.tls_port) + os.linesep) cf.write("tls-protocols \"TLSv1.3\"" + os.linesep) cf.write("tls-auth-clients no" + os.linesep) + cf.write("tls-ca-cert-file cert.pem" + os.linesep) cf.write("tls-key-file key.pem" + os.linesep) cf.write("tls-cert-file cert.pem" + os.linesep) + cf.write("enable-debug-command yes" + os.linesep) + cf.write("repl-ping-replica-period 1" + os.linesep) if self.addr != "127.0.0.1" and self.addr != "::1": cf.write("protected-mode no " + os.linesep) + if self._master != None: + port = self._master.tls_port if self._master.tls else self._master.port + cf.write(f"replicaof {self._master.addr} {port}" + os.linesep) + if self.tls: + cf.write("tls-replication yes" + os.linesep) + if not self._sentinel_of.items(): + cf.write("appendonly yes" + os.linesep) + + server_idx = 0 + for server, quorum in self._sentinel_of.items(): + port = server.tls_port if server.tls else server.port + cf.write(f"sentinel monitor master-{server_idx} {server.addr} {port} {quorum}" + os.linesep) + cf.write(f"sentinel down-after-milliseconds master-{server_idx} 1000" + os.linesep) + cf.write(f"sentinel failover-timeout master-{server_idx} 6000" + os.linesep) + server_idx += 1 shutil.copy(os.path.join(params.common_data_dir, "cert", "cert.pem"), self.wrk_dir) shutil.copy(os.path.join(params.common_data_dir, "cert", "key.pem"), self.wrk_dir) @@ -49,12 +74,36 @@ def gen_confile(self): out = subprocess.check_output(["certtool", "--infile=" + keyfile, "-k"]).rstrip().decode('ascii') self.pin = ssearch(out, r'pin-sha256:([^\n]*)') + def get_prio(self): + if len(self._sentinel_of) > 0: + return 2 + elif self._master != None: + return 1 + else: + return 0 + + # Pass just master Redis, slaves are auto-discovered while starting server + def sentinel_of(self, master, quorum=1): + if self._master is not None: + raise AssertionError("can't be sentinel and db at once") + self._sentinel_of[master] = quorum + + def slave_of(self, master): + if len(self._sentinel_of) != 0: + raise AssertionError("can't be sentinel and db at once") + self._master = master + def start(self): - self.proc = subprocess.Popen([ self.redis_bin, self.conf_file() ]) - time.sleep(0.3) - monitor_cmd = [ self.redis_cli, "-h", self.addr, "-p", str(self.port), "monitor" ] - self.monitor_log = open(os.path.join(self.wrk_dir, "monitor.log"), "a") - self.monitor = subprocess.Popen(monitor_cmd, stdout=self.monitor_log, stderr=self.monitor_log) + prog = [self.redis_bin, self.conf_file()] + is_sentinel = len(self._sentinel_of) > 0 + if is_sentinel: + prog.append('--sentinel') + self.proc = subprocess.Popen(prog) + if not is_sentinel: + time.sleep(0.3) + monitor_cmd = [ self.redis_cli, "-h", self.addr, "-p", str(self.port), "monitor" ] + self.monitor_log = open(os.path.join(self.wrk_dir, "monitor.log"), "a") + self.monitor = subprocess.Popen(monitor_cmd, stdout=self.monitor_log, stderr=self.monitor_log) def stop(self): if self.monitor: @@ -64,6 +113,10 @@ def stop(self): if self.proc: self.proc.terminate() + def freeze(self, seconds): + cmd = [ self.redis_cli, "-h", self.addr, "-p", str(self.port), "DEBUG", "sleep", str(seconds) ] + return subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + def cli(self, *params): cmd = [ self.redis_cli, "-h", self.addr, "-p", str(self.port) ] + list(params) p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 8de79ec2e3..cedd3ae615 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -193,7 +193,7 @@ def __init__(self): self.session_log = None self.confile = None - self.redis = None + self.redis_backends = list() self.binding_errors = 0 @@ -1694,12 +1694,11 @@ def get_config(self): s.item_str("timer-db-max-size", self.timer_db_size) s.item_str("timer-db-sync", random.choice(["shutdown", "immediate", "5", "3600"])) s.item_str("catalog-db-max-size", self.catalog_db_size) - if self.redis is not None: - tls = random.choice([True, False]) - port = self.redis.tls_port if tls else self.redis.port - s.item_str("zone-db-listen", self.redis.addr + "@" + str(port)) - if tls: - s.item_str("zone-db-cert-key", self.redis.pin) + if len(self.redis_backends) > 0: + s.item_list("zone-db-listen", map(lambda b: f"{b.addr}@{b.tls_port if b.tls else b.port}", + self.redis_backends)) + if list(self.redis_backends)[0].tls: + s.item_list("zone-db-cert-key", map(lambda b: f"{b.pin}", self.redis_backends)) s.item_str("zone-db-tls", "on") s.end() @@ -1808,6 +1807,17 @@ def get_config(self): return s.conf + def db_out(self, zones, redis_list, instance): + for z in zones: + self.conf_zone(z).zone_db_output = str(instance) + self.redis_backends = redis_list + + def db_in(self, zones, redis_list, instance): + for z in zones: + self.conf_zone(z).zone_db_input = str(instance) + self.zones[z.name].zfile.remove() + self.redis_backends = redis_list + def ctl_sock_rnd(self, name_only=False): sockname = random.choice(["knot.sock", "knot2.sock"]) sockpath = os.path.join(self.dir, sockname) diff --git a/tests-extra/tools/dnstest/test.py b/tests-extra/tools/dnstest/test.py index c377c10535..414fb2886d 100644 --- a/tests-extra/tools/dnstest/test.py +++ b/tests-extra/tools/dnstest/test.py @@ -46,7 +46,7 @@ class Test(object): rel_time = time.time() start_time = 0 - def __init__(self, address=None, tsig=None, stress=True, quic=False, tls=False, redis=False): + def __init__(self, address=None, tsig=None, stress=True, quic=False, tls=False): if not os.path.exists(Context().out_dir): raise Exception("Output directory doesn't exist") @@ -63,15 +63,7 @@ def __init__(self, address=None, tsig=None, stress=True, quic=False, tls=False, else: self.addr = Test.LOCAL_ADDR_MULTI[random.choice([4, 6])] - self.redis = None - redis_knotso = repo_file("src", "redis", ".libs", "knot.so") - if redis: - if params.redis_bin == "": - raise Skip("Redis server not available") - if redis_knotso is None: - raise Skip("Redis knot module not available") - self.redis = dnstest.redis.Redis(self.addr, os.path.join(self.out_dir, "redis"), - params.redis_bin, params.redis_cli, redis_knotso) + self.backends = set() self.tsig = None if tsig != None: @@ -235,8 +227,6 @@ def server(self, server, nsid=None, ident=None, version=None, \ if os.path.isfile(suppressions_file): srv.valgrind.append("--suppressions=%s" % suppressions_file) - srv.redis = self.redis - self.servers.add(srv) return srv @@ -253,6 +243,24 @@ def server_remove(self, server=None): for server in servers: self.server_remove(server) + def backend(self, kind, tls=False): + if kind == "redis": + if params.redis_bin == "": + raise Skip("Redis server not available") + + redis_knotso = repo_file("src", "redis", ".libs", "knot.so") + if redis_knotso is None: + raise Skip("Redis knot module not available") + + backend = dnstest.redis.Redis(self.addr, + os.path.join(self.out_dir, "redis"), + params.redis_bin, params.redis_cli, + redis_knotso, tls) + self.backends.add(backend) + return backend + else: + raise Failed("Unsupported backend type '%s'" % kind) + def generate_conf(self): # Next two loops can't be merged! for server in self.servers: @@ -271,10 +279,10 @@ def generate_conf(self): server.xdp_cover_sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) server.xdp_cover_sock.bind((server.addr, server.xdp_port)) - if self.redis is not None: - self.redis.port = self._gen_port() - self.redis.tls_port = self._gen_port() - self.redis.gen_confile() + for backend in sorted(self.backends, key=lambda e: e.get_prio()): + backend.port = self._gen_port() + backend.tls_port = self._gen_port() + backend.gen_confile() for server in self.servers: server.gen_confile() @@ -291,8 +299,8 @@ def start(self): self.generate_conf() - if self.redis: - self.redis.start() + for b in self.backends: + b.start() def srv_sort(server): masters = 0 @@ -327,8 +335,8 @@ def stop(self, check=True, kill=False): else: server.stop(check=check) - if self.redis: - self.redis.stop() + for b in self.backends: + b.stop() def end(self): '''Finish testing''' From 132553577cc2aa1ebc376871104f3362ce2ece2a Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 26 Nov 2025 09:49:40 +0100 Subject: [PATCH 254/675] tests/redis: improvements in test infra --- tests-extra/tools/dnstest/redis.py | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/tests-extra/tools/dnstest/redis.py b/tests-extra/tools/dnstest/redis.py index a84aeff2b7..d535c43983 100644 --- a/tests-extra/tools/dnstest/redis.py +++ b/tests-extra/tools/dnstest/redis.py @@ -1,5 +1,6 @@ from dnstest.utils import * import dnstest.params as params +import datetime import os import shutil import subprocess @@ -99,19 +100,32 @@ def start(self): if is_sentinel: prog.append('--sentinel') self.proc = subprocess.Popen(prog) - if not is_sentinel: - time.sleep(0.3) + + time.sleep(0.3) + self.run_monitor() + + def run_monitor(self): + is_sentinel = len(self._sentinel_of) > 0 + if not is_sentinel and (not self.monitor or self.monitor.poll() is not None): + if self.monitor_log: + self.monitor_log.close() + monitor_cmd = [ self.redis_cli, "-h", self.addr, "-p", str(self.port), "monitor" ] self.monitor_log = open(os.path.join(self.wrk_dir, "monitor.log"), "a") self.monitor = subprocess.Popen(monitor_cmd, stdout=self.monitor_log, stderr=self.monitor_log) - def stop(self): + def stop(self, kill=False): if self.monitor: self.monitor.terminate() + self.monitor = None if self.monitor_log: self.monitor_log.close() + self.monitor_log = None if self.proc: - self.proc.terminate() + if kill: + self.proc.kill() + else: + self.proc.terminate() def freeze(self, seconds): cmd = [ self.redis_cli, "-h", self.addr, "-p", str(self.port), "DEBUG", "sleep", str(seconds) ] @@ -121,4 +135,9 @@ def cli(self, *params): cmd = [ self.redis_cli, "-h", self.addr, "-p", str(self.port) ] + list(params) p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, _ = p.communicate() - return out.decode().strip() + txt = out.decode().strip() + outf = open(os.path.join(self.wrk_dir, "cli.log"), "a") + outf.write("%s CLI %s\n" % (str(datetime.datetime.now()), str(list(params)))) + outf.write(txt) + outf.write("\n--------\n") + return txt From 3877f3c40f4540cf5304a8bac003e39b778dec3e Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 26 Nov 2025 13:09:37 +0100 Subject: [PATCH 255/675] redis: use expliciti initial stream ID based on the time of server start --- src/knot/server/server.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 8b24918c11..cedb88b3ad 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -938,7 +938,10 @@ static int rdb_listener_run(struct dthread *thread) server_t *s = thread->data; s->rdb_ctx = NULL; + + const uint64_t prop_delay = 60; // Maximum considered propagation delay to all replicas. char since[RDB_TIMESTAMP_SIZE] = "$"; + (void)snprintf(since, sizeof(since), "%"PRIu64"-0", (knot_time() - prop_delay) * 1000); while (thread->state & ThreadActive) { if (s->rdb_ctx == NULL) { From e4d28d81b75072e8e3ad23ca8fabd90c148f404f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 26 Nov 2025 13:28:12 +0100 Subject: [PATCH 256/675] redis: add extra info to connection log --- src/knot/common/hiredis.c | 4 ++-- src/knot/common/hiredis.h | 2 +- src/knot/server/server.c | 4 ++-- src/knot/zone/redis.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c index 631fe2533d..3bbf6d968a 100644 --- a/src/knot/common/hiredis.c +++ b/src/knot/common/hiredis.c @@ -309,7 +309,7 @@ static int get_master(redisContext *rdb, char *out, size_t out_len, int *port) return KNOT_EOK; } -redisContext *rdb_connect(conf_t *conf, bool require_master) +redisContext *rdb_connect(conf_t *conf, bool require_master, const char *info) { int port = 0; int role = -1; @@ -371,7 +371,7 @@ redisContext *rdb_connect(conf_t *conf, bool require_master) #ifdef ENABLE_REDIS_TLS tls = rdb->privctx != NULL; #endif // ENABLE_REDIS_TLS - log_debug("rdb, connected, remote %s%s%.0u%s%s%s", + log_debug("rdb, connected%s, remote %s%s%.0u%s%s%s", info, (tcp ? rdb->tcp.host : rdb->unix_sock.path), (tcp ? "@" : ""), (tcp ? rdb->tcp.port : 0), diff --git a/src/knot/common/hiredis.h b/src/knot/common/hiredis.h index 9b9f3f078e..40e9a4a7ce 100644 --- a/src/knot/common/hiredis.h +++ b/src/knot/common/hiredis.h @@ -15,7 +15,7 @@ int rdb_addr_to_str(struct sockaddr_storage *addr, char *out, size_t out_len, int *port); -redisContext *rdb_connect(conf_t *conf, bool require_master); +redisContext *rdb_connect(conf_t *conf, bool require_master, const char *info); void rdb_disconnect(redisContext *rdb, bool pool_save); diff --git a/src/knot/server/server.c b/src/knot/server/server.c index cedb88b3ad..32af116ca7 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -945,9 +945,9 @@ static int rdb_listener_run(struct dthread *thread) while (thread->state & ThreadActive) { if (s->rdb_ctx == NULL) { - s->rdb_ctx = rdb_connect(conf(), false); + s->rdb_ctx = rdb_connect(conf(), false, " events"); if (s->rdb_ctx == NULL) { - log_error("rdb, failed to connect to read events"); + log_error("rdb, failed to connect events"); sleep(2); continue; } else if (!rdb_compatible(s->rdb_ctx)) { diff --git a/src/knot/zone/redis.c b/src/knot/zone/redis.c index bc14a330cc..546c1034c8 100644 --- a/src/knot/zone/redis.c +++ b/src/knot/zone/redis.c @@ -17,7 +17,7 @@ struct redisContext *zone_redis_connect(conf_t *conf, bool require_master) { - return rdb_connect(conf, require_master); + return rdb_connect(conf, require_master, require_master ? " worker writer" : " worker reader"); } void zone_redis_disconnect(struct redisContext *ctx, bool pool_save) From 42c2fa7ba804750bafe5b18217802fbf40606358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hynek=20=C5=A0aback=C3=BD?= Date: Tue, 25 Nov 2025 10:14:43 +0100 Subject: [PATCH 257/675] configure: prefer protoc from protobuf-compiler over protoc-c from protobuf-c-compiler --- README.md | 2 +- configure.ac | 8 ++++++-- distro/pkg/deb/control | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5f5f3a480a..248727fc98 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ sudo apt-get install \ #### Install optional packages: ```bash sudo apt-get install \ - libcap-ng-dev libsystemd-dev libidn2-dev libprotobuf-c-dev protobuf-c-compiler libfstrm-dev libmaxminddb-dev libnghttp2-dev libbpf-dev libxdp-dev libmnl-dev python3-sphinx python3-sphinx-panels softhsm2 + libcap-ng-dev libsystemd-dev libidn2-dev libprotobuf-c-dev protobuf-c-compiler protobuf-compiler libfstrm-dev libmaxminddb-dev libnghttp2-dev libbpf-dev libxdp-dev libmnl-dev python3-sphinx python3-sphinx-panels softhsm2 ``` ### Fedora like distributions diff --git a/configure.ac b/configure.ac index 331772011d..1c0ee162bd 100644 --- a/configure.ac +++ b/configure.ac @@ -428,9 +428,13 @@ AC_ARG_ENABLE([dnstap], [], [enable_dnstap=no]) AS_IF([test "$enable_dnstap" != "no" -o "$STATIC_MODULE_dnstap" != "no" -o "$SHARED_MODULE_dnstap" != "no"],[ - AC_PATH_PROG([PROTOC_C], [protoc-c]) + AC_PATH_PROG([PROTOC_C], [protoc]) AS_IF([test -z "$PROTOC_C"],[ - AC_MSG_ERROR([The protoc-c program was not found. Please install protobuf-c!]) + AC_PATH_PROG([PROTOC_C], [protoc-c]) + ]) + + AS_IF([test -z "$PROTOC_C"],[ + AC_MSG_ERROR([Neither protoc nor protoc-c found. Install protobuf-compiler and protobuf-c-compiler]) ]) PKG_CHECK_MODULES([libfstrm], [libfstrm]) PKG_CHECK_MODULES([libprotobuf_c], [libprotobuf-c >= 1.0.0]) diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index 96c6960dfe..d205e49cca 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -33,6 +33,7 @@ Build-Depends: libxdp-dev, pkgconf, protobuf-c-compiler, + protobuf-compiler, python3-all, softhsm2 , Standards-Version: 4.7.2 From c2a6a5e17d99301b986ec2faeddb644bfde4c655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hynek=20=C5=A0aback=C3=BD?= Date: Tue, 25 Nov 2025 10:31:37 +0100 Subject: [PATCH 258/675] docker: Update Dockerfiles to install protobuf-compiler to use protoc instead of protoc-c --- Dockerfile | 3 ++- scripts/docker/debian-latest/Dockerfile | 1 + scripts/docker/debian-unstable/Dockerfile | 3 ++- scripts/docker/ubuntu-latest/Dockerfile | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2bdabd4e7f..018074fab5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,7 +25,8 @@ ENV BUILD_PKGS=" \ libxdp-dev \ make \ pkg-config \ - protobuf-c-compiler" + protobuf-c-compiler \ + protobuf-compiler" # Install dependencies RUN apt-get update && \ diff --git a/scripts/docker/debian-latest/Dockerfile b/scripts/docker/debian-latest/Dockerfile index 8f3daf4dfe..512dadd25d 100644 --- a/scripts/docker/debian-latest/Dockerfile +++ b/scripts/docker/debian-latest/Dockerfile @@ -33,6 +33,7 @@ RUN apt-get -y install \ locales-all \ pkg-config \ protobuf-c-compiler \ + protobuf-compiler \ python3-sphinx \ python3-sphinx-panels \ texlive \ diff --git a/scripts/docker/debian-unstable/Dockerfile b/scripts/docker/debian-unstable/Dockerfile index f266c54aab..69245d329c 100644 --- a/scripts/docker/debian-unstable/Dockerfile +++ b/scripts/docker/debian-unstable/Dockerfile @@ -29,4 +29,5 @@ RUN apt-get -y install \ libxdp-dev \ locales-all \ pkg-config \ - protobuf-c-compiler + protobuf-c-compiler \ + protobuf-compiler diff --git a/scripts/docker/ubuntu-latest/Dockerfile b/scripts/docker/ubuntu-latest/Dockerfile index 614f7f6f5d..f8c70d8704 100644 --- a/scripts/docker/ubuntu-latest/Dockerfile +++ b/scripts/docker/ubuntu-latest/Dockerfile @@ -30,6 +30,7 @@ RUN apt-get -y install \ libxdp-dev \ pkg-config \ protobuf-c-compiler \ + protobuf-compiler \ python3-sphinx \ texlive \ texlive-font-utils \ From 107a865ece8da2414c3b06d8999cbf411f007826 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 27 Nov 2025 16:16:10 +0100 Subject: [PATCH 259/675] tests-extra: fix redis/basic --- tests-extra/tests/redis/basic/test.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests-extra/tests/redis/basic/test.py b/tests-extra/tests/redis/basic/test.py index d8edab350a..ca95a04a77 100644 --- a/tests-extra/tests/redis/basic/test.py +++ b/tests-extra/tests/redis/basic/test.py @@ -59,9 +59,10 @@ resp.check(rcode="NOERROR", nordata="1.2.3.4", rdata="1.2.3.5", ttl=1800) # Test no change +uptodate_log_before = slave.log_search_count("database is up-to-date") slave.ctl("zone-reload", wait=True) -uptodate_log = slave.log_search_count("database is up-to-date") -if uptodate_log != len(zones): +uptodate_log_after = slave.log_search_count("database is up-to-date") +if uptodate_log_after - uptodate_log_before != len(zones): set_err("UP-TO-DATE LOGGED %dx" % uptodate_log) # Add to DB manually. Slave will diverge from master. From 0d12eeeda7918987481a05a3fd3b831799b60b19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Fri, 21 Nov 2025 13:58:12 +0100 Subject: [PATCH 260/675] doc/appendices: reformat the "supported HSMs" table + add last tested date --- doc/appendices.rst | 113 ++++++++++++++++++++++----------------------- 1 file changed, 55 insertions(+), 58 deletions(-) diff --git a/doc/appendices.rst b/doc/appendices.rst index 1012623d27..98c5c62495 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -16,77 +16,74 @@ indicates which algorithms and operations have been observed to work. Please notice minimal GnuTLS library version required for particular algorithm support. -.. |yes| replace:: **yes** -.. |no| replace:: no -.. |unknown| replace:: ? - .. list-table:: :header-rows: 1 :stub-columns: 1 * - - - Key generate - - Key import - - ED25519 256-bit - - ECDSA 256-bit - - ECDSA 384-bit - - RSA 1024-bit - - RSA 2048-bit - - RSA 4096-bit + - Generate + - Import + - ED25519 + - ECDSA + - RSA + - Last tested * - `Feitian ePass 2003 `_ - - |yes| - - |no| - - |no| - - |no| - - |no| - - |yes| - - |yes| - - |no| + - yes + - n/a + - n/a + - n/a + - | 1024 + | 2048 + - 2017-07 * - `SafeNet Network HSM (Luna SA 4) `_ - - |yes| - - |no| - - |no| - - |no| - - |no| - - |yes| - - |yes| - - |yes| + - yes + - n/a + - n/a + - n/a + - | 1024 + | 2048 + | 4096 + - 2017-07 * - `SoftHSM 2.0 `_ [#fn-softhsm]_ - - |yes| - - |yes| - - |yes| - - |yes| - - |yes| - - |yes| - - |yes| - - |yes| + - yes + - yes + - | 256 + - | 256 + | 384 + - | 1024 + | 2048 + | 4096 + - 2021-09 * - `Trustway Proteccio NetHSM `_ - - |yes| + - yes - ECDSA only - - |no| - - |yes| - - |yes| - - |yes| - - |yes| - - |yes| + - n/a + - | 256 + | 384 + - | 1024 + | 2048 + | 4096 + - 2019-03 * - `Ultra Electronics CIS Keyper Plus (Model 9860-2) `_ - - |yes| + - yes - RSA only - - |no| - - |yes| - - |yes| - - |yes| - - |yes| - - |yes| + - n/a + - | 256 + | 384 + - | 1024 + | 2048 + | 4096 + - 2020-01 * - `Utimaco SecurityServer (V4) `_ [#fn-utimaco]_ - - |yes| - - |yes| - - |no| - - |yes| - - |yes| - - |yes| - - |yes| - - |yes| + - yes + - yes + - n/a + - | 256 + | 384 + - | 1024 + | 2048 + | 4096 + - 2018-09 .. in progress: key ID checks have to be disabled in code * - `Yubikey NEO `_ From 12a40c307d6e53b32fb8bd95c9f8f6a108f1d7a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Tue, 25 Nov 2025 21:46:17 +0100 Subject: [PATCH 261/675] scripts: showkey Create a tool for dnssec keys info binary dumps. Specifically for libknot/dnssec/sample_keys.h --- .gitignore | 1 + scripts/showkey/Makefile | 15 ++ scripts/showkey/showkey.c | 438 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 454 insertions(+) create mode 100644 scripts/showkey/Makefile create mode 100644 scripts/showkey/showkey.c diff --git a/.gitignore b/.gitignore index ccf932c97a..145da3a245 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ .libs/ .deps/ .dirstamp +/scripts/showkey/showkey /tmp /Knot.creator.user* /Knot.cflags diff --git a/scripts/showkey/Makefile b/scripts/showkey/Makefile new file mode 100644 index 0000000000..a577d46a8a --- /dev/null +++ b/scripts/showkey/Makefile @@ -0,0 +1,15 @@ +CC ::= cc +BASEDIR ::= $(shell realpath ../../src) +SOURCES ::= showkey.c $(BASEDIR)/contrib/base64.c +CFLAGS ::= -Wall -Wextra -O0 -ggdb3 -I$(BASEDIR) +LDFLAGS ::= -Wl,-rpath,$(BASEDIR)/.libs -L$(BASEDIR)/.libs -lknot + +all: showkey + +showkey: $(SOURCES) + $(CC) $^ -o $@ $(CFLAGS) $(LDFLAGS) + +clean: + rm -f showkey + +.PHONY: all clean diff --git a/scripts/showkey/showkey.c b/scripts/showkey/showkey.c new file mode 100644 index 0000000000..8349a8b861 --- /dev/null +++ b/scripts/showkey/showkey.c @@ -0,0 +1,438 @@ +// Copyright (C) CZ.NIC, z.s.p.o. and contributors +// SPDX-License-Identifier: GPL-2.0-or-later +// For more information, see + +// NOTE: build with 'make' AFTER building .libs/libknot.so in the parent project, otherwise the +// program won't be linked correctly + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "contrib/base64.h" +#include "libknot/dnssec/key.h" +#include "libknot/dnssec/key/internal.h" +#include "libknot/libknot.h" + +#define PROGRAM_NAME "showkey" +#define USAGE \ + "NAME \n" \ + " "PROGRAM_NAME" - dnssec key dump utility \n" \ + " \n" \ + "SYNOPSIS \n" \ + " "PROGRAM_NAME" -h \n" \ + " "PROGRAM_NAME" [-a ALGO] [-d DNAME] [-s KEYSIZE] [-f FLAGS]\n" \ + " "PROGRAM_NAME" -p FILE -a ALGO -d DNAME -f FLAGS \n" \ + " \n" \ + "DESCRIPTION \n" \ + " This program dumps dnssec keys in format used by \n" \ + " libknot/dnssec/sample_keys.h. \n" \ + " \n" \ + " Options \n" \ + " -h help \n" \ + " -a key algorithm (default: 13) \n" \ + " -d DNAME (default: example.) \n" \ + " -s keysize (default: 256 or deduced from -a) \n" \ + " -f DNSKEY flags (default: 256) \n" \ + " -p .pem file \n" \ + " \n" \ + " ALGO is one of: \n" \ + " 5 (RSA-SHA1) 8 (RSA-SHA256) \n" \ + " 10 (RSA-SHA512) 13 (ECDSA-P256-SHA256) \n" \ + " 14 (ECDSA-P384-SHA384) 15 (ED25519) \n" \ + " 16 (ED448) \n" + +typedef struct { + char *pem; + char *dname; + dnssec_key_algorithm_t algo; + uint16_t flags; + uint16_t keysize; +} args_t; + +static char *to_hex(const uint8_t *bytes, size_t nbytes, int colwidth) +{ + size_t alloced = nbytes * 9 + 1; + char *buf = calloc(1, alloced); + if (buf == NULL) { + return buf; + } + + size_t nwr, i; + for (nwr = 0, i = 0; i < nbytes; ++i) { + nwr += sprintf(&buf[nwr], (i % colwidth) ? "0x%02x, " : "\n\t\t0x%02x, ", bytes[i]); + assert(nwr < alloced); + } + + return buf; +} + +static char *to_hex2(const uint8_t *bytes, size_t nbytes) +{ + size_t alloced = nbytes * 2 + 1; + char *buf = calloc(1, alloced); + if (buf == NULL) { + return buf; + } + + size_t nwr, i; + for (nwr = 0, i = 0; i < nbytes; ++i) { + nwr += sprintf(&buf[nwr], "%02X", bytes[i]); + assert(nwr < alloced); + } + + return buf; +} + +static char *dname_wire_str(const knot_dname_t *dname) +{ + if (dname == NULL) { + return NULL; + } + + size_t alloced = strlen((const char *)dname) * 4 + 1; + char *out = calloc(1, alloced); + char *dst = out; + for (const uint8_t *c = dname, *next = dname; *c != 0; ++c) { + if (c == next) { + dst += sprintf(dst, "\"\\x%02x\"\"", *c); + next += *next + 1; + } else { + dst += sprintf(dst, (c + 1 == next) ? "%c\"" : "%c", *c); + } + } + + return out; +} + +static int print_key(const dnssec_key_t *key) +{ + int ret = KNOT_EOK; + + char *key_id = NULL; + char *str_pubkey = NULL; + char *str_pem = NULL; + const knot_dname_t *dname = NULL; + char *str_dname = NULL; + char *txt_dname = NULL; + dnssec_binary_t ds[3] = { 0 }; + char *str_ds[3] = { 0 }; + char *txt_ds[3] = { 0 }; + dnssec_binary_t pem = { 0 }; + uint8_t *dnskey_base64 = NULL; + + uint8_t algo = dnssec_key_get_algorithm(key); + uint8_t proto = dnssec_key_get_protocol(key); + uint16_t flags = dnssec_key_get_flags(key); + uint16_t keytag = dnssec_key_get_keytag(key); + uint32_t keysz = dnssec_key_get_size(key); + + dnssec_binary_t pubkey; + ret = dnssec_key_get_pubkey(key, &pubkey); + str_pubkey = to_hex(pubkey.data, pubkey.size, 10); + if (ret || str_pubkey == NULL) { + goto finish; + } + + static const dnssec_key_digest_t digests[] = { + DNSSEC_KEY_DIGEST_SHA1, + DNSSEC_KEY_DIGEST_SHA256, + DNSSEC_KEY_DIGEST_SHA384, + }; + for (int i = 0; i < 3; ++i) { + ret = dnssec_key_create_ds(key, digests[i], &ds[i]); + str_ds[i] = to_hex(ds[i].data, ds[i].size, 10); + txt_ds[i] = to_hex2(ds[i].data + 4, ds[i].size - 4); // first 4B are keytag, keyalgo, dsalgo + if (ret || str_ds[i] == NULL) { + goto finish; + } + } + + ret = dnssec_pem_from_privkey(key->private_key, &pem); + str_pem = to_hex(pem.data, pem.size, 10); + if (ret || str_pem == NULL) { + goto finish; + } + + dname = dnssec_key_get_dname(key); + str_dname = dname_wire_str(dname); + txt_dname = knot_dname_to_str(NULL, dname, 0); + ret = dnssec_key_get_keyid(key, &key_id); + if (ret || dname == NULL || str_dname == NULL || txt_dname == NULL) { + goto finish; + } + + size_t dnskey_b64_len = knot_base64_encode_alloc(pubkey.data, pubkey.size, &dnskey_base64); + if (dnskey_b64_len <= 0) { + ret = 1; + goto finish; + } + + const char *str_algo = knot_lookup_by_id(knot_dnssec_alg_names, algo)->name; + if (str_algo == NULL) { + ret = 1; + goto finish; + } + + printf("/*\n" + "\n" + "%s (%db)\n" + "\n" + "%s\tDNSKEY\t%5d %d %d %.*s\n" + "%s\tDS \t%5d %d 1 %s\n" + "%s\tDS \t%5d %d 2 %s\n" + "%s\tDS \t%5d %d 4 %s\n" + "\n" + "%.*s\n" + "*/\n" + "static const key_parameters_t KEY = {\n" + " .name = (uint8_t *)%s,\n" + " .flags = %hu,\n" + " .protocol = %u,\n" + " .algorithm = %u,\n" + " .public_key = { .size = %zu, .data = (uint8_t []){%s\n" + " }},\n" + " .rdata = { .size = %zu, .data = (uint8_t []){\n" + " %02x, 0x%02x, 0x%02x, 0x%02x,%s\n" + " }},\n" + " .key_id = \"%s\",\n" + " .keytag = %d,\n" + " .ds_sha1 = { .size = %zu, .data = (uint8_t []){%s\n" + " }},\n" + " .ds_sha256 = { .size = %zu, .data = (uint8_t []){%s\n" + " }},\n" + " .ds_sha384 = { .size = %zu, .data = (uint8_t []){%s\n" + " }},\n" + " .bit_size = %u,\n" + " .pem = { .size = %zu, .data = (uint8_t []){%s\n" + " }},\n" + "};\n", + str_algo, keysz, + txt_dname, flags, proto, algo, (int)dnskey_b64_len, dnskey_base64, + txt_dname, keytag, algo, txt_ds[0], + txt_dname, keytag, algo, txt_ds[1], + txt_dname, keytag, algo, txt_ds[2], + (int)pem.size, pem.data, + str_dname, + flags, + proto, + algo, + pubkey.size, str_pubkey, + pubkey.size + 4, + flags >> 8, flags & 0xff, proto, algo, str_pubkey, + key_id, + keytag, + ds[0].size, str_ds[0], + ds[1].size, str_ds[1], + ds[2].size, str_ds[2], + keysz, + pem.size, str_pem); + +finish: + free(key_id); + free(str_dname); + free(txt_dname); + free(str_pubkey); + free(str_pem); + free(pem.data); + free(dnskey_base64); + for (int i = 0; i < 3; ++i) { + free(ds[i].data); + free(str_ds[i]); + free(txt_ds[i]); + } + + return ret; +} + +static int set_dname(dnssec_key_t *key, const char *dname) +{ + if (key == NULL) { + return 1; + } + + knot_dname_t *_dname = knot_dname_from_str(NULL, dname, 0); + int ret = dnssec_key_set_dname(key, _dname); + free(_dname); + if (_dname == NULL || ret != KNOT_EOK) { + return 1; + } + + return 0; +} + +static dnssec_key_t * +make_key(const args_t *args, dnssec_keystore_t *keystore, const char *key_id) +{ + int ret = KNOT_EOK; + + dnssec_key_t *key; + ret |= dnssec_key_new(&key); + ret |= dnssec_key_set_algorithm(key, args->algo); + ret |= dnssec_key_set_flags(key, args->flags); + ret |= dnssec_keystore_get_private(keystore, key_id, key); + ret |= set_dname(key, args->dname); + if (ret) { + dnssec_key_free(key); + return (key = NULL); + } + + return key; +} + +static void *mmap_file(const char *path, size_t *fsize_out) +{ + void *map = NULL; + + int fd = open(path, O_RDONLY); + if (fd == -1) { + return NULL; + } + + struct stat st; + int ret = fstat(fd, &st); + size_t filesize = st.st_size; + if (ret == -1 || filesize == 0) { + close(fd); + return NULL; + } + + map = mmap(NULL, filesize, PROT_READ, MAP_PRIVATE, fd, 0); + if (map == MAP_FAILED) { + munmap(map, filesize); + close(fd); + return NULL; + } + + close(fd); + *fsize_out = filesize; + return map; +} + +static dnssec_key_t *load_key(const args_t *args, uint8_t *pem, size_t pemsz) +{ + int ret = KNOT_EOK; + + if (pem == NULL) { + return NULL; + } + + dnssec_key_t *key; + ret |= dnssec_key_new(&key); + ret |= dnssec_key_set_algorithm(key, args->algo); + ret |= dnssec_key_set_flags(key, args->flags); + ret |= set_dname(key, args->dname); + ret |= dnssec_key_load_pkcs8(key, &(dnssec_binary_t){ .size = pemsz, .data = pem }); + if (ret) { + dnssec_key_free(key); + return (key = NULL); + } + + return key; +} + +int main(int argc, char **argv) +{ + int ret = 1; + + args_t args = { + .algo = DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256, + .keysize = 256, + .flags = 256, + .dname = "example.", + .pem = NULL, + }; + + for (char c = 0; c != -1;) { + c = getopt(argc, argv, "ha:d:s:p:f:"); + switch (c) { + case 'h': + case '?': + fputs(USAGE, stderr); + return c == '?'; + case 'a': + args.algo = atoi(optarg); + // some algos have fixed key sizes, so we can be helpful here + switch (args.algo) { + case DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256: + args.keysize = 256; + break; + case DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384: + args.keysize = 384; + break; + case DNSSEC_KEY_ALGORITHM_ED25519: + args.keysize = 256; + break; + case DNSSEC_KEY_ALGORITHM_ED448: + args.keysize = 456; + break; + default: + break; + } + break; + case 'f': + args.flags = atoi(optarg); + break; + case 'd': + args.dname = optarg; + break; + case 's': + args.keysize = atoi(optarg); + break; + case 'p': + args.pem = optarg; + break; + } + } + + if (args.pem == NULL) { + // generate mode + char keystore_path[] = "/tmp/knot-showkey-XXXXXX"; + dnssec_keystore_t *keystore = NULL; + char *key_id = NULL; + + mkdtemp(keystore_path); + dnssec_keystore_init_pkcs8(&keystore); + dnssec_keystore_init(keystore, keystore_path); + dnssec_keystore_open(keystore, keystore_path); + dnssec_keystore_generate(keystore, args.algo, args.keysize, NULL, &key_id); + + dnssec_key_t *key = make_key(&args, keystore, key_id); + + if (key != NULL) { + ret = print_key(key); + } else { + fputs("error constructing key\n", stderr); + } + + dnssec_keystore_remove(keystore, key_id); + free(key_id); + dnssec_key_free(key); + dnssec_keystore_deinit(keystore); + rmdir(keystore_path); + } else { + // load mode + size_t pemsz = 0; + uint8_t *pem = mmap_file(args.pem, &pemsz); + dnssec_key_t *key = load_key(&args, pem, pemsz); + + if (key != NULL) { + ret = print_key(key); + } else { + fputs("error loading key\n", stderr); + } + + dnssec_key_free(key); + munmap(pem, pemsz); + } + + if (ret) { + fputs("error\n", stderr); + } + return ret; +} From 775f83b48b11eb4492b7b499ebbd4fcf4b4bd6c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Thu, 27 Nov 2025 16:02:31 +0100 Subject: [PATCH 262/675] keymgr: test more key variants with keystore-test/bench --- src/libknot/dnssec/sample_keys.h | 2381 +++++++++++++++++-- src/utils/keymgr/keystore.c | 28 +- tests/libknot/test_dnssec_key.c | 4 +- tests/libknot/test_dnssec_key_ds.c | 6 +- tests/libknot/test_dnssec_keystore_pkcs11.c | 4 +- tests/libknot/test_dnssec_sign.c | 4 +- 6 files changed, 2175 insertions(+), 252 deletions(-) diff --git a/src/libknot/dnssec/sample_keys.h b/src/libknot/dnssec/sample_keys.h index 7a8fde5659..c9f6660a07 100644 --- a/src/libknot/dnssec/sample_keys.h +++ b/src/libknot/dnssec/sample_keys.h @@ -34,21 +34,12 @@ typedef struct key_parameters { /* -RSA-SHA-256 - -rsa. IN DNSKEY 256 3 8 AwEAAaqwL+O6GcCPkRZjoObfIJHcHPwQQY9mnAg6kROea2gsyRJOAwBNQPCfXoPtmrU0BiZ0aGBVTVPAvZh+HJRu9NEfTNDPK2HSyHdSucjY1qs6WAub6oWHJuLBxMesftpnUwoLnVZyN+pOblUZUMsvxP3PlS+mA+E6NyQX0F/fcfGL -rsa. IN DS 37335 8 1 2ABEFAAB07A900F8CB5B266FC930EEBEF51766F6 -rsa. IN DS 37335 8 2 30226484F230814C08C6DD9E2DF6E7A3DB860C2552A418CBF70D0FEE94DFA15F -rsa. IN DS 37335 8 4 978E0F7766096E131E3E90C50B63DBD825E7428E864BC5A3D32F3135A3786F0CDC6A070B6B8D760190F0F572B03CA4C0 - -Modulus: qrAv47oZwI+RFmOg5t8gkdwc/BBBj2acCDqRE55raCzJEk4DAE1A8J9eg+2atTQGJnRoYFVNU8C9mH4clG700R9M0M8rYdLId1K5yNjWqzpYC5vqhYcm4sHEx6x+2mdTCgudVnI36k5uVRlQyy/E/c+VL6YD4To3JBfQX99x8Ys= -PublicExponent: AQAB -PrivateExponent: NGDSoVBHfMbRoAw8oPxRk1D3eAZJCAdV1FSclmej0BkGLt7PnvUV+4D8UQHF2ts3E+/e48jpbM0VoUj53jbaWx1ULVmQ1cpJY0XLsRUmaQdOwEnSgXjtQy2htlth8RinB+LnVG8eUS9jWnEEikfvCLH0ptkOa/u6GKFUMj+Q95k= -Prime1: 4ZZj/YD5xvjxEuE0uR0KedsZeGT6iHqwtmJuLNuhFaeXIw5vXXZmg88U/lIo2t0DESYTbfXglw0eu62MwWb+5w== -Prime2: wbMU0wM6MYaDs4FfEeuTXT14P3cXZOFGikJPWiIUGoMGvDgYzxdiFoHzGdLkapsPizTqBKMtYQ9CYQa8g1cXvQ== -Exponent1: ywKuZVqGbdtmB9mHuvc5kEPuffxRwjS3hsq538CfDH/PcYryCagdxYy8lcqWXa/7rJkZbyGQxh7Wg4tBWmM4DQ== -Exponent2: L8MYv29sSgoBL6IW7zRHghZGMGANRLLH0g/HwVHl4yOr5X1voKEDbslcSGHYMPFLQ+goTDxwVB6PH52pnjk7gQ== -Coefficient: USHiV/UQkTz3BlxZc1IAiUQv9/Ba8wtHWSVp+YqPhxt1sfdiyUMXtlA4f6WAKAGMraoRw4wIcYr+N6Wx+wwXZw== +RSASHA256 (1024b) + +rsa1024-256. DNSKEY 256 3 8 AwEAAaqwL+O6GcCPkRZjoObfIJHcHPwQQY9mnAg6kROea2gsyRJOAwBNQPCfXoPtmrU0BiZ0aGBVTVPAvZh+HJRu9NEfTNDPK2HSyHdSucjY1qs6WAub6oWHJuLBxMesftpnUwoLnVZyN+pOblUZUMsvxP3PlS+mA+E6NyQX0F/fcfGL +rsa1024-256. DS 37335 8 1 1039E8882D516C0BA265C9BC981EE05B9DC579E6 +rsa1024-256. DS 37335 8 2 7080B51BB07449A1858322911B53BC05C26BDCE79C5B0F283CE6A829EB766FEC +rsa1024-256. DS 37335 8 4 A09F6B14A3FD17EA2D49899467ACC0A877E572246ED9744E280172C5E27F0D2935F8B8CECBD91D0CB044E043A6EE76A4 -----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKqwL+O6GcCPkRZj @@ -68,13 +59,12 @@ cYr+N6Wx+wwXZw== -----END PRIVATE KEY----- */ - -static const key_parameters_t SAMPLE_RSA_KEY = { - .name = (uint8_t *)"\x03""rsa", +static const key_parameters_t SAMPLE_RSA1024_SHA256_KEY = { + .name = (uint8_t *)"\x0b""rsa1024-256", .flags = 256, .protocol = 3, .algorithm = 8, - .public_key = { .size = 132, .data = (uint8_t []) { + .public_key = { .size = 132, .data = (uint8_t []){ 0x03, 0x01, 0x00, 0x01, 0xaa, 0xb0, 0x2f, 0xe3, 0xba, 0x19, 0xc0, 0x8f, 0x91, 0x16, 0x63, 0xa0, 0xe6, 0xdf, 0x20, 0x91, 0xdc, 0x1c, 0xfc, 0x10, 0x41, 0x8f, 0x66, 0x9c, 0x08, 0x3a, @@ -90,8 +80,8 @@ static const key_parameters_t SAMPLE_RSA_KEY = { 0x03, 0xe1, 0x3a, 0x37, 0x24, 0x17, 0xd0, 0x5f, 0xdf, 0x71, 0xf1, 0x8b, }}, - .rdata = { .size = 136, .data = (uint8_t []) { - 0x01, 0x00, 0x03, 0x08, + .rdata = { .size = 136, .data = (uint8_t []){ + 01, 0x00, 0x03, 0x08, 0x03, 0x01, 0x00, 0x01, 0xaa, 0xb0, 0x2f, 0xe3, 0xba, 0x19, 0xc0, 0x8f, 0x91, 0x16, 0x63, 0xa0, 0xe6, 0xdf, 0x20, 0x91, 0xdc, 0x1c, 0xfc, 0x10, 0x41, 0x8f, 0x66, 0x9c, 0x08, 0x3a, @@ -109,28 +99,27 @@ static const key_parameters_t SAMPLE_RSA_KEY = { }}, .key_id = "76f0d6c093d8328bc7f0e25bd8cde5575bad9b44", .keytag = 37335, - .ds_sha1 = { .size = 24, .data = (uint8_t []) { - 0x91, 0xd7, 0x08, 0x01, - 0x2a, 0xbe, 0xfa, 0xab, 0x07, 0xa9, 0x00, 0xf8, 0xcb, 0x5b, - 0x26, 0x6f, 0xc9, 0x30, 0xee, 0xbe, 0xf5, 0x17, 0x66, 0xf6, - }}, - .ds_sha256 = { .size = 36, .data = (uint8_t []) { - 0x91, 0xd7, 0x08, 0x02, - 0x30, 0x22, 0x64, 0x84, 0xf2, 0x30, 0x81, 0x4c, 0x08, 0xc6, - 0xdd, 0x9e, 0x2d, 0xf6, 0xe7, 0xa3, 0xdb, 0x86, 0x0c, 0x25, - 0x52, 0xa4, 0x18, 0xcb, 0xf7, 0x0d, 0x0f, 0xee, 0x94, 0xdf, - 0xa1, 0x5f, - }}, - .ds_sha384 = { .size = 52, .data = (uint8_t []) { - 0x91, 0xd7, 0x08, 0x04, - 0x97, 0x8e, 0x0f, 0x77, 0x66, 0x09, 0x6e, 0x13, 0x1e, 0x3e, - 0x90, 0xc5, 0x0b, 0x63, 0xdb, 0xd8, 0x25, 0xe7, 0x42, 0x8e, - 0x86, 0x4b, 0xc5, 0xa3, 0xd3, 0x2f, 0x31, 0x35, 0xa3, 0x78, - 0x6f, 0x0c, 0xdc, 0x6a, 0x07, 0x0b, 0x6b, 0x8d, 0x76, 0x01, - 0x90, 0xf0, 0xf5, 0x72, 0xb0, 0x3c, 0xa4, 0xc0, + .ds_sha1 = { .size = 24, .data = (uint8_t []){ + 0x91, 0xd7, 0x08, 0x01, 0x10, 0x39, 0xe8, 0x88, 0x2d, 0x51, + 0x6c, 0x0b, 0xa2, 0x65, 0xc9, 0xbc, 0x98, 0x1e, 0xe0, 0x5b, + 0x9d, 0xc5, 0x79, 0xe6, + }}, + .ds_sha256 = { .size = 36, .data = (uint8_t []){ + 0x91, 0xd7, 0x08, 0x02, 0x70, 0x80, 0xb5, 0x1b, 0xb0, 0x74, + 0x49, 0xa1, 0x85, 0x83, 0x22, 0x91, 0x1b, 0x53, 0xbc, 0x05, + 0xc2, 0x6b, 0xdc, 0xe7, 0x9c, 0x5b, 0x0f, 0x28, 0x3c, 0xe6, + 0xa8, 0x29, 0xeb, 0x76, 0x6f, 0xec, + }}, + .ds_sha384 = { .size = 52, .data = (uint8_t []){ + 0x91, 0xd7, 0x08, 0x04, 0xa0, 0x9f, 0x6b, 0x14, 0xa3, 0xfd, + 0x17, 0xea, 0x2d, 0x49, 0x89, 0x94, 0x67, 0xac, 0xc0, 0xa8, + 0x77, 0xe5, 0x72, 0x24, 0x6e, 0xd9, 0x74, 0x4e, 0x28, 0x01, + 0x72, 0xc5, 0xe2, 0x7f, 0x0d, 0x29, 0x35, 0xf8, 0xb8, 0xce, + 0xcb, 0xd9, 0x1d, 0x0c, 0xb0, 0x44, 0xe0, 0x43, 0xa6, 0xee, + 0x76, 0xa4, }}, .bit_size = 1024, - .pem = { .size = 916, .data = (uint8_t []) { + .pem = { .size = 916, .data = (uint8_t []){ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, @@ -225,33 +214,1865 @@ static const key_parameters_t SAMPLE_RSA_KEY = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, }}, }; +/* + +RSASHA256 (2048b) +rsa2048-256. DNSKEY 256 3 8 AwEAAb0vt7wVuqSPgSU1qrMiriq/ay57oVEzb/w7OKmi48bRjvK9x178cfbS03wUWqY9mwD72rUZ4urwTDaibkqBiTdjQOejiOmcfvWdqLpR35Jh8CzpfgZQHrCOeUFXKLVXY75h0oN1tqVJzRHzi36TB99WtM8P4MayKjlWMoaeBwLUpx6EfVy/oir1dFAxkGJ7ko6Pojhj5CNh0tprt32yp+VTo8bkKukbo+ho1ouqQ7EzpeimrVh3H0udgYq/fMF3NdSSEmr+/xglwOAoKimpmlKsYTwdNcL2Du6kZj50gC6hMqgJy9pB+BRyqJCWlIum6VqyB/SfMVs0rVVCf17+3BM= +rsa2048-256. DS 53905 8 1 ACA228FB117080FB5AD9641D26A5326405D4BF76 +rsa2048-256. DS 53905 8 2 32ABCBB109B03FE2370A331B94E11A54FC336EFA7E94304926DAB46609452087 +rsa2048-256. DS 53905 8 4 1422FBE78066402142E98167604CF4AE5F7AAA5CAE3DA77C9941BA137B7B7E18DCD776C3BC5F6C31816970DBE8E0088B + +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC9L7e8Fbqkj4El +NaqzIq4qv2sue6FRM2/8OzipouPG0Y7yvcde/HH20tN8FFqmPZsA+9q1GeLq8Ew2 +om5KgYk3Y0Dno4jpnH71nai6Ud+SYfAs6X4GUB6wjnlBVyi1V2O+YdKDdbalSc0R +84t+kwffVrTPD+DGsio5VjKGngcC1KcehH1cv6Iq9XRQMZBie5KOj6I4Y+QjYdLa +a7d9sqflU6PG5CrpG6PoaNaLqkOxM6Xopq1Ydx9LnYGKv3zBdzXUkhJq/v8YJcDg +KCopqZpSrGE8HTXC9g7upGY+dIAuoTKoCcvaQfgUcqiQlpSLpulasgf0nzFbNK1V +Qn9e/twTAgMBAAECggEAW6W2GENee0GZinEJFGaEgOjh/06cwz1rzoDR3juupC34 +Vddhsb4RZ0SSdtVVZJsLb9qSBJFZv/5QrVbanvVJh69pTc2HEcRiLJIHntryt3MC +an9iMaS2eUlLrD+Q1OhUxXGWDWEE7eVmln+o39RSR/s08+n5NcgxdD0xlM0REGkm +hspOIF3ZXgv+7gH2It7sjjfojNgbZ2psCABWxTwHof1ea4ZQlvYC+aCpgG3slsqs +veeMMIWiQBK/zHaBFi1NE17lz9HdQgjCOPm/KsLBwBwIsXT2iaUWNha06lU2qjK4 +0iv72C8O6S3z9anNO8RzWCUpKixxtAFMtnVDgpK5oQKBgQDjU0jU1D2LkrFdsfYy +TfxHO1IUP8Eccpjg+Clph3aBMe5UiUSKpDDAWnMZ08zRufBjFSGNMzAqSz+nVN8l +UcKT1fditME/Ty3NVkTXUnxbQ5VqguJSdtbJThaUyxnwJecKOde051hDCIm78Kok +RYuNDP3Y5cbOPRRQbfGP7REdjQKBgQDVDNz8RnwCseWbx1k7yZAJ56MqI5fHiHwn +DRbeSStvxaS3tEezYrMCZGtwZX4w3xxFDA8XXzkQwiP9X6iw3wbzdnXXv9sCz0Yq +SrwiQw0FPJXw+Gb6qRTKZCrGL4GlfNzWwZDV7GgNrbihghtQAdgFeJC54nNmoTb3 +mIDyF1doHwKBgQDecQOmhtyGdA+s0FRJ2zfOeASUHeKYNKbWFN9pDQ3v0+0TuZJh +W9L8lkVk83TLkHfibK39Hia2bBWoZotIWF3fDZNaeedTTOZTtGP+kw9uuo49wD84 +VGNObmP4S1lhPaV7wygJNAuQ5IzqY9AJWCf66MiI8ib8bpYvMbYbkO2bjQKBgEzw +3E3vVpHSlU1w7PT+khpBoVdyiznwPIYN4Bhe7GTtR9NgNBTArE1M3tA0lyInMRpu +hHS4Wu+GbWDvzwgxQ11hhqVoEDwvhvN3EgJ9nJIrkyr3SplzvqJpElmIhpWxRj/4 +n8niGqH1/xu01RBL2iv/oqS+91Y1GpjIZqkHbPWZAoGBAIaOVlPKAwyo+gm/QXhu +d++Kw8Us5tY3TSvCvyF8Ht7nskwxXFhxqTBtE2UETnvs1vo39FDSSW60JnmQ2fVO +PJ7z/AxmR0ZOKK9iNJhfVhImhvRW7M/S3+HnfO2MkeQnuzM/S4ECRv9d0pUJQZKC +PXo7nlETmd8tfA0ltYZEj3WW +-----END PRIVATE KEY----- + +*/ +static const key_parameters_t SAMPLE_RSA2048_SHA256_KEY = { + .name = (uint8_t *)"\x0b""rsa2048-256", + .flags = 256, + .protocol = 3, + .algorithm = 8, + .public_key = { .size = 260, .data = (uint8_t []){ + 0x03, 0x01, 0x00, 0x01, 0xbd, 0x2f, 0xb7, 0xbc, 0x15, 0xba, + 0xa4, 0x8f, 0x81, 0x25, 0x35, 0xaa, 0xb3, 0x22, 0xae, 0x2a, + 0xbf, 0x6b, 0x2e, 0x7b, 0xa1, 0x51, 0x33, 0x6f, 0xfc, 0x3b, + 0x38, 0xa9, 0xa2, 0xe3, 0xc6, 0xd1, 0x8e, 0xf2, 0xbd, 0xc7, + 0x5e, 0xfc, 0x71, 0xf6, 0xd2, 0xd3, 0x7c, 0x14, 0x5a, 0xa6, + 0x3d, 0x9b, 0x00, 0xfb, 0xda, 0xb5, 0x19, 0xe2, 0xea, 0xf0, + 0x4c, 0x36, 0xa2, 0x6e, 0x4a, 0x81, 0x89, 0x37, 0x63, 0x40, + 0xe7, 0xa3, 0x88, 0xe9, 0x9c, 0x7e, 0xf5, 0x9d, 0xa8, 0xba, + 0x51, 0xdf, 0x92, 0x61, 0xf0, 0x2c, 0xe9, 0x7e, 0x06, 0x50, + 0x1e, 0xb0, 0x8e, 0x79, 0x41, 0x57, 0x28, 0xb5, 0x57, 0x63, + 0xbe, 0x61, 0xd2, 0x83, 0x75, 0xb6, 0xa5, 0x49, 0xcd, 0x11, + 0xf3, 0x8b, 0x7e, 0x93, 0x07, 0xdf, 0x56, 0xb4, 0xcf, 0x0f, + 0xe0, 0xc6, 0xb2, 0x2a, 0x39, 0x56, 0x32, 0x86, 0x9e, 0x07, + 0x02, 0xd4, 0xa7, 0x1e, 0x84, 0x7d, 0x5c, 0xbf, 0xa2, 0x2a, + 0xf5, 0x74, 0x50, 0x31, 0x90, 0x62, 0x7b, 0x92, 0x8e, 0x8f, + 0xa2, 0x38, 0x63, 0xe4, 0x23, 0x61, 0xd2, 0xda, 0x6b, 0xb7, + 0x7d, 0xb2, 0xa7, 0xe5, 0x53, 0xa3, 0xc6, 0xe4, 0x2a, 0xe9, + 0x1b, 0xa3, 0xe8, 0x68, 0xd6, 0x8b, 0xaa, 0x43, 0xb1, 0x33, + 0xa5, 0xe8, 0xa6, 0xad, 0x58, 0x77, 0x1f, 0x4b, 0x9d, 0x81, + 0x8a, 0xbf, 0x7c, 0xc1, 0x77, 0x35, 0xd4, 0x92, 0x12, 0x6a, + 0xfe, 0xff, 0x18, 0x25, 0xc0, 0xe0, 0x28, 0x2a, 0x29, 0xa9, + 0x9a, 0x52, 0xac, 0x61, 0x3c, 0x1d, 0x35, 0xc2, 0xf6, 0x0e, + 0xee, 0xa4, 0x66, 0x3e, 0x74, 0x80, 0x2e, 0xa1, 0x32, 0xa8, + 0x09, 0xcb, 0xda, 0x41, 0xf8, 0x14, 0x72, 0xa8, 0x90, 0x96, + 0x94, 0x8b, 0xa6, 0xe9, 0x5a, 0xb2, 0x07, 0xf4, 0x9f, 0x31, + 0x5b, 0x34, 0xad, 0x55, 0x42, 0x7f, 0x5e, 0xfe, 0xdc, 0x13, + }}, + .rdata = { .size = 264, .data = (uint8_t []){ + 01, 0x00, 0x03, 0x08, + 0x03, 0x01, 0x00, 0x01, 0xbd, 0x2f, 0xb7, 0xbc, 0x15, 0xba, + 0xa4, 0x8f, 0x81, 0x25, 0x35, 0xaa, 0xb3, 0x22, 0xae, 0x2a, + 0xbf, 0x6b, 0x2e, 0x7b, 0xa1, 0x51, 0x33, 0x6f, 0xfc, 0x3b, + 0x38, 0xa9, 0xa2, 0xe3, 0xc6, 0xd1, 0x8e, 0xf2, 0xbd, 0xc7, + 0x5e, 0xfc, 0x71, 0xf6, 0xd2, 0xd3, 0x7c, 0x14, 0x5a, 0xa6, + 0x3d, 0x9b, 0x00, 0xfb, 0xda, 0xb5, 0x19, 0xe2, 0xea, 0xf0, + 0x4c, 0x36, 0xa2, 0x6e, 0x4a, 0x81, 0x89, 0x37, 0x63, 0x40, + 0xe7, 0xa3, 0x88, 0xe9, 0x9c, 0x7e, 0xf5, 0x9d, 0xa8, 0xba, + 0x51, 0xdf, 0x92, 0x61, 0xf0, 0x2c, 0xe9, 0x7e, 0x06, 0x50, + 0x1e, 0xb0, 0x8e, 0x79, 0x41, 0x57, 0x28, 0xb5, 0x57, 0x63, + 0xbe, 0x61, 0xd2, 0x83, 0x75, 0xb6, 0xa5, 0x49, 0xcd, 0x11, + 0xf3, 0x8b, 0x7e, 0x93, 0x07, 0xdf, 0x56, 0xb4, 0xcf, 0x0f, + 0xe0, 0xc6, 0xb2, 0x2a, 0x39, 0x56, 0x32, 0x86, 0x9e, 0x07, + 0x02, 0xd4, 0xa7, 0x1e, 0x84, 0x7d, 0x5c, 0xbf, 0xa2, 0x2a, + 0xf5, 0x74, 0x50, 0x31, 0x90, 0x62, 0x7b, 0x92, 0x8e, 0x8f, + 0xa2, 0x38, 0x63, 0xe4, 0x23, 0x61, 0xd2, 0xda, 0x6b, 0xb7, + 0x7d, 0xb2, 0xa7, 0xe5, 0x53, 0xa3, 0xc6, 0xe4, 0x2a, 0xe9, + 0x1b, 0xa3, 0xe8, 0x68, 0xd6, 0x8b, 0xaa, 0x43, 0xb1, 0x33, + 0xa5, 0xe8, 0xa6, 0xad, 0x58, 0x77, 0x1f, 0x4b, 0x9d, 0x81, + 0x8a, 0xbf, 0x7c, 0xc1, 0x77, 0x35, 0xd4, 0x92, 0x12, 0x6a, + 0xfe, 0xff, 0x18, 0x25, 0xc0, 0xe0, 0x28, 0x2a, 0x29, 0xa9, + 0x9a, 0x52, 0xac, 0x61, 0x3c, 0x1d, 0x35, 0xc2, 0xf6, 0x0e, + 0xee, 0xa4, 0x66, 0x3e, 0x74, 0x80, 0x2e, 0xa1, 0x32, 0xa8, + 0x09, 0xcb, 0xda, 0x41, 0xf8, 0x14, 0x72, 0xa8, 0x90, 0x96, + 0x94, 0x8b, 0xa6, 0xe9, 0x5a, 0xb2, 0x07, 0xf4, 0x9f, 0x31, + 0x5b, 0x34, 0xad, 0x55, 0x42, 0x7f, 0x5e, 0xfe, 0xdc, 0x13, + }}, + .key_id = "712dc810fb689f35e9886d2d155d49bc3e59518e", + .keytag = 53905, + .ds_sha1 = { .size = 24, .data = (uint8_t []){ + 0xd2, 0x91, 0x08, 0x01, 0xac, 0xa2, 0x28, 0xfb, 0x11, 0x70, + 0x80, 0xfb, 0x5a, 0xd9, 0x64, 0x1d, 0x26, 0xa5, 0x32, 0x64, + 0x05, 0xd4, 0xbf, 0x76, + }}, + .ds_sha256 = { .size = 36, .data = (uint8_t []){ + 0xd2, 0x91, 0x08, 0x02, 0x32, 0xab, 0xcb, 0xb1, 0x09, 0xb0, + 0x3f, 0xe2, 0x37, 0x0a, 0x33, 0x1b, 0x94, 0xe1, 0x1a, 0x54, + 0xfc, 0x33, 0x6e, 0xfa, 0x7e, 0x94, 0x30, 0x49, 0x26, 0xda, + 0xb4, 0x66, 0x09, 0x45, 0x20, 0x87, + }}, + .ds_sha384 = { .size = 52, .data = (uint8_t []){ + 0xd2, 0x91, 0x08, 0x04, 0x14, 0x22, 0xfb, 0xe7, 0x80, 0x66, + 0x40, 0x21, 0x42, 0xe9, 0x81, 0x67, 0x60, 0x4c, 0xf4, 0xae, + 0x5f, 0x7a, 0xaa, 0x5c, 0xae, 0x3d, 0xa7, 0x7c, 0x99, 0x41, + 0xba, 0x13, 0x7b, 0x7b, 0x7e, 0x18, 0xdc, 0xd7, 0x76, 0xc3, + 0xbc, 0x5f, 0x6c, 0x31, 0x81, 0x69, 0x70, 0xdb, 0xe8, 0xe0, + 0x08, 0x8b, + }}, + .bit_size = 2048, + .pem = { .size = 1704, .data = (uint8_t []){ + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, + 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, + 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, + 0x49, 0x45, 0x76, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, + 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, + 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x53, 0x43, + 0x42, 0x4b, 0x67, 0x77, 0x67, 0x67, 0x53, 0x6b, 0x41, 0x67, + 0x45, 0x41, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x39, + 0x4c, 0x37, 0x65, 0x38, 0x46, 0x62, 0x71, 0x6b, 0x6a, 0x34, + 0x45, 0x6c, 0x0a, 0x4e, 0x61, 0x71, 0x7a, 0x49, 0x71, 0x34, + 0x71, 0x76, 0x32, 0x73, 0x75, 0x65, 0x36, 0x46, 0x52, 0x4d, + 0x32, 0x2f, 0x38, 0x4f, 0x7a, 0x69, 0x70, 0x6f, 0x75, 0x50, + 0x47, 0x30, 0x59, 0x37, 0x79, 0x76, 0x63, 0x64, 0x65, 0x2f, + 0x48, 0x48, 0x32, 0x30, 0x74, 0x4e, 0x38, 0x46, 0x46, 0x71, + 0x6d, 0x50, 0x5a, 0x73, 0x41, 0x2b, 0x39, 0x71, 0x31, 0x47, + 0x65, 0x4c, 0x71, 0x38, 0x45, 0x77, 0x32, 0x0a, 0x6f, 0x6d, + 0x35, 0x4b, 0x67, 0x59, 0x6b, 0x33, 0x59, 0x30, 0x44, 0x6e, + 0x6f, 0x34, 0x6a, 0x70, 0x6e, 0x48, 0x37, 0x31, 0x6e, 0x61, + 0x69, 0x36, 0x55, 0x64, 0x2b, 0x53, 0x59, 0x66, 0x41, 0x73, + 0x36, 0x58, 0x34, 0x47, 0x55, 0x42, 0x36, 0x77, 0x6a, 0x6e, + 0x6c, 0x42, 0x56, 0x79, 0x69, 0x31, 0x56, 0x32, 0x4f, 0x2b, + 0x59, 0x64, 0x4b, 0x44, 0x64, 0x62, 0x61, 0x6c, 0x53, 0x63, + 0x30, 0x52, 0x0a, 0x38, 0x34, 0x74, 0x2b, 0x6b, 0x77, 0x66, + 0x66, 0x56, 0x72, 0x54, 0x50, 0x44, 0x2b, 0x44, 0x47, 0x73, + 0x69, 0x6f, 0x35, 0x56, 0x6a, 0x4b, 0x47, 0x6e, 0x67, 0x63, + 0x43, 0x31, 0x4b, 0x63, 0x65, 0x68, 0x48, 0x31, 0x63, 0x76, + 0x36, 0x49, 0x71, 0x39, 0x58, 0x52, 0x51, 0x4d, 0x5a, 0x42, + 0x69, 0x65, 0x35, 0x4b, 0x4f, 0x6a, 0x36, 0x49, 0x34, 0x59, + 0x2b, 0x51, 0x6a, 0x59, 0x64, 0x4c, 0x61, 0x0a, 0x61, 0x37, + 0x64, 0x39, 0x73, 0x71, 0x66, 0x6c, 0x55, 0x36, 0x50, 0x47, + 0x35, 0x43, 0x72, 0x70, 0x47, 0x36, 0x50, 0x6f, 0x61, 0x4e, + 0x61, 0x4c, 0x71, 0x6b, 0x4f, 0x78, 0x4d, 0x36, 0x58, 0x6f, + 0x70, 0x71, 0x31, 0x59, 0x64, 0x78, 0x39, 0x4c, 0x6e, 0x59, + 0x47, 0x4b, 0x76, 0x33, 0x7a, 0x42, 0x64, 0x7a, 0x58, 0x55, + 0x6b, 0x68, 0x4a, 0x71, 0x2f, 0x76, 0x38, 0x59, 0x4a, 0x63, + 0x44, 0x67, 0x0a, 0x4b, 0x43, 0x6f, 0x70, 0x71, 0x5a, 0x70, + 0x53, 0x72, 0x47, 0x45, 0x38, 0x48, 0x54, 0x58, 0x43, 0x39, + 0x67, 0x37, 0x75, 0x70, 0x47, 0x59, 0x2b, 0x64, 0x49, 0x41, + 0x75, 0x6f, 0x54, 0x4b, 0x6f, 0x43, 0x63, 0x76, 0x61, 0x51, + 0x66, 0x67, 0x55, 0x63, 0x71, 0x69, 0x51, 0x6c, 0x70, 0x53, + 0x4c, 0x70, 0x75, 0x6c, 0x61, 0x73, 0x67, 0x66, 0x30, 0x6e, + 0x7a, 0x46, 0x62, 0x4e, 0x4b, 0x31, 0x56, 0x0a, 0x51, 0x6e, + 0x39, 0x65, 0x2f, 0x74, 0x77, 0x54, 0x41, 0x67, 0x4d, 0x42, + 0x41, 0x41, 0x45, 0x43, 0x67, 0x67, 0x45, 0x41, 0x57, 0x36, + 0x57, 0x32, 0x47, 0x45, 0x4e, 0x65, 0x65, 0x30, 0x47, 0x5a, + 0x69, 0x6e, 0x45, 0x4a, 0x46, 0x47, 0x61, 0x45, 0x67, 0x4f, + 0x6a, 0x68, 0x2f, 0x30, 0x36, 0x63, 0x77, 0x7a, 0x31, 0x72, + 0x7a, 0x6f, 0x44, 0x52, 0x33, 0x6a, 0x75, 0x75, 0x70, 0x43, + 0x33, 0x34, 0x0a, 0x56, 0x64, 0x64, 0x68, 0x73, 0x62, 0x34, + 0x52, 0x5a, 0x30, 0x53, 0x53, 0x64, 0x74, 0x56, 0x56, 0x5a, + 0x4a, 0x73, 0x4c, 0x62, 0x39, 0x71, 0x53, 0x42, 0x4a, 0x46, + 0x5a, 0x76, 0x2f, 0x35, 0x51, 0x72, 0x56, 0x62, 0x61, 0x6e, + 0x76, 0x56, 0x4a, 0x68, 0x36, 0x39, 0x70, 0x54, 0x63, 0x32, + 0x48, 0x45, 0x63, 0x52, 0x69, 0x4c, 0x4a, 0x49, 0x48, 0x6e, + 0x74, 0x72, 0x79, 0x74, 0x33, 0x4d, 0x43, 0x0a, 0x61, 0x6e, + 0x39, 0x69, 0x4d, 0x61, 0x53, 0x32, 0x65, 0x55, 0x6c, 0x4c, + 0x72, 0x44, 0x2b, 0x51, 0x31, 0x4f, 0x68, 0x55, 0x78, 0x58, + 0x47, 0x57, 0x44, 0x57, 0x45, 0x45, 0x37, 0x65, 0x56, 0x6d, + 0x6c, 0x6e, 0x2b, 0x6f, 0x33, 0x39, 0x52, 0x53, 0x52, 0x2f, + 0x73, 0x30, 0x38, 0x2b, 0x6e, 0x35, 0x4e, 0x63, 0x67, 0x78, + 0x64, 0x44, 0x30, 0x78, 0x6c, 0x4d, 0x30, 0x52, 0x45, 0x47, + 0x6b, 0x6d, 0x0a, 0x68, 0x73, 0x70, 0x4f, 0x49, 0x46, 0x33, + 0x5a, 0x58, 0x67, 0x76, 0x2b, 0x37, 0x67, 0x48, 0x32, 0x49, + 0x74, 0x37, 0x73, 0x6a, 0x6a, 0x66, 0x6f, 0x6a, 0x4e, 0x67, + 0x62, 0x5a, 0x32, 0x70, 0x73, 0x43, 0x41, 0x42, 0x57, 0x78, + 0x54, 0x77, 0x48, 0x6f, 0x66, 0x31, 0x65, 0x61, 0x34, 0x5a, + 0x51, 0x6c, 0x76, 0x59, 0x43, 0x2b, 0x61, 0x43, 0x70, 0x67, + 0x47, 0x33, 0x73, 0x6c, 0x73, 0x71, 0x73, 0x0a, 0x76, 0x65, + 0x65, 0x4d, 0x4d, 0x49, 0x57, 0x69, 0x51, 0x42, 0x4b, 0x2f, + 0x7a, 0x48, 0x61, 0x42, 0x46, 0x69, 0x31, 0x4e, 0x45, 0x31, + 0x37, 0x6c, 0x7a, 0x39, 0x48, 0x64, 0x51, 0x67, 0x6a, 0x43, + 0x4f, 0x50, 0x6d, 0x2f, 0x4b, 0x73, 0x4c, 0x42, 0x77, 0x42, + 0x77, 0x49, 0x73, 0x58, 0x54, 0x32, 0x69, 0x61, 0x55, 0x57, + 0x4e, 0x68, 0x61, 0x30, 0x36, 0x6c, 0x55, 0x32, 0x71, 0x6a, + 0x4b, 0x34, 0x0a, 0x30, 0x69, 0x76, 0x37, 0x32, 0x43, 0x38, + 0x4f, 0x36, 0x53, 0x33, 0x7a, 0x39, 0x61, 0x6e, 0x4e, 0x4f, + 0x38, 0x52, 0x7a, 0x57, 0x43, 0x55, 0x70, 0x4b, 0x69, 0x78, + 0x78, 0x74, 0x41, 0x46, 0x4d, 0x74, 0x6e, 0x56, 0x44, 0x67, + 0x70, 0x4b, 0x35, 0x6f, 0x51, 0x4b, 0x42, 0x67, 0x51, 0x44, + 0x6a, 0x55, 0x30, 0x6a, 0x55, 0x31, 0x44, 0x32, 0x4c, 0x6b, + 0x72, 0x46, 0x64, 0x73, 0x66, 0x59, 0x79, 0x0a, 0x54, 0x66, + 0x78, 0x48, 0x4f, 0x31, 0x49, 0x55, 0x50, 0x38, 0x45, 0x63, + 0x63, 0x70, 0x6a, 0x67, 0x2b, 0x43, 0x6c, 0x70, 0x68, 0x33, + 0x61, 0x42, 0x4d, 0x65, 0x35, 0x55, 0x69, 0x55, 0x53, 0x4b, + 0x70, 0x44, 0x44, 0x41, 0x57, 0x6e, 0x4d, 0x5a, 0x30, 0x38, + 0x7a, 0x52, 0x75, 0x66, 0x42, 0x6a, 0x46, 0x53, 0x47, 0x4e, + 0x4d, 0x7a, 0x41, 0x71, 0x53, 0x7a, 0x2b, 0x6e, 0x56, 0x4e, + 0x38, 0x6c, 0x0a, 0x55, 0x63, 0x4b, 0x54, 0x31, 0x66, 0x64, + 0x69, 0x74, 0x4d, 0x45, 0x2f, 0x54, 0x79, 0x33, 0x4e, 0x56, + 0x6b, 0x54, 0x58, 0x55, 0x6e, 0x78, 0x62, 0x51, 0x35, 0x56, + 0x71, 0x67, 0x75, 0x4a, 0x53, 0x64, 0x74, 0x62, 0x4a, 0x54, + 0x68, 0x61, 0x55, 0x79, 0x78, 0x6e, 0x77, 0x4a, 0x65, 0x63, + 0x4b, 0x4f, 0x64, 0x65, 0x30, 0x35, 0x31, 0x68, 0x44, 0x43, + 0x49, 0x6d, 0x37, 0x38, 0x4b, 0x6f, 0x6b, 0x0a, 0x52, 0x59, + 0x75, 0x4e, 0x44, 0x50, 0x33, 0x59, 0x35, 0x63, 0x62, 0x4f, + 0x50, 0x52, 0x52, 0x51, 0x62, 0x66, 0x47, 0x50, 0x37, 0x52, + 0x45, 0x64, 0x6a, 0x51, 0x4b, 0x42, 0x67, 0x51, 0x44, 0x56, + 0x44, 0x4e, 0x7a, 0x38, 0x52, 0x6e, 0x77, 0x43, 0x73, 0x65, + 0x57, 0x62, 0x78, 0x31, 0x6b, 0x37, 0x79, 0x5a, 0x41, 0x4a, + 0x35, 0x36, 0x4d, 0x71, 0x49, 0x35, 0x66, 0x48, 0x69, 0x48, + 0x77, 0x6e, 0x0a, 0x44, 0x52, 0x62, 0x65, 0x53, 0x53, 0x74, + 0x76, 0x78, 0x61, 0x53, 0x33, 0x74, 0x45, 0x65, 0x7a, 0x59, + 0x72, 0x4d, 0x43, 0x5a, 0x47, 0x74, 0x77, 0x5a, 0x58, 0x34, + 0x77, 0x33, 0x78, 0x78, 0x46, 0x44, 0x41, 0x38, 0x58, 0x58, + 0x7a, 0x6b, 0x51, 0x77, 0x69, 0x50, 0x39, 0x58, 0x36, 0x69, + 0x77, 0x33, 0x77, 0x62, 0x7a, 0x64, 0x6e, 0x58, 0x58, 0x76, + 0x39, 0x73, 0x43, 0x7a, 0x30, 0x59, 0x71, 0x0a, 0x53, 0x72, + 0x77, 0x69, 0x51, 0x77, 0x30, 0x46, 0x50, 0x4a, 0x58, 0x77, + 0x2b, 0x47, 0x62, 0x36, 0x71, 0x52, 0x54, 0x4b, 0x5a, 0x43, + 0x72, 0x47, 0x4c, 0x34, 0x47, 0x6c, 0x66, 0x4e, 0x7a, 0x57, + 0x77, 0x5a, 0x44, 0x56, 0x37, 0x47, 0x67, 0x4e, 0x72, 0x62, + 0x69, 0x68, 0x67, 0x68, 0x74, 0x51, 0x41, 0x64, 0x67, 0x46, + 0x65, 0x4a, 0x43, 0x35, 0x34, 0x6e, 0x4e, 0x6d, 0x6f, 0x54, + 0x62, 0x33, 0x0a, 0x6d, 0x49, 0x44, 0x79, 0x46, 0x31, 0x64, + 0x6f, 0x48, 0x77, 0x4b, 0x42, 0x67, 0x51, 0x44, 0x65, 0x63, + 0x51, 0x4f, 0x6d, 0x68, 0x74, 0x79, 0x47, 0x64, 0x41, 0x2b, + 0x73, 0x30, 0x46, 0x52, 0x4a, 0x32, 0x7a, 0x66, 0x4f, 0x65, + 0x41, 0x53, 0x55, 0x48, 0x65, 0x4b, 0x59, 0x4e, 0x4b, 0x62, + 0x57, 0x46, 0x4e, 0x39, 0x70, 0x44, 0x51, 0x33, 0x76, 0x30, + 0x2b, 0x30, 0x54, 0x75, 0x5a, 0x4a, 0x68, 0x0a, 0x57, 0x39, + 0x4c, 0x38, 0x6c, 0x6b, 0x56, 0x6b, 0x38, 0x33, 0x54, 0x4c, + 0x6b, 0x48, 0x66, 0x69, 0x62, 0x4b, 0x33, 0x39, 0x48, 0x69, + 0x61, 0x32, 0x62, 0x42, 0x57, 0x6f, 0x5a, 0x6f, 0x74, 0x49, + 0x57, 0x46, 0x33, 0x66, 0x44, 0x5a, 0x4e, 0x61, 0x65, 0x65, + 0x64, 0x54, 0x54, 0x4f, 0x5a, 0x54, 0x74, 0x47, 0x50, 0x2b, + 0x6b, 0x77, 0x39, 0x75, 0x75, 0x6f, 0x34, 0x39, 0x77, 0x44, + 0x38, 0x34, 0x0a, 0x56, 0x47, 0x4e, 0x4f, 0x62, 0x6d, 0x50, + 0x34, 0x53, 0x31, 0x6c, 0x68, 0x50, 0x61, 0x56, 0x37, 0x77, + 0x79, 0x67, 0x4a, 0x4e, 0x41, 0x75, 0x51, 0x35, 0x49, 0x7a, + 0x71, 0x59, 0x39, 0x41, 0x4a, 0x57, 0x43, 0x66, 0x36, 0x36, + 0x4d, 0x69, 0x49, 0x38, 0x69, 0x62, 0x38, 0x62, 0x70, 0x59, + 0x76, 0x4d, 0x62, 0x59, 0x62, 0x6b, 0x4f, 0x32, 0x62, 0x6a, + 0x51, 0x4b, 0x42, 0x67, 0x45, 0x7a, 0x77, 0x0a, 0x33, 0x45, + 0x33, 0x76, 0x56, 0x70, 0x48, 0x53, 0x6c, 0x55, 0x31, 0x77, + 0x37, 0x50, 0x54, 0x2b, 0x6b, 0x68, 0x70, 0x42, 0x6f, 0x56, + 0x64, 0x79, 0x69, 0x7a, 0x6e, 0x77, 0x50, 0x49, 0x59, 0x4e, + 0x34, 0x42, 0x68, 0x65, 0x37, 0x47, 0x54, 0x74, 0x52, 0x39, + 0x4e, 0x67, 0x4e, 0x42, 0x54, 0x41, 0x72, 0x45, 0x31, 0x4d, + 0x33, 0x74, 0x41, 0x30, 0x6c, 0x79, 0x49, 0x6e, 0x4d, 0x52, + 0x70, 0x75, 0x0a, 0x68, 0x48, 0x53, 0x34, 0x57, 0x75, 0x2b, + 0x47, 0x62, 0x57, 0x44, 0x76, 0x7a, 0x77, 0x67, 0x78, 0x51, + 0x31, 0x31, 0x68, 0x68, 0x71, 0x56, 0x6f, 0x45, 0x44, 0x77, + 0x76, 0x68, 0x76, 0x4e, 0x33, 0x45, 0x67, 0x4a, 0x39, 0x6e, + 0x4a, 0x49, 0x72, 0x6b, 0x79, 0x72, 0x33, 0x53, 0x70, 0x6c, + 0x7a, 0x76, 0x71, 0x4a, 0x70, 0x45, 0x6c, 0x6d, 0x49, 0x68, + 0x70, 0x57, 0x78, 0x52, 0x6a, 0x2f, 0x34, 0x0a, 0x6e, 0x38, + 0x6e, 0x69, 0x47, 0x71, 0x48, 0x31, 0x2f, 0x78, 0x75, 0x30, + 0x31, 0x52, 0x42, 0x4c, 0x32, 0x69, 0x76, 0x2f, 0x6f, 0x71, + 0x53, 0x2b, 0x39, 0x31, 0x59, 0x31, 0x47, 0x70, 0x6a, 0x49, + 0x5a, 0x71, 0x6b, 0x48, 0x62, 0x50, 0x57, 0x5a, 0x41, 0x6f, + 0x47, 0x42, 0x41, 0x49, 0x61, 0x4f, 0x56, 0x6c, 0x50, 0x4b, + 0x41, 0x77, 0x79, 0x6f, 0x2b, 0x67, 0x6d, 0x2f, 0x51, 0x58, + 0x68, 0x75, 0x0a, 0x64, 0x2b, 0x2b, 0x4b, 0x77, 0x38, 0x55, + 0x73, 0x35, 0x74, 0x59, 0x33, 0x54, 0x53, 0x76, 0x43, 0x76, + 0x79, 0x46, 0x38, 0x48, 0x74, 0x37, 0x6e, 0x73, 0x6b, 0x77, + 0x78, 0x58, 0x46, 0x68, 0x78, 0x71, 0x54, 0x42, 0x74, 0x45, + 0x32, 0x55, 0x45, 0x54, 0x6e, 0x76, 0x73, 0x31, 0x76, 0x6f, + 0x33, 0x39, 0x46, 0x44, 0x53, 0x53, 0x57, 0x36, 0x30, 0x4a, + 0x6e, 0x6d, 0x51, 0x32, 0x66, 0x56, 0x4f, 0x0a, 0x50, 0x4a, + 0x37, 0x7a, 0x2f, 0x41, 0x78, 0x6d, 0x52, 0x30, 0x5a, 0x4f, + 0x4b, 0x4b, 0x39, 0x69, 0x4e, 0x4a, 0x68, 0x66, 0x56, 0x68, + 0x49, 0x6d, 0x68, 0x76, 0x52, 0x57, 0x37, 0x4d, 0x2f, 0x53, + 0x33, 0x2b, 0x48, 0x6e, 0x66, 0x4f, 0x32, 0x4d, 0x6b, 0x65, + 0x51, 0x6e, 0x75, 0x7a, 0x4d, 0x2f, 0x53, 0x34, 0x45, 0x43, + 0x52, 0x76, 0x39, 0x64, 0x30, 0x70, 0x55, 0x4a, 0x51, 0x5a, + 0x4b, 0x43, 0x0a, 0x50, 0x58, 0x6f, 0x37, 0x6e, 0x6c, 0x45, + 0x54, 0x6d, 0x64, 0x38, 0x74, 0x66, 0x41, 0x30, 0x6c, 0x74, + 0x59, 0x5a, 0x45, 0x6a, 0x33, 0x57, 0x57, 0x0a, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x50, 0x52, 0x49, + 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x0a, + }}, +}; /* -ECDSA-P256-SHA256 +RSASHA256 (4096b) + +rsa4096-256. DNSKEY 256 3 8 AwEAAblR1oDSmL2bZLRjaAR9JNetsqhqYlUxzMNQSH2o/CY7WHFZPYqEOBXDBcqLZG+4FPIpm9lZuINjSMkqmCpRTNoL2f3KGE5tj+5Cqq5XN24BDMgsZ5foMHMDaqjewBr1wSU5M/End28iogvA5wgRw6OgbkmIyLg5UCxc9FpO07UW6bb9O7DUwZjbRg8EjUGVxuL8eH8Az6sKinxVEMYeHfV8BhidQ0ag4cGmu0fymn2JQzJY/Y/aLNGvHZ1e8fcK21eJ5hCSBg5ds0XK9yuvJowloyMhihSaPQUMO2vxn7jEBZaUCkL9oWu0KFSl6KCYmyxZQzwyg2bwzL/dF2/Xgbh9xFF4tGiNw97vEfP+ha3kKXZNH9wfKrZWavpQL1flrOqjBC4THFvLJQAbx9446MUGxUwPh4Pia//H0NYBN8FPNxcOGg+73VVSkfYH3pSIYijtss93dQoSZcO/92FL0U3HjcwtjVvOhDScPy1qkbGkgBFLuz5aZLqDzVF6g8AG1VePNv3o31UqomI5pUtATY0T62uw1oZuB+6NcQwsrO6Dd8L+FSGmtGC93xJqpXrtG/UMLvsYWweIPIk0J8zaoEE1TaA2M2WTbOWReJyl7Ps//gpILlkvzwNnaADlVOBsL9CsEy3npJeqzI9IBDlsj6gmWrgFdgvJDITM7y1Xouwh +rsa4096-256. DS 34375 8 1 D06091F84E5BCA92760D43CB07AD50CCFABAAE40 +rsa4096-256. DS 34375 8 2 505CD3A992BC0DE274F45A012C40BF094217969C5D5BDE2E46E9AC0028326F52 +rsa4096-256. DS 34375 8 4 DCF941EE81BF9AC8EF75FABE6732E9C2BEE56DC9E50C1E5E11F6C4B36AF2206811ED3DEA99DAD267E8F261A17A21DE3A + +-----BEGIN PRIVATE KEY----- +MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQC5UdaA0pi9m2S0 +Y2gEfSTXrbKoamJVMczDUEh9qPwmO1hxWT2KhDgVwwXKi2RvuBTyKZvZWbiDY0jJ +KpgqUUzaC9n9yhhObY/uQqquVzduAQzILGeX6DBzA2qo3sAa9cElOTPxJ3dvIqIL +wOcIEcOjoG5JiMi4OVAsXPRaTtO1Fum2/Tuw1MGY20YPBI1Blcbi/Hh/AM+rCop8 +VRDGHh31fAYYnUNGoOHBprtH8pp9iUMyWP2P2izRrx2dXvH3CttXieYQkgYOXbNF +yvcrryaMJaMjIYoUmj0FDDtr8Z+4xAWWlApC/aFrtChUpeigmJssWUM8MoNm8My/ +3Rdv14G4fcRReLRojcPe7xHz/oWt5Cl2TR/cHyq2Vmr6UC9X5azqowQuExxbyyUA +G8feOOjFBsVMD4eD4mv/x9DWATfBTzcXDhoPu91VUpH2B96UiGIo7bLPd3UKEmXD +v/dhS9FNx43MLY1bzoQ0nD8tapGxpIARS7s+WmS6g81ReoPABtVXjzb96N9VKqJi +OaVLQE2NE+trsNaGbgfujXEMLKzug3fC/hUhprRgvd8SaqV67Rv1DC77GFsHiDyJ +NCfM2qBBNU2gNjNlk2zlkXicpez7P/4KSC5ZL88DZ2gA5VTgbC/QrBMt56SXqsyP +SAQ5bI+oJlq4BXYLyQyEzO8tV6LsIQIDAQABAoIB/3MZYSChrDwXR3TCSNiA4WET +gOMZL/m59HNaaauiSPl14niD9LUTacIaXn5uFPNOYbQGI8Xa876m644F5nxiAllr +Avmdi3sqkTpqLZgak1K/VDD/Y1f13iGQ/a3kq2wTNuLnpFsjKAred8bVCKj6X4hB +HD6Pthq1fhYPpbRxQQw4LvB4V5p8icFmbxzkttcFL4HLTQuUdWbGJT0TmFd0XSca +4K5o/l/fjFe6Npd5Fnrhxdp/avzthOi22q3jSmUlWRYFj9660wgZKj8u0FVRc5+X +wLsRGbGyGjQIZN+mMo2PMelUCQuSe69pNaNdaB5WqgnhZuD8fqBw7ro7l1LfhrEA +a/qbH6aV88GR6N+rLQLbK5C0uI1A5392Cn6ZK2biPy0VGmKaaqSwhWqDtt0CBlH6 +P+x9k+K6XgsnGHtkJLy8nWuf1kATxpFPJOsosGUU0PS9T4wWro8GVeGZ0XcUy+7L +rIc4oGpwPomOcgn/wd0JJfboRAVGKjxev7Ul/BuRamRh+HMjv+BeEui4PAehm5+j +26zxh2DY+W8P0YCmRytSdr3gJ1LSN4r2IAKCYKyTa91ca7S8gFs6TlInWOaRm52S +K+kCYWCXVTjPt//wsNbXI3wIfQgcMvG5to3ON0r/1ZPIkVpFWywG9HK0xWPdiTSM +TcQNOSQPdBcn7+spt9ECggEBAM3G9OK6oRDS/TFp0l3muITjb1jN+O1sYygapOqd +PjmadI26wQqzHk0feNAUeTh/gTagsW/+JsXIWcKQN4noIZy5/PtpxqfcZf/OP+OE +qLxHtLQiwR8kZSX1vOyGc6hPxeCF49Pmpu3tBgZK7ShvO0leejSaNnKaZ9Il8fRj +dLqpDkP97+UHFLBiVe+4PKrUwOrdb5hoHBk8xdstM4AtOr3/Qa8lPylFtGNyPuwp +8vsdvr274h31tmljL4e4nR9AvsDBk76v8RZlyHTNfT2Fids9zlaLzUzk3zRV/+vi +/X7eullHhpwmcItX4eILRl4uK4r7dtXp8mqkRPFY/h7mf7UCggEBAOaMsEOyhfGB +PKx78gElG/ZT1toZHs7LmwuihKtYIz8nS7EDcLnWU9zAIDG61ic7p6Ikw0sBg0Lf +lrFOFm/dGkE3nbaAL3SQzWAb5fSuXN8VkE+sk1ZWCtR1AhkoXoFF75phjL7V+52D +5nQrpPoCe4T5Vpksatw4mKzZKPJ+4CSwYCjT4/ndDmCRt0mx41QK5yHWvAMr4nre +BtOrl4SZwUuyXVcn6pS2ikEy6QN+dLML/k39dH+yc14vaQi9/fSEPotuSvfZxqW+ +9jz3GYRF/J0jiPNJ43njnRNrt6/AnvUphGxSrf6tvdoE0V2RwB6Zuadu2ZHHXIjs +CCJiitV/Rj0CggEBAKjiP/uRBj3DnC+g1RliEVBnROxSZ5mcWikA7RbspLQsErp7 +apG4fgb37HSCSRbYdpj5+4aZxQKQMzLen+ZcELILZxiEMJl15nSytnapWr7j7ufk +mjFP8n/cFgjdNDEP/6wM1vYDmD8vR8GEXu3PlI3br1paspMOLGUp5VEZCyVjOCUP +VYLXc+BrZHJQ9+GQqSBZSox/7Ye8+/mtOFZbSJnE1AjF/feGkM0JZ6D1sMjuGayo +daT3E5Wc5NZz6uhKgAO9G9/lkG08be+G8uG6JnE8YYtgQ8d3E8VlS5wyeLBWZgR+ +Enk3hyiloOqfLEqBhBUV2usnjWB+n2KhEjcUH/0CggEBAKyHlFDVBE+au2EI0C3z +K13Hl/1W1ytCSyEF2eqv5pCYQ5iQToeD0PZeALm2bBSoG+bHRC6ZTzV4RTkiir/j +4oXzrN6qRtkgk9Dcj9Xvtihr5rb5Grl9YlVjytIw16g+QfRyE/WsBMP3tToyfx9p +RC5auWefScjLwdV4HaB7Ohm6s/tZtj2CJAQ4h8VqjgiSsC0umTx2VuJDzTASNS1S +MskHDbrvcCkiAYyRILcwpvxmeUS767a0QIm3SQ71v1qArJ2DSC76liHrKjKtaDcI +eObPdOk73jOVFjM2ZRvtNgeZrjOyG+t+8Zh6CoPPUsqTl8+osMDbRHBi0iOJQwRK +XrECggEAdI4uDS43th/45gA5B7B96jIL3UB/1ZD1iaEVZyD9xsV3BxjpgAKx1JAV +VNF0IYT4oaP55rhzjo+Q/AWLRHLPT9dxggOSdMmpM3MucE6DXlihC8BxbrM/pJc7 +itu07dKwfvtvcdesIrG2G3Ei8SFG46nlXvbYyuLlasV/bgYRdz+FoaHLzcfUOIkW +R6Kf6Q2REN2mtTTxb2VxR8adRgeaqDT5WaIRGb2OTcETZMA8bBJfRc/ATK5jsM90 +h9b0/V8GL98cfFzYS+KDyx4RJI9coBjJiAFebLFQVFZ2UCtEHfy26wooJ35sU347 +Z+MjBEUwvEDzgo3m2hkXNKh/Hqdrwg== +-----END PRIVATE KEY----- + +*/ +static const key_parameters_t SAMPLE_RSA4096_SHA256_KEY = { + .name = (uint8_t *)"\x0b""rsa4096-256", + .flags = 256, + .protocol = 3, + .algorithm = 8, + .public_key = { .size = 516, .data = (uint8_t []){ + 0x03, 0x01, 0x00, 0x01, 0xb9, 0x51, 0xd6, 0x80, 0xd2, 0x98, + 0xbd, 0x9b, 0x64, 0xb4, 0x63, 0x68, 0x04, 0x7d, 0x24, 0xd7, + 0xad, 0xb2, 0xa8, 0x6a, 0x62, 0x55, 0x31, 0xcc, 0xc3, 0x50, + 0x48, 0x7d, 0xa8, 0xfc, 0x26, 0x3b, 0x58, 0x71, 0x59, 0x3d, + 0x8a, 0x84, 0x38, 0x15, 0xc3, 0x05, 0xca, 0x8b, 0x64, 0x6f, + 0xb8, 0x14, 0xf2, 0x29, 0x9b, 0xd9, 0x59, 0xb8, 0x83, 0x63, + 0x48, 0xc9, 0x2a, 0x98, 0x2a, 0x51, 0x4c, 0xda, 0x0b, 0xd9, + 0xfd, 0xca, 0x18, 0x4e, 0x6d, 0x8f, 0xee, 0x42, 0xaa, 0xae, + 0x57, 0x37, 0x6e, 0x01, 0x0c, 0xc8, 0x2c, 0x67, 0x97, 0xe8, + 0x30, 0x73, 0x03, 0x6a, 0xa8, 0xde, 0xc0, 0x1a, 0xf5, 0xc1, + 0x25, 0x39, 0x33, 0xf1, 0x27, 0x77, 0x6f, 0x22, 0xa2, 0x0b, + 0xc0, 0xe7, 0x08, 0x11, 0xc3, 0xa3, 0xa0, 0x6e, 0x49, 0x88, + 0xc8, 0xb8, 0x39, 0x50, 0x2c, 0x5c, 0xf4, 0x5a, 0x4e, 0xd3, + 0xb5, 0x16, 0xe9, 0xb6, 0xfd, 0x3b, 0xb0, 0xd4, 0xc1, 0x98, + 0xdb, 0x46, 0x0f, 0x04, 0x8d, 0x41, 0x95, 0xc6, 0xe2, 0xfc, + 0x78, 0x7f, 0x00, 0xcf, 0xab, 0x0a, 0x8a, 0x7c, 0x55, 0x10, + 0xc6, 0x1e, 0x1d, 0xf5, 0x7c, 0x06, 0x18, 0x9d, 0x43, 0x46, + 0xa0, 0xe1, 0xc1, 0xa6, 0xbb, 0x47, 0xf2, 0x9a, 0x7d, 0x89, + 0x43, 0x32, 0x58, 0xfd, 0x8f, 0xda, 0x2c, 0xd1, 0xaf, 0x1d, + 0x9d, 0x5e, 0xf1, 0xf7, 0x0a, 0xdb, 0x57, 0x89, 0xe6, 0x10, + 0x92, 0x06, 0x0e, 0x5d, 0xb3, 0x45, 0xca, 0xf7, 0x2b, 0xaf, + 0x26, 0x8c, 0x25, 0xa3, 0x23, 0x21, 0x8a, 0x14, 0x9a, 0x3d, + 0x05, 0x0c, 0x3b, 0x6b, 0xf1, 0x9f, 0xb8, 0xc4, 0x05, 0x96, + 0x94, 0x0a, 0x42, 0xfd, 0xa1, 0x6b, 0xb4, 0x28, 0x54, 0xa5, + 0xe8, 0xa0, 0x98, 0x9b, 0x2c, 0x59, 0x43, 0x3c, 0x32, 0x83, + 0x66, 0xf0, 0xcc, 0xbf, 0xdd, 0x17, 0x6f, 0xd7, 0x81, 0xb8, + 0x7d, 0xc4, 0x51, 0x78, 0xb4, 0x68, 0x8d, 0xc3, 0xde, 0xef, + 0x11, 0xf3, 0xfe, 0x85, 0xad, 0xe4, 0x29, 0x76, 0x4d, 0x1f, + 0xdc, 0x1f, 0x2a, 0xb6, 0x56, 0x6a, 0xfa, 0x50, 0x2f, 0x57, + 0xe5, 0xac, 0xea, 0xa3, 0x04, 0x2e, 0x13, 0x1c, 0x5b, 0xcb, + 0x25, 0x00, 0x1b, 0xc7, 0xde, 0x38, 0xe8, 0xc5, 0x06, 0xc5, + 0x4c, 0x0f, 0x87, 0x83, 0xe2, 0x6b, 0xff, 0xc7, 0xd0, 0xd6, + 0x01, 0x37, 0xc1, 0x4f, 0x37, 0x17, 0x0e, 0x1a, 0x0f, 0xbb, + 0xdd, 0x55, 0x52, 0x91, 0xf6, 0x07, 0xde, 0x94, 0x88, 0x62, + 0x28, 0xed, 0xb2, 0xcf, 0x77, 0x75, 0x0a, 0x12, 0x65, 0xc3, + 0xbf, 0xf7, 0x61, 0x4b, 0xd1, 0x4d, 0xc7, 0x8d, 0xcc, 0x2d, + 0x8d, 0x5b, 0xce, 0x84, 0x34, 0x9c, 0x3f, 0x2d, 0x6a, 0x91, + 0xb1, 0xa4, 0x80, 0x11, 0x4b, 0xbb, 0x3e, 0x5a, 0x64, 0xba, + 0x83, 0xcd, 0x51, 0x7a, 0x83, 0xc0, 0x06, 0xd5, 0x57, 0x8f, + 0x36, 0xfd, 0xe8, 0xdf, 0x55, 0x2a, 0xa2, 0x62, 0x39, 0xa5, + 0x4b, 0x40, 0x4d, 0x8d, 0x13, 0xeb, 0x6b, 0xb0, 0xd6, 0x86, + 0x6e, 0x07, 0xee, 0x8d, 0x71, 0x0c, 0x2c, 0xac, 0xee, 0x83, + 0x77, 0xc2, 0xfe, 0x15, 0x21, 0xa6, 0xb4, 0x60, 0xbd, 0xdf, + 0x12, 0x6a, 0xa5, 0x7a, 0xed, 0x1b, 0xf5, 0x0c, 0x2e, 0xfb, + 0x18, 0x5b, 0x07, 0x88, 0x3c, 0x89, 0x34, 0x27, 0xcc, 0xda, + 0xa0, 0x41, 0x35, 0x4d, 0xa0, 0x36, 0x33, 0x65, 0x93, 0x6c, + 0xe5, 0x91, 0x78, 0x9c, 0xa5, 0xec, 0xfb, 0x3f, 0xfe, 0x0a, + 0x48, 0x2e, 0x59, 0x2f, 0xcf, 0x03, 0x67, 0x68, 0x00, 0xe5, + 0x54, 0xe0, 0x6c, 0x2f, 0xd0, 0xac, 0x13, 0x2d, 0xe7, 0xa4, + 0x97, 0xaa, 0xcc, 0x8f, 0x48, 0x04, 0x39, 0x6c, 0x8f, 0xa8, + 0x26, 0x5a, 0xb8, 0x05, 0x76, 0x0b, 0xc9, 0x0c, 0x84, 0xcc, + 0xef, 0x2d, 0x57, 0xa2, 0xec, 0x21, + }}, + .rdata = { .size = 520, .data = (uint8_t []){ + 01, 0x00, 0x03, 0x08, + 0x03, 0x01, 0x00, 0x01, 0xb9, 0x51, 0xd6, 0x80, 0xd2, 0x98, + 0xbd, 0x9b, 0x64, 0xb4, 0x63, 0x68, 0x04, 0x7d, 0x24, 0xd7, + 0xad, 0xb2, 0xa8, 0x6a, 0x62, 0x55, 0x31, 0xcc, 0xc3, 0x50, + 0x48, 0x7d, 0xa8, 0xfc, 0x26, 0x3b, 0x58, 0x71, 0x59, 0x3d, + 0x8a, 0x84, 0x38, 0x15, 0xc3, 0x05, 0xca, 0x8b, 0x64, 0x6f, + 0xb8, 0x14, 0xf2, 0x29, 0x9b, 0xd9, 0x59, 0xb8, 0x83, 0x63, + 0x48, 0xc9, 0x2a, 0x98, 0x2a, 0x51, 0x4c, 0xda, 0x0b, 0xd9, + 0xfd, 0xca, 0x18, 0x4e, 0x6d, 0x8f, 0xee, 0x42, 0xaa, 0xae, + 0x57, 0x37, 0x6e, 0x01, 0x0c, 0xc8, 0x2c, 0x67, 0x97, 0xe8, + 0x30, 0x73, 0x03, 0x6a, 0xa8, 0xde, 0xc0, 0x1a, 0xf5, 0xc1, + 0x25, 0x39, 0x33, 0xf1, 0x27, 0x77, 0x6f, 0x22, 0xa2, 0x0b, + 0xc0, 0xe7, 0x08, 0x11, 0xc3, 0xa3, 0xa0, 0x6e, 0x49, 0x88, + 0xc8, 0xb8, 0x39, 0x50, 0x2c, 0x5c, 0xf4, 0x5a, 0x4e, 0xd3, + 0xb5, 0x16, 0xe9, 0xb6, 0xfd, 0x3b, 0xb0, 0xd4, 0xc1, 0x98, + 0xdb, 0x46, 0x0f, 0x04, 0x8d, 0x41, 0x95, 0xc6, 0xe2, 0xfc, + 0x78, 0x7f, 0x00, 0xcf, 0xab, 0x0a, 0x8a, 0x7c, 0x55, 0x10, + 0xc6, 0x1e, 0x1d, 0xf5, 0x7c, 0x06, 0x18, 0x9d, 0x43, 0x46, + 0xa0, 0xe1, 0xc1, 0xa6, 0xbb, 0x47, 0xf2, 0x9a, 0x7d, 0x89, + 0x43, 0x32, 0x58, 0xfd, 0x8f, 0xda, 0x2c, 0xd1, 0xaf, 0x1d, + 0x9d, 0x5e, 0xf1, 0xf7, 0x0a, 0xdb, 0x57, 0x89, 0xe6, 0x10, + 0x92, 0x06, 0x0e, 0x5d, 0xb3, 0x45, 0xca, 0xf7, 0x2b, 0xaf, + 0x26, 0x8c, 0x25, 0xa3, 0x23, 0x21, 0x8a, 0x14, 0x9a, 0x3d, + 0x05, 0x0c, 0x3b, 0x6b, 0xf1, 0x9f, 0xb8, 0xc4, 0x05, 0x96, + 0x94, 0x0a, 0x42, 0xfd, 0xa1, 0x6b, 0xb4, 0x28, 0x54, 0xa5, + 0xe8, 0xa0, 0x98, 0x9b, 0x2c, 0x59, 0x43, 0x3c, 0x32, 0x83, + 0x66, 0xf0, 0xcc, 0xbf, 0xdd, 0x17, 0x6f, 0xd7, 0x81, 0xb8, + 0x7d, 0xc4, 0x51, 0x78, 0xb4, 0x68, 0x8d, 0xc3, 0xde, 0xef, + 0x11, 0xf3, 0xfe, 0x85, 0xad, 0xe4, 0x29, 0x76, 0x4d, 0x1f, + 0xdc, 0x1f, 0x2a, 0xb6, 0x56, 0x6a, 0xfa, 0x50, 0x2f, 0x57, + 0xe5, 0xac, 0xea, 0xa3, 0x04, 0x2e, 0x13, 0x1c, 0x5b, 0xcb, + 0x25, 0x00, 0x1b, 0xc7, 0xde, 0x38, 0xe8, 0xc5, 0x06, 0xc5, + 0x4c, 0x0f, 0x87, 0x83, 0xe2, 0x6b, 0xff, 0xc7, 0xd0, 0xd6, + 0x01, 0x37, 0xc1, 0x4f, 0x37, 0x17, 0x0e, 0x1a, 0x0f, 0xbb, + 0xdd, 0x55, 0x52, 0x91, 0xf6, 0x07, 0xde, 0x94, 0x88, 0x62, + 0x28, 0xed, 0xb2, 0xcf, 0x77, 0x75, 0x0a, 0x12, 0x65, 0xc3, + 0xbf, 0xf7, 0x61, 0x4b, 0xd1, 0x4d, 0xc7, 0x8d, 0xcc, 0x2d, + 0x8d, 0x5b, 0xce, 0x84, 0x34, 0x9c, 0x3f, 0x2d, 0x6a, 0x91, + 0xb1, 0xa4, 0x80, 0x11, 0x4b, 0xbb, 0x3e, 0x5a, 0x64, 0xba, + 0x83, 0xcd, 0x51, 0x7a, 0x83, 0xc0, 0x06, 0xd5, 0x57, 0x8f, + 0x36, 0xfd, 0xe8, 0xdf, 0x55, 0x2a, 0xa2, 0x62, 0x39, 0xa5, + 0x4b, 0x40, 0x4d, 0x8d, 0x13, 0xeb, 0x6b, 0xb0, 0xd6, 0x86, + 0x6e, 0x07, 0xee, 0x8d, 0x71, 0x0c, 0x2c, 0xac, 0xee, 0x83, + 0x77, 0xc2, 0xfe, 0x15, 0x21, 0xa6, 0xb4, 0x60, 0xbd, 0xdf, + 0x12, 0x6a, 0xa5, 0x7a, 0xed, 0x1b, 0xf5, 0x0c, 0x2e, 0xfb, + 0x18, 0x5b, 0x07, 0x88, 0x3c, 0x89, 0x34, 0x27, 0xcc, 0xda, + 0xa0, 0x41, 0x35, 0x4d, 0xa0, 0x36, 0x33, 0x65, 0x93, 0x6c, + 0xe5, 0x91, 0x78, 0x9c, 0xa5, 0xec, 0xfb, 0x3f, 0xfe, 0x0a, + 0x48, 0x2e, 0x59, 0x2f, 0xcf, 0x03, 0x67, 0x68, 0x00, 0xe5, + 0x54, 0xe0, 0x6c, 0x2f, 0xd0, 0xac, 0x13, 0x2d, 0xe7, 0xa4, + 0x97, 0xaa, 0xcc, 0x8f, 0x48, 0x04, 0x39, 0x6c, 0x8f, 0xa8, + 0x26, 0x5a, 0xb8, 0x05, 0x76, 0x0b, 0xc9, 0x0c, 0x84, 0xcc, + 0xef, 0x2d, 0x57, 0xa2, 0xec, 0x21, + }}, + .key_id = "07aa99ffce866f7b37bfcc43406d621bfb6f707a", + .keytag = 34375, + .ds_sha1 = { .size = 24, .data = (uint8_t []){ + 0x86, 0x47, 0x08, 0x01, 0xd0, 0x60, 0x91, 0xf8, 0x4e, 0x5b, + 0xca, 0x92, 0x76, 0x0d, 0x43, 0xcb, 0x07, 0xad, 0x50, 0xcc, + 0xfa, 0xba, 0xae, 0x40, + }}, + .ds_sha256 = { .size = 36, .data = (uint8_t []){ + 0x86, 0x47, 0x08, 0x02, 0x50, 0x5c, 0xd3, 0xa9, 0x92, 0xbc, + 0x0d, 0xe2, 0x74, 0xf4, 0x5a, 0x01, 0x2c, 0x40, 0xbf, 0x09, + 0x42, 0x17, 0x96, 0x9c, 0x5d, 0x5b, 0xde, 0x2e, 0x46, 0xe9, + 0xac, 0x00, 0x28, 0x32, 0x6f, 0x52, + }}, + .ds_sha384 = { .size = 52, .data = (uint8_t []){ + 0x86, 0x47, 0x08, 0x04, 0xdc, 0xf9, 0x41, 0xee, 0x81, 0xbf, + 0x9a, 0xc8, 0xef, 0x75, 0xfa, 0xbe, 0x67, 0x32, 0xe9, 0xc2, + 0xbe, 0xe5, 0x6d, 0xc9, 0xe5, 0x0c, 0x1e, 0x5e, 0x11, 0xf6, + 0xc4, 0xb3, 0x6a, 0xf2, 0x20, 0x68, 0x11, 0xed, 0x3d, 0xea, + 0x99, 0xda, 0xd2, 0x67, 0xe8, 0xf2, 0x61, 0xa1, 0x7a, 0x21, + 0xde, 0x3a, + }}, + .bit_size = 4096, + .pem = { .size = 3272, .data = (uint8_t []){ + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, + 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, + 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, + 0x49, 0x4a, 0x51, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, + 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, + 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x53, 0x43, + 0x43, 0x53, 0x77, 0x77, 0x67, 0x67, 0x6b, 0x6f, 0x41, 0x67, + 0x45, 0x41, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x35, + 0x55, 0x64, 0x61, 0x41, 0x30, 0x70, 0x69, 0x39, 0x6d, 0x32, + 0x53, 0x30, 0x0a, 0x59, 0x32, 0x67, 0x45, 0x66, 0x53, 0x54, + 0x58, 0x72, 0x62, 0x4b, 0x6f, 0x61, 0x6d, 0x4a, 0x56, 0x4d, + 0x63, 0x7a, 0x44, 0x55, 0x45, 0x68, 0x39, 0x71, 0x50, 0x77, + 0x6d, 0x4f, 0x31, 0x68, 0x78, 0x57, 0x54, 0x32, 0x4b, 0x68, + 0x44, 0x67, 0x56, 0x77, 0x77, 0x58, 0x4b, 0x69, 0x32, 0x52, + 0x76, 0x75, 0x42, 0x54, 0x79, 0x4b, 0x5a, 0x76, 0x5a, 0x57, + 0x62, 0x69, 0x44, 0x59, 0x30, 0x6a, 0x4a, 0x0a, 0x4b, 0x70, + 0x67, 0x71, 0x55, 0x55, 0x7a, 0x61, 0x43, 0x39, 0x6e, 0x39, + 0x79, 0x68, 0x68, 0x4f, 0x62, 0x59, 0x2f, 0x75, 0x51, 0x71, + 0x71, 0x75, 0x56, 0x7a, 0x64, 0x75, 0x41, 0x51, 0x7a, 0x49, + 0x4c, 0x47, 0x65, 0x58, 0x36, 0x44, 0x42, 0x7a, 0x41, 0x32, + 0x71, 0x6f, 0x33, 0x73, 0x41, 0x61, 0x39, 0x63, 0x45, 0x6c, + 0x4f, 0x54, 0x50, 0x78, 0x4a, 0x33, 0x64, 0x76, 0x49, 0x71, + 0x49, 0x4c, 0x0a, 0x77, 0x4f, 0x63, 0x49, 0x45, 0x63, 0x4f, + 0x6a, 0x6f, 0x47, 0x35, 0x4a, 0x69, 0x4d, 0x69, 0x34, 0x4f, + 0x56, 0x41, 0x73, 0x58, 0x50, 0x52, 0x61, 0x54, 0x74, 0x4f, + 0x31, 0x46, 0x75, 0x6d, 0x32, 0x2f, 0x54, 0x75, 0x77, 0x31, + 0x4d, 0x47, 0x59, 0x32, 0x30, 0x59, 0x50, 0x42, 0x49, 0x31, + 0x42, 0x6c, 0x63, 0x62, 0x69, 0x2f, 0x48, 0x68, 0x2f, 0x41, + 0x4d, 0x2b, 0x72, 0x43, 0x6f, 0x70, 0x38, 0x0a, 0x56, 0x52, + 0x44, 0x47, 0x48, 0x68, 0x33, 0x31, 0x66, 0x41, 0x59, 0x59, + 0x6e, 0x55, 0x4e, 0x47, 0x6f, 0x4f, 0x48, 0x42, 0x70, 0x72, + 0x74, 0x48, 0x38, 0x70, 0x70, 0x39, 0x69, 0x55, 0x4d, 0x79, + 0x57, 0x50, 0x32, 0x50, 0x32, 0x69, 0x7a, 0x52, 0x72, 0x78, + 0x32, 0x64, 0x58, 0x76, 0x48, 0x33, 0x43, 0x74, 0x74, 0x58, + 0x69, 0x65, 0x59, 0x51, 0x6b, 0x67, 0x59, 0x4f, 0x58, 0x62, + 0x4e, 0x46, 0x0a, 0x79, 0x76, 0x63, 0x72, 0x72, 0x79, 0x61, + 0x4d, 0x4a, 0x61, 0x4d, 0x6a, 0x49, 0x59, 0x6f, 0x55, 0x6d, + 0x6a, 0x30, 0x46, 0x44, 0x44, 0x74, 0x72, 0x38, 0x5a, 0x2b, + 0x34, 0x78, 0x41, 0x57, 0x57, 0x6c, 0x41, 0x70, 0x43, 0x2f, + 0x61, 0x46, 0x72, 0x74, 0x43, 0x68, 0x55, 0x70, 0x65, 0x69, + 0x67, 0x6d, 0x4a, 0x73, 0x73, 0x57, 0x55, 0x4d, 0x38, 0x4d, + 0x6f, 0x4e, 0x6d, 0x38, 0x4d, 0x79, 0x2f, 0x0a, 0x33, 0x52, + 0x64, 0x76, 0x31, 0x34, 0x47, 0x34, 0x66, 0x63, 0x52, 0x52, + 0x65, 0x4c, 0x52, 0x6f, 0x6a, 0x63, 0x50, 0x65, 0x37, 0x78, + 0x48, 0x7a, 0x2f, 0x6f, 0x57, 0x74, 0x35, 0x43, 0x6c, 0x32, + 0x54, 0x52, 0x2f, 0x63, 0x48, 0x79, 0x71, 0x32, 0x56, 0x6d, + 0x72, 0x36, 0x55, 0x43, 0x39, 0x58, 0x35, 0x61, 0x7a, 0x71, + 0x6f, 0x77, 0x51, 0x75, 0x45, 0x78, 0x78, 0x62, 0x79, 0x79, + 0x55, 0x41, 0x0a, 0x47, 0x38, 0x66, 0x65, 0x4f, 0x4f, 0x6a, + 0x46, 0x42, 0x73, 0x56, 0x4d, 0x44, 0x34, 0x65, 0x44, 0x34, + 0x6d, 0x76, 0x2f, 0x78, 0x39, 0x44, 0x57, 0x41, 0x54, 0x66, + 0x42, 0x54, 0x7a, 0x63, 0x58, 0x44, 0x68, 0x6f, 0x50, 0x75, + 0x39, 0x31, 0x56, 0x55, 0x70, 0x48, 0x32, 0x42, 0x39, 0x36, + 0x55, 0x69, 0x47, 0x49, 0x6f, 0x37, 0x62, 0x4c, 0x50, 0x64, + 0x33, 0x55, 0x4b, 0x45, 0x6d, 0x58, 0x44, 0x0a, 0x76, 0x2f, + 0x64, 0x68, 0x53, 0x39, 0x46, 0x4e, 0x78, 0x34, 0x33, 0x4d, + 0x4c, 0x59, 0x31, 0x62, 0x7a, 0x6f, 0x51, 0x30, 0x6e, 0x44, + 0x38, 0x74, 0x61, 0x70, 0x47, 0x78, 0x70, 0x49, 0x41, 0x52, + 0x53, 0x37, 0x73, 0x2b, 0x57, 0x6d, 0x53, 0x36, 0x67, 0x38, + 0x31, 0x52, 0x65, 0x6f, 0x50, 0x41, 0x42, 0x74, 0x56, 0x58, + 0x6a, 0x7a, 0x62, 0x39, 0x36, 0x4e, 0x39, 0x56, 0x4b, 0x71, + 0x4a, 0x69, 0x0a, 0x4f, 0x61, 0x56, 0x4c, 0x51, 0x45, 0x32, + 0x4e, 0x45, 0x2b, 0x74, 0x72, 0x73, 0x4e, 0x61, 0x47, 0x62, + 0x67, 0x66, 0x75, 0x6a, 0x58, 0x45, 0x4d, 0x4c, 0x4b, 0x7a, + 0x75, 0x67, 0x33, 0x66, 0x43, 0x2f, 0x68, 0x55, 0x68, 0x70, + 0x72, 0x52, 0x67, 0x76, 0x64, 0x38, 0x53, 0x61, 0x71, 0x56, + 0x36, 0x37, 0x52, 0x76, 0x31, 0x44, 0x43, 0x37, 0x37, 0x47, + 0x46, 0x73, 0x48, 0x69, 0x44, 0x79, 0x4a, 0x0a, 0x4e, 0x43, + 0x66, 0x4d, 0x32, 0x71, 0x42, 0x42, 0x4e, 0x55, 0x32, 0x67, + 0x4e, 0x6a, 0x4e, 0x6c, 0x6b, 0x32, 0x7a, 0x6c, 0x6b, 0x58, + 0x69, 0x63, 0x70, 0x65, 0x7a, 0x37, 0x50, 0x2f, 0x34, 0x4b, + 0x53, 0x43, 0x35, 0x5a, 0x4c, 0x38, 0x38, 0x44, 0x5a, 0x32, + 0x67, 0x41, 0x35, 0x56, 0x54, 0x67, 0x62, 0x43, 0x2f, 0x51, + 0x72, 0x42, 0x4d, 0x74, 0x35, 0x36, 0x53, 0x58, 0x71, 0x73, + 0x79, 0x50, 0x0a, 0x53, 0x41, 0x51, 0x35, 0x62, 0x49, 0x2b, + 0x6f, 0x4a, 0x6c, 0x71, 0x34, 0x42, 0x58, 0x59, 0x4c, 0x79, + 0x51, 0x79, 0x45, 0x7a, 0x4f, 0x38, 0x74, 0x56, 0x36, 0x4c, + 0x73, 0x49, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x41, + 0x6f, 0x49, 0x42, 0x2f, 0x33, 0x4d, 0x5a, 0x59, 0x53, 0x43, + 0x68, 0x72, 0x44, 0x77, 0x58, 0x52, 0x33, 0x54, 0x43, 0x53, + 0x4e, 0x69, 0x41, 0x34, 0x57, 0x45, 0x54, 0x0a, 0x67, 0x4f, + 0x4d, 0x5a, 0x4c, 0x2f, 0x6d, 0x35, 0x39, 0x48, 0x4e, 0x61, + 0x61, 0x61, 0x75, 0x69, 0x53, 0x50, 0x6c, 0x31, 0x34, 0x6e, + 0x69, 0x44, 0x39, 0x4c, 0x55, 0x54, 0x61, 0x63, 0x49, 0x61, + 0x58, 0x6e, 0x35, 0x75, 0x46, 0x50, 0x4e, 0x4f, 0x59, 0x62, + 0x51, 0x47, 0x49, 0x38, 0x58, 0x61, 0x38, 0x37, 0x36, 0x6d, + 0x36, 0x34, 0x34, 0x46, 0x35, 0x6e, 0x78, 0x69, 0x41, 0x6c, + 0x6c, 0x72, 0x0a, 0x41, 0x76, 0x6d, 0x64, 0x69, 0x33, 0x73, + 0x71, 0x6b, 0x54, 0x70, 0x71, 0x4c, 0x5a, 0x67, 0x61, 0x6b, + 0x31, 0x4b, 0x2f, 0x56, 0x44, 0x44, 0x2f, 0x59, 0x31, 0x66, + 0x31, 0x33, 0x69, 0x47, 0x51, 0x2f, 0x61, 0x33, 0x6b, 0x71, + 0x32, 0x77, 0x54, 0x4e, 0x75, 0x4c, 0x6e, 0x70, 0x46, 0x73, + 0x6a, 0x4b, 0x41, 0x72, 0x65, 0x64, 0x38, 0x62, 0x56, 0x43, + 0x4b, 0x6a, 0x36, 0x58, 0x34, 0x68, 0x42, 0x0a, 0x48, 0x44, + 0x36, 0x50, 0x74, 0x68, 0x71, 0x31, 0x66, 0x68, 0x59, 0x50, + 0x70, 0x62, 0x52, 0x78, 0x51, 0x51, 0x77, 0x34, 0x4c, 0x76, + 0x42, 0x34, 0x56, 0x35, 0x70, 0x38, 0x69, 0x63, 0x46, 0x6d, + 0x62, 0x78, 0x7a, 0x6b, 0x74, 0x74, 0x63, 0x46, 0x4c, 0x34, + 0x48, 0x4c, 0x54, 0x51, 0x75, 0x55, 0x64, 0x57, 0x62, 0x47, + 0x4a, 0x54, 0x30, 0x54, 0x6d, 0x46, 0x64, 0x30, 0x58, 0x53, + 0x63, 0x61, 0x0a, 0x34, 0x4b, 0x35, 0x6f, 0x2f, 0x6c, 0x2f, + 0x66, 0x6a, 0x46, 0x65, 0x36, 0x4e, 0x70, 0x64, 0x35, 0x46, + 0x6e, 0x72, 0x68, 0x78, 0x64, 0x70, 0x2f, 0x61, 0x76, 0x7a, + 0x74, 0x68, 0x4f, 0x69, 0x32, 0x32, 0x71, 0x33, 0x6a, 0x53, + 0x6d, 0x55, 0x6c, 0x57, 0x52, 0x59, 0x46, 0x6a, 0x39, 0x36, + 0x36, 0x30, 0x77, 0x67, 0x5a, 0x4b, 0x6a, 0x38, 0x75, 0x30, + 0x46, 0x56, 0x52, 0x63, 0x35, 0x2b, 0x58, 0x0a, 0x77, 0x4c, + 0x73, 0x52, 0x47, 0x62, 0x47, 0x79, 0x47, 0x6a, 0x51, 0x49, + 0x5a, 0x4e, 0x2b, 0x6d, 0x4d, 0x6f, 0x32, 0x50, 0x4d, 0x65, + 0x6c, 0x55, 0x43, 0x51, 0x75, 0x53, 0x65, 0x36, 0x39, 0x70, + 0x4e, 0x61, 0x4e, 0x64, 0x61, 0x42, 0x35, 0x57, 0x71, 0x67, + 0x6e, 0x68, 0x5a, 0x75, 0x44, 0x38, 0x66, 0x71, 0x42, 0x77, + 0x37, 0x72, 0x6f, 0x37, 0x6c, 0x31, 0x4c, 0x66, 0x68, 0x72, + 0x45, 0x41, 0x0a, 0x61, 0x2f, 0x71, 0x62, 0x48, 0x36, 0x61, + 0x56, 0x38, 0x38, 0x47, 0x52, 0x36, 0x4e, 0x2b, 0x72, 0x4c, + 0x51, 0x4c, 0x62, 0x4b, 0x35, 0x43, 0x30, 0x75, 0x49, 0x31, + 0x41, 0x35, 0x33, 0x39, 0x32, 0x43, 0x6e, 0x36, 0x5a, 0x4b, + 0x32, 0x62, 0x69, 0x50, 0x79, 0x30, 0x56, 0x47, 0x6d, 0x4b, + 0x61, 0x61, 0x71, 0x53, 0x77, 0x68, 0x57, 0x71, 0x44, 0x74, + 0x74, 0x30, 0x43, 0x42, 0x6c, 0x48, 0x36, 0x0a, 0x50, 0x2b, + 0x78, 0x39, 0x6b, 0x2b, 0x4b, 0x36, 0x58, 0x67, 0x73, 0x6e, + 0x47, 0x48, 0x74, 0x6b, 0x4a, 0x4c, 0x79, 0x38, 0x6e, 0x57, + 0x75, 0x66, 0x31, 0x6b, 0x41, 0x54, 0x78, 0x70, 0x46, 0x50, + 0x4a, 0x4f, 0x73, 0x6f, 0x73, 0x47, 0x55, 0x55, 0x30, 0x50, + 0x53, 0x39, 0x54, 0x34, 0x77, 0x57, 0x72, 0x6f, 0x38, 0x47, + 0x56, 0x65, 0x47, 0x5a, 0x30, 0x58, 0x63, 0x55, 0x79, 0x2b, + 0x37, 0x4c, 0x0a, 0x72, 0x49, 0x63, 0x34, 0x6f, 0x47, 0x70, + 0x77, 0x50, 0x6f, 0x6d, 0x4f, 0x63, 0x67, 0x6e, 0x2f, 0x77, + 0x64, 0x30, 0x4a, 0x4a, 0x66, 0x62, 0x6f, 0x52, 0x41, 0x56, + 0x47, 0x4b, 0x6a, 0x78, 0x65, 0x76, 0x37, 0x55, 0x6c, 0x2f, + 0x42, 0x75, 0x52, 0x61, 0x6d, 0x52, 0x68, 0x2b, 0x48, 0x4d, + 0x6a, 0x76, 0x2b, 0x42, 0x65, 0x45, 0x75, 0x69, 0x34, 0x50, + 0x41, 0x65, 0x68, 0x6d, 0x35, 0x2b, 0x6a, 0x0a, 0x32, 0x36, + 0x7a, 0x78, 0x68, 0x32, 0x44, 0x59, 0x2b, 0x57, 0x38, 0x50, + 0x30, 0x59, 0x43, 0x6d, 0x52, 0x79, 0x74, 0x53, 0x64, 0x72, + 0x33, 0x67, 0x4a, 0x31, 0x4c, 0x53, 0x4e, 0x34, 0x72, 0x32, + 0x49, 0x41, 0x4b, 0x43, 0x59, 0x4b, 0x79, 0x54, 0x61, 0x39, + 0x31, 0x63, 0x61, 0x37, 0x53, 0x38, 0x67, 0x46, 0x73, 0x36, + 0x54, 0x6c, 0x49, 0x6e, 0x57, 0x4f, 0x61, 0x52, 0x6d, 0x35, + 0x32, 0x53, 0x0a, 0x4b, 0x2b, 0x6b, 0x43, 0x59, 0x57, 0x43, + 0x58, 0x56, 0x54, 0x6a, 0x50, 0x74, 0x2f, 0x2f, 0x77, 0x73, + 0x4e, 0x62, 0x58, 0x49, 0x33, 0x77, 0x49, 0x66, 0x51, 0x67, + 0x63, 0x4d, 0x76, 0x47, 0x35, 0x74, 0x6f, 0x33, 0x4f, 0x4e, + 0x30, 0x72, 0x2f, 0x31, 0x5a, 0x50, 0x49, 0x6b, 0x56, 0x70, + 0x46, 0x57, 0x79, 0x77, 0x47, 0x39, 0x48, 0x4b, 0x30, 0x78, + 0x57, 0x50, 0x64, 0x69, 0x54, 0x53, 0x4d, 0x0a, 0x54, 0x63, + 0x51, 0x4e, 0x4f, 0x53, 0x51, 0x50, 0x64, 0x42, 0x63, 0x6e, + 0x37, 0x2b, 0x73, 0x70, 0x74, 0x39, 0x45, 0x43, 0x67, 0x67, + 0x45, 0x42, 0x41, 0x4d, 0x33, 0x47, 0x39, 0x4f, 0x4b, 0x36, + 0x6f, 0x52, 0x44, 0x53, 0x2f, 0x54, 0x46, 0x70, 0x30, 0x6c, + 0x33, 0x6d, 0x75, 0x49, 0x54, 0x6a, 0x62, 0x31, 0x6a, 0x4e, + 0x2b, 0x4f, 0x31, 0x73, 0x59, 0x79, 0x67, 0x61, 0x70, 0x4f, + 0x71, 0x64, 0x0a, 0x50, 0x6a, 0x6d, 0x61, 0x64, 0x49, 0x32, + 0x36, 0x77, 0x51, 0x71, 0x7a, 0x48, 0x6b, 0x30, 0x66, 0x65, + 0x4e, 0x41, 0x55, 0x65, 0x54, 0x68, 0x2f, 0x67, 0x54, 0x61, + 0x67, 0x73, 0x57, 0x2f, 0x2b, 0x4a, 0x73, 0x58, 0x49, 0x57, + 0x63, 0x4b, 0x51, 0x4e, 0x34, 0x6e, 0x6f, 0x49, 0x5a, 0x79, + 0x35, 0x2f, 0x50, 0x74, 0x70, 0x78, 0x71, 0x66, 0x63, 0x5a, + 0x66, 0x2f, 0x4f, 0x50, 0x2b, 0x4f, 0x45, 0x0a, 0x71, 0x4c, + 0x78, 0x48, 0x74, 0x4c, 0x51, 0x69, 0x77, 0x52, 0x38, 0x6b, + 0x5a, 0x53, 0x58, 0x31, 0x76, 0x4f, 0x79, 0x47, 0x63, 0x36, + 0x68, 0x50, 0x78, 0x65, 0x43, 0x46, 0x34, 0x39, 0x50, 0x6d, + 0x70, 0x75, 0x33, 0x74, 0x42, 0x67, 0x5a, 0x4b, 0x37, 0x53, + 0x68, 0x76, 0x4f, 0x30, 0x6c, 0x65, 0x65, 0x6a, 0x53, 0x61, + 0x4e, 0x6e, 0x4b, 0x61, 0x5a, 0x39, 0x49, 0x6c, 0x38, 0x66, + 0x52, 0x6a, 0x0a, 0x64, 0x4c, 0x71, 0x70, 0x44, 0x6b, 0x50, + 0x39, 0x37, 0x2b, 0x55, 0x48, 0x46, 0x4c, 0x42, 0x69, 0x56, + 0x65, 0x2b, 0x34, 0x50, 0x4b, 0x72, 0x55, 0x77, 0x4f, 0x72, + 0x64, 0x62, 0x35, 0x68, 0x6f, 0x48, 0x42, 0x6b, 0x38, 0x78, + 0x64, 0x73, 0x74, 0x4d, 0x34, 0x41, 0x74, 0x4f, 0x72, 0x33, + 0x2f, 0x51, 0x61, 0x38, 0x6c, 0x50, 0x79, 0x6c, 0x46, 0x74, + 0x47, 0x4e, 0x79, 0x50, 0x75, 0x77, 0x70, 0x0a, 0x38, 0x76, + 0x73, 0x64, 0x76, 0x72, 0x32, 0x37, 0x34, 0x68, 0x33, 0x31, + 0x74, 0x6d, 0x6c, 0x6a, 0x4c, 0x34, 0x65, 0x34, 0x6e, 0x52, + 0x39, 0x41, 0x76, 0x73, 0x44, 0x42, 0x6b, 0x37, 0x36, 0x76, + 0x38, 0x52, 0x5a, 0x6c, 0x79, 0x48, 0x54, 0x4e, 0x66, 0x54, + 0x32, 0x46, 0x69, 0x64, 0x73, 0x39, 0x7a, 0x6c, 0x61, 0x4c, + 0x7a, 0x55, 0x7a, 0x6b, 0x33, 0x7a, 0x52, 0x56, 0x2f, 0x2b, + 0x76, 0x69, 0x0a, 0x2f, 0x58, 0x37, 0x65, 0x75, 0x6c, 0x6c, + 0x48, 0x68, 0x70, 0x77, 0x6d, 0x63, 0x49, 0x74, 0x58, 0x34, + 0x65, 0x49, 0x4c, 0x52, 0x6c, 0x34, 0x75, 0x4b, 0x34, 0x72, + 0x37, 0x64, 0x74, 0x58, 0x70, 0x38, 0x6d, 0x71, 0x6b, 0x52, + 0x50, 0x46, 0x59, 0x2f, 0x68, 0x37, 0x6d, 0x66, 0x37, 0x55, + 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4f, 0x61, 0x4d, 0x73, + 0x45, 0x4f, 0x79, 0x68, 0x66, 0x47, 0x42, 0x0a, 0x50, 0x4b, + 0x78, 0x37, 0x38, 0x67, 0x45, 0x6c, 0x47, 0x2f, 0x5a, 0x54, + 0x31, 0x74, 0x6f, 0x5a, 0x48, 0x73, 0x37, 0x4c, 0x6d, 0x77, + 0x75, 0x69, 0x68, 0x4b, 0x74, 0x59, 0x49, 0x7a, 0x38, 0x6e, + 0x53, 0x37, 0x45, 0x44, 0x63, 0x4c, 0x6e, 0x57, 0x55, 0x39, + 0x7a, 0x41, 0x49, 0x44, 0x47, 0x36, 0x31, 0x69, 0x63, 0x37, + 0x70, 0x36, 0x49, 0x6b, 0x77, 0x30, 0x73, 0x42, 0x67, 0x30, + 0x4c, 0x66, 0x0a, 0x6c, 0x72, 0x46, 0x4f, 0x46, 0x6d, 0x2f, + 0x64, 0x47, 0x6b, 0x45, 0x33, 0x6e, 0x62, 0x61, 0x41, 0x4c, + 0x33, 0x53, 0x51, 0x7a, 0x57, 0x41, 0x62, 0x35, 0x66, 0x53, + 0x75, 0x58, 0x4e, 0x38, 0x56, 0x6b, 0x45, 0x2b, 0x73, 0x6b, + 0x31, 0x5a, 0x57, 0x43, 0x74, 0x52, 0x31, 0x41, 0x68, 0x6b, + 0x6f, 0x58, 0x6f, 0x46, 0x46, 0x37, 0x35, 0x70, 0x68, 0x6a, + 0x4c, 0x37, 0x56, 0x2b, 0x35, 0x32, 0x44, 0x0a, 0x35, 0x6e, + 0x51, 0x72, 0x70, 0x50, 0x6f, 0x43, 0x65, 0x34, 0x54, 0x35, + 0x56, 0x70, 0x6b, 0x73, 0x61, 0x74, 0x77, 0x34, 0x6d, 0x4b, + 0x7a, 0x5a, 0x4b, 0x50, 0x4a, 0x2b, 0x34, 0x43, 0x53, 0x77, + 0x59, 0x43, 0x6a, 0x54, 0x34, 0x2f, 0x6e, 0x64, 0x44, 0x6d, + 0x43, 0x52, 0x74, 0x30, 0x6d, 0x78, 0x34, 0x31, 0x51, 0x4b, + 0x35, 0x79, 0x48, 0x57, 0x76, 0x41, 0x4d, 0x72, 0x34, 0x6e, + 0x72, 0x65, 0x0a, 0x42, 0x74, 0x4f, 0x72, 0x6c, 0x34, 0x53, + 0x5a, 0x77, 0x55, 0x75, 0x79, 0x58, 0x56, 0x63, 0x6e, 0x36, + 0x70, 0x53, 0x32, 0x69, 0x6b, 0x45, 0x79, 0x36, 0x51, 0x4e, + 0x2b, 0x64, 0x4c, 0x4d, 0x4c, 0x2f, 0x6b, 0x33, 0x39, 0x64, + 0x48, 0x2b, 0x79, 0x63, 0x31, 0x34, 0x76, 0x61, 0x51, 0x69, + 0x39, 0x2f, 0x66, 0x53, 0x45, 0x50, 0x6f, 0x74, 0x75, 0x53, + 0x76, 0x66, 0x5a, 0x78, 0x71, 0x57, 0x2b, 0x0a, 0x39, 0x6a, + 0x7a, 0x33, 0x47, 0x59, 0x52, 0x46, 0x2f, 0x4a, 0x30, 0x6a, + 0x69, 0x50, 0x4e, 0x4a, 0x34, 0x33, 0x6e, 0x6a, 0x6e, 0x52, + 0x4e, 0x72, 0x74, 0x36, 0x2f, 0x41, 0x6e, 0x76, 0x55, 0x70, + 0x68, 0x47, 0x78, 0x53, 0x72, 0x66, 0x36, 0x74, 0x76, 0x64, + 0x6f, 0x45, 0x30, 0x56, 0x32, 0x52, 0x77, 0x42, 0x36, 0x5a, + 0x75, 0x61, 0x64, 0x75, 0x32, 0x5a, 0x48, 0x48, 0x58, 0x49, + 0x6a, 0x73, 0x0a, 0x43, 0x43, 0x4a, 0x69, 0x69, 0x74, 0x56, + 0x2f, 0x52, 0x6a, 0x30, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, + 0x4b, 0x6a, 0x69, 0x50, 0x2f, 0x75, 0x52, 0x42, 0x6a, 0x33, + 0x44, 0x6e, 0x43, 0x2b, 0x67, 0x31, 0x52, 0x6c, 0x69, 0x45, + 0x56, 0x42, 0x6e, 0x52, 0x4f, 0x78, 0x53, 0x5a, 0x35, 0x6d, + 0x63, 0x57, 0x69, 0x6b, 0x41, 0x37, 0x52, 0x62, 0x73, 0x70, + 0x4c, 0x51, 0x73, 0x45, 0x72, 0x70, 0x37, 0x0a, 0x61, 0x70, + 0x47, 0x34, 0x66, 0x67, 0x62, 0x33, 0x37, 0x48, 0x53, 0x43, + 0x53, 0x52, 0x62, 0x59, 0x64, 0x70, 0x6a, 0x35, 0x2b, 0x34, + 0x61, 0x5a, 0x78, 0x51, 0x4b, 0x51, 0x4d, 0x7a, 0x4c, 0x65, + 0x6e, 0x2b, 0x5a, 0x63, 0x45, 0x4c, 0x49, 0x4c, 0x5a, 0x78, + 0x69, 0x45, 0x4d, 0x4a, 0x6c, 0x31, 0x35, 0x6e, 0x53, 0x79, + 0x74, 0x6e, 0x61, 0x70, 0x57, 0x72, 0x37, 0x6a, 0x37, 0x75, + 0x66, 0x6b, 0x0a, 0x6d, 0x6a, 0x46, 0x50, 0x38, 0x6e, 0x2f, + 0x63, 0x46, 0x67, 0x6a, 0x64, 0x4e, 0x44, 0x45, 0x50, 0x2f, + 0x36, 0x77, 0x4d, 0x31, 0x76, 0x59, 0x44, 0x6d, 0x44, 0x38, + 0x76, 0x52, 0x38, 0x47, 0x45, 0x58, 0x75, 0x33, 0x50, 0x6c, + 0x49, 0x33, 0x62, 0x72, 0x31, 0x70, 0x61, 0x73, 0x70, 0x4d, + 0x4f, 0x4c, 0x47, 0x55, 0x70, 0x35, 0x56, 0x45, 0x5a, 0x43, + 0x79, 0x56, 0x6a, 0x4f, 0x43, 0x55, 0x50, 0x0a, 0x56, 0x59, + 0x4c, 0x58, 0x63, 0x2b, 0x42, 0x72, 0x5a, 0x48, 0x4a, 0x51, + 0x39, 0x2b, 0x47, 0x51, 0x71, 0x53, 0x42, 0x5a, 0x53, 0x6f, + 0x78, 0x2f, 0x37, 0x59, 0x65, 0x38, 0x2b, 0x2f, 0x6d, 0x74, + 0x4f, 0x46, 0x5a, 0x62, 0x53, 0x4a, 0x6e, 0x45, 0x31, 0x41, + 0x6a, 0x46, 0x2f, 0x66, 0x65, 0x47, 0x6b, 0x4d, 0x30, 0x4a, + 0x5a, 0x36, 0x44, 0x31, 0x73, 0x4d, 0x6a, 0x75, 0x47, 0x61, + 0x79, 0x6f, 0x0a, 0x64, 0x61, 0x54, 0x33, 0x45, 0x35, 0x57, + 0x63, 0x35, 0x4e, 0x5a, 0x7a, 0x36, 0x75, 0x68, 0x4b, 0x67, + 0x41, 0x4f, 0x39, 0x47, 0x39, 0x2f, 0x6c, 0x6b, 0x47, 0x30, + 0x38, 0x62, 0x65, 0x2b, 0x47, 0x38, 0x75, 0x47, 0x36, 0x4a, + 0x6e, 0x45, 0x38, 0x59, 0x59, 0x74, 0x67, 0x51, 0x38, 0x64, + 0x33, 0x45, 0x38, 0x56, 0x6c, 0x53, 0x35, 0x77, 0x79, 0x65, + 0x4c, 0x42, 0x57, 0x5a, 0x67, 0x52, 0x2b, 0x0a, 0x45, 0x6e, + 0x6b, 0x33, 0x68, 0x79, 0x69, 0x6c, 0x6f, 0x4f, 0x71, 0x66, + 0x4c, 0x45, 0x71, 0x42, 0x68, 0x42, 0x55, 0x56, 0x32, 0x75, + 0x73, 0x6e, 0x6a, 0x57, 0x42, 0x2b, 0x6e, 0x32, 0x4b, 0x68, + 0x45, 0x6a, 0x63, 0x55, 0x48, 0x2f, 0x30, 0x43, 0x67, 0x67, + 0x45, 0x42, 0x41, 0x4b, 0x79, 0x48, 0x6c, 0x46, 0x44, 0x56, + 0x42, 0x45, 0x2b, 0x61, 0x75, 0x32, 0x45, 0x49, 0x30, 0x43, + 0x33, 0x7a, 0x0a, 0x4b, 0x31, 0x33, 0x48, 0x6c, 0x2f, 0x31, + 0x57, 0x31, 0x79, 0x74, 0x43, 0x53, 0x79, 0x45, 0x46, 0x32, + 0x65, 0x71, 0x76, 0x35, 0x70, 0x43, 0x59, 0x51, 0x35, 0x69, + 0x51, 0x54, 0x6f, 0x65, 0x44, 0x30, 0x50, 0x5a, 0x65, 0x41, + 0x4c, 0x6d, 0x32, 0x62, 0x42, 0x53, 0x6f, 0x47, 0x2b, 0x62, + 0x48, 0x52, 0x43, 0x36, 0x5a, 0x54, 0x7a, 0x56, 0x34, 0x52, + 0x54, 0x6b, 0x69, 0x69, 0x72, 0x2f, 0x6a, 0x0a, 0x34, 0x6f, + 0x58, 0x7a, 0x72, 0x4e, 0x36, 0x71, 0x52, 0x74, 0x6b, 0x67, + 0x6b, 0x39, 0x44, 0x63, 0x6a, 0x39, 0x58, 0x76, 0x74, 0x69, + 0x68, 0x72, 0x35, 0x72, 0x62, 0x35, 0x47, 0x72, 0x6c, 0x39, + 0x59, 0x6c, 0x56, 0x6a, 0x79, 0x74, 0x49, 0x77, 0x31, 0x36, + 0x67, 0x2b, 0x51, 0x66, 0x52, 0x79, 0x45, 0x2f, 0x57, 0x73, + 0x42, 0x4d, 0x50, 0x33, 0x74, 0x54, 0x6f, 0x79, 0x66, 0x78, + 0x39, 0x70, 0x0a, 0x52, 0x43, 0x35, 0x61, 0x75, 0x57, 0x65, + 0x66, 0x53, 0x63, 0x6a, 0x4c, 0x77, 0x64, 0x56, 0x34, 0x48, + 0x61, 0x42, 0x37, 0x4f, 0x68, 0x6d, 0x36, 0x73, 0x2f, 0x74, + 0x5a, 0x74, 0x6a, 0x32, 0x43, 0x4a, 0x41, 0x51, 0x34, 0x68, + 0x38, 0x56, 0x71, 0x6a, 0x67, 0x69, 0x53, 0x73, 0x43, 0x30, + 0x75, 0x6d, 0x54, 0x78, 0x32, 0x56, 0x75, 0x4a, 0x44, 0x7a, + 0x54, 0x41, 0x53, 0x4e, 0x53, 0x31, 0x53, 0x0a, 0x4d, 0x73, + 0x6b, 0x48, 0x44, 0x62, 0x72, 0x76, 0x63, 0x43, 0x6b, 0x69, + 0x41, 0x59, 0x79, 0x52, 0x49, 0x4c, 0x63, 0x77, 0x70, 0x76, + 0x78, 0x6d, 0x65, 0x55, 0x53, 0x37, 0x36, 0x37, 0x61, 0x30, + 0x51, 0x49, 0x6d, 0x33, 0x53, 0x51, 0x37, 0x31, 0x76, 0x31, + 0x71, 0x41, 0x72, 0x4a, 0x32, 0x44, 0x53, 0x43, 0x37, 0x36, + 0x6c, 0x69, 0x48, 0x72, 0x4b, 0x6a, 0x4b, 0x74, 0x61, 0x44, + 0x63, 0x49, 0x0a, 0x65, 0x4f, 0x62, 0x50, 0x64, 0x4f, 0x6b, + 0x37, 0x33, 0x6a, 0x4f, 0x56, 0x46, 0x6a, 0x4d, 0x32, 0x5a, + 0x52, 0x76, 0x74, 0x4e, 0x67, 0x65, 0x5a, 0x72, 0x6a, 0x4f, + 0x79, 0x47, 0x2b, 0x74, 0x2b, 0x38, 0x5a, 0x68, 0x36, 0x43, + 0x6f, 0x50, 0x50, 0x55, 0x73, 0x71, 0x54, 0x6c, 0x38, 0x2b, + 0x6f, 0x73, 0x4d, 0x44, 0x62, 0x52, 0x48, 0x42, 0x69, 0x30, + 0x69, 0x4f, 0x4a, 0x51, 0x77, 0x52, 0x4b, 0x0a, 0x58, 0x72, + 0x45, 0x43, 0x67, 0x67, 0x45, 0x41, 0x64, 0x49, 0x34, 0x75, + 0x44, 0x53, 0x34, 0x33, 0x74, 0x68, 0x2f, 0x34, 0x35, 0x67, + 0x41, 0x35, 0x42, 0x37, 0x42, 0x39, 0x36, 0x6a, 0x49, 0x4c, + 0x33, 0x55, 0x42, 0x2f, 0x31, 0x5a, 0x44, 0x31, 0x69, 0x61, + 0x45, 0x56, 0x5a, 0x79, 0x44, 0x39, 0x78, 0x73, 0x56, 0x33, + 0x42, 0x78, 0x6a, 0x70, 0x67, 0x41, 0x4b, 0x78, 0x31, 0x4a, + 0x41, 0x56, 0x0a, 0x56, 0x4e, 0x46, 0x30, 0x49, 0x59, 0x54, + 0x34, 0x6f, 0x61, 0x50, 0x35, 0x35, 0x72, 0x68, 0x7a, 0x6a, + 0x6f, 0x2b, 0x51, 0x2f, 0x41, 0x57, 0x4c, 0x52, 0x48, 0x4c, + 0x50, 0x54, 0x39, 0x64, 0x78, 0x67, 0x67, 0x4f, 0x53, 0x64, + 0x4d, 0x6d, 0x70, 0x4d, 0x33, 0x4d, 0x75, 0x63, 0x45, 0x36, + 0x44, 0x58, 0x6c, 0x69, 0x68, 0x43, 0x38, 0x42, 0x78, 0x62, + 0x72, 0x4d, 0x2f, 0x70, 0x4a, 0x63, 0x37, 0x0a, 0x69, 0x74, + 0x75, 0x30, 0x37, 0x64, 0x4b, 0x77, 0x66, 0x76, 0x74, 0x76, + 0x63, 0x64, 0x65, 0x73, 0x49, 0x72, 0x47, 0x32, 0x47, 0x33, + 0x45, 0x69, 0x38, 0x53, 0x46, 0x47, 0x34, 0x36, 0x6e, 0x6c, + 0x58, 0x76, 0x62, 0x59, 0x79, 0x75, 0x4c, 0x6c, 0x61, 0x73, + 0x56, 0x2f, 0x62, 0x67, 0x59, 0x52, 0x64, 0x7a, 0x2b, 0x46, + 0x6f, 0x61, 0x48, 0x4c, 0x7a, 0x63, 0x66, 0x55, 0x4f, 0x49, + 0x6b, 0x57, 0x0a, 0x52, 0x36, 0x4b, 0x66, 0x36, 0x51, 0x32, + 0x52, 0x45, 0x4e, 0x32, 0x6d, 0x74, 0x54, 0x54, 0x78, 0x62, + 0x32, 0x56, 0x78, 0x52, 0x38, 0x61, 0x64, 0x52, 0x67, 0x65, + 0x61, 0x71, 0x44, 0x54, 0x35, 0x57, 0x61, 0x49, 0x52, 0x47, + 0x62, 0x32, 0x4f, 0x54, 0x63, 0x45, 0x54, 0x5a, 0x4d, 0x41, + 0x38, 0x62, 0x42, 0x4a, 0x66, 0x52, 0x63, 0x2f, 0x41, 0x54, + 0x4b, 0x35, 0x6a, 0x73, 0x4d, 0x39, 0x30, 0x0a, 0x68, 0x39, + 0x62, 0x30, 0x2f, 0x56, 0x38, 0x47, 0x4c, 0x39, 0x38, 0x63, + 0x66, 0x46, 0x7a, 0x59, 0x53, 0x2b, 0x4b, 0x44, 0x79, 0x78, + 0x34, 0x52, 0x4a, 0x49, 0x39, 0x63, 0x6f, 0x42, 0x6a, 0x4a, + 0x69, 0x41, 0x46, 0x65, 0x62, 0x4c, 0x46, 0x51, 0x56, 0x46, + 0x5a, 0x32, 0x55, 0x43, 0x74, 0x45, 0x48, 0x66, 0x79, 0x32, + 0x36, 0x77, 0x6f, 0x6f, 0x4a, 0x33, 0x35, 0x73, 0x55, 0x33, + 0x34, 0x37, 0x0a, 0x5a, 0x2b, 0x4d, 0x6a, 0x42, 0x45, 0x55, + 0x77, 0x76, 0x45, 0x44, 0x7a, 0x67, 0x6f, 0x33, 0x6d, 0x32, + 0x68, 0x6b, 0x58, 0x4e, 0x4b, 0x68, 0x2f, 0x48, 0x71, 0x64, + 0x72, 0x77, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, + 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x0a, + }}, +}; +/* + +RSASHA512 (1024b) + +rsa1024-512. DNSKEY 256 3 10 AwEAAbCq8MieaGKV/KQyex5Sft1IlyYm1VMafAF2qPUAc+wr2IYJbnX4AJ60pLVFpP2AfNHgbYaq4lkHvFyjl0TvyZQZCAr92lFpcPvVtWXKN+iA53kzpLwWihEBR4K5XogSZOyk9FZ/gb1oMO4FNLgIlKvBA0pQZ4lfzonuO139wGdR +rsa1024-512. DS 50388 10 1 96B0C31DDC0AAACDFF381BD0D8D7B59DD249E5A0 +rsa1024-512. DS 50388 10 2 EB4D061FEC7F25A62DAC75627C686E97E3CF0DDB1852B203E97262F1978021C0 +rsa1024-512. DS 50388 10 4 A1E822645D8BE029A321996B2DACA375907C8280D972B0E0499F3CCF4E83D5552AB222C9A0F1AA9968E05B51078AEEE0 + +-----BEGIN PRIVATE KEY----- +MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALCq8MieaGKV/KQy +ex5Sft1IlyYm1VMafAF2qPUAc+wr2IYJbnX4AJ60pLVFpP2AfNHgbYaq4lkHvFyj +l0TvyZQZCAr92lFpcPvVtWXKN+iA53kzpLwWihEBR4K5XogSZOyk9FZ/gb1oMO4F +NLgIlKvBA0pQZ4lfzonuO139wGdRAgMBAAECgYEApIYMxkf/HhBfvunkDlD1JE49 +tKHleAbqBNLkdYV+bypF8k1GOUZEDYhc+xNom0vU8f73ALqTICY8HGmcre5A4cUi +YIoCQweKu3OD2m2Trso2J1pT8+nUTvbyxgA5MrTF++DecpBR8fNe1uRzxIKOfXhE +jlaTUWta58M7fidv8gECQQDEAcp2YhmdIh+LzrWW96lAcR40Y7Kd3GPlm/U5zFKu +dthsv4BgdjzHtzHmQfRFyvZzztZCbU6+q60aJGcW2ss5AkEA5r3QZk3qgrqQMM3U +8C4bwhpFUVok9pSKD9FIXCw4FVaruv+ir1FKLSxYRwlpO77NZm4+Lw6QZ5G4F5/m +v8dE2QJBAJf2M3vYzrbuj7qaxlqHJGdby+keKosNJT4MzfDDoo60gVK+nc8rnC/S +rhMwqyu5EZ3zjFXv3Q8ilpAgDPTBKLECQAb4nR86I2ens0uGLHTFL9mBaa63hn5c +pn8r13/RZjBe2flgV83sKs2KlXAv/Jntfc8mbYKGch5u7JzqG9KXdqECQEolvGvG +uhKCZ2VM3cJsuAZhsIRKC1mbhbJSftv9DRQfHIIBjVNKKm+rPAje5xhkSrZ4WL3i +4XWXX6An/P++sl4= +-----END PRIVATE KEY----- + +*/ +static const key_parameters_t SAMPLE_RSA1024_SHA512_KEY = { + .name = (uint8_t *)"\x0b""rsa1024-512", + .flags = 256, + .protocol = 3, + .algorithm = 10, + .public_key = { .size = 132, .data = (uint8_t []){ + 0x03, 0x01, 0x00, 0x01, 0xb0, 0xaa, 0xf0, 0xc8, 0x9e, 0x68, + 0x62, 0x95, 0xfc, 0xa4, 0x32, 0x7b, 0x1e, 0x52, 0x7e, 0xdd, + 0x48, 0x97, 0x26, 0x26, 0xd5, 0x53, 0x1a, 0x7c, 0x01, 0x76, + 0xa8, 0xf5, 0x00, 0x73, 0xec, 0x2b, 0xd8, 0x86, 0x09, 0x6e, + 0x75, 0xf8, 0x00, 0x9e, 0xb4, 0xa4, 0xb5, 0x45, 0xa4, 0xfd, + 0x80, 0x7c, 0xd1, 0xe0, 0x6d, 0x86, 0xaa, 0xe2, 0x59, 0x07, + 0xbc, 0x5c, 0xa3, 0x97, 0x44, 0xef, 0xc9, 0x94, 0x19, 0x08, + 0x0a, 0xfd, 0xda, 0x51, 0x69, 0x70, 0xfb, 0xd5, 0xb5, 0x65, + 0xca, 0x37, 0xe8, 0x80, 0xe7, 0x79, 0x33, 0xa4, 0xbc, 0x16, + 0x8a, 0x11, 0x01, 0x47, 0x82, 0xb9, 0x5e, 0x88, 0x12, 0x64, + 0xec, 0xa4, 0xf4, 0x56, 0x7f, 0x81, 0xbd, 0x68, 0x30, 0xee, + 0x05, 0x34, 0xb8, 0x08, 0x94, 0xab, 0xc1, 0x03, 0x4a, 0x50, + 0x67, 0x89, 0x5f, 0xce, 0x89, 0xee, 0x3b, 0x5d, 0xfd, 0xc0, + 0x67, 0x51, + }}, + .rdata = { .size = 136, .data = (uint8_t []){ + 01, 0x00, 0x03, 0x0a, + 0x03, 0x01, 0x00, 0x01, 0xb0, 0xaa, 0xf0, 0xc8, 0x9e, 0x68, + 0x62, 0x95, 0xfc, 0xa4, 0x32, 0x7b, 0x1e, 0x52, 0x7e, 0xdd, + 0x48, 0x97, 0x26, 0x26, 0xd5, 0x53, 0x1a, 0x7c, 0x01, 0x76, + 0xa8, 0xf5, 0x00, 0x73, 0xec, 0x2b, 0xd8, 0x86, 0x09, 0x6e, + 0x75, 0xf8, 0x00, 0x9e, 0xb4, 0xa4, 0xb5, 0x45, 0xa4, 0xfd, + 0x80, 0x7c, 0xd1, 0xe0, 0x6d, 0x86, 0xaa, 0xe2, 0x59, 0x07, + 0xbc, 0x5c, 0xa3, 0x97, 0x44, 0xef, 0xc9, 0x94, 0x19, 0x08, + 0x0a, 0xfd, 0xda, 0x51, 0x69, 0x70, 0xfb, 0xd5, 0xb5, 0x65, + 0xca, 0x37, 0xe8, 0x80, 0xe7, 0x79, 0x33, 0xa4, 0xbc, 0x16, + 0x8a, 0x11, 0x01, 0x47, 0x82, 0xb9, 0x5e, 0x88, 0x12, 0x64, + 0xec, 0xa4, 0xf4, 0x56, 0x7f, 0x81, 0xbd, 0x68, 0x30, 0xee, + 0x05, 0x34, 0xb8, 0x08, 0x94, 0xab, 0xc1, 0x03, 0x4a, 0x50, + 0x67, 0x89, 0x5f, 0xce, 0x89, 0xee, 0x3b, 0x5d, 0xfd, 0xc0, + 0x67, 0x51, + }}, + .key_id = "03f1a686d8f3b377137f45978467c30b524d1e32", + .keytag = 50388, + .ds_sha1 = { .size = 24, .data = (uint8_t []){ + 0xc4, 0xd4, 0x0a, 0x01, 0x96, 0xb0, 0xc3, 0x1d, 0xdc, 0x0a, + 0xaa, 0xcd, 0xff, 0x38, 0x1b, 0xd0, 0xd8, 0xd7, 0xb5, 0x9d, + 0xd2, 0x49, 0xe5, 0xa0, + }}, + .ds_sha256 = { .size = 36, .data = (uint8_t []){ + 0xc4, 0xd4, 0x0a, 0x02, 0xeb, 0x4d, 0x06, 0x1f, 0xec, 0x7f, + 0x25, 0xa6, 0x2d, 0xac, 0x75, 0x62, 0x7c, 0x68, 0x6e, 0x97, + 0xe3, 0xcf, 0x0d, 0xdb, 0x18, 0x52, 0xb2, 0x03, 0xe9, 0x72, + 0x62, 0xf1, 0x97, 0x80, 0x21, 0xc0, + }}, + .ds_sha384 = { .size = 52, .data = (uint8_t []){ + 0xc4, 0xd4, 0x0a, 0x04, 0xa1, 0xe8, 0x22, 0x64, 0x5d, 0x8b, + 0xe0, 0x29, 0xa3, 0x21, 0x99, 0x6b, 0x2d, 0xac, 0xa3, 0x75, + 0x90, 0x7c, 0x82, 0x80, 0xd9, 0x72, 0xb0, 0xe0, 0x49, 0x9f, + 0x3c, 0xcf, 0x4e, 0x83, 0xd5, 0x55, 0x2a, 0xb2, 0x22, 0xc9, + 0xa0, 0xf1, 0xaa, 0x99, 0x68, 0xe0, 0x5b, 0x51, 0x07, 0x8a, + 0xee, 0xe0, + }}, + .bit_size = 1024, + .pem = { .size = 916, .data = (uint8_t []){ + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, + 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, + 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, + 0x49, 0x43, 0x64, 0x77, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, + 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, + 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x53, 0x43, + 0x41, 0x6d, 0x45, 0x77, 0x67, 0x67, 0x4a, 0x64, 0x41, 0x67, + 0x45, 0x41, 0x41, 0x6f, 0x47, 0x42, 0x41, 0x4c, 0x43, 0x71, + 0x38, 0x4d, 0x69, 0x65, 0x61, 0x47, 0x4b, 0x56, 0x2f, 0x4b, + 0x51, 0x79, 0x0a, 0x65, 0x78, 0x35, 0x53, 0x66, 0x74, 0x31, + 0x49, 0x6c, 0x79, 0x59, 0x6d, 0x31, 0x56, 0x4d, 0x61, 0x66, + 0x41, 0x46, 0x32, 0x71, 0x50, 0x55, 0x41, 0x63, 0x2b, 0x77, + 0x72, 0x32, 0x49, 0x59, 0x4a, 0x62, 0x6e, 0x58, 0x34, 0x41, + 0x4a, 0x36, 0x30, 0x70, 0x4c, 0x56, 0x46, 0x70, 0x50, 0x32, + 0x41, 0x66, 0x4e, 0x48, 0x67, 0x62, 0x59, 0x61, 0x71, 0x34, + 0x6c, 0x6b, 0x48, 0x76, 0x46, 0x79, 0x6a, 0x0a, 0x6c, 0x30, + 0x54, 0x76, 0x79, 0x5a, 0x51, 0x5a, 0x43, 0x41, 0x72, 0x39, + 0x32, 0x6c, 0x46, 0x70, 0x63, 0x50, 0x76, 0x56, 0x74, 0x57, + 0x58, 0x4b, 0x4e, 0x2b, 0x69, 0x41, 0x35, 0x33, 0x6b, 0x7a, + 0x70, 0x4c, 0x77, 0x57, 0x69, 0x68, 0x45, 0x42, 0x52, 0x34, + 0x4b, 0x35, 0x58, 0x6f, 0x67, 0x53, 0x5a, 0x4f, 0x79, 0x6b, + 0x39, 0x46, 0x5a, 0x2f, 0x67, 0x62, 0x31, 0x6f, 0x4d, 0x4f, + 0x34, 0x46, 0x0a, 0x4e, 0x4c, 0x67, 0x49, 0x6c, 0x4b, 0x76, + 0x42, 0x41, 0x30, 0x70, 0x51, 0x5a, 0x34, 0x6c, 0x66, 0x7a, + 0x6f, 0x6e, 0x75, 0x4f, 0x31, 0x33, 0x39, 0x77, 0x47, 0x64, + 0x52, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x45, 0x43, 0x67, + 0x59, 0x45, 0x41, 0x70, 0x49, 0x59, 0x4d, 0x78, 0x6b, 0x66, + 0x2f, 0x48, 0x68, 0x42, 0x66, 0x76, 0x75, 0x6e, 0x6b, 0x44, + 0x6c, 0x44, 0x31, 0x4a, 0x45, 0x34, 0x39, 0x0a, 0x74, 0x4b, + 0x48, 0x6c, 0x65, 0x41, 0x62, 0x71, 0x42, 0x4e, 0x4c, 0x6b, + 0x64, 0x59, 0x56, 0x2b, 0x62, 0x79, 0x70, 0x46, 0x38, 0x6b, + 0x31, 0x47, 0x4f, 0x55, 0x5a, 0x45, 0x44, 0x59, 0x68, 0x63, + 0x2b, 0x78, 0x4e, 0x6f, 0x6d, 0x30, 0x76, 0x55, 0x38, 0x66, + 0x37, 0x33, 0x41, 0x4c, 0x71, 0x54, 0x49, 0x43, 0x59, 0x38, + 0x48, 0x47, 0x6d, 0x63, 0x72, 0x65, 0x35, 0x41, 0x34, 0x63, + 0x55, 0x69, 0x0a, 0x59, 0x49, 0x6f, 0x43, 0x51, 0x77, 0x65, + 0x4b, 0x75, 0x33, 0x4f, 0x44, 0x32, 0x6d, 0x32, 0x54, 0x72, + 0x73, 0x6f, 0x32, 0x4a, 0x31, 0x70, 0x54, 0x38, 0x2b, 0x6e, + 0x55, 0x54, 0x76, 0x62, 0x79, 0x78, 0x67, 0x41, 0x35, 0x4d, + 0x72, 0x54, 0x46, 0x2b, 0x2b, 0x44, 0x65, 0x63, 0x70, 0x42, + 0x52, 0x38, 0x66, 0x4e, 0x65, 0x31, 0x75, 0x52, 0x7a, 0x78, + 0x49, 0x4b, 0x4f, 0x66, 0x58, 0x68, 0x45, 0x0a, 0x6a, 0x6c, + 0x61, 0x54, 0x55, 0x57, 0x74, 0x61, 0x35, 0x38, 0x4d, 0x37, + 0x66, 0x69, 0x64, 0x76, 0x38, 0x67, 0x45, 0x43, 0x51, 0x51, + 0x44, 0x45, 0x41, 0x63, 0x70, 0x32, 0x59, 0x68, 0x6d, 0x64, + 0x49, 0x68, 0x2b, 0x4c, 0x7a, 0x72, 0x57, 0x57, 0x39, 0x36, + 0x6c, 0x41, 0x63, 0x52, 0x34, 0x30, 0x59, 0x37, 0x4b, 0x64, + 0x33, 0x47, 0x50, 0x6c, 0x6d, 0x2f, 0x55, 0x35, 0x7a, 0x46, + 0x4b, 0x75, 0x0a, 0x64, 0x74, 0x68, 0x73, 0x76, 0x34, 0x42, + 0x67, 0x64, 0x6a, 0x7a, 0x48, 0x74, 0x7a, 0x48, 0x6d, 0x51, + 0x66, 0x52, 0x46, 0x79, 0x76, 0x5a, 0x7a, 0x7a, 0x74, 0x5a, + 0x43, 0x62, 0x55, 0x36, 0x2b, 0x71, 0x36, 0x30, 0x61, 0x4a, + 0x47, 0x63, 0x57, 0x32, 0x73, 0x73, 0x35, 0x41, 0x6b, 0x45, + 0x41, 0x35, 0x72, 0x33, 0x51, 0x5a, 0x6b, 0x33, 0x71, 0x67, + 0x72, 0x71, 0x51, 0x4d, 0x4d, 0x33, 0x55, 0x0a, 0x38, 0x43, + 0x34, 0x62, 0x77, 0x68, 0x70, 0x46, 0x55, 0x56, 0x6f, 0x6b, + 0x39, 0x70, 0x53, 0x4b, 0x44, 0x39, 0x46, 0x49, 0x58, 0x43, + 0x77, 0x34, 0x46, 0x56, 0x61, 0x72, 0x75, 0x76, 0x2b, 0x69, + 0x72, 0x31, 0x46, 0x4b, 0x4c, 0x53, 0x78, 0x59, 0x52, 0x77, + 0x6c, 0x70, 0x4f, 0x37, 0x37, 0x4e, 0x5a, 0x6d, 0x34, 0x2b, + 0x4c, 0x77, 0x36, 0x51, 0x5a, 0x35, 0x47, 0x34, 0x46, 0x35, + 0x2f, 0x6d, 0x0a, 0x76, 0x38, 0x64, 0x45, 0x32, 0x51, 0x4a, + 0x42, 0x41, 0x4a, 0x66, 0x32, 0x4d, 0x33, 0x76, 0x59, 0x7a, + 0x72, 0x62, 0x75, 0x6a, 0x37, 0x71, 0x61, 0x78, 0x6c, 0x71, + 0x48, 0x4a, 0x47, 0x64, 0x62, 0x79, 0x2b, 0x6b, 0x65, 0x4b, + 0x6f, 0x73, 0x4e, 0x4a, 0x54, 0x34, 0x4d, 0x7a, 0x66, 0x44, + 0x44, 0x6f, 0x6f, 0x36, 0x30, 0x67, 0x56, 0x4b, 0x2b, 0x6e, + 0x63, 0x38, 0x72, 0x6e, 0x43, 0x2f, 0x53, 0x0a, 0x72, 0x68, + 0x4d, 0x77, 0x71, 0x79, 0x75, 0x35, 0x45, 0x5a, 0x33, 0x7a, + 0x6a, 0x46, 0x58, 0x76, 0x33, 0x51, 0x38, 0x69, 0x6c, 0x70, + 0x41, 0x67, 0x44, 0x50, 0x54, 0x42, 0x4b, 0x4c, 0x45, 0x43, + 0x51, 0x41, 0x62, 0x34, 0x6e, 0x52, 0x38, 0x36, 0x49, 0x32, + 0x65, 0x6e, 0x73, 0x30, 0x75, 0x47, 0x4c, 0x48, 0x54, 0x46, + 0x4c, 0x39, 0x6d, 0x42, 0x61, 0x61, 0x36, 0x33, 0x68, 0x6e, + 0x35, 0x63, 0x0a, 0x70, 0x6e, 0x38, 0x72, 0x31, 0x33, 0x2f, + 0x52, 0x5a, 0x6a, 0x42, 0x65, 0x32, 0x66, 0x6c, 0x67, 0x56, + 0x38, 0x33, 0x73, 0x4b, 0x73, 0x32, 0x4b, 0x6c, 0x58, 0x41, + 0x76, 0x2f, 0x4a, 0x6e, 0x74, 0x66, 0x63, 0x38, 0x6d, 0x62, + 0x59, 0x4b, 0x47, 0x63, 0x68, 0x35, 0x75, 0x37, 0x4a, 0x7a, + 0x71, 0x47, 0x39, 0x4b, 0x58, 0x64, 0x71, 0x45, 0x43, 0x51, + 0x45, 0x6f, 0x6c, 0x76, 0x47, 0x76, 0x47, 0x0a, 0x75, 0x68, + 0x4b, 0x43, 0x5a, 0x32, 0x56, 0x4d, 0x33, 0x63, 0x4a, 0x73, + 0x75, 0x41, 0x5a, 0x68, 0x73, 0x49, 0x52, 0x4b, 0x43, 0x31, + 0x6d, 0x62, 0x68, 0x62, 0x4a, 0x53, 0x66, 0x74, 0x76, 0x39, + 0x44, 0x52, 0x51, 0x66, 0x48, 0x49, 0x49, 0x42, 0x6a, 0x56, + 0x4e, 0x4b, 0x4b, 0x6d, 0x2b, 0x72, 0x50, 0x41, 0x6a, 0x65, + 0x35, 0x78, 0x68, 0x6b, 0x53, 0x72, 0x5a, 0x34, 0x57, 0x4c, + 0x33, 0x69, 0x0a, 0x34, 0x58, 0x57, 0x58, 0x58, 0x36, 0x41, + 0x6e, 0x2f, 0x50, 0x2b, 0x2b, 0x73, 0x6c, 0x34, 0x3d, 0x0a, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x50, + 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, + }}, +}; +/* + +RSASHA512 (2048b) + +rsa2048-512. DNSKEY 256 3 10 AwEAAcAt1xtWEpAqrnkLLEbzXP7uzdIkOepNrzsQp9XldmpXtdTpkz+m4IDZc0VoitO7OeVT13VwIeZ/JxckqtHov8/DLeSm5ExmfcGkjh8Trliles+FOEs3Zk4sXqunlULLU7FqO5SLdnjQ9qlV1wsfQk/EiSmtgyWcEYE6Yg0Z1Kb67fOAZhFhrl8V5g0VxNYDm2SF9pXeNoxpJ25WxbUf58fy7rFRAtYHOQf44smiu84ovhkasWfFIYcIES/DWe7en6CnyDrLkNLq4lZnPdeArMOt8Z6dipQWirKfz+JPQjiahlTwi99WEJHPJ4jrHd93VpYbJlSKV9odMtwhaTFl55U= +rsa2048-512. DS 52908 10 1 2D85820E982CF5DEE9A7F315F95D868F55366F03 +rsa2048-512. DS 52908 10 2 9768222BD72C197F45144E2F35A75CDA94785951AFA160432683ADB073EB06E9 +rsa2048-512. DS 52908 10 4 3CCF23DF0CF263DF8AC5D49285C95FAF3EBDD4E95C2E34BF7B4C01C935EBC32492202802B3E3C81CB5AE515EC576C682 + +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDALdcbVhKQKq55 +CyxG81z+7s3SJDnqTa87EKfV5XZqV7XU6ZM/puCA2XNFaIrTuznlU9d1cCHmfycX +JKrR6L/Pwy3kpuRMZn3BpI4fE65YpXrPhThLN2ZOLF6rp5VCy1OxajuUi3Z40Pap +VdcLH0JPxIkprYMlnBGBOmINGdSm+u3zgGYRYa5fFeYNFcTWA5tkhfaV3jaMaSdu +VsW1H+fH8u6xUQLWBzkH+OLJorvOKL4ZGrFnxSGHCBEvw1nu3p+gp8g6y5DS6uJW +Zz3XgKzDrfGenYqUFoqyn8/iT0I4moZU8IvfVhCRzyeI6x3fd1aWGyZUilfaHTLc +IWkxZeeVAgMBAAECggEASYC+5zuyeeV5Od6mHrTx+qeHnTox1IXF4cdrCgprkhzd +9QMpSI0hDOceiYuEnZrcd/PrUoWC0dAMOXPSydpFksdKBEw4wWfp7Whs20IByvHv +2PNRJqOXw4qA4xKDqjpuVksVYqk8tNTnorisORrJmAzJkWFF6dqZb13PJsecaAij +aAU1ViCgNZgj7Khh1nOR6ZGa+RZmxnMOnNt3ERMWQeM27U9UvRQXU0h6+EzOziMY +YwCNklkCD3Cy5OczchXz6WYHJNuW6YGTB4o/dOELKv3KHBx+MeE64cRM5fsnv44H +e84DfYbZu+hVaJlkkGOdvVrSNW4isOy4s5I34E4xuQKBgQDO0paiXIhoES8voeaS +tdKr4IV2gZrHe73ZNaYQSGQf09wQFLIh6evUSE+7NYtv0JtL7gmXVYrzjjT5wE4X +HyC3j4K1cj5N9DXW9kXcebDjAbhn0PbPf1xAY8YujwVUJsVcIm3/s3NMkBuZRoNl +R0Ol+YajFGXKbp9Pt24OoKqSewKBgQDt3+QCyfg8s6kNGUsID1h/SHw8ZoaOKlN2 +a7v22Azw0OvIXMlYCwDQqoBXOXuzPA6tKGGi0If1OUgReZvc2hApj0GKsiMMR8Do +EV/0pboN5hAKQ5CbMSqqsD//thwORjpTF417kdlrBd4cNgoJA6QnkCz/cENajFKM +Be32OiUZLwKBgAw0GtVLtnTFhs49tFg1yE+B+P4MGbDpmUMmyjytuNKz8ok0X2pm +3hZxidrXBvo7Cd7KFeDLGF7UpkWSVklA+fI60pCYRBrfbQnZEDg5KfnLETF3AAkw +T6Yw/PGkWMElZIHSOkFbOlNrMWWy5m/ka5ZwicQ3oOX37wiKH0FXs5jfAoGBAIy4 +cHi95p5yYkWfeuWvvli+FtDcjik4HNvna/DhavZjgbisO2hcSgUneHkhRm6Hzt7d +DrV0y5lkY6AC4xPJ5NnRJ6LXMyimohYngS6HhAOI4GBSDA/jDCyhy5qIrxw6q3JQ +cqBxbb+EXxstVM50Wv4UqqoKTa4ZaRPwxg9t4lh9AoGAEOOZ4s0hOjoMLyZx6NXQ +biHJS2DNxjE4opzLvP6RFmqBtgp5n3wvqvBBLQKLguLti+G/UjiywTFl8Wj4PEhj +T9UObU8PuXF3XzWx3WkznYrFL59N1Q01+di31fXLFAi04C9LItxHrRsmYmgaPzoJ +nZPcvyLnplvFLPoT1EB32fM= +-----END PRIVATE KEY----- + +*/ +static const key_parameters_t SAMPLE_RSA2048_SHA512_KEY = { + .name = (uint8_t *)"\x0b""rsa2048-512", + .flags = 256, + .protocol = 3, + .algorithm = 10, + .public_key = { .size = 260, .data = (uint8_t []){ + 0x03, 0x01, 0x00, 0x01, 0xc0, 0x2d, 0xd7, 0x1b, 0x56, 0x12, + 0x90, 0x2a, 0xae, 0x79, 0x0b, 0x2c, 0x46, 0xf3, 0x5c, 0xfe, + 0xee, 0xcd, 0xd2, 0x24, 0x39, 0xea, 0x4d, 0xaf, 0x3b, 0x10, + 0xa7, 0xd5, 0xe5, 0x76, 0x6a, 0x57, 0xb5, 0xd4, 0xe9, 0x93, + 0x3f, 0xa6, 0xe0, 0x80, 0xd9, 0x73, 0x45, 0x68, 0x8a, 0xd3, + 0xbb, 0x39, 0xe5, 0x53, 0xd7, 0x75, 0x70, 0x21, 0xe6, 0x7f, + 0x27, 0x17, 0x24, 0xaa, 0xd1, 0xe8, 0xbf, 0xcf, 0xc3, 0x2d, + 0xe4, 0xa6, 0xe4, 0x4c, 0x66, 0x7d, 0xc1, 0xa4, 0x8e, 0x1f, + 0x13, 0xae, 0x58, 0xa5, 0x7a, 0xcf, 0x85, 0x38, 0x4b, 0x37, + 0x66, 0x4e, 0x2c, 0x5e, 0xab, 0xa7, 0x95, 0x42, 0xcb, 0x53, + 0xb1, 0x6a, 0x3b, 0x94, 0x8b, 0x76, 0x78, 0xd0, 0xf6, 0xa9, + 0x55, 0xd7, 0x0b, 0x1f, 0x42, 0x4f, 0xc4, 0x89, 0x29, 0xad, + 0x83, 0x25, 0x9c, 0x11, 0x81, 0x3a, 0x62, 0x0d, 0x19, 0xd4, + 0xa6, 0xfa, 0xed, 0xf3, 0x80, 0x66, 0x11, 0x61, 0xae, 0x5f, + 0x15, 0xe6, 0x0d, 0x15, 0xc4, 0xd6, 0x03, 0x9b, 0x64, 0x85, + 0xf6, 0x95, 0xde, 0x36, 0x8c, 0x69, 0x27, 0x6e, 0x56, 0xc5, + 0xb5, 0x1f, 0xe7, 0xc7, 0xf2, 0xee, 0xb1, 0x51, 0x02, 0xd6, + 0x07, 0x39, 0x07, 0xf8, 0xe2, 0xc9, 0xa2, 0xbb, 0xce, 0x28, + 0xbe, 0x19, 0x1a, 0xb1, 0x67, 0xc5, 0x21, 0x87, 0x08, 0x11, + 0x2f, 0xc3, 0x59, 0xee, 0xde, 0x9f, 0xa0, 0xa7, 0xc8, 0x3a, + 0xcb, 0x90, 0xd2, 0xea, 0xe2, 0x56, 0x67, 0x3d, 0xd7, 0x80, + 0xac, 0xc3, 0xad, 0xf1, 0x9e, 0x9d, 0x8a, 0x94, 0x16, 0x8a, + 0xb2, 0x9f, 0xcf, 0xe2, 0x4f, 0x42, 0x38, 0x9a, 0x86, 0x54, + 0xf0, 0x8b, 0xdf, 0x56, 0x10, 0x91, 0xcf, 0x27, 0x88, 0xeb, + 0x1d, 0xdf, 0x77, 0x56, 0x96, 0x1b, 0x26, 0x54, 0x8a, 0x57, + 0xda, 0x1d, 0x32, 0xdc, 0x21, 0x69, 0x31, 0x65, 0xe7, 0x95, + }}, + .rdata = { .size = 264, .data = (uint8_t []){ + 01, 0x00, 0x03, 0x0a, + 0x03, 0x01, 0x00, 0x01, 0xc0, 0x2d, 0xd7, 0x1b, 0x56, 0x12, + 0x90, 0x2a, 0xae, 0x79, 0x0b, 0x2c, 0x46, 0xf3, 0x5c, 0xfe, + 0xee, 0xcd, 0xd2, 0x24, 0x39, 0xea, 0x4d, 0xaf, 0x3b, 0x10, + 0xa7, 0xd5, 0xe5, 0x76, 0x6a, 0x57, 0xb5, 0xd4, 0xe9, 0x93, + 0x3f, 0xa6, 0xe0, 0x80, 0xd9, 0x73, 0x45, 0x68, 0x8a, 0xd3, + 0xbb, 0x39, 0xe5, 0x53, 0xd7, 0x75, 0x70, 0x21, 0xe6, 0x7f, + 0x27, 0x17, 0x24, 0xaa, 0xd1, 0xe8, 0xbf, 0xcf, 0xc3, 0x2d, + 0xe4, 0xa6, 0xe4, 0x4c, 0x66, 0x7d, 0xc1, 0xa4, 0x8e, 0x1f, + 0x13, 0xae, 0x58, 0xa5, 0x7a, 0xcf, 0x85, 0x38, 0x4b, 0x37, + 0x66, 0x4e, 0x2c, 0x5e, 0xab, 0xa7, 0x95, 0x42, 0xcb, 0x53, + 0xb1, 0x6a, 0x3b, 0x94, 0x8b, 0x76, 0x78, 0xd0, 0xf6, 0xa9, + 0x55, 0xd7, 0x0b, 0x1f, 0x42, 0x4f, 0xc4, 0x89, 0x29, 0xad, + 0x83, 0x25, 0x9c, 0x11, 0x81, 0x3a, 0x62, 0x0d, 0x19, 0xd4, + 0xa6, 0xfa, 0xed, 0xf3, 0x80, 0x66, 0x11, 0x61, 0xae, 0x5f, + 0x15, 0xe6, 0x0d, 0x15, 0xc4, 0xd6, 0x03, 0x9b, 0x64, 0x85, + 0xf6, 0x95, 0xde, 0x36, 0x8c, 0x69, 0x27, 0x6e, 0x56, 0xc5, + 0xb5, 0x1f, 0xe7, 0xc7, 0xf2, 0xee, 0xb1, 0x51, 0x02, 0xd6, + 0x07, 0x39, 0x07, 0xf8, 0xe2, 0xc9, 0xa2, 0xbb, 0xce, 0x28, + 0xbe, 0x19, 0x1a, 0xb1, 0x67, 0xc5, 0x21, 0x87, 0x08, 0x11, + 0x2f, 0xc3, 0x59, 0xee, 0xde, 0x9f, 0xa0, 0xa7, 0xc8, 0x3a, + 0xcb, 0x90, 0xd2, 0xea, 0xe2, 0x56, 0x67, 0x3d, 0xd7, 0x80, + 0xac, 0xc3, 0xad, 0xf1, 0x9e, 0x9d, 0x8a, 0x94, 0x16, 0x8a, + 0xb2, 0x9f, 0xcf, 0xe2, 0x4f, 0x42, 0x38, 0x9a, 0x86, 0x54, + 0xf0, 0x8b, 0xdf, 0x56, 0x10, 0x91, 0xcf, 0x27, 0x88, 0xeb, + 0x1d, 0xdf, 0x77, 0x56, 0x96, 0x1b, 0x26, 0x54, 0x8a, 0x57, + 0xda, 0x1d, 0x32, 0xdc, 0x21, 0x69, 0x31, 0x65, 0xe7, 0x95, + }}, + .key_id = "a9cbfcd0519f92fc967091a896370fcb1485514e", + .keytag = 52908, + .ds_sha1 = { .size = 24, .data = (uint8_t []){ + 0xce, 0xac, 0x0a, 0x01, 0x2d, 0x85, 0x82, 0x0e, 0x98, 0x2c, + 0xf5, 0xde, 0xe9, 0xa7, 0xf3, 0x15, 0xf9, 0x5d, 0x86, 0x8f, + 0x55, 0x36, 0x6f, 0x03, + }}, + .ds_sha256 = { .size = 36, .data = (uint8_t []){ + 0xce, 0xac, 0x0a, 0x02, 0x97, 0x68, 0x22, 0x2b, 0xd7, 0x2c, + 0x19, 0x7f, 0x45, 0x14, 0x4e, 0x2f, 0x35, 0xa7, 0x5c, 0xda, + 0x94, 0x78, 0x59, 0x51, 0xaf, 0xa1, 0x60, 0x43, 0x26, 0x83, + 0xad, 0xb0, 0x73, 0xeb, 0x06, 0xe9, + }}, + .ds_sha384 = { .size = 52, .data = (uint8_t []){ + 0xce, 0xac, 0x0a, 0x04, 0x3c, 0xcf, 0x23, 0xdf, 0x0c, 0xf2, + 0x63, 0xdf, 0x8a, 0xc5, 0xd4, 0x92, 0x85, 0xc9, 0x5f, 0xaf, + 0x3e, 0xbd, 0xd4, 0xe9, 0x5c, 0x2e, 0x34, 0xbf, 0x7b, 0x4c, + 0x01, 0xc9, 0x35, 0xeb, 0xc3, 0x24, 0x92, 0x20, 0x28, 0x02, + 0xb3, 0xe3, 0xc8, 0x1c, 0xb5, 0xae, 0x51, 0x5e, 0xc5, 0x76, + 0xc6, 0x82, + }}, + .bit_size = 2048, + .pem = { .size = 1704, .data = (uint8_t []){ + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, + 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, + 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, + 0x49, 0x45, 0x76, 0x51, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, + 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, + 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x53, 0x43, + 0x42, 0x4b, 0x63, 0x77, 0x67, 0x67, 0x53, 0x6a, 0x41, 0x67, + 0x45, 0x41, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x44, 0x41, + 0x4c, 0x64, 0x63, 0x62, 0x56, 0x68, 0x4b, 0x51, 0x4b, 0x71, + 0x35, 0x35, 0x0a, 0x43, 0x79, 0x78, 0x47, 0x38, 0x31, 0x7a, + 0x2b, 0x37, 0x73, 0x33, 0x53, 0x4a, 0x44, 0x6e, 0x71, 0x54, + 0x61, 0x38, 0x37, 0x45, 0x4b, 0x66, 0x56, 0x35, 0x58, 0x5a, + 0x71, 0x56, 0x37, 0x58, 0x55, 0x36, 0x5a, 0x4d, 0x2f, 0x70, + 0x75, 0x43, 0x41, 0x32, 0x58, 0x4e, 0x46, 0x61, 0x49, 0x72, + 0x54, 0x75, 0x7a, 0x6e, 0x6c, 0x55, 0x39, 0x64, 0x31, 0x63, + 0x43, 0x48, 0x6d, 0x66, 0x79, 0x63, 0x58, 0x0a, 0x4a, 0x4b, + 0x72, 0x52, 0x36, 0x4c, 0x2f, 0x50, 0x77, 0x79, 0x33, 0x6b, + 0x70, 0x75, 0x52, 0x4d, 0x5a, 0x6e, 0x33, 0x42, 0x70, 0x49, + 0x34, 0x66, 0x45, 0x36, 0x35, 0x59, 0x70, 0x58, 0x72, 0x50, + 0x68, 0x54, 0x68, 0x4c, 0x4e, 0x32, 0x5a, 0x4f, 0x4c, 0x46, + 0x36, 0x72, 0x70, 0x35, 0x56, 0x43, 0x79, 0x31, 0x4f, 0x78, + 0x61, 0x6a, 0x75, 0x55, 0x69, 0x33, 0x5a, 0x34, 0x30, 0x50, + 0x61, 0x70, 0x0a, 0x56, 0x64, 0x63, 0x4c, 0x48, 0x30, 0x4a, + 0x50, 0x78, 0x49, 0x6b, 0x70, 0x72, 0x59, 0x4d, 0x6c, 0x6e, + 0x42, 0x47, 0x42, 0x4f, 0x6d, 0x49, 0x4e, 0x47, 0x64, 0x53, + 0x6d, 0x2b, 0x75, 0x33, 0x7a, 0x67, 0x47, 0x59, 0x52, 0x59, + 0x61, 0x35, 0x66, 0x46, 0x65, 0x59, 0x4e, 0x46, 0x63, 0x54, + 0x57, 0x41, 0x35, 0x74, 0x6b, 0x68, 0x66, 0x61, 0x56, 0x33, + 0x6a, 0x61, 0x4d, 0x61, 0x53, 0x64, 0x75, 0x0a, 0x56, 0x73, + 0x57, 0x31, 0x48, 0x2b, 0x66, 0x48, 0x38, 0x75, 0x36, 0x78, + 0x55, 0x51, 0x4c, 0x57, 0x42, 0x7a, 0x6b, 0x48, 0x2b, 0x4f, + 0x4c, 0x4a, 0x6f, 0x72, 0x76, 0x4f, 0x4b, 0x4c, 0x34, 0x5a, + 0x47, 0x72, 0x46, 0x6e, 0x78, 0x53, 0x47, 0x48, 0x43, 0x42, + 0x45, 0x76, 0x77, 0x31, 0x6e, 0x75, 0x33, 0x70, 0x2b, 0x67, + 0x70, 0x38, 0x67, 0x36, 0x79, 0x35, 0x44, 0x53, 0x36, 0x75, + 0x4a, 0x57, 0x0a, 0x5a, 0x7a, 0x33, 0x58, 0x67, 0x4b, 0x7a, + 0x44, 0x72, 0x66, 0x47, 0x65, 0x6e, 0x59, 0x71, 0x55, 0x46, + 0x6f, 0x71, 0x79, 0x6e, 0x38, 0x2f, 0x69, 0x54, 0x30, 0x49, + 0x34, 0x6d, 0x6f, 0x5a, 0x55, 0x38, 0x49, 0x76, 0x66, 0x56, + 0x68, 0x43, 0x52, 0x7a, 0x79, 0x65, 0x49, 0x36, 0x78, 0x33, + 0x66, 0x64, 0x31, 0x61, 0x57, 0x47, 0x79, 0x5a, 0x55, 0x69, + 0x6c, 0x66, 0x61, 0x48, 0x54, 0x4c, 0x63, 0x0a, 0x49, 0x57, + 0x6b, 0x78, 0x5a, 0x65, 0x65, 0x56, 0x41, 0x67, 0x4d, 0x42, + 0x41, 0x41, 0x45, 0x43, 0x67, 0x67, 0x45, 0x41, 0x53, 0x59, + 0x43, 0x2b, 0x35, 0x7a, 0x75, 0x79, 0x65, 0x65, 0x56, 0x35, + 0x4f, 0x64, 0x36, 0x6d, 0x48, 0x72, 0x54, 0x78, 0x2b, 0x71, + 0x65, 0x48, 0x6e, 0x54, 0x6f, 0x78, 0x31, 0x49, 0x58, 0x46, + 0x34, 0x63, 0x64, 0x72, 0x43, 0x67, 0x70, 0x72, 0x6b, 0x68, + 0x7a, 0x64, 0x0a, 0x39, 0x51, 0x4d, 0x70, 0x53, 0x49, 0x30, + 0x68, 0x44, 0x4f, 0x63, 0x65, 0x69, 0x59, 0x75, 0x45, 0x6e, + 0x5a, 0x72, 0x63, 0x64, 0x2f, 0x50, 0x72, 0x55, 0x6f, 0x57, + 0x43, 0x30, 0x64, 0x41, 0x4d, 0x4f, 0x58, 0x50, 0x53, 0x79, + 0x64, 0x70, 0x46, 0x6b, 0x73, 0x64, 0x4b, 0x42, 0x45, 0x77, + 0x34, 0x77, 0x57, 0x66, 0x70, 0x37, 0x57, 0x68, 0x73, 0x32, + 0x30, 0x49, 0x42, 0x79, 0x76, 0x48, 0x76, 0x0a, 0x32, 0x50, + 0x4e, 0x52, 0x4a, 0x71, 0x4f, 0x58, 0x77, 0x34, 0x71, 0x41, + 0x34, 0x78, 0x4b, 0x44, 0x71, 0x6a, 0x70, 0x75, 0x56, 0x6b, + 0x73, 0x56, 0x59, 0x71, 0x6b, 0x38, 0x74, 0x4e, 0x54, 0x6e, + 0x6f, 0x72, 0x69, 0x73, 0x4f, 0x52, 0x72, 0x4a, 0x6d, 0x41, + 0x7a, 0x4a, 0x6b, 0x57, 0x46, 0x46, 0x36, 0x64, 0x71, 0x5a, + 0x62, 0x31, 0x33, 0x50, 0x4a, 0x73, 0x65, 0x63, 0x61, 0x41, + 0x69, 0x6a, 0x0a, 0x61, 0x41, 0x55, 0x31, 0x56, 0x69, 0x43, + 0x67, 0x4e, 0x5a, 0x67, 0x6a, 0x37, 0x4b, 0x68, 0x68, 0x31, + 0x6e, 0x4f, 0x52, 0x36, 0x5a, 0x47, 0x61, 0x2b, 0x52, 0x5a, + 0x6d, 0x78, 0x6e, 0x4d, 0x4f, 0x6e, 0x4e, 0x74, 0x33, 0x45, + 0x52, 0x4d, 0x57, 0x51, 0x65, 0x4d, 0x32, 0x37, 0x55, 0x39, + 0x55, 0x76, 0x52, 0x51, 0x58, 0x55, 0x30, 0x68, 0x36, 0x2b, + 0x45, 0x7a, 0x4f, 0x7a, 0x69, 0x4d, 0x59, 0x0a, 0x59, 0x77, + 0x43, 0x4e, 0x6b, 0x6c, 0x6b, 0x43, 0x44, 0x33, 0x43, 0x79, + 0x35, 0x4f, 0x63, 0x7a, 0x63, 0x68, 0x58, 0x7a, 0x36, 0x57, + 0x59, 0x48, 0x4a, 0x4e, 0x75, 0x57, 0x36, 0x59, 0x47, 0x54, + 0x42, 0x34, 0x6f, 0x2f, 0x64, 0x4f, 0x45, 0x4c, 0x4b, 0x76, + 0x33, 0x4b, 0x48, 0x42, 0x78, 0x2b, 0x4d, 0x65, 0x45, 0x36, + 0x34, 0x63, 0x52, 0x4d, 0x35, 0x66, 0x73, 0x6e, 0x76, 0x34, + 0x34, 0x48, 0x0a, 0x65, 0x38, 0x34, 0x44, 0x66, 0x59, 0x62, + 0x5a, 0x75, 0x2b, 0x68, 0x56, 0x61, 0x4a, 0x6c, 0x6b, 0x6b, + 0x47, 0x4f, 0x64, 0x76, 0x56, 0x72, 0x53, 0x4e, 0x57, 0x34, + 0x69, 0x73, 0x4f, 0x79, 0x34, 0x73, 0x35, 0x49, 0x33, 0x34, + 0x45, 0x34, 0x78, 0x75, 0x51, 0x4b, 0x42, 0x67, 0x51, 0x44, + 0x4f, 0x30, 0x70, 0x61, 0x69, 0x58, 0x49, 0x68, 0x6f, 0x45, + 0x53, 0x38, 0x76, 0x6f, 0x65, 0x61, 0x53, 0x0a, 0x74, 0x64, + 0x4b, 0x72, 0x34, 0x49, 0x56, 0x32, 0x67, 0x5a, 0x72, 0x48, + 0x65, 0x37, 0x33, 0x5a, 0x4e, 0x61, 0x59, 0x51, 0x53, 0x47, + 0x51, 0x66, 0x30, 0x39, 0x77, 0x51, 0x46, 0x4c, 0x49, 0x68, + 0x36, 0x65, 0x76, 0x55, 0x53, 0x45, 0x2b, 0x37, 0x4e, 0x59, + 0x74, 0x76, 0x30, 0x4a, 0x74, 0x4c, 0x37, 0x67, 0x6d, 0x58, + 0x56, 0x59, 0x72, 0x7a, 0x6a, 0x6a, 0x54, 0x35, 0x77, 0x45, + 0x34, 0x58, 0x0a, 0x48, 0x79, 0x43, 0x33, 0x6a, 0x34, 0x4b, + 0x31, 0x63, 0x6a, 0x35, 0x4e, 0x39, 0x44, 0x58, 0x57, 0x39, + 0x6b, 0x58, 0x63, 0x65, 0x62, 0x44, 0x6a, 0x41, 0x62, 0x68, + 0x6e, 0x30, 0x50, 0x62, 0x50, 0x66, 0x31, 0x78, 0x41, 0x59, + 0x38, 0x59, 0x75, 0x6a, 0x77, 0x56, 0x55, 0x4a, 0x73, 0x56, + 0x63, 0x49, 0x6d, 0x33, 0x2f, 0x73, 0x33, 0x4e, 0x4d, 0x6b, + 0x42, 0x75, 0x5a, 0x52, 0x6f, 0x4e, 0x6c, 0x0a, 0x52, 0x30, + 0x4f, 0x6c, 0x2b, 0x59, 0x61, 0x6a, 0x46, 0x47, 0x58, 0x4b, + 0x62, 0x70, 0x39, 0x50, 0x74, 0x32, 0x34, 0x4f, 0x6f, 0x4b, + 0x71, 0x53, 0x65, 0x77, 0x4b, 0x42, 0x67, 0x51, 0x44, 0x74, + 0x33, 0x2b, 0x51, 0x43, 0x79, 0x66, 0x67, 0x38, 0x73, 0x36, + 0x6b, 0x4e, 0x47, 0x55, 0x73, 0x49, 0x44, 0x31, 0x68, 0x2f, + 0x53, 0x48, 0x77, 0x38, 0x5a, 0x6f, 0x61, 0x4f, 0x4b, 0x6c, + 0x4e, 0x32, 0x0a, 0x61, 0x37, 0x76, 0x32, 0x32, 0x41, 0x7a, + 0x77, 0x30, 0x4f, 0x76, 0x49, 0x58, 0x4d, 0x6c, 0x59, 0x43, + 0x77, 0x44, 0x51, 0x71, 0x6f, 0x42, 0x58, 0x4f, 0x58, 0x75, + 0x7a, 0x50, 0x41, 0x36, 0x74, 0x4b, 0x47, 0x47, 0x69, 0x30, + 0x49, 0x66, 0x31, 0x4f, 0x55, 0x67, 0x52, 0x65, 0x5a, 0x76, + 0x63, 0x32, 0x68, 0x41, 0x70, 0x6a, 0x30, 0x47, 0x4b, 0x73, + 0x69, 0x4d, 0x4d, 0x52, 0x38, 0x44, 0x6f, 0x0a, 0x45, 0x56, + 0x2f, 0x30, 0x70, 0x62, 0x6f, 0x4e, 0x35, 0x68, 0x41, 0x4b, + 0x51, 0x35, 0x43, 0x62, 0x4d, 0x53, 0x71, 0x71, 0x73, 0x44, + 0x2f, 0x2f, 0x74, 0x68, 0x77, 0x4f, 0x52, 0x6a, 0x70, 0x54, + 0x46, 0x34, 0x31, 0x37, 0x6b, 0x64, 0x6c, 0x72, 0x42, 0x64, + 0x34, 0x63, 0x4e, 0x67, 0x6f, 0x4a, 0x41, 0x36, 0x51, 0x6e, + 0x6b, 0x43, 0x7a, 0x2f, 0x63, 0x45, 0x4e, 0x61, 0x6a, 0x46, + 0x4b, 0x4d, 0x0a, 0x42, 0x65, 0x33, 0x32, 0x4f, 0x69, 0x55, + 0x5a, 0x4c, 0x77, 0x4b, 0x42, 0x67, 0x41, 0x77, 0x30, 0x47, + 0x74, 0x56, 0x4c, 0x74, 0x6e, 0x54, 0x46, 0x68, 0x73, 0x34, + 0x39, 0x74, 0x46, 0x67, 0x31, 0x79, 0x45, 0x2b, 0x42, 0x2b, + 0x50, 0x34, 0x4d, 0x47, 0x62, 0x44, 0x70, 0x6d, 0x55, 0x4d, + 0x6d, 0x79, 0x6a, 0x79, 0x74, 0x75, 0x4e, 0x4b, 0x7a, 0x38, + 0x6f, 0x6b, 0x30, 0x58, 0x32, 0x70, 0x6d, 0x0a, 0x33, 0x68, + 0x5a, 0x78, 0x69, 0x64, 0x72, 0x58, 0x42, 0x76, 0x6f, 0x37, + 0x43, 0x64, 0x37, 0x4b, 0x46, 0x65, 0x44, 0x4c, 0x47, 0x46, + 0x37, 0x55, 0x70, 0x6b, 0x57, 0x53, 0x56, 0x6b, 0x6c, 0x41, + 0x2b, 0x66, 0x49, 0x36, 0x30, 0x70, 0x43, 0x59, 0x52, 0x42, + 0x72, 0x66, 0x62, 0x51, 0x6e, 0x5a, 0x45, 0x44, 0x67, 0x35, + 0x4b, 0x66, 0x6e, 0x4c, 0x45, 0x54, 0x46, 0x33, 0x41, 0x41, + 0x6b, 0x77, 0x0a, 0x54, 0x36, 0x59, 0x77, 0x2f, 0x50, 0x47, + 0x6b, 0x57, 0x4d, 0x45, 0x6c, 0x5a, 0x49, 0x48, 0x53, 0x4f, + 0x6b, 0x46, 0x62, 0x4f, 0x6c, 0x4e, 0x72, 0x4d, 0x57, 0x57, + 0x79, 0x35, 0x6d, 0x2f, 0x6b, 0x61, 0x35, 0x5a, 0x77, 0x69, + 0x63, 0x51, 0x33, 0x6f, 0x4f, 0x58, 0x33, 0x37, 0x77, 0x69, + 0x4b, 0x48, 0x30, 0x46, 0x58, 0x73, 0x35, 0x6a, 0x66, 0x41, + 0x6f, 0x47, 0x42, 0x41, 0x49, 0x79, 0x34, 0x0a, 0x63, 0x48, + 0x69, 0x39, 0x35, 0x70, 0x35, 0x79, 0x59, 0x6b, 0x57, 0x66, + 0x65, 0x75, 0x57, 0x76, 0x76, 0x6c, 0x69, 0x2b, 0x46, 0x74, + 0x44, 0x63, 0x6a, 0x69, 0x6b, 0x34, 0x48, 0x4e, 0x76, 0x6e, + 0x61, 0x2f, 0x44, 0x68, 0x61, 0x76, 0x5a, 0x6a, 0x67, 0x62, + 0x69, 0x73, 0x4f, 0x32, 0x68, 0x63, 0x53, 0x67, 0x55, 0x6e, + 0x65, 0x48, 0x6b, 0x68, 0x52, 0x6d, 0x36, 0x48, 0x7a, 0x74, + 0x37, 0x64, 0x0a, 0x44, 0x72, 0x56, 0x30, 0x79, 0x35, 0x6c, + 0x6b, 0x59, 0x36, 0x41, 0x43, 0x34, 0x78, 0x50, 0x4a, 0x35, + 0x4e, 0x6e, 0x52, 0x4a, 0x36, 0x4c, 0x58, 0x4d, 0x79, 0x69, + 0x6d, 0x6f, 0x68, 0x59, 0x6e, 0x67, 0x53, 0x36, 0x48, 0x68, + 0x41, 0x4f, 0x49, 0x34, 0x47, 0x42, 0x53, 0x44, 0x41, 0x2f, + 0x6a, 0x44, 0x43, 0x79, 0x68, 0x79, 0x35, 0x71, 0x49, 0x72, + 0x78, 0x77, 0x36, 0x71, 0x33, 0x4a, 0x51, 0x0a, 0x63, 0x71, + 0x42, 0x78, 0x62, 0x62, 0x2b, 0x45, 0x58, 0x78, 0x73, 0x74, + 0x56, 0x4d, 0x35, 0x30, 0x57, 0x76, 0x34, 0x55, 0x71, 0x71, + 0x6f, 0x4b, 0x54, 0x61, 0x34, 0x5a, 0x61, 0x52, 0x50, 0x77, + 0x78, 0x67, 0x39, 0x74, 0x34, 0x6c, 0x68, 0x39, 0x41, 0x6f, + 0x47, 0x41, 0x45, 0x4f, 0x4f, 0x5a, 0x34, 0x73, 0x30, 0x68, + 0x4f, 0x6a, 0x6f, 0x4d, 0x4c, 0x79, 0x5a, 0x78, 0x36, 0x4e, + 0x58, 0x51, 0x0a, 0x62, 0x69, 0x48, 0x4a, 0x53, 0x32, 0x44, + 0x4e, 0x78, 0x6a, 0x45, 0x34, 0x6f, 0x70, 0x7a, 0x4c, 0x76, + 0x50, 0x36, 0x52, 0x46, 0x6d, 0x71, 0x42, 0x74, 0x67, 0x70, + 0x35, 0x6e, 0x33, 0x77, 0x76, 0x71, 0x76, 0x42, 0x42, 0x4c, + 0x51, 0x4b, 0x4c, 0x67, 0x75, 0x4c, 0x74, 0x69, 0x2b, 0x47, + 0x2f, 0x55, 0x6a, 0x69, 0x79, 0x77, 0x54, 0x46, 0x6c, 0x38, + 0x57, 0x6a, 0x34, 0x50, 0x45, 0x68, 0x6a, 0x0a, 0x54, 0x39, + 0x55, 0x4f, 0x62, 0x55, 0x38, 0x50, 0x75, 0x58, 0x46, 0x33, + 0x58, 0x7a, 0x57, 0x78, 0x33, 0x57, 0x6b, 0x7a, 0x6e, 0x59, + 0x72, 0x46, 0x4c, 0x35, 0x39, 0x4e, 0x31, 0x51, 0x30, 0x31, + 0x2b, 0x64, 0x69, 0x33, 0x31, 0x66, 0x58, 0x4c, 0x46, 0x41, + 0x69, 0x30, 0x34, 0x43, 0x39, 0x4c, 0x49, 0x74, 0x78, 0x48, + 0x72, 0x52, 0x73, 0x6d, 0x59, 0x6d, 0x67, 0x61, 0x50, 0x7a, + 0x6f, 0x4a, 0x0a, 0x6e, 0x5a, 0x50, 0x63, 0x76, 0x79, 0x4c, + 0x6e, 0x70, 0x6c, 0x76, 0x46, 0x4c, 0x50, 0x6f, 0x54, 0x31, + 0x45, 0x42, 0x33, 0x32, 0x66, 0x4d, 0x3d, 0x0a, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x50, 0x52, 0x49, + 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x0a, + }}, +}; +/* -ecdsa. IN DNSKEY 256 3 13 8uD7C4THTM/w7uhryRSToeE/jKT78/p853RX0L5EwrZrSLBubLPiBw7g bvUP6SsIga5ZQ4CSAxNmYA/gZsuXzA== -ecdsa. IN DS 5345 13 1 954103ac7c43810ce9f414e80f30ab1cbe49b236 -ecdsa. IN DS 5345 13 2 bac2107036e735b50f85006ce409a19a3438cab272e70769ebda032239a3d0ca -ecdsa. IN DS 5345 13 4 a0ac6790483872be72a258314200a88ab75cdd70f66a18a09f0f414c074df0989fdb1df0e67d82d4312cda67b93a76c1 +RSASHA512 (4096b) -PrivateKey: iyLIPdk3DOIxVmmSYlmTstbtUPiVlEyDX46psyCwNVQ= +rsa4096-512. DNSKEY 256 3 10 AwEAAbt1hC5yoHtsPOVcdrwD4HPEDi1vvEZVxIC5dzdXFM3SdNu0A2rqcHCLK74bEn2hlHWjLAo02dmbLrvA4vS4TNafQwEWDuYvY1VbEGoHV3Q1BGJ1wicRyljq0oh2VecM89nFVVUsVO+vvMz1DB+5KC27RPqGMnoExEzBpEZp1EaBm2nEBnNQ+e8hi0SFtO26rpCpbylRFL76bJjxzVOXSGC9iw8opWldpcAr7UqOvmQoDOBS35OxZfqavJNrZZp7mGHuhZ2dJJQlWSeuZXVitNoRZyBwIXd9brZUs9m/e1fNHKraZOgnI6k/Rb6bmX0BYkWze42TlO4Gxc8BG/sORVN6buD/jkqpVrHU4XLW/MLw8Ir5CHs0CFFTldMdLdSyz40xOySXljIeg8DjaEBSjFKqx+QrIzBHoynTdjaqvP8qLSb+l0gII3BcWYpp7hCGeIc2YjP+ueX32ZgnnEETHL2hGdQDaQCUEcbROIyLlfeagk43sfe73GUxw9eSKjh2XQKAaz6c3rwqM1VlxzRnzamSFzTg4Lz4lvp3Mc9hdTkxgHEhofrW93ujCn8zlzus3Ai6IaF5nO9XaXzhdf9ugySi+U6aWodQM1/8TwIKgiQl8Kw97ZwEqcTZxVQWuGIhYE1hg12M0NIIwWUQ3yIb0OxE1P4ZtN7+ImbM4a4r4oEB +rsa4096-512. DS 53381 10 1 BE2E22966D4CE4D059EC75EC37C22F82C8C9F96E +rsa4096-512. DS 53381 10 2 177883F8E750941EF032EFEB0B8D1885D438EFD27B3CA155CD411B8E74B1A691 +rsa4096-512. DS 53381 10 4 81147A3A32A18E3A7A8A0E5E45A1BEEE11F6B09970465C64A883E226EF51265D8EB3308D6CCE6D9098EA5960F3AE64CB -----BEGIN PRIVATE KEY----- -MIGUAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHoweAIBAQQhAIsiyD3ZNwziMVZp -kmJZk7LW7VD4lZRMg1+OqbMgsDVUoAoGCCqGSM49AwEHoUQDQgAE8uD7C4THTM/w -7uhryRSToeE/jKT78/p853RX0L5EwrZrSLBubLPiBw7gbvUP6SsIga5ZQ4CSAxNm -YA/gZsuXzA== +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQC7dYQucqB7bDzl +XHa8A+BzxA4tb7xGVcSAuXc3VxTN0nTbtANq6nBwiyu+GxJ9oZR1oywKNNnZmy67 +wOL0uEzWn0MBFg7mL2NVWxBqB1d0NQRidcInEcpY6tKIdlXnDPPZxVVVLFTvr7zM +9QwfuSgtu0T6hjJ6BMRMwaRGadRGgZtpxAZzUPnvIYtEhbTtuq6QqW8pURS++myY +8c1Tl0hgvYsPKKVpXaXAK+1Kjr5kKAzgUt+TsWX6mryTa2Wae5hh7oWdnSSUJVkn +rmV1YrTaEWcgcCF3fW62VLPZv3tXzRyq2mToJyOpP0W+m5l9AWJFs3uNk5TuBsXP +ARv7DkVTem7g/45KqVax1OFy1vzC8PCK+Qh7NAhRU5XTHS3Uss+NMTskl5YyHoPA +42hAUoxSqsfkKyMwR6Mp03Y2qrz/Ki0m/pdICCNwXFmKae4QhniHNmIz/rnl99mY +J5xBExy9oRnUA2kAlBHG0TiMi5X3moJON7H3u9xlMcPXkio4dl0CgGs+nN68KjNV +Zcc0Z82pkhc04OC8+Jb6dzHPYXU5MYBxIaH61vd7owp/M5c7rNwIuiGheZzvV2l8 +4XX/boMkovlOmlqHUDNf/E8CCoIkJfCsPe2cBKnE2cVUFrhiIWBNYYNdjNDSCMFl +EN8iG9DsRNT+GbTe/iJmzOGuK+KBAQIDAQABAoICAGIJKWGpLOifSJGi862MUXv5 +kniMsOgPvr6bQA+/CPBDGj40PH1Tsg4JmozHV7pAIIYNGeEUlsHI+H3UeF0HbZfo +noAY6x3Stp5TC5iH0mLBv1NGxozsLuillgkr6ez1xymim+f5UUownAqMNRT6Hlsc +Twy91fQePhLuSl1Qx2VALuj3TXBNbwhygIULb/3L3bNmCO6Qqsrd6KFsA7etrHp7 +Zhg9Z5RdF2wTDPwq/sMedu1yKd7xraWL+wcV6YMLFDxTI6m0HwcjKScpe4ISZwaM +h2RdgAMfpCDS12QPUhAvAskPgiovHeVLY8w1T+YiLSTKotj9z6tT+2sw51M6uWHz +N2pmCCIUzB91PGybT9QELOKOHGhmfXemNUZcro9SotBTLvpOnmM7M8e+qlx6MjkM +2S/Q8PVJQlAibKPZ80YTHxTWsbW/Pm2ZdSWfx50L0sckAsJtlx+4LZoNne+C9i86 +X6oLyu/d/Yg+W8N+FsKzmTWo9N50ARly8JhLkUK0rF00pENqrkhKypieo6dbRgRP +cg2rzHpfwVv9nbGy1H2WH3wQXSfkJBWAGr6PRgsCIAQYmRDUO7Zm+KlxUtiVJAZy +K4rltDT7KIDPkdrXn3wBM4S/9WwBL0IXSuzyJagXr17nJPBAuPA+A1mNYZ2Jwc4s +f6ue6a0xbXcN7YaZmNlhAoIBAQDMIjau71M8KtnOB1X7Z0YsEcJ+WwmU+tfQ9uLG +c2ByIxUs0HT7oVykzDPJzy8KbpJXAES+1umLPq9tunMjVrJLTAubVlYFiaJU1MCO +aoui5snIVH9h/wCmumE75+7MtDe5FHwweNfTrV7Jx5Af0H6ZPFPRGubBldhjBa0O +/dG4II9Slqo5J9OIunLlgE4vkHo/LM3NGIAYweCMDyJpupqFJ7YW8l3dbOMQGY8P +CgAlUo88VTBK7D1TE+flQnF3Xz99IhwfUe8LNv8NrCzBNMX2O/LItyqjJ4FD0kwx +0RxGlUSNZA7Te6WpHXMkg2/kudeusmrHgunWRoC6FJXoQIz1AoIBAQDrFrXldq08 +N2tTFW83H5km617qsZP1Q2qTAFzxCRcK9D2nHdELYILiR0vzPDdx+8HMVMk4RsrO +FSUEysov4cBXf6JMZM8qpkHVPss5kmRArpBeo0fjPio7rOdk8d/PXbxxQO3qHX/4 +WyhgkGNCHwH83f9IzIU8qlPznE5sVfznn1+HCCG63hmTdAySzG8bzQe54jFvOCAZ +5m6Fw/xr2+ZIlGiF38mpMA6KmotLEsuFEIQymtInLBEzFWsVPG2+R6z+JjarQvRD +3ov79MhHYz2V50L0hEmQv+ub8m536HdV70VPfC8tL7NV1DMMpXhg1UMeD6H01c03 +jeqeh+0GIpxdAoIBAA5OY4i1Cx9PXX5b80GwRjG2eOwEE1LWlaN2egQwd9Tn8ob2 +gQxVjbma+hItq/1OLIFeanL5etqgZQkKpSEX5Vzzkmirj1HKCI9rbadNfkXHaOLa +USccCP6mV0QsiAbepn0ZG28GORIDt33qt4YTRZwVp0YjXYK5rrWZ4zwGu9jspz7B +gmKJEQEnGABPkqsws/CTgkTab7fMdqE6Ok4wnr2wP8mx6LQo+mzZbbY/HC2BcLpo +uf62OcIFxh3CH1OfYEKzzka/pkIh85QQuf48ZZdRMj2w4JMYpK2NInvnTNUBhxFl +rshRhRWqE7S+ZWwhPiVnKaab3SmAPWtNIAhr5bUCggEBAOr1ptTxeREPHrBKYv6I +EUzpv9L3qrZeK/1CRqINgL9M/vWxAkbJrea0dX9kdtHwWnB7aSVa88VnMrmIaO3U +RqXtBewucTPiOTgFa55d5t8S2W4M6YOAlTtRg2/LovIhcH8M8vyjgUxa548joGDs +ltMBme1Lo/rPDdsUJPl4M63YBuTxxqx64LsUKKDrvDzf/dHV9ayAPu1D9sCw8e9n +N9Dgq1rqISZ8xnvXHFLrNQgISug8/r9x9rrEtGLkI5cjEg5taQRghbvziJtIuodG +872IBs5WDSSj/Lq/YZNsfyEfZHmd15Tk8Otei6sfEqJNY6h+3VLUASh+KblKhyYz +n20CggEBAKKtkrmOIkt1IvW2jGsh85bS3ytifN36P+49CnGmLJyJW1Zbylh1Bupl ++mgwLpjIULKe+UTx3UFQBESsF58lTu5NqNl36IUkyG7JOUvTAma/kIAem+XyypkY +04zKWw54dd37KpJtkIgmVEqQI7xztEtMUUTobX1TZjg1/LCAO+SZDYJsU/z93G6z +8a1FnHTFn7DIZ7XuG+7eHAP+8ZEqbrHI7/aoPgXAiogru+fPsDKNNih8n041GmkX +TELR+T1zQl6cYthoXrJzjhx6sn4x3uJt/cfs41crZOY5ALi1m20vZqYlIEWPAw4K +wdEDGd7pmaLwBrX+IUiDuzF04A4j1Pg= -----END PRIVATE KEY----- */ +static const key_parameters_t SAMPLE_RSA4096_SHA512_KEY = { + .name = (uint8_t *)"\x0b""rsa4096-512", + .flags = 256, + .protocol = 3, + .algorithm = 10, + .public_key = { .size = 516, .data = (uint8_t []){ + 0x03, 0x01, 0x00, 0x01, 0xbb, 0x75, 0x84, 0x2e, 0x72, 0xa0, + 0x7b, 0x6c, 0x3c, 0xe5, 0x5c, 0x76, 0xbc, 0x03, 0xe0, 0x73, + 0xc4, 0x0e, 0x2d, 0x6f, 0xbc, 0x46, 0x55, 0xc4, 0x80, 0xb9, + 0x77, 0x37, 0x57, 0x14, 0xcd, 0xd2, 0x74, 0xdb, 0xb4, 0x03, + 0x6a, 0xea, 0x70, 0x70, 0x8b, 0x2b, 0xbe, 0x1b, 0x12, 0x7d, + 0xa1, 0x94, 0x75, 0xa3, 0x2c, 0x0a, 0x34, 0xd9, 0xd9, 0x9b, + 0x2e, 0xbb, 0xc0, 0xe2, 0xf4, 0xb8, 0x4c, 0xd6, 0x9f, 0x43, + 0x01, 0x16, 0x0e, 0xe6, 0x2f, 0x63, 0x55, 0x5b, 0x10, 0x6a, + 0x07, 0x57, 0x74, 0x35, 0x04, 0x62, 0x75, 0xc2, 0x27, 0x11, + 0xca, 0x58, 0xea, 0xd2, 0x88, 0x76, 0x55, 0xe7, 0x0c, 0xf3, + 0xd9, 0xc5, 0x55, 0x55, 0x2c, 0x54, 0xef, 0xaf, 0xbc, 0xcc, + 0xf5, 0x0c, 0x1f, 0xb9, 0x28, 0x2d, 0xbb, 0x44, 0xfa, 0x86, + 0x32, 0x7a, 0x04, 0xc4, 0x4c, 0xc1, 0xa4, 0x46, 0x69, 0xd4, + 0x46, 0x81, 0x9b, 0x69, 0xc4, 0x06, 0x73, 0x50, 0xf9, 0xef, + 0x21, 0x8b, 0x44, 0x85, 0xb4, 0xed, 0xba, 0xae, 0x90, 0xa9, + 0x6f, 0x29, 0x51, 0x14, 0xbe, 0xfa, 0x6c, 0x98, 0xf1, 0xcd, + 0x53, 0x97, 0x48, 0x60, 0xbd, 0x8b, 0x0f, 0x28, 0xa5, 0x69, + 0x5d, 0xa5, 0xc0, 0x2b, 0xed, 0x4a, 0x8e, 0xbe, 0x64, 0x28, + 0x0c, 0xe0, 0x52, 0xdf, 0x93, 0xb1, 0x65, 0xfa, 0x9a, 0xbc, + 0x93, 0x6b, 0x65, 0x9a, 0x7b, 0x98, 0x61, 0xee, 0x85, 0x9d, + 0x9d, 0x24, 0x94, 0x25, 0x59, 0x27, 0xae, 0x65, 0x75, 0x62, + 0xb4, 0xda, 0x11, 0x67, 0x20, 0x70, 0x21, 0x77, 0x7d, 0x6e, + 0xb6, 0x54, 0xb3, 0xd9, 0xbf, 0x7b, 0x57, 0xcd, 0x1c, 0xaa, + 0xda, 0x64, 0xe8, 0x27, 0x23, 0xa9, 0x3f, 0x45, 0xbe, 0x9b, + 0x99, 0x7d, 0x01, 0x62, 0x45, 0xb3, 0x7b, 0x8d, 0x93, 0x94, + 0xee, 0x06, 0xc5, 0xcf, 0x01, 0x1b, 0xfb, 0x0e, 0x45, 0x53, + 0x7a, 0x6e, 0xe0, 0xff, 0x8e, 0x4a, 0xa9, 0x56, 0xb1, 0xd4, + 0xe1, 0x72, 0xd6, 0xfc, 0xc2, 0xf0, 0xf0, 0x8a, 0xf9, 0x08, + 0x7b, 0x34, 0x08, 0x51, 0x53, 0x95, 0xd3, 0x1d, 0x2d, 0xd4, + 0xb2, 0xcf, 0x8d, 0x31, 0x3b, 0x24, 0x97, 0x96, 0x32, 0x1e, + 0x83, 0xc0, 0xe3, 0x68, 0x40, 0x52, 0x8c, 0x52, 0xaa, 0xc7, + 0xe4, 0x2b, 0x23, 0x30, 0x47, 0xa3, 0x29, 0xd3, 0x76, 0x36, + 0xaa, 0xbc, 0xff, 0x2a, 0x2d, 0x26, 0xfe, 0x97, 0x48, 0x08, + 0x23, 0x70, 0x5c, 0x59, 0x8a, 0x69, 0xee, 0x10, 0x86, 0x78, + 0x87, 0x36, 0x62, 0x33, 0xfe, 0xb9, 0xe5, 0xf7, 0xd9, 0x98, + 0x27, 0x9c, 0x41, 0x13, 0x1c, 0xbd, 0xa1, 0x19, 0xd4, 0x03, + 0x69, 0x00, 0x94, 0x11, 0xc6, 0xd1, 0x38, 0x8c, 0x8b, 0x95, + 0xf7, 0x9a, 0x82, 0x4e, 0x37, 0xb1, 0xf7, 0xbb, 0xdc, 0x65, + 0x31, 0xc3, 0xd7, 0x92, 0x2a, 0x38, 0x76, 0x5d, 0x02, 0x80, + 0x6b, 0x3e, 0x9c, 0xde, 0xbc, 0x2a, 0x33, 0x55, 0x65, 0xc7, + 0x34, 0x67, 0xcd, 0xa9, 0x92, 0x17, 0x34, 0xe0, 0xe0, 0xbc, + 0xf8, 0x96, 0xfa, 0x77, 0x31, 0xcf, 0x61, 0x75, 0x39, 0x31, + 0x80, 0x71, 0x21, 0xa1, 0xfa, 0xd6, 0xf7, 0x7b, 0xa3, 0x0a, + 0x7f, 0x33, 0x97, 0x3b, 0xac, 0xdc, 0x08, 0xba, 0x21, 0xa1, + 0x79, 0x9c, 0xef, 0x57, 0x69, 0x7c, 0xe1, 0x75, 0xff, 0x6e, + 0x83, 0x24, 0xa2, 0xf9, 0x4e, 0x9a, 0x5a, 0x87, 0x50, 0x33, + 0x5f, 0xfc, 0x4f, 0x02, 0x0a, 0x82, 0x24, 0x25, 0xf0, 0xac, + 0x3d, 0xed, 0x9c, 0x04, 0xa9, 0xc4, 0xd9, 0xc5, 0x54, 0x16, + 0xb8, 0x62, 0x21, 0x60, 0x4d, 0x61, 0x83, 0x5d, 0x8c, 0xd0, + 0xd2, 0x08, 0xc1, 0x65, 0x10, 0xdf, 0x22, 0x1b, 0xd0, 0xec, + 0x44, 0xd4, 0xfe, 0x19, 0xb4, 0xde, 0xfe, 0x22, 0x66, 0xcc, + 0xe1, 0xae, 0x2b, 0xe2, 0x81, 0x01, + }}, + .rdata = { .size = 520, .data = (uint8_t []){ + 01, 0x00, 0x03, 0x0a, + 0x03, 0x01, 0x00, 0x01, 0xbb, 0x75, 0x84, 0x2e, 0x72, 0xa0, + 0x7b, 0x6c, 0x3c, 0xe5, 0x5c, 0x76, 0xbc, 0x03, 0xe0, 0x73, + 0xc4, 0x0e, 0x2d, 0x6f, 0xbc, 0x46, 0x55, 0xc4, 0x80, 0xb9, + 0x77, 0x37, 0x57, 0x14, 0xcd, 0xd2, 0x74, 0xdb, 0xb4, 0x03, + 0x6a, 0xea, 0x70, 0x70, 0x8b, 0x2b, 0xbe, 0x1b, 0x12, 0x7d, + 0xa1, 0x94, 0x75, 0xa3, 0x2c, 0x0a, 0x34, 0xd9, 0xd9, 0x9b, + 0x2e, 0xbb, 0xc0, 0xe2, 0xf4, 0xb8, 0x4c, 0xd6, 0x9f, 0x43, + 0x01, 0x16, 0x0e, 0xe6, 0x2f, 0x63, 0x55, 0x5b, 0x10, 0x6a, + 0x07, 0x57, 0x74, 0x35, 0x04, 0x62, 0x75, 0xc2, 0x27, 0x11, + 0xca, 0x58, 0xea, 0xd2, 0x88, 0x76, 0x55, 0xe7, 0x0c, 0xf3, + 0xd9, 0xc5, 0x55, 0x55, 0x2c, 0x54, 0xef, 0xaf, 0xbc, 0xcc, + 0xf5, 0x0c, 0x1f, 0xb9, 0x28, 0x2d, 0xbb, 0x44, 0xfa, 0x86, + 0x32, 0x7a, 0x04, 0xc4, 0x4c, 0xc1, 0xa4, 0x46, 0x69, 0xd4, + 0x46, 0x81, 0x9b, 0x69, 0xc4, 0x06, 0x73, 0x50, 0xf9, 0xef, + 0x21, 0x8b, 0x44, 0x85, 0xb4, 0xed, 0xba, 0xae, 0x90, 0xa9, + 0x6f, 0x29, 0x51, 0x14, 0xbe, 0xfa, 0x6c, 0x98, 0xf1, 0xcd, + 0x53, 0x97, 0x48, 0x60, 0xbd, 0x8b, 0x0f, 0x28, 0xa5, 0x69, + 0x5d, 0xa5, 0xc0, 0x2b, 0xed, 0x4a, 0x8e, 0xbe, 0x64, 0x28, + 0x0c, 0xe0, 0x52, 0xdf, 0x93, 0xb1, 0x65, 0xfa, 0x9a, 0xbc, + 0x93, 0x6b, 0x65, 0x9a, 0x7b, 0x98, 0x61, 0xee, 0x85, 0x9d, + 0x9d, 0x24, 0x94, 0x25, 0x59, 0x27, 0xae, 0x65, 0x75, 0x62, + 0xb4, 0xda, 0x11, 0x67, 0x20, 0x70, 0x21, 0x77, 0x7d, 0x6e, + 0xb6, 0x54, 0xb3, 0xd9, 0xbf, 0x7b, 0x57, 0xcd, 0x1c, 0xaa, + 0xda, 0x64, 0xe8, 0x27, 0x23, 0xa9, 0x3f, 0x45, 0xbe, 0x9b, + 0x99, 0x7d, 0x01, 0x62, 0x45, 0xb3, 0x7b, 0x8d, 0x93, 0x94, + 0xee, 0x06, 0xc5, 0xcf, 0x01, 0x1b, 0xfb, 0x0e, 0x45, 0x53, + 0x7a, 0x6e, 0xe0, 0xff, 0x8e, 0x4a, 0xa9, 0x56, 0xb1, 0xd4, + 0xe1, 0x72, 0xd6, 0xfc, 0xc2, 0xf0, 0xf0, 0x8a, 0xf9, 0x08, + 0x7b, 0x34, 0x08, 0x51, 0x53, 0x95, 0xd3, 0x1d, 0x2d, 0xd4, + 0xb2, 0xcf, 0x8d, 0x31, 0x3b, 0x24, 0x97, 0x96, 0x32, 0x1e, + 0x83, 0xc0, 0xe3, 0x68, 0x40, 0x52, 0x8c, 0x52, 0xaa, 0xc7, + 0xe4, 0x2b, 0x23, 0x30, 0x47, 0xa3, 0x29, 0xd3, 0x76, 0x36, + 0xaa, 0xbc, 0xff, 0x2a, 0x2d, 0x26, 0xfe, 0x97, 0x48, 0x08, + 0x23, 0x70, 0x5c, 0x59, 0x8a, 0x69, 0xee, 0x10, 0x86, 0x78, + 0x87, 0x36, 0x62, 0x33, 0xfe, 0xb9, 0xe5, 0xf7, 0xd9, 0x98, + 0x27, 0x9c, 0x41, 0x13, 0x1c, 0xbd, 0xa1, 0x19, 0xd4, 0x03, + 0x69, 0x00, 0x94, 0x11, 0xc6, 0xd1, 0x38, 0x8c, 0x8b, 0x95, + 0xf7, 0x9a, 0x82, 0x4e, 0x37, 0xb1, 0xf7, 0xbb, 0xdc, 0x65, + 0x31, 0xc3, 0xd7, 0x92, 0x2a, 0x38, 0x76, 0x5d, 0x02, 0x80, + 0x6b, 0x3e, 0x9c, 0xde, 0xbc, 0x2a, 0x33, 0x55, 0x65, 0xc7, + 0x34, 0x67, 0xcd, 0xa9, 0x92, 0x17, 0x34, 0xe0, 0xe0, 0xbc, + 0xf8, 0x96, 0xfa, 0x77, 0x31, 0xcf, 0x61, 0x75, 0x39, 0x31, + 0x80, 0x71, 0x21, 0xa1, 0xfa, 0xd6, 0xf7, 0x7b, 0xa3, 0x0a, + 0x7f, 0x33, 0x97, 0x3b, 0xac, 0xdc, 0x08, 0xba, 0x21, 0xa1, + 0x79, 0x9c, 0xef, 0x57, 0x69, 0x7c, 0xe1, 0x75, 0xff, 0x6e, + 0x83, 0x24, 0xa2, 0xf9, 0x4e, 0x9a, 0x5a, 0x87, 0x50, 0x33, + 0x5f, 0xfc, 0x4f, 0x02, 0x0a, 0x82, 0x24, 0x25, 0xf0, 0xac, + 0x3d, 0xed, 0x9c, 0x04, 0xa9, 0xc4, 0xd9, 0xc5, 0x54, 0x16, + 0xb8, 0x62, 0x21, 0x60, 0x4d, 0x61, 0x83, 0x5d, 0x8c, 0xd0, + 0xd2, 0x08, 0xc1, 0x65, 0x10, 0xdf, 0x22, 0x1b, 0xd0, 0xec, + 0x44, 0xd4, 0xfe, 0x19, 0xb4, 0xde, 0xfe, 0x22, 0x66, 0xcc, + 0xe1, 0xae, 0x2b, 0xe2, 0x81, 0x01, + }}, + .key_id = "48d43d5cd5b5b3cd5d374a04573cb908003b6005", + .keytag = 53381, + .ds_sha1 = { .size = 24, .data = (uint8_t []){ + 0xd0, 0x85, 0x0a, 0x01, 0xbe, 0x2e, 0x22, 0x96, 0x6d, 0x4c, + 0xe4, 0xd0, 0x59, 0xec, 0x75, 0xec, 0x37, 0xc2, 0x2f, 0x82, + 0xc8, 0xc9, 0xf9, 0x6e, + }}, + .ds_sha256 = { .size = 36, .data = (uint8_t []){ + 0xd0, 0x85, 0x0a, 0x02, 0x17, 0x78, 0x83, 0xf8, 0xe7, 0x50, + 0x94, 0x1e, 0xf0, 0x32, 0xef, 0xeb, 0x0b, 0x8d, 0x18, 0x85, + 0xd4, 0x38, 0xef, 0xd2, 0x7b, 0x3c, 0xa1, 0x55, 0xcd, 0x41, + 0x1b, 0x8e, 0x74, 0xb1, 0xa6, 0x91, + }}, + .ds_sha384 = { .size = 52, .data = (uint8_t []){ + 0xd0, 0x85, 0x0a, 0x04, 0x81, 0x14, 0x7a, 0x3a, 0x32, 0xa1, + 0x8e, 0x3a, 0x7a, 0x8a, 0x0e, 0x5e, 0x45, 0xa1, 0xbe, 0xee, + 0x11, 0xf6, 0xb0, 0x99, 0x70, 0x46, 0x5c, 0x64, 0xa8, 0x83, + 0xe2, 0x26, 0xef, 0x51, 0x26, 0x5d, 0x8e, 0xb3, 0x30, 0x8d, + 0x6c, 0xce, 0x6d, 0x90, 0x98, 0xea, 0x59, 0x60, 0xf3, 0xae, + 0x64, 0xcb, + }}, + .bit_size = 4096, + .pem = { .size = 3272, .data = (uint8_t []){ + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, + 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, + 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, + 0x49, 0x4a, 0x51, 0x77, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, + 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, + 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x53, 0x43, + 0x43, 0x53, 0x30, 0x77, 0x67, 0x67, 0x6b, 0x70, 0x41, 0x67, + 0x45, 0x41, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x37, + 0x64, 0x59, 0x51, 0x75, 0x63, 0x71, 0x42, 0x37, 0x62, 0x44, + 0x7a, 0x6c, 0x0a, 0x58, 0x48, 0x61, 0x38, 0x41, 0x2b, 0x42, + 0x7a, 0x78, 0x41, 0x34, 0x74, 0x62, 0x37, 0x78, 0x47, 0x56, + 0x63, 0x53, 0x41, 0x75, 0x58, 0x63, 0x33, 0x56, 0x78, 0x54, + 0x4e, 0x30, 0x6e, 0x54, 0x62, 0x74, 0x41, 0x4e, 0x71, 0x36, + 0x6e, 0x42, 0x77, 0x69, 0x79, 0x75, 0x2b, 0x47, 0x78, 0x4a, + 0x39, 0x6f, 0x5a, 0x52, 0x31, 0x6f, 0x79, 0x77, 0x4b, 0x4e, + 0x4e, 0x6e, 0x5a, 0x6d, 0x79, 0x36, 0x37, 0x0a, 0x77, 0x4f, + 0x4c, 0x30, 0x75, 0x45, 0x7a, 0x57, 0x6e, 0x30, 0x4d, 0x42, + 0x46, 0x67, 0x37, 0x6d, 0x4c, 0x32, 0x4e, 0x56, 0x57, 0x78, + 0x42, 0x71, 0x42, 0x31, 0x64, 0x30, 0x4e, 0x51, 0x52, 0x69, + 0x64, 0x63, 0x49, 0x6e, 0x45, 0x63, 0x70, 0x59, 0x36, 0x74, + 0x4b, 0x49, 0x64, 0x6c, 0x58, 0x6e, 0x44, 0x50, 0x50, 0x5a, + 0x78, 0x56, 0x56, 0x56, 0x4c, 0x46, 0x54, 0x76, 0x72, 0x37, + 0x7a, 0x4d, 0x0a, 0x39, 0x51, 0x77, 0x66, 0x75, 0x53, 0x67, + 0x74, 0x75, 0x30, 0x54, 0x36, 0x68, 0x6a, 0x4a, 0x36, 0x42, + 0x4d, 0x52, 0x4d, 0x77, 0x61, 0x52, 0x47, 0x61, 0x64, 0x52, + 0x47, 0x67, 0x5a, 0x74, 0x70, 0x78, 0x41, 0x5a, 0x7a, 0x55, + 0x50, 0x6e, 0x76, 0x49, 0x59, 0x74, 0x45, 0x68, 0x62, 0x54, + 0x74, 0x75, 0x71, 0x36, 0x51, 0x71, 0x57, 0x38, 0x70, 0x55, + 0x52, 0x53, 0x2b, 0x2b, 0x6d, 0x79, 0x59, 0x0a, 0x38, 0x63, + 0x31, 0x54, 0x6c, 0x30, 0x68, 0x67, 0x76, 0x59, 0x73, 0x50, + 0x4b, 0x4b, 0x56, 0x70, 0x58, 0x61, 0x58, 0x41, 0x4b, 0x2b, + 0x31, 0x4b, 0x6a, 0x72, 0x35, 0x6b, 0x4b, 0x41, 0x7a, 0x67, + 0x55, 0x74, 0x2b, 0x54, 0x73, 0x57, 0x58, 0x36, 0x6d, 0x72, + 0x79, 0x54, 0x61, 0x32, 0x57, 0x61, 0x65, 0x35, 0x68, 0x68, + 0x37, 0x6f, 0x57, 0x64, 0x6e, 0x53, 0x53, 0x55, 0x4a, 0x56, + 0x6b, 0x6e, 0x0a, 0x72, 0x6d, 0x56, 0x31, 0x59, 0x72, 0x54, + 0x61, 0x45, 0x57, 0x63, 0x67, 0x63, 0x43, 0x46, 0x33, 0x66, + 0x57, 0x36, 0x32, 0x56, 0x4c, 0x50, 0x5a, 0x76, 0x33, 0x74, + 0x58, 0x7a, 0x52, 0x79, 0x71, 0x32, 0x6d, 0x54, 0x6f, 0x4a, + 0x79, 0x4f, 0x70, 0x50, 0x30, 0x57, 0x2b, 0x6d, 0x35, 0x6c, + 0x39, 0x41, 0x57, 0x4a, 0x46, 0x73, 0x33, 0x75, 0x4e, 0x6b, + 0x35, 0x54, 0x75, 0x42, 0x73, 0x58, 0x50, 0x0a, 0x41, 0x52, + 0x76, 0x37, 0x44, 0x6b, 0x56, 0x54, 0x65, 0x6d, 0x37, 0x67, + 0x2f, 0x34, 0x35, 0x4b, 0x71, 0x56, 0x61, 0x78, 0x31, 0x4f, + 0x46, 0x79, 0x31, 0x76, 0x7a, 0x43, 0x38, 0x50, 0x43, 0x4b, + 0x2b, 0x51, 0x68, 0x37, 0x4e, 0x41, 0x68, 0x52, 0x55, 0x35, + 0x58, 0x54, 0x48, 0x53, 0x33, 0x55, 0x73, 0x73, 0x2b, 0x4e, + 0x4d, 0x54, 0x73, 0x6b, 0x6c, 0x35, 0x59, 0x79, 0x48, 0x6f, + 0x50, 0x41, 0x0a, 0x34, 0x32, 0x68, 0x41, 0x55, 0x6f, 0x78, + 0x53, 0x71, 0x73, 0x66, 0x6b, 0x4b, 0x79, 0x4d, 0x77, 0x52, + 0x36, 0x4d, 0x70, 0x30, 0x33, 0x59, 0x32, 0x71, 0x72, 0x7a, + 0x2f, 0x4b, 0x69, 0x30, 0x6d, 0x2f, 0x70, 0x64, 0x49, 0x43, + 0x43, 0x4e, 0x77, 0x58, 0x46, 0x6d, 0x4b, 0x61, 0x65, 0x34, + 0x51, 0x68, 0x6e, 0x69, 0x48, 0x4e, 0x6d, 0x49, 0x7a, 0x2f, + 0x72, 0x6e, 0x6c, 0x39, 0x39, 0x6d, 0x59, 0x0a, 0x4a, 0x35, + 0x78, 0x42, 0x45, 0x78, 0x79, 0x39, 0x6f, 0x52, 0x6e, 0x55, + 0x41, 0x32, 0x6b, 0x41, 0x6c, 0x42, 0x48, 0x47, 0x30, 0x54, + 0x69, 0x4d, 0x69, 0x35, 0x58, 0x33, 0x6d, 0x6f, 0x4a, 0x4f, + 0x4e, 0x37, 0x48, 0x33, 0x75, 0x39, 0x78, 0x6c, 0x4d, 0x63, + 0x50, 0x58, 0x6b, 0x69, 0x6f, 0x34, 0x64, 0x6c, 0x30, 0x43, + 0x67, 0x47, 0x73, 0x2b, 0x6e, 0x4e, 0x36, 0x38, 0x4b, 0x6a, + 0x4e, 0x56, 0x0a, 0x5a, 0x63, 0x63, 0x30, 0x5a, 0x38, 0x32, + 0x70, 0x6b, 0x68, 0x63, 0x30, 0x34, 0x4f, 0x43, 0x38, 0x2b, + 0x4a, 0x62, 0x36, 0x64, 0x7a, 0x48, 0x50, 0x59, 0x58, 0x55, + 0x35, 0x4d, 0x59, 0x42, 0x78, 0x49, 0x61, 0x48, 0x36, 0x31, + 0x76, 0x64, 0x37, 0x6f, 0x77, 0x70, 0x2f, 0x4d, 0x35, 0x63, + 0x37, 0x72, 0x4e, 0x77, 0x49, 0x75, 0x69, 0x47, 0x68, 0x65, + 0x5a, 0x7a, 0x76, 0x56, 0x32, 0x6c, 0x38, 0x0a, 0x34, 0x58, + 0x58, 0x2f, 0x62, 0x6f, 0x4d, 0x6b, 0x6f, 0x76, 0x6c, 0x4f, + 0x6d, 0x6c, 0x71, 0x48, 0x55, 0x44, 0x4e, 0x66, 0x2f, 0x45, + 0x38, 0x43, 0x43, 0x6f, 0x49, 0x6b, 0x4a, 0x66, 0x43, 0x73, + 0x50, 0x65, 0x32, 0x63, 0x42, 0x4b, 0x6e, 0x45, 0x32, 0x63, + 0x56, 0x55, 0x46, 0x72, 0x68, 0x69, 0x49, 0x57, 0x42, 0x4e, + 0x59, 0x59, 0x4e, 0x64, 0x6a, 0x4e, 0x44, 0x53, 0x43, 0x4d, + 0x46, 0x6c, 0x0a, 0x45, 0x4e, 0x38, 0x69, 0x47, 0x39, 0x44, + 0x73, 0x52, 0x4e, 0x54, 0x2b, 0x47, 0x62, 0x54, 0x65, 0x2f, + 0x69, 0x4a, 0x6d, 0x7a, 0x4f, 0x47, 0x75, 0x4b, 0x2b, 0x4b, + 0x42, 0x41, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x41, + 0x6f, 0x49, 0x43, 0x41, 0x47, 0x49, 0x4a, 0x4b, 0x57, 0x47, + 0x70, 0x4c, 0x4f, 0x69, 0x66, 0x53, 0x4a, 0x47, 0x69, 0x38, + 0x36, 0x32, 0x4d, 0x55, 0x58, 0x76, 0x35, 0x0a, 0x6b, 0x6e, + 0x69, 0x4d, 0x73, 0x4f, 0x67, 0x50, 0x76, 0x72, 0x36, 0x62, + 0x51, 0x41, 0x2b, 0x2f, 0x43, 0x50, 0x42, 0x44, 0x47, 0x6a, + 0x34, 0x30, 0x50, 0x48, 0x31, 0x54, 0x73, 0x67, 0x34, 0x4a, + 0x6d, 0x6f, 0x7a, 0x48, 0x56, 0x37, 0x70, 0x41, 0x49, 0x49, + 0x59, 0x4e, 0x47, 0x65, 0x45, 0x55, 0x6c, 0x73, 0x48, 0x49, + 0x2b, 0x48, 0x33, 0x55, 0x65, 0x46, 0x30, 0x48, 0x62, 0x5a, + 0x66, 0x6f, 0x0a, 0x6e, 0x6f, 0x41, 0x59, 0x36, 0x78, 0x33, + 0x53, 0x74, 0x70, 0x35, 0x54, 0x43, 0x35, 0x69, 0x48, 0x30, + 0x6d, 0x4c, 0x42, 0x76, 0x31, 0x4e, 0x47, 0x78, 0x6f, 0x7a, + 0x73, 0x4c, 0x75, 0x69, 0x6c, 0x6c, 0x67, 0x6b, 0x72, 0x36, + 0x65, 0x7a, 0x31, 0x78, 0x79, 0x6d, 0x69, 0x6d, 0x2b, 0x66, + 0x35, 0x55, 0x55, 0x6f, 0x77, 0x6e, 0x41, 0x71, 0x4d, 0x4e, + 0x52, 0x54, 0x36, 0x48, 0x6c, 0x73, 0x63, 0x0a, 0x54, 0x77, + 0x79, 0x39, 0x31, 0x66, 0x51, 0x65, 0x50, 0x68, 0x4c, 0x75, + 0x53, 0x6c, 0x31, 0x51, 0x78, 0x32, 0x56, 0x41, 0x4c, 0x75, + 0x6a, 0x33, 0x54, 0x58, 0x42, 0x4e, 0x62, 0x77, 0x68, 0x79, + 0x67, 0x49, 0x55, 0x4c, 0x62, 0x2f, 0x33, 0x4c, 0x33, 0x62, + 0x4e, 0x6d, 0x43, 0x4f, 0x36, 0x51, 0x71, 0x73, 0x72, 0x64, + 0x36, 0x4b, 0x46, 0x73, 0x41, 0x37, 0x65, 0x74, 0x72, 0x48, + 0x70, 0x37, 0x0a, 0x5a, 0x68, 0x67, 0x39, 0x5a, 0x35, 0x52, + 0x64, 0x46, 0x32, 0x77, 0x54, 0x44, 0x50, 0x77, 0x71, 0x2f, + 0x73, 0x4d, 0x65, 0x64, 0x75, 0x31, 0x79, 0x4b, 0x64, 0x37, + 0x78, 0x72, 0x61, 0x57, 0x4c, 0x2b, 0x77, 0x63, 0x56, 0x36, + 0x59, 0x4d, 0x4c, 0x46, 0x44, 0x78, 0x54, 0x49, 0x36, 0x6d, + 0x30, 0x48, 0x77, 0x63, 0x6a, 0x4b, 0x53, 0x63, 0x70, 0x65, + 0x34, 0x49, 0x53, 0x5a, 0x77, 0x61, 0x4d, 0x0a, 0x68, 0x32, + 0x52, 0x64, 0x67, 0x41, 0x4d, 0x66, 0x70, 0x43, 0x44, 0x53, + 0x31, 0x32, 0x51, 0x50, 0x55, 0x68, 0x41, 0x76, 0x41, 0x73, + 0x6b, 0x50, 0x67, 0x69, 0x6f, 0x76, 0x48, 0x65, 0x56, 0x4c, + 0x59, 0x38, 0x77, 0x31, 0x54, 0x2b, 0x59, 0x69, 0x4c, 0x53, + 0x54, 0x4b, 0x6f, 0x74, 0x6a, 0x39, 0x7a, 0x36, 0x74, 0x54, + 0x2b, 0x32, 0x73, 0x77, 0x35, 0x31, 0x4d, 0x36, 0x75, 0x57, + 0x48, 0x7a, 0x0a, 0x4e, 0x32, 0x70, 0x6d, 0x43, 0x43, 0x49, + 0x55, 0x7a, 0x42, 0x39, 0x31, 0x50, 0x47, 0x79, 0x62, 0x54, + 0x39, 0x51, 0x45, 0x4c, 0x4f, 0x4b, 0x4f, 0x48, 0x47, 0x68, + 0x6d, 0x66, 0x58, 0x65, 0x6d, 0x4e, 0x55, 0x5a, 0x63, 0x72, + 0x6f, 0x39, 0x53, 0x6f, 0x74, 0x42, 0x54, 0x4c, 0x76, 0x70, + 0x4f, 0x6e, 0x6d, 0x4d, 0x37, 0x4d, 0x38, 0x65, 0x2b, 0x71, + 0x6c, 0x78, 0x36, 0x4d, 0x6a, 0x6b, 0x4d, 0x0a, 0x32, 0x53, + 0x2f, 0x51, 0x38, 0x50, 0x56, 0x4a, 0x51, 0x6c, 0x41, 0x69, + 0x62, 0x4b, 0x50, 0x5a, 0x38, 0x30, 0x59, 0x54, 0x48, 0x78, + 0x54, 0x57, 0x73, 0x62, 0x57, 0x2f, 0x50, 0x6d, 0x32, 0x5a, + 0x64, 0x53, 0x57, 0x66, 0x78, 0x35, 0x30, 0x4c, 0x30, 0x73, + 0x63, 0x6b, 0x41, 0x73, 0x4a, 0x74, 0x6c, 0x78, 0x2b, 0x34, + 0x4c, 0x5a, 0x6f, 0x4e, 0x6e, 0x65, 0x2b, 0x43, 0x39, 0x69, + 0x38, 0x36, 0x0a, 0x58, 0x36, 0x6f, 0x4c, 0x79, 0x75, 0x2f, + 0x64, 0x2f, 0x59, 0x67, 0x2b, 0x57, 0x38, 0x4e, 0x2b, 0x46, + 0x73, 0x4b, 0x7a, 0x6d, 0x54, 0x57, 0x6f, 0x39, 0x4e, 0x35, + 0x30, 0x41, 0x52, 0x6c, 0x79, 0x38, 0x4a, 0x68, 0x4c, 0x6b, + 0x55, 0x4b, 0x30, 0x72, 0x46, 0x30, 0x30, 0x70, 0x45, 0x4e, + 0x71, 0x72, 0x6b, 0x68, 0x4b, 0x79, 0x70, 0x69, 0x65, 0x6f, + 0x36, 0x64, 0x62, 0x52, 0x67, 0x52, 0x50, 0x0a, 0x63, 0x67, + 0x32, 0x72, 0x7a, 0x48, 0x70, 0x66, 0x77, 0x56, 0x76, 0x39, + 0x6e, 0x62, 0x47, 0x79, 0x31, 0x48, 0x32, 0x57, 0x48, 0x33, + 0x77, 0x51, 0x58, 0x53, 0x66, 0x6b, 0x4a, 0x42, 0x57, 0x41, + 0x47, 0x72, 0x36, 0x50, 0x52, 0x67, 0x73, 0x43, 0x49, 0x41, + 0x51, 0x59, 0x6d, 0x52, 0x44, 0x55, 0x4f, 0x37, 0x5a, 0x6d, + 0x2b, 0x4b, 0x6c, 0x78, 0x55, 0x74, 0x69, 0x56, 0x4a, 0x41, + 0x5a, 0x79, 0x0a, 0x4b, 0x34, 0x72, 0x6c, 0x74, 0x44, 0x54, + 0x37, 0x4b, 0x49, 0x44, 0x50, 0x6b, 0x64, 0x72, 0x58, 0x6e, + 0x33, 0x77, 0x42, 0x4d, 0x34, 0x53, 0x2f, 0x39, 0x57, 0x77, + 0x42, 0x4c, 0x30, 0x49, 0x58, 0x53, 0x75, 0x7a, 0x79, 0x4a, + 0x61, 0x67, 0x58, 0x72, 0x31, 0x37, 0x6e, 0x4a, 0x50, 0x42, + 0x41, 0x75, 0x50, 0x41, 0x2b, 0x41, 0x31, 0x6d, 0x4e, 0x59, + 0x5a, 0x32, 0x4a, 0x77, 0x63, 0x34, 0x73, 0x0a, 0x66, 0x36, + 0x75, 0x65, 0x36, 0x61, 0x30, 0x78, 0x62, 0x58, 0x63, 0x4e, + 0x37, 0x59, 0x61, 0x5a, 0x6d, 0x4e, 0x6c, 0x68, 0x41, 0x6f, + 0x49, 0x42, 0x41, 0x51, 0x44, 0x4d, 0x49, 0x6a, 0x61, 0x75, + 0x37, 0x31, 0x4d, 0x38, 0x4b, 0x74, 0x6e, 0x4f, 0x42, 0x31, + 0x58, 0x37, 0x5a, 0x30, 0x59, 0x73, 0x45, 0x63, 0x4a, 0x2b, + 0x57, 0x77, 0x6d, 0x55, 0x2b, 0x74, 0x66, 0x51, 0x39, 0x75, + 0x4c, 0x47, 0x0a, 0x63, 0x32, 0x42, 0x79, 0x49, 0x78, 0x55, + 0x73, 0x30, 0x48, 0x54, 0x37, 0x6f, 0x56, 0x79, 0x6b, 0x7a, + 0x44, 0x50, 0x4a, 0x7a, 0x79, 0x38, 0x4b, 0x62, 0x70, 0x4a, + 0x58, 0x41, 0x45, 0x53, 0x2b, 0x31, 0x75, 0x6d, 0x4c, 0x50, + 0x71, 0x39, 0x74, 0x75, 0x6e, 0x4d, 0x6a, 0x56, 0x72, 0x4a, + 0x4c, 0x54, 0x41, 0x75, 0x62, 0x56, 0x6c, 0x59, 0x46, 0x69, + 0x61, 0x4a, 0x55, 0x31, 0x4d, 0x43, 0x4f, 0x0a, 0x61, 0x6f, + 0x75, 0x69, 0x35, 0x73, 0x6e, 0x49, 0x56, 0x48, 0x39, 0x68, + 0x2f, 0x77, 0x43, 0x6d, 0x75, 0x6d, 0x45, 0x37, 0x35, 0x2b, + 0x37, 0x4d, 0x74, 0x44, 0x65, 0x35, 0x46, 0x48, 0x77, 0x77, + 0x65, 0x4e, 0x66, 0x54, 0x72, 0x56, 0x37, 0x4a, 0x78, 0x35, + 0x41, 0x66, 0x30, 0x48, 0x36, 0x5a, 0x50, 0x46, 0x50, 0x52, + 0x47, 0x75, 0x62, 0x42, 0x6c, 0x64, 0x68, 0x6a, 0x42, 0x61, + 0x30, 0x4f, 0x0a, 0x2f, 0x64, 0x47, 0x34, 0x49, 0x49, 0x39, + 0x53, 0x6c, 0x71, 0x6f, 0x35, 0x4a, 0x39, 0x4f, 0x49, 0x75, + 0x6e, 0x4c, 0x6c, 0x67, 0x45, 0x34, 0x76, 0x6b, 0x48, 0x6f, + 0x2f, 0x4c, 0x4d, 0x33, 0x4e, 0x47, 0x49, 0x41, 0x59, 0x77, + 0x65, 0x43, 0x4d, 0x44, 0x79, 0x4a, 0x70, 0x75, 0x70, 0x71, + 0x46, 0x4a, 0x37, 0x59, 0x57, 0x38, 0x6c, 0x33, 0x64, 0x62, + 0x4f, 0x4d, 0x51, 0x47, 0x59, 0x38, 0x50, 0x0a, 0x43, 0x67, + 0x41, 0x6c, 0x55, 0x6f, 0x38, 0x38, 0x56, 0x54, 0x42, 0x4b, + 0x37, 0x44, 0x31, 0x54, 0x45, 0x2b, 0x66, 0x6c, 0x51, 0x6e, + 0x46, 0x33, 0x58, 0x7a, 0x39, 0x39, 0x49, 0x68, 0x77, 0x66, + 0x55, 0x65, 0x38, 0x4c, 0x4e, 0x76, 0x38, 0x4e, 0x72, 0x43, + 0x7a, 0x42, 0x4e, 0x4d, 0x58, 0x32, 0x4f, 0x2f, 0x4c, 0x49, + 0x74, 0x79, 0x71, 0x6a, 0x4a, 0x34, 0x46, 0x44, 0x30, 0x6b, + 0x77, 0x78, 0x0a, 0x30, 0x52, 0x78, 0x47, 0x6c, 0x55, 0x53, + 0x4e, 0x5a, 0x41, 0x37, 0x54, 0x65, 0x36, 0x57, 0x70, 0x48, + 0x58, 0x4d, 0x6b, 0x67, 0x32, 0x2f, 0x6b, 0x75, 0x64, 0x65, + 0x75, 0x73, 0x6d, 0x72, 0x48, 0x67, 0x75, 0x6e, 0x57, 0x52, + 0x6f, 0x43, 0x36, 0x46, 0x4a, 0x58, 0x6f, 0x51, 0x49, 0x7a, + 0x31, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x44, 0x72, 0x46, + 0x72, 0x58, 0x6c, 0x64, 0x71, 0x30, 0x38, 0x0a, 0x4e, 0x32, + 0x74, 0x54, 0x46, 0x57, 0x38, 0x33, 0x48, 0x35, 0x6b, 0x6d, + 0x36, 0x31, 0x37, 0x71, 0x73, 0x5a, 0x50, 0x31, 0x51, 0x32, + 0x71, 0x54, 0x41, 0x46, 0x7a, 0x78, 0x43, 0x52, 0x63, 0x4b, + 0x39, 0x44, 0x32, 0x6e, 0x48, 0x64, 0x45, 0x4c, 0x59, 0x49, + 0x4c, 0x69, 0x52, 0x30, 0x76, 0x7a, 0x50, 0x44, 0x64, 0x78, + 0x2b, 0x38, 0x48, 0x4d, 0x56, 0x4d, 0x6b, 0x34, 0x52, 0x73, + 0x72, 0x4f, 0x0a, 0x46, 0x53, 0x55, 0x45, 0x79, 0x73, 0x6f, + 0x76, 0x34, 0x63, 0x42, 0x58, 0x66, 0x36, 0x4a, 0x4d, 0x5a, + 0x4d, 0x38, 0x71, 0x70, 0x6b, 0x48, 0x56, 0x50, 0x73, 0x73, + 0x35, 0x6b, 0x6d, 0x52, 0x41, 0x72, 0x70, 0x42, 0x65, 0x6f, + 0x30, 0x66, 0x6a, 0x50, 0x69, 0x6f, 0x37, 0x72, 0x4f, 0x64, + 0x6b, 0x38, 0x64, 0x2f, 0x50, 0x58, 0x62, 0x78, 0x78, 0x51, + 0x4f, 0x33, 0x71, 0x48, 0x58, 0x2f, 0x34, 0x0a, 0x57, 0x79, + 0x68, 0x67, 0x6b, 0x47, 0x4e, 0x43, 0x48, 0x77, 0x48, 0x38, + 0x33, 0x66, 0x39, 0x49, 0x7a, 0x49, 0x55, 0x38, 0x71, 0x6c, + 0x50, 0x7a, 0x6e, 0x45, 0x35, 0x73, 0x56, 0x66, 0x7a, 0x6e, + 0x6e, 0x31, 0x2b, 0x48, 0x43, 0x43, 0x47, 0x36, 0x33, 0x68, + 0x6d, 0x54, 0x64, 0x41, 0x79, 0x53, 0x7a, 0x47, 0x38, 0x62, + 0x7a, 0x51, 0x65, 0x35, 0x34, 0x6a, 0x46, 0x76, 0x4f, 0x43, + 0x41, 0x5a, 0x0a, 0x35, 0x6d, 0x36, 0x46, 0x77, 0x2f, 0x78, + 0x72, 0x32, 0x2b, 0x5a, 0x49, 0x6c, 0x47, 0x69, 0x46, 0x33, + 0x38, 0x6d, 0x70, 0x4d, 0x41, 0x36, 0x4b, 0x6d, 0x6f, 0x74, + 0x4c, 0x45, 0x73, 0x75, 0x46, 0x45, 0x49, 0x51, 0x79, 0x6d, + 0x74, 0x49, 0x6e, 0x4c, 0x42, 0x45, 0x7a, 0x46, 0x57, 0x73, + 0x56, 0x50, 0x47, 0x32, 0x2b, 0x52, 0x36, 0x7a, 0x2b, 0x4a, + 0x6a, 0x61, 0x72, 0x51, 0x76, 0x52, 0x44, 0x0a, 0x33, 0x6f, + 0x76, 0x37, 0x39, 0x4d, 0x68, 0x48, 0x59, 0x7a, 0x32, 0x56, + 0x35, 0x30, 0x4c, 0x30, 0x68, 0x45, 0x6d, 0x51, 0x76, 0x2b, + 0x75, 0x62, 0x38, 0x6d, 0x35, 0x33, 0x36, 0x48, 0x64, 0x56, + 0x37, 0x30, 0x56, 0x50, 0x66, 0x43, 0x38, 0x74, 0x4c, 0x37, + 0x4e, 0x56, 0x31, 0x44, 0x4d, 0x4d, 0x70, 0x58, 0x68, 0x67, + 0x31, 0x55, 0x4d, 0x65, 0x44, 0x36, 0x48, 0x30, 0x31, 0x63, + 0x30, 0x33, 0x0a, 0x6a, 0x65, 0x71, 0x65, 0x68, 0x2b, 0x30, + 0x47, 0x49, 0x70, 0x78, 0x64, 0x41, 0x6f, 0x49, 0x42, 0x41, + 0x41, 0x35, 0x4f, 0x59, 0x34, 0x69, 0x31, 0x43, 0x78, 0x39, + 0x50, 0x58, 0x58, 0x35, 0x62, 0x38, 0x30, 0x47, 0x77, 0x52, + 0x6a, 0x47, 0x32, 0x65, 0x4f, 0x77, 0x45, 0x45, 0x31, 0x4c, + 0x57, 0x6c, 0x61, 0x4e, 0x32, 0x65, 0x67, 0x51, 0x77, 0x64, + 0x39, 0x54, 0x6e, 0x38, 0x6f, 0x62, 0x32, 0x0a, 0x67, 0x51, + 0x78, 0x56, 0x6a, 0x62, 0x6d, 0x61, 0x2b, 0x68, 0x49, 0x74, + 0x71, 0x2f, 0x31, 0x4f, 0x4c, 0x49, 0x46, 0x65, 0x61, 0x6e, + 0x4c, 0x35, 0x65, 0x74, 0x71, 0x67, 0x5a, 0x51, 0x6b, 0x4b, + 0x70, 0x53, 0x45, 0x58, 0x35, 0x56, 0x7a, 0x7a, 0x6b, 0x6d, + 0x69, 0x72, 0x6a, 0x31, 0x48, 0x4b, 0x43, 0x49, 0x39, 0x72, + 0x62, 0x61, 0x64, 0x4e, 0x66, 0x6b, 0x58, 0x48, 0x61, 0x4f, + 0x4c, 0x61, 0x0a, 0x55, 0x53, 0x63, 0x63, 0x43, 0x50, 0x36, + 0x6d, 0x56, 0x30, 0x51, 0x73, 0x69, 0x41, 0x62, 0x65, 0x70, + 0x6e, 0x30, 0x5a, 0x47, 0x32, 0x38, 0x47, 0x4f, 0x52, 0x49, + 0x44, 0x74, 0x33, 0x33, 0x71, 0x74, 0x34, 0x59, 0x54, 0x52, + 0x5a, 0x77, 0x56, 0x70, 0x30, 0x59, 0x6a, 0x58, 0x59, 0x4b, + 0x35, 0x72, 0x72, 0x57, 0x5a, 0x34, 0x7a, 0x77, 0x47, 0x75, + 0x39, 0x6a, 0x73, 0x70, 0x7a, 0x37, 0x42, 0x0a, 0x67, 0x6d, + 0x4b, 0x4a, 0x45, 0x51, 0x45, 0x6e, 0x47, 0x41, 0x42, 0x50, + 0x6b, 0x71, 0x73, 0x77, 0x73, 0x2f, 0x43, 0x54, 0x67, 0x6b, + 0x54, 0x61, 0x62, 0x37, 0x66, 0x4d, 0x64, 0x71, 0x45, 0x36, + 0x4f, 0x6b, 0x34, 0x77, 0x6e, 0x72, 0x32, 0x77, 0x50, 0x38, + 0x6d, 0x78, 0x36, 0x4c, 0x51, 0x6f, 0x2b, 0x6d, 0x7a, 0x5a, + 0x62, 0x62, 0x59, 0x2f, 0x48, 0x43, 0x32, 0x42, 0x63, 0x4c, + 0x70, 0x6f, 0x0a, 0x75, 0x66, 0x36, 0x32, 0x4f, 0x63, 0x49, + 0x46, 0x78, 0x68, 0x33, 0x43, 0x48, 0x31, 0x4f, 0x66, 0x59, + 0x45, 0x4b, 0x7a, 0x7a, 0x6b, 0x61, 0x2f, 0x70, 0x6b, 0x49, + 0x68, 0x38, 0x35, 0x51, 0x51, 0x75, 0x66, 0x34, 0x38, 0x5a, + 0x5a, 0x64, 0x52, 0x4d, 0x6a, 0x32, 0x77, 0x34, 0x4a, 0x4d, + 0x59, 0x70, 0x4b, 0x32, 0x4e, 0x49, 0x6e, 0x76, 0x6e, 0x54, + 0x4e, 0x55, 0x42, 0x68, 0x78, 0x46, 0x6c, 0x0a, 0x72, 0x73, + 0x68, 0x52, 0x68, 0x52, 0x57, 0x71, 0x45, 0x37, 0x53, 0x2b, + 0x5a, 0x57, 0x77, 0x68, 0x50, 0x69, 0x56, 0x6e, 0x4b, 0x61, + 0x61, 0x62, 0x33, 0x53, 0x6d, 0x41, 0x50, 0x57, 0x74, 0x4e, + 0x49, 0x41, 0x68, 0x72, 0x35, 0x62, 0x55, 0x43, 0x67, 0x67, + 0x45, 0x42, 0x41, 0x4f, 0x72, 0x31, 0x70, 0x74, 0x54, 0x78, + 0x65, 0x52, 0x45, 0x50, 0x48, 0x72, 0x42, 0x4b, 0x59, 0x76, + 0x36, 0x49, 0x0a, 0x45, 0x55, 0x7a, 0x70, 0x76, 0x39, 0x4c, + 0x33, 0x71, 0x72, 0x5a, 0x65, 0x4b, 0x2f, 0x31, 0x43, 0x52, + 0x71, 0x49, 0x4e, 0x67, 0x4c, 0x39, 0x4d, 0x2f, 0x76, 0x57, + 0x78, 0x41, 0x6b, 0x62, 0x4a, 0x72, 0x65, 0x61, 0x30, 0x64, + 0x58, 0x39, 0x6b, 0x64, 0x74, 0x48, 0x77, 0x57, 0x6e, 0x42, + 0x37, 0x61, 0x53, 0x56, 0x61, 0x38, 0x38, 0x56, 0x6e, 0x4d, + 0x72, 0x6d, 0x49, 0x61, 0x4f, 0x33, 0x55, 0x0a, 0x52, 0x71, + 0x58, 0x74, 0x42, 0x65, 0x77, 0x75, 0x63, 0x54, 0x50, 0x69, + 0x4f, 0x54, 0x67, 0x46, 0x61, 0x35, 0x35, 0x64, 0x35, 0x74, + 0x38, 0x53, 0x32, 0x57, 0x34, 0x4d, 0x36, 0x59, 0x4f, 0x41, + 0x6c, 0x54, 0x74, 0x52, 0x67, 0x32, 0x2f, 0x4c, 0x6f, 0x76, + 0x49, 0x68, 0x63, 0x48, 0x38, 0x4d, 0x38, 0x76, 0x79, 0x6a, + 0x67, 0x55, 0x78, 0x61, 0x35, 0x34, 0x38, 0x6a, 0x6f, 0x47, + 0x44, 0x73, 0x0a, 0x6c, 0x74, 0x4d, 0x42, 0x6d, 0x65, 0x31, + 0x4c, 0x6f, 0x2f, 0x72, 0x50, 0x44, 0x64, 0x73, 0x55, 0x4a, + 0x50, 0x6c, 0x34, 0x4d, 0x36, 0x33, 0x59, 0x42, 0x75, 0x54, + 0x78, 0x78, 0x71, 0x78, 0x36, 0x34, 0x4c, 0x73, 0x55, 0x4b, + 0x4b, 0x44, 0x72, 0x76, 0x44, 0x7a, 0x66, 0x2f, 0x64, 0x48, + 0x56, 0x39, 0x61, 0x79, 0x41, 0x50, 0x75, 0x31, 0x44, 0x39, + 0x73, 0x43, 0x77, 0x38, 0x65, 0x39, 0x6e, 0x0a, 0x4e, 0x39, + 0x44, 0x67, 0x71, 0x31, 0x72, 0x71, 0x49, 0x53, 0x5a, 0x38, + 0x78, 0x6e, 0x76, 0x58, 0x48, 0x46, 0x4c, 0x72, 0x4e, 0x51, + 0x67, 0x49, 0x53, 0x75, 0x67, 0x38, 0x2f, 0x72, 0x39, 0x78, + 0x39, 0x72, 0x72, 0x45, 0x74, 0x47, 0x4c, 0x6b, 0x49, 0x35, + 0x63, 0x6a, 0x45, 0x67, 0x35, 0x74, 0x61, 0x51, 0x52, 0x67, + 0x68, 0x62, 0x76, 0x7a, 0x69, 0x4a, 0x74, 0x49, 0x75, 0x6f, + 0x64, 0x47, 0x0a, 0x38, 0x37, 0x32, 0x49, 0x42, 0x73, 0x35, + 0x57, 0x44, 0x53, 0x53, 0x6a, 0x2f, 0x4c, 0x71, 0x2f, 0x59, + 0x5a, 0x4e, 0x73, 0x66, 0x79, 0x45, 0x66, 0x5a, 0x48, 0x6d, + 0x64, 0x31, 0x35, 0x54, 0x6b, 0x38, 0x4f, 0x74, 0x65, 0x69, + 0x36, 0x73, 0x66, 0x45, 0x71, 0x4a, 0x4e, 0x59, 0x36, 0x68, + 0x2b, 0x33, 0x56, 0x4c, 0x55, 0x41, 0x53, 0x68, 0x2b, 0x4b, + 0x62, 0x6c, 0x4b, 0x68, 0x79, 0x59, 0x7a, 0x0a, 0x6e, 0x32, + 0x30, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4b, 0x4b, 0x74, + 0x6b, 0x72, 0x6d, 0x4f, 0x49, 0x6b, 0x74, 0x31, 0x49, 0x76, + 0x57, 0x32, 0x6a, 0x47, 0x73, 0x68, 0x38, 0x35, 0x62, 0x53, + 0x33, 0x79, 0x74, 0x69, 0x66, 0x4e, 0x33, 0x36, 0x50, 0x2b, + 0x34, 0x39, 0x43, 0x6e, 0x47, 0x6d, 0x4c, 0x4a, 0x79, 0x4a, + 0x57, 0x31, 0x5a, 0x62, 0x79, 0x6c, 0x68, 0x31, 0x42, 0x75, + 0x70, 0x6c, 0x0a, 0x2b, 0x6d, 0x67, 0x77, 0x4c, 0x70, 0x6a, + 0x49, 0x55, 0x4c, 0x4b, 0x65, 0x2b, 0x55, 0x54, 0x78, 0x33, + 0x55, 0x46, 0x51, 0x42, 0x45, 0x53, 0x73, 0x46, 0x35, 0x38, + 0x6c, 0x54, 0x75, 0x35, 0x4e, 0x71, 0x4e, 0x6c, 0x33, 0x36, + 0x49, 0x55, 0x6b, 0x79, 0x47, 0x37, 0x4a, 0x4f, 0x55, 0x76, + 0x54, 0x41, 0x6d, 0x61, 0x2f, 0x6b, 0x49, 0x41, 0x65, 0x6d, + 0x2b, 0x58, 0x79, 0x79, 0x70, 0x6b, 0x59, 0x0a, 0x30, 0x34, + 0x7a, 0x4b, 0x57, 0x77, 0x35, 0x34, 0x64, 0x64, 0x33, 0x37, + 0x4b, 0x70, 0x4a, 0x74, 0x6b, 0x49, 0x67, 0x6d, 0x56, 0x45, + 0x71, 0x51, 0x49, 0x37, 0x78, 0x7a, 0x74, 0x45, 0x74, 0x4d, + 0x55, 0x55, 0x54, 0x6f, 0x62, 0x58, 0x31, 0x54, 0x5a, 0x6a, + 0x67, 0x31, 0x2f, 0x4c, 0x43, 0x41, 0x4f, 0x2b, 0x53, 0x5a, + 0x44, 0x59, 0x4a, 0x73, 0x55, 0x2f, 0x7a, 0x39, 0x33, 0x47, + 0x36, 0x7a, 0x0a, 0x38, 0x61, 0x31, 0x46, 0x6e, 0x48, 0x54, + 0x46, 0x6e, 0x37, 0x44, 0x49, 0x5a, 0x37, 0x58, 0x75, 0x47, + 0x2b, 0x37, 0x65, 0x48, 0x41, 0x50, 0x2b, 0x38, 0x5a, 0x45, + 0x71, 0x62, 0x72, 0x48, 0x49, 0x37, 0x2f, 0x61, 0x6f, 0x50, + 0x67, 0x58, 0x41, 0x69, 0x6f, 0x67, 0x72, 0x75, 0x2b, 0x66, + 0x50, 0x73, 0x44, 0x4b, 0x4e, 0x4e, 0x69, 0x68, 0x38, 0x6e, + 0x30, 0x34, 0x31, 0x47, 0x6d, 0x6b, 0x58, 0x0a, 0x54, 0x45, + 0x4c, 0x52, 0x2b, 0x54, 0x31, 0x7a, 0x51, 0x6c, 0x36, 0x63, + 0x59, 0x74, 0x68, 0x6f, 0x58, 0x72, 0x4a, 0x7a, 0x6a, 0x68, + 0x78, 0x36, 0x73, 0x6e, 0x34, 0x78, 0x33, 0x75, 0x4a, 0x74, + 0x2f, 0x63, 0x66, 0x73, 0x34, 0x31, 0x63, 0x72, 0x5a, 0x4f, + 0x59, 0x35, 0x41, 0x4c, 0x69, 0x31, 0x6d, 0x32, 0x30, 0x76, + 0x5a, 0x71, 0x59, 0x6c, 0x49, 0x45, 0x57, 0x50, 0x41, 0x77, + 0x34, 0x4b, 0x0a, 0x77, 0x64, 0x45, 0x44, 0x47, 0x64, 0x37, + 0x70, 0x6d, 0x61, 0x4c, 0x77, 0x42, 0x72, 0x58, 0x2b, 0x49, + 0x55, 0x69, 0x44, 0x75, 0x7a, 0x46, 0x30, 0x34, 0x41, 0x34, + 0x6a, 0x31, 0x50, 0x67, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, + 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x0a, + }}, +}; +/* + +ECDSAP256SHA256 (256b) + +ecdsa256. DNSKEY 256 3 13 8uD7C4THTM/w7uhryRSToeE/jKT78/p853RX0L5EwrZrSLBubLPiBw7gbvUP6SsIga5ZQ4CSAxNmYA/gZsuXzA== +ecdsa256. DS 5345 13 1 528395F3CDCAA07AD315A9B1D05024E1378C2BAA +ecdsa256. DS 5345 13 2 6D7D14EBC1BEE4FA8D394D0A1AC0663399114E608DCA4D53DD4A683DA390017B +ecdsa256. DS 5345 13 4 9D887533DFC828CC5B04CA9B745991D556DCB9A0CAEA5901FEC1CA3C0DD7348CE8E6DD997CC80AA7A9BEDBB9CB653002 + +-----BEGIN PRIVATE KEY----- +MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgiyLIPdk3DOIxVmmS +YlmTstbtUPiVlEyDX46psyCwNVSgCgYIKoZIzj0DAQehRANCAATy4PsLhMdMz/Du +6GvJFJOh4T+MpPvz+nzndFfQvkTCtmtIsG5ss+IHDuBu9Q/pKwiBrllDgJIDE2Zg +D+Bmy5fM +-----END PRIVATE KEY----- -static const key_parameters_t SAMPLE_ECDSA_KEY = { - .name = (uint8_t *)"\x05""ecdsa", +*/ +static const key_parameters_t SAMPLE_ECDSA_P256_SHA256_KEY = { + .name = (uint8_t *)"\x08""ecdsa256", .flags = 256, .protocol = 3, .algorithm = 13, - .public_key = { .size = 64, .data = (uint8_t []) { + .public_key = { .size = 64, .data = (uint8_t []){ 0xf2, 0xe0, 0xfb, 0x0b, 0x84, 0xc7, 0x4c, 0xcf, 0xf0, 0xee, 0xe8, 0x6b, 0xc9, 0x14, 0x93, 0xa1, 0xe1, 0x3f, 0x8c, 0xa4, 0xfb, 0xf3, 0xfa, 0x7c, 0xe7, 0x74, 0x57, 0xd0, 0xbe, 0x44, @@ -260,8 +2081,8 @@ static const key_parameters_t SAMPLE_ECDSA_KEY = { 0x59, 0x43, 0x80, 0x92, 0x03, 0x13, 0x66, 0x60, 0x0f, 0xe0, 0x66, 0xcb, 0x97, 0xcc, }}, - .rdata = { .size = 68, .data = (uint8_t []) { - 0x01, 0x00, 0x03, 0x0d, + .rdata = { .size = 68, .data = (uint8_t []){ + 01, 0x00, 0x03, 0x0d, 0xf2, 0xe0, 0xfb, 0x0b, 0x84, 0xc7, 0x4c, 0xcf, 0xf0, 0xee, 0xe8, 0x6b, 0xc9, 0x14, 0x93, 0xa1, 0xe1, 0x3f, 0x8c, 0xa4, 0xfb, 0xf3, 0xfa, 0x7c, 0xe7, 0x74, 0x57, 0xd0, 0xbe, 0x44, @@ -270,218 +2091,306 @@ static const key_parameters_t SAMPLE_ECDSA_KEY = { 0x59, 0x43, 0x80, 0x92, 0x03, 0x13, 0x66, 0x60, 0x0f, 0xe0, 0x66, 0xcb, 0x97, 0xcc, }}, - .keytag = 5345, .key_id = "47fd10011e76cc6741af586041eae5519465fc8d", - .ds_sha1 = { .size = 24, .data = (uint8_t []) { - 0x14, 0xe1, 0x0d, 0x01, - 0x95, 0x41, 0x03, 0xac, 0x7c, 0x43, 0x81, 0x0c, 0xe9, 0xf4, - 0x14, 0xe8, 0x0f, 0x30, 0xab, 0x1c, 0xbe, 0x49, 0xb2, 0x36, - }}, - .ds_sha256 = { .size = 36, .data = (uint8_t []) { - 0x14, 0xe1, 0x0d, 0x02, - 0xba, 0xc2, 0x10, 0x70, 0x36, 0xe7, 0x35, 0xb5, 0x0f, 0x85, - 0x00, 0x6c, 0xe4, 0x09, 0xa1, 0x9a, 0x34, 0x38, 0xca, 0xb2, - 0x72, 0xe7, 0x07, 0x69, 0xeb, 0xda, 0x03, 0x22, 0x39, 0xa3, - 0xd0, 0xca, - }}, - .ds_sha384 = { .size = 52, .data = (uint8_t []) { - 0x14, 0xe1, 0x0d, 0x04, - 0xa0, 0xac, 0x67, 0x90, 0x48, 0x38, 0x72, 0xbe, 0x72, 0xa2, - 0x58, 0x31, 0x42, 0x00, 0xa8, 0x8a, 0xb7, 0x5c, 0xdd, 0x70, - 0xf6, 0x6a, 0x18, 0xa0, 0x9f, 0x0f, 0x41, 0x4c, 0x07, 0x4d, - 0xf0, 0x98, 0x9f, 0xdb, 0x1d, 0xf0, 0xe6, 0x7d, 0x82, 0xd4, - 0x31, 0x2c, 0xda, 0x67, 0xb9, 0x3a, 0x76, 0xc1, + .keytag = 5345, + .ds_sha1 = { .size = 24, .data = (uint8_t []){ + 0x14, 0xe1, 0x0d, 0x01, 0x52, 0x83, 0x95, 0xf3, 0xcd, 0xca, + 0xa0, 0x7a, 0xd3, 0x15, 0xa9, 0xb1, 0xd0, 0x50, 0x24, 0xe1, + 0x37, 0x8c, 0x2b, 0xaa, + }}, + .ds_sha256 = { .size = 36, .data = (uint8_t []){ + 0x14, 0xe1, 0x0d, 0x02, 0x6d, 0x7d, 0x14, 0xeb, 0xc1, 0xbe, + 0xe4, 0xfa, 0x8d, 0x39, 0x4d, 0x0a, 0x1a, 0xc0, 0x66, 0x33, + 0x99, 0x11, 0x4e, 0x60, 0x8d, 0xca, 0x4d, 0x53, 0xdd, 0x4a, + 0x68, 0x3d, 0xa3, 0x90, 0x01, 0x7b, + }}, + .ds_sha384 = { .size = 52, .data = (uint8_t []){ + 0x14, 0xe1, 0x0d, 0x04, 0x9d, 0x88, 0x75, 0x33, 0xdf, 0xc8, + 0x28, 0xcc, 0x5b, 0x04, 0xca, 0x9b, 0x74, 0x59, 0x91, 0xd5, + 0x56, 0xdc, 0xb9, 0xa0, 0xca, 0xea, 0x59, 0x01, 0xfe, 0xc1, + 0xca, 0x3c, 0x0d, 0xd7, 0x34, 0x8c, 0xe8, 0xe6, 0xdd, 0x99, + 0x7c, 0xc8, 0x0a, 0xa7, 0xa9, 0xbe, 0xdb, 0xb9, 0xcb, 0x65, + 0x30, 0x02, }}, .bit_size = 256, - .pem = { .size = 262, .data = (uint8_t []) { + .pem = { .size = 258, .data = (uint8_t []){ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, - 0x47, 0x55, 0x41, 0x67, 0x45, 0x41, 0x4d, 0x42, 0x4d, 0x47, + 0x47, 0x54, 0x41, 0x67, 0x45, 0x41, 0x4d, 0x42, 0x4d, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, - 0x41, 0x77, 0x45, 0x48, 0x42, 0x48, 0x6f, 0x77, 0x65, 0x41, - 0x49, 0x42, 0x41, 0x51, 0x51, 0x68, 0x41, 0x49, 0x73, 0x69, - 0x79, 0x44, 0x33, 0x5a, 0x4e, 0x77, 0x7a, 0x69, 0x4d, 0x56, - 0x5a, 0x70, 0x0a, 0x6b, 0x6d, 0x4a, 0x5a, 0x6b, 0x37, 0x4c, - 0x57, 0x37, 0x56, 0x44, 0x34, 0x6c, 0x5a, 0x52, 0x4d, 0x67, - 0x31, 0x2b, 0x4f, 0x71, 0x62, 0x4d, 0x67, 0x73, 0x44, 0x56, - 0x55, 0x6f, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, - 0x4d, 0x34, 0x39, 0x41, 0x77, 0x45, 0x48, 0x6f, 0x55, 0x51, - 0x44, 0x51, 0x67, 0x41, 0x45, 0x38, 0x75, 0x44, 0x37, 0x43, - 0x34, 0x54, 0x48, 0x54, 0x4d, 0x2f, 0x77, 0x0a, 0x37, 0x75, - 0x68, 0x72, 0x79, 0x52, 0x53, 0x54, 0x6f, 0x65, 0x45, 0x2f, - 0x6a, 0x4b, 0x54, 0x37, 0x38, 0x2f, 0x70, 0x38, 0x35, 0x33, - 0x52, 0x58, 0x30, 0x4c, 0x35, 0x45, 0x77, 0x72, 0x5a, 0x72, - 0x53, 0x4c, 0x42, 0x75, 0x62, 0x4c, 0x50, 0x69, 0x42, 0x77, - 0x37, 0x67, 0x62, 0x76, 0x55, 0x50, 0x36, 0x53, 0x73, 0x49, - 0x67, 0x61, 0x35, 0x5a, 0x51, 0x34, 0x43, 0x53, 0x41, 0x78, - 0x4e, 0x6d, 0x0a, 0x59, 0x41, 0x2f, 0x67, 0x5a, 0x73, 0x75, - 0x58, 0x7a, 0x41, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, - 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x0a, + 0x41, 0x77, 0x45, 0x48, 0x42, 0x48, 0x6b, 0x77, 0x64, 0x77, + 0x49, 0x42, 0x41, 0x51, 0x51, 0x67, 0x69, 0x79, 0x4c, 0x49, + 0x50, 0x64, 0x6b, 0x33, 0x44, 0x4f, 0x49, 0x78, 0x56, 0x6d, + 0x6d, 0x53, 0x0a, 0x59, 0x6c, 0x6d, 0x54, 0x73, 0x74, 0x62, + 0x74, 0x55, 0x50, 0x69, 0x56, 0x6c, 0x45, 0x79, 0x44, 0x58, + 0x34, 0x36, 0x70, 0x73, 0x79, 0x43, 0x77, 0x4e, 0x56, 0x53, + 0x67, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, + 0x6a, 0x30, 0x44, 0x41, 0x51, 0x65, 0x68, 0x52, 0x41, 0x4e, + 0x43, 0x41, 0x41, 0x54, 0x79, 0x34, 0x50, 0x73, 0x4c, 0x68, + 0x4d, 0x64, 0x4d, 0x7a, 0x2f, 0x44, 0x75, 0x0a, 0x36, 0x47, + 0x76, 0x4a, 0x46, 0x4a, 0x4f, 0x68, 0x34, 0x54, 0x2b, 0x4d, + 0x70, 0x50, 0x76, 0x7a, 0x2b, 0x6e, 0x7a, 0x6e, 0x64, 0x46, + 0x66, 0x51, 0x76, 0x6b, 0x54, 0x43, 0x74, 0x6d, 0x74, 0x49, + 0x73, 0x47, 0x35, 0x73, 0x73, 0x2b, 0x49, 0x48, 0x44, 0x75, + 0x42, 0x75, 0x39, 0x51, 0x2f, 0x70, 0x4b, 0x77, 0x69, 0x42, + 0x72, 0x6c, 0x6c, 0x44, 0x67, 0x4a, 0x49, 0x44, 0x45, 0x32, + 0x5a, 0x67, 0x0a, 0x44, 0x2b, 0x42, 0x6d, 0x79, 0x35, 0x66, + 0x4d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, + 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, + 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, }}, }; +/* + +ECDSAP384SHA384 (384b) + +ecdsa384. DNSKEY 256 3 14 7CeBkmqMzybnRq9hXt8OoIOw77/LYzDfXGNs6JqHcGIAGRkc6PK4hvf7E5c6CITslUfsSvjboh+fkXQeFvsfipcmB8KUp+YOPN3kfL8Im+kkP+NSnzMiQ/oEiLJEus6r +ecdsa384. DS 54424 14 1 676AEF30FAC81141962216BDD98B4EB7FB97BC86 +ecdsa384. DS 54424 14 2 2C3104425F555242D46111A87C3A9D6657F88238F13B529CA890667967F388BA +ecdsa384. DS 54424 14 4 C7B98E368420DA934FC877B271F111E820D61F2D5E399FC6997E796FB924E2849049F7480A1C937C50BE0C41F57CB006 + +-----BEGIN PRIVATE KEY----- +MIG/AgEAMBAGByqGSM49AgEGBSuBBAAiBIGnMIGkAgEBBDC3fRdw4A1GE00ZN39v +wHrOhkY0Tce5J7VODdoTJo25yAAog8tyT6N2IkibgHm4iYmgBwYFK4EEACKhZANi +AATsJ4GSaozPJudGr2Fe3w6gg7Dvv8tjMN9cY2zomodwYgAZGRzo8riG9/sTlzoI +hOyVR+xK+NuiH5+RdB4W+x+KlyYHwpSn5g483eR8vwib6SQ/41KfMyJD+gSIskS6 +zqs= +-----END PRIVATE KEY----- +*/ +static const key_parameters_t SAMPLE_ECDSA_P384_SHA384_KEY = { + .name = (uint8_t *)"\x08""ecdsa384", + .flags = 256, + .protocol = 3, + .algorithm = 14, + .public_key = { .size = 96, .data = (uint8_t []){ + 0xec, 0x27, 0x81, 0x92, 0x6a, 0x8c, 0xcf, 0x26, 0xe7, 0x46, + 0xaf, 0x61, 0x5e, 0xdf, 0x0e, 0xa0, 0x83, 0xb0, 0xef, 0xbf, + 0xcb, 0x63, 0x30, 0xdf, 0x5c, 0x63, 0x6c, 0xe8, 0x9a, 0x87, + 0x70, 0x62, 0x00, 0x19, 0x19, 0x1c, 0xe8, 0xf2, 0xb8, 0x86, + 0xf7, 0xfb, 0x13, 0x97, 0x3a, 0x08, 0x84, 0xec, 0x95, 0x47, + 0xec, 0x4a, 0xf8, 0xdb, 0xa2, 0x1f, 0x9f, 0x91, 0x74, 0x1e, + 0x16, 0xfb, 0x1f, 0x8a, 0x97, 0x26, 0x07, 0xc2, 0x94, 0xa7, + 0xe6, 0x0e, 0x3c, 0xdd, 0xe4, 0x7c, 0xbf, 0x08, 0x9b, 0xe9, + 0x24, 0x3f, 0xe3, 0x52, 0x9f, 0x33, 0x22, 0x43, 0xfa, 0x04, + 0x88, 0xb2, 0x44, 0xba, 0xce, 0xab, + }}, + .rdata = { .size = 100, .data = (uint8_t []){ + 01, 0x00, 0x03, 0x0e, + 0xec, 0x27, 0x81, 0x92, 0x6a, 0x8c, 0xcf, 0x26, 0xe7, 0x46, + 0xaf, 0x61, 0x5e, 0xdf, 0x0e, 0xa0, 0x83, 0xb0, 0xef, 0xbf, + 0xcb, 0x63, 0x30, 0xdf, 0x5c, 0x63, 0x6c, 0xe8, 0x9a, 0x87, + 0x70, 0x62, 0x00, 0x19, 0x19, 0x1c, 0xe8, 0xf2, 0xb8, 0x86, + 0xf7, 0xfb, 0x13, 0x97, 0x3a, 0x08, 0x84, 0xec, 0x95, 0x47, + 0xec, 0x4a, 0xf8, 0xdb, 0xa2, 0x1f, 0x9f, 0x91, 0x74, 0x1e, + 0x16, 0xfb, 0x1f, 0x8a, 0x97, 0x26, 0x07, 0xc2, 0x94, 0xa7, + 0xe6, 0x0e, 0x3c, 0xdd, 0xe4, 0x7c, 0xbf, 0x08, 0x9b, 0xe9, + 0x24, 0x3f, 0xe3, 0x52, 0x9f, 0x33, 0x22, 0x43, 0xfa, 0x04, + 0x88, 0xb2, 0x44, 0xba, 0xce, 0xab, + }}, + .key_id = "93e55ee1bc62a4922a4872b7b4416afa8788964e", + .keytag = 54424, + .ds_sha1 = { .size = 24, .data = (uint8_t []){ + 0xd4, 0x98, 0x0e, 0x01, 0x67, 0x6a, 0xef, 0x30, 0xfa, 0xc8, + 0x11, 0x41, 0x96, 0x22, 0x16, 0xbd, 0xd9, 0x8b, 0x4e, 0xb7, + 0xfb, 0x97, 0xbc, 0x86, + }}, + .ds_sha256 = { .size = 36, .data = (uint8_t []){ + 0xd4, 0x98, 0x0e, 0x02, 0x2c, 0x31, 0x04, 0x42, 0x5f, 0x55, + 0x52, 0x42, 0xd4, 0x61, 0x11, 0xa8, 0x7c, 0x3a, 0x9d, 0x66, + 0x57, 0xf8, 0x82, 0x38, 0xf1, 0x3b, 0x52, 0x9c, 0xa8, 0x90, + 0x66, 0x79, 0x67, 0xf3, 0x88, 0xba, + }}, + .ds_sha384 = { .size = 52, .data = (uint8_t []){ + 0xd4, 0x98, 0x0e, 0x04, 0xc7, 0xb9, 0x8e, 0x36, 0x84, 0x20, + 0xda, 0x93, 0x4f, 0xc8, 0x77, 0xb2, 0x71, 0xf1, 0x11, 0xe8, + 0x20, 0xd6, 0x1f, 0x2d, 0x5e, 0x39, 0x9f, 0xc6, 0x99, 0x7e, + 0x79, 0x6f, 0xb9, 0x24, 0xe2, 0x84, 0x90, 0x49, 0xf7, 0x48, + 0x0a, 0x1c, 0x93, 0x7c, 0x50, 0xbe, 0x0c, 0x41, 0xf5, 0x7c, + 0xb0, 0x06, + }}, + .bit_size = 384, + .pem = { .size = 319, .data = (uint8_t []){ + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, + 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, + 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, + 0x47, 0x2f, 0x41, 0x67, 0x45, 0x41, 0x4d, 0x42, 0x41, 0x47, + 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, + 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, + 0x42, 0x49, 0x47, 0x6e, 0x4d, 0x49, 0x47, 0x6b, 0x41, 0x67, + 0x45, 0x42, 0x42, 0x44, 0x43, 0x33, 0x66, 0x52, 0x64, 0x77, + 0x34, 0x41, 0x31, 0x47, 0x45, 0x30, 0x30, 0x5a, 0x4e, 0x33, + 0x39, 0x76, 0x0a, 0x77, 0x48, 0x72, 0x4f, 0x68, 0x6b, 0x59, + 0x30, 0x54, 0x63, 0x65, 0x35, 0x4a, 0x37, 0x56, 0x4f, 0x44, + 0x64, 0x6f, 0x54, 0x4a, 0x6f, 0x32, 0x35, 0x79, 0x41, 0x41, + 0x6f, 0x67, 0x38, 0x74, 0x79, 0x54, 0x36, 0x4e, 0x32, 0x49, + 0x6b, 0x69, 0x62, 0x67, 0x48, 0x6d, 0x34, 0x69, 0x59, 0x6d, + 0x67, 0x42, 0x77, 0x59, 0x46, 0x4b, 0x34, 0x45, 0x45, 0x41, + 0x43, 0x4b, 0x68, 0x5a, 0x41, 0x4e, 0x69, 0x0a, 0x41, 0x41, + 0x54, 0x73, 0x4a, 0x34, 0x47, 0x53, 0x61, 0x6f, 0x7a, 0x50, + 0x4a, 0x75, 0x64, 0x47, 0x72, 0x32, 0x46, 0x65, 0x33, 0x77, + 0x36, 0x67, 0x67, 0x37, 0x44, 0x76, 0x76, 0x38, 0x74, 0x6a, + 0x4d, 0x4e, 0x39, 0x63, 0x59, 0x32, 0x7a, 0x6f, 0x6d, 0x6f, + 0x64, 0x77, 0x59, 0x67, 0x41, 0x5a, 0x47, 0x52, 0x7a, 0x6f, + 0x38, 0x72, 0x69, 0x47, 0x39, 0x2f, 0x73, 0x54, 0x6c, 0x7a, + 0x6f, 0x49, 0x0a, 0x68, 0x4f, 0x79, 0x56, 0x52, 0x2b, 0x78, + 0x4b, 0x2b, 0x4e, 0x75, 0x69, 0x48, 0x35, 0x2b, 0x52, 0x64, + 0x42, 0x34, 0x57, 0x2b, 0x78, 0x2b, 0x4b, 0x6c, 0x79, 0x59, + 0x48, 0x77, 0x70, 0x53, 0x6e, 0x35, 0x67, 0x34, 0x38, 0x33, + 0x65, 0x52, 0x38, 0x76, 0x77, 0x69, 0x62, 0x36, 0x53, 0x51, + 0x2f, 0x34, 0x31, 0x4b, 0x66, 0x4d, 0x79, 0x4a, 0x44, 0x2b, + 0x67, 0x53, 0x49, 0x73, 0x6b, 0x53, 0x36, 0x0a, 0x7a, 0x71, + 0x73, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, + 0x44, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, + 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, + }}, +}; /* - * Private-key-format: v1.2 - * Algorithm: 15 (ED25519) - * PrivateKey: ODIyNjAzODQ2MjgwODAxMjI2NDUxOTAyMDQxNDIyNjI= - * - * example.com. 3600 IN DNSKEY 256 3 15 ( - * l02Woi0iS8Aa25FQkUd9RMzZHJpBoRQwAQEX1SxZJA4= ) - * - * example.com. 3600 IN DS 3612 15 2 ( - * 3aa5ab37efce57f737fc1627013fee07bdf241bd10f3b1964ab55c78e79 - * a304b ) - * - * example.com. 3600 IN MX 10 mail.example.com. - * - * example.com. 3600 IN RRSIG MX 15 2 3600 ( - * 1440021600 1438207200 3613 example.com. ( - * oL9krJun7xfBOIWcGHi7mag5/hdZrKWw15jPGrHpjQeRAvTdszaPD+QLs3f - * x8A4M3e23mRZ9VrbpMngwcrqNAg== ) - */ +ED25519 (256b) + +ed25519. DNSKEY 256 3 15 l02Woi0iS8Aa25FQkUd9RMzZHJpBoRQwAQEX1SxZJA4= +ed25519. DS 3612 15 1 501249721E1F09A79D30D5C6C4DCA1DC1DA4ED5D +ed25519. DS 3612 15 2 1B1C8766B2A96566FF196F77C0C4194AF86AAA109C5346FF60231A27D2B07AC0 +ed25519. DS 3612 15 4 D11831153AF4985EFBD0AE792C967EB4AFF3C35488DB95F7E2F85DCEC74AE8F59F9A72641798C91C67C675DB1D710C18 + +-----BEGIN PRIVATE KEY----- +MC4CAQAwBQYDK2VwBCIEIDgyMjYwMzg0NjI4MDgwMTIyNjQ1MTkwMjA0MTQyMjYy +-----END PRIVATE KEY----- + +*/ static const key_parameters_t SAMPLE_ED25519_KEY = { .name = (uint8_t *)"\x07""ed25519", .flags = 256, .protocol = 3, .algorithm = 15, - .public_key = { .size = 32, .data = (uint8_t []) { - 0x97, 0x4d, 0x96, 0xa2, 0x2d, 0x22, 0x4b, 0xc0, 0x1a, 0xdb, 0x91, 0x50, - 0x91, 0x47, 0x7d, 0x44, 0xcc, 0xd9, 0x1c, 0x9a, 0x41, 0xa1, 0x14, 0x30, - 0x01, 0x01, 0x17, 0xd5, 0x2c, 0x59, 0x24, 0x0e, - }}, - .rdata = { .size = 36, .data = (uint8_t []) { - 0x01, 0x00, 0x03, 0x0f, - 0x97, 0x4d, 0x96, 0xa2, 0x2d, 0x22, 0x4b, 0xc0, 0x1a, 0xdb, 0x91, 0x50, - 0x91, 0x47, 0x7d, 0x44, 0xcc, 0xd9, 0x1c, 0x9a, 0x41, 0xa1, 0x14, 0x30, - 0x01, 0x01, 0x17, 0xd5, 0x2c, 0x59, 0x24, 0x0e, + .public_key = { .size = 32, .data = (uint8_t []){ + 0x97, 0x4d, 0x96, 0xa2, 0x2d, 0x22, 0x4b, 0xc0, 0x1a, 0xdb, + 0x91, 0x50, 0x91, 0x47, 0x7d, 0x44, 0xcc, 0xd9, 0x1c, 0x9a, + 0x41, 0xa1, 0x14, 0x30, 0x01, 0x01, 0x17, 0xd5, 0x2c, 0x59, + 0x24, 0x0e, }}, + .rdata = { .size = 36, .data = (uint8_t []){ + 01, 0x00, 0x03, 0x0f, + 0x97, 0x4d, 0x96, 0xa2, 0x2d, 0x22, 0x4b, 0xc0, 0x1a, 0xdb, + 0x91, 0x50, 0x91, 0x47, 0x7d, 0x44, 0xcc, 0xd9, 0x1c, 0x9a, + 0x41, 0xa1, 0x14, 0x30, 0x01, 0x01, 0x17, 0xd5, 0x2c, 0x59, + 0x24, 0x0e, + }}, + .key_id = "f34a0e533cde445fccaaa78401d496fc347d6cb6", .keytag = 3612, - .key_id = "bea75b99fb22ee1a68106ad6399e4acc43eb9929", - .ds_sha1 = { .size = 24, .data = (uint8_t []) { - 0x0e, 0x1c, 0x0f, 0x01, - 0x50, 0x12, 0x49, 0x72, 0x1e, 0x1f, 0x09, 0xa7, 0x9d, 0x30, 0xd5, 0xc6, - 0xc4, 0xdc, 0xa1, 0xdc, 0x1d, 0xa4, 0xed, 0x5d, - }}, - .ds_sha256 = { .size = 36, .data = (uint8_t []) { - 0x0e, 0x1c, 0x0f, 0x02, - 0x1b, 0x1c, 0x87, 0x66, 0xb2, 0xa9, 0x65, 0x66, 0xff, 0x19, 0x6f, 0x77, - 0xc0, 0xc4, 0x19, 0x4a, 0xf8, 0x6a, 0xaa, 0x10, 0x9c, 0x53, 0x46, 0xff, - 0x60, 0x23, 0x1a, 0x27, 0xd2, 0xb0, 0x7a, 0xc0, - }}, - .ds_sha384 = { .size = 52, .data = (uint8_t []) { - 0x0e, 0x1c, 0x0f, 0x04, - 0xd1, 0x18, 0x31, 0x15, 0x3a, 0xf4, 0x98, 0x5e, 0xfb, 0xd0, 0xae, 0x79, - 0x2c, 0x96, 0x7e, 0xb4, 0xaf, 0xf3, 0xc3, 0x54, 0x88, 0xdb, 0x95, 0xf7, - 0xe2, 0xf8, 0x5d, 0xce, 0xc7, 0x4a, 0xe8, 0xf5, 0x9f, 0x9a, 0x72, 0x64, - 0x17, 0x98, 0xc9, 0x1c, 0x67, 0xc6, 0x75, 0xdb, 0x1d, 0x71, 0x0c, 0x18, + .ds_sha1 = { .size = 24, .data = (uint8_t []){ + 0x0e, 0x1c, 0x0f, 0x01, 0x50, 0x12, 0x49, 0x72, 0x1e, 0x1f, + 0x09, 0xa7, 0x9d, 0x30, 0xd5, 0xc6, 0xc4, 0xdc, 0xa1, 0xdc, + 0x1d, 0xa4, 0xed, 0x5d, + }}, + .ds_sha256 = { .size = 36, .data = (uint8_t []){ + 0x0e, 0x1c, 0x0f, 0x02, 0x1b, 0x1c, 0x87, 0x66, 0xb2, 0xa9, + 0x65, 0x66, 0xff, 0x19, 0x6f, 0x77, 0xc0, 0xc4, 0x19, 0x4a, + 0xf8, 0x6a, 0xaa, 0x10, 0x9c, 0x53, 0x46, 0xff, 0x60, 0x23, + 0x1a, 0x27, 0xd2, 0xb0, 0x7a, 0xc0, + }}, + .ds_sha384 = { .size = 52, .data = (uint8_t []){ + 0x0e, 0x1c, 0x0f, 0x04, 0xd1, 0x18, 0x31, 0x15, 0x3a, 0xf4, + 0x98, 0x5e, 0xfb, 0xd0, 0xae, 0x79, 0x2c, 0x96, 0x7e, 0xb4, + 0xaf, 0xf3, 0xc3, 0x54, 0x88, 0xdb, 0x95, 0xf7, 0xe2, 0xf8, + 0x5d, 0xce, 0xc7, 0x4a, 0xe8, 0xf5, 0x9f, 0x9a, 0x72, 0x64, + 0x17, 0x98, 0xc9, 0x1c, 0x67, 0xc6, 0x75, 0xdb, 0x1d, 0x71, + 0x0c, 0x18, }}, .bit_size = 256, - .pem = { .size = 119, .data = (uint8_t []) { - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x50, - 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x43, 0x34, 0x43, 0x41, 0x51, 0x41, 0x77, - 0x42, 0x51, 0x59, 0x44, 0x4b, 0x32, 0x56, 0x77, 0x42, 0x43, 0x49, 0x45, - 0x49, 0x44, 0x67, 0x79, 0x4d, 0x6a, 0x59, 0x77, 0x4d, 0x7a, 0x67, 0x30, - 0x4e, 0x6a, 0x49, 0x34, 0x4d, 0x44, 0x67, 0x77, 0x4d, 0x54, 0x49, 0x79, - 0x4e, 0x6a, 0x51, 0x31, 0x4d, 0x54, 0x6b, 0x77, 0x4d, 0x6a, 0x41, 0x30, - 0x4d, 0x54, 0x51, 0x79, 0x4d, 0x6a, 0x59, 0x79, 0x0a, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, - 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a + .pem = { .size = 119, .data = (uint8_t []){ + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, + 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, + 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x43, + 0x34, 0x43, 0x41, 0x51, 0x41, 0x77, 0x42, 0x51, 0x59, 0x44, + 0x4b, 0x32, 0x56, 0x77, 0x42, 0x43, 0x49, 0x45, 0x49, 0x44, + 0x67, 0x79, 0x4d, 0x6a, 0x59, 0x77, 0x4d, 0x7a, 0x67, 0x30, + 0x4e, 0x6a, 0x49, 0x34, 0x4d, 0x44, 0x67, 0x77, 0x4d, 0x54, + 0x49, 0x79, 0x4e, 0x6a, 0x51, 0x31, 0x4d, 0x54, 0x6b, 0x77, + 0x4d, 0x6a, 0x41, 0x30, 0x4d, 0x54, 0x51, 0x79, 0x4d, 0x6a, + 0x59, 0x79, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, + 0x44, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, + 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, }}, }; - /* - * Private-key-format: v1.2 - * Algorithm: 16 (ED448) - * PrivateKey: MEcCAQAwBQYDK2VxBDsEOVsk9cLaP+mD8n97xRET5bCqCUDZpPCIkCGrXLJG - * JgXCGlz4mOxH4qva7fIhEXm/62vtdbd55WRXIA== - * - * example.com. 3600 IN DNSKEY 256 3 16 ( - * 3y0sCUZKI+DSyZQTTbgHOFppOzYz01iZQQVUWw9gCb1bLWNqqC/5qq2PL9T - * c6YaK2vHthBtaY0iA ) - * - * example.com. 3600 IN DS 28205 16 2 ( - * 7a27236ccb5193f696cdb4c5fd58af3500634bd836e6defacaac5dd4d76 - * 6dcbe ) - * - * example.com. 3600 IN MX 10 mail.example.com. - * - * example.com. 3600 IN RRSIG MX 16 2 3600 20211108134038 ( - * 20211105115718 28205 example.com. - * uzvY2twOxxSas25N1HNQPRmhVgIaOHrEm6TccvwU - * WeJkecp2Nd0om5+Em1/91cfJWc/ZCFSYBcIAUFVB - * bMKoK0SXbmY5dM6rl0wQRk+Sl8VLyNttLMn5tpFk - * c74nWRGfXebz/HALT5WTdOidgIR8HCcA ) - */ +ED448 (456b) + +ed448. DNSKEY 256 3 16 3y0sCUZKI+DSyZQTTbgHOFppOzYz01iZQQVUWw9gCb1bLWNqqC/5qq2PL9Tc6YaK2vHthBtaY0iA +ed448. DS 28205 16 1 CE1D28452326E1A03F2FE7D81D167FC8EFD9C888 +ed448. DS 28205 16 2 CD1AE915704D3B742E42924A747BC37C252B9E465E0DA1547F0D8826BA073B65 +ed448. DS 28205 16 4 F1D7572154302A965707BE8E83C300F66521DEA5239135FCB61D6CD52E4FCD04CD0A8047276F8671C31CA2B9C8561BE8 + +-----BEGIN PRIVATE KEY----- +MEcCAQAwBQYDK2VxBDsEOVsk9cLaP+mD8n97xRET5bCqCUDZpPCIkCGrXLJGJgXC +Glz4mOxH4qva7fIhEXm/62vtdbd55WRXIA== +-----END PRIVATE KEY----- + +*/ static const key_parameters_t SAMPLE_ED448_KEY = { - .name = (uint8_t *)"\x07""example""\x03""com", + .name = (uint8_t *)"\x05""ed448", .flags = 256, .protocol = 3, .algorithm = 16, - .public_key = { .size = 57, .data = (uint8_t []) { - 0xdf, 0x2d, 0x2c, 0x09, 0x46, 0x4a, 0x23, 0xe0, 0xd2, 0xc9, 0x94, 0x13, - 0x4d, 0xb8, 0x07, 0x38, 0x5a, 0x69, 0x3b, 0x36, 0x33, 0xd3, 0x58, 0x99, - 0x41, 0x05, 0x54, 0x5b, 0x0f, 0x60, 0x09, 0xbd, 0x5b, 0x2d, 0x63, 0x6a, - 0xa8, 0x2f, 0xf9, 0xaa, 0xad, 0x8f, 0x2f, 0xd4, 0xdc, 0xe9, 0x86, 0x8a, - 0xda, 0xf1, 0xed, 0x84, 0x1b, 0x5a, 0x63, 0x48, 0x80, - }}, - .rdata = { .size = 61, .data = (uint8_t []) { - 0x01, 0x00, 0x03, 0x10, - 0xdf, 0x2d, 0x2c, 0x09, 0x46, 0x4a, 0x23, 0xe0, 0xd2, 0xc9, 0x94, 0x13, - 0x4d, 0xb8, 0x07, 0x38, 0x5a, 0x69, 0x3b, 0x36, 0x33, 0xd3, 0x58, 0x99, - 0x41, 0x05, 0x54, 0x5b, 0x0f, 0x60, 0x09, 0xbd, 0x5b, 0x2d, 0x63, 0x6a, - 0xa8, 0x2f, 0xf9, 0xaa, 0xad, 0x8f, 0x2f, 0xd4, 0xdc, 0xe9, 0x86, 0x8a, - 0xda, 0xf1, 0xed, 0x84, 0x1b, 0x5a, 0x63, 0x48, 0x80, + .public_key = { .size = 57, .data = (uint8_t []){ + 0xdf, 0x2d, 0x2c, 0x09, 0x46, 0x4a, 0x23, 0xe0, 0xd2, 0xc9, + 0x94, 0x13, 0x4d, 0xb8, 0x07, 0x38, 0x5a, 0x69, 0x3b, 0x36, + 0x33, 0xd3, 0x58, 0x99, 0x41, 0x05, 0x54, 0x5b, 0x0f, 0x60, + 0x09, 0xbd, 0x5b, 0x2d, 0x63, 0x6a, 0xa8, 0x2f, 0xf9, 0xaa, + 0xad, 0x8f, 0x2f, 0xd4, 0xdc, 0xe9, 0x86, 0x8a, 0xda, 0xf1, + 0xed, 0x84, 0x1b, 0x5a, 0x63, 0x48, 0x80, + }}, + .rdata = { .size = 61, .data = (uint8_t []){ + 01, 0x00, 0x03, 0x10, + 0xdf, 0x2d, 0x2c, 0x09, 0x46, 0x4a, 0x23, 0xe0, 0xd2, 0xc9, + 0x94, 0x13, 0x4d, 0xb8, 0x07, 0x38, 0x5a, 0x69, 0x3b, 0x36, + 0x33, 0xd3, 0x58, 0x99, 0x41, 0x05, 0x54, 0x5b, 0x0f, 0x60, + 0x09, 0xbd, 0x5b, 0x2d, 0x63, 0x6a, 0xa8, 0x2f, 0xf9, 0xaa, + 0xad, 0x8f, 0x2f, 0xd4, 0xdc, 0xe9, 0x86, 0x8a, 0xda, 0xf1, + 0xed, 0x84, 0x1b, 0x5a, 0x63, 0x48, 0x80, }}, - .keytag = 28205, .key_id = "501a69b2d8ad46c721ffabaa9eaf8e7fa49c1454", - .ds_sha1 = { .size = 24, .data = (uint8_t []) { - 0x6e, 0x2d, 0x10, 0x01, - 0x69, 0xac, 0x45, 0x1c, 0xfa, 0xbb, 0xbb, 0x16, 0x5e, 0xf3, 0x82, 0x08, - 0x1f, 0xd3, 0x7e, 0x7a, 0xb4, 0xd9, 0x13, 0xbf, - }}, - .ds_sha256 = { .size = 36, .data = (uint8_t []) { - 0x6e, 0x2d, 0x10, 0x02, - 0x7a, 0x27, 0x23, 0x6c, 0xcb, 0x51, 0x93, 0xf6, 0x96, 0xcd, 0xb4, 0xc5, - 0xfd, 0x58, 0xaf, 0x35, 0x00, 0x63, 0x4b, 0xd8, 0x36, 0xe6, 0xde, 0xfa, - 0xca, 0xac, 0x5d, 0xd4, 0xd7, 0x66, 0xdc, 0xbe, - }}, - .ds_sha384 = { .size = 52, .data = (uint8_t []) { - 0x6e, 0x2d, 0x10, 0x04, - 0x6e, 0x06, 0x6f, 0xfb, 0xd5, 0xa2, 0x6c, 0xf3, 0x04, 0xa1, 0x2b, 0x76, - 0xf1, 0x83, 0xdb, 0xd3, 0x8b, 0x5e, 0x7c, 0xcb, 0x19, 0x79, 0xff, 0x3f, - 0x46, 0xee, 0xf2, 0x61, 0xf7, 0xa0, 0x48, 0x96, 0xbd, 0xe6, 0x6a, 0xe8, - 0xd0, 0x30, 0x54, 0xc8, 0x3a, 0xa1, 0x2d, 0xb3, 0x77, 0x37, 0xf1, 0xbb, + .keytag = 28205, + .ds_sha1 = { .size = 24, .data = (uint8_t []){ + 0x6e, 0x2d, 0x10, 0x01, 0xce, 0x1d, 0x28, 0x45, 0x23, 0x26, + 0xe1, 0xa0, 0x3f, 0x2f, 0xe7, 0xd8, 0x1d, 0x16, 0x7f, 0xc8, + 0xef, 0xd9, 0xc8, 0x88, + }}, + .ds_sha256 = { .size = 36, .data = (uint8_t []){ + 0x6e, 0x2d, 0x10, 0x02, 0xcd, 0x1a, 0xe9, 0x15, 0x70, 0x4d, + 0x3b, 0x74, 0x2e, 0x42, 0x92, 0x4a, 0x74, 0x7b, 0xc3, 0x7c, + 0x25, 0x2b, 0x9e, 0x46, 0x5e, 0x0d, 0xa1, 0x54, 0x7f, 0x0d, + 0x88, 0x26, 0xba, 0x07, 0x3b, 0x65, + }}, + .ds_sha384 = { .size = 52, .data = (uint8_t []){ + 0x6e, 0x2d, 0x10, 0x04, 0xf1, 0xd7, 0x57, 0x21, 0x54, 0x30, + 0x2a, 0x96, 0x57, 0x07, 0xbe, 0x8e, 0x83, 0xc3, 0x00, 0xf6, + 0x65, 0x21, 0xde, 0xa5, 0x23, 0x91, 0x35, 0xfc, 0xb6, 0x1d, + 0x6c, 0xd5, 0x2e, 0x4f, 0xcd, 0x04, 0xcd, 0x0a, 0x80, 0x47, + 0x27, 0x6f, 0x86, 0x71, 0xc3, 0x1c, 0xa2, 0xb9, 0xc8, 0x56, + 0x1b, 0xe8, }}, .bit_size = 456, - .pem = { .size = 156, .data = (uint8_t []) { - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x50, - 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x45, 0x63, 0x43, 0x41, 0x51, 0x41, 0x77, - 0x42, 0x51, 0x59, 0x44, 0x4b, 0x32, 0x56, 0x78, 0x42, 0x44, 0x73, 0x45, - 0x4f, 0x56, 0x73, 0x6b, 0x39, 0x63, 0x4c, 0x61, 0x50, 0x2b, 0x6d, 0x44, - 0x38, 0x6e, 0x39, 0x37, 0x78, 0x52, 0x45, 0x54, 0x35, 0x62, 0x43, 0x71, - 0x43, 0x55, 0x44, 0x5a, 0x70, 0x50, 0x43, 0x49, 0x6b, 0x43, 0x47, 0x72, - 0x58, 0x4c, 0x4a, 0x47, 0x4a, 0x67, 0x58, 0x43, 0x0a, 0x47, 0x6c, 0x7a, - 0x34, 0x6d, 0x4f, 0x78, 0x48, 0x34, 0x71, 0x76, 0x61, 0x37, 0x66, 0x49, - 0x68, 0x45, 0x58, 0x6d, 0x2f, 0x36, 0x32, 0x76, 0x74, 0x64, 0x62, 0x64, - 0x35, 0x35, 0x57, 0x52, 0x58, 0x49, 0x41, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, - 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a - }}, - /* raw private key outside of PEM: - * - * 0x5b, 0x24, 0xf5, 0xc2, 0xda, 0x3f, 0xe9, 0x83, 0xf2, 0x7f, 0x7b, 0xc5, - * 0x11, 0x13, 0xe5, 0xb0, 0xaa, 0x09, 0x40, 0xd9, 0xa4, 0xf0, 0x88, 0x90, - * 0x21, 0xab, 0x5c, 0xb2, 0x46, 0x26, 0x05, 0xc2, 0x1a, 0x5c, 0xf8, 0x98, - * 0xec, 0x47, 0xe2, 0xab, 0xda, 0xed, 0xf2, 0x21, 0x11, 0x79, 0xbf, 0xeb, - * 0x6b, 0xed, 0x75, 0xb7, 0x79, 0xe5, 0x64, 0x57, 0x20, - * - */ + .pem = { .size = 156, .data = (uint8_t []){ + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, + 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, + 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x45, + 0x63, 0x43, 0x41, 0x51, 0x41, 0x77, 0x42, 0x51, 0x59, 0x44, + 0x4b, 0x32, 0x56, 0x78, 0x42, 0x44, 0x73, 0x45, 0x4f, 0x56, + 0x73, 0x6b, 0x39, 0x63, 0x4c, 0x61, 0x50, 0x2b, 0x6d, 0x44, + 0x38, 0x6e, 0x39, 0x37, 0x78, 0x52, 0x45, 0x54, 0x35, 0x62, + 0x43, 0x71, 0x43, 0x55, 0x44, 0x5a, 0x70, 0x50, 0x43, 0x49, + 0x6b, 0x43, 0x47, 0x72, 0x58, 0x4c, 0x4a, 0x47, 0x4a, 0x67, + 0x58, 0x43, 0x0a, 0x47, 0x6c, 0x7a, 0x34, 0x6d, 0x4f, 0x78, + 0x48, 0x34, 0x71, 0x76, 0x61, 0x37, 0x66, 0x49, 0x68, 0x45, + 0x58, 0x6d, 0x2f, 0x36, 0x32, 0x76, 0x74, 0x64, 0x62, 0x64, + 0x35, 0x35, 0x57, 0x52, 0x58, 0x49, 0x41, 0x3d, 0x3d, 0x0a, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x50, + 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, + }}, }; diff --git a/src/utils/keymgr/keystore.c b/src/utils/keymgr/keystore.c index f81154bd73..2984a9c03d 100644 --- a/src/utils/keymgr/keystore.c +++ b/src/utils/keymgr/keystore.c @@ -9,6 +9,7 @@ #include "contrib/color.h" #include "contrib/spinlock.h" +#include "contrib/string.h" #include "contrib/time.h" #include "libknot/libknot.h" #include "libknot/dnssec/sample_keys.h" @@ -19,13 +20,19 @@ #define DFLT_ID "-" -#define TEST_FORMAT "%-18s %9s %9s %9s %9s\n" -#define BENCH_FORMAT "%-18s %9" +#define TEST_FORMAT "%-20s %9s %9s %9s %9s\n" +#define BENCH_FORMAT "%-20s %9" #define BENCH_TIME 3000 static const key_parameters_t *KEYS[] = { - &SAMPLE_RSA_KEY, - &SAMPLE_ECDSA_KEY, + &SAMPLE_RSA1024_SHA256_KEY, + &SAMPLE_RSA2048_SHA256_KEY, + &SAMPLE_RSA4096_SHA256_KEY, + &SAMPLE_RSA1024_SHA512_KEY, + &SAMPLE_RSA2048_SHA512_KEY, + &SAMPLE_RSA4096_SHA512_KEY, + &SAMPLE_ECDSA_P256_SHA256_KEY, + &SAMPLE_ECDSA_P384_SHA384_KEY, &SAMPLE_ED25519_KEY, &SAMPLE_ED448_KEY, }; @@ -171,13 +178,17 @@ static void test_algorithm(dnssec_keystore_t *store, const knot_lookup_t *alg_info = knot_lookup_by_id(knot_dnssec_alg_names, params->algorithm); assert(alg_info); + char *name_keysz = sprintf_alloc("%s %db", alg_info->name, params->bit_size); + assert(name_keysz); printf(TEST_FORMAT, - alg_info->name, + name_keysz, res.generate ? "yes" : "no", res.import ? "yes" : "no", res.remove ? "yes" : "no", res.use ? "yes" : "no"); + + free(name_keysz); } static int init_keystore(dnssec_keystore_t **store, const char *keystore_id, @@ -366,13 +377,16 @@ int keymgr_keystore_bench(const char *keystore_id, keymgr_list_params_t *params, const knot_lookup_t *alg_info = knot_lookup_by_id( knot_dnssec_alg_names, KEYS[i]->algorithm); assert(alg_info); + char *name_keysz = sprintf_alloc("%s %db", alg_info->name, KEYS[i]->bit_size); + assert(name_keysz); const unsigned result = (unsigned)result_f; if (result > 0) { - printf(BENCH_FORMAT"u\n", alg_info->name, result); + printf(BENCH_FORMAT"u\n", name_keysz, result); } else { - printf(BENCH_FORMAT"s\n", alg_info->name, "n/a"); + printf(BENCH_FORMAT"s\n", name_keysz, "n/a"); } + free(name_keysz); } dnssec_keystore_deinit(store); diff --git a/tests/libknot/test_dnssec_key.c b/tests/libknot/test_dnssec_key.c index cec804c844..597707bef5 100644 --- a/tests/libknot/test_dnssec_key.c +++ b/tests/libknot/test_dnssec_key.c @@ -178,8 +178,8 @@ int main(void) dnssec_crypto_init(); static const keyinfo_t keys[] = { - { "RSA", &SAMPLE_RSA_KEY }, - { "ECDSA", &SAMPLE_ECDSA_KEY }, + { "RSA", &SAMPLE_RSA1024_SHA256_KEY }, + { "ECDSA", &SAMPLE_ECDSA_P256_SHA256_KEY }, { "ED25519", &SAMPLE_ED25519_KEY }, #ifdef HAVE_ED448 { "ED448", &SAMPLE_ED448_KEY }, diff --git a/tests/libknot/test_dnssec_key_ds.c b/tests/libknot/test_dnssec_key_ds.c index afd25e1146..7d24b6a3bd 100644 --- a/tests/libknot/test_dnssec_key_ds.c +++ b/tests/libknot/test_dnssec_key_ds.c @@ -88,14 +88,14 @@ int main(int argc, char *argv[]) dnssec_crypto_init(); - test_key("RSA", &SAMPLE_RSA_KEY); - test_key("ECDSA", &SAMPLE_ECDSA_KEY); + test_key("RSA", &SAMPLE_RSA1024_SHA256_KEY); + test_key("ECDSA", &SAMPLE_ECDSA_P256_SHA256_KEY); test_key("ED25519", &SAMPLE_ED25519_KEY); #ifdef HAVE_ED448 test_key("ED448", &SAMPLE_ED448_KEY); #endif - test_errors(&SAMPLE_ECDSA_KEY); + test_errors(&SAMPLE_ECDSA_P256_SHA256_KEY); test_errors(&SAMPLE_ED25519_KEY); #ifdef HAVE_ED448 test_errors(&SAMPLE_ED448_KEY); diff --git a/tests/libknot/test_dnssec_keystore_pkcs11.c b/tests/libknot/test_dnssec_keystore_pkcs11.c index b68082acc6..d7e4b0adcb 100644 --- a/tests/libknot/test_dnssec_keystore_pkcs11.c +++ b/tests/libknot/test_dnssec_keystore_pkcs11.c @@ -389,8 +389,8 @@ int main(int argc, char *argv[]) static const int KEYS_COUNT = 2; static const key_parameters_t *KEYS[] = { - &SAMPLE_RSA_KEY, - &SAMPLE_ECDSA_KEY, + &SAMPLE_RSA1024_SHA256_KEY, + &SAMPLE_ECDSA_P256_SHA256_KEY, }; assert(KEYS_COUNT == sizeof(KEYS) / sizeof(*KEYS)); diff --git a/tests/libknot/test_dnssec_sign.c b/tests/libknot/test_dnssec_sign.c index be60d54a72..acb0e9c164 100644 --- a/tests/libknot/test_dnssec_sign.c +++ b/tests/libknot/test_dnssec_sign.c @@ -172,9 +172,9 @@ int main(void) dnssec_crypto_init(); diag("RSA signing"); - check_key(&SAMPLE_RSA_KEY, &input_data, &signed_rsa, true); + check_key(&SAMPLE_RSA1024_SHA256_KEY, &input_data, &signed_rsa, true); diag("ECDSA signing"); - check_key(&SAMPLE_ECDSA_KEY, &input_data, &signed_ecdsa, false); + check_key(&SAMPLE_ECDSA_P256_SHA256_KEY, &input_data, &signed_ecdsa, false); diag("ED25519 signing"); check_key(&SAMPLE_ED25519_KEY, &input_data, &signed_ed25519, true); #ifdef HAVE_ED448 From f59721e8fcc7afda8e1176792966b5f0f156115f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Thu, 27 Nov 2025 20:52:53 +0100 Subject: [PATCH 263/675] doc/appendices: add Luna Cloud HSM --- doc/appendices.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/appendices.rst b/doc/appendices.rst index 98c5c62495..d684eccd89 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -84,6 +84,16 @@ support. | 2048 | 4096 - 2018-09 + * - `Luna Cloud HSM `_ + - yes + - no + - n/a + - | 256 + | 384 + - | 1024 + | 2048 + | 4096 + - 2025-11 .. in progress: key ID checks have to be disabled in code * - `Yubikey NEO `_ From dba8b00194ea64d352c9fe3c6ee17f201307b5fc Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 2 Dec 2025 11:56:17 +0100 Subject: [PATCH 264/675] redis: don't require GnuTLS for module building closes !1809 --- configure.ac | 2 ++ src/libknot/rrset-dump.c | 1 - src/redis/libs.h | 7 ++++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 1c0ee162bd..8e12bfed38 100644 --- a/configure.ac +++ b/configure.ac @@ -167,6 +167,8 @@ PKG_CHECK_MODULES([gnutls], [gnutls >= 3.6.10], [ CFLAGS=$save_CFLAGS LIBS=$save_LIBS +], [ + AS_IF([test "$enable_redis" != "module"], [AC_MSG_ERROR([GnuTLS library not found])]) ]) AM_CONDITIONAL([ENABLE_PKCS11], [test "$enable_pkcs11" = "yes"]) diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c index 14f621a544..c410882394 100644 --- a/src/libknot/rrset-dump.c +++ b/src/libknot/rrset-dump.c @@ -14,7 +14,6 @@ #include #include -#include "libknot/dnssec/binary.h" #include "libknot/dnssec/key.h" #include "libknot/dnssec/keytag.h" #include "libknot/attribute.h" diff --git a/src/redis/libs.h b/src/redis/libs.h index a42e9a56db..c6ef6ea45c 100644 --- a/src/redis/libs.h +++ b/src/redis/libs.h @@ -19,7 +19,6 @@ #include "contrib/string.c" #include "contrib/time.c" #include "contrib/ucw/mempool.c" -#include "libknot/dnssec/key/keytag.c" #include "libknot/codes.c" #include "libknot/descriptor.c" #include "libknot/dname.c" @@ -33,3 +32,9 @@ #include "libzscanner/error.c" #include "libzscanner/functions.c" #include "libzscanner/scanner.c.t0" + +// Add a dummy symbol for unused but called function in rrset-dump.c. +int dnssec_keytag(const dnssec_binary_t *rdata, uint16_t *keytag) +{ + return KNOT_ENOTSUP; +} From 957192456175f84375bd4337d0e44ee4bc916bc1 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 3 Dec 2025 17:54:58 +0100 Subject: [PATCH 265/675] tests: add case for interpret-generate feature --- .../tests/catalog/chain/data/cataloged1.zone | 6 ++ .../tests/catalog/chain/data/cataloged2.zone | 6 ++ tests-extra/tests/catalog/chain/test.py | 69 +++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 tests-extra/tests/catalog/chain/data/cataloged1.zone create mode 100644 tests-extra/tests/catalog/chain/data/cataloged2.zone create mode 100644 tests-extra/tests/catalog/chain/test.py diff --git a/tests-extra/tests/catalog/chain/data/cataloged1.zone b/tests-extra/tests/catalog/chain/data/cataloged1.zone new file mode 100644 index 0000000000..67031c7144 --- /dev/null +++ b/tests-extra/tests/catalog/chain/data/cataloged1.zone @@ -0,0 +1,6 @@ +$ORIGIN cataloged1. +$TTL 1200 + +@ SOA ns admin 10001 25 25 80 600 + NS ns +ns AAAA ::0 diff --git a/tests-extra/tests/catalog/chain/data/cataloged2.zone b/tests-extra/tests/catalog/chain/data/cataloged2.zone new file mode 100644 index 0000000000..29aea7fddf --- /dev/null +++ b/tests-extra/tests/catalog/chain/data/cataloged2.zone @@ -0,0 +1,6 @@ +$ORIGIN cataloged2. +$TTL 1200 + +@ SOA ns admin 1 25 25 80 600 + NS ns +ns AAAA ::0 diff --git a/tests-extra/tests/catalog/chain/test.py b/tests-extra/tests/catalog/chain/test.py new file mode 100644 index 0000000000..3b0db69180 --- /dev/null +++ b/tests-extra/tests/catalog/chain/test.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python3 + +'''Test of chained catalog interpreter and generator.''' + +from dnstest.utils import * +from dnstest.test import Test +import glob +import random +import shutil + +t = Test(stress=False) + +master = t.server("knot") +slave = t.server("knot") + +os.mkdir(slave.dir + "/catalog") +for zf in glob.glob(t.data_dir + "/*.zone"): + shutil.copy(zf, slave.dir + "/catalog") + +catz = t.zone("example.") + t.zone("example.com.") + +t.link([ catz[0] ], master) +t.link([ catz[1] ], master, slave) + +for z in master.zones.values(): + z.zfile.append_rndTXT("version", rdata="2") + +master.cat_interpret(catz[0]) +master.cat_generate(catz[1]) +slave.cat_interpret(catz[1]) + +t.start() + +# set master to generate catalog into catz[1] from members of catz[0] +confsock = master.ctl_sock_rnd() +master.ctl("conf-begin", custom_parm=confsock) +master.ctl("conf-set template[catalog-default].catalog-role member", custom_parm=confsock) +master.ctl("conf-set template[catalog-default].catalog-zone %s" % catz[1].name, custom_parm=confsock) +master.ctl("conf-commit", custom_parm=confsock) + +# add first member +up = master.update(catz[0]) +up.add("uniq1.zones", 3600, "PTR", "cataloged1.") +up.send() +t.sleep(4) +resp = slave.dig("cataloged1.", "NS") +resp.check(rcode="NOERROR", rdata="ns.cataloged1.") + +# add second member +up = master.update(catz[0]) +up.add("uniq2.zones", 3600, "PTR", "cataloged2.") +up.send() +t.sleep(4) +resp = slave.dig("cataloged2.", "NS") +resp.check(rcode="NOERROR", rdata="ns.cataloged2.") + +# remove first member +up = master.update(catz[0]) +up.delete("uniq1.zones", "PTR") +up.send() +t.sleep(4) +resp = slave.dig("cataloged1.", "NS") +resp.check(rcode="REFUSED", nordata="ns.cataloged1.") +resp = slave.dig("cataloged2.", "NS") +resp.check(rcode="NOERROR", rdata="ns.cataloged2.") +resp = master.dig("cataloged2.", "NS") +resp.check(rcode="SERVFAIL") + +t.end() From ef96941354f2d7db831a3bba2e50cc77b136b619 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 3 Dec 2025 15:19:10 +0100 Subject: [PATCH 266/675] zone: add missing checks for empty zone to flush --- src/knot/zone/skip.c | 4 ++++ src/knot/zone/zone.c | 4 ++++ tests-extra/tests/zone/skip/test.py | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/src/knot/zone/skip.c b/src/knot/zone/skip.c index 3593c361f7..49b84ae60c 100644 --- a/src/knot/zone/skip.c +++ b/src/knot/zone/skip.c @@ -98,6 +98,10 @@ int zone_skip_from_conf(zone_skip_t *skip, conf_val_t *val) int zonefile_write_skip(const char *path, struct zone_contents *zone, conf_t *conf) { + if (zone == NULL) { + return KNOT_EEMPTYZONE; + } + conf_val_t skip_val = conf_zone_get(conf, C_ZONEFILE_SKIP, zone->apex->owner); zone_skip_t skip = { 0 }; int ret = zone_skip_from_conf(&skip, &skip_val); diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 82b1ef3cb0..dac0dac1f6 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -889,6 +889,10 @@ int zone_dump_to_dir(conf_t *conf, zone_t *zone, const char *dir) return KNOT_EINVAL; } + if (zone->contents == NULL) { + return KNOT_EEMPTYZONE; + } + size_t dir_len = strlen(dir); if (dir_len == 0) { return KNOT_EINVAL; diff --git a/tests-extra/tests/zone/skip/test.py b/tests-extra/tests/zone/skip/test.py index df3d9cb96c..ab9819c78a 100644 --- a/tests-extra/tests/zone/skip/test.py +++ b/tests-extra/tests/zone/skip/test.py @@ -86,4 +86,12 @@ resp = server.dig("zf.example.com.", "AAAA", dnssec=True) resp.check_count(1, "AAAA") +server.ctl("-f zone-purge +expire example.com.") +t.sleep(1) +try: + server.ctl("zone-flush +outdir " + server.data_dir, wait=True) +except: + pass # just checking that server does not crash, below: +server.ctl("zone-status") + t.end() From ea38761cbd188b8f82b1e7899b5b839804870b47 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 3 Dec 2025 16:00:04 +0100 Subject: [PATCH 267/675] load: add missing catalog update cleanup if error --- src/knot/catalog/catalog_update.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/knot/catalog/catalog_update.c b/src/knot/catalog/catalog_update.c index e48f8089e8..7c07533d73 100644 --- a/src/knot/catalog/catalog_update.c +++ b/src/knot/catalog/catalog_update.c @@ -70,6 +70,7 @@ void catalog_update_deinit(catalog_update_t *u) void catalog_update_free(catalog_update_t *u) { if (u != NULL) { + catalog_update_clear(u); catalog_update_deinit(u); free(u); } From 44df9fed496540666df3f2369e087d4b7450990a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Thu, 4 Dec 2025 11:29:35 +0100 Subject: [PATCH 268/675] kdig/dnstap: mitigate segfault --- src/utils/kdig/kdig_exec.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/utils/kdig/kdig_exec.c b/src/utils/kdig/kdig_exec.c index 4a47c4f099..ab14acbffd 100644 --- a/src/utils/kdig/kdig_exec.c +++ b/src/utils/kdig/kdig_exec.c @@ -899,6 +899,8 @@ static int process_query(const query_t *query, net_t *net) &query->style); // If error try next resolved address. if (ret != 0) { + free(net->local_info); + net->local_info = NULL; net->srv = net->srv->ai_next; if (net->srv != NULL && query->style.show_query) { printf("\n"); From af928b5b87329360306fc6d7975afd1639a4bd25 Mon Sep 17 00:00:00 2001 From: Nicolas PARLANT Date: Thu, 4 Dec 2025 15:26:13 +0100 Subject: [PATCH 269/675] remove automagic for PKCS #11 support add a option pkcs11 to handle this Signed-off-by: Nicolas PARLANT --- configure.ac | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 8e12bfed38..85ec79cef8 100644 --- a/configure.ac +++ b/configure.ac @@ -151,9 +151,9 @@ PKG_CHECK_MODULES([gnutls], [gnutls >= 3.6.10], [ CFLAGS="$CFLAGS $gnutls_CFLAGS" LIBS="$LIBS $gnutls_LIBS" - AC_CHECK_FUNC([gnutls_pkcs11_copy_pubkey], [enable_pkcs11=yes], [enable_pkcs11=no]) - AS_IF([test "$enable_pkcs11" = yes], - [AC_DEFINE([ENABLE_PKCS11], [1], [PKCS #11 support available])]) + AC_CHECK_FUNC([gnutls_pkcs11_copy_pubkey], + [AC_DEFINE([HAVE_GNUTLS_PKCS11], [1], [gnutls_pkcs11_copy_pubkey available]) + gnutls_pkcs11=yes], [gnutls_pkcs11=no]) AC_CHECK_DECL([GNUTLS_SIGN_EDDSA_ED448], [AC_DEFINE([HAVE_ED448], [1], [GnuTLS ED448 support available]) @@ -170,7 +170,21 @@ PKG_CHECK_MODULES([gnutls], [gnutls >= 3.6.10], [ ], [ AS_IF([test "$enable_redis" != "module"], [AC_MSG_ERROR([GnuTLS library not found])]) ]) +# PKCS11 support +AC_ARG_ENABLE([pkcs11], + AS_HELP_STRING([--enable-pkcs11=auto|yes|no], [Support PKCS #11 [default=auto]]), + [], [enable_pkcs11=auto]) + +AS_CASE([$enable_pkcs11], + [auto], [AS_IF([test "$gnutls_pkcs11" = "yes"], [enable_pkcs11=yes], [enable_pkcs11=no])], + [yes], [AS_IF([test "$gnutls_pkcs11" = "yes"], [enable_pkcs11=yes], [ + AC_MSG_ERROR([PKCS11 not available])])], + [no], [], + [*], [AC_MSG_ERROR([Invalid value of --enable-pkcs11.])] +) AM_CONDITIONAL([ENABLE_PKCS11], [test "$enable_pkcs11" = "yes"]) +AS_IF([test "$enable_pkcs11" != "no"], [ + AC_DEFINE([ENABLE_PKCS11], [1], [Define to 1 to enable PKCS #11 support using GnuTLS])]) AC_ARG_ENABLE([recvmmsg], AS_HELP_STRING([--enable-recvmmsg=auto|yes|no], [enable recvmmsg() network API [default=auto]]), From 227314cc94085d7f5095cafbd1c605dd9539d763 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 5 Dec 2025 09:19:44 +0100 Subject: [PATCH 270/675] configure: increase minimum required GnuTLS version to 3.6.12 --- configure.ac | 2 +- doc/requirements.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 85ec79cef8..d97950e905 100644 --- a/configure.ac +++ b/configure.ac @@ -145,7 +145,7 @@ AC_ARG_ENABLE([fastparser], AM_CONDITIONAL([FAST_PARSER], [test "$enable_fastparser" = "yes"]) # GnuTLS crypto backend -PKG_CHECK_MODULES([gnutls], [gnutls >= 3.6.10], [ +PKG_CHECK_MODULES([gnutls], [gnutls >= 3.6.12], [ save_CFLAGS=$CFLAGS save_LIBS=$LIBS CFLAGS="$CFLAGS $gnutls_CFLAGS" diff --git a/doc/requirements.rst b/doc/requirements.rst index e495f667f6..de61391649 100644 --- a/doc/requirements.rst +++ b/doc/requirements.rst @@ -60,7 +60,7 @@ Required libraries Knot DNS requires a few libraries to be available: -* gnutls >= 3.6.10 +* gnutls >= 3.6.12 * libedit * liburcu * lmdb >= 0.9.15 From 67b3f17c1f75bb3507f42306b7bbea8a56544756 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 5 Dec 2025 09:28:09 +0100 Subject: [PATCH 271/675] libknot: ED488 is mandatory since GnuTLS 3.6.12 --- configure.ac | 7 ------- doc/reference.rst | 3 --- src/knot/conf/schema.c | 2 -- src/libknot/dnssec/key/algorithm.c | 2 -- src/libknot/dnssec/key/convert.c | 8 -------- src/libknot/dnssec/sign/sign.c | 2 -- src/utils/keymgr/bind_privkey.c | 4 ---- tests/libknot/test_dnssec_key.c | 2 -- tests/libknot/test_dnssec_key_algorithm.c | 5 +---- tests/libknot/test_dnssec_key_ds.c | 4 ---- tests/libknot/test_dnssec_sign.c | 4 ---- 11 files changed, 1 insertion(+), 42 deletions(-) diff --git a/configure.ac b/configure.ac index d97950e905..41e9354914 100644 --- a/configure.ac +++ b/configure.ac @@ -155,12 +155,6 @@ PKG_CHECK_MODULES([gnutls], [gnutls >= 3.6.12], [ [AC_DEFINE([HAVE_GNUTLS_PKCS11], [1], [gnutls_pkcs11_copy_pubkey available]) gnutls_pkcs11=yes], [gnutls_pkcs11=no]) - AC_CHECK_DECL([GNUTLS_SIGN_EDDSA_ED448], - [AC_DEFINE([HAVE_ED448], [1], [GnuTLS ED448 support available]) - enable_ed448=yes], - [enable_ed448=no], - [#include ]) - AC_CHECK_FUNC([gnutls_early_cipher_get], [AC_DEFINE([HAVE_GNUTLS_QUIC], [1], [gnutls_early_cipher_get available]) gnutls_quic=yes], [gnutls_quic=no]) @@ -840,7 +834,6 @@ result_msg_base=" D-Bus support: ${enable_dbus} POSIX capabilities: ${enable_cap_ng} PKCS #11 support: ${enable_pkcs11} - Ed448 support: ${enable_ed448} Code coverage: ${enable_code_coverage} Sanitizer: ${with_sanitizer} diff --git a/doc/reference.rst b/doc/reference.rst index 317c0474b6..b34a2fc2cc 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2197,9 +2197,6 @@ Possible values: - ``ed25519`` - ``ed448`` -.. NOTE:: - Ed448 algorithm is only available if compiled with GnuTLS 3.6.12+ and Nettle 3.6+. - *Default:* ``ecdsap256sha256`` .. _policy_ksk-size: diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index a0d52cfb1e..d8d69b8eef 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -54,9 +54,7 @@ static const knot_lookup_t dnssec_key_algs[] = { { DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256, "ecdsap256sha256" }, { DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384, "ecdsap384sha384" }, { DNSSEC_KEY_ALGORITHM_ED25519, "ed25519" }, -#ifdef HAVE_ED448 { DNSSEC_KEY_ALGORITHM_ED448, "ed448" }, -#endif { 0, NULL } }; diff --git a/src/libknot/dnssec/key/algorithm.c b/src/libknot/dnssec/key/algorithm.c index 78b7d36281..8a352d21bf 100644 --- a/src/libknot/dnssec/key/algorithm.c +++ b/src/libknot/dnssec/key/algorithm.c @@ -85,10 +85,8 @@ gnutls_pk_algorithm_t algorithm_to_gnutls(dnssec_key_algorithm_t dnssec) return GNUTLS_PK_ECDSA; case DNSSEC_KEY_ALGORITHM_ED25519: return GNUTLS_PK_EDDSA_ED25519; -#ifdef HAVE_ED448 case DNSSEC_KEY_ALGORITHM_ED448: return GNUTLS_PK_EDDSA_ED448; -#endif default: return GNUTLS_PK_UNKNOWN; } diff --git a/src/libknot/dnssec/key/convert.c b/src/libknot/dnssec/key/convert.c index f541bad7aa..278e40581b 100644 --- a/src/libknot/dnssec/key/convert.c +++ b/src/libknot/dnssec/key/convert.c @@ -97,9 +97,7 @@ static size_t eddsa_curve_point_size(gnutls_ecc_curve_t curve) { switch (curve) { case GNUTLS_ECC_CURVE_ED25519: return 32; -#ifdef HAVE_ED448 case GNUTLS_ECC_CURVE_ED448: return 57; -#endif default: return 0; } } @@ -235,9 +233,7 @@ static gnutls_ecc_curve_t eddsa_curve_from_rdata_size(size_t rdata_size) { switch (rdata_size) { case 32: return GNUTLS_ECC_CURVE_ED25519; -#ifdef HAVE_ED448 case 57: return GNUTLS_ECC_CURVE_ED448; -#endif default: return GNUTLS_ECC_CURVE_INVALID; } } @@ -318,9 +314,7 @@ int convert_pubkey_to_dnskey(gnutls_pubkey_t key, dnssec_binary_t *rdata) case GNUTLS_PK_RSA: return rsa_pubkey_to_rdata(key, rdata); case GNUTLS_PK_ECDSA: return ecdsa_pubkey_to_rdata(key, rdata); case GNUTLS_PK_EDDSA_ED25519: return eddsa_pubkey_to_rdata(key, rdata); -#ifdef HAVE_ED448 case GNUTLS_PK_EDDSA_ED448: return eddsa_pubkey_to_rdata(key, rdata); -#endif default: return KNOT_INVALID_KEY_ALGORITHM; } } @@ -340,9 +334,7 @@ int convert_dnskey_to_pubkey(uint8_t algorithm, const dnssec_binary_t *rdata, case GNUTLS_PK_RSA: return rsa_rdata_to_pubkey(rdata, key); case GNUTLS_PK_ECDSA: return ecdsa_rdata_to_pubkey(rdata, key); case GNUTLS_PK_EDDSA_ED25519: return eddsa_rdata_to_pubkey(rdata, key); -#ifdef HAVE_ED448 case GNUTLS_PK_EDDSA_ED448: return eddsa_rdata_to_pubkey(rdata, key); -#endif default: return KNOT_INVALID_KEY_ALGORITHM; } } diff --git a/src/libknot/dnssec/sign/sign.c b/src/libknot/dnssec/sign/sign.c index 241b31d0d6..3a8497d0a4 100644 --- a/src/libknot/dnssec/sign/sign.c +++ b/src/libknot/dnssec/sign/sign.c @@ -207,10 +207,8 @@ static gnutls_sign_algorithm_t algo_dnssec2gnutls(dnssec_key_algorithm_t algorit return GNUTLS_SIGN_ECDSA_SHA384; case DNSSEC_KEY_ALGORITHM_ED25519: return GNUTLS_SIGN_EDDSA_ED25519; -#ifdef HAVE_ED448 case DNSSEC_KEY_ALGORITHM_ED448: return GNUTLS_SIGN_EDDSA_ED448; -#endif default: return GNUTLS_SIGN_UNKNOWN; } diff --git a/src/utils/keymgr/bind_privkey.c b/src/utils/keymgr/bind_privkey.c index b8ca431844..61131632d8 100644 --- a/src/utils/keymgr/bind_privkey.c +++ b/src/utils/keymgr/bind_privkey.c @@ -270,9 +270,7 @@ static gnutls_ecc_curve_t choose_ecdsa_curve(size_t pubkey_size) { switch (pubkey_size) { case 32: return GNUTLS_ECC_CURVE_ED25519; -#ifdef HAVE_ED448 case 57: return GNUTLS_ECC_CURVE_ED448; -#endif case 64: return GNUTLS_ECC_CURVE_SECP256R1; case 96: return GNUTLS_ECC_CURVE_SECP384R1; default: return GNUTLS_ECC_CURVE_INVALID; @@ -370,9 +368,7 @@ int bind_privkey_to_pem(dnssec_key_t *key, bind_privkey_t *params, dnssec_binary case DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384: return ecdsa_params_to_pem(key, params, pem); case DNSSEC_KEY_ALGORITHM_ED25519: -#ifdef HAVE_ED448 case DNSSEC_KEY_ALGORITHM_ED448: -#endif return eddsa_params_to_pem(key, params, pem); default: return KNOT_INVALID_KEY_ALGORITHM; diff --git a/tests/libknot/test_dnssec_key.c b/tests/libknot/test_dnssec_key.c index 597707bef5..761912efd1 100644 --- a/tests/libknot/test_dnssec_key.c +++ b/tests/libknot/test_dnssec_key.c @@ -181,9 +181,7 @@ int main(void) { "RSA", &SAMPLE_RSA1024_SHA256_KEY }, { "ECDSA", &SAMPLE_ECDSA_P256_SHA256_KEY }, { "ED25519", &SAMPLE_ED25519_KEY }, -#ifdef HAVE_ED448 { "ED448", &SAMPLE_ED448_KEY }, -#endif { NULL } }; diff --git a/tests/libknot/test_dnssec_key_algorithm.c b/tests/libknot/test_dnssec_key_algorithm.c index 68e3b000f7..b99b2354fe 100644 --- a/tests/libknot/test_dnssec_key_algorithm.c +++ b/tests/libknot/test_dnssec_key_algorithm.c @@ -49,9 +49,7 @@ static void check_defaults(void) is_int(2048, dnssec_algorithm_key_size_default(DNSSEC_KEY_ALGORITHM_RSA_SHA1_NSEC3), "rsa default"); is_int(256, dnssec_algorithm_key_size_default(DNSSEC_KEY_ALGORITHM_ECDSA_P256_SHA256), "ecc default"); is_int(256, dnssec_algorithm_key_size_default(DNSSEC_KEY_ALGORITHM_ED25519), "ed25519 default"); -#ifdef HAVE_ED448 is_int(456, dnssec_algorithm_key_size_default(DNSSEC_KEY_ALGORITHM_ED448), "ed448 default"); -#endif } int main(void) @@ -62,9 +60,8 @@ int main(void) ok_range(DNSSEC_KEY_ALGORITHM_RSA_SHA512, 1024, 4096, "RSA/SHA256"); ok_range(DNSSEC_KEY_ALGORITHM_ECDSA_P384_SHA384, 384, 384, "ECDSA/SHA384"); ok_range(DNSSEC_KEY_ALGORITHM_ED25519, 256, 256, "ED25519"); -#ifdef HAVE_ED448 ok_range(DNSSEC_KEY_ALGORITHM_ED448, 456, 456, "ED448"); -#endif + null_range(); check_borders(); diff --git a/tests/libknot/test_dnssec_key_ds.c b/tests/libknot/test_dnssec_key_ds.c index 7d24b6a3bd..8ccba7ea65 100644 --- a/tests/libknot/test_dnssec_key_ds.c +++ b/tests/libknot/test_dnssec_key_ds.c @@ -91,15 +91,11 @@ int main(int argc, char *argv[]) test_key("RSA", &SAMPLE_RSA1024_SHA256_KEY); test_key("ECDSA", &SAMPLE_ECDSA_P256_SHA256_KEY); test_key("ED25519", &SAMPLE_ED25519_KEY); -#ifdef HAVE_ED448 test_key("ED448", &SAMPLE_ED448_KEY); -#endif test_errors(&SAMPLE_ECDSA_P256_SHA256_KEY); test_errors(&SAMPLE_ED25519_KEY); -#ifdef HAVE_ED448 test_errors(&SAMPLE_ED448_KEY); -#endif dnssec_crypto_cleanup(); diff --git a/tests/libknot/test_dnssec_sign.c b/tests/libknot/test_dnssec_sign.c index acb0e9c164..40b3d87b06 100644 --- a/tests/libknot/test_dnssec_sign.c +++ b/tests/libknot/test_dnssec_sign.c @@ -57,7 +57,6 @@ static const dnssec_binary_t signed_ed25519 = { .size = 64, .data = (uint8_t []) 0x70, 0x34, 0x5e, 0x02, 0x49, 0xfb, 0x9e, 0x05, }}; -#ifdef HAVE_ED448 static const dnssec_binary_t signed_ed448 = { .size = 114, .data = (uint8_t []) { 0x8d, 0x79, 0x27, 0xbd, 0xe2, 0xc4, 0x23, 0xd8, 0x26, 0xc1, 0xd4, 0xab, 0x6a, 0x0d, 0xdf, 0xe5, 0x5c, 0xf1, 0x8d, 0x3f, 0x1b, 0x13, 0x81, 0x94, @@ -70,7 +69,6 @@ static const dnssec_binary_t signed_ed448 = { .size = 114, .data = (uint8_t []) 0x74, 0x99, 0x01, 0x98, 0x5f, 0xdb, 0xea, 0xdf, 0xab, 0x59, 0x6c, 0x79, 0xe2, 0xc2, 0x2a, 0x91, 0x29, 0x00 }}; -#endif static dnssec_binary_t binary_set_string(char *str) { @@ -177,10 +175,8 @@ int main(void) check_key(&SAMPLE_ECDSA_P256_SHA256_KEY, &input_data, &signed_ecdsa, false); diag("ED25519 signing"); check_key(&SAMPLE_ED25519_KEY, &input_data, &signed_ed25519, true); -#ifdef HAVE_ED448 diag("ED448 signing"); check_key(&SAMPLE_ED448_KEY, &input_data, &signed_ed448, true); -#endif dnssec_crypto_cleanup(); From aaa6a677e19890069dd97e839888dd3d17d9f492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Fri, 5 Dec 2025 15:38:13 +0100 Subject: [PATCH 272/675] rdataset: ignore alignment of source rdata in knot_rdataset_copy() The reason is that when calling from the Redis module on input data, UBSAN complains about it. Note that the source misaligned data are never acessed directly. --- src/libknot/rdataset.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libknot/rdataset.c b/src/libknot/rdataset.c index a5a68670e5..86673e1270 100644 --- a/src/libknot/rdataset.c +++ b/src/libknot/rdataset.c @@ -140,7 +140,7 @@ int knot_rdataset_copy(knot_rdataset_t *dst, const knot_rdataset_t *src, knot_mm if (dst->rdata == NULL) { return KNOT_ENOMEM; } - memcpy(dst->rdata, src->rdata, src->size); + memcpy(dst->rdata, (void *)src->rdata, src->size); } else { assert(src->size == 0); dst->rdata = NULL; From 359b9f2c593e87530bed412eee8d7e1d2db6ceb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Fri, 5 Dec 2025 13:54:48 +0100 Subject: [PATCH 273/675] doc/appendices: add Luna Network HSM --- doc/appendices.rst | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/doc/appendices.rst b/doc/appendices.rst index d684eccd89..875aee18cc 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -23,7 +23,7 @@ support. * - - Generate - Import - - ED25519 + - EDDSA - ECDSA - RSA - Last tested @@ -84,9 +84,9 @@ support. | 2048 | 4096 - 2018-09 - * - `Luna Cloud HSM `_ + * - `Luna Cloud HSM (non-FIPS) `_ - yes - - no + - n/a - n/a - | 256 | 384 @@ -94,6 +94,16 @@ support. | 2048 | 4096 - 2025-11 + * - `Luna Network HSM (non-FIPS) `_ + - yes + - n/a + - | ed448 + - | 256 + | 384 + - | 1024 + | 2048 + | 4096 + - 2025-12 .. in progress: key ID checks have to be disabled in code * - `Yubikey NEO `_ From 67bdb1b6a9622e629e84570d09084adbf6fbee82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Fri, 5 Dec 2025 14:56:26 +0100 Subject: [PATCH 274/675] doc/appendices: update SoftHSM 2.0 --- doc/appendices.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/appendices.rst b/doc/appendices.rst index 875aee18cc..a3b8cb1e7a 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -26,7 +26,7 @@ support. - EDDSA - ECDSA - RSA - - Last tested + - Tested * - `Feitian ePass 2003 `_ - yes - n/a @@ -47,13 +47,14 @@ support. * - `SoftHSM 2.0 `_ [#fn-softhsm]_ - yes - yes - - | 256 + - | ed25519 + | ed448 - | 256 | 384 - | 1024 | 2048 | 4096 - - 2021-09 + - 2025-12 * - `Trustway Proteccio NetHSM `_ - yes - ECDSA only From ae60ab99bb663c3302cf78b70a91c2a564b3105c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 6 Dec 2025 19:30:49 +0100 Subject: [PATCH 275/675] Fix code coverage measurement --- Makefile.am | 1 + m4/knot-code-coverage.m4 | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 8a33b9e22e..91ad164225 100644 --- a/Makefile.am +++ b/Makefile.am @@ -58,6 +58,7 @@ if CODE_COVERAGE_ENABLED --ignore-errors source \ --no-checksum \ --compat-libtool \ + --rc geninfo_unexecuted_blocks=1 \ --output-file $(CODE_COVERAGE_INFO) else @echo "You need to run configure with --enable-code-coverage to enable code coverage" diff --git a/m4/knot-code-coverage.m4 b/m4/knot-code-coverage.m4 index 430e1c4555..669be287a2 100644 --- a/m4/knot-code-coverage.m4 +++ b/m4/knot-code-coverage.m4 @@ -29,7 +29,7 @@ AC_DEFUN([AX_CODE_COVERAGE], [ changequote([,]) dnl Add the coverage flags (clang, gcc) - CFLAGS="$CFLAGS --coverage" - LDFLAGS="$LDFLAGS --coverage" + CFLAGS="$CFLAGS --coverage -fprofile-update=atomic" + LDFLAGS="$LDFLAGS --coverage -fprofile-update=atomic" ]) ]) # AC_CODE_COVERAGE From 7041161113587a9b2fb6dcf032c218f3a2e7e9cb Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 4 Dec 2025 14:22:45 +0100 Subject: [PATCH 276/675] zone-tree: implemented subtree deletion --- src/knot/zone/adds_tree.c | 3 +-- src/knot/zone/adds_tree.h | 2 ++ src/knot/zone/zone-tree.c | 28 ++++++++++++++++++++++++++++ src/knot/zone/zone-tree.h | 11 +++++++++++ tests/knot/test_zone-tree.c | 36 ++++++++++++++++++++++++++---------- 5 files changed, 68 insertions(+), 12 deletions(-) diff --git a/src/knot/zone/adds_tree.c b/src/knot/zone/adds_tree.c index c604d7d7a6..8a1e953671 100644 --- a/src/knot/zone/adds_tree.c +++ b/src/knot/zone/adds_tree.c @@ -12,8 +12,7 @@ #include "libknot/error.h" #include "libknot/rrtype/rdname.h" -knot_dynarray_declare(nodeptr, zone_node_t *, DYNARRAY_VISIBILITY_STATIC, 2) -knot_dynarray_define(nodeptr, zone_node_t *, DYNARRAY_VISIBILITY_STATIC) +knot_dynarray_define(nodeptr, zone_node_t *, DYNARRAY_VISIBILITY_NORMAL) typedef struct { nodeptr_dynarray_t array; diff --git a/src/knot/zone/adds_tree.h b/src/knot/zone/adds_tree.h index 408b0ea080..ad94738da7 100644 --- a/src/knot/zone/adds_tree.h +++ b/src/knot/zone/adds_tree.h @@ -14,6 +14,8 @@ typedef trie_t additionals_tree_t; inline static additionals_tree_t *additionals_tree_new(void) { return trie_create(NULL); } void additionals_tree_free(additionals_tree_t *a_t); +knot_dynarray_declare(nodeptr, zone_node_t *, DYNARRAY_VISIBILITY_NORMAL, 2) + /*! * \brief Foreach additional in all node RRSets, do sth. * diff --git a/src/knot/zone/zone-tree.c b/src/knot/zone/zone-tree.c index 4217038579..d933238af7 100644 --- a/src/knot/zone/zone-tree.c +++ b/src/knot/zone/zone-tree.c @@ -7,6 +7,7 @@ #include #include "knot/zone/zone-tree.h" +#include "knot/zone/adds_tree.h" #include "libknot/consts.h" #include "libknot/errcode.h" #include "libknot/packet/wire.h" @@ -272,6 +273,33 @@ int zone_tree_del_node(zone_tree_t *tree, zone_node_t *node, bool free_deleted) return ret; } +static int clear_rrs(zone_node_t *node, void *ctx) +{ + nodeptr_dynarray_t *leaves = ctx; + binode_unify(node, false, NULL); + node_free_rrsets(node, NULL); + if (node->children == 0) { + (void)nodeptr_dynarray_add(leaves, &node); // if ENOMEM, we just leak + } + return KNOT_EOK; +} + +int zone_tree_del_subtree(zone_tree_t *tree, const knot_dname_t *subroot, bool excl_root) +{ + nodeptr_dynarray_t leaves = { 0 }; + int ret = zone_tree_sub_apply(tree, subroot, excl_root, clear_rrs, &leaves); + if (ret == KNOT_EOK) { + knot_dynarray_foreach(nodeptr, zone_node_t *, n, leaves) { + ret = zone_tree_del_node(tree, *n, true); + if (ret != KNOT_EOK) { + break; + } + } + } + nodeptr_dynarray_free(&leaves); + return ret; +} + int zone_tree_apply(zone_tree_t *tree, zone_tree_apply_cb_t function, void *data) { if (function == NULL) { diff --git a/src/knot/zone/zone-tree.h b/src/knot/zone/zone-tree.h index 57b90b6918..d3d97327ed 100644 --- a/src/knot/zone/zone-tree.h +++ b/src/knot/zone/zone-tree.h @@ -198,6 +198,17 @@ int zone_tree_add_node(zone_tree_t *tree, zone_node_t *apex, const knot_dname_t */ int zone_tree_del_node(zone_tree_t *tree, zone_node_t *node, bool free_deleted); +/*! + * \brief Remove a subtree, freeing removed nodes and their RRsets. + * + * \param tree Zone tree to remove from. + * \param subroot Subtree root name. + * \param excl_root Skip removing the root of the subtree. + * + * \return KNOT_E* + */ +int zone_tree_del_subtree(zone_tree_t *tree, const knot_dname_t *subroot, bool excl_root); + /*! * \brief Applies the given function to each node in the zone in order. * diff --git a/tests/knot/test_zone-tree.c b/tests/knot/test_zone-tree.c index f1c9671a9e..193fad2903 100644 --- a/tests/knot/test_zone-tree.c +++ b/tests/knot/test_zone-tree.c @@ -11,7 +11,7 @@ #define NCOUNT 4 static knot_dname_t* NAME[NCOUNT]; -static zone_node_t NODEE[NCOUNT]; +static zone_node_t* NODEE[NCOUNT]; static knot_dname_t* ORDER[NCOUNT]; static void ztree_init_data(void) { @@ -21,15 +21,19 @@ static void ztree_init_data(void) NAME[3] = knot_dname_from_str_alloc("ns."); knot_dname_t *order[NCOUNT] = { - NAME[0], NAME[2], NAME[1], NAME[3] + NAME[0], NAME[2], NAME[1], NAME[3] }; memcpy(ORDER, order, NCOUNT * sizeof(knot_dname_t*)); + const char *rd = "\x02\x00\x01\x00"; + knot_rrset_t rr = { .rrs = { .count = 1, .size = 4, .rdata = (knot_rdata_t *)&rd } }; + for (unsigned i = 0; i < NCOUNT; ++i) { - memset(NODEE + i, 0, sizeof(zone_node_t)); - NODEE[i].owner = NAME[i]; - NODEE[i].prev = NODEE + ((NCOUNT + i - 1) % NCOUNT); - NODEE[i].rrset_count = 1; /* required for ordered search */ + NODEE[i] = node_new(NAME[i], false, false, NULL); + NODEE[i]->prev = *(NODEE + ((NCOUNT + i - 1) % NCOUNT)); + + rr.owner = NAME[i]; + node_add_rrset(NODEE[i], &rr, NULL); } } @@ -45,7 +49,7 @@ static int ztree_iter_data(zone_node_t *node, void *data) unsigned *i = (unsigned *)data; knot_dname_t *owner = node->owner; int result = KNOT_EOK; - if (owner != ORDER[*i]) { + if (!knot_dname_is_equal(owner, ORDER[*i])) { result = KNOT_ERROR; char *exp_s = knot_dname_to_str_alloc(ORDER[*i]); char *owner_s = knot_dname_to_str_alloc(owner); @@ -78,7 +82,7 @@ int main(int argc, char *argv[]) /* 2. insert test */ unsigned passed = 1; for (unsigned i = 0; i < NCOUNT; ++i) { - zone_node_t *node = NODEE + i; + zone_node_t *node = NODEE[i]; if (zone_tree_insert(t, &node) != KNOT_EOK) { passed = 0; break; @@ -90,7 +94,7 @@ int main(int argc, char *argv[]) passed = 1; for (unsigned i = 0; i < NCOUNT; ++i) { zone_node_t *node = zone_tree_get(t, NAME[i]); - if (node == NULL || node != NODEE + i) { + if (node == NULL || node != NODEE[i]) { passed = 0; break; } @@ -103,7 +107,7 @@ int main(int argc, char *argv[]) knot_dname_t *tmp_dn = knot_dname_from_str_alloc("z.ac."); zone_tree_get_less_or_equal(t, tmp_dn, &node, &prev); knot_dname_free(tmp_dn, NULL); - ok(prev == NODEE + 1, "ztree: ordered lookup"); + ok(prev == NODEE[1], "ztree: ordered lookup"); /* 5. ordered traversal */ unsigned i = 0; @@ -118,7 +122,19 @@ int main(int argc, char *argv[]) ret = zone_tree_sub_apply(t, (const knot_dname_t *)"\x02""ac", true, ztree_node_counter, &counter); ok(ret == KNOT_EOK && counter == 1, "ztree: subtree iteration excluding root"); + /* 7. subtree deletion */ + ret = zone_tree_del_subtree(t, (const knot_dname_t *)"\x02""ac", true); + ok(ret == KNOT_EOK && zone_tree_get(t, NAME[1]) == NULL && zone_tree_get(t, NAME[2]) != NULL, "ztree: subtree deletion w/o root"); + ret = zone_tree_del_subtree(t, (const knot_dname_t *)"\x02""ns", false); + ok(ret == KNOT_EOK && zone_tree_get(t, NAME[3]) == NULL, "ztree: subtree deletion with root"); + zone_tree_free(&t); + + // free exactly what left + node_free_rrsets(NODEE[0], NULL); + node_free(NODEE[0], NULL); + node_free_rrsets(NODEE[2], NULL); + node_free(NODEE[2], NULL); ztree_free_data(); return 0; } From 96c7de32d23c40182fb83cc124ecb1222ffe4246 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 5 Dec 2025 10:13:30 +0100 Subject: [PATCH 277/675] zone-tree: bugfix: iteration across non-existing subtree ret=1 --- src/knot/zone/zone-tree.c | 3 +++ tests/knot/test_zone-tree.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/knot/zone/zone-tree.c b/src/knot/zone/zone-tree.c index d933238af7..760a7cd3e1 100644 --- a/src/knot/zone/zone-tree.c +++ b/src/knot/zone/zone-tree.c @@ -354,6 +354,9 @@ int zone_tree_it_sub_begin(zone_tree_t *tree, const knot_dname_t *sub_root, knot_dname_storage_t lf_storage; uint8_t *lf = knot_dname_lf(sub_root, lf_storage); ret = trie_it_get_leq(it->it, lf + 1, *lf); + if (ret == 1) { + ret = KNOT_ENOENT; + } if ((ret != KNOT_EOK && ret != KNOT_ENOENT) || it->sub_root == NULL) { zone_tree_it_free(it); return ret == KNOT_EOK ? KNOT_ENOMEM : ret; diff --git a/tests/knot/test_zone-tree.c b/tests/knot/test_zone-tree.c index 193fad2903..e898922684 100644 --- a/tests/knot/test_zone-tree.c +++ b/tests/knot/test_zone-tree.c @@ -116,6 +116,8 @@ int main(int argc, char *argv[]) /* 6. subtree apply */ int counter = 0; + ret = zone_tree_sub_apply(t, (const knot_dname_t *)"\x02""bc", false, ztree_node_counter, &counter); + ok(ret == KNOT_EOK && counter == 0, "ztree: non-existing subtree"); ret = zone_tree_sub_apply(t, (const knot_dname_t *)"\x02""ac", false, ztree_node_counter, &counter); ok(ret == KNOT_EOK && counter == 2, "ztree: subtree iteration"); counter = 0; From 324a186927c3031431dd0e141a3e02f0138cb807 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 5 Dec 2025 10:14:34 +0100 Subject: [PATCH 278/675] zone/include_from(flattening): delete whole subtree of glues and junk from parent --- src/knot/zone/reverse.c | 31 +++++---------------- tests-extra/tests/zone/include_from/test.py | 6 ++-- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/src/knot/zone/reverse.c b/src/knot/zone/reverse.c index fedbed4df7..937eb11d3f 100644 --- a/src/knot/zone/reverse.c +++ b/src/knot/zone/reverse.c @@ -116,12 +116,6 @@ static bool flatten_apex_nocopy(uint16_t type) type == KNOT_RRTYPE_CDS; } -static bool flatten_apex_delete(uint16_t type) -{ - return type == KNOT_RRTYPE_NS || - type == KNOT_RRTYPE_DS; -} - static int flatten_from_node(zone_node_t *node, void *data) { rev_ctx_t *ctx = data; @@ -130,33 +124,22 @@ static int flatten_from_node(zone_node_t *node, void *data) int ret = KNOT_EOK; - zone_node_t *target_node = NULL; + assert(ctx->rev_upd == NULL); // not implemented with update in mind + if (apex) { + ret = zone_tree_del_subtree(ctx->rev_conts->nodes, node->owner, false); + } + + zone_node_t *target_node = NULL; for (int i = 0; i < node->rrset_count && ret == KNOT_EOK; i++) { knot_rrset_t rrset = node_rrset_at(node, i); if (apex && flatten_apex_nocopy(rrset.type)) { continue; } - assert(ctx->rev_upd == NULL); // not implemented with update in mind - ret = zone_contents_add_rr(ctx->rev_conts, &rrset, &target_node); } - if (apex && target_node == NULL) { - target_node = (zone_node_t *)zone_contents_find_node(ctx->rev_conts, node->owner); - } - - // TODO delete whole subtree from rev_conts BEFORE adding records from included zone? - for (int i = 0; apex && target_node != NULL && i < target_node->rrset_count && ret == KNOT_EOK; ) { - knot_rrset_t rrset = node_rrset_at(target_node, i); - if (flatten_apex_delete(rrset.type)) { - ret = zone_contents_remove_rr(ctx->rev_conts, &rrset, &target_node); - } else { - i++; // NOTE otherwise we jump to next RRSet by deleting the current one - } - } - return ret; } @@ -225,7 +208,7 @@ int zones_reverse_log(zone_t *zone, zone_contents_t *to_conts) (void)knot_dname_to_str(forw_str, fail_fwd, sizeof(forw_str)); log_zone_warning(zone->name, "waiting for source forward zone '%s'", forw_str); } else if (ret != KNOT_EOK) { - log_zone_error(zone->name, "failed to generate reverse records"); + log_zone_error(zone->name, "failed to generate reverse records (%s)", knot_strerror(ret)); } return ret; } diff --git a/tests-extra/tests/zone/include_from/test.py b/tests-extra/tests/zone/include_from/test.py index 0cbbd14db2..a370988b77 100644 --- a/tests-extra/tests/zone/include_from/test.py +++ b/tests-extra/tests/zone/include_from/test.py @@ -43,12 +43,12 @@ r.check(rcode="NOERROR", rdata="192.0.2.1") r = slave.dig("dns1.org.cz", "A") -r.check(rcode="NOERROR", rdata="192.0.2.2") +r.check(rcode="NOERROR", nordata="192.0.2.2") r = slave.dig("com.cz.", "TXT") r.check(rcode="NOERROR", rdata="auth-txt") -r.check(rcode="NOERROR", rdata="nonauth-txt") -r.check_count(2, "TXT") +r.check(rcode="NOERROR", nordata="nonauth-txt") +r.check_count(1, "TXT") up = master.update(childs[0]) up.add("dns1", 3600, "AAAA", "1::2") From cd4a89a46a1389d2aacb9e5bb028344d93a7c448 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 5 Dec 2025 13:00:05 +0100 Subject: [PATCH 279/675] dnssec/DS-push: replan from timers if reconf'd during submission --- src/knot/dnssec/zone-sign.c | 11 +++++++++-- src/knot/events/replan.c | 8 +++++++- tests-extra/tests/dnssec/ds_push/test.py | 13 +++++++++++-- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/knot/dnssec/zone-sign.c b/src/knot/dnssec/zone-sign.c index 7308ec4f9d..0166886d2f 100644 --- a/src/knot/dnssec/zone-sign.c +++ b/src/knot/dnssec/zone-sign.c @@ -884,11 +884,18 @@ int knot_zone_sign_update_dnskeys(zone_update_t *update, CHECK_RET; } - if (dnssec_ctx->policy->ds_push && node_rrtype_exists(ch.add->apex, KNOT_RRTYPE_CDS)) { + if (node_rrtype_exists(ch.add->apex, KNOT_RRTYPE_CDS)) { // there is indeed a change to CDS update->zone->timers->next_ds_push = time(NULL) + dnssec_ctx->policy->propagation_delay; update->zone->timers->flags |= TIMERS_MODIFIED; - zone_events_schedule_at(update->zone, ZONE_EVENT_DS_PUSH, update->zone->timers->next_ds_push); + // the event is planned only if DS-push configured, but timers set always just for case of later reconfiguration + if (dnssec_ctx->policy->ds_push) { + zone_events_schedule_at(update->zone, ZONE_EVENT_DS_PUSH, update->zone->timers->next_ds_push); + } + } else if (node_rrtype_exists(ch.remove->apex, KNOT_RRTYPE_CDS)) { + // CDS removal + update->zone->timers->next_ds_push = 0; + update->zone->timers->flags |= TIMERS_MODIFIED; } ret = zone_update_apply_changeset(update, &ch); diff --git a/src/knot/events/replan.c b/src/knot/events/replan.c index 5c3ddbcf77..304cec7f18 100644 --- a/src/knot/events/replan.c +++ b/src/knot/events/replan.c @@ -147,7 +147,13 @@ void replan_from_timers(conf_t *conf, zone_t *zone) if (ds_check == 0) { ds_check = TIME_IGNORE; } - ds_push = zone->timers->next_ds_push; + val = conf_zone_get(conf, C_DS_PUSH, zone->name); + if (val.code != KNOT_EOK) { + val = conf_id_get(conf, C_POLICY, C_DS_PUSH, &policy); + } + if (conf_val_count(&val) > 0) { + ds_push = zone->timers->next_ds_push; + } if (ds_push == 0) { ds_push = TIME_IGNORE; } diff --git a/tests-extra/tests/dnssec/ds_push/test.py b/tests-extra/tests/dnssec/ds_push/test.py index a252e33db4..51326aadb9 100644 --- a/tests-extra/tests/dnssec/ds_push/test.py +++ b/tests-extra/tests/dnssec/ds_push/test.py @@ -124,7 +124,6 @@ def watch_ksk_rollover(t, server, zone, before_keys, after_keys, total_keys, des child.dnssec(child_zone).ksk_shared = True child.dnssec(child_zone).cds_cdnskey_publish = "always" -child.conf_zone(child_zone).ds_push = [ parent ] child.conf_ss("submission", child_zone).parent = [ parent ] child.conf_ss("submission", child_zone).check_interval = 2 @@ -135,7 +134,17 @@ def watch_ksk_rollover(t, server, zone, before_keys, after_keys, total_keys, des child.start() child.zone_wait(child_zone) -t.sleep(9) +SLEEP_FIRST=random.randint(0, 5) +t.sleep(SLEEP_FIRST) + +child.conf_zone(child_zone).ds_push = [ parent ] +child.gen_confile() +child.reload() + +t.sleep(7-SLEEP_FIRST) + +if not child.log_search("KSK submission, confirmed"): + set_err("initial KSK not confirmed") pregenerate_key(child, child_zone, "ECDSAP256SHA256") watch_ksk_rollover(t, child, child_zone[0], 2, 2, 3, "KSK rollover") From 3476192881f51192e42e58f7be2a002e584c823e Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 8 Dec 2025 11:38:17 +0100 Subject: [PATCH 280/675] Revert "zonemd: additional warning when signer verifies ZONEMD" This reverts commit 854612f6829c9ae3ffbd071b4658409bad371713. --- src/knot/conf/tools.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index 971b52fa79..2e6271731c 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -1144,11 +1144,6 @@ static int check_zone_or_tpl( args->err_str = "'dnssec-validation' is not compatible with 'dnssec-signing'"; return KNOT_EINVAL; } - - conf_val_t zonemd_verify = conf_get_wrap(args, C_ZONEMD_VERIFY); - if (conf_bool(&zonemd_verify)) { - CONF_LOG(LOG_WARNING, "'zonemd-verify' not compatible with 'dnssec-signing' as incremental changes to the zone will always fail"); - } } else { conf_val_t ddnsmaster = conf_get_wrap(args, C_DDNS_MASTER); if (ddnsmaster.code == KNOT_EOK && *conf_str(&ddnsmaster) == '\0') { From 9561b21f0d0a6cf372842bbb67de0c0fcc66897b Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 8 Dec 2025 11:40:23 +0100 Subject: [PATCH 281/675] IXFR: when ignoring ZONEMD removals, remove the local ZONEMD at first --- src/knot/events/handlers/refresh.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 364a2a47a1..79690d8511 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -620,6 +620,15 @@ static int ixfr_finalize(struct refresh_data *data) changeset_t *set; WALK_LIST(set, data->ixfr.changesets) { + if (data->ignore_zonemd) { + ret = zone_update_remove_rrset(&up, data->zone->name, KNOT_RRTYPE_ZONEMD); + if (ret != KNOT_EOK && ret != KNOT_ENOENT) { + data->fallback_axfr = false; + data->fallback->remote = false; + return ret; + } + } + ret = zone_update_apply_changeset(&up, set); if (ret != KNOT_EOK) { uint32_t serial_from = knot_soa_serial(set->soa_from->rrs.rdata); From 6bd86ea8a2460fa665d29525823b384c7b5d7e90 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 8 Dec 2025 11:44:44 +0100 Subject: [PATCH 282/675] zonemd: on signer, verify only non-dnssec-related records --- src/knot/events/handlers/load.c | 4 ++-- src/knot/updates/zone-update.c | 3 ++- src/knot/zone/digest.c | 24 ++++++++++++++------ src/knot/zone/digest.h | 25 ++++++++++++--------- src/knot/zone/zonedb-load.c | 2 +- src/utils/kzonecheck/zone_check.c | 2 +- tests-extra/tests/zone/zonemd_chain/test.py | 14 ++++-------- tests/knot/test_digest.c | 2 +- 8 files changed, 43 insertions(+), 33 deletions(-) diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 634b4c6730..6f6ab55910 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -420,7 +420,7 @@ int event_load(conf_t *conf, zone_t *zone) /* Don't update ZONEMD if no change and ZONEMD is up-to-date. * If ZONEFILE_LOAD_DIFSE, the change is non-empty and ZONEMD * is directly updated without its verification. */ - if (!zone_update_no_change(&up) || !zone_contents_digest_exists(up.new_cont, digest_alg, false)) { + if (!zone_update_no_change(&up) || !zone_contents_digest_exists(up.new_cont, digest_alg, false, false)) { if (zone_update_to(&up) == NULL || middle_serial == zone->zonefile.serial) { ret = zone_update_increment_soa(&up, conf); } @@ -448,7 +448,7 @@ int event_load(conf_t *conf, zone_t *zone) } // If the original ZONEMD is outdated, use the reverted changeset again. - if (update_zonemd && !zone_contents_digest_exists(up.new_cont, digest_alg, false)) { + if (update_zonemd && !zone_contents_digest_exists(up.new_cont, digest_alg, false, false)) { ret = zone_update_apply_changeset(&up, cpy); changeset_free(cpy); if (ret != KNOT_EOK) { diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 6aede8d73e..900a6973ae 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -987,8 +987,9 @@ int zone_update_verify_digest(conf_t *conf, zone_update_t *update) if (!conf_bool(&val)) { return KNOT_EOK; } + val = conf_zone_get(conf, C_DNSSEC_SIGNING, update->zone->name); - int ret = zone_contents_digest_verify(update->new_cont); + int ret = zone_contents_digest_verify(update->new_cont, conf_bool(&val)); if (ret != KNOT_EOK) { log_zone_error(update->zone->name, "ZONEMD, verification failed (%s)", knot_strerror(ret)); diff --git a/src/knot/zone/digest.c b/src/knot/zone/digest.c index accf7955c5..2503ec101e 100644 --- a/src/knot/zone/digest.c +++ b/src/knot/zone/digest.c @@ -19,6 +19,7 @@ typedef struct { uint8_t *buf; struct dnssec_digest_ctx *digest_ctx; const zone_node_t *apex; + bool ignore_dnssec; } contents_digest_ctx_t; static int digest_rrset(knot_rrset_t *rrset, const zone_node_t *node, void *vctx) @@ -30,6 +31,11 @@ static int digest_rrset(knot_rrset_t *rrset, const zone_node_t *node, void *vctx return KNOT_EOK; } + // ignore DNSSEC if verifying on signer + if (ctx->ignore_dnssec && knot_rrtype_is_dnssec(rrset->type)) { + return KNOT_EOK; + } + // ignore RRSIGs of apex ZONEMD if (node == ctx->apex && rrset->type == KNOT_RRTYPE_RRSIG) { knot_rdataset_t cpy = rrset->rrs, zonemd_rrsig = { 0 }; @@ -87,6 +93,7 @@ static int digest_node(zone_node_t *node, void *ctx) } int zone_contents_digest(const zone_contents_t *contents, int algorithm, + bool ignore_dnssec, uint8_t **out_digest, size_t *out_size) { if (out_digest == NULL || out_size == NULL) { @@ -101,6 +108,7 @@ int zone_contents_digest(const zone_contents_t *contents, int algorithm, .buf_size = DIGEST_BUF_MIN, .buf = malloc(DIGEST_BUF_MIN), .apex = contents->apex, + .ignore_dnssec = ignore_dnssec, }; if (ctx.buf == NULL) { return KNOT_ENOMEM; @@ -141,12 +149,13 @@ int zone_contents_digest(const zone_contents_t *contents, int algorithm, return ret; } -static int verify_zonemd(const knot_rdata_t *zonemd, const zone_contents_t *contents) +static int verify_zonemd(const knot_rdata_t *zonemd, const zone_contents_t *contents, + bool ignore_dnssec) { uint8_t *computed = NULL; size_t comp_size = 0; int ret = zone_contents_digest(contents, knot_zonemd_algorithm(zonemd), - &computed, &comp_size); + ignore_dnssec, &computed, &comp_size); if (ret != KNOT_EOK) { return ret; } @@ -161,7 +170,8 @@ static int verify_zonemd(const knot_rdata_t *zonemd, const zone_contents_t *cont return ret; } -bool zone_contents_digest_exists(const zone_contents_t *contents, int alg, bool no_verify) +bool zone_contents_digest_exists(const zone_contents_t *contents, int alg, bool no_verify, + bool ignore_dnssec) { if (alg == 0) { return true; @@ -181,7 +191,7 @@ bool zone_contents_digest_exists(const zone_contents_t *contents, int alg, bool return true; } - return verify_zonemd(zonemd->rdata, contents) == KNOT_EOK; + return verify_zonemd(zonemd->rdata, contents, ignore_dnssec) == KNOT_EOK; } static bool check_duplicate_schalg(const knot_rdataset_t *zonemd, int check_upto, @@ -199,7 +209,7 @@ static bool check_duplicate_schalg(const knot_rdataset_t *zonemd, int check_upto return true; } -int zone_contents_digest_verify(const zone_contents_t *contents) +int zone_contents_digest_verify(const zone_contents_t *contents, bool ignore_dnssec) { if (contents == NULL) { return KNOT_EEMPTYZONE; @@ -226,7 +236,7 @@ int zone_contents_digest_verify(const zone_contents_t *contents) rr = knot_rdataset_next(rr); } - return supported == NULL ? KNOT_ENOTSUP : verify_zonemd(supported, contents); + return supported == NULL ? KNOT_ENOTSUP : verify_zonemd(supported, contents, ignore_dnssec); } static ptrdiff_t zonemd_hash_offs(void) @@ -255,7 +265,7 @@ int zone_update_add_digest(struct zone_update *update, int algorithm, bool place return KNOT_EOK; } } else { - int ret = zone_contents_digest(update->new_cont, algorithm, &digest, &dsize); + int ret = zone_contents_digest(update->new_cont, algorithm, false, &digest, &dsize); if (ret != KNOT_EOK) { return ret; } diff --git a/src/knot/zone/digest.h b/src/knot/zone/digest.h index b08c1ed334..dfbd95a7e2 100644 --- a/src/knot/zone/digest.h +++ b/src/knot/zone/digest.h @@ -10,14 +10,16 @@ /*! * \brief Compute hash over whole zone by concatenating RRSets in wire format. * - * \param contents Zone contents to digest. - * \param algorithm Algorithm to use. - * \param out_digest Output: buffer with computed hash (to be freed). - * \param out_size Output: size of the resulting hash. + * \param contents Zone contents to digest. + * \param algorithm Algorithm to use. + * \param ignore_dnssec Skip DNSSEC-related records while computing the digest. + * \param out_digest Output: buffer with computed hash (to be freed). + * \param out_size Output: size of the resulting hash. * * \return KNOT_E* */ int zone_contents_digest(const zone_contents_t *contents, int algorithm, + bool ignore_dnssec, uint8_t **out_digest, size_t *out_size); /*! @@ -25,16 +27,19 @@ int zone_contents_digest(const zone_contents_t *contents, int algorithm, * * \note Special value 255 of algorithm means that ZONEMD shall not exist. * - * \param contents Zone contents to be verified. - * \param alg Required algorithm of the ZONEMD. - * \param no_verify Don't verify the validness of the digest in ZONEMD. + * \param contents Zone contents to be verified. + * \param alg Required algorithm of the ZONEMD. + * \param no_verify Don't verify the validness of the digest in ZONEMD. + * \param ignore_dnssec Skip DNSSEC-related records when eventually verifying the digest. */ -bool zone_contents_digest_exists(const zone_contents_t *contents, int alg, bool no_verify); +bool zone_contents_digest_exists(const zone_contents_t *contents, int alg, bool no_verify, + bool ignore_dnssec); /*! * \brief Verify zone dgest in ZONEMD record. * - * \param contents Zone contents ot be verified. + * \param contents Zone contents ot be verified. + * \param ignore_dnssec Skip DNSSEC-related records while computing the digest. * * \retval KNOT_EEMPTYZONE The zone is empty. * \retval KNOT_ENOENT There is no ZONEMD in contents' apex. @@ -44,7 +49,7 @@ bool zone_contents_digest_exists(const zone_contents_t *contents, int alg, bool * \retval KNOT_EMALF The computed hash differs from ZONEMD. * \return KNOT_E* */ -int zone_contents_digest_verify(const zone_contents_t *contents); +int zone_contents_digest_verify(const zone_contents_t *contents, bool ignore_dnssec); struct zone_update; /*! diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 1e6b79e2e8..46140faba7 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -75,7 +75,7 @@ static void replan_events(conf_t *conf, zone_t *zone, zone_t *old_zone, bool con { if (!conf_updated) { conf_val_t digest = conf_zone_get(conf, C_ZONEMD_GENERATE, zone->name); - if (zone->contents != NULL && !zone_contents_digest_exists(zone->contents, conf_opt(&digest), true)) { + if (zone->contents != NULL && !zone_contents_digest_exists(zone->contents, conf_opt(&digest), true, false)) { conf_updated = true; } } diff --git a/src/utils/kzonecheck/zone_check.c b/src/utils/kzonecheck/zone_check.c index edba74f8cf..d06c39c65e 100644 --- a/src/utils/kzonecheck/zone_check.c +++ b/src/utils/kzonecheck/zone_check.c @@ -105,7 +105,7 @@ int zone_check(const char *zone_file, const knot_dname_t *zone_name, bool zonemd } if (zonemd) { - ret = zone_contents_digest_verify(contents); + ret = zone_contents_digest_verify(contents, false); if (ret != KNOT_EOK) { if (stats.error_count > 0 && !stats.handler.error) { (void)fprintf(stderr, "\n"); diff --git a/tests-extra/tests/zone/zonemd_chain/test.py b/tests-extra/tests/zone/zonemd_chain/test.py index 981a452003..b866227388 100644 --- a/tests-extra/tests/zone/zonemd_chain/test.py +++ b/tests-extra/tests/zone/zonemd_chain/test.py @@ -25,7 +25,7 @@ signer.conf_zone(zones).zonemd_verify = True signer.dnssec(zones).enable = True -signer.conf_zone(zones).zonemd_generate = "zonemd-sha384" +signer.conf_zone(zones).zonemd_generate = random.choice(["zonemd-sha384", "zonemd-sha512"]) slave.conf_zone(zones).dnssec_validation = True slave.conf_zone(zones).zonemd_verify = True @@ -34,18 +34,12 @@ serials = slave.zones_wait(zones) master.random_ddns(zones, allow_empty=False) -t.sleep(4) -slave.zones_wait(zones, serials, equal=True, greater=False) -signer.ctl("zone-retransfer") serials = slave.zones_wait(zones, serials) -signer.conf_zone(zones).zonemd_verify = False -signer.gen_confile() -signer.reload() - +signer.ctl("zone-freeze", wait=True) +master.random_ddns(zones, allow_empty=False) master.random_ddns(zones, allow_empty=False) +signer.ctl("zone-thaw") serials = slave.zones_wait(zones, serials) -if signer.log_search_count("fallback to AXFR ") > 0: # NOTE without the trailing space the message can appear for outgoing IXFR as well, which it actually should - set_err("AXFR fallback") t.end() diff --git a/tests/knot/test_digest.c b/tests/knot/test_digest.c index 14e6b4c2b5..f25fb0c38b 100644 --- a/tests/knot/test_digest.c +++ b/tests/knot/test_digest.c @@ -58,7 +58,7 @@ static zone_contents_t *str2contents(const char *zone_str) static int check_contents(const char *zone_str) { zone_contents_t *cont = str2contents(zone_str); - int ret = zone_contents_digest_verify(cont); + int ret = zone_contents_digest_verify(cont, false); zone_contents_deep_free(cont); return ret; } From 8a97086ebbeeb66e06a5fb8f64e02a3826a63b03 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 9 Dec 2025 08:42:26 +0100 Subject: [PATCH 283/675] tests: shorter timeout for zone(s)_wait --- tests-extra/tools/dnstest/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index cedd3ae615..b04fa7544a 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -880,7 +880,7 @@ def zone_wait(self, zone, serial=None, equal=False, greater=True, udp=True, check_log("ZONE WAIT %s: %s" % (self.name, zone.name)) - attempts = 60 if not self.valgrind else 100 + attempts = 15 if not self.valgrind else 25 for t in range(attempts): try: if use_ctl: From 6cbb99183fd43a7a44243b3de0a3bdab023144ee Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 9 Dec 2025 10:01:00 +0100 Subject: [PATCH 284/675] tests: less start attempts in order to speedup when unable to start --- tests-extra/tools/dnstest/server.py | 4 ++-- tests-extra/tools/dnstest/test.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index b04fa7544a..5873e8d651 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -118,8 +118,8 @@ class Server(object): START_WAIT = 2 START_WAIT_VALGRIND = 5 START_WAIT_ATTEMPTS = 60 - START_MAX_ATTEMPTS = 10 # During the test, fatal. - START_INIT_ATTEMPTS = 3 # When starting a test, non-fatal. + START_MAX_ATTEMPTS = 3 # During the test, fatal. + START_INIT_ATTEMPTS = 1 # When starting a test, non-fatal. STOP_TIMEOUT = 30 COMPILE_TIMEOUT = 60 DIG_TIMEOUT = 5 diff --git a/tests-extra/tools/dnstest/test.py b/tests-extra/tools/dnstest/test.py index 414fb2886d..a0262c890f 100644 --- a/tests-extra/tools/dnstest/test.py +++ b/tests-extra/tools/dnstest/test.py @@ -29,7 +29,7 @@ def repo_file(*path): class Test(object): '''Specification of DNS test topology''' - MAX_START_TRIES = 10 + MAX_START_TRIES = 3 XDP_LOCK_FILE = "/tmp/knottest-xdp-lock" LOCAL_ADDR_COMMON = {4: "127.0.0.1", 6: "::1"} LOCAL_ADDR_MULTI = LOCAL_ADDR_COMMON From 73ac453171057405ea381e8469488c654570db74 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 9 Dec 2025 14:34:40 +0100 Subject: [PATCH 285/675] events: fix undefined behavior if invalid event --- src/knot/events/events.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/events/events.c b/src/knot/events/events.c index 0648641e63..d93af62ce5 100644 --- a/src/knot/events/events.c +++ b/src/knot/events/events.c @@ -204,12 +204,12 @@ static void event_wrap(worker_task_t *task) pthread_mutex_lock(&events->mx); zone_event_type_t type = get_next_event(events); - pthread_cond_t *blocking = events->blocking[type]; if (!valid_event(type)) { events->running = 0; pthread_mutex_unlock(&events->mx); return; } + pthread_cond_t *blocking = events->blocking[type]; events->type = type; event_set_time(events, type, 0); events->forced[type] = false; From c2d51f704d603cd4679441181a7a82911039b997 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 10 Dec 2025 10:38:02 +0100 Subject: [PATCH 286/675] knotc/zone-ksk-submitted: implemented +ttl for delaying old KSK removal --- doc/man_knotc.rst | 6 ++++-- python/libknot/README.md | 4 +++- src/knot/ctl/commands.c | 15 +++++++++++++-- src/knot/ctl/commands.h | 2 ++ src/utils/knotc/commands.c | 8 ++++++++ 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/doc/man_knotc.rst b/doc/man_knotc.rst index 33368f36a5..39e75e9c5c 100644 --- a/doc/man_knotc.rst +++ b/doc/man_knotc.rst @@ -183,10 +183,12 @@ Actions key management enabled. Note that complete key rollover consists of several steps and the blocking mode relates to the initial one only! (#) -**zone-ksk-submitted** *zone*... +**zone-ksk-submitted** *zone*... [**+ttl** *seconds*] Use when the zone's KSK rollover is in submission phase. By calling this command the user confirms manually that the parent zone contains DS record for the new - KSK in submission phase and the old KSK can be retired. (#) + KSK in submission phase and the old KSK can be retired. The optional **+ttl** + parameter specifies the parent DS's TTL and possibly other delays, with the + effect that the removal of old KSK is postponed by this amount of seconds. (#) **zone-freeze** [*zone*...] Trigger a zone freeze. All running events will be finished and all new and pending diff --git a/python/libknot/README.md b/python/libknot/README.md index 181693bd83..bf0ec5bc49 100644 --- a/python/libknot/README.md +++ b/python/libknot/README.md @@ -137,7 +137,9 @@ The following commands apply to all zones if `ZONE` is left empty. * `zone-validate([ZONE], [FLAGS="B"])` * `zone-keys-load([ZONE], [FLAGS="B"])` * `zone-key-rollover([ZONE], TYPE="ksk"|"zsk", [FLAGS="B"])` -* `zone-ksk-submitted([ZONE], [FLAGS="B"])` +* `zone-ksk-submitted([ZONE], [FILTERS="t", DATA], [FLAGS="B"])` + + the **t**tl filter commands that removal of old KSK is postponed by the amount of seconds + stored in the `DATA` section * `zone-freeze([ZONE], [FLAGS="B"])` * `zone-thaw([ZONE], [FLAGS="B"])` * `zone-xfr-freeze([ZONE], [FLAGS="B"])` diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 392f0664a0..7614a2511e 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -845,12 +845,23 @@ static int zone_ksk_sbm_confirm(zone_t *zone, _unused_ ctl_args_t *args) { kdnssec_ctx_t ctx = { 0 }; - int ret = kdnssec_ctx_init(conf(), &ctx, zone->name, zone_kaspdb(zone), NULL); + int ret = KNOT_EOK; + + uint32_t ds_ttl = 0; + const char *ds_ttl_s = args->data[KNOT_CTL_IDX_DATA]; + if (MATCH_AND_FILTER(args, CTL_FILTER_KSK_SBM_TTL) && ds_ttl_s != NULL) { + ret = str_to_u32(ds_ttl_s, &ds_ttl); + if (ret != KNOT_EOK) { + return ret; + } + } + + ret = kdnssec_ctx_init(conf(), &ctx, zone->name, zone_kaspdb(zone), NULL); if (ret != KNOT_EOK) { return ret; } - ret = knot_dnssec_ksk_sbm_confirm(&ctx, 0); + ret = knot_dnssec_ksk_sbm_confirm(&ctx, ds_ttl); kdnssec_ctx_deinit(&ctx); conf_val_t val = conf_zone_get(conf(), C_DNSSEC_SIGNING, zone->name); diff --git a/src/knot/ctl/commands.h b/src/knot/ctl/commands.h index 25b893514a..0e43519273 100644 --- a/src/knot/ctl/commands.h +++ b/src/knot/ctl/commands.h @@ -20,6 +20,8 @@ #define CTL_FILTER_FLUSH_OUTDIR "d" +#define CTL_FILTER_KSK_SBM_TTL "t" + #define CTL_FILTER_STATUS_LOADING "l" #define CTL_FILTER_STATUS_ROLE "r" diff --git a/src/utils/knotc/commands.c b/src/utils/knotc/commands.c index 3e78ba307c..a8af19b109 100644 --- a/src/utils/knotc/commands.c +++ b/src/utils/knotc/commands.c @@ -652,6 +652,11 @@ const filter_desc_t zone_flush_filters[] = { { NULL }, }; +const filter_desc_t zone_ksk_sbm_filters[] = { + { "+ttl", CTL_FILTER_KSK_SBM_TTL, true }, + { NULL }, +}; + const filter_desc_t zone_backup_filters[] = { { "+backupdir", CTL_FILTER_BACKUP_OUTDIR, true }, // This must be the first. { "+zonefile", CTL_FILTER_BACKUP_ZONEFILE, false }, @@ -706,6 +711,9 @@ static const filter_desc_t *get_filter(ctl_cmd_t cmd, const char *filter_name) case CTL_ZONE_FLUSH: fd = zone_flush_filters; break; + case CTL_ZONE_KSK_SBM: + fd = zone_ksk_sbm_filters; + break; case CTL_ZONE_BACKUP: case CTL_ZONE_RESTORE: fd = zone_backup_filters; From 8daa3d91c390f2eeb009726429cbc81e308ee6c9 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 10 Dec 2025 10:44:00 +0100 Subject: [PATCH 287/675] doc/submission: warning about non-application of parent-delay --- doc/reference.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/reference.rst b/doc/reference.rst index b34a2fc2cc..0fe356265f 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2042,6 +2042,11 @@ After successful parent DS check, wait for this period (in seconds) before continuing the next key roll-over step. This delay shall cover the propagation delay of update in the parent zone. +.. NOTE:: + This delay has only effect on automatic KSK submission with parent queries. + For KSK submission resulting in :ref:`submission_timeout` or manually confirmed + by *knotc* **zone-ksk-submitted**, the parent-delay doesn't apply. + *Default:* ``0`` .. _dnskey-sync section: From 3a25b60878541d9c7780f284e5fd575649b5ab44 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 10 Dec 2025 15:45:55 +0100 Subject: [PATCH 288/675] doc: some KSK submission improvements --- doc/man_knotc.rst | 2 +- doc/reference.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/man_knotc.rst b/doc/man_knotc.rst index 39e75e9c5c..b4f94431ca 100644 --- a/doc/man_knotc.rst +++ b/doc/man_knotc.rst @@ -188,7 +188,7 @@ Actions the user confirms manually that the parent zone contains DS record for the new KSK in submission phase and the old KSK can be retired. The optional **+ttl** parameter specifies the parent DS's TTL and possibly other delays, with the - effect that the removal of old KSK is postponed by this amount of seconds. (#) + effect that the removal of old KSK is postponed by this number of seconds. (#) **zone-freeze** [*zone*...] Trigger a zone freeze. All running events will be finished and all new and pending diff --git a/doc/reference.rst b/doc/reference.rst index 0fe356265f..84211ef239 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2043,7 +2043,7 @@ continuing the next key roll-over step. This delay shall cover the propagation delay of update in the parent zone. .. NOTE:: - This delay has only effect on automatic KSK submission with parent queries. + This delay only affects automatic KSK submission with parent queries. For KSK submission resulting in :ref:`submission_timeout` or manually confirmed by *knotc* **zone-ksk-submitted**, the parent-delay doesn't apply. From 62a64aa104e6494f554b00ffa5da3692ccb3299b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Tue, 9 Dec 2025 15:06:33 +0100 Subject: [PATCH 289/675] kdig: replace +noidn with +[no]idnin and +[no]idnout as in dig --- doc/man_kdig.rst | 18 +++++--- src/utils/kdig/kdig_params.c | 83 +++++++++++++++++++++++------------- src/utils/kdig/kdig_params.h | 2 +- 3 files changed, 66 insertions(+), 37 deletions(-) diff --git a/doc/man_kdig.rst b/doc/man_kdig.rst index d19ea9e426..198bbe43bb 100644 --- a/doc/man_kdig.rst +++ b/doc/man_kdig.rst @@ -345,12 +345,18 @@ Options **+**\ [\ **no**\ ]\ **json** Use JSON for output encoding (RFC 8427). -**+noidn** - Disable the IDN transformation to ASCII and vice versa. IDN support depends - on libidn2 availability during project building! If used in *common-settings*, - all IDN transformations are disabled. If used in the individual query *settings*, - transformation from ASCII is disabled on output for the particular query. Note - that IDN transformation does not preserve domain name letter case. +**+**\ [\ **no**\ ]\ **idnin** + Use IDN transformation (Unicode to ASCII punycode) on input query. (*) + + Note that IDN transformation does not preserve domain name letter case. + IDN support depends on libidn2 availability during project building! + +**+**\ [\ **no**\ ]\ **idnout** + Use IDN transformation (ASCII punycode to Unicode) on printed domain names. (*) + This mode is disabled by default for non-tty outputs (e.g. file, pipe). + + Note that IDN transformation does not preserve domain name letter case. + IDN support depends on libidn2 availability during project building! Notes ----- diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index 02eda194a1..f67aaade19 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -1408,11 +1408,37 @@ static int opt_noednsopt(const char *arg, void *query) return KNOT_EOK; } -static int opt_noidn(const char *arg, void *query) +static int opt_idnin(const char *arg, void *query) +{ + query_t *q = query; + + q->idn = true; + + return KNOT_EOK; +} + +static int opt_noidnin(const char *arg, void *query) { query_t *q = query; q->idn = false; + + return KNOT_EOK; +} + +static int opt_idnout(const char *arg, void *query) +{ + query_t *q = query; + + q->style.style.ascii_to_idn = name_to_idn; + + return KNOT_EOK; +} + +static int opt_noidnout(const char *arg, void *query) +{ + query_t *q = query; + q->style.style.ascii_to_idn = NULL; return KNOT_EOK; @@ -1687,8 +1713,11 @@ static const param_t kdig_opts2[] = { { "json", ARG_NONE, opt_json }, { "nojson", ARG_NONE, opt_nojson }, - /* "idn" doesn't work since it must be called before query creation. */ - { "noidn", ARG_NONE, opt_noidn }, + { "idnin", ARG_NONE, opt_idnin }, + { "noidnin", ARG_NONE, opt_noidnin }, + + { "idnout", ARG_NONE, opt_idnout }, + { "noidnout", ARG_NONE, opt_noidnout }, { NULL } }; @@ -1723,6 +1752,7 @@ query_t *query_create(const char *owner, const query_t *conf) query->flags = DEFAULT_FLAGS_DIG; query->style = DEFAULT_STYLE_DIG; query->style.style.now = knot_time(); + query->style.style.ascii_to_idn = isatty(STDOUT_FILENO) ? name_to_idn : NULL, query->idn = true; query->nsid = false; query->zoneversion = false; @@ -2014,36 +2044,11 @@ static int parse_local(const char *value, query_t *query) static int parse_name(const char *value, list_t *queries, const query_t *conf) { - query_t *query = NULL; - char *ascii_name = (char *)value; - char *fqd_name = NULL; - - if (value != NULL && value[0] != '\0') { - if (conf->idn) { - ascii_name = name_from_idn(value); - if (ascii_name == NULL) { - return KNOT_EINVAL; - } - } - - // If name is not FQDN, append trailing dot. - fqd_name = get_fqd_name(ascii_name); - - if (conf->idn) { - free(ascii_name); - } - } - - // Create new query. - query = query_create(fqd_name, conf); - - free(fqd_name); - + query_t *query = query_create(value, conf); if (query == NULL) { return KNOT_ENOMEM; } - // Add new query to the queries. add_tail(queries, (node_t *)query); return KNOT_EOK; @@ -2306,6 +2311,23 @@ void complete_queries(list_t *queries, const query_t *conf) query_t *q = (query_t *)n; query_t *q_prev = (HEAD(*queries) != n) ? (query_t *)n->prev : NULL; + // Normalize to FQDN and optionally apply IDN conversion. + if (q->owner != NULL && q->owner[0] != '\0') { + char *ascii_name = q->owner; + if (q->idn) { + ascii_name = name_from_idn(q->owner); + if (ascii_name == NULL) { + ascii_name = q->owner; + } else { + free(q->owner); + } + } + + // If name is not FQDN, append trailing dot. + q->owner = get_fqd_name(ascii_name); + free(ascii_name); + } + // Fill class number if missing. if (q->class_num < 0) { if (conf->class_num >= 0) { @@ -2430,7 +2452,8 @@ static void print_help(void) " +[no]ednsopt=CODE[:HEX] Set custom EDNS option.\n" " +[no]proxy=SADDR-DADDR Add PROXYv2 header with src and dest addresses.\n" " +[no]json Use JSON for output encoding (RFC 8427).\n" - " +noidn Disable IDN transformation.\n" + " +[no]idnin * Use IDN transformation on input.\n" + " +[no]idnout * Use IDN transformation on output.\n" "\n" " -h, --help Print the program help.\n" " -V, --version Print the program version.\n", diff --git a/src/utils/kdig/kdig_params.h b/src/utils/kdig/kdig_params.h index 24c8bc27b4..32d6a86cd0 100644 --- a/src/utils/kdig/kdig_params.h +++ b/src/utils/kdig/kdig_params.h @@ -97,7 +97,7 @@ struct query { flags_t flags; /*!< Output settings. */ style_t style; - /*!< IDN conversion. */ + /*!< Unicode to IDN input conversion. */ bool idn; /*!< Query for NSID. */ bool nsid; From 3a4e4756577787ed9b2499f523a8941b3104e5c2 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 12 Dec 2025 15:04:19 +0100 Subject: [PATCH 290/675] kdig,khost: add info log if IDN applied to qname --- src/utils/common/params.c | 5 ++++- src/utils/common/params.h | 3 ++- src/utils/kdig/kdig_params.c | 2 +- src/utils/khost/khost_params.c | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/utils/common/params.c b/src/utils/common/params.c index aad5f0d320..7644e58af3 100644 --- a/src/utils/common/params.c +++ b/src/utils/common/params.c @@ -26,7 +26,7 @@ #define IPV4_REVERSE_DOMAIN "in-addr.arpa." #define IPV6_REVERSE_DOMAIN "ip6.arpa." -char *name_from_idn(const char *idn_name) { +char *name_from_idn(const char *idn_name, bool info) { #ifdef LIBIDN char *name = NULL; @@ -40,6 +40,9 @@ char *name_from_idn(const char *idn_name) { free(name); return strdup(idn_name); } else { + if (info) { + INFO("IDNA qname %s -> %s", idn_name, name); + } return name; } #endif diff --git a/src/utils/common/params.h b/src/utils/common/params.h index 979e3979dc..1e2c603b4d 100644 --- a/src/utils/common/params.h +++ b/src/utils/common/params.h @@ -123,11 +123,12 @@ inline static void print_version(const char *prog_name, bool verbose) * \brief Transforms localized IDN string to ASCII punycode. * * \param idn_name IDN name to transform. + * \param info Enable info logging. * * \retval NULL if transformation fails. * \retval string if ok. */ -char *name_from_idn(const char *idn_name); +char *name_from_idn(const char *idn_name, bool info); /*! * \brief Transforms ASCII punycode to localized IDN string. diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index f67aaade19..004a490c4c 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -2315,7 +2315,7 @@ void complete_queries(list_t *queries, const query_t *conf) if (q->owner != NULL && q->owner[0] != '\0') { char *ascii_name = q->owner; if (q->idn) { - ascii_name = name_from_idn(q->owner); + ascii_name = name_from_idn(q->owner, q->style.show_header); if (ascii_name == NULL) { ascii_name = q->owner; } else { diff --git a/src/utils/khost/khost_params.c b/src/utils/khost/khost_params.c index 1e235298f9..cb693c1ba0 100644 --- a/src/utils/khost/khost_params.c +++ b/src/utils/khost/khost_params.c @@ -102,7 +102,7 @@ static int parse_name(const char *value, list_t *queries, const query_t *conf) query_t *query; if (conf->idn) { - ascii_name = name_from_idn(value); + ascii_name = name_from_idn(value, true); if (ascii_name == NULL) { free(reverse); return KNOT_EINVAL; From 4149efc18de917028cfe20638569c9ed087ba208 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 12 Dec 2025 08:46:44 +0100 Subject: [PATCH 291/675] ctl: don't require enabled signing if restoring keys This allows setting initial keys from a backup. --- src/knot/ctl/commands.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 7614a2511e..8cdf94d0a2 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -723,6 +723,9 @@ static int zone_backup_cmd(zone_t *zone, ctl_args_t *args) if (ctx->restore_mode && ret == KNOT_EOK) { ret = zone_keys_load(zone, args); + if (ret == KNOT_ENOTSUP) { // Ignore if disabled signing. + ret = KNOT_EOK; + } } if (!(ctx->backup_params & BACKUP_PARAM_EVENT)) { From f752c640940b9162ad2163244192537f4c3e50b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Fri, 21 Nov 2025 13:28:01 +0100 Subject: [PATCH 292/675] tests-extra: add SoftHSM backend support --- tests-extra/README | 1 + tests-extra/data/knot.supp | 18 +++++ tests-extra/tests/dnssec/keystores/test.py | 79 +++++++++++----------- tests-extra/tests/dnssec/softhsm/test.py | 56 +++++++++++++++ tests-extra/tools/dnstest/__init__.py | 1 + tests-extra/tools/dnstest/keystore.py | 75 ++++++++++++++++++++ tests-extra/tools/dnstest/params.py | 2 +- tests-extra/tools/dnstest/server.py | 20 ++++-- 8 files changed, 207 insertions(+), 45 deletions(-) create mode 100644 tests-extra/tests/dnssec/softhsm/test.py create mode 100644 tests-extra/tools/dnstest/keystore.py diff --git a/tests-extra/README b/tests-extra/README index b4c4829735..55e4164afe 100644 --- a/tests-extra/README +++ b/tests-extra/README @@ -13,6 +13,7 @@ ldnsutils lsof gawk objdump +softhsm2 (valgrind) (gdb) diff --git a/tests-extra/data/knot.supp b/tests-extra/data/knot.supp index 62dff053c5..dc8ae40272 100644 --- a/tests-extra/data/knot.supp +++ b/tests-extra/data/knot.supp @@ -33,3 +33,21 @@ ... fun:allocate_stack } + +{ + libgnutls/p11_load_module + Memcheck:Leak + match-leak-kinds: definite,reachable + fun:*alloc + ... + fun:gnutls_pkcs11_add_provider +} + +{ + libstdc++/exit + Memcheck:Leak + match-leak-kinds: reachable + fun:malloc + ... + fun:exit +} diff --git a/tests-extra/tests/dnssec/keystores/test.py b/tests-extra/tests/dnssec/keystores/test.py index 6c628aa4de..3b57e57234 100644 --- a/tests-extra/tests/dnssec/keystores/test.py +++ b/tests-extra/tests/dnssec/keystores/test.py @@ -5,19 +5,17 @@ """ import os -import random -import shutil from dnstest.utils import * from dnstest.keys import Keymgr +from dnstest.keystore import KeystorePEM from dnstest.test import Test def check_key_count(server, keystore, expected): - ksdir = os.path.join(server.keydir, keystore) try: - files = len([name for name in os.listdir(ksdir)]) + files = len([name for name in os.listdir(keystore.config())]) except FileNotFoundError: files = 0 - compare(files, expected, "privkey count in %s" % ksdir) + compare(files, expected, "privkey count in %s" % keystore.id) t = Test() @@ -25,17 +23,20 @@ def check_key_count(server, keystore, expected): zone = t.zone("catalog.") # has zero TTL => faster key rollovers t.link(zone, server) +keys1 = KeystorePEM("keys1") +keys2 = KeystorePEM("keys2") + server.dnssec(zone).enable = True server.dnssec(zone).propagation_delay = 1 -server.dnssec(zone).keystore = [ "keys1", "keys2" ] +server.dnssec(zone).keystore = [ keys1, keys2 ] t.start() serial = server.zone_wait(zone) -check_key_count(server, "keys1", 2) -check_key_count(server, "keys2", 0) +check_key_count(server, keys1, 2) +check_key_count(server, keys2, 0) -server.dnssec(zone).keystore = [ "keys2", "keys1" ] +server.dnssec(zone).keystore = [ keys2, keys1 ] server.gen_confile() server.reload() server.ctl("zone-key-rollover %s zsk" % zone[0].name) @@ -43,17 +44,17 @@ def check_key_count(server, keystore, expected): serial += 2 # wait for three increments which is whole ZSK rollover serial = server.zone_wait(zone, serial) -check_key_count(server, "keys1", 1) -check_key_count(server, "keys2", 1) +check_key_count(server, keys1, 1) +check_key_count(server, keys2, 1) backup_dir = os.path.join(server.dir, "backup1") server.ctl("zone-backup +backupdir %s %s" % (backup_dir, zone[0].name), wait=True) -shutil.rmtree(os.path.join(server.keydir, "keys1")) -shutil.rmtree(os.path.join(server.keydir, "keys2")) +keys1.clear() +keys2.clear() server.ctl("zone-restore +backupdir %s %s" % (backup_dir, zone[0].name), wait=True) -check_key_count(server, "keys1", 0) -check_key_count(server, "keys2", 2) # restore puts all keys to first configured keystore no matter where they were at backup +check_key_count(server, keys1, 0) +check_key_count(server, keys2, 2) # restore puts all keys to first configured keystore no matter where they were at backup server.ctl("zone-sign %s" % zone[0].name, wait=True) # check that signing still works after restore serial = server.zone_wait(zone, serial) @@ -61,53 +62,55 @@ def check_key_count(server, keystore, expected): server.flush(zone[0], wait=True) server.zone_verify(zone[0]) -server.dnssec(zone).keystore = [ "keys0ksk", "keys1", "keys2" ] +keys0ksk = KeystorePEM("keys0ksk", ksk_only=True) + +server.dnssec(zone).keystore = [ keys0ksk, keys1, keys2 ] server.gen_confile() server.reload() server.ctl("zone-key-rollover %s ksk" % zone[0].name) serial += 1 # wait for two increments serial = server.zone_wait(zone, serial) -check_key_count(server, "keys0ksk", 1) -check_key_count(server, "keys1", 0) -check_key_count(server, "keys2", 2) +check_key_count(server, keys0ksk, 1) +check_key_count(server, keys1, 0) +check_key_count(server, keys2, 2) server.ctl("zone-ksk-submitted %s" % zone[0].name) serial = server.zone_wait(zone, serial) -check_key_count(server, "keys0ksk", 1) -check_key_count(server, "keys1", 0) -check_key_count(server, "keys2", 1) +check_key_count(server, keys0ksk, 1) +check_key_count(server, keys1, 0) +check_key_count(server, keys2, 1) server.ctl("zone-key-rollover %s zsk" % zone[0].name) serial += 2 # wait for three increments which is whole ZSK rollover serial = server.zone_wait(zone, serial) -check_key_count(server, "keys0ksk", 1) -check_key_count(server, "keys1", 1) -check_key_count(server, "keys2", 0) +check_key_count(server, keys0ksk, 1) +check_key_count(server, keys1, 1) +check_key_count(server, keys2, 0) Keymgr.run_check(server.confile, zone[0].name, "generate", "ksk=yes") -check_key_count(server, "keys0ksk", 2) -check_key_count(server, "keys1", 1) +check_key_count(server, keys0ksk, 2) +check_key_count(server, keys1, 1) Keymgr.run_check(server.confile, zone[0].name, "generate", "ksk=no") -check_key_count(server, "keys0ksk", 2) -check_key_count(server, "keys1", 2) +check_key_count(server, keys0ksk, 2) +check_key_count(server, keys1, 2) Keymgr.run_check(server.confile, zone[0].name, "import-bind", os.path.join(t.data_dir, "Kcatalog.+013+07147.key")) -check_key_count(server, "keys0ksk", 2) -check_key_count(server, "keys1", 3) +check_key_count(server, keys0ksk, 2) +check_key_count(server, keys1, 3) Keymgr.run_check(server.confile, zone[0].name, "import-bind", os.path.join(t.data_dir, "Kcatalog.+013+18635.key")) -check_key_count(server, "keys0ksk", 3) -check_key_count(server, "keys1", 3) +check_key_count(server, keys0ksk, 3) +check_key_count(server, keys1, 3) Keymgr.run_check(server.confile, zone[0].name, "import-pem", os.path.join(t.data_dir, "8329a00d5dceefdcbbf7b8a3cdf61fe944c51d6f.pem"), "ksk=yes") -check_key_count(server, "keys0ksk", 4) -check_key_count(server, "keys1", 3) +check_key_count(server, keys0ksk, 4) +check_key_count(server, keys1, 3) Keymgr.run_check(server.confile, zone[0].name, "import-pem", os.path.join(t.data_dir, "894d4240398f459f59f4a99cd4c5b658c9a62d54.pem"), "ksk=no") -check_key_count(server, "keys0ksk", 4) -check_key_count(server, "keys1", 4) -check_key_count(server, "keys2", 0) +check_key_count(server, keys0ksk, 4) +check_key_count(server, keys1, 4) +check_key_count(server, keys2, 0) t.end() diff --git a/tests-extra/tests/dnssec/softhsm/test.py b/tests-extra/tests/dnssec/softhsm/test.py new file mode 100644 index 0000000000..515951a20e --- /dev/null +++ b/tests-extra/tests/dnssec/softhsm/test.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 + +""" +Backup and restore of SoftHSM keystores. +""" + +from dnstest.utils import * +from dnstest.keystore import KeystoreSoftHSM +from dnstest.test import Test + +t = Test() + +knot1 = t.server("knot") +knot2 = t.server("knot") +zone = t.zone("example.com") +t.link(zone, knot1) +t.link(zone, knot2) + +keys1 = KeystoreSoftHSM("keys1") +keys1.link(knot1) +keys2 = KeystoreSoftHSM("keys2") +keys2.link(knot2) + +knot1.dnssec(zone).enable = True +knot1.dnssec(zone).keystore = [ keys1 ] + +t.start() + +# Wait for signed zone +knot1.zone_wait(zone) +resp = knot1.dig(zone[0].name, "DNSKEY") +resp.check_count(2, "DNSKEY") + +# Wait for unsigned zone +serial = knot2.zone_wait(zone) +resp = knot2.dig(zone[0].name, "DNSKEY") +resp.check_count(0, "DNSKEY") + +backup_dir = os.path.join(knot1.dir, "backup") +knot1.ctl("zone-backup +keysonly +backupdir %s %s" % (backup_dir, zone[0].name), wait=True) + +keys2.init(keys1) # Synchronize tokens directory between SoftHSMs +knot2.ctl("zone-restore +keysonly +backupdir %s %s" % (backup_dir, zone[0].name), wait=True) + +# Enable signing with initial keys from the backup +knot2.dnssec(zone).enable = True +knot2.dnssec(zone).keystore = [ keys2 ] +knot2.gen_confile() +knot2.reload() + +# Check the keysets match +knot2.zone_wait(zone, serial) +resp = knot2.dig(zone[0].name, "DNSKEY") +resp.cmp(knot1) + +t.end() diff --git a/tests-extra/tools/dnstest/__init__.py b/tests-extra/tools/dnstest/__init__.py index c91a5aa575..9ddbc40e70 100644 --- a/tests-extra/tools/dnstest/__init__.py +++ b/tests-extra/tools/dnstest/__init__.py @@ -3,6 +3,7 @@ "context", "inquirer", "keys", + "keystore", "knsupdate", "libknot", "module", diff --git a/tests-extra/tools/dnstest/keystore.py b/tests-extra/tools/dnstest/keystore.py new file mode 100644 index 0000000000..7df3ce5d2a --- /dev/null +++ b/tests-extra/tools/dnstest/keystore.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 + +import os +import shutil +from subprocess import Popen +from dnstest.context import Context + +class Keystore(object): + def __init__(self, id: str, ksk_only: bool = None, key_label: bool = None): + self.id = id + self.ksk_only = ksk_only + self.key_label = key_label + +class KeystorePEM(Keystore): + def __init__(self, id: str, ksk_only: bool = None, key_label: bool = None): + super().__init__(id, ksk_only, key_label) + + def config(self): + return os.path.join(Context().test.out_dir, f"{self.backend()}-{self.id}") + + def backend(self): + return "pem" + + def clear(self): + shutil.rmtree(self.config()) + +class KeystoreSoftHSM(Keystore): + so_pin = "12345" + + def __init__(self, id: str, ksk_only: bool = None, key_label: bool = None, + token: str = None, passwd: str = None, so_path: str = None): + super().__init__(id, ksk_only, key_label) + self.so_path = so_path if so_path else "/usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so" + self.passwd = passwd if passwd else "1234" + self.token = token if token else "knot" + self.dir = os.path.join(Context().test.out_dir, f"{self.backend()}-{self.id}") + self.init() + + def config(self): + return f"pkcs11:token={self.token};pin-value={self.passwd} {self.so_path}" + + def backend(self): + return "pkcs11" + + def config_file(self): + return os.path.join(self.dir, "softhsm.conf") + + def clear(self): + shutil.rmtree(os.path.join(self.dir, "tokens")) + + def init(self, keystore=None): + if not os.path.isdir(self.dir): + os.makedirs(os.path.join(self.dir, "tokens")) + with open(self.config_file(), "w") as conf_file: + config = ( + f"directories.tokendir = {self.dir}/tokens/\n" + "objectstore.backend = file\n" + "log.level = INFO\n" + ) + conf_file.write(config) + + if keystore: + self.clear() + shutil.copytree(os.path.join(keystore.dir, "tokens"), os.path.join(self.dir, "tokens")) + else: + init_process = Popen( + ['softhsm2-util', '--init-token', '--free', f'--label={self.token}', + f'--pin={self.passwd}', f'--so-pin={self.so_pin}', f'--module={self.so_path}'], + stdout=open(os.path.join(self.dir, "stdout"), mode='a'), + stderr=open(os.path.join(self.dir, "stderr"), mode='a'), + env=dict(os.environ, SOFTHSM2_CONF=self.config_file())) + init_process.wait() + + def link(self, server): + server.softhsm_conf = self.config_file() diff --git a/tests-extra/tools/dnstest/params.py b/tests-extra/tools/dnstest/params.py index 07ace0c217..39cb38ffe7 100644 --- a/tests-extra/tools/dnstest/params.py +++ b/tests-extra/tools/dnstest/params.py @@ -49,7 +49,7 @@ def get_param(env_name, default): valgrind_bin = get_binary("KNOT_TEST_VALGRIND", "valgrind") # KNOT_TEST_VALGRIND_FLAGS - valgrind flags. valgrind_flags = get_param("KNOT_TEST_VALGRIND_FLAGS", - "--leak-check=full --show-leak-kinds=all --track-origins=yes --vgdb=yes --verbose --num-callers=20 --trace-children=yes --trace-children-skip=/usr/*sh,/bin/*sh") + "--leak-check=full --show-leak-kinds=all --track-origins=yes --vgdb=yes --verbose --num-callers=20 --trace-children=yes --trace-children-skip=/usr/*sh,/bin/*sh --gen-suppressions=all") # KNOT_TEST_GDB - gdb binary. gdb_bin = get_binary("KNOT_TEST_GDB", "gdb") # KNOT_TEST_VGDB - vgdb binary. diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 5873e8d651..8d0f128110 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -192,6 +192,7 @@ def __init__(self): self.valgrind_log = None self.session_log = None self.confile = None + self.softhsm_conf = str() self.redis_backends = list() @@ -353,7 +354,9 @@ def start_server(self, clean=False): self.start_params, stdout=open(self.fout, mode=mode), stderr=open(self.ferr, mode=mode), - env=dict(os.environ, SSLKEYLOGFILE=self.session_log)) + env=dict(os.environ, + SSLKEYLOGFILE=self.session_log, + SOFTHSM2_CONF=self.softhsm_conf)) if self.valgrind: time.sleep(Server.START_WAIT_VALGRIND) @@ -1663,10 +1666,13 @@ def get_config(self): s.begin("keystore") have_keystore = True for ks in z.dnssec.keystore: - s.id_item("id", ks) - s.item("config", ks) - if ks.endswith("ksk"): - s.item("ksk-only", "on") + s.id_item("id", ks.id) + s.item_type("config", ks.config()) + s.item_type("backend", ks.backend()) + if ks.ksk_only: + s.item_type("ksk-only", ks.ksk_only) + if ks.key_label: + s.item_type("key-label", ks.key_label) if have_keystore: s.end() @@ -1677,9 +1683,11 @@ def get_config(self): s.begin("policy") s.id_item("id", z.name) for ci, val in self.conf["policy"][z.name].items(): - if ci not in [ "enable", "shared_policy_with" ]: + if ci not in [ "enable", "shared_policy_with", "keystore" ]: s.item_type(ci.replace("_", "-"), val) + if len(z.dnssec.keystore or []) > 0: + s.item_list("keystore", [ v.id for v in z.dnssec.keystore ]) if zone in self.conf["dnskey-sync"]: s.item("dnskey-sync", zone) if zone in self.conf["submission"]: From b7a1769bbc6ac641d2a9d04871510ac48e1c4e62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Thu, 11 Dec 2025 14:17:30 +0100 Subject: [PATCH 293/675] libs: support for RESINFO RRtype, RFC 9696 closes #962 --- doc/introduction.rst | 2 +- src/libknot/descriptor.c | 2 + src/libknot/descriptor.h | 1 + src/libknot/rrset-dump.c | 1 + src/libzscanner/scanner.c.g2 | 61785 ++++++++++++------------ src/libzscanner/scanner.c.t0 | 10894 ++--- src/libzscanner/scanner_body.rl | 5 + tests/libzscanner/TESTS | 1 + tests/libzscanner/data/61_RESINFO.in | 14 + tests/libzscanner/data/61_RESINFO.out | 32 + tests/libzscanner/test_zscanner.in | 2 +- 11 files changed, 36927 insertions(+), 35812 deletions(-) create mode 100644 tests/libzscanner/data/61_RESINFO.in create mode 100644 tests/libzscanner/data/61_RESINFO.out diff --git a/doc/introduction.rst b/doc/introduction.rst index f353ab4439..493d5d168d 100644 --- a/doc/introduction.rst +++ b/doc/introduction.rst @@ -42,7 +42,7 @@ DNS features: TXT, RP, AFSDB, RT, KEY, AAAA, LOC, SRV, NAPTR, KX, CERT, DNAME, APL, DS, SSHFP, IPSECKEY, RRSIG, NSEC, DNSKEY, DHCID, NSEC3, NSEC3PARAM, TLSA, SMIMEA, CDS, CDNSKEY, OPENPGPKEY, CSYNC, ZONEMD, SVCB, HTTPS, SPF, NID, L32, L64, LP, - DSYNC, EUI48, EUI64, URI, CAA, WALLET, and Unknown + DSYNC, EUI48, EUI64, URI, CAA, RESINFO, WALLET, and Unknown Server features: diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c index 1e018cba3a..69d4b17c8a 100644 --- a/src/libknot/descriptor.c +++ b/src/libknot/descriptor.c @@ -143,6 +143,8 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { KNOT_RDATA_WF_END }, "URI" }, [KNOT_RRTYPE_CAA] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "CAA" }, + [KNOT_RRTYPE_RESINFO] = { { KNOT_RDATA_WF_REMAINDER, + KNOT_RDATA_WF_END }, "RESINFO" }, [KNOT_RRTYPE_WALLET] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "WALLET" }, }; diff --git a/src/libknot/descriptor.h b/src/libknot/descriptor.h index 33d545b8df..b438356401 100644 --- a/src/libknot/descriptor.h +++ b/src/libknot/descriptor.h @@ -118,6 +118,7 @@ enum knot_rr_type { KNOT_RRTYPE_URI = 256, /*!< Uniform resource identifier. */ KNOT_RRTYPE_CAA = 257, /*!< Certification authority restriction. */ + KNOT_RRTYPE_RESINFO = 261, /*!< Resolver information as key/value pairs. */ KNOT_RRTYPE_WALLET = 262, /*!< Public wallet address. */ }; diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c index c410882394..d54c6580d5 100644 --- a/src/libknot/rrset-dump.c +++ b/src/libknot/rrset-dump.c @@ -2306,6 +2306,7 @@ static int txt_dump_data(rrset_dump_params_t *p, uint16_t type) return dump_mx(p); case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: return dump_txt(p); case KNOT_RRTYPE_KEY: diff --git a/src/libzscanner/scanner.c.g2 b/src/libzscanner/scanner.c.g2 index 857f52b239..2573fc5227 100644 --- a/src/libzscanner/scanner.c.g2 +++ b/src/libzscanner/scanner.c.g2 @@ -99,7 +99,7 @@ int zs_init( memset(s, 0, sizeof(*s)); // Nonzero initial scanner state. - s->cs = 1474; + s->cs = 1492; // Reset the file descriptor. s->file.descriptor = -1; @@ -429,7 +429,7 @@ static void parse( _again: switch ( cs ) { - case 1474: goto st1474; + case 1492: goto st1492; case 0: goto st0; case 1: goto st1; case 2: goto st2; @@ -444,7 +444,7 @@ _again: case 11: goto st11; case 12: goto st12; case 13: goto st13; - case 1475: goto st1475; + case 1493: goto st1493; case 14: goto st14; case 15: goto st15; case 16: goto st16; @@ -614,54 +614,54 @@ _again: case 180: goto st180; case 181: goto st181; case 182: goto st182; - case 1476: goto st1476; case 183: goto st183; case 184: goto st184; case 185: goto st185; case 186: goto st186; case 187: goto st187; case 188: goto st188; + case 1494: goto st1494; case 189: goto st189; case 190: goto st190; case 191: goto st191; case 192: goto st192; - case 1477: goto st1477; case 193: goto st193; case 194: goto st194; case 195: goto st195; case 196: goto st196; case 197: goto st197; case 198: goto st198; + case 1495: goto st1495; case 199: goto st199; case 200: goto st200; - case 1478: goto st1478; case 201: goto st201; case 202: goto st202; case 203: goto st203; - case 1479: goto st1479; case 204: goto st204; case 205: goto st205; case 206: goto st206; + case 1496: goto st1496; case 207: goto st207; case 208: goto st208; case 209: goto st209; + case 1497: goto st1497; case 210: goto st210; case 211: goto st211; case 212: goto st212; case 213: goto st213; case 214: goto st214; - case 1480: goto st1480; case 215: goto st215; case 216: goto st216; case 217: goto st217; case 218: goto st218; - case 1481: goto st1481; case 219: goto st219; case 220: goto st220; + case 1498: goto st1498; case 221: goto st221; case 222: goto st222; case 223: goto st223; case 224: goto st224; + case 1499: goto st1499; case 225: goto st225; case 226: goto st226; case 227: goto st227; @@ -675,13 +675,13 @@ _again: case 235: goto st235; case 236: goto st236; case 237: goto st237; - case 1482: goto st1482; case 238: goto st238; case 239: goto st239; case 240: goto st240; case 241: goto st241; case 242: goto st242; case 243: goto st243; + case 1500: goto st1500; case 244: goto st244; case 245: goto st245; case 246: goto st246; @@ -692,13 +692,13 @@ _again: case 251: goto st251; case 252: goto st252; case 253: goto st253; - case 1483: goto st1483; case 254: goto st254; case 255: goto st255; case 256: goto st256; case 257: goto st257; case 258: goto st258; case 259: goto st259; + case 1501: goto st1501; case 260: goto st260; case 261: goto st261; case 262: goto st262; @@ -758,30 +758,30 @@ _again: case 316: goto st316; case 317: goto st317; case 318: goto st318; - case 1484: goto st1484; case 319: goto st319; case 320: goto st320; - case 1485: goto st1485; case 321: goto st321; case 322: goto st322; - case 1486: goto st1486; case 323: goto st323; case 324: goto st324; + case 1502: goto st1502; case 325: goto st325; case 326: goto st326; + case 1503: goto st1503; case 327: goto st327; case 328: goto st328; + case 1504: goto st1504; case 329: goto st329; case 330: goto st330; case 331: goto st331; - case 1487: goto st1487; - case 1488: goto st1488; case 332: goto st332; case 333: goto st333; case 334: goto st334; case 335: goto st335; case 336: goto st336; case 337: goto st337; + case 1505: goto st1505; + case 1506: goto st1506; case 338: goto st338; case 339: goto st339; case 340: goto st340; @@ -791,24 +791,24 @@ _again: case 344: goto st344; case 345: goto st345; case 346: goto st346; - case 1489: goto st1489; case 347: goto st347; case 348: goto st348; case 349: goto st349; case 350: goto st350; case 351: goto st351; case 352: goto st352; + case 1507: goto st1507; case 353: goto st353; case 354: goto st354; case 355: goto st355; case 356: goto st356; - case 1490: goto st1490; case 357: goto st357; case 358: goto st358; case 359: goto st359; case 360: goto st360; case 361: goto st361; case 362: goto st362; + case 1508: goto st1508; case 363: goto st363; case 364: goto st364; case 365: goto st365; @@ -817,37 +817,37 @@ _again: case 368: goto st368; case 369: goto st369; case 370: goto st370; - case 1491: goto st1491; case 371: goto st371; case 372: goto st372; case 373: goto st373; case 374: goto st374; case 375: goto st375; case 376: goto st376; + case 1509: goto st1509; case 377: goto st377; - case 1492: goto st1492; case 378: goto st378; case 379: goto st379; case 380: goto st380; case 381: goto st381; case 382: goto st382; case 383: goto st383; + case 1510: goto st1510; case 384: goto st384; case 385: goto st385; case 386: goto st386; - case 1493: goto st1493; - case 1494: goto st1494; - case 1495: goto st1495; case 387: goto st387; case 388: goto st388; case 389: goto st389; - case 1496: goto st1496; case 390: goto st390; case 391: goto st391; case 392: goto st392; + case 1511: goto st1511; + case 1512: goto st1512; + case 1513: goto st1513; case 393: goto st393; case 394: goto st394; case 395: goto st395; + case 1514: goto st1514; case 396: goto st396; case 397: goto st397; case 398: goto st398; @@ -1018,12 +1018,9 @@ _again: case 563: goto st563; case 564: goto st564; case 565: goto st565; - case 1497: goto st1497; - case 1498: goto st1498; case 566: goto st566; case 567: goto st567; case 568: goto st568; - case 1499: goto st1499; case 569: goto st569; case 570: goto st570; case 571: goto st571; @@ -1033,9 +1030,12 @@ _again: case 575: goto st575; case 576: goto st576; case 577: goto st577; + case 1515: goto st1515; + case 1516: goto st1516; case 578: goto st578; case 579: goto st579; case 580: goto st580; + case 1517: goto st1517; case 581: goto st581; case 582: goto st582; case 583: goto st583; @@ -1194,50 +1194,50 @@ _again: case 736: goto st736; case 737: goto st737; case 738: goto st738; - case 1500: goto st1500; - case 1501: goto st1501; - case 1502: goto st1502; case 739: goto st739; case 740: goto st740; case 741: goto st741; case 742: goto st742; case 743: goto st743; - case 1503: goto st1503; case 744: goto st744; case 745: goto st745; case 746: goto st746; case 747: goto st747; - case 1504: goto st1504; - case 1505: goto st1505; - case 1506: goto st1506; case 748: goto st748; case 749: goto st749; - case 1507: goto st1507; case 750: goto st750; case 751: goto st751; case 752: goto st752; case 753: goto st753; case 754: goto st754; case 755: goto st755; - case 1508: goto st1508; case 756: goto st756; + case 1518: goto st1518; + case 1519: goto st1519; + case 1520: goto st1520; case 757: goto st757; case 758: goto st758; case 759: goto st759; case 760: goto st760; case 761: goto st761; + case 1521: goto st1521; case 762: goto st762; case 763: goto st763; case 764: goto st764; case 765: goto st765; + case 1522: goto st1522; + case 1523: goto st1523; + case 1524: goto st1524; case 766: goto st766; case 767: goto st767; + case 1525: goto st1525; case 768: goto st768; case 769: goto st769; case 770: goto st770; case 771: goto st771; case 772: goto st772; case 773: goto st773; + case 1526: goto st1526; case 774: goto st774; case 775: goto st775; case 776: goto st776; @@ -1280,8 +1280,6 @@ _again: case 813: goto st813; case 814: goto st814; case 815: goto st815; - case 1509: goto st1509; - case 1510: goto st1510; case 816: goto st816; case 817: goto st817; case 818: goto st818; @@ -1291,7 +1289,6 @@ _again: case 822: goto st822; case 823: goto st823; case 824: goto st824; - case 1511: goto st1511; case 825: goto st825; case 826: goto st826; case 827: goto st827; @@ -1301,6 +1298,8 @@ _again: case 831: goto st831; case 832: goto st832; case 833: goto st833; + case 1527: goto st1527; + case 1528: goto st1528; case 834: goto st834; case 835: goto st835; case 836: goto st836; @@ -1310,6 +1309,7 @@ _again: case 840: goto st840; case 841: goto st841; case 842: goto st842; + case 1529: goto st1529; case 843: goto st843; case 844: goto st844; case 845: goto st845; @@ -1387,7 +1387,6 @@ _again: case 917: goto st917; case 918: goto st918; case 919: goto st919; - case 1512: goto st1512; case 920: goto st920; case 921: goto st921; case 922: goto st922; @@ -1406,6 +1405,7 @@ _again: case 935: goto st935; case 936: goto st936; case 937: goto st937; + case 1530: goto st1530; case 938: goto st938; case 939: goto st939; case 940: goto st940; @@ -1492,7 +1492,6 @@ _again: case 1021: goto st1021; case 1022: goto st1022; case 1023: goto st1023; - case 1513: goto st1513; case 1024: goto st1024; case 1025: goto st1025; case 1026: goto st1026; @@ -1511,6 +1510,7 @@ _again: case 1039: goto st1039; case 1040: goto st1040; case 1041: goto st1041; + case 1531: goto st1531; case 1042: goto st1042; case 1043: goto st1043; case 1044: goto st1044; @@ -1534,7 +1534,6 @@ _again: case 1062: goto st1062; case 1063: goto st1063; case 1064: goto st1064; - case 1514: goto st1514; case 1065: goto st1065; case 1066: goto st1066; case 1067: goto st1067; @@ -1543,10 +1542,8 @@ _again: case 1070: goto st1070; case 1071: goto st1071; case 1072: goto st1072; - case 1515: goto st1515; case 1073: goto st1073; case 1074: goto st1074; - case 1516: goto st1516; case 1075: goto st1075; case 1076: goto st1076; case 1077: goto st1077; @@ -1555,17 +1552,19 @@ _again: case 1080: goto st1080; case 1081: goto st1081; case 1082: goto st1082; + case 1532: goto st1532; case 1083: goto st1083; case 1084: goto st1084; case 1085: goto st1085; case 1086: goto st1086; case 1087: goto st1087; case 1088: goto st1088; - case 1517: goto st1517; case 1089: goto st1089; case 1090: goto st1090; + case 1533: goto st1533; case 1091: goto st1091; case 1092: goto st1092; + case 1534: goto st1534; case 1093: goto st1093; case 1094: goto st1094; case 1095: goto st1095; @@ -1580,52 +1579,53 @@ _again: case 1104: goto st1104; case 1105: goto st1105; case 1106: goto st1106; + case 1535: goto st1535; case 1107: goto st1107; case 1108: goto st1108; case 1109: goto st1109; case 1110: goto st1110; - case 1518: goto st1518; case 1111: goto st1111; case 1112: goto st1112; case 1113: goto st1113; case 1114: goto st1114; case 1115: goto st1115; - case 1519: goto st1519; case 1116: goto st1116; case 1117: goto st1117; case 1118: goto st1118; case 1119: goto st1119; case 1120: goto st1120; - case 1520: goto st1520; case 1121: goto st1121; case 1122: goto st1122; case 1123: goto st1123; case 1124: goto st1124; case 1125: goto st1125; - case 1521: goto st1521; - case 1522: goto st1522; - case 1523: goto st1523; case 1126: goto st1126; case 1127: goto st1127; - case 1524: goto st1524; case 1128: goto st1128; + case 1536: goto st1536; case 1129: goto st1129; case 1130: goto st1130; case 1131: goto st1131; case 1132: goto st1132; case 1133: goto st1133; + case 1537: goto st1537; case 1134: goto st1134; case 1135: goto st1135; case 1136: goto st1136; case 1137: goto st1137; case 1138: goto st1138; + case 1538: goto st1538; case 1139: goto st1139; case 1140: goto st1140; case 1141: goto st1141; case 1142: goto st1142; case 1143: goto st1143; + case 1539: goto st1539; + case 1540: goto st1540; + case 1541: goto st1541; case 1144: goto st1144; case 1145: goto st1145; + case 1542: goto st1542; case 1146: goto st1146; case 1147: goto st1147; case 1148: goto st1148; @@ -1635,26 +1635,17 @@ _again: case 1152: goto st1152; case 1153: goto st1153; case 1154: goto st1154; - case 1525: goto st1525; - case 1526: goto st1526; - case 1527: goto st1527; case 1155: goto st1155; case 1156: goto st1156; case 1157: goto st1157; - case 1528: goto st1528; - case 1529: goto st1529; case 1158: goto st1158; case 1159: goto st1159; case 1160: goto st1160; case 1161: goto st1161; - case 1530: goto st1530; - case 1531: goto st1531; case 1162: goto st1162; case 1163: goto st1163; case 1164: goto st1164; case 1165: goto st1165; - case 1532: goto st1532; - case 1533: goto st1533; case 1166: goto st1166; case 1167: goto st1167; case 1168: goto st1168; @@ -1662,17 +1653,26 @@ _again: case 1170: goto st1170; case 1171: goto st1171; case 1172: goto st1172; + case 1543: goto st1543; + case 1544: goto st1544; + case 1545: goto st1545; case 1173: goto st1173; case 1174: goto st1174; case 1175: goto st1175; + case 1546: goto st1546; + case 1547: goto st1547; case 1176: goto st1176; case 1177: goto st1177; case 1178: goto st1178; case 1179: goto st1179; + case 1548: goto st1548; + case 1549: goto st1549; case 1180: goto st1180; case 1181: goto st1181; case 1182: goto st1182; case 1183: goto st1183; + case 1550: goto st1550; + case 1551: goto st1551; case 1184: goto st1184; case 1185: goto st1185; case 1186: goto st1186; @@ -1680,7 +1680,6 @@ _again: case 1188: goto st1188; case 1189: goto st1189; case 1190: goto st1190; - case 1534: goto st1534; case 1191: goto st1191; case 1192: goto st1192; case 1193: goto st1193; @@ -1696,10 +1695,10 @@ _again: case 1203: goto st1203; case 1204: goto st1204; case 1205: goto st1205; - case 1535: goto st1535; case 1206: goto st1206; case 1207: goto st1207; case 1208: goto st1208; + case 1552: goto st1552; case 1209: goto st1209; case 1210: goto st1210; case 1211: goto st1211; @@ -1710,51 +1709,46 @@ _again: case 1216: goto st1216; case 1217: goto st1217; case 1218: goto st1218; - case 1536: goto st1536; case 1219: goto st1219; case 1220: goto st1220; case 1221: goto st1221; case 1222: goto st1222; case 1223: goto st1223; + case 1553: goto st1553; case 1224: goto st1224; case 1225: goto st1225; case 1226: goto st1226; case 1227: goto st1227; case 1228: goto st1228; case 1229: goto st1229; - case 1537: goto st1537; - case 1538: goto st1538; case 1230: goto st1230; case 1231: goto st1231; case 1232: goto st1232; - case 1539: goto st1539; case 1233: goto st1233; case 1234: goto st1234; case 1235: goto st1235; case 1236: goto st1236; + case 1554: goto st1554; case 1237: goto st1237; case 1238: goto st1238; case 1239: goto st1239; case 1240: goto st1240; case 1241: goto st1241; case 1242: goto st1242; - case 1540: goto st1540; - case 1541: goto st1541; - case 1542: goto st1542; case 1243: goto st1243; case 1244: goto st1244; case 1245: goto st1245; case 1246: goto st1246; case 1247: goto st1247; + case 1555: goto st1555; + case 1556: goto st1556; case 1248: goto st1248; case 1249: goto st1249; case 1250: goto st1250; + case 1557: goto st1557; case 1251: goto st1251; case 1252: goto st1252; case 1253: goto st1253; - case 1543: goto st1543; - case 1544: goto st1544; - case 1545: goto st1545; case 1254: goto st1254; case 1255: goto st1255; case 1256: goto st1256; @@ -1762,24 +1756,23 @@ _again: case 1258: goto st1258; case 1259: goto st1259; case 1260: goto st1260; + case 1558: goto st1558; + case 1559: goto st1559; + case 1560: goto st1560; case 1261: goto st1261; case 1262: goto st1262; case 1263: goto st1263; case 1264: goto st1264; case 1265: goto st1265; - case 1546: goto st1546; case 1266: goto st1266; case 1267: goto st1267; case 1268: goto st1268; - case 1547: goto st1547; - case 1548: goto st1548; case 1269: goto st1269; - case 1549: goto st1549; - case 1550: goto st1550; case 1270: goto st1270; - case 1551: goto st1551; - case 1552: goto st1552; case 1271: goto st1271; + case 1561: goto st1561; + case 1562: goto st1562; + case 1563: goto st1563; case 1272: goto st1272; case 1273: goto st1273; case 1274: goto st1274; @@ -1792,11 +1785,18 @@ _again: case 1281: goto st1281; case 1282: goto st1282; case 1283: goto st1283; + case 1564: goto st1564; case 1284: goto st1284; case 1285: goto st1285; case 1286: goto st1286; + case 1565: goto st1565; + case 1566: goto st1566; case 1287: goto st1287; + case 1567: goto st1567; + case 1568: goto st1568; case 1288: goto st1288; + case 1569: goto st1569; + case 1570: goto st1570; case 1289: goto st1289; case 1290: goto st1290; case 1291: goto st1291; @@ -1821,7 +1821,6 @@ _again: case 1310: goto st1310; case 1311: goto st1311; case 1312: goto st1312; - case 1553: goto st1553; case 1313: goto st1313; case 1314: goto st1314; case 1315: goto st1315; @@ -1833,7 +1832,6 @@ _again: case 1321: goto st1321; case 1322: goto st1322; case 1323: goto st1323; - case 1554: goto st1554; case 1324: goto st1324; case 1325: goto st1325; case 1326: goto st1326; @@ -1841,19 +1839,19 @@ _again: case 1328: goto st1328; case 1329: goto st1329; case 1330: goto st1330; + case 1571: goto st1571; case 1331: goto st1331; - case 1555: goto st1555; case 1332: goto st1332; case 1333: goto st1333; case 1334: goto st1334; case 1335: goto st1335; case 1336: goto st1336; - case 1556: goto st1556; case 1337: goto st1337; case 1338: goto st1338; case 1339: goto st1339; case 1340: goto st1340; case 1341: goto st1341; + case 1572: goto st1572; case 1342: goto st1342; case 1343: goto st1343; case 1344: goto st1344; @@ -1862,12 +1860,13 @@ _again: case 1347: goto st1347; case 1348: goto st1348; case 1349: goto st1349; + case 1573: goto st1573; case 1350: goto st1350; case 1351: goto st1351; case 1352: goto st1352; case 1353: goto st1353; case 1354: goto st1354; - case 1557: goto st1557; + case 1574: goto st1574; case 1355: goto st1355; case 1356: goto st1356; case 1357: goto st1357; @@ -1886,8 +1885,8 @@ _again: case 1370: goto st1370; case 1371: goto st1371; case 1372: goto st1372; + case 1575: goto st1575; case 1373: goto st1373; - case 1558: goto st1558; case 1374: goto st1374; case 1375: goto st1375; case 1376: goto st1376; @@ -1903,18 +1902,15 @@ _again: case 1386: goto st1386; case 1387: goto st1387; case 1388: goto st1388; - case 1559: goto st1559; - case 1560: goto st1560; - case 1561: goto st1561; case 1389: goto st1389; case 1390: goto st1390; case 1391: goto st1391; + case 1576: goto st1576; case 1392: goto st1392; case 1393: goto st1393; case 1394: goto st1394; case 1395: goto st1395; case 1396: goto st1396; - case 1562: goto st1562; case 1397: goto st1397; case 1398: goto st1398; case 1399: goto st1399; @@ -1925,10 +1921,10 @@ _again: case 1404: goto st1404; case 1405: goto st1405; case 1406: goto st1406; + case 1577: goto st1577; + case 1578: goto st1578; + case 1579: goto st1579; case 1407: goto st1407; - case 1563: goto st1563; - case 1564: goto st1564; - case 1565: goto st1565; case 1408: goto st1408; case 1409: goto st1409; case 1410: goto st1410; @@ -1936,7 +1932,7 @@ _again: case 1412: goto st1412; case 1413: goto st1413; case 1414: goto st1414; - case 1566: goto st1566; + case 1580: goto st1580; case 1415: goto st1415; case 1416: goto st1416; case 1417: goto st1417; @@ -1948,61 +1944,83 @@ _again: case 1423: goto st1423; case 1424: goto st1424; case 1425: goto st1425; + case 1581: goto st1581; + case 1582: goto st1582; + case 1583: goto st1583; case 1426: goto st1426; case 1427: goto st1427; - case 1567: goto st1567; case 1428: goto st1428; case 1429: goto st1429; case 1430: goto st1430; case 1431: goto st1431; case 1432: goto st1432; + case 1584: goto st1584; case 1433: goto st1433; case 1434: goto st1434; - case 1568: goto st1568; case 1435: goto st1435; case 1436: goto st1436; case 1437: goto st1437; case 1438: goto st1438; case 1439: goto st1439; case 1440: goto st1440; - case 1569: goto st1569; case 1441: goto st1441; case 1442: goto st1442; case 1443: goto st1443; case 1444: goto st1444; case 1445: goto st1445; + case 1585: goto st1585; case 1446: goto st1446; - case 1570: goto st1570; case 1447: goto st1447; case 1448: goto st1448; case 1449: goto st1449; case 1450: goto st1450; case 1451: goto st1451; case 1452: goto st1452; + case 1586: goto st1586; case 1453: goto st1453; case 1454: goto st1454; - case 1571: goto st1571; case 1455: goto st1455; case 1456: goto st1456; case 1457: goto st1457; case 1458: goto st1458; + case 1587: goto st1587; case 1459: goto st1459; case 1460: goto st1460; case 1461: goto st1461; - case 1572: goto st1572; case 1462: goto st1462; case 1463: goto st1463; case 1464: goto st1464; + case 1588: goto st1588; case 1465: goto st1465; case 1466: goto st1466; case 1467: goto st1467; case 1468: goto st1468; case 1469: goto st1469; case 1470: goto st1470; - case 1573: goto st1573; case 1471: goto st1471; case 1472: goto st1472; + case 1589: goto st1589; case 1473: goto st1473; + case 1474: goto st1474; + case 1475: goto st1475; + case 1476: goto st1476; + case 1477: goto st1477; + case 1478: goto st1478; + case 1479: goto st1479; + case 1590: goto st1590; + case 1480: goto st1480; + case 1481: goto st1481; + case 1482: goto st1482; + case 1483: goto st1483; + case 1484: goto st1484; + case 1485: goto st1485; + case 1486: goto st1486; + case 1487: goto st1487; + case 1488: goto st1488; + case 1591: goto st1591; + case 1489: goto st1489; + case 1490: goto st1490; + case 1491: goto st1491; default: break; } @@ -2015,7 +2033,7 @@ tr23: { s->line_counter++; } - goto st1474; + goto st1492; tr89: { s->buffer[0] = 0; @@ -2024,7 +2042,7 @@ tr89: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -2037,23 +2055,23 @@ tr89: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1474; goto _out;} + {p++; cs = 1492; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1474; goto _out;} + p--; {p++; cs = 1492; goto _out;} } } { s->line_counter++; } - goto st1474; + goto st1492; tr95: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -2066,18 +2084,18 @@ tr95: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1474; goto _out;} + {p++; cs = 1492; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1474; goto _out;} + p--; {p++; cs = 1492; goto _out;} } } { s->line_counter++; } - goto st1474; + goto st1492; tr98: { s->buffer[s->buffer_length++] = 0; @@ -2088,14 +2106,14 @@ tr98: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1474; goto _out;} + {p++; cs = 1492; goto _out;} } } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -2108,19 +2126,19 @@ tr98: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1474; goto _out;} + {p++; cs = 1492; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1474; goto _out;} + p--; {p++; cs = 1492; goto _out;} } } { s->line_counter++; } - goto st1474; -tr783: + goto st1492; +tr797: { s->buffer[s->buffer_length++] = 0; @@ -2130,15 +2148,15 @@ tr783: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1474; goto _out;} + {p++; cs = 1492; goto _out;} } } } { s->line_counter++; } - goto st1474; -tr877: + goto st1492; +tr891: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2152,14 +2170,14 @@ tr877: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1474; goto _out;} + {p++; cs = 1492; goto _out;} } } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -2172,19 +2190,19 @@ tr877: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1474; goto _out;} + {p++; cs = 1492; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1474; goto _out;} + p--; {p++; cs = 1492; goto _out;} } } { s->line_counter++; } - goto st1474; -tr995: + goto st1492; +tr1009: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2192,7 +2210,7 @@ tr995: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -2205,12 +2223,12 @@ tr995: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1474; goto _out;} + {p++; cs = 1492; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1474; goto _out;} + p--; {p++; cs = 1492; goto _out;} } } { @@ -2225,16 +2243,16 @@ tr995: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1474; goto _out;} + {p++; cs = 1492; goto _out;} } } } - goto st1474; -tr999: + goto st1492; +tr1013: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -2247,12 +2265,12 @@ tr999: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1474; goto _out;} + {p++; cs = 1492; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1474; goto _out;} + p--; {p++; cs = 1492; goto _out;} } } { @@ -2267,12 +2285,12 @@ tr999: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1474; goto _out;} + {p++; cs = 1492; goto _out;} } } } - goto st1474; -tr4161: + goto st1492; +tr4196: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2280,8 +2298,8 @@ tr4161: { s->line_counter++; } - goto st1474; -tr4227: + goto st1492; +tr4262: { NOERR; } @@ -2292,11 +2310,11 @@ tr4227: { s->line_counter++; } - goto st1474; -st1474: + goto st1492; +st1492: if ( ++p == pe ) - goto _test_eof1474; -case 1474: + goto _test_eof1492; +case 1492: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -2310,926 +2328,926 @@ case 1474: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4156; - case 32: goto tr4156; - case 36: goto st193; - case 40: goto tr4158; - case 41: goto tr4159; - case 42: goto tr4160; - case 92: goto tr4160; - case 95: goto tr4160; - case 1802: goto tr4161; - case 1851: goto tr4162; - case 2058: goto tr4163; - case 2107: goto tr4164; + case 9: goto tr4191; + case 32: goto tr4191; + case 36: goto st199; + case 40: goto tr4193; + case 41: goto tr4194; + case 42: goto tr4195; + case 92: goto tr4195; + case 95: goto tr4195; + case 1802: goto tr4196; + case 1851: goto tr4197; + case 2058: goto tr4198; + case 2107: goto tr4199; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4160; + goto tr4195; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4160; + goto tr4195; } else - goto tr4160; - goto tr4155; + goto tr4195; + goto tr4190; tr0: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; tr27: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } goto st0; tr39: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } goto st0; tr63: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; tr77: { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; tr85: { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; tr91: { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; tr120: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; tr148: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; tr154: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr671: +tr685: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr673: +tr687: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr784: +tr798: { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr795: +tr809: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr809: +tr823: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr837: +tr851: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr852: +tr866: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr890: +tr904: { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr900: +tr914: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr906: +tr920: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr919: +tr933: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr933: +tr947: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1025: +tr1039: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1040: +tr1054: { WARN(ZS_BAD_DNAME_CHAR); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1053: +tr1067: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_DNAME_CHAR); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1061: +tr1075: { WARN(ZS_BAD_TEXT_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_TEXT); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1069: +tr1083: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_TEXT_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_TEXT); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1085: +tr1099: { WARN(ZS_BAD_TEXT); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1094: +tr1108: { ERR(ZS_BAD_TTL); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1100: +tr1114: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { ERR(ZS_BAD_TTL); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1102: +tr1116: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } { ERR(ZS_BAD_TTL); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1114: +tr1128: { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } { ERR(ZS_BAD_TTL); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1123: +tr1137: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { ERR(ZS_BAD_TTL); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1138: +tr1152: { ERR(ZS_BAD_ORIGIN); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1150: +tr1164: { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } { ERR(ZS_BAD_ORIGIN); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1166: +tr1180: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { ERR(ZS_BAD_ORIGIN); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1180: +tr1194: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1181: +tr1195: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1188: +tr1202: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1198: +tr1212: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1215: +tr1229: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1232: +tr1246: { WARN(ZS_BAD_BASE64_CHAR); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1248: +tr1262: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1453: +tr1474: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr1472: +tr1493: { WARN(ZS_BAD_BITMAP); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2070: +tr2105: { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2076: +tr2111: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2084: +tr2119: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2146: +tr2181: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2185: +tr2220: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2213: +tr2248: { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2309: +tr2344: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2353: +tr2388: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2444: +tr2479: { WARN(ZS_BAD_ALGORITHM); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2566: +tr2601: { WARN(ZS_BAD_CERT_TYPE); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2619: +tr2654: { WARN(ZS_BAD_DSYNC_SCHEME); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2630: +tr2665: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2653: +tr2688: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2672: +tr2707: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2838: +tr2873: { s->long_string = false; } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr2861: +tr2896: { WARN(ZS_BAD_LOC_DATA); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr3264: +tr3299: { WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr3279: +tr3314: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr3324: +tr3359: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr3395: +tr3430: { WARN(ZS_BAD_GATEWAY); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr3410: +tr3445: { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr3424: +tr3459: { WARN(ZS_BAD_GATEWAY); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr3447: +tr3482: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr3471: +tr3506: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr3478: +tr3513: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr3628: +tr3663: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr3785: +tr3820: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr4024: +tr4059: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_CHAR_COLON); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr4030: +tr4065: { WARN(ZS_BAD_CHAR_COLON); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr4036: +tr4071: { WARN(ZS_BAD_CHAR_DASH); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr4155: +tr4190: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr4177: +tr4212: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr4201: +tr4236: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr4221: +tr4256: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; -tr4245: +tr4280: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_RDATA); - p--; {goto st319;} + p--; {goto st325;} } { WARN(ZS_BAD_REST); - p--; {goto st319;} + p--; {goto st325;} } goto st0; st0: @@ -3239,7 +3257,7 @@ tr2: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -3248,16 +3266,16 @@ tr3: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st1; -tr4156: +tr4191: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -3265,17 +3283,17 @@ tr4156: s->buffer_length = 0; } goto st1; -tr4158: +tr4193: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -3284,17 +3302,17 @@ tr4158: s->buffer_length = 0; } goto st1; -tr4159: +tr4194: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -3303,18 +3321,18 @@ tr4159: s->buffer_length = 0; } goto st1; -tr4231: +tr4266: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -3322,18 +3340,18 @@ tr4231: s->buffer_length = 0; } goto st1; -tr4232: +tr4267: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -3341,14 +3359,14 @@ tr4232: s->buffer_length = 0; } goto st1; -tr4222: +tr4257: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -3356,20 +3374,20 @@ tr4222: s->buffer_length = 0; } goto st1; -tr4224: +tr4259: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -3378,20 +3396,20 @@ tr4224: s->buffer_length = 0; } goto st1; -tr4225: +tr4260: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -3480,7 +3498,7 @@ tr4: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } goto st2; @@ -3496,7 +3514,7 @@ tr31: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } goto st2; @@ -3524,12 +3542,12 @@ case 2: case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st207; + case 83: goto st213; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st207; + case 115: goto st213; case 119: goto tr36; case 2058: goto tr37; case 2107: goto tr38; @@ -3541,7 +3559,7 @@ tr41: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -3550,7 +3568,7 @@ tr42: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -3566,7 +3584,7 @@ tr28: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } goto st3; @@ -3576,13 +3594,13 @@ tr29: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -3593,13 +3611,13 @@ tr30: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -3610,14 +3628,14 @@ tr37: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } goto st3; -tr836: +tr850: { s->buffer[s->buffer_length++] = 0; @@ -3635,13 +3653,13 @@ tr836: s->line_counter++; } goto st3; -tr829: +tr843: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -3649,17 +3667,17 @@ tr829: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } goto st3; -tr830: +tr844: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -3667,24 +3685,24 @@ tr830: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st3; -tr831: +tr845: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -3692,24 +3710,24 @@ tr831: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st3; -tr833: +tr847: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -3717,7 +3735,7 @@ tr833: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -3798,7 +3816,7 @@ tr43: s->r_class = s->default_class; } goto st4; -tr736: +tr750: { s->r_ttl = s->default_ttl; } @@ -3828,12 +3846,12 @@ case 4: case 32: goto tr64; case 40: goto tr65; case 41: goto tr66; - case 65: goto st277; - case 70: goto st280; - case 80: goto st284; - case 97: goto st277; - case 102: goto st280; - case 112: goto st284; + case 65: goto st283; + case 70: goto st286; + case 80: goto st290; + case 97: goto st283; + case 102: goto st286; + case 112: goto st290; case 3082: goto tr70; case 3131: goto tr71; case 3338: goto tr72; @@ -3846,7 +3864,7 @@ tr78: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -3855,7 +3873,7 @@ tr79: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -3879,7 +3897,7 @@ tr65: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -3892,7 +3910,7 @@ tr66: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -3938,7 +3956,7 @@ tr167: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -3951,7 +3969,7 @@ tr168: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -3979,7 +3997,7 @@ tr189: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -3992,7 +4010,7 @@ tr190: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4020,7 +4038,7 @@ tr197: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4033,7 +4051,7 @@ tr198: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4061,7 +4079,7 @@ tr207: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4074,7 +4092,7 @@ tr208: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4102,7 +4120,7 @@ tr218: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4115,7 +4133,7 @@ tr219: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4143,7 +4161,7 @@ tr229: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4156,7 +4174,7 @@ tr230: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4184,7 +4202,7 @@ tr243: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4197,7 +4215,7 @@ tr244: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4225,7 +4243,7 @@ tr255: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4238,7 +4256,7 @@ tr256: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4266,7 +4284,7 @@ tr266: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4279,7 +4297,7 @@ tr267: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4307,7 +4325,7 @@ tr274: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4320,7 +4338,7 @@ tr275: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4348,7 +4366,7 @@ tr285: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4361,7 +4379,7 @@ tr286: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4389,7 +4407,7 @@ tr298: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4402,7 +4420,7 @@ tr299: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4430,7 +4448,7 @@ tr307: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4443,7 +4461,7 @@ tr308: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4471,7 +4489,7 @@ tr320: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4484,7 +4502,7 @@ tr321: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4512,7 +4530,7 @@ tr331: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4525,7 +4543,7 @@ tr332: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4553,7 +4571,7 @@ tr375: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4566,7 +4584,7 @@ tr376: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4594,7 +4612,7 @@ tr386: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4607,7 +4625,7 @@ tr387: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4635,7 +4653,7 @@ tr394: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4648,7 +4666,7 @@ tr395: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4676,7 +4694,7 @@ tr407: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4689,7 +4707,7 @@ tr408: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4717,7 +4735,7 @@ tr416: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4730,7 +4748,7 @@ tr417: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4758,7 +4776,7 @@ tr425: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4771,7 +4789,7 @@ tr426: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4799,7 +4817,7 @@ tr433: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4812,7 +4830,7 @@ tr434: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4840,7 +4858,7 @@ tr446: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4853,7 +4871,7 @@ tr447: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4881,7 +4899,7 @@ tr454: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4894,7 +4912,7 @@ tr455: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4922,7 +4940,7 @@ tr468: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4935,7 +4953,7 @@ tr469: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -4963,7 +4981,7 @@ tr477: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -4976,7 +4994,7 @@ tr478: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -5004,7 +5022,7 @@ tr485: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -5017,7 +5035,7 @@ tr486: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -5045,7 +5063,7 @@ tr495: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -5058,7 +5076,7 @@ tr496: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -5086,7 +5104,7 @@ tr504: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -5099,7 +5117,7 @@ tr505: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -5127,7 +5145,7 @@ tr517: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -5140,7 +5158,7 @@ tr518: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -5168,7 +5186,7 @@ tr534: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -5181,7 +5199,7 @@ tr535: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -5209,7 +5227,7 @@ tr544: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -5222,7 +5240,7 @@ tr545: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -5236,13 +5254,54 @@ tr546: s->line_counter++; } goto st5; -tr554: +tr560: + { s->r_type = KNOT_RRTYPE_RESINFO; } + { + rdata_tail = s->r_data; + } + goto st5; +tr561: + { s->r_type = KNOT_RRTYPE_RESINFO; } + { + rdata_tail = s->r_data; + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st325;} + } + s->multiline = true; + } + goto st5; +tr562: + { s->r_type = KNOT_RRTYPE_RESINFO; } + { + rdata_tail = s->r_data; + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st325;} + } + s->multiline = false; + } + goto st5; +tr563: + { s->r_type = KNOT_RRTYPE_RESINFO; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + goto st5; +tr568: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; } goto st5; -tr555: +tr569: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5250,12 +5309,12 @@ tr555: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr556: +tr570: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5263,12 +5322,12 @@ tr556: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr557: +tr571: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5277,13 +5336,13 @@ tr557: s->line_counter++; } goto st5; -tr565: +tr579: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; } goto st5; -tr566: +tr580: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5291,12 +5350,12 @@ tr566: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr567: +tr581: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5304,12 +5363,12 @@ tr567: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr568: +tr582: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5318,13 +5377,13 @@ tr568: s->line_counter++; } goto st5; -tr573: +tr587: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; } goto st5; -tr574: +tr588: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5332,12 +5391,12 @@ tr574: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr575: +tr589: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5345,12 +5404,12 @@ tr575: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr576: +tr590: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5359,13 +5418,13 @@ tr576: s->line_counter++; } goto st5; -tr591: +tr605: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; } goto st5; -tr592: +tr606: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5373,12 +5432,12 @@ tr592: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr593: +tr607: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5386,12 +5445,12 @@ tr593: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr594: +tr608: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5400,13 +5459,13 @@ tr594: s->line_counter++; } goto st5; -tr600: +tr614: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; } goto st5; -tr601: +tr615: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5414,12 +5473,12 @@ tr601: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr602: +tr616: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5427,12 +5486,12 @@ tr602: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr603: +tr617: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5441,13 +5500,13 @@ tr603: s->line_counter++; } goto st5; -tr609: +tr623: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; } goto st5; -tr610: +tr624: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5455,12 +5514,12 @@ tr610: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr611: +tr625: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5468,12 +5527,12 @@ tr611: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr612: +tr626: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5482,13 +5541,13 @@ tr612: s->line_counter++; } goto st5; -tr618: +tr632: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; } goto st5; -tr619: +tr633: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5496,12 +5555,12 @@ tr619: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr620: +tr634: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5509,12 +5568,12 @@ tr620: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr621: +tr635: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5523,13 +5582,13 @@ tr621: s->line_counter++; } goto st5; -tr629: +tr643: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; } goto st5; -tr630: +tr644: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5537,12 +5596,12 @@ tr630: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr631: +tr645: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5550,12 +5609,12 @@ tr631: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr632: +tr646: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5564,13 +5623,13 @@ tr632: s->line_counter++; } goto st5; -tr639: +tr653: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; } goto st5; -tr640: +tr654: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5578,12 +5637,12 @@ tr640: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr641: +tr655: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5591,12 +5650,12 @@ tr641: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr642: +tr656: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5605,13 +5664,13 @@ tr642: s->line_counter++; } goto st5; -tr652: +tr666: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; } goto st5; -tr653: +tr667: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5619,12 +5678,12 @@ tr653: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr654: +tr668: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5632,12 +5691,12 @@ tr654: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr655: +tr669: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5646,13 +5705,13 @@ tr655: s->line_counter++; } goto st5; -tr661: +tr675: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; } goto st5; -tr662: +tr676: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5660,12 +5719,12 @@ tr662: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr663: +tr677: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5673,12 +5732,12 @@ tr663: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr664: +tr678: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5687,26 +5746,26 @@ tr664: s->line_counter++; } goto st5; -tr674: +tr688: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { rdata_tail = s->r_data; } goto st5; -tr675: +tr689: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -5715,18 +5774,18 @@ tr675: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr676: +tr690: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -5735,18 +5794,18 @@ tr676: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr678: +tr692: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -5756,13 +5815,13 @@ tr678: s->line_counter++; } goto st5; -tr685: +tr699: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; } goto st5; -tr686: +tr700: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5770,12 +5829,12 @@ tr686: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr687: +tr701: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5783,12 +5842,12 @@ tr687: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr688: +tr702: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5797,13 +5856,13 @@ tr688: s->line_counter++; } goto st5; -tr698: +tr712: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; } goto st5; -tr699: +tr713: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5811,12 +5870,12 @@ tr699: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr700: +tr714: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5824,12 +5883,12 @@ tr700: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr701: +tr715: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5838,13 +5897,13 @@ tr701: s->line_counter++; } goto st5; -tr711: +tr725: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; } goto st5; -tr712: +tr726: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5852,12 +5911,12 @@ tr712: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr713: +tr727: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5865,12 +5924,12 @@ tr713: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr714: +tr728: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5879,13 +5938,13 @@ tr714: s->line_counter++; } goto st5; -tr962: +tr976: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; } goto st5; -tr963: +tr977: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5893,12 +5952,12 @@ tr963: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr964: +tr978: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5906,12 +5965,12 @@ tr964: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr965: +tr979: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5920,13 +5979,13 @@ tr965: s->line_counter++; } goto st5; -tr973: +tr987: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; } goto st5; -tr974: +tr988: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -5934,12 +5993,12 @@ tr974: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr975: +tr989: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -5947,12 +6006,12 @@ tr975: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr976: +tr990: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -5961,13 +6020,13 @@ tr976: s->line_counter++; } goto st5; -tr982: +tr996: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; } goto st5; -tr983: +tr997: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -5975,12 +6034,12 @@ tr983: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st5; -tr984: +tr998: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -5988,12 +6047,12 @@ tr984: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st5; -tr985: +tr999: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -6053,91 +6112,92 @@ tr72: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -6146,91 +6206,92 @@ tr75: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -6244,91 +6305,92 @@ tr99: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -6384,12 +6446,13 @@ tr100: case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: case KNOT_RRTYPE_DSYNC: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st732;} + {stack[top++] = 6;goto st750;} // Next types can have empty rdata. case KNOT_RRTYPE_APL: default: - {stack[top++] = 6;goto st741;} + {stack[top++] = 6;goto st759;} } } goto st6; @@ -6402,91 +6465,92 @@ tr171: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -6499,91 +6563,92 @@ tr193: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -6596,91 +6661,92 @@ tr201: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -6693,91 +6759,92 @@ tr211: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -6790,91 +6857,92 @@ tr222: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -6887,91 +6955,92 @@ tr233: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -6984,91 +7053,92 @@ tr247: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -7081,91 +7151,92 @@ tr259: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -7178,91 +7249,92 @@ tr270: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -7275,91 +7347,92 @@ tr279: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -7372,91 +7445,92 @@ tr289: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -7469,91 +7543,92 @@ tr302: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -7566,91 +7641,92 @@ tr311: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -7663,91 +7739,92 @@ tr324: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -7760,91 +7837,92 @@ tr335: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -7857,91 +7935,92 @@ tr379: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -7954,91 +8033,92 @@ tr390: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -8051,91 +8131,92 @@ tr398: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -8148,91 +8229,92 @@ tr411: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -8245,91 +8327,92 @@ tr420: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -8342,91 +8425,92 @@ tr429: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -8439,91 +8523,92 @@ tr437: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -8536,91 +8621,92 @@ tr450: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -8633,91 +8719,92 @@ tr458: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -8730,91 +8817,92 @@ tr472: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -8827,91 +8915,92 @@ tr481: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -8924,91 +9013,92 @@ tr490: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -9021,91 +9111,92 @@ tr500: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -9118,91 +9209,92 @@ tr509: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -9215,91 +9307,92 @@ tr521: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -9312,91 +9405,92 @@ tr538: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -9409,95 +9503,194 @@ tr548: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} + {stack[top++] = 6;goto st1429;} case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 6;goto st1453;} + case KNOT_RRTYPE_URI: + {stack[top++] = 6;goto st1459;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 6;goto st1467;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 6;goto st1475;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1481;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st325;} + } + } + goto st6; +tr565: + { s->r_type = KNOT_RRTYPE_RESINFO; } + { + rdata_tail = s->r_data; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 6;goto st1089;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 6;goto st1093;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 6;goto st1125;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 6;goto st1130;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 6;goto st1135;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 6;goto st1140;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 6;goto st1144;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 6;goto st1146;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 6;goto st1201;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 6;goto st1212;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 6;goto st1229;} + case KNOT_RRTYPE_APL: + {stack[top++] = 6;goto st1240;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 6;goto st1251;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 6;goto st1264;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 6;goto st1274;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 6;goto st1313;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 6;goto st1339;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 6;goto st1342;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 6;goto st1353;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1355;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 6;goto st1384;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 6;goto st1397;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 6;goto st1410;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 6;goto st1416;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 6;goto st1434;} + case KNOT_RRTYPE_L32: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr559: +tr573: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -9506,95 +9699,96 @@ tr559: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr570: +tr584: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -9603,95 +9797,96 @@ tr570: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr578: +tr592: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -9700,95 +9895,96 @@ tr578: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr596: +tr610: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -9797,95 +9993,96 @@ tr596: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr605: +tr619: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -9894,95 +10091,96 @@ tr605: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr614: +tr628: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -9991,95 +10189,96 @@ tr614: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr623: +tr637: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -10088,95 +10287,96 @@ tr623: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr634: +tr648: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -10185,95 +10385,96 @@ tr634: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr644: +tr658: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -10282,95 +10483,96 @@ tr644: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr657: +tr671: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -10379,95 +10581,96 @@ tr657: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr666: +tr680: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -10476,101 +10679,102 @@ tr666: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr680: +tr694: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -10580,95 +10784,96 @@ tr680: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr690: +tr704: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -10677,95 +10882,96 @@ tr690: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr703: +tr717: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -10774,95 +10980,96 @@ tr703: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr716: +tr730: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -10871,95 +11078,96 @@ tr716: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr967: +tr981: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -10968,95 +11176,96 @@ tr967: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr978: +tr992: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -11065,95 +11274,96 @@ tr978: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; -tr987: +tr1001: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -11162,91 +11372,92 @@ tr987: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1071;} + {stack[top++] = 6;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1073;} + {stack[top++] = 6;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1075;} + {stack[top++] = 6;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1107;} + {stack[top++] = 6;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1112;} + {stack[top++] = 6;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1117;} + {stack[top++] = 6;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1122;} + {stack[top++] = 6;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1126;} + {stack[top++] = 6;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1128;} + {stack[top++] = 6;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1183;} + {stack[top++] = 6;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1194;} + {stack[top++] = 6;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1211;} + {stack[top++] = 6;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1222;} + {stack[top++] = 6;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1233;} + {stack[top++] = 6;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1246;} + {stack[top++] = 6;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1256;} + {stack[top++] = 6;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1295;} + {stack[top++] = 6;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1321;} + {stack[top++] = 6;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1324;} + {stack[top++] = 6;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1335;} + {stack[top++] = 6;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1337;} + {stack[top++] = 6;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1366;} + {stack[top++] = 6;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1379;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1392;} + {stack[top++] = 6;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1398;} + {stack[top++] = 6;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1435;} + {stack[top++] = 6;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1449;} + {stack[top++] = 6;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1457;} + {stack[top++] = 6;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1463;} + {stack[top++] = 6;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st6; @@ -11281,7 +11492,7 @@ tr93: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -11290,7 +11501,7 @@ tr94: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -11309,7 +11520,7 @@ tr87: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -11322,7 +11533,7 @@ tr88: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -11375,7 +11586,7 @@ tr97: } } goto st8; -tr878: +tr892: { s->buffer[0] = 0; s->buffer_length = 0; @@ -11389,7 +11600,7 @@ tr878: } } goto st8; -tr882: +tr896: { s->buffer_length = 0; } @@ -11729,7 +11940,16 @@ tr547: s->buffer_length = 0; } goto st10; -tr558: +tr564: + { s->r_type = KNOT_RRTYPE_RESINFO; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + goto st10; +tr572: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -11738,7 +11958,7 @@ tr558: s->buffer_length = 0; } goto st10; -tr569: +tr583: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -11747,7 +11967,7 @@ tr569: s->buffer_length = 0; } goto st10; -tr577: +tr591: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -11756,7 +11976,7 @@ tr577: s->buffer_length = 0; } goto st10; -tr595: +tr609: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -11765,7 +11985,7 @@ tr595: s->buffer_length = 0; } goto st10; -tr604: +tr618: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -11774,7 +11994,7 @@ tr604: s->buffer_length = 0; } goto st10; -tr613: +tr627: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -11783,7 +12003,7 @@ tr613: s->buffer_length = 0; } goto st10; -tr622: +tr636: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -11792,7 +12012,7 @@ tr622: s->buffer_length = 0; } goto st10; -tr633: +tr647: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -11801,7 +12021,7 @@ tr633: s->buffer_length = 0; } goto st10; -tr643: +tr657: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -11810,7 +12030,7 @@ tr643: s->buffer_length = 0; } goto st10; -tr656: +tr670: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -11819,7 +12039,7 @@ tr656: s->buffer_length = 0; } goto st10; -tr665: +tr679: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -11828,13 +12048,13 @@ tr665: s->buffer_length = 0; } goto st10; -tr679: +tr693: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -11844,7 +12064,7 @@ tr679: s->buffer_length = 0; } goto st10; -tr689: +tr703: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -11853,7 +12073,7 @@ tr689: s->buffer_length = 0; } goto st10; -tr702: +tr716: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -11862,7 +12082,7 @@ tr702: s->buffer_length = 0; } goto st10; -tr715: +tr729: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -11871,7 +12091,7 @@ tr715: s->buffer_length = 0; } goto st10; -tr966: +tr980: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -11880,7 +12100,7 @@ tr966: s->buffer_length = 0; } goto st10; -tr977: +tr991: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -11889,7 +12109,7 @@ tr977: s->buffer_length = 0; } goto st10; -tr986: +tr1000: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -11937,91 +12157,92 @@ tr73: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -12033,91 +12254,92 @@ tr83: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -12133,91 +12355,92 @@ tr172: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -12233,91 +12456,92 @@ tr194: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -12333,91 +12557,92 @@ tr202: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -12433,91 +12658,92 @@ tr212: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -12533,91 +12759,92 @@ tr223: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -12633,91 +12860,92 @@ tr234: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -12733,91 +12961,92 @@ tr248: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -12833,91 +13062,92 @@ tr260: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -12933,91 +13163,92 @@ tr271: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -13033,91 +13264,92 @@ tr280: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -13133,91 +13365,92 @@ tr290: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -13233,91 +13466,92 @@ tr303: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -13333,91 +13567,92 @@ tr312: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -13433,91 +13668,92 @@ tr325: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -13533,91 +13769,92 @@ tr336: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -13633,91 +13870,92 @@ tr380: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -13733,91 +13971,92 @@ tr391: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -13833,91 +14072,92 @@ tr399: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -13933,91 +14173,92 @@ tr412: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -14033,91 +14274,92 @@ tr421: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -14133,91 +14375,92 @@ tr430: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -14233,91 +14476,92 @@ tr438: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -14333,91 +14577,92 @@ tr451: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -14433,91 +14678,92 @@ tr459: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -14533,91 +14779,92 @@ tr473: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -14633,91 +14880,92 @@ tr482: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -14733,91 +14981,92 @@ tr491: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -14833,91 +15082,92 @@ tr501: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -14933,91 +15183,92 @@ tr510: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -15033,91 +15284,92 @@ tr522: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -15133,91 +15385,92 @@ tr539: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -15233,296 +15486,97 @@ tr549: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: {stack[top++] = 11;goto st1416;} - case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1429;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} - case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} - case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} - } - } - goto st11; -tr560: - { s->r_type = KNOT_RRTYPE_RP; } - { - rdata_tail = s->r_data; - } - { - s->line_counter++; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} - case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} - case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} - case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} - case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} - } - } - goto st11; -tr571: - { s->r_type = KNOT_RRTYPE_RRSIG; } - { - rdata_tail = s->r_data; - } - { - s->line_counter++; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} - case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} - case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} - case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr579: - { s->r_type = KNOT_RRTYPE_RT; } +tr566: + { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; } @@ -15533,96 +15587,97 @@ tr579: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr597: - { s->r_type = KNOT_RRTYPE_SMIMEA; } +tr574: + { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; } @@ -15633,96 +15688,198 @@ tr597: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 11;goto st1453;} + case KNOT_RRTYPE_URI: + {stack[top++] = 11;goto st1459;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 11;goto st1467;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 11;goto st1475;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1481;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st325;} + } + } + goto st11; +tr585: + { s->r_type = KNOT_RRTYPE_RRSIG; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 11;goto st1089;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 11;goto st1093;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 11;goto st1125;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 11;goto st1130;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 11;goto st1135;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 11;goto st1140;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 11;goto st1144;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 11;goto st1146;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 11;goto st1201;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 11;goto st1212;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 11;goto st1229;} + case KNOT_RRTYPE_APL: + {stack[top++] = 11;goto st1240;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 11;goto st1251;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 11;goto st1264;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 11;goto st1274;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 11;goto st1313;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 11;goto st1339;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 11;goto st1342;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 11;goto st1353;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1355;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 11;goto st1384;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 11;goto st1397;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 11;goto st1410;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 11;goto st1416;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 11;goto st1434;} + case KNOT_RRTYPE_L32: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr606: - { s->r_type = KNOT_RRTYPE_SOA; } +tr593: + { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; } @@ -15733,95 +15890,298 @@ tr606: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: + {stack[top++] = 11;goto st1434;} + case KNOT_RRTYPE_L32: + {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 11;goto st1453;} + case KNOT_RRTYPE_URI: + {stack[top++] = 11;goto st1459;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 11;goto st1467;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 11;goto st1475;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1481;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st325;} + } + } + goto st11; +tr611: + { s->r_type = KNOT_RRTYPE_SMIMEA; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 11;goto st1089;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 11;goto st1093;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 11;goto st1125;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 11;goto st1130;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 11;goto st1135;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 11;goto st1140;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 11;goto st1144;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 11;goto st1146;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 11;goto st1201;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 11;goto st1212;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 11;goto st1229;} + case KNOT_RRTYPE_APL: + {stack[top++] = 11;goto st1240;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 11;goto st1251;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 11;goto st1264;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 11;goto st1274;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 11;goto st1313;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 11;goto st1339;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 11;goto st1342;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 11;goto st1353;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1355;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 11;goto st1384;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 11;goto st1397;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 11;goto st1410;} + case KNOT_RRTYPE_ZONEMD: {stack[top++] = 11;goto st1416;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} + {stack[top++] = 11;goto st1429;} case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 11;goto st1453;} + case KNOT_RRTYPE_URI: + {stack[top++] = 11;goto st1459;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 11;goto st1467;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 11;goto st1475;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1481;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st325;} + } + } + goto st11; +tr620: + { s->r_type = KNOT_RRTYPE_SOA; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 11;goto st1089;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 11;goto st1093;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 11;goto st1125;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 11;goto st1130;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 11;goto st1135;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 11;goto st1140;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 11;goto st1144;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 11;goto st1146;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 11;goto st1201;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 11;goto st1212;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 11;goto st1229;} + case KNOT_RRTYPE_APL: + {stack[top++] = 11;goto st1240;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 11;goto st1251;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 11;goto st1264;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 11;goto st1274;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 11;goto st1313;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 11;goto st1339;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 11;goto st1342;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 11;goto st1353;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1355;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 11;goto st1384;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 11;goto st1397;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 11;goto st1410;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 11;goto st1416;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 11;goto st1434;} + case KNOT_RRTYPE_L32: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr615: +tr629: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -15833,95 +16193,96 @@ tr615: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr624: +tr638: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -15933,95 +16294,96 @@ tr624: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr635: +tr649: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -16033,95 +16395,96 @@ tr635: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr645: +tr659: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -16133,95 +16496,96 @@ tr645: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr658: +tr672: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -16233,95 +16597,96 @@ tr658: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr667: +tr681: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -16333,101 +16698,102 @@ tr667: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr681: +tr695: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -16440,95 +16806,96 @@ tr681: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr691: +tr705: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -16540,95 +16907,96 @@ tr691: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr704: +tr718: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -16640,95 +17008,96 @@ tr704: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr717: +tr731: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -16740,95 +17109,96 @@ tr717: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr968: +tr982: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -16840,95 +17210,96 @@ tr968: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr979: +tr993: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -16940,95 +17311,96 @@ tr979: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; -tr988: +tr1002: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -17040,91 +17412,92 @@ tr988: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1071;} + {stack[top++] = 11;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1073;} + {stack[top++] = 11;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1075;} + {stack[top++] = 11;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1107;} + {stack[top++] = 11;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1112;} + {stack[top++] = 11;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1117;} + {stack[top++] = 11;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1122;} + {stack[top++] = 11;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1126;} + {stack[top++] = 11;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1128;} + {stack[top++] = 11;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1183;} + {stack[top++] = 11;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1194;} + {stack[top++] = 11;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1211;} + {stack[top++] = 11;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1222;} + {stack[top++] = 11;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1233;} + {stack[top++] = 11;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1246;} + {stack[top++] = 11;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1256;} + {stack[top++] = 11;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1295;} + {stack[top++] = 11;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1321;} + {stack[top++] = 11;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1324;} + {stack[top++] = 11;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1335;} + {stack[top++] = 11;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1337;} + {stack[top++] = 11;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1366;} + {stack[top++] = 11;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1379;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1392;} + {stack[top++] = 11;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1398;} + {stack[top++] = 11;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1435;} + {stack[top++] = 11;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1449;} + {stack[top++] = 11;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1457;} + {stack[top++] = 11;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1463;} + {stack[top++] = 11;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st11; @@ -17176,7 +17549,7 @@ tr111: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -17185,7 +17558,7 @@ tr112: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -17200,7 +17573,7 @@ tr104: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -17213,7 +17586,7 @@ tr105: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -17311,7 +17684,7 @@ tr181: s->buffer_length = 0; } goto st13; -tr857: +tr871: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -17366,7 +17739,7 @@ tr118: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1475; goto _out;} + {p++; cs = 1493; goto _out;} } } } @@ -17376,7 +17749,7 @@ tr118: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -17389,23 +17762,23 @@ tr118: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1475; goto _out;} + {p++; cs = 1493; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1475; goto _out;} + p--; {p++; cs = 1493; goto _out;} } } - goto st1475; -tr865: + goto st1493; +tr879: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -17418,16 +17791,16 @@ tr865: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1475; goto _out;} + {p++; cs = 1493; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1475; goto _out;} + p--; {p++; cs = 1493; goto _out;} } } - goto st1475; -tr856: + goto st1493; +tr870: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -17442,7 +17815,7 @@ tr856: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -17455,19 +17828,19 @@ tr856: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1475; goto _out;} + {p++; cs = 1493; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1475; goto _out;} + p--; {p++; cs = 1493; goto _out;} } } - goto st1475; -st1475: + goto st1493; +st1493: if ( ++p == pe ) - goto _test_eof1475; -case 1475: + goto _test_eof1493; +case 1493: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -17485,23 +17858,23 @@ case 1475: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4165; - case 32: goto tr4165; - case 36: goto tr4166; - case 40: goto tr4167; - case 41: goto tr4168; - case 42: goto tr4169; + case 9: goto tr4200; + case 32: goto tr4200; + case 36: goto tr4201; + case 40: goto tr4202; + case 41: goto tr4203; + case 42: goto tr4204; case 58: goto tr75; - case 92: goto tr4170; - case 95: goto tr4169; - case 2826: goto tr4161; - case 2875: goto tr4162; - case 3082: goto tr4171; - case 3131: goto tr4172; - case 3338: goto tr4173; - case 3387: goto tr4174; - case 3594: goto tr4175; - case 3643: goto tr4176; + case 92: goto tr4205; + case 95: goto tr4204; + case 2826: goto tr4196; + case 2875: goto tr4197; + case 3082: goto tr4206; + case 3131: goto tr4207; + case 3338: goto tr4208; + case 3387: goto tr4209; + case 3594: goto tr4210; + case 3643: goto tr4211; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -17509,29 +17882,29 @@ case 1475: goto tr75; } else if ( _widec > 44 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4169; + goto tr4204; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 90 ) - goto tr4169; + goto tr4204; } else if ( _widec > 96 ) { if ( _widec > 122 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 97 ) - goto tr4169; + goto tr4204; } else goto tr75; } else goto tr75; - goto tr900; + goto tr914; tr121: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -17540,16 +17913,16 @@ tr122: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st14; -tr4165: +tr4200: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -17557,18 +17930,18 @@ tr4165: s->buffer_length = 0; } goto st14; -tr4167: +tr4202: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -17576,18 +17949,18 @@ tr4167: s->buffer_length = 0; } goto st14; -tr4168: +tr4203: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -17694,98 +18067,99 @@ tr123: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 15;goto st1071;} + {stack[top++] = 15;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 15;goto st1073;} + {stack[top++] = 15;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 15;goto st1075;} + {stack[top++] = 15;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 15;goto st1107;} + {stack[top++] = 15;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 15;goto st1112;} + {stack[top++] = 15;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 15;goto st1117;} + {stack[top++] = 15;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 15;goto st1122;} + {stack[top++] = 15;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 15;goto st1126;} + {stack[top++] = 15;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 15;goto st1128;} + {stack[top++] = 15;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 15;goto st1183;} + {stack[top++] = 15;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 15;goto st1194;} + {stack[top++] = 15;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 15;goto st1211;} + {stack[top++] = 15;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 15;goto st1222;} + {stack[top++] = 15;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 15;goto st1233;} + {stack[top++] = 15;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 15;goto st1246;} + {stack[top++] = 15;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 15;goto st1256;} + {stack[top++] = 15;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 15;goto st1295;} + {stack[top++] = 15;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 15;goto st1321;} + {stack[top++] = 15;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 15;goto st1324;} + {stack[top++] = 15;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 15;goto st1335;} + {stack[top++] = 15;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 15;goto st1337;} + {stack[top++] = 15;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 15;goto st1366;} + {stack[top++] = 15;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 15;goto st1379;} + {stack[top++] = 15;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 15;goto st1392;} + {stack[top++] = 15;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 15;goto st1398;} + {stack[top++] = 15;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 15;goto st1416;} + {stack[top++] = 15;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 15;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 15;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 15;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 15;goto st1435;} + {stack[top++] = 15;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 15;goto st1441;} + {stack[top++] = 15;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 15;goto st1449;} + {stack[top++] = 15;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 15;goto st1457;} + {stack[top++] = 15;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 15;goto st1463;} + {stack[top++] = 15;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st15; @@ -17813,12 +18187,12 @@ case 15: case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st207; + case 83: goto st213; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st207; + case 115: goto st213; case 119: goto tr36; case 1802: goto tr89; case 1851: goto tr90; @@ -17832,7 +18206,7 @@ tr156: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -17841,7 +18215,7 @@ tr157: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -17852,7 +18226,7 @@ tr149: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -17866,13 +18240,13 @@ tr150: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -17887,13 +18261,13 @@ tr151: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -17978,7 +18352,7 @@ tr44: s->r_class = s->default_class; } goto st17; -tr737: +tr751: { s->r_ttl = s->default_ttl; } @@ -18054,91 +18428,92 @@ tr74: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -18150,91 +18525,92 @@ tr84: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -18250,91 +18626,92 @@ tr173: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -18350,91 +18727,92 @@ tr195: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -18450,91 +18828,92 @@ tr203: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -18550,91 +18929,92 @@ tr213: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -18650,91 +19030,92 @@ tr224: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -18750,91 +19131,92 @@ tr235: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -18850,91 +19232,92 @@ tr249: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -18950,91 +19333,92 @@ tr261: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -19050,91 +19434,92 @@ tr272: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -19150,91 +19535,92 @@ tr281: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -19250,91 +19636,92 @@ tr291: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -19350,91 +19737,92 @@ tr304: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -19450,91 +19838,92 @@ tr313: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -19550,91 +19939,92 @@ tr326: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -19650,91 +20040,92 @@ tr337: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -19750,91 +20141,92 @@ tr381: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -19850,91 +20242,92 @@ tr392: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -19950,91 +20343,92 @@ tr400: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -20050,91 +20444,92 @@ tr413: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -20150,91 +20545,92 @@ tr422: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -20250,91 +20646,92 @@ tr431: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -20350,91 +20747,92 @@ tr439: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -20450,91 +20848,92 @@ tr452: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -20550,91 +20949,92 @@ tr460: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -20650,91 +21050,92 @@ tr474: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -20750,91 +21151,92 @@ tr483: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -20850,91 +21252,92 @@ tr492: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -20950,91 +21353,92 @@ tr502: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -21050,91 +21454,92 @@ tr511: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -21150,91 +21555,92 @@ tr523: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -21250,91 +21656,92 @@ tr540: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -21350,196 +21757,97 @@ tr550: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: {stack[top++] = 20;goto st1416;} - case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1429;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} - case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} - case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} - } - } - goto st20; -tr561: - { s->r_type = KNOT_RRTYPE_RP; } - { - rdata_tail = s->r_data; - } - { - s->buffer_length = 0; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} - case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} - case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr572: - { s->r_type = KNOT_RRTYPE_RRSIG; } +tr567: + { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; } @@ -21550,96 +21858,97 @@ tr572: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr580: - { s->r_type = KNOT_RRTYPE_RT; } +tr575: + { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; } @@ -21650,296 +21959,97 @@ tr580: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: {stack[top++] = 20;goto st1416;} - case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1429;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} - case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} - case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} - } - } - goto st20; -tr598: - { s->r_type = KNOT_RRTYPE_SMIMEA; } - { - rdata_tail = s->r_data; - } - { - s->buffer_length = 0; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} - case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} - case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} - case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} - case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} - } - } - goto st20; -tr607: - { s->r_type = KNOT_RRTYPE_SOA; } - { - rdata_tail = s->r_data; - } - { - s->buffer_length = 0; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} - case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} - case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} - case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr616: - { s->r_type = KNOT_RRTYPE_SPF; } +tr586: + { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; } @@ -21950,196 +22060,97 @@ tr616: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: {stack[top++] = 20;goto st1416;} - case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1429;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} - case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} - case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} - } - } - goto st20; -tr625: - { s->r_type = KNOT_RRTYPE_SRV; } - { - rdata_tail = s->r_data; - } - { - s->buffer_length = 0; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} - case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} - case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr636: - { s->r_type = KNOT_RRTYPE_SSHFP; } +tr594: + { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; } @@ -22150,96 +22161,97 @@ tr636: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr646: - { s->r_type = KNOT_RRTYPE_SVCB; } +tr612: + { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; } @@ -22250,96 +22262,97 @@ tr646: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr659: - { s->r_type = KNOT_RRTYPE_TLSA; } +tr621: + { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; } @@ -22350,96 +22363,97 @@ tr659: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr668: - { s->r_type = KNOT_RRTYPE_TXT; } +tr630: + { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; } @@ -22450,103 +22464,97 @@ tr668: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr682: - { - if (s->number64 <= UINT16_MAX) { - s->r_type = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } +tr639: + { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; } @@ -22557,96 +22565,97 @@ tr682: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr692: - { s->r_type = KNOT_RRTYPE_URI; } +tr650: + { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; } @@ -22657,96 +22666,97 @@ tr692: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr705: - { s->r_type = KNOT_RRTYPE_WALLET; } +tr660: + { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; } @@ -22757,96 +22767,198 @@ tr705: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1453;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1459;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1467;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1475;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1481;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st325;} + } + } + goto st20; +tr673: + { s->r_type = KNOT_RRTYPE_TLSA; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st1089;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st1093;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st1125;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st1130;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st1135;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st1140;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st1144;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st1146;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1201;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1212;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1229;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1240;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1251;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1264;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1274;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1313;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1339;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1342;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1353;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1355;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1384;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1397;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1410;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1416;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1434;} + case KNOT_RRTYPE_L32: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr718: - { s->r_type = KNOT_RRTYPE_ZONEMD; } +tr682: + { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; } @@ -22857,96 +22969,306 @@ tr718: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1434;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1453;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1459;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1467;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1475;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1481;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st325;} + } + } + goto st20; +tr696: + { + if (s->number64 <= UINT16_MAX) { + s->r_type = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st325;} + } + } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st1089;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st1093;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st1125;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st1130;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st1135;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st1140;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st1144;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st1146;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1201;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1212;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1229;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1240;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1251;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1264;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1274;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1313;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1339;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1342;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1353;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1355;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1384;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1397;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1410;} + case KNOT_RRTYPE_ZONEMD: {stack[top++] = 20;goto st1416;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1453;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1459;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1467;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1475;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1481;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st325;} + } + } + goto st20; +tr706: + { s->r_type = KNOT_RRTYPE_URI; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st1089;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st1093;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st1125;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st1130;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st1135;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st1140;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st1144;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st1146;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1201;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1212;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1229;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1240;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1251;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1264;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1274;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1313;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1339;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1342;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1353;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1355;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1384;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1397;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1410;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1416;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1434;} + case KNOT_RRTYPE_L32: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr969: - { s->r_type = KNOT_RRTYPE_AAAA; } +tr719: + { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; } @@ -22957,95 +23279,298 @@ tr969: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1434;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1453;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1459;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1467;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1475;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1481;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st325;} + } + } + goto st20; +tr732: + { s->r_type = KNOT_RRTYPE_ZONEMD; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st1089;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st1093;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st1125;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st1130;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st1135;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st1140;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st1144;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st1146;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1201;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1212;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1229;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1240;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1251;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1264;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1274;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1313;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1339;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1342;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1353;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1355;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1384;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1397;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1410;} + case KNOT_RRTYPE_ZONEMD: {stack[top++] = 20;goto st1416;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} + {stack[top++] = 20;goto st1429;} case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1453;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1459;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1467;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1475;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1481;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st325;} + } + } + goto st20; +tr983: + { s->r_type = KNOT_RRTYPE_AAAA; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st1089;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st1093;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st1125;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st1130;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st1135;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st1140;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st1144;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st1146;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1201;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1212;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1229;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1240;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1251;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1264;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1274;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1313;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1339;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1342;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1353;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1355;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1384;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1397;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1410;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1416;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1434;} + case KNOT_RRTYPE_L32: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr980: +tr994: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -23057,95 +23582,96 @@ tr980: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; -tr989: +tr1003: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -23157,91 +23683,92 @@ tr989: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1071;} + {stack[top++] = 20;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1073;} + {stack[top++] = 20;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1075;} + {stack[top++] = 20;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1107;} + {stack[top++] = 20;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1112;} + {stack[top++] = 20;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1117;} + {stack[top++] = 20;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1122;} + {stack[top++] = 20;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1126;} + {stack[top++] = 20;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1128;} + {stack[top++] = 20;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1183;} + {stack[top++] = 20;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1194;} + {stack[top++] = 20;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1211;} + {stack[top++] = 20;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1222;} + {stack[top++] = 20;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1233;} + {stack[top++] = 20;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1246;} + {stack[top++] = 20;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1256;} + {stack[top++] = 20;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1295;} + {stack[top++] = 20;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1321;} + {stack[top++] = 20;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1324;} + {stack[top++] = 20;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1335;} + {stack[top++] = 20;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1337;} + {stack[top++] = 20;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1366;} + {stack[top++] = 20;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1379;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1392;} + {stack[top++] = 20;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1398;} + {stack[top++] = 20;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1411;} - case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1429;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1435;} + {stack[top++] = 20;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1449;} + {stack[top++] = 20;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1457;} + {stack[top++] = 20;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1463;} + {stack[top++] = 20;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } goto st20; @@ -23327,7 +23854,7 @@ tr175: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -23345,7 +23872,7 @@ tr176: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -23359,7 +23886,7 @@ tr179: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -23373,7 +23900,7 @@ tr180: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -23726,7 +24253,7 @@ tr45: s->r_class = s->default_class; } goto st40; -tr738: +tr752: { s->r_ttl = s->default_ttl; } @@ -24025,7 +24552,7 @@ tr46: s->r_class = s->default_class; } goto st57; -tr739: +tr753: { s->r_ttl = s->default_ttl; } @@ -24150,7 +24677,7 @@ tr47: s->r_class = s->default_class; } goto st64; -tr740: +tr754: { s->r_ttl = s->default_ttl; } @@ -24331,7 +24858,7 @@ tr346: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -24340,7 +24867,7 @@ tr347: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -24350,64 +24877,64 @@ tr366: s->line_counter++; } goto st75; -tr756: +tr770: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } goto st75; -tr757: +tr771: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st75; -tr758: +tr772: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st75; -tr765: +tr779: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } goto st75; -tr720: +tr734: { s->buffer[s->buffer_length++] = 0; @@ -24437,7 +24964,7 @@ tr341: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -24449,7 +24976,7 @@ tr342: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -24462,13 +24989,13 @@ tr343: s->line_counter++; } goto st75; -tr774: +tr788: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -24476,17 +25003,17 @@ tr774: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } goto st75; -tr775: +tr789: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -24494,24 +25021,24 @@ tr775: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } goto st75; -tr776: +tr790: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -24519,24 +25046,24 @@ tr776: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } goto st75; -tr778: +tr792: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -24544,7 +25071,7 @@ tr778: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -24585,11 +25112,11 @@ case 75: case 79: goto st118; case 80: goto st128; case 82: goto st131; - case 83: goto st138; - case 84: goto st157; - case 85: goto st167; - case 87: goto st170; - case 90: goto st176; + case 83: goto st144; + case 84: goto st163; + case 85: goto st173; + case 87: goto st176; + case 90: goto st182; case 97: goto st4; case 99: goto st17; case 100: goto st40; @@ -24603,16 +25130,16 @@ case 75: case 111: goto st118; case 112: goto st128; case 114: goto st131; - case 115: goto st138; - case 116: goto st157; - case 117: goto st167; - case 119: goto st170; - case 122: goto st176; + case 115: goto st144; + case 116: goto st163; + case 117: goto st173; + case 119: goto st176; + case 122: goto st182; case 2058: goto tr366; case 2107: goto tr367; } goto tr39; -tr741: +tr755: { s->r_ttl = s->default_ttl; } @@ -24726,7 +25253,7 @@ tr49: s->r_class = s->default_class; } goto st84; -tr742: +tr756: { s->r_ttl = s->default_ttl; } @@ -24830,7 +25357,7 @@ tr50: s->r_class = s->default_class; } goto st88; -tr743: +tr757: { s->r_ttl = s->default_ttl; } @@ -25016,7 +25543,7 @@ tr51: s->r_class = s->default_class; } goto st96; -tr744: +tr758: { s->r_ttl = s->default_ttl; } @@ -25138,7 +25665,7 @@ tr52: s->r_class = s->default_class; } goto st102; -tr745: +tr759: { s->r_ttl = s->default_ttl; } @@ -25453,7 +25980,7 @@ tr53: s->r_class = s->default_class; } goto st118; -tr746: +tr760: { s->r_ttl = s->default_ttl; } @@ -25585,7 +26112,7 @@ tr54: s->r_class = s->default_class; } goto st128; -tr747: +tr761: { s->r_ttl = s->default_ttl; } @@ -25654,7 +26181,7 @@ tr55: s->r_class = s->default_class; } goto st131; -tr748: +tr762: { s->r_ttl = s->default_ttl; } @@ -25664,54 +26191,32 @@ st131: goto _test_eof131; case 131: switch( (*p) ) { - case 80: goto st132; - case 82: goto st133; - case 84: goto st137; - case 112: goto st132; - case 114: goto st133; - case 116: goto st137; + case 69: goto st132; + case 80: goto st138; + case 82: goto st139; + case 84: goto st143; + case 101: goto st132; + case 112: goto st138; + case 114: goto st139; + case 116: goto st143; } goto tr39; st132: if ( ++p == pe ) goto _test_eof132; case 132: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr554; - case 32: goto tr554; - case 40: goto tr555; - case 41: goto tr556; - case 3082: goto tr557; - case 3131: goto tr558; - case 3338: goto tr559; - case 3387: goto tr559; - case 3594: goto tr560; - case 3643: goto tr561; + switch( (*p) ) { + case 83: goto st133; + case 115: goto st133; } - goto tr63; + goto tr39; st133: if ( ++p == pe ) goto _test_eof133; case 133: switch( (*p) ) { - case 83: goto st134; - case 115: goto st134; + case 73: goto st134; + case 105: goto st134; } goto tr39; st134: @@ -25719,8 +26224,8 @@ st134: goto _test_eof134; case 134: switch( (*p) ) { - case 73: goto st135; - case 105: goto st135; + case 78: goto st135; + case 110: goto st135; } goto tr39; st135: @@ -25728,14 +26233,23 @@ st135: goto _test_eof135; case 135: switch( (*p) ) { - case 71: goto st136; - case 103: goto st136; + case 70: goto st136; + case 102: goto st136; } goto tr39; st136: if ( ++p == pe ) goto _test_eof136; case 136: + switch( (*p) ) { + case 79: goto st137; + case 111: goto st137; + } + goto tr39; +st137: + if ( ++p == pe ) + goto _test_eof137; +case 137: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25753,22 +26267,22 @@ case 136: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr565; - case 32: goto tr565; - case 40: goto tr566; - case 41: goto tr567; - case 3082: goto tr568; - case 3131: goto tr569; - case 3338: goto tr570; - case 3387: goto tr570; - case 3594: goto tr571; - case 3643: goto tr572; + case 9: goto tr560; + case 32: goto tr560; + case 40: goto tr561; + case 41: goto tr562; + case 3082: goto tr563; + case 3131: goto tr564; + case 3338: goto tr565; + case 3387: goto tr565; + case 3594: goto tr566; + case 3643: goto tr567; } goto tr63; -st137: +st138: if ( ++p == pe ) - goto _test_eof137; -case 137: + goto _test_eof138; +case 138: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25786,62 +26300,25 @@ case 137: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr573; - case 32: goto tr573; - case 40: goto tr574; - case 41: goto tr575; - case 3082: goto tr576; - case 3131: goto tr577; - case 3338: goto tr578; - case 3387: goto tr578; - case 3594: goto tr579; - case 3643: goto tr580; + case 9: goto tr568; + case 32: goto tr568; + case 40: goto tr569; + case 41: goto tr570; + case 3082: goto tr571; + case 3131: goto tr572; + case 3338: goto tr573; + case 3387: goto tr573; + case 3594: goto tr574; + case 3643: goto tr575; } goto tr63; -tr18: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - goto st138; -tr56: - { - s->r_class = s->default_class; - } - goto st138; -tr749: - { - s->r_ttl = s->default_ttl; - } - goto st138; -st138: - if ( ++p == pe ) - goto _test_eof138; -case 138: - switch( (*p) ) { - case 77: goto st139; - case 79: goto st144; - case 80: goto st146; - case 82: goto st148; - case 83: goto st150; - case 86: goto st154; - case 109: goto st139; - case 111: goto st144; - case 112: goto st146; - case 114: goto st148; - case 115: goto st150; - case 118: goto st154; - } - goto tr39; st139: if ( ++p == pe ) goto _test_eof139; case 139: switch( (*p) ) { - case 73: goto st140; - case 105: goto st140; + case 83: goto st140; + case 115: goto st140; } goto tr39; st140: @@ -25849,8 +26326,8 @@ st140: goto _test_eof140; case 140: switch( (*p) ) { - case 77: goto st141; - case 109: goto st141; + case 73: goto st141; + case 105: goto st141; } goto tr39; st141: @@ -25858,23 +26335,14 @@ st141: goto _test_eof141; case 141: switch( (*p) ) { - case 69: goto st142; - case 101: goto st142; + case 71: goto st142; + case 103: goto st142; } goto tr39; st142: if ( ++p == pe ) goto _test_eof142; case 142: - switch( (*p) ) { - case 65: goto st143; - case 97: goto st143; - } - goto tr39; -st143: - if ( ++p == pe ) - goto _test_eof143; -case 143: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25892,31 +26360,22 @@ case 143: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr591; - case 32: goto tr591; - case 40: goto tr592; - case 41: goto tr593; - case 3082: goto tr594; - case 3131: goto tr595; - case 3338: goto tr596; - case 3387: goto tr596; - case 3594: goto tr597; - case 3643: goto tr598; + case 9: goto tr579; + case 32: goto tr579; + case 40: goto tr580; + case 41: goto tr581; + case 3082: goto tr582; + case 3131: goto tr583; + case 3338: goto tr584; + case 3387: goto tr584; + case 3594: goto tr585; + case 3643: goto tr586; } goto tr63; -st144: - if ( ++p == pe ) - goto _test_eof144; -case 144: - switch( (*p) ) { - case 65: goto st145; - case 97: goto st145; - } - goto tr39; -st145: +st143: if ( ++p == pe ) - goto _test_eof145; -case 145: + goto _test_eof143; +case 143: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25934,67 +26393,89 @@ case 145: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr600; - case 32: goto tr600; - case 40: goto tr601; - case 41: goto tr602; - case 3082: goto tr603; - case 3131: goto tr604; - case 3338: goto tr605; - case 3387: goto tr605; - case 3594: goto tr606; - case 3643: goto tr607; + case 9: goto tr587; + case 32: goto tr587; + case 40: goto tr588; + case 41: goto tr589; + case 3082: goto tr590; + case 3131: goto tr591; + case 3338: goto tr592; + case 3387: goto tr592; + case 3594: goto tr593; + case 3643: goto tr594; } goto tr63; +tr18: + { + s->r_class = s->default_class; + } + { + s->r_ttl = s->default_ttl; + } + goto st144; +tr56: + { + s->r_class = s->default_class; + } + goto st144; +tr763: + { + s->r_ttl = s->default_ttl; + } + goto st144; +st144: + if ( ++p == pe ) + goto _test_eof144; +case 144: + switch( (*p) ) { + case 77: goto st145; + case 79: goto st150; + case 80: goto st152; + case 82: goto st154; + case 83: goto st156; + case 86: goto st160; + case 109: goto st145; + case 111: goto st150; + case 112: goto st152; + case 114: goto st154; + case 115: goto st156; + case 118: goto st160; + } + goto tr39; +st145: + if ( ++p == pe ) + goto _test_eof145; +case 145: + switch( (*p) ) { + case 73: goto st146; + case 105: goto st146; + } + goto tr39; st146: if ( ++p == pe ) goto _test_eof146; case 146: switch( (*p) ) { - case 70: goto st147; - case 102: goto st147; + case 77: goto st147; + case 109: goto st147; } goto tr39; st147: if ( ++p == pe ) goto _test_eof147; case 147: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr609; - case 32: goto tr609; - case 40: goto tr610; - case 41: goto tr611; - case 3082: goto tr612; - case 3131: goto tr613; - case 3338: goto tr614; - case 3387: goto tr614; - case 3594: goto tr615; - case 3643: goto tr616; + switch( (*p) ) { + case 69: goto st148; + case 101: goto st148; } - goto tr63; + goto tr39; st148: if ( ++p == pe ) goto _test_eof148; case 148: switch( (*p) ) { - case 86: goto st149; - case 118: goto st149; + case 65: goto st149; + case 97: goto st149; } goto tr39; st149: @@ -26018,16 +26499,16 @@ case 149: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr618; - case 32: goto tr618; - case 40: goto tr619; - case 41: goto tr620; - case 3082: goto tr621; - case 3131: goto tr622; - case 3338: goto tr623; - case 3387: goto tr623; - case 3594: goto tr624; - case 3643: goto tr625; + case 9: goto tr605; + case 32: goto tr605; + case 40: goto tr606; + case 41: goto tr607; + case 3082: goto tr608; + case 3131: goto tr609; + case 3338: goto tr610; + case 3387: goto tr610; + case 3594: goto tr611; + case 3643: goto tr612; } goto tr63; st150: @@ -26035,26 +26516,50 @@ st150: goto _test_eof150; case 150: switch( (*p) ) { - case 72: goto st151; - case 104: goto st151; + case 65: goto st151; + case 97: goto st151; } goto tr39; st151: if ( ++p == pe ) goto _test_eof151; case 151: - switch( (*p) ) { - case 70: goto st152; - case 102: goto st152; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr39; + switch( _widec ) { + case 9: goto tr614; + case 32: goto tr614; + case 40: goto tr615; + case 41: goto tr616; + case 3082: goto tr617; + case 3131: goto tr618; + case 3338: goto tr619; + case 3387: goto tr619; + case 3594: goto tr620; + case 3643: goto tr621; + } + goto tr63; st152: if ( ++p == pe ) goto _test_eof152; case 152: switch( (*p) ) { - case 80: goto st153; - case 112: goto st153; + case 70: goto st153; + case 102: goto st153; } goto tr39; st153: @@ -26078,16 +26583,16 @@ case 153: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr629; - case 32: goto tr629; - case 40: goto tr630; - case 41: goto tr631; - case 3082: goto tr632; - case 3131: goto tr633; - case 3338: goto tr634; - case 3387: goto tr634; - case 3594: goto tr635; - case 3643: goto tr636; + case 9: goto tr623; + case 32: goto tr623; + case 40: goto tr624; + case 41: goto tr625; + case 3082: goto tr626; + case 3131: goto tr627; + case 3338: goto tr628; + case 3387: goto tr628; + case 3594: goto tr629; + case 3643: goto tr630; } goto tr63; st154: @@ -26095,23 +26600,14 @@ st154: goto _test_eof154; case 154: switch( (*p) ) { - case 67: goto st155; - case 99: goto st155; + case 86: goto st155; + case 118: goto st155; } goto tr39; st155: if ( ++p == pe ) goto _test_eof155; case 155: - switch( (*p) ) { - case 66: goto st156; - case 98: goto st156; - } - goto tr39; -st156: - if ( ++p == pe ) - goto _test_eof156; -case 156: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26129,47 +26625,34 @@ case 156: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr639; - case 32: goto tr639; - case 40: goto tr640; - case 41: goto tr641; - case 3082: goto tr642; - case 3131: goto tr643; - case 3338: goto tr644; - case 3387: goto tr644; - case 3594: goto tr645; - case 3643: goto tr646; + case 9: goto tr632; + case 32: goto tr632; + case 40: goto tr633; + case 41: goto tr634; + case 3082: goto tr635; + case 3131: goto tr636; + case 3338: goto tr637; + case 3387: goto tr637; + case 3594: goto tr638; + case 3643: goto tr639; } goto tr63; -tr19: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - goto st157; -tr57: - { - s->r_class = s->default_class; - } - goto st157; -tr750: - { - s->r_ttl = s->default_ttl; +st156: + if ( ++p == pe ) + goto _test_eof156; +case 156: + switch( (*p) ) { + case 72: goto st157; + case 104: goto st157; } - goto st157; + goto tr39; st157: if ( ++p == pe ) goto _test_eof157; case 157: switch( (*p) ) { - case 76: goto st158; - case 88: goto st161; - case 89: goto st163; - case 108: goto st158; - case 120: goto st161; - case 121: goto st163; + case 70: goto st158; + case 102: goto st158; } goto tr39; st158: @@ -26177,23 +26660,14 @@ st158: goto _test_eof158; case 158: switch( (*p) ) { - case 83: goto st159; - case 115: goto st159; + case 80: goto st159; + case 112: goto st159; } goto tr39; st159: if ( ++p == pe ) goto _test_eof159; case 159: - switch( (*p) ) { - case 65: goto st160; - case 97: goto st160; - } - goto tr39; -st160: - if ( ++p == pe ) - goto _test_eof160; -case 160: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26211,25 +26685,34 @@ case 160: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr652; - case 32: goto tr652; - case 40: goto tr653; - case 41: goto tr654; - case 3082: goto tr655; - case 3131: goto tr656; - case 3338: goto tr657; - case 3387: goto tr657; - case 3594: goto tr658; - case 3643: goto tr659; + case 9: goto tr643; + case 32: goto tr643; + case 40: goto tr644; + case 41: goto tr645; + case 3082: goto tr646; + case 3131: goto tr647; + case 3338: goto tr648; + case 3387: goto tr648; + case 3594: goto tr649; + case 3643: goto tr650; } goto tr63; +st160: + if ( ++p == pe ) + goto _test_eof160; +case 160: + switch( (*p) ) { + case 67: goto st161; + case 99: goto st161; + } + goto tr39; st161: if ( ++p == pe ) goto _test_eof161; case 161: switch( (*p) ) { - case 84: goto st162; - case 116: goto st162; + case 66: goto st162; + case 98: goto st162; } goto tr39; st162: @@ -26253,25 +26736,47 @@ case 162: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr661; - case 32: goto tr661; - case 40: goto tr662; - case 41: goto tr663; - case 3082: goto tr664; - case 3131: goto tr665; - case 3338: goto tr666; - case 3387: goto tr666; - case 3594: goto tr667; - case 3643: goto tr668; + case 9: goto tr653; + case 32: goto tr653; + case 40: goto tr654; + case 41: goto tr655; + case 3082: goto tr656; + case 3131: goto tr657; + case 3338: goto tr658; + case 3387: goto tr658; + case 3594: goto tr659; + case 3643: goto tr660; } goto tr63; +tr19: + { + s->r_class = s->default_class; + } + { + s->r_ttl = s->default_ttl; + } + goto st163; +tr57: + { + s->r_class = s->default_class; + } + goto st163; +tr764: + { + s->r_ttl = s->default_ttl; + } + goto st163; st163: if ( ++p == pe ) goto _test_eof163; case 163: switch( (*p) ) { - case 80: goto st164; - case 112: goto st164; + case 76: goto st164; + case 88: goto st167; + case 89: goto st169; + case 108: goto st164; + case 120: goto st167; + case 121: goto st169; } goto tr39; st164: @@ -26279,52 +26784,19 @@ st164: goto _test_eof164; case 164: switch( (*p) ) { - case 69: goto st165; - case 101: goto st165; + case 83: goto st165; + case 115: goto st165; } goto tr39; st165: if ( ++p == pe ) goto _test_eof165; case 165: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr672; - goto tr671; -tr672: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } - } - goto st166; -tr677: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + switch( (*p) ) { + case 65: goto st166; + case 97: goto st166; } - goto st166; + goto tr39; st166: if ( ++p == pe ) goto _test_eof166; @@ -26346,60 +26818,31 @@ case 166: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr674; - case 32: goto tr674; - case 40: goto tr675; - case 41: goto tr676; - case 3082: goto tr678; - case 3131: goto tr679; - case 3338: goto tr680; - case 3387: goto tr680; - case 3594: goto tr681; - case 3643: goto tr682; + case 9: goto tr666; + case 32: goto tr666; + case 40: goto tr667; + case 41: goto tr668; + case 3082: goto tr669; + case 3131: goto tr670; + case 3338: goto tr671; + case 3387: goto tr671; + case 3594: goto tr672; + case 3643: goto tr673; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr677; - goto tr673; -tr20: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - goto st167; -tr58: - { - s->r_class = s->default_class; - } - goto st167; -tr751: - { - s->r_ttl = s->default_ttl; - } - goto st167; + goto tr63; st167: if ( ++p == pe ) goto _test_eof167; case 167: switch( (*p) ) { - case 82: goto st168; - case 114: goto st168; + case 84: goto st168; + case 116: goto st168; } goto tr39; st168: if ( ++p == pe ) goto _test_eof168; case 168: - switch( (*p) ) { - case 73: goto st169; - case 105: goto st169; - } - goto tr39; -st169: - if ( ++p == pe ) - goto _test_eof169; -case 169: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26417,70 +26860,138 @@ case 169: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr685; - case 32: goto tr685; - case 40: goto tr686; - case 41: goto tr687; - case 3082: goto tr688; - case 3131: goto tr689; - case 3338: goto tr690; - case 3387: goto tr690; - case 3594: goto tr691; - case 3643: goto tr692; + case 9: goto tr675; + case 32: goto tr675; + case 40: goto tr676; + case 41: goto tr677; + case 3082: goto tr678; + case 3131: goto tr679; + case 3338: goto tr680; + case 3387: goto tr680; + case 3594: goto tr681; + case 3643: goto tr682; } goto tr63; -tr21: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - goto st170; -tr59: - { - s->r_class = s->default_class; - } - goto st170; -tr752: - { - s->r_ttl = s->default_ttl; +st169: + if ( ++p == pe ) + goto _test_eof169; +case 169: + switch( (*p) ) { + case 80: goto st170; + case 112: goto st170; } - goto st170; + goto tr39; st170: if ( ++p == pe ) goto _test_eof170; case 170: switch( (*p) ) { - case 65: goto st171; - case 97: goto st171; + case 69: goto st171; + case 101: goto st171; } goto tr39; st171: if ( ++p == pe ) goto _test_eof171; case 171: - switch( (*p) ) { - case 76: goto st172; - case 108: goto st172; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr686; + goto tr685; +tr686: + { + s->number64 = 0; } - goto tr39; + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st325;} + } + } + goto st172; +tr691: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st325;} + } + } + goto st172; st172: if ( ++p == pe ) goto _test_eof172; case 172: - switch( (*p) ) { - case 76: goto st173; - case 108: goto st173; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr39; + switch( _widec ) { + case 9: goto tr688; + case 32: goto tr688; + case 40: goto tr689; + case 41: goto tr690; + case 3082: goto tr692; + case 3131: goto tr693; + case 3338: goto tr694; + case 3387: goto tr694; + case 3594: goto tr695; + case 3643: goto tr696; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr691; + goto tr687; +tr20: + { + s->r_class = s->default_class; + } + { + s->r_ttl = s->default_ttl; + } + goto st173; +tr58: + { + s->r_class = s->default_class; + } + goto st173; +tr765: + { + s->r_ttl = s->default_ttl; + } + goto st173; st173: if ( ++p == pe ) goto _test_eof173; case 173: switch( (*p) ) { - case 69: goto st174; - case 101: goto st174; + case 82: goto st174; + case 114: goto st174; } goto tr39; st174: @@ -26488,8 +26999,8 @@ st174: goto _test_eof174; case 174: switch( (*p) ) { - case 84: goto st175; - case 116: goto st175; + case 73: goto st175; + case 105: goto st175; } goto tr39; st175: @@ -26513,19 +27024,19 @@ case 175: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr698; - case 32: goto tr698; - case 40: goto tr699; - case 41: goto tr700; - case 3082: goto tr701; - case 3131: goto tr702; - case 3338: goto tr703; - case 3387: goto tr703; - case 3594: goto tr704; - case 3643: goto tr705; + case 9: goto tr699; + case 32: goto tr699; + case 40: goto tr700; + case 41: goto tr701; + case 3082: goto tr702; + case 3131: goto tr703; + case 3338: goto tr704; + case 3387: goto tr704; + case 3594: goto tr705; + case 3643: goto tr706; } goto tr63; -tr22: +tr21: { s->r_class = s->default_class; } @@ -26533,12 +27044,12 @@ tr22: s->r_ttl = s->default_ttl; } goto st176; -tr60: +tr59: { s->r_class = s->default_class; } goto st176; -tr753: +tr766: { s->r_ttl = s->default_ttl; } @@ -26548,8 +27059,8 @@ st176: goto _test_eof176; case 176: switch( (*p) ) { - case 79: goto st177; - case 111: goto st177; + case 65: goto st177; + case 97: goto st177; } goto tr39; st177: @@ -26557,8 +27068,8 @@ st177: goto _test_eof177; case 177: switch( (*p) ) { - case 78: goto st178; - case 110: goto st178; + case 76: goto st178; + case 108: goto st178; } goto tr39; st178: @@ -26566,8 +27077,8 @@ st178: goto _test_eof178; case 178: switch( (*p) ) { - case 69: goto st179; - case 101: goto st179; + case 76: goto st179; + case 108: goto st179; } goto tr39; st179: @@ -26575,8 +27086,8 @@ st179: goto _test_eof179; case 179: switch( (*p) ) { - case 77: goto st180; - case 109: goto st180; + case 69: goto st180; + case 101: goto st180; } goto tr39; st180: @@ -26584,8 +27095,8 @@ st180: goto _test_eof180; case 180: switch( (*p) ) { - case 68: goto st181; - case 100: goto st181; + case 84: goto st181; + case 116: goto st181; } goto tr39; st181: @@ -26609,43 +27120,139 @@ case 181: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr711; - case 32: goto tr711; - case 40: goto tr712; - case 41: goto tr713; - case 3082: goto tr714; - case 3131: goto tr715; - case 3338: goto tr716; - case 3387: goto tr716; - case 3594: goto tr717; - case 3643: goto tr718; + case 9: goto tr712; + case 32: goto tr712; + case 40: goto tr713; + case 41: goto tr714; + case 3082: goto tr715; + case 3131: goto tr716; + case 3338: goto tr717; + case 3387: goto tr717; + case 3594: goto tr718; + case 3643: goto tr719; + } + goto tr63; +tr22: + { + s->r_class = s->default_class; + } + { + s->r_ttl = s->default_ttl; + } + goto st182; +tr60: + { + s->r_class = s->default_class; + } + goto st182; +tr767: + { + s->r_ttl = s->default_ttl; + } + goto st182; +st182: + if ( ++p == pe ) + goto _test_eof182; +case 182: + switch( (*p) ) { + case 79: goto st183; + case 111: goto st183; + } + goto tr39; +st183: + if ( ++p == pe ) + goto _test_eof183; +case 183: + switch( (*p) ) { + case 78: goto st184; + case 110: goto st184; + } + goto tr39; +st184: + if ( ++p == pe ) + goto _test_eof184; +case 184: + switch( (*p) ) { + case 69: goto st185; + case 101: goto st185; + } + goto tr39; +st185: + if ( ++p == pe ) + goto _test_eof185; +case 185: + switch( (*p) ) { + case 77: goto st186; + case 109: goto st186; + } + goto tr39; +st186: + if ( ++p == pe ) + goto _test_eof186; +case 186: + switch( (*p) ) { + case 68: goto st187; + case 100: goto st187; + } + goto tr39; +st187: + if ( ++p == pe ) + goto _test_eof187; +case 187: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr725; + case 32: goto tr725; + case 40: goto tr726; + case 41: goto tr727; + case 3082: goto tr728; + case 3131: goto tr729; + case 3338: goto tr730; + case 3387: goto tr730; + case 3594: goto tr731; + case 3643: goto tr732; } goto tr63; tr367: { s->buffer_length = 0; } - goto st182; -tr766: + goto st188; +tr780: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st182; -tr719: + goto st188; +tr733: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st182; + goto st188; tr344: { s->r_class = KNOT_CLASS_IN; @@ -26653,14 +27260,14 @@ tr344: { s->buffer_length = 0; } - goto st182; -tr779: + goto st188; +tr793: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -26668,17 +27275,17 @@ tr779: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st182; -st182: + goto st188; +st188: if ( ++p == pe ) - goto _test_eof182; -case 182: + goto _test_eof188; +case 188: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -26698,11 +27305,11 @@ case 182: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr720; + goto tr734; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr719; + goto tr733; goto tr39; -tr1031: +tr1045: { s->buffer[s->buffer_length++] = 0; @@ -26712,7 +27319,7 @@ tr1031: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1476; goto _out;} + {p++; cs = 1494; goto _out;} } } } @@ -26722,7 +27329,7 @@ tr1031: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -26735,22 +27342,22 @@ tr1031: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1476; goto _out;} + {p++; cs = 1494; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1476; goto _out;} + p--; {p++; cs = 1494; goto _out;} } } - goto st1476; + goto st1494; tr152: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -26763,7 +27370,7 @@ tr152: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -26776,15 +27383,15 @@ tr152: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1476; goto _out;} + {p++; cs = 1494; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1476; goto _out;} + p--; {p++; cs = 1494; goto _out;} } } - goto st1476; + goto st1494; tr158: { s->line_counter++; @@ -26792,7 +27399,7 @@ tr158: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -26805,19 +27412,19 @@ tr158: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1476; goto _out;} + {p++; cs = 1494; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1476; goto _out;} + p--; {p++; cs = 1494; goto _out;} } } - goto st1476; -st1476: + goto st1494; +st1494: if ( ++p == pe ) - goto _test_eof1476; -case 1476: + goto _test_eof1494; +case 1494: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26831,136 +27438,136 @@ case 1476: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4178; - case 32: goto tr4178; - case 36: goto st193; - case 40: goto tr4179; - case 41: goto tr4180; - case 42: goto tr4160; - case 65: goto tr4181; - case 67: goto tr4182; - case 68: goto tr4183; - case 69: goto tr4184; - case 72: goto tr4185; - case 73: goto tr4186; - case 75: goto tr4187; - case 76: goto tr4188; - case 77: goto tr4189; - case 78: goto tr4190; - case 79: goto tr4191; - case 80: goto tr4192; - case 82: goto tr4193; - case 83: goto tr4194; - case 84: goto tr4195; - case 85: goto tr4196; - case 87: goto tr4197; - case 90: goto tr4198; - case 92: goto tr4160; - case 95: goto tr4160; - case 97: goto tr4181; - case 99: goto tr4182; - case 100: goto tr4183; - case 101: goto tr4184; - case 104: goto tr4185; - case 105: goto tr4186; - case 107: goto tr4187; - case 108: goto tr4188; - case 109: goto tr4189; - case 110: goto tr4190; - case 111: goto tr4191; - case 112: goto tr4192; - case 114: goto tr4193; - case 115: goto tr4194; - case 116: goto tr4195; - case 117: goto tr4196; - case 119: goto tr4197; - case 122: goto tr4198; - case 1802: goto tr4161; - case 1851: goto tr4162; - case 2058: goto tr4199; - case 2107: goto tr4200; + case 9: goto tr4213; + case 32: goto tr4213; + case 36: goto st199; + case 40: goto tr4214; + case 41: goto tr4215; + case 42: goto tr4195; + case 65: goto tr4216; + case 67: goto tr4217; + case 68: goto tr4218; + case 69: goto tr4219; + case 72: goto tr4220; + case 73: goto tr4221; + case 75: goto tr4222; + case 76: goto tr4223; + case 77: goto tr4224; + case 78: goto tr4225; + case 79: goto tr4226; + case 80: goto tr4227; + case 82: goto tr4228; + case 83: goto tr4229; + case 84: goto tr4230; + case 85: goto tr4231; + case 87: goto tr4232; + case 90: goto tr4233; + case 92: goto tr4195; + case 95: goto tr4195; + case 97: goto tr4216; + case 99: goto tr4217; + case 100: goto tr4218; + case 101: goto tr4219; + case 104: goto tr4220; + case 105: goto tr4221; + case 107: goto tr4222; + case 108: goto tr4223; + case 109: goto tr4224; + case 110: goto tr4225; + case 111: goto tr4226; + case 112: goto tr4227; + case 114: goto tr4228; + case 115: goto tr4229; + case 116: goto tr4230; + case 117: goto tr4231; + case 119: goto tr4232; + case 122: goto tr4233; + case 1802: goto tr4196; + case 1851: goto tr4197; + case 2058: goto tr4234; + case 2107: goto tr4235; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4160; + goto tr4195; } else if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4160; + goto tr4195; } else - goto tr4160; - goto tr4177; -tr722: + goto tr4195; + goto tr4212; +tr736: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st183; -tr723: + goto st189; +tr737: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st183; -tr4178: + goto st189; +tr4213: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st183; -tr4179: + goto st189; +tr4214: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st183; -tr4180: + goto st189; +tr4215: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st183; -st183: + goto st189; +st189: if ( ++p == pe ) - goto _test_eof183; -case 183: + goto _test_eof189; +case 189: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26974,10 +27581,10 @@ case 183: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st183; - case 32: goto st183; - case 40: goto tr722; - case 41: goto tr723; + case 9: goto st189; + case 32: goto st189; + case 40: goto tr736; + case 41: goto tr737; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -27016,8 +27623,8 @@ case 183: case 122: goto tr22; case 1802: goto tr23; case 1851: goto tr24; - case 2058: goto tr724; - case 2107: goto tr725; + case 2058: goto tr738; + case 2107: goto tr739; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; @@ -27029,22 +27636,22 @@ tr10: { s->r_ttl = s->default_ttl; } - goto st184; -st184: + goto st190; +st190: if ( ++p == pe ) - goto _test_eof184; -case 184: + goto _test_eof190; +case 190: switch( (*p) ) { - case 78: goto st185; + case 78: goto st191; case 80: goto st77; - case 110: goto st185; + case 110: goto st191; case 112: goto st77; } goto tr39; -st185: +st191: if ( ++p == pe ) - goto _test_eof185; -case 185: + goto _test_eof191; +case 191: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27058,38 +27665,38 @@ case 185: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr727; - case 32: goto tr727; - case 40: goto tr728; - case 41: goto tr729; - case 2058: goto tr730; - case 2107: goto tr731; + case 9: goto tr741; + case 32: goto tr741; + case 40: goto tr742; + case 41: goto tr743; + case 2058: goto tr744; + case 2107: goto tr745; } goto tr39; -tr733: +tr747: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st186; -tr734: + goto st192; +tr748: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st186; -tr754: + goto st192; +tr768: { s->line_counter++; } - goto st186; -tr781: + goto st192; +tr795: { s->buffer[s->buffer_length++] = 0; @@ -27099,55 +27706,55 @@ tr781: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 186; goto _out;} + {p++; cs = 192; goto _out;} } } } { s->line_counter++; } - goto st186; -tr727: + goto st192; +tr741: { s->r_class = KNOT_CLASS_IN; } - goto st186; -tr728: + goto st192; +tr742: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st186; -tr729: + goto st192; +tr743: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st186; -tr730: + goto st192; +tr744: { s->r_class = KNOT_CLASS_IN; } { s->line_counter++; } - goto st186; -st186: + goto st192; +st192: if ( ++p == pe ) - goto _test_eof186; -case 186: + goto _test_eof192; +case 192: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27161,53 +27768,53 @@ case 186: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st186; - case 32: goto st186; - case 40: goto tr733; - case 41: goto tr734; - case 65: goto tr736; - case 67: goto tr737; - case 68: goto tr738; - case 69: goto tr739; - case 72: goto tr740; - case 73: goto tr741; - case 75: goto tr742; - case 76: goto tr743; - case 77: goto tr744; - case 78: goto tr745; - case 79: goto tr746; - case 80: goto tr747; - case 82: goto tr748; - case 83: goto tr749; - case 84: goto tr750; - case 85: goto tr751; - case 87: goto tr752; - case 90: goto tr753; - case 97: goto tr736; - case 99: goto tr737; - case 100: goto tr738; - case 101: goto tr739; - case 104: goto tr740; - case 105: goto tr741; - case 107: goto tr742; - case 108: goto tr743; - case 109: goto tr744; - case 110: goto tr745; - case 111: goto tr746; - case 112: goto tr747; - case 114: goto tr748; - case 115: goto tr749; - case 116: goto tr750; - case 117: goto tr751; - case 119: goto tr752; - case 122: goto tr753; - case 2058: goto tr754; - case 2107: goto tr755; + case 9: goto st192; + case 32: goto st192; + case 40: goto tr747; + case 41: goto tr748; + case 65: goto tr750; + case 67: goto tr751; + case 68: goto tr752; + case 69: goto tr753; + case 72: goto tr754; + case 73: goto tr755; + case 75: goto tr756; + case 76: goto tr757; + case 77: goto tr758; + case 78: goto tr759; + case 79: goto tr760; + case 80: goto tr761; + case 82: goto tr762; + case 83: goto tr763; + case 84: goto tr764; + case 85: goto tr765; + case 87: goto tr766; + case 90: goto tr767; + case 97: goto tr750; + case 99: goto tr751; + case 100: goto tr752; + case 101: goto tr753; + case 104: goto tr754; + case 105: goto tr755; + case 107: goto tr756; + case 108: goto tr757; + case 109: goto tr758; + case 110: goto tr759; + case 111: goto tr760; + case 112: goto tr761; + case 114: goto tr762; + case 115: goto tr763; + case 116: goto tr764; + case 117: goto tr765; + case 119: goto tr766; + case 122: goto tr767; + case 2058: goto tr768; + case 2107: goto tr769; } if ( 48 <= _widec && _widec <= 57 ) - goto tr735; - goto tr671; -tr735: + goto tr749; + goto tr685; +tr749: { s->number64 = 0; } @@ -27222,11 +27829,11 @@ tr735: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st187; -tr759: + goto st193; +tr773: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -27238,14 +27845,14 @@ tr759: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st187; -st187: + goto st193; +st193: if ( ++p == pe ) - goto _test_eof187; -case 187: + goto _test_eof193; +case 193: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27259,66 +27866,66 @@ case 187: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr756; - case 32: goto tr756; - case 40: goto tr757; - case 41: goto tr758; - case 68: goto tr760; - case 72: goto tr761; - case 77: goto tr762; - case 83: goto st188; - case 87: goto tr764; - case 100: goto tr760; - case 104: goto tr761; - case 109: goto tr762; - case 115: goto st188; - case 119: goto tr764; - case 2058: goto tr765; - case 2107: goto tr766; + case 9: goto tr770; + case 32: goto tr770; + case 40: goto tr771; + case 41: goto tr772; + case 68: goto tr774; + case 72: goto tr775; + case 77: goto tr776; + case 83: goto st194; + case 87: goto tr778; + case 100: goto tr774; + case 104: goto tr775; + case 109: goto tr776; + case 115: goto st194; + case 119: goto tr778; + case 2058: goto tr779; + case 2107: goto tr780; } if ( 48 <= _widec && _widec <= 57 ) - goto tr759; + goto tr773; goto tr27; -tr760: +tr774: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st188; -tr761: + goto st194; +tr775: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st188; -tr762: + goto st194; +tr776: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st188; -tr764: + goto st194; +tr778: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st188; -st188: + goto st194; +st194: if ( ++p == pe ) - goto _test_eof188; -case 188: + goto _test_eof194; +case 194: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27332,17 +27939,17 @@ case 188: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr756; - case 32: goto tr756; - case 40: goto tr757; - case 41: goto tr758; - case 2058: goto tr765; - case 2107: goto tr766; + case 9: goto tr770; + case 32: goto tr770; + case 40: goto tr771; + case 41: goto tr772; + case 2058: goto tr779; + case 2107: goto tr780; } if ( 48 <= _widec && _widec <= 57 ) - goto tr767; + goto tr781; goto tr27; -tr768: +tr782: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -27354,11 +27961,11 @@ tr768: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st189; -tr767: + goto st195; +tr781: { s->number64_tmp = s->number64; } @@ -27376,17 +27983,17 @@ tr767: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st189; -tr777: + goto st195; +tr791: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -27406,69 +28013,69 @@ tr777: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st189; -st189: + goto st195; +st195: if ( ++p == pe ) - goto _test_eof189; -case 189: + goto _test_eof195; +case 195: switch( (*p) ) { - case 68: goto tr769; - case 72: goto tr770; - case 77: goto tr771; - case 83: goto st190; - case 87: goto tr773; - case 100: goto tr769; - case 104: goto tr770; - case 109: goto tr771; - case 115: goto st190; - case 119: goto tr773; + case 68: goto tr783; + case 72: goto tr784; + case 77: goto tr785; + case 83: goto st196; + case 87: goto tr787; + case 100: goto tr783; + case 104: goto tr784; + case 109: goto tr785; + case 115: goto st196; + case 119: goto tr787; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr768; + goto tr782; goto tr27; -tr769: +tr783: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st190; -tr770: + goto st196; +tr784: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st190; -tr771: + goto st196; +tr785: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st190; -tr773: + goto st196; +tr787: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st190; -st190: + goto st196; +st196: if ( ++p == pe ) - goto _test_eof190; -case 190: + goto _test_eof196; +case 196: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27482,40 +28089,40 @@ case 190: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr774; - case 32: goto tr774; - case 40: goto tr775; - case 41: goto tr776; - case 2058: goto tr778; - case 2107: goto tr779; + case 9: goto tr788; + case 32: goto tr788; + case 40: goto tr789; + case 41: goto tr790; + case 2058: goto tr792; + case 2107: goto tr793; } if ( 48 <= _widec && _widec <= 57 ) - goto tr777; + goto tr791; goto tr27; -tr755: +tr769: { s->buffer_length = 0; } - goto st191; -tr780: + goto st197; +tr794: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st191; -tr731: + goto st197; +tr745: { s->r_class = KNOT_CLASS_IN; } { s->buffer_length = 0; } - goto st191; -st191: + goto st197; +st197: if ( ++p == pe ) - goto _test_eof191; -case 191: + goto _test_eof197; +case 197: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -27535,16 +28142,16 @@ case 191: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr781; + goto tr795; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr780; + goto tr794; goto tr39; tr24: { s->buffer_length = 0; } - goto st192; -tr4162: + goto st198; +tr4197: { s->buffer[0] = 0; s->buffer_length = 0; @@ -27552,15 +28159,15 @@ tr4162: { s->buffer_length = 0; } - goto st192; -tr782: + goto st198; +tr796: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st192; -tr4228: + goto st198; +tr4263: { NOERR; } @@ -27571,20 +28178,20 @@ tr4228: { s->buffer_length = 0; } - goto st192; -st192: + goto st198; +st198: if ( ++p == pe ) - goto _test_eof192; -case 192: + goto _test_eof198; +case 198: if ( (*p) == 10 ) - goto tr783; - goto tr782; -tr724: + goto tr797; + goto tr796; +tr738: { s->line_counter++; } - goto st1477; -tr1029: + goto st1495; +tr1043: { s->buffer[s->buffer_length++] = 0; @@ -27594,15 +28201,15 @@ tr1029: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1477; goto _out;} + {p++; cs = 1495; goto _out;} } } } { s->line_counter++; } - goto st1477; -tr918: + goto st1495; +tr932: { s->buffer[s->buffer_length++] = 0; @@ -27612,7 +28219,7 @@ tr918: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1477; goto _out;} + {p++; cs = 1495; goto _out;} } } } @@ -27622,7 +28229,7 @@ tr918: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -27635,23 +28242,23 @@ tr918: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1477; goto _out;} + {p++; cs = 1495; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1477; goto _out;} + p--; {p++; cs = 1495; goto _out;} } } - goto st1477; -tr915: + goto st1495; +tr929: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -27664,16 +28271,16 @@ tr915: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1477; goto _out;} + {p++; cs = 1495; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1477; goto _out;} + p--; {p++; cs = 1495; goto _out;} } } - goto st1477; -tr910: + goto st1495; +tr924: { s->r_owner_length = s->dname_tmp_length; } @@ -27685,7 +28292,7 @@ tr910: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -27695,7 +28302,7 @@ tr910: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -27708,34 +28315,34 @@ tr910: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1477; goto _out;} + {p++; cs = 1495; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1477; goto _out;} + p--; {p++; cs = 1495; goto _out;} } } - goto st1477; -tr4199: + goto st1495; +tr4234: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1477; -st1477: + goto st1495; +st1495: if ( ++p == pe ) - goto _test_eof1477; -case 1477: + goto _test_eof1495; +case 1495: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27749,171 +28356,171 @@ case 1477: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4178; - case 32: goto tr4178; - case 36: goto st193; - case 40: goto tr4179; - case 41: goto tr4180; - case 42: goto tr4160; - case 65: goto tr4203; - case 67: goto tr4204; - case 68: goto tr4205; - case 69: goto tr4206; - case 72: goto tr4207; - case 73: goto tr4208; - case 75: goto tr4209; - case 76: goto tr4210; - case 77: goto tr4211; - case 78: goto tr4212; - case 79: goto tr4213; - case 80: goto tr4214; - case 82: goto tr4215; - case 83: goto tr4216; - case 84: goto tr4217; - case 85: goto tr4218; - case 87: goto tr4219; - case 90: goto tr4220; - case 92: goto tr4160; - case 95: goto tr4160; - case 97: goto tr4203; - case 99: goto tr4204; - case 100: goto tr4205; - case 101: goto tr4206; - case 104: goto tr4207; - case 105: goto tr4208; - case 107: goto tr4209; - case 108: goto tr4210; - case 109: goto tr4211; - case 110: goto tr4212; - case 111: goto tr4213; - case 112: goto tr4214; - case 114: goto tr4215; - case 115: goto tr4216; - case 116: goto tr4217; - case 117: goto tr4218; - case 119: goto tr4219; - case 122: goto tr4220; - case 1802: goto tr4161; - case 1851: goto tr4162; - case 2058: goto tr4199; - case 2107: goto tr4200; + case 9: goto tr4213; + case 32: goto tr4213; + case 36: goto st199; + case 40: goto tr4214; + case 41: goto tr4215; + case 42: goto tr4195; + case 65: goto tr4238; + case 67: goto tr4239; + case 68: goto tr4240; + case 69: goto tr4241; + case 72: goto tr4242; + case 73: goto tr4243; + case 75: goto tr4244; + case 76: goto tr4245; + case 77: goto tr4246; + case 78: goto tr4247; + case 79: goto tr4248; + case 80: goto tr4249; + case 82: goto tr4250; + case 83: goto tr4251; + case 84: goto tr4252; + case 85: goto tr4253; + case 87: goto tr4254; + case 90: goto tr4255; + case 92: goto tr4195; + case 95: goto tr4195; + case 97: goto tr4238; + case 99: goto tr4239; + case 100: goto tr4240; + case 101: goto tr4241; + case 104: goto tr4242; + case 105: goto tr4243; + case 107: goto tr4244; + case 108: goto tr4245; + case 109: goto tr4246; + case 110: goto tr4247; + case 111: goto tr4248; + case 112: goto tr4249; + case 114: goto tr4250; + case 115: goto tr4251; + case 116: goto tr4252; + case 117: goto tr4253; + case 119: goto tr4254; + case 122: goto tr4255; + case 1802: goto tr4196; + case 1851: goto tr4197; + case 2058: goto tr4234; + case 2107: goto tr4235; } if ( _widec < 48 ) { if ( 45 <= _widec && _widec <= 47 ) - goto tr4160; + goto tr4195; } else if ( _widec > 57 ) { if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4160; + goto tr4195; } else if ( _widec >= 64 ) - goto tr4160; + goto tr4195; } else - goto tr4202; - goto tr4201; -tr4223: + goto tr4237; + goto tr4236; +tr4258: { NOERR; } - goto st193; -st193: + goto st199; +st199: if ( ++p == pe ) - goto _test_eof193; -case 193: + goto _test_eof199; +case 199: switch( (*p) ) { - case 73: goto tr785; - case 79: goto tr786; - case 84: goto tr787; - case 105: goto tr785; - case 111: goto tr786; - case 116: goto tr787; + case 73: goto tr799; + case 79: goto tr800; + case 84: goto tr801; + case 105: goto tr799; + case 111: goto tr800; + case 116: goto tr801; } - goto tr784; -tr785: + goto tr798; +tr799: { ERR(ZS_OK); } - goto st194; -st194: + goto st200; +st200: if ( ++p == pe ) - goto _test_eof194; -case 194: + goto _test_eof200; +case 200: switch( (*p) ) { - case 78: goto st195; - case 110: goto st195; + case 78: goto st201; + case 110: goto st201; } - goto tr784; -st195: + goto tr798; +st201: if ( ++p == pe ) - goto _test_eof195; -case 195: + goto _test_eof201; +case 201: switch( (*p) ) { - case 67: goto st196; - case 99: goto st196; + case 67: goto st202; + case 99: goto st202; } - goto tr784; -st196: + goto tr798; +st202: if ( ++p == pe ) - goto _test_eof196; -case 196: + goto _test_eof202; +case 202: switch( (*p) ) { - case 76: goto st197; - case 108: goto st197; + case 76: goto st203; + case 108: goto st203; } - goto tr784; -st197: + goto tr798; +st203: if ( ++p == pe ) - goto _test_eof197; -case 197: + goto _test_eof203; +case 203: switch( (*p) ) { - case 85: goto st198; - case 117: goto st198; + case 85: goto st204; + case 117: goto st204; } - goto tr784; -st198: + goto tr798; +st204: if ( ++p == pe ) - goto _test_eof198; -case 198: + goto _test_eof204; +case 204: switch( (*p) ) { - case 68: goto st199; - case 100: goto st199; + case 68: goto st205; + case 100: goto st205; } - goto tr784; -st199: + goto tr798; +st205: if ( ++p == pe ) - goto _test_eof199; -case 199: + goto _test_eof205; +case 205: switch( (*p) ) { - case 69: goto st200; - case 101: goto st200; + case 69: goto st206; + case 101: goto st206; } - goto tr784; -st200: + goto tr798; +st206: if ( ++p == pe ) - goto _test_eof200; -case 200: + goto _test_eof206; +case 206: switch( (*p) ) { - case 32: goto tr794; - case 59: goto tr794; + case 32: goto tr808; + case 59: goto tr808; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr794; + goto tr808; } else if ( (*p) >= 9 ) - goto tr794; - goto tr784; -tr794: - { p--; {stack[top++] = 1478;goto st364;} } - goto st1478; -tr896: - { p--; {stack[top++] = 1478;goto st352;} } - goto st1478; -tr899: - { p--; {stack[top++] = 1478;goto st343;} } - goto st1478; -st1478: + goto tr808; + goto tr798; +tr808: + { p--; {stack[top++] = 1496;goto st370;} } + goto st1496; +tr910: + { p--; {stack[top++] = 1496;goto st358;} } + goto st1496; +tr913: + { p--; {stack[top++] = 1496;goto st349;} } + goto st1496; +st1496: if ( ++p == pe ) - goto _test_eof1478; -case 1478: + goto _test_eof1496; +case 1496: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27927,36 +28534,36 @@ case 1478: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4222; - case 32: goto tr4222; - case 36: goto tr4223; - case 40: goto tr4224; - case 41: goto tr4225; - case 42: goto tr4226; - case 92: goto tr4226; - case 95: goto tr4226; - case 1802: goto tr4227; - case 1851: goto tr4228; - case 2058: goto tr4229; - case 2107: goto tr4230; + case 9: goto tr4257; + case 32: goto tr4257; + case 36: goto tr4258; + case 40: goto tr4259; + case 41: goto tr4260; + case 42: goto tr4261; + case 92: goto tr4261; + case 95: goto tr4261; + case 1802: goto tr4262; + case 1851: goto tr4263; + case 2058: goto tr4264; + case 2107: goto tr4265; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4226; + goto tr4261; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4226; + goto tr4261; } else - goto tr4226; - goto tr4221; -tr4160: + goto tr4261; + goto tr4256; +tr4195: { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 201;goto st321;} } - goto st201; -tr4226: + { p--; {stack[top++] = 207;goto st327;} } + goto st207; +tr4261: { NOERR; } @@ -27964,12 +28571,12 @@ tr4226: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 201;goto st321;} } - goto st201; -st201: + { p--; {stack[top++] = 207;goto st327;} } + goto st207; +st207: if ( ++p == pe ) - goto _test_eof201; -case 201: + goto _test_eof207; +case 207: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27983,38 +28590,38 @@ case 201: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 2058: goto tr799; - case 2107: goto tr800; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 2058: goto tr813; + case 2107: goto tr814; } - goto tr795; -tr802: + goto tr809; +tr816: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st202; -tr803: + goto st208; +tr817: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st202; -tr804: + goto st208; +tr818: { s->line_counter++; } - goto st202; -tr808: + goto st208; +tr822: { s->buffer[s->buffer_length++] = 0; @@ -28024,55 +28631,55 @@ tr808: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 202; goto _out;} + {p++; cs = 208; goto _out;} } } } { s->line_counter++; } - goto st202; -tr796: + goto st208; +tr810: { s->r_owner_length = s->dname_tmp_length; } - goto st202; -tr797: + goto st208; +tr811: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st202; -tr798: + goto st208; +tr812: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st202; -tr799: + goto st208; +tr813: { s->r_owner_length = s->dname_tmp_length; } { s->line_counter++; } - goto st202; -st202: + goto st208; +st208: if ( ++p == pe ) - goto _test_eof202; -case 202: + goto _test_eof208; +case 208: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28086,10 +28693,10 @@ case 202: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st202; - case 32: goto st202; - case 40: goto tr802; - case 41: goto tr803; + case 9: goto st208; + case 32: goto st208; + case 40: goto tr816; + case 41: goto tr817; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -28126,36 +28733,36 @@ case 202: case 117: goto tr20; case 119: goto tr21; case 122: goto tr22; - case 2058: goto tr804; - case 2107: goto tr805; + case 2058: goto tr818; + case 2107: goto tr819; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; - goto tr671; -tr805: + goto tr685; +tr819: { s->buffer_length = 0; } - goto st203; -tr806: + goto st209; +tr820: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st203; -tr800: + goto st209; +tr814: { s->r_owner_length = s->dname_tmp_length; } { s->buffer_length = 0; } - goto st203; -st203: + goto st209; +st209: if ( ++p == pe ) - goto _test_eof203; -case 203: + goto _test_eof209; +case 209: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -28175,16 +28782,16 @@ case 203: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr808; + goto tr822; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr806; + goto tr820; goto st0; tr25: { s->line_counter++; } - goto st1479; -tr1027: + goto st1497; +tr1041: { s->buffer[s->buffer_length++] = 0; @@ -28194,15 +28801,15 @@ tr1027: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1479; goto _out;} + {p++; cs = 1497; goto _out;} } } } { s->line_counter++; } - goto st1479; -tr873: + goto st1497; +tr887: { s->buffer[s->buffer_length++] = 0; @@ -28212,7 +28819,7 @@ tr873: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1479; goto _out;} + {p++; cs = 1497; goto _out;} } } } @@ -28222,7 +28829,7 @@ tr873: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -28235,23 +28842,23 @@ tr873: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1479; goto _out;} + {p++; cs = 1497; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1479; goto _out;} + p--; {p++; cs = 1497; goto _out;} } } - goto st1479; -tr870: + goto st1497; +tr884: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -28264,16 +28871,16 @@ tr870: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1479; goto _out;} + {p++; cs = 1497; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1479; goto _out;} + p--; {p++; cs = 1497; goto _out;} } } - goto st1479; -tr904: + goto st1497; +tr918: { s->r_owner_length = s->dname_tmp_length; } @@ -28287,7 +28894,7 @@ tr904: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -28300,16 +28907,16 @@ tr904: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1479; goto _out;} + {p++; cs = 1497; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1479; goto _out;} + p--; {p++; cs = 1497; goto _out;} } } - goto st1479; -tr941: + goto st1497; +tr955: { s->line_counter++; } @@ -28320,7 +28927,7 @@ tr941: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -28333,16 +28940,16 @@ tr941: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1479; goto _out;} + {p++; cs = 1497; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1479; goto _out;} + p--; {p++; cs = 1497; goto _out;} } } - goto st1479; -tr944: + goto st1497; +tr958: { s->buffer[s->buffer_length++] = 0; @@ -28352,7 +28959,7 @@ tr944: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1479; goto _out;} + {p++; cs = 1497; goto _out;} } } } @@ -28366,7 +28973,7 @@ tr944: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -28379,20 +28986,20 @@ tr944: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1479; goto _out;} + {p++; cs = 1497; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1479; goto _out;} + p--; {p++; cs = 1497; goto _out;} } } - goto st1479; -tr4163: + goto st1497; +tr4198: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -28402,30 +29009,30 @@ tr4163: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1479; -tr4233: + goto st1497; +tr4268: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1479; -tr4229: + goto st1497; +tr4264: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -28435,8 +29042,8 @@ tr4229: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1479; -tr4238: + goto st1497; +tr4273: { s->buffer[0] = 0; s->buffer_length = 0; @@ -28444,7 +29051,7 @@ tr4238: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -28457,12 +29064,12 @@ tr4238: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1479; goto _out;} + {p++; cs = 1497; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1479; goto _out;} + p--; {p++; cs = 1497; goto _out;} } } { @@ -28471,11 +29078,11 @@ tr4238: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1479; -tr4265: + goto st1497; +tr4300: { s->line_counter++; } @@ -28486,7 +29093,7 @@ tr4265: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -28499,25 +29106,25 @@ tr4265: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1479; goto _out;} + {p++; cs = 1497; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1479; goto _out;} + p--; {p++; cs = 1497; goto _out;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1479; -st1479: + goto st1497; +st1497: if ( ++p == pe ) - goto _test_eof1479; -case 1479: + goto _test_eof1497; +case 1497: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28531,68 +29138,68 @@ case 1479: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4156; - case 32: goto tr4156; - case 36: goto st193; - case 40: goto tr4231; - case 41: goto tr4232; - case 42: goto tr4160; - case 65: goto tr4203; - case 67: goto tr4204; - case 68: goto tr4205; - case 69: goto tr4206; - case 72: goto tr4207; - case 73: goto tr4208; - case 75: goto tr4209; - case 76: goto tr4210; - case 77: goto tr4211; - case 78: goto tr4212; - case 79: goto tr4213; - case 80: goto tr4214; - case 82: goto tr4215; - case 83: goto tr4216; - case 84: goto tr4217; - case 85: goto tr4218; - case 87: goto tr4219; - case 90: goto tr4220; - case 92: goto tr4160; - case 95: goto tr4160; - case 97: goto tr4203; - case 99: goto tr4204; - case 100: goto tr4205; - case 101: goto tr4206; - case 104: goto tr4207; - case 105: goto tr4208; - case 107: goto tr4209; - case 108: goto tr4210; - case 109: goto tr4211; - case 110: goto tr4212; - case 111: goto tr4213; - case 112: goto tr4214; - case 114: goto tr4215; - case 115: goto tr4216; - case 116: goto tr4217; - case 117: goto tr4218; - case 119: goto tr4219; - case 122: goto tr4220; - case 1802: goto tr4161; - case 1851: goto tr4162; - case 2058: goto tr4233; - case 2107: goto tr4234; + case 9: goto tr4191; + case 32: goto tr4191; + case 36: goto st199; + case 40: goto tr4266; + case 41: goto tr4267; + case 42: goto tr4195; + case 65: goto tr4238; + case 67: goto tr4239; + case 68: goto tr4240; + case 69: goto tr4241; + case 72: goto tr4242; + case 73: goto tr4243; + case 75: goto tr4244; + case 76: goto tr4245; + case 77: goto tr4246; + case 78: goto tr4247; + case 79: goto tr4248; + case 80: goto tr4249; + case 82: goto tr4250; + case 83: goto tr4251; + case 84: goto tr4252; + case 85: goto tr4253; + case 87: goto tr4254; + case 90: goto tr4255; + case 92: goto tr4195; + case 95: goto tr4195; + case 97: goto tr4238; + case 99: goto tr4239; + case 100: goto tr4240; + case 101: goto tr4241; + case 104: goto tr4242; + case 105: goto tr4243; + case 107: goto tr4244; + case 108: goto tr4245; + case 109: goto tr4246; + case 110: goto tr4247; + case 111: goto tr4248; + case 112: goto tr4249; + case 114: goto tr4250; + case 115: goto tr4251; + case 116: goto tr4252; + case 117: goto tr4253; + case 119: goto tr4254; + case 122: goto tr4255; + case 1802: goto tr4196; + case 1851: goto tr4197; + case 2058: goto tr4268; + case 2107: goto tr4269; } if ( _widec < 48 ) { if ( 45 <= _widec && _widec <= 47 ) - goto tr4160; + goto tr4195; } else if ( _widec > 57 ) { if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4160; + goto tr4195; } else if ( _widec >= 64 ) - goto tr4160; + goto tr4195; } else - goto tr4202; - goto tr4201; -tr4202: + goto tr4237; + goto tr4236; +tr4237: { s->number64 = 0; } @@ -28607,19 +29214,19 @@ tr4202: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 204;goto st321;} } - goto st204; -st204: + { p--; {stack[top++] = 210;goto st327;} } + goto st210; +st210: if ( ++p == pe ) - goto _test_eof204; -case 204: + goto _test_eof210; +case 210: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28633,50 +29240,50 @@ case 204: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr824; + case 32: goto tr824; + case 40: goto tr825; + case 41: goto tr826; case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st207; + case 83: goto st213; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st207; + case 115: goto st213; case 119: goto tr36; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr827; + case 2107: goto tr828; } if ( 48 <= _widec && _widec <= 57 ) goto tr31; - goto tr809; -tr816: + goto tr823; +tr830: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st205; -tr817: + goto st211; +tr831: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st205; -tr818: + goto st211; +tr832: { s->line_counter++; } - goto st205; -tr821: + goto st211; +tr835: { s->buffer[s->buffer_length++] = 0; @@ -28686,15 +29293,15 @@ tr821: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 205; goto _out;} + {p++; cs = 211; goto _out;} } } } { s->line_counter++; } - goto st205; -tr810: + goto st211; +tr824: { s->r_owner_length = s->dname_tmp_length; } @@ -28703,18 +29310,18 @@ tr810: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st205; -tr811: + goto st211; +tr825: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -28723,18 +29330,18 @@ tr811: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st205; -tr812: + goto st211; +tr826: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -28743,11 +29350,11 @@ tr812: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st205; -tr813: + goto st211; +tr827: { s->r_owner_length = s->dname_tmp_length; } @@ -28759,14 +29366,14 @@ tr813: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st205; -st205: + goto st211; +st211: if ( ++p == pe ) - goto _test_eof205; -case 205: + goto _test_eof211; +case 211: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28780,10 +29387,10 @@ case 205: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st205; - case 32: goto st205; - case 40: goto tr816; - case 41: goto tr817; + case 9: goto st211; + case 32: goto st211; + case 40: goto tr830; + case 41: goto tr831; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -28820,25 +29427,25 @@ case 205: case 117: goto tr20; case 119: goto tr21; case 122: goto tr22; - case 2058: goto tr818; - case 2107: goto tr819; + case 2058: goto tr832; + case 2107: goto tr833; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; - goto tr671; -tr819: + goto tr685; +tr833: { s->buffer_length = 0; } - goto st206; -tr820: + goto st212; +tr834: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st206; -tr814: + goto st212; +tr828: { s->r_owner_length = s->dname_tmp_length; } @@ -28850,14 +29457,14 @@ tr814: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st206; -st206: + goto st212; +st212: if ( ++p == pe ) - goto _test_eof206; -case 206: + goto _test_eof212; +case 212: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -28877,50 +29484,50 @@ case 206: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr821; + goto tr835; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr820; + goto tr834; goto tr39; tr32: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st207; + goto st213; tr33: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st207; + goto st213; tr34: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st207; + goto st213; tr36: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st207; -st207: + goto st213; +st213: if ( ++p == pe ) - goto _test_eof207; -case 207: + goto _test_eof213; +case 213: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28942,9 +29549,9 @@ case 207: case 2107: goto tr38; } if ( 48 <= _widec && _widec <= 57 ) - goto tr822; + goto tr836; goto tr27; -tr823: +tr837: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -28956,11 +29563,11 @@ tr823: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st208; -tr822: + goto st214; +tr836: { s->number64_tmp = s->number64; } @@ -28978,17 +29585,17 @@ tr822: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st208; -tr832: + goto st214; +tr846: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -29008,69 +29615,69 @@ tr832: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st208; -st208: + goto st214; +st214: if ( ++p == pe ) - goto _test_eof208; -case 208: + goto _test_eof214; +case 214: switch( (*p) ) { - case 68: goto tr824; - case 72: goto tr825; - case 77: goto tr826; - case 83: goto st209; - case 87: goto tr828; - case 100: goto tr824; - case 104: goto tr825; - case 109: goto tr826; - case 115: goto st209; - case 119: goto tr828; + case 68: goto tr838; + case 72: goto tr839; + case 77: goto tr840; + case 83: goto st215; + case 87: goto tr842; + case 100: goto tr838; + case 104: goto tr839; + case 109: goto tr840; + case 115: goto st215; + case 119: goto tr842; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr823; + goto tr837; goto tr27; -tr824: +tr838: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st209; -tr825: + goto st215; +tr839: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st209; -tr826: + goto st215; +tr840: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st209; -tr828: + goto st215; +tr842: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st209; -st209: + goto st215; +st215: if ( ++p == pe ) - goto _test_eof209; -case 209: + goto _test_eof215; +case 215: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29084,48 +29691,48 @@ case 209: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr829; - case 32: goto tr829; - case 40: goto tr830; - case 41: goto tr831; - case 2058: goto tr833; - case 2107: goto tr834; + case 9: goto tr843; + case 32: goto tr843; + case 40: goto tr844; + case 41: goto tr845; + case 2058: goto tr847; + case 2107: goto tr848; } if ( 48 <= _widec && _widec <= 57 ) - goto tr832; + goto tr846; goto tr27; tr62: { s->buffer_length = 0; } - goto st210; + goto st216; tr38: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st210; -tr835: + goto st216; +tr849: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st210; -tr834: + goto st216; +tr848: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -29133,17 +29740,17 @@ tr834: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st210; -st210: + goto st216; +st216: if ( ++p == pe ) - goto _test_eof210; -case 210: + goto _test_eof216; +case 216: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -29163,11 +29770,11 @@ case 210: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr836; + goto tr850; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr835; + goto tr849; goto tr39; -tr4181: +tr4216: { s->r_class = s->default_class; } @@ -29175,9 +29782,9 @@ tr4181: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 211;goto st321;} } - goto st211; -tr4203: + { p--; {stack[top++] = 217;goto st327;} } + goto st217; +tr4238: { s->r_class = s->default_class; } @@ -29188,12 +29795,12 @@ tr4203: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 211;goto st321;} } - goto st211; -st211: + { p--; {stack[top++] = 217;goto st327;} } + goto st217; +st217: if ( ++p == pe ) - goto _test_eof211; -case 211: + goto _test_eof217; +case 217: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29211,48 +29818,48 @@ case 211: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr838; - case 32: goto tr838; - case 40: goto tr839; - case 41: goto tr840; - case 65: goto st277; - case 70: goto st280; - case 80: goto st284; - case 97: goto st277; - case 102: goto st280; - case 112: goto st284; - case 3082: goto tr841; - case 3131: goto tr842; + case 9: goto tr852; + case 32: goto tr852; + case 40: goto tr853; + case 41: goto tr854; + case 65: goto st283; + case 70: goto st286; + case 80: goto st290; + case 97: goto st283; + case 102: goto st286; + case 112: goto st290; + case 3082: goto tr855; + case 3131: goto tr856; case 3338: goto tr72; case 3387: goto tr72; - case 3594: goto tr843; - case 3643: goto tr844; + case 3594: goto tr857; + case 3643: goto tr858; } - goto tr837; -tr846: + goto tr851; +tr860: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st212; -tr847: + goto st218; +tr861: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st212; -tr848: + goto st218; +tr862: { s->line_counter++; } - goto st212; -tr1013: + goto st218; +tr1027: { s->buffer[s->buffer_length++] = 0; @@ -29262,15 +29869,15 @@ tr1013: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 212; goto _out;} + {p++; cs = 218; goto _out;} } } } { s->line_counter++; } - goto st212; -tr838: + goto st218; +tr852: { s->r_owner_length = s->dname_tmp_length; } @@ -29278,15 +29885,15 @@ tr838: { rdata_tail = s->r_data; } - goto st212; -tr839: + goto st218; +tr853: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -29294,15 +29901,15 @@ tr839: { rdata_tail = s->r_data; } - goto st212; -tr840: + goto st218; +tr854: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -29310,8 +29917,8 @@ tr840: { rdata_tail = s->r_data; } - goto st212; -tr841: + goto st218; +tr855: { s->r_owner_length = s->dname_tmp_length; } @@ -29322,11 +29929,11 @@ tr841: { rdata_tail = s->r_data; } - goto st212; -st212: + goto st218; +st218: if ( ++p == pe ) - goto _test_eof212; -case 212: + goto _test_eof218; +case 218: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29344,10 +29951,10 @@ case 212: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st212; - case 32: goto st212; - case 40: goto tr846; - case 41: goto tr847; + case 9: goto st218; + case 32: goto st218; + case 40: goto tr860; + case 41: goto tr861; case 58: goto tr75; case 65: goto tr124; case 67: goto tr125; @@ -29386,12 +29993,12 @@ case 212: case 117: goto tr139; case 119: goto tr140; case 122: goto tr141; - case 3082: goto tr848; - case 3131: goto tr849; + case 3082: goto tr862; + case 3131: goto tr863; case 3338: goto tr75; case 3387: goto tr75; - case 3594: goto tr850; - case 3643: goto tr851; + case 3594: goto tr864; + case 3643: goto tr865; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -29404,7 +30011,7 @@ case 212: goto tr123; } else goto tr75; - goto tr673; + goto tr687; tr124: { s->r_class = s->default_class; @@ -29416,98 +30023,99 @@ tr124: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 213;goto st1071;} + {stack[top++] = 219;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 213;goto st1073;} + {stack[top++] = 219;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 213;goto st1075;} + {stack[top++] = 219;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 213;goto st1107;} + {stack[top++] = 219;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 213;goto st1112;} + {stack[top++] = 219;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 213;goto st1117;} + {stack[top++] = 219;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 213;goto st1122;} + {stack[top++] = 219;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 213;goto st1126;} + {stack[top++] = 219;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 213;goto st1128;} + {stack[top++] = 219;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 213;goto st1183;} + {stack[top++] = 219;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 213;goto st1194;} + {stack[top++] = 219;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 213;goto st1211;} + {stack[top++] = 219;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 213;goto st1222;} + {stack[top++] = 219;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 213;goto st1233;} + {stack[top++] = 219;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 213;goto st1246;} + {stack[top++] = 219;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 213;goto st1256;} + {stack[top++] = 219;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 213;goto st1295;} + {stack[top++] = 219;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 213;goto st1321;} + {stack[top++] = 219;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 213;goto st1324;} + {stack[top++] = 219;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 213;goto st1335;} + {stack[top++] = 219;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 213;goto st1337;} + {stack[top++] = 219;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 213;goto st1366;} + {stack[top++] = 219;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 213;goto st1379;} + {stack[top++] = 219;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 213;goto st1392;} + {stack[top++] = 219;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 213;goto st1398;} + {stack[top++] = 219;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 213;goto st1416;} + {stack[top++] = 219;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 213;goto st1411;} + {stack[top++] = 219;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 213;goto st1429;} + {stack[top++] = 219;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 213;goto st1435;} + {stack[top++] = 219;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 213;goto st1441;} + {stack[top++] = 219;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 213;goto st1449;} + {stack[top++] = 219;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 213;goto st1457;} + {stack[top++] = 219;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 213;goto st1463;} + {stack[top++] = 219;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st213; -st213: + goto st219; +st219: if ( ++p == pe ) - goto _test_eof213; -case 213: + goto _test_eof219; +case 219: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29525,45 +30133,45 @@ case 213: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr853; - case 32: goto tr853; - case 40: goto tr854; - case 41: goto tr855; - case 65: goto st277; - case 70: goto st280; - case 80: goto st284; - case 97: goto st277; - case 102: goto st280; - case 112: goto st284; + case 9: goto tr867; + case 32: goto tr867; + case 40: goto tr868; + case 41: goto tr869; + case 65: goto st283; + case 70: goto st286; + case 80: goto st290; + case 97: goto st283; + case 102: goto st286; + case 112: goto st290; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr856; - case 3131: goto tr857; - case 3338: goto tr858; - case 3387: goto tr859; - case 3594: goto tr860; - case 3643: goto tr861; - } - goto tr852; -tr863: + case 3082: goto tr870; + case 3131: goto tr871; + case 3338: goto tr872; + case 3387: goto tr873; + case 3594: goto tr874; + case 3643: goto tr875; + } + goto tr866; +tr877: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st214; -tr864: + goto st220; +tr878: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st214; -tr853: + goto st220; +tr867: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -29572,8 +30180,8 @@ tr853: s->buffer[0] = 0; s->buffer_length = 0; } - goto st214; -tr854: + goto st220; +tr868: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -29581,7 +30189,7 @@ tr854: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -29589,8 +30197,8 @@ tr854: s->buffer[0] = 0; s->buffer_length = 0; } - goto st214; -tr855: + goto st220; +tr869: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -29598,7 +30206,7 @@ tr855: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -29606,11 +30214,11 @@ tr855: s->buffer[0] = 0; s->buffer_length = 0; } - goto st214; -st214: + goto st220; +st220: if ( ++p == pe ) - goto _test_eof214; -case 214: + goto _test_eof220; +case 220: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29628,18 +30236,18 @@ case 214: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st214; - case 32: goto st214; - case 40: goto tr863; - case 41: goto tr864; + case 9: goto st220; + case 32: goto st220; + case 40: goto tr877; + case 41: goto tr878; case 92: goto tr80; case 2826: goto tr95; case 2875: goto tr96; - case 3082: goto tr865; + case 3082: goto tr879; case 3131: goto tr113; case 3338: goto tr114; case 3387: goto tr115; - case 3594: goto tr866; + case 3594: goto tr880; case 3643: goto tr116; } if ( _widec < 11 ) { @@ -29656,91 +30264,92 @@ tr107: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1480;goto st1071;} + {stack[top++] = 1498;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1480;goto st1073;} + {stack[top++] = 1498;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1480;goto st1075;} + {stack[top++] = 1498;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1480;goto st1107;} + {stack[top++] = 1498;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1480;goto st1112;} + {stack[top++] = 1498;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1480;goto st1117;} + {stack[top++] = 1498;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1480;goto st1122;} + {stack[top++] = 1498;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1480;goto st1126;} + {stack[top++] = 1498;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1480;goto st1128;} + {stack[top++] = 1498;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1480;goto st1183;} + {stack[top++] = 1498;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1480;goto st1194;} + {stack[top++] = 1498;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1480;goto st1211;} + {stack[top++] = 1498;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 1480;goto st1222;} + {stack[top++] = 1498;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1480;goto st1233;} + {stack[top++] = 1498;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1480;goto st1246;} + {stack[top++] = 1498;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1480;goto st1256;} + {stack[top++] = 1498;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1480;goto st1295;} + {stack[top++] = 1498;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1480;goto st1321;} + {stack[top++] = 1498;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1480;goto st1324;} + {stack[top++] = 1498;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1480;goto st1335;} + {stack[top++] = 1498;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1480;goto st1337;} + {stack[top++] = 1498;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1480;goto st1366;} + {stack[top++] = 1498;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1480;goto st1379;} + {stack[top++] = 1498;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1480;goto st1392;} + {stack[top++] = 1498;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1480;goto st1398;} + {stack[top++] = 1498;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1480;goto st1416;} + {stack[top++] = 1498;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 1480;goto st1411;} + {stack[top++] = 1498;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1480;goto st1429;} + {stack[top++] = 1498;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1480;goto st1435;} + {stack[top++] = 1498;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 1480;goto st1441;} + {stack[top++] = 1498;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1480;goto st1449;} + {stack[top++] = 1498;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1480;goto st1457;} + {stack[top++] = 1498;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1480;goto st1463;} + {stack[top++] = 1498;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { @@ -29750,7 +30359,7 @@ tr107: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -29763,114 +30372,115 @@ tr107: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1480; goto _out;} + {p++; cs = 1498; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1480; goto _out;} + p--; {p++; cs = 1498; goto _out;} } } { s->line_counter++; } - goto st1480; + goto st1498; tr114: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1480;goto st1071;} + {stack[top++] = 1498;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1480;goto st1073;} + {stack[top++] = 1498;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1480;goto st1075;} + {stack[top++] = 1498;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1480;goto st1107;} + {stack[top++] = 1498;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1480;goto st1112;} + {stack[top++] = 1498;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1480;goto st1117;} + {stack[top++] = 1498;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1480;goto st1122;} + {stack[top++] = 1498;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1480;goto st1126;} + {stack[top++] = 1498;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1480;goto st1128;} + {stack[top++] = 1498;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1480;goto st1183;} + {stack[top++] = 1498;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1480;goto st1194;} + {stack[top++] = 1498;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1480;goto st1211;} + {stack[top++] = 1498;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 1480;goto st1222;} + {stack[top++] = 1498;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1480;goto st1233;} + {stack[top++] = 1498;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1480;goto st1246;} + {stack[top++] = 1498;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1480;goto st1256;} + {stack[top++] = 1498;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1480;goto st1295;} + {stack[top++] = 1498;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1480;goto st1321;} + {stack[top++] = 1498;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1480;goto st1324;} + {stack[top++] = 1498;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1480;goto st1335;} + {stack[top++] = 1498;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1480;goto st1337;} + {stack[top++] = 1498;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1480;goto st1366;} + {stack[top++] = 1498;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1480;goto st1379;} + {stack[top++] = 1498;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1480;goto st1392;} + {stack[top++] = 1498;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1480;goto st1398;} + {stack[top++] = 1498;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1480;goto st1416;} + {stack[top++] = 1498;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 1480;goto st1411;} + {stack[top++] = 1498;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1480;goto st1429;} + {stack[top++] = 1498;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1480;goto st1435;} + {stack[top++] = 1498;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 1480;goto st1441;} + {stack[top++] = 1498;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1480;goto st1449;} + {stack[top++] = 1498;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1480;goto st1457;} + {stack[top++] = 1498;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1480;goto st1463;} + {stack[top++] = 1498;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -29883,115 +30493,116 @@ tr114: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1480; goto _out;} + {p++; cs = 1498; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1480; goto _out;} + p--; {p++; cs = 1498; goto _out;} } } { s->line_counter++; } - goto st1480; + goto st1498; tr144: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1480;goto st1071;} + {stack[top++] = 1498;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1480;goto st1073;} + {stack[top++] = 1498;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1480;goto st1075;} + {stack[top++] = 1498;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1480;goto st1107;} + {stack[top++] = 1498;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1480;goto st1112;} + {stack[top++] = 1498;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1480;goto st1117;} + {stack[top++] = 1498;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1480;goto st1122;} + {stack[top++] = 1498;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1480;goto st1126;} + {stack[top++] = 1498;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1480;goto st1128;} + {stack[top++] = 1498;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1480;goto st1183;} + {stack[top++] = 1498;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1480;goto st1194;} + {stack[top++] = 1498;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1480;goto st1211;} + {stack[top++] = 1498;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 1480;goto st1222;} + {stack[top++] = 1498;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1480;goto st1233;} + {stack[top++] = 1498;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1480;goto st1246;} + {stack[top++] = 1498;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1480;goto st1256;} + {stack[top++] = 1498;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1480;goto st1295;} + {stack[top++] = 1498;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1480;goto st1321;} + {stack[top++] = 1498;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1480;goto st1324;} + {stack[top++] = 1498;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1480;goto st1335;} + {stack[top++] = 1498;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1480;goto st1337;} + {stack[top++] = 1498;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1480;goto st1366;} + {stack[top++] = 1498;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1480;goto st1379;} + {stack[top++] = 1498;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1480;goto st1392;} + {stack[top++] = 1498;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1480;goto st1398;} + {stack[top++] = 1498;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1480;goto st1416;} + {stack[top++] = 1498;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 1480;goto st1411;} + {stack[top++] = 1498;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1480;goto st1429;} + {stack[top++] = 1498;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1480;goto st1435;} + {stack[top++] = 1498;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 1480;goto st1441;} + {stack[top++] = 1498;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1480;goto st1449;} + {stack[top++] = 1498;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1480;goto st1457;} + {stack[top++] = 1498;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1480;goto st1463;} + {stack[top++] = 1498;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->line_counter++; } - goto st1480; -tr858: + goto st1498; +tr872: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -30000,91 +30611,92 @@ tr858: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1480;goto st1071;} + {stack[top++] = 1498;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1480;goto st1073;} + {stack[top++] = 1498;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1480;goto st1075;} + {stack[top++] = 1498;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1480;goto st1107;} + {stack[top++] = 1498;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1480;goto st1112;} + {stack[top++] = 1498;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1480;goto st1117;} + {stack[top++] = 1498;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1480;goto st1122;} + {stack[top++] = 1498;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1480;goto st1126;} + {stack[top++] = 1498;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1480;goto st1128;} + {stack[top++] = 1498;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1480;goto st1183;} + {stack[top++] = 1498;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1480;goto st1194;} + {stack[top++] = 1498;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1480;goto st1211;} + {stack[top++] = 1498;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 1480;goto st1222;} + {stack[top++] = 1498;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1480;goto st1233;} + {stack[top++] = 1498;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1480;goto st1246;} + {stack[top++] = 1498;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1480;goto st1256;} + {stack[top++] = 1498;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1480;goto st1295;} + {stack[top++] = 1498;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1480;goto st1321;} + {stack[top++] = 1498;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1480;goto st1324;} + {stack[top++] = 1498;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1480;goto st1335;} + {stack[top++] = 1498;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1480;goto st1337;} + {stack[top++] = 1498;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1480;goto st1366;} + {stack[top++] = 1498;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1480;goto st1379;} + {stack[top++] = 1498;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1480;goto st1392;} + {stack[top++] = 1498;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1480;goto st1398;} + {stack[top++] = 1498;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1480;goto st1416;} + {stack[top++] = 1498;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 1480;goto st1411;} + {stack[top++] = 1498;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1480;goto st1429;} + {stack[top++] = 1498;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1480;goto st1435;} + {stack[top++] = 1498;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 1480;goto st1441;} + {stack[top++] = 1498;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1480;goto st1449;} + {stack[top++] = 1498;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1480;goto st1457;} + {stack[top++] = 1498;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1480;goto st1463;} + {stack[top++] = 1498;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { @@ -30094,7 +30706,7 @@ tr858: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -30107,108 +30719,109 @@ tr858: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1480; goto _out;} + {p++; cs = 1498; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1480; goto _out;} + p--; {p++; cs = 1498; goto _out;} } } { s->line_counter++; } - goto st1480; -tr4173: + goto st1498; +tr4208: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1480;goto st1071;} + {stack[top++] = 1498;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1480;goto st1073;} + {stack[top++] = 1498;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1480;goto st1075;} + {stack[top++] = 1498;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1480;goto st1107;} + {stack[top++] = 1498;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1480;goto st1112;} + {stack[top++] = 1498;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1480;goto st1117;} + {stack[top++] = 1498;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1480;goto st1122;} + {stack[top++] = 1498;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1480;goto st1126;} + {stack[top++] = 1498;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1480;goto st1128;} + {stack[top++] = 1498;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1480;goto st1183;} + {stack[top++] = 1498;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1480;goto st1194;} + {stack[top++] = 1498;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1480;goto st1211;} + {stack[top++] = 1498;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 1480;goto st1222;} + {stack[top++] = 1498;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1480;goto st1233;} + {stack[top++] = 1498;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1480;goto st1246;} + {stack[top++] = 1498;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1480;goto st1256;} + {stack[top++] = 1498;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1480;goto st1295;} + {stack[top++] = 1498;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1480;goto st1321;} + {stack[top++] = 1498;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1480;goto st1324;} + {stack[top++] = 1498;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1480;goto st1335;} + {stack[top++] = 1498;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1480;goto st1337;} + {stack[top++] = 1498;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1480;goto st1366;} + {stack[top++] = 1498;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1480;goto st1379;} + {stack[top++] = 1498;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1480;goto st1392;} + {stack[top++] = 1498;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1480;goto st1398;} + {stack[top++] = 1498;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1480;goto st1416;} + {stack[top++] = 1498;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 1480;goto st1411;} + {stack[top++] = 1498;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1480;goto st1429;} + {stack[top++] = 1498;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1480;goto st1435;} + {stack[top++] = 1498;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 1480;goto st1441;} + {stack[top++] = 1498;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1480;goto st1449;} + {stack[top++] = 1498;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1480;goto st1457;} + {stack[top++] = 1498;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1480;goto st1463;} + {stack[top++] = 1498;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { @@ -30218,11 +30831,11 @@ tr4173: { s->line_counter++; } - goto st1480; -st1480: + goto st1498; +st1498: if ( ++p == pe ) - goto _test_eof1480; -case 1480: + goto _test_eof1498; +case 1498: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30236,57 +30849,57 @@ case 1480: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4235; - case 32: goto tr4235; - case 36: goto st193; - case 40: goto tr4236; - case 41: goto tr4237; - case 42: goto tr4160; - case 92: goto tr4160; - case 95: goto tr4160; + case 9: goto tr4270; + case 32: goto tr4270; + case 36: goto st199; + case 40: goto tr4271; + case 41: goto tr4272; + case 42: goto tr4195; + case 92: goto tr4195; + case 95: goto tr4195; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr4238; - case 2107: goto tr4239; + case 2058: goto tr4273; + case 2107: goto tr4274; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4160; + goto tr4195; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4160; + goto tr4195; } else - goto tr4160; - goto tr900; -tr868: + goto tr4195; + goto tr914; +tr882: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st215; -tr869: + goto st221; +tr883: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st215; -tr938: + goto st221; +tr952: { s->buffer[0] = 0; s->buffer_length = 0; } - goto st215; -tr939: + goto st221; +tr953: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -30294,12 +30907,12 @@ tr939: s->buffer[0] = 0; s->buffer_length = 0; } - goto st215; -tr940: + goto st221; +tr954: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -30307,8 +30920,8 @@ tr940: s->buffer[0] = 0; s->buffer_length = 0; } - goto st215; -tr901: + goto st221; +tr915: { s->r_owner_length = s->dname_tmp_length; } @@ -30316,15 +30929,15 @@ tr901: s->buffer[0] = 0; s->buffer_length = 0; } - goto st215; -tr902: + goto st221; +tr916: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -30332,15 +30945,15 @@ tr902: s->buffer[0] = 0; s->buffer_length = 0; } - goto st215; -tr903: + goto st221; +tr917: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -30348,8 +30961,8 @@ tr903: s->buffer[0] = 0; s->buffer_length = 0; } - goto st215; -tr4235: + goto st221; +tr4270: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30357,11 +30970,11 @@ tr4235: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st215; -tr4236: + goto st221; +tr4271: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30369,18 +30982,18 @@ tr4236: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st215; -tr4237: + goto st221; +tr4272: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30388,21 +31001,21 @@ tr4237: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st215; -st215: + goto st221; +st221: if ( ++p == pe ) - goto _test_eof215; -case 215: + goto _test_eof221; +case 221: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30416,10 +31029,10 @@ case 215: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st215; - case 32: goto st215; - case 40: goto tr868; - case 41: goto tr869; + case 9: goto st221; + case 32: goto st221; + case 40: goto tr882; + case 41: goto tr883; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -30458,25 +31071,25 @@ case 215: case 122: goto tr22; case 1802: goto tr95; case 1851: goto tr96; - case 2058: goto tr870; - case 2107: goto tr871; + case 2058: goto tr884; + case 2107: goto tr885; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; goto tr0; -tr871: +tr885: { s->buffer_length = 0; } - goto st216; -tr872: + goto st222; +tr886: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st216; -tr942: + goto st222; +tr956: { s->buffer_length = 0; } @@ -30484,8 +31097,8 @@ tr942: s->buffer[0] = 0; s->buffer_length = 0; } - goto st216; -tr947: + goto st222; +tr961: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -30498,8 +31111,8 @@ tr947: { s->buffer_length = 0; } - goto st216; -tr951: + goto st222; +tr965: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -30508,8 +31121,8 @@ tr951: { s->buffer_length = 0; } - goto st216; -tr905: + goto st222; +tr919: { s->r_owner_length = s->dname_tmp_length; } @@ -30520,8 +31133,8 @@ tr905: s->buffer[0] = 0; s->buffer_length = 0; } - goto st216; -tr4239: + goto st222; +tr4274: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30532,14 +31145,14 @@ tr4239: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st216; -st216: + goto st222; +st222: if ( ++p == pe ) - goto _test_eof216; -case 216: + goto _test_eof222; +case 222: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -30560,11 +31173,11 @@ case 216: } switch( _widec ) { case 1802: goto tr98; - case 2058: goto tr873; + case 2058: goto tr887; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr872; + goto tr886; } else if ( _widec >= 1664 ) goto tr97; goto tr91; @@ -30573,91 +31186,92 @@ tr108: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 217;goto st1071;} + {stack[top++] = 223;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 217;goto st1073;} + {stack[top++] = 223;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 217;goto st1075;} + {stack[top++] = 223;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 217;goto st1107;} + {stack[top++] = 223;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 217;goto st1112;} + {stack[top++] = 223;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 217;goto st1117;} + {stack[top++] = 223;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 217;goto st1122;} + {stack[top++] = 223;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 217;goto st1126;} + {stack[top++] = 223;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 217;goto st1128;} + {stack[top++] = 223;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 217;goto st1183;} + {stack[top++] = 223;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 217;goto st1194;} + {stack[top++] = 223;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 217;goto st1211;} + {stack[top++] = 223;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 217;goto st1222;} + {stack[top++] = 223;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 217;goto st1233;} + {stack[top++] = 223;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 217;goto st1246;} + {stack[top++] = 223;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 217;goto st1256;} + {stack[top++] = 223;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 217;goto st1295;} + {stack[top++] = 223;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 217;goto st1321;} + {stack[top++] = 223;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 217;goto st1324;} + {stack[top++] = 223;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 217;goto st1335;} + {stack[top++] = 223;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 217;goto st1337;} + {stack[top++] = 223;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 217;goto st1366;} + {stack[top++] = 223;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 217;goto st1379;} + {stack[top++] = 223;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 217;goto st1392;} + {stack[top++] = 223;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 217;goto st1398;} + {stack[top++] = 223;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 217;goto st1416;} + {stack[top++] = 223;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 217;goto st1411;} + {stack[top++] = 223;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 217;goto st1429;} + {stack[top++] = 223;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 217;goto st1435;} + {stack[top++] = 223;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 217;goto st1441;} + {stack[top++] = 223;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 217;goto st1449;} + {stack[top++] = 223;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 217;goto st1457;} + {stack[top++] = 223;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 217;goto st1463;} + {stack[top++] = 223;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { @@ -30667,104 +31281,105 @@ tr108: { s->buffer_length = 0; } - goto st217; + goto st223; tr115: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 217;goto st1071;} + {stack[top++] = 223;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 217;goto st1073;} + {stack[top++] = 223;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 217;goto st1075;} + {stack[top++] = 223;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 217;goto st1107;} + {stack[top++] = 223;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 217;goto st1112;} + {stack[top++] = 223;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 217;goto st1117;} + {stack[top++] = 223;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 217;goto st1122;} + {stack[top++] = 223;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 217;goto st1126;} + {stack[top++] = 223;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 217;goto st1128;} + {stack[top++] = 223;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 217;goto st1183;} + {stack[top++] = 223;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 217;goto st1194;} + {stack[top++] = 223;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 217;goto st1211;} + {stack[top++] = 223;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 217;goto st1222;} + {stack[top++] = 223;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 217;goto st1233;} + {stack[top++] = 223;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 217;goto st1246;} + {stack[top++] = 223;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 217;goto st1256;} + {stack[top++] = 223;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 217;goto st1295;} + {stack[top++] = 223;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 217;goto st1321;} + {stack[top++] = 223;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 217;goto st1324;} + {stack[top++] = 223;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 217;goto st1335;} + {stack[top++] = 223;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 217;goto st1337;} + {stack[top++] = 223;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 217;goto st1366;} + {stack[top++] = 223;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 217;goto st1379;} + {stack[top++] = 223;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 217;goto st1392;} + {stack[top++] = 223;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 217;goto st1398;} + {stack[top++] = 223;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 217;goto st1416;} + {stack[top++] = 223;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 217;goto st1411;} + {stack[top++] = 223;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 217;goto st1429;} + {stack[top++] = 223;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 217;goto st1435;} + {stack[top++] = 223;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 217;goto st1441;} + {stack[top++] = 223;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 217;goto st1449;} + {stack[top++] = 223;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 217;goto st1457;} + {stack[top++] = 223;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 217;goto st1463;} + {stack[top++] = 223;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->buffer_length = 0; } - goto st217; -tr859: + goto st223; +tr873: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -30773,91 +31388,92 @@ tr859: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 217;goto st1071;} + {stack[top++] = 223;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 217;goto st1073;} + {stack[top++] = 223;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 217;goto st1075;} + {stack[top++] = 223;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 217;goto st1107;} + {stack[top++] = 223;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 217;goto st1112;} + {stack[top++] = 223;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 217;goto st1117;} + {stack[top++] = 223;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 217;goto st1122;} + {stack[top++] = 223;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 217;goto st1126;} + {stack[top++] = 223;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 217;goto st1128;} + {stack[top++] = 223;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 217;goto st1183;} + {stack[top++] = 223;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 217;goto st1194;} + {stack[top++] = 223;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 217;goto st1211;} + {stack[top++] = 223;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 217;goto st1222;} + {stack[top++] = 223;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 217;goto st1233;} + {stack[top++] = 223;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 217;goto st1246;} + {stack[top++] = 223;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 217;goto st1256;} + {stack[top++] = 223;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 217;goto st1295;} + {stack[top++] = 223;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 217;goto st1321;} + {stack[top++] = 223;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 217;goto st1324;} + {stack[top++] = 223;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 217;goto st1335;} + {stack[top++] = 223;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 217;goto st1337;} + {stack[top++] = 223;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 217;goto st1366;} + {stack[top++] = 223;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 217;goto st1379;} + {stack[top++] = 223;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 217;goto st1392;} + {stack[top++] = 223;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 217;goto st1398;} + {stack[top++] = 223;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 217;goto st1416;} + {stack[top++] = 223;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 217;goto st1411;} + {stack[top++] = 223;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 217;goto st1429;} + {stack[top++] = 223;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 217;goto st1435;} + {stack[top++] = 223;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 217;goto st1441;} + {stack[top++] = 223;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 217;goto st1449;} + {stack[top++] = 223;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 217;goto st1457;} + {stack[top++] = 223;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 217;goto st1463;} + {stack[top++] = 223;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { @@ -30867,11 +31483,11 @@ tr859: { s->buffer_length = 0; } - goto st217; -st217: + goto st223; +st223: if ( ++p == pe ) - goto _test_eof217; -case 217: + goto _test_eof223; +case 223: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30885,14 +31501,14 @@ case 217: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr874; - case 32: goto tr874; - case 40: goto tr875; - case 41: goto tr876; - case 1802: goto tr877; - case 1851: goto tr878; - case 2058: goto tr877; - case 2107: goto tr878; + case 9: goto tr888; + case 32: goto tr888; + case 40: goto tr889; + case 41: goto tr890; + case 1802: goto tr891; + case 1851: goto tr892; + case 2058: goto tr891; + case 2107: goto tr892; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -30903,14 +31519,14 @@ case 217: } else goto tr97; goto tr85; -tr879: +tr893: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st218; -tr874: + goto st224; +tr888: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30920,8 +31536,8 @@ tr874: s->buffer[s->buffer_length++] = (*p); } } - goto st218; -tr875: + goto st224; +tr889: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30929,7 +31545,7 @@ tr875: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -30938,8 +31554,8 @@ tr875: s->buffer[s->buffer_length++] = (*p); } } - goto st218; -tr876: + goto st224; +tr890: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30947,7 +31563,7 @@ tr876: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -30956,12 +31572,12 @@ tr876: s->buffer[s->buffer_length++] = (*p); } } - goto st218; -tr880: + goto st224; +tr894: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -30970,12 +31586,12 @@ tr880: s->buffer[s->buffer_length++] = (*p); } } - goto st218; -tr881: + goto st224; +tr895: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -30984,11 +31600,11 @@ tr881: s->buffer[s->buffer_length++] = (*p); } } - goto st218; -st218: + goto st224; +st224: if ( ++p == pe ) - goto _test_eof218; -case 218: + goto _test_eof224; +case 224: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31002,14 +31618,14 @@ case 218: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr879; - case 32: goto tr879; - case 40: goto tr880; - case 41: goto tr881; + case 9: goto tr893; + case 32: goto tr893; + case 40: goto tr894; + case 41: goto tr895; case 1802: goto tr98; - case 1851: goto tr882; + case 1851: goto tr896; case 2058: goto tr98; - case 2107: goto tr882; + case 2107: goto tr896; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -31020,7 +31636,7 @@ case 218: } else goto tr97; goto tr91; -tr860: +tr874: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -31032,91 +31648,92 @@ tr860: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1481;goto st1071;} + {stack[top++] = 1499;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1481;goto st1073;} + {stack[top++] = 1499;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1481;goto st1075;} + {stack[top++] = 1499;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1481;goto st1107;} + {stack[top++] = 1499;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1481;goto st1112;} + {stack[top++] = 1499;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1481;goto st1117;} + {stack[top++] = 1499;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1481;goto st1122;} + {stack[top++] = 1499;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1481;goto st1126;} + {stack[top++] = 1499;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1481;goto st1128;} + {stack[top++] = 1499;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1481;goto st1183;} + {stack[top++] = 1499;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1481;goto st1194;} + {stack[top++] = 1499;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1481;goto st1211;} + {stack[top++] = 1499;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 1481;goto st1222;} + {stack[top++] = 1499;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1481;goto st1233;} + {stack[top++] = 1499;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1481;goto st1246;} + {stack[top++] = 1499;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1481;goto st1256;} + {stack[top++] = 1499;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1481;goto st1295;} + {stack[top++] = 1499;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1481;goto st1321;} + {stack[top++] = 1499;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1481;goto st1324;} + {stack[top++] = 1499;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1481;goto st1335;} + {stack[top++] = 1499;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1481;goto st1337;} + {stack[top++] = 1499;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1481;goto st1366;} + {stack[top++] = 1499;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1481;goto st1379;} + {stack[top++] = 1499;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1481;goto st1392;} + {stack[top++] = 1499;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1481;goto st1398;} + {stack[top++] = 1499;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1481;goto st1416;} + {stack[top++] = 1499;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 1481;goto st1411;} + {stack[top++] = 1499;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1481;goto st1429;} + {stack[top++] = 1499;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1481;goto st1435;} + {stack[top++] = 1499;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 1481;goto st1441;} + {stack[top++] = 1499;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1481;goto st1449;} + {stack[top++] = 1499;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1481;goto st1457;} + {stack[top++] = 1499;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1481;goto st1463;} + {stack[top++] = 1499;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { @@ -31126,7 +31743,7 @@ tr860: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -31139,16 +31756,16 @@ tr860: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1481; goto _out;} + {p++; cs = 1499; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1481; goto _out;} + p--; {p++; cs = 1499; goto _out;} } } - goto st1481; -tr866: + goto st1499; +tr880: { s->line_counter++; } @@ -31156,97 +31773,98 @@ tr866: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1481;goto st1071;} + {stack[top++] = 1499;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1481;goto st1073;} + {stack[top++] = 1499;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1481;goto st1075;} + {stack[top++] = 1499;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1481;goto st1107;} + {stack[top++] = 1499;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1481;goto st1112;} + {stack[top++] = 1499;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1481;goto st1117;} + {stack[top++] = 1499;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1481;goto st1122;} + {stack[top++] = 1499;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1481;goto st1126;} + {stack[top++] = 1499;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1481;goto st1128;} + {stack[top++] = 1499;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1481;goto st1183;} + {stack[top++] = 1499;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1481;goto st1194;} + {stack[top++] = 1499;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1481;goto st1211;} + {stack[top++] = 1499;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 1481;goto st1222;} + {stack[top++] = 1499;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1481;goto st1233;} + {stack[top++] = 1499;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1481;goto st1246;} + {stack[top++] = 1499;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1481;goto st1256;} + {stack[top++] = 1499;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1481;goto st1295;} + {stack[top++] = 1499;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1481;goto st1321;} + {stack[top++] = 1499;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1481;goto st1324;} + {stack[top++] = 1499;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1481;goto st1335;} + {stack[top++] = 1499;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1481;goto st1337;} + {stack[top++] = 1499;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1481;goto st1366;} + {stack[top++] = 1499;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1481;goto st1379;} + {stack[top++] = 1499;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1481;goto st1392;} + {stack[top++] = 1499;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1481;goto st1398;} + {stack[top++] = 1499;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1481;goto st1416;} + {stack[top++] = 1499;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 1481;goto st1411;} + {stack[top++] = 1499;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1481;goto st1429;} + {stack[top++] = 1499;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1481;goto st1435;} + {stack[top++] = 1499;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 1481;goto st1441;} + {stack[top++] = 1499;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1481;goto st1449;} + {stack[top++] = 1499;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1481;goto st1457;} + {stack[top++] = 1499;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1481;goto st1463;} + {stack[top++] = 1499;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -31259,19 +31877,19 @@ tr866: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1481; goto _out;} + {p++; cs = 1499; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1481; goto _out;} + p--; {p++; cs = 1499; goto _out;} } } - goto st1481; -st1481: + goto st1499; +st1499: if ( ++p == pe ) - goto _test_eof1481; -case 1481: + goto _test_eof1499; +case 1499: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31289,23 +31907,23 @@ case 1481: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4240; - case 32: goto tr4240; - case 36: goto tr4166; - case 40: goto tr4241; - case 41: goto tr4242; - case 42: goto tr4169; + case 9: goto tr4275; + case 32: goto tr4275; + case 36: goto tr4201; + case 40: goto tr4276; + case 41: goto tr4277; + case 42: goto tr4204; case 58: goto tr75; - case 92: goto tr4170; - case 95: goto tr4169; + case 92: goto tr4205; + case 95: goto tr4204; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr4238; - case 3131: goto tr4243; + case 3082: goto tr4273; + case 3131: goto tr4278; case 3338: goto tr107; case 3387: goto tr108; - case 3594: goto tr4238; - case 3643: goto tr4244; + case 3594: goto tr4273; + case 3643: goto tr4279; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -31313,53 +31931,53 @@ case 1481: goto tr75; } else if ( _widec > 44 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4169; + goto tr4204; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 90 ) - goto tr4169; + goto tr4204; } else if ( _widec > 96 ) { if ( _widec > 122 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 97 ) - goto tr4169; + goto tr4204; } else goto tr75; } else goto tr75; - goto tr900; -tr884: + goto tr914; +tr898: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st219; -tr885: + goto st225; +tr899: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st219; -tr1014: + goto st225; +tr1028: { s->buffer[0] = 0; s->buffer_length = 0; } - goto st219; -tr1015: + goto st225; +tr1029: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -31367,12 +31985,12 @@ tr1015: s->buffer[0] = 0; s->buffer_length = 0; } - goto st219; -tr1016: + goto st225; +tr1030: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -31380,8 +31998,8 @@ tr1016: s->buffer[0] = 0; s->buffer_length = 0; } - goto st219; -tr4240: + goto st225; +tr4275: { s->buffer[0] = 0; s->buffer_length = 0; @@ -31389,15 +32007,15 @@ tr4240: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st219; -tr4241: + goto st225; +tr4276: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -31408,15 +32026,15 @@ tr4241: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st219; -tr4242: + goto st225; +tr4277: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -31427,14 +32045,14 @@ tr4242: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st219; -st219: + goto st225; +st225: if ( ++p == pe ) - goto _test_eof219; -case 219: + goto _test_eof225; +case 225: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31452,10 +32070,10 @@ case 219: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st219; - case 32: goto st219; - case 40: goto tr884; - case 41: goto tr885; + case 9: goto st225; + case 32: goto st225; + case 40: goto tr898; + case 41: goto tr899; case 58: goto tr75; case 65: goto tr124; case 67: goto tr125; @@ -31496,12 +32114,12 @@ case 219: case 122: goto tr141; case 2826: goto tr95; case 2875: goto tr96; - case 3082: goto tr870; - case 3131: goto tr886; + case 3082: goto tr884; + case 3131: goto tr900; case 3338: goto tr114; case 3387: goto tr115; - case 3594: goto tr870; - case 3643: goto tr887; + case 3594: goto tr884; + case 3643: goto tr901; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -31526,98 +32144,99 @@ tr125: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 220;goto st1071;} + {stack[top++] = 226;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 220;goto st1073;} + {stack[top++] = 226;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 220;goto st1075;} + {stack[top++] = 226;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 220;goto st1107;} + {stack[top++] = 226;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 220;goto st1112;} + {stack[top++] = 226;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 220;goto st1117;} + {stack[top++] = 226;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 220;goto st1122;} + {stack[top++] = 226;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 220;goto st1126;} + {stack[top++] = 226;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 220;goto st1128;} + {stack[top++] = 226;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 220;goto st1183;} + {stack[top++] = 226;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 220;goto st1194;} + {stack[top++] = 226;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 220;goto st1211;} + {stack[top++] = 226;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 220;goto st1222;} + {stack[top++] = 226;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 220;goto st1233;} + {stack[top++] = 226;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 220;goto st1246;} + {stack[top++] = 226;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 220;goto st1256;} + {stack[top++] = 226;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 220;goto st1295;} + {stack[top++] = 226;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 220;goto st1321;} + {stack[top++] = 226;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 220;goto st1324;} + {stack[top++] = 226;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 220;goto st1335;} + {stack[top++] = 226;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 220;goto st1337;} + {stack[top++] = 226;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 220;goto st1366;} + {stack[top++] = 226;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 220;goto st1379;} + {stack[top++] = 226;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 220;goto st1392;} + {stack[top++] = 226;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 220;goto st1398;} + {stack[top++] = 226;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 220;goto st1416;} + {stack[top++] = 226;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 220;goto st1411;} + {stack[top++] = 226;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 220;goto st1429;} + {stack[top++] = 226;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 220;goto st1435;} + {stack[top++] = 226;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 220;goto st1441;} + {stack[top++] = 226;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 220;goto st1449;} + {stack[top++] = 226;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 220;goto st1457;} + {stack[top++] = 226;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 220;goto st1463;} + {stack[top++] = 226;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st220; -st220: + goto st226; +st226: if ( ++p == pe ) - goto _test_eof220; -case 220: + goto _test_eof226; +case 226: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31650,7 +32269,7 @@ case 220: case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr126: { s->r_class = s->default_class; @@ -31662,98 +32281,99 @@ tr126: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 221;goto st1071;} + {stack[top++] = 227;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 221;goto st1073;} + {stack[top++] = 227;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 221;goto st1075;} + {stack[top++] = 227;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 221;goto st1107;} + {stack[top++] = 227;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 221;goto st1112;} + {stack[top++] = 227;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 221;goto st1117;} + {stack[top++] = 227;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 221;goto st1122;} + {stack[top++] = 227;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 221;goto st1126;} + {stack[top++] = 227;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 221;goto st1128;} + {stack[top++] = 227;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 221;goto st1183;} + {stack[top++] = 227;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 221;goto st1194;} + {stack[top++] = 227;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 221;goto st1211;} + {stack[top++] = 227;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 221;goto st1222;} + {stack[top++] = 227;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 221;goto st1233;} + {stack[top++] = 227;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 221;goto st1246;} + {stack[top++] = 227;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 221;goto st1256;} + {stack[top++] = 227;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 221;goto st1295;} + {stack[top++] = 227;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 221;goto st1321;} + {stack[top++] = 227;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 221;goto st1324;} + {stack[top++] = 227;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 221;goto st1335;} + {stack[top++] = 227;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 221;goto st1337;} + {stack[top++] = 227;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 221;goto st1366;} + {stack[top++] = 227;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 221;goto st1379;} + {stack[top++] = 227;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 221;goto st1392;} + {stack[top++] = 227;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 221;goto st1398;} + {stack[top++] = 227;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 221;goto st1416;} + {stack[top++] = 227;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 221;goto st1411;} + {stack[top++] = 227;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 221;goto st1429;} + {stack[top++] = 227;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 221;goto st1435;} + {stack[top++] = 227;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 221;goto st1441;} + {stack[top++] = 227;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 221;goto st1449;} + {stack[top++] = 227;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 221;goto st1457;} + {stack[top++] = 227;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 221;goto st1463;} + {stack[top++] = 227;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st221; -st221: + goto st227; +st227: if ( ++p == pe ) - goto _test_eof221; -case 221: + goto _test_eof227; +case 227: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31782,7 +32402,7 @@ case 221: case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr127: { s->r_class = s->default_class; @@ -31794,98 +32414,99 @@ tr127: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 222;goto st1071;} + {stack[top++] = 228;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 222;goto st1073;} + {stack[top++] = 228;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 222;goto st1075;} + {stack[top++] = 228;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 222;goto st1107;} + {stack[top++] = 228;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 222;goto st1112;} + {stack[top++] = 228;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 222;goto st1117;} + {stack[top++] = 228;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 222;goto st1122;} + {stack[top++] = 228;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 222;goto st1126;} + {stack[top++] = 228;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 222;goto st1128;} + {stack[top++] = 228;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 222;goto st1183;} + {stack[top++] = 228;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 222;goto st1194;} + {stack[top++] = 228;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 222;goto st1211;} + {stack[top++] = 228;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 222;goto st1222;} + {stack[top++] = 228;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 222;goto st1233;} + {stack[top++] = 228;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 222;goto st1246;} + {stack[top++] = 228;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 222;goto st1256;} + {stack[top++] = 228;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 222;goto st1295;} + {stack[top++] = 228;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 222;goto st1321;} + {stack[top++] = 228;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 222;goto st1324;} + {stack[top++] = 228;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 222;goto st1335;} + {stack[top++] = 228;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 222;goto st1337;} + {stack[top++] = 228;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 222;goto st1366;} + {stack[top++] = 228;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 222;goto st1379;} + {stack[top++] = 228;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 222;goto st1392;} + {stack[top++] = 228;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 222;goto st1398;} + {stack[top++] = 228;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 222;goto st1416;} + {stack[top++] = 228;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 222;goto st1411;} + {stack[top++] = 228;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 222;goto st1429;} + {stack[top++] = 228;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 222;goto st1435;} + {stack[top++] = 228;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 222;goto st1441;} + {stack[top++] = 228;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 222;goto st1449;} + {stack[top++] = 228;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 222;goto st1457;} + {stack[top++] = 228;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 222;goto st1463;} + {stack[top++] = 228;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st222; -st222: + goto st228; +st228: if ( ++p == pe ) - goto _test_eof222; -case 222: + goto _test_eof228; +case 228: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31910,7 +32531,7 @@ case 222: case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr128: { s->r_class = s->default_class; @@ -31922,98 +32543,99 @@ tr128: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 223;goto st1071;} + {stack[top++] = 229;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 223;goto st1073;} + {stack[top++] = 229;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 223;goto st1075;} + {stack[top++] = 229;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 223;goto st1107;} + {stack[top++] = 229;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 223;goto st1112;} + {stack[top++] = 229;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 223;goto st1117;} + {stack[top++] = 229;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 223;goto st1122;} + {stack[top++] = 229;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 223;goto st1126;} + {stack[top++] = 229;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 223;goto st1128;} + {stack[top++] = 229;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 223;goto st1183;} + {stack[top++] = 229;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 223;goto st1194;} + {stack[top++] = 229;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 223;goto st1211;} + {stack[top++] = 229;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 223;goto st1222;} + {stack[top++] = 229;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 223;goto st1233;} + {stack[top++] = 229;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 223;goto st1246;} + {stack[top++] = 229;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 223;goto st1256;} + {stack[top++] = 229;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 223;goto st1295;} + {stack[top++] = 229;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 223;goto st1321;} + {stack[top++] = 229;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 223;goto st1324;} + {stack[top++] = 229;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 223;goto st1335;} + {stack[top++] = 229;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 223;goto st1337;} + {stack[top++] = 229;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 223;goto st1366;} + {stack[top++] = 229;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 223;goto st1379;} + {stack[top++] = 229;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 223;goto st1392;} + {stack[top++] = 229;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 223;goto st1398;} + {stack[top++] = 229;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 223;goto st1416;} + {stack[top++] = 229;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 223;goto st1411;} + {stack[top++] = 229;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 223;goto st1429;} + {stack[top++] = 229;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 223;goto st1435;} + {stack[top++] = 229;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 223;goto st1441;} + {stack[top++] = 229;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 223;goto st1449;} + {stack[top++] = 229;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 223;goto st1457;} + {stack[top++] = 229;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 223;goto st1463;} + {stack[top++] = 229;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st223; -st223: + goto st229; +st229: if ( ++p == pe ) - goto _test_eof223; -case 223: + goto _test_eof229; +case 229: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32040,7 +32662,7 @@ case 223: case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr129: { s->r_class = s->default_class; @@ -32052,98 +32674,99 @@ tr129: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 224;goto st1071;} + {stack[top++] = 230;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 224;goto st1073;} + {stack[top++] = 230;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 224;goto st1075;} + {stack[top++] = 230;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 224;goto st1107;} + {stack[top++] = 230;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 224;goto st1112;} + {stack[top++] = 230;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 224;goto st1117;} + {stack[top++] = 230;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 224;goto st1122;} + {stack[top++] = 230;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 224;goto st1126;} + {stack[top++] = 230;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 224;goto st1128;} + {stack[top++] = 230;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 224;goto st1183;} + {stack[top++] = 230;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 224;goto st1194;} + {stack[top++] = 230;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 224;goto st1211;} + {stack[top++] = 230;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 224;goto st1222;} + {stack[top++] = 230;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 224;goto st1233;} + {stack[top++] = 230;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 224;goto st1246;} + {stack[top++] = 230;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 224;goto st1256;} + {stack[top++] = 230;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 224;goto st1295;} + {stack[top++] = 230;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 224;goto st1321;} + {stack[top++] = 230;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 224;goto st1324;} + {stack[top++] = 230;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 224;goto st1335;} + {stack[top++] = 230;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 224;goto st1337;} + {stack[top++] = 230;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 224;goto st1366;} + {stack[top++] = 230;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 224;goto st1379;} + {stack[top++] = 230;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 224;goto st1392;} + {stack[top++] = 230;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 224;goto st1398;} + {stack[top++] = 230;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 224;goto st1416;} + {stack[top++] = 230;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 224;goto st1411;} + {stack[top++] = 230;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 224;goto st1429;} + {stack[top++] = 230;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 224;goto st1435;} + {stack[top++] = 230;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 224;goto st1441;} + {stack[top++] = 230;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 224;goto st1449;} + {stack[top++] = 230;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 224;goto st1457;} + {stack[top++] = 230;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 224;goto st1463;} + {stack[top++] = 230;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st224; -st224: + goto st230; +st230: if ( ++p == pe ) - goto _test_eof224; -case 224: + goto _test_eof230; +case 230: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32161,16 +32784,16 @@ case 224: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 78: goto st185; + case 78: goto st191; case 80: goto st77; - case 110: goto st185; + case 110: goto st191; case 112: goto st77; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr130: { s->r_class = s->default_class; @@ -32182,98 +32805,99 @@ tr130: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 225;goto st1071;} + {stack[top++] = 231;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 225;goto st1073;} + {stack[top++] = 231;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 225;goto st1075;} + {stack[top++] = 231;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 225;goto st1107;} + {stack[top++] = 231;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 225;goto st1112;} + {stack[top++] = 231;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 225;goto st1117;} + {stack[top++] = 231;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 225;goto st1122;} + {stack[top++] = 231;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 225;goto st1126;} + {stack[top++] = 231;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 225;goto st1128;} + {stack[top++] = 231;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 225;goto st1183;} + {stack[top++] = 231;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 225;goto st1194;} + {stack[top++] = 231;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 225;goto st1211;} + {stack[top++] = 231;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 225;goto st1222;} + {stack[top++] = 231;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 225;goto st1233;} + {stack[top++] = 231;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 225;goto st1246;} + {stack[top++] = 231;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 225;goto st1256;} + {stack[top++] = 231;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 225;goto st1295;} + {stack[top++] = 231;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 225;goto st1321;} + {stack[top++] = 231;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 225;goto st1324;} + {stack[top++] = 231;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 225;goto st1335;} + {stack[top++] = 231;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 225;goto st1337;} + {stack[top++] = 231;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 225;goto st1366;} + {stack[top++] = 231;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 225;goto st1379;} + {stack[top++] = 231;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 225;goto st1392;} + {stack[top++] = 231;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 225;goto st1398;} + {stack[top++] = 231;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 225;goto st1416;} + {stack[top++] = 231;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 225;goto st1411;} + {stack[top++] = 231;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 225;goto st1429;} + {stack[top++] = 231;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 225;goto st1435;} + {stack[top++] = 231;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 225;goto st1441;} + {stack[top++] = 231;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 225;goto st1449;} + {stack[top++] = 231;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 225;goto st1457;} + {stack[top++] = 231;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 225;goto st1463;} + {stack[top++] = 231;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st225; -st225: + goto st231; +st231: if ( ++p == pe ) - goto _test_eof225; -case 225: + goto _test_eof231; +case 231: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32300,7 +32924,7 @@ case 225: case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr131: { s->r_class = s->default_class; @@ -32312,98 +32936,99 @@ tr131: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 226;goto st1071;} + {stack[top++] = 232;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 226;goto st1073;} + {stack[top++] = 232;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 226;goto st1075;} + {stack[top++] = 232;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 226;goto st1107;} + {stack[top++] = 232;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 226;goto st1112;} + {stack[top++] = 232;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 226;goto st1117;} + {stack[top++] = 232;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 226;goto st1122;} + {stack[top++] = 232;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 226;goto st1126;} + {stack[top++] = 232;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 226;goto st1128;} + {stack[top++] = 232;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 226;goto st1183;} + {stack[top++] = 232;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 226;goto st1194;} + {stack[top++] = 232;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 226;goto st1211;} + {stack[top++] = 232;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 226;goto st1222;} + {stack[top++] = 232;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 226;goto st1233;} + {stack[top++] = 232;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 226;goto st1246;} + {stack[top++] = 232;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 226;goto st1256;} + {stack[top++] = 232;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 226;goto st1295;} + {stack[top++] = 232;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 226;goto st1321;} + {stack[top++] = 232;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 226;goto st1324;} + {stack[top++] = 232;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 226;goto st1335;} + {stack[top++] = 232;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 226;goto st1337;} + {stack[top++] = 232;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 226;goto st1366;} + {stack[top++] = 232;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 226;goto st1379;} + {stack[top++] = 232;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 226;goto st1392;} + {stack[top++] = 232;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 226;goto st1398;} + {stack[top++] = 232;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 226;goto st1416;} + {stack[top++] = 232;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 226;goto st1411;} + {stack[top++] = 232;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 226;goto st1429;} + {stack[top++] = 232;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 226;goto st1435;} + {stack[top++] = 232;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 226;goto st1441;} + {stack[top++] = 232;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 226;goto st1449;} + {stack[top++] = 232;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 226;goto st1457;} + {stack[top++] = 232;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 226;goto st1463;} + {stack[top++] = 232;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st226; -st226: + goto st232; +st232: if ( ++p == pe ) - goto _test_eof226; -case 226: + goto _test_eof232; +case 232: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32432,7 +33057,7 @@ case 226: case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr132: { s->r_class = s->default_class; @@ -32444,98 +33069,99 @@ tr132: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 227;goto st1071;} + {stack[top++] = 233;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 227;goto st1073;} + {stack[top++] = 233;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 227;goto st1075;} + {stack[top++] = 233;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 227;goto st1107;} + {stack[top++] = 233;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 227;goto st1112;} + {stack[top++] = 233;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 227;goto st1117;} + {stack[top++] = 233;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 227;goto st1122;} + {stack[top++] = 233;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 227;goto st1126;} + {stack[top++] = 233;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 227;goto st1128;} + {stack[top++] = 233;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 227;goto st1183;} + {stack[top++] = 233;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 227;goto st1194;} + {stack[top++] = 233;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 227;goto st1211;} + {stack[top++] = 233;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 227;goto st1222;} + {stack[top++] = 233;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 227;goto st1233;} + {stack[top++] = 233;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 227;goto st1246;} + {stack[top++] = 233;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 227;goto st1256;} + {stack[top++] = 233;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 227;goto st1295;} + {stack[top++] = 233;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 227;goto st1321;} + {stack[top++] = 233;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 227;goto st1324;} + {stack[top++] = 233;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 227;goto st1335;} + {stack[top++] = 233;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 227;goto st1337;} + {stack[top++] = 233;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 227;goto st1366;} + {stack[top++] = 233;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 227;goto st1379;} + {stack[top++] = 233;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 227;goto st1392;} + {stack[top++] = 233;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 227;goto st1398;} + {stack[top++] = 233;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 227;goto st1416;} + {stack[top++] = 233;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 227;goto st1411;} + {stack[top++] = 233;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 227;goto st1429;} + {stack[top++] = 233;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 227;goto st1435;} + {stack[top++] = 233;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 227;goto st1441;} + {stack[top++] = 233;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 227;goto st1449;} + {stack[top++] = 233;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 227;goto st1457;} + {stack[top++] = 233;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 227;goto st1463;} + {stack[top++] = 233;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st227; -st227: + goto st233; +st233: if ( ++p == pe ) - goto _test_eof227; -case 227: + goto _test_eof233; +case 233: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32562,7 +33188,7 @@ case 227: case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr133: { s->r_class = s->default_class; @@ -32574,98 +33200,99 @@ tr133: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 228;goto st1071;} + {stack[top++] = 234;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 228;goto st1073;} + {stack[top++] = 234;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 228;goto st1075;} + {stack[top++] = 234;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 228;goto st1107;} + {stack[top++] = 234;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 228;goto st1112;} + {stack[top++] = 234;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 228;goto st1117;} + {stack[top++] = 234;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 228;goto st1122;} + {stack[top++] = 234;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 228;goto st1126;} + {stack[top++] = 234;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 228;goto st1128;} + {stack[top++] = 234;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 228;goto st1183;} + {stack[top++] = 234;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 228;goto st1194;} + {stack[top++] = 234;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 228;goto st1211;} + {stack[top++] = 234;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 228;goto st1222;} + {stack[top++] = 234;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 228;goto st1233;} + {stack[top++] = 234;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 228;goto st1246;} + {stack[top++] = 234;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 228;goto st1256;} + {stack[top++] = 234;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 228;goto st1295;} + {stack[top++] = 234;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 228;goto st1321;} + {stack[top++] = 234;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 228;goto st1324;} + {stack[top++] = 234;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 228;goto st1335;} + {stack[top++] = 234;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 228;goto st1337;} + {stack[top++] = 234;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 228;goto st1366;} + {stack[top++] = 234;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 228;goto st1379;} + {stack[top++] = 234;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 228;goto st1392;} + {stack[top++] = 234;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 228;goto st1398;} + {stack[top++] = 234;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 228;goto st1416;} + {stack[top++] = 234;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 228;goto st1411;} + {stack[top++] = 234;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 228;goto st1429;} + {stack[top++] = 234;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 228;goto st1435;} + {stack[top++] = 234;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 228;goto st1441;} + {stack[top++] = 234;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 228;goto st1449;} + {stack[top++] = 234;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 228;goto st1457;} + {stack[top++] = 234;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 228;goto st1463;} + {stack[top++] = 234;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st228; -st228: + goto st234; +st234: if ( ++p == pe ) - goto _test_eof228; -case 228: + goto _test_eof234; +case 234: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32694,7 +33321,7 @@ case 228: case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr134: { s->r_class = s->default_class; @@ -32706,98 +33333,99 @@ tr134: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 229;goto st1071;} + {stack[top++] = 235;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 229;goto st1073;} + {stack[top++] = 235;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 229;goto st1075;} + {stack[top++] = 235;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 229;goto st1107;} + {stack[top++] = 235;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 229;goto st1112;} + {stack[top++] = 235;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 229;goto st1117;} + {stack[top++] = 235;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 229;goto st1122;} + {stack[top++] = 235;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 229;goto st1126;} + {stack[top++] = 235;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 229;goto st1128;} + {stack[top++] = 235;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 229;goto st1183;} + {stack[top++] = 235;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 229;goto st1194;} + {stack[top++] = 235;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 229;goto st1211;} + {stack[top++] = 235;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 229;goto st1222;} + {stack[top++] = 235;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 229;goto st1233;} + {stack[top++] = 235;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 229;goto st1246;} + {stack[top++] = 235;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 229;goto st1256;} + {stack[top++] = 235;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 229;goto st1295;} + {stack[top++] = 235;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 229;goto st1321;} + {stack[top++] = 235;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 229;goto st1324;} + {stack[top++] = 235;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 229;goto st1335;} + {stack[top++] = 235;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 229;goto st1337;} + {stack[top++] = 235;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 229;goto st1366;} + {stack[top++] = 235;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 229;goto st1379;} + {stack[top++] = 235;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 229;goto st1392;} + {stack[top++] = 235;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 229;goto st1398;} + {stack[top++] = 235;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 229;goto st1416;} + {stack[top++] = 235;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 229;goto st1411;} + {stack[top++] = 235;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 229;goto st1429;} + {stack[top++] = 235;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 229;goto st1435;} + {stack[top++] = 235;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 229;goto st1441;} + {stack[top++] = 235;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 229;goto st1449;} + {stack[top++] = 235;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 229;goto st1457;} + {stack[top++] = 235;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 229;goto st1463;} + {stack[top++] = 235;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st229; -st229: + goto st235; +st235: if ( ++p == pe ) - goto _test_eof229; -case 229: + goto _test_eof235; +case 235: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32822,7 +33450,7 @@ case 229: case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr135: { s->r_class = s->default_class; @@ -32834,98 +33462,99 @@ tr135: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 230;goto st1071;} + {stack[top++] = 236;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 230;goto st1073;} + {stack[top++] = 236;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 230;goto st1075;} + {stack[top++] = 236;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 230;goto st1107;} + {stack[top++] = 236;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 230;goto st1112;} + {stack[top++] = 236;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 230;goto st1117;} + {stack[top++] = 236;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 230;goto st1122;} + {stack[top++] = 236;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 230;goto st1126;} + {stack[top++] = 236;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 230;goto st1128;} + {stack[top++] = 236;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 230;goto st1183;} + {stack[top++] = 236;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 230;goto st1194;} + {stack[top++] = 236;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 230;goto st1211;} + {stack[top++] = 236;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 230;goto st1222;} + {stack[top++] = 236;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 230;goto st1233;} + {stack[top++] = 236;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 230;goto st1246;} + {stack[top++] = 236;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 230;goto st1256;} + {stack[top++] = 236;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 230;goto st1295;} + {stack[top++] = 236;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 230;goto st1321;} + {stack[top++] = 236;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 230;goto st1324;} + {stack[top++] = 236;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 230;goto st1335;} + {stack[top++] = 236;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 230;goto st1337;} + {stack[top++] = 236;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 230;goto st1366;} + {stack[top++] = 236;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 230;goto st1379;} + {stack[top++] = 236;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 230;goto st1392;} + {stack[top++] = 236;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 230;goto st1398;} + {stack[top++] = 236;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 230;goto st1416;} + {stack[top++] = 236;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 230;goto st1411;} + {stack[top++] = 236;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 230;goto st1429;} + {stack[top++] = 236;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 230;goto st1435;} + {stack[top++] = 236;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 230;goto st1441;} + {stack[top++] = 236;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 230;goto st1449;} + {stack[top++] = 236;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 230;goto st1457;} + {stack[top++] = 236;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 230;goto st1463;} + {stack[top++] = 236;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st230; -st230: + goto st236; +st236: if ( ++p == pe ) - goto _test_eof230; -case 230: + goto _test_eof236; +case 236: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32950,7 +33579,7 @@ case 230: case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr136: { s->r_class = s->default_class; @@ -32962,98 +33591,99 @@ tr136: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 231;goto st1071;} + {stack[top++] = 237;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 231;goto st1073;} + {stack[top++] = 237;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 231;goto st1075;} + {stack[top++] = 237;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 231;goto st1107;} + {stack[top++] = 237;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 231;goto st1112;} + {stack[top++] = 237;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 231;goto st1117;} + {stack[top++] = 237;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 231;goto st1122;} + {stack[top++] = 237;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 231;goto st1126;} + {stack[top++] = 237;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 231;goto st1128;} + {stack[top++] = 237;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 231;goto st1183;} + {stack[top++] = 237;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 231;goto st1194;} + {stack[top++] = 237;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 231;goto st1211;} + {stack[top++] = 237;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 231;goto st1222;} + {stack[top++] = 237;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 231;goto st1233;} + {stack[top++] = 237;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 231;goto st1246;} + {stack[top++] = 237;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 231;goto st1256;} + {stack[top++] = 237;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 231;goto st1295;} + {stack[top++] = 237;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 231;goto st1321;} + {stack[top++] = 237;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 231;goto st1324;} + {stack[top++] = 237;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 231;goto st1335;} + {stack[top++] = 237;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 231;goto st1337;} + {stack[top++] = 237;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 231;goto st1366;} + {stack[top++] = 237;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 231;goto st1379;} + {stack[top++] = 237;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 231;goto st1392;} + {stack[top++] = 237;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 231;goto st1398;} + {stack[top++] = 237;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 231;goto st1416;} + {stack[top++] = 237;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 231;goto st1411;} + {stack[top++] = 237;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 231;goto st1429;} + {stack[top++] = 237;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 231;goto st1435;} + {stack[top++] = 237;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 231;goto st1441;} + {stack[top++] = 237;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 231;goto st1449;} + {stack[top++] = 237;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 231;goto st1457;} + {stack[top++] = 237;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 231;goto st1463;} + {stack[top++] = 237;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st231; -st231: + goto st237; +st237: if ( ++p == pe ) - goto _test_eof231; -case 231: + goto _test_eof237; +case 237: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33071,18 +33701,20 @@ case 231: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 80: goto st132; - case 82: goto st133; - case 84: goto st137; - case 112: goto st132; - case 114: goto st133; - case 116: goto st137; + case 69: goto st132; + case 80: goto st138; + case 82: goto st139; + case 84: goto st143; + case 101: goto st132; + case 112: goto st138; + case 114: goto st139; + case 116: goto st143; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr137: { s->r_class = s->default_class; @@ -33094,98 +33726,99 @@ tr137: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 232;goto st1071;} + {stack[top++] = 238;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 232;goto st1073;} + {stack[top++] = 238;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 232;goto st1075;} + {stack[top++] = 238;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 232;goto st1107;} + {stack[top++] = 238;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 232;goto st1112;} + {stack[top++] = 238;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 232;goto st1117;} + {stack[top++] = 238;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 232;goto st1122;} + {stack[top++] = 238;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 232;goto st1126;} + {stack[top++] = 238;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 232;goto st1128;} + {stack[top++] = 238;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 232;goto st1183;} + {stack[top++] = 238;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 232;goto st1194;} + {stack[top++] = 238;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 232;goto st1211;} + {stack[top++] = 238;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 232;goto st1222;} + {stack[top++] = 238;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 232;goto st1233;} + {stack[top++] = 238;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 232;goto st1246;} + {stack[top++] = 238;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 232;goto st1256;} + {stack[top++] = 238;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 232;goto st1295;} + {stack[top++] = 238;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 232;goto st1321;} + {stack[top++] = 238;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 232;goto st1324;} + {stack[top++] = 238;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 232;goto st1335;} + {stack[top++] = 238;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 232;goto st1337;} + {stack[top++] = 238;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 232;goto st1366;} + {stack[top++] = 238;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 232;goto st1379;} + {stack[top++] = 238;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 232;goto st1392;} + {stack[top++] = 238;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 232;goto st1398;} + {stack[top++] = 238;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 232;goto st1416;} + {stack[top++] = 238;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 232;goto st1411;} + {stack[top++] = 238;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 232;goto st1429;} + {stack[top++] = 238;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 232;goto st1435;} + {stack[top++] = 238;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 232;goto st1441;} + {stack[top++] = 238;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 232;goto st1449;} + {stack[top++] = 238;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 232;goto st1457;} + {stack[top++] = 238;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 232;goto st1463;} + {stack[top++] = 238;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st232; -st232: + goto st238; +st238: if ( ++p == pe ) - goto _test_eof232; -case 232: + goto _test_eof238; +case 238: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33203,24 +33836,24 @@ case 232: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 77: goto st139; - case 79: goto st144; - case 80: goto st146; - case 82: goto st148; - case 83: goto st150; - case 86: goto st154; - case 109: goto st139; - case 111: goto st144; - case 112: goto st146; - case 114: goto st148; - case 115: goto st150; - case 118: goto st154; + case 77: goto st145; + case 79: goto st150; + case 80: goto st152; + case 82: goto st154; + case 83: goto st156; + case 86: goto st160; + case 109: goto st145; + case 111: goto st150; + case 112: goto st152; + case 114: goto st154; + case 115: goto st156; + case 118: goto st160; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr138: { s->r_class = s->default_class; @@ -33232,98 +33865,99 @@ tr138: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 233;goto st1071;} + {stack[top++] = 239;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 233;goto st1073;} + {stack[top++] = 239;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 233;goto st1075;} + {stack[top++] = 239;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 233;goto st1107;} + {stack[top++] = 239;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 233;goto st1112;} + {stack[top++] = 239;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 233;goto st1117;} + {stack[top++] = 239;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 233;goto st1122;} + {stack[top++] = 239;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 233;goto st1126;} + {stack[top++] = 239;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 233;goto st1128;} + {stack[top++] = 239;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 233;goto st1183;} + {stack[top++] = 239;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 233;goto st1194;} + {stack[top++] = 239;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 233;goto st1211;} + {stack[top++] = 239;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 233;goto st1222;} + {stack[top++] = 239;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 233;goto st1233;} + {stack[top++] = 239;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 233;goto st1246;} + {stack[top++] = 239;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 233;goto st1256;} + {stack[top++] = 239;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 233;goto st1295;} + {stack[top++] = 239;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 233;goto st1321;} + {stack[top++] = 239;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 233;goto st1324;} + {stack[top++] = 239;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 233;goto st1335;} + {stack[top++] = 239;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 233;goto st1337;} + {stack[top++] = 239;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 233;goto st1366;} + {stack[top++] = 239;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 233;goto st1379;} + {stack[top++] = 239;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 233;goto st1392;} + {stack[top++] = 239;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 233;goto st1398;} + {stack[top++] = 239;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 233;goto st1416;} + {stack[top++] = 239;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 233;goto st1411;} + {stack[top++] = 239;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 233;goto st1429;} + {stack[top++] = 239;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 233;goto st1435;} + {stack[top++] = 239;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 233;goto st1441;} + {stack[top++] = 239;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 233;goto st1449;} + {stack[top++] = 239;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 233;goto st1457;} + {stack[top++] = 239;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 233;goto st1463;} + {stack[top++] = 239;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st233; -st233: + goto st239; +st239: if ( ++p == pe ) - goto _test_eof233; -case 233: + goto _test_eof239; +case 239: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33341,18 +33975,18 @@ case 233: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 76: goto st158; - case 88: goto st161; - case 89: goto st163; - case 108: goto st158; - case 120: goto st161; - case 121: goto st163; + case 76: goto st164; + case 88: goto st167; + case 89: goto st169; + case 108: goto st164; + case 120: goto st167; + case 121: goto st169; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr139: { s->r_class = s->default_class; @@ -33364,98 +33998,99 @@ tr139: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 234;goto st1071;} + {stack[top++] = 240;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 234;goto st1073;} + {stack[top++] = 240;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 234;goto st1075;} + {stack[top++] = 240;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 234;goto st1107;} + {stack[top++] = 240;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 234;goto st1112;} + {stack[top++] = 240;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 234;goto st1117;} + {stack[top++] = 240;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 234;goto st1122;} + {stack[top++] = 240;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 234;goto st1126;} + {stack[top++] = 240;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 234;goto st1128;} + {stack[top++] = 240;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 234;goto st1183;} + {stack[top++] = 240;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 234;goto st1194;} + {stack[top++] = 240;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 234;goto st1211;} + {stack[top++] = 240;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 234;goto st1222;} + {stack[top++] = 240;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 234;goto st1233;} + {stack[top++] = 240;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 234;goto st1246;} + {stack[top++] = 240;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 234;goto st1256;} + {stack[top++] = 240;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 234;goto st1295;} + {stack[top++] = 240;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 234;goto st1321;} + {stack[top++] = 240;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 234;goto st1324;} + {stack[top++] = 240;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 234;goto st1335;} + {stack[top++] = 240;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 234;goto st1337;} + {stack[top++] = 240;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 234;goto st1366;} + {stack[top++] = 240;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 234;goto st1379;} + {stack[top++] = 240;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 234;goto st1392;} + {stack[top++] = 240;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 234;goto st1398;} + {stack[top++] = 240;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 234;goto st1416;} + {stack[top++] = 240;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 234;goto st1411;} + {stack[top++] = 240;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 234;goto st1429;} + {stack[top++] = 240;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 234;goto st1435;} + {stack[top++] = 240;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 234;goto st1441;} + {stack[top++] = 240;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 234;goto st1449;} + {stack[top++] = 240;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 234;goto st1457;} + {stack[top++] = 240;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 234;goto st1463;} + {stack[top++] = 240;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st234; -st234: + goto st240; +st240: if ( ++p == pe ) - goto _test_eof234; -case 234: + goto _test_eof240; +case 240: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33473,14 +34108,14 @@ case 234: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 82: goto st168; - case 114: goto st168; + case 82: goto st174; + case 114: goto st174; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr140: { s->r_class = s->default_class; @@ -33492,98 +34127,99 @@ tr140: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 235;goto st1071;} + {stack[top++] = 241;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 235;goto st1073;} + {stack[top++] = 241;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 235;goto st1075;} + {stack[top++] = 241;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 235;goto st1107;} + {stack[top++] = 241;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 235;goto st1112;} + {stack[top++] = 241;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 235;goto st1117;} + {stack[top++] = 241;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 235;goto st1122;} + {stack[top++] = 241;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 235;goto st1126;} + {stack[top++] = 241;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 235;goto st1128;} + {stack[top++] = 241;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 235;goto st1183;} + {stack[top++] = 241;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 235;goto st1194;} + {stack[top++] = 241;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 235;goto st1211;} + {stack[top++] = 241;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 235;goto st1222;} + {stack[top++] = 241;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 235;goto st1233;} + {stack[top++] = 241;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 235;goto st1246;} + {stack[top++] = 241;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 235;goto st1256;} + {stack[top++] = 241;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 235;goto st1295;} + {stack[top++] = 241;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 235;goto st1321;} + {stack[top++] = 241;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 235;goto st1324;} + {stack[top++] = 241;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 235;goto st1335;} + {stack[top++] = 241;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 235;goto st1337;} + {stack[top++] = 241;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 235;goto st1366;} + {stack[top++] = 241;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 235;goto st1379;} + {stack[top++] = 241;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 235;goto st1392;} + {stack[top++] = 241;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 235;goto st1398;} + {stack[top++] = 241;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 235;goto st1416;} + {stack[top++] = 241;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 235;goto st1411;} + {stack[top++] = 241;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 235;goto st1429;} + {stack[top++] = 241;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 235;goto st1435;} + {stack[top++] = 241;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 235;goto st1441;} + {stack[top++] = 241;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 235;goto st1449;} + {stack[top++] = 241;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 235;goto st1457;} + {stack[top++] = 241;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 235;goto st1463;} + {stack[top++] = 241;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st235; -st235: + goto st241; +st241: if ( ++p == pe ) - goto _test_eof235; -case 235: + goto _test_eof241; +case 241: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33601,14 +34237,14 @@ case 235: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 65: goto st171; - case 97: goto st171; + case 65: goto st177; + case 97: goto st177; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; + goto tr866; tr141: { s->r_class = s->default_class; @@ -33620,98 +34256,99 @@ tr141: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 236;goto st1071;} + {stack[top++] = 242;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 236;goto st1073;} + {stack[top++] = 242;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 236;goto st1075;} + {stack[top++] = 242;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 236;goto st1107;} + {stack[top++] = 242;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 236;goto st1112;} + {stack[top++] = 242;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 236;goto st1117;} + {stack[top++] = 242;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 236;goto st1122;} + {stack[top++] = 242;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 236;goto st1126;} + {stack[top++] = 242;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 236;goto st1128;} + {stack[top++] = 242;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 236;goto st1183;} + {stack[top++] = 242;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 236;goto st1194;} + {stack[top++] = 242;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 236;goto st1211;} + {stack[top++] = 242;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 236;goto st1222;} + {stack[top++] = 242;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 236;goto st1233;} + {stack[top++] = 242;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 236;goto st1246;} + {stack[top++] = 242;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 236;goto st1256;} + {stack[top++] = 242;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 236;goto st1295;} + {stack[top++] = 242;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 236;goto st1321;} + {stack[top++] = 242;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 236;goto st1324;} + {stack[top++] = 242;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 236;goto st1335;} + {stack[top++] = 242;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 236;goto st1337;} + {stack[top++] = 242;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 236;goto st1366;} + {stack[top++] = 242;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 236;goto st1379;} + {stack[top++] = 242;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 236;goto st1392;} + {stack[top++] = 242;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 236;goto st1398;} + {stack[top++] = 242;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 236;goto st1416;} + {stack[top++] = 242;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 236;goto st1411;} + {stack[top++] = 242;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 236;goto st1429;} + {stack[top++] = 242;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 236;goto st1435;} + {stack[top++] = 242;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 236;goto st1441;} + {stack[top++] = 242;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 236;goto st1449;} + {stack[top++] = 242;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 236;goto st1457;} + {stack[top++] = 242;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 236;goto st1463;} + {stack[top++] = 242;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st236; -st236: + goto st242; +st242: if ( ++p == pe ) - goto _test_eof236; -case 236: + goto _test_eof242; +case 242: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33729,27 +34366,27 @@ case 236: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 79: goto st177; - case 111: goto st177; + case 79: goto st183; + case 111: goto st183; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr852; -tr886: + goto tr866; +tr900: { s->buffer_length = 0; } - goto st237; -tr888: + goto st243; +tr902: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st237; -tr1017: + goto st243; +tr1031: { s->buffer_length = 0; } @@ -33757,8 +34394,8 @@ tr1017: s->buffer[0] = 0; s->buffer_length = 0; } - goto st237; -tr955: + goto st243; +tr969: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -33771,8 +34408,8 @@ tr955: { s->buffer_length = 0; } - goto st237; -tr959: + goto st243; +tr973: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -33781,8 +34418,8 @@ tr959: { s->buffer_length = 0; } - goto st237; -tr924: + goto st243; +tr938: { s->r_owner_length = s->dname_tmp_length; } @@ -33797,8 +34434,8 @@ tr924: s->buffer[0] = 0; s->buffer_length = 0; } - goto st237; -tr4243: + goto st243; +tr4278: { s->buffer_length = 0; } @@ -33809,14 +34446,14 @@ tr4243: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st237; -st237: + goto st243; +st243: if ( ++p == pe ) - goto _test_eof237; -case 237: + goto _test_eof243; +case 243: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -33837,11 +34474,11 @@ case 237: } switch( _widec ) { case 1802: goto tr98; - case 2058: goto tr889; + case 2058: goto tr903; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr888; + goto tr902; } else if ( _widec >= 1664 ) goto tr97; goto tr85; @@ -33849,8 +34486,8 @@ tr142: { s->line_counter++; } - goto st1482; -tr991: + goto st1500; +tr1005: { s->buffer[s->buffer_length++] = 0; @@ -33860,15 +34497,15 @@ tr991: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1482; goto _out;} + {p++; cs = 1500; goto _out;} } } } { s->line_counter++; } - goto st1482; -tr889: + goto st1500; +tr903: { s->buffer[s->buffer_length++] = 0; @@ -33878,7 +34515,7 @@ tr889: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1482; goto _out;} + {p++; cs = 1500; goto _out;} } } } @@ -33888,7 +34525,7 @@ tr889: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -33901,23 +34538,23 @@ tr889: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1482; goto _out;} + {p++; cs = 1500; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1482; goto _out;} + p--; {p++; cs = 1500; goto _out;} } } - goto st1482; -tr930: + goto st1500; +tr944: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -33930,16 +34567,16 @@ tr930: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1482; goto _out;} + {p++; cs = 1500; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1482; goto _out;} + p--; {p++; cs = 1500; goto _out;} } } - goto st1482; -tr923: + goto st1500; +tr937: { s->r_owner_length = s->dname_tmp_length; } @@ -33957,7 +34594,7 @@ tr923: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -33970,34 +34607,34 @@ tr923: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1482; goto _out;} + {p++; cs = 1500; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1482; goto _out;} + p--; {p++; cs = 1500; goto _out;} } } - goto st1482; -tr4171: + goto st1500; +tr4206: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1482; -st1482: + goto st1500; +st1500: if ( ++p == pe ) - goto _test_eof1482; -case 1482: + goto _test_eof1500; +case 1500: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34015,59 +34652,59 @@ case 1482: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4165; - case 32: goto tr4165; - case 36: goto tr4166; - case 40: goto tr4167; - case 41: goto tr4168; - case 42: goto tr4169; + case 9: goto tr4200; + case 32: goto tr4200; + case 36: goto tr4201; + case 40: goto tr4202; + case 41: goto tr4203; + case 42: goto tr4204; case 58: goto tr75; - case 65: goto tr4247; - case 67: goto tr4248; - case 68: goto tr4249; - case 69: goto tr4250; - case 72: goto tr4251; - case 73: goto tr4252; - case 75: goto tr4253; - case 76: goto tr4254; - case 77: goto tr4255; - case 78: goto tr4256; - case 79: goto tr4257; - case 80: goto tr4258; - case 82: goto tr4259; - case 83: goto tr4260; - case 84: goto tr4261; - case 85: goto tr4262; - case 87: goto tr4263; - case 90: goto tr4264; - case 92: goto tr4170; - case 95: goto tr4169; - case 97: goto tr4247; - case 99: goto tr4248; - case 100: goto tr4249; - case 101: goto tr4250; - case 104: goto tr4251; - case 105: goto tr4252; - case 107: goto tr4253; - case 108: goto tr4254; - case 109: goto tr4255; - case 110: goto tr4256; - case 111: goto tr4257; - case 112: goto tr4258; - case 114: goto tr4259; - case 115: goto tr4260; - case 116: goto tr4261; - case 117: goto tr4262; - case 119: goto tr4263; - case 122: goto tr4264; - case 2826: goto tr4161; - case 2875: goto tr4162; - case 3082: goto tr4171; - case 3131: goto tr4172; - case 3338: goto tr4173; - case 3387: goto tr4174; - case 3594: goto tr4175; - case 3643: goto tr4176; + case 65: goto tr4282; + case 67: goto tr4283; + case 68: goto tr4284; + case 69: goto tr4285; + case 72: goto tr4286; + case 73: goto tr4287; + case 75: goto tr4288; + case 76: goto tr4289; + case 77: goto tr4290; + case 78: goto tr4291; + case 79: goto tr4292; + case 80: goto tr4293; + case 82: goto tr4294; + case 83: goto tr4295; + case 84: goto tr4296; + case 85: goto tr4297; + case 87: goto tr4298; + case 90: goto tr4299; + case 92: goto tr4205; + case 95: goto tr4204; + case 97: goto tr4282; + case 99: goto tr4283; + case 100: goto tr4284; + case 101: goto tr4285; + case 104: goto tr4286; + case 105: goto tr4287; + case 107: goto tr4288; + case 108: goto tr4289; + case 109: goto tr4290; + case 110: goto tr4291; + case 111: goto tr4292; + case 112: goto tr4293; + case 114: goto tr4294; + case 115: goto tr4295; + case 116: goto tr4296; + case 117: goto tr4297; + case 119: goto tr4298; + case 122: goto tr4299; + case 2826: goto tr4196; + case 2875: goto tr4197; + case 3082: goto tr4206; + case 3131: goto tr4207; + case 3338: goto tr4208; + case 3387: goto tr4209; + case 3594: goto tr4210; + case 3643: goto tr4211; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -34076,123 +34713,124 @@ case 1482: } else if ( _widec > 44 ) { if ( _widec > 47 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4246; + goto tr4281; } else if ( _widec >= 45 ) - goto tr4169; + goto tr4204; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 89 ) - goto tr4169; + goto tr4204; } else if ( _widec > 96 ) { if ( _widec > 121 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 98 ) - goto tr4169; + goto tr4204; } else goto tr75; } else goto tr75; - goto tr4245; -tr4166: + goto tr4280; +tr4201: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 238;goto st1071;} + {stack[top++] = 244;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 238;goto st1073;} + {stack[top++] = 244;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 238;goto st1075;} + {stack[top++] = 244;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 238;goto st1107;} + {stack[top++] = 244;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 238;goto st1112;} + {stack[top++] = 244;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 238;goto st1117;} + {stack[top++] = 244;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 238;goto st1122;} + {stack[top++] = 244;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 238;goto st1126;} + {stack[top++] = 244;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 238;goto st1128;} + {stack[top++] = 244;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 238;goto st1183;} + {stack[top++] = 244;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 238;goto st1194;} + {stack[top++] = 244;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 238;goto st1211;} + {stack[top++] = 244;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 238;goto st1222;} + {stack[top++] = 244;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 238;goto st1233;} + {stack[top++] = 244;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 238;goto st1246;} + {stack[top++] = 244;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 238;goto st1256;} + {stack[top++] = 244;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 238;goto st1295;} + {stack[top++] = 244;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 238;goto st1321;} + {stack[top++] = 244;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 238;goto st1324;} + {stack[top++] = 244;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 238;goto st1335;} + {stack[top++] = 244;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 238;goto st1337;} + {stack[top++] = 244;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 238;goto st1366;} + {stack[top++] = 244;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 238;goto st1379;} + {stack[top++] = 244;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 238;goto st1392;} + {stack[top++] = 244;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 238;goto st1398;} + {stack[top++] = 244;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 238;goto st1416;} + {stack[top++] = 244;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 238;goto st1411;} + {stack[top++] = 244;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 238;goto st1429;} + {stack[top++] = 244;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 238;goto st1435;} + {stack[top++] = 244;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 238;goto st1441;} + {stack[top++] = 244;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 238;goto st1449;} + {stack[top++] = 244;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 238;goto st1457;} + {stack[top++] = 244;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 238;goto st1463;} + {stack[top++] = 244;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st238; -st238: + goto st244; +st244: if ( ++p == pe ) - goto _test_eof238; -case 238: + goto _test_eof244; +case 244: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34210,221 +34848,222 @@ case 238: case 32: goto tr86; case 40: goto tr87; case 41: goto tr88; - case 73: goto tr785; - case 79: goto tr786; - case 84: goto tr787; - case 105: goto tr785; - case 111: goto tr786; - case 116: goto tr787; + case 73: goto tr799; + case 79: goto tr800; + case 84: goto tr801; + case 105: goto tr799; + case 111: goto tr800; + case 116: goto tr801; case 1802: goto tr89; case 1851: goto tr90; case 2058: goto tr89; case 2107: goto tr90; } - goto tr890; -tr786: + goto tr904; +tr800: { ERR(ZS_OK); } - goto st239; -st239: + goto st245; +st245: if ( ++p == pe ) - goto _test_eof239; -case 239: + goto _test_eof245; +case 245: switch( (*p) ) { - case 82: goto st240; - case 114: goto st240; + case 82: goto st246; + case 114: goto st246; } - goto tr784; -st240: + goto tr798; +st246: if ( ++p == pe ) - goto _test_eof240; -case 240: + goto _test_eof246; +case 246: switch( (*p) ) { - case 73: goto st241; - case 105: goto st241; + case 73: goto st247; + case 105: goto st247; } - goto tr784; -st241: + goto tr798; +st247: if ( ++p == pe ) - goto _test_eof241; -case 241: + goto _test_eof247; +case 247: switch( (*p) ) { - case 71: goto st242; - case 103: goto st242; + case 71: goto st248; + case 103: goto st248; } - goto tr784; -st242: + goto tr798; +st248: if ( ++p == pe ) - goto _test_eof242; -case 242: + goto _test_eof248; +case 248: switch( (*p) ) { - case 73: goto st243; - case 105: goto st243; + case 73: goto st249; + case 105: goto st249; } - goto tr784; -st243: + goto tr798; +st249: if ( ++p == pe ) - goto _test_eof243; -case 243: + goto _test_eof249; +case 249: switch( (*p) ) { - case 78: goto st244; - case 110: goto st244; + case 78: goto st250; + case 110: goto st250; } - goto tr784; -st244: + goto tr798; +st250: if ( ++p == pe ) - goto _test_eof244; -case 244: + goto _test_eof250; +case 250: switch( (*p) ) { - case 32: goto tr896; - case 59: goto tr896; + case 32: goto tr910; + case 59: goto tr910; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr896; + goto tr910; } else if ( (*p) >= 9 ) - goto tr896; - goto tr784; -tr787: + goto tr910; + goto tr798; +tr801: { ERR(ZS_OK); } - goto st245; -st245: + goto st251; +st251: if ( ++p == pe ) - goto _test_eof245; -case 245: + goto _test_eof251; +case 251: switch( (*p) ) { - case 84: goto st246; - case 116: goto st246; + case 84: goto st252; + case 116: goto st252; } - goto tr784; -st246: + goto tr798; +st252: if ( ++p == pe ) - goto _test_eof246; -case 246: + goto _test_eof252; +case 252: switch( (*p) ) { - case 76: goto st247; - case 108: goto st247; + case 76: goto st253; + case 108: goto st253; } - goto tr784; -st247: + goto tr798; +st253: if ( ++p == pe ) - goto _test_eof247; -case 247: + goto _test_eof253; +case 253: switch( (*p) ) { - case 32: goto tr899; - case 59: goto tr899; + case 32: goto tr913; + case 59: goto tr913; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr899; + goto tr913; } else if ( (*p) >= 9 ) - goto tr899; - goto tr784; -tr4169: + goto tr913; + goto tr798; +tr4204: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 248;goto st1071;} + {stack[top++] = 254;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 248;goto st1073;} + {stack[top++] = 254;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 248;goto st1075;} + {stack[top++] = 254;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 248;goto st1107;} + {stack[top++] = 254;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 248;goto st1112;} + {stack[top++] = 254;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 248;goto st1117;} + {stack[top++] = 254;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 248;goto st1122;} + {stack[top++] = 254;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 248;goto st1126;} + {stack[top++] = 254;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 248;goto st1128;} + {stack[top++] = 254;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 248;goto st1183;} + {stack[top++] = 254;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 248;goto st1194;} + {stack[top++] = 254;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 248;goto st1211;} + {stack[top++] = 254;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 248;goto st1222;} + {stack[top++] = 254;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 248;goto st1233;} + {stack[top++] = 254;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 248;goto st1246;} + {stack[top++] = 254;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 248;goto st1256;} + {stack[top++] = 254;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 248;goto st1295;} + {stack[top++] = 254;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 248;goto st1321;} + {stack[top++] = 254;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 248;goto st1324;} + {stack[top++] = 254;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 248;goto st1335;} + {stack[top++] = 254;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 248;goto st1337;} + {stack[top++] = 254;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 248;goto st1366;} + {stack[top++] = 254;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 248;goto st1379;} + {stack[top++] = 254;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 248;goto st1392;} + {stack[top++] = 254;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 248;goto st1398;} + {stack[top++] = 254;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 248;goto st1416;} + {stack[top++] = 254;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 248;goto st1411;} + {stack[top++] = 254;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 248;goto st1429;} + {stack[top++] = 254;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 248;goto st1435;} + {stack[top++] = 254;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 248;goto st1441;} + {stack[top++] = 254;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 248;goto st1449;} + {stack[top++] = 254;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 248;goto st1457;} + {stack[top++] = 254;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 248;goto st1463;} + {stack[top++] = 254;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 248;goto st321;} } - goto st248; -st248: + { p--; {stack[top++] = 254;goto st327;} } + goto st254; +st254: if ( ++p == pe ) - goto _test_eof248; -case 248: + goto _test_eof254; +case 254: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34438,17 +35077,17 @@ case 248: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr900; -tr4246: + goto tr914; +tr4281: { s->number64 = 0; } @@ -34463,110 +35102,111 @@ tr4246: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 249;goto st1071;} + {stack[top++] = 255;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 249;goto st1073;} + {stack[top++] = 255;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 249;goto st1075;} + {stack[top++] = 255;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 249;goto st1107;} + {stack[top++] = 255;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 249;goto st1112;} + {stack[top++] = 255;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 249;goto st1117;} + {stack[top++] = 255;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 249;goto st1122;} + {stack[top++] = 255;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 249;goto st1126;} + {stack[top++] = 255;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 249;goto st1128;} + {stack[top++] = 255;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 249;goto st1183;} + {stack[top++] = 255;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 249;goto st1194;} + {stack[top++] = 255;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 249;goto st1211;} + {stack[top++] = 255;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 249;goto st1222;} + {stack[top++] = 255;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 249;goto st1233;} + {stack[top++] = 255;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 249;goto st1246;} + {stack[top++] = 255;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 249;goto st1256;} + {stack[top++] = 255;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 249;goto st1295;} + {stack[top++] = 255;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 249;goto st1321;} + {stack[top++] = 255;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 249;goto st1324;} + {stack[top++] = 255;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 249;goto st1335;} + {stack[top++] = 255;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 249;goto st1337;} + {stack[top++] = 255;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 249;goto st1366;} + {stack[top++] = 255;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 249;goto st1379;} + {stack[top++] = 255;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 249;goto st1392;} + {stack[top++] = 255;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 249;goto st1398;} + {stack[top++] = 255;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 249;goto st1416;} + {stack[top++] = 255;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 249;goto st1411;} + {stack[top++] = 255;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 249;goto st1429;} + {stack[top++] = 255;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 249;goto st1435;} + {stack[top++] = 255;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 249;goto st1441;} + {stack[top++] = 255;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 249;goto st1449;} + {stack[top++] = 255;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 249;goto st1457;} + {stack[top++] = 255;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 249;goto st1463;} + {stack[top++] = 255;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 249;goto st321;} } - goto st249; -st249: + { p--; {stack[top++] = 255;goto st327;} } + goto st255; +st255: if ( ++p == pe ) - goto _test_eof249; -case 249: + goto _test_eof255; +case 255: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34580,47 +35220,47 @@ case 249: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr907; - case 32: goto tr907; - case 40: goto tr908; - case 41: goto tr909; + case 9: goto tr921; + case 32: goto tr921; + case 40: goto tr922; + case 41: goto tr923; case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st207; + case 83: goto st213; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st207; + case 115: goto st213; case 119: goto tr36; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr910; - case 2107: goto tr911; + case 2058: goto tr924; + case 2107: goto tr925; } if ( 48 <= _widec && _widec <= 57 ) goto tr31; - goto tr906; -tr913: + goto tr920; +tr927: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st250; -tr914: + goto st256; +tr928: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st250; -tr907: + goto st256; +tr921: { s->r_owner_length = s->dname_tmp_length; } @@ -34629,22 +35269,22 @@ tr907: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st250; -tr908: + goto st256; +tr922: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -34653,22 +35293,22 @@ tr908: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st250; -tr909: + goto st256; +tr923: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -34677,18 +35317,18 @@ tr909: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st250; -st250: + goto st256; +st256: if ( ++p == pe ) - goto _test_eof250; -case 250: + goto _test_eof256; +case 256: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34702,10 +35342,10 @@ case 250: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st250; - case 32: goto st250; - case 40: goto tr913; - case 41: goto tr914; + case 9: goto st256; + case 32: goto st256; + case 40: goto tr927; + case 41: goto tr928; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -34744,25 +35384,25 @@ case 250: case 122: goto tr22; case 1802: goto tr95; case 1851: goto tr96; - case 2058: goto tr915; - case 2107: goto tr916; + case 2058: goto tr929; + case 2107: goto tr930; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; goto tr0; -tr916: +tr930: { s->buffer_length = 0; } - goto st251; -tr917: + goto st257; +tr931: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st251; -tr911: + goto st257; +tr925: { s->r_owner_length = s->dname_tmp_length; } @@ -34774,18 +35414,18 @@ tr911: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st251; -st251: + goto st257; +st257: if ( ++p == pe ) - goto _test_eof251; -case 251: + goto _test_eof257; +case 257: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -34806,15 +35446,15 @@ case 251: } switch( _widec ) { case 1802: goto tr98; - case 2058: goto tr918; + case 2058: goto tr932; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr917; + goto tr931; } else if ( _widec >= 1664 ) goto tr97; goto tr154; -tr4247: +tr4282: { s->r_class = s->default_class; } @@ -34825,103 +35465,104 @@ tr4247: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 252;goto st1071;} + {stack[top++] = 258;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 252;goto st1073;} + {stack[top++] = 258;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 252;goto st1075;} + {stack[top++] = 258;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 252;goto st1107;} + {stack[top++] = 258;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 252;goto st1112;} + {stack[top++] = 258;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 252;goto st1117;} + {stack[top++] = 258;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 252;goto st1122;} + {stack[top++] = 258;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 252;goto st1126;} + {stack[top++] = 258;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 252;goto st1128;} + {stack[top++] = 258;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 252;goto st1183;} + {stack[top++] = 258;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 252;goto st1194;} + {stack[top++] = 258;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 252;goto st1211;} + {stack[top++] = 258;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 252;goto st1222;} + {stack[top++] = 258;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 252;goto st1233;} + {stack[top++] = 258;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 252;goto st1246;} + {stack[top++] = 258;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 252;goto st1256;} + {stack[top++] = 258;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 252;goto st1295;} + {stack[top++] = 258;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 252;goto st1321;} + {stack[top++] = 258;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 252;goto st1324;} + {stack[top++] = 258;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 252;goto st1335;} + {stack[top++] = 258;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 252;goto st1337;} + {stack[top++] = 258;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 252;goto st1366;} + {stack[top++] = 258;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 252;goto st1379;} + {stack[top++] = 258;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 252;goto st1392;} + {stack[top++] = 258;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 252;goto st1398;} + {stack[top++] = 258;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 252;goto st1416;} + {stack[top++] = 258;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 252;goto st1411;} + {stack[top++] = 258;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 252;goto st1429;} + {stack[top++] = 258;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 252;goto st1435;} + {stack[top++] = 258;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 252;goto st1441;} + {stack[top++] = 258;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 252;goto st1449;} + {stack[top++] = 258;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 252;goto st1457;} + {stack[top++] = 258;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 252;goto st1463;} + {stack[top++] = 258;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 252;goto st321;} } - goto st252; -st252: + { p--; {stack[top++] = 258;goto st327;} } + goto st258; +st258: if ( ++p == pe ) - goto _test_eof252; -case 252: + goto _test_eof258; +case 258: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34939,45 +35580,45 @@ case 252: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr920; - case 32: goto tr920; - case 40: goto tr921; - case 41: goto tr922; - case 65: goto st277; - case 70: goto st280; - case 80: goto st284; - case 97: goto st277; - case 102: goto st280; - case 112: goto st284; + case 9: goto tr934; + case 32: goto tr934; + case 40: goto tr935; + case 41: goto tr936; + case 65: goto st283; + case 70: goto st286; + case 80: goto st290; + case 97: goto st283; + case 102: goto st286; + case 112: goto st290; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr923; - case 3131: goto tr924; - case 3338: goto tr858; - case 3387: goto tr859; - case 3594: goto tr925; - case 3643: goto tr926; - } - goto tr919; -tr928: + case 3082: goto tr937; + case 3131: goto tr938; + case 3338: goto tr872; + case 3387: goto tr873; + case 3594: goto tr939; + case 3643: goto tr940; + } + goto tr933; +tr942: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st253; -tr929: + goto st259; +tr943: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st253; -tr920: + goto st259; +tr934: { s->r_owner_length = s->dname_tmp_length; } @@ -34989,15 +35630,15 @@ tr920: s->buffer[0] = 0; s->buffer_length = 0; } - goto st253; -tr921: + goto st259; +tr935: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -35009,15 +35650,15 @@ tr921: s->buffer[0] = 0; s->buffer_length = 0; } - goto st253; -tr922: + goto st259; +tr936: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -35029,11 +35670,11 @@ tr922: s->buffer[0] = 0; s->buffer_length = 0; } - goto st253; -st253: + goto st259; +st259: if ( ++p == pe ) - goto _test_eof253; -case 253: + goto _test_eof259; +case 259: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35051,10 +35692,10 @@ case 253: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st253; - case 32: goto st253; - case 40: goto tr928; - case 41: goto tr929; + case 9: goto st259; + case 32: goto st259; + case 40: goto tr942; + case 41: goto tr943; case 58: goto tr75; case 65: goto tr124; case 67: goto tr125; @@ -35095,12 +35736,12 @@ case 253: case 122: goto tr141; case 2826: goto tr95; case 2875: goto tr96; - case 3082: goto tr930; - case 3131: goto tr886; + case 3082: goto tr944; + case 3131: goto tr900; case 3338: goto tr114; case 3387: goto tr115; - case 3594: goto tr931; - case 3643: goto tr887; + case 3594: goto tr945; + case 3643: goto tr901; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -35122,95 +35763,96 @@ tr146: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1483;goto st1071;} + {stack[top++] = 1501;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1483;goto st1073;} + {stack[top++] = 1501;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1483;goto st1075;} + {stack[top++] = 1501;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1483;goto st1107;} + {stack[top++] = 1501;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1483;goto st1112;} + {stack[top++] = 1501;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1483;goto st1117;} + {stack[top++] = 1501;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1483;goto st1122;} + {stack[top++] = 1501;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1483;goto st1126;} + {stack[top++] = 1501;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1483;goto st1128;} + {stack[top++] = 1501;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1483;goto st1183;} + {stack[top++] = 1501;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1483;goto st1194;} + {stack[top++] = 1501;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1483;goto st1211;} + {stack[top++] = 1501;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 1483;goto st1222;} + {stack[top++] = 1501;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1483;goto st1233;} + {stack[top++] = 1501;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1483;goto st1246;} + {stack[top++] = 1501;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1483;goto st1256;} + {stack[top++] = 1501;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1483;goto st1295;} + {stack[top++] = 1501;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1483;goto st1321;} + {stack[top++] = 1501;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1483;goto st1324;} + {stack[top++] = 1501;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1483;goto st1335;} + {stack[top++] = 1501;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1483;goto st1337;} + {stack[top++] = 1501;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1483;goto st1366;} + {stack[top++] = 1501;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1483;goto st1379;} + {stack[top++] = 1501;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1483;goto st1392;} + {stack[top++] = 1501;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1483;goto st1398;} + {stack[top++] = 1501;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1483;goto st1416;} + {stack[top++] = 1501;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 1483;goto st1411;} + {stack[top++] = 1501;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1483;goto st1429;} + {stack[top++] = 1501;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1483;goto st1435;} + {stack[top++] = 1501;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 1483;goto st1441;} + {stack[top++] = 1501;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1483;goto st1449;} + {stack[top++] = 1501;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1483;goto st1457;} + {stack[top++] = 1501;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1483;goto st1463;} + {stack[top++] = 1501;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st1483; -tr931: + goto st1501; +tr945: { s->line_counter++; } @@ -35218,97 +35860,98 @@ tr931: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1483;goto st1071;} + {stack[top++] = 1501;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1483;goto st1073;} + {stack[top++] = 1501;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1483;goto st1075;} + {stack[top++] = 1501;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1483;goto st1107;} + {stack[top++] = 1501;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1483;goto st1112;} + {stack[top++] = 1501;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1483;goto st1117;} + {stack[top++] = 1501;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1483;goto st1122;} + {stack[top++] = 1501;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1483;goto st1126;} + {stack[top++] = 1501;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1483;goto st1128;} + {stack[top++] = 1501;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1483;goto st1183;} + {stack[top++] = 1501;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1483;goto st1194;} + {stack[top++] = 1501;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1483;goto st1211;} + {stack[top++] = 1501;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 1483;goto st1222;} + {stack[top++] = 1501;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1483;goto st1233;} + {stack[top++] = 1501;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1483;goto st1246;} + {stack[top++] = 1501;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1483;goto st1256;} + {stack[top++] = 1501;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1483;goto st1295;} + {stack[top++] = 1501;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1483;goto st1321;} + {stack[top++] = 1501;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1483;goto st1324;} + {stack[top++] = 1501;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1483;goto st1335;} + {stack[top++] = 1501;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1483;goto st1337;} + {stack[top++] = 1501;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1483;goto st1366;} + {stack[top++] = 1501;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1483;goto st1379;} + {stack[top++] = 1501;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1483;goto st1392;} + {stack[top++] = 1501;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1483;goto st1398;} + {stack[top++] = 1501;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1483;goto st1416;} + {stack[top++] = 1501;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 1483;goto st1411;} + {stack[top++] = 1501;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1483;goto st1429;} + {stack[top++] = 1501;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1483;goto st1435;} + {stack[top++] = 1501;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 1483;goto st1441;} + {stack[top++] = 1501;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1483;goto st1449;} + {stack[top++] = 1501;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1483;goto st1457;} + {stack[top++] = 1501;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1483;goto st1463;} + {stack[top++] = 1501;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -35321,16 +35964,16 @@ tr931: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1501; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1483; goto _out;} + p--; {p++; cs = 1501; goto _out;} } } - goto st1483; -tr925: + goto st1501; +tr939: { s->r_owner_length = s->dname_tmp_length; } @@ -35345,91 +35988,92 @@ tr925: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1483;goto st1071;} + {stack[top++] = 1501;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1483;goto st1073;} + {stack[top++] = 1501;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1483;goto st1075;} + {stack[top++] = 1501;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1483;goto st1107;} + {stack[top++] = 1501;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1483;goto st1112;} + {stack[top++] = 1501;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1483;goto st1117;} + {stack[top++] = 1501;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1483;goto st1122;} + {stack[top++] = 1501;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1483;goto st1126;} + {stack[top++] = 1501;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1483;goto st1128;} + {stack[top++] = 1501;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1483;goto st1183;} + {stack[top++] = 1501;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1483;goto st1194;} + {stack[top++] = 1501;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1483;goto st1211;} + {stack[top++] = 1501;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 1483;goto st1222;} + {stack[top++] = 1501;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1483;goto st1233;} + {stack[top++] = 1501;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1483;goto st1246;} + {stack[top++] = 1501;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1483;goto st1256;} + {stack[top++] = 1501;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1483;goto st1295;} + {stack[top++] = 1501;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1483;goto st1321;} + {stack[top++] = 1501;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1483;goto st1324;} + {stack[top++] = 1501;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1483;goto st1335;} + {stack[top++] = 1501;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1483;goto st1337;} + {stack[top++] = 1501;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1483;goto st1366;} + {stack[top++] = 1501;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1483;goto st1379;} + {stack[top++] = 1501;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1483;goto st1392;} + {stack[top++] = 1501;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1483;goto st1398;} + {stack[top++] = 1501;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1483;goto st1416;} + {stack[top++] = 1501;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 1483;goto st1411;} + {stack[top++] = 1501;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1483;goto st1429;} + {stack[top++] = 1501;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1483;goto st1435;} + {stack[top++] = 1501;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 1483;goto st1441;} + {stack[top++] = 1501;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1483;goto st1449;} + {stack[top++] = 1501;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1483;goto st1457;} + {stack[top++] = 1501;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1483;goto st1463;} + {stack[top++] = 1501;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { @@ -35439,7 +36083,7 @@ tr925: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->r_data_length = rdata_tail - s->r_data; @@ -35452,16 +36096,16 @@ tr925: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1501; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1483; goto _out;} + p--; {p++; cs = 1501; goto _out;} } } - goto st1483; -tr4175: + goto st1501; +tr4210: { s->line_counter++; } @@ -35469,108 +36113,109 @@ tr4175: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1483;goto st1071;} + {stack[top++] = 1501;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1483;goto st1073;} + {stack[top++] = 1501;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1483;goto st1075;} + {stack[top++] = 1501;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1483;goto st1107;} + {stack[top++] = 1501;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1483;goto st1112;} + {stack[top++] = 1501;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1483;goto st1117;} + {stack[top++] = 1501;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1483;goto st1122;} + {stack[top++] = 1501;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1483;goto st1126;} + {stack[top++] = 1501;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1483;goto st1128;} + {stack[top++] = 1501;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1483;goto st1183;} + {stack[top++] = 1501;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1483;goto st1194;} + {stack[top++] = 1501;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1483;goto st1211;} + {stack[top++] = 1501;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 1483;goto st1222;} + {stack[top++] = 1501;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1483;goto st1233;} + {stack[top++] = 1501;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1483;goto st1246;} + {stack[top++] = 1501;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1483;goto st1256;} + {stack[top++] = 1501;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1483;goto st1295;} + {stack[top++] = 1501;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1483;goto st1321;} + {stack[top++] = 1501;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1483;goto st1324;} + {stack[top++] = 1501;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1483;goto st1335;} + {stack[top++] = 1501;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1483;goto st1337;} + {stack[top++] = 1501;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1483;goto st1366;} + {stack[top++] = 1501;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1483;goto st1379;} + {stack[top++] = 1501;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1483;goto st1392;} + {stack[top++] = 1501;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1483;goto st1398;} + {stack[top++] = 1501;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1483;goto st1416;} + {stack[top++] = 1501;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 1483;goto st1411;} + {stack[top++] = 1501;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1483;goto st1429;} + {stack[top++] = 1501;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1483;goto st1435;} + {stack[top++] = 1501;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 1483;goto st1441;} + {stack[top++] = 1501;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1483;goto st1449;} + {stack[top++] = 1501;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1483;goto st1457;} + {stack[top++] = 1501;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1483;goto st1463;} + {stack[top++] = 1501;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1483; -st1483: + goto st1501; +st1501: if ( ++p == pe ) - goto _test_eof1483; -case 1483: + goto _test_eof1501; +case 1501: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35588,59 +36233,59 @@ case 1483: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4240; - case 32: goto tr4240; - case 36: goto tr4166; - case 40: goto tr4241; - case 41: goto tr4242; - case 42: goto tr4169; + case 9: goto tr4275; + case 32: goto tr4275; + case 36: goto tr4201; + case 40: goto tr4276; + case 41: goto tr4277; + case 42: goto tr4204; case 58: goto tr75; - case 65: goto tr4247; - case 67: goto tr4248; - case 68: goto tr4249; - case 69: goto tr4250; - case 72: goto tr4251; - case 73: goto tr4252; - case 75: goto tr4253; - case 76: goto tr4254; - case 77: goto tr4255; - case 78: goto tr4256; - case 79: goto tr4257; - case 80: goto tr4258; - case 82: goto tr4259; - case 83: goto tr4260; - case 84: goto tr4261; - case 85: goto tr4262; - case 87: goto tr4263; - case 90: goto tr4264; - case 92: goto tr4170; - case 95: goto tr4169; - case 97: goto tr4247; - case 99: goto tr4248; - case 100: goto tr4249; - case 101: goto tr4250; - case 104: goto tr4251; - case 105: goto tr4252; - case 107: goto tr4253; - case 108: goto tr4254; - case 109: goto tr4255; - case 110: goto tr4256; - case 111: goto tr4257; - case 112: goto tr4258; - case 114: goto tr4259; - case 115: goto tr4260; - case 116: goto tr4261; - case 117: goto tr4262; - case 119: goto tr4263; - case 122: goto tr4264; + case 65: goto tr4282; + case 67: goto tr4283; + case 68: goto tr4284; + case 69: goto tr4285; + case 72: goto tr4286; + case 73: goto tr4287; + case 75: goto tr4288; + case 76: goto tr4289; + case 77: goto tr4290; + case 78: goto tr4291; + case 79: goto tr4292; + case 80: goto tr4293; + case 82: goto tr4294; + case 83: goto tr4295; + case 84: goto tr4296; + case 85: goto tr4297; + case 87: goto tr4298; + case 90: goto tr4299; + case 92: goto tr4205; + case 95: goto tr4204; + case 97: goto tr4282; + case 99: goto tr4283; + case 100: goto tr4284; + case 101: goto tr4285; + case 104: goto tr4286; + case 105: goto tr4287; + case 107: goto tr4288; + case 108: goto tr4289; + case 109: goto tr4290; + case 110: goto tr4291; + case 111: goto tr4292; + case 112: goto tr4293; + case 114: goto tr4294; + case 115: goto tr4295; + case 116: goto tr4296; + case 117: goto tr4297; + case 119: goto tr4298; + case 122: goto tr4299; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr4265; - case 3131: goto tr4243; + case 3082: goto tr4300; + case 3131: goto tr4278; case 3338: goto tr107; case 3387: goto tr108; - case 3594: goto tr4265; - case 3643: goto tr4244; + case 3594: goto tr4300; + case 3643: goto tr4279; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -35649,27 +36294,27 @@ case 1483: } else if ( _widec > 44 ) { if ( _widec > 47 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4246; + goto tr4281; } else if ( _widec >= 45 ) - goto tr4169; + goto tr4204; } else goto tr75; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 89 ) - goto tr4169; + goto tr4204; } else if ( _widec > 96 ) { if ( _widec > 121 ) { if ( 123 <= _widec ) goto tr75; } else if ( _widec >= 98 ) - goto tr4169; + goto tr4204; } else goto tr75; } else goto tr75; - goto tr4245; -tr4248: + goto tr4280; +tr4283: { s->r_class = s->default_class; } @@ -35680,103 +36325,104 @@ tr4248: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 254;goto st1071;} + {stack[top++] = 260;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 254;goto st1073;} + {stack[top++] = 260;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 254;goto st1075;} + {stack[top++] = 260;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 254;goto st1107;} + {stack[top++] = 260;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 254;goto st1112;} + {stack[top++] = 260;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 254;goto st1117;} + {stack[top++] = 260;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 254;goto st1122;} + {stack[top++] = 260;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 254;goto st1126;} + {stack[top++] = 260;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 254;goto st1128;} + {stack[top++] = 260;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 254;goto st1183;} + {stack[top++] = 260;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 254;goto st1194;} + {stack[top++] = 260;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 254;goto st1211;} + {stack[top++] = 260;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 254;goto st1222;} + {stack[top++] = 260;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 254;goto st1233;} + {stack[top++] = 260;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 254;goto st1246;} + {stack[top++] = 260;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 254;goto st1256;} + {stack[top++] = 260;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 254;goto st1295;} + {stack[top++] = 260;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 254;goto st1321;} + {stack[top++] = 260;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 254;goto st1324;} + {stack[top++] = 260;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 254;goto st1335;} + {stack[top++] = 260;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 254;goto st1337;} + {stack[top++] = 260;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 254;goto st1366;} + {stack[top++] = 260;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 254;goto st1379;} + {stack[top++] = 260;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 254;goto st1392;} + {stack[top++] = 260;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 254;goto st1398;} + {stack[top++] = 260;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 254;goto st1416;} + {stack[top++] = 260;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 254;goto st1411;} + {stack[top++] = 260;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 254;goto st1429;} + {stack[top++] = 260;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 254;goto st1435;} + {stack[top++] = 260;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 254;goto st1441;} + {stack[top++] = 260;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 254;goto st1449;} + {stack[top++] = 260;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 254;goto st1457;} + {stack[top++] = 260;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 254;goto st1463;} + {stack[top++] = 260;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 254;goto st321;} } - goto st254; -st254: + { p--; {stack[top++] = 260;goto st327;} } + goto st260; +st260: if ( ++p == pe ) - goto _test_eof254; -case 254: + goto _test_eof260; +case 260: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35790,10 +36436,10 @@ case 254: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; case 65: goto st18; case 68: goto st22; case 69: goto st29; @@ -35806,11 +36452,11 @@ case 254: case 115: goto st36; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4249: + goto tr933; +tr4284: { s->r_class = s->default_class; } @@ -35821,103 +36467,104 @@ tr4249: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 255;goto st1071;} + {stack[top++] = 261;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 255;goto st1073;} + {stack[top++] = 261;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 255;goto st1075;} + {stack[top++] = 261;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 255;goto st1107;} + {stack[top++] = 261;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 255;goto st1112;} + {stack[top++] = 261;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 255;goto st1117;} + {stack[top++] = 261;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 255;goto st1122;} + {stack[top++] = 261;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 255;goto st1126;} + {stack[top++] = 261;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 255;goto st1128;} + {stack[top++] = 261;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 255;goto st1183;} + {stack[top++] = 261;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 255;goto st1194;} + {stack[top++] = 261;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 255;goto st1211;} + {stack[top++] = 261;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 255;goto st1222;} + {stack[top++] = 261;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 255;goto st1233;} + {stack[top++] = 261;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 255;goto st1246;} + {stack[top++] = 261;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 255;goto st1256;} + {stack[top++] = 261;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 255;goto st1295;} + {stack[top++] = 261;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 255;goto st1321;} + {stack[top++] = 261;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 255;goto st1324;} + {stack[top++] = 261;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 255;goto st1335;} + {stack[top++] = 261;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 255;goto st1337;} + {stack[top++] = 261;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 255;goto st1366;} + {stack[top++] = 261;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 255;goto st1379;} + {stack[top++] = 261;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 255;goto st1392;} + {stack[top++] = 261;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 255;goto st1398;} + {stack[top++] = 261;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 255;goto st1416;} + {stack[top++] = 261;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 255;goto st1411;} + {stack[top++] = 261;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 255;goto st1429;} + {stack[top++] = 261;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 255;goto st1435;} + {stack[top++] = 261;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 255;goto st1441;} + {stack[top++] = 261;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 255;goto st1449;} + {stack[top++] = 261;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 255;goto st1457;} + {stack[top++] = 261;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 255;goto st1463;} + {stack[top++] = 261;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 255;goto st321;} } - goto st255; -st255: + { p--; {stack[top++] = 261;goto st327;} } + goto st261; +st261: if ( ++p == pe ) - goto _test_eof255; -case 255: + goto _test_eof261; +case 261: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35931,10 +36578,10 @@ case 255: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; case 72: goto st41; case 78: goto st45; case 83: goto st53; @@ -35943,11 +36590,11 @@ case 255: case 115: goto st53; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4250: + goto tr933; +tr4285: { s->r_class = s->default_class; } @@ -35958,103 +36605,104 @@ tr4250: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 256;goto st1071;} + {stack[top++] = 262;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 256;goto st1073;} + {stack[top++] = 262;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 256;goto st1075;} + {stack[top++] = 262;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 256;goto st1107;} + {stack[top++] = 262;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 256;goto st1112;} + {stack[top++] = 262;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 256;goto st1117;} + {stack[top++] = 262;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 256;goto st1122;} + {stack[top++] = 262;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 256;goto st1126;} + {stack[top++] = 262;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 256;goto st1128;} + {stack[top++] = 262;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 256;goto st1183;} + {stack[top++] = 262;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 256;goto st1194;} + {stack[top++] = 262;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 256;goto st1211;} + {stack[top++] = 262;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 256;goto st1222;} + {stack[top++] = 262;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 256;goto st1233;} + {stack[top++] = 262;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 256;goto st1246;} + {stack[top++] = 262;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 256;goto st1256;} + {stack[top++] = 262;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 256;goto st1295;} + {stack[top++] = 262;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 256;goto st1321;} + {stack[top++] = 262;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 256;goto st1324;} + {stack[top++] = 262;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 256;goto st1335;} + {stack[top++] = 262;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 256;goto st1337;} + {stack[top++] = 262;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 256;goto st1366;} + {stack[top++] = 262;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 256;goto st1379;} + {stack[top++] = 262;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 256;goto st1392;} + {stack[top++] = 262;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 256;goto st1398;} + {stack[top++] = 262;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 256;goto st1416;} + {stack[top++] = 262;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 256;goto st1411;} + {stack[top++] = 262;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 256;goto st1429;} + {stack[top++] = 262;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 256;goto st1435;} + {stack[top++] = 262;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 256;goto st1441;} + {stack[top++] = 262;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 256;goto st1449;} + {stack[top++] = 262;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 256;goto st1457;} + {stack[top++] = 262;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 256;goto st1463;} + {stack[top++] = 262;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 256;goto st321;} } - goto st256; -st256: + { p--; {stack[top++] = 262;goto st327;} } + goto st262; +st262: if ( ++p == pe ) - goto _test_eof256; -case 256: + goto _test_eof262; +case 262: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36068,19 +36716,19 @@ case 256: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; case 85: goto st58; case 117: goto st58; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4251: + goto tr933; +tr4286: { s->r_class = s->default_class; } @@ -36091,103 +36739,104 @@ tr4251: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 257;goto st1071;} + {stack[top++] = 263;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 257;goto st1073;} + {stack[top++] = 263;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 257;goto st1075;} + {stack[top++] = 263;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 257;goto st1107;} + {stack[top++] = 263;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 257;goto st1112;} + {stack[top++] = 263;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 257;goto st1117;} + {stack[top++] = 263;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 257;goto st1122;} + {stack[top++] = 263;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 257;goto st1126;} + {stack[top++] = 263;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 257;goto st1128;} + {stack[top++] = 263;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 257;goto st1183;} + {stack[top++] = 263;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 257;goto st1194;} + {stack[top++] = 263;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 257;goto st1211;} + {stack[top++] = 263;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 257;goto st1222;} + {stack[top++] = 263;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 257;goto st1233;} + {stack[top++] = 263;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 257;goto st1246;} + {stack[top++] = 263;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 257;goto st1256;} + {stack[top++] = 263;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 257;goto st1295;} + {stack[top++] = 263;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 257;goto st1321;} + {stack[top++] = 263;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 257;goto st1324;} + {stack[top++] = 263;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 257;goto st1335;} + {stack[top++] = 263;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 257;goto st1337;} + {stack[top++] = 263;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 257;goto st1366;} + {stack[top++] = 263;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 257;goto st1379;} + {stack[top++] = 263;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 257;goto st1392;} + {stack[top++] = 263;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 257;goto st1398;} + {stack[top++] = 263;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 257;goto st1416;} + {stack[top++] = 263;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 257;goto st1411;} + {stack[top++] = 263;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 257;goto st1429;} + {stack[top++] = 263;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 257;goto st1435;} + {stack[top++] = 263;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 257;goto st1441;} + {stack[top++] = 263;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 257;goto st1449;} + {stack[top++] = 263;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 257;goto st1457;} + {stack[top++] = 263;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 257;goto st1463;} + {stack[top++] = 263;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 257;goto st321;} } - goto st257; -st257: + { p--; {stack[top++] = 263;goto st327;} } + goto st263; +st263: if ( ++p == pe ) - goto _test_eof257; -case 257: + goto _test_eof263; +case 263: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36201,21 +36850,21 @@ case 257: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; case 73: goto st65; case 84: goto st69; case 105: goto st65; case 116: goto st69; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4252: + goto tr933; +tr4287: { s->r_class = s->default_class; } @@ -36226,103 +36875,104 @@ tr4252: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 258;goto st1071;} + {stack[top++] = 264;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 258;goto st1073;} + {stack[top++] = 264;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 258;goto st1075;} + {stack[top++] = 264;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 258;goto st1107;} + {stack[top++] = 264;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 258;goto st1112;} + {stack[top++] = 264;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 258;goto st1117;} + {stack[top++] = 264;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 258;goto st1122;} + {stack[top++] = 264;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 258;goto st1126;} + {stack[top++] = 264;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 258;goto st1128;} + {stack[top++] = 264;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 258;goto st1183;} + {stack[top++] = 264;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 258;goto st1194;} + {stack[top++] = 264;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 258;goto st1211;} + {stack[top++] = 264;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 258;goto st1222;} + {stack[top++] = 264;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 258;goto st1233;} + {stack[top++] = 264;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 258;goto st1246;} + {stack[top++] = 264;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 258;goto st1256;} + {stack[top++] = 264;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 258;goto st1295;} + {stack[top++] = 264;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 258;goto st1321;} + {stack[top++] = 264;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 258;goto st1324;} + {stack[top++] = 264;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 258;goto st1335;} + {stack[top++] = 264;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 258;goto st1337;} + {stack[top++] = 264;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 258;goto st1366;} + {stack[top++] = 264;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 258;goto st1379;} + {stack[top++] = 264;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 258;goto st1392;} + {stack[top++] = 264;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 258;goto st1398;} + {stack[top++] = 264;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 258;goto st1416;} + {stack[top++] = 264;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 258;goto st1411;} + {stack[top++] = 264;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 258;goto st1429;} + {stack[top++] = 264;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 258;goto st1435;} + {stack[top++] = 264;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 258;goto st1441;} + {stack[top++] = 264;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 258;goto st1449;} + {stack[top++] = 264;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 258;goto st1457;} + {stack[top++] = 264;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 258;goto st1463;} + {stack[top++] = 264;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 258;goto st321;} } - goto st258; -st258: + { p--; {stack[top++] = 264;goto st327;} } + goto st264; +st264: if ( ++p == pe ) - goto _test_eof258; -case 258: + goto _test_eof264; +case 264: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36336,21 +36986,21 @@ case 258: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; - case 78: goto st185; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; + case 78: goto st191; case 80: goto st77; - case 110: goto st185; + case 110: goto st191; case 112: goto st77; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4253: + goto tr933; +tr4288: { s->r_class = s->default_class; } @@ -36361,103 +37011,104 @@ tr4253: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 259;goto st1071;} + {stack[top++] = 265;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 259;goto st1073;} + {stack[top++] = 265;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 259;goto st1075;} + {stack[top++] = 265;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 259;goto st1107;} + {stack[top++] = 265;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 259;goto st1112;} + {stack[top++] = 265;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 259;goto st1117;} + {stack[top++] = 265;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 259;goto st1122;} + {stack[top++] = 265;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 259;goto st1126;} + {stack[top++] = 265;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 259;goto st1128;} + {stack[top++] = 265;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 259;goto st1183;} + {stack[top++] = 265;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 259;goto st1194;} + {stack[top++] = 265;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 259;goto st1211;} + {stack[top++] = 265;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 259;goto st1222;} + {stack[top++] = 265;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 259;goto st1233;} + {stack[top++] = 265;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 259;goto st1246;} + {stack[top++] = 265;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 259;goto st1256;} + {stack[top++] = 265;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 259;goto st1295;} + {stack[top++] = 265;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 259;goto st1321;} + {stack[top++] = 265;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 259;goto st1324;} + {stack[top++] = 265;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 259;goto st1335;} + {stack[top++] = 265;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 259;goto st1337;} + {stack[top++] = 265;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 259;goto st1366;} + {stack[top++] = 265;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 259;goto st1379;} + {stack[top++] = 265;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 259;goto st1392;} + {stack[top++] = 265;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 259;goto st1398;} + {stack[top++] = 265;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 259;goto st1416;} + {stack[top++] = 265;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 259;goto st1411;} + {stack[top++] = 265;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 259;goto st1429;} + {stack[top++] = 265;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 259;goto st1435;} + {stack[top++] = 265;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 259;goto st1441;} + {stack[top++] = 265;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 259;goto st1449;} + {stack[top++] = 265;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 259;goto st1457;} + {stack[top++] = 265;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 259;goto st1463;} + {stack[top++] = 265;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 259;goto st321;} } - goto st259; -st259: + { p--; {stack[top++] = 265;goto st327;} } + goto st265; +st265: if ( ++p == pe ) - goto _test_eof259; -case 259: + goto _test_eof265; +case 265: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36471,21 +37122,21 @@ case 259: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; case 69: goto st85; case 88: goto st87; case 101: goto st85; case 120: goto st87; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4254: + goto tr933; +tr4289: { s->r_class = s->default_class; } @@ -36496,103 +37147,104 @@ tr4254: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 260;goto st1071;} + {stack[top++] = 266;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 260;goto st1073;} + {stack[top++] = 266;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 260;goto st1075;} + {stack[top++] = 266;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 260;goto st1107;} + {stack[top++] = 266;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 260;goto st1112;} + {stack[top++] = 266;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 260;goto st1117;} + {stack[top++] = 266;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 260;goto st1122;} + {stack[top++] = 266;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 260;goto st1126;} + {stack[top++] = 266;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 260;goto st1128;} + {stack[top++] = 266;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 260;goto st1183;} + {stack[top++] = 266;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 260;goto st1194;} + {stack[top++] = 266;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 260;goto st1211;} + {stack[top++] = 266;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 260;goto st1222;} + {stack[top++] = 266;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 260;goto st1233;} + {stack[top++] = 266;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 260;goto st1246;} + {stack[top++] = 266;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 260;goto st1256;} + {stack[top++] = 266;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 260;goto st1295;} + {stack[top++] = 266;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 260;goto st1321;} + {stack[top++] = 266;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 260;goto st1324;} + {stack[top++] = 266;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 260;goto st1335;} + {stack[top++] = 266;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 260;goto st1337;} + {stack[top++] = 266;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 260;goto st1366;} + {stack[top++] = 266;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 260;goto st1379;} + {stack[top++] = 266;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 260;goto st1392;} + {stack[top++] = 266;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 260;goto st1398;} + {stack[top++] = 266;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 260;goto st1416;} + {stack[top++] = 266;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 260;goto st1411;} + {stack[top++] = 266;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 260;goto st1429;} + {stack[top++] = 266;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 260;goto st1435;} + {stack[top++] = 266;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 260;goto st1441;} + {stack[top++] = 266;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 260;goto st1449;} + {stack[top++] = 266;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 260;goto st1457;} + {stack[top++] = 266;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 260;goto st1463;} + {stack[top++] = 266;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 260;goto st321;} } - goto st260; -st260: + { p--; {stack[top++] = 266;goto st327;} } + goto st266; +st266: if ( ++p == pe ) - goto _test_eof260; -case 260: + goto _test_eof266; +case 266: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36606,10 +37258,10 @@ case 260: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; case 51: goto st89; case 54: goto st91; case 79: goto st93; @@ -36618,11 +37270,11 @@ case 260: case 112: goto st95; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4255: + goto tr933; +tr4290: { s->r_class = s->default_class; } @@ -36633,103 +37285,104 @@ tr4255: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 261;goto st1071;} + {stack[top++] = 267;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 261;goto st1073;} + {stack[top++] = 267;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 261;goto st1075;} + {stack[top++] = 267;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 261;goto st1107;} + {stack[top++] = 267;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 261;goto st1112;} + {stack[top++] = 267;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 261;goto st1117;} + {stack[top++] = 267;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 261;goto st1122;} + {stack[top++] = 267;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 261;goto st1126;} + {stack[top++] = 267;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 261;goto st1128;} + {stack[top++] = 267;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 261;goto st1183;} + {stack[top++] = 267;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 261;goto st1194;} + {stack[top++] = 267;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 261;goto st1211;} + {stack[top++] = 267;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 261;goto st1222;} + {stack[top++] = 267;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 261;goto st1233;} + {stack[top++] = 267;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 261;goto st1246;} + {stack[top++] = 267;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 261;goto st1256;} + {stack[top++] = 267;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 261;goto st1295;} + {stack[top++] = 267;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 261;goto st1321;} + {stack[top++] = 267;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 261;goto st1324;} + {stack[top++] = 267;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 261;goto st1335;} + {stack[top++] = 267;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 261;goto st1337;} + {stack[top++] = 267;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 261;goto st1366;} + {stack[top++] = 267;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 261;goto st1379;} + {stack[top++] = 267;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 261;goto st1392;} + {stack[top++] = 267;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 261;goto st1398;} + {stack[top++] = 267;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 261;goto st1416;} + {stack[top++] = 267;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 261;goto st1411;} + {stack[top++] = 267;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 261;goto st1429;} + {stack[top++] = 267;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 261;goto st1435;} + {stack[top++] = 267;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 261;goto st1441;} + {stack[top++] = 267;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 261;goto st1449;} + {stack[top++] = 267;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 261;goto st1457;} + {stack[top++] = 267;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 261;goto st1463;} + {stack[top++] = 267;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 261;goto st321;} } - goto st261; -st261: + { p--; {stack[top++] = 267;goto st327;} } + goto st267; +st267: if ( ++p == pe ) - goto _test_eof261; -case 261: + goto _test_eof267; +case 267: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36743,21 +37396,21 @@ case 261: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; case 73: goto st97; case 88: goto st101; case 105: goto st97; case 120: goto st101; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4256: + goto tr933; +tr4291: { s->r_class = s->default_class; } @@ -36768,103 +37421,104 @@ tr4256: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 262;goto st1071;} + {stack[top++] = 268;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 262;goto st1073;} + {stack[top++] = 268;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 262;goto st1075;} + {stack[top++] = 268;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 262;goto st1107;} + {stack[top++] = 268;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 262;goto st1112;} + {stack[top++] = 268;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 262;goto st1117;} + {stack[top++] = 268;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 262;goto st1122;} + {stack[top++] = 268;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 262;goto st1126;} + {stack[top++] = 268;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 262;goto st1128;} + {stack[top++] = 268;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 262;goto st1183;} + {stack[top++] = 268;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 262;goto st1194;} + {stack[top++] = 268;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 262;goto st1211;} + {stack[top++] = 268;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 262;goto st1222;} + {stack[top++] = 268;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 262;goto st1233;} + {stack[top++] = 268;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 262;goto st1246;} + {stack[top++] = 268;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 262;goto st1256;} + {stack[top++] = 268;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 262;goto st1295;} + {stack[top++] = 268;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 262;goto st1321;} + {stack[top++] = 268;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 262;goto st1324;} + {stack[top++] = 268;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 262;goto st1335;} + {stack[top++] = 268;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 262;goto st1337;} + {stack[top++] = 268;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 262;goto st1366;} + {stack[top++] = 268;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 262;goto st1379;} + {stack[top++] = 268;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 262;goto st1392;} + {stack[top++] = 268;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 262;goto st1398;} + {stack[top++] = 268;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 262;goto st1416;} + {stack[top++] = 268;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 262;goto st1411;} + {stack[top++] = 268;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 262;goto st1429;} + {stack[top++] = 268;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 262;goto st1435;} + {stack[top++] = 268;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 262;goto st1441;} + {stack[top++] = 268;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 262;goto st1449;} + {stack[top++] = 268;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 262;goto st1457;} + {stack[top++] = 268;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 262;goto st1463;} + {stack[top++] = 268;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 262;goto st321;} } - goto st262; -st262: + { p--; {stack[top++] = 268;goto st327;} } + goto st268; +st268: if ( ++p == pe ) - goto _test_eof262; -case 262: + goto _test_eof268; +case 268: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36878,10 +37532,10 @@ case 262: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; case 65: goto st103; case 73: goto st107; case 83: goto st109; @@ -36890,11 +37544,11 @@ case 262: case 115: goto st109; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4257: + goto tr933; +tr4292: { s->r_class = s->default_class; } @@ -36905,103 +37559,104 @@ tr4257: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 263;goto st1071;} + {stack[top++] = 269;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 263;goto st1073;} + {stack[top++] = 269;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 263;goto st1075;} + {stack[top++] = 269;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 263;goto st1107;} + {stack[top++] = 269;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 263;goto st1112;} + {stack[top++] = 269;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 263;goto st1117;} + {stack[top++] = 269;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 263;goto st1122;} + {stack[top++] = 269;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 263;goto st1126;} + {stack[top++] = 269;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 263;goto st1128;} + {stack[top++] = 269;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 263;goto st1183;} + {stack[top++] = 269;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 263;goto st1194;} + {stack[top++] = 269;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 263;goto st1211;} + {stack[top++] = 269;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 263;goto st1222;} + {stack[top++] = 269;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 263;goto st1233;} + {stack[top++] = 269;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 263;goto st1246;} + {stack[top++] = 269;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 263;goto st1256;} + {stack[top++] = 269;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 263;goto st1295;} + {stack[top++] = 269;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 263;goto st1321;} + {stack[top++] = 269;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 263;goto st1324;} + {stack[top++] = 269;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 263;goto st1335;} + {stack[top++] = 269;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 263;goto st1337;} + {stack[top++] = 269;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 263;goto st1366;} + {stack[top++] = 269;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 263;goto st1379;} + {stack[top++] = 269;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 263;goto st1392;} + {stack[top++] = 269;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 263;goto st1398;} + {stack[top++] = 269;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 263;goto st1416;} + {stack[top++] = 269;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 263;goto st1411;} + {stack[top++] = 269;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 263;goto st1429;} + {stack[top++] = 269;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 263;goto st1435;} + {stack[top++] = 269;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 263;goto st1441;} + {stack[top++] = 269;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 263;goto st1449;} + {stack[top++] = 269;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 263;goto st1457;} + {stack[top++] = 269;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 263;goto st1463;} + {stack[top++] = 269;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 263;goto st321;} } - goto st263; -st263: + { p--; {stack[top++] = 269;goto st327;} } + goto st269; +st269: if ( ++p == pe ) - goto _test_eof263; -case 263: + goto _test_eof269; +case 269: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37015,19 +37670,19 @@ case 263: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; case 80: goto st119; case 112: goto st119; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4258: + goto tr933; +tr4293: { s->r_class = s->default_class; } @@ -37038,103 +37693,104 @@ tr4258: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 264;goto st1071;} + {stack[top++] = 270;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 264;goto st1073;} + {stack[top++] = 270;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 264;goto st1075;} + {stack[top++] = 270;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 264;goto st1107;} + {stack[top++] = 270;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 264;goto st1112;} + {stack[top++] = 270;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 264;goto st1117;} + {stack[top++] = 270;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 264;goto st1122;} + {stack[top++] = 270;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 264;goto st1126;} + {stack[top++] = 270;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 264;goto st1128;} + {stack[top++] = 270;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 264;goto st1183;} + {stack[top++] = 270;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 264;goto st1194;} + {stack[top++] = 270;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 264;goto st1211;} + {stack[top++] = 270;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 264;goto st1222;} + {stack[top++] = 270;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 264;goto st1233;} + {stack[top++] = 270;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 264;goto st1246;} + {stack[top++] = 270;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 264;goto st1256;} + {stack[top++] = 270;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 264;goto st1295;} + {stack[top++] = 270;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 264;goto st1321;} + {stack[top++] = 270;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 264;goto st1324;} + {stack[top++] = 270;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 264;goto st1335;} + {stack[top++] = 270;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 264;goto st1337;} + {stack[top++] = 270;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 264;goto st1366;} + {stack[top++] = 270;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 264;goto st1379;} + {stack[top++] = 270;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 264;goto st1392;} + {stack[top++] = 270;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 264;goto st1398;} + {stack[top++] = 270;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 264;goto st1416;} + {stack[top++] = 270;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 264;goto st1411;} + {stack[top++] = 270;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 264;goto st1429;} + {stack[top++] = 270;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 264;goto st1435;} + {stack[top++] = 270;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 264;goto st1441;} + {stack[top++] = 270;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 264;goto st1449;} + {stack[top++] = 270;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 264;goto st1457;} + {stack[top++] = 270;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 264;goto st1463;} + {stack[top++] = 270;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 264;goto st321;} } - goto st264; -st264: + { p--; {stack[top++] = 270;goto st327;} } + goto st270; +st270: if ( ++p == pe ) - goto _test_eof264; -case 264: + goto _test_eof270; +case 270: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37148,19 +37804,19 @@ case 264: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; case 84: goto st129; case 116: goto st129; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4259: + goto tr933; +tr4294: { s->r_class = s->default_class; } @@ -37171,103 +37827,104 @@ tr4259: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 265;goto st1071;} + {stack[top++] = 271;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 265;goto st1073;} + {stack[top++] = 271;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 265;goto st1075;} + {stack[top++] = 271;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 265;goto st1107;} + {stack[top++] = 271;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 265;goto st1112;} + {stack[top++] = 271;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 265;goto st1117;} + {stack[top++] = 271;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 265;goto st1122;} + {stack[top++] = 271;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 265;goto st1126;} + {stack[top++] = 271;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 265;goto st1128;} + {stack[top++] = 271;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 265;goto st1183;} + {stack[top++] = 271;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 265;goto st1194;} + {stack[top++] = 271;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 265;goto st1211;} + {stack[top++] = 271;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 265;goto st1222;} + {stack[top++] = 271;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 265;goto st1233;} + {stack[top++] = 271;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 265;goto st1246;} + {stack[top++] = 271;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 265;goto st1256;} + {stack[top++] = 271;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 265;goto st1295;} + {stack[top++] = 271;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 265;goto st1321;} + {stack[top++] = 271;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 265;goto st1324;} + {stack[top++] = 271;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 265;goto st1335;} + {stack[top++] = 271;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 265;goto st1337;} + {stack[top++] = 271;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 265;goto st1366;} + {stack[top++] = 271;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 265;goto st1379;} + {stack[top++] = 271;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 265;goto st1392;} + {stack[top++] = 271;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 265;goto st1398;} + {stack[top++] = 271;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 265;goto st1416;} + {stack[top++] = 271;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 265;goto st1411;} + {stack[top++] = 271;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 265;goto st1429;} + {stack[top++] = 271;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 265;goto st1435;} + {stack[top++] = 271;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 265;goto st1441;} + {stack[top++] = 271;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 265;goto st1449;} + {stack[top++] = 271;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 265;goto st1457;} + {stack[top++] = 271;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 265;goto st1463;} + {stack[top++] = 271;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 265;goto st321;} } - goto st265; -st265: + { p--; {stack[top++] = 271;goto st327;} } + goto st271; +st271: if ( ++p == pe ) - goto _test_eof265; -case 265: + goto _test_eof271; +case 271: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37281,23 +37938,25 @@ case 265: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; - case 80: goto st132; - case 82: goto st133; - case 84: goto st137; - case 112: goto st132; - case 114: goto st133; - case 116: goto st137; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; + case 69: goto st132; + case 80: goto st138; + case 82: goto st139; + case 84: goto st143; + case 101: goto st132; + case 112: goto st138; + case 114: goto st139; + case 116: goto st143; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4260: + goto tr933; +tr4295: { s->r_class = s->default_class; } @@ -37308,103 +37967,104 @@ tr4260: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 266;goto st1071;} + {stack[top++] = 272;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 266;goto st1073;} + {stack[top++] = 272;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 266;goto st1075;} + {stack[top++] = 272;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 266;goto st1107;} + {stack[top++] = 272;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 266;goto st1112;} + {stack[top++] = 272;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 266;goto st1117;} + {stack[top++] = 272;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 266;goto st1122;} + {stack[top++] = 272;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 266;goto st1126;} + {stack[top++] = 272;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 266;goto st1128;} + {stack[top++] = 272;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 266;goto st1183;} + {stack[top++] = 272;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 266;goto st1194;} + {stack[top++] = 272;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 266;goto st1211;} + {stack[top++] = 272;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 266;goto st1222;} + {stack[top++] = 272;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 266;goto st1233;} + {stack[top++] = 272;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 266;goto st1246;} + {stack[top++] = 272;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 266;goto st1256;} + {stack[top++] = 272;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 266;goto st1295;} + {stack[top++] = 272;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 266;goto st1321;} + {stack[top++] = 272;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 266;goto st1324;} + {stack[top++] = 272;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 266;goto st1335;} + {stack[top++] = 272;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 266;goto st1337;} + {stack[top++] = 272;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 266;goto st1366;} + {stack[top++] = 272;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 266;goto st1379;} + {stack[top++] = 272;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 266;goto st1392;} + {stack[top++] = 272;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 266;goto st1398;} + {stack[top++] = 272;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 266;goto st1416;} + {stack[top++] = 272;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 266;goto st1411;} + {stack[top++] = 272;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 266;goto st1429;} + {stack[top++] = 272;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 266;goto st1435;} + {stack[top++] = 272;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 266;goto st1441;} + {stack[top++] = 272;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 266;goto st1449;} + {stack[top++] = 272;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 266;goto st1457;} + {stack[top++] = 272;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 266;goto st1463;} + {stack[top++] = 272;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 266;goto st321;} } - goto st266; -st266: + { p--; {stack[top++] = 272;goto st327;} } + goto st272; +st272: if ( ++p == pe ) - goto _test_eof266; -case 266: + goto _test_eof272; +case 272: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37418,29 +38078,29 @@ case 266: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; - case 77: goto st139; - case 79: goto st144; - case 80: goto st146; - case 82: goto st148; - case 83: goto st150; - case 86: goto st154; - case 109: goto st139; - case 111: goto st144; - case 112: goto st146; - case 114: goto st148; - case 115: goto st150; - case 118: goto st154; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; + case 77: goto st145; + case 79: goto st150; + case 80: goto st152; + case 82: goto st154; + case 83: goto st156; + case 86: goto st160; + case 109: goto st145; + case 111: goto st150; + case 112: goto st152; + case 114: goto st154; + case 115: goto st156; + case 118: goto st160; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4261: + goto tr933; +tr4296: { s->r_class = s->default_class; } @@ -37451,103 +38111,104 @@ tr4261: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 267;goto st1071;} + {stack[top++] = 273;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 267;goto st1073;} + {stack[top++] = 273;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 267;goto st1075;} + {stack[top++] = 273;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 267;goto st1107;} + {stack[top++] = 273;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 267;goto st1112;} + {stack[top++] = 273;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 267;goto st1117;} + {stack[top++] = 273;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 267;goto st1122;} + {stack[top++] = 273;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 267;goto st1126;} + {stack[top++] = 273;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 267;goto st1128;} + {stack[top++] = 273;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 267;goto st1183;} + {stack[top++] = 273;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 267;goto st1194;} + {stack[top++] = 273;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 267;goto st1211;} + {stack[top++] = 273;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 267;goto st1222;} + {stack[top++] = 273;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 267;goto st1233;} + {stack[top++] = 273;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 267;goto st1246;} + {stack[top++] = 273;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 267;goto st1256;} + {stack[top++] = 273;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 267;goto st1295;} + {stack[top++] = 273;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 267;goto st1321;} + {stack[top++] = 273;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 267;goto st1324;} + {stack[top++] = 273;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 267;goto st1335;} + {stack[top++] = 273;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 267;goto st1337;} + {stack[top++] = 273;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 267;goto st1366;} + {stack[top++] = 273;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 267;goto st1379;} + {stack[top++] = 273;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 267;goto st1392;} + {stack[top++] = 273;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 267;goto st1398;} + {stack[top++] = 273;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 267;goto st1416;} + {stack[top++] = 273;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 267;goto st1411;} + {stack[top++] = 273;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 267;goto st1429;} + {stack[top++] = 273;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 267;goto st1435;} + {stack[top++] = 273;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 267;goto st1441;} + {stack[top++] = 273;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 267;goto st1449;} + {stack[top++] = 273;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 267;goto st1457;} + {stack[top++] = 273;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 267;goto st1463;} + {stack[top++] = 273;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 267;goto st321;} } - goto st267; -st267: + { p--; {stack[top++] = 273;goto st327;} } + goto st273; +st273: if ( ++p == pe ) - goto _test_eof267; -case 267: + goto _test_eof273; +case 273: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37561,23 +38222,23 @@ case 267: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; - case 76: goto st158; - case 88: goto st161; - case 89: goto st163; - case 108: goto st158; - case 120: goto st161; - case 121: goto st163; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; + case 76: goto st164; + case 88: goto st167; + case 89: goto st169; + case 108: goto st164; + case 120: goto st167; + case 121: goto st169; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4262: + goto tr933; +tr4297: { s->r_class = s->default_class; } @@ -37588,103 +38249,104 @@ tr4262: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 268;goto st1071;} + {stack[top++] = 274;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 268;goto st1073;} + {stack[top++] = 274;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 268;goto st1075;} + {stack[top++] = 274;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 268;goto st1107;} + {stack[top++] = 274;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 268;goto st1112;} + {stack[top++] = 274;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 268;goto st1117;} + {stack[top++] = 274;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 268;goto st1122;} + {stack[top++] = 274;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 268;goto st1126;} + {stack[top++] = 274;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 268;goto st1128;} + {stack[top++] = 274;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 268;goto st1183;} + {stack[top++] = 274;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 268;goto st1194;} + {stack[top++] = 274;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 268;goto st1211;} + {stack[top++] = 274;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 268;goto st1222;} + {stack[top++] = 274;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 268;goto st1233;} + {stack[top++] = 274;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 268;goto st1246;} + {stack[top++] = 274;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 268;goto st1256;} + {stack[top++] = 274;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 268;goto st1295;} + {stack[top++] = 274;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 268;goto st1321;} + {stack[top++] = 274;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 268;goto st1324;} + {stack[top++] = 274;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 268;goto st1335;} + {stack[top++] = 274;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 268;goto st1337;} + {stack[top++] = 274;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 268;goto st1366;} + {stack[top++] = 274;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 268;goto st1379;} + {stack[top++] = 274;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 268;goto st1392;} + {stack[top++] = 274;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 268;goto st1398;} + {stack[top++] = 274;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 268;goto st1416;} + {stack[top++] = 274;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 268;goto st1411;} + {stack[top++] = 274;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 268;goto st1429;} + {stack[top++] = 274;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 268;goto st1435;} + {stack[top++] = 274;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 268;goto st1441;} + {stack[top++] = 274;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 268;goto st1449;} + {stack[top++] = 274;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 268;goto st1457;} + {stack[top++] = 274;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 268;goto st1463;} + {stack[top++] = 274;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 268;goto st321;} } - goto st268; -st268: + { p--; {stack[top++] = 274;goto st327;} } + goto st274; +st274: if ( ++p == pe ) - goto _test_eof268; -case 268: + goto _test_eof274; +case 274: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37698,19 +38360,19 @@ case 268: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; - case 82: goto st168; - case 114: goto st168; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; + case 82: goto st174; + case 114: goto st174; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4263: + goto tr933; +tr4298: { s->r_class = s->default_class; } @@ -37721,103 +38383,104 @@ tr4263: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 269;goto st1071;} + {stack[top++] = 275;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 269;goto st1073;} + {stack[top++] = 275;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 269;goto st1075;} + {stack[top++] = 275;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 269;goto st1107;} + {stack[top++] = 275;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 269;goto st1112;} + {stack[top++] = 275;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 269;goto st1117;} + {stack[top++] = 275;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 269;goto st1122;} + {stack[top++] = 275;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 269;goto st1126;} + {stack[top++] = 275;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 269;goto st1128;} + {stack[top++] = 275;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 269;goto st1183;} + {stack[top++] = 275;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 269;goto st1194;} + {stack[top++] = 275;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 269;goto st1211;} + {stack[top++] = 275;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 269;goto st1222;} + {stack[top++] = 275;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 269;goto st1233;} + {stack[top++] = 275;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 269;goto st1246;} + {stack[top++] = 275;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 269;goto st1256;} + {stack[top++] = 275;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 269;goto st1295;} + {stack[top++] = 275;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 269;goto st1321;} + {stack[top++] = 275;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 269;goto st1324;} + {stack[top++] = 275;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 269;goto st1335;} + {stack[top++] = 275;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 269;goto st1337;} + {stack[top++] = 275;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 269;goto st1366;} + {stack[top++] = 275;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 269;goto st1379;} + {stack[top++] = 275;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 269;goto st1392;} + {stack[top++] = 275;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 269;goto st1398;} + {stack[top++] = 275;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 269;goto st1416;} + {stack[top++] = 275;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 269;goto st1411;} + {stack[top++] = 275;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 269;goto st1429;} + {stack[top++] = 275;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 269;goto st1435;} + {stack[top++] = 275;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 269;goto st1441;} + {stack[top++] = 275;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 269;goto st1449;} + {stack[top++] = 275;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 269;goto st1457;} + {stack[top++] = 275;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 269;goto st1463;} + {stack[top++] = 275;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 269;goto st321;} } - goto st269; -st269: + { p--; {stack[top++] = 275;goto st327;} } + goto st275; +st275: if ( ++p == pe ) - goto _test_eof269; -case 269: + goto _test_eof275; +case 275: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37831,19 +38494,19 @@ case 269: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; - case 65: goto st171; - case 97: goto st171; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; + case 65: goto st177; + case 97: goto st177; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4264: + goto tr933; +tr4299: { s->r_class = s->default_class; } @@ -37854,103 +38517,104 @@ tr4264: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 270;goto st1071;} + {stack[top++] = 276;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 270;goto st1073;} + {stack[top++] = 276;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 270;goto st1075;} + {stack[top++] = 276;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 270;goto st1107;} + {stack[top++] = 276;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 270;goto st1112;} + {stack[top++] = 276;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 270;goto st1117;} + {stack[top++] = 276;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 270;goto st1122;} + {stack[top++] = 276;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 270;goto st1126;} + {stack[top++] = 276;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 270;goto st1128;} + {stack[top++] = 276;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 270;goto st1183;} + {stack[top++] = 276;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 270;goto st1194;} + {stack[top++] = 276;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 270;goto st1211;} + {stack[top++] = 276;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 270;goto st1222;} + {stack[top++] = 276;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 270;goto st1233;} + {stack[top++] = 276;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 270;goto st1246;} + {stack[top++] = 276;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 270;goto st1256;} + {stack[top++] = 276;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 270;goto st1295;} + {stack[top++] = 276;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 270;goto st1321;} + {stack[top++] = 276;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 270;goto st1324;} + {stack[top++] = 276;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 270;goto st1335;} + {stack[top++] = 276;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 270;goto st1337;} + {stack[top++] = 276;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 270;goto st1366;} + {stack[top++] = 276;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 270;goto st1379;} + {stack[top++] = 276;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 270;goto st1392;} + {stack[top++] = 276;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 270;goto st1398;} + {stack[top++] = 276;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 270;goto st1416;} + {stack[top++] = 276;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 270;goto st1411;} + {stack[top++] = 276;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 270;goto st1429;} + {stack[top++] = 276;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 270;goto st1435;} + {stack[top++] = 276;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 270;goto st1441;} + {stack[top++] = 276;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 270;goto st1449;} + {stack[top++] = 276;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 270;goto st1457;} + {stack[top++] = 276;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 270;goto st1463;} + {stack[top++] = 276;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 270;goto st321;} } - goto st270; -st270: + { p--; {stack[top++] = 276;goto st327;} } + goto st276; +st276: if ( ++p == pe ) - goto _test_eof270; -case 270: + goto _test_eof276; +case 276: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37964,19 +38628,19 @@ case 270: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr901; - case 32: goto tr901; - case 40: goto tr902; - case 41: goto tr903; - case 79: goto st177; - case 111: goto st177; + case 9: goto tr915; + case 32: goto tr915; + case 40: goto tr916; + case 41: goto tr917; + case 79: goto st183; + case 111: goto st183; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr904; - case 2107: goto tr905; + case 2058: goto tr918; + case 2107: goto tr919; } - goto tr919; -tr4170: + goto tr933; +tr4205: { if (pe - p == 1) { *wrap = WRAP_DETECTED; @@ -37986,12 +38650,12 @@ tr4170: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 271;goto st321;} } - goto st271; -st271: + { p--; {stack[top++] = 277;goto st327;} } + goto st277; +st277: if ( ++p == pe ) - goto _test_eof271; -case 271: + goto _test_eof277; +case 277: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38005,15 +38669,15 @@ case 271: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr932; - case 32: goto tr932; + case 9: goto tr946; + case 32: goto tr946; case 35: goto tr100; - case 40: goto tr934; - case 41: goto tr935; + case 40: goto tr948; + case 41: goto tr949; case 1802: goto tr99; case 1851: goto tr99; - case 2058: goto tr936; - case 2107: goto tr937; + case 2058: goto tr950; + case 2107: goto tr951; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -38023,8 +38687,8 @@ case 271: goto tr99; } else goto tr99; - goto tr933; -tr932: + goto tr947; +tr946: { s->r_owner_length = s->dname_tmp_length; } @@ -38037,102 +38701,103 @@ tr932: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st1071;} + {stack[top++] = 278;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st1073;} + {stack[top++] = 278;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st1075;} + {stack[top++] = 278;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st1107;} + {stack[top++] = 278;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st1112;} + {stack[top++] = 278;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st1117;} + {stack[top++] = 278;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st1122;} + {stack[top++] = 278;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st1126;} + {stack[top++] = 278;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st1128;} + {stack[top++] = 278;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st1183;} + {stack[top++] = 278;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1194;} + {stack[top++] = 278;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1211;} + {stack[top++] = 278;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1222;} + {stack[top++] = 278;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1233;} + {stack[top++] = 278;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1246;} + {stack[top++] = 278;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1256;} + {stack[top++] = 278;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1295;} + {stack[top++] = 278;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1321;} + {stack[top++] = 278;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1324;} + {stack[top++] = 278;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1335;} + {stack[top++] = 278;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 272;goto st1337;} + {stack[top++] = 278;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1366;} + {stack[top++] = 278;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1379;} + {stack[top++] = 278;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1392;} + {stack[top++] = 278;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1398;} + {stack[top++] = 278;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1416;} + {stack[top++] = 278;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1411;} + {stack[top++] = 278;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1429;} + {stack[top++] = 278;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1435;} + {stack[top++] = 278;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1441;} + {stack[top++] = 278;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1449;} + {stack[top++] = 278;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1457;} + {stack[top++] = 278;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 272;goto st1463;} + {stack[top++] = 278;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st272; -tr934: + goto st278; +tr948: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -38145,102 +38810,103 @@ tr934: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st1071;} + {stack[top++] = 278;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st1073;} + {stack[top++] = 278;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st1075;} + {stack[top++] = 278;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st1107;} + {stack[top++] = 278;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st1112;} + {stack[top++] = 278;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st1117;} + {stack[top++] = 278;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st1122;} + {stack[top++] = 278;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st1126;} + {stack[top++] = 278;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st1128;} + {stack[top++] = 278;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st1183;} + {stack[top++] = 278;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1194;} + {stack[top++] = 278;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1211;} + {stack[top++] = 278;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1222;} + {stack[top++] = 278;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1233;} + {stack[top++] = 278;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1246;} + {stack[top++] = 278;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1256;} + {stack[top++] = 278;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1295;} + {stack[top++] = 278;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1321;} + {stack[top++] = 278;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1324;} + {stack[top++] = 278;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1335;} + {stack[top++] = 278;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 272;goto st1337;} + {stack[top++] = 278;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1366;} + {stack[top++] = 278;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1379;} + {stack[top++] = 278;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1392;} + {stack[top++] = 278;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1398;} + {stack[top++] = 278;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1416;} + {stack[top++] = 278;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1411;} + {stack[top++] = 278;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1429;} + {stack[top++] = 278;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1435;} + {stack[top++] = 278;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1441;} + {stack[top++] = 278;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1449;} + {stack[top++] = 278;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1457;} + {stack[top++] = 278;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 272;goto st1463;} + {stack[top++] = 278;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st272; -tr935: + goto st278; +tr949: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -38253,95 +38919,96 @@ tr935: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st1071;} + {stack[top++] = 278;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st1073;} + {stack[top++] = 278;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st1075;} + {stack[top++] = 278;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st1107;} + {stack[top++] = 278;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st1112;} + {stack[top++] = 278;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st1117;} + {stack[top++] = 278;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st1122;} + {stack[top++] = 278;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st1126;} + {stack[top++] = 278;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st1128;} + {stack[top++] = 278;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st1183;} + {stack[top++] = 278;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1194;} + {stack[top++] = 278;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1211;} + {stack[top++] = 278;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1222;} + {stack[top++] = 278;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1233;} + {stack[top++] = 278;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1246;} + {stack[top++] = 278;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1256;} + {stack[top++] = 278;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1295;} + {stack[top++] = 278;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1321;} + {stack[top++] = 278;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1324;} + {stack[top++] = 278;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1335;} + {stack[top++] = 278;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 272;goto st1337;} + {stack[top++] = 278;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1366;} + {stack[top++] = 278;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1379;} + {stack[top++] = 278;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1392;} + {stack[top++] = 278;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1398;} + {stack[top++] = 278;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1416;} + {stack[top++] = 278;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1411;} + {stack[top++] = 278;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1429;} + {stack[top++] = 278;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1435;} + {stack[top++] = 278;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1441;} + {stack[top++] = 278;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1449;} + {stack[top++] = 278;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1457;} + {stack[top++] = 278;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 272;goto st1463;} + {stack[top++] = 278;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st272; -tr936: + goto st278; +tr950: { s->r_owner_length = s->dname_tmp_length; } @@ -38357,98 +39024,99 @@ tr936: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st1071;} + {stack[top++] = 278;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st1073;} + {stack[top++] = 278;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st1075;} + {stack[top++] = 278;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st1107;} + {stack[top++] = 278;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st1112;} + {stack[top++] = 278;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st1117;} + {stack[top++] = 278;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st1122;} + {stack[top++] = 278;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st1126;} + {stack[top++] = 278;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st1128;} + {stack[top++] = 278;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st1183;} + {stack[top++] = 278;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1194;} + {stack[top++] = 278;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1211;} + {stack[top++] = 278;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1222;} + {stack[top++] = 278;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1233;} + {stack[top++] = 278;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1246;} + {stack[top++] = 278;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1256;} + {stack[top++] = 278;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1295;} + {stack[top++] = 278;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1321;} + {stack[top++] = 278;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1324;} + {stack[top++] = 278;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1335;} + {stack[top++] = 278;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 272;goto st1337;} + {stack[top++] = 278;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1366;} + {stack[top++] = 278;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1379;} + {stack[top++] = 278;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1392;} + {stack[top++] = 278;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1398;} + {stack[top++] = 278;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1416;} + {stack[top++] = 278;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1411;} + {stack[top++] = 278;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1429;} + {stack[top++] = 278;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1435;} + {stack[top++] = 278;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1441;} + {stack[top++] = 278;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1449;} + {stack[top++] = 278;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1457;} + {stack[top++] = 278;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 272;goto st1463;} + {stack[top++] = 278;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st272; -st272: + goto st278; +st278: if ( ++p == pe ) - goto _test_eof272; -case 272: + goto _test_eof278; +case 278: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38462,10 +39130,10 @@ case 272: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr938; - case 32: goto tr938; - case 40: goto tr939; - case 41: goto tr940; + case 9: goto tr952; + case 32: goto tr952; + case 40: goto tr953; + case 41: goto tr954; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -38504,13 +39172,13 @@ case 272: case 122: goto tr22; case 1802: goto tr89; case 1851: goto tr90; - case 2058: goto tr941; - case 2107: goto tr942; + case 2058: goto tr955; + case 2107: goto tr956; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; goto tr120; -tr937: +tr951: { s->r_owner_length = s->dname_tmp_length; } @@ -38526,98 +39194,99 @@ tr937: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 273;goto st1071;} + {stack[top++] = 279;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 273;goto st1073;} + {stack[top++] = 279;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 273;goto st1075;} + {stack[top++] = 279;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 273;goto st1107;} + {stack[top++] = 279;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 273;goto st1112;} + {stack[top++] = 279;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 273;goto st1117;} + {stack[top++] = 279;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 273;goto st1122;} + {stack[top++] = 279;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 273;goto st1126;} + {stack[top++] = 279;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 273;goto st1128;} + {stack[top++] = 279;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 273;goto st1183;} + {stack[top++] = 279;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 273;goto st1194;} + {stack[top++] = 279;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 273;goto st1211;} + {stack[top++] = 279;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 273;goto st1222;} + {stack[top++] = 279;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 273;goto st1233;} + {stack[top++] = 279;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 273;goto st1246;} + {stack[top++] = 279;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 273;goto st1256;} + {stack[top++] = 279;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 273;goto st1295;} + {stack[top++] = 279;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 273;goto st1321;} + {stack[top++] = 279;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 273;goto st1324;} + {stack[top++] = 279;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 273;goto st1335;} + {stack[top++] = 279;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 273;goto st1337;} + {stack[top++] = 279;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 273;goto st1366;} + {stack[top++] = 279;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 273;goto st1379;} + {stack[top++] = 279;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 273;goto st1392;} + {stack[top++] = 279;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 273;goto st1398;} + {stack[top++] = 279;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 273;goto st1416;} + {stack[top++] = 279;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 273;goto st1411;} + {stack[top++] = 279;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 273;goto st1429;} + {stack[top++] = 279;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 273;goto st1435;} + {stack[top++] = 279;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 273;goto st1441;} + {stack[top++] = 279;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 273;goto st1449;} + {stack[top++] = 279;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 273;goto st1457;} + {stack[top++] = 279;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 273;goto st1463;} + {stack[top++] = 279;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st273; -st273: + goto st279; +st279: if ( ++p == pe ) - goto _test_eof273; -case 273: + goto _test_eof279; +case 279: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -38655,24 +39324,24 @@ case 273: case 1832: goto tr87; case 1833: goto tr88; case 1851: goto tr90; - case 2057: goto tr943; - case 2058: goto tr944; - case 2080: goto tr943; - case 2088: goto tr945; - case 2089: goto tr946; - case 2107: goto tr947; + case 2057: goto tr957; + case 2058: goto tr958; + case 2080: goto tr957; + case 2088: goto tr959; + case 2089: goto tr960; + case 2107: goto tr961; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr806; + goto tr820; goto tr85; -tr948: +tr962: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st274; -tr943: + goto st280; +tr957: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -38682,8 +39351,8 @@ tr943: s->buffer[0] = 0; s->buffer_length = 0; } - goto st274; -tr945: + goto st280; +tr959: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -38696,12 +39365,12 @@ tr945: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st274; -tr946: + goto st280; +tr960: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -38714,12 +39383,12 @@ tr946: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st274; -tr949: + goto st280; +tr963: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -38728,12 +39397,12 @@ tr949: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st274; -tr950: + goto st280; +tr964: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -38742,15 +39411,15 @@ tr950: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st274; -st274: + goto st280; +st280: if ( ++p == pe ) - goto _test_eof274; -case 274: + goto _test_eof280; +case 280: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -38788,17 +39457,17 @@ case 274: case 1832: goto tr93; case 1833: goto tr94; case 1851: goto tr96; - case 2057: goto tr948; - case 2058: goto tr873; - case 2080: goto tr948; - case 2088: goto tr949; - case 2089: goto tr950; - case 2107: goto tr951; + case 2057: goto tr962; + case 2058: goto tr887; + case 2080: goto tr962; + case 2088: goto tr963; + case 2089: goto tr964; + case 2107: goto tr965; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr806; + goto tr820; goto tr91; -tr887: +tr901: { s->buffer_length = 0; } @@ -38806,95 +39475,96 @@ tr887: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 275;goto st1071;} + {stack[top++] = 281;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 275;goto st1073;} + {stack[top++] = 281;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 275;goto st1075;} + {stack[top++] = 281;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 275;goto st1107;} + {stack[top++] = 281;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 275;goto st1112;} + {stack[top++] = 281;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 275;goto st1117;} + {stack[top++] = 281;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 275;goto st1122;} + {stack[top++] = 281;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 275;goto st1126;} + {stack[top++] = 281;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 275;goto st1128;} + {stack[top++] = 281;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 275;goto st1183;} + {stack[top++] = 281;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 275;goto st1194;} + {stack[top++] = 281;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 275;goto st1211;} + {stack[top++] = 281;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 275;goto st1222;} + {stack[top++] = 281;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 275;goto st1233;} + {stack[top++] = 281;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 275;goto st1246;} + {stack[top++] = 281;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 275;goto st1256;} + {stack[top++] = 281;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 275;goto st1295;} + {stack[top++] = 281;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 275;goto st1321;} + {stack[top++] = 281;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 275;goto st1324;} + {stack[top++] = 281;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 275;goto st1335;} + {stack[top++] = 281;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 275;goto st1337;} + {stack[top++] = 281;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 275;goto st1366;} + {stack[top++] = 281;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 275;goto st1379;} + {stack[top++] = 281;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 275;goto st1392;} + {stack[top++] = 281;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 275;goto st1398;} + {stack[top++] = 281;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 275;goto st1416;} + {stack[top++] = 281;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 275;goto st1411;} + {stack[top++] = 281;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 275;goto st1429;} + {stack[top++] = 281;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 275;goto st1435;} + {stack[top++] = 281;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 275;goto st1441;} + {stack[top++] = 281;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 275;goto st1449;} + {stack[top++] = 281;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 275;goto st1457;} + {stack[top++] = 281;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 275;goto st1463;} + {stack[top++] = 281;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st275; -tr1018: + goto st281; +tr1032: { s->buffer_length = 0; } @@ -38902,99 +39572,100 @@ tr1018: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 275;goto st1071;} + {stack[top++] = 281;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 275;goto st1073;} + {stack[top++] = 281;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 275;goto st1075;} + {stack[top++] = 281;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 275;goto st1107;} + {stack[top++] = 281;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 275;goto st1112;} + {stack[top++] = 281;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 275;goto st1117;} + {stack[top++] = 281;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 275;goto st1122;} + {stack[top++] = 281;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 275;goto st1126;} + {stack[top++] = 281;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 275;goto st1128;} + {stack[top++] = 281;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 275;goto st1183;} + {stack[top++] = 281;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 275;goto st1194;} + {stack[top++] = 281;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 275;goto st1211;} + {stack[top++] = 281;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 275;goto st1222;} + {stack[top++] = 281;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 275;goto st1233;} + {stack[top++] = 281;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 275;goto st1246;} + {stack[top++] = 281;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 275;goto st1256;} + {stack[top++] = 281;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 275;goto st1295;} + {stack[top++] = 281;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 275;goto st1321;} + {stack[top++] = 281;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 275;goto st1324;} + {stack[top++] = 281;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 275;goto st1335;} + {stack[top++] = 281;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 275;goto st1337;} + {stack[top++] = 281;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 275;goto st1366;} + {stack[top++] = 281;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 275;goto st1379;} + {stack[top++] = 281;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 275;goto st1392;} + {stack[top++] = 281;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 275;goto st1398;} + {stack[top++] = 281;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 275;goto st1416;} + {stack[top++] = 281;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 275;goto st1411;} + {stack[top++] = 281;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 275;goto st1429;} + {stack[top++] = 281;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 275;goto st1435;} + {stack[top++] = 281;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 275;goto st1441;} + {stack[top++] = 281;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 275;goto st1449;} + {stack[top++] = 281;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 275;goto st1457;} + {stack[top++] = 281;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 275;goto st1463;} + {stack[top++] = 281;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st275; -tr926: + goto st281; +tr940: { s->r_owner_length = s->dname_tmp_length; } @@ -39009,99 +39680,100 @@ tr926: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 275;goto st1071;} + {stack[top++] = 281;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 275;goto st1073;} + {stack[top++] = 281;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 275;goto st1075;} + {stack[top++] = 281;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 275;goto st1107;} + {stack[top++] = 281;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 275;goto st1112;} + {stack[top++] = 281;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 275;goto st1117;} + {stack[top++] = 281;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 275;goto st1122;} + {stack[top++] = 281;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 275;goto st1126;} + {stack[top++] = 281;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 275;goto st1128;} + {stack[top++] = 281;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 275;goto st1183;} + {stack[top++] = 281;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 275;goto st1194;} + {stack[top++] = 281;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 275;goto st1211;} + {stack[top++] = 281;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 275;goto st1222;} + {stack[top++] = 281;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 275;goto st1233;} + {stack[top++] = 281;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 275;goto st1246;} + {stack[top++] = 281;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 275;goto st1256;} + {stack[top++] = 281;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 275;goto st1295;} + {stack[top++] = 281;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 275;goto st1321;} + {stack[top++] = 281;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 275;goto st1324;} + {stack[top++] = 281;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 275;goto st1335;} + {stack[top++] = 281;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 275;goto st1337;} + {stack[top++] = 281;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 275;goto st1366;} + {stack[top++] = 281;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 275;goto st1379;} + {stack[top++] = 281;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 275;goto st1392;} + {stack[top++] = 281;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 275;goto st1398;} + {stack[top++] = 281;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 275;goto st1416;} + {stack[top++] = 281;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 275;goto st1411;} + {stack[top++] = 281;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 275;goto st1429;} + {stack[top++] = 281;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 275;goto st1435;} + {stack[top++] = 281;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 275;goto st1441;} + {stack[top++] = 281;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 275;goto st1449;} + {stack[top++] = 281;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 275;goto st1457;} + {stack[top++] = 281;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 275;goto st1463;} + {stack[top++] = 281;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st275; -tr4244: + goto st281; +tr4279: { s->buffer_length = 0; } @@ -39109,91 +39781,92 @@ tr4244: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 275;goto st1071;} + {stack[top++] = 281;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 275;goto st1073;} + {stack[top++] = 281;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 275;goto st1075;} + {stack[top++] = 281;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 275;goto st1107;} + {stack[top++] = 281;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 275;goto st1112;} + {stack[top++] = 281;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 275;goto st1117;} + {stack[top++] = 281;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 275;goto st1122;} + {stack[top++] = 281;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 275;goto st1126;} + {stack[top++] = 281;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 275;goto st1128;} + {stack[top++] = 281;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 275;goto st1183;} + {stack[top++] = 281;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 275;goto st1194;} + {stack[top++] = 281;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 275;goto st1211;} + {stack[top++] = 281;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 275;goto st1222;} + {stack[top++] = 281;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 275;goto st1233;} + {stack[top++] = 281;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 275;goto st1246;} + {stack[top++] = 281;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 275;goto st1256;} + {stack[top++] = 281;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 275;goto st1295;} + {stack[top++] = 281;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 275;goto st1321;} + {stack[top++] = 281;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 275;goto st1324;} + {stack[top++] = 281;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 275;goto st1335;} + {stack[top++] = 281;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 275;goto st1337;} + {stack[top++] = 281;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 275;goto st1366;} + {stack[top++] = 281;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 275;goto st1379;} + {stack[top++] = 281;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 275;goto st1392;} + {stack[top++] = 281;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 275;goto st1398;} + {stack[top++] = 281;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 275;goto st1416;} + {stack[top++] = 281;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 275;goto st1411;} + {stack[top++] = 281;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 275;goto st1429;} + {stack[top++] = 281;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 275;goto st1435;} + {stack[top++] = 281;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 275;goto st1441;} + {stack[top++] = 281;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 275;goto st1449;} + {stack[top++] = 281;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 275;goto st1457;} + {stack[top++] = 281;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 275;goto st1463;} + {stack[top++] = 281;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { @@ -39203,14 +39876,14 @@ tr4244: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st275; -st275: + goto st281; +st281: if ( ++p == pe ) - goto _test_eof275; -case 275: + goto _test_eof281; +case 281: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -39242,33 +39915,33 @@ case 275: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr874; - case 1802: goto tr877; - case 1824: goto tr874; - case 1832: goto tr875; - case 1833: goto tr876; - case 1851: goto tr878; - case 2057: goto tr952; - case 2058: goto tr944; - case 2080: goto tr952; - case 2088: goto tr953; - case 2089: goto tr954; - case 2107: goto tr955; + case 1801: goto tr888; + case 1802: goto tr891; + case 1824: goto tr888; + case 1832: goto tr889; + case 1833: goto tr890; + case 1851: goto tr892; + case 2057: goto tr966; + case 2058: goto tr958; + case 2080: goto tr966; + case 2088: goto tr967; + case 2089: goto tr968; + case 2107: goto tr969; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr888; + goto tr902; } else if ( _widec >= 1664 ) goto tr97; goto tr85; -tr956: +tr970: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st276; -tr952: + goto st282; +tr966: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39278,8 +39951,8 @@ tr952: s->buffer[0] = 0; s->buffer_length = 0; } - goto st276; -tr953: + goto st282; +tr967: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39292,12 +39965,12 @@ tr953: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st276; -tr954: + goto st282; +tr968: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39310,12 +39983,12 @@ tr954: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st276; -tr957: + goto st282; +tr971: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39324,12 +39997,12 @@ tr957: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st276; -tr958: + goto st282; +tr972: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39338,15 +40011,15 @@ tr958: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st276; -st276: + goto st282; +st282: if ( ++p == pe ) - goto _test_eof276; -case 276: + goto _test_eof282; +case 282: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -39378,47 +40051,47 @@ case 276: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr879; + case 1801: goto tr893; case 1802: goto tr98; - case 1824: goto tr879; - case 1832: goto tr880; - case 1833: goto tr881; - case 1851: goto tr882; - case 2057: goto tr956; - case 2058: goto tr873; - case 2080: goto tr956; - case 2088: goto tr957; - case 2089: goto tr958; - case 2107: goto tr959; + case 1824: goto tr893; + case 1832: goto tr894; + case 1833: goto tr895; + case 1851: goto tr896; + case 2057: goto tr970; + case 2058: goto tr887; + case 2080: goto tr970; + case 2088: goto tr971; + case 2089: goto tr972; + case 2107: goto tr973; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr888; + goto tr902; } else if ( _widec >= 1664 ) goto tr97; goto tr85; -st277: +st283: if ( ++p == pe ) - goto _test_eof277; -case 277: + goto _test_eof283; +case 283: switch( (*p) ) { - case 65: goto st278; - case 97: goto st278; + case 65: goto st284; + case 97: goto st284; } goto tr39; -st278: +st284: if ( ++p == pe ) - goto _test_eof278; -case 278: + goto _test_eof284; +case 284: switch( (*p) ) { - case 65: goto st279; - case 97: goto st279; + case 65: goto st285; + case 97: goto st285; } goto tr39; -st279: +st285: if ( ++p == pe ) - goto _test_eof279; -case 279: + goto _test_eof285; +case 285: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39436,49 +40109,49 @@ case 279: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr962; - case 32: goto tr962; - case 40: goto tr963; - case 41: goto tr964; - case 3082: goto tr965; - case 3131: goto tr966; - case 3338: goto tr967; - case 3387: goto tr967; - case 3594: goto tr968; - case 3643: goto tr969; + case 9: goto tr976; + case 32: goto tr976; + case 40: goto tr977; + case 41: goto tr978; + case 3082: goto tr979; + case 3131: goto tr980; + case 3338: goto tr981; + case 3387: goto tr981; + case 3594: goto tr982; + case 3643: goto tr983; } goto tr63; -st280: +st286: if ( ++p == pe ) - goto _test_eof280; -case 280: + goto _test_eof286; +case 286: switch( (*p) ) { - case 83: goto st281; - case 115: goto st281; + case 83: goto st287; + case 115: goto st287; } goto tr39; -st281: +st287: if ( ++p == pe ) - goto _test_eof281; -case 281: + goto _test_eof287; +case 287: switch( (*p) ) { - case 68: goto st282; - case 100: goto st282; + case 68: goto st288; + case 100: goto st288; } goto tr39; -st282: +st288: if ( ++p == pe ) - goto _test_eof282; -case 282: + goto _test_eof288; +case 288: switch( (*p) ) { - case 66: goto st283; - case 98: goto st283; + case 66: goto st289; + case 98: goto st289; } goto tr39; -st283: +st289: if ( ++p == pe ) - goto _test_eof283; -case 283: + goto _test_eof289; +case 289: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39496,31 +40169,31 @@ case 283: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr973; - case 32: goto tr973; - case 40: goto tr974; - case 41: goto tr975; - case 3082: goto tr976; - case 3131: goto tr977; - case 3338: goto tr978; - case 3387: goto tr978; - case 3594: goto tr979; - case 3643: goto tr980; + case 9: goto tr987; + case 32: goto tr987; + case 40: goto tr988; + case 41: goto tr989; + case 3082: goto tr990; + case 3131: goto tr991; + case 3338: goto tr992; + case 3387: goto tr992; + case 3594: goto tr993; + case 3643: goto tr994; } goto tr63; -st284: +st290: if ( ++p == pe ) - goto _test_eof284; -case 284: + goto _test_eof290; +case 290: switch( (*p) ) { - case 76: goto st285; - case 108: goto st285; + case 76: goto st291; + case 108: goto st291; } goto tr39; -st285: +st291: if ( ++p == pe ) - goto _test_eof285; -case 285: + goto _test_eof291; +case 291: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39538,49 +40211,49 @@ case 285: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr982; - case 32: goto tr982; - case 40: goto tr983; - case 41: goto tr984; - case 3082: goto tr985; - case 3131: goto tr986; - case 3338: goto tr987; - case 3387: goto tr987; - case 3594: goto tr988; - case 3643: goto tr989; + case 9: goto tr996; + case 32: goto tr996; + case 40: goto tr997; + case 41: goto tr998; + case 3082: goto tr999; + case 3131: goto tr1000; + case 3338: goto tr1001; + case 3387: goto tr1001; + case 3594: goto tr1002; + case 3643: goto tr1003; } goto tr63; tr143: { s->buffer_length = 0; } - goto st286; -tr990: + goto st292; +tr1004: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st286; -tr4172: + goto st292; +tr4207: { s->buffer_length = 0; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st286; -st286: + goto st292; +st292: if ( ++p == pe ) - goto _test_eof286; -case 286: + goto _test_eof292; +case 292: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -39600,105 +40273,106 @@ case 286: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr783; - case 2058: goto tr991; + case 1802: goto tr797; + case 2058: goto tr1005; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr990; + goto tr1004; } else if ( _widec >= 1664 ) - goto tr782; + goto tr796; goto tr85; -tr4174: +tr4209: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 287;goto st1071;} + {stack[top++] = 293;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 287;goto st1073;} + {stack[top++] = 293;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 287;goto st1075;} + {stack[top++] = 293;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 287;goto st1107;} + {stack[top++] = 293;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 287;goto st1112;} + {stack[top++] = 293;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 287;goto st1117;} + {stack[top++] = 293;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 287;goto st1122;} + {stack[top++] = 293;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 287;goto st1126;} + {stack[top++] = 293;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 287;goto st1128;} + {stack[top++] = 293;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 287;goto st1183;} + {stack[top++] = 293;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 287;goto st1194;} + {stack[top++] = 293;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 287;goto st1211;} + {stack[top++] = 293;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 287;goto st1222;} + {stack[top++] = 293;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 287;goto st1233;} + {stack[top++] = 293;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 287;goto st1246;} + {stack[top++] = 293;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 287;goto st1256;} + {stack[top++] = 293;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 287;goto st1295;} + {stack[top++] = 293;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 287;goto st1321;} + {stack[top++] = 293;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 287;goto st1324;} + {stack[top++] = 293;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 287;goto st1335;} + {stack[top++] = 293;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 287;goto st1337;} + {stack[top++] = 293;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 287;goto st1366;} + {stack[top++] = 293;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 287;goto st1379;} + {stack[top++] = 293;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 287;goto st1392;} + {stack[top++] = 293;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 287;goto st1398;} + {stack[top++] = 293;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 287;goto st1416;} + {stack[top++] = 293;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 287;goto st1411;} + {stack[top++] = 293;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 287;goto st1429;} + {stack[top++] = 293;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 287;goto st1435;} + {stack[top++] = 293;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 287;goto st1441;} + {stack[top++] = 293;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 287;goto st1449;} + {stack[top++] = 293;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 287;goto st1457;} + {stack[top++] = 293;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 287;goto st1463;} + {stack[top++] = 293;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { @@ -39708,107 +40382,108 @@ tr4174: { s->buffer_length = 0; } - goto st287; + goto st293; tr145: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 287;goto st1071;} + {stack[top++] = 293;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 287;goto st1073;} + {stack[top++] = 293;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 287;goto st1075;} + {stack[top++] = 293;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 287;goto st1107;} + {stack[top++] = 293;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 287;goto st1112;} + {stack[top++] = 293;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 287;goto st1117;} + {stack[top++] = 293;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 287;goto st1122;} + {stack[top++] = 293;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 287;goto st1126;} + {stack[top++] = 293;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 287;goto st1128;} + {stack[top++] = 293;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 287;goto st1183;} + {stack[top++] = 293;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 287;goto st1194;} + {stack[top++] = 293;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 287;goto st1211;} + {stack[top++] = 293;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 287;goto st1222;} + {stack[top++] = 293;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 287;goto st1233;} + {stack[top++] = 293;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 287;goto st1246;} + {stack[top++] = 293;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 287;goto st1256;} + {stack[top++] = 293;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 287;goto st1295;} + {stack[top++] = 293;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 287;goto st1321;} + {stack[top++] = 293;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 287;goto st1324;} + {stack[top++] = 293;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 287;goto st1335;} + {stack[top++] = 293;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 287;goto st1337;} + {stack[top++] = 293;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 287;goto st1366;} + {stack[top++] = 293;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 287;goto st1379;} + {stack[top++] = 293;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 287;goto st1392;} + {stack[top++] = 293;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 287;goto st1398;} + {stack[top++] = 293;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 287;goto st1416;} + {stack[top++] = 293;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 287;goto st1411;} + {stack[top++] = 293;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 287;goto st1429;} + {stack[top++] = 293;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 287;goto st1435;} + {stack[top++] = 293;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 287;goto st1441;} + {stack[top++] = 293;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 287;goto st1449;} + {stack[top++] = 293;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 287;goto st1457;} + {stack[top++] = 293;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 287;goto st1463;} + {stack[top++] = 293;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->buffer_length = 0; } - goto st287; -st287: + goto st293; +st293: if ( ++p == pe ) - goto _test_eof287; -case 287: + goto _test_eof293; +case 293: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39822,32 +40497,32 @@ case 287: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr992; - case 32: goto tr992; - case 40: goto tr993; - case 41: goto tr994; - case 1802: goto tr995; - case 1851: goto tr878; - case 2058: goto tr995; - case 2107: goto tr878; + case 9: goto tr1006; + case 32: goto tr1006; + case 40: goto tr1007; + case 41: goto tr1008; + case 1802: goto tr1009; + case 1851: goto tr892; + case 2058: goto tr1009; + case 2107: goto tr892; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr782; + goto tr796; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr782; + goto tr796; } else - goto tr782; + goto tr796; goto tr85; -tr996: +tr1010: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st288; -tr992: + goto st294; +tr1006: { s->buffer[0] = 0; s->buffer_length = 0; @@ -39857,8 +40532,8 @@ tr992: s->buffer[s->buffer_length++] = (*p); } } - goto st288; -tr993: + goto st294; +tr1007: { s->buffer[0] = 0; s->buffer_length = 0; @@ -39866,7 +40541,7 @@ tr993: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -39875,8 +40550,8 @@ tr993: s->buffer[s->buffer_length++] = (*p); } } - goto st288; -tr994: + goto st294; +tr1008: { s->buffer[0] = 0; s->buffer_length = 0; @@ -39884,7 +40559,7 @@ tr994: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -39893,12 +40568,12 @@ tr994: s->buffer[s->buffer_length++] = (*p); } } - goto st288; -tr997: + goto st294; +tr1011: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -39907,12 +40582,12 @@ tr997: s->buffer[s->buffer_length++] = (*p); } } - goto st288; -tr998: + goto st294; +tr1012: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -39921,11 +40596,11 @@ tr998: s->buffer[s->buffer_length++] = (*p); } } - goto st288; -st288: + goto st294; +st294: if ( ++p == pe ) - goto _test_eof288; -case 288: + goto _test_eof294; +case 294: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39939,23 +40614,23 @@ case 288: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr996; - case 32: goto tr996; - case 40: goto tr997; - case 41: goto tr998; - case 1802: goto tr999; - case 1851: goto tr882; - case 2058: goto tr999; - case 2107: goto tr882; + case 9: goto tr1010; + case 32: goto tr1010; + case 40: goto tr1011; + case 41: goto tr1012; + case 1802: goto tr1013; + case 1851: goto tr896; + case 2058: goto tr1013; + case 2107: goto tr896; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr782; + goto tr796; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr782; + goto tr796; } else - goto tr782; + goto tr796; goto tr91; tr147: { @@ -39965,95 +40640,96 @@ tr147: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 289;goto st1071;} + {stack[top++] = 295;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 289;goto st1073;} + {stack[top++] = 295;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 289;goto st1075;} + {stack[top++] = 295;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 289;goto st1107;} + {stack[top++] = 295;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 289;goto st1112;} + {stack[top++] = 295;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 289;goto st1117;} + {stack[top++] = 295;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 289;goto st1122;} + {stack[top++] = 295;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 289;goto st1126;} + {stack[top++] = 295;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 289;goto st1128;} + {stack[top++] = 295;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 289;goto st1183;} + {stack[top++] = 295;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 289;goto st1194;} + {stack[top++] = 295;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 289;goto st1211;} + {stack[top++] = 295;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 289;goto st1222;} + {stack[top++] = 295;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 289;goto st1233;} + {stack[top++] = 295;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 289;goto st1246;} + {stack[top++] = 295;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 289;goto st1256;} + {stack[top++] = 295;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 289;goto st1295;} + {stack[top++] = 295;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 289;goto st1321;} + {stack[top++] = 295;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 289;goto st1324;} + {stack[top++] = 295;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 289;goto st1335;} + {stack[top++] = 295;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 289;goto st1337;} + {stack[top++] = 295;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 289;goto st1366;} + {stack[top++] = 295;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 289;goto st1379;} + {stack[top++] = 295;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 289;goto st1392;} + {stack[top++] = 295;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 289;goto st1398;} + {stack[top++] = 295;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 289;goto st1416;} + {stack[top++] = 295;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 289;goto st1411;} + {stack[top++] = 295;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 289;goto st1429;} + {stack[top++] = 295;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 289;goto st1435;} + {stack[top++] = 295;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 289;goto st1441;} + {stack[top++] = 295;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 289;goto st1449;} + {stack[top++] = 295;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 289;goto st1457;} + {stack[top++] = 295;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 289;goto st1463;} + {stack[top++] = 295;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st289; -tr4176: + goto st295; +tr4211: { s->buffer_length = 0; } @@ -40061,108 +40737,109 @@ tr4176: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 289;goto st1071;} + {stack[top++] = 295;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 289;goto st1073;} + {stack[top++] = 295;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 289;goto st1075;} + {stack[top++] = 295;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 289;goto st1107;} + {stack[top++] = 295;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 289;goto st1112;} + {stack[top++] = 295;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 289;goto st1117;} + {stack[top++] = 295;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 289;goto st1122;} + {stack[top++] = 295;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 289;goto st1126;} + {stack[top++] = 295;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 289;goto st1128;} + {stack[top++] = 295;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 289;goto st1183;} + {stack[top++] = 295;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 289;goto st1194;} + {stack[top++] = 295;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 289;goto st1211;} + {stack[top++] = 295;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 289;goto st1222;} + {stack[top++] = 295;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 289;goto st1233;} + {stack[top++] = 295;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 289;goto st1246;} + {stack[top++] = 295;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 289;goto st1256;} + {stack[top++] = 295;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 289;goto st1295;} + {stack[top++] = 295;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 289;goto st1321;} + {stack[top++] = 295;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 289;goto st1324;} + {stack[top++] = 295;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 289;goto st1335;} + {stack[top++] = 295;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 289;goto st1337;} + {stack[top++] = 295;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 289;goto st1366;} + {stack[top++] = 295;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 289;goto st1379;} + {stack[top++] = 295;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 289;goto st1392;} + {stack[top++] = 295;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 289;goto st1398;} + {stack[top++] = 295;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 289;goto st1416;} + {stack[top++] = 295;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 289;goto st1411;} + {stack[top++] = 295;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 289;goto st1429;} + {stack[top++] = 295;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 289;goto st1435;} + {stack[top++] = 295;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 289;goto st1441;} + {stack[top++] = 295;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 289;goto st1449;} + {stack[top++] = 295;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 289;goto st1457;} + {stack[top++] = 295;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 289;goto st1463;} + {stack[top++] = 295;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st289; -st289: + goto st295; +st295: if ( ++p == pe ) - goto _test_eof289; -case 289: + goto _test_eof295; +case 295: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -40194,33 +40871,33 @@ case 289: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr992; - case 1802: goto tr995; - case 1824: goto tr992; - case 1832: goto tr993; - case 1833: goto tr994; - case 1851: goto tr878; - case 2057: goto tr1000; - case 2058: goto tr944; - case 2080: goto tr1000; - case 2088: goto tr1001; - case 2089: goto tr1002; - case 2107: goto tr955; + case 1801: goto tr1006; + case 1802: goto tr1009; + case 1824: goto tr1006; + case 1832: goto tr1007; + case 1833: goto tr1008; + case 1851: goto tr892; + case 2057: goto tr1014; + case 2058: goto tr958; + case 2080: goto tr1014; + case 2088: goto tr1015; + case 2089: goto tr1016; + case 2107: goto tr969; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr990; + goto tr1004; } else if ( _widec >= 1664 ) - goto tr782; + goto tr796; goto tr85; -tr1003: +tr1017: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st290; -tr1000: + goto st296; +tr1014: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40230,8 +40907,8 @@ tr1000: s->buffer[0] = 0; s->buffer_length = 0; } - goto st290; -tr1001: + goto st296; +tr1015: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40244,12 +40921,12 @@ tr1001: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st290; -tr1002: + goto st296; +tr1016: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40262,12 +40939,12 @@ tr1002: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st290; -tr1004: + goto st296; +tr1018: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40276,12 +40953,12 @@ tr1004: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st290; -tr1005: + goto st296; +tr1019: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40290,15 +40967,15 @@ tr1005: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st290; -st290: + goto st296; +st296: if ( ++p == pe ) - goto _test_eof290; -case 290: + goto _test_eof296; +case 296: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -40330,24 +41007,24 @@ case 290: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr996; - case 1802: goto tr999; - case 1824: goto tr996; - case 1832: goto tr997; - case 1833: goto tr998; - case 1851: goto tr882; - case 2057: goto tr1003; - case 2058: goto tr873; - case 2080: goto tr1003; - case 2088: goto tr1004; - case 2089: goto tr1005; - case 2107: goto tr959; + case 1801: goto tr1010; + case 1802: goto tr1013; + case 1824: goto tr1010; + case 1832: goto tr1011; + case 1833: goto tr1012; + case 1851: goto tr896; + case 2057: goto tr1017; + case 2058: goto tr887; + case 2080: goto tr1017; + case 2088: goto tr1018; + case 2089: goto tr1019; + case 2107: goto tr973; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr990; + goto tr1004; } else if ( _widec >= 1664 ) - goto tr782; + goto tr796; goto tr85; tr116: { @@ -40357,94 +41034,95 @@ tr116: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 291;goto st1071;} + {stack[top++] = 297;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 291;goto st1073;} + {stack[top++] = 297;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 291;goto st1075;} + {stack[top++] = 297;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 291;goto st1107;} + {stack[top++] = 297;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 291;goto st1112;} + {stack[top++] = 297;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 291;goto st1117;} + {stack[top++] = 297;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 291;goto st1122;} + {stack[top++] = 297;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 291;goto st1126;} + {stack[top++] = 297;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 291;goto st1128;} + {stack[top++] = 297;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 291;goto st1183;} + {stack[top++] = 297;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 291;goto st1194;} + {stack[top++] = 297;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 291;goto st1211;} + {stack[top++] = 297;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 291;goto st1222;} + {stack[top++] = 297;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 291;goto st1233;} + {stack[top++] = 297;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 291;goto st1246;} + {stack[top++] = 297;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 291;goto st1256;} + {stack[top++] = 297;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 291;goto st1295;} + {stack[top++] = 297;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 291;goto st1321;} + {stack[top++] = 297;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 291;goto st1324;} + {stack[top++] = 297;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 291;goto st1335;} + {stack[top++] = 297;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 291;goto st1337;} + {stack[top++] = 297;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 291;goto st1366;} + {stack[top++] = 297;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 291;goto st1379;} + {stack[top++] = 297;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 291;goto st1392;} + {stack[top++] = 297;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 291;goto st1398;} + {stack[top++] = 297;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 291;goto st1416;} + {stack[top++] = 297;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 291;goto st1411;} + {stack[top++] = 297;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 291;goto st1429;} + {stack[top++] = 297;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 291;goto st1435;} + {stack[top++] = 297;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 291;goto st1441;} + {stack[top++] = 297;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 291;goto st1449;} + {stack[top++] = 297;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 291;goto st1457;} + {stack[top++] = 297;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 291;goto st1463;} + {stack[top++] = 297;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st291; + goto st297; tr109: { s->buffer_length = 0; @@ -40453,99 +41131,100 @@ tr109: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 291;goto st1071;} + {stack[top++] = 297;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 291;goto st1073;} + {stack[top++] = 297;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 291;goto st1075;} + {stack[top++] = 297;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 291;goto st1107;} + {stack[top++] = 297;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 291;goto st1112;} + {stack[top++] = 297;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 291;goto st1117;} + {stack[top++] = 297;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 291;goto st1122;} + {stack[top++] = 297;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 291;goto st1126;} + {stack[top++] = 297;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 291;goto st1128;} + {stack[top++] = 297;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 291;goto st1183;} + {stack[top++] = 297;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 291;goto st1194;} + {stack[top++] = 297;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 291;goto st1211;} + {stack[top++] = 297;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 291;goto st1222;} + {stack[top++] = 297;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 291;goto st1233;} + {stack[top++] = 297;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 291;goto st1246;} + {stack[top++] = 297;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 291;goto st1256;} + {stack[top++] = 297;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 291;goto st1295;} + {stack[top++] = 297;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 291;goto st1321;} + {stack[top++] = 297;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 291;goto st1324;} + {stack[top++] = 297;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 291;goto st1335;} + {stack[top++] = 297;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 291;goto st1337;} + {stack[top++] = 297;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 291;goto st1366;} + {stack[top++] = 297;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 291;goto st1379;} + {stack[top++] = 297;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 291;goto st1392;} + {stack[top++] = 297;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 291;goto st1398;} + {stack[top++] = 297;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 291;goto st1416;} + {stack[top++] = 297;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 291;goto st1411;} + {stack[top++] = 297;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 291;goto st1429;} + {stack[top++] = 297;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 291;goto st1435;} + {stack[top++] = 297;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 291;goto st1441;} + {stack[top++] = 297;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 291;goto st1449;} + {stack[top++] = 297;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 291;goto st1457;} + {stack[top++] = 297;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 291;goto st1463;} + {stack[top++] = 297;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st291; -tr861: + goto st297; +tr875: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -40557,102 +41236,103 @@ tr861: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 291;goto st1071;} + {stack[top++] = 297;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 291;goto st1073;} + {stack[top++] = 297;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 291;goto st1075;} + {stack[top++] = 297;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 291;goto st1107;} + {stack[top++] = 297;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 291;goto st1112;} + {stack[top++] = 297;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 291;goto st1117;} + {stack[top++] = 297;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 291;goto st1122;} + {stack[top++] = 297;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 291;goto st1126;} + {stack[top++] = 297;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 291;goto st1128;} + {stack[top++] = 297;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 291;goto st1183;} + {stack[top++] = 297;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 291;goto st1194;} + {stack[top++] = 297;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 291;goto st1211;} + {stack[top++] = 297;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 291;goto st1222;} + {stack[top++] = 297;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 291;goto st1233;} + {stack[top++] = 297;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 291;goto st1246;} + {stack[top++] = 297;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 291;goto st1256;} + {stack[top++] = 297;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 291;goto st1295;} + {stack[top++] = 297;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 291;goto st1321;} + {stack[top++] = 297;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 291;goto st1324;} + {stack[top++] = 297;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 291;goto st1335;} + {stack[top++] = 297;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 291;goto st1337;} + {stack[top++] = 297;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 291;goto st1366;} + {stack[top++] = 297;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 291;goto st1379;} + {stack[top++] = 297;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 291;goto st1392;} + {stack[top++] = 297;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 291;goto st1398;} + {stack[top++] = 297;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 291;goto st1416;} + {stack[top++] = 297;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 291;goto st1411;} + {stack[top++] = 297;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 291;goto st1429;} + {stack[top++] = 297;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 291;goto st1435;} + {stack[top++] = 297;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 291;goto st1441;} + {stack[top++] = 297;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 291;goto st1449;} + {stack[top++] = 297;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 291;goto st1457;} + {stack[top++] = 297;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 291;goto st1463;} + {stack[top++] = 297;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st291; -st291: + goto st297; +st297: if ( ++p == pe ) - goto _test_eof291; -case 291: + goto _test_eof297; +case 297: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -40684,17 +41364,17 @@ case 291: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr874; - case 1802: goto tr877; - case 1824: goto tr874; - case 1832: goto tr875; - case 1833: goto tr876; - case 1851: goto tr878; - case 2057: goto tr1006; - case 2058: goto tr877; - case 2080: goto tr1006; - case 2088: goto tr1007; - case 2089: goto tr1008; + case 1801: goto tr888; + case 1802: goto tr891; + case 1824: goto tr888; + case 1832: goto tr889; + case 1833: goto tr890; + case 1851: goto tr892; + case 2057: goto tr1020; + case 2058: goto tr891; + case 2080: goto tr1020; + case 2088: goto tr1021; + case 2089: goto tr1022; case 2107: goto tr177; } if ( _widec > 1919 ) { @@ -40703,14 +41383,14 @@ case 291: } else if ( _widec >= 1664 ) goto tr97; goto tr85; -tr1009: +tr1023: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st292; -tr1006: + goto st298; +tr1020: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40720,8 +41400,8 @@ tr1006: s->buffer[0] = 0; s->buffer_length = 0; } - goto st292; -tr1007: + goto st298; +tr1021: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40734,12 +41414,12 @@ tr1007: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st292; -tr1008: + goto st298; +tr1022: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40752,12 +41432,12 @@ tr1008: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st292; -tr1010: + goto st298; +tr1024: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40766,12 +41446,12 @@ tr1010: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st292; -tr1011: + goto st298; +tr1025: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40780,15 +41460,15 @@ tr1011: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st292; -st292: + goto st298; +st298: if ( ++p == pe ) - goto _test_eof292; -case 292: + goto _test_eof298; +case 298: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -40820,17 +41500,17 @@ case 292: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr879; + case 1801: goto tr893; case 1802: goto tr98; - case 1824: goto tr879; - case 1832: goto tr880; - case 1833: goto tr881; - case 1851: goto tr882; - case 2057: goto tr1009; + case 1824: goto tr893; + case 1832: goto tr894; + case 1833: goto tr895; + case 1851: goto tr896; + case 2057: goto tr1023; case 2058: goto tr98; - case 2080: goto tr1009; - case 2088: goto tr1010; - case 2089: goto tr1011; + case 2080: goto tr1023; + case 2088: goto tr1024; + case 2089: goto tr1025; case 2107: goto tr181; } if ( _widec > 1919 ) { @@ -40839,19 +41519,19 @@ case 292: } else if ( _widec >= 1664 ) goto tr97; goto tr85; -tr849: +tr863: { s->buffer_length = 0; } - goto st293; -tr1012: + goto st299; +tr1026: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st293; -tr842: + goto st299; +tr856: { s->r_owner_length = s->dname_tmp_length; } @@ -40862,11 +41542,11 @@ tr842: { rdata_tail = s->r_data; } - goto st293; -st293: + goto st299; +st299: if ( ++p == pe ) - goto _test_eof293; -case 293: + goto _test_eof299; +case 299: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -40886,11 +41566,11 @@ case 293: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1013; + goto tr1027; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1012; + goto tr1026; goto tr77; -tr850: +tr864: { s->line_counter++; } @@ -40898,95 +41578,96 @@ tr850: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 294;goto st1071;} + {stack[top++] = 300;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 294;goto st1073;} + {stack[top++] = 300;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 294;goto st1075;} + {stack[top++] = 300;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 294;goto st1107;} + {stack[top++] = 300;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 294;goto st1112;} + {stack[top++] = 300;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 294;goto st1117;} + {stack[top++] = 300;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 294;goto st1122;} + {stack[top++] = 300;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 294;goto st1126;} + {stack[top++] = 300;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 294;goto st1128;} + {stack[top++] = 300;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 294;goto st1183;} + {stack[top++] = 300;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 294;goto st1194;} + {stack[top++] = 300;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 294;goto st1211;} + {stack[top++] = 300;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 294;goto st1222;} + {stack[top++] = 300;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 294;goto st1233;} + {stack[top++] = 300;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 294;goto st1246;} + {stack[top++] = 300;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 294;goto st1256;} + {stack[top++] = 300;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 294;goto st1295;} + {stack[top++] = 300;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 294;goto st1321;} + {stack[top++] = 300;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 294;goto st1324;} + {stack[top++] = 300;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 294;goto st1335;} + {stack[top++] = 300;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 294;goto st1337;} + {stack[top++] = 300;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 294;goto st1366;} + {stack[top++] = 300;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 294;goto st1379;} + {stack[top++] = 300;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 294;goto st1392;} + {stack[top++] = 300;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 294;goto st1398;} + {stack[top++] = 300;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 294;goto st1416;} + {stack[top++] = 300;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 294;goto st1411;} + {stack[top++] = 300;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 294;goto st1429;} + {stack[top++] = 300;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 294;goto st1435;} + {stack[top++] = 300;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 294;goto st1441;} + {stack[top++] = 300;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 294;goto st1449;} + {stack[top++] = 300;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 294;goto st1457;} + {stack[top++] = 300;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 294;goto st1463;} + {stack[top++] = 300;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st294; -tr843: + goto st300; +tr857: { s->r_owner_length = s->dname_tmp_length; } @@ -41001,98 +41682,99 @@ tr843: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 294;goto st1071;} + {stack[top++] = 300;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 294;goto st1073;} + {stack[top++] = 300;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 294;goto st1075;} + {stack[top++] = 300;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 294;goto st1107;} + {stack[top++] = 300;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 294;goto st1112;} + {stack[top++] = 300;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 294;goto st1117;} + {stack[top++] = 300;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 294;goto st1122;} + {stack[top++] = 300;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 294;goto st1126;} + {stack[top++] = 300;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 294;goto st1128;} + {stack[top++] = 300;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 294;goto st1183;} + {stack[top++] = 300;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 294;goto st1194;} + {stack[top++] = 300;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 294;goto st1211;} + {stack[top++] = 300;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 294;goto st1222;} + {stack[top++] = 300;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 294;goto st1233;} + {stack[top++] = 300;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 294;goto st1246;} + {stack[top++] = 300;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 294;goto st1256;} + {stack[top++] = 300;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 294;goto st1295;} + {stack[top++] = 300;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 294;goto st1321;} + {stack[top++] = 300;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 294;goto st1324;} + {stack[top++] = 300;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 294;goto st1335;} + {stack[top++] = 300;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 294;goto st1337;} + {stack[top++] = 300;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 294;goto st1366;} + {stack[top++] = 300;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 294;goto st1379;} + {stack[top++] = 300;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 294;goto st1392;} + {stack[top++] = 300;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 294;goto st1398;} + {stack[top++] = 300;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 294;goto st1416;} + {stack[top++] = 300;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 294;goto st1411;} + {stack[top++] = 300;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 294;goto st1429;} + {stack[top++] = 300;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 294;goto st1435;} + {stack[top++] = 300;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 294;goto st1441;} + {stack[top++] = 300;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 294;goto st1449;} + {stack[top++] = 300;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 294;goto st1457;} + {stack[top++] = 300;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 294;goto st1463;} + {stack[top++] = 300;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st294; -st294: + goto st300; +st300: if ( ++p == pe ) - goto _test_eof294; -case 294: + goto _test_eof300; +case 300: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41110,10 +41792,10 @@ case 294: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1014; - case 32: goto tr1014; - case 40: goto tr1015; - case 41: goto tr1016; + case 9: goto tr1028; + case 32: goto tr1028; + case 40: goto tr1029; + case 41: goto tr1030; case 58: goto tr75; case 65: goto tr124; case 67: goto tr125; @@ -41154,12 +41836,12 @@ case 294: case 122: goto tr141; case 2826: goto tr89; case 2875: goto tr90; - case 3082: goto tr941; - case 3131: goto tr1017; + case 3082: goto tr955; + case 3131: goto tr1031; case 3338: goto tr107; case 3387: goto tr108; - case 3594: goto tr941; - case 3643: goto tr1018; + case 3594: goto tr955; + case 3643: goto tr1032; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -41173,7 +41855,7 @@ case 294: } else goto tr75; goto tr120; -tr851: +tr865: { s->buffer_length = 0; } @@ -41181,95 +41863,96 @@ tr851: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 295;goto st1071;} + {stack[top++] = 301;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 295;goto st1073;} + {stack[top++] = 301;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 295;goto st1075;} + {stack[top++] = 301;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 295;goto st1107;} + {stack[top++] = 301;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 295;goto st1112;} + {stack[top++] = 301;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 295;goto st1117;} + {stack[top++] = 301;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 295;goto st1122;} + {stack[top++] = 301;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 295;goto st1126;} + {stack[top++] = 301;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 295;goto st1128;} + {stack[top++] = 301;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 295;goto st1183;} + {stack[top++] = 301;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 295;goto st1194;} + {stack[top++] = 301;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 295;goto st1211;} + {stack[top++] = 301;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 295;goto st1222;} + {stack[top++] = 301;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 295;goto st1233;} + {stack[top++] = 301;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 295;goto st1246;} + {stack[top++] = 301;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 295;goto st1256;} + {stack[top++] = 301;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 295;goto st1295;} + {stack[top++] = 301;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 295;goto st1321;} + {stack[top++] = 301;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 295;goto st1324;} + {stack[top++] = 301;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 295;goto st1335;} + {stack[top++] = 301;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 295;goto st1337;} + {stack[top++] = 301;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 295;goto st1366;} + {stack[top++] = 301;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 295;goto st1379;} + {stack[top++] = 301;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 295;goto st1392;} + {stack[top++] = 301;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 295;goto st1398;} + {stack[top++] = 301;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 295;goto st1416;} + {stack[top++] = 301;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 295;goto st1411;} + {stack[top++] = 301;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 295;goto st1429;} + {stack[top++] = 301;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 295;goto st1435;} + {stack[top++] = 301;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 295;goto st1441;} + {stack[top++] = 301;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 295;goto st1449;} + {stack[top++] = 301;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 295;goto st1457;} + {stack[top++] = 301;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 295;goto st1463;} + {stack[top++] = 301;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st295; -tr844: + goto st301; +tr858: { s->r_owner_length = s->dname_tmp_length; } @@ -41284,98 +41967,99 @@ tr844: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 295;goto st1071;} + {stack[top++] = 301;goto st1089;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 295;goto st1073;} + {stack[top++] = 301;goto st1091;} case KNOT_RRTYPE_SOA: - {stack[top++] = 295;goto st1075;} + {stack[top++] = 301;goto st1093;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 295;goto st1107;} + {stack[top++] = 301;goto st1125;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 295;goto st1112;} + {stack[top++] = 301;goto st1130;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 295;goto st1117;} + {stack[top++] = 301;goto st1135;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 295;goto st1122;} + {stack[top++] = 301;goto st1140;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 295;goto st1126;} + {stack[top++] = 301;goto st1144;} case KNOT_RRTYPE_LOC: - {stack[top++] = 295;goto st1128;} + {stack[top++] = 301;goto st1146;} case KNOT_RRTYPE_SRV: - {stack[top++] = 295;goto st1183;} + {stack[top++] = 301;goto st1201;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 295;goto st1194;} + {stack[top++] = 301;goto st1212;} case KNOT_RRTYPE_CERT: - {stack[top++] = 295;goto st1211;} + {stack[top++] = 301;goto st1229;} case KNOT_RRTYPE_APL: - {stack[top++] = 295;goto st1222;} + {stack[top++] = 301;goto st1240;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 295;goto st1233;} + {stack[top++] = 301;goto st1251;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 295;goto st1246;} + {stack[top++] = 301;goto st1264;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 295;goto st1256;} + {stack[top++] = 301;goto st1274;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 295;goto st1295;} + {stack[top++] = 301;goto st1313;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 295;goto st1321;} + {stack[top++] = 301;goto st1339;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 295;goto st1324;} + {stack[top++] = 301;goto st1342;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 295;goto st1335;} + {stack[top++] = 301;goto st1353;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 295;goto st1337;} + {stack[top++] = 301;goto st1355;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 295;goto st1366;} + {stack[top++] = 301;goto st1384;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 295;goto st1379;} + {stack[top++] = 301;goto st1397;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 295;goto st1392;} + {stack[top++] = 301;goto st1410;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 295;goto st1398;} + {stack[top++] = 301;goto st1416;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 295;goto st1416;} + {stack[top++] = 301;goto st1434;} case KNOT_RRTYPE_L32: - {stack[top++] = 295;goto st1411;} + {stack[top++] = 301;goto st1429;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 295;goto st1429;} + {stack[top++] = 301;goto st1447;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 295;goto st1435;} + {stack[top++] = 301;goto st1453;} case KNOT_RRTYPE_URI: - {stack[top++] = 295;goto st1441;} + {stack[top++] = 301;goto st1459;} case KNOT_RRTYPE_CAA: - {stack[top++] = 295;goto st1449;} + {stack[top++] = 301;goto st1467;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 295;goto st1457;} + {stack[top++] = 301;goto st1475;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 295;goto st1463;} + {stack[top++] = 301;goto st1481;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st319;} + {goto st325;} } } - goto st295; -st295: + goto st301; +st301: if ( ++p == pe ) - goto _test_eof295; -case 295: + goto _test_eof301; +case 301: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -41413,24 +42097,24 @@ case 295: case 1832: goto tr87; case 1833: goto tr88; case 1851: goto tr90; - case 2057: goto tr1019; - case 2058: goto tr944; - case 2080: goto tr1019; - case 2088: goto tr1020; - case 2089: goto tr1021; - case 2107: goto tr955; + case 2057: goto tr1033; + case 2058: goto tr958; + case 2080: goto tr1033; + case 2088: goto tr1034; + case 2089: goto tr1035; + case 2107: goto tr969; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1012; + goto tr1026; goto tr85; -tr1022: +tr1036: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st296; -tr1019: + goto st302; +tr1033: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41440,8 +42124,8 @@ tr1019: s->buffer[0] = 0; s->buffer_length = 0; } - goto st296; -tr1020: + goto st302; +tr1034: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41454,12 +42138,12 @@ tr1020: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st296; -tr1021: + goto st302; +tr1035: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41472,12 +42156,12 @@ tr1021: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st296; -tr1023: + goto st302; +tr1037: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41486,12 +42170,12 @@ tr1023: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st296; -tr1024: + goto st302; +tr1038: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41500,15 +42184,15 @@ tr1024: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st296; -st296: + goto st302; +st302: if ( ++p == pe ) - goto _test_eof296; -case 296: + goto _test_eof302; +case 302: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -41546,325 +42230,17 @@ case 296: case 1832: goto tr93; case 1833: goto tr94; case 1851: goto tr96; - case 2057: goto tr1022; - case 2058: goto tr873; - case 2080: goto tr1022; - case 2088: goto tr1023; - case 2089: goto tr1024; - case 2107: goto tr959; + case 2057: goto tr1036; + case 2058: goto tr887; + case 2080: goto tr1036; + case 2088: goto tr1037; + case 2089: goto tr1038; + case 2107: goto tr973; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1012; + goto tr1026; goto tr85; -tr4182: - { - s->r_class = s->default_class; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; - } - { p--; {stack[top++] = 297;goto st321;} } - goto st297; -tr4204: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; - } - { p--; {stack[top++] = 297;goto st321;} } - goto st297; -st297: - if ( ++p == pe ) - goto _test_eof297; -case 297: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 65: goto st18; - case 68: goto st22; - case 69: goto st29; - case 78: goto st32; - case 83: goto st36; - case 97: goto st18; - case 100: goto st22; - case 101: goto st29; - case 110: goto st32; - case 115: goto st36; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4183: - { - s->r_class = s->default_class; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; - } - { p--; {stack[top++] = 298;goto st321;} } - goto st298; -tr4205: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; - } - { p--; {stack[top++] = 298;goto st321;} } - goto st298; -st298: - if ( ++p == pe ) - goto _test_eof298; -case 298: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 72: goto st41; - case 78: goto st45; - case 83: goto st53; - case 104: goto st41; - case 110: goto st45; - case 115: goto st53; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4184: - { - s->r_class = s->default_class; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; - } - { p--; {stack[top++] = 299;goto st321;} } - goto st299; -tr4206: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; - } - { p--; {stack[top++] = 299;goto st321;} } - goto st299; -st299: - if ( ++p == pe ) - goto _test_eof299; -case 299: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 85: goto st58; - case 117: goto st58; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4185: - { - s->r_class = s->default_class; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; - } - { p--; {stack[top++] = 300;goto st321;} } - goto st300; -tr4207: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; - } - { p--; {stack[top++] = 300;goto st321;} } - goto st300; -st300: - if ( ++p == pe ) - goto _test_eof300; -case 300: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 73: goto st65; - case 84: goto st69; - case 105: goto st65; - case 116: goto st69; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4208: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; - } - { p--; {stack[top++] = 301;goto st321;} } - goto st301; -st301: - if ( ++p == pe ) - goto _test_eof301; -case 301: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 78: goto st185; - case 80: goto st77; - case 110: goto st185; - case 112: goto st77; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4187: - { - s->r_class = s->default_class; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; - } - { p--; {stack[top++] = 302;goto st321;} } - goto st302; -tr4209: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; - } - { p--; {stack[top++] = 302;goto st321;} } - goto st302; -st302: - if ( ++p == pe ) - goto _test_eof302; -case 302: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 69: goto st85; - case 88: goto st87; - case 101: goto st85; - case 120: goto st87; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4188: +tr4217: { s->r_class = s->default_class; } @@ -41872,9 +42248,9 @@ tr4188: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 303;goto st321;} } + { p--; {stack[top++] = 303;goto st327;} } goto st303; -tr4210: +tr4239: { s->r_class = s->default_class; } @@ -41885,7 +42261,7 @@ tr4210: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 303;goto st321;} } + { p--; {stack[top++] = 303;goto st327;} } goto st303; st303: if ( ++p == pe ) @@ -41904,21 +42280,25 @@ case 303: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 51: goto st89; - case 54: goto st91; - case 79: goto st93; - case 80: goto st95; - case 111: goto st93; - case 112: goto st95; - case 2058: goto tr799; - case 2107: goto tr800; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 65: goto st18; + case 68: goto st22; + case 69: goto st29; + case 78: goto st32; + case 83: goto st36; + case 97: goto st18; + case 100: goto st22; + case 101: goto st29; + case 110: goto st32; + case 115: goto st36; + case 2058: goto tr813; + case 2107: goto tr814; } - goto tr1025; -tr4189: + goto tr1039; +tr4218: { s->r_class = s->default_class; } @@ -41926,9 +42306,9 @@ tr4189: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 304;goto st321;} } + { p--; {stack[top++] = 304;goto st327;} } goto st304; -tr4211: +tr4240: { s->r_class = s->default_class; } @@ -41939,7 +42319,7 @@ tr4211: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 304;goto st321;} } + { p--; {stack[top++] = 304;goto st327;} } goto st304; st304: if ( ++p == pe ) @@ -41958,19 +42338,21 @@ case 304: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 73: goto st97; - case 88: goto st101; - case 105: goto st97; - case 120: goto st101; - case 2058: goto tr799; - case 2107: goto tr800; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 72: goto st41; + case 78: goto st45; + case 83: goto st53; + case 104: goto st41; + case 110: goto st45; + case 115: goto st53; + case 2058: goto tr813; + case 2107: goto tr814; } - goto tr1025; -tr4190: + goto tr1039; +tr4219: { s->r_class = s->default_class; } @@ -41978,9 +42360,9 @@ tr4190: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 305;goto st321;} } + { p--; {stack[top++] = 305;goto st327;} } goto st305; -tr4212: +tr4241: { s->r_class = s->default_class; } @@ -41991,7 +42373,7 @@ tr4212: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 305;goto st321;} } + { p--; {stack[top++] = 305;goto st327;} } goto st305; st305: if ( ++p == pe ) @@ -42010,21 +42392,17 @@ case 305: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 65: goto st103; - case 73: goto st107; - case 83: goto st109; - case 97: goto st103; - case 105: goto st107; - case 115: goto st109; - case 2058: goto tr799; - case 2107: goto tr800; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 85: goto st58; + case 117: goto st58; + case 2058: goto tr813; + case 2107: goto tr814; } - goto tr1025; -tr4191: + goto tr1039; +tr4220: { s->r_class = s->default_class; } @@ -42032,9 +42410,9 @@ tr4191: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 306;goto st321;} } + { p--; {stack[top++] = 306;goto st327;} } goto st306; -tr4213: +tr4242: { s->r_class = s->default_class; } @@ -42045,7 +42423,7 @@ tr4213: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 306;goto st321;} } + { p--; {stack[top++] = 306;goto st327;} } goto st306; st306: if ( ++p == pe ) @@ -42064,27 +42442,19 @@ case 306: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 80: goto st119; - case 112: goto st119; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4192: - { - s->r_class = s->default_class; - } - { - s->dname = s->r_owner; - s->r_owner_length = 0; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 73: goto st65; + case 84: goto st69; + case 105: goto st65; + case 116: goto st69; + case 2058: goto tr813; + case 2107: goto tr814; } - { p--; {stack[top++] = 307;goto st321;} } - goto st307; -tr4214: + goto tr1039; +tr4243: { s->r_class = s->default_class; } @@ -42095,7 +42465,7 @@ tr4214: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 307;goto st321;} } + { p--; {stack[top++] = 307;goto st327;} } goto st307; st307: if ( ++p == pe ) @@ -42114,17 +42484,19 @@ case 307: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 84: goto st129; - case 116: goto st129; - case 2058: goto tr799; - case 2107: goto tr800; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 78: goto st191; + case 80: goto st77; + case 110: goto st191; + case 112: goto st77; + case 2058: goto tr813; + case 2107: goto tr814; } - goto tr1025; -tr4193: + goto tr1039; +tr4222: { s->r_class = s->default_class; } @@ -42132,9 +42504,9 @@ tr4193: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 308;goto st321;} } + { p--; {stack[top++] = 308;goto st327;} } goto st308; -tr4215: +tr4244: { s->r_class = s->default_class; } @@ -42145,7 +42517,7 @@ tr4215: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 308;goto st321;} } + { p--; {stack[top++] = 308;goto st327;} } goto st308; st308: if ( ++p == pe ) @@ -42164,21 +42536,19 @@ case 308: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 80: goto st132; - case 82: goto st133; - case 84: goto st137; - case 112: goto st132; - case 114: goto st133; - case 116: goto st137; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4194: + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 69: goto st85; + case 88: goto st87; + case 101: goto st85; + case 120: goto st87; + case 2058: goto tr813; + case 2107: goto tr814; + } + goto tr1039; +tr4223: { s->r_class = s->default_class; } @@ -42186,9 +42556,9 @@ tr4194: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 309;goto st321;} } + { p--; {stack[top++] = 309;goto st327;} } goto st309; -tr4216: +tr4245: { s->r_class = s->default_class; } @@ -42199,7 +42569,7 @@ tr4216: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 309;goto st321;} } + { p--; {stack[top++] = 309;goto st327;} } goto st309; st309: if ( ++p == pe ) @@ -42218,27 +42588,21 @@ case 309: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 77: goto st139; - case 79: goto st144; - case 80: goto st146; - case 82: goto st148; - case 83: goto st150; - case 86: goto st154; - case 109: goto st139; - case 111: goto st144; - case 112: goto st146; - case 114: goto st148; - case 115: goto st150; - case 118: goto st154; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4195: + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 51: goto st89; + case 54: goto st91; + case 79: goto st93; + case 80: goto st95; + case 111: goto st93; + case 112: goto st95; + case 2058: goto tr813; + case 2107: goto tr814; + } + goto tr1039; +tr4224: { s->r_class = s->default_class; } @@ -42246,9 +42610,9 @@ tr4195: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 310;goto st321;} } + { p--; {stack[top++] = 310;goto st327;} } goto st310; -tr4217: +tr4246: { s->r_class = s->default_class; } @@ -42259,7 +42623,7 @@ tr4217: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 310;goto st321;} } + { p--; {stack[top++] = 310;goto st327;} } goto st310; st310: if ( ++p == pe ) @@ -42278,21 +42642,19 @@ case 310: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 76: goto st158; - case 88: goto st161; - case 89: goto st163; - case 108: goto st158; - case 120: goto st161; - case 121: goto st163; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4196: + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 73: goto st97; + case 88: goto st101; + case 105: goto st97; + case 120: goto st101; + case 2058: goto tr813; + case 2107: goto tr814; + } + goto tr1039; +tr4225: { s->r_class = s->default_class; } @@ -42300,9 +42662,9 @@ tr4196: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 311;goto st321;} } + { p--; {stack[top++] = 311;goto st327;} } goto st311; -tr4218: +tr4247: { s->r_class = s->default_class; } @@ -42313,7 +42675,7 @@ tr4218: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 311;goto st321;} } + { p--; {stack[top++] = 311;goto st327;} } goto st311; st311: if ( ++p == pe ) @@ -42332,17 +42694,21 @@ case 311: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 82: goto st168; - case 114: goto st168; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4197: + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 65: goto st103; + case 73: goto st107; + case 83: goto st109; + case 97: goto st103; + case 105: goto st107; + case 115: goto st109; + case 2058: goto tr813; + case 2107: goto tr814; + } + goto tr1039; +tr4226: { s->r_class = s->default_class; } @@ -42350,9 +42716,9 @@ tr4197: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 312;goto st321;} } + { p--; {stack[top++] = 312;goto st327;} } goto st312; -tr4219: +tr4248: { s->r_class = s->default_class; } @@ -42363,7 +42729,7 @@ tr4219: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 312;goto st321;} } + { p--; {stack[top++] = 312;goto st327;} } goto st312; st312: if ( ++p == pe ) @@ -42382,17 +42748,17 @@ case 312: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 65: goto st171; - case 97: goto st171; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr4198: + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 80: goto st119; + case 112: goto st119; + case 2058: goto tr813; + case 2107: goto tr814; + } + goto tr1039; +tr4227: { s->r_class = s->default_class; } @@ -42400,9 +42766,9 @@ tr4198: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 313;goto st321;} } + { p--; {stack[top++] = 313;goto st327;} } goto st313; -tr4220: +tr4249: { s->r_class = s->default_class; } @@ -42413,7 +42779,7 @@ tr4220: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 313;goto st321;} } + { p--; {stack[top++] = 313;goto st327;} } goto st313; st313: if ( ++p == pe ) @@ -42432,176 +42798,154 @@ case 313: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 79: goto st177; - case 111: goto st177; - case 2058: goto tr799; - case 2107: goto tr800; - } - goto tr1025; -tr26: - { - s->buffer_length = 0; - } - goto st314; -tr1026: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } - } - goto st314; -tr4164: - { - if (s->r_owner_length == 0) { - WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} - } - } - { - s->buffer_length = 0; - } - { - s->buffer[0] = 0; - s->buffer_length = 0; - } - goto st314; -tr4234: - { - s->buffer_length = 0; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 84: goto st129; + case 116: goto st129; + case 2058: goto tr813; + case 2107: goto tr814; } + goto tr1039; +tr4228: { - if (s->r_owner_length == 0) { - WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} - } + s->r_class = s->default_class; } { - s->buffer[0] = 0; - s->buffer_length = 0; + s->dname = s->r_owner; + s->r_owner_length = 0; } + { p--; {stack[top++] = 314;goto st327;} } goto st314; -tr4230: - { - NOERR; - } +tr4250: { - if (s->r_owner_length == 0) { - WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} - } + s->r_class = s->default_class; } { - s->buffer_length = 0; + s->r_ttl = s->default_ttl; } { - s->buffer[0] = 0; - s->buffer_length = 0; + s->dname = s->r_owner; + s->r_owner_length = 0; } + { p--; {stack[top++] = 314;goto st327;} } goto st314; st314: if ( ++p == pe ) goto _test_eof314; case 314: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr783; - case 2058: goto tr1027; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 69: goto st132; + case 80: goto st138; + case 82: goto st139; + case 84: goto st143; + case 101: goto st132; + case 112: goto st138; + case 114: goto st139; + case 116: goto st143; + case 2058: goto tr813; + case 2107: goto tr814; } - if ( _widec > 1919 ) { - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1026; - } else if ( _widec >= 1664 ) - goto tr782; - goto tr91; -tr725: + goto tr1039; +tr4229: { - s->buffer_length = 0; + s->r_class = s->default_class; } - goto st315; -tr1028: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + s->dname = s->r_owner; + s->r_owner_length = 0; } + { p--; {stack[top++] = 315;goto st327;} } goto st315; -tr4200: +tr4251: { - s->buffer_length = 0; + s->r_class = s->default_class; } { - if (s->r_owner_length == 0) { - WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st319;} - } + s->r_ttl = s->default_ttl; } { - s->buffer[0] = 0; - s->buffer_length = 0; + s->dname = s->r_owner; + s->r_owner_length = 0; } + { p--; {stack[top++] = 315;goto st327;} } goto st315; st315: if ( ++p == pe ) goto _test_eof315; case 315: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr783; - case 2058: goto tr1029; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 77: goto st145; + case 79: goto st150; + case 80: goto st152; + case 82: goto st154; + case 83: goto st156; + case 86: goto st160; + case 109: goto st145; + case 111: goto st150; + case 112: goto st152; + case 114: goto st154; + case 115: goto st156; + case 118: goto st160; + case 2058: goto tr813; + case 2107: goto tr814; + } + goto tr1039; +tr4230: + { + s->r_class = s->default_class; } - if ( _widec > 1919 ) { - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1028; - } else if ( _widec >= 1664 ) - goto tr782; - goto tr154; -tr4186: + { + s->dname = s->r_owner; + s->r_owner_length = 0; + } + { p--; {stack[top++] = 316;goto st327;} } + goto st316; +tr4252: { s->r_class = s->default_class; } + { + s->r_ttl = s->default_ttl; + } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 316;goto st321;} } + { p--; {stack[top++] = 316;goto st327;} } goto st316; st316: if ( ++p == pe ) @@ -42620,92 +42964,92 @@ case 316: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr796; - case 32: goto tr796; - case 40: goto tr797; - case 41: goto tr798; - case 78: goto st74; - case 80: goto st77; - case 110: goto st74; - case 112: goto st77; - case 2058: goto tr799; - case 2107: goto tr800; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 76: goto st164; + case 88: goto st167; + case 89: goto st169; + case 108: goto st164; + case 120: goto st167; + case 121: goto st169; + case 2058: goto tr813; + case 2107: goto tr814; } - goto tr1025; -tr159: + goto tr1039; +tr4231: { - s->buffer_length = 0; + s->r_class = s->default_class; } - goto st317; -tr1030: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + s->dname = s->r_owner; + s->r_owner_length = 0; } + { p--; {stack[top++] = 317;goto st327;} } goto st317; -tr153: +tr4253: { - if (s->number64 <= UINT32_MAX) { - s->r_ttl = (uint32_t)(s->number64); - } else { - WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} - } + s->r_class = s->default_class; } { - s->buffer_length = 0; + s->r_ttl = s->default_ttl; } { - s->buffer[0] = 0; - s->buffer_length = 0; + s->dname = s->r_owner; + s->r_owner_length = 0; } + { p--; {stack[top++] = 317;goto st327;} } goto st317; st317: if ( ++p == pe ) goto _test_eof317; case 317: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr98; - case 2058: goto tr1031; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 82: goto st174; + case 114: goto st174; + case 2058: goto tr813; + case 2107: goto tr814; } - if ( _widec > 1919 ) { - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1030; - } else if ( _widec >= 1664 ) - goto tr97; - goto tr154; -tr1035: + goto tr1039; +tr4232: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} - } - s->multiline = false; + s->r_class = s->default_class; + } + { + s->dname = s->r_owner; + s->r_owner_length = 0; } + { p--; {stack[top++] = 318;goto st327;} } goto st318; -tr1034: +tr4254: { - s->line_counter++; + s->r_class = s->default_class; + } + { + s->r_ttl = s->default_ttl; + } + { + s->dname = s->r_owner; + s->r_owner_length = 0; } + { p--; {stack[top++] = 318;goto st327;} } goto st318; st318: if ( ++p == pe ) @@ -42713,101 +43057,443 @@ st318: case 318: _widec = (*p); if ( (*p) > 10 ) { - if ( 41 <= (*p) && (*p) <= 41 ) { - _widec = (short)(640 + ((*p) - -128)); + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } } else if ( (*p) >= 10 ) { - _widec = (short)(128 + ((*p) - -128)); + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } switch( _widec ) { - case 266: goto tr1033; - case 522: goto tr1034; - case 1065: goto tr1035; + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 65: goto st177; + case 97: goto st177; + case 2058: goto tr813; + case 2107: goto tr814; } - if ( _widec < 11 ) { - if ( _widec <= 9 ) - goto st318; - } else if ( _widec > 40 ) { - if ( 42 <= _widec ) - goto st318; - } else - goto st318; - goto st0; -tr1033: - { p--; {stack[top++] = 1484;goto st1474;} } + goto tr1039; +tr4233: { - s->line_counter++; + s->r_class = s->default_class; } - goto st1484; -st1484: - if ( ++p == pe ) - goto _test_eof1484; -case 1484: - goto st0; + { + s->dname = s->r_owner; + s->r_owner_length = 0; + } + { p--; {stack[top++] = 319;goto st327;} } + goto st319; +tr4255: + { + s->r_class = s->default_class; + } + { + s->r_ttl = s->default_ttl; + } + { + s->dname = s->r_owner; + s->r_owner_length = 0; + } + { p--; {stack[top++] = 319;goto st327;} } + goto st319; st319: if ( ++p == pe ) goto _test_eof319; case 319: - if ( (*p) == 10 ) - goto tr1037; - goto tr1036; -tr1036: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 79: goto st183; + case 111: goto st183; + case 2058: goto tr813; + case 2107: goto tr814; + } + goto tr1039; +tr26: { s->buffer_length = 0; } + goto st320; +tr1040: { - if ((*p) == '\r') { - ERR(ZS_DOS_NEWLINE); - } - if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st320; -tr1038: +tr4199: { - if ((*p) == '\r') { - ERR(ZS_DOS_NEWLINE); - } - - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + if (s->r_owner_length == 0) { + WARN(ZS_BAD_PREVIOUS_OWNER); + p--; {goto st325;} } } + { + s->buffer_length = 0; + } + { + s->buffer[0] = 0; + s->buffer_length = 0; + } goto st320; -st320: - if ( ++p == pe ) - goto _test_eof320; -case 320: - if ( (*p) == 10 ) - goto tr1039; - goto tr1038; -tr1037: - cs = 1485; +tr4269: { s->buffer_length = 0; } { - // Terminate the error context string. - s->buffer[s->buffer_length++] = 0; - - // Error counter incrementation. - s->error.counter++; - - // Initialize the fcall stack. - top = 0; - - // Reset per-record contexts. - s->long_string = false; - s->comma_list = false; - s->pending_backslash = false; - - s->state = ZS_STATE_ERROR; + if (s->r_owner_length == 0) { + WARN(ZS_BAD_PREVIOUS_OWNER); + p--; {goto st325;} + } + } + { + s->buffer[0] = 0; + s->buffer_length = 0; + } + goto st320; +tr4265: + { + NOERR; + } + { + if (s->r_owner_length == 0) { + WARN(ZS_BAD_PREVIOUS_OWNER); + p--; {goto st325;} + } + } + { + s->buffer_length = 0; + } + { + s->buffer[0] = 0; + s->buffer_length = 0; + } + goto st320; +st320: + if ( ++p == pe ) + goto _test_eof320; +case 320: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 1802: goto tr797; + case 2058: goto tr1041; + } + if ( _widec > 1919 ) { + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr1040; + } else if ( _widec >= 1664 ) + goto tr796; + goto tr91; +tr739: + { + s->buffer_length = 0; + } + goto st321; +tr1042: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st321; +tr4235: + { + s->buffer_length = 0; + } + { + if (s->r_owner_length == 0) { + WARN(ZS_BAD_PREVIOUS_OWNER); + p--; {goto st325;} + } + } + { + s->buffer[0] = 0; + s->buffer_length = 0; + } + goto st321; +st321: + if ( ++p == pe ) + goto _test_eof321; +case 321: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 1802: goto tr797; + case 2058: goto tr1043; + } + if ( _widec > 1919 ) { + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr1042; + } else if ( _widec >= 1664 ) + goto tr796; + goto tr154; +tr4221: + { + s->r_class = s->default_class; + } + { + s->dname = s->r_owner; + s->r_owner_length = 0; + } + { p--; {stack[top++] = 322;goto st327;} } + goto st322; +st322: + if ( ++p == pe ) + goto _test_eof322; +case 322: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr810; + case 32: goto tr810; + case 40: goto tr811; + case 41: goto tr812; + case 78: goto st74; + case 80: goto st77; + case 110: goto st74; + case 112: goto st77; + case 2058: goto tr813; + case 2107: goto tr814; + } + goto tr1039; +tr159: + { + s->buffer_length = 0; + } + goto st323; +tr1044: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st323; +tr153: + { + if (s->number64 <= UINT32_MAX) { + s->r_ttl = (uint32_t)(s->number64); + } else { + WARN(ZS_NUMBER32_OVERFLOW); + p--; {goto st325;} + } + } + { + s->buffer_length = 0; + } + { + s->buffer[0] = 0; + s->buffer_length = 0; + } + goto st323; +st323: + if ( ++p == pe ) + goto _test_eof323; +case 323: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 1802: goto tr98; + case 2058: goto tr1045; + } + if ( _widec > 1919 ) { + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr1044; + } else if ( _widec >= 1664 ) + goto tr97; + goto tr154; +tr1049: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st325;} + } + s->multiline = false; + } + goto st324; +tr1048: + { + s->line_counter++; + } + goto st324; +st324: + if ( ++p == pe ) + goto _test_eof324; +case 324: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 41 <= (*p) && (*p) <= 41 ) { + _widec = (short)(640 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(128 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 266: goto tr1047; + case 522: goto tr1048; + case 1065: goto tr1049; + } + if ( _widec < 11 ) { + if ( _widec <= 9 ) + goto st324; + } else if ( _widec > 40 ) { + if ( 42 <= _widec ) + goto st324; + } else + goto st324; + goto st0; +tr1047: + { p--; {stack[top++] = 1502;goto st1492;} } + { + s->line_counter++; + } + goto st1502; +st1502: + if ( ++p == pe ) + goto _test_eof1502; +case 1502: + goto st0; +st325: + if ( ++p == pe ) + goto _test_eof325; +case 325: + if ( (*p) == 10 ) + goto tr1051; + goto tr1050; +tr1050: + { + s->buffer_length = 0; + } + { + if ((*p) == '\r') { + ERR(ZS_DOS_NEWLINE); + } + + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st326; +tr1052: + { + if ((*p) == '\r') { + ERR(ZS_DOS_NEWLINE); + } + + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st326; +st326: + if ( ++p == pe ) + goto _test_eof326; +case 326: + if ( (*p) == 10 ) + goto tr1053; + goto tr1052; +tr1051: + cs = 1503; + { + s->buffer_length = 0; + } + { + // Terminate the error context string. + s->buffer[s->buffer_length++] = 0; + + // Error counter incrementation. + s->error.counter++; + + // Initialize the fcall stack. + top = 0; + + // Reset per-record contexts. + s->long_string = false; + s->comma_list = false; + s->pending_backslash = false; + + s->state = ZS_STATE_ERROR; // Execute the error callback. if (s->process.automatic) { @@ -42825,18 +43511,18 @@ tr1037: if (s->error.fatal) { {p++; goto _out;} } - {goto st318;} + {goto st324;} } else { // Return if external processing. - p--; cs = 318; {p++; goto _out;} + p--; cs = 324; {p++; goto _out;} } } { s->line_counter++; } goto _again; -tr1039: - cs = 1485; +tr1053: + cs = 1503; { // Terminate the error context string. s->buffer[s->buffer_length++] = 0; @@ -42870,42 +43556,42 @@ tr1039: if (s->error.fatal) { {p++; goto _out;} } - {goto st318;} + {goto st324;} } else { // Return if external processing. - p--; cs = 318; {p++; goto _out;} + p--; cs = 324; {p++; goto _out;} } } { s->line_counter++; } goto _again; -st1485: +st1503: if ( ++p == pe ) - goto _test_eof1485; -case 1485: + goto _test_eof1503; +case 1503: goto st0; -st321: +st327: if ( ++p == pe ) - goto _test_eof321; -case 321: + goto _test_eof327; +case 327: switch( (*p) ) { - case 42: goto tr1041; - case 46: goto tr1042; - case 64: goto st329; - case 92: goto tr1044; - case 95: goto tr1041; + case 42: goto tr1055; + case 46: goto tr1056; + case 64: goto st335; + case 92: goto tr1058; + case 95: goto tr1055; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1041; + goto tr1055; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1041; + goto tr1055; } else - goto tr1041; - goto tr1040; -tr1041: + goto tr1055; + goto tr1054; +tr1055: { s->item_length_position = 0; s->dname_tmp_length = 0; @@ -42921,11 +43607,11 @@ tr1041: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st322; -tr1046: + goto st328; +tr1060: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -42933,11 +43619,11 @@ tr1046: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st322; -tr1050: + goto st328; +tr1064: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -42949,11 +43635,11 @@ tr1050: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st322; -tr1057: + goto st328; +tr1071: { s->dname_tmp_length++; } @@ -42964,38 +43650,38 @@ tr1057: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st322; -st322: + goto st328; +st328: if ( ++p == pe ) - goto _test_eof322; -case 322: + goto _test_eof328; +case 328: switch( (*p) ) { - case 32: goto tr1045; - case 42: goto tr1046; - case 46: goto tr1047; - case 59: goto tr1045; - case 92: goto st324; - case 95: goto tr1046; + case 32: goto tr1059; + case 42: goto tr1060; + case 46: goto tr1061; + case 59: goto tr1059; + case 92: goto st330; + case 95: goto tr1060; } if ( (*p) < 45 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1045; + goto tr1059; } else if ( (*p) >= 9 ) - goto tr1045; + goto tr1059; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1046; + goto tr1060; } else if ( (*p) >= 65 ) - goto tr1046; + goto tr1060; } else - goto tr1046; - goto tr1040; -tr1045: + goto tr1060; + goto tr1054; +tr1059: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -43004,7 +43690,7 @@ tr1045: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -43017,14 +43703,14 @@ tr1045: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1486; -tr1049: + goto st1504; +tr1063: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -43032,8 +43718,8 @@ tr1049: { p--; {cs = stack[--top];goto _again;} } - goto st1486; -tr1056: + goto st1504; +tr1070: { s->dname_tmp_length++; } @@ -43045,7 +43731,7 @@ tr1056: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -43058,14 +43744,14 @@ tr1056: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1486; -tr1060: + goto st1504; +tr1074: { // Copy already verified zone origin. memcpy(s->dname, @@ -43077,13 +43763,13 @@ tr1060: { p--; {cs = stack[--top];goto _again;} } - goto st1486; -st1486: + goto st1504; +st1504: if ( ++p == pe ) - goto _test_eof1486; -case 1486: + goto _test_eof1504; +case 1504: goto st0; -tr1047: +tr1061: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -43092,11 +43778,11 @@ tr1047: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st323; -tr1058: + goto st329; +tr1072: { s->dname_tmp_length++; } @@ -43108,38 +43794,38 @@ tr1058: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st323; -st323: + goto st329; +st329: if ( ++p == pe ) - goto _test_eof323; -case 323: + goto _test_eof329; +case 329: switch( (*p) ) { - case 32: goto tr1049; - case 42: goto tr1050; - case 45: goto tr1050; - case 59: goto tr1049; - case 92: goto tr1051; - case 95: goto tr1050; + case 32: goto tr1063; + case 42: goto tr1064; + case 45: goto tr1064; + case 59: goto tr1063; + case 92: goto tr1065; + case 95: goto tr1064; } if ( (*p) < 47 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1049; + goto tr1063; } else if ( (*p) >= 9 ) - goto tr1049; + goto tr1063; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1050; + goto tr1064; } else if ( (*p) >= 65 ) - goto tr1050; + goto tr1064; } else - goto tr1050; - goto tr1040; -tr1044: + goto tr1064; + goto tr1054; +tr1058: { s->item_length_position = 0; s->dname_tmp_length = 0; @@ -43148,142 +43834,142 @@ tr1044: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st324; -tr1051: + goto st330; +tr1065: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st324; -tr1059: + goto st330; +tr1073: { s->dname_tmp_length++; } - goto st324; -st324: + goto st330; +st330: if ( ++p == pe ) - goto _test_eof324; -case 324: + goto _test_eof330; +case 330: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1052; - goto tr1046; -tr1052: + goto tr1066; + goto tr1060; +tr1066: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st325; -st325: + goto st331; +st331: if ( ++p == pe ) - goto _test_eof325; -case 325: + goto _test_eof331; +case 331: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1054; - goto tr1053; -tr1054: + goto tr1068; + goto tr1067; +tr1068: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st326; -st326: + goto st332; +st332: if ( ++p == pe ) - goto _test_eof326; -case 326: + goto _test_eof332; +case 332: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1055; - goto tr1053; -tr1055: + goto tr1069; + goto tr1067; +tr1069: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st327; -st327: + goto st333; +st333: if ( ++p == pe ) - goto _test_eof327; -case 327: + goto _test_eof333; +case 333: switch( (*p) ) { - case 32: goto tr1056; - case 42: goto tr1057; - case 46: goto tr1058; - case 59: goto tr1056; - case 92: goto tr1059; - case 95: goto tr1057; + case 32: goto tr1070; + case 42: goto tr1071; + case 46: goto tr1072; + case 59: goto tr1070; + case 92: goto tr1073; + case 95: goto tr1071; } if ( (*p) < 45 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1056; + goto tr1070; } else if ( (*p) >= 9 ) - goto tr1056; + goto tr1070; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1057; + goto tr1071; } else if ( (*p) >= 65 ) - goto tr1057; + goto tr1071; } else - goto tr1057; - goto tr1053; -tr1042: + goto tr1071; + goto tr1067; +tr1056: { s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st328; -st328: + goto st334; +st334: if ( ++p == pe ) - goto _test_eof328; -case 328: + goto _test_eof334; +case 334: switch( (*p) ) { - case 32: goto tr1049; - case 59: goto tr1049; + case 32: goto tr1063; + case 59: goto tr1063; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1049; + goto tr1063; } else if ( (*p) >= 9 ) - goto tr1049; - goto tr1040; -st329: + goto tr1063; + goto tr1054; +st335: if ( ++p == pe ) - goto _test_eof329; -case 329: + goto _test_eof335; +case 335: switch( (*p) ) { - case 32: goto tr1060; - case 59: goto tr1060; + case 32: goto tr1074; + case 59: goto tr1074; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1060; + goto tr1074; } else if ( (*p) >= 9 ) - goto tr1060; - goto tr1040; -st330: + goto tr1074; + goto tr1054; +st336: if ( ++p == pe ) - goto _test_eof330; -case 330: + goto _test_eof336; +case 336: switch( (*p) ) { - case 34: goto st336; - case 92: goto st332; + case 34: goto st342; + case 92: goto st338; } if ( (*p) > 58 ) { if ( 60 <= (*p) && (*p) <= 126 ) - goto tr1062; + goto tr1076; } else if ( (*p) >= 33 ) - goto tr1062; - goto tr1061; -tr1062: + goto tr1076; + goto tr1075; +tr1076: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -43296,18 +43982,18 @@ tr1062: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st331; -tr1066: + goto st337; +tr1080: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -43315,7 +44001,7 @@ tr1066: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43333,7 +44019,7 @@ tr1066: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -43349,18 +44035,18 @@ tr1066: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st331; -tr1074: + goto st337; +tr1088: { rdata_tail++; } @@ -43371,7 +44057,7 @@ tr1074: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43389,7 +44075,7 @@ tr1074: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -43405,40 +44091,40 @@ tr1074: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st331; -st331: + goto st337; +st337: if ( ++p == pe ) - goto _test_eof331; -case 331: + goto _test_eof337; +case 337: switch( (*p) ) { - case 32: goto tr1065; - case 33: goto tr1066; - case 59: goto tr1065; - case 92: goto tr1068; + case 32: goto tr1079; + case 33: goto tr1080; + case 59: goto tr1079; + case 92: goto tr1082; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1065; + goto tr1079; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1066; + goto tr1080; } else if ( (*p) >= 40 ) - goto tr1067; + goto tr1081; } else - goto tr1066; - goto tr1061; -tr1065: + goto tr1080; + goto tr1075; +tr1079: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -43446,7 +44132,7 @@ tr1065: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43464,15 +44150,15 @@ tr1065: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } { p--; {cs = stack[--top];goto _again;} } - goto st1487; -tr1073: + goto st1505; +tr1087: { rdata_tail++; } @@ -43483,7 +44169,7 @@ tr1073: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43501,25 +44187,25 @@ tr1073: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } { p--; {cs = stack[--top];goto _again;} } - goto st1487; -tr1086: + goto st1505; +tr1100: { p--; {cs = stack[--top];goto _again;} } - goto st1487; -st1487: + goto st1505; +st1505: if ( ++p == pe ) - goto _test_eof1487; -case 1487: + goto _test_eof1505; +case 1505: goto st0; -tr1067: +tr1081: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -43527,7 +44213,7 @@ tr1067: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43545,7 +44231,7 @@ tr1067: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -43561,21 +44247,21 @@ tr1067: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1488; -tr1075: + goto st1506; +tr1089: { rdata_tail++; } @@ -43586,7 +44272,7 @@ tr1075: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43604,7 +44290,7 @@ tr1075: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -43620,43 +44306,43 @@ tr1075: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1488; -st1488: + goto st1506; +st1506: if ( ++p == pe ) - goto _test_eof1488; -case 1488: + goto _test_eof1506; +case 1506: switch( (*p) ) { - case 32: goto tr1065; - case 33: goto tr1066; - case 59: goto tr1065; - case 92: goto tr1068; + case 32: goto tr1079; + case 33: goto tr1080; + case 59: goto tr1079; + case 92: goto tr1082; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1065; + goto tr1079; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1066; + goto tr1080; } else if ( (*p) >= 40 ) - goto tr1067; + goto tr1081; } else - goto tr1066; - goto tr1061; -tr1068: + goto tr1080; + goto tr1075; +tr1082: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -43664,7 +44350,7 @@ tr1068: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43682,12 +44368,12 @@ tr1068: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } - goto st332; -tr1076: + goto st338; +tr1090: { rdata_tail++; } @@ -43698,7 +44384,7 @@ tr1076: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43716,25 +44402,25 @@ tr1076: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } - goto st332; -st332: + goto st338; +st338: if ( ++p == pe ) - goto _test_eof332; -case 332: + goto _test_eof338; +case 338: if ( (*p) < 48 ) { if ( 32 <= (*p) && (*p) <= 47 ) - goto tr1062; + goto tr1076; } else if ( (*p) > 57 ) { if ( 58 <= (*p) && (*p) <= 126 ) - goto tr1062; + goto tr1076; } else - goto tr1070; - goto tr1069; -tr1070: + goto tr1084; + goto tr1083; +tr1084: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -43747,7 +44433,7 @@ tr1070: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } @@ -43755,7 +44441,7 @@ tr1070: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -43768,18 +44454,18 @@ tr1070: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st333; -st333: + goto st339; +st339: if ( ++p == pe ) - goto _test_eof333; -case 333: + goto _test_eof339; +case 339: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1071; - goto tr1069; -tr1071: + goto tr1085; + goto tr1083; +tr1085: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -43790,18 +44476,18 @@ tr1071: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st334; -st334: + goto st340; +st340: if ( ++p == pe ) - goto _test_eof334; -case 334: + goto _test_eof340; +case 340: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1072; - goto tr1069; -tr1072: + goto tr1086; + goto tr1083; +tr1086: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -43812,33 +44498,33 @@ tr1072: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st335; -st335: + goto st341; +st341: if ( ++p == pe ) - goto _test_eof335; -case 335: + goto _test_eof341; +case 341: switch( (*p) ) { - case 32: goto tr1073; - case 33: goto tr1074; - case 59: goto tr1073; - case 92: goto tr1076; + case 32: goto tr1087; + case 33: goto tr1088; + case 59: goto tr1087; + case 92: goto tr1090; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1073; + goto tr1087; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1074; + goto tr1088; } else if ( (*p) >= 40 ) - goto tr1075; + goto tr1089; } else - goto tr1074; - goto tr1069; -tr1077: + goto tr1088; + goto tr1083; +tr1091: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -43851,18 +44537,18 @@ tr1077: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st336; -tr1081: + goto st342; +tr1095: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -43870,7 +44556,7 @@ tr1081: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43888,7 +44574,7 @@ tr1081: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -43904,18 +44590,18 @@ tr1081: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st336; -tr1090: + goto st342; +tr1104: { rdata_tail++; } @@ -43926,7 +44612,7 @@ tr1090: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -43944,7 +44630,7 @@ tr1090: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -43960,21 +44646,21 @@ tr1090: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st336; -st336: + goto st342; +st342: if ( ++p == pe ) - goto _test_eof336; -case 336: + goto _test_eof342; +case 342: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -43982,17 +44668,17 @@ case 336: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1077; - case 32: goto tr1077; - case 34: goto st338; - case 59: goto tr1077; - case 92: goto st339; - case 1546: goto tr1077; + case 9: goto tr1091; + case 32: goto tr1091; + case 34: goto st344; + case 59: goto tr1091; + case 92: goto st345; + case 1546: goto tr1091; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1078; - goto tr1061; -tr1078: + goto tr1092; + goto tr1075; +tr1092: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -44005,18 +44691,18 @@ tr1078: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st337; -tr1082: + goto st343; +tr1096: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44024,7 +44710,7 @@ tr1082: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44042,7 +44728,7 @@ tr1082: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -44058,18 +44744,18 @@ tr1082: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st337; -tr1091: + goto st343; +tr1105: { rdata_tail++; } @@ -44080,7 +44766,7 @@ tr1091: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44098,7 +44784,7 @@ tr1091: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -44114,21 +44800,21 @@ tr1091: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st337; -st337: + goto st343; +st343: if ( ++p == pe ) - goto _test_eof337; -case 337: + goto _test_eof343; +case 343: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -44136,17 +44822,17 @@ case 337: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1081; - case 32: goto tr1081; - case 34: goto tr1083; - case 59: goto tr1081; - case 92: goto tr1084; - case 1546: goto tr1081; + case 9: goto tr1095; + case 32: goto tr1095; + case 34: goto tr1097; + case 59: goto tr1095; + case 92: goto tr1098; + case 1546: goto tr1095; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1082; - goto tr1061; -tr1083: + goto tr1096; + goto tr1075; +tr1097: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44154,7 +44840,7 @@ tr1083: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44172,12 +44858,12 @@ tr1083: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } - goto st338; -tr1092: + goto st344; +tr1106: { rdata_tail++; } @@ -44188,7 +44874,7 @@ tr1092: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44206,26 +44892,26 @@ tr1092: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } - goto st338; -st338: + goto st344; +st344: if ( ++p == pe ) - goto _test_eof338; -case 338: + goto _test_eof344; +case 344: switch( (*p) ) { - case 32: goto tr1086; - case 59: goto tr1086; + case 32: goto tr1100; + case 59: goto tr1100; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1086; + goto tr1100; } else if ( (*p) >= 9 ) - goto tr1086; - goto tr1085; -tr1084: + goto tr1100; + goto tr1099; +tr1098: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44233,7 +44919,7 @@ tr1084: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44251,12 +44937,12 @@ tr1084: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } - goto st339; -tr1093: + goto st345; +tr1107: { rdata_tail++; } @@ -44267,7 +44953,7 @@ tr1093: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44285,25 +44971,25 @@ tr1093: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } } - goto st339; -st339: + goto st345; +st345: if ( ++p == pe ) - goto _test_eof339; -case 339: + goto _test_eof345; +case 345: if ( (*p) < 48 ) { if ( 32 <= (*p) && (*p) <= 47 ) - goto tr1078; + goto tr1092; } else if ( (*p) > 57 ) { if ( 58 <= (*p) && (*p) <= 126 ) - goto tr1078; + goto tr1092; } else - goto tr1087; - goto tr1069; -tr1087: + goto tr1101; + goto tr1083; +tr1101: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -44316,7 +45002,7 @@ tr1087: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } @@ -44324,7 +45010,7 @@ tr1087: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -44337,18 +45023,18 @@ tr1087: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st340; -st340: + goto st346; +st346: if ( ++p == pe ) - goto _test_eof340; -case 340: + goto _test_eof346; +case 346: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1088; - goto tr1069; -tr1088: + goto tr1102; + goto tr1083; +tr1102: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -44359,18 +45045,18 @@ tr1088: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st341; -st341: + goto st347; +st347: if ( ++p == pe ) - goto _test_eof341; -case 341: + goto _test_eof347; +case 347: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1089; - goto tr1069; -tr1089: + goto tr1103; + goto tr1083; +tr1103: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -44381,14 +45067,14 @@ tr1089: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st342; -st342: + goto st348; +st348: if ( ++p == pe ) - goto _test_eof342; -case 342: + goto _test_eof348; +case 348: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -44396,20 +45082,20 @@ case 342: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1090; - case 32: goto tr1090; - case 34: goto tr1092; - case 59: goto tr1090; - case 92: goto tr1093; - case 1546: goto tr1090; + case 9: goto tr1104; + case 32: goto tr1104; + case 34: goto tr1106; + case 59: goto tr1104; + case 92: goto tr1107; + case 1546: goto tr1104; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1091; - goto tr1069; -st343: + goto tr1105; + goto tr1083; +st349: if ( ++p == pe ) - goto _test_eof343; -case 343: + goto _test_eof349; +case 349: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44423,38 +45109,38 @@ case 343: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st344; - case 32: goto st344; - case 40: goto tr1096; - case 41: goto tr1097; - case 2058: goto tr1098; - case 2107: goto tr1099; - } - goto tr1094; -tr1096: + case 9: goto st350; + case 32: goto st350; + case 40: goto tr1110; + case 41: goto tr1111; + case 2058: goto tr1112; + case 2107: goto tr1113; + } + goto tr1108; +tr1110: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st344; -tr1097: + goto st350; +tr1111: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st344; -tr1098: + goto st350; +tr1112: { s->line_counter++; } - goto st344; -tr1137: + goto st350; +tr1151: { s->buffer[s->buffer_length++] = 0; @@ -44464,18 +45150,18 @@ tr1137: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 344; goto _out;} + {p++; cs = 350; goto _out;} } } } { s->line_counter++; } - goto st344; -st344: + goto st350; +st350: if ( ++p == pe ) - goto _test_eof344; -case 344: + goto _test_eof350; +case 350: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44489,17 +45175,17 @@ case 344: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st344; - case 32: goto st344; - case 40: goto tr1096; - case 41: goto tr1097; - case 2058: goto tr1098; - case 2107: goto tr1099; + case 9: goto st350; + case 32: goto st350; + case 40: goto tr1110; + case 41: goto tr1111; + case 2058: goto tr1112; + case 2107: goto tr1113; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1101; - goto tr1100; -tr1101: + goto tr1115; + goto tr1114; +tr1115: { s->number64 = 0; } @@ -44514,11 +45200,11 @@ tr1101: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st345; -tr1106: + goto st351; +tr1120: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -44530,14 +45216,14 @@ tr1106: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st345; -st345: + goto st351; +st351: if ( ++p == pe ) - goto _test_eof345; -case 345: + goto _test_eof351; +case 351: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44551,53 +45237,53 @@ case 345: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1103; - case 32: goto tr1103; - case 40: goto tr1104; - case 41: goto tr1105; - case 68: goto tr1107; - case 72: goto tr1108; - case 77: goto tr1109; - case 83: goto st348; - case 87: goto tr1111; - case 100: goto tr1107; - case 104: goto tr1108; - case 109: goto tr1109; - case 115: goto st348; - case 119: goto tr1111; - case 1802: goto tr1112; - case 1851: goto tr1113; - case 2058: goto tr1112; - case 2107: goto tr1113; + case 9: goto tr1117; + case 32: goto tr1117; + case 40: goto tr1118; + case 41: goto tr1119; + case 68: goto tr1121; + case 72: goto tr1122; + case 77: goto tr1123; + case 83: goto st354; + case 87: goto tr1125; + case 100: goto tr1121; + case 104: goto tr1122; + case 109: goto tr1123; + case 115: goto st354; + case 119: goto tr1125; + case 1802: goto tr1126; + case 1851: goto tr1127; + case 2058: goto tr1126; + case 2107: goto tr1127; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1106; - goto tr1102; -tr1116: + goto tr1120; + goto tr1116; +tr1130: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st346; -tr1117: + goto st352; +tr1131: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st346; -tr1103: + goto st352; +tr1117: { s->buffer[0] = 0; s->buffer_length = 0; } - goto st346; -tr1104: + goto st352; +tr1118: { s->buffer[0] = 0; s->buffer_length = 0; @@ -44605,12 +45291,12 @@ tr1104: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st346; -tr1105: + goto st352; +tr1119: { s->buffer[0] = 0; s->buffer_length = 0; @@ -44618,32 +45304,32 @@ tr1105: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st346; -tr1130: + goto st352; +tr1144: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st346; -tr1131: + goto st352; +tr1145: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -44653,18 +45339,18 @@ tr1131: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st346; -tr1132: + goto st352; +tr1146: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -44674,15 +45360,15 @@ tr1132: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st346; -st346: + goto st352; +st352: if ( ++p == pe ) - goto _test_eof346; -case 346: + goto _test_eof352; +case 352: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44696,17 +45382,17 @@ case 346: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st346; - case 32: goto st346; - case 40: goto tr1116; - case 41: goto tr1117; - case 1802: goto tr1118; - case 1851: goto tr1119; - case 2058: goto tr1118; - case 2107: goto tr1119; - } - goto tr1114; -tr1112: + case 9: goto st352; + case 32: goto st352; + case 40: goto tr1130; + case 41: goto tr1131; + case 1802: goto tr1132; + case 1851: goto tr1133; + case 2058: goto tr1132; + case 2107: goto tr1133; + } + goto tr1128; +tr1126: { s->buffer[0] = 0; s->buffer_length = 0; @@ -44716,7 +45402,7 @@ tr1112: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -44725,14 +45411,14 @@ tr1112: { s->line_counter++; } - goto st1489; -tr1118: + goto st1507; +tr1132: { if (s->number64 <= UINT32_MAX) { s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -44741,8 +45427,8 @@ tr1118: { s->line_counter++; } - goto st1489; -tr1121: + goto st1507; +tr1135: { s->buffer[s->buffer_length++] = 0; @@ -44752,7 +45438,7 @@ tr1121: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1489; goto _out;} + {p++; cs = 1507; goto _out;} } } } @@ -44761,7 +45447,7 @@ tr1121: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -44770,14 +45456,14 @@ tr1121: { s->line_counter++; } - goto st1489; -tr1134: + goto st1507; +tr1148: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -44789,7 +45475,7 @@ tr1134: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -44798,18 +45484,18 @@ tr1134: { s->line_counter++; } - goto st1489; -st1489: + goto st1507; +st1507: if ( ++p == pe ) - goto _test_eof1489; -case 1489: + goto _test_eof1507; +case 1507: goto st0; -tr1119: +tr1133: { s->buffer_length = 0; } - goto st347; -tr1113: + goto st353; +tr1127: { s->buffer[0] = 0; s->buffer_length = 0; @@ -44817,21 +45503,21 @@ tr1113: { s->buffer_length = 0; } - goto st347; -tr1120: + goto st353; +tr1134: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st347; -tr1135: + goto st353; +tr1149: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -44841,54 +45527,54 @@ tr1135: { s->buffer_length = 0; } - goto st347; -st347: + goto st353; +st353: if ( ++p == pe ) - goto _test_eof347; -case 347: + goto _test_eof353; +case 353: if ( (*p) == 10 ) - goto tr1121; - goto tr1120; -tr1107: + goto tr1135; + goto tr1134; +tr1121: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st348; -tr1108: + goto st354; +tr1122: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st348; -tr1109: + goto st354; +tr1123: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st348; -tr1111: + goto st354; +tr1125: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st348; -st348: + goto st354; +st354: if ( ++p == pe ) - goto _test_eof348; -case 348: + goto _test_eof354; +case 354: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44902,19 +45588,19 @@ case 348: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1103; - case 32: goto tr1103; - case 40: goto tr1104; - case 41: goto tr1105; - case 1802: goto tr1112; - case 1851: goto tr1113; - case 2058: goto tr1112; - case 2107: goto tr1113; + case 9: goto tr1117; + case 32: goto tr1117; + case 40: goto tr1118; + case 41: goto tr1119; + case 1802: goto tr1126; + case 1851: goto tr1127; + case 2058: goto tr1126; + case 2107: goto tr1127; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1122; - goto tr1102; -tr1124: + goto tr1136; + goto tr1116; +tr1138: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -44926,11 +45612,11 @@ tr1124: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st349; -tr1122: + goto st355; +tr1136: { s->number64_tmp = s->number64; } @@ -44948,17 +45634,17 @@ tr1122: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st349; -tr1133: + goto st355; +tr1147: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -44978,69 +45664,69 @@ tr1133: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st349; -st349: + goto st355; +st355: if ( ++p == pe ) - goto _test_eof349; -case 349: + goto _test_eof355; +case 355: switch( (*p) ) { - case 68: goto tr1125; - case 72: goto tr1126; - case 77: goto tr1127; - case 83: goto st350; - case 87: goto tr1129; - case 100: goto tr1125; - case 104: goto tr1126; - case 109: goto tr1127; - case 115: goto st350; - case 119: goto tr1129; + case 68: goto tr1139; + case 72: goto tr1140; + case 77: goto tr1141; + case 83: goto st356; + case 87: goto tr1143; + case 100: goto tr1139; + case 104: goto tr1140; + case 109: goto tr1141; + case 115: goto st356; + case 119: goto tr1143; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1124; - goto tr1123; -tr1125: + goto tr1138; + goto tr1137; +tr1139: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st350; -tr1126: + goto st356; +tr1140: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st350; -tr1127: + goto st356; +tr1141: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st350; -tr1129: + goto st356; +tr1143: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st350; -st350: + goto st356; +st356: if ( ++p == pe ) - goto _test_eof350; -case 350: + goto _test_eof356; +case 356: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45054,34 +45740,34 @@ case 350: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1130; - case 32: goto tr1130; - case 40: goto tr1131; - case 41: goto tr1132; - case 1802: goto tr1134; - case 1851: goto tr1135; - case 2058: goto tr1134; - case 2107: goto tr1135; + case 9: goto tr1144; + case 32: goto tr1144; + case 40: goto tr1145; + case 41: goto tr1146; + case 1802: goto tr1148; + case 1851: goto tr1149; + case 2058: goto tr1148; + case 2107: goto tr1149; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1133; - goto tr1102; -tr1099: + goto tr1147; + goto tr1116; +tr1113: { s->buffer_length = 0; } - goto st351; -tr1136: + goto st357; +tr1150: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st351; -st351: + goto st357; +st357: if ( ++p == pe ) - goto _test_eof351; -case 351: + goto _test_eof357; +case 357: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -45101,14 +45787,14 @@ case 351: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1137; + goto tr1151; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1136; - goto tr1094; -st352: + goto tr1150; + goto tr1108; +st358: if ( ++p == pe ) - goto _test_eof352; -case 352: + goto _test_eof358; +case 358: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45122,38 +45808,38 @@ case 352: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st353; - case 32: goto st353; - case 40: goto tr1140; - case 41: goto tr1141; - case 2058: goto tr1142; - case 2107: goto tr1143; - } - goto tr1138; -tr1140: + case 9: goto st359; + case 32: goto st359; + case 40: goto tr1154; + case 41: goto tr1155; + case 2058: goto tr1156; + case 2107: goto tr1157; + } + goto tr1152; +tr1154: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st353; -tr1141: + goto st359; +tr1155: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st353; -tr1142: + goto st359; +tr1156: { s->line_counter++; } - goto st353; -tr1173: + goto st359; +tr1187: { s->buffer[s->buffer_length++] = 0; @@ -45163,18 +45849,18 @@ tr1173: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 353; goto _out;} + {p++; cs = 359; goto _out;} } } } { s->line_counter++; } - goto st353; -st353: + goto st359; +st359: if ( ++p == pe ) - goto _test_eof353; -case 353: + goto _test_eof359; +case 359: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45188,27 +45874,27 @@ case 353: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st353; - case 32: goto st353; - case 40: goto tr1140; - case 41: goto tr1141; - case 42: goto tr1144; - case 46: goto tr1145; - case 92: goto tr1146; - case 95: goto tr1144; - case 2058: goto tr1142; - case 2107: goto tr1143; + case 9: goto st359; + case 32: goto st359; + case 40: goto tr1154; + case 41: goto tr1155; + case 42: goto tr1158; + case 46: goto tr1159; + case 92: goto tr1160; + case 95: goto tr1158; + case 2058: goto tr1156; + case 2107: goto tr1157; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1144; + goto tr1158; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1144; + goto tr1158; } else - goto tr1144; - goto tr1138; -tr1147: + goto tr1158; + goto tr1152; +tr1161: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -45216,11 +45902,11 @@ tr1147: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st354; -tr1154: + goto st360; +tr1168: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -45232,11 +45918,11 @@ tr1154: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st354; -tr1169: + goto st360; +tr1183: { s->dname_tmp_length++; } @@ -45247,11 +45933,11 @@ tr1169: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st354; -tr1144: + goto st360; +tr1158: { s->dname = s->zone_origin; } @@ -45270,30 +45956,30 @@ tr1144: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st354; -st354: + goto st360; +st360: if ( ++p == pe ) - goto _test_eof354; -case 354: + goto _test_eof360; +case 360: switch( (*p) ) { - case 42: goto tr1147; - case 46: goto tr1148; - case 92: goto st358; - case 95: goto tr1147; + case 42: goto tr1161; + case 46: goto tr1162; + case 92: goto st364; + case 95: goto tr1161; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1147; + goto tr1161; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1147; + goto tr1161; } else - goto tr1147; - goto tr1138; -tr1148: + goto tr1161; + goto tr1152; +tr1162: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -45302,11 +45988,11 @@ tr1148: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st355; -tr1170: + goto st361; +tr1184: { s->dname_tmp_length++; } @@ -45318,14 +46004,14 @@ tr1170: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st355; -st355: + goto st361; +st361: if ( ++p == pe ) - goto _test_eof355; -case 355: + goto _test_eof361; +case 361: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45339,47 +46025,47 @@ case 355: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1151; - case 32: goto tr1151; - case 40: goto tr1152; - case 41: goto tr1153; - case 42: goto tr1154; - case 45: goto tr1154; - case 92: goto tr1155; - case 95: goto tr1154; - case 1802: goto tr1156; - case 1851: goto tr1157; - case 2058: goto tr1156; - case 2107: goto tr1157; + case 9: goto tr1165; + case 32: goto tr1165; + case 40: goto tr1166; + case 41: goto tr1167; + case 42: goto tr1168; + case 45: goto tr1168; + case 92: goto tr1169; + case 95: goto tr1168; + case 1802: goto tr1170; + case 1851: goto tr1171; + case 2058: goto tr1170; + case 2107: goto tr1171; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1154; + goto tr1168; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1154; + goto tr1168; } else - goto tr1154; - goto tr1150; -tr1159: + goto tr1168; + goto tr1164; +tr1173: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st356; -tr1160: + goto st362; +tr1174: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st356; -tr1151: + goto st362; +tr1165: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -45388,8 +46074,8 @@ tr1151: s->buffer[0] = 0; s->buffer_length = 0; } - goto st356; -tr1152: + goto st362; +tr1166: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -45401,12 +46087,12 @@ tr1152: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st356; -tr1153: + goto st362; +tr1167: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -45418,15 +46104,15 @@ tr1153: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st356; -st356: + goto st362; +st362: if ( ++p == pe ) - goto _test_eof356; -case 356: + goto _test_eof362; +case 362: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45440,17 +46126,17 @@ case 356: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st356; - case 32: goto st356; - case 40: goto tr1159; - case 41: goto tr1160; - case 1802: goto tr1161; - case 1851: goto tr1162; - case 2058: goto tr1161; - case 2107: goto tr1162; - } - goto tr1150; -tr1156: + case 9: goto st362; + case 32: goto st362; + case 40: goto tr1173; + case 41: goto tr1174; + case 1802: goto tr1175; + case 1851: goto tr1176; + case 2058: goto tr1175; + case 2107: goto tr1176; + } + goto tr1164; +tr1170: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -45468,8 +46154,8 @@ tr1156: { s->line_counter++; } - goto st1490; -tr1161: + goto st1508; +tr1175: { s->zone_origin_length = s->dname_tmp_length; } @@ -45479,8 +46165,8 @@ tr1161: { s->line_counter++; } - goto st1490; -tr1164: + goto st1508; +tr1178: { s->buffer[s->buffer_length++] = 0; @@ -45490,7 +46176,7 @@ tr1164: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1490; goto _out;} + {p++; cs = 1508; goto _out;} } } } @@ -45503,25 +46189,25 @@ tr1164: { s->line_counter++; } - goto st1490; -st1490: + goto st1508; +st1508: if ( ++p == pe ) - goto _test_eof1490; -case 1490: + goto _test_eof1508; +case 1508: goto st0; -tr1162: +tr1176: { s->buffer_length = 0; } - goto st357; -tr1163: + goto st363; +tr1177: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st357; -tr1157: + goto st363; +tr1171: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -45533,26 +46219,26 @@ tr1157: { s->buffer_length = 0; } - goto st357; -st357: + goto st363; +st363: if ( ++p == pe ) - goto _test_eof357; -case 357: + goto _test_eof363; +case 363: if ( (*p) == 10 ) - goto tr1164; - goto tr1163; -tr1155: + goto tr1178; + goto tr1177; +tr1169: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st358; -tr1171: + goto st364; +tr1185: { s->dname_tmp_length++; } - goto st358; -tr1146: + goto st364; +tr1160: { s->dname = s->zone_origin; } @@ -45564,75 +46250,75 @@ tr1146: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st358; -st358: + goto st364; +st364: if ( ++p == pe ) - goto _test_eof358; -case 358: + goto _test_eof364; +case 364: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1165; - goto tr1147; -tr1165: + goto tr1179; + goto tr1161; +tr1179: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st359; -st359: + goto st365; +st365: if ( ++p == pe ) - goto _test_eof359; -case 359: + goto _test_eof365; +case 365: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1167; - goto tr1166; -tr1167: + goto tr1181; + goto tr1180; +tr1181: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st360; -st360: + goto st366; +st366: if ( ++p == pe ) - goto _test_eof360; -case 360: + goto _test_eof366; +case 366: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1168; - goto tr1166; -tr1168: + goto tr1182; + goto tr1180; +tr1182: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st361; -st361: + goto st367; +st367: if ( ++p == pe ) - goto _test_eof361; -case 361: + goto _test_eof367; +case 367: switch( (*p) ) { - case 42: goto tr1169; - case 46: goto tr1170; - case 92: goto tr1171; - case 95: goto tr1169; + case 42: goto tr1183; + case 46: goto tr1184; + case 92: goto tr1185; + case 95: goto tr1183; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1169; + goto tr1183; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1169; + goto tr1183; } else - goto tr1169; - goto tr1166; -tr1145: + goto tr1183; + goto tr1180; +tr1159: { s->dname = s->zone_origin; } @@ -45640,11 +46326,11 @@ tr1145: s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st362; -st362: + goto st368; +st368: if ( ++p == pe ) - goto _test_eof362; -case 362: + goto _test_eof368; +case 368: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45658,32 +46344,32 @@ case 362: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1151; - case 32: goto tr1151; - case 40: goto tr1152; - case 41: goto tr1153; - case 1802: goto tr1156; - case 1851: goto tr1157; - case 2058: goto tr1156; - case 2107: goto tr1157; - } - goto tr1150; -tr1143: + case 9: goto tr1165; + case 32: goto tr1165; + case 40: goto tr1166; + case 41: goto tr1167; + case 1802: goto tr1170; + case 1851: goto tr1171; + case 2058: goto tr1170; + case 2107: goto tr1171; + } + goto tr1164; +tr1157: { s->buffer_length = 0; } - goto st363; -tr1172: + goto st369; +tr1186: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st363; -st363: + goto st369; +st369: if ( ++p == pe ) - goto _test_eof363; -case 363: + goto _test_eof369; +case 369: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -45703,14 +46389,14 @@ case 363: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1173; + goto tr1187; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1172; - goto tr1138; -st364: + goto tr1186; + goto tr1152; +st370: if ( ++p == pe ) - goto _test_eof364; -case 364: + goto _test_eof370; +case 370: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45724,38 +46410,38 @@ case 364: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st365; - case 32: goto st365; - case 40: goto tr1175; - case 41: goto tr1176; - case 2058: goto tr1177; - case 2107: goto tr1178; + case 9: goto st371; + case 32: goto st371; + case 40: goto tr1189; + case 41: goto tr1190; + case 2058: goto tr1191; + case 2107: goto tr1192; } goto st0; -tr1175: +tr1189: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st365; -tr1176: + goto st371; +tr1190: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st365; -tr1177: + goto st371; +tr1191: { s->line_counter++; } - goto st365; -tr1231: + goto st371; +tr1245: { s->buffer[s->buffer_length++] = 0; @@ -45765,18 +46451,18 @@ tr1231: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 365; goto _out;} + {p++; cs = 371; goto _out;} } } } { s->line_counter++; } - goto st365; -st365: + goto st371; +st371: if ( ++p == pe ) - goto _test_eof365; -case 365: + goto _test_eof371; +case 371: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45790,32 +46476,32 @@ case 365: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st365; - case 32: goto st365; - case 40: goto tr1175; - case 41: goto tr1176; - case 2058: goto tr1177; - case 2107: goto tr1178; + case 9: goto st371; + case 32: goto st371; + case 40: goto tr1189; + case 41: goto tr1190; + case 2058: goto tr1191; + case 2107: goto tr1192; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr1179; + goto tr1193; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr1179; + goto tr1193; } else - goto tr1179; - goto tr1180; -tr1179: + goto tr1193; + goto tr1194; +tr1193: { rdata_tail = s->r_data; } - { p--; {stack[top++] = 366;goto st330;} } - goto st366; -st366: + { p--; {stack[top++] = 372;goto st336;} } + goto st372; +st372: if ( ++p == pe ) - goto _test_eof366; -case 366: + goto _test_eof372; +case 372: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45829,40 +46515,40 @@ case 366: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1182; - case 32: goto tr1182; - case 40: goto tr1183; - case 41: goto tr1184; - case 1802: goto tr1185; - case 1851: goto tr1186; - case 2058: goto tr1185; - case 2107: goto tr1187; - } - goto tr1181; -tr1190: + case 9: goto tr1196; + case 32: goto tr1196; + case 40: goto tr1197; + case 41: goto tr1198; + case 1802: goto tr1199; + case 1851: goto tr1200; + case 2058: goto tr1199; + case 2107: goto tr1201; + } + goto tr1195; +tr1204: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st367; -tr1191: + goto st373; +tr1205: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st367; -tr1182: + goto st373; +tr1196: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } // Store zero terminated include filename. @@ -45876,13 +46562,13 @@ tr1182: s->buffer[0] = 0; s->buffer_length = 0; } - goto st367; -tr1183: + goto st373; +tr1197: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } // Store zero terminated include filename. @@ -45895,7 +46581,7 @@ tr1183: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } @@ -45903,13 +46589,13 @@ tr1183: s->buffer[0] = 0; s->buffer_length = 0; } - goto st367; -tr1184: + goto st373; +tr1198: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } // Store zero terminated include filename. @@ -45922,7 +46608,7 @@ tr1184: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } @@ -45930,11 +46616,11 @@ tr1184: s->buffer[0] = 0; s->buffer_length = 0; } - goto st367; -st367: + goto st373; +st373: if ( ++p == pe ) - goto _test_eof367; -case 367: + goto _test_eof373; +case 373: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45948,29 +46634,29 @@ case 367: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st367; - case 32: goto st367; - case 40: goto tr1190; - case 41: goto tr1191; - case 42: goto tr1192; - case 46: goto tr1193; - case 92: goto tr1194; - case 95: goto tr1192; - case 1802: goto tr1195; - case 1851: goto tr1196; - case 2058: goto tr1195; - case 2107: goto tr1197; + case 9: goto st373; + case 32: goto st373; + case 40: goto tr1204; + case 41: goto tr1205; + case 42: goto tr1206; + case 46: goto tr1207; + case 92: goto tr1208; + case 95: goto tr1206; + case 1802: goto tr1209; + case 1851: goto tr1210; + case 2058: goto tr1209; + case 2107: goto tr1211; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1192; + goto tr1206; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1192; + goto tr1206; } else - goto tr1192; - goto tr1188; -tr1199: + goto tr1206; + goto tr1202; +tr1213: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -45978,11 +46664,11 @@ tr1199: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st368; -tr1205: + goto st374; +tr1219: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -45994,11 +46680,11 @@ tr1205: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st368; -tr1218: + goto st374; +tr1232: { s->dname_tmp_length++; } @@ -46009,11 +46695,11 @@ tr1218: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st368; -tr1192: + goto st374; +tr1206: { s->dname = s->r_data; } @@ -46032,30 +46718,30 @@ tr1192: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st368; -st368: + goto st374; +st374: if ( ++p == pe ) - goto _test_eof368; -case 368: + goto _test_eof374; +case 374: switch( (*p) ) { - case 42: goto tr1199; - case 46: goto tr1200; - case 92: goto st372; - case 95: goto tr1199; + case 42: goto tr1213; + case 46: goto tr1214; + case 92: goto st378; + case 95: goto tr1213; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1199; + goto tr1213; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1199; + goto tr1213; } else - goto tr1199; - goto tr1198; -tr1200: + goto tr1213; + goto tr1212; +tr1214: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -46064,11 +46750,11 @@ tr1200: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st369; -tr1219: + goto st375; +tr1233: { s->dname_tmp_length++; } @@ -46080,14 +46766,14 @@ tr1219: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st369; -st369: + goto st375; +st375: if ( ++p == pe ) - goto _test_eof369; -case 369: + goto _test_eof375; +case 375: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46101,47 +46787,47 @@ case 369: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1202; - case 32: goto tr1202; - case 40: goto tr1203; - case 41: goto tr1204; - case 42: goto tr1205; - case 45: goto tr1205; - case 92: goto tr1206; - case 95: goto tr1205; - case 1802: goto tr1207; - case 1851: goto tr1208; - case 2058: goto tr1207; - case 2107: goto tr1208; + case 9: goto tr1216; + case 32: goto tr1216; + case 40: goto tr1217; + case 41: goto tr1218; + case 42: goto tr1219; + case 45: goto tr1219; + case 92: goto tr1220; + case 95: goto tr1219; + case 1802: goto tr1221; + case 1851: goto tr1222; + case 2058: goto tr1221; + case 2107: goto tr1222; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1205; + goto tr1219; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1205; + goto tr1219; } else - goto tr1205; - goto tr1188; -tr1210: + goto tr1219; + goto tr1202; +tr1224: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st370; -tr1211: + goto st376; +tr1225: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st370; -tr1202: + goto st376; +tr1216: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46153,8 +46839,8 @@ tr1202: s->buffer[0] = 0; s->buffer_length = 0; } - goto st370; -tr1203: + goto st376; +tr1217: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46169,12 +46855,12 @@ tr1203: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st370; -tr1204: + goto st376; +tr1218: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46189,15 +46875,15 @@ tr1204: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st370; -st370: + goto st376; +st376: if ( ++p == pe ) - goto _test_eof370; -case 370: + goto _test_eof376; +case 376: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46211,23 +46897,23 @@ case 370: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st370; - case 32: goto st370; - case 40: goto tr1210; - case 41: goto tr1211; - case 1802: goto tr1195; - case 1851: goto tr1196; - case 2058: goto tr1195; - case 2107: goto tr1196; + case 9: goto st376; + case 32: goto st376; + case 40: goto tr1224; + case 41: goto tr1225; + case 1802: goto tr1209; + case 1851: goto tr1210; + case 2058: goto tr1209; + case 2107: goto tr1210; } goto tr91; -tr1185: - cs = 1491; +tr1199: + cs = 1509; { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } // Store zero terminated include filename. @@ -46248,7 +46934,7 @@ tr1185: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -46268,7 +46954,7 @@ tr1185: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st319;} + p--; {goto st325;} } // Parse included zone file. @@ -46288,13 +46974,13 @@ tr1185: } zs_deinit(ss); free(ss); - p--; {goto st319;} + p--; {goto st325;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1474; {p++; goto _out;} + p--; cs = 1492; {p++; goto _out;} } } { @@ -46304,8 +46990,8 @@ tr1185: s->line_counter++; } goto _again; -tr1195: - cs = 1491; +tr1209: + cs = 1509; { // Extend relative file path. if (s->include_filename[0] != '/') { @@ -46313,7 +46999,7 @@ tr1195: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -46333,7 +47019,7 @@ tr1195: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st319;} + p--; {goto st325;} } // Parse included zone file. @@ -46353,13 +47039,13 @@ tr1195: } zs_deinit(ss); free(ss); - p--; {goto st319;} + p--; {goto st325;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1474; {p++; goto _out;} + p--; cs = 1492; {p++; goto _out;} } } { @@ -46369,8 +47055,8 @@ tr1195: s->line_counter++; } goto _again; -tr1207: - cs = 1491; +tr1221: + cs = 1509; { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46389,7 +47075,7 @@ tr1207: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -46409,7 +47095,7 @@ tr1207: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st319;} + p--; {goto st325;} } // Parse included zone file. @@ -46429,13 +47115,13 @@ tr1207: } zs_deinit(ss); free(ss); - p--; {goto st319;} + p--; {goto st325;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1474; {p++; goto _out;} + p--; cs = 1492; {p++; goto _out;} } } { @@ -46445,8 +47131,8 @@ tr1207: s->line_counter++; } goto _again; -tr1213: - cs = 1491; +tr1227: + cs = 1509; { s->buffer[s->buffer_length++] = 0; @@ -46467,7 +47153,7 @@ tr1213: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -46487,7 +47173,7 @@ tr1213: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st319;} + p--; {goto st325;} } // Parse included zone file. @@ -46507,13 +47193,13 @@ tr1213: } zs_deinit(ss); free(ss); - p--; {goto st319;} + p--; {goto st325;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1474; {p++; goto _out;} + p--; cs = 1492; {p++; goto _out;} } } { @@ -46523,29 +47209,29 @@ tr1213: s->line_counter++; } goto _again; -st1491: +st1509: if ( ++p == pe ) - goto _test_eof1491; -case 1491: + goto _test_eof1509; +case 1509: goto st0; -tr1196: +tr1210: { s->buffer_length = 0; } - goto st371; -tr1212: + goto st377; +tr1226: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st371; -tr1186: + goto st377; +tr1200: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } // Store zero terminated include filename. @@ -46562,8 +47248,8 @@ tr1186: { s->buffer_length = 0; } - goto st371; -tr1208: + goto st377; +tr1222: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46578,26 +47264,26 @@ tr1208: { s->buffer_length = 0; } - goto st371; -st371: + goto st377; +st377: if ( ++p == pe ) - goto _test_eof371; -case 371: + goto _test_eof377; +case 377: if ( (*p) == 10 ) - goto tr1213; - goto tr1212; -tr1206: + goto tr1227; + goto tr1226; +tr1220: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st372; -tr1220: + goto st378; +tr1234: { s->dname_tmp_length++; } - goto st372; -tr1194: + goto st378; +tr1208: { s->dname = s->r_data; } @@ -46609,75 +47295,75 @@ tr1194: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st372; -st372: + goto st378; +st378: if ( ++p == pe ) - goto _test_eof372; -case 372: + goto _test_eof378; +case 378: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1214; - goto tr1199; -tr1214: + goto tr1228; + goto tr1213; +tr1228: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st373; -st373: + goto st379; +st379: if ( ++p == pe ) - goto _test_eof373; -case 373: + goto _test_eof379; +case 379: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1216; - goto tr1215; -tr1216: + goto tr1230; + goto tr1229; +tr1230: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st374; -st374: + goto st380; +st380: if ( ++p == pe ) - goto _test_eof374; -case 374: + goto _test_eof380; +case 380: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1217; - goto tr1215; -tr1217: + goto tr1231; + goto tr1229; +tr1231: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st375; -st375: + goto st381; +st381: if ( ++p == pe ) - goto _test_eof375; -case 375: + goto _test_eof381; +case 381: switch( (*p) ) { - case 42: goto tr1218; - case 46: goto tr1219; - case 92: goto tr1220; - case 95: goto tr1218; + case 42: goto tr1232; + case 46: goto tr1233; + case 92: goto tr1234; + case 95: goto tr1232; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1218; + goto tr1232; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1218; + goto tr1232; } else - goto tr1218; - goto tr1215; -tr1193: + goto tr1232; + goto tr1229; +tr1207: { s->dname = s->r_data; } @@ -46685,11 +47371,11 @@ tr1193: s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st376; -st376: + goto st382; +st382: if ( ++p == pe ) - goto _test_eof376; -case 376: + goto _test_eof382; +case 382: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46703,34 +47389,34 @@ case 376: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1202; - case 32: goto tr1202; - case 40: goto tr1203; - case 41: goto tr1204; - case 1802: goto tr1207; - case 1851: goto tr1208; - case 2058: goto tr1207; - case 2107: goto tr1208; - } - goto tr1188; -tr1197: + case 9: goto tr1216; + case 32: goto tr1216; + case 40: goto tr1217; + case 41: goto tr1218; + case 1802: goto tr1221; + case 1851: goto tr1222; + case 2058: goto tr1221; + case 2107: goto tr1222; + } + goto tr1202; +tr1211: { s->buffer_length = 0; } - goto st377; -tr1221: + goto st383; +tr1235: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st377; -tr1187: + goto st383; +tr1201: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } // Store zero terminated include filename. @@ -46747,11 +47433,11 @@ tr1187: s->buffer[0] = 0; s->buffer_length = 0; } - goto st377; -st377: + goto st383; +st383: if ( ++p == pe ) - goto _test_eof377; -case 377: + goto _test_eof383; +case 383: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -46771,17 +47457,17 @@ case 377: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr1213; - case 2058: goto tr1222; + case 1802: goto tr1227; + case 2058: goto tr1236; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1221; + goto tr1235; } else if ( _widec >= 1664 ) - goto tr1212; + goto tr1226; goto tr91; -tr1222: - cs = 1492; +tr1236: + cs = 1510; { s->buffer[s->buffer_length++] = 0; @@ -46805,7 +47491,7 @@ tr1222: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st319;} + p--; {goto st325;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -46825,7 +47511,7 @@ tr1222: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st319;} + p--; {goto st325;} } // Parse included zone file. @@ -46845,23 +47531,23 @@ tr1222: } zs_deinit(ss); free(ss); - p--; {goto st319;} + p--; {goto st325;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1474; {p++; goto _out;} + p--; cs = 1492; {p++; goto _out;} } } { p--; {cs = stack[--top];goto _again;} } goto _again; -st1492: +st1510: if ( ++p == pe ) - goto _test_eof1492; -case 1492: + goto _test_eof1510; +case 1510: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46875,50 +47561,50 @@ case 1492: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st378; - case 32: goto st378; - case 40: goto tr1224; - case 41: goto tr1225; - case 42: goto tr1192; - case 46: goto tr1193; - case 92: goto tr1194; - case 95: goto tr1192; - case 2058: goto tr1226; - case 2107: goto tr1227; + case 9: goto st384; + case 32: goto st384; + case 40: goto tr1238; + case 41: goto tr1239; + case 42: goto tr1206; + case 46: goto tr1207; + case 92: goto tr1208; + case 95: goto tr1206; + case 2058: goto tr1240; + case 2107: goto tr1241; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1192; + goto tr1206; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1192; + goto tr1206; } else - goto tr1192; - goto tr1198; -tr1224: + goto tr1206; + goto tr1212; +tr1238: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st378; -tr1225: + goto st384; +tr1239: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st378; -tr1226: + goto st384; +tr1240: { s->line_counter++; } - goto st378; -tr1229: + goto st384; +tr1243: { s->buffer[s->buffer_length++] = 0; @@ -46928,18 +47614,18 @@ tr1229: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 378; goto _out;} + {p++; cs = 384; goto _out;} } } } { s->line_counter++; } - goto st378; -st378: + goto st384; +st384: if ( ++p == pe ) - goto _test_eof378; -case 378: + goto _test_eof384; +case 384: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46953,42 +47639,42 @@ case 378: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st378; - case 32: goto st378; - case 40: goto tr1224; - case 41: goto tr1225; - case 42: goto tr1192; - case 46: goto tr1193; - case 92: goto tr1194; - case 95: goto tr1192; - case 2058: goto tr1226; - case 2107: goto tr1227; + case 9: goto st384; + case 32: goto st384; + case 40: goto tr1238; + case 41: goto tr1239; + case 42: goto tr1206; + case 46: goto tr1207; + case 92: goto tr1208; + case 95: goto tr1206; + case 2058: goto tr1240; + case 2107: goto tr1241; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1192; + goto tr1206; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1192; + goto tr1206; } else - goto tr1192; - goto tr1198; -tr1227: + goto tr1206; + goto tr1212; +tr1241: { s->buffer_length = 0; } - goto st379; -tr1228: + goto st385; +tr1242: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st379; -st379: + goto st385; +st385: if ( ++p == pe ) - goto _test_eof379; -case 379: + goto _test_eof385; +case 385: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -47008,26 +47694,26 @@ case 379: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1229; + goto tr1243; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1228; + goto tr1242; goto st0; -tr1178: +tr1192: { s->buffer_length = 0; } - goto st380; -tr1230: + goto st386; +tr1244: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st380; -st380: + goto st386; +st386: if ( ++p == pe ) - goto _test_eof380; -case 380: + goto _test_eof386; +case 386: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -47047,51 +47733,51 @@ case 380: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1231; + goto tr1245; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1230; + goto tr1244; goto st0; -st381: +st387: if ( ++p == pe ) - goto _test_eof381; -case 381: + goto _test_eof387; +case 387: if ( (*p) == 43 ) - goto tr1233; + goto tr1247; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1233; + goto tr1247; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1233; + goto tr1247; } else - goto tr1233; - goto tr1232; -tr1233: + goto tr1247; + goto tr1246; +tr1247: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st382; -st382: + goto st388; +st388: if ( ++p == pe ) - goto _test_eof382; -case 382: + goto _test_eof388; +case 388: if ( (*p) == 43 ) - goto tr1234; + goto tr1248; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1234; + goto tr1248; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1234; + goto tr1248; } else - goto tr1234; - goto tr1232; -tr1234: + goto tr1248; + goto tr1246; +tr1248: { *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; @@ -47099,28 +47785,28 @@ tr1234: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st383; -st383: + goto st389; +st389: if ( ++p == pe ) - goto _test_eof383; -case 383: + goto _test_eof389; +case 389: switch( (*p) ) { - case 43: goto tr1235; - case 61: goto st387; + case 43: goto tr1249; + case 61: goto st393; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1235; + goto tr1249; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1235; + goto tr1249; } else - goto tr1235; - goto tr1232; -tr1235: + goto tr1249; + goto tr1246; +tr1249: { *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; @@ -47128,51 +47814,51 @@ tr1235: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st384; -st384: + goto st390; +st390: if ( ++p == pe ) - goto _test_eof384; -case 384: + goto _test_eof390; +case 390: switch( (*p) ) { - case 43: goto tr1237; - case 61: goto st385; + case 43: goto tr1251; + case 61: goto st391; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1237; + goto tr1251; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1237; + goto tr1251; } else - goto tr1237; - goto tr1232; -tr1239: + goto tr1251; + goto tr1246; +tr1253: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st385; -tr1240: + goto st391; +tr1254: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st385; -tr1241: + goto st391; +tr1255: { s->line_counter++; } - goto st385; -tr1247: + goto st391; +tr1261: { s->buffer[s->buffer_length++] = 0; @@ -47182,23 +47868,23 @@ tr1247: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 385; goto _out;} + {p++; cs = 391; goto _out;} } } } { s->line_counter++; } - goto st385; -tr1237: + goto st391; +tr1251: { *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st385; -st385: + goto st391; +st391: if ( ++p == pe ) - goto _test_eof385; -case 385: + goto _test_eof391; +case 391: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47216,43 +47902,43 @@ case 385: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st385; - case 32: goto st385; - case 40: goto tr1239; - case 41: goto tr1240; - case 43: goto tr1233; - case 3082: goto tr1241; - case 3131: goto tr1242; - case 3338: goto tr1243; - case 3387: goto tr1243; - case 3594: goto tr1244; - case 3643: goto tr1245; + case 9: goto st391; + case 32: goto st391; + case 40: goto tr1253; + case 41: goto tr1254; + case 43: goto tr1247; + case 3082: goto tr1255; + case 3131: goto tr1256; + case 3338: goto tr1257; + case 3387: goto tr1257; + case 3594: goto tr1258; + case 3643: goto tr1259; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1233; + goto tr1247; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1233; + goto tr1247; } else - goto tr1233; - goto tr1232; -tr1242: + goto tr1247; + goto tr1246; +tr1256: { s->buffer_length = 0; } - goto st386; -tr1246: + goto st392; +tr1260: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st386; -st386: + goto st392; +st392: if ( ++p == pe ) - goto _test_eof386; -case 386: + goto _test_eof392; +case 392: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -47272,32 +47958,32 @@ case 386: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1247; + goto tr1261; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1246; - goto tr1232; -tr1243: + goto tr1260; + goto tr1246; +tr1257: { p--; {cs = stack[--top];goto _again;} } - goto st1493; -st1493: + goto st1511; +st1511: if ( ++p == pe ) - goto _test_eof1493; -case 1493: + goto _test_eof1511; +case 1511: goto st0; -tr1244: +tr1258: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1494; -st1494: + goto st1512; +st1512: if ( ++p == pe ) - goto _test_eof1494; -case 1494: + goto _test_eof1512; +case 1512: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47315,39 +48001,39 @@ case 1494: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st385; - case 32: goto st385; - case 40: goto tr1239; - case 41: goto tr1240; - case 43: goto tr1233; - case 3082: goto tr1241; - case 3131: goto tr1242; - case 3338: goto tr1243; - case 3387: goto tr1243; - case 3594: goto tr1244; - case 3643: goto tr1245; + case 9: goto st391; + case 32: goto st391; + case 40: goto tr1253; + case 41: goto tr1254; + case 43: goto tr1247; + case 3082: goto tr1255; + case 3131: goto tr1256; + case 3338: goto tr1257; + case 3387: goto tr1257; + case 3594: goto tr1258; + case 3643: goto tr1259; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1233; + goto tr1247; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1233; + goto tr1247; } else - goto tr1233; - goto tr1232; -tr1245: + goto tr1247; + goto tr1246; +tr1259: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1495; -st1495: + goto st1513; +st1513: if ( ++p == pe ) - goto _test_eof1495; -case 1495: + goto _test_eof1513; +case 1513: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -47367,363 +48053,369 @@ case 1495: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1247; + goto tr1261; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1246; - goto tr1232; -st387: + goto tr1260; + goto tr1246; +st393: if ( ++p == pe ) - goto _test_eof387; -case 387: + goto _test_eof393; +case 393: if ( (*p) == 61 ) - goto st385; - goto tr1232; -st388: + goto st391; + goto tr1246; +st394: if ( ++p == pe ) - goto _test_eof388; -case 388: + goto _test_eof394; +case 394: switch( (*p) ) { - case 65: goto st389; - case 67: goto st399; - case 68: goto st420; - case 69: goto st437; - case 72: goto st444; - case 73: goto st453; - case 75: goto st461; - case 76: goto st465; - case 77: goto st473; - case 78: goto st479; - case 79: goto st495; - case 80: goto st505; - case 82: goto st508; - case 83: goto st515; - case 84: goto st534; - case 85: goto st544; - case 87: goto st547; - case 90: goto st553; - case 97: goto st389; - case 99: goto st399; - case 100: goto st420; - case 101: goto st437; - case 104: goto st444; - case 105: goto st453; - case 107: goto st461; - case 108: goto st465; - case 109: goto st473; - case 110: goto st479; - case 111: goto st495; - case 112: goto st505; - case 114: goto st508; - case 115: goto st515; - case 116: goto st534; - case 117: goto st544; - case 119: goto st547; - case 122: goto st553; - } - goto tr1248; -st389: + case 65: goto st395; + case 67: goto st405; + case 68: goto st426; + case 69: goto st443; + case 72: goto st450; + case 73: goto st459; + case 75: goto st467; + case 76: goto st471; + case 77: goto st479; + case 78: goto st485; + case 79: goto st501; + case 80: goto st511; + case 82: goto st514; + case 83: goto st527; + case 84: goto st546; + case 85: goto st556; + case 87: goto st559; + case 90: goto st565; + case 97: goto st395; + case 99: goto st405; + case 100: goto st426; + case 101: goto st443; + case 104: goto st450; + case 105: goto st459; + case 107: goto st467; + case 108: goto st471; + case 109: goto st479; + case 110: goto st485; + case 111: goto st501; + case 112: goto st511; + case 114: goto st514; + case 115: goto st527; + case 116: goto st546; + case 117: goto st556; + case 119: goto st559; + case 122: goto st565; + } + goto tr1262; +st395: if ( ++p == pe ) - goto _test_eof389; -case 389: + goto _test_eof395; +case 395: switch( (*p) ) { - case 32: goto tr1267; - case 59: goto tr1267; - case 65: goto st390; - case 70: goto st393; - case 80: goto st397; - case 97: goto st390; - case 102: goto st393; - case 112: goto st397; + case 32: goto tr1281; + case 59: goto tr1281; + case 65: goto st396; + case 70: goto st399; + case 80: goto st403; + case 97: goto st396; + case 102: goto st399; + case 112: goto st403; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1267; + goto tr1281; } else if ( (*p) >= 9 ) - goto tr1267; - goto tr1248; -tr1267: + goto tr1281; + goto tr1262; +tr1281: { type_num(KNOT_RRTYPE_A, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1273: + goto st1514; +tr1287: { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1277: + goto st1514; +tr1291: { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1279: + goto st1514; +tr1293: { type_num(KNOT_RRTYPE_APL, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1286: + goto st1514; +tr1300: { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1293: + goto st1514; +tr1307: { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1294: + goto st1514; +tr1308: { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1297: + goto st1514; +tr1311: { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1301: + goto st1514; +tr1315: { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1305: + goto st1514; +tr1319: { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1312: + goto st1514; +tr1326: { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1317: + goto st1514; +tr1331: { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1321: + goto st1514; +tr1335: { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1322: + goto st1514; +tr1336: { type_num(KNOT_RRTYPE_DS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1326: + goto st1514; +tr1340: { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1332: + goto st1514; +tr1346: { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1334: + goto st1514; +tr1348: { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1340: + goto st1514; +tr1354: { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1344: + goto st1514; +tr1358: { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1352: + goto st1514; +tr1366: { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1356: + goto st1514; +tr1370: { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1357: + goto st1514; +tr1371: { type_num(KNOT_RRTYPE_KX, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1363: + goto st1514; +tr1377: { type_num(KNOT_RRTYPE_L32, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1365: + goto st1514; +tr1379: { type_num(KNOT_RRTYPE_L64, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1367: + goto st1514; +tr1381: { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1368: + goto st1514; +tr1382: { type_num(KNOT_RRTYPE_LP, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1374: + goto st1514; +tr1388: { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1375: + goto st1514; +tr1389: { type_num(KNOT_RRTYPE_MX, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1382: + goto st1514; +tr1396: { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1384: + goto st1514; +tr1398: { type_num(KNOT_RRTYPE_NID, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1385: + goto st1514; +tr1399: { type_num(KNOT_RRTYPE_NS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1388: + goto st1514; +tr1402: { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1390: + goto st1514; +tr1404: { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1396: + goto st1514; +tr1410: { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1406: + goto st1514; +tr1420: { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1409: + goto st1514; +tr1423: { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1413: + goto st1514; +tr1433: + { type_num(KNOT_RRTYPE_RESINFO, &rdata_tail); } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1514; +tr1434: { type_num(KNOT_RRTYPE_RP, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1417: + goto st1514; +tr1438: { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1418: + goto st1514; +tr1439: { type_num(KNOT_RRTYPE_RT, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1429: + goto st1514; +tr1450: { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1431: + goto st1514; +tr1452: { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1433: + goto st1514; +tr1454: { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1435: + goto st1514; +tr1456: { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1439: + goto st1514; +tr1460: { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1442: + goto st1514; +tr1463: { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1448: + goto st1514; +tr1469: { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1450: + goto st1514; +tr1471: { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1455: + goto st1514; +tr1476: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -47731,1238 +48423,1184 @@ tr1455: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1459: + goto st1514; +tr1480: { type_num(KNOT_RRTYPE_URI, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1465: + goto st1514; +tr1486: { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -tr1471: + goto st1514; +tr1492: { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1496; -st1496: + goto st1514; +st1514: if ( ++p == pe ) - goto _test_eof1496; -case 1496: + goto _test_eof1514; +case 1514: goto st0; -st390: - if ( ++p == pe ) - goto _test_eof390; -case 390: - switch( (*p) ) { - case 65: goto st391; - case 97: goto st391; - } - goto tr1248; -st391: - if ( ++p == pe ) - goto _test_eof391; -case 391: - switch( (*p) ) { - case 65: goto st392; - case 97: goto st392; - } - goto tr1248; -st392: - if ( ++p == pe ) - goto _test_eof392; -case 392: - switch( (*p) ) { - case 32: goto tr1273; - case 59: goto tr1273; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1273; - } else if ( (*p) >= 9 ) - goto tr1273; - goto tr1248; -st393: - if ( ++p == pe ) - goto _test_eof393; -case 393: - switch( (*p) ) { - case 83: goto st394; - case 115: goto st394; - } - goto tr1248; -st394: - if ( ++p == pe ) - goto _test_eof394; -case 394: - switch( (*p) ) { - case 68: goto st395; - case 100: goto st395; - } - goto tr1248; -st395: - if ( ++p == pe ) - goto _test_eof395; -case 395: - switch( (*p) ) { - case 66: goto st396; - case 98: goto st396; - } - goto tr1248; st396: if ( ++p == pe ) goto _test_eof396; case 396: switch( (*p) ) { - case 32: goto tr1277; - case 59: goto tr1277; + case 65: goto st397; + case 97: goto st397; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1277; - } else if ( (*p) >= 9 ) - goto tr1277; - goto tr1248; + goto tr1262; st397: if ( ++p == pe ) goto _test_eof397; case 397: switch( (*p) ) { - case 76: goto st398; - case 108: goto st398; + case 65: goto st398; + case 97: goto st398; } - goto tr1248; + goto tr1262; st398: if ( ++p == pe ) goto _test_eof398; case 398: switch( (*p) ) { - case 32: goto tr1279; - case 59: goto tr1279; + case 32: goto tr1287; + case 59: goto tr1287; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1279; + goto tr1287; } else if ( (*p) >= 9 ) - goto tr1279; - goto tr1248; + goto tr1287; + goto tr1262; st399: if ( ++p == pe ) goto _test_eof399; case 399: switch( (*p) ) { - case 65: goto st400; - case 68: goto st402; - case 69: goto st409; - case 78: goto st412; - case 83: goto st416; - case 97: goto st400; - case 100: goto st402; - case 101: goto st409; - case 110: goto st412; - case 115: goto st416; - } - goto tr1248; + case 83: goto st400; + case 115: goto st400; + } + goto tr1262; st400: if ( ++p == pe ) goto _test_eof400; case 400: switch( (*p) ) { - case 65: goto st401; - case 97: goto st401; + case 68: goto st401; + case 100: goto st401; } - goto tr1248; + goto tr1262; st401: if ( ++p == pe ) goto _test_eof401; case 401: switch( (*p) ) { - case 32: goto tr1286; - case 59: goto tr1286; + case 66: goto st402; + case 98: goto st402; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1286; - } else if ( (*p) >= 9 ) - goto tr1286; - goto tr1248; + goto tr1262; st402: if ( ++p == pe ) goto _test_eof402; case 402: switch( (*p) ) { - case 78: goto st403; - case 83: goto st408; - case 110: goto st403; - case 115: goto st408; + case 32: goto tr1291; + case 59: goto tr1291; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1291; + } else if ( (*p) >= 9 ) + goto tr1291; + goto tr1262; st403: if ( ++p == pe ) goto _test_eof403; case 403: switch( (*p) ) { - case 83: goto st404; - case 115: goto st404; + case 76: goto st404; + case 108: goto st404; } - goto tr1248; + goto tr1262; st404: if ( ++p == pe ) goto _test_eof404; case 404: switch( (*p) ) { - case 75: goto st405; - case 107: goto st405; + case 32: goto tr1293; + case 59: goto tr1293; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1293; + } else if ( (*p) >= 9 ) + goto tr1293; + goto tr1262; st405: if ( ++p == pe ) goto _test_eof405; case 405: switch( (*p) ) { - case 69: goto st406; - case 101: goto st406; + case 65: goto st406; + case 68: goto st408; + case 69: goto st415; + case 78: goto st418; + case 83: goto st422; + case 97: goto st406; + case 100: goto st408; + case 101: goto st415; + case 110: goto st418; + case 115: goto st422; } - goto tr1248; + goto tr1262; st406: if ( ++p == pe ) goto _test_eof406; case 406: switch( (*p) ) { - case 89: goto st407; - case 121: goto st407; + case 65: goto st407; + case 97: goto st407; } - goto tr1248; + goto tr1262; st407: if ( ++p == pe ) goto _test_eof407; case 407: switch( (*p) ) { - case 32: goto tr1293; - case 59: goto tr1293; + case 32: goto tr1300; + case 59: goto tr1300; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1293; + goto tr1300; } else if ( (*p) >= 9 ) - goto tr1293; - goto tr1248; + goto tr1300; + goto tr1262; st408: if ( ++p == pe ) goto _test_eof408; case 408: switch( (*p) ) { - case 32: goto tr1294; - case 59: goto tr1294; + case 78: goto st409; + case 83: goto st414; + case 110: goto st409; + case 115: goto st414; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1294; - } else if ( (*p) >= 9 ) - goto tr1294; - goto tr1248; + goto tr1262; st409: if ( ++p == pe ) goto _test_eof409; case 409: switch( (*p) ) { - case 82: goto st410; - case 114: goto st410; + case 83: goto st410; + case 115: goto st410; } - goto tr1248; + goto tr1262; st410: if ( ++p == pe ) goto _test_eof410; case 410: switch( (*p) ) { - case 84: goto st411; - case 116: goto st411; + case 75: goto st411; + case 107: goto st411; } - goto tr1248; + goto tr1262; st411: if ( ++p == pe ) goto _test_eof411; case 411: switch( (*p) ) { - case 32: goto tr1297; - case 59: goto tr1297; + case 69: goto st412; + case 101: goto st412; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1297; - } else if ( (*p) >= 9 ) - goto tr1297; - goto tr1248; + goto tr1262; st412: if ( ++p == pe ) goto _test_eof412; case 412: switch( (*p) ) { - case 65: goto st413; - case 97: goto st413; + case 89: goto st413; + case 121: goto st413; } - goto tr1248; + goto tr1262; st413: if ( ++p == pe ) goto _test_eof413; case 413: switch( (*p) ) { - case 77: goto st414; - case 109: goto st414; + case 32: goto tr1307; + case 59: goto tr1307; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1307; + } else if ( (*p) >= 9 ) + goto tr1307; + goto tr1262; st414: if ( ++p == pe ) goto _test_eof414; case 414: switch( (*p) ) { - case 69: goto st415; - case 101: goto st415; + case 32: goto tr1308; + case 59: goto tr1308; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1308; + } else if ( (*p) >= 9 ) + goto tr1308; + goto tr1262; st415: if ( ++p == pe ) goto _test_eof415; case 415: switch( (*p) ) { - case 32: goto tr1301; - case 59: goto tr1301; + case 82: goto st416; + case 114: goto st416; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1301; - } else if ( (*p) >= 9 ) - goto tr1301; - goto tr1248; + goto tr1262; st416: if ( ++p == pe ) goto _test_eof416; case 416: switch( (*p) ) { - case 89: goto st417; - case 121: goto st417; + case 84: goto st417; + case 116: goto st417; } - goto tr1248; + goto tr1262; st417: if ( ++p == pe ) goto _test_eof417; case 417: switch( (*p) ) { - case 78: goto st418; - case 110: goto st418; + case 32: goto tr1311; + case 59: goto tr1311; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1311; + } else if ( (*p) >= 9 ) + goto tr1311; + goto tr1262; st418: if ( ++p == pe ) goto _test_eof418; case 418: switch( (*p) ) { - case 67: goto st419; - case 99: goto st419; + case 65: goto st419; + case 97: goto st419; } - goto tr1248; + goto tr1262; st419: if ( ++p == pe ) goto _test_eof419; case 419: switch( (*p) ) { - case 32: goto tr1305; - case 59: goto tr1305; + case 77: goto st420; + case 109: goto st420; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1305; - } else if ( (*p) >= 9 ) - goto tr1305; - goto tr1248; + goto tr1262; st420: if ( ++p == pe ) goto _test_eof420; case 420: switch( (*p) ) { - case 72: goto st421; - case 78: goto st425; - case 83: goto st433; - case 104: goto st421; - case 110: goto st425; - case 115: goto st433; + case 69: goto st421; + case 101: goto st421; } - goto tr1248; + goto tr1262; st421: if ( ++p == pe ) goto _test_eof421; case 421: switch( (*p) ) { - case 67: goto st422; - case 99: goto st422; + case 32: goto tr1315; + case 59: goto tr1315; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1315; + } else if ( (*p) >= 9 ) + goto tr1315; + goto tr1262; st422: if ( ++p == pe ) goto _test_eof422; case 422: switch( (*p) ) { - case 73: goto st423; - case 105: goto st423; + case 89: goto st423; + case 121: goto st423; } - goto tr1248; + goto tr1262; st423: if ( ++p == pe ) goto _test_eof423; case 423: switch( (*p) ) { - case 68: goto st424; - case 100: goto st424; + case 78: goto st424; + case 110: goto st424; } - goto tr1248; + goto tr1262; st424: if ( ++p == pe ) goto _test_eof424; case 424: switch( (*p) ) { - case 32: goto tr1312; - case 59: goto tr1312; + case 67: goto st425; + case 99: goto st425; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1312; - } else if ( (*p) >= 9 ) - goto tr1312; - goto tr1248; + goto tr1262; st425: if ( ++p == pe ) goto _test_eof425; case 425: switch( (*p) ) { - case 65: goto st426; - case 83: goto st429; - case 97: goto st426; - case 115: goto st429; + case 32: goto tr1319; + case 59: goto tr1319; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1319; + } else if ( (*p) >= 9 ) + goto tr1319; + goto tr1262; st426: if ( ++p == pe ) goto _test_eof426; case 426: switch( (*p) ) { - case 77: goto st427; - case 109: goto st427; + case 72: goto st427; + case 78: goto st431; + case 83: goto st439; + case 104: goto st427; + case 110: goto st431; + case 115: goto st439; } - goto tr1248; + goto tr1262; st427: if ( ++p == pe ) goto _test_eof427; case 427: switch( (*p) ) { - case 69: goto st428; - case 101: goto st428; + case 67: goto st428; + case 99: goto st428; } - goto tr1248; + goto tr1262; st428: if ( ++p == pe ) goto _test_eof428; case 428: switch( (*p) ) { - case 32: goto tr1317; - case 59: goto tr1317; + case 73: goto st429; + case 105: goto st429; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1317; - } else if ( (*p) >= 9 ) - goto tr1317; - goto tr1248; + goto tr1262; st429: if ( ++p == pe ) goto _test_eof429; case 429: switch( (*p) ) { - case 75: goto st430; - case 107: goto st430; + case 68: goto st430; + case 100: goto st430; } - goto tr1248; + goto tr1262; st430: if ( ++p == pe ) goto _test_eof430; case 430: switch( (*p) ) { - case 69: goto st431; - case 101: goto st431; + case 32: goto tr1326; + case 59: goto tr1326; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1326; + } else if ( (*p) >= 9 ) + goto tr1326; + goto tr1262; st431: if ( ++p == pe ) goto _test_eof431; case 431: switch( (*p) ) { - case 89: goto st432; - case 121: goto st432; + case 65: goto st432; + case 83: goto st435; + case 97: goto st432; + case 115: goto st435; } - goto tr1248; + goto tr1262; st432: if ( ++p == pe ) goto _test_eof432; case 432: switch( (*p) ) { - case 32: goto tr1321; - case 59: goto tr1321; + case 77: goto st433; + case 109: goto st433; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1321; - } else if ( (*p) >= 9 ) - goto tr1321; - goto tr1248; + goto tr1262; st433: if ( ++p == pe ) goto _test_eof433; case 433: switch( (*p) ) { - case 32: goto tr1322; - case 59: goto tr1322; - case 89: goto st434; - case 121: goto st434; + case 69: goto st434; + case 101: goto st434; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1322; - } else if ( (*p) >= 9 ) - goto tr1322; - goto tr1248; + goto tr1262; st434: if ( ++p == pe ) goto _test_eof434; case 434: switch( (*p) ) { - case 78: goto st435; - case 110: goto st435; + case 32: goto tr1331; + case 59: goto tr1331; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1331; + } else if ( (*p) >= 9 ) + goto tr1331; + goto tr1262; st435: if ( ++p == pe ) goto _test_eof435; case 435: switch( (*p) ) { - case 67: goto st436; - case 99: goto st436; + case 75: goto st436; + case 107: goto st436; } - goto tr1248; + goto tr1262; st436: if ( ++p == pe ) goto _test_eof436; case 436: switch( (*p) ) { - case 32: goto tr1326; - case 59: goto tr1326; + case 69: goto st437; + case 101: goto st437; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1326; - } else if ( (*p) >= 9 ) - goto tr1326; - goto tr1248; + goto tr1262; st437: if ( ++p == pe ) goto _test_eof437; case 437: switch( (*p) ) { - case 85: goto st438; - case 117: goto st438; + case 89: goto st438; + case 121: goto st438; } - goto tr1248; + goto tr1262; st438: if ( ++p == pe ) goto _test_eof438; case 438: switch( (*p) ) { - case 73: goto st439; - case 105: goto st439; + case 32: goto tr1335; + case 59: goto tr1335; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1335; + } else if ( (*p) >= 9 ) + goto tr1335; + goto tr1262; st439: if ( ++p == pe ) goto _test_eof439; case 439: switch( (*p) ) { - case 52: goto st440; - case 54: goto st442; + case 32: goto tr1336; + case 59: goto tr1336; + case 89: goto st440; + case 121: goto st440; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1336; + } else if ( (*p) >= 9 ) + goto tr1336; + goto tr1262; st440: if ( ++p == pe ) goto _test_eof440; case 440: - if ( (*p) == 56 ) - goto st441; - goto tr1248; + switch( (*p) ) { + case 78: goto st441; + case 110: goto st441; + } + goto tr1262; st441: if ( ++p == pe ) goto _test_eof441; case 441: switch( (*p) ) { - case 32: goto tr1332; - case 59: goto tr1332; + case 67: goto st442; + case 99: goto st442; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1332; - } else if ( (*p) >= 9 ) - goto tr1332; - goto tr1248; + goto tr1262; st442: if ( ++p == pe ) goto _test_eof442; case 442: - if ( (*p) == 52 ) - goto st443; - goto tr1248; + switch( (*p) ) { + case 32: goto tr1340; + case 59: goto tr1340; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1340; + } else if ( (*p) >= 9 ) + goto tr1340; + goto tr1262; st443: if ( ++p == pe ) goto _test_eof443; case 443: switch( (*p) ) { - case 32: goto tr1334; - case 59: goto tr1334; + case 85: goto st444; + case 117: goto st444; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1334; - } else if ( (*p) >= 9 ) - goto tr1334; - goto tr1248; + goto tr1262; st444: if ( ++p == pe ) goto _test_eof444; case 444: switch( (*p) ) { case 73: goto st445; - case 84: goto st449; case 105: goto st445; - case 116: goto st449; } - goto tr1248; + goto tr1262; st445: if ( ++p == pe ) goto _test_eof445; case 445: switch( (*p) ) { - case 78: goto st446; - case 110: goto st446; + case 52: goto st446; + case 54: goto st448; } - goto tr1248; + goto tr1262; st446: if ( ++p == pe ) goto _test_eof446; case 446: - switch( (*p) ) { - case 70: goto st447; - case 102: goto st447; - } - goto tr1248; + if ( (*p) == 56 ) + goto st447; + goto tr1262; st447: if ( ++p == pe ) goto _test_eof447; case 447: switch( (*p) ) { - case 79: goto st448; - case 111: goto st448; + case 32: goto tr1346; + case 59: goto tr1346; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1346; + } else if ( (*p) >= 9 ) + goto tr1346; + goto tr1262; st448: if ( ++p == pe ) goto _test_eof448; case 448: - switch( (*p) ) { - case 32: goto tr1340; - case 59: goto tr1340; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1340; - } else if ( (*p) >= 9 ) - goto tr1340; - goto tr1248; + if ( (*p) == 52 ) + goto st449; + goto tr1262; st449: if ( ++p == pe ) goto _test_eof449; case 449: switch( (*p) ) { - case 84: goto st450; - case 116: goto st450; + case 32: goto tr1348; + case 59: goto tr1348; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1348; + } else if ( (*p) >= 9 ) + goto tr1348; + goto tr1262; st450: if ( ++p == pe ) goto _test_eof450; case 450: switch( (*p) ) { - case 80: goto st451; - case 112: goto st451; + case 73: goto st451; + case 84: goto st455; + case 105: goto st451; + case 116: goto st455; } - goto tr1248; + goto tr1262; st451: if ( ++p == pe ) goto _test_eof451; case 451: switch( (*p) ) { - case 83: goto st452; - case 115: goto st452; + case 78: goto st452; + case 110: goto st452; } - goto tr1248; + goto tr1262; st452: if ( ++p == pe ) goto _test_eof452; case 452: switch( (*p) ) { - case 32: goto tr1344; - case 59: goto tr1344; + case 70: goto st453; + case 102: goto st453; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1344; - } else if ( (*p) >= 9 ) - goto tr1344; - goto tr1248; + goto tr1262; st453: if ( ++p == pe ) goto _test_eof453; case 453: switch( (*p) ) { - case 80: goto st454; - case 112: goto st454; + case 79: goto st454; + case 111: goto st454; } - goto tr1248; + goto tr1262; st454: if ( ++p == pe ) goto _test_eof454; case 454: switch( (*p) ) { - case 83: goto st455; - case 115: goto st455; + case 32: goto tr1354; + case 59: goto tr1354; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1354; + } else if ( (*p) >= 9 ) + goto tr1354; + goto tr1262; st455: if ( ++p == pe ) goto _test_eof455; case 455: switch( (*p) ) { - case 69: goto st456; - case 101: goto st456; + case 84: goto st456; + case 116: goto st456; } - goto tr1248; + goto tr1262; st456: if ( ++p == pe ) goto _test_eof456; case 456: switch( (*p) ) { - case 67: goto st457; - case 99: goto st457; + case 80: goto st457; + case 112: goto st457; } - goto tr1248; + goto tr1262; st457: if ( ++p == pe ) goto _test_eof457; case 457: switch( (*p) ) { - case 75: goto st458; - case 107: goto st458; + case 83: goto st458; + case 115: goto st458; } - goto tr1248; + goto tr1262; st458: if ( ++p == pe ) goto _test_eof458; case 458: switch( (*p) ) { - case 69: goto st459; - case 101: goto st459; + case 32: goto tr1358; + case 59: goto tr1358; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1358; + } else if ( (*p) >= 9 ) + goto tr1358; + goto tr1262; st459: if ( ++p == pe ) goto _test_eof459; case 459: switch( (*p) ) { - case 89: goto st460; - case 121: goto st460; + case 80: goto st460; + case 112: goto st460; } - goto tr1248; + goto tr1262; st460: if ( ++p == pe ) goto _test_eof460; case 460: switch( (*p) ) { - case 32: goto tr1352; - case 59: goto tr1352; + case 83: goto st461; + case 115: goto st461; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1352; - } else if ( (*p) >= 9 ) - goto tr1352; - goto tr1248; + goto tr1262; st461: if ( ++p == pe ) goto _test_eof461; case 461: switch( (*p) ) { case 69: goto st462; - case 88: goto st464; case 101: goto st462; - case 120: goto st464; } - goto tr1248; + goto tr1262; st462: if ( ++p == pe ) goto _test_eof462; case 462: switch( (*p) ) { - case 89: goto st463; - case 121: goto st463; + case 67: goto st463; + case 99: goto st463; } - goto tr1248; + goto tr1262; st463: if ( ++p == pe ) goto _test_eof463; case 463: switch( (*p) ) { - case 32: goto tr1356; - case 59: goto tr1356; + case 75: goto st464; + case 107: goto st464; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1356; - } else if ( (*p) >= 9 ) - goto tr1356; - goto tr1248; + goto tr1262; st464: if ( ++p == pe ) goto _test_eof464; case 464: switch( (*p) ) { - case 32: goto tr1357; - case 59: goto tr1357; + case 69: goto st465; + case 101: goto st465; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1357; - } else if ( (*p) >= 9 ) - goto tr1357; - goto tr1248; + goto tr1262; st465: if ( ++p == pe ) goto _test_eof465; case 465: switch( (*p) ) { - case 51: goto st466; - case 54: goto st468; - case 79: goto st470; - case 80: goto st472; - case 111: goto st470; - case 112: goto st472; + case 89: goto st466; + case 121: goto st466; } - goto tr1248; + goto tr1262; st466: if ( ++p == pe ) goto _test_eof466; case 466: - if ( (*p) == 50 ) - goto st467; - goto tr1248; + switch( (*p) ) { + case 32: goto tr1366; + case 59: goto tr1366; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1366; + } else if ( (*p) >= 9 ) + goto tr1366; + goto tr1262; st467: if ( ++p == pe ) goto _test_eof467; case 467: switch( (*p) ) { - case 32: goto tr1363; - case 59: goto tr1363; + case 69: goto st468; + case 88: goto st470; + case 101: goto st468; + case 120: goto st470; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1363; - } else if ( (*p) >= 9 ) - goto tr1363; - goto tr1248; + goto tr1262; st468: if ( ++p == pe ) goto _test_eof468; case 468: - if ( (*p) == 52 ) - goto st469; - goto tr1248; + switch( (*p) ) { + case 89: goto st469; + case 121: goto st469; + } + goto tr1262; st469: if ( ++p == pe ) goto _test_eof469; case 469: switch( (*p) ) { - case 32: goto tr1365; - case 59: goto tr1365; + case 32: goto tr1370; + case 59: goto tr1370; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1365; + goto tr1370; } else if ( (*p) >= 9 ) - goto tr1365; - goto tr1248; + goto tr1370; + goto tr1262; st470: if ( ++p == pe ) goto _test_eof470; case 470: switch( (*p) ) { - case 67: goto st471; - case 99: goto st471; + case 32: goto tr1371; + case 59: goto tr1371; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1371; + } else if ( (*p) >= 9 ) + goto tr1371; + goto tr1262; st471: if ( ++p == pe ) goto _test_eof471; case 471: switch( (*p) ) { - case 32: goto tr1367; - case 59: goto tr1367; + case 51: goto st472; + case 54: goto st474; + case 79: goto st476; + case 80: goto st478; + case 111: goto st476; + case 112: goto st478; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1367; - } else if ( (*p) >= 9 ) - goto tr1367; - goto tr1248; + goto tr1262; st472: if ( ++p == pe ) goto _test_eof472; case 472: - switch( (*p) ) { - case 32: goto tr1368; - case 59: goto tr1368; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1368; - } else if ( (*p) >= 9 ) - goto tr1368; - goto tr1248; + if ( (*p) == 50 ) + goto st473; + goto tr1262; st473: if ( ++p == pe ) goto _test_eof473; case 473: switch( (*p) ) { - case 73: goto st474; - case 88: goto st478; - case 105: goto st474; - case 120: goto st478; + case 32: goto tr1377; + case 59: goto tr1377; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1377; + } else if ( (*p) >= 9 ) + goto tr1377; + goto tr1262; st474: if ( ++p == pe ) goto _test_eof474; case 474: - switch( (*p) ) { - case 78: goto st475; - case 110: goto st475; - } - goto tr1248; + if ( (*p) == 52 ) + goto st475; + goto tr1262; st475: if ( ++p == pe ) goto _test_eof475; case 475: switch( (*p) ) { - case 70: goto st476; - case 102: goto st476; + case 32: goto tr1379; + case 59: goto tr1379; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1379; + } else if ( (*p) >= 9 ) + goto tr1379; + goto tr1262; st476: if ( ++p == pe ) goto _test_eof476; case 476: switch( (*p) ) { - case 79: goto st477; - case 111: goto st477; + case 67: goto st477; + case 99: goto st477; } - goto tr1248; + goto tr1262; st477: if ( ++p == pe ) goto _test_eof477; case 477: switch( (*p) ) { - case 32: goto tr1374; - case 59: goto tr1374; + case 32: goto tr1381; + case 59: goto tr1381; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1374; + goto tr1381; } else if ( (*p) >= 9 ) - goto tr1374; - goto tr1248; + goto tr1381; + goto tr1262; st478: if ( ++p == pe ) goto _test_eof478; case 478: switch( (*p) ) { - case 32: goto tr1375; - case 59: goto tr1375; + case 32: goto tr1382; + case 59: goto tr1382; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1375; + goto tr1382; } else if ( (*p) >= 9 ) - goto tr1375; - goto tr1248; + goto tr1382; + goto tr1262; st479: if ( ++p == pe ) goto _test_eof479; case 479: switch( (*p) ) { - case 65: goto st480; - case 73: goto st484; - case 83: goto st486; - case 97: goto st480; - case 105: goto st484; - case 115: goto st486; + case 73: goto st480; + case 88: goto st484; + case 105: goto st480; + case 120: goto st484; } - goto tr1248; + goto tr1262; st480: if ( ++p == pe ) goto _test_eof480; case 480: switch( (*p) ) { - case 80: goto st481; - case 112: goto st481; + case 78: goto st481; + case 110: goto st481; } - goto tr1248; + goto tr1262; st481: if ( ++p == pe ) goto _test_eof481; case 481: switch( (*p) ) { - case 84: goto st482; - case 116: goto st482; + case 70: goto st482; + case 102: goto st482; } - goto tr1248; + goto tr1262; st482: if ( ++p == pe ) goto _test_eof482; case 482: switch( (*p) ) { - case 82: goto st483; - case 114: goto st483; + case 79: goto st483; + case 111: goto st483; } - goto tr1248; + goto tr1262; st483: if ( ++p == pe ) goto _test_eof483; case 483: switch( (*p) ) { - case 32: goto tr1382; - case 59: goto tr1382; + case 32: goto tr1388; + case 59: goto tr1388; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1382; + goto tr1388; } else if ( (*p) >= 9 ) - goto tr1382; - goto tr1248; + goto tr1388; + goto tr1262; st484: if ( ++p == pe ) goto _test_eof484; case 484: switch( (*p) ) { - case 68: goto st485; - case 100: goto st485; + case 32: goto tr1389; + case 59: goto tr1389; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1389; + } else if ( (*p) >= 9 ) + goto tr1389; + goto tr1262; st485: if ( ++p == pe ) goto _test_eof485; case 485: switch( (*p) ) { - case 32: goto tr1384; - case 59: goto tr1384; + case 65: goto st486; + case 73: goto st490; + case 83: goto st492; + case 97: goto st486; + case 105: goto st490; + case 115: goto st492; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1384; - } else if ( (*p) >= 9 ) - goto tr1384; - goto tr1248; + goto tr1262; st486: if ( ++p == pe ) goto _test_eof486; case 486: switch( (*p) ) { - case 32: goto tr1385; - case 59: goto tr1385; - case 69: goto st487; - case 101: goto st487; + case 80: goto st487; + case 112: goto st487; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1385; - } else if ( (*p) >= 9 ) - goto tr1385; - goto tr1248; + goto tr1262; st487: if ( ++p == pe ) goto _test_eof487; case 487: switch( (*p) ) { - case 67: goto st488; - case 99: goto st488; + case 84: goto st488; + case 116: goto st488; } - goto tr1248; + goto tr1262; st488: if ( ++p == pe ) goto _test_eof488; case 488: switch( (*p) ) { - case 32: goto tr1388; - case 51: goto st489; - case 59: goto tr1388; + case 82: goto st489; + case 114: goto st489; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1388; - } else if ( (*p) >= 9 ) - goto tr1388; - goto tr1248; + goto tr1262; st489: if ( ++p == pe ) goto _test_eof489; case 489: switch( (*p) ) { - case 32: goto tr1390; - case 59: goto tr1390; - case 80: goto st490; - case 112: goto st490; + case 32: goto tr1396; + case 59: goto tr1396; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1390; + goto tr1396; } else if ( (*p) >= 9 ) - goto tr1390; - goto tr1248; + goto tr1396; + goto tr1262; st490: if ( ++p == pe ) goto _test_eof490; case 490: switch( (*p) ) { - case 65: goto st491; - case 97: goto st491; + case 68: goto st491; + case 100: goto st491; } - goto tr1248; + goto tr1262; st491: if ( ++p == pe ) goto _test_eof491; case 491: switch( (*p) ) { - case 82: goto st492; - case 114: goto st492; + case 32: goto tr1398; + case 59: goto tr1398; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1398; + } else if ( (*p) >= 9 ) + goto tr1398; + goto tr1262; st492: if ( ++p == pe ) goto _test_eof492; case 492: switch( (*p) ) { - case 65: goto st493; - case 97: goto st493; + case 32: goto tr1399; + case 59: goto tr1399; + case 69: goto st493; + case 101: goto st493; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1399; + } else if ( (*p) >= 9 ) + goto tr1399; + goto tr1262; st493: if ( ++p == pe ) goto _test_eof493; case 493: switch( (*p) ) { - case 77: goto st494; - case 109: goto st494; + case 67: goto st494; + case 99: goto st494; } - goto tr1248; + goto tr1262; st494: if ( ++p == pe ) goto _test_eof494; case 494: switch( (*p) ) { - case 32: goto tr1396; - case 59: goto tr1396; + case 32: goto tr1402; + case 51: goto st495; + case 59: goto tr1402; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1396; + goto tr1402; } else if ( (*p) >= 9 ) - goto tr1396; - goto tr1248; + goto tr1402; + goto tr1262; st495: if ( ++p == pe ) goto _test_eof495; case 495: switch( (*p) ) { + case 32: goto tr1404; + case 59: goto tr1404; case 80: goto st496; case 112: goto st496; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1404; + } else if ( (*p) >= 9 ) + goto tr1404; + goto tr1262; st496: if ( ++p == pe ) goto _test_eof496; case 496: switch( (*p) ) { - case 69: goto st497; - case 101: goto st497; + case 65: goto st497; + case 97: goto st497; } - goto tr1248; + goto tr1262; st497: if ( ++p == pe ) goto _test_eof497; case 497: switch( (*p) ) { - case 78: goto st498; - case 110: goto st498; + case 82: goto st498; + case 114: goto st498; } - goto tr1248; + goto tr1262; st498: if ( ++p == pe ) goto _test_eof498; case 498: switch( (*p) ) { - case 80: goto st499; - case 112: goto st499; + case 65: goto st499; + case 97: goto st499; } - goto tr1248; + goto tr1262; st499: if ( ++p == pe ) goto _test_eof499; case 499: switch( (*p) ) { - case 71: goto st500; - case 103: goto st500; + case 77: goto st500; + case 109: goto st500; } - goto tr1248; + goto tr1262; st500: if ( ++p == pe ) goto _test_eof500; case 500: switch( (*p) ) { - case 80: goto st501; - case 112: goto st501; + case 32: goto tr1410; + case 59: goto tr1410; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1410; + } else if ( (*p) >= 9 ) + goto tr1410; + goto tr1262; st501: if ( ++p == pe ) goto _test_eof501; case 501: switch( (*p) ) { - case 75: goto st502; - case 107: goto st502; + case 80: goto st502; + case 112: goto st502; } - goto tr1248; + goto tr1262; st502: if ( ++p == pe ) goto _test_eof502; @@ -48971,163 +49609,140 @@ case 502: case 69: goto st503; case 101: goto st503; } - goto tr1248; + goto tr1262; st503: if ( ++p == pe ) goto _test_eof503; case 503: switch( (*p) ) { - case 89: goto st504; - case 121: goto st504; + case 78: goto st504; + case 110: goto st504; } - goto tr1248; + goto tr1262; st504: if ( ++p == pe ) goto _test_eof504; case 504: switch( (*p) ) { - case 32: goto tr1406; - case 59: goto tr1406; + case 80: goto st505; + case 112: goto st505; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1406; - } else if ( (*p) >= 9 ) - goto tr1406; - goto tr1248; + goto tr1262; st505: if ( ++p == pe ) goto _test_eof505; case 505: switch( (*p) ) { - case 84: goto st506; - case 116: goto st506; + case 71: goto st506; + case 103: goto st506; } - goto tr1248; + goto tr1262; st506: if ( ++p == pe ) goto _test_eof506; case 506: switch( (*p) ) { - case 82: goto st507; - case 114: goto st507; + case 80: goto st507; + case 112: goto st507; } - goto tr1248; + goto tr1262; st507: if ( ++p == pe ) goto _test_eof507; case 507: switch( (*p) ) { - case 32: goto tr1409; - case 59: goto tr1409; + case 75: goto st508; + case 107: goto st508; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1409; - } else if ( (*p) >= 9 ) - goto tr1409; - goto tr1248; + goto tr1262; st508: if ( ++p == pe ) goto _test_eof508; case 508: switch( (*p) ) { - case 80: goto st509; - case 82: goto st510; - case 84: goto st514; - case 112: goto st509; - case 114: goto st510; - case 116: goto st514; + case 69: goto st509; + case 101: goto st509; } - goto tr1248; + goto tr1262; st509: if ( ++p == pe ) goto _test_eof509; case 509: switch( (*p) ) { - case 32: goto tr1413; - case 59: goto tr1413; + case 89: goto st510; + case 121: goto st510; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1413; - } else if ( (*p) >= 9 ) - goto tr1413; - goto tr1248; + goto tr1262; st510: if ( ++p == pe ) goto _test_eof510; case 510: switch( (*p) ) { - case 83: goto st511; - case 115: goto st511; + case 32: goto tr1420; + case 59: goto tr1420; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1420; + } else if ( (*p) >= 9 ) + goto tr1420; + goto tr1262; st511: if ( ++p == pe ) goto _test_eof511; case 511: switch( (*p) ) { - case 73: goto st512; - case 105: goto st512; + case 84: goto st512; + case 116: goto st512; } - goto tr1248; + goto tr1262; st512: if ( ++p == pe ) goto _test_eof512; case 512: switch( (*p) ) { - case 71: goto st513; - case 103: goto st513; + case 82: goto st513; + case 114: goto st513; } - goto tr1248; + goto tr1262; st513: if ( ++p == pe ) goto _test_eof513; case 513: switch( (*p) ) { - case 32: goto tr1417; - case 59: goto tr1417; + case 32: goto tr1423; + case 59: goto tr1423; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1417; + goto tr1423; } else if ( (*p) >= 9 ) - goto tr1417; - goto tr1248; + goto tr1423; + goto tr1262; st514: if ( ++p == pe ) goto _test_eof514; case 514: switch( (*p) ) { - case 32: goto tr1418; - case 59: goto tr1418; + case 69: goto st515; + case 80: goto st521; + case 82: goto st522; + case 84: goto st526; + case 101: goto st515; + case 112: goto st521; + case 114: goto st522; + case 116: goto st526; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1418; - } else if ( (*p) >= 9 ) - goto tr1418; - goto tr1248; + goto tr1262; st515: if ( ++p == pe ) goto _test_eof515; case 515: switch( (*p) ) { - case 77: goto st516; - case 79: goto st521; - case 80: goto st523; - case 82: goto st525; - case 83: goto st527; - case 86: goto st531; - case 109: goto st516; - case 111: goto st521; - case 112: goto st523; - case 114: goto st525; - case 115: goto st527; - case 118: goto st531; + case 83: goto st516; + case 115: goto st516; } - goto tr1248; + goto tr1262; st516: if ( ++p == pe ) goto _test_eof516; @@ -49136,489 +49751,627 @@ case 516: case 73: goto st517; case 105: goto st517; } - goto tr1248; + goto tr1262; st517: if ( ++p == pe ) goto _test_eof517; case 517: switch( (*p) ) { - case 77: goto st518; - case 109: goto st518; + case 78: goto st518; + case 110: goto st518; } - goto tr1248; + goto tr1262; st518: if ( ++p == pe ) goto _test_eof518; case 518: switch( (*p) ) { - case 69: goto st519; - case 101: goto st519; + case 70: goto st519; + case 102: goto st519; } - goto tr1248; + goto tr1262; st519: if ( ++p == pe ) goto _test_eof519; case 519: switch( (*p) ) { - case 65: goto st520; - case 97: goto st520; + case 79: goto st520; + case 111: goto st520; } - goto tr1248; + goto tr1262; st520: if ( ++p == pe ) goto _test_eof520; case 520: switch( (*p) ) { - case 32: goto tr1429; - case 59: goto tr1429; + case 32: goto tr1433; + case 59: goto tr1433; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1429; + goto tr1433; } else if ( (*p) >= 9 ) - goto tr1429; - goto tr1248; + goto tr1433; + goto tr1262; st521: if ( ++p == pe ) goto _test_eof521; case 521: switch( (*p) ) { - case 65: goto st522; - case 97: goto st522; + case 32: goto tr1434; + case 59: goto tr1434; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1434; + } else if ( (*p) >= 9 ) + goto tr1434; + goto tr1262; st522: if ( ++p == pe ) goto _test_eof522; case 522: switch( (*p) ) { - case 32: goto tr1431; - case 59: goto tr1431; + case 83: goto st523; + case 115: goto st523; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1431; - } else if ( (*p) >= 9 ) - goto tr1431; - goto tr1248; + goto tr1262; st523: if ( ++p == pe ) goto _test_eof523; case 523: switch( (*p) ) { - case 70: goto st524; - case 102: goto st524; + case 73: goto st524; + case 105: goto st524; } - goto tr1248; + goto tr1262; st524: if ( ++p == pe ) goto _test_eof524; case 524: switch( (*p) ) { - case 32: goto tr1433; - case 59: goto tr1433; + case 71: goto st525; + case 103: goto st525; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1433; - } else if ( (*p) >= 9 ) - goto tr1433; - goto tr1248; + goto tr1262; st525: if ( ++p == pe ) goto _test_eof525; case 525: switch( (*p) ) { - case 86: goto st526; - case 118: goto st526; + case 32: goto tr1438; + case 59: goto tr1438; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1438; + } else if ( (*p) >= 9 ) + goto tr1438; + goto tr1262; st526: if ( ++p == pe ) goto _test_eof526; case 526: switch( (*p) ) { - case 32: goto tr1435; - case 59: goto tr1435; + case 32: goto tr1439; + case 59: goto tr1439; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1435; + goto tr1439; } else if ( (*p) >= 9 ) - goto tr1435; - goto tr1248; + goto tr1439; + goto tr1262; st527: if ( ++p == pe ) goto _test_eof527; case 527: switch( (*p) ) { - case 72: goto st528; - case 104: goto st528; - } - goto tr1248; + case 77: goto st528; + case 79: goto st533; + case 80: goto st535; + case 82: goto st537; + case 83: goto st539; + case 86: goto st543; + case 109: goto st528; + case 111: goto st533; + case 112: goto st535; + case 114: goto st537; + case 115: goto st539; + case 118: goto st543; + } + goto tr1262; st528: if ( ++p == pe ) goto _test_eof528; case 528: switch( (*p) ) { - case 70: goto st529; - case 102: goto st529; + case 73: goto st529; + case 105: goto st529; } - goto tr1248; + goto tr1262; st529: if ( ++p == pe ) goto _test_eof529; case 529: switch( (*p) ) { - case 80: goto st530; - case 112: goto st530; + case 77: goto st530; + case 109: goto st530; } - goto tr1248; + goto tr1262; st530: if ( ++p == pe ) goto _test_eof530; case 530: switch( (*p) ) { - case 32: goto tr1439; - case 59: goto tr1439; + case 69: goto st531; + case 101: goto st531; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1439; - } else if ( (*p) >= 9 ) - goto tr1439; - goto tr1248; + goto tr1262; st531: if ( ++p == pe ) goto _test_eof531; case 531: switch( (*p) ) { - case 67: goto st532; - case 99: goto st532; + case 65: goto st532; + case 97: goto st532; } - goto tr1248; + goto tr1262; st532: if ( ++p == pe ) goto _test_eof532; case 532: switch( (*p) ) { - case 66: goto st533; - case 98: goto st533; + case 32: goto tr1450; + case 59: goto tr1450; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1450; + } else if ( (*p) >= 9 ) + goto tr1450; + goto tr1262; st533: if ( ++p == pe ) goto _test_eof533; case 533: switch( (*p) ) { - case 32: goto tr1442; - case 59: goto tr1442; + case 65: goto st534; + case 97: goto st534; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1442; - } else if ( (*p) >= 9 ) - goto tr1442; - goto tr1248; + goto tr1262; st534: if ( ++p == pe ) goto _test_eof534; case 534: switch( (*p) ) { - case 76: goto st535; - case 88: goto st538; - case 89: goto st540; - case 108: goto st535; - case 120: goto st538; - case 121: goto st540; + case 32: goto tr1452; + case 59: goto tr1452; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1452; + } else if ( (*p) >= 9 ) + goto tr1452; + goto tr1262; st535: if ( ++p == pe ) goto _test_eof535; case 535: switch( (*p) ) { - case 83: goto st536; - case 115: goto st536; + case 70: goto st536; + case 102: goto st536; } - goto tr1248; + goto tr1262; st536: if ( ++p == pe ) goto _test_eof536; case 536: switch( (*p) ) { - case 65: goto st537; - case 97: goto st537; + case 32: goto tr1454; + case 59: goto tr1454; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1454; + } else if ( (*p) >= 9 ) + goto tr1454; + goto tr1262; st537: if ( ++p == pe ) goto _test_eof537; case 537: switch( (*p) ) { - case 32: goto tr1448; - case 59: goto tr1448; + case 86: goto st538; + case 118: goto st538; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1448; - } else if ( (*p) >= 9 ) - goto tr1448; - goto tr1248; + goto tr1262; st538: if ( ++p == pe ) goto _test_eof538; case 538: switch( (*p) ) { - case 84: goto st539; - case 116: goto st539; + case 32: goto tr1456; + case 59: goto tr1456; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1456; + } else if ( (*p) >= 9 ) + goto tr1456; + goto tr1262; st539: if ( ++p == pe ) goto _test_eof539; case 539: switch( (*p) ) { - case 32: goto tr1450; - case 59: goto tr1450; + case 72: goto st540; + case 104: goto st540; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1450; - } else if ( (*p) >= 9 ) - goto tr1450; - goto tr1248; + goto tr1262; st540: if ( ++p == pe ) goto _test_eof540; case 540: switch( (*p) ) { - case 80: goto st541; - case 112: goto st541; + case 70: goto st541; + case 102: goto st541; } - goto tr1248; + goto tr1262; st541: if ( ++p == pe ) goto _test_eof541; case 541: switch( (*p) ) { - case 69: goto st542; - case 101: goto st542; + case 80: goto st542; + case 112: goto st542; } - goto tr1248; + goto tr1262; st542: if ( ++p == pe ) goto _test_eof542; case 542: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1454; - goto tr1453; -tr1454: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } - } - goto st543; -tr1456: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} - } + switch( (*p) ) { + case 32: goto tr1460; + case 59: goto tr1460; } - goto st543; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1460; + } else if ( (*p) >= 9 ) + goto tr1460; + goto tr1262; st543: if ( ++p == pe ) goto _test_eof543; case 543: switch( (*p) ) { - case 32: goto tr1455; - case 59: goto tr1455; + case 67: goto st544; + case 99: goto st544; } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1455; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1456; - } else - goto tr1455; - goto tr1453; + goto tr1262; st544: if ( ++p == pe ) goto _test_eof544; case 544: switch( (*p) ) { - case 82: goto st545; - case 114: goto st545; + case 66: goto st545; + case 98: goto st545; } - goto tr1248; + goto tr1262; st545: if ( ++p == pe ) goto _test_eof545; case 545: switch( (*p) ) { - case 73: goto st546; - case 105: goto st546; + case 32: goto tr1463; + case 59: goto tr1463; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1463; + } else if ( (*p) >= 9 ) + goto tr1463; + goto tr1262; st546: if ( ++p == pe ) goto _test_eof546; case 546: switch( (*p) ) { - case 32: goto tr1459; - case 59: goto tr1459; + case 76: goto st547; + case 88: goto st550; + case 89: goto st552; + case 108: goto st547; + case 120: goto st550; + case 121: goto st552; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1459; - } else if ( (*p) >= 9 ) - goto tr1459; - goto tr1248; + goto tr1262; st547: if ( ++p == pe ) goto _test_eof547; case 547: switch( (*p) ) { - case 65: goto st548; - case 97: goto st548; + case 83: goto st548; + case 115: goto st548; } - goto tr1248; + goto tr1262; st548: if ( ++p == pe ) goto _test_eof548; case 548: switch( (*p) ) { - case 76: goto st549; - case 108: goto st549; + case 65: goto st549; + case 97: goto st549; } - goto tr1248; + goto tr1262; st549: if ( ++p == pe ) goto _test_eof549; case 549: switch( (*p) ) { - case 76: goto st550; - case 108: goto st550; + case 32: goto tr1469; + case 59: goto tr1469; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1469; + } else if ( (*p) >= 9 ) + goto tr1469; + goto tr1262; st550: if ( ++p == pe ) goto _test_eof550; case 550: switch( (*p) ) { - case 69: goto st551; - case 101: goto st551; + case 84: goto st551; + case 116: goto st551; } - goto tr1248; + goto tr1262; st551: if ( ++p == pe ) goto _test_eof551; case 551: switch( (*p) ) { - case 84: goto st552; - case 116: goto st552; + case 32: goto tr1471; + case 59: goto tr1471; } - goto tr1248; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1471; + } else if ( (*p) >= 9 ) + goto tr1471; + goto tr1262; st552: if ( ++p == pe ) goto _test_eof552; case 552: switch( (*p) ) { - case 32: goto tr1465; - case 59: goto tr1465; + case 80: goto st553; + case 112: goto st553; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1465; - } else if ( (*p) >= 9 ) - goto tr1465; - goto tr1248; + goto tr1262; st553: if ( ++p == pe ) goto _test_eof553; case 553: switch( (*p) ) { - case 79: goto st554; - case 111: goto st554; + case 69: goto st554; + case 101: goto st554; } - goto tr1248; + goto tr1262; st554: if ( ++p == pe ) goto _test_eof554; case 554: - switch( (*p) ) { - case 78: goto st555; - case 110: goto st555; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr1475; + goto tr1474; +tr1475: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st325;} + } + } + goto st555; +tr1477: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st325;} + } } - goto tr1248; + goto st555; st555: if ( ++p == pe ) goto _test_eof555; case 555: switch( (*p) ) { - case 69: goto st556; - case 101: goto st556; + case 32: goto tr1476; + case 59: goto tr1476; } - goto tr1248; + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr1476; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr1477; + } else + goto tr1476; + goto tr1474; st556: if ( ++p == pe ) goto _test_eof556; case 556: switch( (*p) ) { - case 77: goto st557; - case 109: goto st557; + case 82: goto st557; + case 114: goto st557; } - goto tr1248; + goto tr1262; st557: if ( ++p == pe ) goto _test_eof557; case 557: switch( (*p) ) { - case 68: goto st558; - case 100: goto st558; + case 73: goto st558; + case 105: goto st558; } - goto tr1248; + goto tr1262; st558: if ( ++p == pe ) goto _test_eof558; case 558: switch( (*p) ) { - case 32: goto tr1471; - case 59: goto tr1471; + case 32: goto tr1480; + case 59: goto tr1480; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1471; + goto tr1480; } else if ( (*p) >= 9 ) - goto tr1471; - goto tr1248; + goto tr1480; + goto tr1262; st559: if ( ++p == pe ) goto _test_eof559; case 559: + switch( (*p) ) { + case 65: goto st560; + case 97: goto st560; + } + goto tr1262; +st560: + if ( ++p == pe ) + goto _test_eof560; +case 560: + switch( (*p) ) { + case 76: goto st561; + case 108: goto st561; + } + goto tr1262; +st561: + if ( ++p == pe ) + goto _test_eof561; +case 561: + switch( (*p) ) { + case 76: goto st562; + case 108: goto st562; + } + goto tr1262; +st562: + if ( ++p == pe ) + goto _test_eof562; +case 562: + switch( (*p) ) { + case 69: goto st563; + case 101: goto st563; + } + goto tr1262; +st563: + if ( ++p == pe ) + goto _test_eof563; +case 563: + switch( (*p) ) { + case 84: goto st564; + case 116: goto st564; + } + goto tr1262; +st564: + if ( ++p == pe ) + goto _test_eof564; +case 564: + switch( (*p) ) { + case 32: goto tr1486; + case 59: goto tr1486; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1486; + } else if ( (*p) >= 9 ) + goto tr1486; + goto tr1262; +st565: + if ( ++p == pe ) + goto _test_eof565; +case 565: + switch( (*p) ) { + case 79: goto st566; + case 111: goto st566; + } + goto tr1262; +st566: + if ( ++p == pe ) + goto _test_eof566; +case 566: + switch( (*p) ) { + case 78: goto st567; + case 110: goto st567; + } + goto tr1262; +st567: + if ( ++p == pe ) + goto _test_eof567; +case 567: + switch( (*p) ) { + case 69: goto st568; + case 101: goto st568; + } + goto tr1262; +st568: + if ( ++p == pe ) + goto _test_eof568; +case 568: + switch( (*p) ) { + case 77: goto st569; + case 109: goto st569; + } + goto tr1262; +st569: + if ( ++p == pe ) + goto _test_eof569; +case 569: + switch( (*p) ) { + case 68: goto st570; + case 100: goto st570; + } + goto tr1262; +st570: + if ( ++p == pe ) + goto _test_eof570; +case 570: + switch( (*p) ) { + case 32: goto tr1492; + case 59: goto tr1492; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1492; + } else if ( (*p) >= 9 ) + goto tr1492; + goto tr1262; +st571: + if ( ++p == pe ) + goto _test_eof571; +case 571: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -49636,42 +50389,42 @@ case 559: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1473; - case 32: goto tr1473; - case 40: goto tr1474; - case 41: goto tr1475; - case 3082: goto tr1476; - case 3131: goto tr1477; - case 3338: goto tr1478; - case 3387: goto tr1478; - case 3594: goto tr1479; - case 3643: goto tr1480; - } - goto tr1472; -tr1482: + case 9: goto tr1494; + case 32: goto tr1494; + case 40: goto tr1495; + case 41: goto tr1496; + case 3082: goto tr1497; + case 3131: goto tr1498; + case 3338: goto tr1499; + case 3387: goto tr1499; + case 3594: goto tr1500; + case 3643: goto tr1501; + } + goto tr1493; +tr1503: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1483: + goto st572; +tr1504: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1502: + goto st572; +tr1523: { s->line_counter++; } - goto st560; -tr1529: + goto st572; +tr1550: { s->buffer[s->buffer_length++] = 0; @@ -49681,21 +50434,21 @@ tr1529: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 560; goto _out;} + {p++; cs = 572; goto _out;} } } } { s->line_counter++; } - goto st560; -tr1473: + goto st572; +tr1494: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } - goto st560; -tr1474: + goto st572; +tr1495: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -49703,12 +50456,12 @@ tr1474: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1475: + goto st572; +tr1496: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -49716,12 +50469,12 @@ tr1475: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1476: + goto st572; +tr1497: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -49729,1518 +50482,1547 @@ tr1476: { s->line_counter++; } - goto st560; -tr1507: + goto st572; +tr1528: { window_add_bit(KNOT_RRTYPE_A, s); } - goto st560; -tr1508: + goto st572; +tr1529: { window_add_bit(KNOT_RRTYPE_A, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1509: + goto st572; +tr1530: { window_add_bit(KNOT_RRTYPE_A, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1513: + goto st572; +tr1534: { window_add_bit(KNOT_RRTYPE_A, s); } { s->line_counter++; } - goto st560; -tr1520: + goto st572; +tr1541: { window_add_bit(KNOT_RRTYPE_AAAA, s); } - goto st560; -tr1521: + goto st572; +tr1542: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1522: + goto st572; +tr1543: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1523: + goto st572; +tr1544: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->line_counter++; } - goto st560; -tr1536: + goto st572; +tr1557: { window_add_bit(KNOT_RRTYPE_CAA, s); } - goto st560; -tr1537: + goto st572; +tr1558: { window_add_bit(KNOT_RRTYPE_CAA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1538: + goto st572; +tr1559: { window_add_bit(KNOT_RRTYPE_CAA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1539: + goto st572; +tr1560: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->line_counter++; } - goto st560; -tr1550: + goto st572; +tr1571: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } - goto st560; -tr1551: + goto st572; +tr1572: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1552: + goto st572; +tr1573: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1553: + goto st572; +tr1574: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->line_counter++; } - goto st560; -tr1558: + goto st572; +tr1579: { window_add_bit(KNOT_RRTYPE_CDS, s); } - goto st560; -tr1559: + goto st572; +tr1580: { window_add_bit(KNOT_RRTYPE_CDS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1560: + goto st572; +tr1581: { window_add_bit(KNOT_RRTYPE_CDS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1561: + goto st572; +tr1582: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->line_counter++; } - goto st560; -tr1568: + goto st572; +tr1589: { window_add_bit(KNOT_RRTYPE_CERT, s); } - goto st560; -tr1569: + goto st572; +tr1590: { window_add_bit(KNOT_RRTYPE_CERT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1570: + goto st572; +tr1591: { window_add_bit(KNOT_RRTYPE_CERT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1571: + goto st572; +tr1592: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->line_counter++; } - goto st560; -tr1579: + goto st572; +tr1600: { window_add_bit(KNOT_RRTYPE_CNAME, s); } - goto st560; -tr1580: + goto st572; +tr1601: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1581: + goto st572; +tr1602: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1582: + goto st572; +tr1603: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->line_counter++; } - goto st560; -tr1590: + goto st572; +tr1611: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } - goto st560; -tr1591: + goto st572; +tr1612: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1592: + goto st572; +tr1613: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1593: + goto st572; +tr1614: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->line_counter++; } - goto st560; -tr1604: + goto st572; +tr1625: { window_add_bit(KNOT_RRTYPE_DHCID, s); } - goto st560; -tr1605: + goto st572; +tr1626: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1606: + goto st572; +tr1627: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1607: + goto st572; +tr1628: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->line_counter++; } - goto st560; -tr1616: + goto st572; +tr1637: { window_add_bit(KNOT_RRTYPE_DNAME, s); } - goto st560; -tr1617: + goto st572; +tr1638: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1618: + goto st572; +tr1639: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1619: + goto st572; +tr1640: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->line_counter++; } - goto st560; -tr1627: + goto st572; +tr1648: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } - goto st560; -tr1628: + goto st572; +tr1649: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1629: + goto st572; +tr1650: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1630: + goto st572; +tr1651: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->line_counter++; } - goto st560; -tr1635: + goto st572; +tr1656: { window_add_bit(KNOT_RRTYPE_DS, s); } - goto st560; -tr1636: + goto st572; +tr1657: { window_add_bit(KNOT_RRTYPE_DS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1637: + goto st572; +tr1658: { window_add_bit(KNOT_RRTYPE_DS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1639: + goto st572; +tr1660: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->line_counter++; } - goto st560; -tr1646: + goto st572; +tr1667: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } - goto st560; -tr1647: + goto st572; +tr1668: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1648: + goto st572; +tr1669: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1649: + goto st572; +tr1670: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->line_counter++; } - goto st560; -tr1659: + goto st572; +tr1680: { window_add_bit(KNOT_RRTYPE_EUI48, s); } - goto st560; -tr1660: + goto st572; +tr1681: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1661: + goto st572; +tr1682: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1662: + goto st572; +tr1683: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->line_counter++; } - goto st560; -tr1668: + goto st572; +tr1689: { window_add_bit(KNOT_RRTYPE_EUI64, s); } - goto st560; -tr1669: + goto st572; +tr1690: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1670: + goto st572; +tr1691: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1671: + goto st572; +tr1692: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->line_counter++; } - goto st560; -tr1681: + goto st572; +tr1702: { window_add_bit(KNOT_RRTYPE_HINFO, s); } - goto st560; -tr1682: + goto st572; +tr1703: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1683: + goto st572; +tr1704: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1684: + goto st572; +tr1705: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->line_counter++; } - goto st560; -tr1692: + goto st572; +tr1713: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } - goto st560; -tr1693: + goto st572; +tr1714: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1694: + goto st572; +tr1715: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1695: + goto st572; +tr1716: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->line_counter++; } - goto st560; -tr1707: + goto st572; +tr1728: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } - goto st560; -tr1708: + goto st572; +tr1729: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1709: + goto st572; +tr1730: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1710: + goto st572; +tr1731: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->line_counter++; } - goto st560; -tr1718: + goto st572; +tr1739: { window_add_bit(KNOT_RRTYPE_KEY, s); } - goto st560; -tr1719: + goto st572; +tr1740: { window_add_bit(KNOT_RRTYPE_KEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1720: + goto st572; +tr1741: { window_add_bit(KNOT_RRTYPE_KEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1721: + goto st572; +tr1742: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->line_counter++; } - goto st560; -tr1726: + goto st572; +tr1747: { window_add_bit(KNOT_RRTYPE_KX, s); } - goto st560; -tr1727: + goto st572; +tr1748: { window_add_bit(KNOT_RRTYPE_KX, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1728: + goto st572; +tr1749: { window_add_bit(KNOT_RRTYPE_KX, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1729: + goto st572; +tr1750: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->line_counter++; } - goto st560; -tr1739: + goto st572; +tr1760: { window_add_bit(KNOT_RRTYPE_L32, s); } - goto st560; -tr1740: + goto st572; +tr1761: { window_add_bit(KNOT_RRTYPE_L32, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1741: + goto st572; +tr1762: { window_add_bit(KNOT_RRTYPE_L32, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1742: + goto st572; +tr1763: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->line_counter++; } - goto st560; -tr1748: + goto st572; +tr1769: { window_add_bit(KNOT_RRTYPE_L64, s); } - goto st560; -tr1749: + goto st572; +tr1770: { window_add_bit(KNOT_RRTYPE_L64, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1750: + goto st572; +tr1771: { window_add_bit(KNOT_RRTYPE_L64, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1751: + goto st572; +tr1772: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->line_counter++; } - goto st560; -tr1757: + goto st572; +tr1778: { window_add_bit(KNOT_RRTYPE_LOC, s); } - goto st560; -tr1758: + goto st572; +tr1779: { window_add_bit(KNOT_RRTYPE_LOC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1759: + goto st572; +tr1780: { window_add_bit(KNOT_RRTYPE_LOC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1760: + goto st572; +tr1781: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->line_counter++; } - goto st560; -tr1765: + goto st572; +tr1786: { window_add_bit(KNOT_RRTYPE_LP, s); } - goto st560; -tr1766: + goto st572; +tr1787: { window_add_bit(KNOT_RRTYPE_LP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1767: + goto st572; +tr1788: { window_add_bit(KNOT_RRTYPE_LP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1768: + goto st572; +tr1789: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->line_counter++; } - goto st560; -tr1778: + goto st572; +tr1799: { window_add_bit(KNOT_RRTYPE_MINFO, s); } - goto st560; -tr1779: + goto st572; +tr1800: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1780: + goto st572; +tr1801: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1781: + goto st572; +tr1802: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->line_counter++; } - goto st560; -tr1786: + goto st572; +tr1807: { window_add_bit(KNOT_RRTYPE_MX, s); } - goto st560; -tr1787: + goto st572; +tr1808: { window_add_bit(KNOT_RRTYPE_MX, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1788: + goto st572; +tr1809: { window_add_bit(KNOT_RRTYPE_MX, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1789: + goto st572; +tr1810: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->line_counter++; } - goto st560; -tr1800: + goto st572; +tr1821: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } - goto st560; -tr1801: + goto st572; +tr1822: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1802: + goto st572; +tr1823: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1803: + goto st572; +tr1824: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->line_counter++; } - goto st560; -tr1809: + goto st572; +tr1830: { window_add_bit(KNOT_RRTYPE_NID, s); } - goto st560; -tr1810: + goto st572; +tr1831: { window_add_bit(KNOT_RRTYPE_NID, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1811: + goto st572; +tr1832: { window_add_bit(KNOT_RRTYPE_NID, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1812: + goto st572; +tr1833: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->line_counter++; } - goto st560; -tr1817: + goto st572; +tr1838: { window_add_bit(KNOT_RRTYPE_NS, s); } - goto st560; -tr1818: + goto st572; +tr1839: { window_add_bit(KNOT_RRTYPE_NS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1819: + goto st572; +tr1840: { window_add_bit(KNOT_RRTYPE_NS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1821: + goto st572; +tr1842: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->line_counter++; } - goto st560; -tr1827: + goto st572; +tr1848: { window_add_bit(KNOT_RRTYPE_NSEC, s); } - goto st560; -tr1828: + goto st572; +tr1849: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1829: + goto st572; +tr1850: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1831: + goto st572; +tr1852: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->line_counter++; } - goto st560; -tr1836: + goto st572; +tr1857: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } - goto st560; -tr1837: + goto st572; +tr1858: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1838: + goto st572; +tr1859: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1840: + goto st572; +tr1861: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->line_counter++; } - goto st560; -tr1849: + goto st572; +tr1870: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } - goto st560; -tr1850: + goto st572; +tr1871: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1851: + goto st572; +tr1872: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1852: + goto st572; +tr1873: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->line_counter++; } - goto st560; -tr1866: + goto st572; +tr1887: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } - goto st560; -tr1867: + goto st572; +tr1888: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1868: + goto st572; +tr1889: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1869: + goto st572; +tr1890: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->line_counter++; } - goto st560; -tr1876: + goto st572; +tr1897: { window_add_bit(KNOT_RRTYPE_PTR, s); } - goto st560; -tr1877: + goto st572; +tr1898: { window_add_bit(KNOT_RRTYPE_PTR, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1878: + goto st572; +tr1899: { window_add_bit(KNOT_RRTYPE_PTR, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1879: + goto st572; +tr1900: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->line_counter++; } - goto st560; -tr1887: + goto st572; +tr1914: + { window_add_bit(KNOT_RRTYPE_RESINFO, s); } + goto st572; +tr1915: + { window_add_bit(KNOT_RRTYPE_RESINFO, s); } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st325;} + } + s->multiline = true; + } + goto st572; +tr1916: + { window_add_bit(KNOT_RRTYPE_RESINFO, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st325;} + } + s->multiline = false; + } + goto st572; +tr1917: + { window_add_bit(KNOT_RRTYPE_RESINFO, s); } + { + s->line_counter++; + } + goto st572; +tr1922: { window_add_bit(KNOT_RRTYPE_RP, s); } - goto st560; -tr1888: + goto st572; +tr1923: { window_add_bit(KNOT_RRTYPE_RP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1889: + goto st572; +tr1924: { window_add_bit(KNOT_RRTYPE_RP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1890: + goto st572; +tr1925: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->line_counter++; } - goto st560; -tr1898: + goto st572; +tr1933: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } - goto st560; -tr1899: + goto st572; +tr1934: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1900: + goto st572; +tr1935: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1901: + goto st572; +tr1936: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->line_counter++; } - goto st560; -tr1906: + goto st572; +tr1941: { window_add_bit(KNOT_RRTYPE_RT, s); } - goto st560; -tr1907: + goto st572; +tr1942: { window_add_bit(KNOT_RRTYPE_RT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1908: + goto st572; +tr1943: { window_add_bit(KNOT_RRTYPE_RT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1909: + goto st572; +tr1944: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->line_counter++; } - goto st560; -tr1924: + goto st572; +tr1959: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } - goto st560; -tr1925: + goto st572; +tr1960: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1926: + goto st572; +tr1961: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1927: + goto st572; +tr1962: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->line_counter++; } - goto st560; -tr1933: + goto st572; +tr1968: { window_add_bit(KNOT_RRTYPE_SOA, s); } - goto st560; -tr1934: + goto st572; +tr1969: { window_add_bit(KNOT_RRTYPE_SOA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1935: + goto st572; +tr1970: { window_add_bit(KNOT_RRTYPE_SOA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1936: + goto st572; +tr1971: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->line_counter++; } - goto st560; -tr1942: + goto st572; +tr1977: { window_add_bit(KNOT_RRTYPE_SPF, s); } - goto st560; -tr1943: + goto st572; +tr1978: { window_add_bit(KNOT_RRTYPE_SPF, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1944: + goto st572; +tr1979: { window_add_bit(KNOT_RRTYPE_SPF, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1945: + goto st572; +tr1980: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->line_counter++; } - goto st560; -tr1951: + goto st572; +tr1986: { window_add_bit(KNOT_RRTYPE_SRV, s); } - goto st560; -tr1952: + goto st572; +tr1987: { window_add_bit(KNOT_RRTYPE_SRV, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1953: + goto st572; +tr1988: { window_add_bit(KNOT_RRTYPE_SRV, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1954: + goto st572; +tr1989: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->line_counter++; } - goto st560; -tr1962: + goto st572; +tr1997: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } - goto st560; -tr1963: + goto st572; +tr1998: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1964: + goto st572; +tr1999: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1965: + goto st572; +tr2000: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->line_counter++; } - goto st560; -tr1972: + goto st572; +tr2007: { window_add_bit(KNOT_RRTYPE_SVCB, s); } - goto st560; -tr1973: + goto st572; +tr2008: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1974: + goto st572; +tr2009: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1975: + goto st572; +tr2010: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->line_counter++; } - goto st560; -tr1985: + goto st572; +tr2020: { window_add_bit(KNOT_RRTYPE_TLSA, s); } - goto st560; -tr1986: + goto st572; +tr2021: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1987: + goto st572; +tr2022: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1988: + goto st572; +tr2023: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->line_counter++; } - goto st560; -tr1994: + goto st572; +tr2029: { window_add_bit(KNOT_RRTYPE_TXT, s); } - goto st560; -tr1995: + goto st572; +tr2030: { window_add_bit(KNOT_RRTYPE_TXT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr1996: + goto st572; +tr2031: { window_add_bit(KNOT_RRTYPE_TXT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr1997: + goto st572; +tr2032: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->line_counter++; } - goto st560; -tr2005: + goto st572; +tr2040: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st560; -tr2006: + goto st572; +tr2041: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr2007: + goto st572; +tr2042: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr2009: + goto st572; +tr2044: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st560; -tr2016: + goto st572; +tr2051: { window_add_bit(KNOT_RRTYPE_URI, s); } - goto st560; -tr2017: + goto st572; +tr2052: { window_add_bit(KNOT_RRTYPE_URI, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr2018: + goto st572; +tr2053: { window_add_bit(KNOT_RRTYPE_URI, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr2019: + goto st572; +tr2054: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->line_counter++; } - goto st560; -tr2029: + goto st572; +tr2064: { window_add_bit(KNOT_RRTYPE_WALLET, s); } - goto st560; -tr2030: + goto st572; +tr2065: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr2031: + goto st572; +tr2066: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr2032: + goto st572; +tr2067: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->line_counter++; } - goto st560; -tr2042: + goto st572; +tr2077: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } - goto st560; -tr2043: + goto st572; +tr2078: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr2044: + goto st572; +tr2079: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr2045: + goto st572; +tr2080: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->line_counter++; } - goto st560; -tr2053: + goto st572; +tr2088: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - goto st560; -tr2054: + goto st572; +tr2089: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr2055: + goto st572; +tr2090: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr2056: + goto st572; +tr2091: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->line_counter++; } - goto st560; -tr2062: + goto st572; +tr2097: { window_add_bit(KNOT_RRTYPE_APL, s); } - goto st560; -tr2063: + goto st572; +tr2098: { window_add_bit(KNOT_RRTYPE_APL, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st560; -tr2064: + goto st572; +tr2099: { window_add_bit(KNOT_RRTYPE_APL, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st560; -tr2065: + goto st572; +tr2100: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->line_counter++; } - goto st560; -st560: + goto st572; +st572: if ( ++p == pe ) - goto _test_eof560; -case 560: + goto _test_eof572; +case 572: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -51258,58 +52040,58 @@ case 560: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st560; - case 32: goto st560; - case 40: goto tr1482; - case 41: goto tr1483; - case 65: goto st561; - case 67: goto st566; - case 68: goto st587; - case 69: goto st604; - case 72: goto st611; - case 73: goto st620; - case 75: goto st628; - case 76: goto st632; - case 77: goto st640; - case 78: goto st646; - case 79: goto st662; - case 80: goto st672; - case 82: goto st675; - case 83: goto st682; - case 84: goto st701; - case 85: goto st711; - case 87: goto st714; - case 90: goto st720; - case 97: goto st561; - case 99: goto st566; - case 100: goto st587; - case 101: goto st604; - case 104: goto st611; - case 105: goto st620; - case 107: goto st628; - case 108: goto st632; - case 109: goto st640; - case 110: goto st646; - case 111: goto st662; - case 112: goto st672; - case 114: goto st675; - case 115: goto st682; - case 116: goto st701; - case 117: goto st711; - case 119: goto st714; - case 122: goto st720; - case 3082: goto tr1502; - case 3131: goto tr1503; - case 3338: goto tr1504; - case 3387: goto tr1504; - case 3594: goto tr1505; - case 3643: goto tr1506; - } - goto tr1472; -st561: + case 9: goto st572; + case 32: goto st572; + case 40: goto tr1503; + case 41: goto tr1504; + case 65: goto st573; + case 67: goto st578; + case 68: goto st599; + case 69: goto st616; + case 72: goto st623; + case 73: goto st632; + case 75: goto st640; + case 76: goto st644; + case 77: goto st652; + case 78: goto st658; + case 79: goto st674; + case 80: goto st684; + case 82: goto st687; + case 83: goto st700; + case 84: goto st719; + case 85: goto st729; + case 87: goto st732; + case 90: goto st738; + case 97: goto st573; + case 99: goto st578; + case 100: goto st599; + case 101: goto st616; + case 104: goto st623; + case 105: goto st632; + case 107: goto st640; + case 108: goto st644; + case 109: goto st652; + case 110: goto st658; + case 111: goto st674; + case 112: goto st684; + case 114: goto st687; + case 115: goto st700; + case 116: goto st719; + case 117: goto st729; + case 119: goto st732; + case 122: goto st738; + case 3082: goto tr1523; + case 3131: goto tr1524; + case 3338: goto tr1525; + case 3387: goto tr1525; + case 3594: goto tr1526; + case 3643: goto tr1527; + } + goto tr1493; +st573: if ( ++p == pe ) - goto _test_eof561; -case 561: + goto _test_eof573; +case 573: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -51327,46 +52109,46 @@ case 561: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1507; - case 32: goto tr1507; - case 40: goto tr1508; - case 41: goto tr1509; - case 65: goto st562; - case 70: goto st726; - case 80: goto st730; - case 97: goto st562; - case 102: goto st726; - case 112: goto st730; - case 3082: goto tr1513; - case 3131: goto tr1514; - case 3338: goto tr1515; - case 3387: goto tr1515; - case 3594: goto tr1516; - case 3643: goto tr1517; - } - goto tr1472; -st562: + case 9: goto tr1528; + case 32: goto tr1528; + case 40: goto tr1529; + case 41: goto tr1530; + case 65: goto st574; + case 70: goto st744; + case 80: goto st748; + case 97: goto st574; + case 102: goto st744; + case 112: goto st748; + case 3082: goto tr1534; + case 3131: goto tr1535; + case 3338: goto tr1536; + case 3387: goto tr1536; + case 3594: goto tr1537; + case 3643: goto tr1538; + } + goto tr1493; +st574: if ( ++p == pe ) - goto _test_eof562; -case 562: + goto _test_eof574; +case 574: switch( (*p) ) { - case 65: goto st563; - case 97: goto st563; + case 65: goto st575; + case 97: goto st575; } - goto tr1472; -st563: + goto tr1493; +st575: if ( ++p == pe ) - goto _test_eof563; -case 563: + goto _test_eof575; +case 575: switch( (*p) ) { - case 65: goto st564; - case 97: goto st564; + case 65: goto st576; + case 97: goto st576; } - goto tr1472; -st564: + goto tr1493; +st576: if ( ++p == pe ) - goto _test_eof564; -case 564: + goto _test_eof576; +case 576: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -51384,31 +52166,31 @@ case 564: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1520; - case 32: goto tr1520; - case 40: goto tr1521; - case 41: goto tr1522; - case 3082: goto tr1523; - case 3131: goto tr1524; - case 3338: goto tr1525; - case 3387: goto tr1525; - case 3594: goto tr1526; - case 3643: goto tr1527; - } - goto tr1472; -tr1503: + case 9: goto tr1541; + case 32: goto tr1541; + case 40: goto tr1542; + case 41: goto tr1543; + case 3082: goto tr1544; + case 3131: goto tr1545; + case 3338: goto tr1546; + case 3387: goto tr1546; + case 3594: goto tr1547; + case 3643: goto tr1548; + } + goto tr1493; +tr1524: { s->buffer_length = 0; } - goto st565; -tr1528: + goto st577; +tr1549: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st565; -tr1477: + goto st577; +tr1498: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -51416,324 +52198,330 @@ tr1477: { s->buffer_length = 0; } - goto st565; -tr1514: + goto st577; +tr1535: { window_add_bit(KNOT_RRTYPE_A, s); } { s->buffer_length = 0; } - goto st565; -tr1524: + goto st577; +tr1545: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->buffer_length = 0; } - goto st565; -tr1540: + goto st577; +tr1561: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->buffer_length = 0; } - goto st565; -tr1554: + goto st577; +tr1575: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->buffer_length = 0; } - goto st565; -tr1562: + goto st577; +tr1583: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->buffer_length = 0; } - goto st565; -tr1572: + goto st577; +tr1593: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->buffer_length = 0; } - goto st565; -tr1583: + goto st577; +tr1604: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->buffer_length = 0; } - goto st565; -tr1594: + goto st577; +tr1615: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->buffer_length = 0; } - goto st565; -tr1608: + goto st577; +tr1629: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->buffer_length = 0; } - goto st565; -tr1620: + goto st577; +tr1641: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->buffer_length = 0; } - goto st565; -tr1631: + goto st577; +tr1652: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->buffer_length = 0; } - goto st565; -tr1640: + goto st577; +tr1661: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->buffer_length = 0; } - goto st565; -tr1650: + goto st577; +tr1671: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->buffer_length = 0; } - goto st565; -tr1663: + goto st577; +tr1684: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->buffer_length = 0; } - goto st565; -tr1672: + goto st577; +tr1693: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->buffer_length = 0; } - goto st565; -tr1685: + goto st577; +tr1706: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->buffer_length = 0; } - goto st565; -tr1696: + goto st577; +tr1717: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->buffer_length = 0; } - goto st565; -tr1711: + goto st577; +tr1732: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->buffer_length = 0; } - goto st565; -tr1722: + goto st577; +tr1743: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->buffer_length = 0; } - goto st565; -tr1730: + goto st577; +tr1751: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->buffer_length = 0; } - goto st565; -tr1743: + goto st577; +tr1764: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->buffer_length = 0; } - goto st565; -tr1752: + goto st577; +tr1773: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->buffer_length = 0; } - goto st565; -tr1761: + goto st577; +tr1782: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->buffer_length = 0; } - goto st565; -tr1769: + goto st577; +tr1790: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->buffer_length = 0; } - goto st565; -tr1782: + goto st577; +tr1803: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->buffer_length = 0; } - goto st565; -tr1790: + goto st577; +tr1811: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->buffer_length = 0; } - goto st565; -tr1804: + goto st577; +tr1825: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->buffer_length = 0; } - goto st565; -tr1813: + goto st577; +tr1834: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->buffer_length = 0; } - goto st565; -tr1822: + goto st577; +tr1843: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->buffer_length = 0; } - goto st565; -tr1832: + goto st577; +tr1853: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->buffer_length = 0; } - goto st565; -tr1841: + goto st577; +tr1862: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->buffer_length = 0; } - goto st565; -tr1853: + goto st577; +tr1874: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->buffer_length = 0; } - goto st565; -tr1870: + goto st577; +tr1891: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->buffer_length = 0; } - goto st565; -tr1880: + goto st577; +tr1901: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->buffer_length = 0; } - goto st565; -tr1891: + goto st577; +tr1918: + { window_add_bit(KNOT_RRTYPE_RESINFO, s); } + { + s->buffer_length = 0; + } + goto st577; +tr1926: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->buffer_length = 0; } - goto st565; -tr1902: + goto st577; +tr1937: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->buffer_length = 0; } - goto st565; -tr1910: + goto st577; +tr1945: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->buffer_length = 0; } - goto st565; -tr1928: + goto st577; +tr1963: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->buffer_length = 0; } - goto st565; -tr1937: + goto st577; +tr1972: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->buffer_length = 0; } - goto st565; -tr1946: + goto st577; +tr1981: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->buffer_length = 0; } - goto st565; -tr1955: + goto st577; +tr1990: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->buffer_length = 0; } - goto st565; -tr1966: + goto st577; +tr2001: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->buffer_length = 0; } - goto st565; -tr1976: + goto st577; +tr2011: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->buffer_length = 0; } - goto st565; -tr1989: + goto st577; +tr2024: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->buffer_length = 0; } - goto st565; -tr1998: + goto st577; +tr2033: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->buffer_length = 0; } - goto st565; -tr2010: + goto st577; +tr2045: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st565; -tr2020: + goto st577; +tr2055: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->buffer_length = 0; } - goto st565; -tr2033: + goto st577; +tr2068: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->buffer_length = 0; } - goto st565; -tr2046: + goto st577; +tr2081: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->buffer_length = 0; } - goto st565; -tr2057: + goto st577; +tr2092: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->buffer_length = 0; } - goto st565; -tr2066: + goto st577; +tr2101: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->buffer_length = 0; } - goto st565; -st565: + goto st577; +st577: if ( ++p == pe ) - goto _test_eof565; -case 565: + goto _test_eof577; +case 577: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -51753,11 +52541,11 @@ case 565: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1529; + goto tr1550; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1528; - goto tr1472; -tr1478: + goto tr1549; + goto tr1493; +tr1499: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -51780,7 +52568,7 @@ tr1478: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -51788,8 +52576,8 @@ tr1478: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1504: + goto st1515; +tr1525: { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -51808,7 +52596,7 @@ tr1504: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -51816,8 +52604,8 @@ tr1504: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1515: + goto st1515; +tr1536: { window_add_bit(KNOT_RRTYPE_A, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -51837,7 +52625,7 @@ tr1515: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -51845,8 +52633,8 @@ tr1515: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1525: + goto st1515; +tr1546: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -51866,7 +52654,7 @@ tr1525: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -51874,8 +52662,8 @@ tr1525: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1541: + goto st1515; +tr1562: { window_add_bit(KNOT_RRTYPE_CAA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -51895,7 +52683,7 @@ tr1541: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -51903,8 +52691,8 @@ tr1541: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1555: + goto st1515; +tr1576: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -51924,7 +52712,7 @@ tr1555: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -51932,8 +52720,8 @@ tr1555: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1563: + goto st1515; +tr1584: { window_add_bit(KNOT_RRTYPE_CDS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -51953,7 +52741,7 @@ tr1563: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -51961,8 +52749,8 @@ tr1563: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1573: + goto st1515; +tr1594: { window_add_bit(KNOT_RRTYPE_CERT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -51982,7 +52770,7 @@ tr1573: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -51990,8 +52778,8 @@ tr1573: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1584: + goto st1515; +tr1605: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52011,7 +52799,7 @@ tr1584: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52019,8 +52807,8 @@ tr1584: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1595: + goto st1515; +tr1616: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52040,7 +52828,7 @@ tr1595: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52048,8 +52836,8 @@ tr1595: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1609: + goto st1515; +tr1630: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52069,7 +52857,7 @@ tr1609: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52077,8 +52865,8 @@ tr1609: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1621: + goto st1515; +tr1642: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52098,7 +52886,7 @@ tr1621: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52106,8 +52894,8 @@ tr1621: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1632: + goto st1515; +tr1653: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52127,7 +52915,7 @@ tr1632: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52135,8 +52923,8 @@ tr1632: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1641: + goto st1515; +tr1662: { window_add_bit(KNOT_RRTYPE_DS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52156,7 +52944,7 @@ tr1641: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52164,8 +52952,8 @@ tr1641: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1651: + goto st1515; +tr1672: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52185,7 +52973,7 @@ tr1651: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52193,8 +52981,8 @@ tr1651: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1664: + goto st1515; +tr1685: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52214,7 +53002,7 @@ tr1664: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52222,8 +53010,8 @@ tr1664: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1673: + goto st1515; +tr1694: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52243,7 +53031,7 @@ tr1673: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52251,8 +53039,8 @@ tr1673: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1686: + goto st1515; +tr1707: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52272,7 +53060,7 @@ tr1686: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52280,8 +53068,8 @@ tr1686: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1697: + goto st1515; +tr1718: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52301,7 +53089,7 @@ tr1697: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52309,8 +53097,8 @@ tr1697: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1712: + goto st1515; +tr1733: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52330,7 +53118,7 @@ tr1712: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52338,8 +53126,8 @@ tr1712: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1723: + goto st1515; +tr1744: { window_add_bit(KNOT_RRTYPE_KEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52359,7 +53147,7 @@ tr1723: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52367,8 +53155,8 @@ tr1723: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1731: + goto st1515; +tr1752: { window_add_bit(KNOT_RRTYPE_KX, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52388,7 +53176,7 @@ tr1731: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52396,8 +53184,8 @@ tr1731: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1744: + goto st1515; +tr1765: { window_add_bit(KNOT_RRTYPE_L32, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52417,7 +53205,7 @@ tr1744: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52425,8 +53213,8 @@ tr1744: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1753: + goto st1515; +tr1774: { window_add_bit(KNOT_RRTYPE_L64, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52446,7 +53234,7 @@ tr1753: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52454,8 +53242,8 @@ tr1753: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1762: + goto st1515; +tr1783: { window_add_bit(KNOT_RRTYPE_LOC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52475,7 +53263,7 @@ tr1762: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52483,8 +53271,8 @@ tr1762: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1770: + goto st1515; +tr1791: { window_add_bit(KNOT_RRTYPE_LP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52504,7 +53292,7 @@ tr1770: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52512,8 +53300,8 @@ tr1770: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1783: + goto st1515; +tr1804: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52533,7 +53321,7 @@ tr1783: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52541,8 +53329,8 @@ tr1783: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1791: + goto st1515; +tr1812: { window_add_bit(KNOT_RRTYPE_MX, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52562,7 +53350,7 @@ tr1791: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52570,8 +53358,8 @@ tr1791: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1805: + goto st1515; +tr1826: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52591,7 +53379,7 @@ tr1805: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52599,8 +53387,8 @@ tr1805: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1814: + goto st1515; +tr1835: { window_add_bit(KNOT_RRTYPE_NID, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52620,7 +53408,7 @@ tr1814: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52628,8 +53416,8 @@ tr1814: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1823: + goto st1515; +tr1844: { window_add_bit(KNOT_RRTYPE_NS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52649,7 +53437,7 @@ tr1823: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52657,8 +53445,8 @@ tr1823: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1833: + goto st1515; +tr1854: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52678,7 +53466,7 @@ tr1833: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52686,8 +53474,8 @@ tr1833: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1842: + goto st1515; +tr1863: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52707,7 +53495,7 @@ tr1842: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52715,8 +53503,8 @@ tr1842: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1854: + goto st1515; +tr1875: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52736,7 +53524,7 @@ tr1854: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52744,8 +53532,8 @@ tr1854: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1871: + goto st1515; +tr1892: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52765,7 +53553,7 @@ tr1871: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52773,8 +53561,8 @@ tr1871: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1881: + goto st1515; +tr1902: { window_add_bit(KNOT_RRTYPE_PTR, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52794,7 +53582,7 @@ tr1881: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52802,8 +53590,37 @@ tr1881: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1892: + goto st1515; +tr1919: + { window_add_bit(KNOT_RRTYPE_RESINFO, s); } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st325;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1515; +tr1927: { window_add_bit(KNOT_RRTYPE_RP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52823,7 +53640,7 @@ tr1892: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52831,8 +53648,8 @@ tr1892: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1903: + goto st1515; +tr1938: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52852,7 +53669,7 @@ tr1903: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52860,8 +53677,8 @@ tr1903: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1911: + goto st1515; +tr1946: { window_add_bit(KNOT_RRTYPE_RT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52881,7 +53698,7 @@ tr1911: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52889,8 +53706,8 @@ tr1911: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1929: + goto st1515; +tr1964: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52910,7 +53727,7 @@ tr1929: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52918,8 +53735,8 @@ tr1929: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1938: + goto st1515; +tr1973: { window_add_bit(KNOT_RRTYPE_SOA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52939,7 +53756,7 @@ tr1938: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52947,8 +53764,8 @@ tr1938: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1947: + goto st1515; +tr1982: { window_add_bit(KNOT_RRTYPE_SPF, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52968,7 +53785,7 @@ tr1947: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -52976,8 +53793,8 @@ tr1947: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1956: + goto st1515; +tr1991: { window_add_bit(KNOT_RRTYPE_SRV, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52997,7 +53814,7 @@ tr1956: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53005,8 +53822,8 @@ tr1956: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1967: + goto st1515; +tr2002: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53026,7 +53843,7 @@ tr1967: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53034,8 +53851,8 @@ tr1967: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1977: + goto st1515; +tr2012: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53055,7 +53872,7 @@ tr1977: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53063,8 +53880,8 @@ tr1977: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1990: + goto st1515; +tr2025: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53084,7 +53901,7 @@ tr1990: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53092,8 +53909,8 @@ tr1990: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr1999: + goto st1515; +tr2034: { window_add_bit(KNOT_RRTYPE_TXT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53113,7 +53930,7 @@ tr1999: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53121,14 +53938,14 @@ tr1999: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr2011: + goto st1515; +tr2046: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -53149,7 +53966,7 @@ tr2011: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53157,8 +53974,8 @@ tr2011: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr2021: + goto st1515; +tr2056: { window_add_bit(KNOT_RRTYPE_URI, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53178,7 +53995,7 @@ tr2021: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53186,8 +54003,8 @@ tr2021: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr2034: + goto st1515; +tr2069: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53207,7 +54024,7 @@ tr2034: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53215,8 +54032,8 @@ tr2034: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr2047: + goto st1515; +tr2082: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53236,7 +54053,7 @@ tr2047: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53244,8 +54061,8 @@ tr2047: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr2058: + goto st1515; +tr2093: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53265,7 +54082,7 @@ tr2058: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53273,8 +54090,8 @@ tr2058: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -tr2067: + goto st1515; +tr2102: { window_add_bit(KNOT_RRTYPE_APL, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53294,7 +54111,7 @@ tr2067: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53302,13 +54119,13 @@ tr2067: { p--; {cs = stack[--top];goto _again;} } - goto st1497; -st1497: + goto st1515; +st1515: if ( ++p == pe ) - goto _test_eof1497; -case 1497: + goto _test_eof1515; +case 1515: goto st0; -tr1479: +tr1500: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -53334,7 +54151,7 @@ tr1479: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53342,8 +54159,8 @@ tr1479: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1505: + goto st1516; +tr1526: { s->line_counter++; } @@ -53365,7 +54182,7 @@ tr1505: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53373,8 +54190,8 @@ tr1505: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1516: + goto st1516; +tr1537: { window_add_bit(KNOT_RRTYPE_A, s); } { s->line_counter++; @@ -53397,7 +54214,7 @@ tr1516: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53405,8 +54222,8 @@ tr1516: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1526: + goto st1516; +tr1547: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->line_counter++; @@ -53429,7 +54246,7 @@ tr1526: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53437,8 +54254,8 @@ tr1526: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1542: + goto st1516; +tr1563: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->line_counter++; @@ -53461,7 +54278,7 @@ tr1542: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53469,8 +54286,8 @@ tr1542: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1556: + goto st1516; +tr1577: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->line_counter++; @@ -53493,7 +54310,7 @@ tr1556: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53501,8 +54318,8 @@ tr1556: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1564: + goto st1516; +tr1585: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->line_counter++; @@ -53525,7 +54342,7 @@ tr1564: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53533,8 +54350,8 @@ tr1564: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1574: + goto st1516; +tr1595: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->line_counter++; @@ -53557,7 +54374,7 @@ tr1574: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53565,8 +54382,8 @@ tr1574: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1585: + goto st1516; +tr1606: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->line_counter++; @@ -53589,7 +54406,7 @@ tr1585: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53597,8 +54414,8 @@ tr1585: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1596: + goto st1516; +tr1617: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->line_counter++; @@ -53621,7 +54438,7 @@ tr1596: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53629,8 +54446,8 @@ tr1596: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1610: + goto st1516; +tr1631: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->line_counter++; @@ -53653,7 +54470,7 @@ tr1610: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53661,8 +54478,8 @@ tr1610: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1622: + goto st1516; +tr1643: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->line_counter++; @@ -53685,7 +54502,7 @@ tr1622: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53693,8 +54510,8 @@ tr1622: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1633: + goto st1516; +tr1654: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->line_counter++; @@ -53717,7 +54534,7 @@ tr1633: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53725,8 +54542,8 @@ tr1633: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1642: + goto st1516; +tr1663: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->line_counter++; @@ -53749,7 +54566,7 @@ tr1642: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53757,8 +54574,8 @@ tr1642: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1652: + goto st1516; +tr1673: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->line_counter++; @@ -53781,7 +54598,7 @@ tr1652: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53789,8 +54606,8 @@ tr1652: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1665: + goto st1516; +tr1686: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->line_counter++; @@ -53813,7 +54630,7 @@ tr1665: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53821,8 +54638,8 @@ tr1665: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1674: + goto st1516; +tr1695: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->line_counter++; @@ -53845,7 +54662,7 @@ tr1674: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53853,8 +54670,8 @@ tr1674: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1687: + goto st1516; +tr1708: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->line_counter++; @@ -53877,7 +54694,7 @@ tr1687: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53885,8 +54702,8 @@ tr1687: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1698: + goto st1516; +tr1719: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->line_counter++; @@ -53909,7 +54726,7 @@ tr1698: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53917,8 +54734,8 @@ tr1698: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1713: + goto st1516; +tr1734: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->line_counter++; @@ -53941,7 +54758,7 @@ tr1713: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53949,8 +54766,8 @@ tr1713: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1724: + goto st1516; +tr1745: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->line_counter++; @@ -53973,7 +54790,7 @@ tr1724: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -53981,8 +54798,8 @@ tr1724: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1732: + goto st1516; +tr1753: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->line_counter++; @@ -54005,7 +54822,7 @@ tr1732: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54013,8 +54830,8 @@ tr1732: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1745: + goto st1516; +tr1766: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->line_counter++; @@ -54037,7 +54854,7 @@ tr1745: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54045,8 +54862,8 @@ tr1745: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1754: + goto st1516; +tr1775: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->line_counter++; @@ -54069,7 +54886,7 @@ tr1754: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54077,8 +54894,8 @@ tr1754: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1763: + goto st1516; +tr1784: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->line_counter++; @@ -54101,7 +54918,7 @@ tr1763: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54109,8 +54926,8 @@ tr1763: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1771: + goto st1516; +tr1792: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->line_counter++; @@ -54133,7 +54950,7 @@ tr1771: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54141,8 +54958,8 @@ tr1771: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1784: + goto st1516; +tr1805: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->line_counter++; @@ -54165,7 +54982,7 @@ tr1784: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54173,8 +54990,8 @@ tr1784: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1792: + goto st1516; +tr1813: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->line_counter++; @@ -54197,7 +55014,7 @@ tr1792: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54205,8 +55022,8 @@ tr1792: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1806: + goto st1516; +tr1827: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->line_counter++; @@ -54229,7 +55046,7 @@ tr1806: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54237,8 +55054,8 @@ tr1806: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1815: + goto st1516; +tr1836: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->line_counter++; @@ -54261,7 +55078,7 @@ tr1815: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54269,8 +55086,8 @@ tr1815: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1824: + goto st1516; +tr1845: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->line_counter++; @@ -54293,7 +55110,7 @@ tr1824: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54301,8 +55118,8 @@ tr1824: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1834: + goto st1516; +tr1855: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->line_counter++; @@ -54325,7 +55142,7 @@ tr1834: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54333,8 +55150,8 @@ tr1834: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1843: + goto st1516; +tr1864: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->line_counter++; @@ -54357,7 +55174,7 @@ tr1843: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54365,8 +55182,8 @@ tr1843: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1855: + goto st1516; +tr1876: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->line_counter++; @@ -54389,7 +55206,7 @@ tr1855: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54397,8 +55214,8 @@ tr1855: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1872: + goto st1516; +tr1893: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->line_counter++; @@ -54421,7 +55238,7 @@ tr1872: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54429,8 +55246,8 @@ tr1872: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1882: + goto st1516; +tr1903: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->line_counter++; @@ -54453,7 +55270,7 @@ tr1882: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54461,9 +55278,9 @@ tr1882: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1893: - { window_add_bit(KNOT_RRTYPE_RP, s); } + goto st1516; +tr1920: + { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { s->line_counter++; } @@ -54485,7 +55302,7 @@ tr1893: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54493,9 +55310,9 @@ tr1893: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1904: - { window_add_bit(KNOT_RRTYPE_RRSIG, s); } + goto st1516; +tr1928: + { window_add_bit(KNOT_RRTYPE_RP, s); } { s->line_counter++; } @@ -54517,7 +55334,7 @@ tr1904: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54525,9 +55342,9 @@ tr1904: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1912: - { window_add_bit(KNOT_RRTYPE_RT, s); } + goto st1516; +tr1939: + { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->line_counter++; } @@ -54549,7 +55366,7 @@ tr1912: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54557,9 +55374,9 @@ tr1912: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1930: - { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } + goto st1516; +tr1947: + { window_add_bit(KNOT_RRTYPE_RT, s); } { s->line_counter++; } @@ -54581,7 +55398,7 @@ tr1930: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54589,9 +55406,9 @@ tr1930: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1939: - { window_add_bit(KNOT_RRTYPE_SOA, s); } + goto st1516; +tr1965: + { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->line_counter++; } @@ -54613,7 +55430,7 @@ tr1939: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54621,9 +55438,9 @@ tr1939: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1948: - { window_add_bit(KNOT_RRTYPE_SPF, s); } + goto st1516; +tr1974: + { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->line_counter++; } @@ -54645,7 +55462,7 @@ tr1948: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54653,9 +55470,9 @@ tr1948: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1957: - { window_add_bit(KNOT_RRTYPE_SRV, s); } + goto st1516; +tr1983: + { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->line_counter++; } @@ -54677,7 +55494,7 @@ tr1957: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54685,9 +55502,9 @@ tr1957: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1968: - { window_add_bit(KNOT_RRTYPE_SSHFP, s); } + goto st1516; +tr1992: + { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->line_counter++; } @@ -54709,7 +55526,7 @@ tr1968: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54717,9 +55534,9 @@ tr1968: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1978: - { window_add_bit(KNOT_RRTYPE_SVCB, s); } + goto st1516; +tr2003: + { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->line_counter++; } @@ -54741,7 +55558,7 @@ tr1978: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54749,9 +55566,9 @@ tr1978: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr1991: - { window_add_bit(KNOT_RRTYPE_TLSA, s); } + goto st1516; +tr2013: + { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->line_counter++; } @@ -54773,7 +55590,7 @@ tr1991: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54781,9 +55598,9 @@ tr1991: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr2000: - { window_add_bit(KNOT_RRTYPE_TXT, s); } + goto st1516; +tr2026: + { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->line_counter++; } @@ -54805,7 +55622,7 @@ tr2000: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54813,16 +55630,9 @@ tr2000: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr2012: - { - if (s->number64 <= UINT16_MAX) { - window_add_bit(s->number64, s); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} - } - } + goto st1516; +tr2035: + { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->line_counter++; } @@ -54844,7 +55654,7 @@ tr2012: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54852,9 +55662,16 @@ tr2012: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr2022: - { window_add_bit(KNOT_RRTYPE_URI, s); } + goto st1516; +tr2047: + { + if (s->number64 <= UINT16_MAX) { + window_add_bit(s->number64, s); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st325;} + } + } { s->line_counter++; } @@ -54876,7 +55693,7 @@ tr2022: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54884,9 +55701,9 @@ tr2022: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr2035: - { window_add_bit(KNOT_RRTYPE_WALLET, s); } + goto st1516; +tr2057: + { window_add_bit(KNOT_RRTYPE_URI, s); } { s->line_counter++; } @@ -54908,7 +55725,7 @@ tr2035: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54916,9 +55733,9 @@ tr2035: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr2048: - { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } + goto st1516; +tr2070: + { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->line_counter++; } @@ -54940,7 +55757,7 @@ tr2048: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54948,9 +55765,9 @@ tr2048: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr2059: - { window_add_bit(KNOT_RRTYPE_AFSDB, s); } + goto st1516; +tr2083: + { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->line_counter++; } @@ -54972,7 +55789,7 @@ tr2059: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -54980,9 +55797,9 @@ tr2059: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -tr2068: - { window_add_bit(KNOT_RRTYPE_APL, s); } + goto st1516; +tr2094: + { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->line_counter++; } @@ -55004,7 +55821,7 @@ tr2068: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55012,142 +55829,11 @@ tr2068: { p--; {cs = stack[--top];goto _again;} } - goto st1498; -st1498: - if ( ++p == pe ) - goto _test_eof1498; -case 1498: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto st560; - case 32: goto st560; - case 40: goto tr1482; - case 41: goto tr1483; - case 65: goto st561; - case 67: goto st566; - case 68: goto st587; - case 69: goto st604; - case 72: goto st611; - case 73: goto st620; - case 75: goto st628; - case 76: goto st632; - case 77: goto st640; - case 78: goto st646; - case 79: goto st662; - case 80: goto st672; - case 82: goto st675; - case 83: goto st682; - case 84: goto st701; - case 85: goto st711; - case 87: goto st714; - case 90: goto st720; - case 97: goto st561; - case 99: goto st566; - case 100: goto st587; - case 101: goto st604; - case 104: goto st611; - case 105: goto st620; - case 107: goto st628; - case 108: goto st632; - case 109: goto st640; - case 110: goto st646; - case 111: goto st662; - case 112: goto st672; - case 114: goto st675; - case 115: goto st682; - case 116: goto st701; - case 117: goto st711; - case 119: goto st714; - case 122: goto st720; - case 3082: goto tr1502; - case 3131: goto tr1503; - case 3338: goto tr1504; - case 3387: goto tr1504; - case 3594: goto tr1505; - case 3643: goto tr1506; - } - goto tr1472; -st566: - if ( ++p == pe ) - goto _test_eof566; -case 566: - switch( (*p) ) { - case 65: goto st567; - case 68: goto st569; - case 69: goto st576; - case 78: goto st579; - case 83: goto st583; - case 97: goto st567; - case 100: goto st569; - case 101: goto st576; - case 110: goto st579; - case 115: goto st583; - } - goto tr1472; -st567: - if ( ++p == pe ) - goto _test_eof567; -case 567: - switch( (*p) ) { - case 65: goto st568; - case 97: goto st568; - } - goto tr1472; -st568: - if ( ++p == pe ) - goto _test_eof568; -case 568: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1536; - case 32: goto tr1536; - case 40: goto tr1537; - case 41: goto tr1538; - case 3082: goto tr1539; - case 3131: goto tr1540; - case 3338: goto tr1541; - case 3387: goto tr1541; - case 3594: goto tr1542; - case 3643: goto tr1543; - } - goto tr1472; -tr1480: - { - memset(s->windows, 0, sizeof(s->windows)); - s->last_window = -1; - } + goto st1516; +tr2103: + { window_add_bit(KNOT_RRTYPE_APL, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -55167,7 +55853,7 @@ tr1480: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55175,8 +55861,140 @@ tr1480: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1506: + goto st1516; +st1516: + if ( ++p == pe ) + goto _test_eof1516; +case 1516: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st572; + case 32: goto st572; + case 40: goto tr1503; + case 41: goto tr1504; + case 65: goto st573; + case 67: goto st578; + case 68: goto st599; + case 69: goto st616; + case 72: goto st623; + case 73: goto st632; + case 75: goto st640; + case 76: goto st644; + case 77: goto st652; + case 78: goto st658; + case 79: goto st674; + case 80: goto st684; + case 82: goto st687; + case 83: goto st700; + case 84: goto st719; + case 85: goto st729; + case 87: goto st732; + case 90: goto st738; + case 97: goto st573; + case 99: goto st578; + case 100: goto st599; + case 101: goto st616; + case 104: goto st623; + case 105: goto st632; + case 107: goto st640; + case 108: goto st644; + case 109: goto st652; + case 110: goto st658; + case 111: goto st674; + case 112: goto st684; + case 114: goto st687; + case 115: goto st700; + case 116: goto st719; + case 117: goto st729; + case 119: goto st732; + case 122: goto st738; + case 3082: goto tr1523; + case 3131: goto tr1524; + case 3338: goto tr1525; + case 3387: goto tr1525; + case 3594: goto tr1526; + case 3643: goto tr1527; + } + goto tr1493; +st578: + if ( ++p == pe ) + goto _test_eof578; +case 578: + switch( (*p) ) { + case 65: goto st579; + case 68: goto st581; + case 69: goto st588; + case 78: goto st591; + case 83: goto st595; + case 97: goto st579; + case 100: goto st581; + case 101: goto st588; + case 110: goto st591; + case 115: goto st595; + } + goto tr1493; +st579: + if ( ++p == pe ) + goto _test_eof579; +case 579: + switch( (*p) ) { + case 65: goto st580; + case 97: goto st580; + } + goto tr1493; +st580: + if ( ++p == pe ) + goto _test_eof580; +case 580: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1557; + case 32: goto tr1557; + case 40: goto tr1558; + case 41: goto tr1559; + case 3082: goto tr1560; + case 3131: goto tr1561; + case 3338: goto tr1562; + case 3387: goto tr1562; + case 3594: goto tr1563; + case 3643: goto tr1564; + } + goto tr1493; +tr1501: + { + memset(s->windows, 0, sizeof(s->windows)); + s->last_window = -1; + } { s->buffer_length = 0; } @@ -55198,7 +56016,7 @@ tr1506: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55206,8 +56024,39 @@ tr1506: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1517: + goto st1517; +tr1527: + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st325;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1517; +tr1538: { window_add_bit(KNOT_RRTYPE_A, s); } { s->buffer_length = 0; @@ -55230,7 +56079,7 @@ tr1517: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55238,8 +56087,8 @@ tr1517: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1527: + goto st1517; +tr1548: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->buffer_length = 0; @@ -55262,7 +56111,7 @@ tr1527: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55270,8 +56119,8 @@ tr1527: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1543: + goto st1517; +tr1564: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->buffer_length = 0; @@ -55294,7 +56143,7 @@ tr1543: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55302,8 +56151,8 @@ tr1543: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1557: + goto st1517; +tr1578: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->buffer_length = 0; @@ -55326,7 +56175,7 @@ tr1557: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55334,8 +56183,8 @@ tr1557: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1565: + goto st1517; +tr1586: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->buffer_length = 0; @@ -55358,7 +56207,7 @@ tr1565: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55366,8 +56215,8 @@ tr1565: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1575: + goto st1517; +tr1596: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->buffer_length = 0; @@ -55390,7 +56239,7 @@ tr1575: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55398,8 +56247,8 @@ tr1575: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1586: + goto st1517; +tr1607: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->buffer_length = 0; @@ -55422,7 +56271,7 @@ tr1586: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55430,8 +56279,8 @@ tr1586: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1597: + goto st1517; +tr1618: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->buffer_length = 0; @@ -55454,7 +56303,7 @@ tr1597: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55462,8 +56311,8 @@ tr1597: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1611: + goto st1517; +tr1632: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->buffer_length = 0; @@ -55486,7 +56335,7 @@ tr1611: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55494,8 +56343,8 @@ tr1611: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1623: + goto st1517; +tr1644: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->buffer_length = 0; @@ -55518,7 +56367,7 @@ tr1623: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55526,8 +56375,8 @@ tr1623: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1634: + goto st1517; +tr1655: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->buffer_length = 0; @@ -55550,7 +56399,7 @@ tr1634: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55558,8 +56407,8 @@ tr1634: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1643: + goto st1517; +tr1664: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->buffer_length = 0; @@ -55582,7 +56431,7 @@ tr1643: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55590,8 +56439,8 @@ tr1643: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1653: + goto st1517; +tr1674: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->buffer_length = 0; @@ -55614,7 +56463,7 @@ tr1653: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55622,8 +56471,8 @@ tr1653: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1666: + goto st1517; +tr1687: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->buffer_length = 0; @@ -55646,7 +56495,7 @@ tr1666: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55654,8 +56503,8 @@ tr1666: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1675: + goto st1517; +tr1696: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->buffer_length = 0; @@ -55678,7 +56527,7 @@ tr1675: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55686,8 +56535,8 @@ tr1675: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1688: + goto st1517; +tr1709: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->buffer_length = 0; @@ -55710,7 +56559,7 @@ tr1688: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55718,8 +56567,8 @@ tr1688: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1699: + goto st1517; +tr1720: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->buffer_length = 0; @@ -55742,7 +56591,7 @@ tr1699: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55750,8 +56599,8 @@ tr1699: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1714: + goto st1517; +tr1735: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->buffer_length = 0; @@ -55774,7 +56623,7 @@ tr1714: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55782,8 +56631,8 @@ tr1714: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1725: + goto st1517; +tr1746: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->buffer_length = 0; @@ -55806,7 +56655,7 @@ tr1725: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55814,8 +56663,8 @@ tr1725: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1733: + goto st1517; +tr1754: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->buffer_length = 0; @@ -55838,7 +56687,7 @@ tr1733: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55846,8 +56695,8 @@ tr1733: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1746: + goto st1517; +tr1767: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->buffer_length = 0; @@ -55870,7 +56719,7 @@ tr1746: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55878,8 +56727,8 @@ tr1746: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1755: + goto st1517; +tr1776: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->buffer_length = 0; @@ -55902,7 +56751,7 @@ tr1755: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55910,8 +56759,8 @@ tr1755: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1764: + goto st1517; +tr1785: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->buffer_length = 0; @@ -55934,7 +56783,7 @@ tr1764: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55942,8 +56791,8 @@ tr1764: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1772: + goto st1517; +tr1793: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->buffer_length = 0; @@ -55966,7 +56815,7 @@ tr1772: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -55974,8 +56823,8 @@ tr1772: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1785: + goto st1517; +tr1806: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->buffer_length = 0; @@ -55998,7 +56847,7 @@ tr1785: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56006,8 +56855,8 @@ tr1785: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1793: + goto st1517; +tr1814: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->buffer_length = 0; @@ -56030,7 +56879,7 @@ tr1793: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56038,8 +56887,8 @@ tr1793: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1807: + goto st1517; +tr1828: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->buffer_length = 0; @@ -56062,7 +56911,7 @@ tr1807: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56070,8 +56919,8 @@ tr1807: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1816: + goto st1517; +tr1837: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->buffer_length = 0; @@ -56094,7 +56943,7 @@ tr1816: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56102,8 +56951,8 @@ tr1816: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1825: + goto st1517; +tr1846: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->buffer_length = 0; @@ -56126,7 +56975,7 @@ tr1825: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56134,8 +56983,8 @@ tr1825: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1835: + goto st1517; +tr1856: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->buffer_length = 0; @@ -56158,7 +57007,7 @@ tr1835: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56166,8 +57015,8 @@ tr1835: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1844: + goto st1517; +tr1865: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->buffer_length = 0; @@ -56190,7 +57039,7 @@ tr1844: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56198,8 +57047,8 @@ tr1844: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1856: + goto st1517; +tr1877: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->buffer_length = 0; @@ -56222,7 +57071,7 @@ tr1856: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56230,8 +57079,8 @@ tr1856: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1873: + goto st1517; +tr1894: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->buffer_length = 0; @@ -56254,7 +57103,7 @@ tr1873: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56262,8 +57111,8 @@ tr1873: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1883: + goto st1517; +tr1904: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->buffer_length = 0; @@ -56286,7 +57135,7 @@ tr1883: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56294,8 +57143,40 @@ tr1883: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1894: + goto st1517; +tr1921: + { window_add_bit(KNOT_RRTYPE_RESINFO, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st325;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1517; +tr1929: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->buffer_length = 0; @@ -56318,7 +57199,7 @@ tr1894: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56326,8 +57207,8 @@ tr1894: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1905: + goto st1517; +tr1940: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->buffer_length = 0; @@ -56350,7 +57231,7 @@ tr1905: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56358,8 +57239,8 @@ tr1905: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1913: + goto st1517; +tr1948: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->buffer_length = 0; @@ -56382,7 +57263,7 @@ tr1913: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56390,8 +57271,8 @@ tr1913: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1931: + goto st1517; +tr1966: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->buffer_length = 0; @@ -56414,7 +57295,7 @@ tr1931: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56422,8 +57303,8 @@ tr1931: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1940: + goto st1517; +tr1975: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->buffer_length = 0; @@ -56446,7 +57327,7 @@ tr1940: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56454,8 +57335,8 @@ tr1940: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1949: + goto st1517; +tr1984: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->buffer_length = 0; @@ -56478,7 +57359,7 @@ tr1949: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56486,8 +57367,8 @@ tr1949: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1958: + goto st1517; +tr1993: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->buffer_length = 0; @@ -56510,7 +57391,7 @@ tr1958: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56518,8 +57399,8 @@ tr1958: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1969: + goto st1517; +tr2004: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->buffer_length = 0; @@ -56542,7 +57423,7 @@ tr1969: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56550,8 +57431,8 @@ tr1969: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1979: + goto st1517; +tr2014: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->buffer_length = 0; @@ -56574,7 +57455,7 @@ tr1979: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56582,8 +57463,8 @@ tr1979: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr1992: + goto st1517; +tr2027: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->buffer_length = 0; @@ -56606,7 +57487,7 @@ tr1992: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56614,8 +57495,8 @@ tr1992: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr2001: + goto st1517; +tr2036: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->buffer_length = 0; @@ -56638,7 +57519,7 @@ tr2001: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56646,14 +57527,14 @@ tr2001: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr2013: + goto st1517; +tr2048: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -56677,7 +57558,7 @@ tr2013: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56685,8 +57566,8 @@ tr2013: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr2023: + goto st1517; +tr2058: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->buffer_length = 0; @@ -56709,7 +57590,7 @@ tr2023: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56717,8 +57598,8 @@ tr2023: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr2036: + goto st1517; +tr2071: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->buffer_length = 0; @@ -56741,7 +57622,7 @@ tr2036: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56749,8 +57630,8 @@ tr2036: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr2049: + goto st1517; +tr2084: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->buffer_length = 0; @@ -56773,7 +57654,7 @@ tr2049: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56781,8 +57662,8 @@ tr2049: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr2060: + goto st1517; +tr2095: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->buffer_length = 0; @@ -56805,7 +57686,7 @@ tr2060: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56813,8 +57694,8 @@ tr2060: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -tr2069: + goto st1517; +tr2104: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->buffer_length = 0; @@ -56837,7 +57718,7 @@ tr2069: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } } @@ -56845,11 +57726,11 @@ tr2069: { p--; {cs = stack[--top];goto _again;} } - goto st1499; -st1499: + goto st1517; +st1517: if ( ++p == pe ) - goto _test_eof1499; -case 1499: + goto _test_eof1517; +case 1517: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -56869,145 +57750,61 @@ case 1499: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1529; + goto tr1550; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1528; - goto tr1472; -st569: - if ( ++p == pe ) - goto _test_eof569; -case 569: - switch( (*p) ) { - case 78: goto st570; - case 83: goto st575; - case 110: goto st570; - case 115: goto st575; - } - goto tr1472; -st570: - if ( ++p == pe ) - goto _test_eof570; -case 570: - switch( (*p) ) { - case 83: goto st571; - case 115: goto st571; - } - goto tr1472; -st571: + goto tr1549; + goto tr1493; +st581: if ( ++p == pe ) - goto _test_eof571; -case 571: + goto _test_eof581; +case 581: switch( (*p) ) { - case 75: goto st572; - case 107: goto st572; + case 78: goto st582; + case 83: goto st587; + case 110: goto st582; + case 115: goto st587; } - goto tr1472; -st572: + goto tr1493; +st582: if ( ++p == pe ) - goto _test_eof572; -case 572: + goto _test_eof582; +case 582: switch( (*p) ) { - case 69: goto st573; - case 101: goto st573; + case 83: goto st583; + case 115: goto st583; } - goto tr1472; -st573: + goto tr1493; +st583: if ( ++p == pe ) - goto _test_eof573; -case 573: + goto _test_eof583; +case 583: switch( (*p) ) { - case 89: goto st574; - case 121: goto st574; + case 75: goto st584; + case 107: goto st584; } - goto tr1472; -st574: - if ( ++p == pe ) - goto _test_eof574; -case 574: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1550; - case 32: goto tr1550; - case 40: goto tr1551; - case 41: goto tr1552; - case 3082: goto tr1553; - case 3131: goto tr1554; - case 3338: goto tr1555; - case 3387: goto tr1555; - case 3594: goto tr1556; - case 3643: goto tr1557; - } - goto tr1472; -st575: - if ( ++p == pe ) - goto _test_eof575; -case 575: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1558; - case 32: goto tr1558; - case 40: goto tr1559; - case 41: goto tr1560; - case 3082: goto tr1561; - case 3131: goto tr1562; - case 3338: goto tr1563; - case 3387: goto tr1563; - case 3594: goto tr1564; - case 3643: goto tr1565; - } - goto tr1472; -st576: + goto tr1493; +st584: if ( ++p == pe ) - goto _test_eof576; -case 576: + goto _test_eof584; +case 584: switch( (*p) ) { - case 82: goto st577; - case 114: goto st577; + case 69: goto st585; + case 101: goto st585; } - goto tr1472; -st577: + goto tr1493; +st585: if ( ++p == pe ) - goto _test_eof577; -case 577: + goto _test_eof585; +case 585: switch( (*p) ) { - case 84: goto st578; - case 116: goto st578; + case 89: goto st586; + case 121: goto st586; } - goto tr1472; -st578: + goto tr1493; +st586: if ( ++p == pe ) - goto _test_eof578; -case 578: + goto _test_eof586; +case 586: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57025,49 +57822,22 @@ case 578: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1568; - case 32: goto tr1568; - case 40: goto tr1569; - case 41: goto tr1570; - case 3082: goto tr1571; - case 3131: goto tr1572; - case 3338: goto tr1573; - case 3387: goto tr1573; - case 3594: goto tr1574; - case 3643: goto tr1575; - } - goto tr1472; -st579: - if ( ++p == pe ) - goto _test_eof579; -case 579: - switch( (*p) ) { - case 65: goto st580; - case 97: goto st580; - } - goto tr1472; -st580: - if ( ++p == pe ) - goto _test_eof580; -case 580: - switch( (*p) ) { - case 77: goto st581; - case 109: goto st581; - } - goto tr1472; -st581: - if ( ++p == pe ) - goto _test_eof581; -case 581: - switch( (*p) ) { - case 69: goto st582; - case 101: goto st582; - } - goto tr1472; -st582: + case 9: goto tr1571; + case 32: goto tr1571; + case 40: goto tr1572; + case 41: goto tr1573; + case 3082: goto tr1574; + case 3131: goto tr1575; + case 3338: goto tr1576; + case 3387: goto tr1576; + case 3594: goto tr1577; + case 3643: goto tr1578; + } + goto tr1493; +st587: if ( ++p == pe ) - goto _test_eof582; -case 582: + goto _test_eof587; +case 587: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57096,111 +57866,29 @@ case 582: case 3594: goto tr1585; case 3643: goto tr1586; } - goto tr1472; -st583: - if ( ++p == pe ) - goto _test_eof583; -case 583: - switch( (*p) ) { - case 89: goto st584; - case 121: goto st584; - } - goto tr1472; -st584: - if ( ++p == pe ) - goto _test_eof584; -case 584: - switch( (*p) ) { - case 78: goto st585; - case 110: goto st585; - } - goto tr1472; -st585: - if ( ++p == pe ) - goto _test_eof585; -case 585: - switch( (*p) ) { - case 67: goto st586; - case 99: goto st586; - } - goto tr1472; -st586: - if ( ++p == pe ) - goto _test_eof586; -case 586: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1590; - case 32: goto tr1590; - case 40: goto tr1591; - case 41: goto tr1592; - case 3082: goto tr1593; - case 3131: goto tr1594; - case 3338: goto tr1595; - case 3387: goto tr1595; - case 3594: goto tr1596; - case 3643: goto tr1597; - } - goto tr1472; -st587: - if ( ++p == pe ) - goto _test_eof587; -case 587: - switch( (*p) ) { - case 72: goto st588; - case 78: goto st592; - case 83: goto st600; - case 104: goto st588; - case 110: goto st592; - case 115: goto st600; - } - goto tr1472; + goto tr1493; st588: if ( ++p == pe ) goto _test_eof588; case 588: switch( (*p) ) { - case 67: goto st589; - case 99: goto st589; + case 82: goto st589; + case 114: goto st589; } - goto tr1472; + goto tr1493; st589: if ( ++p == pe ) goto _test_eof589; case 589: switch( (*p) ) { - case 73: goto st590; - case 105: goto st590; + case 84: goto st590; + case 116: goto st590; } - goto tr1472; + goto tr1493; st590: if ( ++p == pe ) goto _test_eof590; case 590: - switch( (*p) ) { - case 68: goto st591; - case 100: goto st591; - } - goto tr1472; -st591: - if ( ++p == pe ) - goto _test_eof591; -case 591: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57218,51 +57906,49 @@ case 591: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1604; - case 32: goto tr1604; - case 40: goto tr1605; - case 41: goto tr1606; - case 3082: goto tr1607; - case 3131: goto tr1608; - case 3338: goto tr1609; - case 3387: goto tr1609; - case 3594: goto tr1610; - case 3643: goto tr1611; - } - goto tr1472; + case 9: goto tr1589; + case 32: goto tr1589; + case 40: goto tr1590; + case 41: goto tr1591; + case 3082: goto tr1592; + case 3131: goto tr1593; + case 3338: goto tr1594; + case 3387: goto tr1594; + case 3594: goto tr1595; + case 3643: goto tr1596; + } + goto tr1493; +st591: + if ( ++p == pe ) + goto _test_eof591; +case 591: + switch( (*p) ) { + case 65: goto st592; + case 97: goto st592; + } + goto tr1493; st592: if ( ++p == pe ) goto _test_eof592; case 592: switch( (*p) ) { - case 65: goto st593; - case 83: goto st596; - case 97: goto st593; - case 115: goto st596; + case 77: goto st593; + case 109: goto st593; } - goto tr1472; + goto tr1493; st593: if ( ++p == pe ) goto _test_eof593; case 593: switch( (*p) ) { - case 77: goto st594; - case 109: goto st594; + case 69: goto st594; + case 101: goto st594; } - goto tr1472; + goto tr1493; st594: if ( ++p == pe ) goto _test_eof594; case 594: - switch( (*p) ) { - case 69: goto st595; - case 101: goto st595; - } - goto tr1472; -st595: - if ( ++p == pe ) - goto _test_eof595; -case 595: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57280,49 +57966,49 @@ case 595: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1616; - case 32: goto tr1616; - case 40: goto tr1617; - case 41: goto tr1618; - case 3082: goto tr1619; - case 3131: goto tr1620; - case 3338: goto tr1621; - case 3387: goto tr1621; - case 3594: goto tr1622; - case 3643: goto tr1623; - } - goto tr1472; + case 9: goto tr1600; + case 32: goto tr1600; + case 40: goto tr1601; + case 41: goto tr1602; + case 3082: goto tr1603; + case 3131: goto tr1604; + case 3338: goto tr1605; + case 3387: goto tr1605; + case 3594: goto tr1606; + case 3643: goto tr1607; + } + goto tr1493; +st595: + if ( ++p == pe ) + goto _test_eof595; +case 595: + switch( (*p) ) { + case 89: goto st596; + case 121: goto st596; + } + goto tr1493; st596: if ( ++p == pe ) goto _test_eof596; case 596: switch( (*p) ) { - case 75: goto st597; - case 107: goto st597; + case 78: goto st597; + case 110: goto st597; } - goto tr1472; + goto tr1493; st597: if ( ++p == pe ) goto _test_eof597; case 597: switch( (*p) ) { - case 69: goto st598; - case 101: goto st598; + case 67: goto st598; + case 99: goto st598; } - goto tr1472; + goto tr1493; st598: if ( ++p == pe ) goto _test_eof598; case 598: - switch( (*p) ) { - case 89: goto st599; - case 121: goto st599; - } - goto tr1472; -st599: - if ( ++p == pe ) - goto _test_eof599; -case 599: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57340,71 +58026,58 @@ case 599: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1627; - case 32: goto tr1627; - case 40: goto tr1628; - case 41: goto tr1629; - case 3082: goto tr1630; - case 3131: goto tr1631; - case 3338: goto tr1632; - case 3387: goto tr1632; - case 3594: goto tr1633; - case 3643: goto tr1634; - } - goto tr1472; + case 9: goto tr1611; + case 32: goto tr1611; + case 40: goto tr1612; + case 41: goto tr1613; + case 3082: goto tr1614; + case 3131: goto tr1615; + case 3338: goto tr1616; + case 3387: goto tr1616; + case 3594: goto tr1617; + case 3643: goto tr1618; + } + goto tr1493; +st599: + if ( ++p == pe ) + goto _test_eof599; +case 599: + switch( (*p) ) { + case 72: goto st600; + case 78: goto st604; + case 83: goto st612; + case 104: goto st600; + case 110: goto st604; + case 115: goto st612; + } + goto tr1493; st600: if ( ++p == pe ) goto _test_eof600; case 600: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + switch( (*p) ) { + case 67: goto st601; + case 99: goto st601; } - switch( _widec ) { - case 9: goto tr1635; - case 32: goto tr1635; - case 40: goto tr1636; - case 41: goto tr1637; - case 89: goto st601; - case 121: goto st601; - case 3082: goto tr1639; - case 3131: goto tr1640; - case 3338: goto tr1641; - case 3387: goto tr1641; - case 3594: goto tr1642; - case 3643: goto tr1643; - } - goto tr1472; + goto tr1493; st601: if ( ++p == pe ) goto _test_eof601; case 601: switch( (*p) ) { - case 78: goto st602; - case 110: goto st602; + case 73: goto st602; + case 105: goto st602; } - goto tr1472; + goto tr1493; st602: if ( ++p == pe ) goto _test_eof602; case 602: switch( (*p) ) { - case 67: goto st603; - case 99: goto st603; + case 68: goto st603; + case 100: goto st603; } - goto tr1472; + goto tr1493; st603: if ( ++p == pe ) goto _test_eof603; @@ -57426,56 +58099,51 @@ case 603: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1646; - case 32: goto tr1646; - case 40: goto tr1647; - case 41: goto tr1648; - case 3082: goto tr1649; - case 3131: goto tr1650; - case 3338: goto tr1651; - case 3387: goto tr1651; - case 3594: goto tr1652; - case 3643: goto tr1653; - } - goto tr1472; + case 9: goto tr1625; + case 32: goto tr1625; + case 40: goto tr1626; + case 41: goto tr1627; + case 3082: goto tr1628; + case 3131: goto tr1629; + case 3338: goto tr1630; + case 3387: goto tr1630; + case 3594: goto tr1631; + case 3643: goto tr1632; + } + goto tr1493; st604: if ( ++p == pe ) goto _test_eof604; case 604: switch( (*p) ) { - case 85: goto st605; - case 117: goto st605; + case 65: goto st605; + case 83: goto st608; + case 97: goto st605; + case 115: goto st608; } - goto tr1472; + goto tr1493; st605: if ( ++p == pe ) goto _test_eof605; case 605: switch( (*p) ) { - case 73: goto st606; - case 105: goto st606; + case 77: goto st606; + case 109: goto st606; } - goto tr1472; + goto tr1493; st606: if ( ++p == pe ) goto _test_eof606; case 606: switch( (*p) ) { - case 52: goto st607; - case 54: goto st609; + case 69: goto st607; + case 101: goto st607; } - goto tr1472; + goto tr1493; st607: if ( ++p == pe ) goto _test_eof607; case 607: - if ( (*p) == 56 ) - goto st608; - goto tr1472; -st608: - if ( ++p == pe ) - goto _test_eof608; -case 608: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57493,29 +58161,49 @@ case 608: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1659; - case 32: goto tr1659; - case 40: goto tr1660; - case 41: goto tr1661; - case 3082: goto tr1662; - case 3131: goto tr1663; - case 3338: goto tr1664; - case 3387: goto tr1664; - case 3594: goto tr1665; - case 3643: goto tr1666; - } - goto tr1472; + case 9: goto tr1637; + case 32: goto tr1637; + case 40: goto tr1638; + case 41: goto tr1639; + case 3082: goto tr1640; + case 3131: goto tr1641; + case 3338: goto tr1642; + case 3387: goto tr1642; + case 3594: goto tr1643; + case 3643: goto tr1644; + } + goto tr1493; +st608: + if ( ++p == pe ) + goto _test_eof608; +case 608: + switch( (*p) ) { + case 75: goto st609; + case 107: goto st609; + } + goto tr1493; st609: if ( ++p == pe ) goto _test_eof609; case 609: - if ( (*p) == 52 ) - goto st610; - goto tr1472; + switch( (*p) ) { + case 69: goto st610; + case 101: goto st610; + } + goto tr1493; st610: if ( ++p == pe ) goto _test_eof610; case 610: + switch( (*p) ) { + case 89: goto st611; + case 121: goto st611; + } + goto tr1493; +st611: + if ( ++p == pe ) + goto _test_eof611; +case 611: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57533,56 +58221,71 @@ case 610: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1668; - case 32: goto tr1668; - case 40: goto tr1669; - case 41: goto tr1670; - case 3082: goto tr1671; - case 3131: goto tr1672; - case 3338: goto tr1673; - case 3387: goto tr1673; - case 3594: goto tr1674; - case 3643: goto tr1675; - } - goto tr1472; -st611: - if ( ++p == pe ) - goto _test_eof611; -case 611: - switch( (*p) ) { - case 73: goto st612; - case 84: goto st616; - case 105: goto st612; - case 116: goto st616; - } - goto tr1472; + case 9: goto tr1648; + case 32: goto tr1648; + case 40: goto tr1649; + case 41: goto tr1650; + case 3082: goto tr1651; + case 3131: goto tr1652; + case 3338: goto tr1653; + case 3387: goto tr1653; + case 3594: goto tr1654; + case 3643: goto tr1655; + } + goto tr1493; st612: if ( ++p == pe ) goto _test_eof612; case 612: - switch( (*p) ) { - case 78: goto st613; - case 110: goto st613; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr1472; + switch( _widec ) { + case 9: goto tr1656; + case 32: goto tr1656; + case 40: goto tr1657; + case 41: goto tr1658; + case 89: goto st613; + case 121: goto st613; + case 3082: goto tr1660; + case 3131: goto tr1661; + case 3338: goto tr1662; + case 3387: goto tr1662; + case 3594: goto tr1663; + case 3643: goto tr1664; + } + goto tr1493; st613: if ( ++p == pe ) goto _test_eof613; case 613: switch( (*p) ) { - case 70: goto st614; - case 102: goto st614; + case 78: goto st614; + case 110: goto st614; } - goto tr1472; + goto tr1493; st614: if ( ++p == pe ) goto _test_eof614; case 614: switch( (*p) ) { - case 79: goto st615; - case 111: goto st615; + case 67: goto st615; + case 99: goto st615; } - goto tr1472; + goto tr1493; st615: if ( ++p == pe ) goto _test_eof615; @@ -57604,49 +58307,56 @@ case 615: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1681; - case 32: goto tr1681; - case 40: goto tr1682; - case 41: goto tr1683; - case 3082: goto tr1684; - case 3131: goto tr1685; - case 3338: goto tr1686; - case 3387: goto tr1686; - case 3594: goto tr1687; - case 3643: goto tr1688; - } - goto tr1472; + case 9: goto tr1667; + case 32: goto tr1667; + case 40: goto tr1668; + case 41: goto tr1669; + case 3082: goto tr1670; + case 3131: goto tr1671; + case 3338: goto tr1672; + case 3387: goto tr1672; + case 3594: goto tr1673; + case 3643: goto tr1674; + } + goto tr1493; st616: if ( ++p == pe ) goto _test_eof616; case 616: switch( (*p) ) { - case 84: goto st617; - case 116: goto st617; + case 85: goto st617; + case 117: goto st617; } - goto tr1472; + goto tr1493; st617: if ( ++p == pe ) goto _test_eof617; case 617: switch( (*p) ) { - case 80: goto st618; - case 112: goto st618; + case 73: goto st618; + case 105: goto st618; } - goto tr1472; + goto tr1493; st618: if ( ++p == pe ) goto _test_eof618; case 618: switch( (*p) ) { - case 83: goto st619; - case 115: goto st619; + case 52: goto st619; + case 54: goto st621; } - goto tr1472; + goto tr1493; st619: if ( ++p == pe ) goto _test_eof619; case 619: + if ( (*p) == 56 ) + goto st620; + goto tr1493; +st620: + if ( ++p == pe ) + goto _test_eof620; +case 620: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57664,81 +58374,96 @@ case 619: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1692; - case 32: goto tr1692; - case 40: goto tr1693; - case 41: goto tr1694; - case 3082: goto tr1695; - case 3131: goto tr1696; - case 3338: goto tr1697; - case 3387: goto tr1697; - case 3594: goto tr1698; - case 3643: goto tr1699; - } - goto tr1472; -st620: - if ( ++p == pe ) - goto _test_eof620; -case 620: - switch( (*p) ) { - case 80: goto st621; - case 112: goto st621; - } - goto tr1472; + case 9: goto tr1680; + case 32: goto tr1680; + case 40: goto tr1681; + case 41: goto tr1682; + case 3082: goto tr1683; + case 3131: goto tr1684; + case 3338: goto tr1685; + case 3387: goto tr1685; + case 3594: goto tr1686; + case 3643: goto tr1687; + } + goto tr1493; st621: if ( ++p == pe ) goto _test_eof621; case 621: - switch( (*p) ) { - case 83: goto st622; - case 115: goto st622; - } - goto tr1472; + if ( (*p) == 52 ) + goto st622; + goto tr1493; st622: if ( ++p == pe ) goto _test_eof622; case 622: - switch( (*p) ) { - case 69: goto st623; - case 101: goto st623; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr1472; + switch( _widec ) { + case 9: goto tr1689; + case 32: goto tr1689; + case 40: goto tr1690; + case 41: goto tr1691; + case 3082: goto tr1692; + case 3131: goto tr1693; + case 3338: goto tr1694; + case 3387: goto tr1694; + case 3594: goto tr1695; + case 3643: goto tr1696; + } + goto tr1493; st623: if ( ++p == pe ) goto _test_eof623; case 623: switch( (*p) ) { - case 67: goto st624; - case 99: goto st624; + case 73: goto st624; + case 84: goto st628; + case 105: goto st624; + case 116: goto st628; } - goto tr1472; + goto tr1493; st624: if ( ++p == pe ) goto _test_eof624; case 624: switch( (*p) ) { - case 75: goto st625; - case 107: goto st625; + case 78: goto st625; + case 110: goto st625; } - goto tr1472; + goto tr1493; st625: if ( ++p == pe ) goto _test_eof625; case 625: switch( (*p) ) { - case 69: goto st626; - case 101: goto st626; + case 70: goto st626; + case 102: goto st626; } - goto tr1472; + goto tr1493; st626: if ( ++p == pe ) goto _test_eof626; case 626: switch( (*p) ) { - case 89: goto st627; - case 121: goto st627; + case 79: goto st627; + case 111: goto st627; } - goto tr1472; + goto tr1493; st627: if ( ++p == pe ) goto _test_eof627; @@ -57760,42 +58485,49 @@ case 627: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1707; - case 32: goto tr1707; - case 40: goto tr1708; - case 41: goto tr1709; - case 3082: goto tr1710; - case 3131: goto tr1711; - case 3338: goto tr1712; - case 3387: goto tr1712; - case 3594: goto tr1713; - case 3643: goto tr1714; - } - goto tr1472; + case 9: goto tr1702; + case 32: goto tr1702; + case 40: goto tr1703; + case 41: goto tr1704; + case 3082: goto tr1705; + case 3131: goto tr1706; + case 3338: goto tr1707; + case 3387: goto tr1707; + case 3594: goto tr1708; + case 3643: goto tr1709; + } + goto tr1493; st628: if ( ++p == pe ) goto _test_eof628; case 628: switch( (*p) ) { - case 69: goto st629; - case 88: goto st631; - case 101: goto st629; - case 120: goto st631; + case 84: goto st629; + case 116: goto st629; } - goto tr1472; + goto tr1493; st629: if ( ++p == pe ) goto _test_eof629; case 629: switch( (*p) ) { - case 89: goto st630; - case 121: goto st630; + case 80: goto st630; + case 112: goto st630; } - goto tr1472; + goto tr1493; st630: if ( ++p == pe ) goto _test_eof630; case 630: + switch( (*p) ) { + case 83: goto st631; + case 115: goto st631; + } + goto tr1493; +st631: + if ( ++p == pe ) + goto _test_eof631; +case 631: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57813,22 +58545,85 @@ case 630: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1718; - case 32: goto tr1718; - case 40: goto tr1719; - case 41: goto tr1720; - case 3082: goto tr1721; - case 3131: goto tr1722; - case 3338: goto tr1723; - case 3387: goto tr1723; - case 3594: goto tr1724; - case 3643: goto tr1725; - } - goto tr1472; -st631: + case 9: goto tr1713; + case 32: goto tr1713; + case 40: goto tr1714; + case 41: goto tr1715; + case 3082: goto tr1716; + case 3131: goto tr1717; + case 3338: goto tr1718; + case 3387: goto tr1718; + case 3594: goto tr1719; + case 3643: goto tr1720; + } + goto tr1493; +st632: if ( ++p == pe ) - goto _test_eof631; -case 631: + goto _test_eof632; +case 632: + switch( (*p) ) { + case 80: goto st633; + case 112: goto st633; + } + goto tr1493; +st633: + if ( ++p == pe ) + goto _test_eof633; +case 633: + switch( (*p) ) { + case 83: goto st634; + case 115: goto st634; + } + goto tr1493; +st634: + if ( ++p == pe ) + goto _test_eof634; +case 634: + switch( (*p) ) { + case 69: goto st635; + case 101: goto st635; + } + goto tr1493; +st635: + if ( ++p == pe ) + goto _test_eof635; +case 635: + switch( (*p) ) { + case 67: goto st636; + case 99: goto st636; + } + goto tr1493; +st636: + if ( ++p == pe ) + goto _test_eof636; +case 636: + switch( (*p) ) { + case 75: goto st637; + case 107: goto st637; + } + goto tr1493; +st637: + if ( ++p == pe ) + goto _test_eof637; +case 637: + switch( (*p) ) { + case 69: goto st638; + case 101: goto st638; + } + goto tr1493; +st638: + if ( ++p == pe ) + goto _test_eof638; +case 638: + switch( (*p) ) { + case 89: goto st639; + case 121: goto st639; + } + goto tr1493; +st639: + if ( ++p == pe ) + goto _test_eof639; +case 639: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57846,42 +58641,42 @@ case 631: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1726; - case 32: goto tr1726; - case 40: goto tr1727; - case 41: goto tr1728; - case 3082: goto tr1729; - case 3131: goto tr1730; - case 3338: goto tr1731; - case 3387: goto tr1731; - case 3594: goto tr1732; - case 3643: goto tr1733; - } - goto tr1472; -st632: + case 9: goto tr1728; + case 32: goto tr1728; + case 40: goto tr1729; + case 41: goto tr1730; + case 3082: goto tr1731; + case 3131: goto tr1732; + case 3338: goto tr1733; + case 3387: goto tr1733; + case 3594: goto tr1734; + case 3643: goto tr1735; + } + goto tr1493; +st640: if ( ++p == pe ) - goto _test_eof632; -case 632: + goto _test_eof640; +case 640: switch( (*p) ) { - case 51: goto st633; - case 54: goto st635; - case 79: goto st637; - case 80: goto st639; - case 111: goto st637; - case 112: goto st639; + case 69: goto st641; + case 88: goto st643; + case 101: goto st641; + case 120: goto st643; } - goto tr1472; -st633: + goto tr1493; +st641: if ( ++p == pe ) - goto _test_eof633; -case 633: - if ( (*p) == 50 ) - goto st634; - goto tr1472; -st634: + goto _test_eof641; +case 641: + switch( (*p) ) { + case 89: goto st642; + case 121: goto st642; + } + goto tr1493; +st642: if ( ++p == pe ) - goto _test_eof634; -case 634: + goto _test_eof642; +case 642: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57910,18 +58705,11 @@ case 634: case 3594: goto tr1745; case 3643: goto tr1746; } - goto tr1472; -st635: - if ( ++p == pe ) - goto _test_eof635; -case 635: - if ( (*p) == 52 ) - goto st636; - goto tr1472; -st636: + goto tr1493; +st643: if ( ++p == pe ) - goto _test_eof636; -case 636: + goto _test_eof643; +case 643: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57939,31 +58727,42 @@ case 636: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1748; - case 32: goto tr1748; - case 40: goto tr1749; - case 41: goto tr1750; - case 3082: goto tr1751; - case 3131: goto tr1752; - case 3338: goto tr1753; - case 3387: goto tr1753; - case 3594: goto tr1754; - case 3643: goto tr1755; - } - goto tr1472; -st637: + case 9: goto tr1747; + case 32: goto tr1747; + case 40: goto tr1748; + case 41: goto tr1749; + case 3082: goto tr1750; + case 3131: goto tr1751; + case 3338: goto tr1752; + case 3387: goto tr1752; + case 3594: goto tr1753; + case 3643: goto tr1754; + } + goto tr1493; +st644: if ( ++p == pe ) - goto _test_eof637; -case 637: + goto _test_eof644; +case 644: switch( (*p) ) { - case 67: goto st638; - case 99: goto st638; + case 51: goto st645; + case 54: goto st647; + case 79: goto st649; + case 80: goto st651; + case 111: goto st649; + case 112: goto st651; } - goto tr1472; -st638: + goto tr1493; +st645: if ( ++p == pe ) - goto _test_eof638; -case 638: + goto _test_eof645; +case 645: + if ( (*p) == 50 ) + goto st646; + goto tr1493; +st646: + if ( ++p == pe ) + goto _test_eof646; +case 646: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57981,22 +58780,29 @@ case 638: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1757; - case 32: goto tr1757; - case 40: goto tr1758; - case 41: goto tr1759; - case 3082: goto tr1760; - case 3131: goto tr1761; - case 3338: goto tr1762; - case 3387: goto tr1762; - case 3594: goto tr1763; - case 3643: goto tr1764; - } - goto tr1472; -st639: + case 9: goto tr1760; + case 32: goto tr1760; + case 40: goto tr1761; + case 41: goto tr1762; + case 3082: goto tr1763; + case 3131: goto tr1764; + case 3338: goto tr1765; + case 3387: goto tr1765; + case 3594: goto tr1766; + case 3643: goto tr1767; + } + goto tr1493; +st647: if ( ++p == pe ) - goto _test_eof639; -case 639: + goto _test_eof647; +case 647: + if ( (*p) == 52 ) + goto st648; + goto tr1493; +st648: + if ( ++p == pe ) + goto _test_eof648; +case 648: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58014,60 +58820,31 @@ case 639: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1765; - case 32: goto tr1765; - case 40: goto tr1766; - case 41: goto tr1767; - case 3082: goto tr1768; - case 3131: goto tr1769; - case 3338: goto tr1770; - case 3387: goto tr1770; - case 3594: goto tr1771; - case 3643: goto tr1772; - } - goto tr1472; -st640: - if ( ++p == pe ) - goto _test_eof640; -case 640: - switch( (*p) ) { - case 73: goto st641; - case 88: goto st645; - case 105: goto st641; - case 120: goto st645; - } - goto tr1472; -st641: - if ( ++p == pe ) - goto _test_eof641; -case 641: - switch( (*p) ) { - case 78: goto st642; - case 110: goto st642; - } - goto tr1472; -st642: - if ( ++p == pe ) - goto _test_eof642; -case 642: - switch( (*p) ) { - case 70: goto st643; - case 102: goto st643; - } - goto tr1472; -st643: + case 9: goto tr1769; + case 32: goto tr1769; + case 40: goto tr1770; + case 41: goto tr1771; + case 3082: goto tr1772; + case 3131: goto tr1773; + case 3338: goto tr1774; + case 3387: goto tr1774; + case 3594: goto tr1775; + case 3643: goto tr1776; + } + goto tr1493; +st649: if ( ++p == pe ) - goto _test_eof643; -case 643: + goto _test_eof649; +case 649: switch( (*p) ) { - case 79: goto st644; - case 111: goto st644; + case 67: goto st650; + case 99: goto st650; } - goto tr1472; -st644: + goto tr1493; +st650: if ( ++p == pe ) - goto _test_eof644; -case 644: + goto _test_eof650; +case 650: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58096,11 +58873,11 @@ case 644: case 3594: goto tr1784; case 3643: goto tr1785; } - goto tr1472; -st645: + goto tr1493; +st651: if ( ++p == pe ) - goto _test_eof645; -case 645: + goto _test_eof651; +case 651: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58129,51 +58906,49 @@ case 645: case 3594: goto tr1792; case 3643: goto tr1793; } - goto tr1472; -st646: + goto tr1493; +st652: if ( ++p == pe ) - goto _test_eof646; -case 646: + goto _test_eof652; +case 652: switch( (*p) ) { - case 65: goto st647; - case 73: goto st651; - case 83: goto st653; - case 97: goto st647; - case 105: goto st651; - case 115: goto st653; + case 73: goto st653; + case 88: goto st657; + case 105: goto st653; + case 120: goto st657; } - goto tr1472; -st647: + goto tr1493; +st653: if ( ++p == pe ) - goto _test_eof647; -case 647: + goto _test_eof653; +case 653: switch( (*p) ) { - case 80: goto st648; - case 112: goto st648; + case 78: goto st654; + case 110: goto st654; } - goto tr1472; -st648: + goto tr1493; +st654: if ( ++p == pe ) - goto _test_eof648; -case 648: + goto _test_eof654; +case 654: switch( (*p) ) { - case 84: goto st649; - case 116: goto st649; + case 70: goto st655; + case 102: goto st655; } - goto tr1472; -st649: + goto tr1493; +st655: if ( ++p == pe ) - goto _test_eof649; -case 649: + goto _test_eof655; +case 655: switch( (*p) ) { - case 82: goto st650; - case 114: goto st650; + case 79: goto st656; + case 111: goto st656; } - goto tr1472; -st650: + goto tr1493; +st656: if ( ++p == pe ) - goto _test_eof650; -case 650: + goto _test_eof656; +case 656: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58191,31 +58966,95 @@ case 650: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1800; - case 32: goto tr1800; - case 40: goto tr1801; - case 41: goto tr1802; - case 3082: goto tr1803; - case 3131: goto tr1804; - case 3338: goto tr1805; - case 3387: goto tr1805; - case 3594: goto tr1806; - case 3643: goto tr1807; - } - goto tr1472; -st651: + case 9: goto tr1799; + case 32: goto tr1799; + case 40: goto tr1800; + case 41: goto tr1801; + case 3082: goto tr1802; + case 3131: goto tr1803; + case 3338: goto tr1804; + case 3387: goto tr1804; + case 3594: goto tr1805; + case 3643: goto tr1806; + } + goto tr1493; +st657: if ( ++p == pe ) - goto _test_eof651; -case 651: + goto _test_eof657; +case 657: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1807; + case 32: goto tr1807; + case 40: goto tr1808; + case 41: goto tr1809; + case 3082: goto tr1810; + case 3131: goto tr1811; + case 3338: goto tr1812; + case 3387: goto tr1812; + case 3594: goto tr1813; + case 3643: goto tr1814; + } + goto tr1493; +st658: + if ( ++p == pe ) + goto _test_eof658; +case 658: switch( (*p) ) { - case 68: goto st652; - case 100: goto st652; + case 65: goto st659; + case 73: goto st663; + case 83: goto st665; + case 97: goto st659; + case 105: goto st663; + case 115: goto st665; } - goto tr1472; -st652: + goto tr1493; +st659: if ( ++p == pe ) - goto _test_eof652; -case 652: + goto _test_eof659; +case 659: + switch( (*p) ) { + case 80: goto st660; + case 112: goto st660; + } + goto tr1493; +st660: + if ( ++p == pe ) + goto _test_eof660; +case 660: + switch( (*p) ) { + case 84: goto st661; + case 116: goto st661; + } + goto tr1493; +st661: + if ( ++p == pe ) + goto _test_eof661; +case 661: + switch( (*p) ) { + case 82: goto st662; + case 114: goto st662; + } + goto tr1493; +st662: + if ( ++p == pe ) + goto _test_eof662; +case 662: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58233,22 +59072,31 @@ case 652: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1809; - case 32: goto tr1809; - case 40: goto tr1810; - case 41: goto tr1811; - case 3082: goto tr1812; - case 3131: goto tr1813; - case 3338: goto tr1814; - case 3387: goto tr1814; - case 3594: goto tr1815; - case 3643: goto tr1816; - } - goto tr1472; -st653: + case 9: goto tr1821; + case 32: goto tr1821; + case 40: goto tr1822; + case 41: goto tr1823; + case 3082: goto tr1824; + case 3131: goto tr1825; + case 3338: goto tr1826; + case 3387: goto tr1826; + case 3594: goto tr1827; + case 3643: goto tr1828; + } + goto tr1493; +st663: if ( ++p == pe ) - goto _test_eof653; -case 653: + goto _test_eof663; +case 663: + switch( (*p) ) { + case 68: goto st664; + case 100: goto st664; + } + goto tr1493; +st664: + if ( ++p == pe ) + goto _test_eof664; +case 664: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58266,33 +59114,66 @@ case 653: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1817; - case 32: goto tr1817; - case 40: goto tr1818; - case 41: goto tr1819; - case 69: goto st654; - case 101: goto st654; - case 3082: goto tr1821; - case 3131: goto tr1822; - case 3338: goto tr1823; - case 3387: goto tr1823; - case 3594: goto tr1824; - case 3643: goto tr1825; - } - goto tr1472; -st654: + case 9: goto tr1830; + case 32: goto tr1830; + case 40: goto tr1831; + case 41: goto tr1832; + case 3082: goto tr1833; + case 3131: goto tr1834; + case 3338: goto tr1835; + case 3387: goto tr1835; + case 3594: goto tr1836; + case 3643: goto tr1837; + } + goto tr1493; +st665: if ( ++p == pe ) - goto _test_eof654; -case 654: + goto _test_eof665; +case 665: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1838; + case 32: goto tr1838; + case 40: goto tr1839; + case 41: goto tr1840; + case 69: goto st666; + case 101: goto st666; + case 3082: goto tr1842; + case 3131: goto tr1843; + case 3338: goto tr1844; + case 3387: goto tr1844; + case 3594: goto tr1845; + case 3643: goto tr1846; + } + goto tr1493; +st666: + if ( ++p == pe ) + goto _test_eof666; +case 666: switch( (*p) ) { - case 67: goto st655; - case 99: goto st655; + case 67: goto st667; + case 99: goto st667; } - goto tr1472; -st655: + goto tr1493; +st667: if ( ++p == pe ) - goto _test_eof655; -case 655: + goto _test_eof667; +case 667: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58310,23 +59191,23 @@ case 655: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1827; - case 32: goto tr1827; - case 40: goto tr1828; - case 41: goto tr1829; - case 51: goto st656; - case 3082: goto tr1831; - case 3131: goto tr1832; - case 3338: goto tr1833; - case 3387: goto tr1833; - case 3594: goto tr1834; - case 3643: goto tr1835; - } - goto tr1472; -st656: + case 9: goto tr1848; + case 32: goto tr1848; + case 40: goto tr1849; + case 41: goto tr1850; + case 51: goto st668; + case 3082: goto tr1852; + case 3131: goto tr1853; + case 3338: goto tr1854; + case 3387: goto tr1854; + case 3594: goto tr1855; + case 3643: goto tr1856; + } + goto tr1493; +st668: if ( ++p == pe ) - goto _test_eof656; -case 656: + goto _test_eof668; +case 668: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58344,60 +59225,60 @@ case 656: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1836; - case 32: goto tr1836; - case 40: goto tr1837; - case 41: goto tr1838; - case 80: goto st657; - case 112: goto st657; - case 3082: goto tr1840; - case 3131: goto tr1841; - case 3338: goto tr1842; - case 3387: goto tr1842; - case 3594: goto tr1843; - case 3643: goto tr1844; - } - goto tr1472; -st657: + case 9: goto tr1857; + case 32: goto tr1857; + case 40: goto tr1858; + case 41: goto tr1859; + case 80: goto st669; + case 112: goto st669; + case 3082: goto tr1861; + case 3131: goto tr1862; + case 3338: goto tr1863; + case 3387: goto tr1863; + case 3594: goto tr1864; + case 3643: goto tr1865; + } + goto tr1493; +st669: if ( ++p == pe ) - goto _test_eof657; -case 657: + goto _test_eof669; +case 669: switch( (*p) ) { - case 65: goto st658; - case 97: goto st658; + case 65: goto st670; + case 97: goto st670; } - goto tr1472; -st658: + goto tr1493; +st670: if ( ++p == pe ) - goto _test_eof658; -case 658: + goto _test_eof670; +case 670: switch( (*p) ) { - case 82: goto st659; - case 114: goto st659; + case 82: goto st671; + case 114: goto st671; } - goto tr1472; -st659: + goto tr1493; +st671: if ( ++p == pe ) - goto _test_eof659; -case 659: + goto _test_eof671; +case 671: switch( (*p) ) { - case 65: goto st660; - case 97: goto st660; + case 65: goto st672; + case 97: goto st672; } - goto tr1472; -st660: + goto tr1493; +st672: if ( ++p == pe ) - goto _test_eof660; -case 660: + goto _test_eof672; +case 672: switch( (*p) ) { - case 77: goto st661; - case 109: goto st661; + case 77: goto st673; + case 109: goto st673; } - goto tr1472; -st661: + goto tr1493; +st673: if ( ++p == pe ) - goto _test_eof661; -case 661: + goto _test_eof673; +case 673: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58415,103 +59296,103 @@ case 661: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1849; - case 32: goto tr1849; - case 40: goto tr1850; - case 41: goto tr1851; - case 3082: goto tr1852; - case 3131: goto tr1853; - case 3338: goto tr1854; - case 3387: goto tr1854; - case 3594: goto tr1855; - case 3643: goto tr1856; - } - goto tr1472; -st662: + case 9: goto tr1870; + case 32: goto tr1870; + case 40: goto tr1871; + case 41: goto tr1872; + case 3082: goto tr1873; + case 3131: goto tr1874; + case 3338: goto tr1875; + case 3387: goto tr1875; + case 3594: goto tr1876; + case 3643: goto tr1877; + } + goto tr1493; +st674: if ( ++p == pe ) - goto _test_eof662; -case 662: + goto _test_eof674; +case 674: switch( (*p) ) { - case 80: goto st663; - case 112: goto st663; + case 80: goto st675; + case 112: goto st675; } - goto tr1472; -st663: + goto tr1493; +st675: if ( ++p == pe ) - goto _test_eof663; -case 663: + goto _test_eof675; +case 675: switch( (*p) ) { - case 69: goto st664; - case 101: goto st664; + case 69: goto st676; + case 101: goto st676; } - goto tr1472; -st664: + goto tr1493; +st676: if ( ++p == pe ) - goto _test_eof664; -case 664: + goto _test_eof676; +case 676: switch( (*p) ) { - case 78: goto st665; - case 110: goto st665; + case 78: goto st677; + case 110: goto st677; } - goto tr1472; -st665: + goto tr1493; +st677: if ( ++p == pe ) - goto _test_eof665; -case 665: + goto _test_eof677; +case 677: switch( (*p) ) { - case 80: goto st666; - case 112: goto st666; + case 80: goto st678; + case 112: goto st678; } - goto tr1472; -st666: + goto tr1493; +st678: if ( ++p == pe ) - goto _test_eof666; -case 666: + goto _test_eof678; +case 678: switch( (*p) ) { - case 71: goto st667; - case 103: goto st667; + case 71: goto st679; + case 103: goto st679; } - goto tr1472; -st667: + goto tr1493; +st679: if ( ++p == pe ) - goto _test_eof667; -case 667: + goto _test_eof679; +case 679: switch( (*p) ) { - case 80: goto st668; - case 112: goto st668; + case 80: goto st680; + case 112: goto st680; } - goto tr1472; -st668: + goto tr1493; +st680: if ( ++p == pe ) - goto _test_eof668; -case 668: + goto _test_eof680; +case 680: switch( (*p) ) { - case 75: goto st669; - case 107: goto st669; + case 75: goto st681; + case 107: goto st681; } - goto tr1472; -st669: + goto tr1493; +st681: if ( ++p == pe ) - goto _test_eof669; -case 669: + goto _test_eof681; +case 681: switch( (*p) ) { - case 69: goto st670; - case 101: goto st670; + case 69: goto st682; + case 101: goto st682; } - goto tr1472; -st670: + goto tr1493; +st682: if ( ++p == pe ) - goto _test_eof670; -case 670: + goto _test_eof682; +case 682: switch( (*p) ) { - case 89: goto st671; - case 121: goto st671; + case 89: goto st683; + case 121: goto st683; } - goto tr1472; -st671: + goto tr1493; +st683: if ( ++p == pe ) - goto _test_eof671; -case 671: + goto _test_eof683; +case 683: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58529,40 +59410,40 @@ case 671: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1866; - case 32: goto tr1866; - case 40: goto tr1867; - case 41: goto tr1868; - case 3082: goto tr1869; - case 3131: goto tr1870; - case 3338: goto tr1871; - case 3387: goto tr1871; - case 3594: goto tr1872; - case 3643: goto tr1873; - } - goto tr1472; -st672: + case 9: goto tr1887; + case 32: goto tr1887; + case 40: goto tr1888; + case 41: goto tr1889; + case 3082: goto tr1890; + case 3131: goto tr1891; + case 3338: goto tr1892; + case 3387: goto tr1892; + case 3594: goto tr1893; + case 3643: goto tr1894; + } + goto tr1493; +st684: if ( ++p == pe ) - goto _test_eof672; -case 672: + goto _test_eof684; +case 684: switch( (*p) ) { - case 84: goto st673; - case 116: goto st673; + case 84: goto st685; + case 116: goto st685; } - goto tr1472; -st673: + goto tr1493; +st685: if ( ++p == pe ) - goto _test_eof673; -case 673: + goto _test_eof685; +case 685: switch( (*p) ) { - case 82: goto st674; - case 114: goto st674; + case 82: goto st686; + case 114: goto st686; } - goto tr1472; -st674: + goto tr1493; +st686: if ( ++p == pe ) - goto _test_eof674; -case 674: + goto _test_eof686; +case 686: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58580,35 +59461,82 @@ case 674: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1876; - case 32: goto tr1876; - case 40: goto tr1877; - case 41: goto tr1878; - case 3082: goto tr1879; - case 3131: goto tr1880; - case 3338: goto tr1881; - case 3387: goto tr1881; - case 3594: goto tr1882; - case 3643: goto tr1883; - } - goto tr1472; -st675: + case 9: goto tr1897; + case 32: goto tr1897; + case 40: goto tr1898; + case 41: goto tr1899; + case 3082: goto tr1900; + case 3131: goto tr1901; + case 3338: goto tr1902; + case 3387: goto tr1902; + case 3594: goto tr1903; + case 3643: goto tr1904; + } + goto tr1493; +st687: if ( ++p == pe ) - goto _test_eof675; -case 675: + goto _test_eof687; +case 687: switch( (*p) ) { - case 80: goto st676; - case 82: goto st677; - case 84: goto st681; - case 112: goto st676; - case 114: goto st677; - case 116: goto st681; + case 69: goto st688; + case 80: goto st694; + case 82: goto st695; + case 84: goto st699; + case 101: goto st688; + case 112: goto st694; + case 114: goto st695; + case 116: goto st699; } - goto tr1472; -st676: + goto tr1493; +st688: if ( ++p == pe ) - goto _test_eof676; -case 676: + goto _test_eof688; +case 688: + switch( (*p) ) { + case 83: goto st689; + case 115: goto st689; + } + goto tr1493; +st689: + if ( ++p == pe ) + goto _test_eof689; +case 689: + switch( (*p) ) { + case 73: goto st690; + case 105: goto st690; + } + goto tr1493; +st690: + if ( ++p == pe ) + goto _test_eof690; +case 690: + switch( (*p) ) { + case 78: goto st691; + case 110: goto st691; + } + goto tr1493; +st691: + if ( ++p == pe ) + goto _test_eof691; +case 691: + switch( (*p) ) { + case 70: goto st692; + case 102: goto st692; + } + goto tr1493; +st692: + if ( ++p == pe ) + goto _test_eof692; +case 692: + switch( (*p) ) { + case 79: goto st693; + case 111: goto st693; + } + goto tr1493; +st693: + if ( ++p == pe ) + goto _test_eof693; +case 693: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58626,49 +59554,82 @@ case 676: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1887; - case 32: goto tr1887; - case 40: goto tr1888; - case 41: goto tr1889; - case 3082: goto tr1890; - case 3131: goto tr1891; - case 3338: goto tr1892; - case 3387: goto tr1892; - case 3594: goto tr1893; - case 3643: goto tr1894; + case 9: goto tr1914; + case 32: goto tr1914; + case 40: goto tr1915; + case 41: goto tr1916; + case 3082: goto tr1917; + case 3131: goto tr1918; + case 3338: goto tr1919; + case 3387: goto tr1919; + case 3594: goto tr1920; + case 3643: goto tr1921; + } + goto tr1493; +st694: + if ( ++p == pe ) + goto _test_eof694; +case 694: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr1472; -st677: + switch( _widec ) { + case 9: goto tr1922; + case 32: goto tr1922; + case 40: goto tr1923; + case 41: goto tr1924; + case 3082: goto tr1925; + case 3131: goto tr1926; + case 3338: goto tr1927; + case 3387: goto tr1927; + case 3594: goto tr1928; + case 3643: goto tr1929; + } + goto tr1493; +st695: if ( ++p == pe ) - goto _test_eof677; -case 677: + goto _test_eof695; +case 695: switch( (*p) ) { - case 83: goto st678; - case 115: goto st678; + case 83: goto st696; + case 115: goto st696; } - goto tr1472; -st678: + goto tr1493; +st696: if ( ++p == pe ) - goto _test_eof678; -case 678: + goto _test_eof696; +case 696: switch( (*p) ) { - case 73: goto st679; - case 105: goto st679; + case 73: goto st697; + case 105: goto st697; } - goto tr1472; -st679: + goto tr1493; +st697: if ( ++p == pe ) - goto _test_eof679; -case 679: + goto _test_eof697; +case 697: switch( (*p) ) { - case 71: goto st680; - case 103: goto st680; + case 71: goto st698; + case 103: goto st698; } - goto tr1472; -st680: + goto tr1493; +st698: if ( ++p == pe ) - goto _test_eof680; -case 680: + goto _test_eof698; +case 698: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58686,22 +59647,22 @@ case 680: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1898; - case 32: goto tr1898; - case 40: goto tr1899; - case 41: goto tr1900; - case 3082: goto tr1901; - case 3131: goto tr1902; - case 3338: goto tr1903; - case 3387: goto tr1903; - case 3594: goto tr1904; - case 3643: goto tr1905; - } - goto tr1472; -st681: + case 9: goto tr1933; + case 32: goto tr1933; + case 40: goto tr1934; + case 41: goto tr1935; + case 3082: goto tr1936; + case 3131: goto tr1937; + case 3338: goto tr1938; + case 3387: goto tr1938; + case 3594: goto tr1939; + case 3643: goto tr1940; + } + goto tr1493; +st699: if ( ++p == pe ) - goto _test_eof681; -case 681: + goto _test_eof699; +case 699: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58719,77 +59680,77 @@ case 681: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1906; - case 32: goto tr1906; - case 40: goto tr1907; - case 41: goto tr1908; - case 3082: goto tr1909; - case 3131: goto tr1910; - case 3338: goto tr1911; - case 3387: goto tr1911; - case 3594: goto tr1912; - case 3643: goto tr1913; - } - goto tr1472; -st682: + case 9: goto tr1941; + case 32: goto tr1941; + case 40: goto tr1942; + case 41: goto tr1943; + case 3082: goto tr1944; + case 3131: goto tr1945; + case 3338: goto tr1946; + case 3387: goto tr1946; + case 3594: goto tr1947; + case 3643: goto tr1948; + } + goto tr1493; +st700: if ( ++p == pe ) - goto _test_eof682; -case 682: + goto _test_eof700; +case 700: switch( (*p) ) { - case 77: goto st683; - case 79: goto st688; - case 80: goto st690; - case 82: goto st692; - case 83: goto st694; - case 86: goto st698; - case 109: goto st683; - case 111: goto st688; - case 112: goto st690; - case 114: goto st692; - case 115: goto st694; - case 118: goto st698; - } - goto tr1472; -st683: + case 77: goto st701; + case 79: goto st706; + case 80: goto st708; + case 82: goto st710; + case 83: goto st712; + case 86: goto st716; + case 109: goto st701; + case 111: goto st706; + case 112: goto st708; + case 114: goto st710; + case 115: goto st712; + case 118: goto st716; + } + goto tr1493; +st701: if ( ++p == pe ) - goto _test_eof683; -case 683: + goto _test_eof701; +case 701: switch( (*p) ) { - case 73: goto st684; - case 105: goto st684; + case 73: goto st702; + case 105: goto st702; } - goto tr1472; -st684: + goto tr1493; +st702: if ( ++p == pe ) - goto _test_eof684; -case 684: + goto _test_eof702; +case 702: switch( (*p) ) { - case 77: goto st685; - case 109: goto st685; + case 77: goto st703; + case 109: goto st703; } - goto tr1472; -st685: + goto tr1493; +st703: if ( ++p == pe ) - goto _test_eof685; -case 685: + goto _test_eof703; +case 703: switch( (*p) ) { - case 69: goto st686; - case 101: goto st686; + case 69: goto st704; + case 101: goto st704; } - goto tr1472; -st686: + goto tr1493; +st704: if ( ++p == pe ) - goto _test_eof686; -case 686: + goto _test_eof704; +case 704: switch( (*p) ) { - case 65: goto st687; - case 97: goto st687; + case 65: goto st705; + case 97: goto st705; } - goto tr1472; -st687: + goto tr1493; +st705: if ( ++p == pe ) - goto _test_eof687; -case 687: + goto _test_eof705; +case 705: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58807,31 +59768,31 @@ case 687: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1924; - case 32: goto tr1924; - case 40: goto tr1925; - case 41: goto tr1926; - case 3082: goto tr1927; - case 3131: goto tr1928; - case 3338: goto tr1929; - case 3387: goto tr1929; - case 3594: goto tr1930; - case 3643: goto tr1931; - } - goto tr1472; -st688: + case 9: goto tr1959; + case 32: goto tr1959; + case 40: goto tr1960; + case 41: goto tr1961; + case 3082: goto tr1962; + case 3131: goto tr1963; + case 3338: goto tr1964; + case 3387: goto tr1964; + case 3594: goto tr1965; + case 3643: goto tr1966; + } + goto tr1493; +st706: if ( ++p == pe ) - goto _test_eof688; -case 688: + goto _test_eof706; +case 706: switch( (*p) ) { - case 65: goto st689; - case 97: goto st689; + case 65: goto st707; + case 97: goto st707; } - goto tr1472; -st689: + goto tr1493; +st707: if ( ++p == pe ) - goto _test_eof689; -case 689: + goto _test_eof707; +case 707: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58849,31 +59810,31 @@ case 689: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1933; - case 32: goto tr1933; - case 40: goto tr1934; - case 41: goto tr1935; - case 3082: goto tr1936; - case 3131: goto tr1937; - case 3338: goto tr1938; - case 3387: goto tr1938; - case 3594: goto tr1939; - case 3643: goto tr1940; - } - goto tr1472; -st690: + case 9: goto tr1968; + case 32: goto tr1968; + case 40: goto tr1969; + case 41: goto tr1970; + case 3082: goto tr1971; + case 3131: goto tr1972; + case 3338: goto tr1973; + case 3387: goto tr1973; + case 3594: goto tr1974; + case 3643: goto tr1975; + } + goto tr1493; +st708: if ( ++p == pe ) - goto _test_eof690; -case 690: + goto _test_eof708; +case 708: switch( (*p) ) { - case 70: goto st691; - case 102: goto st691; + case 70: goto st709; + case 102: goto st709; } - goto tr1472; -st691: + goto tr1493; +st709: if ( ++p == pe ) - goto _test_eof691; -case 691: + goto _test_eof709; +case 709: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58891,31 +59852,31 @@ case 691: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1942; - case 32: goto tr1942; - case 40: goto tr1943; - case 41: goto tr1944; - case 3082: goto tr1945; - case 3131: goto tr1946; - case 3338: goto tr1947; - case 3387: goto tr1947; - case 3594: goto tr1948; - case 3643: goto tr1949; - } - goto tr1472; -st692: + case 9: goto tr1977; + case 32: goto tr1977; + case 40: goto tr1978; + case 41: goto tr1979; + case 3082: goto tr1980; + case 3131: goto tr1981; + case 3338: goto tr1982; + case 3387: goto tr1982; + case 3594: goto tr1983; + case 3643: goto tr1984; + } + goto tr1493; +st710: if ( ++p == pe ) - goto _test_eof692; -case 692: + goto _test_eof710; +case 710: switch( (*p) ) { - case 86: goto st693; - case 118: goto st693; + case 86: goto st711; + case 118: goto st711; } - goto tr1472; -st693: + goto tr1493; +st711: if ( ++p == pe ) - goto _test_eof693; -case 693: + goto _test_eof711; +case 711: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58933,49 +59894,49 @@ case 693: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1951; - case 32: goto tr1951; - case 40: goto tr1952; - case 41: goto tr1953; - case 3082: goto tr1954; - case 3131: goto tr1955; - case 3338: goto tr1956; - case 3387: goto tr1956; - case 3594: goto tr1957; - case 3643: goto tr1958; - } - goto tr1472; -st694: + case 9: goto tr1986; + case 32: goto tr1986; + case 40: goto tr1987; + case 41: goto tr1988; + case 3082: goto tr1989; + case 3131: goto tr1990; + case 3338: goto tr1991; + case 3387: goto tr1991; + case 3594: goto tr1992; + case 3643: goto tr1993; + } + goto tr1493; +st712: if ( ++p == pe ) - goto _test_eof694; -case 694: + goto _test_eof712; +case 712: switch( (*p) ) { - case 72: goto st695; - case 104: goto st695; + case 72: goto st713; + case 104: goto st713; } - goto tr1472; -st695: + goto tr1493; +st713: if ( ++p == pe ) - goto _test_eof695; -case 695: + goto _test_eof713; +case 713: switch( (*p) ) { - case 70: goto st696; - case 102: goto st696; + case 70: goto st714; + case 102: goto st714; } - goto tr1472; -st696: + goto tr1493; +st714: if ( ++p == pe ) - goto _test_eof696; -case 696: + goto _test_eof714; +case 714: switch( (*p) ) { - case 80: goto st697; - case 112: goto st697; + case 80: goto st715; + case 112: goto st715; } - goto tr1472; -st697: + goto tr1493; +st715: if ( ++p == pe ) - goto _test_eof697; -case 697: + goto _test_eof715; +case 715: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58993,40 +59954,40 @@ case 697: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1962; - case 32: goto tr1962; - case 40: goto tr1963; - case 41: goto tr1964; - case 3082: goto tr1965; - case 3131: goto tr1966; - case 3338: goto tr1967; - case 3387: goto tr1967; - case 3594: goto tr1968; - case 3643: goto tr1969; - } - goto tr1472; -st698: + case 9: goto tr1997; + case 32: goto tr1997; + case 40: goto tr1998; + case 41: goto tr1999; + case 3082: goto tr2000; + case 3131: goto tr2001; + case 3338: goto tr2002; + case 3387: goto tr2002; + case 3594: goto tr2003; + case 3643: goto tr2004; + } + goto tr1493; +st716: if ( ++p == pe ) - goto _test_eof698; -case 698: + goto _test_eof716; +case 716: switch( (*p) ) { - case 67: goto st699; - case 99: goto st699; + case 67: goto st717; + case 99: goto st717; } - goto tr1472; -st699: + goto tr1493; +st717: if ( ++p == pe ) - goto _test_eof699; -case 699: + goto _test_eof717; +case 717: switch( (*p) ) { - case 66: goto st700; - case 98: goto st700; + case 66: goto st718; + case 98: goto st718; } - goto tr1472; -st700: + goto tr1493; +st718: if ( ++p == pe ) - goto _test_eof700; -case 700: + goto _test_eof718; +case 718: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59044,53 +60005,53 @@ case 700: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1972; - case 32: goto tr1972; - case 40: goto tr1973; - case 41: goto tr1974; - case 3082: goto tr1975; - case 3131: goto tr1976; - case 3338: goto tr1977; - case 3387: goto tr1977; - case 3594: goto tr1978; - case 3643: goto tr1979; - } - goto tr1472; -st701: + case 9: goto tr2007; + case 32: goto tr2007; + case 40: goto tr2008; + case 41: goto tr2009; + case 3082: goto tr2010; + case 3131: goto tr2011; + case 3338: goto tr2012; + case 3387: goto tr2012; + case 3594: goto tr2013; + case 3643: goto tr2014; + } + goto tr1493; +st719: if ( ++p == pe ) - goto _test_eof701; -case 701: + goto _test_eof719; +case 719: switch( (*p) ) { - case 76: goto st702; - case 88: goto st705; - case 89: goto st707; - case 108: goto st702; - case 120: goto st705; - case 121: goto st707; + case 76: goto st720; + case 88: goto st723; + case 89: goto st725; + case 108: goto st720; + case 120: goto st723; + case 121: goto st725; } - goto tr1472; -st702: + goto tr1493; +st720: if ( ++p == pe ) - goto _test_eof702; -case 702: + goto _test_eof720; +case 720: switch( (*p) ) { - case 83: goto st703; - case 115: goto st703; + case 83: goto st721; + case 115: goto st721; } - goto tr1472; -st703: + goto tr1493; +st721: if ( ++p == pe ) - goto _test_eof703; -case 703: + goto _test_eof721; +case 721: switch( (*p) ) { - case 65: goto st704; - case 97: goto st704; + case 65: goto st722; + case 97: goto st722; } - goto tr1472; -st704: + goto tr1493; +st722: if ( ++p == pe ) - goto _test_eof704; -case 704: + goto _test_eof722; +case 722: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59108,31 +60069,31 @@ case 704: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1985; - case 32: goto tr1985; - case 40: goto tr1986; - case 41: goto tr1987; - case 3082: goto tr1988; - case 3131: goto tr1989; - case 3338: goto tr1990; - case 3387: goto tr1990; - case 3594: goto tr1991; - case 3643: goto tr1992; - } - goto tr1472; -st705: + case 9: goto tr2020; + case 32: goto tr2020; + case 40: goto tr2021; + case 41: goto tr2022; + case 3082: goto tr2023; + case 3131: goto tr2024; + case 3338: goto tr2025; + case 3387: goto tr2025; + case 3594: goto tr2026; + case 3643: goto tr2027; + } + goto tr1493; +st723: if ( ++p == pe ) - goto _test_eof705; -case 705: + goto _test_eof723; +case 723: switch( (*p) ) { - case 84: goto st706; - case 116: goto st706; + case 84: goto st724; + case 116: goto st724; } - goto tr1472; -st706: + goto tr1493; +st724: if ( ++p == pe ) - goto _test_eof706; -case 706: + goto _test_eof724; +case 724: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59150,44 +60111,44 @@ case 706: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1994; - case 32: goto tr1994; - case 40: goto tr1995; - case 41: goto tr1996; - case 3082: goto tr1997; - case 3131: goto tr1998; - case 3338: goto tr1999; - case 3387: goto tr1999; - case 3594: goto tr2000; - case 3643: goto tr2001; - } - goto tr1472; -st707: + case 9: goto tr2029; + case 32: goto tr2029; + case 40: goto tr2030; + case 41: goto tr2031; + case 3082: goto tr2032; + case 3131: goto tr2033; + case 3338: goto tr2034; + case 3387: goto tr2034; + case 3594: goto tr2035; + case 3643: goto tr2036; + } + goto tr1493; +st725: if ( ++p == pe ) - goto _test_eof707; -case 707: + goto _test_eof725; +case 725: switch( (*p) ) { - case 80: goto st708; - case 112: goto st708; + case 80: goto st726; + case 112: goto st726; } - goto tr1472; -st708: + goto tr1493; +st726: if ( ++p == pe ) - goto _test_eof708; -case 708: + goto _test_eof726; +case 726: switch( (*p) ) { - case 69: goto st709; - case 101: goto st709; + case 69: goto st727; + case 101: goto st727; } - goto tr1472; -st709: + goto tr1493; +st727: if ( ++p == pe ) - goto _test_eof709; -case 709: + goto _test_eof727; +case 727: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2004; - goto tr1472; -tr2004: + goto tr2039; + goto tr1493; +tr2039: { s->number64 = 0; } @@ -59202,11 +60163,11 @@ tr2004: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st710; -tr2008: + goto st728; +tr2043: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -59218,14 +60179,14 @@ tr2008: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st710; -st710: + goto st728; +st728: if ( ++p == pe ) - goto _test_eof710; -case 710: + goto _test_eof728; +case 728: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59243,42 +60204,42 @@ case 710: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2005; - case 32: goto tr2005; - case 40: goto tr2006; - case 41: goto tr2007; - case 3082: goto tr2009; - case 3131: goto tr2010; - case 3338: goto tr2011; - case 3387: goto tr2011; - case 3594: goto tr2012; - case 3643: goto tr2013; + case 9: goto tr2040; + case 32: goto tr2040; + case 40: goto tr2041; + case 41: goto tr2042; + case 3082: goto tr2044; + case 3131: goto tr2045; + case 3338: goto tr2046; + case 3387: goto tr2046; + case 3594: goto tr2047; + case 3643: goto tr2048; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2008; - goto tr1472; -st711: + goto tr2043; + goto tr1493; +st729: if ( ++p == pe ) - goto _test_eof711; -case 711: + goto _test_eof729; +case 729: switch( (*p) ) { - case 82: goto st712; - case 114: goto st712; + case 82: goto st730; + case 114: goto st730; } - goto tr1472; -st712: + goto tr1493; +st730: if ( ++p == pe ) - goto _test_eof712; -case 712: + goto _test_eof730; +case 730: switch( (*p) ) { - case 73: goto st713; - case 105: goto st713; + case 73: goto st731; + case 105: goto st731; } - goto tr1472; -st713: + goto tr1493; +st731: if ( ++p == pe ) - goto _test_eof713; -case 713: + goto _test_eof731; +case 731: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59296,67 +60257,67 @@ case 713: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2016; - case 32: goto tr2016; - case 40: goto tr2017; - case 41: goto tr2018; - case 3082: goto tr2019; - case 3131: goto tr2020; - case 3338: goto tr2021; - case 3387: goto tr2021; - case 3594: goto tr2022; - case 3643: goto tr2023; - } - goto tr1472; -st714: + case 9: goto tr2051; + case 32: goto tr2051; + case 40: goto tr2052; + case 41: goto tr2053; + case 3082: goto tr2054; + case 3131: goto tr2055; + case 3338: goto tr2056; + case 3387: goto tr2056; + case 3594: goto tr2057; + case 3643: goto tr2058; + } + goto tr1493; +st732: if ( ++p == pe ) - goto _test_eof714; -case 714: + goto _test_eof732; +case 732: switch( (*p) ) { - case 65: goto st715; - case 97: goto st715; + case 65: goto st733; + case 97: goto st733; } - goto tr1472; -st715: + goto tr1493; +st733: if ( ++p == pe ) - goto _test_eof715; -case 715: + goto _test_eof733; +case 733: switch( (*p) ) { - case 76: goto st716; - case 108: goto st716; + case 76: goto st734; + case 108: goto st734; } - goto tr1472; -st716: + goto tr1493; +st734: if ( ++p == pe ) - goto _test_eof716; -case 716: + goto _test_eof734; +case 734: switch( (*p) ) { - case 76: goto st717; - case 108: goto st717; + case 76: goto st735; + case 108: goto st735; } - goto tr1472; -st717: + goto tr1493; +st735: if ( ++p == pe ) - goto _test_eof717; -case 717: + goto _test_eof735; +case 735: switch( (*p) ) { - case 69: goto st718; - case 101: goto st718; + case 69: goto st736; + case 101: goto st736; } - goto tr1472; -st718: + goto tr1493; +st736: if ( ++p == pe ) - goto _test_eof718; -case 718: + goto _test_eof736; +case 736: switch( (*p) ) { - case 84: goto st719; - case 116: goto st719; + case 84: goto st737; + case 116: goto st737; } - goto tr1472; -st719: + goto tr1493; +st737: if ( ++p == pe ) - goto _test_eof719; -case 719: + goto _test_eof737; +case 737: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59374,67 +60335,67 @@ case 719: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2029; - case 32: goto tr2029; - case 40: goto tr2030; - case 41: goto tr2031; - case 3082: goto tr2032; - case 3131: goto tr2033; - case 3338: goto tr2034; - case 3387: goto tr2034; - case 3594: goto tr2035; - case 3643: goto tr2036; - } - goto tr1472; -st720: + case 9: goto tr2064; + case 32: goto tr2064; + case 40: goto tr2065; + case 41: goto tr2066; + case 3082: goto tr2067; + case 3131: goto tr2068; + case 3338: goto tr2069; + case 3387: goto tr2069; + case 3594: goto tr2070; + case 3643: goto tr2071; + } + goto tr1493; +st738: if ( ++p == pe ) - goto _test_eof720; -case 720: + goto _test_eof738; +case 738: switch( (*p) ) { - case 79: goto st721; - case 111: goto st721; + case 79: goto st739; + case 111: goto st739; } - goto tr1472; -st721: + goto tr1493; +st739: if ( ++p == pe ) - goto _test_eof721; -case 721: + goto _test_eof739; +case 739: switch( (*p) ) { - case 78: goto st722; - case 110: goto st722; + case 78: goto st740; + case 110: goto st740; } - goto tr1472; -st722: + goto tr1493; +st740: if ( ++p == pe ) - goto _test_eof722; -case 722: + goto _test_eof740; +case 740: switch( (*p) ) { - case 69: goto st723; - case 101: goto st723; + case 69: goto st741; + case 101: goto st741; } - goto tr1472; -st723: + goto tr1493; +st741: if ( ++p == pe ) - goto _test_eof723; -case 723: + goto _test_eof741; +case 741: switch( (*p) ) { - case 77: goto st724; - case 109: goto st724; + case 77: goto st742; + case 109: goto st742; } - goto tr1472; -st724: + goto tr1493; +st742: if ( ++p == pe ) - goto _test_eof724; -case 724: + goto _test_eof742; +case 742: switch( (*p) ) { - case 68: goto st725; - case 100: goto st725; + case 68: goto st743; + case 100: goto st743; } - goto tr1472; -st725: + goto tr1493; +st743: if ( ++p == pe ) - goto _test_eof725; -case 725: + goto _test_eof743; +case 743: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59452,49 +60413,49 @@ case 725: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2042; - case 32: goto tr2042; - case 40: goto tr2043; - case 41: goto tr2044; - case 3082: goto tr2045; - case 3131: goto tr2046; - case 3338: goto tr2047; - case 3387: goto tr2047; - case 3594: goto tr2048; - case 3643: goto tr2049; - } - goto tr1472; -st726: + case 9: goto tr2077; + case 32: goto tr2077; + case 40: goto tr2078; + case 41: goto tr2079; + case 3082: goto tr2080; + case 3131: goto tr2081; + case 3338: goto tr2082; + case 3387: goto tr2082; + case 3594: goto tr2083; + case 3643: goto tr2084; + } + goto tr1493; +st744: if ( ++p == pe ) - goto _test_eof726; -case 726: + goto _test_eof744; +case 744: switch( (*p) ) { - case 83: goto st727; - case 115: goto st727; + case 83: goto st745; + case 115: goto st745; } - goto tr1472; -st727: + goto tr1493; +st745: if ( ++p == pe ) - goto _test_eof727; -case 727: + goto _test_eof745; +case 745: switch( (*p) ) { - case 68: goto st728; - case 100: goto st728; + case 68: goto st746; + case 100: goto st746; } - goto tr1472; -st728: + goto tr1493; +st746: if ( ++p == pe ) - goto _test_eof728; -case 728: + goto _test_eof746; +case 746: switch( (*p) ) { - case 66: goto st729; - case 98: goto st729; + case 66: goto st747; + case 98: goto st747; } - goto tr1472; -st729: + goto tr1493; +st747: if ( ++p == pe ) - goto _test_eof729; -case 729: + goto _test_eof747; +case 747: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59512,31 +60473,31 @@ case 729: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2053; - case 32: goto tr2053; - case 40: goto tr2054; - case 41: goto tr2055; - case 3082: goto tr2056; - case 3131: goto tr2057; - case 3338: goto tr2058; - case 3387: goto tr2058; - case 3594: goto tr2059; - case 3643: goto tr2060; - } - goto tr1472; -st730: + case 9: goto tr2088; + case 32: goto tr2088; + case 40: goto tr2089; + case 41: goto tr2090; + case 3082: goto tr2091; + case 3131: goto tr2092; + case 3338: goto tr2093; + case 3387: goto tr2093; + case 3594: goto tr2094; + case 3643: goto tr2095; + } + goto tr1493; +st748: if ( ++p == pe ) - goto _test_eof730; -case 730: + goto _test_eof748; +case 748: switch( (*p) ) { - case 76: goto st731; - case 108: goto st731; + case 76: goto st749; + case 108: goto st749; } - goto tr1472; -st731: + goto tr1493; +st749: if ( ++p == pe ) - goto _test_eof731; -case 731: + goto _test_eof749; +case 749: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59554,22 +60515,22 @@ case 731: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2062; - case 32: goto tr2062; - case 40: goto tr2063; - case 41: goto tr2064; - case 3082: goto tr2065; - case 3131: goto tr2066; - case 3338: goto tr2067; - case 3387: goto tr2067; - case 3594: goto tr2068; - case 3643: goto tr2069; - } - goto tr1472; -st732: + case 9: goto tr2097; + case 32: goto tr2097; + case 40: goto tr2098; + case 41: goto tr2099; + case 3082: goto tr2100; + case 3131: goto tr2101; + case 3338: goto tr2102; + case 3387: goto tr2102; + case 3594: goto tr2103; + case 3643: goto tr2104; + } + goto tr1493; +st750: if ( ++p == pe ) - goto _test_eof732; -case 732: + goto _test_eof750; +case 750: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59583,38 +60544,38 @@ case 732: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st733; - case 32: goto st733; - case 40: goto tr2072; - case 41: goto tr2073; - case 2058: goto tr2074; - case 2107: goto tr2075; + case 9: goto st751; + case 32: goto st751; + case 40: goto tr2107; + case 41: goto tr2108; + case 2058: goto tr2109; + case 2107: goto tr2110; } - goto tr2070; -tr2072: + goto tr2105; +tr2107: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st733; -tr2073: + goto st751; +tr2108: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st733; -tr2074: + goto st751; +tr2109: { s->line_counter++; } - goto st733; -tr2105: + goto st751; +tr2140: { s->buffer[s->buffer_length++] = 0; @@ -59624,18 +60585,18 @@ tr2105: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 733; goto _out;} + {p++; cs = 751; goto _out;} } } } { s->line_counter++; } - goto st733; -st733: + goto st751; +st751: if ( ++p == pe ) - goto _test_eof733; -case 733: + goto _test_eof751; +case 751: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59649,17 +60610,17 @@ case 733: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st733; - case 32: goto st733; - case 40: goto tr2072; - case 41: goto tr2073; - case 2058: goto tr2074; - case 2107: goto tr2075; + case 9: goto st751; + case 32: goto st751; + case 40: goto tr2107; + case 41: goto tr2108; + case 2058: goto tr2109; + case 2107: goto tr2110; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2077; - goto tr2076; -tr2077: + goto tr2112; + goto tr2111; +tr2112: { s->number64 = 0; } @@ -59674,11 +60635,11 @@ tr2077: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st734; -tr2081: + goto st752; +tr2116: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -59690,14 +60651,14 @@ tr2081: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st734; -st734: + goto st752; +st752: if ( ++p == pe ) - goto _test_eof734; -case 734: + goto _test_eof752; +case 752: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59711,40 +60672,40 @@ case 734: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2078; - case 32: goto tr2078; - case 40: goto tr2079; - case 41: goto tr2080; - case 2058: goto tr2082; - case 2107: goto tr2083; + case 9: goto tr2113; + case 32: goto tr2113; + case 40: goto tr2114; + case 41: goto tr2115; + case 2058: goto tr2117; + case 2107: goto tr2118; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2081; - goto tr2076; -tr2086: + goto tr2116; + goto tr2111; +tr2121: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st735; -tr2087: + goto st753; +tr2122: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st735; -tr2089: + goto st753; +tr2124: { s->line_counter++; } - goto st735; -tr2103: + goto st753; +tr2138: { s->buffer[s->buffer_length++] = 0; @@ -59754,75 +60715,75 @@ tr2103: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 735; goto _out;} + {p++; cs = 753; goto _out;} } } } { s->line_counter++; } - goto st735; -tr2078: + goto st753; +tr2113: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st735; -tr2079: + goto st753; +tr2114: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st735; -tr2080: + goto st753; +tr2115: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st735; -tr2082: + goto st753; +tr2117: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st735; -st735: + goto st753; +st753: if ( ++p == pe ) - goto _test_eof735; -case 735: + goto _test_eof753; +case 753: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59836,69 +60797,69 @@ case 735: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st735; - case 32: goto st735; - case 40: goto tr2086; - case 41: goto tr2087; - case 2058: goto tr2089; - case 2107: goto tr2090; + case 9: goto st753; + case 32: goto st753; + case 40: goto tr2121; + case 41: goto tr2122; + case 2058: goto tr2124; + case 2107: goto tr2125; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2088; + goto tr2123; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2088; + goto tr2123; } else - goto tr2088; - goto tr2084; -tr2088: + goto tr2123; + goto tr2119; +tr2123: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st736; -st736: + goto st754; +st754: if ( ++p == pe ) - goto _test_eof736; -case 736: + goto _test_eof754; +case 754: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2091; + goto tr2126; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2091; + goto tr2126; } else - goto tr2091; - goto tr2084; -tr2093: + goto tr2126; + goto tr2119; +tr2128: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st737; -tr2094: + goto st755; +tr2129: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st737; -tr2095: + goto st755; +tr2130: { s->line_counter++; } - goto st737; -tr2101: + goto st755; +tr2136: { s->buffer[s->buffer_length++] = 0; @@ -59908,24 +60869,24 @@ tr2101: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 737; goto _out;} + {p++; cs = 755; goto _out;} } } } { s->line_counter++; } - goto st737; -tr2091: + goto st755; +tr2126: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st737; -st737: + goto st755; +st755: if ( ++p == pe ) - goto _test_eof737; -case 737: + goto _test_eof755; +case 755: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59943,42 +60904,42 @@ case 737: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st737; - case 32: goto st737; - case 40: goto tr2093; - case 41: goto tr2094; - case 3082: goto tr2095; - case 3131: goto tr2096; - case 3338: goto tr2097; - case 3387: goto tr2097; - case 3594: goto tr2098; - case 3643: goto tr2099; + case 9: goto st755; + case 32: goto st755; + case 40: goto tr2128; + case 41: goto tr2129; + case 3082: goto tr2130; + case 3131: goto tr2131; + case 3338: goto tr2132; + case 3387: goto tr2132; + case 3594: goto tr2133; + case 3643: goto tr2134; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2088; + goto tr2123; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2088; + goto tr2123; } else - goto tr2088; - goto tr2084; -tr2096: + goto tr2123; + goto tr2119; +tr2131: { s->buffer_length = 0; } - goto st738; -tr2100: + goto st756; +tr2135: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st738; -st738: + goto st756; +st756: if ( ++p == pe ) - goto _test_eof738; -case 738: + goto _test_eof756; +case 756: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -59998,44 +60959,44 @@ case 738: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2101; + goto tr2136; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2100; - goto tr2084; -tr2097: + goto tr2135; + goto tr2119; +tr2132: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1500; -st1500: + goto st1518; +st1518: if ( ++p == pe ) - goto _test_eof1500; -case 1500: + goto _test_eof1518; +case 1518: goto st0; -tr2098: +tr2133: { s->line_counter++; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1501; -st1501: + goto st1519; +st1519: if ( ++p == pe ) - goto _test_eof1501; -case 1501: + goto _test_eof1519; +case 1519: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60053,44 +61014,44 @@ case 1501: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st737; - case 32: goto st737; - case 40: goto tr2093; - case 41: goto tr2094; - case 3082: goto tr2095; - case 3131: goto tr2096; - case 3338: goto tr2097; - case 3387: goto tr2097; - case 3594: goto tr2098; - case 3643: goto tr2099; + case 9: goto st755; + case 32: goto st755; + case 40: goto tr2128; + case 41: goto tr2129; + case 3082: goto tr2130; + case 3131: goto tr2131; + case 3338: goto tr2132; + case 3387: goto tr2132; + case 3594: goto tr2133; + case 3643: goto tr2134; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2088; + goto tr2123; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2088; + goto tr2123; } else - goto tr2088; - goto tr2084; -tr2099: + goto tr2123; + goto tr2119; +tr2134: { s->buffer_length = 0; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1502; -st1502: + goto st1520; +st1520: if ( ++p == pe ) - goto _test_eof1502; -case 1502: + goto _test_eof1520; +case 1520: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -60110,39 +61071,39 @@ case 1502: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2101; + goto tr2136; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2100; - goto tr2084; -tr2090: + goto tr2135; + goto tr2119; +tr2125: { s->buffer_length = 0; } - goto st739; -tr2102: + goto st757; +tr2137: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st739; -tr2083: + goto st757; +tr2118: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st739; -st739: + goto st757; +st757: if ( ++p == pe ) - goto _test_eof739; -case 739: + goto _test_eof757; +case 757: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -60162,26 +61123,26 @@ case 739: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2103; + goto tr2138; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2102; - goto tr2070; -tr2075: + goto tr2137; + goto tr2105; +tr2110: { s->buffer_length = 0; } - goto st740; -tr2104: + goto st758; +tr2139: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st740; -st740: + goto st758; +st758: if ( ++p == pe ) - goto _test_eof740; -case 740: + goto _test_eof758; +case 758: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -60201,14 +61162,14 @@ case 740: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2105; + goto tr2140; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2104; - goto tr2070; -st741: + goto tr2139; + goto tr2105; +st759: if ( ++p == pe ) - goto _test_eof741; -case 741: + goto _test_eof759; +case 759: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60222,38 +61183,38 @@ case 741: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st742; - case 32: goto st742; - case 40: goto tr2107; - case 41: goto tr2108; - case 2058: goto tr2109; - case 2107: goto tr2110; - } - goto tr2070; -tr2107: + case 9: goto st760; + case 32: goto st760; + case 40: goto tr2142; + case 41: goto tr2143; + case 2058: goto tr2144; + case 2107: goto tr2145; + } + goto tr2105; +tr2142: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st742; -tr2108: + goto st760; +tr2143: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st742; -tr2109: + goto st760; +tr2144: { s->line_counter++; } - goto st742; -tr2145: + goto st760; +tr2180: { s->buffer[s->buffer_length++] = 0; @@ -60263,18 +61224,18 @@ tr2145: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 742; goto _out;} + {p++; cs = 760; goto _out;} } } } { s->line_counter++; } - goto st742; -st742: + goto st760; +st760: if ( ++p == pe ) - goto _test_eof742; -case 742: + goto _test_eof760; +case 760: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60288,18 +61249,18 @@ case 742: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st742; - case 32: goto st742; - case 40: goto tr2107; - case 41: goto tr2108; - case 48: goto tr2111; - case 2058: goto tr2109; - case 2107: goto tr2110; + case 9: goto st760; + case 32: goto st760; + case 40: goto tr2142; + case 41: goto tr2143; + case 48: goto tr2146; + case 2058: goto tr2144; + case 2107: goto tr2145; } if ( 49 <= _widec && _widec <= 57 ) - goto tr2112; - goto tr2076; -tr2111: + goto tr2147; + goto tr2111; +tr2146: { s->number64 = 0; } @@ -60314,14 +61275,14 @@ tr2111: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st743; -st743: + goto st761; +st761: if ( ++p == pe ) - goto _test_eof743; -case 743: + goto _test_eof761; +case 761: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60335,19 +61296,19 @@ case 743: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2113; - case 32: goto tr2113; - case 40: goto tr2114; - case 41: goto tr2115; - case 1802: goto tr2117; - case 1851: goto tr2117; - case 2058: goto tr2118; - case 2107: goto tr2119; + case 9: goto tr2148; + case 32: goto tr2148; + case 40: goto tr2149; + case 41: goto tr2150; + case 1802: goto tr2152; + case 1851: goto tr2152; + case 2058: goto tr2153; + case 2107: goto tr2154; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2116; - goto tr2076; -tr2113: + goto tr2151; + goto tr2111; +tr2148: { p--; {cs = stack[--top];goto _again;} } @@ -60356,11 +61317,11 @@ tr2113: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1503; -tr2114: + goto st1521; +tr2149: { p--; {cs = stack[--top];goto _again;} } @@ -60369,18 +61330,18 @@ tr2114: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1503; -tr2115: + goto st1521; +tr2150: { p--; {cs = stack[--top];goto _again;} } @@ -60389,18 +61350,18 @@ tr2115: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1503; -tr2118: + goto st1521; +tr2153: { p--; {cs = stack[--top];goto _again;} } @@ -60409,17 +61370,17 @@ tr2118: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1503; -st1503: + goto st1521; +st1521: if ( ++p == pe ) - goto _test_eof1503; -case 1503: + goto _test_eof1521; +case 1521: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60433,46 +61394,46 @@ case 1503: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st744; - case 32: goto st744; - case 40: goto tr2121; - case 41: goto tr2122; - case 2058: goto tr2124; - case 2107: goto tr2125; + case 9: goto st762; + case 32: goto st762; + case 40: goto tr2156; + case 41: goto tr2157; + case 2058: goto tr2159; + case 2107: goto tr2160; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2123; + goto tr2158; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2123; + goto tr2158; } else - goto tr2123; - goto tr2084; -tr2121: + goto tr2158; + goto tr2119; +tr2156: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st744; -tr2122: + goto st762; +tr2157: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st744; -tr2124: + goto st762; +tr2159: { s->line_counter++; } - goto st744; -tr2138: + goto st762; +tr2173: { s->buffer[s->buffer_length++] = 0; @@ -60482,75 +61443,75 @@ tr2138: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 744; goto _out;} + {p++; cs = 762; goto _out;} } } } { s->line_counter++; } - goto st744; -tr2139: + goto st762; +tr2174: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st744; -tr2140: + goto st762; +tr2175: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st744; -tr2141: + goto st762; +tr2176: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st744; -tr2142: + goto st762; +tr2177: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st744; -st744: + goto st762; +st762: if ( ++p == pe ) - goto _test_eof744; -case 744: + goto _test_eof762; +case 762: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60564,69 +61525,69 @@ case 744: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st744; - case 32: goto st744; - case 40: goto tr2121; - case 41: goto tr2122; - case 2058: goto tr2124; - case 2107: goto tr2125; + case 9: goto st762; + case 32: goto st762; + case 40: goto tr2156; + case 41: goto tr2157; + case 2058: goto tr2159; + case 2107: goto tr2160; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2123; + goto tr2158; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2123; + goto tr2158; } else - goto tr2123; - goto tr2084; -tr2123: + goto tr2158; + goto tr2119; +tr2158: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st745; -st745: + goto st763; +st763: if ( ++p == pe ) - goto _test_eof745; -case 745: + goto _test_eof763; +case 763: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2126; + goto tr2161; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2126; + goto tr2161; } else - goto tr2126; - goto tr2084; -tr2128: + goto tr2161; + goto tr2119; +tr2163: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st746; -tr2129: + goto st764; +tr2164: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st746; -tr2130: + goto st764; +tr2165: { s->line_counter++; } - goto st746; -tr2136: + goto st764; +tr2171: { s->buffer[s->buffer_length++] = 0; @@ -60636,24 +61597,24 @@ tr2136: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 746; goto _out;} + {p++; cs = 764; goto _out;} } } } { s->line_counter++; } - goto st746; -tr2126: + goto st764; +tr2161: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st746; -st746: + goto st764; +st764: if ( ++p == pe ) - goto _test_eof746; -case 746: + goto _test_eof764; +case 764: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60671,42 +61632,42 @@ case 746: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st746; - case 32: goto st746; - case 40: goto tr2128; - case 41: goto tr2129; - case 3082: goto tr2130; - case 3131: goto tr2131; - case 3338: goto tr2132; - case 3387: goto tr2132; - case 3594: goto tr2133; - case 3643: goto tr2134; + case 9: goto st764; + case 32: goto st764; + case 40: goto tr2163; + case 41: goto tr2164; + case 3082: goto tr2165; + case 3131: goto tr2166; + case 3338: goto tr2167; + case 3387: goto tr2167; + case 3594: goto tr2168; + case 3643: goto tr2169; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2123; + goto tr2158; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2123; + goto tr2158; } else - goto tr2123; - goto tr2084; -tr2131: + goto tr2158; + goto tr2119; +tr2166: { s->buffer_length = 0; } - goto st747; -tr2135: + goto st765; +tr2170: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st747; -st747: + goto st765; +st765: if ( ++p == pe ) - goto _test_eof747; -case 747: + goto _test_eof765; +case 765: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -60726,49 +61687,49 @@ case 747: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2136; + goto tr2171; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2135; - goto tr2084; -tr2117: + goto tr2170; + goto tr2119; +tr2152: { p--; {cs = stack[--top];goto _again;} } - goto st1504; -tr2132: + goto st1522; +tr2167: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1504; -st1504: + goto st1522; +st1522: if ( ++p == pe ) - goto _test_eof1504; -case 1504: - goto tr2070; -tr2133: + goto _test_eof1522; +case 1522: + goto tr2105; +tr2168: { s->line_counter++; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1505; -st1505: + goto st1523; +st1523: if ( ++p == pe ) - goto _test_eof1505; -case 1505: + goto _test_eof1523; +case 1523: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60786,44 +61747,44 @@ case 1505: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st746; - case 32: goto st746; - case 40: goto tr2128; - case 41: goto tr2129; - case 3082: goto tr2130; - case 3131: goto tr2131; - case 3338: goto tr2132; - case 3387: goto tr2132; - case 3594: goto tr2133; - case 3643: goto tr2134; + case 9: goto st764; + case 32: goto st764; + case 40: goto tr2163; + case 41: goto tr2164; + case 3082: goto tr2165; + case 3131: goto tr2166; + case 3338: goto tr2167; + case 3387: goto tr2167; + case 3594: goto tr2168; + case 3643: goto tr2169; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2123; + goto tr2158; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2123; + goto tr2158; } else - goto tr2123; - goto tr2084; -tr2134: + goto tr2158; + goto tr2119; +tr2169: { s->buffer_length = 0; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1506; -st1506: + goto st1524; +st1524: if ( ++p == pe ) - goto _test_eof1506; -case 1506: + goto _test_eof1524; +case 1524: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -60843,39 +61804,39 @@ case 1506: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2136; + goto tr2171; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2135; - goto tr2084; -tr2125: + goto tr2170; + goto tr2119; +tr2160: { s->buffer_length = 0; } - goto st748; -tr2137: + goto st766; +tr2172: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st748; -tr2143: + goto st766; +tr2178: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st748; -st748: + goto st766; +st766: if ( ++p == pe ) - goto _test_eof748; -case 748: + goto _test_eof766; +case 766: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -60895,11 +61856,11 @@ case 748: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2138; + goto tr2173; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2137; - goto tr2070; -tr2112: + goto tr2172; + goto tr2105; +tr2147: { s->number64 = 0; } @@ -60914,11 +61875,11 @@ tr2112: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st749; -tr2116: + goto st767; +tr2151: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -60930,14 +61891,14 @@ tr2116: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st749; -st749: + goto st767; +st767: if ( ++p == pe ) - goto _test_eof749; -case 749: + goto _test_eof767; +case 767: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60951,17 +61912,17 @@ case 749: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2139; - case 32: goto tr2139; - case 40: goto tr2140; - case 41: goto tr2141; - case 2058: goto tr2142; - case 2107: goto tr2143; + case 9: goto tr2174; + case 32: goto tr2174; + case 40: goto tr2175; + case 41: goto tr2176; + case 2058: goto tr2177; + case 2107: goto tr2178; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2116; - goto tr2076; -tr2119: + goto tr2151; + goto tr2111; +tr2154: { p--; {cs = stack[--top];goto _again;} } @@ -60970,17 +61931,17 @@ tr2119: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1507; -st1507: + goto st1525; +st1525: if ( ++p == pe ) - goto _test_eof1507; -case 1507: + goto _test_eof1525; +case 1525: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -61000,26 +61961,26 @@ case 1507: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2138; + goto tr2173; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2137; - goto tr2070; -tr2110: + goto tr2172; + goto tr2105; +tr2145: { s->buffer_length = 0; } - goto st750; -tr2144: + goto st768; +tr2179: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st750; -st750: + goto st768; +st768: if ( ++p == pe ) - goto _test_eof750; -case 750: + goto _test_eof768; +case 768: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -61039,71 +62000,71 @@ case 750: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2145; + goto tr2180; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2144; - goto tr2070; -st751: + goto tr2179; + goto tr2105; +st769: if ( ++p == pe ) - goto _test_eof751; -case 751: + goto _test_eof769; +case 769: switch( (*p) ) { - case 97: goto tr2147; - case 100: goto tr2148; - case 101: goto tr2149; - case 105: goto tr2150; - case 107: goto tr2151; - case 110: goto tr2152; - case 111: goto tr2153; - case 112: goto tr2154; + case 97: goto tr2182; + case 100: goto tr2183; + case 101: goto tr2184; + case 105: goto tr2185; + case 107: goto tr2186; + case 110: goto tr2187; + case 111: goto tr2188; + case 112: goto tr2189; } - goto tr2146; -tr2147: + goto tr2181; +tr2182: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st752; -st752: + goto st770; +st770: if ( ++p == pe ) - goto _test_eof752; -case 752: + goto _test_eof770; +case 770: if ( (*p) == 108 ) - goto st753; - goto tr2146; -st753: + goto st771; + goto tr2181; +st771: if ( ++p == pe ) - goto _test_eof753; -case 753: + goto _test_eof771; +case 771: if ( (*p) == 112 ) - goto st754; - goto tr2146; -st754: + goto st772; + goto tr2181; +st772: if ( ++p == pe ) - goto _test_eof754; -case 754: + goto _test_eof772; +case 772: if ( (*p) == 110 ) - goto st755; - goto tr2146; -st755: + goto st773; + goto tr2181; +st773: if ( ++p == pe ) - goto _test_eof755; -case 755: + goto _test_eof773; +case 773: switch( (*p) ) { - case 32: goto tr2158; - case 34: goto tr2158; - case 44: goto tr2158; - case 59: goto tr2158; + case 32: goto tr2193; + case 34: goto tr2193; + case 44: goto tr2193; + case 59: goto tr2193; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2158; + goto tr2193; } else if ( (*p) >= 9 ) - goto tr2158; - goto tr2146; -tr2187: + goto tr2193; + goto tr2181; +tr2222: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -61111,14 +62072,14 @@ tr2187: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1508; -tr2158: + goto st1526; +tr2193: { uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); @@ -61127,8 +62088,8 @@ tr2158: { p--; {cs = stack[--top];goto _again;} } - goto st1508; -tr2165: + goto st1526; +tr2200: { uint16_t val = htons(7); memcpy(rdata_tail, &val, 2); @@ -61137,8 +62098,8 @@ tr2165: { p--; {cs = stack[--top];goto _again;} } - goto st1508; -tr2168: + goto st1526; +tr2203: { uint16_t val = htons(5); memcpy(rdata_tail, &val, 2); @@ -61147,8 +62108,8 @@ tr2168: { p--; {cs = stack[--top];goto _again;} } - goto st1508; -tr2177: + goto st1526; +tr2212: { uint16_t val = htons(4); memcpy(rdata_tail, &val, 2); @@ -61157,8 +62118,8 @@ tr2177: { p--; {cs = stack[--top];goto _again;} } - goto st1508; -tr2182: + goto st1526; +tr2217: { uint16_t val = htons(6); memcpy(rdata_tail, &val, 2); @@ -61167,8 +62128,8 @@ tr2182: { p--; {cs = stack[--top];goto _again;} } - goto st1508; -tr2203: + goto st1526; +tr2238: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -61177,8 +62138,8 @@ tr2203: { p--; {cs = stack[--top];goto _again;} } - goto st1508; -tr2208: + goto st1526; +tr2243: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -61187,8 +62148,8 @@ tr2208: { p--; {cs = stack[--top];goto _again;} } - goto st1508; -tr2212: + goto st1526; +tr2247: { uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); @@ -61197,265 +62158,265 @@ tr2212: { p--; {cs = stack[--top];goto _again;} } - goto st1508; -st1508: + goto st1526; +st1526: if ( ++p == pe ) - goto _test_eof1508; -case 1508: + goto _test_eof1526; +case 1526: goto st0; -tr2148: +tr2183: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st756; -st756: + goto st774; +st774: if ( ++p == pe ) - goto _test_eof756; -case 756: + goto _test_eof774; +case 774: if ( (*p) == 111 ) - goto st757; - goto tr2146; -st757: + goto st775; + goto tr2181; +st775: if ( ++p == pe ) - goto _test_eof757; -case 757: + goto _test_eof775; +case 775: if ( (*p) == 104 ) - goto st758; - goto tr2146; -st758: + goto st776; + goto tr2181; +st776: if ( ++p == pe ) - goto _test_eof758; -case 758: + goto _test_eof776; +case 776: if ( (*p) == 112 ) - goto st759; - goto tr2146; -st759: + goto st777; + goto tr2181; +st777: if ( ++p == pe ) - goto _test_eof759; -case 759: + goto _test_eof777; +case 777: if ( (*p) == 97 ) - goto st760; - goto tr2146; -st760: + goto st778; + goto tr2181; +st778: if ( ++p == pe ) - goto _test_eof760; -case 760: + goto _test_eof778; +case 778: if ( (*p) == 116 ) - goto st761; - goto tr2146; -st761: + goto st779; + goto tr2181; +st779: if ( ++p == pe ) - goto _test_eof761; -case 761: + goto _test_eof779; +case 779: if ( (*p) == 104 ) - goto st762; - goto tr2146; -st762: + goto st780; + goto tr2181; +st780: if ( ++p == pe ) - goto _test_eof762; -case 762: + goto _test_eof780; +case 780: switch( (*p) ) { - case 32: goto tr2165; - case 34: goto tr2165; - case 44: goto tr2165; - case 59: goto tr2165; + case 32: goto tr2200; + case 34: goto tr2200; + case 44: goto tr2200; + case 59: goto tr2200; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2165; + goto tr2200; } else if ( (*p) >= 9 ) - goto tr2165; - goto tr2146; -tr2149: + goto tr2200; + goto tr2181; +tr2184: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st763; -st763: + goto st781; +st781: if ( ++p == pe ) - goto _test_eof763; -case 763: + goto _test_eof781; +case 781: if ( (*p) == 99 ) - goto st764; - goto tr2146; -st764: + goto st782; + goto tr2181; +st782: if ( ++p == pe ) - goto _test_eof764; -case 764: + goto _test_eof782; +case 782: if ( (*p) == 104 ) - goto st765; - goto tr2146; -st765: + goto st783; + goto tr2181; +st783: if ( ++p == pe ) - goto _test_eof765; -case 765: + goto _test_eof783; +case 783: switch( (*p) ) { - case 32: goto tr2168; - case 34: goto tr2168; - case 44: goto tr2168; - case 59: goto tr2168; + case 32: goto tr2203; + case 34: goto tr2203; + case 44: goto tr2203; + case 59: goto tr2203; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2168; + goto tr2203; } else if ( (*p) >= 9 ) - goto tr2168; - goto tr2146; -tr2150: + goto tr2203; + goto tr2181; +tr2185: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st766; -st766: + goto st784; +st784: if ( ++p == pe ) - goto _test_eof766; -case 766: + goto _test_eof784; +case 784: if ( (*p) == 112 ) - goto st767; - goto tr2146; -st767: + goto st785; + goto tr2181; +st785: if ( ++p == pe ) - goto _test_eof767; -case 767: + goto _test_eof785; +case 785: if ( (*p) == 118 ) - goto st768; - goto tr2146; -st768: + goto st786; + goto tr2181; +st786: if ( ++p == pe ) - goto _test_eof768; -case 768: + goto _test_eof786; +case 786: switch( (*p) ) { - case 52: goto st769; - case 54: goto st774; + case 52: goto st787; + case 54: goto st792; } - goto tr2146; -st769: + goto tr2181; +st787: if ( ++p == pe ) - goto _test_eof769; -case 769: + goto _test_eof787; +case 787: if ( (*p) == 104 ) - goto st770; - goto tr2146; -st770: + goto st788; + goto tr2181; +st788: if ( ++p == pe ) - goto _test_eof770; -case 770: + goto _test_eof788; +case 788: if ( (*p) == 105 ) - goto st771; - goto tr2146; -st771: + goto st789; + goto tr2181; +st789: if ( ++p == pe ) - goto _test_eof771; -case 771: + goto _test_eof789; +case 789: if ( (*p) == 110 ) - goto st772; - goto tr2146; -st772: + goto st790; + goto tr2181; +st790: if ( ++p == pe ) - goto _test_eof772; -case 772: + goto _test_eof790; +case 790: if ( (*p) == 116 ) - goto st773; - goto tr2146; -st773: + goto st791; + goto tr2181; +st791: if ( ++p == pe ) - goto _test_eof773; -case 773: + goto _test_eof791; +case 791: switch( (*p) ) { - case 32: goto tr2177; - case 34: goto tr2177; - case 44: goto tr2177; - case 59: goto tr2177; + case 32: goto tr2212; + case 34: goto tr2212; + case 44: goto tr2212; + case 59: goto tr2212; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2177; + goto tr2212; } else if ( (*p) >= 9 ) - goto tr2177; - goto tr2146; -st774: + goto tr2212; + goto tr2181; +st792: if ( ++p == pe ) - goto _test_eof774; -case 774: + goto _test_eof792; +case 792: if ( (*p) == 104 ) - goto st775; - goto tr2146; -st775: + goto st793; + goto tr2181; +st793: if ( ++p == pe ) - goto _test_eof775; -case 775: + goto _test_eof793; +case 793: if ( (*p) == 105 ) - goto st776; - goto tr2146; -st776: + goto st794; + goto tr2181; +st794: if ( ++p == pe ) - goto _test_eof776; -case 776: + goto _test_eof794; +case 794: if ( (*p) == 110 ) - goto st777; - goto tr2146; -st777: + goto st795; + goto tr2181; +st795: if ( ++p == pe ) - goto _test_eof777; -case 777: + goto _test_eof795; +case 795: if ( (*p) == 116 ) - goto st778; - goto tr2146; -st778: + goto st796; + goto tr2181; +st796: if ( ++p == pe ) - goto _test_eof778; -case 778: + goto _test_eof796; +case 796: switch( (*p) ) { - case 32: goto tr2182; - case 34: goto tr2182; - case 44: goto tr2182; - case 59: goto tr2182; + case 32: goto tr2217; + case 34: goto tr2217; + case 44: goto tr2217; + case 59: goto tr2217; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2182; + goto tr2217; } else if ( (*p) >= 9 ) - goto tr2182; - goto tr2146; -tr2151: + goto tr2217; + goto tr2181; +tr2186: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st779; -st779: + goto st797; +st797: if ( ++p == pe ) - goto _test_eof779; -case 779: + goto _test_eof797; +case 797: if ( (*p) == 101 ) - goto st780; - goto tr2146; -st780: + goto st798; + goto tr2181; +st798: if ( ++p == pe ) - goto _test_eof780; -case 780: + goto _test_eof798; +case 798: if ( (*p) == 121 ) - goto st781; - goto tr2146; -st781: + goto st799; + goto tr2181; +st799: if ( ++p == pe ) - goto _test_eof781; -case 781: + goto _test_eof799; +case 799: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2186; - goto tr2185; -tr2186: + goto tr2221; + goto tr2220; +tr2221: { s->number64 = 0; } @@ -61470,11 +62431,11 @@ tr2186: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st782; -tr2188: + goto st800; +tr2223: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -61486,252 +62447,252 @@ tr2188: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st782; -st782: + goto st800; +st800: if ( ++p == pe ) - goto _test_eof782; -case 782: + goto _test_eof800; +case 800: switch( (*p) ) { - case 32: goto tr2187; - case 34: goto tr2187; - case 44: goto tr2187; - case 59: goto tr2187; + case 32: goto tr2222; + case 34: goto tr2222; + case 44: goto tr2222; + case 59: goto tr2222; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2187; + goto tr2222; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2188; + goto tr2223; } else - goto tr2187; - goto tr2185; -tr2152: + goto tr2222; + goto tr2220; +tr2187: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st783; -st783: + goto st801; +st801: if ( ++p == pe ) - goto _test_eof783; -case 783: + goto _test_eof801; +case 801: if ( (*p) == 111 ) - goto st784; - goto tr2146; -st784: + goto st802; + goto tr2181; +st802: if ( ++p == pe ) - goto _test_eof784; -case 784: + goto _test_eof802; +case 802: if ( (*p) == 45 ) - goto st785; - goto tr2146; -st785: + goto st803; + goto tr2181; +st803: if ( ++p == pe ) - goto _test_eof785; -case 785: + goto _test_eof803; +case 803: if ( (*p) == 100 ) - goto st786; - goto tr2146; -st786: + goto st804; + goto tr2181; +st804: if ( ++p == pe ) - goto _test_eof786; -case 786: + goto _test_eof804; +case 804: if ( (*p) == 101 ) - goto st787; - goto tr2146; -st787: + goto st805; + goto tr2181; +st805: if ( ++p == pe ) - goto _test_eof787; -case 787: + goto _test_eof805; +case 805: if ( (*p) == 102 ) - goto st788; - goto tr2146; -st788: + goto st806; + goto tr2181; +st806: if ( ++p == pe ) - goto _test_eof788; -case 788: + goto _test_eof806; +case 806: if ( (*p) == 97 ) - goto st789; - goto tr2146; -st789: + goto st807; + goto tr2181; +st807: if ( ++p == pe ) - goto _test_eof789; -case 789: + goto _test_eof807; +case 807: if ( (*p) == 117 ) - goto st790; - goto tr2146; -st790: + goto st808; + goto tr2181; +st808: if ( ++p == pe ) - goto _test_eof790; -case 790: + goto _test_eof808; +case 808: if ( (*p) == 108 ) - goto st791; - goto tr2146; -st791: + goto st809; + goto tr2181; +st809: if ( ++p == pe ) - goto _test_eof791; -case 791: + goto _test_eof809; +case 809: if ( (*p) == 116 ) - goto st792; - goto tr2146; -st792: + goto st810; + goto tr2181; +st810: if ( ++p == pe ) - goto _test_eof792; -case 792: + goto _test_eof810; +case 810: if ( (*p) == 45 ) - goto st793; - goto tr2146; -st793: + goto st811; + goto tr2181; +st811: if ( ++p == pe ) - goto _test_eof793; -case 793: + goto _test_eof811; +case 811: if ( (*p) == 97 ) - goto st794; - goto tr2146; -st794: + goto st812; + goto tr2181; +st812: if ( ++p == pe ) - goto _test_eof794; -case 794: + goto _test_eof812; +case 812: if ( (*p) == 108 ) - goto st795; - goto tr2146; -st795: + goto st813; + goto tr2181; +st813: if ( ++p == pe ) - goto _test_eof795; -case 795: + goto _test_eof813; +case 813: if ( (*p) == 112 ) - goto st796; - goto tr2146; -st796: + goto st814; + goto tr2181; +st814: if ( ++p == pe ) - goto _test_eof796; -case 796: + goto _test_eof814; +case 814: if ( (*p) == 110 ) - goto st797; - goto tr2146; -st797: + goto st815; + goto tr2181; +st815: if ( ++p == pe ) - goto _test_eof797; -case 797: + goto _test_eof815; +case 815: switch( (*p) ) { - case 32: goto tr2203; - case 34: goto tr2203; - case 44: goto tr2203; - case 59: goto tr2203; + case 32: goto tr2238; + case 34: goto tr2238; + case 44: goto tr2238; + case 59: goto tr2238; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2203; + goto tr2238; } else if ( (*p) >= 9 ) - goto tr2203; - goto tr2146; -tr2153: + goto tr2238; + goto tr2181; +tr2188: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st798; -st798: + goto st816; +st816: if ( ++p == pe ) - goto _test_eof798; -case 798: + goto _test_eof816; +case 816: if ( (*p) == 104 ) - goto st799; - goto tr2146; -st799: + goto st817; + goto tr2181; +st817: if ( ++p == pe ) - goto _test_eof799; -case 799: + goto _test_eof817; +case 817: if ( (*p) == 116 ) - goto st800; - goto tr2146; -st800: + goto st818; + goto tr2181; +st818: if ( ++p == pe ) - goto _test_eof800; -case 800: + goto _test_eof818; +case 818: if ( (*p) == 116 ) - goto st801; - goto tr2146; -st801: + goto st819; + goto tr2181; +st819: if ( ++p == pe ) - goto _test_eof801; -case 801: + goto _test_eof819; +case 819: if ( (*p) == 112 ) - goto st802; - goto tr2146; -st802: + goto st820; + goto tr2181; +st820: if ( ++p == pe ) - goto _test_eof802; -case 802: + goto _test_eof820; +case 820: switch( (*p) ) { - case 32: goto tr2208; - case 34: goto tr2208; - case 44: goto tr2208; - case 59: goto tr2208; + case 32: goto tr2243; + case 34: goto tr2243; + case 44: goto tr2243; + case 59: goto tr2243; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2208; + goto tr2243; } else if ( (*p) >= 9 ) - goto tr2208; - goto tr2146; -tr2154: + goto tr2243; + goto tr2181; +tr2189: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st803; -st803: + goto st821; +st821: if ( ++p == pe ) - goto _test_eof803; -case 803: + goto _test_eof821; +case 821: if ( (*p) == 111 ) - goto st804; - goto tr2146; -st804: + goto st822; + goto tr2181; +st822: if ( ++p == pe ) - goto _test_eof804; -case 804: + goto _test_eof822; +case 822: if ( (*p) == 114 ) - goto st805; - goto tr2146; -st805: + goto st823; + goto tr2181; +st823: if ( ++p == pe ) - goto _test_eof805; -case 805: + goto _test_eof823; +case 823: if ( (*p) == 116 ) - goto st806; - goto tr2146; -st806: + goto st824; + goto tr2181; +st824: if ( ++p == pe ) - goto _test_eof806; -case 806: + goto _test_eof824; +case 824: switch( (*p) ) { - case 32: goto tr2212; - case 34: goto tr2212; - case 44: goto tr2212; - case 59: goto tr2212; + case 32: goto tr2247; + case 34: goto tr2247; + case 44: goto tr2247; + case 59: goto tr2247; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2212; + goto tr2247; } else if ( (*p) >= 9 ) - goto tr2212; - goto tr2146; -st807: + goto tr2247; + goto tr2181; +st825: if ( ++p == pe ) - goto _test_eof807; -case 807: + goto _test_eof825; +case 825: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61749,42 +62710,42 @@ case 807: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2214; - case 32: goto tr2214; - case 40: goto tr2215; - case 41: goto tr2216; - case 3082: goto tr2217; - case 3131: goto tr2218; - case 3338: goto tr2219; - case 3387: goto tr2219; - case 3594: goto tr2220; - case 3643: goto tr2221; - } - goto tr2213; -tr2223: + case 9: goto tr2249; + case 32: goto tr2249; + case 40: goto tr2250; + case 41: goto tr2251; + case 3082: goto tr2252; + case 3131: goto tr2253; + case 3338: goto tr2254; + case 3387: goto tr2254; + case 3594: goto tr2255; + case 3643: goto tr2256; + } + goto tr2248; +tr2258: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2224: + goto st826; +tr2259: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2234: + goto st826; +tr2269: { s->line_counter++; } - goto st808; -tr2254: + goto st826; +tr2289: { s->buffer[s->buffer_length++] = 0; @@ -61794,21 +62755,21 @@ tr2254: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 808; goto _out;} + {p++; cs = 826; goto _out;} } } } { s->line_counter++; } - goto st808; -tr2214: + goto st826; +tr2249: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; } - goto st808; -tr2215: + goto st826; +tr2250: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -61816,12 +62777,12 @@ tr2215: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2216: + goto st826; +tr2251: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -61829,12 +62790,12 @@ tr2216: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2217: + goto st826; +tr2252: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -61842,26 +62803,26 @@ tr2217: { s->line_counter++; } - goto st808; -tr2245: + goto st826; +tr2280: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -61872,36 +62833,36 @@ tr2245: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } - goto st808; -tr2246: + goto st826; +tr2281: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -61912,43 +62873,43 @@ tr2246: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2247: + goto st826; +tr2282: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -61959,43 +62920,43 @@ tr2247: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2248: + goto st826; +tr2283: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -62006,21 +62967,21 @@ tr2248: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st808; -tr2264: + goto st826; +tr2299: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -62029,18 +62990,18 @@ tr2264: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } - goto st808; -tr2265: + goto st826; +tr2300: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -62049,25 +63010,25 @@ tr2265: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2266: + goto st826; +tr2301: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -62076,25 +63037,25 @@ tr2266: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2267: + goto st826; +tr2302: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -62103,86 +63064,86 @@ tr2267: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st808; -tr2274: + goto st826; +tr2309: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } - goto st808; -tr2275: + goto st826; +tr2310: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2276: + goto st826; +tr2311: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2277: + goto st826; +tr2312: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st808; -tr2317: + goto st826; +tr2352: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -62195,30 +63156,30 @@ tr2317: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } - goto st808; -tr2318: + goto st826; +tr2353: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -62231,37 +63192,37 @@ tr2318: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2319: + goto st826; +tr2354: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -62274,37 +63235,37 @@ tr2319: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2322: + goto st826; +tr2357: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -62317,33 +63278,33 @@ tr2322: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st808; -tr2340: + goto st826; +tr2375: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -62356,30 +63317,30 @@ tr2340: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } - goto st808; -tr2341: + goto st826; +tr2376: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -62392,37 +63353,37 @@ tr2341: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2342: + goto st826; +tr2377: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -62435,37 +63396,37 @@ tr2342: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2345: + goto st826; +tr2380: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -62478,21 +63439,21 @@ tr2345: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st808; -tr2355: + goto st826; +tr2390: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -62500,7 +63461,7 @@ tr2355: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -62512,11 +63473,11 @@ tr2355: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } - goto st808; -tr2356: + goto st826; +tr2391: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -62524,7 +63485,7 @@ tr2356: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -62536,18 +63497,18 @@ tr2356: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2357: + goto st826; +tr2392: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -62555,7 +63516,7 @@ tr2357: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -62567,18 +63528,18 @@ tr2357: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2360: + goto st826; +tr2395: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -62586,7 +63547,7 @@ tr2360: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -62598,14 +63559,14 @@ tr2360: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st808; -tr2380: + goto st826; +tr2415: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -62614,7 +63575,7 @@ tr2380: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -62624,11 +63585,11 @@ tr2380: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } - goto st808; -tr2381: + goto st826; +tr2416: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -62637,7 +63598,7 @@ tr2381: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -62647,18 +63608,18 @@ tr2381: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2382: + goto st826; +tr2417: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -62667,7 +63628,7 @@ tr2382: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -62677,18 +63638,18 @@ tr2382: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2384: + goto st826; +tr2419: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -62697,7 +63658,7 @@ tr2384: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -62707,14 +63668,14 @@ tr2384: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st808; -tr2404: + goto st826; +tr2439: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -62729,11 +63690,11 @@ tr2404: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } - goto st808; -tr2405: + goto st826; +tr2440: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -62748,18 +63709,18 @@ tr2405: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2406: + goto st826; +tr2441: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -62774,18 +63735,18 @@ tr2406: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2407: + goto st826; +tr2442: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -62800,14 +63761,14 @@ tr2407: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st808; -tr2416: + goto st826; +tr2451: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -62822,11 +63783,11 @@ tr2416: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } - goto st808; -tr2417: + goto st826; +tr2452: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -62841,18 +63802,18 @@ tr2417: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2418: + goto st826; +tr2453: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -62867,18 +63828,18 @@ tr2418: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2419: + goto st826; +tr2454: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -62893,14 +63854,14 @@ tr2419: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st808; -tr2433: + goto st826; +tr2468: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -62908,18 +63869,18 @@ tr2433: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } - goto st808; -tr2434: + goto st826; +tr2469: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -62927,25 +63888,25 @@ tr2434: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st808; -tr2435: + goto st826; +tr2470: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -62953,25 +63914,25 @@ tr2435: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st808; -tr2437: + goto st826; +tr2472: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -62979,24 +63940,24 @@ tr2437: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st808; -st808: + goto st826; +st826: if ( ++p == pe ) - goto _test_eof808; -case 808: + goto _test_eof826; +case 826: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -63014,87 +63975,87 @@ case 808: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st808; - case 32: goto st808; - case 40: goto tr2223; - case 41: goto tr2224; - case 97: goto tr2225; - case 100: goto tr2226; - case 101: goto tr2227; - case 105: goto tr2228; - case 107: goto tr2229; - case 109: goto tr2230; - case 110: goto tr2231; - case 111: goto tr2232; - case 112: goto tr2233; - case 3082: goto tr2234; - case 3131: goto tr2235; - case 3338: goto tr2236; - case 3387: goto tr2236; - case 3594: goto tr2237; - case 3643: goto tr2238; - } - goto tr2213; -tr2225: + case 9: goto st826; + case 32: goto st826; + case 40: goto tr2258; + case 41: goto tr2259; + case 97: goto tr2260; + case 100: goto tr2261; + case 101: goto tr2262; + case 105: goto tr2263; + case 107: goto tr2264; + case 109: goto tr2265; + case 110: goto tr2266; + case 111: goto tr2267; + case 112: goto tr2268; + case 3082: goto tr2269; + case 3131: goto tr2270; + case 3338: goto tr2271; + case 3387: goto tr2271; + case 3594: goto tr2272; + case 3643: goto tr2273; + } + goto tr2248; +tr2260: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->svcb.param_position = rdata_tail; } - goto st809; -st809: + goto st827; +st827: if ( ++p == pe ) - goto _test_eof809; -case 809: + goto _test_eof827; +case 827: if ( (*p) == 108 ) - goto st810; - goto tr2213; -st810: + goto st828; + goto tr2248; +st828: if ( ++p == pe ) - goto _test_eof810; -case 810: + goto _test_eof828; +case 828: if ( (*p) == 112 ) - goto st811; - goto tr2213; -st811: + goto st829; + goto tr2248; +st829: if ( ++p == pe ) - goto _test_eof811; -case 811: + goto _test_eof829; +case 829: if ( (*p) == 110 ) - goto st812; - goto tr2213; -st812: + goto st830; + goto tr2248; +st830: if ( ++p == pe ) - goto _test_eof812; -case 812: + goto _test_eof830; +case 830: if ( (*p) == 61 ) - goto tr2242; - goto tr2213; -tr2242: + goto tr2277; + goto tr2248; +tr2277: { uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st813; -st813: + goto st831; +st831: if ( ++p == pe ) - goto _test_eof813; -case 813: + goto _test_eof831; +case 831: switch( (*p) ) { - case 32: goto tr2213; - case 34: goto tr2244; - case 59: goto tr2213; + case 32: goto tr2248; + case 34: goto tr2279; + case 59: goto tr2248; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2213; + goto tr2248; } else if ( (*p) >= 9 ) - goto tr2213; - goto tr2243; -tr2243: + goto tr2248; + goto tr2278; +tr2278: { s->comma_list = true; s->pending_backslash = false; @@ -63105,7 +64066,7 @@ tr2243: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -63113,15 +64074,15 @@ tr2243: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 814;goto st330;} } - goto st814; -st814: + { p--; {stack[top++] = 832;goto st336;} } + goto st832; +st832: if ( ++p == pe ) - goto _test_eof814; -case 814: + goto _test_eof832; +case 832: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -63139,31 +64100,31 @@ case 814: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2245; - case 32: goto tr2245; - case 40: goto tr2246; - case 41: goto tr2247; - case 3082: goto tr2248; - case 3131: goto tr2249; - case 3338: goto tr2250; - case 3387: goto tr2250; - case 3594: goto tr2251; - case 3643: goto tr2252; - } - goto tr2213; -tr2235: + case 9: goto tr2280; + case 32: goto tr2280; + case 40: goto tr2281; + case 41: goto tr2282; + case 3082: goto tr2283; + case 3131: goto tr2284; + case 3338: goto tr2285; + case 3387: goto tr2285; + case 3594: goto tr2286; + case 3643: goto tr2287; + } + goto tr2248; +tr2270: { s->buffer_length = 0; } - goto st815; -tr2253: + goto st833; +tr2288: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st815; -tr2218: + goto st833; +tr2253: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -63171,26 +64132,26 @@ tr2218: { s->buffer_length = 0; } - goto st815; -tr2249: + goto st833; +tr2284: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -63201,21 +64162,21 @@ tr2249: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st815; -tr2268: + goto st833; +tr2303: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63224,45 +64185,45 @@ tr2268: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st815; -tr2278: + goto st833; +tr2313: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st815; -tr2323: + goto st833; +tr2358: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -63275,33 +64236,33 @@ tr2323: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st815; -tr2346: + goto st833; +tr2381: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -63314,21 +64275,21 @@ tr2346: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st815; -tr2361: + goto st833; +tr2396: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63336,7 +64297,7 @@ tr2361: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -63348,14 +64309,14 @@ tr2361: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st815; -tr2385: + goto st833; +tr2420: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63364,7 +64325,7 @@ tr2385: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -63374,14 +64335,14 @@ tr2385: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st815; -tr2408: + goto st833; +tr2443: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -63396,14 +64357,14 @@ tr2408: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st815; -tr2420: + goto st833; +tr2455: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -63418,14 +64379,14 @@ tr2420: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st815; -tr2438: + goto st833; +tr2473: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63433,24 +64394,24 @@ tr2438: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st815; -st815: + goto st833; +st833: if ( ++p == pe ) - goto _test_eof815; -case 815: + goto _test_eof833; +case 833: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -63470,11 +64431,11 @@ case 815: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2254; + goto tr2289; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2253; - goto tr2213; -tr2219: + goto tr2288; + goto tr2248; +tr2254: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -63483,44 +64444,44 @@ tr2219: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -tr2236: + goto st1527; +tr2271: { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -tr2250: + goto st1527; +tr2285: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -63531,28 +64492,28 @@ tr2250: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -tr2269: + goto st1527; +tr2304: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63561,59 +64522,59 @@ tr2269: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -tr2279: + goto st1527; +tr2314: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -tr2324: + goto st1527; +tr2359: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -63626,40 +64587,40 @@ tr2324: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -tr2347: + goto st1527; +tr2382: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -63672,28 +64633,28 @@ tr2347: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -tr2362: + goto st1527; +tr2397: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63701,7 +64662,7 @@ tr2362: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -63713,21 +64674,21 @@ tr2362: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -tr2386: + goto st1527; +tr2421: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63736,7 +64697,7 @@ tr2386: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -63746,21 +64707,21 @@ tr2386: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -tr2409: + goto st1527; +tr2444: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -63775,21 +64736,21 @@ tr2409: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -tr2421: + goto st1527; +tr2456: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -63804,21 +64765,21 @@ tr2421: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -tr2439: + goto st1527; +tr2474: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63826,33 +64787,33 @@ tr2439: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1509; -st1509: + goto st1527; +st1527: if ( ++p == pe ) - goto _test_eof1509; -case 1509: + goto _test_eof1527; +case 1527: goto st0; -tr2220: +tr2255: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -63864,14 +64825,14 @@ tr2220: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -tr2237: + goto st1528; +tr2272: { s->line_counter++; } @@ -63879,32 +64840,32 @@ tr2237: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -tr2251: + goto st1528; +tr2286: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -63915,14 +64876,14 @@ tr2251: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -63932,14 +64893,14 @@ tr2251: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -tr2270: + goto st1528; +tr2305: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63948,14 +64909,14 @@ tr2270: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -63965,19 +64926,19 @@ tr2270: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -tr2280: + goto st1528; +tr2315: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -63987,26 +64948,26 @@ tr2280: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -tr2325: + goto st1528; +tr2360: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -64019,14 +64980,14 @@ tr2325: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64036,26 +64997,26 @@ tr2325: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -tr2348: + goto st1528; +tr2383: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -64068,14 +65029,14 @@ tr2348: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64085,14 +65046,14 @@ tr2348: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -tr2363: + goto st1528; +tr2398: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -64100,7 +65061,7 @@ tr2363: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64112,7 +65073,7 @@ tr2363: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64122,14 +65083,14 @@ tr2363: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -tr2387: + goto st1528; +tr2422: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -64138,7 +65099,7 @@ tr2387: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64148,7 +65109,7 @@ tr2387: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64158,14 +65119,14 @@ tr2387: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -tr2410: + goto st1528; +tr2445: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -64180,7 +65141,7 @@ tr2410: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64190,14 +65151,14 @@ tr2410: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -tr2422: + goto st1528; +tr2457: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -64212,7 +65173,7 @@ tr2422: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64222,14 +65183,14 @@ tr2422: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -tr2440: + goto st1528; +tr2475: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -64237,14 +65198,14 @@ tr2440: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64254,17 +65215,17 @@ tr2440: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1510; -st1510: + goto st1528; +st1528: if ( ++p == pe ) - goto _test_eof1510; -case 1510: + goto _test_eof1528; +case 1528: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -64282,123 +65243,123 @@ case 1510: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st808; - case 32: goto st808; - case 40: goto tr2223; - case 41: goto tr2224; - case 97: goto tr2225; - case 100: goto tr2226; - case 101: goto tr2227; - case 105: goto tr2228; - case 107: goto tr2229; - case 109: goto tr2230; - case 110: goto tr2231; - case 111: goto tr2232; - case 112: goto tr2233; - case 3082: goto tr2234; - case 3131: goto tr2235; - case 3338: goto tr2236; - case 3387: goto tr2236; - case 3594: goto tr2237; - case 3643: goto tr2238; - } - goto tr2213; -tr2226: + case 9: goto st826; + case 32: goto st826; + case 40: goto tr2258; + case 41: goto tr2259; + case 97: goto tr2260; + case 100: goto tr2261; + case 101: goto tr2262; + case 105: goto tr2263; + case 107: goto tr2264; + case 109: goto tr2265; + case 110: goto tr2266; + case 111: goto tr2267; + case 112: goto tr2268; + case 3082: goto tr2269; + case 3131: goto tr2270; + case 3338: goto tr2271; + case 3387: goto tr2271; + case 3594: goto tr2272; + case 3643: goto tr2273; + } + goto tr2248; +tr2261: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->svcb.param_position = rdata_tail; } - goto st816; -st816: + goto st834; +st834: if ( ++p == pe ) - goto _test_eof816; -case 816: + goto _test_eof834; +case 834: if ( (*p) == 111 ) - goto st817; - goto tr2213; -st817: + goto st835; + goto tr2248; +st835: if ( ++p == pe ) - goto _test_eof817; -case 817: + goto _test_eof835; +case 835: if ( (*p) == 104 ) - goto st818; - goto tr2213; -st818: + goto st836; + goto tr2248; +st836: if ( ++p == pe ) - goto _test_eof818; -case 818: + goto _test_eof836; +case 836: if ( (*p) == 112 ) - goto st819; - goto tr2213; -st819: + goto st837; + goto tr2248; +st837: if ( ++p == pe ) - goto _test_eof819; -case 819: + goto _test_eof837; +case 837: if ( (*p) == 97 ) - goto st820; - goto tr2213; -st820: + goto st838; + goto tr2248; +st838: if ( ++p == pe ) - goto _test_eof820; -case 820: + goto _test_eof838; +case 838: if ( (*p) == 116 ) - goto st821; - goto tr2213; -st821: + goto st839; + goto tr2248; +st839: if ( ++p == pe ) - goto _test_eof821; -case 821: + goto _test_eof839; +case 839: if ( (*p) == 104 ) - goto st822; - goto tr2213; -st822: + goto st840; + goto tr2248; +st840: if ( ++p == pe ) - goto _test_eof822; -case 822: + goto _test_eof840; +case 840: if ( (*p) == 61 ) - goto tr2261; - goto tr2213; -tr2261: + goto tr2296; + goto tr2248; +tr2296: { uint16_t val = htons(7); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st823; -st823: + goto st841; +st841: if ( ++p == pe ) - goto _test_eof823; -case 823: + goto _test_eof841; +case 841: switch( (*p) ) { - case 32: goto tr2213; - case 34: goto tr2263; - case 59: goto tr2213; + case 32: goto tr2248; + case 34: goto tr2298; + case 59: goto tr2248; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2213; + goto tr2248; } else if ( (*p) >= 9 ) - goto tr2213; - goto tr2262; -tr2262: + goto tr2248; + goto tr2297; +tr2297: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 824;goto st330;} } - goto st824; -st824: + { p--; {stack[top++] = 842;goto st336;} } + goto st842; +st842: if ( ++p == pe ) - goto _test_eof824; -case 824: + goto _test_eof842; +case 842: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -64416,19 +65377,19 @@ case 824: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2264; - case 32: goto tr2264; - case 40: goto tr2265; - case 41: goto tr2266; - case 3082: goto tr2267; - case 3131: goto tr2268; - case 3338: goto tr2269; - case 3387: goto tr2269; - case 3594: goto tr2270; - case 3643: goto tr2271; - } - goto tr2213; -tr2221: + case 9: goto tr2299; + case 32: goto tr2299; + case 40: goto tr2300; + case 41: goto tr2301; + case 3082: goto tr2302; + case 3131: goto tr2303; + case 3338: goto tr2304; + case 3387: goto tr2304; + case 3594: goto tr2305; + case 3643: goto tr2306; + } + goto tr2248; +tr2256: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -64440,14 +65401,14 @@ tr2221: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -tr2238: + goto st1529; +tr2273: { s->buffer_length = 0; } @@ -64455,32 +65416,32 @@ tr2238: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -tr2252: + goto st1529; +tr2287: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64491,14 +65452,14 @@ tr2252: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64508,14 +65469,14 @@ tr2252: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -tr2271: + goto st1529; +tr2306: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -64524,14 +65485,14 @@ tr2271: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64541,19 +65502,19 @@ tr2271: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -tr2281: + goto st1529; +tr2316: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64563,26 +65524,26 @@ tr2281: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -tr2326: + goto st1529; +tr2361: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -64595,14 +65556,14 @@ tr2326: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64612,26 +65573,26 @@ tr2326: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -tr2349: + goto st1529; +tr2384: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -64644,14 +65605,14 @@ tr2349: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64661,14 +65622,14 @@ tr2349: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -tr2364: + goto st1529; +tr2399: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -64676,7 +65637,7 @@ tr2364: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64688,7 +65649,7 @@ tr2364: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64698,14 +65659,14 @@ tr2364: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -tr2388: + goto st1529; +tr2423: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -64714,7 +65675,7 @@ tr2388: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64724,7 +65685,7 @@ tr2388: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64734,14 +65695,14 @@ tr2388: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -tr2411: + goto st1529; +tr2446: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -64756,7 +65717,7 @@ tr2411: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64766,14 +65727,14 @@ tr2411: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -tr2423: + goto st1529; +tr2458: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -64788,7 +65749,7 @@ tr2423: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64798,14 +65759,14 @@ tr2423: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -tr2441: + goto st1529; +tr2476: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -64813,14 +65774,14 @@ tr2441: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -64830,17 +65791,17 @@ tr2441: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1511; -st1511: + goto st1529; +st1529: if ( ++p == pe ) - goto _test_eof1511; -case 1511: + goto _test_eof1529; +case 1529: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -64860,26 +65821,26 @@ case 1511: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2254; + goto tr2289; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2253; - goto tr2213; -tr2263: + goto tr2288; + goto tr2248; +tr2298: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 825;goto st330;} } - goto st825; -st825: + { p--; {stack[top++] = 843;goto st336;} } + goto st843; +st843: if ( ++p == pe ) - goto _test_eof825; -case 825: + goto _test_eof843; +case 843: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -64897,46 +65858,46 @@ case 825: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2264; - case 32: goto tr2264; - case 40: goto tr2265; - case 41: goto tr2266; - case 3082: goto tr2267; - case 3131: goto tr2268; - case 3338: goto tr2269; - case 3387: goto tr2269; - case 3594: goto tr2270; - case 3643: goto tr2271; + case 9: goto tr2299; + case 32: goto tr2299; + case 40: goto tr2300; + case 41: goto tr2301; + case 3082: goto tr2302; + case 3131: goto tr2303; + case 3338: goto tr2304; + case 3387: goto tr2304; + case 3594: goto tr2305; + case 3643: goto tr2306; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2272; + goto tr2307; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2272; + goto tr2307; } else - goto tr2272; - goto tr2213; -tr2272: + goto tr2307; + goto tr2248; +tr2307: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 826;goto st330;} } - goto st826; -st826: + { p--; {stack[top++] = 844;goto st336;} } + goto st844; +st844: if ( ++p == pe ) - goto _test_eof826; -case 826: + goto _test_eof844; +case 844: if ( (*p) == 34 ) - goto tr2273; - goto tr2213; -tr2273: + goto tr2308; + goto tr2248; +tr2308: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -64945,23 +65906,23 @@ tr2273: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st827; -tr2313: + goto st845; +tr2348: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -64974,23 +65935,23 @@ tr2313: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st827; -tr2336: + goto st845; +tr2371: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -65003,11 +65964,11 @@ tr2336: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st827; -tr2431: + goto st845; +tr2466: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -65015,11 +65976,11 @@ tr2431: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st827; -tr2377: + goto st845; +tr2412: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65028,32 +65989,32 @@ tr2377: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } - goto st827; -tr2443: + goto st845; +tr2478: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -65064,14 +66025,14 @@ tr2443: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st827; -st827: + goto st845; +st845: if ( ++p == pe ) - goto _test_eof827; -case 827: + goto _test_eof845; +case 845: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65089,105 +66050,105 @@ case 827: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2274; - case 32: goto tr2274; - case 40: goto tr2275; - case 41: goto tr2276; - case 3082: goto tr2277; - case 3131: goto tr2278; - case 3338: goto tr2279; - case 3387: goto tr2279; - case 3594: goto tr2280; - case 3643: goto tr2281; - } - goto tr2213; -tr2227: + case 9: goto tr2309; + case 32: goto tr2309; + case 40: goto tr2310; + case 41: goto tr2311; + case 3082: goto tr2312; + case 3131: goto tr2313; + case 3338: goto tr2314; + case 3387: goto tr2314; + case 3594: goto tr2315; + case 3643: goto tr2316; + } + goto tr2248; +tr2262: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->svcb.param_position = rdata_tail; } - goto st828; -st828: + goto st846; +st846: if ( ++p == pe ) - goto _test_eof828; -case 828: + goto _test_eof846; +case 846: if ( (*p) == 99 ) - goto st829; - goto tr2213; -st829: + goto st847; + goto tr2248; +st847: if ( ++p == pe ) - goto _test_eof829; -case 829: + goto _test_eof847; +case 847: if ( (*p) == 104 ) - goto st830; - goto tr2213; -st830: + goto st848; + goto tr2248; +st848: if ( ++p == pe ) - goto _test_eof830; -case 830: + goto _test_eof848; +case 848: if ( (*p) == 61 ) - goto tr2284; - goto tr2213; -tr2284: + goto tr2319; + goto tr2248; +tr2319: { uint16_t val = htons(5); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st831; -st831: + goto st849; +st849: if ( ++p == pe ) - goto _test_eof831; -case 831: + goto _test_eof849; +case 849: switch( (*p) ) { - case 34: goto st832; - case 43: goto tr2286; + case 34: goto st850; + case 43: goto tr2321; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2286; + goto tr2321; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2286; + goto tr2321; } else - goto tr2286; - goto tr2213; -st832: + goto tr2321; + goto tr2248; +st850: if ( ++p == pe ) - goto _test_eof832; -case 832: + goto _test_eof850; +case 850: if ( (*p) == 43 ) - goto tr2287; + goto tr2322; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2287; + goto tr2322; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2287; + goto tr2322; } else - goto tr2287; - goto tr2213; -tr2293: + goto tr2322; + goto tr2248; +tr2328: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st833; -tr2287: + goto st851; +tr2322: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -65195,26 +66156,26 @@ tr2287: *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st833; -st833: + goto st851; +st851: if ( ++p == pe ) - goto _test_eof833; -case 833: + goto _test_eof851; +case 851: if ( (*p) == 43 ) - goto tr2288; + goto tr2323; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2288; + goto tr2323; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2288; + goto tr2323; } else - goto tr2288; - goto tr2213; -tr2288: + goto tr2323; + goto tr2248; +tr2323: { *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; @@ -65222,28 +66183,28 @@ tr2288: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st834; -st834: + goto st852; +st852: if ( ++p == pe ) - goto _test_eof834; -case 834: + goto _test_eof852; +case 852: switch( (*p) ) { - case 43: goto tr2289; - case 61: goto st837; + case 43: goto tr2324; + case 61: goto st855; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2289; + goto tr2324; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2289; + goto tr2324; } else - goto tr2289; - goto tr2213; -tr2289: + goto tr2324; + goto tr2248; +tr2324: { *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; @@ -65251,74 +66212,74 @@ tr2289: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st835; -st835: + goto st853; +st853: if ( ++p == pe ) - goto _test_eof835; -case 835: + goto _test_eof853; +case 853: switch( (*p) ) { - case 43: goto tr2291; - case 61: goto st836; + case 43: goto tr2326; + case 61: goto st854; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2291; + goto tr2326; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2291; + goto tr2326; } else - goto tr2291; - goto tr2213; -tr2291: + goto tr2326; + goto tr2248; +tr2326: { *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st836; -st836: + goto st854; +st854: if ( ++p == pe ) - goto _test_eof836; -case 836: + goto _test_eof854; +case 854: switch( (*p) ) { - case 34: goto tr2273; - case 43: goto tr2293; + case 34: goto tr2308; + case 43: goto tr2328; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2293; + goto tr2328; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2293; + goto tr2328; } else - goto tr2293; - goto tr2213; -st837: + goto tr2328; + goto tr2248; +st855: if ( ++p == pe ) - goto _test_eof837; -case 837: + goto _test_eof855; +case 855: if ( (*p) == 61 ) - goto st836; - goto tr2213; -tr2299: + goto st854; + goto tr2248; +tr2334: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st838; -tr2286: + goto st856; +tr2321: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -65326,26 +66287,26 @@ tr2286: *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st838; -st838: + goto st856; +st856: if ( ++p == pe ) - goto _test_eof838; -case 838: + goto _test_eof856; +case 856: if ( (*p) == 43 ) - goto tr2294; + goto tr2329; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2294; + goto tr2329; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2294; + goto tr2329; } else - goto tr2294; - goto tr2213; -tr2294: + goto tr2329; + goto tr2248; +tr2329: { *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; @@ -65353,28 +66314,28 @@ tr2294: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st839; -st839: + goto st857; +st857: if ( ++p == pe ) - goto _test_eof839; -case 839: + goto _test_eof857; +case 857: switch( (*p) ) { - case 43: goto tr2295; - case 61: goto st842; + case 43: goto tr2330; + case 61: goto st860; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2295; + goto tr2330; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2295; + goto tr2330; } else - goto tr2295; - goto tr2213; -tr2295: + goto tr2330; + goto tr2248; +tr2330: { *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; @@ -65382,36 +66343,36 @@ tr2295: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st840; -st840: + goto st858; +st858: if ( ++p == pe ) - goto _test_eof840; -case 840: + goto _test_eof858; +case 858: switch( (*p) ) { - case 43: goto tr2297; - case 61: goto st841; + case 43: goto tr2332; + case 61: goto st859; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2297; + goto tr2332; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2297; + goto tr2332; } else - goto tr2297; - goto tr2213; -tr2297: + goto tr2332; + goto tr2248; +tr2332: { *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st841; -st841: + goto st859; +st859: if ( ++p == pe ) - goto _test_eof841; -case 841: + goto _test_eof859; +case 859: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65429,136 +66390,136 @@ case 841: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2264; - case 32: goto tr2264; - case 40: goto tr2265; - case 41: goto tr2266; - case 43: goto tr2299; - case 3082: goto tr2267; - case 3131: goto tr2268; - case 3338: goto tr2269; - case 3387: goto tr2269; - case 3594: goto tr2270; - case 3643: goto tr2271; + case 9: goto tr2299; + case 32: goto tr2299; + case 40: goto tr2300; + case 41: goto tr2301; + case 43: goto tr2334; + case 3082: goto tr2302; + case 3131: goto tr2303; + case 3338: goto tr2304; + case 3387: goto tr2304; + case 3594: goto tr2305; + case 3643: goto tr2306; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr2299; + goto tr2334; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2299; + goto tr2334; } else - goto tr2299; - goto tr2213; -st842: + goto tr2334; + goto tr2248; +st860: if ( ++p == pe ) - goto _test_eof842; -case 842: + goto _test_eof860; +case 860: if ( (*p) == 61 ) - goto st841; - goto tr2213; -tr2228: + goto st859; + goto tr2248; +tr2263: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->svcb.param_position = rdata_tail; } - goto st843; -st843: + goto st861; +st861: if ( ++p == pe ) - goto _test_eof843; -case 843: + goto _test_eof861; +case 861: if ( (*p) == 112 ) - goto st844; - goto tr2213; -st844: + goto st862; + goto tr2248; +st862: if ( ++p == pe ) - goto _test_eof844; -case 844: + goto _test_eof862; +case 862: if ( (*p) == 118 ) - goto st845; - goto tr2213; -st845: + goto st863; + goto tr2248; +st863: if ( ++p == pe ) - goto _test_eof845; -case 845: + goto _test_eof863; +case 863: switch( (*p) ) { - case 52: goto st846; - case 54: goto st857; + case 52: goto st864; + case 54: goto st875; } - goto tr2213; -st846: + goto tr2248; +st864: if ( ++p == pe ) - goto _test_eof846; -case 846: + goto _test_eof864; +case 864: if ( (*p) == 104 ) - goto st847; - goto tr2213; -st847: + goto st865; + goto tr2248; +st865: if ( ++p == pe ) - goto _test_eof847; -case 847: + goto _test_eof865; +case 865: if ( (*p) == 105 ) - goto st848; - goto tr2213; -st848: + goto st866; + goto tr2248; +st866: if ( ++p == pe ) - goto _test_eof848; -case 848: + goto _test_eof866; +case 866: if ( (*p) == 110 ) - goto st849; - goto tr2213; -st849: + goto st867; + goto tr2248; +st867: if ( ++p == pe ) - goto _test_eof849; -case 849: + goto _test_eof867; +case 867: if ( (*p) == 116 ) - goto st850; - goto tr2213; -st850: + goto st868; + goto tr2248; +st868: if ( ++p == pe ) - goto _test_eof850; -case 850: + goto _test_eof868; +case 868: if ( (*p) == 61 ) - goto tr2308; - goto tr2213; -tr2308: + goto tr2343; + goto tr2248; +tr2343: { uint16_t val = htons(4); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st851; -st851: + goto st869; +st869: if ( ++p == pe ) - goto _test_eof851; -case 851: + goto _test_eof869; +case 869: switch( (*p) ) { - case 34: goto st852; - case 46: goto tr2311; + case 34: goto st870; + case 46: goto tr2346; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2311; - goto tr2309; -st852: + goto tr2346; + goto tr2344; +st870: if ( ++p == pe ) - goto _test_eof852; -case 852: + goto _test_eof870; +case 870: if ( (*p) == 46 ) - goto tr2312; + goto tr2347; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2312; - goto tr2309; -tr2312: + goto tr2347; + goto tr2344; +tr2347: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -65569,21 +66530,21 @@ tr2312: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st853; -tr2315: + goto st871; +tr2350: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st853; -tr2316: + goto st871; +tr2351: { s->buffer_length = 0; } @@ -65592,57 +66553,57 @@ tr2316: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st853; -st853: + goto st871; +st871: if ( ++p == pe ) - goto _test_eof853; -case 853: + goto _test_eof871; +case 871: switch( (*p) ) { - case 34: goto tr2313; - case 44: goto tr2314; - case 46: goto tr2315; + case 34: goto tr2348; + case 44: goto tr2349; + case 46: goto tr2350; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2315; - goto tr2309; -tr2314: + goto tr2350; + goto tr2344; +tr2349: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st854; -st854: + goto st872; +st872: if ( ++p == pe ) - goto _test_eof854; -case 854: + goto _test_eof872; +case 872: if ( (*p) == 46 ) - goto tr2316; + goto tr2351; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2316; - goto tr2309; -tr2311: + goto tr2351; + goto tr2344; +tr2346: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -65653,21 +66614,21 @@ tr2311: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st855; -tr2321: + goto st873; +tr2356: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st855; -tr2327: + goto st873; +tr2362: { s->buffer_length = 0; } @@ -65676,14 +66637,14 @@ tr2327: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st855; -st855: + goto st873; +st873: if ( ++p == pe ) - goto _test_eof855; -case 855: + goto _test_eof873; +case 873: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65701,131 +66662,131 @@ case 855: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2317; - case 32: goto tr2317; - case 40: goto tr2318; - case 41: goto tr2319; - case 44: goto tr2320; - case 46: goto tr2321; - case 3082: goto tr2322; - case 3131: goto tr2323; - case 3338: goto tr2324; - case 3387: goto tr2324; - case 3594: goto tr2325; - case 3643: goto tr2326; + case 9: goto tr2352; + case 32: goto tr2352; + case 40: goto tr2353; + case 41: goto tr2354; + case 44: goto tr2355; + case 46: goto tr2356; + case 3082: goto tr2357; + case 3131: goto tr2358; + case 3338: goto tr2359; + case 3387: goto tr2359; + case 3594: goto tr2360; + case 3643: goto tr2361; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2321; - goto tr2309; -tr2320: + goto tr2356; + goto tr2344; +tr2355: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st856; -st856: + goto st874; +st874: if ( ++p == pe ) - goto _test_eof856; -case 856: + goto _test_eof874; +case 874: if ( (*p) == 46 ) - goto tr2327; + goto tr2362; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2327; - goto tr2309; -st857: + goto tr2362; + goto tr2344; +st875: if ( ++p == pe ) - goto _test_eof857; -case 857: + goto _test_eof875; +case 875: if ( (*p) == 104 ) - goto st858; - goto tr2213; -st858: + goto st876; + goto tr2248; +st876: if ( ++p == pe ) - goto _test_eof858; -case 858: + goto _test_eof876; +case 876: if ( (*p) == 105 ) - goto st859; - goto tr2213; -st859: + goto st877; + goto tr2248; +st877: if ( ++p == pe ) - goto _test_eof859; -case 859: + goto _test_eof877; +case 877: if ( (*p) == 110 ) - goto st860; - goto tr2213; -st860: + goto st878; + goto tr2248; +st878: if ( ++p == pe ) - goto _test_eof860; -case 860: + goto _test_eof878; +case 878: if ( (*p) == 116 ) - goto st861; - goto tr2213; -st861: + goto st879; + goto tr2248; +st879: if ( ++p == pe ) - goto _test_eof861; -case 861: + goto _test_eof879; +case 879: if ( (*p) == 61 ) - goto tr2332; - goto tr2213; -tr2332: + goto tr2367; + goto tr2248; +tr2367: { uint16_t val = htons(6); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st862; -st862: + goto st880; +st880: if ( ++p == pe ) - goto _test_eof862; -case 862: + goto _test_eof880; +case 880: switch( (*p) ) { - case 34: goto st863; - case 46: goto tr2334; + case 34: goto st881; + case 46: goto tr2369; } if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2334; + goto tr2369; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2334; + goto tr2369; } else - goto tr2334; - goto tr2309; -st863: + goto tr2369; + goto tr2344; +st881: if ( ++p == pe ) - goto _test_eof863; -case 863: + goto _test_eof881; +case 881: if ( (*p) == 46 ) - goto tr2335; + goto tr2370; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2335; + goto tr2370; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2335; + goto tr2370; } else - goto tr2335; - goto tr2309; -tr2335: + goto tr2370; + goto tr2344; +tr2370: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -65836,21 +66797,21 @@ tr2335: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st864; -tr2338: + goto st882; +tr2373: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st864; -tr2339: + goto st882; +tr2374: { s->buffer_length = 0; } @@ -65859,69 +66820,69 @@ tr2339: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st864; -st864: + goto st882; +st882: if ( ++p == pe ) - goto _test_eof864; -case 864: + goto _test_eof882; +case 882: switch( (*p) ) { - case 34: goto tr2336; - case 44: goto tr2337; - case 46: goto tr2338; + case 34: goto tr2371; + case 44: goto tr2372; + case 46: goto tr2373; } if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2338; + goto tr2373; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2338; + goto tr2373; } else - goto tr2338; - goto tr2309; -tr2337: + goto tr2373; + goto tr2344; +tr2372: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st865; -st865: + goto st883; +st883: if ( ++p == pe ) - goto _test_eof865; -case 865: + goto _test_eof883; +case 883: if ( (*p) == 46 ) - goto tr2339; + goto tr2374; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2339; + goto tr2374; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2339; + goto tr2374; } else - goto tr2339; - goto tr2309; -tr2334: + goto tr2374; + goto tr2344; +tr2369: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -65932,21 +66893,21 @@ tr2334: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st866; -tr2344: + goto st884; +tr2379: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st866; -tr2350: + goto st884; +tr2385: { s->buffer_length = 0; } @@ -65955,14 +66916,14 @@ tr2350: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st866; -st866: + goto st884; +st884: if ( ++p == pe ) - goto _test_eof866; -case 866: + goto _test_eof884; +case 884: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65980,92 +66941,92 @@ case 866: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2340; - case 32: goto tr2340; - case 40: goto tr2341; - case 41: goto tr2342; - case 44: goto tr2343; - case 46: goto tr2344; - case 3082: goto tr2345; - case 3131: goto tr2346; - case 3338: goto tr2347; - case 3387: goto tr2347; - case 3594: goto tr2348; - case 3643: goto tr2349; + case 9: goto tr2375; + case 32: goto tr2375; + case 40: goto tr2376; + case 41: goto tr2377; + case 44: goto tr2378; + case 46: goto tr2379; + case 3082: goto tr2380; + case 3131: goto tr2381; + case 3338: goto tr2382; + case 3387: goto tr2382; + case 3594: goto tr2383; + case 3643: goto tr2384; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 58 ) - goto tr2344; + goto tr2379; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2344; + goto tr2379; } else - goto tr2344; - goto tr2309; -tr2343: + goto tr2379; + goto tr2344; +tr2378: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st867; -st867: + goto st885; +st885: if ( ++p == pe ) - goto _test_eof867; -case 867: + goto _test_eof885; +case 885: if ( (*p) == 46 ) - goto tr2350; + goto tr2385; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2350; + goto tr2385; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2350; + goto tr2385; } else - goto tr2350; - goto tr2309; -tr2229: + goto tr2385; + goto tr2344; +tr2264: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->svcb.param_position = rdata_tail; } - goto st868; -st868: + goto st886; +st886: if ( ++p == pe ) - goto _test_eof868; -case 868: + goto _test_eof886; +case 886: if ( (*p) == 101 ) - goto st869; - goto tr2213; -st869: + goto st887; + goto tr2248; +st887: if ( ++p == pe ) - goto _test_eof869; -case 869: + goto _test_eof887; +case 887: if ( (*p) == 121 ) - goto st870; - goto tr2213; -st870: + goto st888; + goto tr2248; +st888: if ( ++p == pe ) - goto _test_eof870; -case 870: + goto _test_eof888; +case 888: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2354; - goto tr2353; -tr2354: + goto tr2389; + goto tr2388; +tr2389: { s->number64 = 0; } @@ -66080,11 +67041,11 @@ tr2354: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st871; -tr2358: + goto st889; +tr2393: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -66096,14 +67057,14 @@ tr2358: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st871; -st871: + goto st889; +st889: if ( ++p == pe ) - goto _test_eof871; -case 871: + goto _test_eof889; +case 889: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66121,22 +67082,22 @@ case 871: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2355; - case 32: goto tr2355; - case 40: goto tr2356; - case 41: goto tr2357; - case 61: goto tr2359; - case 3082: goto tr2360; - case 3131: goto tr2361; - case 3338: goto tr2362; - case 3387: goto tr2362; - case 3594: goto tr2363; - case 3643: goto tr2364; + case 9: goto tr2390; + case 32: goto tr2390; + case 40: goto tr2391; + case 41: goto tr2392; + case 61: goto tr2394; + case 3082: goto tr2395; + case 3131: goto tr2396; + case 3338: goto tr2397; + case 3387: goto tr2397; + case 3594: goto tr2398; + case 3643: goto tr2399; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2358; - goto tr2353; -tr2359: + goto tr2393; + goto tr2388; +tr2394: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -66144,126 +67105,126 @@ tr2359: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st872; -st872: + goto st890; +st890: if ( ++p == pe ) - goto _test_eof872; -case 872: + goto _test_eof890; +case 890: switch( (*p) ) { - case 32: goto tr2213; - case 59: goto tr2213; + case 32: goto tr2248; + case 59: goto tr2248; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2213; + goto tr2248; } else if ( (*p) >= 9 ) - goto tr2213; - goto tr2262; -tr2230: + goto tr2248; + goto tr2297; +tr2265: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->svcb.param_position = rdata_tail; } - goto st873; -st873: + goto st891; +st891: if ( ++p == pe ) - goto _test_eof873; -case 873: + goto _test_eof891; +case 891: if ( (*p) == 97 ) - goto st874; - goto tr2213; -st874: + goto st892; + goto tr2248; +st892: if ( ++p == pe ) - goto _test_eof874; -case 874: + goto _test_eof892; +case 892: if ( (*p) == 110 ) - goto st875; - goto tr2213; -st875: + goto st893; + goto tr2248; +st893: if ( ++p == pe ) - goto _test_eof875; -case 875: + goto _test_eof893; +case 893: if ( (*p) == 100 ) - goto st876; - goto tr2213; -st876: + goto st894; + goto tr2248; +st894: if ( ++p == pe ) - goto _test_eof876; -case 876: + goto _test_eof894; +case 894: if ( (*p) == 97 ) - goto st877; - goto tr2213; -st877: + goto st895; + goto tr2248; +st895: if ( ++p == pe ) - goto _test_eof877; -case 877: + goto _test_eof895; +case 895: if ( (*p) == 116 ) - goto st878; - goto tr2213; -st878: + goto st896; + goto tr2248; +st896: if ( ++p == pe ) - goto _test_eof878; -case 878: + goto _test_eof896; +case 896: if ( (*p) == 111 ) - goto st879; - goto tr2213; -st879: + goto st897; + goto tr2248; +st897: if ( ++p == pe ) - goto _test_eof879; -case 879: + goto _test_eof897; +case 897: if ( (*p) == 114 ) - goto st880; - goto tr2213; -st880: + goto st898; + goto tr2248; +st898: if ( ++p == pe ) - goto _test_eof880; -case 880: + goto _test_eof898; +case 898: if ( (*p) == 121 ) - goto st881; - goto tr2213; -st881: + goto st899; + goto tr2248; +st899: if ( ++p == pe ) - goto _test_eof881; -case 881: + goto _test_eof899; +case 899: if ( (*p) == 61 ) - goto tr2373; - goto tr2213; -tr2373: + goto tr2408; + goto tr2248; +tr2408: { uint16_t val = htons(0); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st882; -st882: + goto st900; +st900: if ( ++p == pe ) - goto _test_eof882; -case 882: + goto _test_eof900; +case 900: if ( (*p) == 34 ) - goto st883; + goto st901; if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2375; + goto tr2410; } else if ( (*p) >= 65 ) - goto tr2375; - goto tr2213; -st883: + goto tr2410; + goto tr2248; +st901: if ( ++p == pe ) - goto _test_eof883; -case 883: + goto _test_eof901; +case 901: if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2376; + goto tr2411; } else if ( (*p) >= 65 ) - goto tr2376; - goto tr2213; -tr2376: + goto tr2411; + goto tr2248; +tr2411: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } @@ -66273,34 +67234,34 @@ tr2376: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 884;goto st751;} } - goto st884; -tr2379: - { p--; {stack[top++] = 884;goto st751;} } - goto st884; -st884: + { p--; {stack[top++] = 902;goto st769;} } + goto st902; +tr2414: + { p--; {stack[top++] = 902;goto st769;} } + goto st902; +st902: if ( ++p == pe ) - goto _test_eof884; -case 884: + goto _test_eof902; +case 902: switch( (*p) ) { - case 34: goto tr2377; - case 44: goto st885; + case 34: goto tr2412; + case 44: goto st903; } - goto tr2213; -st885: + goto tr2248; +st903: if ( ++p == pe ) - goto _test_eof885; -case 885: + goto _test_eof903; +case 903: if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2379; + goto tr2414; } else if ( (*p) >= 65 ) - goto tr2379; - goto tr2213; -tr2375: + goto tr2414; + goto tr2248; +tr2410: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } @@ -66310,18 +67271,18 @@ tr2375: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 886;goto st751;} } - goto st886; -tr2389: - { p--; {stack[top++] = 886;goto st751;} } - goto st886; -st886: + { p--; {stack[top++] = 904;goto st769;} } + goto st904; +tr2424: + { p--; {stack[top++] = 904;goto st769;} } + goto st904; +st904: if ( ++p == pe ) - goto _test_eof886; -case 886: + goto _test_eof904; +case 904: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66339,140 +67300,140 @@ case 886: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2380; - case 32: goto tr2380; - case 40: goto tr2381; - case 41: goto tr2382; - case 44: goto st887; - case 3082: goto tr2384; - case 3131: goto tr2385; - case 3338: goto tr2386; - case 3387: goto tr2386; - case 3594: goto tr2387; - case 3643: goto tr2388; - } - goto tr2213; -st887: + case 9: goto tr2415; + case 32: goto tr2415; + case 40: goto tr2416; + case 41: goto tr2417; + case 44: goto st905; + case 3082: goto tr2419; + case 3131: goto tr2420; + case 3338: goto tr2421; + case 3387: goto tr2421; + case 3594: goto tr2422; + case 3643: goto tr2423; + } + goto tr2248; +st905: if ( ++p == pe ) - goto _test_eof887; -case 887: + goto _test_eof905; +case 905: if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2389; + goto tr2424; } else if ( (*p) >= 65 ) - goto tr2389; - goto tr2213; -tr2231: + goto tr2424; + goto tr2248; +tr2266: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->svcb.param_position = rdata_tail; } - goto st888; -st888: + goto st906; +st906: if ( ++p == pe ) - goto _test_eof888; -case 888: + goto _test_eof906; +case 906: if ( (*p) == 111 ) - goto st889; - goto tr2213; -st889: + goto st907; + goto tr2248; +st907: if ( ++p == pe ) - goto _test_eof889; -case 889: + goto _test_eof907; +case 907: if ( (*p) == 45 ) - goto st890; - goto tr2213; -st890: + goto st908; + goto tr2248; +st908: if ( ++p == pe ) - goto _test_eof890; -case 890: + goto _test_eof908; +case 908: if ( (*p) == 100 ) - goto st891; - goto tr2213; -st891: + goto st909; + goto tr2248; +st909: if ( ++p == pe ) - goto _test_eof891; -case 891: + goto _test_eof909; +case 909: if ( (*p) == 101 ) - goto st892; - goto tr2213; -st892: + goto st910; + goto tr2248; +st910: if ( ++p == pe ) - goto _test_eof892; -case 892: + goto _test_eof910; +case 910: if ( (*p) == 102 ) - goto st893; - goto tr2213; -st893: + goto st911; + goto tr2248; +st911: if ( ++p == pe ) - goto _test_eof893; -case 893: + goto _test_eof911; +case 911: if ( (*p) == 97 ) - goto st894; - goto tr2213; -st894: + goto st912; + goto tr2248; +st912: if ( ++p == pe ) - goto _test_eof894; -case 894: + goto _test_eof912; +case 912: if ( (*p) == 117 ) - goto st895; - goto tr2213; -st895: + goto st913; + goto tr2248; +st913: if ( ++p == pe ) - goto _test_eof895; -case 895: + goto _test_eof913; +case 913: if ( (*p) == 108 ) - goto st896; - goto tr2213; -st896: + goto st914; + goto tr2248; +st914: if ( ++p == pe ) - goto _test_eof896; -case 896: + goto _test_eof914; +case 914: if ( (*p) == 116 ) - goto st897; - goto tr2213; -st897: + goto st915; + goto tr2248; +st915: if ( ++p == pe ) - goto _test_eof897; -case 897: + goto _test_eof915; +case 915: if ( (*p) == 45 ) - goto st898; - goto tr2213; -st898: + goto st916; + goto tr2248; +st916: if ( ++p == pe ) - goto _test_eof898; -case 898: + goto _test_eof916; +case 916: if ( (*p) == 97 ) - goto st899; - goto tr2213; -st899: + goto st917; + goto tr2248; +st917: if ( ++p == pe ) - goto _test_eof899; -case 899: + goto _test_eof917; +case 917: if ( (*p) == 108 ) - goto st900; - goto tr2213; -st900: + goto st918; + goto tr2248; +st918: if ( ++p == pe ) - goto _test_eof900; -case 900: + goto _test_eof918; +case 918: if ( (*p) == 112 ) - goto st901; - goto tr2213; -st901: + goto st919; + goto tr2248; +st919: if ( ++p == pe ) - goto _test_eof901; -case 901: + goto _test_eof919; +case 919: if ( (*p) == 110 ) - goto st902; - goto tr2213; -st902: + goto st920; + goto tr2248; +st920: if ( ++p == pe ) - goto _test_eof902; -case 902: + goto _test_eof920; +case 920: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66490,59 +67451,59 @@ case 902: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2404; - case 32: goto tr2404; - case 40: goto tr2405; - case 41: goto tr2406; - case 3082: goto tr2407; - case 3131: goto tr2408; - case 3338: goto tr2409; - case 3387: goto tr2409; - case 3594: goto tr2410; - case 3643: goto tr2411; - } - goto tr2213; -tr2232: + case 9: goto tr2439; + case 32: goto tr2439; + case 40: goto tr2440; + case 41: goto tr2441; + case 3082: goto tr2442; + case 3131: goto tr2443; + case 3338: goto tr2444; + case 3387: goto tr2444; + case 3594: goto tr2445; + case 3643: goto tr2446; + } + goto tr2248; +tr2267: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->svcb.param_position = rdata_tail; } - goto st903; -st903: + goto st921; +st921: if ( ++p == pe ) - goto _test_eof903; -case 903: + goto _test_eof921; +case 921: if ( (*p) == 104 ) - goto st904; - goto tr2213; -st904: + goto st922; + goto tr2248; +st922: if ( ++p == pe ) - goto _test_eof904; -case 904: + goto _test_eof922; +case 922: if ( (*p) == 116 ) - goto st905; - goto tr2213; -st905: + goto st923; + goto tr2248; +st923: if ( ++p == pe ) - goto _test_eof905; -case 905: + goto _test_eof923; +case 923: if ( (*p) == 116 ) - goto st906; - goto tr2213; -st906: + goto st924; + goto tr2248; +st924: if ( ++p == pe ) - goto _test_eof906; -case 906: + goto _test_eof924; +case 924: if ( (*p) == 112 ) - goto st907; - goto tr2213; -st907: + goto st925; + goto tr2248; +st925: if ( ++p == pe ) - goto _test_eof907; -case 907: + goto _test_eof925; +case 925: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66560,79 +67521,79 @@ case 907: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2416; - case 32: goto tr2416; - case 40: goto tr2417; - case 41: goto tr2418; - case 3082: goto tr2419; - case 3131: goto tr2420; - case 3338: goto tr2421; - case 3387: goto tr2421; - case 3594: goto tr2422; - case 3643: goto tr2423; - } - goto tr2213; -tr2233: + case 9: goto tr2451; + case 32: goto tr2451; + case 40: goto tr2452; + case 41: goto tr2453; + case 3082: goto tr2454; + case 3131: goto tr2455; + case 3338: goto tr2456; + case 3387: goto tr2456; + case 3594: goto tr2457; + case 3643: goto tr2458; + } + goto tr2248; +tr2268: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } s->svcb.param_position = rdata_tail; } - goto st908; -st908: + goto st926; +st926: if ( ++p == pe ) - goto _test_eof908; -case 908: + goto _test_eof926; +case 926: if ( (*p) == 111 ) - goto st909; - goto tr2213; -st909: + goto st927; + goto tr2248; +st927: if ( ++p == pe ) - goto _test_eof909; -case 909: + goto _test_eof927; +case 927: if ( (*p) == 114 ) - goto st910; - goto tr2213; -st910: + goto st928; + goto tr2248; +st928: if ( ++p == pe ) - goto _test_eof910; -case 910: + goto _test_eof928; +case 928: if ( (*p) == 116 ) - goto st911; - goto tr2213; -st911: + goto st929; + goto tr2248; +st929: if ( ++p == pe ) - goto _test_eof911; -case 911: + goto _test_eof929; +case 929: if ( (*p) == 61 ) - goto tr2427; - goto tr2213; -tr2427: + goto tr2462; + goto tr2248; +tr2462: { uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st912; -st912: + goto st930; +st930: if ( ++p == pe ) - goto _test_eof912; -case 912: + goto _test_eof930; +case 930: if ( (*p) == 34 ) - goto st913; + goto st931; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2429; - goto tr2353; -st913: + goto tr2464; + goto tr2388; +st931: if ( ++p == pe ) - goto _test_eof913; -case 913: + goto _test_eof931; +case 931: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2430; - goto tr2353; -tr2432: + goto tr2465; + goto tr2388; +tr2467: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -66644,11 +67605,11 @@ tr2432: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st914; -tr2430: + goto st932; +tr2465: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -66657,7 +67618,7 @@ tr2430: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -66674,20 +67635,20 @@ tr2430: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st914; -st914: + goto st932; +st932: if ( ++p == pe ) - goto _test_eof914; -case 914: + goto _test_eof932; +case 932: if ( (*p) == 34 ) - goto tr2431; + goto tr2466; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2432; - goto tr2353; -tr2436: + goto tr2467; + goto tr2388; +tr2471: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -66699,11 +67660,11 @@ tr2436: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st915; -tr2429: + goto st933; +tr2464: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -66712,7 +67673,7 @@ tr2429: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -66729,14 +67690,14 @@ tr2429: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st915; -st915: + goto st933; +st933: if ( ++p == pe ) - goto _test_eof915; -case 915: + goto _test_eof933; +case 933: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66754,21 +67715,21 @@ case 915: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2433; - case 32: goto tr2433; - case 40: goto tr2434; - case 41: goto tr2435; - case 3082: goto tr2437; - case 3131: goto tr2438; - case 3338: goto tr2439; - case 3387: goto tr2439; - case 3594: goto tr2440; - case 3643: goto tr2441; + case 9: goto tr2468; + case 32: goto tr2468; + case 40: goto tr2469; + case 41: goto tr2470; + case 3082: goto tr2472; + case 3131: goto tr2473; + case 3338: goto tr2474; + case 3387: goto tr2474; + case 3594: goto tr2475; + case 3643: goto tr2476; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2436; - goto tr2353; -tr2244: + goto tr2471; + goto tr2388; +tr2279: { s->comma_list = true; s->pending_backslash = false; @@ -66779,7 +67740,7 @@ tr2244: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -66787,15 +67748,15 @@ tr2244: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 916;goto st330;} } - goto st916; -st916: + { p--; {stack[top++] = 934;goto st336;} } + goto st934; +st934: if ( ++p == pe ) - goto _test_eof916; -case 916: + goto _test_eof934; +case 934: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66813,27 +67774,27 @@ case 916: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2245; - case 32: goto tr2245; - case 40: goto tr2246; - case 41: goto tr2247; - case 3082: goto tr2248; - case 3131: goto tr2249; - case 3338: goto tr2250; - case 3387: goto tr2250; - case 3594: goto tr2251; - case 3643: goto tr2252; + case 9: goto tr2280; + case 32: goto tr2280; + case 40: goto tr2281; + case 41: goto tr2282; + case 3082: goto tr2283; + case 3131: goto tr2284; + case 3338: goto tr2285; + case 3387: goto tr2285; + case 3594: goto tr2286; + case 3643: goto tr2287; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2442; + goto tr2477; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2442; + goto tr2477; } else - goto tr2442; - goto tr2213; -tr2442: + goto tr2477; + goto tr2248; +tr2477: { s->comma_list = true; s->pending_backslash = false; @@ -66844,7 +67805,7 @@ tr2442: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -66852,38 +67813,38 @@ tr2442: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 917;goto st330;} } - goto st917; -st917: + { p--; {stack[top++] = 935;goto st336;} } + goto st935; +st935: if ( ++p == pe ) - goto _test_eof917; -case 917: + goto _test_eof935; +case 935: if ( (*p) == 34 ) - goto tr2443; - goto tr2213; -st918: + goto tr2478; + goto tr2248; +st936: if ( ++p == pe ) - goto _test_eof918; -case 918: + goto _test_eof936; +case 936: switch( (*p) ) { - case 68: goto st920; - case 69: goto st935; - case 73: goto st974; - case 80: goto st982; - case 82: goto st995; - case 100: goto st920; - case 101: goto st935; - case 105: goto st974; - case 112: goto st982; - case 114: goto st995; + case 68: goto st938; + case 69: goto st953; + case 73: goto st992; + case 80: goto st1000; + case 82: goto st1013; + case 100: goto st938; + case 101: goto st953; + case 105: goto st992; + case 112: goto st1000; + case 114: goto st1013; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2445; - goto tr2444; -tr2445: + goto tr2480; + goto tr2479; +tr2480: { s->number64 = 0; } @@ -66898,11 +67859,11 @@ tr2445: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st919; -tr2452: + goto st937; +tr2487: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -66914,400 +67875,232 @@ tr2452: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st919; -st919: + goto st937; +st937: if ( ++p == pe ) - goto _test_eof919; -case 919: + goto _test_eof937; +case 937: switch( (*p) ) { - case 32: goto tr2451; - case 59: goto tr2451; + case 32: goto tr2486; + case 59: goto tr2486; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2451; + goto tr2486; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2452; + goto tr2487; } else - goto tr2451; - goto tr2444; -tr2451: + goto tr2486; + goto tr2479; +tr2486: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2455: + goto st1530; +tr2490: { *(rdata_tail++) = 2; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2457: + goto st1530; +tr2492: { *(rdata_tail++) = 3; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2469: + goto st1530; +tr2504: { *(rdata_tail++) = 6; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2479: + goto st1530; +tr2514: { *(rdata_tail++) = 12; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2493: + goto st1530; +tr2528: { *(rdata_tail++) = 13; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2502: + goto st1530; +tr2537: { *(rdata_tail++) = 14; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2509: + goto st1530; +tr2544: { *(rdata_tail++) = 15; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2512: + goto st1530; +tr2547: { *(rdata_tail++) = 16; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2520: + goto st1530; +tr2555: { *(rdata_tail++) = 252; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2531: + goto st1530; +tr2566: { *(rdata_tail++) = 253; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2534: + goto st1530; +tr2569: { *(rdata_tail++) = 254; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2541: + goto st1530; +tr2576: { *(rdata_tail++) = 1; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2547: + goto st1530; +tr2582: { *(rdata_tail++) = 5; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2559: + goto st1530; +tr2594: { *(rdata_tail++) = 7; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2562: + goto st1530; +tr2597: { *(rdata_tail++) = 8; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -tr2565: + goto st1530; +tr2600: { *(rdata_tail++) = 10; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -st1512: + goto st1530; +st1530: if ( ++p == pe ) - goto _test_eof1512; -case 1512: + goto _test_eof1530; +case 1530: goto st0; -st920: - if ( ++p == pe ) - goto _test_eof920; -case 920: - switch( (*p) ) { - case 72: goto st921; - case 83: goto st922; - case 104: goto st921; - case 115: goto st922; - } - goto tr2444; -st921: - if ( ++p == pe ) - goto _test_eof921; -case 921: - switch( (*p) ) { - case 32: goto tr2455; - case 59: goto tr2455; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2455; - } else if ( (*p) >= 9 ) - goto tr2455; - goto tr2444; -st922: - if ( ++p == pe ) - goto _test_eof922; -case 922: - switch( (*p) ) { - case 65: goto st923; - case 97: goto st923; - } - goto tr2444; -st923: - if ( ++p == pe ) - goto _test_eof923; -case 923: - switch( (*p) ) { - case 32: goto tr2457; - case 45: goto st924; - case 59: goto tr2457; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2457; - } else if ( (*p) >= 9 ) - goto tr2457; - goto tr2444; -st924: - if ( ++p == pe ) - goto _test_eof924; -case 924: - switch( (*p) ) { - case 78: goto st925; - case 110: goto st925; - } - goto tr2444; -st925: - if ( ++p == pe ) - goto _test_eof925; -case 925: - switch( (*p) ) { - case 83: goto st926; - case 115: goto st926; - } - goto tr2444; -st926: - if ( ++p == pe ) - goto _test_eof926; -case 926: - switch( (*p) ) { - case 69: goto st927; - case 101: goto st927; - } - goto tr2444; -st927: - if ( ++p == pe ) - goto _test_eof927; -case 927: - switch( (*p) ) { - case 67: goto st928; - case 99: goto st928; - } - goto tr2444; -st928: - if ( ++p == pe ) - goto _test_eof928; -case 928: - if ( (*p) == 51 ) - goto st929; - goto tr2444; -st929: - if ( ++p == pe ) - goto _test_eof929; -case 929: - if ( (*p) == 45 ) - goto st930; - goto tr2444; -st930: - if ( ++p == pe ) - goto _test_eof930; -case 930: - switch( (*p) ) { - case 83: goto st931; - case 115: goto st931; - } - goto tr2444; -st931: - if ( ++p == pe ) - goto _test_eof931; -case 931: - switch( (*p) ) { - case 72: goto st932; - case 104: goto st932; - } - goto tr2444; -st932: - if ( ++p == pe ) - goto _test_eof932; -case 932: - switch( (*p) ) { - case 65: goto st933; - case 97: goto st933; - } - goto tr2444; -st933: - if ( ++p == pe ) - goto _test_eof933; -case 933: - if ( (*p) == 49 ) - goto st934; - goto tr2444; -st934: - if ( ++p == pe ) - goto _test_eof934; -case 934: - switch( (*p) ) { - case 32: goto tr2469; - case 59: goto tr2469; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2469; - } else if ( (*p) >= 9 ) - goto tr2469; - goto tr2444; -st935: - if ( ++p == pe ) - goto _test_eof935; -case 935: - switch( (*p) ) { - case 67: goto st936; - case 68: goto st965; - case 99: goto st936; - case 100: goto st965; - } - goto tr2444; -st936: - if ( ++p == pe ) - goto _test_eof936; -case 936: - switch( (*p) ) { - case 67: goto st937; - case 68: goto st943; - case 99: goto st937; - case 100: goto st943; - } - goto tr2444; -st937: - if ( ++p == pe ) - goto _test_eof937; -case 937: - if ( (*p) == 45 ) - goto st938; - goto tr2444; st938: if ( ++p == pe ) goto _test_eof938; case 938: switch( (*p) ) { - case 71: goto st939; - case 103: goto st939; + case 72: goto st939; + case 83: goto st940; + case 104: goto st939; + case 115: goto st940; } - goto tr2444; + goto tr2479; st939: if ( ++p == pe ) goto _test_eof939; case 939: switch( (*p) ) { - case 79: goto st940; - case 111: goto st940; + case 32: goto tr2490; + case 59: goto tr2490; } - goto tr2444; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2490; + } else if ( (*p) >= 9 ) + goto tr2490; + goto tr2479; st940: if ( ++p == pe ) goto _test_eof940; case 940: switch( (*p) ) { - case 83: goto st941; - case 115: goto st941; + case 65: goto st941; + case 97: goto st941; } - goto tr2444; + goto tr2479; st941: if ( ++p == pe ) goto _test_eof941; case 941: switch( (*p) ) { - case 84: goto st942; - case 116: goto st942; + case 32: goto tr2492; + case 45: goto st942; + case 59: goto tr2492; } - goto tr2444; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2492; + } else if ( (*p) >= 9 ) + goto tr2492; + goto tr2479; st942: if ( ++p == pe ) goto _test_eof942; case 942: switch( (*p) ) { - case 32: goto tr2479; - case 59: goto tr2479; + case 78: goto st943; + case 110: goto st943; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2479; - } else if ( (*p) >= 9 ) - goto tr2479; - goto tr2444; + goto tr2479; st943: if ( ++p == pe ) goto _test_eof943; @@ -67316,124 +68109,134 @@ case 943: case 83: goto st944; case 115: goto st944; } - goto tr2444; + goto tr2479; st944: if ( ++p == pe ) goto _test_eof944; case 944: switch( (*p) ) { - case 65: goto st945; - case 97: goto st945; + case 69: goto st945; + case 101: goto st945; } - goto tr2444; + goto tr2479; st945: if ( ++p == pe ) goto _test_eof945; case 945: switch( (*p) ) { - case 80: goto st946; - case 112: goto st946; + case 67: goto st946; + case 99: goto st946; } - goto tr2444; + goto tr2479; st946: if ( ++p == pe ) goto _test_eof946; case 946: - switch( (*p) ) { - case 50: goto st947; - case 51: goto st956; - } - goto tr2444; + if ( (*p) == 51 ) + goto st947; + goto tr2479; st947: if ( ++p == pe ) goto _test_eof947; case 947: - if ( (*p) == 53 ) + if ( (*p) == 45 ) goto st948; - goto tr2444; + goto tr2479; st948: if ( ++p == pe ) goto _test_eof948; case 948: - if ( (*p) == 54 ) - goto st949; - goto tr2444; + switch( (*p) ) { + case 83: goto st949; + case 115: goto st949; + } + goto tr2479; st949: if ( ++p == pe ) goto _test_eof949; case 949: switch( (*p) ) { - case 83: goto st950; - case 115: goto st950; + case 72: goto st950; + case 104: goto st950; } - goto tr2444; + goto tr2479; st950: if ( ++p == pe ) goto _test_eof950; case 950: switch( (*p) ) { - case 72: goto st951; - case 104: goto st951; + case 65: goto st951; + case 97: goto st951; } - goto tr2444; + goto tr2479; st951: if ( ++p == pe ) goto _test_eof951; case 951: - switch( (*p) ) { - case 65: goto st952; - case 97: goto st952; - } - goto tr2444; + if ( (*p) == 49 ) + goto st952; + goto tr2479; st952: if ( ++p == pe ) goto _test_eof952; case 952: - if ( (*p) == 50 ) - goto st953; - goto tr2444; + switch( (*p) ) { + case 32: goto tr2504; + case 59: goto tr2504; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2504; + } else if ( (*p) >= 9 ) + goto tr2504; + goto tr2479; st953: if ( ++p == pe ) goto _test_eof953; case 953: - if ( (*p) == 53 ) - goto st954; - goto tr2444; + switch( (*p) ) { + case 67: goto st954; + case 68: goto st983; + case 99: goto st954; + case 100: goto st983; + } + goto tr2479; st954: if ( ++p == pe ) goto _test_eof954; case 954: - if ( (*p) == 54 ) - goto st955; - goto tr2444; + switch( (*p) ) { + case 67: goto st955; + case 68: goto st961; + case 99: goto st955; + case 100: goto st961; + } + goto tr2479; st955: if ( ++p == pe ) goto _test_eof955; case 955: - switch( (*p) ) { - case 32: goto tr2493; - case 59: goto tr2493; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2493; - } else if ( (*p) >= 9 ) - goto tr2493; - goto tr2444; + if ( (*p) == 45 ) + goto st956; + goto tr2479; st956: if ( ++p == pe ) goto _test_eof956; case 956: - if ( (*p) == 56 ) - goto st957; - goto tr2444; + switch( (*p) ) { + case 71: goto st957; + case 103: goto st957; + } + goto tr2479; st957: if ( ++p == pe ) goto _test_eof957; case 957: - if ( (*p) == 52 ) - goto st958; - goto tr2444; + switch( (*p) ) { + case 79: goto st958; + case 111: goto st958; + } + goto tr2479; st958: if ( ++p == pe ) goto _test_eof958; @@ -67442,322 +68245,306 @@ case 958: case 83: goto st959; case 115: goto st959; } - goto tr2444; + goto tr2479; st959: if ( ++p == pe ) goto _test_eof959; case 959: switch( (*p) ) { - case 72: goto st960; - case 104: goto st960; + case 84: goto st960; + case 116: goto st960; } - goto tr2444; + goto tr2479; st960: if ( ++p == pe ) goto _test_eof960; case 960: switch( (*p) ) { - case 65: goto st961; - case 97: goto st961; + case 32: goto tr2514; + case 59: goto tr2514; } - goto tr2444; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2514; + } else if ( (*p) >= 9 ) + goto tr2514; + goto tr2479; st961: if ( ++p == pe ) goto _test_eof961; case 961: - if ( (*p) == 51 ) - goto st962; - goto tr2444; + switch( (*p) ) { + case 83: goto st962; + case 115: goto st962; + } + goto tr2479; st962: if ( ++p == pe ) goto _test_eof962; case 962: - if ( (*p) == 56 ) - goto st963; - goto tr2444; + switch( (*p) ) { + case 65: goto st963; + case 97: goto st963; + } + goto tr2479; st963: if ( ++p == pe ) goto _test_eof963; case 963: - if ( (*p) == 52 ) - goto st964; - goto tr2444; + switch( (*p) ) { + case 80: goto st964; + case 112: goto st964; + } + goto tr2479; st964: if ( ++p == pe ) goto _test_eof964; case 964: switch( (*p) ) { - case 32: goto tr2502; - case 59: goto tr2502; + case 50: goto st965; + case 51: goto st974; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2502; - } else if ( (*p) >= 9 ) - goto tr2502; - goto tr2444; + goto tr2479; st965: if ( ++p == pe ) goto _test_eof965; case 965: - switch( (*p) ) { - case 50: goto st966; - case 52: goto st971; - } - goto tr2444; + if ( (*p) == 53 ) + goto st966; + goto tr2479; st966: if ( ++p == pe ) goto _test_eof966; case 966: - if ( (*p) == 53 ) + if ( (*p) == 54 ) goto st967; - goto tr2444; + goto tr2479; st967: if ( ++p == pe ) goto _test_eof967; case 967: - if ( (*p) == 53 ) - goto st968; - goto tr2444; + switch( (*p) ) { + case 83: goto st968; + case 115: goto st968; + } + goto tr2479; st968: if ( ++p == pe ) goto _test_eof968; case 968: - if ( (*p) == 49 ) - goto st969; - goto tr2444; + switch( (*p) ) { + case 72: goto st969; + case 104: goto st969; + } + goto tr2479; st969: if ( ++p == pe ) goto _test_eof969; case 969: - if ( (*p) == 57 ) - goto st970; - goto tr2444; + switch( (*p) ) { + case 65: goto st970; + case 97: goto st970; + } + goto tr2479; st970: if ( ++p == pe ) goto _test_eof970; case 970: - switch( (*p) ) { - case 32: goto tr2509; - case 59: goto tr2509; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2509; - } else if ( (*p) >= 9 ) - goto tr2509; - goto tr2444; + if ( (*p) == 50 ) + goto st971; + goto tr2479; st971: if ( ++p == pe ) goto _test_eof971; case 971: - if ( (*p) == 52 ) + if ( (*p) == 53 ) goto st972; - goto tr2444; + goto tr2479; st972: if ( ++p == pe ) goto _test_eof972; case 972: - if ( (*p) == 56 ) + if ( (*p) == 54 ) goto st973; - goto tr2444; + goto tr2479; st973: if ( ++p == pe ) goto _test_eof973; case 973: switch( (*p) ) { - case 32: goto tr2512; - case 59: goto tr2512; + case 32: goto tr2528; + case 59: goto tr2528; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2512; + goto tr2528; } else if ( (*p) >= 9 ) - goto tr2512; - goto tr2444; + goto tr2528; + goto tr2479; st974: if ( ++p == pe ) goto _test_eof974; case 974: - switch( (*p) ) { - case 78: goto st975; - case 110: goto st975; - } - goto tr2444; + if ( (*p) == 56 ) + goto st975; + goto tr2479; st975: if ( ++p == pe ) goto _test_eof975; case 975: - switch( (*p) ) { - case 68: goto st976; - case 100: goto st976; - } - goto tr2444; + if ( (*p) == 52 ) + goto st976; + goto tr2479; st976: if ( ++p == pe ) goto _test_eof976; case 976: switch( (*p) ) { - case 73: goto st977; - case 105: goto st977; + case 83: goto st977; + case 115: goto st977; } - goto tr2444; + goto tr2479; st977: if ( ++p == pe ) goto _test_eof977; case 977: switch( (*p) ) { - case 82: goto st978; - case 114: goto st978; + case 72: goto st978; + case 104: goto st978; } - goto tr2444; + goto tr2479; st978: if ( ++p == pe ) goto _test_eof978; case 978: switch( (*p) ) { - case 69: goto st979; - case 101: goto st979; + case 65: goto st979; + case 97: goto st979; } - goto tr2444; + goto tr2479; st979: if ( ++p == pe ) goto _test_eof979; case 979: - switch( (*p) ) { - case 67: goto st980; - case 99: goto st980; - } - goto tr2444; + if ( (*p) == 51 ) + goto st980; + goto tr2479; st980: if ( ++p == pe ) goto _test_eof980; case 980: - switch( (*p) ) { - case 84: goto st981; - case 116: goto st981; - } - goto tr2444; + if ( (*p) == 56 ) + goto st981; + goto tr2479; st981: if ( ++p == pe ) goto _test_eof981; case 981: - switch( (*p) ) { - case 32: goto tr2520; - case 59: goto tr2520; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2520; - } else if ( (*p) >= 9 ) - goto tr2520; - goto tr2444; + if ( (*p) == 52 ) + goto st982; + goto tr2479; st982: if ( ++p == pe ) goto _test_eof982; case 982: switch( (*p) ) { - case 82: goto st983; - case 114: goto st983; + case 32: goto tr2537; + case 59: goto tr2537; } - goto tr2444; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2537; + } else if ( (*p) >= 9 ) + goto tr2537; + goto tr2479; st983: if ( ++p == pe ) goto _test_eof983; case 983: switch( (*p) ) { - case 73: goto st984; - case 105: goto st984; + case 50: goto st984; + case 52: goto st989; } - goto tr2444; + goto tr2479; st984: if ( ++p == pe ) goto _test_eof984; case 984: - switch( (*p) ) { - case 86: goto st985; - case 118: goto st985; - } - goto tr2444; + if ( (*p) == 53 ) + goto st985; + goto tr2479; st985: if ( ++p == pe ) goto _test_eof985; case 985: - switch( (*p) ) { - case 65: goto st986; - case 97: goto st986; - } - goto tr2444; + if ( (*p) == 53 ) + goto st986; + goto tr2479; st986: if ( ++p == pe ) goto _test_eof986; case 986: - switch( (*p) ) { - case 84: goto st987; - case 116: goto st987; - } - goto tr2444; + if ( (*p) == 49 ) + goto st987; + goto tr2479; st987: if ( ++p == pe ) goto _test_eof987; case 987: - switch( (*p) ) { - case 69: goto st988; - case 101: goto st988; - } - goto tr2444; + if ( (*p) == 57 ) + goto st988; + goto tr2479; st988: if ( ++p == pe ) goto _test_eof988; case 988: switch( (*p) ) { - case 68: goto st989; - case 79: goto st992; - case 100: goto st989; - case 111: goto st992; + case 32: goto tr2544; + case 59: goto tr2544; } - goto tr2444; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2544; + } else if ( (*p) >= 9 ) + goto tr2544; + goto tr2479; st989: if ( ++p == pe ) goto _test_eof989; case 989: - switch( (*p) ) { - case 78: goto st990; - case 110: goto st990; - } - goto tr2444; + if ( (*p) == 52 ) + goto st990; + goto tr2479; st990: if ( ++p == pe ) goto _test_eof990; case 990: - switch( (*p) ) { - case 83: goto st991; - case 115: goto st991; - } - goto tr2444; + if ( (*p) == 56 ) + goto st991; + goto tr2479; st991: if ( ++p == pe ) goto _test_eof991; case 991: switch( (*p) ) { - case 32: goto tr2531; - case 59: goto tr2531; + case 32: goto tr2547; + case 59: goto tr2547; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2531; + goto tr2547; } else if ( (*p) >= 9 ) - goto tr2531; - goto tr2444; + goto tr2547; + goto tr2479; st992: if ( ++p == pe ) goto _test_eof992; case 992: switch( (*p) ) { - case 73: goto st993; - case 105: goto st993; + case 78: goto st993; + case 110: goto st993; } - goto tr2444; + goto tr2479; st993: if ( ++p == pe ) goto _test_eof993; @@ -67766,299 +68553,473 @@ case 993: case 68: goto st994; case 100: goto st994; } - goto tr2444; + goto tr2479; st994: if ( ++p == pe ) goto _test_eof994; case 994: switch( (*p) ) { - case 32: goto tr2534; - case 59: goto tr2534; + case 73: goto st995; + case 105: goto st995; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2534; - } else if ( (*p) >= 9 ) - goto tr2534; - goto tr2444; + goto tr2479; st995: if ( ++p == pe ) goto _test_eof995; case 995: switch( (*p) ) { - case 83: goto st996; - case 115: goto st996; + case 82: goto st996; + case 114: goto st996; } - goto tr2444; + goto tr2479; st996: if ( ++p == pe ) goto _test_eof996; case 996: switch( (*p) ) { - case 65: goto st997; - case 97: goto st997; + case 69: goto st997; + case 101: goto st997; } - goto tr2444; + goto tr2479; st997: if ( ++p == pe ) goto _test_eof997; case 997: switch( (*p) ) { - case 77: goto st998; - case 83: goto st1001; - case 109: goto st998; - case 115: goto st1001; + case 67: goto st998; + case 99: goto st998; } - goto tr2444; + goto tr2479; st998: if ( ++p == pe ) goto _test_eof998; case 998: switch( (*p) ) { - case 68: goto st999; - case 100: goto st999; + case 84: goto st999; + case 116: goto st999; } - goto tr2444; + goto tr2479; st999: if ( ++p == pe ) goto _test_eof999; case 999: - if ( (*p) == 53 ) - goto st1000; - goto tr2444; + switch( (*p) ) { + case 32: goto tr2555; + case 59: goto tr2555; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2555; + } else if ( (*p) >= 9 ) + goto tr2555; + goto tr2479; st1000: if ( ++p == pe ) goto _test_eof1000; case 1000: switch( (*p) ) { - case 32: goto tr2541; - case 59: goto tr2541; + case 82: goto st1001; + case 114: goto st1001; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2541; - } else if ( (*p) >= 9 ) - goto tr2541; - goto tr2444; + goto tr2479; st1001: if ( ++p == pe ) goto _test_eof1001; case 1001: switch( (*p) ) { - case 72: goto st1002; - case 104: goto st1002; + case 73: goto st1002; + case 105: goto st1002; } - goto tr2444; + goto tr2479; st1002: if ( ++p == pe ) goto _test_eof1002; case 1002: switch( (*p) ) { - case 65: goto st1003; - case 97: goto st1003; + case 86: goto st1003; + case 118: goto st1003; } - goto tr2444; + goto tr2479; st1003: if ( ++p == pe ) goto _test_eof1003; case 1003: switch( (*p) ) { - case 49: goto st1004; - case 50: goto st1016; - case 53: goto st1019; + case 65: goto st1004; + case 97: goto st1004; } - goto tr2444; + goto tr2479; st1004: if ( ++p == pe ) goto _test_eof1004; case 1004: switch( (*p) ) { - case 32: goto tr2547; - case 45: goto st1005; - case 59: goto tr2547; + case 84: goto st1005; + case 116: goto st1005; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2547; - } else if ( (*p) >= 9 ) - goto tr2547; - goto tr2444; + goto tr2479; st1005: if ( ++p == pe ) goto _test_eof1005; case 1005: switch( (*p) ) { - case 78: goto st1006; - case 110: goto st1006; + case 69: goto st1006; + case 101: goto st1006; } - goto tr2444; + goto tr2479; st1006: if ( ++p == pe ) goto _test_eof1006; case 1006: switch( (*p) ) { - case 83: goto st1007; - case 115: goto st1007; + case 68: goto st1007; + case 79: goto st1010; + case 100: goto st1007; + case 111: goto st1010; } - goto tr2444; + goto tr2479; st1007: if ( ++p == pe ) goto _test_eof1007; case 1007: switch( (*p) ) { - case 69: goto st1008; - case 101: goto st1008; + case 78: goto st1008; + case 110: goto st1008; } - goto tr2444; + goto tr2479; st1008: if ( ++p == pe ) goto _test_eof1008; case 1008: switch( (*p) ) { - case 67: goto st1009; - case 99: goto st1009; + case 83: goto st1009; + case 115: goto st1009; } - goto tr2444; + goto tr2479; st1009: if ( ++p == pe ) goto _test_eof1009; case 1009: - if ( (*p) == 51 ) - goto st1010; - goto tr2444; + switch( (*p) ) { + case 32: goto tr2566; + case 59: goto tr2566; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2566; + } else if ( (*p) >= 9 ) + goto tr2566; + goto tr2479; st1010: if ( ++p == pe ) goto _test_eof1010; case 1010: - if ( (*p) == 45 ) - goto st1011; - goto tr2444; + switch( (*p) ) { + case 73: goto st1011; + case 105: goto st1011; + } + goto tr2479; st1011: if ( ++p == pe ) goto _test_eof1011; case 1011: switch( (*p) ) { - case 83: goto st1012; - case 115: goto st1012; + case 68: goto st1012; + case 100: goto st1012; } - goto tr2444; + goto tr2479; st1012: if ( ++p == pe ) goto _test_eof1012; case 1012: switch( (*p) ) { - case 72: goto st1013; - case 104: goto st1013; + case 32: goto tr2569; + case 59: goto tr2569; } - goto tr2444; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2569; + } else if ( (*p) >= 9 ) + goto tr2569; + goto tr2479; st1013: if ( ++p == pe ) goto _test_eof1013; case 1013: switch( (*p) ) { - case 65: goto st1014; - case 97: goto st1014; + case 83: goto st1014; + case 115: goto st1014; } - goto tr2444; + goto tr2479; st1014: if ( ++p == pe ) goto _test_eof1014; case 1014: - if ( (*p) == 49 ) - goto st1015; - goto tr2444; + switch( (*p) ) { + case 65: goto st1015; + case 97: goto st1015; + } + goto tr2479; st1015: if ( ++p == pe ) goto _test_eof1015; case 1015: switch( (*p) ) { - case 32: goto tr2559; - case 59: goto tr2559; + case 77: goto st1016; + case 83: goto st1019; + case 109: goto st1016; + case 115: goto st1019; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2559; - } else if ( (*p) >= 9 ) - goto tr2559; - goto tr2444; + goto tr2479; st1016: if ( ++p == pe ) goto _test_eof1016; case 1016: - if ( (*p) == 53 ) - goto st1017; - goto tr2444; + switch( (*p) ) { + case 68: goto st1017; + case 100: goto st1017; + } + goto tr2479; st1017: if ( ++p == pe ) goto _test_eof1017; case 1017: - if ( (*p) == 54 ) + if ( (*p) == 53 ) goto st1018; - goto tr2444; + goto tr2479; st1018: if ( ++p == pe ) goto _test_eof1018; case 1018: switch( (*p) ) { - case 32: goto tr2562; - case 59: goto tr2562; + case 32: goto tr2576; + case 59: goto tr2576; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2562; + goto tr2576; } else if ( (*p) >= 9 ) - goto tr2562; - goto tr2444; + goto tr2576; + goto tr2479; st1019: if ( ++p == pe ) goto _test_eof1019; case 1019: + switch( (*p) ) { + case 72: goto st1020; + case 104: goto st1020; + } + goto tr2479; +st1020: + if ( ++p == pe ) + goto _test_eof1020; +case 1020: + switch( (*p) ) { + case 65: goto st1021; + case 97: goto st1021; + } + goto tr2479; +st1021: + if ( ++p == pe ) + goto _test_eof1021; +case 1021: + switch( (*p) ) { + case 49: goto st1022; + case 50: goto st1034; + case 53: goto st1037; + } + goto tr2479; +st1022: + if ( ++p == pe ) + goto _test_eof1022; +case 1022: + switch( (*p) ) { + case 32: goto tr2582; + case 45: goto st1023; + case 59: goto tr2582; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2582; + } else if ( (*p) >= 9 ) + goto tr2582; + goto tr2479; +st1023: + if ( ++p == pe ) + goto _test_eof1023; +case 1023: + switch( (*p) ) { + case 78: goto st1024; + case 110: goto st1024; + } + goto tr2479; +st1024: + if ( ++p == pe ) + goto _test_eof1024; +case 1024: + switch( (*p) ) { + case 83: goto st1025; + case 115: goto st1025; + } + goto tr2479; +st1025: + if ( ++p == pe ) + goto _test_eof1025; +case 1025: + switch( (*p) ) { + case 69: goto st1026; + case 101: goto st1026; + } + goto tr2479; +st1026: + if ( ++p == pe ) + goto _test_eof1026; +case 1026: + switch( (*p) ) { + case 67: goto st1027; + case 99: goto st1027; + } + goto tr2479; +st1027: + if ( ++p == pe ) + goto _test_eof1027; +case 1027: + if ( (*p) == 51 ) + goto st1028; + goto tr2479; +st1028: + if ( ++p == pe ) + goto _test_eof1028; +case 1028: + if ( (*p) == 45 ) + goto st1029; + goto tr2479; +st1029: + if ( ++p == pe ) + goto _test_eof1029; +case 1029: + switch( (*p) ) { + case 83: goto st1030; + case 115: goto st1030; + } + goto tr2479; +st1030: + if ( ++p == pe ) + goto _test_eof1030; +case 1030: + switch( (*p) ) { + case 72: goto st1031; + case 104: goto st1031; + } + goto tr2479; +st1031: + if ( ++p == pe ) + goto _test_eof1031; +case 1031: + switch( (*p) ) { + case 65: goto st1032; + case 97: goto st1032; + } + goto tr2479; +st1032: + if ( ++p == pe ) + goto _test_eof1032; +case 1032: + if ( (*p) == 49 ) + goto st1033; + goto tr2479; +st1033: + if ( ++p == pe ) + goto _test_eof1033; +case 1033: + switch( (*p) ) { + case 32: goto tr2594; + case 59: goto tr2594; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2594; + } else if ( (*p) >= 9 ) + goto tr2594; + goto tr2479; +st1034: + if ( ++p == pe ) + goto _test_eof1034; +case 1034: + if ( (*p) == 53 ) + goto st1035; + goto tr2479; +st1035: + if ( ++p == pe ) + goto _test_eof1035; +case 1035: + if ( (*p) == 54 ) + goto st1036; + goto tr2479; +st1036: + if ( ++p == pe ) + goto _test_eof1036; +case 1036: + switch( (*p) ) { + case 32: goto tr2597; + case 59: goto tr2597; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2597; + } else if ( (*p) >= 9 ) + goto tr2597; + goto tr2479; +st1037: + if ( ++p == pe ) + goto _test_eof1037; +case 1037: if ( (*p) == 49 ) - goto st1020; - goto tr2444; -st1020: + goto st1038; + goto tr2479; +st1038: if ( ++p == pe ) - goto _test_eof1020; -case 1020: + goto _test_eof1038; +case 1038: if ( (*p) == 50 ) - goto st1021; - goto tr2444; -st1021: + goto st1039; + goto tr2479; +st1039: if ( ++p == pe ) - goto _test_eof1021; -case 1021: + goto _test_eof1039; +case 1039: switch( (*p) ) { - case 32: goto tr2565; - case 59: goto tr2565; + case 32: goto tr2600; + case 59: goto tr2600; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2565; + goto tr2600; } else if ( (*p) >= 9 ) - goto tr2565; - goto tr2444; -st1022: + goto tr2600; + goto tr2479; +st1040: if ( ++p == pe ) - goto _test_eof1022; -case 1022: + goto _test_eof1040; +case 1040: switch( (*p) ) { - case 65: goto st1024; - case 73: goto st1030; - case 79: goto st1047; - case 80: goto st1050; - case 83: goto st1056; - case 85: goto st1060; - case 97: goto st1024; - case 105: goto st1030; - case 111: goto st1047; - case 112: goto st1050; - case 115: goto st1056; - case 117: goto st1060; + case 65: goto st1042; + case 73: goto st1048; + case 79: goto st1065; + case 80: goto st1068; + case 83: goto st1074; + case 85: goto st1078; + case 97: goto st1042; + case 105: goto st1048; + case 111: goto st1065; + case 112: goto st1068; + case 115: goto st1074; + case 117: goto st1078; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2567; - goto tr2566; -tr2567: + goto tr2602; + goto tr2601; +tr2602: { s->number64 = 0; } @@ -68073,11 +69034,11 @@ tr2567: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1023; -tr2575: + goto st1041; +tr2610: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -68089,28 +69050,28 @@ tr2575: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1023; -st1023: + goto st1041; +st1041: if ( ++p == pe ) - goto _test_eof1023; -case 1023: + goto _test_eof1041; +case 1041: switch( (*p) ) { - case 32: goto tr2574; - case 59: goto tr2574; + case 32: goto tr2609; + case 59: goto tr2609; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2574; + goto tr2609; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2575; + goto tr2610; } else - goto tr2574; - goto tr2566; -tr2574: + goto tr2609; + goto tr2601; +tr2609: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -68118,14 +69079,14 @@ tr2574: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1513; -tr2611: + goto st1531; +tr2646: { uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); @@ -68134,8 +69095,8 @@ tr2611: { p--; {cs = stack[--top];goto _again;} } - goto st1513; -tr2581: + goto st1531; +tr2616: { uint16_t val = htons(7); memcpy(rdata_tail, &val, 2); @@ -68144,8 +69105,8 @@ tr2581: { p--; {cs = stack[--top];goto _again;} } - goto st1513; -tr2601: + goto st1531; +tr2636: { uint16_t val = htons(5); memcpy(rdata_tail, &val, 2); @@ -68154,8 +69115,8 @@ tr2601: { p--; {cs = stack[--top];goto _again;} } - goto st1513; -tr2597: + goto st1531; +tr2632: { uint16_t val = htons(4); memcpy(rdata_tail, &val, 2); @@ -68164,8 +69125,8 @@ tr2597: { p--; {cs = stack[--top];goto _again;} } - goto st1513; -tr2594: + goto st1531; +tr2629: { uint16_t val = htons(6); memcpy(rdata_tail, &val, 2); @@ -68174,8 +69135,8 @@ tr2594: { p--; {cs = stack[--top];goto _again;} } - goto st1513; -tr2615: + goto st1531; +tr2650: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -68184,8 +69145,8 @@ tr2615: { p--; {cs = stack[--top];goto _again;} } - goto st1513; -tr2590: + goto st1531; +tr2625: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -68194,8 +69155,8 @@ tr2590: { p--; {cs = stack[--top];goto _again;} } - goto st1513; -tr2608: + goto st1531; +tr2643: { uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); @@ -68204,8 +69165,8 @@ tr2608: { p--; {cs = stack[--top];goto _again;} } - goto st1513; -tr2604: + goto st1531; +tr2639: { uint16_t val = htons(254); memcpy(rdata_tail, &val, 2); @@ -68214,8 +69175,8 @@ tr2604: { p--; {cs = stack[--top];goto _again;} } - goto st1513; -tr2618: + goto st1531; +tr2653: { uint16_t val = htons(253); memcpy(rdata_tail, &val, 2); @@ -68224,433 +69185,433 @@ tr2618: { p--; {cs = stack[--top];goto _again;} } - goto st1513; -st1513: + goto st1531; +st1531: if ( ++p == pe ) - goto _test_eof1513; -case 1513: + goto _test_eof1531; +case 1531: goto st0; -st1024: +st1042: if ( ++p == pe ) - goto _test_eof1024; -case 1024: + goto _test_eof1042; +case 1042: switch( (*p) ) { - case 67: goto st1025; - case 99: goto st1025; + case 67: goto st1043; + case 99: goto st1043; } - goto tr2566; -st1025: + goto tr2601; +st1043: if ( ++p == pe ) - goto _test_eof1025; -case 1025: + goto _test_eof1043; +case 1043: switch( (*p) ) { - case 80: goto st1026; - case 112: goto st1026; + case 80: goto st1044; + case 112: goto st1044; } - goto tr2566; -st1026: + goto tr2601; +st1044: if ( ++p == pe ) - goto _test_eof1026; -case 1026: + goto _test_eof1044; +case 1044: switch( (*p) ) { - case 75: goto st1027; - case 107: goto st1027; + case 75: goto st1045; + case 107: goto st1045; } - goto tr2566; -st1027: + goto tr2601; +st1045: if ( ++p == pe ) - goto _test_eof1027; -case 1027: + goto _test_eof1045; +case 1045: switch( (*p) ) { - case 73: goto st1028; - case 105: goto st1028; + case 73: goto st1046; + case 105: goto st1046; } - goto tr2566; -st1028: + goto tr2601; +st1046: if ( ++p == pe ) - goto _test_eof1028; -case 1028: + goto _test_eof1046; +case 1046: switch( (*p) ) { - case 88: goto st1029; - case 120: goto st1029; + case 88: goto st1047; + case 120: goto st1047; } - goto tr2566; -st1029: + goto tr2601; +st1047: if ( ++p == pe ) - goto _test_eof1029; -case 1029: + goto _test_eof1047; +case 1047: switch( (*p) ) { - case 32: goto tr2581; - case 59: goto tr2581; + case 32: goto tr2616; + case 59: goto tr2616; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2581; + goto tr2616; } else if ( (*p) >= 9 ) - goto tr2581; - goto tr2566; -st1030: + goto tr2616; + goto tr2601; +st1048: if ( ++p == pe ) - goto _test_eof1030; -case 1030: + goto _test_eof1048; +case 1048: switch( (*p) ) { - case 65: goto st1031; - case 80: goto st1037; - case 83: goto st1043; - case 97: goto st1031; - case 112: goto st1037; - case 115: goto st1043; + case 65: goto st1049; + case 80: goto st1055; + case 83: goto st1061; + case 97: goto st1049; + case 112: goto st1055; + case 115: goto st1061; } - goto tr2566; -st1031: + goto tr2601; +st1049: if ( ++p == pe ) - goto _test_eof1031; -case 1031: + goto _test_eof1049; +case 1049: switch( (*p) ) { - case 67: goto st1032; - case 99: goto st1032; + case 67: goto st1050; + case 99: goto st1050; } - goto tr2566; -st1032: + goto tr2601; +st1050: if ( ++p == pe ) - goto _test_eof1032; -case 1032: + goto _test_eof1050; +case 1050: switch( (*p) ) { - case 80: goto st1033; - case 112: goto st1033; + case 80: goto st1051; + case 112: goto st1051; } - goto tr2566; -st1033: + goto tr2601; +st1051: if ( ++p == pe ) - goto _test_eof1033; -case 1033: + goto _test_eof1051; +case 1051: switch( (*p) ) { - case 75: goto st1034; - case 107: goto st1034; + case 75: goto st1052; + case 107: goto st1052; } - goto tr2566; -st1034: + goto tr2601; +st1052: if ( ++p == pe ) - goto _test_eof1034; -case 1034: + goto _test_eof1052; +case 1052: switch( (*p) ) { - case 73: goto st1035; - case 105: goto st1035; + case 73: goto st1053; + case 105: goto st1053; } - goto tr2566; -st1035: + goto tr2601; +st1053: if ( ++p == pe ) - goto _test_eof1035; -case 1035: + goto _test_eof1053; +case 1053: switch( (*p) ) { - case 88: goto st1036; - case 120: goto st1036; + case 88: goto st1054; + case 120: goto st1054; } - goto tr2566; -st1036: + goto tr2601; +st1054: if ( ++p == pe ) - goto _test_eof1036; -case 1036: + goto _test_eof1054; +case 1054: switch( (*p) ) { - case 32: goto tr2590; - case 59: goto tr2590; + case 32: goto tr2625; + case 59: goto tr2625; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2590; + goto tr2625; } else if ( (*p) >= 9 ) - goto tr2590; - goto tr2566; -st1037: + goto tr2625; + goto tr2601; +st1055: if ( ++p == pe ) - goto _test_eof1037; -case 1037: + goto _test_eof1055; +case 1055: switch( (*p) ) { - case 71: goto st1038; - case 75: goto st1040; - case 103: goto st1038; - case 107: goto st1040; + case 71: goto st1056; + case 75: goto st1058; + case 103: goto st1056; + case 107: goto st1058; } - goto tr2566; -st1038: + goto tr2601; +st1056: if ( ++p == pe ) - goto _test_eof1038; -case 1038: + goto _test_eof1056; +case 1056: switch( (*p) ) { - case 80: goto st1039; - case 112: goto st1039; + case 80: goto st1057; + case 112: goto st1057; } - goto tr2566; -st1039: + goto tr2601; +st1057: if ( ++p == pe ) - goto _test_eof1039; -case 1039: + goto _test_eof1057; +case 1057: switch( (*p) ) { - case 32: goto tr2594; - case 59: goto tr2594; + case 32: goto tr2629; + case 59: goto tr2629; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2594; + goto tr2629; } else if ( (*p) >= 9 ) - goto tr2594; - goto tr2566; -st1040: + goto tr2629; + goto tr2601; +st1058: if ( ++p == pe ) - goto _test_eof1040; -case 1040: + goto _test_eof1058; +case 1058: switch( (*p) ) { - case 73: goto st1041; - case 105: goto st1041; + case 73: goto st1059; + case 105: goto st1059; } - goto tr2566; -st1041: + goto tr2601; +st1059: if ( ++p == pe ) - goto _test_eof1041; -case 1041: + goto _test_eof1059; +case 1059: switch( (*p) ) { - case 88: goto st1042; - case 120: goto st1042; + case 88: goto st1060; + case 120: goto st1060; } - goto tr2566; -st1042: + goto tr2601; +st1060: if ( ++p == pe ) - goto _test_eof1042; -case 1042: + goto _test_eof1060; +case 1060: switch( (*p) ) { - case 32: goto tr2597; - case 59: goto tr2597; + case 32: goto tr2632; + case 59: goto tr2632; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2597; + goto tr2632; } else if ( (*p) >= 9 ) - goto tr2597; - goto tr2566; -st1043: + goto tr2632; + goto tr2601; +st1061: if ( ++p == pe ) - goto _test_eof1043; -case 1043: + goto _test_eof1061; +case 1061: switch( (*p) ) { - case 80: goto st1044; - case 112: goto st1044; + case 80: goto st1062; + case 112: goto st1062; } - goto tr2566; -st1044: + goto tr2601; +st1062: if ( ++p == pe ) - goto _test_eof1044; -case 1044: + goto _test_eof1062; +case 1062: switch( (*p) ) { - case 75: goto st1045; - case 107: goto st1045; + case 75: goto st1063; + case 107: goto st1063; } - goto tr2566; -st1045: + goto tr2601; +st1063: if ( ++p == pe ) - goto _test_eof1045; -case 1045: + goto _test_eof1063; +case 1063: switch( (*p) ) { - case 73: goto st1046; - case 105: goto st1046; + case 73: goto st1064; + case 105: goto st1064; } - goto tr2566; -st1046: + goto tr2601; +st1064: if ( ++p == pe ) - goto _test_eof1046; -case 1046: + goto _test_eof1064; +case 1064: switch( (*p) ) { - case 32: goto tr2601; - case 59: goto tr2601; + case 32: goto tr2636; + case 59: goto tr2636; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2601; + goto tr2636; } else if ( (*p) >= 9 ) - goto tr2601; - goto tr2566; -st1047: + goto tr2636; + goto tr2601; +st1065: if ( ++p == pe ) - goto _test_eof1047; -case 1047: + goto _test_eof1065; +case 1065: switch( (*p) ) { - case 73: goto st1048; - case 105: goto st1048; + case 73: goto st1066; + case 105: goto st1066; } - goto tr2566; -st1048: + goto tr2601; +st1066: if ( ++p == pe ) - goto _test_eof1048; -case 1048: + goto _test_eof1066; +case 1066: switch( (*p) ) { - case 68: goto st1049; - case 100: goto st1049; + case 68: goto st1067; + case 100: goto st1067; } - goto tr2566; -st1049: + goto tr2601; +st1067: if ( ++p == pe ) - goto _test_eof1049; -case 1049: + goto _test_eof1067; +case 1067: switch( (*p) ) { - case 32: goto tr2604; - case 59: goto tr2604; + case 32: goto tr2639; + case 59: goto tr2639; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2604; + goto tr2639; } else if ( (*p) >= 9 ) - goto tr2604; - goto tr2566; -st1050: + goto tr2639; + goto tr2601; +st1068: if ( ++p == pe ) - goto _test_eof1050; -case 1050: + goto _test_eof1068; +case 1068: switch( (*p) ) { - case 71: goto st1051; - case 75: goto st1053; - case 103: goto st1051; - case 107: goto st1053; + case 71: goto st1069; + case 75: goto st1071; + case 103: goto st1069; + case 107: goto st1071; } - goto tr2566; -st1051: + goto tr2601; +st1069: if ( ++p == pe ) - goto _test_eof1051; -case 1051: + goto _test_eof1069; +case 1069: switch( (*p) ) { - case 80: goto st1052; - case 112: goto st1052; + case 80: goto st1070; + case 112: goto st1070; } - goto tr2566; -st1052: + goto tr2601; +st1070: if ( ++p == pe ) - goto _test_eof1052; -case 1052: + goto _test_eof1070; +case 1070: switch( (*p) ) { - case 32: goto tr2608; - case 59: goto tr2608; + case 32: goto tr2643; + case 59: goto tr2643; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2608; + goto tr2643; } else if ( (*p) >= 9 ) - goto tr2608; - goto tr2566; -st1053: + goto tr2643; + goto tr2601; +st1071: if ( ++p == pe ) - goto _test_eof1053; -case 1053: + goto _test_eof1071; +case 1071: switch( (*p) ) { - case 73: goto st1054; - case 105: goto st1054; + case 73: goto st1072; + case 105: goto st1072; } - goto tr2566; -st1054: + goto tr2601; +st1072: if ( ++p == pe ) - goto _test_eof1054; -case 1054: + goto _test_eof1072; +case 1072: switch( (*p) ) { - case 88: goto st1055; - case 120: goto st1055; + case 88: goto st1073; + case 120: goto st1073; } - goto tr2566; -st1055: + goto tr2601; +st1073: if ( ++p == pe ) - goto _test_eof1055; -case 1055: + goto _test_eof1073; +case 1073: switch( (*p) ) { - case 32: goto tr2611; - case 59: goto tr2611; + case 32: goto tr2646; + case 59: goto tr2646; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2611; + goto tr2646; } else if ( (*p) >= 9 ) - goto tr2611; - goto tr2566; -st1056: + goto tr2646; + goto tr2601; +st1074: if ( ++p == pe ) - goto _test_eof1056; -case 1056: + goto _test_eof1074; +case 1074: switch( (*p) ) { - case 80: goto st1057; - case 112: goto st1057; + case 80: goto st1075; + case 112: goto st1075; } - goto tr2566; -st1057: + goto tr2601; +st1075: if ( ++p == pe ) - goto _test_eof1057; -case 1057: + goto _test_eof1075; +case 1075: switch( (*p) ) { - case 75: goto st1058; - case 107: goto st1058; + case 75: goto st1076; + case 107: goto st1076; } - goto tr2566; -st1058: + goto tr2601; +st1076: if ( ++p == pe ) - goto _test_eof1058; -case 1058: + goto _test_eof1076; +case 1076: switch( (*p) ) { - case 73: goto st1059; - case 105: goto st1059; + case 73: goto st1077; + case 105: goto st1077; } - goto tr2566; -st1059: + goto tr2601; +st1077: if ( ++p == pe ) - goto _test_eof1059; -case 1059: + goto _test_eof1077; +case 1077: switch( (*p) ) { - case 32: goto tr2615; - case 59: goto tr2615; + case 32: goto tr2650; + case 59: goto tr2650; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2615; + goto tr2650; } else if ( (*p) >= 9 ) - goto tr2615; - goto tr2566; -st1060: + goto tr2650; + goto tr2601; +st1078: if ( ++p == pe ) - goto _test_eof1060; -case 1060: + goto _test_eof1078; +case 1078: switch( (*p) ) { - case 82: goto st1061; - case 114: goto st1061; + case 82: goto st1079; + case 114: goto st1079; } - goto tr2566; -st1061: + goto tr2601; +st1079: if ( ++p == pe ) - goto _test_eof1061; -case 1061: + goto _test_eof1079; +case 1079: switch( (*p) ) { - case 73: goto st1062; - case 105: goto st1062; + case 73: goto st1080; + case 105: goto st1080; } - goto tr2566; -st1062: + goto tr2601; +st1080: if ( ++p == pe ) - goto _test_eof1062; -case 1062: + goto _test_eof1080; +case 1080: switch( (*p) ) { - case 32: goto tr2618; - case 59: goto tr2618; + case 32: goto tr2653; + case 59: goto tr2653; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2618; + goto tr2653; } else if ( (*p) >= 9 ) - goto tr2618; - goto tr2566; -st1063: + goto tr2653; + goto tr2601; +st1081: if ( ++p == pe ) - goto _test_eof1063; -case 1063: + goto _test_eof1081; +case 1081: switch( (*p) ) { - case 78: goto st1065; - case 110: goto st1065; + case 78: goto st1083; + case 110: goto st1083; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2620; - goto tr2619; -tr2620: + goto tr2655; + goto tr2654; +tr2655: { s->number64 = 0; } @@ -68665,11 +69626,11 @@ tr2620: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1064; -tr2623: + goto st1082; +tr2658: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -68681,133 +69642,133 @@ tr2623: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1064; -st1064: + goto st1082; +st1082: if ( ++p == pe ) - goto _test_eof1064; -case 1064: + goto _test_eof1082; +case 1082: switch( (*p) ) { - case 32: goto tr2622; - case 59: goto tr2622; + case 32: goto tr2657; + case 59: goto tr2657; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2622; + goto tr2657; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2623; + goto tr2658; } else - goto tr2622; - goto tr2619; -tr2622: + goto tr2657; + goto tr2654; +tr2657: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr2629: + goto st1532; +tr2664: { *(rdata_tail++) = 1; } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -st1514: + goto st1532; +st1532: if ( ++p == pe ) - goto _test_eof1514; -case 1514: + goto _test_eof1532; +case 1532: goto st0; -st1065: +st1083: if ( ++p == pe ) - goto _test_eof1065; -case 1065: + goto _test_eof1083; +case 1083: switch( (*p) ) { - case 79: goto st1066; - case 111: goto st1066; + case 79: goto st1084; + case 111: goto st1084; } - goto tr2619; -st1066: + goto tr2654; +st1084: if ( ++p == pe ) - goto _test_eof1066; -case 1066: + goto _test_eof1084; +case 1084: switch( (*p) ) { - case 84: goto st1067; - case 116: goto st1067; + case 84: goto st1085; + case 116: goto st1085; } - goto tr2619; -st1067: + goto tr2654; +st1085: if ( ++p == pe ) - goto _test_eof1067; -case 1067: + goto _test_eof1085; +case 1085: switch( (*p) ) { - case 73: goto st1068; - case 105: goto st1068; + case 73: goto st1086; + case 105: goto st1086; } - goto tr2619; -st1068: + goto tr2654; +st1086: if ( ++p == pe ) - goto _test_eof1068; -case 1068: + goto _test_eof1086; +case 1086: switch( (*p) ) { - case 70: goto st1069; - case 102: goto st1069; + case 70: goto st1087; + case 102: goto st1087; } - goto tr2619; -st1069: + goto tr2654; +st1087: if ( ++p == pe ) - goto _test_eof1069; -case 1069: + goto _test_eof1087; +case 1087: switch( (*p) ) { - case 89: goto st1070; - case 121: goto st1070; + case 89: goto st1088; + case 121: goto st1088; } - goto tr2619; -st1070: + goto tr2654; +st1088: if ( ++p == pe ) - goto _test_eof1070; -case 1070: + goto _test_eof1088; +case 1088: switch( (*p) ) { - case 32: goto tr2629; - case 59: goto tr2629; + case 32: goto tr2664; + case 59: goto tr2664; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2629; + goto tr2664; } else if ( (*p) >= 9 ) - goto tr2629; - goto tr2619; -st1071: + goto tr2664; + goto tr2654; +st1089: if ( ++p == pe ) - goto _test_eof1071; -case 1071: + goto _test_eof1089; +case 1089: if ( (*p) == 46 ) - goto tr2631; + goto tr2666; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2631; - goto tr2630; -tr2633: + goto tr2666; + goto tr2665; +tr2668: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1072; -tr2631: + goto st1090; +tr2666: { s->buffer_length = 0; } @@ -68816,41 +69777,41 @@ tr2631: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1072; -st1072: + goto st1090; +st1090: if ( ++p == pe ) - goto _test_eof1072; -case 1072: + goto _test_eof1090; +case 1090: switch( (*p) ) { - case 32: goto tr2632; - case 46: goto tr2633; - case 59: goto tr2632; + case 32: goto tr2667; + case 46: goto tr2668; + case 59: goto tr2667; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2632; + goto tr2667; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2633; + goto tr2668; } else - goto tr2632; - goto tr2630; -tr2632: + goto tr2667; + goto tr2665; +tr2667: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -68858,91 +69819,91 @@ tr2632: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -st1515: + goto st1533; +st1533: if ( ++p == pe ) - goto _test_eof1515; -case 1515: + goto _test_eof1533; +case 1533: goto st0; -st1073: +st1091: if ( ++p == pe ) - goto _test_eof1073; -case 1073: + goto _test_eof1091; +case 1091: switch( (*p) ) { - case 42: goto tr2634; - case 92: goto tr2634; - case 95: goto tr2634; + case 42: goto tr2669; + case 92: goto tr2669; + case 95: goto tr2669; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2634; + goto tr2669; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2634; + goto tr2669; } else - goto tr2634; + goto tr2669; goto tr77; -tr2634: +tr2669: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1074;goto st321;} } - goto st1074; -st1074: + { p--; {stack[top++] = 1092;goto st327;} } + goto st1092; +st1092: if ( ++p == pe ) - goto _test_eof1074; -case 1074: + goto _test_eof1092; +case 1092: switch( (*p) ) { - case 32: goto tr2635; - case 59: goto tr2635; + case 32: goto tr2670; + case 59: goto tr2670; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2635; + goto tr2670; } else if ( (*p) >= 9 ) - goto tr2635; + goto tr2670; goto tr77; -tr2635: +tr2670: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1516; -st1516: + goto st1534; +st1534: if ( ++p == pe ) - goto _test_eof1516; -case 1516: + goto _test_eof1534; +case 1534: goto st0; -st1075: +st1093: if ( ++p == pe ) - goto _test_eof1075; -case 1075: + goto _test_eof1093; +case 1093: switch( (*p) ) { - case 42: goto tr2636; - case 92: goto tr2636; - case 95: goto tr2636; + case 42: goto tr2671; + case 92: goto tr2671; + case 95: goto tr2671; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2636; + goto tr2671; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2636; + goto tr2671; } else - goto tr2636; + goto tr2671; goto tr77; -tr2636: +tr2671: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1076;goto st321;} } - goto st1076; -st1076: + { p--; {stack[top++] = 1094;goto st327;} } + goto st1094; +st1094: if ( ++p == pe ) - goto _test_eof1076; -case 1076: + goto _test_eof1094; +case 1094: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -68956,38 +69917,38 @@ case 1076: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2637; - case 32: goto tr2637; - case 40: goto tr2638; - case 41: goto tr2639; - case 2058: goto tr2640; - case 2107: goto tr2641; + case 9: goto tr2672; + case 32: goto tr2672; + case 40: goto tr2673; + case 41: goto tr2674; + case 2058: goto tr2675; + case 2107: goto tr2676; } goto tr77; -tr2643: +tr2678: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1077; -tr2644: + goto st1095; +tr2679: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1077; -tr2646: + goto st1095; +tr2681: { s->line_counter++; } - goto st1077; -tr2790: + goto st1095; +tr2825: { s->buffer[s->buffer_length++] = 0; @@ -68997,55 +69958,55 @@ tr2790: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1077; goto _out;} + {p++; cs = 1095; goto _out;} } } } { s->line_counter++; } - goto st1077; -tr2637: + goto st1095; +tr2672: { rdata_tail += s->dname_tmp_length; } - goto st1077; -tr2638: + goto st1095; +tr2673: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1077; -tr2639: + goto st1095; +tr2674: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1077; -tr2640: + goto st1095; +tr2675: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1077; -st1077: + goto st1095; +st1095: if ( ++p == pe ) - goto _test_eof1077; -case 1077: + goto _test_eof1095; +case 1095: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69059,35 +70020,35 @@ case 1077: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1077; - case 32: goto st1077; - case 40: goto tr2643; - case 41: goto tr2644; - case 42: goto tr2645; - case 92: goto tr2645; - case 95: goto tr2645; - case 2058: goto tr2646; - case 2107: goto tr2647; + case 9: goto st1095; + case 32: goto st1095; + case 40: goto tr2678; + case 41: goto tr2679; + case 42: goto tr2680; + case 92: goto tr2680; + case 95: goto tr2680; + case 2058: goto tr2681; + case 2107: goto tr2682; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2645; + goto tr2680; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2645; + goto tr2680; } else - goto tr2645; + goto tr2680; goto tr77; -tr2645: +tr2680: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1078;goto st321;} } - goto st1078; -st1078: + { p--; {stack[top++] = 1096;goto st327;} } + goto st1096; +st1096: if ( ++p == pe ) - goto _test_eof1078; -case 1078: + goto _test_eof1096; +case 1096: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69101,38 +70062,38 @@ case 1078: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2648; - case 32: goto tr2648; - case 40: goto tr2649; - case 41: goto tr2650; - case 2058: goto tr2651; - case 2107: goto tr2652; + case 9: goto tr2683; + case 32: goto tr2683; + case 40: goto tr2684; + case 41: goto tr2685; + case 2058: goto tr2686; + case 2107: goto tr2687; } goto tr77; -tr2655: +tr2690: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1079; -tr2656: + goto st1097; +tr2691: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1079; -tr2658: + goto st1097; +tr2693: { s->line_counter++; } - goto st1079; -tr2788: + goto st1097; +tr2823: { s->buffer[s->buffer_length++] = 0; @@ -69142,55 +70103,55 @@ tr2788: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1079; goto _out;} + {p++; cs = 1097; goto _out;} } } } { s->line_counter++; } - goto st1079; -tr2648: + goto st1097; +tr2683: { rdata_tail += s->dname_tmp_length; } - goto st1079; -tr2649: + goto st1097; +tr2684: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1079; -tr2650: + goto st1097; +tr2685: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1079; -tr2651: + goto st1097; +tr2686: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1079; -st1079: + goto st1097; +st1097: if ( ++p == pe ) - goto _test_eof1079; -case 1079: + goto _test_eof1097; +case 1097: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69204,17 +70165,17 @@ case 1079: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1079; - case 32: goto st1079; - case 40: goto tr2655; - case 41: goto tr2656; - case 2058: goto tr2658; - case 2107: goto tr2659; + case 9: goto st1097; + case 32: goto st1097; + case 40: goto tr2690; + case 41: goto tr2691; + case 2058: goto tr2693; + case 2107: goto tr2694; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2657; - goto tr2653; -tr2657: + goto tr2692; + goto tr2688; +tr2692: { s->number64 = 0; } @@ -69229,11 +70190,11 @@ tr2657: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1080; -tr2663: + goto st1098; +tr2698: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -69245,14 +70206,14 @@ tr2663: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1080; -st1080: + goto st1098; +st1098: if ( ++p == pe ) - goto _test_eof1080; -case 1080: + goto _test_eof1098; +case 1098: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69266,40 +70227,40 @@ case 1080: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2660; - case 32: goto tr2660; - case 40: goto tr2661; - case 41: goto tr2662; - case 2058: goto tr2664; - case 2107: goto tr2665; + case 9: goto tr2695; + case 32: goto tr2695; + case 40: goto tr2696; + case 41: goto tr2697; + case 2058: goto tr2699; + case 2107: goto tr2700; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2663; - goto tr2653; -tr2667: + goto tr2698; + goto tr2688; +tr2702: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1081; -tr2668: + goto st1099; +tr2703: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1081; -tr2670: + goto st1099; +tr2705: { s->line_counter++; } - goto st1081; -tr2786: + goto st1099; +tr2821: { s->buffer[s->buffer_length++] = 0; @@ -69309,15 +70270,15 @@ tr2786: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1081; goto _out;} + {p++; cs = 1099; goto _out;} } } } { s->line_counter++; } - goto st1081; -tr2660: + goto st1099; +tr2695: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69325,11 +70286,11 @@ tr2660: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1081; -tr2661: + goto st1099; +tr2696: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69337,18 +70298,18 @@ tr2661: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1081; -tr2662: + goto st1099; +tr2697: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69356,18 +70317,18 @@ tr2662: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1081; -tr2664: + goto st1099; +tr2699: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69375,17 +70336,17 @@ tr2664: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1081; -st1081: + goto st1099; +st1099: if ( ++p == pe ) - goto _test_eof1081; -case 1081: + goto _test_eof1099; +case 1099: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69399,17 +70360,17 @@ case 1081: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1081; - case 32: goto st1081; - case 40: goto tr2667; - case 41: goto tr2668; - case 2058: goto tr2670; - case 2107: goto tr2671; + case 9: goto st1099; + case 32: goto st1099; + case 40: goto tr2702; + case 41: goto tr2703; + case 2058: goto tr2705; + case 2107: goto tr2706; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2669; - goto tr2653; -tr2669: + goto tr2704; + goto tr2688; +tr2704: { s->number64 = 0; } @@ -69424,11 +70385,11 @@ tr2669: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1082; -tr2676: + goto st1100; +tr2711: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -69440,14 +70401,14 @@ tr2676: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1082; -st1082: + goto st1100; +st1100: if ( ++p == pe ) - goto _test_eof1082; -case 1082: + goto _test_eof1100; +case 1100: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69461,50 +70422,50 @@ case 1082: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2673; - case 32: goto tr2673; - case 40: goto tr2674; - case 41: goto tr2675; - case 68: goto tr2677; - case 72: goto tr2678; - case 77: goto tr2679; - case 83: goto st1101; - case 87: goto tr2681; - case 100: goto tr2677; - case 104: goto tr2678; - case 109: goto tr2679; - case 115: goto st1101; - case 119: goto tr2681; - case 2058: goto tr2682; - case 2107: goto tr2683; + case 9: goto tr2708; + case 32: goto tr2708; + case 40: goto tr2709; + case 41: goto tr2710; + case 68: goto tr2712; + case 72: goto tr2713; + case 77: goto tr2714; + case 83: goto st1119; + case 87: goto tr2716; + case 100: goto tr2712; + case 104: goto tr2713; + case 109: goto tr2714; + case 115: goto st1119; + case 119: goto tr2716; + case 2058: goto tr2717; + case 2107: goto tr2718; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2676; - goto tr2672; -tr2685: + goto tr2711; + goto tr2707; +tr2720: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1083; -tr2686: + goto st1101; +tr2721: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1083; -tr2688: + goto st1101; +tr2723: { s->line_counter++; } - goto st1083; -tr2771: + goto st1101; +tr2806: { s->buffer[s->buffer_length++] = 0; @@ -69514,15 +70475,15 @@ tr2771: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1083; goto _out;} + {p++; cs = 1101; goto _out;} } } } { s->line_counter++; } - goto st1083; -tr2673: + goto st1101; +tr2708: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69530,11 +70491,11 @@ tr2673: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1083; -tr2674: + goto st1101; +tr2709: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69542,18 +70503,18 @@ tr2674: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1083; -tr2675: + goto st1101; +tr2710: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69561,18 +70522,18 @@ tr2675: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1083; -tr2682: + goto st1101; +tr2717: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69580,20 +70541,20 @@ tr2682: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1083; -tr2779: + goto st1101; +tr2814: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -69603,17 +70564,17 @@ tr2779: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1083; -tr2780: + goto st1101; +tr2815: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -69623,24 +70584,24 @@ tr2780: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1083; -tr2781: + goto st1101; +tr2816: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -69650,24 +70611,24 @@ tr2781: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1083; -tr2783: + goto st1101; +tr2818: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -69677,17 +70638,17 @@ tr2783: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1083; -st1083: + goto st1101; +st1101: if ( ++p == pe ) - goto _test_eof1083; -case 1083: + goto _test_eof1101; +case 1101: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69701,17 +70662,17 @@ case 1083: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1083; - case 32: goto st1083; - case 40: goto tr2685; - case 41: goto tr2686; - case 2058: goto tr2688; - case 2107: goto tr2689; + case 9: goto st1101; + case 32: goto st1101; + case 40: goto tr2720; + case 41: goto tr2721; + case 2058: goto tr2723; + case 2107: goto tr2724; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2687; - goto tr2653; -tr2687: + goto tr2722; + goto tr2688; +tr2722: { s->number64 = 0; } @@ -69726,11 +70687,11 @@ tr2687: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1084; -tr2693: + goto st1102; +tr2728: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -69742,14 +70703,14 @@ tr2693: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1084; -st1084: + goto st1102; +st1102: if ( ++p == pe ) - goto _test_eof1084; -case 1084: + goto _test_eof1102; +case 1102: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69763,50 +70724,50 @@ case 1084: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2690; - case 32: goto tr2690; - case 40: goto tr2691; - case 41: goto tr2692; - case 68: goto tr2694; - case 72: goto tr2695; - case 77: goto tr2696; - case 83: goto st1097; - case 87: goto tr2698; - case 100: goto tr2694; - case 104: goto tr2695; - case 109: goto tr2696; - case 115: goto st1097; - case 119: goto tr2698; - case 2058: goto tr2699; - case 2107: goto tr2700; + case 9: goto tr2725; + case 32: goto tr2725; + case 40: goto tr2726; + case 41: goto tr2727; + case 68: goto tr2729; + case 72: goto tr2730; + case 77: goto tr2731; + case 83: goto st1115; + case 87: goto tr2733; + case 100: goto tr2729; + case 104: goto tr2730; + case 109: goto tr2731; + case 115: goto st1115; + case 119: goto tr2733; + case 2058: goto tr2734; + case 2107: goto tr2735; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2693; - goto tr2672; -tr2702: + goto tr2728; + goto tr2707; +tr2737: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1085; -tr2703: + goto st1103; +tr2738: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1085; -tr2705: + goto st1103; +tr2740: { s->line_counter++; } - goto st1085; -tr2756: + goto st1103; +tr2791: { s->buffer[s->buffer_length++] = 0; @@ -69816,15 +70777,15 @@ tr2756: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1085; goto _out;} + {p++; cs = 1103; goto _out;} } } } { s->line_counter++; } - goto st1085; -tr2690: + goto st1103; +tr2725: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69832,11 +70793,11 @@ tr2690: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1085; -tr2691: + goto st1103; +tr2726: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69844,18 +70805,18 @@ tr2691: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1085; -tr2692: + goto st1103; +tr2727: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69863,18 +70824,18 @@ tr2692: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1085; -tr2699: + goto st1103; +tr2734: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -69882,20 +70843,20 @@ tr2699: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1085; -tr2764: + goto st1103; +tr2799: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -69905,17 +70866,17 @@ tr2764: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1085; -tr2765: + goto st1103; +tr2800: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -69925,24 +70886,24 @@ tr2765: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1085; -tr2766: + goto st1103; +tr2801: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -69952,24 +70913,24 @@ tr2766: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1085; -tr2768: + goto st1103; +tr2803: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -69979,17 +70940,17 @@ tr2768: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1085; -st1085: + goto st1103; +st1103: if ( ++p == pe ) - goto _test_eof1085; -case 1085: + goto _test_eof1103; +case 1103: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70003,17 +70964,17 @@ case 1085: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1085; - case 32: goto st1085; - case 40: goto tr2702; - case 41: goto tr2703; - case 2058: goto tr2705; - case 2107: goto tr2706; + case 9: goto st1103; + case 32: goto st1103; + case 40: goto tr2737; + case 41: goto tr2738; + case 2058: goto tr2740; + case 2107: goto tr2741; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2704; - goto tr2653; -tr2704: + goto tr2739; + goto tr2688; +tr2739: { s->number64 = 0; } @@ -70028,11 +70989,11 @@ tr2704: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1086; -tr2710: + goto st1104; +tr2745: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70044,14 +71005,14 @@ tr2710: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1086; -st1086: + goto st1104; +st1104: if ( ++p == pe ) - goto _test_eof1086; -case 1086: + goto _test_eof1104; +case 1104: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70065,50 +71026,50 @@ case 1086: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2707; - case 32: goto tr2707; - case 40: goto tr2708; - case 41: goto tr2709; - case 68: goto tr2711; - case 72: goto tr2712; - case 77: goto tr2713; - case 83: goto st1093; - case 87: goto tr2715; - case 100: goto tr2711; - case 104: goto tr2712; - case 109: goto tr2713; - case 115: goto st1093; - case 119: goto tr2715; - case 2058: goto tr2716; - case 2107: goto tr2717; + case 9: goto tr2742; + case 32: goto tr2742; + case 40: goto tr2743; + case 41: goto tr2744; + case 68: goto tr2746; + case 72: goto tr2747; + case 77: goto tr2748; + case 83: goto st1111; + case 87: goto tr2750; + case 100: goto tr2746; + case 104: goto tr2747; + case 109: goto tr2748; + case 115: goto st1111; + case 119: goto tr2750; + case 2058: goto tr2751; + case 2107: goto tr2752; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2710; - goto tr2672; -tr2719: + goto tr2745; + goto tr2707; +tr2754: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1087; -tr2720: + goto st1105; +tr2755: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1087; -tr2722: + goto st1105; +tr2757: { s->line_counter++; } - goto st1087; -tr2741: + goto st1105; +tr2776: { s->buffer[s->buffer_length++] = 0; @@ -70118,15 +71079,15 @@ tr2741: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1087; goto _out;} + {p++; cs = 1105; goto _out;} } } } { s->line_counter++; } - goto st1087; -tr2707: + goto st1105; +tr2742: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70134,11 +71095,11 @@ tr2707: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1087; -tr2708: + goto st1105; +tr2743: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70146,18 +71107,18 @@ tr2708: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1087; -tr2709: + goto st1105; +tr2744: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70165,18 +71126,18 @@ tr2709: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1087; -tr2716: + goto st1105; +tr2751: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70184,20 +71145,20 @@ tr2716: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1087; -tr2749: + goto st1105; +tr2784: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -70207,17 +71168,17 @@ tr2749: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1087; -tr2750: + goto st1105; +tr2785: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -70227,24 +71188,24 @@ tr2750: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1087; -tr2751: + goto st1105; +tr2786: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -70254,24 +71215,24 @@ tr2751: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1087; -tr2753: + goto st1105; +tr2788: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -70281,17 +71242,17 @@ tr2753: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1087; -st1087: + goto st1105; +st1105: if ( ++p == pe ) - goto _test_eof1087; -case 1087: + goto _test_eof1105; +case 1105: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70305,17 +71266,17 @@ case 1087: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1087; - case 32: goto st1087; - case 40: goto tr2719; - case 41: goto tr2720; - case 2058: goto tr2722; - case 2107: goto tr2723; + case 9: goto st1105; + case 32: goto st1105; + case 40: goto tr2754; + case 41: goto tr2755; + case 2058: goto tr2757; + case 2107: goto tr2758; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2721; - goto tr2653; -tr2721: + goto tr2756; + goto tr2688; +tr2756: { s->number64 = 0; } @@ -70330,11 +71291,11 @@ tr2721: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1088; -tr2725: + goto st1106; +tr2760: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70346,38 +71307,38 @@ tr2725: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1088; -st1088: + goto st1106; +st1106: if ( ++p == pe ) - goto _test_eof1088; -case 1088: + goto _test_eof1106; +case 1106: switch( (*p) ) { - case 32: goto tr2724; - case 59: goto tr2724; - case 68: goto tr2726; - case 72: goto tr2727; - case 77: goto tr2728; - case 83: goto st1089; - case 87: goto tr2730; - case 100: goto tr2726; - case 104: goto tr2727; - case 109: goto tr2728; - case 115: goto st1089; - case 119: goto tr2730; + case 32: goto tr2759; + case 59: goto tr2759; + case 68: goto tr2761; + case 72: goto tr2762; + case 77: goto tr2763; + case 83: goto st1107; + case 87: goto tr2765; + case 100: goto tr2761; + case 104: goto tr2762; + case 109: goto tr2763; + case 115: goto st1107; + case 119: goto tr2765; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2724; + goto tr2759; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2725; + goto tr2760; } else - goto tr2724; - goto tr2672; -tr2724: + goto tr2759; + goto tr2707; +tr2759: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70385,20 +71346,20 @@ tr2724: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr2738: + goto st1535; +tr2773: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -70408,72 +71369,72 @@ tr2738: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1517; -st1517: + goto st1535; +st1535: if ( ++p == pe ) - goto _test_eof1517; -case 1517: + goto _test_eof1535; +case 1535: goto st0; -tr2726: +tr2761: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1089; -tr2727: + goto st1107; +tr2762: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1089; -tr2728: + goto st1107; +tr2763: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1089; -tr2730: + goto st1107; +tr2765: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1089; -st1089: + goto st1107; +st1107: if ( ++p == pe ) - goto _test_eof1089; -case 1089: + goto _test_eof1107; +case 1107: switch( (*p) ) { - case 32: goto tr2724; - case 59: goto tr2724; + case 32: goto tr2759; + case 59: goto tr2759; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2724; + goto tr2759; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2731; + goto tr2766; } else - goto tr2724; - goto tr2672; -tr2732: + goto tr2759; + goto tr2707; +tr2767: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70485,11 +71446,11 @@ tr2732: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1090; -tr2731: + goto st1108; +tr2766: { s->number64_tmp = s->number64; } @@ -70507,17 +71468,17 @@ tr2731: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1090; -tr2739: + goto st1108; +tr2774: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -70537,95 +71498,95 @@ tr2739: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1090; -st1090: + goto st1108; +st1108: if ( ++p == pe ) - goto _test_eof1090; -case 1090: + goto _test_eof1108; +case 1108: switch( (*p) ) { - case 68: goto tr2733; - case 72: goto tr2734; - case 77: goto tr2735; - case 83: goto st1091; - case 87: goto tr2737; - case 100: goto tr2733; - case 104: goto tr2734; - case 109: goto tr2735; - case 115: goto st1091; - case 119: goto tr2737; + case 68: goto tr2768; + case 72: goto tr2769; + case 77: goto tr2770; + case 83: goto st1109; + case 87: goto tr2772; + case 100: goto tr2768; + case 104: goto tr2769; + case 109: goto tr2770; + case 115: goto st1109; + case 119: goto tr2772; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2732; - goto tr2672; -tr2733: + goto tr2767; + goto tr2707; +tr2768: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1091; -tr2734: + goto st1109; +tr2769: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1091; -tr2735: + goto st1109; +tr2770: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1091; -tr2737: + goto st1109; +tr2772: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1091; -st1091: + goto st1109; +st1109: if ( ++p == pe ) - goto _test_eof1091; -case 1091: + goto _test_eof1109; +case 1109: switch( (*p) ) { - case 32: goto tr2738; - case 59: goto tr2738; + case 32: goto tr2773; + case 59: goto tr2773; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2738; + goto tr2773; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2739; + goto tr2774; } else - goto tr2738; - goto tr2672; -tr2723: + goto tr2773; + goto tr2707; +tr2758: { s->buffer_length = 0; } - goto st1092; -tr2740: + goto st1110; +tr2775: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1092; -tr2717: + goto st1110; +tr2752: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70633,20 +71594,20 @@ tr2717: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1092; -tr2754: + goto st1110; +tr2789: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -70656,17 +71617,17 @@ tr2754: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1092; -st1092: + goto st1110; +st1110: if ( ++p == pe ) - goto _test_eof1092; -case 1092: + goto _test_eof1110; +case 1110: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -70686,50 +71647,50 @@ case 1092: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2741; + goto tr2776; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2740; + goto tr2775; goto tr77; -tr2711: +tr2746: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1093; -tr2712: + goto st1111; +tr2747: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1093; -tr2713: + goto st1111; +tr2748: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1093; -tr2715: + goto st1111; +tr2750: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1093; -st1093: + goto st1111; +st1111: if ( ++p == pe ) - goto _test_eof1093; -case 1093: + goto _test_eof1111; +case 1111: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70743,17 +71704,17 @@ case 1093: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2707; - case 32: goto tr2707; - case 40: goto tr2708; - case 41: goto tr2709; - case 2058: goto tr2716; - case 2107: goto tr2717; + case 9: goto tr2742; + case 32: goto tr2742; + case 40: goto tr2743; + case 41: goto tr2744; + case 2058: goto tr2751; + case 2107: goto tr2752; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2742; - goto tr2672; -tr2743: + goto tr2777; + goto tr2707; +tr2778: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70765,11 +71726,11 @@ tr2743: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1094; -tr2742: + goto st1112; +tr2777: { s->number64_tmp = s->number64; } @@ -70787,17 +71748,17 @@ tr2742: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1094; -tr2752: + goto st1112; +tr2787: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -70817,69 +71778,69 @@ tr2752: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1094; -st1094: + goto st1112; +st1112: if ( ++p == pe ) - goto _test_eof1094; -case 1094: + goto _test_eof1112; +case 1112: switch( (*p) ) { - case 68: goto tr2744; - case 72: goto tr2745; - case 77: goto tr2746; - case 83: goto st1095; - case 87: goto tr2748; - case 100: goto tr2744; - case 104: goto tr2745; - case 109: goto tr2746; - case 115: goto st1095; - case 119: goto tr2748; + case 68: goto tr2779; + case 72: goto tr2780; + case 77: goto tr2781; + case 83: goto st1113; + case 87: goto tr2783; + case 100: goto tr2779; + case 104: goto tr2780; + case 109: goto tr2781; + case 115: goto st1113; + case 119: goto tr2783; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2743; - goto tr2672; -tr2744: + goto tr2778; + goto tr2707; +tr2779: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1095; -tr2745: + goto st1113; +tr2780: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1095; -tr2746: + goto st1113; +tr2781: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1095; -tr2748: + goto st1113; +tr2783: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1095; -st1095: + goto st1113; +st1113: if ( ++p == pe ) - goto _test_eof1095; -case 1095: + goto _test_eof1113; +case 1113: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70893,29 +71854,29 @@ case 1095: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2749; - case 32: goto tr2749; - case 40: goto tr2750; - case 41: goto tr2751; - case 2058: goto tr2753; - case 2107: goto tr2754; + case 9: goto tr2784; + case 32: goto tr2784; + case 40: goto tr2785; + case 41: goto tr2786; + case 2058: goto tr2788; + case 2107: goto tr2789; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2752; - goto tr2672; -tr2706: + goto tr2787; + goto tr2707; +tr2741: { s->buffer_length = 0; } - goto st1096; -tr2755: + goto st1114; +tr2790: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1096; -tr2700: + goto st1114; +tr2735: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70923,20 +71884,20 @@ tr2700: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1096; -tr2769: + goto st1114; +tr2804: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -70946,17 +71907,17 @@ tr2769: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1096; -st1096: + goto st1114; +st1114: if ( ++p == pe ) - goto _test_eof1096; -case 1096: + goto _test_eof1114; +case 1114: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -70976,50 +71937,50 @@ case 1096: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2756; + goto tr2791; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2755; + goto tr2790; goto tr77; -tr2694: +tr2729: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1097; -tr2695: + goto st1115; +tr2730: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1097; -tr2696: + goto st1115; +tr2731: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1097; -tr2698: + goto st1115; +tr2733: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1097; -st1097: + goto st1115; +st1115: if ( ++p == pe ) - goto _test_eof1097; -case 1097: + goto _test_eof1115; +case 1115: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71033,17 +71994,17 @@ case 1097: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2690; - case 32: goto tr2690; - case 40: goto tr2691; - case 41: goto tr2692; - case 2058: goto tr2699; - case 2107: goto tr2700; + case 9: goto tr2725; + case 32: goto tr2725; + case 40: goto tr2726; + case 41: goto tr2727; + case 2058: goto tr2734; + case 2107: goto tr2735; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2757; - goto tr2672; -tr2758: + goto tr2792; + goto tr2707; +tr2793: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71055,11 +72016,11 @@ tr2758: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1098; -tr2757: + goto st1116; +tr2792: { s->number64_tmp = s->number64; } @@ -71077,17 +72038,17 @@ tr2757: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1098; -tr2767: + goto st1116; +tr2802: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -71107,69 +72068,69 @@ tr2767: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1098; -st1098: + goto st1116; +st1116: if ( ++p == pe ) - goto _test_eof1098; -case 1098: + goto _test_eof1116; +case 1116: switch( (*p) ) { - case 68: goto tr2759; - case 72: goto tr2760; - case 77: goto tr2761; - case 83: goto st1099; - case 87: goto tr2763; - case 100: goto tr2759; - case 104: goto tr2760; - case 109: goto tr2761; - case 115: goto st1099; - case 119: goto tr2763; + case 68: goto tr2794; + case 72: goto tr2795; + case 77: goto tr2796; + case 83: goto st1117; + case 87: goto tr2798; + case 100: goto tr2794; + case 104: goto tr2795; + case 109: goto tr2796; + case 115: goto st1117; + case 119: goto tr2798; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2758; - goto tr2672; -tr2759: + goto tr2793; + goto tr2707; +tr2794: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1099; -tr2760: + goto st1117; +tr2795: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1099; -tr2761: + goto st1117; +tr2796: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1099; -tr2763: + goto st1117; +tr2798: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1099; -st1099: + goto st1117; +st1117: if ( ++p == pe ) - goto _test_eof1099; -case 1099: + goto _test_eof1117; +case 1117: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71183,29 +72144,29 @@ case 1099: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2764; - case 32: goto tr2764; - case 40: goto tr2765; - case 41: goto tr2766; - case 2058: goto tr2768; - case 2107: goto tr2769; + case 9: goto tr2799; + case 32: goto tr2799; + case 40: goto tr2800; + case 41: goto tr2801; + case 2058: goto tr2803; + case 2107: goto tr2804; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2767; - goto tr2672; -tr2689: + goto tr2802; + goto tr2707; +tr2724: { s->buffer_length = 0; } - goto st1100; -tr2770: + goto st1118; +tr2805: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1100; -tr2683: + goto st1118; +tr2718: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71213,20 +72174,20 @@ tr2683: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1100; -tr2784: + goto st1118; +tr2819: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -71236,17 +72197,17 @@ tr2784: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1100; -st1100: + goto st1118; +st1118: if ( ++p == pe ) - goto _test_eof1100; -case 1100: + goto _test_eof1118; +case 1118: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -71266,50 +72227,50 @@ case 1100: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2771; + goto tr2806; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2770; + goto tr2805; goto tr77; -tr2677: +tr2712: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1101; -tr2678: + goto st1119; +tr2713: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1101; -tr2679: + goto st1119; +tr2714: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1101; -tr2681: + goto st1119; +tr2716: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1101; -st1101: + goto st1119; +st1119: if ( ++p == pe ) - goto _test_eof1101; -case 1101: + goto _test_eof1119; +case 1119: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71323,17 +72284,17 @@ case 1101: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2673; - case 32: goto tr2673; - case 40: goto tr2674; - case 41: goto tr2675; - case 2058: goto tr2682; - case 2107: goto tr2683; + case 9: goto tr2708; + case 32: goto tr2708; + case 40: goto tr2709; + case 41: goto tr2710; + case 2058: goto tr2717; + case 2107: goto tr2718; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2772; - goto tr2672; -tr2773: + goto tr2807; + goto tr2707; +tr2808: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71345,11 +72306,11 @@ tr2773: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1102; -tr2772: + goto st1120; +tr2807: { s->number64_tmp = s->number64; } @@ -71367,17 +72328,17 @@ tr2772: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1102; -tr2782: + goto st1120; +tr2817: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -71397,69 +72358,69 @@ tr2782: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1102; -st1102: + goto st1120; +st1120: if ( ++p == pe ) - goto _test_eof1102; -case 1102: + goto _test_eof1120; +case 1120: switch( (*p) ) { - case 68: goto tr2774; - case 72: goto tr2775; - case 77: goto tr2776; - case 83: goto st1103; - case 87: goto tr2778; - case 100: goto tr2774; - case 104: goto tr2775; - case 109: goto tr2776; - case 115: goto st1103; - case 119: goto tr2778; + case 68: goto tr2809; + case 72: goto tr2810; + case 77: goto tr2811; + case 83: goto st1121; + case 87: goto tr2813; + case 100: goto tr2809; + case 104: goto tr2810; + case 109: goto tr2811; + case 115: goto st1121; + case 119: goto tr2813; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2773; - goto tr2672; -tr2774: + goto tr2808; + goto tr2707; +tr2809: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1103; -tr2775: + goto st1121; +tr2810: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1103; -tr2776: + goto st1121; +tr2811: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1103; -tr2778: + goto st1121; +tr2813: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1103; -st1103: + goto st1121; +st1121: if ( ++p == pe ) - goto _test_eof1103; -case 1103: + goto _test_eof1121; +case 1121: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71473,29 +72434,29 @@ case 1103: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2779; - case 32: goto tr2779; - case 40: goto tr2780; - case 41: goto tr2781; - case 2058: goto tr2783; - case 2107: goto tr2784; + case 9: goto tr2814; + case 32: goto tr2814; + case 40: goto tr2815; + case 41: goto tr2816; + case 2058: goto tr2818; + case 2107: goto tr2819; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2782; - goto tr2672; -tr2671: + goto tr2817; + goto tr2707; +tr2706: { s->buffer_length = 0; } - goto st1104; -tr2785: + goto st1122; +tr2820: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1104; -tr2665: + goto st1122; +tr2700: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71503,17 +72464,17 @@ tr2665: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1104; -st1104: + goto st1122; +st1122: if ( ++p == pe ) - goto _test_eof1104; -case 1104: + goto _test_eof1122; +case 1122: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -71533,34 +72494,34 @@ case 1104: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2786; + goto tr2821; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2785; + goto tr2820; goto tr77; -tr2659: +tr2694: { s->buffer_length = 0; } - goto st1105; -tr2787: + goto st1123; +tr2822: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1105; -tr2652: + goto st1123; +tr2687: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1105; -st1105: + goto st1123; +st1123: if ( ++p == pe ) - goto _test_eof1105; -case 1105: + goto _test_eof1123; +case 1123: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -71580,34 +72541,34 @@ case 1105: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2788; + goto tr2823; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2787; + goto tr2822; goto tr77; -tr2647: +tr2682: { s->buffer_length = 0; } - goto st1106; -tr2789: + goto st1124; +tr2824: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1106; -tr2641: + goto st1124; +tr2676: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1106; -st1106: + goto st1124; +st1124: if ( ++p == pe ) - goto _test_eof1106; -case 1106: + goto _test_eof1124; +case 1124: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -71627,14 +72588,14 @@ case 1106: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2790; + goto tr2825; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2789; + goto tr2824; goto tr77; -st1107: +st1125: if ( ++p == pe ) - goto _test_eof1107; -case 1107: + goto _test_eof1125; +case 1125: switch( (*p) ) { case 32: goto tr77; case 59: goto tr77; @@ -71644,22 +72605,22 @@ case 1107: goto tr77; } else if ( (*p) >= 9 ) goto tr77; - goto tr2791; -tr2791: + goto tr2826; +tr2826: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 1108;goto st330;} } - goto st1108; -st1108: + { p--; {stack[top++] = 1126;goto st336;} } + goto st1126; +st1126: if ( ++p == pe ) - goto _test_eof1108; -case 1108: + goto _test_eof1126; +case 1126: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71673,38 +72634,38 @@ case 1108: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2792; - case 32: goto tr2792; - case 40: goto tr2793; - case 41: goto tr2794; - case 2058: goto tr2795; - case 2107: goto tr2796; + case 9: goto tr2827; + case 32: goto tr2827; + case 40: goto tr2828; + case 41: goto tr2829; + case 2058: goto tr2830; + case 2107: goto tr2831; } goto tr77; -tr2799: +tr2834: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1109; -tr2800: + goto st1127; +tr2835: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1109; -tr2801: + goto st1127; +tr2836: { s->line_counter++; } - goto st1109; -tr2805: + goto st1127; +tr2840: { s->buffer[s->buffer_length++] = 0; @@ -71714,95 +72675,95 @@ tr2805: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1109; goto _out;} + {p++; cs = 1127; goto _out;} } } } { s->line_counter++; } - goto st1109; -tr2792: + goto st1127; +tr2827: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1109; -tr2793: + goto st1127; +tr2828: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1109; -tr2794: + goto st1127; +tr2829: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1109; -tr2795: + goto st1127; +tr2830: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1109; -st1109: + goto st1127; +st1127: if ( ++p == pe ) - goto _test_eof1109; -case 1109: + goto _test_eof1127; +case 1127: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71816,104 +72777,104 @@ case 1109: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1109; - case 32: goto st1109; - case 40: goto tr2799; - case 41: goto tr2800; - case 2058: goto tr2801; - case 2107: goto tr2802; + case 9: goto st1127; + case 32: goto st1127; + case 40: goto tr2834; + case 41: goto tr2835; + case 2058: goto tr2836; + case 2107: goto tr2837; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2797; + goto tr2832; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2797; + goto tr2832; } else - goto tr2797; + goto tr2832; goto tr77; -tr2797: +tr2832: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 1110;goto st330;} } - goto st1110; -st1110: + { p--; {stack[top++] = 1128;goto st336;} } + goto st1128; +st1128: if ( ++p == pe ) - goto _test_eof1110; -case 1110: + goto _test_eof1128; +case 1128: switch( (*p) ) { - case 32: goto tr2803; - case 59: goto tr2803; + case 32: goto tr2838; + case 59: goto tr2838; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2803; + goto tr2838; } else if ( (*p) >= 9 ) - goto tr2803; + goto tr2838; goto tr77; -tr2803: +tr2838: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1518; -st1518: + goto st1536; +st1536: if ( ++p == pe ) - goto _test_eof1518; -case 1518: + goto _test_eof1536; +case 1536: goto st0; -tr2802: +tr2837: { s->buffer_length = 0; } - goto st1111; -tr2804: + goto st1129; +tr2839: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1111; -tr2796: + goto st1129; +tr2831: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1111; -st1111: + goto st1129; +st1129: if ( ++p == pe ) - goto _test_eof1111; -case 1111: + goto _test_eof1129; +case 1129: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -71933,38 +72894,38 @@ case 1111: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2805; + goto tr2840; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2804; + goto tr2839; goto tr77; -st1112: +st1130: if ( ++p == pe ) - goto _test_eof1112; -case 1112: + goto _test_eof1130; +case 1130: switch( (*p) ) { - case 42: goto tr2806; - case 92: goto tr2806; - case 95: goto tr2806; + case 42: goto tr2841; + case 92: goto tr2841; + case 95: goto tr2841; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2806; + goto tr2841; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2806; + goto tr2841; } else - goto tr2806; + goto tr2841; goto tr77; -tr2806: +tr2841: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1113;goto st321;} } - goto st1113; -st1113: + { p--; {stack[top++] = 1131;goto st327;} } + goto st1131; +st1131: if ( ++p == pe ) - goto _test_eof1113; -case 1113: + goto _test_eof1131; +case 1131: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71978,38 +72939,38 @@ case 1113: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2807; - case 32: goto tr2807; - case 40: goto tr2808; - case 41: goto tr2809; - case 2058: goto tr2810; - case 2107: goto tr2811; + case 9: goto tr2842; + case 32: goto tr2842; + case 40: goto tr2843; + case 41: goto tr2844; + case 2058: goto tr2845; + case 2107: goto tr2846; } goto tr77; -tr2813: +tr2848: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1114; -tr2814: + goto st1132; +tr2849: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1114; -tr2816: + goto st1132; +tr2851: { s->line_counter++; } - goto st1114; -tr2820: + goto st1132; +tr2855: { s->buffer[s->buffer_length++] = 0; @@ -72019,55 +72980,55 @@ tr2820: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1114; goto _out;} + {p++; cs = 1132; goto _out;} } } } { s->line_counter++; } - goto st1114; -tr2807: + goto st1132; +tr2842: { rdata_tail += s->dname_tmp_length; } - goto st1114; -tr2808: + goto st1132; +tr2843: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1114; -tr2809: + goto st1132; +tr2844: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1114; -tr2810: + goto st1132; +tr2845: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1114; -st1114: + goto st1132; +st1132: if ( ++p == pe ) - goto _test_eof1114; -case 1114: + goto _test_eof1132; +case 1132: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72081,82 +73042,82 @@ case 1114: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1114; - case 32: goto st1114; - case 40: goto tr2813; - case 41: goto tr2814; - case 42: goto tr2815; - case 92: goto tr2815; - case 95: goto tr2815; - case 2058: goto tr2816; - case 2107: goto tr2817; + case 9: goto st1132; + case 32: goto st1132; + case 40: goto tr2848; + case 41: goto tr2849; + case 42: goto tr2850; + case 92: goto tr2850; + case 95: goto tr2850; + case 2058: goto tr2851; + case 2107: goto tr2852; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2815; + goto tr2850; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2815; + goto tr2850; } else - goto tr2815; + goto tr2850; goto tr77; -tr2815: +tr2850: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1115;goto st321;} } - goto st1115; -st1115: + { p--; {stack[top++] = 1133;goto st327;} } + goto st1133; +st1133: if ( ++p == pe ) - goto _test_eof1115; -case 1115: + goto _test_eof1133; +case 1133: switch( (*p) ) { - case 32: goto tr2818; - case 59: goto tr2818; + case 32: goto tr2853; + case 59: goto tr2853; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2818; + goto tr2853; } else if ( (*p) >= 9 ) - goto tr2818; + goto tr2853; goto tr77; -tr2818: +tr2853: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1519; -st1519: + goto st1537; +st1537: if ( ++p == pe ) - goto _test_eof1519; -case 1519: + goto _test_eof1537; +case 1537: goto st0; -tr2817: +tr2852: { s->buffer_length = 0; } - goto st1116; -tr2819: + goto st1134; +tr2854: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1116; -tr2811: + goto st1134; +tr2846: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1116; -st1116: + goto st1134; +st1134: if ( ++p == pe ) - goto _test_eof1116; -case 1116: + goto _test_eof1134; +case 1134: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -72176,18 +73137,18 @@ case 1116: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2820; + goto tr2855; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2819; + goto tr2854; goto tr77; -st1117: +st1135: if ( ++p == pe ) - goto _test_eof1117; -case 1117: + goto _test_eof1135; +case 1135: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2821; - goto tr2653; -tr2821: + goto tr2856; + goto tr2688; +tr2856: { s->number64 = 0; } @@ -72202,11 +73163,11 @@ tr2821: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1118; -tr2825: + goto st1136; +tr2860: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -72218,14 +73179,14 @@ tr2825: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1118; -st1118: + goto st1136; +st1136: if ( ++p == pe ) - goto _test_eof1118; -case 1118: + goto _test_eof1136; +case 1136: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72239,40 +73200,40 @@ case 1118: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2822; - case 32: goto tr2822; - case 40: goto tr2823; - case 41: goto tr2824; - case 2058: goto tr2826; - case 2107: goto tr2827; + case 9: goto tr2857; + case 32: goto tr2857; + case 40: goto tr2858; + case 41: goto tr2859; + case 2058: goto tr2861; + case 2107: goto tr2862; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2825; - goto tr2653; -tr2829: + goto tr2860; + goto tr2688; +tr2864: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1119; -tr2830: + goto st1137; +tr2865: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1119; -tr2832: + goto st1137; +tr2867: { s->line_counter++; } - goto st1119; -tr2836: + goto st1137; +tr2871: { s->buffer[s->buffer_length++] = 0; @@ -72282,15 +73243,15 @@ tr2836: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1119; goto _out;} + {p++; cs = 1137; goto _out;} } } } { s->line_counter++; } - goto st1119; -tr2822: + goto st1137; +tr2857: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -72298,11 +73259,11 @@ tr2822: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1119; -tr2823: + goto st1137; +tr2858: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -72310,18 +73271,18 @@ tr2823: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1119; -tr2824: + goto st1137; +tr2859: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -72329,18 +73290,18 @@ tr2824: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1119; -tr2826: + goto st1137; +tr2861: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -72348,17 +73309,17 @@ tr2826: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1119; -st1119: + goto st1137; +st1137: if ( ++p == pe ) - goto _test_eof1119; -case 1119: + goto _test_eof1137; +case 1137: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72372,71 +73333,71 @@ case 1119: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1119; - case 32: goto st1119; - case 40: goto tr2829; - case 41: goto tr2830; - case 42: goto tr2831; - case 92: goto tr2831; - case 95: goto tr2831; - case 2058: goto tr2832; - case 2107: goto tr2833; + case 9: goto st1137; + case 32: goto st1137; + case 40: goto tr2864; + case 41: goto tr2865; + case 42: goto tr2866; + case 92: goto tr2866; + case 95: goto tr2866; + case 2058: goto tr2867; + case 2107: goto tr2868; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2831; + goto tr2866; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2831; + goto tr2866; } else - goto tr2831; + goto tr2866; goto tr77; -tr2831: +tr2866: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1120;goto st321;} } - goto st1120; -st1120: + { p--; {stack[top++] = 1138;goto st327;} } + goto st1138; +st1138: if ( ++p == pe ) - goto _test_eof1120; -case 1120: + goto _test_eof1138; +case 1138: switch( (*p) ) { - case 32: goto tr2834; - case 59: goto tr2834; + case 32: goto tr2869; + case 59: goto tr2869; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2834; + goto tr2869; } else if ( (*p) >= 9 ) - goto tr2834; + goto tr2869; goto tr77; -tr2834: +tr2869: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1520; -st1520: + goto st1538; +st1538: if ( ++p == pe ) - goto _test_eof1520; -case 1520: + goto _test_eof1538; +case 1538: goto st0; -tr2833: +tr2868: { s->buffer_length = 0; } - goto st1121; -tr2835: + goto st1139; +tr2870: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1121; -tr2827: + goto st1139; +tr2862: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -72444,17 +73405,17 @@ tr2827: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1121; -st1121: + goto st1139; +st1139: if ( ++p == pe ) - goto _test_eof1121; -case 1121: + goto _test_eof1139; +case 1139: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -72474,36 +73435,36 @@ case 1121: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2836; + goto tr2871; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2835; + goto tr2870; goto tr77; -st1122: +st1140: if ( ++p == pe ) - goto _test_eof1122; -case 1122: + goto _test_eof1140; +case 1140: switch( (*p) ) { - case 32: goto tr2838; - case 59: goto tr2838; + case 32: goto tr2873; + case 59: goto tr2873; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2838; + goto tr2873; } else if ( (*p) >= 9 ) - goto tr2838; - goto tr2837; -tr2847: + goto tr2873; + goto tr2872; +tr2882: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 1123;goto st330;} } - goto st1123; -tr2837: + { p--; {stack[top++] = 1141;goto st336;} } + goto st1141; +tr2872: { s->long_string = true; } @@ -72512,15 +73473,15 @@ tr2837: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 1123;goto st330;} } - goto st1123; -st1123: + { p--; {stack[top++] = 1141;goto st336;} } + goto st1141; +st1141: if ( ++p == pe ) - goto _test_eof1123; -case 1123: + goto _test_eof1141; +case 1141: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72538,42 +73499,42 @@ case 1123: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2839; - case 32: goto tr2839; - case 40: goto tr2840; - case 41: goto tr2841; - case 3082: goto tr2842; - case 3131: goto tr2843; - case 3338: goto tr2844; - case 3387: goto tr2844; - case 3594: goto tr2845; - case 3643: goto tr2846; - } - goto tr2838; -tr2849: + case 9: goto tr2874; + case 32: goto tr2874; + case 40: goto tr2875; + case 41: goto tr2876; + case 3082: goto tr2877; + case 3131: goto tr2878; + case 3338: goto tr2879; + case 3387: goto tr2879; + case 3594: goto tr2880; + case 3643: goto tr2881; + } + goto tr2873; +tr2884: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1124; -tr2850: + goto st1142; +tr2885: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1124; -tr2851: + goto st1142; +tr2886: { s->line_counter++; } - goto st1124; -tr2857: + goto st1142; +tr2892: { s->buffer[s->buffer_length++] = 0; @@ -72583,95 +73544,95 @@ tr2857: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1124; goto _out;} + {p++; cs = 1142; goto _out;} } } } { s->line_counter++; } - goto st1124; -tr2839: + goto st1142; +tr2874: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1124; -tr2840: + goto st1142; +tr2875: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1124; -tr2841: + goto st1142; +tr2876: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1124; -tr2842: + goto st1142; +tr2877: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1124; -st1124: + goto st1142; +st1142: if ( ++p == pe ) - goto _test_eof1124; -case 1124: + goto _test_eof1142; +case 1142: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72689,60 +73650,60 @@ case 1124: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1124; - case 32: goto st1124; - case 40: goto tr2849; - case 41: goto tr2850; - case 3082: goto tr2851; - case 3131: goto tr2852; - case 3338: goto tr2853; - case 3387: goto tr2853; - case 3594: goto tr2854; - case 3643: goto tr2855; + case 9: goto st1142; + case 32: goto st1142; + case 40: goto tr2884; + case 41: goto tr2885; + case 3082: goto tr2886; + case 3131: goto tr2887; + case 3338: goto tr2888; + case 3387: goto tr2888; + case 3594: goto tr2889; + case 3643: goto tr2890; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2847; + goto tr2882; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2847; + goto tr2882; } else - goto tr2847; - goto tr2838; -tr2852: + goto tr2882; + goto tr2873; +tr2887: { s->buffer_length = 0; } - goto st1125; -tr2856: + goto st1143; +tr2891: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1125; -tr2843: + goto st1143; +tr2878: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1125; -st1125: + goto st1143; +st1143: if ( ++p == pe ) - goto _test_eof1125; -case 1125: + goto _test_eof1143; +case 1143: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -72762,22 +73723,22 @@ case 1125: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2857; + goto tr2892; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2856; - goto tr2838; -tr2844: + goto tr2891; + goto tr2873; +tr2879: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -72786,32 +73747,32 @@ tr2844: { p--; {cs = stack[--top];goto _again;} } - goto st1521; -tr2853: + goto st1539; +tr2888: { s->long_string = false; } { p--; {cs = stack[--top];goto _again;} } - goto st1521; -st1521: + goto st1539; +st1539: if ( ++p == pe ) - goto _test_eof1521; -case 1521: + goto _test_eof1539; +case 1539: goto st0; -tr2845: +tr2880: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -72823,8 +73784,8 @@ tr2845: { p--; {cs = stack[--top];goto _again;} } - goto st1522; -tr2854: + goto st1540; +tr2889: { s->line_counter++; } @@ -72834,11 +73795,11 @@ tr2854: { p--; {cs = stack[--top];goto _again;} } - goto st1522; -st1522: + goto st1540; +st1540: if ( ++p == pe ) - goto _test_eof1522; -case 1522: + goto _test_eof1540; +case 1540: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72856,38 +73817,38 @@ case 1522: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1124; - case 32: goto st1124; - case 40: goto tr2849; - case 41: goto tr2850; - case 3082: goto tr2851; - case 3131: goto tr2852; - case 3338: goto tr2853; - case 3387: goto tr2853; - case 3594: goto tr2854; - case 3643: goto tr2855; + case 9: goto st1142; + case 32: goto st1142; + case 40: goto tr2884; + case 41: goto tr2885; + case 3082: goto tr2886; + case 3131: goto tr2887; + case 3338: goto tr2888; + case 3387: goto tr2888; + case 3594: goto tr2889; + case 3643: goto tr2890; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2847; + goto tr2882; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2847; + goto tr2882; } else - goto tr2847; - goto tr2838; -tr2846: + goto tr2882; + goto tr2873; +tr2881: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -72899,8 +73860,8 @@ tr2846: { p--; {cs = stack[--top];goto _again;} } - goto st1523; -tr2855: + goto st1541; +tr2890: { s->buffer_length = 0; } @@ -72910,11 +73871,11 @@ tr2855: { p--; {cs = stack[--top];goto _again;} } - goto st1523; -st1523: + goto st1541; +st1541: if ( ++p == pe ) - goto _test_eof1523; -case 1523: + goto _test_eof1541; +case 1541: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -72934,36 +73895,36 @@ case 1523: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2857; + goto tr2892; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2856; - goto tr2838; -st1126: + goto tr2891; + goto tr2873; +st1144: if ( ++p == pe ) - goto _test_eof1126; -case 1126: + goto _test_eof1144; +case 1144: if ( (*p) == 46 ) - goto tr2858; + goto tr2893; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2858; + goto tr2893; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2858; + goto tr2893; } else - goto tr2858; - goto tr2630; -tr2860: + goto tr2893; + goto tr2665; +tr2895: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1127; -tr2858: + goto st1145; +tr2893: { s->buffer_length = 0; } @@ -72972,47 +73933,47 @@ tr2858: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1127; -st1127: + goto st1145; +st1145: if ( ++p == pe ) - goto _test_eof1127; -case 1127: + goto _test_eof1145; +case 1145: switch( (*p) ) { - case 32: goto tr2859; - case 46: goto tr2860; - case 59: goto tr2859; + case 32: goto tr2894; + case 46: goto tr2895; + case 59: goto tr2894; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2859; + goto tr2894; } else if ( (*p) >= 9 ) - goto tr2859; + goto tr2894; } else if ( (*p) > 58 ) { if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2860; + goto tr2895; } else if ( (*p) >= 65 ) - goto tr2860; + goto tr2895; } else - goto tr2860; - goto tr2630; -tr2859: + goto tr2895; + goto tr2665; +tr2894: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -73020,20 +73981,20 @@ tr2859: { p--; {cs = stack[--top];goto _again;} } - goto st1524; -st1524: + goto st1542; +st1542: if ( ++p == pe ) - goto _test_eof1524; -case 1524: + goto _test_eof1542; +case 1542: goto st0; -st1128: +st1146: if ( ++p == pe ) - goto _test_eof1128; -case 1128: + goto _test_eof1146; +case 1146: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2862; - goto tr2861; -tr2866: + goto tr2897; + goto tr2896; +tr2901: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -73045,11 +74006,11 @@ tr2866: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1129; -tr2862: + goto st1147; +tr2897: { memset(&(s->loc), 0, sizeof(s->loc)); // Defaults. @@ -73074,14 +74035,14 @@ tr2862: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1129; -st1129: + goto st1147; +st1147: if ( ++p == pe ) - goto _test_eof1129; -case 1129: + goto _test_eof1147; +case 1147: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73095,40 +74056,40 @@ case 1129: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2863; - case 32: goto tr2863; - case 40: goto tr2864; - case 41: goto tr2865; - case 2058: goto tr2867; - case 2107: goto tr2868; + case 9: goto tr2898; + case 32: goto tr2898; + case 40: goto tr2899; + case 41: goto tr2900; + case 2058: goto tr2902; + case 2107: goto tr2903; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2866; - goto tr2861; -tr2870: + goto tr2901; + goto tr2896; +tr2905: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1130; -tr2871: + goto st1148; +tr2906: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1130; -tr2875: + goto st1148; +tr2910: { s->line_counter++; } - goto st1130; -tr3118: + goto st1148; +tr3153: { s->buffer[s->buffer_length++] = 0; @@ -73138,75 +74099,75 @@ tr3118: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1130; goto _out;} + {p++; cs = 1148; goto _out;} } } } { s->line_counter++; } - goto st1130; -tr2863: + goto st1148; +tr2898: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1130; -tr2864: + goto st1148; +tr2899: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1130; -tr2865: + goto st1148; +tr2900: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1130; -tr2867: + goto st1148; +tr2902: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1130; -st1130: + goto st1148; +st1148: if ( ++p == pe ) - goto _test_eof1130; -case 1130: + goto _test_eof1148; +case 1148: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73220,19 +74181,19 @@ case 1130: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1130; - case 32: goto st1130; - case 40: goto tr2870; - case 41: goto tr2871; - case 78: goto st1135; - case 83: goto st1177; - case 2058: goto tr2875; - case 2107: goto tr2876; + case 9: goto st1148; + case 32: goto st1148; + case 40: goto tr2905; + case 41: goto tr2906; + case 78: goto st1153; + case 83: goto st1195; + case 2058: goto tr2910; + case 2107: goto tr2911; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2872; - goto tr2861; -tr2872: + goto tr2907; + goto tr2896; +tr2907: { s->number64 = 0; } @@ -73247,11 +74208,11 @@ tr2872: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1131; -tr2880: + goto st1149; +tr2915: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -73263,14 +74224,14 @@ tr2880: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1131; -st1131: + goto st1149; +st1149: if ( ++p == pe ) - goto _test_eof1131; -case 1131: + goto _test_eof1149; +case 1149: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73284,40 +74245,40 @@ case 1131: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2877; - case 32: goto tr2877; - case 40: goto tr2878; - case 41: goto tr2879; - case 2058: goto tr2881; - case 2107: goto tr2882; + case 9: goto tr2912; + case 32: goto tr2912; + case 40: goto tr2913; + case 41: goto tr2914; + case 2058: goto tr2916; + case 2107: goto tr2917; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2880; - goto tr2861; -tr2884: + goto tr2915; + goto tr2896; +tr2919: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1132; -tr2885: + goto st1150; +tr2920: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1132; -tr2887: + goto st1150; +tr2922: { s->line_counter++; } - goto st1132; -tr3116: + goto st1150; +tr3151: { s->buffer[s->buffer_length++] = 0; @@ -73327,75 +74288,75 @@ tr3116: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1132; goto _out;} + {p++; cs = 1150; goto _out;} } } } { s->line_counter++; } - goto st1132; -tr2877: + goto st1150; +tr2912: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1132; -tr2878: + goto st1150; +tr2913: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1132; -tr2879: + goto st1150; +tr2914: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1132; -tr2881: + goto st1150; +tr2916: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1132; -st1132: + goto st1150; +st1150: if ( ++p == pe ) - goto _test_eof1132; -case 1132: + goto _test_eof1150; +case 1150: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73409,19 +74370,19 @@ case 1132: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1132; - case 32: goto st1132; - case 40: goto tr2884; - case 41: goto tr2885; - case 78: goto st1135; - case 83: goto st1177; - case 2058: goto tr2887; - case 2107: goto tr2888; + case 9: goto st1150; + case 32: goto st1150; + case 40: goto tr2919; + case 41: goto tr2920; + case 78: goto st1153; + case 83: goto st1195; + case 2058: goto tr2922; + case 2107: goto tr2923; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2886; - goto tr2861; -tr2893: + goto tr2921; + goto tr2896; +tr2928: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -73433,11 +74394,11 @@ tr2893: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1133; -tr2886: + goto st1151; +tr2921: { s->decimals = 3; } @@ -73458,14 +74419,14 @@ tr2886: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1133; -st1133: + goto st1151; +st1151: if ( ++p == pe ) - goto _test_eof1133; -case 1133: + goto _test_eof1151; +case 1151: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73479,41 +74440,41 @@ case 1133: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2889; - case 32: goto tr2889; - case 40: goto tr2890; - case 41: goto tr2891; - case 46: goto st1179; - case 2058: goto tr2894; - case 2107: goto tr2895; + case 9: goto tr2924; + case 32: goto tr2924; + case 40: goto tr2925; + case 41: goto tr2926; + case 46: goto st1197; + case 2058: goto tr2929; + case 2107: goto tr2930; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2893; - goto tr2861; -tr2897: + goto tr2928; + goto tr2896; +tr2932: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1134; -tr2898: + goto st1152; +tr2933: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1134; -tr2899: + goto st1152; +tr2934: { s->line_counter++; } - goto st1134; -tr3107: + goto st1152; +tr3142: { s->buffer[s->buffer_length++] = 0; @@ -73523,15 +74484,15 @@ tr3107: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1134; goto _out;} + {p++; cs = 1152; goto _out;} } } } { s->line_counter++; } - goto st1134; -tr2889: + goto st1152; +tr2924: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -73541,7 +74502,7 @@ tr2889: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -73549,11 +74510,11 @@ tr2889: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1134; -tr2890: + goto st1152; +tr2925: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -73563,7 +74524,7 @@ tr2890: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -73571,18 +74532,18 @@ tr2890: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1134; -tr2891: + goto st1152; +tr2926: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -73592,7 +74553,7 @@ tr2891: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -73600,18 +74561,18 @@ tr2891: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1134; -tr2894: + goto st1152; +tr2929: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -73621,7 +74582,7 @@ tr2894: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -73629,14 +74590,14 @@ tr2894: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1134; -tr3108: + goto st1152; +tr3143: { s->number64_tmp = s->number64; } @@ -73649,7 +74610,7 @@ tr3108: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -73657,11 +74618,11 @@ tr3108: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1134; -tr3109: + goto st1152; +tr3144: { s->number64_tmp = s->number64; } @@ -73674,7 +74635,7 @@ tr3109: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -73682,18 +74643,18 @@ tr3109: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1134; -tr3110: + goto st1152; +tr3145: { s->number64_tmp = s->number64; } @@ -73706,7 +74667,7 @@ tr3110: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -73714,18 +74675,18 @@ tr3110: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1134; -tr3112: + goto st1152; +tr3147: { s->number64_tmp = s->number64; } @@ -73738,7 +74699,7 @@ tr3112: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -73746,17 +74707,17 @@ tr3112: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1134; -st1134: + goto st1152; +st1152: if ( ++p == pe ) - goto _test_eof1134; -case 1134: + goto _test_eof1152; +case 1152: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73770,20 +74731,20 @@ case 1134: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1134; - case 32: goto st1134; - case 40: goto tr2897; - case 41: goto tr2898; - case 78: goto st1135; - case 83: goto st1177; - case 2058: goto tr2899; - case 2107: goto tr2900; - } - goto tr2861; -st1135: + case 9: goto st1152; + case 32: goto st1152; + case 40: goto tr2932; + case 41: goto tr2933; + case 78: goto st1153; + case 83: goto st1195; + case 2058: goto tr2934; + case 2107: goto tr2935; + } + goto tr2896; +st1153: if ( ++p == pe ) - goto _test_eof1135; -case 1135: + goto _test_eof1153; +case 1153: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73797,38 +74758,38 @@ case 1135: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1136; - case 32: goto st1136; - case 40: goto tr2902; - case 41: goto tr2903; - case 2058: goto tr2904; - case 2107: goto tr2905; - } - goto tr2861; -tr2902: + case 9: goto st1154; + case 32: goto st1154; + case 40: goto tr2937; + case 41: goto tr2938; + case 2058: goto tr2939; + case 2107: goto tr2940; + } + goto tr2896; +tr2937: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1136; -tr2903: + goto st1154; +tr2938: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1136; -tr2904: + goto st1154; +tr2939: { s->line_counter++; } - goto st1136; -tr3100: + goto st1154; +tr3135: { s->buffer[s->buffer_length++] = 0; @@ -73838,55 +74799,55 @@ tr3100: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1136; goto _out;} + {p++; cs = 1154; goto _out;} } } } { s->line_counter++; } - goto st1136; -tr3101: + goto st1154; +tr3136: { s->loc.lat_sign = -1; } - goto st1136; -tr3102: + goto st1154; +tr3137: { s->loc.lat_sign = -1; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1136; -tr3103: + goto st1154; +tr3138: { s->loc.lat_sign = -1; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1136; -tr3104: + goto st1154; +tr3139: { s->loc.lat_sign = -1; } { s->line_counter++; } - goto st1136; -st1136: + goto st1154; +st1154: if ( ++p == pe ) - goto _test_eof1136; -case 1136: + goto _test_eof1154; +case 1154: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73900,17 +74861,17 @@ case 1136: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1136; - case 32: goto st1136; - case 40: goto tr2902; - case 41: goto tr2903; - case 2058: goto tr2904; - case 2107: goto tr2905; + case 9: goto st1154; + case 32: goto st1154; + case 40: goto tr2937; + case 41: goto tr2938; + case 2058: goto tr2939; + case 2107: goto tr2940; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2906; - goto tr2861; -tr2906: + goto tr2941; + goto tr2896; +tr2941: { s->number64 = 0; } @@ -73925,11 +74886,11 @@ tr2906: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1137; -tr2910: + goto st1155; +tr2945: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -73941,14 +74902,14 @@ tr2910: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1137; -st1137: + goto st1155; +st1155: if ( ++p == pe ) - goto _test_eof1137; -case 1137: + goto _test_eof1155; +case 1155: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73962,40 +74923,40 @@ case 1137: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2907; - case 32: goto tr2907; - case 40: goto tr2908; - case 41: goto tr2909; - case 2058: goto tr2911; - case 2107: goto tr2912; + case 9: goto tr2942; + case 32: goto tr2942; + case 40: goto tr2943; + case 41: goto tr2944; + case 2058: goto tr2946; + case 2107: goto tr2947; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2910; - goto tr2861; -tr2914: + goto tr2945; + goto tr2896; +tr2949: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1138; -tr2915: + goto st1156; +tr2950: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1138; -tr2919: + goto st1156; +tr2954: { s->line_counter++; } - goto st1138; -tr3098: + goto st1156; +tr3133: { s->buffer[s->buffer_length++] = 0; @@ -74005,75 +74966,75 @@ tr3098: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1138; goto _out;} + {p++; cs = 1156; goto _out;} } } } { s->line_counter++; } - goto st1138; -tr2907: + goto st1156; +tr2942: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1138; -tr2908: + goto st1156; +tr2943: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1138; -tr2909: + goto st1156; +tr2944: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1138; -tr2911: + goto st1156; +tr2946: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1138; -st1138: + goto st1156; +st1156: if ( ++p == pe ) - goto _test_eof1138; -case 1138: + goto _test_eof1156; +case 1156: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74087,19 +75048,19 @@ case 1138: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1138; - case 32: goto st1138; - case 40: goto tr2914; - case 41: goto tr2915; - case 69: goto st1143; - case 87: goto st1170; - case 2058: goto tr2919; - case 2107: goto tr2920; + case 9: goto st1156; + case 32: goto st1156; + case 40: goto tr2949; + case 41: goto tr2950; + case 69: goto st1161; + case 87: goto st1188; + case 2058: goto tr2954; + case 2107: goto tr2955; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2916; - goto tr2861; -tr2916: + goto tr2951; + goto tr2896; +tr2951: { s->number64 = 0; } @@ -74114,11 +75075,11 @@ tr2916: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1139; -tr2924: + goto st1157; +tr2959: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -74130,14 +75091,14 @@ tr2924: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1139; -st1139: + goto st1157; +st1157: if ( ++p == pe ) - goto _test_eof1139; -case 1139: + goto _test_eof1157; +case 1157: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74151,40 +75112,40 @@ case 1139: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2921; - case 32: goto tr2921; - case 40: goto tr2922; - case 41: goto tr2923; - case 2058: goto tr2925; - case 2107: goto tr2926; + case 9: goto tr2956; + case 32: goto tr2956; + case 40: goto tr2957; + case 41: goto tr2958; + case 2058: goto tr2960; + case 2107: goto tr2961; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2924; - goto tr2861; -tr2928: + goto tr2959; + goto tr2896; +tr2963: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1140; -tr2929: + goto st1158; +tr2964: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1140; -tr2931: + goto st1158; +tr2966: { s->line_counter++; } - goto st1140; -tr3096: + goto st1158; +tr3131: { s->buffer[s->buffer_length++] = 0; @@ -74194,75 +75155,75 @@ tr3096: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1140; goto _out;} + {p++; cs = 1158; goto _out;} } } } { s->line_counter++; } - goto st1140; -tr2921: + goto st1158; +tr2956: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1140; -tr2922: + goto st1158; +tr2957: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1140; -tr2923: + goto st1158; +tr2958: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1140; -tr2925: + goto st1158; +tr2960: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1140; -st1140: + goto st1158; +st1158: if ( ++p == pe ) - goto _test_eof1140; -case 1140: + goto _test_eof1158; +case 1158: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74276,19 +75237,19 @@ case 1140: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1140; - case 32: goto st1140; - case 40: goto tr2928; - case 41: goto tr2929; - case 69: goto st1143; - case 87: goto st1170; - case 2058: goto tr2931; - case 2107: goto tr2932; + case 9: goto st1158; + case 32: goto st1158; + case 40: goto tr2963; + case 41: goto tr2964; + case 69: goto st1161; + case 87: goto st1188; + case 2058: goto tr2966; + case 2107: goto tr2967; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2930; - goto tr2861; -tr2937: + goto tr2965; + goto tr2896; +tr2972: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -74300,11 +75261,11 @@ tr2937: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1141; -tr2930: + goto st1159; +tr2965: { s->decimals = 3; } @@ -74325,14 +75286,14 @@ tr2930: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1141; -st1141: + goto st1159; +st1159: if ( ++p == pe ) - goto _test_eof1141; -case 1141: + goto _test_eof1159; +case 1159: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74346,41 +75307,41 @@ case 1141: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2933; - case 32: goto tr2933; - case 40: goto tr2934; - case 41: goto tr2935; - case 46: goto st1172; - case 2058: goto tr2938; - case 2107: goto tr2939; + case 9: goto tr2968; + case 32: goto tr2968; + case 40: goto tr2969; + case 41: goto tr2970; + case 46: goto st1190; + case 2058: goto tr2973; + case 2107: goto tr2974; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2937; - goto tr2861; -tr2941: + goto tr2972; + goto tr2896; +tr2976: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1142; -tr2942: + goto st1160; +tr2977: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1142; -tr2943: + goto st1160; +tr2978: { s->line_counter++; } - goto st1142; -tr3087: + goto st1160; +tr3122: { s->buffer[s->buffer_length++] = 0; @@ -74390,15 +75351,15 @@ tr3087: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1142; goto _out;} + {p++; cs = 1160; goto _out;} } } } { s->line_counter++; } - goto st1142; -tr2933: + goto st1160; +tr2968: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74408,7 +75369,7 @@ tr2933: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -74416,11 +75377,11 @@ tr2933: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1142; -tr2934: + goto st1160; +tr2969: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74430,7 +75391,7 @@ tr2934: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -74438,18 +75399,18 @@ tr2934: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1142; -tr2935: + goto st1160; +tr2970: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74459,7 +75420,7 @@ tr2935: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -74467,18 +75428,18 @@ tr2935: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1142; -tr2938: + goto st1160; +tr2973: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74488,7 +75449,7 @@ tr2938: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -74496,14 +75457,14 @@ tr2938: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1142; -tr3088: + goto st1160; +tr3123: { s->number64_tmp = s->number64; } @@ -74516,7 +75477,7 @@ tr3088: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -74524,11 +75485,11 @@ tr3088: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1142; -tr3089: + goto st1160; +tr3124: { s->number64_tmp = s->number64; } @@ -74541,7 +75502,7 @@ tr3089: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -74549,18 +75510,18 @@ tr3089: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1142; -tr3090: + goto st1160; +tr3125: { s->number64_tmp = s->number64; } @@ -74573,7 +75534,7 @@ tr3090: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -74581,18 +75542,18 @@ tr3090: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1142; -tr3092: + goto st1160; +tr3127: { s->number64_tmp = s->number64; } @@ -74605,7 +75566,7 @@ tr3092: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -74613,17 +75574,17 @@ tr3092: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1142; -st1142: + goto st1160; +st1160: if ( ++p == pe ) - goto _test_eof1142; -case 1142: + goto _test_eof1160; +case 1160: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74637,20 +75598,20 @@ case 1142: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1142; - case 32: goto st1142; - case 40: goto tr2941; - case 41: goto tr2942; - case 69: goto st1143; - case 87: goto st1170; - case 2058: goto tr2943; - case 2107: goto tr2944; - } - goto tr2861; -st1143: + case 9: goto st1160; + case 32: goto st1160; + case 40: goto tr2976; + case 41: goto tr2977; + case 69: goto st1161; + case 87: goto st1188; + case 2058: goto tr2978; + case 2107: goto tr2979; + } + goto tr2896; +st1161: if ( ++p == pe ) - goto _test_eof1143; -case 1143: + goto _test_eof1161; +case 1161: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74664,38 +75625,38 @@ case 1143: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1144; - case 32: goto st1144; - case 40: goto tr2946; - case 41: goto tr2947; - case 2058: goto tr2948; - case 2107: goto tr2949; - } - goto tr2861; -tr2946: + case 9: goto st1162; + case 32: goto st1162; + case 40: goto tr2981; + case 41: goto tr2982; + case 2058: goto tr2983; + case 2107: goto tr2984; + } + goto tr2896; +tr2981: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1144; -tr2947: + goto st1162; +tr2982: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1144; -tr2948: + goto st1162; +tr2983: { s->line_counter++; } - goto st1144; -tr3080: + goto st1162; +tr3115: { s->buffer[s->buffer_length++] = 0; @@ -74705,55 +75666,55 @@ tr3080: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1144; goto _out;} + {p++; cs = 1162; goto _out;} } } } { s->line_counter++; } - goto st1144; -tr3081: + goto st1162; +tr3116: { s->loc.long_sign = -1; } - goto st1144; -tr3082: + goto st1162; +tr3117: { s->loc.long_sign = -1; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1144; -tr3083: + goto st1162; +tr3118: { s->loc.long_sign = -1; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1144; -tr3084: + goto st1162; +tr3119: { s->loc.long_sign = -1; } { s->line_counter++; } - goto st1144; -st1144: + goto st1162; +st1162: if ( ++p == pe ) - goto _test_eof1144; -case 1144: + goto _test_eof1162; +case 1162: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74767,25 +75728,25 @@ case 1144: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1144; - case 32: goto st1144; - case 40: goto tr2946; - case 41: goto tr2947; - case 45: goto st1145; - case 2058: goto tr2948; - case 2107: goto tr2949; + case 9: goto st1162; + case 32: goto st1162; + case 40: goto tr2981; + case 41: goto tr2982; + case 45: goto st1163; + case 2058: goto tr2983; + case 2107: goto tr2984; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2951; - goto tr2861; -st1145: + goto tr2986; + goto tr2896; +st1163: if ( ++p == pe ) - goto _test_eof1145; -case 1145: + goto _test_eof1163; +case 1163: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2952; - goto tr2861; -tr2957: + goto tr2987; + goto tr2896; +tr2992: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -74797,11 +75758,11 @@ tr2957: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1146; -tr2951: + goto st1164; +tr2986: { s->decimals = 2; } @@ -74822,11 +75783,11 @@ tr2951: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1146; -tr2952: + goto st1164; +tr2987: { s->loc.alt_sign = -1; } @@ -74850,14 +75811,14 @@ tr2952: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1146; -st1146: + goto st1164; +st1164: if ( ++p == pe ) - goto _test_eof1146; -case 1146: + goto _test_eof1164; +case 1164: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74875,46 +75836,46 @@ case 1146: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2953; - case 32: goto tr2953; - case 40: goto tr2954; - case 41: goto tr2955; - case 46: goto st1166; - case 109: goto tr2958; - case 3082: goto tr2959; - case 3131: goto tr2960; - case 3338: goto tr2961; - case 3387: goto tr2961; - case 3594: goto tr2962; - case 3643: goto tr2963; + case 9: goto tr2988; + case 32: goto tr2988; + case 40: goto tr2989; + case 41: goto tr2990; + case 46: goto st1184; + case 109: goto tr2993; + case 3082: goto tr2994; + case 3131: goto tr2995; + case 3338: goto tr2996; + case 3387: goto tr2996; + case 3594: goto tr2997; + case 3643: goto tr2998; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2957; - goto tr2861; -tr2965: + goto tr2992; + goto tr2896; +tr3000: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1147; -tr2966: + goto st1165; +tr3001: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1147; -tr2968: + goto st1165; +tr3003: { s->line_counter++; } - goto st1147; -tr3067: + goto st1165; +tr3102: { s->buffer[s->buffer_length++] = 0; @@ -74924,15 +75885,15 @@ tr3067: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1147; goto _out;} + {p++; cs = 1165; goto _out;} } } } { s->line_counter++; } - goto st1147; -tr2953: + goto st1165; +tr2988: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74942,7 +75903,7 @@ tr2953: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -74952,11 +75913,11 @@ tr2953: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1147; -tr2954: + goto st1165; +tr2989: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74966,7 +75927,7 @@ tr2954: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -74976,18 +75937,18 @@ tr2954: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1147; -tr2955: + goto st1165; +tr2990: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74997,7 +75958,7 @@ tr2955: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75007,18 +75968,18 @@ tr2955: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1147; -tr2959: + goto st1165; +tr2994: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75028,7 +75989,7 @@ tr2959: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75038,14 +75999,14 @@ tr2959: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1147; -tr3068: + goto st1165; +tr3103: { s->number64_tmp = s->number64; } @@ -75058,7 +76019,7 @@ tr3068: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75068,11 +76029,11 @@ tr3068: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1147; -tr3069: + goto st1165; +tr3104: { s->number64_tmp = s->number64; } @@ -75085,7 +76046,7 @@ tr3069: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75095,18 +76056,18 @@ tr3069: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1147; -tr3070: + goto st1165; +tr3105: { s->number64_tmp = s->number64; } @@ -75119,7 +76080,7 @@ tr3070: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75129,18 +76090,18 @@ tr3070: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1147; -tr3073: + goto st1165; +tr3108: { s->number64_tmp = s->number64; } @@ -75153,7 +76114,7 @@ tr3073: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75163,17 +76124,17 @@ tr3073: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1147; -st1147: + goto st1165; +st1165: if ( ++p == pe ) - goto _test_eof1147; -case 1147: + goto _test_eof1165; +case 1165: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75191,21 +76152,21 @@ case 1147: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1147; - case 32: goto st1147; - case 40: goto tr2965; - case 41: goto tr2966; - case 3082: goto tr2968; - case 3131: goto tr2969; - case 3338: goto tr2970; - case 3387: goto tr2970; - case 3594: goto tr2971; - case 3643: goto tr2972; + case 9: goto st1165; + case 32: goto st1165; + case 40: goto tr3000; + case 41: goto tr3001; + case 3082: goto tr3003; + case 3131: goto tr3004; + case 3338: goto tr3005; + case 3387: goto tr3005; + case 3594: goto tr3006; + case 3643: goto tr3007; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2967; - goto tr2861; -tr2977: + goto tr3002; + goto tr2896; +tr3012: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75217,11 +76178,11 @@ tr2977: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1148; -tr2967: + goto st1166; +tr3002: { s->decimals = 2; } @@ -75242,14 +76203,14 @@ tr2967: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1148; -st1148: + goto st1166; +st1166: if ( ++p == pe ) - goto _test_eof1148; -case 1148: + goto _test_eof1166; +case 1166: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75267,46 +76228,46 @@ case 1148: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2973; - case 32: goto tr2973; - case 40: goto tr2974; - case 41: goto tr2975; - case 46: goto st1162; - case 109: goto tr2978; - case 3082: goto tr2979; - case 3131: goto tr2980; - case 3338: goto tr2981; - case 3387: goto tr2981; - case 3594: goto tr2982; - case 3643: goto tr2983; + case 9: goto tr3008; + case 32: goto tr3008; + case 40: goto tr3009; + case 41: goto tr3010; + case 46: goto st1180; + case 109: goto tr3013; + case 3082: goto tr3014; + case 3131: goto tr3015; + case 3338: goto tr3016; + case 3387: goto tr3016; + case 3594: goto tr3017; + case 3643: goto tr3018; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2977; - goto tr2861; -tr2985: + goto tr3012; + goto tr2896; +tr3020: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1149; -tr2986: + goto st1167; +tr3021: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1149; -tr2988: + goto st1167; +tr3023: { s->line_counter++; } - goto st1149; -tr3054: + goto st1167; +tr3089: { s->buffer[s->buffer_length++] = 0; @@ -75316,15 +76277,15 @@ tr3054: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1149; goto _out;} + {p++; cs = 1167; goto _out;} } } } { s->line_counter++; } - goto st1149; -tr2973: + goto st1167; +tr3008: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75334,7 +76295,7 @@ tr2973: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75342,11 +76303,11 @@ tr2973: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1149; -tr2974: + goto st1167; +tr3009: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75356,7 +76317,7 @@ tr2974: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75364,18 +76325,18 @@ tr2974: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1149; -tr2975: + goto st1167; +tr3010: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75385,7 +76346,7 @@ tr2975: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75393,18 +76354,18 @@ tr2975: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1149; -tr2979: + goto st1167; +tr3014: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75414,7 +76375,7 @@ tr2979: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75422,14 +76383,14 @@ tr2979: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1149; -tr3055: + goto st1167; +tr3090: { s->number64_tmp = s->number64; } @@ -75442,7 +76403,7 @@ tr3055: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75450,11 +76411,11 @@ tr3055: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1149; -tr3056: + goto st1167; +tr3091: { s->number64_tmp = s->number64; } @@ -75467,7 +76428,7 @@ tr3056: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75475,18 +76436,18 @@ tr3056: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1149; -tr3057: + goto st1167; +tr3092: { s->number64_tmp = s->number64; } @@ -75499,7 +76460,7 @@ tr3057: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75507,18 +76468,18 @@ tr3057: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1149; -tr3060: + goto st1167; +tr3095: { s->number64_tmp = s->number64; } @@ -75531,7 +76492,7 @@ tr3060: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75539,17 +76500,17 @@ tr3060: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1149; -st1149: + goto st1167; +st1167: if ( ++p == pe ) - goto _test_eof1149; -case 1149: + goto _test_eof1167; +case 1167: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75567,21 +76528,21 @@ case 1149: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1149; - case 32: goto st1149; - case 40: goto tr2985; - case 41: goto tr2986; - case 3082: goto tr2988; - case 3131: goto tr2989; - case 3338: goto tr2970; - case 3387: goto tr2970; - case 3594: goto tr2990; - case 3643: goto tr2991; + case 9: goto st1167; + case 32: goto st1167; + case 40: goto tr3020; + case 41: goto tr3021; + case 3082: goto tr3023; + case 3131: goto tr3024; + case 3338: goto tr3005; + case 3387: goto tr3005; + case 3594: goto tr3025; + case 3643: goto tr3026; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2987; - goto tr2861; -tr2996: + goto tr3022; + goto tr2896; +tr3031: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75593,11 +76554,11 @@ tr2996: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1150; -tr2987: + goto st1168; +tr3022: { s->decimals = 2; } @@ -75618,14 +76579,14 @@ tr2987: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1150; -st1150: + goto st1168; +st1168: if ( ++p == pe ) - goto _test_eof1150; -case 1150: + goto _test_eof1168; +case 1168: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75643,46 +76604,46 @@ case 1150: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2992; - case 32: goto tr2992; - case 40: goto tr2993; - case 41: goto tr2994; - case 46: goto st1158; - case 109: goto tr2997; - case 3082: goto tr2998; - case 3131: goto tr2999; - case 3338: goto tr3000; - case 3387: goto tr3000; - case 3594: goto tr3001; - case 3643: goto tr3002; + case 9: goto tr3027; + case 32: goto tr3027; + case 40: goto tr3028; + case 41: goto tr3029; + case 46: goto st1176; + case 109: goto tr3032; + case 3082: goto tr3033; + case 3131: goto tr3034; + case 3338: goto tr3035; + case 3387: goto tr3035; + case 3594: goto tr3036; + case 3643: goto tr3037; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2996; - goto tr2861; -tr3004: + goto tr3031; + goto tr2896; +tr3039: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1151; -tr3005: + goto st1169; +tr3040: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1151; -tr3007: + goto st1169; +tr3042: { s->line_counter++; } - goto st1151; -tr3041: + goto st1169; +tr3076: { s->buffer[s->buffer_length++] = 0; @@ -75692,15 +76653,15 @@ tr3041: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1151; goto _out;} + {p++; cs = 1169; goto _out;} } } } { s->line_counter++; } - goto st1151; -tr2992: + goto st1169; +tr3027: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75710,7 +76671,7 @@ tr2992: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75718,11 +76679,11 @@ tr2992: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1151; -tr2993: + goto st1169; +tr3028: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75732,7 +76693,7 @@ tr2993: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75740,18 +76701,18 @@ tr2993: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1151; -tr2994: + goto st1169; +tr3029: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75761,7 +76722,7 @@ tr2994: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75769,18 +76730,18 @@ tr2994: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1151; -tr2998: + goto st1169; +tr3033: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75790,7 +76751,7 @@ tr2998: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75798,14 +76759,14 @@ tr2998: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1151; -tr3042: + goto st1169; +tr3077: { s->number64_tmp = s->number64; } @@ -75818,7 +76779,7 @@ tr3042: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75826,11 +76787,11 @@ tr3042: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1151; -tr3043: + goto st1169; +tr3078: { s->number64_tmp = s->number64; } @@ -75843,7 +76804,7 @@ tr3043: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75851,18 +76812,18 @@ tr3043: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1151; -tr3044: + goto st1169; +tr3079: { s->number64_tmp = s->number64; } @@ -75875,7 +76836,7 @@ tr3044: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75883,18 +76844,18 @@ tr3044: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1151; -tr3047: + goto st1169; +tr3082: { s->number64_tmp = s->number64; } @@ -75907,7 +76868,7 @@ tr3047: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -75915,17 +76876,17 @@ tr3047: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1151; -st1151: + goto st1169; +st1169: if ( ++p == pe ) - goto _test_eof1151; -case 1151: + goto _test_eof1169; +case 1169: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75943,21 +76904,21 @@ case 1151: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1151; - case 32: goto st1151; - case 40: goto tr3004; - case 41: goto tr3005; - case 3082: goto tr3007; - case 3131: goto tr3008; - case 3338: goto tr2970; - case 3387: goto tr2970; - case 3594: goto tr3009; - case 3643: goto tr3010; + case 9: goto st1169; + case 32: goto st1169; + case 40: goto tr3039; + case 41: goto tr3040; + case 3082: goto tr3042; + case 3131: goto tr3043; + case 3338: goto tr3005; + case 3387: goto tr3005; + case 3594: goto tr3044; + case 3643: goto tr3045; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3006; - goto tr2861; -tr3015: + goto tr3041; + goto tr2896; +tr3050: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75969,11 +76930,11 @@ tr3015: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1152; -tr3006: + goto st1170; +tr3041: { s->decimals = 2; } @@ -75994,14 +76955,14 @@ tr3006: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1152; -st1152: + goto st1170; +st1170: if ( ++p == pe ) - goto _test_eof1152; -case 1152: + goto _test_eof1170; +case 1170: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76019,46 +76980,46 @@ case 1152: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3011; - case 32: goto tr3011; - case 40: goto tr3012; - case 41: goto tr3013; - case 46: goto st1155; - case 109: goto tr3011; - case 3082: goto tr3016; - case 3131: goto tr3017; - case 3338: goto tr3018; - case 3387: goto tr3018; - case 3594: goto tr3019; - case 3643: goto tr3020; + case 9: goto tr3046; + case 32: goto tr3046; + case 40: goto tr3047; + case 41: goto tr3048; + case 46: goto st1173; + case 109: goto tr3046; + case 3082: goto tr3051; + case 3131: goto tr3052; + case 3338: goto tr3053; + case 3387: goto tr3053; + case 3594: goto tr3054; + case 3643: goto tr3055; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3015; - goto tr2861; -tr3022: + goto tr3050; + goto tr2896; +tr3057: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1153; -tr3023: + goto st1171; +tr3058: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1153; -tr3024: + goto st1171; +tr3059: { s->line_counter++; } - goto st1153; -tr3029: + goto st1171; +tr3064: { s->buffer[s->buffer_length++] = 0; @@ -76068,15 +77029,15 @@ tr3029: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1153; goto _out;} + {p++; cs = 1171; goto _out;} } } } { s->line_counter++; } - goto st1153; -tr3011: + goto st1171; +tr3046: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76086,7 +77047,7 @@ tr3011: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76094,11 +77055,11 @@ tr3011: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1153; -tr3012: + goto st1171; +tr3047: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76108,7 +77069,7 @@ tr3012: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76116,18 +77077,18 @@ tr3012: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1153; -tr3013: + goto st1171; +tr3048: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76137,7 +77098,7 @@ tr3013: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76145,18 +77106,18 @@ tr3013: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1153; -tr3016: + goto st1171; +tr3051: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76166,7 +77127,7 @@ tr3016: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76174,14 +77135,14 @@ tr3016: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1153; -tr3030: + goto st1171; +tr3065: { s->number64_tmp = s->number64; } @@ -76194,7 +77155,7 @@ tr3030: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76202,11 +77163,11 @@ tr3030: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1153; -tr3031: + goto st1171; +tr3066: { s->number64_tmp = s->number64; } @@ -76219,7 +77180,7 @@ tr3031: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76227,18 +77188,18 @@ tr3031: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1153; -tr3032: + goto st1171; +tr3067: { s->number64_tmp = s->number64; } @@ -76251,7 +77212,7 @@ tr3032: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76259,18 +77220,18 @@ tr3032: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1153; -tr3034: + goto st1171; +tr3069: { s->number64_tmp = s->number64; } @@ -76283,7 +77244,7 @@ tr3034: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76291,17 +77252,17 @@ tr3034: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1153; -st1153: + goto st1171; +st1171: if ( ++p == pe ) - goto _test_eof1153; -case 1153: + goto _test_eof1171; +case 1171: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76319,31 +77280,31 @@ case 1153: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1153; - case 32: goto st1153; - case 40: goto tr3022; - case 41: goto tr3023; - case 3082: goto tr3024; - case 3131: goto tr3025; - case 3338: goto tr2970; - case 3387: goto tr2970; - case 3594: goto tr3026; - case 3643: goto tr3027; - } - goto tr2861; -tr3025: + case 9: goto st1171; + case 32: goto st1171; + case 40: goto tr3057; + case 41: goto tr3058; + case 3082: goto tr3059; + case 3131: goto tr3060; + case 3338: goto tr3005; + case 3387: goto tr3005; + case 3594: goto tr3061; + case 3643: goto tr3062; + } + goto tr2896; +tr3060: { s->buffer_length = 0; } - goto st1154; -tr3028: + goto st1172; +tr3063: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1154; -tr3017: + goto st1172; +tr3052: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76353,7 +77314,7 @@ tr3017: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76361,14 +77322,14 @@ tr3017: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1154; -tr3035: + goto st1172; +tr3070: { s->number64_tmp = s->number64; } @@ -76381,7 +77342,7 @@ tr3035: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76389,17 +77350,17 @@ tr3035: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1154; -st1154: + goto st1172; +st1172: if ( ++p == pe ) - goto _test_eof1154; -case 1154: + goto _test_eof1172; +case 1172: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -76419,11 +77380,11 @@ case 1154: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3029; + goto tr3064; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3028; - goto tr2861; -tr2961: + goto tr3063; + goto tr2896; +tr2996: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76433,7 +77394,7 @@ tr2961: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76443,7 +77404,7 @@ tr2961: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76475,8 +77436,8 @@ tr2961: { p--; {cs = stack[--top];goto _again;} } - goto st1525; -tr2970: + goto st1543; +tr3005: { // Write version. *(rdata_tail) = 0; @@ -76506,8 +77467,8 @@ tr2970: { p--; {cs = stack[--top];goto _again;} } - goto st1525; -tr2981: + goto st1543; +tr3016: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76517,7 +77478,7 @@ tr2981: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76525,7 +77486,7 @@ tr2981: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76557,8 +77518,8 @@ tr2981: { p--; {cs = stack[--top];goto _again;} } - goto st1525; -tr3000: + goto st1543; +tr3035: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76568,7 +77529,7 @@ tr3000: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76576,7 +77537,7 @@ tr3000: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76608,8 +77569,8 @@ tr3000: { p--; {cs = stack[--top];goto _again;} } - goto st1525; -tr3018: + goto st1543; +tr3053: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76619,7 +77580,7 @@ tr3018: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76627,7 +77588,7 @@ tr3018: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76659,8 +77620,8 @@ tr3018: { p--; {cs = stack[--top];goto _again;} } - goto st1525; -tr3036: + goto st1543; +tr3071: { s->number64_tmp = s->number64; } @@ -76673,7 +77634,7 @@ tr3036: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76681,7 +77642,7 @@ tr3036: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76713,8 +77674,8 @@ tr3036: { p--; {cs = stack[--top];goto _again;} } - goto st1525; -tr3049: + goto st1543; +tr3084: { s->number64_tmp = s->number64; } @@ -76727,7 +77688,7 @@ tr3049: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76735,7 +77696,7 @@ tr3049: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76767,8 +77728,8 @@ tr3049: { p--; {cs = stack[--top];goto _again;} } - goto st1525; -tr3062: + goto st1543; +tr3097: { s->number64_tmp = s->number64; } @@ -76781,7 +77742,7 @@ tr3062: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76789,7 +77750,7 @@ tr3062: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76821,8 +77782,8 @@ tr3062: { p--; {cs = stack[--top];goto _again;} } - goto st1525; -tr3075: + goto st1543; +tr3110: { s->number64_tmp = s->number64; } @@ -76835,7 +77796,7 @@ tr3075: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76845,7 +77806,7 @@ tr3075: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76877,13 +77838,13 @@ tr3075: { p--; {cs = stack[--top];goto _again;} } - goto st1525; -st1525: + goto st1543; +st1543: if ( ++p == pe ) - goto _test_eof1525; -case 1525: + goto _test_eof1543; +case 1543: goto st0; -tr3026: +tr3061: { s->line_counter++; } @@ -76916,8 +77877,8 @@ tr3026: { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr3019: + goto st1544; +tr3054: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76927,7 +77888,7 @@ tr3019: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76935,7 +77896,7 @@ tr3019: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76970,8 +77931,8 @@ tr3019: { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr3037: + goto st1544; +tr3072: { s->number64_tmp = s->number64; } @@ -76984,7 +77945,7 @@ tr3037: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -76992,7 +77953,7 @@ tr3037: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77027,11 +77988,11 @@ tr3037: { p--; {cs = stack[--top];goto _again;} } - goto st1526; -st1526: + goto st1544; +st1544: if ( ++p == pe ) - goto _test_eof1526; -case 1526: + goto _test_eof1544; +case 1544: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77049,19 +78010,19 @@ case 1526: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1153; - case 32: goto st1153; - case 40: goto tr3022; - case 41: goto tr3023; - case 3082: goto tr3024; - case 3131: goto tr3025; - case 3338: goto tr2970; - case 3387: goto tr2970; - case 3594: goto tr3026; - case 3643: goto tr3027; - } - goto tr2861; -tr3027: + case 9: goto st1171; + case 32: goto st1171; + case 40: goto tr3057; + case 41: goto tr3058; + case 3082: goto tr3059; + case 3131: goto tr3060; + case 3338: goto tr3005; + case 3387: goto tr3005; + case 3594: goto tr3061; + case 3643: goto tr3062; + } + goto tr2896; +tr3062: { s->buffer_length = 0; } @@ -77094,8 +78055,8 @@ tr3027: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr3020: + goto st1545; +tr3055: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77105,7 +78066,7 @@ tr3020: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77113,7 +78074,7 @@ tr3020: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77148,8 +78109,8 @@ tr3020: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr3038: + goto st1545; +tr3073: { s->number64_tmp = s->number64; } @@ -77162,7 +78123,7 @@ tr3038: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77170,7 +78131,7 @@ tr3038: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77205,11 +78166,11 @@ tr3038: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -st1527: + goto st1545; +st1545: if ( ++p == pe ) - goto _test_eof1527; -case 1527: + goto _test_eof1545; +case 1545: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -77229,14 +78190,14 @@ case 1527: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3029; + goto tr3064; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3028; - goto tr2861; -st1155: + goto tr3063; + goto tr2896; +st1173: if ( ++p == pe ) - goto _test_eof1155; -case 1155: + goto _test_eof1173; +case 1173: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77254,22 +78215,22 @@ case 1155: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3030; - case 32: goto tr3030; - case 40: goto tr3031; - case 41: goto tr3032; - case 109: goto tr3030; - case 3082: goto tr3034; - case 3131: goto tr3035; - case 3338: goto tr3036; - case 3387: goto tr3036; - case 3594: goto tr3037; - case 3643: goto tr3038; + case 9: goto tr3065; + case 32: goto tr3065; + case 40: goto tr3066; + case 41: goto tr3067; + case 109: goto tr3065; + case 3082: goto tr3069; + case 3131: goto tr3070; + case 3338: goto tr3071; + case 3387: goto tr3071; + case 3594: goto tr3072; + case 3643: goto tr3073; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3033; - goto tr2861; -tr3033: + goto tr3068; + goto tr2896; +tr3068: { s->number64_tmp = s->number64; } @@ -77287,14 +78248,14 @@ tr3033: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1156; -tr3039: + goto st1174; +tr3074: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -77306,17 +78267,17 @@ tr3039: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1156; -st1156: + goto st1174; +st1174: if ( ++p == pe ) - goto _test_eof1156; -case 1156: + goto _test_eof1174; +case 1174: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77334,34 +78295,34 @@ case 1156: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3011; - case 32: goto tr3011; - case 40: goto tr3012; - case 41: goto tr3013; - case 109: goto tr3011; - case 3082: goto tr3016; - case 3131: goto tr3017; - case 3338: goto tr3018; - case 3387: goto tr3018; - case 3594: goto tr3019; - case 3643: goto tr3020; + case 9: goto tr3046; + case 32: goto tr3046; + case 40: goto tr3047; + case 41: goto tr3048; + case 109: goto tr3046; + case 3082: goto tr3051; + case 3131: goto tr3052; + case 3338: goto tr3053; + case 3387: goto tr3053; + case 3594: goto tr3054; + case 3643: goto tr3055; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3039; - goto tr2861; -tr3008: + goto tr3074; + goto tr2896; +tr3043: { s->buffer_length = 0; } - goto st1157; -tr3040: + goto st1175; +tr3075: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1157; -tr2999: + goto st1175; +tr3034: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77371,7 +78332,7 @@ tr2999: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77379,14 +78340,14 @@ tr2999: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1157; -tr3048: + goto st1175; +tr3083: { s->number64_tmp = s->number64; } @@ -77399,7 +78360,7 @@ tr3048: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77407,17 +78368,17 @@ tr3048: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1157; -st1157: + goto st1175; +st1175: if ( ++p == pe ) - goto _test_eof1157; -case 1157: + goto _test_eof1175; +case 1175: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -77437,11 +78398,11 @@ case 1157: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3041; + goto tr3076; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3040; - goto tr2861; -tr3009: + goto tr3075; + goto tr2896; +tr3044: { s->line_counter++; } @@ -77474,8 +78435,8 @@ tr3009: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr3001: + goto st1546; +tr3036: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77485,7 +78446,7 @@ tr3001: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77493,7 +78454,7 @@ tr3001: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77528,8 +78489,8 @@ tr3001: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr3050: + goto st1546; +tr3085: { s->number64_tmp = s->number64; } @@ -77542,7 +78503,7 @@ tr3050: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77550,7 +78511,7 @@ tr3050: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77585,11 +78546,11 @@ tr3050: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -st1528: + goto st1546; +st1546: if ( ++p == pe ) - goto _test_eof1528; -case 1528: + goto _test_eof1546; +case 1546: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77607,21 +78568,21 @@ case 1528: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1151; - case 32: goto st1151; - case 40: goto tr3004; - case 41: goto tr3005; - case 3082: goto tr3007; - case 3131: goto tr3008; - case 3338: goto tr2970; - case 3387: goto tr2970; - case 3594: goto tr3009; - case 3643: goto tr3010; + case 9: goto st1169; + case 32: goto st1169; + case 40: goto tr3039; + case 41: goto tr3040; + case 3082: goto tr3042; + case 3131: goto tr3043; + case 3338: goto tr3005; + case 3387: goto tr3005; + case 3594: goto tr3044; + case 3643: goto tr3045; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3006; - goto tr2861; -tr3010: + goto tr3041; + goto tr2896; +tr3045: { s->buffer_length = 0; } @@ -77654,8 +78615,8 @@ tr3010: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr3002: + goto st1547; +tr3037: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77665,7 +78626,7 @@ tr3002: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77673,7 +78634,7 @@ tr3002: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77708,8 +78669,8 @@ tr3002: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr3051: + goto st1547; +tr3086: { s->number64_tmp = s->number64; } @@ -77722,7 +78683,7 @@ tr3051: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77730,7 +78691,7 @@ tr3051: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77765,11 +78726,11 @@ tr3051: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -st1529: + goto st1547; +st1547: if ( ++p == pe ) - goto _test_eof1529; -case 1529: + goto _test_eof1547; +case 1547: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -77789,14 +78750,14 @@ case 1529: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3041; + goto tr3076; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3040; - goto tr2861; -st1158: + goto tr3075; + goto tr2896; +st1176: if ( ++p == pe ) - goto _test_eof1158; -case 1158: + goto _test_eof1176; +case 1176: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77814,22 +78775,22 @@ case 1158: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3042; - case 32: goto tr3042; - case 40: goto tr3043; - case 41: goto tr3044; - case 109: goto tr3046; - case 3082: goto tr3047; - case 3131: goto tr3048; - case 3338: goto tr3049; - case 3387: goto tr3049; - case 3594: goto tr3050; - case 3643: goto tr3051; + case 9: goto tr3077; + case 32: goto tr3077; + case 40: goto tr3078; + case 41: goto tr3079; + case 109: goto tr3081; + case 3082: goto tr3082; + case 3131: goto tr3083; + case 3338: goto tr3084; + case 3387: goto tr3084; + case 3594: goto tr3085; + case 3643: goto tr3086; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3045; - goto tr2861; -tr3045: + goto tr3080; + goto tr2896; +tr3080: { s->number64_tmp = s->number64; } @@ -77847,14 +78808,14 @@ tr3045: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1159; -tr3052: + goto st1177; +tr3087: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -77866,17 +78827,17 @@ tr3052: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1159; -st1159: + goto st1177; +st1177: if ( ++p == pe ) - goto _test_eof1159; -case 1159: + goto _test_eof1177; +case 1177: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77894,22 +78855,22 @@ case 1159: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2992; - case 32: goto tr2992; - case 40: goto tr2993; - case 41: goto tr2994; - case 109: goto tr2997; - case 3082: goto tr2998; - case 3131: goto tr2999; - case 3338: goto tr3000; - case 3387: goto tr3000; - case 3594: goto tr3001; - case 3643: goto tr3002; + case 9: goto tr3027; + case 32: goto tr3027; + case 40: goto tr3028; + case 41: goto tr3029; + case 109: goto tr3032; + case 3082: goto tr3033; + case 3131: goto tr3034; + case 3338: goto tr3035; + case 3387: goto tr3035; + case 3594: goto tr3036; + case 3643: goto tr3037; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3052; - goto tr2861; -tr2997: + goto tr3087; + goto tr2896; +tr3032: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77919,7 +78880,7 @@ tr2997: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77927,11 +78888,11 @@ tr2997: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1160; -tr3046: + goto st1178; +tr3081: { s->number64_tmp = s->number64; } @@ -77944,7 +78905,7 @@ tr3046: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -77952,14 +78913,14 @@ tr3046: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1160; -st1160: + goto st1178; +st1178: if ( ++p == pe ) - goto _test_eof1160; -case 1160: + goto _test_eof1178; +case 1178: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77977,31 +78938,31 @@ case 1160: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1151; - case 32: goto st1151; - case 40: goto tr3004; - case 41: goto tr3005; - case 3082: goto tr3007; - case 3131: goto tr3008; - case 3338: goto tr2970; - case 3387: goto tr2970; - case 3594: goto tr3009; - case 3643: goto tr3010; - } - goto tr2861; -tr2989: + case 9: goto st1169; + case 32: goto st1169; + case 40: goto tr3039; + case 41: goto tr3040; + case 3082: goto tr3042; + case 3131: goto tr3043; + case 3338: goto tr3005; + case 3387: goto tr3005; + case 3594: goto tr3044; + case 3643: goto tr3045; + } + goto tr2896; +tr3024: { s->buffer_length = 0; } - goto st1161; -tr3053: + goto st1179; +tr3088: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1161; -tr2980: + goto st1179; +tr3015: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78011,7 +78972,7 @@ tr2980: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78019,14 +78980,14 @@ tr2980: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1161; -tr3061: + goto st1179; +tr3096: { s->number64_tmp = s->number64; } @@ -78039,7 +79000,7 @@ tr3061: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78047,17 +79008,17 @@ tr3061: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1161; -st1161: + goto st1179; +st1179: if ( ++p == pe ) - goto _test_eof1161; -case 1161: + goto _test_eof1179; +case 1179: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78077,11 +79038,11 @@ case 1161: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3054; + goto tr3089; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3053; - goto tr2861; -tr2990: + goto tr3088; + goto tr2896; +tr3025: { s->line_counter++; } @@ -78114,8 +79075,8 @@ tr2990: { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2982: + goto st1548; +tr3017: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78125,7 +79086,7 @@ tr2982: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78133,7 +79094,7 @@ tr2982: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78168,8 +79129,8 @@ tr2982: { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr3063: + goto st1548; +tr3098: { s->number64_tmp = s->number64; } @@ -78182,7 +79143,7 @@ tr3063: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78190,7 +79151,7 @@ tr3063: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78225,11 +79186,11 @@ tr3063: { p--; {cs = stack[--top];goto _again;} } - goto st1530; -st1530: + goto st1548; +st1548: if ( ++p == pe ) - goto _test_eof1530; -case 1530: + goto _test_eof1548; +case 1548: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78247,21 +79208,21 @@ case 1530: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1149; - case 32: goto st1149; - case 40: goto tr2985; - case 41: goto tr2986; - case 3082: goto tr2988; - case 3131: goto tr2989; - case 3338: goto tr2970; - case 3387: goto tr2970; - case 3594: goto tr2990; - case 3643: goto tr2991; + case 9: goto st1167; + case 32: goto st1167; + case 40: goto tr3020; + case 41: goto tr3021; + case 3082: goto tr3023; + case 3131: goto tr3024; + case 3338: goto tr3005; + case 3387: goto tr3005; + case 3594: goto tr3025; + case 3643: goto tr3026; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2987; - goto tr2861; -tr2991: + goto tr3022; + goto tr2896; +tr3026: { s->buffer_length = 0; } @@ -78294,8 +79255,8 @@ tr2991: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr2983: + goto st1549; +tr3018: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78305,7 +79266,7 @@ tr2983: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78313,7 +79274,7 @@ tr2983: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78348,8 +79309,8 @@ tr2983: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr3064: + goto st1549; +tr3099: { s->number64_tmp = s->number64; } @@ -78362,7 +79323,7 @@ tr3064: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78370,7 +79331,7 @@ tr3064: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78405,11 +79366,11 @@ tr3064: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -st1531: + goto st1549; +st1549: if ( ++p == pe ) - goto _test_eof1531; -case 1531: + goto _test_eof1549; +case 1549: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78429,14 +79390,14 @@ case 1531: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3054; + goto tr3089; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3053; - goto tr2861; -st1162: + goto tr3088; + goto tr2896; +st1180: if ( ++p == pe ) - goto _test_eof1162; -case 1162: + goto _test_eof1180; +case 1180: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78454,22 +79415,22 @@ case 1162: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3055; - case 32: goto tr3055; - case 40: goto tr3056; - case 41: goto tr3057; - case 109: goto tr3059; - case 3082: goto tr3060; - case 3131: goto tr3061; - case 3338: goto tr3062; - case 3387: goto tr3062; - case 3594: goto tr3063; - case 3643: goto tr3064; + case 9: goto tr3090; + case 32: goto tr3090; + case 40: goto tr3091; + case 41: goto tr3092; + case 109: goto tr3094; + case 3082: goto tr3095; + case 3131: goto tr3096; + case 3338: goto tr3097; + case 3387: goto tr3097; + case 3594: goto tr3098; + case 3643: goto tr3099; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3058; - goto tr2861; -tr3058: + goto tr3093; + goto tr2896; +tr3093: { s->number64_tmp = s->number64; } @@ -78487,14 +79448,14 @@ tr3058: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1163; -tr3065: + goto st1181; +tr3100: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -78506,17 +79467,17 @@ tr3065: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1163; -st1163: + goto st1181; +st1181: if ( ++p == pe ) - goto _test_eof1163; -case 1163: + goto _test_eof1181; +case 1181: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78534,22 +79495,22 @@ case 1163: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2973; - case 32: goto tr2973; - case 40: goto tr2974; - case 41: goto tr2975; - case 109: goto tr2978; - case 3082: goto tr2979; - case 3131: goto tr2980; - case 3338: goto tr2981; - case 3387: goto tr2981; - case 3594: goto tr2982; - case 3643: goto tr2983; + case 9: goto tr3008; + case 32: goto tr3008; + case 40: goto tr3009; + case 41: goto tr3010; + case 109: goto tr3013; + case 3082: goto tr3014; + case 3131: goto tr3015; + case 3338: goto tr3016; + case 3387: goto tr3016; + case 3594: goto tr3017; + case 3643: goto tr3018; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3065; - goto tr2861; -tr2978: + goto tr3100; + goto tr2896; +tr3013: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78559,7 +79520,7 @@ tr2978: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78567,11 +79528,11 @@ tr2978: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1164; -tr3059: + goto st1182; +tr3094: { s->number64_tmp = s->number64; } @@ -78584,7 +79545,7 @@ tr3059: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78592,14 +79553,14 @@ tr3059: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1164; -st1164: + goto st1182; +st1182: if ( ++p == pe ) - goto _test_eof1164; -case 1164: + goto _test_eof1182; +case 1182: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78617,31 +79578,31 @@ case 1164: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1149; - case 32: goto st1149; - case 40: goto tr2985; - case 41: goto tr2986; - case 3082: goto tr2988; - case 3131: goto tr2989; - case 3338: goto tr2970; - case 3387: goto tr2970; - case 3594: goto tr2990; - case 3643: goto tr2991; - } - goto tr2861; -tr2969: + case 9: goto st1167; + case 32: goto st1167; + case 40: goto tr3020; + case 41: goto tr3021; + case 3082: goto tr3023; + case 3131: goto tr3024; + case 3338: goto tr3005; + case 3387: goto tr3005; + case 3594: goto tr3025; + case 3643: goto tr3026; + } + goto tr2896; +tr3004: { s->buffer_length = 0; } - goto st1165; -tr3066: + goto st1183; +tr3101: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1165; -tr2960: + goto st1183; +tr2995: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78651,7 +79612,7 @@ tr2960: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78661,14 +79622,14 @@ tr2960: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1165; -tr3074: + goto st1183; +tr3109: { s->number64_tmp = s->number64; } @@ -78681,7 +79642,7 @@ tr3074: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78691,17 +79652,17 @@ tr3074: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1165; -st1165: + goto st1183; +st1183: if ( ++p == pe ) - goto _test_eof1165; -case 1165: + goto _test_eof1183; +case 1183: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78721,11 +79682,11 @@ case 1165: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3067; + goto tr3102; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3066; - goto tr2861; -tr2962: + goto tr3101; + goto tr2896; +tr2997: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78735,7 +79696,7 @@ tr2962: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78745,7 +79706,7 @@ tr2962: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78780,8 +79741,8 @@ tr2962: { p--; {cs = stack[--top];goto _again;} } - goto st1532; -tr2971: + goto st1550; +tr3006: { s->line_counter++; } @@ -78814,8 +79775,8 @@ tr2971: { p--; {cs = stack[--top];goto _again;} } - goto st1532; -tr3076: + goto st1550; +tr3111: { s->number64_tmp = s->number64; } @@ -78828,7 +79789,7 @@ tr3076: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78838,7 +79799,7 @@ tr3076: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78873,11 +79834,11 @@ tr3076: { p--; {cs = stack[--top];goto _again;} } - goto st1532; -st1532: + goto st1550; +st1550: if ( ++p == pe ) - goto _test_eof1532; -case 1532: + goto _test_eof1550; +case 1550: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78895,21 +79856,21 @@ case 1532: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1147; - case 32: goto st1147; - case 40: goto tr2965; - case 41: goto tr2966; - case 3082: goto tr2968; - case 3131: goto tr2969; - case 3338: goto tr2970; - case 3387: goto tr2970; - case 3594: goto tr2971; - case 3643: goto tr2972; + case 9: goto st1165; + case 32: goto st1165; + case 40: goto tr3000; + case 41: goto tr3001; + case 3082: goto tr3003; + case 3131: goto tr3004; + case 3338: goto tr3005; + case 3387: goto tr3005; + case 3594: goto tr3006; + case 3643: goto tr3007; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2967; - goto tr2861; -tr2963: + goto tr3002; + goto tr2896; +tr2998: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78919,7 +79880,7 @@ tr2963: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78929,7 +79890,7 @@ tr2963: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -78964,8 +79925,8 @@ tr2963: { p--; {cs = stack[--top];goto _again;} } - goto st1533; -tr2972: + goto st1551; +tr3007: { s->buffer_length = 0; } @@ -78998,8 +79959,8 @@ tr2972: { p--; {cs = stack[--top];goto _again;} } - goto st1533; -tr3077: + goto st1551; +tr3112: { s->number64_tmp = s->number64; } @@ -79012,7 +79973,7 @@ tr3077: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -79022,7 +79983,7 @@ tr3077: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -79057,11 +80018,11 @@ tr3077: { p--; {cs = stack[--top];goto _again;} } - goto st1533; -st1533: + goto st1551; +st1551: if ( ++p == pe ) - goto _test_eof1533; -case 1533: + goto _test_eof1551; +case 1551: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79081,14 +80042,14 @@ case 1533: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3067; + goto tr3102; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3066; - goto tr2861; -st1166: + goto tr3101; + goto tr2896; +st1184: if ( ++p == pe ) - goto _test_eof1166; -case 1166: + goto _test_eof1184; +case 1184: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79106,22 +80067,22 @@ case 1166: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3068; - case 32: goto tr3068; - case 40: goto tr3069; - case 41: goto tr3070; - case 109: goto tr3072; - case 3082: goto tr3073; - case 3131: goto tr3074; - case 3338: goto tr3075; - case 3387: goto tr3075; - case 3594: goto tr3076; - case 3643: goto tr3077; + case 9: goto tr3103; + case 32: goto tr3103; + case 40: goto tr3104; + case 41: goto tr3105; + case 109: goto tr3107; + case 3082: goto tr3108; + case 3131: goto tr3109; + case 3338: goto tr3110; + case 3387: goto tr3110; + case 3594: goto tr3111; + case 3643: goto tr3112; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3071; - goto tr2861; -tr3071: + goto tr3106; + goto tr2896; +tr3106: { s->number64_tmp = s->number64; } @@ -79139,14 +80100,14 @@ tr3071: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1167; -tr3078: + goto st1185; +tr3113: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -79158,17 +80119,17 @@ tr3078: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1167; -st1167: + goto st1185; +st1185: if ( ++p == pe ) - goto _test_eof1167; -case 1167: + goto _test_eof1185; +case 1185: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79186,22 +80147,22 @@ case 1167: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2953; - case 32: goto tr2953; - case 40: goto tr2954; - case 41: goto tr2955; - case 109: goto tr2958; - case 3082: goto tr2959; - case 3131: goto tr2960; - case 3338: goto tr2961; - case 3387: goto tr2961; - case 3594: goto tr2962; - case 3643: goto tr2963; + case 9: goto tr2988; + case 32: goto tr2988; + case 40: goto tr2989; + case 41: goto tr2990; + case 109: goto tr2993; + case 3082: goto tr2994; + case 3131: goto tr2995; + case 3338: goto tr2996; + case 3387: goto tr2996; + case 3594: goto tr2997; + case 3643: goto tr2998; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3078; - goto tr2861; -tr2958: + goto tr3113; + goto tr2896; +tr2993: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79211,7 +80172,7 @@ tr2958: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -79221,11 +80182,11 @@ tr2958: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1168; -tr3072: + goto st1186; +tr3107: { s->number64_tmp = s->number64; } @@ -79238,7 +80199,7 @@ tr3072: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -79248,14 +80209,14 @@ tr3072: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1168; -st1168: + goto st1186; +st1186: if ( ++p == pe ) - goto _test_eof1168; -case 1168: + goto _test_eof1186; +case 1186: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79273,42 +80234,42 @@ case 1168: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1147; - case 32: goto st1147; - case 40: goto tr2965; - case 41: goto tr2966; - case 3082: goto tr2968; - case 3131: goto tr2969; - case 3338: goto tr2970; - case 3387: goto tr2970; - case 3594: goto tr2971; - case 3643: goto tr2972; - } - goto tr2861; -tr2949: + case 9: goto st1165; + case 32: goto st1165; + case 40: goto tr3000; + case 41: goto tr3001; + case 3082: goto tr3003; + case 3131: goto tr3004; + case 3338: goto tr3005; + case 3387: goto tr3005; + case 3594: goto tr3006; + case 3643: goto tr3007; + } + goto tr2896; +tr2984: { s->buffer_length = 0; } - goto st1169; -tr3079: + goto st1187; +tr3114: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1169; -tr3085: + goto st1187; +tr3120: { s->loc.long_sign = -1; } { s->buffer_length = 0; } - goto st1169; -st1169: + goto st1187; +st1187: if ( ++p == pe ) - goto _test_eof1169; -case 1169: + goto _test_eof1187; +case 1187: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79328,14 +80289,14 @@ case 1169: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3080; + goto tr3115; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3079; - goto tr2861; -st1170: + goto tr3114; + goto tr2896; +st1188: if ( ++p == pe ) - goto _test_eof1170; -case 1170: + goto _test_eof1188; +case 1188: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79349,27 +80310,27 @@ case 1170: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3081; - case 32: goto tr3081; - case 40: goto tr3082; - case 41: goto tr3083; - case 2058: goto tr3084; - case 2107: goto tr3085; - } - goto tr2861; -tr2944: + case 9: goto tr3116; + case 32: goto tr3116; + case 40: goto tr3117; + case 41: goto tr3118; + case 2058: goto tr3119; + case 2107: goto tr3120; + } + goto tr2896; +tr2979: { s->buffer_length = 0; } - goto st1171; -tr3086: + goto st1189; +tr3121: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1171; -tr2939: + goto st1189; +tr2974: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79379,7 +80340,7 @@ tr2939: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -79387,14 +80348,14 @@ tr2939: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1171; -tr3093: + goto st1189; +tr3128: { s->number64_tmp = s->number64; } @@ -79407,7 +80368,7 @@ tr3093: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -79415,17 +80376,17 @@ tr3093: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1171; -st1171: + goto st1189; +st1189: if ( ++p == pe ) - goto _test_eof1171; -case 1171: + goto _test_eof1189; +case 1189: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79445,14 +80406,14 @@ case 1171: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3087; + goto tr3122; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3086; - goto tr2861; -st1172: + goto tr3121; + goto tr2896; +st1190: if ( ++p == pe ) - goto _test_eof1172; -case 1172: + goto _test_eof1190; +case 1190: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79466,17 +80427,17 @@ case 1172: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3088; - case 32: goto tr3088; - case 40: goto tr3089; - case 41: goto tr3090; - case 2058: goto tr3092; - case 2107: goto tr3093; + case 9: goto tr3123; + case 32: goto tr3123; + case 40: goto tr3124; + case 41: goto tr3125; + case 2058: goto tr3127; + case 2107: goto tr3128; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3091; - goto tr2861; -tr3091: + goto tr3126; + goto tr2896; +tr3126: { s->number64_tmp = s->number64; } @@ -79494,14 +80455,14 @@ tr3091: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1173; -tr3094: + goto st1191; +tr3129: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -79513,17 +80474,17 @@ tr3094: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1173; -st1173: + goto st1191; +st1191: if ( ++p == pe ) - goto _test_eof1173; -case 1173: + goto _test_eof1191; +case 1191: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79537,45 +80498,45 @@ case 1173: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2933; - case 32: goto tr2933; - case 40: goto tr2934; - case 41: goto tr2935; - case 2058: goto tr2938; - case 2107: goto tr2939; + case 9: goto tr2968; + case 32: goto tr2968; + case 40: goto tr2969; + case 41: goto tr2970; + case 2058: goto tr2973; + case 2107: goto tr2974; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3094; - goto tr2861; -tr2932: + goto tr3129; + goto tr2896; +tr2967: { s->buffer_length = 0; } - goto st1174; -tr3095: + goto st1192; +tr3130: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1174; -tr2926: + goto st1192; +tr2961: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1174; -st1174: + goto st1192; +st1192: if ( ++p == pe ) - goto _test_eof1174; -case 1174: + goto _test_eof1192; +case 1192: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79595,39 +80556,39 @@ case 1174: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3096; + goto tr3131; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3095; - goto tr2861; -tr2920: + goto tr3130; + goto tr2896; +tr2955: { s->buffer_length = 0; } - goto st1175; -tr3097: + goto st1193; +tr3132: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1175; -tr2912: + goto st1193; +tr2947: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1175; -st1175: + goto st1193; +st1193: if ( ++p == pe ) - goto _test_eof1175; -case 1175: + goto _test_eof1193; +case 1193: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79647,34 +80608,34 @@ case 1175: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3098; + goto tr3133; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3097; - goto tr2861; -tr2905: + goto tr3132; + goto tr2896; +tr2940: { s->buffer_length = 0; } - goto st1176; -tr3099: + goto st1194; +tr3134: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1176; -tr3105: + goto st1194; +tr3140: { s->loc.lat_sign = -1; } { s->buffer_length = 0; } - goto st1176; -st1176: + goto st1194; +st1194: if ( ++p == pe ) - goto _test_eof1176; -case 1176: + goto _test_eof1194; +case 1194: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79694,14 +80655,14 @@ case 1176: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3100; + goto tr3135; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3099; - goto tr2861; -st1177: + goto tr3134; + goto tr2896; +st1195: if ( ++p == pe ) - goto _test_eof1177; -case 1177: + goto _test_eof1195; +case 1195: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79715,27 +80676,27 @@ case 1177: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3101; - case 32: goto tr3101; - case 40: goto tr3102; - case 41: goto tr3103; - case 2058: goto tr3104; - case 2107: goto tr3105; - } - goto tr2861; -tr2900: + case 9: goto tr3136; + case 32: goto tr3136; + case 40: goto tr3137; + case 41: goto tr3138; + case 2058: goto tr3139; + case 2107: goto tr3140; + } + goto tr2896; +tr2935: { s->buffer_length = 0; } - goto st1178; -tr3106: + goto st1196; +tr3141: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1178; -tr2895: + goto st1196; +tr2930: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79745,7 +80706,7 @@ tr2895: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -79753,14 +80714,14 @@ tr2895: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1178; -tr3113: + goto st1196; +tr3148: { s->number64_tmp = s->number64; } @@ -79773,7 +80734,7 @@ tr3113: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -79781,17 +80742,17 @@ tr3113: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1178; -st1178: + goto st1196; +st1196: if ( ++p == pe ) - goto _test_eof1178; -case 1178: + goto _test_eof1196; +case 1196: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79811,14 +80772,14 @@ case 1178: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3107; + goto tr3142; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3106; - goto tr2861; -st1179: + goto tr3141; + goto tr2896; +st1197: if ( ++p == pe ) - goto _test_eof1179; -case 1179: + goto _test_eof1197; +case 1197: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79832,17 +80793,17 @@ case 1179: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3108; - case 32: goto tr3108; - case 40: goto tr3109; - case 41: goto tr3110; - case 2058: goto tr3112; - case 2107: goto tr3113; + case 9: goto tr3143; + case 32: goto tr3143; + case 40: goto tr3144; + case 41: goto tr3145; + case 2058: goto tr3147; + case 2107: goto tr3148; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3111; - goto tr2861; -tr3111: + goto tr3146; + goto tr2896; +tr3146: { s->number64_tmp = s->number64; } @@ -79860,14 +80821,14 @@ tr3111: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1180; -tr3114: + goto st1198; +tr3149: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -79879,17 +80840,17 @@ tr3114: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->decimal_counter++; } - goto st1180; -st1180: + goto st1198; +st1198: if ( ++p == pe ) - goto _test_eof1180; -case 1180: + goto _test_eof1198; +case 1198: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79903,45 +80864,45 @@ case 1180: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2889; - case 32: goto tr2889; - case 40: goto tr2890; - case 41: goto tr2891; - case 2058: goto tr2894; - case 2107: goto tr2895; + case 9: goto tr2924; + case 32: goto tr2924; + case 40: goto tr2925; + case 41: goto tr2926; + case 2058: goto tr2929; + case 2107: goto tr2930; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3114; - goto tr2861; -tr2888: + goto tr3149; + goto tr2896; +tr2923: { s->buffer_length = 0; } - goto st1181; -tr3115: + goto st1199; +tr3150: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1181; -tr2882: + goto st1199; +tr2917: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1181; -st1181: + goto st1199; +st1199: if ( ++p == pe ) - goto _test_eof1181; -case 1181: + goto _test_eof1199; +case 1199: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79961,39 +80922,39 @@ case 1181: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3116; + goto tr3151; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3115; - goto tr2861; -tr2876: + goto tr3150; + goto tr2896; +tr2911: { s->buffer_length = 0; } - goto st1182; -tr3117: + goto st1200; +tr3152: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1182; -tr2868: + goto st1200; +tr2903: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1182; -st1182: + goto st1200; +st1200: if ( ++p == pe ) - goto _test_eof1182; -case 1182: + goto _test_eof1200; +case 1200: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80013,18 +80974,18 @@ case 1182: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3118; + goto tr3153; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3117; - goto tr2861; -st1183: + goto tr3152; + goto tr2896; +st1201: if ( ++p == pe ) - goto _test_eof1183; -case 1183: + goto _test_eof1201; +case 1201: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3119; - goto tr2653; -tr3119: + goto tr3154; + goto tr2688; +tr3154: { s->number64 = 0; } @@ -80039,11 +81000,11 @@ tr3119: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1184; -tr3123: + goto st1202; +tr3158: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80055,14 +81016,14 @@ tr3123: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1184; -st1184: + goto st1202; +st1202: if ( ++p == pe ) - goto _test_eof1184; -case 1184: + goto _test_eof1202; +case 1202: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80076,40 +81037,40 @@ case 1184: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3120; - case 32: goto tr3120; - case 40: goto tr3121; - case 41: goto tr3122; - case 2058: goto tr3124; - case 2107: goto tr3125; + case 9: goto tr3155; + case 32: goto tr3155; + case 40: goto tr3156; + case 41: goto tr3157; + case 2058: goto tr3159; + case 2107: goto tr3160; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3123; - goto tr2653; -tr3127: + goto tr3158; + goto tr2688; +tr3162: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1185; -tr3128: + goto st1203; +tr3163: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1185; -tr3130: + goto st1203; +tr3165: { s->line_counter++; } - goto st1185; -tr3162: + goto st1203; +tr3197: { s->buffer[s->buffer_length++] = 0; @@ -80119,15 +81080,15 @@ tr3162: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1185; goto _out;} + {p++; cs = 1203; goto _out;} } } } { s->line_counter++; } - goto st1185; -tr3120: + goto st1203; +tr3155: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80135,11 +81096,11 @@ tr3120: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1185; -tr3121: + goto st1203; +tr3156: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80147,18 +81108,18 @@ tr3121: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1185; -tr3122: + goto st1203; +tr3157: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80166,18 +81127,18 @@ tr3122: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1185; -tr3124: + goto st1203; +tr3159: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80185,17 +81146,17 @@ tr3124: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1185; -st1185: + goto st1203; +st1203: if ( ++p == pe ) - goto _test_eof1185; -case 1185: + goto _test_eof1203; +case 1203: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80209,17 +81170,17 @@ case 1185: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1185; - case 32: goto st1185; - case 40: goto tr3127; - case 41: goto tr3128; - case 2058: goto tr3130; - case 2107: goto tr3131; + case 9: goto st1203; + case 32: goto st1203; + case 40: goto tr3162; + case 41: goto tr3163; + case 2058: goto tr3165; + case 2107: goto tr3166; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3129; - goto tr2653; -tr3129: + goto tr3164; + goto tr2688; +tr3164: { s->number64 = 0; } @@ -80234,11 +81195,11 @@ tr3129: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1186; -tr3135: + goto st1204; +tr3170: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80250,14 +81211,14 @@ tr3135: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1186; -st1186: + goto st1204; +st1204: if ( ++p == pe ) - goto _test_eof1186; -case 1186: + goto _test_eof1204; +case 1204: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80271,40 +81232,40 @@ case 1186: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3132; - case 32: goto tr3132; - case 40: goto tr3133; - case 41: goto tr3134; - case 2058: goto tr3136; - case 2107: goto tr3137; + case 9: goto tr3167; + case 32: goto tr3167; + case 40: goto tr3168; + case 41: goto tr3169; + case 2058: goto tr3171; + case 2107: goto tr3172; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3135; - goto tr2653; -tr3139: + goto tr3170; + goto tr2688; +tr3174: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1187; -tr3140: + goto st1205; +tr3175: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1187; -tr3142: + goto st1205; +tr3177: { s->line_counter++; } - goto st1187; -tr3160: + goto st1205; +tr3195: { s->buffer[s->buffer_length++] = 0; @@ -80314,15 +81275,15 @@ tr3160: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1187; goto _out;} + {p++; cs = 1205; goto _out;} } } } { s->line_counter++; } - goto st1187; -tr3132: + goto st1205; +tr3167: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80330,11 +81291,11 @@ tr3132: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1187; -tr3133: + goto st1205; +tr3168: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80342,18 +81303,18 @@ tr3133: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1187; -tr3134: + goto st1205; +tr3169: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80361,18 +81322,18 @@ tr3134: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1187; -tr3136: + goto st1205; +tr3171: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80380,17 +81341,17 @@ tr3136: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1187; -st1187: + goto st1205; +st1205: if ( ++p == pe ) - goto _test_eof1187; -case 1187: + goto _test_eof1205; +case 1205: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80404,17 +81365,17 @@ case 1187: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1187; - case 32: goto st1187; - case 40: goto tr3139; - case 41: goto tr3140; - case 2058: goto tr3142; - case 2107: goto tr3143; + case 9: goto st1205; + case 32: goto st1205; + case 40: goto tr3174; + case 41: goto tr3175; + case 2058: goto tr3177; + case 2107: goto tr3178; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3141; - goto tr2653; -tr3141: + goto tr3176; + goto tr2688; +tr3176: { s->number64 = 0; } @@ -80429,11 +81390,11 @@ tr3141: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1188; -tr3147: + goto st1206; +tr3182: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80445,14 +81406,14 @@ tr3147: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1188; -st1188: + goto st1206; +st1206: if ( ++p == pe ) - goto _test_eof1188; -case 1188: + goto _test_eof1206; +case 1206: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80466,40 +81427,40 @@ case 1188: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3144; - case 32: goto tr3144; - case 40: goto tr3145; - case 41: goto tr3146; - case 2058: goto tr3148; - case 2107: goto tr3149; + case 9: goto tr3179; + case 32: goto tr3179; + case 40: goto tr3180; + case 41: goto tr3181; + case 2058: goto tr3183; + case 2107: goto tr3184; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3147; - goto tr2653; -tr3151: + goto tr3182; + goto tr2688; +tr3186: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1189; -tr3152: + goto st1207; +tr3187: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1189; -tr3154: + goto st1207; +tr3189: { s->line_counter++; } - goto st1189; -tr3158: + goto st1207; +tr3193: { s->buffer[s->buffer_length++] = 0; @@ -80509,15 +81470,15 @@ tr3158: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1189; goto _out;} + {p++; cs = 1207; goto _out;} } } } { s->line_counter++; } - goto st1189; -tr3144: + goto st1207; +tr3179: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80525,11 +81486,11 @@ tr3144: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1189; -tr3145: + goto st1207; +tr3180: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80537,18 +81498,18 @@ tr3145: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1189; -tr3146: + goto st1207; +tr3181: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80556,18 +81517,18 @@ tr3146: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1189; -tr3148: + goto st1207; +tr3183: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80575,17 +81536,17 @@ tr3148: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1189; -st1189: + goto st1207; +st1207: if ( ++p == pe ) - goto _test_eof1189; -case 1189: + goto _test_eof1207; +case 1207: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80599,71 +81560,71 @@ case 1189: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1189; - case 32: goto st1189; - case 40: goto tr3151; - case 41: goto tr3152; - case 42: goto tr3153; - case 92: goto tr3153; - case 95: goto tr3153; - case 2058: goto tr3154; - case 2107: goto tr3155; + case 9: goto st1207; + case 32: goto st1207; + case 40: goto tr3186; + case 41: goto tr3187; + case 42: goto tr3188; + case 92: goto tr3188; + case 95: goto tr3188; + case 2058: goto tr3189; + case 2107: goto tr3190; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3153; + goto tr3188; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3153; + goto tr3188; } else - goto tr3153; + goto tr3188; goto tr77; -tr3153: +tr3188: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1190;goto st321;} } - goto st1190; -st1190: + { p--; {stack[top++] = 1208;goto st327;} } + goto st1208; +st1208: if ( ++p == pe ) - goto _test_eof1190; -case 1190: + goto _test_eof1208; +case 1208: switch( (*p) ) { - case 32: goto tr3156; - case 59: goto tr3156; + case 32: goto tr3191; + case 59: goto tr3191; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3156; + goto tr3191; } else if ( (*p) >= 9 ) - goto tr3156; + goto tr3191; goto tr77; -tr3156: +tr3191: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1534; -st1534: + goto st1552; +st1552: if ( ++p == pe ) - goto _test_eof1534; -case 1534: + goto _test_eof1552; +case 1552: goto st0; -tr3155: +tr3190: { s->buffer_length = 0; } - goto st1191; -tr3157: + goto st1209; +tr3192: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1191; -tr3149: + goto st1209; +tr3184: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80671,17 +81632,17 @@ tr3149: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1191; -st1191: + goto st1209; +st1209: if ( ++p == pe ) - goto _test_eof1191; -case 1191: + goto _test_eof1209; +case 1209: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80701,23 +81662,23 @@ case 1191: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3158; + goto tr3193; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3157; + goto tr3192; goto tr77; -tr3143: +tr3178: { s->buffer_length = 0; } - goto st1192; -tr3159: + goto st1210; +tr3194: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1192; -tr3137: + goto st1210; +tr3172: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80725,17 +81686,17 @@ tr3137: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1192; -st1192: + goto st1210; +st1210: if ( ++p == pe ) - goto _test_eof1192; -case 1192: + goto _test_eof1210; +case 1210: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80755,23 +81716,23 @@ case 1192: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3160; + goto tr3195; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3159; + goto tr3194; goto tr77; -tr3131: +tr3166: { s->buffer_length = 0; } - goto st1193; -tr3161: + goto st1211; +tr3196: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1193; -tr3125: + goto st1211; +tr3160: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80779,17 +81740,17 @@ tr3125: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1193; -st1193: + goto st1211; +st1211: if ( ++p == pe ) - goto _test_eof1193; -case 1193: + goto _test_eof1211; +case 1211: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80809,18 +81770,18 @@ case 1193: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3162; + goto tr3197; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3161; + goto tr3196; goto tr77; -st1194: +st1212: if ( ++p == pe ) - goto _test_eof1194; -case 1194: + goto _test_eof1212; +case 1212: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3163; - goto tr2653; -tr3163: + goto tr3198; + goto tr2688; +tr3198: { s->number64 = 0; } @@ -80835,11 +81796,11 @@ tr3163: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1195; -tr3167: + goto st1213; +tr3202: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80851,14 +81812,14 @@ tr3167: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1195; -st1195: + goto st1213; +st1213: if ( ++p == pe ) - goto _test_eof1195; -case 1195: + goto _test_eof1213; +case 1213: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80872,40 +81833,40 @@ case 1195: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3164; - case 32: goto tr3164; - case 40: goto tr3165; - case 41: goto tr3166; - case 2058: goto tr3168; - case 2107: goto tr3169; + case 9: goto tr3199; + case 32: goto tr3199; + case 40: goto tr3200; + case 41: goto tr3201; + case 2058: goto tr3203; + case 2107: goto tr3204; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3167; - goto tr2653; -tr3171: + goto tr3202; + goto tr2688; +tr3206: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1196; -tr3172: + goto st1214; +tr3207: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1196; -tr3174: + goto st1214; +tr3209: { s->line_counter++; } - goto st1196; -tr3231: + goto st1214; +tr3266: { s->buffer[s->buffer_length++] = 0; @@ -80915,15 +81876,15 @@ tr3231: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1196; goto _out;} + {p++; cs = 1214; goto _out;} } } } { s->line_counter++; } - goto st1196; -tr3164: + goto st1214; +tr3199: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80931,11 +81892,11 @@ tr3164: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1196; -tr3165: + goto st1214; +tr3200: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80943,18 +81904,18 @@ tr3165: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1196; -tr3166: + goto st1214; +tr3201: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80962,18 +81923,18 @@ tr3166: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1196; -tr3168: + goto st1214; +tr3203: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -80981,17 +81942,17 @@ tr3168: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1196; -st1196: + goto st1214; +st1214: if ( ++p == pe ) - goto _test_eof1196; -case 1196: + goto _test_eof1214; +case 1214: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81005,17 +81966,17 @@ case 1196: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1196; - case 32: goto st1196; - case 40: goto tr3171; - case 41: goto tr3172; - case 2058: goto tr3174; - case 2107: goto tr3175; + case 9: goto st1214; + case 32: goto st1214; + case 40: goto tr3206; + case 41: goto tr3207; + case 2058: goto tr3209; + case 2107: goto tr3210; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3173; - goto tr2653; -tr3173: + goto tr3208; + goto tr2688; +tr3208: { s->number64 = 0; } @@ -81030,11 +81991,11 @@ tr3173: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1197; -tr3179: + goto st1215; +tr3214: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -81046,14 +82007,14 @@ tr3179: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1197; -st1197: + goto st1215; +st1215: if ( ++p == pe ) - goto _test_eof1197; -case 1197: + goto _test_eof1215; +case 1215: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81067,40 +82028,40 @@ case 1197: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3176; - case 32: goto tr3176; - case 40: goto tr3177; - case 41: goto tr3178; - case 2058: goto tr3180; - case 2107: goto tr3181; + case 9: goto tr3211; + case 32: goto tr3211; + case 40: goto tr3212; + case 41: goto tr3213; + case 2058: goto tr3215; + case 2107: goto tr3216; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3179; - goto tr2653; -tr3184: + goto tr3214; + goto tr2688; +tr3219: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1198; -tr3185: + goto st1216; +tr3220: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1198; -tr3186: + goto st1216; +tr3221: { s->line_counter++; } - goto st1198; -tr3229: + goto st1216; +tr3264: { s->buffer[s->buffer_length++] = 0; @@ -81110,15 +82071,15 @@ tr3229: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1198; goto _out;} + {p++; cs = 1216; goto _out;} } } } { s->line_counter++; } - goto st1198; -tr3176: + goto st1216; +tr3211: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81126,11 +82087,11 @@ tr3176: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1198; -tr3177: + goto st1216; +tr3212: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81138,18 +82099,18 @@ tr3177: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1198; -tr3178: + goto st1216; +tr3213: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81157,18 +82118,18 @@ tr3178: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1198; -tr3180: + goto st1216; +tr3215: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81176,17 +82137,17 @@ tr3180: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1198; -st1198: + goto st1216; +st1216: if ( ++p == pe ) - goto _test_eof1198; -case 1198: + goto _test_eof1216; +case 1216: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81200,37 +82161,37 @@ case 1198: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1198; - case 32: goto st1198; - case 40: goto tr3184; - case 41: goto tr3185; - case 2058: goto tr3186; - case 2107: goto tr3187; + case 9: goto st1216; + case 32: goto st1216; + case 40: goto tr3219; + case 41: goto tr3220; + case 2058: goto tr3221; + case 2107: goto tr3222; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr3182; + goto tr3217; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr3182; + goto tr3217; } else - goto tr3182; + goto tr3217; goto tr77; -tr3182: +tr3217: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 1199;goto st330;} } - goto st1199; -st1199: + { p--; {stack[top++] = 1217;goto st336;} } + goto st1217; +st1217: if ( ++p == pe ) - goto _test_eof1199; -case 1199: + goto _test_eof1217; +case 1217: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81244,38 +82205,38 @@ case 1199: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3188; - case 32: goto tr3188; - case 40: goto tr3189; - case 41: goto tr3190; - case 2058: goto tr3191; - case 2107: goto tr3192; + case 9: goto tr3223; + case 32: goto tr3223; + case 40: goto tr3224; + case 41: goto tr3225; + case 2058: goto tr3226; + case 2107: goto tr3227; } goto tr77; -tr3195: +tr3230: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1200; -tr3196: + goto st1218; +tr3231: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1200; -tr3197: + goto st1218; +tr3232: { s->line_counter++; } - goto st1200; -tr3227: + goto st1218; +tr3262: { s->buffer[s->buffer_length++] = 0; @@ -81285,95 +82246,95 @@ tr3227: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1200; goto _out;} + {p++; cs = 1218; goto _out;} } } } { s->line_counter++; } - goto st1200; -tr3188: + goto st1218; +tr3223: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1200; -tr3189: + goto st1218; +tr3224: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1200; -tr3190: + goto st1218; +tr3225: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1200; -tr3191: + goto st1218; +tr3226: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1200; -st1200: + goto st1218; +st1218: if ( ++p == pe ) - goto _test_eof1200; -case 1200: + goto _test_eof1218; +case 1218: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81387,37 +82348,37 @@ case 1200: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1200; - case 32: goto st1200; - case 40: goto tr3195; - case 41: goto tr3196; - case 2058: goto tr3197; - case 2107: goto tr3198; + case 9: goto st1218; + case 32: goto st1218; + case 40: goto tr3230; + case 41: goto tr3231; + case 2058: goto tr3232; + case 2107: goto tr3233; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr3193; + goto tr3228; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr3193; + goto tr3228; } else - goto tr3193; + goto tr3228; goto tr77; -tr3193: +tr3228: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 1201;goto st330;} } - goto st1201; -st1201: + { p--; {stack[top++] = 1219;goto st336;} } + goto st1219; +st1219: if ( ++p == pe ) - goto _test_eof1201; -case 1201: + goto _test_eof1219; +case 1219: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81431,38 +82392,38 @@ case 1201: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3199; - case 32: goto tr3199; - case 40: goto tr3200; - case 41: goto tr3201; - case 2058: goto tr3202; - case 2107: goto tr3203; + case 9: goto tr3234; + case 32: goto tr3234; + case 40: goto tr3235; + case 41: goto tr3236; + case 2058: goto tr3237; + case 2107: goto tr3238; } goto tr77; -tr3206: +tr3241: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1202; -tr3207: + goto st1220; +tr3242: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1202; -tr3208: + goto st1220; +tr3243: { s->line_counter++; } - goto st1202; -tr3225: + goto st1220; +tr3260: { s->buffer[s->buffer_length++] = 0; @@ -81472,95 +82433,95 @@ tr3225: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1202; goto _out;} + {p++; cs = 1220; goto _out;} } } } { s->line_counter++; } - goto st1202; -tr3199: + goto st1220; +tr3234: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1202; -tr3200: + goto st1220; +tr3235: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1202; -tr3201: + goto st1220; +tr3236: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1202; -tr3202: + goto st1220; +tr3237: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1202; -st1202: + goto st1220; +st1220: if ( ++p == pe ) - goto _test_eof1202; -case 1202: + goto _test_eof1220; +case 1220: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81574,37 +82535,37 @@ case 1202: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1202; - case 32: goto st1202; - case 40: goto tr3206; - case 41: goto tr3207; - case 2058: goto tr3208; - case 2107: goto tr3209; + case 9: goto st1220; + case 32: goto st1220; + case 40: goto tr3241; + case 41: goto tr3242; + case 2058: goto tr3243; + case 2107: goto tr3244; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr3204; + goto tr3239; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr3204; + goto tr3239; } else - goto tr3204; + goto tr3239; goto tr77; -tr3204: +tr3239: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 1203;goto st330;} } - goto st1203; -st1203: + { p--; {stack[top++] = 1221;goto st336;} } + goto st1221; +st1221: if ( ++p == pe ) - goto _test_eof1203; -case 1203: + goto _test_eof1221; +case 1221: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81618,38 +82579,38 @@ case 1203: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3210; - case 32: goto tr3210; - case 40: goto tr3211; - case 41: goto tr3212; - case 2058: goto tr3213; - case 2107: goto tr3214; + case 9: goto tr3245; + case 32: goto tr3245; + case 40: goto tr3246; + case 41: goto tr3247; + case 2058: goto tr3248; + case 2107: goto tr3249; } goto tr77; -tr3216: +tr3251: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1204; -tr3217: + goto st1222; +tr3252: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1204; -tr3219: + goto st1222; +tr3254: { s->line_counter++; } - goto st1204; -tr3223: + goto st1222; +tr3258: { s->buffer[s->buffer_length++] = 0; @@ -81659,95 +82620,95 @@ tr3223: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1204; goto _out;} + {p++; cs = 1222; goto _out;} } } } { s->line_counter++; } - goto st1204; -tr3210: + goto st1222; +tr3245: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1204; -tr3211: + goto st1222; +tr3246: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1204; -tr3212: + goto st1222; +tr3247: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1204; -tr3213: + goto st1222; +tr3248: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1204; -st1204: + goto st1222; +st1222: if ( ++p == pe ) - goto _test_eof1204; -case 1204: + goto _test_eof1222; +case 1222: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81761,92 +82722,92 @@ case 1204: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1204; - case 32: goto st1204; - case 40: goto tr3216; - case 41: goto tr3217; - case 42: goto tr3218; - case 92: goto tr3218; - case 95: goto tr3218; - case 2058: goto tr3219; - case 2107: goto tr3220; + case 9: goto st1222; + case 32: goto st1222; + case 40: goto tr3251; + case 41: goto tr3252; + case 42: goto tr3253; + case 92: goto tr3253; + case 95: goto tr3253; + case 2058: goto tr3254; + case 2107: goto tr3255; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3218; + goto tr3253; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3218; + goto tr3253; } else - goto tr3218; + goto tr3253; goto tr77; -tr3218: +tr3253: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1205;goto st321;} } - goto st1205; -st1205: + { p--; {stack[top++] = 1223;goto st327;} } + goto st1223; +st1223: if ( ++p == pe ) - goto _test_eof1205; -case 1205: + goto _test_eof1223; +case 1223: switch( (*p) ) { - case 32: goto tr3221; - case 59: goto tr3221; + case 32: goto tr3256; + case 59: goto tr3256; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3221; + goto tr3256; } else if ( (*p) >= 9 ) - goto tr3221; + goto tr3256; goto tr77; -tr3221: +tr3256: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1535; -st1535: + goto st1553; +st1553: if ( ++p == pe ) - goto _test_eof1535; -case 1535: + goto _test_eof1553; +case 1553: goto st0; -tr3220: +tr3255: { s->buffer_length = 0; } - goto st1206; -tr3222: + goto st1224; +tr3257: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1206; -tr3214: + goto st1224; +tr3249: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1206; -st1206: + goto st1224; +st1224: if ( ++p == pe ) - goto _test_eof1206; -case 1206: + goto _test_eof1224; +case 1224: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81866,44 +82827,44 @@ case 1206: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3223; + goto tr3258; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3222; + goto tr3257; goto tr77; -tr3209: +tr3244: { s->buffer_length = 0; } - goto st1207; -tr3224: + goto st1225; +tr3259: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1207; -tr3203: + goto st1225; +tr3238: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1207; -st1207: + goto st1225; +st1225: if ( ++p == pe ) - goto _test_eof1207; -case 1207: + goto _test_eof1225; +case 1225: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81923,44 +82884,44 @@ case 1207: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3225; + goto tr3260; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3224; + goto tr3259; goto tr77; -tr3198: +tr3233: { s->buffer_length = 0; } - goto st1208; -tr3226: + goto st1226; +tr3261: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1208; -tr3192: + goto st1226; +tr3227: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1208; -st1208: + goto st1226; +st1226: if ( ++p == pe ) - goto _test_eof1208; -case 1208: + goto _test_eof1226; +case 1226: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81980,23 +82941,23 @@ case 1208: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3227; + goto tr3262; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3226; + goto tr3261; goto tr77; -tr3187: +tr3222: { s->buffer_length = 0; } - goto st1209; -tr3228: + goto st1227; +tr3263: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1209; -tr3181: + goto st1227; +tr3216: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82004,17 +82965,17 @@ tr3181: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1209; -st1209: + goto st1227; +st1227: if ( ++p == pe ) - goto _test_eof1209; -case 1209: + goto _test_eof1227; +case 1227: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82034,23 +82995,23 @@ case 1209: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3229; + goto tr3264; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3228; + goto tr3263; goto tr77; -tr3175: +tr3210: { s->buffer_length = 0; } - goto st1210; -tr3230: + goto st1228; +tr3265: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1210; -tr3169: + goto st1228; +tr3204: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82058,17 +83019,17 @@ tr3169: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1210; -st1210: + goto st1228; +st1228: if ( ++p == pe ) - goto _test_eof1210; -case 1210: + goto _test_eof1228; +case 1228: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82088,30 +83049,30 @@ case 1210: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3231; + goto tr3266; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3230; + goto tr3265; goto tr77; -st1211: +st1229: if ( ++p == pe ) - goto _test_eof1211; -case 1211: + goto _test_eof1229; +case 1229: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3232; + goto tr3267; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3232; + goto tr3267; } else - goto tr3232; + goto tr3267; goto tr77; -tr3232: - { p--; {stack[top++] = 1212;goto st1022;} } - goto st1212; -st1212: +tr3267: + { p--; {stack[top++] = 1230;goto st1040;} } + goto st1230; +st1230: if ( ++p == pe ) - goto _test_eof1212; -case 1212: + goto _test_eof1230; +case 1230: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82125,38 +83086,38 @@ case 1212: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1213; - case 32: goto st1213; - case 40: goto tr3234; - case 41: goto tr3235; - case 2058: goto tr3236; - case 2107: goto tr3237; + case 9: goto st1231; + case 32: goto st1231; + case 40: goto tr3269; + case 41: goto tr3270; + case 2058: goto tr3271; + case 2107: goto tr3272; } goto tr77; -tr3234: +tr3269: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1213; -tr3235: + goto st1231; +tr3270: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1213; -tr3236: + goto st1231; +tr3271: { s->line_counter++; } - goto st1213; -tr3263: + goto st1231; +tr3298: { s->buffer[s->buffer_length++] = 0; @@ -82166,18 +83127,18 @@ tr3263: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1213; goto _out;} + {p++; cs = 1231; goto _out;} } } } { s->line_counter++; } - goto st1213; -st1213: + goto st1231; +st1231: if ( ++p == pe ) - goto _test_eof1213; -case 1213: + goto _test_eof1231; +case 1231: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82191,17 +83152,17 @@ case 1213: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1213; - case 32: goto st1213; - case 40: goto tr3234; - case 41: goto tr3235; - case 2058: goto tr3236; - case 2107: goto tr3237; + case 9: goto st1231; + case 32: goto st1231; + case 40: goto tr3269; + case 41: goto tr3270; + case 2058: goto tr3271; + case 2107: goto tr3272; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3238; - goto tr2653; -tr3238: + goto tr3273; + goto tr2688; +tr3273: { s->number64 = 0; } @@ -82216,11 +83177,11 @@ tr3238: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1214; -tr3242: + goto st1232; +tr3277: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -82232,14 +83193,14 @@ tr3242: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1214; -st1214: + goto st1232; +st1232: if ( ++p == pe ) - goto _test_eof1214; -case 1214: + goto _test_eof1232; +case 1232: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82253,40 +83214,40 @@ case 1214: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3239; - case 32: goto tr3239; - case 40: goto tr3240; - case 41: goto tr3241; - case 2058: goto tr3243; - case 2107: goto tr3244; + case 9: goto tr3274; + case 32: goto tr3274; + case 40: goto tr3275; + case 41: goto tr3276; + case 2058: goto tr3278; + case 2107: goto tr3279; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3242; - goto tr2653; -tr3246: + goto tr3277; + goto tr2688; +tr3281: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1215; -tr3247: + goto st1233; +tr3282: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1215; -tr3249: + goto st1233; +tr3284: { s->line_counter++; } - goto st1215; -tr3261: + goto st1233; +tr3296: { s->buffer[s->buffer_length++] = 0; @@ -82296,15 +83257,15 @@ tr3261: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1215; goto _out;} + {p++; cs = 1233; goto _out;} } } } { s->line_counter++; } - goto st1215; -tr3239: + goto st1233; +tr3274: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82312,11 +83273,11 @@ tr3239: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1215; -tr3240: + goto st1233; +tr3275: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82324,18 +83285,18 @@ tr3240: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1215; -tr3241: + goto st1233; +tr3276: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82343,18 +83304,18 @@ tr3241: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1215; -tr3243: + goto st1233; +tr3278: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82362,17 +83323,17 @@ tr3243: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1215; -st1215: + goto st1233; +st1233: if ( ++p == pe ) - goto _test_eof1215; -case 1215: + goto _test_eof1233; +case 1233: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82386,29 +83347,29 @@ case 1215: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1215; - case 32: goto st1215; - case 40: goto tr3246; - case 41: goto tr3247; - case 2058: goto tr3249; - case 2107: goto tr3250; + case 9: goto st1233; + case 32: goto st1233; + case 40: goto tr3281; + case 41: goto tr3282; + case 2058: goto tr3284; + case 2107: goto tr3285; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3248; + goto tr3283; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3248; + goto tr3283; } else - goto tr3248; + goto tr3283; goto tr77; -tr3248: - { p--; {stack[top++] = 1216;goto st918;} } - goto st1216; -st1216: +tr3283: + { p--; {stack[top++] = 1234;goto st936;} } + goto st1234; +st1234: if ( ++p == pe ) - goto _test_eof1216; -case 1216: + goto _test_eof1234; +case 1234: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82422,38 +83383,38 @@ case 1216: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1217; - case 32: goto st1217; - case 40: goto tr3252; - case 41: goto tr3253; - case 2058: goto tr3254; - case 2107: goto tr3255; + case 9: goto st1235; + case 32: goto st1235; + case 40: goto tr3287; + case 41: goto tr3288; + case 2058: goto tr3289; + case 2107: goto tr3290; } goto tr77; -tr3252: +tr3287: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1217; -tr3253: + goto st1235; +tr3288: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1217; -tr3254: + goto st1235; +tr3289: { s->line_counter++; } - goto st1217; -tr3259: + goto st1235; +tr3294: { s->buffer[s->buffer_length++] = 0; @@ -82463,18 +83424,18 @@ tr3259: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1217; goto _out;} + {p++; cs = 1235; goto _out;} } } } { s->line_counter++; } - goto st1217; -st1217: + goto st1235; +st1235: if ( ++p == pe ) - goto _test_eof1217; -case 1217: + goto _test_eof1235; +case 1235: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82488,30 +83449,30 @@ case 1217: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1217; - case 32: goto st1217; - case 40: goto tr3252; - case 41: goto tr3253; - case 43: goto tr3256; - case 2058: goto tr3254; - case 2107: goto tr3255; + case 9: goto st1235; + case 32: goto st1235; + case 40: goto tr3287; + case 41: goto tr3288; + case 43: goto tr3291; + case 2058: goto tr3289; + case 2107: goto tr3290; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3256; + goto tr3291; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3256; + goto tr3291; } else - goto tr3256; + goto tr3291; goto tr77; -tr3256: - { p--; {stack[top++] = 1218;goto st381;} } - goto st1218; -st1218: +tr3291: + { p--; {stack[top++] = 1236;goto st387;} } + goto st1236; +st1236: if ( ++p == pe ) - goto _test_eof1218; -case 1218: + goto _test_eof1236; +case 1236: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82525,36 +83486,36 @@ case 1218: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3257; - case 2619: goto tr3257; + case 2570: goto tr3292; + case 2619: goto tr3292; } goto tr77; -tr3257: +tr3292: { p--; {cs = stack[--top];goto _again;} } - goto st1536; -st1536: + goto st1554; +st1554: if ( ++p == pe ) - goto _test_eof1536; -case 1536: + goto _test_eof1554; +case 1554: goto st0; -tr3255: +tr3290: { s->buffer_length = 0; } - goto st1219; -tr3258: + goto st1237; +tr3293: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1219; -st1219: + goto st1237; +st1237: if ( ++p == pe ) - goto _test_eof1219; -case 1219: + goto _test_eof1237; +case 1237: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82574,23 +83535,23 @@ case 1219: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3259; + goto tr3294; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3258; + goto tr3293; goto tr77; -tr3250: +tr3285: { s->buffer_length = 0; } - goto st1220; -tr3260: + goto st1238; +tr3295: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1220; -tr3244: + goto st1238; +tr3279: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82598,17 +83559,17 @@ tr3244: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1220; -st1220: + goto st1238; +st1238: if ( ++p == pe ) - goto _test_eof1220; -case 1220: + goto _test_eof1238; +case 1238: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82628,26 +83589,26 @@ case 1220: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3261; + goto tr3296; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3260; + goto tr3295; goto tr77; -tr3237: +tr3272: { s->buffer_length = 0; } - goto st1221; -tr3262: + goto st1239; +tr3297: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1221; -st1221: + goto st1239; +st1239: if ( ++p == pe ) - goto _test_eof1221; -case 1221: + goto _test_eof1239; +case 1239: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82667,34 +83628,34 @@ case 1221: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3263; + goto tr3298; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3262; + goto tr3297; goto tr77; -tr3267: +tr3302: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1222; -tr3268: + goto st1240; +tr3303: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1222; -tr3271: + goto st1240; +tr3306: { s->line_counter++; } - goto st1222; -tr3294: + goto st1240; +tr3329: { s->buffer[s->buffer_length++] = 0; @@ -82704,22 +83665,22 @@ tr3294: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1222; goto _out;} + {p++; cs = 1240; goto _out;} } } } { s->line_counter++; } - goto st1222; -tr3284: + goto st1240; +tr3319: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -82736,7 +83697,7 @@ tr3284: break; default: WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -82748,7 +83709,7 @@ tr3284: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -82764,15 +83725,15 @@ tr3284: memcpy(rdata_tail, s->buffer, len); rdata_tail += len; } - goto st1222; -tr3285: + goto st1240; +tr3320: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -82789,7 +83750,7 @@ tr3285: break; default: WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -82801,7 +83762,7 @@ tr3285: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -82820,19 +83781,19 @@ tr3285: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1222; -tr3286: + goto st1240; +tr3321: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -82849,7 +83810,7 @@ tr3286: break; default: WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -82861,7 +83822,7 @@ tr3286: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -82880,19 +83841,19 @@ tr3286: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1222; -tr3288: + goto st1240; +tr3323: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -82909,7 +83870,7 @@ tr3288: break; default: WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -82921,7 +83882,7 @@ tr3288: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -82940,11 +83901,11 @@ tr3288: { s->line_counter++; } - goto st1222; -st1222: + goto st1240; +st1240: if ( ++p == pe ) - goto _test_eof1222; -case 1222: + goto _test_eof1240; +case 1240: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82962,78 +83923,78 @@ case 1222: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1222; - case 32: goto st1222; - case 33: goto tr3266; - case 40: goto tr3267; - case 41: goto tr3268; - case 49: goto tr3269; - case 50: goto tr3270; - case 3082: goto tr3271; - case 3131: goto tr3272; - case 3338: goto tr3273; - case 3387: goto tr3273; - case 3594: goto tr3274; - case 3643: goto tr3275; - } - goto tr3264; -tr3266: + case 9: goto st1240; + case 32: goto st1240; + case 33: goto tr3301; + case 40: goto tr3302; + case 41: goto tr3303; + case 49: goto tr3304; + case 50: goto tr3305; + case 3082: goto tr3306; + case 3131: goto tr3307; + case 3338: goto tr3308; + case 3387: goto tr3308; + case 3594: goto tr3309; + case 3643: goto tr3310; + } + goto tr3299; +tr3301: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.excl_flag = 128; // dec 128 = bin 10000000. } - goto st1223; -st1223: + goto st1241; +st1241: if ( ++p == pe ) - goto _test_eof1223; -case 1223: + goto _test_eof1241; +case 1241: switch( (*p) ) { - case 49: goto tr3276; - case 50: goto tr3277; + case 49: goto tr3311; + case 50: goto tr3312; } - goto tr3264; -tr3269: + goto tr3299; +tr3304: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.addr_family = 1; } - goto st1224; -tr3276: + goto st1242; +tr3311: { s->apl.addr_family = 1; } - goto st1224; -st1224: + goto st1242; +st1242: if ( ++p == pe ) - goto _test_eof1224; -case 1224: + goto _test_eof1242; +case 1242: if ( (*p) == 58 ) - goto st1225; - goto tr3264; -st1225: + goto st1243; + goto tr3299; +st1243: if ( ++p == pe ) - goto _test_eof1225; -case 1225: + goto _test_eof1243; +case 1243: if ( (*p) == 46 ) - goto tr3280; + goto tr3315; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3280; - goto tr3279; -tr3281: + goto tr3315; + goto tr3314; +tr3316: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1226; -tr3280: + goto st1244; +tr3315: { s->buffer_length = 0; } @@ -83042,47 +84003,47 @@ tr3280: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1226; -st1226: + goto st1244; +st1244: if ( ++p == pe ) - goto _test_eof1226; -case 1226: + goto _test_eof1244; +case 1244: if ( (*p) == 47 ) - goto tr3282; + goto tr3317; if ( 46 <= (*p) && (*p) <= 57 ) - goto tr3281; - goto tr3279; -tr3282: + goto tr3316; + goto tr3314; +tr3317: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1227; -tr3298: + goto st1245; +tr3333: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1227; -st1227: + goto st1245; +st1245: if ( ++p == pe ) - goto _test_eof1227; -case 1227: + goto _test_eof1245; +case 1245: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3283; - goto tr3264; -tr3283: + goto tr3318; + goto tr3299; +tr3318: { s->number64 = 0; } @@ -83097,11 +84058,11 @@ tr3283: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1228; -tr3287: + goto st1246; +tr3322: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -83113,14 +84074,14 @@ tr3287: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1228; -st1228: + goto st1246; +st1246: if ( ++p == pe ) - goto _test_eof1228; -case 1228: + goto _test_eof1246; +case 1246: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83138,40 +84099,40 @@ case 1228: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3284; - case 32: goto tr3284; - case 40: goto tr3285; - case 41: goto tr3286; - case 3082: goto tr3288; - case 3131: goto tr3289; - case 3338: goto tr3290; - case 3387: goto tr3290; - case 3594: goto tr3291; - case 3643: goto tr3292; + case 9: goto tr3319; + case 32: goto tr3319; + case 40: goto tr3320; + case 41: goto tr3321; + case 3082: goto tr3323; + case 3131: goto tr3324; + case 3338: goto tr3325; + case 3387: goto tr3325; + case 3594: goto tr3326; + case 3643: goto tr3327; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3287; - goto tr3264; -tr3272: + goto tr3322; + goto tr3299; +tr3307: { s->buffer_length = 0; } - goto st1229; -tr3293: + goto st1247; +tr3328: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1229; -tr3289: + goto st1247; +tr3324: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -83188,7 +84149,7 @@ tr3289: break; default: WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -83200,7 +84161,7 @@ tr3289: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -83219,11 +84180,11 @@ tr3289: { s->buffer_length = 0; } - goto st1229; -st1229: + goto st1247; +st1247: if ( ++p == pe ) - goto _test_eof1229; -case 1229: + goto _test_eof1247; +case 1247: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -83243,23 +84204,23 @@ case 1229: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3294; + goto tr3329; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3293; + goto tr3328; goto tr77; -tr3273: +tr3308: { p--; {cs = stack[--top];goto _again;} } - goto st1537; -tr3290: + goto st1555; +tr3325: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -83276,7 +84237,7 @@ tr3290: break; default: WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -83288,7 +84249,7 @@ tr3290: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -83307,28 +84268,28 @@ tr3290: { p--; {cs = stack[--top];goto _again;} } - goto st1537; -st1537: + goto st1555; +st1555: if ( ++p == pe ) - goto _test_eof1537; -case 1537: + goto _test_eof1555; +case 1555: goto st0; -tr3274: +tr3309: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1538; -tr3291: + goto st1556; +tr3326: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -83345,7 +84306,7 @@ tr3291: break; default: WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -83357,7 +84318,7 @@ tr3291: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -83379,11 +84340,11 @@ tr3291: { p--; {cs = stack[--top];goto _again;} } - goto st1538; -st1538: + goto st1556; +st1556: if ( ++p == pe ) - goto _test_eof1538; -case 1538: + goto _test_eof1556; +case 1556: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83401,67 +84362,67 @@ case 1538: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1222; - case 32: goto st1222; - case 33: goto tr3266; - case 40: goto tr3267; - case 41: goto tr3268; - case 49: goto tr3269; - case 50: goto tr3270; - case 3082: goto tr3271; - case 3131: goto tr3272; - case 3338: goto tr3273; - case 3387: goto tr3273; - case 3594: goto tr3274; - case 3643: goto tr3275; - } - goto tr3264; -tr3270: + case 9: goto st1240; + case 32: goto st1240; + case 33: goto tr3301; + case 40: goto tr3302; + case 41: goto tr3303; + case 49: goto tr3304; + case 50: goto tr3305; + case 3082: goto tr3306; + case 3131: goto tr3307; + case 3338: goto tr3308; + case 3387: goto tr3308; + case 3594: goto tr3309; + case 3643: goto tr3310; + } + goto tr3299; +tr3305: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.addr_family = 2; } - goto st1230; -tr3277: + goto st1248; +tr3312: { s->apl.addr_family = 2; } - goto st1230; -st1230: + goto st1248; +st1248: if ( ++p == pe ) - goto _test_eof1230; -case 1230: + goto _test_eof1248; +case 1248: if ( (*p) == 58 ) - goto st1231; - goto tr3264; -st1231: + goto st1249; + goto tr3299; +st1249: if ( ++p == pe ) - goto _test_eof1231; -case 1231: + goto _test_eof1249; +case 1249: if ( (*p) == 46 ) - goto tr3296; + goto tr3331; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr3296; + goto tr3331; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3296; + goto tr3331; } else - goto tr3296; - goto tr3279; -tr3297: + goto tr3331; + goto tr3314; +tr3332: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1232; -tr3296: + goto st1250; +tr3331: { s->buffer_length = 0; } @@ -83470,41 +84431,41 @@ tr3296: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1232; -st1232: + goto st1250; +st1250: if ( ++p == pe ) - goto _test_eof1232; -case 1232: + goto _test_eof1250; +case 1250: if ( (*p) == 47 ) - goto tr3298; + goto tr3333; if ( (*p) < 65 ) { if ( 46 <= (*p) && (*p) <= 58 ) - goto tr3297; + goto tr3332; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3297; + goto tr3332; } else - goto tr3297; - goto tr3279; -tr3275: + goto tr3332; + goto tr3314; +tr3310: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1539; -tr3292: + goto st1557; +tr3327: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -83521,7 +84482,7 @@ tr3292: break; default: WARN(ZS_BAD_APL); - p--; {goto st319;} + p--; {goto st325;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -83533,7 +84494,7 @@ tr3292: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -83555,11 +84516,11 @@ tr3292: { p--; {cs = stack[--top];goto _again;} } - goto st1539; -st1539: + goto st1557; +st1557: if ( ++p == pe ) - goto _test_eof1539; -case 1539: + goto _test_eof1557; +case 1557: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -83579,18 +84540,18 @@ case 1539: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3294; + goto tr3329; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3293; + goto tr3328; goto tr77; -st1233: +st1251: if ( ++p == pe ) - goto _test_eof1233; -case 1233: + goto _test_eof1251; +case 1251: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3299; - goto tr2653; -tr3299: + goto tr3334; + goto tr2688; +tr3334: { s->number64 = 0; } @@ -83605,11 +84566,11 @@ tr3299: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1234; -tr3303: + goto st1252; +tr3338: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -83621,14 +84582,14 @@ tr3303: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1234; -st1234: + goto st1252; +st1252: if ( ++p == pe ) - goto _test_eof1234; -case 1234: + goto _test_eof1252; +case 1252: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83642,40 +84603,40 @@ case 1234: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3300; - case 32: goto tr3300; - case 40: goto tr3301; - case 41: goto tr3302; - case 2058: goto tr3304; - case 2107: goto tr3305; + case 9: goto tr3335; + case 32: goto tr3335; + case 40: goto tr3336; + case 41: goto tr3337; + case 2058: goto tr3339; + case 2107: goto tr3340; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3303; - goto tr2653; -tr3307: + goto tr3338; + goto tr2688; +tr3342: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1235; -tr3308: + goto st1253; +tr3343: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1235; -tr3310: + goto st1253; +tr3345: { s->line_counter++; } - goto st1235; -tr3347: + goto st1253; +tr3382: { s->buffer[s->buffer_length++] = 0; @@ -83685,15 +84646,15 @@ tr3347: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1235; goto _out;} + {p++; cs = 1253; goto _out;} } } } { s->line_counter++; } - goto st1235; -tr3300: + goto st1253; +tr3335: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83701,11 +84662,11 @@ tr3300: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1235; -tr3301: + goto st1253; +tr3336: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83713,18 +84674,18 @@ tr3301: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1235; -tr3302: + goto st1253; +tr3337: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83732,18 +84693,18 @@ tr3302: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1235; -tr3304: + goto st1253; +tr3339: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83751,17 +84712,17 @@ tr3304: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1235; -st1235: + goto st1253; +st1253: if ( ++p == pe ) - goto _test_eof1235; -case 1235: + goto _test_eof1253; +case 1253: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83775,29 +84736,29 @@ case 1235: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1235; - case 32: goto st1235; - case 40: goto tr3307; - case 41: goto tr3308; - case 2058: goto tr3310; - case 2107: goto tr3311; + case 9: goto st1253; + case 32: goto st1253; + case 40: goto tr3342; + case 41: goto tr3343; + case 2058: goto tr3345; + case 2107: goto tr3346; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3309; + goto tr3344; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3309; + goto tr3344; } else - goto tr3309; + goto tr3344; goto tr77; -tr3309: - { p--; {stack[top++] = 1236;goto st918;} } - goto st1236; -st1236: +tr3344: + { p--; {stack[top++] = 1254;goto st936;} } + goto st1254; +st1254: if ( ++p == pe ) - goto _test_eof1236; -case 1236: + goto _test_eof1254; +case 1254: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83811,38 +84772,38 @@ case 1236: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1237; - case 32: goto st1237; - case 40: goto tr3313; - case 41: goto tr3314; - case 2058: goto tr3315; - case 2107: goto tr3316; + case 9: goto st1255; + case 32: goto st1255; + case 40: goto tr3348; + case 41: goto tr3349; + case 2058: goto tr3350; + case 2107: goto tr3351; } goto tr77; -tr3313: +tr3348: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1237; -tr3314: + goto st1255; +tr3349: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1237; -tr3315: + goto st1255; +tr3350: { s->line_counter++; } - goto st1237; -tr3345: + goto st1255; +tr3380: { s->buffer[s->buffer_length++] = 0; @@ -83852,18 +84813,18 @@ tr3345: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1237; goto _out;} + {p++; cs = 1255; goto _out;} } } } { s->line_counter++; } - goto st1237; -st1237: + goto st1255; +st1255: if ( ++p == pe ) - goto _test_eof1237; -case 1237: + goto _test_eof1255; +case 1255: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83877,17 +84838,17 @@ case 1237: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1237; - case 32: goto st1237; - case 40: goto tr3313; - case 41: goto tr3314; - case 2058: goto tr3315; - case 2107: goto tr3316; + case 9: goto st1255; + case 32: goto st1255; + case 40: goto tr3348; + case 41: goto tr3349; + case 2058: goto tr3350; + case 2107: goto tr3351; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3317; - goto tr2653; -tr3317: + goto tr3352; + goto tr2688; +tr3352: { s->number64 = 0; } @@ -83902,11 +84863,11 @@ tr3317: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1238; -tr3321: + goto st1256; +tr3356: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -83918,14 +84879,14 @@ tr3321: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1238; -st1238: + goto st1256; +st1256: if ( ++p == pe ) - goto _test_eof1238; -case 1238: + goto _test_eof1256; +case 1256: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83939,40 +84900,40 @@ case 1238: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3318; - case 32: goto tr3318; - case 40: goto tr3319; - case 41: goto tr3320; - case 2058: goto tr3322; - case 2107: goto tr3323; + case 9: goto tr3353; + case 32: goto tr3353; + case 40: goto tr3354; + case 41: goto tr3355; + case 2058: goto tr3357; + case 2107: goto tr3358; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3321; - goto tr2653; -tr3326: + goto tr3356; + goto tr2688; +tr3361: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1239; -tr3327: + goto st1257; +tr3362: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1239; -tr3329: + goto st1257; +tr3364: { s->line_counter++; } - goto st1239; -tr3343: + goto st1257; +tr3378: { s->buffer[s->buffer_length++] = 0; @@ -83982,79 +84943,79 @@ tr3343: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1239; goto _out;} + {p++; cs = 1257; goto _out;} } } } { s->line_counter++; } - goto st1239; -tr3318: + goto st1257; +tr3353: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1239; -tr3319: + goto st1257; +tr3354: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1239; -tr3320: + goto st1257; +tr3355: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1239; -tr3322: + goto st1257; +tr3357: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1239; -st1239: + goto st1257; +st1257: if ( ++p == pe ) - goto _test_eof1239; -case 1239: + goto _test_eof1257; +case 1257: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84068,69 +85029,69 @@ case 1239: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1239; - case 32: goto st1239; - case 40: goto tr3326; - case 41: goto tr3327; - case 2058: goto tr3329; - case 2107: goto tr3330; + case 9: goto st1257; + case 32: goto st1257; + case 40: goto tr3361; + case 41: goto tr3362; + case 2058: goto tr3364; + case 2107: goto tr3365; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3328; + goto tr3363; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3328; + goto tr3363; } else - goto tr3328; - goto tr3324; -tr3328: + goto tr3363; + goto tr3359; +tr3363: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1240; -st1240: + goto st1258; +st1258: if ( ++p == pe ) - goto _test_eof1240; -case 1240: + goto _test_eof1258; +case 1258: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3331; + goto tr3366; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3331; + goto tr3366; } else - goto tr3331; - goto tr3324; -tr3333: + goto tr3366; + goto tr3359; +tr3368: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1241; -tr3334: + goto st1259; +tr3369: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1241; -tr3335: + goto st1259; +tr3370: { s->line_counter++; } - goto st1241; -tr3341: + goto st1259; +tr3376: { s->buffer[s->buffer_length++] = 0; @@ -84140,24 +85101,24 @@ tr3341: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1241; goto _out;} + {p++; cs = 1259; goto _out;} } } } { s->line_counter++; } - goto st1241; -tr3331: + goto st1259; +tr3366: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1241; -st1241: + goto st1259; +st1259: if ( ++p == pe ) - goto _test_eof1241; -case 1241: + goto _test_eof1259; +case 1259: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84175,42 +85136,42 @@ case 1241: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1241; - case 32: goto st1241; - case 40: goto tr3333; - case 41: goto tr3334; - case 3082: goto tr3335; - case 3131: goto tr3336; - case 3338: goto tr3337; - case 3387: goto tr3337; - case 3594: goto tr3338; - case 3643: goto tr3339; + case 9: goto st1259; + case 32: goto st1259; + case 40: goto tr3368; + case 41: goto tr3369; + case 3082: goto tr3370; + case 3131: goto tr3371; + case 3338: goto tr3372; + case 3387: goto tr3372; + case 3594: goto tr3373; + case 3643: goto tr3374; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3328; + goto tr3363; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3328; + goto tr3363; } else - goto tr3328; - goto tr3324; -tr3336: + goto tr3363; + goto tr3359; +tr3371: { s->buffer_length = 0; } - goto st1242; -tr3340: + goto st1260; +tr3375: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1242; -st1242: + goto st1260; +st1260: if ( ++p == pe ) - goto _test_eof1242; -case 1242: + goto _test_eof1260; +case 1260: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84230,32 +85191,32 @@ case 1242: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3341; + goto tr3376; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3340; - goto tr3324; -tr3337: + goto tr3375; + goto tr3359; +tr3372: { p--; {cs = stack[--top];goto _again;} } - goto st1540; -st1540: + goto st1558; +st1558: if ( ++p == pe ) - goto _test_eof1540; -case 1540: + goto _test_eof1558; +case 1558: goto st0; -tr3338: +tr3373: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1541; -st1541: + goto st1559; +st1559: if ( ++p == pe ) - goto _test_eof1541; -case 1541: + goto _test_eof1559; +case 1559: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84273,38 +85234,38 @@ case 1541: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1241; - case 32: goto st1241; - case 40: goto tr3333; - case 41: goto tr3334; - case 3082: goto tr3335; - case 3131: goto tr3336; - case 3338: goto tr3337; - case 3387: goto tr3337; - case 3594: goto tr3338; - case 3643: goto tr3339; + case 9: goto st1259; + case 32: goto st1259; + case 40: goto tr3368; + case 41: goto tr3369; + case 3082: goto tr3370; + case 3131: goto tr3371; + case 3338: goto tr3372; + case 3387: goto tr3372; + case 3594: goto tr3373; + case 3643: goto tr3374; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3328; + goto tr3363; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3328; + goto tr3363; } else - goto tr3328; - goto tr3324; -tr3339: + goto tr3363; + goto tr3359; +tr3374: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -st1542: + goto st1560; +st1560: if ( ++p == pe ) - goto _test_eof1542; -case 1542: + goto _test_eof1560; +case 1560: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84324,40 +85285,40 @@ case 1542: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3341; + goto tr3376; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3340; - goto tr3324; -tr3330: + goto tr3375; + goto tr3359; +tr3365: { s->buffer_length = 0; } - goto st1243; -tr3342: + goto st1261; +tr3377: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1243; -tr3323: + goto st1261; +tr3358: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1243; -st1243: + goto st1261; +st1261: if ( ++p == pe ) - goto _test_eof1243; -case 1243: + goto _test_eof1261; +case 1261: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84377,26 +85338,26 @@ case 1243: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3343; + goto tr3378; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3342; + goto tr3377; goto tr77; -tr3316: +tr3351: { s->buffer_length = 0; } - goto st1244; -tr3344: + goto st1262; +tr3379: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1244; -st1244: + goto st1262; +st1262: if ( ++p == pe ) - goto _test_eof1244; -case 1244: + goto _test_eof1262; +case 1262: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84416,23 +85377,23 @@ case 1244: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3345; + goto tr3380; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3344; + goto tr3379; goto tr77; -tr3311: +tr3346: { s->buffer_length = 0; } - goto st1245; -tr3346: + goto st1263; +tr3381: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1245; -tr3305: + goto st1263; +tr3340: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84440,17 +85401,17 @@ tr3305: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1245; -st1245: + goto st1263; +st1263: if ( ++p == pe ) - goto _test_eof1245; -case 1245: + goto _test_eof1263; +case 1263: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84470,18 +85431,18 @@ case 1245: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3347; + goto tr3382; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3346; + goto tr3381; goto tr77; -st1246: +st1264: if ( ++p == pe ) - goto _test_eof1246; -case 1246: + goto _test_eof1264; +case 1264: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3348; - goto tr2653; -tr3348: + goto tr3383; + goto tr2688; +tr3383: { s->number64 = 0; } @@ -84496,11 +85457,11 @@ tr3348: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1247; -tr3352: + goto st1265; +tr3387: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -84512,14 +85473,14 @@ tr3352: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1247; -st1247: + goto st1265; +st1265: if ( ++p == pe ) - goto _test_eof1247; -case 1247: + goto _test_eof1265; +case 1265: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84533,40 +85494,40 @@ case 1247: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3349; - case 32: goto tr3349; - case 40: goto tr3350; - case 41: goto tr3351; - case 2058: goto tr3353; - case 2107: goto tr3354; + case 9: goto tr3384; + case 32: goto tr3384; + case 40: goto tr3385; + case 41: goto tr3386; + case 2058: goto tr3388; + case 2107: goto tr3389; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3352; - goto tr2653; -tr3356: + goto tr3387; + goto tr2688; +tr3391: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1248; -tr3357: + goto st1266; +tr3392: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1248; -tr3359: + goto st1266; +tr3394: { s->line_counter++; } - goto st1248; -tr3387: + goto st1266; +tr3422: { s->buffer[s->buffer_length++] = 0; @@ -84576,79 +85537,79 @@ tr3387: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1248; goto _out;} + {p++; cs = 1266; goto _out;} } } } { s->line_counter++; } - goto st1248; -tr3349: + goto st1266; +tr3384: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1248; -tr3350: + goto st1266; +tr3385: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1248; -tr3351: + goto st1266; +tr3386: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1248; -tr3353: + goto st1266; +tr3388: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1248; -st1248: + goto st1266; +st1266: if ( ++p == pe ) - goto _test_eof1248; -case 1248: + goto _test_eof1266; +case 1266: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84662,17 +85623,17 @@ case 1248: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1248; - case 32: goto st1248; - case 40: goto tr3356; - case 41: goto tr3357; - case 2058: goto tr3359; - case 2107: goto tr3360; + case 9: goto st1266; + case 32: goto st1266; + case 40: goto tr3391; + case 41: goto tr3392; + case 2058: goto tr3394; + case 2107: goto tr3395; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3358; - goto tr2653; -tr3358: + goto tr3393; + goto tr2688; +tr3393: { s->number64 = 0; } @@ -84687,11 +85648,11 @@ tr3358: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1249; -tr3364: + goto st1267; +tr3399: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -84703,14 +85664,14 @@ tr3364: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1249; -st1249: + goto st1267; +st1267: if ( ++p == pe ) - goto _test_eof1249; -case 1249: + goto _test_eof1267; +case 1267: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84724,40 +85685,40 @@ case 1249: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3361; - case 32: goto tr3361; - case 40: goto tr3362; - case 41: goto tr3363; - case 2058: goto tr3365; - case 2107: goto tr3366; + case 9: goto tr3396; + case 32: goto tr3396; + case 40: goto tr3397; + case 41: goto tr3398; + case 2058: goto tr3400; + case 2107: goto tr3401; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3364; - goto tr2653; -tr3368: + goto tr3399; + goto tr2688; +tr3403: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1250; -tr3369: + goto st1268; +tr3404: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1250; -tr3371: + goto st1268; +tr3406: { s->line_counter++; } - goto st1250; -tr3385: + goto st1268; +tr3420: { s->buffer[s->buffer_length++] = 0; @@ -84767,79 +85728,79 @@ tr3385: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1250; goto _out;} + {p++; cs = 1268; goto _out;} } } } { s->line_counter++; } - goto st1250; -tr3361: + goto st1268; +tr3396: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1250; -tr3362: + goto st1268; +tr3397: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1250; -tr3363: + goto st1268; +tr3398: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1250; -tr3365: + goto st1268; +tr3400: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1250; -st1250: + goto st1268; +st1268: if ( ++p == pe ) - goto _test_eof1250; -case 1250: + goto _test_eof1268; +case 1268: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84853,69 +85814,69 @@ case 1250: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1250; - case 32: goto st1250; - case 40: goto tr3368; - case 41: goto tr3369; - case 2058: goto tr3371; - case 2107: goto tr3372; + case 9: goto st1268; + case 32: goto st1268; + case 40: goto tr3403; + case 41: goto tr3404; + case 2058: goto tr3406; + case 2107: goto tr3407; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3370; + goto tr3405; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3370; + goto tr3405; } else - goto tr3370; - goto tr3324; -tr3370: + goto tr3405; + goto tr3359; +tr3405: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1251; -st1251: + goto st1269; +st1269: if ( ++p == pe ) - goto _test_eof1251; -case 1251: + goto _test_eof1269; +case 1269: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3373; + goto tr3408; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3373; + goto tr3408; } else - goto tr3373; - goto tr3324; -tr3375: + goto tr3408; + goto tr3359; +tr3410: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1252; -tr3376: + goto st1270; +tr3411: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1252; -tr3377: + goto st1270; +tr3412: { s->line_counter++; } - goto st1252; -tr3383: + goto st1270; +tr3418: { s->buffer[s->buffer_length++] = 0; @@ -84925,24 +85886,24 @@ tr3383: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1252; goto _out;} + {p++; cs = 1270; goto _out;} } } } { s->line_counter++; } - goto st1252; -tr3373: + goto st1270; +tr3408: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1252; -st1252: + goto st1270; +st1270: if ( ++p == pe ) - goto _test_eof1252; -case 1252: + goto _test_eof1270; +case 1270: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84960,42 +85921,42 @@ case 1252: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1252; - case 32: goto st1252; - case 40: goto tr3375; - case 41: goto tr3376; - case 3082: goto tr3377; - case 3131: goto tr3378; - case 3338: goto tr3379; - case 3387: goto tr3379; - case 3594: goto tr3380; - case 3643: goto tr3381; + case 9: goto st1270; + case 32: goto st1270; + case 40: goto tr3410; + case 41: goto tr3411; + case 3082: goto tr3412; + case 3131: goto tr3413; + case 3338: goto tr3414; + case 3387: goto tr3414; + case 3594: goto tr3415; + case 3643: goto tr3416; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3370; + goto tr3405; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3370; + goto tr3405; } else - goto tr3370; - goto tr3324; -tr3378: + goto tr3405; + goto tr3359; +tr3413: { s->buffer_length = 0; } - goto st1253; -tr3382: + goto st1271; +tr3417: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1253; -st1253: + goto st1271; +st1271: if ( ++p == pe ) - goto _test_eof1253; -case 1253: + goto _test_eof1271; +case 1271: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85015,32 +85976,32 @@ case 1253: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3383; + goto tr3418; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3382; - goto tr3324; -tr3379: + goto tr3417; + goto tr3359; +tr3414: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -st1543: + goto st1561; +st1561: if ( ++p == pe ) - goto _test_eof1543; -case 1543: + goto _test_eof1561; +case 1561: goto st0; -tr3380: +tr3415: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1544; -st1544: + goto st1562; +st1562: if ( ++p == pe ) - goto _test_eof1544; -case 1544: + goto _test_eof1562; +case 1562: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85058,38 +86019,38 @@ case 1544: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1252; - case 32: goto st1252; - case 40: goto tr3375; - case 41: goto tr3376; - case 3082: goto tr3377; - case 3131: goto tr3378; - case 3338: goto tr3379; - case 3387: goto tr3379; - case 3594: goto tr3380; - case 3643: goto tr3381; + case 9: goto st1270; + case 32: goto st1270; + case 40: goto tr3410; + case 41: goto tr3411; + case 3082: goto tr3412; + case 3131: goto tr3413; + case 3338: goto tr3414; + case 3387: goto tr3414; + case 3594: goto tr3415; + case 3643: goto tr3416; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3370; + goto tr3405; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3370; + goto tr3405; } else - goto tr3370; - goto tr3324; -tr3381: + goto tr3405; + goto tr3359; +tr3416: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1545; -st1545: + goto st1563; +st1563: if ( ++p == pe ) - goto _test_eof1545; -case 1545: + goto _test_eof1563; +case 1563: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85109,40 +86070,40 @@ case 1545: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3383; + goto tr3418; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3382; - goto tr3324; -tr3372: + goto tr3417; + goto tr3359; +tr3407: { s->buffer_length = 0; } - goto st1254; -tr3384: + goto st1272; +tr3419: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1254; -tr3366: + goto st1272; +tr3401: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1254; -st1254: + goto st1272; +st1272: if ( ++p == pe ) - goto _test_eof1254; -case 1254: + goto _test_eof1272; +case 1272: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85162,40 +86123,40 @@ case 1254: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3385; + goto tr3420; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3384; + goto tr3419; goto tr77; -tr3360: +tr3395: { s->buffer_length = 0; } - goto st1255; -tr3386: + goto st1273; +tr3421: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1255; -tr3354: + goto st1273; +tr3389: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1255; -st1255: + goto st1273; +st1273: if ( ++p == pe ) - goto _test_eof1255; -case 1255: + goto _test_eof1273; +case 1273: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85215,18 +86176,18 @@ case 1255: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3387; + goto tr3422; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3386; + goto tr3421; goto tr77; -st1256: +st1274: if ( ++p == pe ) - goto _test_eof1256; -case 1256: + goto _test_eof1274; +case 1274: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3388; - goto tr2653; -tr3388: + goto tr3423; + goto tr2688; +tr3423: { s->number64 = 0; } @@ -85241,11 +86202,11 @@ tr3388: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1257; -tr3392: + goto st1275; +tr3427: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -85257,14 +86218,14 @@ tr3392: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1257; -st1257: + goto st1275; +st1275: if ( ++p == pe ) - goto _test_eof1257; -case 1257: + goto _test_eof1275; +case 1275: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85278,40 +86239,40 @@ case 1257: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3389; - case 32: goto tr3389; - case 40: goto tr3390; - case 41: goto tr3391; - case 2058: goto tr3393; - case 2107: goto tr3394; + case 9: goto tr3424; + case 32: goto tr3424; + case 40: goto tr3425; + case 41: goto tr3426; + case 2058: goto tr3428; + case 2107: goto tr3429; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3392; - goto tr2653; -tr3397: + goto tr3427; + goto tr2688; +tr3432: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1258; -tr3398: + goto st1276; +tr3433: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1258; -tr3403: + goto st1276; +tr3438: { s->line_counter++; } - goto st1258; -tr3596: + goto st1276; +tr3631: { s->buffer[s->buffer_length++] = 0; @@ -85321,79 +86282,79 @@ tr3596: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1258; goto _out;} + {p++; cs = 1276; goto _out;} } } } { s->line_counter++; } - goto st1258; -tr3389: + goto st1276; +tr3424: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1258; -tr3390: + goto st1276; +tr3425: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1258; -tr3391: + goto st1276; +tr3426: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1258; -tr3393: + goto st1276; +tr3428: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1258; -st1258: + goto st1276; +st1276: if ( ++p == pe ) - goto _test_eof1258; -case 1258: + goto _test_eof1276; +case 1276: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85407,27 +86368,27 @@ case 1258: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1258; - case 32: goto st1258; - case 40: goto tr3397; - case 41: goto tr3398; - case 48: goto tr3399; - case 49: goto tr3400; - case 50: goto tr3401; - case 51: goto tr3402; - case 2058: goto tr3403; - case 2107: goto tr3404; - } - goto tr3395; -tr3399: + case 9: goto st1276; + case 32: goto st1276; + case 40: goto tr3432; + case 41: goto tr3433; + case 48: goto tr3434; + case 49: goto tr3435; + case 50: goto tr3436; + case 51: goto tr3437; + case 2058: goto tr3438; + case 2107: goto tr3439; + } + goto tr3430; +tr3434: { *(rdata_tail++) = 0; } - goto st1259; -st1259: + goto st1277; +st1277: if ( ++p == pe ) - goto _test_eof1259; -case 1259: + goto _test_eof1277; +case 1277: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85441,38 +86402,38 @@ case 1259: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1260; - case 32: goto st1260; - case 40: goto tr3406; - case 41: goto tr3407; - case 2058: goto tr3408; - case 2107: goto tr3409; - } - goto tr3395; -tr3406: + case 9: goto st1278; + case 32: goto st1278; + case 40: goto tr3441; + case 41: goto tr3442; + case 2058: goto tr3443; + case 2107: goto tr3444; + } + goto tr3430; +tr3441: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1260; -tr3407: + goto st1278; +tr3442: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1260; -tr3408: + goto st1278; +tr3443: { s->line_counter++; } - goto st1260; -tr3458: + goto st1278; +tr3493: { s->buffer[s->buffer_length++] = 0; @@ -85482,18 +86443,18 @@ tr3458: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1260; goto _out;} + {p++; cs = 1278; goto _out;} } } } { s->line_counter++; } - goto st1260; -st1260: + goto st1278; +st1278: if ( ++p == pe ) - goto _test_eof1260; -case 1260: + goto _test_eof1278; +case 1278: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85507,17 +86468,17 @@ case 1260: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1260; - case 32: goto st1260; - case 40: goto tr3406; - case 41: goto tr3407; - case 2058: goto tr3408; - case 2107: goto tr3409; + case 9: goto st1278; + case 32: goto st1278; + case 40: goto tr3441; + case 41: goto tr3442; + case 2058: goto tr3443; + case 2107: goto tr3444; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3411; - goto tr3410; -tr3411: + goto tr3446; + goto tr3445; +tr3446: { s->number64 = 0; } @@ -85532,11 +86493,11 @@ tr3411: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1261; -tr3415: + goto st1279; +tr3450: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -85548,14 +86509,14 @@ tr3415: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1261; -st1261: + goto st1279; +st1279: if ( ++p == pe ) - goto _test_eof1261; -case 1261: + goto _test_eof1279; +case 1279: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85569,40 +86530,40 @@ case 1261: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3412; - case 32: goto tr3412; - case 40: goto tr3413; - case 41: goto tr3414; - case 2058: goto tr3416; - case 2107: goto tr3417; + case 9: goto tr3447; + case 32: goto tr3447; + case 40: goto tr3448; + case 41: goto tr3449; + case 2058: goto tr3451; + case 2107: goto tr3452; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3415; - goto tr3410; -tr3419: + goto tr3450; + goto tr3445; +tr3454: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1262; -tr3420: + goto st1280; +tr3455: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1262; -tr3422: + goto st1280; +tr3457: { s->line_counter++; } - goto st1262; -tr3456: + goto st1280; +tr3491: { s->buffer[s->buffer_length++] = 0; @@ -85612,79 +86573,79 @@ tr3456: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1262; goto _out;} + {p++; cs = 1280; goto _out;} } } } { s->line_counter++; } - goto st1262; -tr3412: + goto st1280; +tr3447: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1262; -tr3413: + goto st1280; +tr3448: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1262; -tr3414: + goto st1280; +tr3449: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1262; -tr3416: + goto st1280; +tr3451: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1262; -st1262: + goto st1280; +st1280: if ( ++p == pe ) - goto _test_eof1262; -case 1262: + goto _test_eof1280; +case 1280: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85698,19 +86659,19 @@ case 1262: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1262; - case 32: goto st1262; - case 40: goto tr3419; - case 41: goto tr3420; - case 46: goto st1263; - case 2058: goto tr3422; - case 2107: goto tr3423; - } - goto tr3395; -st1263: + case 9: goto st1280; + case 32: goto st1280; + case 40: goto tr3454; + case 41: goto tr3455; + case 46: goto st1281; + case 2058: goto tr3457; + case 2107: goto tr3458; + } + goto tr3430; +st1281: if ( ++p == pe ) - goto _test_eof1263; -case 1263: + goto _test_eof1281; +case 1281: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -85768,66 +86729,66 @@ case 1263: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 7177: goto st1264; - case 7200: goto st1264; - case 7208: goto tr3426; - case 7209: goto tr3427; - case 7433: goto st1267; - case 7456: goto st1267; - case 7464: goto tr3429; - case 7465: goto tr3430; - case 7689: goto st1269; - case 7712: goto st1269; - case 7720: goto tr3432; - case 7721: goto tr3433; - case 10506: goto tr3434; - case 10555: goto tr3434; - case 10762: goto tr3434; - case 10811: goto tr3434; - case 11274: goto tr3435; - case 11323: goto tr3436; - case 11530: goto tr3434; - case 11579: goto tr3434; - case 11786: goto tr3437; - case 11835: goto tr3438; - case 12298: goto tr3439; - case 12347: goto tr3440; - case 12554: goto tr3434; - case 12603: goto tr3434; - case 12810: goto tr3441; - case 12859: goto tr3442; - case 13322: goto tr3443; - case 13371: goto tr3444; - case 13578: goto tr3434; - case 13627: goto tr3434; - case 13834: goto tr3445; - case 13883: goto tr3446; - } - goto tr3424; -tr3426: + case 7177: goto st1282; + case 7200: goto st1282; + case 7208: goto tr3461; + case 7209: goto tr3462; + case 7433: goto st1285; + case 7456: goto st1285; + case 7464: goto tr3464; + case 7465: goto tr3465; + case 7689: goto st1287; + case 7712: goto st1287; + case 7720: goto tr3467; + case 7721: goto tr3468; + case 10506: goto tr3469; + case 10555: goto tr3469; + case 10762: goto tr3469; + case 10811: goto tr3469; + case 11274: goto tr3470; + case 11323: goto tr3471; + case 11530: goto tr3469; + case 11579: goto tr3469; + case 11786: goto tr3472; + case 11835: goto tr3473; + case 12298: goto tr3474; + case 12347: goto tr3475; + case 12554: goto tr3469; + case 12603: goto tr3469; + case 12810: goto tr3476; + case 12859: goto tr3477; + case 13322: goto tr3478; + case 13371: goto tr3479; + case 13578: goto tr3469; + case 13627: goto tr3469; + case 13834: goto tr3480; + case 13883: goto tr3481; + } + goto tr3459; +tr3461: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1264; -tr3427: + goto st1282; +tr3462: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1264; -tr3435: + goto st1282; +tr3470: { s->line_counter++; } - goto st1264; -tr3450: + goto st1282; +tr3485: { s->buffer[s->buffer_length++] = 0; @@ -85837,100 +86798,100 @@ tr3450: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1264; goto _out;} + {p++; cs = 1282; goto _out;} } } } { s->line_counter++; } - goto st1264; -tr3480: + goto st1282; +tr3515: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1264; -tr3525: + goto st1282; +tr3560: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1264; -tr3569: + goto st1282; +tr3604: { rdata_tail += s->dname_tmp_length; } - goto st1264; -tr3570: + goto st1282; +tr3605: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1264; -tr3571: + goto st1282; +tr3606: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1264; -tr3579: + goto st1282; +tr3614: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1264; -tr3481: + goto st1282; +tr3516: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -85938,24 +86899,24 @@ tr3481: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1264; -tr3482: + goto st1282; +tr3517: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -85963,24 +86924,24 @@ tr3482: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1264; -tr3490: + goto st1282; +tr3525: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -85988,20 +86949,20 @@ tr3490: { s->line_counter++; } - goto st1264; -tr3526: + goto st1282; +tr3561: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86009,24 +86970,24 @@ tr3526: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1264; -tr3527: + goto st1282; +tr3562: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86034,24 +86995,24 @@ tr3527: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1264; -tr3535: + goto st1282; +tr3570: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86059,11 +87020,11 @@ tr3535: { s->line_counter++; } - goto st1264; -st1264: + goto st1282; +st1282: if ( ++p == pe ) - goto _test_eof1264; -case 1264: + goto _test_eof1282; +case 1282: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -86135,30 +87096,30 @@ case 1264: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4105: goto st1264; - case 4128: goto st1264; - case 4136: goto tr3426; - case 4137: goto tr3427; - case 4139: goto tr3448; - case 5130: goto tr3435; - case 5179: goto tr3436; + case 4105: goto st1282; + case 4128: goto st1282; + case 4136: goto tr3461; + case 4137: goto tr3462; + case 4139: goto tr3483; + case 5130: goto tr3470; + case 5179: goto tr3471; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3448; + goto tr3483; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3448; + goto tr3483; } else - goto tr3448; - goto tr3447; -tr3448: - { p--; {stack[top++] = 1265;goto st381;} } - goto st1265; -st1265: + goto tr3483; + goto tr3482; +tr3483: + { p--; {stack[top++] = 1283;goto st387;} } + goto st1283; +st1283: if ( ++p == pe ) - goto _test_eof1265; -case 1265: + goto _test_eof1283; +case 1283: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86172,28 +87133,28 @@ case 1265: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3434; - case 2619: goto tr3434; + case 2570: goto tr3469; + case 2619: goto tr3469; } - goto tr3447; -tr3434: + goto tr3482; +tr3469: { p--; {cs = stack[--top];goto _again;} } - goto st1546; -tr3489: + goto st1564; +tr3524: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -86201,28 +87162,28 @@ tr3489: { p--; {cs = stack[--top];goto _again;} } - goto st1546; -tr3578: + goto st1564; +tr3613: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1546; -tr3534: + goto st1564; +tr3569: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86230,45 +87191,45 @@ tr3534: { p--; {cs = stack[--top];goto _again;} } - goto st1546; -st1546: + goto st1564; +st1564: if ( ++p == pe ) - goto _test_eof1546; -case 1546: + goto _test_eof1564; +case 1564: goto st0; -tr3436: +tr3471: { s->buffer_length = 0; } - goto st1266; -tr3449: + goto st1284; +tr3484: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1266; -tr3580: + goto st1284; +tr3615: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1266; -tr3491: + goto st1284; +tr3526: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -86276,20 +87237,20 @@ tr3491: { s->buffer_length = 0; } - goto st1266; -tr3536: + goto st1284; +tr3571: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86297,11 +87258,11 @@ tr3536: { s->buffer_length = 0; } - goto st1266; -st1266: + goto st1284; +st1284: if ( ++p == pe ) - goto _test_eof1266; -case 1266: + goto _test_eof1284; +case 1284: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86327,34 +87288,34 @@ case 1266: s->number64 != 0 ) _widec += 512; } if ( _widec == 5130 ) - goto tr3450; + goto tr3485; if ( 4992 <= _widec && _widec <= 5247 ) - goto tr3449; - goto tr3447; -tr3429: + goto tr3484; + goto tr3482; +tr3464: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1267; -tr3430: + goto st1285; +tr3465: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1267; -tr3439: + goto st1285; +tr3474: { s->line_counter++; } - goto st1267; -tr3452: + goto st1285; +tr3487: { s->buffer[s->buffer_length++] = 0; @@ -86364,100 +87325,100 @@ tr3452: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1267; goto _out;} + {p++; cs = 1285; goto _out;} } } } { s->line_counter++; } - goto st1267; -tr3483: + goto st1285; +tr3518: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1267; -tr3528: + goto st1285; +tr3563: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1267; -tr3572: + goto st1285; +tr3607: { rdata_tail += s->dname_tmp_length; } - goto st1267; -tr3573: + goto st1285; +tr3608: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1267; -tr3574: + goto st1285; +tr3609: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1267; -tr3583: + goto st1285; +tr3618: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1267; -tr3484: + goto st1285; +tr3519: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -86465,24 +87426,24 @@ tr3484: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1267; -tr3485: + goto st1285; +tr3520: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -86490,24 +87451,24 @@ tr3485: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1267; -tr3494: + goto st1285; +tr3529: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -86515,20 +87476,20 @@ tr3494: { s->line_counter++; } - goto st1267; -tr3529: + goto st1285; +tr3564: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86536,24 +87497,24 @@ tr3529: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1267; -tr3530: + goto st1285; +tr3565: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86561,24 +87522,24 @@ tr3530: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1267; -tr3539: + goto st1285; +tr3574: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86586,11 +87547,11 @@ tr3539: { s->line_counter++; } - goto st1267; -st1267: + goto st1285; +st1285: if ( ++p == pe ) - goto _test_eof1267; -case 1267: + goto _test_eof1285; +case 1285: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -86636,55 +87597,55 @@ case 1267: s->number64 == 0 ) _widec += 256; } switch( _widec ) { - case 5641: goto st1267; - case 5664: goto st1267; - case 5672: goto tr3429; - case 5673: goto tr3430; - case 14602: goto tr3434; - case 14651: goto tr3434; - case 14858: goto tr3434; - case 14907: goto tr3434; - case 15370: goto tr3439; - case 15419: goto tr3440; - case 15626: goto tr3434; - case 15675: goto tr3434; - case 15882: goto tr3441; - case 15931: goto tr3442; - } - goto tr3447; -tr3440: + case 5641: goto st1285; + case 5664: goto st1285; + case 5672: goto tr3464; + case 5673: goto tr3465; + case 14602: goto tr3469; + case 14651: goto tr3469; + case 14858: goto tr3469; + case 14907: goto tr3469; + case 15370: goto tr3474; + case 15419: goto tr3475; + case 15626: goto tr3469; + case 15675: goto tr3469; + case 15882: goto tr3476; + case 15931: goto tr3477; + } + goto tr3482; +tr3475: { s->buffer_length = 0; } - goto st1268; -tr3451: + goto st1286; +tr3486: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1268; -tr3584: + goto st1286; +tr3619: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1268; -tr3495: + goto st1286; +tr3530: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -86692,20 +87653,20 @@ tr3495: { s->buffer_length = 0; } - goto st1268; -tr3540: + goto st1286; +tr3575: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86713,11 +87674,11 @@ tr3540: { s->buffer_length = 0; } - goto st1268; -st1268: + goto st1286; +st1286: if ( ++p == pe ) - goto _test_eof1268; -case 1268: + goto _test_eof1286; +case 1286: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86743,31 +87704,31 @@ case 1268: s->number64 == 0 ) _widec += 512; } if ( _widec == 6666 ) - goto tr3452; + goto tr3487; if ( 6528 <= _widec && _widec <= 6783 ) - goto tr3451; - goto tr3447; -tr3441: + goto tr3486; + goto tr3482; +tr3476: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1547; -tr3496: + goto st1565; +tr3531: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -86778,20 +87739,20 @@ tr3496: { p--; {cs = stack[--top];goto _again;} } - goto st1547; -tr3541: + goto st1565; +tr3576: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86802,8 +87763,8 @@ tr3541: { p--; {cs = stack[--top];goto _again;} } - goto st1547; -tr3585: + goto st1565; +tr3620: { rdata_tail += s->dname_tmp_length; } @@ -86813,11 +87774,11 @@ tr3585: { p--; {cs = stack[--top];goto _again;} } - goto st1547; -st1547: + goto st1565; +st1565: if ( ++p == pe ) - goto _test_eof1547; -case 1547: + goto _test_eof1565; +case 1565: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -86863,43 +87824,43 @@ case 1547: s->number64 == 0 ) _widec += 256; } switch( _widec ) { - case 5641: goto st1267; - case 5664: goto st1267; - case 5672: goto tr3429; - case 5673: goto tr3430; - case 14602: goto tr3434; - case 14651: goto tr3434; - case 14858: goto tr3434; - case 14907: goto tr3434; - case 15370: goto tr3439; - case 15419: goto tr3440; - case 15626: goto tr3434; - case 15675: goto tr3434; - case 15882: goto tr3441; - case 15931: goto tr3442; - } - goto tr3447; -tr3442: + case 5641: goto st1285; + case 5664: goto st1285; + case 5672: goto tr3464; + case 5673: goto tr3465; + case 14602: goto tr3469; + case 14651: goto tr3469; + case 14858: goto tr3469; + case 14907: goto tr3469; + case 15370: goto tr3474; + case 15419: goto tr3475; + case 15626: goto tr3469; + case 15675: goto tr3469; + case 15882: goto tr3476; + case 15931: goto tr3477; + } + goto tr3482; +tr3477: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1548; -tr3497: + goto st1566; +tr3532: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -86910,20 +87871,20 @@ tr3497: { p--; {cs = stack[--top];goto _again;} } - goto st1548; -tr3542: + goto st1566; +tr3577: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86934,8 +87895,8 @@ tr3542: { p--; {cs = stack[--top];goto _again;} } - goto st1548; -tr3586: + goto st1566; +tr3621: { rdata_tail += s->dname_tmp_length; } @@ -86945,11 +87906,11 @@ tr3586: { p--; {cs = stack[--top];goto _again;} } - goto st1548; -st1548: + goto st1566; +st1566: if ( ++p == pe ) - goto _test_eof1548; -case 1548: + goto _test_eof1566; +case 1566: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86975,34 +87936,34 @@ case 1548: s->number64 == 0 ) _widec += 512; } if ( _widec == 6666 ) - goto tr3452; + goto tr3487; if ( 6528 <= _widec && _widec <= 6783 ) - goto tr3451; - goto tr3447; -tr3432: + goto tr3486; + goto tr3482; +tr3467: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1269; -tr3433: + goto st1287; +tr3468: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1269; -tr3443: + goto st1287; +tr3478: { s->line_counter++; } - goto st1269; -tr3454: + goto st1287; +tr3489: { s->buffer[s->buffer_length++] = 0; @@ -87012,100 +87973,100 @@ tr3454: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1269; goto _out;} + {p++; cs = 1287; goto _out;} } } } { s->line_counter++; } - goto st1269; -tr3486: + goto st1287; +tr3521: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1269; -tr3531: + goto st1287; +tr3566: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1269; -tr3575: + goto st1287; +tr3610: { rdata_tail += s->dname_tmp_length; } - goto st1269; -tr3576: + goto st1287; +tr3611: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1269; -tr3577: + goto st1287; +tr3612: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1269; -tr3587: + goto st1287; +tr3622: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1269; -tr3487: + goto st1287; +tr3522: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87113,24 +88074,24 @@ tr3487: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1269; -tr3488: + goto st1287; +tr3523: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87138,24 +88099,24 @@ tr3488: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1269; -tr3498: + goto st1287; +tr3533: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87163,20 +88124,20 @@ tr3498: { s->line_counter++; } - goto st1269; -tr3532: + goto st1287; +tr3567: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87184,24 +88145,24 @@ tr3532: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1269; -tr3533: + goto st1287; +tr3568: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87209,24 +88170,24 @@ tr3533: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1269; -tr3543: + goto st1287; +tr3578: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87234,11 +88195,11 @@ tr3543: { s->line_counter++; } - goto st1269; -st1269: + goto st1287; +st1287: if ( ++p == pe ) - goto _test_eof1269; -case 1269: + goto _test_eof1287; +case 1287: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -87326,72 +88287,72 @@ case 1269: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4139: goto tr3448; - case 7177: goto st1264; - case 7200: goto st1264; - case 7208: goto tr3426; - case 7209: goto tr3427; - case 7433: goto st1267; - case 7456: goto st1267; - case 7464: goto tr3429; - case 7465: goto tr3430; - case 7689: goto st1269; - case 7712: goto st1269; - case 7720: goto tr3432; - case 7721: goto tr3433; - case 10506: goto tr3434; - case 10555: goto tr3434; - case 10762: goto tr3434; - case 10811: goto tr3434; - case 11274: goto tr3435; - case 11323: goto tr3436; - case 11530: goto tr3434; - case 11579: goto tr3434; - case 11786: goto tr3437; - case 11835: goto tr3438; - case 12298: goto tr3439; - case 12347: goto tr3440; - case 12554: goto tr3434; - case 12603: goto tr3434; - case 12810: goto tr3441; - case 12859: goto tr3442; - case 13322: goto tr3443; - case 13371: goto tr3444; - case 13578: goto tr3434; - case 13627: goto tr3434; - case 13834: goto tr3445; - case 13883: goto tr3446; + case 4139: goto tr3483; + case 7177: goto st1282; + case 7200: goto st1282; + case 7208: goto tr3461; + case 7209: goto tr3462; + case 7433: goto st1285; + case 7456: goto st1285; + case 7464: goto tr3464; + case 7465: goto tr3465; + case 7689: goto st1287; + case 7712: goto st1287; + case 7720: goto tr3467; + case 7721: goto tr3468; + case 10506: goto tr3469; + case 10555: goto tr3469; + case 10762: goto tr3469; + case 10811: goto tr3469; + case 11274: goto tr3470; + case 11323: goto tr3471; + case 11530: goto tr3469; + case 11579: goto tr3469; + case 11786: goto tr3472; + case 11835: goto tr3473; + case 12298: goto tr3474; + case 12347: goto tr3475; + case 12554: goto tr3469; + case 12603: goto tr3469; + case 12810: goto tr3476; + case 12859: goto tr3477; + case 13322: goto tr3478; + case 13371: goto tr3479; + case 13578: goto tr3469; + case 13627: goto tr3469; + case 13834: goto tr3480; + case 13883: goto tr3481; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3448; + goto tr3483; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3448; + goto tr3483; } else - goto tr3448; - goto tr3447; -tr3437: + goto tr3483; + goto tr3482; +tr3472: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1549; -tr3492: + goto st1567; +tr3527: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87402,20 +88363,20 @@ tr3492: { p--; {cs = stack[--top];goto _again;} } - goto st1549; -tr3537: + goto st1567; +tr3572: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87426,8 +88387,8 @@ tr3537: { p--; {cs = stack[--top];goto _again;} } - goto st1549; -tr3581: + goto st1567; +tr3616: { rdata_tail += s->dname_tmp_length; } @@ -87437,11 +88398,11 @@ tr3581: { p--; {cs = stack[--top];goto _again;} } - goto st1549; -st1549: + goto st1567; +st1567: if ( ++p == pe ) - goto _test_eof1549; -case 1549: + goto _test_eof1567; +case 1567: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -87513,44 +88474,44 @@ case 1549: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4105: goto st1264; - case 4128: goto st1264; - case 4136: goto tr3426; - case 4137: goto tr3427; - case 4139: goto tr3448; - case 5130: goto tr3435; - case 5179: goto tr3436; + case 4105: goto st1282; + case 4128: goto st1282; + case 4136: goto tr3461; + case 4137: goto tr3462; + case 4139: goto tr3483; + case 5130: goto tr3470; + case 5179: goto tr3471; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3448; + goto tr3483; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3448; + goto tr3483; } else - goto tr3448; - goto tr3447; -tr3438: + goto tr3483; + goto tr3482; +tr3473: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1550; -tr3493: + goto st1568; +tr3528: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87561,20 +88522,20 @@ tr3493: { p--; {cs = stack[--top];goto _again;} } - goto st1550; -tr3538: + goto st1568; +tr3573: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87585,8 +88546,8 @@ tr3538: { p--; {cs = stack[--top];goto _again;} } - goto st1550; -tr3582: + goto st1568; +tr3617: { rdata_tail += s->dname_tmp_length; } @@ -87596,11 +88557,11 @@ tr3582: { p--; {cs = stack[--top];goto _again;} } - goto st1550; -st1550: + goto st1568; +st1568: if ( ++p == pe ) - goto _test_eof1550; -case 1550: + goto _test_eof1568; +case 1568: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -87626,43 +88587,43 @@ case 1550: s->number64 != 0 ) _widec += 512; } if ( _widec == 5130 ) - goto tr3450; + goto tr3485; if ( 4992 <= _widec && _widec <= 5247 ) - goto tr3449; - goto tr3447; -tr3444: + goto tr3484; + goto tr3482; +tr3479: { s->buffer_length = 0; } - goto st1270; -tr3453: + goto st1288; +tr3488: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1270; -tr3588: + goto st1288; +tr3623: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1270; -tr3499: + goto st1288; +tr3534: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87670,20 +88631,20 @@ tr3499: { s->buffer_length = 0; } - goto st1270; -tr3544: + goto st1288; +tr3579: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87691,11 +88652,11 @@ tr3544: { s->buffer_length = 0; } - goto st1270; -st1270: + goto st1288; +st1288: if ( ++p == pe ) - goto _test_eof1270; -case 1270: + goto _test_eof1288; +case 1288: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -87727,40 +88688,40 @@ case 1270: s->number64 == 0 ) _widec += 1024; } switch( _widec ) { - case 8714: goto tr3450; - case 9226: goto tr3452; - case 9738: goto tr3454; + case 8714: goto tr3485; + case 9226: goto tr3487; + case 9738: goto tr3489; } if ( _widec < 9088 ) { if ( 8576 <= _widec && _widec <= 8831 ) - goto tr3449; + goto tr3484; } else if ( _widec > 9343 ) { if ( 9600 <= _widec && _widec <= 9855 ) - goto tr3453; + goto tr3488; } else - goto tr3451; - goto tr3447; -tr3445: + goto tr3486; + goto tr3482; +tr3480: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1551; -tr3500: + goto st1569; +tr3535: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87771,20 +88732,20 @@ tr3500: { p--; {cs = stack[--top];goto _again;} } - goto st1551; -tr3545: + goto st1569; +tr3580: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87795,8 +88756,8 @@ tr3545: { p--; {cs = stack[--top];goto _again;} } - goto st1551; -tr3589: + goto st1569; +tr3624: { rdata_tail += s->dname_tmp_length; } @@ -87806,11 +88767,11 @@ tr3589: { p--; {cs = stack[--top];goto _again;} } - goto st1551; -st1551: + goto st1569; +st1569: if ( ++p == pe ) - goto _test_eof1551; -case 1551: + goto _test_eof1569; +case 1569: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -87898,72 +88859,72 @@ case 1551: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4139: goto tr3448; - case 7177: goto st1264; - case 7200: goto st1264; - case 7208: goto tr3426; - case 7209: goto tr3427; - case 7433: goto st1267; - case 7456: goto st1267; - case 7464: goto tr3429; - case 7465: goto tr3430; - case 7689: goto st1269; - case 7712: goto st1269; - case 7720: goto tr3432; - case 7721: goto tr3433; - case 10506: goto tr3434; - case 10555: goto tr3434; - case 10762: goto tr3434; - case 10811: goto tr3434; - case 11274: goto tr3435; - case 11323: goto tr3436; - case 11530: goto tr3434; - case 11579: goto tr3434; - case 11786: goto tr3437; - case 11835: goto tr3438; - case 12298: goto tr3439; - case 12347: goto tr3440; - case 12554: goto tr3434; - case 12603: goto tr3434; - case 12810: goto tr3441; - case 12859: goto tr3442; - case 13322: goto tr3443; - case 13371: goto tr3444; - case 13578: goto tr3434; - case 13627: goto tr3434; - case 13834: goto tr3445; - case 13883: goto tr3446; + case 4139: goto tr3483; + case 7177: goto st1282; + case 7200: goto st1282; + case 7208: goto tr3461; + case 7209: goto tr3462; + case 7433: goto st1285; + case 7456: goto st1285; + case 7464: goto tr3464; + case 7465: goto tr3465; + case 7689: goto st1287; + case 7712: goto st1287; + case 7720: goto tr3467; + case 7721: goto tr3468; + case 10506: goto tr3469; + case 10555: goto tr3469; + case 10762: goto tr3469; + case 10811: goto tr3469; + case 11274: goto tr3470; + case 11323: goto tr3471; + case 11530: goto tr3469; + case 11579: goto tr3469; + case 11786: goto tr3472; + case 11835: goto tr3473; + case 12298: goto tr3474; + case 12347: goto tr3475; + case 12554: goto tr3469; + case 12603: goto tr3469; + case 12810: goto tr3476; + case 12859: goto tr3477; + case 13322: goto tr3478; + case 13371: goto tr3479; + case 13578: goto tr3469; + case 13627: goto tr3469; + case 13834: goto tr3480; + case 13883: goto tr3481; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3448; + goto tr3483; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3448; + goto tr3483; } else - goto tr3448; - goto tr3447; -tr3446: + goto tr3483; + goto tr3482; +tr3481: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1552; -tr3501: + goto st1570; +tr3536: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87974,20 +88935,20 @@ tr3501: { p--; {cs = stack[--top];goto _again;} } - goto st1552; -tr3546: + goto st1570; +tr3581: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87998,8 +88959,8 @@ tr3546: { p--; {cs = stack[--top];goto _again;} } - goto st1552; -tr3590: + goto st1570; +tr3625: { rdata_tail += s->dname_tmp_length; } @@ -88009,11 +88970,11 @@ tr3590: { p--; {cs = stack[--top];goto _again;} } - goto st1552; -st1552: + goto st1570; +st1570: if ( ++p == pe ) - goto _test_eof1552; -case 1552: + goto _test_eof1570; +case 1570: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -88045,49 +89006,49 @@ case 1552: s->number64 == 0 ) _widec += 1024; } switch( _widec ) { - case 8714: goto tr3450; - case 9226: goto tr3452; - case 9738: goto tr3454; + case 8714: goto tr3485; + case 9226: goto tr3487; + case 9738: goto tr3489; } if ( _widec < 9088 ) { if ( 8576 <= _widec && _widec <= 8831 ) - goto tr3449; + goto tr3484; } else if ( _widec > 9343 ) { if ( 9600 <= _widec && _widec <= 9855 ) - goto tr3453; + goto tr3488; } else - goto tr3451; - goto tr3447; -tr3423: + goto tr3486; + goto tr3482; +tr3458: { s->buffer_length = 0; } - goto st1271; -tr3455: + goto st1289; +tr3490: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1271; -tr3417: + goto st1289; +tr3452: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1271; -st1271: + goto st1289; +st1289: if ( ++p == pe ) - goto _test_eof1271; -case 1271: + goto _test_eof1289; +case 1289: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -88107,26 +89068,26 @@ case 1271: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3456; + goto tr3491; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3455; - goto tr3395; -tr3409: + goto tr3490; + goto tr3430; +tr3444: { s->buffer_length = 0; } - goto st1272; -tr3457: + goto st1290; +tr3492: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1272; -st1272: + goto st1290; +st1290: if ( ++p == pe ) - goto _test_eof1272; -case 1272: + goto _test_eof1290; +case 1290: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -88146,19 +89107,19 @@ case 1272: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3458; + goto tr3493; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3457; - goto tr3395; -tr3400: + goto tr3492; + goto tr3430; +tr3435: { *(rdata_tail++) = 1; } - goto st1273; -st1273: + goto st1291; +st1291: if ( ++p == pe ) - goto _test_eof1273; -case 1273: + goto _test_eof1291; +case 1291: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88172,38 +89133,38 @@ case 1273: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1274; - case 32: goto st1274; - case 40: goto tr3460; - case 41: goto tr3461; - case 2058: goto tr3462; - case 2107: goto tr3463; - } - goto tr3395; -tr3460: + case 9: goto st1292; + case 32: goto st1292; + case 40: goto tr3495; + case 41: goto tr3496; + case 2058: goto tr3497; + case 2107: goto tr3498; + } + goto tr3430; +tr3495: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1274; -tr3461: + goto st1292; +tr3496: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1274; -tr3462: + goto st1292; +tr3497: { s->line_counter++; } - goto st1274; -tr3505: + goto st1292; +tr3540: { s->buffer[s->buffer_length++] = 0; @@ -88213,18 +89174,18 @@ tr3505: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1274; goto _out;} + {p++; cs = 1292; goto _out;} } } } { s->line_counter++; } - goto st1274; -st1274: + goto st1292; +st1292: if ( ++p == pe ) - goto _test_eof1274; -case 1274: + goto _test_eof1292; +case 1292: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88238,17 +89199,17 @@ case 1274: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1274; - case 32: goto st1274; - case 40: goto tr3460; - case 41: goto tr3461; - case 2058: goto tr3462; - case 2107: goto tr3463; + case 9: goto st1292; + case 32: goto st1292; + case 40: goto tr3495; + case 41: goto tr3496; + case 2058: goto tr3497; + case 2107: goto tr3498; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3464; - goto tr3410; -tr3464: + goto tr3499; + goto tr3445; +tr3499: { s->number64 = 0; } @@ -88263,11 +89224,11 @@ tr3464: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1275; -tr3468: + goto st1293; +tr3503: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -88279,14 +89240,14 @@ tr3468: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1275; -st1275: + goto st1293; +st1293: if ( ++p == pe ) - goto _test_eof1275; -case 1275: + goto _test_eof1293; +case 1293: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88300,40 +89261,40 @@ case 1275: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3465; - case 32: goto tr3465; - case 40: goto tr3466; - case 41: goto tr3467; - case 2058: goto tr3469; - case 2107: goto tr3470; + case 9: goto tr3500; + case 32: goto tr3500; + case 40: goto tr3501; + case 41: goto tr3502; + case 2058: goto tr3504; + case 2107: goto tr3505; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3468; - goto tr3410; -tr3473: + goto tr3503; + goto tr3445; +tr3508: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1276; -tr3474: + goto st1294; +tr3509: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1276; -tr3476: + goto st1294; +tr3511: { s->line_counter++; } - goto st1276; -tr3503: + goto st1294; +tr3538: { s->buffer[s->buffer_length++] = 0; @@ -88343,79 +89304,79 @@ tr3503: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1276; goto _out;} + {p++; cs = 1294; goto _out;} } } } { s->line_counter++; } - goto st1276; -tr3465: + goto st1294; +tr3500: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1276; -tr3466: + goto st1294; +tr3501: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1276; -tr3467: + goto st1294; +tr3502: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1276; -tr3469: + goto st1294; +tr3504: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1276; -st1276: + goto st1294; +st1294: if ( ++p == pe ) - goto _test_eof1276; -case 1276: + goto _test_eof1294; +case 1294: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88429,28 +89390,28 @@ case 1276: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1276; - case 32: goto st1276; - case 40: goto tr3473; - case 41: goto tr3474; - case 46: goto tr3475; - case 2058: goto tr3476; - case 2107: goto tr3477; + case 9: goto st1294; + case 32: goto st1294; + case 40: goto tr3508; + case 41: goto tr3509; + case 46: goto tr3510; + case 2058: goto tr3511; + case 2107: goto tr3512; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3475; - goto tr3471; -tr3479: + goto tr3510; + goto tr3506; +tr3514: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1277; -tr3475: + goto st1295; +tr3510: { s->buffer_length = 0; } @@ -88459,14 +89420,14 @@ tr3475: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1277; -st1277: + goto st1295; +st1295: if ( ++p == pe ) - goto _test_eof1277; -case 1277: + goto _test_eof1295; +case 1295: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -88524,75 +89485,75 @@ case 1277: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 46: goto tr3479; - case 7177: goto tr3480; - case 7200: goto tr3480; - case 7208: goto tr3481; - case 7209: goto tr3482; - case 7433: goto tr3483; - case 7456: goto tr3483; - case 7464: goto tr3484; - case 7465: goto tr3485; - case 7689: goto tr3486; - case 7712: goto tr3486; - case 7720: goto tr3487; - case 7721: goto tr3488; - case 10506: goto tr3489; - case 10555: goto tr3489; - case 10762: goto tr3489; - case 10811: goto tr3489; - case 11274: goto tr3490; - case 11323: goto tr3491; - case 11530: goto tr3489; - case 11579: goto tr3489; - case 11786: goto tr3492; - case 11835: goto tr3493; - case 12298: goto tr3494; - case 12347: goto tr3495; - case 12554: goto tr3489; - case 12603: goto tr3489; - case 12810: goto tr3496; - case 12859: goto tr3497; - case 13322: goto tr3498; - case 13371: goto tr3499; - case 13578: goto tr3489; - case 13627: goto tr3489; - case 13834: goto tr3500; - case 13883: goto tr3501; + case 46: goto tr3514; + case 7177: goto tr3515; + case 7200: goto tr3515; + case 7208: goto tr3516; + case 7209: goto tr3517; + case 7433: goto tr3518; + case 7456: goto tr3518; + case 7464: goto tr3519; + case 7465: goto tr3520; + case 7689: goto tr3521; + case 7712: goto tr3521; + case 7720: goto tr3522; + case 7721: goto tr3523; + case 10506: goto tr3524; + case 10555: goto tr3524; + case 10762: goto tr3524; + case 10811: goto tr3524; + case 11274: goto tr3525; + case 11323: goto tr3526; + case 11530: goto tr3524; + case 11579: goto tr3524; + case 11786: goto tr3527; + case 11835: goto tr3528; + case 12298: goto tr3529; + case 12347: goto tr3530; + case 12554: goto tr3524; + case 12603: goto tr3524; + case 12810: goto tr3531; + case 12859: goto tr3532; + case 13322: goto tr3533; + case 13371: goto tr3534; + case 13578: goto tr3524; + case 13627: goto tr3524; + case 13834: goto tr3535; + case 13883: goto tr3536; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3479; - goto tr3478; -tr3477: + goto tr3514; + goto tr3513; +tr3512: { s->buffer_length = 0; } - goto st1278; -tr3502: + goto st1296; +tr3537: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1278; -tr3470: + goto st1296; +tr3505: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1278; -st1278: + goto st1296; +st1296: if ( ++p == pe ) - goto _test_eof1278; -case 1278: + goto _test_eof1296; +case 1296: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -88612,26 +89573,26 @@ case 1278: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3503; + goto tr3538; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3502; - goto tr3395; -tr3463: + goto tr3537; + goto tr3430; +tr3498: { s->buffer_length = 0; } - goto st1279; -tr3504: + goto st1297; +tr3539: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1279; -st1279: + goto st1297; +st1297: if ( ++p == pe ) - goto _test_eof1279; -case 1279: + goto _test_eof1297; +case 1297: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -88651,19 +89612,19 @@ case 1279: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3505; + goto tr3540; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3504; - goto tr3395; -tr3401: + goto tr3539; + goto tr3430; +tr3436: { *(rdata_tail++) = 2; } - goto st1280; -st1280: + goto st1298; +st1298: if ( ++p == pe ) - goto _test_eof1280; -case 1280: + goto _test_eof1298; +case 1298: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88677,38 +89638,38 @@ case 1280: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1281; - case 32: goto st1281; - case 40: goto tr3507; - case 41: goto tr3508; - case 2058: goto tr3509; - case 2107: goto tr3510; + case 9: goto st1299; + case 32: goto st1299; + case 40: goto tr3542; + case 41: goto tr3543; + case 2058: goto tr3544; + case 2107: goto tr3545; } - goto tr3395; -tr3507: + goto tr3430; +tr3542: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1281; -tr3508: + goto st1299; +tr3543: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1281; -tr3509: + goto st1299; +tr3544: { s->line_counter++; } - goto st1281; -tr3550: + goto st1299; +tr3585: { s->buffer[s->buffer_length++] = 0; @@ -88718,18 +89679,18 @@ tr3550: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1281; goto _out;} + {p++; cs = 1299; goto _out;} } } } { s->line_counter++; } - goto st1281; -st1281: + goto st1299; +st1299: if ( ++p == pe ) - goto _test_eof1281; -case 1281: + goto _test_eof1299; +case 1299: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88743,17 +89704,17 @@ case 1281: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1281; - case 32: goto st1281; - case 40: goto tr3507; - case 41: goto tr3508; - case 2058: goto tr3509; - case 2107: goto tr3510; + case 9: goto st1299; + case 32: goto st1299; + case 40: goto tr3542; + case 41: goto tr3543; + case 2058: goto tr3544; + case 2107: goto tr3545; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3511; - goto tr3410; -tr3511: + goto tr3546; + goto tr3445; +tr3546: { s->number64 = 0; } @@ -88768,11 +89729,11 @@ tr3511: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1282; -tr3515: + goto st1300; +tr3550: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -88784,14 +89745,14 @@ tr3515: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1282; -st1282: + goto st1300; +st1300: if ( ++p == pe ) - goto _test_eof1282; -case 1282: + goto _test_eof1300; +case 1300: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88805,40 +89766,40 @@ case 1282: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3512; - case 32: goto tr3512; - case 40: goto tr3513; - case 41: goto tr3514; - case 2058: goto tr3516; - case 2107: goto tr3517; + case 9: goto tr3547; + case 32: goto tr3547; + case 40: goto tr3548; + case 41: goto tr3549; + case 2058: goto tr3551; + case 2107: goto tr3552; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3515; - goto tr3410; -tr3519: + goto tr3550; + goto tr3445; +tr3554: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1283; -tr3520: + goto st1301; +tr3555: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1283; -tr3522: + goto st1301; +tr3557: { s->line_counter++; } - goto st1283; -tr3548: + goto st1301; +tr3583: { s->buffer[s->buffer_length++] = 0; @@ -88848,79 +89809,79 @@ tr3548: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1283; goto _out;} + {p++; cs = 1301; goto _out;} } } } { s->line_counter++; } - goto st1283; -tr3512: + goto st1301; +tr3547: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1283; -tr3513: + goto st1301; +tr3548: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1283; -tr3514: + goto st1301; +tr3549: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1283; -tr3516: + goto st1301; +tr3551: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1283; -st1283: + goto st1301; +st1301: if ( ++p == pe ) - goto _test_eof1283; -case 1283: + goto _test_eof1301; +case 1301: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88934,34 +89895,34 @@ case 1283: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1283; - case 32: goto st1283; - case 40: goto tr3519; - case 41: goto tr3520; - case 46: goto tr3521; - case 2058: goto tr3522; - case 2107: goto tr3523; + case 9: goto st1301; + case 32: goto st1301; + case 40: goto tr3554; + case 41: goto tr3555; + case 46: goto tr3556; + case 2058: goto tr3557; + case 2107: goto tr3558; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 58 ) - goto tr3521; + goto tr3556; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3521; + goto tr3556; } else - goto tr3521; - goto tr3471; -tr3524: + goto tr3556; + goto tr3506; +tr3559: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1284; -tr3521: + goto st1302; +tr3556: { s->buffer_length = 0; } @@ -88970,14 +89931,14 @@ tr3521: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1284; -st1284: + goto st1302; +st1302: if ( ++p == pe ) - goto _test_eof1284; -case 1284: + goto _test_eof1302; +case 1302: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -89035,81 +89996,81 @@ case 1284: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 46: goto tr3524; - case 7177: goto tr3525; - case 7200: goto tr3525; - case 7208: goto tr3526; - case 7209: goto tr3527; - case 7433: goto tr3528; - case 7456: goto tr3528; - case 7464: goto tr3529; - case 7465: goto tr3530; - case 7689: goto tr3531; - case 7712: goto tr3531; - case 7720: goto tr3532; - case 7721: goto tr3533; - case 10506: goto tr3534; - case 10555: goto tr3534; - case 10762: goto tr3534; - case 10811: goto tr3534; - case 11274: goto tr3535; - case 11323: goto tr3536; - case 11530: goto tr3534; - case 11579: goto tr3534; - case 11786: goto tr3537; - case 11835: goto tr3538; - case 12298: goto tr3539; - case 12347: goto tr3540; - case 12554: goto tr3534; - case 12603: goto tr3534; - case 12810: goto tr3541; - case 12859: goto tr3542; - case 13322: goto tr3543; - case 13371: goto tr3544; - case 13578: goto tr3534; - case 13627: goto tr3534; - case 13834: goto tr3545; - case 13883: goto tr3546; + case 46: goto tr3559; + case 7177: goto tr3560; + case 7200: goto tr3560; + case 7208: goto tr3561; + case 7209: goto tr3562; + case 7433: goto tr3563; + case 7456: goto tr3563; + case 7464: goto tr3564; + case 7465: goto tr3565; + case 7689: goto tr3566; + case 7712: goto tr3566; + case 7720: goto tr3567; + case 7721: goto tr3568; + case 10506: goto tr3569; + case 10555: goto tr3569; + case 10762: goto tr3569; + case 10811: goto tr3569; + case 11274: goto tr3570; + case 11323: goto tr3571; + case 11530: goto tr3569; + case 11579: goto tr3569; + case 11786: goto tr3572; + case 11835: goto tr3573; + case 12298: goto tr3574; + case 12347: goto tr3575; + case 12554: goto tr3569; + case 12603: goto tr3569; + case 12810: goto tr3576; + case 12859: goto tr3577; + case 13322: goto tr3578; + case 13371: goto tr3579; + case 13578: goto tr3569; + case 13627: goto tr3569; + case 13834: goto tr3580; + case 13883: goto tr3581; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 58 ) - goto tr3524; + goto tr3559; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3524; + goto tr3559; } else - goto tr3524; - goto tr3478; -tr3523: + goto tr3559; + goto tr3513; +tr3558: { s->buffer_length = 0; } - goto st1285; -tr3547: + goto st1303; +tr3582: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1285; -tr3517: + goto st1303; +tr3552: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1285; -st1285: + goto st1303; +st1303: if ( ++p == pe ) - goto _test_eof1285; -case 1285: + goto _test_eof1303; +case 1303: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89129,26 +90090,26 @@ case 1285: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3548; + goto tr3583; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3547; - goto tr3395; -tr3510: + goto tr3582; + goto tr3430; +tr3545: { s->buffer_length = 0; } - goto st1286; -tr3549: + goto st1304; +tr3584: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1286; -st1286: + goto st1304; +st1304: if ( ++p == pe ) - goto _test_eof1286; -case 1286: + goto _test_eof1304; +case 1304: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89168,19 +90129,19 @@ case 1286: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3550; + goto tr3585; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3549; - goto tr3395; -tr3402: + goto tr3584; + goto tr3430; +tr3437: { *(rdata_tail++) = 3; } - goto st1287; -st1287: + goto st1305; +st1305: if ( ++p == pe ) - goto _test_eof1287; -case 1287: + goto _test_eof1305; +case 1305: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89194,38 +90155,38 @@ case 1287: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1288; - case 32: goto st1288; - case 40: goto tr3552; - case 41: goto tr3553; - case 2058: goto tr3554; - case 2107: goto tr3555; - } - goto tr3395; -tr3552: + case 9: goto st1306; + case 32: goto st1306; + case 40: goto tr3587; + case 41: goto tr3588; + case 2058: goto tr3589; + case 2107: goto tr3590; + } + goto tr3430; +tr3587: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1288; -tr3553: + goto st1306; +tr3588: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1288; -tr3554: + goto st1306; +tr3589: { s->line_counter++; } - goto st1288; -tr3594: + goto st1306; +tr3629: { s->buffer[s->buffer_length++] = 0; @@ -89235,18 +90196,18 @@ tr3594: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1288; goto _out;} + {p++; cs = 1306; goto _out;} } } } { s->line_counter++; } - goto st1288; -st1288: + goto st1306; +st1306: if ( ++p == pe ) - goto _test_eof1288; -case 1288: + goto _test_eof1306; +case 1306: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89260,17 +90221,17 @@ case 1288: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1288; - case 32: goto st1288; - case 40: goto tr3552; - case 41: goto tr3553; - case 2058: goto tr3554; - case 2107: goto tr3555; + case 9: goto st1306; + case 32: goto st1306; + case 40: goto tr3587; + case 41: goto tr3588; + case 2058: goto tr3589; + case 2107: goto tr3590; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3556; - goto tr3410; -tr3556: + goto tr3591; + goto tr3445; +tr3591: { s->number64 = 0; } @@ -89285,11 +90246,11 @@ tr3556: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1289; -tr3560: + goto st1307; +tr3595: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -89301,14 +90262,14 @@ tr3560: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1289; -st1289: + goto st1307; +st1307: if ( ++p == pe ) - goto _test_eof1289; -case 1289: + goto _test_eof1307; +case 1307: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89322,40 +90283,40 @@ case 1289: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3557; - case 32: goto tr3557; - case 40: goto tr3558; - case 41: goto tr3559; - case 2058: goto tr3561; - case 2107: goto tr3562; + case 9: goto tr3592; + case 32: goto tr3592; + case 40: goto tr3593; + case 41: goto tr3594; + case 2058: goto tr3596; + case 2107: goto tr3597; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3560; - goto tr3410; -tr3564: + goto tr3595; + goto tr3445; +tr3599: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1290; -tr3565: + goto st1308; +tr3600: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1290; -tr3567: + goto st1308; +tr3602: { s->line_counter++; } - goto st1290; -tr3592: + goto st1308; +tr3627: { s->buffer[s->buffer_length++] = 0; @@ -89365,79 +90326,79 @@ tr3592: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1290; goto _out;} + {p++; cs = 1308; goto _out;} } } } { s->line_counter++; } - goto st1290; -tr3557: + goto st1308; +tr3592: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1290; -tr3558: + goto st1308; +tr3593: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1290; -tr3559: + goto st1308; +tr3594: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1290; -tr3561: + goto st1308; +tr3596: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1290; -st1290: + goto st1308; +st1308: if ( ++p == pe ) - goto _test_eof1290; -case 1290: + goto _test_eof1308; +case 1308: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89451,35 +90412,35 @@ case 1290: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1290; - case 32: goto st1290; - case 40: goto tr3564; - case 41: goto tr3565; - case 42: goto tr3566; - case 92: goto tr3566; - case 95: goto tr3566; - case 2058: goto tr3567; - case 2107: goto tr3568; + case 9: goto st1308; + case 32: goto st1308; + case 40: goto tr3599; + case 41: goto tr3600; + case 42: goto tr3601; + case 92: goto tr3601; + case 95: goto tr3601; + case 2058: goto tr3602; + case 2107: goto tr3603; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3566; + goto tr3601; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3566; + goto tr3601; } else - goto tr3566; - goto tr3395; -tr3566: + goto tr3601; + goto tr3430; +tr3601: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1291;goto st321;} } - goto st1291; -st1291: + { p--; {stack[top++] = 1309;goto st327;} } + goto st1309; +st1309: if ( ++p == pe ) - goto _test_eof1291; -case 1291: + goto _test_eof1309; +case 1309: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -89537,72 +90498,72 @@ case 1291: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 7177: goto tr3569; - case 7200: goto tr3569; - case 7208: goto tr3570; - case 7209: goto tr3571; - case 7433: goto tr3572; - case 7456: goto tr3572; - case 7464: goto tr3573; - case 7465: goto tr3574; - case 7689: goto tr3575; - case 7712: goto tr3575; - case 7720: goto tr3576; - case 7721: goto tr3577; - case 10506: goto tr3578; - case 10555: goto tr3578; - case 10762: goto tr3578; - case 10811: goto tr3578; - case 11274: goto tr3579; - case 11323: goto tr3580; - case 11530: goto tr3578; - case 11579: goto tr3578; - case 11786: goto tr3581; - case 11835: goto tr3582; - case 12298: goto tr3583; - case 12347: goto tr3584; - case 12554: goto tr3578; - case 12603: goto tr3578; - case 12810: goto tr3585; - case 12859: goto tr3586; - case 13322: goto tr3587; - case 13371: goto tr3588; - case 13578: goto tr3578; - case 13627: goto tr3578; - case 13834: goto tr3589; - case 13883: goto tr3590; - } - goto tr3424; -tr3568: + case 7177: goto tr3604; + case 7200: goto tr3604; + case 7208: goto tr3605; + case 7209: goto tr3606; + case 7433: goto tr3607; + case 7456: goto tr3607; + case 7464: goto tr3608; + case 7465: goto tr3609; + case 7689: goto tr3610; + case 7712: goto tr3610; + case 7720: goto tr3611; + case 7721: goto tr3612; + case 10506: goto tr3613; + case 10555: goto tr3613; + case 10762: goto tr3613; + case 10811: goto tr3613; + case 11274: goto tr3614; + case 11323: goto tr3615; + case 11530: goto tr3613; + case 11579: goto tr3613; + case 11786: goto tr3616; + case 11835: goto tr3617; + case 12298: goto tr3618; + case 12347: goto tr3619; + case 12554: goto tr3613; + case 12603: goto tr3613; + case 12810: goto tr3620; + case 12859: goto tr3621; + case 13322: goto tr3622; + case 13371: goto tr3623; + case 13578: goto tr3613; + case 13627: goto tr3613; + case 13834: goto tr3624; + case 13883: goto tr3625; + } + goto tr3459; +tr3603: { s->buffer_length = 0; } - goto st1292; -tr3591: + goto st1310; +tr3626: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1292; -tr3562: + goto st1310; +tr3597: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1292; -st1292: + goto st1310; +st1310: if ( ++p == pe ) - goto _test_eof1292; -case 1292: + goto _test_eof1310; +case 1310: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89622,26 +90583,26 @@ case 1292: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3592; + goto tr3627; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3591; - goto tr3395; -tr3555: + goto tr3626; + goto tr3430; +tr3590: { s->buffer_length = 0; } - goto st1293; -tr3593: + goto st1311; +tr3628: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1293; -st1293: + goto st1311; +st1311: if ( ++p == pe ) - goto _test_eof1293; -case 1293: + goto _test_eof1311; +case 1311: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89661,40 +90622,40 @@ case 1293: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3594; + goto tr3629; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3593; - goto tr3395; -tr3404: + goto tr3628; + goto tr3430; +tr3439: { s->buffer_length = 0; } - goto st1294; -tr3595: + goto st1312; +tr3630: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1294; -tr3394: + goto st1312; +tr3429: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1294; -st1294: + goto st1312; +st1312: if ( ++p == pe ) - goto _test_eof1294; -case 1294: + goto _test_eof1312; +case 1312: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89714,30 +90675,30 @@ case 1294: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3596; + goto tr3631; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3595; + goto tr3630; goto tr77; -st1295: +st1313: if ( ++p == pe ) - goto _test_eof1295; -case 1295: + goto _test_eof1313; +case 1313: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3597; + goto tr3632; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3597; + goto tr3632; } else - goto tr3597; + goto tr3632; goto tr77; -tr3597: - { p--; {stack[top++] = 1296;goto st388;} } - goto st1296; -st1296: +tr3632: + { p--; {stack[top++] = 1314;goto st394;} } + goto st1314; +st1314: if ( ++p == pe ) - goto _test_eof1296; -case 1296: + goto _test_eof1314; +case 1314: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89751,38 +90712,38 @@ case 1296: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1297; - case 32: goto st1297; - case 40: goto tr3599; - case 41: goto tr3600; - case 2058: goto tr3601; - case 2107: goto tr3602; + case 9: goto st1315; + case 32: goto st1315; + case 40: goto tr3634; + case 41: goto tr3635; + case 2058: goto tr3636; + case 2107: goto tr3637; } goto tr77; -tr3599: +tr3634: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1297; -tr3600: + goto st1315; +tr3635: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1297; -tr3601: + goto st1315; +tr3636: { s->line_counter++; } - goto st1297; -tr3698: + goto st1315; +tr3733: { s->buffer[s->buffer_length++] = 0; @@ -89792,18 +90753,18 @@ tr3698: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1297; goto _out;} + {p++; cs = 1315; goto _out;} } } } { s->line_counter++; } - goto st1297; -st1297: + goto st1315; +st1315: if ( ++p == pe ) - goto _test_eof1297; -case 1297: + goto _test_eof1315; +case 1315: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89817,29 +90778,29 @@ case 1297: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1297; - case 32: goto st1297; - case 40: goto tr3599; - case 41: goto tr3600; - case 2058: goto tr3601; - case 2107: goto tr3602; + case 9: goto st1315; + case 32: goto st1315; + case 40: goto tr3634; + case 41: goto tr3635; + case 2058: goto tr3636; + case 2107: goto tr3637; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3603; + goto tr3638; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3603; + goto tr3638; } else - goto tr3603; + goto tr3638; goto tr77; -tr3603: - { p--; {stack[top++] = 1298;goto st918;} } - goto st1298; -st1298: +tr3638: + { p--; {stack[top++] = 1316;goto st936;} } + goto st1316; +st1316: if ( ++p == pe ) - goto _test_eof1298; -case 1298: + goto _test_eof1316; +case 1316: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89853,38 +90814,38 @@ case 1298: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1299; - case 32: goto st1299; - case 40: goto tr3605; - case 41: goto tr3606; - case 2058: goto tr3607; - case 2107: goto tr3608; + case 9: goto st1317; + case 32: goto st1317; + case 40: goto tr3640; + case 41: goto tr3641; + case 2058: goto tr3642; + case 2107: goto tr3643; } goto tr77; -tr3605: +tr3640: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1299; -tr3606: + goto st1317; +tr3641: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1299; -tr3607: + goto st1317; +tr3642: { s->line_counter++; } - goto st1299; -tr3696: + goto st1317; +tr3731: { s->buffer[s->buffer_length++] = 0; @@ -89894,18 +90855,18 @@ tr3696: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1299; goto _out;} + {p++; cs = 1317; goto _out;} } } } { s->line_counter++; } - goto st1299; -st1299: + goto st1317; +st1317: if ( ++p == pe ) - goto _test_eof1299; -case 1299: + goto _test_eof1317; +case 1317: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89919,17 +90880,17 @@ case 1299: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1299; - case 32: goto st1299; - case 40: goto tr3605; - case 41: goto tr3606; - case 2058: goto tr3607; - case 2107: goto tr3608; + case 9: goto st1317; + case 32: goto st1317; + case 40: goto tr3640; + case 41: goto tr3641; + case 2058: goto tr3642; + case 2107: goto tr3643; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3609; - goto tr2653; -tr3609: + goto tr3644; + goto tr2688; +tr3644: { s->number64 = 0; } @@ -89944,11 +90905,11 @@ tr3609: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1300; -tr3613: + goto st1318; +tr3648: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -89960,14 +90921,14 @@ tr3613: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1300; -st1300: + goto st1318; +st1318: if ( ++p == pe ) - goto _test_eof1300; -case 1300: + goto _test_eof1318; +case 1318: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89981,40 +90942,40 @@ case 1300: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3610; - case 32: goto tr3610; - case 40: goto tr3611; - case 41: goto tr3612; - case 2058: goto tr3614; - case 2107: goto tr3615; + case 9: goto tr3645; + case 32: goto tr3645; + case 40: goto tr3646; + case 41: goto tr3647; + case 2058: goto tr3649; + case 2107: goto tr3650; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3613; - goto tr2653; -tr3617: + goto tr3648; + goto tr2688; +tr3652: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1301; -tr3618: + goto st1319; +tr3653: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1301; -tr3620: + goto st1319; +tr3655: { s->line_counter++; } - goto st1301; -tr3694: + goto st1319; +tr3729: { s->buffer[s->buffer_length++] = 0; @@ -90024,79 +90985,79 @@ tr3694: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1301; goto _out;} + {p++; cs = 1319; goto _out;} } } } { s->line_counter++; } - goto st1301; -tr3610: + goto st1319; +tr3645: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1301; -tr3611: + goto st1319; +tr3646: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1301; -tr3612: + goto st1319; +tr3647: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1301; -tr3614: + goto st1319; +tr3649: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1301; -st1301: + goto st1319; +st1319: if ( ++p == pe ) - goto _test_eof1301; -case 1301: + goto _test_eof1319; +case 1319: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90110,17 +91071,17 @@ case 1301: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1301; - case 32: goto st1301; - case 40: goto tr3617; - case 41: goto tr3618; - case 2058: goto tr3620; - case 2107: goto tr3621; + case 9: goto st1319; + case 32: goto st1319; + case 40: goto tr3652; + case 41: goto tr3653; + case 2058: goto tr3655; + case 2107: goto tr3656; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3619; - goto tr2653; -tr3619: + goto tr3654; + goto tr2688; +tr3654: { s->number64 = 0; } @@ -90135,11 +91096,11 @@ tr3619: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1302; -tr3625: + goto st1320; +tr3660: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -90151,14 +91112,14 @@ tr3625: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1302; -st1302: + goto st1320; +st1320: if ( ++p == pe ) - goto _test_eof1302; -case 1302: + goto _test_eof1320; +case 1320: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90172,40 +91133,40 @@ case 1302: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3622; - case 32: goto tr3622; - case 40: goto tr3623; - case 41: goto tr3624; - case 2058: goto tr3626; - case 2107: goto tr3627; + case 9: goto tr3657; + case 32: goto tr3657; + case 40: goto tr3658; + case 41: goto tr3659; + case 2058: goto tr3661; + case 2107: goto tr3662; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3625; - goto tr2653; -tr3630: + goto tr3660; + goto tr2688; +tr3665: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1303; -tr3631: + goto st1321; +tr3666: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1303; -tr3633: + goto st1321; +tr3668: { s->line_counter++; } - goto st1303; -tr3692: + goto st1321; +tr3727: { s->buffer[s->buffer_length++] = 0; @@ -90215,15 +91176,15 @@ tr3692: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1303; goto _out;} + {p++; cs = 1321; goto _out;} } } } { s->line_counter++; } - goto st1303; -tr3622: + goto st1321; +tr3657: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -90231,11 +91192,11 @@ tr3622: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1303; -tr3623: + goto st1321; +tr3658: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -90243,18 +91204,18 @@ tr3623: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1303; -tr3624: + goto st1321; +tr3659: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -90262,18 +91223,18 @@ tr3624: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1303; -tr3626: + goto st1321; +tr3661: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -90281,17 +91242,17 @@ tr3626: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1303; -st1303: + goto st1321; +st1321: if ( ++p == pe ) - goto _test_eof1303; -case 1303: + goto _test_eof1321; +case 1321: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90305,17 +91266,17 @@ case 1303: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1303; - case 32: goto st1303; - case 40: goto tr3630; - case 41: goto tr3631; - case 2058: goto tr3633; - case 2107: goto tr3634; + case 9: goto st1321; + case 32: goto st1321; + case 40: goto tr3665; + case 41: goto tr3666; + case 2058: goto tr3668; + case 2107: goto tr3669; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3632; - goto tr3628; -tr3632: + goto tr3667; + goto tr3663; +tr3667: { s->buffer_length = 0; } @@ -90324,24 +91285,24 @@ tr3632: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1304; -tr3638: + goto st1322; +tr3673: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1304; -st1304: + goto st1322; +st1322: if ( ++p == pe ) - goto _test_eof1304; -case 1304: + goto _test_eof1322; +case 1322: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90355,40 +91316,40 @@ case 1304: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3635; - case 32: goto tr3635; - case 40: goto tr3636; - case 41: goto tr3637; - case 2058: goto tr3639; - case 2107: goto tr3640; + case 9: goto tr3670; + case 32: goto tr3670; + case 40: goto tr3671; + case 41: goto tr3672; + case 2058: goto tr3674; + case 2107: goto tr3675; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3638; - goto tr3628; -tr3642: + goto tr3673; + goto tr3663; +tr3677: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1305; -tr3643: + goto st1323; +tr3678: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1305; -tr3645: + goto st1323; +tr3680: { s->line_counter++; } - goto st1305; -tr3690: + goto st1323; +tr3725: { s->buffer[s->buffer_length++] = 0; @@ -90398,15 +91359,15 @@ tr3690: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1305; goto _out;} + {p++; cs = 1323; goto _out;} } } } { s->line_counter++; } - goto st1305; -tr3635: + goto st1323; +tr3670: { s->buffer[s->buffer_length] = 0; @@ -90419,7 +91380,7 @@ tr3635: rdata_tail += 4; } else { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -90428,7 +91389,7 @@ tr3635: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} + p--; {goto st325;} } if (s->number64 <= UINT32_MAX) { @@ -90436,15 +91397,15 @@ tr3635: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1305; -tr3636: + goto st1323; +tr3671: { s->buffer[s->buffer_length] = 0; @@ -90457,7 +91418,7 @@ tr3636: rdata_tail += 4; } else { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -90466,7 +91427,7 @@ tr3636: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} + p--; {goto st325;} } if (s->number64 <= UINT32_MAX) { @@ -90474,22 +91435,22 @@ tr3636: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1305; -tr3637: + goto st1323; +tr3672: { s->buffer[s->buffer_length] = 0; @@ -90502,7 +91463,7 @@ tr3637: rdata_tail += 4; } else { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -90511,7 +91472,7 @@ tr3637: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} + p--; {goto st325;} } if (s->number64 <= UINT32_MAX) { @@ -90519,22 +91480,22 @@ tr3637: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1305; -tr3639: + goto st1323; +tr3674: { s->buffer[s->buffer_length] = 0; @@ -90547,7 +91508,7 @@ tr3639: rdata_tail += 4; } else { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -90556,7 +91517,7 @@ tr3639: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} + p--; {goto st325;} } if (s->number64 <= UINT32_MAX) { @@ -90564,21 +91525,21 @@ tr3639: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1305; -st1305: + goto st1323; +st1323: if ( ++p == pe ) - goto _test_eof1305; -case 1305: + goto _test_eof1323; +case 1323: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90592,17 +91553,17 @@ case 1305: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1305; - case 32: goto st1305; - case 40: goto tr3642; - case 41: goto tr3643; - case 2058: goto tr3645; - case 2107: goto tr3646; + case 9: goto st1323; + case 32: goto st1323; + case 40: goto tr3677; + case 41: goto tr3678; + case 2058: goto tr3680; + case 2107: goto tr3681; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3644; - goto tr3628; -tr3644: + goto tr3679; + goto tr3663; +tr3679: { s->buffer_length = 0; } @@ -90611,24 +91572,24 @@ tr3644: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1306; -tr3650: + goto st1324; +tr3685: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1306; -st1306: + goto st1324; +st1324: if ( ++p == pe ) - goto _test_eof1306; -case 1306: + goto _test_eof1324; +case 1324: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90642,40 +91603,40 @@ case 1306: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3647; - case 32: goto tr3647; - case 40: goto tr3648; - case 41: goto tr3649; - case 2058: goto tr3651; - case 2107: goto tr3652; + case 9: goto tr3682; + case 32: goto tr3682; + case 40: goto tr3683; + case 41: goto tr3684; + case 2058: goto tr3686; + case 2107: goto tr3687; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3650; - goto tr3628; -tr3654: + goto tr3685; + goto tr3663; +tr3689: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1307; -tr3655: + goto st1325; +tr3690: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1307; -tr3657: + goto st1325; +tr3692: { s->line_counter++; } - goto st1307; -tr3688: + goto st1325; +tr3723: { s->buffer[s->buffer_length++] = 0; @@ -90685,15 +91646,15 @@ tr3688: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1307; goto _out;} + {p++; cs = 1325; goto _out;} } } } { s->line_counter++; } - goto st1307; -tr3647: + goto st1325; +tr3682: { s->buffer[s->buffer_length] = 0; @@ -90706,7 +91667,7 @@ tr3647: rdata_tail += 4; } else { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -90715,7 +91676,7 @@ tr3647: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} + p--; {goto st325;} } if (s->number64 <= UINT32_MAX) { @@ -90723,15 +91684,15 @@ tr3647: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1307; -tr3648: + goto st1325; +tr3683: { s->buffer[s->buffer_length] = 0; @@ -90744,7 +91705,7 @@ tr3648: rdata_tail += 4; } else { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -90753,7 +91714,7 @@ tr3648: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} + p--; {goto st325;} } if (s->number64 <= UINT32_MAX) { @@ -90761,22 +91722,22 @@ tr3648: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1307; -tr3649: + goto st1325; +tr3684: { s->buffer[s->buffer_length] = 0; @@ -90789,7 +91750,7 @@ tr3649: rdata_tail += 4; } else { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -90798,7 +91759,7 @@ tr3649: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} + p--; {goto st325;} } if (s->number64 <= UINT32_MAX) { @@ -90806,22 +91767,22 @@ tr3649: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1307; -tr3651: + goto st1325; +tr3686: { s->buffer[s->buffer_length] = 0; @@ -90834,7 +91795,7 @@ tr3651: rdata_tail += 4; } else { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -90843,7 +91804,7 @@ tr3651: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} + p--; {goto st325;} } if (s->number64 <= UINT32_MAX) { @@ -90851,21 +91812,21 @@ tr3651: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1307; -st1307: + goto st1325; +st1325: if ( ++p == pe ) - goto _test_eof1307; -case 1307: + goto _test_eof1325; +case 1325: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90879,17 +91840,17 @@ case 1307: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1307; - case 32: goto st1307; - case 40: goto tr3654; - case 41: goto tr3655; - case 2058: goto tr3657; - case 2107: goto tr3658; + case 9: goto st1325; + case 32: goto st1325; + case 40: goto tr3689; + case 41: goto tr3690; + case 2058: goto tr3692; + case 2107: goto tr3693; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3656; - goto tr2653; -tr3656: + goto tr3691; + goto tr2688; +tr3691: { s->number64 = 0; } @@ -90904,11 +91865,11 @@ tr3656: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1308; -tr3662: + goto st1326; +tr3697: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -90920,14 +91881,14 @@ tr3662: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1308; -st1308: + goto st1326; +st1326: if ( ++p == pe ) - goto _test_eof1308; -case 1308: + goto _test_eof1326; +case 1326: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90941,40 +91902,40 @@ case 1308: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3659; - case 32: goto tr3659; - case 40: goto tr3660; - case 41: goto tr3661; - case 2058: goto tr3663; - case 2107: goto tr3664; + case 9: goto tr3694; + case 32: goto tr3694; + case 40: goto tr3695; + case 41: goto tr3696; + case 2058: goto tr3698; + case 2107: goto tr3699; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3662; - goto tr2653; -tr3666: + goto tr3697; + goto tr2688; +tr3701: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1309; -tr3667: + goto st1327; +tr3702: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1309; -tr3669: + goto st1327; +tr3704: { s->line_counter++; } - goto st1309; -tr3686: + goto st1327; +tr3721: { s->buffer[s->buffer_length++] = 0; @@ -90984,15 +91945,15 @@ tr3686: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1309; goto _out;} + {p++; cs = 1327; goto _out;} } } } { s->line_counter++; } - goto st1309; -tr3659: + goto st1327; +tr3694: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91000,11 +91961,11 @@ tr3659: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1309; -tr3660: + goto st1327; +tr3695: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91012,18 +91973,18 @@ tr3660: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1309; -tr3661: + goto st1327; +tr3696: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91031,18 +91992,18 @@ tr3661: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1309; -tr3663: + goto st1327; +tr3698: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91050,17 +92011,17 @@ tr3663: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1309; -st1309: + goto st1327; +st1327: if ( ++p == pe ) - goto _test_eof1309; -case 1309: + goto _test_eof1327; +case 1327: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91074,35 +92035,35 @@ case 1309: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1309; - case 32: goto st1309; - case 40: goto tr3666; - case 41: goto tr3667; - case 42: goto tr3668; - case 92: goto tr3668; - case 95: goto tr3668; - case 2058: goto tr3669; - case 2107: goto tr3670; + case 9: goto st1327; + case 32: goto st1327; + case 40: goto tr3701; + case 41: goto tr3702; + case 42: goto tr3703; + case 92: goto tr3703; + case 95: goto tr3703; + case 2058: goto tr3704; + case 2107: goto tr3705; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3668; + goto tr3703; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3668; + goto tr3703; } else - goto tr3668; + goto tr3703; goto tr77; -tr3668: +tr3703: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1310;goto st321;} } - goto st1310; -st1310: + { p--; {stack[top++] = 1328;goto st327;} } + goto st1328; +st1328: if ( ++p == pe ) - goto _test_eof1310; -case 1310: + goto _test_eof1328; +case 1328: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91116,38 +92077,38 @@ case 1310: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3671; - case 32: goto tr3671; - case 40: goto tr3672; - case 41: goto tr3673; - case 2058: goto tr3674; - case 2107: goto tr3675; + case 9: goto tr3706; + case 32: goto tr3706; + case 40: goto tr3707; + case 41: goto tr3708; + case 2058: goto tr3709; + case 2107: goto tr3710; } goto tr77; -tr3677: +tr3712: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1311; -tr3678: + goto st1329; +tr3713: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1311; -tr3680: + goto st1329; +tr3715: { s->line_counter++; } - goto st1311; -tr3684: + goto st1329; +tr3719: { s->buffer[s->buffer_length++] = 0; @@ -91157,55 +92118,55 @@ tr3684: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1311; goto _out;} + {p++; cs = 1329; goto _out;} } } } { s->line_counter++; } - goto st1311; -tr3671: + goto st1329; +tr3706: { rdata_tail += s->dname_tmp_length; } - goto st1311; -tr3672: + goto st1329; +tr3707: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1311; -tr3673: + goto st1329; +tr3708: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1311; -tr3674: + goto st1329; +tr3709: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1311; -st1311: + goto st1329; +st1329: if ( ++p == pe ) - goto _test_eof1311; -case 1311: + goto _test_eof1329; +case 1329: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91219,30 +92180,30 @@ case 1311: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1311; - case 32: goto st1311; - case 40: goto tr3677; - case 41: goto tr3678; - case 43: goto tr3679; - case 2058: goto tr3680; - case 2107: goto tr3681; + case 9: goto st1329; + case 32: goto st1329; + case 40: goto tr3712; + case 41: goto tr3713; + case 43: goto tr3714; + case 2058: goto tr3715; + case 2107: goto tr3716; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3679; + goto tr3714; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3679; + goto tr3714; } else - goto tr3679; + goto tr3714; goto tr77; -tr3679: - { p--; {stack[top++] = 1312;goto st381;} } - goto st1312; -st1312: +tr3714: + { p--; {stack[top++] = 1330;goto st387;} } + goto st1330; +st1330: if ( ++p == pe ) - goto _test_eof1312; -case 1312: + goto _test_eof1330; +case 1330: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91256,44 +92217,44 @@ case 1312: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3682; - case 2619: goto tr3682; + case 2570: goto tr3717; + case 2619: goto tr3717; } goto tr77; -tr3682: +tr3717: { p--; {cs = stack[--top];goto _again;} } - goto st1553; -st1553: + goto st1571; +st1571: if ( ++p == pe ) - goto _test_eof1553; -case 1553: + goto _test_eof1571; +case 1571: goto st0; -tr3681: +tr3716: { s->buffer_length = 0; } - goto st1313; -tr3683: + goto st1331; +tr3718: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1313; -tr3675: + goto st1331; +tr3710: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1313; -st1313: + goto st1331; +st1331: if ( ++p == pe ) - goto _test_eof1313; -case 1313: + goto _test_eof1331; +case 1331: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91313,23 +92274,23 @@ case 1313: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3684; + goto tr3719; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3683; + goto tr3718; goto tr77; -tr3670: +tr3705: { s->buffer_length = 0; } - goto st1314; -tr3685: + goto st1332; +tr3720: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1314; -tr3664: + goto st1332; +tr3699: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91337,17 +92298,17 @@ tr3664: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1314; -st1314: + goto st1332; +st1332: if ( ++p == pe ) - goto _test_eof1314; -case 1314: + goto _test_eof1332; +case 1332: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91367,23 +92328,23 @@ case 1314: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3686; + goto tr3721; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3685; + goto tr3720; goto tr77; -tr3658: +tr3693: { s->buffer_length = 0; } - goto st1315; -tr3687: + goto st1333; +tr3722: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1315; -tr3652: + goto st1333; +tr3687: { s->buffer[s->buffer_length] = 0; @@ -91396,7 +92357,7 @@ tr3652: rdata_tail += 4; } else { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -91405,7 +92366,7 @@ tr3652: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} + p--; {goto st325;} } if (s->number64 <= UINT32_MAX) { @@ -91413,21 +92374,21 @@ tr3652: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1315; -st1315: + goto st1333; +st1333: if ( ++p == pe ) - goto _test_eof1315; -case 1315: + goto _test_eof1333; +case 1333: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91447,23 +92408,23 @@ case 1315: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3688; + goto tr3723; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3687; + goto tr3722; goto tr77; -tr3646: +tr3681: { s->buffer_length = 0; } - goto st1316; -tr3689: + goto st1334; +tr3724: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1316; -tr3640: + goto st1334; +tr3675: { s->buffer[s->buffer_length] = 0; @@ -91476,7 +92437,7 @@ tr3640: rdata_tail += 4; } else { WARN(ret); - p--; {goto st319;} + p--; {goto st325;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -91485,7 +92446,7 @@ tr3640: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st319;} + p--; {goto st325;} } if (s->number64 <= UINT32_MAX) { @@ -91493,21 +92454,21 @@ tr3640: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1316; -st1316: + goto st1334; +st1334: if ( ++p == pe ) - goto _test_eof1316; -case 1316: + goto _test_eof1334; +case 1334: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91527,23 +92488,23 @@ case 1316: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3690; + goto tr3725; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3689; + goto tr3724; goto tr77; -tr3634: +tr3669: { s->buffer_length = 0; } - goto st1317; -tr3691: + goto st1335; +tr3726: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1317; -tr3627: + goto st1335; +tr3662: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -91551,17 +92512,17 @@ tr3627: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1317; -st1317: + goto st1335; +st1335: if ( ++p == pe ) - goto _test_eof1317; -case 1317: + goto _test_eof1335; +case 1335: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91581,40 +92542,40 @@ case 1317: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3692; + goto tr3727; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3691; + goto tr3726; goto tr77; -tr3621: +tr3656: { s->buffer_length = 0; } - goto st1318; -tr3693: + goto st1336; +tr3728: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1318; -tr3615: + goto st1336; +tr3650: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1318; -st1318: + goto st1336; +st1336: if ( ++p == pe ) - goto _test_eof1318; -case 1318: + goto _test_eof1336; +case 1336: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91634,26 +92595,26 @@ case 1318: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3694; + goto tr3729; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3693; + goto tr3728; goto tr77; -tr3608: +tr3643: { s->buffer_length = 0; } - goto st1319; -tr3695: + goto st1337; +tr3730: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1319; -st1319: + goto st1337; +st1337: if ( ++p == pe ) - goto _test_eof1319; -case 1319: + goto _test_eof1337; +case 1337: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91673,26 +92634,26 @@ case 1319: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3696; + goto tr3731; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3695; + goto tr3730; goto tr77; -tr3602: +tr3637: { s->buffer_length = 0; } - goto st1320; -tr3697: + goto st1338; +tr3732: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1320; -st1320: + goto st1338; +st1338: if ( ++p == pe ) - goto _test_eof1320; -case 1320: + goto _test_eof1338; +case 1338: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91712,86 +92673,86 @@ case 1320: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3698; + goto tr3733; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3697; + goto tr3732; goto tr77; -st1321: +st1339: if ( ++p == pe ) - goto _test_eof1321; -case 1321: + goto _test_eof1339; +case 1339: switch( (*p) ) { - case 42: goto tr3699; - case 92: goto tr3699; - case 95: goto tr3699; + case 42: goto tr3734; + case 92: goto tr3734; + case 95: goto tr3734; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr3699; + goto tr3734; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3699; + goto tr3734; } else - goto tr3699; + goto tr3734; goto tr77; -tr3699: +tr3734: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1322;goto st321;} } - goto st1322; -st1322: + { p--; {stack[top++] = 1340;goto st327;} } + goto st1340; +st1340: if ( ++p == pe ) - goto _test_eof1322; -case 1322: + goto _test_eof1340; +case 1340: switch( (*p) ) { - case 32: goto tr3700; - case 59: goto tr3700; + case 32: goto tr3735; + case 59: goto tr3735; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3700; + goto tr3735; } else if ( (*p) >= 9 ) - goto tr3700; + goto tr3735; goto tr77; -tr3700: +tr3735: { rdata_tail += s->dname_tmp_length; } - { p--; {stack[top++] = 1323;goto st559;} } - goto st1323; -st1323: + { p--; {stack[top++] = 1341;goto st571;} } + goto st1341; +st1341: if ( ++p == pe ) - goto _test_eof1323; -case 1323: + goto _test_eof1341; +case 1341: switch( (*p) ) { - case 32: goto tr3701; - case 59: goto tr3701; + case 32: goto tr3736; + case 59: goto tr3736; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3701; + goto tr3736; } else if ( (*p) >= 9 ) - goto tr3701; + goto tr3736; goto tr77; -tr3701: +tr3736: { p--; {cs = stack[--top];goto _again;} } - goto st1554; -st1554: + goto st1572; +st1572: if ( ++p == pe ) - goto _test_eof1554; -case 1554: + goto _test_eof1572; +case 1572: goto st0; -st1324: +st1342: if ( ++p == pe ) - goto _test_eof1324; -case 1324: + goto _test_eof1342; +case 1342: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3702; - goto tr2653; -tr3702: + goto tr3737; + goto tr2688; +tr3737: { s->number64 = 0; } @@ -91806,11 +92767,11 @@ tr3702: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1325; -tr3706: + goto st1343; +tr3741: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -91822,14 +92783,14 @@ tr3706: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1325; -st1325: + goto st1343; +st1343: if ( ++p == pe ) - goto _test_eof1325; -case 1325: + goto _test_eof1343; +case 1343: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91843,40 +92804,40 @@ case 1325: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3703; - case 32: goto tr3703; - case 40: goto tr3704; - case 41: goto tr3705; - case 2058: goto tr3707; - case 2107: goto tr3708; + case 9: goto tr3738; + case 32: goto tr3738; + case 40: goto tr3739; + case 41: goto tr3740; + case 2058: goto tr3742; + case 2107: goto tr3743; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3706; - goto tr2653; -tr3710: + goto tr3741; + goto tr2688; +tr3745: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1326; -tr3711: + goto st1344; +tr3746: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1326; -tr3713: + goto st1344; +tr3748: { s->line_counter++; } - goto st1326; -tr3739: + goto st1344; +tr3774: { s->buffer[s->buffer_length++] = 0; @@ -91886,15 +92847,15 @@ tr3739: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1326; goto _out;} + {p++; cs = 1344; goto _out;} } } } { s->line_counter++; } - goto st1326; -tr3703: + goto st1344; +tr3738: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91902,11 +92863,11 @@ tr3703: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1326; -tr3704: + goto st1344; +tr3739: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91914,18 +92875,18 @@ tr3704: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1326; -tr3705: + goto st1344; +tr3740: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91933,18 +92894,18 @@ tr3705: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1326; -tr3707: + goto st1344; +tr3742: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91952,17 +92913,17 @@ tr3707: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1326; -st1326: + goto st1344; +st1344: if ( ++p == pe ) - goto _test_eof1326; -case 1326: + goto _test_eof1344; +case 1344: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91976,17 +92937,17 @@ case 1326: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1326; - case 32: goto st1326; - case 40: goto tr3710; - case 41: goto tr3711; - case 2058: goto tr3713; - case 2107: goto tr3714; + case 9: goto st1344; + case 32: goto st1344; + case 40: goto tr3745; + case 41: goto tr3746; + case 2058: goto tr3748; + case 2107: goto tr3749; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3712; - goto tr2653; -tr3712: + goto tr3747; + goto tr2688; +tr3747: { s->number64 = 0; } @@ -92001,11 +92962,11 @@ tr3712: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1327; -tr3718: + goto st1345; +tr3753: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -92017,14 +92978,14 @@ tr3718: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1327; -st1327: + goto st1345; +st1345: if ( ++p == pe ) - goto _test_eof1327; -case 1327: + goto _test_eof1345; +case 1345: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92038,40 +92999,40 @@ case 1327: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3715; - case 32: goto tr3715; - case 40: goto tr3716; - case 41: goto tr3717; - case 2058: goto tr3719; - case 2107: goto tr3720; + case 9: goto tr3750; + case 32: goto tr3750; + case 40: goto tr3751; + case 41: goto tr3752; + case 2058: goto tr3754; + case 2107: goto tr3755; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3718; - goto tr2653; -tr3722: + goto tr3753; + goto tr2688; +tr3757: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1328; -tr3723: + goto st1346; +tr3758: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1328; -tr3725: + goto st1346; +tr3760: { s->line_counter++; } - goto st1328; -tr3737: + goto st1346; +tr3772: { s->buffer[s->buffer_length++] = 0; @@ -92081,79 +93042,79 @@ tr3737: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1328; goto _out;} + {p++; cs = 1346; goto _out;} } } } { s->line_counter++; } - goto st1328; -tr3715: + goto st1346; +tr3750: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1328; -tr3716: + goto st1346; +tr3751: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1328; -tr3717: + goto st1346; +tr3752: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1328; -tr3719: + goto st1346; +tr3754: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1328; -st1328: + goto st1346; +st1346: if ( ++p == pe ) - goto _test_eof1328; -case 1328: + goto _test_eof1346; +case 1346: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92167,29 +93128,29 @@ case 1328: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1328; - case 32: goto st1328; - case 40: goto tr3722; - case 41: goto tr3723; - case 2058: goto tr3725; - case 2107: goto tr3726; + case 9: goto st1346; + case 32: goto st1346; + case 40: goto tr3757; + case 41: goto tr3758; + case 2058: goto tr3760; + case 2107: goto tr3761; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3724; + goto tr3759; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3724; + goto tr3759; } else - goto tr3724; + goto tr3759; goto tr77; -tr3724: - { p--; {stack[top++] = 1329;goto st918;} } - goto st1329; -st1329: +tr3759: + { p--; {stack[top++] = 1347;goto st936;} } + goto st1347; +st1347: if ( ++p == pe ) - goto _test_eof1329; -case 1329: + goto _test_eof1347; +case 1347: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92203,38 +93164,38 @@ case 1329: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1330; - case 32: goto st1330; - case 40: goto tr3728; - case 41: goto tr3729; - case 2058: goto tr3730; - case 2107: goto tr3731; + case 9: goto st1348; + case 32: goto st1348; + case 40: goto tr3763; + case 41: goto tr3764; + case 2058: goto tr3765; + case 2107: goto tr3766; } goto tr77; -tr3728: +tr3763: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1330; -tr3729: + goto st1348; +tr3764: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1330; -tr3730: + goto st1348; +tr3765: { s->line_counter++; } - goto st1330; -tr3735: + goto st1348; +tr3770: { s->buffer[s->buffer_length++] = 0; @@ -92244,18 +93205,18 @@ tr3735: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1330; goto _out;} + {p++; cs = 1348; goto _out;} } } } { s->line_counter++; } - goto st1330; -st1330: + goto st1348; +st1348: if ( ++p == pe ) - goto _test_eof1330; -case 1330: + goto _test_eof1348; +case 1348: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92269,30 +93230,30 @@ case 1330: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1330; - case 32: goto st1330; - case 40: goto tr3728; - case 41: goto tr3729; - case 43: goto tr3732; - case 2058: goto tr3730; - case 2107: goto tr3731; + case 9: goto st1348; + case 32: goto st1348; + case 40: goto tr3763; + case 41: goto tr3764; + case 43: goto tr3767; + case 2058: goto tr3765; + case 2107: goto tr3766; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3732; + goto tr3767; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3732; + goto tr3767; } else - goto tr3732; + goto tr3767; goto tr77; -tr3732: - { p--; {stack[top++] = 1331;goto st381;} } - goto st1331; -st1331: +tr3767: + { p--; {stack[top++] = 1349;goto st387;} } + goto st1349; +st1349: if ( ++p == pe ) - goto _test_eof1331; -case 1331: + goto _test_eof1349; +case 1349: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92306,36 +93267,36 @@ case 1331: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3733; - case 2619: goto tr3733; + case 2570: goto tr3768; + case 2619: goto tr3768; } goto tr77; -tr3733: +tr3768: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -st1555: + goto st1573; +st1573: if ( ++p == pe ) - goto _test_eof1555; -case 1555: + goto _test_eof1573; +case 1573: goto st0; -tr3731: +tr3766: { s->buffer_length = 0; } - goto st1332; -tr3734: + goto st1350; +tr3769: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1332; -st1332: + goto st1350; +st1350: if ( ++p == pe ) - goto _test_eof1332; -case 1332: + goto _test_eof1350; +case 1350: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -92355,40 +93316,40 @@ case 1332: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3735; + goto tr3770; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3734; + goto tr3769; goto tr77; -tr3726: +tr3761: { s->buffer_length = 0; } - goto st1333; -tr3736: + goto st1351; +tr3771: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1333; -tr3720: + goto st1351; +tr3755: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1333; -st1333: + goto st1351; +st1351: if ( ++p == pe ) - goto _test_eof1333; -case 1333: + goto _test_eof1351; +case 1351: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -92408,23 +93369,23 @@ case 1333: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3737; + goto tr3772; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3736; + goto tr3771; goto tr77; -tr3714: +tr3749: { s->buffer_length = 0; } - goto st1334; -tr3738: + goto st1352; +tr3773: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1334; -tr3708: + goto st1352; +tr3743: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -92432,17 +93393,17 @@ tr3708: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1334; -st1334: + goto st1352; +st1352: if ( ++p == pe ) - goto _test_eof1334; -case 1334: + goto _test_eof1352; +case 1352: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -92462,32 +93423,32 @@ case 1334: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3739; + goto tr3774; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3738; + goto tr3773; goto tr77; -st1335: +st1353: if ( ++p == pe ) - goto _test_eof1335; -case 1335: + goto _test_eof1353; +case 1353: if ( (*p) == 43 ) - goto tr3740; + goto tr3775; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr3740; + goto tr3775; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3740; + goto tr3775; } else - goto tr3740; + goto tr3775; goto tr77; -tr3740: - { p--; {stack[top++] = 1336;goto st381;} } - goto st1336; -st1336: +tr3775: + { p--; {stack[top++] = 1354;goto st387;} } + goto st1354; +st1354: if ( ++p == pe ) - goto _test_eof1336; -case 1336: + goto _test_eof1354; +case 1354: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92501,28 +93462,28 @@ case 1336: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3741; - case 2619: goto tr3741; + case 2570: goto tr3776; + case 2619: goto tr3776; } goto tr77; -tr3741: +tr3776: { p--; {cs = stack[--top];goto _again;} } - goto st1556; -st1556: + goto st1574; +st1574: if ( ++p == pe ) - goto _test_eof1556; -case 1556: + goto _test_eof1574; +case 1574: goto st0; -st1337: +st1355: if ( ++p == pe ) - goto _test_eof1337; -case 1337: + goto _test_eof1355; +case 1355: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3742; - goto tr2653; -tr3742: + goto tr3777; + goto tr2688; +tr3777: { s->number64 = 0; } @@ -92537,11 +93498,11 @@ tr3742: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1338; -tr3746: + goto st1356; +tr3781: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -92553,14 +93514,14 @@ tr3746: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1338; -st1338: + goto st1356; +st1356: if ( ++p == pe ) - goto _test_eof1338; -case 1338: + goto _test_eof1356; +case 1356: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92574,40 +93535,40 @@ case 1338: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3743; - case 32: goto tr3743; - case 40: goto tr3744; - case 41: goto tr3745; - case 2058: goto tr3747; - case 2107: goto tr3748; + case 9: goto tr3778; + case 32: goto tr3778; + case 40: goto tr3779; + case 41: goto tr3780; + case 2058: goto tr3782; + case 2107: goto tr3783; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3746; - goto tr2653; -tr3750: + goto tr3781; + goto tr2688; +tr3785: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1339; -tr3751: + goto st1357; +tr3786: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1339; -tr3753: + goto st1357; +tr3788: { s->line_counter++; } - goto st1339; -tr3817: + goto st1357; +tr3852: { s->buffer[s->buffer_length++] = 0; @@ -92617,79 +93578,79 @@ tr3817: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1339; goto _out;} + {p++; cs = 1357; goto _out;} } } } { s->line_counter++; } - goto st1339; -tr3743: + goto st1357; +tr3778: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1339; -tr3744: + goto st1357; +tr3779: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1339; -tr3745: + goto st1357; +tr3780: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1339; -tr3747: + goto st1357; +tr3782: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1339; -st1339: + goto st1357; +st1357: if ( ++p == pe ) - goto _test_eof1339; -case 1339: + goto _test_eof1357; +case 1357: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92703,17 +93664,17 @@ case 1339: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1339; - case 32: goto st1339; - case 40: goto tr3750; - case 41: goto tr3751; - case 2058: goto tr3753; - case 2107: goto tr3754; + case 9: goto st1357; + case 32: goto st1357; + case 40: goto tr3785; + case 41: goto tr3786; + case 2058: goto tr3788; + case 2107: goto tr3789; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3752; - goto tr2653; -tr3752: + goto tr3787; + goto tr2688; +tr3787: { s->number64 = 0; } @@ -92728,11 +93689,11 @@ tr3752: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1340; -tr3758: + goto st1358; +tr3793: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -92744,14 +93705,14 @@ tr3758: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1340; -st1340: + goto st1358; +st1358: if ( ++p == pe ) - goto _test_eof1340; -case 1340: + goto _test_eof1358; +case 1358: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92765,40 +93726,40 @@ case 1340: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3755; - case 32: goto tr3755; - case 40: goto tr3756; - case 41: goto tr3757; - case 2058: goto tr3759; - case 2107: goto tr3760; + case 9: goto tr3790; + case 32: goto tr3790; + case 40: goto tr3791; + case 41: goto tr3792; + case 2058: goto tr3794; + case 2107: goto tr3795; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3758; - goto tr2653; -tr3762: + goto tr3793; + goto tr2688; +tr3797: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1341; -tr3763: + goto st1359; +tr3798: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1341; -tr3765: + goto st1359; +tr3800: { s->line_counter++; } - goto st1341; -tr3815: + goto st1359; +tr3850: { s->buffer[s->buffer_length++] = 0; @@ -92808,79 +93769,79 @@ tr3815: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1341; goto _out;} + {p++; cs = 1359; goto _out;} } } } { s->line_counter++; } - goto st1341; -tr3755: + goto st1359; +tr3790: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1341; -tr3756: + goto st1359; +tr3791: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1341; -tr3757: + goto st1359; +tr3792: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1341; -tr3759: + goto st1359; +tr3794: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1341; -st1341: + goto st1359; +st1359: if ( ++p == pe ) - goto _test_eof1341; -case 1341: + goto _test_eof1359; +case 1359: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92894,17 +93855,17 @@ case 1341: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1341; - case 32: goto st1341; - case 40: goto tr3762; - case 41: goto tr3763; - case 2058: goto tr3765; - case 2107: goto tr3766; + case 9: goto st1359; + case 32: goto st1359; + case 40: goto tr3797; + case 41: goto tr3798; + case 2058: goto tr3800; + case 2107: goto tr3801; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3764; - goto tr2653; -tr3764: + goto tr3799; + goto tr2688; +tr3799: { s->number64 = 0; } @@ -92919,11 +93880,11 @@ tr3764: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1342; -tr3770: + goto st1360; +tr3805: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -92935,14 +93896,14 @@ tr3770: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1342; -st1342: + goto st1360; +st1360: if ( ++p == pe ) - goto _test_eof1342; -case 1342: + goto _test_eof1360; +case 1360: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92956,40 +93917,40 @@ case 1342: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3767; - case 32: goto tr3767; - case 40: goto tr3768; - case 41: goto tr3769; - case 2058: goto tr3771; - case 2107: goto tr3772; + case 9: goto tr3802; + case 32: goto tr3802; + case 40: goto tr3803; + case 41: goto tr3804; + case 2058: goto tr3806; + case 2107: goto tr3807; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3770; - goto tr2653; -tr3774: + goto tr3805; + goto tr2688; +tr3809: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1343; -tr3775: + goto st1361; +tr3810: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1343; -tr3778: + goto st1361; +tr3813: { s->line_counter++; } - goto st1343; -tr3813: + goto st1361; +tr3848: { s->buffer[s->buffer_length++] = 0; @@ -92999,15 +93960,15 @@ tr3813: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1343; goto _out;} + {p++; cs = 1361; goto _out;} } } } { s->line_counter++; } - goto st1343; -tr3767: + goto st1361; +tr3802: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93015,11 +93976,11 @@ tr3767: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1343; -tr3768: + goto st1361; +tr3803: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93027,18 +93988,18 @@ tr3768: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1343; -tr3769: + goto st1361; +tr3804: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93046,18 +94007,18 @@ tr3769: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1343; -tr3771: + goto st1361; +tr3806: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93065,17 +94026,17 @@ tr3771: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1343; -st1343: + goto st1361; +st1361: if ( ++p == pe ) - goto _test_eof1343; -case 1343: + goto _test_eof1361; +case 1361: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93089,37 +94050,37 @@ case 1343: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1343; - case 32: goto st1343; - case 40: goto tr3774; - case 41: goto tr3775; - case 45: goto tr3776; - case 2058: goto tr3778; - case 2107: goto tr3779; + case 9: goto st1361; + case 32: goto st1361; + case 40: goto tr3809; + case 41: goto tr3810; + case 45: goto tr3811; + case 2058: goto tr3813; + case 2107: goto tr3814; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3777; + goto tr3812; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3777; + goto tr3812; } else - goto tr3777; - goto tr3324; -tr3776: + goto tr3812; + goto tr3359; +tr3811: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1344; -st1344: + goto st1362; +st1362: if ( ++p == pe ) - goto _test_eof1344; -case 1344: + goto _test_eof1362; +case 1362: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93133,38 +94094,38 @@ case 1344: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3780; - case 32: goto tr3780; - case 40: goto tr3781; - case 41: goto tr3782; - case 2058: goto tr3783; - case 2107: goto tr3784; - } - goto tr3324; -tr3787: + case 9: goto tr3815; + case 32: goto tr3815; + case 40: goto tr3816; + case 41: goto tr3817; + case 2058: goto tr3818; + case 2107: goto tr3819; + } + goto tr3359; +tr3822: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1345; -tr3788: + goto st1363; +tr3823: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1345; -tr3790: + goto st1363; +tr3825: { s->line_counter++; } - goto st1345; -tr3809: + goto st1363; +tr3844: { s->buffer[s->buffer_length++] = 0; @@ -93174,95 +94135,95 @@ tr3809: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1345; goto _out;} + {p++; cs = 1363; goto _out;} } } } { s->line_counter++; } - goto st1345; -tr3780: + goto st1363; +tr3815: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1345; -tr3781: + goto st1363; +tr3816: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1345; -tr3782: + goto st1363; +tr3817: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1345; -tr3783: + goto st1363; +tr3818: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1345; -st1345: + goto st1363; +st1363: if ( ++p == pe ) - goto _test_eof1345; -case 1345: + goto _test_eof1363; +case 1363: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93276,29 +94237,29 @@ case 1345: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1345; - case 32: goto st1345; - case 40: goto tr3787; - case 41: goto tr3788; - case 2058: goto tr3790; - case 2107: goto tr3791; + case 9: goto st1363; + case 32: goto st1363; + case 40: goto tr3822; + case 41: goto tr3823; + case 2058: goto tr3825; + case 2107: goto tr3826; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3789; + goto tr3824; } else if ( _widec > 86 ) { if ( 97 <= _widec && _widec <= 118 ) - goto tr3789; + goto tr3824; } else - goto tr3789; - goto tr3785; -tr3789: + goto tr3824; + goto tr3820; +tr3824: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -93306,34 +94267,34 @@ tr3789: *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1346; -tr3804: + goto st1364; +tr3839: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1346; -st1346: + goto st1364; +st1364: if ( ++p == pe ) - goto _test_eof1346; -case 1346: + goto _test_eof1364; +case 1364: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3792; + goto tr3827; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3792; + goto tr3827; } else - goto tr3792; - goto tr3785; -tr3792: + goto tr3827; + goto tr3820; +tr3827: { *(rdata_tail++) += second_left_base32hex_to_num[(uint8_t)(*p)]; @@ -93341,44 +94302,44 @@ tr3792: *rdata_tail = second_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1347; -st1347: + goto st1365; +st1365: if ( ++p == pe ) - goto _test_eof1347; -case 1347: + goto _test_eof1365; +case 1365: if ( (*p) == 61 ) - goto st1358; + goto st1376; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3793; + goto tr3828; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3793; + goto tr3828; } else - goto tr3793; - goto tr3785; -tr3793: + goto tr3828; + goto tr3820; +tr3828: { *rdata_tail += third_base32hex_to_num[(uint8_t)(*p)]; } - goto st1348; -st1348: + goto st1366; +st1366: if ( ++p == pe ) - goto _test_eof1348; -case 1348: + goto _test_eof1366; +case 1366: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3795; + goto tr3830; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3795; + goto tr3830; } else - goto tr3795; - goto tr3785; -tr3795: + goto tr3830; + goto tr3820; +tr3830: { *(rdata_tail++) += fourth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -93386,26 +94347,26 @@ tr3795: *rdata_tail = fourth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1349; -st1349: + goto st1367; +st1367: if ( ++p == pe ) - goto _test_eof1349; -case 1349: + goto _test_eof1367; +case 1367: if ( (*p) == 61 ) - goto st1357; + goto st1375; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3796; + goto tr3831; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3796; + goto tr3831; } else - goto tr3796; - goto tr3785; -tr3796: + goto tr3831; + goto tr3820; +tr3831: { *(rdata_tail++) += fifth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -93413,44 +94374,44 @@ tr3796: *rdata_tail = fifth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1350; -st1350: + goto st1368; +st1368: if ( ++p == pe ) - goto _test_eof1350; -case 1350: + goto _test_eof1368; +case 1368: if ( (*p) == 61 ) - goto st1355; + goto st1373; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3798; + goto tr3833; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3798; + goto tr3833; } else - goto tr3798; - goto tr3785; -tr3798: + goto tr3833; + goto tr3820; +tr3833: { *rdata_tail += sixth_base32hex_to_num[(uint8_t)(*p)]; } - goto st1351; -st1351: + goto st1369; +st1369: if ( ++p == pe ) - goto _test_eof1351; -case 1351: + goto _test_eof1369; +case 1369: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3800; + goto tr3835; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3800; + goto tr3835; } else - goto tr3800; - goto tr3785; -tr3800: + goto tr3835; + goto tr3820; +tr3835: { *(rdata_tail++) += seventh_left_base32hex_to_num[(uint8_t)(*p)]; @@ -93458,162 +94419,162 @@ tr3800: *rdata_tail = seventh_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1352; -st1352: + goto st1370; +st1370: if ( ++p == pe ) - goto _test_eof1352; -case 1352: + goto _test_eof1370; +case 1370: if ( (*p) == 61 ) - goto st1353; + goto st1371; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3801; + goto tr3836; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3801; + goto tr3836; } else - goto tr3801; - goto tr3785; -tr3801: + goto tr3836; + goto tr3820; +tr3836: { *(rdata_tail++) += eighth_base32hex_to_num[(uint8_t)(*p)]; } - goto st1353; -st1353: + goto st1371; +st1371: if ( ++p == pe ) - goto _test_eof1353; -case 1353: + goto _test_eof1371; +case 1371: switch( (*p) ) { - case 32: goto tr3803; - case 59: goto tr3803; + case 32: goto tr3838; + case 59: goto tr3838; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3803; + goto tr3838; } else if ( (*p) >= 9 ) - goto tr3803; + goto tr3838; } else if ( (*p) > 57 ) { if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3804; + goto tr3839; } else if ( (*p) >= 65 ) - goto tr3804; + goto tr3839; } else - goto tr3804; - goto tr3785; -tr3803: + goto tr3839; + goto tr3820; +tr3838: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 1354;goto st559;} } - goto st1354; -st1354: + { p--; {stack[top++] = 1372;goto st571;} } + goto st1372; +st1372: if ( ++p == pe ) - goto _test_eof1354; -case 1354: + goto _test_eof1372; +case 1372: switch( (*p) ) { - case 32: goto tr3805; - case 59: goto tr3805; + case 32: goto tr3840; + case 59: goto tr3840; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3805; + goto tr3840; } else if ( (*p) >= 9 ) - goto tr3805; + goto tr3840; goto tr77; -tr3805: +tr3840: { p--; {cs = stack[--top];goto _again;} } - goto st1557; -st1557: + goto st1575; +st1575: if ( ++p == pe ) - goto _test_eof1557; -case 1557: + goto _test_eof1575; +case 1575: goto st0; -st1355: +st1373: if ( ++p == pe ) - goto _test_eof1355; -case 1355: + goto _test_eof1373; +case 1373: if ( (*p) == 61 ) - goto st1356; - goto tr3785; -st1356: + goto st1374; + goto tr3820; +st1374: if ( ++p == pe ) - goto _test_eof1356; -case 1356: + goto _test_eof1374; +case 1374: if ( (*p) == 61 ) - goto st1353; - goto tr3785; -st1357: + goto st1371; + goto tr3820; +st1375: if ( ++p == pe ) - goto _test_eof1357; -case 1357: + goto _test_eof1375; +case 1375: if ( (*p) == 61 ) - goto st1355; - goto tr3785; -st1358: + goto st1373; + goto tr3820; +st1376: if ( ++p == pe ) - goto _test_eof1358; -case 1358: + goto _test_eof1376; +case 1376: if ( (*p) == 61 ) - goto st1359; - goto tr3785; -st1359: + goto st1377; + goto tr3820; +st1377: if ( ++p == pe ) - goto _test_eof1359; -case 1359: + goto _test_eof1377; +case 1377: if ( (*p) == 61 ) - goto st1357; - goto tr3785; -tr3791: + goto st1375; + goto tr3820; +tr3826: { s->buffer_length = 0; } - goto st1360; -tr3808: + goto st1378; +tr3843: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1360; -tr3784: + goto st1378; +tr3819: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1360; -st1360: + goto st1378; +st1378: if ( ++p == pe ) - goto _test_eof1360; -case 1360: + goto _test_eof1378; +case 1378: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93633,27 +94594,27 @@ case 1360: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3809; + goto tr3844; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3808; + goto tr3843; goto tr77; -tr3811: +tr3846: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1361; -tr3777: + goto st1379; +tr3812: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -93661,33 +94622,33 @@ tr3777: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1361; -st1361: + goto st1379; +st1379: if ( ++p == pe ) - goto _test_eof1361; -case 1361: + goto _test_eof1379; +case 1379: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3810; + goto tr3845; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3810; + goto tr3845; } else - goto tr3810; - goto tr3324; -tr3810: + goto tr3845; + goto tr3359; +tr3845: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1362; -st1362: + goto st1380; +st1380: if ( ++p == pe ) - goto _test_eof1362; -case 1362: + goto _test_eof1380; +case 1380: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93701,35 +94662,35 @@ case 1362: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3780; - case 32: goto tr3780; - case 40: goto tr3781; - case 41: goto tr3782; - case 2058: goto tr3783; - case 2107: goto tr3784; + case 9: goto tr3815; + case 32: goto tr3815; + case 40: goto tr3816; + case 41: goto tr3817; + case 2058: goto tr3818; + case 2107: goto tr3819; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3811; + goto tr3846; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3811; + goto tr3846; } else - goto tr3811; - goto tr3324; -tr3779: + goto tr3846; + goto tr3359; +tr3814: { s->buffer_length = 0; } - goto st1363; -tr3812: + goto st1381; +tr3847: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1363; -tr3772: + goto st1381; +tr3807: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93737,17 +94698,17 @@ tr3772: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1363; -st1363: + goto st1381; +st1381: if ( ++p == pe ) - goto _test_eof1363; -case 1363: + goto _test_eof1381; +case 1381: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93767,40 +94728,40 @@ case 1363: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3813; + goto tr3848; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3812; + goto tr3847; goto tr77; -tr3766: +tr3801: { s->buffer_length = 0; } - goto st1364; -tr3814: + goto st1382; +tr3849: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1364; -tr3760: + goto st1382; +tr3795: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1364; -st1364: + goto st1382; +st1382: if ( ++p == pe ) - goto _test_eof1364; -case 1364: + goto _test_eof1382; +case 1382: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93820,40 +94781,40 @@ case 1364: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3815; + goto tr3850; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3814; + goto tr3849; goto tr77; -tr3754: +tr3789: { s->buffer_length = 0; } - goto st1365; -tr3816: + goto st1383; +tr3851: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1365; -tr3748: + goto st1383; +tr3783: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1365; -st1365: + goto st1383; +st1383: if ( ++p == pe ) - goto _test_eof1365; -case 1365: + goto _test_eof1383; +case 1383: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93873,18 +94834,18 @@ case 1365: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3817; + goto tr3852; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3816; + goto tr3851; goto tr77; -st1366: +st1384: if ( ++p == pe ) - goto _test_eof1366; -case 1366: + goto _test_eof1384; +case 1384: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3818; - goto tr2653; -tr3818: + goto tr3853; + goto tr2688; +tr3853: { s->number64 = 0; } @@ -93899,11 +94860,11 @@ tr3818: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1367; -tr3822: + goto st1385; +tr3857: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -93915,14 +94876,14 @@ tr3822: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1367; -st1367: + goto st1385; +st1385: if ( ++p == pe ) - goto _test_eof1367; -case 1367: + goto _test_eof1385; +case 1385: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93936,40 +94897,40 @@ case 1367: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3819; - case 32: goto tr3819; - case 40: goto tr3820; - case 41: goto tr3821; - case 2058: goto tr3823; - case 2107: goto tr3824; + case 9: goto tr3854; + case 32: goto tr3854; + case 40: goto tr3855; + case 41: goto tr3856; + case 2058: goto tr3858; + case 2107: goto tr3859; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3822; - goto tr2653; -tr3826: + goto tr3857; + goto tr2688; +tr3861: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1368; -tr3827: + goto st1386; +tr3862: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1368; -tr3829: + goto st1386; +tr3864: { s->line_counter++; } - goto st1368; -tr3864: + goto st1386; +tr3899: { s->buffer[s->buffer_length++] = 0; @@ -93979,79 +94940,79 @@ tr3864: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1368; goto _out;} + {p++; cs = 1386; goto _out;} } } } { s->line_counter++; } - goto st1368; -tr3819: + goto st1386; +tr3854: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1368; -tr3820: + goto st1386; +tr3855: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1368; -tr3821: + goto st1386; +tr3856: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1368; -tr3823: + goto st1386; +tr3858: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1368; -st1368: + goto st1386; +st1386: if ( ++p == pe ) - goto _test_eof1368; -case 1368: + goto _test_eof1386; +case 1386: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94065,17 +95026,17 @@ case 1368: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1368; - case 32: goto st1368; - case 40: goto tr3826; - case 41: goto tr3827; - case 2058: goto tr3829; - case 2107: goto tr3830; + case 9: goto st1386; + case 32: goto st1386; + case 40: goto tr3861; + case 41: goto tr3862; + case 2058: goto tr3864; + case 2107: goto tr3865; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3828; - goto tr2653; -tr3828: + goto tr3863; + goto tr2688; +tr3863: { s->number64 = 0; } @@ -94090,11 +95051,11 @@ tr3828: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1369; -tr3834: + goto st1387; +tr3869: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94106,14 +95067,14 @@ tr3834: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1369; -st1369: + goto st1387; +st1387: if ( ++p == pe ) - goto _test_eof1369; -case 1369: + goto _test_eof1387; +case 1387: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94127,40 +95088,40 @@ case 1369: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3831; - case 32: goto tr3831; - case 40: goto tr3832; - case 41: goto tr3833; - case 2058: goto tr3835; - case 2107: goto tr3836; + case 9: goto tr3866; + case 32: goto tr3866; + case 40: goto tr3867; + case 41: goto tr3868; + case 2058: goto tr3870; + case 2107: goto tr3871; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3834; - goto tr2653; -tr3838: + goto tr3869; + goto tr2688; +tr3873: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1370; -tr3839: + goto st1388; +tr3874: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1370; -tr3841: + goto st1388; +tr3876: { s->line_counter++; } - goto st1370; -tr3862: + goto st1388; +tr3897: { s->buffer[s->buffer_length++] = 0; @@ -94170,79 +95131,79 @@ tr3862: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1370; goto _out;} + {p++; cs = 1388; goto _out;} } } } { s->line_counter++; } - goto st1370; -tr3831: + goto st1388; +tr3866: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1370; -tr3832: + goto st1388; +tr3867: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1370; -tr3833: + goto st1388; +tr3868: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1370; -tr3835: + goto st1388; +tr3870: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1370; -st1370: + goto st1388; +st1388: if ( ++p == pe ) - goto _test_eof1370; -case 1370: + goto _test_eof1388; +case 1388: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94256,17 +95217,17 @@ case 1370: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1370; - case 32: goto st1370; - case 40: goto tr3838; - case 41: goto tr3839; - case 2058: goto tr3841; - case 2107: goto tr3842; + case 9: goto st1388; + case 32: goto st1388; + case 40: goto tr3873; + case 41: goto tr3874; + case 2058: goto tr3876; + case 2107: goto tr3877; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3840; - goto tr2653; -tr3840: + goto tr3875; + goto tr2688; +tr3875: { s->number64 = 0; } @@ -94281,11 +95242,11 @@ tr3840: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1371; -tr3846: + goto st1389; +tr3881: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94297,14 +95258,14 @@ tr3846: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1371; -st1371: + goto st1389; +st1389: if ( ++p == pe ) - goto _test_eof1371; -case 1371: + goto _test_eof1389; +case 1389: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94318,40 +95279,40 @@ case 1371: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3843; - case 32: goto tr3843; - case 40: goto tr3844; - case 41: goto tr3845; - case 2058: goto tr3847; - case 2107: goto tr3848; + case 9: goto tr3878; + case 32: goto tr3878; + case 40: goto tr3879; + case 41: goto tr3880; + case 2058: goto tr3882; + case 2107: goto tr3883; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3846; - goto tr2653; -tr3850: + goto tr3881; + goto tr2688; +tr3885: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1372; -tr3851: + goto st1390; +tr3886: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1372; -tr3854: + goto st1390; +tr3889: { s->line_counter++; } - goto st1372; -tr3860: + goto st1390; +tr3895: { s->buffer[s->buffer_length++] = 0; @@ -94361,15 +95322,15 @@ tr3860: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1372; goto _out;} + {p++; cs = 1390; goto _out;} } } } { s->line_counter++; } - goto st1372; -tr3843: + goto st1390; +tr3878: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94377,11 +95338,11 @@ tr3843: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1372; -tr3844: + goto st1390; +tr3879: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94389,18 +95350,18 @@ tr3844: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1372; -tr3845: + goto st1390; +tr3880: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94408,18 +95369,18 @@ tr3845: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1372; -tr3847: + goto st1390; +tr3882: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94427,17 +95388,17 @@ tr3847: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1372; -st1372: + goto st1390; +st1390: if ( ++p == pe ) - goto _test_eof1372; -case 1372: + goto _test_eof1390; +case 1390: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94451,87 +95412,87 @@ case 1372: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1372; - case 32: goto st1372; - case 40: goto tr3850; - case 41: goto tr3851; - case 45: goto tr3852; - case 2058: goto tr3854; - case 2107: goto tr3855; + case 9: goto st1390; + case 32: goto st1390; + case 40: goto tr3885; + case 41: goto tr3886; + case 45: goto tr3887; + case 2058: goto tr3889; + case 2107: goto tr3890; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3853; + goto tr3888; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3853; + goto tr3888; } else - goto tr3853; - goto tr3324; -tr3852: + goto tr3888; + goto tr3359; +tr3887: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1373; -st1373: + goto st1391; +st1391: if ( ++p == pe ) - goto _test_eof1373; -case 1373: + goto _test_eof1391; +case 1391: switch( (*p) ) { - case 32: goto tr3856; - case 59: goto tr3856; + case 32: goto tr3891; + case 59: goto tr3891; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3856; + goto tr3891; } else if ( (*p) >= 9 ) - goto tr3856; - goto tr3324; -tr3856: + goto tr3891; + goto tr3359; +tr3891: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1558; -st1558: + goto st1576; +st1576: if ( ++p == pe ) - goto _test_eof1558; -case 1558: + goto _test_eof1576; +case 1576: goto st0; -tr3858: +tr3893: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1374; -tr3853: + goto st1392; +tr3888: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { @@ -94539,65 +95500,65 @@ tr3853: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1374; -st1374: + goto st1392; +st1392: if ( ++p == pe ) - goto _test_eof1374; -case 1374: + goto _test_eof1392; +case 1392: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3857; + goto tr3892; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3857; + goto tr3892; } else - goto tr3857; - goto tr3324; -tr3857: + goto tr3892; + goto tr3359; +tr3892: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1375; -st1375: + goto st1393; +st1393: if ( ++p == pe ) - goto _test_eof1375; -case 1375: + goto _test_eof1393; +case 1393: switch( (*p) ) { - case 32: goto tr3856; - case 59: goto tr3856; + case 32: goto tr3891; + case 59: goto tr3891; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3856; + goto tr3891; } else if ( (*p) >= 9 ) - goto tr3856; + goto tr3891; } else if ( (*p) > 57 ) { if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3858; + goto tr3893; } else if ( (*p) >= 65 ) - goto tr3858; + goto tr3893; } else - goto tr3858; - goto tr3324; -tr3855: + goto tr3893; + goto tr3359; +tr3890: { s->buffer_length = 0; } - goto st1376; -tr3859: + goto st1394; +tr3894: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1376; -tr3848: + goto st1394; +tr3883: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94605,17 +95566,17 @@ tr3848: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1376; -st1376: + goto st1394; +st1394: if ( ++p == pe ) - goto _test_eof1376; -case 1376: + goto _test_eof1394; +case 1394: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94635,40 +95596,40 @@ case 1376: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3860; + goto tr3895; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3859; + goto tr3894; goto tr77; -tr3842: +tr3877: { s->buffer_length = 0; } - goto st1377; -tr3861: + goto st1395; +tr3896: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1377; -tr3836: + goto st1395; +tr3871: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1377; -st1377: + goto st1395; +st1395: if ( ++p == pe ) - goto _test_eof1377; -case 1377: + goto _test_eof1395; +case 1395: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94688,40 +95649,40 @@ case 1377: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3862; + goto tr3897; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3861; + goto tr3896; goto tr77; -tr3830: +tr3865: { s->buffer_length = 0; } - goto st1378; -tr3863: + goto st1396; +tr3898: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1378; -tr3824: + goto st1396; +tr3859: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1378; -st1378: + goto st1396; +st1396: if ( ++p == pe ) - goto _test_eof1378; -case 1378: + goto _test_eof1396; +case 1396: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94741,18 +95702,18 @@ case 1378: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3864; + goto tr3899; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3863; + goto tr3898; goto tr77; -st1379: +st1397: if ( ++p == pe ) - goto _test_eof1379; -case 1379: + goto _test_eof1397; +case 1397: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3865; - goto tr2653; -tr3865: + goto tr3900; + goto tr2688; +tr3900: { s->number64 = 0; } @@ -94767,11 +95728,11 @@ tr3865: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1380; -tr3869: + goto st1398; +tr3904: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94783,14 +95744,14 @@ tr3869: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1380; -st1380: + goto st1398; +st1398: if ( ++p == pe ) - goto _test_eof1380; -case 1380: + goto _test_eof1398; +case 1398: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94804,40 +95765,40 @@ case 1380: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3866; - case 32: goto tr3866; - case 40: goto tr3867; - case 41: goto tr3868; - case 2058: goto tr3870; - case 2107: goto tr3871; + case 9: goto tr3901; + case 32: goto tr3901; + case 40: goto tr3902; + case 41: goto tr3903; + case 2058: goto tr3905; + case 2107: goto tr3906; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3869; - goto tr2653; -tr3873: + goto tr3904; + goto tr2688; +tr3908: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1381; -tr3874: + goto st1399; +tr3909: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1381; -tr3876: + goto st1399; +tr3911: { s->line_counter++; } - goto st1381; -tr3918: + goto st1399; +tr3953: { s->buffer[s->buffer_length++] = 0; @@ -94847,79 +95808,79 @@ tr3918: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1381; goto _out;} + {p++; cs = 1399; goto _out;} } } } { s->line_counter++; } - goto st1381; -tr3866: + goto st1399; +tr3901: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1381; -tr3867: + goto st1399; +tr3902: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1381; -tr3868: + goto st1399; +tr3903: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1381; -tr3870: + goto st1399; +tr3905: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1381; -st1381: + goto st1399; +st1399: if ( ++p == pe ) - goto _test_eof1381; -case 1381: + goto _test_eof1399; +case 1399: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94933,17 +95894,17 @@ case 1381: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1381; - case 32: goto st1381; - case 40: goto tr3873; - case 41: goto tr3874; - case 2058: goto tr3876; - case 2107: goto tr3877; + case 9: goto st1399; + case 32: goto st1399; + case 40: goto tr3908; + case 41: goto tr3909; + case 2058: goto tr3911; + case 2107: goto tr3912; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3875; - goto tr2653; -tr3875: + goto tr3910; + goto tr2688; +tr3910: { s->number64 = 0; } @@ -94958,11 +95919,11 @@ tr3875: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1382; -tr3881: + goto st1400; +tr3916: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94974,14 +95935,14 @@ tr3881: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1382; -st1382: + goto st1400; +st1400: if ( ++p == pe ) - goto _test_eof1382; -case 1382: + goto _test_eof1400; +case 1400: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94995,40 +95956,40 @@ case 1382: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3878; - case 32: goto tr3878; - case 40: goto tr3879; - case 41: goto tr3880; - case 2058: goto tr3882; - case 2107: goto tr3883; + case 9: goto tr3913; + case 32: goto tr3913; + case 40: goto tr3914; + case 41: goto tr3915; + case 2058: goto tr3917; + case 2107: goto tr3918; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3881; - goto tr2653; -tr3885: + goto tr3916; + goto tr2688; +tr3920: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1383; -tr3886: + goto st1401; +tr3921: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1383; -tr3888: + goto st1401; +tr3923: { s->line_counter++; } - goto st1383; -tr3916: + goto st1401; +tr3951: { s->buffer[s->buffer_length++] = 0; @@ -95038,79 +95999,79 @@ tr3916: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1383; goto _out;} + {p++; cs = 1401; goto _out;} } } } { s->line_counter++; } - goto st1383; -tr3878: + goto st1401; +tr3913: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1383; -tr3879: + goto st1401; +tr3914: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1383; -tr3880: + goto st1401; +tr3915: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1383; -tr3882: + goto st1401; +tr3917: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1383; -st1383: + goto st1401; +st1401: if ( ++p == pe ) - goto _test_eof1383; -case 1383: + goto _test_eof1401; +case 1401: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95124,17 +96085,17 @@ case 1383: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1383; - case 32: goto st1383; - case 40: goto tr3885; - case 41: goto tr3886; - case 2058: goto tr3888; - case 2107: goto tr3889; + case 9: goto st1401; + case 32: goto st1401; + case 40: goto tr3920; + case 41: goto tr3921; + case 2058: goto tr3923; + case 2107: goto tr3924; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3887; - goto tr2653; -tr3887: + goto tr3922; + goto tr2688; +tr3922: { s->number64 = 0; } @@ -95149,11 +96110,11 @@ tr3887: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1384; -tr3893: + goto st1402; +tr3928: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95165,14 +96126,14 @@ tr3893: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1384; -st1384: + goto st1402; +st1402: if ( ++p == pe ) - goto _test_eof1384; -case 1384: + goto _test_eof1402; +case 1402: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95186,40 +96147,40 @@ case 1384: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3890; - case 32: goto tr3890; - case 40: goto tr3891; - case 41: goto tr3892; - case 2058: goto tr3894; - case 2107: goto tr3895; + case 9: goto tr3925; + case 32: goto tr3925; + case 40: goto tr3926; + case 41: goto tr3927; + case 2058: goto tr3929; + case 2107: goto tr3930; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3893; - goto tr2653; -tr3897: + goto tr3928; + goto tr2688; +tr3932: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1385; -tr3898: + goto st1403; +tr3933: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1385; -tr3900: + goto st1403; +tr3935: { s->line_counter++; } - goto st1385; -tr3914: + goto st1403; +tr3949: { s->buffer[s->buffer_length++] = 0; @@ -95229,79 +96190,79 @@ tr3914: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1385; goto _out;} + {p++; cs = 1403; goto _out;} } } } { s->line_counter++; } - goto st1385; -tr3890: + goto st1403; +tr3925: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1385; -tr3891: + goto st1403; +tr3926: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1385; -tr3892: + goto st1403; +tr3927: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1385; -tr3894: + goto st1403; +tr3929: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1385; -st1385: + goto st1403; +st1403: if ( ++p == pe ) - goto _test_eof1385; -case 1385: + goto _test_eof1403; +case 1403: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95315,69 +96276,69 @@ case 1385: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1385; - case 32: goto st1385; - case 40: goto tr3897; - case 41: goto tr3898; - case 2058: goto tr3900; - case 2107: goto tr3901; + case 9: goto st1403; + case 32: goto st1403; + case 40: goto tr3932; + case 41: goto tr3933; + case 2058: goto tr3935; + case 2107: goto tr3936; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3899; + goto tr3934; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3899; + goto tr3934; } else - goto tr3899; - goto tr3324; -tr3899: + goto tr3934; + goto tr3359; +tr3934: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1386; -st1386: + goto st1404; +st1404: if ( ++p == pe ) - goto _test_eof1386; -case 1386: + goto _test_eof1404; +case 1404: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3902; + goto tr3937; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3902; + goto tr3937; } else - goto tr3902; - goto tr3324; -tr3904: + goto tr3937; + goto tr3359; +tr3939: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1387; -tr3905: + goto st1405; +tr3940: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1387; -tr3906: + goto st1405; +tr3941: { s->line_counter++; } - goto st1387; -tr3912: + goto st1405; +tr3947: { s->buffer[s->buffer_length++] = 0; @@ -95387,24 +96348,24 @@ tr3912: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1387; goto _out;} + {p++; cs = 1405; goto _out;} } } } { s->line_counter++; } - goto st1387; -tr3902: + goto st1405; +tr3937: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1387; -st1387: + goto st1405; +st1405: if ( ++p == pe ) - goto _test_eof1387; -case 1387: + goto _test_eof1405; +case 1405: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95422,42 +96383,42 @@ case 1387: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1387; - case 32: goto st1387; - case 40: goto tr3904; - case 41: goto tr3905; - case 3082: goto tr3906; - case 3131: goto tr3907; - case 3338: goto tr3908; - case 3387: goto tr3908; - case 3594: goto tr3909; - case 3643: goto tr3910; + case 9: goto st1405; + case 32: goto st1405; + case 40: goto tr3939; + case 41: goto tr3940; + case 3082: goto tr3941; + case 3131: goto tr3942; + case 3338: goto tr3943; + case 3387: goto tr3943; + case 3594: goto tr3944; + case 3643: goto tr3945; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3899; + goto tr3934; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3899; + goto tr3934; } else - goto tr3899; - goto tr3324; -tr3907: + goto tr3934; + goto tr3359; +tr3942: { s->buffer_length = 0; } - goto st1388; -tr3911: + goto st1406; +tr3946: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1388; -st1388: + goto st1406; +st1406: if ( ++p == pe ) - goto _test_eof1388; -case 1388: + goto _test_eof1406; +case 1406: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95477,32 +96438,32 @@ case 1388: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3912; + goto tr3947; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3911; - goto tr3324; -tr3908: + goto tr3946; + goto tr3359; +tr3943: { p--; {cs = stack[--top];goto _again;} } - goto st1559; -st1559: + goto st1577; +st1577: if ( ++p == pe ) - goto _test_eof1559; -case 1559: + goto _test_eof1577; +case 1577: goto st0; -tr3909: +tr3944: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1560; -st1560: + goto st1578; +st1578: if ( ++p == pe ) - goto _test_eof1560; -case 1560: + goto _test_eof1578; +case 1578: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95520,38 +96481,38 @@ case 1560: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1387; - case 32: goto st1387; - case 40: goto tr3904; - case 41: goto tr3905; - case 3082: goto tr3906; - case 3131: goto tr3907; - case 3338: goto tr3908; - case 3387: goto tr3908; - case 3594: goto tr3909; - case 3643: goto tr3910; + case 9: goto st1405; + case 32: goto st1405; + case 40: goto tr3939; + case 41: goto tr3940; + case 3082: goto tr3941; + case 3131: goto tr3942; + case 3338: goto tr3943; + case 3387: goto tr3943; + case 3594: goto tr3944; + case 3643: goto tr3945; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3899; + goto tr3934; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3899; + goto tr3934; } else - goto tr3899; - goto tr3324; -tr3910: + goto tr3934; + goto tr3359; +tr3945: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1561; -st1561: + goto st1579; +st1579: if ( ++p == pe ) - goto _test_eof1561; -case 1561: + goto _test_eof1579; +case 1579: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95571,40 +96532,40 @@ case 1561: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3912; + goto tr3947; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3911; - goto tr3324; -tr3901: + goto tr3946; + goto tr3359; +tr3936: { s->buffer_length = 0; } - goto st1389; -tr3913: + goto st1407; +tr3948: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1389; -tr3895: + goto st1407; +tr3930: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1389; -st1389: + goto st1407; +st1407: if ( ++p == pe ) - goto _test_eof1389; -case 1389: + goto _test_eof1407; +case 1407: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95624,40 +96585,40 @@ case 1389: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3914; + goto tr3949; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3913; + goto tr3948; goto tr77; -tr3889: +tr3924: { s->buffer_length = 0; } - goto st1390; -tr3915: + goto st1408; +tr3950: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1390; -tr3883: + goto st1408; +tr3918: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1390; -st1390: + goto st1408; +st1408: if ( ++p == pe ) - goto _test_eof1390; -case 1390: + goto _test_eof1408; +case 1408: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95677,40 +96638,40 @@ case 1390: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3916; + goto tr3951; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3915; + goto tr3950; goto tr77; -tr3877: +tr3912: { s->buffer_length = 0; } - goto st1391; -tr3917: + goto st1409; +tr3952: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1391; -tr3871: + goto st1409; +tr3906: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1391; -st1391: + goto st1409; +st1409: if ( ++p == pe ) - goto _test_eof1391; -case 1391: + goto _test_eof1409; +case 1409: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95730,18 +96691,18 @@ case 1391: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3918; + goto tr3953; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3917; + goto tr3952; goto tr77; -st1392: +st1410: if ( ++p == pe ) - goto _test_eof1392; -case 1392: + goto _test_eof1410; +case 1410: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3919; - goto tr2653; -tr3919: + goto tr3954; + goto tr2688; +tr3954: { s->number64 = 0; } @@ -95756,11 +96717,11 @@ tr3919: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1393; -tr3923: + goto st1411; +tr3958: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95772,14 +96733,14 @@ tr3923: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1393; -st1393: + goto st1411; +st1411: if ( ++p == pe ) - goto _test_eof1393; -case 1393: + goto _test_eof1411; +case 1411: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95793,40 +96754,40 @@ case 1393: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3920; - case 32: goto tr3920; - case 40: goto tr3921; - case 41: goto tr3922; - case 2058: goto tr3924; - case 2107: goto tr3925; + case 9: goto tr3955; + case 32: goto tr3955; + case 40: goto tr3956; + case 41: goto tr3957; + case 2058: goto tr3959; + case 2107: goto tr3960; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3923; - goto tr2653; -tr3927: + goto tr3958; + goto tr2688; +tr3962: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1394; -tr3928: + goto st1412; +tr3963: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1394; -tr3930: + goto st1412; +tr3965: { s->line_counter++; } - goto st1394; -tr3936: + goto st1412; +tr3971: { s->buffer[s->buffer_length++] = 0; @@ -95836,15 +96797,15 @@ tr3936: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1394; goto _out;} + {p++; cs = 1412; goto _out;} } } } { s->line_counter++; } - goto st1394; -tr3920: + goto st1412; +tr3955: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -95852,11 +96813,11 @@ tr3920: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1394; -tr3921: + goto st1412; +tr3956: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -95864,18 +96825,18 @@ tr3921: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1394; -tr3922: + goto st1412; +tr3957: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -95883,18 +96844,18 @@ tr3922: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1394; -tr3924: + goto st1412; +tr3959: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -95902,17 +96863,17 @@ tr3924: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1394; -st1394: + goto st1412; +st1412: if ( ++p == pe ) - goto _test_eof1394; -case 1394: + goto _test_eof1412; +case 1412: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95926,17 +96887,17 @@ case 1394: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1394; - case 32: goto st1394; - case 40: goto tr3927; - case 41: goto tr3928; - case 2058: goto tr3930; - case 2107: goto tr3931; + case 9: goto st1412; + case 32: goto st1412; + case 40: goto tr3962; + case 41: goto tr3963; + case 2058: goto tr3965; + case 2107: goto tr3966; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3929; - goto tr2653; -tr3929: + goto tr3964; + goto tr2688; +tr3964: { s->number64 = 0; } @@ -95951,11 +96912,11 @@ tr3929: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1395; -tr3933: + goto st1413; +tr3968: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95967,28 +96928,28 @@ tr3933: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1395; -st1395: + goto st1413; +st1413: if ( ++p == pe ) - goto _test_eof1395; -case 1395: + goto _test_eof1413; +case 1413: switch( (*p) ) { - case 32: goto tr3932; - case 59: goto tr3932; + case 32: goto tr3967; + case 59: goto tr3967; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr3932; + goto tr3967; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3933; + goto tr3968; } else - goto tr3932; - goto tr2653; -tr3932: + goto tr3967; + goto tr2688; +tr3967: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95996,48 +96957,48 @@ tr3932: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 1396;goto st559;} } - goto st1396; -st1396: + { p--; {stack[top++] = 1414;goto st571;} } + goto st1414; +st1414: if ( ++p == pe ) - goto _test_eof1396; -case 1396: + goto _test_eof1414; +case 1414: switch( (*p) ) { - case 32: goto tr3934; - case 59: goto tr3934; + case 32: goto tr3969; + case 59: goto tr3969; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3934; + goto tr3969; } else if ( (*p) >= 9 ) - goto tr3934; + goto tr3969; goto tr77; -tr3934: +tr3969: { p--; {cs = stack[--top];goto _again;} } - goto st1562; -st1562: + goto st1580; +st1580: if ( ++p == pe ) - goto _test_eof1562; -case 1562: + goto _test_eof1580; +case 1580: goto st0; -tr3931: +tr3966: { s->buffer_length = 0; } - goto st1397; -tr3935: + goto st1415; +tr3970: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1397; -tr3925: + goto st1415; +tr3960: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96045,17 +97006,17 @@ tr3925: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1397; -st1397: + goto st1415; +st1415: if ( ++p == pe ) - goto _test_eof1397; -case 1397: + goto _test_eof1415; +case 1415: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96075,18 +97036,18 @@ case 1397: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3936; + goto tr3971; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3935; + goto tr3970; goto tr77; -st1398: +st1416: if ( ++p == pe ) - goto _test_eof1398; -case 1398: + goto _test_eof1416; +case 1416: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3937; - goto tr2653; -tr3937: + goto tr3972; + goto tr2688; +tr3972: { s->number64 = 0; } @@ -96101,11 +97062,11 @@ tr3937: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1399; -tr3941: + goto st1417; +tr3976: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96117,14 +97078,14 @@ tr3941: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1399; -st1399: + goto st1417; +st1417: if ( ++p == pe ) - goto _test_eof1399; -case 1399: + goto _test_eof1417; +case 1417: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96138,40 +97099,40 @@ case 1399: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3938; - case 32: goto tr3938; - case 40: goto tr3939; - case 41: goto tr3940; - case 2058: goto tr3942; - case 2107: goto tr3943; + case 9: goto tr3973; + case 32: goto tr3973; + case 40: goto tr3974; + case 41: goto tr3975; + case 2058: goto tr3977; + case 2107: goto tr3978; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3941; - goto tr2653; -tr3945: + goto tr3976; + goto tr2688; +tr3980: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1400; -tr3946: + goto st1418; +tr3981: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1400; -tr3948: + goto st1418; +tr3983: { s->line_counter++; } - goto st1400; -tr3990: + goto st1418; +tr4025: { s->buffer[s->buffer_length++] = 0; @@ -96181,15 +97142,15 @@ tr3990: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1400; goto _out;} + {p++; cs = 1418; goto _out;} } } } { s->line_counter++; } - goto st1400; -tr3938: + goto st1418; +tr3973: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96197,11 +97158,11 @@ tr3938: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1400; -tr3939: + goto st1418; +tr3974: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96209,18 +97170,18 @@ tr3939: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1400; -tr3940: + goto st1418; +tr3975: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96228,18 +97189,18 @@ tr3940: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1400; -tr3942: + goto st1418; +tr3977: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96247,17 +97208,17 @@ tr3942: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1400; -st1400: + goto st1418; +st1418: if ( ++p == pe ) - goto _test_eof1400; -case 1400: + goto _test_eof1418; +case 1418: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96271,17 +97232,17 @@ case 1400: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1400; - case 32: goto st1400; - case 40: goto tr3945; - case 41: goto tr3946; - case 2058: goto tr3948; - case 2107: goto tr3949; + case 9: goto st1418; + case 32: goto st1418; + case 40: goto tr3980; + case 41: goto tr3981; + case 2058: goto tr3983; + case 2107: goto tr3984; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3947; - goto tr2653; -tr3947: + goto tr3982; + goto tr2688; +tr3982: { s->number64 = 0; } @@ -96296,11 +97257,11 @@ tr3947: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1401; -tr3953: + goto st1419; +tr3988: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96312,14 +97273,14 @@ tr3953: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1401; -st1401: + goto st1419; +st1419: if ( ++p == pe ) - goto _test_eof1401; -case 1401: + goto _test_eof1419; +case 1419: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96333,40 +97294,40 @@ case 1401: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3950; - case 32: goto tr3950; - case 40: goto tr3951; - case 41: goto tr3952; - case 2058: goto tr3954; - case 2107: goto tr3955; + case 9: goto tr3985; + case 32: goto tr3985; + case 40: goto tr3986; + case 41: goto tr3987; + case 2058: goto tr3989; + case 2107: goto tr3990; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3953; - goto tr2653; -tr3957: + goto tr3988; + goto tr2688; +tr3992: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1402; -tr3958: + goto st1420; +tr3993: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1402; -tr3960: + goto st1420; +tr3995: { s->line_counter++; } - goto st1402; -tr3988: + goto st1420; +tr4023: { s->buffer[s->buffer_length++] = 0; @@ -96376,79 +97337,79 @@ tr3988: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1402; goto _out;} + {p++; cs = 1420; goto _out;} } } } { s->line_counter++; } - goto st1402; -tr3950: + goto st1420; +tr3985: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1402; -tr3951: + goto st1420; +tr3986: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1402; -tr3952: + goto st1420; +tr3987: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1402; -tr3954: + goto st1420; +tr3989: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1402; -st1402: + goto st1420; +st1420: if ( ++p == pe ) - goto _test_eof1402; -case 1402: + goto _test_eof1420; +case 1420: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96462,17 +97423,17 @@ case 1402: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1402; - case 32: goto st1402; - case 40: goto tr3957; - case 41: goto tr3958; - case 2058: goto tr3960; - case 2107: goto tr3961; + case 9: goto st1420; + case 32: goto st1420; + case 40: goto tr3992; + case 41: goto tr3993; + case 2058: goto tr3995; + case 2107: goto tr3996; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3959; - goto tr2653; -tr3959: + goto tr3994; + goto tr2688; +tr3994: { s->number64 = 0; } @@ -96487,11 +97448,11 @@ tr3959: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1403; -tr3965: + goto st1421; +tr4000: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96503,14 +97464,14 @@ tr3965: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1403; -st1403: + goto st1421; +st1421: if ( ++p == pe ) - goto _test_eof1403; -case 1403: + goto _test_eof1421; +case 1421: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96524,40 +97485,40 @@ case 1403: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3962; - case 32: goto tr3962; - case 40: goto tr3963; - case 41: goto tr3964; - case 2058: goto tr3966; - case 2107: goto tr3967; + case 9: goto tr3997; + case 32: goto tr3997; + case 40: goto tr3998; + case 41: goto tr3999; + case 2058: goto tr4001; + case 2107: goto tr4002; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3965; - goto tr2653; -tr3969: + goto tr4000; + goto tr2688; +tr4004: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1404; -tr3970: + goto st1422; +tr4005: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1404; -tr3972: + goto st1422; +tr4007: { s->line_counter++; } - goto st1404; -tr3986: + goto st1422; +tr4021: { s->buffer[s->buffer_length++] = 0; @@ -96567,79 +97528,79 @@ tr3986: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1404; goto _out;} + {p++; cs = 1422; goto _out;} } } } { s->line_counter++; } - goto st1404; -tr3962: + goto st1422; +tr3997: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1404; -tr3963: + goto st1422; +tr3998: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1404; -tr3964: + goto st1422; +tr3999: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1404; -tr3966: + goto st1422; +tr4001: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1404; -st1404: + goto st1422; +st1422: if ( ++p == pe ) - goto _test_eof1404; -case 1404: + goto _test_eof1422; +case 1422: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96653,69 +97614,69 @@ case 1404: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1404; - case 32: goto st1404; - case 40: goto tr3969; - case 41: goto tr3970; - case 2058: goto tr3972; - case 2107: goto tr3973; + case 9: goto st1422; + case 32: goto st1422; + case 40: goto tr4004; + case 41: goto tr4005; + case 2058: goto tr4007; + case 2107: goto tr4008; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3971; + goto tr4006; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3971; + goto tr4006; } else - goto tr3971; - goto tr3324; -tr3971: + goto tr4006; + goto tr3359; +tr4006: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1405; -st1405: + goto st1423; +st1423: if ( ++p == pe ) - goto _test_eof1405; -case 1405: + goto _test_eof1423; +case 1423: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3974; + goto tr4009; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3974; + goto tr4009; } else - goto tr3974; - goto tr3324; -tr3976: + goto tr4009; + goto tr3359; +tr4011: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1406; -tr3977: + goto st1424; +tr4012: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1406; -tr3978: + goto st1424; +tr4013: { s->line_counter++; } - goto st1406; -tr3984: + goto st1424; +tr4019: { s->buffer[s->buffer_length++] = 0; @@ -96725,24 +97686,24 @@ tr3984: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1406; goto _out;} + {p++; cs = 1424; goto _out;} } } } { s->line_counter++; } - goto st1406; -tr3974: + goto st1424; +tr4009: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1406; -st1406: + goto st1424; +st1424: if ( ++p == pe ) - goto _test_eof1406; -case 1406: + goto _test_eof1424; +case 1424: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96760,42 +97721,42 @@ case 1406: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1406; - case 32: goto st1406; - case 40: goto tr3976; - case 41: goto tr3977; - case 3082: goto tr3978; - case 3131: goto tr3979; - case 3338: goto tr3980; - case 3387: goto tr3980; - case 3594: goto tr3981; - case 3643: goto tr3982; + case 9: goto st1424; + case 32: goto st1424; + case 40: goto tr4011; + case 41: goto tr4012; + case 3082: goto tr4013; + case 3131: goto tr4014; + case 3338: goto tr4015; + case 3387: goto tr4015; + case 3594: goto tr4016; + case 3643: goto tr4017; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3971; + goto tr4006; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3971; + goto tr4006; } else - goto tr3971; - goto tr3324; -tr3979: + goto tr4006; + goto tr3359; +tr4014: { s->buffer_length = 0; } - goto st1407; -tr3983: + goto st1425; +tr4018: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1407; -st1407: + goto st1425; +st1425: if ( ++p == pe ) - goto _test_eof1407; -case 1407: + goto _test_eof1425; +case 1425: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96815,32 +97776,32 @@ case 1407: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3984; + goto tr4019; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3983; - goto tr3324; -tr3980: + goto tr4018; + goto tr3359; +tr4015: { p--; {cs = stack[--top];goto _again;} } - goto st1563; -st1563: + goto st1581; +st1581: if ( ++p == pe ) - goto _test_eof1563; -case 1563: + goto _test_eof1581; +case 1581: goto st0; -tr3981: +tr4016: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1564; -st1564: + goto st1582; +st1582: if ( ++p == pe ) - goto _test_eof1564; -case 1564: + goto _test_eof1582; +case 1582: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96858,38 +97819,38 @@ case 1564: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1406; - case 32: goto st1406; - case 40: goto tr3976; - case 41: goto tr3977; - case 3082: goto tr3978; - case 3131: goto tr3979; - case 3338: goto tr3980; - case 3387: goto tr3980; - case 3594: goto tr3981; - case 3643: goto tr3982; + case 9: goto st1424; + case 32: goto st1424; + case 40: goto tr4011; + case 41: goto tr4012; + case 3082: goto tr4013; + case 3131: goto tr4014; + case 3338: goto tr4015; + case 3387: goto tr4015; + case 3594: goto tr4016; + case 3643: goto tr4017; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3971; + goto tr4006; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3971; + goto tr4006; } else - goto tr3971; - goto tr3324; -tr3982: + goto tr4006; + goto tr3359; +tr4017: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1565; -st1565: + goto st1583; +st1583: if ( ++p == pe ) - goto _test_eof1565; -case 1565: + goto _test_eof1583; +case 1583: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96909,40 +97870,40 @@ case 1565: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3984; + goto tr4019; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3983; - goto tr3324; -tr3973: + goto tr4018; + goto tr3359; +tr4008: { s->buffer_length = 0; } - goto st1408; -tr3985: + goto st1426; +tr4020: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1408; -tr3967: + goto st1426; +tr4002: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1408; -st1408: + goto st1426; +st1426: if ( ++p == pe ) - goto _test_eof1408; -case 1408: + goto _test_eof1426; +case 1426: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96962,40 +97923,40 @@ case 1408: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3986; + goto tr4021; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3985; + goto tr4020; goto tr77; -tr3961: +tr3996: { s->buffer_length = 0; } - goto st1409; -tr3987: + goto st1427; +tr4022: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1409; -tr3955: + goto st1427; +tr3990: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1409; -st1409: + goto st1427; +st1427: if ( ++p == pe ) - goto _test_eof1409; -case 1409: + goto _test_eof1427; +case 1427: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97015,23 +97976,23 @@ case 1409: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3988; + goto tr4023; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3987; + goto tr4022; goto tr77; -tr3949: +tr3984: { s->buffer_length = 0; } - goto st1410; -tr3989: + goto st1428; +tr4024: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1410; -tr3943: + goto st1428; +tr3978: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -97039,17 +98000,17 @@ tr3943: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1410; -st1410: + goto st1428; +st1428: if ( ++p == pe ) - goto _test_eof1410; -case 1410: + goto _test_eof1428; +case 1428: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97069,18 +98030,18 @@ case 1410: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3990; + goto tr4025; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3989; + goto tr4024; goto tr77; -st1411: +st1429: if ( ++p == pe ) - goto _test_eof1411; -case 1411: + goto _test_eof1429; +case 1429: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3991; - goto tr2653; -tr3991: + goto tr4026; + goto tr2688; +tr4026: { s->number64 = 0; } @@ -97095,11 +98056,11 @@ tr3991: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1412; -tr3995: + goto st1430; +tr4030: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97111,14 +98072,14 @@ tr3995: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1412; -st1412: + goto st1430; +st1430: if ( ++p == pe ) - goto _test_eof1412; -case 1412: + goto _test_eof1430; +case 1430: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97132,40 +98093,40 @@ case 1412: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3992; - case 32: goto tr3992; - case 40: goto tr3993; - case 41: goto tr3994; - case 2058: goto tr3996; - case 2107: goto tr3997; + case 9: goto tr4027; + case 32: goto tr4027; + case 40: goto tr4028; + case 41: goto tr4029; + case 2058: goto tr4031; + case 2107: goto tr4032; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3995; - goto tr2653; -tr3999: + goto tr4030; + goto tr2688; +tr4034: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1413; -tr4000: + goto st1431; +tr4035: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1413; -tr4002: + goto st1431; +tr4037: { s->line_counter++; } - goto st1413; -tr4007: + goto st1431; +tr4042: { s->buffer[s->buffer_length++] = 0; @@ -97175,15 +98136,15 @@ tr4007: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1413; goto _out;} + {p++; cs = 1431; goto _out;} } } } { s->line_counter++; } - goto st1413; -tr3992: + goto st1431; +tr4027: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97191,11 +98152,11 @@ tr3992: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1413; -tr3993: + goto st1431; +tr4028: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97203,18 +98164,18 @@ tr3993: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1413; -tr3994: + goto st1431; +tr4029: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97222,18 +98183,18 @@ tr3994: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1413; -tr3996: + goto st1431; +tr4031: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97241,17 +98202,17 @@ tr3996: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1413; -st1413: + goto st1431; +st1431: if ( ++p == pe ) - goto _test_eof1413; -case 1413: + goto _test_eof1431; +case 1431: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97265,28 +98226,28 @@ case 1413: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1413; - case 32: goto st1413; - case 40: goto tr3999; - case 41: goto tr4000; - case 46: goto tr4001; - case 2058: goto tr4002; - case 2107: goto tr4003; + case 9: goto st1431; + case 32: goto st1431; + case 40: goto tr4034; + case 41: goto tr4035; + case 46: goto tr4036; + case 2058: goto tr4037; + case 2107: goto tr4038; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4001; - goto tr2630; -tr4005: + goto tr4036; + goto tr2665; +tr4040: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1414; -tr4001: + goto st1432; +tr4036: { s->buffer_length = 0; } @@ -97295,41 +98256,41 @@ tr4001: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1414; -st1414: + goto st1432; +st1432: if ( ++p == pe ) - goto _test_eof1414; -case 1414: + goto _test_eof1432; +case 1432: switch( (*p) ) { - case 32: goto tr4004; - case 46: goto tr4005; - case 59: goto tr4004; + case 32: goto tr4039; + case 46: goto tr4040; + case 59: goto tr4039; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr4004; + goto tr4039; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4005; + goto tr4040; } else - goto tr4004; - goto tr2630; -tr4004: + goto tr4039; + goto tr2665; +tr4039: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st319;} + p--; {goto st325;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -97337,25 +98298,25 @@ tr4004: { p--; {cs = stack[--top];goto _again;} } - goto st1566; -st1566: + goto st1584; +st1584: if ( ++p == pe ) - goto _test_eof1566; -case 1566: + goto _test_eof1584; +case 1584: goto st0; -tr4003: +tr4038: { s->buffer_length = 0; } - goto st1415; -tr4006: + goto st1433; +tr4041: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1415; -tr3997: + goto st1433; +tr4032: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97363,17 +98324,17 @@ tr3997: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1415; -st1415: + goto st1433; +st1433: if ( ++p == pe ) - goto _test_eof1415; -case 1415: + goto _test_eof1433; +case 1433: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97393,18 +98354,18 @@ case 1415: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4007; + goto tr4042; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4006; + goto tr4041; goto tr77; -st1416: +st1434: if ( ++p == pe ) - goto _test_eof1416; -case 1416: + goto _test_eof1434; +case 1434: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4008; - goto tr2653; -tr4008: + goto tr4043; + goto tr2688; +tr4043: { s->number64 = 0; } @@ -97419,11 +98380,11 @@ tr4008: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1417; -tr4012: + goto st1435; +tr4047: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97435,14 +98396,14 @@ tr4012: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1417; -st1417: + goto st1435; +st1435: if ( ++p == pe ) - goto _test_eof1417; -case 1417: + goto _test_eof1435; +case 1435: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97456,40 +98417,40 @@ case 1417: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4009; - case 32: goto tr4009; - case 40: goto tr4010; - case 41: goto tr4011; - case 2058: goto tr4013; - case 2107: goto tr4014; + case 9: goto tr4044; + case 32: goto tr4044; + case 40: goto tr4045; + case 41: goto tr4046; + case 2058: goto tr4048; + case 2107: goto tr4049; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4012; - goto tr2653; -tr4016: + goto tr4047; + goto tr2688; +tr4051: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1418; -tr4017: + goto st1436; +tr4052: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1418; -tr4019: + goto st1436; +tr4054: { s->line_counter++; } - goto st1418; -tr4033: + goto st1436; +tr4068: { s->buffer[s->buffer_length++] = 0; @@ -97499,15 +98460,15 @@ tr4033: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1418; goto _out;} + {p++; cs = 1436; goto _out;} } } } { s->line_counter++; } - goto st1418; -tr4009: + goto st1436; +tr4044: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97515,11 +98476,11 @@ tr4009: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1418; -tr4010: + goto st1436; +tr4045: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97527,18 +98488,18 @@ tr4010: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1418; -tr4011: + goto st1436; +tr4046: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97546,18 +98507,18 @@ tr4011: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1418; -tr4013: + goto st1436; +tr4048: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97565,17 +98526,17 @@ tr4013: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1418; -st1418: + goto st1436; +st1436: if ( ++p == pe ) - goto _test_eof1418; -case 1418: + goto _test_eof1436; +case 1436: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97589,23 +98550,23 @@ case 1418: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1418; - case 32: goto st1418; - case 40: goto tr4016; - case 41: goto tr4017; - case 2058: goto tr4019; - case 2107: goto tr4020; + case 9: goto st1436; + case 32: goto st1436; + case 40: goto tr4051; + case 41: goto tr4052; + case 2058: goto tr4054; + case 2107: goto tr4055; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4018; + goto tr4053; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4018; + goto tr4053; } else - goto tr4018; - goto tr3324; -tr4018: + goto tr4053; + goto tr3359; +tr4053: { s->item_length = 0; } @@ -97614,214 +98575,214 @@ tr4018: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1419; -st1419: + goto st1437; +st1437: if ( ++p == pe ) - goto _test_eof1419; -case 1419: + goto _test_eof1437; +case 1437: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4021; + goto tr4056; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4021; + goto tr4056; } else - goto tr4021; - goto tr3324; -tr4021: + goto tr4056; + goto tr3359; +tr4056: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1420; -st1420: + goto st1438; +st1438: if ( ++p == pe ) - goto _test_eof1420; -case 1420: + goto _test_eof1438; +case 1438: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4022; + goto tr4057; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4022; + goto tr4057; } else - goto tr4022; - goto tr3324; -tr4022: + goto tr4057; + goto tr3359; +tr4057: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1421; -st1421: + goto st1439; +st1439: if ( ++p == pe ) - goto _test_eof1421; -case 1421: + goto _test_eof1439; +case 1439: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4023; + goto tr4058; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4023; + goto tr4058; } else - goto tr4023; - goto tr3324; -tr4023: + goto tr4058; + goto tr3359; +tr4058: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1422; -st1422: + goto st1440; +st1440: if ( ++p == pe ) - goto _test_eof1422; -case 1422: + goto _test_eof1440; +case 1440: if ( (*p) == 58 ) - goto tr4025; - goto tr4024; -tr4025: + goto tr4060; + goto tr4059; +tr4060: { s->item_length++; } - goto st1423; -st1423: + goto st1441; +st1441: if ( ++p == pe ) - goto _test_eof1423; -case 1423: + goto _test_eof1441; +case 1441: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4026; + goto tr4061; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4026; + goto tr4061; } else - goto tr4026; - goto tr3324; -tr4026: + goto tr4061; + goto tr3359; +tr4061: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1424; -st1424: + goto st1442; +st1442: if ( ++p == pe ) - goto _test_eof1424; -case 1424: + goto _test_eof1442; +case 1442: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4027; + goto tr4062; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4027; + goto tr4062; } else - goto tr4027; - goto tr3324; -tr4027: + goto tr4062; + goto tr3359; +tr4062: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1425; -st1425: + goto st1443; +st1443: if ( ++p == pe ) - goto _test_eof1425; -case 1425: + goto _test_eof1443; +case 1443: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4028; + goto tr4063; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4028; + goto tr4063; } else - goto tr4028; - goto tr3324; -tr4028: + goto tr4063; + goto tr3359; +tr4063: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1426; -st1426: + goto st1444; +st1444: if ( ++p == pe ) - goto _test_eof1426; -case 1426: + goto _test_eof1444; +case 1444: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4029; + goto tr4064; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4029; + goto tr4064; } else - goto tr4029; - goto tr3324; -tr4029: + goto tr4064; + goto tr3359; +tr4064: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1427; -st1427: + goto st1445; +st1445: if ( ++p == pe ) - goto _test_eof1427; -case 1427: + goto _test_eof1445; +case 1445: switch( (*p) ) { - case 32: goto tr4031; - case 58: goto tr4025; - case 59: goto tr4031; + case 32: goto tr4066; + case 58: goto tr4060; + case 59: goto tr4066; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4031; + goto tr4066; } else if ( (*p) >= 9 ) - goto tr4031; - goto tr4030; -tr4031: + goto tr4066; + goto tr4065; +tr4066: { s->item_length++; } { if (s->item_length != 4) { WARN(ZS_BAD_L64_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1567; -st1567: + goto st1585; +st1585: if ( ++p == pe ) - goto _test_eof1567; -case 1567: + goto _test_eof1585; +case 1585: goto st0; -tr4020: +tr4055: { s->buffer_length = 0; } - goto st1428; -tr4032: + goto st1446; +tr4067: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1428; -tr4014: + goto st1446; +tr4049: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -97829,17 +98790,17 @@ tr4014: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1428; -st1428: + goto st1446; +st1446: if ( ++p == pe ) - goto _test_eof1428; -case 1428: + goto _test_eof1446; +case 1446: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97859,24 +98820,24 @@ case 1428: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4033; + goto tr4068; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4032; + goto tr4067; goto tr77; -st1429: +st1447: if ( ++p == pe ) - goto _test_eof1429; -case 1429: + goto _test_eof1447; +case 1447: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4034; + goto tr4069; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4034; + goto tr4069; } else - goto tr4034; - goto tr3324; -tr4034: + goto tr4069; + goto tr3359; +tr4069: { s->item_length = 0; } @@ -97885,131 +98846,131 @@ tr4034: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1430; -st1430: + goto st1448; +st1448: if ( ++p == pe ) - goto _test_eof1430; -case 1430: + goto _test_eof1448; +case 1448: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4035; + goto tr4070; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4035; + goto tr4070; } else - goto tr4035; - goto tr3324; -tr4035: + goto tr4070; + goto tr3359; +tr4070: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1431; -st1431: + goto st1449; +st1449: if ( ++p == pe ) - goto _test_eof1431; -case 1431: + goto _test_eof1449; +case 1449: if ( (*p) == 45 ) - goto tr4037; - goto tr4036; -tr4037: + goto tr4072; + goto tr4071; +tr4072: { s->item_length++; } - goto st1432; -st1432: + goto st1450; +st1450: if ( ++p == pe ) - goto _test_eof1432; -case 1432: + goto _test_eof1450; +case 1450: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4038; + goto tr4073; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4038; + goto tr4073; } else - goto tr4038; - goto tr3324; -tr4038: + goto tr4073; + goto tr3359; +tr4073: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1433; -st1433: + goto st1451; +st1451: if ( ++p == pe ) - goto _test_eof1433; -case 1433: + goto _test_eof1451; +case 1451: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4039; + goto tr4074; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4039; + goto tr4074; } else - goto tr4039; - goto tr3324; -tr4039: + goto tr4074; + goto tr3359; +tr4074: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1434; -st1434: + goto st1452; +st1452: if ( ++p == pe ) - goto _test_eof1434; -case 1434: + goto _test_eof1452; +case 1452: switch( (*p) ) { - case 32: goto tr4040; - case 45: goto tr4037; - case 59: goto tr4040; + case 32: goto tr4075; + case 45: goto tr4072; + case 59: goto tr4075; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4040; + goto tr4075; } else if ( (*p) >= 9 ) - goto tr4040; - goto tr4036; -tr4040: + goto tr4075; + goto tr4071; +tr4075: { s->item_length++; } { if (s->item_length != 6) { WARN(ZS_BAD_EUI_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1568; -st1568: + goto st1586; +st1586: if ( ++p == pe ) - goto _test_eof1568; -case 1568: + goto _test_eof1586; +case 1586: goto st0; -st1435: +st1453: if ( ++p == pe ) - goto _test_eof1435; -case 1435: + goto _test_eof1453; +case 1453: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4041; + goto tr4076; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4041; + goto tr4076; } else - goto tr4041; - goto tr3324; -tr4041: + goto tr4076; + goto tr3359; +tr4076: { s->item_length = 0; } @@ -98018,125 +98979,125 @@ tr4041: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1436; -st1436: + goto st1454; +st1454: if ( ++p == pe ) - goto _test_eof1436; -case 1436: + goto _test_eof1454; +case 1454: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4042; + goto tr4077; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4042; + goto tr4077; } else - goto tr4042; - goto tr3324; -tr4042: + goto tr4077; + goto tr3359; +tr4077: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1437; -st1437: + goto st1455; +st1455: if ( ++p == pe ) - goto _test_eof1437; -case 1437: + goto _test_eof1455; +case 1455: if ( (*p) == 45 ) - goto tr4043; - goto tr4036; -tr4043: + goto tr4078; + goto tr4071; +tr4078: { s->item_length++; } - goto st1438; -st1438: + goto st1456; +st1456: if ( ++p == pe ) - goto _test_eof1438; -case 1438: + goto _test_eof1456; +case 1456: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4044; + goto tr4079; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4044; + goto tr4079; } else - goto tr4044; - goto tr3324; -tr4044: + goto tr4079; + goto tr3359; +tr4079: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1439; -st1439: + goto st1457; +st1457: if ( ++p == pe ) - goto _test_eof1439; -case 1439: + goto _test_eof1457; +case 1457: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4045; + goto tr4080; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4045; + goto tr4080; } else - goto tr4045; - goto tr3324; -tr4045: + goto tr4080; + goto tr3359; +tr4080: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1440; -st1440: + goto st1458; +st1458: if ( ++p == pe ) - goto _test_eof1440; -case 1440: + goto _test_eof1458; +case 1458: switch( (*p) ) { - case 32: goto tr4046; - case 45: goto tr4043; - case 59: goto tr4046; + case 32: goto tr4081; + case 45: goto tr4078; + case 59: goto tr4081; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4046; + goto tr4081; } else if ( (*p) >= 9 ) - goto tr4046; - goto tr4036; -tr4046: + goto tr4081; + goto tr4071; +tr4081: { s->item_length++; } { if (s->item_length != 8) { WARN(ZS_BAD_EUI_LENGTH); - p--; {goto st319;} + p--; {goto st325;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1569; -st1569: + goto st1587; +st1587: if ( ++p == pe ) - goto _test_eof1569; -case 1569: + goto _test_eof1587; +case 1587: goto st0; -st1441: +st1459: if ( ++p == pe ) - goto _test_eof1441; -case 1441: + goto _test_eof1459; +case 1459: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4047; - goto tr2653; -tr4047: + goto tr4082; + goto tr2688; +tr4082: { s->number64 = 0; } @@ -98151,11 +99112,11 @@ tr4047: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1442; -tr4051: + goto st1460; +tr4086: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98167,14 +99128,14 @@ tr4051: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1442; -st1442: + goto st1460; +st1460: if ( ++p == pe ) - goto _test_eof1442; -case 1442: + goto _test_eof1460; +case 1460: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98188,40 +99149,40 @@ case 1442: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4048; - case 32: goto tr4048; - case 40: goto tr4049; - case 41: goto tr4050; - case 2058: goto tr4052; - case 2107: goto tr4053; + case 9: goto tr4083; + case 32: goto tr4083; + case 40: goto tr4084; + case 41: goto tr4085; + case 2058: goto tr4087; + case 2107: goto tr4088; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4051; - goto tr2653; -tr4055: + goto tr4086; + goto tr2688; +tr4090: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1443; -tr4056: + goto st1461; +tr4091: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1443; -tr4058: + goto st1461; +tr4093: { s->line_counter++; } - goto st1443; -tr4076: + goto st1461; +tr4111: { s->buffer[s->buffer_length++] = 0; @@ -98231,15 +99192,15 @@ tr4076: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1443; goto _out;} + {p++; cs = 1461; goto _out;} } } } { s->line_counter++; } - goto st1443; -tr4048: + goto st1461; +tr4083: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98247,11 +99208,11 @@ tr4048: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1443; -tr4049: + goto st1461; +tr4084: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98259,18 +99220,18 @@ tr4049: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1443; -tr4050: + goto st1461; +tr4085: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98278,18 +99239,18 @@ tr4050: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1443; -tr4052: + goto st1461; +tr4087: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98297,17 +99258,17 @@ tr4052: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1443; -st1443: + goto st1461; +st1461: if ( ++p == pe ) - goto _test_eof1443; -case 1443: + goto _test_eof1461; +case 1461: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98321,17 +99282,17 @@ case 1443: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1443; - case 32: goto st1443; - case 40: goto tr4055; - case 41: goto tr4056; - case 2058: goto tr4058; - case 2107: goto tr4059; + case 9: goto st1461; + case 32: goto st1461; + case 40: goto tr4090; + case 41: goto tr4091; + case 2058: goto tr4093; + case 2107: goto tr4094; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4057; - goto tr2653; -tr4057: + goto tr4092; + goto tr2688; +tr4092: { s->number64 = 0; } @@ -98346,11 +99307,11 @@ tr4057: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1444; -tr4063: + goto st1462; +tr4098: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98362,14 +99323,14 @@ tr4063: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1444; -st1444: + goto st1462; +st1462: if ( ++p == pe ) - goto _test_eof1444; -case 1444: + goto _test_eof1462; +case 1462: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98383,40 +99344,40 @@ case 1444: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4060; - case 32: goto tr4060; - case 40: goto tr4061; - case 41: goto tr4062; - case 2058: goto tr4064; - case 2107: goto tr4065; + case 9: goto tr4095; + case 32: goto tr4095; + case 40: goto tr4096; + case 41: goto tr4097; + case 2058: goto tr4099; + case 2107: goto tr4100; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4063; - goto tr2653; -tr4068: + goto tr4098; + goto tr2688; +tr4103: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1445; -tr4069: + goto st1463; +tr4104: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1445; -tr4070: + goto st1463; +tr4105: { s->line_counter++; } - goto st1445; -tr4074: + goto st1463; +tr4109: { s->buffer[s->buffer_length++] = 0; @@ -98426,15 +99387,15 @@ tr4074: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1445; goto _out;} + {p++; cs = 1463; goto _out;} } } } { s->line_counter++; } - goto st1445; -tr4060: + goto st1463; +tr4095: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98442,11 +99403,11 @@ tr4060: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1445; -tr4061: + goto st1463; +tr4096: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98454,18 +99415,18 @@ tr4061: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1445; -tr4062: + goto st1463; +tr4097: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98473,18 +99434,18 @@ tr4062: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1445; -tr4064: + goto st1463; +tr4099: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98492,17 +99453,17 @@ tr4064: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1445; -st1445: + goto st1463; +st1463: if ( ++p == pe ) - goto _test_eof1445; -case 1445: + goto _test_eof1463; +case 1463: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98516,62 +99477,62 @@ case 1445: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1445; - case 32: goto st1445; - case 40: goto tr4068; - case 41: goto tr4069; - case 2058: goto tr4070; - case 2107: goto tr4071; + case 9: goto st1463; + case 32: goto st1463; + case 40: goto tr4103; + case 41: goto tr4104; + case 2058: goto tr4105; + case 2107: goto tr4106; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4066; + goto tr4101; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4066; + goto tr4101; } else - goto tr4066; + goto tr4101; goto tr77; -tr4066: - { p--; {stack[top++] = 1446;goto st330;} } - goto st1446; -st1446: +tr4101: + { p--; {stack[top++] = 1464;goto st336;} } + goto st1464; +st1464: if ( ++p == pe ) - goto _test_eof1446; -case 1446: + goto _test_eof1464; +case 1464: switch( (*p) ) { - case 32: goto tr4072; - case 59: goto tr4072; + case 32: goto tr4107; + case 59: goto tr4107; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4072; + goto tr4107; } else if ( (*p) >= 9 ) - goto tr4072; + goto tr4107; goto tr77; -tr4072: +tr4107: { p--; {cs = stack[--top];goto _again;} } - goto st1570; -st1570: + goto st1588; +st1588: if ( ++p == pe ) - goto _test_eof1570; -case 1570: + goto _test_eof1588; +case 1588: goto st0; -tr4071: +tr4106: { s->buffer_length = 0; } - goto st1447; -tr4073: + goto st1465; +tr4108: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1447; -tr4065: + goto st1465; +tr4100: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98579,17 +99540,17 @@ tr4065: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1447; -st1447: + goto st1465; +st1465: if ( ++p == pe ) - goto _test_eof1447; -case 1447: + goto _test_eof1465; +case 1465: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -98609,23 +99570,23 @@ case 1447: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4074; + goto tr4109; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4073; + goto tr4108; goto tr77; -tr4059: +tr4094: { s->buffer_length = 0; } - goto st1448; -tr4075: + goto st1466; +tr4110: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1448; -tr4053: + goto st1466; +tr4088: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98633,17 +99594,17 @@ tr4053: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1448; -st1448: + goto st1466; +st1466: if ( ++p == pe ) - goto _test_eof1448; -case 1448: + goto _test_eof1466; +case 1466: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -98663,18 +99624,18 @@ case 1448: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4076; + goto tr4111; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4075; + goto tr4110; goto tr77; -st1449: +st1467: if ( ++p == pe ) - goto _test_eof1449; -case 1449: + goto _test_eof1467; +case 1467: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4077; - goto tr2653; -tr4077: + goto tr4112; + goto tr2688; +tr4112: { s->number64 = 0; } @@ -98689,11 +99650,11 @@ tr4077: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1450; -tr4081: + goto st1468; +tr4116: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98705,14 +99666,14 @@ tr4081: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1450; -st1450: + goto st1468; +st1468: if ( ++p == pe ) - goto _test_eof1450; -case 1450: + goto _test_eof1468; +case 1468: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98726,40 +99687,40 @@ case 1450: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4078; - case 32: goto tr4078; - case 40: goto tr4079; - case 41: goto tr4080; - case 2058: goto tr4082; - case 2107: goto tr4083; + case 9: goto tr4113; + case 32: goto tr4113; + case 40: goto tr4114; + case 41: goto tr4115; + case 2058: goto tr4117; + case 2107: goto tr4118; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4081; - goto tr2653; -tr4086: + goto tr4116; + goto tr2688; +tr4121: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1451; -tr4087: + goto st1469; +tr4122: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1451; -tr4088: + goto st1469; +tr4123: { s->line_counter++; } - goto st1451; -tr4105: + goto st1469; +tr4140: { s->buffer[s->buffer_length++] = 0; @@ -98769,79 +99730,79 @@ tr4105: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1451; goto _out;} + {p++; cs = 1469; goto _out;} } } } { s->line_counter++; } - goto st1451; -tr4078: + goto st1469; +tr4113: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1451; -tr4079: + goto st1469; +tr4114: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1451; -tr4080: + goto st1469; +tr4115: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1451; -tr4082: + goto st1469; +tr4117: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1451; -st1451: + goto st1469; +st1469: if ( ++p == pe ) - goto _test_eof1451; -case 1451: + goto _test_eof1469; +case 1469: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98855,37 +99816,37 @@ case 1451: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1451; - case 32: goto st1451; - case 40: goto tr4086; - case 41: goto tr4087; - case 2058: goto tr4088; - case 2107: goto tr4089; + case 9: goto st1469; + case 32: goto st1469; + case 40: goto tr4121; + case 41: goto tr4122; + case 2058: goto tr4123; + case 2107: goto tr4124; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4084; + goto tr4119; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4084; + goto tr4119; } else - goto tr4084; + goto tr4119; goto tr77; -tr4084: +tr4119: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - { p--; {stack[top++] = 1452;goto st330;} } - goto st1452; -st1452: + { p--; {stack[top++] = 1470;goto st336;} } + goto st1470; +st1470: if ( ++p == pe ) - goto _test_eof1452; -case 1452: + goto _test_eof1470; +case 1470: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98899,38 +99860,38 @@ case 1452: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4090; - case 32: goto tr4090; - case 40: goto tr4091; - case 41: goto tr4092; - case 2058: goto tr4093; - case 2107: goto tr4094; + case 9: goto tr4125; + case 32: goto tr4125; + case 40: goto tr4126; + case 41: goto tr4127; + case 2058: goto tr4128; + case 2107: goto tr4129; } goto tr77; -tr4097: +tr4132: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1453; -tr4098: + goto st1471; +tr4133: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1453; -tr4099: + goto st1471; +tr4134: { s->line_counter++; } - goto st1453; -tr4103: + goto st1471; +tr4138: { s->buffer[s->buffer_length++] = 0; @@ -98940,95 +99901,95 @@ tr4103: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1453; goto _out;} + {p++; cs = 1471; goto _out;} } } } { s->line_counter++; } - goto st1453; -tr4090: + goto st1471; +tr4125: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1453; -tr4091: + goto st1471; +tr4126: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1453; -tr4092: + goto st1471; +tr4127: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1453; -tr4093: + goto st1471; +tr4128: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1453; -st1453: + goto st1471; +st1471: if ( ++p == pe ) - goto _test_eof1453; -case 1453: + goto _test_eof1471; +case 1471: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99042,83 +100003,83 @@ case 1453: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1453; - case 32: goto st1453; - case 40: goto tr4097; - case 41: goto tr4098; - case 2058: goto tr4099; - case 2107: goto tr4100; + case 9: goto st1471; + case 32: goto st1471; + case 40: goto tr4132; + case 41: goto tr4133; + case 2058: goto tr4134; + case 2107: goto tr4135; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4095; + goto tr4130; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4095; + goto tr4130; } else - goto tr4095; + goto tr4130; goto tr77; -tr4095: - { p--; {stack[top++] = 1454;goto st330;} } - goto st1454; -st1454: +tr4130: + { p--; {stack[top++] = 1472;goto st336;} } + goto st1472; +st1472: if ( ++p == pe ) - goto _test_eof1454; -case 1454: + goto _test_eof1472; +case 1472: switch( (*p) ) { - case 32: goto tr4101; - case 59: goto tr4101; + case 32: goto tr4136; + case 59: goto tr4136; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4101; + goto tr4136; } else if ( (*p) >= 9 ) - goto tr4101; + goto tr4136; goto tr77; -tr4101: +tr4136: { p--; {cs = stack[--top];goto _again;} } - goto st1571; -st1571: + goto st1589; +st1589: if ( ++p == pe ) - goto _test_eof1571; -case 1571: + goto _test_eof1589; +case 1589: goto st0; -tr4100: +tr4135: { s->buffer_length = 0; } - goto st1455; -tr4102: + goto st1473; +tr4137: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1455; -tr4094: + goto st1473; +tr4129: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st319;} + p--; {goto st325;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1455; -st1455: + goto st1473; +st1473: if ( ++p == pe ) - goto _test_eof1455; -case 1455: + goto _test_eof1473; +case 1473: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99138,40 +100099,40 @@ case 1455: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4103; + goto tr4138; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4102; + goto tr4137; goto tr77; -tr4089: +tr4124: { s->buffer_length = 0; } - goto st1456; -tr4104: + goto st1474; +tr4139: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1456; -tr4083: + goto st1474; +tr4118: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1456; -st1456: + goto st1474; +st1474: if ( ++p == pe ) - goto _test_eof1456; -case 1456: + goto _test_eof1474; +case 1474: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99191,18 +100152,18 @@ case 1456: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4105; + goto tr4140; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4104; + goto tr4139; goto tr77; -st1457: +st1475: if ( ++p == pe ) - goto _test_eof1457; -case 1457: + goto _test_eof1475; +case 1475: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4106; - goto tr2653; -tr4106: + goto tr4141; + goto tr2688; +tr4141: { s->number64 = 0; } @@ -99217,11 +100178,11 @@ tr4106: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1458; -tr4110: + goto st1476; +tr4145: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99233,14 +100194,14 @@ tr4110: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1458; -st1458: + goto st1476; +st1476: if ( ++p == pe ) - goto _test_eof1458; -case 1458: + goto _test_eof1476; +case 1476: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99254,40 +100215,40 @@ case 1458: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4107; - case 32: goto tr4107; - case 40: goto tr4108; - case 41: goto tr4109; - case 2058: goto tr4111; - case 2107: goto tr4112; + case 9: goto tr4142; + case 32: goto tr4142; + case 40: goto tr4143; + case 41: goto tr4144; + case 2058: goto tr4146; + case 2107: goto tr4147; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4110; - goto tr2653; -tr4114: + goto tr4145; + goto tr2688; +tr4149: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1459; -tr4115: + goto st1477; +tr4150: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1459; -tr4117: + goto st1477; +tr4152: { s->line_counter++; } - goto st1459; -tr4122: + goto st1477; +tr4157: { s->buffer[s->buffer_length++] = 0; @@ -99297,15 +100258,15 @@ tr4122: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1459; goto _out;} + {p++; cs = 1477; goto _out;} } } } { s->line_counter++; } - goto st1459; -tr4107: + goto st1477; +tr4142: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99313,11 +100274,11 @@ tr4107: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1459; -tr4108: + goto st1477; +tr4143: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99325,18 +100286,18 @@ tr4108: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1459; -tr4109: + goto st1477; +tr4144: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99344,18 +100305,18 @@ tr4109: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1459; -tr4111: + goto st1477; +tr4146: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99363,17 +100324,17 @@ tr4111: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1459; -st1459: + goto st1477; +st1477: if ( ++p == pe ) - goto _test_eof1459; -case 1459: + goto _test_eof1477; +case 1477: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99387,88 +100348,88 @@ case 1459: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1459; - case 32: goto st1459; - case 40: goto tr4114; - case 41: goto tr4115; - case 42: goto tr4116; - case 92: goto tr4116; - case 95: goto tr4116; - case 2058: goto tr4117; - case 2107: goto tr4118; + case 9: goto st1477; + case 32: goto st1477; + case 40: goto tr4149; + case 41: goto tr4150; + case 42: goto tr4151; + case 92: goto tr4151; + case 95: goto tr4151; + case 2058: goto tr4152; + case 2107: goto tr4153; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4116; + goto tr4151; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4116; + goto tr4151; } else - goto tr4116; + goto tr4151; goto tr77; -tr4116: +tr4151: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1460;goto st321;} } - goto st1460; -st1460: + { p--; {stack[top++] = 1478;goto st327;} } + goto st1478; +st1478: if ( ++p == pe ) - goto _test_eof1460; -case 1460: + goto _test_eof1478; +case 1478: switch( (*p) ) { - case 32: goto tr4119; - case 59: goto tr4119; + case 32: goto tr4154; + case 59: goto tr4154; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4119; + goto tr4154; } else if ( (*p) >= 9 ) - goto tr4119; + goto tr4154; goto tr77; -tr4119: +tr4154: { rdata_tail += s->dname_tmp_length; } - { p--; {stack[top++] = 1461;goto st807;} } - goto st1461; -st1461: + { p--; {stack[top++] = 1479;goto st825;} } + goto st1479; +st1479: if ( ++p == pe ) - goto _test_eof1461; -case 1461: + goto _test_eof1479; +case 1479: switch( (*p) ) { - case 32: goto tr4120; - case 59: goto tr4120; + case 32: goto tr4155; + case 59: goto tr4155; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4120; + goto tr4155; } else if ( (*p) >= 9 ) - goto tr4120; + goto tr4155; goto tr77; -tr4120: +tr4155: { p--; {cs = stack[--top];goto _again;} } - goto st1572; -st1572: + goto st1590; +st1590: if ( ++p == pe ) - goto _test_eof1572; -case 1572: + goto _test_eof1590; +case 1590: goto st0; -tr4118: +tr4153: { s->buffer_length = 0; } - goto st1462; -tr4121: + goto st1480; +tr4156: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1462; -tr4112: + goto st1480; +tr4147: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99476,17 +100437,17 @@ tr4112: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1462; -st1462: + goto st1480; +st1480: if ( ++p == pe ) - goto _test_eof1462; -case 1462: + goto _test_eof1480; +case 1480: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99506,30 +100467,30 @@ case 1462: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4122; + goto tr4157; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4121; + goto tr4156; goto tr77; -st1463: +st1481: if ( ++p == pe ) - goto _test_eof1463; -case 1463: + goto _test_eof1481; +case 1481: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4123; + goto tr4158; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr4123; + goto tr4158; } else - goto tr4123; + goto tr4158; goto tr77; -tr4123: - { p--; {stack[top++] = 1464;goto st388;} } - goto st1464; -st1464: +tr4158: + { p--; {stack[top++] = 1482;goto st394;} } + goto st1482; +st1482: if ( ++p == pe ) - goto _test_eof1464; -case 1464: + goto _test_eof1482; +case 1482: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99543,38 +100504,38 @@ case 1464: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1465; - case 32: goto st1465; - case 40: goto tr4125; - case 41: goto tr4126; - case 2058: goto tr4127; - case 2107: goto tr4128; + case 9: goto st1483; + case 32: goto st1483; + case 40: goto tr4160; + case 41: goto tr4161; + case 2058: goto tr4162; + case 2107: goto tr4163; } goto tr77; -tr4125: +tr4160: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1465; -tr4126: + goto st1483; +tr4161: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1465; -tr4127: + goto st1483; +tr4162: { s->line_counter++; } - goto st1465; -tr4154: + goto st1483; +tr4189: { s->buffer[s->buffer_length++] = 0; @@ -99584,18 +100545,18 @@ tr4154: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1465; goto _out;} + {p++; cs = 1483; goto _out;} } } } { s->line_counter++; } - goto st1465; -st1465: + goto st1483; +st1483: if ( ++p == pe ) - goto _test_eof1465; -case 1465: + goto _test_eof1483; +case 1483: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99609,29 +100570,29 @@ case 1465: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1465; - case 32: goto st1465; - case 40: goto tr4125; - case 41: goto tr4126; - case 2058: goto tr4127; - case 2107: goto tr4128; + case 9: goto st1483; + case 32: goto st1483; + case 40: goto tr4160; + case 41: goto tr4161; + case 2058: goto tr4162; + case 2107: goto tr4163; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4129; + goto tr4164; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4129; + goto tr4164; } else - goto tr4129; + goto tr4164; goto tr77; -tr4129: - { p--; {stack[top++] = 1466;goto st1063;} } - goto st1466; -st1466: +tr4164: + { p--; {stack[top++] = 1484;goto st1081;} } + goto st1484; +st1484: if ( ++p == pe ) - goto _test_eof1466; -case 1466: + goto _test_eof1484; +case 1484: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99645,38 +100606,38 @@ case 1466: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1467; - case 32: goto st1467; - case 40: goto tr4131; - case 41: goto tr4132; - case 2058: goto tr4133; - case 2107: goto tr4134; + case 9: goto st1485; + case 32: goto st1485; + case 40: goto tr4166; + case 41: goto tr4167; + case 2058: goto tr4168; + case 2107: goto tr4169; } goto tr77; -tr4131: +tr4166: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1467; -tr4132: + goto st1485; +tr4167: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1467; -tr4133: + goto st1485; +tr4168: { s->line_counter++; } - goto st1467; -tr4152: + goto st1485; +tr4187: { s->buffer[s->buffer_length++] = 0; @@ -99686,18 +100647,18 @@ tr4152: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1467; goto _out;} + {p++; cs = 1485; goto _out;} } } } { s->line_counter++; } - goto st1467; -st1467: + goto st1485; +st1485: if ( ++p == pe ) - goto _test_eof1467; -case 1467: + goto _test_eof1485; +case 1485: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99711,17 +100672,17 @@ case 1467: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1467; - case 32: goto st1467; - case 40: goto tr4131; - case 41: goto tr4132; - case 2058: goto tr4133; - case 2107: goto tr4134; + case 9: goto st1485; + case 32: goto st1485; + case 40: goto tr4166; + case 41: goto tr4167; + case 2058: goto tr4168; + case 2107: goto tr4169; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4135; - goto tr2653; -tr4135: + goto tr4170; + goto tr2688; +tr4170: { s->number64 = 0; } @@ -99736,11 +100697,11 @@ tr4135: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1468; -tr4139: + goto st1486; +tr4174: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99752,14 +100713,14 @@ tr4139: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1468; -st1468: + goto st1486; +st1486: if ( ++p == pe ) - goto _test_eof1468; -case 1468: + goto _test_eof1486; +case 1486: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99773,40 +100734,40 @@ case 1468: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4136; - case 32: goto tr4136; - case 40: goto tr4137; - case 41: goto tr4138; - case 2058: goto tr4140; - case 2107: goto tr4141; + case 9: goto tr4171; + case 32: goto tr4171; + case 40: goto tr4172; + case 41: goto tr4173; + case 2058: goto tr4175; + case 2107: goto tr4176; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4139; - goto tr2653; -tr4143: + goto tr4174; + goto tr2688; +tr4178: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1469; -tr4144: + goto st1487; +tr4179: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1469; -tr4146: + goto st1487; +tr4181: { s->line_counter++; } - goto st1469; -tr4150: + goto st1487; +tr4185: { s->buffer[s->buffer_length++] = 0; @@ -99816,15 +100777,15 @@ tr4150: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1469; goto _out;} + {p++; cs = 1487; goto _out;} } } } { s->line_counter++; } - goto st1469; -tr4136: + goto st1487; +tr4171: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99832,11 +100793,11 @@ tr4136: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } - goto st1469; -tr4137: + goto st1487; +tr4172: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99844,18 +100805,18 @@ tr4137: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = true; } - goto st1469; -tr4138: + goto st1487; +tr4173: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99863,18 +100824,18 @@ tr4138: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st319;} + p--; {goto st325;} } s->multiline = false; } - goto st1469; -tr4140: + goto st1487; +tr4175: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99882,17 +100843,17 @@ tr4140: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->line_counter++; } - goto st1469; -st1469: + goto st1487; +st1487: if ( ++p == pe ) - goto _test_eof1469; -case 1469: + goto _test_eof1487; +case 1487: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99906,71 +100867,71 @@ case 1469: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1469; - case 32: goto st1469; - case 40: goto tr4143; - case 41: goto tr4144; - case 42: goto tr4145; - case 92: goto tr4145; - case 95: goto tr4145; - case 2058: goto tr4146; - case 2107: goto tr4147; + case 9: goto st1487; + case 32: goto st1487; + case 40: goto tr4178; + case 41: goto tr4179; + case 42: goto tr4180; + case 92: goto tr4180; + case 95: goto tr4180; + case 2058: goto tr4181; + case 2107: goto tr4182; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4145; + goto tr4180; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4145; + goto tr4180; } else - goto tr4145; + goto tr4180; goto tr77; -tr4145: +tr4180: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1470;goto st321;} } - goto st1470; -st1470: + { p--; {stack[top++] = 1488;goto st327;} } + goto st1488; +st1488: if ( ++p == pe ) - goto _test_eof1470; -case 1470: + goto _test_eof1488; +case 1488: switch( (*p) ) { - case 32: goto tr4148; - case 59: goto tr4148; + case 32: goto tr4183; + case 59: goto tr4183; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4148; + goto tr4183; } else if ( (*p) >= 9 ) - goto tr4148; + goto tr4183; goto tr77; -tr4148: +tr4183: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1573; -st1573: + goto st1591; +st1591: if ( ++p == pe ) - goto _test_eof1573; -case 1573: + goto _test_eof1591; +case 1591: goto st0; -tr4147: +tr4182: { s->buffer_length = 0; } - goto st1471; -tr4149: + goto st1489; +tr4184: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1471; -tr4141: + goto st1489; +tr4176: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99978,17 +100939,17 @@ tr4141: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st319;} + p--; {goto st325;} } } { s->buffer_length = 0; } - goto st1471; -st1471: + goto st1489; +st1489: if ( ++p == pe ) - goto _test_eof1471; -case 1471: + goto _test_eof1489; +case 1489: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100008,26 +100969,26 @@ case 1471: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4150; + goto tr4185; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4149; + goto tr4184; goto tr77; -tr4134: +tr4169: { s->buffer_length = 0; } - goto st1472; -tr4151: + goto st1490; +tr4186: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1472; -st1472: + goto st1490; +st1490: if ( ++p == pe ) - goto _test_eof1472; -case 1472: + goto _test_eof1490; +case 1490: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100047,26 +101008,26 @@ case 1472: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4152; + goto tr4187; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4151; + goto tr4186; goto tr77; -tr4128: +tr4163: { s->buffer_length = 0; } - goto st1473; -tr4153: + goto st1491; +tr4188: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1473; -st1473: + goto st1491; +st1491: if ( ++p == pe ) - goto _test_eof1473; -case 1473: + goto _test_eof1491; +case 1491: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100086,12 +101047,12 @@ case 1473: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4154; + goto tr4189; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4153; + goto tr4188; goto tr77; } - _test_eof1474: cs = 1474; goto _test_eof; + _test_eof1492: cs = 1492; goto _test_eof; _test_eof1: cs = 1; goto _test_eof; _test_eof2: cs = 2; goto _test_eof; _test_eof3: cs = 3; goto _test_eof; @@ -100105,7 +101066,7 @@ case 1473: _test_eof11: cs = 11; goto _test_eof; _test_eof12: cs = 12; goto _test_eof; _test_eof13: cs = 13; goto _test_eof; - _test_eof1475: cs = 1475; goto _test_eof; + _test_eof1493: cs = 1493; goto _test_eof; _test_eof14: cs = 14; goto _test_eof; _test_eof15: cs = 15; goto _test_eof; _test_eof16: cs = 16; goto _test_eof; @@ -100275,54 +101236,54 @@ case 1473: _test_eof180: cs = 180; goto _test_eof; _test_eof181: cs = 181; goto _test_eof; _test_eof182: cs = 182; goto _test_eof; - _test_eof1476: cs = 1476; goto _test_eof; _test_eof183: cs = 183; goto _test_eof; _test_eof184: cs = 184; goto _test_eof; _test_eof185: cs = 185; goto _test_eof; _test_eof186: cs = 186; goto _test_eof; _test_eof187: cs = 187; goto _test_eof; _test_eof188: cs = 188; goto _test_eof; + _test_eof1494: cs = 1494; goto _test_eof; _test_eof189: cs = 189; goto _test_eof; _test_eof190: cs = 190; goto _test_eof; _test_eof191: cs = 191; goto _test_eof; _test_eof192: cs = 192; goto _test_eof; - _test_eof1477: cs = 1477; goto _test_eof; _test_eof193: cs = 193; goto _test_eof; _test_eof194: cs = 194; goto _test_eof; _test_eof195: cs = 195; goto _test_eof; _test_eof196: cs = 196; goto _test_eof; _test_eof197: cs = 197; goto _test_eof; _test_eof198: cs = 198; goto _test_eof; + _test_eof1495: cs = 1495; goto _test_eof; _test_eof199: cs = 199; goto _test_eof; _test_eof200: cs = 200; goto _test_eof; - _test_eof1478: cs = 1478; goto _test_eof; _test_eof201: cs = 201; goto _test_eof; _test_eof202: cs = 202; goto _test_eof; _test_eof203: cs = 203; goto _test_eof; - _test_eof1479: cs = 1479; goto _test_eof; _test_eof204: cs = 204; goto _test_eof; _test_eof205: cs = 205; goto _test_eof; _test_eof206: cs = 206; goto _test_eof; + _test_eof1496: cs = 1496; goto _test_eof; _test_eof207: cs = 207; goto _test_eof; _test_eof208: cs = 208; goto _test_eof; _test_eof209: cs = 209; goto _test_eof; + _test_eof1497: cs = 1497; goto _test_eof; _test_eof210: cs = 210; goto _test_eof; _test_eof211: cs = 211; goto _test_eof; _test_eof212: cs = 212; goto _test_eof; _test_eof213: cs = 213; goto _test_eof; _test_eof214: cs = 214; goto _test_eof; - _test_eof1480: cs = 1480; goto _test_eof; _test_eof215: cs = 215; goto _test_eof; _test_eof216: cs = 216; goto _test_eof; _test_eof217: cs = 217; goto _test_eof; _test_eof218: cs = 218; goto _test_eof; - _test_eof1481: cs = 1481; goto _test_eof; _test_eof219: cs = 219; goto _test_eof; _test_eof220: cs = 220; goto _test_eof; + _test_eof1498: cs = 1498; goto _test_eof; _test_eof221: cs = 221; goto _test_eof; _test_eof222: cs = 222; goto _test_eof; _test_eof223: cs = 223; goto _test_eof; _test_eof224: cs = 224; goto _test_eof; + _test_eof1499: cs = 1499; goto _test_eof; _test_eof225: cs = 225; goto _test_eof; _test_eof226: cs = 226; goto _test_eof; _test_eof227: cs = 227; goto _test_eof; @@ -100336,13 +101297,13 @@ case 1473: _test_eof235: cs = 235; goto _test_eof; _test_eof236: cs = 236; goto _test_eof; _test_eof237: cs = 237; goto _test_eof; - _test_eof1482: cs = 1482; goto _test_eof; _test_eof238: cs = 238; goto _test_eof; _test_eof239: cs = 239; goto _test_eof; _test_eof240: cs = 240; goto _test_eof; _test_eof241: cs = 241; goto _test_eof; _test_eof242: cs = 242; goto _test_eof; _test_eof243: cs = 243; goto _test_eof; + _test_eof1500: cs = 1500; goto _test_eof; _test_eof244: cs = 244; goto _test_eof; _test_eof245: cs = 245; goto _test_eof; _test_eof246: cs = 246; goto _test_eof; @@ -100353,13 +101314,13 @@ case 1473: _test_eof251: cs = 251; goto _test_eof; _test_eof252: cs = 252; goto _test_eof; _test_eof253: cs = 253; goto _test_eof; - _test_eof1483: cs = 1483; goto _test_eof; _test_eof254: cs = 254; goto _test_eof; _test_eof255: cs = 255; goto _test_eof; _test_eof256: cs = 256; goto _test_eof; _test_eof257: cs = 257; goto _test_eof; _test_eof258: cs = 258; goto _test_eof; _test_eof259: cs = 259; goto _test_eof; + _test_eof1501: cs = 1501; goto _test_eof; _test_eof260: cs = 260; goto _test_eof; _test_eof261: cs = 261; goto _test_eof; _test_eof262: cs = 262; goto _test_eof; @@ -100419,30 +101380,30 @@ case 1473: _test_eof316: cs = 316; goto _test_eof; _test_eof317: cs = 317; goto _test_eof; _test_eof318: cs = 318; goto _test_eof; - _test_eof1484: cs = 1484; goto _test_eof; _test_eof319: cs = 319; goto _test_eof; _test_eof320: cs = 320; goto _test_eof; - _test_eof1485: cs = 1485; goto _test_eof; _test_eof321: cs = 321; goto _test_eof; _test_eof322: cs = 322; goto _test_eof; - _test_eof1486: cs = 1486; goto _test_eof; _test_eof323: cs = 323; goto _test_eof; _test_eof324: cs = 324; goto _test_eof; + _test_eof1502: cs = 1502; goto _test_eof; _test_eof325: cs = 325; goto _test_eof; _test_eof326: cs = 326; goto _test_eof; + _test_eof1503: cs = 1503; goto _test_eof; _test_eof327: cs = 327; goto _test_eof; _test_eof328: cs = 328; goto _test_eof; + _test_eof1504: cs = 1504; goto _test_eof; _test_eof329: cs = 329; goto _test_eof; _test_eof330: cs = 330; goto _test_eof; _test_eof331: cs = 331; goto _test_eof; - _test_eof1487: cs = 1487; goto _test_eof; - _test_eof1488: cs = 1488; goto _test_eof; _test_eof332: cs = 332; goto _test_eof; _test_eof333: cs = 333; goto _test_eof; _test_eof334: cs = 334; goto _test_eof; _test_eof335: cs = 335; goto _test_eof; _test_eof336: cs = 336; goto _test_eof; _test_eof337: cs = 337; goto _test_eof; + _test_eof1505: cs = 1505; goto _test_eof; + _test_eof1506: cs = 1506; goto _test_eof; _test_eof338: cs = 338; goto _test_eof; _test_eof339: cs = 339; goto _test_eof; _test_eof340: cs = 340; goto _test_eof; @@ -100452,24 +101413,24 @@ case 1473: _test_eof344: cs = 344; goto _test_eof; _test_eof345: cs = 345; goto _test_eof; _test_eof346: cs = 346; goto _test_eof; - _test_eof1489: cs = 1489; goto _test_eof; _test_eof347: cs = 347; goto _test_eof; _test_eof348: cs = 348; goto _test_eof; _test_eof349: cs = 349; goto _test_eof; _test_eof350: cs = 350; goto _test_eof; _test_eof351: cs = 351; goto _test_eof; _test_eof352: cs = 352; goto _test_eof; + _test_eof1507: cs = 1507; goto _test_eof; _test_eof353: cs = 353; goto _test_eof; _test_eof354: cs = 354; goto _test_eof; _test_eof355: cs = 355; goto _test_eof; _test_eof356: cs = 356; goto _test_eof; - _test_eof1490: cs = 1490; goto _test_eof; _test_eof357: cs = 357; goto _test_eof; _test_eof358: cs = 358; goto _test_eof; _test_eof359: cs = 359; goto _test_eof; _test_eof360: cs = 360; goto _test_eof; _test_eof361: cs = 361; goto _test_eof; _test_eof362: cs = 362; goto _test_eof; + _test_eof1508: cs = 1508; goto _test_eof; _test_eof363: cs = 363; goto _test_eof; _test_eof364: cs = 364; goto _test_eof; _test_eof365: cs = 365; goto _test_eof; @@ -100478,37 +101439,37 @@ case 1473: _test_eof368: cs = 368; goto _test_eof; _test_eof369: cs = 369; goto _test_eof; _test_eof370: cs = 370; goto _test_eof; - _test_eof1491: cs = 1491; goto _test_eof; _test_eof371: cs = 371; goto _test_eof; _test_eof372: cs = 372; goto _test_eof; _test_eof373: cs = 373; goto _test_eof; _test_eof374: cs = 374; goto _test_eof; _test_eof375: cs = 375; goto _test_eof; _test_eof376: cs = 376; goto _test_eof; + _test_eof1509: cs = 1509; goto _test_eof; _test_eof377: cs = 377; goto _test_eof; - _test_eof1492: cs = 1492; goto _test_eof; _test_eof378: cs = 378; goto _test_eof; _test_eof379: cs = 379; goto _test_eof; _test_eof380: cs = 380; goto _test_eof; _test_eof381: cs = 381; goto _test_eof; _test_eof382: cs = 382; goto _test_eof; _test_eof383: cs = 383; goto _test_eof; + _test_eof1510: cs = 1510; goto _test_eof; _test_eof384: cs = 384; goto _test_eof; _test_eof385: cs = 385; goto _test_eof; _test_eof386: cs = 386; goto _test_eof; - _test_eof1493: cs = 1493; goto _test_eof; - _test_eof1494: cs = 1494; goto _test_eof; - _test_eof1495: cs = 1495; goto _test_eof; _test_eof387: cs = 387; goto _test_eof; _test_eof388: cs = 388; goto _test_eof; _test_eof389: cs = 389; goto _test_eof; - _test_eof1496: cs = 1496; goto _test_eof; _test_eof390: cs = 390; goto _test_eof; _test_eof391: cs = 391; goto _test_eof; _test_eof392: cs = 392; goto _test_eof; + _test_eof1511: cs = 1511; goto _test_eof; + _test_eof1512: cs = 1512; goto _test_eof; + _test_eof1513: cs = 1513; goto _test_eof; _test_eof393: cs = 393; goto _test_eof; _test_eof394: cs = 394; goto _test_eof; _test_eof395: cs = 395; goto _test_eof; + _test_eof1514: cs = 1514; goto _test_eof; _test_eof396: cs = 396; goto _test_eof; _test_eof397: cs = 397; goto _test_eof; _test_eof398: cs = 398; goto _test_eof; @@ -100679,12 +101640,9 @@ case 1473: _test_eof563: cs = 563; goto _test_eof; _test_eof564: cs = 564; goto _test_eof; _test_eof565: cs = 565; goto _test_eof; - _test_eof1497: cs = 1497; goto _test_eof; - _test_eof1498: cs = 1498; goto _test_eof; _test_eof566: cs = 566; goto _test_eof; _test_eof567: cs = 567; goto _test_eof; _test_eof568: cs = 568; goto _test_eof; - _test_eof1499: cs = 1499; goto _test_eof; _test_eof569: cs = 569; goto _test_eof; _test_eof570: cs = 570; goto _test_eof; _test_eof571: cs = 571; goto _test_eof; @@ -100694,9 +101652,12 @@ case 1473: _test_eof575: cs = 575; goto _test_eof; _test_eof576: cs = 576; goto _test_eof; _test_eof577: cs = 577; goto _test_eof; + _test_eof1515: cs = 1515; goto _test_eof; + _test_eof1516: cs = 1516; goto _test_eof; _test_eof578: cs = 578; goto _test_eof; _test_eof579: cs = 579; goto _test_eof; _test_eof580: cs = 580; goto _test_eof; + _test_eof1517: cs = 1517; goto _test_eof; _test_eof581: cs = 581; goto _test_eof; _test_eof582: cs = 582; goto _test_eof; _test_eof583: cs = 583; goto _test_eof; @@ -100855,50 +101816,50 @@ case 1473: _test_eof736: cs = 736; goto _test_eof; _test_eof737: cs = 737; goto _test_eof; _test_eof738: cs = 738; goto _test_eof; - _test_eof1500: cs = 1500; goto _test_eof; - _test_eof1501: cs = 1501; goto _test_eof; - _test_eof1502: cs = 1502; goto _test_eof; _test_eof739: cs = 739; goto _test_eof; _test_eof740: cs = 740; goto _test_eof; _test_eof741: cs = 741; goto _test_eof; _test_eof742: cs = 742; goto _test_eof; _test_eof743: cs = 743; goto _test_eof; - _test_eof1503: cs = 1503; goto _test_eof; _test_eof744: cs = 744; goto _test_eof; _test_eof745: cs = 745; goto _test_eof; _test_eof746: cs = 746; goto _test_eof; _test_eof747: cs = 747; goto _test_eof; - _test_eof1504: cs = 1504; goto _test_eof; - _test_eof1505: cs = 1505; goto _test_eof; - _test_eof1506: cs = 1506; goto _test_eof; _test_eof748: cs = 748; goto _test_eof; _test_eof749: cs = 749; goto _test_eof; - _test_eof1507: cs = 1507; goto _test_eof; _test_eof750: cs = 750; goto _test_eof; _test_eof751: cs = 751; goto _test_eof; _test_eof752: cs = 752; goto _test_eof; _test_eof753: cs = 753; goto _test_eof; _test_eof754: cs = 754; goto _test_eof; _test_eof755: cs = 755; goto _test_eof; - _test_eof1508: cs = 1508; goto _test_eof; _test_eof756: cs = 756; goto _test_eof; + _test_eof1518: cs = 1518; goto _test_eof; + _test_eof1519: cs = 1519; goto _test_eof; + _test_eof1520: cs = 1520; goto _test_eof; _test_eof757: cs = 757; goto _test_eof; _test_eof758: cs = 758; goto _test_eof; _test_eof759: cs = 759; goto _test_eof; _test_eof760: cs = 760; goto _test_eof; _test_eof761: cs = 761; goto _test_eof; + _test_eof1521: cs = 1521; goto _test_eof; _test_eof762: cs = 762; goto _test_eof; _test_eof763: cs = 763; goto _test_eof; _test_eof764: cs = 764; goto _test_eof; _test_eof765: cs = 765; goto _test_eof; + _test_eof1522: cs = 1522; goto _test_eof; + _test_eof1523: cs = 1523; goto _test_eof; + _test_eof1524: cs = 1524; goto _test_eof; _test_eof766: cs = 766; goto _test_eof; _test_eof767: cs = 767; goto _test_eof; + _test_eof1525: cs = 1525; goto _test_eof; _test_eof768: cs = 768; goto _test_eof; _test_eof769: cs = 769; goto _test_eof; _test_eof770: cs = 770; goto _test_eof; _test_eof771: cs = 771; goto _test_eof; _test_eof772: cs = 772; goto _test_eof; _test_eof773: cs = 773; goto _test_eof; + _test_eof1526: cs = 1526; goto _test_eof; _test_eof774: cs = 774; goto _test_eof; _test_eof775: cs = 775; goto _test_eof; _test_eof776: cs = 776; goto _test_eof; @@ -100941,8 +101902,6 @@ case 1473: _test_eof813: cs = 813; goto _test_eof; _test_eof814: cs = 814; goto _test_eof; _test_eof815: cs = 815; goto _test_eof; - _test_eof1509: cs = 1509; goto _test_eof; - _test_eof1510: cs = 1510; goto _test_eof; _test_eof816: cs = 816; goto _test_eof; _test_eof817: cs = 817; goto _test_eof; _test_eof818: cs = 818; goto _test_eof; @@ -100952,7 +101911,6 @@ case 1473: _test_eof822: cs = 822; goto _test_eof; _test_eof823: cs = 823; goto _test_eof; _test_eof824: cs = 824; goto _test_eof; - _test_eof1511: cs = 1511; goto _test_eof; _test_eof825: cs = 825; goto _test_eof; _test_eof826: cs = 826; goto _test_eof; _test_eof827: cs = 827; goto _test_eof; @@ -100962,6 +101920,8 @@ case 1473: _test_eof831: cs = 831; goto _test_eof; _test_eof832: cs = 832; goto _test_eof; _test_eof833: cs = 833; goto _test_eof; + _test_eof1527: cs = 1527; goto _test_eof; + _test_eof1528: cs = 1528; goto _test_eof; _test_eof834: cs = 834; goto _test_eof; _test_eof835: cs = 835; goto _test_eof; _test_eof836: cs = 836; goto _test_eof; @@ -100971,6 +101931,7 @@ case 1473: _test_eof840: cs = 840; goto _test_eof; _test_eof841: cs = 841; goto _test_eof; _test_eof842: cs = 842; goto _test_eof; + _test_eof1529: cs = 1529; goto _test_eof; _test_eof843: cs = 843; goto _test_eof; _test_eof844: cs = 844; goto _test_eof; _test_eof845: cs = 845; goto _test_eof; @@ -101048,7 +102009,6 @@ case 1473: _test_eof917: cs = 917; goto _test_eof; _test_eof918: cs = 918; goto _test_eof; _test_eof919: cs = 919; goto _test_eof; - _test_eof1512: cs = 1512; goto _test_eof; _test_eof920: cs = 920; goto _test_eof; _test_eof921: cs = 921; goto _test_eof; _test_eof922: cs = 922; goto _test_eof; @@ -101067,6 +102027,7 @@ case 1473: _test_eof935: cs = 935; goto _test_eof; _test_eof936: cs = 936; goto _test_eof; _test_eof937: cs = 937; goto _test_eof; + _test_eof1530: cs = 1530; goto _test_eof; _test_eof938: cs = 938; goto _test_eof; _test_eof939: cs = 939; goto _test_eof; _test_eof940: cs = 940; goto _test_eof; @@ -101153,7 +102114,6 @@ case 1473: _test_eof1021: cs = 1021; goto _test_eof; _test_eof1022: cs = 1022; goto _test_eof; _test_eof1023: cs = 1023; goto _test_eof; - _test_eof1513: cs = 1513; goto _test_eof; _test_eof1024: cs = 1024; goto _test_eof; _test_eof1025: cs = 1025; goto _test_eof; _test_eof1026: cs = 1026; goto _test_eof; @@ -101172,6 +102132,7 @@ case 1473: _test_eof1039: cs = 1039; goto _test_eof; _test_eof1040: cs = 1040; goto _test_eof; _test_eof1041: cs = 1041; goto _test_eof; + _test_eof1531: cs = 1531; goto _test_eof; _test_eof1042: cs = 1042; goto _test_eof; _test_eof1043: cs = 1043; goto _test_eof; _test_eof1044: cs = 1044; goto _test_eof; @@ -101195,7 +102156,6 @@ case 1473: _test_eof1062: cs = 1062; goto _test_eof; _test_eof1063: cs = 1063; goto _test_eof; _test_eof1064: cs = 1064; goto _test_eof; - _test_eof1514: cs = 1514; goto _test_eof; _test_eof1065: cs = 1065; goto _test_eof; _test_eof1066: cs = 1066; goto _test_eof; _test_eof1067: cs = 1067; goto _test_eof; @@ -101204,10 +102164,8 @@ case 1473: _test_eof1070: cs = 1070; goto _test_eof; _test_eof1071: cs = 1071; goto _test_eof; _test_eof1072: cs = 1072; goto _test_eof; - _test_eof1515: cs = 1515; goto _test_eof; _test_eof1073: cs = 1073; goto _test_eof; _test_eof1074: cs = 1074; goto _test_eof; - _test_eof1516: cs = 1516; goto _test_eof; _test_eof1075: cs = 1075; goto _test_eof; _test_eof1076: cs = 1076; goto _test_eof; _test_eof1077: cs = 1077; goto _test_eof; @@ -101216,17 +102174,19 @@ case 1473: _test_eof1080: cs = 1080; goto _test_eof; _test_eof1081: cs = 1081; goto _test_eof; _test_eof1082: cs = 1082; goto _test_eof; + _test_eof1532: cs = 1532; goto _test_eof; _test_eof1083: cs = 1083; goto _test_eof; _test_eof1084: cs = 1084; goto _test_eof; _test_eof1085: cs = 1085; goto _test_eof; _test_eof1086: cs = 1086; goto _test_eof; _test_eof1087: cs = 1087; goto _test_eof; _test_eof1088: cs = 1088; goto _test_eof; - _test_eof1517: cs = 1517; goto _test_eof; _test_eof1089: cs = 1089; goto _test_eof; _test_eof1090: cs = 1090; goto _test_eof; + _test_eof1533: cs = 1533; goto _test_eof; _test_eof1091: cs = 1091; goto _test_eof; _test_eof1092: cs = 1092; goto _test_eof; + _test_eof1534: cs = 1534; goto _test_eof; _test_eof1093: cs = 1093; goto _test_eof; _test_eof1094: cs = 1094; goto _test_eof; _test_eof1095: cs = 1095; goto _test_eof; @@ -101241,52 +102201,53 @@ case 1473: _test_eof1104: cs = 1104; goto _test_eof; _test_eof1105: cs = 1105; goto _test_eof; _test_eof1106: cs = 1106; goto _test_eof; + _test_eof1535: cs = 1535; goto _test_eof; _test_eof1107: cs = 1107; goto _test_eof; _test_eof1108: cs = 1108; goto _test_eof; _test_eof1109: cs = 1109; goto _test_eof; _test_eof1110: cs = 1110; goto _test_eof; - _test_eof1518: cs = 1518; goto _test_eof; _test_eof1111: cs = 1111; goto _test_eof; _test_eof1112: cs = 1112; goto _test_eof; _test_eof1113: cs = 1113; goto _test_eof; _test_eof1114: cs = 1114; goto _test_eof; _test_eof1115: cs = 1115; goto _test_eof; - _test_eof1519: cs = 1519; goto _test_eof; _test_eof1116: cs = 1116; goto _test_eof; _test_eof1117: cs = 1117; goto _test_eof; _test_eof1118: cs = 1118; goto _test_eof; _test_eof1119: cs = 1119; goto _test_eof; _test_eof1120: cs = 1120; goto _test_eof; - _test_eof1520: cs = 1520; goto _test_eof; _test_eof1121: cs = 1121; goto _test_eof; _test_eof1122: cs = 1122; goto _test_eof; _test_eof1123: cs = 1123; goto _test_eof; _test_eof1124: cs = 1124; goto _test_eof; _test_eof1125: cs = 1125; goto _test_eof; - _test_eof1521: cs = 1521; goto _test_eof; - _test_eof1522: cs = 1522; goto _test_eof; - _test_eof1523: cs = 1523; goto _test_eof; _test_eof1126: cs = 1126; goto _test_eof; _test_eof1127: cs = 1127; goto _test_eof; - _test_eof1524: cs = 1524; goto _test_eof; _test_eof1128: cs = 1128; goto _test_eof; + _test_eof1536: cs = 1536; goto _test_eof; _test_eof1129: cs = 1129; goto _test_eof; _test_eof1130: cs = 1130; goto _test_eof; _test_eof1131: cs = 1131; goto _test_eof; _test_eof1132: cs = 1132; goto _test_eof; _test_eof1133: cs = 1133; goto _test_eof; + _test_eof1537: cs = 1537; goto _test_eof; _test_eof1134: cs = 1134; goto _test_eof; _test_eof1135: cs = 1135; goto _test_eof; _test_eof1136: cs = 1136; goto _test_eof; _test_eof1137: cs = 1137; goto _test_eof; _test_eof1138: cs = 1138; goto _test_eof; + _test_eof1538: cs = 1538; goto _test_eof; _test_eof1139: cs = 1139; goto _test_eof; _test_eof1140: cs = 1140; goto _test_eof; _test_eof1141: cs = 1141; goto _test_eof; _test_eof1142: cs = 1142; goto _test_eof; _test_eof1143: cs = 1143; goto _test_eof; + _test_eof1539: cs = 1539; goto _test_eof; + _test_eof1540: cs = 1540; goto _test_eof; + _test_eof1541: cs = 1541; goto _test_eof; _test_eof1144: cs = 1144; goto _test_eof; _test_eof1145: cs = 1145; goto _test_eof; + _test_eof1542: cs = 1542; goto _test_eof; _test_eof1146: cs = 1146; goto _test_eof; _test_eof1147: cs = 1147; goto _test_eof; _test_eof1148: cs = 1148; goto _test_eof; @@ -101296,26 +102257,17 @@ case 1473: _test_eof1152: cs = 1152; goto _test_eof; _test_eof1153: cs = 1153; goto _test_eof; _test_eof1154: cs = 1154; goto _test_eof; - _test_eof1525: cs = 1525; goto _test_eof; - _test_eof1526: cs = 1526; goto _test_eof; - _test_eof1527: cs = 1527; goto _test_eof; _test_eof1155: cs = 1155; goto _test_eof; _test_eof1156: cs = 1156; goto _test_eof; _test_eof1157: cs = 1157; goto _test_eof; - _test_eof1528: cs = 1528; goto _test_eof; - _test_eof1529: cs = 1529; goto _test_eof; _test_eof1158: cs = 1158; goto _test_eof; _test_eof1159: cs = 1159; goto _test_eof; _test_eof1160: cs = 1160; goto _test_eof; _test_eof1161: cs = 1161; goto _test_eof; - _test_eof1530: cs = 1530; goto _test_eof; - _test_eof1531: cs = 1531; goto _test_eof; _test_eof1162: cs = 1162; goto _test_eof; _test_eof1163: cs = 1163; goto _test_eof; _test_eof1164: cs = 1164; goto _test_eof; _test_eof1165: cs = 1165; goto _test_eof; - _test_eof1532: cs = 1532; goto _test_eof; - _test_eof1533: cs = 1533; goto _test_eof; _test_eof1166: cs = 1166; goto _test_eof; _test_eof1167: cs = 1167; goto _test_eof; _test_eof1168: cs = 1168; goto _test_eof; @@ -101323,17 +102275,26 @@ case 1473: _test_eof1170: cs = 1170; goto _test_eof; _test_eof1171: cs = 1171; goto _test_eof; _test_eof1172: cs = 1172; goto _test_eof; + _test_eof1543: cs = 1543; goto _test_eof; + _test_eof1544: cs = 1544; goto _test_eof; + _test_eof1545: cs = 1545; goto _test_eof; _test_eof1173: cs = 1173; goto _test_eof; _test_eof1174: cs = 1174; goto _test_eof; _test_eof1175: cs = 1175; goto _test_eof; + _test_eof1546: cs = 1546; goto _test_eof; + _test_eof1547: cs = 1547; goto _test_eof; _test_eof1176: cs = 1176; goto _test_eof; _test_eof1177: cs = 1177; goto _test_eof; _test_eof1178: cs = 1178; goto _test_eof; _test_eof1179: cs = 1179; goto _test_eof; + _test_eof1548: cs = 1548; goto _test_eof; + _test_eof1549: cs = 1549; goto _test_eof; _test_eof1180: cs = 1180; goto _test_eof; _test_eof1181: cs = 1181; goto _test_eof; _test_eof1182: cs = 1182; goto _test_eof; _test_eof1183: cs = 1183; goto _test_eof; + _test_eof1550: cs = 1550; goto _test_eof; + _test_eof1551: cs = 1551; goto _test_eof; _test_eof1184: cs = 1184; goto _test_eof; _test_eof1185: cs = 1185; goto _test_eof; _test_eof1186: cs = 1186; goto _test_eof; @@ -101341,7 +102302,6 @@ case 1473: _test_eof1188: cs = 1188; goto _test_eof; _test_eof1189: cs = 1189; goto _test_eof; _test_eof1190: cs = 1190; goto _test_eof; - _test_eof1534: cs = 1534; goto _test_eof; _test_eof1191: cs = 1191; goto _test_eof; _test_eof1192: cs = 1192; goto _test_eof; _test_eof1193: cs = 1193; goto _test_eof; @@ -101357,10 +102317,10 @@ case 1473: _test_eof1203: cs = 1203; goto _test_eof; _test_eof1204: cs = 1204; goto _test_eof; _test_eof1205: cs = 1205; goto _test_eof; - _test_eof1535: cs = 1535; goto _test_eof; _test_eof1206: cs = 1206; goto _test_eof; _test_eof1207: cs = 1207; goto _test_eof; _test_eof1208: cs = 1208; goto _test_eof; + _test_eof1552: cs = 1552; goto _test_eof; _test_eof1209: cs = 1209; goto _test_eof; _test_eof1210: cs = 1210; goto _test_eof; _test_eof1211: cs = 1211; goto _test_eof; @@ -101371,51 +102331,46 @@ case 1473: _test_eof1216: cs = 1216; goto _test_eof; _test_eof1217: cs = 1217; goto _test_eof; _test_eof1218: cs = 1218; goto _test_eof; - _test_eof1536: cs = 1536; goto _test_eof; _test_eof1219: cs = 1219; goto _test_eof; _test_eof1220: cs = 1220; goto _test_eof; _test_eof1221: cs = 1221; goto _test_eof; _test_eof1222: cs = 1222; goto _test_eof; _test_eof1223: cs = 1223; goto _test_eof; + _test_eof1553: cs = 1553; goto _test_eof; _test_eof1224: cs = 1224; goto _test_eof; _test_eof1225: cs = 1225; goto _test_eof; _test_eof1226: cs = 1226; goto _test_eof; _test_eof1227: cs = 1227; goto _test_eof; _test_eof1228: cs = 1228; goto _test_eof; _test_eof1229: cs = 1229; goto _test_eof; - _test_eof1537: cs = 1537; goto _test_eof; - _test_eof1538: cs = 1538; goto _test_eof; _test_eof1230: cs = 1230; goto _test_eof; _test_eof1231: cs = 1231; goto _test_eof; _test_eof1232: cs = 1232; goto _test_eof; - _test_eof1539: cs = 1539; goto _test_eof; _test_eof1233: cs = 1233; goto _test_eof; _test_eof1234: cs = 1234; goto _test_eof; _test_eof1235: cs = 1235; goto _test_eof; _test_eof1236: cs = 1236; goto _test_eof; + _test_eof1554: cs = 1554; goto _test_eof; _test_eof1237: cs = 1237; goto _test_eof; _test_eof1238: cs = 1238; goto _test_eof; _test_eof1239: cs = 1239; goto _test_eof; _test_eof1240: cs = 1240; goto _test_eof; _test_eof1241: cs = 1241; goto _test_eof; _test_eof1242: cs = 1242; goto _test_eof; - _test_eof1540: cs = 1540; goto _test_eof; - _test_eof1541: cs = 1541; goto _test_eof; - _test_eof1542: cs = 1542; goto _test_eof; _test_eof1243: cs = 1243; goto _test_eof; _test_eof1244: cs = 1244; goto _test_eof; _test_eof1245: cs = 1245; goto _test_eof; _test_eof1246: cs = 1246; goto _test_eof; _test_eof1247: cs = 1247; goto _test_eof; + _test_eof1555: cs = 1555; goto _test_eof; + _test_eof1556: cs = 1556; goto _test_eof; _test_eof1248: cs = 1248; goto _test_eof; _test_eof1249: cs = 1249; goto _test_eof; _test_eof1250: cs = 1250; goto _test_eof; + _test_eof1557: cs = 1557; goto _test_eof; _test_eof1251: cs = 1251; goto _test_eof; _test_eof1252: cs = 1252; goto _test_eof; _test_eof1253: cs = 1253; goto _test_eof; - _test_eof1543: cs = 1543; goto _test_eof; - _test_eof1544: cs = 1544; goto _test_eof; - _test_eof1545: cs = 1545; goto _test_eof; _test_eof1254: cs = 1254; goto _test_eof; _test_eof1255: cs = 1255; goto _test_eof; _test_eof1256: cs = 1256; goto _test_eof; @@ -101423,24 +102378,23 @@ case 1473: _test_eof1258: cs = 1258; goto _test_eof; _test_eof1259: cs = 1259; goto _test_eof; _test_eof1260: cs = 1260; goto _test_eof; + _test_eof1558: cs = 1558; goto _test_eof; + _test_eof1559: cs = 1559; goto _test_eof; + _test_eof1560: cs = 1560; goto _test_eof; _test_eof1261: cs = 1261; goto _test_eof; _test_eof1262: cs = 1262; goto _test_eof; _test_eof1263: cs = 1263; goto _test_eof; _test_eof1264: cs = 1264; goto _test_eof; _test_eof1265: cs = 1265; goto _test_eof; - _test_eof1546: cs = 1546; goto _test_eof; _test_eof1266: cs = 1266; goto _test_eof; _test_eof1267: cs = 1267; goto _test_eof; _test_eof1268: cs = 1268; goto _test_eof; - _test_eof1547: cs = 1547; goto _test_eof; - _test_eof1548: cs = 1548; goto _test_eof; _test_eof1269: cs = 1269; goto _test_eof; - _test_eof1549: cs = 1549; goto _test_eof; - _test_eof1550: cs = 1550; goto _test_eof; _test_eof1270: cs = 1270; goto _test_eof; - _test_eof1551: cs = 1551; goto _test_eof; - _test_eof1552: cs = 1552; goto _test_eof; _test_eof1271: cs = 1271; goto _test_eof; + _test_eof1561: cs = 1561; goto _test_eof; + _test_eof1562: cs = 1562; goto _test_eof; + _test_eof1563: cs = 1563; goto _test_eof; _test_eof1272: cs = 1272; goto _test_eof; _test_eof1273: cs = 1273; goto _test_eof; _test_eof1274: cs = 1274; goto _test_eof; @@ -101453,11 +102407,18 @@ case 1473: _test_eof1281: cs = 1281; goto _test_eof; _test_eof1282: cs = 1282; goto _test_eof; _test_eof1283: cs = 1283; goto _test_eof; + _test_eof1564: cs = 1564; goto _test_eof; _test_eof1284: cs = 1284; goto _test_eof; _test_eof1285: cs = 1285; goto _test_eof; _test_eof1286: cs = 1286; goto _test_eof; + _test_eof1565: cs = 1565; goto _test_eof; + _test_eof1566: cs = 1566; goto _test_eof; _test_eof1287: cs = 1287; goto _test_eof; + _test_eof1567: cs = 1567; goto _test_eof; + _test_eof1568: cs = 1568; goto _test_eof; _test_eof1288: cs = 1288; goto _test_eof; + _test_eof1569: cs = 1569; goto _test_eof; + _test_eof1570: cs = 1570; goto _test_eof; _test_eof1289: cs = 1289; goto _test_eof; _test_eof1290: cs = 1290; goto _test_eof; _test_eof1291: cs = 1291; goto _test_eof; @@ -101482,7 +102443,6 @@ case 1473: _test_eof1310: cs = 1310; goto _test_eof; _test_eof1311: cs = 1311; goto _test_eof; _test_eof1312: cs = 1312; goto _test_eof; - _test_eof1553: cs = 1553; goto _test_eof; _test_eof1313: cs = 1313; goto _test_eof; _test_eof1314: cs = 1314; goto _test_eof; _test_eof1315: cs = 1315; goto _test_eof; @@ -101494,7 +102454,6 @@ case 1473: _test_eof1321: cs = 1321; goto _test_eof; _test_eof1322: cs = 1322; goto _test_eof; _test_eof1323: cs = 1323; goto _test_eof; - _test_eof1554: cs = 1554; goto _test_eof; _test_eof1324: cs = 1324; goto _test_eof; _test_eof1325: cs = 1325; goto _test_eof; _test_eof1326: cs = 1326; goto _test_eof; @@ -101502,19 +102461,19 @@ case 1473: _test_eof1328: cs = 1328; goto _test_eof; _test_eof1329: cs = 1329; goto _test_eof; _test_eof1330: cs = 1330; goto _test_eof; + _test_eof1571: cs = 1571; goto _test_eof; _test_eof1331: cs = 1331; goto _test_eof; - _test_eof1555: cs = 1555; goto _test_eof; _test_eof1332: cs = 1332; goto _test_eof; _test_eof1333: cs = 1333; goto _test_eof; _test_eof1334: cs = 1334; goto _test_eof; _test_eof1335: cs = 1335; goto _test_eof; _test_eof1336: cs = 1336; goto _test_eof; - _test_eof1556: cs = 1556; goto _test_eof; _test_eof1337: cs = 1337; goto _test_eof; _test_eof1338: cs = 1338; goto _test_eof; _test_eof1339: cs = 1339; goto _test_eof; _test_eof1340: cs = 1340; goto _test_eof; _test_eof1341: cs = 1341; goto _test_eof; + _test_eof1572: cs = 1572; goto _test_eof; _test_eof1342: cs = 1342; goto _test_eof; _test_eof1343: cs = 1343; goto _test_eof; _test_eof1344: cs = 1344; goto _test_eof; @@ -101523,12 +102482,13 @@ case 1473: _test_eof1347: cs = 1347; goto _test_eof; _test_eof1348: cs = 1348; goto _test_eof; _test_eof1349: cs = 1349; goto _test_eof; + _test_eof1573: cs = 1573; goto _test_eof; _test_eof1350: cs = 1350; goto _test_eof; _test_eof1351: cs = 1351; goto _test_eof; _test_eof1352: cs = 1352; goto _test_eof; _test_eof1353: cs = 1353; goto _test_eof; _test_eof1354: cs = 1354; goto _test_eof; - _test_eof1557: cs = 1557; goto _test_eof; + _test_eof1574: cs = 1574; goto _test_eof; _test_eof1355: cs = 1355; goto _test_eof; _test_eof1356: cs = 1356; goto _test_eof; _test_eof1357: cs = 1357; goto _test_eof; @@ -101547,8 +102507,8 @@ case 1473: _test_eof1370: cs = 1370; goto _test_eof; _test_eof1371: cs = 1371; goto _test_eof; _test_eof1372: cs = 1372; goto _test_eof; + _test_eof1575: cs = 1575; goto _test_eof; _test_eof1373: cs = 1373; goto _test_eof; - _test_eof1558: cs = 1558; goto _test_eof; _test_eof1374: cs = 1374; goto _test_eof; _test_eof1375: cs = 1375; goto _test_eof; _test_eof1376: cs = 1376; goto _test_eof; @@ -101564,18 +102524,15 @@ case 1473: _test_eof1386: cs = 1386; goto _test_eof; _test_eof1387: cs = 1387; goto _test_eof; _test_eof1388: cs = 1388; goto _test_eof; - _test_eof1559: cs = 1559; goto _test_eof; - _test_eof1560: cs = 1560; goto _test_eof; - _test_eof1561: cs = 1561; goto _test_eof; _test_eof1389: cs = 1389; goto _test_eof; _test_eof1390: cs = 1390; goto _test_eof; _test_eof1391: cs = 1391; goto _test_eof; + _test_eof1576: cs = 1576; goto _test_eof; _test_eof1392: cs = 1392; goto _test_eof; _test_eof1393: cs = 1393; goto _test_eof; _test_eof1394: cs = 1394; goto _test_eof; _test_eof1395: cs = 1395; goto _test_eof; _test_eof1396: cs = 1396; goto _test_eof; - _test_eof1562: cs = 1562; goto _test_eof; _test_eof1397: cs = 1397; goto _test_eof; _test_eof1398: cs = 1398; goto _test_eof; _test_eof1399: cs = 1399; goto _test_eof; @@ -101586,10 +102543,10 @@ case 1473: _test_eof1404: cs = 1404; goto _test_eof; _test_eof1405: cs = 1405; goto _test_eof; _test_eof1406: cs = 1406; goto _test_eof; + _test_eof1577: cs = 1577; goto _test_eof; + _test_eof1578: cs = 1578; goto _test_eof; + _test_eof1579: cs = 1579; goto _test_eof; _test_eof1407: cs = 1407; goto _test_eof; - _test_eof1563: cs = 1563; goto _test_eof; - _test_eof1564: cs = 1564; goto _test_eof; - _test_eof1565: cs = 1565; goto _test_eof; _test_eof1408: cs = 1408; goto _test_eof; _test_eof1409: cs = 1409; goto _test_eof; _test_eof1410: cs = 1410; goto _test_eof; @@ -101597,7 +102554,7 @@ case 1473: _test_eof1412: cs = 1412; goto _test_eof; _test_eof1413: cs = 1413; goto _test_eof; _test_eof1414: cs = 1414; goto _test_eof; - _test_eof1566: cs = 1566; goto _test_eof; + _test_eof1580: cs = 1580; goto _test_eof; _test_eof1415: cs = 1415; goto _test_eof; _test_eof1416: cs = 1416; goto _test_eof; _test_eof1417: cs = 1417; goto _test_eof; @@ -101609,61 +102566,83 @@ case 1473: _test_eof1423: cs = 1423; goto _test_eof; _test_eof1424: cs = 1424; goto _test_eof; _test_eof1425: cs = 1425; goto _test_eof; + _test_eof1581: cs = 1581; goto _test_eof; + _test_eof1582: cs = 1582; goto _test_eof; + _test_eof1583: cs = 1583; goto _test_eof; _test_eof1426: cs = 1426; goto _test_eof; _test_eof1427: cs = 1427; goto _test_eof; - _test_eof1567: cs = 1567; goto _test_eof; _test_eof1428: cs = 1428; goto _test_eof; _test_eof1429: cs = 1429; goto _test_eof; _test_eof1430: cs = 1430; goto _test_eof; _test_eof1431: cs = 1431; goto _test_eof; _test_eof1432: cs = 1432; goto _test_eof; + _test_eof1584: cs = 1584; goto _test_eof; _test_eof1433: cs = 1433; goto _test_eof; _test_eof1434: cs = 1434; goto _test_eof; - _test_eof1568: cs = 1568; goto _test_eof; _test_eof1435: cs = 1435; goto _test_eof; _test_eof1436: cs = 1436; goto _test_eof; _test_eof1437: cs = 1437; goto _test_eof; _test_eof1438: cs = 1438; goto _test_eof; _test_eof1439: cs = 1439; goto _test_eof; _test_eof1440: cs = 1440; goto _test_eof; - _test_eof1569: cs = 1569; goto _test_eof; _test_eof1441: cs = 1441; goto _test_eof; _test_eof1442: cs = 1442; goto _test_eof; _test_eof1443: cs = 1443; goto _test_eof; _test_eof1444: cs = 1444; goto _test_eof; _test_eof1445: cs = 1445; goto _test_eof; + _test_eof1585: cs = 1585; goto _test_eof; _test_eof1446: cs = 1446; goto _test_eof; - _test_eof1570: cs = 1570; goto _test_eof; _test_eof1447: cs = 1447; goto _test_eof; _test_eof1448: cs = 1448; goto _test_eof; _test_eof1449: cs = 1449; goto _test_eof; _test_eof1450: cs = 1450; goto _test_eof; _test_eof1451: cs = 1451; goto _test_eof; _test_eof1452: cs = 1452; goto _test_eof; + _test_eof1586: cs = 1586; goto _test_eof; _test_eof1453: cs = 1453; goto _test_eof; _test_eof1454: cs = 1454; goto _test_eof; - _test_eof1571: cs = 1571; goto _test_eof; _test_eof1455: cs = 1455; goto _test_eof; _test_eof1456: cs = 1456; goto _test_eof; _test_eof1457: cs = 1457; goto _test_eof; _test_eof1458: cs = 1458; goto _test_eof; + _test_eof1587: cs = 1587; goto _test_eof; _test_eof1459: cs = 1459; goto _test_eof; _test_eof1460: cs = 1460; goto _test_eof; _test_eof1461: cs = 1461; goto _test_eof; - _test_eof1572: cs = 1572; goto _test_eof; _test_eof1462: cs = 1462; goto _test_eof; _test_eof1463: cs = 1463; goto _test_eof; _test_eof1464: cs = 1464; goto _test_eof; + _test_eof1588: cs = 1588; goto _test_eof; _test_eof1465: cs = 1465; goto _test_eof; _test_eof1466: cs = 1466; goto _test_eof; _test_eof1467: cs = 1467; goto _test_eof; _test_eof1468: cs = 1468; goto _test_eof; _test_eof1469: cs = 1469; goto _test_eof; _test_eof1470: cs = 1470; goto _test_eof; - _test_eof1573: cs = 1573; goto _test_eof; _test_eof1471: cs = 1471; goto _test_eof; _test_eof1472: cs = 1472; goto _test_eof; + _test_eof1589: cs = 1589; goto _test_eof; _test_eof1473: cs = 1473; goto _test_eof; + _test_eof1474: cs = 1474; goto _test_eof; + _test_eof1475: cs = 1475; goto _test_eof; + _test_eof1476: cs = 1476; goto _test_eof; + _test_eof1477: cs = 1477; goto _test_eof; + _test_eof1478: cs = 1478; goto _test_eof; + _test_eof1479: cs = 1479; goto _test_eof; + _test_eof1590: cs = 1590; goto _test_eof; + _test_eof1480: cs = 1480; goto _test_eof; + _test_eof1481: cs = 1481; goto _test_eof; + _test_eof1482: cs = 1482; goto _test_eof; + _test_eof1483: cs = 1483; goto _test_eof; + _test_eof1484: cs = 1484; goto _test_eof; + _test_eof1485: cs = 1485; goto _test_eof; + _test_eof1486: cs = 1486; goto _test_eof; + _test_eof1487: cs = 1487; goto _test_eof; + _test_eof1488: cs = 1488; goto _test_eof; + _test_eof1591: cs = 1591; goto _test_eof; + _test_eof1489: cs = 1489; goto _test_eof; + _test_eof1490: cs = 1490; goto _test_eof; + _test_eof1491: cs = 1491; goto _test_eof; _test_eof: {} if ( p == eof ) @@ -101671,137 +102650,131 @@ case 1473: switch ( cs ) { case 7: case 8: - case 192: - case 216: - case 218: - case 274: - case 288: - case 314: - case 370: - case 371: + case 198: + case 222: + case 224: + case 280: + case 294: + case 320: + case 376: case 377: + case 383: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 321: - case 322: - case 323: + case 327: case 328: case 329: + case 334: + case 335: { WARN(ZS_BAD_DNAME_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 201: + case 207: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 338: + case 344: { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 343: - case 351: + case 349: + case 357: { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 352: - case 353: - case 354: - case 363: + case 358: + case 359: + case 360: + case 369: { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 365: + case 371: { ERR(ZS_BAD_INCLUDE_FILENAME); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 368: - case 378: + case 374: + case 384: { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1478: + case 1496: { NOERR; } break; - case 193: - case 194: - case 195: - case 196: - case 197: - case 198: case 199: case 200: - case 239: - case 240: - case 241: - case 242: - case 243: - case 244: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: case 245: case 246: case 247: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: { ERR(ZS_BAD_DIRECTIVE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 381: - case 382: - case 383: - case 384: - case 385: - case 386: case 387: - { - WARN(ZS_BAD_BASE64_CHAR); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - break; case 388: case 389: case 390: case 391: case 392: case 393: + { + WARN(ZS_BAD_BASE64_CHAR); + p--; { if ( p == pe ) + goto _test_eof325; +goto st325;} + } + break; case 394: case 395: case 396: @@ -101950,6 +102923,8 @@ goto st319;} case 539: case 540: case 541: + case 542: + case 543: case 544: case 545: case 546: @@ -101960,18 +102935,9 @@ goto st319;} case 551: case 552: case 553: - case 554: - case 555: case 556: case 557: case 558: - { - WARN(ZS_UNSUPPORTED_TYPE); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - break; case 559: case 560: case 561: @@ -101984,6 +102950,13 @@ goto st319;} case 568: case 569: case 570: + { + WARN(ZS_UNSUPPORTED_TYPE); + p--; { if ( p == pe ) + goto _test_eof325; +goto st325;} + } + break; case 571: case 572: case 573: @@ -102145,44 +103118,44 @@ goto st319;} case 729: case 730: case 731: + case 732: + case 733: + case 734: + case 735: + case 736: + case 737: + case 738: + case 739: + case 740: + case 741: + case 742: + case 743: + case 744: + case 745: + case 746: + case 747: + case 748: + case 749: { WARN(ZS_BAD_BITMAP); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 732: - case 739: - case 740: - case 741: - case 748: case 750: + case 757: + case 758: + case 759: + case 766: + case 768: { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 807: - case 808: - case 809: - case 810: - case 811: - case 812: - case 813: - case 814: - case 815: - case 816: - case 817: - case 818: - case 819: - case 820: - case 821: - case 822: - case 823: - case 824: case 825: case 826: case 827: @@ -102209,31 +103182,31 @@ goto st319;} case 848: case 849: case 850: + case 851: + case 852: + case 853: + case 854: + case 855: + case 856: case 857: case 858: case 859: case 860: case 861: + case 862: + case 863: + case 864: + case 865: + case 866: + case 867: case 868: - case 869: - case 872: - case 873: - case 874: case 875: case 876: case 877: case 878: case 879: - case 880: - case 881: - case 882: - case 883: - case 884: - case 885: case 886: case 887: - case 888: - case 889: case 890: case 891: case 892: @@ -102256,33 +103229,33 @@ goto st319;} case 909: case 910: case 911: + case 912: + case 913: + case 914: + case 915: case 916: case 917: + case 918: + case 919: + case 920: + case 921: + case 922: + case 923: + case 924: + case 925: + case 926: + case 927: + case 928: + case 929: + case 934: + case 935: { WARN(ZS_BAD_SVCB_PARAM); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 751: - case 752: - case 753: - case 754: - case 755: - case 756: - case 757: - case 758: - case 759: - case 760: - case 761: - case 762: - case 763: - case 764: - case 765: - case 766: - case 767: - case 768: case 769: case 770: case 771: @@ -102295,6 +103268,8 @@ goto st319;} case 778: case 779: case 780: + case 781: + case 782: case 783: case 784: case 785: @@ -102311,39 +103286,37 @@ goto st319;} case 796: case 797: case 798: - case 799: - case 800: case 801: case 802: case 803: case 804: case 805: case 806: + case 807: + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: { WARN(ZS_BAD_SVCB_MANDATORY); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 918: - case 919: - case 920: - case 921: - case 922: - case 923: - case 924: - case 925: - case 926: - case 927: - case 928: - case 929: - case 930: - case 931: - case 932: - case 933: - case 934: - case 935: case 936: case 937: case 938: @@ -102430,13 +103403,6 @@ goto st319;} case 1019: case 1020: case 1021: - { - WARN(ZS_BAD_ALGORITHM); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - break; case 1022: case 1023: case 1024: @@ -102455,6 +103421,13 @@ goto st319;} case 1037: case 1038: case 1039: + { + WARN(ZS_BAD_ALGORITHM); + p--; { if ( p == pe ) + goto _test_eof325; +goto st325;} + } + break; case 1040: case 1041: case 1042: @@ -102478,13 +103451,6 @@ goto st319;} case 1060: case 1061: case 1062: - { - WARN(ZS_BAD_CERT_TYPE); - p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} - } - break; case 1063: case 1064: case 1065: @@ -102493,97 +103459,108 @@ goto st319;} case 1068: case 1069: case 1070: + case 1071: + case 1072: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1079: + case 1080: + { + WARN(ZS_BAD_CERT_TYPE); + p--; { if ( p == pe ) + goto _test_eof325; +goto st325;} + } + break; + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + case 1086: + case 1087: + case 1088: { WARN(ZS_BAD_DSYNC_SCHEME); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; case 5: case 9: case 10: - case 293: - case 1073: - case 1074: - case 1075: - case 1076: - case 1077: - case 1078: + case 299: + case 1091: case 1092: + case 1093: + case 1094: + case 1095: case 1096: - case 1100: - case 1104: - case 1105: - case 1106: - case 1107: - case 1108: - case 1109: case 1110: - case 1111: - case 1112: - case 1113: case 1114: - case 1115: - case 1116: - case 1119: - case 1120: - case 1121: - case 1189: - case 1190: - case 1191: - case 1192: - case 1193: - case 1198: - case 1199: - case 1200: - case 1201: - case 1202: - case 1203: - case 1204: - case 1205: - case 1206: + case 1118: + case 1122: + case 1123: + case 1124: + case 1125: + case 1126: + case 1127: + case 1128: + case 1129: + case 1130: + case 1131: + case 1132: + case 1133: + case 1134: + case 1137: + case 1138: + case 1139: case 1207: case 1208: case 1209: case 1210: case 1211: - case 1212: - case 1215: case 1216: case 1217: case 1218: case 1219: case 1220: case 1221: + case 1222: + case 1223: + case 1224: + case 1225: + case 1226: + case 1227: + case 1228: case 1229: + case 1230: + case 1233: + case 1234: case 1235: case 1236: - case 1243: - case 1244: - case 1245: + case 1237: + case 1238: + case 1239: + case 1247: + case 1253: case 1254: - case 1255: - case 1294: - case 1295: - case 1296: - case 1297: - case 1298: - case 1309: - case 1310: - case 1311: + case 1261: + case 1262: + case 1263: + case 1272: + case 1273: case 1312: case 1313: case 1314: case 1315: case 1316: - case 1317: - case 1318: - case 1319: - case 1320: - case 1321: - case 1322: - case 1323: + case 1327: case 1328: case 1329: case 1330: @@ -102593,38 +103570,38 @@ goto st319;} case 1334: case 1335: case 1336: + case 1337: + case 1338: + case 1339: + case 1340: + case 1341: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: case 1354: - case 1360: - case 1363: - case 1364: - case 1365: - case 1376: - case 1377: + case 1372: case 1378: - case 1389: - case 1390: - case 1391: + case 1381: + case 1382: + case 1383: + case 1394: + case 1395: case 1396: - case 1397: + case 1407: case 1408: case 1409: - case 1410: + case 1414: case 1415: + case 1426: + case 1427: case 1428: - case 1445: + case 1433: case 1446: - case 1447: - case 1448: - case 1451: - case 1452: - case 1453: - case 1454: - case 1455: - case 1456: - case 1459: - case 1460: - case 1461: - case 1462: case 1463: case 1464: case 1465: @@ -102634,11 +103611,25 @@ goto st319;} case 1471: case 1472: case 1473: + case 1474: + case 1477: + case 1478: + case 1479: + case 1480: + case 1481: + case 1482: + case 1483: + case 1484: + case 1487: + case 1488: + case 1489: + case 1490: + case 1491: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; case 3: @@ -102723,33 +103714,33 @@ goto st319;} case 128: case 129: case 131: + case 132: case 133: case 134: case 135: - case 138: + case 136: case 139: case 140: case 141: - case 142: case 144: + case 145: case 146: + case 147: case 148: case 150: - case 151: case 152: case 154: - case 155: + case 156: case 157: case 158: - case 159: + case 160: case 161: case 163: case 164: + case 165: case 167: - case 168: + case 169: case 170: - case 171: - case 172: case 173: case 174: case 176: @@ -102758,128 +103749,127 @@ goto st319;} case 179: case 180: case 182: + case 183: case 184: case 185: + case 186: + case 188: + case 190: case 191: - case 206: - case 210: - case 277: - case 278: - case 280: - case 281: - case 282: + case 197: + case 212: + case 216: + case 283: case 284: + case 286: + case 287: + case 288: + case 290: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 346: - case 347: + case 352: + case 353: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 355: - case 356: - case 357: + case 361: case 362: + case 363: + case 368: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 324: - case 325: - case 326: - case 327: + case 330: + case 331: + case 332: + case 333: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_DNAME_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 358: - case 359: - case 360: - case 361: + case 364: + case 365: + case 366: + case 367: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 372: - case 373: - case 374: - case 375: + case 378: + case 379: + case 380: + case 381: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 271: + case 277: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 297: - case 298: - case 299: - case 300: - case 301: - case 302: case 303: case 304: case 305: @@ -102891,501 +103881,489 @@ goto st319;} case 311: case 312: case 313: + case 314: + case 315: case 316: + case 317: + case 318: + case 319: + case 322: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 344: + case 350: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 542: - case 543: + case 554: + case 555: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 733: - case 734: - case 742: - case 743: - case 749: + case 751: + case 752: + case 760: + case 761: + case 767: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 870: - case 871: - case 912: - case 913: - case 914: - case 915: + case 888: + case 889: + case 930: + case 931: + case 932: + case 933: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_SVCB_PARAM); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 781: - case 782: + case 799: + case 800: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_SVCB_MANDATORY); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1079: - case 1080: - case 1081: - case 1083: - case 1085: - case 1087: - case 1117: - case 1118: - case 1183: - case 1184: - case 1185: - case 1186: - case 1187: - case 1188: - case 1194: - case 1195: - case 1196: - case 1197: + case 1097: + case 1098: + case 1099: + case 1101: + case 1103: + case 1105: + case 1135: + case 1136: + case 1201: + case 1202: + case 1203: + case 1204: + case 1205: + case 1206: + case 1212: case 1213: case 1214: - case 1233: - case 1234: - case 1237: - case 1238: - case 1246: - case 1247: - case 1248: - case 1249: + case 1215: + case 1231: + case 1232: + case 1251: + case 1252: + case 1255: case 1256: - case 1257: - case 1299: - case 1300: - case 1301: - case 1302: - case 1307: - case 1308: - case 1324: + case 1264: + case 1265: + case 1266: + case 1267: + case 1274: + case 1275: + case 1317: + case 1318: + case 1319: + case 1320: case 1325: case 1326: - case 1327: - case 1337: - case 1338: - case 1339: - case 1340: - case 1341: case 1342: - case 1366: - case 1367: - case 1368: - case 1369: - case 1370: - case 1371: - case 1379: - case 1380: - case 1381: - case 1382: - case 1383: + case 1343: + case 1344: + case 1345: + case 1355: + case 1356: + case 1357: + case 1358: + case 1359: + case 1360: case 1384: - case 1392: - case 1393: - case 1394: - case 1395: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: + case 1397: case 1398: case 1399: case 1400: case 1401: case 1402: - case 1403: + case 1410: case 1411: case 1412: + case 1413: case 1416: case 1417: - case 1441: - case 1442: - case 1443: - case 1444: - case 1449: - case 1450: - case 1457: - case 1458: + case 1418: + case 1419: + case 1420: + case 1421: + case 1429: + case 1430: + case 1434: + case 1435: + case 1459: + case 1460: + case 1461: + case 1462: case 1467: case 1468: + case 1475: + case 1476: + case 1485: + case 1486: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 165: - case 186: - case 202: - case 205: + case 171: + case 192: + case 208: + case 211: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1303: - case 1304: - case 1305: - case 1306: + case 1321: + case 1322: + case 1323: + case 1324: { WARN(ZS_BAD_TIMESTAMP_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 330: - case 331: case 336: case 337: + case 342: + case 343: { WARN(ZS_BAD_TEXT_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1122: - case 1123: - case 1124: - case 1125: + case 1140: + case 1141: + case 1142: + case 1143: { s->long_string = false; } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 366: + case 372: { ERR(ZS_BAD_INCLUDE_FILENAME); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 367: - case 369: - case 376: + case 373: + case 375: + case 382: { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 851: - case 852: - case 853: - case 854: - case 855: - case 856: - case 862: - case 863: - case 864: - case 865: - case 866: - case 867: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 880: + case 881: + case 882: + case 883: + case 884: + case 885: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_SVCB_PARAM); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1071: - case 1072: - case 1126: - case 1127: - case 1413: - case 1414: + case 1089: + case 1090: + case 1144: + case 1145: + case 1431: + case 1432: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1222: - case 1223: - case 1224: - case 1227: - case 1228: - case 1230: + case 1240: + case 1241: + case 1242: + case 1245: + case 1246: + case 1248: { WARN(ZS_BAD_APL); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1239: - case 1240: - case 1241: - case 1242: - case 1250: - case 1251: - case 1252: - case 1253: - case 1343: - case 1344: + case 1257: + case 1258: + case 1259: + case 1260: + case 1268: + case 1269: + case 1270: + case 1271: case 1361: case 1362: - case 1372: - case 1373: - case 1374: - case 1375: - case 1385: - case 1386: - case 1387: - case 1388: + case 1379: + case 1380: + case 1390: + case 1391: + case 1392: + case 1393: + case 1403: case 1404: case 1405: case 1406: - case 1407: - case 1418: - case 1419: - case 1420: - case 1421: + case 1422: case 1423: case 1424: case 1425: - case 1426: - case 1429: - case 1430: - case 1432: - case 1433: - case 1435: case 1436: + case 1437: case 1438: case 1439: + case 1441: + case 1442: + case 1443: + case 1444: + case 1447: + case 1448: + case 1450: + case 1451: + case 1453: + case 1454: + case 1456: + case 1457: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1345: - case 1346: - case 1347: - case 1348: - case 1349: - case 1350: - case 1351: - case 1352: - case 1353: - case 1355: - case 1356: - case 1357: - case 1358: - case 1359: + case 1363: + case 1364: + case 1365: + case 1366: + case 1367: + case 1368: + case 1369: + case 1370: + case 1371: + case 1373: + case 1374: + case 1375: + case 1376: + case 1377: { WARN(ZS_BAD_BASE32HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1258: - case 1259: - case 1262: - case 1271: - case 1272: - case 1273: - case 1278: - case 1279: + case 1276: + case 1277: case 1280: - case 1285: - case 1286: - case 1287: + case 1289: case 1290: - case 1292: - case 1293: + case 1291: + case 1296: + case 1297: + case 1298: + case 1303: + case 1304: + case 1305: + case 1308: + case 1310: + case 1311: { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1264: - case 1265: - case 1266: - case 1267: - case 1268: - case 1269: - case 1270: + case 1282: + case 1283: + case 1284: + case 1285: + case 1286: + case 1287: + case 1288: { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1128: - case 1129: - case 1130: - case 1131: - case 1132: - case 1133: - case 1134: - case 1135: - case 1136: - case 1137: - case 1138: - case 1139: - case 1140: - case 1141: - case 1142: - case 1143: - case 1144: - case 1145: case 1146: case 1147: case 1148: @@ -103423,17 +104401,35 @@ goto st319;} case 1180: case 1181: case 1182: + case 1183: + case 1184: + case 1185: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + case 1197: + case 1198: + case 1199: + case 1200: { WARN(ZS_BAD_LOC_DATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; case 6: @@ -103442,48 +104438,48 @@ goto st319;} case 13: case 20: case 21: - case 214: - case 217: - case 237: - case 273: - case 275: - case 276: - case 286: - case 287: - case 289: - case 290: - case 291: + case 220: + case 223: + case 243: + case 279: + case 281: + case 282: case 292: + case 293: case 295: case 296: + case 297: + case 298: + case 301: + case 302: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; case 16: - case 251: - case 315: - case 317: + case 257: + case 321: + case 323: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; case 4: @@ -103519,440 +104515,435 @@ goto st319;} case 117: case 127: case 130: - case 132: - case 136: case 137: + case 138: + case 142: case 143: - case 145: - case 147: case 149: + case 151: case 153: - case 156: - case 160: + case 155: + case 159: case 162: - case 169: + case 166: + case 168: case 175: case 181: - case 279: - case 283: + case 187: case 285: + case 289: + case 291: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 248: + case 254: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 211: + case 217: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1260: - case 1261: - case 1274: - case 1275: - case 1281: - case 1282: - case 1288: - case 1289: + case 1278: + case 1279: + case 1292: + case 1293: + case 1299: + case 1300: + case 1306: + case 1307: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; case 1: - case 183: - case 215: - case 250: + case 189: + case 221: + case 256: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 166: - case 212: + case 172: + case 218: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 349: + case 355: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1082: - case 1084: - case 1086: - case 1088: - case 1089: - case 1090: - case 1091: - case 1093: - case 1094: - case 1095: - case 1097: - case 1098: - case 1099: - case 1101: + case 1100: case 1102: - case 1103: + case 1104: + case 1106: + case 1107: + case 1108: + case 1109: + case 1111: + case 1112: + case 1113: + case 1115: + case 1116: + case 1117: + case 1119: + case 1120: + case 1121: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; case 2: - case 187: - case 188: - case 189: - case 190: - case 207: - case 208: - case 209: + case 193: + case 194: + case 195: + case 196: + case 213: + case 214: + case 215: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 332: - case 333: - case 334: - case 335: + case 338: case 339: case 340: case 341: - case 342: + case 345: + case 346: + case 347: + case 348: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_TEXT_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1225: - case 1226: - case 1231: - case 1232: + case 1243: + case 1244: + case 1249: + case 1250: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_APL); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1276: - case 1283: + case 1294: + case 1301: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 735: - case 736: - case 737: - case 738: - case 744: - case 745: - case 746: - case 747: + case 753: + case 754: + case 755: + case 756: + case 762: + case 763: + case 764: + case 765: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1422: + case 1440: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_CHAR_COLON); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1263: - case 1291: + case 1281: + case 1309: { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1431: - case 1434: - case 1437: - case 1440: + case 1449: + case 1452: + case 1455: + case 1458: { WARN(ZS_BAD_CHAR_DASH); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1427: + case 1445: { WARN(ZS_BAD_CHAR_COLON); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 238: + case 244: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { ERR(ZS_BAD_DIRECTIVE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 213: - case 220: - case 221: - case 222: - case 223: - case 224: - case 225: + case 219: case 226: case 227: case 228: @@ -103964,59 +104955,59 @@ goto st319;} case 234: case 235: case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 204: + case 210: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 252: - case 254: - case 255: - case 256: - case 257: case 258: - case 259: case 260: case 261: case 262: @@ -104028,186 +105019,192 @@ goto st319;} case 268: case 269: case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; case 14: - case 219: - case 253: - case 272: - case 294: + case 225: + case 259: + case 278: + case 300: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 345: - case 348: - case 350: + case 351: + case 354: + case 356: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 1277: - case 1284: + case 1295: + case 1302: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; case 15: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; - case 249: + case 255: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof319; -goto st319;} + goto _test_eof325; +goto st325;} } break; } diff --git a/src/libzscanner/scanner.c.t0 b/src/libzscanner/scanner.c.t0 index 73493915e0..4033a54f1d 100644 --- a/src/libzscanner/scanner.c.t0 +++ b/src/libzscanner/scanner.c.t0 @@ -102,744 +102,752 @@ static const short _zone_scanner_actions[] = { 125, 1, 126, 1, 128, 1, 129, 1, 130, 1, 131, 1, 145, 1, 146, 1, 148, 1, 149, 1, 150, 1, 151, 1, - 152, 1, 158, 1, 209, 1, 210, 1, - 211, 1, 212, 1, 213, 1, 214, 1, - 215, 1, 216, 1, 217, 1, 218, 1, - 219, 1, 220, 1, 221, 1, 222, 1, - 223, 1, 224, 1, 225, 1, 226, 1, - 227, 1, 228, 1, 229, 1, 230, 1, - 231, 1, 232, 1, 233, 1, 234, 1, - 235, 1, 236, 1, 237, 1, 238, 1, - 239, 1, 240, 1, 241, 1, 242, 1, - 243, 1, 244, 1, 245, 1, 246, 1, - 247, 1, 248, 1, 249, 1, 250, 1, - 251, 1, 252, 1, 253, 1, 254, 1, - 255, 1, 256, 1, 257, 1, 258, 1, - 259, 1, 260, 1, 261, 1, 263, 1, - 265, 1, 266, 1, 267, 1, 268, 1, - 275, 1, 276, 1, 281, 1, 283, 1, - 288, 1, 291, 1, 293, 1, 294, 1, - 295, 1, 296, 1, 301, 1, 302, 1, - 304, 1, 305, 1, 306, 1, 307, 1, - 308, 1, 309, 1, 311, 1, 312, 1, - 313, 1, 314, 1, 316, 2, 0, 49, - 2, 1, 0, 2, 1, 312, 2, 1, - 367, 2, 2, 5, 2, 2, 7, 2, - 3, 5, 2, 3, 7, 2, 4, 0, - 2, 4, 5, 2, 4, 7, 2, 4, - 312, 2, 5, 2, 2, 5, 3, 2, - 5, 4, 2, 5, 7, 2, 6, 1, - 2, 7, 1, 2, 7, 2, 2, 7, - 3, 2, 7, 4, 2, 7, 5, 2, - 7, 32, 2, 8, 73, 2, 8, 77, - 2, 9, 10, 2, 11, 1, 2, 12, - 1, 2, 13, 14, 2, 16, 17, 2, - 18, 14, 2, 18, 15, 2, 19, 24, - 2, 19, 77, 2, 19, 84, 2, 20, - 0, 2, 20, 7, 2, 22, 0, 2, - 23, 13, 2, 26, 69, 2, 26, 108, - 2, 26, 119, 2, 27, 0, 2, 27, - 1, 2, 27, 2, 2, 27, 3, 2, - 27, 4, 2, 27, 264, 2, 28, 69, - 2, 28, 113, 2, 29, 296, 2, 29, - 300, 2, 30, 25, 2, 31, 1, 2, - 31, 2, 2, 31, 3, 2, 31, 4, - 2, 31, 7, 2, 31, 93, 2, 32, - 7, 2, 33, 8, 2, 33, 311, 2, - 33, 316, 2, 34, 25, 2, 35, 0, - 2, 35, 1, 2, 35, 2, 2, 35, - 3, 2, 35, 4, 2, 35, 264, 2, - 35, 303, 2, 36, 41, 2, 37, 36, - 2, 38, 73, 2, 38, 158, 2, 38, - 281, 2, 38, 293, 2, 38, 294, 2, - 38, 311, 2, 38, 316, 2, 42, 269, - 2, 42, 270, 2, 42, 271, 2, 42, - 272, 2, 42, 273, 2, 42, 274, 2, - 45, 0, 2, 45, 1, 2, 45, 2, - 2, 45, 3, 2, 45, 4, 2, 46, - 0, 2, 46, 1, 2, 46, 2, 2, - 46, 3, 2, 46, 4, 2, 46, 264, - 2, 46, 296, 2, 47, 0, 2, 47, - 1, 2, 47, 2, 2, 47, 3, 2, - 47, 4, 2, 48, 310, 2, 49, 1, - 2, 49, 2, 2, 49, 3, 2, 49, - 4, 2, 56, 7, 2, 56, 47, 2, - 56, 93, 2, 57, 58, 2, 59, 1, - 2, 59, 2, 2, 59, 3, 2, 59, - 4, 2, 60, 311, 2, 62, 63, 2, - 64, 65, 2, 66, 68, 2, 68, 0, - 2, 68, 61, 2, 71, 0, 2, 71, - 311, 2, 75, 23, 2, 79, 69, 2, - 80, 7, 2, 81, 8, 2, 82, 23, - 2, 84, 8, 2, 90, 91, 2, 92, - 1, 2, 92, 2, 2, 92, 3, 2, - 92, 4, 2, 93, 1, 2, 93, 2, - 2, 93, 3, 2, 93, 4, 2, 93, - 7, 2, 94, 95, 2, 96, 293, 2, - 96, 311, 2, 97, 98, 2, 99, 100, - 2, 101, 102, 2, 101, 103, 2, 101, - 104, 2, 105, 106, 2, 107, 311, 2, - 110, 311, 2, 111, 0, 2, 127, 311, - 2, 129, 0, 2, 130, 0, 2, 131, - 0, 2, 132, 0, 2, 133, 0, 2, - 134, 0, 2, 135, 0, 2, 136, 0, - 2, 137, 0, 2, 138, 0, 2, 139, - 0, 2, 140, 0, 2, 141, 0, 2, - 142, 0, 2, 143, 0, 2, 144, 0, - 2, 146, 0, 2, 147, 0, 2, 148, - 0, 2, 149, 0, 2, 150, 0, 2, - 151, 0, 2, 152, 0, 2, 153, 0, - 2, 154, 0, 2, 155, 0, 2, 156, - 311, 2, 157, 311, 2, 159, 0, 2, - 160, 0, 2, 161, 0, 2, 162, 0, - 2, 163, 0, 2, 164, 0, 2, 165, - 0, 2, 166, 0, 2, 167, 0, 2, - 168, 0, 2, 169, 0, 2, 170, 0, - 2, 171, 0, 2, 172, 0, 2, 173, - 0, 2, 174, 0, 2, 175, 0, 2, - 176, 0, 2, 177, 0, 2, 178, 0, - 2, 179, 0, 2, 180, 0, 2, 181, - 0, 2, 182, 0, 2, 183, 0, 2, - 184, 0, 2, 185, 0, 2, 186, 0, - 2, 187, 0, 2, 188, 0, 2, 189, - 0, 2, 190, 0, 2, 191, 0, 2, - 192, 0, 2, 193, 0, 2, 194, 0, - 2, 195, 0, 2, 196, 0, 2, 197, - 0, 2, 198, 0, 2, 199, 0, 2, - 200, 0, 2, 201, 0, 2, 202, 0, - 2, 203, 0, 2, 204, 0, 2, 205, - 0, 2, 206, 0, 2, 207, 0, 2, - 208, 0, 2, 210, 1, 2, 210, 2, - 2, 210, 3, 2, 210, 4, 2, 211, - 1, 2, 211, 2, 2, 211, 3, 2, - 211, 4, 2, 212, 1, 2, 212, 2, - 2, 212, 3, 2, 212, 4, 2, 213, - 1, 2, 213, 2, 2, 213, 3, 2, - 213, 4, 2, 214, 1, 2, 214, 2, - 2, 214, 3, 2, 214, 4, 2, 215, - 1, 2, 215, 2, 2, 215, 3, 2, - 215, 4, 2, 216, 1, 2, 216, 2, - 2, 216, 3, 2, 216, 4, 2, 217, - 1, 2, 217, 2, 2, 217, 3, 2, - 217, 4, 2, 218, 1, 2, 218, 2, - 2, 218, 3, 2, 218, 4, 2, 219, - 1, 2, 219, 2, 2, 219, 3, 2, - 219, 4, 2, 220, 1, 2, 220, 2, - 2, 220, 3, 2, 220, 4, 2, 221, - 1, 2, 221, 2, 2, 221, 3, 2, - 221, 4, 2, 222, 1, 2, 222, 2, - 2, 222, 3, 2, 222, 4, 2, 223, - 1, 2, 223, 2, 2, 223, 3, 2, - 223, 4, 2, 224, 1, 2, 224, 2, - 2, 224, 3, 2, 224, 4, 2, 225, - 1, 2, 225, 2, 2, 225, 3, 2, - 225, 4, 2, 226, 1, 2, 226, 2, - 2, 226, 3, 2, 226, 4, 2, 227, - 1, 2, 227, 2, 2, 227, 3, 2, - 227, 4, 2, 228, 1, 2, 228, 2, - 2, 228, 3, 2, 228, 4, 2, 229, - 1, 2, 229, 2, 2, 229, 3, 2, - 229, 4, 2, 230, 1, 2, 230, 2, - 2, 230, 3, 2, 230, 4, 2, 231, - 1, 2, 231, 2, 2, 231, 3, 2, - 231, 4, 2, 232, 1, 2, 232, 2, - 2, 232, 3, 2, 232, 4, 2, 233, - 1, 2, 233, 2, 2, 233, 3, 2, - 233, 4, 2, 234, 1, 2, 234, 2, - 2, 234, 3, 2, 234, 4, 2, 235, - 1, 2, 235, 2, 2, 235, 3, 2, - 235, 4, 2, 236, 1, 2, 236, 2, - 2, 236, 3, 2, 236, 4, 2, 237, - 1, 2, 237, 2, 2, 237, 3, 2, - 237, 4, 2, 238, 1, 2, 238, 2, - 2, 238, 3, 2, 238, 4, 2, 239, - 1, 2, 239, 2, 2, 239, 3, 2, - 239, 4, 2, 240, 1, 2, 240, 2, - 2, 240, 3, 2, 240, 4, 2, 241, - 1, 2, 241, 2, 2, 241, 3, 2, - 241, 4, 2, 242, 1, 2, 242, 2, - 2, 242, 3, 2, 242, 4, 2, 243, - 1, 2, 243, 2, 2, 243, 3, 2, - 243, 4, 2, 244, 1, 2, 244, 2, - 2, 244, 3, 2, 244, 4, 2, 245, - 1, 2, 245, 2, 2, 245, 3, 2, - 245, 4, 2, 246, 1, 2, 246, 2, - 2, 246, 3, 2, 246, 4, 2, 247, - 1, 2, 247, 2, 2, 247, 3, 2, - 247, 4, 2, 248, 1, 2, 248, 2, - 2, 248, 3, 2, 248, 4, 2, 249, - 1, 2, 249, 2, 2, 249, 3, 2, - 249, 4, 2, 250, 1, 2, 250, 2, - 2, 250, 3, 2, 250, 4, 2, 251, - 1, 2, 251, 2, 2, 251, 3, 2, - 251, 4, 2, 252, 1, 2, 252, 2, - 2, 252, 3, 2, 252, 4, 2, 253, - 1, 2, 253, 2, 2, 253, 3, 2, - 253, 4, 2, 254, 1, 2, 254, 2, - 2, 254, 3, 2, 254, 4, 2, 255, - 1, 2, 255, 2, 2, 255, 3, 2, - 255, 4, 2, 256, 1, 2, 256, 2, - 2, 256, 3, 2, 256, 4, 2, 257, - 1, 2, 257, 2, 2, 257, 3, 2, - 257, 4, 2, 258, 1, 2, 258, 2, - 2, 258, 3, 2, 258, 4, 2, 259, - 1, 2, 259, 2, 2, 259, 3, 2, - 259, 4, 2, 260, 1, 2, 260, 2, - 2, 260, 3, 2, 260, 4, 2, 261, - 1, 2, 261, 2, 2, 261, 3, 2, - 261, 4, 2, 262, 0, 2, 265, 1, - 2, 265, 2, 2, 265, 3, 2, 265, - 4, 2, 266, 1, 2, 266, 2, 2, - 266, 3, 2, 266, 4, 2, 267, 1, - 2, 267, 2, 2, 267, 3, 2, 267, - 4, 2, 268, 1, 2, 268, 2, 2, - 268, 3, 2, 268, 4, 2, 275, 1, - 2, 275, 2, 2, 275, 3, 2, 275, - 4, 2, 276, 1, 2, 276, 2, 2, - 276, 3, 2, 276, 4, 2, 279, 0, - 2, 280, 311, 2, 282, 108, 2, 287, - 108, 2, 291, 1, 2, 291, 2, 2, - 291, 3, 2, 291, 4, 2, 292, 0, - 2, 296, 1, 2, 296, 2, 2, 296, - 3, 2, 296, 4, 2, 311, 8, 2, - 312, 1, 2, 312, 4, 2, 315, 312, - 2, 316, 8, 2, 316, 311, 2, 317, - 310, 2, 318, 310, 2, 319, 310, 2, - 320, 310, 2, 321, 310, 2, 322, 310, - 2, 323, 310, 2, 324, 310, 2, 325, - 310, 2, 326, 310, 2, 327, 310, 2, - 328, 310, 2, 329, 310, 2, 330, 310, - 2, 331, 310, 2, 332, 310, 2, 333, - 310, 2, 334, 310, 2, 335, 310, 2, - 336, 310, 2, 337, 310, 2, 338, 310, - 2, 339, 310, 2, 340, 310, 2, 341, - 310, 2, 342, 310, 2, 343, 310, 2, - 344, 310, 2, 345, 310, 2, 346, 310, - 2, 347, 310, 2, 348, 310, 2, 349, - 310, 2, 350, 310, 2, 351, 310, 2, - 352, 310, 2, 353, 310, 2, 354, 310, - 2, 355, 310, 2, 356, 310, 2, 357, - 310, 2, 358, 310, 2, 359, 310, 2, - 360, 310, 2, 361, 310, 2, 362, 310, - 2, 363, 310, 2, 364, 310, 2, 365, - 310, 2, 366, 310, 2, 367, 1, 3, - 0, 49, 1, 3, 0, 49, 2, 3, - 0, 49, 3, 3, 0, 49, 4, 3, - 1, 7, 367, 3, 1, 32, 7, 3, - 1, 71, 0, 3, 1, 111, 0, 3, - 1, 262, 0, 3, 1, 279, 0, 3, - 1, 292, 0, 3, 1, 312, 367, 3, - 2, 7, 32, 3, 2, 32, 7, 3, - 3, 7, 32, 3, 3, 32, 7, 3, - 4, 7, 32, 3, 4, 32, 7, 3, - 4, 71, 0, 3, 4, 111, 0, 3, - 4, 262, 0, 3, 4, 279, 0, 3, - 4, 292, 0, 3, 4, 312, 7, 3, - 5, 7, 2, 3, 5, 7, 3, 3, - 5, 7, 4, 3, 6, 1, 367, 3, - 6, 367, 1, 3, 7, 2, 5, 3, - 7, 2, 32, 3, 7, 3, 5, 3, - 7, 3, 32, 3, 7, 4, 5, 3, - 7, 4, 32, 3, 7, 367, 1, 3, - 9, 11, 1, 3, 15, 21, 0, 3, - 20, 7, 2, 3, 20, 7, 3, 3, - 20, 7, 4, 3, 20, 83, 7, 3, - 23, 13, 14, 3, 27, 71, 0, 3, - 27, 298, 29, 3, 28, 94, 95, 3, - 29, 296, 1, 3, 29, 296, 2, 3, - 29, 296, 3, 3, 29, 296, 4, 3, - 29, 300, 296, 3, 31, 1, 93, 3, - 31, 2, 7, 3, 31, 2, 93, 3, - 31, 3, 7, 3, 31, 3, 93, 3, - 31, 4, 7, 3, 31, 4, 93, 3, - 31, 93, 7, 3, 31, 315, 312, 3, - 31, 317, 310, 3, 32, 1, 7, 3, - 32, 2, 7, 3, 32, 3, 7, 3, - 32, 4, 7, 3, 33, 89, 8, 3, - 33, 311, 8, 3, 33, 316, 8, 3, - 33, 316, 311, 3, 35, 1, 0, 3, - 35, 4, 0, 3, 37, 36, 312, 3, - 38, 156, 311, 3, 38, 316, 8, 3, - 38, 316, 311, 3, 40, 42, 269, 3, - 40, 42, 270, 3, 40, 42, 271, 3, - 40, 42, 272, 3, 40, 42, 273, 3, - 40, 42, 274, 3, 42, 269, 1, 3, - 42, 269, 2, 3, 42, 269, 3, 3, - 42, 269, 4, 3, 42, 270, 1, 3, - 42, 270, 2, 3, 42, 270, 3, 3, - 42, 270, 4, 3, 42, 271, 1, 3, - 42, 271, 2, 3, 42, 271, 3, 3, - 42, 271, 4, 3, 42, 272, 1, 3, - 42, 272, 2, 3, 42, 272, 3, 3, - 42, 272, 4, 3, 42, 273, 1, 3, - 42, 273, 2, 3, 42, 273, 3, 3, - 42, 273, 4, 3, 42, 274, 1, 3, - 42, 274, 2, 3, 42, 274, 3, 3, - 42, 274, 4, 3, 46, 145, 296, 3, - 46, 296, 1, 3, 46, 296, 2, 3, - 46, 296, 3, 3, 46, 296, 4, 3, - 48, 310, 1, 3, 48, 310, 2, 3, - 48, 310, 3, 3, 48, 310, 4, 3, - 48, 310, 312, 3, 50, 38, 73, 3, - 50, 38, 311, 3, 50, 38, 316, 3, - 55, 37, 36, 3, 56, 7, 2, 3, - 56, 7, 3, 3, 56, 7, 4, 3, - 56, 47, 0, 3, 56, 47, 1, 3, - 56, 47, 2, 3, 56, 47, 3, 3, - 56, 47, 4, 3, 56, 93, 1, 3, - 56, 93, 2, 3, 56, 93, 3, 3, - 56, 93, 4, 3, 66, 68, 0, 3, - 66, 68, 61, 3, 67, 62, 63, 3, - 68, 61, 0, 3, 70, 26, 69, 3, - 72, 0, 1, 3, 75, 23, 13, 3, - 76, 0, 1, 3, 80, 2, 7, 3, - 80, 3, 7, 3, 80, 4, 7, 3, - 80, 7, 4, 3, 82, 23, 13, 3, - 85, 0, 1, 3, 88, 7, 1, 3, - 88, 7, 4, 3, 88, 30, 25, 3, - 88, 32, 7, 3, 90, 30, 25, 3, - 90, 91, 312, 3, 93, 2, 7, 3, - 93, 3, 7, 3, 93, 4, 7, 3, - 96, 107, 311, 3, 96, 156, 311, 3, - 97, 98, 0, 3, 97, 98, 1, 3, - 97, 98, 2, 3, 97, 98, 3, 3, - 97, 98, 4, 3, 97, 98, 29, 3, - 99, 100, 0, 3, 99, 100, 1, 3, - 99, 100, 2, 3, 99, 100, 3, 3, - 99, 100, 4, 3, 99, 100, 29, 3, - 105, 106, 0, 3, 105, 106, 1, 3, - 105, 106, 2, 3, 105, 106, 3, 3, - 105, 106, 4, 3, 110, 112, 281, 3, - 110, 290, 311, 3, 147, 145, 296, 3, - 153, 145, 296, 3, 156, 157, 311, 3, - 210, 262, 0, 3, 211, 262, 0, 3, - 212, 262, 0, 3, 213, 262, 0, 3, - 214, 262, 0, 3, 215, 262, 0, 3, - 216, 262, 0, 3, 217, 262, 0, 3, - 218, 262, 0, 3, 219, 262, 0, 3, - 220, 262, 0, 3, 221, 262, 0, 3, - 222, 262, 0, 3, 223, 262, 0, 3, - 224, 262, 0, 3, 225, 262, 0, 3, - 226, 262, 0, 3, 227, 262, 0, 3, - 228, 262, 0, 3, 229, 262, 0, 3, - 230, 262, 0, 3, 231, 262, 0, 3, - 232, 262, 0, 3, 233, 262, 0, 3, - 234, 262, 0, 3, 235, 262, 0, 3, - 236, 262, 0, 3, 237, 262, 0, 3, - 238, 262, 0, 3, 239, 262, 0, 3, - 240, 262, 0, 3, 241, 262, 0, 3, - 242, 262, 0, 3, 243, 262, 0, 3, - 244, 262, 0, 3, 245, 262, 0, 3, - 246, 262, 0, 3, 247, 262, 0, 3, - 248, 262, 0, 3, 249, 262, 0, 3, - 250, 262, 0, 3, 251, 262, 0, 3, - 252, 262, 0, 3, 253, 262, 0, 3, - 254, 262, 0, 3, 255, 262, 0, 3, - 256, 262, 0, 3, 257, 262, 0, 3, - 258, 262, 0, 3, 259, 262, 0, 3, - 260, 262, 0, 3, 261, 262, 0, 3, - 278, 37, 36, 3, 283, 284, 0, 3, - 283, 285, 0, 3, 286, 110, 311, 3, - 288, 289, 0, 3, 290, 110, 311, 3, - 291, 292, 0, 3, 296, 292, 0, 3, - 299, 28, 302, 3, 311, 8, 89, 3, - 312, 7, 1, 3, 312, 7, 4, 3, - 312, 30, 25, 3, 312, 367, 1, 3, - 314, 30, 25, 3, 316, 311, 8, 3, - 317, 310, 1, 3, 317, 310, 2, 3, - 317, 310, 3, 3, 317, 310, 4, 3, - 317, 310, 7, 3, 317, 310, 312, 3, - 318, 310, 1, 3, 318, 310, 2, 3, - 318, 310, 3, 3, 318, 310, 4, 3, - 318, 310, 312, 3, 319, 310, 1, 3, - 319, 310, 2, 3, 319, 310, 3, 3, - 319, 310, 4, 3, 319, 310, 312, 3, - 320, 310, 1, 3, 320, 310, 2, 3, - 320, 310, 3, 3, 320, 310, 4, 3, - 320, 310, 312, 3, 321, 310, 1, 3, - 321, 310, 2, 3, 321, 310, 3, 3, - 321, 310, 4, 3, 321, 310, 312, 3, - 322, 310, 1, 3, 322, 310, 2, 3, - 322, 310, 3, 3, 322, 310, 4, 3, - 322, 310, 312, 3, 323, 310, 1, 3, - 323, 310, 2, 3, 323, 310, 3, 3, - 323, 310, 4, 3, 323, 310, 312, 3, - 324, 310, 1, 3, 324, 310, 2, 3, - 324, 310, 3, 3, 324, 310, 4, 3, - 324, 310, 312, 3, 325, 310, 1, 3, - 325, 310, 2, 3, 325, 310, 3, 3, - 325, 310, 4, 3, 325, 310, 312, 3, - 326, 310, 1, 3, 326, 310, 2, 3, - 326, 310, 3, 3, 326, 310, 4, 3, - 326, 310, 312, 3, 327, 310, 1, 3, - 327, 310, 2, 3, 327, 310, 3, 3, - 327, 310, 4, 3, 327, 310, 312, 3, - 328, 310, 1, 3, 328, 310, 2, 3, - 328, 310, 3, 3, 328, 310, 4, 3, - 328, 310, 312, 3, 329, 310, 1, 3, - 329, 310, 2, 3, 329, 310, 3, 3, - 329, 310, 4, 3, 329, 310, 312, 3, - 330, 310, 1, 3, 330, 310, 2, 3, - 330, 310, 3, 3, 330, 310, 4, 3, - 330, 310, 312, 3, 331, 310, 1, 3, - 331, 310, 2, 3, 331, 310, 3, 3, - 331, 310, 4, 3, 331, 310, 312, 3, - 332, 310, 1, 3, 332, 310, 2, 3, - 332, 310, 3, 3, 332, 310, 4, 3, - 332, 310, 312, 3, 333, 310, 1, 3, - 333, 310, 2, 3, 333, 310, 3, 3, - 333, 310, 4, 3, 333, 310, 312, 3, - 334, 310, 1, 3, 334, 310, 2, 3, - 334, 310, 3, 3, 334, 310, 4, 3, - 334, 310, 312, 3, 335, 310, 1, 3, - 335, 310, 2, 3, 335, 310, 3, 3, - 335, 310, 4, 3, 335, 310, 312, 3, - 336, 310, 1, 3, 336, 310, 2, 3, - 336, 310, 3, 3, 336, 310, 4, 3, - 336, 310, 312, 3, 337, 310, 1, 3, - 337, 310, 2, 3, 337, 310, 3, 3, - 337, 310, 4, 3, 337, 310, 312, 3, - 338, 310, 1, 3, 338, 310, 2, 3, - 338, 310, 3, 3, 338, 310, 4, 3, - 338, 310, 312, 3, 339, 310, 1, 3, - 339, 310, 2, 3, 339, 310, 3, 3, - 339, 310, 4, 3, 339, 310, 312, 3, - 340, 310, 1, 3, 340, 310, 2, 3, - 340, 310, 3, 3, 340, 310, 4, 3, - 340, 310, 312, 3, 341, 310, 1, 3, - 341, 310, 2, 3, 341, 310, 3, 3, - 341, 310, 4, 3, 341, 310, 312, 3, - 342, 310, 1, 3, 342, 310, 2, 3, - 342, 310, 3, 3, 342, 310, 4, 3, - 342, 310, 312, 3, 343, 310, 1, 3, - 343, 310, 2, 3, 343, 310, 3, 3, - 343, 310, 4, 3, 343, 310, 312, 3, - 344, 310, 1, 3, 344, 310, 2, 3, - 344, 310, 3, 3, 344, 310, 4, 3, - 344, 310, 312, 3, 345, 310, 1, 3, - 345, 310, 2, 3, 345, 310, 3, 3, - 345, 310, 4, 3, 345, 310, 312, 3, - 346, 310, 1, 3, 346, 310, 2, 3, - 346, 310, 3, 3, 346, 310, 4, 3, - 346, 310, 312, 3, 347, 310, 1, 3, - 347, 310, 2, 3, 347, 310, 3, 3, - 347, 310, 4, 3, 347, 310, 312, 3, - 348, 310, 1, 3, 348, 310, 2, 3, - 348, 310, 3, 3, 348, 310, 4, 3, - 348, 310, 312, 3, 349, 310, 1, 3, - 349, 310, 2, 3, 349, 310, 3, 3, - 349, 310, 4, 3, 349, 310, 312, 3, - 350, 310, 1, 3, 350, 310, 2, 3, - 350, 310, 3, 3, 350, 310, 4, 3, - 350, 310, 312, 3, 351, 310, 1, 3, - 351, 310, 2, 3, 351, 310, 3, 3, - 351, 310, 4, 3, 351, 310, 312, 3, - 352, 310, 1, 3, 352, 310, 2, 3, - 352, 310, 3, 3, 352, 310, 4, 3, - 352, 310, 312, 3, 353, 310, 1, 3, - 353, 310, 2, 3, 353, 310, 3, 3, - 353, 310, 4, 3, 353, 310, 312, 3, - 354, 310, 1, 3, 354, 310, 2, 3, - 354, 310, 3, 3, 354, 310, 4, 3, - 354, 310, 312, 3, 355, 310, 1, 3, - 355, 310, 2, 3, 355, 310, 3, 3, - 355, 310, 4, 3, 355, 310, 312, 3, - 356, 310, 1, 3, 356, 310, 2, 3, - 356, 310, 3, 3, 356, 310, 4, 3, - 356, 310, 312, 3, 357, 310, 1, 3, - 357, 310, 2, 3, 357, 310, 3, 3, - 357, 310, 4, 3, 357, 310, 312, 3, - 358, 310, 1, 3, 358, 310, 2, 3, - 358, 310, 3, 3, 358, 310, 4, 3, - 358, 310, 312, 3, 359, 310, 1, 3, - 359, 310, 2, 3, 359, 310, 3, 3, - 359, 310, 4, 3, 359, 310, 312, 3, - 360, 310, 1, 3, 360, 310, 2, 3, - 360, 310, 3, 3, 360, 310, 4, 3, - 360, 310, 312, 3, 361, 310, 1, 3, - 361, 310, 2, 3, 361, 310, 3, 3, - 361, 310, 4, 3, 361, 310, 312, 3, - 362, 310, 1, 3, 362, 310, 2, 3, - 362, 310, 3, 3, 362, 310, 4, 3, - 362, 310, 312, 3, 363, 310, 1, 3, - 363, 310, 2, 3, 363, 310, 3, 3, - 363, 310, 4, 3, 363, 310, 312, 3, - 364, 310, 1, 3, 364, 310, 2, 3, - 364, 310, 3, 3, 364, 310, 4, 3, - 364, 310, 312, 3, 365, 310, 1, 3, - 365, 310, 2, 3, 365, 310, 3, 3, - 365, 310, 4, 3, 365, 310, 312, 3, - 366, 310, 1, 3, 366, 310, 2, 3, - 366, 310, 3, 3, 366, 310, 4, 3, - 366, 310, 312, 3, 367, 1, 6, 4, - 1, 7, 367, 32, 4, 1, 312, 32, - 7, 4, 4, 312, 7, 32, 4, 4, - 312, 32, 7, 4, 6, 1, 7, 367, - 4, 6, 1, 85, 0, 4, 6, 72, - 0, 1, 4, 6, 76, 0, 1, 4, - 6, 85, 0, 1, 4, 7, 6, 367, - 1, 4, 7, 72, 0, 1, 4, 7, - 367, 1, 6, 4, 7, 367, 1, 32, - 4, 18, 15, 21, 0, 4, 20, 83, - 7, 2, 4, 20, 83, 7, 3, 4, - 20, 83, 7, 4, 4, 27, 1, 71, - 0, 4, 27, 4, 71, 0, 4, 27, - 298, 29, 296, 4, 29, 296, 292, 0, - 4, 29, 300, 296, 1, 4, 29, 300, - 296, 2, 4, 29, 300, 296, 3, 4, - 29, 300, 296, 4, 4, 31, 1, 7, - 367, 4, 31, 1, 315, 312, 4, 31, - 1, 317, 310, 4, 31, 2, 93, 7, - 4, 31, 2, 315, 312, 4, 31, 2, - 317, 310, 4, 31, 3, 93, 7, 4, - 31, 3, 315, 312, 4, 31, 3, 317, - 310, 4, 31, 4, 93, 7, 4, 31, - 4, 315, 312, 4, 31, 4, 317, 310, - 4, 31, 317, 310, 7, 4, 33, 38, - 316, 8, 4, 33, 50, 38, 316, 4, - 33, 316, 311, 8, 4, 37, 36, 30, - 25, 4, 38, 316, 311, 8, 4, 40, - 37, 36, 41, 4, 40, 42, 269, 1, - 4, 40, 42, 269, 2, 4, 40, 42, - 269, 3, 4, 40, 42, 269, 4, 4, - 40, 42, 270, 1, 4, 40, 42, 270, - 2, 4, 40, 42, 270, 3, 4, 40, - 42, 270, 4, 4, 40, 42, 271, 1, - 4, 40, 42, 271, 2, 4, 40, 42, - 271, 3, 4, 40, 42, 271, 4, 4, - 40, 42, 272, 1, 4, 40, 42, 272, - 2, 4, 40, 42, 272, 3, 4, 40, - 42, 272, 4, 4, 40, 42, 273, 1, - 4, 40, 42, 273, 2, 4, 40, 42, - 273, 3, 4, 40, 42, 273, 4, 4, - 40, 42, 274, 1, 4, 40, 42, 274, - 2, 4, 40, 42, 274, 3, 4, 40, - 42, 274, 4, 4, 42, 271, 279, 0, - 4, 42, 272, 279, 0, 4, 42, 273, - 279, 0, 4, 42, 274, 279, 0, 4, - 43, 39, 37, 36, 4, 44, 39, 37, - 36, 4, 46, 145, 296, 1, 4, 46, - 145, 296, 2, 4, 46, 145, 296, 3, - 4, 46, 145, 296, 4, 4, 46, 296, - 292, 0, 4, 48, 310, 1, 312, 4, - 48, 310, 4, 312, 4, 50, 38, 8, - 73, 4, 56, 55, 37, 36, 4, 66, - 68, 61, 0, 4, 75, 23, 13, 14, - 4, 82, 23, 13, 14, 4, 88, 32, - 1, 7, 4, 88, 32, 2, 7, 4, - 88, 32, 3, 7, 4, 88, 32, 4, - 7, 4, 90, 91, 30, 25, 4, 93, - 1, 7, 367, 4, 96, 156, 157, 311, - 4, 97, 98, 1, 0, 4, 97, 98, - 4, 0, 4, 97, 98, 29, 296, 4, - 99, 100, 1, 0, 4, 99, 100, 4, - 0, 4, 99, 100, 29, 296, 4, 105, - 106, 1, 0, 4, 105, 106, 4, 0, - 4, 147, 145, 296, 1, 4, 147, 145, - 296, 2, 4, 147, 145, 296, 3, 4, - 147, 145, 296, 4, 4, 147, 301, 37, - 36, 4, 153, 145, 296, 1, 4, 153, - 145, 296, 2, 4, 153, 145, 296, 3, - 4, 153, 145, 296, 4, 4, 210, 1, - 262, 0, 4, 210, 4, 262, 0, 4, - 211, 1, 262, 0, 4, 211, 4, 262, - 0, 4, 212, 1, 262, 0, 4, 212, - 4, 262, 0, 4, 213, 1, 262, 0, - 4, 213, 4, 262, 0, 4, 214, 1, - 262, 0, 4, 214, 4, 262, 0, 4, - 215, 1, 262, 0, 4, 215, 4, 262, - 0, 4, 216, 1, 262, 0, 4, 216, - 4, 262, 0, 4, 217, 1, 262, 0, - 4, 217, 4, 262, 0, 4, 218, 1, - 262, 0, 4, 218, 4, 262, 0, 4, - 219, 1, 262, 0, 4, 219, 4, 262, - 0, 4, 220, 1, 262, 0, 4, 220, - 4, 262, 0, 4, 221, 1, 262, 0, - 4, 221, 4, 262, 0, 4, 222, 1, - 262, 0, 4, 222, 4, 262, 0, 4, - 223, 1, 262, 0, 4, 223, 4, 262, - 0, 4, 224, 1, 262, 0, 4, 224, - 4, 262, 0, 4, 225, 1, 262, 0, - 4, 225, 4, 262, 0, 4, 226, 1, - 262, 0, 4, 226, 4, 262, 0, 4, - 227, 1, 262, 0, 4, 227, 4, 262, - 0, 4, 228, 1, 262, 0, 4, 228, - 4, 262, 0, 4, 229, 1, 262, 0, - 4, 229, 4, 262, 0, 4, 230, 1, - 262, 0, 4, 230, 4, 262, 0, 4, - 231, 1, 262, 0, 4, 231, 4, 262, - 0, 4, 232, 1, 262, 0, 4, 232, - 4, 262, 0, 4, 233, 1, 262, 0, - 4, 233, 4, 262, 0, 4, 234, 1, - 262, 0, 4, 234, 4, 262, 0, 4, - 235, 1, 262, 0, 4, 235, 4, 262, - 0, 4, 236, 1, 262, 0, 4, 236, - 4, 262, 0, 4, 237, 1, 262, 0, - 4, 237, 4, 262, 0, 4, 238, 1, - 262, 0, 4, 238, 4, 262, 0, 4, - 239, 1, 262, 0, 4, 239, 4, 262, - 0, 4, 240, 1, 262, 0, 4, 240, - 4, 262, 0, 4, 241, 1, 262, 0, - 4, 241, 4, 262, 0, 4, 242, 1, - 262, 0, 4, 242, 4, 262, 0, 4, - 243, 1, 262, 0, 4, 243, 4, 262, - 0, 4, 244, 1, 262, 0, 4, 244, - 4, 262, 0, 4, 245, 1, 262, 0, - 4, 245, 4, 262, 0, 4, 246, 1, - 262, 0, 4, 246, 4, 262, 0, 4, - 247, 1, 262, 0, 4, 247, 4, 262, - 0, 4, 248, 1, 262, 0, 4, 248, - 4, 262, 0, 4, 249, 1, 262, 0, - 4, 249, 4, 262, 0, 4, 250, 1, - 262, 0, 4, 250, 4, 262, 0, 4, - 251, 1, 262, 0, 4, 251, 4, 262, - 0, 4, 252, 1, 262, 0, 4, 252, - 4, 262, 0, 4, 253, 1, 262, 0, - 4, 253, 4, 262, 0, 4, 254, 1, - 262, 0, 4, 254, 4, 262, 0, 4, - 255, 1, 262, 0, 4, 255, 4, 262, - 0, 4, 256, 1, 262, 0, 4, 256, - 4, 262, 0, 4, 257, 1, 262, 0, - 4, 257, 4, 262, 0, 4, 258, 1, - 262, 0, 4, 258, 4, 262, 0, 4, - 259, 1, 262, 0, 4, 259, 4, 262, - 0, 4, 260, 1, 262, 0, 4, 260, - 4, 262, 0, 4, 261, 1, 262, 0, - 4, 261, 4, 262, 0, 4, 291, 1, - 292, 0, 4, 291, 4, 292, 0, 4, - 296, 1, 292, 0, 4, 296, 4, 292, - 0, 4, 297, 28, 26, 69, 4, 312, - 7, 367, 1, 4, 317, 310, 1, 312, - 4, 317, 310, 2, 7, 4, 317, 310, - 3, 7, 4, 317, 310, 4, 7, 4, - 317, 310, 4, 312, 4, 318, 310, 1, - 312, 4, 318, 310, 4, 312, 4, 319, - 310, 1, 312, 4, 319, 310, 4, 312, - 4, 320, 310, 1, 312, 4, 320, 310, - 4, 312, 4, 321, 310, 1, 312, 4, - 321, 310, 4, 312, 4, 322, 310, 1, - 312, 4, 322, 310, 4, 312, 4, 323, - 310, 1, 312, 4, 323, 310, 4, 312, - 4, 324, 310, 1, 312, 4, 324, 310, - 4, 312, 4, 325, 310, 1, 312, 4, - 325, 310, 4, 312, 4, 326, 310, 1, - 312, 4, 326, 310, 4, 312, 4, 327, - 310, 1, 312, 4, 327, 310, 4, 312, - 4, 328, 310, 1, 312, 4, 328, 310, - 4, 312, 4, 329, 310, 1, 312, 4, - 329, 310, 4, 312, 4, 330, 310, 1, - 312, 4, 330, 310, 4, 312, 4, 331, - 310, 1, 312, 4, 331, 310, 4, 312, - 4, 332, 310, 1, 312, 4, 332, 310, - 4, 312, 4, 333, 310, 1, 312, 4, - 333, 310, 4, 312, 4, 334, 310, 1, - 312, 4, 334, 310, 4, 312, 4, 335, - 310, 1, 312, 4, 335, 310, 4, 312, - 4, 336, 310, 1, 312, 4, 336, 310, - 4, 312, 4, 337, 310, 1, 312, 4, - 337, 310, 4, 312, 4, 338, 310, 1, - 312, 4, 338, 310, 4, 312, 4, 339, - 310, 1, 312, 4, 339, 310, 4, 312, - 4, 340, 310, 1, 312, 4, 340, 310, - 4, 312, 4, 341, 310, 1, 312, 4, - 341, 310, 4, 312, 4, 342, 310, 1, - 312, 4, 342, 310, 4, 312, 4, 343, - 310, 1, 312, 4, 343, 310, 4, 312, - 4, 344, 310, 1, 312, 4, 344, 310, - 4, 312, 4, 345, 310, 1, 312, 4, - 345, 310, 4, 312, 4, 346, 310, 1, - 312, 4, 346, 310, 4, 312, 4, 347, - 310, 1, 312, 4, 347, 310, 4, 312, - 4, 348, 310, 1, 312, 4, 348, 310, - 4, 312, 4, 349, 310, 1, 312, 4, - 349, 310, 4, 312, 4, 350, 310, 1, - 312, 4, 350, 310, 4, 312, 4, 351, - 310, 1, 312, 4, 351, 310, 4, 312, - 4, 352, 310, 1, 312, 4, 352, 310, - 4, 312, 4, 353, 310, 1, 312, 4, - 353, 310, 4, 312, 4, 354, 310, 1, - 312, 4, 354, 310, 4, 312, 4, 355, - 310, 1, 312, 4, 355, 310, 4, 312, - 4, 356, 310, 1, 312, 4, 356, 310, - 4, 312, 4, 357, 310, 1, 312, 4, - 357, 310, 4, 312, 4, 358, 310, 1, - 312, 4, 358, 310, 4, 312, 4, 359, - 310, 1, 312, 4, 359, 310, 4, 312, - 4, 360, 310, 1, 312, 4, 360, 310, - 4, 312, 4, 361, 310, 1, 312, 4, - 361, 310, 4, 312, 4, 362, 310, 1, - 312, 4, 362, 310, 4, 312, 4, 363, - 310, 1, 312, 4, 363, 310, 4, 312, - 4, 364, 310, 1, 312, 4, 364, 310, - 4, 312, 4, 365, 310, 1, 312, 4, - 365, 310, 4, 312, 4, 366, 310, 1, - 312, 4, 366, 310, 4, 312, 5, 20, - 7, 76, 0, 1, 5, 27, 298, 29, - 296, 1, 5, 27, 298, 29, 296, 2, - 5, 27, 298, 29, 296, 3, 5, 27, - 298, 29, 296, 4, 5, 29, 296, 1, - 292, 0, 5, 29, 296, 4, 292, 0, - 5, 29, 300, 296, 292, 0, 5, 31, - 1, 93, 7, 367, 5, 31, 1, 317, - 310, 312, 5, 31, 2, 317, 310, 7, - 5, 31, 3, 317, 310, 7, 5, 31, - 4, 317, 310, 7, 5, 31, 4, 317, - 310, 312, 5, 33, 38, 316, 311, 8, - 5, 37, 36, 312, 30, 25, 5, 40, - 42, 271, 279, 0, 5, 40, 42, 272, - 279, 0, 5, 40, 42, 273, 279, 0, - 5, 40, 42, 274, 279, 0, 5, 42, - 271, 1, 279, 0, 5, 42, 271, 4, - 279, 0, 5, 42, 272, 1, 279, 0, - 5, 42, 272, 4, 279, 0, 5, 42, - 273, 1, 279, 0, 5, 42, 273, 4, - 279, 0, 5, 42, 274, 1, 279, 0, - 5, 42, 274, 4, 279, 0, 5, 46, - 145, 296, 292, 0, 5, 46, 296, 1, - 292, 0, 5, 46, 296, 4, 292, 0, - 5, 50, 38, 316, 311, 8, 5, 56, + 152, 1, 158, 1, 210, 1, 211, 1, + 212, 1, 213, 1, 214, 1, 215, 1, + 216, 1, 217, 1, 218, 1, 219, 1, + 220, 1, 221, 1, 222, 1, 223, 1, + 224, 1, 225, 1, 226, 1, 227, 1, + 228, 1, 229, 1, 230, 1, 231, 1, + 232, 1, 233, 1, 234, 1, 235, 1, + 236, 1, 237, 1, 238, 1, 239, 1, + 240, 1, 241, 1, 242, 1, 243, 1, + 244, 1, 245, 1, 246, 1, 247, 1, + 248, 1, 249, 1, 250, 1, 251, 1, + 252, 1, 253, 1, 254, 1, 255, 1, + 256, 1, 257, 1, 258, 1, 259, 1, + 260, 1, 261, 1, 262, 1, 263, 1, + 265, 1, 267, 1, 268, 1, 269, 1, + 270, 1, 277, 1, 278, 1, 283, 1, + 285, 1, 290, 1, 293, 1, 295, 1, + 296, 1, 297, 1, 298, 1, 303, 1, + 304, 1, 306, 1, 307, 1, 308, 1, + 309, 1, 310, 1, 311, 1, 313, 1, + 314, 1, 315, 1, 316, 1, 318, 2, + 0, 49, 2, 1, 0, 2, 1, 314, + 2, 1, 370, 2, 2, 5, 2, 2, + 7, 2, 3, 5, 2, 3, 7, 2, + 4, 0, 2, 4, 5, 2, 4, 7, + 2, 4, 314, 2, 5, 2, 2, 5, + 3, 2, 5, 4, 2, 5, 7, 2, + 6, 1, 2, 7, 1, 2, 7, 2, + 2, 7, 3, 2, 7, 4, 2, 7, + 5, 2, 7, 32, 2, 8, 73, 2, + 8, 77, 2, 9, 10, 2, 11, 1, + 2, 12, 1, 2, 13, 14, 2, 16, + 17, 2, 18, 14, 2, 18, 15, 2, + 19, 24, 2, 19, 77, 2, 19, 84, + 2, 20, 0, 2, 20, 7, 2, 22, + 0, 2, 23, 13, 2, 26, 69, 2, + 26, 108, 2, 26, 119, 2, 27, 0, + 2, 27, 1, 2, 27, 2, 2, 27, + 3, 2, 27, 4, 2, 27, 266, 2, + 28, 69, 2, 28, 113, 2, 29, 298, + 2, 29, 302, 2, 30, 25, 2, 31, + 1, 2, 31, 2, 2, 31, 3, 2, + 31, 4, 2, 31, 7, 2, 31, 93, + 2, 32, 7, 2, 33, 8, 2, 33, + 313, 2, 33, 318, 2, 34, 25, 2, + 35, 0, 2, 35, 1, 2, 35, 2, + 2, 35, 3, 2, 35, 4, 2, 35, + 266, 2, 35, 305, 2, 36, 41, 2, + 37, 36, 2, 38, 73, 2, 38, 158, + 2, 38, 283, 2, 38, 295, 2, 38, + 296, 2, 38, 313, 2, 38, 318, 2, + 42, 271, 2, 42, 272, 2, 42, 273, + 2, 42, 274, 2, 42, 275, 2, 42, + 276, 2, 45, 0, 2, 45, 1, 2, + 45, 2, 2, 45, 3, 2, 45, 4, + 2, 46, 0, 2, 46, 1, 2, 46, + 2, 2, 46, 3, 2, 46, 4, 2, + 46, 266, 2, 46, 298, 2, 47, 0, + 2, 47, 1, 2, 47, 2, 2, 47, + 3, 2, 47, 4, 2, 48, 312, 2, + 49, 1, 2, 49, 2, 2, 49, 3, + 2, 49, 4, 2, 56, 7, 2, 56, + 47, 2, 56, 93, 2, 57, 58, 2, + 59, 1, 2, 59, 2, 2, 59, 3, + 2, 59, 4, 2, 60, 313, 2, 62, + 63, 2, 64, 65, 2, 66, 68, 2, + 68, 0, 2, 68, 61, 2, 71, 0, + 2, 71, 313, 2, 75, 23, 2, 79, + 69, 2, 80, 7, 2, 81, 8, 2, + 82, 23, 2, 84, 8, 2, 90, 91, + 2, 92, 1, 2, 92, 2, 2, 92, + 3, 2, 92, 4, 2, 93, 1, 2, + 93, 2, 2, 93, 3, 2, 93, 4, + 2, 93, 7, 2, 94, 95, 2, 96, + 295, 2, 96, 313, 2, 97, 98, 2, + 99, 100, 2, 101, 102, 2, 101, 103, + 2, 101, 104, 2, 105, 106, 2, 107, + 313, 2, 110, 313, 2, 111, 0, 2, + 127, 313, 2, 129, 0, 2, 130, 0, + 2, 131, 0, 2, 132, 0, 2, 133, + 0, 2, 134, 0, 2, 135, 0, 2, + 136, 0, 2, 137, 0, 2, 138, 0, + 2, 139, 0, 2, 140, 0, 2, 141, + 0, 2, 142, 0, 2, 143, 0, 2, + 144, 0, 2, 146, 0, 2, 147, 0, + 2, 148, 0, 2, 149, 0, 2, 150, + 0, 2, 151, 0, 2, 152, 0, 2, + 153, 0, 2, 154, 0, 2, 155, 0, + 2, 156, 313, 2, 157, 313, 2, 159, + 0, 2, 160, 0, 2, 161, 0, 2, + 162, 0, 2, 163, 0, 2, 164, 0, + 2, 165, 0, 2, 166, 0, 2, 167, + 0, 2, 168, 0, 2, 169, 0, 2, + 170, 0, 2, 171, 0, 2, 172, 0, + 2, 173, 0, 2, 174, 0, 2, 175, + 0, 2, 176, 0, 2, 177, 0, 2, + 178, 0, 2, 179, 0, 2, 180, 0, + 2, 181, 0, 2, 182, 0, 2, 183, + 0, 2, 184, 0, 2, 185, 0, 2, + 186, 0, 2, 187, 0, 2, 188, 0, + 2, 189, 0, 2, 190, 0, 2, 191, + 0, 2, 192, 0, 2, 193, 0, 2, + 194, 0, 2, 195, 0, 2, 196, 0, + 2, 197, 0, 2, 198, 0, 2, 199, + 0, 2, 200, 0, 2, 201, 0, 2, + 202, 0, 2, 203, 0, 2, 204, 0, + 2, 205, 0, 2, 206, 0, 2, 207, + 0, 2, 208, 0, 2, 209, 0, 2, + 211, 1, 2, 211, 2, 2, 211, 3, + 2, 211, 4, 2, 212, 1, 2, 212, + 2, 2, 212, 3, 2, 212, 4, 2, + 213, 1, 2, 213, 2, 2, 213, 3, + 2, 213, 4, 2, 214, 1, 2, 214, + 2, 2, 214, 3, 2, 214, 4, 2, + 215, 1, 2, 215, 2, 2, 215, 3, + 2, 215, 4, 2, 216, 1, 2, 216, + 2, 2, 216, 3, 2, 216, 4, 2, + 217, 1, 2, 217, 2, 2, 217, 3, + 2, 217, 4, 2, 218, 1, 2, 218, + 2, 2, 218, 3, 2, 218, 4, 2, + 219, 1, 2, 219, 2, 2, 219, 3, + 2, 219, 4, 2, 220, 1, 2, 220, + 2, 2, 220, 3, 2, 220, 4, 2, + 221, 1, 2, 221, 2, 2, 221, 3, + 2, 221, 4, 2, 222, 1, 2, 222, + 2, 2, 222, 3, 2, 222, 4, 2, + 223, 1, 2, 223, 2, 2, 223, 3, + 2, 223, 4, 2, 224, 1, 2, 224, + 2, 2, 224, 3, 2, 224, 4, 2, + 225, 1, 2, 225, 2, 2, 225, 3, + 2, 225, 4, 2, 226, 1, 2, 226, + 2, 2, 226, 3, 2, 226, 4, 2, + 227, 1, 2, 227, 2, 2, 227, 3, + 2, 227, 4, 2, 228, 1, 2, 228, + 2, 2, 228, 3, 2, 228, 4, 2, + 229, 1, 2, 229, 2, 2, 229, 3, + 2, 229, 4, 2, 230, 1, 2, 230, + 2, 2, 230, 3, 2, 230, 4, 2, + 231, 1, 2, 231, 2, 2, 231, 3, + 2, 231, 4, 2, 232, 1, 2, 232, + 2, 2, 232, 3, 2, 232, 4, 2, + 233, 1, 2, 233, 2, 2, 233, 3, + 2, 233, 4, 2, 234, 1, 2, 234, + 2, 2, 234, 3, 2, 234, 4, 2, + 235, 1, 2, 235, 2, 2, 235, 3, + 2, 235, 4, 2, 236, 1, 2, 236, + 2, 2, 236, 3, 2, 236, 4, 2, + 237, 1, 2, 237, 2, 2, 237, 3, + 2, 237, 4, 2, 238, 1, 2, 238, + 2, 2, 238, 3, 2, 238, 4, 2, + 239, 1, 2, 239, 2, 2, 239, 3, + 2, 239, 4, 2, 240, 1, 2, 240, + 2, 2, 240, 3, 2, 240, 4, 2, + 241, 1, 2, 241, 2, 2, 241, 3, + 2, 241, 4, 2, 242, 1, 2, 242, + 2, 2, 242, 3, 2, 242, 4, 2, + 243, 1, 2, 243, 2, 2, 243, 3, + 2, 243, 4, 2, 244, 1, 2, 244, + 2, 2, 244, 3, 2, 244, 4, 2, + 245, 1, 2, 245, 2, 2, 245, 3, + 2, 245, 4, 2, 246, 1, 2, 246, + 2, 2, 246, 3, 2, 246, 4, 2, + 247, 1, 2, 247, 2, 2, 247, 3, + 2, 247, 4, 2, 248, 1, 2, 248, + 2, 2, 248, 3, 2, 248, 4, 2, + 249, 1, 2, 249, 2, 2, 249, 3, + 2, 249, 4, 2, 250, 1, 2, 250, + 2, 2, 250, 3, 2, 250, 4, 2, + 251, 1, 2, 251, 2, 2, 251, 3, + 2, 251, 4, 2, 252, 1, 2, 252, + 2, 2, 252, 3, 2, 252, 4, 2, + 253, 1, 2, 253, 2, 2, 253, 3, + 2, 253, 4, 2, 254, 1, 2, 254, + 2, 2, 254, 3, 2, 254, 4, 2, + 255, 1, 2, 255, 2, 2, 255, 3, + 2, 255, 4, 2, 256, 1, 2, 256, + 2, 2, 256, 3, 2, 256, 4, 2, + 257, 1, 2, 257, 2, 2, 257, 3, + 2, 257, 4, 2, 258, 1, 2, 258, + 2, 2, 258, 3, 2, 258, 4, 2, + 259, 1, 2, 259, 2, 2, 259, 3, + 2, 259, 4, 2, 260, 1, 2, 260, + 2, 2, 260, 3, 2, 260, 4, 2, + 261, 1, 2, 261, 2, 2, 261, 3, + 2, 261, 4, 2, 262, 1, 2, 262, + 2, 2, 262, 3, 2, 262, 4, 2, + 263, 1, 2, 263, 2, 2, 263, 3, + 2, 263, 4, 2, 264, 0, 2, 267, + 1, 2, 267, 2, 2, 267, 3, 2, + 267, 4, 2, 268, 1, 2, 268, 2, + 2, 268, 3, 2, 268, 4, 2, 269, + 1, 2, 269, 2, 2, 269, 3, 2, + 269, 4, 2, 270, 1, 2, 270, 2, + 2, 270, 3, 2, 270, 4, 2, 277, + 1, 2, 277, 2, 2, 277, 3, 2, + 277, 4, 2, 278, 1, 2, 278, 2, + 2, 278, 3, 2, 278, 4, 2, 281, + 0, 2, 282, 313, 2, 284, 108, 2, + 289, 108, 2, 293, 1, 2, 293, 2, + 2, 293, 3, 2, 293, 4, 2, 294, + 0, 2, 298, 1, 2, 298, 2, 2, + 298, 3, 2, 298, 4, 2, 313, 8, + 2, 314, 1, 2, 314, 4, 2, 317, + 314, 2, 318, 8, 2, 318, 313, 2, + 319, 312, 2, 320, 312, 2, 321, 312, + 2, 322, 312, 2, 323, 312, 2, 324, + 312, 2, 325, 312, 2, 326, 312, 2, + 327, 312, 2, 328, 312, 2, 329, 312, + 2, 330, 312, 2, 331, 312, 2, 332, + 312, 2, 333, 312, 2, 334, 312, 2, + 335, 312, 2, 336, 312, 2, 337, 312, + 2, 338, 312, 2, 339, 312, 2, 340, + 312, 2, 341, 312, 2, 342, 312, 2, + 343, 312, 2, 344, 312, 2, 345, 312, + 2, 346, 312, 2, 347, 312, 2, 348, + 312, 2, 349, 312, 2, 350, 312, 2, + 351, 312, 2, 352, 312, 2, 353, 312, + 2, 354, 312, 2, 355, 312, 2, 356, + 312, 2, 357, 312, 2, 358, 312, 2, + 359, 312, 2, 360, 312, 2, 361, 312, + 2, 362, 312, 2, 363, 312, 2, 364, + 312, 2, 365, 312, 2, 366, 312, 2, + 367, 312, 2, 368, 312, 2, 369, 312, + 2, 370, 1, 3, 0, 49, 1, 3, + 0, 49, 2, 3, 0, 49, 3, 3, + 0, 49, 4, 3, 1, 7, 370, 3, + 1, 32, 7, 3, 1, 71, 0, 3, + 1, 111, 0, 3, 1, 264, 0, 3, + 1, 281, 0, 3, 1, 294, 0, 3, + 1, 314, 370, 3, 2, 7, 32, 3, + 2, 32, 7, 3, 3, 7, 32, 3, + 3, 32, 7, 3, 4, 7, 32, 3, + 4, 32, 7, 3, 4, 71, 0, 3, + 4, 111, 0, 3, 4, 264, 0, 3, + 4, 281, 0, 3, 4, 294, 0, 3, + 4, 314, 7, 3, 5, 7, 2, 3, + 5, 7, 3, 3, 5, 7, 4, 3, + 6, 1, 370, 3, 6, 370, 1, 3, + 7, 2, 5, 3, 7, 2, 32, 3, + 7, 3, 5, 3, 7, 3, 32, 3, + 7, 4, 5, 3, 7, 4, 32, 3, + 7, 370, 1, 3, 9, 11, 1, 3, + 15, 21, 0, 3, 20, 7, 2, 3, + 20, 7, 3, 3, 20, 7, 4, 3, + 20, 83, 7, 3, 23, 13, 14, 3, + 27, 71, 0, 3, 27, 300, 29, 3, + 28, 94, 95, 3, 29, 298, 1, 3, + 29, 298, 2, 3, 29, 298, 3, 3, + 29, 298, 4, 3, 29, 302, 298, 3, + 31, 1, 93, 3, 31, 2, 7, 3, + 31, 2, 93, 3, 31, 3, 7, 3, + 31, 3, 93, 3, 31, 4, 7, 3, + 31, 4, 93, 3, 31, 93, 7, 3, + 31, 317, 314, 3, 31, 319, 312, 3, + 32, 1, 7, 3, 32, 2, 7, 3, + 32, 3, 7, 3, 32, 4, 7, 3, + 33, 89, 8, 3, 33, 313, 8, 3, + 33, 318, 8, 3, 33, 318, 313, 3, + 35, 1, 0, 3, 35, 4, 0, 3, + 37, 36, 314, 3, 38, 156, 313, 3, + 38, 318, 8, 3, 38, 318, 313, 3, + 40, 42, 271, 3, 40, 42, 272, 3, + 40, 42, 273, 3, 40, 42, 274, 3, + 40, 42, 275, 3, 40, 42, 276, 3, + 42, 271, 1, 3, 42, 271, 2, 3, + 42, 271, 3, 3, 42, 271, 4, 3, + 42, 272, 1, 3, 42, 272, 2, 3, + 42, 272, 3, 3, 42, 272, 4, 3, + 42, 273, 1, 3, 42, 273, 2, 3, + 42, 273, 3, 3, 42, 273, 4, 3, + 42, 274, 1, 3, 42, 274, 2, 3, + 42, 274, 3, 3, 42, 274, 4, 3, + 42, 275, 1, 3, 42, 275, 2, 3, + 42, 275, 3, 3, 42, 275, 4, 3, + 42, 276, 1, 3, 42, 276, 2, 3, + 42, 276, 3, 3, 42, 276, 4, 3, + 46, 145, 298, 3, 46, 298, 1, 3, + 46, 298, 2, 3, 46, 298, 3, 3, + 46, 298, 4, 3, 48, 312, 1, 3, + 48, 312, 2, 3, 48, 312, 3, 3, + 48, 312, 4, 3, 48, 312, 314, 3, + 50, 38, 73, 3, 50, 38, 313, 3, + 50, 38, 318, 3, 55, 37, 36, 3, + 56, 7, 2, 3, 56, 7, 3, 3, + 56, 7, 4, 3, 56, 47, 0, 3, + 56, 47, 1, 3, 56, 47, 2, 3, + 56, 47, 3, 3, 56, 47, 4, 3, + 56, 93, 1, 3, 56, 93, 2, 3, + 56, 93, 3, 3, 56, 93, 4, 3, + 66, 68, 0, 3, 66, 68, 61, 3, + 67, 62, 63, 3, 68, 61, 0, 3, + 70, 26, 69, 3, 72, 0, 1, 3, + 75, 23, 13, 3, 76, 0, 1, 3, + 80, 2, 7, 3, 80, 3, 7, 3, + 80, 4, 7, 3, 80, 7, 4, 3, + 82, 23, 13, 3, 85, 0, 1, 3, + 88, 7, 1, 3, 88, 7, 4, 3, + 88, 30, 25, 3, 88, 32, 7, 3, + 90, 30, 25, 3, 90, 91, 314, 3, + 93, 2, 7, 3, 93, 3, 7, 3, + 93, 4, 7, 3, 96, 107, 313, 3, + 96, 156, 313, 3, 97, 98, 0, 3, + 97, 98, 1, 3, 97, 98, 2, 3, + 97, 98, 3, 3, 97, 98, 4, 3, + 97, 98, 29, 3, 99, 100, 0, 3, + 99, 100, 1, 3, 99, 100, 2, 3, + 99, 100, 3, 3, 99, 100, 4, 3, + 99, 100, 29, 3, 105, 106, 0, 3, + 105, 106, 1, 3, 105, 106, 2, 3, + 105, 106, 3, 3, 105, 106, 4, 3, + 110, 112, 283, 3, 110, 292, 313, 3, + 147, 145, 298, 3, 153, 145, 298, 3, + 156, 157, 313, 3, 211, 264, 0, 3, + 212, 264, 0, 3, 213, 264, 0, 3, + 214, 264, 0, 3, 215, 264, 0, 3, + 216, 264, 0, 3, 217, 264, 0, 3, + 218, 264, 0, 3, 219, 264, 0, 3, + 220, 264, 0, 3, 221, 264, 0, 3, + 222, 264, 0, 3, 223, 264, 0, 3, + 224, 264, 0, 3, 225, 264, 0, 3, + 226, 264, 0, 3, 227, 264, 0, 3, + 228, 264, 0, 3, 229, 264, 0, 3, + 230, 264, 0, 3, 231, 264, 0, 3, + 232, 264, 0, 3, 233, 264, 0, 3, + 234, 264, 0, 3, 235, 264, 0, 3, + 236, 264, 0, 3, 237, 264, 0, 3, + 238, 264, 0, 3, 239, 264, 0, 3, + 240, 264, 0, 3, 241, 264, 0, 3, + 242, 264, 0, 3, 243, 264, 0, 3, + 244, 264, 0, 3, 245, 264, 0, 3, + 246, 264, 0, 3, 247, 264, 0, 3, + 248, 264, 0, 3, 249, 264, 0, 3, + 250, 264, 0, 3, 251, 264, 0, 3, + 252, 264, 0, 3, 253, 264, 0, 3, + 254, 264, 0, 3, 255, 264, 0, 3, + 256, 264, 0, 3, 257, 264, 0, 3, + 258, 264, 0, 3, 259, 264, 0, 3, + 260, 264, 0, 3, 261, 264, 0, 3, + 262, 264, 0, 3, 263, 264, 0, 3, + 280, 37, 36, 3, 285, 286, 0, 3, + 285, 287, 0, 3, 288, 110, 313, 3, + 290, 291, 0, 3, 292, 110, 313, 3, + 293, 294, 0, 3, 298, 294, 0, 3, + 301, 28, 304, 3, 313, 8, 89, 3, + 314, 7, 1, 3, 314, 7, 4, 3, + 314, 30, 25, 3, 314, 370, 1, 3, + 316, 30, 25, 3, 318, 313, 8, 3, + 319, 312, 1, 3, 319, 312, 2, 3, + 319, 312, 3, 3, 319, 312, 4, 3, + 319, 312, 7, 3, 319, 312, 314, 3, + 320, 312, 1, 3, 320, 312, 2, 3, + 320, 312, 3, 3, 320, 312, 4, 3, + 320, 312, 314, 3, 321, 312, 1, 3, + 321, 312, 2, 3, 321, 312, 3, 3, + 321, 312, 4, 3, 321, 312, 314, 3, + 322, 312, 1, 3, 322, 312, 2, 3, + 322, 312, 3, 3, 322, 312, 4, 3, + 322, 312, 314, 3, 323, 312, 1, 3, + 323, 312, 2, 3, 323, 312, 3, 3, + 323, 312, 4, 3, 323, 312, 314, 3, + 324, 312, 1, 3, 324, 312, 2, 3, + 324, 312, 3, 3, 324, 312, 4, 3, + 324, 312, 314, 3, 325, 312, 1, 3, + 325, 312, 2, 3, 325, 312, 3, 3, + 325, 312, 4, 3, 325, 312, 314, 3, + 326, 312, 1, 3, 326, 312, 2, 3, + 326, 312, 3, 3, 326, 312, 4, 3, + 326, 312, 314, 3, 327, 312, 1, 3, + 327, 312, 2, 3, 327, 312, 3, 3, + 327, 312, 4, 3, 327, 312, 314, 3, + 328, 312, 1, 3, 328, 312, 2, 3, + 328, 312, 3, 3, 328, 312, 4, 3, + 328, 312, 314, 3, 329, 312, 1, 3, + 329, 312, 2, 3, 329, 312, 3, 3, + 329, 312, 4, 3, 329, 312, 314, 3, + 330, 312, 1, 3, 330, 312, 2, 3, + 330, 312, 3, 3, 330, 312, 4, 3, + 330, 312, 314, 3, 331, 312, 1, 3, + 331, 312, 2, 3, 331, 312, 3, 3, + 331, 312, 4, 3, 331, 312, 314, 3, + 332, 312, 1, 3, 332, 312, 2, 3, + 332, 312, 3, 3, 332, 312, 4, 3, + 332, 312, 314, 3, 333, 312, 1, 3, + 333, 312, 2, 3, 333, 312, 3, 3, + 333, 312, 4, 3, 333, 312, 314, 3, + 334, 312, 1, 3, 334, 312, 2, 3, + 334, 312, 3, 3, 334, 312, 4, 3, + 334, 312, 314, 3, 335, 312, 1, 3, + 335, 312, 2, 3, 335, 312, 3, 3, + 335, 312, 4, 3, 335, 312, 314, 3, + 336, 312, 1, 3, 336, 312, 2, 3, + 336, 312, 3, 3, 336, 312, 4, 3, + 336, 312, 314, 3, 337, 312, 1, 3, + 337, 312, 2, 3, 337, 312, 3, 3, + 337, 312, 4, 3, 337, 312, 314, 3, + 338, 312, 1, 3, 338, 312, 2, 3, + 338, 312, 3, 3, 338, 312, 4, 3, + 338, 312, 314, 3, 339, 312, 1, 3, + 339, 312, 2, 3, 339, 312, 3, 3, + 339, 312, 4, 3, 339, 312, 314, 3, + 340, 312, 1, 3, 340, 312, 2, 3, + 340, 312, 3, 3, 340, 312, 4, 3, + 340, 312, 314, 3, 341, 312, 1, 3, + 341, 312, 2, 3, 341, 312, 3, 3, + 341, 312, 4, 3, 341, 312, 314, 3, + 342, 312, 1, 3, 342, 312, 2, 3, + 342, 312, 3, 3, 342, 312, 4, 3, + 342, 312, 314, 3, 343, 312, 1, 3, + 343, 312, 2, 3, 343, 312, 3, 3, + 343, 312, 4, 3, 343, 312, 314, 3, + 344, 312, 1, 3, 344, 312, 2, 3, + 344, 312, 3, 3, 344, 312, 4, 3, + 344, 312, 314, 3, 345, 312, 1, 3, + 345, 312, 2, 3, 345, 312, 3, 3, + 345, 312, 4, 3, 345, 312, 314, 3, + 346, 312, 1, 3, 346, 312, 2, 3, + 346, 312, 3, 3, 346, 312, 4, 3, + 346, 312, 314, 3, 347, 312, 1, 3, + 347, 312, 2, 3, 347, 312, 3, 3, + 347, 312, 4, 3, 347, 312, 314, 3, + 348, 312, 1, 3, 348, 312, 2, 3, + 348, 312, 3, 3, 348, 312, 4, 3, + 348, 312, 314, 3, 349, 312, 1, 3, + 349, 312, 2, 3, 349, 312, 3, 3, + 349, 312, 4, 3, 349, 312, 314, 3, + 350, 312, 1, 3, 350, 312, 2, 3, + 350, 312, 3, 3, 350, 312, 4, 3, + 350, 312, 314, 3, 351, 312, 1, 3, + 351, 312, 2, 3, 351, 312, 3, 3, + 351, 312, 4, 3, 351, 312, 314, 3, + 352, 312, 1, 3, 352, 312, 2, 3, + 352, 312, 3, 3, 352, 312, 4, 3, + 352, 312, 314, 3, 353, 312, 1, 3, + 353, 312, 2, 3, 353, 312, 3, 3, + 353, 312, 4, 3, 353, 312, 314, 3, + 354, 312, 1, 3, 354, 312, 2, 3, + 354, 312, 3, 3, 354, 312, 4, 3, + 354, 312, 314, 3, 355, 312, 1, 3, + 355, 312, 2, 3, 355, 312, 3, 3, + 355, 312, 4, 3, 355, 312, 314, 3, + 356, 312, 1, 3, 356, 312, 2, 3, + 356, 312, 3, 3, 356, 312, 4, 3, + 356, 312, 314, 3, 357, 312, 1, 3, + 357, 312, 2, 3, 357, 312, 3, 3, + 357, 312, 4, 3, 357, 312, 314, 3, + 358, 312, 1, 3, 358, 312, 2, 3, + 358, 312, 3, 3, 358, 312, 4, 3, + 358, 312, 314, 3, 359, 312, 1, 3, + 359, 312, 2, 3, 359, 312, 3, 3, + 359, 312, 4, 3, 359, 312, 314, 3, + 360, 312, 1, 3, 360, 312, 2, 3, + 360, 312, 3, 3, 360, 312, 4, 3, + 360, 312, 314, 3, 361, 312, 1, 3, + 361, 312, 2, 3, 361, 312, 3, 3, + 361, 312, 4, 3, 361, 312, 314, 3, + 362, 312, 1, 3, 362, 312, 2, 3, + 362, 312, 3, 3, 362, 312, 4, 3, + 362, 312, 314, 3, 363, 312, 1, 3, + 363, 312, 2, 3, 363, 312, 3, 3, + 363, 312, 4, 3, 363, 312, 314, 3, + 364, 312, 1, 3, 364, 312, 2, 3, + 364, 312, 3, 3, 364, 312, 4, 3, + 364, 312, 314, 3, 365, 312, 1, 3, + 365, 312, 2, 3, 365, 312, 3, 3, + 365, 312, 4, 3, 365, 312, 314, 3, + 366, 312, 1, 3, 366, 312, 2, 3, + 366, 312, 3, 3, 366, 312, 4, 3, + 366, 312, 314, 3, 367, 312, 1, 3, + 367, 312, 2, 3, 367, 312, 3, 3, + 367, 312, 4, 3, 367, 312, 314, 3, + 368, 312, 1, 3, 368, 312, 2, 3, + 368, 312, 3, 3, 368, 312, 4, 3, + 368, 312, 314, 3, 369, 312, 1, 3, + 369, 312, 2, 3, 369, 312, 3, 3, + 369, 312, 4, 3, 369, 312, 314, 3, + 370, 1, 6, 4, 1, 7, 370, 32, + 4, 1, 314, 32, 7, 4, 4, 314, + 7, 32, 4, 4, 314, 32, 7, 4, + 6, 1, 7, 370, 4, 6, 1, 85, + 0, 4, 6, 72, 0, 1, 4, 6, + 76, 0, 1, 4, 6, 85, 0, 1, + 4, 7, 6, 370, 1, 4, 7, 72, + 0, 1, 4, 7, 370, 1, 6, 4, + 7, 370, 1, 32, 4, 18, 15, 21, + 0, 4, 20, 83, 7, 2, 4, 20, + 83, 7, 3, 4, 20, 83, 7, 4, + 4, 27, 1, 71, 0, 4, 27, 4, + 71, 0, 4, 27, 300, 29, 298, 4, + 29, 298, 294, 0, 4, 29, 302, 298, + 1, 4, 29, 302, 298, 2, 4, 29, + 302, 298, 3, 4, 29, 302, 298, 4, + 4, 31, 1, 7, 370, 4, 31, 1, + 317, 314, 4, 31, 1, 319, 312, 4, + 31, 2, 93, 7, 4, 31, 2, 317, + 314, 4, 31, 2, 319, 312, 4, 31, + 3, 93, 7, 4, 31, 3, 317, 314, + 4, 31, 3, 319, 312, 4, 31, 4, + 93, 7, 4, 31, 4, 317, 314, 4, + 31, 4, 319, 312, 4, 31, 319, 312, + 7, 4, 33, 38, 318, 8, 4, 33, + 50, 38, 318, 4, 33, 318, 313, 8, + 4, 37, 36, 30, 25, 4, 38, 318, + 313, 8, 4, 40, 37, 36, 41, 4, + 40, 42, 271, 1, 4, 40, 42, 271, + 2, 4, 40, 42, 271, 3, 4, 40, + 42, 271, 4, 4, 40, 42, 272, 1, + 4, 40, 42, 272, 2, 4, 40, 42, + 272, 3, 4, 40, 42, 272, 4, 4, + 40, 42, 273, 1, 4, 40, 42, 273, + 2, 4, 40, 42, 273, 3, 4, 40, + 42, 273, 4, 4, 40, 42, 274, 1, + 4, 40, 42, 274, 2, 4, 40, 42, + 274, 3, 4, 40, 42, 274, 4, 4, + 40, 42, 275, 1, 4, 40, 42, 275, + 2, 4, 40, 42, 275, 3, 4, 40, + 42, 275, 4, 4, 40, 42, 276, 1, + 4, 40, 42, 276, 2, 4, 40, 42, + 276, 3, 4, 40, 42, 276, 4, 4, + 42, 273, 281, 0, 4, 42, 274, 281, + 0, 4, 42, 275, 281, 0, 4, 42, + 276, 281, 0, 4, 43, 39, 37, 36, + 4, 44, 39, 37, 36, 4, 46, 145, + 298, 1, 4, 46, 145, 298, 2, 4, + 46, 145, 298, 3, 4, 46, 145, 298, + 4, 4, 46, 298, 294, 0, 4, 48, + 312, 1, 314, 4, 48, 312, 4, 314, + 4, 50, 38, 8, 73, 4, 56, 55, + 37, 36, 4, 66, 68, 61, 0, 4, + 75, 23, 13, 14, 4, 82, 23, 13, + 14, 4, 88, 32, 1, 7, 4, 88, + 32, 2, 7, 4, 88, 32, 3, 7, + 4, 88, 32, 4, 7, 4, 90, 91, + 30, 25, 4, 93, 1, 7, 370, 4, + 96, 156, 157, 313, 4, 97, 98, 1, + 0, 4, 97, 98, 4, 0, 4, 97, + 98, 29, 298, 4, 99, 100, 1, 0, + 4, 99, 100, 4, 0, 4, 99, 100, + 29, 298, 4, 105, 106, 1, 0, 4, + 105, 106, 4, 0, 4, 147, 145, 298, + 1, 4, 147, 145, 298, 2, 4, 147, + 145, 298, 3, 4, 147, 145, 298, 4, + 4, 147, 303, 37, 36, 4, 153, 145, + 298, 1, 4, 153, 145, 298, 2, 4, + 153, 145, 298, 3, 4, 153, 145, 298, + 4, 4, 211, 1, 264, 0, 4, 211, + 4, 264, 0, 4, 212, 1, 264, 0, + 4, 212, 4, 264, 0, 4, 213, 1, + 264, 0, 4, 213, 4, 264, 0, 4, + 214, 1, 264, 0, 4, 214, 4, 264, + 0, 4, 215, 1, 264, 0, 4, 215, + 4, 264, 0, 4, 216, 1, 264, 0, + 4, 216, 4, 264, 0, 4, 217, 1, + 264, 0, 4, 217, 4, 264, 0, 4, + 218, 1, 264, 0, 4, 218, 4, 264, + 0, 4, 219, 1, 264, 0, 4, 219, + 4, 264, 0, 4, 220, 1, 264, 0, + 4, 220, 4, 264, 0, 4, 221, 1, + 264, 0, 4, 221, 4, 264, 0, 4, + 222, 1, 264, 0, 4, 222, 4, 264, + 0, 4, 223, 1, 264, 0, 4, 223, + 4, 264, 0, 4, 224, 1, 264, 0, + 4, 224, 4, 264, 0, 4, 225, 1, + 264, 0, 4, 225, 4, 264, 0, 4, + 226, 1, 264, 0, 4, 226, 4, 264, + 0, 4, 227, 1, 264, 0, 4, 227, + 4, 264, 0, 4, 228, 1, 264, 0, + 4, 228, 4, 264, 0, 4, 229, 1, + 264, 0, 4, 229, 4, 264, 0, 4, + 230, 1, 264, 0, 4, 230, 4, 264, + 0, 4, 231, 1, 264, 0, 4, 231, + 4, 264, 0, 4, 232, 1, 264, 0, + 4, 232, 4, 264, 0, 4, 233, 1, + 264, 0, 4, 233, 4, 264, 0, 4, + 234, 1, 264, 0, 4, 234, 4, 264, + 0, 4, 235, 1, 264, 0, 4, 235, + 4, 264, 0, 4, 236, 1, 264, 0, + 4, 236, 4, 264, 0, 4, 237, 1, + 264, 0, 4, 237, 4, 264, 0, 4, + 238, 1, 264, 0, 4, 238, 4, 264, + 0, 4, 239, 1, 264, 0, 4, 239, + 4, 264, 0, 4, 240, 1, 264, 0, + 4, 240, 4, 264, 0, 4, 241, 1, + 264, 0, 4, 241, 4, 264, 0, 4, + 242, 1, 264, 0, 4, 242, 4, 264, + 0, 4, 243, 1, 264, 0, 4, 243, + 4, 264, 0, 4, 244, 1, 264, 0, + 4, 244, 4, 264, 0, 4, 245, 1, + 264, 0, 4, 245, 4, 264, 0, 4, + 246, 1, 264, 0, 4, 246, 4, 264, + 0, 4, 247, 1, 264, 0, 4, 247, + 4, 264, 0, 4, 248, 1, 264, 0, + 4, 248, 4, 264, 0, 4, 249, 1, + 264, 0, 4, 249, 4, 264, 0, 4, + 250, 1, 264, 0, 4, 250, 4, 264, + 0, 4, 251, 1, 264, 0, 4, 251, + 4, 264, 0, 4, 252, 1, 264, 0, + 4, 252, 4, 264, 0, 4, 253, 1, + 264, 0, 4, 253, 4, 264, 0, 4, + 254, 1, 264, 0, 4, 254, 4, 264, + 0, 4, 255, 1, 264, 0, 4, 255, + 4, 264, 0, 4, 256, 1, 264, 0, + 4, 256, 4, 264, 0, 4, 257, 1, + 264, 0, 4, 257, 4, 264, 0, 4, + 258, 1, 264, 0, 4, 258, 4, 264, + 0, 4, 259, 1, 264, 0, 4, 259, + 4, 264, 0, 4, 260, 1, 264, 0, + 4, 260, 4, 264, 0, 4, 261, 1, + 264, 0, 4, 261, 4, 264, 0, 4, + 262, 1, 264, 0, 4, 262, 4, 264, + 0, 4, 263, 1, 264, 0, 4, 263, + 4, 264, 0, 4, 293, 1, 294, 0, + 4, 293, 4, 294, 0, 4, 298, 1, + 294, 0, 4, 298, 4, 294, 0, 4, + 299, 28, 26, 69, 4, 314, 7, 370, + 1, 4, 319, 312, 1, 314, 4, 319, + 312, 2, 7, 4, 319, 312, 3, 7, + 4, 319, 312, 4, 7, 4, 319, 312, + 4, 314, 4, 320, 312, 1, 314, 4, + 320, 312, 4, 314, 4, 321, 312, 1, + 314, 4, 321, 312, 4, 314, 4, 322, + 312, 1, 314, 4, 322, 312, 4, 314, + 4, 323, 312, 1, 314, 4, 323, 312, + 4, 314, 4, 324, 312, 1, 314, 4, + 324, 312, 4, 314, 4, 325, 312, 1, + 314, 4, 325, 312, 4, 314, 4, 326, + 312, 1, 314, 4, 326, 312, 4, 314, + 4, 327, 312, 1, 314, 4, 327, 312, + 4, 314, 4, 328, 312, 1, 314, 4, + 328, 312, 4, 314, 4, 329, 312, 1, + 314, 4, 329, 312, 4, 314, 4, 330, + 312, 1, 314, 4, 330, 312, 4, 314, + 4, 331, 312, 1, 314, 4, 331, 312, + 4, 314, 4, 332, 312, 1, 314, 4, + 332, 312, 4, 314, 4, 333, 312, 1, + 314, 4, 333, 312, 4, 314, 4, 334, + 312, 1, 314, 4, 334, 312, 4, 314, + 4, 335, 312, 1, 314, 4, 335, 312, + 4, 314, 4, 336, 312, 1, 314, 4, + 336, 312, 4, 314, 4, 337, 312, 1, + 314, 4, 337, 312, 4, 314, 4, 338, + 312, 1, 314, 4, 338, 312, 4, 314, + 4, 339, 312, 1, 314, 4, 339, 312, + 4, 314, 4, 340, 312, 1, 314, 4, + 340, 312, 4, 314, 4, 341, 312, 1, + 314, 4, 341, 312, 4, 314, 4, 342, + 312, 1, 314, 4, 342, 312, 4, 314, + 4, 343, 312, 1, 314, 4, 343, 312, + 4, 314, 4, 344, 312, 1, 314, 4, + 344, 312, 4, 314, 4, 345, 312, 1, + 314, 4, 345, 312, 4, 314, 4, 346, + 312, 1, 314, 4, 346, 312, 4, 314, + 4, 347, 312, 1, 314, 4, 347, 312, + 4, 314, 4, 348, 312, 1, 314, 4, + 348, 312, 4, 314, 4, 349, 312, 1, + 314, 4, 349, 312, 4, 314, 4, 350, + 312, 1, 314, 4, 350, 312, 4, 314, + 4, 351, 312, 1, 314, 4, 351, 312, + 4, 314, 4, 352, 312, 1, 314, 4, + 352, 312, 4, 314, 4, 353, 312, 1, + 314, 4, 353, 312, 4, 314, 4, 354, + 312, 1, 314, 4, 354, 312, 4, 314, + 4, 355, 312, 1, 314, 4, 355, 312, + 4, 314, 4, 356, 312, 1, 314, 4, + 356, 312, 4, 314, 4, 357, 312, 1, + 314, 4, 357, 312, 4, 314, 4, 358, + 312, 1, 314, 4, 358, 312, 4, 314, + 4, 359, 312, 1, 314, 4, 359, 312, + 4, 314, 4, 360, 312, 1, 314, 4, + 360, 312, 4, 314, 4, 361, 312, 1, + 314, 4, 361, 312, 4, 314, 4, 362, + 312, 1, 314, 4, 362, 312, 4, 314, + 4, 363, 312, 1, 314, 4, 363, 312, + 4, 314, 4, 364, 312, 1, 314, 4, + 364, 312, 4, 314, 4, 365, 312, 1, + 314, 4, 365, 312, 4, 314, 4, 366, + 312, 1, 314, 4, 366, 312, 4, 314, + 4, 367, 312, 1, 314, 4, 367, 312, + 4, 314, 4, 368, 312, 1, 314, 4, + 368, 312, 4, 314, 4, 369, 312, 1, + 314, 4, 369, 312, 4, 314, 5, 20, + 7, 76, 0, 1, 5, 27, 300, 29, + 298, 1, 5, 27, 300, 29, 298, 2, + 5, 27, 300, 29, 298, 3, 5, 27, + 300, 29, 298, 4, 5, 29, 298, 1, + 294, 0, 5, 29, 298, 4, 294, 0, + 5, 29, 302, 298, 294, 0, 5, 31, + 1, 93, 7, 370, 5, 31, 1, 319, + 312, 314, 5, 31, 2, 319, 312, 7, + 5, 31, 3, 319, 312, 7, 5, 31, + 4, 319, 312, 7, 5, 31, 4, 319, + 312, 314, 5, 33, 38, 318, 313, 8, + 5, 37, 36, 314, 30, 25, 5, 40, + 42, 273, 281, 0, 5, 40, 42, 274, + 281, 0, 5, 40, 42, 275, 281, 0, + 5, 40, 42, 276, 281, 0, 5, 42, + 273, 1, 281, 0, 5, 42, 273, 4, + 281, 0, 5, 42, 274, 1, 281, 0, + 5, 42, 274, 4, 281, 0, 5, 42, + 275, 1, 281, 0, 5, 42, 275, 4, + 281, 0, 5, 42, 276, 1, 281, 0, + 5, 42, 276, 4, 281, 0, 5, 46, + 145, 298, 294, 0, 5, 46, 298, 1, + 294, 0, 5, 46, 298, 4, 294, 0, + 5, 50, 38, 318, 313, 8, 5, 56, 7, 72, 0, 1, 5, 80, 7, 85, - 0, 1, 5, 90, 91, 312, 30, 25, - 5, 97, 98, 29, 296, 1, 5, 97, - 98, 29, 296, 2, 5, 97, 98, 29, - 296, 3, 5, 97, 98, 29, 296, 4, - 5, 99, 100, 29, 296, 1, 5, 99, - 100, 29, 296, 2, 5, 99, 100, 29, - 296, 3, 5, 99, 100, 29, 296, 4, - 5, 147, 145, 296, 292, 0, 5, 153, - 145, 296, 292, 0, 5, 277, 43, 39, - 37, 36, 5, 317, 310, 1, 7, 367, - 5, 317, 310, 4, 312, 7, 5, 317, - 310, 312, 7, 4, 6, 20, 83, 7, - 85, 0, 1, 6, 27, 298, 29, 296, - 292, 0, 6, 29, 300, 296, 1, 292, - 0, 6, 29, 300, 296, 4, 292, 0, - 6, 31, 1, 317, 310, 7, 367, 6, - 31, 4, 317, 310, 312, 7, 6, 33, - 50, 38, 316, 311, 8, 6, 40, 42, - 271, 1, 279, 0, 6, 40, 42, 271, - 4, 279, 0, 6, 40, 42, 272, 1, - 279, 0, 6, 40, 42, 272, 4, 279, - 0, 6, 40, 42, 273, 1, 279, 0, - 6, 40, 42, 273, 4, 279, 0, 6, - 40, 42, 274, 1, 279, 0, 6, 40, - 42, 274, 4, 279, 0, 6, 46, 145, - 296, 1, 292, 0, 6, 46, 145, 296, - 4, 292, 0, 6, 97, 98, 29, 296, - 292, 0, 6, 99, 100, 29, 296, 292, - 0, 6, 147, 145, 296, 1, 292, 0, - 6, 147, 145, 296, 4, 292, 0, 6, - 153, 145, 296, 1, 292, 0, 6, 153, - 145, 296, 4, 292, 0, 6, 317, 310, - 1, 312, 7, 367, 6, 317, 310, 312, - 7, 367, 1, 7, 27, 298, 29, 296, - 1, 292, 0, 7, 27, 298, 29, 296, - 4, 292, 0, 7, 31, 1, 317, 310, - 312, 7, 367, 7, 97, 98, 29, 296, - 1, 292, 0, 7, 97, 98, 29, 296, - 4, 292, 0, 7, 99, 100, 29, 296, - 1, 292, 0, 7, 99, 100, 29, 296, - 4, 292, 0 + 0, 1, 5, 90, 91, 314, 30, 25, + 5, 97, 98, 29, 298, 1, 5, 97, + 98, 29, 298, 2, 5, 97, 98, 29, + 298, 3, 5, 97, 98, 29, 298, 4, + 5, 99, 100, 29, 298, 1, 5, 99, + 100, 29, 298, 2, 5, 99, 100, 29, + 298, 3, 5, 99, 100, 29, 298, 4, + 5, 147, 145, 298, 294, 0, 5, 153, + 145, 298, 294, 0, 5, 279, 43, 39, + 37, 36, 5, 319, 312, 1, 7, 370, + 5, 319, 312, 4, 314, 7, 5, 319, + 312, 314, 7, 4, 6, 20, 83, 7, + 85, 0, 1, 6, 27, 300, 29, 298, + 294, 0, 6, 29, 302, 298, 1, 294, + 0, 6, 29, 302, 298, 4, 294, 0, + 6, 31, 1, 319, 312, 7, 370, 6, + 31, 4, 319, 312, 314, 7, 6, 33, + 50, 38, 318, 313, 8, 6, 40, 42, + 273, 1, 281, 0, 6, 40, 42, 273, + 4, 281, 0, 6, 40, 42, 274, 1, + 281, 0, 6, 40, 42, 274, 4, 281, + 0, 6, 40, 42, 275, 1, 281, 0, + 6, 40, 42, 275, 4, 281, 0, 6, + 40, 42, 276, 1, 281, 0, 6, 40, + 42, 276, 4, 281, 0, 6, 46, 145, + 298, 1, 294, 0, 6, 46, 145, 298, + 4, 294, 0, 6, 97, 98, 29, 298, + 294, 0, 6, 99, 100, 29, 298, 294, + 0, 6, 147, 145, 298, 1, 294, 0, + 6, 147, 145, 298, 4, 294, 0, 6, + 153, 145, 298, 1, 294, 0, 6, 153, + 145, 298, 4, 294, 0, 6, 319, 312, + 1, 314, 7, 370, 6, 319, 312, 314, + 7, 370, 1, 7, 27, 300, 29, 298, + 1, 294, 0, 7, 27, 300, 29, 298, + 4, 294, 0, 7, 31, 1, 319, 312, + 314, 7, 370, 7, 97, 98, 29, 298, + 1, 294, 0, 7, 97, 98, 29, 298, + 4, 294, 0, 7, 99, 100, 29, 298, + 1, 294, 0, 7, 99, 100, 29, 298, + 4, 294, 0 }; static const short _zone_scanner_cond_offsets[] = { @@ -859,187 +867,189 @@ static const short _zone_scanner_cond_offsets[] = { 92, 92, 92, 94, 94, 96, 98, 98, 100, 102, 102, 102, 102, 102, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 106, 106, 106, 108, 108, 110, 110, 110, - 110, 112, 114, 114, 114, 114, 114, 114, - 116, 116, 118, 118, 120, 120, 122, 122, - 122, 122, 124, 124, 124, 126, 126, 126, - 126, 128, 128, 130, 130, 130, 130, 132, - 132, 132, 134, 134, 134, 134, 134, 134, - 136, 136, 136, 136, 136, 136, 138, 141, - 143, 143, 145, 147, 149, 151, 151, 153, - 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 158, 160, 163, 165, 167, 170, - 172, 172, 174, 177, 179, 181, 183, 185, - 187, 190, 192, 194, 196, 198, 200, 202, - 204, 206, 208, 210, 212, 214, 216, 218, - 220, 222, 224, 226, 228, 230, 233, 235, - 235, 235, 235, 235, 235, 235, 235, 235, - 235, 237, 239, 241, 244, 246, 248, 250, - 252, 254, 256, 258, 260, 262, 264, 266, - 268, 270, 272, 274, 276, 278, 280, 282, - 284, 286, 291, 296, 301, 306, 306, 306, - 308, 308, 308, 308, 310, 310, 312, 315, - 317, 319, 324, 329, 334, 339, 342, 344, - 349, 354, 356, 358, 360, 362, 364, 366, - 368, 370, 372, 374, 376, 378, 380, 382, - 384, 386, 388, 391, 394, 396, 399, 401, - 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 401, 401, 401, 401, - 401, 402, 403, 403, 403, 403, 403, 404, - 406, 408, 410, 412, 412, 414, 414, 416, - 419, 421, 423, 423, 425, 427, 427, 427, - 427, 427, 427, 429, 432, 434, 436, 438, - 440, 440, 442, 444, 444, 444, 444, 444, - 444, 446, 449, 451, 454, 457, 457, 457, - 457, 457, 459, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, - 464, 466, 468, 468, 468, 470, 473, 473, - 473, 475, 475, 475, 475, 475, 475, 477, - 479, 479, 479, 481, 481, 481, 481, 483, - 483, 483, 483, 485, 485, 485, 485, 485, + 106, 106, 106, 108, 108, 108, 108, 108, + 108, 108, 110, 112, 112, 112, 112, 114, + 116, 116, 116, 116, 116, 116, 118, 118, + 120, 120, 122, 122, 124, 124, 124, 124, + 126, 126, 126, 128, 128, 128, 128, 130, + 130, 132, 132, 132, 132, 134, 134, 134, + 136, 136, 136, 136, 136, 136, 138, 138, + 138, 138, 138, 138, 140, 143, 145, 145, + 147, 149, 151, 153, 153, 155, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, + 160, 162, 165, 167, 169, 172, 174, 174, + 176, 179, 181, 183, 185, 187, 189, 192, + 194, 196, 198, 200, 202, 204, 206, 208, + 210, 212, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 235, 237, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 239, + 241, 243, 246, 248, 250, 252, 254, 256, + 258, 260, 262, 264, 266, 268, 270, 272, + 274, 276, 278, 280, 282, 284, 286, 288, + 293, 298, 303, 308, 308, 308, 310, 310, + 310, 310, 312, 312, 314, 317, 319, 321, + 326, 331, 336, 341, 344, 346, 351, 356, + 358, 360, 362, 364, 366, 368, 370, 372, + 374, 376, 378, 380, 382, 384, 386, 388, + 390, 393, 396, 398, 401, 403, 403, 403, + 403, 403, 403, 403, 403, 403, 403, 403, + 403, 403, 403, 403, 403, 403, 403, 404, + 405, 405, 405, 405, 405, 406, 408, 410, + 412, 414, 414, 416, 416, 418, 421, 423, + 425, 425, 427, 429, 429, 429, 429, 429, + 429, 431, 434, 436, 438, 440, 442, 442, + 444, 446, 446, 446, 446, 446, 446, 448, + 451, 453, 456, 459, 459, 459, 459, 459, + 461, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 466, 468, 470, 470, + 470, 472, 475, 475, 475, 477, 477, 477, + 477, 477, 477, 479, 481, 481, 481, 483, + 483, 483, 483, 485, 485, 485, 485, 487, 487, 487, 487, 487, 489, 489, 489, 489, - 491, 493, 493, 493, 495, 495, 495, 495, - 495, 497, 497, 499, 499, 499, 499, 499, + 491, 491, 491, 491, 493, 495, 495, 495, + 497, 497, 497, 497, 497, 499, 499, 501, 501, 501, 501, 501, 503, 503, 503, 503, - 503, 503, 503, 503, 505, 505, 505, 507, - 509, 509, 509, 511, 511, 513, 513, 515, - 517, 517, 517, 517, 517, 519, 521, 521, - 521, 521, 521, 523, 523, 525, 527, 527, - 529, 531, 531, 531, 531, 531, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 533, - 535, 535, 535, 537, 537, 539, 539, 539, - 539, 541, 543, 543, 543, 543, 543, 543, - 545, 545, 547, 547, 549, 549, 551, 551, - 551, 551, 553, 553, 553, 555, 555, 555, - 555, 557, 557, 559, 559, 559, 559, 561, - 561, 561, 563, 563, 563, 563, 563, 563, - 565, 565, 565, 565, 565, 565, 567, 567, - 567, 567, 569, 569, 571, 573, 575, 577, - 579, 579, 581, 584, 587, 590, 592, 594, - 596, 598, 598, 600, 603, 606, 608, 611, - 611, 611, 611, 611, 611, 611, 611, 611, - 611, 611, 611, 611, 611, 611, 611, 611, - 611, 611, 611, 611, 611, 611, 611, 611, - 611, 611, 611, 611, 611, 611, 611, 611, - 611, 611, 611, 611, 611, 611, 611, 611, - 611, 611, 611, 611, 611, 611, 611, 611, - 611, 611, 611, 611, 611, 611, 611, 611, - 613, 615, 615, 615, 615, 615, 615, 617, - 620, 620, 620, 620, 620, 620, 620, 620, - 620, 622, 624, 624, 626, 626, 626, 626, - 626, 626, 626, 626, 626, 626, 626, 626, - 626, 626, 628, 628, 628, 628, 628, 628, - 628, 628, 628, 628, 628, 628, 628, 628, + 505, 505, 505, 505, 505, 505, 505, 505, + 507, 507, 507, 509, 511, 511, 511, 513, + 513, 515, 515, 517, 519, 519, 519, 519, + 519, 521, 523, 523, 523, 523, 523, 525, + 525, 527, 529, 529, 531, 533, 533, 533, + 533, 533, 535, 535, 535, 535, 535, 535, + 535, 535, 535, 535, 537, 537, 537, 539, + 539, 539, 539, 539, 539, 539, 541, 543, + 543, 543, 543, 545, 547, 547, 547, 547, + 547, 547, 549, 549, 551, 551, 553, 553, + 555, 555, 555, 555, 557, 557, 557, 559, + 559, 559, 559, 561, 561, 563, 563, 563, + 563, 565, 565, 565, 567, 567, 567, 567, + 567, 567, 569, 569, 569, 569, 569, 569, + 571, 571, 571, 571, 573, 573, 575, 577, + 579, 581, 583, 583, 585, 588, 591, 594, + 596, 598, 600, 602, 602, 604, 607, 610, + 612, 615, 615, 615, 615, 615, 615, 615, + 615, 615, 615, 615, 615, 615, 615, 615, + 615, 615, 615, 615, 615, 615, 615, 615, + 615, 615, 615, 615, 615, 615, 615, 615, + 615, 615, 615, 615, 615, 615, 615, 615, + 615, 615, 615, 615, 615, 615, 615, 615, + 615, 615, 615, 615, 615, 615, 615, 615, + 615, 615, 617, 619, 619, 619, 619, 619, + 619, 621, 624, 624, 624, 624, 624, 624, + 624, 624, 624, 626, 628, 628, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, - 630, 630, 630, 632, 632, 632, 632, 632, - 634, 634, 634, 634, 634, 634, 634, 634, - 634, 634, 634, 634, 634, 634, 634, 636, - 636, 636, 636, 636, 636, 636, 636, 636, - 636, 636, 636, 636, 636, 636, 636, 638, - 638, 638, 638, 638, 640, 640, 640, 640, - 640, 640, 640, 640, 642, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 646, 648, 650, + 630, 630, 630, 630, 632, 632, 632, 632, + 632, 632, 632, 632, 632, 632, 632, 632, + 632, 632, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 636, 636, 636, + 636, 636, 638, 638, 638, 638, 638, 638, + 638, 638, 638, 638, 638, 638, 638, 638, + 638, 640, 640, 640, 640, 640, 640, 640, + 640, 640, 640, 640, 640, 640, 640, 640, + 640, 642, 642, 642, 642, 642, 644, 644, + 644, 644, 644, 644, 644, 644, 646, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, - 668, 668, 668, 668, 668, 671, 673, 673, - 675, 678, 680, 680, 682, 685, 687, 687, - 689, 692, 695, 698, 698, 700, 702, 702, - 705, 705, 707, 709, 709, 712, 712, 714, - 716, 716, 719, 719, 721, 723, 726, 726, - 726, 726, 728, 730, 732, 734, 736, 738, + 668, 670, 672, 672, 672, 672, 672, 675, + 677, 677, 679, 682, 684, 684, 686, 689, + 691, 691, 693, 696, 699, 702, 702, 704, + 706, 706, 709, 709, 711, 713, 713, 716, + 716, 718, 720, 720, 723, 723, 725, 727, + 730, 730, 730, 730, 732, 734, 736, 738, 740, 742, 744, 746, 748, 750, 752, 754, - 756, 758, 758, 760, 762, 764, 766, 768, - 770, 772, 774, 777, 779, 781, 784, 786, - 788, 790, 793, 795, 797, 799, 802, 804, - 806, 808, 811, 813, 816, 818, 820, 823, - 826, 829, 831, 834, 836, 838, 841, 844, - 844, 846, 848, 850, 852, 854, 856, 856, - 859, 862, 865, 865, 867, 869, 871, 873, - 875, 877, 879, 881, 883, 885, 885, 888, - 891, 894, 897, 900, 900, 902, 904, 906, - 908, 910, 912, 914, 917, 920, 923, 925, - 925, 925, 925, 925, 925, 927, 930, 930, - 930, 930, 930, 932, 934, 936, 938, 940, - 942, 942, 944, 947, 950, 953, 956, 956, - 958, 960, 962, 964, 964, 966, 969, 972, - 975, 975, 977, 979, 981, 983, 985, 987, - 993, 1004, 1006, 1009, 1015, 1018, 1029, 1032, - 1035, 1038, 1040, 1042, 1044, 1046, 1052, 1055, - 1058, 1060, 1062, 1064, 1066, 1072, 1075, 1078, - 1080, 1082, 1084, 1086, 1092, 1095, 1098, 1101, - 1101, 1103, 1105, 1107, 1109, 1111, 1113, 1115, + 756, 758, 760, 762, 762, 764, 766, 768, + 770, 772, 774, 776, 778, 781, 783, 785, + 788, 790, 792, 794, 797, 799, 801, 803, + 806, 808, 810, 812, 815, 817, 820, 822, + 824, 827, 830, 833, 835, 838, 840, 842, + 845, 848, 848, 850, 852, 854, 856, 858, + 860, 860, 863, 866, 869, 869, 871, 873, + 875, 877, 879, 881, 883, 885, 887, 889, + 889, 892, 895, 898, 901, 904, 904, 906, + 908, 910, 912, 914, 916, 918, 921, 924, + 927, 929, 929, 929, 929, 929, 929, 931, + 934, 934, 934, 934, 934, 936, 938, 940, + 942, 944, 946, 946, 948, 951, 954, 957, + 960, 960, 962, 964, 966, 968, 968, 970, + 973, 976, 979, 979, 981, 983, 985, 987, + 989, 991, 997, 1008, 1010, 1013, 1019, 1022, + 1033, 1036, 1039, 1042, 1044, 1046, 1048, 1050, + 1056, 1059, 1062, 1064, 1066, 1068, 1070, 1076, + 1079, 1082, 1084, 1086, 1088, 1090, 1096, 1099, + 1102, 1105, 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119, 1121, 1123, 1125, 1127, 1129, 1131, - 1133, 1135, 1138, 1141, 1144, 1147, 1150, 1153, - 1156, 1159, 1159, 1159, 1159, 1159, 1161, 1163, - 1165, 1167, 1169, 1171, 1173, 1176, 1179, 1182, - 1182, 1184, 1184, 1186, 1188, 1190, 1192, 1194, - 1196, 1198, 1200, 1200, 1200, 1200, 1200, 1200, - 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, - 1200, 1203, 1203, 1205, 1208, 1211, 1214, 1214, - 1216, 1218, 1220, 1222, 1224, 1226, 1226, 1226, - 1226, 1229, 1232, 1235, 1235, 1237, 1239, 1241, - 1243, 1245, 1247, 1247, 1249, 1252, 1255, 1258, - 1261, 1261, 1263, 1265, 1265, 1265, 1268, 1268, - 1270, 1272, 1274, 1276, 1278, 1280, 1280, 1282, - 1285, 1288, 1291, 1294, 1294, 1296, 1298, 1298, - 1301, 1301, 1303, 1305, 1305, 1305, 1305, 1305, - 1305, 1305, 1305, 1305, 1305, 1308, 1308, 1308, - 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, - 1308, 1308, 1308, 1310, 1312, 1314, 1316, 1316, - 1319, 1322, 1322, 1324, 1326, 1328, 1330, 1330, - 1333, 1336, 1336, 1338, 1340, 1340, 1340, 1343, - 1343, 1345, 1347, 1349, 1351, 1353, 1355, 1355, - 1358, 1361, 1364, 1366, 1368, 1370, 1372, 1374, - 1376, 1378, 1380, 1382, 1384, 1384, 1384, 1384, - 1384, 1384, 1384, 1384, 1384, 1386, 1386, 1388, - 1391, 1391, 1391, 1393, 1396, 1396, 1398, 1401, - 1403, 1403, 1405, 1408, 1411, 1411, 1411, 1413, - 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, - 1416, 1416, 1416, 1418, 1421, 1421, 1421, 1423, - 1426, 1428, 1431, 1433, 1436, 1438, 1441, 1441, - 1441, 1441, 1441, 1443, 1446, 1446, 1448, 1451, - 1451, 1453, 1456, 1456, 1462, 1465, 1476, 1479, - 1490, 1493, 1493, 1493, 1493, 1493, 1493, 1493, - 1493, 1495, 1498, 1498, 1498, 1500, 1503, 1503, - 1503, 1503, 1503, 1503, 1503, 1503 + 1133, 1135, 1137, 1139, 1142, 1145, 1148, 1151, + 1154, 1157, 1160, 1163, 1163, 1163, 1163, 1163, + 1165, 1167, 1169, 1171, 1173, 1175, 1177, 1180, + 1183, 1186, 1186, 1188, 1188, 1190, 1192, 1194, + 1196, 1198, 1200, 1202, 1204, 1204, 1204, 1204, + 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, + 1204, 1204, 1204, 1207, 1207, 1209, 1212, 1215, + 1218, 1218, 1220, 1222, 1224, 1226, 1228, 1230, + 1230, 1230, 1230, 1233, 1236, 1239, 1239, 1241, + 1243, 1245, 1247, 1249, 1251, 1251, 1253, 1256, + 1259, 1262, 1265, 1265, 1267, 1269, 1269, 1269, + 1272, 1272, 1274, 1276, 1278, 1280, 1282, 1284, + 1284, 1286, 1289, 1292, 1295, 1298, 1298, 1300, + 1302, 1302, 1305, 1305, 1307, 1309, 1309, 1309, + 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1312, + 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, + 1312, 1312, 1312, 1312, 1312, 1314, 1316, 1318, + 1320, 1320, 1323, 1326, 1326, 1328, 1330, 1332, + 1334, 1334, 1337, 1340, 1340, 1342, 1344, 1344, + 1344, 1347, 1347, 1349, 1351, 1353, 1355, 1357, + 1359, 1359, 1362, 1365, 1368, 1370, 1372, 1374, + 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1388, + 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1390, + 1390, 1392, 1395, 1395, 1395, 1397, 1400, 1400, + 1402, 1405, 1407, 1407, 1409, 1412, 1415, 1415, + 1415, 1417, 1420, 1420, 1420, 1420, 1420, 1420, + 1420, 1420, 1420, 1420, 1420, 1422, 1425, 1425, + 1425, 1427, 1430, 1432, 1435, 1437, 1440, 1442, + 1445, 1445, 1445, 1445, 1445, 1447, 1450, 1450, + 1452, 1455, 1455, 1457, 1460, 1460, 1466, 1469, + 1480, 1483, 1494, 1497, 1497, 1497, 1497, 1497, + 1497, 1497, 1497, 1499, 1502, 1502, 1502, 1504, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507 }; static const char _zone_scanner_cond_lengths[] = { @@ -1059,39 +1069,40 @@ static const char _zone_scanner_cond_lengths[] = { 0, 0, 2, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 2, 0, 2, 0, 0, 0, - 2, 2, 0, 0, 0, 0, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 0, - 0, 2, 0, 0, 2, 0, 0, 0, - 2, 0, 2, 0, 0, 0, 2, 0, - 0, 2, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 2, 3, 2, - 0, 2, 2, 2, 2, 0, 2, 3, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 3, 2, 2, 3, 2, - 0, 2, 3, 2, 2, 2, 2, 2, - 3, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 2, 0, 0, 0, 0, 0, + 0, 2, 2, 0, 0, 0, 2, 2, + 0, 0, 0, 0, 0, 2, 0, 2, + 0, 2, 0, 2, 0, 0, 0, 2, + 0, 0, 2, 0, 0, 0, 2, 0, + 2, 0, 0, 0, 2, 0, 0, 2, + 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 2, 3, 2, 0, 2, + 2, 2, 2, 0, 2, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 2, 3, 2, 2, 3, 2, 0, 2, + 3, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 2, + 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 5, 5, 5, 5, 0, 0, 2, - 0, 0, 0, 2, 0, 2, 3, 2, - 2, 5, 5, 5, 5, 3, 2, 5, - 5, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 5, + 5, 5, 5, 0, 0, 2, 0, 0, + 0, 2, 0, 2, 3, 2, 2, 5, + 5, 5, 5, 3, 2, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 3, 2, 3, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 1, 2, - 2, 2, 2, 0, 2, 0, 2, 3, - 2, 2, 0, 2, 2, 0, 0, 0, - 0, 0, 2, 3, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 1, 2, 2, 2, + 2, 0, 2, 0, 2, 3, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, - 2, 3, 2, 3, 3, 0, 0, 0, - 0, 2, 3, 0, 0, 0, 0, 0, + 2, 3, 2, 2, 2, 2, 0, 2, + 2, 0, 0, 0, 0, 0, 2, 3, + 2, 3, 3, 0, 0, 0, 0, 2, + 3, 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, @@ -1112,52 +1123,53 @@ static const char _zone_scanner_cond_lengths[] = { 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, 2, - 2, 2, 0, 0, 2, 3, 0, 0, - 2, 0, 0, 0, 0, 0, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 2, 2, 0, 0, + 2, 3, 0, 0, 2, 0, 0, 0, + 0, 0, 2, 2, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, - 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, - 2, 0, 0, 2, 0, 0, 0, 0, - 2, 0, 2, 0, 0, 0, 0, 2, - 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 2, 2, - 0, 0, 2, 0, 2, 0, 2, 2, - 0, 0, 0, 0, 2, 2, 0, 0, - 0, 0, 2, 0, 2, 2, 0, 2, - 2, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 2, 2, 0, 0, 2, + 0, 0, 0, 0, 2, 0, 2, 0, + 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 2, 2, 0, 0, 2, 0, + 2, 0, 2, 2, 0, 0, 0, 0, + 2, 2, 0, 0, 0, 0, 2, 0, + 2, 2, 0, 2, 2, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 2, 2, 0, + 0, 0, 2, 2, 0, 0, 0, 0, + 0, 2, 0, 2, 0, 2, 0, 2, + 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, - 2, 2, 0, 0, 0, 0, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 0, - 0, 2, 0, 0, 2, 0, 0, 0, - 2, 0, 2, 0, 0, 0, 2, 0, + 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 2, 0, 0, - 0, 2, 0, 2, 2, 2, 2, 2, - 0, 2, 3, 3, 3, 2, 2, 2, - 2, 0, 2, 3, 3, 2, 3, 0, + 0, 0, 0, 2, 0, 2, 2, 2, + 2, 2, 0, 2, 3, 3, 3, 2, + 2, 2, 2, 0, 2, 3, 3, 2, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 2, 0, 0, 0, 0, 0, 2, 3, + 0, 2, 2, 0, 0, 0, 0, 0, + 2, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 0, + 2, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 2, 2, 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, @@ -1177,69 +1189,69 @@ static const char _zone_scanner_cond_lengths[] = { 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, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 0, 0, 0, 0, 3, 2, 0, 2, - 3, 2, 0, 2, 3, 2, 0, 2, - 3, 3, 3, 0, 2, 2, 0, 3, - 0, 2, 2, 0, 3, 0, 2, 2, - 0, 3, 0, 2, 2, 3, 0, 0, - 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 0, 0, 0, 3, 2, + 0, 2, 3, 2, 0, 2, 3, 2, + 0, 2, 3, 3, 3, 0, 2, 2, + 0, 3, 0, 2, 2, 0, 3, 0, + 2, 2, 0, 3, 0, 2, 2, 3, + 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 0, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 2, 2, 3, 2, 2, - 2, 3, 2, 2, 2, 3, 2, 2, - 2, 3, 2, 3, 2, 2, 3, 3, - 3, 2, 3, 2, 2, 3, 3, 0, - 2, 2, 2, 2, 2, 2, 0, 3, + 2, 2, 2, 0, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 2, 3, + 2, 2, 2, 3, 2, 2, 2, 3, + 2, 2, 2, 3, 2, 3, 2, 2, + 3, 3, 3, 2, 3, 2, 2, 3, + 3, 0, 2, 2, 2, 2, 2, 2, + 0, 3, 3, 3, 0, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, + 3, 3, 3, 3, 3, 0, 2, 2, + 2, 2, 2, 2, 2, 3, 3, 3, + 2, 0, 0, 0, 0, 0, 2, 3, + 0, 0, 0, 0, 2, 2, 2, 2, + 2, 2, 0, 2, 3, 3, 3, 3, + 0, 2, 2, 2, 2, 0, 2, 3, 3, 3, 0, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 0, 3, 3, - 3, 3, 3, 0, 2, 2, 2, 2, - 2, 2, 2, 3, 3, 3, 2, 0, - 0, 0, 0, 0, 2, 3, 0, 0, - 0, 0, 2, 2, 2, 2, 2, 2, - 0, 2, 3, 3, 3, 3, 0, 2, - 2, 2, 2, 0, 2, 3, 3, 3, - 0, 2, 2, 2, 2, 2, 2, 6, - 11, 2, 3, 6, 3, 11, 3, 3, + 2, 6, 11, 2, 3, 6, 3, 11, + 3, 3, 3, 2, 2, 2, 2, 6, + 3, 3, 2, 2, 2, 2, 6, 3, 3, 2, 2, 2, 2, 6, 3, 3, - 2, 2, 2, 2, 6, 3, 3, 2, - 2, 2, 2, 6, 3, 3, 3, 0, - 2, 2, 2, 2, 2, 2, 2, 2, + 3, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 3, - 3, 0, 0, 0, 0, 2, 2, 2, - 2, 2, 2, 2, 3, 3, 3, 0, - 2, 0, 2, 2, 2, 2, 2, 2, - 2, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 2, 3, 3, 3, 0, 2, - 2, 2, 2, 2, 2, 0, 0, 0, - 3, 3, 3, 0, 2, 2, 2, 2, - 2, 2, 0, 2, 3, 3, 3, 3, - 0, 2, 2, 0, 0, 3, 0, 2, - 2, 2, 2, 2, 2, 0, 2, 3, - 3, 3, 3, 0, 2, 2, 0, 3, - 0, 2, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 2, 2, 0, 3, - 3, 0, 2, 2, 2, 2, 0, 3, - 3, 0, 2, 2, 0, 0, 3, 0, - 2, 2, 2, 2, 2, 2, 0, 3, - 3, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 0, 0, 0, 2, + 2, 2, 2, 2, 2, 2, 3, 3, + 3, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 2, 3, - 0, 0, 2, 3, 0, 2, 3, 2, - 0, 2, 3, 3, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 2, 3, 3, 3, + 0, 2, 2, 2, 2, 2, 2, 0, + 0, 0, 3, 3, 3, 0, 2, 2, + 2, 2, 2, 2, 0, 2, 3, 3, + 3, 3, 0, 2, 2, 0, 0, 3, + 0, 2, 2, 2, 2, 2, 2, 0, + 2, 3, 3, 3, 3, 0, 2, 2, + 0, 3, 0, 2, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 2, 2, 2, + 0, 3, 3, 0, 2, 2, 2, 2, + 0, 3, 3, 0, 2, 2, 0, 0, + 3, 0, 2, 2, 2, 2, 2, 2, + 0, 3, 3, 3, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, + 2, 3, 0, 0, 2, 3, 0, 2, + 3, 2, 0, 2, 3, 3, 0, 0, + 2, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 3, 0, 0, + 2, 3, 2, 3, 2, 3, 2, 3, + 0, 0, 0, 0, 2, 3, 0, 2, + 3, 0, 2, 3, 0, 6, 3, 11, + 3, 11, 3, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 2, 3, - 2, 3, 2, 3, 2, 3, 0, 0, - 0, 0, 2, 3, 0, 2, 3, 0, - 2, 3, 0, 6, 3, 11, 3, 11, - 3, 0, 0, 0, 0, 0, 0, 0, - 2, 3, 0, 0, 2, 3, 0, 0, - 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0 }; static const short _zone_scanner_cond_keys[] = { @@ -1277,20 +1289,20 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, + 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, @@ -1300,10 +1312,11 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, + 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, + 59, 59, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, @@ -1314,24 +1327,23 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 58, 59, 59, 60, 127, -128, 9, - 10, 10, 11, 58, 59, 59, 60, 127, -128, 9, 10, 10, 11, 58, 59, 59, 60, 127, -128, 9, 10, 10, 11, 58, - 59, 59, 60, 127, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, 10, 10, 59, 59, -128, 9, + 59, 59, 60, 127, -128, 9, 10, 10, + 11, 58, 59, 59, 60, 127, -128, 9, 10, 10, 11, 58, 59, 59, 60, 127, - -128, 9, 10, 10, 11, 58, 59, 59, - 60, 127, -128, 9, 10, 10, 11, 58, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 58, 59, 59, 60, 127, -128, 9, 10, 10, 11, 58, 59, 59, 60, 127, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 11, 58, 59, 59, 60, 127, -128, 9, 10, 10, 11, 58, 59, 59, - 60, 127, -128, 9, 10, 10, 11, 58, - 59, 59, 60, 127, 10, 10, 59, 59, + 60, 127, -128, 9, 10, 10, 11, 127, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 58, 59, 59, 60, 127, -128, 9, + 10, 10, 11, 58, 59, 59, 60, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, @@ -1340,28 +1352,29 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, -128, 9, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, -128, 9, 10, 10, 11, 127, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 41, 41, 10, 10, + 10, 10, 10, 10, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, - 41, 41, 10, 10, 10, 10, 10, 10, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, + -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, -128, 9, - 10, 10, 11, 127, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, @@ -1639,50 +1652,49 @@ static const char _zone_scanner_cond_spaces[] = { 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 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, 7, 7, 7, 7, 7, 7, 7, - 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 7, 7, 7, + 7, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 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, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, + 7, 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, 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, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 7, 7, 7, 7, + 7, 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, 0, 0, 0, 0, 0, 7, 7, + 7, 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, 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, 2, - 3, 4, 4, 4, 0, 0, 0, 0, + 0, 2, 3, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 0, 0, 0, 7, 7, - 7, 7, 7, 7, 7, 7, 0, 0, - 0, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -1693,16 +1705,17 @@ static const char _zone_scanner_cond_spaces[] = { 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, - 7, 0, 0, 0, 7, 7, 7, 7, + 0, 0, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, + 7, 7, 7, 7, 7, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 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, @@ -1711,20 +1724,19 @@ static const char _zone_scanner_cond_spaces[] = { 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, 7, - 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 0, 0, - 0, 7, 7, 7, 7, 0, 0, 0, - 7, 7, 7, 7, 7, 7, 0, 0, - 0, 7, 7, 7, 7, 7, 7, 0, - 0, 0, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 0, 7, 7, 7, + 7, 0, 0, 0, 7, 7, 7, 7, + 7, 7, 0, 0, 0, 7, 7, 7, + 7, 7, 7, 0, 0, 0, 7, 7, + 7, 7, 7, 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, @@ -1736,53 +1748,55 @@ static const char _zone_scanner_cond_spaces[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, + 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 10, + 13, 10, 10, 10, 13, 5, 8, 5, + 5, 5, 5, 5, 5, 8, 5, 5, + 1, 1, 8, 8, 8, 6, 11, 6, + 6, 6, 11, 9, 9, 9, 10, 13, + 10, 10, 10, 5, 5, 5, 13, 5, + 5, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 13, 10, 10, 10, - 13, 5, 8, 5, 5, 5, 5, 5, - 5, 8, 5, 5, 1, 1, 8, 8, - 8, 6, 11, 6, 6, 6, 11, 9, - 9, 9, 10, 13, 10, 10, 10, 5, - 5, 5, 13, 5, 5, 12, 12, 12, + 0, 0, 10, 13, 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 13, 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 13, 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 13, - 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 0, + 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 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, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 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, @@ -1792,24 +1806,24 @@ static const char _zone_scanner_cond_spaces[] = { 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, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, - 0, 0, 7, 7, 0, 0, 0, 7, - 7, 0, 0, 0, 7, 7, 0, 0, + 7, 7, 7, 7, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, - 0, 0, 0, 7, 7, 0, 0, 0, - 7, 7, 0, 0, 0, 7, 7, 0, - 0, 0, 7, 7, 0, 0, 0, 7, + 7, 7, 0, 0, 0, 0, 0, 7, + 7, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, - 6, 11, 6, 6, 6, 11, 9, 9, - 9, 5, 8, 5, 5, 5, 5, 5, - 5, 8, 5, 5, 8, 8, 8, 10, - 13, 10, 10, 10, 5, 5, 5, 13, - 5, 5, 12, 12, 12, 7, 7, 0, - 0, 0, 7, 7, 0, 0, 0, 0 + 7, 7, 0, 0, 0, 7, 7, 0, + 0, 0, 7, 7, 0, 0, 0, 7, + 7, 0, 0, 0, 6, 11, 6, 6, + 6, 11, 9, 9, 9, 5, 8, 5, + 5, 5, 5, 5, 5, 8, 5, 5, + 8, 8, 8, 10, 13, 10, 10, 10, + 5, 5, 5, 13, 5, 5, 12, 12, + 12, 7, 7, 0, 0, 0, 7, 7, + 0, 0, 0, 0 }; static const short _zone_scanner_key_offsets[] = { @@ -1829,187 +1843,189 @@ static const short _zone_scanner_key_offsets[] = { 790, 792, 794, 804, 806, 816, 828, 830, 841, 853, 855, 857, 859, 861, 871, 873, 875, 877, 879, 881, 883, 885, 887, 889, - 899, 901, 903, 913, 919, 929, 931, 933, - 935, 945, 955, 967, 969, 971, 973, 975, - 985, 987, 997, 999, 1009, 1011, 1021, 1023, - 1025, 1027, 1037, 1039, 1041, 1051, 1057, 1059, - 1061, 1071, 1073, 1083, 1085, 1087, 1089, 1101, - 1103, 1105, 1115, 1117, 1119, 1121, 1123, 1125, - 1135, 1137, 1139, 1141, 1143, 1145, 1155, 1158, - 1204, 1208, 1214, 1258, 1276, 1284, 1296, 1304, - 1307, 1308, 1314, 1316, 1318, 1320, 1322, 1324, - 1326, 1332, 1338, 1382, 1385, 1403, 1447, 1450, - 1458, 1470, 1478, 1481, 1497, 1553, 1571, 1590, - 1636, 1642, 1656, 1670, 1728, 1746, 1760, 1770, - 1782, 1794, 1806, 1820, 1832, 1846, 1856, 1866, - 1880, 1900, 1914, 1924, 1934, 1944, 1950, 1964, - 1966, 1968, 1970, 1972, 1974, 1980, 1982, 1984, - 1990, 1998, 2018, 2064, 2070, 2088, 2146, 2164, - 2178, 2188, 2200, 2212, 2224, 2238, 2250, 2264, - 2274, 2284, 2298, 2318, 2332, 2342, 2352, 2362, - 2377, 2423, 2437, 2451, 2467, 2483, 2485, 2487, - 2497, 2499, 2501, 2503, 2513, 2515, 2525, 2531, - 2545, 2559, 2575, 2591, 2607, 2623, 2626, 2684, - 2698, 2712, 2728, 2740, 2748, 2758, 2768, 2778, - 2790, 2800, 2812, 2820, 2828, 2840, 2858, 2870, - 2878, 2886, 2894, 2900, 2906, 2916, 2922, 2931, - 2932, 2933, 2944, 2960, 2976, 2978, 2980, 2982, - 2998, 3004, 3010, 3016, 3028, 3034, 3036, 3038, - 3050, 3058, 3066, 3072, 3078, 3080, 3082, 3090, - 3096, 3104, 3124, 3132, 3133, 3143, 3155, 3165, - 3168, 3174, 3190, 3200, 3218, 3226, 3227, 3229, - 3231, 3233, 3243, 3251, 3254, 3260, 3272, 3280, - 3298, 3308, 3326, 3334, 3335, 3337, 3339, 3341, - 3351, 3359, 3365, 3381, 3384, 3387, 3394, 3401, - 3409, 3417, 3434, 3437, 3438, 3474, 3486, 3488, - 3490, 3496, 3498, 3500, 3502, 3508, 3510, 3516, - 3526, 3528, 3534, 3538, 3540, 3542, 3544, 3546, - 3552, 3558, 3560, 3562, 3568, 3570, 3572, 3574, - 3580, 3582, 3584, 3586, 3592, 3598, 3600, 3602, - 3604, 3610, 3614, 3616, 3618, 3624, 3626, 3628, - 3630, 3636, 3644, 3646, 3648, 3654, 3656, 3658, - 3660, 3661, 3667, 3668, 3674, 3678, 3680, 3682, - 3684, 3690, 3692, 3694, 3696, 3702, 3704, 3706, - 3708, 3710, 3712, 3714, 3716, 3722, 3726, 3728, - 3734, 3740, 3746, 3747, 3753, 3754, 3760, 3762, - 3768, 3774, 3778, 3780, 3782, 3784, 3790, 3796, - 3802, 3804, 3806, 3808, 3814, 3816, 3822, 3830, - 3832, 3839, 3847, 3849, 3851, 3853, 3855, 3861, - 3863, 3865, 3867, 3869, 3871, 3873, 3875, 3877, - 3879, 3885, 3887, 3889, 3895, 3901, 3907, 3909, - 3911, 3913, 3919, 3925, 3937, 3939, 3941, 3943, - 3945, 3951, 3953, 3959, 3961, 3967, 3969, 3975, - 3977, 3979, 3981, 3987, 3989, 3991, 3997, 4003, - 4005, 4007, 4013, 4015, 4021, 4023, 4025, 4027, - 4035, 4037, 4039, 4045, 4047, 4049, 4051, 4053, - 4055, 4061, 4063, 4065, 4067, 4069, 4071, 4077, - 4087, 4133, 4149, 4151, 4153, 4163, 4166, 4176, - 4178, 4188, 4192, 4194, 4196, 4198, 4200, 4210, - 4220, 4222, 4224, 4234, 4236, 4238, 4240, 4250, - 4252, 4254, 4256, 4266, 4272, 4274, 4276, 4278, - 4288, 4292, 4294, 4296, 4306, 4308, 4310, 4312, - 4322, 4334, 4336, 4338, 4348, 4350, 4352, 4354, - 4355, 4365, 4366, 4376, 4380, 4382, 4384, 4386, - 4396, 4398, 4400, 4402, 4412, 4414, 4416, 4418, - 4420, 4422, 4424, 4426, 4436, 4440, 4442, 4452, - 4462, 4468, 4469, 4479, 4480, 4490, 4492, 4502, - 4512, 4516, 4518, 4520, 4522, 4532, 4542, 4548, - 4550, 4552, 4554, 4564, 4566, 4576, 4588, 4590, - 4601, 4613, 4615, 4617, 4619, 4621, 4631, 4633, - 4635, 4637, 4639, 4641, 4643, 4645, 4647, 4649, - 4659, 4661, 4663, 4673, 4679, 4689, 4691, 4693, - 4695, 4705, 4715, 4727, 4729, 4731, 4733, 4735, - 4745, 4747, 4757, 4759, 4769, 4771, 4781, 4783, - 4785, 4787, 4797, 4799, 4801, 4811, 4817, 4819, - 4821, 4831, 4833, 4843, 4845, 4847, 4849, 4861, - 4863, 4865, 4875, 4877, 4879, 4881, 4883, 4885, - 4895, 4897, 4899, 4901, 4903, 4905, 4915, 4917, - 4919, 4921, 4931, 4933, 4943, 4949, 4957, 4965, - 4977, 4983, 4999, 5002, 5005, 5008, 5014, 5023, - 5033, 5045, 5051, 5067, 5070, 5073, 5081, 5084, - 5092, 5093, 5094, 5095, 5103, 5104, 5105, 5106, - 5107, 5108, 5109, 5117, 5118, 5119, 5127, 5128, - 5129, 5131, 5132, 5133, 5134, 5135, 5143, 5144, - 5145, 5146, 5147, 5155, 5156, 5157, 5159, 5169, - 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, - 5178, 5179, 5180, 5181, 5182, 5183, 5191, 5192, - 5193, 5194, 5195, 5203, 5204, 5205, 5206, 5214, - 5224, 5243, 5244, 5245, 5246, 5247, 5254, 5264, - 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, - 5281, 5291, 5307, 5308, 5318, 5319, 5320, 5321, - 5329, 5336, 5343, 5351, 5359, 5367, 5368, 5375, - 5383, 5391, 5408, 5409, 5410, 5411, 5413, 5414, - 5415, 5416, 5417, 5418, 5422, 5425, 5430, 5433, - 5447, 5450, 5451, 5452, 5453, 5454, 5455, 5463, - 5470, 5479, 5486, 5504, 5511, 5512, 5513, 5515, - 5528, 5534, 5535, 5536, 5537, 5538, 5539, 5540, - 5541, 5542, 5543, 5548, 5552, 5554, 5558, 5569, - 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, - 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5597, - 5598, 5599, 5600, 5601, 5611, 5612, 5613, 5614, - 5615, 5618, 5620, 5623, 5635, 5651, 5652, 5664, - 5672, 5676, 5682, 5684, 5691, 5693, 5695, 5697, - 5699, 5700, 5701, 5703, 5705, 5707, 5708, 5714, - 5718, 5722, 5723, 5725, 5727, 5729, 5731, 5737, - 5739, 5741, 5743, 5745, 5746, 5747, 5749, 5751, - 5753, 5754, 5755, 5756, 5762, 5763, 5764, 5766, - 5768, 5770, 5771, 5772, 5773, 5779, 5781, 5782, - 5783, 5784, 5785, 5791, 5792, 5793, 5799, 5801, - 5803, 5805, 5807, 5809, 5811, 5813, 5819, 5821, - 5823, 5825, 5827, 5829, 5831, 5835, 5837, 5839, - 5845, 5847, 5849, 5855, 5857, 5859, 5863, 5865, - 5866, 5872, 5874, 5876, 5879, 5886, 5888, 5890, - 5892, 5894, 5895, 5896, 5898, 5900, 5902, 5903, - 5909, 5910, 5911, 5917, 5918, 5919, 5925, 5939, - 5947, 5949, 5951, 5953, 5955, 5957, 5963, 5969, - 5971, 5973, 5975, 5977, 5979, 5985, 5989, 5991, - 5997, 5999, 6001, 6007, 6009, 6011, 6013, 6019, - 6021, 6023, 6029, 6033, 6035, 6041, 6043, 6045, - 6051, 6053, 6055, 6057, 6063, 6065, 6067, 6073, - 6077, 6085, 6087, 6089, 6091, 6093, 6095, 6101, - 6104, 6113, 6122, 6128, 6137, 6143, 6158, 6164, - 6172, 6180, 6188, 6206, 6214, 6232, 6240, 6258, - 6266, 6284, 6292, 6304, 6312, 6315, 6323, 6335, - 6343, 6346, 6354, 6366, 6374, 6377, 6385, 6397, - 6405, 6408, 6411, 6414, 6420, 6426, 6438, 6444, - 6447, 6456, 6462, 6477, 6483, 6486, 6488, 6496, - 6511, 6517, 6520, 6526, 6536, 6552, 6555, 6562, - 6575, 6577, 6585, 6595, 6603, 6613, 6622, 6630, - 6636, 6644, 6652, 6662, 6670, 6680, 6689, 6697, - 6703, 6712, 6714, 6728, 6740, 6754, 6766, 6780, - 6792, 6806, 6816, 6819, 6832, 6845, 6848, 6861, - 6874, 6884, 6887, 6900, 6913, 6923, 6926, 6939, - 6952, 6962, 6965, 6971, 6974, 6982, 6990, 6993, - 6996, 6999, 7005, 7008, 7016, 7024, 7027, 7030, - 7032, 7040, 7048, 7056, 7064, 7072, 7087, 7093, - 7096, 7099, 7102, 7104, 7112, 7120, 7128, 7140, - 7146, 7158, 7164, 7176, 7182, 7197, 7203, 7206, - 7209, 7212, 7215, 7218, 7224, 7230, 7238, 7246, - 7258, 7264, 7277, 7279, 7282, 7285, 7288, 7301, - 7303, 7304, 7307, 7310, 7312, 7324, 7327, 7328, - 7335, 7342, 7344, 7352, 7364, 7370, 7378, 7386, - 7398, 7404, 7420, 7423, 7426, 7429, 7432, 7434, - 7442, 7450, 7458, 7470, 7476, 7492, 7495, 7498, - 7501, 7503, 7511, 7521, 7527, 7535, 7543, 7550, - 7584, 7597, 7599, 7602, 7616, 7619, 7660, 7669, - 7672, 7675, 7681, 7689, 7697, 7706, 7743, 7746, - 7749, 7755, 7763, 7771, 7784, 7825, 7828, 7831, - 7837, 7845, 7853, 7868, 7902, 7905, 7908, 7911, - 7917, 7923, 7935, 7941, 7949, 7957, 7965, 7973, - 7981, 7989, 7997, 8005, 8013, 8021, 8036, 8042, - 8055, 8057, 8060, 8063, 8066, 8069, 8072, 8075, - 8078, 8081, 8090, 8096, 8102, 8104, 8112, 8120, - 8128, 8140, 8146, 8159, 8161, 8164, 8167, 8170, - 8177, 8179, 8181, 8189, 8197, 8205, 8213, 8221, - 8234, 8240, 8252, 8258, 8265, 8271, 8278, 8285, - 8291, 8298, 8310, 8316, 8317, 8318, 8319, 8320, - 8321, 8324, 8330, 8342, 8345, 8348, 8351, 8353, - 8361, 8369, 8377, 8385, 8393, 8406, 8412, 8418, - 8430, 8433, 8436, 8439, 8441, 8449, 8457, 8465, - 8473, 8481, 8493, 8499, 8515, 8518, 8521, 8524, - 8527, 8529, 8537, 8545, 8553, 8559, 8562, 8564, - 8572, 8580, 8588, 8596, 8604, 8616, 8622, 8638, - 8641, 8644, 8647, 8650, 8652, 8660, 8669, 8678, - 8681, 8683, 8691, 8703, 8709, 8715, 8721, 8722, - 8728, 8734, 8740, 8746, 8753, 8756, 8762, 8768, - 8769, 8775, 8781, 8788, 8794, 8800, 8801, 8807, - 8813, 8820, 8822, 8830, 8838, 8846, 8858, 8864, - 8867, 8870, 8872, 8880, 8892, 8898, 8910, 8916, - 8919, 8922, 8924, 8932, 8947, 8953, 8959, 8962, - 8968, 8974, 8986, 8992, 9000, 9008, 9023, 9029, - 9032, 9035, 9038, 9056, 9089, 9143, 9199, 9217, - 9273, 9291, 9324, 9395, 9466, 9466, 9466, 9466, - 9466, 9478, 9478, 9478, 9478, 9494, 9494, 9511, - 9514, 9514, 9514, 9560, 9563, 9563, 9579, 9582, - 9594, 9594, 9610, 9613, 9616, 9616, 9616, 9635, - 9638, 9638, 9638, 9638, 9638, 9638, 9638, 9638, - 9638, 9638, 9638, 9654, 9657, 9657, 9657, 9667, - 9670, 9682, 9685, 9697, 9700, 9712, 9715, 9715, - 9715, 9715, 9715, 9728, 9731, 9731, 9747, 9750, - 9750, 9766, 9769, 9769, 9783, 9786, 9799, 9802, - 9843, 9852, 9852, 9852, 9852, 9852, 9852, 9852, - 9852, 9868, 9871, 9871, 9871, 9887, 9890, 9890, - 9890, 9890, 9890, 9890, 9890, 9890 + 899, 901, 903, 913, 921, 923, 925, 927, + 929, 931, 941, 951, 953, 955, 957, 967, + 977, 989, 991, 993, 995, 997, 1007, 1009, + 1019, 1021, 1031, 1033, 1043, 1045, 1047, 1049, + 1059, 1061, 1063, 1073, 1079, 1081, 1083, 1093, + 1095, 1105, 1107, 1109, 1111, 1123, 1125, 1127, + 1137, 1139, 1141, 1143, 1145, 1147, 1157, 1159, + 1161, 1163, 1165, 1167, 1177, 1180, 1226, 1230, + 1236, 1280, 1298, 1306, 1318, 1326, 1329, 1330, + 1336, 1338, 1340, 1342, 1344, 1346, 1348, 1354, + 1360, 1404, 1407, 1425, 1469, 1472, 1480, 1492, + 1500, 1503, 1519, 1575, 1593, 1612, 1658, 1664, + 1678, 1692, 1750, 1768, 1782, 1792, 1804, 1816, + 1828, 1842, 1854, 1868, 1878, 1888, 1904, 1924, + 1938, 1948, 1958, 1968, 1974, 1988, 1990, 1992, + 1994, 1996, 1998, 2004, 2006, 2008, 2014, 2022, + 2042, 2088, 2094, 2112, 2170, 2188, 2202, 2212, + 2224, 2236, 2248, 2262, 2274, 2288, 2298, 2308, + 2324, 2344, 2358, 2368, 2378, 2388, 2403, 2449, + 2463, 2477, 2493, 2509, 2511, 2513, 2523, 2525, + 2527, 2529, 2539, 2541, 2551, 2557, 2571, 2585, + 2601, 2617, 2633, 2649, 2652, 2710, 2724, 2738, + 2754, 2766, 2774, 2784, 2794, 2804, 2816, 2826, + 2838, 2846, 2854, 2868, 2886, 2898, 2906, 2914, + 2922, 2928, 2934, 2944, 2950, 2959, 2960, 2961, + 2972, 2988, 3004, 3006, 3008, 3010, 3026, 3032, + 3038, 3044, 3056, 3062, 3064, 3066, 3078, 3086, + 3094, 3100, 3106, 3108, 3110, 3118, 3124, 3132, + 3152, 3160, 3161, 3171, 3183, 3193, 3196, 3202, + 3218, 3228, 3246, 3254, 3255, 3257, 3259, 3261, + 3271, 3279, 3282, 3288, 3300, 3308, 3326, 3336, + 3354, 3362, 3363, 3365, 3367, 3369, 3379, 3387, + 3393, 3409, 3412, 3415, 3422, 3429, 3437, 3445, + 3462, 3465, 3466, 3502, 3514, 3516, 3518, 3524, + 3526, 3528, 3530, 3536, 3538, 3544, 3554, 3556, + 3562, 3566, 3568, 3570, 3572, 3574, 3580, 3586, + 3588, 3590, 3596, 3598, 3600, 3602, 3608, 3610, + 3612, 3614, 3620, 3626, 3628, 3630, 3632, 3638, + 3642, 3644, 3646, 3652, 3654, 3656, 3658, 3664, + 3672, 3674, 3676, 3682, 3684, 3686, 3688, 3689, + 3695, 3696, 3702, 3706, 3708, 3710, 3712, 3718, + 3720, 3722, 3724, 3730, 3732, 3734, 3736, 3738, + 3740, 3742, 3744, 3750, 3754, 3756, 3762, 3768, + 3774, 3775, 3781, 3782, 3788, 3790, 3796, 3802, + 3806, 3808, 3810, 3812, 3818, 3824, 3830, 3832, + 3834, 3836, 3842, 3844, 3850, 3858, 3860, 3867, + 3875, 3877, 3879, 3881, 3883, 3889, 3891, 3893, + 3895, 3897, 3899, 3901, 3903, 3905, 3907, 3913, + 3915, 3917, 3923, 3931, 3933, 3935, 3937, 3939, + 3941, 3947, 3953, 3955, 3957, 3959, 3965, 3971, + 3983, 3985, 3987, 3989, 3991, 3997, 3999, 4005, + 4007, 4013, 4015, 4021, 4023, 4025, 4027, 4033, + 4035, 4037, 4043, 4049, 4051, 4053, 4059, 4061, + 4067, 4069, 4071, 4073, 4081, 4083, 4085, 4091, + 4093, 4095, 4097, 4099, 4101, 4107, 4109, 4111, + 4113, 4115, 4117, 4123, 4133, 4179, 4195, 4197, + 4199, 4209, 4212, 4222, 4224, 4234, 4238, 4240, + 4242, 4244, 4246, 4256, 4266, 4268, 4270, 4280, + 4282, 4284, 4286, 4296, 4298, 4300, 4302, 4312, + 4318, 4320, 4322, 4324, 4334, 4338, 4340, 4342, + 4352, 4354, 4356, 4358, 4368, 4380, 4382, 4384, + 4394, 4396, 4398, 4400, 4401, 4411, 4412, 4422, + 4426, 4428, 4430, 4432, 4442, 4444, 4446, 4448, + 4458, 4460, 4462, 4464, 4466, 4468, 4470, 4472, + 4482, 4486, 4488, 4498, 4508, 4514, 4515, 4525, + 4526, 4536, 4538, 4548, 4558, 4562, 4564, 4566, + 4568, 4578, 4588, 4594, 4596, 4598, 4600, 4610, + 4612, 4622, 4634, 4636, 4647, 4659, 4661, 4663, + 4665, 4667, 4677, 4679, 4681, 4683, 4685, 4687, + 4689, 4691, 4693, 4695, 4705, 4707, 4709, 4719, + 4727, 4729, 4731, 4733, 4735, 4737, 4747, 4757, + 4759, 4761, 4763, 4773, 4783, 4795, 4797, 4799, + 4801, 4803, 4813, 4815, 4825, 4827, 4837, 4839, + 4849, 4851, 4853, 4855, 4865, 4867, 4869, 4879, + 4885, 4887, 4889, 4899, 4901, 4911, 4913, 4915, + 4917, 4929, 4931, 4933, 4943, 4945, 4947, 4949, + 4951, 4953, 4963, 4965, 4967, 4969, 4971, 4973, + 4983, 4985, 4987, 4989, 4999, 5001, 5011, 5017, + 5025, 5033, 5045, 5051, 5067, 5070, 5073, 5076, + 5082, 5091, 5101, 5113, 5119, 5135, 5138, 5141, + 5149, 5152, 5160, 5161, 5162, 5163, 5171, 5172, + 5173, 5174, 5175, 5176, 5177, 5185, 5186, 5187, + 5195, 5196, 5197, 5199, 5200, 5201, 5202, 5203, + 5211, 5212, 5213, 5214, 5215, 5223, 5224, 5225, + 5227, 5237, 5238, 5239, 5240, 5241, 5242, 5243, + 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, + 5259, 5260, 5261, 5262, 5263, 5271, 5272, 5273, + 5274, 5282, 5292, 5311, 5312, 5313, 5314, 5315, + 5322, 5332, 5335, 5336, 5337, 5338, 5339, 5340, + 5341, 5342, 5349, 5359, 5375, 5376, 5386, 5387, + 5388, 5389, 5397, 5404, 5411, 5419, 5427, 5435, + 5436, 5443, 5451, 5459, 5476, 5477, 5478, 5479, + 5481, 5482, 5483, 5484, 5485, 5486, 5490, 5493, + 5498, 5501, 5515, 5518, 5519, 5520, 5521, 5522, + 5523, 5531, 5538, 5547, 5554, 5572, 5579, 5580, + 5581, 5583, 5596, 5602, 5603, 5604, 5605, 5606, + 5607, 5608, 5609, 5610, 5611, 5616, 5620, 5622, + 5626, 5637, 5641, 5642, 5643, 5644, 5645, 5646, + 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, + 5655, 5665, 5666, 5667, 5668, 5669, 5679, 5680, + 5681, 5682, 5683, 5686, 5688, 5691, 5703, 5719, + 5720, 5732, 5740, 5744, 5750, 5752, 5759, 5761, + 5763, 5765, 5767, 5768, 5769, 5771, 5773, 5775, + 5776, 5782, 5786, 5790, 5791, 5793, 5795, 5797, + 5799, 5805, 5807, 5809, 5811, 5813, 5814, 5815, + 5817, 5819, 5821, 5822, 5823, 5824, 5830, 5831, + 5832, 5834, 5836, 5838, 5839, 5840, 5841, 5847, + 5849, 5850, 5851, 5852, 5853, 5859, 5860, 5861, + 5867, 5869, 5871, 5873, 5875, 5877, 5879, 5881, + 5887, 5889, 5891, 5893, 5895, 5897, 5899, 5903, + 5905, 5907, 5913, 5915, 5917, 5923, 5925, 5927, + 5931, 5933, 5934, 5940, 5942, 5944, 5947, 5954, + 5956, 5958, 5960, 5962, 5963, 5964, 5966, 5968, + 5970, 5971, 5977, 5978, 5979, 5985, 5986, 5987, + 5993, 6007, 6015, 6017, 6019, 6021, 6023, 6025, + 6031, 6037, 6039, 6041, 6043, 6045, 6047, 6053, + 6057, 6059, 6065, 6067, 6069, 6075, 6077, 6079, + 6081, 6087, 6089, 6091, 6097, 6101, 6103, 6109, + 6111, 6113, 6119, 6121, 6123, 6125, 6131, 6133, + 6135, 6141, 6145, 6153, 6155, 6157, 6159, 6161, + 6163, 6169, 6172, 6181, 6190, 6196, 6205, 6211, + 6226, 6232, 6240, 6248, 6256, 6274, 6282, 6300, + 6308, 6326, 6334, 6352, 6360, 6372, 6380, 6383, + 6391, 6403, 6411, 6414, 6422, 6434, 6442, 6445, + 6453, 6465, 6473, 6476, 6479, 6482, 6488, 6494, + 6506, 6512, 6515, 6524, 6530, 6545, 6551, 6554, + 6556, 6564, 6579, 6585, 6588, 6594, 6604, 6620, + 6623, 6630, 6643, 6645, 6653, 6663, 6671, 6681, + 6690, 6698, 6704, 6712, 6720, 6730, 6738, 6748, + 6757, 6765, 6771, 6780, 6782, 6796, 6808, 6822, + 6834, 6848, 6860, 6874, 6884, 6887, 6900, 6913, + 6916, 6929, 6942, 6952, 6955, 6968, 6981, 6991, + 6994, 7007, 7020, 7030, 7033, 7039, 7042, 7050, + 7058, 7061, 7064, 7067, 7073, 7076, 7084, 7092, + 7095, 7098, 7100, 7108, 7116, 7124, 7132, 7140, + 7155, 7161, 7164, 7167, 7170, 7172, 7180, 7188, + 7196, 7208, 7214, 7226, 7232, 7244, 7250, 7265, + 7271, 7274, 7277, 7280, 7283, 7286, 7292, 7298, + 7306, 7314, 7326, 7332, 7345, 7347, 7350, 7353, + 7356, 7369, 7371, 7372, 7375, 7378, 7380, 7392, + 7395, 7396, 7403, 7410, 7412, 7420, 7432, 7438, + 7446, 7454, 7466, 7472, 7488, 7491, 7494, 7497, + 7500, 7502, 7510, 7518, 7526, 7538, 7544, 7560, + 7563, 7566, 7569, 7571, 7579, 7589, 7595, 7603, + 7611, 7618, 7652, 7665, 7667, 7670, 7684, 7687, + 7728, 7737, 7740, 7743, 7749, 7757, 7765, 7774, + 7811, 7814, 7817, 7823, 7831, 7839, 7852, 7893, + 7896, 7899, 7905, 7913, 7921, 7936, 7970, 7973, + 7976, 7979, 7985, 7991, 8003, 8009, 8017, 8025, + 8033, 8041, 8049, 8057, 8065, 8073, 8081, 8089, + 8104, 8110, 8123, 8125, 8128, 8131, 8134, 8137, + 8140, 8143, 8146, 8149, 8158, 8164, 8170, 8172, + 8180, 8188, 8196, 8208, 8214, 8227, 8229, 8232, + 8235, 8238, 8245, 8247, 8249, 8257, 8265, 8273, + 8281, 8289, 8302, 8308, 8320, 8326, 8333, 8339, + 8346, 8353, 8359, 8366, 8378, 8384, 8385, 8386, + 8387, 8388, 8389, 8392, 8398, 8410, 8413, 8416, + 8419, 8421, 8429, 8437, 8445, 8453, 8461, 8474, + 8480, 8486, 8498, 8501, 8504, 8507, 8509, 8517, + 8525, 8533, 8541, 8549, 8561, 8567, 8583, 8586, + 8589, 8592, 8595, 8597, 8605, 8613, 8621, 8627, + 8630, 8632, 8640, 8648, 8656, 8664, 8672, 8684, + 8690, 8706, 8709, 8712, 8715, 8718, 8720, 8728, + 8737, 8746, 8749, 8751, 8759, 8771, 8777, 8783, + 8789, 8790, 8796, 8802, 8808, 8814, 8821, 8824, + 8830, 8836, 8837, 8843, 8849, 8856, 8862, 8868, + 8869, 8875, 8881, 8888, 8890, 8898, 8906, 8914, + 8926, 8932, 8935, 8938, 8940, 8948, 8960, 8966, + 8978, 8984, 8987, 8990, 8992, 9000, 9015, 9021, + 9027, 9030, 9036, 9042, 9054, 9060, 9068, 9076, + 9091, 9097, 9100, 9103, 9106, 9124, 9157, 9211, + 9267, 9285, 9341, 9359, 9392, 9463, 9534, 9534, + 9534, 9534, 9534, 9546, 9546, 9546, 9546, 9562, + 9562, 9579, 9582, 9582, 9582, 9628, 9631, 9631, + 9647, 9650, 9662, 9662, 9678, 9681, 9684, 9684, + 9684, 9703, 9706, 9706, 9706, 9706, 9706, 9706, + 9706, 9706, 9706, 9706, 9706, 9722, 9725, 9725, + 9725, 9735, 9738, 9750, 9753, 9765, 9768, 9780, + 9783, 9783, 9783, 9783, 9783, 9796, 9799, 9799, + 9815, 9818, 9818, 9834, 9837, 9837, 9851, 9854, + 9867, 9870, 9911, 9920, 9920, 9920, 9920, 9920, + 9920, 9920, 9920, 9936, 9939, 9939, 9939, 9955, + 9958, 9958, 9958, 9958, 9958, 9958, 9958, 9958 }; static const short _zone_scanner_trans_keys[] = { @@ -2127,127 +2143,130 @@ static const short _zone_scanner_trans_keys[] = { 121, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 84, 116, 82, 114, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 80, 82, 84, 112, 114, 116, 9, + 3643, 69, 80, 82, 84, 101, 112, 114, + 116, 83, 115, 73, 105, 78, 110, 70, + 102, 79, 111, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 83, + 115, 73, 105, 71, 103, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 83, 115, 73, 105, 71, 103, 9, + 3643, 77, 79, 80, 82, 83, 86, 109, + 111, 112, 114, 115, 118, 73, 105, 77, + 109, 69, 101, 65, 97, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 65, + 97, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 70, 102, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 86, + 118, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 72, 104, 70, 102, 80, + 112, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 67, 99, 66, 98, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 77, 79, 80, 82, 83, - 86, 109, 111, 112, 114, 115, 118, 73, - 105, 77, 109, 69, 101, 65, 97, 9, + 3643, 76, 88, 89, 108, 120, 121, 83, + 115, 65, 97, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 84, 116, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 65, 97, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 70, 102, 9, + 3643, 80, 112, 69, 101, 48, 57, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 86, 118, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 72, 104, 70, - 102, 80, 112, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 67, 99, 66, - 98, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 76, 88, 89, 108, 120, - 121, 83, 115, 65, 97, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 84, - 116, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 80, 112, 69, 101, 48, - 57, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 82, 114, 73, - 105, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 65, 97, 76, 108, 76, - 108, 69, 101, 84, 116, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 79, - 111, 78, 110, 69, 101, 77, 109, 68, - 100, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, - 40, 41, 65, 67, 68, 69, 72, 73, - 75, 76, 77, 78, 79, 80, 82, 83, - 84, 85, 87, 90, 97, 99, 100, 101, - 104, 105, 107, 108, 109, 110, 111, 112, - 114, 115, 116, 117, 119, 122, 1802, 1851, - 2058, 2107, 48, 57, 78, 80, 110, 112, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 65, 67, 68, 69, 72, 73, - 75, 76, 77, 78, 79, 80, 82, 83, - 84, 85, 87, 90, 97, 99, 100, 101, - 104, 105, 107, 108, 109, 110, 111, 112, - 114, 115, 116, 117, 119, 122, 2058, 2107, - 48, 57, 9, 32, 40, 41, 68, 72, - 77, 83, 87, 100, 104, 109, 115, 119, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 68, 72, 77, 83, - 87, 100, 104, 109, 115, 119, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 2058, 1920, 2175, 10, 73, 79, 84, 105, - 111, 116, 78, 110, 67, 99, 76, 108, - 85, 117, 68, 100, 69, 101, 32, 59, - 9, 10, 40, 41, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 65, 67, - 68, 69, 72, 73, 75, 76, 77, 78, - 79, 80, 82, 83, 84, 85, 87, 90, - 97, 99, 100, 101, 104, 105, 107, 108, - 109, 110, 111, 112, 114, 115, 116, 117, - 119, 122, 2058, 2107, 48, 57, 2058, 1920, - 2175, 9, 32, 40, 41, 68, 72, 77, - 83, 87, 100, 104, 109, 115, 119, 2058, - 2107, 48, 57, 9, 32, 40, 41, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 97, 99, 100, 101, 104, 105, 107, - 108, 109, 110, 111, 112, 114, 115, 116, - 117, 119, 122, 2058, 2107, 48, 57, 2058, - 1920, 2175, 9, 32, 40, 41, 2058, 2107, + 3643, 48, 57, 82, 114, 73, 105, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 65, 97, 76, 108, 76, 108, 69, + 101, 84, 116, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 79, 111, 78, + 110, 69, 101, 77, 109, 68, 100, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 2058, 1920, 2175, 9, 32, 40, 41, + 65, 67, 68, 69, 72, 73, 75, 76, + 77, 78, 79, 80, 82, 83, 84, 85, + 87, 90, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 1802, 1851, 2058, 2107, + 48, 57, 78, 80, 110, 112, 9, 32, + 40, 41, 2058, 2107, 9, 32, 40, 41, + 65, 67, 68, 69, 72, 73, 75, 76, + 77, 78, 79, 80, 82, 83, 84, 85, + 87, 90, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 2058, 2107, 48, 57, + 9, 32, 40, 41, 68, 72, 77, 83, + 87, 100, 104, 109, 115, 119, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 68, 72, 77, 83, 87, 100, 104, 109, 115, 119, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 2058, 1920, - 2175, 9, 32, 40, 41, 65, 70, 80, - 97, 102, 112, 3082, 3131, 3338, 3387, 3594, - 3643, 9, 32, 40, 41, 58, 65, 67, - 68, 69, 72, 73, 75, 76, 77, 78, - 79, 80, 82, 83, 84, 85, 87, 90, - 92, 97, 99, 100, 101, 104, 105, 107, - 108, 109, 110, 111, 112, 114, 115, 116, - 117, 119, 122, 3082, 3131, 3338, 3387, 3594, - 3643, -128, 8, 11, 47, 48, 57, 60, - 127, 9, 32, 40, 41, 65, 70, 80, - 97, 102, 112, 2826, 2875, 3082, 3131, 3338, - 3387, 3594, 3643, 9, 32, 40, 41, 92, - 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643, - -128, 8, 11, 58, 60, 127, 9, 32, - 40, 41, 65, 67, 68, 69, 72, 73, - 75, 76, 77, 78, 79, 80, 82, 83, - 84, 85, 87, 90, 97, 99, 100, 101, - 104, 105, 107, 108, 109, 110, 111, 112, - 114, 115, 116, 117, 119, 122, 1802, 1851, - 2058, 2107, 48, 57, 1802, 2058, 1664, 1919, - 1920, 2175, 9, 32, 40, 41, 1802, 1851, - 2058, 2107, -128, 8, 11, 58, 60, 127, - 9, 32, 40, 41, 1802, 1851, 2058, 2107, - -128, 8, 11, 58, 60, 127, 9, 32, - 40, 41, 58, 65, 67, 68, 69, 72, - 73, 75, 76, 77, 78, 79, 80, 82, - 83, 84, 85, 87, 90, 92, 97, 99, + 2175, 10, 73, 79, 84, 105, 111, 116, + 78, 110, 67, 99, 76, 108, 85, 117, + 68, 100, 69, 101, 32, 59, 9, 10, + 40, 41, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 65, 67, 68, 69, + 72, 73, 75, 76, 77, 78, 79, 80, + 82, 83, 84, 85, 87, 90, 97, 99, 100, 101, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 119, 122, - 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643, - -128, 8, 11, 47, 48, 57, 60, 127, - 9, 32, 40, 41, 65, 68, 69, 78, - 83, 97, 100, 101, 110, 115, 1802, 1851, - 2058, 2107, 9, 32, 40, 41, 72, 78, - 83, 104, 110, 115, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 85, 117, 1802, 1851, - 2058, 2107, 9, 32, 40, 41, 73, 84, - 105, 116, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 78, 80, 110, 112, 1802, 1851, - 2058, 2107, 9, 32, 40, 41, 69, 88, - 101, 120, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 51, 54, 79, 80, 111, 112, + 2058, 2107, 48, 57, 2058, 1920, 2175, 9, + 32, 40, 41, 68, 72, 77, 83, 87, + 100, 104, 109, 115, 119, 2058, 2107, 48, + 57, 9, 32, 40, 41, 65, 67, 68, + 69, 72, 73, 75, 76, 77, 78, 79, + 80, 82, 83, 84, 85, 87, 90, 97, + 99, 100, 101, 104, 105, 107, 108, 109, + 110, 111, 112, 114, 115, 116, 117, 119, + 122, 2058, 2107, 48, 57, 2058, 1920, 2175, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 68, 72, 77, 83, 87, 100, 104, 109, + 115, 119, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 2058, 1920, 2175, 9, + 32, 40, 41, 65, 70, 80, 97, 102, + 112, 3082, 3131, 3338, 3387, 3594, 3643, 9, + 32, 40, 41, 58, 65, 67, 68, 69, + 72, 73, 75, 76, 77, 78, 79, 80, + 82, 83, 84, 85, 87, 90, 92, 97, + 99, 100, 101, 104, 105, 107, 108, 109, + 110, 111, 112, 114, 115, 116, 117, 119, + 122, 3082, 3131, 3338, 3387, 3594, 3643, -128, + 8, 11, 47, 48, 57, 60, 127, 9, + 32, 40, 41, 65, 70, 80, 97, 102, + 112, 2826, 2875, 3082, 3131, 3338, 3387, 3594, + 3643, 9, 32, 40, 41, 92, 2826, 2875, + 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, + 11, 58, 60, 127, 9, 32, 40, 41, + 65, 67, 68, 69, 72, 73, 75, 76, + 77, 78, 79, 80, 82, 83, 84, 85, + 87, 90, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 1802, 1851, 2058, 2107, + 48, 57, 1802, 2058, 1664, 1919, 1920, 2175, + 9, 32, 40, 41, 1802, 1851, 2058, 2107, + -128, 8, 11, 58, 60, 127, 9, 32, + 40, 41, 1802, 1851, 2058, 2107, -128, 8, + 11, 58, 60, 127, 9, 32, 40, 41, + 58, 65, 67, 68, 69, 72, 73, 75, + 76, 77, 78, 79, 80, 82, 83, 84, + 85, 87, 90, 92, 97, 99, 100, 101, + 104, 105, 107, 108, 109, 110, 111, 112, + 114, 115, 116, 117, 119, 122, 2826, 2875, + 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, + 11, 47, 48, 57, 60, 127, 9, 32, + 40, 41, 65, 68, 69, 78, 83, 97, + 100, 101, 110, 115, 1802, 1851, 2058, 2107, + 9, 32, 40, 41, 72, 78, 83, 104, + 110, 115, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 85, 117, 1802, 1851, 2058, 2107, + 9, 32, 40, 41, 73, 84, 105, 116, + 1802, 1851, 2058, 2107, 9, 32, 40, 41, + 78, 80, 110, 112, 1802, 1851, 2058, 2107, + 9, 32, 40, 41, 69, 88, 101, 120, + 1802, 1851, 2058, 2107, 9, 32, 40, 41, + 51, 54, 79, 80, 111, 112, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 73, 88, + 105, 120, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 65, 73, 83, 97, 105, 115, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 73, 88, 105, 120, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 65, 73, 83, 97, - 105, 115, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 80, 112, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 84, 116, 1802, 1851, - 2058, 2107, 9, 32, 40, 41, 80, 82, - 84, 112, 114, 116, 1802, 1851, 2058, 2107, + 80, 112, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 84, 116, 1802, 1851, 2058, 2107, + 9, 32, 40, 41, 69, 80, 82, 84, + 101, 112, 114, 116, 1802, 1851, 2058, 2107, 9, 32, 40, 41, 77, 79, 80, 82, 83, 86, 109, 111, 112, 114, 115, 118, 1802, 1851, 2058, 2107, 9, 32, 40, 41, @@ -2299,132 +2318,119 @@ static const short _zone_scanner_trans_keys[] = { 9, 32, 40, 41, 80, 112, 1802, 1851, 2058, 2107, 9, 32, 40, 41, 84, 116, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 80, 82, 84, 112, 114, 116, 1802, 1851, - 2058, 2107, 9, 32, 40, 41, 77, 79, - 80, 82, 83, 86, 109, 111, 112, 114, - 115, 118, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 76, 88, 89, 108, 120, 121, + 69, 80, 82, 84, 101, 112, 114, 116, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 82, 114, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 65, 97, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 79, 111, 1802, 1851, - 2058, 2107, 9, 32, 35, 40, 41, 1802, - 1851, 2058, 2107, -128, 8, 11, 58, 60, - 127, 9, 32, 40, 41, 65, 67, 68, - 69, 72, 73, 75, 76, 77, 78, 79, - 80, 82, 83, 84, 85, 87, 90, 97, - 99, 100, 101, 104, 105, 107, 108, 109, - 110, 111, 112, 114, 115, 116, 117, 119, - 122, 1802, 1851, 2058, 2107, 48, 57, 1801, + 77, 79, 80, 82, 83, 86, 109, 111, + 112, 114, 115, 118, 1802, 1851, 2058, 2107, + 9, 32, 40, 41, 76, 88, 89, 108, + 120, 121, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 82, 114, 1802, 1851, 2058, 2107, + 9, 32, 40, 41, 65, 97, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 79, 111, + 1802, 1851, 2058, 2107, 9, 32, 35, 40, + 41, 1802, 1851, 2058, 2107, -128, 8, 11, + 58, 60, 127, 9, 32, 40, 41, 65, + 67, 68, 69, 72, 73, 75, 76, 77, + 78, 79, 80, 82, 83, 84, 85, 87, + 90, 97, 99, 100, 101, 104, 105, 107, + 108, 109, 110, 111, 112, 114, 115, 116, + 117, 119, 122, 1802, 1851, 2058, 2107, 48, + 57, 1801, 1802, 1824, 1832, 1833, 1851, 2057, + 2058, 2080, 2088, 2089, 2107, 1920, 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, 2088, 2089, 2107, 1920, 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, 2088, 2089, - 2107, 1920, 2175, 1801, 1802, 1824, 1832, 1833, - 1851, 2057, 2058, 2080, 2088, 2089, 2107, 1664, - 1919, 1920, 2175, 1801, 1802, 1824, 1832, 1833, - 1851, 2057, 2058, 2080, 2088, 2089, 2107, 1664, - 1919, 1920, 2175, 65, 97, 65, 97, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 83, 115, 68, 100, 66, 98, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 76, 108, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 1802, 2058, 1664, - 1919, 1920, 2175, 9, 32, 40, 41, 1802, + 2107, 1664, 1919, 1920, 2175, 1801, 1802, 1824, + 1832, 1833, 1851, 2057, 2058, 2080, 2088, 2089, + 2107, 1664, 1919, 1920, 2175, 65, 97, 65, + 97, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 83, 115, 68, 100, 66, + 98, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 76, 108, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 1802, + 2058, 1664, 1919, 1920, 2175, 9, 32, 40, + 41, 1802, 1851, 2058, 2107, -128, 8, 11, + 58, 60, 127, 9, 32, 40, 41, 1802, 1851, 2058, 2107, -128, 8, 11, 58, 60, - 127, 9, 32, 40, 41, 1802, 1851, 2058, - 2107, -128, 8, 11, 58, 60, 127, 1801, - 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, - 2088, 2089, 2107, 1664, 1919, 1920, 2175, 1801, - 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, - 2088, 2089, 2107, 1664, 1919, 1920, 2175, 1801, - 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, - 2088, 2089, 2107, 1664, 1919, 1920, 2175, 1801, - 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, - 2088, 2089, 2107, 1664, 1919, 1920, 2175, 2058, - 1920, 2175, 9, 32, 40, 41, 58, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 92, 97, 99, 100, 101, 104, 105, - 107, 108, 109, 110, 111, 112, 114, 115, - 116, 117, 119, 122, 2826, 2875, 3082, 3131, - 3338, 3387, 3594, 3643, -128, 8, 11, 47, - 48, 57, 60, 127, 1801, 1802, 1824, 1832, + 127, 1801, 1802, 1824, 1832, 1833, 1851, 2057, + 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920, + 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, + 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920, + 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, + 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920, + 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, + 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920, + 2175, 2058, 1920, 2175, 9, 32, 40, 41, + 58, 65, 67, 68, 69, 72, 73, 75, + 76, 77, 78, 79, 80, 82, 83, 84, + 85, 87, 90, 92, 97, 99, 100, 101, + 104, 105, 107, 108, 109, 110, 111, 112, + 114, 115, 116, 117, 119, 122, 2826, 2875, + 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, + 11, 47, 48, 57, 60, 127, 1801, 1802, + 1824, 1832, 1833, 1851, 2057, 2058, 2080, 2088, + 2089, 2107, 1920, 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, 2088, 2089, 2107, - 1920, 2175, 1801, 1802, 1824, 1832, 1833, 1851, - 2057, 2058, 2080, 2088, 2089, 2107, 1920, 2175, - 9, 32, 40, 41, 65, 68, 69, 78, - 83, 97, 100, 101, 110, 115, 2058, 2107, - 9, 32, 40, 41, 72, 78, 83, 104, - 110, 115, 2058, 2107, 9, 32, 40, 41, - 85, 117, 2058, 2107, 9, 32, 40, 41, - 73, 84, 105, 116, 2058, 2107, 9, 32, + 1920, 2175, 9, 32, 40, 41, 65, 68, + 69, 78, 83, 97, 100, 101, 110, 115, + 2058, 2107, 9, 32, 40, 41, 72, 78, + 83, 104, 110, 115, 2058, 2107, 9, 32, + 40, 41, 85, 117, 2058, 2107, 9, 32, + 40, 41, 73, 84, 105, 116, 2058, 2107, + 9, 32, 40, 41, 78, 80, 110, 112, + 2058, 2107, 9, 32, 40, 41, 69, 88, + 101, 120, 2058, 2107, 9, 32, 40, 41, + 51, 54, 79, 80, 111, 112, 2058, 2107, + 9, 32, 40, 41, 73, 88, 105, 120, + 2058, 2107, 9, 32, 40, 41, 65, 73, + 83, 97, 105, 115, 2058, 2107, 9, 32, + 40, 41, 80, 112, 2058, 2107, 9, 32, + 40, 41, 84, 116, 2058, 2107, 9, 32, + 40, 41, 69, 80, 82, 84, 101, 112, + 114, 116, 2058, 2107, 9, 32, 40, 41, + 77, 79, 80, 82, 83, 86, 109, 111, + 112, 114, 115, 118, 2058, 2107, 9, 32, + 40, 41, 76, 88, 89, 108, 120, 121, + 2058, 2107, 9, 32, 40, 41, 82, 114, + 2058, 2107, 9, 32, 40, 41, 65, 97, + 2058, 2107, 9, 32, 40, 41, 79, 111, + 2058, 2107, 1802, 2058, 1664, 1919, 1920, 2175, + 1802, 2058, 1664, 1919, 1920, 2175, 9, 32, 40, 41, 78, 80, 110, 112, 2058, 2107, - 9, 32, 40, 41, 69, 88, 101, 120, - 2058, 2107, 9, 32, 40, 41, 51, 54, - 79, 80, 111, 112, 2058, 2107, 9, 32, - 40, 41, 73, 88, 105, 120, 2058, 2107, - 9, 32, 40, 41, 65, 73, 83, 97, - 105, 115, 2058, 2107, 9, 32, 40, 41, - 80, 112, 2058, 2107, 9, 32, 40, 41, - 84, 116, 2058, 2107, 9, 32, 40, 41, - 80, 82, 84, 112, 114, 116, 2058, 2107, - 9, 32, 40, 41, 77, 79, 80, 82, - 83, 86, 109, 111, 112, 114, 115, 118, - 2058, 2107, 9, 32, 40, 41, 76, 88, - 89, 108, 120, 121, 2058, 2107, 9, 32, - 40, 41, 82, 114, 2058, 2107, 9, 32, - 40, 41, 65, 97, 2058, 2107, 9, 32, - 40, 41, 79, 111, 2058, 2107, 1802, 2058, - 1664, 1919, 1920, 2175, 1802, 2058, 1664, 1919, - 1920, 2175, 9, 32, 40, 41, 78, 80, - 110, 112, 2058, 2107, 1802, 2058, 1664, 1919, - 1920, 2175, 266, 522, 1065, -128, 9, 11, - 40, 42, 127, 10, 10, 42, 46, 64, - 92, 95, 45, 57, 65, 90, 97, 122, - 32, 42, 46, 59, 92, 95, 9, 10, - 40, 41, 45, 57, 65, 90, 97, 122, - 32, 42, 45, 59, 92, 95, 9, 10, - 40, 41, 47, 57, 65, 90, 97, 122, - 48, 57, 48, 57, 48, 57, 32, 42, - 46, 59, 92, 95, 9, 10, 40, 41, - 45, 57, 65, 90, 97, 122, 32, 59, - 9, 10, 40, 41, 32, 59, 9, 10, - 40, 41, 34, 92, 33, 58, 60, 126, - 32, 33, 59, 92, 9, 10, 35, 39, - 40, 41, 42, 126, 32, 47, 48, 57, - 58, 126, 48, 57, 48, 57, 32, 33, - 59, 92, 9, 10, 35, 39, 40, 41, - 42, 126, 9, 32, 34, 59, 92, 1546, - 33, 126, 9, 32, 34, 59, 92, 1546, - 33, 126, 32, 59, 9, 10, 40, 41, + 1802, 2058, 1664, 1919, 1920, 2175, 266, 522, + 1065, -128, 9, 11, 40, 42, 127, 10, + 10, 42, 46, 64, 92, 95, 45, 57, + 65, 90, 97, 122, 32, 42, 46, 59, + 92, 95, 9, 10, 40, 41, 45, 57, + 65, 90, 97, 122, 32, 42, 45, 59, + 92, 95, 9, 10, 40, 41, 47, 57, + 65, 90, 97, 122, 48, 57, 48, 57, + 48, 57, 32, 42, 46, 59, 92, 95, + 9, 10, 40, 41, 45, 57, 65, 90, + 97, 122, 32, 59, 9, 10, 40, 41, + 32, 59, 9, 10, 40, 41, 34, 92, + 33, 58, 60, 126, 32, 33, 59, 92, + 9, 10, 35, 39, 40, 41, 42, 126, 32, 47, 48, 57, 58, 126, 48, 57, - 48, 57, 9, 32, 34, 59, 92, 1546, - 33, 126, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 68, 72, 77, 83, - 87, 100, 104, 109, 115, 119, 1802, 1851, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 1802, 1851, 2058, 2107, 10, 9, 32, 40, - 41, 1802, 1851, 2058, 2107, 48, 57, 68, - 72, 77, 83, 87, 100, 104, 109, 115, - 119, 48, 57, 9, 32, 40, 41, 1802, - 1851, 2058, 2107, 48, 57, 2058, 1920, 2175, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 42, 46, 92, 95, 2058, 2107, - 45, 57, 65, 90, 97, 122, 42, 46, - 92, 95, 45, 57, 65, 90, 97, 122, - 9, 32, 40, 41, 42, 45, 92, 95, - 1802, 1851, 2058, 2107, 47, 57, 65, 90, - 97, 122, 9, 32, 40, 41, 1802, 1851, - 2058, 2107, 10, 48, 57, 48, 57, 48, - 57, 42, 46, 92, 95, 45, 57, 65, - 90, 97, 122, 9, 32, 40, 41, 1802, - 1851, 2058, 2107, 2058, 1920, 2175, 9, 32, + 48, 57, 32, 33, 59, 92, 9, 10, + 35, 39, 40, 41, 42, 126, 9, 32, + 34, 59, 92, 1546, 33, 126, 9, 32, + 34, 59, 92, 1546, 33, 126, 32, 59, + 9, 10, 40, 41, 32, 47, 48, 57, + 58, 126, 48, 57, 48, 57, 9, 32, + 34, 59, 92, 1546, 33, 126, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, - 2058, 2107, -128, 8, 11, 58, 60, 127, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 68, 72, 77, 83, 87, 100, 104, 109, + 115, 119, 1802, 1851, 2058, 2107, 48, 57, 9, 32, 40, 41, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 42, 46, 92, 95, - 1802, 1851, 2058, 2107, 45, 57, 65, 90, + 10, 9, 32, 40, 41, 1802, 1851, 2058, + 2107, 48, 57, 68, 72, 77, 83, 87, + 100, 104, 109, 115, 119, 48, 57, 9, + 32, 40, 41, 1802, 1851, 2058, 2107, 48, + 57, 2058, 1920, 2175, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 42, 46, + 92, 95, 2058, 2107, 45, 57, 65, 90, 97, 122, 42, 46, 92, 95, 45, 57, 65, 90, 97, 122, 9, 32, 40, 41, 42, 45, 92, 95, 1802, 1851, 2058, 2107, @@ -2432,824 +2438,842 @@ static const short _zone_scanner_trans_keys[] = { 40, 41, 1802, 1851, 2058, 2107, 10, 48, 57, 48, 57, 48, 57, 42, 46, 92, 95, 45, 57, 65, 90, 97, 122, 9, - 32, 40, 41, 1802, 1851, 2058, 2107, 1802, - 2058, 1664, 1919, 1920, 2175, 9, 32, 40, - 41, 42, 46, 92, 95, 2058, 2107, 45, - 57, 65, 90, 97, 122, 2058, 1920, 2175, - 2058, 1920, 2175, 43, 47, 57, 65, 90, - 97, 122, 43, 47, 57, 65, 90, 97, - 122, 43, 61, 47, 57, 65, 90, 97, - 122, 43, 61, 47, 57, 65, 90, 97, - 122, 9, 32, 40, 41, 43, 3082, 3131, - 3338, 3387, 3594, 3643, 47, 57, 65, 90, - 97, 122, 2058, 1920, 2175, 61, 65, 67, - 68, 69, 72, 73, 75, 76, 77, 78, - 79, 80, 82, 83, 84, 85, 87, 90, - 97, 99, 100, 101, 104, 105, 107, 108, - 109, 110, 111, 112, 114, 115, 116, 117, - 119, 122, 32, 59, 65, 70, 80, 97, - 102, 112, 9, 10, 40, 41, 65, 97, - 65, 97, 32, 59, 9, 10, 40, 41, - 83, 115, 68, 100, 66, 98, 32, 59, - 9, 10, 40, 41, 76, 108, 32, 59, - 9, 10, 40, 41, 65, 68, 69, 78, - 83, 97, 100, 101, 110, 115, 65, 97, - 32, 59, 9, 10, 40, 41, 78, 83, - 110, 115, 83, 115, 75, 107, 69, 101, - 89, 121, 32, 59, 9, 10, 40, 41, - 32, 59, 9, 10, 40, 41, 82, 114, - 84, 116, 32, 59, 9, 10, 40, 41, - 65, 97, 77, 109, 69, 101, 32, 59, - 9, 10, 40, 41, 89, 121, 78, 110, - 67, 99, 32, 59, 9, 10, 40, 41, - 72, 78, 83, 104, 110, 115, 67, 99, - 73, 105, 68, 100, 32, 59, 9, 10, - 40, 41, 65, 83, 97, 115, 77, 109, - 69, 101, 32, 59, 9, 10, 40, 41, + 32, 40, 41, 1802, 1851, 2058, 2107, 2058, + 1920, 2175, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 2058, 2107, -128, 8, + 11, 58, 60, 127, 9, 32, 40, 41, + 1802, 1851, 2058, 2107, 9, 32, 40, 41, + 42, 46, 92, 95, 1802, 1851, 2058, 2107, + 45, 57, 65, 90, 97, 122, 42, 46, + 92, 95, 45, 57, 65, 90, 97, 122, + 9, 32, 40, 41, 42, 45, 92, 95, + 1802, 1851, 2058, 2107, 47, 57, 65, 90, + 97, 122, 9, 32, 40, 41, 1802, 1851, + 2058, 2107, 10, 48, 57, 48, 57, 48, + 57, 42, 46, 92, 95, 45, 57, 65, + 90, 97, 122, 9, 32, 40, 41, 1802, + 1851, 2058, 2107, 1802, 2058, 1664, 1919, 1920, + 2175, 9, 32, 40, 41, 42, 46, 92, + 95, 2058, 2107, 45, 57, 65, 90, 97, + 122, 2058, 1920, 2175, 2058, 1920, 2175, 43, + 47, 57, 65, 90, 97, 122, 43, 47, + 57, 65, 90, 97, 122, 43, 61, 47, + 57, 65, 90, 97, 122, 43, 61, 47, + 57, 65, 90, 97, 122, 9, 32, 40, + 41, 43, 3082, 3131, 3338, 3387, 3594, 3643, + 47, 57, 65, 90, 97, 122, 2058, 1920, + 2175, 61, 65, 67, 68, 69, 72, 73, + 75, 76, 77, 78, 79, 80, 82, 83, + 84, 85, 87, 90, 97, 99, 100, 101, + 104, 105, 107, 108, 109, 110, 111, 112, + 114, 115, 116, 117, 119, 122, 32, 59, + 65, 70, 80, 97, 102, 112, 9, 10, + 40, 41, 65, 97, 65, 97, 32, 59, + 9, 10, 40, 41, 83, 115, 68, 100, + 66, 98, 32, 59, 9, 10, 40, 41, + 76, 108, 32, 59, 9, 10, 40, 41, + 65, 68, 69, 78, 83, 97, 100, 101, + 110, 115, 65, 97, 32, 59, 9, 10, + 40, 41, 78, 83, 110, 115, 83, 115, 75, 107, 69, 101, 89, 121, 32, 59, - 9, 10, 40, 41, 32, 59, 89, 121, - 9, 10, 40, 41, 78, 110, 67, 99, - 32, 59, 9, 10, 40, 41, 85, 117, - 73, 105, 52, 54, 56, 32, 59, 9, - 10, 40, 41, 52, 32, 59, 9, 10, - 40, 41, 73, 84, 105, 116, 78, 110, + 9, 10, 40, 41, 32, 59, 9, 10, + 40, 41, 82, 114, 84, 116, 32, 59, + 9, 10, 40, 41, 65, 97, 77, 109, + 69, 101, 32, 59, 9, 10, 40, 41, + 89, 121, 78, 110, 67, 99, 32, 59, + 9, 10, 40, 41, 72, 78, 83, 104, + 110, 115, 67, 99, 73, 105, 68, 100, + 32, 59, 9, 10, 40, 41, 65, 83, + 97, 115, 77, 109, 69, 101, 32, 59, + 9, 10, 40, 41, 75, 107, 69, 101, + 89, 121, 32, 59, 9, 10, 40, 41, + 32, 59, 89, 121, 9, 10, 40, 41, + 78, 110, 67, 99, 32, 59, 9, 10, + 40, 41, 85, 117, 73, 105, 52, 54, + 56, 32, 59, 9, 10, 40, 41, 52, + 32, 59, 9, 10, 40, 41, 73, 84, + 105, 116, 78, 110, 70, 102, 79, 111, + 32, 59, 9, 10, 40, 41, 84, 116, + 80, 112, 83, 115, 32, 59, 9, 10, + 40, 41, 80, 112, 83, 115, 69, 101, + 67, 99, 75, 107, 69, 101, 89, 121, + 32, 59, 9, 10, 40, 41, 69, 88, + 101, 120, 89, 121, 32, 59, 9, 10, + 40, 41, 32, 59, 9, 10, 40, 41, + 51, 54, 79, 80, 111, 112, 50, 32, + 59, 9, 10, 40, 41, 52, 32, 59, + 9, 10, 40, 41, 67, 99, 32, 59, + 9, 10, 40, 41, 32, 59, 9, 10, + 40, 41, 73, 88, 105, 120, 78, 110, 70, 102, 79, 111, 32, 59, 9, 10, - 40, 41, 84, 116, 80, 112, 83, 115, - 32, 59, 9, 10, 40, 41, 80, 112, - 83, 115, 69, 101, 67, 99, 75, 107, - 69, 101, 89, 121, 32, 59, 9, 10, - 40, 41, 69, 88, 101, 120, 89, 121, - 32, 59, 9, 10, 40, 41, 32, 59, - 9, 10, 40, 41, 51, 54, 79, 80, - 111, 112, 50, 32, 59, 9, 10, 40, - 41, 52, 32, 59, 9, 10, 40, 41, - 67, 99, 32, 59, 9, 10, 40, 41, - 32, 59, 9, 10, 40, 41, 73, 88, - 105, 120, 78, 110, 70, 102, 79, 111, - 32, 59, 9, 10, 40, 41, 32, 59, - 9, 10, 40, 41, 65, 73, 83, 97, - 105, 115, 80, 112, 84, 116, 82, 114, - 32, 59, 9, 10, 40, 41, 68, 100, - 32, 59, 9, 10, 40, 41, 32, 59, - 69, 101, 9, 10, 40, 41, 67, 99, - 32, 51, 59, 9, 10, 40, 41, 32, - 59, 80, 112, 9, 10, 40, 41, 65, - 97, 82, 114, 65, 97, 77, 109, 32, - 59, 9, 10, 40, 41, 80, 112, 69, - 101, 78, 110, 80, 112, 71, 103, 80, - 112, 75, 107, 69, 101, 89, 121, 32, - 59, 9, 10, 40, 41, 84, 116, 82, - 114, 32, 59, 9, 10, 40, 41, 80, - 82, 84, 112, 114, 116, 32, 59, 9, - 10, 40, 41, 83, 115, 73, 105, 71, - 103, 32, 59, 9, 10, 40, 41, 32, - 59, 9, 10, 40, 41, 77, 79, 80, - 82, 83, 86, 109, 111, 112, 114, 115, - 118, 73, 105, 77, 109, 69, 101, 65, - 97, 32, 59, 9, 10, 40, 41, 65, - 97, 32, 59, 9, 10, 40, 41, 70, - 102, 32, 59, 9, 10, 40, 41, 86, - 118, 32, 59, 9, 10, 40, 41, 72, - 104, 70, 102, 80, 112, 32, 59, 9, - 10, 40, 41, 67, 99, 66, 98, 32, - 59, 9, 10, 40, 41, 76, 88, 89, - 108, 120, 121, 83, 115, 65, 97, 32, - 59, 9, 10, 40, 41, 84, 116, 32, - 59, 9, 10, 40, 41, 80, 112, 69, - 101, 48, 57, 32, 59, 9, 10, 40, - 41, 48, 57, 82, 114, 73, 105, 32, - 59, 9, 10, 40, 41, 65, 97, 76, - 108, 76, 108, 69, 101, 84, 116, 32, - 59, 9, 10, 40, 41, 79, 111, 78, - 110, 69, 101, 77, 109, 68, 100, 32, - 59, 9, 10, 40, 41, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, - 32, 40, 41, 65, 67, 68, 69, 72, - 73, 75, 76, 77, 78, 79, 80, 82, - 83, 84, 85, 87, 90, 97, 99, 100, - 101, 104, 105, 107, 108, 109, 110, 111, - 112, 114, 115, 116, 117, 119, 122, 3082, + 40, 41, 32, 59, 9, 10, 40, 41, + 65, 73, 83, 97, 105, 115, 80, 112, + 84, 116, 82, 114, 32, 59, 9, 10, + 40, 41, 68, 100, 32, 59, 9, 10, + 40, 41, 32, 59, 69, 101, 9, 10, + 40, 41, 67, 99, 32, 51, 59, 9, + 10, 40, 41, 32, 59, 80, 112, 9, + 10, 40, 41, 65, 97, 82, 114, 65, + 97, 77, 109, 32, 59, 9, 10, 40, + 41, 80, 112, 69, 101, 78, 110, 80, + 112, 71, 103, 80, 112, 75, 107, 69, + 101, 89, 121, 32, 59, 9, 10, 40, + 41, 84, 116, 82, 114, 32, 59, 9, + 10, 40, 41, 69, 80, 82, 84, 101, + 112, 114, 116, 83, 115, 73, 105, 78, + 110, 70, 102, 79, 111, 32, 59, 9, + 10, 40, 41, 32, 59, 9, 10, 40, + 41, 83, 115, 73, 105, 71, 103, 32, + 59, 9, 10, 40, 41, 32, 59, 9, + 10, 40, 41, 77, 79, 80, 82, 83, + 86, 109, 111, 112, 114, 115, 118, 73, + 105, 77, 109, 69, 101, 65, 97, 32, + 59, 9, 10, 40, 41, 65, 97, 32, + 59, 9, 10, 40, 41, 70, 102, 32, + 59, 9, 10, 40, 41, 86, 118, 32, + 59, 9, 10, 40, 41, 72, 104, 70, + 102, 80, 112, 32, 59, 9, 10, 40, + 41, 67, 99, 66, 98, 32, 59, 9, + 10, 40, 41, 76, 88, 89, 108, 120, + 121, 83, 115, 65, 97, 32, 59, 9, + 10, 40, 41, 84, 116, 32, 59, 9, + 10, 40, 41, 80, 112, 69, 101, 48, + 57, 32, 59, 9, 10, 40, 41, 48, + 57, 82, 114, 73, 105, 32, 59, 9, + 10, 40, 41, 65, 97, 76, 108, 76, + 108, 69, 101, 84, 116, 32, 59, 9, + 10, 40, 41, 79, 111, 78, 110, 69, + 101, 77, 109, 68, 100, 32, 59, 9, + 10, 40, 41, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, - 41, 65, 70, 80, 97, 102, 112, 3082, - 3131, 3338, 3387, 3594, 3643, 65, 97, 65, - 97, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 2058, 1920, 2175, 65, 68, - 69, 78, 83, 97, 100, 101, 110, 115, - 65, 97, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 78, 83, 110, 115, - 83, 115, 75, 107, 69, 101, 89, 121, + 41, 65, 67, 68, 69, 72, 73, 75, + 76, 77, 78, 79, 80, 82, 83, 84, + 85, 87, 90, 97, 99, 100, 101, 104, + 105, 107, 108, 109, 110, 111, 112, 114, + 115, 116, 117, 119, 122, 3082, 3131, 3338, + 3387, 3594, 3643, 9, 32, 40, 41, 65, + 70, 80, 97, 102, 112, 3082, 3131, 3338, + 3387, 3594, 3643, 65, 97, 65, 97, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 2058, 1920, 2175, 65, 68, 69, 78, + 83, 97, 100, 101, 110, 115, 65, 97, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 82, 114, 84, 116, + 3594, 3643, 78, 83, 110, 115, 83, 115, + 75, 107, 69, 101, 89, 121, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 65, 97, 77, 109, 69, 101, + 3594, 3643, 82, 114, 84, 116, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 65, 97, 77, 109, 69, 101, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 89, 121, 78, 110, 67, 99, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 72, 78, 83, 104, 110, 115, 67, 99, + 73, 105, 68, 100, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 65, 83, + 97, 115, 77, 109, 69, 101, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 75, 107, 69, 101, 89, 121, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 9, 32, 40, 41, 89, 121, 3082, 3131, + 3338, 3387, 3594, 3643, 78, 110, 67, 99, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 89, 121, 78, 110, 67, 99, + 3594, 3643, 85, 117, 73, 105, 52, 54, + 56, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 52, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 73, 84, + 105, 116, 78, 110, 70, 102, 79, 111, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 72, 78, 83, 104, 110, 115, - 67, 99, 73, 105, 68, 100, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 65, 83, 97, 115, 77, 109, 69, 101, + 3594, 3643, 84, 116, 80, 112, 83, 115, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 75, 107, 69, 101, 89, 121, + 3594, 3643, 80, 112, 83, 115, 69, 101, + 67, 99, 75, 107, 69, 101, 89, 121, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 9, 32, 40, 41, 89, 121, - 3082, 3131, 3338, 3387, 3594, 3643, 78, 110, - 67, 99, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 85, 117, 73, 105, - 52, 54, 56, 9, 32, 40, 41, 3082, + 3594, 3643, 69, 88, 101, 120, 89, 121, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 51, 54, 79, 80, + 111, 112, 50, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 52, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 73, 84, 105, 116, 78, 110, 70, 102, - 79, 111, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 84, 116, 80, 112, - 83, 115, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 80, 112, 83, 115, - 69, 101, 67, 99, 75, 107, 69, 101, - 89, 121, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 69, 88, 101, 120, - 89, 121, 9, 32, 40, 41, 3082, 3131, + 67, 99, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 51, 54, - 79, 80, 111, 112, 50, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 52, + 3082, 3131, 3338, 3387, 3594, 3643, 73, 88, + 105, 120, 78, 110, 70, 102, 79, 111, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 67, 99, 9, 32, 40, 41, + 3594, 3643, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 65, 73, 83, 97, + 105, 115, 80, 112, 84, 116, 82, 114, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 68, 100, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 73, 88, 105, 120, 78, 110, 70, 102, - 79, 111, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 65, 73, - 83, 97, 105, 115, 80, 112, 84, 116, - 82, 114, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 68, 100, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 9, 32, 40, 41, 69, 101, 3082, 3131, - 3338, 3387, 3594, 3643, 67, 99, 9, 32, - 40, 41, 51, 3082, 3131, 3338, 3387, 3594, - 3643, 9, 32, 40, 41, 80, 112, 3082, - 3131, 3338, 3387, 3594, 3643, 65, 97, 82, - 114, 65, 97, 77, 109, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 80, - 112, 69, 101, 78, 110, 80, 112, 71, - 103, 80, 112, 75, 107, 69, 101, 89, - 121, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 84, 116, 82, 114, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 80, 82, 84, 112, 114, 116, 9, + 40, 41, 69, 101, 3082, 3131, 3338, 3387, + 3594, 3643, 67, 99, 9, 32, 40, 41, + 51, 3082, 3131, 3338, 3387, 3594, 3643, 9, + 32, 40, 41, 80, 112, 3082, 3131, 3338, + 3387, 3594, 3643, 65, 97, 82, 114, 65, + 97, 77, 109, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 80, 112, 69, + 101, 78, 110, 80, 112, 71, 103, 80, + 112, 75, 107, 69, 101, 89, 121, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 83, 115, 73, 105, 71, 103, 9, + 3643, 84, 116, 82, 114, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 69, + 80, 82, 84, 101, 112, 114, 116, 83, + 115, 73, 105, 78, 110, 70, 102, 79, + 111, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 83, 115, 73, + 105, 71, 103, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 77, + 79, 80, 82, 83, 86, 109, 111, 112, + 114, 115, 118, 73, 105, 77, 109, 69, + 101, 65, 97, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 65, 97, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 77, 79, 80, 82, 83, - 86, 109, 111, 112, 114, 115, 118, 73, - 105, 77, 109, 69, 101, 65, 97, 9, + 3643, 70, 102, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 86, 118, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 65, 97, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 70, 102, 9, + 3643, 72, 104, 70, 102, 80, 112, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 86, 118, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 72, 104, 70, - 102, 80, 112, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 67, 99, 66, - 98, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 76, 88, 89, 108, 120, - 121, 83, 115, 65, 97, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 84, + 3643, 67, 99, 66, 98, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 76, + 88, 89, 108, 120, 121, 83, 115, 65, + 97, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 84, 116, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 80, + 112, 69, 101, 48, 57, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 82, 114, 73, 105, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 65, + 97, 76, 108, 76, 108, 69, 101, 84, 116, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 80, 112, 69, 101, 48, - 57, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 82, 114, 73, - 105, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 65, 97, 76, 108, 76, - 108, 69, 101, 84, 116, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 79, - 111, 78, 110, 69, 101, 77, 109, 68, - 100, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 83, 115, 68, 100, 66, - 98, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 76, 108, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, - 32, 40, 41, 2058, 2107, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 65, 70, 97, - 102, 48, 57, 65, 70, 97, 102, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 65, 70, 97, 102, 2058, - 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 48, 2058, 2107, 49, 57, 9, - 32, 40, 41, 1802, 1851, 2058, 2107, 48, + 3387, 3594, 3643, 79, 111, 78, 110, 69, + 101, 77, 109, 68, 100, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 83, + 115, 68, 100, 66, 98, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 76, + 108, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 9, 32, 40, 41, 2058, + 2107, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 65, 70, 97, 102, 2058, 1920, 2175, 2058, 1920, - 2175, 9, 32, 40, 41, 2058, 2107, 48, - 57, 2058, 1920, 2175, 97, 100, 101, 105, - 107, 110, 111, 112, 108, 112, 110, 32, - 34, 44, 59, 9, 10, 40, 41, 111, - 104, 112, 97, 116, 104, 32, 34, 44, - 59, 9, 10, 40, 41, 99, 104, 32, - 34, 44, 59, 9, 10, 40, 41, 112, - 118, 52, 54, 104, 105, 110, 116, 32, - 34, 44, 59, 9, 10, 40, 41, 104, + 2175, 2058, 1920, 2175, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 48, 2058, + 2107, 49, 57, 9, 32, 40, 41, 1802, + 1851, 2058, 2107, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 65, 70, 97, + 102, 48, 57, 65, 70, 97, 102, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 65, 70, 97, 102, 2058, + 1920, 2175, 2058, 1920, 2175, 9, 32, 40, + 41, 2058, 2107, 48, 57, 2058, 1920, 2175, + 97, 100, 101, 105, 107, 110, 111, 112, + 108, 112, 110, 32, 34, 44, 59, 9, + 10, 40, 41, 111, 104, 112, 97, 116, + 104, 32, 34, 44, 59, 9, 10, 40, + 41, 99, 104, 32, 34, 44, 59, 9, + 10, 40, 41, 112, 118, 52, 54, 104, 105, 110, 116, 32, 34, 44, 59, 9, - 10, 40, 41, 101, 121, 48, 57, 32, - 34, 44, 59, 9, 10, 40, 41, 48, - 57, 111, 45, 100, 101, 102, 97, 117, - 108, 116, 45, 97, 108, 112, 110, 32, - 34, 44, 59, 9, 10, 40, 41, 104, - 116, 116, 112, 32, 34, 44, 59, 9, - 10, 40, 41, 111, 114, 116, 32, 34, - 44, 59, 9, 10, 40, 41, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 9, 32, 40, 41, 97, 100, 101, 105, - 107, 109, 110, 111, 112, 3082, 3131, 3338, - 3387, 3594, 3643, 108, 112, 110, 61, 32, - 34, 59, 9, 10, 40, 41, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 2058, 1920, 2175, 111, 104, 112, 97, 116, - 104, 61, 32, 34, 59, 9, 10, 40, - 41, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, -128, 8, 11, - 58, 60, 127, 34, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 99, 104, - 61, 34, 43, 47, 57, 65, 90, 97, - 122, 43, 47, 57, 65, 90, 97, 122, - 43, 47, 57, 65, 90, 97, 122, 43, - 61, 47, 57, 65, 90, 97, 122, 43, - 61, 47, 57, 65, 90, 97, 122, 34, - 43, 47, 57, 65, 90, 97, 122, 61, - 43, 47, 57, 65, 90, 97, 122, 43, - 61, 47, 57, 65, 90, 97, 122, 43, - 61, 47, 57, 65, 90, 97, 122, 9, - 32, 40, 41, 43, 3082, 3131, 3338, 3387, - 3594, 3643, 47, 57, 65, 90, 97, 122, - 61, 112, 118, 52, 54, 104, 105, 110, - 116, 61, 34, 46, 48, 57, 46, 48, - 57, 34, 44, 46, 48, 57, 46, 48, - 57, 9, 32, 40, 41, 44, 46, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 46, - 48, 57, 104, 105, 110, 116, 61, 34, - 46, 48, 58, 65, 70, 97, 102, 46, - 48, 58, 65, 70, 97, 102, 34, 44, - 46, 48, 58, 65, 70, 97, 102, 46, - 48, 58, 65, 70, 97, 102, 9, 32, - 40, 41, 44, 46, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 58, 65, 70, 97, 102, - 46, 48, 58, 65, 70, 97, 102, 101, - 121, 48, 57, 9, 32, 40, 41, 61, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 32, 59, 9, 10, 40, 41, 97, 110, - 100, 97, 116, 111, 114, 121, 61, 34, - 65, 90, 97, 122, 65, 90, 97, 122, - 34, 44, 65, 90, 97, 122, 9, 32, - 40, 41, 44, 3082, 3131, 3338, 3387, 3594, - 3643, 65, 90, 97, 122, 111, 45, 100, + 10, 40, 41, 104, 105, 110, 116, 32, + 34, 44, 59, 9, 10, 40, 41, 101, + 121, 48, 57, 32, 34, 44, 59, 9, + 10, 40, 41, 48, 57, 111, 45, 100, 101, 102, 97, 117, 108, 116, 45, 97, - 108, 112, 110, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 104, 116, 116, - 112, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 111, 114, 116, 61, 34, - 48, 57, 48, 57, 34, 48, 57, 9, + 108, 112, 110, 32, 34, 44, 59, 9, + 10, 40, 41, 104, 116, 116, 112, 32, + 34, 44, 59, 9, 10, 40, 41, 111, + 114, 116, 32, 34, 44, 59, 9, 10, + 40, 41, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 9, 32, 40, 41, + 97, 100, 101, 105, 107, 109, 110, 111, + 112, 3082, 3131, 3338, 3387, 3594, 3643, 108, + 112, 110, 61, 32, 34, 59, 9, 10, + 40, 41, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 2058, 1920, 2175, 111, + 104, 112, 97, 116, 104, 61, 32, 34, + 59, 9, 10, 40, 41, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, -128, 8, 11, - 58, 60, 127, 34, 68, 69, 73, 80, - 82, 100, 101, 105, 112, 114, 48, 57, - 32, 59, 9, 10, 40, 41, 48, 57, - 72, 83, 104, 115, 32, 59, 9, 10, - 40, 41, 65, 97, 32, 45, 59, 9, - 10, 40, 41, 78, 110, 83, 115, 69, - 101, 67, 99, 51, 45, 83, 115, 72, - 104, 65, 97, 49, 32, 59, 9, 10, - 40, 41, 67, 68, 99, 100, 67, 68, - 99, 100, 45, 71, 103, 79, 111, 83, - 115, 84, 116, 32, 59, 9, 10, 40, - 41, 83, 115, 65, 97, 80, 112, 50, - 51, 53, 54, 83, 115, 72, 104, 65, - 97, 50, 53, 54, 32, 59, 9, 10, - 40, 41, 56, 52, 83, 115, 72, 104, - 65, 97, 51, 56, 52, 32, 59, 9, - 10, 40, 41, 50, 52, 53, 53, 49, - 57, 32, 59, 9, 10, 40, 41, 52, - 56, 32, 59, 9, 10, 40, 41, 78, - 110, 68, 100, 73, 105, 82, 114, 69, - 101, 67, 99, 84, 116, 32, 59, 9, - 10, 40, 41, 82, 114, 73, 105, 86, - 118, 65, 97, 84, 116, 69, 101, 68, - 79, 100, 111, 78, 110, 83, 115, 32, - 59, 9, 10, 40, 41, 73, 105, 68, - 100, 32, 59, 9, 10, 40, 41, 83, - 115, 65, 97, 77, 83, 109, 115, 68, - 100, 53, 32, 59, 9, 10, 40, 41, - 72, 104, 65, 97, 49, 50, 53, 32, - 45, 59, 9, 10, 40, 41, 78, 110, - 83, 115, 69, 101, 67, 99, 51, 45, - 83, 115, 72, 104, 65, 97, 49, 32, - 59, 9, 10, 40, 41, 53, 54, 32, - 59, 9, 10, 40, 41, 49, 50, 32, - 59, 9, 10, 40, 41, 65, 73, 79, - 80, 83, 85, 97, 105, 111, 112, 115, - 117, 48, 57, 32, 59, 9, 10, 40, - 41, 48, 57, 67, 99, 80, 112, 75, - 107, 73, 105, 88, 120, 32, 59, 9, - 10, 40, 41, 65, 80, 83, 97, 112, - 115, 67, 99, 80, 112, 75, 107, 73, - 105, 88, 120, 32, 59, 9, 10, 40, - 41, 71, 75, 103, 107, 80, 112, 32, - 59, 9, 10, 40, 41, 73, 105, 88, - 120, 32, 59, 9, 10, 40, 41, 80, - 112, 75, 107, 73, 105, 32, 59, 9, - 10, 40, 41, 73, 105, 68, 100, 32, - 59, 9, 10, 40, 41, 71, 75, 103, - 107, 80, 112, 32, 59, 9, 10, 40, + 3643, -128, 8, 11, 58, 60, 127, 34, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 99, 104, 61, 34, 43, 47, + 57, 65, 90, 97, 122, 43, 47, 57, + 65, 90, 97, 122, 43, 47, 57, 65, + 90, 97, 122, 43, 61, 47, 57, 65, + 90, 97, 122, 43, 61, 47, 57, 65, + 90, 97, 122, 34, 43, 47, 57, 65, + 90, 97, 122, 61, 43, 47, 57, 65, + 90, 97, 122, 43, 61, 47, 57, 65, + 90, 97, 122, 43, 61, 47, 57, 65, + 90, 97, 122, 9, 32, 40, 41, 43, + 3082, 3131, 3338, 3387, 3594, 3643, 47, 57, + 65, 90, 97, 122, 61, 112, 118, 52, + 54, 104, 105, 110, 116, 61, 34, 46, + 48, 57, 46, 48, 57, 34, 44, 46, + 48, 57, 46, 48, 57, 9, 32, 40, + 41, 44, 46, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 46, 48, 57, 104, 105, + 110, 116, 61, 34, 46, 48, 58, 65, + 70, 97, 102, 46, 48, 58, 65, 70, + 97, 102, 34, 44, 46, 48, 58, 65, + 70, 97, 102, 46, 48, 58, 65, 70, + 97, 102, 9, 32, 40, 41, 44, 46, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 58, + 65, 70, 97, 102, 46, 48, 58, 65, + 70, 97, 102, 101, 121, 48, 57, 9, + 32, 40, 41, 61, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 32, 59, 9, 10, + 40, 41, 97, 110, 100, 97, 116, 111, + 114, 121, 61, 34, 65, 90, 97, 122, + 65, 90, 97, 122, 34, 44, 65, 90, + 97, 122, 9, 32, 40, 41, 44, 3082, + 3131, 3338, 3387, 3594, 3643, 65, 90, 97, + 122, 111, 45, 100, 101, 102, 97, 117, + 108, 116, 45, 97, 108, 112, 110, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 104, 116, 116, 112, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 111, + 114, 116, 61, 34, 48, 57, 48, 57, + 34, 48, 57, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, -128, 8, 11, 58, 60, 127, 34, + 68, 69, 73, 80, 82, 100, 101, 105, + 112, 114, 48, 57, 32, 59, 9, 10, + 40, 41, 48, 57, 72, 83, 104, 115, + 32, 59, 9, 10, 40, 41, 65, 97, + 32, 45, 59, 9, 10, 40, 41, 78, + 110, 83, 115, 69, 101, 67, 99, 51, + 45, 83, 115, 72, 104, 65, 97, 49, + 32, 59, 9, 10, 40, 41, 67, 68, + 99, 100, 67, 68, 99, 100, 45, 71, + 103, 79, 111, 83, 115, 84, 116, 32, + 59, 9, 10, 40, 41, 83, 115, 65, + 97, 80, 112, 50, 51, 53, 54, 83, + 115, 72, 104, 65, 97, 50, 53, 54, + 32, 59, 9, 10, 40, 41, 56, 52, + 83, 115, 72, 104, 65, 97, 51, 56, + 52, 32, 59, 9, 10, 40, 41, 50, + 52, 53, 53, 49, 57, 32, 59, 9, + 10, 40, 41, 52, 56, 32, 59, 9, + 10, 40, 41, 78, 110, 68, 100, 73, + 105, 82, 114, 69, 101, 67, 99, 84, + 116, 32, 59, 9, 10, 40, 41, 82, + 114, 73, 105, 86, 118, 65, 97, 84, + 116, 69, 101, 68, 79, 100, 111, 78, + 110, 83, 115, 32, 59, 9, 10, 40, + 41, 73, 105, 68, 100, 32, 59, 9, + 10, 40, 41, 83, 115, 65, 97, 77, + 83, 109, 115, 68, 100, 53, 32, 59, + 9, 10, 40, 41, 72, 104, 65, 97, + 49, 50, 53, 32, 45, 59, 9, 10, + 40, 41, 78, 110, 83, 115, 69, 101, + 67, 99, 51, 45, 83, 115, 72, 104, + 65, 97, 49, 32, 59, 9, 10, 40, + 41, 53, 54, 32, 59, 9, 10, 40, + 41, 49, 50, 32, 59, 9, 10, 40, + 41, 65, 73, 79, 80, 83, 85, 97, + 105, 111, 112, 115, 117, 48, 57, 32, + 59, 9, 10, 40, 41, 48, 57, 67, + 99, 80, 112, 75, 107, 73, 105, 88, + 120, 32, 59, 9, 10, 40, 41, 65, + 80, 83, 97, 112, 115, 67, 99, 80, + 112, 75, 107, 73, 105, 88, 120, 32, + 59, 9, 10, 40, 41, 71, 75, 103, + 107, 80, 112, 32, 59, 9, 10, 40, 41, 73, 105, 88, 120, 32, 59, 9, 10, 40, 41, 80, 112, 75, 107, 73, - 105, 32, 59, 9, 10, 40, 41, 82, - 114, 73, 105, 32, 59, 9, 10, 40, - 41, 78, 110, 48, 57, 32, 59, 9, - 10, 40, 41, 48, 57, 79, 111, 84, - 116, 73, 105, 70, 102, 89, 121, 32, - 59, 9, 10, 40, 41, 46, 48, 57, - 32, 46, 59, 9, 10, 40, 41, 48, - 57, 42, 92, 95, 45, 57, 64, 90, - 97, 122, 32, 59, 9, 10, 40, 41, - 42, 92, 95, 45, 57, 64, 90, 97, - 122, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 42, 92, 95, 2058, 2107, - 45, 57, 64, 90, 97, 122, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 68, 72, 77, 83, 87, 100, 104, 109, - 115, 119, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 68, 72, 77, 83, 87, 100, - 104, 109, 115, 119, 2058, 2107, 48, 57, + 105, 32, 59, 9, 10, 40, 41, 73, + 105, 68, 100, 32, 59, 9, 10, 40, + 41, 71, 75, 103, 107, 80, 112, 32, + 59, 9, 10, 40, 41, 73, 105, 88, + 120, 32, 59, 9, 10, 40, 41, 80, + 112, 75, 107, 73, 105, 32, 59, 9, + 10, 40, 41, 82, 114, 73, 105, 32, + 59, 9, 10, 40, 41, 78, 110, 48, + 57, 32, 59, 9, 10, 40, 41, 48, + 57, 79, 111, 84, 116, 73, 105, 70, + 102, 89, 121, 32, 59, 9, 10, 40, + 41, 46, 48, 57, 32, 46, 59, 9, + 10, 40, 41, 48, 57, 42, 92, 95, + 45, 57, 64, 90, 97, 122, 32, 59, + 9, 10, 40, 41, 42, 92, 95, 45, + 57, 64, 90, 97, 122, 9, 32, 40, + 41, 2058, 2107, 9, 32, 40, 41, 42, + 92, 95, 2058, 2107, 45, 57, 64, 90, + 97, 122, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 68, 72, 77, 83, 87, 100, 104, 109, 115, 119, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 32, 59, 68, 72, 77, 83, - 87, 100, 104, 109, 115, 119, 9, 10, - 40, 41, 48, 57, 32, 59, 9, 10, - 40, 41, 48, 57, 68, 72, 77, 83, - 87, 100, 104, 109, 115, 119, 48, 57, + 48, 57, 9, 32, 40, 41, 68, 72, + 77, 83, 87, 100, 104, 109, 115, 119, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 68, 72, 77, 83, 87, 100, 104, 109, + 115, 119, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 32, 59, + 68, 72, 77, 83, 87, 100, 104, 109, + 115, 119, 9, 10, 40, 41, 48, 57, 32, 59, 9, 10, 40, 41, 48, 57, - 2058, 1920, 2175, 9, 32, 40, 41, 2058, - 2107, 48, 57, 68, 72, 77, 83, 87, - 100, 104, 109, 115, 119, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 2058, - 1920, 2175, 9, 32, 40, 41, 2058, 2107, - 48, 57, 68, 72, 77, 83, 87, 100, - 104, 109, 115, 119, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 2058, 1920, - 2175, 9, 32, 40, 41, 2058, 2107, 48, - 57, 68, 72, 77, 83, 87, 100, 104, - 109, 115, 119, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 32, 59, - 9, 10, 40, 41, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 2058, 2107, - -128, 8, 11, 58, 60, 127, 32, 59, - 9, 10, 40, 41, 2058, 1920, 2175, 42, - 92, 95, 45, 57, 64, 90, 97, 122, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 42, 92, 95, 2058, 2107, 45, - 57, 64, 90, 97, 122, 32, 59, 9, - 10, 40, 41, 2058, 1920, 2175, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 42, 92, 95, 2058, - 2107, 45, 57, 64, 90, 97, 122, 32, - 59, 9, 10, 40, 41, 2058, 1920, 2175, - 32, 59, 9, 10, 40, 41, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, -128, 8, 11, 58, 60, 127, - 2058, 1920, 2175, 46, 48, 58, 65, 70, - 97, 102, 32, 46, 59, 9, 10, 40, - 41, 48, 58, 65, 70, 97, 102, 48, + 68, 72, 77, 83, 87, 100, 104, 109, + 115, 119, 48, 57, 32, 59, 9, 10, + 40, 41, 48, 57, 2058, 1920, 2175, 9, + 32, 40, 41, 2058, 2107, 48, 57, 68, + 72, 77, 83, 87, 100, 104, 109, 115, + 119, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 2058, 1920, 2175, 9, 32, + 40, 41, 2058, 2107, 48, 57, 68, 72, + 77, 83, 87, 100, 104, 109, 115, 119, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 2058, 1920, 2175, 9, 32, 40, + 41, 2058, 2107, 48, 57, 68, 72, 77, + 83, 87, 100, 104, 109, 115, 119, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 78, 83, 2058, - 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 78, - 83, 2058, 2107, 48, 57, 9, 32, 40, - 41, 46, 2058, 2107, 48, 57, 9, 32, - 40, 41, 78, 83, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, + 57, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 32, 59, 9, 10, 40, 41, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 2058, 2107, -128, 8, 11, 58, + 60, 127, 32, 59, 9, 10, 40, 41, + 2058, 1920, 2175, 42, 92, 95, 45, 57, + 64, 90, 97, 122, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 42, 92, + 95, 2058, 2107, 45, 57, 64, 90, 97, + 122, 32, 59, 9, 10, 40, 41, 2058, + 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, + 42, 92, 95, 2058, 2107, 45, 57, 64, + 90, 97, 122, 32, 59, 9, 10, 40, + 41, 2058, 1920, 2175, 32, 59, 9, 10, + 40, 41, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, + 11, 58, 60, 127, 2058, 1920, 2175, 46, + 48, 58, 65, 70, 97, 102, 32, 46, + 59, 9, 10, 40, 41, 48, 58, 65, + 70, 97, 102, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 78, 83, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 78, 83, 2058, 2107, 48, + 57, 9, 32, 40, 41, 46, 2058, 2107, + 48, 57, 9, 32, 40, 41, 78, 83, + 2058, 2107, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 69, 87, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 69, 87, 2058, 2107, 48, 57, 9, 32, 40, 41, - 69, 87, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 69, 87, 2058, 2107, 48, 57, - 9, 32, 40, 41, 46, 2058, 2107, 48, - 57, 9, 32, 40, 41, 69, 87, 2058, - 2107, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 45, 2058, 2107, 48, 57, + 46, 2058, 2107, 48, 57, 9, 32, 40, + 41, 69, 87, 2058, 2107, 9, 32, 40, + 41, 2058, 2107, 9, 32, 40, 41, 45, + 2058, 2107, 48, 57, 48, 57, 9, 32, + 40, 41, 46, 109, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 9, 32, 40, 41, 46, 109, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 46, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 46, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 9, 32, - 40, 41, 46, 109, 3082, 3131, 3338, 3387, + 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, + 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 9, 32, 40, 41, 46, 109, 3082, 3131, + 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 2058, 1920, 2175, 9, 32, 40, 41, + 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 9, 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 109, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 2058, 1920, 2175, - 9, 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, - 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, - 48, 57, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, + 1920, 2175, 9, 32, 40, 41, 109, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, - 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, - 40, 41, 109, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 9, 32, 40, 41, 109, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 2058, 1920, 2175, 9, 32, 40, - 41, 2058, 2107, 2058, 1920, 2175, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 9, - 32, 40, 41, 2058, 2107, 2058, 1920, 2175, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 42, 92, 95, 2058, - 2107, 45, 57, 64, 90, 97, 122, 32, - 59, 9, 10, 40, 41, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, -128, 8, - 11, 58, 60, 127, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 2058, 2107, - -128, 8, 11, 58, 60, 127, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 2058, 1920, + 2175, 9, 32, 40, 41, 2058, 2107, 2058, + 1920, 2175, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 2058, 1920, 2175, 2058, 1920, 2175, + 2058, 1920, 2175, 9, 32, 40, 41, 2058, + 2107, 2058, 1920, 2175, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 2058, 1920, 2175, 2058, + 1920, 2175, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 42, 92, 95, 2058, 2107, 45, 57, 64, + 90, 97, 122, 32, 59, 9, 10, 40, + 41, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, -128, 8, 11, 58, 60, 127, 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 42, 92, 95, 2058, 2107, 45, - 57, 64, 90, 97, 122, 32, 59, 9, - 10, 40, 41, 2058, 1920, 2175, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, - 1920, 2175, 48, 57, 65, 90, 97, 122, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 65, 90, - 97, 122, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 43, 2058, 2107, 47, - 57, 65, 90, 97, 122, 2570, 2619, 2058, + 40, 41, 2058, 2107, -128, 8, 11, 58, + 60, 127, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 2058, 2107, -128, 8, + 11, 58, 60, 127, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 42, 92, + 95, 2058, 2107, 45, 57, 64, 90, 97, + 122, 32, 59, 9, 10, 40, 41, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, - 9, 32, 33, 40, 41, 49, 50, 3082, - 3131, 3338, 3387, 3594, 3643, 49, 50, 58, - 46, 48, 57, 47, 46, 57, 48, 57, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 2058, 1920, 2175, 58, - 46, 48, 58, 65, 70, 97, 102, 47, - 46, 58, 65, 70, 97, 102, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, + 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, 65, 90, 97, 122, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 65, 70, 97, 102, 48, 57, - 65, 70, 97, 102, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 65, 70, 97, 102, 2058, 1920, 2175, 2058, - 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 65, 70, 97, 102, 48, 57, - 65, 70, 97, 102, 9, 32, 40, 41, + 48, 57, 65, 90, 97, 122, 9, 32, + 40, 41, 2058, 2107, 9, 32, 40, 41, + 43, 2058, 2107, 47, 57, 65, 90, 97, + 122, 2570, 2619, 2058, 1920, 2175, 2058, 1920, + 2175, 2058, 1920, 2175, 9, 32, 33, 40, + 41, 49, 50, 3082, 3131, 3338, 3387, 3594, + 3643, 49, 50, 58, 46, 48, 57, 47, + 46, 57, 48, 57, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 65, 70, 97, 102, 2058, 1920, 2175, 2058, - 1920, 2175, 2058, 1920, 2175, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 48, 49, 50, 51, 2058, - 2107, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 46, 2058, 2107, 7177, 7200, - 7208, 7209, 7433, 7456, 7464, 7465, 7689, 7712, - 7720, 7721, 10506, 10555, 10762, 10811, 11274, 11323, - 11530, 11579, 11786, 11835, 12298, 12347, 12554, 12603, - 12810, 12859, 13322, 13371, 13578, 13627, 13834, 13883, - 4105, 4128, 4136, 4137, 4139, 5130, 5179, 4143, - 4153, 4161, 4186, 4193, 4218, 2570, 2619, 5130, - 4992, 5247, 5641, 5664, 5672, 5673, 14602, 14651, - 14858, 14907, 15370, 15419, 15626, 15675, 15882, 15931, - 6666, 6528, 6783, 4139, 7177, 7200, 7208, 7209, - 7433, 7456, 7464, 7465, 7689, 7712, 7720, 7721, - 10506, 10555, 10762, 10811, 11274, 11323, 11530, 11579, - 11786, 11835, 12298, 12347, 12554, 12603, 12810, 12859, - 13322, 13371, 13578, 13627, 13834, 13883, 4143, 4153, - 4161, 4186, 4193, 4218, 8714, 9226, 9738, 8576, - 8831, 9088, 9343, 9600, 9855, 2058, 1920, 2175, - 2058, 1920, 2175, 9, 32, 40, 41, 2058, - 2107, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 46, 2058, 2107, - 48, 57, 46, 7177, 7200, 7208, 7209, 7433, - 7456, 7464, 7465, 7689, 7712, 7720, 7721, 10506, - 10555, 10762, 10811, 11274, 11323, 11530, 11579, 11786, - 11835, 12298, 12347, 12554, 12603, 12810, 12859, 13322, - 13371, 13578, 13627, 13834, 13883, 48, 57, 2058, - 1920, 2175, 2058, 1920, 2175, 9, 32, 40, + 2058, 1920, 2175, 58, 46, 48, 58, 65, + 70, 97, 102, 47, 46, 58, 65, 70, + 97, 102, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 65, 90, 97, 122, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 65, 70, + 97, 102, 48, 57, 65, 70, 97, 102, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 65, 70, 97, 102, + 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, + 2175, 2058, 1920, 2175, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 65, 70, + 97, 102, 48, 57, 65, 70, 97, 102, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 65, 70, 97, 102, + 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, + 2175, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 48, + 49, 50, 51, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 46, - 2058, 2107, 48, 58, 65, 70, 97, 102, - 46, 7177, 7200, 7208, 7209, 7433, 7456, 7464, - 7465, 7689, 7712, 7720, 7721, 10506, 10555, 10762, - 10811, 11274, 11323, 11530, 11579, 11786, 11835, 12298, - 12347, 12554, 12603, 12810, 12859, 13322, 13371, 13578, - 13627, 13834, 13883, 48, 58, 65, 70, 97, - 102, 2058, 1920, 2175, 2058, 1920, 2175, 9, + 2058, 2107, 7177, 7200, 7208, 7209, 7433, 7456, + 7464, 7465, 7689, 7712, 7720, 7721, 10506, 10555, + 10762, 10811, 11274, 11323, 11530, 11579, 11786, 11835, + 12298, 12347, 12554, 12603, 12810, 12859, 13322, 13371, + 13578, 13627, 13834, 13883, 4105, 4128, 4136, 4137, + 4139, 5130, 5179, 4143, 4153, 4161, 4186, 4193, + 4218, 2570, 2619, 5130, 4992, 5247, 5641, 5664, + 5672, 5673, 14602, 14651, 14858, 14907, 15370, 15419, + 15626, 15675, 15882, 15931, 6666, 6528, 6783, 4139, + 7177, 7200, 7208, 7209, 7433, 7456, 7464, 7465, + 7689, 7712, 7720, 7721, 10506, 10555, 10762, 10811, + 11274, 11323, 11530, 11579, 11786, 11835, 12298, 12347, + 12554, 12603, 12810, 12859, 13322, 13371, 13578, 13627, + 13834, 13883, 4143, 4153, 4161, 4186, 4193, 4218, + 8714, 9226, 9738, 8576, 8831, 9088, 9343, 9600, + 9855, 2058, 1920, 2175, 2058, 1920, 2175, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 42, 92, 95, 2058, 2107, 45, 57, - 64, 90, 97, 122, 7177, 7200, 7208, 7209, - 7433, 7456, 7464, 7465, 7689, 7712, 7720, 7721, - 10506, 10555, 10762, 10811, 11274, 11323, 11530, 11579, - 11786, 11835, 12298, 12347, 12554, 12603, 12810, 12859, - 13322, 13371, 13578, 13627, 13834, 13883, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, - 57, 65, 90, 97, 122, 9, 32, 40, - 41, 2058, 2107, 9, 32, 40, 41, 2058, - 2107, 48, 57, 65, 90, 97, 122, 9, - 32, 40, 41, 2058, 2107, 9, 32, 40, + 41, 46, 2058, 2107, 48, 57, 46, 7177, + 7200, 7208, 7209, 7433, 7456, 7464, 7465, 7689, + 7712, 7720, 7721, 10506, 10555, 10762, 10811, 11274, + 11323, 11530, 11579, 11786, 11835, 12298, 12347, 12554, + 12603, 12810, 12859, 13322, 13371, 13578, 13627, 13834, + 13883, 48, 57, 2058, 1920, 2175, 2058, 1920, + 2175, 9, 32, 40, 41, 2058, 2107, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 46, 2058, 2107, 48, 58, + 65, 70, 97, 102, 46, 7177, 7200, 7208, + 7209, 7433, 7456, 7464, 7465, 7689, 7712, 7720, + 7721, 10506, 10555, 10762, 10811, 11274, 11323, 11530, + 11579, 11786, 11835, 12298, 12347, 12554, 12603, 12810, + 12859, 13322, 13371, 13578, 13627, 13834, 13883, 48, + 58, 65, 70, 97, 102, 2058, 1920, 2175, + 2058, 1920, 2175, 9, 32, 40, 41, 2058, + 2107, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 42, 92, 95, + 2058, 2107, 45, 57, 64, 90, 97, 122, + 7177, 7200, 7208, 7209, 7433, 7456, 7464, 7465, + 7689, 7712, 7720, 7721, 10506, 10555, 10762, 10811, + 11274, 11323, 11530, 11579, 11786, 11835, 12298, 12347, + 12554, 12603, 12810, 12859, 13322, 13371, 13578, 13627, + 13834, 13883, 2058, 1920, 2175, 2058, 1920, 2175, + 2058, 1920, 2175, 48, 57, 65, 90, 97, + 122, 9, 32, 40, 41, 2058, 2107, 9, + 32, 40, 41, 2058, 2107, 48, 57, 65, + 90, 97, 122, 9, 32, 40, 41, 2058, + 2107, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 42, 92, 95, + 2058, 2107, 45, 57, 64, 90, 97, 122, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 43, 2058, 2107, 47, 57, 65, + 90, 97, 122, 2570, 2619, 2058, 1920, 2175, + 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 2058, 1920, 2175, 42, 92, 95, + 45, 57, 64, 90, 97, 122, 32, 59, + 9, 10, 40, 41, 32, 59, 9, 10, + 40, 41, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 65, 90, 97, 122, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 43, 2058, 2107, 47, 57, 65, + 90, 97, 122, 2570, 2619, 2058, 1920, 2175, + 2058, 1920, 2175, 2058, 1920, 2175, 43, 47, + 57, 65, 90, 97, 122, 2570, 2619, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 45, 2058, 2107, + 48, 57, 65, 70, 97, 102, 9, 32, + 40, 41, 2058, 2107, 9, 32, 40, 41, + 2058, 2107, 48, 57, 65, 86, 97, 118, + 48, 57, 65, 86, 97, 118, 61, 48, + 57, 65, 86, 97, 118, 48, 57, 65, + 86, 97, 118, 61, 48, 57, 65, 86, + 97, 118, 61, 48, 57, 65, 86, 97, + 118, 48, 57, 65, 86, 97, 118, 61, + 48, 57, 65, 86, 97, 118, 32, 59, + 9, 10, 40, 41, 48, 57, 65, 86, + 97, 118, 32, 59, 9, 10, 40, 41, + 61, 61, 61, 61, 61, 2058, 1920, 2175, + 48, 57, 65, 70, 97, 102, 9, 32, + 40, 41, 2058, 2107, 48, 57, 65, 70, + 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, + 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 45, 2058, 2107, 48, 57, 65, 70, + 97, 102, 32, 59, 9, 10, 40, 41, + 48, 57, 65, 70, 97, 102, 32, 59, + 9, 10, 40, 41, 48, 57, 65, 70, + 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, + 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 42, 92, 95, 2058, 2107, 45, 57, - 64, 90, 97, 122, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 43, 2058, - 2107, 47, 57, 65, 90, 97, 122, 2570, - 2619, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 41, 2058, 2107, 48, 57, 65, 70, 97, + 102, 48, 57, 65, 70, 97, 102, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 65, 70, 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, - 2175, 42, 92, 95, 45, 57, 64, 90, - 97, 122, 32, 59, 9, 10, 40, 41, - 32, 59, 9, 10, 40, 41, 48, 57, + 2058, 1920, 2175, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 32, 59, 9, + 10, 40, 41, 48, 57, 32, 59, 9, + 10, 40, 41, 2058, 1920, 2175, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, - 65, 90, 97, 122, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 43, 2058, - 2107, 47, 57, 65, 90, 97, 122, 2570, - 2619, 2058, 1920, 2175, 2058, 1920, 2175, 2058, - 1920, 2175, 43, 47, 57, 65, 90, 97, - 122, 2570, 2619, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 45, 2058, 2107, 48, 57, 65, 70, - 97, 102, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, - 65, 86, 97, 118, 48, 57, 65, 86, - 97, 118, 61, 48, 57, 65, 86, 97, - 118, 48, 57, 65, 86, 97, 118, 61, - 48, 57, 65, 86, 97, 118, 61, 48, - 57, 65, 86, 97, 118, 48, 57, 65, - 86, 97, 118, 61, 48, 57, 65, 86, - 97, 118, 32, 59, 9, 10, 40, 41, - 48, 57, 65, 86, 97, 118, 32, 59, - 9, 10, 40, 41, 61, 61, 61, 61, - 61, 2058, 1920, 2175, 48, 57, 65, 70, - 97, 102, 9, 32, 40, 41, 2058, 2107, - 48, 57, 65, 70, 97, 102, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 45, 2058, 2107, - 48, 57, 65, 70, 97, 102, 32, 59, - 9, 10, 40, 41, 48, 57, 65, 70, - 97, 102, 32, 59, 9, 10, 40, 41, - 48, 57, 65, 70, 97, 102, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 65, 70, 97, 102, 48, 57, 65, - 70, 97, 102, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 65, - 70, 97, 102, 2058, 1920, 2175, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 32, 59, 9, 10, 40, 41, 48, - 57, 32, 59, 9, 10, 40, 41, 2058, - 1920, 2175, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 65, 70, 97, 102, - 48, 57, 65, 70, 97, 102, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 48, 57, 65, 70, 97, 102, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, - 1920, 2175, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 46, 2058, 2107, 48, 57, 32, 46, 59, - 9, 10, 40, 41, 48, 57, 2058, 1920, - 2175, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 65, 70, 97, 102, 48, - 57, 65, 70, 97, 102, 48, 57, 65, - 70, 97, 102, 48, 57, 65, 70, 97, - 102, 58, 48, 57, 65, 70, 97, 102, - 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, - 97, 102, 32, 58, 59, 9, 10, 40, - 41, 2058, 1920, 2175, 48, 57, 65, 70, - 97, 102, 48, 57, 65, 70, 97, 102, - 45, 48, 57, 65, 70, 97, 102, 48, - 57, 65, 70, 97, 102, 32, 45, 59, - 9, 10, 40, 41, 48, 57, 65, 70, - 97, 102, 48, 57, 65, 70, 97, 102, - 45, 48, 57, 65, 70, 97, 102, 48, - 57, 65, 70, 97, 102, 32, 45, 59, - 9, 10, 40, 41, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, -128, 8, 11, 58, - 60, 127, 32, 59, 9, 10, 40, 41, + 97, 102, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 65, 70, + 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, -128, 8, - 11, 58, 60, 127, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 46, 2058, 2107, 48, + 57, 32, 46, 59, 9, 10, 40, 41, + 48, 57, 2058, 1920, 2175, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 65, + 70, 97, 102, 48, 57, 65, 70, 97, + 102, 48, 57, 65, 70, 97, 102, 48, + 57, 65, 70, 97, 102, 58, 48, 57, + 65, 70, 97, 102, 48, 57, 65, 70, + 97, 102, 48, 57, 65, 70, 97, 102, + 48, 57, 65, 70, 97, 102, 32, 58, + 59, 9, 10, 40, 41, 2058, 1920, 2175, + 48, 57, 65, 70, 97, 102, 48, 57, + 65, 70, 97, 102, 45, 48, 57, 65, + 70, 97, 102, 48, 57, 65, 70, 97, + 102, 32, 45, 59, 9, 10, 40, 41, + 48, 57, 65, 70, 97, 102, 48, 57, + 65, 70, 97, 102, 45, 48, 57, 65, + 70, 97, 102, 48, 57, 65, 70, 97, + 102, 32, 45, 59, 9, 10, 40, 41, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, -128, 8, 11, 58, 60, 127, 32, 59, 9, 10, 40, 41, 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, - 42, 92, 95, 2058, 2107, 45, 57, 64, - 90, 97, 122, 32, 59, 9, 10, 40, - 41, 32, 59, 9, 10, 40, 41, 2058, - 1920, 2175, 48, 57, 65, 90, 97, 122, + 2058, 2107, -128, 8, 11, 58, 60, 127, 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, 48, 57, 65, 90, - 97, 122, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 2058, 2107, 48, 57, + 40, 41, 2058, 2107, -128, 8, 11, 58, + 60, 127, 32, 59, 9, 10, 40, 41, + 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 42, 92, 95, 2058, 2107, 45, 57, 64, 90, 97, 122, 32, - 59, 9, 10, 40, 41, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 9, 32, - 36, 40, 41, 42, 92, 95, 1802, 1851, - 2058, 2107, 45, 57, 64, 90, 97, 122, - 9, 32, 36, 40, 41, 42, 58, 92, - 95, 2826, 2875, 3082, 3131, 3338, 3387, 3594, - 3643, -128, 8, 11, 44, 45, 57, 60, - 63, 64, 90, 91, 96, 97, 122, 123, - 127, 9, 32, 36, 40, 41, 42, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 92, 95, 97, 99, 100, 101, 104, - 105, 107, 108, 109, 110, 111, 112, 114, - 115, 116, 117, 119, 122, 1802, 1851, 2058, - 2107, 45, 57, 64, 89, 98, 121, 9, - 32, 36, 40, 41, 42, 65, 67, 68, - 69, 72, 73, 75, 76, 77, 78, 79, - 80, 82, 83, 84, 85, 87, 90, 92, - 95, 97, 99, 100, 101, 104, 105, 107, - 108, 109, 110, 111, 112, 114, 115, 116, - 117, 119, 122, 1802, 1851, 2058, 2107, 45, - 47, 48, 57, 64, 89, 98, 121, 9, - 32, 36, 40, 41, 42, 92, 95, 1802, - 1851, 2058, 2107, 45, 57, 64, 90, 97, - 122, 9, 32, 36, 40, 41, 42, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 92, 95, 97, 99, 100, 101, 104, - 105, 107, 108, 109, 110, 111, 112, 114, - 115, 116, 117, 119, 122, 1802, 1851, 2058, - 2107, 45, 47, 48, 57, 64, 89, 98, - 121, 9, 32, 36, 40, 41, 42, 92, - 95, 1802, 1851, 2058, 2107, 45, 57, 64, - 90, 97, 122, 9, 32, 36, 40, 41, - 42, 58, 92, 95, 2826, 2875, 3082, 3131, - 3338, 3387, 3594, 3643, -128, 8, 11, 44, - 45, 57, 60, 63, 64, 90, 91, 96, - 97, 122, 123, 127, 9, 32, 36, 40, - 41, 42, 58, 65, 67, 68, 69, 72, + 59, 9, 10, 40, 41, 32, 59, 9, + 10, 40, 41, 2058, 1920, 2175, 48, 57, + 65, 90, 97, 122, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 2058, 2107, + 48, 57, 65, 90, 97, 122, 9, 32, + 40, 41, 2058, 2107, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 42, 92, 95, 2058, 2107, 45, 57, 64, + 90, 97, 122, 32, 59, 9, 10, 40, + 41, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 9, 32, 36, 40, 41, 42, + 92, 95, 1802, 1851, 2058, 2107, 45, 57, + 64, 90, 97, 122, 9, 32, 36, 40, + 41, 42, 58, 92, 95, 2826, 2875, 3082, + 3131, 3338, 3387, 3594, 3643, -128, 8, 11, + 44, 45, 57, 60, 63, 64, 90, 91, + 96, 97, 122, 123, 127, 9, 32, 36, + 40, 41, 42, 65, 67, 68, 69, 72, 73, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 90, 92, 95, 97, 99, 100, 101, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 119, - 122, 2826, 2875, 3082, 3131, 3338, 3387, 3594, - 3643, -128, 8, 11, 44, 45, 47, 48, - 57, 60, 63, 64, 89, 91, 96, 98, - 121, 123, 127, 9, 32, 36, 40, 41, - 42, 58, 65, 67, 68, 69, 72, 73, - 75, 76, 77, 78, 79, 80, 82, 83, - 84, 85, 87, 90, 92, 95, 97, 99, - 100, 101, 104, 105, 107, 108, 109, 110, - 111, 112, 114, 115, 116, 117, 119, 122, + 122, 1802, 1851, 2058, 2107, 45, 57, 64, + 89, 98, 121, 9, 32, 36, 40, 41, + 42, 65, 67, 68, 69, 72, 73, 75, + 76, 77, 78, 79, 80, 82, 83, 84, + 85, 87, 90, 92, 95, 97, 99, 100, + 101, 104, 105, 107, 108, 109, 110, 111, + 112, 114, 115, 116, 117, 119, 122, 1802, + 1851, 2058, 2107, 45, 47, 48, 57, 64, + 89, 98, 121, 9, 32, 36, 40, 41, + 42, 92, 95, 1802, 1851, 2058, 2107, 45, + 57, 64, 90, 97, 122, 9, 32, 36, + 40, 41, 42, 65, 67, 68, 69, 72, + 73, 75, 76, 77, 78, 79, 80, 82, + 83, 84, 85, 87, 90, 92, 95, 97, + 99, 100, 101, 104, 105, 107, 108, 109, + 110, 111, 112, 114, 115, 116, 117, 119, + 122, 1802, 1851, 2058, 2107, 45, 47, 48, + 57, 64, 89, 98, 121, 9, 32, 36, + 40, 41, 42, 92, 95, 1802, 1851, 2058, + 2107, 45, 57, 64, 90, 97, 122, 9, + 32, 36, 40, 41, 42, 58, 92, 95, 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643, - -128, 8, 11, 44, 45, 47, 48, 57, - 60, 63, 64, 89, 91, 96, 98, 121, - 123, 127, 32, 33, 59, 92, 9, 10, - 35, 39, 40, 41, 42, 126, 9, 32, - 40, 41, 42, 46, 92, 95, 2058, 2107, - 45, 57, 65, 90, 97, 122, 9, 32, - 40, 41, 43, 3082, 3131, 3338, 3387, 3594, - 3643, 47, 57, 65, 90, 97, 122, 2058, - 1920, 2175, 9, 32, 40, 41, 65, 67, + -128, 8, 11, 44, 45, 57, 60, 63, + 64, 90, 91, 96, 97, 122, 123, 127, + 9, 32, 36, 40, 41, 42, 58, 65, + 67, 68, 69, 72, 73, 75, 76, 77, + 78, 79, 80, 82, 83, 84, 85, 87, + 90, 92, 95, 97, 99, 100, 101, 104, + 105, 107, 108, 109, 110, 111, 112, 114, + 115, 116, 117, 119, 122, 2826, 2875, 3082, + 3131, 3338, 3387, 3594, 3643, -128, 8, 11, + 44, 45, 47, 48, 57, 60, 63, 64, + 89, 91, 96, 98, 121, 123, 127, 9, + 32, 36, 40, 41, 42, 58, 65, 67, 68, 69, 72, 73, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 90, - 97, 99, 100, 101, 104, 105, 107, 108, - 109, 110, 111, 112, 114, 115, 116, 117, - 119, 122, 3082, 3131, 3338, 3387, 3594, 3643, - 2058, 1920, 2175, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 65, - 70, 97, 102, 2058, 1920, 2175, 9, 32, - 40, 41, 2058, 2107, 48, 57, 65, 70, - 97, 102, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 65, 70, - 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, - 9, 32, 40, 41, 97, 100, 101, 105, - 107, 109, 110, 111, 112, 3082, 3131, 3338, - 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - -128, 8, 11, 58, 60, 127, 2058, 1920, - 2175, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 48, 57, 2058, 1920, 2175, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 2058, 1920, 2175, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 2058, 1920, 2175, 9, 32, 33, 40, 41, - 49, 50, 3082, 3131, 3338, 3387, 3594, 3643, - 2058, 1920, 2175, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 65, - 70, 97, 102, 2058, 1920, 2175, 9, 32, + 92, 95, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 2826, 2875, 3082, 3131, + 3338, 3387, 3594, 3643, -128, 8, 11, 44, + 45, 47, 48, 57, 60, 63, 64, 89, + 91, 96, 98, 121, 123, 127, 32, 33, + 59, 92, 9, 10, 35, 39, 40, 41, + 42, 126, 9, 32, 40, 41, 42, 46, + 92, 95, 2058, 2107, 45, 57, 65, 90, + 97, 122, 9, 32, 40, 41, 43, 3082, + 3131, 3338, 3387, 3594, 3643, 47, 57, 65, + 90, 97, 122, 2058, 1920, 2175, 9, 32, + 40, 41, 65, 67, 68, 69, 72, 73, + 75, 76, 77, 78, 79, 80, 82, 83, + 84, 85, 87, 90, 97, 99, 100, 101, + 104, 105, 107, 108, 109, 110, 111, 112, + 114, 115, 116, 117, 119, 122, 3082, 3131, + 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 65, 70, 97, 102, 2058, + 1920, 2175, 9, 32, 40, 41, 2058, 2107, + 48, 57, 65, 70, 97, 102, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 65, 70, 97, 102, 2058, 1920, - 2175, 5641, 5664, 5672, 5673, 14602, 14651, 14858, - 14907, 15370, 15419, 15626, 15675, 15882, 15931, 6666, - 6528, 6783, 4105, 4128, 4136, 4137, 4139, 5130, - 5179, 4143, 4153, 4161, 4186, 4193, 4218, 5130, - 4992, 5247, 4139, 7177, 7200, 7208, 7209, 7433, - 7456, 7464, 7465, 7689, 7712, 7720, 7721, 10506, - 10555, 10762, 10811, 11274, 11323, 11530, 11579, 11786, - 11835, 12298, 12347, 12554, 12603, 12810, 12859, 13322, - 13371, 13578, 13627, 13834, 13883, 4143, 4153, 4161, - 4186, 4193, 4218, 8714, 9226, 9738, 8576, 8831, - 9088, 9343, 9600, 9855, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 65, 70, 97, 102, 2058, 1920, 2175, 9, + 2175, 2058, 1920, 2175, 9, 32, 40, 41, + 97, 100, 101, 105, 107, 109, 110, 111, + 112, 3082, 3131, 3338, 3387, 3594, 3643, 2058, + 1920, 2175, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, -128, 8, 11, 58, + 60, 127, 2058, 1920, 2175, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, + 1920, 2175, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 2058, 1920, + 2175, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 48, 57, 2058, 1920, 2175, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 2058, 1920, 2175, 9, + 32, 33, 40, 41, 49, 50, 3082, 3131, + 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 65, 70, 97, 102, 2058, - 1920, 2175, 0 + 1920, 2175, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 65, 70, + 97, 102, 2058, 1920, 2175, 5641, 5664, 5672, + 5673, 14602, 14651, 14858, 14907, 15370, 15419, 15626, + 15675, 15882, 15931, 6666, 6528, 6783, 4105, 4128, + 4136, 4137, 4139, 5130, 5179, 4143, 4153, 4161, + 4186, 4193, 4218, 5130, 4992, 5247, 4139, 7177, + 7200, 7208, 7209, 7433, 7456, 7464, 7465, 7689, + 7712, 7720, 7721, 10506, 10555, 10762, 10811, 11274, + 11323, 11530, 11579, 11786, 11835, 12298, 12347, 12554, + 12603, 12810, 12859, 13322, 13371, 13578, 13627, 13834, + 13883, 4143, 4153, 4161, 4186, 4193, 4218, 8714, + 9226, 9738, 8576, 8831, 9088, 9343, 9600, 9855, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 48, 57, 65, 70, 97, 102, + 2058, 1920, 2175, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 65, + 70, 97, 102, 2058, 1920, 2175, 0 }; static const char _zone_scanner_single_lengths[] = { @@ -3269,187 +3293,189 @@ static const char _zone_scanner_single_lengths[] = { 2, 2, 10, 2, 10, 12, 2, 11, 12, 2, 2, 2, 2, 10, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, - 2, 2, 10, 6, 10, 2, 2, 2, - 10, 10, 12, 2, 2, 2, 2, 10, - 2, 10, 2, 10, 2, 10, 2, 2, - 2, 10, 2, 2, 10, 6, 2, 2, - 10, 2, 10, 2, 2, 0, 10, 2, - 2, 10, 2, 2, 2, 2, 2, 10, - 2, 2, 2, 2, 2, 10, 1, 44, - 4, 6, 42, 16, 6, 10, 6, 1, - 1, 6, 2, 2, 2, 2, 2, 2, - 2, 6, 42, 1, 16, 42, 1, 6, - 10, 6, 1, 16, 48, 18, 13, 44, - 2, 8, 8, 50, 18, 14, 10, 12, - 12, 12, 14, 12, 14, 10, 10, 14, - 20, 14, 10, 10, 10, 2, 14, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 8, 18, 44, 2, 18, 50, 18, 14, - 10, 12, 12, 12, 14, 12, 14, 10, - 10, 14, 20, 14, 10, 10, 10, 9, - 44, 12, 12, 12, 12, 2, 2, 10, - 2, 2, 2, 10, 2, 10, 2, 8, - 8, 12, 12, 12, 12, 1, 50, 12, - 12, 16, 12, 8, 10, 10, 10, 12, - 10, 12, 8, 8, 12, 18, 12, 8, - 8, 8, 2, 2, 10, 2, 3, 1, - 1, 5, 6, 6, 0, 0, 0, 6, - 2, 2, 2, 4, 0, 0, 0, 4, - 6, 6, 2, 0, 0, 0, 6, 6, - 6, 18, 8, 1, 8, 10, 8, 1, - 6, 10, 4, 12, 8, 1, 0, 0, - 0, 4, 8, 1, 6, 6, 8, 12, + 2, 2, 10, 8, 2, 2, 2, 2, + 2, 10, 10, 2, 2, 2, 10, 10, + 12, 2, 2, 2, 2, 10, 2, 10, + 2, 10, 2, 10, 2, 2, 2, 10, + 2, 2, 10, 6, 2, 2, 10, 2, + 10, 2, 2, 0, 10, 2, 2, 10, + 2, 2, 2, 2, 2, 10, 2, 2, + 2, 2, 2, 10, 1, 44, 4, 6, + 42, 16, 6, 10, 6, 1, 1, 6, + 2, 2, 2, 2, 2, 2, 2, 6, + 42, 1, 16, 42, 1, 6, 10, 6, + 1, 16, 48, 18, 13, 44, 2, 8, + 8, 50, 18, 14, 10, 12, 12, 12, + 14, 12, 14, 10, 10, 16, 20, 14, + 10, 10, 10, 2, 14, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 8, 18, + 44, 2, 18, 50, 18, 14, 10, 12, + 12, 12, 14, 12, 14, 10, 10, 16, + 20, 14, 10, 10, 10, 9, 44, 12, + 12, 12, 12, 2, 2, 10, 2, 2, + 2, 10, 2, 10, 2, 8, 8, 12, + 12, 12, 12, 1, 50, 12, 12, 16, + 12, 8, 10, 10, 10, 12, 10, 12, + 8, 8, 14, 18, 12, 8, 8, 8, + 2, 2, 10, 2, 3, 1, 1, 5, + 6, 6, 0, 0, 0, 6, 2, 2, + 2, 4, 0, 0, 0, 4, 6, 6, + 2, 0, 0, 0, 6, 6, 6, 18, + 8, 1, 8, 10, 8, 1, 6, 10, 4, 12, 8, 1, 0, 0, 0, 4, - 8, 2, 10, 1, 1, 1, 1, 2, - 2, 11, 1, 1, 36, 8, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 10, - 2, 2, 4, 2, 2, 2, 2, 2, + 8, 1, 6, 6, 8, 12, 4, 12, + 8, 1, 0, 0, 0, 4, 8, 2, + 10, 1, 1, 1, 1, 2, 2, 11, + 1, 1, 36, 8, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 10, 2, 2, + 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 6, 2, 2, 2, - 2, 4, 2, 2, 2, 2, 2, 2, - 2, 4, 2, 2, 2, 2, 2, 2, - 1, 2, 1, 2, 4, 2, 2, 2, + 2, 2, 6, 2, 2, 2, 2, 4, + 2, 2, 2, 2, 2, 2, 2, 4, + 2, 2, 2, 2, 2, 2, 1, 2, + 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 4, 2, 2, - 2, 6, 1, 2, 1, 2, 2, 2, - 2, 4, 2, 2, 2, 2, 2, 6, - 2, 2, 2, 2, 2, 2, 4, 2, - 3, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 4, 2, 2, 2, 6, + 1, 2, 1, 2, 2, 2, 2, 4, + 2, 2, 2, 2, 2, 6, 2, 2, + 2, 2, 2, 2, 4, 2, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 6, 2, 2, 2, - 2, 2, 2, 12, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 6, 2, - 2, 2, 2, 2, 2, 2, 0, 2, + 2, 2, 8, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 12, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 6, 2, 2, 2, 2, 2, + 2, 2, 0, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 10, 46, 16, 2, 2, + 10, 1, 10, 2, 10, 4, 2, 2, + 2, 2, 10, 10, 2, 2, 10, 2, + 2, 2, 10, 2, 2, 2, 10, 6, + 2, 2, 2, 10, 4, 2, 2, 10, + 2, 2, 2, 10, 12, 2, 2, 10, + 2, 2, 2, 1, 10, 1, 10, 4, + 2, 2, 2, 10, 2, 2, 2, 10, 2, 2, 2, 2, 2, 2, 2, 10, - 46, 16, 2, 2, 10, 1, 10, 2, - 10, 4, 2, 2, 2, 2, 10, 10, - 2, 2, 10, 2, 2, 2, 10, 2, - 2, 2, 10, 6, 2, 2, 2, 10, - 4, 2, 2, 10, 2, 2, 2, 10, - 12, 2, 2, 10, 2, 2, 2, 1, - 10, 1, 10, 4, 2, 2, 2, 10, - 2, 2, 2, 10, 2, 2, 2, 2, - 2, 2, 2, 10, 4, 2, 10, 10, - 6, 1, 10, 1, 10, 2, 10, 10, - 4, 2, 2, 2, 10, 10, 6, 2, - 2, 2, 10, 2, 10, 12, 2, 11, - 12, 2, 2, 2, 2, 10, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 10, - 2, 2, 10, 6, 10, 2, 2, 2, - 10, 10, 12, 2, 2, 2, 2, 10, - 2, 10, 2, 10, 2, 10, 2, 2, - 2, 10, 2, 2, 10, 6, 2, 2, - 10, 2, 10, 2, 2, 0, 10, 2, + 4, 2, 10, 10, 6, 1, 10, 1, + 10, 2, 10, 10, 4, 2, 2, 2, + 10, 10, 6, 2, 2, 2, 10, 2, + 10, 12, 2, 11, 12, 2, 2, 2, + 2, 10, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 10, 2, 2, 10, 8, + 2, 2, 2, 2, 2, 10, 10, 2, + 2, 2, 10, 10, 12, 2, 2, 2, + 2, 10, 2, 10, 2, 10, 2, 10, + 2, 2, 2, 10, 2, 2, 10, 6, + 2, 2, 10, 2, 10, 2, 2, 0, + 10, 2, 2, 10, 2, 2, 2, 2, 2, 10, 2, 2, 2, 2, 2, 10, - 2, 2, 2, 2, 2, 10, 2, 2, - 2, 10, 2, 10, 6, 6, 6, 6, - 0, 10, 1, 1, 1, 6, 7, 8, - 6, 0, 10, 1, 1, 6, 1, 8, - 1, 1, 1, 4, 1, 1, 1, 1, - 1, 1, 4, 1, 1, 4, 1, 1, - 2, 1, 1, 1, 1, 4, 1, 1, - 1, 1, 4, 1, 1, 0, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 4, 1, 1, - 1, 1, 4, 1, 1, 1, 4, 10, - 19, 1, 1, 1, 1, 3, 10, 1, - 1, 1, 1, 1, 1, 1, 1, 3, - 10, 10, 1, 10, 1, 1, 1, 2, - 1, 1, 2, 2, 2, 1, 1, 2, - 2, 11, 1, 1, 1, 2, 1, 1, - 1, 1, 1, 2, 1, 3, 1, 12, - 1, 1, 1, 1, 1, 1, 2, 1, - 3, 1, 12, 1, 1, 1, 0, 11, - 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 2, 0, 11, 0, + 2, 2, 2, 10, 2, 10, 6, 6, + 6, 6, 0, 10, 1, 1, 1, 6, + 7, 8, 6, 0, 10, 1, 1, 6, + 1, 8, 1, 1, 1, 4, 1, 1, + 1, 1, 1, 1, 4, 1, 1, 4, + 1, 1, 2, 1, 1, 1, 1, 4, + 1, 1, 1, 1, 4, 1, 1, 0, + 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 4, + 1, 1, 1, 1, 4, 1, 1, 1, + 4, 10, 19, 1, 1, 1, 1, 3, + 10, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 10, 10, 1, 10, 1, 1, + 1, 2, 1, 1, 2, 2, 2, 1, + 1, 2, 2, 11, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 2, 1, 3, + 1, 12, 1, 1, 1, 1, 1, 1, + 2, 1, 3, 1, 12, 1, 1, 1, + 0, 11, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 2, 0, + 11, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 10, 1, - 1, 1, 1, 10, 1, 1, 1, 1, - 1, 0, 1, 10, 10, 1, 10, 2, - 4, 2, 2, 3, 2, 2, 2, 2, - 1, 1, 2, 2, 2, 1, 2, 4, - 4, 1, 2, 2, 2, 2, 2, 2, + 10, 1, 1, 1, 1, 10, 1, 1, + 1, 1, 1, 0, 1, 10, 10, 1, + 10, 2, 4, 2, 2, 3, 2, 2, + 2, 2, 1, 1, 2, 2, 2, 1, + 2, 4, 4, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 2, + 2, 2, 1, 1, 1, 2, 1, 1, + 2, 2, 2, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 2, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 4, 2, + 2, 2, 2, 2, 2, 2, 2, 4, + 2, 1, 2, 2, 2, 3, 3, 2, 2, 2, 2, 1, 1, 2, 2, 2, - 1, 1, 1, 2, 1, 1, 2, 2, - 2, 1, 1, 1, 2, 2, 1, 1, - 1, 1, 2, 1, 1, 2, 2, 2, + 1, 2, 1, 1, 2, 1, 1, 2, + 12, 2, 2, 2, 2, 2, 2, 2, + 6, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, - 2, 2, 2, 2, 2, 4, 2, 1, - 2, 2, 2, 3, 3, 2, 2, 2, - 2, 1, 1, 2, 2, 2, 1, 2, - 1, 1, 2, 1, 1, 2, 12, 2, - 2, 2, 2, 2, 2, 2, 6, 2, - 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, - 3, 3, 2, 3, 6, 9, 6, 6, - 6, 6, 16, 6, 16, 6, 16, 6, - 12, 2, 10, 2, 1, 6, 10, 6, - 1, 6, 10, 6, 1, 6, 10, 6, - 1, 1, 1, 2, 6, 6, 2, 1, - 3, 6, 9, 2, 1, 0, 6, 9, - 2, 1, 2, 10, 10, 1, 1, 3, - 0, 6, 8, 6, 8, 7, 8, 6, - 6, 6, 8, 6, 8, 7, 8, 6, - 7, 0, 12, 10, 12, 10, 12, 10, - 12, 10, 1, 11, 11, 1, 11, 11, - 10, 1, 11, 11, 10, 1, 11, 11, - 10, 1, 6, 1, 6, 6, 1, 1, - 1, 6, 1, 6, 6, 1, 1, 0, - 6, 6, 6, 6, 6, 9, 2, 1, - 1, 1, 0, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 9, 2, 1, 1, - 1, 1, 1, 0, 6, 6, 6, 6, - 6, 7, 2, 1, 1, 1, 13, 2, - 1, 1, 1, 0, 10, 1, 1, 1, - 1, 0, 6, 6, 6, 6, 6, 6, - 0, 10, 1, 1, 1, 1, 0, 6, - 6, 6, 6, 0, 10, 1, 1, 1, - 0, 6, 10, 6, 6, 6, 7, 34, - 7, 2, 1, 14, 1, 35, 3, 1, - 1, 6, 6, 6, 7, 35, 1, 1, - 6, 6, 6, 7, 35, 1, 1, 6, - 6, 6, 9, 34, 1, 1, 1, 0, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 9, 6, 7, - 2, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 2, 0, 6, 6, 6, - 6, 6, 7, 2, 1, 1, 1, 1, - 2, 0, 6, 6, 6, 6, 6, 7, - 6, 6, 0, 1, 0, 1, 1, 0, - 1, 2, 2, 1, 1, 1, 1, 1, - 1, 0, 6, 1, 1, 1, 0, 6, - 6, 6, 6, 6, 7, 2, 0, 2, + 2, 1, 3, 3, 2, 3, 6, 9, + 6, 6, 6, 6, 16, 6, 16, 6, + 16, 6, 12, 2, 10, 2, 1, 6, + 10, 6, 1, 6, 10, 6, 1, 6, + 10, 6, 1, 1, 1, 2, 6, 6, + 2, 1, 3, 6, 9, 2, 1, 0, + 6, 9, 2, 1, 2, 10, 10, 1, + 1, 3, 0, 6, 8, 6, 8, 7, + 8, 6, 6, 6, 8, 6, 8, 7, + 8, 6, 7, 0, 12, 10, 12, 10, + 12, 10, 12, 10, 1, 11, 11, 1, + 11, 11, 10, 1, 11, 11, 10, 1, + 11, 11, 10, 1, 6, 1, 6, 6, + 1, 1, 1, 6, 1, 6, 6, 1, + 1, 0, 6, 6, 6, 6, 6, 9, + 2, 1, 1, 1, 0, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 9, 2, + 1, 1, 1, 1, 1, 0, 6, 6, + 6, 6, 6, 7, 2, 1, 1, 1, + 13, 2, 1, 1, 1, 0, 10, 1, 1, 1, 1, 0, 6, 6, 6, 6, 6, 6, 0, 10, 1, 1, 1, 1, - 0, 6, 6, 2, 2, 1, 0, 6, - 6, 6, 6, 6, 6, 0, 10, 1, - 1, 1, 1, 0, 6, 7, 3, 1, - 0, 6, 6, 0, 0, 0, 1, 0, - 0, 0, 0, 3, 1, 0, 0, 1, - 0, 0, 3, 0, 0, 1, 0, 0, - 3, 0, 6, 6, 6, 6, 2, 1, - 1, 0, 6, 6, 6, 6, 2, 1, - 1, 0, 6, 9, 2, 2, 1, 0, - 6, 6, 6, 6, 6, 9, 2, 1, - 1, 1, 12, 17, 48, 48, 12, 48, - 12, 17, 53, 53, 0, 0, 0, 0, - 4, 0, 0, 0, 10, 0, 11, 1, - 0, 0, 46, 1, 0, 10, 1, 6, - 0, 10, 1, 1, 0, 0, 19, 1, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 6, 6, 6, 0, 10, 1, + 1, 1, 0, 6, 10, 6, 6, 6, + 7, 34, 7, 2, 1, 14, 1, 35, + 3, 1, 1, 6, 6, 6, 7, 35, + 1, 1, 6, 6, 6, 7, 35, 1, + 1, 6, 6, 6, 9, 34, 1, 1, + 1, 0, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 9, + 6, 7, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 2, 2, 0, 6, + 6, 6, 6, 6, 7, 2, 1, 1, + 1, 1, 2, 0, 6, 6, 6, 6, + 6, 7, 6, 6, 0, 1, 0, 1, + 1, 0, 1, 2, 2, 1, 1, 1, + 1, 1, 1, 0, 6, 1, 1, 1, + 0, 6, 6, 6, 6, 6, 7, 2, + 0, 2, 1, 1, 1, 0, 6, 6, + 6, 6, 6, 6, 0, 10, 1, 1, + 1, 1, 0, 6, 6, 2, 2, 1, + 0, 6, 6, 6, 6, 6, 6, 0, + 10, 1, 1, 1, 1, 0, 6, 7, + 3, 1, 0, 6, 6, 0, 0, 0, + 1, 0, 0, 0, 0, 3, 1, 0, + 0, 1, 0, 0, 3, 0, 0, 1, + 0, 0, 3, 0, 6, 6, 6, 6, + 2, 1, 1, 0, 6, 6, 6, 6, + 2, 1, 1, 0, 6, 9, 2, 2, + 1, 0, 6, 6, 6, 6, 6, 9, + 2, 1, 1, 1, 12, 17, 48, 48, + 12, 48, 12, 17, 53, 53, 0, 0, + 0, 0, 4, 0, 0, 0, 10, 0, + 11, 1, 0, 0, 46, 1, 0, 10, + 1, 6, 0, 10, 1, 1, 0, 0, + 19, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 1, 0, 0, + 10, 1, 10, 1, 10, 1, 10, 1, + 0, 0, 0, 0, 13, 1, 0, 10, + 1, 0, 10, 1, 0, 14, 1, 7, + 1, 35, 3, 0, 0, 0, 0, 0, 0, 0, 10, 1, 0, 0, 10, 1, - 10, 1, 10, 1, 10, 1, 0, 0, - 0, 0, 13, 1, 0, 10, 1, 0, - 10, 1, 0, 14, 1, 7, 1, 35, - 3, 0, 0, 0, 0, 0, 0, 0, - 10, 1, 0, 0, 10, 1, 0, 0, - 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0 }; static const char _zone_scanner_range_lengths[] = { @@ -3473,59 +3499,59 @@ static const char _zone_scanner_range_lengths[] = { 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, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, - 0, 0, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 0, 3, 1, - 2, 3, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 2, - 0, 1, 1, 2, 0, 4, 0, 0, + 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, - 1, 1, 1, 2, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 3, - 3, 2, 2, 2, 2, 1, 4, 1, - 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 0, 0, + 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 4, 0, 3, 1, 2, 3, + 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 2, 3, 0, - 0, 3, 5, 5, 1, 1, 1, 5, - 2, 2, 2, 4, 3, 1, 1, 4, - 1, 1, 2, 3, 1, 1, 1, 0, - 1, 1, 0, 0, 1, 1, 1, 1, - 0, 3, 3, 3, 0, 0, 1, 1, - 1, 3, 0, 1, 0, 3, 0, 3, - 3, 3, 0, 0, 1, 1, 1, 3, - 0, 2, 3, 1, 1, 3, 3, 3, - 3, 3, 1, 0, 0, 2, 0, 0, - 2, 0, 0, 0, 2, 0, 2, 0, - 0, 2, 0, 0, 0, 0, 0, 2, - 2, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 2, 0, 0, 0, 2, 0, 0, 0, - 2, 2, 0, 0, 2, 0, 0, 0, - 0, 2, 0, 2, 0, 0, 0, 0, - 2, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 2, - 2, 0, 0, 2, 0, 2, 0, 2, - 2, 0, 0, 0, 0, 2, 2, 0, - 0, 0, 0, 2, 0, 2, 2, 0, - 2, 2, 0, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 2, 0, 1, + 1, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 2, 0, 2, 0, 0, - 0, 2, 2, 0, 0, 0, 0, 0, - 2, 0, 2, 0, 2, 0, 2, 0, - 0, 0, 2, 0, 0, 2, 0, 0, - 0, 2, 0, 2, 0, 0, 1, 3, - 0, 0, 2, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 3, 1, 1, + 1, 2, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 3, 3, 2, + 2, 2, 2, 1, 4, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 0, 2, 3, 0, 0, 3, + 5, 5, 1, 1, 1, 5, 2, 2, + 2, 4, 3, 1, 1, 4, 1, 1, + 2, 3, 1, 1, 1, 0, 1, 1, + 0, 0, 1, 1, 1, 1, 0, 3, + 3, 3, 0, 0, 1, 1, 1, 3, + 0, 1, 0, 3, 0, 3, 3, 3, + 0, 0, 1, 1, 1, 3, 0, 2, + 3, 1, 1, 3, 3, 3, 3, 3, + 1, 0, 0, 2, 0, 0, 2, 0, + 0, 0, 2, 0, 2, 0, 0, 2, + 0, 0, 0, 0, 0, 2, 2, 0, + 0, 2, 0, 0, 0, 2, 0, 0, + 0, 2, 0, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, 2, 2, + 0, 0, 2, 0, 0, 0, 0, 2, + 0, 2, 0, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 2, 2, 0, + 0, 2, 0, 2, 0, 2, 2, 0, + 0, 0, 0, 2, 2, 0, 0, 0, + 0, 2, 0, 2, 2, 0, 2, 2, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, + 0, 2, 0, 0, 0, 0, 0, 0, + 2, 2, 0, 0, 0, 2, 2, 0, + 0, 0, 0, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 0, 0, 2, 0, + 0, 2, 0, 0, 0, 2, 0, 2, + 0, 0, 1, 3, 0, 0, 2, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, + 0, 1, 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, @@ -3541,115 +3567,117 @@ static const char _zone_scanner_range_lengths[] = { 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 3, - 3, 3, 1, 1, 1, 0, 1, 1, - 3, 3, 3, 1, 1, 1, 1, 0, - 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 2, 0, 0, 1, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 2, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 2, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 1, + 1, 3, 3, 3, 1, 1, 1, 0, + 1, 1, 3, 3, 3, 1, 1, 1, + 1, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 3, 0, 0, 0, 0, 0, 3, - 3, 3, 3, 3, 3, 0, 3, 3, - 3, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 1, 1, 1, - 1, 0, 0, 0, 0, 0, 3, 3, - 3, 3, 3, 3, 0, 0, 1, 1, - 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 2, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 1, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 2, + 0, 1, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 3, 0, 0, 0, 0, + 0, 3, 3, 3, 3, 3, 3, 0, + 3, 3, 3, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 0, + 3, 3, 3, 3, 3, 3, 0, 0, + 1, 1, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 2, 0, 2, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 3, 0, 1, 3, - 0, 2, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 1, 1, 1, 1, 3, 0, + 1, 3, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 2, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 2, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 2, 0, 0, 2, 1, 3, + 2, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, - 0, 0, 0, 2, 0, 0, 2, 1, - 3, 0, 0, 0, 0, 0, 2, 1, - 3, 3, 2, 3, 0, 3, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 3, 3, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 0, 3, 2, 1, - 3, 0, 3, 2, 1, 1, 1, 3, - 2, 1, 2, 0, 3, 1, 3, 5, - 1, 1, 1, 1, 1, 1, 0, 0, - 1, 1, 1, 1, 1, 1, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 0, 1, 1, 1, - 0, 1, 0, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 2, 1, - 1, 1, 1, 1, 1, 1, 3, 0, - 3, 0, 3, 0, 3, 2, 1, 1, - 1, 1, 1, 3, 0, 1, 1, 3, - 0, 3, 0, 1, 1, 1, 0, 0, - 0, 1, 1, 1, 1, 1, 0, 3, - 3, 1, 1, 3, 0, 1, 1, 3, - 3, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 1, 1, 1, - 1, 1, 0, 0, 1, 1, 0, 0, - 3, 0, 1, 0, 1, 3, 3, 1, - 1, 0, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 3, 3, 1, 1, 0, - 1, 1, 3, 0, 1, 1, 1, 3, - 0, 3, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 0, 3, + 1, 3, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 2, 0, + 0, 2, 0, 0, 2, 0, 0, 0, + 2, 0, 0, 2, 0, 0, 2, 0, + 0, 2, 0, 0, 0, 2, 0, 0, + 2, 1, 3, 0, 0, 0, 0, 0, + 2, 1, 3, 3, 2, 3, 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 2, 1, 1, 1, 1, - 3, 0, 3, 0, 1, 1, 1, 3, - 0, 1, 1, 1, 1, 1, 1, 3, - 0, 3, 3, 3, 3, 3, 3, 3, - 3, 5, 2, 0, 0, 0, 0, 0, - 1, 3, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 2, 3, 5, + 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 0, 3, + 2, 1, 3, 0, 3, 2, 1, 1, + 1, 3, 2, 1, 2, 0, 3, 1, + 3, 5, 1, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 1, 0, 1, + 1, 1, 0, 1, 0, 1, 1, 1, + 1, 1, 1, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 1, + 3, 0, 3, 0, 3, 0, 3, 2, + 1, 1, 1, 1, 1, 3, 0, 1, + 1, 3, 0, 3, 0, 1, 1, 1, + 0, 0, 0, 1, 1, 1, 1, 1, + 0, 3, 3, 1, 1, 3, 0, 1, 1, 3, 3, 3, 1, 1, 1, 1, - 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, - 1, 1, 1, 1, 1, 1, 3, 1, - 1, 1, 3, 3, 3, 3, 0, 3, - 3, 3, 3, 2, 1, 3, 3, 0, - 3, 3, 2, 3, 3, 0, 3, 3, - 2, 1, 1, 1, 1, 3, 2, 1, - 1, 1, 1, 3, 0, 3, 2, 1, - 1, 1, 1, 3, 2, 2, 1, 3, - 0, 3, 0, 1, 1, 3, 2, 1, - 1, 1, 3, 8, 3, 4, 3, 4, - 3, 8, 9, 9, 0, 0, 0, 0, - 4, 0, 0, 0, 3, 0, 3, 1, - 0, 0, 0, 1, 0, 3, 1, 3, - 0, 3, 1, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 1, 0, 0, 0, 1, - 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 0, 1, 0, 3, 1, 0, - 3, 1, 0, 0, 1, 3, 1, 3, - 3, 0, 0, 0, 0, 0, 0, 0, - 3, 1, 0, 0, 3, 1, 0, 0, - 0, 0, 0, 0, 0, 0 + 1, 1, 1, 1, 0, 0, 1, 1, + 0, 0, 3, 0, 1, 0, 1, 3, + 3, 1, 1, 0, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 3, 3, 1, + 1, 0, 1, 1, 3, 0, 1, 1, + 1, 3, 0, 3, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, + 0, 3, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 2, 2, 1, 1, + 1, 1, 3, 0, 3, 0, 1, 1, + 1, 3, 0, 1, 1, 1, 1, 1, + 1, 3, 0, 3, 3, 3, 3, 3, + 3, 3, 3, 5, 2, 0, 0, 0, + 0, 0, 1, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 2, + 3, 5, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 3, 3, 1, 1, + 1, 1, 1, 1, 1, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 3, 3, + 3, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 1, 1, 3, 3, 3, 3, + 0, 3, 3, 3, 3, 2, 1, 3, + 3, 0, 3, 3, 2, 3, 3, 0, + 3, 3, 2, 1, 1, 1, 1, 3, + 2, 1, 1, 1, 1, 3, 0, 3, + 2, 1, 1, 1, 1, 3, 2, 2, + 1, 3, 0, 3, 0, 1, 1, 3, + 2, 1, 1, 1, 3, 8, 3, 4, + 3, 4, 3, 8, 9, 9, 0, 0, + 0, 0, 4, 0, 0, 0, 3, 0, + 3, 1, 0, 0, 0, 1, 0, 3, + 1, 3, 0, 3, 1, 1, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 1, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 1, 0, 3, + 1, 0, 3, 1, 0, 0, 1, 3, + 1, 3, 3, 0, 0, 0, 0, 0, + 0, 0, 3, 1, 0, 0, 3, 1, + 0, 0, 0, 0, 0, 0, 0, 0 }; static const short _zone_scanner_index_offsets[] = { @@ -3669,187 +3697,189 @@ static const short _zone_scanner_index_offsets[] = { 872, 875, 878, 889, 892, 903, 916, 919, 931, 944, 947, 950, 953, 956, 967, 970, 973, 976, 979, 982, 985, 988, 991, 994, - 1005, 1008, 1011, 1022, 1029, 1040, 1043, 1046, - 1049, 1060, 1071, 1084, 1087, 1090, 1093, 1096, - 1107, 1110, 1121, 1124, 1135, 1138, 1149, 1152, - 1155, 1158, 1169, 1172, 1175, 1186, 1193, 1196, - 1199, 1210, 1213, 1224, 1227, 1230, 1232, 1244, - 1247, 1250, 1261, 1264, 1267, 1270, 1273, 1276, - 1287, 1290, 1293, 1296, 1299, 1302, 1313, 1316, - 1362, 1367, 1374, 1418, 1436, 1444, 1456, 1464, - 1467, 1469, 1476, 1479, 1482, 1485, 1488, 1491, - 1494, 1499, 1506, 1550, 1553, 1571, 1615, 1618, - 1626, 1638, 1646, 1649, 1666, 1719, 1738, 1755, - 1801, 1806, 1818, 1830, 1885, 1904, 1919, 1930, - 1943, 1956, 1969, 1984, 1997, 2012, 2023, 2034, - 2049, 2070, 2085, 2096, 2107, 2118, 2123, 2138, - 2141, 2144, 2147, 2150, 2153, 2158, 2161, 2164, - 2169, 2178, 2198, 2244, 2249, 2268, 2323, 2342, - 2357, 2368, 2381, 2394, 2407, 2422, 2435, 2450, - 2461, 2472, 2487, 2508, 2523, 2534, 2545, 2556, - 2569, 2615, 2629, 2643, 2658, 2673, 2676, 2679, - 2690, 2693, 2696, 2699, 2710, 2713, 2724, 2729, - 2741, 2753, 2768, 2783, 2798, 2813, 2816, 2871, - 2885, 2899, 2916, 2929, 2938, 2949, 2960, 2971, - 2984, 2995, 3008, 3017, 3026, 3039, 3058, 3071, - 3080, 3089, 3098, 3103, 3108, 3119, 3124, 3131, - 3133, 3135, 3144, 3156, 3168, 3170, 3172, 3174, - 3186, 3191, 3196, 3201, 3210, 3214, 3216, 3218, - 3227, 3235, 3243, 3248, 3252, 3254, 3256, 3264, - 3271, 3279, 3299, 3308, 3310, 3320, 3332, 3342, - 3345, 3352, 3366, 3374, 3390, 3399, 3401, 3403, - 3405, 3407, 3415, 3424, 3427, 3434, 3444, 3453, - 3469, 3477, 3493, 3502, 3504, 3506, 3508, 3510, - 3518, 3527, 3532, 3546, 3549, 3552, 3557, 3562, - 3568, 3574, 3589, 3592, 3594, 3631, 3642, 3645, - 3648, 3653, 3656, 3659, 3662, 3667, 3670, 3675, - 3686, 3689, 3694, 3699, 3702, 3705, 3708, 3711, - 3716, 3721, 3724, 3727, 3732, 3735, 3738, 3741, - 3746, 3749, 3752, 3755, 3760, 3767, 3770, 3773, - 3776, 3781, 3786, 3789, 3792, 3797, 3800, 3803, - 3806, 3811, 3818, 3821, 3824, 3829, 3832, 3835, - 3838, 3840, 3845, 3847, 3852, 3857, 3860, 3863, - 3866, 3871, 3874, 3877, 3880, 3885, 3888, 3891, - 3894, 3897, 3900, 3903, 3906, 3911, 3916, 3919, - 3924, 3929, 3936, 3938, 3943, 3945, 3950, 3953, - 3958, 3963, 3968, 3971, 3974, 3977, 3982, 3987, - 3994, 3997, 4000, 4003, 4008, 4011, 4016, 4023, - 4026, 4032, 4039, 4042, 4045, 4048, 4051, 4056, - 4059, 4062, 4065, 4068, 4071, 4074, 4077, 4080, - 4083, 4088, 4091, 4094, 4099, 4106, 4111, 4114, - 4117, 4120, 4125, 4130, 4143, 4146, 4149, 4152, - 4155, 4160, 4163, 4168, 4171, 4176, 4179, 4184, - 4187, 4190, 4193, 4198, 4201, 4204, 4209, 4216, - 4219, 4222, 4227, 4230, 4235, 4238, 4241, 4243, - 4249, 4252, 4255, 4260, 4263, 4266, 4269, 4272, - 4275, 4280, 4283, 4286, 4289, 4292, 4295, 4300, - 4311, 4358, 4375, 4378, 4381, 4392, 4395, 4406, - 4409, 4420, 4425, 4428, 4431, 4434, 4437, 4448, - 4459, 4462, 4465, 4476, 4479, 4482, 4485, 4496, - 4499, 4502, 4505, 4516, 4523, 4526, 4529, 4532, - 4543, 4548, 4551, 4554, 4565, 4568, 4571, 4574, - 4585, 4598, 4601, 4604, 4615, 4618, 4621, 4624, - 4626, 4637, 4639, 4650, 4655, 4658, 4661, 4664, - 4675, 4678, 4681, 4684, 4695, 4698, 4701, 4704, - 4707, 4710, 4713, 4716, 4727, 4732, 4735, 4746, - 4757, 4764, 4766, 4777, 4779, 4790, 4793, 4804, - 4815, 4820, 4823, 4826, 4829, 4840, 4851, 4858, - 4861, 4864, 4867, 4878, 4881, 4892, 4905, 4908, - 4920, 4933, 4936, 4939, 4942, 4945, 4956, 4959, - 4962, 4965, 4968, 4971, 4974, 4977, 4980, 4983, - 4994, 4997, 5000, 5011, 5018, 5029, 5032, 5035, - 5038, 5049, 5060, 5073, 5076, 5079, 5082, 5085, - 5096, 5099, 5110, 5113, 5124, 5127, 5138, 5141, - 5144, 5147, 5158, 5161, 5164, 5175, 5182, 5185, - 5188, 5199, 5202, 5213, 5216, 5219, 5221, 5233, - 5236, 5239, 5250, 5253, 5256, 5259, 5262, 5265, - 5276, 5279, 5282, 5285, 5288, 5291, 5302, 5305, - 5308, 5311, 5322, 5325, 5336, 5343, 5351, 5359, - 5369, 5373, 5387, 5390, 5393, 5396, 5403, 5412, - 5422, 5432, 5436, 5450, 5453, 5456, 5464, 5467, - 5476, 5478, 5480, 5482, 5489, 5491, 5493, 5495, - 5497, 5499, 5501, 5508, 5510, 5512, 5519, 5521, - 5523, 5526, 5528, 5530, 5532, 5534, 5541, 5543, - 5545, 5547, 5549, 5556, 5558, 5560, 5562, 5570, - 5572, 5574, 5576, 5578, 5580, 5582, 5584, 5586, - 5588, 5590, 5592, 5594, 5596, 5598, 5605, 5607, - 5609, 5611, 5613, 5620, 5622, 5624, 5626, 5633, - 5644, 5664, 5666, 5668, 5670, 5672, 5678, 5689, - 5692, 5694, 5696, 5698, 5700, 5702, 5704, 5706, - 5712, 5723, 5737, 5739, 5750, 5752, 5754, 5756, - 5762, 5767, 5772, 5778, 5784, 5790, 5792, 5797, - 5803, 5809, 5824, 5826, 5828, 5830, 5833, 5835, - 5837, 5839, 5841, 5843, 5847, 5850, 5855, 5858, - 5872, 5875, 5877, 5879, 5881, 5883, 5885, 5891, - 5896, 5903, 5908, 5924, 5929, 5931, 5933, 5935, - 5948, 5953, 5955, 5957, 5959, 5961, 5963, 5965, - 5967, 5969, 5971, 5975, 5978, 5981, 5984, 5996, - 5999, 6001, 6003, 6005, 6007, 6009, 6011, 6013, - 6015, 6017, 6019, 6021, 6023, 6025, 6027, 6038, - 6040, 6042, 6044, 6046, 6057, 6059, 6061, 6063, - 6065, 6068, 6070, 6073, 6085, 6099, 6101, 6113, - 6119, 6124, 6129, 6132, 6138, 6141, 6144, 6147, - 6150, 6152, 6154, 6157, 6160, 6163, 6165, 6170, - 6175, 6180, 6182, 6185, 6188, 6191, 6194, 6199, - 6202, 6205, 6208, 6211, 6213, 6215, 6218, 6221, - 6224, 6226, 6228, 6230, 6235, 6237, 6239, 6242, - 6245, 6248, 6250, 6252, 6254, 6259, 6262, 6264, - 6266, 6268, 6270, 6275, 6277, 6279, 6284, 6287, - 6290, 6293, 6296, 6299, 6302, 6305, 6310, 6313, - 6316, 6319, 6322, 6325, 6328, 6333, 6336, 6339, - 6344, 6347, 6350, 6355, 6358, 6361, 6366, 6369, - 6371, 6376, 6379, 6382, 6386, 6392, 6395, 6398, - 6401, 6404, 6406, 6408, 6411, 6414, 6417, 6419, - 6424, 6426, 6428, 6433, 6435, 6437, 6442, 6456, - 6462, 6465, 6468, 6471, 6474, 6477, 6482, 6489, - 6492, 6495, 6498, 6501, 6504, 6509, 6514, 6517, - 6522, 6525, 6528, 6533, 6536, 6539, 6542, 6547, - 6550, 6553, 6558, 6563, 6566, 6571, 6574, 6577, - 6582, 6585, 6588, 6591, 6596, 6599, 6602, 6607, - 6611, 6617, 6620, 6623, 6626, 6629, 6632, 6637, - 6640, 6647, 6654, 6659, 6666, 6673, 6686, 6693, - 6701, 6709, 6717, 6735, 6743, 6761, 6769, 6787, - 6795, 6811, 6817, 6829, 6835, 6838, 6846, 6858, - 6866, 6869, 6877, 6889, 6897, 6900, 6908, 6920, - 6928, 6931, 6934, 6937, 6942, 6949, 6959, 6964, - 6967, 6974, 6981, 6994, 6999, 7002, 7004, 7012, - 7025, 7030, 7033, 7038, 7049, 7063, 7066, 7071, - 7080, 7082, 7090, 7100, 7108, 7118, 7127, 7136, - 7143, 7151, 7159, 7169, 7177, 7187, 7196, 7205, - 7212, 7221, 7223, 7237, 7249, 7263, 7275, 7289, - 7301, 7315, 7326, 7329, 7342, 7355, 7358, 7371, - 7384, 7395, 7398, 7411, 7424, 7435, 7438, 7451, - 7464, 7475, 7478, 7485, 7488, 7496, 7504, 7507, - 7510, 7513, 7520, 7523, 7531, 7539, 7542, 7545, - 7547, 7555, 7563, 7571, 7579, 7587, 7600, 7605, - 7608, 7611, 7614, 7616, 7624, 7632, 7640, 7650, - 7657, 7667, 7674, 7684, 7691, 7704, 7709, 7712, - 7715, 7718, 7721, 7724, 7728, 7735, 7743, 7751, - 7761, 7768, 7779, 7782, 7785, 7788, 7791, 7805, - 7808, 7810, 7813, 7816, 7818, 7830, 7833, 7835, - 7840, 7845, 7847, 7855, 7865, 7872, 7880, 7888, - 7898, 7902, 7916, 7919, 7922, 7925, 7928, 7930, - 7938, 7946, 7954, 7964, 7968, 7982, 7985, 7988, - 7991, 7993, 8001, 8012, 8019, 8027, 8035, 8043, - 8078, 8089, 8092, 8095, 8110, 8113, 8152, 8159, - 8162, 8165, 8172, 8180, 8188, 8197, 8234, 8237, - 8240, 8247, 8255, 8263, 8274, 8313, 8316, 8319, - 8326, 8334, 8342, 8355, 8390, 8393, 8396, 8399, - 8403, 8410, 8420, 8427, 8435, 8443, 8451, 8459, - 8467, 8475, 8483, 8491, 8499, 8507, 8520, 8527, - 8538, 8541, 8544, 8547, 8550, 8553, 8556, 8559, - 8562, 8565, 8572, 8577, 8582, 8584, 8592, 8600, - 8608, 8618, 8625, 8636, 8639, 8642, 8645, 8648, - 8653, 8656, 8658, 8666, 8674, 8682, 8690, 8698, - 8709, 8716, 8726, 8730, 8735, 8739, 8744, 8749, - 8753, 8758, 8766, 8771, 8773, 8775, 8777, 8779, - 8781, 8784, 8788, 8798, 8801, 8804, 8807, 8809, - 8817, 8825, 8833, 8841, 8849, 8860, 8865, 8869, - 8877, 8880, 8883, 8886, 8888, 8896, 8904, 8912, - 8920, 8928, 8938, 8942, 8956, 8959, 8962, 8965, - 8968, 8970, 8978, 8986, 8992, 8997, 9000, 9002, - 9010, 9018, 9026, 9034, 9042, 9052, 9056, 9070, - 9073, 9076, 9079, 9082, 9084, 9092, 9101, 9108, - 9111, 9113, 9121, 9131, 9135, 9139, 9143, 9145, - 9149, 9153, 9157, 9161, 9167, 9170, 9174, 9178, - 9180, 9184, 9188, 9194, 9198, 9202, 9204, 9208, - 9212, 9218, 9220, 9228, 9236, 9244, 9254, 9259, - 9262, 9265, 9267, 9275, 9285, 9292, 9302, 9307, - 9310, 9313, 9315, 9323, 9336, 9341, 9346, 9349, - 9353, 9360, 9370, 9377, 9385, 9393, 9406, 9411, - 9414, 9417, 9420, 9436, 9462, 9514, 9567, 9583, - 9636, 9652, 9678, 9741, 9804, 9805, 9806, 9807, - 9808, 9817, 9818, 9819, 9820, 9834, 9835, 9850, - 9853, 9854, 9855, 9902, 9905, 9906, 9920, 9923, - 9933, 9934, 9948, 9951, 9954, 9955, 9956, 9976, - 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, - 9987, 9988, 9989, 10003, 10006, 10007, 10008, 10019, - 10022, 10034, 10037, 10049, 10052, 10064, 10067, 10068, - 10069, 10070, 10071, 10085, 10088, 10089, 10103, 10106, - 10107, 10121, 10124, 10125, 10140, 10143, 10154, 10157, - 10196, 10203, 10204, 10205, 10206, 10207, 10208, 10209, - 10210, 10224, 10227, 10228, 10229, 10243, 10246, 10247, - 10248, 10249, 10250, 10251, 10252, 10253 + 1005, 1008, 1011, 1022, 1031, 1034, 1037, 1040, + 1043, 1046, 1057, 1068, 1071, 1074, 1077, 1088, + 1099, 1112, 1115, 1118, 1121, 1124, 1135, 1138, + 1149, 1152, 1163, 1166, 1177, 1180, 1183, 1186, + 1197, 1200, 1203, 1214, 1221, 1224, 1227, 1238, + 1241, 1252, 1255, 1258, 1260, 1272, 1275, 1278, + 1289, 1292, 1295, 1298, 1301, 1304, 1315, 1318, + 1321, 1324, 1327, 1330, 1341, 1344, 1390, 1395, + 1402, 1446, 1464, 1472, 1484, 1492, 1495, 1497, + 1504, 1507, 1510, 1513, 1516, 1519, 1522, 1527, + 1534, 1578, 1581, 1599, 1643, 1646, 1654, 1666, + 1674, 1677, 1694, 1747, 1766, 1783, 1829, 1834, + 1846, 1858, 1913, 1932, 1947, 1958, 1971, 1984, + 1997, 2012, 2025, 2040, 2051, 2062, 2079, 2100, + 2115, 2126, 2137, 2148, 2153, 2168, 2171, 2174, + 2177, 2180, 2183, 2188, 2191, 2194, 2199, 2208, + 2228, 2274, 2279, 2298, 2353, 2372, 2387, 2398, + 2411, 2424, 2437, 2452, 2465, 2480, 2491, 2502, + 2519, 2540, 2555, 2566, 2577, 2588, 2601, 2647, + 2661, 2675, 2690, 2705, 2708, 2711, 2722, 2725, + 2728, 2731, 2742, 2745, 2756, 2761, 2773, 2785, + 2800, 2815, 2830, 2845, 2848, 2903, 2917, 2931, + 2948, 2961, 2970, 2981, 2992, 3003, 3016, 3027, + 3040, 3049, 3058, 3073, 3092, 3105, 3114, 3123, + 3132, 3137, 3142, 3153, 3158, 3165, 3167, 3169, + 3178, 3190, 3202, 3204, 3206, 3208, 3220, 3225, + 3230, 3235, 3244, 3248, 3250, 3252, 3261, 3269, + 3277, 3282, 3286, 3288, 3290, 3298, 3305, 3313, + 3333, 3342, 3344, 3354, 3366, 3376, 3379, 3386, + 3400, 3408, 3424, 3433, 3435, 3437, 3439, 3441, + 3449, 3458, 3461, 3468, 3478, 3487, 3503, 3511, + 3527, 3536, 3538, 3540, 3542, 3544, 3552, 3561, + 3566, 3580, 3583, 3586, 3591, 3596, 3602, 3608, + 3623, 3626, 3628, 3665, 3676, 3679, 3682, 3687, + 3690, 3693, 3696, 3701, 3704, 3709, 3720, 3723, + 3728, 3733, 3736, 3739, 3742, 3745, 3750, 3755, + 3758, 3761, 3766, 3769, 3772, 3775, 3780, 3783, + 3786, 3789, 3794, 3801, 3804, 3807, 3810, 3815, + 3820, 3823, 3826, 3831, 3834, 3837, 3840, 3845, + 3852, 3855, 3858, 3863, 3866, 3869, 3872, 3874, + 3879, 3881, 3886, 3891, 3894, 3897, 3900, 3905, + 3908, 3911, 3914, 3919, 3922, 3925, 3928, 3931, + 3934, 3937, 3940, 3945, 3950, 3953, 3958, 3963, + 3970, 3972, 3977, 3979, 3984, 3987, 3992, 3997, + 4002, 4005, 4008, 4011, 4016, 4021, 4028, 4031, + 4034, 4037, 4042, 4045, 4050, 4057, 4060, 4066, + 4073, 4076, 4079, 4082, 4085, 4090, 4093, 4096, + 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4122, + 4125, 4128, 4133, 4142, 4145, 4148, 4151, 4154, + 4157, 4162, 4167, 4170, 4173, 4176, 4181, 4186, + 4199, 4202, 4205, 4208, 4211, 4216, 4219, 4224, + 4227, 4232, 4235, 4240, 4243, 4246, 4249, 4254, + 4257, 4260, 4265, 4272, 4275, 4278, 4283, 4286, + 4291, 4294, 4297, 4299, 4305, 4308, 4311, 4316, + 4319, 4322, 4325, 4328, 4331, 4336, 4339, 4342, + 4345, 4348, 4351, 4356, 4367, 4414, 4431, 4434, + 4437, 4448, 4451, 4462, 4465, 4476, 4481, 4484, + 4487, 4490, 4493, 4504, 4515, 4518, 4521, 4532, + 4535, 4538, 4541, 4552, 4555, 4558, 4561, 4572, + 4579, 4582, 4585, 4588, 4599, 4604, 4607, 4610, + 4621, 4624, 4627, 4630, 4641, 4654, 4657, 4660, + 4671, 4674, 4677, 4680, 4682, 4693, 4695, 4706, + 4711, 4714, 4717, 4720, 4731, 4734, 4737, 4740, + 4751, 4754, 4757, 4760, 4763, 4766, 4769, 4772, + 4783, 4788, 4791, 4802, 4813, 4820, 4822, 4833, + 4835, 4846, 4849, 4860, 4871, 4876, 4879, 4882, + 4885, 4896, 4907, 4914, 4917, 4920, 4923, 4934, + 4937, 4948, 4961, 4964, 4976, 4989, 4992, 4995, + 4998, 5001, 5012, 5015, 5018, 5021, 5024, 5027, + 5030, 5033, 5036, 5039, 5050, 5053, 5056, 5067, + 5076, 5079, 5082, 5085, 5088, 5091, 5102, 5113, + 5116, 5119, 5122, 5133, 5144, 5157, 5160, 5163, + 5166, 5169, 5180, 5183, 5194, 5197, 5208, 5211, + 5222, 5225, 5228, 5231, 5242, 5245, 5248, 5259, + 5266, 5269, 5272, 5283, 5286, 5297, 5300, 5303, + 5305, 5317, 5320, 5323, 5334, 5337, 5340, 5343, + 5346, 5349, 5360, 5363, 5366, 5369, 5372, 5375, + 5386, 5389, 5392, 5395, 5406, 5409, 5420, 5427, + 5435, 5443, 5453, 5457, 5471, 5474, 5477, 5480, + 5487, 5496, 5506, 5516, 5520, 5534, 5537, 5540, + 5548, 5551, 5560, 5562, 5564, 5566, 5573, 5575, + 5577, 5579, 5581, 5583, 5585, 5592, 5594, 5596, + 5603, 5605, 5607, 5610, 5612, 5614, 5616, 5618, + 5625, 5627, 5629, 5631, 5633, 5640, 5642, 5644, + 5646, 5654, 5656, 5658, 5660, 5662, 5664, 5666, + 5668, 5670, 5672, 5674, 5676, 5678, 5680, 5682, + 5689, 5691, 5693, 5695, 5697, 5704, 5706, 5708, + 5710, 5717, 5728, 5748, 5750, 5752, 5754, 5756, + 5762, 5773, 5776, 5778, 5780, 5782, 5784, 5786, + 5788, 5790, 5796, 5807, 5821, 5823, 5834, 5836, + 5838, 5840, 5846, 5851, 5856, 5862, 5868, 5874, + 5876, 5881, 5887, 5893, 5908, 5910, 5912, 5914, + 5917, 5919, 5921, 5923, 5925, 5927, 5931, 5934, + 5939, 5942, 5956, 5959, 5961, 5963, 5965, 5967, + 5969, 5975, 5980, 5987, 5992, 6008, 6013, 6015, + 6017, 6019, 6032, 6037, 6039, 6041, 6043, 6045, + 6047, 6049, 6051, 6053, 6055, 6059, 6062, 6065, + 6068, 6080, 6083, 6085, 6087, 6089, 6091, 6093, + 6095, 6097, 6099, 6101, 6103, 6105, 6107, 6109, + 6111, 6122, 6124, 6126, 6128, 6130, 6141, 6143, + 6145, 6147, 6149, 6152, 6154, 6157, 6169, 6183, + 6185, 6197, 6203, 6208, 6213, 6216, 6222, 6225, + 6228, 6231, 6234, 6236, 6238, 6241, 6244, 6247, + 6249, 6254, 6259, 6264, 6266, 6269, 6272, 6275, + 6278, 6283, 6286, 6289, 6292, 6295, 6297, 6299, + 6302, 6305, 6308, 6310, 6312, 6314, 6319, 6321, + 6323, 6326, 6329, 6332, 6334, 6336, 6338, 6343, + 6346, 6348, 6350, 6352, 6354, 6359, 6361, 6363, + 6368, 6371, 6374, 6377, 6380, 6383, 6386, 6389, + 6394, 6397, 6400, 6403, 6406, 6409, 6412, 6417, + 6420, 6423, 6428, 6431, 6434, 6439, 6442, 6445, + 6450, 6453, 6455, 6460, 6463, 6466, 6470, 6476, + 6479, 6482, 6485, 6488, 6490, 6492, 6495, 6498, + 6501, 6503, 6508, 6510, 6512, 6517, 6519, 6521, + 6526, 6540, 6546, 6549, 6552, 6555, 6558, 6561, + 6566, 6573, 6576, 6579, 6582, 6585, 6588, 6593, + 6598, 6601, 6606, 6609, 6612, 6617, 6620, 6623, + 6626, 6631, 6634, 6637, 6642, 6647, 6650, 6655, + 6658, 6661, 6666, 6669, 6672, 6675, 6680, 6683, + 6686, 6691, 6695, 6701, 6704, 6707, 6710, 6713, + 6716, 6721, 6724, 6731, 6738, 6743, 6750, 6757, + 6770, 6777, 6785, 6793, 6801, 6819, 6827, 6845, + 6853, 6871, 6879, 6895, 6901, 6913, 6919, 6922, + 6930, 6942, 6950, 6953, 6961, 6973, 6981, 6984, + 6992, 7004, 7012, 7015, 7018, 7021, 7026, 7033, + 7043, 7048, 7051, 7058, 7065, 7078, 7083, 7086, + 7088, 7096, 7109, 7114, 7117, 7122, 7133, 7147, + 7150, 7155, 7164, 7166, 7174, 7184, 7192, 7202, + 7211, 7220, 7227, 7235, 7243, 7253, 7261, 7271, + 7280, 7289, 7296, 7305, 7307, 7321, 7333, 7347, + 7359, 7373, 7385, 7399, 7410, 7413, 7426, 7439, + 7442, 7455, 7468, 7479, 7482, 7495, 7508, 7519, + 7522, 7535, 7548, 7559, 7562, 7569, 7572, 7580, + 7588, 7591, 7594, 7597, 7604, 7607, 7615, 7623, + 7626, 7629, 7631, 7639, 7647, 7655, 7663, 7671, + 7684, 7689, 7692, 7695, 7698, 7700, 7708, 7716, + 7724, 7734, 7741, 7751, 7758, 7768, 7775, 7788, + 7793, 7796, 7799, 7802, 7805, 7808, 7812, 7819, + 7827, 7835, 7845, 7852, 7863, 7866, 7869, 7872, + 7875, 7889, 7892, 7894, 7897, 7900, 7902, 7914, + 7917, 7919, 7924, 7929, 7931, 7939, 7949, 7956, + 7964, 7972, 7982, 7986, 8000, 8003, 8006, 8009, + 8012, 8014, 8022, 8030, 8038, 8048, 8052, 8066, + 8069, 8072, 8075, 8077, 8085, 8096, 8103, 8111, + 8119, 8127, 8162, 8173, 8176, 8179, 8194, 8197, + 8236, 8243, 8246, 8249, 8256, 8264, 8272, 8281, + 8318, 8321, 8324, 8331, 8339, 8347, 8358, 8397, + 8400, 8403, 8410, 8418, 8426, 8439, 8474, 8477, + 8480, 8483, 8487, 8494, 8504, 8511, 8519, 8527, + 8535, 8543, 8551, 8559, 8567, 8575, 8583, 8591, + 8604, 8611, 8622, 8625, 8628, 8631, 8634, 8637, + 8640, 8643, 8646, 8649, 8656, 8661, 8666, 8668, + 8676, 8684, 8692, 8702, 8709, 8720, 8723, 8726, + 8729, 8732, 8737, 8740, 8742, 8750, 8758, 8766, + 8774, 8782, 8793, 8800, 8810, 8814, 8819, 8823, + 8828, 8833, 8837, 8842, 8850, 8855, 8857, 8859, + 8861, 8863, 8865, 8868, 8872, 8882, 8885, 8888, + 8891, 8893, 8901, 8909, 8917, 8925, 8933, 8944, + 8949, 8953, 8961, 8964, 8967, 8970, 8972, 8980, + 8988, 8996, 9004, 9012, 9022, 9026, 9040, 9043, + 9046, 9049, 9052, 9054, 9062, 9070, 9076, 9081, + 9084, 9086, 9094, 9102, 9110, 9118, 9126, 9136, + 9140, 9154, 9157, 9160, 9163, 9166, 9168, 9176, + 9185, 9192, 9195, 9197, 9205, 9215, 9219, 9223, + 9227, 9229, 9233, 9237, 9241, 9245, 9251, 9254, + 9258, 9262, 9264, 9268, 9272, 9278, 9282, 9286, + 9288, 9292, 9296, 9302, 9304, 9312, 9320, 9328, + 9338, 9343, 9346, 9349, 9351, 9359, 9369, 9376, + 9386, 9391, 9394, 9397, 9399, 9407, 9420, 9425, + 9430, 9433, 9437, 9444, 9454, 9461, 9469, 9477, + 9490, 9495, 9498, 9501, 9504, 9520, 9546, 9598, + 9651, 9667, 9720, 9736, 9762, 9825, 9888, 9889, + 9890, 9891, 9892, 9901, 9902, 9903, 9904, 9918, + 9919, 9934, 9937, 9938, 9939, 9986, 9989, 9990, + 10004, 10007, 10017, 10018, 10032, 10035, 10038, 10039, + 10040, 10060, 10063, 10064, 10065, 10066, 10067, 10068, + 10069, 10070, 10071, 10072, 10073, 10087, 10090, 10091, + 10092, 10103, 10106, 10118, 10121, 10133, 10136, 10148, + 10151, 10152, 10153, 10154, 10155, 10169, 10172, 10173, + 10187, 10190, 10191, 10205, 10208, 10209, 10224, 10227, + 10238, 10241, 10280, 10287, 10288, 10289, 10290, 10291, + 10292, 10293, 10294, 10308, 10311, 10312, 10313, 10327, + 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337 }; static const short _zone_scanner_indicies[] = { @@ -3981,1183 +4011,1194 @@ static const short _zone_scanner_indicies[] = { 538, 538, 539, 540, 63, 541, 541, 39, 542, 542, 39, 543, 543, 544, 545, 546, 547, 548, 548, 549, 550, 63, 551, 552, - 553, 551, 552, 553, 39, 554, 554, 555, - 556, 557, 558, 559, 559, 560, 561, 63, - 562, 562, 39, 563, 563, 39, 564, 564, - 39, 565, 565, 566, 567, 568, 569, 570, - 570, 571, 572, 63, 573, 573, 574, 575, - 576, 577, 578, 578, 579, 580, 63, 581, - 582, 583, 584, 585, 586, 581, 582, 583, - 584, 585, 586, 39, 587, 587, 39, 588, - 588, 39, 589, 589, 39, 590, 590, 39, - 591, 591, 592, 593, 594, 595, 596, 596, - 597, 598, 63, 599, 599, 39, 600, 600, - 601, 602, 603, 604, 605, 605, 606, 607, - 63, 608, 608, 39, 609, 609, 610, 611, - 612, 613, 614, 614, 615, 616, 63, 617, - 617, 39, 618, 618, 619, 620, 621, 622, - 623, 623, 624, 625, 63, 626, 626, 39, - 627, 627, 39, 628, 628, 39, 629, 629, - 630, 631, 632, 633, 634, 634, 635, 636, - 63, 637, 637, 39, 638, 638, 39, 639, - 639, 640, 641, 642, 643, 644, 644, 645, - 646, 63, 647, 648, 649, 647, 648, 649, - 39, 650, 650, 39, 651, 651, 39, 652, - 652, 653, 654, 655, 656, 657, 657, 658, - 659, 63, 660, 660, 39, 661, 661, 662, - 663, 664, 665, 666, 666, 667, 668, 63, - 669, 669, 39, 670, 670, 39, 672, 671, - 674, 674, 675, 676, 678, 679, 680, 680, - 681, 682, 677, 673, 683, 683, 39, 684, - 684, 39, 685, 685, 686, 687, 688, 689, - 690, 690, 691, 692, 63, 693, 693, 39, - 694, 694, 39, 695, 695, 39, 696, 696, - 39, 697, 697, 39, 698, 698, 699, 700, - 701, 702, 703, 703, 704, 705, 63, 706, - 706, 39, 707, 707, 39, 708, 708, 39, - 709, 709, 39, 710, 710, 39, 711, 711, - 712, 713, 714, 715, 716, 716, 717, 718, - 63, 720, 719, 39, 721, 721, 722, 723, - 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 724, 725, - 4, 0, 726, 339, 726, 339, 39, 727, - 727, 728, 729, 730, 731, 39, 732, 732, - 733, 734, 736, 737, 738, 739, 740, 741, - 742, 743, 744, 745, 746, 747, 748, 749, - 750, 751, 752, 753, 736, 737, 738, 739, - 740, 741, 742, 743, 744, 745, 746, 747, - 748, 749, 750, 751, 752, 753, 754, 755, - 735, 671, 756, 756, 757, 758, 760, 761, - 762, 763, 764, 760, 761, 762, 763, 764, - 765, 766, 759, 27, 756, 756, 757, 758, - 765, 766, 767, 27, 769, 770, 771, 772, - 773, 769, 770, 771, 772, 773, 768, 27, - 774, 774, 775, 776, 778, 779, 777, 27, - 781, 780, 39, 783, 782, 785, 786, 787, - 785, 786, 787, 784, 788, 788, 784, 789, - 789, 784, 790, 790, 784, 791, 791, 784, - 792, 792, 784, 793, 793, 784, 794, 794, - 794, 794, 784, 796, 796, 797, 798, 799, - 800, 795, 801, 801, 802, 803, 5, 6, + 553, 554, 551, 552, 553, 554, 39, 555, + 555, 39, 556, 556, 39, 557, 557, 39, + 558, 558, 39, 559, 559, 39, 560, 560, + 561, 562, 563, 564, 565, 565, 566, 567, + 63, 568, 568, 569, 570, 571, 572, 573, + 573, 574, 575, 63, 576, 576, 39, 577, + 577, 39, 578, 578, 39, 579, 579, 580, + 581, 582, 583, 584, 584, 585, 586, 63, + 587, 587, 588, 589, 590, 591, 592, 592, + 593, 594, 63, 595, 596, 597, 598, 599, + 600, 595, 596, 597, 598, 599, 600, 39, + 601, 601, 39, 602, 602, 39, 603, 603, + 39, 604, 604, 39, 605, 605, 606, 607, + 608, 609, 610, 610, 611, 612, 63, 613, + 613, 39, 614, 614, 615, 616, 617, 618, + 619, 619, 620, 621, 63, 622, 622, 39, + 623, 623, 624, 625, 626, 627, 628, 628, + 629, 630, 63, 631, 631, 39, 632, 632, + 633, 634, 635, 636, 637, 637, 638, 639, + 63, 640, 640, 39, 641, 641, 39, 642, + 642, 39, 643, 643, 644, 645, 646, 647, + 648, 648, 649, 650, 63, 651, 651, 39, + 652, 652, 39, 653, 653, 654, 655, 656, + 657, 658, 658, 659, 660, 63, 661, 662, + 663, 661, 662, 663, 39, 664, 664, 39, + 665, 665, 39, 666, 666, 667, 668, 669, + 670, 671, 671, 672, 673, 63, 674, 674, + 39, 675, 675, 676, 677, 678, 679, 680, + 680, 681, 682, 63, 683, 683, 39, 684, + 684, 39, 686, 685, 688, 688, 689, 690, + 692, 693, 694, 694, 695, 696, 691, 687, + 697, 697, 39, 698, 698, 39, 699, 699, + 700, 701, 702, 703, 704, 704, 705, 706, + 63, 707, 707, 39, 708, 708, 39, 709, + 709, 39, 710, 710, 39, 711, 711, 39, + 712, 712, 713, 714, 715, 716, 717, 717, + 718, 719, 63, 720, 720, 39, 721, 721, + 39, 722, 722, 39, 723, 723, 39, 724, + 724, 39, 725, 725, 726, 727, 728, 729, + 730, 730, 731, 732, 63, 734, 733, 39, + 735, 735, 736, 737, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 738, 739, 4, 0, 740, 339, + 740, 339, 39, 741, 741, 742, 743, 744, + 745, 39, 746, 746, 747, 748, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, + 760, 761, 762, 763, 764, 765, 766, 767, + 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, + 766, 767, 768, 769, 749, 685, 770, 770, + 771, 772, 774, 775, 776, 777, 778, 774, + 775, 776, 777, 778, 779, 780, 773, 27, + 770, 770, 771, 772, 779, 780, 781, 27, + 783, 784, 785, 786, 787, 783, 784, 785, + 786, 787, 782, 27, 788, 788, 789, 790, + 792, 793, 791, 27, 795, 794, 39, 797, + 796, 799, 800, 801, 799, 800, 801, 798, + 802, 802, 798, 803, 803, 798, 804, 804, + 798, 805, 805, 798, 806, 806, 798, 807, + 807, 798, 808, 808, 808, 808, 798, 810, + 810, 811, 812, 813, 814, 809, 815, 815, + 816, 817, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 818, 819, + 4, 685, 822, 820, 821, 824, 824, 825, + 826, 32, 33, 34, 35, 36, 32, 33, + 34, 35, 36, 827, 828, 31, 823, 829, + 829, 830, 831, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 832, + 833, 4, 685, 835, 834, 39, 28, 28, + 29, 30, 37, 38, 836, 27, 838, 839, + 840, 841, 842, 838, 839, 840, 841, 842, + 837, 27, 843, 843, 844, 845, 847, 848, + 846, 27, 850, 849, 39, 852, 852, 853, + 854, 67, 68, 69, 67, 68, 69, 855, + 856, 72, 72, 857, 858, 851, 859, 859, + 860, 861, 75, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 80, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, + 862, 863, 75, 75, 864, 865, 75, 75, + 123, 75, 687, 867, 867, 868, 869, 67, + 68, 69, 67, 68, 69, 89, 90, 870, + 871, 872, 873, 874, 875, 866, 876, 876, + 877, 878, 80, 95, 96, 879, 113, 114, + 115, 880, 116, 75, 75, 75, 85, 881, + 881, 882, 883, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 95, + 96, 884, 885, 4, 0, 98, 887, 97, + 886, 91, 888, 888, 889, 890, 891, 892, + 891, 892, 97, 97, 97, 85, 893, 893, + 894, 895, 98, 896, 98, 896, 97, 97, + 97, 91, 897, 897, 898, 899, 75, 124, + 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, + 141, 80, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 95, 96, 884, 900, + 114, 115, 884, 901, 75, 75, 123, 75, + 120, 86, 86, 87, 88, 160, 161, 162, + 163, 164, 160, 161, 162, 163, 164, 89, + 90, 89, 90, 866, 86, 86, 87, 88, + 236, 237, 238, 236, 237, 238, 89, 90, + 89, 90, 866, 86, 86, 87, 88, 292, + 292, 89, 90, 89, 90, 866, 86, 86, + 87, 88, 314, 315, 314, 315, 89, 90, + 89, 90, 866, 86, 86, 87, 88, 740, + 339, 740, 339, 89, 90, 89, 90, 866, + 86, 86, 87, 88, 382, 383, 382, 383, + 89, 90, 89, 90, 866, 86, 86, 87, + 88, 401, 402, 403, 404, 403, 404, 89, + 90, 89, 90, 866, 86, 86, 87, 88, + 440, 441, 440, 441, 89, 90, 89, 90, + 866, 86, 86, 87, 88, 461, 462, 463, + 461, 462, 463, 89, 90, 89, 90, 866, + 86, 86, 87, 88, 524, 524, 89, 90, + 89, 90, 866, 86, 86, 87, 88, 541, + 541, 89, 90, 89, 90, 866, 86, 86, + 87, 88, 551, 552, 553, 554, 551, 552, + 553, 554, 89, 90, 89, 90, 866, 86, + 86, 87, 88, 595, 596, 597, 598, 599, + 600, 595, 596, 597, 598, 599, 600, 89, + 90, 89, 90, 866, 86, 86, 87, 88, + 661, 662, 663, 661, 662, 663, 89, 90, + 89, 90, 866, 86, 86, 87, 88, 697, + 697, 89, 90, 89, 90, 866, 86, 86, + 87, 88, 707, 707, 89, 90, 89, 90, + 866, 86, 86, 87, 88, 720, 720, 89, + 90, 89, 90, 866, 98, 903, 97, 902, + 85, 86, 86, 87, 88, 799, 800, 801, + 799, 800, 801, 89, 90, 89, 90, 904, + 905, 905, 798, 906, 906, 798, 907, 907, + 798, 908, 908, 798, 909, 909, 798, 910, + 910, 910, 910, 798, 911, 911, 798, 912, + 912, 798, 913, 913, 913, 913, 798, 915, + 915, 916, 917, 89, 90, 918, 919, 914, + 921, 921, 922, 923, 32, 33, 34, 35, + 36, 32, 33, 34, 35, 36, 89, 90, + 924, 925, 31, 920, 926, 926, 927, 928, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 804, 805, 4, 671, 808, 806, - 807, 810, 810, 811, 812, 32, 33, 34, - 35, 36, 32, 33, 34, 35, 36, 813, - 814, 31, 809, 815, 815, 816, 817, 5, - 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, - 22, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 818, 819, 4, 671, 821, - 820, 39, 28, 28, 29, 30, 37, 38, - 822, 27, 824, 825, 826, 827, 828, 824, - 825, 826, 827, 828, 823, 27, 829, 829, - 830, 831, 833, 834, 832, 27, 836, 835, - 39, 838, 838, 839, 840, 67, 68, 69, - 67, 68, 69, 841, 842, 72, 72, 843, - 844, 837, 845, 845, 846, 847, 75, 124, + 21, 22, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 95, 96, 929, 930, + 4, 0, 98, 932, 97, 931, 154, 934, + 934, 935, 936, 67, 68, 69, 67, 68, + 69, 89, 90, 937, 938, 872, 873, 939, + 940, 933, 941, 941, 942, 943, 75, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 80, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 848, 849, 75, 75, - 850, 851, 75, 75, 123, 75, 673, 853, - 853, 854, 855, 67, 68, 69, 67, 68, - 69, 89, 90, 856, 857, 858, 859, 860, - 861, 852, 862, 862, 863, 864, 80, 95, - 96, 865, 113, 114, 115, 866, 116, 75, - 75, 75, 85, 867, 867, 868, 869, 5, - 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, - 22, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 95, 96, 870, 871, 4, - 0, 98, 873, 97, 872, 91, 874, 874, - 875, 876, 877, 878, 877, 878, 97, 97, - 97, 85, 879, 879, 880, 881, 98, 882, - 98, 882, 97, 97, 97, 91, 883, 883, - 884, 885, 75, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 80, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, - 95, 96, 870, 886, 114, 115, 870, 887, - 75, 75, 123, 75, 120, 86, 86, 87, - 88, 160, 161, 162, 163, 164, 160, 161, - 162, 163, 164, 89, 90, 89, 90, 852, - 86, 86, 87, 88, 236, 237, 238, 236, - 237, 238, 89, 90, 89, 90, 852, 86, - 86, 87, 88, 292, 292, 89, 90, 89, - 90, 852, 86, 86, 87, 88, 314, 315, - 314, 315, 89, 90, 89, 90, 852, 86, - 86, 87, 88, 726, 339, 726, 339, 89, - 90, 89, 90, 852, 86, 86, 87, 88, - 382, 383, 382, 383, 89, 90, 89, 90, - 852, 86, 86, 87, 88, 401, 402, 403, - 404, 403, 404, 89, 90, 89, 90, 852, - 86, 86, 87, 88, 440, 441, 440, 441, - 89, 90, 89, 90, 852, 86, 86, 87, - 88, 461, 462, 463, 461, 462, 463, 89, - 90, 89, 90, 852, 86, 86, 87, 88, - 524, 524, 89, 90, 89, 90, 852, 86, - 86, 87, 88, 541, 541, 89, 90, 89, - 90, 852, 86, 86, 87, 88, 551, 552, - 553, 551, 552, 553, 89, 90, 89, 90, - 852, 86, 86, 87, 88, 581, 582, 583, - 584, 585, 586, 581, 582, 583, 584, 585, - 586, 89, 90, 89, 90, 852, 86, 86, - 87, 88, 647, 648, 649, 647, 648, 649, - 89, 90, 89, 90, 852, 86, 86, 87, - 88, 683, 683, 89, 90, 89, 90, 852, - 86, 86, 87, 88, 693, 693, 89, 90, - 89, 90, 852, 86, 86, 87, 88, 706, - 706, 89, 90, 89, 90, 852, 98, 889, - 97, 888, 85, 86, 86, 87, 88, 785, - 786, 787, 785, 786, 787, 89, 90, 89, - 90, 890, 891, 891, 784, 892, 892, 784, - 893, 893, 784, 894, 894, 784, 895, 895, - 784, 896, 896, 896, 896, 784, 897, 897, - 784, 898, 898, 784, 899, 899, 899, 899, - 784, 901, 901, 902, 903, 89, 90, 904, - 905, 900, 907, 907, 908, 909, 32, 33, - 34, 35, 36, 32, 33, 34, 35, 36, - 89, 90, 910, 911, 31, 906, 912, 912, - 913, 914, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 95, 96, - 915, 916, 4, 0, 98, 918, 97, 917, - 154, 920, 920, 921, 922, 67, 68, 69, - 67, 68, 69, 89, 90, 923, 924, 858, - 859, 925, 926, 919, 927, 927, 928, 929, - 75, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 80, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 95, 96, - 930, 886, 114, 115, 931, 887, 75, 75, - 123, 75, 120, 901, 901, 902, 903, 160, - 161, 162, 163, 164, 160, 161, 162, 163, - 164, 89, 90, 904, 905, 919, 901, 901, - 902, 903, 236, 237, 238, 236, 237, 238, - 89, 90, 904, 905, 919, 901, 901, 902, - 903, 292, 292, 89, 90, 904, 905, 919, - 901, 901, 902, 903, 314, 315, 314, 315, - 89, 90, 904, 905, 919, 901, 901, 902, - 903, 726, 339, 726, 339, 89, 90, 904, - 905, 919, 901, 901, 902, 903, 382, 383, - 382, 383, 89, 90, 904, 905, 919, 901, - 901, 902, 903, 401, 402, 403, 404, 403, - 404, 89, 90, 904, 905, 919, 901, 901, - 902, 903, 440, 441, 440, 441, 89, 90, - 904, 905, 919, 901, 901, 902, 903, 461, - 462, 463, 461, 462, 463, 89, 90, 904, - 905, 919, 901, 901, 902, 903, 524, 524, - 89, 90, 904, 905, 919, 901, 901, 902, - 903, 541, 541, 89, 90, 904, 905, 919, - 901, 901, 902, 903, 551, 552, 553, 551, - 552, 553, 89, 90, 904, 905, 919, 901, - 901, 902, 903, 581, 582, 583, 584, 585, - 586, 581, 582, 583, 584, 585, 586, 89, - 90, 904, 905, 919, 901, 901, 902, 903, - 647, 648, 649, 647, 648, 649, 89, 90, - 904, 905, 919, 901, 901, 902, 903, 683, - 683, 89, 90, 904, 905, 919, 901, 901, - 902, 903, 693, 693, 89, 90, 904, 905, - 919, 901, 901, 902, 903, 706, 706, 89, - 90, 904, 905, 919, 932, 932, 100, 934, - 935, 99, 99, 936, 937, 99, 99, 99, - 933, 938, 938, 939, 940, 5, 6, 7, + 138, 139, 140, 141, 95, 96, 944, 900, + 114, 115, 945, 901, 75, 75, 123, 75, + 120, 915, 915, 916, 917, 160, 161, 162, + 163, 164, 160, 161, 162, 163, 164, 89, + 90, 918, 919, 933, 915, 915, 916, 917, + 236, 237, 238, 236, 237, 238, 89, 90, + 918, 919, 933, 915, 915, 916, 917, 292, + 292, 89, 90, 918, 919, 933, 915, 915, + 916, 917, 314, 315, 314, 315, 89, 90, + 918, 919, 933, 915, 915, 916, 917, 740, + 339, 740, 339, 89, 90, 918, 919, 933, + 915, 915, 916, 917, 382, 383, 382, 383, + 89, 90, 918, 919, 933, 915, 915, 916, + 917, 401, 402, 403, 404, 403, 404, 89, + 90, 918, 919, 933, 915, 915, 916, 917, + 440, 441, 440, 441, 89, 90, 918, 919, + 933, 915, 915, 916, 917, 461, 462, 463, + 461, 462, 463, 89, 90, 918, 919, 933, + 915, 915, 916, 917, 524, 524, 89, 90, + 918, 919, 933, 915, 915, 916, 917, 541, + 541, 89, 90, 918, 919, 933, 915, 915, + 916, 917, 551, 552, 553, 554, 551, 552, + 553, 554, 89, 90, 918, 919, 933, 915, + 915, 916, 917, 595, 596, 597, 598, 599, + 600, 595, 596, 597, 598, 599, 600, 89, + 90, 918, 919, 933, 915, 915, 916, 917, + 661, 662, 663, 661, 662, 663, 89, 90, + 918, 919, 933, 915, 915, 916, 917, 697, + 697, 89, 90, 918, 919, 933, 915, 915, + 916, 917, 707, 707, 89, 90, 918, 919, + 933, 915, 915, 916, 917, 720, 720, 89, + 90, 918, 919, 933, 946, 946, 100, 948, + 949, 99, 99, 950, 951, 99, 99, 99, + 947, 952, 952, 953, 954, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 89, 90, 941, 942, 4, 120, 86, - 89, 86, 87, 88, 90, 943, 944, 943, - 945, 946, 947, 806, 85, 92, 95, 92, - 93, 94, 96, 948, 873, 948, 949, 950, - 951, 806, 91, 874, 877, 874, 875, 876, - 878, 952, 944, 952, 953, 954, 955, 97, - 888, 85, 879, 98, 879, 880, 881, 882, - 956, 873, 956, 957, 958, 959, 97, 888, - 85, 960, 960, 39, 961, 961, 39, 962, - 962, 963, 964, 965, 966, 967, 967, 968, - 969, 63, 970, 970, 39, 971, 971, 39, - 972, 972, 39, 973, 973, 974, 975, 976, - 977, 978, 978, 979, 980, 63, 981, 981, - 39, 982, 982, 983, 984, 985, 986, 987, - 987, 988, 989, 63, 783, 991, 782, 990, - 85, 992, 992, 993, 994, 995, 878, 995, - 878, 782, 782, 782, 85, 996, 996, 997, - 998, 999, 882, 999, 882, 782, 782, 782, - 91, 992, 995, 992, 993, 994, 878, 1000, - 944, 1000, 1001, 1002, 955, 782, 990, 85, - 996, 999, 996, 997, 998, 882, 1003, 873, - 1003, 1004, 1005, 959, 782, 990, 85, 874, - 877, 874, 875, 876, 878, 1006, 877, 1006, - 1007, 1008, 177, 97, 117, 85, 879, 98, - 879, 880, 881, 882, 1009, 98, 1009, 1010, - 1011, 181, 97, 117, 85, 1013, 1012, 77, - 1014, 1014, 1015, 1016, 75, 124, 125, 126, + 22, 89, 90, 955, 956, 4, 120, 86, + 89, 86, 87, 88, 90, 957, 958, 957, + 959, 960, 961, 820, 85, 92, 95, 92, + 93, 94, 96, 962, 887, 962, 963, 964, + 965, 820, 91, 888, 891, 888, 889, 890, + 892, 966, 958, 966, 967, 968, 969, 97, + 902, 85, 893, 98, 893, 894, 895, 896, + 970, 887, 970, 971, 972, 973, 97, 902, + 85, 974, 974, 39, 975, 975, 39, 976, + 976, 977, 978, 979, 980, 981, 981, 982, + 983, 63, 984, 984, 39, 985, 985, 39, + 986, 986, 39, 987, 987, 988, 989, 990, + 991, 992, 992, 993, 994, 63, 995, 995, + 39, 996, 996, 997, 998, 999, 1000, 1001, + 1001, 1002, 1003, 63, 797, 1005, 796, 1004, + 85, 1006, 1006, 1007, 1008, 1009, 892, 1009, + 892, 796, 796, 796, 85, 1010, 1010, 1011, + 1012, 1013, 896, 1013, 896, 796, 796, 796, + 91, 1006, 1009, 1006, 1007, 1008, 892, 1014, + 958, 1014, 1015, 1016, 969, 796, 1004, 85, + 1010, 1013, 1010, 1011, 1012, 896, 1017, 887, + 1017, 1018, 1019, 973, 796, 1004, 85, 888, + 891, 888, 889, 890, 892, 1020, 891, 1020, + 1021, 1022, 177, 97, 117, 85, 893, 98, + 893, 894, 895, 896, 1023, 98, 1023, 1024, + 1025, 181, 97, 117, 85, 1027, 1026, 77, + 1028, 1028, 1029, 1030, 75, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 80, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 89, 90, 941, 1017, 107, 108, - 941, 1018, 75, 75, 123, 75, 120, 86, - 89, 86, 87, 88, 90, 1019, 944, 1019, - 1020, 1021, 955, 1012, 85, 92, 95, 92, - 93, 94, 96, 1022, 873, 1022, 1023, 1024, - 959, 1012, 85, 796, 796, 797, 798, 160, + 140, 141, 89, 90, 955, 1031, 107, 108, + 955, 1032, 75, 75, 123, 75, 120, 86, + 89, 86, 87, 88, 90, 1033, 958, 1033, + 1034, 1035, 969, 1026, 85, 92, 95, 92, + 93, 94, 96, 1036, 887, 1036, 1037, 1038, + 973, 1026, 85, 810, 810, 811, 812, 160, 161, 162, 163, 164, 160, 161, 162, 163, - 164, 799, 800, 1025, 796, 796, 797, 798, - 236, 237, 238, 236, 237, 238, 799, 800, - 1025, 796, 796, 797, 798, 292, 292, 799, - 800, 1025, 796, 796, 797, 798, 314, 315, - 314, 315, 799, 800, 1025, 796, 796, 797, - 798, 726, 339, 726, 339, 799, 800, 1025, - 796, 796, 797, 798, 382, 383, 382, 383, - 799, 800, 1025, 796, 796, 797, 798, 401, - 402, 403, 404, 403, 404, 799, 800, 1025, - 796, 796, 797, 798, 440, 441, 440, 441, - 799, 800, 1025, 796, 796, 797, 798, 461, - 462, 463, 461, 462, 463, 799, 800, 1025, - 796, 796, 797, 798, 524, 524, 799, 800, - 1025, 796, 796, 797, 798, 541, 541, 799, - 800, 1025, 796, 796, 797, 798, 551, 552, - 553, 551, 552, 553, 799, 800, 1025, 796, - 796, 797, 798, 581, 582, 583, 584, 585, - 586, 581, 582, 583, 584, 585, 586, 799, - 800, 1025, 796, 796, 797, 798, 647, 648, - 649, 647, 648, 649, 799, 800, 1025, 796, - 796, 797, 798, 683, 683, 799, 800, 1025, - 796, 796, 797, 798, 693, 693, 799, 800, - 1025, 796, 796, 797, 798, 706, 706, 799, - 800, 1025, 783, 1027, 782, 1026, 91, 783, - 1029, 782, 1028, 154, 796, 796, 797, 798, - 338, 339, 338, 339, 799, 800, 1025, 98, - 1031, 97, 1030, 154, 1033, 1034, 1035, 1032, - 1032, 1032, 807, 1037, 1036, 1039, 1038, 1041, - 1042, 1043, 1044, 1041, 1041, 1041, 1041, 1040, - 1045, 1046, 1047, 1045, 1048, 1046, 1045, 1045, - 1046, 1046, 1046, 1040, 1049, 1050, 1050, 1049, - 1051, 1050, 1049, 1049, 1050, 1050, 1050, 1040, - 1052, 1046, 1054, 1053, 1055, 1053, 1056, 1057, - 1058, 1056, 1059, 1057, 1056, 1056, 1057, 1057, - 1057, 1053, 1049, 1049, 1049, 1049, 1040, 1060, - 1060, 1060, 1060, 1040, 1063, 1064, 1062, 1062, - 1061, 1065, 1066, 1065, 1068, 1065, 1066, 1067, - 1066, 1061, 1062, 1070, 1062, 1069, 1071, 1069, - 1072, 1069, 1073, 1074, 1073, 1076, 1073, 1074, - 1075, 1074, 1069, 1077, 1077, 1079, 1077, 1080, - 1077, 1078, 1061, 1081, 1081, 1083, 1081, 1084, - 1081, 1082, 1061, 1086, 1086, 1086, 1086, 1085, - 1078, 1087, 1078, 1069, 1088, 1069, 1089, 1069, - 1090, 1090, 1092, 1090, 1093, 1090, 1091, 1069, - 1095, 1095, 1096, 1097, 1098, 1099, 1094, 1095, - 1095, 1096, 1097, 1098, 1099, 1101, 1100, 1103, - 1103, 1104, 1105, 1107, 1108, 1109, 1110, 1111, - 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1112, - 1113, 1106, 1102, 1115, 1115, 1116, 1117, 1118, - 1119, 1118, 1119, 1114, 1121, 1120, 1103, 1103, - 1104, 1105, 1112, 1113, 1112, 1113, 1122, 1102, - 1125, 1126, 1127, 1128, 1129, 1125, 1126, 1127, - 1128, 1129, 1124, 1123, 1130, 1130, 1131, 1132, - 1134, 1135, 1134, 1135, 1133, 1102, 1137, 1136, - 1094, 1139, 1139, 1140, 1141, 1142, 1143, 1138, - 1139, 1139, 1140, 1141, 1144, 1145, 1146, 1144, - 1142, 1143, 1144, 1144, 1144, 1138, 1147, 1148, - 1149, 1147, 1147, 1147, 1147, 1138, 1151, 1151, - 1152, 1153, 1154, 1154, 1155, 1154, 1156, 1157, - 1156, 1157, 1154, 1154, 1154, 1150, 1158, 1158, - 1159, 1160, 1161, 1162, 1161, 1162, 1150, 1164, - 1163, 1165, 1147, 1167, 1166, 1168, 1166, 1169, - 1170, 1171, 1169, 1169, 1169, 1169, 1166, 1151, - 1151, 1152, 1153, 1156, 1157, 1156, 1157, 1150, - 1173, 1172, 1138, 1174, 1174, 1175, 1176, 1177, - 1178, 807, 1174, 1174, 1175, 1176, 1177, 1178, - 1179, 1179, 1179, 1180, 1182, 1182, 1183, 1184, - 1185, 1186, 1185, 1187, 1181, 1189, 1189, 1190, - 1191, 1192, 1193, 1194, 1192, 1195, 1196, 1195, - 1197, 1192, 1192, 1192, 1188, 1199, 1200, 1201, - 1199, 1199, 1199, 1199, 1198, 1202, 1202, 1203, - 1204, 1205, 1205, 1206, 1205, 1207, 1208, 1207, - 1208, 1205, 1205, 1205, 1188, 1209, 1209, 1210, - 1211, 1195, 1196, 1195, 1196, 91, 1213, 1212, - 1214, 1199, 1216, 1215, 1217, 1215, 1218, 1219, - 1220, 1218, 1218, 1218, 1218, 1215, 1202, 1202, - 1203, 1204, 1207, 1208, 1207, 1208, 1188, 1213, - 1222, 1212, 1221, 91, 1223, 1223, 1224, 1225, - 1192, 1193, 1194, 1192, 1226, 1227, 1192, 1192, - 1192, 1198, 1229, 1228, 807, 1231, 1230, 807, - 1233, 1233, 1233, 1233, 1232, 1234, 1234, 1234, - 1234, 1232, 1235, 1236, 1235, 1235, 1235, 1232, - 1237, 1238, 1237, 1237, 1237, 1232, 1238, 1238, - 1239, 1240, 1233, 1241, 1242, 1243, 1243, 1244, - 1245, 1233, 1233, 1233, 1232, 1247, 1246, 1232, - 1238, 1232, 1249, 1250, 1251, 1252, 1253, 1254, - 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, - 1263, 1264, 1265, 1266, 1249, 1250, 1251, 1252, - 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, - 1261, 1262, 1263, 1264, 1265, 1266, 1248, 1267, - 1267, 1268, 1269, 1270, 1268, 1269, 1270, 1267, - 1267, 1248, 1271, 1271, 1248, 1272, 1272, 1248, - 1273, 1273, 1273, 1273, 1248, 1274, 1274, 1248, - 1275, 1275, 1248, 1276, 1276, 1248, 1277, 1277, - 1277, 1277, 1248, 1278, 1278, 1248, 1279, 1279, - 1279, 1279, 1248, 1280, 1281, 1282, 1283, 1284, - 1280, 1281, 1282, 1283, 1284, 1248, 1285, 1285, - 1248, 1286, 1286, 1286, 1286, 1248, 1287, 1288, - 1287, 1288, 1248, 1289, 1289, 1248, 1290, 1290, - 1248, 1291, 1291, 1248, 1292, 1292, 1248, 1293, - 1293, 1293, 1293, 1248, 1294, 1294, 1294, 1294, - 1248, 1295, 1295, 1248, 1296, 1296, 1248, 1297, - 1297, 1297, 1297, 1248, 1298, 1298, 1248, 1299, - 1299, 1248, 1300, 1300, 1248, 1301, 1301, 1301, - 1301, 1248, 1302, 1302, 1248, 1303, 1303, 1248, - 1304, 1304, 1248, 1305, 1305, 1305, 1305, 1248, - 1306, 1307, 1308, 1306, 1307, 1308, 1248, 1309, - 1309, 1248, 1310, 1310, 1248, 1311, 1311, 1248, - 1312, 1312, 1312, 1312, 1248, 1313, 1314, 1313, - 1314, 1248, 1315, 1315, 1248, 1316, 1316, 1248, - 1317, 1317, 1317, 1317, 1248, 1318, 1318, 1248, - 1319, 1319, 1248, 1320, 1320, 1248, 1321, 1321, - 1321, 1321, 1248, 1322, 1322, 1323, 1323, 1322, - 1322, 1248, 1324, 1324, 1248, 1325, 1325, 1248, - 1326, 1326, 1326, 1326, 1248, 1327, 1327, 1248, - 1328, 1328, 1248, 1329, 1330, 1248, 1331, 1248, - 1332, 1332, 1332, 1332, 1248, 1333, 1248, 1334, - 1334, 1334, 1334, 1248, 1335, 1336, 1335, 1336, - 1248, 1337, 1337, 1248, 1338, 1338, 1248, 1339, - 1339, 1248, 1340, 1340, 1340, 1340, 1248, 1341, - 1341, 1248, 1342, 1342, 1248, 1343, 1343, 1248, - 1344, 1344, 1344, 1344, 1248, 1345, 1345, 1248, - 1346, 1346, 1248, 1347, 1347, 1248, 1348, 1348, - 1248, 1349, 1349, 1248, 1350, 1350, 1248, 1351, - 1351, 1248, 1352, 1352, 1352, 1352, 1248, 1353, - 1354, 1353, 1354, 1248, 1355, 1355, 1248, 1356, - 1356, 1356, 1356, 1248, 1357, 1357, 1357, 1357, - 1248, 1358, 1359, 1360, 1361, 1360, 1361, 1248, - 1362, 1248, 1363, 1363, 1363, 1363, 1248, 1364, - 1248, 1365, 1365, 1365, 1365, 1248, 1366, 1366, - 1248, 1367, 1367, 1367, 1367, 1248, 1368, 1368, - 1368, 1368, 1248, 1369, 1370, 1369, 1370, 1248, - 1371, 1371, 1248, 1372, 1372, 1248, 1373, 1373, - 1248, 1374, 1374, 1374, 1374, 1248, 1375, 1375, - 1375, 1375, 1248, 1376, 1377, 1378, 1376, 1377, - 1378, 1248, 1379, 1379, 1248, 1380, 1380, 1248, - 1381, 1381, 1248, 1382, 1382, 1382, 1382, 1248, - 1383, 1383, 1248, 1384, 1384, 1384, 1384, 1248, - 1385, 1385, 1386, 1386, 1385, 1385, 1248, 1387, - 1387, 1248, 1388, 1389, 1388, 1388, 1388, 1248, - 1390, 1390, 1391, 1391, 1390, 1390, 1248, 1392, - 1392, 1248, 1393, 1393, 1248, 1394, 1394, 1248, - 1395, 1395, 1248, 1396, 1396, 1396, 1396, 1248, - 1397, 1397, 1248, 1398, 1398, 1248, 1399, 1399, - 1248, 1400, 1400, 1248, 1401, 1401, 1248, 1402, - 1402, 1248, 1403, 1403, 1248, 1404, 1404, 1248, - 1405, 1405, 1248, 1406, 1406, 1406, 1406, 1248, - 1407, 1407, 1248, 1408, 1408, 1248, 1409, 1409, - 1409, 1409, 1248, 1410, 1411, 1412, 1410, 1411, - 1412, 1248, 1413, 1413, 1413, 1413, 1248, 1414, - 1414, 1248, 1415, 1415, 1248, 1416, 1416, 1248, - 1417, 1417, 1417, 1417, 1248, 1418, 1418, 1418, - 1418, 1248, 1419, 1420, 1421, 1422, 1423, 1424, - 1419, 1420, 1421, 1422, 1423, 1424, 1248, 1425, - 1425, 1248, 1426, 1426, 1248, 1427, 1427, 1248, - 1428, 1428, 1248, 1429, 1429, 1429, 1429, 1248, - 1430, 1430, 1248, 1431, 1431, 1431, 1431, 1248, - 1432, 1432, 1248, 1433, 1433, 1433, 1433, 1248, - 1434, 1434, 1248, 1435, 1435, 1435, 1435, 1248, - 1436, 1436, 1248, 1437, 1437, 1248, 1438, 1438, - 1248, 1439, 1439, 1439, 1439, 1248, 1440, 1440, - 1248, 1441, 1441, 1248, 1442, 1442, 1442, 1442, - 1248, 1443, 1444, 1445, 1443, 1444, 1445, 1248, - 1446, 1446, 1248, 1447, 1447, 1248, 1448, 1448, - 1448, 1448, 1248, 1449, 1449, 1248, 1450, 1450, - 1450, 1450, 1248, 1451, 1451, 1248, 1452, 1452, - 1248, 1454, 1453, 1455, 1455, 1455, 1455, 1456, - 1453, 1457, 1457, 1248, 1458, 1458, 1248, 1459, - 1459, 1459, 1459, 1248, 1460, 1460, 1248, 1461, - 1461, 1248, 1462, 1462, 1248, 1463, 1463, 1248, - 1464, 1464, 1248, 1465, 1465, 1465, 1465, 1248, - 1466, 1466, 1248, 1467, 1467, 1248, 1468, 1468, - 1248, 1469, 1469, 1248, 1470, 1470, 1248, 1471, - 1471, 1471, 1471, 1248, 1473, 1473, 1474, 1475, - 1476, 1477, 1478, 1478, 1479, 1480, 1472, 1481, - 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, - 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, - 1497, 1498, 1499, 1500, 1501, 1484, 1485, 1486, - 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, - 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, - 1503, 1504, 1504, 1505, 1506, 1472, 1507, 1507, - 1508, 1509, 1510, 1511, 1512, 1510, 1511, 1512, - 1513, 1514, 1515, 1515, 1516, 1517, 1472, 1518, - 1518, 1472, 1519, 1519, 1472, 1520, 1520, 1521, - 1522, 1523, 1524, 1525, 1525, 1526, 1527, 1472, - 1529, 1528, 1472, 1530, 1531, 1532, 1533, 1534, - 1530, 1531, 1532, 1533, 1534, 1472, 1535, 1535, - 1472, 1536, 1536, 1537, 1538, 1539, 1540, 1541, - 1541, 1542, 1543, 1472, 1544, 1545, 1544, 1545, - 1472, 1546, 1546, 1472, 1547, 1547, 1472, 1548, - 1548, 1472, 1549, 1549, 1472, 1550, 1550, 1551, - 1552, 1553, 1554, 1555, 1555, 1556, 1557, 1472, - 1558, 1558, 1559, 1560, 1561, 1562, 1563, 1563, - 1564, 1565, 1472, 1566, 1566, 1472, 1567, 1567, - 1472, 1568, 1568, 1569, 1570, 1571, 1572, 1573, - 1573, 1574, 1575, 1472, 1576, 1576, 1472, 1577, - 1577, 1472, 1578, 1578, 1472, 1579, 1579, 1580, - 1581, 1582, 1583, 1584, 1584, 1585, 1586, 1472, - 1587, 1587, 1472, 1588, 1588, 1472, 1589, 1589, - 1472, 1590, 1590, 1591, 1592, 1593, 1594, 1595, - 1595, 1596, 1597, 1472, 1598, 1599, 1600, 1598, - 1599, 1600, 1472, 1601, 1601, 1472, 1602, 1602, - 1472, 1603, 1603, 1472, 1604, 1604, 1605, 1606, - 1607, 1608, 1609, 1609, 1610, 1611, 1472, 1612, - 1613, 1612, 1613, 1472, 1614, 1614, 1472, 1615, - 1615, 1472, 1616, 1616, 1617, 1618, 1619, 1620, - 1621, 1621, 1622, 1623, 1472, 1624, 1624, 1472, - 1625, 1625, 1472, 1626, 1626, 1472, 1627, 1627, - 1628, 1629, 1630, 1631, 1632, 1632, 1633, 1634, - 1472, 1635, 1635, 1636, 1637, 1638, 1638, 1639, - 1640, 1641, 1641, 1642, 1643, 1472, 1644, 1644, - 1472, 1645, 1645, 1472, 1646, 1646, 1647, 1648, - 1649, 1650, 1651, 1651, 1652, 1653, 1472, 1654, - 1654, 1472, 1655, 1655, 1472, 1656, 1657, 1472, - 1658, 1472, 1659, 1659, 1660, 1661, 1662, 1663, - 1664, 1664, 1665, 1666, 1472, 1667, 1472, 1668, - 1668, 1669, 1670, 1671, 1672, 1673, 1673, 1674, - 1675, 1472, 1676, 1677, 1676, 1677, 1472, 1678, - 1678, 1472, 1679, 1679, 1472, 1680, 1680, 1472, - 1681, 1681, 1682, 1683, 1684, 1685, 1686, 1686, - 1687, 1688, 1472, 1689, 1689, 1472, 1690, 1690, - 1472, 1691, 1691, 1472, 1692, 1692, 1693, 1694, - 1695, 1696, 1697, 1697, 1698, 1699, 1472, 1700, - 1700, 1472, 1701, 1701, 1472, 1702, 1702, 1472, - 1703, 1703, 1472, 1704, 1704, 1472, 1705, 1705, - 1472, 1706, 1706, 1472, 1707, 1707, 1708, 1709, - 1710, 1711, 1712, 1712, 1713, 1714, 1472, 1715, - 1716, 1715, 1716, 1472, 1717, 1717, 1472, 1718, - 1718, 1719, 1720, 1721, 1722, 1723, 1723, 1724, - 1725, 1472, 1726, 1726, 1727, 1728, 1729, 1730, - 1731, 1731, 1732, 1733, 1472, 1734, 1735, 1736, - 1737, 1736, 1737, 1472, 1738, 1472, 1739, 1739, - 1740, 1741, 1742, 1743, 1744, 1744, 1745, 1746, - 1472, 1747, 1472, 1748, 1748, 1749, 1750, 1751, - 1752, 1753, 1753, 1754, 1755, 1472, 1756, 1756, - 1472, 1757, 1757, 1758, 1759, 1760, 1761, 1762, - 1762, 1763, 1764, 1472, 1765, 1765, 1766, 1767, - 1768, 1769, 1770, 1770, 1771, 1772, 1472, 1773, - 1774, 1773, 1774, 1472, 1775, 1775, 1472, 1776, - 1776, 1472, 1777, 1777, 1472, 1778, 1778, 1779, - 1780, 1781, 1782, 1783, 1783, 1784, 1785, 1472, - 1786, 1786, 1787, 1788, 1789, 1790, 1791, 1791, - 1792, 1793, 1472, 1794, 1795, 1796, 1794, 1795, - 1796, 1472, 1797, 1797, 1472, 1798, 1798, 1472, - 1799, 1799, 1472, 1800, 1800, 1801, 1802, 1803, - 1804, 1805, 1805, 1806, 1807, 1472, 1808, 1808, - 1472, 1809, 1809, 1810, 1811, 1812, 1813, 1814, - 1814, 1815, 1816, 1472, 1817, 1817, 1818, 1819, - 1820, 1820, 1821, 1822, 1823, 1823, 1824, 1825, - 1472, 1826, 1826, 1472, 1827, 1827, 1828, 1829, - 1830, 1831, 1832, 1833, 1833, 1834, 1835, 1472, - 1836, 1836, 1837, 1838, 1839, 1839, 1840, 1841, - 1842, 1842, 1843, 1844, 1472, 1845, 1845, 1472, - 1846, 1846, 1472, 1847, 1847, 1472, 1848, 1848, - 1472, 1849, 1849, 1850, 1851, 1852, 1853, 1854, - 1854, 1855, 1856, 1472, 1857, 1857, 1472, 1858, - 1858, 1472, 1859, 1859, 1472, 1860, 1860, 1472, - 1861, 1861, 1472, 1862, 1862, 1472, 1863, 1863, - 1472, 1864, 1864, 1472, 1865, 1865, 1472, 1866, - 1866, 1867, 1868, 1869, 1870, 1871, 1871, 1872, - 1873, 1472, 1874, 1874, 1472, 1875, 1875, 1472, - 1876, 1876, 1877, 1878, 1879, 1880, 1881, 1881, - 1882, 1883, 1472, 1884, 1885, 1886, 1884, 1885, - 1886, 1472, 1887, 1887, 1888, 1889, 1890, 1891, - 1892, 1892, 1893, 1894, 1472, 1895, 1895, 1472, - 1896, 1896, 1472, 1897, 1897, 1472, 1898, 1898, - 1899, 1900, 1901, 1902, 1903, 1903, 1904, 1905, - 1472, 1906, 1906, 1907, 1908, 1909, 1910, 1911, - 1911, 1912, 1913, 1472, 1914, 1915, 1916, 1917, - 1918, 1919, 1914, 1915, 1916, 1917, 1918, 1919, - 1472, 1920, 1920, 1472, 1921, 1921, 1472, 1922, - 1922, 1472, 1923, 1923, 1472, 1924, 1924, 1925, - 1926, 1927, 1928, 1929, 1929, 1930, 1931, 1472, - 1932, 1932, 1472, 1933, 1933, 1934, 1935, 1936, - 1937, 1938, 1938, 1939, 1940, 1472, 1941, 1941, - 1472, 1942, 1942, 1943, 1944, 1945, 1946, 1947, - 1947, 1948, 1949, 1472, 1950, 1950, 1472, 1951, - 1951, 1952, 1953, 1954, 1955, 1956, 1956, 1957, - 1958, 1472, 1959, 1959, 1472, 1960, 1960, 1472, - 1961, 1961, 1472, 1962, 1962, 1963, 1964, 1965, - 1966, 1967, 1967, 1968, 1969, 1472, 1970, 1970, - 1472, 1971, 1971, 1472, 1972, 1972, 1973, 1974, - 1975, 1976, 1977, 1977, 1978, 1979, 1472, 1980, - 1981, 1982, 1980, 1981, 1982, 1472, 1983, 1983, - 1472, 1984, 1984, 1472, 1985, 1985, 1986, 1987, - 1988, 1989, 1990, 1990, 1991, 1992, 1472, 1993, - 1993, 1472, 1994, 1994, 1995, 1996, 1997, 1998, - 1999, 1999, 2000, 2001, 1472, 2002, 2002, 1472, - 2003, 2003, 1472, 2004, 1472, 2005, 2005, 2006, - 2007, 2009, 2010, 2011, 2011, 2012, 2013, 2008, - 1472, 2014, 2014, 1472, 2015, 2015, 1472, 2016, - 2016, 2017, 2018, 2019, 2020, 2021, 2021, 2022, - 2023, 1472, 2024, 2024, 1472, 2025, 2025, 1472, - 2026, 2026, 1472, 2027, 2027, 1472, 2028, 2028, - 1472, 2029, 2029, 2030, 2031, 2032, 2033, 2034, - 2034, 2035, 2036, 1472, 2037, 2037, 1472, 2038, - 2038, 1472, 2039, 2039, 1472, 2040, 2040, 1472, - 2041, 2041, 1472, 2042, 2042, 2043, 2044, 2045, - 2046, 2047, 2047, 2048, 2049, 1472, 2050, 2050, - 1472, 2051, 2051, 1472, 2052, 2052, 1472, 2053, - 2053, 2054, 2055, 2056, 2057, 2058, 2058, 2059, - 2060, 1472, 2061, 2061, 1472, 2062, 2062, 2063, - 2064, 2065, 2066, 2067, 2067, 2068, 2069, 1472, - 2071, 2071, 2072, 2073, 2074, 2075, 2070, 2071, - 2071, 2072, 2073, 2074, 2075, 2077, 2076, 2078, - 2078, 2079, 2080, 2082, 2083, 2081, 2076, 2085, - 2085, 2086, 2087, 2089, 2090, 2088, 2088, 2088, - 2084, 2091, 2091, 2091, 2084, 2092, 2092, 2093, - 2094, 2095, 2096, 2097, 2097, 2098, 2099, 2088, - 2088, 2088, 2084, 2101, 2100, 2084, 2103, 2102, - 2070, 2105, 2104, 2070, 2106, 2106, 2107, 2108, - 2109, 2110, 2070, 2106, 2106, 2107, 2108, 2111, - 2109, 2110, 2112, 2076, 2113, 2113, 2114, 2115, - 2117, 2117, 2118, 2119, 2116, 2076, 2120, 2120, - 2121, 2122, 2124, 2125, 2123, 2123, 2123, 2084, - 2126, 2126, 2126, 2084, 2127, 2127, 2128, 2129, - 2130, 2131, 2132, 2132, 2133, 2134, 2123, 2123, - 2123, 2084, 2136, 2135, 2084, 2138, 2137, 2070, - 2139, 2139, 2140, 2141, 2142, 2143, 2116, 2076, - 2145, 2144, 2070, 2147, 2148, 2149, 2150, 2151, - 2152, 2153, 2154, 2146, 2155, 2146, 2156, 2146, - 2157, 2146, 2158, 2158, 2158, 2158, 2158, 2158, - 2146, 2159, 2146, 2160, 2146, 2161, 2146, 2162, - 2146, 2163, 2146, 2164, 2146, 2165, 2165, 2165, - 2165, 2165, 2165, 2146, 2166, 2146, 2167, 2146, - 2168, 2168, 2168, 2168, 2168, 2168, 2146, 2169, - 2146, 2170, 2146, 2171, 2172, 2146, 2173, 2146, - 2174, 2146, 2175, 2146, 2176, 2146, 2177, 2177, - 2177, 2177, 2177, 2177, 2146, 2178, 2146, 2179, - 2146, 2180, 2146, 2181, 2146, 2182, 2182, 2182, - 2182, 2182, 2182, 2146, 2183, 2146, 2184, 2146, - 2186, 2185, 2187, 2187, 2187, 2187, 2187, 2187, - 2188, 2185, 2189, 2146, 2190, 2146, 2191, 2146, - 2192, 2146, 2193, 2146, 2194, 2146, 2195, 2146, - 2196, 2146, 2197, 2146, 2198, 2146, 2199, 2146, - 2200, 2146, 2201, 2146, 2202, 2146, 2203, 2203, - 2203, 2203, 2203, 2203, 2146, 2204, 2146, 2205, - 2146, 2206, 2146, 2207, 2146, 2208, 2208, 2208, - 2208, 2208, 2208, 2146, 2209, 2146, 2210, 2146, - 2211, 2146, 2212, 2212, 2212, 2212, 2212, 2212, - 2146, 2214, 2214, 2215, 2216, 2217, 2218, 2219, - 2219, 2220, 2221, 2213, 2222, 2222, 2223, 2224, - 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, - 2233, 2234, 2235, 2236, 2236, 2237, 2238, 2213, - 2239, 2213, 2240, 2213, 2241, 2213, 2242, 2213, - 2213, 2244, 2213, 2213, 2213, 2243, 2245, 2245, - 2246, 2247, 2248, 2249, 2250, 2250, 2251, 2252, - 2213, 2254, 2253, 2213, 2255, 2213, 2256, 2213, - 2257, 2213, 2258, 2213, 2259, 2213, 2260, 2213, - 2261, 2213, 2213, 2263, 2213, 2213, 2213, 2262, - 2264, 2264, 2265, 2266, 2267, 2268, 2269, 2269, - 2270, 2271, 2213, 2264, 2264, 2265, 2266, 2267, - 2268, 2269, 2269, 2270, 2271, 2272, 2272, 2272, - 2213, 2273, 2213, 2274, 2274, 2275, 2276, 2277, - 2278, 2279, 2279, 2280, 2281, 2213, 2282, 2213, - 2283, 2213, 2284, 2213, 2285, 2286, 2286, 2286, - 2286, 2213, 2287, 2287, 2287, 2287, 2213, 2288, - 2288, 2288, 2288, 2213, 2289, 2290, 2289, 2289, - 2289, 2213, 2291, 2292, 2291, 2291, 2291, 2213, - 2273, 2293, 2293, 2293, 2293, 2213, 2292, 2213, - 2294, 2294, 2294, 2294, 2213, 2295, 2296, 2295, - 2295, 2295, 2213, 2297, 2298, 2297, 2297, 2297, - 2213, 2264, 2264, 2265, 2266, 2299, 2267, 2268, - 2269, 2269, 2270, 2271, 2299, 2299, 2299, 2213, - 2298, 2213, 2300, 2213, 2301, 2213, 2302, 2303, - 2213, 2304, 2213, 2305, 2213, 2306, 2213, 2307, - 2213, 2308, 2213, 2310, 2311, 2311, 2309, 2312, - 2312, 2309, 2313, 2314, 2315, 2315, 2309, 2316, - 2316, 2309, 2317, 2317, 2318, 2319, 2320, 2321, - 2322, 2323, 2324, 2324, 2325, 2326, 2321, 2309, - 2327, 2327, 2309, 2328, 2213, 2329, 2213, 2330, - 2213, 2331, 2213, 2332, 2213, 2333, 2334, 2334, - 2334, 2334, 2309, 2335, 2335, 2335, 2335, 2309, - 2336, 2337, 2338, 2338, 2338, 2338, 2309, 2339, - 2339, 2339, 2339, 2309, 2340, 2340, 2341, 2342, - 2343, 2344, 2345, 2346, 2347, 2347, 2348, 2349, - 2344, 2344, 2344, 2309, 2350, 2350, 2350, 2350, - 2309, 2351, 2213, 2352, 2213, 2354, 2353, 2355, - 2355, 2356, 2357, 2359, 2360, 2361, 2362, 2362, - 2363, 2364, 2358, 2353, 2213, 2213, 2213, 2213, - 2262, 2365, 2213, 2366, 2213, 2367, 2213, 2368, - 2213, 2369, 2213, 2370, 2213, 2371, 2213, 2372, - 2213, 2373, 2213, 2374, 2375, 2375, 2213, 2376, - 2376, 2213, 2377, 2378, 2213, 2379, 2379, 2213, - 2380, 2380, 2381, 2382, 2383, 2384, 2385, 2386, - 2386, 2387, 2388, 2213, 2389, 2389, 2213, 2390, - 2213, 2391, 2213, 2392, 2213, 2393, 2213, 2394, - 2213, 2395, 2213, 2396, 2213, 2397, 2213, 2398, - 2213, 2399, 2213, 2400, 2213, 2401, 2213, 2402, - 2213, 2403, 2213, 2404, 2404, 2405, 2406, 2407, - 2408, 2409, 2409, 2410, 2411, 2213, 2412, 2213, - 2413, 2213, 2414, 2213, 2415, 2213, 2416, 2416, - 2417, 2418, 2419, 2420, 2421, 2421, 2422, 2423, - 2213, 2424, 2213, 2425, 2213, 2426, 2213, 2427, - 2213, 2428, 2429, 2353, 2430, 2353, 2431, 2432, - 2353, 2433, 2433, 2434, 2435, 2437, 2438, 2439, - 2439, 2440, 2441, 2436, 2353, 2245, 2245, 2246, - 2247, 2248, 2249, 2250, 2250, 2251, 2252, 2442, - 2442, 2442, 2213, 2443, 2213, 2446, 2447, 2448, - 2449, 2450, 2446, 2447, 2448, 2449, 2450, 2445, - 2444, 2451, 2451, 2451, 2451, 2452, 2444, 2453, - 2454, 2453, 2454, 2444, 2455, 2455, 2455, 2455, - 2444, 2456, 2456, 2444, 2457, 2458, 2457, 2457, - 2457, 2444, 2459, 2459, 2444, 2460, 2460, 2444, - 2461, 2461, 2444, 2462, 2462, 2444, 2463, 2444, - 2464, 2444, 2465, 2465, 2444, 2466, 2466, 2444, - 2467, 2467, 2444, 2468, 2444, 2469, 2469, 2469, - 2469, 2444, 2470, 2471, 2470, 2471, 2444, 2472, - 2473, 2472, 2473, 2444, 2474, 2444, 2475, 2475, - 2444, 2476, 2476, 2444, 2477, 2477, 2444, 2478, - 2478, 2444, 2479, 2479, 2479, 2479, 2444, 2480, - 2480, 2444, 2481, 2481, 2444, 2482, 2482, 2444, - 2483, 2484, 2444, 2485, 2444, 2486, 2444, 2487, - 2487, 2444, 2488, 2488, 2444, 2489, 2489, 2444, - 2490, 2444, 2491, 2444, 2492, 2444, 2493, 2493, - 2493, 2493, 2444, 2494, 2444, 2495, 2444, 2496, - 2496, 2444, 2497, 2497, 2444, 2498, 2498, 2444, - 2499, 2444, 2500, 2444, 2501, 2444, 2502, 2502, - 2502, 2502, 2444, 2503, 2504, 2444, 2505, 2444, - 2506, 2444, 2507, 2444, 2508, 2444, 2509, 2509, - 2509, 2509, 2444, 2510, 2444, 2511, 2444, 2512, - 2512, 2512, 2512, 2444, 2513, 2513, 2444, 2514, - 2514, 2444, 2515, 2515, 2444, 2516, 2516, 2444, - 2517, 2517, 2444, 2518, 2518, 2444, 2519, 2519, - 2444, 2520, 2520, 2520, 2520, 2444, 2521, 2521, - 2444, 2522, 2522, 2444, 2523, 2523, 2444, 2524, - 2524, 2444, 2525, 2525, 2444, 2526, 2526, 2444, - 2527, 2528, 2527, 2528, 2444, 2529, 2529, 2444, - 2530, 2530, 2444, 2531, 2531, 2531, 2531, 2444, - 2532, 2532, 2444, 2533, 2533, 2444, 2534, 2534, - 2534, 2534, 2444, 2535, 2535, 2444, 2536, 2536, - 2444, 2537, 2538, 2537, 2538, 2444, 2539, 2539, - 2444, 2540, 2444, 2541, 2541, 2541, 2541, 2444, - 2542, 2542, 2444, 2543, 2543, 2444, 2544, 2545, - 2546, 2444, 2547, 2548, 2547, 2547, 2547, 2444, - 2549, 2549, 2444, 2550, 2550, 2444, 2551, 2551, - 2444, 2552, 2552, 2444, 2553, 2444, 2554, 2444, - 2555, 2555, 2444, 2556, 2556, 2444, 2557, 2557, - 2444, 2558, 2444, 2559, 2559, 2559, 2559, 2444, - 2560, 2444, 2561, 2444, 2562, 2562, 2562, 2562, - 2444, 2563, 2444, 2564, 2444, 2565, 2565, 2565, - 2565, 2444, 2568, 2569, 2570, 2571, 2572, 2573, - 2568, 2569, 2570, 2571, 2572, 2573, 2567, 2566, - 2574, 2574, 2574, 2574, 2575, 2566, 2576, 2576, - 2566, 2577, 2577, 2566, 2578, 2578, 2566, 2579, - 2579, 2566, 2580, 2580, 2566, 2581, 2581, 2581, - 2581, 2566, 2582, 2583, 2584, 2582, 2583, 2584, - 2566, 2585, 2585, 2566, 2586, 2586, 2566, 2587, - 2587, 2566, 2588, 2588, 2566, 2589, 2589, 2566, - 2590, 2590, 2590, 2590, 2566, 2591, 2592, 2591, - 2592, 2566, 2593, 2593, 2566, 2594, 2594, 2594, - 2594, 2566, 2595, 2595, 2566, 2596, 2596, 2566, - 2597, 2597, 2597, 2597, 2566, 2598, 2598, 2566, - 2599, 2599, 2566, 2600, 2600, 2566, 2601, 2601, - 2601, 2601, 2566, 2602, 2602, 2566, 2603, 2603, - 2566, 2604, 2604, 2604, 2604, 2566, 2605, 2606, - 2605, 2606, 2566, 2607, 2607, 2566, 2608, 2608, - 2608, 2608, 2566, 2609, 2609, 2566, 2610, 2610, - 2566, 2611, 2611, 2611, 2611, 2566, 2612, 2612, - 2566, 2613, 2613, 2566, 2614, 2614, 2566, 2615, - 2615, 2615, 2615, 2566, 2616, 2616, 2566, 2617, - 2617, 2566, 2618, 2618, 2618, 2618, 2566, 2621, - 2621, 2620, 2619, 2622, 2622, 2622, 2622, 2623, - 2619, 2624, 2624, 2619, 2625, 2625, 2619, 2626, - 2626, 2619, 2627, 2627, 2619, 2628, 2628, 2619, - 2629, 2629, 2629, 2629, 2619, 2631, 2631, 2630, - 2632, 2633, 2632, 2632, 2632, 2633, 2630, 2634, - 2634, 2634, 2634, 2634, 2634, 77, 2635, 2635, - 2635, 2635, 77, 2636, 2636, 2636, 2636, 2636, - 2636, 77, 2637, 2637, 2638, 2639, 2640, 2641, - 77, 2642, 2642, 2643, 2644, 2645, 2645, 2645, - 2646, 2647, 2645, 2645, 2645, 77, 2648, 2648, - 2649, 2650, 2651, 2652, 77, 2654, 2654, 2655, - 2656, 2658, 2659, 2657, 2653, 2660, 2660, 2661, - 2662, 2664, 2665, 2663, 2653, 2666, 2666, 2667, - 2668, 2670, 2671, 2669, 2653, 2673, 2673, 2674, - 2675, 2677, 2678, 2679, 2680, 2681, 2677, 2678, - 2679, 2680, 2681, 2682, 2683, 2676, 2672, 2684, - 2684, 2685, 2686, 2688, 2689, 2687, 2653, 2690, - 2690, 2691, 2692, 2694, 2695, 2696, 2697, 2698, - 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2693, - 2672, 2701, 2701, 2702, 2703, 2705, 2706, 2704, - 2653, 2707, 2707, 2708, 2709, 2711, 2712, 2713, - 2714, 2715, 2711, 2712, 2713, 2714, 2715, 2716, - 2717, 2710, 2672, 2718, 2718, 2719, 2720, 2722, - 2723, 2721, 2653, 2724, 2724, 2726, 2727, 2728, - 2729, 2730, 2726, 2727, 2728, 2729, 2730, 2724, - 2724, 2725, 2672, 2724, 2724, 2724, 2724, 2731, - 2672, 2733, 2734, 2735, 2736, 2737, 2733, 2734, - 2735, 2736, 2737, 2732, 2672, 2738, 2738, 2738, - 2738, 2739, 2672, 2741, 2740, 77, 2707, 2707, - 2708, 2709, 2716, 2717, 2742, 2672, 2744, 2745, - 2746, 2747, 2748, 2744, 2745, 2746, 2747, 2748, - 2743, 2672, 2749, 2749, 2750, 2751, 2753, 2754, - 2752, 2672, 2756, 2755, 77, 2690, 2690, 2691, - 2692, 2699, 2700, 2757, 2672, 2759, 2760, 2761, - 2762, 2763, 2759, 2760, 2761, 2762, 2763, 2758, - 2672, 2764, 2764, 2765, 2766, 2768, 2769, 2767, - 2672, 2771, 2770, 77, 2673, 2673, 2674, 2675, - 2682, 2683, 2772, 2672, 2774, 2775, 2776, 2777, - 2778, 2774, 2775, 2776, 2777, 2778, 2773, 2672, - 2779, 2779, 2780, 2781, 2783, 2784, 2782, 2672, - 2786, 2785, 77, 2788, 2787, 77, 2790, 2789, - 77, 77, 77, 77, 77, 2791, 2792, 2792, - 2793, 2794, 2795, 2796, 77, 2798, 2798, 2799, - 2800, 2801, 2802, 2797, 2797, 2797, 77, 2803, - 2803, 2803, 2803, 77, 2805, 2804, 77, 2806, - 2806, 2806, 2806, 2806, 2806, 77, 2807, 2807, - 2808, 2809, 2810, 2811, 77, 2812, 2812, 2813, - 2814, 2815, 2815, 2815, 2816, 2817, 2815, 2815, - 2815, 77, 2818, 2818, 2818, 2818, 77, 2820, - 2819, 77, 2821, 2653, 2822, 2822, 2823, 2824, - 2826, 2827, 2825, 2653, 2828, 2828, 2829, 2830, - 2831, 2831, 2831, 2832, 2833, 2831, 2831, 2831, - 77, 2834, 2834, 2834, 2834, 77, 2836, 2835, - 77, 2838, 2838, 2838, 2838, 2837, 2839, 2839, - 2840, 2841, 2842, 2843, 2844, 2844, 2845, 2846, - 2838, 2848, 2848, 2849, 2850, 2851, 2852, 2853, - 2853, 2854, 2855, 2847, 2847, 2847, 2838, 2857, - 2856, 2838, 2858, 2858, 2858, 2858, 2630, 2859, - 2860, 2859, 2859, 2859, 2860, 2860, 2860, 2630, - 2862, 2861, 2863, 2863, 2864, 2865, 2867, 2868, - 2866, 2861, 2869, 2869, 2870, 2871, 2873, 2874, - 2875, 2876, 2872, 2861, 2877, 2877, 2878, 2879, - 2881, 2882, 2880, 2861, 2883, 2883, 2884, 2885, - 2873, 2874, 2887, 2888, 2886, 2861, 2889, 2889, - 2890, 2891, 2892, 2894, 2895, 2893, 2861, 2896, - 2896, 2897, 2898, 2873, 2874, 2899, 2900, 2861, - 2901, 2901, 2902, 2903, 2904, 2905, 2861, 2901, - 2901, 2902, 2903, 2904, 2905, 2906, 2861, 2907, - 2907, 2908, 2909, 2911, 2912, 2910, 2861, 2913, - 2913, 2914, 2915, 2917, 2918, 2919, 2920, 2916, - 2861, 2921, 2921, 2922, 2923, 2925, 2926, 2924, - 2861, 2927, 2927, 2928, 2929, 2917, 2918, 2931, - 2932, 2930, 2861, 2933, 2933, 2934, 2935, 2936, - 2938, 2939, 2937, 2861, 2940, 2940, 2941, 2942, - 2917, 2918, 2943, 2944, 2861, 2945, 2945, 2946, - 2947, 2948, 2949, 2861, 2945, 2945, 2946, 2947, - 2950, 2948, 2949, 2951, 2861, 2952, 2861, 2953, - 2953, 2954, 2955, 2956, 2958, 2959, 2960, 2961, - 2961, 2962, 2963, 2957, 2861, 2964, 2964, 2965, - 2966, 2968, 2969, 2970, 2970, 2971, 2972, 2967, - 2861, 2973, 2973, 2974, 2975, 2976, 2978, 2979, - 2980, 2981, 2981, 2982, 2983, 2977, 2861, 2984, - 2984, 2985, 2986, 2988, 2989, 2970, 2970, 2990, - 2991, 2987, 2861, 2992, 2992, 2993, 2994, 2995, - 2997, 2998, 2999, 3000, 3000, 3001, 3002, 2996, - 2861, 3003, 3003, 3004, 3005, 3007, 3008, 2970, - 2970, 3009, 3010, 3006, 2861, 3011, 3011, 3012, - 3013, 3014, 3011, 3016, 3017, 3018, 3018, 3019, - 3020, 3015, 2861, 3021, 3021, 3022, 3023, 3024, - 3025, 2970, 2970, 3026, 3027, 2861, 3029, 3028, - 2861, 3030, 3030, 3031, 3032, 3030, 3034, 3035, - 3036, 3036, 3037, 3038, 3033, 2861, 3011, 3011, - 3012, 3013, 3011, 3016, 3017, 3018, 3018, 3019, - 3020, 3039, 2861, 3041, 3040, 2861, 3042, 3042, - 3043, 3044, 3046, 3047, 3048, 3049, 3049, 3050, - 3051, 3045, 2861, 2992, 2992, 2993, 2994, 2997, - 2998, 2999, 3000, 3000, 3001, 3002, 3052, 2861, - 3003, 3003, 3004, 3005, 3007, 3008, 2970, 2970, - 3009, 3010, 2861, 3054, 3053, 2861, 3055, 3055, - 3056, 3057, 3059, 3060, 3061, 3062, 3062, 3063, - 3064, 3058, 2861, 2973, 2973, 2974, 2975, 2978, - 2979, 2980, 2981, 2981, 2982, 2983, 3065, 2861, - 2984, 2984, 2985, 2986, 2988, 2989, 2970, 2970, - 2990, 2991, 2861, 3067, 3066, 2861, 3068, 3068, - 3069, 3070, 3072, 3073, 3074, 3075, 3075, 3076, - 3077, 3071, 2861, 2953, 2953, 2954, 2955, 2958, - 2959, 2960, 2961, 2961, 2962, 2963, 3078, 2861, - 2964, 2964, 2965, 2966, 2968, 2969, 2970, 2970, - 2971, 2972, 2861, 3080, 3079, 2861, 3081, 3081, - 3082, 3083, 3084, 3085, 2861, 3087, 3086, 2861, - 3088, 3088, 3089, 3090, 3092, 3093, 3091, 2861, - 2933, 2933, 2934, 2935, 2938, 2939, 3094, 2861, - 3096, 3095, 2861, 3098, 3097, 2861, 3100, 3099, - 2861, 3101, 3101, 3102, 3103, 3104, 3105, 2861, - 3107, 3106, 2861, 3108, 3108, 3109, 3110, 3112, - 3113, 3111, 2861, 2889, 2889, 2890, 2891, 2894, - 2895, 3114, 2861, 3116, 3115, 2861, 3118, 3117, - 2861, 3119, 2653, 3120, 3120, 3121, 3122, 3124, - 3125, 3123, 2653, 3126, 3126, 3127, 3128, 3130, - 3131, 3129, 2653, 3132, 3132, 3133, 3134, 3136, - 3137, 3135, 2653, 3138, 3138, 3139, 3140, 3142, - 3143, 3141, 2653, 3144, 3144, 3145, 3146, 3148, - 3149, 3147, 2653, 3150, 3150, 3151, 3152, 3153, - 3153, 3153, 3154, 3155, 3153, 3153, 3153, 77, - 3156, 3156, 3156, 3156, 77, 3158, 3157, 77, - 3160, 3159, 77, 3162, 3161, 77, 3163, 2653, - 3164, 3164, 3165, 3166, 3168, 3169, 3167, 2653, - 3170, 3170, 3171, 3172, 3174, 3175, 3173, 2653, - 3176, 3176, 3177, 3178, 3180, 3181, 3179, 2653, - 3183, 3183, 3184, 3185, 3186, 3187, 3182, 3182, - 3182, 77, 3188, 3188, 3189, 3190, 3191, 3192, - 77, 3194, 3194, 3195, 3196, 3197, 3198, 3193, - 3193, 3193, 77, 3199, 3199, 3200, 3201, 3202, - 3203, 77, 3205, 3205, 3206, 3207, 3208, 3209, - 3204, 3204, 3204, 77, 3210, 3210, 3211, 3212, - 3213, 3214, 77, 3215, 3215, 3216, 3217, 3218, - 3218, 3218, 3219, 3220, 3218, 3218, 3218, 77, - 3221, 3221, 3221, 3221, 77, 3223, 3222, 77, - 3225, 3224, 77, 3227, 3226, 77, 3229, 3228, - 77, 3231, 3230, 77, 3232, 3232, 3232, 77, - 3233, 3233, 3234, 3235, 3236, 3237, 77, 3233, - 3233, 3234, 3235, 3236, 3237, 3238, 2653, 3239, - 3239, 3240, 3241, 3243, 3244, 3242, 2653, 3245, - 3245, 3246, 3247, 3249, 3250, 3248, 3248, 3248, - 77, 3251, 3251, 3252, 3253, 3254, 3255, 77, - 3251, 3251, 3252, 3253, 3256, 3254, 3255, 3256, - 3256, 3256, 77, 3257, 3257, 77, 3259, 3258, - 77, 3261, 3260, 77, 3263, 3262, 77, 3265, - 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, - 3273, 3273, 3274, 3275, 3264, 3276, 3277, 3264, - 3278, 3264, 3280, 3280, 3279, 3282, 3281, 3279, - 3283, 3264, 3284, 3284, 3285, 3286, 3288, 3289, - 3290, 3290, 3291, 3292, 3287, 3264, 3294, 3293, - 77, 3295, 3264, 3296, 3296, 3296, 3296, 3279, - 3298, 3297, 3297, 3297, 3279, 3299, 2653, 3300, - 3300, 3301, 3302, 3304, 3305, 3303, 2653, 3306, - 3306, 3307, 3308, 3310, 3311, 3309, 3309, 3309, - 77, 3312, 3312, 3313, 3314, 3315, 3316, 77, - 3312, 3312, 3313, 3314, 3315, 3316, 3317, 2653, - 3318, 3318, 3319, 3320, 3322, 3323, 3321, 2653, - 3325, 3325, 3326, 3327, 3329, 3330, 3328, 3328, - 3328, 3324, 3331, 3331, 3331, 3324, 3332, 3332, - 3333, 3334, 3335, 3336, 3337, 3337, 3338, 3339, - 3328, 3328, 3328, 3324, 3341, 3340, 3324, 3343, - 3342, 77, 3345, 3344, 77, 3347, 3346, 77, - 3348, 2653, 3349, 3349, 3350, 3351, 3353, 3354, - 3352, 2653, 3355, 3355, 3356, 3357, 3359, 3360, - 3358, 2653, 3361, 3361, 3362, 3363, 3365, 3366, - 3364, 2653, 3367, 3367, 3368, 3369, 3371, 3372, - 3370, 3370, 3370, 3324, 3373, 3373, 3373, 3324, - 3374, 3374, 3375, 3376, 3377, 3378, 3379, 3379, - 3380, 3381, 3370, 3370, 3370, 3324, 3383, 3382, - 3324, 3385, 3384, 77, 3387, 3386, 77, 3388, - 2653, 3389, 3389, 3390, 3391, 3393, 3394, 3392, - 2653, 3396, 3396, 3397, 3398, 3399, 3400, 3401, - 3402, 3403, 3404, 3395, 3405, 3405, 3406, 3407, - 3408, 3409, 3395, 3405, 3405, 3406, 3407, 3408, - 3409, 3411, 3410, 3412, 3412, 3413, 3414, 3416, - 3417, 3415, 3410, 3418, 3418, 3419, 3420, 3421, - 3422, 3423, 3395, 3425, 3425, 3426, 3427, 3428, - 3428, 3429, 3430, 3431, 3431, 3432, 3433, 3434, - 3434, 3434, 3434, 3435, 3436, 3434, 3434, 3437, - 3438, 3439, 3440, 3434, 3434, 3441, 3442, 3443, - 3444, 3434, 3434, 3445, 3446, 3424, 3425, 3425, - 3426, 3427, 3448, 3435, 3436, 3448, 3448, 3448, - 3447, 3434, 3434, 3447, 3450, 3449, 3447, 3428, - 3428, 3429, 3430, 3434, 3434, 3434, 3434, 3439, - 3440, 3434, 3434, 3441, 3442, 3447, 3452, 3451, - 3447, 3448, 3425, 3425, 3426, 3427, 3428, 3428, - 3429, 3430, 3431, 3431, 3432, 3433, 3434, 3434, - 3434, 3434, 3435, 3436, 3434, 3434, 3437, 3438, - 3439, 3440, 3434, 3434, 3441, 3442, 3443, 3444, - 3434, 3434, 3445, 3446, 3448, 3448, 3448, 3447, - 3450, 3452, 3454, 3449, 3451, 3453, 3447, 3456, - 3455, 3395, 3458, 3457, 3395, 3459, 3459, 3460, - 3461, 3462, 3463, 3395, 3459, 3459, 3460, 3461, - 3462, 3463, 3464, 3410, 3465, 3465, 3466, 3467, - 3469, 3470, 3468, 3410, 3472, 3472, 3473, 3474, - 3475, 3476, 3477, 3475, 3471, 3479, 3480, 3480, - 3481, 3482, 3483, 3483, 3484, 3485, 3486, 3486, - 3487, 3488, 3489, 3489, 3489, 3489, 3490, 3491, - 3489, 3489, 3492, 3493, 3494, 3495, 3489, 3489, - 3496, 3497, 3498, 3499, 3489, 3489, 3500, 3501, - 3479, 3478, 3503, 3502, 3395, 3505, 3504, 3395, - 3506, 3506, 3507, 3508, 3509, 3510, 3395, 3506, - 3506, 3507, 3508, 3509, 3510, 3511, 3410, 3512, - 3512, 3513, 3514, 3516, 3517, 3515, 3410, 3518, - 3518, 3519, 3520, 3521, 3522, 3523, 3521, 3521, - 3521, 3471, 3524, 3525, 3525, 3526, 3527, 3528, - 3528, 3529, 3530, 3531, 3531, 3532, 3533, 3534, - 3534, 3534, 3534, 3535, 3536, 3534, 3534, 3537, - 3538, 3539, 3540, 3534, 3534, 3541, 3542, 3543, - 3544, 3534, 3534, 3545, 3546, 3524, 3524, 3524, - 3478, 3548, 3547, 3395, 3550, 3549, 3395, 3551, - 3551, 3552, 3553, 3554, 3555, 3395, 3551, 3551, - 3552, 3553, 3554, 3555, 3556, 3410, 3557, 3557, - 3558, 3559, 3561, 3562, 3560, 3410, 3563, 3563, - 3564, 3565, 3566, 3566, 3566, 3567, 3568, 3566, - 3566, 3566, 3395, 3569, 3569, 3570, 3571, 3572, - 3572, 3573, 3574, 3575, 3575, 3576, 3577, 3578, - 3578, 3578, 3578, 3579, 3580, 3578, 3578, 3581, - 3582, 3583, 3584, 3578, 3578, 3585, 3586, 3587, - 3588, 3578, 3578, 3589, 3590, 3424, 3592, 3591, - 3395, 3594, 3593, 3395, 3596, 3595, 77, 3597, - 3597, 3597, 77, 3598, 3598, 3599, 3600, 3601, - 3602, 77, 3598, 3598, 3599, 3600, 3601, 3602, - 3603, 3603, 3603, 77, 3604, 3604, 3605, 3606, - 3607, 3608, 77, 3604, 3604, 3605, 3606, 3607, - 3608, 3609, 2653, 3610, 3610, 3611, 3612, 3614, - 3615, 3613, 2653, 3616, 3616, 3617, 3618, 3620, - 3621, 3619, 2653, 3622, 3622, 3623, 3624, 3626, - 3627, 3625, 2653, 3629, 3629, 3630, 3631, 3633, - 3634, 3632, 3628, 3635, 3635, 3636, 3637, 3639, - 3640, 3638, 3628, 3641, 3641, 3642, 3643, 3645, - 3646, 3644, 3628, 3647, 3647, 3648, 3649, 3651, - 3652, 3650, 3628, 3653, 3653, 3654, 3655, 3657, - 3658, 3656, 2653, 3659, 3659, 3660, 3661, 3663, - 3664, 3662, 2653, 3665, 3665, 3666, 3667, 3668, - 3668, 3668, 3669, 3670, 3668, 3668, 3668, 77, - 3671, 3671, 3672, 3673, 3674, 3675, 77, 3676, - 3676, 3677, 3678, 3679, 3680, 3681, 3679, 3679, - 3679, 77, 3682, 3682, 77, 3684, 3683, 77, - 3686, 3685, 77, 3688, 3687, 77, 3690, 3689, - 77, 3692, 3691, 77, 3694, 3693, 77, 3696, - 3695, 77, 3698, 3697, 77, 3699, 3699, 3699, - 3699, 3699, 3699, 77, 3700, 3700, 3700, 3700, - 77, 3701, 3701, 3701, 3701, 77, 3702, 2653, - 3703, 3703, 3704, 3705, 3707, 3708, 3706, 2653, - 3709, 3709, 3710, 3711, 3713, 3714, 3712, 2653, - 3715, 3715, 3716, 3717, 3719, 3720, 3718, 2653, - 3721, 3721, 3722, 3723, 3725, 3726, 3724, 3724, - 3724, 77, 3727, 3727, 3728, 3729, 3730, 3731, - 77, 3727, 3727, 3728, 3729, 3732, 3730, 3731, - 3732, 3732, 3732, 77, 3733, 3733, 77, 3735, - 3734, 77, 3737, 3736, 77, 3739, 3738, 77, - 3740, 3740, 3740, 3740, 77, 3741, 3741, 77, - 3742, 2653, 3743, 3743, 3744, 3745, 3747, 3748, - 3746, 2653, 3749, 3749, 3750, 3751, 3753, 3754, - 3752, 2653, 3755, 3755, 3756, 3757, 3759, 3760, - 3758, 2653, 3761, 3761, 3762, 3763, 3765, 3766, - 3764, 2653, 3767, 3767, 3768, 3769, 3771, 3772, - 3770, 2653, 3773, 3773, 3774, 3775, 3776, 3778, - 3779, 3777, 3777, 3777, 3324, 3780, 3780, 3781, - 3782, 3783, 3784, 3324, 3786, 3786, 3787, 3788, - 3790, 3791, 3789, 3789, 3789, 3785, 3792, 3792, - 3792, 3785, 3794, 3793, 3793, 3793, 3785, 3795, - 3795, 3795, 3785, 3797, 3796, 3796, 3796, 3785, - 3799, 3798, 3798, 3798, 3785, 3800, 3800, 3800, - 3785, 3802, 3801, 3801, 3801, 3785, 3803, 3803, - 3803, 3803, 3804, 3804, 3804, 3785, 3805, 3805, - 3805, 3805, 77, 3806, 3785, 3802, 3785, 3799, - 3785, 3807, 3785, 3797, 3785, 3809, 3808, 77, - 3810, 3810, 3810, 3324, 3780, 3780, 3781, 3782, - 3783, 3784, 3811, 3811, 3811, 3324, 3813, 3812, - 77, 3815, 3814, 77, 3817, 3816, 77, 3818, - 2653, 3819, 3819, 3820, 3821, 3823, 3824, 3822, - 2653, 3825, 3825, 3826, 3827, 3829, 3830, 3828, - 2653, 3831, 3831, 3832, 3833, 3835, 3836, 3834, - 2653, 3837, 3837, 3838, 3839, 3841, 3842, 3840, - 2653, 3843, 3843, 3844, 3845, 3847, 3848, 3846, - 2653, 3849, 3849, 3850, 3851, 3852, 3854, 3855, - 3853, 3853, 3853, 3324, 3856, 3856, 3856, 3856, - 3324, 3857, 3857, 3857, 3324, 3856, 3856, 3856, - 3856, 3858, 3858, 3858, 3324, 3860, 3859, 77, - 3862, 3861, 77, 3864, 3863, 77, 3865, 2653, - 3866, 3866, 3867, 3868, 3870, 3871, 3869, 2653, - 3872, 3872, 3873, 3874, 3876, 3877, 3875, 2653, - 3878, 3878, 3879, 3880, 3882, 3883, 3881, 2653, - 3884, 3884, 3885, 3886, 3888, 3889, 3887, 2653, - 3890, 3890, 3891, 3892, 3894, 3895, 3893, 2653, - 3896, 3896, 3897, 3898, 3900, 3901, 3899, 3899, - 3899, 3324, 3902, 3902, 3902, 3324, 3903, 3903, - 3904, 3905, 3906, 3907, 3908, 3908, 3909, 3910, - 3899, 3899, 3899, 3324, 3912, 3911, 3324, 3914, - 3913, 77, 3916, 3915, 77, 3918, 3917, 77, - 3919, 2653, 3920, 3920, 3921, 3922, 3924, 3925, - 3923, 2653, 3926, 3926, 3927, 3928, 3930, 3931, - 3929, 2653, 3932, 3932, 3932, 3932, 3933, 2653, - 3934, 3934, 3934, 3934, 77, 3936, 3935, 77, - 3937, 2653, 3938, 3938, 3939, 3940, 3942, 3943, - 3941, 2653, 3944, 3944, 3945, 3946, 3948, 3949, - 3947, 2653, 3950, 3950, 3951, 3952, 3954, 3955, - 3953, 2653, 3956, 3956, 3957, 3958, 3960, 3961, - 3959, 2653, 3962, 3962, 3963, 3964, 3966, 3967, - 3965, 2653, 3968, 3968, 3969, 3970, 3972, 3973, - 3971, 3971, 3971, 3324, 3974, 3974, 3974, 3324, - 3975, 3975, 3976, 3977, 3978, 3979, 3980, 3980, - 3981, 3982, 3971, 3971, 3971, 3324, 3984, 3983, - 3324, 3986, 3985, 77, 3988, 3987, 77, 3990, - 3989, 77, 3991, 2653, 3992, 3992, 3993, 3994, - 3996, 3997, 3995, 2653, 3998, 3998, 3999, 4000, - 4001, 4002, 4003, 4001, 2630, 4004, 4005, 4004, - 4004, 4004, 4005, 2630, 4007, 4006, 77, 4008, - 2653, 4009, 4009, 4010, 4011, 4013, 4014, 4012, - 2653, 4015, 4015, 4016, 4017, 4019, 4020, 4018, - 4018, 4018, 3324, 4021, 4021, 4021, 3324, 4022, - 4022, 4022, 3324, 4023, 4023, 4023, 3324, 4025, - 4024, 4026, 4026, 4026, 3324, 4027, 4027, 4027, - 3324, 4028, 4028, 4028, 3324, 4029, 4029, 4029, - 3324, 4031, 4025, 4031, 4031, 4031, 4030, 4033, - 4032, 77, 4034, 4034, 4034, 3324, 4035, 4035, - 4035, 3324, 4037, 4036, 4038, 4038, 4038, 3324, - 4039, 4039, 4039, 3324, 4040, 4037, 4040, 4040, - 4040, 4036, 4041, 4041, 4041, 3324, 4042, 4042, - 4042, 3324, 4043, 4036, 4044, 4044, 4044, 3324, - 4045, 4045, 4045, 3324, 4046, 4043, 4046, 4046, - 4046, 4036, 4047, 2653, 4048, 4048, 4049, 4050, - 4052, 4053, 4051, 2653, 4054, 4054, 4055, 4056, - 4058, 4059, 4057, 2653, 4060, 4060, 4061, 4062, - 4064, 4065, 4063, 2653, 4067, 4067, 4068, 4069, - 4070, 4071, 4066, 4066, 4066, 77, 4072, 4072, - 4072, 4072, 77, 4074, 4073, 77, 4076, 4075, - 77, 4077, 2653, 4078, 4078, 4079, 4080, 4082, - 4083, 4081, 2653, 4085, 4085, 4086, 4087, 4088, - 4089, 4084, 4084, 4084, 77, 4090, 4090, 4091, - 4092, 4093, 4094, 77, 4096, 4096, 4097, 4098, - 4099, 4100, 4095, 4095, 4095, 77, 4101, 4101, - 4101, 4101, 77, 4103, 4102, 77, 4105, 4104, - 77, 4106, 2653, 4107, 4107, 4108, 4109, 4111, - 4112, 4110, 2653, 4113, 4113, 4114, 4115, 4116, - 4116, 4116, 4117, 4118, 4116, 4116, 4116, 77, - 4119, 4119, 4119, 4119, 77, 4120, 4120, 4120, - 4120, 77, 4122, 4121, 77, 4123, 4123, 4123, - 77, 4124, 4124, 4125, 4126, 4127, 4128, 77, - 4124, 4124, 4125, 4126, 4127, 4128, 4129, 4129, - 4129, 77, 4130, 4130, 4131, 4132, 4133, 4134, - 77, 4130, 4130, 4131, 4132, 4133, 4134, 4135, - 2653, 4136, 4136, 4137, 4138, 4140, 4141, 4139, - 2653, 4142, 4142, 4143, 4144, 4145, 4145, 4145, - 4146, 4147, 4145, 4145, 4145, 77, 4148, 4148, - 4148, 4148, 77, 4150, 4149, 77, 4152, 4151, - 77, 4154, 4153, 77, 4156, 4156, 4157, 4158, - 4159, 4160, 4160, 4160, 4161, 4162, 4163, 4164, - 4160, 4160, 4160, 4155, 4165, 4165, 4166, 4167, - 4168, 4169, 75, 4170, 4169, 4161, 4162, 4171, - 4172, 4173, 4174, 4175, 4176, 75, 75, 4169, - 75, 4169, 75, 4169, 75, 900, 4178, 4178, - 4157, 4179, 4180, 4160, 4181, 4182, 4183, 4184, - 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, - 4193, 4194, 4195, 4196, 4197, 4198, 4160, 4160, - 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, - 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, - 4197, 4198, 4161, 4162, 4199, 4200, 4160, 4160, - 4160, 4177, 4178, 4178, 4157, 4179, 4180, 4160, - 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, - 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, - 4219, 4220, 4160, 4160, 4203, 4204, 4205, 4206, - 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, - 4215, 4216, 4217, 4218, 4219, 4220, 4161, 4162, - 4199, 4200, 4160, 4202, 4160, 4160, 4201, 4222, - 4222, 4223, 4224, 4225, 4226, 4226, 4226, 4227, - 4228, 4229, 4230, 4226, 4226, 4226, 4221, 4156, - 4156, 4157, 4231, 4232, 4160, 4203, 4204, 4205, - 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, - 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4160, - 4160, 4203, 4204, 4205, 4206, 4207, 4208, 4209, - 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, - 4218, 4219, 4220, 4161, 4162, 4233, 4234, 4160, - 4202, 4160, 4160, 4201, 4235, 4235, 4157, 4236, - 4237, 4160, 4160, 4160, 89, 90, 4238, 4239, - 4160, 4160, 4160, 900, 4240, 4240, 4166, 4241, - 4242, 4169, 75, 4170, 4169, 89, 90, 4238, - 4243, 107, 108, 4238, 4244, 75, 75, 4169, - 75, 4169, 75, 4169, 75, 900, 4165, 4165, - 4166, 4167, 4168, 4169, 75, 4247, 4248, 4249, - 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, - 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4170, - 4169, 4247, 4248, 4249, 4250, 4251, 4252, 4253, - 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, - 4262, 4263, 4264, 4161, 4162, 4171, 4172, 4173, - 4174, 4175, 4176, 75, 75, 4169, 4246, 75, - 4169, 75, 4169, 75, 4245, 4240, 4240, 4166, - 4241, 4242, 4169, 75, 4247, 4248, 4249, 4250, - 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, - 4259, 4260, 4261, 4262, 4263, 4264, 4170, 4169, - 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, - 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, - 4263, 4264, 89, 90, 4265, 4243, 107, 108, - 4265, 4244, 75, 75, 4169, 4246, 75, 4169, - 75, 4169, 75, 4245, 807, 807, 807, 807, - 1065, 1066, 1065, 1068, 1065, 1066, 1067, 1066, - 1061, 807, 807, 807, 1223, 1223, 1224, 1225, - 1192, 1193, 1194, 1192, 1226, 1227, 1192, 1192, - 1192, 1198, 807, 1238, 1238, 1239, 1240, 1233, - 1241, 1242, 1243, 1243, 1244, 1245, 1233, 1233, - 1233, 1232, 1247, 1246, 1232, 807, 807, 1481, - 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, - 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, - 1497, 1498, 1499, 1500, 1501, 1484, 1485, 1486, - 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, - 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, - 1503, 1504, 1504, 1505, 1506, 1472, 1529, 1528, - 1472, 807, 2092, 2092, 2093, 2094, 2095, 2096, - 2097, 2097, 2098, 2099, 2088, 2088, 2088, 2084, - 2101, 2100, 2084, 2120, 2120, 2121, 2122, 2124, - 2125, 2123, 2123, 2123, 2084, 2070, 2127, 2127, + 164, 813, 814, 1039, 810, 810, 811, 812, + 236, 237, 238, 236, 237, 238, 813, 814, + 1039, 810, 810, 811, 812, 292, 292, 813, + 814, 1039, 810, 810, 811, 812, 314, 315, + 314, 315, 813, 814, 1039, 810, 810, 811, + 812, 740, 339, 740, 339, 813, 814, 1039, + 810, 810, 811, 812, 382, 383, 382, 383, + 813, 814, 1039, 810, 810, 811, 812, 401, + 402, 403, 404, 403, 404, 813, 814, 1039, + 810, 810, 811, 812, 440, 441, 440, 441, + 813, 814, 1039, 810, 810, 811, 812, 461, + 462, 463, 461, 462, 463, 813, 814, 1039, + 810, 810, 811, 812, 524, 524, 813, 814, + 1039, 810, 810, 811, 812, 541, 541, 813, + 814, 1039, 810, 810, 811, 812, 551, 552, + 553, 554, 551, 552, 553, 554, 813, 814, + 1039, 810, 810, 811, 812, 595, 596, 597, + 598, 599, 600, 595, 596, 597, 598, 599, + 600, 813, 814, 1039, 810, 810, 811, 812, + 661, 662, 663, 661, 662, 663, 813, 814, + 1039, 810, 810, 811, 812, 697, 697, 813, + 814, 1039, 810, 810, 811, 812, 707, 707, + 813, 814, 1039, 810, 810, 811, 812, 720, + 720, 813, 814, 1039, 797, 1041, 796, 1040, + 91, 797, 1043, 796, 1042, 154, 810, 810, + 811, 812, 338, 339, 338, 339, 813, 814, + 1039, 98, 1045, 97, 1044, 154, 1047, 1048, + 1049, 1046, 1046, 1046, 821, 1051, 1050, 1053, + 1052, 1055, 1056, 1057, 1058, 1055, 1055, 1055, + 1055, 1054, 1059, 1060, 1061, 1059, 1062, 1060, + 1059, 1059, 1060, 1060, 1060, 1054, 1063, 1064, + 1064, 1063, 1065, 1064, 1063, 1063, 1064, 1064, + 1064, 1054, 1066, 1060, 1068, 1067, 1069, 1067, + 1070, 1071, 1072, 1070, 1073, 1071, 1070, 1070, + 1071, 1071, 1071, 1067, 1063, 1063, 1063, 1063, + 1054, 1074, 1074, 1074, 1074, 1054, 1077, 1078, + 1076, 1076, 1075, 1079, 1080, 1079, 1082, 1079, + 1080, 1081, 1080, 1075, 1076, 1084, 1076, 1083, + 1085, 1083, 1086, 1083, 1087, 1088, 1087, 1090, + 1087, 1088, 1089, 1088, 1083, 1091, 1091, 1093, + 1091, 1094, 1091, 1092, 1075, 1095, 1095, 1097, + 1095, 1098, 1095, 1096, 1075, 1100, 1100, 1100, + 1100, 1099, 1092, 1101, 1092, 1083, 1102, 1083, + 1103, 1083, 1104, 1104, 1106, 1104, 1107, 1104, + 1105, 1083, 1109, 1109, 1110, 1111, 1112, 1113, + 1108, 1109, 1109, 1110, 1111, 1112, 1113, 1115, + 1114, 1117, 1117, 1118, 1119, 1121, 1122, 1123, + 1124, 1125, 1121, 1122, 1123, 1124, 1125, 1126, + 1127, 1126, 1127, 1120, 1116, 1129, 1129, 1130, + 1131, 1132, 1133, 1132, 1133, 1128, 1135, 1134, + 1117, 1117, 1118, 1119, 1126, 1127, 1126, 1127, + 1136, 1116, 1139, 1140, 1141, 1142, 1143, 1139, + 1140, 1141, 1142, 1143, 1138, 1137, 1144, 1144, + 1145, 1146, 1148, 1149, 1148, 1149, 1147, 1116, + 1151, 1150, 1108, 1153, 1153, 1154, 1155, 1156, + 1157, 1152, 1153, 1153, 1154, 1155, 1158, 1159, + 1160, 1158, 1156, 1157, 1158, 1158, 1158, 1152, + 1161, 1162, 1163, 1161, 1161, 1161, 1161, 1152, + 1165, 1165, 1166, 1167, 1168, 1168, 1169, 1168, + 1170, 1171, 1170, 1171, 1168, 1168, 1168, 1164, + 1172, 1172, 1173, 1174, 1175, 1176, 1175, 1176, + 1164, 1178, 1177, 1179, 1161, 1181, 1180, 1182, + 1180, 1183, 1184, 1185, 1183, 1183, 1183, 1183, + 1180, 1165, 1165, 1166, 1167, 1170, 1171, 1170, + 1171, 1164, 1187, 1186, 1152, 1188, 1188, 1189, + 1190, 1191, 1192, 821, 1188, 1188, 1189, 1190, + 1191, 1192, 1193, 1193, 1193, 1194, 1196, 1196, + 1197, 1198, 1199, 1200, 1199, 1201, 1195, 1203, + 1203, 1204, 1205, 1206, 1207, 1208, 1206, 1209, + 1210, 1209, 1211, 1206, 1206, 1206, 1202, 1213, + 1214, 1215, 1213, 1213, 1213, 1213, 1212, 1216, + 1216, 1217, 1218, 1219, 1219, 1220, 1219, 1221, + 1222, 1221, 1222, 1219, 1219, 1219, 1202, 1223, + 1223, 1224, 1225, 1209, 1210, 1209, 1210, 91, + 1227, 1226, 1228, 1213, 1230, 1229, 1231, 1229, + 1232, 1233, 1234, 1232, 1232, 1232, 1232, 1229, + 1216, 1216, 1217, 1218, 1221, 1222, 1221, 1222, + 1202, 1227, 1236, 1226, 1235, 91, 1237, 1237, + 1238, 1239, 1206, 1207, 1208, 1206, 1240, 1241, + 1206, 1206, 1206, 1212, 1243, 1242, 821, 1245, + 1244, 821, 1247, 1247, 1247, 1247, 1246, 1248, + 1248, 1248, 1248, 1246, 1249, 1250, 1249, 1249, + 1249, 1246, 1251, 1252, 1251, 1251, 1251, 1246, + 1252, 1252, 1253, 1254, 1247, 1255, 1256, 1257, + 1257, 1258, 1259, 1247, 1247, 1247, 1246, 1261, + 1260, 1246, 1252, 1246, 1263, 1264, 1265, 1266, + 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, + 1275, 1276, 1277, 1278, 1279, 1280, 1263, 1264, + 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, + 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1262, 1281, 1281, 1282, 1283, 1284, 1282, 1283, + 1284, 1281, 1281, 1262, 1285, 1285, 1262, 1286, + 1286, 1262, 1287, 1287, 1287, 1287, 1262, 1288, + 1288, 1262, 1289, 1289, 1262, 1290, 1290, 1262, + 1291, 1291, 1291, 1291, 1262, 1292, 1292, 1262, + 1293, 1293, 1293, 1293, 1262, 1294, 1295, 1296, + 1297, 1298, 1294, 1295, 1296, 1297, 1298, 1262, + 1299, 1299, 1262, 1300, 1300, 1300, 1300, 1262, + 1301, 1302, 1301, 1302, 1262, 1303, 1303, 1262, + 1304, 1304, 1262, 1305, 1305, 1262, 1306, 1306, + 1262, 1307, 1307, 1307, 1307, 1262, 1308, 1308, + 1308, 1308, 1262, 1309, 1309, 1262, 1310, 1310, + 1262, 1311, 1311, 1311, 1311, 1262, 1312, 1312, + 1262, 1313, 1313, 1262, 1314, 1314, 1262, 1315, + 1315, 1315, 1315, 1262, 1316, 1316, 1262, 1317, + 1317, 1262, 1318, 1318, 1262, 1319, 1319, 1319, + 1319, 1262, 1320, 1321, 1322, 1320, 1321, 1322, + 1262, 1323, 1323, 1262, 1324, 1324, 1262, 1325, + 1325, 1262, 1326, 1326, 1326, 1326, 1262, 1327, + 1328, 1327, 1328, 1262, 1329, 1329, 1262, 1330, + 1330, 1262, 1331, 1331, 1331, 1331, 1262, 1332, + 1332, 1262, 1333, 1333, 1262, 1334, 1334, 1262, + 1335, 1335, 1335, 1335, 1262, 1336, 1336, 1337, + 1337, 1336, 1336, 1262, 1338, 1338, 1262, 1339, + 1339, 1262, 1340, 1340, 1340, 1340, 1262, 1341, + 1341, 1262, 1342, 1342, 1262, 1343, 1344, 1262, + 1345, 1262, 1346, 1346, 1346, 1346, 1262, 1347, + 1262, 1348, 1348, 1348, 1348, 1262, 1349, 1350, + 1349, 1350, 1262, 1351, 1351, 1262, 1352, 1352, + 1262, 1353, 1353, 1262, 1354, 1354, 1354, 1354, + 1262, 1355, 1355, 1262, 1356, 1356, 1262, 1357, + 1357, 1262, 1358, 1358, 1358, 1358, 1262, 1359, + 1359, 1262, 1360, 1360, 1262, 1361, 1361, 1262, + 1362, 1362, 1262, 1363, 1363, 1262, 1364, 1364, + 1262, 1365, 1365, 1262, 1366, 1366, 1366, 1366, + 1262, 1367, 1368, 1367, 1368, 1262, 1369, 1369, + 1262, 1370, 1370, 1370, 1370, 1262, 1371, 1371, + 1371, 1371, 1262, 1372, 1373, 1374, 1375, 1374, + 1375, 1262, 1376, 1262, 1377, 1377, 1377, 1377, + 1262, 1378, 1262, 1379, 1379, 1379, 1379, 1262, + 1380, 1380, 1262, 1381, 1381, 1381, 1381, 1262, + 1382, 1382, 1382, 1382, 1262, 1383, 1384, 1383, + 1384, 1262, 1385, 1385, 1262, 1386, 1386, 1262, + 1387, 1387, 1262, 1388, 1388, 1388, 1388, 1262, + 1389, 1389, 1389, 1389, 1262, 1390, 1391, 1392, + 1390, 1391, 1392, 1262, 1393, 1393, 1262, 1394, + 1394, 1262, 1395, 1395, 1262, 1396, 1396, 1396, + 1396, 1262, 1397, 1397, 1262, 1398, 1398, 1398, + 1398, 1262, 1399, 1399, 1400, 1400, 1399, 1399, + 1262, 1401, 1401, 1262, 1402, 1403, 1402, 1402, + 1402, 1262, 1404, 1404, 1405, 1405, 1404, 1404, + 1262, 1406, 1406, 1262, 1407, 1407, 1262, 1408, + 1408, 1262, 1409, 1409, 1262, 1410, 1410, 1410, + 1410, 1262, 1411, 1411, 1262, 1412, 1412, 1262, + 1413, 1413, 1262, 1414, 1414, 1262, 1415, 1415, + 1262, 1416, 1416, 1262, 1417, 1417, 1262, 1418, + 1418, 1262, 1419, 1419, 1262, 1420, 1420, 1420, + 1420, 1262, 1421, 1421, 1262, 1422, 1422, 1262, + 1423, 1423, 1423, 1423, 1262, 1424, 1425, 1426, + 1427, 1424, 1425, 1426, 1427, 1262, 1428, 1428, + 1262, 1429, 1429, 1262, 1430, 1430, 1262, 1431, + 1431, 1262, 1432, 1432, 1262, 1433, 1433, 1433, + 1433, 1262, 1434, 1434, 1434, 1434, 1262, 1435, + 1435, 1262, 1436, 1436, 1262, 1437, 1437, 1262, + 1438, 1438, 1438, 1438, 1262, 1439, 1439, 1439, + 1439, 1262, 1440, 1441, 1442, 1443, 1444, 1445, + 1440, 1441, 1442, 1443, 1444, 1445, 1262, 1446, + 1446, 1262, 1447, 1447, 1262, 1448, 1448, 1262, + 1449, 1449, 1262, 1450, 1450, 1450, 1450, 1262, + 1451, 1451, 1262, 1452, 1452, 1452, 1452, 1262, + 1453, 1453, 1262, 1454, 1454, 1454, 1454, 1262, + 1455, 1455, 1262, 1456, 1456, 1456, 1456, 1262, + 1457, 1457, 1262, 1458, 1458, 1262, 1459, 1459, + 1262, 1460, 1460, 1460, 1460, 1262, 1461, 1461, + 1262, 1462, 1462, 1262, 1463, 1463, 1463, 1463, + 1262, 1464, 1465, 1466, 1464, 1465, 1466, 1262, + 1467, 1467, 1262, 1468, 1468, 1262, 1469, 1469, + 1469, 1469, 1262, 1470, 1470, 1262, 1471, 1471, + 1471, 1471, 1262, 1472, 1472, 1262, 1473, 1473, + 1262, 1475, 1474, 1476, 1476, 1476, 1476, 1477, + 1474, 1478, 1478, 1262, 1479, 1479, 1262, 1480, + 1480, 1480, 1480, 1262, 1481, 1481, 1262, 1482, + 1482, 1262, 1483, 1483, 1262, 1484, 1484, 1262, + 1485, 1485, 1262, 1486, 1486, 1486, 1486, 1262, + 1487, 1487, 1262, 1488, 1488, 1262, 1489, 1489, + 1262, 1490, 1490, 1262, 1491, 1491, 1262, 1492, + 1492, 1492, 1492, 1262, 1494, 1494, 1495, 1496, + 1497, 1498, 1499, 1499, 1500, 1501, 1493, 1502, + 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, + 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, + 1518, 1519, 1520, 1521, 1522, 1505, 1506, 1507, + 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, + 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, + 1524, 1525, 1525, 1526, 1527, 1493, 1528, 1528, + 1529, 1530, 1531, 1532, 1533, 1531, 1532, 1533, + 1534, 1535, 1536, 1536, 1537, 1538, 1493, 1539, + 1539, 1493, 1540, 1540, 1493, 1541, 1541, 1542, + 1543, 1544, 1545, 1546, 1546, 1547, 1548, 1493, + 1550, 1549, 1493, 1551, 1552, 1553, 1554, 1555, + 1551, 1552, 1553, 1554, 1555, 1493, 1556, 1556, + 1493, 1557, 1557, 1558, 1559, 1560, 1561, 1562, + 1562, 1563, 1564, 1493, 1565, 1566, 1565, 1566, + 1493, 1567, 1567, 1493, 1568, 1568, 1493, 1569, + 1569, 1493, 1570, 1570, 1493, 1571, 1571, 1572, + 1573, 1574, 1575, 1576, 1576, 1577, 1578, 1493, + 1579, 1579, 1580, 1581, 1582, 1583, 1584, 1584, + 1585, 1586, 1493, 1587, 1587, 1493, 1588, 1588, + 1493, 1589, 1589, 1590, 1591, 1592, 1593, 1594, + 1594, 1595, 1596, 1493, 1597, 1597, 1493, 1598, + 1598, 1493, 1599, 1599, 1493, 1600, 1600, 1601, + 1602, 1603, 1604, 1605, 1605, 1606, 1607, 1493, + 1608, 1608, 1493, 1609, 1609, 1493, 1610, 1610, + 1493, 1611, 1611, 1612, 1613, 1614, 1615, 1616, + 1616, 1617, 1618, 1493, 1619, 1620, 1621, 1619, + 1620, 1621, 1493, 1622, 1622, 1493, 1623, 1623, + 1493, 1624, 1624, 1493, 1625, 1625, 1626, 1627, + 1628, 1629, 1630, 1630, 1631, 1632, 1493, 1633, + 1634, 1633, 1634, 1493, 1635, 1635, 1493, 1636, + 1636, 1493, 1637, 1637, 1638, 1639, 1640, 1641, + 1642, 1642, 1643, 1644, 1493, 1645, 1645, 1493, + 1646, 1646, 1493, 1647, 1647, 1493, 1648, 1648, + 1649, 1650, 1651, 1652, 1653, 1653, 1654, 1655, + 1493, 1656, 1656, 1657, 1658, 1659, 1659, 1660, + 1661, 1662, 1662, 1663, 1664, 1493, 1665, 1665, + 1493, 1666, 1666, 1493, 1667, 1667, 1668, 1669, + 1670, 1671, 1672, 1672, 1673, 1674, 1493, 1675, + 1675, 1493, 1676, 1676, 1493, 1677, 1678, 1493, + 1679, 1493, 1680, 1680, 1681, 1682, 1683, 1684, + 1685, 1685, 1686, 1687, 1493, 1688, 1493, 1689, + 1689, 1690, 1691, 1692, 1693, 1694, 1694, 1695, + 1696, 1493, 1697, 1698, 1697, 1698, 1493, 1699, + 1699, 1493, 1700, 1700, 1493, 1701, 1701, 1493, + 1702, 1702, 1703, 1704, 1705, 1706, 1707, 1707, + 1708, 1709, 1493, 1710, 1710, 1493, 1711, 1711, + 1493, 1712, 1712, 1493, 1713, 1713, 1714, 1715, + 1716, 1717, 1718, 1718, 1719, 1720, 1493, 1721, + 1721, 1493, 1722, 1722, 1493, 1723, 1723, 1493, + 1724, 1724, 1493, 1725, 1725, 1493, 1726, 1726, + 1493, 1727, 1727, 1493, 1728, 1728, 1729, 1730, + 1731, 1732, 1733, 1733, 1734, 1735, 1493, 1736, + 1737, 1736, 1737, 1493, 1738, 1738, 1493, 1739, + 1739, 1740, 1741, 1742, 1743, 1744, 1744, 1745, + 1746, 1493, 1747, 1747, 1748, 1749, 1750, 1751, + 1752, 1752, 1753, 1754, 1493, 1755, 1756, 1757, + 1758, 1757, 1758, 1493, 1759, 1493, 1760, 1760, + 1761, 1762, 1763, 1764, 1765, 1765, 1766, 1767, + 1493, 1768, 1493, 1769, 1769, 1770, 1771, 1772, + 1773, 1774, 1774, 1775, 1776, 1493, 1777, 1777, + 1493, 1778, 1778, 1779, 1780, 1781, 1782, 1783, + 1783, 1784, 1785, 1493, 1786, 1786, 1787, 1788, + 1789, 1790, 1791, 1791, 1792, 1793, 1493, 1794, + 1795, 1794, 1795, 1493, 1796, 1796, 1493, 1797, + 1797, 1493, 1798, 1798, 1493, 1799, 1799, 1800, + 1801, 1802, 1803, 1804, 1804, 1805, 1806, 1493, + 1807, 1807, 1808, 1809, 1810, 1811, 1812, 1812, + 1813, 1814, 1493, 1815, 1816, 1817, 1815, 1816, + 1817, 1493, 1818, 1818, 1493, 1819, 1819, 1493, + 1820, 1820, 1493, 1821, 1821, 1822, 1823, 1824, + 1825, 1826, 1826, 1827, 1828, 1493, 1829, 1829, + 1493, 1830, 1830, 1831, 1832, 1833, 1834, 1835, + 1835, 1836, 1837, 1493, 1838, 1838, 1839, 1840, + 1841, 1841, 1842, 1843, 1844, 1844, 1845, 1846, + 1493, 1847, 1847, 1493, 1848, 1848, 1849, 1850, + 1851, 1852, 1853, 1854, 1854, 1855, 1856, 1493, + 1857, 1857, 1858, 1859, 1860, 1860, 1861, 1862, + 1863, 1863, 1864, 1865, 1493, 1866, 1866, 1493, + 1867, 1867, 1493, 1868, 1868, 1493, 1869, 1869, + 1493, 1870, 1870, 1871, 1872, 1873, 1874, 1875, + 1875, 1876, 1877, 1493, 1878, 1878, 1493, 1879, + 1879, 1493, 1880, 1880, 1493, 1881, 1881, 1493, + 1882, 1882, 1493, 1883, 1883, 1493, 1884, 1884, + 1493, 1885, 1885, 1493, 1886, 1886, 1493, 1887, + 1887, 1888, 1889, 1890, 1891, 1892, 1892, 1893, + 1894, 1493, 1895, 1895, 1493, 1896, 1896, 1493, + 1897, 1897, 1898, 1899, 1900, 1901, 1902, 1902, + 1903, 1904, 1493, 1905, 1906, 1907, 1908, 1905, + 1906, 1907, 1908, 1493, 1909, 1909, 1493, 1910, + 1910, 1493, 1911, 1911, 1493, 1912, 1912, 1493, + 1913, 1913, 1493, 1914, 1914, 1915, 1916, 1917, + 1918, 1919, 1919, 1920, 1921, 1493, 1922, 1922, + 1923, 1924, 1925, 1926, 1927, 1927, 1928, 1929, + 1493, 1930, 1930, 1493, 1931, 1931, 1493, 1932, + 1932, 1493, 1933, 1933, 1934, 1935, 1936, 1937, + 1938, 1938, 1939, 1940, 1493, 1941, 1941, 1942, + 1943, 1944, 1945, 1946, 1946, 1947, 1948, 1493, + 1949, 1950, 1951, 1952, 1953, 1954, 1949, 1950, + 1951, 1952, 1953, 1954, 1493, 1955, 1955, 1493, + 1956, 1956, 1493, 1957, 1957, 1493, 1958, 1958, + 1493, 1959, 1959, 1960, 1961, 1962, 1963, 1964, + 1964, 1965, 1966, 1493, 1967, 1967, 1493, 1968, + 1968, 1969, 1970, 1971, 1972, 1973, 1973, 1974, + 1975, 1493, 1976, 1976, 1493, 1977, 1977, 1978, + 1979, 1980, 1981, 1982, 1982, 1983, 1984, 1493, + 1985, 1985, 1493, 1986, 1986, 1987, 1988, 1989, + 1990, 1991, 1991, 1992, 1993, 1493, 1994, 1994, + 1493, 1995, 1995, 1493, 1996, 1996, 1493, 1997, + 1997, 1998, 1999, 2000, 2001, 2002, 2002, 2003, + 2004, 1493, 2005, 2005, 1493, 2006, 2006, 1493, + 2007, 2007, 2008, 2009, 2010, 2011, 2012, 2012, + 2013, 2014, 1493, 2015, 2016, 2017, 2015, 2016, + 2017, 1493, 2018, 2018, 1493, 2019, 2019, 1493, + 2020, 2020, 2021, 2022, 2023, 2024, 2025, 2025, + 2026, 2027, 1493, 2028, 2028, 1493, 2029, 2029, + 2030, 2031, 2032, 2033, 2034, 2034, 2035, 2036, + 1493, 2037, 2037, 1493, 2038, 2038, 1493, 2039, + 1493, 2040, 2040, 2041, 2042, 2044, 2045, 2046, + 2046, 2047, 2048, 2043, 1493, 2049, 2049, 1493, + 2050, 2050, 1493, 2051, 2051, 2052, 2053, 2054, + 2055, 2056, 2056, 2057, 2058, 1493, 2059, 2059, + 1493, 2060, 2060, 1493, 2061, 2061, 1493, 2062, + 2062, 1493, 2063, 2063, 1493, 2064, 2064, 2065, + 2066, 2067, 2068, 2069, 2069, 2070, 2071, 1493, + 2072, 2072, 1493, 2073, 2073, 1493, 2074, 2074, + 1493, 2075, 2075, 1493, 2076, 2076, 1493, 2077, + 2077, 2078, 2079, 2080, 2081, 2082, 2082, 2083, + 2084, 1493, 2085, 2085, 1493, 2086, 2086, 1493, + 2087, 2087, 1493, 2088, 2088, 2089, 2090, 2091, + 2092, 2093, 2093, 2094, 2095, 1493, 2096, 2096, + 1493, 2097, 2097, 2098, 2099, 2100, 2101, 2102, + 2102, 2103, 2104, 1493, 2106, 2106, 2107, 2108, + 2109, 2110, 2105, 2106, 2106, 2107, 2108, 2109, + 2110, 2112, 2111, 2113, 2113, 2114, 2115, 2117, + 2118, 2116, 2111, 2120, 2120, 2121, 2122, 2124, + 2125, 2123, 2123, 2123, 2119, 2126, 2126, 2126, + 2119, 2127, 2127, 2128, 2129, 2130, 2131, 2132, + 2132, 2133, 2134, 2123, 2123, 2123, 2119, 2136, + 2135, 2119, 2138, 2137, 2105, 2140, 2139, 2105, + 2141, 2141, 2142, 2143, 2144, 2145, 2105, 2141, + 2141, 2142, 2143, 2146, 2144, 2145, 2147, 2111, + 2148, 2148, 2149, 2150, 2152, 2152, 2153, 2154, + 2151, 2111, 2155, 2155, 2156, 2157, 2159, 2160, + 2158, 2158, 2158, 2119, 2161, 2161, 2161, 2119, + 2162, 2162, 2163, 2164, 2165, 2166, 2167, 2167, + 2168, 2169, 2158, 2158, 2158, 2119, 2171, 2170, + 2119, 2173, 2172, 2105, 2174, 2174, 2175, 2176, + 2177, 2178, 2151, 2111, 2180, 2179, 2105, 2182, + 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2181, + 2190, 2181, 2191, 2181, 2192, 2181, 2193, 2193, + 2193, 2193, 2193, 2193, 2181, 2194, 2181, 2195, + 2181, 2196, 2181, 2197, 2181, 2198, 2181, 2199, + 2181, 2200, 2200, 2200, 2200, 2200, 2200, 2181, + 2201, 2181, 2202, 2181, 2203, 2203, 2203, 2203, + 2203, 2203, 2181, 2204, 2181, 2205, 2181, 2206, + 2207, 2181, 2208, 2181, 2209, 2181, 2210, 2181, + 2211, 2181, 2212, 2212, 2212, 2212, 2212, 2212, + 2181, 2213, 2181, 2214, 2181, 2215, 2181, 2216, + 2181, 2217, 2217, 2217, 2217, 2217, 2217, 2181, + 2218, 2181, 2219, 2181, 2221, 2220, 2222, 2222, + 2222, 2222, 2222, 2222, 2223, 2220, 2224, 2181, + 2225, 2181, 2226, 2181, 2227, 2181, 2228, 2181, + 2229, 2181, 2230, 2181, 2231, 2181, 2232, 2181, + 2233, 2181, 2234, 2181, 2235, 2181, 2236, 2181, + 2237, 2181, 2238, 2238, 2238, 2238, 2238, 2238, + 2181, 2239, 2181, 2240, 2181, 2241, 2181, 2242, + 2181, 2243, 2243, 2243, 2243, 2243, 2243, 2181, + 2244, 2181, 2245, 2181, 2246, 2181, 2247, 2247, + 2247, 2247, 2247, 2247, 2181, 2249, 2249, 2250, + 2251, 2252, 2253, 2254, 2254, 2255, 2256, 2248, + 2257, 2257, 2258, 2259, 2260, 2261, 2262, 2263, + 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, + 2271, 2272, 2273, 2248, 2274, 2248, 2275, 2248, + 2276, 2248, 2277, 2248, 2248, 2279, 2248, 2248, + 2248, 2278, 2280, 2280, 2281, 2282, 2283, 2284, + 2285, 2285, 2286, 2287, 2248, 2289, 2288, 2248, + 2290, 2248, 2291, 2248, 2292, 2248, 2293, 2248, + 2294, 2248, 2295, 2248, 2296, 2248, 2248, 2298, + 2248, 2248, 2248, 2297, 2299, 2299, 2300, 2301, + 2302, 2303, 2304, 2304, 2305, 2306, 2248, 2299, + 2299, 2300, 2301, 2302, 2303, 2304, 2304, 2305, + 2306, 2307, 2307, 2307, 2248, 2308, 2248, 2309, + 2309, 2310, 2311, 2312, 2313, 2314, 2314, 2315, + 2316, 2248, 2317, 2248, 2318, 2248, 2319, 2248, + 2320, 2321, 2321, 2321, 2321, 2248, 2322, 2322, + 2322, 2322, 2248, 2323, 2323, 2323, 2323, 2248, + 2324, 2325, 2324, 2324, 2324, 2248, 2326, 2327, + 2326, 2326, 2326, 2248, 2308, 2328, 2328, 2328, + 2328, 2248, 2327, 2248, 2329, 2329, 2329, 2329, + 2248, 2330, 2331, 2330, 2330, 2330, 2248, 2332, + 2333, 2332, 2332, 2332, 2248, 2299, 2299, 2300, + 2301, 2334, 2302, 2303, 2304, 2304, 2305, 2306, + 2334, 2334, 2334, 2248, 2333, 2248, 2335, 2248, + 2336, 2248, 2337, 2338, 2248, 2339, 2248, 2340, + 2248, 2341, 2248, 2342, 2248, 2343, 2248, 2345, + 2346, 2346, 2344, 2347, 2347, 2344, 2348, 2349, + 2350, 2350, 2344, 2351, 2351, 2344, 2352, 2352, + 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2359, + 2360, 2361, 2356, 2344, 2362, 2362, 2344, 2363, + 2248, 2364, 2248, 2365, 2248, 2366, 2248, 2367, + 2248, 2368, 2369, 2369, 2369, 2369, 2344, 2370, + 2370, 2370, 2370, 2344, 2371, 2372, 2373, 2373, + 2373, 2373, 2344, 2374, 2374, 2374, 2374, 2344, + 2375, 2375, 2376, 2377, 2378, 2379, 2380, 2381, + 2382, 2382, 2383, 2384, 2379, 2379, 2379, 2344, + 2385, 2385, 2385, 2385, 2344, 2386, 2248, 2387, + 2248, 2389, 2388, 2390, 2390, 2391, 2392, 2394, + 2395, 2396, 2397, 2397, 2398, 2399, 2393, 2388, + 2248, 2248, 2248, 2248, 2297, 2400, 2248, 2401, + 2248, 2402, 2248, 2403, 2248, 2404, 2248, 2405, + 2248, 2406, 2248, 2407, 2248, 2408, 2248, 2409, + 2410, 2410, 2248, 2411, 2411, 2248, 2412, 2413, + 2248, 2414, 2414, 2248, 2415, 2415, 2416, 2417, + 2418, 2419, 2420, 2421, 2421, 2422, 2423, 2248, + 2424, 2424, 2248, 2425, 2248, 2426, 2248, 2427, + 2248, 2428, 2248, 2429, 2248, 2430, 2248, 2431, + 2248, 2432, 2248, 2433, 2248, 2434, 2248, 2435, + 2248, 2436, 2248, 2437, 2248, 2438, 2248, 2439, + 2439, 2440, 2441, 2442, 2443, 2444, 2444, 2445, + 2446, 2248, 2447, 2248, 2448, 2248, 2449, 2248, + 2450, 2248, 2451, 2451, 2452, 2453, 2454, 2455, + 2456, 2456, 2457, 2458, 2248, 2459, 2248, 2460, + 2248, 2461, 2248, 2462, 2248, 2463, 2464, 2388, + 2465, 2388, 2466, 2467, 2388, 2468, 2468, 2469, + 2470, 2472, 2473, 2474, 2474, 2475, 2476, 2471, + 2388, 2280, 2280, 2281, 2282, 2283, 2284, 2285, + 2285, 2286, 2287, 2477, 2477, 2477, 2248, 2478, + 2248, 2481, 2482, 2483, 2484, 2485, 2481, 2482, + 2483, 2484, 2485, 2480, 2479, 2486, 2486, 2486, + 2486, 2487, 2479, 2488, 2489, 2488, 2489, 2479, + 2490, 2490, 2490, 2490, 2479, 2491, 2491, 2479, + 2492, 2493, 2492, 2492, 2492, 2479, 2494, 2494, + 2479, 2495, 2495, 2479, 2496, 2496, 2479, 2497, + 2497, 2479, 2498, 2479, 2499, 2479, 2500, 2500, + 2479, 2501, 2501, 2479, 2502, 2502, 2479, 2503, + 2479, 2504, 2504, 2504, 2504, 2479, 2505, 2506, + 2505, 2506, 2479, 2507, 2508, 2507, 2508, 2479, + 2509, 2479, 2510, 2510, 2479, 2511, 2511, 2479, + 2512, 2512, 2479, 2513, 2513, 2479, 2514, 2514, + 2514, 2514, 2479, 2515, 2515, 2479, 2516, 2516, + 2479, 2517, 2517, 2479, 2518, 2519, 2479, 2520, + 2479, 2521, 2479, 2522, 2522, 2479, 2523, 2523, + 2479, 2524, 2524, 2479, 2525, 2479, 2526, 2479, + 2527, 2479, 2528, 2528, 2528, 2528, 2479, 2529, + 2479, 2530, 2479, 2531, 2531, 2479, 2532, 2532, + 2479, 2533, 2533, 2479, 2534, 2479, 2535, 2479, + 2536, 2479, 2537, 2537, 2537, 2537, 2479, 2538, + 2539, 2479, 2540, 2479, 2541, 2479, 2542, 2479, + 2543, 2479, 2544, 2544, 2544, 2544, 2479, 2545, + 2479, 2546, 2479, 2547, 2547, 2547, 2547, 2479, + 2548, 2548, 2479, 2549, 2549, 2479, 2550, 2550, + 2479, 2551, 2551, 2479, 2552, 2552, 2479, 2553, + 2553, 2479, 2554, 2554, 2479, 2555, 2555, 2555, + 2555, 2479, 2556, 2556, 2479, 2557, 2557, 2479, + 2558, 2558, 2479, 2559, 2559, 2479, 2560, 2560, + 2479, 2561, 2561, 2479, 2562, 2563, 2562, 2563, + 2479, 2564, 2564, 2479, 2565, 2565, 2479, 2566, + 2566, 2566, 2566, 2479, 2567, 2567, 2479, 2568, + 2568, 2479, 2569, 2569, 2569, 2569, 2479, 2570, + 2570, 2479, 2571, 2571, 2479, 2572, 2573, 2572, + 2573, 2479, 2574, 2574, 2479, 2575, 2479, 2576, + 2576, 2576, 2576, 2479, 2577, 2577, 2479, 2578, + 2578, 2479, 2579, 2580, 2581, 2479, 2582, 2583, + 2582, 2582, 2582, 2479, 2584, 2584, 2479, 2585, + 2585, 2479, 2586, 2586, 2479, 2587, 2587, 2479, + 2588, 2479, 2589, 2479, 2590, 2590, 2479, 2591, + 2591, 2479, 2592, 2592, 2479, 2593, 2479, 2594, + 2594, 2594, 2594, 2479, 2595, 2479, 2596, 2479, + 2597, 2597, 2597, 2597, 2479, 2598, 2479, 2599, + 2479, 2600, 2600, 2600, 2600, 2479, 2603, 2604, + 2605, 2606, 2607, 2608, 2603, 2604, 2605, 2606, + 2607, 2608, 2602, 2601, 2609, 2609, 2609, 2609, + 2610, 2601, 2611, 2611, 2601, 2612, 2612, 2601, + 2613, 2613, 2601, 2614, 2614, 2601, 2615, 2615, + 2601, 2616, 2616, 2616, 2616, 2601, 2617, 2618, + 2619, 2617, 2618, 2619, 2601, 2620, 2620, 2601, + 2621, 2621, 2601, 2622, 2622, 2601, 2623, 2623, + 2601, 2624, 2624, 2601, 2625, 2625, 2625, 2625, + 2601, 2626, 2627, 2626, 2627, 2601, 2628, 2628, + 2601, 2629, 2629, 2629, 2629, 2601, 2630, 2630, + 2601, 2631, 2631, 2601, 2632, 2632, 2632, 2632, + 2601, 2633, 2633, 2601, 2634, 2634, 2601, 2635, + 2635, 2601, 2636, 2636, 2636, 2636, 2601, 2637, + 2637, 2601, 2638, 2638, 2601, 2639, 2639, 2639, + 2639, 2601, 2640, 2641, 2640, 2641, 2601, 2642, + 2642, 2601, 2643, 2643, 2643, 2643, 2601, 2644, + 2644, 2601, 2645, 2645, 2601, 2646, 2646, 2646, + 2646, 2601, 2647, 2647, 2601, 2648, 2648, 2601, + 2649, 2649, 2601, 2650, 2650, 2650, 2650, 2601, + 2651, 2651, 2601, 2652, 2652, 2601, 2653, 2653, + 2653, 2653, 2601, 2656, 2656, 2655, 2654, 2657, + 2657, 2657, 2657, 2658, 2654, 2659, 2659, 2654, + 2660, 2660, 2654, 2661, 2661, 2654, 2662, 2662, + 2654, 2663, 2663, 2654, 2664, 2664, 2664, 2664, + 2654, 2666, 2666, 2665, 2667, 2668, 2667, 2667, + 2667, 2668, 2665, 2669, 2669, 2669, 2669, 2669, + 2669, 77, 2670, 2670, 2670, 2670, 77, 2671, + 2671, 2671, 2671, 2671, 2671, 77, 2672, 2672, + 2673, 2674, 2675, 2676, 77, 2677, 2677, 2678, + 2679, 2680, 2680, 2680, 2681, 2682, 2680, 2680, + 2680, 77, 2683, 2683, 2684, 2685, 2686, 2687, + 77, 2689, 2689, 2690, 2691, 2693, 2694, 2692, + 2688, 2695, 2695, 2696, 2697, 2699, 2700, 2698, + 2688, 2701, 2701, 2702, 2703, 2705, 2706, 2704, + 2688, 2708, 2708, 2709, 2710, 2712, 2713, 2714, + 2715, 2716, 2712, 2713, 2714, 2715, 2716, 2717, + 2718, 2711, 2707, 2719, 2719, 2720, 2721, 2723, + 2724, 2722, 2688, 2725, 2725, 2726, 2727, 2729, + 2730, 2731, 2732, 2733, 2729, 2730, 2731, 2732, + 2733, 2734, 2735, 2728, 2707, 2736, 2736, 2737, + 2738, 2740, 2741, 2739, 2688, 2742, 2742, 2743, + 2744, 2746, 2747, 2748, 2749, 2750, 2746, 2747, + 2748, 2749, 2750, 2751, 2752, 2745, 2707, 2753, + 2753, 2754, 2755, 2757, 2758, 2756, 2688, 2759, + 2759, 2761, 2762, 2763, 2764, 2765, 2761, 2762, + 2763, 2764, 2765, 2759, 2759, 2760, 2707, 2759, + 2759, 2759, 2759, 2766, 2707, 2768, 2769, 2770, + 2771, 2772, 2768, 2769, 2770, 2771, 2772, 2767, + 2707, 2773, 2773, 2773, 2773, 2774, 2707, 2776, + 2775, 77, 2742, 2742, 2743, 2744, 2751, 2752, + 2777, 2707, 2779, 2780, 2781, 2782, 2783, 2779, + 2780, 2781, 2782, 2783, 2778, 2707, 2784, 2784, + 2785, 2786, 2788, 2789, 2787, 2707, 2791, 2790, + 77, 2725, 2725, 2726, 2727, 2734, 2735, 2792, + 2707, 2794, 2795, 2796, 2797, 2798, 2794, 2795, + 2796, 2797, 2798, 2793, 2707, 2799, 2799, 2800, + 2801, 2803, 2804, 2802, 2707, 2806, 2805, 77, + 2708, 2708, 2709, 2710, 2717, 2718, 2807, 2707, + 2809, 2810, 2811, 2812, 2813, 2809, 2810, 2811, + 2812, 2813, 2808, 2707, 2814, 2814, 2815, 2816, + 2818, 2819, 2817, 2707, 2821, 2820, 77, 2823, + 2822, 77, 2825, 2824, 77, 77, 77, 77, + 77, 2826, 2827, 2827, 2828, 2829, 2830, 2831, + 77, 2833, 2833, 2834, 2835, 2836, 2837, 2832, + 2832, 2832, 77, 2838, 2838, 2838, 2838, 77, + 2840, 2839, 77, 2841, 2841, 2841, 2841, 2841, + 2841, 77, 2842, 2842, 2843, 2844, 2845, 2846, + 77, 2847, 2847, 2848, 2849, 2850, 2850, 2850, + 2851, 2852, 2850, 2850, 2850, 77, 2853, 2853, + 2853, 2853, 77, 2855, 2854, 77, 2856, 2688, + 2857, 2857, 2858, 2859, 2861, 2862, 2860, 2688, + 2863, 2863, 2864, 2865, 2866, 2866, 2866, 2867, + 2868, 2866, 2866, 2866, 77, 2869, 2869, 2869, + 2869, 77, 2871, 2870, 77, 2873, 2873, 2873, + 2873, 2872, 2874, 2874, 2875, 2876, 2877, 2878, + 2879, 2879, 2880, 2881, 2873, 2883, 2883, 2884, + 2885, 2886, 2887, 2888, 2888, 2889, 2890, 2882, + 2882, 2882, 2873, 2892, 2891, 2873, 2893, 2893, + 2893, 2893, 2665, 2894, 2895, 2894, 2894, 2894, + 2895, 2895, 2895, 2665, 2897, 2896, 2898, 2898, + 2899, 2900, 2902, 2903, 2901, 2896, 2904, 2904, + 2905, 2906, 2908, 2909, 2910, 2911, 2907, 2896, + 2912, 2912, 2913, 2914, 2916, 2917, 2915, 2896, + 2918, 2918, 2919, 2920, 2908, 2909, 2922, 2923, + 2921, 2896, 2924, 2924, 2925, 2926, 2927, 2929, + 2930, 2928, 2896, 2931, 2931, 2932, 2933, 2908, + 2909, 2934, 2935, 2896, 2936, 2936, 2937, 2938, + 2939, 2940, 2896, 2936, 2936, 2937, 2938, 2939, + 2940, 2941, 2896, 2942, 2942, 2943, 2944, 2946, + 2947, 2945, 2896, 2948, 2948, 2949, 2950, 2952, + 2953, 2954, 2955, 2951, 2896, 2956, 2956, 2957, + 2958, 2960, 2961, 2959, 2896, 2962, 2962, 2963, + 2964, 2952, 2953, 2966, 2967, 2965, 2896, 2968, + 2968, 2969, 2970, 2971, 2973, 2974, 2972, 2896, + 2975, 2975, 2976, 2977, 2952, 2953, 2978, 2979, + 2896, 2980, 2980, 2981, 2982, 2983, 2984, 2896, + 2980, 2980, 2981, 2982, 2985, 2983, 2984, 2986, + 2896, 2987, 2896, 2988, 2988, 2989, 2990, 2991, + 2993, 2994, 2995, 2996, 2996, 2997, 2998, 2992, + 2896, 2999, 2999, 3000, 3001, 3003, 3004, 3005, + 3005, 3006, 3007, 3002, 2896, 3008, 3008, 3009, + 3010, 3011, 3013, 3014, 3015, 3016, 3016, 3017, + 3018, 3012, 2896, 3019, 3019, 3020, 3021, 3023, + 3024, 3005, 3005, 3025, 3026, 3022, 2896, 3027, + 3027, 3028, 3029, 3030, 3032, 3033, 3034, 3035, + 3035, 3036, 3037, 3031, 2896, 3038, 3038, 3039, + 3040, 3042, 3043, 3005, 3005, 3044, 3045, 3041, + 2896, 3046, 3046, 3047, 3048, 3049, 3046, 3051, + 3052, 3053, 3053, 3054, 3055, 3050, 2896, 3056, + 3056, 3057, 3058, 3059, 3060, 3005, 3005, 3061, + 3062, 2896, 3064, 3063, 2896, 3065, 3065, 3066, + 3067, 3065, 3069, 3070, 3071, 3071, 3072, 3073, + 3068, 2896, 3046, 3046, 3047, 3048, 3046, 3051, + 3052, 3053, 3053, 3054, 3055, 3074, 2896, 3076, + 3075, 2896, 3077, 3077, 3078, 3079, 3081, 3082, + 3083, 3084, 3084, 3085, 3086, 3080, 2896, 3027, + 3027, 3028, 3029, 3032, 3033, 3034, 3035, 3035, + 3036, 3037, 3087, 2896, 3038, 3038, 3039, 3040, + 3042, 3043, 3005, 3005, 3044, 3045, 2896, 3089, + 3088, 2896, 3090, 3090, 3091, 3092, 3094, 3095, + 3096, 3097, 3097, 3098, 3099, 3093, 2896, 3008, + 3008, 3009, 3010, 3013, 3014, 3015, 3016, 3016, + 3017, 3018, 3100, 2896, 3019, 3019, 3020, 3021, + 3023, 3024, 3005, 3005, 3025, 3026, 2896, 3102, + 3101, 2896, 3103, 3103, 3104, 3105, 3107, 3108, + 3109, 3110, 3110, 3111, 3112, 3106, 2896, 2988, + 2988, 2989, 2990, 2993, 2994, 2995, 2996, 2996, + 2997, 2998, 3113, 2896, 2999, 2999, 3000, 3001, + 3003, 3004, 3005, 3005, 3006, 3007, 2896, 3115, + 3114, 2896, 3116, 3116, 3117, 3118, 3119, 3120, + 2896, 3122, 3121, 2896, 3123, 3123, 3124, 3125, + 3127, 3128, 3126, 2896, 2968, 2968, 2969, 2970, + 2973, 2974, 3129, 2896, 3131, 3130, 2896, 3133, + 3132, 2896, 3135, 3134, 2896, 3136, 3136, 3137, + 3138, 3139, 3140, 2896, 3142, 3141, 2896, 3143, + 3143, 3144, 3145, 3147, 3148, 3146, 2896, 2924, + 2924, 2925, 2926, 2929, 2930, 3149, 2896, 3151, + 3150, 2896, 3153, 3152, 2896, 3154, 2688, 3155, + 3155, 3156, 3157, 3159, 3160, 3158, 2688, 3161, + 3161, 3162, 3163, 3165, 3166, 3164, 2688, 3167, + 3167, 3168, 3169, 3171, 3172, 3170, 2688, 3173, + 3173, 3174, 3175, 3177, 3178, 3176, 2688, 3179, + 3179, 3180, 3181, 3183, 3184, 3182, 2688, 3185, + 3185, 3186, 3187, 3188, 3188, 3188, 3189, 3190, + 3188, 3188, 3188, 77, 3191, 3191, 3191, 3191, + 77, 3193, 3192, 77, 3195, 3194, 77, 3197, + 3196, 77, 3198, 2688, 3199, 3199, 3200, 3201, + 3203, 3204, 3202, 2688, 3205, 3205, 3206, 3207, + 3209, 3210, 3208, 2688, 3211, 3211, 3212, 3213, + 3215, 3216, 3214, 2688, 3218, 3218, 3219, 3220, + 3221, 3222, 3217, 3217, 3217, 77, 3223, 3223, + 3224, 3225, 3226, 3227, 77, 3229, 3229, 3230, + 3231, 3232, 3233, 3228, 3228, 3228, 77, 3234, + 3234, 3235, 3236, 3237, 3238, 77, 3240, 3240, + 3241, 3242, 3243, 3244, 3239, 3239, 3239, 77, + 3245, 3245, 3246, 3247, 3248, 3249, 77, 3250, + 3250, 3251, 3252, 3253, 3253, 3253, 3254, 3255, + 3253, 3253, 3253, 77, 3256, 3256, 3256, 3256, + 77, 3258, 3257, 77, 3260, 3259, 77, 3262, + 3261, 77, 3264, 3263, 77, 3266, 3265, 77, + 3267, 3267, 3267, 77, 3268, 3268, 3269, 3270, + 3271, 3272, 77, 3268, 3268, 3269, 3270, 3271, + 3272, 3273, 2688, 3274, 3274, 3275, 3276, 3278, + 3279, 3277, 2688, 3280, 3280, 3281, 3282, 3284, + 3285, 3283, 3283, 3283, 77, 3286, 3286, 3287, + 3288, 3289, 3290, 77, 3286, 3286, 3287, 3288, + 3291, 3289, 3290, 3291, 3291, 3291, 77, 3292, + 3292, 77, 3294, 3293, 77, 3296, 3295, 77, + 3298, 3297, 77, 3300, 3300, 3301, 3302, 3303, + 3304, 3305, 3306, 3307, 3308, 3308, 3309, 3310, + 3299, 3311, 3312, 3299, 3313, 3299, 3315, 3315, + 3314, 3317, 3316, 3314, 3318, 3299, 3319, 3319, + 3320, 3321, 3323, 3324, 3325, 3325, 3326, 3327, + 3322, 3299, 3329, 3328, 77, 3330, 3299, 3331, + 3331, 3331, 3331, 3314, 3333, 3332, 3332, 3332, + 3314, 3334, 2688, 3335, 3335, 3336, 3337, 3339, + 3340, 3338, 2688, 3341, 3341, 3342, 3343, 3345, + 3346, 3344, 3344, 3344, 77, 3347, 3347, 3348, + 3349, 3350, 3351, 77, 3347, 3347, 3348, 3349, + 3350, 3351, 3352, 2688, 3353, 3353, 3354, 3355, + 3357, 3358, 3356, 2688, 3360, 3360, 3361, 3362, + 3364, 3365, 3363, 3363, 3363, 3359, 3366, 3366, + 3366, 3359, 3367, 3367, 3368, 3369, 3370, 3371, + 3372, 3372, 3373, 3374, 3363, 3363, 3363, 3359, + 3376, 3375, 3359, 3378, 3377, 77, 3380, 3379, + 77, 3382, 3381, 77, 3383, 2688, 3384, 3384, + 3385, 3386, 3388, 3389, 3387, 2688, 3390, 3390, + 3391, 3392, 3394, 3395, 3393, 2688, 3396, 3396, + 3397, 3398, 3400, 3401, 3399, 2688, 3402, 3402, + 3403, 3404, 3406, 3407, 3405, 3405, 3405, 3359, + 3408, 3408, 3408, 3359, 3409, 3409, 3410, 3411, + 3412, 3413, 3414, 3414, 3415, 3416, 3405, 3405, + 3405, 3359, 3418, 3417, 3359, 3420, 3419, 77, + 3422, 3421, 77, 3423, 2688, 3424, 3424, 3425, + 3426, 3428, 3429, 3427, 2688, 3431, 3431, 3432, + 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3430, + 3440, 3440, 3441, 3442, 3443, 3444, 3430, 3440, + 3440, 3441, 3442, 3443, 3444, 3446, 3445, 3447, + 3447, 3448, 3449, 3451, 3452, 3450, 3445, 3453, + 3453, 3454, 3455, 3456, 3457, 3458, 3430, 3460, + 3460, 3461, 3462, 3463, 3463, 3464, 3465, 3466, + 3466, 3467, 3468, 3469, 3469, 3469, 3469, 3470, + 3471, 3469, 3469, 3472, 3473, 3474, 3475, 3469, + 3469, 3476, 3477, 3478, 3479, 3469, 3469, 3480, + 3481, 3459, 3460, 3460, 3461, 3462, 3483, 3470, + 3471, 3483, 3483, 3483, 3482, 3469, 3469, 3482, + 3485, 3484, 3482, 3463, 3463, 3464, 3465, 3469, + 3469, 3469, 3469, 3474, 3475, 3469, 3469, 3476, + 3477, 3482, 3487, 3486, 3482, 3483, 3460, 3460, + 3461, 3462, 3463, 3463, 3464, 3465, 3466, 3466, + 3467, 3468, 3469, 3469, 3469, 3469, 3470, 3471, + 3469, 3469, 3472, 3473, 3474, 3475, 3469, 3469, + 3476, 3477, 3478, 3479, 3469, 3469, 3480, 3481, + 3483, 3483, 3483, 3482, 3485, 3487, 3489, 3484, + 3486, 3488, 3482, 3491, 3490, 3430, 3493, 3492, + 3430, 3494, 3494, 3495, 3496, 3497, 3498, 3430, + 3494, 3494, 3495, 3496, 3497, 3498, 3499, 3445, + 3500, 3500, 3501, 3502, 3504, 3505, 3503, 3445, + 3507, 3507, 3508, 3509, 3510, 3511, 3512, 3510, + 3506, 3514, 3515, 3515, 3516, 3517, 3518, 3518, + 3519, 3520, 3521, 3521, 3522, 3523, 3524, 3524, + 3524, 3524, 3525, 3526, 3524, 3524, 3527, 3528, + 3529, 3530, 3524, 3524, 3531, 3532, 3533, 3534, + 3524, 3524, 3535, 3536, 3514, 3513, 3538, 3537, + 3430, 3540, 3539, 3430, 3541, 3541, 3542, 3543, + 3544, 3545, 3430, 3541, 3541, 3542, 3543, 3544, + 3545, 3546, 3445, 3547, 3547, 3548, 3549, 3551, + 3552, 3550, 3445, 3553, 3553, 3554, 3555, 3556, + 3557, 3558, 3556, 3556, 3556, 3506, 3559, 3560, + 3560, 3561, 3562, 3563, 3563, 3564, 3565, 3566, + 3566, 3567, 3568, 3569, 3569, 3569, 3569, 3570, + 3571, 3569, 3569, 3572, 3573, 3574, 3575, 3569, + 3569, 3576, 3577, 3578, 3579, 3569, 3569, 3580, + 3581, 3559, 3559, 3559, 3513, 3583, 3582, 3430, + 3585, 3584, 3430, 3586, 3586, 3587, 3588, 3589, + 3590, 3430, 3586, 3586, 3587, 3588, 3589, 3590, + 3591, 3445, 3592, 3592, 3593, 3594, 3596, 3597, + 3595, 3445, 3598, 3598, 3599, 3600, 3601, 3601, + 3601, 3602, 3603, 3601, 3601, 3601, 3430, 3604, + 3604, 3605, 3606, 3607, 3607, 3608, 3609, 3610, + 3610, 3611, 3612, 3613, 3613, 3613, 3613, 3614, + 3615, 3613, 3613, 3616, 3617, 3618, 3619, 3613, + 3613, 3620, 3621, 3622, 3623, 3613, 3613, 3624, + 3625, 3459, 3627, 3626, 3430, 3629, 3628, 3430, + 3631, 3630, 77, 3632, 3632, 3632, 77, 3633, + 3633, 3634, 3635, 3636, 3637, 77, 3633, 3633, + 3634, 3635, 3636, 3637, 3638, 3638, 3638, 77, + 3639, 3639, 3640, 3641, 3642, 3643, 77, 3639, + 3639, 3640, 3641, 3642, 3643, 3644, 2688, 3645, + 3645, 3646, 3647, 3649, 3650, 3648, 2688, 3651, + 3651, 3652, 3653, 3655, 3656, 3654, 2688, 3657, + 3657, 3658, 3659, 3661, 3662, 3660, 2688, 3664, + 3664, 3665, 3666, 3668, 3669, 3667, 3663, 3670, + 3670, 3671, 3672, 3674, 3675, 3673, 3663, 3676, + 3676, 3677, 3678, 3680, 3681, 3679, 3663, 3682, + 3682, 3683, 3684, 3686, 3687, 3685, 3663, 3688, + 3688, 3689, 3690, 3692, 3693, 3691, 2688, 3694, + 3694, 3695, 3696, 3698, 3699, 3697, 2688, 3700, + 3700, 3701, 3702, 3703, 3703, 3703, 3704, 3705, + 3703, 3703, 3703, 77, 3706, 3706, 3707, 3708, + 3709, 3710, 77, 3711, 3711, 3712, 3713, 3714, + 3715, 3716, 3714, 3714, 3714, 77, 3717, 3717, + 77, 3719, 3718, 77, 3721, 3720, 77, 3723, + 3722, 77, 3725, 3724, 77, 3727, 3726, 77, + 3729, 3728, 77, 3731, 3730, 77, 3733, 3732, + 77, 3734, 3734, 3734, 3734, 3734, 3734, 77, + 3735, 3735, 3735, 3735, 77, 3736, 3736, 3736, + 3736, 77, 3737, 2688, 3738, 3738, 3739, 3740, + 3742, 3743, 3741, 2688, 3744, 3744, 3745, 3746, + 3748, 3749, 3747, 2688, 3750, 3750, 3751, 3752, + 3754, 3755, 3753, 2688, 3756, 3756, 3757, 3758, + 3760, 3761, 3759, 3759, 3759, 77, 3762, 3762, + 3763, 3764, 3765, 3766, 77, 3762, 3762, 3763, + 3764, 3767, 3765, 3766, 3767, 3767, 3767, 77, + 3768, 3768, 77, 3770, 3769, 77, 3772, 3771, + 77, 3774, 3773, 77, 3775, 3775, 3775, 3775, + 77, 3776, 3776, 77, 3777, 2688, 3778, 3778, + 3779, 3780, 3782, 3783, 3781, 2688, 3784, 3784, + 3785, 3786, 3788, 3789, 3787, 2688, 3790, 3790, + 3791, 3792, 3794, 3795, 3793, 2688, 3796, 3796, + 3797, 3798, 3800, 3801, 3799, 2688, 3802, 3802, + 3803, 3804, 3806, 3807, 3805, 2688, 3808, 3808, + 3809, 3810, 3811, 3813, 3814, 3812, 3812, 3812, + 3359, 3815, 3815, 3816, 3817, 3818, 3819, 3359, + 3821, 3821, 3822, 3823, 3825, 3826, 3824, 3824, + 3824, 3820, 3827, 3827, 3827, 3820, 3829, 3828, + 3828, 3828, 3820, 3830, 3830, 3830, 3820, 3832, + 3831, 3831, 3831, 3820, 3834, 3833, 3833, 3833, + 3820, 3835, 3835, 3835, 3820, 3837, 3836, 3836, + 3836, 3820, 3838, 3838, 3838, 3838, 3839, 3839, + 3839, 3820, 3840, 3840, 3840, 3840, 77, 3841, + 3820, 3837, 3820, 3834, 3820, 3842, 3820, 3832, + 3820, 3844, 3843, 77, 3845, 3845, 3845, 3359, + 3815, 3815, 3816, 3817, 3818, 3819, 3846, 3846, + 3846, 3359, 3848, 3847, 77, 3850, 3849, 77, + 3852, 3851, 77, 3853, 2688, 3854, 3854, 3855, + 3856, 3858, 3859, 3857, 2688, 3860, 3860, 3861, + 3862, 3864, 3865, 3863, 2688, 3866, 3866, 3867, + 3868, 3870, 3871, 3869, 2688, 3872, 3872, 3873, + 3874, 3876, 3877, 3875, 2688, 3878, 3878, 3879, + 3880, 3882, 3883, 3881, 2688, 3884, 3884, 3885, + 3886, 3887, 3889, 3890, 3888, 3888, 3888, 3359, + 3891, 3891, 3891, 3891, 3359, 3892, 3892, 3892, + 3359, 3891, 3891, 3891, 3891, 3893, 3893, 3893, + 3359, 3895, 3894, 77, 3897, 3896, 77, 3899, + 3898, 77, 3900, 2688, 3901, 3901, 3902, 3903, + 3905, 3906, 3904, 2688, 3907, 3907, 3908, 3909, + 3911, 3912, 3910, 2688, 3913, 3913, 3914, 3915, + 3917, 3918, 3916, 2688, 3919, 3919, 3920, 3921, + 3923, 3924, 3922, 2688, 3925, 3925, 3926, 3927, + 3929, 3930, 3928, 2688, 3931, 3931, 3932, 3933, + 3935, 3936, 3934, 3934, 3934, 3359, 3937, 3937, + 3937, 3359, 3938, 3938, 3939, 3940, 3941, 3942, + 3943, 3943, 3944, 3945, 3934, 3934, 3934, 3359, + 3947, 3946, 3359, 3949, 3948, 77, 3951, 3950, + 77, 3953, 3952, 77, 3954, 2688, 3955, 3955, + 3956, 3957, 3959, 3960, 3958, 2688, 3961, 3961, + 3962, 3963, 3965, 3966, 3964, 2688, 3967, 3967, + 3967, 3967, 3968, 2688, 3969, 3969, 3969, 3969, + 77, 3971, 3970, 77, 3972, 2688, 3973, 3973, + 3974, 3975, 3977, 3978, 3976, 2688, 3979, 3979, + 3980, 3981, 3983, 3984, 3982, 2688, 3985, 3985, + 3986, 3987, 3989, 3990, 3988, 2688, 3991, 3991, + 3992, 3993, 3995, 3996, 3994, 2688, 3997, 3997, + 3998, 3999, 4001, 4002, 4000, 2688, 4003, 4003, + 4004, 4005, 4007, 4008, 4006, 4006, 4006, 3359, + 4009, 4009, 4009, 3359, 4010, 4010, 4011, 4012, + 4013, 4014, 4015, 4015, 4016, 4017, 4006, 4006, + 4006, 3359, 4019, 4018, 3359, 4021, 4020, 77, + 4023, 4022, 77, 4025, 4024, 77, 4026, 2688, + 4027, 4027, 4028, 4029, 4031, 4032, 4030, 2688, + 4033, 4033, 4034, 4035, 4036, 4037, 4038, 4036, + 2665, 4039, 4040, 4039, 4039, 4039, 4040, 2665, + 4042, 4041, 77, 4043, 2688, 4044, 4044, 4045, + 4046, 4048, 4049, 4047, 2688, 4050, 4050, 4051, + 4052, 4054, 4055, 4053, 4053, 4053, 3359, 4056, + 4056, 4056, 3359, 4057, 4057, 4057, 3359, 4058, + 4058, 4058, 3359, 4060, 4059, 4061, 4061, 4061, + 3359, 4062, 4062, 4062, 3359, 4063, 4063, 4063, + 3359, 4064, 4064, 4064, 3359, 4066, 4060, 4066, + 4066, 4066, 4065, 4068, 4067, 77, 4069, 4069, + 4069, 3359, 4070, 4070, 4070, 3359, 4072, 4071, + 4073, 4073, 4073, 3359, 4074, 4074, 4074, 3359, + 4075, 4072, 4075, 4075, 4075, 4071, 4076, 4076, + 4076, 3359, 4077, 4077, 4077, 3359, 4078, 4071, + 4079, 4079, 4079, 3359, 4080, 4080, 4080, 3359, + 4081, 4078, 4081, 4081, 4081, 4071, 4082, 2688, + 4083, 4083, 4084, 4085, 4087, 4088, 4086, 2688, + 4089, 4089, 4090, 4091, 4093, 4094, 4092, 2688, + 4095, 4095, 4096, 4097, 4099, 4100, 4098, 2688, + 4102, 4102, 4103, 4104, 4105, 4106, 4101, 4101, + 4101, 77, 4107, 4107, 4107, 4107, 77, 4109, + 4108, 77, 4111, 4110, 77, 4112, 2688, 4113, + 4113, 4114, 4115, 4117, 4118, 4116, 2688, 4120, + 4120, 4121, 4122, 4123, 4124, 4119, 4119, 4119, + 77, 4125, 4125, 4126, 4127, 4128, 4129, 77, + 4131, 4131, 4132, 4133, 4134, 4135, 4130, 4130, + 4130, 77, 4136, 4136, 4136, 4136, 77, 4138, + 4137, 77, 4140, 4139, 77, 4141, 2688, 4142, + 4142, 4143, 4144, 4146, 4147, 4145, 2688, 4148, + 4148, 4149, 4150, 4151, 4151, 4151, 4152, 4153, + 4151, 4151, 4151, 77, 4154, 4154, 4154, 4154, + 77, 4155, 4155, 4155, 4155, 77, 4157, 4156, + 77, 4158, 4158, 4158, 77, 4159, 4159, 4160, + 4161, 4162, 4163, 77, 4159, 4159, 4160, 4161, + 4162, 4163, 4164, 4164, 4164, 77, 4165, 4165, + 4166, 4167, 4168, 4169, 77, 4165, 4165, 4166, + 4167, 4168, 4169, 4170, 2688, 4171, 4171, 4172, + 4173, 4175, 4176, 4174, 2688, 4177, 4177, 4178, + 4179, 4180, 4180, 4180, 4181, 4182, 4180, 4180, + 4180, 77, 4183, 4183, 4183, 4183, 77, 4185, + 4184, 77, 4187, 4186, 77, 4189, 4188, 77, + 4191, 4191, 4192, 4193, 4194, 4195, 4195, 4195, + 4196, 4197, 4198, 4199, 4195, 4195, 4195, 4190, + 4200, 4200, 4201, 4202, 4203, 4204, 75, 4205, + 4204, 4196, 4197, 4206, 4207, 4208, 4209, 4210, + 4211, 75, 75, 4204, 75, 4204, 75, 4204, + 75, 914, 4213, 4213, 4192, 4214, 4215, 4195, + 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, + 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, + 4232, 4233, 4195, 4195, 4216, 4217, 4218, 4219, + 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, + 4228, 4229, 4230, 4231, 4232, 4233, 4196, 4197, + 4234, 4235, 4195, 4195, 4195, 4212, 4213, 4213, + 4192, 4214, 4215, 4195, 4238, 4239, 4240, 4241, + 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, + 4250, 4251, 4252, 4253, 4254, 4255, 4195, 4195, + 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, + 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, + 4254, 4255, 4196, 4197, 4234, 4235, 4195, 4237, + 4195, 4195, 4236, 4257, 4257, 4258, 4259, 4260, + 4261, 4261, 4261, 4262, 4263, 4264, 4265, 4261, + 4261, 4261, 4256, 4191, 4191, 4192, 4266, 4267, + 4195, 4238, 4239, 4240, 4241, 4242, 4243, 4244, + 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, + 4253, 4254, 4255, 4195, 4195, 4238, 4239, 4240, + 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, + 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4196, + 4197, 4268, 4269, 4195, 4237, 4195, 4195, 4236, + 4270, 4270, 4192, 4271, 4272, 4195, 4195, 4195, + 89, 90, 4273, 4274, 4195, 4195, 4195, 914, + 4275, 4275, 4201, 4276, 4277, 4204, 75, 4205, + 4204, 89, 90, 4273, 4278, 107, 108, 4273, + 4279, 75, 75, 4204, 75, 4204, 75, 4204, + 75, 914, 4200, 4200, 4201, 4202, 4203, 4204, + 75, 4282, 4283, 4284, 4285, 4286, 4287, 4288, + 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, + 4297, 4298, 4299, 4205, 4204, 4282, 4283, 4284, + 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, + 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4196, + 4197, 4206, 4207, 4208, 4209, 4210, 4211, 75, + 75, 4204, 4281, 75, 4204, 75, 4204, 75, + 4280, 4275, 4275, 4201, 4276, 4277, 4204, 75, + 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, + 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, + 4298, 4299, 4205, 4204, 4282, 4283, 4284, 4285, + 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, + 4294, 4295, 4296, 4297, 4298, 4299, 89, 90, + 4300, 4278, 107, 108, 4300, 4279, 75, 75, + 4204, 4281, 75, 4204, 75, 4204, 75, 4280, + 821, 821, 821, 821, 1079, 1080, 1079, 1082, + 1079, 1080, 1081, 1080, 1075, 821, 821, 821, + 1237, 1237, 1238, 1239, 1206, 1207, 1208, 1206, + 1240, 1241, 1206, 1206, 1206, 1212, 821, 1252, + 1252, 1253, 1254, 1247, 1255, 1256, 1257, 1257, + 1258, 1259, 1247, 1247, 1247, 1246, 1261, 1260, + 1246, 821, 821, 1502, 1502, 1503, 1504, 1505, + 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, + 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, + 1522, 1505, 1506, 1507, 1508, 1509, 1510, 1511, + 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, + 1520, 1521, 1522, 1523, 1524, 1525, 1525, 1526, + 1527, 1493, 1550, 1549, 1493, 821, 2127, 2127, 2128, 2129, 2130, 2131, 2132, 2132, 2133, 2134, - 2123, 2123, 2123, 2084, 2136, 2135, 2084, 2138, - 2137, 2070, 807, 807, 2222, 2222, 2223, 2224, - 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, - 2233, 2234, 2235, 2236, 2236, 2237, 2238, 2213, - 2254, 2253, 2213, 807, 807, 807, 807, 807, - 807, 807, 807, 807, 807, 2848, 2848, 2849, - 2850, 2851, 2852, 2853, 2853, 2854, 2855, 2847, - 2847, 2847, 2838, 2857, 2856, 2838, 807, 807, - 3021, 3021, 3022, 3023, 3024, 3025, 2970, 2970, - 3026, 3027, 2861, 3029, 3028, 2861, 3003, 3003, - 3004, 3005, 3007, 3008, 2970, 2970, 3009, 3010, - 3006, 2861, 3041, 3040, 2861, 2984, 2984, 2985, - 2986, 2988, 2989, 2970, 2970, 2990, 2991, 2987, - 2861, 3054, 3053, 2861, 2964, 2964, 2965, 2966, - 2968, 2969, 2970, 2970, 2971, 2972, 2967, 2861, - 3067, 3066, 2861, 807, 807, 807, 807, 3265, - 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, - 3273, 3273, 3274, 3275, 3264, 3294, 3293, 77, - 807, 3332, 3332, 3333, 3334, 3335, 3336, 3337, - 3337, 3338, 3339, 3328, 3328, 3328, 3324, 3341, - 3340, 3324, 807, 3374, 3374, 3375, 3376, 3377, - 3378, 3379, 3379, 3380, 3381, 3370, 3370, 3370, - 3324, 3383, 3382, 3324, 807, 3428, 3428, 3429, - 3430, 3434, 3434, 3434, 3434, 3439, 3440, 3434, - 3434, 3441, 3442, 3447, 3452, 3451, 3447, 3425, - 3425, 3426, 3427, 3448, 3435, 3436, 3448, 3448, - 3448, 3447, 3450, 3449, 3447, 3448, 3425, 3425, - 3426, 3427, 3428, 3428, 3429, 3430, 3431, 3431, - 3432, 3433, 3434, 3434, 3434, 3434, 3435, 3436, - 3434, 3434, 3437, 3438, 3439, 3440, 3434, 3434, - 3441, 3442, 3443, 3444, 3434, 3434, 3445, 3446, - 3448, 3448, 3448, 3447, 3450, 3452, 3454, 3449, - 3451, 3453, 3447, 807, 807, 807, 807, 807, - 807, 807, 3903, 3903, 3904, 3905, 3906, 3907, - 3908, 3908, 3909, 3910, 3899, 3899, 3899, 3324, - 3912, 3911, 3324, 807, 807, 3975, 3975, 3976, - 3977, 3978, 3979, 3980, 3980, 3981, 3982, 3971, - 3971, 3971, 3324, 3984, 3983, 3324, 807, 807, - 807, 807, 807, 807, 807, 807, 0 + 2123, 2123, 2123, 2119, 2136, 2135, 2119, 2155, + 2155, 2156, 2157, 2159, 2160, 2158, 2158, 2158, + 2119, 2105, 2162, 2162, 2163, 2164, 2165, 2166, + 2167, 2167, 2168, 2169, 2158, 2158, 2158, 2119, + 2171, 2170, 2119, 2173, 2172, 2105, 821, 821, + 2257, 2257, 2258, 2259, 2260, 2261, 2262, 2263, + 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, + 2271, 2272, 2273, 2248, 2289, 2288, 2248, 821, + 821, 821, 821, 821, 821, 821, 821, 821, + 821, 2883, 2883, 2884, 2885, 2886, 2887, 2888, + 2888, 2889, 2890, 2882, 2882, 2882, 2873, 2892, + 2891, 2873, 821, 821, 3056, 3056, 3057, 3058, + 3059, 3060, 3005, 3005, 3061, 3062, 2896, 3064, + 3063, 2896, 3038, 3038, 3039, 3040, 3042, 3043, + 3005, 3005, 3044, 3045, 3041, 2896, 3076, 3075, + 2896, 3019, 3019, 3020, 3021, 3023, 3024, 3005, + 3005, 3025, 3026, 3022, 2896, 3089, 3088, 2896, + 2999, 2999, 3000, 3001, 3003, 3004, 3005, 3005, + 3006, 3007, 3002, 2896, 3102, 3101, 2896, 821, + 821, 821, 821, 3300, 3300, 3301, 3302, 3303, + 3304, 3305, 3306, 3307, 3308, 3308, 3309, 3310, + 3299, 3329, 3328, 77, 821, 3367, 3367, 3368, + 3369, 3370, 3371, 3372, 3372, 3373, 3374, 3363, + 3363, 3363, 3359, 3376, 3375, 3359, 821, 3409, + 3409, 3410, 3411, 3412, 3413, 3414, 3414, 3415, + 3416, 3405, 3405, 3405, 3359, 3418, 3417, 3359, + 821, 3463, 3463, 3464, 3465, 3469, 3469, 3469, + 3469, 3474, 3475, 3469, 3469, 3476, 3477, 3482, + 3487, 3486, 3482, 3460, 3460, 3461, 3462, 3483, + 3470, 3471, 3483, 3483, 3483, 3482, 3485, 3484, + 3482, 3483, 3460, 3460, 3461, 3462, 3463, 3463, + 3464, 3465, 3466, 3466, 3467, 3468, 3469, 3469, + 3469, 3469, 3470, 3471, 3469, 3469, 3472, 3473, + 3474, 3475, 3469, 3469, 3476, 3477, 3478, 3479, + 3469, 3469, 3480, 3481, 3483, 3483, 3483, 3482, + 3485, 3487, 3489, 3484, 3486, 3488, 3482, 821, + 821, 821, 821, 821, 821, 821, 3938, 3938, + 3939, 3940, 3941, 3942, 3943, 3943, 3944, 3945, + 3934, 3934, 3934, 3359, 3947, 3946, 3359, 821, + 821, 4010, 4010, 4011, 4012, 4013, 4014, 4015, + 4015, 4016, 4017, 4006, 4006, 4006, 3359, 4019, + 4018, 3359, 821, 821, 821, 821, 821, 821, + 821, 821, 0 }; static const short _zone_scanner_trans_targs[] = { 0, 1, 1, 1, 2, 4, 17, 40, - 57, 64, 184, 84, 88, 96, 102, 118, - 128, 131, 138, 157, 167, 170, 176, 1474, - 192, 1479, 314, 0, 3, 3, 3, 2, - 207, 207, 207, 207, 207, 3, 210, 0, + 57, 64, 190, 84, 88, 96, 102, 118, + 128, 131, 144, 163, 173, 176, 182, 1492, + 198, 1497, 320, 0, 3, 3, 3, 2, + 213, 213, 213, 213, 213, 3, 216, 0, 3, 3, 3, 4, 17, 40, 57, 64, 73, 84, 88, 96, 102, 118, 128, 131, - 138, 157, 167, 170, 176, 3, 210, 0, - 5, 5, 5, 277, 280, 284, 5, 10, + 144, 163, 173, 176, 182, 3, 216, 0, + 5, 5, 5, 283, 286, 290, 5, 10, 6, 11, 20, 6, 5, 0, 5, 5, 9, 5, 10, 11, 20, 0, 7, 7, - 7, 1474, 8, 0, 7, 7, 7, 1474, - 8, 8, 1474, 6, 6, 10, 5, 12, - 12, 12, 13, 1480, 217, 291, 12, 12, - 12, 13, 1480, 217, 291, 13, 1475, 14, - 0, 14, 14, 15, 213, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 1482, 286, - 1480, 287, 1483, 289, 0, 16, 16, 16, - 1476, 317, 0, 16, 16, 16, 1476, 317, + 7, 1492, 8, 0, 7, 7, 7, 1492, + 8, 8, 1492, 6, 6, 10, 5, 12, + 12, 12, 13, 1498, 223, 297, 12, 12, + 12, 13, 1498, 223, 297, 13, 1493, 14, + 0, 14, 14, 15, 219, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 1500, 292, + 1498, 293, 1501, 295, 0, 16, 16, 16, + 1494, 323, 0, 16, 16, 16, 1494, 323, 18, 22, 29, 32, 36, 19, 5, 5, 5, 5, 10, 6, 11, 20, 21, 21, 21, 13, 21, 21, 21, 13, 23, 28, @@ -5181,9 +5222,9 @@ static const short _zone_scanner_trans_targs[] = { 5, 5, 5, 10, 6, 11, 20, 70, 71, 72, 5, 5, 5, 5, 10, 6, 11, 20, 74, 77, 75, 75, 75, 75, - 182, 75, 75, 75, 4, 17, 40, 57, + 188, 75, 75, 75, 4, 17, 40, 57, 64, 76, 84, 88, 96, 102, 118, 128, - 131, 138, 157, 167, 170, 176, 75, 182, + 131, 144, 163, 173, 176, 182, 75, 188, 78, 79, 80, 81, 82, 83, 5, 5, 5, 5, 10, 6, 11, 20, 85, 87, 86, 5, 5, 5, 5, 10, 6, 11, @@ -5207,1060 +5248,1069 @@ static const short _zone_scanner_trans_targs[] = { 123, 124, 125, 126, 127, 5, 5, 5, 5, 10, 6, 11, 20, 129, 130, 5, 5, 5, 5, 10, 6, 11, 20, 132, - 133, 137, 5, 5, 5, 5, 10, 6, - 11, 20, 134, 135, 136, 5, 5, 5, - 5, 10, 6, 11, 20, 5, 5, 5, - 5, 10, 6, 11, 20, 139, 144, 146, - 148, 150, 154, 140, 141, 142, 143, 5, - 5, 5, 5, 10, 6, 11, 20, 145, + 138, 139, 143, 133, 134, 135, 136, 137, + 5, 5, 5, 5, 10, 6, 11, 20, 5, 5, 5, 5, 10, 6, 11, 20, - 147, 5, 5, 5, 5, 10, 6, 11, - 20, 149, 5, 5, 5, 5, 10, 6, - 11, 20, 151, 152, 153, 5, 5, 5, - 5, 10, 6, 11, 20, 155, 156, 5, - 5, 5, 5, 10, 6, 11, 20, 158, - 161, 163, 159, 160, 5, 5, 5, 5, - 10, 6, 11, 20, 162, 5, 5, 5, - 5, 10, 6, 11, 20, 164, 165, 0, - 166, 0, 5, 5, 5, 166, 5, 10, - 6, 11, 20, 168, 169, 5, 5, 5, - 5, 10, 6, 11, 20, 171, 172, 173, - 174, 175, 5, 5, 5, 5, 10, 6, - 11, 20, 177, 178, 179, 180, 181, 5, - 5, 5, 5, 10, 6, 11, 20, 182, - 75, 183, 183, 183, 1477, 315, 185, 186, - 186, 186, 186, 191, 186, 186, 186, 187, - 4, 17, 40, 57, 64, 76, 84, 88, - 96, 102, 118, 128, 131, 138, 157, 167, - 170, 176, 186, 191, 75, 75, 75, 187, - 188, 188, 188, 188, 188, 75, 182, 189, - 189, 190, 190, 190, 190, 190, 75, 75, - 75, 189, 75, 182, 191, 186, 192, 1474, - 0, 194, 239, 245, 195, 196, 197, 198, - 199, 200, 1478, 0, 202, 202, 202, 202, - 203, 202, 202, 202, 202, 203, 203, 0, - 202, 0, 205, 205, 205, 205, 206, 205, - 205, 205, 205, 206, 206, 205, 208, 208, - 209, 209, 209, 209, 209, 3, 3, 3, - 208, 3, 210, 210, 3, 0, 212, 212, - 212, 212, 293, 294, 295, 212, 212, 212, - 212, 293, 294, 295, 0, 214, 214, 214, - 1475, 13, 1480, 217, 1481, 291, 214, 214, - 214, 1475, 1481, 215, 215, 215, 1479, 216, - 216, 1479, 218, 218, 218, 1474, 8, 218, - 218, 218, 8, 219, 219, 219, 237, 275, - 237, 1482, 0, 240, 241, 242, 243, 244, - 1478, 246, 247, 1478, 0, 215, 215, 215, - 1479, 216, 0, 250, 250, 250, 1477, 251, - 250, 250, 250, 1477, 251, 251, 1477, 0, - 253, 253, 253, 1482, 237, 1483, 275, 253, - 253, 253, 1482, 1483, 272, 0, 272, 272, - 272, 273, 215, 215, 215, 1479, 216, 274, - 1479, 274, 274, 216, 274, 274, 274, 216, - 276, 276, 276, 237, 276, 276, 276, 237, - 278, 279, 5, 5, 5, 5, 10, 6, - 11, 20, 281, 282, 283, 5, 5, 5, - 5, 10, 6, 11, 20, 285, 5, 5, - 5, 5, 10, 6, 11, 20, 286, 1482, - 288, 288, 288, 1474, 288, 288, 288, 1474, - 290, 290, 290, 290, 290, 290, 292, 292, - 292, 292, 292, 292, 293, 212, 219, 219, - 219, 237, 275, 296, 296, 296, 296, 296, - 296, 0, 314, 1479, 315, 1477, 317, 1476, - 318, 1484, 318, 318, 320, 1485, 320, 1485, - 0, 322, 328, 329, 324, 1486, 322, 323, - 324, 1486, 322, 324, 325, 0, 326, 327, - 1486, 322, 323, 324, 1486, 0, 331, 336, - 332, 1487, 331, 1488, 332, 0, 333, 334, - 335, 1487, 331, 1488, 332, 336, 337, 338, - 339, 336, 337, 338, 339, 0, 1487, 340, - 341, 342, 336, 337, 338, 339, 0, 344, - 344, 344, 344, 351, 0, 345, 0, 346, - 346, 346, 345, 348, 348, 348, 348, 348, - 1489, 347, 0, 346, 346, 346, 1489, 347, - 347, 1489, 349, 0, 349, 350, 350, 350, - 350, 350, 346, 346, 346, 349, 1489, 347, - 351, 344, 0, 353, 353, 353, 353, 363, - 354, 362, 358, 354, 355, 358, 0, 356, - 356, 356, 354, 358, 1490, 357, 356, 356, - 356, 1490, 357, 357, 1490, 359, 0, 360, - 361, 354, 355, 358, 363, 353, 365, 365, - 365, 365, 380, 366, 0, 0, 367, 367, - 367, 1491, 371, 377, 0, 367, 367, 367, - 368, 376, 372, 1491, 371, 377, 0, 368, - 369, 372, 370, 370, 370, 368, 372, 1491, - 371, 370, 370, 370, 371, 1491, 373, 0, - 374, 375, 368, 369, 372, 377, 1492, 378, - 378, 378, 378, 379, 379, 378, 380, 365, - 0, 382, 383, 384, 387, 385, 385, 385, - 385, 385, 386, 1493, 1494, 1495, 386, 385, - 0, 389, 399, 420, 437, 444, 453, 461, - 465, 473, 479, 495, 505, 508, 515, 534, - 544, 547, 553, 1496, 390, 393, 397, 391, - 392, 1496, 394, 395, 396, 1496, 398, 1496, - 400, 402, 409, 412, 416, 401, 1496, 403, - 408, 404, 405, 406, 407, 1496, 1496, 410, - 411, 1496, 413, 414, 415, 1496, 417, 418, - 419, 1496, 421, 425, 433, 422, 423, 424, - 1496, 426, 429, 427, 428, 1496, 430, 431, - 432, 1496, 1496, 434, 435, 436, 1496, 438, - 439, 440, 442, 441, 1496, 443, 1496, 445, - 449, 446, 447, 448, 1496, 450, 451, 452, - 1496, 454, 455, 456, 457, 458, 459, 460, - 1496, 462, 464, 463, 1496, 1496, 466, 468, - 470, 472, 467, 1496, 469, 1496, 471, 1496, - 1496, 474, 478, 475, 476, 477, 1496, 1496, - 480, 484, 486, 481, 482, 483, 1496, 485, - 1496, 1496, 487, 488, 1496, 489, 1496, 490, - 491, 492, 493, 494, 1496, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 1496, 506, - 507, 1496, 509, 510, 514, 1496, 511, 512, - 513, 1496, 1496, 516, 521, 523, 525, 527, - 531, 517, 518, 519, 520, 1496, 522, 1496, - 524, 1496, 526, 1496, 528, 529, 530, 1496, - 532, 533, 1496, 535, 538, 540, 536, 537, - 1496, 539, 1496, 541, 542, 0, 543, 1496, - 543, 545, 546, 1496, 548, 549, 550, 551, - 552, 1496, 554, 555, 556, 557, 558, 1496, - 0, 560, 560, 560, 560, 565, 1497, 1498, - 1499, 560, 560, 560, 561, 566, 587, 604, - 611, 620, 628, 632, 640, 646, 662, 672, - 675, 682, 701, 711, 714, 720, 560, 565, - 1497, 1498, 1499, 560, 560, 560, 562, 726, - 730, 560, 565, 1497, 1498, 1499, 563, 564, - 560, 560, 560, 560, 565, 1497, 1498, 1499, - 565, 560, 567, 569, 576, 579, 583, 568, - 560, 560, 560, 560, 565, 1497, 1498, 1499, - 570, 575, 571, 572, 573, 574, 560, 560, - 560, 560, 565, 1497, 1498, 1499, 560, 560, - 560, 560, 565, 1497, 1498, 1499, 577, 578, - 560, 560, 560, 560, 565, 1497, 1498, 1499, - 580, 581, 582, 560, 560, 560, 560, 565, - 1497, 1498, 1499, 584, 585, 586, 560, 560, - 560, 560, 565, 1497, 1498, 1499, 588, 592, - 600, 589, 590, 591, 560, 560, 560, 560, - 565, 1497, 1498, 1499, 593, 596, 594, 595, - 560, 560, 560, 560, 565, 1497, 1498, 1499, - 597, 598, 599, 560, 560, 560, 560, 565, - 1497, 1498, 1499, 560, 560, 560, 601, 560, - 565, 1497, 1498, 1499, 602, 603, 560, 560, - 560, 560, 565, 1497, 1498, 1499, 605, 606, - 607, 609, 608, 560, 560, 560, 560, 565, - 1497, 1498, 1499, 610, 560, 560, 560, 560, - 565, 1497, 1498, 1499, 612, 616, 613, 614, - 615, 560, 560, 560, 560, 565, 1497, 1498, - 1499, 617, 618, 619, 560, 560, 560, 560, - 565, 1497, 1498, 1499, 621, 622, 623, 624, - 625, 626, 627, 560, 560, 560, 560, 565, - 1497, 1498, 1499, 629, 631, 630, 560, 560, - 560, 560, 565, 1497, 1498, 1499, 560, 560, - 560, 560, 565, 1497, 1498, 1499, 633, 635, - 637, 639, 634, 560, 560, 560, 560, 565, - 1497, 1498, 1499, 636, 560, 560, 560, 560, - 565, 1497, 1498, 1499, 638, 560, 560, 560, - 560, 565, 1497, 1498, 1499, 560, 560, 560, - 560, 565, 1497, 1498, 1499, 641, 645, 642, - 643, 644, 560, 560, 560, 560, 565, 1497, - 1498, 1499, 560, 560, 560, 560, 565, 1497, - 1498, 1499, 647, 651, 653, 648, 649, 650, - 560, 560, 560, 560, 565, 1497, 1498, 1499, - 652, 560, 560, 560, 560, 565, 1497, 1498, - 1499, 560, 560, 560, 654, 560, 565, 1497, - 1498, 1499, 655, 560, 560, 560, 656, 560, - 565, 1497, 1498, 1499, 560, 560, 560, 657, - 560, 565, 1497, 1498, 1499, 658, 659, 660, - 661, 560, 560, 560, 560, 565, 1497, 1498, - 1499, 663, 664, 665, 666, 667, 668, 669, - 670, 671, 560, 560, 560, 560, 565, 1497, - 1498, 1499, 673, 674, 560, 560, 560, 560, - 565, 1497, 1498, 1499, 676, 677, 681, 560, - 560, 560, 560, 565, 1497, 1498, 1499, 678, - 679, 680, 560, 560, 560, 560, 565, 1497, - 1498, 1499, 560, 560, 560, 560, 565, 1497, - 1498, 1499, 683, 688, 690, 692, 694, 698, - 684, 685, 686, 687, 560, 560, 560, 560, - 565, 1497, 1498, 1499, 689, 560, 560, 560, - 560, 565, 1497, 1498, 1499, 691, 560, 560, - 560, 560, 565, 1497, 1498, 1499, 693, 560, - 560, 560, 560, 565, 1497, 1498, 1499, 695, - 696, 697, 560, 560, 560, 560, 565, 1497, - 1498, 1499, 699, 700, 560, 560, 560, 560, - 565, 1497, 1498, 1499, 702, 705, 707, 703, - 704, 560, 560, 560, 560, 565, 1497, 1498, - 1499, 706, 560, 560, 560, 560, 565, 1497, - 1498, 1499, 708, 709, 710, 560, 560, 560, - 710, 560, 565, 1497, 1498, 1499, 712, 713, - 560, 560, 560, 560, 565, 1497, 1498, 1499, - 715, 716, 717, 718, 719, 560, 560, 560, - 560, 565, 1497, 1498, 1499, 721, 722, 723, - 724, 725, 560, 560, 560, 560, 565, 1497, - 1498, 1499, 727, 728, 729, 560, 560, 560, - 560, 565, 1497, 1498, 1499, 731, 560, 560, - 560, 560, 565, 1497, 1498, 1499, 0, 733, - 733, 733, 733, 740, 0, 734, 735, 735, - 735, 734, 735, 739, 0, 735, 735, 735, - 736, 735, 739, 737, 737, 737, 737, 737, - 738, 1500, 1501, 1502, 738, 737, 739, 735, - 740, 733, 742, 742, 742, 742, 750, 743, - 749, 1503, 1503, 1503, 749, 1504, 1503, 1507, - 744, 744, 744, 745, 744, 748, 746, 746, - 746, 746, 746, 747, 1504, 1505, 1506, 747, - 746, 748, 744, 744, 744, 744, 744, 748, - 750, 742, 0, 752, 756, 763, 766, 779, - 783, 798, 803, 753, 754, 755, 1508, 757, - 758, 759, 760, 761, 762, 1508, 764, 765, - 1508, 767, 768, 769, 774, 770, 771, 772, - 773, 1508, 775, 776, 777, 778, 1508, 780, - 781, 0, 782, 1508, 782, 784, 785, 786, - 787, 788, 789, 790, 791, 792, 793, 794, - 795, 796, 797, 1508, 799, 800, 801, 802, - 1508, 804, 805, 806, 1508, 0, 808, 808, - 808, 808, 815, 1509, 1510, 1511, 808, 808, - 808, 809, 816, 828, 843, 868, 873, 888, - 903, 908, 808, 815, 1509, 1510, 1511, 810, - 811, 812, 813, 814, 916, 808, 808, 808, - 808, 815, 1509, 1510, 1511, 815, 808, 817, - 818, 819, 820, 821, 822, 823, 824, 825, - 808, 808, 808, 808, 815, 1509, 1510, 1511, - 826, 827, 808, 808, 808, 808, 815, 1509, - 1510, 1511, 829, 830, 831, 832, 838, 833, - 834, 835, 837, 836, 836, 833, 839, 840, - 842, 841, 841, 838, 844, 845, 846, 857, - 847, 848, 849, 850, 851, 0, 852, 855, - 853, 827, 854, 853, 853, 808, 808, 808, - 856, 855, 808, 815, 1509, 1510, 1511, 855, - 858, 859, 860, 861, 862, 863, 866, 864, - 827, 865, 864, 864, 808, 808, 808, 867, - 866, 808, 815, 1509, 1510, 1511, 866, 869, - 870, 0, 871, 808, 808, 808, 871, 872, - 808, 815, 1509, 1510, 1511, 874, 875, 876, - 877, 878, 879, 880, 881, 882, 883, 886, - 884, 827, 885, 884, 808, 808, 808, 887, - 808, 815, 1509, 1510, 1511, 886, 889, 890, - 891, 892, 893, 894, 895, 896, 897, 898, - 899, 900, 901, 902, 808, 808, 808, 808, - 815, 1509, 1510, 1511, 904, 905, 906, 907, - 808, 808, 808, 808, 815, 1509, 1510, 1511, - 909, 910, 911, 912, 913, 915, 914, 827, - 914, 808, 808, 808, 915, 808, 815, 1509, - 1510, 1511, 917, 827, 0, 919, 920, 935, - 974, 982, 995, 1512, 919, 921, 922, 1512, - 923, 1512, 924, 925, 926, 927, 928, 929, - 930, 931, 932, 933, 934, 1512, 936, 965, - 937, 943, 938, 939, 940, 941, 942, 1512, - 944, 945, 946, 947, 956, 948, 949, 950, - 951, 952, 953, 954, 955, 1512, 957, 958, - 959, 960, 961, 962, 963, 964, 1512, 966, - 971, 967, 968, 969, 970, 1512, 972, 973, - 1512, 975, 976, 977, 978, 979, 980, 981, - 1512, 983, 984, 985, 986, 987, 988, 989, - 992, 990, 991, 1512, 993, 994, 1512, 996, - 997, 998, 1001, 999, 1000, 1512, 1002, 1003, - 1004, 1016, 1019, 1512, 1005, 1006, 1007, 1008, - 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1512, - 1017, 1018, 1512, 1020, 1021, 1512, 0, 1023, - 1024, 1030, 1047, 1050, 1056, 1060, 1513, 1023, - 1025, 1026, 1027, 1028, 1029, 1513, 1031, 1037, - 1043, 1032, 1033, 1034, 1035, 1036, 1513, 1038, - 1040, 1039, 1513, 1041, 1042, 1513, 1044, 1045, - 1046, 1513, 1048, 1049, 1513, 1051, 1053, 1052, - 1513, 1054, 1055, 1513, 1057, 1058, 1059, 1513, - 1061, 1062, 1513, 0, 1064, 1065, 1514, 1064, - 1066, 1067, 1068, 1069, 1070, 1514, 0, 1072, - 1515, 1072, 1074, 1516, 1076, 1077, 1077, 1077, - 1077, 1106, 1077, 1077, 1077, 1078, 1077, 1106, - 1079, 1079, 1079, 1079, 1105, 0, 1079, 1079, - 1079, 1080, 1079, 1105, 1081, 1081, 1081, 1080, - 1081, 1104, 1081, 1081, 1081, 1082, 1081, 1104, - 0, 1083, 1083, 1083, 1082, 1101, 1101, 1101, - 1101, 1101, 1083, 1100, 1083, 1083, 1083, 1084, - 1083, 1100, 1085, 1085, 1085, 1084, 1097, 1097, - 1097, 1097, 1097, 1085, 1096, 1085, 1085, 1085, - 1086, 1085, 1096, 1087, 1087, 1087, 1086, 1093, - 1093, 1093, 1093, 1093, 1087, 1092, 1087, 1087, - 1087, 1088, 1087, 1092, 1517, 1088, 1089, 1089, - 1089, 1089, 1089, 1090, 1090, 1091, 1091, 1091, - 1091, 1091, 1517, 1090, 1092, 1087, 1094, 1094, - 1095, 1095, 1095, 1095, 1095, 1087, 1087, 1087, - 1094, 1087, 1092, 1096, 1085, 1098, 1098, 1099, - 1099, 1099, 1099, 1099, 1085, 1085, 1085, 1098, - 1085, 1096, 1100, 1083, 1102, 1102, 1103, 1103, - 1103, 1103, 1103, 1083, 1083, 1083, 1102, 1083, - 1100, 1104, 1081, 1105, 1079, 1106, 1077, 1108, - 1109, 1109, 1109, 1109, 1111, 1110, 1109, 1109, - 1109, 1109, 1111, 1518, 1111, 1109, 1113, 1114, - 1114, 1114, 1114, 1116, 1114, 1114, 1114, 1115, - 1114, 1116, 1519, 1116, 1114, 1118, 1119, 1119, - 1119, 1118, 1119, 1121, 1119, 1119, 1119, 1120, - 1119, 1121, 1520, 1121, 1119, 1123, 0, 1124, - 1124, 1124, 1124, 1125, 1521, 1522, 1523, 1123, - 1124, 1124, 1124, 1124, 1125, 1521, 1522, 1523, - 1125, 1124, 1127, 1524, 1127, 0, 1129, 1130, - 1130, 1130, 1129, 1130, 1182, 1130, 1130, 1130, - 1131, 1135, 1177, 1130, 1182, 1132, 1132, 1132, - 1131, 1132, 1181, 1132, 1132, 1132, 1133, 1132, - 1181, 1134, 1134, 1134, 1179, 1133, 1134, 1178, - 1134, 1134, 1134, 1134, 1178, 1136, 1136, 1136, - 1136, 1176, 1137, 1138, 1138, 1138, 1137, 1138, - 1175, 1138, 1138, 1138, 1139, 1143, 1170, 1138, - 1175, 1140, 1140, 1140, 1139, 1140, 1174, 1140, - 1140, 1140, 1141, 1140, 1174, 1142, 1142, 1142, - 1172, 1141, 1142, 1171, 1142, 1142, 1142, 1142, - 1171, 1144, 1144, 1144, 1144, 1169, 1145, 1146, - 1146, 1147, 1147, 1147, 1166, 1146, 1168, 1147, - 1165, 1525, 1532, 1533, 1147, 1147, 1147, 1148, - 1147, 1165, 1525, 1532, 1533, 1149, 1149, 1149, - 1162, 1148, 1164, 1149, 1161, 1525, 1530, 1531, - 1149, 1149, 1149, 1150, 1149, 1161, 1530, 1531, - 1151, 1151, 1151, 1158, 1150, 1160, 1151, 1157, - 1525, 1528, 1529, 1151, 1151, 1151, 1152, 1151, - 1157, 1528, 1529, 1153, 1153, 1153, 1155, 1152, - 1153, 1154, 1525, 1526, 1527, 1153, 1153, 1153, - 1153, 1154, 1526, 1527, 1154, 1153, 1153, 1153, - 1153, 1156, 1153, 1154, 1525, 1526, 1527, 1156, - 1157, 1151, 1151, 1151, 1151, 1159, 1160, 1151, - 1157, 1525, 1528, 1529, 1159, 1161, 1149, 1149, - 1149, 1149, 1163, 1164, 1149, 1161, 1525, 1530, - 1531, 1163, 1165, 1147, 1147, 1147, 1147, 1167, - 1168, 1147, 1165, 1525, 1532, 1533, 1167, 1169, - 1144, 1144, 1144, 1144, 1144, 1169, 1171, 1142, - 1142, 1142, 1142, 1173, 1142, 1171, 1173, 1174, - 1140, 1175, 1138, 1176, 1136, 1136, 1136, 1136, - 1136, 1176, 1178, 1134, 1134, 1134, 1134, 1180, - 1134, 1178, 1180, 1181, 1132, 1182, 1130, 1184, - 1185, 1185, 1185, 1184, 1185, 1193, 1185, 1185, - 1185, 1186, 1185, 1193, 1187, 1187, 1187, 1186, - 1187, 1192, 1187, 1187, 1187, 1188, 1187, 1192, - 1189, 1189, 1189, 1188, 1189, 1191, 1189, 1189, - 1189, 1190, 1189, 1191, 1534, 1191, 1189, 1192, - 1187, 1193, 1185, 1195, 1196, 1196, 1196, 1195, - 1196, 1210, 1196, 1196, 1196, 1197, 1196, 1210, - 1198, 1198, 1198, 1197, 1198, 1209, 1199, 1198, - 1198, 1198, 1198, 1209, 1200, 1200, 1200, 1200, - 1208, 1201, 1200, 1200, 1200, 1200, 1208, 1202, - 1202, 1202, 1202, 1207, 1203, 1202, 1202, 1202, - 1202, 1207, 1204, 1204, 1204, 1204, 1206, 1204, - 1204, 1204, 1205, 1204, 1206, 1535, 1206, 1204, - 1207, 1202, 1208, 1200, 1209, 1198, 1210, 1196, - 1212, 1213, 1213, 1213, 1213, 1221, 1214, 1215, - 1215, 1215, 1214, 1215, 1220, 1215, 1215, 1215, - 1216, 1215, 1220, 1217, 1217, 1217, 1217, 1219, - 1218, 1536, 1219, 1217, 1220, 1215, 1221, 1213, - 0, 1222, 1223, 1222, 1222, 1224, 1230, 1222, - 1229, 1537, 1538, 1539, 1224, 1230, 1225, 0, - 1226, 1226, 1227, 1228, 1222, 1222, 1222, 1228, - 1222, 1229, 1537, 1538, 1539, 1229, 1222, 1231, - 1232, 1232, 1227, 1234, 1235, 1235, 1235, 1234, - 1235, 1245, 1235, 1235, 1235, 1236, 1235, 1245, - 1237, 1237, 1237, 1237, 1244, 1238, 1239, 1239, - 1239, 1238, 1239, 1243, 0, 1239, 1239, 1239, - 1240, 1239, 1243, 1241, 1241, 1241, 1241, 1241, - 1242, 1540, 1541, 1542, 1242, 1241, 1243, 1239, - 1244, 1237, 1245, 1235, 1247, 1248, 1248, 1248, - 1247, 1248, 1255, 1248, 1248, 1248, 1249, 1248, - 1255, 1250, 1250, 1250, 1249, 1250, 1254, 1250, - 1250, 1250, 1251, 1250, 1254, 1252, 1252, 1252, - 1252, 1252, 1253, 1543, 1544, 1545, 1253, 1252, - 1254, 1250, 1255, 1248, 1257, 1258, 1258, 1258, - 1257, 1258, 1294, 0, 1258, 1258, 1258, 1259, - 1273, 1280, 1287, 1258, 1294, 1260, 1260, 1260, - 1260, 1272, 0, 1261, 1262, 1262, 1262, 1261, - 1262, 1271, 1262, 1262, 1262, 1263, 1262, 1271, - 0, 1264, 1264, 1264, 1267, 1267, 1267, 1269, - 1269, 1269, 1546, 1264, 1266, 1549, 1550, 1267, - 1268, 1547, 1548, 1269, 1270, 1551, 1552, 0, - 1265, 1266, 1264, 1268, 1267, 1270, 1269, 1271, - 1262, 1272, 1260, 1274, 1274, 1274, 1274, 1279, - 1275, 1276, 1276, 1276, 1275, 1276, 1278, 0, - 1276, 1276, 1276, 1277, 1276, 1278, 0, 1277, - 1264, 1264, 1264, 1267, 1267, 1267, 1269, 1269, - 1269, 1546, 1264, 1266, 1549, 1550, 1267, 1268, - 1547, 1548, 1269, 1270, 1551, 1552, 1278, 1276, - 1279, 1274, 1281, 1281, 1281, 1281, 1286, 1282, - 1283, 1283, 1283, 1282, 1283, 1285, 1283, 1283, - 1283, 1284, 1283, 1285, 1284, 1264, 1264, 1264, - 1267, 1267, 1267, 1269, 1269, 1269, 1546, 1264, - 1266, 1549, 1550, 1267, 1268, 1547, 1548, 1269, - 1270, 1551, 1552, 1285, 1283, 1286, 1281, 1288, - 1288, 1288, 1288, 1293, 1289, 1290, 1290, 1290, - 1289, 1290, 1292, 1290, 1290, 1290, 1291, 1290, - 1292, 1264, 1264, 1264, 1267, 1267, 1267, 1269, - 1269, 1269, 1546, 1264, 1266, 1549, 1550, 1267, - 1268, 1547, 1548, 1269, 1270, 1551, 1552, 1292, - 1290, 1293, 1288, 1294, 1258, 1296, 1297, 1297, - 1297, 1297, 1320, 1298, 1299, 1299, 1299, 1299, - 1319, 1300, 1301, 1301, 1301, 1300, 1301, 1318, - 1301, 1301, 1301, 1302, 1301, 1318, 1303, 1303, - 1303, 1302, 1303, 1317, 0, 1303, 1303, 1303, - 1304, 1303, 1317, 1305, 1305, 1305, 1304, 1305, - 1316, 1305, 1305, 1305, 1306, 1305, 1316, 1307, - 1307, 1307, 1306, 1307, 1315, 1307, 1307, 1307, - 1308, 1307, 1315, 1309, 1309, 1309, 1308, 1309, - 1314, 1309, 1309, 1309, 1310, 1309, 1314, 1311, - 1311, 1311, 1311, 1313, 1311, 1311, 1311, 1312, - 1311, 1313, 1553, 1313, 1311, 1314, 1309, 1315, - 1307, 1316, 1305, 1317, 1303, 1318, 1301, 1319, - 1299, 1320, 1297, 1322, 1323, 1554, 1325, 1326, - 1326, 1326, 1325, 1326, 1334, 1326, 1326, 1326, - 1327, 1326, 1334, 1328, 1328, 1328, 1327, 1328, - 1333, 1328, 1328, 1328, 1329, 1328, 1333, 1330, - 1330, 1330, 1330, 1332, 1331, 1555, 1332, 1330, - 1333, 1328, 1334, 1326, 1336, 1556, 1338, 1339, - 1339, 1339, 1338, 1339, 1365, 1339, 1339, 1339, - 1340, 1339, 1365, 1341, 1341, 1341, 1340, 1341, - 1364, 1341, 1341, 1341, 1342, 1341, 1364, 1343, - 1343, 1343, 1342, 1343, 1363, 1343, 1343, 1343, - 1344, 1361, 1343, 1363, 1345, 1345, 1345, 1345, - 1360, 0, 1345, 1345, 1345, 1346, 1345, 1360, - 1347, 1348, 1358, 1349, 1350, 1357, 1351, 1355, - 1352, 1353, 1353, 1354, 1346, 1557, 1356, 1359, - 1360, 1345, 1362, 1361, 1363, 1343, 1364, 1341, - 1365, 1339, 1367, 1368, 1368, 1368, 1367, 1368, - 1378, 1368, 1368, 1368, 1369, 1368, 1378, 1370, - 1370, 1370, 1369, 1370, 1377, 1370, 1370, 1370, - 1371, 1370, 1377, 1372, 1372, 1372, 1371, 1372, - 1376, 1372, 1372, 1372, 1373, 1374, 1372, 1376, - 1558, 1375, 1374, 1376, 1372, 1377, 1370, 1378, - 1368, 1380, 1381, 1381, 1381, 1380, 1381, 1391, - 1381, 1381, 1381, 1382, 1381, 1391, 1383, 1383, - 1383, 1382, 1383, 1390, 1383, 1383, 1383, 1384, - 1383, 1390, 1385, 1385, 1385, 1384, 1385, 1389, - 1385, 1385, 1385, 1386, 1385, 1389, 1387, 1387, - 1387, 1387, 1387, 1388, 1559, 1560, 1561, 1388, - 1387, 1389, 1385, 1390, 1383, 1391, 1381, 1393, - 1394, 1394, 1394, 1393, 1394, 1397, 1394, 1394, - 1394, 1395, 1394, 1397, 1396, 1395, 1562, 1397, - 1394, 1399, 1400, 1400, 1400, 1399, 1400, 1410, - 1400, 1400, 1400, 1401, 1400, 1410, 1402, 1402, - 1402, 1401, 1402, 1409, 1402, 1402, 1402, 1403, - 1402, 1409, 1404, 1404, 1404, 1403, 1404, 1408, - 1404, 1404, 1404, 1405, 1404, 1408, 1406, 1406, - 1406, 1406, 1406, 1407, 1563, 1564, 1565, 1407, - 1406, 1408, 1404, 1409, 1402, 1410, 1400, 1412, - 1413, 1413, 1413, 1412, 1413, 1415, 1413, 1413, - 1413, 1414, 1413, 1415, 1566, 1414, 1415, 1413, - 1417, 1418, 1418, 1418, 1417, 1418, 1428, 1418, - 1418, 1418, 1419, 1418, 1428, 1420, 1421, 1422, - 0, 1423, 1424, 1425, 1426, 1427, 0, 1567, - 1428, 1418, 1430, 1431, 0, 1432, 1433, 1434, - 1568, 1436, 1437, 1438, 1439, 1440, 1569, 1442, - 1443, 1443, 1443, 1442, 1443, 1448, 1443, 1443, - 1443, 1444, 1443, 1448, 1445, 1445, 1445, 1444, - 1445, 1447, 1446, 1445, 1445, 1445, 1445, 1447, - 1570, 1447, 1445, 1448, 1443, 1450, 1451, 1451, - 1451, 1450, 1451, 1456, 1452, 1451, 1451, 1451, - 1451, 1456, 1453, 1453, 1453, 1453, 1455, 1454, - 1453, 1453, 1453, 1453, 1455, 1571, 1455, 1453, - 1456, 1451, 1458, 1459, 1459, 1459, 1458, 1459, - 1462, 1459, 1459, 1459, 1460, 1459, 1462, 1461, - 1572, 1462, 1459, 1464, 1465, 1465, 1465, 1465, - 1473, 1466, 1467, 1467, 1467, 1467, 1472, 1468, - 1469, 1469, 1469, 1468, 1469, 1471, 1469, 1469, - 1469, 1470, 1469, 1471, 1573, 1471, 1469, 1472, - 1467, 1473, 1465, 0, 1, 193, 1, 1, - 201, 1474, 192, 1479, 314, 14, 238, 14, - 14, 248, 271, 1482, 286, 1480, 287, 1483, - 289, 0, 183, 183, 183, 211, 297, 298, - 299, 300, 316, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 1477, - 315, 0, 204, 211, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 0, 1, 193, - 1, 1, 201, 1474, 192, 1479, 314, 1, - 1, 1479, 314, 215, 215, 215, 1479, 216, - 219, 219, 219, 237, 275, 0, 249, 252, - 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, - 270, 1479 + 140, 141, 142, 5, 5, 5, 5, 10, + 6, 11, 20, 5, 5, 5, 5, 10, + 6, 11, 20, 145, 150, 152, 154, 156, + 160, 146, 147, 148, 149, 5, 5, 5, + 5, 10, 6, 11, 20, 151, 5, 5, + 5, 5, 10, 6, 11, 20, 153, 5, + 5, 5, 5, 10, 6, 11, 20, 155, + 5, 5, 5, 5, 10, 6, 11, 20, + 157, 158, 159, 5, 5, 5, 5, 10, + 6, 11, 20, 161, 162, 5, 5, 5, + 5, 10, 6, 11, 20, 164, 167, 169, + 165, 166, 5, 5, 5, 5, 10, 6, + 11, 20, 168, 5, 5, 5, 5, 10, + 6, 11, 20, 170, 171, 0, 172, 0, + 5, 5, 5, 172, 5, 10, 6, 11, + 20, 174, 175, 5, 5, 5, 5, 10, + 6, 11, 20, 177, 178, 179, 180, 181, + 5, 5, 5, 5, 10, 6, 11, 20, + 183, 184, 185, 186, 187, 5, 5, 5, + 5, 10, 6, 11, 20, 188, 75, 189, + 189, 189, 1495, 321, 191, 192, 192, 192, + 192, 197, 192, 192, 192, 193, 4, 17, + 40, 57, 64, 76, 84, 88, 96, 102, + 118, 128, 131, 144, 163, 173, 176, 182, + 192, 197, 75, 75, 75, 193, 194, 194, + 194, 194, 194, 75, 188, 195, 195, 196, + 196, 196, 196, 196, 75, 75, 75, 195, + 75, 188, 197, 192, 198, 1492, 0, 200, + 245, 251, 201, 202, 203, 204, 205, 206, + 1496, 0, 208, 208, 208, 208, 209, 208, + 208, 208, 208, 209, 209, 0, 208, 0, + 211, 211, 211, 211, 212, 211, 211, 211, + 211, 212, 212, 211, 214, 214, 215, 215, + 215, 215, 215, 3, 3, 3, 214, 3, + 216, 216, 3, 0, 218, 218, 218, 218, + 299, 300, 301, 218, 218, 218, 218, 299, + 300, 301, 0, 220, 220, 220, 1493, 13, + 1498, 223, 1499, 297, 220, 220, 220, 1493, + 1499, 221, 221, 221, 1497, 222, 222, 1497, + 224, 224, 224, 1492, 8, 224, 224, 224, + 8, 225, 225, 225, 243, 281, 243, 1500, + 0, 246, 247, 248, 249, 250, 1496, 252, + 253, 1496, 0, 221, 221, 221, 1497, 222, + 0, 256, 256, 256, 1495, 257, 256, 256, + 256, 1495, 257, 257, 1495, 0, 259, 259, + 259, 1500, 243, 1501, 281, 259, 259, 259, + 1500, 1501, 278, 0, 278, 278, 278, 279, + 221, 221, 221, 1497, 222, 280, 1497, 280, + 280, 222, 280, 280, 280, 222, 282, 282, + 282, 243, 282, 282, 282, 243, 284, 285, + 5, 5, 5, 5, 10, 6, 11, 20, + 287, 288, 289, 5, 5, 5, 5, 10, + 6, 11, 20, 291, 5, 5, 5, 5, + 10, 6, 11, 20, 292, 1500, 294, 294, + 294, 1492, 294, 294, 294, 1492, 296, 296, + 296, 296, 296, 296, 298, 298, 298, 298, + 298, 298, 299, 218, 225, 225, 225, 243, + 281, 302, 302, 302, 302, 302, 302, 0, + 320, 1497, 321, 1495, 323, 1494, 324, 1502, + 324, 324, 326, 1503, 326, 1503, 0, 328, + 334, 335, 330, 1504, 328, 329, 330, 1504, + 328, 330, 331, 0, 332, 333, 1504, 328, + 329, 330, 1504, 0, 337, 342, 338, 1505, + 337, 1506, 338, 0, 339, 340, 341, 1505, + 337, 1506, 338, 342, 343, 344, 345, 342, + 343, 344, 345, 0, 1505, 346, 347, 348, + 342, 343, 344, 345, 0, 350, 350, 350, + 350, 357, 0, 351, 0, 352, 352, 352, + 351, 354, 354, 354, 354, 354, 1507, 353, + 0, 352, 352, 352, 1507, 353, 353, 1507, + 355, 0, 355, 356, 356, 356, 356, 356, + 352, 352, 352, 355, 1507, 353, 357, 350, + 0, 359, 359, 359, 359, 369, 360, 368, + 364, 360, 361, 364, 0, 362, 362, 362, + 360, 364, 1508, 363, 362, 362, 362, 1508, + 363, 363, 1508, 365, 0, 366, 367, 360, + 361, 364, 369, 359, 371, 371, 371, 371, + 386, 372, 0, 0, 373, 373, 373, 1509, + 377, 383, 0, 373, 373, 373, 374, 382, + 378, 1509, 377, 383, 0, 374, 375, 378, + 376, 376, 376, 374, 378, 1509, 377, 376, + 376, 376, 377, 1509, 379, 0, 380, 381, + 374, 375, 378, 383, 1510, 384, 384, 384, + 384, 385, 385, 384, 386, 371, 0, 388, + 389, 390, 393, 391, 391, 391, 391, 391, + 392, 1511, 1512, 1513, 392, 391, 0, 395, + 405, 426, 443, 450, 459, 467, 471, 479, + 485, 501, 511, 514, 527, 546, 556, 559, + 565, 1514, 396, 399, 403, 397, 398, 1514, + 400, 401, 402, 1514, 404, 1514, 406, 408, + 415, 418, 422, 407, 1514, 409, 414, 410, + 411, 412, 413, 1514, 1514, 416, 417, 1514, + 419, 420, 421, 1514, 423, 424, 425, 1514, + 427, 431, 439, 428, 429, 430, 1514, 432, + 435, 433, 434, 1514, 436, 437, 438, 1514, + 1514, 440, 441, 442, 1514, 444, 445, 446, + 448, 447, 1514, 449, 1514, 451, 455, 452, + 453, 454, 1514, 456, 457, 458, 1514, 460, + 461, 462, 463, 464, 465, 466, 1514, 468, + 470, 469, 1514, 1514, 472, 474, 476, 478, + 473, 1514, 475, 1514, 477, 1514, 1514, 480, + 484, 481, 482, 483, 1514, 1514, 486, 490, + 492, 487, 488, 489, 1514, 491, 1514, 1514, + 493, 494, 1514, 495, 1514, 496, 497, 498, + 499, 500, 1514, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 1514, 512, 513, 1514, + 515, 521, 522, 526, 516, 517, 518, 519, + 520, 1514, 1514, 523, 524, 525, 1514, 1514, + 528, 533, 535, 537, 539, 543, 529, 530, + 531, 532, 1514, 534, 1514, 536, 1514, 538, + 1514, 540, 541, 542, 1514, 544, 545, 1514, + 547, 550, 552, 548, 549, 1514, 551, 1514, + 553, 554, 0, 555, 1514, 555, 557, 558, + 1514, 560, 561, 562, 563, 564, 1514, 566, + 567, 568, 569, 570, 1514, 0, 572, 572, + 572, 572, 577, 1515, 1516, 1517, 572, 572, + 572, 573, 578, 599, 616, 623, 632, 640, + 644, 652, 658, 674, 684, 687, 700, 719, + 729, 732, 738, 572, 577, 1515, 1516, 1517, + 572, 572, 572, 574, 744, 748, 572, 577, + 1515, 1516, 1517, 575, 576, 572, 572, 572, + 572, 577, 1515, 1516, 1517, 577, 572, 579, + 581, 588, 591, 595, 580, 572, 572, 572, + 572, 577, 1515, 1516, 1517, 582, 587, 583, + 584, 585, 586, 572, 572, 572, 572, 577, + 1515, 1516, 1517, 572, 572, 572, 572, 577, + 1515, 1516, 1517, 589, 590, 572, 572, 572, + 572, 577, 1515, 1516, 1517, 592, 593, 594, + 572, 572, 572, 572, 577, 1515, 1516, 1517, + 596, 597, 598, 572, 572, 572, 572, 577, + 1515, 1516, 1517, 600, 604, 612, 601, 602, + 603, 572, 572, 572, 572, 577, 1515, 1516, + 1517, 605, 608, 606, 607, 572, 572, 572, + 572, 577, 1515, 1516, 1517, 609, 610, 611, + 572, 572, 572, 572, 577, 1515, 1516, 1517, + 572, 572, 572, 613, 572, 577, 1515, 1516, + 1517, 614, 615, 572, 572, 572, 572, 577, + 1515, 1516, 1517, 617, 618, 619, 621, 620, + 572, 572, 572, 572, 577, 1515, 1516, 1517, + 622, 572, 572, 572, 572, 577, 1515, 1516, + 1517, 624, 628, 625, 626, 627, 572, 572, + 572, 572, 577, 1515, 1516, 1517, 629, 630, + 631, 572, 572, 572, 572, 577, 1515, 1516, + 1517, 633, 634, 635, 636, 637, 638, 639, + 572, 572, 572, 572, 577, 1515, 1516, 1517, + 641, 643, 642, 572, 572, 572, 572, 577, + 1515, 1516, 1517, 572, 572, 572, 572, 577, + 1515, 1516, 1517, 645, 647, 649, 651, 646, + 572, 572, 572, 572, 577, 1515, 1516, 1517, + 648, 572, 572, 572, 572, 577, 1515, 1516, + 1517, 650, 572, 572, 572, 572, 577, 1515, + 1516, 1517, 572, 572, 572, 572, 577, 1515, + 1516, 1517, 653, 657, 654, 655, 656, 572, + 572, 572, 572, 577, 1515, 1516, 1517, 572, + 572, 572, 572, 577, 1515, 1516, 1517, 659, + 663, 665, 660, 661, 662, 572, 572, 572, + 572, 577, 1515, 1516, 1517, 664, 572, 572, + 572, 572, 577, 1515, 1516, 1517, 572, 572, + 572, 666, 572, 577, 1515, 1516, 1517, 667, + 572, 572, 572, 668, 572, 577, 1515, 1516, + 1517, 572, 572, 572, 669, 572, 577, 1515, + 1516, 1517, 670, 671, 672, 673, 572, 572, + 572, 572, 577, 1515, 1516, 1517, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 572, + 572, 572, 572, 577, 1515, 1516, 1517, 685, + 686, 572, 572, 572, 572, 577, 1515, 1516, + 1517, 688, 694, 695, 699, 689, 690, 691, + 692, 693, 572, 572, 572, 572, 577, 1515, + 1516, 1517, 572, 572, 572, 572, 577, 1515, + 1516, 1517, 696, 697, 698, 572, 572, 572, + 572, 577, 1515, 1516, 1517, 572, 572, 572, + 572, 577, 1515, 1516, 1517, 701, 706, 708, + 710, 712, 716, 702, 703, 704, 705, 572, + 572, 572, 572, 577, 1515, 1516, 1517, 707, + 572, 572, 572, 572, 577, 1515, 1516, 1517, + 709, 572, 572, 572, 572, 577, 1515, 1516, + 1517, 711, 572, 572, 572, 572, 577, 1515, + 1516, 1517, 713, 714, 715, 572, 572, 572, + 572, 577, 1515, 1516, 1517, 717, 718, 572, + 572, 572, 572, 577, 1515, 1516, 1517, 720, + 723, 725, 721, 722, 572, 572, 572, 572, + 577, 1515, 1516, 1517, 724, 572, 572, 572, + 572, 577, 1515, 1516, 1517, 726, 727, 728, + 572, 572, 572, 728, 572, 577, 1515, 1516, + 1517, 730, 731, 572, 572, 572, 572, 577, + 1515, 1516, 1517, 733, 734, 735, 736, 737, + 572, 572, 572, 572, 577, 1515, 1516, 1517, + 739, 740, 741, 742, 743, 572, 572, 572, + 572, 577, 1515, 1516, 1517, 745, 746, 747, + 572, 572, 572, 572, 577, 1515, 1516, 1517, + 749, 572, 572, 572, 572, 577, 1515, 1516, + 1517, 0, 751, 751, 751, 751, 758, 0, + 752, 753, 753, 753, 752, 753, 757, 0, + 753, 753, 753, 754, 753, 757, 755, 755, + 755, 755, 755, 756, 1518, 1519, 1520, 756, + 755, 757, 753, 758, 751, 760, 760, 760, + 760, 768, 761, 767, 1521, 1521, 1521, 767, + 1522, 1521, 1525, 762, 762, 762, 763, 762, + 766, 764, 764, 764, 764, 764, 765, 1522, + 1523, 1524, 765, 764, 766, 762, 762, 762, + 762, 762, 766, 768, 760, 0, 770, 774, + 781, 784, 797, 801, 816, 821, 771, 772, + 773, 1526, 775, 776, 777, 778, 779, 780, + 1526, 782, 783, 1526, 785, 786, 787, 792, + 788, 789, 790, 791, 1526, 793, 794, 795, + 796, 1526, 798, 799, 0, 800, 1526, 800, + 802, 803, 804, 805, 806, 807, 808, 809, + 810, 811, 812, 813, 814, 815, 1526, 817, + 818, 819, 820, 1526, 822, 823, 824, 1526, + 0, 826, 826, 826, 826, 833, 1527, 1528, + 1529, 826, 826, 826, 827, 834, 846, 861, + 886, 891, 906, 921, 926, 826, 833, 1527, + 1528, 1529, 828, 829, 830, 831, 832, 934, + 826, 826, 826, 826, 833, 1527, 1528, 1529, + 833, 826, 835, 836, 837, 838, 839, 840, + 841, 842, 843, 826, 826, 826, 826, 833, + 1527, 1528, 1529, 844, 845, 826, 826, 826, + 826, 833, 1527, 1528, 1529, 847, 848, 849, + 850, 856, 851, 852, 853, 855, 854, 854, + 851, 857, 858, 860, 859, 859, 856, 862, + 863, 864, 875, 865, 866, 867, 868, 869, + 0, 870, 873, 871, 845, 872, 871, 871, + 826, 826, 826, 874, 873, 826, 833, 1527, + 1528, 1529, 873, 876, 877, 878, 879, 880, + 881, 884, 882, 845, 883, 882, 882, 826, + 826, 826, 885, 884, 826, 833, 1527, 1528, + 1529, 884, 887, 888, 0, 889, 826, 826, + 826, 889, 890, 826, 833, 1527, 1528, 1529, + 892, 893, 894, 895, 896, 897, 898, 899, + 900, 901, 904, 902, 845, 903, 902, 826, + 826, 826, 905, 826, 833, 1527, 1528, 1529, + 904, 907, 908, 909, 910, 911, 912, 913, + 914, 915, 916, 917, 918, 919, 920, 826, + 826, 826, 826, 833, 1527, 1528, 1529, 922, + 923, 924, 925, 826, 826, 826, 826, 833, + 1527, 1528, 1529, 927, 928, 929, 930, 931, + 933, 932, 845, 932, 826, 826, 826, 933, + 826, 833, 1527, 1528, 1529, 935, 845, 0, + 937, 938, 953, 992, 1000, 1013, 1530, 937, + 939, 940, 1530, 941, 1530, 942, 943, 944, + 945, 946, 947, 948, 949, 950, 951, 952, + 1530, 954, 983, 955, 961, 956, 957, 958, + 959, 960, 1530, 962, 963, 964, 965, 974, + 966, 967, 968, 969, 970, 971, 972, 973, + 1530, 975, 976, 977, 978, 979, 980, 981, + 982, 1530, 984, 989, 985, 986, 987, 988, + 1530, 990, 991, 1530, 993, 994, 995, 996, + 997, 998, 999, 1530, 1001, 1002, 1003, 1004, + 1005, 1006, 1007, 1010, 1008, 1009, 1530, 1011, + 1012, 1530, 1014, 1015, 1016, 1019, 1017, 1018, + 1530, 1020, 1021, 1022, 1034, 1037, 1530, 1023, + 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, + 1032, 1033, 1530, 1035, 1036, 1530, 1038, 1039, + 1530, 0, 1041, 1042, 1048, 1065, 1068, 1074, + 1078, 1531, 1041, 1043, 1044, 1045, 1046, 1047, + 1531, 1049, 1055, 1061, 1050, 1051, 1052, 1053, + 1054, 1531, 1056, 1058, 1057, 1531, 1059, 1060, + 1531, 1062, 1063, 1064, 1531, 1066, 1067, 1531, + 1069, 1071, 1070, 1531, 1072, 1073, 1531, 1075, + 1076, 1077, 1531, 1079, 1080, 1531, 0, 1082, + 1083, 1532, 1082, 1084, 1085, 1086, 1087, 1088, + 1532, 0, 1090, 1533, 1090, 1092, 1534, 1094, + 1095, 1095, 1095, 1095, 1124, 1095, 1095, 1095, + 1096, 1095, 1124, 1097, 1097, 1097, 1097, 1123, + 0, 1097, 1097, 1097, 1098, 1097, 1123, 1099, + 1099, 1099, 1098, 1099, 1122, 1099, 1099, 1099, + 1100, 1099, 1122, 0, 1101, 1101, 1101, 1100, + 1119, 1119, 1119, 1119, 1119, 1101, 1118, 1101, + 1101, 1101, 1102, 1101, 1118, 1103, 1103, 1103, + 1102, 1115, 1115, 1115, 1115, 1115, 1103, 1114, + 1103, 1103, 1103, 1104, 1103, 1114, 1105, 1105, + 1105, 1104, 1111, 1111, 1111, 1111, 1111, 1105, + 1110, 1105, 1105, 1105, 1106, 1105, 1110, 1535, + 1106, 1107, 1107, 1107, 1107, 1107, 1108, 1108, + 1109, 1109, 1109, 1109, 1109, 1535, 1108, 1110, + 1105, 1112, 1112, 1113, 1113, 1113, 1113, 1113, + 1105, 1105, 1105, 1112, 1105, 1110, 1114, 1103, + 1116, 1116, 1117, 1117, 1117, 1117, 1117, 1103, + 1103, 1103, 1116, 1103, 1114, 1118, 1101, 1120, + 1120, 1121, 1121, 1121, 1121, 1121, 1101, 1101, + 1101, 1120, 1101, 1118, 1122, 1099, 1123, 1097, + 1124, 1095, 1126, 1127, 1127, 1127, 1127, 1129, + 1128, 1127, 1127, 1127, 1127, 1129, 1536, 1129, + 1127, 1131, 1132, 1132, 1132, 1132, 1134, 1132, + 1132, 1132, 1133, 1132, 1134, 1537, 1134, 1132, + 1136, 1137, 1137, 1137, 1136, 1137, 1139, 1137, + 1137, 1137, 1138, 1137, 1139, 1538, 1139, 1137, + 1141, 0, 1142, 1142, 1142, 1142, 1143, 1539, + 1540, 1541, 1141, 1142, 1142, 1142, 1142, 1143, + 1539, 1540, 1541, 1143, 1142, 1145, 1542, 1145, + 0, 1147, 1148, 1148, 1148, 1147, 1148, 1200, + 1148, 1148, 1148, 1149, 1153, 1195, 1148, 1200, + 1150, 1150, 1150, 1149, 1150, 1199, 1150, 1150, + 1150, 1151, 1150, 1199, 1152, 1152, 1152, 1197, + 1151, 1152, 1196, 1152, 1152, 1152, 1152, 1196, + 1154, 1154, 1154, 1154, 1194, 1155, 1156, 1156, + 1156, 1155, 1156, 1193, 1156, 1156, 1156, 1157, + 1161, 1188, 1156, 1193, 1158, 1158, 1158, 1157, + 1158, 1192, 1158, 1158, 1158, 1159, 1158, 1192, + 1160, 1160, 1160, 1190, 1159, 1160, 1189, 1160, + 1160, 1160, 1160, 1189, 1162, 1162, 1162, 1162, + 1187, 1163, 1164, 1164, 1165, 1165, 1165, 1184, + 1164, 1186, 1165, 1183, 1543, 1550, 1551, 1165, + 1165, 1165, 1166, 1165, 1183, 1543, 1550, 1551, + 1167, 1167, 1167, 1180, 1166, 1182, 1167, 1179, + 1543, 1548, 1549, 1167, 1167, 1167, 1168, 1167, + 1179, 1548, 1549, 1169, 1169, 1169, 1176, 1168, + 1178, 1169, 1175, 1543, 1546, 1547, 1169, 1169, + 1169, 1170, 1169, 1175, 1546, 1547, 1171, 1171, + 1171, 1173, 1170, 1171, 1172, 1543, 1544, 1545, + 1171, 1171, 1171, 1171, 1172, 1544, 1545, 1172, + 1171, 1171, 1171, 1171, 1174, 1171, 1172, 1543, + 1544, 1545, 1174, 1175, 1169, 1169, 1169, 1169, + 1177, 1178, 1169, 1175, 1543, 1546, 1547, 1177, + 1179, 1167, 1167, 1167, 1167, 1181, 1182, 1167, + 1179, 1543, 1548, 1549, 1181, 1183, 1165, 1165, + 1165, 1165, 1185, 1186, 1165, 1183, 1543, 1550, + 1551, 1185, 1187, 1162, 1162, 1162, 1162, 1162, + 1187, 1189, 1160, 1160, 1160, 1160, 1191, 1160, + 1189, 1191, 1192, 1158, 1193, 1156, 1194, 1154, + 1154, 1154, 1154, 1154, 1194, 1196, 1152, 1152, + 1152, 1152, 1198, 1152, 1196, 1198, 1199, 1150, + 1200, 1148, 1202, 1203, 1203, 1203, 1202, 1203, + 1211, 1203, 1203, 1203, 1204, 1203, 1211, 1205, + 1205, 1205, 1204, 1205, 1210, 1205, 1205, 1205, + 1206, 1205, 1210, 1207, 1207, 1207, 1206, 1207, + 1209, 1207, 1207, 1207, 1208, 1207, 1209, 1552, + 1209, 1207, 1210, 1205, 1211, 1203, 1213, 1214, + 1214, 1214, 1213, 1214, 1228, 1214, 1214, 1214, + 1215, 1214, 1228, 1216, 1216, 1216, 1215, 1216, + 1227, 1217, 1216, 1216, 1216, 1216, 1227, 1218, + 1218, 1218, 1218, 1226, 1219, 1218, 1218, 1218, + 1218, 1226, 1220, 1220, 1220, 1220, 1225, 1221, + 1220, 1220, 1220, 1220, 1225, 1222, 1222, 1222, + 1222, 1224, 1222, 1222, 1222, 1223, 1222, 1224, + 1553, 1224, 1222, 1225, 1220, 1226, 1218, 1227, + 1216, 1228, 1214, 1230, 1231, 1231, 1231, 1231, + 1239, 1232, 1233, 1233, 1233, 1232, 1233, 1238, + 1233, 1233, 1233, 1234, 1233, 1238, 1235, 1235, + 1235, 1235, 1237, 1236, 1554, 1237, 1235, 1238, + 1233, 1239, 1231, 0, 1240, 1241, 1240, 1240, + 1242, 1248, 1240, 1247, 1555, 1556, 1557, 1242, + 1248, 1243, 0, 1244, 1244, 1245, 1246, 1240, + 1240, 1240, 1246, 1240, 1247, 1555, 1556, 1557, + 1247, 1240, 1249, 1250, 1250, 1245, 1252, 1253, + 1253, 1253, 1252, 1253, 1263, 1253, 1253, 1253, + 1254, 1253, 1263, 1255, 1255, 1255, 1255, 1262, + 1256, 1257, 1257, 1257, 1256, 1257, 1261, 0, + 1257, 1257, 1257, 1258, 1257, 1261, 1259, 1259, + 1259, 1259, 1259, 1260, 1558, 1559, 1560, 1260, + 1259, 1261, 1257, 1262, 1255, 1263, 1253, 1265, + 1266, 1266, 1266, 1265, 1266, 1273, 1266, 1266, + 1266, 1267, 1266, 1273, 1268, 1268, 1268, 1267, + 1268, 1272, 1268, 1268, 1268, 1269, 1268, 1272, + 1270, 1270, 1270, 1270, 1270, 1271, 1561, 1562, + 1563, 1271, 1270, 1272, 1268, 1273, 1266, 1275, + 1276, 1276, 1276, 1275, 1276, 1312, 0, 1276, + 1276, 1276, 1277, 1291, 1298, 1305, 1276, 1312, + 1278, 1278, 1278, 1278, 1290, 0, 1279, 1280, + 1280, 1280, 1279, 1280, 1289, 1280, 1280, 1280, + 1281, 1280, 1289, 0, 1282, 1282, 1282, 1285, + 1285, 1285, 1287, 1287, 1287, 1564, 1282, 1284, + 1567, 1568, 1285, 1286, 1565, 1566, 1287, 1288, + 1569, 1570, 0, 1283, 1284, 1282, 1286, 1285, + 1288, 1287, 1289, 1280, 1290, 1278, 1292, 1292, + 1292, 1292, 1297, 1293, 1294, 1294, 1294, 1293, + 1294, 1296, 0, 1294, 1294, 1294, 1295, 1294, + 1296, 0, 1295, 1282, 1282, 1282, 1285, 1285, + 1285, 1287, 1287, 1287, 1564, 1282, 1284, 1567, + 1568, 1285, 1286, 1565, 1566, 1287, 1288, 1569, + 1570, 1296, 1294, 1297, 1292, 1299, 1299, 1299, + 1299, 1304, 1300, 1301, 1301, 1301, 1300, 1301, + 1303, 1301, 1301, 1301, 1302, 1301, 1303, 1302, + 1282, 1282, 1282, 1285, 1285, 1285, 1287, 1287, + 1287, 1564, 1282, 1284, 1567, 1568, 1285, 1286, + 1565, 1566, 1287, 1288, 1569, 1570, 1303, 1301, + 1304, 1299, 1306, 1306, 1306, 1306, 1311, 1307, + 1308, 1308, 1308, 1307, 1308, 1310, 1308, 1308, + 1308, 1309, 1308, 1310, 1282, 1282, 1282, 1285, + 1285, 1285, 1287, 1287, 1287, 1564, 1282, 1284, + 1567, 1568, 1285, 1286, 1565, 1566, 1287, 1288, + 1569, 1570, 1310, 1308, 1311, 1306, 1312, 1276, + 1314, 1315, 1315, 1315, 1315, 1338, 1316, 1317, + 1317, 1317, 1317, 1337, 1318, 1319, 1319, 1319, + 1318, 1319, 1336, 1319, 1319, 1319, 1320, 1319, + 1336, 1321, 1321, 1321, 1320, 1321, 1335, 0, + 1321, 1321, 1321, 1322, 1321, 1335, 1323, 1323, + 1323, 1322, 1323, 1334, 1323, 1323, 1323, 1324, + 1323, 1334, 1325, 1325, 1325, 1324, 1325, 1333, + 1325, 1325, 1325, 1326, 1325, 1333, 1327, 1327, + 1327, 1326, 1327, 1332, 1327, 1327, 1327, 1328, + 1327, 1332, 1329, 1329, 1329, 1329, 1331, 1329, + 1329, 1329, 1330, 1329, 1331, 1571, 1331, 1329, + 1332, 1327, 1333, 1325, 1334, 1323, 1335, 1321, + 1336, 1319, 1337, 1317, 1338, 1315, 1340, 1341, + 1572, 1343, 1344, 1344, 1344, 1343, 1344, 1352, + 1344, 1344, 1344, 1345, 1344, 1352, 1346, 1346, + 1346, 1345, 1346, 1351, 1346, 1346, 1346, 1347, + 1346, 1351, 1348, 1348, 1348, 1348, 1350, 1349, + 1573, 1350, 1348, 1351, 1346, 1352, 1344, 1354, + 1574, 1356, 1357, 1357, 1357, 1356, 1357, 1383, + 1357, 1357, 1357, 1358, 1357, 1383, 1359, 1359, + 1359, 1358, 1359, 1382, 1359, 1359, 1359, 1360, + 1359, 1382, 1361, 1361, 1361, 1360, 1361, 1381, + 1361, 1361, 1361, 1362, 1379, 1361, 1381, 1363, + 1363, 1363, 1363, 1378, 0, 1363, 1363, 1363, + 1364, 1363, 1378, 1365, 1366, 1376, 1367, 1368, + 1375, 1369, 1373, 1370, 1371, 1371, 1372, 1364, + 1575, 1374, 1377, 1378, 1363, 1380, 1379, 1381, + 1361, 1382, 1359, 1383, 1357, 1385, 1386, 1386, + 1386, 1385, 1386, 1396, 1386, 1386, 1386, 1387, + 1386, 1396, 1388, 1388, 1388, 1387, 1388, 1395, + 1388, 1388, 1388, 1389, 1388, 1395, 1390, 1390, + 1390, 1389, 1390, 1394, 1390, 1390, 1390, 1391, + 1392, 1390, 1394, 1576, 1393, 1392, 1394, 1390, + 1395, 1388, 1396, 1386, 1398, 1399, 1399, 1399, + 1398, 1399, 1409, 1399, 1399, 1399, 1400, 1399, + 1409, 1401, 1401, 1401, 1400, 1401, 1408, 1401, + 1401, 1401, 1402, 1401, 1408, 1403, 1403, 1403, + 1402, 1403, 1407, 1403, 1403, 1403, 1404, 1403, + 1407, 1405, 1405, 1405, 1405, 1405, 1406, 1577, + 1578, 1579, 1406, 1405, 1407, 1403, 1408, 1401, + 1409, 1399, 1411, 1412, 1412, 1412, 1411, 1412, + 1415, 1412, 1412, 1412, 1413, 1412, 1415, 1414, + 1413, 1580, 1415, 1412, 1417, 1418, 1418, 1418, + 1417, 1418, 1428, 1418, 1418, 1418, 1419, 1418, + 1428, 1420, 1420, 1420, 1419, 1420, 1427, 1420, + 1420, 1420, 1421, 1420, 1427, 1422, 1422, 1422, + 1421, 1422, 1426, 1422, 1422, 1422, 1423, 1422, + 1426, 1424, 1424, 1424, 1424, 1424, 1425, 1581, + 1582, 1583, 1425, 1424, 1426, 1422, 1427, 1420, + 1428, 1418, 1430, 1431, 1431, 1431, 1430, 1431, + 1433, 1431, 1431, 1431, 1432, 1431, 1433, 1584, + 1432, 1433, 1431, 1435, 1436, 1436, 1436, 1435, + 1436, 1446, 1436, 1436, 1436, 1437, 1436, 1446, + 1438, 1439, 1440, 0, 1441, 1442, 1443, 1444, + 1445, 0, 1585, 1446, 1436, 1448, 1449, 0, + 1450, 1451, 1452, 1586, 1454, 1455, 1456, 1457, + 1458, 1587, 1460, 1461, 1461, 1461, 1460, 1461, + 1466, 1461, 1461, 1461, 1462, 1461, 1466, 1463, + 1463, 1463, 1462, 1463, 1465, 1464, 1463, 1463, + 1463, 1463, 1465, 1588, 1465, 1463, 1466, 1461, + 1468, 1469, 1469, 1469, 1468, 1469, 1474, 1470, + 1469, 1469, 1469, 1469, 1474, 1471, 1471, 1471, + 1471, 1473, 1472, 1471, 1471, 1471, 1471, 1473, + 1589, 1473, 1471, 1474, 1469, 1476, 1477, 1477, + 1477, 1476, 1477, 1480, 1477, 1477, 1477, 1478, + 1477, 1480, 1479, 1590, 1480, 1477, 1482, 1483, + 1483, 1483, 1483, 1491, 1484, 1485, 1485, 1485, + 1485, 1490, 1486, 1487, 1487, 1487, 1486, 1487, + 1489, 1487, 1487, 1487, 1488, 1487, 1489, 1591, + 1489, 1487, 1490, 1485, 1491, 1483, 0, 1, + 199, 1, 1, 207, 1492, 198, 1497, 320, + 14, 244, 14, 14, 254, 277, 1500, 292, + 1498, 293, 1501, 295, 0, 189, 189, 189, + 217, 303, 304, 305, 306, 322, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 1495, 321, 0, 210, 217, 303, + 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, + 0, 1, 199, 1, 1, 207, 1492, 198, + 1497, 320, 1, 1, 1497, 320, 221, 221, + 221, 1497, 222, 225, 225, 225, 243, 281, + 0, 255, 258, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 1497 }; static const short _zone_scanner_trans_actions[] = { - 2227, 0, 5, 7, 549, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 3, - 9, 3, 9, 2403, 103, 741, 744, 45, - 59, 57, 55, 0, 61, 738, 747, 331, + 2247, 0, 5, 7, 551, 725, 725, 725, + 725, 725, 725, 725, 725, 725, 725, 725, + 725, 725, 725, 725, 725, 725, 725, 3, + 9, 3, 9, 2423, 103, 743, 746, 45, + 59, 57, 55, 0, 61, 740, 749, 333, 0, 5, 7, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 97, 97, 97, 3, 9, 1779, - 1782, 2923, 2927, 0, 0, 0, 2919, 2931, - 2939, 5027, 5047, 325, 0, 323, 5, 7, - 329, 3, 9, 339, 366, 1764, 13, 387, - 390, 2075, 393, 15, 0, 5, 7, 1932, - 9, 11, 2047, 1773, 327, 11, 381, 13, - 348, 354, 363, 5022, 2899, 2027, 0, 5, - 7, 9, 2907, 1770, 366, 11, 2043, 0, - 4137, 5, 7, 2219, 2535, 2535, 2535, 2535, - 2535, 2535, 2535, 2535, 2535, 2535, 2535, 2535, - 2535, 2535, 2535, 2535, 2535, 2535, 3, 9, - 1767, 1770, 339, 366, 5728, 750, 2539, 2543, - 4382, 2547, 1776, 0, 5, 7, 342, 9, - 0, 0, 0, 0, 0, 0, 1917, 3827, - 3831, 3823, 3835, 3839, 5492, 5497, 378, 2031, - 2035, 2039, 11, 369, 372, 375, 0, 0, - 0, 0, 0, 0, 1881, 3587, 3591, 3583, - 3595, 3599, 5372, 5377, 1878, 3567, 3571, 3563, - 3575, 3579, 5362, 5367, 0, 0, 1836, 3287, - 3291, 3283, 3295, 3299, 5222, 5227, 0, 0, - 0, 1788, 2967, 2971, 2963, 2975, 2979, 5062, - 5067, 0, 0, 0, 1887, 3627, 3631, 3623, - 3635, 3639, 5392, 5397, 0, 0, 0, 0, - 0, 0, 1863, 3467, 3471, 3463, 3475, 3479, - 5312, 5317, 0, 0, 0, 0, 1839, 3307, - 3311, 3303, 3315, 3319, 5232, 5237, 0, 0, - 0, 1860, 3447, 3451, 3443, 3455, 3459, 5302, - 5307, 1845, 3347, 3351, 0, 3343, 3355, 3359, - 5252, 5257, 0, 0, 1926, 3887, 3891, 3883, - 3895, 3899, 5522, 5527, 0, 0, 0, 0, - 0, 1908, 3767, 3771, 3763, 3775, 3779, 5462, - 5467, 0, 1911, 3787, 3791, 3783, 3795, 3799, - 5472, 5477, 0, 0, 0, 0, 0, 1797, - 3027, 3031, 3023, 3035, 3039, 5092, 5097, 0, - 0, 0, 1923, 3867, 3871, 3863, 3875, 3879, - 5512, 5517, 0, 0, 101, 729, 732, 726, - 735, 0, 5, 7, 0, 0, 0, 0, + 97, 97, 97, 97, 97, 3, 9, 1796, + 1799, 2947, 2951, 0, 0, 0, 2943, 2955, + 2963, 5081, 5101, 327, 0, 325, 5, 7, + 331, 3, 9, 341, 368, 1781, 13, 389, + 392, 2095, 395, 15, 0, 5, 7, 1952, + 9, 11, 2067, 1790, 329, 11, 383, 13, + 350, 356, 365, 5076, 2923, 2047, 0, 5, + 7, 9, 2931, 1787, 368, 11, 2063, 0, + 4181, 5, 7, 2239, 2555, 2555, 2555, 2555, + 2555, 2555, 2555, 2555, 2555, 2555, 2555, 2555, + 2555, 2555, 2555, 2555, 2555, 2555, 3, 9, + 1784, 1787, 341, 368, 5792, 752, 2559, 2563, + 4426, 2567, 1793, 0, 5, 7, 344, 9, + 0, 0, 0, 0, 0, 0, 1934, 3851, + 3855, 3847, 3859, 3863, 5546, 5551, 380, 2051, + 2055, 2059, 11, 371, 374, 377, 0, 0, + 0, 0, 0, 0, 1898, 3611, 3615, 3607, + 3619, 3623, 5426, 5431, 1895, 3591, 3595, 3587, + 3599, 3603, 5416, 5421, 0, 0, 1853, 3311, + 3315, 3307, 3319, 3323, 5276, 5281, 0, 0, + 0, 1805, 2991, 2995, 2987, 2999, 3003, 5116, + 5121, 0, 0, 0, 1904, 3651, 3655, 3647, + 3659, 3663, 5446, 5451, 0, 0, 0, 0, + 0, 0, 1880, 3491, 3495, 3487, 3499, 3503, + 5366, 5371, 0, 0, 0, 0, 1856, 3331, + 3335, 3327, 3339, 3343, 5286, 5291, 0, 0, + 0, 1877, 3471, 3475, 3467, 3479, 3483, 5356, + 5361, 1862, 3371, 3375, 0, 3367, 3379, 3383, + 5306, 5311, 0, 0, 1943, 3911, 3915, 3907, + 3919, 3923, 5576, 5581, 0, 0, 0, 0, + 0, 1925, 3791, 3795, 3787, 3799, 3803, 5516, + 5521, 0, 1928, 3811, 3815, 3807, 3819, 3823, + 5526, 5531, 0, 0, 0, 0, 0, 1814, + 3051, 3055, 3047, 3059, 3063, 5146, 5151, 0, + 0, 0, 1940, 3891, 3895, 3887, 3899, 3903, + 5566, 5571, 0, 0, 101, 731, 734, 728, + 737, 0, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9, - 0, 0, 0, 0, 0, 0, 1851, 3387, - 3391, 3383, 3395, 3399, 5272, 5277, 0, 0, - 0, 1818, 3167, 3171, 3163, 3175, 3179, 5162, - 5167, 1833, 3267, 3271, 3263, 3275, 3279, 5212, - 5217, 0, 0, 0, 0, 0, 1899, 3707, - 3711, 3703, 3715, 3719, 5432, 5437, 0, 1902, - 3727, 3731, 3723, 3735, 3739, 5442, 5447, 0, - 1824, 3207, 3211, 3203, 3215, 3219, 5182, 5187, - 1905, 3747, 3751, 3743, 3755, 3759, 5452, 5457, - 0, 0, 0, 0, 0, 1800, 3047, 3051, - 3043, 3055, 3059, 5102, 5107, 1803, 3067, 3071, - 3063, 3075, 3079, 5112, 5117, 0, 0, 0, - 0, 0, 0, 1830, 3247, 3251, 3243, 3255, - 3259, 5202, 5207, 0, 1896, 3687, 3691, 3683, - 3695, 3699, 5422, 5427, 1785, 2947, 2951, 0, - 2943, 2955, 2959, 5052, 5057, 0, 1857, 3427, - 3431, 0, 3423, 3435, 3439, 5292, 5297, 1866, - 3487, 3491, 0, 3483, 3495, 3499, 5322, 5327, - 0, 0, 0, 0, 1869, 3507, 3511, 3503, - 3515, 3519, 5332, 5337, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1884, 3607, 3611, - 3603, 3615, 3619, 5382, 5387, 0, 0, 1794, - 3007, 3011, 3003, 3015, 3019, 5082, 5087, 0, - 0, 0, 1809, 3107, 3111, 3103, 3115, 3119, - 5132, 5137, 0, 0, 0, 1854, 3407, 3411, - 3403, 3415, 3419, 5282, 5287, 1815, 3147, 3151, - 3143, 3155, 3159, 5152, 5157, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1875, - 3547, 3551, 3543, 3555, 3559, 5352, 5357, 0, - 1791, 2987, 2991, 2983, 2995, 2999, 5072, 5077, - 0, 1893, 3667, 3671, 3663, 3675, 3679, 5412, - 5417, 0, 1827, 3227, 3231, 3223, 3235, 3239, - 5192, 5197, 0, 0, 0, 1848, 3367, 3371, - 3363, 3375, 3379, 5262, 5267, 0, 0, 1920, - 3847, 3851, 3843, 3855, 3859, 5502, 5507, 0, - 0, 0, 0, 0, 1872, 3527, 3531, 3523, - 3535, 3539, 5342, 5347, 0, 1806, 3087, 3091, - 3083, 3095, 3099, 5122, 5127, 0, 0, 570, - 549, 2231, 642, 2379, 2383, 45, 2375, 2387, - 2391, 4322, 4327, 0, 0, 1914, 3807, 3811, - 3803, 3815, 3819, 5482, 5487, 0, 0, 0, - 0, 0, 1929, 3907, 3911, 3903, 3915, 3919, - 5532, 5537, 0, 0, 0, 0, 0, 1890, - 3647, 3651, 3643, 3655, 3659, 5402, 5407, 11, - 381, 0, 5, 7, 3, 9, 0, 101, - 729, 732, 726, 735, 0, 5, 7, 549, + 0, 0, 0, 0, 0, 0, 1868, 3411, + 3415, 3407, 3419, 3423, 5326, 5331, 0, 0, + 0, 1835, 3191, 3195, 3187, 3199, 3203, 5216, + 5221, 1850, 3291, 3295, 3287, 3299, 3303, 5266, + 5271, 0, 0, 0, 0, 0, 1916, 3731, + 3735, 3727, 3739, 3743, 5486, 5491, 0, 1919, + 3751, 3755, 3747, 3759, 3763, 5496, 5501, 0, + 1841, 3231, 3235, 3227, 3239, 3243, 5236, 5241, + 1922, 3771, 3775, 3767, 3779, 3783, 5506, 5511, + 0, 0, 0, 0, 0, 1817, 3071, 3075, + 3067, 3079, 3083, 5156, 5161, 1820, 3091, 3095, + 3087, 3099, 3103, 5166, 5171, 0, 0, 0, + 0, 0, 0, 1847, 3271, 3275, 3267, 3279, + 3283, 5256, 5261, 0, 1913, 3711, 3715, 3707, + 3719, 3723, 5476, 5481, 1802, 2971, 2975, 0, + 2967, 2979, 2983, 5106, 5111, 0, 1874, 3451, + 3455, 0, 3447, 3459, 3463, 5346, 5351, 1883, + 3511, 3515, 0, 3507, 3519, 3523, 5376, 5381, + 0, 0, 0, 0, 1886, 3531, 3535, 3527, + 3539, 3543, 5386, 5391, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1901, 3631, 3635, + 3627, 3639, 3643, 5436, 5441, 0, 0, 1811, + 3031, 3035, 3027, 3039, 3043, 5136, 5141, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1946, 3931, 3935, 3927, 3939, 3943, 5586, 5591, + 1826, 3131, 3135, 3127, 3139, 3143, 5186, 5191, + 0, 0, 0, 1871, 3431, 3435, 3427, 3439, + 3443, 5336, 5341, 1832, 3171, 3175, 3167, 3179, + 3183, 5206, 5211, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1892, 3571, 3575, + 3567, 3579, 3583, 5406, 5411, 0, 1808, 3011, + 3015, 3007, 3019, 3023, 5126, 5131, 0, 1910, + 3691, 3695, 3687, 3699, 3703, 5466, 5471, 0, + 1844, 3251, 3255, 3247, 3259, 3263, 5246, 5251, + 0, 0, 0, 1865, 3391, 3395, 3387, 3399, + 3403, 5316, 5321, 0, 0, 1937, 3871, 3875, + 3867, 3879, 3883, 5556, 5561, 0, 0, 0, + 0, 0, 1889, 3551, 3555, 3547, 3559, 3563, + 5396, 5401, 0, 1823, 3111, 3115, 3107, 3119, + 3123, 5176, 5181, 0, 0, 572, 551, 2251, + 644, 2399, 2403, 45, 2395, 2407, 2411, 4366, + 4371, 0, 0, 1931, 3831, 3835, 3827, 3839, + 3843, 5536, 5541, 0, 0, 0, 0, 0, + 1949, 3951, 3955, 3947, 3959, 3963, 5596, 5601, + 0, 0, 0, 0, 0, 1907, 3671, 3675, + 3667, 3679, 3683, 5456, 5461, 11, 383, 0, + 5, 7, 3, 9, 0, 101, 731, 734, + 728, 737, 0, 5, 7, 551, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 3, 9, 103, 741, 744, 45, - 59, 57, 55, 0, 61, 738, 747, 2407, - 45, 59, 57, 55, 0, 61, 663, 2447, - 2451, 4337, 2443, 2455, 11, 381, 11, 381, - 95, 91, 91, 91, 0, 0, 0, 0, - 0, 0, 89, 41, 39, 495, 498, 492, - 501, 0, 5, 7, 3, 9, 11, 0, - 381, 4122, 507, 2147, 2155, 2139, 2163, 0, - 5, 7, 3, 9, 11, 381, 2407, 45, - 59, 57, 55, 0, 61, 663, 2447, 2451, - 4337, 2443, 2455, 11, 381, 2207, 2175, 4077, - 4092, 4062, 4107, 5596, 5620, 0, 5, 7, - 3, 9, 339, 366, 2915, 2935, 5032, 5037, - 5818, 5042, 6004, 5830, 5997, 5824, 0, 5, - 7, 342, 1979, 0, 5, 7, 342, 9, - 11, 2043, 396, 2051, 2059, 3972, 2067, 11, - 345, 351, 360, 0, 5, 7, 9, 366, - 11, 2043, 2891, 0, 0, 0, 0, 0, - 83, 0, 0, 79, 2199, 504, 2143, 2151, - 4052, 2159, 5878, 2167, 4067, 4082, 5590, 4097, - 0, 5, 7, 342, 9, 11, 2043, 4127, - 4112, 5602, 5608, 5864, 5614, 6027, 5871, 0, - 5, 7, 342, 1979, 2171, 516, 4072, 4087, - 4057, 4102, 13, 348, 354, 1951, 363, 378, - 3947, 2031, 2035, 2039, 11, 369, 372, 375, - 378, 2031, 2035, 2039, 11, 369, 372, 375, - 0, 0, 1821, 3187, 3191, 3183, 3195, 3199, - 5172, 5177, 0, 0, 0, 1812, 3127, 3131, - 3123, 3135, 3139, 5142, 5147, 0, 1842, 3327, - 3331, 3323, 3335, 3339, 5242, 5247, 11, 381, - 396, 2051, 2059, 3982, 11, 345, 351, 3923, - 378, 2031, 2035, 11, 369, 372, 378, 2031, - 2035, 11, 369, 372, 11, 381, 13, 348, - 354, 363, 2027, 378, 2031, 2035, 11, 369, - 372, 519, 11, 381, 11, 381, 11, 2043, - 0, 414, 3, 7, 408, 2079, 17, 411, - 31, 2103, 29, 0, 447, 2083, 21, 23, - 0, 438, 417, 19, 420, 429, 25, 25, - 3992, 423, 426, 27, 444, 684, 67, 0, - 0, 693, 696, 2471, 73, 2467, 687, 71, - 71, 2459, 2463, 4342, 690, 67, 67, 0, - 0, 696, 696, 73, 73, 69, 1, 687, - 71, 71, 2463, 2463, 690, 690, 77, 0, - 5, 7, 3, 9, 552, 549, 4332, 13, - 387, 390, 45, 59, 57, 55, 0, 61, - 3977, 393, 402, 0, 5, 7, 2479, 9, - 11, 3957, 2407, 2395, 45, 59, 57, 55, - 0, 61, 657, 2411, 2415, 4337, 5734, 2419, - 11, 381, 81, 0, 5, 7, 3, 9, - 4347, 705, 2483, 21, 23, 0, 405, 441, - 2087, 2091, 417, 19, 5542, 2095, 0, 5, - 7, 2487, 9, 11, 3962, 420, 432, 25, - 25, 423, 426, 27, 11, 381, 0, 5, - 7, 3, 9, 708, 85, 714, 711, 2491, - 2495, 5740, 2503, 2499, 720, 0, 5, 7, - 4352, 717, 2507, 2511, 9, 9, 87, 21, - 23, 0, 2099, 3997, 4002, 417, 19, 5836, - 4007, 0, 5, 7, 11, 3967, 420, 435, - 25, 25, 423, 426, 27, 11, 3952, 0, - 5, 7, 3, 9, 11, 381, 11, 381, - 127, 119, 121, 123, 0, 125, 0, 5, - 7, 3, 9, 1, 336, 357, 11, 381, - 169, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 876, 0, 0, 0, 0, - 0, 915, 0, 0, 0, 906, 0, 936, - 0, 0, 0, 0, 0, 0, 1011, 0, - 0, 0, 0, 0, 0, 975, 972, 0, - 0, 930, 0, 0, 0, 882, 0, 0, - 0, 981, 0, 0, 0, 0, 0, 0, - 957, 0, 0, 0, 0, 933, 0, 0, - 0, 954, 939, 0, 0, 0, 1020, 0, - 0, 0, 0, 0, 1002, 0, 1005, 0, - 0, 0, 0, 0, 891, 0, 0, 0, - 1017, 0, 0, 0, 0, 0, 0, 0, - 945, 0, 0, 0, 912, 927, 0, 0, - 0, 0, 0, 993, 0, 996, 0, 918, - 999, 0, 0, 0, 0, 0, 894, 897, - 0, 0, 0, 0, 0, 0, 924, 0, - 990, 879, 0, 0, 951, 0, 960, 0, - 0, 0, 0, 0, 963, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 978, 0, - 0, 888, 0, 0, 0, 903, 0, 0, - 0, 948, 909, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 969, 0, 885, - 0, 987, 0, 921, 0, 0, 0, 942, - 0, 0, 1014, 0, 0, 0, 0, 0, - 966, 0, 900, 0, 0, 555, 549, 606, - 45, 0, 0, 1008, 0, 0, 0, 0, - 0, 1023, 0, 0, 0, 0, 0, 984, - 277, 275, 1641, 1644, 1638, 1647, 2851, 4987, - 4992, 0, 5, 7, 0, 0, 0, 0, + 3, 9, 103, 743, 746, 45, 59, 57, + 55, 0, 61, 740, 749, 2427, 45, 59, + 57, 55, 0, 61, 665, 2467, 2471, 4381, + 2463, 2475, 11, 383, 11, 383, 95, 91, + 91, 91, 0, 0, 0, 0, 0, 0, + 89, 41, 39, 497, 500, 494, 503, 0, + 5, 7, 3, 9, 11, 0, 383, 4166, + 509, 2167, 2175, 2159, 2183, 0, 5, 7, + 3, 9, 11, 383, 2427, 45, 59, 57, + 55, 0, 61, 665, 2467, 2471, 4381, 2463, + 2475, 11, 383, 2227, 2195, 4121, 4136, 4106, + 4151, 5660, 5684, 0, 5, 7, 3, 9, + 341, 368, 2939, 2959, 5086, 5091, 5882, 5096, + 6068, 5894, 6061, 5888, 0, 5, 7, 344, + 1999, 0, 5, 7, 344, 9, 11, 2063, + 398, 2071, 2079, 4016, 2087, 11, 347, 353, + 362, 0, 5, 7, 9, 368, 11, 2063, + 2915, 0, 0, 0, 0, 0, 83, 0, + 0, 79, 2219, 506, 2163, 2171, 4096, 2179, + 5942, 2187, 4111, 4126, 5654, 4141, 0, 5, + 7, 344, 9, 11, 2063, 4171, 4156, 5666, + 5672, 5928, 5678, 6091, 5935, 0, 5, 7, + 344, 1999, 2191, 518, 4116, 4131, 4101, 4146, + 13, 350, 356, 1971, 365, 380, 3991, 2051, + 2055, 2059, 11, 371, 374, 377, 380, 2051, + 2055, 2059, 11, 371, 374, 377, 0, 0, + 1838, 3211, 3215, 3207, 3219, 3223, 5226, 5231, + 0, 0, 0, 1829, 3151, 3155, 3147, 3159, + 3163, 5196, 5201, 0, 1859, 3351, 3355, 3347, + 3359, 3363, 5296, 5301, 11, 383, 398, 2071, + 2079, 4026, 11, 347, 353, 3967, 380, 2051, + 2055, 11, 371, 374, 380, 2051, 2055, 11, + 371, 374, 11, 383, 13, 350, 356, 365, + 2047, 380, 2051, 2055, 11, 371, 374, 521, + 11, 383, 11, 383, 11, 2063, 0, 416, + 3, 7, 410, 2099, 17, 413, 31, 2123, + 29, 0, 449, 2103, 21, 23, 0, 440, + 419, 19, 422, 431, 25, 25, 4036, 425, + 428, 27, 446, 686, 67, 0, 0, 695, + 698, 2491, 73, 2487, 689, 71, 71, 2479, + 2483, 4386, 692, 67, 67, 0, 0, 698, + 698, 73, 73, 69, 1, 689, 71, 71, + 2483, 2483, 692, 692, 77, 0, 5, 7, + 3, 9, 554, 551, 4376, 13, 389, 392, + 45, 59, 57, 55, 0, 61, 4021, 395, + 404, 0, 5, 7, 2499, 9, 11, 4001, + 2427, 2415, 45, 59, 57, 55, 0, 61, + 659, 2431, 2435, 4381, 5798, 2439, 11, 383, + 81, 0, 5, 7, 3, 9, 4391, 707, + 2503, 21, 23, 0, 407, 443, 2107, 2111, + 419, 19, 5606, 2115, 0, 5, 7, 2507, + 9, 11, 4006, 422, 434, 25, 25, 425, + 428, 27, 11, 383, 0, 5, 7, 3, + 9, 710, 85, 716, 713, 2511, 2515, 5804, + 2523, 2519, 722, 0, 5, 7, 4396, 719, + 2527, 2531, 9, 9, 87, 21, 23, 0, + 2119, 4041, 4046, 419, 19, 5900, 4051, 0, + 5, 7, 11, 4011, 422, 437, 25, 25, + 425, 428, 27, 11, 3996, 0, 5, 7, + 3, 9, 11, 383, 11, 383, 127, 119, + 121, 123, 0, 125, 0, 5, 7, 3, + 9, 1, 338, 359, 11, 383, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 878, 0, 0, 0, 0, 0, 917, + 0, 0, 0, 908, 0, 938, 0, 0, + 0, 0, 0, 0, 1013, 0, 0, 0, + 0, 0, 0, 977, 974, 0, 0, 932, + 0, 0, 0, 884, 0, 0, 0, 983, + 0, 0, 0, 0, 0, 0, 959, 0, + 0, 0, 0, 935, 0, 0, 0, 956, + 941, 0, 0, 0, 1022, 0, 0, 0, + 0, 0, 1004, 0, 1007, 0, 0, 0, + 0, 0, 893, 0, 0, 0, 1019, 0, + 0, 0, 0, 0, 0, 0, 947, 0, + 0, 0, 914, 929, 0, 0, 0, 0, + 0, 995, 0, 998, 0, 920, 1001, 0, + 0, 0, 0, 0, 896, 899, 0, 0, + 0, 0, 0, 0, 926, 0, 992, 881, + 0, 0, 953, 0, 962, 0, 0, 0, + 0, 0, 965, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 980, 0, 0, 890, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1025, 905, 0, 0, 0, 950, 911, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 971, 0, 887, 0, 989, 0, + 923, 0, 0, 0, 944, 0, 0, 1016, + 0, 0, 0, 0, 0, 968, 0, 902, + 0, 0, 557, 551, 608, 45, 0, 0, + 1010, 0, 0, 0, 0, 0, 1028, 0, + 0, 0, 0, 0, 986, 279, 277, 1658, + 1661, 1655, 1664, 2875, 5041, 5046, 0, 5, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 9, - 1650, 1967, 2015, 175, 1041, 1044, 0, 0, - 0, 1038, 1047, 2651, 4487, 4492, 0, 0, - 201, 1197, 1200, 1194, 1203, 2703, 4617, 4622, - 11, 381, 0, 0, 0, 0, 0, 0, - 265, 1581, 1584, 1578, 1587, 2831, 4937, 4942, - 0, 0, 0, 0, 0, 0, 241, 1437, - 1440, 1434, 1443, 2783, 4817, 4822, 239, 1425, - 1428, 1422, 1431, 2779, 4807, 4812, 0, 0, - 211, 1257, 1260, 1254, 1263, 2723, 4667, 4672, - 0, 0, 0, 179, 1065, 1068, 1062, 1071, - 2659, 4507, 4512, 0, 0, 0, 245, 1461, - 1464, 1458, 1467, 2791, 4837, 4842, 0, 0, - 0, 0, 0, 0, 229, 1365, 1368, 1362, - 1371, 2759, 4757, 4762, 0, 0, 0, 0, - 213, 1269, 1272, 1266, 1275, 2727, 4677, 4682, - 0, 0, 0, 227, 1353, 1356, 1350, 1359, - 2755, 4747, 4752, 217, 1293, 1296, 0, 1290, - 1299, 2735, 4697, 4702, 0, 0, 271, 1617, - 1620, 1614, 1623, 2843, 4967, 4972, 0, 0, - 0, 0, 0, 259, 1545, 1548, 1542, 1551, - 2819, 4907, 4912, 0, 261, 1557, 1560, 1554, - 1563, 2823, 4917, 4922, 0, 0, 0, 0, - 0, 185, 1101, 1104, 1098, 1107, 2671, 4537, - 4542, 0, 0, 0, 269, 1605, 1608, 1602, - 1611, 2839, 4957, 4962, 0, 0, 0, 0, - 0, 0, 0, 221, 1317, 1320, 1314, 1323, - 2743, 4717, 4722, 0, 0, 0, 199, 1185, - 1188, 1182, 1191, 2699, 4607, 4612, 209, 1245, - 1248, 1242, 1251, 2719, 4657, 4662, 0, 0, - 0, 0, 0, 253, 1509, 1512, 1506, 1515, - 2807, 4877, 4882, 0, 255, 1521, 1524, 1518, - 1527, 2811, 4887, 4892, 0, 203, 1209, 1212, - 1206, 1215, 2707, 4627, 4632, 257, 1533, 1536, - 1530, 1539, 2815, 4897, 4902, 0, 0, 0, - 0, 0, 187, 1113, 1116, 1110, 1119, 2675, - 4547, 4552, 189, 1125, 1128, 1122, 1131, 2679, - 4557, 4562, 0, 0, 0, 0, 0, 0, - 207, 1233, 1236, 1230, 1239, 2715, 4647, 4652, - 0, 251, 1497, 1500, 1494, 1503, 2803, 4867, - 4872, 177, 1053, 1056, 0, 1050, 1059, 2655, - 4497, 4502, 0, 225, 1341, 1344, 0, 1338, - 1347, 2751, 4737, 4742, 231, 1377, 1380, 0, - 1374, 1383, 2763, 4767, 4772, 0, 0, 0, - 0, 233, 1389, 1392, 1386, 1395, 2767, 4777, - 4782, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 243, 1449, 1452, 1446, 1455, 2787, - 4827, 4832, 0, 0, 183, 1089, 1092, 1086, - 1095, 2667, 4527, 4532, 0, 0, 0, 193, - 1149, 1152, 1146, 1155, 2687, 4577, 4582, 0, - 0, 0, 223, 1329, 1332, 1326, 1335, 2747, - 4727, 4732, 197, 1173, 1176, 1170, 1179, 2695, - 4597, 4602, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 237, 1413, 1416, 1410, - 1419, 2775, 4797, 4802, 0, 181, 1077, 1080, - 1074, 1083, 2663, 4517, 4522, 0, 249, 1485, - 1488, 1482, 1491, 2799, 4857, 4862, 0, 205, - 1221, 1224, 1218, 1227, 2711, 4637, 4642, 0, - 0, 0, 219, 1305, 1308, 1302, 1311, 2739, - 4707, 4712, 0, 0, 267, 1593, 1596, 1590, - 1599, 2835, 4947, 4952, 0, 0, 0, 0, - 0, 235, 1401, 1404, 1398, 1407, 2771, 4787, - 4792, 0, 191, 1137, 1140, 1134, 1143, 2683, - 4567, 4572, 0, 0, 549, 173, 1029, 1032, - 45, 1026, 1035, 2647, 4477, 4482, 0, 0, - 263, 1569, 1572, 1566, 1575, 2827, 4927, 4932, - 0, 0, 0, 0, 0, 273, 1629, 1632, - 1626, 1635, 2847, 4977, 4982, 0, 0, 0, - 0, 0, 247, 1473, 1476, 1470, 1479, 2795, - 4847, 4852, 0, 0, 0, 195, 1161, 1164, - 1158, 1167, 2691, 4587, 4592, 0, 215, 1281, - 1284, 1278, 1287, 2731, 4687, 4692, 291, 0, - 5, 7, 3, 9, 558, 549, 53, 648, - 651, 45, 645, 654, 2627, 0, 5, 7, - 115, 3, 9, 117, 0, 5, 7, 3, - 9, 786, 1963, 2011, 11, 381, 11, 381, - 11, 381, 0, 5, 7, 3, 9, 549, - 549, 333, 1939, 1943, 45, 1, 1935, 1947, - 0, 5, 7, 115, 3, 9, 117, 0, - 5, 7, 3, 9, 786, 1963, 2011, 11, - 381, 11, 381, 53, 648, 651, 645, 654, - 11, 381, 301, 307, 307, 307, 307, 307, - 307, 307, 307, 0, 0, 0, 840, 0, - 0, 0, 0, 0, 0, 858, 0, 0, - 852, 0, 0, 0, 0, 0, 0, 0, - 0, 849, 0, 0, 0, 0, 855, 0, - 0, 564, 549, 606, 45, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 843, 0, 0, 0, 0, - 861, 0, 0, 0, 846, 299, 297, 1740, - 1743, 1737, 1746, 2879, 4997, 5002, 0, 5, - 7, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 3, 9, 1749, 1975, 2023, 0, - 0, 0, 157, 5017, 5017, 4022, 5554, 5560, - 5548, 5566, 5843, 6011, 6019, 11, 381, 0, - 0, 0, 0, 0, 0, 167, 477, 477, - 483, 2123, 2127, 2119, 2131, 4027, 5572, 5578, - 477, 37, 305, 1755, 1758, 1752, 1761, 2883, - 5007, 5012, 0, 0, 163, 0, 480, 480, - 121, 123, 0, 125, 0, 119, 121, 123, - 0, 125, 0, 119, 0, 0, 0, 0, - 0, 0, 0, 0, 161, 756, 0, 2115, - 2115, 2579, 762, 105, 753, 4402, 5758, 5764, - 762, 105, 5752, 5770, 5955, 6035, 6043, 753, - 0, 0, 0, 0, 165, 0, 2115, 2115, - 2603, 765, 105, 753, 4417, 5782, 5788, 765, - 105, 5776, 5794, 5962, 6051, 6059, 753, 0, - 0, 561, 549, 2355, 4302, 4307, 45, 49, - 4297, 4312, 5710, 5941, 5948, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 2887, - 2887, 486, 0, 309, 2135, 4037, 4042, 0, - 4032, 4047, 5584, 5850, 5857, 309, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2635, 4437, 4442, 4432, - 4447, 5800, 5969, 5976, 0, 0, 0, 0, - 2639, 4462, 4467, 4457, 4472, 5806, 5983, 5990, - 0, 0, 0, 159, 0, 4452, 4452, 49, - 45, 624, 2363, 2367, 45, 2359, 2371, 4317, - 5716, 5722, 5017, 2111, 311, 549, 0, 0, - 0, 0, 0, 591, 45, 0, 0, 795, - 0, 798, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 804, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 816, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 819, 0, 0, - 0, 0, 0, 0, 0, 0, 822, 0, - 0, 0, 0, 0, 0, 825, 0, 0, - 828, 0, 0, 0, 0, 0, 0, 0, - 831, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 834, 0, 0, 837, 0, - 0, 0, 0, 0, 0, 792, 0, 0, - 0, 0, 0, 801, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 807, - 0, 0, 810, 0, 0, 813, 313, 549, - 0, 0, 0, 0, 0, 0, 606, 45, - 0, 0, 0, 0, 0, 858, 0, 0, - 0, 0, 0, 0, 0, 0, 861, 0, - 0, 0, 855, 0, 0, 849, 0, 0, - 0, 852, 0, 0, 867, 0, 0, 0, - 846, 0, 0, 840, 0, 0, 0, 843, - 0, 0, 864, 315, 549, 0, 591, 45, - 0, 0, 0, 0, 0, 792, 759, 753, - 2559, 105, 522, 525, 522, 43, 531, 534, - 528, 537, 0, 5, 7, 522, 3, 9, - 43, 531, 534, 528, 537, 567, 0, 5, - 7, 549, 3, 9, 51, 633, 636, 45, - 630, 639, 0, 5, 7, 549, 3, 9, - 2399, 51, 633, 636, 45, 59, 57, 55, - 0, 61, 630, 639, 0, 5, 7, 549, - 3, 9, 51, 633, 636, 45, 59, 57, - 55, 0, 61, 630, 639, 0, 5, 7, - 549, 3, 9, 51, 633, 636, 45, 59, - 57, 55, 0, 61, 630, 639, 0, 5, - 7, 549, 3, 9, 627, 45, 59, 57, - 55, 0, 61, 2407, 45, 59, 57, 55, - 0, 61, 2423, 4337, 11, 381, 2407, 45, - 59, 57, 55, 0, 61, 660, 2431, 2435, - 4337, 2427, 2439, 11, 381, 2407, 45, 59, - 57, 55, 0, 61, 660, 2431, 2435, 4337, - 2427, 2439, 11, 381, 2407, 45, 59, 57, - 55, 0, 61, 660, 2431, 2435, 4337, 2427, - 2439, 11, 381, 11, 381, 11, 381, 450, - 35, 465, 468, 462, 471, 450, 0, 5, - 7, 3, 9, 459, 11, 381, 522, 43, - 531, 534, 528, 537, 0, 5, 7, 522, - 3, 9, 525, 11, 381, 549, 49, 612, - 615, 45, 609, 618, 0, 5, 7, 522, - 3, 9, 525, 11, 381, 2475, 702, 35, - 465, 468, 462, 471, 2107, 4012, 4017, 450, - 0, 5, 7, 3, 9, 699, 1959, 2007, - 11, 381, 753, 2583, 105, 1728, 2855, 279, - 1656, 1659, 45, 1653, 1662, 0, 5, 7, - 549, 0, 0, 3, 9, 283, 1680, 1683, - 45, 1677, 1686, 0, 5, 7, 4292, 3, - 9, 573, 2263, 2267, 0, 45, 2259, 2271, - 0, 5, 7, 3, 9, 0, 5, 7, - 3, 9, 549, 281, 1668, 1671, 45, 1665, - 1674, 0, 5, 7, 549, 0, 0, 3, - 9, 285, 1692, 1695, 45, 1689, 1698, 0, - 5, 7, 4292, 3, 9, 576, 2279, 2283, - 0, 45, 2275, 2287, 0, 5, 7, 3, - 9, 0, 5, 7, 3, 9, 0, 4287, - 5812, 579, 2295, 2299, 0, 45, 579, 2291, - 2303, 4267, 5662, 5668, 0, 5, 7, 4287, - 3, 9, 1725, 1971, 2019, 582, 2311, 2315, - 0, 45, 582, 2307, 2319, 4272, 5674, 5680, - 0, 5, 7, 4287, 3, 9, 1971, 2019, - 585, 2327, 2331, 0, 45, 585, 2323, 2335, - 4277, 5686, 5692, 0, 5, 7, 4287, 3, - 9, 1971, 2019, 588, 2343, 2347, 0, 45, - 2339, 2351, 4282, 5698, 5704, 0, 5, 7, - 3, 9, 1971, 2019, 11, 381, 2255, 4252, - 4257, 4142, 4247, 4262, 5656, 5927, 5934, 546, - 11, 381, 2251, 4232, 4237, 4142, 2251, 4227, - 4242, 5650, 5913, 5920, 546, 11, 381, 2247, - 4212, 4217, 4142, 2247, 4207, 4222, 5644, 5899, - 5906, 546, 11, 381, 2243, 4192, 4197, 4142, - 2243, 4187, 4202, 5638, 5885, 5892, 546, 11, - 381, 289, 1716, 1719, 1713, 1722, 11, 381, - 2239, 4172, 4177, 4142, 4167, 4182, 546, 11, - 381, 11, 381, 11, 381, 287, 1704, 1707, - 1701, 1710, 11, 381, 2235, 4152, 4157, 4142, - 4147, 4162, 546, 11, 381, 11, 381, 549, - 49, 612, 615, 45, 609, 618, 0, 5, - 7, 549, 3, 9, 49, 612, 615, 45, - 609, 618, 0, 5, 7, 549, 3, 9, - 49, 612, 615, 45, 609, 618, 0, 5, - 7, 522, 3, 9, 525, 11, 381, 11, - 381, 11, 381, 549, 49, 612, 615, 45, - 609, 618, 0, 5, 7, 549, 3, 9, - 49, 612, 615, 45, 609, 618, 450, 0, - 5, 7, 3, 9, 35, 465, 468, 462, - 471, 450, 0, 5, 7, 3, 9, 35, - 465, 468, 462, 471, 450, 0, 5, 7, - 3, 9, 35, 465, 468, 462, 471, 0, - 5, 7, 522, 3, 9, 525, 11, 381, - 11, 381, 11, 381, 11, 381, 11, 381, - 319, 0, 5, 7, 3, 9, 549, 49, - 612, 615, 45, 609, 618, 0, 5, 7, - 317, 3, 9, 0, 5, 7, 3, 9, - 129, 1, 11, 381, 11, 381, 11, 381, - 780, 0, 768, 5, 7, 771, 774, 3, - 9, 1, 336, 357, 111, 113, 0, 2551, - 753, 105, 107, 549, 777, 2615, 2619, 45, - 2611, 2623, 2607, 4422, 4427, 11, 381, 0, - 753, 105, 109, 549, 49, 612, 615, 45, - 609, 618, 0, 5, 7, 317, 3, 9, - 0, 5, 7, 3, 9, 549, 47, 597, - 600, 45, 594, 603, 783, 0, 5, 7, - 115, 3, 9, 117, 0, 5, 7, 3, - 9, 1, 336, 357, 11, 381, 11, 381, - 11, 381, 11, 381, 549, 47, 597, 600, - 45, 594, 603, 0, 5, 7, 549, 3, - 9, 47, 597, 600, 45, 594, 603, 0, - 5, 7, 115, 3, 9, 117, 0, 5, - 7, 3, 9, 1, 336, 357, 11, 381, - 11, 381, 11, 381, 549, 47, 597, 600, - 45, 594, 603, 870, 0, 5, 7, 147, - 149, 151, 153, 3, 9, 0, 5, 7, - 3, 9, 2223, 549, 47, 597, 600, 45, - 594, 603, 0, 5, 7, 0, 3, 9, - 2643, 0, 5, 7, 0, 5, 7, 0, - 5, 7, 1, 3, 9, 336, 357, 3, - 9, 336, 357, 3, 9, 336, 357, 873, - 129, 11, 381, 11, 381, 11, 381, 11, - 381, 11, 381, 0, 5, 7, 3, 9, - 549, 47, 597, 600, 45, 594, 603, 2555, - 0, 5, 7, 753, 3, 9, 4387, 105, - 762, 2567, 2571, 762, 2567, 2571, 762, 2567, - 2571, 2559, 2563, 2575, 4392, 4397, 2563, 2575, - 4392, 4397, 2563, 2575, 4392, 4397, 11, 381, - 11, 381, 0, 5, 7, 3, 9, 549, - 47, 597, 600, 45, 594, 603, 0, 5, - 7, 753, 3, 9, 105, 765, 2591, 2595, - 765, 2591, 2595, 765, 2591, 2595, 2583, 2587, - 2599, 4407, 4412, 2587, 2599, 4407, 4412, 2587, - 2599, 4407, 4412, 11, 381, 11, 381, 0, - 5, 7, 3, 9, 549, 47, 597, 600, - 45, 594, 603, 0, 5, 7, 522, 3, - 9, 43, 531, 534, 43, 531, 534, 43, - 531, 534, 525, 528, 537, 2211, 2215, 528, - 537, 2211, 2215, 528, 537, 2211, 2215, 11, - 381, 11, 381, 11, 381, 171, 0, 5, - 7, 3, 9, 317, 0, 5, 7, 3, - 9, 549, 47, 597, 600, 45, 594, 603, - 0, 5, 7, 549, 3, 9, 51, 633, - 636, 45, 630, 639, 681, 0, 5, 7, - 666, 3, 9, 65, 672, 675, 63, 669, - 678, 0, 5, 7, 666, 3, 9, 65, - 672, 675, 63, 669, 678, 0, 5, 7, - 549, 3, 9, 49, 612, 615, 45, 609, - 618, 0, 5, 7, 522, 3, 9, 43, - 531, 534, 528, 537, 0, 5, 7, 129, - 3, 9, 1, 11, 381, 11, 381, 11, - 381, 11, 381, 11, 381, 11, 381, 11, - 381, 11, 381, 522, 540, 1, 549, 49, - 612, 615, 45, 609, 618, 0, 5, 7, - 549, 3, 9, 47, 597, 600, 45, 594, - 603, 0, 5, 7, 317, 3, 9, 0, - 5, 7, 3, 9, 129, 1, 11, 381, - 11, 381, 11, 381, 129, 1, 549, 47, - 597, 600, 45, 594, 603, 0, 5, 7, - 549, 3, 9, 47, 597, 600, 45, 594, - 603, 0, 5, 7, 549, 3, 9, 49, - 612, 615, 45, 609, 618, 0, 5, 7, - 33, 453, 3, 9, 35, 465, 468, 462, - 471, 789, 0, 5, 7, 456, 3, 9, - 133, 135, 0, 137, 139, 0, 141, 0, - 143, 145, 0, 474, 131, 1, 0, 0, - 11, 381, 117, 115, 11, 381, 11, 381, - 11, 381, 549, 47, 597, 600, 45, 594, - 603, 0, 5, 7, 549, 3, 9, 47, - 597, 600, 45, 594, 603, 0, 5, 7, - 549, 3, 9, 49, 612, 615, 45, 609, - 618, 0, 5, 7, 33, 453, 3, 9, - 459, 117, 115, 11, 381, 11, 381, 11, - 381, 549, 47, 597, 600, 45, 594, 603, - 0, 5, 7, 549, 3, 9, 47, 597, - 600, 45, 594, 603, 0, 5, 7, 549, - 3, 9, 47, 597, 600, 45, 594, 603, + 0, 0, 0, 3, 9, 1667, 1987, 2035, + 175, 1046, 1049, 0, 0, 0, 1043, 1052, + 2671, 4531, 4536, 0, 0, 201, 1202, 1205, + 1199, 1208, 2723, 4661, 4666, 11, 383, 0, + 0, 0, 0, 0, 0, 265, 1586, 1589, + 1583, 1592, 2851, 4981, 4986, 0, 0, 0, + 0, 0, 0, 241, 1442, 1445, 1439, 1448, + 2803, 4861, 4866, 239, 1430, 1433, 1427, 1436, + 2799, 4851, 4856, 0, 0, 211, 1262, 1265, + 1259, 1268, 2743, 4711, 4716, 0, 0, 0, + 179, 1070, 1073, 1067, 1076, 2679, 4551, 4556, + 0, 0, 0, 245, 1466, 1469, 1463, 1472, + 2811, 4881, 4886, 0, 0, 0, 0, 0, + 0, 229, 1370, 1373, 1367, 1376, 2779, 4801, + 4806, 0, 0, 0, 0, 213, 1274, 1277, + 1271, 1280, 2747, 4721, 4726, 0, 0, 0, + 227, 1358, 1361, 1355, 1364, 2775, 4791, 4796, + 217, 1298, 1301, 0, 1295, 1304, 2755, 4741, + 4746, 0, 0, 271, 1622, 1625, 1619, 1628, + 2863, 5011, 5016, 0, 0, 0, 0, 0, + 259, 1550, 1553, 1547, 1556, 2839, 4951, 4956, + 0, 261, 1562, 1565, 1559, 1568, 2843, 4961, + 4966, 0, 0, 0, 0, 0, 185, 1106, + 1109, 1103, 1112, 2691, 4581, 4586, 0, 0, + 0, 269, 1610, 1613, 1607, 1616, 2859, 5001, + 5006, 0, 0, 0, 0, 0, 0, 0, + 221, 1322, 1325, 1319, 1328, 2763, 4761, 4766, + 0, 0, 0, 199, 1190, 1193, 1187, 1196, + 2719, 4651, 4656, 209, 1250, 1253, 1247, 1256, + 2739, 4701, 4706, 0, 0, 0, 0, 0, + 253, 1514, 1517, 1511, 1520, 2827, 4921, 4926, + 0, 255, 1526, 1529, 1523, 1532, 2831, 4931, + 4936, 0, 203, 1214, 1217, 1211, 1220, 2727, + 4671, 4676, 257, 1538, 1541, 1535, 1544, 2835, + 4941, 4946, 0, 0, 0, 0, 0, 187, + 1118, 1121, 1115, 1124, 2695, 4591, 4596, 189, + 1130, 1133, 1127, 1136, 2699, 4601, 4606, 0, + 0, 0, 0, 0, 0, 207, 1238, 1241, + 1235, 1244, 2735, 4691, 4696, 0, 251, 1502, + 1505, 1499, 1508, 2823, 4911, 4916, 177, 1058, + 1061, 0, 1055, 1064, 2675, 4541, 4546, 0, + 225, 1346, 1349, 0, 1343, 1352, 2771, 4781, + 4786, 231, 1382, 1385, 0, 1379, 1388, 2783, + 4811, 4816, 0, 0, 0, 0, 233, 1394, + 1397, 1391, 1400, 2787, 4821, 4826, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 243, + 1454, 1457, 1451, 1460, 2807, 4871, 4876, 0, + 0, 183, 1094, 1097, 1091, 1100, 2687, 4571, + 4576, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 273, 1634, 1637, 1631, 1640, 2867, + 5021, 5026, 193, 1154, 1157, 1151, 1160, 2707, + 4621, 4626, 0, 0, 0, 223, 1334, 1337, + 1331, 1340, 2767, 4771, 4776, 197, 1178, 1181, + 1175, 1184, 2715, 4641, 4646, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 237, + 1418, 1421, 1415, 1424, 2795, 4841, 4846, 0, + 181, 1082, 1085, 1079, 1088, 2683, 4561, 4566, + 0, 249, 1490, 1493, 1487, 1496, 2819, 4901, + 4906, 0, 205, 1226, 1229, 1223, 1232, 2731, + 4681, 4686, 0, 0, 0, 219, 1310, 1313, + 1307, 1316, 2759, 4751, 4756, 0, 0, 267, + 1598, 1601, 1595, 1604, 2855, 4991, 4996, 0, + 0, 0, 0, 0, 235, 1406, 1409, 1403, + 1412, 2791, 4831, 4836, 0, 191, 1142, 1145, + 1139, 1148, 2703, 4611, 4616, 0, 0, 551, + 173, 1034, 1037, 45, 1031, 1040, 2667, 4521, + 4526, 0, 0, 263, 1574, 1577, 1571, 1580, + 2847, 4971, 4976, 0, 0, 0, 0, 0, + 275, 1646, 1649, 1643, 1652, 2871, 5031, 5036, + 0, 0, 0, 0, 0, 247, 1478, 1481, + 1475, 1484, 2815, 4891, 4896, 0, 0, 0, + 195, 1166, 1169, 1163, 1172, 2711, 4631, 4636, + 0, 215, 1286, 1289, 1283, 1292, 2751, 4731, + 4736, 293, 0, 5, 7, 3, 9, 560, + 551, 53, 650, 653, 45, 647, 656, 2647, 0, 5, 7, 115, 3, 9, 117, 0, - 5, 7, 3, 9, 1, 336, 357, 11, - 381, 11, 381, 11, 381, 11, 381, 549, - 51, 633, 636, 45, 630, 639, 0, 5, - 7, 549, 3, 9, 621, 45, 1, 11, - 381, 549, 51, 633, 636, 45, 630, 639, - 0, 5, 7, 549, 3, 9, 47, 597, - 600, 45, 594, 603, 0, 5, 7, 549, - 3, 9, 47, 597, 600, 45, 594, 603, + 5, 7, 3, 9, 788, 1983, 2031, 11, + 383, 11, 383, 11, 383, 0, 5, 7, + 3, 9, 551, 551, 335, 1959, 1963, 45, + 1, 1955, 1967, 0, 5, 7, 115, 3, + 9, 117, 0, 5, 7, 3, 9, 788, + 1983, 2031, 11, 383, 11, 383, 53, 650, + 653, 647, 656, 11, 383, 303, 309, 309, + 309, 309, 309, 309, 309, 309, 0, 0, + 0, 842, 0, 0, 0, 0, 0, 0, + 860, 0, 0, 854, 0, 0, 0, 0, + 0, 0, 0, 0, 851, 0, 0, 0, + 0, 857, 0, 0, 566, 551, 608, 45, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 845, 0, + 0, 0, 0, 863, 0, 0, 0, 848, + 301, 299, 1757, 1760, 1754, 1763, 2903, 5051, + 5056, 0, 5, 7, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 3, 9, 1766, + 1995, 2043, 0, 0, 0, 157, 5071, 5071, + 4066, 5618, 5624, 5612, 5630, 5907, 6075, 6083, + 11, 383, 0, 0, 0, 0, 0, 0, + 167, 479, 479, 485, 2143, 2147, 2139, 2151, + 4071, 5636, 5642, 479, 37, 307, 1772, 1775, + 1769, 1778, 2907, 5061, 5066, 0, 0, 163, + 0, 482, 482, 121, 123, 0, 125, 0, + 119, 121, 123, 0, 125, 0, 119, 0, + 0, 0, 0, 0, 0, 0, 0, 161, + 758, 0, 2135, 2135, 2599, 764, 105, 755, + 4446, 5822, 5828, 764, 105, 5816, 5834, 6019, + 6099, 6107, 755, 0, 0, 0, 0, 165, + 0, 2135, 2135, 2623, 767, 105, 755, 4461, + 5846, 5852, 767, 105, 5840, 5858, 6026, 6115, + 6123, 755, 0, 0, 563, 551, 2375, 4346, + 4351, 45, 49, 4341, 4356, 5774, 6005, 6012, + 0, 0, 0, 0, 0, 0, 0, 0, + 155, 0, 2911, 2911, 488, 0, 311, 2155, + 4081, 4086, 0, 4076, 4091, 5648, 5914, 5921, + 311, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2655, + 4481, 4486, 4476, 4491, 5864, 6033, 6040, 0, + 0, 0, 0, 2659, 4506, 4511, 4501, 4516, + 5870, 6047, 6054, 0, 0, 0, 159, 0, + 4496, 4496, 49, 45, 626, 2383, 2387, 45, + 2379, 2391, 4361, 5780, 5786, 5071, 2131, 313, + 551, 0, 0, 0, 0, 0, 593, 45, + 0, 0, 797, 0, 800, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 806, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 818, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 821, 0, 0, 0, 0, 0, 0, 0, + 0, 824, 0, 0, 0, 0, 0, 0, + 827, 0, 0, 830, 0, 0, 0, 0, + 0, 0, 0, 833, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 836, 0, + 0, 839, 0, 0, 0, 0, 0, 0, + 794, 0, 0, 0, 0, 0, 803, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 809, 0, 0, 812, 0, 0, + 815, 315, 551, 0, 0, 0, 0, 0, + 0, 608, 45, 0, 0, 0, 0, 0, + 860, 0, 0, 0, 0, 0, 0, 0, + 0, 863, 0, 0, 0, 857, 0, 0, + 851, 0, 0, 0, 854, 0, 0, 869, + 0, 0, 0, 848, 0, 0, 842, 0, + 0, 0, 845, 0, 0, 866, 317, 551, + 0, 593, 45, 0, 0, 0, 0, 0, + 794, 761, 755, 2579, 105, 524, 527, 524, + 43, 533, 536, 530, 539, 0, 5, 7, + 524, 3, 9, 43, 533, 536, 530, 539, + 569, 0, 5, 7, 551, 3, 9, 51, + 635, 638, 45, 632, 641, 0, 5, 7, + 551, 3, 9, 2419, 51, 635, 638, 45, + 59, 57, 55, 0, 61, 632, 641, 0, + 5, 7, 551, 3, 9, 51, 635, 638, + 45, 59, 57, 55, 0, 61, 632, 641, + 0, 5, 7, 551, 3, 9, 51, 635, + 638, 45, 59, 57, 55, 0, 61, 632, + 641, 0, 5, 7, 551, 3, 9, 629, + 45, 59, 57, 55, 0, 61, 2427, 45, + 59, 57, 55, 0, 61, 2443, 4381, 11, + 383, 2427, 45, 59, 57, 55, 0, 61, + 662, 2451, 2455, 4381, 2447, 2459, 11, 383, + 2427, 45, 59, 57, 55, 0, 61, 662, + 2451, 2455, 4381, 2447, 2459, 11, 383, 2427, + 45, 59, 57, 55, 0, 61, 662, 2451, + 2455, 4381, 2447, 2459, 11, 383, 11, 383, + 11, 383, 452, 35, 467, 470, 464, 473, + 452, 0, 5, 7, 3, 9, 461, 11, + 383, 524, 43, 533, 536, 530, 539, 0, + 5, 7, 524, 3, 9, 527, 11, 383, + 551, 49, 614, 617, 45, 611, 620, 0, + 5, 7, 524, 3, 9, 527, 11, 383, + 2495, 704, 35, 467, 470, 464, 473, 2127, + 4056, 4061, 452, 0, 5, 7, 3, 9, + 701, 1979, 2027, 11, 383, 755, 2603, 105, + 1745, 2879, 281, 1673, 1676, 45, 1670, 1679, + 0, 5, 7, 551, 0, 0, 3, 9, + 285, 1697, 1700, 45, 1694, 1703, 0, 5, + 7, 4336, 3, 9, 575, 2283, 2287, 0, + 45, 2279, 2291, 0, 5, 7, 3, 9, + 0, 5, 7, 3, 9, 551, 283, 1685, + 1688, 45, 1682, 1691, 0, 5, 7, 551, + 0, 0, 3, 9, 287, 1709, 1712, 45, + 1706, 1715, 0, 5, 7, 4336, 3, 9, + 578, 2299, 2303, 0, 45, 2295, 2307, 0, + 5, 7, 3, 9, 0, 5, 7, 3, + 9, 0, 4331, 5876, 581, 2315, 2319, 0, + 45, 581, 2311, 2323, 4311, 5726, 5732, 0, + 5, 7, 4331, 3, 9, 1742, 1991, 2039, + 584, 2331, 2335, 0, 45, 584, 2327, 2339, + 4316, 5738, 5744, 0, 5, 7, 4331, 3, + 9, 1991, 2039, 587, 2347, 2351, 0, 45, + 587, 2343, 2355, 4321, 5750, 5756, 0, 5, + 7, 4331, 3, 9, 1991, 2039, 590, 2363, + 2367, 0, 45, 2359, 2371, 4326, 5762, 5768, + 0, 5, 7, 3, 9, 1991, 2039, 11, + 383, 2275, 4296, 4301, 4186, 4291, 4306, 5720, + 5991, 5998, 548, 11, 383, 2271, 4276, 4281, + 4186, 2271, 4271, 4286, 5714, 5977, 5984, 548, + 11, 383, 2267, 4256, 4261, 4186, 2267, 4251, + 4266, 5708, 5963, 5970, 548, 11, 383, 2263, + 4236, 4241, 4186, 2263, 4231, 4246, 5702, 5949, + 5956, 548, 11, 383, 291, 1733, 1736, 1730, + 1739, 11, 383, 2259, 4216, 4221, 4186, 4211, + 4226, 548, 11, 383, 11, 383, 11, 383, + 289, 1721, 1724, 1718, 1727, 11, 383, 2255, + 4196, 4201, 4186, 4191, 4206, 548, 11, 383, + 11, 383, 551, 49, 614, 617, 45, 611, + 620, 0, 5, 7, 551, 3, 9, 49, + 614, 617, 45, 611, 620, 0, 5, 7, + 551, 3, 9, 49, 614, 617, 45, 611, + 620, 0, 5, 7, 524, 3, 9, 527, + 11, 383, 11, 383, 11, 383, 551, 49, + 614, 617, 45, 611, 620, 0, 5, 7, + 551, 3, 9, 49, 614, 617, 45, 611, + 620, 452, 0, 5, 7, 3, 9, 35, + 467, 470, 464, 473, 452, 0, 5, 7, + 3, 9, 35, 467, 470, 464, 473, 452, + 0, 5, 7, 3, 9, 35, 467, 470, + 464, 473, 0, 5, 7, 524, 3, 9, + 527, 11, 383, 11, 383, 11, 383, 11, + 383, 11, 383, 321, 0, 5, 7, 3, + 9, 551, 49, 614, 617, 45, 611, 620, + 0, 5, 7, 319, 3, 9, 0, 5, + 7, 3, 9, 129, 1, 11, 383, 11, + 383, 11, 383, 782, 0, 770, 5, 7, + 773, 776, 3, 9, 1, 338, 359, 111, + 113, 0, 2571, 755, 105, 107, 551, 779, + 2635, 2639, 45, 2631, 2643, 2627, 4466, 4471, + 11, 383, 0, 755, 105, 109, 551, 49, + 614, 617, 45, 611, 620, 0, 5, 7, + 319, 3, 9, 0, 5, 7, 3, 9, + 551, 47, 599, 602, 45, 596, 605, 785, 0, 5, 7, 115, 3, 9, 117, 0, - 5, 7, 3, 9, 1, 336, 357, 11, - 381, 11, 381, 11, 381, 11, 381, 549, - 49, 612, 615, 45, 609, 618, 0, 5, - 7, 753, 3, 9, 2559, 105, 11, 381, - 549, 49, 612, 615, 45, 609, 618, 0, - 5, 7, 1734, 3, 9, 117, 115, 117, - 2631, 295, 115, 117, 115, 117, 2875, 2871, - 11, 381, 1731, 117, 2867, 293, 115, 117, - 2859, 1731, 117, 293, 115, 117, 2863, 549, - 49, 612, 615, 45, 609, 618, 0, 5, - 7, 549, 3, 9, 49, 612, 615, 45, - 609, 618, 75, 0, 5, 7, 3, 9, - 1, 11, 381, 11, 381, 549, 47, 597, - 600, 45, 594, 603, 450, 0, 5, 7, - 3, 9, 35, 465, 468, 462, 471, 75, - 0, 5, 7, 3, 9, 1, 11, 381, - 11, 381, 549, 49, 612, 615, 45, 609, - 618, 0, 5, 7, 522, 3, 9, 543, - 1, 11, 381, 171, 0, 5, 7, 3, - 9, 321, 0, 5, 7, 3, 9, 549, - 49, 612, 615, 45, 609, 618, 0, 5, - 7, 522, 3, 9, 525, 11, 381, 11, - 381, 11, 381, 513, 510, 0, 2183, 2187, - 489, 384, 393, 2179, 2191, 510, 325, 1987, - 1995, 2903, 2911, 1955, 2003, 2895, 2899, 3932, - 3942, 2203, 510, 1987, 1995, 2531, 2531, 2531, - 2531, 2531, 2531, 2531, 2531, 2531, 2531, 2531, - 2531, 2531, 2531, 2531, 2531, 2531, 2531, 1955, - 2003, 4117, 4132, 4377, 4377, 4377, 4377, 4377, - 4377, 4377, 4377, 4377, 4377, 4377, 4377, 4377, - 4377, 4377, 4377, 4377, 4377, 2195, 2527, 93, - 4362, 4367, 2523, 2515, 2519, 4357, 4372, 1987, - 1995, 1955, 2003, 399, 2055, 2063, 3987, 2071, - 399, 1983, 1991, 1999, 3937, 5626, 5632, 5746, - 5746, 5746, 5746, 5746, 5746, 5746, 5746, 5746, - 5746, 5746, 5746, 5746, 5746, 5746, 5746, 5746, - 5746, 3927 + 5, 7, 3, 9, 1, 338, 359, 11, + 383, 11, 383, 11, 383, 11, 383, 551, + 47, 599, 602, 45, 596, 605, 0, 5, + 7, 551, 3, 9, 47, 599, 602, 45, + 596, 605, 0, 5, 7, 115, 3, 9, + 117, 0, 5, 7, 3, 9, 1, 338, + 359, 11, 383, 11, 383, 11, 383, 551, + 47, 599, 602, 45, 596, 605, 872, 0, + 5, 7, 147, 149, 151, 153, 3, 9, + 0, 5, 7, 3, 9, 2243, 551, 47, + 599, 602, 45, 596, 605, 0, 5, 7, + 0, 3, 9, 2663, 0, 5, 7, 0, + 5, 7, 0, 5, 7, 1, 3, 9, + 338, 359, 3, 9, 338, 359, 3, 9, + 338, 359, 875, 129, 11, 383, 11, 383, + 11, 383, 11, 383, 11, 383, 0, 5, + 7, 3, 9, 551, 47, 599, 602, 45, + 596, 605, 2575, 0, 5, 7, 755, 3, + 9, 4431, 105, 764, 2587, 2591, 764, 2587, + 2591, 764, 2587, 2591, 2579, 2583, 2595, 4436, + 4441, 2583, 2595, 4436, 4441, 2583, 2595, 4436, + 4441, 11, 383, 11, 383, 0, 5, 7, + 3, 9, 551, 47, 599, 602, 45, 596, + 605, 0, 5, 7, 755, 3, 9, 105, + 767, 2611, 2615, 767, 2611, 2615, 767, 2611, + 2615, 2603, 2607, 2619, 4451, 4456, 2607, 2619, + 4451, 4456, 2607, 2619, 4451, 4456, 11, 383, + 11, 383, 0, 5, 7, 3, 9, 551, + 47, 599, 602, 45, 596, 605, 0, 5, + 7, 524, 3, 9, 43, 533, 536, 43, + 533, 536, 43, 533, 536, 527, 530, 539, + 2231, 2235, 530, 539, 2231, 2235, 530, 539, + 2231, 2235, 11, 383, 11, 383, 11, 383, + 171, 0, 5, 7, 3, 9, 319, 0, + 5, 7, 3, 9, 551, 47, 599, 602, + 45, 596, 605, 0, 5, 7, 551, 3, + 9, 51, 635, 638, 45, 632, 641, 683, + 0, 5, 7, 668, 3, 9, 65, 674, + 677, 63, 671, 680, 0, 5, 7, 668, + 3, 9, 65, 674, 677, 63, 671, 680, + 0, 5, 7, 551, 3, 9, 49, 614, + 617, 45, 611, 620, 0, 5, 7, 524, + 3, 9, 43, 533, 536, 530, 539, 0, + 5, 7, 129, 3, 9, 1, 11, 383, + 11, 383, 11, 383, 11, 383, 11, 383, + 11, 383, 11, 383, 11, 383, 524, 542, + 1, 551, 49, 614, 617, 45, 611, 620, + 0, 5, 7, 551, 3, 9, 47, 599, + 602, 45, 596, 605, 0, 5, 7, 319, + 3, 9, 0, 5, 7, 3, 9, 129, + 1, 11, 383, 11, 383, 11, 383, 129, + 1, 551, 47, 599, 602, 45, 596, 605, + 0, 5, 7, 551, 3, 9, 47, 599, + 602, 45, 596, 605, 0, 5, 7, 551, + 3, 9, 49, 614, 617, 45, 611, 620, + 0, 5, 7, 33, 455, 3, 9, 35, + 467, 470, 464, 473, 791, 0, 5, 7, + 458, 3, 9, 133, 135, 0, 137, 139, + 0, 141, 0, 143, 145, 0, 476, 131, + 1, 0, 0, 11, 383, 117, 115, 11, + 383, 11, 383, 11, 383, 551, 47, 599, + 602, 45, 596, 605, 0, 5, 7, 551, + 3, 9, 47, 599, 602, 45, 596, 605, + 0, 5, 7, 551, 3, 9, 49, 614, + 617, 45, 611, 620, 0, 5, 7, 33, + 455, 3, 9, 461, 117, 115, 11, 383, + 11, 383, 11, 383, 551, 47, 599, 602, + 45, 596, 605, 0, 5, 7, 551, 3, + 9, 47, 599, 602, 45, 596, 605, 0, + 5, 7, 551, 3, 9, 47, 599, 602, + 45, 596, 605, 0, 5, 7, 115, 3, + 9, 117, 0, 5, 7, 3, 9, 1, + 338, 359, 11, 383, 11, 383, 11, 383, + 11, 383, 551, 51, 635, 638, 45, 632, + 641, 0, 5, 7, 551, 3, 9, 623, + 45, 1, 11, 383, 551, 51, 635, 638, + 45, 632, 641, 0, 5, 7, 551, 3, + 9, 47, 599, 602, 45, 596, 605, 0, + 5, 7, 551, 3, 9, 47, 599, 602, + 45, 596, 605, 0, 5, 7, 115, 3, + 9, 117, 0, 5, 7, 3, 9, 1, + 338, 359, 11, 383, 11, 383, 11, 383, + 11, 383, 551, 49, 614, 617, 45, 611, + 620, 0, 5, 7, 755, 3, 9, 2579, + 105, 11, 383, 551, 49, 614, 617, 45, + 611, 620, 0, 5, 7, 1751, 3, 9, + 117, 115, 117, 2651, 297, 115, 117, 115, + 117, 2899, 2895, 11, 383, 1748, 117, 2891, + 295, 115, 117, 2883, 1748, 117, 295, 115, + 117, 2887, 551, 49, 614, 617, 45, 611, + 620, 0, 5, 7, 551, 3, 9, 49, + 614, 617, 45, 611, 620, 75, 0, 5, + 7, 3, 9, 1, 11, 383, 11, 383, + 551, 47, 599, 602, 45, 596, 605, 452, + 0, 5, 7, 3, 9, 35, 467, 470, + 464, 473, 75, 0, 5, 7, 3, 9, + 1, 11, 383, 11, 383, 551, 49, 614, + 617, 45, 611, 620, 0, 5, 7, 524, + 3, 9, 545, 1, 11, 383, 171, 0, + 5, 7, 3, 9, 323, 0, 5, 7, + 3, 9, 551, 49, 614, 617, 45, 611, + 620, 0, 5, 7, 524, 3, 9, 527, + 11, 383, 11, 383, 11, 383, 515, 512, + 0, 2203, 2207, 491, 386, 395, 2199, 2211, + 512, 327, 2007, 2015, 2927, 2935, 1975, 2023, + 2919, 2923, 3976, 3986, 2223, 512, 2007, 2015, + 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551, + 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551, + 2551, 2551, 1975, 2023, 4161, 4176, 4421, 4421, + 4421, 4421, 4421, 4421, 4421, 4421, 4421, 4421, + 4421, 4421, 4421, 4421, 4421, 4421, 4421, 4421, + 2215, 2547, 93, 4406, 4411, 2543, 2535, 2539, + 4401, 4416, 2007, 2015, 1975, 2023, 401, 2075, + 2083, 4031, 2091, 401, 2003, 2011, 2019, 3981, + 5690, 5696, 5810, 5810, 5810, 5810, 5810, 5810, + 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, + 5810, 5810, 5810, 5810, 3971 }; static const short _zone_scanner_eof_actions[] = { - 0, 2227, 2403, 331, 1779, 323, 1764, 15, - 15, 323, 323, 1764, 1764, 1764, 4137, 5728, - 1776, 331, 331, 1779, 1764, 1764, 331, 331, - 331, 331, 331, 1779, 1779, 331, 331, 1779, - 331, 331, 331, 1779, 331, 331, 331, 1779, - 331, 331, 331, 331, 1779, 331, 331, 331, - 1779, 331, 331, 331, 1779, 1779, 331, 331, - 1779, 331, 331, 331, 331, 1779, 331, 1779, - 331, 331, 331, 331, 1779, 331, 331, 331, - 1779, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 1779, 331, 331, 1779, 1779, - 331, 331, 1779, 331, 1779, 331, 1779, 1779, - 331, 331, 331, 331, 1779, 1779, 331, 331, - 331, 331, 1779, 331, 1779, 1779, 331, 1779, - 1779, 331, 331, 331, 331, 1779, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 1779, - 331, 331, 1779, 331, 1779, 331, 331, 331, - 1779, 1779, 331, 331, 331, 331, 331, 1779, - 331, 1779, 331, 1779, 331, 1779, 331, 331, - 331, 1779, 331, 331, 1779, 331, 331, 331, - 1779, 331, 1779, 331, 331, 570, 2231, 331, - 331, 1779, 331, 331, 331, 331, 331, 1779, - 331, 331, 331, 331, 331, 1779, 331, 2227, - 331, 331, 570, 2403, 2403, 2403, 2403, 331, - 15, 95, 95, 95, 95, 95, 95, 95, - 95, 41, 570, 0, 4122, 570, 331, 2403, - 2403, 2403, 331, 2207, 2231, 2915, 1764, 2227, - 15, 1764, 15, 4137, 2915, 2915, 2915, 2915, - 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, - 2915, 2915, 2915, 2915, 2915, 1764, 2891, 95, - 95, 95, 95, 95, 95, 95, 95, 95, - 2199, 5878, 2227, 1776, 4127, 4137, 4127, 4127, - 4127, 4127, 4127, 4127, 4127, 4127, 4127, 4127, - 4127, 4127, 4127, 4127, 4127, 4127, 4127, 516, - 4137, 1764, 15, 1764, 1764, 331, 331, 1779, - 331, 331, 331, 1779, 331, 1779, 1764, 1764, - 15, 1764, 1764, 1764, 1764, 323, 4137, 1764, - 1764, 519, 519, 519, 519, 519, 519, 519, - 519, 519, 519, 519, 519, 519, 519, 519, - 519, 519, 15, 1776, 519, 1776, 0, 0, - 0, 31, 31, 31, 429, 429, 429, 429, - 31, 31, 684, 684, 2467, 2467, 2467, 2467, - 684, 684, 69, 2467, 2467, 2467, 2467, 77, - 552, 4332, 402, 402, 4332, 2395, 4332, 77, - 81, 81, 81, 405, 405, 405, 432, 432, - 432, 432, 405, 81, 0, 85, 714, 720, - 87, 720, 15, 15, 435, 435, 435, 435, - 720, 15, 87, 0, 0, 127, 127, 127, - 127, 127, 127, 127, 169, 169, 169, 169, + 0, 2247, 2423, 333, 1796, 325, 1781, 15, + 15, 325, 325, 1781, 1781, 1781, 4181, 5792, + 1793, 333, 333, 1796, 1781, 1781, 333, 333, + 333, 333, 333, 1796, 1796, 333, 333, 1796, + 333, 333, 333, 1796, 333, 333, 333, 1796, + 333, 333, 333, 333, 1796, 333, 333, 333, + 1796, 333, 333, 333, 1796, 1796, 333, 333, + 1796, 333, 333, 333, 333, 1796, 333, 1796, + 333, 333, 333, 333, 1796, 333, 333, 333, + 1796, 333, 333, 333, 333, 333, 333, 333, + 333, 333, 333, 1796, 333, 333, 1796, 1796, + 333, 333, 1796, 333, 1796, 333, 1796, 1796, + 333, 333, 333, 333, 1796, 1796, 333, 333, + 333, 333, 1796, 333, 1796, 1796, 333, 1796, + 1796, 333, 333, 333, 333, 1796, 333, 333, + 333, 333, 333, 333, 333, 333, 333, 1796, + 333, 333, 1796, 333, 333, 333, 333, 333, + 333, 1796, 1796, 333, 333, 333, 1796, 1796, + 333, 333, 333, 333, 333, 1796, 333, 1796, + 333, 1796, 333, 1796, 333, 333, 333, 1796, + 333, 333, 1796, 333, 333, 333, 1796, 333, + 1796, 333, 333, 572, 2251, 333, 333, 1796, + 333, 333, 333, 333, 333, 1796, 333, 333, + 333, 333, 333, 1796, 333, 2247, 333, 333, + 572, 2423, 2423, 2423, 2423, 333, 15, 95, + 95, 95, 95, 95, 95, 95, 95, 41, + 572, 0, 4166, 572, 333, 2423, 2423, 2423, + 333, 2227, 2251, 2939, 1781, 2247, 15, 1781, + 15, 4181, 2939, 2939, 2939, 2939, 2939, 2939, + 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939, + 2939, 2939, 2939, 1781, 2915, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 2219, 5942, + 2247, 1793, 4171, 4181, 4171, 4171, 4171, 4171, + 4171, 4171, 4171, 4171, 4171, 4171, 4171, 4171, + 4171, 4171, 4171, 4171, 4171, 518, 4181, 1781, + 15, 1781, 1781, 333, 333, 1796, 333, 333, + 333, 1796, 333, 1796, 1781, 1781, 15, 1781, + 1781, 1781, 1781, 325, 4181, 1781, 1781, 521, + 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, + 15, 1793, 521, 1793, 0, 0, 0, 31, + 31, 31, 431, 431, 431, 431, 31, 31, + 686, 686, 2487, 2487, 2487, 2487, 686, 686, + 69, 2487, 2487, 2487, 2487, 77, 554, 4376, + 404, 404, 4376, 2415, 4376, 77, 81, 81, + 81, 407, 407, 407, 434, 434, 434, 434, + 407, 81, 0, 85, 716, 722, 87, 722, + 15, 15, 437, 437, 437, 437, 722, 15, + 87, 0, 0, 127, 127, 127, 127, 127, + 127, 127, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, @@ -6279,136 +6329,137 @@ static const short _zone_scanner_eof_actions[] = { 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 555, 555, 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 291, 558, 558, 2627, - 2627, 2627, 2627, 291, 291, 291, 558, 558, - 2627, 2627, 2627, 2627, 291, 558, 291, 301, + 169, 169, 557, 557, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 293, 560, + 560, 2647, 2647, 2647, 2647, 293, 293, 293, + 560, 560, 2647, 2647, 2647, 2647, 293, 560, + 293, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 566, + 566, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, + 303, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 564, 564, 301, + 301, 301, 301, 301, 301, 758, 758, 758, + 758, 758, 758, 301, 301, 301, 301, 301, + 758, 758, 758, 758, 758, 758, 301, 301, + 563, 563, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 299, - 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 756, 756, 756, 756, 756, - 756, 299, 299, 299, 299, 299, 756, 756, - 756, 756, 756, 756, 299, 299, 561, 561, - 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 299, 299, - 561, 561, 561, 561, 299, 299, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 313, 313, + 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 563, 563, 563, 563, 301, 301, + 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 315, - 315, 315, 315, 315, 315, 315, 315, 759, - 759, 323, 323, 323, 323, 323, 323, 567, - 567, 567, 2399, 567, 2399, 567, 2399, 567, - 2399, 2399, 2399, 2399, 323, 2399, 2399, 2399, - 323, 2399, 2399, 2399, 323, 2399, 2399, 2399, - 323, 323, 323, 323, 323, 323, 323, 323, - 323, 323, 323, 323, 323, 567, 567, 323, - 323, 323, 702, 702, 702, 702, 759, 759, - 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, - 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, - 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, - 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, - 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, - 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, - 1728, 1728, 1728, 1728, 1728, 1728, 1728, 567, - 567, 567, 567, 567, 567, 323, 323, 323, - 323, 323, 567, 567, 567, 567, 323, 323, - 323, 323, 323, 323, 323, 323, 323, 323, - 323, 323, 323, 323, 323, 567, 567, 323, - 323, 323, 323, 323, 323, 323, 780, 780, - 780, 2551, 2551, 780, 780, 323, 780, 2551, - 2551, 567, 567, 323, 323, 567, 567, 783, - 783, 783, 783, 323, 323, 323, 567, 567, - 567, 567, 783, 783, 783, 783, 323, 323, - 567, 567, 870, 870, 2223, 2223, 870, 2643, - 873, 873, 873, 873, 873, 873, 873, 870, - 870, 870, 2223, 2223, 2555, 4387, 870, 870, - 870, 2223, 2223, 2555, 4387, 870, 870, 870, - 2223, 2223, 870, 2643, 870, 870, 323, 323, - 323, 323, 323, 567, 567, 567, 567, 681, - 681, 681, 681, 567, 567, 323, 323, 323, - 323, 323, 323, 323, 323, 323, 323, 323, - 323, 323, 323, 323, 567, 567, 567, 567, - 323, 323, 323, 323, 323, 323, 323, 323, - 323, 567, 567, 567, 567, 567, 567, 783, - 783, 789, 789, 789, 789, 789, 789, 789, - 789, 789, 323, 789, 789, 789, 789, 789, - 323, 783, 783, 323, 323, 323, 567, 567, - 567, 567, 567, 567, 783, 783, 783, 783, - 323, 323, 323, 567, 567, 567, 567, 567, - 567, 783, 783, 783, 783, 323, 323, 323, - 567, 567, 567, 567, 323, 323, 567, 567, - 567, 567, 567, 567, 783, 783, 783, 783, - 323, 323, 323, 567, 567, 759, 759, 323, - 567, 567, 783, 783, 783, 783, 2631, 783, - 783, 783, 783, 2875, 323, 783, 783, 2867, - 783, 783, 2867, 783, 783, 2867, 783, 783, - 2867, 567, 567, 567, 567, 323, 323, 323, - 323, 567, 567, 323, 323, 323, 323, 323, - 323, 567, 567, 323, 323, 323, 323, 323, - 323, 323, 323, 567, 567, 323, 323, 323, - 323, 323, 0, 0, 0, 0, 93, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 + 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 317, 317, 317, 317, 317, 317, 317, + 317, 761, 761, 325, 325, 325, 325, 325, + 325, 569, 569, 569, 2419, 569, 2419, 569, + 2419, 569, 2419, 2419, 2419, 2419, 325, 2419, + 2419, 2419, 325, 2419, 2419, 2419, 325, 2419, + 2419, 2419, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 569, + 569, 325, 325, 325, 704, 704, 704, 704, + 761, 761, 1745, 1745, 1745, 1745, 1745, 1745, + 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, + 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, + 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, + 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, + 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, + 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, + 1745, 569, 569, 569, 569, 569, 569, 325, + 325, 325, 325, 325, 569, 569, 569, 569, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 569, + 569, 325, 325, 325, 325, 325, 325, 325, + 782, 782, 782, 2571, 2571, 782, 782, 325, + 782, 2571, 2571, 569, 569, 325, 325, 569, + 569, 785, 785, 785, 785, 325, 325, 325, + 569, 569, 569, 569, 785, 785, 785, 785, + 325, 325, 569, 569, 872, 872, 2243, 2243, + 872, 2663, 875, 875, 875, 875, 875, 875, + 875, 872, 872, 872, 2243, 2243, 2575, 4431, + 872, 872, 872, 2243, 2243, 2575, 4431, 872, + 872, 872, 2243, 2243, 872, 2663, 872, 872, + 325, 325, 325, 325, 325, 569, 569, 569, + 569, 683, 683, 683, 683, 569, 569, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 569, 569, + 569, 569, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 569, 569, 569, 569, 569, + 569, 785, 785, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 325, 791, 791, 791, + 791, 791, 325, 785, 785, 325, 325, 325, + 569, 569, 569, 569, 569, 569, 785, 785, + 785, 785, 325, 325, 325, 569, 569, 569, + 569, 569, 569, 785, 785, 785, 785, 325, + 325, 325, 569, 569, 569, 569, 325, 325, + 569, 569, 569, 569, 569, 569, 785, 785, + 785, 785, 325, 325, 325, 569, 569, 761, + 761, 325, 569, 569, 785, 785, 785, 785, + 2651, 785, 785, 785, 785, 2899, 325, 785, + 785, 2891, 785, 785, 2891, 785, 785, 2891, + 785, 785, 2891, 569, 569, 569, 569, 325, + 325, 325, 325, 569, 569, 325, 325, 325, + 325, 325, 325, 569, 569, 325, 325, 325, + 325, 325, 325, 325, 325, 569, 569, 325, + 325, 325, 325, 325, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -6430,7 +6481,7 @@ int zs_init( memset(s, 0, sizeof(*s)); // Nonzero initial scanner state. - s->cs = 1474; + s->cs = 1492; // Reset the file descriptor. s->file.descriptor = -1; @@ -6970,7 +7021,7 @@ _match: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } s->multiline = true; } @@ -6979,7 +7030,7 @@ _match: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } s->multiline = false; } @@ -7020,7 +7071,7 @@ _match: case 8: { WARN(ZS_BAD_REST); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 9: @@ -7073,15 +7124,15 @@ _match: if (s->error.fatal) { {p++; goto _out; } } - {cs = 318;goto _again;} + {cs = 324;goto _again;} } else { // Return if external processing. - p--; cs = 318; {p++; goto _out; } + p--; cs = 324; {p++; goto _out; } } } break; case 12: - { p--; {stack[top++] = cs; cs = 1474;goto _again;} } + { p--; {stack[top++] = cs; cs = 1492;goto _again;} } break; case 13: { @@ -7097,7 +7148,7 @@ _match: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7110,7 +7161,7 @@ _match: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7121,7 +7172,7 @@ _match: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7139,7 +7190,7 @@ _match: case 19: { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 20: @@ -7159,7 +7210,7 @@ _match: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7182,11 +7233,11 @@ _match: case 24: { WARN(ZS_BAD_DNAME_CHAR); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 25: - { p--; {stack[top++] = cs; cs = 321;goto _again;} } + { p--; {stack[top++] = cs; cs = 327;goto _again;} } break; case 26: { @@ -7194,7 +7245,7 @@ _match: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7203,13 +7254,13 @@ _match: s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7220,7 +7271,7 @@ _match: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7233,7 +7284,7 @@ _match: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7252,7 +7303,7 @@ _match: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7260,7 +7311,7 @@ _match: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 34: @@ -7285,7 +7336,7 @@ _match: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7297,7 +7348,7 @@ _match: case 38: { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 39: @@ -7325,7 +7376,7 @@ _match: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7346,7 +7397,7 @@ _match: rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7358,7 +7409,7 @@ _match: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7370,7 +7421,7 @@ _match: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7380,7 +7431,7 @@ _match: s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7390,14 +7441,14 @@ _match: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; case 50: { WARN(ZS_BAD_TIME_UNIT); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 51: @@ -7405,7 +7456,7 @@ _match: s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7414,7 +7465,7 @@ _match: s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7423,7 +7474,7 @@ _match: s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7432,7 +7483,7 @@ _match: s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7447,7 +7498,7 @@ _match: s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7462,7 +7513,7 @@ _match: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7479,7 +7530,7 @@ _match: rdata_tail += 4; } else { WARN(ret); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -7488,7 +7539,7 @@ _match: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } if (s->number64 <= UINT32_MAX) { @@ -7496,18 +7547,18 @@ _match: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; case 60: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 61: @@ -7523,27 +7574,27 @@ _match: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; case 62: { WARN(ZS_BAD_TEXT_CHAR); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 63: { WARN(ZS_BAD_TEXT); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 64: @@ -7559,7 +7610,7 @@ _match: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } @@ -7567,7 +7618,7 @@ _match: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7582,7 +7633,7 @@ _match: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7594,7 +7645,7 @@ _match: case 67: { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 68: @@ -7605,7 +7656,7 @@ _match: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -7623,13 +7674,13 @@ _match: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } } break; case 69: - { p--; {stack[top++] = cs; cs = 330;goto _again;} } + { p--; {stack[top++] = cs; cs = 336;goto _again;} } break; case 70: { @@ -7647,18 +7698,18 @@ _match: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; case 73: { ERR(ZS_BAD_TTL); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 74: - { p--; {stack[top++] = cs; cs = 343;goto _again;} } + { p--; {stack[top++] = cs; cs = 349;goto _again;} } break; case 75: { @@ -7673,11 +7724,11 @@ _match: case 77: { ERR(ZS_BAD_ORIGIN); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 78: - { p--; {stack[top++] = cs; cs = 352;goto _again;} } + { p--; {stack[top++] = cs; cs = 358;goto _again;} } break; case 79: { @@ -7689,7 +7740,7 @@ _match: size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } // Store zero terminated include filename. @@ -7703,7 +7754,7 @@ _match: case 81: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 82: @@ -7719,7 +7770,7 @@ _match: case 84: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 85: @@ -7730,7 +7781,7 @@ _match: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -7750,7 +7801,7 @@ _match: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } // Parse included zone file. @@ -7770,18 +7821,18 @@ _match: } zs_deinit(ss); free(ss); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1474; {p++; goto _out; } + p--; cs = 1492; {p++; goto _out; } } } break; case 86: - { p--; {stack[top++] = cs; cs = 364;goto _again;} } + { p--; {stack[top++] = cs; cs = 370;goto _again;} } break; case 87: { @@ -7796,7 +7847,7 @@ _match: case 89: { ERR(ZS_BAD_DIRECTIVE); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 90: @@ -7820,7 +7871,7 @@ _match: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7835,14 +7886,14 @@ _match: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; case 96: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 97: @@ -7851,7 +7902,7 @@ _match: if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7859,7 +7910,7 @@ _match: { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -7871,7 +7922,7 @@ _match: if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7879,7 +7930,7 @@ _match: { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -7912,7 +7963,7 @@ _match: s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7931,7 +7982,7 @@ _match: break; default: WARN(ZS_BAD_APL); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -7943,7 +7994,7 @@ _match: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -7963,7 +8014,7 @@ _match: case 107: { WARN(ZS_BAD_APL); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 108: @@ -7972,7 +8023,7 @@ _match: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -7985,21 +8036,21 @@ _match: case 110: { WARN(ZS_BAD_HEX_CHAR); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 111: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; case 112: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 113: @@ -8008,7 +8059,7 @@ _match: *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -8020,7 +8071,7 @@ _match: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -8032,7 +8083,7 @@ _match: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -8044,11 +8095,11 @@ _match: case 117: { WARN(ZS_BAD_BASE64_CHAR); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 118: - { p--; {stack[top++] = cs; cs = 381;goto _again;} } + { p--; {stack[top++] = cs; cs = 387;goto _again;} } break; case 119: { @@ -8056,7 +8107,7 @@ _match: *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -8068,7 +8119,7 @@ _match: *rdata_tail = second_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -8085,7 +8136,7 @@ _match: *rdata_tail = fourth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -8097,7 +8148,7 @@ _match: *rdata_tail = fifth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -8114,7 +8165,7 @@ _match: *rdata_tail = seventh_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; @@ -8126,7 +8177,7 @@ _match: case 127: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 128: @@ -8294,19 +8345,19 @@ _match: case 156: { WARN(ZS_BAD_GATEWAY); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 157: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 158: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; case 159: @@ -8457,178 +8508,184 @@ _match: { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } break; case 208: - { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } + { type_num(KNOT_RRTYPE_RESINFO, &rdata_tail); } break; case 209: - { p--; {stack[top++] = cs; cs = 388;goto _again;} } + { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } break; case 210: + { p--; {stack[top++] = cs; cs = 394;goto _again;} } + break; + case 211: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 211: - { window_add_bit(KNOT_RRTYPE_A, s); } - break; case 212: - { window_add_bit(KNOT_RRTYPE_NS, s); } + { window_add_bit(KNOT_RRTYPE_A, s); } break; case 213: - { window_add_bit(KNOT_RRTYPE_CNAME, s); } + { window_add_bit(KNOT_RRTYPE_NS, s); } break; case 214: - { window_add_bit(KNOT_RRTYPE_SOA, s); } + { window_add_bit(KNOT_RRTYPE_CNAME, s); } break; case 215: - { window_add_bit(KNOT_RRTYPE_PTR, s); } + { window_add_bit(KNOT_RRTYPE_SOA, s); } break; case 216: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } + { window_add_bit(KNOT_RRTYPE_PTR, s); } break; case 217: - { window_add_bit(KNOT_RRTYPE_MINFO, s); } + { window_add_bit(KNOT_RRTYPE_HINFO, s); } break; case 218: - { window_add_bit(KNOT_RRTYPE_MX, s); } + { window_add_bit(KNOT_RRTYPE_MINFO, s); } break; case 219: - { window_add_bit(KNOT_RRTYPE_TXT, s); } + { window_add_bit(KNOT_RRTYPE_MX, s); } break; case 220: - { window_add_bit(KNOT_RRTYPE_RP, s); } + { window_add_bit(KNOT_RRTYPE_TXT, s); } break; case 221: - { window_add_bit(KNOT_RRTYPE_AFSDB, s); } + { window_add_bit(KNOT_RRTYPE_RP, s); } break; case 222: - { window_add_bit(KNOT_RRTYPE_RT, s); } + { window_add_bit(KNOT_RRTYPE_AFSDB, s); } break; case 223: - { window_add_bit(KNOT_RRTYPE_KEY, s); } + { window_add_bit(KNOT_RRTYPE_RT, s); } break; case 224: - { window_add_bit(KNOT_RRTYPE_AAAA, s); } + { window_add_bit(KNOT_RRTYPE_KEY, s); } break; case 225: - { window_add_bit(KNOT_RRTYPE_LOC, s); } + { window_add_bit(KNOT_RRTYPE_AAAA, s); } break; case 226: - { window_add_bit(KNOT_RRTYPE_SRV, s); } + { window_add_bit(KNOT_RRTYPE_LOC, s); } break; case 227: - { window_add_bit(KNOT_RRTYPE_NAPTR, s); } + { window_add_bit(KNOT_RRTYPE_SRV, s); } break; case 228: - { window_add_bit(KNOT_RRTYPE_KX, s); } + { window_add_bit(KNOT_RRTYPE_NAPTR, s); } break; case 229: - { window_add_bit(KNOT_RRTYPE_CERT, s); } + { window_add_bit(KNOT_RRTYPE_KX, s); } break; case 230: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } + { window_add_bit(KNOT_RRTYPE_CERT, s); } break; case 231: - { window_add_bit(KNOT_RRTYPE_APL, s); } + { window_add_bit(KNOT_RRTYPE_DNAME, s); } break; case 232: - { window_add_bit(KNOT_RRTYPE_DS, s); } + { window_add_bit(KNOT_RRTYPE_APL, s); } break; case 233: - { window_add_bit(KNOT_RRTYPE_SSHFP, s); } + { window_add_bit(KNOT_RRTYPE_DS, s); } break; case 234: - { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } + { window_add_bit(KNOT_RRTYPE_SSHFP, s); } break; case 235: - { window_add_bit(KNOT_RRTYPE_RRSIG, s); } + { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } break; case 236: - { window_add_bit(KNOT_RRTYPE_NSEC, s); } + { window_add_bit(KNOT_RRTYPE_RRSIG, s); } break; case 237: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } + { window_add_bit(KNOT_RRTYPE_NSEC, s); } break; case 238: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } break; case 239: - { window_add_bit(KNOT_RRTYPE_NSEC3, s); } + { window_add_bit(KNOT_RRTYPE_DHCID, s); } break; case 240: - { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } + { window_add_bit(KNOT_RRTYPE_NSEC3, s); } break; case 241: - { window_add_bit(KNOT_RRTYPE_TLSA, s); } + { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } break; case 242: - { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } + { window_add_bit(KNOT_RRTYPE_TLSA, s); } break; case 243: - { window_add_bit(KNOT_RRTYPE_CDS, s); } + { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } break; case 244: - { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } + { window_add_bit(KNOT_RRTYPE_CDS, s); } break; case 245: - { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } + { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } break; case 246: - { window_add_bit(KNOT_RRTYPE_CSYNC, s); } + { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } break; case 247: - { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } + { window_add_bit(KNOT_RRTYPE_CSYNC, s); } break; case 248: - { window_add_bit(KNOT_RRTYPE_SPF, s); } + { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } break; case 249: - { window_add_bit(KNOT_RRTYPE_NID, s); } + { window_add_bit(KNOT_RRTYPE_SPF, s); } break; case 250: - { window_add_bit(KNOT_RRTYPE_L32, s); } + { window_add_bit(KNOT_RRTYPE_NID, s); } break; case 251: - { window_add_bit(KNOT_RRTYPE_L64, s); } + { window_add_bit(KNOT_RRTYPE_L32, s); } break; case 252: - { window_add_bit(KNOT_RRTYPE_LP, s); } + { window_add_bit(KNOT_RRTYPE_L64, s); } break; case 253: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } + { window_add_bit(KNOT_RRTYPE_LP, s); } break; case 254: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } + { window_add_bit(KNOT_RRTYPE_EUI48, s); } break; case 255: - { window_add_bit(KNOT_RRTYPE_URI, s); } + { window_add_bit(KNOT_RRTYPE_EUI64, s); } break; case 256: - { window_add_bit(KNOT_RRTYPE_CAA, s); } + { window_add_bit(KNOT_RRTYPE_URI, s); } break; case 257: - { window_add_bit(KNOT_RRTYPE_SVCB, s); } + { window_add_bit(KNOT_RRTYPE_CAA, s); } break; case 258: - { window_add_bit(KNOT_RRTYPE_HTTPS, s); } + { window_add_bit(KNOT_RRTYPE_SVCB, s); } break; case 259: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + { window_add_bit(KNOT_RRTYPE_HTTPS, s); } break; case 260: - { window_add_bit(KNOT_RRTYPE_WALLET, s); } + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } break; case 261: + { window_add_bit(KNOT_RRTYPE_RESINFO, s); } + break; + case 262: + { window_add_bit(KNOT_RRTYPE_WALLET, s); } + break; + case 263: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } break; - case 262: + case 264: { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -8647,82 +8704,82 @@ _match: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } } } break; - case 263: + case 265: { WARN(ZS_BAD_BITMAP); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 264: - { p--; {stack[top++] = cs; cs = 559;goto _again;} } + case 266: + { p--; {stack[top++] = cs; cs = 571;goto _again;} } break; - case 265: + case 267: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 266: + case 268: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 267: + case 269: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 268: + case 270: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 269: + case 271: { if (s->number64 <= 59999) { s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 270: + case 272: { if (s->number64 <= 59999) { s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 271: + case 273: { if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || (s->loc.alt_sign == -1 && s->number64 <= 10000000)) @@ -8730,56 +8787,56 @@ _match: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 272: + case 274: { if (s->number64 <= 9000000000ULL) { s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 273: + case 275: { if (s->number64 <= 9000000000ULL) { s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 274: + case 276: { if (s->number64 <= 9000000000ULL) { s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 275: + case 277: { s->loc.lat_sign = -1; } break; - case 276: + case 278: { s->loc.long_sign = -1; } break; - case 277: + case 279: { s->loc.alt_sign = -1; } break; - case 278: + case 280: { memset(&(s->loc), 0, sizeof(s->loc)); // Defaults. @@ -8791,7 +8848,7 @@ _match: s->loc.alt_sign = 1; } break; - case 279: + case 281: { // Write version. *(rdata_tail) = 0; @@ -8819,290 +8876,291 @@ _match: rdata_tail += 4; } break; - case 280: + case 282: { WARN(ZS_BAD_LOC_DATA); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 281: + case 283: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 282: + case 284: { s->item_length = 0; } break; - case 283: + case 285: { s->item_length++; } break; - case 284: + case 286: { if (s->item_length != 6) { WARN(ZS_BAD_EUI_LENGTH); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 285: + case 287: { if (s->item_length != 8) { WARN(ZS_BAD_EUI_LENGTH); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 286: + case 288: { WARN(ZS_BAD_CHAR_DASH); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 287: + case 289: { s->item_length = 0; } break; - case 288: + case 290: { s->item_length++; } break; - case 289: + case 291: { if (s->item_length != 4) { WARN(ZS_BAD_L64_LENGTH); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 290: + case 292: { WARN(ZS_BAD_CHAR_COLON); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 291: + case 293: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; } break; - case 292: + case 294: { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 293: + case 295: { WARN(ZS_BAD_SVCB_PARAM); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 294: + case 296: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 295: + case 297: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } s->svcb.param_position = rdata_tail; } break; - case 296: + case 298: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 297: + case 299: { s->comma_list = true; s->pending_backslash = false; } break; - case 298: + case 300: { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 299: + case 301: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } break; - case 300: + case 302: { svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } break; - case 301: + case 303: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } } break; - case 302: - { p--; {stack[top++] = cs; cs = 751;goto _again;} } + case 304: + { p--; {stack[top++] = cs; cs = 769;goto _again;} } break; - case 303: - { p--; {stack[top++] = cs; cs = 807;goto _again;} } + case 305: + { p--; {stack[top++] = cs; cs = 825;goto _again;} } break; - case 304: + case 306: { WARN(ZS_BAD_ALGORITHM); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 305: + case 307: { WARN(ZS_BAD_CERT_TYPE); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 306: + case 308: { WARN(ZS_BAD_DSYNC_SCHEME); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 307: - { p--; {stack[top++] = cs; cs = 918;goto _again;} } - break; - case 308: - { p--; {stack[top++] = cs; cs = 1022;goto _again;} } - break; case 309: - { p--; {stack[top++] = cs; cs = 1063;goto _again;} } + { p--; {stack[top++] = cs; cs = 936;goto _again;} } break; case 310: + { p--; {stack[top++] = cs; cs = 1040;goto _again;} } + break; + case 311: + { p--; {stack[top++] = cs; cs = 1081;goto _again;} } + break; + case 312: { rdata_tail = s->r_data; } break; - case 311: + case 313: { WARN(ZS_BAD_RDATA); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 312: + case 314: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = cs; cs = 1071;goto _again;} + {stack[top++] = cs; cs = 1089;goto _again;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = cs; cs = 1073;goto _again;} + {stack[top++] = cs; cs = 1091;goto _again;} case KNOT_RRTYPE_SOA: - {stack[top++] = cs; cs = 1075;goto _again;} + {stack[top++] = cs; cs = 1093;goto _again;} case KNOT_RRTYPE_HINFO: - {stack[top++] = cs; cs = 1107;goto _again;} + {stack[top++] = cs; cs = 1125;goto _again;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = cs; cs = 1112;goto _again;} + {stack[top++] = cs; cs = 1130;goto _again;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = cs; cs = 1117;goto _again;} + {stack[top++] = cs; cs = 1135;goto _again;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = cs; cs = 1122;goto _again;} + {stack[top++] = cs; cs = 1140;goto _again;} case KNOT_RRTYPE_AAAA: - {stack[top++] = cs; cs = 1126;goto _again;} + {stack[top++] = cs; cs = 1144;goto _again;} case KNOT_RRTYPE_LOC: - {stack[top++] = cs; cs = 1128;goto _again;} + {stack[top++] = cs; cs = 1146;goto _again;} case KNOT_RRTYPE_SRV: - {stack[top++] = cs; cs = 1183;goto _again;} + {stack[top++] = cs; cs = 1201;goto _again;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = cs; cs = 1194;goto _again;} + {stack[top++] = cs; cs = 1212;goto _again;} case KNOT_RRTYPE_CERT: - {stack[top++] = cs; cs = 1211;goto _again;} + {stack[top++] = cs; cs = 1229;goto _again;} case KNOT_RRTYPE_APL: - {stack[top++] = cs; cs = 1222;goto _again;} + {stack[top++] = cs; cs = 1240;goto _again;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = cs; cs = 1233;goto _again;} + {stack[top++] = cs; cs = 1251;goto _again;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = cs; cs = 1246;goto _again;} + {stack[top++] = cs; cs = 1264;goto _again;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = cs; cs = 1256;goto _again;} + {stack[top++] = cs; cs = 1274;goto _again;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = cs; cs = 1295;goto _again;} + {stack[top++] = cs; cs = 1313;goto _again;} case KNOT_RRTYPE_NSEC: - {stack[top++] = cs; cs = 1321;goto _again;} + {stack[top++] = cs; cs = 1339;goto _again;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = cs; cs = 1324;goto _again;} + {stack[top++] = cs; cs = 1342;goto _again;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = cs; cs = 1335;goto _again;} + {stack[top++] = cs; cs = 1353;goto _again;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = cs; cs = 1337;goto _again;} + {stack[top++] = cs; cs = 1355;goto _again;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = cs; cs = 1366;goto _again;} + {stack[top++] = cs; cs = 1384;goto _again;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = cs; cs = 1379;goto _again;} + {stack[top++] = cs; cs = 1397;goto _again;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = cs; cs = 1392;goto _again;} + {stack[top++] = cs; cs = 1410;goto _again;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = cs; cs = 1398;goto _again;} + {stack[top++] = cs; cs = 1416;goto _again;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = cs; cs = 1416;goto _again;} + {stack[top++] = cs; cs = 1434;goto _again;} case KNOT_RRTYPE_L32: - {stack[top++] = cs; cs = 1411;goto _again;} - case KNOT_RRTYPE_EUI48: {stack[top++] = cs; cs = 1429;goto _again;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = cs; cs = 1447;goto _again;} case KNOT_RRTYPE_EUI64: - {stack[top++] = cs; cs = 1435;goto _again;} + {stack[top++] = cs; cs = 1453;goto _again;} case KNOT_RRTYPE_URI: - {stack[top++] = cs; cs = 1441;goto _again;} + {stack[top++] = cs; cs = 1459;goto _again;} case KNOT_RRTYPE_CAA: - {stack[top++] = cs; cs = 1449;goto _again;} + {stack[top++] = cs; cs = 1467;goto _again;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = cs; cs = 1457;goto _again;} + {stack[top++] = cs; cs = 1475;goto _again;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = cs; cs = 1463;goto _again;} + {stack[top++] = cs; cs = 1481;goto _again;} default: WARN(ZS_CANNOT_TEXT_DATA); - {cs = 319;goto _again;} + {cs = 325;goto _again;} } } break; - case 313: + case 315: { switch (s->r_type) { // Next types must not have empty rdata. @@ -9154,190 +9212,194 @@ _match: case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: case KNOT_RRTYPE_DSYNC: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = cs; cs = 732;goto _again;} + {stack[top++] = cs; cs = 750;goto _again;} // Next types can have empty rdata. case KNOT_RRTYPE_APL: default: - {stack[top++] = cs; cs = 741;goto _again;} + {stack[top++] = cs; cs = 759;goto _again;} } } break; - case 314: + case 316: { if (pe - p == 1) { *wrap = WRAP_DETECTED; } } break; - case 315: + case 317: { if (*wrap == WRAP_NONE) { p--; } } break; - case 316: + case 318: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } break; - case 317: + case 319: { s->r_type = KNOT_RRTYPE_A; } break; - case 318: + case 320: { s->r_type = KNOT_RRTYPE_NS; } break; - case 319: + case 321: { s->r_type = KNOT_RRTYPE_CNAME; } break; - case 320: + case 322: { s->r_type = KNOT_RRTYPE_SOA; } break; - case 321: + case 323: { s->r_type = KNOT_RRTYPE_PTR; } break; - case 322: + case 324: { s->r_type = KNOT_RRTYPE_HINFO; } break; - case 323: + case 325: { s->r_type = KNOT_RRTYPE_MINFO; } break; - case 324: + case 326: { s->r_type = KNOT_RRTYPE_MX; } break; - case 325: + case 327: { s->r_type = KNOT_RRTYPE_TXT; } break; - case 326: + case 328: { s->r_type = KNOT_RRTYPE_RP; } break; - case 327: + case 329: { s->r_type = KNOT_RRTYPE_AFSDB; } break; - case 328: + case 330: { s->r_type = KNOT_RRTYPE_RT; } break; - case 329: + case 331: { s->r_type = KNOT_RRTYPE_KEY; } break; - case 330: + case 332: { s->r_type = KNOT_RRTYPE_AAAA; } break; - case 331: + case 333: { s->r_type = KNOT_RRTYPE_LOC; } break; - case 332: + case 334: { s->r_type = KNOT_RRTYPE_SRV; } break; - case 333: + case 335: { s->r_type = KNOT_RRTYPE_NAPTR; } break; - case 334: + case 336: { s->r_type = KNOT_RRTYPE_KX; } break; - case 335: + case 337: { s->r_type = KNOT_RRTYPE_CERT; } break; - case 336: + case 338: { s->r_type = KNOT_RRTYPE_DNAME; } break; - case 337: + case 339: { s->r_type = KNOT_RRTYPE_APL; } break; - case 338: + case 340: { s->r_type = KNOT_RRTYPE_DS; } break; - case 339: + case 341: { s->r_type = KNOT_RRTYPE_SSHFP; } break; - case 340: + case 342: { s->r_type = KNOT_RRTYPE_IPSECKEY; } break; - case 341: + case 343: { s->r_type = KNOT_RRTYPE_RRSIG; } break; - case 342: + case 344: { s->r_type = KNOT_RRTYPE_NSEC; } break; - case 343: + case 345: { s->r_type = KNOT_RRTYPE_DNSKEY; } break; - case 344: + case 346: { s->r_type = KNOT_RRTYPE_DHCID; } break; - case 345: + case 347: { s->r_type = KNOT_RRTYPE_NSEC3; } break; - case 346: + case 348: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } break; - case 347: + case 349: { s->r_type = KNOT_RRTYPE_TLSA; } break; - case 348: + case 350: { s->r_type = KNOT_RRTYPE_SMIMEA; } break; - case 349: + case 351: { s->r_type = KNOT_RRTYPE_CDS; } break; - case 350: + case 352: { s->r_type = KNOT_RRTYPE_CDNSKEY; } break; - case 351: + case 353: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } break; - case 352: + case 354: { s->r_type = KNOT_RRTYPE_CSYNC; } break; - case 353: + case 355: { s->r_type = KNOT_RRTYPE_ZONEMD; } break; - case 354: + case 356: { s->r_type = KNOT_RRTYPE_SPF; } break; - case 355: + case 357: { s->r_type = KNOT_RRTYPE_NID; } break; - case 356: + case 358: { s->r_type = KNOT_RRTYPE_L32; } break; - case 357: + case 359: { s->r_type = KNOT_RRTYPE_L64; } break; - case 358: + case 360: { s->r_type = KNOT_RRTYPE_LP; } break; - case 359: + case 361: { s->r_type = KNOT_RRTYPE_EUI48; } break; - case 360: + case 362: { s->r_type = KNOT_RRTYPE_EUI64; } break; - case 361: + case 363: { s->r_type = KNOT_RRTYPE_URI; } break; - case 362: + case 364: { s->r_type = KNOT_RRTYPE_CAA; } break; - case 363: + case 365: { s->r_type = KNOT_RRTYPE_SVCB; } break; - case 364: + case 366: { s->r_type = KNOT_RRTYPE_HTTPS; } break; - case 365: + case 367: { s->r_type = KNOT_RRTYPE_DSYNC; } break; - case 366: + case 368: + { s->r_type = KNOT_RRTYPE_RESINFO; } + break; + case 369: { s->r_type = KNOT_RRTYPE_WALLET; } break; - case 367: + case 370: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 319;goto _again;} + p--; {cs = 325;goto _again;} } s->r_data_length = rdata_tail - s->r_data; @@ -9377,7 +9439,7 @@ _again: case 8: { WARN(ZS_BAD_REST); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9385,7 +9447,7 @@ goto _again;} case 19: { WARN(ZS_BAD_NUMBER); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9393,7 +9455,7 @@ goto _again;} case 24: { WARN(ZS_BAD_DNAME_CHAR); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9402,7 +9464,7 @@ goto _again;} { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9410,7 +9472,7 @@ goto _again;} case 38: { WARN(ZS_BAD_NUMBER); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9418,7 +9480,7 @@ goto _again;} case 50: { WARN(ZS_BAD_TIME_UNIT); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9426,7 +9488,7 @@ goto _again;} case 60: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9434,7 +9496,7 @@ goto _again;} case 62: { WARN(ZS_BAD_TEXT_CHAR); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9442,7 +9504,7 @@ goto _again;} case 63: { WARN(ZS_BAD_TEXT); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9450,7 +9512,7 @@ goto _again;} case 67: { WARN(ZS_BAD_NUMBER); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9463,7 +9525,7 @@ goto _again;} case 73: { ERR(ZS_BAD_TTL); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9471,7 +9533,7 @@ goto _again;} case 77: { ERR(ZS_BAD_ORIGIN); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9479,7 +9541,7 @@ goto _again;} case 81: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9487,7 +9549,7 @@ goto _again;} case 84: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9500,7 +9562,7 @@ goto _again;} case 89: { ERR(ZS_BAD_DIRECTIVE); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9508,7 +9570,7 @@ goto _again;} case 96: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9516,7 +9578,7 @@ goto _again;} case 107: { WARN(ZS_BAD_APL); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9524,7 +9586,7 @@ goto _again;} case 110: { WARN(ZS_BAD_HEX_CHAR); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9532,7 +9594,7 @@ goto _again;} case 112: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9540,7 +9602,7 @@ goto _again;} case 117: { WARN(ZS_BAD_BASE64_CHAR); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9548,7 +9610,7 @@ goto _again;} case 127: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9556,7 +9618,7 @@ goto _again;} case 156: { WARN(ZS_BAD_GATEWAY); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9564,7 +9626,7 @@ goto _again;} case 157: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9572,103 +9634,103 @@ goto _again;} case 158: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 263: + case 265: { WARN(ZS_BAD_BITMAP); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 280: + case 282: { WARN(ZS_BAD_LOC_DATA); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 281: + case 283: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 286: + case 288: { WARN(ZS_BAD_CHAR_DASH); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 290: + case 292: { WARN(ZS_BAD_CHAR_COLON); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 293: + case 295: { WARN(ZS_BAD_SVCB_PARAM); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 294: + case 296: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 304: + case 306: { WARN(ZS_BAD_ALGORITHM); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 305: + case 307: { WARN(ZS_BAD_CERT_TYPE); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 306: + case 308: { WARN(ZS_BAD_DSYNC_SCHEME); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 311: + case 313: { WARN(ZS_BAD_RDATA); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 316: + case 318: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 319; if ( p == pe ) + p--; {cs = 325; if ( p == pe ) goto _test_eof; goto _again;} } diff --git a/src/libzscanner/scanner_body.rl b/src/libzscanner/scanner_body.rl index 63cdc522a0..fd50e5dc58 100644 --- a/src/libzscanner/scanner_body.rl +++ b/src/libzscanner/scanner_body.rl @@ -1420,6 +1420,7 @@ | "SVCB"i %{ type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } | "HTTPS"i %{ type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } | "DSYNC"i %{ type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } + | "RESINFO"i %{ type_num(KNOT_RRTYPE_RESINFO, &rdata_tail); } | "WALLET"i %{ type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } | "TYPE"i . num16 # TYPE0-TYPE65535. ) $!_type_error %_ret . all_wchar; @@ -1489,6 +1490,7 @@ | "SVCB"i %{ window_add_bit(KNOT_RRTYPE_SVCB, s); } | "HTTPS"i %{ window_add_bit(KNOT_RRTYPE_HTTPS, s); } | "DSYNC"i %{ window_add_bit(KNOT_RRTYPE_DSYNC, s); } + | "RESINFO"i %{ window_add_bit(KNOT_RRTYPE_RESINFO, s); } | "WALLET"i %{ window_add_bit(KNOT_RRTYPE_WALLET, s); } | "TYPE"i . type_bitmap # TYPE0-TYPE65535. ); @@ -2105,6 +2107,7 @@ fcall r_data_mx; case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: fcall r_data_txt; case KNOT_RRTYPE_AAAA: @@ -2222,6 +2225,7 @@ case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: case KNOT_RRTYPE_DSYNC: + case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: fcall nonempty_hex_r_data; // Next types can have empty rdata. @@ -2308,6 +2312,7 @@ | "SVCB"i %{ s->r_type = KNOT_RRTYPE_SVCB; } | "HTTPS"i %{ s->r_type = KNOT_RRTYPE_HTTPS; } | "DSYNC"i %{ s->r_type = KNOT_RRTYPE_DSYNC; } + | "RESINFO"i %{ s->r_type = KNOT_RRTYPE_RESINFO; } | "WALLET"i %{ s->r_type = KNOT_RRTYPE_WALLET; } | "TYPE"i . type_number ) $!_r_type_error; diff --git a/tests/libzscanner/TESTS b/tests/libzscanner/TESTS index 7119f9521b..a25a617e49 100644 --- a/tests/libzscanner/TESTS +++ b/tests/libzscanner/TESTS @@ -86,3 +86,4 @@ 58_HTTPS 59_WALLET 60_DSYNC +61_RESINFO diff --git a/tests/libzscanner/data/61_RESINFO.in b/tests/libzscanner/data/61_RESINFO.in new file mode 100644 index 0000000000..d3ea6f79b9 --- /dev/null +++ b/tests/libzscanner/data/61_RESINFO.in @@ -0,0 +1,14 @@ +$ORIGIN . +$TTL 1 + +; The RESINFO is the same as the TXT, so there are the differences and basics only. + +; OK +@ RESINFO "" "test1" "\255" test2 ; Array of text strings +@ RESINFO \# 1 00 ; Hexadecimal rdata +@ TYPE261 \# 1 00 ; TYPE + Hexadecimal rdata +@ TYPE261 "" ; TYPE +@ resinfo "" ; Type in lower-case + +; KO +@ RESINFO diff --git a/tests/libzscanner/data/61_RESINFO.out b/tests/libzscanner/data/61_RESINFO.out new file mode 100644 index 0000000000..8782c6d5e5 --- /dev/null +++ b/tests/libzscanner/data/61_RESINFO.out @@ -0,0 +1,32 @@ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=0105 +RDATA=0005746573743101FF057465737432 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=0105 +RDATA=00 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=0105 +RDATA=00 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=0105 +RDATA=00 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=0105 +RDATA=00 +------ +WARNG=ZS_BAD_RDATA +------ diff --git a/tests/libzscanner/test_zscanner.in b/tests/libzscanner/test_zscanner.in index 0f29ba7fa7..5e59d19a97 100644 --- a/tests/libzscanner/test_zscanner.in +++ b/tests/libzscanner/test_zscanner.in @@ -14,7 +14,7 @@ TMPDIR=$(test_tmpdir) TESTS_DIR="$SOURCE"/data ZSCANNER_TOOL="$BUILD"/zscanner-tool -plan 88 +plan 89 mkdir -p "$TMPDIR"/includes/ for a in 1 2 3 4 5 6; do From f10adc91667c7c493f3729fd2a1202c3de97c1a4 Mon Sep 17 00:00:00 2001 From: madblobfish <12998362+madblobfish@users.noreply.github.com> Date: Sun, 14 Dec 2025 20:53:25 +0100 Subject: [PATCH 294/675] Add reference to journal behaviour paragraph in operation.rst Adds a reference to the journal-max-usage zone configuration parameter in a paragraph in the operation.rst file which mentions per-zone limits. Also reformatted lines of said paragraph due to reaching 80 characters. --- doc/operation.rst | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/operation.rst b/doc/operation.rst index 47dd1c4e83..15f51f4016 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -357,11 +357,12 @@ If the journal is used to store both zone history and contents, a special change is present with zone contents. When the journal gets full, the changes are merged into this special changeset. -There is also a :ref:`safety hard limit ` for overall -journal database size, but it's strongly recommended to set the per-zone limits in -a way to prevent hitting this one. For LMDB, it's hard to recover from the -database-full state. For wiping one zone's journal, see *knotc zone-purge +journal* -command. +There is also a :ref:`safety hard limit ` +for overall journal database size, but it's strongly recommended to +set :ref:`the per-zone limits ` in a way to +prevent hitting this one. +For LMDB, it's hard to recover from the database-full state. +For wiping one zone's journal, see *knotc zone-purge +journal* command. .. [#fn-hc] This constant is hardcoded. From caa21357699bf20bf36cb88fa476a3d73d8f41ac Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 15 Dec 2025 08:33:51 +0100 Subject: [PATCH 295/675] Update Knot.includes --- Knot.includes | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Knot.includes b/Knot.includes index a7b21fe3d3..d7b253db3e 100644 --- a/Knot.includes +++ b/Knot.includes @@ -6,9 +6,11 @@ src/contrib/libngtcp2/ngtcp2 src/contrib/libngtcp2/ngtcp2/crypto src/contrib/libngtcp2/ngtcp2/lib src/contrib/licenses +src/contrib/musl src/contrib/openbsd src/contrib/proxyv2 src/contrib/qp-trie +src/contrib/redis src/contrib/ucw src/contrib/url-parser src/contrib/vpool @@ -24,6 +26,7 @@ src/knot/events/handlers src/knot/include src/knot/journal src/knot/modules +src/knot/modules/authsignal src/knot/modules/cookies src/knot/modules/dnsproxy src/knot/modules/dnstap @@ -54,10 +57,12 @@ src/libknot/dnssec/shared src/libknot/dnssec/sign src/libknot/packet src/libknot/probe +src/libknot/quic src/libknot/rrtype src/libknot/xdp src/libknot/yparser src/libzscanner +src/redis src/utils src/utils/common src/utils/kcatalogprint From 118c6053d005f1e2c2feaddcd8352b1c36bc220c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 15 Dec 2025 12:58:46 +0100 Subject: [PATCH 296/675] server: improve wording in starting log --- src/knot/server/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 32af116ca7..c0a5c8ec07 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1204,7 +1204,7 @@ int server_start_answering(server_t *server) return KNOT_EOK; } - log_info("server started"); + log_info("server started answering"); server->state |= ServerAnswering; for (int proto = IO_UDP; proto <= IO_XDP; ++proto) { if (server->handlers[proto].size > 0) { From 314b06225d60be4de33987f2e05a17acf2599551 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 15 Dec 2025 13:45:16 +0100 Subject: [PATCH 297/675] conf: increase defaults for timer-db-max-size and kasp-db-max-size --- doc/reference.rst | 4 ++-- src/knot/conf/schema.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 84211ef239..01ae22096e 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -1298,7 +1298,7 @@ The hard limit for the KASP database maximum size. .. NOTE:: This value also influences server's usage of virtual memory. -*Default:* ``500M`` (500 MiB) +*Default:* ``10G`` (10 GiB), or ``512M`` (512 MiB) for 32-bit .. _database_timer-db: @@ -1320,7 +1320,7 @@ The hard limit for the timer database maximum size. .. NOTE:: This value also influences server's usage of virtual memory. -*Default:* ``100M`` (100 MiB) +*Default:* ``5G`` (5 GiB), or ``512M`` (512 MiB) for 32-bit .. _database_timer-db-sync: diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index d8d69b8eef..3f9d91516b 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -311,10 +311,10 @@ static const yp_item_t desc_database[] = { VIRT_MEM_LIMIT(GIGA(20)), YP_SSIZE } }, { C_KASP_DB, YP_TSTR, YP_VSTR = { "keys" } }, { C_KASP_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(5), VIRT_MEM_LIMIT(GIGA(100)), - MEGA(500), YP_SSIZE } }, + VIRT_MEM_LIMIT(GIGA(10)), YP_SSIZE } }, { C_TIMER_DB, YP_TSTR, YP_VSTR = { "timers" } }, { C_TIMER_DB_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(1), VIRT_MEM_LIMIT(GIGA(100)), - MEGA(100), YP_SSIZE } }, + VIRT_MEM_LIMIT(GIGA(5)), YP_SSIZE } }, { C_TIMER_DB_SYNC, YP_TOPTINT, YP_VOPTINT = { 1, UINT32_MAX, TIMER_DB_SYNC_SHUTDOWN, YP_STIME, 0, timer_db_sync } }, { C_CATALOG_DB, YP_TSTR, YP_VSTR = { "catalog" } }, From a657f110b656649368c32394f7bd6e860378446b Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 14 Nov 2025 15:20:13 +0100 Subject: [PATCH 298/675] knotd: remove TCP Fast Open support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This technology didn’t prove to be helpful. --- doc/introduction.rst | 1 - doc/reference.rst | 23 ----- src/contrib/net.c | 99 +++---------------- src/contrib/net.h | 17 +--- src/knot/conf/base.c | 3 - src/knot/conf/base.h | 1 - src/knot/conf/schema.c | 3 +- src/knot/conf/schema.h | 4 +- src/knot/events/handlers/notify.c | 2 +- src/knot/events/handlers/refresh.c | 2 +- src/knot/events/handlers/update.c | 4 +- src/knot/modules/dnsproxy/dnsproxy.c | 7 +- src/knot/modules/dnsproxy/dnsproxy.rst | 10 -- src/knot/query/requestor.c | 8 +- src/knot/query/requestor.h | 11 +-- src/knot/server/server.c | 19 ---- src/knot/server/tcp-handler.c | 2 +- src/libknot/control/control.c | 2 +- .../tests/config/schema/data/complete.yaml | 2 +- tests/contrib/test_net.c | 16 +-- tests/contrib/test_net_shortwrite.c | 4 +- tests/knot/test_confio.c | 2 - tests/knot/test_requestor.c | 27 +---- 23 files changed, 52 insertions(+), 217 deletions(-) diff --git a/doc/introduction.rst b/doc/introduction.rst index 493d5d168d..b763c38cf6 100644 --- a/doc/introduction.rst +++ b/doc/introduction.rst @@ -73,7 +73,6 @@ Remarkable module extensions: Remarkable supported networking features: -* TCP Fast Open (client and server) * Opportunistic, strict, and mutual authentication profiles over TLS 1.3 or QUIC * High-performance UDP, TCP, and QUIC through AF_XDP processing (on Linux 4.18+) * SO_REUSEPORT (on Linux) or SO_REUSEPORT_LB (on FreeBSD 12.0+) on UDP and by choice on TCP diff --git a/doc/reference.rst b/doc/reference.rst index 01ae22096e..ab233f6bfe 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -197,7 +197,6 @@ General options related to the server. tcp-remote-io-timeout: INT tcp-max-clients: INT tcp-reuseport: BOOL - tcp-fastopen: BOOL quic-max-clients: INT quic-outbuf-max-size: SIZE quic-idle-close-timeout: TIME @@ -404,28 +403,6 @@ Change of this parameter requires restart of the Knot server to take effect. *Default:* ``off`` -.. _server_tcp-fastopen: - -tcp-fastopen ------------- - -If enabled, use TCP Fast Open for outbound TCP communication (client side): -incoming zone transfers, sending NOTIFY, and DDNS forwarding. This mode simplifies -TCP handshake and can result in better networking performance. TCP Fast Open -for inbound TCP communication (server side) isn't affected by this -configuration as it's enabled automatically if supported by OS. - -.. NOTE:: - The TCP Fast Open support must also be enabled on the OS level: - - * Linux/macOS: ensure kernel parameter ``net.ipv4.tcp_fastopen`` is ``2`` or - ``3`` for server side, and ``1`` or ``3`` for client side. - * FreeBSD: ensure kernel parameter ``net.inet.tcp.fastopen.server_enable`` - is ``1`` for server side, and ``net.inet.tcp.fastopen.client_enable`` is - ``1`` for client side. - -*Default:* ``off`` - .. _server_quic-max-clients: quic-max-clients diff --git a/src/contrib/net.c b/src/contrib/net.c index e70bda0088..8e315c1c3e 100644 --- a/src/contrib/net.c +++ b/src/contrib/net.c @@ -7,7 +7,7 @@ #include #include #include // OpenBSD -#include // TCP_FASTOPEN +#include #include #include #include @@ -232,30 +232,8 @@ int net_bound_socket(int type, const struct sockaddr_storage *addr, return sock; } -static int tfo_connect(int sock, const struct sockaddr_storage *addr) -{ -#if defined(__linux__) - /* connect() will be called implicitly with sendmsg(). */ - return KNOT_EOK; -#elif defined(__FreeBSD__) - return sockopt_enable(sock, IPPROTO_TCP, TCP_FASTOPEN); -#elif defined(__APPLE__) - /* Connection is performed lazily when first data is sent. */ - sa_endpoints_t ep = { - .sae_dstaddr = (const struct sockaddr *)addr, - .sae_dstaddrlen = sockaddr_len(addr) - }; - int flags = CONNECT_DATA_IDEMPOTENT | CONNECT_RESUME_ON_READ_WRITE; - - int ret = connectx(sock, &ep, SAE_ASSOCID_ANY, flags, NULL, 0, NULL, NULL); - return (ret == 0 ? KNOT_EOK : knot_map_errno()); -#else - return KNOT_ENOTSUP; -#endif -} - int net_connected_socket(int type, const struct sockaddr_storage *dst_addr, - const struct sockaddr_storage *src_addr, bool tfo) + const struct sockaddr_storage *src_addr) { if (dst_addr == NULL) { return KNOT_EINVAL; @@ -278,42 +256,17 @@ int net_connected_socket(int type, const struct sockaddr_storage *dst_addr, } /* Connect to destination. */ - if (tfo && net_is_stream(sock)) { - int ret = tfo_connect(sock, dst_addr); - if (ret != KNOT_EOK) { - close(sock); - return ret; - } - } else { - int ret = connect(sock, (const struct sockaddr *)dst_addr, - sockaddr_len(dst_addr)); - if (ret != 0 && errno != EINPROGRESS) { - ret = knot_map_errno(); - close(sock); - return ret; - } + int ret = connect(sock, (const struct sockaddr *)dst_addr, + sockaddr_len(dst_addr)); + if (ret != 0 && errno != EINPROGRESS) { + ret = knot_map_errno(); + close(sock); + return ret; } return sock; } -int net_bound_tfo(int sock, int backlog) -{ -#if defined(TCP_FASTOPEN) -#if defined(__APPLE__) - if (backlog > 0) { - backlog = 1; // just on-off switch on macOS - } -#endif - if (setsockopt(sock, IPPROTO_TCP, TCP_FASTOPEN, &backlog, sizeof(backlog)) != 0) { - return knot_map_errno(); - } - - return KNOT_EOK; -#endif - return KNOT_ENOTSUP; -} - int net_cmsg_ecn_enable(int sock, int family) { switch (family) { @@ -635,23 +588,6 @@ static ssize_t recv_data(int sock, struct msghdr *msg, bool oneshot, int *timeou return io_exec(&RECV_IO, sock, msg, oneshot, timeout_ptr); } -static ssize_t send_process_tfo(int fd, struct msghdr *msg, int timeout_ms) -{ -#if defined(__linux__) - int ret = sendmsg(fd, msg, MSG_FASTOPEN); - if (ret != 0 && errno == EINPROGRESS) { - if (poll_one(fd, POLLOUT, timeout_ms) != 1) { - errno = ETIMEDOUT; - return -1; - } - ret = sendmsg(fd, msg, MSG_NOSIGNAL); - } - return ret; -#else - return sendmsg(fd, msg, MSG_NOSIGNAL); -#endif -} - static ssize_t send_process(int fd, struct msghdr *msg, int timeout_ms) { return sendmsg(fd, msg, MSG_NOSIGNAL); @@ -662,18 +598,14 @@ static int send_wait(int fd, int timeout_ms) return poll_one(fd, POLLOUT, timeout_ms); } -static ssize_t send_data(int sock, struct msghdr *msg, int *timeout_ptr, bool tfo) +static ssize_t send_data(int sock, struct msghdr *msg, int *timeout_ptr) { static const struct io SEND_IO = { .process = send_process, .wait = send_wait }; - static const struct io SEND_IO_TFO = { - .process = send_process_tfo, - .wait = send_wait - }; - return io_exec(tfo ? &SEND_IO_TFO : &SEND_IO, sock, msg, false, timeout_ptr); + return io_exec(&SEND_IO, sock, msg, false, timeout_ptr); } /* -- generic stream and datagram I/O -------------------------------------- */ @@ -696,7 +628,7 @@ ssize_t net_base_send(int sock, const uint8_t *buffer, size_t size, .msg_iovlen = 1 }; - int ret = send_data(sock, &msg, &timeout_ms, false); + int ret = send_data(sock, &msg, &timeout_ms); if (ret < 0) { return ret; } else if (ret != size) { @@ -732,7 +664,7 @@ ssize_t net_msg_send(int sock, struct msghdr *msg, int timeout_ms) if (msg->msg_iovlen != 1) { return KNOT_EINVAL; } - int ret = send_data(sock, msg, &timeout_ms, false); + int ret = send_data(sock, msg, &timeout_ms); if (ret < 0) { return ret; } else if (ret != msg->msg_iov->iov_len) { @@ -770,8 +702,7 @@ ssize_t net_stream_recv(int sock, uint8_t *buffer, size_t size, int timeout_ms) /* -- DNS specific I/O ----------------------------------------------------- */ -ssize_t net_dns_tcp_send(int sock, const uint8_t *buffer, size_t size, int timeout_ms, - struct sockaddr_storage *tfo_addr) +ssize_t net_dns_tcp_send(int sock, const uint8_t *buffer, size_t size, int timeout_ms) { if (sock < 0 || buffer == NULL || size > UINT16_MAX) { return KNOT_EINVAL; @@ -789,13 +720,11 @@ ssize_t net_dns_tcp_send(int sock, const uint8_t *buffer, size_t size, int timeo } }; struct msghdr msg = { - .msg_name = (void *)tfo_addr, - .msg_namelen = tfo_addr ? sizeof(*tfo_addr) : 0, .msg_iov = iov, .msg_iovlen = 2 }; - ssize_t ret = send_data(sock, &msg, &timeout_ms, tfo_addr != NULL); + ssize_t ret = send_data(sock, &msg, &timeout_ms); if (ret < 0) { return ret; } diff --git a/src/contrib/net.h b/src/contrib/net.h index 4f2fe946b6..6d6b6f7181 100644 --- a/src/contrib/net.h +++ b/src/contrib/net.h @@ -56,21 +56,11 @@ int net_bound_socket(int type, const struct sockaddr_storage *addr, * \param type Socket transport type (SOCK_STREAM, SOCK_DGRAM). * \param dst_addr Destination address. * \param src_addr Source address (can be NULL). - * \param tfo Enable TCP Fast Open. * * \return socket or error code */ int net_connected_socket(int type, const struct sockaddr_storage *dst_addr, - const struct sockaddr_storage *src_addr, bool tfo); - -/*! - * \brief Enables TCP Fast Open on a bound socket. - * - * \param sock Socket. - * - * \return KNOT_EOK or error code - */ -int net_bound_tfo(int sock, int backlog); + const struct sockaddr_storage *src_add); /*! * \brief Tell kernel to send ECN bits thru CMSG on packet receival. @@ -234,12 +224,9 @@ ssize_t net_stream_recv(int sock, uint8_t *buffer, size_t size, int timeout_ms); * message size according to the specification. These two bytes are not * reflected in the return value. * - * \param[in] tfo_addr If not NULL, send using TCP Fast Open to this address. - * * \see net_base_send */ -ssize_t net_dns_tcp_send(int sock, const uint8_t *buffer, size_t size, int timeout_ms, - struct sockaddr_storage *tfo_addr); +ssize_t net_dns_tcp_send(int sock, const uint8_t *buffer, size_t size, int timeout_ms); /*! * \brief Receive a DNS message from a TCP socket. diff --git a/src/knot/conf/base.c b/src/knot/conf/base.c index 5bc126d353..93635dcdca 100644 --- a/src/knot/conf/base.c +++ b/src/knot/conf/base.c @@ -175,9 +175,6 @@ static void init_cache( val = conf_get(conf, C_SRV, C_TCP_RMT_IO_TIMEOUT); conf->cache.srv_tcp_remote_io_timeout = infinite_adjust(conf_int(&val)); - val = conf_get(conf, C_SRV, C_TCP_FASTOPEN); - conf->cache.srv_tcp_fastopen = conf_bool(&val); - conf->cache.srv_quic_max_clients = running_quic_clients; conf->cache.srv_quic_idle_close = running_quic_idle; diff --git a/src/knot/conf/base.h b/src/knot/conf/base.h index ec60293fcc..1609a55fd3 100644 --- a/src/knot/conf/base.h +++ b/src/knot/conf/base.h @@ -167,7 +167,6 @@ typedef struct { bool xdp_tcp; bool xdp_route_check; bool srv_tcp_reuseport; - bool srv_tcp_fastopen; bool srv_socket_affinity; bool srv_ecs; bool srv_ans_rotate; diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 3f9d91516b..88594fb85c 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -223,7 +223,6 @@ static const yp_item_t desc_server[] = { { C_TCP_RMT_IO_TIMEOUT, YP_TINT, YP_VINT = { 0, INT32_MAX, 5000 } }, { C_TCP_MAX_CLIENTS, YP_TINT, YP_VINT = { 0, INT32_MAX, YP_NIL } }, { C_TCP_REUSEPORT, YP_TBOOL, YP_VNONE }, - { C_TCP_FASTOPEN, YP_TBOOL, YP_VNONE }, { C_QUIC_MAX_CLIENTS, YP_TINT, YP_VINT = { 128, INT32_MAX, 10000 } }, { C_QUIC_OUTBUF_MAX_SIZE, YP_TINT, YP_VINT = { MEGA(1), SSIZE_MAX, MEGA(100), YP_SSIZE } }, { C_QUIC_IDLE_CLOSE, YP_TINT, YP_VINT = { 1, INT32_MAX, 4, YP_STIME } }, @@ -253,6 +252,8 @@ static const yp_item_t desc_server[] = { { C_LISTEN_QUIC, YP_TADDR, YP_VADDR = { CONF_DNS_TLS_PORT }, YP_FMULTI, { check_listen } }, { C_LISTEN_TLS, YP_TADDR, YP_VADDR = { CONF_DNS_TLS_PORT }, YP_FMULTI, { check_listen } }, { C_COMMENT, YP_TSTR, YP_VNONE }, + /* Legacy items.*/ + { C_TCP_FASTOPEN, YP_TBOOL, YP_VNONE, YP_FNONE, { legacy_item } }, { NULL } }; diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 30a0348739..8d5d57da98 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -153,7 +153,6 @@ #define C_STORAGE "\x07""storage" #define C_TARGET "\x06""target" #define C_TCP "\x03""tcp" -#define C_TCP_FASTOPEN "\x0C""tcp-fastopen" #define C_TCP_IDLE_CLOSE "\x16""tcp-idle-close-timeout" #define C_TCP_IDLE_RESET "\x16""tcp-idle-reset-timeout" #define C_TCP_IDLE_TIMEOUT "\x10""tcp-idle-timeout" @@ -204,6 +203,9 @@ #define C_ZSK_LIFETIME "\x0C""zsk-lifetime" #define C_ZSK_SIZE "\x08""zsk-size" +// Legacy items. +#define C_TCP_FASTOPEN "\x0C""tcp-fastopen" + #define CONF_DNS_PORT 53 #define CONF_DNS_TLS_PORT 853 #define CONF_REDIS_PORT 6379 diff --git a/src/knot/events/handlers/notify.c b/src/knot/events/handlers/notify.c index 7728dc23a0..86cb293600 100644 --- a/src/knot/events/handlers/notify.c +++ b/src/knot/events/handlers/notify.c @@ -95,7 +95,7 @@ static int send_notify(conf_t *conf, zone_t *zone, const knot_rrset_t *soa, return KNOT_ENOMEM; } - knot_request_flag_t flags = conf->cache.srv_tcp_fastopen ? KNOT_REQUEST_TFO : 0; + knot_request_flag_t flags = 0; knot_request_t *req = knot_request_make(NULL, slave, pkt, zone->server->quic_creds, &data.edns, flags); if (req == NULL) { diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 79690d8511..9ebda7fa2b 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -1412,7 +1412,7 @@ static int try_refresh(conf_t *conf, zone_t *zone, const conf_remote_t *master, return KNOT_ENOMEM; } - knot_request_flag_t flags = conf->cache.srv_tcp_fastopen ? KNOT_REQUEST_TFO : 0; + knot_request_flag_t flags = 0; if (data.edns.no_edns) { flags |= KNOT_REQUEST_NEW; } diff --git a/src/knot/events/handlers/update.c b/src/knot/events/handlers/update.c index 2229c56686..f038860d04 100644 --- a/src/knot/events/handlers/update.c +++ b/src/knot/events/handlers/update.c @@ -287,7 +287,7 @@ static int remote_forward(conf_t *conf, knot_request_t *request, conf_remote_t * } /* Create a request. */ - knot_request_flag_t flags = conf->cache.srv_tcp_fastopen ? KNOT_REQUEST_TFO : 0; + knot_request_flag_t flags = 0; if (request->query->tsig_rr != NULL && request->sign.tsig_key.secret.size == 0) { // Put the TSIG back on the wire as it was removed when parsing in pkt copy. knot_tsig_append(query->wire, &query->size, query->max_size, query->tsig_rr); @@ -392,7 +392,7 @@ static void send_update_response(conf_t *conf, zone_t *zone, knot_request_t *req knot_tls_conn_block(req->tls_req_ctx.conn, false); } else { (void)net_dns_tcp_send(req->fd, req->resp->wire, req->resp->size, - conf->cache.srv_tcp_remote_io_timeout, NULL); + conf->cache.srv_tcp_remote_io_timeout); } } else { if (req->quic_conn != NULL) { diff --git a/src/knot/modules/dnsproxy/dnsproxy.c b/src/knot/modules/dnsproxy/dnsproxy.c index 2e310d1167..8f841090df 100644 --- a/src/knot/modules/dnsproxy/dnsproxy.c +++ b/src/knot/modules/dnsproxy/dnsproxy.c @@ -44,7 +44,6 @@ typedef struct { knotd_conf_t via; knotd_conf_t addr; bool fallback; - bool tfo; bool catch_nxdomain; int timeout; } dnsproxy_t; @@ -90,8 +89,6 @@ static int fwd(dnsproxy_t *proxy, knot_pkt_t *pkt, knotd_qdata_t *qdata, int add knot_request_flag_t flags = KNOT_REQUEST_NONE; if (udp) { flags = KNOT_REQUEST_UDP; - } else if (proxy->tfo) { - flags = KNOT_REQUEST_TFO; } if (query->tsig_rr != NULL) { @@ -188,7 +185,9 @@ int dnsproxy_load(knotd_mod_t *mod) proxy->fallback = conf.single.boolean; conf = knotd_conf_mod(mod, MOD_TCP_FASTOPEN); - proxy->tfo = conf.single.boolean; + if (conf.count > 0) { + knotd_mod_log(mod, LOG_NOTICE, "'tcp-fastopen' is obsolete and has no effect"); + } conf = knotd_conf_mod(mod, MOD_CATCH_NXDOMAIN); proxy->catch_nxdomain = conf.single.boolean; diff --git a/src/knot/modules/dnsproxy/dnsproxy.rst b/src/knot/modules/dnsproxy/dnsproxy.rst index a2da099602..7593368273 100644 --- a/src/knot/modules/dnsproxy/dnsproxy.rst +++ b/src/knot/modules/dnsproxy/dnsproxy.rst @@ -54,7 +54,6 @@ Module reference timeout: INT address: ADDR[/INT] | ADDR-ADDR | STR ... fallback: BOOL - tcp-fastopen: BOOL catch-nxdomain: BOOL .. _mod-dnsproxy_id: @@ -111,15 +110,6 @@ to resolve them. *Default:* ``on`` -.. _mod-dnsproxy_tcp-fastopen: - -tcp-fastopen -............ - -If enabled, TCP Fast Open is used when forwarding TCP queries. - -*Default:* ``off`` - .. _mod-dnsproxy_catch-nxdomain: catch-nxdomain diff --git a/src/knot/query/requestor.c b/src/knot/query/requestor.c index 50b1675ad8..d940a38c95 100644 --- a/src/knot/query/requestor.c +++ b/src/knot/query/requestor.c @@ -67,8 +67,7 @@ static int request_ensure_connected(knot_request_t *request, bool *reused_fd, in request->fd = net_connected_socket(sock_type, &request->remote, - &request->source, - request->flags & KNOT_REQUEST_TFO); + &request->source); if (request->fd < 0) { if (request->fd == KNOT_ETIMEOUT) { knot_unreachable_add(global_unreachables, &request->remote, @@ -128,8 +127,6 @@ static int request_send(knot_request_t *request, int timeout_ms, bool *reused_fd knot_pkt_t *query = request->query; uint8_t *wire = query->wire; size_t wire_len = query->size; - struct sockaddr_storage *tfo_addr = (request->flags & KNOT_REQUEST_TFO) ? - &request->remote : NULL; /* Send query. */ if (use_tls(request)) { @@ -143,8 +140,7 @@ static int request_send(knot_request_t *request, int timeout_ms, bool *reused_fd assert(0); #endif // ENABLE_QUIC } else if (use_tcp(request)) { - ret = net_dns_tcp_send(request->fd, wire, wire_len, timeout_ms, - tfo_addr); + ret = net_dns_tcp_send(request->fd, wire, wire_len, timeout_ms); if (ret == KNOT_ETIMEOUT) { // Includes establishing conn which times out. knot_unreachable_add(global_unreachables, &request->remote, &request->source); diff --git a/src/knot/query/requestor.h b/src/knot/query/requestor.h index 88f0ccaf76..645223a15e 100644 --- a/src/knot/query/requestor.h +++ b/src/knot/query/requestor.h @@ -19,12 +19,11 @@ typedef enum { KNOT_REQUEST_NONE = 0, /*!< Empty flag. */ KNOT_REQUEST_UDP = 1 << 0, /*!< Use UDP for requests. */ - KNOT_REQUEST_TFO = 1 << 1, /*!< Enable TCP Fast Open for requests. */ - KNOT_REQUEST_KEEP = 1 << 2, /*!< Keep upstream TCP connection in pool for later reuse. */ - KNOT_REQUEST_QUIC = 1 << 3, /*!< Use QUIC/UDP for requests. */ - KNOT_REQUEST_TLS = 1 << 4, /*!< Use DoT for requests. */ - KNOT_REQUEST_FWD = 1 << 5, /*!< Forwarded message, don't modify (TSIG, PADDING). */ - KNOT_REQUEST_NEW = 1 << 6, /*!< Ensure a new TCP connection is established. */ + KNOT_REQUEST_KEEP = 1 << 1, /*!< Keep upstream TCP connection in pool for later reuse. */ + KNOT_REQUEST_QUIC = 1 << 2, /*!< Use QUIC/UDP for requests. */ + KNOT_REQUEST_TLS = 1 << 3, /*!< Use DoT for requests. */ + KNOT_REQUEST_FWD = 1 << 4, /*!< Forwarded message, don't modify (TSIG, PADDING). */ + KNOT_REQUEST_NEW = 1 << 5, /*!< Ensure a new TCP connection is established. */ } knot_request_flag_t; typedef enum { diff --git a/src/knot/server/server.c b/src/knot/server/server.c index c0a5c8ec07..2b54e996c6 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -11,7 +11,6 @@ #include #include #include // OpenBSD -#include // TCP_FASTOPEN #include #include "libknot/libknot.h" @@ -511,14 +510,6 @@ static iface_t *server_init_iface(struct sockaddr_storage *addr, bool tls, warn_cbpf = false; } } - - /* Try to enable TCP Fast Open. */ - ret = net_bound_tfo(sock, TCP_BACKLOG_SIZE); - if (ret != KNOT_EOK && ret != KNOT_ENOTSUP && warn_flag_misc) { - log_warning("failed to enable TCP Fast Open on %s (%s)", - addr_str, knot_strerror(ret)); - warn_flag_misc = false; - } } return new_if; @@ -536,16 +527,6 @@ static void log_sock_conf(conf_t *conf) if (conf->cache.srv_socket_affinity) { strlcat(buf, ", socket affinity", sizeof(buf)); } -#endif -#if defined(TCP_FASTOPEN) - if (buf[0] != '\0') { - strlcat(buf, ", ", sizeof(buf)); - } - strlcat(buf, "incoming", sizeof(buf)); - if (conf->cache.srv_tcp_fastopen) { - strlcat(buf, "/outgoing", sizeof(buf)); - } - strlcat(buf, " TCP Fast Open", sizeof(buf)); #endif if (buf[0] != '\0') { log_info("using %s", buf); diff --git a/src/knot/server/tcp-handler.c b/src/knot/server/tcp-handler.c index c0b7e27e65..402f54db3c 100644 --- a/src/knot/server/tcp-handler.c +++ b/src/knot/server/tcp-handler.c @@ -202,7 +202,7 @@ static int tcp_handle(tcp_context_t *tcp, knotd_qdata_params_t *params, sent = knot_tls_send(params->tls_conn, ans->wire, ans->size); } else { sent = net_dns_tcp_send(params->socket, ans->wire, ans->size, - tcp->io_timeout, NULL); + tcp->io_timeout); } if (sent != ans->size) { tcp_log_error(params->remote, "send", sent, tcp->server); diff --git a/src/libknot/control/control.c b/src/libknot/control/control.c index 2bca395bad..c6faef0e08 100644 --- a/src/libknot/control/control.c +++ b/src/libknot/control/control.c @@ -285,7 +285,7 @@ int knot_ctl_connect(knot_ctl_t *ctx, const char *path) } // Connect to socket. - ctx->sock = net_connected_socket(SOCK_STREAM, &addr, NULL, false); + ctx->sock = net_connected_socket(SOCK_STREAM, &addr, NULL); if (ctx->sock < 0) { return ctx->sock; } diff --git a/tests-extra/tests/config/schema/data/complete.yaml b/tests-extra/tests/config/schema/data/complete.yaml index 43d64db4c3..997f19f3aa 100644 --- a/tests-extra/tests/config/schema/data/complete.yaml +++ b/tests-extra/tests/config/schema/data/complete.yaml @@ -6,7 +6,6 @@ server: udp-workers: 1 async-start: off tcp-reuseport: false - tcp-fastopen: "true" socket-affinity: on tcp-idle-timeout: 1 quic-idle-close-timeout: 1s @@ -25,6 +24,7 @@ server: xdp: listen: ::1 listen: lo + tcp: "true" tcp-idle-close-timeout: 1d tcp-inbuf-max-size: 1G log: diff --git a/tests/contrib/test_net.c b/tests/contrib/test_net.c index 2f7236fc63..72ab3b9d47 100644 --- a/tests/contrib/test_net.c +++ b/tests/contrib/test_net.c @@ -202,7 +202,7 @@ static void test_connected_one(const struct sockaddr_storage *server_addr, { int r; - int client = net_connected_socket(type, server_addr, source_addr, false); + int client = net_connected_socket(type, server_addr, source_addr); ok(client >= 0, "%s, %s: client, create connected socket", name, addr_name); const uint8_t out[] = "test message"; @@ -355,7 +355,7 @@ static void test_refused(void) r = listen(server, LISTEN_BACKLOG); is_int(0, r, "server, start listening"); - client = net_connected_socket(SOCK_STREAM, &addr, NULL, false); + client = net_connected_socket(SOCK_STREAM, &addr, NULL); ok(client >= 0, "client, connect"); r = net_stream_send(client, (uint8_t *)"", 1, TIMEOUT); @@ -368,7 +368,7 @@ static void test_refused(void) // listening, closed immediately - client = net_connected_socket(SOCK_STREAM, &addr, NULL, false); + client = net_connected_socket(SOCK_STREAM, &addr, NULL); ok(client >= 0, "client, connect"); r = close(server); @@ -432,7 +432,7 @@ static void handler_dns(int sock, void *_ctx) static void dns_send_hello(int sock) { - net_dns_tcp_send(sock, (uint8_t *)"wimbgunts", 9, TIMEOUT, NULL); + net_dns_tcp_send(sock, (uint8_t *)"wimbgunts", 9, TIMEOUT); } static void dns_send_fragmented(int sock) @@ -500,7 +500,7 @@ static void test_dns_tcp(void) ok(r, "%s, server, start handler", t->name); addr = addr_from_socket(server); - int client = net_connected_socket(SOCK_STREAM, &addr, NULL, false); + int client = net_connected_socket(SOCK_STREAM, &addr, NULL); ok(client >= 0, "%s, client, create connected socket", t->name); r = sync_wait(client); @@ -540,7 +540,7 @@ static void test_nonblocking_mode(int type) } struct sockaddr_storage server_addr = addr_from_socket(server); - client = net_connected_socket(type, &server_addr, NULL, false); + client = net_connected_socket(type, &server_addr, NULL); ok(client >= 0, "%s: connected, create", name); ok(!socket_is_blocking(client), "%s: connected, nonblocking mode", name); @@ -566,7 +566,7 @@ static void test_nonblocking_accept(void) // create client - int client = net_connected_socket(SOCK_STREAM, &addr_server, NULL, false); + int client = net_connected_socket(SOCK_STREAM, &addr_server, NULL); ok(client >= 0, "client, create connected socket"); struct sockaddr_storage addr_client = addr_from_socket(client); @@ -590,7 +590,7 @@ static void test_nonblocking_accept(void) // client reconnect close(client); - client = net_connected_socket(SOCK_STREAM, &addr_server, NULL, false); + client = net_connected_socket(SOCK_STREAM, &addr_server, NULL); ok(client >= 0, "client, reconnect"); r = poll_read(server); diff --git a/tests/contrib/test_net_shortwrite.c b/tests/contrib/test_net_shortwrite.c index 7a61e21ec2..299e80411b 100644 --- a/tests/contrib/test_net_shortwrite.c +++ b/tests/contrib/test_net_shortwrite.c @@ -87,7 +87,7 @@ int main(int argc, char *argv[]) // create TCP client - int client = net_connected_socket(SOCK_STREAM, &addr, NULL, false); + int client = net_connected_socket(SOCK_STREAM, &addr, NULL); ok(client >= 0, "client: connect to server"); int optval = 8192; @@ -114,7 +114,7 @@ int main(int argc, char *argv[]) for (size_t i = 0; i < sizeof(sndbuf); i++) { sndbuf[i] = i; } - r = net_dns_tcp_send(client, sndbuf, sizeof(sndbuf), TIMEOUT, NULL); + r = net_dns_tcp_send(client, sndbuf, sizeof(sndbuf), TIMEOUT); ok(r == sizeof(sndbuf), "client: net_dns_tcp_send() with short-write"); // receive message diff --git a/tests/knot/test_confio.c b/tests/knot/test_confio.c index 8e0a49bed5..0bca700e05 100644 --- a/tests/knot/test_confio.c +++ b/tests/knot/test_confio.c @@ -901,7 +901,6 @@ static void test_conf_io_list(void) "server.tcp-remote-io-timeout\n" "server.tcp-max-clients\n" "server.tcp-reuseport\n" - "server.tcp-fastopen\n" "server.quic-max-clients\n" "server.quic-idle-close-timeout\n" "server.quic-outbuf-max-size\n" @@ -968,7 +967,6 @@ static const yp_item_t desc_server[] = { { C_TCP_RMT_IO_TIMEOUT, YP_TINT, YP_VNONE }, { C_TCP_MAX_CLIENTS, YP_TINT, YP_VNONE }, { C_TCP_REUSEPORT, YP_TBOOL, YP_VNONE }, - { C_TCP_FASTOPEN, YP_TBOOL, YP_VNONE }, { C_QUIC_MAX_CLIENTS, YP_TINT, YP_VNONE }, { C_QUIC_IDLE_CLOSE, YP_TINT, YP_VNONE }, { C_QUIC_OUTBUF_MAX_SIZE, YP_TINT, YP_VNONE }, diff --git a/tests/knot/test_requestor.c b/tests/knot/test_requestor.c index 6199e71292..d67a8c41e0 100644 --- a/tests/knot/test_requestor.c +++ b/tests/knot/test_requestor.c @@ -20,8 +20,6 @@ #include "contrib/sockaddr.h" #include "contrib/ucw/mempool.h" -bool TFO = false; - /* @note Purpose of this test is not to verify process_answer functionality, * but simply if the requesting/receiving works, so mirror is okay. */ static int reset(knot_layer_t *ctx) { return KNOT_STATE_PRODUCE; } @@ -61,7 +59,7 @@ static void *responder_thread(void *arg) break; } knot_wire_set_qr(buf); - net_dns_tcp_send(client, buf, len, -1, NULL); + net_dns_tcp_send(client, buf, len, -1); close(client); } @@ -79,7 +77,7 @@ static knot_request_t *make_query(knot_requestor_t *requestor, static const knot_dname_t *root = (uint8_t *)""; knot_pkt_put_question(pkt, root, KNOT_CLASS_IN, KNOT_RRTYPE_SOA); - knot_request_flag_t flags = TFO ? KNOT_REQUEST_TFO: KNOT_REQUEST_NONE; + knot_request_flag_t flags = KNOT_REQUEST_NONE; return knot_request_make_generic(requestor->mm, dst, src, pkt, NULL, NULL, NULL, NULL, NULL, flags); @@ -111,18 +109,6 @@ static void test_connected(knot_requestor_t *requestor, int main(int argc, char *argv[]) { -#if defined(__linux__) - FILE *fd = fopen("/proc/sys/net/ipv4/tcp_fastopen", "r"); - if (fd != NULL) { - int val = fgetc(fd); - fclose(fd); - // 0 - disabled, 1 - server TFO (client fallbacks), - // 2 - client TFO, 3 - both - if (val == '1' || val == '3') { - TFO = true; - } - } -#endif plan_lazy(); knot_mm_t mm; @@ -152,11 +138,6 @@ int main(int argc, char *argv[]) ret = listen(responder_fd, 10); ok(ret == 0, "check listen return"); - if (TFO) { - ret = net_bound_tfo(responder_fd, 10); - ok(ret == KNOT_EOK, "check bound TFO return"); - } - pthread_t thread; pthread_create(&thread, 0, responder_thread, &responder_fd); @@ -164,9 +145,9 @@ int main(int argc, char *argv[]) test_connected(&requestor, &server, &client); /* Terminate responder. */ - int conn = net_connected_socket(SOCK_STREAM, &server, NULL, false); + int conn = net_connected_socket(SOCK_STREAM, &server, NULL); assert(conn > 0); - conn = net_dns_tcp_send(conn, (uint8_t *)"", 1, TIMEOUT, NULL); + conn = net_dns_tcp_send(conn, (uint8_t *)"", 1, TIMEOUT); assert(conn > 0); pthread_join(thread, NULL); close(responder_fd); From e84658eca96d6d91a1a3d9d45d09e8a702b427bc Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 15 Dec 2025 15:45:36 +0100 Subject: [PATCH 299/675] kdig: remove TCP Fast Open support --- doc/man_kdig.rst | 5 +- src/utils/common/https.c | 5 +- src/utils/common/https.h | 4 +- src/utils/common/netio.c | 112 +++++---------------------- src/utils/common/netio.h | 9 --- src/utils/common/tls.c | 18 +---- src/utils/common/tls.h | 3 +- src/utils/kdig/kdig_exec.c | 6 +- src/utils/kdig/kdig_params.c | 23 ------ src/utils/kdig/kdig_params.h | 2 - src/utils/knsupdate/knsupdate_exec.c | 1 - 11 files changed, 30 insertions(+), 158 deletions(-) diff --git a/doc/man_kdig.rst b/doc/man_kdig.rst index 198bbe43bb..f21e2871c3 100644 --- a/doc/man_kdig.rst +++ b/doc/man_kdig.rst @@ -226,9 +226,6 @@ Options **+**\ [\ **no**\ ]\ **tcp** Use the TCP protocol (default is UDP for standard query and TCP for AXFR/IXFR). -**+**\ [\ **no**\ ]\ **fastopen** - Use TCP Fast Open. - **+**\ [\ **no**\ ]\ **ignore** Don't use TCP automatically if a truncated reply is received. @@ -401,7 +398,7 @@ Examples $ kdig @1.1.1.1 +https example.com. $ kdig @193.17.47.1 +https=/doh example.com. $ kdig @8.8.4.4 +https +https-get example.com. - $ kdig @8.8.8.8 +https +tls-hostname=dns.google +fastopen example.com. + $ kdig @8.8.8.8 +https +tls-hostname=dns.google example.com. 6. More queries share one DoT connection:: diff --git a/src/utils/common/https.c b/src/utils/common/https.c index 3a58203f3b..a68457dbad 100644 --- a/src/utils/common/https.c +++ b/src/utils/common/https.c @@ -309,15 +309,14 @@ static int sockaddr_to_authority(char *buf, const size_t buf_len, const struct s return KNOT_EOK; } -int https_ctx_connect(https_ctx_t *ctx, int sockfd, bool fastopen, - struct sockaddr_storage *addr) +int https_ctx_connect(https_ctx_t *ctx, int sockfd, struct sockaddr_storage *addr) { if (ctx == NULL || addr == NULL) { return KNOT_EINVAL; } // Create TLS connection - int ret = tls_ctx_connect(ctx->tls, sockfd, fastopen, addr); + int ret = tls_ctx_connect(ctx->tls, sockfd, addr); if (ret != KNOT_EOK) { return ret; } diff --git a/src/utils/common/https.h b/src/utils/common/https.h index 63cee9421d..d8281962ed 100644 --- a/src/utils/common/https.h +++ b/src/utils/common/https.h @@ -85,7 +85,6 @@ int https_ctx_init(https_ctx_t *ctx, tls_ctx_t *tls_ctx, const https_params_t *p * * \param ctx HTTPS context. * \param sockfd Socket descriptor. - * \param fastopen Use TCP Fast Open indication. * \param addr Socket address storage with address to server side. * * \retval KNOT_EOK When successfully connected. @@ -94,8 +93,7 @@ int https_ctx_init(https_ctx_t *ctx, tls_ctx_t *tls_ctx, const https_params_t *p * \retval KNOT_NET_ETIMEOUT When server respond takes too long. * \retval KNOT_NET_ECONNECT When unnable to connect to the server. */ -int https_ctx_connect(https_ctx_t *ctx, int sockfd, bool fastopen, - struct sockaddr_storage *addr); +int https_ctx_connect(https_ctx_t *ctx, int sockfd, struct sockaddr_storage *addr); /*! * \brief Send buffer as DNS message over HTTPS. diff --git a/src/utils/common/netio.c b/src/utils/common/netio.c index 94f1181868..ef7b08ff1d 100644 --- a/src/utils/common/netio.c +++ b/src/utils/common/netio.c @@ -10,7 +10,6 @@ #include #include #include // OpenBSD -#include // TCP_FASTOPEN #include #ifdef HAVE_SYS_UIO_H @@ -210,7 +209,6 @@ int net_init(const srv_info_t *local, const int iptype, const int socktype, const int wait, - const net_flags_t flags, const struct sockaddr *proxy_src, const struct sockaddr *proxy_dst, net_t *net) @@ -265,7 +263,6 @@ int net_init(const srv_info_t *local, net->wait = wait; net->local = local; net->remote = remote; - net->flags = flags; net->proxy.src = proxy_src; net->proxy.dst = proxy_dst; @@ -339,59 +336,6 @@ int net_init_crypto(net_t *net, return KNOT_EOK; } -/*! - * Connect with TCP Fast Open. - */ -static int fastopen_connect(int sockfd, const struct addrinfo *srv) -{ -#if defined( __FreeBSD__) - const int enable = 1; - return setsockopt(sockfd, IPPROTO_TCP, TCP_FASTOPEN, &enable, sizeof(enable)); -#elif defined(__APPLE__) - // connection is performed lazily when first data are sent - struct sa_endpoints ep = {0}; - ep.sae_dstaddr = srv->ai_addr; - ep.sae_dstaddrlen = srv->ai_addrlen; - int flags = CONNECT_DATA_IDEMPOTENT|CONNECT_RESUME_ON_READ_WRITE; - - return connectx(sockfd, &ep, SAE_ASSOCID_ANY, flags, NULL, 0, NULL, NULL); -#elif defined(__linux__) - // connect() will be called implicitly with sendto(), sendmsg() - return 0; -#else - errno = ENOTSUP; - return -1; -#endif -} - -/*! - * Sends data with TCP Fast Open. - */ -static int fastopen_send(int sockfd, const struct msghdr *msg, int timeout) -{ -#if defined(__FreeBSD__) || defined(__APPLE__) - return sendmsg(sockfd, msg, 0); -#elif defined(__linux__) - int ret = sendmsg(sockfd, msg, MSG_FASTOPEN); - if (ret == -1 && errno == EINPROGRESS) { - struct pollfd pfd = { - .fd = sockfd, - .events = POLLOUT, - .revents = 0, - }; - if (poll(&pfd, 1, 1000 * timeout) != 1) { - errno = ETIMEDOUT; - return -1; - } - ret = sendmsg(sockfd, msg, 0); - } - return ret; -#else - errno = ENOTSUP; - return -1; -#endif -} - static char *net_get_remote(const net_t *net) { if (net->tls.params->sni != NULL) { @@ -456,39 +400,32 @@ int net_connect(net_t *net) if (net->socktype == SOCK_STREAM) { int cs = 1, err; socklen_t err_len = sizeof(err); - bool fastopen = net->flags & NET_FLAGS_FASTOPEN; #ifdef TCP_NODELAY (void)setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &cs, sizeof(cs)); #endif // Establish a connection. - if (net->tls.params == NULL || !fastopen) { - if (fastopen) { - ret = fastopen_connect(sockfd, net->srv); - } else { - ret = connect(sockfd, net->srv->ai_addr, net->srv->ai_addrlen); - } - if (ret != 0 && errno != EINPROGRESS) { - WARN("can't connect to %s", net->remote_str); - net_close(net); - return KNOT_NET_ECONNECT; - } + ret = connect(sockfd, net->srv->ai_addr, net->srv->ai_addrlen); + if (ret != 0 && errno != EINPROGRESS) { + WARN("can't connect to %s", net->remote_str); + net_close(net); + return KNOT_NET_ECONNECT; + } - // Check for connection timeout. - if (!fastopen && poll(&pfd, 1, 1000 * net->wait) != 1) { - WARN("connection timeout for %s", net->remote_str); - net_close(net); - return KNOT_NET_ECONNECT; - } + // Check for connection timeout. + if (poll(&pfd, 1, 1000 * net->wait) != 1) { + WARN("connection timeout for %s", net->remote_str); + net_close(net); + return KNOT_NET_ECONNECT; + } - // Check if NB socket is writeable. - cs = getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &err, &err_len); - if (cs < 0 || err != 0) { - WARN("can't connect to %s", net->remote_str); - net_close(net); - return KNOT_NET_ECONNECT; - } + // Check if NB socket is writeable. + cs = getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &err, &err_len); + if (cs < 0 || err != 0) { + WARN("can't connect to %s", net->remote_str); + net_close(net); + return KNOT_NET_ECONNECT; } if (net->tls.params != NULL) { @@ -505,7 +442,7 @@ int net_connect(net_t *net) if (remote && net->https.authority == NULL) { net->https.authority = strdup(remote); } - ret = https_ctx_connect(&net->https, sockfd, fastopen, + ret = https_ctx_connect(&net->https, sockfd, (struct sockaddr_storage *)net->srv->ai_addr); } else #endif //LIBNGHTTP2 @@ -517,7 +454,7 @@ int net_connect(net_t *net) net_close(net); return ret; } - ret = tls_ctx_connect(&net->tls, sockfd, fastopen, + ret = tls_ctx_connect(&net->tls, sockfd, (struct sockaddr_storage *)net->srv->ai_addr); } if (ret != KNOT_EOK) { @@ -669,8 +606,6 @@ int net_send(const net_t *net, const uint8_t *buf, const size_t buf_len) } // Send data over TCP. } else { - bool fastopen = net->flags & NET_FLAGS_FASTOPEN; - char proxy_buf[PROXYV2_HEADER_MAXLEN]; uint16_t pktsize = htons(buf_len); // Leading packet length bytes. struct iovec iov[3] = { @@ -705,12 +640,7 @@ int net_send(const net_t *net, const uint8_t *buf, const size_t buf_len) ssize_t total = iov[0].iov_len + iov[1].iov_len + iov[2].iov_len; - int ret = 0; - if (fastopen) { - ret = fastopen_send(net->sockfd, &msg, net->wait); - } else { - ret = sendmsg(net->sockfd, &msg, 0); - } + int ret = sendmsg(net->sockfd, &msg, 0); if (ret != total) { WARN("can't send query to %s", net->remote_str); return KNOT_NET_ESEND; diff --git a/src/utils/common/netio.h b/src/utils/common/netio.h index 48f77692fd..627ffd0805 100644 --- a/src/utils/common/netio.h +++ b/src/utils/common/netio.h @@ -25,11 +25,6 @@ typedef struct { char *service; } srv_info_t; -typedef enum { - NET_FLAGS_NONE = 0, - NET_FLAGS_FASTOPEN = 1 << 0, -} net_flags_t; - typedef struct { /*! Socket descriptor. */ int sockfd; @@ -40,8 +35,6 @@ typedef struct { int socktype; /*! Timeout for all network operations. */ int wait; - /*! Connection flags. */ - net_flags_t flags; /*! Local interface parameters. */ const srv_info_t *local; @@ -148,7 +141,6 @@ void get_addr_str(const struct sockaddr_storage *ss, * \param iptype IP version. * \param socktype Socket type. * \param wait Network timeout interval. - * \param flags Connection flags. * \param proxy_src Proxy source address. * \param proxy_dst Proxy destination address. * \param net Network structure to initialize. @@ -161,7 +153,6 @@ int net_init(const srv_info_t *local, const int iptype, const int socktype, const int wait, - const net_flags_t flags, const struct sockaddr *proxy_src, const struct sockaddr *proxy_dst, net_t *net); diff --git a/src/utils/common/tls.c b/src/utils/common/tls.c index 972a820445..1c8fd2dda7 100644 --- a/src/utils/common/tls.c +++ b/src/utils/common/tls.c @@ -13,10 +13,6 @@ #include #include #include -#define GNUTLS_VERSION_FASTOPEN_READY 0x030503 -#if GNUTLS_VERSION_NUMBER >= GNUTLS_VERSION_FASTOPEN_READY -#include -#endif #include "utils/common/tls.h" #include "utils/common/msg.h" @@ -554,8 +550,7 @@ int tls_ctx_setup_remote_endpoint(tls_ctx_t *ctx, const gnutls_datum_t *alpn, return KNOT_EOK; } -int tls_ctx_connect(tls_ctx_t *ctx, int sockfd, bool fastopen, - struct sockaddr_storage *addr) +int tls_ctx_connect(tls_ctx_t *ctx, int sockfd, struct sockaddr_storage *addr) { if (ctx == NULL) { return KNOT_EINVAL; @@ -564,16 +559,7 @@ int tls_ctx_connect(tls_ctx_t *ctx, int sockfd, bool fastopen, int ret = 0; gnutls_session_set_ptr(ctx->session, ctx); - if (fastopen) { -#if GNUTLS_VERSION_NUMBER >= GNUTLS_VERSION_FASTOPEN_READY - gnutls_transport_set_fastopen(ctx->session, sockfd, (struct sockaddr *)addr, - sockaddr_len(addr), 0); -#else - return KNOT_ENOTSUP; -#endif - } else { - gnutls_transport_set_int(ctx->session, sockfd); - } + gnutls_transport_set_int(ctx->session, sockfd); gnutls_handshake_set_timeout(ctx->session, 1000 * ctx->wait); diff --git a/src/utils/common/tls.h b/src/utils/common/tls.h index 4d9f1ce317..45a381f1ee 100644 --- a/src/utils/common/tls.h +++ b/src/utils/common/tls.h @@ -62,8 +62,7 @@ int tls_ctx_init(tls_ctx_t *ctx, const tls_params_t *params, unsigned int flags, int wait); int tls_ctx_setup_remote_endpoint(tls_ctx_t *ctx, const gnutls_datum_t *alpn, size_t alpn_size, const char *priority, const char *remote); -int tls_ctx_connect(tls_ctx_t *ctx, int sockfd, - bool fastopen, struct sockaddr_storage *addr); +int tls_ctx_connect(tls_ctx_t *ctx, int sockfd, struct sockaddr_storage *addr); int tls_ctx_send(tls_ctx_t *ctx, const uint8_t *buf, const size_t buf_len); int tls_ctx_receive(tls_ctx_t *ctx, uint8_t *buf, const size_t buf_len); diff --git a/src/utils/kdig/kdig_exec.c b/src/utils/kdig/kdig_exec.c index ab14acbffd..d4090bfe79 100644 --- a/src/utils/kdig/kdig_exec.c +++ b/src/utils/kdig/kdig_exec.c @@ -854,7 +854,6 @@ static int process_query(const query_t *query, net_t *net) // Get connection parameters. int socktype = get_socktype(query->protocol, query->type_num); - int flags = query->fastopen ? NET_FLAGS_FASTOPEN : NET_FLAGS_NONE; // Loop over server list to process query. WALK_LIST(server, query->servers) { @@ -870,7 +869,7 @@ static int process_query(const query_t *query, net_t *net) for (size_t i = 0; i <= query->retries; i++) { // Initialize network structure for current server. ret = net_init(query->local, remote, iptype, socktype, - query->wait, flags, + query->wait, (struct sockaddr *)&query->proxy.src, (struct sockaddr *)&query->proxy.dst, net); @@ -1214,7 +1213,6 @@ static int process_xfr(const query_t *query, net_t *net) // Get connection parameters. int socktype = get_socktype(query->protocol, query->type_num); - int flags = query->fastopen ? NET_FLAGS_FASTOPEN : NET_FLAGS_NONE; // Use the first nameserver from the list. srv_info_t *remote = HEAD(query->servers); @@ -1226,7 +1224,7 @@ static int process_xfr(const query_t *query, net_t *net) get_sockname(socktype)); // Initialize network structure. - ret = net_init(query->local, remote, iptype, socktype, query->wait, flags, + ret = net_init(query->local, remote, iptype, socktype, query->wait, (struct sockaddr *)&query->proxy.src, (struct sockaddr *)&query->proxy.dst, net); diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index 004a490c4c..bdd99e8b4f 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -617,24 +617,6 @@ static int opt_notcp(const char *arg, void *query) return opt_ignore(arg, query); } -static int opt_fastopen(const char *arg, void *query) -{ - query_t *q = query; - - q->fastopen = true; - - return opt_tcp(arg, query); -} - -static int opt_nofastopen(const char *arg, void *query) -{ - query_t *q = query; - - q->fastopen = false; - - return KNOT_EOK; -} - static int opt_keepopen(const char *arg, void *query) { query_t *q = query; @@ -1619,9 +1601,6 @@ static const param_t kdig_opts2[] = { { "tcp", ARG_NONE, opt_tcp }, { "notcp", ARG_NONE, opt_notcp }, - { "fastopen", ARG_NONE, opt_fastopen }, - { "nofastopen", ARG_NONE, opt_nofastopen }, - { "ignore", ARG_NONE, opt_ignore }, { "noignore", ARG_NONE, opt_noignore }, @@ -1739,7 +1718,6 @@ query_t *query_create(const char *owner, const query_t *conf) query->operation = OPERATION_QUERY; query->ip = IP_ALL; query->protocol = PROTO_ALL; - query->fastopen = false; query->port = strdup(""); query->udp_size = -1; query->retries = DEFAULT_RETRIES_DIG; @@ -2416,7 +2394,6 @@ static void print_help(void) " +[no]ttl * Show TTL value.\n" " +[no]crypto * Show binary parts of RRSIGs and DNSKEYs.\n" " +[no]tcp Use TCP protocol.\n" - " +[no]fastopen Use TCP Fast Open.\n" " +[no]ignore Don't use TCP automatically if truncated.\n" " +[no]keepopen Don't close the TCP connection to be reused.\n" " +[no]tls Use TLS with Opportunistic privacy profile.\n" diff --git a/src/utils/kdig/kdig_params.h b/src/utils/kdig/kdig_params.h index 32d6a86cd0..869ae12e7d 100644 --- a/src/utils/kdig/kdig_params.h +++ b/src/utils/kdig/kdig_params.h @@ -69,8 +69,6 @@ struct query { ip_t ip; /*!< Protocol type (TCP, UDP) to use. */ protocol_t protocol; - /*!< Use TCP Fast Open. */ - bool fastopen; /*!< Keep TCP connection open. */ bool keepopen; /*!< Port/service to connect to. */ diff --git a/src/utils/knsupdate/knsupdate_exec.c b/src/utils/knsupdate/knsupdate_exec.c index 24b40f19d4..9e0360868d 100644 --- a/src/utils/knsupdate/knsupdate_exec.c +++ b/src/utils/knsupdate/knsupdate_exec.c @@ -434,7 +434,6 @@ static int pkt_sendrecv(knsupdate_params_t *params) get_iptype(params->ip, params->server), get_socktype(params->protocol, KNOT_RRTYPE_SOA), params->wait, - NET_FLAGS_NONE, NULL, NULL, &net); From 5d164cefa9b8dcf7e73e46b2fb65198222c5bdaa Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 18 Dec 2025 09:33:28 +0100 Subject: [PATCH 300/675] server: add statistics counter 'zone-update-error' --- src/knot/common/stats.c | 1 + src/knot/server/server.c | 1 + src/knot/server/server.h | 2 +- src/knot/updates/zone-update.c | 20 ++++++++++++-------- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/knot/common/stats.c b/src/knot/common/stats.c index 1bdfaef58b..66c9009bda 100644 --- a/src/knot/common/stats.c +++ b/src/knot/common/stats.c @@ -127,6 +127,7 @@ int stats_server(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx) } DUMP_VAL(params, "zone-count", knot_zonedb_size(ctx->server->zone_db)); + DUMP_VAL(params, "zone-update-error", ATOMIC_GET(ctx->server->stats.zone_update_error)); DUMP_VAL(params, "tcp-io-timeout", ATOMIC_GET(ctx->server->stats.tcp_io_timeout)); DUMP_VAL(params, "tcp-idle-timeout", ATOMIC_GET(ctx->server->stats.tcp_idle_timeout)); diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 2b54e996c6..f7086a1c78 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1537,6 +1537,7 @@ int server_reload(server_t *server, reload_t mode) ATOMIC_SET(server->stats.tcp_io_timeout, 0); ATOMIC_SET(server->stats.tcp_idle_timeout, 0); + ATOMIC_SET(server->stats.zone_update_error, 0); } conf_update_flag_t upd_flags = CONF_UPD_FNOFREE; diff --git a/src/knot/server/server.h b/src/knot/server/server.h index ee88184186..a663272130 100644 --- a/src/knot/server/server.h +++ b/src/knot/server/server.h @@ -90,7 +90,7 @@ typedef struct server { struct { knot_atomic_uint64_t tcp_io_timeout; knot_atomic_uint64_t tcp_idle_timeout; - + knot_atomic_uint64_t zone_update_error; } stats; knot_zonedb_t *zone_db; diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 900a6973ae..a3176b14e2 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1144,7 +1144,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) ret = commit_full(conf, update); } if (ret != KNOT_EOK) { - return ret; + goto error; } conf_val_t thr = conf_zone_get(conf, C_ADJUST_THR, update->zone->name); @@ -1155,7 +1155,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) } if (ret != KNOT_EOK) { discard_adds_tree(update); - return ret; + goto error; } /* Check the zone size. */ @@ -1164,7 +1164,8 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) if (update->new_cont->size > size_limit) { discard_adds_tree(update); - return KNOT_EZONESIZE; + ret = KNOT_EZONESIZE; + goto error; } val = conf_zone_get(conf, C_DNSSEC_VALIDATION, update->zone->name); @@ -1177,7 +1178,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) ret = knot_dnssec_validate_zone(update, &val_conf); if (ret != KNOT_EOK) { discard_adds_tree(update); - return ret; + goto error; } } @@ -1186,7 +1187,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) ret = zone_update_external(conf, update, &val); if (ret != KNOT_EOK) { discard_adds_tree(update); - return ret; + goto error; } } @@ -1194,21 +1195,21 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) if (ret != KNOT_EOK) { log_zone_error(update->zone->name, "failed to process catalog zone (%s)", knot_strerror(ret)); discard_adds_tree(update); - return ret; + goto error; } ret = commit_redis(conf, update); if (ret != KNOT_EOK) { log_zone_error(update->zone->name, "zone database update failed (%s)", knot_strerror(ret)); discard_adds_tree(update); - return ret; + goto error; } ret = commit_journal(conf, update); if (ret != KNOT_EOK) { log_zone_error(update->zone->name, "journal update failed (%s)", knot_strerror(ret)); discard_adds_tree(update); - return ret; + goto error; } if (dnssec) { @@ -1261,6 +1262,9 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) memset(update, 0, sizeof(*update)); return KNOT_EOK; +error: + ATOMIC_ADD(update->zone->server->stats.zone_update_error, 1); + return ret; } bool zone_update_no_change(zone_update_t *update) From 134221508117a445ca8ef1778c5b294e0030076f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 18 Dec 2025 15:34:15 +0100 Subject: [PATCH 301/675] dbus: emit zone_not_updated signal if zone-updated is enabled --- doc/reference.rst | 8 ++++++-- samples/dbus_client.pl | 6 ++++++ samples/dbus_client.py | 5 +++++ samples/dbus_client.sh | 3 +++ src/knot/common/dbus.c | 10 +++++++--- src/knot/common/dbus.h | 4 +++- src/knot/updates/zone-update.c | 6 +++++- 7 files changed, 35 insertions(+), 7 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index ab233f6bfe..24a81efc9e 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -635,8 +635,12 @@ Possible values: - ``started`` – Emitted when the server is started and all configured zones (including catalog zones and their members) are loaded or successfully bootstrapped. - ``stopped`` – Emitted when the server shutdown sequence is initiated. -- ``zone-updated`` – The signal ``zone_updated`` is emitted when a zone has been updated. - Parameters: **zone** name and zone SOA **serial**. +- ``zone-updated`` – Two signals may be emitted: + + - ``zone_updated`` – Emitted when a zone has been successfully updated. + Parameters: **zone** name and zone SOA **serial**. + - ``zone_not_updated`` – Emitted when a zone has not been successfully updated. + Parameters: **zone** name. - ``external-verify`` – The signal ``external_verify`` is emitted when a zone is awaiting external validation before applying changes. Parameters: **zone** name and new zone SOA **serial**. diff --git a/samples/dbus_client.pl b/samples/dbus_client.pl index 5548330a69..c8169a5137 100755 --- a/samples/dbus_client.pl +++ b/samples/dbus_client.pl @@ -42,6 +42,12 @@ print "Updated zone=$zone to serial=$serial\n"; }); +$knotd_interface->connect_to_signal('zone_not_updated', sub +{ + my ($zone) = @_; + print "Not updated zone=$zone\n"; +}); + $knotd_interface->connect_to_signal('external_verify', sub { my ($zone, $serial) = @_; diff --git a/samples/dbus_client.py b/samples/dbus_client.py index c30e9de34f..29b599c4cb 100755 --- a/samples/dbus_client.py +++ b/samples/dbus_client.py @@ -23,6 +23,10 @@ def sig_updated(sender, path, interface, signal, args): (zone, serial) = args print("Updated zone=%s to serial=%d" % (zone, serial)) +def sig_not_updated(sender, path, interface, signal, args): + (zone) = args + print("Not updated zone=%s" % (zone)) + def sig_external(sender, path, interface, signal, args): (zone, serial) = args print("Awaiting external validation for zone=%s serial=%u" % (zone, serial)) @@ -89,6 +93,7 @@ def connect_to_signal(_signal, _callback): connect_to_signal("started", sig_started) connect_to_signal("stopped", sig_stopped) connect_to_signal("zone_updated", sig_updated) + connect_to_signal("zone_not_updated", sig_not_updated) connect_to_signal("external_verify", sig_external) connect_to_signal("keys_updated", sig_keys_upd) connect_to_signal("zone_ksk_submission", sig_submission) diff --git a/samples/dbus_client.sh b/samples/dbus_client.sh index 1b78afeacd..62c0bde0fc 100755 --- a/samples/dbus_client.sh +++ b/samples/dbus_client.sh @@ -16,6 +16,9 @@ cb() { zone_updated) echo "Updated zone=${2} to serial=${3}" ;; + zone_not_updated) + echo "Not updated zone=${2}" + ;; external_verify) echo "Awaiting external validation for zone=${2} serial=${3}" ;; diff --git a/src/knot/common/dbus.c b/src/knot/common/dbus.c index 58f856812a..6e830cfea6 100644 --- a/src/knot/common/dbus.c +++ b/src/knot/common/dbus.c @@ -180,14 +180,18 @@ void dbus_emit_running(bool up) #endif // ENABLE_DBUS } -void dbus_emit_zone_updated(const knot_dname_t *zone_name, uint32_t serial) +void dbus_emit_zone_updated(const knot_dname_t *zone_name, bool success, uint32_t serial) { #if ENABLE_DBUS knot_dname_txt_storage_t buff; char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff)); if (zone_str != NULL) { - emit_event(KNOT_BUS_EVENT_ZONE_UPD, "su", VALUE_OF(zone_str), - VALUE_OF(serial)); + if (success) { + emit_event(KNOT_BUS_EVENT_ZONE_UPD, "su", VALUE_OF(zone_str), + VALUE_OF(serial)); + } else { + emit_event(KNOT_BUS_EVENT_ZONE_NOT_UPD, "s", VALUE_OF(zone_str)); + } } #endif // ENABLE_DBUS } diff --git a/src/knot/common/dbus.h b/src/knot/common/dbus.h index abc2f2fa01..62c9e916bc 100644 --- a/src/knot/common/dbus.h +++ b/src/knot/common/dbus.h @@ -17,6 +17,7 @@ #define KNOT_BUS_EVENT_STARTED "started" #define KNOT_BUS_EVENT_STOPPED "stopped" #define KNOT_BUS_EVENT_ZONE_UPD "zone_updated" +#define KNOT_BUS_EVENT_ZONE_NOT_UPD "zone_not_updated" #define KNOT_BUS_EVENT_EXTERNAL "external_verify" #define KNOT_BUS_EVENT_ZONE_KEYS_UPD "keys_updated" #define KNOT_BUS_EVENT_ZONE_KSK_SUBM "zone_ksk_submission" @@ -46,9 +47,10 @@ void dbus_emit_running(bool up); * \brief Emit event signal for updated zones. * * \param zone_name Zone name. + * \param success Successful update indication (if false, serial isn't used). * \param serial Current zone SOA serial. */ -void dbus_emit_zone_updated(const knot_dname_t *zone_name, uint32_t serial); +void dbus_emit_zone_updated(const knot_dname_t *zone_name, bool success, uint32_t serial); /*! * \brief Emit event signal that external verify shall take place. diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index a3176b14e2..1e2b8ab2dc 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1255,7 +1255,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) } if (conf->cache.srv_dbus_event & DBUS_EVENT_ZONE_UPDATED) { - dbus_emit_zone_updated(update->zone->name, + dbus_emit_zone_updated(update->zone->name, true, zone_contents_serial(update->zone->contents)); } @@ -1264,6 +1264,10 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) return KNOT_EOK; error: ATOMIC_ADD(update->zone->server->stats.zone_update_error, 1); + if (conf->cache.srv_dbus_event & DBUS_EVENT_ZONE_UPDATED) { + dbus_emit_zone_updated(update->zone->name, false, 0); + } + return ret; } From a5ac5273cc80a8a329e530d548964120ab803c4d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 23 Dec 2025 11:48:14 +0100 Subject: [PATCH 302/675] libngtcp2: update embedded library to v1.19.0 --- .../libngtcp2/ngtcp2/lib/ngtcp2_acktr.c | 16 +- .../libngtcp2/ngtcp2/lib/ngtcp2_acktr.h | 15 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c | 27 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h | 5 + .../libngtcp2/ngtcp2/lib/ngtcp2_conn.c | 259 +++++++++--------- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.h | 13 - .../libngtcp2/ngtcp2/lib/ngtcp2_conv.c | 30 +- .../libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c | 28 +- .../libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h | 34 +-- .../libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c | 20 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c | 15 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h | 13 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c | 6 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c | 11 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h | 38 ++- .../libngtcp2/ngtcp2/lib/ngtcp2_qlog.c | 21 +- .../libngtcp2/ngtcp2/lib/ngtcp2_range.c | 18 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c | 24 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c | 7 +- .../libngtcp2/ngtcp2/lib/ngtcp2_strm.c | 24 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c | 9 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h | 10 + src/contrib/libngtcp2/ngtcp2/version.h | 4 +- 23 files changed, 354 insertions(+), 293 deletions(-) diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c index 0781f082e7..4a9ac5cf0a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c @@ -337,16 +337,14 @@ void ngtcp2_acktr_immediate_ack(ngtcp2_acktr *acktr) { acktr->flags |= NGTCP2_ACKTR_FLAG_IMMEDIATE_ACK; } -ngtcp2_frame *ngtcp2_acktr_create_ack_frame(ngtcp2_acktr *acktr, - ngtcp2_frame *fr, uint8_t type, - ngtcp2_tstamp ts, - ngtcp2_duration ack_delay, - uint64_t ack_delay_exponent) { +int ngtcp2_acktr_create_ack_frame(ngtcp2_acktr *acktr, ngtcp2_ack *ack, + uint8_t type, ngtcp2_tstamp ts, + ngtcp2_duration ack_delay, + uint64_t ack_delay_exponent) { int64_t last_pkt_num; ngtcp2_ack_range *range; ngtcp2_ksl_it it; ngtcp2_acktr_entry *rpkt; - ngtcp2_ack *ack = &fr->ack; ngtcp2_tstamp largest_ack_ts; size_t num_acks; @@ -355,13 +353,13 @@ ngtcp2_frame *ngtcp2_acktr_create_ack_frame(ngtcp2_acktr *acktr, } if (!ngtcp2_acktr_require_active_ack(acktr, ack_delay, ts)) { - return NULL; + return -1; } it = ngtcp2_acktr_get(acktr); if (ngtcp2_ksl_it_end(&it)) { ngtcp2_acktr_commit_ack(acktr); - return NULL; + return -1; } num_acks = ngtcp2_ksl_len(&acktr->ents); @@ -424,7 +422,7 @@ ngtcp2_frame *ngtcp2_acktr_create_ack_frame(ngtcp2_acktr *acktr, last_pkt_num = rpkt->pkt_num - (int64_t)(rpkt->len - 1); } - return fr; + return 0; } void ngtcp2_acktr_increase_ecn_counts(ngtcp2_acktr *acktr, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h index cf75a774db..6505a17594 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h @@ -235,19 +235,18 @@ void ngtcp2_acktr_immediate_ack(ngtcp2_acktr *acktr); /* * ngtcp2_acktr_create_ack_frame creates ACK frame in the object - * pointed by |fr|, and returns |fr| if there are any received packets - * to acknowledge. If there are no packets to acknowledge, this - * function returns NULL. fr->ack.ranges must be able to contain at + * pointed by |ack|, and returns 0 if it successfully creates ACK + * frame in |ack|. If there are no packets to acknowledge, this + * function returns -1. |ack|->ranges must be able to contain at * least NGTCP2_MAX_ACK_RANGES elements. * * Call ngtcp2_acktr_commit_ack after a created ACK frame is * successfully serialized into a packet. */ -ngtcp2_frame *ngtcp2_acktr_create_ack_frame(ngtcp2_acktr *acktr, - ngtcp2_frame *fr, uint8_t type, - ngtcp2_tstamp ts, - ngtcp2_duration ack_delay, - uint64_t ack_delay_exponent); +int ngtcp2_acktr_create_ack_frame(ngtcp2_acktr *acktr, ngtcp2_ack *ack, + uint8_t type, ngtcp2_tstamp ts, + ngtcp2_duration ack_delay, + uint64_t ack_delay_exponent); /* * ngtcp2_acktr_increase_ecn_counts increases ECN counts from |pi|. diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c index babf35bfdb..02865e2a2f 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c @@ -335,6 +335,10 @@ static void bbr_on_init(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, bbr->max_inflight = 0; bbr->bdp = 0; + + bbr->undo_bw_shortterm = 0; + bbr->undo_inflight_shortterm = 0; + bbr->undo_inflight_longterm = 0; } static void bbr_reset_congestion_signals(ngtcp2_cc_bbr *bbr) { @@ -1297,6 +1301,7 @@ static void bbr_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts) { ngtcp2_cc_bbr *bbr = ngtcp2_struct_of(cc, ngtcp2_cc_bbr, cc); + (void)ack; if (bbr->in_loss_recovery || in_congestion_recovery(cstat, sent_ts)) { return; @@ -1306,9 +1311,9 @@ static void bbr_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, bbr->round_count_at_recovery = bbr->round_start ? bbr->round_count : bbr->round_count + 1; bbr_save_cwnd(bbr, cstat); - cstat->cwnd = - cstat->bytes_in_flight + - ngtcp2_max_uint64(ack->bytes_delivered, cstat->max_tx_udp_payload_size); + bbr->undo_bw_shortterm = bbr->bw_shortterm; + bbr->undo_inflight_shortterm = bbr->inflight_shortterm; + bbr->undo_inflight_longterm = bbr->inflight_longterm; cstat->congestion_recovery_start_ts = ts; } @@ -1321,11 +1326,17 @@ static void bbr_cc_on_spurious_congestion(ngtcp2_cc *cc, cstat->congestion_recovery_start_ts = UINT64_MAX; - if (bbr->in_loss_recovery) { - bbr->in_loss_recovery = 0; - bbr->round_count_at_recovery = UINT64_MAX; - bbr_restore_cwnd(bbr, cstat); - } + bbr->in_loss_recovery = 0; + bbr->round_count_at_recovery = UINT64_MAX; + bbr_reset_full_bw(bbr); + bbr->loss_in_round = 0; + bbr_restore_cwnd(bbr, cstat); + bbr->bw_shortterm = + ngtcp2_max_uint64(bbr->bw_shortterm, bbr->undo_bw_shortterm); + bbr->inflight_shortterm = + ngtcp2_max_uint64(bbr->inflight_shortterm, bbr->undo_inflight_shortterm); + bbr->inflight_longterm = + ngtcp2_max_uint64(bbr->inflight_longterm, bbr->undo_inflight_longterm); } static void bbr_cc_on_persistent_congestion(ngtcp2_cc *cc, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h index f0d529639c..5a74921c19 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h @@ -106,6 +106,11 @@ typedef struct ngtcp2_cc_bbr { ngtcp2_bbr_state state; uint64_t cwnd_gain_h; + /* Backup for spurious losses */ + uint64_t undo_bw_shortterm; + uint64_t undo_inflight_shortterm; + uint64_t undo_inflight_longterm; + int loss_round_start; uint64_t loss_round_delivered; uint64_t rounds_since_bw_probe; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c index 827cacd535..fdf9516c3e 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c @@ -2216,15 +2216,15 @@ static int conn_cut_crypto_frame(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, } /* ngtcp2_frame_chain for the removed data */ - removed_frc->fr.stream = (ngtcp2_stream){ - .type = NGTCP2_FRAME_CRYPTO, - .offset = (*pfrc)->fr.stream.offset + offset, - .datacnt = 1, - .data[0] = - { - .base = data->base + offset, - .len = removed_data->len, - }, + removed_frc->fr.stream.type = NGTCP2_FRAME_CRYPTO; + removed_frc->fr.stream.flags = 0; + removed_frc->fr.stream.fin = 0; + removed_frc->fr.stream.stream_id = 0; + removed_frc->fr.stream.offset = (*pfrc)->fr.stream.offset + offset; + removed_frc->fr.stream.datacnt = 1; + removed_frc->fr.stream.data[0] = (ngtcp2_vec){ + .base = data->base + offset, + .len = removed_data->len, }; rv = ngtcp2_strm_streamfrq_push(crypto_strm, removed_frc); @@ -2274,15 +2274,15 @@ static int conn_cut_crypto_frame(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, return rv; } - left_frc->fr.stream = (ngtcp2_stream){ - .type = NGTCP2_FRAME_CRYPTO, - .offset = (*pfrc)->fr.stream.offset, - .datacnt = 1, - .data[0] = - { - .base = data[0].base, - .len = offset, - }, + left_frc->fr.stream.type = NGTCP2_FRAME_CRYPTO; + left_frc->fr.stream.flags = 0; + left_frc->fr.stream.fin = 0; + left_frc->fr.stream.stream_id = 0; + left_frc->fr.stream.offset = (*pfrc)->fr.stream.offset; + left_frc->fr.stream.datacnt = 1; + left_frc->fr.stream.data[0] = (ngtcp2_vec){ + .base = data[0].base, + .len = offset, }; left_frc->next = right_frc; @@ -2442,8 +2442,8 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, ngtcp2_pkt_hd hd; ngtcp2_frame_chain *frq = NULL, **pfrc = &frq; ngtcp2_frame_chain *nfrc; - ngtcp2_max_frame mfr; - ngtcp2_frame *ackfr = NULL, lfr; + ngtcp2_ack_range ack_ranges[NGTCP2_MAX_ACK_RANGES]; + ngtcp2_frame lfr; ngtcp2_ssize spktlen; ngtcp2_crypto_cc cc; ngtcp2_rtb_entry *rtbent; @@ -2518,16 +2518,16 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, return 0; } - ackfr = ngtcp2_acktr_create_ack_frame(&pktns->acktr, &mfr.fr, type, ts, - /* ack_delay = */ 0, - NGTCP2_DEFAULT_ACK_DELAY_EXPONENT); - if (ackfr) { - rv = conn_ppe_write_frame_hd_log(conn, &ppe, &hd_logged, &hd, ackfr); + lfr.ack.ranges = ack_ranges; + if (ngtcp2_acktr_create_ack_frame(&pktns->acktr, &lfr.ack, type, ts, + /* ack_delay = */ 0, + NGTCP2_DEFAULT_ACK_DELAY_EXPONENT) == 0) { + rv = conn_ppe_write_frame_hd_log(conn, &ppe, &hd_logged, &hd, &lfr); if (rv != 0) { assert(NGTCP2_ERR_NOBUF == rv); } else { ngtcp2_acktr_commit_ack(&pktns->acktr); - ngtcp2_acktr_add_ack(&pktns->acktr, hd.pkt_num, ackfr->ack.largest_ack); + ngtcp2_acktr_add_ack(&pktns->acktr, hd.pkt_num, lfr.ack.largest_ack); pkt_empty = 0; } } @@ -2585,7 +2585,7 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, .type = NGTCP2_FRAME_CRYPTO, .offset = offsets[i], .datacnt = 1, - .data[0] = data[i], + .data = &data[i], }; } @@ -2662,7 +2662,7 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, if (!(rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) && pktns->rtb.probe_pkt_left) { - lfr.type = NGTCP2_FRAME_PING; + lfr.ping.type = NGTCP2_FRAME_PING; rv = conn_ppe_write_frame_hd_log(conn, &ppe, &hd_logged, &hd, &lfr); if (rv != 0) { @@ -2678,7 +2678,7 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, if (!(rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING)) { if (ngtcp2_tstamp_elapsed(pktns->tx.non_ack_pkt_start_ts, conn->cstat.smoothed_rtt, ts)) { - lfr.type = NGTCP2_FRAME_PING; + lfr.ping.type = NGTCP2_FRAME_PING; rv = conn_ppe_write_frame_hd_log(conn, &ppe, &hd_logged, &hd, &lfr); if (rv != 0) { @@ -2707,12 +2707,12 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, conn, type, ngtcp2_ppe_left(&ppe), write_datalen, (rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) != 0, require_padding)) { - lfr.type = NGTCP2_FRAME_PADDING; + lfr.padding.type = NGTCP2_FRAME_PADDING; lfr.padding.len = conn_dgram_padding(conn, &ppe); } else if (pkt_empty) { return 0; } else { - lfr.type = NGTCP2_FRAME_PADDING; + lfr.padding.type = NGTCP2_FRAME_PADDING; lfr.padding.len = ngtcp2_ppe_padding_size(&ppe, conn_min_pktlen(conn)); min_padded = 1; } @@ -2801,12 +2801,12 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, static ngtcp2_ssize conn_write_ack_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, size_t destlen, uint8_t type, ngtcp2_tstamp ts) { - ngtcp2_frame *ackfr; ngtcp2_pktns *pktns; ngtcp2_duration ack_delay; uint64_t ack_delay_exponent; ngtcp2_ssize spktlen; - ngtcp2_max_frame mfr; + ngtcp2_ack_range ack_ranges[NGTCP2_MAX_ACK_RANGES]; + ngtcp2_frame fr; assert(!(conn->flags & NGTCP2_CONN_FLAG_PPE_PENDING)); @@ -2835,15 +2835,15 @@ static ngtcp2_ssize conn_write_ack_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, return 0; } - ackfr = ngtcp2_acktr_create_ack_frame(&pktns->acktr, &mfr.fr, type, ts, - ack_delay, ack_delay_exponent); - if (!ackfr) { + fr.ack.ranges = ack_ranges; + if (ngtcp2_acktr_create_ack_frame(&pktns->acktr, &fr.ack, type, ts, ack_delay, + ack_delay_exponent) != 0) { return 0; } spktlen = ngtcp2_conn_write_single_frame_pkt( conn, pi, dest, destlen, type, NGTCP2_WRITE_PKT_FLAG_NONE, - &conn->dcid.current.cid, ackfr, NGTCP2_RTB_ENTRY_FLAG_NONE, NULL, ts); + &conn->dcid.current.cid, &fr, NGTCP2_RTB_ENTRY_FLAG_NONE, NULL, ts); if (spktlen <= 0) { return spktlen; @@ -3279,7 +3279,7 @@ static int conn_enqueue_new_connection_id(ngtcp2_conn *conn) { return rv; } - nfrc->fr.type = NGTCP2_FRAME_NEW_CONNECTION_ID; + nfrc->fr.new_connection_id.type = NGTCP2_FRAME_NEW_CONNECTION_ID; nfrc->fr.new_connection_id.seq = seq; nfrc->fr.new_connection_id.retire_prior_to = 0; nfrc->fr.new_connection_id.cid = cid; @@ -3453,8 +3453,8 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, ngtcp2_crypto_cc *cc = &conn->pkt.cc; ngtcp2_ppe *ppe = &conn->pkt.ppe; ngtcp2_pkt_hd *hd = &conn->pkt.hd; - ngtcp2_max_frame mfr; - ngtcp2_frame *ackfr = NULL, lfr; + ngtcp2_ack_range ack_ranges[NGTCP2_MAX_ACK_RANGES]; + ngtcp2_frame lfr; ngtcp2_ssize nwrite; ngtcp2_frame_chain **pfrc, *nfrc, *frc; ngtcp2_rtb_entry *ent; @@ -3633,7 +3633,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, /* PATH_RESPONSE is bound to the path that the corresponding PATH_CHALLENGE is received. */ if (ngtcp2_path_eq(&conn->dcid.current.ps.path, &pcent->ps.path)) { - lfr.type = NGTCP2_FRAME_PATH_RESPONSE; + lfr.path_response.type = NGTCP2_FRAME_PATH_RESPONSE; memcpy(lfr.path_response.data, pcent->data, sizeof(lfr.path_response.data)); @@ -3654,7 +3654,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, An endpoint that receives a PATH_CHALLENGE on an active path SHOULD send a non-probing packet in response. */ - lfr.type = NGTCP2_FRAME_PING; + lfr.ping.type = NGTCP2_FRAME_PING; rv = conn_ppe_write_frame_hd_log(conn, ppe, &hd_logged, hd, &lfr); if (rv != 0) { assert(NGTCP2_ERR_NOBUF == rv); @@ -3663,20 +3663,19 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, } } - ackfr = ngtcp2_acktr_create_ack_frame( - &pktns->acktr, &mfr.fr, type, ts, conn_compute_ack_delay(conn), - conn->local.transport_params.ack_delay_exponent); - if (ackfr) { - rv = conn_ppe_write_frame_hd_log(conn, ppe, &hd_logged, hd, ackfr); + lfr.ack.ranges = ack_ranges; + if (ngtcp2_acktr_create_ack_frame( + &pktns->acktr, &lfr.ack, type, ts, conn_compute_ack_delay(conn), + conn->local.transport_params.ack_delay_exponent) == 0) { + rv = conn_ppe_write_frame_hd_log(conn, ppe, &hd_logged, hd, &lfr); if (rv != 0) { assert(NGTCP2_ERR_NOBUF == rv); } else { ngtcp2_acktr_commit_ack(&pktns->acktr); - ngtcp2_acktr_add_ack(&pktns->acktr, hd->pkt_num, - ackfr->ack.largest_ack); + ngtcp2_acktr_add_ack(&pktns->acktr, hd->pkt_num, lfr.ack.largest_ack); assert(NGTCP2_PKT_1RTT == type); - conn_handle_unconfirmed_key_update_from_remote( - conn, ackfr->ack.largest_ack, ts); + conn_handle_unconfirmed_key_update_from_remote(conn, + lfr.ack.largest_ack, ts); pkt_empty = 0; } } @@ -3691,7 +3690,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, continue; } - switch ((*pfrc)->fr.type) { + switch ((*pfrc)->fr.hd.type) { case NGTCP2_FRAME_RESET_STREAM: strm = ngtcp2_conn_find_stream(conn, (*pfrc)->fr.reset_stream.stream_id); @@ -4183,6 +4182,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, nfrc->fr.stream.type = NGTCP2_FRAME_STREAM; nfrc->fr.stream.flags = 0; + nfrc->fr.stream.fin = 0; nfrc->fr.stream.stream_id = vmsg->stream.strm->stream_id; nfrc->fr.stream.offset = vmsg->stream.strm->tx.offset; nfrc->fr.stream.datacnt = datacnt; @@ -4412,7 +4412,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, if (ngtcp2_tstamp_elapsed(pktns->tx.non_ack_pkt_start_ts, cstat->smoothed_rtt, ts) || keep_alive_expired || conn->pktns.rtb.probe_pkt_left) { - lfr.type = NGTCP2_FRAME_PING; + lfr.ping.type = NGTCP2_FRAME_PING; rv = conn_ppe_write_frame_hd_log(conn, ppe, &hd_logged, hd, &lfr); if (rv != 0) { @@ -4452,7 +4452,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, (rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING)) { padded = 1; } - lfr.type = NGTCP2_FRAME_PADDING; + lfr.padding.type = NGTCP2_FRAME_PADDING; ngtcp2_log_tx_fr(&conn->log, hd, &lfr); ngtcp2_qlog_write_frame(&conn->qlog, &lfr); } @@ -4621,13 +4621,13 @@ ngtcp2_ssize ngtcp2_conn_write_single_frame_pkt( return 0; } - lfr.type = NGTCP2_FRAME_PADDING; + lfr.padding.type = NGTCP2_FRAME_PADDING; if (flags & NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING_FULL) { lfr.padding.len = ngtcp2_ppe_dgram_padding_size(&ppe, destlen); } else if (flags & NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING) { lfr.padding.len = conn_dgram_padding(conn, &ppe); } else { - switch (fr->type) { + switch (fr->hd.type) { case NGTCP2_FRAME_PATH_CHALLENGE: case NGTCP2_FRAME_PATH_RESPONSE: if (!conn->server || destlen >= NGTCP2_MAX_UDP_PAYLOAD_SIZE) { @@ -4658,7 +4658,7 @@ ngtcp2_ssize ngtcp2_conn_write_single_frame_pkt( ngtcp2_qlog_pkt_sent_end(&conn->qlog, &hd, (size_t)nwrite); /* Do this when we are sure that there is no error. */ - switch (fr->type) { + switch (fr->hd.type) { case NGTCP2_FRAME_ACK: case NGTCP2_FRAME_ACK_ECN: ngtcp2_acktr_commit_ack(&pktns->acktr); @@ -4726,7 +4726,7 @@ ngtcp2_ssize ngtcp2_conn_write_single_frame_pkt( } if (!padded) { - switch (fr->type) { + switch (fr->hd.type) { case NGTCP2_FRAME_ACK: case NGTCP2_FRAME_ACK_ECN: break; @@ -4951,7 +4951,7 @@ static ngtcp2_ssize conn_write_pmtud_probe(ngtcp2_conn *conn, ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, "sending PMTUD probe packet len=%zu", probelen); - lfr.type = NGTCP2_FRAME_PING; + lfr.ping.type = NGTCP2_FRAME_PING; nwrite = ngtcp2_conn_write_single_frame_pkt( conn, pi, dest, probelen, NGTCP2_PKT_1RTT, @@ -5154,7 +5154,7 @@ static ngtcp2_ssize conn_write_path_challenge(ngtcp2_conn *conn, return rv; } - lfr.type = NGTCP2_FRAME_PATH_CHALLENGE; + lfr.path_challenge.type = NGTCP2_FRAME_PATH_CHALLENGE; initial_pto = conn_compute_initial_pto(conn, &conn->pktns); timeout = conn_compute_pto(conn, &conn->pktns); @@ -5287,7 +5287,7 @@ static ngtcp2_ssize conn_write_path_response(ngtcp2_conn *conn, } } - lfr.type = NGTCP2_FRAME_PATH_RESPONSE; + lfr.path_response.type = NGTCP2_FRAME_PATH_RESPONSE; memcpy(lfr.path_response.data, pcent->data, sizeof(lfr.path_response.data)); nwrite = ngtcp2_conn_write_single_frame_pkt( @@ -6400,8 +6400,8 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, ngtcp2_tstamp ts) { ngtcp2_ssize nread; ngtcp2_pkt_hd hd; - ngtcp2_max_frame mfr; - ngtcp2_frame *fr = &mfr.fr; + ngtcp2_frame_decoder frd; + ngtcp2_frame fr; int rv; int require_ack = 0; size_t hdpktlen; @@ -6847,7 +6847,7 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, ngtcp2_qlog_pkt_received_start(&conn->qlog); for (; payloadlen;) { - nread = ngtcp2_pkt_decode_frame(fr, payload, payloadlen); + nread = ngtcp2_frame_decoder_decode(&frd, &fr, payload, payloadlen); if (nread < 0) { return nread; } @@ -6855,14 +6855,14 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, payload += nread; payloadlen -= (size_t)nread; - switch (fr->type) { + switch (fr.hd.type) { case NGTCP2_FRAME_ACK: case NGTCP2_FRAME_ACK_ECN: - fr->ack.ack_delay = 0; - fr->ack.ack_delay_unscaled = 0; + fr.ack.ack_delay = 0; + fr.ack.ack_delay_unscaled = 0; rv = - ngtcp2_pkt_validate_ack(&fr->ack, conn->local.settings.initial_pkt_num); + ngtcp2_pkt_validate_ack(&fr.ack, conn->local.settings.initial_pkt_num); if (rv != 0) { return rv; } @@ -6870,9 +6870,9 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, break; } - ngtcp2_log_rx_fr(&conn->log, &hd, fr); + ngtcp2_log_rx_fr(&conn->log, &hd, &fr); - switch (fr->type) { + switch (fr.hd.type) { case NGTCP2_FRAME_ACK: case NGTCP2_FRAME_ACK_ECN: if (num_ack_processed >= NGTCP2_MAX_ACK_PER_PKT) { @@ -6881,7 +6881,7 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, if (!conn->server && hd.type == NGTCP2_PKT_HANDSHAKE) { conn->flags |= NGTCP2_CONN_FLAG_SERVER_ADDR_VERIFIED; } - rv = conn_recv_ack(conn, pktns, &fr->ack, pkt_ts, ts); + rv = conn_recv_ack(conn, pktns, &fr.ack, pkt_ts, ts); if (rv != 0) { return rv; } @@ -6891,7 +6891,7 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, break; case NGTCP2_FRAME_CRYPTO: if (!conn->server && !conn->negotiated_version && - ngtcp2_vec_len(fr->stream.data, fr->stream.datacnt)) { + ngtcp2_vec_len(fr.stream.data, fr.stream.datacnt)) { conn->negotiated_version = hd.version; ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, @@ -6899,14 +6899,14 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, conn->negotiated_version); } - rv = conn_recv_crypto(conn, encryption_level, crypto, &fr->stream, ts); + rv = conn_recv_crypto(conn, encryption_level, crypto, &fr.stream, ts); if (rv != 0) { return rv; } require_ack = 1; break; case NGTCP2_FRAME_CONNECTION_CLOSE: - rv = conn_recv_connection_close(conn, &fr->connection_close); + rv = conn_recv_connection_close(conn, &fr.connection_close); if (rv != 0) { return rv; } @@ -6919,7 +6919,7 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, return NGTCP2_ERR_PROTO; } - ngtcp2_qlog_write_frame(&conn->qlog, fr); + ngtcp2_qlog_write_frame(&conn->qlog, &fr); } if (hd.type == NGTCP2_PKT_HANDSHAKE) { @@ -9010,8 +9010,8 @@ conn_recv_delayed_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_pkt_info *pi, const uint8_t *payload, size_t payloadlen, ngtcp2_tstamp pkt_ts, ngtcp2_tstamp ts) { ngtcp2_ssize nread; - ngtcp2_max_frame mfr; - ngtcp2_frame *fr = &mfr.fr; + ngtcp2_frame_decoder frd; + ngtcp2_frame fr; int rv; int require_ack = 0; ngtcp2_pktns *pktns; @@ -9029,7 +9029,7 @@ conn_recv_delayed_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_pkt_info *pi, ngtcp2_qlog_pkt_received_start(&conn->qlog); for (; payloadlen;) { - nread = ngtcp2_pkt_decode_frame(fr, payload, payloadlen); + nread = ngtcp2_frame_decoder_decode(&frd, &fr, payload, payloadlen); if (nread < 0) { return (int)nread; } @@ -9037,14 +9037,14 @@ conn_recv_delayed_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_pkt_info *pi, payload += nread; payloadlen -= (size_t)nread; - switch (fr->type) { + switch (fr.hd.type) { case NGTCP2_FRAME_ACK: case NGTCP2_FRAME_ACK_ECN: - fr->ack.ack_delay = 0; - fr->ack.ack_delay_unscaled = 0; + fr.ack.ack_delay = 0; + fr.ack.ack_delay_unscaled = 0; rv = - ngtcp2_pkt_validate_ack(&fr->ack, conn->local.settings.initial_pkt_num); + ngtcp2_pkt_validate_ack(&fr.ack, conn->local.settings.initial_pkt_num); if (rv != 0) { return rv; } @@ -9052,9 +9052,9 @@ conn_recv_delayed_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_pkt_info *pi, break; } - ngtcp2_log_rx_fr(&conn->log, hd, fr); + ngtcp2_log_rx_fr(&conn->log, hd, &fr); - switch (fr->type) { + switch (fr.hd.type) { case NGTCP2_FRAME_ACK: case NGTCP2_FRAME_ACK_ECN: if (num_ack_processed >= NGTCP2_MAX_ACK_PER_PKT) { @@ -9063,7 +9063,7 @@ conn_recv_delayed_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_pkt_info *pi, if (!conn->server) { conn->flags |= NGTCP2_CONN_FLAG_SERVER_ADDR_VERIFIED; } - rv = conn_recv_ack(conn, pktns, &fr->ack, pkt_ts, ts); + rv = conn_recv_ack(conn, pktns, &fr.ack, pkt_ts, ts); if (rv != 0) { return rv; } @@ -9072,7 +9072,7 @@ conn_recv_delayed_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_pkt_info *pi, case NGTCP2_FRAME_PADDING: break; case NGTCP2_FRAME_CONNECTION_CLOSE: - rv = conn_recv_connection_close(conn, &fr->connection_close); + rv = conn_recv_connection_close(conn, &fr.connection_close); if (rv != 0) { return rv; } @@ -9087,7 +9087,7 @@ conn_recv_delayed_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_pkt_info *pi, return NGTCP2_ERR_PROTO; } - ngtcp2_qlog_write_frame(&conn->qlog, fr); + ngtcp2_qlog_write_frame(&conn->qlog, &fr); } ngtcp2_qlog_pkt_received_end(&conn->qlog, hd, pktlen); @@ -9155,8 +9155,8 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, const uint8_t *payload; size_t payloadlen; ngtcp2_ssize nread, nwrite; - ngtcp2_max_frame mfr; - ngtcp2_frame *fr = &mfr.fr; + ngtcp2_frame_decoder frd; + ngtcp2_frame fr; int require_ack = 0; ngtcp2_crypto_aead *aead; ngtcp2_crypto_cipher *hp; @@ -9462,7 +9462,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, ngtcp2_qlog_pkt_received_start(&conn->qlog); for (; payloadlen;) { - nread = ngtcp2_pkt_decode_frame(fr, payload, payloadlen); + nread = ngtcp2_frame_decoder_decode(&frd, &fr, payload, payloadlen); if (nread < 0) { return nread; } @@ -9470,7 +9470,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, payload += nread; payloadlen -= (size_t)nread; - switch (fr->type) { + switch (fr.hd.type) { case NGTCP2_FRAME_ACK: case NGTCP2_FRAME_ACK_ECN: if ((hd.flags & NGTCP2_PKT_FLAG_LONG_FORM) && @@ -9479,10 +9479,10 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, } assert(conn->remote.transport_params); assign_recved_ack_delay_unscaled( - &fr->ack, conn->remote.transport_params->ack_delay_exponent); + &fr.ack, conn->remote.transport_params->ack_delay_exponent); rv = - ngtcp2_pkt_validate_ack(&fr->ack, conn->local.settings.initial_pkt_num); + ngtcp2_pkt_validate_ack(&fr.ack, conn->local.settings.initial_pkt_num); if (rv != 0) { return rv; } @@ -9490,10 +9490,10 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, break; } - ngtcp2_log_rx_fr(&conn->log, &hd, fr); + ngtcp2_log_rx_fr(&conn->log, &hd, &fr); if (hd.type == NGTCP2_PKT_0RTT) { - switch (fr->type) { + switch (fr.hd.type) { case NGTCP2_FRAME_PADDING: case NGTCP2_FRAME_PING: case NGTCP2_FRAME_RESET_STREAM: @@ -9519,7 +9519,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, } } - switch (fr->type) { + switch (fr.hd.type) { case NGTCP2_FRAME_ACK: case NGTCP2_FRAME_ACK_ECN: case NGTCP2_FRAME_PADDING: @@ -9530,7 +9530,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, require_ack = 1; } - switch (fr->type) { + switch (fr.hd.type) { case NGTCP2_FRAME_ACK: case NGTCP2_FRAME_ACK_ECN: if (num_ack_processed >= NGTCP2_MAX_ACK_PER_PKT) { @@ -9539,7 +9539,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, if (!conn->server) { conn->flags |= NGTCP2_CONN_FLAG_SERVER_ADDR_VERIFIED; } - rv = conn_recv_ack(conn, pktns, &fr->ack, pkt_ts, ts); + rv = conn_recv_ack(conn, pktns, &fr.ack, pkt_ts, ts); if (rv != 0) { return rv; } @@ -9547,7 +9547,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, ++num_ack_processed; break; case NGTCP2_FRAME_STREAM: - rv = conn_recv_stream(conn, &fr->stream, ts); + rv = conn_recv_stream(conn, &fr.stream, ts); if (rv != 0) { return rv; } @@ -9555,40 +9555,40 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, break; case NGTCP2_FRAME_CRYPTO: rv = conn_recv_crypto(conn, NGTCP2_ENCRYPTION_LEVEL_1RTT, - &pktns->crypto.strm, &fr->stream, ts); + &pktns->crypto.strm, &fr.stream, ts); if (rv != 0) { return rv; } non_probing_pkt = 1; break; case NGTCP2_FRAME_RESET_STREAM: - rv = conn_recv_reset_stream(conn, &fr->reset_stream, ts); + rv = conn_recv_reset_stream(conn, &fr.reset_stream, ts); if (rv != 0) { return rv; } non_probing_pkt = 1; break; case NGTCP2_FRAME_STOP_SENDING: - rv = conn_recv_stop_sending(conn, &fr->stop_sending, ts); + rv = conn_recv_stop_sending(conn, &fr.stop_sending, ts); if (rv != 0) { return rv; } non_probing_pkt = 1; break; case NGTCP2_FRAME_MAX_STREAM_DATA: - rv = conn_recv_max_stream_data(conn, &fr->max_stream_data, ts); + rv = conn_recv_max_stream_data(conn, &fr.max_stream_data, ts); if (rv != 0) { return rv; } non_probing_pkt = 1; break; case NGTCP2_FRAME_MAX_DATA: - conn_recv_max_data(conn, &fr->max_data); + conn_recv_max_data(conn, &fr.max_data); non_probing_pkt = 1; break; case NGTCP2_FRAME_MAX_STREAMS_BIDI: case NGTCP2_FRAME_MAX_STREAMS_UNI: - rv = conn_recv_max_streams(conn, &fr->max_streams); + rv = conn_recv_max_streams(conn, &fr.max_streams); if (rv != 0) { return rv; } @@ -9596,7 +9596,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, break; case NGTCP2_FRAME_CONNECTION_CLOSE: case NGTCP2_FRAME_CONNECTION_CLOSE_APP: - rv = conn_recv_connection_close(conn, &fr->connection_close); + rv = conn_recv_connection_close(conn, &fr.connection_close); if (rv != 0) { return rv; } @@ -9606,32 +9606,32 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, non_probing_pkt = 1; break; case NGTCP2_FRAME_PATH_CHALLENGE: - conn_recv_path_challenge(conn, path, &fr->path_challenge); + conn_recv_path_challenge(conn, path, &fr.path_challenge); path_challenge_recved = 1; break; case NGTCP2_FRAME_PATH_RESPONSE: - rv = conn_recv_path_response(conn, &hd, &fr->path_response, ts); + rv = conn_recv_path_response(conn, &hd, &fr.path_response, ts); if (rv != 0) { return rv; } break; case NGTCP2_FRAME_NEW_CONNECTION_ID: - rv = conn_recv_new_connection_id(conn, &fr->new_connection_id); + rv = conn_recv_new_connection_id(conn, &fr.new_connection_id); if (rv != 0) { return rv; } recv_ncid = 1; break; case NGTCP2_FRAME_RETIRE_CONNECTION_ID: - rv = conn_recv_retire_connection_id(conn, &hd, &fr->retire_connection_id, - ts); + rv = + conn_recv_retire_connection_id(conn, &hd, &fr.retire_connection_id, ts); if (rv != 0) { return rv; } non_probing_pkt = 1; break; case NGTCP2_FRAME_NEW_TOKEN: - rv = conn_recv_new_token(conn, &fr->new_token); + rv = conn_recv_new_token(conn, &fr.new_token); if (rv != 0) { return rv; } @@ -9645,28 +9645,28 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, non_probing_pkt = 1; break; case NGTCP2_FRAME_STREAMS_BLOCKED_BIDI: - rv = conn_recv_streams_blocked_bidi(conn, &fr->streams_blocked); + rv = conn_recv_streams_blocked_bidi(conn, &fr.streams_blocked); if (rv != 0) { return rv; } non_probing_pkt = 1; break; case NGTCP2_FRAME_STREAMS_BLOCKED_UNI: - rv = conn_recv_streams_blocked_uni(conn, &fr->streams_blocked); + rv = conn_recv_streams_blocked_uni(conn, &fr.streams_blocked); if (rv != 0) { return rv; } non_probing_pkt = 1; break; case NGTCP2_FRAME_STREAM_DATA_BLOCKED: - rv = conn_recv_stream_data_blocked(conn, &fr->stream_data_blocked); + rv = conn_recv_stream_data_blocked(conn, &fr.stream_data_blocked); if (rv != 0) { return rv; } non_probing_pkt = 1; break; case NGTCP2_FRAME_DATA_BLOCKED: - rv = conn_recv_data_blocked(conn, &fr->data_blocked); + rv = conn_recv_data_blocked(conn, &fr.data_blocked); if (rv != 0) { return rv; } @@ -9678,7 +9678,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, conn->local.transport_params.max_datagram_frame_size) { return NGTCP2_ERR_PROTO; } - rv = conn_recv_datagram(conn, &fr->datagram); + rv = conn_recv_datagram(conn, &fr.datagram); if (rv != 0) { return rv; } @@ -9686,7 +9686,7 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, break; } - ngtcp2_qlog_write_frame(&conn->qlog, fr); + ngtcp2_qlog_write_frame(&conn->qlog, &fr); } ngtcp2_qlog_pkt_received_end(&conn->qlog, &hd, pktlen); @@ -10018,7 +10018,7 @@ static int conn_enqueue_handshake_done(ngtcp2_conn *conn) { return rv; } - nfrc->fr.type = NGTCP2_FRAME_HANDSHAKE_DONE; + nfrc->fr.handshake_done.type = NGTCP2_FRAME_HANDSHAKE_DONE; nfrc->next = pktns->tx.frq; pktns->tx.frq = nfrc; @@ -13388,20 +13388,21 @@ int ngtcp2_conn_submit_crypto_data(ngtcp2_conn *conn, return rv; } - rv = ngtcp2_frame_chain_objalloc_new(&frc, &conn->frc_objalloc); + rv = ngtcp2_frame_chain_stream_datacnt_objalloc_new( + &frc, 1, &conn->frc_objalloc, conn->mem); if (rv != 0) { return rv; } - frc->fr.stream = (ngtcp2_stream){ - .type = NGTCP2_FRAME_CRYPTO, - .offset = pktns->crypto.tx.offset, - .datacnt = 1, - .data[0] = - { - .base = (uint8_t *)data, - .len = datalen, - }, + frc->fr.stream.type = NGTCP2_FRAME_CRYPTO; + frc->fr.stream.flags = 0; + frc->fr.stream.fin = 0; + frc->fr.stream.stream_id = 0; + frc->fr.stream.offset = pktns->crypto.tx.offset; + frc->fr.stream.datacnt = 1; + frc->fr.stream.data[0] = (ngtcp2_vec){ + .base = (uint8_t *)data, + .len = datalen, }; rv = ngtcp2_strm_streamfrq_push(&pktns->crypto.strm, frc); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h index 8cda85edbf..6c11e32417 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h @@ -112,19 +112,6 @@ typedef enum { packet as much as possible if the packet is not empty. */ #define NGTCP2_WRITE_PKT_FLAG_PADDING_IF_NOT_EMPTY 0x08u -/* - * ngtcp2_max_frame is defined so that it covers the largest ACK - * frame. - */ -typedef union ngtcp2_max_frame { - ngtcp2_frame fr; - struct { - ngtcp2_ack ack; - /* ack includes 1 ngtcp2_ack_range. */ - ngtcp2_ack_range ranges[NGTCP2_MAX_ACK_RANGES - 1]; - } ackfr; -} ngtcp2_max_frame; - typedef struct ngtcp2_path_challenge_entry { ngtcp2_path_storage ps; uint8_t data[8]; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c index 6528011cc0..7b2e02e5b1 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c @@ -63,33 +63,33 @@ const uint8_t *ngtcp2_get_uint16(uint16_t *dest, const uint8_t *p) { } static const uint8_t *get_uvarint(uint64_t *dest, const uint8_t *p) { - union { - uint8_t n8; - uint16_t n16; - uint32_t n32; - uint64_t n64; - } n; + uint16_t n16; + uint32_t n32; + uint64_t n64; switch (*p >> 6) { case 0: *dest = *p++; return p; case 1: - memcpy(&n, p, 2); - n.n8 &= 0x3f; - *dest = ngtcp2_ntohs(n.n16); + memcpy(&n16, p, 2); + n16 = ngtcp2_ntohs(n16); + n16 &= 0x3fff; + *dest = n16; return p + 2; case 2: - memcpy(&n, p, 4); - n.n8 &= 0x3f; - *dest = ngtcp2_ntohl(n.n32); + memcpy(&n32, p, 4); + n32 = ngtcp2_ntohl(n32); + n32 &= 0x3fffffff; + *dest = n32; return p + 4; case 3: - memcpy(&n, p, 8); - n.n8 &= 0x3f; - *dest = ngtcp2_ntohl64(n.n64); + memcpy(&n64, p, 8); + n64 = ngtcp2_ntohl64(n64); + n64 &= 0x3fffffffffffffff; + *dest = n64; return p + 8; default: diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c index 0f6b06a788..dc17d576b8 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c @@ -57,14 +57,26 @@ int ngtcp2_frame_chain_stream_datacnt_objalloc_new(ngtcp2_frame_chain **pfrc, size_t datacnt, ngtcp2_objalloc *objalloc, const ngtcp2_mem *mem) { + int rv; + if (datacnt > NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES) { - return ngtcp2_frame_chain_extralen_new(pfrc, - sizeof(ngtcp2_vec) * (datacnt - 1) - - NGTCP2_FRAME_CHAIN_STREAM_AVAIL, - mem); + rv = ngtcp2_frame_chain_extralen_new( + pfrc, + sizeof(ngtcp2_vec) * (datacnt - NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES), + mem); + } else { + rv = ngtcp2_frame_chain_objalloc_new(pfrc, objalloc); } - return ngtcp2_frame_chain_objalloc_new(pfrc, objalloc); + if (rv != 0) { + return rv; + } + + (*pfrc)->fr.stream.data = + (ngtcp2_vec *)(void *)((uint8_t *)*pfrc + + offsetof(ngtcp2_frame_chain, buf)); + + return 0; } int ngtcp2_frame_chain_new_token_objalloc_new(ngtcp2_frame_chain **pfrc, @@ -87,9 +99,9 @@ int ngtcp2_frame_chain_new_token_objalloc_new(ngtcp2_frame_chain **pfrc, } fr = &(*pfrc)->fr; - fr->type = NGTCP2_FRAME_NEW_TOKEN; + fr->new_token.type = NGTCP2_FRAME_NEW_TOKEN; - p = (uint8_t *)fr + sizeof(ngtcp2_new_token); + p = (uint8_t *)*pfrc + offsetof(ngtcp2_frame_chain, buf); memcpy(p, token, tokenlen); fr->new_token.token = p; @@ -122,7 +134,7 @@ void ngtcp2_frame_chain_objalloc_del(ngtcp2_frame_chain *frc, return; } - switch (frc->fr.type) { + switch (frc->fr.hd.type) { case NGTCP2_FRAME_CRYPTO: case NGTCP2_FRAME_STREAM: if (frc->fr.stream.datacnt > NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h index 01f07cfa4d..aa8ce49583 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h @@ -57,6 +57,19 @@ typedef struct ngtcp2_frame_chain_binder { int ngtcp2_frame_chain_binder_new(ngtcp2_frame_chain_binder **pbinder, const ngtcp2_mem *mem); +/* NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES is the number of datacnt + that changes allocation method. If datacnt is more than this + value, ngtcp2_frame_chain is allocated without ngtcp2_objalloc. + Otherwise, it is allocated using ngtcp2_objalloc. */ +#define NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES 4 + +/* NGTCP2_FRAME_CHAIN_NEW_TOKEN_THRES is the length of a token that + changes allocation method. If the length is more than this value, + ngtcp2_frame_chain is allocated without ngtcp2_objalloc. + Otherwise, it is allocated using ngtcp2_objalloc. */ +#define NGTCP2_FRAME_CHAIN_NEW_TOKEN_THRES \ + (NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES * sizeof(ngtcp2_vec)) + typedef struct ngtcp2_frame_chain ngtcp2_frame_chain; /* @@ -68,6 +81,7 @@ struct ngtcp2_frame_chain { ngtcp2_frame_chain *next; ngtcp2_frame_chain_binder *binder; ngtcp2_frame fr; + uint8_t buf[sizeof(ngtcp2_vec) * NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES]; }; ngtcp2_opl_entry oplent; @@ -104,26 +118,6 @@ int ngtcp2_frame_chain_objalloc_new(ngtcp2_frame_chain **pfrc, int ngtcp2_frame_chain_extralen_new(ngtcp2_frame_chain **pfrc, size_t extralen, const ngtcp2_mem *mem); -/* NGTCP2_FRAME_CHAIN_STREAM_AVAIL is the number of additional bytes - available after ngtcp2_stream when it is embedded in - ngtcp2_frame. */ -#define NGTCP2_FRAME_CHAIN_STREAM_AVAIL \ - (sizeof(ngtcp2_frame) - sizeof(ngtcp2_stream)) - -/* NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES is the number of datacnt - that changes allocation method. If datacnt is more than this - value, ngtcp2_frame_chain is allocated without ngtcp2_objalloc. - Otherwise, it is allocated using ngtcp2_objalloc. */ -#define NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES \ - (NGTCP2_FRAME_CHAIN_STREAM_AVAIL / sizeof(ngtcp2_vec) + 1) - -/* NGTCP2_FRAME_CHAIN_NEW_TOKEN_THRES is the length of a token that - changes allocation method. If the length is more than this value, - ngtcp2_frame_chain is allocated without ngtcp2_objalloc. - Otherwise, it is allocated using ngtcp2_objalloc. */ -#define NGTCP2_FRAME_CHAIN_NEW_TOKEN_THRES \ - (sizeof(ngtcp2_frame) - sizeof(ngtcp2_new_token)) - /* * ngtcp2_frame_chain_stream_datacnt_objalloc_new allocates enough * data to store additional |datacnt| - 1 ngtcp2_vec object after diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c index d04b9634c2..267bd07225 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c @@ -35,11 +35,11 @@ void ngtcp2_gaptr_init(ngtcp2_gaptr *gaptr, const ngtcp2_mem *mem) { } static int gaptr_gap_init(ngtcp2_gaptr *gaptr) { - ngtcp2_range range = { - .end = UINT64_MAX, - }; - - return ngtcp2_ksl_insert(&gaptr->gap, NULL, &range, NULL); + return ngtcp2_ksl_insert(&gaptr->gap, NULL, + &(ngtcp2_range){ + .end = UINT64_MAX, + }, + NULL); } void ngtcp2_gaptr_free(ngtcp2_gaptr *gaptr) { @@ -116,10 +116,6 @@ uint64_t ngtcp2_gaptr_first_gap_offset(const ngtcp2_gaptr *gaptr) { ngtcp2_range ngtcp2_gaptr_get_first_gap_after(const ngtcp2_gaptr *gaptr, uint64_t offset) { - ngtcp2_range q = { - .begin = offset, - .end = offset + 1, - }; ngtcp2_ksl_it it; if (ngtcp2_ksl_len(&gaptr->gap) == 0) { @@ -129,7 +125,11 @@ ngtcp2_range ngtcp2_gaptr_get_first_gap_after(const ngtcp2_gaptr *gaptr, return r; } - it = ngtcp2_ksl_lower_bound_search(&gaptr->gap, &q, + it = ngtcp2_ksl_lower_bound_search(&gaptr->gap, + &(ngtcp2_range){ + .begin = offset, + .end = offset + 1, + }, ngtcp2_ksl_range_exclusive_search); assert(!ngtcp2_ksl_it_end(&it)); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c index 25e803efbb..03a95b9319 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c @@ -38,8 +38,7 @@ static ngtcp2_ksl_blk null_blk; ngtcp2_objalloc_def(ksl_blk, ngtcp2_ksl_blk, oplent) static size_t ksl_blklen(size_t aligned_keylen) { - return sizeof(ngtcp2_ksl_blk) + NGTCP2_KSL_MAX_NBLK * aligned_keylen - - sizeof(uint64_t); + return sizeof(ngtcp2_ksl_blk) + NGTCP2_KSL_MAX_NBLK * aligned_keylen; } /* @@ -73,8 +72,16 @@ void ngtcp2_ksl_init(ngtcp2_ksl *ksl, ngtcp2_ksl_compar compar, } static ngtcp2_ksl_blk *ksl_blk_objalloc_new(ngtcp2_ksl *ksl) { - return ngtcp2_objalloc_ksl_blk_len_get(&ksl->blkalloc, - ksl_blklen(ksl->aligned_keylen)); + ngtcp2_ksl_blk *blk = ngtcp2_objalloc_ksl_blk_len_get( + &ksl->blkalloc, ksl_blklen(ksl->aligned_keylen)); + + if (!blk) { + return NULL; + } + + blk->keys = (uint8_t *)blk + sizeof(*blk); + + return blk; } static void ksl_blk_objalloc_del(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h index 32f754c459..d35c83deab 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h @@ -80,14 +80,11 @@ struct ngtcp2_ksl_blk { /* leaf is nonzero if this block contains leaf nodes. */ uint32_t leaf; ngtcp2_ksl_node nodes[NGTCP2_KSL_MAX_NBLK]; - union { - uint64_t align; - /* keys is a buffer to include NGTCP2_KSL_MAX_NBLK keys. - Because the length of key is unknown until ngtcp2_ksl_init - is called, the actual buffer will be allocated after this - field. */ - uint8_t keys[1]; - }; + /* keys is a pointer to the buffer to include + NGTCP2_KSL_MAX_NBLK keys. Because the length of key is + unknown until ngtcp2_ksl_init is called, the actual buffer + will be allocated after this field. */ + uint8_t *keys; }; ngtcp2_opl_entry oplent; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c index d11e24455a..2015e401ef 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c @@ -127,6 +127,10 @@ static const char *strerrorcode(uint64_t error_code) { return "CRYPTO_BUFFER_EXCEEDED"; case NGTCP2_KEY_UPDATE_ERROR: return "KEY_UPDATE_ERROR"; + case NGTCP2_AEAD_LIMIT_REACHED: + return "AEAD_LIMIT_REACHED"; + case NGTCP2_NO_VIABLE_PATH: + return "NO_VIABLE_PATH"; case NGTCP2_VERSION_NEGOTIATION_ERROR: return "VERSION_NEGOTIATION_ERROR"; default: @@ -443,7 +447,7 @@ static void log_fr_datagram(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, static void log_fr(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_frame *fr, const char *dir) { - switch (fr->type) { + switch (fr->hd.type) { case NGTCP2_FRAME_STREAM: log_fr_stream(log, hd, &fr->stream, dir); break; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c index db9ecf8313..9c0e2636bc 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c @@ -482,8 +482,10 @@ ngtcp2_ssize ngtcp2_pkt_encode_hd_short(uint8_t *out, size_t outlen, return (ngtcp2_ssize)len; } -ngtcp2_ssize ngtcp2_pkt_decode_frame(ngtcp2_frame *dest, const uint8_t *payload, - size_t payloadlen) { +ngtcp2_ssize ngtcp2_frame_decoder_decode(ngtcp2_frame_decoder *frd, + ngtcp2_frame *dest, + const uint8_t *payload, + size_t payloadlen) { uint8_t type; if (payloadlen == 0) { @@ -532,6 +534,7 @@ ngtcp2_ssize ngtcp2_pkt_decode_frame(ngtcp2_frame *dest, const uint8_t *payload, payloadlen); case NGTCP2_FRAME_ACK: case NGTCP2_FRAME_ACK_ECN: + dest->ack.ranges = frd->buf.ack_ranges; return ngtcp2_pkt_decode_ack_frame(&dest->ack, payload, payloadlen); case NGTCP2_FRAME_PATH_CHALLENGE: return ngtcp2_pkt_decode_path_challenge_frame(&dest->path_challenge, @@ -540,6 +543,7 @@ ngtcp2_ssize ngtcp2_pkt_decode_frame(ngtcp2_frame *dest, const uint8_t *payload, return ngtcp2_pkt_decode_path_response_frame(&dest->path_response, payload, payloadlen); case NGTCP2_FRAME_CRYPTO: + dest->stream.data = &frd->buf.stream_data; return ngtcp2_pkt_decode_crypto_frame(&dest->stream, payload, payloadlen); case NGTCP2_FRAME_NEW_TOKEN: return ngtcp2_pkt_decode_new_token_frame(&dest->new_token, payload, @@ -556,6 +560,7 @@ ngtcp2_ssize ngtcp2_pkt_decode_frame(ngtcp2_frame *dest, const uint8_t *payload, payloadlen); default: if ((type & ~(NGTCP2_FRAME_STREAM - 1)) == NGTCP2_FRAME_STREAM) { + dest->stream.data = &frd->buf.stream_data; return ngtcp2_pkt_decode_stream_frame(&dest->stream, payload, payloadlen); } @@ -1504,7 +1509,7 @@ ngtcp2_ssize ngtcp2_pkt_decode_datagram_frame(ngtcp2_datagram *dest, ngtcp2_ssize ngtcp2_pkt_encode_frame(uint8_t *out, size_t outlen, ngtcp2_frame *fr) { - switch (fr->type) { + switch (fr->hd.type) { case NGTCP2_FRAME_STREAM: return ngtcp2_pkt_encode_stream_frame(out, outlen, &fr->stream); case NGTCP2_FRAME_ACK: diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h index b3cdb1d64a..78fcd6dcc2 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h @@ -180,6 +180,10 @@ typedef struct ngtcp2_pkt_retry { #define NGTCP2_FRAME_DATAGRAM 0x30 #define NGTCP2_FRAME_DATAGRAM_LEN 0x31 +typedef struct ngtcp2_frame_hd { + uint64_t type; +} ngtcp2_frame_hd; + /* ngtcp2_stream represents STREAM and CRYPTO frames. */ typedef struct ngtcp2_stream { uint64_t type; @@ -200,8 +204,9 @@ typedef struct ngtcp2_stream { the length of data is 1 in this definition, the library may allocate extra bytes to hold more elements. */ size_t datacnt; - /* data is the array of ngtcp2_vec which references data. */ - ngtcp2_vec data[1]; + /* data points to ngtcp2_vec array which references data. If + datacnt == 0, this field may be NULL. */ + ngtcp2_vec *data; } ngtcp2_stream; typedef struct ngtcp2_ack_range { @@ -225,7 +230,7 @@ typedef struct ngtcp2_ack { } ecn; uint64_t first_ack_range; size_t rangecnt; - ngtcp2_ack_range ranges[1]; + ngtcp2_ack_range *ranges; } ngtcp2_ack; typedef struct ngtcp2_padding { @@ -345,7 +350,7 @@ typedef struct ngtcp2_datagram { } ngtcp2_datagram; typedef union ngtcp2_frame { - uint64_t type; + ngtcp2_frame_hd hd; ngtcp2_stream stream; ngtcp2_ack ack; ngtcp2_padding padding; @@ -366,11 +371,6 @@ typedef union ngtcp2_frame { ngtcp2_retire_connection_id retire_connection_id; ngtcp2_handshake_done handshake_done; ngtcp2_datagram datagram; - /* Extend ngtcp2_frame so that ngtcp2_stream has at least additional - 3 ngtcp2_vec, totaling 4 slots, which can store HEADERS header, - HEADERS payload, DATA header, and DATA payload in the standard - sized ngtcp2_frame_chain. */ - uint8_t pad[sizeof(ngtcp2_stream) + sizeof(ngtcp2_vec) * 3]; } ngtcp2_frame; typedef struct ngtcp2_pkt_chain ngtcp2_pkt_chain; @@ -450,10 +450,22 @@ ngtcp2_ssize ngtcp2_pkt_encode_hd_long(uint8_t *out, size_t outlen, ngtcp2_ssize ngtcp2_pkt_encode_hd_short(uint8_t *out, size_t outlen, const ngtcp2_pkt_hd *hd); +/* + * ngtcp2_frame_decoder is QUIC frame decoder. For frames that + * require the external buffers (e.g., ngtcp2_stream and ngtcp2_ack), + * it provides those buffers on demand. + */ +typedef struct ngtcp2_frame_decoder { + union { + ngtcp2_vec stream_data; + ngtcp2_ack_range ack_ranges[NGTCP2_MAX_ACK_RANGES]; + } buf; +} ngtcp2_frame_decoder; + /** * @function * - * `ngtcp2_pkt_decode_frame` decodes a QUIC frame from the buffer + * `ngtcp2_frame_decoder_decode` decodes a QUIC frame from the buffer * pointed by |payload| whose length is |payloadlen|. * * This function returns the number of bytes read to decode a single @@ -463,8 +475,10 @@ ngtcp2_ssize ngtcp2_pkt_encode_hd_short(uint8_t *out, size_t outlen, * Frame is badly formatted; or frame type is unknown; or * |payloadlen| is 0. */ -ngtcp2_ssize ngtcp2_pkt_decode_frame(ngtcp2_frame *dest, const uint8_t *payload, - size_t payloadlen); +ngtcp2_ssize ngtcp2_frame_decoder_decode(ngtcp2_frame_decoder *frd, + ngtcp2_frame *dest, + const uint8_t *payload, + size_t payloadlen); /** * @function diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c index b8a94b7c95..f0c67acdd5 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c @@ -209,16 +209,17 @@ void ngtcp2_qlog_end(ngtcp2_qlog *qlog) { qlog->write(qlog->user_data, NGTCP2_QLOG_WRITE_FLAG_FIN, "", 0); } -static ngtcp2_vec vec_pkt_type_initial = ngtcp2_make_vec_lit("initial"); -static ngtcp2_vec vec_pkt_type_handshake = ngtcp2_make_vec_lit("handshake"); -static ngtcp2_vec vec_pkt_type_0rtt = ngtcp2_make_vec_lit("0RTT"); -static ngtcp2_vec vec_pkt_type_1rtt = ngtcp2_make_vec_lit("1RTT"); -static ngtcp2_vec vec_pkt_type_retry = ngtcp2_make_vec_lit("retry"); -static ngtcp2_vec vec_pkt_type_version_negotiation = +static const ngtcp2_vec vec_pkt_type_initial = ngtcp2_make_vec_lit("initial"); +static const ngtcp2_vec vec_pkt_type_handshake = + ngtcp2_make_vec_lit("handshake"); +static const ngtcp2_vec vec_pkt_type_0rtt = ngtcp2_make_vec_lit("0RTT"); +static const ngtcp2_vec vec_pkt_type_1rtt = ngtcp2_make_vec_lit("1RTT"); +static const ngtcp2_vec vec_pkt_type_retry = ngtcp2_make_vec_lit("retry"); +static const ngtcp2_vec vec_pkt_type_version_negotiation = ngtcp2_make_vec_lit("version_negotiation"); -static ngtcp2_vec vec_pkt_type_stateless_reset = +static const ngtcp2_vec vec_pkt_type_stateless_reset = ngtcp2_make_vec_lit("stateless_reset"); -static ngtcp2_vec vec_pkt_type_unknown = ngtcp2_make_vec_lit("unknown"); +static const ngtcp2_vec vec_pkt_type_unknown = ngtcp2_make_vec_lit("unknown"); static const ngtcp2_vec *qlog_pkt_type(const ngtcp2_pkt_hd *hd) { if (hd->flags & NGTCP2_PKT_FLAG_LONG_FORM) { @@ -727,7 +728,7 @@ void ngtcp2_qlog_write_frame(ngtcp2_qlog *qlog, const ngtcp2_frame *fr) { return; } - switch (fr->type) { + switch (fr->hd.type) { case NGTCP2_FRAME_PADDING: if (ngtcp2_buf_left(&qlog->buf) < NGTCP2_QLOG_PADDING_FRAME_OVERHEAD + 1) { return; @@ -744,7 +745,7 @@ void ngtcp2_qlog_write_frame(ngtcp2_qlog *qlog, const ngtcp2_frame *fr) { case NGTCP2_FRAME_ACK_ECN: if (ngtcp2_buf_left(&qlog->buf) < NGTCP2_QLOG_ACK_FRAME_BASE_OVERHEAD + - (size_t)(fr->type == NGTCP2_FRAME_ACK_ECN + (size_t)(fr->ack.type == NGTCP2_FRAME_ACK_ECN ? NGTCP2_QLOG_ACK_FRAME_ECN_OVERHEAD : 0) + NGTCP2_QLOG_ACK_FRAME_RANGE_OVERHEAD * (1 + fr->ack.rangecnt) + 1) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c index 15f393b85d..a949a65733 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c @@ -26,8 +26,10 @@ #include "ngtcp2_macro.h" void ngtcp2_range_init(ngtcp2_range *r, uint64_t begin, uint64_t end) { - r->begin = begin; - r->end = end; + *r = (ngtcp2_range){ + .begin = begin, + .end = end, + }; } ngtcp2_range ngtcp2_range_intersect(const ngtcp2_range *a, @@ -54,10 +56,14 @@ int ngtcp2_range_eq(const ngtcp2_range *a, const ngtcp2_range *b) { void ngtcp2_range_cut(ngtcp2_range *left, ngtcp2_range *right, const ngtcp2_range *a, const ngtcp2_range *b) { /* Assume that b is included in a */ - left->begin = a->begin; - left->end = b->begin; - right->begin = b->end; - right->end = a->end; + *left = (ngtcp2_range){ + .begin = a->begin, + .end = b->begin, + }; + *right = (ngtcp2_range){ + .begin = b->end, + .end = a->end, + }; } int ngtcp2_range_not_after(const ngtcp2_range *a, const ngtcp2_range *b) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c index ae68d93e95..88ec585e69 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c @@ -233,7 +233,7 @@ static ngtcp2_ssize rtb_reclaim_frame(ngtcp2_rtb *rtb, uint8_t flags, continue; } - switch (frc->fr.type) { + switch (frc->fr.hd.type) { case NGTCP2_FRAME_STREAM: strm = ngtcp2_conn_find_stream(conn, fr->stream.stream_id); if (strm == NULL || (strm->flags & NGTCP2_STRM_FLAG_RESET_STREAM)) { @@ -271,7 +271,12 @@ static ngtcp2_ssize rtb_reclaim_frame(ngtcp2_rtb *rtb, uint8_t flags, return rv; } - nfrc->fr = *fr; + nfrc->fr.stream.type = fr->stream.type; + nfrc->fr.stream.flags = fr->stream.flags; + nfrc->fr.stream.fin = fr->stream.fin; + nfrc->fr.stream.stream_id = fr->stream.stream_id; + nfrc->fr.stream.offset = fr->stream.offset; + nfrc->fr.stream.datacnt = fr->stream.datacnt; ngtcp2_vec_copy(nfrc->fr.stream.data, fr->stream.data, fr->stream.datacnt); @@ -314,7 +319,12 @@ static ngtcp2_ssize rtb_reclaim_frame(ngtcp2_rtb *rtb, uint8_t flags, return rv; } - nfrc->fr = *fr; + nfrc->fr.stream.type = fr->stream.type; + nfrc->fr.stream.flags = 0; + nfrc->fr.stream.fin = 0; + nfrc->fr.stream.stream_id = 0; + nfrc->fr.stream.offset = fr->stream.offset; + nfrc->fr.stream.datacnt = fr->stream.datacnt; ngtcp2_vec_copy(nfrc->fr.stream.data, fr->stream.data, fr->stream.datacnt); @@ -415,7 +425,7 @@ static int conn_process_lost_datagram(ngtcp2_conn *conn, int rv; for (frc = ent->frc; frc; frc = frc->next) { - switch (frc->fr.type) { + switch (frc->fr.hd.type) { case NGTCP2_FRAME_DATAGRAM: case NGTCP2_FRAME_DATAGRAM_LEN: assert(conn->callbacks.lost_datagram); @@ -603,7 +613,7 @@ static int process_acked_pkt(ngtcp2_rtb_entry *ent, ngtcp2_conn *conn, frc->binder->flags |= NGTCP2_FRAME_CHAIN_BINDER_FLAG_ACK; } - switch (frc->fr.type) { + switch (frc->fr.hd.type) { case NGTCP2_FRAME_STREAM: strm = ngtcp2_conn_find_stream(conn, frc->fr.stream.stream_id); if (strm == NULL) { @@ -851,7 +861,7 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, goto fail; } - if (largest_ack == pkt_num) { + if (rtb->largest_acked_tx_pkt_num == pkt_num) { cc_ack.largest_pkt_sent_ts = ent->ts; } @@ -1299,7 +1309,7 @@ static int rtb_reclaim_frame_on_retry(ngtcp2_rtb *rtb, ngtcp2_conn *conn, int rv; for (; *pfrc;) { - switch ((*pfrc)->fr.type) { + switch ((*pfrc)->fr.hd.type) { case NGTCP2_FRAME_STREAM: frc = *pfrc; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c index 01f2706043..1ae0f10d91 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c @@ -47,14 +47,13 @@ const void *ngtcp2_get_bytes(void *dest, const void *src, size_t n) { uint8_t *ngtcp2_encode_hex(uint8_t *dest, const uint8_t *data, size_t len) { size_t i; - uint8_t *p = dest; for (i = 0; i < len; ++i) { - *p++ = (uint8_t)LOWER_XDIGITS[data[i] >> 4]; - *p++ = (uint8_t)LOWER_XDIGITS[data[i] & 0xf]; + *dest++ = (uint8_t)LOWER_XDIGITS[data[i] >> 4]; + *dest++ = (uint8_t)LOWER_XDIGITS[data[i] & 0xf]; } - return p; + return dest; } char *ngtcp2_encode_hex_cstr(char *dest, const uint8_t *data, size_t len) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c index 26871aa0a2..99d02da1b8 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c @@ -190,8 +190,8 @@ static int strm_streamfrq_init(ngtcp2_strm *strm) { int ngtcp2_strm_streamfrq_push(ngtcp2_strm *strm, ngtcp2_frame_chain *frc) { int rv; - assert(frc->fr.type == NGTCP2_FRAME_STREAM || - frc->fr.type == NGTCP2_FRAME_CRYPTO); + assert(frc->fr.hd.type == NGTCP2_FRAME_STREAM || + frc->fr.hd.type == NGTCP2_FRAME_CRYPTO); assert(frc->next == NULL); if (strm->tx.streamfrq == NULL) { @@ -305,8 +305,7 @@ static int strm_streamfrq_unacked_pop(ngtcp2_strm *strm, fr->offset = offset + base_offset; fr->datacnt = end_idx - idx; - fr->data[0].base += base_offset; - fr->data[0].len -= (size_t)base_offset; + ngtcp2_vec_drop(&fr->data[0], (size_t)base_offset); *pfrc = frc; @@ -332,8 +331,7 @@ static int strm_streamfrq_unacked_pop(ngtcp2_strm *strm, nfr->stream_id = fr->stream_id; nfr->offset = end_offset + end_base_offset; nfr->datacnt = fr->datacnt - end_idx; - nfr->data[0].base += end_base_offset; - nfr->data[0].len -= (size_t)end_base_offset; + ngtcp2_vec_drop(&nfr->data[0], (size_t)end_base_offset); rv = ngtcp2_ksl_insert(strm->tx.streamfrq, NULL, &nfr->offset, nfrc); if (rv != 0) { @@ -361,8 +359,7 @@ static int strm_streamfrq_unacked_pop(ngtcp2_strm *strm, fr->data[fr->datacnt - 1].len = (size_t)end_base_offset; } - fr->data[0].base += base_offset; - fr->data[0].len -= (size_t)base_offset; + ngtcp2_vec_drop(&fr->data[0], (size_t)base_offset); *pfrc = frc; @@ -465,8 +462,11 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc, } nfr = &nfrc->fr.stream; - *nfr = *fr; + nfr->type = fr->type; + nfr->flags = fr->flags; nfr->fin = 0; + nfr->stream_id = fr->stream_id; + nfr->offset = fr->offset; nfr->datacnt = acnt; ngtcp2_vec_copy(nfr->data, a, acnt); @@ -592,7 +592,11 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc, } nfr = &nfrc->fr.stream; - *nfr = *fr; + nfr->type = fr->type; + nfr->flags = fr->flags; + nfr->fin = fr->fin; + nfr->stream_id = fr->stream_id; + nfr->offset = fr->offset; nfr->datacnt = acnt; ngtcp2_vec_copy(nfr->data, a, acnt); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c index 537599f6c1..f94c6218d5 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c @@ -105,8 +105,7 @@ ngtcp2_ssize ngtcp2_vec_split(ngtcp2_vec *dst, size_t *pdstcnt, ngtcp2_vec *src, memcpy(dst, src + i, sizeof(ngtcp2_vec) * nmove); } - dst[0].len -= left; - dst[0].base += left; + ngtcp2_vec_drop(&dst[0], left); src[i].len = left; if (nmove == 0) { @@ -139,8 +138,7 @@ size_t ngtcp2_vec_merge(ngtcp2_vec *dst, size_t *pdstcnt, ngtcp2_vec *src, a->len = left; a->base = b->base; - b->len -= left; - b->base += left; + ngtcp2_vec_drop(b, left); return left; } @@ -168,8 +166,7 @@ size_t ngtcp2_vec_merge(ngtcp2_vec *dst, size_t *pdstcnt, ngtcp2_vec *src, ++*pdstcnt; } - b->len -= left; - b->base += left; + ngtcp2_vec_drop(b, left); left = 0; break; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h index af9b4d6445..fe6a47a029 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h @@ -110,4 +110,14 @@ static inline uint8_t *ngtcp2_vec_end(const ngtcp2_vec *v) { return v->base + v->len; } +/* + * ngtcp2_vec_drop removes the first |n| bytes from |v| by adjusting + * its base and len fields. This function assumes |v|->len > 0 && + * |v|->len >= n. + */ +static inline void ngtcp2_vec_drop(ngtcp2_vec *v, size_t n) { + v->base += n; + v->len -= n; +} + #endif /* !defined(NGTCP2_VEC_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index 3e60b39d5d..62904c53ab 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.18.0" +#define NGTCP2_VERSION "1.19.0" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x011200 +#define NGTCP2_VERSION_NUM 0x011300 #endif /* !defined(NGTCP2_VERSION_H) */ From 86a77a183623a1766a3d1507218b2abc2857b58f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 17 Dec 2025 17:14:37 +0100 Subject: [PATCH 303/675] server: remove redundant check --- src/knot/server/server.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index f7086a1c78..24e6dc89ad 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1163,10 +1163,8 @@ static void server_free_handler(iohandler_t *h) } /* Wait for threads to finish */ - if (h->unit) { - dt_stop(h->unit); - dt_join(h->unit); - } + dt_stop(h->unit); + dt_join(h->unit); /* Destroy worker context. */ dt_delete(&h->unit); From fbe6644d8ec76ce505a5fe208ea03ba759d1e051 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 17 Dec 2025 19:54:48 +0100 Subject: [PATCH 304/675] server: tiny timer db sync cleanup --- src/knot/server/server.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 24e6dc89ad..6a7174df44 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1603,6 +1603,7 @@ void server_stop(server_t *server) server->state |= ServerShutting; /* Stop timer DB syncing thread */ dt_stop(server->timerdb_sync); + dt_join(server->timerdb_sync); /* Interrupt background workers. */ worker_pool_stop(server->workers); @@ -1687,7 +1688,7 @@ static int reconfigure_timer_db(conf_t *conf, server_t *server) } } else if (!should_sync && exists_sync) { dt_stop(server->timerdb_sync); - dt_delete(&server->timerdb_sync); + dt_join(server->timerdb_sync); } return ret; @@ -1832,7 +1833,7 @@ int server_reconfigure(conf_t *conf, server_t *server) /* Reconfigure Timer DB. */ if ((ret = reconfigure_timer_db(conf, server)) != KNOT_EOK) { - log_error("failed to reconfigure Timer DB (%s)", + log_error("failed to reconfigure timer DB (%s)", knot_strerror(ret)); } From b2c21b263a96ef4d6337483ed59c34e6aada2558 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 17 Dec 2025 20:54:11 +0100 Subject: [PATCH 305/675] redis: fix default port configuration processing --- src/knot/common/hiredis.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c index 3bbf6d968a..f7f4933c07 100644 --- a/src/knot/common/hiredis.c +++ b/src/knot/common/hiredis.c @@ -241,9 +241,12 @@ int rdb_addr_to_str(struct sockaddr_storage *addr, char *out, size_t out_len, in *port = sockaddr_port(addr); sockaddr_port_set(addr, 0); - if (sockaddr_tostr(out, out_len, addr) <= 0 || *port == 0) { + if (sockaddr_tostr(out, out_len, addr) <= 0 || *port < 0) { return KNOT_EINVAL; } + if (*port == 0) { + *port = CONF_REDIS_PORT; + } } return KNOT_EOK; From b4ed0a260e3b9f696b52ed391bfb87de32b33146 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 17 Dec 2025 20:20:54 +0100 Subject: [PATCH 306/675] server: purge global_redis_pool and reconnect events it zone-db-listen reconfigured --- src/knot/server/server.c | 45 ++++++++++++++++------ tests-extra/tests/redis/ha/test.py | 3 +- tests-extra/tests/redis/reconfig/test.py | 49 ++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 13 deletions(-) create mode 100644 tests-extra/tests/redis/reconfig/test.py diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 6a7174df44..e099101692 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -39,6 +39,7 @@ #include "contrib/conn_pool.h" #include "contrib/files.h" #include "contrib/net.h" +#include "contrib/openbsd/siphash.h" #include "contrib/openbsd/strlcat.h" #include "contrib/os.h" #include "contrib/sockaddr.h" @@ -941,15 +942,15 @@ static int rdb_listener_run(struct dthread *thread) redisReply *reply = redisCommand(s->rdb_ctx, "XREAD BLOCK %d STREAMS %b %s", 4000, RDB_EVENT_KEY, strlen(RDB_EVENT_KEY), since); if (reply == NULL) { - if (thread->state & ThreadDead) { + if (dt_is_cancelled(thread)) { break; } - if (s->rdb_ctx->err != REDIS_OK) { + if (s->rdb_ctx != NULL && s->rdb_ctx->err != REDIS_OK) { log_error("rdb, failed to read events (%s)", s->rdb_ctx->errstr); } rdb_disconnect(s->rdb_ctx, false); s->rdb_ctx = NULL; - sleep(2); + sleep(1); continue; } if (reply->type == REDIS_REPLY_NIL) { @@ -1026,7 +1027,6 @@ int server_init(server_t *server, int bg_workers) int ret = catalog_update_init(&server->catalog_upd); if (ret != KNOT_EOK) { - dt_stop(server->rdb_events); dt_delete(&server->rdb_events); worker_pool_destroy(server->workers); evsched_deinit(&server->sched); @@ -1595,6 +1595,7 @@ void server_stop(server_t *server) redisSetTimeout(server->rdb_ctx, (struct timeval){ 0, 1 }); } dt_stop(server->rdb_events); + dt_join(server->rdb_events); #endif // ENABLE_REDIS /* Stop scheduler. */ @@ -1713,6 +1714,15 @@ static bool invalid_redis_conn(intptr_t ptr) return ptr == CONN_POOL_FD_INVALID || !zone_redis_ping((void *)ptr); } +static uint64_t db_listen_hash(conf_val_t *val) +{ + SIPHASH_CTX ctx; + SIPHASH_KEY key = { 0 }; + SipHash24_Init(&ctx, &key); + SipHash24_Update(&ctx, val->blob, val->blob_len); + return SipHash24_End(&ctx); +} + static int reconfigure_remote_pool(conf_t *conf, server_t *server) { conf_val_t val = conf_get(conf, C_SRV, C_RMT_POOL_LIMIT); @@ -1753,14 +1763,27 @@ static int reconfigure_remote_pool(conf_t *conf, server_t *server) } val = conf_get(conf, C_DB, C_ZONE_DB_LISTEN); - if (global_redis_pool == NULL && val.code == KNOT_EOK) { - size_t bg_wrkrs = conf_bg_threads(conf); - conn_pool_t *new_pool = conn_pool_init(bg_wrkrs, REDIS_CONN_POOL_TIMEOUT, - free_redis_conn, invalid_redis_conn); - if (new_pool == NULL) { - return KNOT_ENOMEM; + if (val.code == KNOT_EOK) { + static uint64_t hash = 0; + uint64_t curr_hash = db_listen_hash(&val); + + if (global_redis_pool == NULL) { + size_t bg_wrkrs = conf_bg_threads(conf); + conn_pool_t *new_pool = conn_pool_init(bg_wrkrs + 1, REDIS_CONN_POOL_TIMEOUT, + free_redis_conn, invalid_redis_conn); + if (new_pool == NULL) { + return KNOT_ENOMEM; + } + global_redis_pool = new_pool; } - global_redis_pool = new_pool; + if (hash != curr_hash) { + conn_pool_purge(global_redis_pool); + if (server->rdb_ctx != NULL) { + // Interrupt XREAD BLOCK and reconnect events. + shutdown(server->rdb_ctx->fd, SHUT_RDWR); + } + } + hash = curr_hash; } val = conf_get(conf, C_SRV, C_RMT_RETRY_DELAY); diff --git a/tests-extra/tests/redis/ha/test.py b/tests-extra/tests/redis/ha/test.py index 5a2f41f415..02229eaff8 100644 --- a/tests-extra/tests/redis/ha/test.py +++ b/tests-extra/tests/redis/ha/test.py @@ -86,10 +86,9 @@ t.xfr_diff(master, slave2, zones, serial_init) # Add to DB manually. -slave2.stop() slave2.db_in(zones, [redis_slave2], 1) slave2.gen_confile() -slave2.start() +slave2.reload() slave2.zones_wait(zones) # interesting: remove and see txn = redis_slave1.cli("knot.upd.begin", ZONE, "1") redis_slave1.cli("knot.upd.add", ZONE, txn, "test TXT test") diff --git a/tests-extra/tests/redis/reconfig/test.py b/tests-extra/tests/redis/reconfig/test.py new file mode 100644 index 0000000000..a71f52adc8 --- /dev/null +++ b/tests-extra/tests/redis/reconfig/test.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 + +'''Test for Redis database reconfiguration.''' + +import random +from dnstest.test import Test +from dnstest.utils import * + +def db_upd(db, zone_name, inst, init=False): + if init: + txn = db.cli("knot.zone.begin", zone_name, str(inst)) + r = db.cli("knot.zone.store", zone_name, txn, "@ SOA dns mail 1 36000 600 864000 300") + r = db.cli("knot.zone.commit", zone_name, txn) + else: + txn = db.cli("knot.upd.begin", zone_name, str(inst)) + r = db.cli("knot.upd.commit", zone_name, txn) + +t = Test() + +server = t.server("knot") + +ZONE = "example.com." +zones = t.zone(ZONE) +t.link(zones, server) + +redis1 = t.backend("redis", tls=random.choice([True, False])) +redis2 = t.backend("redis", tls=random.choice([True, False])) + +server.db_in(zones, [redis1], 1) + +t.start() + +t.sleep(1) +db_upd(redis1, ZONE, 1, True) +db_upd(redis2, ZONE, 1, True) +serials = server.zones_wait(zones) + +db_upd(redis1, ZONE, 1) +db_upd(redis2, ZONE, 1) +serials = server.zones_wait(zones, serials) + +server.db_in(zones, [redis2], 1) +server.gen_confile() +server.reload() + +db_upd(redis2, ZONE, 1) +serials = server.zones_wait(zones, serials) + +t.end() From d74234be86f5e1df0e0e0eecc64ce6a2bc64623d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 24 Dec 2025 09:46:33 +0100 Subject: [PATCH 307/675] redis: add debug log if communication with connected db failed (e.g. TLS mismatch) --- src/knot/common/hiredis.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c index f7f4933c07..bcf4e2e0a8 100644 --- a/src/knot/common/hiredis.c +++ b/src/knot/common/hiredis.c @@ -358,6 +358,8 @@ redisContext *rdb_connect(conf_t *conf, bool require_master, const char *info) goto connected; } } else { + log_debug("rdb, failed to query, remote %s%s%.0u", + addr_str, (port != 0 ? "@" : ""), port); redisFree(rdb); } From 6fe80f9189c400cc91168f6035a79bef514a5dad Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 24 Dec 2025 10:19:22 +0100 Subject: [PATCH 308/675] server: remove shutdown delay if connected to Redis --- src/knot/server/server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index e099101692..68106ce031 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1591,10 +1591,10 @@ void server_stop(server_t *server) #ifdef ENABLE_REDIS /* Interrupt and stop XREAD BLOCK loop. */ + dt_stop(server->rdb_events); if (server->rdb_ctx != NULL) { - redisSetTimeout(server->rdb_ctx, (struct timeval){ 0, 1 }); + shutdown(server->rdb_ctx->fd, SHUT_RDWR); } - dt_stop(server->rdb_events); dt_join(server->rdb_events); #endif // ENABLE_REDIS From b0bd75ef812b0a15fd415934b37f468f0b00cc57 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 25 Dec 2025 20:02:18 +0100 Subject: [PATCH 309/675] tests-extra: stabilize redis/basic --- tests-extra/tests/redis/basic/test.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests-extra/tests/redis/basic/test.py b/tests-extra/tests/redis/basic/test.py index ca95a04a77..5d0aa58919 100644 --- a/tests-extra/tests/redis/basic/test.py +++ b/tests-extra/tests/redis/basic/test.py @@ -116,6 +116,8 @@ up.add("loop", 3600, "AAAA", "1::%d" % i) up.send() master.zones_wait(zones, serials6, equal=True) + if i < 3: + slave.zones_wait(zones, serials6, equal=True) slave.ctl("zone-thaw") slave.zones_wait(zones, serials6, equal=True) From c96598db2dc00d71dc5314b8fd3de99633d88741 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 25 Dec 2025 21:26:15 +0100 Subject: [PATCH 310/675] tests-extra: increase valgrind attempts to stabilize ixfr/many_zones --- tests-extra/tools/dnstest/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 8d0f128110..ebf7005b50 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -883,7 +883,7 @@ def zone_wait(self, zone, serial=None, equal=False, greater=True, udp=True, check_log("ZONE WAIT %s: %s" % (self.name, zone.name)) - attempts = 15 if not self.valgrind else 25 + attempts = 15 if not self.valgrind else 45 for t in range(attempts): try: if use_ctl: From d168af0b8bb29565aa43b5df48e20f8c678b7b57 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 26 Dec 2025 18:02:42 +0100 Subject: [PATCH 311/675] tests-extra: disable XDP in dnssec/ds_push --- tests-extra/tests/dnssec/ds_push/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-extra/tests/dnssec/ds_push/test.py b/tests-extra/tests/dnssec/ds_push/test.py index 51326aadb9..0b09fdadc9 100644 --- a/tests-extra/tests/dnssec/ds_push/test.py +++ b/tests-extra/tests/dnssec/ds_push/test.py @@ -98,7 +98,7 @@ def watch_ksk_rollover(t, server, zone, before_keys, after_keys, total_keys, des t = Test(tsig=False) -parent = t.server("knot") +parent = t.server("knot", xdp_enable=False) # DDNS over XDP not supported parent_zone = t.zone_rnd(1) t.link(parent_zone, parent, ddns=True) From 40666cf57ac4623c6099711402a564194868079c Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sat, 27 Dec 2025 09:48:19 +0100 Subject: [PATCH 312/675] tests/redis/reconfig: randomly change addr and/or instance --- tests-extra/tests/redis/reconfig/test.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests-extra/tests/redis/reconfig/test.py b/tests-extra/tests/redis/reconfig/test.py index a71f52adc8..d618d1a1fe 100644 --- a/tests-extra/tests/redis/reconfig/test.py +++ b/tests-extra/tests/redis/reconfig/test.py @@ -33,17 +33,24 @@ def db_upd(db, zone_name, inst, init=False): t.sleep(1) db_upd(redis1, ZONE, 1, True) db_upd(redis2, ZONE, 1, True) +db_upd(redis1, ZONE, 2, True) +db_upd(redis2, ZONE, 2, True) serials = server.zones_wait(zones) db_upd(redis1, ZONE, 1) db_upd(redis2, ZONE, 1) +db_upd(redis1, ZONE, 2) +db_upd(redis2, ZONE, 2) serials = server.zones_wait(zones, serials) -server.db_in(zones, [redis2], 1) +target_redis = random.choice([redis1, redis2]) +target_inst = random.choice([1, 2]) + +server.db_in(zones, [target_redis], target_inst) server.gen_confile() server.reload() -db_upd(redis2, ZONE, 1) +db_upd(target_redis, ZONE, target_inst) serials = server.zones_wait(zones, serials) t.end() From c5c40f3187bc316d2f8e2f6cdbaabd16f295c81e Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sat, 27 Dec 2025 20:36:07 +0100 Subject: [PATCH 313/675] timerDB dump: bugfix: proper RCU lock for iterating zoneDB --- src/knot/server/server.c | 3 +++ src/knot/zone/timers.c | 4 ---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 68106ce031..e8f8cc52e8 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -12,6 +12,7 @@ #include #include // OpenBSD #include +#include #include "libknot/libknot.h" #include "libknot/yparser/ypschema.h" @@ -977,7 +978,9 @@ static int timer_db_do_sync(struct dthread *thread) server_t *s = thread->data; while (thread->state & ThreadActive) { + rcu_read_lock(); int ret = zone_timers_write_all(&s->timerdb, s->zone_db); + rcu_read_unlock(); if (ret == KNOT_EOK) { log_info("updated persistent timer DB"); } else { diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index 72f4cdbe92..50dd25808b 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -8,8 +8,6 @@ #include "contrib/wire_ctx.h" #include "knot/zone/zonedb.h" -#include - /* * # Timer database * @@ -210,10 +208,8 @@ int zone_timers_write(knot_lmdb_db_t *db, const knot_dname_t *zone, static void txn_zone_write(zone_t *z, knot_lmdb_txn_t *txn) { - rcu_read_lock(); zone_timers_t *t = z->timers_static; txn_write_timers(txn, z->name, t); - rcu_read_unlock(); } int zone_timers_write_all(knot_lmdb_db_t *db, knot_zonedb_t *zonedb) From 8d558bb686fcbf8971683018d50cfa1a72c9f54e Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sat, 27 Dec 2025 20:53:24 +0100 Subject: [PATCH 314/675] timerDB dump: log how long it took --- src/knot/server/server.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index e8f8cc52e8..d44bb6daac 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -973,18 +973,30 @@ static int rdb_listener_run(struct dthread *thread) } #endif // ENABLE_REDIS +static void duration_to_str(char res[64], struct timespec *beg) +{ + struct timespec end = time_now(); + double duration = time_diff_ms(beg, &end) / 1000.0; + if (duration >= 1.0) { + snprintf(res, 64, " in %0.2f seconds", duration); + } +} + static int timer_db_do_sync(struct dthread *thread) { server_t *s = thread->data; while (thread->state & ThreadActive) { + struct timespec beg = time_now(); rcu_read_lock(); int ret = zone_timers_write_all(&s->timerdb, s->zone_db); rcu_read_unlock(); + char dur_str[64] = ""; + duration_to_str(dur_str, &beg); if (ret == KNOT_EOK) { - log_info("updated persistent timer DB"); + log_info("updated persistent timer DB%s", dur_str); } else { - log_error("failed to update persistent timer DB (%s)", knot_strerror(ret)); + log_error("failed to update persistent timer DB%s (%s)", dur_str, knot_strerror(ret)); } if (conf()->cache.db_timer_db_sync <= 0) { From 5c9edbdf224c16c438f2d68f7d7be7d70926cb3e Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sun, 28 Dec 2025 10:42:40 +0100 Subject: [PATCH 315/675] server: log how long final timerDB dump took --- src/knot/server/server.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index d44bb6daac..e632056d66 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1087,11 +1087,15 @@ void server_deinit(server_t *server) bool should_sync = (conf()->cache.db_timer_db_sync == TIMER_DB_SYNC_SHUTDOWN || conf()->cache.db_timer_db_sync > 0); if (should_sync && server->zone_db != NULL) { - log_info("updating persistent timer DB"); + struct timespec beg = time_now(); int ret = zone_timers_write_all(&server->timerdb, server->zone_db); + char dur_str[64] = ""; + duration_to_str(dur_str, &beg); if (ret != KNOT_EOK) { - log_error("failed to update persistent timer DB (%s)", - knot_strerror(ret)); + log_error("failed to update persistent timer DB%s (%s)", + dur_str, knot_strerror(ret)); + } else { + log_info("updated persistent timer DB%s", dur_str); } } From 6481b54a3740025152613b6fab4862156546c88e Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sun, 28 Dec 2025 20:41:46 +0100 Subject: [PATCH 316/675] timerDB dump: skip not yet started zones --- src/knot/zone/timers.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index 50dd25808b..0b61272d36 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -208,8 +208,10 @@ int zone_timers_write(knot_lmdb_db_t *db, const knot_dname_t *zone, static void txn_zone_write(zone_t *z, knot_lmdb_txn_t *txn) { - zone_timers_t *t = z->timers_static; - txn_write_timers(txn, z->name, t); + if (z->started) { + zone_timers_t *t = z->timers_static; + txn_write_timers(txn, z->name, t); + } } int zone_timers_write_all(knot_lmdb_db_t *db, knot_zonedb_t *zonedb) From 02b4e4e7659412c17ec20933b2840a3740115d5d Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 29 Dec 2025 15:08:48 +0100 Subject: [PATCH 317/675] tests: fix and improvement of ZSK roll test --- tests-extra/tests/dnssec/zsk_rollover/test.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests-extra/tests/dnssec/zsk_rollover/test.py b/tests-extra/tests/dnssec/zsk_rollover/test.py index aa8ce122cc..58244f4434 100644 --- a/tests-extra/tests/dnssec/zsk_rollover/test.py +++ b/tests-extra/tests/dnssec/zsk_rollover/test.py @@ -108,10 +108,11 @@ def uns_mas_updater(server, z): up.delete("longttl.example.com.", "A") # zone max TTL decreases up.send() t.sleep(2) -master.ctl("zone-sign", wait=True) +master.ctl("zone-sign") +t.sleep(2) rrsig_new = check_same_rrsig(master, zone, None) -wait4key(t, master, zone, 2, old_key, 9, 14, "ZSK remove") # old ZSK removed +wait4key(t, master, zone, 2, old_key, 6, 10, "ZSK remove") # old ZSK removed check_salt(master, zone, False) check_same_rrsig(master, zone, rrsig_new) From 63768361b4310ce7d263e158e8f55ca9f7438f36 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 30 Dec 2025 12:06:10 +0100 Subject: [PATCH 318/675] server: fix compilation if redis not enabled --- src/knot/server/server.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index e632056d66..6ff377b20a 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1781,6 +1781,7 @@ static int reconfigure_remote_pool(conf_t *conf, server_t *server) hash = curr_hash; } +#ifdef ENABLE_REDIS val = conf_get(conf, C_DB, C_ZONE_DB_LISTEN); if (val.code == KNOT_EOK) { static uint64_t hash = 0; @@ -1804,6 +1805,7 @@ static int reconfigure_remote_pool(conf_t *conf, server_t *server) } hash = curr_hash; } +#endif // ENABLE_REDIS val = conf_get(conf, C_SRV, C_RMT_RETRY_DELAY); int delay_ms = conf_int(&val); From f0bcbc36382cb5e356c1f91fa0c3ccae731ba83a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 31 Dec 2025 11:33:21 +0100 Subject: [PATCH 319/675] zone: optimize memory trimming frequency for many zones (server start) --- src/knot/updates/zone-update.c | 52 +++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 1e2b8ab2dc..c9ba288f03 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -870,24 +870,6 @@ static int update_catalog(conf_t *conf, zone_update_t *update) return ret; } -typedef struct { - pthread_mutex_t lock; - size_t counter; -} counter_reach_t; - -static bool counter_reach(counter_reach_t *counter, size_t increment, size_t limit) -{ - bool reach = false; - pthread_mutex_lock(&counter->lock); - counter->counter += increment; - if (counter->counter >= limit) { - counter->counter = 0; - reach = true; - } - pthread_mutex_unlock(&counter->lock); - return reach; -} - /*! \brief Struct for what needs to be cleared after RCU. * * This can't be zone_update_t structure as this might be already freed at that time. @@ -904,12 +886,38 @@ typedef struct { size_t new_cont_size; } update_clear_ctx_t; +static void call_mem_trim(update_clear_ctx_t *ctx) +{ + static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + + static bool running = false; + static size_t counter = 0; + static knot_millis_t next = 0; + + knot_millis_t now = knot_millis_now(); + pthread_mutex_lock(&lock); + counter += ctx->new_cont_size; + if (running || counter < UPDATE_MEMTRIM_AT || now < next) { + pthread_mutex_unlock(&lock); + return; + } + running = true; + pthread_mutex_unlock(&lock); + + mem_trim(); + knot_millis_t diff = knot_millis_now() - now; + + pthread_mutex_lock(&lock); + running = false; + counter = 0; + next = now + 2 * diff; + pthread_mutex_unlock(&lock); +} + static void *update_clear_retry(void *arg); static void update_clear(struct rcu_head *param) { - static counter_reach_t counter = { PTHREAD_MUTEX_INITIALIZER, 0 }; - update_clear_ctx_t *ctx = (update_clear_ctx_t *)param; if (ctx->free_contents != NULL) { @@ -929,9 +937,7 @@ static void update_clear(struct rcu_head *param) apply_cleanup(ctx->cleanup_apply); free(ctx->cleanup_apply); - if (counter_reach(&counter, ctx->new_cont_size, UPDATE_MEMTRIM_AT)) { - mem_trim(); - } + call_mem_trim(ctx); free(ctx); } From 25b423c483b877e3d994d03d07524b3ffa3571b6 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 4 Jan 2026 13:37:17 +0100 Subject: [PATCH 320/675] distro/deb: remove Jakub from Uploaders --- distro/pkg/deb-nolibxdp/control | 1 - distro/pkg/deb/control | 1 - 2 files changed, 2 deletions(-) diff --git a/distro/pkg/deb-nolibxdp/control b/distro/pkg/deb-nolibxdp/control index 526211ea94..8f749170dc 100644 --- a/distro/pkg/deb-nolibxdp/control +++ b/distro/pkg/deb-nolibxdp/control @@ -3,7 +3,6 @@ Section: net Priority: optional Maintainer: Knot DNS Uploaders: - Jakub Ružička , Daniel Salzman , Build-Depends-Indep: python3-setuptools, diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index d205e49cca..07a7eec255 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -3,7 +3,6 @@ Section: net Priority: optional Maintainer: Knot DNS Uploaders: - Jakub Ružička , Daniel Salzman , Build-Depends-Indep: python3-setuptools, From d2f5da6d52cf3f0e55c94d595e10f13a1ff1088f Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sun, 4 Jan 2026 15:30:12 +0100 Subject: [PATCH 321/675] QUIC/requestor: fix crash when counterpart closes connection --- src/knot/query/quic-requestor.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/knot/query/quic-requestor.c b/src/knot/query/quic-requestor.c index cfeec47954..7d64d58842 100644 --- a/src/knot/query/quic-requestor.c +++ b/src/knot/query/quic-requestor.c @@ -255,6 +255,9 @@ int knot_qreq_recv(struct knot_quic_reply *r, struct iovec *out, int timeout_ms) if (ret != KNOT_EOK) { return ret; } + if (conn->conn == NULL) { + return KNOT_ECONN; + } } knot_tcp_inbufs_upd_res_t *firstib = stream->inbufs; From 5fce005d97a014a86eeb36a1626d635284190978 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 4 Jan 2026 17:01:40 +0100 Subject: [PATCH 322/675] tests-extra: stabilize test zone/external_vldt --- tests-extra/tests/zone/external_vldt/test.py | 2 +- tests-extra/tools/dnstest/server.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests-extra/tests/zone/external_vldt/test.py b/tests-extra/tests/zone/external_vldt/test.py index 82d91ab184..8cac84a73b 100644 --- a/tests-extra/tests/zone/external_vldt/test.py +++ b/tests-extra/tests/zone/external_vldt/test.py @@ -40,7 +40,7 @@ def log_count_expect(server, pattern, expct): LOG = "for external validation" slave.conf_srv().async_start = True -slave.conf_ss("external", zone).timeout = 10 +slave.conf_ss("external", zone).timeout = 20 slave.conf_ss("external", zone).dump_new_zone = dump_file(slave, "new") slave.conf_ss("external", zone).dump_removals = dump_file(slave, "diff") slave.conf_ss("external", zone).dump_additions = dump_file(slave, "diff") diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index ebf7005b50..d87ad870f2 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1557,7 +1557,7 @@ def get_config(self): s.begin("control") s.item("listen", "[ \"knot.sock\", \"knot2.sock\"]") - s.item_str("timeout", "15") + s.item_str("timeout", "25") s.end() all_remotes = set() @@ -1809,7 +1809,7 @@ def get_config(self): else: conf_params = ["-c", self.confile] self.start_params = conf_params - self.ctl_params = conf_params + ["-t", "15"] + self.ctl_params = conf_params + ["-t", "25"] if self.ctl_params_append != None: self.ctl_params += self.ctl_params_append From 657eda94644e9c603aa09173c3017230f6cb14ec Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 31 Dec 2025 23:09:02 +0100 Subject: [PATCH 323/675] zone/events: dont send NOTIFY before server starts answering --- src/knot/events/events.c | 12 ++++++++-- src/knot/events/events.h | 14 ++++++++++++ src/knot/server/server.c | 2 ++ src/knot/zone/zonedb-load.c | 1 + tests-extra/tests/notify/too_early/test.py | 26 ++++++++++++++++++++++ tests-extra/tools/dnstest/test.py | 5 +++-- 6 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 tests-extra/tests/notify/too_early/test.py diff --git a/src/knot/events/events.c b/src/knot/events/events.c index d93af62ce5..70c0cb08ec 100644 --- a/src/knot/events/events.c +++ b/src/knot/events/events.c @@ -132,7 +132,8 @@ static zone_event_type_t get_next_event(zone_events_t *events) time_t current = events->time[i]; if ((next == 0 || current < next) && (current != 0) && - (events->forced[i] || !events->ufrozen || !ufreeze_applies(i))) { + (events->forced[i] || !events->ufrozen || !ufreeze_applies(i)) && + (events->answering || !only_started(i))) { next = current; next_type = i; } @@ -489,6 +490,13 @@ void zone_events_freeze_blocking(zone_t *zone) pthread_cond_destroy(&cond); } +void zone_events_start_answering(zone_t *zone) +{ + pthread_mutex_lock(&zone->events.mx); + zone->events.answering = true; + reschedule(&zone->events, true); // unlocks events->mx +} + void zone_events_start(zone_t *zone) { if (!zone) { @@ -502,7 +510,7 @@ void zone_events_start(zone_t *zone) pthread_mutex_lock(&events->mx); events->frozen = false; - reschedule(events, true); //unlocks events->mx + reschedule(events, true); // unlocks events->mx } time_t zone_events_get_time(const struct zone *zone, zone_event_type_t type) diff --git a/src/knot/events/events.h b/src/knot/events/events.h index 49bba840f7..7e75d691be 100644 --- a/src/knot/events/events.h +++ b/src/knot/events/events.h @@ -48,6 +48,7 @@ typedef struct zone_events { bool frozen; //!< Terminated, don't schedule new events. bool ufrozen; //!< Updates to the zone temporarily frozen by user. + bool answering; //!< Server is answering. event_t *event; //!< Scheduler event. worker_pool_t *pool; //!< Server worker pool. @@ -159,6 +160,11 @@ void zone_events_freeze(struct zone *zone); */ void zone_events_freeze_blocking(struct zone *zone); +/*! + * \brief Set "answering" bit to true. + */ +void zone_events_start_answering(struct zone *zone); + /*! * \brief ufreeze_applies * \param type Type of event to be checked @@ -166,6 +172,14 @@ void zone_events_freeze_blocking(struct zone *zone); */ bool ufreeze_applies(zone_event_type_t type); +/*! + * \brief Events that require answering server. + */ +inline static bool only_started(zone_event_type_t type) +{ + return type == ZONE_EVENT_NOTIFY; +} + /*! * \brief Start the events processing. * diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 6ff377b20a..07d3011dca 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1213,6 +1213,8 @@ int server_start_answering(server_t *server) } } + knot_zonedb_foreach(server->zone_db, zone_events_start_answering); + return KNOT_EOK; } diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 46140faba7..b2cf094294 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -67,6 +67,7 @@ static zone_t *create_zone_from(const knot_dname_t *name, server_t *server) zone_free(&zone); return NULL; } + zone->events.answering = (server->state & ServerAnswering); return zone; } diff --git a/tests-extra/tests/notify/too_early/test.py b/tests-extra/tests/notify/too_early/test.py new file mode 100644 index 0000000000..18e4eebb7f --- /dev/null +++ b/tests-extra/tests/notify/too_early/test.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 + +'''Test that NOTIFY is not sent before server is answering (on XFR).''' + +from dnstest.test import Test + +t = Test() + +master = t.server("knot") +slave = t.server("knot") + +zones = t.zone_rnd(1, records=1200, names=["zzzzzzzzz."]) + t.zone("example.") + +t.link(zones, master, slave) + +master.dnssec(zones[0]).enable = True +slave.conf_zone(zones).retry_min_interval = 300 + +t.generate_conf() +slave.start() +master.start() + +serials = master.zones_wait(zones) +slave.zones_wait(zones) + +t.end() diff --git a/tests-extra/tools/dnstest/test.py b/tests-extra/tools/dnstest/test.py index a0262c890f..0facf6063c 100644 --- a/tests-extra/tools/dnstest/test.py +++ b/tests-extra/tools/dnstest/test.py @@ -384,11 +384,12 @@ def zone(self, name, file_name=None, storage=None, version=None, exists=True): return [zone] def zone_rnd(self, number, dnssec=None, nsec3=None, records=None, serial=None, - ttl=None, exists=True): + ttl=None, exists=True, names=None): zones = list() # Generate unique zone names. - names = zone_generate.main(["-n", number]).split() + if names is None: + names = zone_generate.main(["-n", number]).split() for name in names: zone = dnstest.zonefile.ZoneFile(self.zones_dir) zone.set_name(name) From 818cf862c30d16dbc7762463db54cceb942d1589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Wed, 17 Dec 2025 20:16:28 +0100 Subject: [PATCH 324/675] doc/appendices: add Securosys Primus HSM --- doc/appendices.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/doc/appendices.rst b/doc/appendices.rst index a3b8cb1e7a..f12738fd9a 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -105,6 +105,17 @@ support. | 2048 | 4096 - 2025-12 + * - `Securosys Primus HSM and CloudHSM (non-FIPS) `_ + - yes + - yes + - | ed25519 + | ed448 + - | 256 + | 384 + - | 1024 + | 2048 + | 4096 + - 2025-12 .. in progress: key ID checks have to be disabled in code * - `Yubikey NEO `_ From e09b2853dca16a677bbf81be209958ced7c7e7d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Fri, 19 Dec 2025 14:10:20 +0100 Subject: [PATCH 325/675] doc/appendices: note - HSM FW version affects capabilities --- doc/appendices.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/appendices.rst b/doc/appendices.rst index f12738fd9a..655b6911f3 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -14,7 +14,8 @@ This section has informative character. Knot DNS has been tested with several devices which claim to support PKCS #11 interface. The following table indicates which algorithms and operations have been observed to work. Please notice minimal GnuTLS library version required for particular algorithm -support. +support. Factors like firmware and Cryptoki module version might affect the +outcome. .. list-table:: :header-rows: 1 From ec4936c3ee87849b8bace396df2b8e5765606941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 19 Dec 2025 14:51:01 +0100 Subject: [PATCH 326/675] doc/appendices: fix a typo --- doc/appendices.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/appendices.rst b/doc/appendices.rst index 655b6911f3..34f69d0e5a 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -131,5 +131,5 @@ outcome. .. [#fn-softhsm] Algorithms supported depend on support in OpenSSL on which SoftHSM relies. A command similar to the following may be used to verify what algorithms are supported: - ``$ pkcs11-tool --modul /usr/lib64/pkcs11/libsofthsm2.so -M``. + ``$ pkcs11-tool --module /usr/lib64/pkcs11/libsofthsm2.so -M``. .. [#fn-utimaco] Requires setting the number of background workers to 1! From 2291dd9670dee39c71a2d95611f771e3d87a944f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 6 Jan 2026 08:50:16 +0100 Subject: [PATCH 327/675] doc/appendices: remove some obsolete HSM devices --- doc/appendices.rst | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/doc/appendices.rst b/doc/appendices.rst index 34f69d0e5a..596e550bbd 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -28,23 +28,6 @@ outcome. - ECDSA - RSA - Tested - * - `Feitian ePass 2003 `_ - - yes - - n/a - - n/a - - n/a - - | 1024 - | 2048 - - 2017-07 - * - `SafeNet Network HSM (Luna SA 4) `_ - - yes - - n/a - - n/a - - n/a - - | 1024 - | 2048 - | 4096 - - 2017-07 * - `SoftHSM 2.0 `_ [#fn-softhsm]_ - yes - yes From 0cbbc18ca26959c1f310f2d4781ba7a3a791d248 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 6 Jan 2026 08:53:04 +0100 Subject: [PATCH 328/675] doc/appendices: sort HSM devices by measurement date --- doc/appendices.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/appendices.rst b/doc/appendices.rst index 596e550bbd..5b62dfe8e0 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -28,17 +28,16 @@ outcome. - ECDSA - RSA - Tested - * - `SoftHSM 2.0 `_ [#fn-softhsm]_ + * - `Utimaco SecurityServer (V4) `_ [#fn-utimaco]_ - yes - yes - - | ed25519 - | ed448 + - n/a - | 256 | 384 - | 1024 | 2048 | 4096 - - 2025-12 + - 2018-09 * - `Trustway Proteccio NetHSM `_ - yes - ECDSA only @@ -59,16 +58,17 @@ outcome. | 2048 | 4096 - 2020-01 - * - `Utimaco SecurityServer (V4) `_ [#fn-utimaco]_ + * - `SoftHSM 2.0 `_ [#fn-softhsm]_ - yes - yes - - n/a + - | ed25519 + | ed448 - | 256 | 384 - | 1024 | 2048 | 4096 - - 2018-09 + - 2025-12 * - `Luna Cloud HSM (non-FIPS) `_ - yes - n/a From 71ead1af3b22b74d65289abc9838531fbe22d8d8 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 6 Jan 2026 10:31:55 +0100 Subject: [PATCH 329/675] server: mute compile warning without Redis --- src/knot/server/server.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 07d3011dca..b8565f0e6b 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1723,6 +1723,7 @@ static void free_sess_ticket(intptr_t ptr) } } +#ifdef ENABLE_REDIS static void free_redis_conn(intptr_t ptr) { if (ptr != CONN_POOL_FD_INVALID) { @@ -1743,6 +1744,7 @@ static uint64_t db_listen_hash(conf_val_t *val) SipHash24_Update(&ctx, val->blob, val->blob_len); return SipHash24_End(&ctx); } +#endif // ENABLE_REDIS static int reconfigure_remote_pool(conf_t *conf, server_t *server) { From 0d6a7b334f540ae54bec929720beefcdea7000f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Tue, 6 Jan 2026 13:43:50 +0100 Subject: [PATCH 330/675] kdig: set AA flag on NOTIFY query --- src/utils/kdig/kdig_params.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index bdd99e8b4f..d3545c8e4d 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -2131,9 +2131,9 @@ static int parse_type(const char *value, query_t *query) query->serial = serial; query->notify = notify; - // If NOTIFY, reset default RD flag. if (query->notify) { query->flags.rd_flag = false; + query->flags.aa_flag = true; } return KNOT_EOK; From 7bd76242b26ce5489f3975824d1caa7c46868635 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Tue, 6 Jan 2026 13:52:12 +0100 Subject: [PATCH 331/675] tests-extra: change the symbol that displays the number of repetitions from # to : SoftHSM interprets # as the beginning of a comment in the configuration file. --- tests-extra/runtests.py | 2 +- tests-extra/tools/dnstest/utils.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests-extra/runtests.py b/tests-extra/runtests.py index 62a5d9c355..8eb8ebfe91 100755 --- a/tests-extra/runtests.py +++ b/tests-extra/runtests.py @@ -170,7 +170,7 @@ def job(job_id, tasks, results, stop): continue try: - out_dir = os.path.join(outs_dir, test, case_n.replace(" ", "")) + out_dir = os.path.join(outs_dir, test, case_n.replace(" #", ":")) log_file = os.path.join(out_dir, "case.log") os.makedirs(out_dir, exist_ok=True) diff --git a/tests-extra/tools/dnstest/utils.py b/tests-extra/tools/dnstest/utils.py index 2710b6c798..d8a2eab80e 100644 --- a/tests-extra/tools/dnstest/utils.py +++ b/tests-extra/tools/dnstest/utils.py @@ -42,7 +42,7 @@ def test_info(): if len(info) > 0: info += "<-%i" % frame[2] else: - info = "%s#%i" % (frame_dir, frame[2]) + info = "%s:%i" % (frame_dir, frame[2]) parts = info.split("/") if len(parts) > 1: From 847c031af234bfbd09d375b8ddf29fb0045fe4c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Tue, 13 Jan 2026 10:51:06 +0100 Subject: [PATCH 332/675] keymgr: avoid segfault when using import-pem on a malformed key MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Hanno Böck --- src/utils/keymgr/functions.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index bbb2f8faf1..df00464aae 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -501,9 +501,12 @@ int keymgr_import_bind(kdnssec_ctx_t *ctx, const char *import_file, bool pub_onl static void err_import_key(char *keyid, const char *file) { + assert(file != NULL); + ERR2("failed to get key%s%s from %s%s", - *keyid == '\0' ? "" : " ", keyid, - *file == '\0' ? "the keystore" : "file ", file); + (keyid == NULL || *keyid == '\0') ? "" : " ", + (keyid == NULL) ? "" : keyid, + (*file == '\0') ? "the keystore" : "file ", file ); } static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, From e378de7c77bfe76e38a4afce1964136db795b2b6 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 12 Jan 2026 15:01:49 +0100 Subject: [PATCH 333/675] server: force zone reload from database if RDB_EVENT_ZONE --- src/knot/events/handlers/load.c | 5 +- src/knot/server/server.c | 2 + src/knot/zone/zone.h | 1 + .../redis/retransfer/data/example.com.zone | 17 +++++++ .../redis/retransfer/data/example.com.zone.1 | 17 +++++++ tests-extra/tests/redis/retransfer/test.py | 48 +++++++++++++++++++ 6 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 tests-extra/tests/redis/retransfer/data/example.com.zone create mode 100644 tests-extra/tests/redis/retransfer/data/example.com.zone.1 create mode 100644 tests-extra/tests/redis/retransfer/test.py diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 6f6ab55910..3c9112dc50 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -59,6 +59,7 @@ int event_load(conf_t *conf, zone_t *zone) bool old_contents_exist = (zone->contents != NULL), zone_in_journal_exists = false; const char *zone_src = "zone file"; struct redisContext *db_ctx = NULL; + bool rdb_reload = false; conf_val_t val = conf_zone_get(conf, C_JOURNAL_CONTENT, zone->name); unsigned load_from = conf_opt(&val); @@ -111,11 +112,12 @@ int event_load(conf_t *conf, zone_t *zone) bool db_enabled = conf_zone_rdb_enabled(conf, zone->name, true, &db_instance); if (db_enabled) { zone_src = "database"; + rdb_reload = zone_get_flag(zone, ZONE_RDB_RELOAD, false); db_ctx = zone_redis_connect(conf, false); } // Attempt to load changes from database. If fails, load full zone from there later. - if (db_enabled && (old_contents_exist || journal_conts != NULL) && + if (db_enabled && !rdb_reload && (old_contents_exist || journal_conts != NULL) && zone->cat_members == NULL && EMPTY_LIST(zone->include_from) && zf_from != ZONEFILE_LOAD_DIFSE && !includes_configured) { zone_redis_err_t err; @@ -519,6 +521,7 @@ int event_load(conf_t *conf, zone_t *zone) zone_schedule_notify(conf, zone, 0); } zone_redis_disconnect(db_ctx, true); + zone_unset_flag(zone, ZONE_RDB_RELOAD); zone_skip_free(&skip); zone->started = true; diff --git a/src/knot/server/server.c b/src/knot/server/server.c index b8565f0e6b..b7075a829e 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -882,6 +882,8 @@ static void rdb_process_event(redisReply *reply, knot_zonedb_t *zone_db, switch (type) { case RDB_EVENT_ZONE: + zone_set_flag(zone, ZONE_RDB_RELOAD); + // FALLTHROUGH case RDB_EVENT_UPD: log_zone_debug(zone->name, "rdb, event %s %s, serial %u", since, (type == RDB_EVENT_ZONE ? "zone" : "update"), serial); diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 33be90b5f8..5753aae39b 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -40,6 +40,7 @@ typedef enum { ZONE_USER_FLUSH = 1 << 8, /*!< User-triggered flush. */ ZONE_LAST_SIGN_OK = 1 << 9, /*!< Last full-sign event finished OK. */ ZONE_PREF_MASTER_2X = 1 << 10, /*!< Preferred master has been overwritten at least once. */ + ZONE_RDB_RELOAD = 1 << 11, /*!< Full zone reload from database. */ ZONE_FLAG_MAX = 1 << 19, /*!< Maximal usable flag below purge_flag_t. */ ZONE_FLAG_TYPESIZE = 1 << 30, /*!< Enforces the compiler to use 32-bit variable for this enum. */ diff --git a/tests-extra/tests/redis/retransfer/data/example.com.zone b/tests-extra/tests/redis/retransfer/data/example.com.zone new file mode 100644 index 0000000000..1f5517a856 --- /dev/null +++ b/tests-extra/tests/redis/retransfer/data/example.com.zone @@ -0,0 +1,17 @@ +$ORIGIN example.com. +$TTL 3600 + +@ SOA dns1 hostmaster 1 10800 3600 1209600 7200 + NS dns1 + NS dns2 + MX 10 mail + TXT "version1" + +dns1 A 192.0.2.1 + AAAA 2001:DB8::1 + +dns2 A 192.0.2.2 + AAAA 2001:DB8::2 + +mail A 192.0.2.3 + AAAA 2001:DB8::3 diff --git a/tests-extra/tests/redis/retransfer/data/example.com.zone.1 b/tests-extra/tests/redis/retransfer/data/example.com.zone.1 new file mode 100644 index 0000000000..4610258e0e --- /dev/null +++ b/tests-extra/tests/redis/retransfer/data/example.com.zone.1 @@ -0,0 +1,17 @@ +$ORIGIN example.com. +$TTL 3600 + +@ SOA dns1 hostmaster 1 10800 3600 1209600 7200 + NS dns1 + NS dns2 + MX 10 mail + TXT "version2" + +dns1 A 192.0.2.1 + AAAA 2001:DB8::1 + +dns2 A 192.0.2.2 + AAAA 2001:DB8::2 + +mail A 192.0.2.3 + AAAA 2001:DB8::3 diff --git a/tests-extra/tests/redis/retransfer/test.py b/tests-extra/tests/redis/retransfer/test.py new file mode 100644 index 0000000000..17c19dbe71 --- /dev/null +++ b/tests-extra/tests/redis/retransfer/test.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 + +'''Test for zone reload from Redis database.''' + +import random +from dnstest.test import Test +from dnstest.utils import * + +t = Test() + +hidden = t.server("knot") +master = t.server("knot") +slave = t.server("knot") + +zones = t.zone("example.com.", storage=".") + +t.link(zones, hidden, master) +t.link(zones, master) +t.link(zones, slave) + +tls = random.choice([True, False]) +redis_master = t.backend("redis", tls=tls) +redis_slave = t.backend("redis", tls=tls) +redis_slave.slave_of(redis_master) + +master.db_out(zones, [redis_master], 1) +slave.db_in(zones, [redis_slave], 1) + +t.start() + +# Check initial zone contents. +slave.zones_wait(zones) +t.xfr_diff(hidden, slave, zones) +resp = slave.dig("example.com", "TXT") +resp.check_record(section="answer", rtype="TXT", rdata="version1") + +# Replace zone contents with serial unchanged. +hidden.update_zonefile(zones[0], version=1) +hidden.reload() +master.ctl("zone-retransfer") + +# Check retransfered different zone contents with the same serial. +t.sleep(4) +t.xfr_diff(hidden, slave, zones) +resp = slave.dig("example.com", "TXT") +resp.check_record(section="answer", rtype="TXT", rdata="version2", nordata="version1") + +t.end() From 1729a53709214a28b218e00b7a04bfa33042ccd2 Mon Sep 17 00:00:00 2001 From: Benedikt Heine Date: Thu, 8 Jan 2026 13:58:56 +0100 Subject: [PATCH 334/675] samples/probe_dump.py: add --json option --- samples/probe_dump.py | 66 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/samples/probe_dump.py b/samples/probe_dump.py index 354d8897cb..8c5d804ad0 100755 --- a/samples/probe_dump.py +++ b/samples/probe_dump.py @@ -6,10 +6,60 @@ """A simple Knot DNS probe client.""" import argparse +import datetime +import json import libknot import libknot.probe import sys +def extract_dns_header(probe, fieldname): + val = getattr(probe, fieldname) + return { + "additionals": val.additionals, + "answers": val.answers, + "authorities": val.authorities, + "flag_aa": val.flag_aa, + "flag_ad": val.flag_ad, + "flag_cd": val.flag_cd, + "flag_qr": val.flag_qr, + "flag_ra": val.flag_ra, + "flag_rd": val.flag_rd, + "flag_tc": val.flag_tc, + "flag_z": val.flag_z, + "id": val.id, + "opcode": val.opcode, + "questions": val.questions, + "rcode": val.rcode, + } + +def extract_addr(probe, fieldname): + val = getattr(probe, fieldname) + return probe.addr_str(val) + +def extract_safe(probe, fieldname): + convert_func = getattr + try: + convert_func = { + 'local_addr': extract_addr, + 'remote_addr': extract_addr, + 'query_hdr': extract_dns_header, + 'reply_hdr': extract_dns_header, + 'query_name': lambda probe, _: probe.qname_str(), + }[fieldname] + except KeyError: + pass + + return convert_func(probe, fieldname) + +def convert_json(probe): + probe_as_dict = {} + for field in probe._fields_: + fieldname = field[0] + fieldtype = field[1] + fieldlen = field[2] if len(field) > 2 else None + + probe_as_dict[fieldname] = extract_safe(probe, fieldname) + return probe_as_dict def probe_loop(args): try: @@ -25,7 +75,14 @@ def probe_loop(args): while (True): if probe.consume(data, 1000) > 0: for item in data: - print(item.str(color=not args.no_color, timestamp=not args.no_timestamp)) + if args.json: + item_json = convert_json(item) + if not args.no_timestamp: + item_json["timestamp"] = datetime.datetime.now().isoformat() + log = json.dumps(item_json) + else: + log = item.str(color=not args.no_color, timestamp=not args.no_timestamp) + print(log) except KeyboardInterrupt: sys.exit(0) @@ -49,10 +106,15 @@ def probe_loop(args): default=1, help="the probe channel" ) + parser.add_argument( + "--json", + action='store_true', + help="Print JSON formatted" + ) parser.add_argument( "--no-color", action='store_true', - help="don't colorize the output" + help="don't colorize the output (JSON is never colorized)" ) parser.add_argument( "--no-timestamp", From 863f32d8f042bf0c67313ecd185206f4fbbf6524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Wed, 14 Jan 2026 12:44:48 +0100 Subject: [PATCH 335/675] samples/probe_dump.py: use python idiomatic formatting --- samples/probe_dump.py | 45 ++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/samples/probe_dump.py b/samples/probe_dump.py index 8c5d804ad0..8cedf46f59 100755 --- a/samples/probe_dump.py +++ b/samples/probe_dump.py @@ -12,55 +12,60 @@ import libknot.probe import sys + def extract_dns_header(probe, fieldname): val = getattr(probe, fieldname) return { "additionals": val.additionals, - "answers": val.answers, + "answers": val.answers, "authorities": val.authorities, - "flag_aa": val.flag_aa, - "flag_ad": val.flag_ad, - "flag_cd": val.flag_cd, - "flag_qr": val.flag_qr, - "flag_ra": val.flag_ra, - "flag_rd": val.flag_rd, - "flag_tc": val.flag_tc, - "flag_z": val.flag_z, - "id": val.id, - "opcode": val.opcode, - "questions": val.questions, - "rcode": val.rcode, + "flag_aa": val.flag_aa, + "flag_ad": val.flag_ad, + "flag_cd": val.flag_cd, + "flag_qr": val.flag_qr, + "flag_ra": val.flag_ra, + "flag_rd": val.flag_rd, + "flag_tc": val.flag_tc, + "flag_z": val.flag_z, + "id": val.id, + "opcode": val.opcode, + "questions": val.questions, + "rcode": val.rcode, } + def extract_addr(probe, fieldname): val = getattr(probe, fieldname) return probe.addr_str(val) + def extract_safe(probe, fieldname): convert_func = getattr try: convert_func = { - 'local_addr': extract_addr, - 'remote_addr': extract_addr, - 'query_hdr': extract_dns_header, - 'reply_hdr': extract_dns_header, - 'query_name': lambda probe, _: probe.qname_str(), + "local_addr": extract_addr, + "remote_addr": extract_addr, + "query_hdr": extract_dns_header, + "reply_hdr": extract_dns_header, + "query_name": lambda probe, _: probe.qname_str(), }[fieldname] except KeyError: pass return convert_func(probe, fieldname) + def convert_json(probe): probe_as_dict = {} for field in probe._fields_: fieldname = field[0] fieldtype = field[1] - fieldlen = field[2] if len(field) > 2 else None + fieldlen = field[2] if len(field) > 2 else None probe_as_dict[fieldname] = extract_safe(probe, fieldname) return probe_as_dict + def probe_loop(args): try: libknot.Knot(args.libknot_path) @@ -72,7 +77,7 @@ def probe_loop(args): data = libknot.probe.KnotProbeDataArray(8) try: - while (True): + while True: if probe.consume(data, 1000) > 0: for item in data: if args.json: From eab5ebc662c8c104337f3a4b69c0d3f81da7a212 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 15 Jan 2026 09:28:18 +0100 Subject: [PATCH 336/675] yparser: every IPv6 address contains at least 2 colons This fixes issues with UNIX socket paths containing a colon. --- src/libknot/yparser/yptrafo.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libknot/yparser/yptrafo.c b/src/libknot/yparser/yptrafo.c index 30321164f3..ff02cd7551 100644 --- a/src/libknot/yparser/yptrafo.c +++ b/src/libknot/yparser/yptrafo.c @@ -384,25 +384,25 @@ static uint8_t sock_type_guess( const uint8_t **if_name) { size_t dots = 0; - size_t semicolons = 0; + size_t colons = 0; size_t digits = 0; // Analyze the string. for (size_t i = 0; i < len; i++) { if (str[i] == '.') dots++; - else if (str[i] == ':') semicolons++; + else if (str[i] == ':') colons++; else if (is_digit(str[i])) digits++; } // Guess socket type. - if (semicolons >= 1) { + if (colons >= 2) { *if_name = (const uint8_t *)strchr((const char *)str, '%'); if (*if_name == NULL) { return ADDR_TYPE_IPV6; } else { return ADDR_TYPE_IPV6_LINKLOCAL; } - } else if (semicolons == 0 && dots == 3 && digits >= 3) { + } else if (colons == 0 && dots == 3 && digits >= 3) { return ADDR_TYPE_IPV4; } else { return ADDR_TYPE_UNIX; From c8cb333d16fbe1cff191005ab5dfb1940e2db2be Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 15 Jan 2026 10:35:48 +0100 Subject: [PATCH 337/675] tests-extra: change the separator that displays the number of repetitions from : to __ --- tests-extra/runtests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-extra/runtests.py b/tests-extra/runtests.py index 8eb8ebfe91..d9d5ea935f 100755 --- a/tests-extra/runtests.py +++ b/tests-extra/runtests.py @@ -170,7 +170,7 @@ def job(job_id, tasks, results, stop): continue try: - out_dir = os.path.join(outs_dir, test, case_n.replace(" #", ":")) + out_dir = os.path.join(outs_dir, test, case_n.replace(" #", "__")) log_file = os.path.join(out_dir, "case.log") os.makedirs(out_dir, exist_ok=True) From 124d32f6b90a0c851e976a50650e976259be7ed6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 15 Jan 2026 13:25:00 +0100 Subject: [PATCH 338/675] CI: add ubuntu-26.04 --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 88622492fb..9170667b79 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -392,6 +392,10 @@ pkg:debian-11: <<: *pkg_test_deb image: $CI_REGISTRY/packaging/apkg/test/debian-11 +pkg:ubuntu-26.04: + <<: *pkg_test_deb + image: $CI_REGISTRY/packaging/apkg/test/ubuntu-26.04 + pkg:ubuntu-24.04: <<: *pkg_test_deb image: $CI_REGISTRY/packaging/apkg/test/ubuntu-24.04 From a268ce5dec565df72f7b7297d19f325c70225863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 16 Oct 2025 15:24:35 +0200 Subject: [PATCH 339/675] doc/operation: add a section regarding HSM keystores (note that OS privileges may need to be set) --- doc/operation.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/operation.rst b/doc/operation.rst index 15f51f4016..e22e0e8b7a 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -1289,6 +1289,16 @@ of their own's DNSKEYs. This setup should work nicely with any number of signers, however, due to the size of DNSKEY RRSet, at most three are advisable. +.. _DNSSEC using an HSM keystore: + +DNSSEC using an HSM keystore +============================ + +If access to a PKCS #11 device (i.e. HSM) is controlled by the operating system, such +as by `polkit `_ utility, and :doc:`knotd` +and related utilites (:doc:`keymgr`, :doc:`kzonesign`) are run +as a non-root user, privilege control must be configured accordingly in the operating system. + .. _DNSSEC keys import to HSM: DNSSEC keys import to HSM From 3a7ffd53fd1554d65a592ba8d5b4caf273894cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 6 Jan 2026 17:31:41 +0100 Subject: [PATCH 340/675] doc/appendices: number the footnotes in the order of appearance --- doc/appendices.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/appendices.rst b/doc/appendices.rst index 5b62dfe8e0..07163540bb 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -112,7 +112,7 @@ outcome. - |yes| - |no| +.. [#fn-utimaco] Requires setting the number of background workers to 1! .. [#fn-softhsm] Algorithms supported depend on support in OpenSSL on which SoftHSM relies. A command similar to the following may be used to verify what algorithms are supported: ``$ pkcs11-tool --module /usr/lib64/pkcs11/libsofthsm2.so -M``. -.. [#fn-utimaco] Requires setting the number of background workers to 1! From 6b8df47166a6c6bee319d496893c18261a9b1c17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Tue, 20 Jan 2026 10:20:18 +0100 Subject: [PATCH 341/675] scripts/showkey: fix a typo in program output --- scripts/showkey/showkey.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/showkey/showkey.c b/scripts/showkey/showkey.c index 8349a8b861..9546ce7cf5 100644 --- a/scripts/showkey/showkey.c +++ b/scripts/showkey/showkey.c @@ -198,7 +198,7 @@ static int print_key(const dnssec_key_t *key) " .public_key = { .size = %zu, .data = (uint8_t []){%s\n" " }},\n" " .rdata = { .size = %zu, .data = (uint8_t []){\n" - " %02x, 0x%02x, 0x%02x, 0x%02x,%s\n" + " 0x%02x, 0x%02x, 0x%02x, 0x%02x,%s\n" " }},\n" " .key_id = \"%s\",\n" " .keytag = %d,\n" From 601e007cf59020325c86caa4b6861787a4df8395 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Tue, 20 Jan 2026 11:17:41 +0100 Subject: [PATCH 342/675] libknot/sample_keys.h: fix formatting --- src/libknot/dnssec/sample_keys.h | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/libknot/dnssec/sample_keys.h b/src/libknot/dnssec/sample_keys.h index c9f6660a07..79418116f3 100644 --- a/src/libknot/dnssec/sample_keys.h +++ b/src/libknot/dnssec/sample_keys.h @@ -81,7 +81,7 @@ static const key_parameters_t SAMPLE_RSA1024_SHA256_KEY = { 0xf1, 0x8b, }}, .rdata = { .size = 136, .data = (uint8_t []){ - 01, 0x00, 0x03, 0x08, + 0x01, 0x00, 0x03, 0x08, 0x03, 0x01, 0x00, 0x01, 0xaa, 0xb0, 0x2f, 0xe3, 0xba, 0x19, 0xc0, 0x8f, 0x91, 0x16, 0x63, 0xa0, 0xe6, 0xdf, 0x20, 0x91, 0xdc, 0x1c, 0xfc, 0x10, 0x41, 0x8f, 0x66, 0x9c, 0x08, 0x3a, @@ -214,6 +214,7 @@ static const key_parameters_t SAMPLE_RSA1024_SHA256_KEY = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, }}, }; + /* RSASHA256 (2048b) @@ -287,7 +288,7 @@ static const key_parameters_t SAMPLE_RSA2048_SHA256_KEY = { 0x5b, 0x34, 0xad, 0x55, 0x42, 0x7f, 0x5e, 0xfe, 0xdc, 0x13, }}, .rdata = { .size = 264, .data = (uint8_t []){ - 01, 0x00, 0x03, 0x08, + 0x01, 0x00, 0x03, 0x08, 0x03, 0x01, 0x00, 0x01, 0xbd, 0x2f, 0xb7, 0xbc, 0x15, 0xba, 0xa4, 0x8f, 0x81, 0x25, 0x35, 0xaa, 0xb3, 0x22, 0xae, 0x2a, 0xbf, 0x6b, 0x2e, 0x7b, 0xa1, 0x51, 0x33, 0x6f, 0xfc, 0x3b, @@ -511,6 +512,7 @@ static const key_parameters_t SAMPLE_RSA2048_SHA256_KEY = { 0x2d, 0x2d, 0x2d, 0x0a, }}, }; + /* RSASHA256 (4096b) @@ -634,7 +636,7 @@ static const key_parameters_t SAMPLE_RSA4096_SHA256_KEY = { 0xef, 0x2d, 0x57, 0xa2, 0xec, 0x21, }}, .rdata = { .size = 520, .data = (uint8_t []){ - 01, 0x00, 0x03, 0x08, + 0x01, 0x00, 0x03, 0x08, 0x03, 0x01, 0x00, 0x01, 0xb9, 0x51, 0xd6, 0x80, 0xd2, 0x98, 0xbd, 0x9b, 0x64, 0xb4, 0x63, 0x68, 0x04, 0x7d, 0x24, 0xd7, 0xad, 0xb2, 0xa8, 0x6a, 0x62, 0x55, 0x31, 0xcc, 0xc3, 0x50, @@ -1041,6 +1043,7 @@ static const key_parameters_t SAMPLE_RSA4096_SHA256_KEY = { 0x2d, 0x0a, }}, }; + /* RSASHA512 (1024b) @@ -1090,7 +1093,7 @@ static const key_parameters_t SAMPLE_RSA1024_SHA512_KEY = { 0x67, 0x51, }}, .rdata = { .size = 136, .data = (uint8_t []){ - 01, 0x00, 0x03, 0x0a, + 0x01, 0x00, 0x03, 0x0a, 0x03, 0x01, 0x00, 0x01, 0xb0, 0xaa, 0xf0, 0xc8, 0x9e, 0x68, 0x62, 0x95, 0xfc, 0xa4, 0x32, 0x7b, 0x1e, 0x52, 0x7e, 0xdd, 0x48, 0x97, 0x26, 0x26, 0xd5, 0x53, 0x1a, 0x7c, 0x01, 0x76, @@ -1223,6 +1226,7 @@ static const key_parameters_t SAMPLE_RSA1024_SHA512_KEY = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, }}, }; + /* RSASHA512 (2048b) @@ -1296,7 +1300,7 @@ static const key_parameters_t SAMPLE_RSA2048_SHA512_KEY = { 0xda, 0x1d, 0x32, 0xdc, 0x21, 0x69, 0x31, 0x65, 0xe7, 0x95, }}, .rdata = { .size = 264, .data = (uint8_t []){ - 01, 0x00, 0x03, 0x0a, + 0x01, 0x00, 0x03, 0x0a, 0x03, 0x01, 0x00, 0x01, 0xc0, 0x2d, 0xd7, 0x1b, 0x56, 0x12, 0x90, 0x2a, 0xae, 0x79, 0x0b, 0x2c, 0x46, 0xf3, 0x5c, 0xfe, 0xee, 0xcd, 0xd2, 0x24, 0x39, 0xea, 0x4d, 0xaf, 0x3b, 0x10, @@ -1520,6 +1524,7 @@ static const key_parameters_t SAMPLE_RSA2048_SHA512_KEY = { 0x2d, 0x2d, 0x2d, 0x0a, }}, }; + /* RSASHA512 (4096b) @@ -1643,7 +1648,7 @@ static const key_parameters_t SAMPLE_RSA4096_SHA512_KEY = { 0xe1, 0xae, 0x2b, 0xe2, 0x81, 0x01, }}, .rdata = { .size = 520, .data = (uint8_t []){ - 01, 0x00, 0x03, 0x0a, + 0x01, 0x00, 0x03, 0x0a, 0x03, 0x01, 0x00, 0x01, 0xbb, 0x75, 0x84, 0x2e, 0x72, 0xa0, 0x7b, 0x6c, 0x3c, 0xe5, 0x5c, 0x76, 0xbc, 0x03, 0xe0, 0x73, 0xc4, 0x0e, 0x2d, 0x6f, 0xbc, 0x46, 0x55, 0xc4, 0x80, 0xb9, @@ -2050,6 +2055,7 @@ static const key_parameters_t SAMPLE_RSA4096_SHA512_KEY = { 0x2d, 0x0a, }}, }; + /* ECDSAP256SHA256 (256b) @@ -2082,7 +2088,7 @@ static const key_parameters_t SAMPLE_ECDSA_P256_SHA256_KEY = { 0x66, 0xcb, 0x97, 0xcc, }}, .rdata = { .size = 68, .data = (uint8_t []){ - 01, 0x00, 0x03, 0x0d, + 0x01, 0x00, 0x03, 0x0d, 0xf2, 0xe0, 0xfb, 0x0b, 0x84, 0xc7, 0x4c, 0xcf, 0xf0, 0xee, 0xe8, 0x6b, 0xc9, 0x14, 0x93, 0xa1, 0xe1, 0x3f, 0x8c, 0xa4, 0xfb, 0xf3, 0xfa, 0x7c, 0xe7, 0x74, 0x57, 0xd0, 0xbe, 0x44, @@ -2142,6 +2148,7 @@ static const key_parameters_t SAMPLE_ECDSA_P256_SHA256_KEY = { 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, }}, }; + /* ECDSAP384SHA384 (384b) @@ -2178,7 +2185,7 @@ static const key_parameters_t SAMPLE_ECDSA_P384_SHA384_KEY = { 0x88, 0xb2, 0x44, 0xba, 0xce, 0xab, }}, .rdata = { .size = 100, .data = (uint8_t []){ - 01, 0x00, 0x03, 0x0e, + 0x01, 0x00, 0x03, 0x0e, 0xec, 0x27, 0x81, 0x92, 0x6a, 0x8c, 0xcf, 0x26, 0xe7, 0x46, 0xaf, 0x61, 0x5e, 0xdf, 0x0e, 0xa0, 0x83, 0xb0, 0xef, 0xbf, 0xcb, 0x63, 0x30, 0xdf, 0x5c, 0x63, 0x6c, 0xe8, 0x9a, 0x87, @@ -2247,6 +2254,7 @@ static const key_parameters_t SAMPLE_ECDSA_P384_SHA384_KEY = { 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, }}, }; + /* ED25519 (256b) @@ -2273,7 +2281,7 @@ static const key_parameters_t SAMPLE_ED25519_KEY = { 0x24, 0x0e, }}, .rdata = { .size = 36, .data = (uint8_t []){ - 01, 0x00, 0x03, 0x0f, + 0x01, 0x00, 0x03, 0x0f, 0x97, 0x4d, 0x96, 0xa2, 0x2d, 0x22, 0x4b, 0xc0, 0x1a, 0xdb, 0x91, 0x50, 0x91, 0x47, 0x7d, 0x44, 0xcc, 0xd9, 0x1c, 0x9a, 0x41, 0xa1, 0x14, 0x30, 0x01, 0x01, 0x17, 0xd5, 0x2c, 0x59, @@ -2316,6 +2324,7 @@ static const key_parameters_t SAMPLE_ED25519_KEY = { 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, }}, }; + /* ED448 (456b) @@ -2345,7 +2354,7 @@ static const key_parameters_t SAMPLE_ED448_KEY = { 0xed, 0x84, 0x1b, 0x5a, 0x63, 0x48, 0x80, }}, .rdata = { .size = 61, .data = (uint8_t []){ - 01, 0x00, 0x03, 0x10, + 0x01, 0x00, 0x03, 0x10, 0xdf, 0x2d, 0x2c, 0x09, 0x46, 0x4a, 0x23, 0xe0, 0xd2, 0xc9, 0x94, 0x13, 0x4d, 0xb8, 0x07, 0x38, 0x5a, 0x69, 0x3b, 0x36, 0x33, 0xd3, 0x58, 0x99, 0x41, 0x05, 0x54, 0x5b, 0x0f, 0x60, From d9f7ac6e378f5b64b9dfb7e64a6e371fc85ff2f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Tue, 20 Jan 2026 12:41:56 +0100 Subject: [PATCH 343/675] libngtcp2: update embedded library to v1.20.0 --- src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c | 3 +- src/contrib/libngtcp2/ngtcp2/crypto/shared.c | 102 +++++------ .../libngtcp2/ngtcp2/lib/ngtcp2_acktr.h | 5 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h | 12 +- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.c | 135 ++++++-------- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.h | 30 ++-- .../libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c | 47 +---- .../libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h | 26 +-- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c | 166 +++++++++--------- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h | 33 ++-- .../libngtcp2/ngtcp2/lib/ngtcp2_macro.h | 7 + src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c | 8 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.h | 2 +- .../libngtcp2/ngtcp2/lib/ngtcp2_qlog.c | 41 ++--- .../libngtcp2/ngtcp2/lib/ngtcp2_settings.h | 4 +- .../libngtcp2/ngtcp2/lib/ngtcp2_strm.c | 109 ++++-------- .../libngtcp2/ngtcp2/lib/ngtcp2_strm.h | 4 +- src/contrib/libngtcp2/ngtcp2/ngtcp2.h | 4 +- src/contrib/libngtcp2/ngtcp2/version.h | 4 +- 19 files changed, 323 insertions(+), 419 deletions(-) diff --git a/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c b/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c index 4e6990f87e..23f04f0112 100644 --- a/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c +++ b/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c @@ -35,6 +35,7 @@ #include #include +#include "ngtcp2_macro.h" #include "shared.h" ngtcp2_crypto_aead *ngtcp2_crypto_aead_aes_128_gcm(ngtcp2_crypto_aead *aead) { @@ -424,7 +425,7 @@ int ngtcp2_crypto_hp_mask(uint8_t *dest, const ngtcp2_crypto_cipher *hp, gnutls_cipher_set_iv(hd, (void *)sample, 16); - if (gnutls_cipher_encrypt2(hd, PLAINTEXT, sizeof(PLAINTEXT) - 1, buf, + if (gnutls_cipher_encrypt2(hd, PLAINTEXT, ngtcp2_strlen_lit(PLAINTEXT), buf, buflen) != 0) { return -1; } diff --git a/src/contrib/libngtcp2/ngtcp2/crypto/shared.c b/src/contrib/libngtcp2/ngtcp2/crypto/shared.c index 062efb45e9..1d8d1d68f7 100644 --- a/src/contrib/libngtcp2/ngtcp2/crypto/shared.c +++ b/src/contrib/libngtcp2/ngtcp2/crypto/shared.c @@ -53,9 +53,9 @@ int ngtcp2_crypto_hkdf_expand_label(uint8_t *dest, size_t destlen, *p++ = (uint8_t)(destlen / 256); *p++ = (uint8_t)(destlen % 256); - *p++ = (uint8_t)(sizeof(LABEL) - 1 + labellen); - memcpy(p, LABEL, sizeof(LABEL) - 1); - p += sizeof(LABEL) - 1; + *p++ = (uint8_t)(ngtcp2_strlen_lit(LABEL) + labellen); + memcpy(p, LABEL, ngtcp2_strlen_lit(LABEL)); + p += ngtcp2_strlen_lit(LABEL); memcpy(p, label, labellen); p += labellen; *p++ = 0; @@ -88,11 +88,11 @@ int ngtcp2_crypto_derive_initial_secrets(uint8_t *rx_secret, uint8_t *tx_secret, case NGTCP2_PROTO_VER_V1: default: salt = (const uint8_t *)NGTCP2_INITIAL_SALT_V1; - saltlen = sizeof(NGTCP2_INITIAL_SALT_V1) - 1; + saltlen = ngtcp2_strlen_lit(NGTCP2_INITIAL_SALT_V1); break; case NGTCP2_PROTO_VER_V2: salt = (const uint8_t *)NGTCP2_INITIAL_SALT_V2; - saltlen = sizeof(NGTCP2_INITIAL_SALT_V2) - 1; + saltlen = ngtcp2_strlen_lit(NGTCP2_INITIAL_SALT_V2); break; } @@ -111,10 +111,12 @@ int ngtcp2_crypto_derive_initial_secrets(uint8_t *rx_secret, uint8_t *tx_secret, if (ngtcp2_crypto_hkdf_expand_label( client_secret, NGTCP2_CRYPTO_INITIAL_SECRETLEN, &ctx.md, initial_secret, - NGTCP2_CRYPTO_INITIAL_SECRETLEN, CLABEL, sizeof(CLABEL) - 1) != 0 || + NGTCP2_CRYPTO_INITIAL_SECRETLEN, CLABEL, + ngtcp2_strlen_lit(CLABEL)) != 0 || ngtcp2_crypto_hkdf_expand_label( server_secret, NGTCP2_CRYPTO_INITIAL_SECRETLEN, &ctx.md, initial_secret, - NGTCP2_CRYPTO_INITIAL_SECRETLEN, SLABEL, sizeof(SLABEL) - 1) != 0) { + NGTCP2_CRYPTO_INITIAL_SECRETLEN, SLABEL, + ngtcp2_strlen_lit(SLABEL)) != 0) { return -1; } @@ -148,19 +150,19 @@ int ngtcp2_crypto_derive_packet_protection_key( switch (version) { case NGTCP2_PROTO_VER_V2: key_label = KEY_LABEL_V2; - key_labellen = sizeof(KEY_LABEL_V2) - 1; + key_labellen = ngtcp2_strlen_lit(KEY_LABEL_V2); iv_label = IV_LABEL_V2; - iv_labellen = sizeof(IV_LABEL_V2) - 1; + iv_labellen = ngtcp2_strlen_lit(IV_LABEL_V2); hp_key_label = HP_KEY_LABEL_V2; - hp_key_labellen = sizeof(HP_KEY_LABEL_V2) - 1; + hp_key_labellen = ngtcp2_strlen_lit(HP_KEY_LABEL_V2); break; default: key_label = KEY_LABEL_V1; - key_labellen = sizeof(KEY_LABEL_V1) - 1; + key_labellen = ngtcp2_strlen_lit(KEY_LABEL_V1); iv_label = IV_LABEL_V1; - iv_labellen = sizeof(IV_LABEL_V1) - 1; + iv_labellen = ngtcp2_strlen_lit(IV_LABEL_V1); hp_key_label = HP_KEY_LABEL_V1; - hp_key_labellen = sizeof(HP_KEY_LABEL_V1) - 1; + hp_key_labellen = ngtcp2_strlen_lit(HP_KEY_LABEL_V1); } if (ngtcp2_crypto_hkdf_expand_label(key, keylen, md, secret, secretlen, @@ -194,11 +196,11 @@ int ngtcp2_crypto_update_traffic_secret(uint8_t *dest, uint32_t version, switch (version) { case NGTCP2_PROTO_VER_V2: label = LABEL_V2; - labellen = sizeof(LABEL_V2) - 1; + labellen = ngtcp2_strlen_lit(LABEL_V2); break; default: label = LABEL; - labellen = sizeof(LABEL) - 1; + labellen = ngtcp2_strlen_lit(LABEL); } if (ngtcp2_crypto_hkdf_expand_label(dest, secretlen, md, secret, secretlen, @@ -592,11 +594,11 @@ int ngtcp2_crypto_derive_and_install_initial_key( case NGTCP2_PROTO_VER_V1: default: retry_key = (const uint8_t *)NGTCP2_RETRY_KEY_V1; - retry_noncelen = sizeof(NGTCP2_RETRY_NONCE_V1) - 1; + retry_noncelen = ngtcp2_strlen_lit(NGTCP2_RETRY_NONCE_V1); break; case NGTCP2_PROTO_VER_V2: retry_key = (const uint8_t *)NGTCP2_RETRY_KEY_V2; - retry_noncelen = sizeof(NGTCP2_RETRY_NONCE_V2) - 1; + retry_noncelen = ngtcp2_strlen_lit(NGTCP2_RETRY_NONCE_V2); break; } @@ -845,7 +847,7 @@ int ngtcp2_crypto_generate_stateless_reset_token(uint8_t *token, if (ngtcp2_crypto_hkdf(token, NGTCP2_STATELESS_RESET_TOKENLEN, ngtcp2_crypto_md_sha256(&md), secret, secretlen, cid->data, cid->datalen, info, - sizeof(info) - 1) != 0) { + ngtcp2_strlen_lit(info)) != 0) { return -1; } @@ -865,8 +867,8 @@ static int crypto_derive_token_key(uint8_t *key, size_t keylen, uint8_t *iv, uint8_t *p; assert(ngtcp2_crypto_md_hashlen(md) == sizeof(intsecret)); - assert(info_prefixlen + sizeof(key_info_suffix) - 1 <= sizeof(info)); - assert(info_prefixlen + sizeof(iv_info_suffix) - 1 <= sizeof(info)); + assert(info_prefixlen + ngtcp2_strlen_lit(key_info_suffix) <= sizeof(info)); + assert(info_prefixlen + ngtcp2_strlen_lit(iv_info_suffix) <= sizeof(info)); if (ngtcp2_crypto_hkdf_extract(intsecret, md, secret, secretlen, salt, saltlen) != 0) { @@ -876,8 +878,8 @@ static int crypto_derive_token_key(uint8_t *key, size_t keylen, uint8_t *iv, memcpy(info, info_prefix, info_prefixlen); p = info + info_prefixlen; - memcpy(p, key_info_suffix, sizeof(key_info_suffix) - 1); - p += sizeof(key_info_suffix) - 1; + memcpy(p, key_info_suffix, ngtcp2_strlen_lit(key_info_suffix)); + p += ngtcp2_strlen_lit(key_info_suffix); if (ngtcp2_crypto_hkdf_expand(key, keylen, md, intsecret, sizeof(intsecret), info, (size_t)(p - info)) != 0) { @@ -886,8 +888,8 @@ static int crypto_derive_token_key(uint8_t *key, size_t keylen, uint8_t *iv, p = info + info_prefixlen; - memcpy(p, iv_info_suffix, sizeof(iv_info_suffix) - 1); - p += sizeof(iv_info_suffix) - 1; + memcpy(p, iv_info_suffix, ngtcp2_strlen_lit(iv_info_suffix)); + p += ngtcp2_strlen_lit(iv_info_suffix); if (ngtcp2_crypto_hkdf_expand(iv, ivlen, md, intsecret, sizeof(intsecret), info, (size_t)(p - info)) != 0) { @@ -963,10 +965,10 @@ ngtcp2_ssize ngtcp2_crypto_generate_retry_token( assert(sizeof(key) == keylen); assert(sizeof(iv) == ivlen); - if (crypto_derive_token_key(key, keylen, iv, ivlen, &md, secret, secretlen, - rand_data, sizeof(rand_data), - retry_token_info_prefix, - sizeof(retry_token_info_prefix) - 1) != 0) { + if (crypto_derive_token_key( + key, keylen, iv, ivlen, &md, secret, secretlen, rand_data, + sizeof(rand_data), retry_token_info_prefix, + ngtcp2_strlen_lit(retry_token_info_prefix)) != 0) { return -1; } @@ -1040,10 +1042,10 @@ int ngtcp2_crypto_verify_retry_token( assert(sizeof(key) == keylen); assert(sizeof(iv) == ivlen); - if (crypto_derive_token_key(key, keylen, iv, ivlen, &md, secret, secretlen, - rand_data, NGTCP2_CRYPTO_TOKEN_RAND_DATALEN, - retry_token_info_prefix, - sizeof(retry_token_info_prefix) - 1) != 0) { + if (crypto_derive_token_key( + key, keylen, iv, ivlen, &md, secret, secretlen, rand_data, + NGTCP2_CRYPTO_TOKEN_RAND_DATALEN, retry_token_info_prefix, + ngtcp2_strlen_lit(retry_token_info_prefix)) != 0) { return -1; } @@ -1143,10 +1145,10 @@ ngtcp2_ssize ngtcp2_crypto_generate_retry_token2( assert(sizeof(key) == keylen); assert(sizeof(iv) == ivlen); - if (crypto_derive_token_key(key, keylen, iv, ivlen, &md, secret, secretlen, - rand_data, sizeof(rand_data), - retry_token_info_prefix2, - sizeof(retry_token_info_prefix2) - 1) != 0) { + if (crypto_derive_token_key( + key, keylen, iv, ivlen, &md, secret, secretlen, rand_data, + sizeof(rand_data), retry_token_info_prefix2, + ngtcp2_strlen_lit(retry_token_info_prefix2)) != 0) { return -1; } @@ -1221,10 +1223,10 @@ int ngtcp2_crypto_verify_retry_token2( assert(sizeof(key) == keylen); assert(sizeof(iv) == ivlen); - if (crypto_derive_token_key(key, keylen, iv, ivlen, &md, secret, secretlen, - rand_data, NGTCP2_CRYPTO_TOKEN_RAND_DATALEN, - retry_token_info_prefix2, - sizeof(retry_token_info_prefix2) - 1) != 0) { + if (crypto_derive_token_key( + key, keylen, iv, ivlen, &md, secret, secretlen, rand_data, + NGTCP2_CRYPTO_TOKEN_RAND_DATALEN, retry_token_info_prefix2, + ngtcp2_strlen_lit(retry_token_info_prefix2)) != 0) { return NGTCP2_CRYPTO_ERR_INTERNAL; } @@ -1366,10 +1368,10 @@ static ngtcp2_ssize crypto_generate_regular_token( assert(sizeof(key) == keylen); assert(sizeof(iv) == ivlen); - if (crypto_derive_token_key(key, keylen, iv, ivlen, &md, secret, secretlen, - rand_data, sizeof(rand_data), - regular_token_info_prefix, - sizeof(regular_token_info_prefix) - 1) != 0) { + if (crypto_derive_token_key( + key, keylen, iv, ivlen, &md, secret, secretlen, rand_data, + sizeof(rand_data), regular_token_info_prefix, + ngtcp2_strlen_lit(regular_token_info_prefix)) != 0) { return -1; } @@ -1442,10 +1444,10 @@ static ngtcp2_ssize crypto_verify_regular_token( assert(sizeof(key) == keylen); assert(sizeof(iv) == ivlen); - if (crypto_derive_token_key(key, keylen, iv, ivlen, &md, secret, secretlen, - rand_data, NGTCP2_CRYPTO_TOKEN_RAND_DATALEN, - regular_token_info_prefix, - sizeof(regular_token_info_prefix) - 1) != 0) { + if (crypto_derive_token_key( + key, keylen, iv, ivlen, &md, secret, secretlen, rand_data, + NGTCP2_CRYPTO_TOKEN_RAND_DATALEN, regular_token_info_prefix, + ngtcp2_strlen_lit(regular_token_info_prefix)) != 0) { return NGTCP2_CRYPTO_ERR_INTERNAL; } @@ -1601,11 +1603,11 @@ ngtcp2_ssize ngtcp2_crypto_write_retry(uint8_t *dest, size_t destlen, case NGTCP2_PROTO_VER_V1: default: key = (const uint8_t *)NGTCP2_RETRY_KEY_V1; - noncelen = sizeof(NGTCP2_RETRY_NONCE_V1) - 1; + noncelen = ngtcp2_strlen_lit(NGTCP2_RETRY_NONCE_V1); break; case NGTCP2_PROTO_VER_V2: key = (const uint8_t *)NGTCP2_RETRY_KEY_V2; - noncelen = sizeof(NGTCP2_RETRY_NONCE_V2) - 1; + noncelen = ngtcp2_strlen_lit(NGTCP2_RETRY_NONCE_V2); break; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h index 6505a17594..1a591c5ead 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h @@ -120,8 +120,6 @@ typedef struct ngtcp2_acktr { packet number. */ ngtcp2_ksl ents; ngtcp2_log *log; - /* flags is bitwise OR of zero, or more of NGTCP2_ACKTR_FLAG_*. */ - uint16_t flags; /* first_unacked_ts is timestamp when ngtcp2_acktr_entry is added first time after the last outgoing ACK frame. */ ngtcp2_tstamp first_unacked_ts; @@ -148,6 +146,9 @@ typedef struct ngtcp2_acktr { uint64_t ce; } ack; } ecn; + + /* flags is bitwise OR of zero, or more of NGTCP2_ACKTR_FLAG_*. */ + uint16_t flags; } ngtcp2_acktr; /* diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h index 5a74921c19..98b23122ff 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h @@ -75,8 +75,8 @@ typedef struct ngtcp2_cc_bbr { ngtcp2_tstamp min_rtt_stamp; ngtcp2_tstamp probe_rtt_done_stamp; int probe_rtt_round_done; - uint64_t prior_cwnd; int idle_restart; + uint64_t prior_cwnd; ngtcp2_tstamp extra_acked_interval_start; uint64_t extra_acked_delivered; @@ -91,8 +91,8 @@ typedef struct ngtcp2_cc_bbr { /* Round counting */ uint64_t next_round_delivered; - int round_start; uint64_t round_count; + int round_start; /* Full pipe */ uint64_t full_bw; @@ -111,7 +111,6 @@ typedef struct ngtcp2_cc_bbr { uint64_t undo_inflight_shortterm; uint64_t undo_inflight_longterm; - int loss_round_start; uint64_t loss_round_delivered; uint64_t rounds_since_bw_probe; uint64_t max_bw; @@ -125,17 +124,18 @@ typedef struct ngtcp2_cc_bbr { ngtcp2_tstamp cycle_stamp; ngtcp2_bbr_ack_phase ack_phase; ngtcp2_duration bw_probe_wait; - int bw_probe_samples; size_t bw_probe_up_rounds; uint64_t bw_probe_up_acks; uint64_t inflight_longterm; - int probe_rtt_expired; ngtcp2_duration probe_rtt_min_delay; ngtcp2_tstamp probe_rtt_min_stamp; - int in_loss_recovery; uint64_t round_count_at_recovery; uint64_t max_inflight; uint64_t bdp; + int loss_round_start; + int bw_probe_samples; + int probe_rtt_expired; + int in_loss_recovery; } ngtcp2_cc_bbr; void ngtcp2_cc_bbr_init(ngtcp2_cc_bbr *bbr, ngtcp2_log *log, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c index fdf9516c3e..84a41943a8 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c @@ -2174,18 +2174,14 @@ static uint8_t conn_pkt_flags_short(ngtcp2_conn *conn) { } /* - * conn_cut_crypto_frame splits (*pfrc)->fr.stream by removing - * |removed_data| from (*pfrc)->fr.stream.data[0]. - * (*pfrc)->fr.stream.data[0] must contain |removed_data|, and - * (*pfrc)->fr.stream.datacnt >= 1. New ngtcp2_frame_chain object - * that contains |removed_data| is created, and pushed to - * |crypto_strm| via ngtcp2_strm_streamfrq_push. Because - * (*pfrc)->fr.stream.datacnt cannot be changed, if it is not 1, new - * ngtcp2_frame_chain object is created to contain the data before - * |removed_data|. Then *pfrc is deleted, and the newly created - * object is assigned to *pfrc instead. If there are data following - * the removed part of data, new ngtcp2_frame_chain object is created - * for it, and (*pfrc)->next points to the object. + * conn_cut_crypto_frame splits frc->fr.stream by removing + * |removed_data| from frc->fr.stream.data[0]. frc->fr.stream.data[0] + * must contain |removed_data|, and frc->fr.stream.datacnt >= 1. New + * ngtcp2_frame_chain object that contains |removed_data| is created, + * and pushed to |crypto_strm| via ngtcp2_strm_streamfrq_push. If + * there are data following the removed part of data, new + * ngtcp2_frame_chain object is created for it, and frc->next points + * to the object. * * This function returns 0 if it succeeds, or one of the following * negative error codes: @@ -2193,13 +2189,13 @@ static uint8_t conn_pkt_flags_short(ngtcp2_conn *conn) { * NGTCP2_ERR_NOMEM * Out of memory */ -static int conn_cut_crypto_frame(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, +static int conn_cut_crypto_frame(ngtcp2_conn *conn, ngtcp2_frame_chain *frc, ngtcp2_strm *crypto_strm, const ngtcp2_vec *removed_data) { - ngtcp2_vec *data = (*pfrc)->fr.stream.data; - size_t datacnt = (*pfrc)->fr.stream.datacnt; + ngtcp2_vec *data = frc->fr.stream.data; + size_t datacnt = frc->fr.stream.datacnt; size_t ndatacnt; - ngtcp2_frame_chain *left_frc, *right_frc = NULL, *removed_frc; + ngtcp2_frame_chain *right_frc = NULL, *removed_frc; size_t offset; int rv; @@ -2220,7 +2216,7 @@ static int conn_cut_crypto_frame(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, removed_frc->fr.stream.flags = 0; removed_frc->fr.stream.fin = 0; removed_frc->fr.stream.stream_id = 0; - removed_frc->fr.stream.offset = (*pfrc)->fr.stream.offset + offset; + removed_frc->fr.stream.offset = frc->fr.stream.offset + offset; removed_frc->fr.stream.datacnt = 1; removed_frc->fr.stream.data[0] = (ngtcp2_vec){ .base = data->base + offset, @@ -2259,35 +2255,9 @@ static int conn_cut_crypto_frame(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, assert(1 == datacnt); } - /* We cannot change (*pfrc)->fr.stream.datacnt. If it changes, - create new ngtcp2_frame_chain. */ - if ((*pfrc)->fr.stream.datacnt == 1) { - (*pfrc)->fr.stream.data[0].len = offset; - (*pfrc)->next = right_frc; - return 0; - } - - rv = ngtcp2_frame_chain_stream_datacnt_objalloc_new( - &left_frc, 1, &conn->frc_objalloc, conn->mem); - if (rv != 0) { - ngtcp2_frame_chain_objalloc_del(right_frc, &conn->frc_objalloc, conn->mem); - return rv; - } - - left_frc->fr.stream.type = NGTCP2_FRAME_CRYPTO; - left_frc->fr.stream.flags = 0; - left_frc->fr.stream.fin = 0; - left_frc->fr.stream.stream_id = 0; - left_frc->fr.stream.offset = (*pfrc)->fr.stream.offset; - left_frc->fr.stream.datacnt = 1; - left_frc->fr.stream.data[0] = (ngtcp2_vec){ - .base = data[0].base, - .len = offset, - }; - left_frc->next = right_frc; - - ngtcp2_frame_chain_objalloc_del(*pfrc, &conn->frc_objalloc, conn->mem); - *pfrc = left_frc; + frc->fr.stream.datacnt = 1; + frc->fr.stream.data[0].len = offset; + frc->next = right_frc; return 0; } @@ -2371,7 +2341,7 @@ conn_crumble_initial_crypto(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, datacnt = ngtcp2_pkt_remove_vec_partial( &removed_data, data, datacnt, offsets, &conn->pcg, &server_name); - rv = conn_cut_crypto_frame(conn, pfrc, crypto_strm, &removed_data); + rv = conn_cut_crypto_frame(conn, *pfrc, crypto_strm, &removed_data); if (rv != 0) { ngtcp2_frame_chain_objalloc_del(*pfrc, &conn->frc_objalloc, conn->mem); return rv; @@ -2635,7 +2605,9 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, if (!(rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING) && pktns->rtb.num_retransmittable && pktns->rtb.probe_pkt_left) { - num_reclaimed = ngtcp2_rtb_reclaim_on_pto(&pktns->rtb, conn, pktns, 1); + num_reclaimed = ngtcp2_rtb_reclaim_on_pto( + &pktns->rtb, conn, pktns, + !conn->server && type == NGTCP2_PKT_INITIAL ? 2 : 1); if (num_reclaimed < 0) { ngtcp2_frame_chain_list_objalloc_del(frq, &conn->frc_objalloc, conn->mem); @@ -5566,14 +5538,10 @@ static int conn_recv_ack(ngtcp2_conn *conn, ngtcp2_pktns *pktns, ngtcp2_ack *fr, num_acked = ngtcp2_rtb_recv_ack(&pktns->rtb, fr, &conn->cstat, conn, pktns, pkt_ts, ts); - if (num_acked < 0) { + if (num_acked <= 0) { return (int)num_acked; } - if (num_acked == 0) { - return 0; - } - pktns->rtb.probe_pkt_left = 0; if (cstat->pto_count && @@ -11744,21 +11712,18 @@ int ngtcp2_conn_set_0rtt_remote_transport_params( /* These parameters are treated specially. If server accepts early data, it must not set values for these parameters that are smaller than these remembered values. */ - conn->early.transport_params.initial_max_streams_bidi = - params->initial_max_streams_bidi; - conn->early.transport_params.initial_max_streams_uni = - params->initial_max_streams_uni; - conn->early.transport_params.initial_max_stream_data_bidi_local = - params->initial_max_stream_data_bidi_local; - conn->early.transport_params.initial_max_stream_data_bidi_remote = - params->initial_max_stream_data_bidi_remote; - conn->early.transport_params.initial_max_stream_data_uni = - params->initial_max_stream_data_uni; - conn->early.transport_params.initial_max_data = params->initial_max_data; - conn->early.transport_params.active_connection_id_limit = - params->active_connection_id_limit; - conn->early.transport_params.max_datagram_frame_size = - params->max_datagram_frame_size; + conn->early.transport_params = (ngtcp2_early_transport_params){ + .initial_max_streams_bidi = params->initial_max_streams_bidi, + .initial_max_streams_uni = params->initial_max_streams_uni, + .initial_max_stream_data_bidi_local = + params->initial_max_stream_data_bidi_local, + .initial_max_stream_data_bidi_remote = + params->initial_max_stream_data_bidi_remote, + .initial_max_stream_data_uni = params->initial_max_stream_data_uni, + .initial_max_data = params->initial_max_data, + .active_connection_id_limit = params->active_connection_id_limit, + .max_datagram_frame_size = params->max_datagram_frame_size, + }; conn_sync_stream_id_limit(conn); @@ -12003,12 +11968,17 @@ ngtcp2_ssize ngtcp2_conn_writev_stream_versioned( return NGTCP2_ERR_INVALID_ARGUMENT; } - vmsg.type = NGTCP2_VMSG_TYPE_STREAM; - vmsg.stream.strm = strm; - vmsg.stream.flags = flags; - vmsg.stream.data = datav; - vmsg.stream.datacnt = datavcnt; - vmsg.stream.pdatalen = pdatalen; + vmsg = (ngtcp2_vmsg){ + .type = NGTCP2_VMSG_TYPE_STREAM, + .stream = + { + .strm = strm, + .data = datav, + .datacnt = datavcnt, + .pdatalen = pdatalen, + .flags = flags, + }, + }; pvmsg = &vmsg; } @@ -12081,12 +12051,17 @@ ngtcp2_ssize ngtcp2_conn_writev_datagram_versioned( return NGTCP2_ERR_INVALID_ARGUMENT; } - vmsg.type = NGTCP2_VMSG_TYPE_DATAGRAM; - vmsg.datagram.dgram_id = dgram_id; - vmsg.datagram.flags = flags; - vmsg.datagram.data = datav; - vmsg.datagram.datacnt = datavcnt; - vmsg.datagram.paccepted = paccepted; + vmsg = (ngtcp2_vmsg){ + .type = NGTCP2_VMSG_TYPE_DATAGRAM, + .datagram = + { + .data = datav, + .datacnt = datavcnt, + .dgram_id = dgram_id, + .paccepted = paccepted, + .flags = flags, + }, + }; if (flags & NGTCP2_WRITE_DATAGRAM_FLAG_PADDING) { wflags = NGTCP2_WRITE_PKT_FLAG_PADDING_IF_NOT_EMPTY; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h index 6c11e32417..a6f7616ee0 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h @@ -114,7 +114,7 @@ typedef enum { typedef struct ngtcp2_path_challenge_entry { ngtcp2_path_storage ps; - uint8_t data[8]; + uint8_t data[NGTCP2_PATH_CHALLENGE_DATALEN]; } ngtcp2_path_challenge_entry; void ngtcp2_path_challenge_entry_init(ngtcp2_path_challenge_entry *pcent, @@ -387,14 +387,14 @@ struct ngtcp2_conn { ngtcp2_tstamp last_max_data_ts; struct { - /* state is the state of ECN validation */ - ngtcp2_ecn_state state; /* validation_start_ts is the timestamp when ECN validation is started. It is UINT64_MAX if it has not started yet. */ ngtcp2_tstamp validation_start_ts; /* dgram_sent is the number of UDP datagram sent during ECN validation period. */ size_t dgram_sent; + /* state is the state of ECN validation */ + ngtcp2_ecn_state state; } ecn; struct { @@ -545,13 +545,13 @@ struct ngtcp2_conn { /* retry_aead_ctx is AEAD cipher context to verify Retry packet integrity. It is used by client only. */ ngtcp2_crypto_aead_ctx retry_aead_ctx; + /* decryption_failure_count is the number of received packets that + fail authentication. */ + uint64_t decryption_failure_count; /* tls_error is TLS related error. */ int tls_error; /* tls_alert is TLS alert generated by the local endpoint. */ uint8_t tls_alert; - /* decryption_failure_count is the number of received packets that - fail authentication. */ - uint64_t decryption_failure_count; } crypto; /* pkt contains the packet intermediate construction data to support @@ -561,13 +561,13 @@ struct ngtcp2_conn { ngtcp2_pkt_hd hd; ngtcp2_ppe ppe; ngtcp2_frame_chain **pfrc; + ngtcp2_ssize hs_spktlen; int pkt_empty; int hd_logged; + int require_padding; /* flags is bitwise OR of zero or more of NGTCP2_RTB_ENTRY_FLAG_*. */ uint16_t rtb_entry_flags; - ngtcp2_ssize hs_spktlen; - int require_padding; } pkt; struct { @@ -623,7 +623,6 @@ struct ngtcp2_conn { ngtcp2_log log; ngtcp2_qlog qlog; ngtcp2_rst rst; - ngtcp2_cc_algo cc_algo; union { ngtcp2_cc cc; ngtcp2_cc_reno reno; @@ -650,6 +649,7 @@ struct ngtcp2_conn { uint32_t negotiated_version; /* flags is bitwise OR of zero or more of NGTCP2_CONN_FLAG_*. */ uint32_t flags; + ngtcp2_cc_algo cc_algo; int server; }; @@ -661,9 +661,6 @@ typedef enum ngtcp2_vmsg_type { typedef struct ngtcp2_vmsg_stream { /* strm is a stream that data is sent to. */ ngtcp2_strm *strm; - /* flags is bitwise OR of zero or more of - NGTCP2_WRITE_STREAM_FLAG_*. */ - uint32_t flags; /* data is the pointer to ngtcp2_vec array which contains the stream data to send. */ const ngtcp2_vec *data; @@ -672,6 +669,9 @@ typedef struct ngtcp2_vmsg_stream { /* pdatalen is the pointer to the variable which the number of bytes written is assigned to if pdatalen is not NULL. */ ngtcp2_ssize *pdatalen; + /* flags is bitwise OR of zero or more of + NGTCP2_WRITE_STREAM_FLAG_*. */ + uint32_t flags; } ngtcp2_vmsg_stream; typedef struct ngtcp2_vmsg_datagram { @@ -682,12 +682,12 @@ typedef struct ngtcp2_vmsg_datagram { size_t datacnt; /* dgram_id is an opaque identifier chosen by an application. */ uint64_t dgram_id; - /* flags is bitwise OR of zero or more of - NGTCP2_WRITE_DATAGRAM_FLAG_*. */ - uint32_t flags; /* paccepted is the pointer to the variable which, if it is not NULL, is assigned nonzero if data is written to a packet. */ int *paccepted; + /* flags is bitwise OR of zero or more of + NGTCP2_WRITE_DATAGRAM_FLAG_*. */ + uint32_t flags; } ngtcp2_vmsg_datagram; typedef struct ngtcp2_vmsg { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c index dc17d576b8..ec0839b7a4 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c @@ -36,7 +36,7 @@ int ngtcp2_frame_chain_objalloc_new(ngtcp2_frame_chain **pfrc, return NGTCP2_ERR_NOMEM; } - ngtcp2_frame_chain_init(*pfrc); + ngtcp2_frame_chain_init(*pfrc, NGTCP2_FRAME_CHAIN_FLAG_NONE); return 0; } @@ -48,7 +48,7 @@ int ngtcp2_frame_chain_extralen_new(ngtcp2_frame_chain **pfrc, size_t extralen, return NGTCP2_ERR_NOMEM; } - ngtcp2_frame_chain_init(*pfrc); + ngtcp2_frame_chain_init(*pfrc, NGTCP2_FRAME_CHAIN_FLAG_MALLOC); return 0; } @@ -110,21 +110,6 @@ int ngtcp2_frame_chain_new_token_objalloc_new(ngtcp2_frame_chain **pfrc, return 0; } -void ngtcp2_frame_chain_del(ngtcp2_frame_chain *frc, const ngtcp2_mem *mem) { - ngtcp2_frame_chain_binder *binder; - - if (frc == NULL) { - return; - } - - binder = frc->binder; - if (binder && --binder->refcount == 0) { - ngtcp2_mem_free(mem, binder); - } - - ngtcp2_mem_free(mem, frc); -} - void ngtcp2_frame_chain_objalloc_del(ngtcp2_frame_chain *frc, ngtcp2_objalloc *objalloc, const ngtcp2_mem *mem) { @@ -134,39 +119,23 @@ void ngtcp2_frame_chain_objalloc_del(ngtcp2_frame_chain *frc, return; } - switch (frc->fr.hd.type) { - case NGTCP2_FRAME_CRYPTO: - case NGTCP2_FRAME_STREAM: - if (frc->fr.stream.datacnt > NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES) { - ngtcp2_frame_chain_del(frc, mem); - - return; - } - - break; - case NGTCP2_FRAME_NEW_TOKEN: - if (frc->fr.new_token.tokenlen > NGTCP2_FRAME_CHAIN_NEW_TOKEN_THRES) { - ngtcp2_frame_chain_del(frc, mem); - - return; - } - - break; - } - binder = frc->binder; if (binder && --binder->refcount == 0) { ngtcp2_mem_free(mem, binder); } - frc->binder = NULL; + if (frc->flags & NGTCP2_FRAME_CHAIN_FLAG_MALLOC) { + ngtcp2_mem_free(mem, frc); + return; + } ngtcp2_objalloc_frame_chain_release(objalloc, frc); } -void ngtcp2_frame_chain_init(ngtcp2_frame_chain *frc) { +void ngtcp2_frame_chain_init(ngtcp2_frame_chain *frc, uint32_t flags) { frc->next = NULL; frc->binder = NULL; + frc->flags = flags; } void ngtcp2_frame_chain_list_objalloc_del(ngtcp2_frame_chain *frc, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h index aa8ce49583..5342b9fa7b 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h @@ -70,6 +70,12 @@ int ngtcp2_frame_chain_binder_new(ngtcp2_frame_chain_binder **pbinder, #define NGTCP2_FRAME_CHAIN_NEW_TOKEN_THRES \ (NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES * sizeof(ngtcp2_vec)) +/* NGTCP2_FRAME_CHAIN_FLAG_NONE indicates no flag is set. */ +#define NGTCP2_FRAME_CHAIN_FLAG_NONE 0x0 +/* NGTCP2_FRAME_CHAIN_FLAG_MALLOC indicates that ngtcp2_frame_chain is + allocated by ngtcp2_mem_malloc. */ +#define NGTCP2_FRAME_CHAIN_FLAG_MALLOC 0x1 + typedef struct ngtcp2_frame_chain ngtcp2_frame_chain; /* @@ -80,6 +86,7 @@ struct ngtcp2_frame_chain { struct { ngtcp2_frame_chain *next; ngtcp2_frame_chain_binder *binder; + uint32_t flags; ngtcp2_frame fr; uint8_t buf[sizeof(ngtcp2_vec) * NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES]; }; @@ -125,8 +132,6 @@ int ngtcp2_frame_chain_extralen_new(ngtcp2_frame_chain **pfrc, size_t extralen, * words, |datacnt| <= NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES, * ngtcp2_frame_chain_objalloc_new is called internally. Otherwise, * ngtcp2_frame_chain_extralen_new is used and objalloc is not used. - * Therefore, it is important to call ngtcp2_frame_chain_objalloc_del - * without changing datacnt field. */ int ngtcp2_frame_chain_stream_datacnt_objalloc_new(ngtcp2_frame_chain **pfrc, size_t datacnt, @@ -147,24 +152,19 @@ int ngtcp2_frame_chain_new_token_objalloc_new(ngtcp2_frame_chain **pfrc, const ngtcp2_mem *mem); /* - * ngtcp2_frame_chain_del deallocates |frc|. It also deallocates the - * memory pointed by |frc|. - */ -void ngtcp2_frame_chain_del(ngtcp2_frame_chain *frc, const ngtcp2_mem *mem); - -/* - * ngtcp2_frame_chain_objalloc_del adds |frc| to |objalloc| for reuse. - * It might just delete |frc| depending on the frame type and the size - * of |frc|. + * ngtcp2_frame_chain_objalloc_del adds |frc| to |objalloc| for reuse + * if NGTCP2_FRAME_CHAIN_FLAG_MALLOC is not set in |frc|->flags. + * Otherwise, it deletes |frc|. */ void ngtcp2_frame_chain_objalloc_del(ngtcp2_frame_chain *frc, ngtcp2_objalloc *objalloc, const ngtcp2_mem *mem); /* - * ngtcp2_frame_chain_init initializes |frc|. + * ngtcp2_frame_chain_init initializes |frc|. |flags| is bitwise-OR + * of zero or more of NGTCP2_FRAME_CHAIN_FLAG_*. */ -void ngtcp2_frame_chain_init(ngtcp2_frame_chain *frc); +void ngtcp2_frame_chain_init(ngtcp2_frame_chain *frc, uint32_t flags); /* * ngtcp2_frame_chain_list_objalloc_del adds all ngtcp2_frame_chain diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c index 03a95b9319..0c1c0a36c5 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c @@ -58,11 +58,13 @@ void ngtcp2_ksl_init(ngtcp2_ksl *ksl, ngtcp2_ksl_compar compar, aligned_keylen = (keylen + 0x7u) & ~0x7u; + assert(aligned_keylen <= UINT16_MAX); + ngtcp2_objalloc_init(&ksl->blkalloc, (ksl_blklen(aligned_keylen) + 0xfu) & ~(uintptr_t)0xfu, mem); - ksl->head = NULL; + ksl->root = NULL; ksl->front = ksl->back = NULL; ksl->compar = compar; ksl->search = search; @@ -80,6 +82,7 @@ static ngtcp2_ksl_blk *ksl_blk_objalloc_new(ngtcp2_ksl *ksl) { } blk->keys = (uint8_t *)blk + sizeof(*blk); + blk->aligned_keylen = (uint16_t)ksl->aligned_keylen; return blk; } @@ -88,19 +91,19 @@ static void ksl_blk_objalloc_del(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk) { ngtcp2_objalloc_ksl_blk_release(&ksl->blkalloc, blk); } -static int ksl_head_init(ngtcp2_ksl *ksl) { - ngtcp2_ksl_blk *head = ksl_blk_objalloc_new(ksl); +static int ksl_root_init(ngtcp2_ksl *ksl) { + ngtcp2_ksl_blk *root = ksl_blk_objalloc_new(ksl); - if (!head) { + if (!root) { return NGTCP2_ERR_NOMEM; } - head->next = head->prev = NULL; - head->n = 0; - head->leaf = 1; + root->next = root->prev = NULL; + root->n = 0; + root->leaf = 1; - ksl->head = head; - ksl->front = ksl->back = head; + ksl->root = root; + ksl->front = ksl->back = root; return 0; } @@ -123,12 +126,12 @@ static void ksl_free_blk(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk) { #endif /* defined(NOMEMPOOL) */ void ngtcp2_ksl_free(ngtcp2_ksl *ksl) { - if (!ksl || !ksl->head) { + if (!ksl || !ksl->root) { return; } #ifdef NOMEMPOOL - ksl_free_blk(ksl, ksl->head); + ksl_free_blk(ksl, ksl->root); #endif /* defined(NOMEMPOOL) */ ngtcp2_objalloc_free(&ksl->blkalloc); @@ -198,22 +201,21 @@ static int ksl_split_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { memmove(blk->nodes + (i + 2), blk->nodes + (i + 1), (blk->n - (i + 1)) * sizeof(ngtcp2_ksl_node)); - memmove(blk->keys + (i + 2) * ksl->aligned_keylen, - blk->keys + (i + 1) * ksl->aligned_keylen, - (blk->n - (i + 1)) * ksl->aligned_keylen); + memmove(blk->keys + (i + 1) * ksl->aligned_keylen, + blk->keys + i * ksl->aligned_keylen, + (blk->n - i) * ksl->aligned_keylen); blk->nodes[i + 1].blk = rblk; ++blk->n; - ksl_set_nth_key(ksl, blk, i + 1, ngtcp2_ksl_nth_key(ksl, rblk, rblk->n - 1)); - ksl_set_nth_key(ksl, blk, i, ngtcp2_ksl_nth_key(ksl, lblk, lblk->n - 1)); + ksl_set_nth_key(ksl, blk, i, ngtcp2_ksl_blk_nth_key(lblk, lblk->n - 1)); return 0; } /* - * ksl_split_head splits a head (root) block. It increases the height - * of skip list by 1. + * ksl_split_root splits a root block. It increases the height of + * skip list by 1. * * It returns 0 if it succeeds, or one of the following negative error * codes: @@ -221,34 +223,34 @@ static int ksl_split_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { * NGTCP2_ERR_NOMEM * Out of memory. */ -static int ksl_split_head(ngtcp2_ksl *ksl) { - ngtcp2_ksl_blk *rblk = NULL, *lblk, *nhead = NULL; +static int ksl_split_root(ngtcp2_ksl *ksl) { + ngtcp2_ksl_blk *rblk = NULL, *lblk, *nroot = NULL; - rblk = ksl_split_blk(ksl, ksl->head); + rblk = ksl_split_blk(ksl, ksl->root); if (rblk == NULL) { return NGTCP2_ERR_NOMEM; } - lblk = ksl->head; + lblk = ksl->root; - nhead = ksl_blk_objalloc_new(ksl); + nroot = ksl_blk_objalloc_new(ksl); - if (nhead == NULL) { + if (nroot == NULL) { ksl_blk_objalloc_del(ksl, rblk); return NGTCP2_ERR_NOMEM; } - nhead->next = nhead->prev = NULL; - nhead->n = 2; - nhead->leaf = 0; + nroot->next = nroot->prev = NULL; + nroot->n = 2; + nroot->leaf = 0; - ksl_set_nth_key(ksl, nhead, 0, ngtcp2_ksl_nth_key(ksl, lblk, lblk->n - 1)); - nhead->nodes[0].blk = lblk; + ksl_set_nth_key(ksl, nroot, 0, ngtcp2_ksl_blk_nth_key(lblk, lblk->n - 1)); + nroot->nodes[0].blk = lblk; - ksl_set_nth_key(ksl, nhead, 1, ngtcp2_ksl_nth_key(ksl, rblk, rblk->n - 1)); - nhead->nodes[1].blk = rblk; + ksl_set_nth_key(ksl, nroot, 1, ngtcp2_ksl_blk_nth_key(rblk, rblk->n - 1)); + nroot->nodes[1].blk = rblk; - ksl->head = nhead; + ksl->root = nroot; return 0; } @@ -283,27 +285,27 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, size_t i; int rv; - if (!ksl->head) { - rv = ksl_head_init(ksl); + if (!ksl->root) { + rv = ksl_root_init(ksl); if (rv != 0) { return rv; } } - if (ksl->head->n == NGTCP2_KSL_MAX_NBLK) { - rv = ksl_split_head(ksl); + if (ksl->root->n == NGTCP2_KSL_MAX_NBLK) { + rv = ksl_split_root(ksl); if (rv != 0) { return rv; } } - blk = ksl->head; + blk = ksl->root; for (;;) { i = ksl->search(ksl, blk, key); if (blk->leaf) { - if (i < blk->n && !ksl->compar(key, ngtcp2_ksl_nth_key(ksl, blk, i))) { + if (i < blk->n && !ksl->compar(key, ngtcp2_ksl_blk_nth_key(blk, i))) { if (it) { *it = ngtcp2_ksl_end(ksl); } @@ -315,7 +317,7 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, ++ksl->n; if (it) { - ngtcp2_ksl_it_init(it, ksl, blk, i); + ngtcp2_ksl_it_init(it, blk, i); } return 0; @@ -342,7 +344,7 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, ++ksl->n; if (it) { - ngtcp2_ksl_it_init(it, ksl, blk, blk->n - 1); + ngtcp2_ksl_it_init(it, blk, blk->n - 1); } return 0; @@ -356,12 +358,8 @@ int ngtcp2_ksl_insert(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, return rv; } - if (ksl->compar(ngtcp2_ksl_nth_key(ksl, blk, i), key)) { + if (ksl->compar(ngtcp2_ksl_blk_nth_key(blk, i), key)) { node = &blk->nodes[i + 1]; - - if (ksl->compar(ngtcp2_ksl_nth_key(ksl, blk, i + 1), key)) { - ksl_set_nth_key(ksl, blk, i + 1, key); - } } } @@ -388,9 +386,9 @@ static void ksl_remove_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { * ksl_merge_node merges 2 nodes which are the nodes at the index of * |i| and |i + 1|. * - * If |blk| is the head (root) block and it contains just 2 nodes - * before merging nodes, the merged block becomes head block, which - * decreases the height of |ksl| by 1. + * If |blk| is the root block and it contains just 2 nodes before + * merging nodes, the merged block becomes root block, which decreases + * the height of |ksl| by 1. * * This function returns the pointer to the merged block. */ @@ -406,7 +404,7 @@ static ngtcp2_ksl_blk *ksl_merge_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, lblk = lnode->blk; rblk = blk->nodes[i + 1].blk; - assert(lblk->n + rblk->n < NGTCP2_KSL_MAX_NBLK); + assert(lblk->n + rblk->n <= NGTCP2_KSL_MAX_NBLK); memcpy(lblk->nodes + lblk->n, rblk->nodes, rblk->n * sizeof(ngtcp2_ksl_node)); @@ -424,12 +422,12 @@ static ngtcp2_ksl_blk *ksl_merge_node(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, ksl_blk_objalloc_del(ksl, rblk); - if (ksl->head == blk && blk->n == 2) { - ksl_blk_objalloc_del(ksl, ksl->head); - ksl->head = lblk; + if (ksl->root == blk && blk->n == 2) { + ksl_blk_objalloc_del(ksl, ksl->root); + ksl->root = lblk; } else { ksl_remove_node(ksl, blk, i + 1); - ksl_set_nth_key(ksl, blk, i, ngtcp2_ksl_nth_key(ksl, lblk, lblk->n - 1)); + ksl_set_nth_key(ksl, blk, i, ngtcp2_ksl_blk_nth_key(lblk, lblk->n - 1)); } return lblk; @@ -470,7 +468,7 @@ static void ksl_shift_left(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { lblk->n += (uint32_t)n; rblk->n -= (uint32_t)n; - ksl_set_nth_key(ksl, blk, i - 1, ngtcp2_ksl_nth_key(ksl, lblk, lblk->n - 1)); + ksl_set_nth_key(ksl, blk, i - 1, ngtcp2_ksl_blk_nth_key(lblk, lblk->n - 1)); memmove(rblk->nodes, rblk->nodes + n, rblk->n * sizeof(ngtcp2_ksl_node)); @@ -518,7 +516,7 @@ static void ksl_shift_right(ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, size_t i) { memcpy(rblk->keys, lblk->keys + lblk->n * ksl->aligned_keylen, n * ksl->aligned_keylen); - ksl_set_nth_key(ksl, blk, i, ngtcp2_ksl_nth_key(ksl, lblk, lblk->n - 1)); + ksl_set_nth_key(ksl, blk, i, ngtcp2_ksl_blk_nth_key(lblk, lblk->n - 1)); } /* @@ -535,9 +533,9 @@ int ngtcp2_ksl_remove_hint(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, const ngtcp2_ksl_key *key) { ngtcp2_ksl_blk *blk = hint->blk; - assert(ksl->head); + assert(ksl->root); - if (blk->n <= NGTCP2_KSL_MIN_NBLK) { + if (blk != ksl->root && blk->n == NGTCP2_KSL_MIN_NBLK) { return ngtcp2_ksl_remove(ksl, it, key); } @@ -547,9 +545,9 @@ int ngtcp2_ksl_remove_hint(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, if (it) { if (hint->i == blk->n && blk->next) { - ngtcp2_ksl_it_init(it, ksl, blk->next, 0); + ngtcp2_ksl_it_init(it, blk->next, 0); } else { - ngtcp2_ksl_it_init(it, ksl, blk, hint->i); + ngtcp2_ksl_it_init(it, blk, hint->i); } } @@ -558,7 +556,7 @@ int ngtcp2_ksl_remove_hint(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, const ngtcp2_ksl_key *key) { - ngtcp2_ksl_blk *blk = ksl->head; + ngtcp2_ksl_blk *blk = ksl->root; ngtcp2_ksl_node *node; size_t i; @@ -584,7 +582,7 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, } if (blk->leaf) { - if (ksl->compar(key, ngtcp2_ksl_nth_key(ksl, blk, i))) { + if (ksl->compar(key, ngtcp2_ksl_blk_nth_key(blk, i))) { if (it) { *it = ngtcp2_ksl_end(ksl); } @@ -597,9 +595,9 @@ int ngtcp2_ksl_remove(ngtcp2_ksl *ksl, ngtcp2_ksl_it *it, if (it) { if (blk->n == i && blk->next) { - ngtcp2_ksl_it_init(it, ksl, blk->next, 0); + ngtcp2_ksl_it_init(it, blk->next, 0); } else { - ngtcp2_ksl_it_init(it, ksl, blk, i); + ngtcp2_ksl_it_init(it, blk, i); } } @@ -648,12 +646,12 @@ ngtcp2_ksl_it ngtcp2_ksl_lower_bound(const ngtcp2_ksl *ksl, ngtcp2_ksl_it ngtcp2_ksl_lower_bound_search(const ngtcp2_ksl *ksl, const ngtcp2_ksl_key *key, ngtcp2_ksl_search search) { - ngtcp2_ksl_blk *blk = ksl->head; + ngtcp2_ksl_blk *blk = ksl->root; ngtcp2_ksl_it it; size_t i; if (!blk) { - ngtcp2_ksl_it_init(&it, ksl, &null_blk, 0); + ngtcp2_ksl_it_init(&it, &null_blk, 0); return it; } @@ -666,7 +664,7 @@ ngtcp2_ksl_it ngtcp2_ksl_lower_bound_search(const ngtcp2_ksl *ksl, i = 0; } - ngtcp2_ksl_it_init(&it, ksl, blk, i); + ngtcp2_ksl_it_init(&it, blk, i); return it; } @@ -684,7 +682,7 @@ ngtcp2_ksl_it ngtcp2_ksl_lower_bound_search(const ngtcp2_ksl *ksl, i = blk->n; } - ngtcp2_ksl_it_init(&it, ksl, blk, i); + ngtcp2_ksl_it_init(&it, blk, i); return it; } @@ -695,19 +693,19 @@ ngtcp2_ksl_it ngtcp2_ksl_lower_bound_search(const ngtcp2_ksl *ksl, void ngtcp2_ksl_update_key(ngtcp2_ksl *ksl, const ngtcp2_ksl_key *old_key, const ngtcp2_ksl_key *new_key) { - ngtcp2_ksl_blk *blk = ksl->head; + ngtcp2_ksl_blk *blk = ksl->root; ngtcp2_ksl_node *node; const ngtcp2_ksl_key *node_key; size_t i; - assert(ksl->head); + assert(ksl->root); for (;;) { i = ksl->search(ksl, blk, old_key); assert(i < blk->n); node = &blk->nodes[i]; - node_key = ngtcp2_ksl_nth_key(ksl, blk, i); + node_key = ngtcp2_ksl_blk_nth_key(blk, i); if (blk->leaf) { assert(key_equal(ksl->compar, node_key, old_key)); @@ -728,15 +726,15 @@ void ngtcp2_ksl_update_key(ngtcp2_ksl *ksl, const ngtcp2_ksl_key *old_key, size_t ngtcp2_ksl_len(const ngtcp2_ksl *ksl) { return ksl->n; } void ngtcp2_ksl_clear(ngtcp2_ksl *ksl) { - if (!ksl->head) { + if (!ksl->root) { return; } #ifdef NOMEMPOOL - ksl_free_blk(ksl, ksl->head); + ksl_free_blk(ksl, ksl->root); #endif /* defined(NOMEMPOOL) */ - ksl->front = ksl->back = ksl->head = NULL; + ksl->front = ksl->back = ksl->root = NULL; ksl->n = 0; ngtcp2_objalloc_clear(&ksl->blkalloc); @@ -751,7 +749,7 @@ static void ksl_print(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, if (blk->leaf) { for (i = 0; i < blk->n; ++i) { - fprintf(stderr, " %" PRId64, *(int64_t *)ngtcp2_ksl_nth_key(ksl, blk, i)); + fprintf(stderr, " %" PRId64, *(int64_t *)ngtcp2_ksl_blk_nth_key(blk, i)); } fprintf(stderr, "\n"); @@ -765,21 +763,21 @@ static void ksl_print(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, } void ngtcp2_ksl_print(const ngtcp2_ksl *ksl) { - if (!ksl->head) { + if (!ksl->root) { return; } - ksl_print(ksl, ksl->head, 0); + ksl_print(ksl, ksl->root, 0); } #endif /* !defined(WIN32) */ ngtcp2_ksl_it ngtcp2_ksl_begin(const ngtcp2_ksl *ksl) { ngtcp2_ksl_it it; - if (ksl->head) { - ngtcp2_ksl_it_init(&it, ksl, ksl->front, 0); + if (ksl->root) { + ngtcp2_ksl_it_init(&it, ksl->front, 0); } else { - ngtcp2_ksl_it_init(&it, ksl, &null_blk, 0); + ngtcp2_ksl_it_init(&it, &null_blk, 0); } return it; @@ -788,18 +786,16 @@ ngtcp2_ksl_it ngtcp2_ksl_begin(const ngtcp2_ksl *ksl) { ngtcp2_ksl_it ngtcp2_ksl_end(const ngtcp2_ksl *ksl) { ngtcp2_ksl_it it; - if (ksl->head) { - ngtcp2_ksl_it_init(&it, ksl, ksl->back, ksl->back->n); + if (ksl->root) { + ngtcp2_ksl_it_init(&it, ksl->back, ksl->back->n); } else { - ngtcp2_ksl_it_init(&it, ksl, &null_blk, 0); + ngtcp2_ksl_it_init(&it, &null_blk, 0); } return it; } -void ngtcp2_ksl_it_init(ngtcp2_ksl_it *it, const ngtcp2_ksl *ksl, - ngtcp2_ksl_blk *blk, size_t i) { - it->ksl = ksl; +void ngtcp2_ksl_it_init(ngtcp2_ksl_it *it, ngtcp2_ksl_blk *blk, size_t i) { it->blk = blk; it->i = i; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h index d35c83deab..cb972f94dc 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h @@ -38,10 +38,10 @@ #define NGTCP2_KSL_DEGR 16 /* NGTCP2_KSL_MAX_NBLK is the maximum number of nodes which a single block can contain. */ -#define NGTCP2_KSL_MAX_NBLK (2 * NGTCP2_KSL_DEGR - 1) +#define NGTCP2_KSL_MAX_NBLK (2 * NGTCP2_KSL_DEGR) /* NGTCP2_KSL_MIN_NBLK is the minimum number of nodes which a single block other than root must contain. */ -#define NGTCP2_KSL_MIN_NBLK (NGTCP2_KSL_DEGR - 1) +#define NGTCP2_KSL_MIN_NBLK NGTCP2_KSL_DEGR /* * ngtcp2_ksl_key represents key in ngtcp2_ksl. @@ -75,16 +75,19 @@ struct ngtcp2_ksl_blk { /* prev points to the previous block if leaf field is nonzero. */ ngtcp2_ksl_blk *prev; - /* n is the number of nodes this object contains in nodes. */ - uint32_t n; - /* leaf is nonzero if this block contains leaf nodes. */ - uint32_t leaf; ngtcp2_ksl_node nodes[NGTCP2_KSL_MAX_NBLK]; /* keys is a pointer to the buffer to include NGTCP2_KSL_MAX_NBLK keys. Because the length of key is unknown until ngtcp2_ksl_init is called, the actual buffer - will be allocated after this field. */ + will be allocated after this object. */ uint8_t *keys; + /* n is the number of nodes this object contains in nodes. */ + uint32_t n; + /* aligned_keylen is the length of the single key including + alignment. */ + uint16_t aligned_keylen; + /* leaf is nonzero if this block contains leaf nodes. */ + uint8_t leaf; }; ngtcp2_opl_entry oplent; @@ -134,7 +137,6 @@ typedef struct ngtcp2_ksl_it ngtcp2_ksl_it; * ngtcp2_ksl_it is a bidirectional iterator to iterate nodes. */ struct ngtcp2_ksl_it { - const ngtcp2_ksl *ksl; ngtcp2_ksl_blk *blk; size_t i; }; @@ -144,8 +146,8 @@ struct ngtcp2_ksl_it { */ struct ngtcp2_ksl { ngtcp2_objalloc blkalloc; - /* head points to the root block. */ - ngtcp2_ksl_blk *head; + /* root points to the root block. */ + ngtcp2_ksl_blk *root; /* front points to the first leaf block. */ ngtcp2_ksl_blk *front; /* back points to the last leaf block. */ @@ -275,11 +277,11 @@ size_t ngtcp2_ksl_len(const ngtcp2_ksl *ksl); void ngtcp2_ksl_clear(ngtcp2_ksl *ksl); /* - * ngtcp2_ksl_nth_key returns the |n|th key under |blk|. + * ngtcp2_ksl_blk_nth_key returns the |n|th key under |blk|. */ static inline const ngtcp2_ksl_key * -ngtcp2_ksl_nth_key(const ngtcp2_ksl *ksl, const ngtcp2_ksl_blk *blk, size_t n) { - return blk->keys + n * ksl->aligned_keylen; +ngtcp2_ksl_blk_nth_key(const ngtcp2_ksl_blk *blk, size_t n) { + return blk->keys + n * blk->aligned_keylen; } #ifndef WIN32 @@ -294,8 +296,7 @@ void ngtcp2_ksl_print(const ngtcp2_ksl *ksl); /* * ngtcp2_ksl_it_init initializes |it|. */ -void ngtcp2_ksl_it_init(ngtcp2_ksl_it *it, const ngtcp2_ksl *ksl, - ngtcp2_ksl_blk *blk, size_t i); +void ngtcp2_ksl_it_init(ngtcp2_ksl_it *it, ngtcp2_ksl_blk *blk, size_t i); /* * ngtcp2_ksl_it_get returns the data associated to the node which @@ -346,7 +347,7 @@ int ngtcp2_ksl_it_begin(const ngtcp2_ksl_it *it); * returns nonzero. */ static inline const ngtcp2_ksl_key *ngtcp2_ksl_it_key(const ngtcp2_ksl_it *it) { - return ngtcp2_ksl_nth_key(it->ksl, it->blk, it->i); + return ngtcp2_ksl_blk_nth_key(it->blk, it->i); } /* diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h index dfe5e0aed2..12cba12719 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h @@ -52,6 +52,13 @@ */ #define ngtcp2_arraylen(A) (sizeof(A) / sizeof(A[0])) +/* + * ngtcp2_strlen_lit returns the length of string literal |S|. This + * macro assumes |S| is NULL-terminated string literal. It must not + * be used with pointers. + */ +#define ngtcp2_strlen_lit(S) (sizeof(S) - 1) + #define ngtcp2_max_def(SUFFIX, T) \ static inline T ngtcp2_max_##SUFFIX(T a, T b) { return a < b ? b : a; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c index 9c0e2636bc..0179dbcde9 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c @@ -2308,11 +2308,11 @@ ngtcp2_ssize ngtcp2_pkt_write_retry( case NGTCP2_PROTO_VER_V1: default: nonce = (const uint8_t *)NGTCP2_RETRY_NONCE_V1; - noncelen = sizeof(NGTCP2_RETRY_NONCE_V1) - 1; + noncelen = ngtcp2_strlen_lit(NGTCP2_RETRY_NONCE_V1); break; case NGTCP2_PROTO_VER_V2: nonce = (const uint8_t *)NGTCP2_RETRY_NONCE_V2; - noncelen = sizeof(NGTCP2_RETRY_NONCE_V2) - 1; + noncelen = ngtcp2_strlen_lit(NGTCP2_RETRY_NONCE_V2); break; } @@ -2398,11 +2398,11 @@ int ngtcp2_pkt_verify_retry_tag(uint32_t version, const ngtcp2_pkt_retry *retry, case NGTCP2_PROTO_VER_V1: default: nonce = (const uint8_t *)NGTCP2_RETRY_NONCE_V1; - noncelen = sizeof(NGTCP2_RETRY_NONCE_V1) - 1; + noncelen = ngtcp2_strlen_lit(NGTCP2_RETRY_NONCE_V1); break; case NGTCP2_PROTO_VER_V2: nonce = (const uint8_t *)NGTCP2_RETRY_NONCE_V2; - noncelen = sizeof(NGTCP2_RETRY_NONCE_V2) - 1; + noncelen = ngtcp2_strlen_lit(NGTCP2_RETRY_NONCE_V2); break; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.h index 2d07e41648..b62ab204b2 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.h @@ -57,7 +57,7 @@ typedef struct ngtcp2_pv_entry { /* flags is zero or more of NGTCP2_PV_ENTRY_FLAG_*. */ uint8_t flags; /* data is a byte string included in PATH_CHALLENGE. */ - uint8_t data[8]; + uint8_t data[NGTCP2_PATH_CHALLENGE_DATALEN]; } ngtcp2_pv_entry; void ngtcp2_pv_entry_init(ngtcp2_pv_entry *pvent, const uint8_t *data, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c index f0c67acdd5..7c1142d14d 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c @@ -40,7 +40,7 @@ void ngtcp2_qlog_init(ngtcp2_qlog *qlog, ngtcp2_qlog_write write, qlog->user_data = user_data; } -#define write_verbatim(DEST, S) ngtcp2_cpymem((DEST), (S), sizeof(S) - 1) +#define write_verbatim(DEST, S) ngtcp2_cpymem((DEST), (S), ngtcp2_strlen_lit(S)) static uint8_t *write_string_impl(uint8_t *p, const uint8_t *data, size_t datalen) { @@ -53,7 +53,7 @@ static uint8_t *write_string_impl(uint8_t *p, const uint8_t *data, } #define write_string(DEST, S) \ - write_string_impl((DEST), (const uint8_t *)(S), sizeof(S) - 1) + write_string_impl((DEST), (const uint8_t *)(S), ngtcp2_strlen_lit(S)) static uint8_t *write_hex(uint8_t *p, const uint8_t *data, size_t datalen) { *p++ = '"'; @@ -76,9 +76,9 @@ static uint8_t *write_duration(uint8_t *p, ngtcp2_duration duration) { static uint8_t *write_bool(uint8_t *p, int b) { if (b) { - return ngtcp2_cpymem(p, "true", sizeof("true") - 1); + return ngtcp2_cpymem(p, "true", ngtcp2_strlen_lit("true")); } - return ngtcp2_cpymem(p, "false", sizeof("false") - 1); + return ngtcp2_cpymem(p, "false", ngtcp2_strlen_lit("false")); } static uint8_t *write_pair_impl(uint8_t *p, const uint8_t *name, size_t namelen, @@ -89,7 +89,8 @@ static uint8_t *write_pair_impl(uint8_t *p, const uint8_t *name, size_t namelen, } #define write_pair(DEST, NAME, VALUE) \ - write_pair_impl((DEST), (const uint8_t *)(NAME), sizeof(NAME) - 1, (VALUE)) + write_pair_impl((DEST), (const uint8_t *)(NAME), ngtcp2_strlen_lit(NAME), \ + (VALUE)) static uint8_t *write_pair_hex_impl(uint8_t *p, const uint8_t *name, size_t namelen, const uint8_t *value, @@ -100,8 +101,8 @@ static uint8_t *write_pair_hex_impl(uint8_t *p, const uint8_t *name, } #define write_pair_hex(DEST, NAME, VALUE, VALUELEN) \ - write_pair_hex_impl((DEST), (const uint8_t *)(NAME), sizeof(NAME) - 1, \ - (VALUE), (VALUELEN)) + write_pair_hex_impl((DEST), (const uint8_t *)(NAME), \ + ngtcp2_strlen_lit(NAME), (VALUE), (VALUELEN)) static uint8_t *write_pair_number_impl(uint8_t *p, const uint8_t *name, size_t namelen, uint64_t value) { @@ -111,8 +112,8 @@ static uint8_t *write_pair_number_impl(uint8_t *p, const uint8_t *name, } #define write_pair_number(DEST, NAME, VALUE) \ - write_pair_number_impl((DEST), (const uint8_t *)(NAME), sizeof(NAME) - 1, \ - (VALUE)) + write_pair_number_impl((DEST), (const uint8_t *)(NAME), \ + ngtcp2_strlen_lit(NAME), (VALUE)) static uint8_t *write_pair_duration_impl(uint8_t *p, const uint8_t *name, size_t namelen, @@ -123,8 +124,8 @@ static uint8_t *write_pair_duration_impl(uint8_t *p, const uint8_t *name, } #define write_pair_duration(DEST, NAME, VALUE) \ - write_pair_duration_impl((DEST), (const uint8_t *)(NAME), sizeof(NAME) - 1, \ - (VALUE)) + write_pair_duration_impl((DEST), (const uint8_t *)(NAME), \ + ngtcp2_strlen_lit(NAME), (VALUE)) static uint8_t *write_pair_tstamp_impl(uint8_t *p, const uint8_t *name, size_t namelen, ngtcp2_tstamp ts) { @@ -134,8 +135,8 @@ static uint8_t *write_pair_tstamp_impl(uint8_t *p, const uint8_t *name, } #define write_pair_tstamp(DEST, NAME, VALUE) \ - write_pair_tstamp_impl((DEST), (const uint8_t *)(NAME), sizeof(NAME) - 1, \ - (VALUE)) + write_pair_tstamp_impl((DEST), (const uint8_t *)(NAME), \ + ngtcp2_strlen_lit(NAME), (VALUE)) static uint8_t *write_pair_bool_impl(uint8_t *p, const uint8_t *name, size_t namelen, int b) { @@ -145,8 +146,8 @@ static uint8_t *write_pair_bool_impl(uint8_t *p, const uint8_t *name, } #define write_pair_bool(DEST, NAME, VALUE) \ - write_pair_bool_impl((DEST), (const uint8_t *)(NAME), sizeof(NAME) - 1, \ - (VALUE)) + write_pair_bool_impl((DEST), (const uint8_t *)(NAME), \ + ngtcp2_strlen_lit(NAME), (VALUE)) static uint8_t *write_pair_cid_impl(uint8_t *p, const uint8_t *name, size_t namelen, const ngtcp2_cid *cid) { @@ -156,10 +157,10 @@ static uint8_t *write_pair_cid_impl(uint8_t *p, const uint8_t *name, } #define write_pair_cid(DEST, NAME, VALUE) \ - write_pair_cid_impl((DEST), (const uint8_t *)(NAME), sizeof(NAME) - 1, \ - (VALUE)) + write_pair_cid_impl((DEST), (const uint8_t *)(NAME), \ + ngtcp2_strlen_lit(NAME), (VALUE)) -#define ngtcp2_make_vec_lit(S) {(uint8_t *)(S), sizeof((S)) - 1} +#define ngtcp2_make_vec_lit(S) {(uint8_t *)(S), ngtcp2_strlen_lit((S))} static uint8_t *write_common_fields(uint8_t *p, const ngtcp2_cid *odcid) { p = write_verbatim( @@ -1173,8 +1174,8 @@ void ngtcp2_qlog_version_negotiation_pkt_received(ngtcp2_qlog *qlog, buf.last = write_verbatim(buf.last, ",\"supported_versions\":["); if (nsv) { - if (ngtcp2_buf_left(&buf) < - (sizeof("\"xxxxxxxx\",") - 1) * nsv - 1 + sizeof("]}}\n") - 1) { + if (ngtcp2_buf_left(&buf) < ngtcp2_strlen_lit("\"xxxxxxxx\",") * nsv - 1 + + ngtcp2_strlen_lit("]}}\n")) { return; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h index 28b91d8d36..b40b6c4a89 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.h @@ -33,10 +33,10 @@ /* NGTCP2_DEFAULT_GLITCH_RATELIM_BURST is the maximum number of tokens in glitch rate limiter. It is also the initial value. */ -#define NGTCP2_DEFAULT_GLITCH_RATELIM_BURST 4000 +#define NGTCP2_DEFAULT_GLITCH_RATELIM_BURST 10000 /* NGTCP2_DEFAULT_GLITCH_RATELIM_RATE is the rate of tokens generated per second for glitch rate limiter. */ -#define NGTCP2_DEFAULT_GLITCH_RATELIM_RATE 132 +#define NGTCP2_DEFAULT_GLITCH_RATELIM_RATE 330 /* * ngtcp2_settings_convert_to_latest converts |src| of version diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c index 99d02da1b8..70aa8933a3 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.c @@ -199,7 +199,7 @@ int ngtcp2_strm_streamfrq_push(ngtcp2_strm *strm, ngtcp2_frame_chain *frc) { if (rv != 0) { return rv; } - } else if (ngtcp2_ksl_len(strm->tx.streamfrq) >= 1000) { + } else if (ngtcp2_ksl_len(strm->tx.streamfrq) >= 8000) { return NGTCP2_ERR_INTERNAL; } @@ -372,13 +372,12 @@ static int strm_streamfrq_unacked_pop(ngtcp2_strm *strm, int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc, size_t left) { ngtcp2_stream *fr, *nfr; - ngtcp2_frame_chain *frc, *nfrc, *sfrc; + ngtcp2_frame_chain *frc, *nfrc; int rv; size_t nmerged; uint64_t datalen; - ngtcp2_vec a[NGTCP2_MAX_STREAM_DATACNT]; - ngtcp2_vec b[NGTCP2_MAX_STREAM_DATACNT]; - size_t acnt, bcnt; + ngtcp2_vec data[NGTCP2_MAX_STREAM_DATACNT]; + size_t datacnt; uint64_t unacked_offset; if (strm->tx.streamfrq == NULL || ngtcp2_ksl_len(strm->tx.streamfrq) == 0) { @@ -418,17 +417,15 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc, } if (datalen > left) { - ngtcp2_vec_copy(a, fr->data, fr->datacnt); - acnt = fr->datacnt; - - bcnt = 0; - ngtcp2_vec_split(b, &bcnt, a, &acnt, left, NGTCP2_MAX_STREAM_DATACNT); + datacnt = 0; + ngtcp2_vec_split(data, &datacnt, fr->data, &fr->datacnt, left, + NGTCP2_MAX_STREAM_DATACNT); - assert(acnt > 0); - assert(bcnt > 0); + assert(fr->datacnt > 0); + assert(datacnt > 0); rv = ngtcp2_frame_chain_stream_datacnt_objalloc_new( - &nfrc, bcnt, strm->frc_objalloc, strm->mem); + &nfrc, datacnt, strm->frc_objalloc, strm->mem); if (rv != 0) { assert(ngtcp2_err_is_fatal(rv)); ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem); @@ -441,8 +438,8 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc, nfr->fin = fr->fin; nfr->stream_id = fr->stream_id; nfr->offset = fr->offset + left; - nfr->datacnt = bcnt; - ngtcp2_vec_copy(nfr->data, b, bcnt); + nfr->datacnt = datacnt; + ngtcp2_vec_copy(nfr->data, data, datacnt); rv = ngtcp2_ksl_insert(strm->tx.streamfrq, NULL, &nfr->offset, nfrc); if (rv != 0) { @@ -453,34 +450,17 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc, return rv; } - rv = ngtcp2_frame_chain_stream_datacnt_objalloc_new( - &nfrc, acnt, strm->frc_objalloc, strm->mem); - if (rv != 0) { - assert(ngtcp2_err_is_fatal(rv)); - ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem); - return rv; - } - - nfr = &nfrc->fr.stream; - nfr->type = fr->type; - nfr->flags = fr->flags; - nfr->fin = 0; - nfr->stream_id = fr->stream_id; - nfr->offset = fr->offset; - nfr->datacnt = acnt; - ngtcp2_vec_copy(nfr->data, a, acnt); - - ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem); + fr->fin = 0; - *pfrc = nfrc; + *pfrc = frc; return 0; } left -= (size_t)datalen; - ngtcp2_vec_copy(a, fr->data, fr->datacnt); - acnt = fr->datacnt; + ngtcp2_vec_copy(data, fr->data, fr->datacnt); + datacnt = fr->datacnt; for (; left && ngtcp2_ksl_len(strm->tx.streamfrq);) { unacked_offset = ngtcp2_strm_streamfrq_unacked_offset(strm); @@ -507,9 +487,7 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc, break; } - bcnt = nfr->datacnt; - - nmerged = ngtcp2_vec_merge(a, &acnt, nfr->data, &bcnt, left, + nmerged = ngtcp2_vec_merge(data, &datacnt, nfr->data, &nfr->datacnt, left, NGTCP2_MAX_STREAM_DATACNT); if (nmerged == 0) { rv = ngtcp2_ksl_insert(strm->tx.streamfrq, NULL, &nfr->offset, nfrc); @@ -527,54 +505,27 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc, datalen += nmerged; left -= nmerged; - if (bcnt == 0) { + if (nfr->datacnt == 0) { fr->fin = nfr->fin; ngtcp2_frame_chain_objalloc_del(nfrc, strm->frc_objalloc, strm->mem); continue; } - if (nfr->datacnt <= NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES || - bcnt > NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES) { - nfr->offset += nmerged; - nfr->datacnt = bcnt; - - rv = ngtcp2_ksl_insert(strm->tx.streamfrq, NULL, &nfr->offset, nfrc); - if (rv != 0) { - ngtcp2_frame_chain_objalloc_del(nfrc, strm->frc_objalloc, strm->mem); - ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem); - return rv; - } - } else { - rv = ngtcp2_frame_chain_stream_datacnt_objalloc_new( - &sfrc, bcnt, strm->frc_objalloc, strm->mem); - if (rv != 0) { - ngtcp2_frame_chain_objalloc_del(nfrc, strm->frc_objalloc, strm->mem); - ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem); - return rv; - } - - sfrc->fr.stream = nfrc->fr.stream; - sfrc->fr.stream.offset += nmerged; - sfrc->fr.stream.datacnt = bcnt; - ngtcp2_vec_copy(sfrc->fr.stream.data, nfrc->fr.stream.data, bcnt); + nfr->offset += nmerged; + rv = ngtcp2_ksl_insert(strm->tx.streamfrq, NULL, &nfr->offset, nfrc); + if (rv != 0) { ngtcp2_frame_chain_objalloc_del(nfrc, strm->frc_objalloc, strm->mem); - - rv = ngtcp2_ksl_insert(strm->tx.streamfrq, NULL, &sfrc->fr.stream.offset, - sfrc); - if (rv != 0) { - ngtcp2_frame_chain_objalloc_del(sfrc, strm->frc_objalloc, strm->mem); - ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem); - return rv; - } + ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem); + return rv; } break; } - if (acnt == fr->datacnt) { - if (acnt > 0) { - fr->data[acnt - 1] = a[acnt - 1]; + if (datacnt == fr->datacnt) { + if (datacnt > 0) { + fr->data[datacnt - 1] = data[datacnt - 1]; } *pfrc = frc; @@ -582,10 +533,10 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc, return 0; } - assert(acnt > fr->datacnt); + assert(datacnt > fr->datacnt); rv = ngtcp2_frame_chain_stream_datacnt_objalloc_new( - &nfrc, acnt, strm->frc_objalloc, strm->mem); + &nfrc, datacnt, strm->frc_objalloc, strm->mem); if (rv != 0) { ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem); return rv; @@ -597,8 +548,8 @@ int ngtcp2_strm_streamfrq_pop(ngtcp2_strm *strm, ngtcp2_frame_chain **pfrc, nfr->fin = fr->fin; nfr->stream_id = fr->stream_id; nfr->offset = fr->offset; - nfr->datacnt = acnt; - ngtcp2_vec_copy(nfr->data, a, acnt); + nfr->datacnt = datacnt; + ngtcp2_vec_copy(nfr->data, data, datacnt); ngtcp2_frame_chain_objalloc_del(frc, strm->frc_objalloc, strm->mem); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h index 1a1e8fd3b7..fb86bd1c23 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h @@ -171,14 +171,14 @@ struct ngtcp2_strm { const ngtcp2_mem *mem; int64_t stream_id; void *stream_user_data; - /* flags is bit-wise OR of zero or more of NGTCP2_STRM_FLAG_*. */ - uint32_t flags; /* app_error_code is an error code the local endpoint sent in RESET_STREAM or STOP_SENDING, or received from a remote endpoint in RESET_STREAM or STOP_SENDING. First application error code is chosen and when set, NGTCP2_STRM_FLAG_APP_ERROR_CODE_SET flag is set in flags field. */ uint64_t app_error_code; + /* flags is bit-wise OR of zero or more of NGTCP2_STRM_FLAG_*. */ + uint32_t flags; }; ngtcp2_opl_entry oplent; diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h index a89e9d8184..a09ceea382 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h @@ -5919,9 +5919,9 @@ NGTCP2_EXTERN void ngtcp2_path_storage_zero(ngtcp2_path_storage *ps); * * :member:`handshake_timeout ` = * ``UINT64_MAX`` * * :member:`glitch_ratelim_burst - * ` = 4000 + * ` = 10000 * * :member:`glitch_ratelim_rate - * ` = 132 + * ` = 330 */ NGTCP2_EXTERN void ngtcp2_settings_default_versioned(int settings_version, ngtcp2_settings *settings); diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index 62904c53ab..6a1ca01345 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.19.0" +#define NGTCP2_VERSION "1.20.0" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x011300 +#define NGTCP2_VERSION_NUM 0x011400 #endif /* !defined(NGTCP2_VERSION_H) */ From 7fe7b08a0f42aa418b5575c49e98dee867457917 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 27 Jan 2026 11:04:29 +0100 Subject: [PATCH 344/675] README: add note about configure parameters closes #964 --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 248727fc98..353ae7537d 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,9 @@ autoreconf -if make ``` +Note that `./configure` accepts various parameters (see `./configure --help`). +The following examples assume `--sysconfdir=/etc` and `--localstatedir=/var/lib`. + Install Knot DNS into system: ```bash sudo make install From 8458300a50f06700e19254b11e5626a2734b5284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Tue, 27 Jan 2026 13:07:03 +0100 Subject: [PATCH 345/675] tests-extra: force forking in multiprocessing library to avoid serialization problems with multiprocessing.Process --- tests-extra/runtests.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests-extra/runtests.py b/tests-extra/runtests.py index d9d5ea935f..87d092ba5e 100755 --- a/tests-extra/runtests.py +++ b/tests-extra/runtests.py @@ -259,6 +259,8 @@ def main(args): global log global outs_dir + multiprocessing.set_start_method('fork') + tasks = multiprocessing.Queue() results = multiprocessing.SimpleQueue() stop = multiprocessing.Value('i', False) From 87641cff05fc0c5529f938fa040f964081115435 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 19 Jan 2026 12:25:05 +0100 Subject: [PATCH 346/675] server: extend 'zone-update-error' to cover more situations This extends 5d164cefa9b8dcf7e73e46b2fb65198222c5bdaa --- src/knot/ctl/commands.c | 2 ++ src/knot/events/handlers/dnssec.c | 1 + src/knot/events/handlers/load.c | 9 ++++++++- src/knot/events/handlers/refresh.c | 1 + src/knot/events/handlers/update.c | 1 + src/knot/updates/zone-update.c | 24 ++++++++---------------- src/knot/zone/zone.c | 11 +++++++++++ src/knot/zone/zone.h | 2 ++ 8 files changed, 34 insertions(+), 17 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 8cdf94d0a2..35ce318c42 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -993,12 +993,14 @@ static int zone_txn_commit_l(zone_t *zone, _unused_ ctl_args_t *args) } if (ret != KNOT_EOK) { zone_control_clear(zone); + zone_update_error(conf(), zone); return ret; } ret = zone_update_commit(conf(), zone->control_update); if (ret != KNOT_EOK) { zone_control_clear(zone); + zone_update_error(conf(), zone); return ret; } diff --git a/src/knot/events/handlers/dnssec.c b/src/knot/events/handlers/dnssec.c index d0367a76a6..2b722fd370 100644 --- a/src/knot/events/handlers/dnssec.c +++ b/src/knot/events/handlers/dnssec.c @@ -108,6 +108,7 @@ int event_dnssec(conf_t *conf, zone_t *zone) if (ret != KNOT_EOK) { zone_update_clear(&up); + zone_update_error(conf, zone); } return ret; } diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 3c9112dc50..30a9f8b307 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -538,5 +538,12 @@ int event_load(conf_t *conf, zone_t *zone) zone_skip_free(&skip); zone->started = true; - return (dontcare_load_error(conf, zone) ? KNOT_EOK : ret); + if (dontcare_load_error(conf, zone)) { + ret = KNOT_EOK; + } + if (ret != KNOT_EOK) { + zone_update_error(conf, zone); + } + + return ret; } diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 9ebda7fa2b..3e78e7b325 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -1265,6 +1265,7 @@ static int transfer_consume(knot_layer_t *layer, knot_pkt_t *pkt) if (data->ret == KNOT_EOK) { data->updated = true; } else { + zone_update_error(data->conf, data->zone); next = KNOT_STATE_FAIL; } } diff --git a/src/knot/events/handlers/update.c b/src/knot/events/handlers/update.c index f038860d04..c1b0c99dab 100644 --- a/src/knot/events/handlers/update.c +++ b/src/knot/events/handlers/update.c @@ -242,6 +242,7 @@ static void process_requests(conf_t *conf, zone_t *zone, list_t *requests) if (ret != KNOT_EOK) { log_zone_error(zone->name, "DDNS, processing failed (%s)", knot_strerror(ret)); + zone_update_error(conf, zone); return; } diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index c9ba288f03..f6dca34578 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1150,7 +1150,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) ret = commit_full(conf, update); } if (ret != KNOT_EOK) { - goto error; + return ret; } conf_val_t thr = conf_zone_get(conf, C_ADJUST_THR, update->zone->name); @@ -1161,7 +1161,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) } if (ret != KNOT_EOK) { discard_adds_tree(update); - goto error; + return ret; } /* Check the zone size. */ @@ -1170,8 +1170,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) if (update->new_cont->size > size_limit) { discard_adds_tree(update); - ret = KNOT_EZONESIZE; - goto error; + return KNOT_EZONESIZE; } val = conf_zone_get(conf, C_DNSSEC_VALIDATION, update->zone->name); @@ -1184,7 +1183,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) ret = knot_dnssec_validate_zone(update, &val_conf); if (ret != KNOT_EOK) { discard_adds_tree(update); - goto error; + return ret; } } @@ -1193,7 +1192,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) ret = zone_update_external(conf, update, &val); if (ret != KNOT_EOK) { discard_adds_tree(update); - goto error; + return ret; } } @@ -1201,21 +1200,21 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) if (ret != KNOT_EOK) { log_zone_error(update->zone->name, "failed to process catalog zone (%s)", knot_strerror(ret)); discard_adds_tree(update); - goto error; + return ret; } ret = commit_redis(conf, update); if (ret != KNOT_EOK) { log_zone_error(update->zone->name, "zone database update failed (%s)", knot_strerror(ret)); discard_adds_tree(update); - goto error; + return ret; } ret = commit_journal(conf, update); if (ret != KNOT_EOK) { log_zone_error(update->zone->name, "journal update failed (%s)", knot_strerror(ret)); discard_adds_tree(update); - goto error; + return ret; } if (dnssec) { @@ -1268,13 +1267,6 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) memset(update, 0, sizeof(*update)); return KNOT_EOK; -error: - ATOMIC_ADD(update->zone->server->stats.zone_update_error, 1); - if (conf->cache.srv_dbus_event & DBUS_EVENT_ZONE_UPDATED) { - dbus_emit_zone_updated(update->zone->name, false, 0); - } - - return ret; } bool zone_update_no_change(zone_update_t *update) diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index dac0dac1f6..1f78d66072 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -9,6 +9,7 @@ #include #include +#include "knot/common/dbus.h" #include "knot/common/log.h" #include "knot/conf/module.h" #include "knot/dnssec/kasp/kasp_db.h" @@ -1034,3 +1035,13 @@ time_t zone_bootstrap_next(uint8_t *count) // Add a random delay to prevent burst refresh. return increment + dnssec_random_uint16_t() % MIN(30, (1 + *count) * 5); } + +void zone_update_error(conf_t *conf, zone_t *zone) +{ + if (conf != NULL && zone != NULL) { + ATOMIC_ADD(zone->server->stats.zone_update_error, 1); + if (conf->cache.srv_dbus_event & DBUS_EVENT_ZONE_UPDATED) { + dbus_emit_zone_updated(zone->name, false, 0); + } + } +} diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 5753aae39b..a624863a41 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -339,3 +339,5 @@ int zone_get_lastsigned_serial(zone_t *zone, uint32_t *serial); int slave_zone_serial(zone_t *zone, conf_t *conf, uint32_t *serial); time_t zone_bootstrap_next(uint8_t *count); + +void zone_update_error(conf_t *conf, zone_t *zone); From 146d90c03b256d68f0326228f8a06c74bcc6ca6a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 3 Feb 2026 16:27:23 +0100 Subject: [PATCH 347/675] ctl: avoid unrecoverable situation after semcheck error from conf-commit --- src/knot/ctl/commands.c | 2 +- tests-extra/tests/ctl/basic/test.py | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 35ce318c42..e4e6ded40c 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -2228,7 +2228,7 @@ static int ctl_conf_txn(ctl_args_t *args, ctl_cmd_t cmd) if (ret != KNOT_EOK) { // A semantic error is already sent by the check function. if (io.error.code != KNOT_EOK) { - return KNOT_EOK; + return io.error.code; } // No transaction abort! break; diff --git a/tests-extra/tests/ctl/basic/test.py b/tests-extra/tests/ctl/basic/test.py index ef046ca0de..e3e94ec394 100644 --- a/tests-extra/tests/ctl/basic/test.py +++ b/tests-extra/tests/ctl/basic/test.py @@ -26,7 +26,6 @@ ctl.connect(os.path.join(knot.dir, sockname)) # Check conf-abort and conf-commit without conf transaction open. - ctl.send_block(cmd="conf-abort") resp = ctl.receive_block() @@ -38,6 +37,27 @@ else: set_err("UNEXPECTED RETURN") +# Check repeated conf-commit after fixed semcheck issues. +ctl.send_block(cmd="conf-begin") +resp = ctl.receive_block() + +ctl.send_block(cmd="conf-set", section="remote", item="id", data="test") +resp = ctl.receive_block() + +try: + ctl.send_block(cmd="conf-commit") + resp = ctl.receive_block() +except libknot.control.KnotCtlError as exc: + isset(exc.message == "no remote address defined", "commit error code") +else: + set_err("UNEXPECTED RETURN") + +ctl.send_block(cmd="conf-set", section="remote", identifier="test", item="address", data="::1") +resp = ctl.receive_block() + +ctl.send_block(cmd="conf-commit") +resp = ctl.receive_block() + # Add new zone. ctl.send_block(cmd="conf-begin") resp = ctl.receive_block() From 0c4904c67b7897b0574edee6ed25f47b9c56b456 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 4 Feb 2026 08:49:50 +0100 Subject: [PATCH 348/675] doc: add RFC 9103 information to the XoT section --- doc/configuration.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/configuration.rst b/doc/configuration.rst index 0cdc4ddbac..d6f7e3c7f9 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -1325,8 +1325,8 @@ DNS over TLS ============ TLS is an encrypted internet transport protocol. -Knot DNS supports DNS over TLS (DoT) (:rfc:`7858`), including zone transfers (XoT). -By default, the TCP port `853` is used for DNS over TLS. +Knot DNS supports DNS over TLS (DoT) (:rfc:`7858`), including zone transfers (XoT) +(:rfc:`9103`). By default, the TCP port `853` is used for DNS over TLS. There are the same requirements for TLS key and certificate as for :ref:`DNS_over_QUIC`. From 3dd9ff37fa5498e6f0ee97af20123f84540037cd Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 4 Feb 2026 09:08:12 +0100 Subject: [PATCH 349/675] doc/catalog: clarify that uniq_id must be unique --- doc/configuration.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/configuration.rst b/doc/configuration.rst index d6f7e3c7f9..76896a3879 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -657,7 +657,7 @@ The owner names of the PTR records shall follow this scheme: where the mentioned labels shall match: -- ** — Single label that is recommended to be unique among member zones. +- ** — Single label that must be unique among member zones. - ``zones`` — Required label. - ** — Name of the catalog zone. From a12808a46dbf67347babb2ef5db5c86377038398 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 5 Feb 2026 14:28:38 +0100 Subject: [PATCH 350/675] redis/commit: store incrementally only when continuous SOA serials (like for journal) --- src/knot/updates/zone-update.c | 21 ++++++- src/knot/updates/zone-update.h | 5 ++ tests-extra/tests/redis/changesets/test.py | 65 ++++++++++++++++++++++ 3 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 tests-extra/tests/redis/changesets/test.py diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index f6dca34578..c286cde041 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -349,6 +349,23 @@ const knot_rdataset_t *zone_update_from(zone_update_t *update) return NULL; } +uint32_t zone_update_from_serial(const zone_update_t *update) +{ + assert(update != NULL); + assert(update->new_cont->apex != NULL); + + if (update->flags & UPDATE_NO_CHSET) { + const knot_rdataset_t *old_soa = node_rdataset(binode_counterpart(update->new_cont->apex), KNOT_RRTYPE_SOA); + assert(old_soa != NULL && old_soa->count > 0); + return knot_soa_serial(old_soa->rdata); + } else if (update->flags & (UPDATE_INCREMENTAL | UPDATE_HYBRID)) { + return changeset_from(&update->change); + } else { + assert(0); + return 0; + } +} + const knot_rdataset_t *zone_update_to(zone_update_t *update) { if (update == NULL) { @@ -743,9 +760,9 @@ static int commit_redis(conf_t *conf, zone_update_t *update) bool incremental = ((update->flags & (UPDATE_INCREMENTAL | UPDATE_HYBRID)) && update->zone->contents != NULL); if (incremental) { zone_redis_err_t err; - uint32_t redis_soa = 0; + uint32_t redis_soa = 0, chset_soa = zone_update_from_serial(update); int soa_ret = zone_redis_serial(db_ctx, db_instance, update->zone->name, &redis_soa, err); - incremental = (soa_ret == KNOT_EOK && redis_soa == zone_contents_serial(update->zone->contents)); + incremental = (soa_ret == KNOT_EOK && redis_soa == chset_soa); } zone_redis_txn_t txn; diff --git a/src/knot/updates/zone-update.h b/src/knot/updates/zone-update.h index 93b05196da..c906f04d82 100644 --- a/src/knot/updates/zone-update.h +++ b/src/knot/updates/zone-update.h @@ -147,6 +147,11 @@ bool zone_update_changed_nsec3param(const zone_update_t *update); */ const knot_rdataset_t *zone_update_from(zone_update_t *update); +/*! + * \brief Return the SOA serial "from" to be stored to journal. + */ +uint32_t zone_update_from_serial(const zone_update_t *update); + /*! * \brief Returns the SOA rdataset we're updating to. * diff --git a/tests-extra/tests/redis/changesets/test.py b/tests-extra/tests/redis/changesets/test.py new file mode 100644 index 0000000000..11d953b24e --- /dev/null +++ b/tests-extra/tests/redis/changesets/test.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 + +'''Test (not)storing diff to Redis based on circumstances.''' + +import random +from dnstest.test import Test +from dnstest.utils import * + +def check_soa(redis, zone_name, instance, expected): + out = redis.cli("knot.zone.load", zone_name, str(instance)) + soa_rdata = out.splitlines()[3] + soa_serial = soa_rdata.split()[2] + compare(soa_serial, str(expected), "Redis SOA serial") + +t = Test() + +master = t.server("knot") + +zone = t.zone("example.com.") +Z = zone[0].name + +t.link(zone, master) + +redis_master = t.backend("redis", tls=random.choice([True, False])) + +master.db_out(zone, [redis_master], 1) +master.dnssec(zone).enable = True + +t.start() + +serial = master.zone_wait(zone) +check_soa(redis_master, Z, 1, serial) + +ch1 = redis_master.cli("knot.upd.load", Z, "1", str(serial - 1)) +if len(ch1) > 1: + set_err("Non-empty zonefile-to-signed initial changeset.") + +up = master.update(zone) +up.add("somestuff", 3600, "AAAA", "1::15") +up.send("NOERROR") +serial = master.zone_wait(zone, serial) +check_soa(redis_master, Z, 1, serial) + +ch2 = redis_master.cli("knot.upd.load", Z, "1", str(serial - 1)) +if "somestuff" not in ch2: + set_err("Missing DDNS update changeset.") + +master.zones[Z].zfile.update_soa(serial = serial + 10) +master.ctl("zone-reload") +master.zone_wait(zone, serial + 10) +check_soa(redis_master, Z, 1, serial + 11) + +ch3 = redis_master.cli("knot.upd.load", Z, "1", str(serial + 10)) +if len(ch3) > 1: + set_err("Non-empty zonefile-to-signed non-continuous changeset.") + +ch4 = redis_master.cli("knot.upd.load", Z, "1", str(serial - 1)) +if len(ch4) > 1: + set_err("Remaining DDNS update changeset despite discontinuity.") + +ch5 = redis_master.cli("knot.upd.load", Z, "1", str(serial)) +if len(ch5) > 1: + set_err("Non-empty different changeset.") + +t.end() From f4211cc9890a97078ad9f63d4cbff6af406bd29e Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 12 Feb 2026 10:13:46 +0100 Subject: [PATCH 351/675] timers_dump: fix IPv6 address printing --- scripts/timers_dump.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/timers_dump.py b/scripts/timers_dump.py index 4bfcdf27d1..ed7f8c0b1f 100755 --- a/scripts/timers_dump.py +++ b/scripts/timers_dump.py @@ -39,8 +39,10 @@ def format_notify_serial(cls, value): @classmethod def format_last_master(cls, value): - offset = 4 if value[0] == socket.AF_INET else 16 - return socket.inet_ntop(value[0], value[-offset:]) + if value[0] == socket.AF_INET: + return socket.inet_ntop(socket.AF_INET, value[4:8]) + else: + return socket.inet_ntop(socket.AF_INET6, value[8:24]) @classmethod def format_value(cls, id, value): From 78545c59c9a4cdccedc6bdacb44255a4cfc55dab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Fri, 13 Feb 2026 15:04:33 +0100 Subject: [PATCH 352/675] clang: fix const* to non-const* conversion warnings --- src/knot/conf/conf.c | 3 ++- src/utils/kdig/kdig_params.c | 6 +++--- src/utils/knotc/commands.c | 8 ++++---- src/utils/knotc/interactive.c | 6 +++--- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index fe20b00026..1a52aa12e9 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -941,7 +941,8 @@ static int get_index( unsigned *index1, unsigned *index2) { - char c, *p; + char c; + const char *p; if (sscanf(*start, "[%u%c", index1, &c) != 2) { return KNOT_EINVAL; } diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index d3545c8e4d..742b28af99 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -844,7 +844,7 @@ static int opt_https(const char *arg, void *query) q->https.enable = true; if (arg != NULL) { - char *resource = strstr(arg, "://"); + const char *resource = strstr(arg, "://"); if (resource == NULL) { resource = (char *)arg; } else { @@ -855,7 +855,7 @@ static int opt_https(const char *arg, void *query) } } - char *tmp_path = strchr(resource, '/'); + const char *tmp_path = strchr(resource, '/'); if (tmp_path) { free(q->https.path); q->https.path = strdup(tmp_path); @@ -1146,7 +1146,7 @@ static int opt_subnet(const char *arg, void *query) { query_t *q = query; - char *sep = NULL; + const char *sep = NULL; const size_t arg_len = strlen(arg); const char *arg_end = arg + arg_len; size_t addr_len = 0; diff --git a/src/utils/knotc/commands.c b/src/utils/knotc/commands.c index a8af19b109..1835c0f957 100644 --- a/src/utils/knotc/commands.c +++ b/src/utils/knotc/commands.c @@ -83,7 +83,7 @@ static int check_conf_args(cmd_args_t *args) return KNOT_EINVAL; } -static int get_conf_key(const char *key, knot_ctl_data_t *data) +static int get_conf_key(char *key, knot_ctl_data_t *data) { // Get key0. const char *key0 = key; @@ -484,7 +484,7 @@ static int set_stats_items(cmd_args_t *args, knot_ctl_data_t *data) if (args->argc > idx) { (*data)[KNOT_CTL_IDX_SECTION] = args->argv[idx]; - char *item = strchr(args->argv[idx], '.'); + char *item = strchr((char *)args->argv[idx], '.'); if (item != NULL) { // Separate section and item. *item++ = '\0'; @@ -1209,7 +1209,7 @@ static int cmd_conf_ctl(cmd_args_t *args) CTL_SEND_DATA // Set the first item argument. } else { - ret = get_conf_key(args->argv[0], &data); + ret = get_conf_key((char *)args->argv[0], &data); if (ret != KNOT_EOK) { return ret; } @@ -1225,7 +1225,7 @@ static int cmd_conf_ctl(cmd_args_t *args) if (args->desc->flags & CMD_FOPT_DATA) { data[KNOT_CTL_IDX_DATA] = args->argv[i]; } else { - ret = get_conf_key(args->argv[i], &data); + ret = get_conf_key((char *)args->argv[i], &data); if (ret != KNOT_EOK) { return ret; } diff --git a/src/utils/knotc/interactive.c b/src/utils/knotc/interactive.c index a2d9e67be0..d77c067b31 100644 --- a/src/utils/knotc/interactive.c +++ b/src/utils/knotc/interactive.c @@ -231,12 +231,12 @@ static void item_lookup(EditLine *el, const char *str, const cmd_desc_t *cmd_des } // Check for id specification. - char *id = (strchr(str, '[')); + const char *id = (strchr(str, '[')); if (id != NULL) { char *section = strndup(str, id - str); // Check for completed id specification. - char *id_stop = (strchr(id, ']')); + const char *id_stop = (strchr(id, ']')); if (id_stop != NULL) { // Complete the item name. if (*(id_stop + 1) == '.') { @@ -255,7 +255,7 @@ static void item_lookup(EditLine *el, const char *str, const cmd_desc_t *cmd_des free(section); } else { // Check for item specification. - char *dot = (strchr(str, '.')); + const char *dot = (strchr(str, '.')); if (dot != NULL) { // Complete the item name. char *section = strndup(str, dot - str); From 2e23db82f1e09d86b07becf945bde683780d10c2 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 13 Feb 2026 16:44:59 +0100 Subject: [PATCH 353/675] doc: add anchors to knotc commands --- doc/man_knotc.rst | 92 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/doc/man_knotc.rst b/doc/man_knotc.rst index b4f94431ca..6b40152211 100644 --- a/doc/man_knotc.rst +++ b/doc/man_knotc.rst @@ -71,28 +71,40 @@ Options Actions ....... +.. _knotc_status: + **status** [*detail*] Check if the server is running. Details are **version** for the running server version, **workers** for the numbers of worker threads, **configure** for the configure summary, or **cert-key** for the public key pin of the currently used certificate. +.. _knotc_stop: + **stop** Stop the server if running. +.. _knotc_reload: + **reload** Reload the server configuration and modified zone files, and reopen the log files if they are configured. All open zone transactions will be aborted! +.. _knotc_stats: + **stats** [*module*\ [\ **.**\ *counter*\ ]] Show global statistics counter(s). To print also counters with value 0, use force option. +.. _knotc_zone-check: + **zone-check** [*zone*...] Test if the server can load the zone. Semantic checks are executed if enabled in the configuration. If invoked with the force option, an error is returned when semantic check warning appears. (*) +.. _knotc_zone-status: + **zone-status** [*zone*...] [*filter*] Show the zone status. Filters are **+role**, **+serial**, **+transaction**, **+events**, **+freeze**, and **+catalog**. Empty zone parameters are omitted, @@ -105,6 +117,8 @@ Actions *bold font (highlited)* - zone is active / *normal* - zone is empty, *underscored* - zone is an interpreted catalog member. +.. _knotc_zone-reload: + **zone-reload** [*zone*...] Trigger a zone reload from a disk without checking its modification time. For secondary zone, the refresh event from primary server(s) is scheduled; @@ -112,21 +126,29 @@ Actions zone transaction will be aborted! If invoked with the force option, also zone modules will be re-loaded, but blocking mode might not work reliably. (#) +.. _knotc_zone-refresh: + **zone-refresh** [*zone*...] Trigger a check for the zone serial on the zone's primary server. If the primary server has a newer zone, a transfer is scheduled. This command is valid for secondary zones. (#) +.. _knotc_zone-retransfer: + **zone-retransfer** [*zone*...] Trigger a zone transfer from the zone's primary server. The server doesn't check the serial of the primary server's zone. This command is valid for secondary zones. (#) +.. _knotc_zone-notify: + **zone-notify** [*zone*...] Trigger a NOTIFY message to all configured remotes. This can help in cases when previous NOTIFY had been lost or the secondary servers have been offline. (#) +.. _knotc_zone-flush: + **zone-flush** [*zone*...] [**+outdir** *directory*] Trigger a zone journal flush to the configured zone file. If zonefile synchronization is disabled, the force option must be used. @@ -134,6 +156,8 @@ Actions dumped (in the blocking mode) to a zone file in the specified directory. See :ref:`Notes` below about the directory permissions. (#) +.. _knotc_zone-backup: + **zone-backup** [*zone*...] **+backupdir** *directory* [*filter*...] Trigger a zone data and metadata backup to a specified directory. Available filters are **+zonefile**, **+journal**, **+timers**, **+kaspdb**, @@ -156,6 +180,8 @@ Actions be overwritten. See :ref:`Notes` below about the directory permissions. (#) +.. _knotc_zone-restore: + **zone-restore** [*zone*...] **+backupdir** *directory* [*filter*...] Trigger a zone data and metadata restore from a specified backup directory. Optional filters are equivalent to the same filters of **zone-backup**. @@ -163,19 +189,27 @@ Actions with the force option. See :ref:`Notes` below about the directory permissions. (#) +.. _knotc_zone-sign: + **zone-sign** [*zone*...] Trigger a DNSSEC re-sign of the zone. Existing signatures will be dropped. This command is valid for zones with DNSSEC signing enabled. (#) +.. _knotc_zone-validate: + **zone-validate** [*zone*...] Trigger a DNSSEC validation of the zone. If the validation fails and the zone is secondary, the zone expires immediately! (#) +.. _knotc_zone-keys-load: + **zone-keys-load** [*zone*...] Trigger a load of DNSSEC keys and other signing material from KASP database (which might have been altered manually). If suitable, re-sign the zone afterwards (keeping valid signatures intact). (#) +.. _knotc_zone-key-rollover: + **zone-key-rollover** *zone* *key_type* Trigger immediate key rollover. Publish new key and start a key rollover, even when the key has a lifetime to go. Key type can be **ksk** (also for CSK) @@ -183,6 +217,8 @@ Actions key management enabled. Note that complete key rollover consists of several steps and the blocking mode relates to the initial one only! (#) +.. _knotc_zone-ksk-submitted: + **zone-ksk-submitted** *zone*... [**+ttl** *seconds*] Use when the zone's KSK rollover is in submission phase. By calling this command the user confirms manually that the parent zone contains DS record for the new @@ -190,48 +226,74 @@ Actions parameter specifies the parent DS's TTL and possibly other delays, with the effect that the removal of old KSK is postponed by this number of seconds. (#) +.. _knotc_zone-freeze: + **zone-freeze** [*zone*...] Trigger a zone freeze. All running events will be finished and all new and pending (planned) zone-changing events (load, refresh, update, flush, and DNSSEC signing) will be held up until the zone is thawed. Up to 8 (this limit is hardcoded) DDNS updates per zone will be queued, subsequent updates will be refused. (#) +.. _knotc_zone-thaw: + **zone-thaw** [*zone*...] Trigger dismissal of zone freeze. (#) +.. _knotc_zone-xfr-freeze: + **zone-xfr-freeze** [*zone*...] Temporarily disable outgoing AXFR/IXFR for the zone(s). (#) +.. _knotc_zone-xfr-thaw: + **zone-xfr-thaw** [*zone*...] Dismiss outgoing XFR freeze. (#) +.. _knotc_zone-read: + **zone-read** *zone* [*owner* [*type*]] Get zone data that are currently being presented. +.. _knotc_zone-begin: + **zone-begin** *zone*... [**+benevolent**] Begin a zone transaction. If **+benevolent** is used, the transaction will be committed even if it contains removals of non-existent records or additions of existing records. +.. _knotc_zone-commit: + **zone-commit** *zone*... Commit the zone transaction. All changes are applied to the zone. +.. _knotc_zone-abort: + **zone-abort** *zone*... Abort the zone transaction. All changes are discarded. +.. _knotc_zone-diff: + **zone-diff** *zone* Get zone changes within the transaction. +.. _knotc_zone-get: + **zone-get** *zone* [*owner* [*type*]] Get zone data within the transaction. +.. _knotc_zone-set: + **zone-set** *zone* *owner* [*ttl*] *type* *rdata* Add zone record within the transaction. The first record in a rrset requires a ttl value specified. +.. _knotc_zone-unset: + **zone-unset** *zone* *owner* [*type* [*rdata*]] Remove zone data within the transaction. +.. _knotc_zone-purge: + **zone-purge** *zone*... [**+orphan**] [*filter*...] Purge zone data, zone file, journal, timers, and/or KASP data of specified zones. Available filters are **+expire**, **+zonefile**, **+journal**, **+timers**, @@ -242,10 +304,14 @@ Actions to the zone and triggering of zone related events during purge; use of **zone-freeze** is advisable. This command always requires the force option. (#) +.. _knotc_zone-stats: + **zone-stats** *zone* [*module*\ [\ **.**\ *counter*\ ]] Show zone statistics counter(s). To print also counters with value 0, use force option. +.. _knotc_zone-serial-set: + **zone-serial-set** *zone* [[**+**]\ *serial*] Set the zone SOA serial to the specified value. If the argument is prefixed with **+**, the serial is incremented by that value (the special constant **MAX** @@ -255,14 +321,20 @@ Actions is created and committed solely for setting the new SOA serial. If no argument is specified, the current zone SOA serial is returned. +.. _knotc_conf-init: + **conf-init** Initialize the configuration database. If the database doesn't exist yet, execute this command as an intended user to ensure the server is permitted to access the database (e.g. *sudo -u knot knotc conf-init*). (*) +.. _knotc_conf-check: + **conf-check** Check the server configuration. (*) +.. _knotc_conf-import: + **conf-import** *filename* [**+nopurge**] Import a configuration file into the configuration database. If the database doesn't exist yet, execute this command as an intended user to ensure the server @@ -271,34 +343,54 @@ Actions database from purging before the import itself. Also ensure the server is not using the configuration database at the same time! (*) +.. _knotc_conf-export: + **conf-export** [*filename*] [**+schema**] Export the configuration database (or JSON schema) into a file or stdout. (*) +.. _knotc_conf-list: + **conf-list** [*item*] List the configuration database sections or section items. +.. _knotc_conf-read: + **conf-read** [*item*] Read the item from the active configuration database. +.. _knotc_conf-begin: + **conf-begin** Begin a writing configuration database transaction. Only one transaction can be opened at a time. +.. _knotc_conf-commit: + **conf-commit** Commit the configuration database transaction. +.. _knotc_conf-abort: + **conf-abort** Rollback the configuration database transaction. +.. _knotc_conf-diff: + **conf-diff** [*item*] Get the item difference in the transaction. +.. _knotc_conf-get: + **conf-get** [*item*] Get the item data from the transaction. +.. _knotc_conf-set: + **conf-set** *item* [*data*...] Set the item data in the transaction. +.. _knotc_conf-unset: + **conf-unset** [*item*] [*data*...] Unset the item data in the transaction. From 60cd64a88584f38f663b4b4ae5fb1df415e64475 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 4 Feb 2026 12:15:02 +0100 Subject: [PATCH 354/675] doc: warn that moving member between generated catalogs is complicated --- doc/reference.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/doc/reference.rst b/doc/reference.rst index 24a81efc9e..30d5863572 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -3538,6 +3538,22 @@ Assign this member zone to specified generated catalog zone. The referenced catalog zone must exist and have :ref:`zone_catalog-role` set to *generate*. +.. WARNING:: + Atomically changing a member zone from one catalog zone to another that is + consumed by the same secondary is not recommended, as the update to the target + catalog zone may be randomly processed first and ignored due to a clash between + catalogs. + + The correct catalog zone processing order on secondaries can be achieved by + temporarily :ref:`freezing outgoing transfers` of the + target catalog zone and :ref:`thawing` it after the source + catalog zone has already been processed (i.e. the member has been removed), + and then manually :ref:`notifying` the secondaries. + + If the generated zone catalogs have already arrived at a secondary in the + wrong order, triggering a :ref:`zone retransfer` of + the target catalog on the secondary fixes the situation. + *Default:* not set .. _zone_catalog-group: From b8ef28b6561d768bd8c149c442f85c8594fa529f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 28 Jan 2026 09:18:51 +0100 Subject: [PATCH 355/675] conf: soften catalog zone configuration checks --- doc/reference.rst | 8 +++--- src/knot/conf/tools.c | 58 +++++++++++++++++++++++++++---------------- 2 files changed, 41 insertions(+), 25 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 30d5863572..e872015bbe 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -3519,7 +3519,7 @@ Multiple catalog templates may be defined. The first one is used unless the memb has the *group* property defined, matching another catalog template. .. NOTE:: - This option must be set if and only if :ref:`zone_catalog-role` is *interpret*. + This option must be set if and only if :ref:`zone_catalog-role` is ``interpret``. Nested catalog zones aren't supported. Therefore catalog templates can't contain :ref:`zone_catalog-role` set to ``interpret`` or ``generate``. @@ -3534,9 +3534,9 @@ catalog-zone Assign this member zone to specified generated catalog zone. .. NOTE:: - This option must be set if and only if :ref:`zone_catalog-role` is *member*. + This option must be set if :ref:`zone_catalog-role` is ``member``. - The referenced catalog zone must exist and have :ref:`zone_catalog-role` set to *generate*. + The referenced catalog zone must exist and have :ref:`zone_catalog-role` set to ``generate``. .. WARNING:: Atomically changing a member zone from one catalog zone to another that is @@ -3564,7 +3564,7 @@ catalog-group Assign this member zone to specified catalog group (configuration template). .. NOTE:: - This option has effect if and only if :ref:`zone_catalog-role` is *member*. + This option has an effect if and only if :ref:`zone_catalog-role` is ``member``. *Default:* not set diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index 2e6271731c..ef4c5e3580 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -1081,7 +1081,7 @@ int check_include_from( val = conf_rawid_get_txn(args->extra->conf, args->extra->txn, \ C_TPL, option, tpl->data, tpl->len); \ if (val.code == KNOT_EOK) { \ - args->err_str = "'" option_string "' not compatible with the role"; \ + args->err_str = "'" option_string "' not compatible with catalog role"; \ return KNOT_EINVAL; \ } \ } @@ -1116,6 +1116,18 @@ static int sub_check_catalog_tpl( } } +#define CHECK_CATZ(option, option_string, must) \ +{ \ + conf_val_t val = conf_get_wrap(args, option); \ + if (val.code == KNOT_EOK && !must) { \ + args->err_str = "'" option_string "' not compatible with catalog role"; \ + return KNOT_EINVAL; \ + } else if (val.code != KNOT_EOK && must) { \ + args->err_str = "'" option_string "' required with catalog role"; \ + return KNOT_EINVAL; \ + } \ +} + static int check_zone_or_tpl( knotd_conf_check_args_t *args) { @@ -1170,26 +1182,11 @@ static int check_zone_or_tpl( } conf_val_t catalog_role = conf_get_wrap(args, C_CATALOG_ROLE); - conf_val_t catalog_tpl = conf_get_wrap(args, C_CATALOG_TPL); - conf_val_t catalog_zone = conf_get_wrap(args, C_CATALOG_ZONE); - conf_val_t catalog_serial = conf_get_wrap(args, C_SERIAL_POLICY); - - unsigned role = conf_opt(&catalog_role); - if ((bool)(role == CATALOG_ROLE_INTERPRET) != (bool)(catalog_tpl.code == KNOT_EOK)) { - args->err_str = "'catalog-role' must correspond to configured 'catalog-template'"; - return KNOT_EINVAL; - } - if ((bool)(role == CATALOG_ROLE_MEMBER) != (bool)(catalog_zone.code == KNOT_EOK)) { - args->err_str = "'catalog-role' must correspond to configured 'catalog-zone'"; - return KNOT_EINVAL; - } - if (role == CATALOG_ROLE_GENERATE && - conf_opt(&catalog_serial) != SERIAL_POLICY_UNIXTIME && // Default doesn't harm. - catalog_serial.code == KNOT_EOK) { - args->err_str = "'serial-policy' must be 'unixtime' for generated catalog zones"; - return KNOT_EINVAL; - } - if (role == CATALOG_ROLE_INTERPRET) { + switch (conf_opt(&catalog_role)) { + case CATALOG_ROLE_INTERPRET: + CHECK_CATZ(C_CATALOG_ZONE, "catalog-zone", false); + CHECK_CATZ(C_CATALOG_TPL, "catalog-template", true); + conf_val_t catalog_tpl = conf_get_wrap(args, C_CATALOG_TPL); conf_val(&catalog_tpl); while (catalog_tpl.code == KNOT_EOK) { if (sub_check_catalog_tpl(args, &catalog_tpl) != KNOT_EOK) { @@ -1197,6 +1194,25 @@ static int check_zone_or_tpl( } conf_val_next(&catalog_tpl); } + break; + case CATALOG_ROLE_GENERATE: + CHECK_CATZ(C_CATALOG_TPL, "catalog-template", false); + // C_CATALOG_ZONE is ignored for convenience reasons. + conf_val_t serial = conf_get_wrap(args, C_SERIAL_POLICY); + if (conf_opt(&serial) != SERIAL_POLICY_UNIXTIME && // Default doesn't harm. + serial.code == KNOT_EOK) { + args->err_str = "'serial-policy' must be 'unixtime' for generated catalog zones"; + return KNOT_EINVAL; + } + break; + case CATALOG_ROLE_MEMBER: + CHECK_CATZ(C_CATALOG_ZONE, "catalog-zone", true); + CHECK_CATZ(C_CATALOG_TPL, "catalog-template", false); + break; + default: + CHECK_CATZ(C_CATALOG_ZONE, "catalog-zone", false); + CHECK_CATZ(C_CATALOG_TPL, "catalog-template",false); + break; } conf_val_t ds_push = conf_get_wrap(args, C_DS_PUSH); From 08e5a1416ea42cd49c049f791bcf31bd2fe0c91c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 28 Jan 2026 11:40:17 +0100 Subject: [PATCH 356/675] zonedb-load: reinitialize catalog-related options for reloaded zone --- src/knot/zone/zonedb-load.c | 101 +++++++++++++++++++++++------------- 1 file changed, 64 insertions(+), 37 deletions(-) diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index b2cf094294..0674923a2d 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -93,6 +93,61 @@ static void replan_events(conf_t *conf, zone_t *zone, zone_t *old_zone, bool con } } +static int configure_catalog(conf_t *conf, zone_t *zone, server_t *server) +{ + int ret = KNOT_EOK; + + conf_val_t role_val = conf_zone_get(conf, C_CATALOG_ROLE, zone->name); + switch (conf_opt(&role_val)) { + case CATALOG_ROLE_MEMBER: + assert(zone->catalog_gen == NULL); + conf_val_t catz = conf_zone_get(conf, C_CATALOG_ZONE, zone->name); + assert(catz.code == KNOT_EOK); // conf consistency checked in conf/tools.c + zone->catalog_gen = knot_dname_copy(conf_dname(&catz), NULL); + if (zone->catalog_gen == NULL) { + return KNOT_ENOMEM; + } + + if (zone->timers->catalog_member == 0) { + zone->timers->catalog_member = time(NULL); + zone->timers->flags |= TIMERS_MODIFIED; + ret = zone_timers_write(&zone->server->timerdb, zone->name, + zone->timers); + if (ret != KNOT_EOK) { + log_zone_error(zone->name, "failed to initialize catalog member zone (%s)", + knot_strerror(ret)); + return ret; + } + } + // zone_set_flag(zone, ZONE_IS_CAT_MEMBER); is set later. + break; + case CATALOG_ROLE_GENERATE: + if (zone->cat_members == NULL) { + zone->cat_members = catalog_update_new(); + if (zone->cat_members == NULL) { + ret = KNOT_ENOMEM; + log_zone_error(zone->name, "failed to initialize catalog zone (%s)", + knot_strerror(ret)); + return ret; + } + zone_set_flag(zone, ZONE_IS_CATALOG); + } + break; + case CATALOG_ROLE_INTERPRET: + ret = catalog_open(&server->catalog); + if (ret != KNOT_EOK) { + log_error("failed to open catalog database (%s)", knot_strerror(ret)); + return ret; + } + zone_set_flag(zone, ZONE_IS_CATALOG); + break; + default: + break; + } + + return ret; +} + static zone_t *create_zone_reload(conf_t *conf, const knot_dname_t *name, server_t *server, zone_t *old_zone) { @@ -115,8 +170,10 @@ static zone_t *create_zone_reload(conf_t *conf, const knot_dname_t *name, zone->cat_members = old_zone->cat_members; old_zone->cat_members = NULL; - zone->catalog_gen = old_zone->catalog_gen; - old_zone->catalog_gen = NULL; + if (configure_catalog(conf, zone, server) != KNOT_EOK) { + zone_free(&zone); + return NULL; + } return zone; } @@ -129,7 +186,7 @@ static zone_t *create_zone_new(conf_t *conf, const knot_dname_t *name, return NULL; } - int ret = zone_timers_read(&server->timerdb, name, zone->timers); + int ret = zone_timers_read(&server->timerdb, zone->name, zone->timers); if (ret != KNOT_EOK && ret != KNOT_ENODB && ret != KNOT_ENOENT) { log_zone_error(zone->name, "failed to load persistent timers (%s)", knot_strerror(ret)); @@ -139,39 +196,9 @@ static zone_t *create_zone_new(conf_t *conf, const knot_dname_t *name, zone_timers_sanitize(conf, zone); - conf_val_t role_val = conf_zone_get(conf, C_CATALOG_ROLE, name); - unsigned role = conf_opt(&role_val); - if (role == CATALOG_ROLE_MEMBER) { - conf_val_t catz = conf_zone_get(conf, C_CATALOG_ZONE, name); - assert(catz.code == KNOT_EOK); // conf consistency checked in conf/tools.c - zone->catalog_gen = knot_dname_copy(conf_dname(&catz), NULL); - if (zone->timers->catalog_member == 0) { - zone->timers->catalog_member = time(NULL); - zone->timers->flags |= TIMERS_MODIFIED; - ret = zone_timers_write(&zone->server->timerdb, zone->name, - zone->timers); - } - if (ret != KNOT_EOK || zone->catalog_gen == NULL) { - log_zone_error(zone->name, "failed to initialize catalog member zone (%s)", - knot_strerror(KNOT_ENOMEM)); - zone_free(&zone); - return NULL; - } - } else if (role == CATALOG_ROLE_GENERATE) { - zone->cat_members = catalog_update_new(); - if (zone->cat_members == NULL) { - log_zone_error(zone->name, "failed to initialize catalog zone (%s)", - knot_strerror(KNOT_ENOMEM)); - zone_free(&zone); - return NULL; - } - zone_set_flag(zone, ZONE_IS_CATALOG); - } else if (role == CATALOG_ROLE_INTERPRET) { - ret = catalog_open(&server->catalog); - if (ret != KNOT_EOK) { - log_error("failed to open catalog database (%s)", knot_strerror(ret)); - } - zone_set_flag(zone, ZONE_IS_CATALOG); + if (configure_catalog(conf, zone, server) != KNOT_EOK) { + zone_free(&zone); + return NULL; } if (zone_expired(zone)) { @@ -183,7 +210,7 @@ static zone_t *create_zone_new(conf_t *conf, const knot_dname_t *name, } else { log_zone_info(zone->name, "zone will be loaded"); // if load fails, fallback to bootstrap - replan_load_new(zone, role == CATALOG_ROLE_GENERATE); + replan_load_new(zone, zone->cat_members != NULL); } return zone; From 340c468f03a8dac2eb98d151223d00032479fdf3 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 28 Jan 2026 14:26:58 +0100 Subject: [PATCH 357/675] zonedb-load: merge zone_get_catalog_group() with configure_catalog() --- src/knot/zone/zonedb-load.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 0674923a2d..3d1f884c3a 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -45,14 +45,6 @@ static bool zone_file_updated(conf_t *conf, const zone_t *old_zone, } } -static void zone_get_catalog_group(conf_t *conf, zone_t *zone) -{ - conf_val_t val = conf_zone_get(conf, C_CATALOG_GROUP, zone->name); - if (val.code == KNOT_EOK) { - zone->catalog_group = conf_str(&val); - } -} - static zone_t *create_zone_from(const knot_dname_t *name, server_t *server) { zone_t *zone = zone_new(name); @@ -119,6 +111,12 @@ static int configure_catalog(conf_t *conf, zone_t *zone, server_t *server) return ret; } } + + assert(zone->catalog_group == NULL); + conf_val_t val = conf_zone_get(conf, C_CATALOG_GROUP, zone->name); + if (val.code == KNOT_EOK) { + zone->catalog_group = conf_str(&val); + } // zone_set_flag(zone, ZONE_IS_CAT_MEMBER); is set later. break; case CATALOG_ROLE_GENERATE: @@ -240,10 +238,6 @@ static zone_t *create_zone(conf_t *conf, const knot_dname_t *name, server_t *ser z = create_zone_new(conf, name, server); } - if (z != NULL) { - zone_get_catalog_group(conf, z); - } - return z; } From 3b05c337c346e0eb73839597c2a31e1c64620123 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 28 Jan 2026 14:59:21 +0100 Subject: [PATCH 358/675] zonedb: add missing check for non-NULL return from trie --- src/knot/zone/zonedb.c | 9 +++++++-- src/knot/zone/zonedb.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/knot/zone/zonedb.c b/src/knot/zone/zonedb.c index 0fd024a2d5..6e54595a38 100644 --- a/src/knot/zone/zonedb.c +++ b/src/knot/zone/zonedb.c @@ -75,11 +75,16 @@ int knot_zonedb_insert(knot_zonedb_t *db, zone_t *zone) uint8_t *lf = knot_dname_lf(zone->name, lf_storage); assert(lf); + trie_val_t *rval; if (db->cow != NULL) { - *trie_get_cow(db->cow, lf + 1, *lf) = zone; + rval = trie_get_cow(db->cow, lf + 1, *lf); } else { - *trie_get_ins(db->trie, lf + 1, *lf) = zone; + rval = trie_get_ins(db->trie, lf + 1, *lf); } + if (rval == NULL) { + return KNOT_ENOMEM; + } + *rval = zone; return KNOT_EOK; } diff --git a/src/knot/zone/zonedb.h b/src/knot/zone/zonedb.h index ead44a5cbe..3c52fdb5d4 100644 --- a/src/knot/zone/zonedb.h +++ b/src/knot/zone/zonedb.h @@ -60,6 +60,7 @@ knot_zonedb_t *knot_zonedb_cow(knot_zonedb_t *db); * \param zone Parsed zone. * * \retval KNOT_EOK + * \retval KNOT_ENOMEM * \retval KNOT_EZONEIN */ int knot_zonedb_insert(knot_zonedb_t *db, zone_t *zone); From 6c2d22631c22f047b1e765bb1bcaf1a2ba824c34 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 6 Feb 2026 08:53:07 +0100 Subject: [PATCH 359/675] conf: unify CONF_REF_EMPTY name --- src/knot/conf/conf.c | 2 +- src/knot/conf/conf.h | 2 +- src/knot/conf/schema.c | 6 +++--- src/knot/conf/tools.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index 1a52aa12e9..308771e45b 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -181,7 +181,7 @@ conf_val_t conf_zone_get_txn( switch (val.code) { case KNOT_EOK: // 3 ~ 2-byte length prefix + '\0'. - if (val.blob_len == 3 && (val.item->flags & (YP_FMULTI | CONF_REF_EMPTY))) { + if (val.blob_len == 3 && (val.item->flags & (YP_FMULTI | CONF_IO_FREF_EMPTY))) { assert(memcmp(val.blob, "\x00\x01\x00", val.blob_len) == 0); conf_val_t empty = { .item = val.item, .code = KNOT_ENOENT }; return empty; diff --git a/src/knot/conf/conf.h b/src/knot/conf/conf.h index b496bb1fa3..fc4a096d41 100644 --- a/src/knot/conf/conf.h +++ b/src/knot/conf/conf.h @@ -22,7 +22,7 @@ #define CONF_IO_FRLD_MOD YP_FUSR8 /*!< Reload global modules. */ #define CONF_IO_FRLD_ZONE YP_FUSR9 /*!< Reload a specific zone. */ #define CONF_IO_FRLD_ZONES YP_FUSR10 /*!< Reload all zones. */ -#define CONF_REF_EMPTY YP_FUSR11 /*!< Allow empty reference value for zone item. */ +#define CONF_IO_FREF_EMPTY YP_FUSR11 /*!< Allow empty reference value for zone item. */ #define CONF_IO_FRLD_ALL (CONF_IO_FRLD_SRV | CONF_IO_FRLD_LOG | \ CONF_IO_FRLD_MOD | CONF_IO_FRLD_ZONES) diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 88594fb85c..d29ecd7027 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -481,10 +481,10 @@ static const yp_item_t desc_external[] = { { C_FILE, YP_TSTR, YP_VNONE, FLAGS }, \ { C_ZONE_DB_IN, YP_TINT, YP_VINT = { -1, 8, -1 }, FLAGS, { check_db_instance } }, \ { C_ZONE_DB_OUT, YP_TINT, YP_VINT = { -1, 8, -1 }, FLAGS, { check_db_instance } }, \ - { C_MASTER, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_REF_EMPTY, \ + { C_MASTER, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_IO_FREF_EMPTY, \ { check_ref } }, \ { C_DDNS_MASTER, YP_TREF, YP_VREF = { C_RMT }, YP_FNONE, { check_ref_empty } }, \ - { C_NOTIFY, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_REF_EMPTY, \ + { C_NOTIFY, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_IO_FREF_EMPTY, \ { check_ref } }, \ { C_NOTIFY_DELAY, YP_TINT, YP_VINT = { 0, UINT32_MAX, 0, YP_STIME } }, \ { C_UPDATE_DELAY, YP_TINT, YP_VINT = { 0, UINT32_MAX, 0, YP_STIME } }, \ @@ -508,7 +508,7 @@ static const yp_item_t desc_external[] = { { C_DNSSEC_SIGNING, YP_TBOOL, YP_VNONE, FLAGS }, \ { C_DNSSEC_VALIDATION, YP_TBOOL, YP_VNONE, FLAGS }, \ { C_DNSSEC_POLICY, YP_TREF, YP_VREF = { C_POLICY }, FLAGS, { check_ref_dflt } }, \ - { C_DS_PUSH, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_REF_EMPTY | FLAGS, \ + { C_DS_PUSH, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_IO_FREF_EMPTY | FLAGS, \ { check_ref } }, \ { C_REVERSE_GEN, YP_TDNAME,YP_VNONE, YP_FMULTI | FLAGS }, \ { C_INCLUDE_FROM, YP_TDNAME,YP_VNONE, YP_FMULTI | FLAGS, { check_include_from } }, \ diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index ef4c5e3580..ebd6b29dfc 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -231,7 +231,7 @@ int check_ref( bool found1 = false, found2 = false; // Check if allowed empty value for specific zone items. - if (args->data_len == 1 && (args->item->flags & CONF_REF_EMPTY) && + if (args->data_len == 1 && (args->item->flags & CONF_IO_FREF_EMPTY) && args->item->parent->name[0] == C_ZONE[0] && memcmp(&args->item->parent->name[1], &C_ZONE[1], C_ZONE[0]) == 0) { return KNOT_EOK; From 7eb0ebe70a2a1dd054448b2ef23288614c36d93b Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 28 Jan 2026 17:30:57 +0100 Subject: [PATCH 360/675] zonedb-load: fix updates of generated catalogs upon reload, overall improvements --- src/knot/catalog/generate.c | 72 +--- src/knot/catalog/generate.h | 22 +- src/knot/conf/conf.h | 3 + src/knot/conf/schema.c | 17 +- src/knot/zone/zone.c | 20 ++ src/knot/zone/zone.h | 2 + src/knot/zone/zonedb-load.c | 331 +++++++++++++----- .../catalog/generate_reconf/data/cz.zone | 10 + .../catalog/generate_reconf/data/gen3.conf | 5 + .../catalog/generate_reconf/data/org.cz.zone | 5 + .../catalog/generate_reconf/data/zone2.conf | 7 + .../tests/catalog/generate_reconf/test.py | 331 ++++++++++++++++++ tests-extra/tools/dnstest/server.py | 24 +- 13 files changed, 667 insertions(+), 182 deletions(-) create mode 100644 tests-extra/tests/catalog/generate_reconf/data/cz.zone create mode 100644 tests-extra/tests/catalog/generate_reconf/data/gen3.conf create mode 100644 tests-extra/tests/catalog/generate_reconf/data/org.cz.zone create mode 100644 tests-extra/tests/catalog/generate_reconf/data/zone2.conf create mode 100644 tests-extra/tests/catalog/generate_reconf/test.py diff --git a/src/knot/catalog/generate.c b/src/knot/catalog/generate.c index dc3333691d..1a68f57b21 100644 --- a/src/knot/catalog/generate.c +++ b/src/knot/catalog/generate.c @@ -6,15 +6,16 @@ #include #include "knot/catalog/generate.h" -#include "knot/common/log.h" #include "knot/updates/zone-update.h" #include "contrib/openbsd/siphash.h" #include "contrib/wire_ctx.h" -static knot_dname_t *catalog_member_owner(const knot_dname_t *member, - const knot_dname_t *catzone, - time_t member_time) +knot_dname_t *catalog_member_owner(const knot_dname_t *member, const knot_dname_t *catzone, + time_t member_time) { + assert(member); + assert(catzone); + SIPHASH_CTX hash; SIPHASH_KEY shkey = { 0 }; // only used for hashing -> zero key SipHash24_Init(&hash, &shkey); @@ -52,69 +53,6 @@ static knot_dname_t *catalog_member_owner(const knot_dname_t *member, return out; } -void catalog_generate_rem(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new) -{ - if (zone == NULL) { - return; - } - knot_dname_t *cg = zone->catalog_gen; - if (cg == NULL) { - return; - } - zone_t *catz = knot_zonedb_find(db_new, cg); - if (catz == NULL || catz->contents == NULL) { - return; - } - assert(catz->cat_members != NULL); // if this failed to allocate, catz wasn't added to zonedb - knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers_static->catalog_member); - if (owner == NULL) { - catz->cat_members->error = KNOT_ENOENT; - return; - } - int ret = catalog_update_add(catz->cat_members, zone->name, owner, cg, - CAT_UPD_REM, NULL, 0, NULL); - if (ret != KNOT_EOK) { - catz->cat_members->error = ret; - } else { - zone_schedule_update(conf, catz, ZONE_EVENT_LOAD); - } - free(owner); -} - -void catalog_generate_add(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new, bool property) -{ - if (zone == NULL) { - return; - } - knot_dname_t *cg = zone->catalog_gen; - if (cg == NULL) { - return; - } - zone_t *catz = knot_zonedb_find(db_new, cg); - if (catz == NULL) { - log_zone_error(zone->name, "member zone belongs to non-existing catalog zone"); - return; - } else if (catz->cat_members == NULL) { - log_zone_error(zone->name, "member zone belongs to non-generated catalog zone"); - return; - } - knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers_static->catalog_member); - if (owner == NULL) { - catz->cat_members->error = KNOT_ENOENT; - return; - } - size_t cgroup_size = zone->catalog_group == NULL ? 0 : strlen(zone->catalog_group); - int ret = catalog_update_add(catz->cat_members, zone->name, owner, cg, - (property ? CAT_UPD_PROP : CAT_UPD_ADD), - zone->catalog_group, cgroup_size, NULL); - if (ret != KNOT_EOK) { - catz->cat_members->error = ret; - } else { - zone_schedule_update(conf, catz, ZONE_EVENT_LOAD); - } - free(owner); -} - static void set_rdata(knot_rrset_t *rrset, uint8_t *data, uint16_t len) { knot_rdata_init(rrset->rrs.rdata, len, data); diff --git a/src/knot/catalog/generate.h b/src/knot/catalog/generate.h index bd7d8387d2..2d8670d8f3 100644 --- a/src/knot/catalog/generate.h +++ b/src/knot/catalog/generate.h @@ -6,30 +6,22 @@ #pragma once #include "knot/catalog/catalog_update.h" -#include "knot/zone/zonedb.h" #define CATALOG_SOA_REFRESH 3600 #define CATALOG_SOA_RETRY 600 #define CATALOG_SOA_EXPIRE (INT32_MAX - 1) /*! - * \brief Add a member removal to corresponding catalog update. + * \brief Return generated catalog member record owner name. * - * \param conf Configuration. - * \param zone Member zone. - * \param db_new New zone database. - */ -void catalog_generate_rem(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new); - -/*! - * \brief Add a member addition/prop to corresponding catalog update. + * \param member Member name. + * \param catzone Catalog zone name. + * \param member_time Time when the member was included in the generated catalog. * - * \param conf Configuration. - * \param zone Member zone. - * \param db_new New zone database. - * \param property Property or addition indicator. + * \return Owner name or NULL. */ -void catalog_generate_add(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new, bool property); +knot_dname_t *catalog_member_owner(const knot_dname_t *member, const knot_dname_t *catzone, + time_t member_time); /*! * \brief Generate catalog zone contents from (full) catalog update. diff --git a/src/knot/conf/conf.h b/src/knot/conf/conf.h index fc4a096d41..58bcb6f07f 100644 --- a/src/knot/conf/conf.h +++ b/src/knot/conf/conf.h @@ -23,6 +23,9 @@ #define CONF_IO_FRLD_ZONE YP_FUSR9 /*!< Reload a specific zone. */ #define CONF_IO_FRLD_ZONES YP_FUSR10 /*!< Reload all zones. */ #define CONF_IO_FREF_EMPTY YP_FUSR11 /*!< Allow empty reference value for zone item. */ +#define CONF_IO_FTPL YP_FUSR12 /*!< Template item. */ +#define CONF_IO_FCAT YP_FUSR13 /*!< Catalog-related item. */ +#define CONF_IO_FREV YP_FUSR14 /*!< Reverse/include item. */ #define CONF_IO_FRLD_ALL (CONF_IO_FRLD_SRV | CONF_IO_FRLD_LOG | \ CONF_IO_FRLD_MOD | CONF_IO_FRLD_ZONES) diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index d29ecd7027..914cf0fad0 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -510,8 +510,8 @@ static const yp_item_t desc_external[] = { { C_DNSSEC_POLICY, YP_TREF, YP_VREF = { C_POLICY }, FLAGS, { check_ref_dflt } }, \ { C_DS_PUSH, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_IO_FREF_EMPTY | FLAGS, \ { check_ref } }, \ - { C_REVERSE_GEN, YP_TDNAME,YP_VNONE, YP_FMULTI | FLAGS }, \ - { C_INCLUDE_FROM, YP_TDNAME,YP_VNONE, YP_FMULTI | FLAGS, { check_include_from } }, \ + { C_REVERSE_GEN, YP_TDNAME,YP_VNONE, CONF_IO_FREV | YP_FMULTI | FLAGS }, \ + { C_INCLUDE_FROM, YP_TDNAME,YP_VNONE, CONF_IO_FREV | YP_FMULTI | FLAGS, { check_include_from } }, \ { C_SERIAL_POLICY, YP_TOPT, YP_VOPT = { serial_policies, SERIAL_POLICY_INCREMENT } }, \ { C_SERIAL_MODULO, YP_TSTR, YP_VSTR = { "0/1" }, YP_FNONE, { check_modulo_shift } }, \ { C_ZONEMD_GENERATE, YP_TOPT, YP_VOPT = { zone_digest, ZONE_DIGEST_NONE }, FLAGS }, \ @@ -522,10 +522,10 @@ static const yp_item_t desc_external[] = { { C_RETRY_MAX_INTERVAL, YP_TINT, YP_VINT = { 1, UINT32_MAX, UINT32_MAX, YP_STIME } }, \ { C_EXPIRE_MIN_INTERVAL, YP_TINT, YP_VINT = { 3, UINT32_MAX, 3, YP_STIME } }, \ { C_EXPIRE_MAX_INTERVAL, YP_TINT, YP_VINT = { 3, UINT32_MAX, UINT32_MAX, YP_STIME } }, \ - { C_CATALOG_ROLE, YP_TOPT, YP_VOPT = { catalog_roles, CATALOG_ROLE_NONE }, FLAGS }, \ - { C_CATALOG_TPL, YP_TREF, YP_VREF = { C_TPL }, YP_FMULTI | FLAGS, { check_ref, check_catalog_tpl } }, \ - { C_CATALOG_ZONE, YP_TDNAME,YP_VNONE, FLAGS | CONF_IO_FRLD_ZONES }, \ - { C_CATALOG_GROUP, YP_TSTR, YP_VNONE, FLAGS | CONF_IO_FRLD_ZONES, { check_catalog_group } }, \ + { C_CATALOG_ROLE, YP_TOPT, YP_VOPT = { catalog_roles, CATALOG_ROLE_NONE }, CONF_IO_FCAT | FLAGS }, \ + { C_CATALOG_TPL, YP_TREF, YP_VREF = { C_TPL }, YP_FMULTI | CONF_IO_FCAT | FLAGS, { check_ref, check_catalog_tpl } }, \ + { C_CATALOG_ZONE, YP_TDNAME,YP_VNONE, CONF_IO_FCAT | FLAGS }, \ + { C_CATALOG_GROUP, YP_TSTR, YP_VNONE, CONF_IO_FCAT | FLAGS, { check_catalog_group } }, \ { C_MODULE, YP_TDATA, YP_VDATA = { 0, NULL, mod_id_to_bin, mod_id_to_txt }, \ YP_FMULTI | FLAGS, { check_modref } }, \ { C_COMMENT, YP_TSTR, YP_VNONE }, \ @@ -534,13 +534,14 @@ static const yp_item_t desc_template[] = { { C_ID, YP_TSTR, YP_VNONE, CONF_IO_FREF }, { C_GLOBAL_MODULE, YP_TDATA, YP_VDATA = { 0, NULL, mod_id_to_bin, mod_id_to_txt }, YP_FMULTI | CONF_IO_FRLD_MOD, { check_modref } }, - ZONE_ITEMS(CONF_IO_FRLD_ZONES) + ZONE_ITEMS(CONF_IO_FRLD_ZONES | CONF_IO_FTPL) { NULL } }; static const yp_item_t desc_zone[] = { { C_DOMAIN, YP_TDNAME, YP_VNONE, CONF_IO_FRLD_ZONE }, - { C_TPL, YP_TREF, YP_VREF = { C_TPL }, CONF_IO_FRLD_ZONE, { check_ref } }, + { C_TPL, YP_TREF, YP_VREF = { C_TPL }, CONF_IO_FRLD_ZONE | CONF_IO_FCAT | CONF_IO_FREV, + { check_ref } }, ZONE_ITEMS(CONF_IO_FRLD_ZONE) { NULL } }; diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 1f78d66072..07361095f3 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -946,6 +946,16 @@ void zone_includes_rem(zone_t *zone, zone_t *include) } } +void zone_includes_upd(zone_t *zone, zone_t *include, zone_t *old) +{ + zone_include_t *n; + WALK_LIST(n, zone->include_from) { + if (n->include == old) { + n->include = include; + } + } +} + void zone_includes_clear(zone_t *zone) { zone_include_t *n, *next; @@ -960,6 +970,16 @@ void zone_local_notify_subscribe(zone_t *zone, zone_t *subscribe) ptrlist_add(&zone->internal_notify, subscribe, NULL); } +void zone_local_notify_update(zone_t *zone, zone_t *subscribe, zone_t *old) +{ + ptrnode_t *n; + WALK_LIST(n, zone->internal_notify) { + if (n->d == old) { + n->d = subscribe; + } + } +} + void zone_local_notify_unsubscribe(zone_t *zone, zone_t *subscribe) { ptrlist_find_rem(&zone->internal_notify, subscribe, NULL); diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index a624863a41..4ac43d66ae 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -322,9 +322,11 @@ int zone_dump_to_dir(conf_t *conf, zone_t *zone, const char *dir); bool zone_includes_configured(conf_t *conf, zone_t *zone); int zone_includes_add(zone_t *zone, zone_t *include, zone_include_method_t method); void zone_includes_rem(zone_t *zone, zone_t *include); +void zone_includes_upd(zone_t *zone, zone_t *include, zone_t *old); void zone_includes_clear(zone_t *zone); void zone_local_notify_subscribe(zone_t *zone, zone_t *subscribe); +void zone_local_notify_update(zone_t *zone, zone_t *subscribe, zone_t *old); void zone_local_notify_unsubscribe(zone_t *zone, zone_t *subscribe); void zone_local_notify(conf_t *conf, zone_t *zone); diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 3d1f884c3a..90305ccf23 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -243,9 +243,11 @@ static zone_t *create_zone(conf_t *conf, const knot_dname_t *name, server_t *ser static void zone_purge(conf_t *conf, zone_t *zone) { - zone_timers_begin(zone); - (void)selective_zone_purge(conf, zone, PURGE_ZONE_ALL); - zone_timers_commit(conf, zone); + if (zone != NULL) { + zone_timers_begin(zone); + (void)selective_zone_purge(conf, zone, PURGE_ZONE_ALL); + zone_timers_commit(conf, zone); + } } static zone_contents_t *zone_expire(conf_t *conf, zone_t *zone, bool zonedb_cow) @@ -388,7 +390,7 @@ static zone_t *add_member_zone(catalog_upd_val_t *val, knot_zonedb_t *db_new, } if (knot_zonedb_find(db_new, val->member) != NULL) { - log_zone_error(val->member, "zone already configured, ignoring"); + log_zone_warning(val->member, "zone already configured, ignoring"); return NULL; } @@ -418,12 +420,7 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) if (zone == NULL) { return; } - - zone_include_t *n; - WALK_LIST(n, zone->include_from) { - zone_local_notify_unsubscribe(n->include, zone); - } - zone_includes_clear(zone); + assert(EMPTY_LIST(zone->include_from)); zone_include_method_t method = ZONE_INCLUDE_REVERSE; conf_val_t val = conf_zone_get(conf, C_REVERSE_GEN, zone->name); @@ -437,7 +434,8 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) if (forw == NULL) { knot_dname_txt_storage_t forw_str; (void)knot_dname_to_str(forw_str, forw_name, sizeof(forw_str)); - log_zone_warning(zone->name, "zone to reverse %s does not exist", + log_zone_warning(zone->name, "zone to %s %s does not exist", + (method == ZONE_INCLUDE_REVERSE ? "reverse" : "include"), forw_str); } else { (void)zone_includes_add(zone, forw, method); @@ -447,6 +445,27 @@ static void reg_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone) } } +static void upd_reverse(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone, zone_t *old) +{ + if (zone == NULL) { + return; + } + assert(EMPTY_LIST(zone->internal_notify)); + + ptrnode_t *n; + WALK_LIST(n, old->internal_notify) { + zone_t *reverse = n->d; + (void)zone_includes_upd(reverse, zone, old); + } + + zone_include_t *i; + WALK_LIST(i, old->include_from) { + zone_local_notify_update(i->include, zone, old); + } + + reg_reverse(conf, db_new, zone); +} + static void unreg_reverse(zone_t *zone) { if (zone == NULL) { @@ -503,6 +522,66 @@ static zone_t *get_zone(conf_t *conf, const knot_dname_t *name, server_t *server return zone; } +static void catalog_generate_add(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new, + catalog_upd_type_t type) +{ + if (zone == NULL) { + return; + } + knot_dname_t *cg = zone->catalog_gen; + if (cg == NULL) { + return; + } + zone_t *catz = knot_zonedb_find(db_new, cg); + if (catz == NULL) { + if (type != CAT_UPD_REM) { + log_zone_error(zone->name, "cannot add member zone to non-existent catalog zone"); + } + goto cleanup; + } else if (catz->contents == NULL && type == CAT_UPD_REM) { + return; + } else if (catz->cat_members == NULL) { + assert(type != CAT_UPD_REM); // if this failed to allocate, catz wasn't added to zonedb + log_zone_error(zone->name, "cannot add member to non-generated catalog zone"); + goto cleanup; + } + knot_dname_t *owner = catalog_member_owner(zone->name, cg, zone->timers_static->catalog_member); + if (owner == NULL) { + log_zone_error(zone->name, "failed to catalog member"); + goto cleanup; + } + size_t cgroup_size = (type == CAT_UPD_REM || zone->catalog_group == NULL) ? 0 : strlen(zone->catalog_group); + int ret = catalog_update_add(catz->cat_members, zone->name, owner, cg, + type, zone->catalog_group, cgroup_size, NULL); + free(owner); + if (ret != KNOT_EOK) { + log_zone_error(zone->name, "failed to catalog member (%s)", knot_strerror(ret)); + goto cleanup; + } + + zone_schedule_update(conf, catz, ZONE_EVENT_LOAD); + return; +cleanup: + // Purge the reference to generated catalog to reflect the reality for the following checks. + free(zone->catalog_gen); + zone->catalog_gen = NULL; +} + +static void catalog_generate_update(conf_t *conf, knot_zonedb_t *db_new, zone_t *zone, zone_t *old) +{ + if (old == NULL || (old->catalog_gen == NULL && zone->catalog_gen != NULL)) { + catalog_generate_add(conf, zone, db_new, CAT_UPD_ADD); + } else if (old->catalog_gen != NULL && zone->catalog_gen == NULL) { + catalog_generate_add(conf, old, db_new, CAT_UPD_REM); + } else if (old->catalog_gen != NULL && zone->catalog_gen != NULL && + !knot_dname_is_equal(old->catalog_gen, zone->catalog_gen)) { + catalog_generate_add(conf, old, db_new, CAT_UPD_REM); + catalog_generate_add(conf, zone, db_new, CAT_UPD_ADD); + } else if (!same_group(old, zone)) { + catalog_generate_add(conf, zone, db_new, CAT_UPD_PROP); + } +} + static knot_zonedb_t *create_zonedb_commit(conf_t *conf, server_t *server) { knot_zonedb_t *db_old = server->zone_db; // If NULL, zonedb is beeing initialized. @@ -513,9 +592,16 @@ static knot_zonedb_t *create_zonedb_commit(conf_t *conf, server_t *server) assert(conf->io.flags & CONF_IO_FACTIVE); bool include = conf->io.flags & CONF_IO_FDIFF_ZONES; - - // Insert possibly added zones by conf-set include. - if (include) { + bool template = conf->io.flags & CONF_IO_FTPL; + bool cat = conf->io.flags & CONF_IO_FCAT; + bool reverse = conf->io.flags & CONF_IO_FREV; + bool touched_zones = conf->io.zones != NULL && trie_weight(conf->io.zones) > 0; + + if (include || (template && (cat || reverse))) { + /* Insert possibly added zones by conf-set include or reload all catalog + * configurations. Zones cannot be removed with include. New templates + * can affect only new zones. Non-empty conf->io.zones indicates some zones + * have been explicitly modified. */ for (conf_iter_t it = conf_iter(conf, C_ZONE); it.code == KNOT_EOK; conf_iter_next(conf, &it)) { conf_val_t id = conf_iter_id(conf, &it); @@ -523,39 +609,83 @@ static knot_zonedb_t *create_zonedb_commit(conf_t *conf, server_t *server) zone_t *zone = knot_zonedb_find(db_new, name); if (zone == NULL) { // Create an included zone. zone = get_zone(conf, name, server, NULL); - if (zone == NULL) { - continue; + (void)knot_zonedb_insert(db_new, zone); + } else if ((template && (cat || reverse)) || touched_zones) { + assert(zone == knot_zonedb_find(db_old, name)); + zone_t *new = get_zone(conf, name, server, zone); + (void)knot_zonedb_insert(db_new, new); + } + } + + /* Reload existing catalog member zones. The members set is unchanged + * as catalog is processed in the other reload modes. And remove removed zones. */ + if (db_old != NULL && ((template && (cat || reverse)) || touched_zones)) { + knot_zonedb_iter_t *db_it = knot_zonedb_iter_begin(db_old); + for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { + zone_t *zone = knot_zonedb_iter_val(db_it); + if (zone_get_flag(zone, ZONE_IS_CAT_MEMBER, false)) { + zone_t *new = get_zone(conf, zone->name, server, zone); + (void)knot_zonedb_insert(db_new, new); + } else if (knot_zonedb_find(db_new, zone->name) == zone) { + catalog_generate_add(conf, zone, db_new, CAT_UPD_REM); + (void)knot_zonedb_del(db_new, zone->name); } - knot_zonedb_insert(db_new, zone); } + knot_zonedb_iter_free(db_it); } - } - if (conf->io.zones != NULL) { + /* Remove zones, update generated catalogs, update reversed zones + * (expected complete zonedb). */ + knot_zonedb_iter_t *db_it = knot_zonedb_iter_begin(db_new); + for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { + zone_t *zone = knot_zonedb_iter_val(db_it); + zone_t *old = knot_zonedb_find(db_old, zone->name); + if (old == NULL) { + catalog_generate_add(conf, zone, db_new, CAT_UPD_ADD); + } else if ((template && (cat || reverse)) || touched_zones) { + catalog_generate_update(conf, db_new, zone, old); + } + reg_reverse(conf, db_new, zone); + } + knot_zonedb_iter_free(db_it); + } else if (touched_zones) { + /* Add dynamically reconfigured new zones and init catalog contexts. */ trie_it_t *trie_it = trie_it_begin(conf->io.zones); for (; !trie_it_finished(trie_it); trie_it_next(trie_it)) { const knot_dname_t *name = (const knot_dname_t *)trie_it_key(trie_it, NULL); conf_io_type_t type = conf_io_trie_val(trie_it); if (type & CONF_IO_TSET) { zone_t *zone = get_zone(conf, name, server, NULL); - if (zone == NULL) { - continue; - } - knot_zonedb_insert(db_new, zone); - catalog_generate_add(conf, zone, db_new, false); + (void)knot_zonedb_insert(db_new, zone); + } else if (type & CONF_IO_TUNSET) { + continue; + } else if ((type & CONF_IO_TCHANGE) && (cat || reverse)) { + zone_t *old = knot_zonedb_find(db_old, name); + zone_t *zone = get_zone(conf, name, server, old); + (void)knot_zonedb_insert(db_new, zone); + } + } + trie_it_free(trie_it); + + /* Remove zones, update generated catalogs, update reversed zones + * (expected complete zonedb). */ + trie_it = trie_it_begin(conf->io.zones); + for (; !trie_it_finished(trie_it); trie_it_next(trie_it)) { + const knot_dname_t *name = (const knot_dname_t *)trie_it_key(trie_it, NULL); + zone_t *zone = knot_zonedb_find(db_new, name); + conf_io_type_t type = conf_io_trie_val(trie_it); + if (type & CONF_IO_TSET) { + catalog_generate_add(conf, zone, db_new, CAT_UPD_ADD); reg_reverse(conf, db_new, zone); } else if (type & CONF_IO_TUNSET) { - zone_t *zone = knot_zonedb_find(db_new, name); + catalog_generate_add(conf, zone, db_new, CAT_UPD_REM); unreg_reverse(zone); - knot_zonedb_del(db_new, name); - catalog_generate_rem(conf, zone, db_new); - } else { - zone_t *zone = knot_zonedb_find(db_new, name); + (void)knot_zonedb_del(db_new, name); + } else if ((type & CONF_IO_TCHANGE) && (cat || reverse)) { zone_t *old = knot_zonedb_find(db_old, name); - if (!same_group(old, zone)) { - catalog_generate_add(conf, zone, db_new, true); - } - reg_reverse(conf, db_new, zone); + assert(old != NULL); + catalog_generate_update(conf, db_new, zone, old); + upd_reverse(conf, db_new, zone, old); } } trie_it_free(trie_it); @@ -580,52 +710,61 @@ static knot_zonedb_t *create_zonedb_catalog(conf_t *conf, server_t *server, catalog_upd_val_t *upd = catalog_it_val(cat_it); if (upd->type == CAT_UPD_REM) { zone_t *zone = knot_zonedb_find(db_old, upd->member); - if (zone != NULL) { - zone_purge(conf, zone); - } + zone_purge(conf, zone); } } catalog_it_free(cat_it); + /* Commit catalog changes. The operation must succeed for reload to finish. */ int ret = catalog_update_commit(&server->catalog_upd, &server->catalog); if (ret != KNOT_EOK) { log_error("catalog, failed to apply changes (%s)", knot_strerror(ret)); - return db_new; + trie_cow_rollback(db_new->cow, NULL, NULL); + return NULL; } - /* Process the catalog update. */ + /* Add new members (cannot be catalogs) in the catalog update. */ cat_it = catalog_it_begin(&server->catalog_upd); for (; !catalog_it_finished(cat_it); catalog_it_next(cat_it)) { catalog_upd_val_t *upd = catalog_it_val(cat_it); - zone_t *zone = NULL; + switch (upd->type) { + case CAT_UPD_ADD: ; + zone_t *zone = add_member_zone(upd, db_new, server, conf); + (void)knot_zonedb_insert(db_new, zone); + break; + default: + break; + } + } + catalog_it_free(cat_it); + + /* Remove members, update generated catalogs, update reversed zones (expected complete zonedb). */ + cat_it = catalog_it_begin(&server->catalog_upd); + for (; !catalog_it_finished(cat_it); catalog_it_next(cat_it)) { + catalog_upd_val_t *upd = catalog_it_val(cat_it); + zone_t *zone = knot_zonedb_find(db_new, upd->member); switch (upd->type) { case CAT_UPD_ADD: - zone = add_member_zone(upd, db_new, server, conf); - knot_zonedb_insert(db_new, zone); - catalog_generate_add(conf, zone, db_new, false); + catalog_generate_add(conf, zone, db_new, CAT_UPD_ADD); reg_reverse(conf, db_new, zone); break; case CAT_UPD_REM: - zone = knot_zonedb_find(db_new, upd->member); + catalog_generate_add(conf, zone, db_new, CAT_UPD_REM); unreg_reverse(zone); - knot_zonedb_del(db_new, upd->member); - catalog_generate_rem(conf, zone, db_new); + (void)knot_zonedb_del(db_new, upd->member); break; - case CAT_UPD_UNIQ: case CAT_UPD_PROP: - zone = knot_zonedb_find(db_new, upd->member); - if (upd->type == CAT_UPD_UNIQ && zone != NULL) { + catalog_generate_add(conf, zone, db_new, CAT_UPD_PROP); + break; + case CAT_UPD_UNIQ: // Only purge the zone. + if (zone != NULL) { zone_purge(conf, zone); knot_sem_wait(&zone->cow_lock); ptrlist_add(expired_contents, zone_expire(conf, zone, true), NULL); knot_sem_post(&zone->cow_lock); } - zone_t *old = knot_zonedb_find(db_old, upd->member); - if (!same_group(old, zone)) { - catalog_generate_add(conf, zone, db_new, true); - } - reg_reverse(conf, db_new, zone); break; + case CAT_UPD_MINOR: // No change to generated catalogs. default: break; } @@ -644,35 +783,33 @@ static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, return NULL; } - for (conf_iter_t it = conf_iter(conf, C_ZONE); it.code == KNOT_EOK; - conf_iter_next(conf, &it)) { - conf_val_t id = conf_iter_id(conf, &it); - const knot_dname_t *name = conf_dname(&id); - zone_t *old_zone = knot_zonedb_find(db_old, name); - zone_t *zone = get_zone(conf, name, server, old_zone); - if (zone == NULL) { - continue; - } - knot_zonedb_insert(db_new, zone); - } - /* Purge decataloged zones before commit - when configuration is available. */ catalog_it_t *cat_it = catalog_it_begin(&server->catalog_upd); for (; !catalog_it_finished(cat_it); catalog_it_next(cat_it)) { catalog_upd_val_t *upd = catalog_it_val(cat_it); if (upd->type == CAT_UPD_REM) { zone_t *zone = knot_zonedb_find(db_old, upd->member); - if (zone != NULL) { - zone_purge(conf, zone); - } + zone_purge(conf, zone); } } catalog_it_free(cat_it); + /* Commit catalog changes. The operation must succeed for reload to finish. */ int ret = catalog_update_commit(&server->catalog_upd, &server->catalog); if (ret != KNOT_EOK) { log_error("catalog, failed to apply changes (%s)", knot_strerror(ret)); - return db_new; + knot_zonedb_deep_free(&db_new, false); + return NULL; + } + + /* Load configured zones. */ + for (conf_iter_t it = conf_iter(conf, C_ZONE); it.code == KNOT_EOK; + conf_iter_next(conf, &it)) { + conf_val_t id = conf_iter_id(conf, &it); + const knot_dname_t *name = conf_dname(&id); + zone_t *old = knot_zonedb_find(db_old, name); + zone_t *zone = get_zone(conf, name, server, old); + (void)knot_zonedb_insert(db_new, zone); } /* Process existing catalog member zones. */ @@ -681,9 +818,7 @@ static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { zone_t *newzone = reuse_member_zone(knot_zonedb_iter_val(db_it), server, conf, expired_contents); - if (newzone != NULL) { - knot_zonedb_insert(db_new, newzone); - } + (void)knot_zonedb_insert(db_new, newzone); } knot_zonedb_iter_free(db_it); } else if (check_open_catalog(&server->catalog)) { @@ -694,14 +829,12 @@ static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, } } - /* Process new catalog member zones. */ + /* Add new catalog member zones. */ cat_it = catalog_it_begin(&server->catalog_upd); for (; !catalog_it_finished(cat_it); catalog_it_next(cat_it)) { catalog_upd_val_t *val = catalog_it_val(cat_it); zone_t *zone = add_member_zone(val, db_new, server, conf); - if (zone != NULL) { - knot_zonedb_insert(db_new, zone); - } + (void)knot_zonedb_insert(db_new, zone); } catalog_it_free(cat_it); @@ -711,7 +844,7 @@ static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { zone_t *zone = knot_zonedb_iter_val(db_it); if (knot_zonedb_find(db_new, zone->name) == NULL) { - catalog_generate_rem(conf, zone, db_new); + catalog_generate_add(conf, zone, db_new, CAT_UPD_REM); } } knot_zonedb_iter_free(db_it); @@ -722,11 +855,7 @@ static knot_zonedb_t *create_zonedb_full(conf_t *conf, server_t *server, for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { zone_t *zone = knot_zonedb_iter_val(db_it); zone_t *old = knot_zonedb_find(db_old, zone->name); - if (old == NULL) { - catalog_generate_add(conf, zone, db_new, false); - } else if (!same_group(old, zone)) { - catalog_generate_add(conf, zone, db_new, true); - } + catalog_generate_update(conf, db_new, zone, old); reg_reverse(conf, db_new, zone); } knot_zonedb_iter_free(db_it); @@ -765,16 +894,46 @@ static void remove_old_zonedb_commit(conf_t *conf, knot_zonedb_t *db_old, server knot_zonedb_t *db_new = server->zone_db; assert(conf->io.flags & CONF_IO_FACTIVE); + bool include = conf->io.flags & CONF_IO_FDIFF_ZONES; bool reload_zones = conf->io.flags & CONF_IO_FRLD_ZONES; - - if (conf->io.zones != NULL) { + bool template = conf->io.flags & CONF_IO_FTPL; + bool cat = conf->io.flags & CONF_IO_FCAT; + bool reverse = conf->io.flags & CONF_IO_FREV; + bool touched_zones = conf->io.zones != NULL && trie_weight(conf->io.zones) > 0; + + if (include || (template && (cat || reverse))) { + if ((template && (cat || reverse)) || touched_zones) { + knot_zonedb_iter_t *db_it = knot_zonedb_iter_begin(db_old); + for (; !knot_zonedb_iter_finished(db_it); knot_zonedb_iter_next(db_it)) { + zone_t *zone = knot_zonedb_iter_val(db_it); + zone_t *new_zone = knot_zonedb_find(db_new, zone->name); + if (new_zone != NULL) { + /* Reload reused zone. */ + replan_events(conf, new_zone, zone, true); + zone->contents = NULL; + } + zone_free(&zone); // Frees also a removed zone. + } + knot_zonedb_iter_free(db_it); + } + } else if (touched_zones) { trie_it_t *trie_it = trie_it_begin(conf->io.zones); for (; !trie_it_finished(trie_it); trie_it_next(trie_it)) { const knot_dname_t *name = (const knot_dname_t *)trie_it_key(trie_it, NULL); conf_io_type_t type = conf_io_trie_val(trie_it); - if (type & CONF_IO_TUNSET) { + if (type & CONF_IO_TSET) { + continue; + } else if (type & CONF_IO_TUNSET) { zone_t *zone = knot_zonedb_find(db_old, name); zone_free(&zone); + } else if ((type & CONF_IO_TCHANGE) && (cat || reverse)) { + zone_t *zone = knot_zonedb_find(db_old, name); + zone_t *new_zone = knot_zonedb_find(db_new, name); + assert(zone != NULL && zone != new_zone); + /* Reload reused zone. */ + replan_events(conf, new_zone, zone, true); + zone->contents = NULL; + zone_free(&zone); } else if (!reload_zones && (type & CONF_IO_TRELOAD)) { int ret = zone_reload_modules(conf, server, name); if (ret != KNOT_EOK) { @@ -977,6 +1136,8 @@ int zone_reload_modules(conf_t *conf, server_t *server, const knot_dname_t *zone return ret; } + upd_reverse(conf, server->zone_db, newzone, *zone); + zone_t *oldzone = rcu_xchg_pointer(zone, newzone); synchronize_rcu(); diff --git a/tests-extra/tests/catalog/generate_reconf/data/cz.zone b/tests-extra/tests/catalog/generate_reconf/data/cz.zone new file mode 100644 index 0000000000..0d7c9a15c5 --- /dev/null +++ b/tests-extra/tests/catalog/generate_reconf/data/cz.zone @@ -0,0 +1,10 @@ +$ORIGIN cz. + +@ SOA dns hostmaster 1 10800 3600 1209600 7200 + NS dns +dns A 192.0.1.1 + +org NS dns.org +org DS 55789 13 2 D90E8FDD92A7F82D9FF76C491727304098C16D3C9D7AFCEFCCA3126107927F35 +dns.org A 192.0.2.1 +dns.org AAAA ::1 diff --git a/tests-extra/tests/catalog/generate_reconf/data/gen3.conf b/tests-extra/tests/catalog/generate_reconf/data/gen3.conf new file mode 100644 index 0000000000..4bc27957d7 --- /dev/null +++ b/tests-extra/tests/catalog/generate_reconf/data/gen3.conf @@ -0,0 +1,5 @@ +zone: + - domain: gen3. + catalog-role: generate + notify: [knot2] + acl: [acl_test, acl_knot2] diff --git a/tests-extra/tests/catalog/generate_reconf/data/org.cz.zone b/tests-extra/tests/catalog/generate_reconf/data/org.cz.zone new file mode 100644 index 0000000000..38882dbacb --- /dev/null +++ b/tests-extra/tests/catalog/generate_reconf/data/org.cz.zone @@ -0,0 +1,5 @@ +$ORIGIN org.cz. + +@ SOA dns hostmaster 1 10800 3600 1209600 7200 + NS dns +dns A 192.0.2.1 diff --git a/tests-extra/tests/catalog/generate_reconf/data/zone2.conf b/tests-extra/tests/catalog/generate_reconf/data/zone2.conf new file mode 100644 index 0000000000..f85fde365f --- /dev/null +++ b/tests-extra/tests/catalog/generate_reconf/data/zone2.conf @@ -0,0 +1,7 @@ +zone: + - domain: zone2. + catalog-role: member + catalog-zone: gen2 + catalog-group: catalog-signed + notify: [knot2] + acl: [acl_test, acl_knot2] diff --git a/tests-extra/tests/catalog/generate_reconf/test.py b/tests-extra/tests/catalog/generate_reconf/test.py new file mode 100644 index 0000000000..cd4800d097 --- /dev/null +++ b/tests-extra/tests/catalog/generate_reconf/test.py @@ -0,0 +1,331 @@ +#!/usr/bin/env python3 + +'''Test of catalog zone reconfiguration.''' + +from dnstest.test import Test +from dnstest.utils import check_log +from dnstest.libknot import libknot +import glob +import os +import random +import shutil + +USE_CTL = random.choice([True, False]) +check_log("USE_CTL %s" % str(USE_CTL)) + +def ctl_begin(server): + ctl = libknot.control.KnotCtl() + ctl.connect(os.path.join(server.dir, "knot.sock")) + return ctl + +def ctl_cmd(ctl, **args): + ctl.send_block(**args) + return ctl.receive_block() + +def ctl_add_zone(ctl, zone_name): + ctl_cmd(ctl, cmd="zone-begin", zone=zone_name) + ctl_cmd(ctl, cmd="zone-set", zone=zone_name, owner="@", ttl="3600", rtype="SOA", data="a. b. 1 2 3 4 5") + ctl_cmd(ctl, cmd="zone-commit", zone=zone_name) + +def ctl_end(ctl): + ctl.send(libknot.control.KnotCtlType.END) + ctl.close() + +t = Test() + +master = t.server("knot") +slave = t.server("knot") + +zone1 = t.zone_rnd(1) +t.link(zone1, master, slave) +slave.cat_hidden(zone1) + +gen1 = t.zone("gen1.", exists=False) +t.link(gen1, master, slave) +master.cat_generate(gen1) +slave.cat_interpret(gen1) + +t.start() + +if USE_CTL: + master.use_confdb = True + master.gen_confile() + master.ctl("conf-import %s" % master.confile, availability=False) + master.stop() + master.start() + +master.zones_wait(zone1, use_ctl=True) +serial = slave.zones_wait(gen1, use_ctl=True) + +# Add a new member to an existing generated catalog. + +memb1 = t.zone_rnd(1) + +if USE_CTL: + ctl = ctl_begin(master) + ctl_cmd(ctl, cmd="conf-begin") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="domain", data=memb1[0].name) + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-role", identifier=memb1[0].name, data="member") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-zone", identifier=memb1[0].name, data=gen1[0].name) + ctl_cmd(ctl, cmd="conf-set", section="zone", item="notify", identifier=memb1[0].name, data="knot2") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=memb1[0].name, data="acl_test") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=memb1[0].name, data="acl_knot2") + ctl_cmd(ctl, cmd="conf-commit") + ctl_add_zone(ctl, memb1[0].name) + ctl_end(ctl) +else: + t.link(memb1, master, slave) + master.cat_member(memb1, gen1) + slave.cat_hidden(memb1) + + master.gen_confile() + master.reload() + +serial = slave.zones_wait(gen1, serial, use_ctl=True) +slave.zones_wait(memb1, use_ctl=True) + +# Add a second generated catalog along with its member and catalogize existing zone. + +gen2 = t.zone("gen2.", exists=False) +memb2 = t.zone_rnd(1) + +if USE_CTL: + ctl = ctl_begin(master) + ctl_cmd(ctl, cmd="conf-begin") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="domain", data=gen2[0].name) + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-role", identifier=gen2[0].name, data="generate") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="notify", identifier=gen2[0].name, data="knot2") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=gen2[0].name, data="acl_test") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=gen2[0].name, data="acl_knot2") + + ctl_cmd(ctl, cmd="conf-unset", section="zone", item="catalog-role", identifier=memb1[0].name) + ctl_cmd(ctl, cmd="conf-unset", section="zone", item="catalog-zone", identifier=memb1[0].name) + + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-role", identifier=zone1[0].name, data="member") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-zone", identifier=zone1[0].name, data=gen2[0].name) + + ctl_cmd(ctl, cmd="conf-set", section="zone", item="domain", data=memb2[0].name) + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-role", identifier=memb2[0].name, data="member") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-zone", identifier=memb2[0].name, data=gen2[0].name) + ctl_cmd(ctl, cmd="conf-set", section="zone", item="notify", identifier=memb2[0].name, data="knot2") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=memb2[0].name, data="acl_test") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=memb2[0].name, data="acl_knot2") + ctl_cmd(ctl, cmd="conf-commit") + ctl_add_zone(ctl, memb2[0].name) + ctl_end(ctl) + + ctl = ctl_begin(slave) + ctl_cmd(ctl, cmd="conf-begin") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="domain", data=gen2[0].name) + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-role", identifier=gen2[0].name, data="interpret") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-template", identifier=gen2[0].name, data="catalog-default") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-template", identifier=gen2[0].name, data="catalog-signed") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-template", identifier=gen2[0].name, data="catalog-unsigned") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="master", identifier=gen2[0].name, data="knot1") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=gen2[0].name, data="acl_test") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=gen2[0].name, data="acl_knot1") + ctl_cmd(ctl, cmd="conf-commit") + ctl_end(ctl) +else: + t.link(gen2, master, slave) + master.cat_generate(gen2) + slave.cat_interpret(gen2) + + t.link(memb2, master, slave) + master.cat_member(memb2, gen2) # New zone + slave.cat_hidden(memb2) + + master.cat_member(zone1, gen2) # Existing zone + + master.cat_member(memb1, gen1, remove=True) # Decataloged zone + slave.cat_hidden(memb1, remove=True) + slave.zones.pop(memb1[0].name) # Remove a relict of t.link() - explicit configuration + + master.gen_confile() + slave.gen_confile() + slave.reload() + master.reload() + +slave.zones_wait(gen1, use_ctl=True) +slave.zones_wait(gen2, use_ctl=True) +slave.zones_wait(memb2, use_ctl=True) +slave.zones_wait(zone1, use_ctl=True) +t.sleep(2) +resp = slave.dig(memb1[0].name, "SOA") +resp.check_no_rr(rtype="SOA") # REFUSED not reliable as it can return NXDOMAIN due to random zone names + +# Move a member between generated catalogs + +OK_XFR = random.choice([True, False]) # If true, the zone is correctly decataloged first. + +if OK_XFR: + master.ctl("zone-xfr-freeze %s" % gen1[0].name) +else: + master.ctl("zone-xfr-freeze %s" % gen2[0].name) + +if USE_CTL: + ctl = ctl_begin(master) + ctl_cmd(ctl, cmd="conf-begin") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-zone", identifier=memb2[0].name, data=gen1[0].name) + ctl_cmd(ctl, cmd="conf-commit") + ctl_end(ctl) +else: + master.cat_member(memb2, gen2, remove=True) + master.cat_member(memb2, gen1) + + master.gen_confile() + master.reload() + +t.sleep(2) +resp = slave.dig(memb2[0].name, "SOA") +if OK_XFR: + resp.check_no_rr(rtype="SOA") # REFUSED not reliable as it can return NXDOMAIN due to random zone names + + master.ctl("zone-xfr-thaw %s" % gen1[0].name) + slave.ctl("zone-refresh %s" % gen1[0].name) +else: + resp.check_rr(rtype="SOA") # Memeber not removed + + master.ctl("zone-xfr-thaw %s" % gen2[0].name) + slave.ctl("zone-refresh %s" % gen2[0].name) + t.sleep(2) + resp = slave.dig(memb2[0].name, "SOA") + resp.check_no_rr(rtype="SOA") # Member permanently removed + + # Fix catalog inconsistency + slave.ctl("zone-retransfer %s" % gen1[0].name) + +slave.zones_wait(memb2, use_ctl=True) + +# Catalog group change - verify the target template module is activated + +resp = slave.dig(memb2[0].name, "SOA", udp=True) +resp.check(noflags="TC") # Module mod-noudp is not active + +ctl = ctl_begin(slave) +ctl_cmd(ctl, cmd="conf-begin") +ctl_cmd(ctl, cmd="conf-set", section="template", identifier="catalog-signed", item="module", data="mod-noudp") +ctl_cmd(ctl, cmd="conf-commit") +ctl_end(ctl) + +if USE_CTL: + ctl = ctl_begin(master) + ctl_cmd(ctl, cmd="conf-begin") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-group", identifier=memb2[0].name, data="catalog-signed") + ctl_cmd(ctl, cmd="conf-commit") + ctl_end(ctl) +else: + master.cat_member(memb2, gen1, "catalog-signed") + + master.gen_confile() + master.reload() + +slave.zones_wait(memb2, use_ctl=True) +t.sleep(2) +resp = slave.dig(memb2[0].name, "SOA", dnssec=True, udp=False) +resp.check(rcode="NOERROR") +resp.check_count(1, "RRSIG") # Signing active + +resp = slave.dig(memb2[0].name, "SOA", udp=True) +resp.check(flags="TC") # Module mod-noudp is active + +# Include configuration file with a generated catalog member + +if USE_CTL: + zone2 = t.zone("zone2.", exists=False) + + ctl = ctl_begin(master) + ctl_cmd(ctl, cmd="conf-begin") + ctl_cmd(ctl, cmd="conf-set", section="include", data=master.data_add(zone2[0].name + "conf", ".")) + ctl_cmd(ctl, cmd="conf-commit") + ctl_add_zone(ctl, zone2[0].name) + ctl_end(ctl) + + slave.zones_wait(zone2, use_ctl=True) + +# Include configuration file with a generated catalog, add another zone, remove previous zone + +if USE_CTL: + gen3 = t.zone("gen3.", exists=False) + zone3 = t.zone("zone3.", exists=False) + + ctl = ctl_begin(master) + ctl_cmd(ctl, cmd="conf-begin") + ctl_cmd(ctl, cmd="conf-set", section="include", data=master.data_add(gen3[0].name + "conf", ".")) + + ctl_cmd(ctl, cmd="conf-set", section="zone", item="domain", data=zone3[0].name) + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-role", identifier=zone3[0].name, data="member") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-zone", identifier=zone3[0].name, data=gen3[0].name) + ctl_cmd(ctl, cmd="conf-set", section="zone", item="notify", identifier=zone3[0].name, data="knot2") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=zone3[0].name, data="acl_test") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=zone3[0].name, data="acl_knot2") + + ctl_cmd(ctl, cmd="conf-unset", section="zone", identifier=zone2[0].name) + ctl_cmd(ctl, cmd="conf-commit") + ctl_add_zone(ctl, zone3[0].name) + ctl_end(ctl) + + ctl = ctl_begin(slave) + ctl_cmd(ctl, cmd="conf-begin") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="domain", data=gen3[0].name) + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-role", identifier=gen3[0].name, data="interpret") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-template", identifier=gen3[0].name, data="catalog-default") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-template", identifier=gen3[0].name, data="catalog-signed") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-template", identifier=gen3[0].name, data="catalog-unsigned") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="master", identifier=gen3[0].name, data="knot1") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=gen3[0].name, data="acl_test") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="acl", identifier=gen3[0].name, data="acl_knot1") + ctl_cmd(ctl, cmd="conf-commit") + ctl_end(ctl) + + slave.zones_wait(gen3, use_ctl=True) + slave.zones_wait(zone3, use_ctl=True) + t.sleep(2) + resp = slave.dig(zone2[0].name, "SOA") + resp.check_no_rr(rtype="SOA") + +# Reconfigure include-from + +if USE_CTL: + cz = t.zone("cz.", storage=".") + org_cz = t.zone("org.cz.", storage=".") + + for zf in glob.glob(t.data_dir + "/*.zone"): + shutil.copy(zf, master.dir) + + ctl = ctl_begin(master) + ctl_cmd(ctl, cmd="conf-begin") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="domain", data=org_cz[0].name) + ctl_cmd(ctl, cmd="conf-set", section="zone", item="domain", data=cz[0].name) + ctl_cmd(ctl, cmd="conf-commit") + + t.sleep(1) + resp = master.dig("org.cz", "DS") + resp.check_rr(rtype="DS") + + ctl_cmd(ctl, cmd="conf-begin") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="include-from", identifier=cz[0].name, data=org_cz[0].name) + ctl_cmd(ctl, cmd="conf-commit") + + t.sleep(1) + resp = master.dig("org.cz", "DS") + resp.check_no_rr(rtype="DS") + + # Enforce zone rebuild (catalog-group has no effect in this case) + ctl_cmd(ctl, cmd="conf-begin") + ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-group", identifier=cz[0].name, data="catalog-signed") + ctl_cmd(ctl, cmd="conf-commit") + ctl_end(ctl) + + serial = master.zones_wait(cz, use_ctl=True) + + # Check the inter-zone links is updated by using them. + ctl = ctl_begin(master) + ctl_cmd(ctl, cmd="zone-begin", zone=org_cz[0].name) + ctl_cmd(ctl, cmd="zone-set", zone=org_cz[0].name, owner="@", ttl="3600", rtype="TXT", data="test") + ctl_cmd(ctl, cmd="zone-commit", zone=org_cz[0].name) + ctl_end(ctl) + + serial = master.zones_wait(cz, serial, use_ctl=True) + +t.end() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index d87ad870f2..f3e62c0228 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -304,16 +304,26 @@ def cat_generate(self, zone): z = self.zones[zone_arg_check(zone).name] z.catalog_role = ZoneCatalogRole.GENERATE - def cat_member(self, zone, catalog, group=None): + def cat_member(self, zone, catalog, group=None, remove=False): z = self.zones[zone_arg_check(zone).name] - c = self.zones[zone_arg_check(catalog).name] - z.catalog_role = ZoneCatalogRole.MEMBER - z.catalog_gen_name = c.name - z.catalog_group = group + if remove: + if z: + z.catalog_role = None + z.catalog_gen_name = None + z.catalog_group = None + else: + c = self.zones[zone_arg_check(catalog).name] + z.catalog_role = ZoneCatalogRole.MEMBER + z.catalog_gen_name = c.name + z.catalog_group = group - def cat_hidden(self, zone): + def cat_hidden(self, zone, remove=False): z = self.zones[zone_arg_check(zone).name] - z.catalog_role = ZoneCatalogRole.HIDDEN + if remove: + if z: + z.catalog_role = None + else: + z.catalog_role = ZoneCatalogRole.HIDDEN def compile(self): try: From 1ef6bc4e006ecd93738ed17f77311e2aad967d87 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 31 Jan 2026 18:33:08 +0100 Subject: [PATCH 361/675] zonedb-load: remove repetitive code --- src/knot/zone/zonedb-load.c | 99 +++++++++++-------------------------- 1 file changed, 29 insertions(+), 70 deletions(-) diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 90305ccf23..ca44e13ea0 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -280,6 +280,29 @@ static bool check_open_catalog(catalog_t *cat) return false; } +static zone_t *get_zone(conf_t *conf, const knot_dname_t *name, server_t *server, + zone_t *old_zone) +{ + zone_t *zone = create_zone(conf, name, server, old_zone); + if (zone == NULL) { + log_zone_error(name, "zone cannot be created"); + return NULL; + } else { + int ret = conf_activate_modules(conf, server, zone->name, + &zone->query_modules, + &zone->query_plan); + if (ret != KNOT_EOK) { + log_zone_error(zone->name, "zone cannot be activated (%s)", + knot_strerror(ret)); + zone->contents = NULL; + zone_free(&zone); + return NULL; + } + } + + return zone; +} + static zone_t *reuse_member_zone(zone_t *zone, server_t *server, conf_t *conf, list_t *expired_contents) { @@ -309,23 +332,8 @@ static zone_t *reuse_member_zone(zone_t *zone, server_t *server, conf_t *conf, } } - zone_t *newzone = create_zone(conf, zone->name, server, zone); - if (newzone == NULL) { - log_zone_error(zone->name, "zone cannot be created"); - } else { - assert(zone_get_flag(newzone, ZONE_IS_CAT_MEMBER, false)); - int ret = conf_activate_modules(conf, server, newzone->name, - &newzone->query_modules, - &newzone->query_plan); - if (ret != KNOT_EOK) { - log_zone_error(newzone->name, "zone cannot be activated (%s)", - knot_strerror(ret)); - newzone->contents = NULL; - zone_free(&newzone); - return NULL; - } - } - + zone_t *newzone = get_zone(conf, zone->name, server, zone); + assert(newzone == NULL || zone_get_flag(newzone, ZONE_IS_CAT_MEMBER, false)); return newzone; } @@ -337,23 +345,10 @@ static zone_t *reuse_cold_zone(const knot_dname_t *zname, server_t *server, conf return NULL; // zone will be removed immediately } - zone_t *zone = create_zone(conf, zname, server, NULL); - if (zone == NULL) { - log_zone_error(zname, "zone cannot be created"); - } else { + zone_t *zone = get_zone(conf, zname, server, NULL); + if (zone != NULL) { zone_set_flag(zone, ZONE_IS_CAT_MEMBER); - int ret = conf_activate_modules(conf, server, zone->name, - &zone->query_modules, - &zone->query_plan); - if (ret != KNOT_EOK) { - log_zone_error(zone->name, "zone cannot be activated (%s)", - knot_strerror(ret)); - zone->contents = NULL; - zone_free(&zone); - return NULL; - } } - return zone; } @@ -394,24 +389,11 @@ static zone_t *add_member_zone(catalog_upd_val_t *val, knot_zonedb_t *db_new, return NULL; } - zone_t *zone = create_zone(conf, val->member, server, NULL); - if (zone == NULL) { - log_zone_error(val->member, "zone cannot be created"); - } else { + zone_t *zone = get_zone(conf, val->member, server, NULL); + if (zone != NULL) { zone_set_flag(zone, ZONE_IS_CAT_MEMBER); - int ret = conf_activate_modules(conf, server, zone->name, - &zone->query_modules, - &zone->query_plan); - if (ret != KNOT_EOK) { - log_zone_error(zone->name, "zone cannot be activated (%s)", - knot_strerror(ret)); - zone->contents = NULL; - zone_free(&zone); - return NULL; - } log_zone_info(val->member, "zone added from catalog"); } - return zone; } @@ -499,29 +481,6 @@ static bool same_group(zone_t *old_z, zone_t *new_z) } } -static zone_t *get_zone(conf_t *conf, const knot_dname_t *name, server_t *server, - zone_t *old_zone) -{ - zone_t *zone = create_zone(conf, name, server, old_zone); - if (zone == NULL) { - log_zone_error(name, "zone cannot be created"); - return NULL; - } else { - int ret = conf_activate_modules(conf, server, zone->name, - &zone->query_modules, - &zone->query_plan); - if (ret != KNOT_EOK) { - log_zone_error(zone->name, "zone cannot be activated (%s)", - knot_strerror(ret)); - zone->contents = NULL; - zone_free(&zone); - return NULL; - } - } - - return zone; -} - static void catalog_generate_add(conf_t *conf, zone_t *zone, knot_zonedb_t *db_new, catalog_upd_type_t type) { From fa2a2c38b5d11e25d6b0a6827c85b65e4a8389cf Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 31 Jan 2026 18:58:54 +0100 Subject: [PATCH 362/675] catalog: remove useless catalag_update_t->error and improve error reporting --- src/knot/catalog/catalog_update.c | 2 -- src/knot/catalog/catalog_update.h | 1 - src/knot/catalog/generate.c | 31 ++++++++++++++++--------------- src/knot/catalog/generate.h | 10 +++++----- src/knot/events/handlers/load.c | 5 ++--- 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/knot/catalog/catalog_update.c b/src/knot/catalog/catalog_update.c index 7c07533d73..4214d9d10d 100644 --- a/src/knot/catalog/catalog_update.c +++ b/src/knot/catalog/catalog_update.c @@ -20,7 +20,6 @@ int catalog_update_init(catalog_update_t *u) return KNOT_ENOMEM; } pthread_mutex_init(&u->mutex, 0); - u->error = KNOT_EOK; return KNOT_EOK; } @@ -58,7 +57,6 @@ void catalog_update_clear(catalog_update_t *u) { trie_apply(u->upd, freecb, NULL); trie_clear(u->upd); - u->error = KNOT_EOK; } void catalog_update_deinit(catalog_update_t *u) diff --git a/src/knot/catalog/catalog_update.h b/src/knot/catalog/catalog_update.h index a28a71479d..6d01777383 100644 --- a/src/knot/catalog/catalog_update.h +++ b/src/knot/catalog/catalog_update.h @@ -35,7 +35,6 @@ typedef struct catalog_upd_val { typedef struct { trie_t *upd; // tree of catalog_upd_val_t, that gonna be changed in catalog - int error; // error occurred during generating of upd pthread_mutex_t mutex; // lock for accessing this struct } catalog_update_t; diff --git a/src/knot/catalog/generate.c b/src/knot/catalog/generate.c index 1a68f57b21..37f6d8e78b 100644 --- a/src/knot/catalog/generate.c +++ b/src/knot/catalog/generate.c @@ -6,7 +6,6 @@ #include #include "knot/catalog/generate.h" -#include "knot/updates/zone-update.h" #include "contrib/openbsd/siphash.h" #include "contrib/wire_ctx.h" @@ -113,15 +112,12 @@ static int rem_group_txt(const knot_dname_t *ptr_owner, zone_update_t *up) return ret; } -struct zone_contents *catalog_update_to_zone(catalog_update_t *u, const knot_dname_t *catzone, - uint32_t soa_serial) +int catalog_update_to_zone(struct zone_contents **conts, catalog_update_t *u, + const knot_dname_t *catzone, uint32_t soa_serial) { - if (u->error != KNOT_EOK) { - return NULL; - } zone_contents_t *c = zone_contents_new(catzone, true); if (c == NULL) { - return c; + return KNOT_ENOMEM; } zone_node_t *unused = NULL; @@ -148,7 +144,8 @@ struct zone_contents *catalog_update_to_zone(catalog_update_t *u, const knot_dna wire_ctx_write_u32(&wire, CATALOG_SOA_EXPIRE); wire_ctx_write_u32(&wire, 0); set_rdata(&rrset, data, wire_ctx_offset(&wire)); - if (zone_contents_add_rr(c, &rrset, &unused) != KNOT_EOK) { + int ret = zone_contents_add_rr(c, &rrset, &unused); + if (ret != KNOT_EOK) { goto fail; } @@ -156,7 +153,8 @@ struct zone_contents *catalog_update_to_zone(catalog_update_t *u, const knot_dna unused = NULL; rrset.type = KNOT_RRTYPE_NS; set_rdata(&rrset, invalid, sizeof(invalid)); - if (zone_contents_add_rr(c, &rrset, &unused) != KNOT_EOK) { + ret = zone_contents_add_rr(c, &rrset, &unused); + if (ret != KNOT_EOK) { goto fail; } @@ -164,12 +162,14 @@ struct zone_contents *catalog_update_to_zone(catalog_update_t *u, const knot_dna unused = NULL; knot_dname_storage_t owner; if (knot_dname_store(owner, version) == 0 || catalog_dname_append(owner, catzone) == 0) { + ret = KNOT_ERROR; goto fail; } rrset.owner = owner; rrset.type = KNOT_RRTYPE_TXT; set_rdata(&rrset, cat_version, sizeof(cat_version)); - if (zone_contents_add_rr(c, &rrset, &unused) != KNOT_EOK) { + ret = zone_contents_add_rr(c, &rrset, &unused); + if (ret != KNOT_EOK) { goto fail; } @@ -184,8 +184,8 @@ struct zone_contents *catalog_update_to_zone(catalog_update_t *u, const knot_dna rrset.owner = val->add_owner; set_rdata(&rrset, val->member, knot_dname_size(val->member)); unused = NULL; - if (zone_contents_add_rr(c, &rrset, &unused) != KNOT_EOK || - add_group_txt(val->add_owner, val->new_group, c, NULL) != KNOT_EOK) { + if ((ret = zone_contents_add_rr(c, &rrset, &unused)) != KNOT_EOK || + (ret = add_group_txt(val->add_owner, val->new_group, c, NULL)) != KNOT_EOK) { catalog_it_free(it); goto fail; } @@ -193,10 +193,11 @@ struct zone_contents *catalog_update_to_zone(catalog_update_t *u, const knot_dna } catalog_it_free(it); - return c; + *conts = c; + return KNOT_EOK; fail: zone_contents_deep_free(c); - return NULL; + return ret;; } int catalog_update_to_update(catalog_update_t *u, struct zone_update *zu) @@ -207,7 +208,7 @@ int catalog_update_to_update(catalog_update_t *u, struct zone_update *zu) ptr.rrs.rdata = (knot_rdata_t *)tmp; ptr.rrs.count = 1; - int ret = u->error; + int ret = KNOT_EOK; catalog_it_t *it = catalog_it_begin(u); while (!catalog_it_finished(it) && ret == KNOT_EOK) { catalog_upd_val_t *val = catalog_it_val(it); diff --git a/src/knot/catalog/generate.h b/src/knot/catalog/generate.h index 2d8670d8f3..49da9eefbe 100644 --- a/src/knot/catalog/generate.h +++ b/src/knot/catalog/generate.h @@ -6,6 +6,7 @@ #pragma once #include "knot/catalog/catalog_update.h" +#include "knot/updates/zone-update.h" #define CATALOG_SOA_REFRESH 3600 #define CATALOG_SOA_RETRY 600 @@ -26,16 +27,15 @@ knot_dname_t *catalog_member_owner(const knot_dname_t *member, const knot_dname_ /*! * \brief Generate catalog zone contents from (full) catalog update. * + * \param cont Output zone contents. * \param u Catalog update to read. * \param catzone Catalog zone name. * \param soa_serial SOA serial of the generated zone. * - * \return Catalog zone contents, or NULL if ENOMEM. + * \return KNOT_E* */ -struct zone_contents *catalog_update_to_zone(catalog_update_t *u, const knot_dname_t *catzone, - uint32_t soa_serial); - -struct zone_update; +int catalog_update_to_zone(struct zone_contents **conts, catalog_update_t *u, + const knot_dname_t *catzone, uint32_t soa_serial); /*! * \brief Incrementally update catalog zone from catalog update. diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 30a9f8b307..c5b70d6b4f 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -264,9 +264,8 @@ int event_load(conf_t *conf, zone_t *zone) if (zone->cat_members != NULL && !old_contents_exist) { uint32_t serial = journal_conts == NULL ? 1 : zone_contents_serial(journal_conts); serial = serial_next(serial, conf, zone->name, SERIAL_POLICY_UNIXTIME, 1); // unixtime hardcoded - zf_conts = catalog_update_to_zone(zone->cat_members, zone->name, serial); - if (zf_conts == NULL) { - ret = zone->cat_members->error == KNOT_EOK ? KNOT_ENOMEM : zone->cat_members->error; + ret = catalog_update_to_zone(&zf_conts, zone->cat_members, zone->name, serial); + if (ret != KNOT_EOK) { goto cleanup; } } From 28c7f3b1e29d89b9f86de24ee11f05c26a061e1d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 9 Feb 2026 21:07:17 +0100 Subject: [PATCH 363/675] ctl: add value to config item debug log --- src/knot/ctl/commands.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index e4e6ded40c..888ad5b30d 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -140,14 +140,17 @@ static void ctl_log_conf_data(knot_ctl_data_t *data) const char *section = (*data)[KNOT_CTL_IDX_SECTION]; const char *item = (*data)[KNOT_CTL_IDX_ITEM]; const char *id = (*data)[KNOT_CTL_IDX_ID]; + const char *val = (*data)[KNOT_CTL_IDX_DATA]; if (section != NULL) { - log_ctl_debug("control, config item '%s%s%s%s%s%s'", section, + log_ctl_debug("control, config item '%s%s%s%s%s%s%s%s'", section, (id != NULL ? "[" : ""), (id != NULL ? id : ""), (id != NULL ? "]" : ""), (item != NULL ? "." : ""), - (item != NULL ? item : "")); + (item != NULL ? item : ""), + (val != NULL ? "=" : ""), + (val != NULL ? val : "")); } } From 96d47cda170a79d208048d3e696923b02bce93c3 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 21 Feb 2026 18:49:54 +0100 Subject: [PATCH 364/675] tests-extra: avoid 'journal-content: None' in catalog templates --- tests-extra/tools/dnstest/server.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index f3e62c0228..0f4e43281b 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1742,7 +1742,7 @@ def get_config(self): s.id_item("id", "catalog-default") s.item_str("file", self.dir + "/catalog/%s.zone") s.item_str("zonefile-load", "difference") - s.item_str("journal-content", self.conf_zone(z).journal_content) + s.item_type("journal-content", self.conf_zone(z).journal_content) # this is weird but for the sake of testing, the cataloged zones inherit dnssec policy from catalog zone s.item_str("dnssec-signing", "on" if z.dnssec.enable else "off") @@ -1755,13 +1755,13 @@ def get_config(self): s.id_item("id", "catalog-signed") s.item_str("file", self.dir + "/catalog/%s.zone") - s.item_str("journal-content", self.conf_zone(z).journal_content) + s.item_type("journal-content", self.conf_zone(z).journal_content) s.item_str("dnssec-signing", "on") self.config_xfr(z, s) s.id_item("id", "catalog-unsigned") s.item_str("file", self.dir + "/catalog/%s.zone") - s.item_str("journal-content", self.conf_zone(z).journal_content) + s.item_type("journal-content", self.conf_zone(z).journal_content) self.config_xfr(z, s) s.end() From 7bf148c8bb9f365446f8e89999e9a5aa54f2bf40 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 21 Feb 2026 20:31:02 +0100 Subject: [PATCH 365/675] tests-extra: add zone reload checks to catalog/generate_reconf --- .../tests/catalog/generate_reconf/test.py | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests-extra/tests/catalog/generate_reconf/test.py b/tests-extra/tests/catalog/generate_reconf/test.py index cd4800d097..58ff5cfbd9 100644 --- a/tests-extra/tests/catalog/generate_reconf/test.py +++ b/tests-extra/tests/catalog/generate_reconf/test.py @@ -9,6 +9,7 @@ import os import random import shutil +import time USE_CTL = random.choice([True, False]) check_log("USE_CTL %s" % str(USE_CTL)) @@ -31,6 +32,18 @@ def ctl_end(ctl): ctl.send(libknot.control.KnotCtlType.END) ctl.close() +def mark_zone(server, zone): + zone_name = zone[0].name + ts = int(time.time() * 1000) + server.zones[zone_name].zfile.append_rndTXT(f"_mark_{ts}_") + return ts + +def check_mark(server, zone, timestamp, present=True): + t.sleep(1) + zone_name = zone[0].name + resp = server.dig(f"_mark_{timestamp}_.{zone_name}", "TXT") + resp.check_rr(rtype="TXT") if present else resp.check_no_rr(rtype="TXT") + t = Test() master = t.server("knot") @@ -38,6 +51,7 @@ def ctl_end(ctl): zone1 = t.zone_rnd(1) t.link(zone1, master, slave) +master.conf_zone(zone1).zonefile_sync = 0 slave.cat_hidden(zone1) gen1 = t.zone("gen1.", exists=False) @@ -59,6 +73,8 @@ def ctl_end(ctl): # Add a new member to an existing generated catalog. +zone1_ts = mark_zone(master, zone1) + memb1 = t.zone_rnd(1) if USE_CTL: @@ -73,6 +89,8 @@ def ctl_end(ctl): ctl_cmd(ctl, cmd="conf-commit") ctl_add_zone(ctl, memb1[0].name) ctl_end(ctl) + + check_mark(master, zone1, zone1_ts, present=False) else: t.link(memb1, master, slave) master.cat_member(memb1, gen1) @@ -81,6 +99,8 @@ def ctl_end(ctl): master.gen_confile() master.reload() + check_mark(master, zone1, zone1_ts) + serial = slave.zones_wait(gen1, serial, use_ctl=True) slave.zones_wait(memb1, use_ctl=True) @@ -156,6 +176,8 @@ def ctl_end(ctl): # Move a member between generated catalogs +zone1_ts = mark_zone(master, zone1) + OK_XFR = random.choice([True, False]) # If true, the zone is correctly decataloged first. if OK_XFR: @@ -169,6 +191,8 @@ def ctl_end(ctl): ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-zone", identifier=memb2[0].name, data=gen1[0].name) ctl_cmd(ctl, cmd="conf-commit") ctl_end(ctl) + + check_mark(master, zone1, zone1_ts, present=False) else: master.cat_member(memb2, gen2, remove=True) master.cat_member(memb2, gen1) @@ -176,6 +200,8 @@ def ctl_end(ctl): master.gen_confile() master.reload() + check_mark(master, zone1, zone1_ts) + t.sleep(2) resp = slave.dig(memb2[0].name, "SOA") if OK_XFR: @@ -199,6 +225,8 @@ def ctl_end(ctl): # Catalog group change - verify the target template module is activated +zone1_ts = mark_zone(master, zone1) + resp = slave.dig(memb2[0].name, "SOA", udp=True) resp.check(noflags="TC") # Module mod-noudp is not active @@ -214,12 +242,16 @@ def ctl_end(ctl): ctl_cmd(ctl, cmd="conf-set", section="zone", item="catalog-group", identifier=memb2[0].name, data="catalog-signed") ctl_cmd(ctl, cmd="conf-commit") ctl_end(ctl) + + check_mark(master, zone1, zone1_ts, present=False) else: master.cat_member(memb2, gen1, "catalog-signed") master.gen_confile() master.reload() + check_mark(master, zone1, zone1_ts) + slave.zones_wait(memb2, use_ctl=True) t.sleep(2) resp = slave.dig(memb2[0].name, "SOA", dnssec=True, udp=False) @@ -232,6 +264,8 @@ def ctl_end(ctl): # Include configuration file with a generated catalog member if USE_CTL: + zone1_ts = mark_zone(master, zone1) + zone2 = t.zone("zone2.", exists=False) ctl = ctl_begin(master) @@ -243,9 +277,13 @@ def ctl_end(ctl): slave.zones_wait(zone2, use_ctl=True) + check_mark(master, zone1, zone1_ts) # Include triggers all zones reload + # Include configuration file with a generated catalog, add another zone, remove previous zone if USE_CTL: + zone1_ts = mark_zone(master, zone1) + gen3 = t.zone("gen3.", exists=False) zone3 = t.zone("zone3.", exists=False) @@ -284,9 +322,13 @@ def ctl_end(ctl): resp = slave.dig(zone2[0].name, "SOA") resp.check_no_rr(rtype="SOA") + check_mark(master, zone1, zone1_ts) # Include triggers all zones reload + # Reconfigure include-from if USE_CTL: + zone1_ts = mark_zone(master, zone1) + cz = t.zone("cz.", storage=".") org_cz = t.zone("org.cz.", storage=".") @@ -328,4 +370,6 @@ def ctl_end(ctl): serial = master.zones_wait(cz, serial, use_ctl=True) + check_mark(master, zone1, zone1_ts, present=False) + t.end() From 8a5b3bcbee7eaa25a8ffda47a80fa6cd7cc55e6c Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 11 Feb 2026 12:34:29 +0100 Subject: [PATCH 366/675] load: memory optimization by UPDATE_NO_CHSET for INCREMENTAL update cases --- src/knot/events/handlers/load.c | 22 +++---- src/knot/journal/journal_write.c | 2 +- src/knot/updates/changesets.c | 39 ------------ src/knot/updates/changesets.h | 14 ----- src/knot/updates/zone-update.c | 100 ++++++++++++++++++++++++++++--- src/knot/updates/zone-update.h | 22 +++++++ src/knot/zone/zone.c | 4 +- src/knot/zone/zone.h | 2 +- 8 files changed, 131 insertions(+), 74 deletions(-) diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index c5b70d6b4f..1b1c152525 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -137,7 +137,7 @@ int event_load(conf_t *conf, zone_t *zone) } if (old_contents_exist) { - ret = zone_update_init(&up, zone, UPDATE_INCREMENTAL); + ret = zone_update_init(&up, zone, UPDATE_INCREMENTAL | UPDATE_NO_CHSET); } else { ret = zone_update_from_contents(&up, zone, journal_conts, UPDATE_HYBRID); } @@ -295,7 +295,7 @@ int event_load(conf_t *conf, zone_t *zone) // Create zone_update structure according to current state. if (old_contents_exist) { if (zone->cat_members != NULL) { - ret = zone_update_init(&up, zone, UPDATE_INCREMENTAL); + ret = zone_update_init(&up, zone, UPDATE_INCREMENTAL | UPDATE_NO_CHSET); if (ret == KNOT_EOK) { ret = catalog_update_to_update(zone->cat_members, &up); } @@ -306,7 +306,7 @@ int event_load(conf_t *conf, zone_t *zone) // nothing to be re-loaded. We could nicely end here... // BUT in case of conf change, it's proper to re-ZONEMD and re-DNSSEC // ALSO replan_load_updated() relies on that DNSSEC event planning cascades from here - ret = zone_update_init(&up, zone, UPDATE_INCREMENTAL); + ret = zone_update_init(&up, zone, UPDATE_INCREMENTAL | UPDATE_NO_CHSET); } else if (zf_from == ZONEFILE_LOAD_WHOLE) { // throw old zone contents and load new from ZF ret = zone_update_from_contents(&up, zone, zf_conts, @@ -315,7 +315,7 @@ int event_load(conf_t *conf, zone_t *zone) zu_from_zf_conts = true; } else { // compute ZF diff and if success, apply it - ret = zone_update_from_differences(&up, zone, NULL, zf_conts, UPDATE_INCREMENTAL, &skip); + ret = zone_update_from_differences(&up, zone, NULL, zf_conts, UPDATE_INCREMENTAL | UPDATE_NO_CHSET, &skip); } } else { if (journal_conts != NULL && zf_from != ZONEFILE_LOAD_WHOLE) { @@ -436,13 +436,12 @@ int event_load(conf_t *conf, zone_t *zone) // If the change is only automatically incremented SOA serial, make it no change. if (zf_from == ZONEFILE_LOAD_DIFSE && (up.flags & (UPDATE_INCREMENTAL | UPDATE_HYBRID)) && - changeset_differs_just_serial(&up.change, update_zonemd)) { - changeset_t *cpy = changeset_clone(&up.change); - if (cpy == NULL) { - ret = KNOT_ENOMEM; - goto cleanup; + (ret = zone_update_differs_just_serial(&up, update_zonemd)) == KNOT_EOK) { + changeset_t *cpy; + ret = zone_update_to_changeset(&up, &cpy); + if (ret == KNOT_EOK) { + ret = zone_update_apply_changeset_reverse(&up, cpy); } - ret = zone_update_apply_changeset_reverse(&up, cpy); if (ret != KNOT_EOK) { changeset_free(cpy); goto cleanup; @@ -466,6 +465,9 @@ int event_load(conf_t *conf, zone_t *zone) zone->zonefile.resigned = false; } } + if (ret < 0) { + goto cleanup; + } uint32_t old_serial = 0, new_serial = zone_contents_serial(up.new_cont); char old_serial_str[11] = "none", new_serial_str[15] = ""; diff --git a/src/knot/journal/journal_write.c b/src/knot/journal/journal_write.c index 1889ed3438..7d10030da6 100644 --- a/src/knot/journal/journal_write.c +++ b/src/knot/journal/journal_write.c @@ -257,7 +257,7 @@ int journal_insert_zone(zone_journal_t j, const zone_contents_t *z) int journal_insert(zone_journal_t j, const changeset_t *ch, const changeset_t *extra, const zone_diff_t *zdiff) { - assert(zdiff == NULL || (ch == NULL && extra == NULL)); + assert(zdiff == NULL || ch == NULL); size_t ch_size = zdiff == NULL ? changeset_serialized_size(ch) : zone_diff_serialized_size(*zdiff); diff --git a/src/knot/updates/changesets.c b/src/knot/updates/changesets.c index b1e0595303..f7ee3a6e5f 100644 --- a/src/knot/updates/changesets.c +++ b/src/knot/updates/changesets.c @@ -346,45 +346,6 @@ uint32_t changeset_to(const changeset_t *ch) return ch->soa_to == NULL ? 0 : knot_soa_serial(ch->soa_to->rrs.rdata); } -bool changeset_differs_just_serial(const changeset_t *ch, bool ignore_zonemd) -{ - if (ch == NULL || ch->soa_from == NULL || ch->soa_to == NULL) { - return false; - } - - knot_rrset_t *soa_to_cpy = knot_rrset_copy(ch->soa_to, NULL); - knot_soa_serial_set(soa_to_cpy->rrs.rdata, knot_soa_serial(ch->soa_from->rrs.rdata)); - - bool ret = knot_rrset_equal(ch->soa_from, soa_to_cpy, true); - knot_rrset_free(soa_to_cpy, NULL); - - changeset_iter_t itt; - changeset_iter_all(&itt, ch); - - knot_rrset_t rrset = changeset_iter_next(&itt); - while (!knot_rrset_empty(&rrset) && ret) { - switch (rrset.type) { - case KNOT_RRTYPE_ZONEMD: - ret = ignore_zonemd; - break; - case KNOT_RRTYPE_RRSIG: - ; uint16_t covered = knot_rrsig_type_covered(rrset.rrs.rdata); - if (covered == KNOT_RRTYPE_SOA || - (covered == KNOT_RRTYPE_ZONEMD && ignore_zonemd)) { - break; - } - // FALLTHROUGH - default: - ret = false; - break; - } - rrset = changeset_iter_next(&itt); - } - changeset_iter_clear(&itt); - - return ret; -} - void changesets_clear(list_t *chgs) { if (chgs) { diff --git a/src/knot/updates/changesets.h b/src/knot/updates/changesets.h index 534f61cf14..af35f7afcb 100644 --- a/src/knot/updates/changesets.h +++ b/src/knot/updates/changesets.h @@ -148,20 +148,6 @@ uint32_t changeset_from(const changeset_t *ch); */ uint32_t changeset_to(const changeset_t *ch); -/*! - * \brief Check the changes and SOA, ignoring possibly updated SOA serial and ZONEMD. - * - * \note Also tolerates changed RRSIG of SOA or ZONEMD. - * - * \param ch Changeset in question. - * \param ignore_zonemd If enabled, possible ZONEMD records are ignored. - * - * \retval false If the changeset changes other records than SOA, or some SOA field - * other than serial changed or optionally ZONEMD. - * \retval true Otherwise. - */ -bool changeset_differs_just_serial(const changeset_t *ch, bool ignore_zonemd); - /*! * \brief Clears changesets in list. Changesets are not free'd. Legacy. * diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index c286cde041..4b7819f1b7 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -523,7 +523,6 @@ int zone_update_add(zone_update_t *update, const knot_rrset_t *rrset) ret = changeset_add_addition(&update->change, rrset_copy, CHANGESET_CHECK); } if (ret == KNOT_EOK && (update->flags & UPDATE_EXTRA_CHSET)) { - assert(!(update->flags & UPDATE_NO_CHSET)); ret = changeset_add_addition(&update->extra_ch, rrset_copy, CHANGESET_CHECK); } } @@ -567,11 +566,11 @@ int zone_update_remove(zone_update_t *update, const knot_rrset_t *rrset) } if ((update->flags & (UPDATE_INCREMENTAL | UPDATE_HYBRID)) && - rrset_copy->type != KNOT_RRTYPE_SOA && !(update->flags & UPDATE_NO_CHSET) && - ret == KNOT_EOK) { - ret = changeset_add_removal(&update->change, rrset_copy, CHANGESET_CHECK); + rrset_copy->type != KNOT_RRTYPE_SOA) { + if (ret == KNOT_EOK && !(update->flags & UPDATE_NO_CHSET)) { + ret = changeset_add_removal(&update->change, rrset_copy, CHANGESET_CHECK); + } if (ret == KNOT_EOK && (update->flags & UPDATE_EXTRA_CHSET)) { - assert(!(update->flags & UPDATE_NO_CHSET)); ret = changeset_add_removal(&update->extra_ch, rrset_copy, CHANGESET_CHECK); } } @@ -712,15 +711,17 @@ static int commit_journal(conf_t *conf, zone_update_t *update) } int ret = KNOT_EOK; + changeset_t *extra = (update->flags & UPDATE_EXTRA_CHSET) ? &update->extra_ch : NULL; + if (update->flags & UPDATE_NO_CHSET) { zone_diff_t diff; get_zone_diff(&diff, update); + assert(!zone_update_no_change(update) || !(update->flags & UPDATE_EXTRA_CHSET)); if (content != JOURNAL_CONTENT_NONE && !zone_update_no_change(update)) { - ret = zone_diff_store(conf, update->zone, &diff); + ret = zone_diff_store(conf, update->zone, &diff, extra); } } else if ((update->flags & UPDATE_INCREMENTAL) || (update->flags & UPDATE_HYBRID)) { - changeset_t *extra = (update->flags & UPDATE_EXTRA_CHSET) ? &update->extra_ch : NULL; if (content != JOURNAL_CONTENT_NONE && !zone_update_no_change(update)) { ret = zone_change_store(conf, update->zone, &update->change, extra); } @@ -1419,3 +1420,88 @@ bool zone_update_changes_dnskey(zone_update_t *update) contents_have_dnskey(update->change.add)); } } + +static bool soa_differs_just_serial(const knot_rrset_t *soa1, const knot_rrset_t *soa2) +{ + return soa1 != NULL && soa2 != NULL && soa1->rrs.count == 1 && soa2->rrs.count == 1 && + knot_dname_is_equal(knot_soa_primary(soa1->rrs.rdata), knot_soa_primary(soa2->rrs.rdata)) && + knot_dname_is_equal(knot_soa_mailbox(soa1->rrs.rdata), knot_soa_mailbox(soa2->rrs.rdata)) && + knot_soa_refresh(soa1->rrs.rdata) == knot_soa_refresh(soa2->rrs.rdata) && + knot_soa_retry(soa1->rrs.rdata) == knot_soa_retry(soa2->rrs.rdata) && + knot_soa_minimum(soa1->rrs.rdata) == knot_soa_minimum(soa2->rrs.rdata) && + knot_soa_expire(soa1->rrs.rdata) == knot_soa_expire(soa2->rrs.rdata); +} + +static int diff_just_ser_cb(const knot_rrset_t *rr, void *ctx) +{ + bool ignore_zonemd = *((bool *)ctx); + if (rr->type == KNOT_RRTYPE_SOA || (ignore_zonemd && rr->type == KNOT_RRTYPE_ZONEMD)) { + return KNOT_EOK; + } + if (rr->type != KNOT_RRTYPE_RRSIG) { + return 1; + } + knot_rdata_t *rd = rr->rrs.rdata; + for (int i = 0; i < rr->rrs.count; i++) { + uint16_t type = knot_rrsig_type_covered(rd); + if (type != KNOT_RRTYPE_SOA && (!ignore_zonemd || type != KNOT_RRTYPE_ZONEMD)) { + return 1; + } + rd = knot_rdataset_next(rd); + } + return KNOT_EOK; +} + +int zone_update_differs_just_serial(zone_update_t *update, bool ignore_zonemd) +{ + int ret = zone_update_foreach(update, false, diff_just_ser_cb, &ignore_zonemd); + if (ret == KNOT_EOK) { + ret = zone_update_foreach(update, true, diff_just_ser_cb, &ignore_zonemd); + } + if (ret != KNOT_EOK || (update->flags & UPDATE_FULL)) { + return ret; + } + if (!(update->flags & UPDATE_NO_CHSET)) { + return soa_differs_just_serial(update->change.soa_from, update->change.soa_to) ? KNOT_EOK : 1; + } + knot_rrset_t soa1 = node_rrset(binode_counterpart(update->new_cont->apex), KNOT_RRTYPE_SOA); + knot_rrset_t soa2 = node_rrset(update->new_cont->apex, KNOT_RRTYPE_SOA); + return soa_differs_just_serial(&soa1, &soa2) ? KNOT_EOK : 1; +} + +static int ch_rem_cb(const knot_rrset_t *rr, void *ctx) +{ + return changeset_add_removal(ctx, rr, 0); +} + +static int ch_add_cb(const knot_rrset_t *rr, void *ctx) +{ + return changeset_add_addition(ctx, rr, 0); +} + +int zone_update_to_changeset(zone_update_t *update, changeset_t **ch) +{ + if (update == NULL || ch == NULL || (update->flags & UPDATE_FULL)) { + return KNOT_EINVAL; + } + + if (!(update->flags & UPDATE_NO_CHSET)) { + *ch = changeset_clone(&update->change); + return *ch == NULL ? KNOT_ENOMEM : KNOT_EOK; + } + + *ch = changeset_new(update->zone->name); + if (*ch == NULL) { + return KNOT_ENOMEM; + } + + int ret = zone_update_foreach(update, false, ch_rem_cb, *ch); + if (ret == KNOT_EOK) { + ret = zone_update_foreach(update, true, ch_add_cb, *ch); + } + if (ret != KNOT_EOK) { + changeset_free(*ch); + *ch = NULL; + } + return ret; +} diff --git a/src/knot/updates/zone-update.h b/src/knot/updates/zone-update.h index c906f04d82..0bb724e043 100644 --- a/src/knot/updates/zone-update.h +++ b/src/knot/updates/zone-update.h @@ -337,3 +337,25 @@ int zone_update_foreach(zone_update_t *update, bool additions, rrset_cb_t cb, vo * \brief Return whether apex DNSKEY, CDNSKEY, or CDS is updated. */ bool zone_update_changes_dnskey(zone_update_t *update); + +/*! + * \brief Check if update changes just SOA serial, SOA RRSIG, and optionally also ZONEMD and its RRSIG. + * + * \param update Zone update in question. + * \param ignore_zonemd Allow also a change to ZONEMD and its RRSIG. + * + * \retval 1 if something else is also modified. + * \retval KNOT_EOK if no other changes. + * \return KNOT_E* if error occured. + */ +int zone_update_differs_just_serial(zone_update_t *update, bool ignore_zonemd); + +/*! + * \brief Store the changes in zone update to a changeset. + * + * \param update Update in question. + * \param ch Output: newly allocated changeset. + * + * \return KNOT_E* + */ +int zone_update_to_changeset(zone_update_t *update, changeset_t **ch); diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 07361095f3..ed30877fa7 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -446,13 +446,13 @@ int zone_change_store(conf_t *conf, zone_t *zone, changeset_t *change, changeset return journal_insert_flush(conf, zone, change, extra, NULL); } -int zone_diff_store(conf_t *conf, zone_t *zone, const zone_diff_t *diff) +int zone_diff_store(conf_t *conf, zone_t *zone, const zone_diff_t *diff, changeset_t *extra) { if (conf == NULL || zone == NULL || diff == NULL) { return KNOT_EINVAL; } - return journal_insert_flush(conf, zone, NULL, NULL, diff); + return journal_insert_flush(conf, zone, NULL, extra, diff); } int zone_changes_clear(conf_t *conf, zone_t *zone) diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 4ac43d66ae..928ca373ad 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -228,7 +228,7 @@ inline static zone_journal_t zone_journal(zone_t *zone) } int zone_change_store(conf_t *conf, zone_t *zone, changeset_t *change, changeset_t *extra); -int zone_diff_store(conf_t *conf, zone_t *zone, const zone_diff_t *diff); +int zone_diff_store(conf_t *conf, zone_t *zone, const zone_diff_t *diff, changeset_t *extra); int zone_changes_clear(conf_t *conf, zone_t *zone); int zone_in_journal_store(conf_t *conf, zone_t *zone, zone_contents_t *new_contents); From b9f47d1be7cbae7cdde9b0091358d1f0e1f793a0 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 26 Feb 2026 13:51:54 +0100 Subject: [PATCH 367/675] libngtcp2: update embedded library to v1.21.0 --- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c | 265 +++++++++++------- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h | 1 + .../libngtcp2/ngtcp2/lib/ngtcp2_conn.c | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c | 24 -- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h | 30 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c | 35 +-- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h | 2 - src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c | 18 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h | 10 +- .../libngtcp2/ngtcp2/lib/ngtcp2_qlog.c | 27 +- src/contrib/libngtcp2/ngtcp2/ngtcp2.h | 6 +- src/contrib/libngtcp2/ngtcp2/version.h | 4 +- 12 files changed, 219 insertions(+), 207 deletions(-) diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c index 02865e2a2f..3db6a9f2bf 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c @@ -76,13 +76,15 @@ static void bbr_init_round_counting(ngtcp2_cc_bbr *bbr); static void bbr_reset_full_bw(ngtcp2_cc_bbr *bbr); -static void bbr_init_pacing_rate(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); +static void bbr_init_pacing_rate(const ngtcp2_cc_bbr *bbr, + ngtcp2_conn_stat *cstat); -static void bbr_set_pacing_rate_with_gain(ngtcp2_cc_bbr *bbr, +static void bbr_set_pacing_rate_with_gain(const ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, uint64_t pacing_gain_h); -static void bbr_set_pacing_rate(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); +static void bbr_set_pacing_rate(const ngtcp2_cc_bbr *bbr, + ngtcp2_conn_stat *cstat); static void bbr_enter_startup(ngtcp2_cc_bbr *bbr); @@ -100,47 +102,47 @@ static void bbr_update_control_parameters(ngtcp2_cc_bbr *cc, ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack); -static void bbr_update_on_loss(ngtcp2_cc_bbr *cc, ngtcp2_conn_stat *cstat, - const ngtcp2_cc_pkt *pkt, ngtcp2_tstamp ts); - static void bbr_update_latest_delivery_signals(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat); + const ngtcp2_conn_stat *cstat); static void bbr_advance_latest_delivery_signals(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat); + const ngtcp2_conn_stat *cstat); static void bbr_update_congestion_signals(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack); -static void bbr_adapt_lower_bounds_from_congestion(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat); +static void +bbr_adapt_lower_bounds_from_congestion(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat); -static void bbr_init_lower_bounds(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); +static void bbr_init_lower_bounds(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat); static void bbr_loss_lower_bounds(ngtcp2_cc_bbr *bbr); static void bbr_bound_bw_for_model(ngtcp2_cc_bbr *bbr); -static void bbr_update_max_bw(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, +static void bbr_update_max_bw(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack); static void bbr_update_round(ngtcp2_cc_bbr *bbr, const ngtcp2_cc_ack *ack); static void bbr_start_round(ngtcp2_cc_bbr *bbr); -static int bbr_is_in_probe_bw_state(ngtcp2_cc_bbr *bbr); +static int bbr_is_in_probe_bw_state(const ngtcp2_cc_bbr *bbr); -static int bbr_is_probing_bw(ngtcp2_cc_bbr *bbr); +static int bbr_is_probing_bw(const ngtcp2_cc_bbr *bbr); static void bbr_update_ack_aggregation(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts); static void bbr_enter_drain(ngtcp2_cc_bbr *bbr); -static void bbr_check_drain_done(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, +static void bbr_check_drain_done(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts); static void bbr_enter_probe_bw(ngtcp2_cc_bbr *bbr, ngtcp2_tstamp ts); @@ -151,57 +153,68 @@ static void bbr_start_probe_bw_cruise(ngtcp2_cc_bbr *bbr); static void bbr_start_probe_bw_refill(ngtcp2_cc_bbr *bbr); -static void bbr_start_probe_bw_up(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); +static void bbr_start_probe_bw_up(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat); static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts); -static int bbr_is_time_to_cruise(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); +static int bbr_is_time_to_cruise(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat); -static int bbr_is_time_to_go_down(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); +static int bbr_is_time_to_go_down(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat); -static int bbr_has_elapsed_in_phase(ngtcp2_cc_bbr *bbr, +static int bbr_has_elapsed_in_phase(const ngtcp2_cc_bbr *bbr, ngtcp2_duration interval, ngtcp2_tstamp ts); -static uint64_t bbr_inflight_with_headroom(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat); +static uint64_t bbr_inflight_with_headroom(const ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat); static void bbr_raise_inflight_longterm_slope(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat); + const ngtcp2_conn_stat *cstat); static void bbr_probe_inflight_longterm_upward(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack); static void bbr_adapt_longterm_model(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack); -static int bbr_is_time_to_probe_bw(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, +static int bbr_is_time_to_probe_bw(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts); static void bbr_pick_probe_wait(ngtcp2_cc_bbr *bbr); -static int bbr_is_reno_coexistence_probe_time(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat); +static int bbr_is_reno_coexistence_probe_time(const ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat); -static uint64_t bbr_target_inflight(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat); +static uint64_t bbr_target_inflight(const ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat); -static int bbr_is_inflight_too_high(ngtcp2_cc_bbr *bbr, const ngtcp2_rs *rs); +static int bbr_is_inflight_too_high(const ngtcp2_cc_bbr *bbr, + const ngtcp2_rs *rs); static void bbr_handle_inflight_too_high(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_rs *rs, ngtcp2_tstamp ts); static void bbr_note_loss(ngtcp2_cc_bbr *bbr); -static void bbr_handle_lost_packet(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, +static void bbr_save_state_upon_loss(ngtcp2_cc_bbr *bbr); + +static void bbr_handle_spurious_loss_detection(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat); + +static void bbr_handle_lost_packet(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_pkt *pkt, ngtcp2_tstamp ts); -static uint64_t bbr_inflight_at_loss(ngtcp2_cc_bbr *bbr, +static uint64_t bbr_inflight_at_loss(const ngtcp2_cc_bbr *bbr, const ngtcp2_cc_pkt *pkt, const ngtcp2_rs *rs); @@ -220,7 +233,7 @@ static void bbr_check_probe_rtt_done(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts); static void bbr_mark_connection_app_limited(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat); + const ngtcp2_conn_stat *cstat); static void bbr_exit_probe_rtt(ngtcp2_cc_bbr *bbr, ngtcp2_tstamp ts); @@ -231,27 +244,28 @@ static void bbr_handle_restart_from_idle(ngtcp2_cc_bbr *bbr, static uint64_t bbr_bdp_multiple(ngtcp2_cc_bbr *bbr, uint64_t gain_h); static uint64_t bbr_quantization_budget(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, uint64_t inflight); -static uint64_t bbr_inflight(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, +static uint64_t bbr_inflight(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat, uint64_t gain_h); static void bbr_update_max_inflight(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat); + const ngtcp2_conn_stat *cstat); static void bbr_update_offload_budget(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat); + const ngtcp2_conn_stat *cstat); static uint64_t min_pipe_cwnd(size_t max_udp_payload_size); static void bbr_advance_max_bw_filter(ngtcp2_cc_bbr *bbr); -static void bbr_save_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); +static void bbr_save_cwnd(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat); -static void bbr_restore_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); +static void bbr_restore_cwnd(const ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); -static uint64_t bbr_probe_rtt_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); +static uint64_t bbr_probe_rtt_cwnd(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat); static void bbr_bound_cwnd_for_probe_rtt(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); @@ -259,10 +273,11 @@ static void bbr_bound_cwnd_for_probe_rtt(ngtcp2_cc_bbr *bbr, static void bbr_set_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack); -static void bbr_bound_cwnd_for_model(ngtcp2_cc_bbr *bbr, +static void bbr_bound_cwnd_for_model(const ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); -static void bbr_set_send_quantum(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat); +static void bbr_set_send_quantum(const ngtcp2_cc_bbr *bbr, + ngtcp2_conn_stat *cstat); static int in_congestion_recovery(const ngtcp2_conn_stat *cstat, ngtcp2_tstamp sent_time); @@ -336,6 +351,7 @@ static void bbr_on_init(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, bbr->bdp = 0; + bbr->undo_state = 0; bbr->undo_bw_shortterm = 0; bbr->undo_inflight_shortterm = 0; bbr->undo_inflight_longterm = 0; @@ -365,7 +381,7 @@ static void bbr_reset_full_bw(ngtcp2_cc_bbr *bbr) { } static void bbr_check_full_bw_reached(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { + const ngtcp2_conn_stat *cstat) { if (bbr->full_bw_now || !bbr->round_start || bbr->rst->rs.is_app_limited) { return; } @@ -404,7 +420,8 @@ static void bbr_check_startup_high_loss(ngtcp2_cc_bbr *bbr) { bbr_bdp_multiple(bbr, bbr->cwnd_gain_h), bbr->inflight_latest); } -static void bbr_init_pacing_rate(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { +static void bbr_init_pacing_rate(const ngtcp2_cc_bbr *bbr, + ngtcp2_conn_stat *cstat) { cstat->pacing_interval_m = ngtcp2_max_uint64( ((cstat->first_rtt_sample_ts == UINT64_MAX ? NGTCP2_MILLISECONDS : cstat->smoothed_rtt) @@ -413,7 +430,7 @@ static void bbr_init_pacing_rate(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { 1); } -static void bbr_set_pacing_rate_with_gain(ngtcp2_cc_bbr *bbr, +static void bbr_set_pacing_rate_with_gain(const ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, uint64_t pacing_gain_h) { uint64_t interval_m; @@ -431,7 +448,8 @@ static void bbr_set_pacing_rate_with_gain(ngtcp2_cc_bbr *bbr, } } -static void bbr_set_pacing_rate(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { +static void bbr_set_pacing_rate(const ngtcp2_cc_bbr *bbr, + ngtcp2_conn_stat *cstat) { bbr_set_pacing_rate_with_gain(bbr, cstat, bbr->pacing_gain_h); } @@ -487,13 +505,8 @@ static void bbr_update_control_parameters(ngtcp2_cc_bbr *bbr, bbr_set_cwnd(bbr, cstat, ack); } -static void bbr_update_on_loss(ngtcp2_cc_bbr *cc, ngtcp2_conn_stat *cstat, - const ngtcp2_cc_pkt *pkt, ngtcp2_tstamp ts) { - bbr_handle_lost_packet(cc, cstat, pkt, ts); -} - static void bbr_update_latest_delivery_signals(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { + const ngtcp2_conn_stat *cstat) { bbr->loss_round_start = 0; bbr->bw_latest = ngtcp2_max_uint64(bbr->bw_latest, cstat->delivery_rate_sec); bbr->inflight_latest = @@ -506,7 +519,7 @@ static void bbr_update_latest_delivery_signals(ngtcp2_cc_bbr *bbr, } static void bbr_advance_latest_delivery_signals(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { + const ngtcp2_conn_stat *cstat) { if (bbr->loss_round_start) { bbr->bw_latest = cstat->delivery_rate_sec; bbr->inflight_latest = bbr->rst->rs.delivered; @@ -514,7 +527,7 @@ static void bbr_advance_latest_delivery_signals(ngtcp2_cc_bbr *bbr, } static void bbr_update_congestion_signals(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack) { bbr_update_max_bw(bbr, cstat, ack); @@ -532,8 +545,9 @@ static void bbr_update_congestion_signals(ngtcp2_cc_bbr *bbr, bbr->loss_in_round = 0; } -static void bbr_adapt_lower_bounds_from_congestion(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { +static void +bbr_adapt_lower_bounds_from_congestion(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat) { if (bbr_is_probing_bw(bbr)) { return; } @@ -544,7 +558,8 @@ static void bbr_adapt_lower_bounds_from_congestion(ngtcp2_cc_bbr *bbr, } } -static void bbr_init_lower_bounds(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { +static void bbr_init_lower_bounds(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat) { if (bbr->bw_shortterm == UINT64_MAX) { bbr->bw_shortterm = bbr->max_bw; } @@ -567,7 +582,7 @@ static void bbr_bound_bw_for_model(ngtcp2_cc_bbr *bbr) { bbr->bw = ngtcp2_min_uint64(bbr->max_bw, bbr->bw_shortterm); } -static void bbr_update_max_bw(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, +static void bbr_update_max_bw(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack) { bbr_update_round(bbr, ack); @@ -603,7 +618,7 @@ static void bbr_start_round(ngtcp2_cc_bbr *bbr) { bbr->next_round_delivered = bbr->rst->delivered; } -static int bbr_is_in_probe_bw_state(ngtcp2_cc_bbr *bbr) { +static int bbr_is_in_probe_bw_state(const ngtcp2_cc_bbr *bbr) { switch (bbr->state) { case NGTCP2_BBR_STATE_PROBE_BW_DOWN: case NGTCP2_BBR_STATE_PROBE_BW_CRUISE: @@ -615,7 +630,7 @@ static int bbr_is_in_probe_bw_state(ngtcp2_cc_bbr *bbr) { } } -static int bbr_is_probing_bw(ngtcp2_cc_bbr *bbr) { +static int bbr_is_probing_bw(const ngtcp2_cc_bbr *bbr) { switch (bbr->state) { case NGTCP2_BBR_STATE_STARTUP: case NGTCP2_BBR_STATE_PROBE_BW_REFILL: @@ -627,7 +642,7 @@ static int bbr_is_probing_bw(ngtcp2_cc_bbr *bbr) { } static void bbr_update_ack_aggregation(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts) { ngtcp2_duration interval = ts - bbr->extra_acked_interval_start; @@ -669,7 +684,8 @@ static void bbr_enter_drain(ngtcp2_cc_bbr *bbr) { bbr->cwnd_gain_h = NGTCP2_BBR_DEFAULT_CWND_GAIN_H; } -static void bbr_check_drain_done(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, +static void bbr_check_drain_done(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts) { if (bbr->state == NGTCP2_BBR_STATE_DRAIN && cstat->bytes_in_flight <= bbr_inflight(bbr, cstat, 100)) { @@ -726,7 +742,8 @@ static void bbr_start_probe_bw_refill(ngtcp2_cc_bbr *bbr) { bbr->cwnd_gain_h = NGTCP2_BBR_DEFAULT_CWND_GAIN_H; } -static void bbr_start_probe_bw_up(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { +static void bbr_start_probe_bw_up(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat) { ngtcp2_log_info(bbr->cc.log, NGTCP2_LOG_EVENT_CCA, "bbr start ProbeBW_UP"); bbr->ack_phase = NGTCP2_BBR_ACK_PHASE_ACKS_PROBE_STARTING; @@ -743,7 +760,7 @@ static void bbr_start_probe_bw_up(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { } static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack, ngtcp2_tstamp ts) { if (!bbr->full_bw_reached) { @@ -791,14 +808,16 @@ static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr, } } -static int bbr_is_time_to_cruise(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { +static int bbr_is_time_to_cruise(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat) { uint64_t inflight = ngtcp2_min_uint64(bbr_inflight_with_headroom(bbr, cstat), bbr_inflight(bbr, cstat, 100)); return cstat->bytes_in_flight <= inflight; } -static int bbr_is_time_to_go_down(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { +static int bbr_is_time_to_go_down(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat) { if (bbr->rst->is_cwnd_limited && cstat->cwnd >= bbr->inflight_longterm) { bbr_reset_full_bw(bbr); bbr->full_bw = cstat->delivery_rate_sec; @@ -809,14 +828,14 @@ static int bbr_is_time_to_go_down(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { return bbr->full_bw_now; } -static int bbr_has_elapsed_in_phase(ngtcp2_cc_bbr *bbr, +static int bbr_has_elapsed_in_phase(const ngtcp2_cc_bbr *bbr, ngtcp2_duration interval, ngtcp2_tstamp ts) { return ts > bbr->cycle_stamp + interval; } -static uint64_t bbr_inflight_with_headroom(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { +static uint64_t bbr_inflight_with_headroom(const ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat) { uint64_t headroom; uint64_t mpcwnd; if (bbr->inflight_longterm == UINT64_MAX) { @@ -837,7 +856,7 @@ static uint64_t bbr_inflight_with_headroom(ngtcp2_cc_bbr *bbr, } static void bbr_raise_inflight_longterm_slope(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { + const ngtcp2_conn_stat *cstat) { uint64_t growth_this_round = cstat->max_tx_udp_payload_size << bbr->bw_probe_up_rounds; @@ -846,7 +865,7 @@ static void bbr_raise_inflight_longterm_slope(ngtcp2_cc_bbr *bbr, } static void bbr_probe_inflight_longterm_upward(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack) { uint64_t delta; @@ -870,7 +889,7 @@ static void bbr_probe_inflight_longterm_upward(ngtcp2_cc_bbr *bbr, } static void bbr_adapt_longterm_model(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_ack *ack) { if (bbr->ack_phase == NGTCP2_BBR_ACK_PHASE_ACKS_PROBE_STARTING && bbr->round_start) { @@ -899,7 +918,8 @@ static void bbr_adapt_longterm_model(ngtcp2_cc_bbr *bbr, } } -static int bbr_is_time_to_probe_bw(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, +static int bbr_is_time_to_probe_bw(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts) { if (bbr_has_elapsed_in_phase(bbr, bbr->bw_probe_wait, ts) || bbr_is_reno_coexistence_probe_time(bbr, cstat)) { @@ -917,27 +937,28 @@ static void bbr_pick_probe_wait(ngtcp2_cc_bbr *bbr) { 2 * NGTCP2_SECONDS + ngtcp2_pcg32_rand_n(bbr->pcg, NGTCP2_SECONDS + 1); } -static int bbr_is_reno_coexistence_probe_time(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { +static int bbr_is_reno_coexistence_probe_time(const ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat) { uint64_t reno_rounds = bbr_target_inflight(bbr, cstat) / cstat->max_tx_udp_payload_size; return bbr->rounds_since_bw_probe >= ngtcp2_min_uint64(reno_rounds, 63); } -static uint64_t bbr_target_inflight(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { +static uint64_t bbr_target_inflight(const ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat) { return ngtcp2_min_uint64(bbr->bdp, cstat->cwnd); } -static int bbr_is_inflight_too_high(ngtcp2_cc_bbr *bbr, const ngtcp2_rs *rs) { +static int bbr_is_inflight_too_high(const ngtcp2_cc_bbr *bbr, + const ngtcp2_rs *rs) { (void)bbr; return rs->lost * NGTCP2_BBR_LOSS_THRESH_DENOM > rs->tx_in_flight * NGTCP2_BBR_LOSS_THRESH_NUMER; } static void bbr_handle_inflight_too_high(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, const ngtcp2_rs *rs, ngtcp2_tstamp ts) { bbr->bw_probe_samples = 0; @@ -956,12 +977,49 @@ static void bbr_handle_inflight_too_high(ngtcp2_cc_bbr *bbr, static void bbr_note_loss(ngtcp2_cc_bbr *bbr) { if (!bbr->loss_in_round) { bbr->loss_round_delivered = bbr->rst->delivered; + bbr_save_state_upon_loss(bbr); } bbr->loss_in_round = 1; } -static void bbr_handle_lost_packet(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, +static void bbr_save_state_upon_loss(ngtcp2_cc_bbr *bbr) { + bbr->undo_state = bbr->state; + bbr->undo_bw_shortterm = bbr->bw_shortterm; + bbr->undo_inflight_shortterm = bbr->inflight_shortterm; + bbr->undo_inflight_longterm = bbr->inflight_longterm; +} + +static void bbr_handle_spurious_loss_detection(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat) { + bbr->loss_in_round = 0; + + bbr_reset_full_bw(bbr); + + bbr->bw_shortterm = + ngtcp2_max_uint64(bbr->bw_shortterm, bbr->undo_bw_shortterm); + bbr->inflight_shortterm = + ngtcp2_max_uint64(bbr->inflight_shortterm, bbr->undo_inflight_shortterm); + bbr->inflight_longterm = + ngtcp2_max_uint64(bbr->inflight_longterm, bbr->undo_inflight_longterm); + + if (bbr->state != NGTCP2_BBR_STATE_PROBE_RTT && + bbr->state != bbr->undo_state) { + switch (bbr->undo_state) { + case NGTCP2_BBR_STATE_STARTUP: + bbr_enter_startup(bbr); + break; + case NGTCP2_BBR_STATE_PROBE_BW_UP: + bbr_start_probe_bw_up(bbr, cstat); + break; + default: + break; + } + } +} + +static void bbr_handle_lost_packet(ngtcp2_cc_bbr *bbr, + const ngtcp2_conn_stat *cstat, const ngtcp2_cc_pkt *pkt, ngtcp2_tstamp ts) { ngtcp2_rs rs = {0}; @@ -983,7 +1041,7 @@ static void bbr_handle_lost_packet(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, } } -static uint64_t bbr_inflight_at_loss(ngtcp2_cc_bbr *bbr, +static uint64_t bbr_inflight_at_loss(const ngtcp2_cc_bbr *bbr, const ngtcp2_cc_pkt *pkt, const ngtcp2_rs *rs) { uint64_t inflight_prev, lost_prev, lost_prefix; @@ -1100,7 +1158,7 @@ static void bbr_check_probe_rtt_done(ngtcp2_cc_bbr *bbr, } static void bbr_mark_connection_app_limited(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { + const ngtcp2_conn_stat *cstat) { bbr->rst->app_limited = ngtcp2_max_uint64(bbr->rst->delivered + cstat->bytes_in_flight, 1); } @@ -1148,7 +1206,7 @@ static uint64_t min_pipe_cwnd(size_t max_udp_payload_size) { } static uint64_t bbr_quantization_budget(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat, + const ngtcp2_conn_stat *cstat, uint64_t inflight) { bbr_update_offload_budget(bbr, cstat); @@ -1163,7 +1221,7 @@ static uint64_t bbr_quantization_budget(ngtcp2_cc_bbr *bbr, return inflight; } -static uint64_t bbr_inflight(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, +static uint64_t bbr_inflight(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat, uint64_t gain_h) { uint64_t inflight = bbr_bdp_multiple(bbr, gain_h); @@ -1171,7 +1229,7 @@ static uint64_t bbr_inflight(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, } static void bbr_update_max_inflight(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { + const ngtcp2_conn_stat *cstat) { uint64_t inflight; inflight = bbr_bdp_multiple(bbr, bbr->cwnd_gain_h) + bbr->extra_acked; @@ -1179,7 +1237,7 @@ static void bbr_update_max_inflight(ngtcp2_cc_bbr *bbr, } static void bbr_update_offload_budget(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { + const ngtcp2_conn_stat *cstat) { bbr->offload_budget = 3 * cstat->send_quantum; } @@ -1187,7 +1245,7 @@ static void bbr_advance_max_bw_filter(ngtcp2_cc_bbr *bbr) { ++bbr->cycle_count; } -static void bbr_save_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { +static void bbr_save_cwnd(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat) { if (!bbr->in_loss_recovery && bbr->state != NGTCP2_BBR_STATE_PROBE_RTT) { bbr->prior_cwnd = cstat->cwnd; return; @@ -1196,12 +1254,13 @@ static void bbr_save_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { bbr->prior_cwnd = ngtcp2_max_uint64(bbr->prior_cwnd, cstat->cwnd); } -static void bbr_restore_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { +static void bbr_restore_cwnd(const ngtcp2_cc_bbr *bbr, + ngtcp2_conn_stat *cstat) { cstat->cwnd = ngtcp2_max_uint64(cstat->cwnd, bbr->prior_cwnd); } static uint64_t bbr_probe_rtt_cwnd(ngtcp2_cc_bbr *bbr, - ngtcp2_conn_stat *cstat) { + const ngtcp2_conn_stat *cstat) { uint64_t probe_rtt_cwnd = bbr_bdp_multiple(bbr, NGTCP2_BBR_PROBE_RTT_CWND_GAIN_H); uint64_t mpcwnd = min_pipe_cwnd(cstat->max_tx_udp_payload_size); @@ -1238,7 +1297,7 @@ static void bbr_set_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, bbr_bound_cwnd_for_model(bbr, cstat); } -static void bbr_bound_cwnd_for_model(ngtcp2_cc_bbr *bbr, +static void bbr_bound_cwnd_for_model(const ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { uint64_t cap = UINT64_MAX; uint64_t mpcwnd = min_pipe_cwnd(cstat->max_tx_udp_payload_size); @@ -1257,7 +1316,8 @@ static void bbr_bound_cwnd_for_model(ngtcp2_cc_bbr *bbr, cstat->cwnd = ngtcp2_min_uint64(cstat->cwnd, cap); } -static void bbr_set_send_quantum(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { +static void bbr_set_send_quantum(const ngtcp2_cc_bbr *bbr, + ngtcp2_conn_stat *cstat) { size_t send_quantum = 64 * 1024; (void)bbr; @@ -1293,7 +1353,7 @@ static void bbr_cc_on_pkt_lost(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, const ngtcp2_cc_pkt *pkt, ngtcp2_tstamp ts) { ngtcp2_cc_bbr *bbr = ngtcp2_struct_of(cc, ngtcp2_cc_bbr, cc); - bbr_update_on_loss(bbr, cstat, pkt, ts); + bbr_handle_lost_packet(bbr, cstat, pkt, ts); } static void bbr_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, @@ -1311,9 +1371,6 @@ static void bbr_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, bbr->round_count_at_recovery = bbr->round_start ? bbr->round_count : bbr->round_count + 1; bbr_save_cwnd(bbr, cstat); - bbr->undo_bw_shortterm = bbr->bw_shortterm; - bbr->undo_inflight_shortterm = bbr->inflight_shortterm; - bbr->undo_inflight_longterm = bbr->inflight_longterm; cstat->congestion_recovery_start_ts = ts; } @@ -1328,15 +1385,9 @@ static void bbr_cc_on_spurious_congestion(ngtcp2_cc *cc, bbr->in_loss_recovery = 0; bbr->round_count_at_recovery = UINT64_MAX; - bbr_reset_full_bw(bbr); - bbr->loss_in_round = 0; + bbr_restore_cwnd(bbr, cstat); - bbr->bw_shortterm = - ngtcp2_max_uint64(bbr->bw_shortterm, bbr->undo_bw_shortterm); - bbr->inflight_shortterm = - ngtcp2_max_uint64(bbr->inflight_shortterm, bbr->undo_inflight_shortterm); - bbr->inflight_longterm = - ngtcp2_max_uint64(bbr->inflight_longterm, bbr->undo_inflight_longterm); + bbr_handle_spurious_loss_detection(bbr, cstat); } static void bbr_cc_on_persistent_congestion(ngtcp2_cc *cc, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h index 98b23122ff..5177944b29 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h @@ -107,6 +107,7 @@ typedef struct ngtcp2_cc_bbr { uint64_t cwnd_gain_h; /* Backup for spurious losses */ + ngtcp2_bbr_state undo_state; uint64_t undo_bw_shortterm; uint64_t undo_inflight_shortterm; uint64_t undo_inflight_longterm; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c index 84a41943a8..29fe7b0391 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c @@ -11913,6 +11913,8 @@ conn_write_vmsg_wrapper(ngtcp2_conn *conn, ngtcp2_path *path, return nwrite; } + assert((size_t)nwrite <= destlen); + if (cstat->bytes_in_flight >= cstat->cwnd) { conn->rst.is_cwnd_limited = 1; } else if ((cstat->cwnd >= cstat->ssthresh || @@ -12355,7 +12357,7 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, /* We only exceed CWND to avoid deadlock. Do no write 1RTT packet if CWND is depleted. */ if (conn_cwnd_is_zero(conn) && conn->pktns.rtb.probe_pkt_left == 0) { - goto fin; + return res; } } else if (destlen == 0) { res = conn_write_handshake_ack_pkts(conn, pi, dest, origlen, ts); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c index 0c1c0a36c5..be3c9e182b 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c @@ -31,7 +31,6 @@ #include "ngtcp2_macro.h" #include "ngtcp2_mem.h" -#include "ngtcp2_range.h" static ngtcp2_ksl_blk null_blk; @@ -815,12 +814,6 @@ int ngtcp2_ksl_it_begin(const ngtcp2_ksl_it *it) { return it->i == 0 && it->blk->prev == NULL; } -int ngtcp2_ksl_range_compar(const ngtcp2_ksl_key *lhs, - const ngtcp2_ksl_key *rhs) { - const ngtcp2_range *a = lhs, *b = rhs; - return a->begin < b->begin; -} - ngtcp2_ksl_search_def(range, ngtcp2_ksl_range_compar) size_t ngtcp2_ksl_range_search(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, @@ -828,13 +821,6 @@ size_t ngtcp2_ksl_range_search(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, return ksl_range_search(ksl, blk, key); } -int ngtcp2_ksl_range_exclusive_compar(const ngtcp2_ksl_key *lhs, - const ngtcp2_ksl_key *rhs) { - const ngtcp2_range *a = lhs, *b = rhs; - return a->begin < b->begin && !(ngtcp2_max_uint64(a->begin, b->begin) < - ngtcp2_min_uint64(a->end, b->end)); -} - ngtcp2_ksl_search_def(range_exclusive, ngtcp2_ksl_range_exclusive_compar) size_t ngtcp2_ksl_range_exclusive_search(const ngtcp2_ksl *ksl, @@ -843,11 +829,6 @@ size_t ngtcp2_ksl_range_exclusive_search(const ngtcp2_ksl *ksl, return ksl_range_exclusive_search(ksl, blk, key); } -int ngtcp2_ksl_uint64_less(const ngtcp2_ksl_key *lhs, - const ngtcp2_ksl_key *rhs) { - return *(uint64_t *)lhs < *(uint64_t *)rhs; -} - ngtcp2_ksl_search_def(uint64_less, ngtcp2_ksl_uint64_less) size_t ngtcp2_ksl_uint64_less_search(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, @@ -855,11 +836,6 @@ size_t ngtcp2_ksl_uint64_less_search(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, return ksl_uint64_less_search(ksl, blk, key); } -int ngtcp2_ksl_int64_greater(const ngtcp2_ksl_key *lhs, - const ngtcp2_ksl_key *rhs) { - return *(int64_t *)lhs > *(int64_t *)rhs; -} - ngtcp2_ksl_search_def(int64_greater, ngtcp2_ksl_int64_greater) size_t ngtcp2_ksl_int64_greater_search(const ngtcp2_ksl *ksl, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h index cb972f94dc..8024a360cd 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h @@ -34,6 +34,7 @@ #include #include "ngtcp2_objalloc.h" +#include "ngtcp2_range.h" #define NGTCP2_KSL_DEGR 16 /* NGTCP2_KSL_MAX_NBLK is the maximum number of nodes which a single @@ -356,8 +357,12 @@ static inline const ngtcp2_ksl_key *ngtcp2_ksl_it_key(const ngtcp2_ksl_it *it) { * returns nonzero if ((const ngtcp2_range *)lhs)->begin < ((const * ngtcp2_range *)rhs)->begin. */ -int ngtcp2_ksl_range_compar(const ngtcp2_ksl_key *lhs, - const ngtcp2_ksl_key *rhs); +static inline int ngtcp2_ksl_range_compar(const ngtcp2_ksl_key *lhs, + const ngtcp2_ksl_key *rhs) { + const ngtcp2_range *a = (const ngtcp2_range *)lhs, + *b = (const ngtcp2_range *)rhs; + return a->begin < b->begin; +} /* * ngtcp2_ksl_range_search is an implementation of ngtcp2_ksl_search @@ -373,8 +378,13 @@ size_t ngtcp2_ksl_range_search(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, * *)lhs)->begin < ((const ngtcp2_range *)rhs)->begin, and the 2 * ranges do not intersect. */ -int ngtcp2_ksl_range_exclusive_compar(const ngtcp2_ksl_key *lhs, - const ngtcp2_ksl_key *rhs); +static inline int ngtcp2_ksl_range_exclusive_compar(const ngtcp2_ksl_key *lhs, + const ngtcp2_ksl_key *rhs) { + const ngtcp2_range *a = (const ngtcp2_range *)lhs, + *b = (const ngtcp2_range *)rhs; + return a->begin < b->begin && !(ngtcp2_max_uint64(a->begin, b->begin) < + ngtcp2_min_uint64(a->end, b->end)); +} /* * ngtcp2_ksl_range_exclusive_search is an implementation of @@ -389,8 +399,10 @@ size_t ngtcp2_ksl_range_exclusive_search(const ngtcp2_ksl *ksl, * |lhs| and |rhs| must point to uint64_t objects, and the function * returns nonzero if *(uint64_t *)|lhs| < *(uint64_t *)|rhs|. */ -int ngtcp2_ksl_uint64_less(const ngtcp2_ksl_key *lhs, - const ngtcp2_ksl_key *rhs); +static inline int ngtcp2_ksl_uint64_less(const ngtcp2_ksl_key *lhs, + const ngtcp2_ksl_key *rhs) { + return *(const uint64_t *)lhs < *(const uint64_t *)rhs; +} /* * ngtcp2_ksl_uint64_less_search is an implementation of @@ -404,8 +416,10 @@ size_t ngtcp2_ksl_uint64_less_search(const ngtcp2_ksl *ksl, ngtcp2_ksl_blk *blk, * |lhs| and |rhs| must point to int64_t objects, and the function * returns nonzero if *(int64_t *)|lhs| > *(int64_t *)|rhs|. */ -int ngtcp2_ksl_int64_greater(const ngtcp2_ksl_key *lhs, - const ngtcp2_ksl_key *rhs); +static inline int ngtcp2_ksl_int64_greater(const ngtcp2_ksl_key *lhs, + const ngtcp2_ksl_key *rhs) { + return *(const int64_t *)lhs > *(const int64_t *)rhs; +} /* * ngtcp2_ksl_int64_greater_search is an implementation of diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c index 2015e401ef..39fd6969a5 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c @@ -146,33 +146,22 @@ static const char *strapperrorcode(uint64_t app_error_code) { return "(unknown)"; } -static const char *strpkttype_long(uint8_t type) { - switch (type) { +static const char *strpkttype(const ngtcp2_pkt_hd *hd) { + switch (hd->type) { case NGTCP2_PKT_INITIAL: return "Initial"; - case NGTCP2_PKT_RETRY: - return "Retry"; - case NGTCP2_PKT_HANDSHAKE: - return "Handshake"; case NGTCP2_PKT_0RTT: return "0RTT"; - default: - return "(unknown)"; - } -} - -static const char *strpkttype(const ngtcp2_pkt_hd *hd) { - if (hd->flags & NGTCP2_PKT_FLAG_LONG_FORM) { - return strpkttype_long(hd->type); - } - - switch (hd->type) { + case NGTCP2_PKT_HANDSHAKE: + return "Handshake"; + case NGTCP2_PKT_RETRY: + return "Retry"; + case NGTCP2_PKT_1RTT: + return "1RTT"; case NGTCP2_PKT_VERSION_NEGOTIATION: return "VN"; case NGTCP2_PKT_STATELESS_RESET: return "SR"; - case NGTCP2_PKT_1RTT: - return "1RTT"; default: return "(unknown)"; } @@ -266,7 +255,7 @@ static void log_fr_connection_close(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT " CONNECTION_CLOSE(0x%02" PRIx64 ") error_code=%s(0x%" PRIx64 ") " - "frame_type=%" PRIx64 " reason_len=%zu reason=[%s]", + "frame_type=0x%" PRIx64 " reason_len=%zu reason=[%s]", NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->type == NGTCP2_FRAME_CONNECTION_CLOSE ? strerrorcode(fr->error_code) : strapperrorcode(fr->error_code), @@ -766,12 +755,6 @@ void ngtcp2_log_tx_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd) { log_pkt_hd(log, hd, "tx"); } -void ngtcp2_log_tx_cancel(ngtcp2_log *log, const ngtcp2_pkt_hd *hd) { - ngtcp2_log_infof(log, NGTCP2_LOG_EVENT_PKT, - "cancel tx pkn=%" PRId64 " type=%s", hd->pkt_num, - strpkttype(hd)); -} - uint64_t ngtcp2_log_timestamp(const ngtcp2_log *log) { return (log->last_ts - log->ts) / NGTCP2_MILLISECONDS; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h index fabd5908e0..02726bc19d 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h @@ -119,8 +119,6 @@ void ngtcp2_log_rx_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd); void ngtcp2_log_tx_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd); -void ngtcp2_log_tx_cancel(ngtcp2_log *log, const ngtcp2_pkt_hd *hd); - #define NGTCP2_LOG_HD "I%08" PRIu64 " 0x%s %s" uint64_t ngtcp2_log_timestamp(const ngtcp2_log *log); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c index 0179dbcde9..a63913f8af 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c @@ -543,7 +543,7 @@ ngtcp2_ssize ngtcp2_frame_decoder_decode(ngtcp2_frame_decoder *frd, return ngtcp2_pkt_decode_path_response_frame(&dest->path_response, payload, payloadlen); case NGTCP2_FRAME_CRYPTO: - dest->stream.data = &frd->buf.stream_data; + dest->stream.data = &frd->buf.data; return ngtcp2_pkt_decode_crypto_frame(&dest->stream, payload, payloadlen); case NGTCP2_FRAME_NEW_TOKEN: return ngtcp2_pkt_decode_new_token_frame(&dest->new_token, payload, @@ -556,11 +556,12 @@ ngtcp2_ssize ngtcp2_frame_decoder_decode(ngtcp2_frame_decoder *frd, payload, payloadlen); case NGTCP2_FRAME_DATAGRAM: case NGTCP2_FRAME_DATAGRAM_LEN: + dest->datagram.data = &frd->buf.data; return ngtcp2_pkt_decode_datagram_frame(&dest->datagram, payload, payloadlen); default: if ((type & ~(NGTCP2_FRAME_STREAM - 1)) == NGTCP2_FRAME_STREAM) { - dest->stream.data = &frd->buf.stream_data; + dest->stream.data = &frd->buf.data; return ngtcp2_pkt_decode_stream_frame(&dest->stream, payload, payloadlen); } @@ -1490,16 +1491,13 @@ ngtcp2_ssize ngtcp2_pkt_decode_datagram_frame(ngtcp2_datagram *dest, dest->type = type; - if (datalen == 0) { - dest->datacnt = 0; - dest->data = NULL; - } else { + if (datalen) { + dest->data[0].len = datalen; + dest->data[0].base = (uint8_t *)p; dest->datacnt = 1; - dest->data = dest->rdata; - dest->rdata[0].len = datalen; - - dest->rdata[0].base = (uint8_t *)p; p += datalen; + } else { + dest->datacnt = 0; } assert((size_t)(p - payload) == len); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h index 78fcd6dcc2..abf13693b9 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h @@ -340,13 +340,9 @@ typedef struct ngtcp2_datagram { uint64_t dgram_id; /* datacnt is the number of elements that data contains. */ size_t datacnt; - /* data is a pointer to ngtcp2_vec array that stores data. */ + /* data is a pointer to ngtcp2_vec array that stores data. If + datacnt == 0, this field may be NULL.*/ ngtcp2_vec *data; - /* rdata is conveniently embedded to ngtcp2_datagram, so that data - field can just point to the address of this field to store a - single vector which is the case when DATAGRAM is received from a - remote endpoint. */ - ngtcp2_vec rdata[1]; } ngtcp2_datagram; typedef union ngtcp2_frame { @@ -457,7 +453,7 @@ ngtcp2_ssize ngtcp2_pkt_encode_hd_short(uint8_t *out, size_t outlen, */ typedef struct ngtcp2_frame_decoder { union { - ngtcp2_vec stream_data; + ngtcp2_vec data; ngtcp2_ack_range ack_ranges[NGTCP2_MAX_ACK_RANGES]; } buf; } ngtcp2_frame_decoder; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c index 7c1142d14d..c10e2ff670 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c @@ -223,28 +223,21 @@ static const ngtcp2_vec vec_pkt_type_stateless_reset = static const ngtcp2_vec vec_pkt_type_unknown = ngtcp2_make_vec_lit("unknown"); static const ngtcp2_vec *qlog_pkt_type(const ngtcp2_pkt_hd *hd) { - if (hd->flags & NGTCP2_PKT_FLAG_LONG_FORM) { - switch (hd->type) { - case NGTCP2_PKT_INITIAL: - return &vec_pkt_type_initial; - case NGTCP2_PKT_HANDSHAKE: - return &vec_pkt_type_handshake; - case NGTCP2_PKT_0RTT: - return &vec_pkt_type_0rtt; - case NGTCP2_PKT_RETRY: - return &vec_pkt_type_retry; - default: - return &vec_pkt_type_unknown; - } - } - switch (hd->type) { + case NGTCP2_PKT_INITIAL: + return &vec_pkt_type_initial; + case NGTCP2_PKT_0RTT: + return &vec_pkt_type_0rtt; + case NGTCP2_PKT_HANDSHAKE: + return &vec_pkt_type_handshake; + case NGTCP2_PKT_RETRY: + return &vec_pkt_type_retry; + case NGTCP2_PKT_1RTT: + return &vec_pkt_type_1rtt; case NGTCP2_PKT_VERSION_NEGOTIATION: return &vec_pkt_type_version_negotiation; case NGTCP2_PKT_STATELESS_RESET: return &vec_pkt_type_stateless_reset; - case NGTCP2_PKT_1RTT: - return &vec_pkt_type_1rtt; default: return &vec_pkt_type_unknown; } diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h index a09ceea382..ba3f7a7e1a 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h @@ -1281,7 +1281,7 @@ typedef struct ngtcp2_sockaddr_in { } ngtcp2_sockaddr_in; typedef struct ngtcp2_in6_addr { - uint8_t in6_addr[16]; + uint8_t s6_addr[16]; } ngtcp2_in6_addr; typedef struct ngtcp2_sockaddr_in6 { @@ -1866,8 +1866,8 @@ typedef struct ngtcp2_settings { uint64_t max_stream_window; /** * :member:`ack_thresh` is the minimum number of the received ACK - * eliciting packets that trigger the immediate acknowledgement from - * the local endpoint. + * eliciting packets that triggers the immediate acknowledgement + * from the local endpoint. */ size_t ack_thresh; /** diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index 6a1ca01345..ff43c9c8f8 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.20.0" +#define NGTCP2_VERSION "1.21.0" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x011400 +#define NGTCP2_VERSION_NUM 0x011500 #endif /* !defined(NGTCP2_VERSION_H) */ From d14009f6adbe5fa69b35c7369baf5bc7855fac6f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 19 Jan 2026 17:23:09 +0100 Subject: [PATCH 368/675] libs: add ALIAS record support --- src/libknot/descriptor.c | 2 + src/libknot/descriptor.h | 2 + src/libknot/rrset-dump.c | 1 + src/libzscanner/scanner.c.g2 | 61613 +++++++++++++------------- src/libzscanner/scanner.c.t0 | 9767 ++-- src/libzscanner/scanner_body.rl | 5 + tests/libzscanner/TESTS | 1 + tests/libzscanner/data/62_ALIAS.in | 14 + tests/libzscanner/data/62_ALIAS.out | 32 + tests/libzscanner/test_zscanner.in | 2 +- 10 files changed, 36242 insertions(+), 35197 deletions(-) create mode 100644 tests/libzscanner/data/62_ALIAS.in create mode 100644 tests/libzscanner/data/62_ALIAS.out diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c index 69d4b17c8a..0032d59d41 100644 --- a/src/libknot/descriptor.c +++ b/src/libknot/descriptor.c @@ -147,6 +147,8 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { KNOT_RDATA_WF_END }, "RESINFO" }, [KNOT_RRTYPE_WALLET] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "WALLET" }, + [KNOT_RRTYPE_ALIAS] = { { KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, + KNOT_RDATA_WF_END }, "ALIAS" }, }; #define MAX_RRTYPE sizeof(rdata_descriptors) / sizeof(knot_rdata_descriptor_t) - 1 diff --git a/src/libknot/descriptor.h b/src/libknot/descriptor.h index b438356401..64bf659ebe 100644 --- a/src/libknot/descriptor.h +++ b/src/libknot/descriptor.h @@ -120,6 +120,8 @@ enum knot_rr_type { KNOT_RRTYPE_RESINFO = 261, /*!< Resolver information as key/value pairs. */ KNOT_RRTYPE_WALLET = 262, /*!< Public wallet address. */ + + KNOT_RRTYPE_ALIAS = 65401, /*!< PRIVATE. Alias record. */ }; /*! diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c index d54c6580d5..0691cc945c 100644 --- a/src/libknot/rrset-dump.c +++ b/src/libknot/rrset-dump.c @@ -2290,6 +2290,7 @@ static int txt_dump_data(rrset_dump_params_t *p, uint16_t type) case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: return dump_ns(p); case KNOT_RRTYPE_SOA: return dump_soa(p); diff --git a/src/libzscanner/scanner.c.g2 b/src/libzscanner/scanner.c.g2 index 2573fc5227..13d1643bde 100644 --- a/src/libzscanner/scanner.c.g2 +++ b/src/libzscanner/scanner.c.g2 @@ -99,7 +99,7 @@ int zs_init( memset(s, 0, sizeof(*s)); // Nonzero initial scanner state. - s->cs = 1492; + s->cs = 1504; // Reset the file descriptor. s->file.descriptor = -1; @@ -429,7 +429,7 @@ static void parse( _again: switch ( cs ) { - case 1492: goto st1492; + case 1504: goto st1504; case 0: goto st0; case 1: goto st1; case 2: goto st2; @@ -444,7 +444,7 @@ _again: case 11: goto st11; case 12: goto st12; case 13: goto st13; - case 1493: goto st1493; + case 1505: goto st1505; case 14: goto st14; case 15: goto st15; case 16: goto st16; @@ -620,7 +620,7 @@ _again: case 186: goto st186; case 187: goto st187; case 188: goto st188; - case 1494: goto st1494; + case 1506: goto st1506; case 189: goto st189; case 190: goto st190; case 191: goto st191; @@ -631,7 +631,7 @@ _again: case 196: goto st196; case 197: goto st197; case 198: goto st198; - case 1495: goto st1495; + case 1507: goto st1507; case 199: goto st199; case 200: goto st200; case 201: goto st201; @@ -640,11 +640,11 @@ _again: case 204: goto st204; case 205: goto st205; case 206: goto st206; - case 1496: goto st1496; + case 1508: goto st1508; case 207: goto st207; case 208: goto st208; case 209: goto st209; - case 1497: goto st1497; + case 1509: goto st1509; case 210: goto st210; case 211: goto st211; case 212: goto st212; @@ -656,12 +656,12 @@ _again: case 218: goto st218; case 219: goto st219; case 220: goto st220; - case 1498: goto st1498; + case 1510: goto st1510; case 221: goto st221; case 222: goto st222; case 223: goto st223; case 224: goto st224; - case 1499: goto st1499; + case 1511: goto st1511; case 225: goto st225; case 226: goto st226; case 227: goto st227; @@ -681,7 +681,7 @@ _again: case 241: goto st241; case 242: goto st242; case 243: goto st243; - case 1500: goto st1500; + case 1512: goto st1512; case 244: goto st244; case 245: goto st245; case 246: goto st246; @@ -698,7 +698,7 @@ _again: case 257: goto st257; case 258: goto st258; case 259: goto st259; - case 1501: goto st1501; + case 1513: goto st1513; case 260: goto st260; case 261: goto st261; case 262: goto st262; @@ -764,28 +764,28 @@ _again: case 322: goto st322; case 323: goto st323; case 324: goto st324; - case 1502: goto st1502; case 325: goto st325; case 326: goto st326; - case 1503: goto st1503; case 327: goto st327; case 328: goto st328; - case 1504: goto st1504; + case 1514: goto st1514; case 329: goto st329; case 330: goto st330; + case 1515: goto st1515; case 331: goto st331; case 332: goto st332; + case 1516: goto st1516; case 333: goto st333; case 334: goto st334; case 335: goto st335; case 336: goto st336; case 337: goto st337; - case 1505: goto st1505; - case 1506: goto st1506; case 338: goto st338; case 339: goto st339; case 340: goto st340; case 341: goto st341; + case 1517: goto st1517; + case 1518: goto st1518; case 342: goto st342; case 343: goto st343; case 344: goto st344; @@ -797,22 +797,22 @@ _again: case 350: goto st350; case 351: goto st351; case 352: goto st352; - case 1507: goto st1507; case 353: goto st353; case 354: goto st354; case 355: goto st355; case 356: goto st356; + case 1519: goto st1519; case 357: goto st357; case 358: goto st358; case 359: goto st359; case 360: goto st360; case 361: goto st361; case 362: goto st362; - case 1508: goto st1508; case 363: goto st363; case 364: goto st364; case 365: goto st365; case 366: goto st366; + case 1520: goto st1520; case 367: goto st367; case 368: goto st368; case 369: goto st369; @@ -823,35 +823,35 @@ _again: case 374: goto st374; case 375: goto st375; case 376: goto st376; - case 1509: goto st1509; case 377: goto st377; case 378: goto st378; case 379: goto st379; case 380: goto st380; + case 1521: goto st1521; case 381: goto st381; case 382: goto st382; case 383: goto st383; - case 1510: goto st1510; case 384: goto st384; case 385: goto st385; case 386: goto st386; case 387: goto st387; + case 1522: goto st1522; case 388: goto st388; case 389: goto st389; case 390: goto st390; case 391: goto st391; case 392: goto st392; - case 1511: goto st1511; - case 1512: goto st1512; - case 1513: goto st1513; case 393: goto st393; case 394: goto st394; case 395: goto st395; - case 1514: goto st1514; case 396: goto st396; + case 1523: goto st1523; + case 1524: goto st1524; + case 1525: goto st1525; case 397: goto st397; case 398: goto st398; case 399: goto st399; + case 1526: goto st1526; case 400: goto st400; case 401: goto st401; case 402: goto st402; @@ -1030,20 +1030,20 @@ _again: case 575: goto st575; case 576: goto st576; case 577: goto st577; - case 1515: goto st1515; - case 1516: goto st1516; case 578: goto st578; case 579: goto st579; case 580: goto st580; - case 1517: goto st1517; case 581: goto st581; case 582: goto st582; case 583: goto st583; case 584: goto st584; case 585: goto st585; + case 1527: goto st1527; + case 1528: goto st1528; case 586: goto st586; case 587: goto st587; case 588: goto st588; + case 1529: goto st1529; case 589: goto st589; case 590: goto st590; case 591: goto st591; @@ -1212,44 +1212,44 @@ _again: case 754: goto st754; case 755: goto st755; case 756: goto st756; - case 1518: goto st1518; - case 1519: goto st1519; - case 1520: goto st1520; case 757: goto st757; case 758: goto st758; case 759: goto st759; case 760: goto st760; case 761: goto st761; - case 1521: goto st1521; case 762: goto st762; case 763: goto st763; case 764: goto st764; case 765: goto st765; - case 1522: goto st1522; - case 1523: goto st1523; - case 1524: goto st1524; case 766: goto st766; case 767: goto st767; - case 1525: goto st1525; case 768: goto st768; + case 1530: goto st1530; + case 1531: goto st1531; + case 1532: goto st1532; case 769: goto st769; case 770: goto st770; case 771: goto st771; case 772: goto st772; case 773: goto st773; - case 1526: goto st1526; + case 1533: goto st1533; case 774: goto st774; case 775: goto st775; case 776: goto st776; case 777: goto st777; + case 1534: goto st1534; + case 1535: goto st1535; + case 1536: goto st1536; case 778: goto st778; case 779: goto st779; + case 1537: goto st1537; case 780: goto st780; case 781: goto st781; case 782: goto st782; case 783: goto st783; case 784: goto st784; case 785: goto st785; + case 1538: goto st1538; case 786: goto st786; case 787: goto st787; case 788: goto st788; @@ -1298,8 +1298,6 @@ _again: case 831: goto st831; case 832: goto st832; case 833: goto st833; - case 1527: goto st1527; - case 1528: goto st1528; case 834: goto st834; case 835: goto st835; case 836: goto st836; @@ -1309,10 +1307,11 @@ _again: case 840: goto st840; case 841: goto st841; case 842: goto st842; - case 1529: goto st1529; case 843: goto st843; case 844: goto st844; case 845: goto st845; + case 1539: goto st1539; + case 1540: goto st1540; case 846: goto st846; case 847: goto st847; case 848: goto st848; @@ -1322,6 +1321,7 @@ _again: case 852: goto st852; case 853: goto st853; case 854: goto st854; + case 1541: goto st1541; case 855: goto st855; case 856: goto st856; case 857: goto st857; @@ -1405,7 +1405,6 @@ _again: case 935: goto st935; case 936: goto st936; case 937: goto st937; - case 1530: goto st1530; case 938: goto st938; case 939: goto st939; case 940: goto st940; @@ -1418,6 +1417,7 @@ _again: case 947: goto st947; case 948: goto st948; case 949: goto st949; + case 1542: goto st1542; case 950: goto st950; case 951: goto st951; case 952: goto st952; @@ -1510,7 +1510,6 @@ _again: case 1039: goto st1039; case 1040: goto st1040; case 1041: goto st1041; - case 1531: goto st1531; case 1042: goto st1042; case 1043: goto st1043; case 1044: goto st1044; @@ -1523,6 +1522,7 @@ _again: case 1051: goto st1051; case 1052: goto st1052; case 1053: goto st1053; + case 1543: goto st1543; case 1054: goto st1054; case 1055: goto st1055; case 1056: goto st1056; @@ -1552,7 +1552,6 @@ _again: case 1080: goto st1080; case 1081: goto st1081; case 1082: goto st1082; - case 1532: goto st1532; case 1083: goto st1083; case 1084: goto st1084; case 1085: goto st1085; @@ -1561,12 +1560,11 @@ _again: case 1088: goto st1088; case 1089: goto st1089; case 1090: goto st1090; - case 1533: goto st1533; case 1091: goto st1091; case 1092: goto st1092; - case 1534: goto st1534; case 1093: goto st1093; case 1094: goto st1094; + case 1544: goto st1544; case 1095: goto st1095; case 1096: goto st1096; case 1097: goto st1097; @@ -1575,11 +1573,12 @@ _again: case 1100: goto st1100; case 1101: goto st1101; case 1102: goto st1102; + case 1545: goto st1545; case 1103: goto st1103; case 1104: goto st1104; + case 1546: goto st1546; case 1105: goto st1105; case 1106: goto st1106; - case 1535: goto st1535; case 1107: goto st1107; case 1108: goto st1108; case 1109: goto st1109; @@ -1592,6 +1591,7 @@ _again: case 1116: goto st1116; case 1117: goto st1117; case 1118: goto st1118; + case 1547: goto st1547; case 1119: goto st1119; case 1120: goto st1120; case 1121: goto st1121; @@ -1602,42 +1602,42 @@ _again: case 1126: goto st1126; case 1127: goto st1127; case 1128: goto st1128; - case 1536: goto st1536; case 1129: goto st1129; case 1130: goto st1130; case 1131: goto st1131; case 1132: goto st1132; case 1133: goto st1133; - case 1537: goto st1537; case 1134: goto st1134; case 1135: goto st1135; case 1136: goto st1136; case 1137: goto st1137; case 1138: goto st1138; - case 1538: goto st1538; case 1139: goto st1139; case 1140: goto st1140; + case 1548: goto st1548; case 1141: goto st1141; case 1142: goto st1142; case 1143: goto st1143; - case 1539: goto st1539; - case 1540: goto st1540; - case 1541: goto st1541; case 1144: goto st1144; case 1145: goto st1145; - case 1542: goto st1542; + case 1549: goto st1549; case 1146: goto st1146; case 1147: goto st1147; case 1148: goto st1148; case 1149: goto st1149; case 1150: goto st1150; + case 1550: goto st1550; case 1151: goto st1151; case 1152: goto st1152; case 1153: goto st1153; case 1154: goto st1154; case 1155: goto st1155; + case 1551: goto st1551; + case 1552: goto st1552; + case 1553: goto st1553; case 1156: goto st1156; case 1157: goto st1157; + case 1554: goto st1554; case 1158: goto st1158; case 1159: goto st1159; case 1160: goto st1160; @@ -1653,38 +1653,38 @@ _again: case 1170: goto st1170; case 1171: goto st1171; case 1172: goto st1172; - case 1543: goto st1543; - case 1544: goto st1544; - case 1545: goto st1545; case 1173: goto st1173; case 1174: goto st1174; case 1175: goto st1175; - case 1546: goto st1546; - case 1547: goto st1547; case 1176: goto st1176; case 1177: goto st1177; case 1178: goto st1178; case 1179: goto st1179; - case 1548: goto st1548; - case 1549: goto st1549; case 1180: goto st1180; case 1181: goto st1181; case 1182: goto st1182; case 1183: goto st1183; - case 1550: goto st1550; - case 1551: goto st1551; case 1184: goto st1184; + case 1555: goto st1555; + case 1556: goto st1556; + case 1557: goto st1557; case 1185: goto st1185; case 1186: goto st1186; case 1187: goto st1187; + case 1558: goto st1558; + case 1559: goto st1559; case 1188: goto st1188; case 1189: goto st1189; case 1190: goto st1190; case 1191: goto st1191; + case 1560: goto st1560; + case 1561: goto st1561; case 1192: goto st1192; case 1193: goto st1193; case 1194: goto st1194; case 1195: goto st1195; + case 1562: goto st1562; + case 1563: goto st1563; case 1196: goto st1196; case 1197: goto st1197; case 1198: goto st1198; @@ -1698,7 +1698,6 @@ _again: case 1206: goto st1206; case 1207: goto st1207; case 1208: goto st1208; - case 1552: goto st1552; case 1209: goto st1209; case 1210: goto st1210; case 1211: goto st1211; @@ -1711,10 +1710,10 @@ _again: case 1218: goto st1218; case 1219: goto st1219; case 1220: goto st1220; + case 1564: goto st1564; case 1221: goto st1221; case 1222: goto st1222; case 1223: goto st1223; - case 1553: goto st1553; case 1224: goto st1224; case 1225: goto st1225; case 1226: goto st1226; @@ -1727,8 +1726,8 @@ _again: case 1233: goto st1233; case 1234: goto st1234; case 1235: goto st1235; + case 1565: goto st1565; case 1236: goto st1236; - case 1554: goto st1554; case 1237: goto st1237; case 1238: goto st1238; case 1239: goto st1239; @@ -1740,12 +1739,10 @@ _again: case 1245: goto st1245; case 1246: goto st1246; case 1247: goto st1247; - case 1555: goto st1555; - case 1556: goto st1556; case 1248: goto st1248; + case 1566: goto st1566; case 1249: goto st1249; case 1250: goto st1250; - case 1557: goto st1557; case 1251: goto st1251; case 1252: goto st1252; case 1253: goto st1253; @@ -1755,12 +1752,12 @@ _again: case 1257: goto st1257; case 1258: goto st1258; case 1259: goto st1259; + case 1567: goto st1567; + case 1568: goto st1568; case 1260: goto st1260; - case 1558: goto st1558; - case 1559: goto st1559; - case 1560: goto st1560; case 1261: goto st1261; case 1262: goto st1262; + case 1569: goto st1569; case 1263: goto st1263; case 1264: goto st1264; case 1265: goto st1265; @@ -1770,10 +1767,10 @@ _again: case 1269: goto st1269; case 1270: goto st1270; case 1271: goto st1271; - case 1561: goto st1561; - case 1562: goto st1562; - case 1563: goto st1563; case 1272: goto st1272; + case 1570: goto st1570; + case 1571: goto st1571; + case 1572: goto st1572; case 1273: goto st1273; case 1274: goto st1274; case 1275: goto st1275; @@ -1785,18 +1782,14 @@ _again: case 1281: goto st1281; case 1282: goto st1282; case 1283: goto st1283; - case 1564: goto st1564; + case 1573: goto st1573; + case 1574: goto st1574; + case 1575: goto st1575; case 1284: goto st1284; case 1285: goto st1285; case 1286: goto st1286; - case 1565: goto st1565; - case 1566: goto st1566; case 1287: goto st1287; - case 1567: goto st1567; - case 1568: goto st1568; case 1288: goto st1288; - case 1569: goto st1569; - case 1570: goto st1570; case 1289: goto st1289; case 1290: goto st1290; case 1291: goto st1291; @@ -1804,11 +1797,18 @@ _again: case 1293: goto st1293; case 1294: goto st1294; case 1295: goto st1295; + case 1576: goto st1576; case 1296: goto st1296; case 1297: goto st1297; case 1298: goto st1298; + case 1577: goto st1577; + case 1578: goto st1578; case 1299: goto st1299; + case 1579: goto st1579; + case 1580: goto st1580; case 1300: goto st1300; + case 1581: goto st1581; + case 1582: goto st1582; case 1301: goto st1301; case 1302: goto st1302; case 1303: goto st1303; @@ -1839,7 +1839,6 @@ _again: case 1328: goto st1328; case 1329: goto st1329; case 1330: goto st1330; - case 1571: goto st1571; case 1331: goto st1331; case 1332: goto st1332; case 1333: goto st1333; @@ -1851,8 +1850,8 @@ _again: case 1339: goto st1339; case 1340: goto st1340; case 1341: goto st1341; - case 1572: goto st1572; case 1342: goto st1342; + case 1583: goto st1583; case 1343: goto st1343; case 1344: goto st1344; case 1345: goto st1345; @@ -1860,13 +1859,12 @@ _again: case 1347: goto st1347; case 1348: goto st1348; case 1349: goto st1349; - case 1573: goto st1573; case 1350: goto st1350; case 1351: goto st1351; case 1352: goto st1352; case 1353: goto st1353; + case 1584: goto st1584; case 1354: goto st1354; - case 1574: goto st1574; case 1355: goto st1355; case 1356: goto st1356; case 1357: goto st1357; @@ -1874,18 +1872,19 @@ _again: case 1359: goto st1359; case 1360: goto st1360; case 1361: goto st1361; + case 1585: goto st1585; case 1362: goto st1362; case 1363: goto st1363; case 1364: goto st1364; case 1365: goto st1365; case 1366: goto st1366; + case 1586: goto st1586; case 1367: goto st1367; case 1368: goto st1368; case 1369: goto st1369; case 1370: goto st1370; case 1371: goto st1371; case 1372: goto st1372; - case 1575: goto st1575; case 1373: goto st1373; case 1374: goto st1374; case 1375: goto st1375; @@ -1898,6 +1897,7 @@ _again: case 1382: goto st1382; case 1383: goto st1383; case 1384: goto st1384; + case 1587: goto st1587; case 1385: goto st1385; case 1386: goto st1386; case 1387: goto st1387; @@ -1905,7 +1905,6 @@ _again: case 1389: goto st1389; case 1390: goto st1390; case 1391: goto st1391; - case 1576: goto st1576; case 1392: goto st1392; case 1393: goto st1393; case 1394: goto st1394; @@ -1918,12 +1917,10 @@ _again: case 1401: goto st1401; case 1402: goto st1402; case 1403: goto st1403; + case 1588: goto st1588; case 1404: goto st1404; case 1405: goto st1405; case 1406: goto st1406; - case 1577: goto st1577; - case 1578: goto st1578; - case 1579: goto st1579; case 1407: goto st1407; case 1408: goto st1408; case 1409: goto st1409; @@ -1932,11 +1929,13 @@ _again: case 1412: goto st1412; case 1413: goto st1413; case 1414: goto st1414; - case 1580: goto st1580; case 1415: goto st1415; case 1416: goto st1416; case 1417: goto st1417; case 1418: goto st1418; + case 1589: goto st1589; + case 1590: goto st1590; + case 1591: goto st1591; case 1419: goto st1419; case 1420: goto st1420; case 1421: goto st1421; @@ -1944,22 +1943,22 @@ _again: case 1423: goto st1423; case 1424: goto st1424; case 1425: goto st1425; - case 1581: goto st1581; - case 1582: goto st1582; - case 1583: goto st1583; case 1426: goto st1426; + case 1592: goto st1592; case 1427: goto st1427; case 1428: goto st1428; case 1429: goto st1429; case 1430: goto st1430; case 1431: goto st1431; case 1432: goto st1432; - case 1584: goto st1584; case 1433: goto st1433; case 1434: goto st1434; case 1435: goto st1435; case 1436: goto st1436; case 1437: goto st1437; + case 1593: goto st1593; + case 1594: goto st1594; + case 1595: goto st1595; case 1438: goto st1438; case 1439: goto st1439; case 1440: goto st1440; @@ -1967,8 +1966,8 @@ _again: case 1442: goto st1442; case 1443: goto st1443; case 1444: goto st1444; + case 1596: goto st1596; case 1445: goto st1445; - case 1585: goto st1585; case 1446: goto st1446; case 1447: goto st1447; case 1448: goto st1448; @@ -1976,51 +1975,64 @@ _again: case 1450: goto st1450; case 1451: goto st1451; case 1452: goto st1452; - case 1586: goto st1586; case 1453: goto st1453; case 1454: goto st1454; case 1455: goto st1455; case 1456: goto st1456; case 1457: goto st1457; + case 1597: goto st1597; case 1458: goto st1458; - case 1587: goto st1587; case 1459: goto st1459; case 1460: goto st1460; case 1461: goto st1461; case 1462: goto st1462; case 1463: goto st1463; case 1464: goto st1464; - case 1588: goto st1588; + case 1598: goto st1598; case 1465: goto st1465; case 1466: goto st1466; case 1467: goto st1467; case 1468: goto st1468; case 1469: goto st1469; case 1470: goto st1470; + case 1599: goto st1599; case 1471: goto st1471; case 1472: goto st1472; - case 1589: goto st1589; case 1473: goto st1473; case 1474: goto st1474; case 1475: goto st1475; case 1476: goto st1476; + case 1600: goto st1600; case 1477: goto st1477; case 1478: goto st1478; case 1479: goto st1479; - case 1590: goto st1590; case 1480: goto st1480; case 1481: goto st1481; case 1482: goto st1482; case 1483: goto st1483; case 1484: goto st1484; + case 1601: goto st1601; case 1485: goto st1485; case 1486: goto st1486; case 1487: goto st1487; case 1488: goto st1488; - case 1591: goto st1591; case 1489: goto st1489; case 1490: goto st1490; case 1491: goto st1491; + case 1602: goto st1602; + case 1492: goto st1492; + case 1493: goto st1493; + case 1494: goto st1494; + case 1495: goto st1495; + case 1496: goto st1496; + case 1497: goto st1497; + case 1498: goto st1498; + case 1499: goto st1499; + case 1500: goto st1500; + case 1603: goto st1603; + case 1501: goto st1501; + case 1502: goto st1502; + case 1503: goto st1503; default: break; } @@ -2033,8 +2045,8 @@ tr23: { s->line_counter++; } - goto st1492; -tr89: + goto st1504; +tr90: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2042,7 +2054,7 @@ tr89: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -2055,23 +2067,23 @@ tr89: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1504; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1492; goto _out;} + p--; {p++; cs = 1504; goto _out;} } } { s->line_counter++; } - goto st1492; -tr95: + goto st1504; +tr96: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -2084,19 +2096,19 @@ tr95: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1504; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1492; goto _out;} + p--; {p++; cs = 1504; goto _out;} } } { s->line_counter++; } - goto st1492; -tr98: + goto st1504; +tr99: { s->buffer[s->buffer_length++] = 0; @@ -2106,14 +2118,14 @@ tr98: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1504; goto _out;} } } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -2126,19 +2138,19 @@ tr98: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1504; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1492; goto _out;} + p--; {p++; cs = 1504; goto _out;} } } { s->line_counter++; } - goto st1492; -tr797: + goto st1504; +tr798: { s->buffer[s->buffer_length++] = 0; @@ -2148,15 +2160,15 @@ tr797: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1504; goto _out;} } } } { s->line_counter++; } - goto st1492; -tr891: + goto st1504; +tr892: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2170,14 +2182,14 @@ tr891: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1504; goto _out;} } } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -2190,19 +2202,19 @@ tr891: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1504; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1492; goto _out;} + p--; {p++; cs = 1504; goto _out;} } } { s->line_counter++; } - goto st1492; -tr1009: + goto st1504; +tr1021: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2210,7 +2222,7 @@ tr1009: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -2223,12 +2235,12 @@ tr1009: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1504; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1492; goto _out;} + p--; {p++; cs = 1504; goto _out;} } } { @@ -2243,16 +2255,16 @@ tr1009: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1504; goto _out;} } } } - goto st1492; -tr1013: + goto st1504; +tr1025: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -2265,12 +2277,12 @@ tr1013: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1504; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1492; goto _out;} + p--; {p++; cs = 1504; goto _out;} } } { @@ -2285,12 +2297,12 @@ tr1013: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1492; goto _out;} + {p++; cs = 1504; goto _out;} } } } - goto st1492; -tr4196: + goto st1504; +tr4225: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2298,8 +2310,8 @@ tr4196: { s->line_counter++; } - goto st1492; -tr4262: + goto st1504; +tr4291: { NOERR; } @@ -2310,11 +2322,11 @@ tr4262: { s->line_counter++; } - goto st1492; -st1492: + goto st1504; +st1504: if ( ++p == pe ) - goto _test_eof1492; -case 1492: + goto _test_eof1504; +case 1504: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -2328,926 +2340,926 @@ case 1492: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4191; - case 32: goto tr4191; + case 9: goto tr4220; + case 32: goto tr4220; case 36: goto st199; - case 40: goto tr4193; - case 41: goto tr4194; - case 42: goto tr4195; - case 92: goto tr4195; - case 95: goto tr4195; - case 1802: goto tr4196; - case 1851: goto tr4197; - case 2058: goto tr4198; - case 2107: goto tr4199; + case 40: goto tr4222; + case 41: goto tr4223; + case 42: goto tr4224; + case 92: goto tr4224; + case 95: goto tr4224; + case 1802: goto tr4225; + case 1851: goto tr4226; + case 2058: goto tr4227; + case 2107: goto tr4228; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4195; + goto tr4224; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4195; + goto tr4224; } else - goto tr4195; - goto tr4190; + goto tr4224; + goto tr4219; tr0: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; tr27: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } goto st0; tr39: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } goto st0; tr63: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr77: +tr78: { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr85: +tr86: { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr91: +tr92: { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr120: +tr121: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr148: +tr149: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr154: +tr155: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr685: +tr686: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr687: +tr688: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr798: +tr799: { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr809: +tr810: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr823: +tr824: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr851: +tr852: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr866: +tr867: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr904: +tr905: { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr914: +tr915: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr920: +tr921: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr933: +tr934: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr947: +tr948: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1039: +tr1051: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1054: +tr1066: { WARN(ZS_BAD_DNAME_CHAR); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1067: +tr1079: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_DNAME_CHAR); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1075: +tr1087: { WARN(ZS_BAD_TEXT_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_TEXT); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1083: +tr1095: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_TEXT_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_TEXT); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1099: +tr1111: { WARN(ZS_BAD_TEXT); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1108: +tr1120: { ERR(ZS_BAD_TTL); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1114: +tr1126: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { ERR(ZS_BAD_TTL); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1116: +tr1128: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } { ERR(ZS_BAD_TTL); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1128: +tr1140: { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } { ERR(ZS_BAD_TTL); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1137: +tr1149: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { ERR(ZS_BAD_TTL); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1152: +tr1164: { ERR(ZS_BAD_ORIGIN); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1164: +tr1176: { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } { ERR(ZS_BAD_ORIGIN); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1180: +tr1192: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { ERR(ZS_BAD_ORIGIN); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1194: +tr1206: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1195: +tr1207: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1202: +tr1214: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1212: +tr1224: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1229: +tr1241: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1246: +tr1258: { WARN(ZS_BAD_BASE64_CHAR); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1262: +tr1274: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1474: +tr1491: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr1493: +tr1510: { WARN(ZS_BAD_BITMAP); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2105: +tr2134: { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2111: +tr2140: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2119: +tr2148: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2181: +tr2210: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2220: +tr2249: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2248: +tr2277: { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2344: +tr2373: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2388: +tr2417: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2479: +tr2508: { WARN(ZS_BAD_ALGORITHM); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2601: +tr2630: { WARN(ZS_BAD_CERT_TYPE); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2654: +tr2683: { WARN(ZS_BAD_DSYNC_SCHEME); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2665: +tr2694: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2688: +tr2717: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2707: +tr2736: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2873: +tr2902: { s->long_string = false; } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr2896: +tr2925: { WARN(ZS_BAD_LOC_DATA); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr3299: +tr3328: { WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr3314: +tr3343: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr3359: +tr3388: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr3430: +tr3459: { WARN(ZS_BAD_GATEWAY); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr3445: +tr3474: { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr3459: +tr3488: { WARN(ZS_BAD_GATEWAY); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr3482: +tr3511: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr3506: +tr3535: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr3513: +tr3542: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr3663: +tr3692: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr3820: +tr3849: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr4059: +tr4088: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_CHAR_COLON); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr4065: +tr4094: { WARN(ZS_BAD_CHAR_COLON); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr4071: +tr4100: { WARN(ZS_BAD_CHAR_DASH); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr4190: +tr4219: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr4212: +tr4241: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr4236: +tr4265: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr4256: +tr4285: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; -tr4280: +tr4309: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_RDATA); - p--; {goto st325;} + p--; {goto st329;} } { WARN(ZS_BAD_REST); - p--; {goto st325;} + p--; {goto st329;} } goto st0; st0: @@ -3257,7 +3269,7 @@ tr2: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -3266,16 +3278,16 @@ tr3: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st1; -tr4191: +tr4220: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -3283,17 +3295,17 @@ tr4191: s->buffer_length = 0; } goto st1; -tr4193: +tr4222: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -3302,17 +3314,17 @@ tr4193: s->buffer_length = 0; } goto st1; -tr4194: +tr4223: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -3321,18 +3333,18 @@ tr4194: s->buffer_length = 0; } goto st1; -tr4266: +tr4295: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -3340,18 +3352,18 @@ tr4266: s->buffer_length = 0; } goto st1; -tr4267: +tr4296: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -3359,14 +3371,14 @@ tr4267: s->buffer_length = 0; } goto st1; -tr4257: +tr4286: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -3374,20 +3386,20 @@ tr4257: s->buffer_length = 0; } goto st1; -tr4259: +tr4288: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -3396,20 +3408,20 @@ tr4259: s->buffer_length = 0; } goto st1; -tr4260: +tr4289: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -3498,7 +3510,7 @@ tr4: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st2; @@ -3514,7 +3526,7 @@ tr31: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st2; @@ -3559,7 +3571,7 @@ tr41: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -3568,7 +3580,7 @@ tr42: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -3584,7 +3596,7 @@ tr28: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st3; @@ -3594,13 +3606,13 @@ tr29: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -3611,13 +3623,13 @@ tr30: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -3628,14 +3640,14 @@ tr37: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } goto st3; -tr850: +tr851: { s->buffer[s->buffer_length++] = 0; @@ -3653,13 +3665,13 @@ tr850: s->line_counter++; } goto st3; -tr843: +tr844: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -3667,17 +3679,17 @@ tr843: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st3; -tr844: +tr845: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -3685,24 +3697,24 @@ tr844: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st3; -tr845: +tr846: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -3710,24 +3722,24 @@ tr845: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st3; -tr847: +tr848: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -3735,7 +3747,7 @@ tr847: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -3816,7 +3828,7 @@ tr43: s->r_class = s->default_class; } goto st4; -tr750: +tr751: { s->r_ttl = s->default_ttl; } @@ -3848,37 +3860,39 @@ case 4: case 41: goto tr66; case 65: goto st283; case 70: goto st286; - case 80: goto st290; + case 76: goto st290; + case 80: goto st294; case 97: goto st283; case 102: goto st286; - case 112: goto st290; - case 3082: goto tr70; - case 3131: goto tr71; - case 3338: goto tr72; - case 3387: goto tr72; - case 3594: goto tr73; - case 3643: goto tr74; + case 108: goto st290; + case 112: goto st294; + case 3082: goto tr71; + case 3131: goto tr72; + case 3338: goto tr73; + case 3387: goto tr73; + case 3594: goto tr74; + case 3643: goto tr75; } goto tr63; -tr78: +tr79: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr79: +tr80: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr81: +tr82: { s->line_counter++; } @@ -3897,7 +3911,7 @@ tr65: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -3910,12 +3924,12 @@ tr66: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr70: +tr71: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -3924,7 +3938,7 @@ tr70: s->line_counter++; } goto st5; -tr102: +tr103: { s->buffer[s->buffer_length++] = 0; @@ -3942,13 +3956,13 @@ tr102: s->line_counter++; } goto st5; -tr166: +tr167: { s->r_type = KNOT_RRTYPE_CAA; } { rdata_tail = s->r_data; } goto st5; -tr167: +tr168: { s->r_type = KNOT_RRTYPE_CAA; } { rdata_tail = s->r_data; @@ -3956,12 +3970,12 @@ tr167: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr168: +tr169: { s->r_type = KNOT_RRTYPE_CAA; } { rdata_tail = s->r_data; @@ -3969,12 +3983,12 @@ tr168: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr169: +tr170: { s->r_type = KNOT_RRTYPE_CAA; } { rdata_tail = s->r_data; @@ -3983,13 +3997,13 @@ tr169: s->line_counter++; } goto st5; -tr188: +tr189: { s->r_type = KNOT_RRTYPE_CDNSKEY; } { rdata_tail = s->r_data; } goto st5; -tr189: +tr190: { s->r_type = KNOT_RRTYPE_CDNSKEY; } { rdata_tail = s->r_data; @@ -3997,12 +4011,12 @@ tr189: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr190: +tr191: { s->r_type = KNOT_RRTYPE_CDNSKEY; } { rdata_tail = s->r_data; @@ -4010,12 +4024,12 @@ tr190: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr191: +tr192: { s->r_type = KNOT_RRTYPE_CDNSKEY; } { rdata_tail = s->r_data; @@ -4024,13 +4038,13 @@ tr191: s->line_counter++; } goto st5; -tr196: +tr197: { s->r_type = KNOT_RRTYPE_CDS; } { rdata_tail = s->r_data; } goto st5; -tr197: +tr198: { s->r_type = KNOT_RRTYPE_CDS; } { rdata_tail = s->r_data; @@ -4038,12 +4052,12 @@ tr197: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr198: +tr199: { s->r_type = KNOT_RRTYPE_CDS; } { rdata_tail = s->r_data; @@ -4051,12 +4065,12 @@ tr198: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr199: +tr200: { s->r_type = KNOT_RRTYPE_CDS; } { rdata_tail = s->r_data; @@ -4065,13 +4079,13 @@ tr199: s->line_counter++; } goto st5; -tr206: +tr207: { s->r_type = KNOT_RRTYPE_CERT; } { rdata_tail = s->r_data; } goto st5; -tr207: +tr208: { s->r_type = KNOT_RRTYPE_CERT; } { rdata_tail = s->r_data; @@ -4079,12 +4093,12 @@ tr207: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr208: +tr209: { s->r_type = KNOT_RRTYPE_CERT; } { rdata_tail = s->r_data; @@ -4092,12 +4106,12 @@ tr208: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr209: +tr210: { s->r_type = KNOT_RRTYPE_CERT; } { rdata_tail = s->r_data; @@ -4106,13 +4120,13 @@ tr209: s->line_counter++; } goto st5; -tr217: +tr218: { s->r_type = KNOT_RRTYPE_CNAME; } { rdata_tail = s->r_data; } goto st5; -tr218: +tr219: { s->r_type = KNOT_RRTYPE_CNAME; } { rdata_tail = s->r_data; @@ -4120,12 +4134,12 @@ tr218: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr219: +tr220: { s->r_type = KNOT_RRTYPE_CNAME; } { rdata_tail = s->r_data; @@ -4133,12 +4147,12 @@ tr219: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr220: +tr221: { s->r_type = KNOT_RRTYPE_CNAME; } { rdata_tail = s->r_data; @@ -4147,13 +4161,13 @@ tr220: s->line_counter++; } goto st5; -tr228: +tr229: { s->r_type = KNOT_RRTYPE_CSYNC; } { rdata_tail = s->r_data; } goto st5; -tr229: +tr230: { s->r_type = KNOT_RRTYPE_CSYNC; } { rdata_tail = s->r_data; @@ -4161,12 +4175,12 @@ tr229: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr230: +tr231: { s->r_type = KNOT_RRTYPE_CSYNC; } { rdata_tail = s->r_data; @@ -4174,12 +4188,12 @@ tr230: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr231: +tr232: { s->r_type = KNOT_RRTYPE_CSYNC; } { rdata_tail = s->r_data; @@ -4188,13 +4202,13 @@ tr231: s->line_counter++; } goto st5; -tr242: +tr243: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; } goto st5; -tr243: +tr244: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -4202,12 +4216,12 @@ tr243: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr244: +tr245: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -4215,12 +4229,12 @@ tr244: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr245: +tr246: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -4229,13 +4243,13 @@ tr245: s->line_counter++; } goto st5; -tr254: +tr255: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; } goto st5; -tr255: +tr256: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -4243,12 +4257,12 @@ tr255: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr256: +tr257: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -4256,12 +4270,12 @@ tr256: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr257: +tr258: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -4270,13 +4284,13 @@ tr257: s->line_counter++; } goto st5; -tr265: +tr266: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; } goto st5; -tr266: +tr267: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -4284,12 +4298,12 @@ tr266: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr267: +tr268: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -4297,12 +4311,12 @@ tr267: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr268: +tr269: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -4311,13 +4325,13 @@ tr268: s->line_counter++; } goto st5; -tr273: +tr274: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; } goto st5; -tr274: +tr275: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -4325,12 +4339,12 @@ tr274: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr275: +tr276: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -4338,12 +4352,12 @@ tr275: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr277: +tr278: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -4352,13 +4366,13 @@ tr277: s->line_counter++; } goto st5; -tr284: +tr285: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; } goto st5; -tr285: +tr286: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -4366,12 +4380,12 @@ tr285: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr286: +tr287: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -4379,12 +4393,12 @@ tr286: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr287: +tr288: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -4393,13 +4407,13 @@ tr287: s->line_counter++; } goto st5; -tr297: +tr298: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; } goto st5; -tr298: +tr299: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -4407,12 +4421,12 @@ tr298: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr299: +tr300: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -4420,12 +4434,12 @@ tr299: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr300: +tr301: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -4434,13 +4448,13 @@ tr300: s->line_counter++; } goto st5; -tr306: +tr307: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; } goto st5; -tr307: +tr308: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -4448,12 +4462,12 @@ tr307: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr308: +tr309: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -4461,12 +4475,12 @@ tr308: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr309: +tr310: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -4475,13 +4489,13 @@ tr309: s->line_counter++; } goto st5; -tr319: +tr320: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; } goto st5; -tr320: +tr321: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -4489,12 +4503,12 @@ tr320: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr321: +tr322: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -4502,12 +4516,12 @@ tr321: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr322: +tr323: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -4516,13 +4530,13 @@ tr322: s->line_counter++; } goto st5; -tr330: +tr331: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; } goto st5; -tr331: +tr332: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -4530,12 +4544,12 @@ tr331: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr332: +tr333: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -4543,12 +4557,12 @@ tr332: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr333: +tr334: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -4557,13 +4571,13 @@ tr333: s->line_counter++; } goto st5; -tr374: +tr375: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; } goto st5; -tr375: +tr376: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -4571,12 +4585,12 @@ tr375: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr376: +tr377: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -4584,12 +4598,12 @@ tr376: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr377: +tr378: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -4598,13 +4612,13 @@ tr377: s->line_counter++; } goto st5; -tr385: +tr386: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; } goto st5; -tr386: +tr387: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -4612,12 +4626,12 @@ tr386: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr387: +tr388: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -4625,12 +4639,12 @@ tr387: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr388: +tr389: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -4639,13 +4653,13 @@ tr388: s->line_counter++; } goto st5; -tr393: +tr394: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; } goto st5; -tr394: +tr395: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -4653,12 +4667,12 @@ tr394: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr395: +tr396: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -4666,12 +4680,12 @@ tr395: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr396: +tr397: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -4680,13 +4694,13 @@ tr396: s->line_counter++; } goto st5; -tr406: +tr407: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; } goto st5; -tr407: +tr408: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -4694,12 +4708,12 @@ tr407: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr408: +tr409: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -4707,12 +4721,12 @@ tr408: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr409: +tr410: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -4721,13 +4735,13 @@ tr409: s->line_counter++; } goto st5; -tr415: +tr416: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; } goto st5; -tr416: +tr417: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -4735,12 +4749,12 @@ tr416: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr417: +tr418: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -4748,12 +4762,12 @@ tr417: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr418: +tr419: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -4762,13 +4776,13 @@ tr418: s->line_counter++; } goto st5; -tr424: +tr425: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; } goto st5; -tr425: +tr426: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -4776,12 +4790,12 @@ tr425: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr426: +tr427: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -4789,12 +4803,12 @@ tr426: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr427: +tr428: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -4803,13 +4817,13 @@ tr427: s->line_counter++; } goto st5; -tr432: +tr433: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; } goto st5; -tr433: +tr434: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -4817,12 +4831,12 @@ tr433: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr434: +tr435: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -4830,12 +4844,12 @@ tr434: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr435: +tr436: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -4844,13 +4858,13 @@ tr435: s->line_counter++; } goto st5; -tr445: +tr446: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; } goto st5; -tr446: +tr447: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -4858,12 +4872,12 @@ tr446: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr447: +tr448: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -4871,12 +4885,12 @@ tr447: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr448: +tr449: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -4885,13 +4899,13 @@ tr448: s->line_counter++; } goto st5; -tr453: +tr454: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; } goto st5; -tr454: +tr455: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -4899,12 +4913,12 @@ tr454: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr455: +tr456: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -4912,12 +4926,12 @@ tr455: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr456: +tr457: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -4926,13 +4940,13 @@ tr456: s->line_counter++; } goto st5; -tr467: +tr468: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; } goto st5; -tr468: +tr469: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -4940,12 +4954,12 @@ tr468: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr469: +tr470: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -4953,12 +4967,12 @@ tr469: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr470: +tr471: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -4967,13 +4981,13 @@ tr470: s->line_counter++; } goto st5; -tr476: +tr477: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; } goto st5; -tr477: +tr478: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -4981,12 +4995,12 @@ tr477: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr478: +tr479: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -4994,12 +5008,12 @@ tr478: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr479: +tr480: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -5008,13 +5022,13 @@ tr479: s->line_counter++; } goto st5; -tr484: +tr485: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; } goto st5; -tr485: +tr486: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -5022,12 +5036,12 @@ tr485: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr486: +tr487: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -5035,12 +5049,12 @@ tr486: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr488: +tr489: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -5049,13 +5063,13 @@ tr488: s->line_counter++; } goto st5; -tr494: +tr495: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; } goto st5; -tr495: +tr496: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -5063,12 +5077,12 @@ tr495: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr496: +tr497: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -5076,12 +5090,12 @@ tr496: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr498: +tr499: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -5090,13 +5104,13 @@ tr498: s->line_counter++; } goto st5; -tr503: +tr504: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; } goto st5; -tr504: +tr505: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -5104,12 +5118,12 @@ tr504: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr505: +tr506: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -5117,12 +5131,12 @@ tr505: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr507: +tr508: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -5131,13 +5145,13 @@ tr507: s->line_counter++; } goto st5; -tr516: +tr517: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; } goto st5; -tr517: +tr518: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -5145,12 +5159,12 @@ tr517: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr518: +tr519: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -5158,12 +5172,12 @@ tr518: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr519: +tr520: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -5172,13 +5186,13 @@ tr519: s->line_counter++; } goto st5; -tr533: +tr534: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; } goto st5; -tr534: +tr535: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -5186,12 +5200,12 @@ tr534: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr535: +tr536: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -5199,12 +5213,12 @@ tr535: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr536: +tr537: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -5213,13 +5227,13 @@ tr536: s->line_counter++; } goto st5; -tr543: +tr544: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; } goto st5; -tr544: +tr545: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -5227,12 +5241,12 @@ tr544: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr545: +tr546: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -5240,12 +5254,12 @@ tr545: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr546: +tr547: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -5254,13 +5268,13 @@ tr546: s->line_counter++; } goto st5; -tr560: +tr561: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; } goto st5; -tr561: +tr562: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -5268,12 +5282,12 @@ tr561: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr562: +tr563: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -5281,12 +5295,12 @@ tr562: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr563: +tr564: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -5295,13 +5309,13 @@ tr563: s->line_counter++; } goto st5; -tr568: +tr569: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; } goto st5; -tr569: +tr570: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5309,12 +5323,12 @@ tr569: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr570: +tr571: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5322,12 +5336,12 @@ tr570: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr571: +tr572: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5336,13 +5350,13 @@ tr571: s->line_counter++; } goto st5; -tr579: +tr580: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; } goto st5; -tr580: +tr581: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5350,12 +5364,12 @@ tr580: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr581: +tr582: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5363,12 +5377,12 @@ tr581: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr582: +tr583: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5377,13 +5391,13 @@ tr582: s->line_counter++; } goto st5; -tr587: +tr588: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; } goto st5; -tr588: +tr589: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5391,12 +5405,12 @@ tr588: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr589: +tr590: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5404,12 +5418,12 @@ tr589: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr590: +tr591: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5418,13 +5432,13 @@ tr590: s->line_counter++; } goto st5; -tr605: +tr606: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; } goto st5; -tr606: +tr607: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5432,12 +5446,12 @@ tr606: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr607: +tr608: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5445,12 +5459,12 @@ tr607: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr608: +tr609: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5459,13 +5473,13 @@ tr608: s->line_counter++; } goto st5; -tr614: +tr615: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; } goto st5; -tr615: +tr616: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5473,12 +5487,12 @@ tr615: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr616: +tr617: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5486,12 +5500,12 @@ tr616: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr617: +tr618: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5500,13 +5514,13 @@ tr617: s->line_counter++; } goto st5; -tr623: +tr624: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; } goto st5; -tr624: +tr625: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5514,12 +5528,12 @@ tr624: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr625: +tr626: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5527,12 +5541,12 @@ tr625: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr626: +tr627: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5541,13 +5555,13 @@ tr626: s->line_counter++; } goto st5; -tr632: +tr633: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; } goto st5; -tr633: +tr634: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5555,12 +5569,12 @@ tr633: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr634: +tr635: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5568,12 +5582,12 @@ tr634: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr635: +tr636: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5582,13 +5596,13 @@ tr635: s->line_counter++; } goto st5; -tr643: +tr644: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; } goto st5; -tr644: +tr645: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5596,12 +5610,12 @@ tr644: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr645: +tr646: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5609,12 +5623,12 @@ tr645: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr646: +tr647: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5623,13 +5637,13 @@ tr646: s->line_counter++; } goto st5; -tr653: +tr654: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; } goto st5; -tr654: +tr655: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5637,12 +5651,12 @@ tr654: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr655: +tr656: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5650,12 +5664,12 @@ tr655: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr656: +tr657: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5664,13 +5678,13 @@ tr656: s->line_counter++; } goto st5; -tr666: +tr667: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; } goto st5; -tr667: +tr668: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5678,12 +5692,12 @@ tr667: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr668: +tr669: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5691,12 +5705,12 @@ tr668: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr669: +tr670: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5705,13 +5719,13 @@ tr669: s->line_counter++; } goto st5; -tr675: +tr676: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; } goto st5; -tr676: +tr677: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5719,12 +5733,12 @@ tr676: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr677: +tr678: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5732,12 +5746,12 @@ tr677: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr678: +tr679: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5746,26 +5760,26 @@ tr678: s->line_counter++; } goto st5; -tr688: +tr689: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { rdata_tail = s->r_data; } goto st5; -tr689: +tr690: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -5774,18 +5788,18 @@ tr689: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr690: +tr691: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -5794,18 +5808,18 @@ tr690: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr692: +tr693: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -5815,13 +5829,13 @@ tr692: s->line_counter++; } goto st5; -tr699: +tr700: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; } goto st5; -tr700: +tr701: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5829,12 +5843,12 @@ tr700: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr701: +tr702: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5842,12 +5856,12 @@ tr701: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr702: +tr703: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5856,13 +5870,13 @@ tr702: s->line_counter++; } goto st5; -tr712: +tr713: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; } goto st5; -tr713: +tr714: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5870,12 +5884,12 @@ tr713: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr714: +tr715: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5883,12 +5897,12 @@ tr714: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr715: +tr716: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5897,13 +5911,13 @@ tr715: s->line_counter++; } goto st5; -tr725: +tr726: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; } goto st5; -tr726: +tr727: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5911,12 +5925,12 @@ tr726: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr727: +tr728: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5924,12 +5938,12 @@ tr727: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr728: +tr729: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5938,13 +5952,13 @@ tr728: s->line_counter++; } goto st5; -tr976: +tr977: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; } goto st5; -tr977: +tr978: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5952,12 +5966,12 @@ tr977: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr978: +tr979: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5965,12 +5979,12 @@ tr978: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr979: +tr980: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5979,13 +5993,13 @@ tr979: s->line_counter++; } goto st5; -tr987: +tr988: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; } goto st5; -tr988: +tr989: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -5993,12 +6007,12 @@ tr988: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr989: +tr990: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -6006,12 +6020,12 @@ tr989: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr990: +tr991: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -6020,13 +6034,54 @@ tr990: s->line_counter++; } goto st5; -tr996: +tr999: + { s->r_type = KNOT_RRTYPE_ALIAS; } + { + rdata_tail = s->r_data; + } + goto st5; +tr1000: + { s->r_type = KNOT_RRTYPE_ALIAS; } + { + rdata_tail = s->r_data; + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st329;} + } + s->multiline = true; + } + goto st5; +tr1001: + { s->r_type = KNOT_RRTYPE_ALIAS; } + { + rdata_tail = s->r_data; + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st329;} + } + s->multiline = false; + } + goto st5; +tr1002: + { s->r_type = KNOT_RRTYPE_ALIAS; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + goto st5; +tr1008: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; } goto st5; -tr997: +tr1009: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -6034,12 +6089,12 @@ tr997: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st5; -tr998: +tr1010: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -6047,12 +6102,12 @@ tr998: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st5; -tr999: +tr1011: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -6084,26 +6139,26 @@ case 5: switch( _widec ) { case 9: goto st5; case 32: goto st5; - case 40: goto tr78; - case 41: goto tr79; - case 92: goto tr80; - case 3082: goto tr81; - case 3131: goto tr82; - case 3338: goto tr75; - case 3387: goto tr75; - case 3594: goto tr83; - case 3643: goto tr84; + case 40: goto tr79; + case 41: goto tr80; + case 92: goto tr81; + case 3082: goto tr82; + case 3131: goto tr83; + case 3338: goto tr76; + case 3387: goto tr76; + case 3594: goto tr84; + case 3643: goto tr85; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr75; + goto tr76; } else - goto tr75; - goto tr77; -tr72: + goto tr76; + goto tr78; +tr73: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -6112,190 +6167,192 @@ tr72: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr75: +tr76: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr99: +tr100: { if (*wrap == WRAP_NONE) { p--; @@ -6305,96 +6362,97 @@ tr99: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr100: +tr101: { switch (s->r_type) { // Next types must not have empty rdata. @@ -6448,15 +6506,16 @@ tr100: case KNOT_RRTYPE_DSYNC: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st750;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st762;} // Next types can have empty rdata. case KNOT_RRTYPE_APL: default: - {stack[top++] = 6;goto st759;} + {stack[top++] = 6;goto st771;} } } goto st6; -tr171: +tr172: { s->r_type = KNOT_RRTYPE_CAA; } { rdata_tail = s->r_data; @@ -6465,96 +6524,97 @@ tr171: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr193: +tr194: { s->r_type = KNOT_RRTYPE_CDNSKEY; } { rdata_tail = s->r_data; @@ -6563,96 +6623,97 @@ tr193: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr201: +tr202: { s->r_type = KNOT_RRTYPE_CDS; } { rdata_tail = s->r_data; @@ -6661,96 +6722,97 @@ tr201: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr211: +tr212: { s->r_type = KNOT_RRTYPE_CERT; } { rdata_tail = s->r_data; @@ -6759,96 +6821,97 @@ tr211: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr222: +tr223: { s->r_type = KNOT_RRTYPE_CNAME; } { rdata_tail = s->r_data; @@ -6857,96 +6920,97 @@ tr222: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr233: +tr234: { s->r_type = KNOT_RRTYPE_CSYNC; } { rdata_tail = s->r_data; @@ -6955,96 +7019,97 @@ tr233: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr247: +tr248: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -7053,96 +7118,97 @@ tr247: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr259: +tr260: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -7151,96 +7217,97 @@ tr259: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr270: +tr271: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -7249,96 +7316,97 @@ tr270: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr279: +tr280: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -7347,96 +7415,97 @@ tr279: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr289: +tr290: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -7445,96 +7514,97 @@ tr289: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr302: +tr303: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -7543,96 +7613,97 @@ tr302: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr311: +tr312: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -7641,96 +7712,97 @@ tr311: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr324: +tr325: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -7739,96 +7811,97 @@ tr324: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr335: +tr336: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -7837,96 +7910,97 @@ tr335: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr379: +tr380: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -7935,96 +8009,97 @@ tr379: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr390: +tr391: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -8033,96 +8108,97 @@ tr390: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr398: +tr399: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -8131,96 +8207,97 @@ tr398: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr411: +tr412: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -8229,96 +8306,97 @@ tr411: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr420: +tr421: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -8327,96 +8405,97 @@ tr420: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr429: +tr430: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -8425,96 +8504,97 @@ tr429: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr437: +tr438: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -8523,96 +8603,97 @@ tr437: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr450: +tr451: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -8621,96 +8702,97 @@ tr450: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr458: +tr459: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -8719,96 +8801,97 @@ tr458: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr472: +tr473: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -8817,96 +8900,97 @@ tr472: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr481: +tr482: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -8915,96 +8999,97 @@ tr481: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr490: +tr491: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -9013,96 +9098,97 @@ tr490: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr500: +tr501: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -9111,96 +9197,97 @@ tr500: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr509: +tr510: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -9209,96 +9296,97 @@ tr509: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr521: +tr522: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -9307,96 +9395,97 @@ tr521: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr538: +tr539: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -9405,96 +9494,97 @@ tr538: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr548: +tr549: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -9503,96 +9593,97 @@ tr548: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr565: +tr566: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -9601,96 +9692,97 @@ tr565: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr573: +tr574: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -9699,96 +9791,97 @@ tr573: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr584: +tr585: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -9797,96 +9890,97 @@ tr584: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr592: +tr593: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -9895,96 +9989,97 @@ tr592: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr610: +tr611: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -9993,96 +10088,97 @@ tr610: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr619: +tr620: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -10091,96 +10187,97 @@ tr619: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr628: +tr629: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -10189,96 +10286,97 @@ tr628: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr637: +tr638: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -10287,96 +10385,97 @@ tr637: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr648: +tr649: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -10385,96 +10484,97 @@ tr648: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr658: +tr659: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -10483,96 +10583,97 @@ tr658: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr671: +tr672: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -10581,96 +10682,97 @@ tr671: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr680: +tr681: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -10679,102 +10781,103 @@ tr680: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr694: +tr695: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -10784,96 +10887,97 @@ tr694: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr704: +tr705: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -10882,96 +10986,97 @@ tr704: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr717: +tr718: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -10980,96 +11085,97 @@ tr717: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr730: +tr731: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -11078,96 +11184,97 @@ tr730: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr981: +tr982: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -11176,96 +11283,97 @@ tr981: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr992: +tr993: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -11274,96 +11382,196 @@ tr992: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: + {stack[top++] = 6;goto st1471;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 6;goto st1479;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 6;goto st1487;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1493;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st329;} + } + } + goto st6; +tr1004: + { s->r_type = KNOT_RRTYPE_ALIAS; } + { + rdata_tail = s->r_data; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 6;goto st1101;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 6;goto st1105;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 6;goto st1137;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 6;goto st1142;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 6;goto st1147;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 6;goto st1152;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 6;goto st1156;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 6;goto st1158;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 6;goto st1213;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 6;goto st1224;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 6;goto st1241;} + case KNOT_RRTYPE_APL: + {stack[top++] = 6;goto st1252;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 6;goto st1263;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 6;goto st1276;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 6;goto st1286;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 6;goto st1325;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 6;goto st1351;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 6;goto st1354;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 6;goto st1365;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1367;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 6;goto st1396;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 6;goto st1409;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 6;goto st1422;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 6;goto st1428;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 6;goto st1446;} + case KNOT_RRTYPE_L32: + {stack[top++] = 6;goto st1441;} + case KNOT_RRTYPE_EUI48: {stack[top++] = 6;goto st1459;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 6;goto st1465;} + case KNOT_RRTYPE_URI: + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; -tr1001: +tr1013: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -11372,92 +11580,93 @@ tr1001: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1089;} + {stack[top++] = 6;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 6;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1093;} + {stack[top++] = 6;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1125;} + {stack[top++] = 6;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1130;} + {stack[top++] = 6;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1135;} + {stack[top++] = 6;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1140;} + {stack[top++] = 6;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1144;} + {stack[top++] = 6;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1146;} + {stack[top++] = 6;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1201;} + {stack[top++] = 6;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1212;} + {stack[top++] = 6;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1229;} + {stack[top++] = 6;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1240;} + {stack[top++] = 6;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1251;} + {stack[top++] = 6;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1264;} + {stack[top++] = 6;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1274;} + {stack[top++] = 6;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1313;} + {stack[top++] = 6;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1339;} + {stack[top++] = 6;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1342;} + {stack[top++] = 6;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1353;} + {stack[top++] = 6;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1355;} + {stack[top++] = 6;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1384;} + {stack[top++] = 6;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1397;} + {stack[top++] = 6;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1410;} + {stack[top++] = 6;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1416;} + {stack[top++] = 6;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1434;} + {stack[top++] = 6;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1429;} + {stack[top++] = 6;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1447;} + {stack[top++] = 6;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1453;} + {stack[top++] = 6;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1467;} + {stack[top++] = 6;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1475;} + {stack[top++] = 6;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1481;} + {stack[top++] = 6;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st6; @@ -11478,41 +11687,41 @@ case 6: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; - } - goto tr85; -tr93: + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; + } + goto tr86; +tr94: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st7; -tr94: +tr95: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st7; -tr86: +tr87: { s->buffer[0] = 0; s->buffer_length = 0; } goto st7; -tr87: +tr88: { s->buffer[0] = 0; s->buffer_length = 0; @@ -11520,12 +11729,12 @@ tr87: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st7; -tr88: +tr89: { s->buffer[0] = 0; s->buffer_length = 0; @@ -11533,7 +11742,7 @@ tr88: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -11557,20 +11766,20 @@ case 7: switch( _widec ) { case 9: goto st7; case 32: goto st7; - case 40: goto tr93; - case 41: goto tr94; - case 1802: goto tr95; - case 1851: goto tr96; - case 2058: goto tr95; - case 2107: goto tr96; - } - goto tr91; -tr96: + case 40: goto tr94; + case 41: goto tr95; + case 1802: goto tr96; + case 1851: goto tr97; + case 2058: goto tr96; + case 2107: goto tr97; + } + goto tr92; +tr97: { s->buffer_length = 0; } goto st8; -tr90: +tr91: { s->buffer[0] = 0; s->buffer_length = 0; @@ -11579,14 +11788,14 @@ tr90: s->buffer_length = 0; } goto st8; -tr97: +tr98: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st8; -tr892: +tr893: { s->buffer[0] = 0; s->buffer_length = 0; @@ -11600,7 +11809,7 @@ tr892: } } goto st8; -tr896: +tr897: { s->buffer_length = 0; } @@ -11615,9 +11824,9 @@ st8: goto _test_eof8; case 8: if ( (*p) == 10 ) - goto tr98; - goto tr97; -tr80: + goto tr99; + goto tr98; +tr81: { if (pe - p == 1) { *wrap = WRAP_DETECTED; @@ -11629,14 +11838,14 @@ st9: goto _test_eof9; case 9: if ( (*p) == 35 ) - goto tr100; - goto tr99; -tr82: + goto tr101; + goto tr100; +tr83: { s->buffer_length = 0; } goto st10; -tr71: +tr72: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -11645,14 +11854,14 @@ tr71: s->buffer_length = 0; } goto st10; -tr101: +tr102: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st10; -tr170: +tr171: { s->r_type = KNOT_RRTYPE_CAA; } { rdata_tail = s->r_data; @@ -11661,7 +11870,7 @@ tr170: s->buffer_length = 0; } goto st10; -tr192: +tr193: { s->r_type = KNOT_RRTYPE_CDNSKEY; } { rdata_tail = s->r_data; @@ -11670,7 +11879,7 @@ tr192: s->buffer_length = 0; } goto st10; -tr200: +tr201: { s->r_type = KNOT_RRTYPE_CDS; } { rdata_tail = s->r_data; @@ -11679,7 +11888,7 @@ tr200: s->buffer_length = 0; } goto st10; -tr210: +tr211: { s->r_type = KNOT_RRTYPE_CERT; } { rdata_tail = s->r_data; @@ -11688,7 +11897,7 @@ tr210: s->buffer_length = 0; } goto st10; -tr221: +tr222: { s->r_type = KNOT_RRTYPE_CNAME; } { rdata_tail = s->r_data; @@ -11697,7 +11906,7 @@ tr221: s->buffer_length = 0; } goto st10; -tr232: +tr233: { s->r_type = KNOT_RRTYPE_CSYNC; } { rdata_tail = s->r_data; @@ -11706,7 +11915,7 @@ tr232: s->buffer_length = 0; } goto st10; -tr246: +tr247: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -11715,7 +11924,7 @@ tr246: s->buffer_length = 0; } goto st10; -tr258: +tr259: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -11724,7 +11933,7 @@ tr258: s->buffer_length = 0; } goto st10; -tr269: +tr270: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -11733,7 +11942,7 @@ tr269: s->buffer_length = 0; } goto st10; -tr278: +tr279: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -11742,7 +11951,7 @@ tr278: s->buffer_length = 0; } goto st10; -tr288: +tr289: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -11751,7 +11960,7 @@ tr288: s->buffer_length = 0; } goto st10; -tr301: +tr302: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -11760,7 +11969,7 @@ tr301: s->buffer_length = 0; } goto st10; -tr310: +tr311: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -11769,7 +11978,7 @@ tr310: s->buffer_length = 0; } goto st10; -tr323: +tr324: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -11778,7 +11987,7 @@ tr323: s->buffer_length = 0; } goto st10; -tr334: +tr335: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -11787,7 +11996,7 @@ tr334: s->buffer_length = 0; } goto st10; -tr378: +tr379: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -11796,7 +12005,7 @@ tr378: s->buffer_length = 0; } goto st10; -tr389: +tr390: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -11805,7 +12014,7 @@ tr389: s->buffer_length = 0; } goto st10; -tr397: +tr398: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -11814,7 +12023,7 @@ tr397: s->buffer_length = 0; } goto st10; -tr410: +tr411: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -11823,7 +12032,7 @@ tr410: s->buffer_length = 0; } goto st10; -tr419: +tr420: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -11832,7 +12041,7 @@ tr419: s->buffer_length = 0; } goto st10; -tr428: +tr429: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -11841,7 +12050,7 @@ tr428: s->buffer_length = 0; } goto st10; -tr436: +tr437: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -11850,7 +12059,7 @@ tr436: s->buffer_length = 0; } goto st10; -tr449: +tr450: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -11859,7 +12068,7 @@ tr449: s->buffer_length = 0; } goto st10; -tr457: +tr458: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -11868,7 +12077,7 @@ tr457: s->buffer_length = 0; } goto st10; -tr471: +tr472: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -11877,7 +12086,7 @@ tr471: s->buffer_length = 0; } goto st10; -tr480: +tr481: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -11886,7 +12095,7 @@ tr480: s->buffer_length = 0; } goto st10; -tr489: +tr490: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -11895,7 +12104,7 @@ tr489: s->buffer_length = 0; } goto st10; -tr499: +tr500: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -11904,7 +12113,7 @@ tr499: s->buffer_length = 0; } goto st10; -tr508: +tr509: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -11913,7 +12122,7 @@ tr508: s->buffer_length = 0; } goto st10; -tr520: +tr521: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -11922,7 +12131,7 @@ tr520: s->buffer_length = 0; } goto st10; -tr537: +tr538: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -11931,7 +12140,7 @@ tr537: s->buffer_length = 0; } goto st10; -tr547: +tr548: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -11940,7 +12149,7 @@ tr547: s->buffer_length = 0; } goto st10; -tr564: +tr565: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -11949,7 +12158,7 @@ tr564: s->buffer_length = 0; } goto st10; -tr572: +tr573: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -11958,7 +12167,7 @@ tr572: s->buffer_length = 0; } goto st10; -tr583: +tr584: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -11967,7 +12176,7 @@ tr583: s->buffer_length = 0; } goto st10; -tr591: +tr592: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -11976,7 +12185,7 @@ tr591: s->buffer_length = 0; } goto st10; -tr609: +tr610: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -11985,7 +12194,7 @@ tr609: s->buffer_length = 0; } goto st10; -tr618: +tr619: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -11994,7 +12203,7 @@ tr618: s->buffer_length = 0; } goto st10; -tr627: +tr628: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -12003,7 +12212,7 @@ tr627: s->buffer_length = 0; } goto st10; -tr636: +tr637: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -12012,7 +12221,7 @@ tr636: s->buffer_length = 0; } goto st10; -tr647: +tr648: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -12021,7 +12230,7 @@ tr647: s->buffer_length = 0; } goto st10; -tr657: +tr658: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -12030,7 +12239,7 @@ tr657: s->buffer_length = 0; } goto st10; -tr670: +tr671: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -12039,7 +12248,7 @@ tr670: s->buffer_length = 0; } goto st10; -tr679: +tr680: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -12048,13 +12257,13 @@ tr679: s->buffer_length = 0; } goto st10; -tr693: +tr694: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -12064,7 +12273,7 @@ tr693: s->buffer_length = 0; } goto st10; -tr703: +tr704: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -12073,7 +12282,7 @@ tr703: s->buffer_length = 0; } goto st10; -tr716: +tr717: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -12082,7 +12291,7 @@ tr716: s->buffer_length = 0; } goto st10; -tr729: +tr730: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -12091,7 +12300,7 @@ tr729: s->buffer_length = 0; } goto st10; -tr980: +tr981: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -12100,7 +12309,7 @@ tr980: s->buffer_length = 0; } goto st10; -tr991: +tr992: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -12109,7 +12318,16 @@ tr991: s->buffer_length = 0; } goto st10; -tr1000: +tr1003: + { s->r_type = KNOT_RRTYPE_ALIAS; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + goto st10; +tr1012: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -12141,11 +12359,11 @@ case 10: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr102; + goto tr103; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr101; - goto tr77; -tr73: + goto tr102; + goto tr78; +tr74: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -12157,96 +12375,97 @@ tr73: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr83: +tr84: { s->line_counter++; } @@ -12254,96 +12473,97 @@ tr83: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr172: +tr173: { s->r_type = KNOT_RRTYPE_CAA; } { rdata_tail = s->r_data; @@ -12355,96 +12575,97 @@ tr172: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr194: +tr195: { s->r_type = KNOT_RRTYPE_CDNSKEY; } { rdata_tail = s->r_data; @@ -12456,96 +12677,97 @@ tr194: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr202: +tr203: { s->r_type = KNOT_RRTYPE_CDS; } { rdata_tail = s->r_data; @@ -12557,96 +12779,97 @@ tr202: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr212: +tr213: { s->r_type = KNOT_RRTYPE_CERT; } { rdata_tail = s->r_data; @@ -12658,96 +12881,97 @@ tr212: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr223: +tr224: { s->r_type = KNOT_RRTYPE_CNAME; } { rdata_tail = s->r_data; @@ -12759,96 +12983,97 @@ tr223: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr234: +tr235: { s->r_type = KNOT_RRTYPE_CSYNC; } { rdata_tail = s->r_data; @@ -12860,96 +13085,97 @@ tr234: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr248: +tr249: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -12961,96 +13187,97 @@ tr248: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr260: +tr261: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -13062,96 +13289,97 @@ tr260: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr271: +tr272: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -13163,96 +13391,97 @@ tr271: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr280: +tr281: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -13264,96 +13493,97 @@ tr280: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr290: +tr291: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -13365,96 +13595,97 @@ tr290: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr303: +tr304: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -13466,96 +13697,97 @@ tr303: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr312: +tr313: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -13567,96 +13799,97 @@ tr312: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr325: +tr326: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -13668,96 +13901,97 @@ tr325: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr336: +tr337: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -13769,96 +14003,97 @@ tr336: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr380: +tr381: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -13870,96 +14105,97 @@ tr380: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr391: +tr392: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -13971,96 +14207,97 @@ tr391: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr399: +tr400: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -14072,96 +14309,97 @@ tr399: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr412: +tr413: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -14173,96 +14411,97 @@ tr412: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr421: +tr422: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -14274,96 +14513,97 @@ tr421: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr430: +tr431: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -14375,96 +14615,97 @@ tr430: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr438: +tr439: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -14476,96 +14717,97 @@ tr438: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr451: +tr452: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -14577,96 +14819,97 @@ tr451: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr459: +tr460: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -14678,96 +14921,97 @@ tr459: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr473: +tr474: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -14779,96 +15023,97 @@ tr473: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr482: +tr483: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -14880,96 +15125,97 @@ tr482: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr491: +tr492: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -14981,96 +15227,97 @@ tr491: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr501: +tr502: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -15082,96 +15329,97 @@ tr501: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr510: +tr511: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -15183,96 +15431,97 @@ tr510: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr522: +tr523: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -15284,96 +15533,97 @@ tr522: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr539: +tr540: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -15385,96 +15635,97 @@ tr539: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr549: +tr550: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -15486,96 +15737,97 @@ tr549: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr566: +tr567: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -15587,96 +15839,97 @@ tr566: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr574: +tr575: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -15688,96 +15941,97 @@ tr574: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr585: +tr586: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -15789,96 +16043,97 @@ tr585: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr593: +tr594: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -15890,96 +16145,97 @@ tr593: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr611: +tr612: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -15991,96 +16247,97 @@ tr611: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr620: +tr621: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -16092,96 +16349,97 @@ tr620: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr629: +tr630: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -16193,96 +16451,97 @@ tr629: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr638: +tr639: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -16294,96 +16553,97 @@ tr638: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr649: +tr650: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -16395,96 +16655,97 @@ tr649: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr659: +tr660: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -16496,96 +16757,97 @@ tr659: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr672: +tr673: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -16597,96 +16859,97 @@ tr672: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr681: +tr682: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -16698,102 +16961,103 @@ tr681: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr695: +tr696: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -16806,96 +17070,97 @@ tr695: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr705: +tr706: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -16907,96 +17172,97 @@ tr705: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr718: +tr719: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -17008,96 +17274,97 @@ tr718: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr731: +tr732: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -17109,96 +17376,97 @@ tr731: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr982: +tr983: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -17210,96 +17478,97 @@ tr982: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr993: +tr994: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -17311,96 +17580,199 @@ tr993: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: + {stack[top++] = 11;goto st1471;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 11;goto st1479;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 11;goto st1487;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1493;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st329;} + } + } + goto st11; +tr1005: + { s->r_type = KNOT_RRTYPE_ALIAS; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 11;goto st1101;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 11;goto st1105;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 11;goto st1137;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 11;goto st1142;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 11;goto st1147;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 11;goto st1152;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 11;goto st1156;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 11;goto st1158;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 11;goto st1213;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 11;goto st1224;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 11;goto st1241;} + case KNOT_RRTYPE_APL: + {stack[top++] = 11;goto st1252;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 11;goto st1263;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 11;goto st1276;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 11;goto st1286;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 11;goto st1325;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 11;goto st1351;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 11;goto st1354;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 11;goto st1365;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1367;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 11;goto st1396;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 11;goto st1409;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 11;goto st1422;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 11;goto st1428;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 11;goto st1446;} + case KNOT_RRTYPE_L32: + {stack[top++] = 11;goto st1441;} + case KNOT_RRTYPE_EUI48: {stack[top++] = 11;goto st1459;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 11;goto st1465;} + case KNOT_RRTYPE_URI: + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; -tr1002: +tr1014: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -17412,92 +17784,93 @@ tr1002: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1089;} + {stack[top++] = 11;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 11;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1093;} + {stack[top++] = 11;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1125;} + {stack[top++] = 11;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1130;} + {stack[top++] = 11;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1135;} + {stack[top++] = 11;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1140;} + {stack[top++] = 11;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1144;} + {stack[top++] = 11;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1146;} + {stack[top++] = 11;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1201;} + {stack[top++] = 11;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1212;} + {stack[top++] = 11;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1229;} + {stack[top++] = 11;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1240;} + {stack[top++] = 11;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1251;} + {stack[top++] = 11;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1264;} + {stack[top++] = 11;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1274;} + {stack[top++] = 11;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1313;} + {stack[top++] = 11;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1339;} + {stack[top++] = 11;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1342;} + {stack[top++] = 11;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1353;} + {stack[top++] = 11;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1355;} + {stack[top++] = 11;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1384;} + {stack[top++] = 11;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1397;} + {stack[top++] = 11;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1410;} + {stack[top++] = 11;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1416;} + {stack[top++] = 11;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1434;} + {stack[top++] = 11;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1429;} + {stack[top++] = 11;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1447;} + {stack[top++] = 11;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1453;} + {stack[top++] = 11;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1467;} + {stack[top++] = 11;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1475;} + {stack[top++] = 11;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1481;} + {stack[top++] = 11;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st11; @@ -17522,58 +17895,58 @@ case 11: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr103; - case 32: goto tr103; - case 40: goto tr104; - case 41: goto tr105; - case 92: goto tr80; - case 2826: goto tr89; - case 2875: goto tr90; - case 3082: goto tr89; - case 3131: goto tr106; - case 3338: goto tr107; - case 3387: goto tr108; - case 3594: goto tr89; - case 3643: goto tr109; + case 9: goto tr104; + case 32: goto tr104; + case 40: goto tr105; + case 41: goto tr106; + case 92: goto tr81; + case 2826: goto tr90; + case 2875: goto tr91; + case 3082: goto tr90; + case 3131: goto tr107; + case 3338: goto tr108; + case 3387: goto tr109; + case 3594: goto tr90; + case 3643: goto tr110; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr75; + goto tr76; } else - goto tr75; - goto tr85; -tr111: + goto tr76; + goto tr86; +tr112: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st12; -tr112: +tr113: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st12; -tr103: +tr104: { s->buffer[0] = 0; s->buffer_length = 0; } goto st12; -tr104: +tr105: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -17582,11 +17955,11 @@ tr104: s->buffer_length = 0; } goto st12; -tr105: +tr106: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -17618,40 +17991,40 @@ case 12: switch( _widec ) { case 9: goto st12; case 32: goto st12; - case 40: goto tr111; - case 41: goto tr112; - case 92: goto tr80; - case 2826: goto tr95; - case 2875: goto tr96; - case 3082: goto tr95; - case 3131: goto tr113; - case 3338: goto tr114; - case 3387: goto tr115; - case 3594: goto tr95; - case 3643: goto tr116; + case 40: goto tr112; + case 41: goto tr113; + case 92: goto tr81; + case 2826: goto tr96; + case 2875: goto tr97; + case 3082: goto tr96; + case 3131: goto tr114; + case 3338: goto tr115; + case 3387: goto tr116; + case 3594: goto tr96; + case 3643: goto tr117; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr75; + goto tr76; } else - goto tr75; - goto tr85; -tr113: + goto tr76; + goto tr86; +tr114: { s->buffer_length = 0; } goto st13; -tr117: +tr118: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st13; -tr106: +tr107: { s->buffer_length = 0; } @@ -17660,7 +18033,7 @@ tr106: s->buffer_length = 0; } goto st13; -tr177: +tr178: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -17674,7 +18047,7 @@ tr177: s->buffer_length = 0; } goto st13; -tr181: +tr182: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -17684,7 +18057,7 @@ tr181: s->buffer_length = 0; } goto st13; -tr871: +tr872: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -17720,16 +18093,16 @@ case 13: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr98; - case 2058: goto tr118; + case 1802: goto tr99; + case 2058: goto tr119; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr117; + goto tr118; } else if ( _widec >= 1664 ) - goto tr97; - goto tr85; -tr118: + goto tr98; + goto tr86; +tr119: { s->buffer[s->buffer_length++] = 0; @@ -17739,7 +18112,7 @@ tr118: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1493; goto _out;} + {p++; cs = 1505; goto _out;} } } } @@ -17749,7 +18122,7 @@ tr118: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -17762,23 +18135,23 @@ tr118: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1493; goto _out;} + {p++; cs = 1505; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1493; goto _out;} + p--; {p++; cs = 1505; goto _out;} } } - goto st1493; -tr879: + goto st1505; +tr880: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -17791,16 +18164,16 @@ tr879: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1493; goto _out;} + {p++; cs = 1505; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1493; goto _out;} + p--; {p++; cs = 1505; goto _out;} } } - goto st1493; -tr870: + goto st1505; +tr871: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -17815,7 +18188,7 @@ tr870: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -17828,19 +18201,19 @@ tr870: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1493; goto _out;} + {p++; cs = 1505; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1493; goto _out;} + p--; {p++; cs = 1505; goto _out;} } } - goto st1493; -st1493: + goto st1505; +st1505: if ( ++p == pe ) - goto _test_eof1493; -case 1493: + goto _test_eof1505; +case 1505: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -17858,71 +18231,71 @@ case 1493: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4200; - case 32: goto tr4200; - case 36: goto tr4201; - case 40: goto tr4202; - case 41: goto tr4203; - case 42: goto tr4204; - case 58: goto tr75; - case 92: goto tr4205; - case 95: goto tr4204; - case 2826: goto tr4196; - case 2875: goto tr4197; - case 3082: goto tr4206; - case 3131: goto tr4207; - case 3338: goto tr4208; - case 3387: goto tr4209; - case 3594: goto tr4210; - case 3643: goto tr4211; + case 9: goto tr4229; + case 32: goto tr4229; + case 36: goto tr4230; + case 40: goto tr4231; + case 41: goto tr4232; + case 42: goto tr4233; + case 58: goto tr76; + case 92: goto tr4234; + case 95: goto tr4233; + case 2826: goto tr4225; + case 2875: goto tr4226; + case 3082: goto tr4235; + case 3131: goto tr4236; + case 3338: goto tr4237; + case 3387: goto tr4238; + case 3594: goto tr4239; + case 3643: goto tr4240; } if ( _widec < 60 ) { if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 44 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4204; + goto tr4233; } else - goto tr75; + goto tr76; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 90 ) - goto tr4204; + goto tr4233; } else if ( _widec > 96 ) { if ( _widec > 122 ) { if ( 123 <= _widec ) - goto tr75; + goto tr76; } else if ( _widec >= 97 ) - goto tr4204; + goto tr4233; } else - goto tr75; + goto tr76; } else - goto tr75; - goto tr914; -tr121: + goto tr76; + goto tr915; +tr122: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st14; -tr122: +tr123: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st14; -tr4200: +tr4229: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -17930,18 +18303,18 @@ tr4200: s->buffer_length = 0; } goto st14; -tr4202: +tr4231: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -17949,18 +18322,18 @@ tr4202: s->buffer_length = 0; } goto st14; -tr4203: +tr4232: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -17991,68 +18364,68 @@ case 14: switch( _widec ) { case 9: goto st14; case 32: goto st14; - case 40: goto tr121; - case 41: goto tr122; - case 58: goto tr75; - case 65: goto tr124; - case 67: goto tr125; - case 68: goto tr126; - case 69: goto tr127; - case 72: goto tr128; - case 73: goto tr129; - case 75: goto tr130; - case 76: goto tr131; - case 77: goto tr132; - case 78: goto tr133; - case 79: goto tr134; - case 80: goto tr135; - case 82: goto tr136; - case 83: goto tr137; - case 84: goto tr138; - case 85: goto tr139; - case 87: goto tr140; - case 90: goto tr141; - case 92: goto tr80; - case 97: goto tr124; - case 99: goto tr125; - case 100: goto tr126; - case 101: goto tr127; - case 104: goto tr128; - case 105: goto tr129; - case 107: goto tr130; - case 108: goto tr131; - case 109: goto tr132; - case 110: goto tr133; - case 111: goto tr134; - case 112: goto tr135; - case 114: goto tr136; - case 115: goto tr137; - case 116: goto tr138; - case 117: goto tr139; - case 119: goto tr140; - case 122: goto tr141; + case 40: goto tr122; + case 41: goto tr123; + case 58: goto tr76; + case 65: goto tr125; + case 67: goto tr126; + case 68: goto tr127; + case 69: goto tr128; + case 72: goto tr129; + case 73: goto tr130; + case 75: goto tr131; + case 76: goto tr132; + case 77: goto tr133; + case 78: goto tr134; + case 79: goto tr135; + case 80: goto tr136; + case 82: goto tr137; + case 83: goto tr138; + case 84: goto tr139; + case 85: goto tr140; + case 87: goto tr141; + case 90: goto tr142; + case 92: goto tr81; + case 97: goto tr125; + case 99: goto tr126; + case 100: goto tr127; + case 101: goto tr128; + case 104: goto tr129; + case 105: goto tr130; + case 107: goto tr131; + case 108: goto tr132; + case 109: goto tr133; + case 110: goto tr134; + case 111: goto tr135; + case 112: goto tr136; + case 114: goto tr137; + case 115: goto tr138; + case 116: goto tr139; + case 117: goto tr140; + case 119: goto tr141; + case 122: goto tr142; case 2826: goto tr23; case 2875: goto tr24; - case 3082: goto tr142; - case 3131: goto tr143; - case 3338: goto tr144; - case 3387: goto tr145; - case 3594: goto tr146; - case 3643: goto tr147; + case 3082: goto tr143; + case 3131: goto tr144; + case 3338: goto tr145; + case 3387: goto tr146; + case 3594: goto tr147; + case 3643: goto tr148; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 47 ) { if ( _widec > 57 ) { if ( 60 <= _widec ) - goto tr75; + goto tr76; } else if ( _widec >= 48 ) - goto tr123; + goto tr124; } else - goto tr75; - goto tr120; -tr123: + goto tr76; + goto tr121; +tr124: { s->number64 = 0; } @@ -18067,99 +18440,100 @@ tr123: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 15;goto st1089;} + {stack[top++] = 15;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 15;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 15;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 15;goto st1093;} + {stack[top++] = 15;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 15;goto st1125;} + {stack[top++] = 15;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 15;goto st1130;} + {stack[top++] = 15;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 15;goto st1135;} + {stack[top++] = 15;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 15;goto st1140;} + {stack[top++] = 15;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 15;goto st1144;} + {stack[top++] = 15;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 15;goto st1146;} + {stack[top++] = 15;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 15;goto st1201;} + {stack[top++] = 15;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 15;goto st1212;} + {stack[top++] = 15;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 15;goto st1229;} + {stack[top++] = 15;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 15;goto st1240;} + {stack[top++] = 15;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 15;goto st1251;} + {stack[top++] = 15;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 15;goto st1264;} + {stack[top++] = 15;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 15;goto st1274;} + {stack[top++] = 15;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 15;goto st1313;} + {stack[top++] = 15;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 15;goto st1339;} + {stack[top++] = 15;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 15;goto st1342;} + {stack[top++] = 15;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 15;goto st1353;} + {stack[top++] = 15;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 15;goto st1355;} + {stack[top++] = 15;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 15;goto st1384;} + {stack[top++] = 15;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 15;goto st1397;} + {stack[top++] = 15;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 15;goto st1410;} + {stack[top++] = 15;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 15;goto st1416;} + {stack[top++] = 15;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 15;goto st1434;} + {stack[top++] = 15;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 15;goto st1429;} + {stack[top++] = 15;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 15;goto st1447;} + {stack[top++] = 15;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 15;goto st1453;} + {stack[top++] = 15;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 15;goto st1459;} + {stack[top++] = 15;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 15;goto st1467;} + {stack[top++] = 15;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 15;goto st1475;} + {stack[top++] = 15;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 15;goto st1481;} + {stack[top++] = 15;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st15; @@ -18180,10 +18554,10 @@ case 15: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr149; - case 32: goto tr149; - case 40: goto tr150; - case 41: goto tr151; + case 9: goto tr150; + case 32: goto tr150; + case 40: goto tr151; + case 41: goto tr152; case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; @@ -18194,39 +18568,39 @@ case 15: case 109: goto tr34; case 115: goto st213; case 119: goto tr36; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr152; - case 2107: goto tr153; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr153; + case 2107: goto tr154; } if ( 48 <= _widec && _widec <= 57 ) goto tr31; - goto tr148; -tr156: + goto tr149; +tr157: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st16; -tr157: +tr158: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st16; -tr149: +tr150: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -18234,19 +18608,19 @@ tr149: s->buffer_length = 0; } goto st16; -tr150: +tr151: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -18255,19 +18629,19 @@ tr150: s->buffer_length = 0; } goto st16; -tr151: +tr152: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -18295,8 +18669,8 @@ case 16: switch( _widec ) { case 9: goto st16; case 32: goto st16; - case 40: goto tr156; - case 41: goto tr157; + case 40: goto tr157; + case 41: goto tr158; case 65: goto tr43; case 67: goto tr44; case 68: goto tr45; @@ -18333,12 +18707,12 @@ case 16: case 117: goto tr58; case 119: goto tr59; case 122: goto tr60; - case 1802: goto tr95; - case 1851: goto tr96; - case 2058: goto tr158; - case 2107: goto tr159; + case 1802: goto tr96; + case 1851: goto tr97; + case 2058: goto tr159; + case 2107: goto tr160; } - goto tr154; + goto tr155; tr6: { s->r_class = s->default_class; @@ -18352,7 +18726,7 @@ tr44: s->r_class = s->default_class; } goto st17; -tr751: +tr752: { s->r_ttl = s->default_ttl; } @@ -18404,19 +18778,19 @@ case 19: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr166; - case 32: goto tr166; - case 40: goto tr167; - case 41: goto tr168; - case 3082: goto tr169; - case 3131: goto tr170; - case 3338: goto tr171; - case 3387: goto tr171; - case 3594: goto tr172; - case 3643: goto tr173; + case 9: goto tr167; + case 32: goto tr167; + case 40: goto tr168; + case 41: goto tr169; + case 3082: goto tr170; + case 3131: goto tr171; + case 3338: goto tr172; + case 3387: goto tr172; + case 3594: goto tr173; + case 3643: goto tr174; } goto tr63; -tr74: +tr75: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -18428,96 +18802,97 @@ tr74: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr84: +tr85: { s->buffer_length = 0; } @@ -18525,96 +18900,97 @@ tr84: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr173: +tr174: { s->r_type = KNOT_RRTYPE_CAA; } { rdata_tail = s->r_data; @@ -18626,96 +19002,97 @@ tr173: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr195: +tr196: { s->r_type = KNOT_RRTYPE_CDNSKEY; } { rdata_tail = s->r_data; @@ -18727,96 +19104,97 @@ tr195: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr203: +tr204: { s->r_type = KNOT_RRTYPE_CDS; } { rdata_tail = s->r_data; @@ -18828,96 +19206,97 @@ tr203: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr213: +tr214: { s->r_type = KNOT_RRTYPE_CERT; } { rdata_tail = s->r_data; @@ -18929,96 +19308,97 @@ tr213: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr224: +tr225: { s->r_type = KNOT_RRTYPE_CNAME; } { rdata_tail = s->r_data; @@ -19030,96 +19410,97 @@ tr224: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr235: +tr236: { s->r_type = KNOT_RRTYPE_CSYNC; } { rdata_tail = s->r_data; @@ -19131,96 +19512,97 @@ tr235: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr249: +tr250: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -19232,96 +19614,97 @@ tr249: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr261: +tr262: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -19333,96 +19716,97 @@ tr261: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr272: +tr273: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -19434,96 +19818,97 @@ tr272: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr281: +tr282: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -19535,96 +19920,97 @@ tr281: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr291: +tr292: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -19636,96 +20022,97 @@ tr291: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr304: +tr305: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -19737,96 +20124,97 @@ tr304: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr313: +tr314: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -19838,96 +20226,97 @@ tr313: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr326: +tr327: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -19939,96 +20328,97 @@ tr326: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr337: +tr338: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -20040,96 +20430,97 @@ tr337: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr381: +tr382: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -20141,96 +20532,97 @@ tr381: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr392: +tr393: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -20242,96 +20634,97 @@ tr392: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr400: +tr401: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -20343,96 +20736,97 @@ tr400: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr413: +tr414: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -20444,96 +20838,97 @@ tr413: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr422: +tr423: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -20545,96 +20940,97 @@ tr422: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr431: +tr432: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -20646,96 +21042,97 @@ tr431: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr439: +tr440: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -20747,96 +21144,97 @@ tr439: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr452: +tr453: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -20848,96 +21246,97 @@ tr452: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr460: +tr461: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -20949,96 +21348,97 @@ tr460: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr474: +tr475: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -21050,96 +21450,97 @@ tr474: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr483: +tr484: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -21151,96 +21552,97 @@ tr483: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr492: +tr493: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -21252,96 +21654,97 @@ tr492: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr502: +tr503: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -21353,96 +21756,97 @@ tr502: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr511: +tr512: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -21454,96 +21858,97 @@ tr511: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr523: +tr524: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -21555,96 +21960,97 @@ tr523: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr540: +tr541: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -21656,96 +22062,97 @@ tr540: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr550: +tr551: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -21757,96 +22164,97 @@ tr550: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr567: +tr568: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -21858,96 +22266,97 @@ tr567: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr575: +tr576: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -21959,96 +22368,97 @@ tr575: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr586: +tr587: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -22060,96 +22470,97 @@ tr586: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr594: +tr595: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -22161,96 +22572,97 @@ tr594: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr612: +tr613: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -22262,96 +22674,97 @@ tr612: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr621: +tr622: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -22363,96 +22776,97 @@ tr621: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr630: +tr631: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -22464,96 +22878,97 @@ tr630: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr639: +tr640: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -22565,96 +22980,97 @@ tr639: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr650: +tr651: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -22666,96 +23082,97 @@ tr650: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr660: +tr661: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -22767,96 +23184,97 @@ tr660: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr673: +tr674: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -22868,96 +23286,97 @@ tr673: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr682: +tr683: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -22969,102 +23388,103 @@ tr682: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr696: +tr697: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -23077,96 +23497,97 @@ tr696: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr706: +tr707: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -23178,96 +23599,97 @@ tr706: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr719: +tr720: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -23279,96 +23701,97 @@ tr719: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr732: +tr733: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -23380,96 +23803,97 @@ tr732: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr983: +tr984: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -23481,96 +23905,97 @@ tr983: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr994: +tr995: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -23582,96 +24007,199 @@ tr994: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1471;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1479;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1487;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1493;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st329;} + } + } + goto st20; +tr1006: + { s->r_type = KNOT_RRTYPE_ALIAS; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st1101;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st1105;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st1137;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st1142;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st1147;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st1152;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st1156;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st1158;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1213;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1224;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1241;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1252;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1263;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1276;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1286;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1325;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1351;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1354;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1365;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1367;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1396;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1409;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1422;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1428;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1446;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1441;} + case KNOT_RRTYPE_EUI48: {stack[top++] = 20;goto st1459;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1465;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; -tr1003: +tr1015: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -23683,92 +24211,93 @@ tr1003: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1089;} + {stack[top++] = 20;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 20;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1093;} + {stack[top++] = 20;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1125;} + {stack[top++] = 20;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1130;} + {stack[top++] = 20;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1135;} + {stack[top++] = 20;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1140;} + {stack[top++] = 20;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1144;} + {stack[top++] = 20;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1146;} + {stack[top++] = 20;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1201;} + {stack[top++] = 20;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1212;} + {stack[top++] = 20;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1229;} + {stack[top++] = 20;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1240;} + {stack[top++] = 20;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1251;} + {stack[top++] = 20;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1264;} + {stack[top++] = 20;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1274;} + {stack[top++] = 20;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1313;} + {stack[top++] = 20;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1339;} + {stack[top++] = 20;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1342;} + {stack[top++] = 20;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1353;} + {stack[top++] = 20;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1355;} + {stack[top++] = 20;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1384;} + {stack[top++] = 20;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1397;} + {stack[top++] = 20;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1410;} + {stack[top++] = 20;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1416;} + {stack[top++] = 20;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1434;} + {stack[top++] = 20;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1429;} + {stack[top++] = 20;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1447;} + {stack[top++] = 20;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1453;} + {stack[top++] = 20;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1467;} + {stack[top++] = 20;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1475;} + {stack[top++] = 20;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1481;} + {stack[top++] = 20;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st20; @@ -23807,30 +24336,30 @@ case 20: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr86; - case 1802: goto tr89; - case 1824: goto tr86; - case 1832: goto tr87; - case 1833: goto tr88; - case 1851: goto tr90; - case 2057: goto tr174; - case 2058: goto tr89; - case 2080: goto tr174; - case 2088: goto tr175; - case 2089: goto tr176; - case 2107: goto tr177; + case 1801: goto tr87; + case 1802: goto tr90; + case 1824: goto tr87; + case 1832: goto tr88; + case 1833: goto tr89; + case 1851: goto tr91; + case 2057: goto tr175; + case 2058: goto tr90; + case 2080: goto tr175; + case 2088: goto tr176; + case 2089: goto tr177; + case 2107: goto tr178; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr101; - goto tr85; -tr178: + goto tr102; + goto tr86; +tr179: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st21; -tr174: +tr175: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -23841,7 +24370,7 @@ tr174: s->buffer_length = 0; } goto st21; -tr175: +tr176: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -23854,12 +24383,12 @@ tr175: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st21; -tr176: +tr177: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -23872,12 +24401,12 @@ tr176: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st21; -tr179: +tr180: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -23886,12 +24415,12 @@ tr179: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st21; -tr180: +tr181: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -23900,7 +24429,7 @@ tr180: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -23941,21 +24470,21 @@ case 21: } switch( _widec ) { case 1801: goto st7; - case 1802: goto tr95; + case 1802: goto tr96; case 1824: goto st7; - case 1832: goto tr93; - case 1833: goto tr94; - case 1851: goto tr96; - case 2057: goto tr178; - case 2058: goto tr95; - case 2080: goto tr178; - case 2088: goto tr179; - case 2089: goto tr180; - case 2107: goto tr181; + case 1832: goto tr94; + case 1833: goto tr95; + case 1851: goto tr97; + case 2057: goto tr179; + case 2058: goto tr96; + case 2080: goto tr179; + case 2088: goto tr180; + case 2089: goto tr181; + case 2107: goto tr182; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr101; - goto tr85; + goto tr102; + goto tr86; st22: if ( ++p == pe ) goto _test_eof22; @@ -24024,16 +24553,16 @@ case 27: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr188; - case 32: goto tr188; - case 40: goto tr189; - case 41: goto tr190; - case 3082: goto tr191; - case 3131: goto tr192; - case 3338: goto tr193; - case 3387: goto tr193; - case 3594: goto tr194; - case 3643: goto tr195; + case 9: goto tr189; + case 32: goto tr189; + case 40: goto tr190; + case 41: goto tr191; + case 3082: goto tr192; + case 3131: goto tr193; + case 3338: goto tr194; + case 3387: goto tr194; + case 3594: goto tr195; + case 3643: goto tr196; } goto tr63; st28: @@ -24057,16 +24586,16 @@ case 28: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr196; - case 32: goto tr196; - case 40: goto tr197; - case 41: goto tr198; - case 3082: goto tr199; - case 3131: goto tr200; - case 3338: goto tr201; - case 3387: goto tr201; - case 3594: goto tr202; - case 3643: goto tr203; + case 9: goto tr197; + case 32: goto tr197; + case 40: goto tr198; + case 41: goto tr199; + case 3082: goto tr200; + case 3131: goto tr201; + case 3338: goto tr202; + case 3387: goto tr202; + case 3594: goto tr203; + case 3643: goto tr204; } goto tr63; st29: @@ -24108,16 +24637,16 @@ case 31: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr206; - case 32: goto tr206; - case 40: goto tr207; - case 41: goto tr208; - case 3082: goto tr209; - case 3131: goto tr210; - case 3338: goto tr211; - case 3387: goto tr211; - case 3594: goto tr212; - case 3643: goto tr213; + case 9: goto tr207; + case 32: goto tr207; + case 40: goto tr208; + case 41: goto tr209; + case 3082: goto tr210; + case 3131: goto tr211; + case 3338: goto tr212; + case 3387: goto tr212; + case 3594: goto tr213; + case 3643: goto tr214; } goto tr63; st32: @@ -24168,16 +24697,16 @@ case 35: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr217; - case 32: goto tr217; - case 40: goto tr218; - case 41: goto tr219; - case 3082: goto tr220; - case 3131: goto tr221; - case 3338: goto tr222; - case 3387: goto tr222; - case 3594: goto tr223; - case 3643: goto tr224; + case 9: goto tr218; + case 32: goto tr218; + case 40: goto tr219; + case 41: goto tr220; + case 3082: goto tr221; + case 3131: goto tr222; + case 3338: goto tr223; + case 3387: goto tr223; + case 3594: goto tr224; + case 3643: goto tr225; } goto tr63; st36: @@ -24228,16 +24757,16 @@ case 39: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr228; - case 32: goto tr228; - case 40: goto tr229; - case 41: goto tr230; - case 3082: goto tr231; - case 3131: goto tr232; - case 3338: goto tr233; - case 3387: goto tr233; - case 3594: goto tr234; - case 3643: goto tr235; + case 9: goto tr229; + case 32: goto tr229; + case 40: goto tr230; + case 41: goto tr231; + case 3082: goto tr232; + case 3131: goto tr233; + case 3338: goto tr234; + case 3387: goto tr234; + case 3594: goto tr235; + case 3643: goto tr236; } goto tr63; tr7: @@ -24253,7 +24782,7 @@ tr45: s->r_class = s->default_class; } goto st40; -tr752: +tr753: { s->r_ttl = s->default_ttl; } @@ -24319,16 +24848,16 @@ case 44: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr242; - case 32: goto tr242; - case 40: goto tr243; - case 41: goto tr244; - case 3082: goto tr245; - case 3131: goto tr246; - case 3338: goto tr247; - case 3387: goto tr247; - case 3594: goto tr248; - case 3643: goto tr249; + case 9: goto tr243; + case 32: goto tr243; + case 40: goto tr244; + case 41: goto tr245; + case 3082: goto tr246; + case 3131: goto tr247; + case 3338: goto tr248; + case 3387: goto tr248; + case 3594: goto tr249; + case 3643: goto tr250; } goto tr63; st45: @@ -24381,16 +24910,16 @@ case 48: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr254; - case 32: goto tr254; - case 40: goto tr255; - case 41: goto tr256; - case 3082: goto tr257; - case 3131: goto tr258; - case 3338: goto tr259; - case 3387: goto tr259; - case 3594: goto tr260; - case 3643: goto tr261; + case 9: goto tr255; + case 32: goto tr255; + case 40: goto tr256; + case 41: goto tr257; + case 3082: goto tr258; + case 3131: goto tr259; + case 3338: goto tr260; + case 3387: goto tr260; + case 3594: goto tr261; + case 3643: goto tr262; } goto tr63; st49: @@ -24441,16 +24970,16 @@ case 52: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr265; - case 32: goto tr265; - case 40: goto tr266; - case 41: goto tr267; - case 3082: goto tr268; - case 3131: goto tr269; - case 3338: goto tr270; - case 3387: goto tr270; - case 3594: goto tr271; - case 3643: goto tr272; + case 9: goto tr266; + case 32: goto tr266; + case 40: goto tr267; + case 41: goto tr268; + case 3082: goto tr269; + case 3131: goto tr270; + case 3338: goto tr271; + case 3387: goto tr271; + case 3594: goto tr272; + case 3643: goto tr273; } goto tr63; st53: @@ -24474,18 +25003,18 @@ case 53: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr273; - case 32: goto tr273; - case 40: goto tr274; - case 41: goto tr275; + case 9: goto tr274; + case 32: goto tr274; + case 40: goto tr275; + case 41: goto tr276; case 89: goto st54; case 121: goto st54; - case 3082: goto tr277; - case 3131: goto tr278; - case 3338: goto tr279; - case 3387: goto tr279; - case 3594: goto tr280; - case 3643: goto tr281; + case 3082: goto tr278; + case 3131: goto tr279; + case 3338: goto tr280; + case 3387: goto tr280; + case 3594: goto tr281; + case 3643: goto tr282; } goto tr63; st54: @@ -24527,16 +25056,16 @@ case 56: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr284; - case 32: goto tr284; - case 40: goto tr285; - case 41: goto tr286; - case 3082: goto tr287; - case 3131: goto tr288; - case 3338: goto tr289; - case 3387: goto tr289; - case 3594: goto tr290; - case 3643: goto tr291; + case 9: goto tr285; + case 32: goto tr285; + case 40: goto tr286; + case 41: goto tr287; + case 3082: goto tr288; + case 3131: goto tr289; + case 3338: goto tr290; + case 3387: goto tr290; + case 3594: goto tr291; + case 3643: goto tr292; } goto tr63; tr8: @@ -24552,7 +25081,7 @@ tr46: s->r_class = s->default_class; } goto st57; -tr753: +tr754: { s->r_ttl = s->default_ttl; } @@ -24612,16 +25141,16 @@ case 61: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr297; - case 32: goto tr297; - case 40: goto tr298; - case 41: goto tr299; - case 3082: goto tr300; - case 3131: goto tr301; - case 3338: goto tr302; - case 3387: goto tr302; - case 3594: goto tr303; - case 3643: goto tr304; + case 9: goto tr298; + case 32: goto tr298; + case 40: goto tr299; + case 41: goto tr300; + case 3082: goto tr301; + case 3131: goto tr302; + case 3338: goto tr303; + case 3387: goto tr303; + case 3594: goto tr304; + case 3643: goto tr305; } goto tr63; st62: @@ -24652,16 +25181,16 @@ case 63: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr306; - case 32: goto tr306; - case 40: goto tr307; - case 41: goto tr308; - case 3082: goto tr309; - case 3131: goto tr310; - case 3338: goto tr311; - case 3387: goto tr311; - case 3594: goto tr312; - case 3643: goto tr313; + case 9: goto tr307; + case 32: goto tr307; + case 40: goto tr308; + case 41: goto tr309; + case 3082: goto tr310; + case 3131: goto tr311; + case 3338: goto tr312; + case 3387: goto tr312; + case 3594: goto tr313; + case 3643: goto tr314; } goto tr63; tr9: @@ -24677,7 +25206,7 @@ tr47: s->r_class = s->default_class; } goto st64; -tr754: +tr755: { s->r_ttl = s->default_ttl; } @@ -24741,16 +25270,16 @@ case 68: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr319; - case 32: goto tr319; - case 40: goto tr320; - case 41: goto tr321; - case 3082: goto tr322; - case 3131: goto tr323; - case 3338: goto tr324; - case 3387: goto tr324; - case 3594: goto tr325; - case 3643: goto tr326; + case 9: goto tr320; + case 32: goto tr320; + case 40: goto tr321; + case 41: goto tr322; + case 3082: goto tr323; + case 3131: goto tr324; + case 3338: goto tr325; + case 3387: goto tr325; + case 3594: goto tr326; + case 3643: goto tr327; } goto tr63; st69: @@ -24801,16 +25330,16 @@ case 72: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr330; - case 32: goto tr330; - case 40: goto tr331; - case 41: goto tr332; - case 3082: goto tr333; - case 3131: goto tr334; - case 3338: goto tr335; - case 3387: goto tr335; - case 3594: goto tr336; - case 3643: goto tr337; + case 9: goto tr331; + case 32: goto tr331; + case 40: goto tr332; + case 41: goto tr333; + case 3082: goto tr334; + case 3131: goto tr335; + case 3338: goto tr336; + case 3387: goto tr336; + case 3594: goto tr337; + case 3643: goto tr338; } goto tr63; tr48: @@ -24846,95 +25375,95 @@ case 74: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr340; - case 32: goto tr340; - case 40: goto tr341; - case 41: goto tr342; - case 2058: goto tr343; - case 2107: goto tr344; + case 9: goto tr341; + case 32: goto tr341; + case 40: goto tr342; + case 41: goto tr343; + case 2058: goto tr344; + case 2107: goto tr345; } goto tr39; -tr346: +tr347: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st75; -tr347: +tr348: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st75; -tr366: +tr367: { s->line_counter++; } goto st75; -tr770: +tr771: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st75; -tr771: +tr772: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st75; -tr772: +tr773: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st75; -tr779: +tr780: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } goto st75; -tr734: +tr735: { s->buffer[s->buffer_length++] = 0; @@ -24952,36 +25481,36 @@ tr734: s->line_counter++; } goto st75; -tr340: +tr341: { s->r_class = KNOT_CLASS_IN; } goto st75; -tr341: +tr342: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st75; -tr342: +tr343: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st75; -tr343: +tr344: { s->r_class = KNOT_CLASS_IN; } @@ -24989,13 +25518,13 @@ tr343: s->line_counter++; } goto st75; -tr788: +tr789: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -25003,17 +25532,17 @@ tr788: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st75; -tr789: +tr790: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -25021,24 +25550,24 @@ tr789: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st75; -tr790: +tr791: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -25046,24 +25575,24 @@ tr790: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st75; -tr792: +tr793: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -25071,7 +25600,7 @@ tr792: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -25097,8 +25626,8 @@ case 75: switch( _widec ) { case 9: goto st75; case 32: goto st75; - case 40: goto tr346; - case 41: goto tr347; + case 40: goto tr347; + case 41: goto tr348; case 65: goto st4; case 67: goto st17; case 68: goto st40; @@ -25135,11 +25664,11 @@ case 75: case 117: goto st173; case 119: goto st176; case 122: goto st182; - case 2058: goto tr366; - case 2107: goto tr367; + case 2058: goto tr367; + case 2107: goto tr368; } goto tr39; -tr755: +tr756: { s->r_ttl = s->default_ttl; } @@ -25228,16 +25757,16 @@ case 83: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr374; - case 32: goto tr374; - case 40: goto tr375; - case 41: goto tr376; - case 3082: goto tr377; - case 3131: goto tr378; - case 3338: goto tr379; - case 3387: goto tr379; - case 3594: goto tr380; - case 3643: goto tr381; + case 9: goto tr375; + case 32: goto tr375; + case 40: goto tr376; + case 41: goto tr377; + case 3082: goto tr378; + case 3131: goto tr379; + case 3338: goto tr380; + case 3387: goto tr380; + case 3594: goto tr381; + case 3643: goto tr382; } goto tr63; tr11: @@ -25253,7 +25782,7 @@ tr49: s->r_class = s->default_class; } goto st84; -tr756: +tr757: { s->r_ttl = s->default_ttl; } @@ -25299,16 +25828,16 @@ case 86: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr385; - case 32: goto tr385; - case 40: goto tr386; - case 41: goto tr387; - case 3082: goto tr388; - case 3131: goto tr389; - case 3338: goto tr390; - case 3387: goto tr390; - case 3594: goto tr391; - case 3643: goto tr392; + case 9: goto tr386; + case 32: goto tr386; + case 40: goto tr387; + case 41: goto tr388; + case 3082: goto tr389; + case 3131: goto tr390; + case 3338: goto tr391; + case 3387: goto tr391; + case 3594: goto tr392; + case 3643: goto tr393; } goto tr63; st87: @@ -25332,16 +25861,16 @@ case 87: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr393; - case 32: goto tr393; - case 40: goto tr394; - case 41: goto tr395; - case 3082: goto tr396; - case 3131: goto tr397; - case 3338: goto tr398; - case 3387: goto tr398; - case 3594: goto tr399; - case 3643: goto tr400; + case 9: goto tr394; + case 32: goto tr394; + case 40: goto tr395; + case 41: goto tr396; + case 3082: goto tr397; + case 3131: goto tr398; + case 3338: goto tr399; + case 3387: goto tr399; + case 3594: goto tr400; + case 3643: goto tr401; } goto tr63; tr12: @@ -25357,7 +25886,7 @@ tr50: s->r_class = s->default_class; } goto st88; -tr757: +tr758: { s->r_ttl = s->default_ttl; } @@ -25403,16 +25932,16 @@ case 90: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr406; - case 32: goto tr406; - case 40: goto tr407; - case 41: goto tr408; - case 3082: goto tr409; - case 3131: goto tr410; - case 3338: goto tr411; - case 3387: goto tr411; - case 3594: goto tr412; - case 3643: goto tr413; + case 9: goto tr407; + case 32: goto tr407; + case 40: goto tr408; + case 41: goto tr409; + case 3082: goto tr410; + case 3131: goto tr411; + case 3338: goto tr412; + case 3387: goto tr412; + case 3594: goto tr413; + case 3643: goto tr414; } goto tr63; st91: @@ -25443,16 +25972,16 @@ case 92: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr415; - case 32: goto tr415; - case 40: goto tr416; - case 41: goto tr417; - case 3082: goto tr418; - case 3131: goto tr419; - case 3338: goto tr420; - case 3387: goto tr420; - case 3594: goto tr421; - case 3643: goto tr422; + case 9: goto tr416; + case 32: goto tr416; + case 40: goto tr417; + case 41: goto tr418; + case 3082: goto tr419; + case 3131: goto tr420; + case 3338: goto tr421; + case 3387: goto tr421; + case 3594: goto tr422; + case 3643: goto tr423; } goto tr63; st93: @@ -25485,16 +26014,16 @@ case 94: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr424; - case 32: goto tr424; - case 40: goto tr425; - case 41: goto tr426; - case 3082: goto tr427; - case 3131: goto tr428; - case 3338: goto tr429; - case 3387: goto tr429; - case 3594: goto tr430; - case 3643: goto tr431; + case 9: goto tr425; + case 32: goto tr425; + case 40: goto tr426; + case 41: goto tr427; + case 3082: goto tr428; + case 3131: goto tr429; + case 3338: goto tr430; + case 3387: goto tr430; + case 3594: goto tr431; + case 3643: goto tr432; } goto tr63; st95: @@ -25518,16 +26047,16 @@ case 95: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr432; - case 32: goto tr432; - case 40: goto tr433; - case 41: goto tr434; - case 3082: goto tr435; - case 3131: goto tr436; - case 3338: goto tr437; - case 3387: goto tr437; - case 3594: goto tr438; - case 3643: goto tr439; + case 9: goto tr433; + case 32: goto tr433; + case 40: goto tr434; + case 41: goto tr435; + case 3082: goto tr436; + case 3131: goto tr437; + case 3338: goto tr438; + case 3387: goto tr438; + case 3594: goto tr439; + case 3643: goto tr440; } goto tr63; tr13: @@ -25543,7 +26072,7 @@ tr51: s->r_class = s->default_class; } goto st96; -tr758: +tr759: { s->r_ttl = s->default_ttl; } @@ -25607,16 +26136,16 @@ case 100: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr445; - case 32: goto tr445; - case 40: goto tr446; - case 41: goto tr447; - case 3082: goto tr448; - case 3131: goto tr449; - case 3338: goto tr450; - case 3387: goto tr450; - case 3594: goto tr451; - case 3643: goto tr452; + case 9: goto tr446; + case 32: goto tr446; + case 40: goto tr447; + case 41: goto tr448; + case 3082: goto tr449; + case 3131: goto tr450; + case 3338: goto tr451; + case 3387: goto tr451; + case 3594: goto tr452; + case 3643: goto tr453; } goto tr63; st101: @@ -25640,16 +26169,16 @@ case 101: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr453; - case 32: goto tr453; - case 40: goto tr454; - case 41: goto tr455; - case 3082: goto tr456; - case 3131: goto tr457; - case 3338: goto tr458; - case 3387: goto tr458; - case 3594: goto tr459; - case 3643: goto tr460; + case 9: goto tr454; + case 32: goto tr454; + case 40: goto tr455; + case 41: goto tr456; + case 3082: goto tr457; + case 3131: goto tr458; + case 3338: goto tr459; + case 3387: goto tr459; + case 3594: goto tr460; + case 3643: goto tr461; } goto tr63; tr14: @@ -25665,7 +26194,7 @@ tr52: s->r_class = s->default_class; } goto st102; -tr759: +tr760: { s->r_ttl = s->default_ttl; } @@ -25731,16 +26260,16 @@ case 106: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr467; - case 32: goto tr467; - case 40: goto tr468; - case 41: goto tr469; - case 3082: goto tr470; - case 3131: goto tr471; - case 3338: goto tr472; - case 3387: goto tr472; - case 3594: goto tr473; - case 3643: goto tr474; + case 9: goto tr468; + case 32: goto tr468; + case 40: goto tr469; + case 41: goto tr470; + case 3082: goto tr471; + case 3131: goto tr472; + case 3338: goto tr473; + case 3387: goto tr473; + case 3594: goto tr474; + case 3643: goto tr475; } goto tr63; st107: @@ -25773,16 +26302,16 @@ case 108: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr476; - case 32: goto tr476; - case 40: goto tr477; - case 41: goto tr478; - case 3082: goto tr479; - case 3131: goto tr480; - case 3338: goto tr481; - case 3387: goto tr481; - case 3594: goto tr482; - case 3643: goto tr483; + case 9: goto tr477; + case 32: goto tr477; + case 40: goto tr478; + case 41: goto tr479; + case 3082: goto tr480; + case 3131: goto tr481; + case 3338: goto tr482; + case 3387: goto tr482; + case 3594: goto tr483; + case 3643: goto tr484; } goto tr63; st109: @@ -25806,18 +26335,18 @@ case 109: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr484; - case 32: goto tr484; - case 40: goto tr485; - case 41: goto tr486; + case 9: goto tr485; + case 32: goto tr485; + case 40: goto tr486; + case 41: goto tr487; case 69: goto st110; case 101: goto st110; - case 3082: goto tr488; - case 3131: goto tr489; - case 3338: goto tr490; - case 3387: goto tr490; - case 3594: goto tr491; - case 3643: goto tr492; + case 3082: goto tr489; + case 3131: goto tr490; + case 3338: goto tr491; + case 3387: goto tr491; + case 3594: goto tr492; + case 3643: goto tr493; } goto tr63; st110: @@ -25850,17 +26379,17 @@ case 111: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr494; - case 32: goto tr494; - case 40: goto tr495; - case 41: goto tr496; + case 9: goto tr495; + case 32: goto tr495; + case 40: goto tr496; + case 41: goto tr497; case 51: goto st112; - case 3082: goto tr498; - case 3131: goto tr499; - case 3338: goto tr500; - case 3387: goto tr500; - case 3594: goto tr501; - case 3643: goto tr502; + case 3082: goto tr499; + case 3131: goto tr500; + case 3338: goto tr501; + case 3387: goto tr501; + case 3594: goto tr502; + case 3643: goto tr503; } goto tr63; st112: @@ -25884,18 +26413,18 @@ case 112: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr503; - case 32: goto tr503; - case 40: goto tr504; - case 41: goto tr505; + case 9: goto tr504; + case 32: goto tr504; + case 40: goto tr505; + case 41: goto tr506; case 80: goto st113; case 112: goto st113; - case 3082: goto tr507; - case 3131: goto tr508; - case 3338: goto tr509; - case 3387: goto tr509; - case 3594: goto tr510; - case 3643: goto tr511; + case 3082: goto tr508; + case 3131: goto tr509; + case 3338: goto tr510; + case 3387: goto tr510; + case 3594: goto tr511; + case 3643: goto tr512; } goto tr63; st113: @@ -25955,16 +26484,16 @@ case 117: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr516; - case 32: goto tr516; - case 40: goto tr517; - case 41: goto tr518; - case 3082: goto tr519; - case 3131: goto tr520; - case 3338: goto tr521; - case 3387: goto tr521; - case 3594: goto tr522; - case 3643: goto tr523; + case 9: goto tr517; + case 32: goto tr517; + case 40: goto tr518; + case 41: goto tr519; + case 3082: goto tr520; + case 3131: goto tr521; + case 3338: goto tr522; + case 3387: goto tr522; + case 3594: goto tr523; + case 3643: goto tr524; } goto tr63; tr15: @@ -25980,7 +26509,7 @@ tr53: s->r_class = s->default_class; } goto st118; -tr760: +tr761: { s->r_ttl = s->default_ttl; } @@ -26087,16 +26616,16 @@ case 127: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr533; - case 32: goto tr533; - case 40: goto tr534; - case 41: goto tr535; - case 3082: goto tr536; - case 3131: goto tr537; - case 3338: goto tr538; - case 3387: goto tr538; - case 3594: goto tr539; - case 3643: goto tr540; + case 9: goto tr534; + case 32: goto tr534; + case 40: goto tr535; + case 41: goto tr536; + case 3082: goto tr537; + case 3131: goto tr538; + case 3338: goto tr539; + case 3387: goto tr539; + case 3594: goto tr540; + case 3643: goto tr541; } goto tr63; tr16: @@ -26112,7 +26641,7 @@ tr54: s->r_class = s->default_class; } goto st128; -tr761: +tr762: { s->r_ttl = s->default_ttl; } @@ -26156,16 +26685,16 @@ case 130: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr543; - case 32: goto tr543; - case 40: goto tr544; - case 41: goto tr545; - case 3082: goto tr546; - case 3131: goto tr547; - case 3338: goto tr548; - case 3387: goto tr548; - case 3594: goto tr549; - case 3643: goto tr550; + case 9: goto tr544; + case 32: goto tr544; + case 40: goto tr545; + case 41: goto tr546; + case 3082: goto tr547; + case 3131: goto tr548; + case 3338: goto tr549; + case 3387: goto tr549; + case 3594: goto tr550; + case 3643: goto tr551; } goto tr63; tr17: @@ -26181,7 +26710,7 @@ tr55: s->r_class = s->default_class; } goto st131; -tr762: +tr763: { s->r_ttl = s->default_ttl; } @@ -26267,16 +26796,16 @@ case 137: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr560; - case 32: goto tr560; - case 40: goto tr561; - case 41: goto tr562; - case 3082: goto tr563; - case 3131: goto tr564; - case 3338: goto tr565; - case 3387: goto tr565; - case 3594: goto tr566; - case 3643: goto tr567; + case 9: goto tr561; + case 32: goto tr561; + case 40: goto tr562; + case 41: goto tr563; + case 3082: goto tr564; + case 3131: goto tr565; + case 3338: goto tr566; + case 3387: goto tr566; + case 3594: goto tr567; + case 3643: goto tr568; } goto tr63; st138: @@ -26300,16 +26829,16 @@ case 138: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr568; - case 32: goto tr568; - case 40: goto tr569; - case 41: goto tr570; - case 3082: goto tr571; - case 3131: goto tr572; - case 3338: goto tr573; - case 3387: goto tr573; - case 3594: goto tr574; - case 3643: goto tr575; + case 9: goto tr569; + case 32: goto tr569; + case 40: goto tr570; + case 41: goto tr571; + case 3082: goto tr572; + case 3131: goto tr573; + case 3338: goto tr574; + case 3387: goto tr574; + case 3594: goto tr575; + case 3643: goto tr576; } goto tr63; st139: @@ -26360,16 +26889,16 @@ case 142: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr579; - case 32: goto tr579; - case 40: goto tr580; - case 41: goto tr581; - case 3082: goto tr582; - case 3131: goto tr583; - case 3338: goto tr584; - case 3387: goto tr584; - case 3594: goto tr585; - case 3643: goto tr586; + case 9: goto tr580; + case 32: goto tr580; + case 40: goto tr581; + case 41: goto tr582; + case 3082: goto tr583; + case 3131: goto tr584; + case 3338: goto tr585; + case 3387: goto tr585; + case 3594: goto tr586; + case 3643: goto tr587; } goto tr63; st143: @@ -26393,16 +26922,16 @@ case 143: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr587; - case 32: goto tr587; - case 40: goto tr588; - case 41: goto tr589; - case 3082: goto tr590; - case 3131: goto tr591; - case 3338: goto tr592; - case 3387: goto tr592; - case 3594: goto tr593; - case 3643: goto tr594; + case 9: goto tr588; + case 32: goto tr588; + case 40: goto tr589; + case 41: goto tr590; + case 3082: goto tr591; + case 3131: goto tr592; + case 3338: goto tr593; + case 3387: goto tr593; + case 3594: goto tr594; + case 3643: goto tr595; } goto tr63; tr18: @@ -26418,7 +26947,7 @@ tr56: s->r_class = s->default_class; } goto st144; -tr763: +tr764: { s->r_ttl = s->default_ttl; } @@ -26499,16 +27028,16 @@ case 149: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr605; - case 32: goto tr605; - case 40: goto tr606; - case 41: goto tr607; - case 3082: goto tr608; - case 3131: goto tr609; - case 3338: goto tr610; - case 3387: goto tr610; - case 3594: goto tr611; - case 3643: goto tr612; + case 9: goto tr606; + case 32: goto tr606; + case 40: goto tr607; + case 41: goto tr608; + case 3082: goto tr609; + case 3131: goto tr610; + case 3338: goto tr611; + case 3387: goto tr611; + case 3594: goto tr612; + case 3643: goto tr613; } goto tr63; st150: @@ -26541,16 +27070,16 @@ case 151: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr614; - case 32: goto tr614; - case 40: goto tr615; - case 41: goto tr616; - case 3082: goto tr617; - case 3131: goto tr618; - case 3338: goto tr619; - case 3387: goto tr619; - case 3594: goto tr620; - case 3643: goto tr621; + case 9: goto tr615; + case 32: goto tr615; + case 40: goto tr616; + case 41: goto tr617; + case 3082: goto tr618; + case 3131: goto tr619; + case 3338: goto tr620; + case 3387: goto tr620; + case 3594: goto tr621; + case 3643: goto tr622; } goto tr63; st152: @@ -26583,16 +27112,16 @@ case 153: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr623; - case 32: goto tr623; - case 40: goto tr624; - case 41: goto tr625; - case 3082: goto tr626; - case 3131: goto tr627; - case 3338: goto tr628; - case 3387: goto tr628; - case 3594: goto tr629; - case 3643: goto tr630; + case 9: goto tr624; + case 32: goto tr624; + case 40: goto tr625; + case 41: goto tr626; + case 3082: goto tr627; + case 3131: goto tr628; + case 3338: goto tr629; + case 3387: goto tr629; + case 3594: goto tr630; + case 3643: goto tr631; } goto tr63; st154: @@ -26625,16 +27154,16 @@ case 155: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr632; - case 32: goto tr632; - case 40: goto tr633; - case 41: goto tr634; - case 3082: goto tr635; - case 3131: goto tr636; - case 3338: goto tr637; - case 3387: goto tr637; - case 3594: goto tr638; - case 3643: goto tr639; + case 9: goto tr633; + case 32: goto tr633; + case 40: goto tr634; + case 41: goto tr635; + case 3082: goto tr636; + case 3131: goto tr637; + case 3338: goto tr638; + case 3387: goto tr638; + case 3594: goto tr639; + case 3643: goto tr640; } goto tr63; st156: @@ -26685,16 +27214,16 @@ case 159: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr643; - case 32: goto tr643; - case 40: goto tr644; - case 41: goto tr645; - case 3082: goto tr646; - case 3131: goto tr647; - case 3338: goto tr648; - case 3387: goto tr648; - case 3594: goto tr649; - case 3643: goto tr650; + case 9: goto tr644; + case 32: goto tr644; + case 40: goto tr645; + case 41: goto tr646; + case 3082: goto tr647; + case 3131: goto tr648; + case 3338: goto tr649; + case 3387: goto tr649; + case 3594: goto tr650; + case 3643: goto tr651; } goto tr63; st160: @@ -26736,16 +27265,16 @@ case 162: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr653; - case 32: goto tr653; - case 40: goto tr654; - case 41: goto tr655; - case 3082: goto tr656; - case 3131: goto tr657; - case 3338: goto tr658; - case 3387: goto tr658; - case 3594: goto tr659; - case 3643: goto tr660; + case 9: goto tr654; + case 32: goto tr654; + case 40: goto tr655; + case 41: goto tr656; + case 3082: goto tr657; + case 3131: goto tr658; + case 3338: goto tr659; + case 3387: goto tr659; + case 3594: goto tr660; + case 3643: goto tr661; } goto tr63; tr19: @@ -26761,7 +27290,7 @@ tr57: s->r_class = s->default_class; } goto st163; -tr764: +tr765: { s->r_ttl = s->default_ttl; } @@ -26818,16 +27347,16 @@ case 166: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr666; - case 32: goto tr666; - case 40: goto tr667; - case 41: goto tr668; - case 3082: goto tr669; - case 3131: goto tr670; - case 3338: goto tr671; - case 3387: goto tr671; - case 3594: goto tr672; - case 3643: goto tr673; + case 9: goto tr667; + case 32: goto tr667; + case 40: goto tr668; + case 41: goto tr669; + case 3082: goto tr670; + case 3131: goto tr671; + case 3338: goto tr672; + case 3387: goto tr672; + case 3594: goto tr673; + case 3643: goto tr674; } goto tr63; st167: @@ -26860,16 +27389,16 @@ case 168: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr675; - case 32: goto tr675; - case 40: goto tr676; - case 41: goto tr677; - case 3082: goto tr678; - case 3131: goto tr679; - case 3338: goto tr680; - case 3387: goto tr680; - case 3594: goto tr681; - case 3643: goto tr682; + case 9: goto tr676; + case 32: goto tr676; + case 40: goto tr677; + case 41: goto tr678; + case 3082: goto tr679; + case 3131: goto tr680; + case 3338: goto tr681; + case 3387: goto tr681; + case 3594: goto tr682; + case 3643: goto tr683; } goto tr63; st169: @@ -26895,9 +27424,9 @@ st171: goto _test_eof171; case 171: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr686; - goto tr685; -tr686: + goto tr687; + goto tr686; +tr687: { s->number64 = 0; } @@ -26912,11 +27441,11 @@ tr686: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st172; -tr691: +tr692: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -26928,7 +27457,7 @@ tr691: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st172; @@ -26953,20 +27482,20 @@ case 172: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr688; - case 32: goto tr688; - case 40: goto tr689; - case 41: goto tr690; - case 3082: goto tr692; - case 3131: goto tr693; - case 3338: goto tr694; - case 3387: goto tr694; - case 3594: goto tr695; - case 3643: goto tr696; + case 9: goto tr689; + case 32: goto tr689; + case 40: goto tr690; + case 41: goto tr691; + case 3082: goto tr693; + case 3131: goto tr694; + case 3338: goto tr695; + case 3387: goto tr695; + case 3594: goto tr696; + case 3643: goto tr697; } if ( 48 <= _widec && _widec <= 57 ) - goto tr691; - goto tr687; + goto tr692; + goto tr688; tr20: { s->r_class = s->default_class; @@ -26980,7 +27509,7 @@ tr58: s->r_class = s->default_class; } goto st173; -tr765: +tr766: { s->r_ttl = s->default_ttl; } @@ -27024,16 +27553,16 @@ case 175: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr699; - case 32: goto tr699; - case 40: goto tr700; - case 41: goto tr701; - case 3082: goto tr702; - case 3131: goto tr703; - case 3338: goto tr704; - case 3387: goto tr704; - case 3594: goto tr705; - case 3643: goto tr706; + case 9: goto tr700; + case 32: goto tr700; + case 40: goto tr701; + case 41: goto tr702; + case 3082: goto tr703; + case 3131: goto tr704; + case 3338: goto tr705; + case 3387: goto tr705; + case 3594: goto tr706; + case 3643: goto tr707; } goto tr63; tr21: @@ -27049,7 +27578,7 @@ tr59: s->r_class = s->default_class; } goto st176; -tr766: +tr767: { s->r_ttl = s->default_ttl; } @@ -27120,16 +27649,16 @@ case 181: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr712; - case 32: goto tr712; - case 40: goto tr713; - case 41: goto tr714; - case 3082: goto tr715; - case 3131: goto tr716; - case 3338: goto tr717; - case 3387: goto tr717; - case 3594: goto tr718; - case 3643: goto tr719; + case 9: goto tr713; + case 32: goto tr713; + case 40: goto tr714; + case 41: goto tr715; + case 3082: goto tr716; + case 3131: goto tr717; + case 3338: goto tr718; + case 3387: goto tr718; + case 3594: goto tr719; + case 3643: goto tr720; } goto tr63; tr22: @@ -27145,7 +27674,7 @@ tr60: s->r_class = s->default_class; } goto st182; -tr767: +tr768: { s->r_ttl = s->default_ttl; } @@ -27216,44 +27745,44 @@ case 187: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr725; - case 32: goto tr725; - case 40: goto tr726; - case 41: goto tr727; - case 3082: goto tr728; - case 3131: goto tr729; - case 3338: goto tr730; - case 3387: goto tr730; - case 3594: goto tr731; - case 3643: goto tr732; + case 9: goto tr726; + case 32: goto tr726; + case 40: goto tr727; + case 41: goto tr728; + case 3082: goto tr729; + case 3131: goto tr730; + case 3338: goto tr731; + case 3387: goto tr731; + case 3594: goto tr732; + case 3643: goto tr733; } goto tr63; -tr367: +tr368: { s->buffer_length = 0; } goto st188; -tr780: +tr781: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } goto st188; -tr733: +tr734: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st188; -tr344: +tr345: { s->r_class = KNOT_CLASS_IN; } @@ -27261,13 +27790,13 @@ tr344: s->buffer_length = 0; } goto st188; -tr793: +tr794: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -27275,7 +27804,7 @@ tr793: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -27305,11 +27834,11 @@ case 188: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr734; + goto tr735; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr733; + goto tr734; goto tr39; -tr1045: +tr1057: { s->buffer[s->buffer_length++] = 0; @@ -27319,7 +27848,7 @@ tr1045: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1494; goto _out;} + {p++; cs = 1506; goto _out;} } } } @@ -27329,7 +27858,7 @@ tr1045: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -27342,22 +27871,22 @@ tr1045: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1494; goto _out;} + {p++; cs = 1506; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1494; goto _out;} + p--; {p++; cs = 1506; goto _out;} } } - goto st1494; -tr152: + goto st1506; +tr153: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -27370,7 +27899,7 @@ tr152: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -27383,23 +27912,23 @@ tr152: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1494; goto _out;} + {p++; cs = 1506; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1494; goto _out;} + p--; {p++; cs = 1506; goto _out;} } } - goto st1494; -tr158: + goto st1506; +tr159: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -27412,19 +27941,19 @@ tr158: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1494; goto _out;} + {p++; cs = 1506; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1494; goto _out;} + p--; {p++; cs = 1506; goto _out;} } } - goto st1494; -st1494: + goto st1506; +st1506: if ( ++p == pe ) - goto _test_eof1494; -case 1494: + goto _test_eof1506; +case 1506: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27438,87 +27967,87 @@ case 1494: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4213; - case 32: goto tr4213; + case 9: goto tr4242; + case 32: goto tr4242; case 36: goto st199; - case 40: goto tr4214; - case 41: goto tr4215; - case 42: goto tr4195; - case 65: goto tr4216; - case 67: goto tr4217; - case 68: goto tr4218; - case 69: goto tr4219; - case 72: goto tr4220; - case 73: goto tr4221; - case 75: goto tr4222; - case 76: goto tr4223; - case 77: goto tr4224; - case 78: goto tr4225; - case 79: goto tr4226; - case 80: goto tr4227; - case 82: goto tr4228; - case 83: goto tr4229; - case 84: goto tr4230; - case 85: goto tr4231; - case 87: goto tr4232; - case 90: goto tr4233; - case 92: goto tr4195; - case 95: goto tr4195; - case 97: goto tr4216; - case 99: goto tr4217; - case 100: goto tr4218; - case 101: goto tr4219; - case 104: goto tr4220; - case 105: goto tr4221; - case 107: goto tr4222; - case 108: goto tr4223; - case 109: goto tr4224; - case 110: goto tr4225; - case 111: goto tr4226; - case 112: goto tr4227; - case 114: goto tr4228; - case 115: goto tr4229; - case 116: goto tr4230; - case 117: goto tr4231; - case 119: goto tr4232; - case 122: goto tr4233; - case 1802: goto tr4196; - case 1851: goto tr4197; - case 2058: goto tr4234; - case 2107: goto tr4235; + case 40: goto tr4243; + case 41: goto tr4244; + case 42: goto tr4224; + case 65: goto tr4245; + case 67: goto tr4246; + case 68: goto tr4247; + case 69: goto tr4248; + case 72: goto tr4249; + case 73: goto tr4250; + case 75: goto tr4251; + case 76: goto tr4252; + case 77: goto tr4253; + case 78: goto tr4254; + case 79: goto tr4255; + case 80: goto tr4256; + case 82: goto tr4257; + case 83: goto tr4258; + case 84: goto tr4259; + case 85: goto tr4260; + case 87: goto tr4261; + case 90: goto tr4262; + case 92: goto tr4224; + case 95: goto tr4224; + case 97: goto tr4245; + case 99: goto tr4246; + case 100: goto tr4247; + case 101: goto tr4248; + case 104: goto tr4249; + case 105: goto tr4250; + case 107: goto tr4251; + case 108: goto tr4252; + case 109: goto tr4253; + case 110: goto tr4254; + case 111: goto tr4255; + case 112: goto tr4256; + case 114: goto tr4257; + case 115: goto tr4258; + case 116: goto tr4259; + case 117: goto tr4260; + case 119: goto tr4261; + case 122: goto tr4262; + case 1802: goto tr4225; + case 1851: goto tr4226; + case 2058: goto tr4263; + case 2107: goto tr4264; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4195; + goto tr4224; } else if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4195; + goto tr4224; } else - goto tr4195; - goto tr4212; -tr736: + goto tr4224; + goto tr4241; +tr737: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st189; -tr737: +tr738: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st189; -tr4213: +tr4242: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -27526,18 +28055,18 @@ tr4213: s->buffer_length = 0; } goto st189; -tr4214: +tr4243: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -27545,18 +28074,18 @@ tr4214: s->buffer_length = 0; } goto st189; -tr4215: +tr4244: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -27583,8 +28112,8 @@ case 189: switch( _widec ) { case 9: goto st189; case 32: goto st189; - case 40: goto tr736; - case 41: goto tr737; + case 40: goto tr737; + case 41: goto tr738; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -27623,8 +28152,8 @@ case 189: case 122: goto tr22; case 1802: goto tr23; case 1851: goto tr24; - case 2058: goto tr738; - case 2107: goto tr739; + case 2058: goto tr739; + case 2107: goto tr740; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; @@ -27665,38 +28194,38 @@ case 191: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr741; - case 32: goto tr741; - case 40: goto tr742; - case 41: goto tr743; - case 2058: goto tr744; - case 2107: goto tr745; + case 9: goto tr742; + case 32: goto tr742; + case 40: goto tr743; + case 41: goto tr744; + case 2058: goto tr745; + case 2107: goto tr746; } goto tr39; -tr747: +tr748: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st192; -tr748: +tr749: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st192; -tr768: +tr769: { s->line_counter++; } goto st192; -tr795: +tr796: { s->buffer[s->buffer_length++] = 0; @@ -27714,36 +28243,36 @@ tr795: s->line_counter++; } goto st192; -tr741: +tr742: { s->r_class = KNOT_CLASS_IN; } goto st192; -tr742: +tr743: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st192; -tr743: +tr744: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st192; -tr744: +tr745: { s->r_class = KNOT_CLASS_IN; } @@ -27770,51 +28299,51 @@ case 192: switch( _widec ) { case 9: goto st192; case 32: goto st192; - case 40: goto tr747; - case 41: goto tr748; - case 65: goto tr750; - case 67: goto tr751; - case 68: goto tr752; - case 69: goto tr753; - case 72: goto tr754; - case 73: goto tr755; - case 75: goto tr756; - case 76: goto tr757; - case 77: goto tr758; - case 78: goto tr759; - case 79: goto tr760; - case 80: goto tr761; - case 82: goto tr762; - case 83: goto tr763; - case 84: goto tr764; - case 85: goto tr765; - case 87: goto tr766; - case 90: goto tr767; - case 97: goto tr750; - case 99: goto tr751; - case 100: goto tr752; - case 101: goto tr753; - case 104: goto tr754; - case 105: goto tr755; - case 107: goto tr756; - case 108: goto tr757; - case 109: goto tr758; - case 110: goto tr759; - case 111: goto tr760; - case 112: goto tr761; - case 114: goto tr762; - case 115: goto tr763; - case 116: goto tr764; - case 117: goto tr765; - case 119: goto tr766; - case 122: goto tr767; - case 2058: goto tr768; - case 2107: goto tr769; + case 40: goto tr748; + case 41: goto tr749; + case 65: goto tr751; + case 67: goto tr752; + case 68: goto tr753; + case 69: goto tr754; + case 72: goto tr755; + case 73: goto tr756; + case 75: goto tr757; + case 76: goto tr758; + case 77: goto tr759; + case 78: goto tr760; + case 79: goto tr761; + case 80: goto tr762; + case 82: goto tr763; + case 83: goto tr764; + case 84: goto tr765; + case 85: goto tr766; + case 87: goto tr767; + case 90: goto tr768; + case 97: goto tr751; + case 99: goto tr752; + case 100: goto tr753; + case 101: goto tr754; + case 104: goto tr755; + case 105: goto tr756; + case 107: goto tr757; + case 108: goto tr758; + case 109: goto tr759; + case 110: goto tr760; + case 111: goto tr761; + case 112: goto tr762; + case 114: goto tr763; + case 115: goto tr764; + case 116: goto tr765; + case 117: goto tr766; + case 119: goto tr767; + case 122: goto tr768; + case 2058: goto tr769; + case 2107: goto tr770; } if ( 48 <= _widec && _widec <= 57 ) - goto tr749; - goto tr685; -tr749: + goto tr750; + goto tr686; +tr750: { s->number64 = 0; } @@ -27829,11 +28358,11 @@ tr749: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st193; -tr773: +tr774: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -27845,7 +28374,7 @@ tr773: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st193; @@ -27866,59 +28395,59 @@ case 193: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr770; - case 32: goto tr770; - case 40: goto tr771; - case 41: goto tr772; - case 68: goto tr774; - case 72: goto tr775; - case 77: goto tr776; + case 9: goto tr771; + case 32: goto tr771; + case 40: goto tr772; + case 41: goto tr773; + case 68: goto tr775; + case 72: goto tr776; + case 77: goto tr777; case 83: goto st194; - case 87: goto tr778; - case 100: goto tr774; - case 104: goto tr775; - case 109: goto tr776; + case 87: goto tr779; + case 100: goto tr775; + case 104: goto tr776; + case 109: goto tr777; case 115: goto st194; - case 119: goto tr778; - case 2058: goto tr779; - case 2107: goto tr780; + case 119: goto tr779; + case 2058: goto tr780; + case 2107: goto tr781; } if ( 48 <= _widec && _widec <= 57 ) - goto tr773; + goto tr774; goto tr27; -tr774: +tr775: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st194; -tr775: +tr776: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st194; -tr776: +tr777: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st194; -tr778: +tr779: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st194; @@ -27939,17 +28468,17 @@ case 194: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr770; - case 32: goto tr770; - case 40: goto tr771; - case 41: goto tr772; - case 2058: goto tr779; - case 2107: goto tr780; + case 9: goto tr771; + case 32: goto tr771; + case 40: goto tr772; + case 41: goto tr773; + case 2058: goto tr780; + case 2107: goto tr781; } if ( 48 <= _widec && _widec <= 57 ) - goto tr781; + goto tr782; goto tr27; -tr782: +tr783: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -27961,11 +28490,11 @@ tr782: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st195; -tr781: +tr782: { s->number64_tmp = s->number64; } @@ -27983,17 +28512,17 @@ tr781: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st195; -tr791: +tr792: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -28013,7 +28542,7 @@ tr791: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st195; @@ -28022,53 +28551,53 @@ st195: goto _test_eof195; case 195: switch( (*p) ) { - case 68: goto tr783; - case 72: goto tr784; - case 77: goto tr785; + case 68: goto tr784; + case 72: goto tr785; + case 77: goto tr786; case 83: goto st196; - case 87: goto tr787; - case 100: goto tr783; - case 104: goto tr784; - case 109: goto tr785; + case 87: goto tr788; + case 100: goto tr784; + case 104: goto tr785; + case 109: goto tr786; case 115: goto st196; - case 119: goto tr787; + case 119: goto tr788; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr782; + goto tr783; goto tr27; -tr783: +tr784: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st196; -tr784: +tr785: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st196; -tr785: +tr786: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st196; -tr787: +tr788: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st196; @@ -28089,29 +28618,29 @@ case 196: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr788; - case 32: goto tr788; - case 40: goto tr789; - case 41: goto tr790; - case 2058: goto tr792; - case 2107: goto tr793; + case 9: goto tr789; + case 32: goto tr789; + case 40: goto tr790; + case 41: goto tr791; + case 2058: goto tr793; + case 2107: goto tr794; } if ( 48 <= _widec && _widec <= 57 ) - goto tr791; + goto tr792; goto tr27; -tr769: +tr770: { s->buffer_length = 0; } goto st197; -tr794: +tr795: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st197; -tr745: +tr746: { s->r_class = KNOT_CLASS_IN; } @@ -28142,16 +28671,16 @@ case 197: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr795; + goto tr796; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr794; + goto tr795; goto tr39; tr24: { s->buffer_length = 0; } goto st198; -tr4197: +tr4226: { s->buffer[0] = 0; s->buffer_length = 0; @@ -28160,14 +28689,14 @@ tr4197: s->buffer_length = 0; } goto st198; -tr796: +tr797: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st198; -tr4263: +tr4292: { NOERR; } @@ -28184,14 +28713,14 @@ st198: goto _test_eof198; case 198: if ( (*p) == 10 ) - goto tr797; - goto tr796; -tr738: + goto tr798; + goto tr797; +tr739: { s->line_counter++; } - goto st1495; -tr1043: + goto st1507; +tr1055: { s->buffer[s->buffer_length++] = 0; @@ -28201,15 +28730,15 @@ tr1043: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1495; goto _out;} + {p++; cs = 1507; goto _out;} } } } { s->line_counter++; } - goto st1495; -tr932: + goto st1507; +tr933: { s->buffer[s->buffer_length++] = 0; @@ -28219,7 +28748,7 @@ tr932: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1495; goto _out;} + {p++; cs = 1507; goto _out;} } } } @@ -28229,7 +28758,7 @@ tr932: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -28242,23 +28771,23 @@ tr932: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1495; goto _out;} + {p++; cs = 1507; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1495; goto _out;} + p--; {p++; cs = 1507; goto _out;} } } - goto st1495; -tr929: + goto st1507; +tr930: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -28271,16 +28800,16 @@ tr929: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1495; goto _out;} + {p++; cs = 1507; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1495; goto _out;} + p--; {p++; cs = 1507; goto _out;} } } - goto st1495; -tr924: + goto st1507; +tr925: { s->r_owner_length = s->dname_tmp_length; } @@ -28292,7 +28821,7 @@ tr924: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -28302,7 +28831,7 @@ tr924: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -28315,34 +28844,34 @@ tr924: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1495; goto _out;} + {p++; cs = 1507; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1495; goto _out;} + p--; {p++; cs = 1507; goto _out;} } } - goto st1495; -tr4234: + goto st1507; +tr4263: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1495; -st1495: + goto st1507; +st1507: if ( ++p == pe ) - goto _test_eof1495; -case 1495: + goto _test_eof1507; +case 1507: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28356,68 +28885,68 @@ case 1495: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4213; - case 32: goto tr4213; + case 9: goto tr4242; + case 32: goto tr4242; case 36: goto st199; - case 40: goto tr4214; - case 41: goto tr4215; - case 42: goto tr4195; - case 65: goto tr4238; - case 67: goto tr4239; - case 68: goto tr4240; - case 69: goto tr4241; - case 72: goto tr4242; - case 73: goto tr4243; - case 75: goto tr4244; - case 76: goto tr4245; - case 77: goto tr4246; - case 78: goto tr4247; - case 79: goto tr4248; - case 80: goto tr4249; - case 82: goto tr4250; - case 83: goto tr4251; - case 84: goto tr4252; - case 85: goto tr4253; - case 87: goto tr4254; - case 90: goto tr4255; - case 92: goto tr4195; - case 95: goto tr4195; - case 97: goto tr4238; - case 99: goto tr4239; - case 100: goto tr4240; - case 101: goto tr4241; - case 104: goto tr4242; - case 105: goto tr4243; - case 107: goto tr4244; - case 108: goto tr4245; - case 109: goto tr4246; - case 110: goto tr4247; - case 111: goto tr4248; - case 112: goto tr4249; - case 114: goto tr4250; - case 115: goto tr4251; - case 116: goto tr4252; - case 117: goto tr4253; - case 119: goto tr4254; - case 122: goto tr4255; - case 1802: goto tr4196; - case 1851: goto tr4197; - case 2058: goto tr4234; - case 2107: goto tr4235; + case 40: goto tr4243; + case 41: goto tr4244; + case 42: goto tr4224; + case 65: goto tr4267; + case 67: goto tr4268; + case 68: goto tr4269; + case 69: goto tr4270; + case 72: goto tr4271; + case 73: goto tr4272; + case 75: goto tr4273; + case 76: goto tr4274; + case 77: goto tr4275; + case 78: goto tr4276; + case 79: goto tr4277; + case 80: goto tr4278; + case 82: goto tr4279; + case 83: goto tr4280; + case 84: goto tr4281; + case 85: goto tr4282; + case 87: goto tr4283; + case 90: goto tr4284; + case 92: goto tr4224; + case 95: goto tr4224; + case 97: goto tr4267; + case 99: goto tr4268; + case 100: goto tr4269; + case 101: goto tr4270; + case 104: goto tr4271; + case 105: goto tr4272; + case 107: goto tr4273; + case 108: goto tr4274; + case 109: goto tr4275; + case 110: goto tr4276; + case 111: goto tr4277; + case 112: goto tr4278; + case 114: goto tr4279; + case 115: goto tr4280; + case 116: goto tr4281; + case 117: goto tr4282; + case 119: goto tr4283; + case 122: goto tr4284; + case 1802: goto tr4225; + case 1851: goto tr4226; + case 2058: goto tr4263; + case 2107: goto tr4264; } if ( _widec < 48 ) { if ( 45 <= _widec && _widec <= 47 ) - goto tr4195; + goto tr4224; } else if ( _widec > 57 ) { if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4195; + goto tr4224; } else if ( _widec >= 64 ) - goto tr4195; + goto tr4224; } else - goto tr4237; - goto tr4236; -tr4258: + goto tr4266; + goto tr4265; +tr4287: { NOERR; } @@ -28427,15 +28956,15 @@ st199: goto _test_eof199; case 199: switch( (*p) ) { - case 73: goto tr799; - case 79: goto tr800; - case 84: goto tr801; - case 105: goto tr799; - case 111: goto tr800; - case 116: goto tr801; + case 73: goto tr800; + case 79: goto tr801; + case 84: goto tr802; + case 105: goto tr800; + case 111: goto tr801; + case 116: goto tr802; } - goto tr798; -tr799: + goto tr799; +tr800: { ERR(ZS_OK); } @@ -28448,7 +28977,7 @@ case 200: case 78: goto st201; case 110: goto st201; } - goto tr798; + goto tr799; st201: if ( ++p == pe ) goto _test_eof201; @@ -28457,7 +28986,7 @@ case 201: case 67: goto st202; case 99: goto st202; } - goto tr798; + goto tr799; st202: if ( ++p == pe ) goto _test_eof202; @@ -28466,7 +28995,7 @@ case 202: case 76: goto st203; case 108: goto st203; } - goto tr798; + goto tr799; st203: if ( ++p == pe ) goto _test_eof203; @@ -28475,7 +29004,7 @@ case 203: case 85: goto st204; case 117: goto st204; } - goto tr798; + goto tr799; st204: if ( ++p == pe ) goto _test_eof204; @@ -28484,7 +29013,7 @@ case 204: case 68: goto st205; case 100: goto st205; } - goto tr798; + goto tr799; st205: if ( ++p == pe ) goto _test_eof205; @@ -28493,34 +29022,34 @@ case 205: case 69: goto st206; case 101: goto st206; } - goto tr798; + goto tr799; st206: if ( ++p == pe ) goto _test_eof206; case 206: switch( (*p) ) { - case 32: goto tr808; - case 59: goto tr808; + case 32: goto tr809; + case 59: goto tr809; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr808; + goto tr809; } else if ( (*p) >= 9 ) - goto tr808; - goto tr798; -tr808: - { p--; {stack[top++] = 1496;goto st370;} } - goto st1496; -tr910: - { p--; {stack[top++] = 1496;goto st358;} } - goto st1496; -tr913: - { p--; {stack[top++] = 1496;goto st349;} } - goto st1496; -st1496: + goto tr809; + goto tr799; +tr809: + { p--; {stack[top++] = 1508;goto st374;} } + goto st1508; +tr911: + { p--; {stack[top++] = 1508;goto st362;} } + goto st1508; +tr914: + { p--; {stack[top++] = 1508;goto st353;} } + goto st1508; +st1508: if ( ++p == pe ) - goto _test_eof1496; -case 1496: + goto _test_eof1508; +case 1508: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28534,36 +29063,36 @@ case 1496: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4257; - case 32: goto tr4257; - case 36: goto tr4258; - case 40: goto tr4259; - case 41: goto tr4260; - case 42: goto tr4261; - case 92: goto tr4261; - case 95: goto tr4261; - case 1802: goto tr4262; - case 1851: goto tr4263; - case 2058: goto tr4264; - case 2107: goto tr4265; + case 9: goto tr4286; + case 32: goto tr4286; + case 36: goto tr4287; + case 40: goto tr4288; + case 41: goto tr4289; + case 42: goto tr4290; + case 92: goto tr4290; + case 95: goto tr4290; + case 1802: goto tr4291; + case 1851: goto tr4292; + case 2058: goto tr4293; + case 2107: goto tr4294; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4261; + goto tr4290; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4261; + goto tr4290; } else - goto tr4261; - goto tr4256; -tr4195: + goto tr4290; + goto tr4285; +tr4224: { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 207;goto st327;} } + { p--; {stack[top++] = 207;goto st331;} } goto st207; -tr4261: +tr4290: { NOERR; } @@ -28571,7 +29100,7 @@ tr4261: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 207;goto st327;} } + { p--; {stack[top++] = 207;goto st331;} } goto st207; st207: if ( ++p == pe ) @@ -28590,38 +29119,38 @@ case 207: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; - case 2058: goto tr813; - case 2107: goto tr814; - } - goto tr809; -tr816: + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; + case 2058: goto tr814; + case 2107: goto tr815; + } + goto tr810; +tr817: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st208; -tr817: +tr818: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st208; -tr818: +tr819: { s->line_counter++; } goto st208; -tr822: +tr823: { s->buffer[s->buffer_length++] = 0; @@ -28639,36 +29168,36 @@ tr822: s->line_counter++; } goto st208; -tr810: +tr811: { s->r_owner_length = s->dname_tmp_length; } goto st208; -tr811: +tr812: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st208; -tr812: +tr813: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st208; -tr813: +tr814: { s->r_owner_length = s->dname_tmp_length; } @@ -28695,8 +29224,8 @@ case 208: switch( _widec ) { case 9: goto st208; case 32: goto st208; - case 40: goto tr816; - case 41: goto tr817; + case 40: goto tr817; + case 41: goto tr818; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -28733,25 +29262,25 @@ case 208: case 117: goto tr20; case 119: goto tr21; case 122: goto tr22; - case 2058: goto tr818; - case 2107: goto tr819; + case 2058: goto tr819; + case 2107: goto tr820; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; - goto tr685; -tr819: + goto tr686; +tr820: { s->buffer_length = 0; } goto st209; -tr820: +tr821: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st209; -tr814: +tr815: { s->r_owner_length = s->dname_tmp_length; } @@ -28782,16 +29311,16 @@ case 209: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr822; + goto tr823; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr820; + goto tr821; goto st0; tr25: { s->line_counter++; } - goto st1497; -tr1041: + goto st1509; +tr1053: { s->buffer[s->buffer_length++] = 0; @@ -28801,15 +29330,15 @@ tr1041: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1497; goto _out;} + {p++; cs = 1509; goto _out;} } } } { s->line_counter++; } - goto st1497; -tr887: + goto st1509; +tr888: { s->buffer[s->buffer_length++] = 0; @@ -28819,7 +29348,7 @@ tr887: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1497; goto _out;} + {p++; cs = 1509; goto _out;} } } } @@ -28829,7 +29358,7 @@ tr887: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -28842,23 +29371,23 @@ tr887: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1497; goto _out;} + {p++; cs = 1509; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1497; goto _out;} + p--; {p++; cs = 1509; goto _out;} } } - goto st1497; -tr884: + goto st1509; +tr885: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -28871,16 +29400,16 @@ tr884: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1497; goto _out;} + {p++; cs = 1509; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1497; goto _out;} + p--; {p++; cs = 1509; goto _out;} } } - goto st1497; -tr918: + goto st1509; +tr919: { s->r_owner_length = s->dname_tmp_length; } @@ -28894,7 +29423,7 @@ tr918: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -28907,16 +29436,16 @@ tr918: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1497; goto _out;} + {p++; cs = 1509; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1497; goto _out;} + p--; {p++; cs = 1509; goto _out;} } } - goto st1497; -tr955: + goto st1509; +tr956: { s->line_counter++; } @@ -28927,7 +29456,7 @@ tr955: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -28940,16 +29469,16 @@ tr955: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1497; goto _out;} + {p++; cs = 1509; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1497; goto _out;} + p--; {p++; cs = 1509; goto _out;} } } - goto st1497; -tr958: + goto st1509; +tr959: { s->buffer[s->buffer_length++] = 0; @@ -28959,7 +29488,7 @@ tr958: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1497; goto _out;} + {p++; cs = 1509; goto _out;} } } } @@ -28973,7 +29502,7 @@ tr958: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -28986,20 +29515,20 @@ tr958: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1497; goto _out;} + {p++; cs = 1509; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1497; goto _out;} + p--; {p++; cs = 1509; goto _out;} } } - goto st1497; -tr4198: + goto st1509; +tr4227: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -29009,30 +29538,30 @@ tr4198: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1497; -tr4268: + goto st1509; +tr4297: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1497; -tr4264: + goto st1509; +tr4293: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -29042,8 +29571,8 @@ tr4264: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1497; -tr4273: + goto st1509; +tr4302: { s->buffer[0] = 0; s->buffer_length = 0; @@ -29051,7 +29580,7 @@ tr4273: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -29064,12 +29593,12 @@ tr4273: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1497; goto _out;} + {p++; cs = 1509; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1497; goto _out;} + p--; {p++; cs = 1509; goto _out;} } } { @@ -29078,11 +29607,11 @@ tr4273: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1497; -tr4300: + goto st1509; +tr4329: { s->line_counter++; } @@ -29093,7 +29622,7 @@ tr4300: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -29106,25 +29635,25 @@ tr4300: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1497; goto _out;} + {p++; cs = 1509; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1497; goto _out;} + p--; {p++; cs = 1509; goto _out;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1497; -st1497: + goto st1509; +st1509: if ( ++p == pe ) - goto _test_eof1497; -case 1497: + goto _test_eof1509; +case 1509: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29138,68 +29667,68 @@ case 1497: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4191; - case 32: goto tr4191; + case 9: goto tr4220; + case 32: goto tr4220; case 36: goto st199; - case 40: goto tr4266; - case 41: goto tr4267; - case 42: goto tr4195; - case 65: goto tr4238; - case 67: goto tr4239; - case 68: goto tr4240; - case 69: goto tr4241; - case 72: goto tr4242; - case 73: goto tr4243; - case 75: goto tr4244; - case 76: goto tr4245; - case 77: goto tr4246; - case 78: goto tr4247; - case 79: goto tr4248; - case 80: goto tr4249; - case 82: goto tr4250; - case 83: goto tr4251; - case 84: goto tr4252; - case 85: goto tr4253; - case 87: goto tr4254; - case 90: goto tr4255; - case 92: goto tr4195; - case 95: goto tr4195; - case 97: goto tr4238; - case 99: goto tr4239; - case 100: goto tr4240; - case 101: goto tr4241; - case 104: goto tr4242; - case 105: goto tr4243; - case 107: goto tr4244; - case 108: goto tr4245; - case 109: goto tr4246; - case 110: goto tr4247; - case 111: goto tr4248; - case 112: goto tr4249; - case 114: goto tr4250; - case 115: goto tr4251; - case 116: goto tr4252; - case 117: goto tr4253; - case 119: goto tr4254; - case 122: goto tr4255; - case 1802: goto tr4196; - case 1851: goto tr4197; - case 2058: goto tr4268; - case 2107: goto tr4269; + case 40: goto tr4295; + case 41: goto tr4296; + case 42: goto tr4224; + case 65: goto tr4267; + case 67: goto tr4268; + case 68: goto tr4269; + case 69: goto tr4270; + case 72: goto tr4271; + case 73: goto tr4272; + case 75: goto tr4273; + case 76: goto tr4274; + case 77: goto tr4275; + case 78: goto tr4276; + case 79: goto tr4277; + case 80: goto tr4278; + case 82: goto tr4279; + case 83: goto tr4280; + case 84: goto tr4281; + case 85: goto tr4282; + case 87: goto tr4283; + case 90: goto tr4284; + case 92: goto tr4224; + case 95: goto tr4224; + case 97: goto tr4267; + case 99: goto tr4268; + case 100: goto tr4269; + case 101: goto tr4270; + case 104: goto tr4271; + case 105: goto tr4272; + case 107: goto tr4273; + case 108: goto tr4274; + case 109: goto tr4275; + case 110: goto tr4276; + case 111: goto tr4277; + case 112: goto tr4278; + case 114: goto tr4279; + case 115: goto tr4280; + case 116: goto tr4281; + case 117: goto tr4282; + case 119: goto tr4283; + case 122: goto tr4284; + case 1802: goto tr4225; + case 1851: goto tr4226; + case 2058: goto tr4297; + case 2107: goto tr4298; } if ( _widec < 48 ) { if ( 45 <= _widec && _widec <= 47 ) - goto tr4195; + goto tr4224; } else if ( _widec > 57 ) { if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4195; + goto tr4224; } else if ( _widec >= 64 ) - goto tr4195; + goto tr4224; } else - goto tr4237; - goto tr4236; -tr4237: + goto tr4266; + goto tr4265; +tr4266: { s->number64 = 0; } @@ -29214,14 +29743,14 @@ tr4237: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 210;goto st327;} } + { p--; {stack[top++] = 210;goto st331;} } goto st210; st210: if ( ++p == pe ) @@ -29240,10 +29769,10 @@ case 210: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr824; - case 32: goto tr824; - case 40: goto tr825; - case 41: goto tr826; + case 9: goto tr825; + case 32: goto tr825; + case 40: goto tr826; + case 41: goto tr827; case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; @@ -29254,36 +29783,36 @@ case 210: case 109: goto tr34; case 115: goto st213; case 119: goto tr36; - case 2058: goto tr827; - case 2107: goto tr828; + case 2058: goto tr828; + case 2107: goto tr829; } if ( 48 <= _widec && _widec <= 57 ) goto tr31; - goto tr823; -tr830: + goto tr824; +tr831: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st211; -tr831: +tr832: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st211; -tr832: +tr833: { s->line_counter++; } goto st211; -tr835: +tr836: { s->buffer[s->buffer_length++] = 0; @@ -29301,7 +29830,7 @@ tr835: s->line_counter++; } goto st211; -tr824: +tr825: { s->r_owner_length = s->dname_tmp_length; } @@ -29310,18 +29839,18 @@ tr824: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st211; -tr825: +tr826: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -29330,18 +29859,18 @@ tr825: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st211; -tr826: +tr827: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -29350,11 +29879,11 @@ tr826: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st211; -tr827: +tr828: { s->r_owner_length = s->dname_tmp_length; } @@ -29366,7 +29895,7 @@ tr827: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st211; @@ -29389,8 +29918,8 @@ case 211: switch( _widec ) { case 9: goto st211; case 32: goto st211; - case 40: goto tr830; - case 41: goto tr831; + case 40: goto tr831; + case 41: goto tr832; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -29427,25 +29956,25 @@ case 211: case 117: goto tr20; case 119: goto tr21; case 122: goto tr22; - case 2058: goto tr832; - case 2107: goto tr833; + case 2058: goto tr833; + case 2107: goto tr834; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; - goto tr685; -tr833: + goto tr686; +tr834: { s->buffer_length = 0; } goto st212; -tr834: +tr835: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st212; -tr828: +tr829: { s->r_owner_length = s->dname_tmp_length; } @@ -29457,7 +29986,7 @@ tr828: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st212; @@ -29484,16 +30013,16 @@ case 212: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr835; + goto tr836; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr834; + goto tr835; goto tr39; tr32: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st213; @@ -29502,7 +30031,7 @@ tr33: s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st213; @@ -29511,7 +30040,7 @@ tr34: s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st213; @@ -29520,7 +30049,7 @@ tr36: s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st213; @@ -29549,9 +30078,9 @@ case 213: case 2107: goto tr38; } if ( 48 <= _widec && _widec <= 57 ) - goto tr836; + goto tr837; goto tr27; -tr837: +tr838: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -29563,11 +30092,11 @@ tr837: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st214; -tr836: +tr837: { s->number64_tmp = s->number64; } @@ -29585,17 +30114,17 @@ tr836: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st214; -tr846: +tr847: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -29615,7 +30144,7 @@ tr846: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st214; @@ -29624,53 +30153,53 @@ st214: goto _test_eof214; case 214: switch( (*p) ) { - case 68: goto tr838; - case 72: goto tr839; - case 77: goto tr840; + case 68: goto tr839; + case 72: goto tr840; + case 77: goto tr841; case 83: goto st215; - case 87: goto tr842; - case 100: goto tr838; - case 104: goto tr839; - case 109: goto tr840; + case 87: goto tr843; + case 100: goto tr839; + case 104: goto tr840; + case 109: goto tr841; case 115: goto st215; - case 119: goto tr842; + case 119: goto tr843; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr837; + goto tr838; goto tr27; -tr838: +tr839: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st215; -tr839: +tr840: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st215; -tr840: +tr841: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st215; -tr842: +tr843: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } goto st215; @@ -29691,15 +30220,15 @@ case 215: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr843; - case 32: goto tr843; - case 40: goto tr844; - case 41: goto tr845; - case 2058: goto tr847; - case 2107: goto tr848; + case 9: goto tr844; + case 32: goto tr844; + case 40: goto tr845; + case 41: goto tr846; + case 2058: goto tr848; + case 2107: goto tr849; } if ( 48 <= _widec && _widec <= 57 ) - goto tr846; + goto tr847; goto tr27; tr62: { @@ -29712,27 +30241,27 @@ tr38: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } goto st216; -tr849: +tr850: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st216; -tr848: +tr849: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -29740,7 +30269,7 @@ tr848: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -29770,11 +30299,11 @@ case 216: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr850; + goto tr851; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr849; + goto tr850; goto tr39; -tr4216: +tr4245: { s->r_class = s->default_class; } @@ -29782,9 +30311,9 @@ tr4216: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 217;goto st327;} } + { p--; {stack[top++] = 217;goto st331;} } goto st217; -tr4238: +tr4267: { s->r_class = s->default_class; } @@ -29795,7 +30324,7 @@ tr4238: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 217;goto st327;} } + { p--; {stack[top++] = 217;goto st331;} } goto st217; st217: if ( ++p == pe ) @@ -29818,48 +30347,50 @@ case 217: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr852; - case 32: goto tr852; - case 40: goto tr853; - case 41: goto tr854; + case 9: goto tr853; + case 32: goto tr853; + case 40: goto tr854; + case 41: goto tr855; case 65: goto st283; case 70: goto st286; - case 80: goto st290; + case 76: goto st290; + case 80: goto st294; case 97: goto st283; case 102: goto st286; - case 112: goto st290; - case 3082: goto tr855; - case 3131: goto tr856; - case 3338: goto tr72; - case 3387: goto tr72; - case 3594: goto tr857; - case 3643: goto tr858; - } - goto tr851; -tr860: + case 108: goto st290; + case 112: goto st294; + case 3082: goto tr856; + case 3131: goto tr857; + case 3338: goto tr73; + case 3387: goto tr73; + case 3594: goto tr858; + case 3643: goto tr859; + } + goto tr852; +tr861: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st218; -tr861: +tr862: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st218; -tr862: +tr863: { s->line_counter++; } goto st218; -tr1027: +tr1039: { s->buffer[s->buffer_length++] = 0; @@ -29877,7 +30408,7 @@ tr1027: s->line_counter++; } goto st218; -tr852: +tr853: { s->r_owner_length = s->dname_tmp_length; } @@ -29886,14 +30417,14 @@ tr852: rdata_tail = s->r_data; } goto st218; -tr853: +tr854: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -29902,14 +30433,14 @@ tr853: rdata_tail = s->r_data; } goto st218; -tr854: +tr855: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -29918,7 +30449,7 @@ tr854: rdata_tail = s->r_data; } goto st218; -tr855: +tr856: { s->r_owner_length = s->dname_tmp_length; } @@ -29953,66 +30484,66 @@ case 218: switch( _widec ) { case 9: goto st218; case 32: goto st218; - case 40: goto tr860; - case 41: goto tr861; - case 58: goto tr75; - case 65: goto tr124; - case 67: goto tr125; - case 68: goto tr126; - case 69: goto tr127; - case 72: goto tr128; - case 73: goto tr129; - case 75: goto tr130; - case 76: goto tr131; - case 77: goto tr132; - case 78: goto tr133; - case 79: goto tr134; - case 80: goto tr135; - case 82: goto tr136; - case 83: goto tr137; - case 84: goto tr138; - case 85: goto tr139; - case 87: goto tr140; - case 90: goto tr141; - case 92: goto tr80; - case 97: goto tr124; - case 99: goto tr125; - case 100: goto tr126; - case 101: goto tr127; - case 104: goto tr128; - case 105: goto tr129; - case 107: goto tr130; - case 108: goto tr131; - case 109: goto tr132; - case 110: goto tr133; - case 111: goto tr134; - case 112: goto tr135; - case 114: goto tr136; - case 115: goto tr137; - case 116: goto tr138; - case 117: goto tr139; - case 119: goto tr140; - case 122: goto tr141; - case 3082: goto tr862; - case 3131: goto tr863; - case 3338: goto tr75; - case 3387: goto tr75; - case 3594: goto tr864; - case 3643: goto tr865; + case 40: goto tr861; + case 41: goto tr862; + case 58: goto tr76; + case 65: goto tr125; + case 67: goto tr126; + case 68: goto tr127; + case 69: goto tr128; + case 72: goto tr129; + case 73: goto tr130; + case 75: goto tr131; + case 76: goto tr132; + case 77: goto tr133; + case 78: goto tr134; + case 79: goto tr135; + case 80: goto tr136; + case 82: goto tr137; + case 83: goto tr138; + case 84: goto tr139; + case 85: goto tr140; + case 87: goto tr141; + case 90: goto tr142; + case 92: goto tr81; + case 97: goto tr125; + case 99: goto tr126; + case 100: goto tr127; + case 101: goto tr128; + case 104: goto tr129; + case 105: goto tr130; + case 107: goto tr131; + case 108: goto tr132; + case 109: goto tr133; + case 110: goto tr134; + case 111: goto tr135; + case 112: goto tr136; + case 114: goto tr137; + case 115: goto tr138; + case 116: goto tr139; + case 117: goto tr140; + case 119: goto tr141; + case 122: goto tr142; + case 3082: goto tr863; + case 3131: goto tr864; + case 3338: goto tr76; + case 3387: goto tr76; + case 3594: goto tr865; + case 3643: goto tr866; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 47 ) { if ( _widec > 57 ) { if ( 60 <= _widec ) - goto tr75; + goto tr76; } else if ( _widec >= 48 ) - goto tr123; + goto tr124; } else - goto tr75; - goto tr687; -tr124: + goto tr76; + goto tr688; +tr125: { s->r_class = s->default_class; } @@ -30023,92 +30554,93 @@ tr124: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 219;goto st1089;} + {stack[top++] = 219;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 219;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 219;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 219;goto st1093;} + {stack[top++] = 219;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 219;goto st1125;} + {stack[top++] = 219;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 219;goto st1130;} + {stack[top++] = 219;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 219;goto st1135;} + {stack[top++] = 219;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 219;goto st1140;} + {stack[top++] = 219;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 219;goto st1144;} + {stack[top++] = 219;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 219;goto st1146;} + {stack[top++] = 219;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 219;goto st1201;} + {stack[top++] = 219;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 219;goto st1212;} + {stack[top++] = 219;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 219;goto st1229;} + {stack[top++] = 219;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 219;goto st1240;} + {stack[top++] = 219;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 219;goto st1251;} + {stack[top++] = 219;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 219;goto st1264;} + {stack[top++] = 219;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 219;goto st1274;} + {stack[top++] = 219;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 219;goto st1313;} + {stack[top++] = 219;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 219;goto st1339;} + {stack[top++] = 219;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 219;goto st1342;} + {stack[top++] = 219;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 219;goto st1353;} + {stack[top++] = 219;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 219;goto st1355;} + {stack[top++] = 219;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 219;goto st1384;} + {stack[top++] = 219;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 219;goto st1397;} + {stack[top++] = 219;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 219;goto st1410;} + {stack[top++] = 219;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 219;goto st1416;} + {stack[top++] = 219;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 219;goto st1434;} + {stack[top++] = 219;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 219;goto st1429;} + {stack[top++] = 219;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 219;goto st1447;} + {stack[top++] = 219;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 219;goto st1453;} + {stack[top++] = 219;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 219;goto st1459;} + {stack[top++] = 219;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 219;goto st1467;} + {stack[top++] = 219;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 219;goto st1475;} + {stack[top++] = 219;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 219;goto st1481;} + {stack[top++] = 219;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st219; @@ -30133,45 +30665,47 @@ case 219: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr867; - case 32: goto tr867; - case 40: goto tr868; - case 41: goto tr869; + case 9: goto tr868; + case 32: goto tr868; + case 40: goto tr869; + case 41: goto tr870; case 65: goto st283; case 70: goto st286; - case 80: goto st290; + case 76: goto st290; + case 80: goto st294; case 97: goto st283; case 102: goto st286; - case 112: goto st290; - case 2826: goto tr89; - case 2875: goto tr90; - case 3082: goto tr870; - case 3131: goto tr871; - case 3338: goto tr872; - case 3387: goto tr873; - case 3594: goto tr874; - case 3643: goto tr875; - } - goto tr866; -tr877: + case 108: goto st290; + case 112: goto st294; + case 2826: goto tr90; + case 2875: goto tr91; + case 3082: goto tr871; + case 3131: goto tr872; + case 3338: goto tr873; + case 3387: goto tr874; + case 3594: goto tr875; + case 3643: goto tr876; + } + goto tr867; +tr878: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st220; -tr878: +tr879: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st220; -tr867: +tr868: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -30181,7 +30715,7 @@ tr867: s->buffer_length = 0; } goto st220; -tr868: +tr869: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -30189,7 +30723,7 @@ tr868: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -30198,7 +30732,7 @@ tr868: s->buffer_length = 0; } goto st220; -tr869: +tr870: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -30206,7 +30740,7 @@ tr869: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -30238,118 +30772,119 @@ case 220: switch( _widec ) { case 9: goto st220; case 32: goto st220; - case 40: goto tr877; - case 41: goto tr878; - case 92: goto tr80; - case 2826: goto tr95; - case 2875: goto tr96; - case 3082: goto tr879; - case 3131: goto tr113; - case 3338: goto tr114; - case 3387: goto tr115; - case 3594: goto tr880; - case 3643: goto tr116; + case 40: goto tr878; + case 41: goto tr879; + case 92: goto tr81; + case 2826: goto tr96; + case 2875: goto tr97; + case 3082: goto tr880; + case 3131: goto tr114; + case 3338: goto tr115; + case 3387: goto tr116; + case 3594: goto tr881; + case 3643: goto tr117; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr75; + goto tr76; } else - goto tr75; - goto tr85; -tr107: + goto tr76; + goto tr86; +tr108: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1498;goto st1089;} + {stack[top++] = 1510;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1498;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 1510;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1498;goto st1093;} + {stack[top++] = 1510;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1498;goto st1125;} + {stack[top++] = 1510;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1498;goto st1130;} + {stack[top++] = 1510;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1498;goto st1135;} + {stack[top++] = 1510;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1498;goto st1140;} + {stack[top++] = 1510;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1498;goto st1144;} + {stack[top++] = 1510;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1498;goto st1146;} + {stack[top++] = 1510;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1498;goto st1201;} + {stack[top++] = 1510;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1498;goto st1212;} + {stack[top++] = 1510;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1498;goto st1229;} + {stack[top++] = 1510;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 1498;goto st1240;} + {stack[top++] = 1510;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1498;goto st1251;} + {stack[top++] = 1510;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1498;goto st1264;} + {stack[top++] = 1510;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1498;goto st1274;} + {stack[top++] = 1510;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1498;goto st1313;} + {stack[top++] = 1510;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1498;goto st1339;} + {stack[top++] = 1510;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1498;goto st1342;} + {stack[top++] = 1510;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1498;goto st1353;} + {stack[top++] = 1510;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1498;goto st1355;} + {stack[top++] = 1510;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1498;goto st1384;} + {stack[top++] = 1510;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1498;goto st1397;} + {stack[top++] = 1510;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1498;goto st1410;} + {stack[top++] = 1510;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1498;goto st1416;} + {stack[top++] = 1510;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1498;goto st1434;} + {stack[top++] = 1510;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 1498;goto st1429;} + {stack[top++] = 1510;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1498;goto st1447;} + {stack[top++] = 1510;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1498;goto st1453;} + {stack[top++] = 1510;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 1498;goto st1459;} + {stack[top++] = 1510;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1498;goto st1467;} + {stack[top++] = 1510;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1498;goto st1475;} + {stack[top++] = 1510;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1498;goto st1481;} + {stack[top++] = 1510;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { @@ -30359,7 +30894,7 @@ tr107: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -30372,115 +30907,116 @@ tr107: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1498; goto _out;} + {p++; cs = 1510; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1498; goto _out;} + p--; {p++; cs = 1510; goto _out;} } } { s->line_counter++; } - goto st1498; -tr114: + goto st1510; +tr115: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1498;goto st1089;} + {stack[top++] = 1510;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1498;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 1510;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1498;goto st1093;} + {stack[top++] = 1510;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1498;goto st1125;} + {stack[top++] = 1510;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1498;goto st1130;} + {stack[top++] = 1510;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1498;goto st1135;} + {stack[top++] = 1510;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1498;goto st1140;} + {stack[top++] = 1510;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1498;goto st1144;} + {stack[top++] = 1510;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1498;goto st1146;} + {stack[top++] = 1510;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1498;goto st1201;} + {stack[top++] = 1510;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1498;goto st1212;} + {stack[top++] = 1510;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1498;goto st1229;} + {stack[top++] = 1510;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 1498;goto st1240;} + {stack[top++] = 1510;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1498;goto st1251;} + {stack[top++] = 1510;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1498;goto st1264;} + {stack[top++] = 1510;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1498;goto st1274;} + {stack[top++] = 1510;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1498;goto st1313;} + {stack[top++] = 1510;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1498;goto st1339;} + {stack[top++] = 1510;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1498;goto st1342;} + {stack[top++] = 1510;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1498;goto st1353;} + {stack[top++] = 1510;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1498;goto st1355;} + {stack[top++] = 1510;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1498;goto st1384;} + {stack[top++] = 1510;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1498;goto st1397;} + {stack[top++] = 1510;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1498;goto st1410;} + {stack[top++] = 1510;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1498;goto st1416;} + {stack[top++] = 1510;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1498;goto st1434;} + {stack[top++] = 1510;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 1498;goto st1429;} + {stack[top++] = 1510;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1498;goto st1447;} + {stack[top++] = 1510;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1498;goto st1453;} + {stack[top++] = 1510;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 1498;goto st1459;} + {stack[top++] = 1510;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1498;goto st1467;} + {stack[top++] = 1510;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1498;goto st1475;} + {stack[top++] = 1510;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1498;goto st1481;} + {stack[top++] = 1510;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -30493,116 +31029,117 @@ tr114: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1498; goto _out;} + {p++; cs = 1510; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1498; goto _out;} + p--; {p++; cs = 1510; goto _out;} } } { s->line_counter++; } - goto st1498; -tr144: + goto st1510; +tr145: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1498;goto st1089;} + {stack[top++] = 1510;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1498;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 1510;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1498;goto st1093;} + {stack[top++] = 1510;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1498;goto st1125;} + {stack[top++] = 1510;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1498;goto st1130;} + {stack[top++] = 1510;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1498;goto st1135;} + {stack[top++] = 1510;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1498;goto st1140;} + {stack[top++] = 1510;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1498;goto st1144;} + {stack[top++] = 1510;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1498;goto st1146;} + {stack[top++] = 1510;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1498;goto st1201;} + {stack[top++] = 1510;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1498;goto st1212;} + {stack[top++] = 1510;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1498;goto st1229;} + {stack[top++] = 1510;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 1498;goto st1240;} + {stack[top++] = 1510;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1498;goto st1251;} + {stack[top++] = 1510;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1498;goto st1264;} + {stack[top++] = 1510;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1498;goto st1274;} + {stack[top++] = 1510;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1498;goto st1313;} + {stack[top++] = 1510;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1498;goto st1339;} + {stack[top++] = 1510;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1498;goto st1342;} + {stack[top++] = 1510;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1498;goto st1353;} + {stack[top++] = 1510;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1498;goto st1355;} + {stack[top++] = 1510;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1498;goto st1384;} + {stack[top++] = 1510;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1498;goto st1397;} + {stack[top++] = 1510;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1498;goto st1410;} + {stack[top++] = 1510;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1498;goto st1416;} + {stack[top++] = 1510;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1498;goto st1434;} + {stack[top++] = 1510;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 1498;goto st1429;} + {stack[top++] = 1510;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1498;goto st1447;} + {stack[top++] = 1510;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1498;goto st1453;} + {stack[top++] = 1510;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 1498;goto st1459;} + {stack[top++] = 1510;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1498;goto st1467;} + {stack[top++] = 1510;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1498;goto st1475;} + {stack[top++] = 1510;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1498;goto st1481;} + {stack[top++] = 1510;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->line_counter++; } - goto st1498; -tr872: + goto st1510; +tr873: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -30611,92 +31148,93 @@ tr872: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1498;goto st1089;} + {stack[top++] = 1510;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1498;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 1510;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1498;goto st1093;} + {stack[top++] = 1510;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1498;goto st1125;} + {stack[top++] = 1510;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1498;goto st1130;} + {stack[top++] = 1510;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1498;goto st1135;} + {stack[top++] = 1510;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1498;goto st1140;} + {stack[top++] = 1510;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1498;goto st1144;} + {stack[top++] = 1510;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1498;goto st1146;} + {stack[top++] = 1510;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1498;goto st1201;} + {stack[top++] = 1510;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1498;goto st1212;} + {stack[top++] = 1510;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1498;goto st1229;} + {stack[top++] = 1510;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 1498;goto st1240;} + {stack[top++] = 1510;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1498;goto st1251;} + {stack[top++] = 1510;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1498;goto st1264;} + {stack[top++] = 1510;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1498;goto st1274;} + {stack[top++] = 1510;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1498;goto st1313;} + {stack[top++] = 1510;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1498;goto st1339;} + {stack[top++] = 1510;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1498;goto st1342;} + {stack[top++] = 1510;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1498;goto st1353;} + {stack[top++] = 1510;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1498;goto st1355;} + {stack[top++] = 1510;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1498;goto st1384;} + {stack[top++] = 1510;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1498;goto st1397;} + {stack[top++] = 1510;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1498;goto st1410;} + {stack[top++] = 1510;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1498;goto st1416;} + {stack[top++] = 1510;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1498;goto st1434;} + {stack[top++] = 1510;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 1498;goto st1429;} + {stack[top++] = 1510;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1498;goto st1447;} + {stack[top++] = 1510;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1498;goto st1453;} + {stack[top++] = 1510;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 1498;goto st1459;} + {stack[top++] = 1510;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1498;goto st1467;} + {stack[top++] = 1510;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1498;goto st1475;} + {stack[top++] = 1510;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1498;goto st1481;} + {stack[top++] = 1510;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { @@ -30706,7 +31244,7 @@ tr872: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -30719,109 +31257,110 @@ tr872: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1498; goto _out;} + {p++; cs = 1510; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1498; goto _out;} + p--; {p++; cs = 1510; goto _out;} } } { s->line_counter++; } - goto st1498; -tr4208: + goto st1510; +tr4237: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1498;goto st1089;} + {stack[top++] = 1510;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1498;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 1510;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1498;goto st1093;} + {stack[top++] = 1510;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1498;goto st1125;} + {stack[top++] = 1510;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1498;goto st1130;} + {stack[top++] = 1510;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1498;goto st1135;} + {stack[top++] = 1510;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1498;goto st1140;} + {stack[top++] = 1510;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1498;goto st1144;} + {stack[top++] = 1510;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1498;goto st1146;} + {stack[top++] = 1510;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1498;goto st1201;} + {stack[top++] = 1510;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1498;goto st1212;} + {stack[top++] = 1510;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1498;goto st1229;} + {stack[top++] = 1510;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 1498;goto st1240;} + {stack[top++] = 1510;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1498;goto st1251;} + {stack[top++] = 1510;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1498;goto st1264;} + {stack[top++] = 1510;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1498;goto st1274;} + {stack[top++] = 1510;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1498;goto st1313;} + {stack[top++] = 1510;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1498;goto st1339;} + {stack[top++] = 1510;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1498;goto st1342;} + {stack[top++] = 1510;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1498;goto st1353;} + {stack[top++] = 1510;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1498;goto st1355;} + {stack[top++] = 1510;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1498;goto st1384;} + {stack[top++] = 1510;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1498;goto st1397;} + {stack[top++] = 1510;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1498;goto st1410;} + {stack[top++] = 1510;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1498;goto st1416;} + {stack[top++] = 1510;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1498;goto st1434;} + {stack[top++] = 1510;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 1498;goto st1429;} + {stack[top++] = 1510;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1498;goto st1447;} + {stack[top++] = 1510;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1498;goto st1453;} + {stack[top++] = 1510;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 1498;goto st1459;} + {stack[top++] = 1510;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1498;goto st1467;} + {stack[top++] = 1510;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1498;goto st1475;} + {stack[top++] = 1510;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1498;goto st1481;} + {stack[top++] = 1510;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { @@ -30831,11 +31370,11 @@ tr4208: { s->line_counter++; } - goto st1498; -st1498: + goto st1510; +st1510: if ( ++p == pe ) - goto _test_eof1498; -case 1498: + goto _test_eof1510; +case 1510: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30849,57 +31388,57 @@ case 1498: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4270; - case 32: goto tr4270; + case 9: goto tr4299; + case 32: goto tr4299; case 36: goto st199; - case 40: goto tr4271; - case 41: goto tr4272; - case 42: goto tr4195; - case 92: goto tr4195; - case 95: goto tr4195; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr4273; - case 2107: goto tr4274; + case 40: goto tr4300; + case 41: goto tr4301; + case 42: goto tr4224; + case 92: goto tr4224; + case 95: goto tr4224; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr4302; + case 2107: goto tr4303; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4195; + goto tr4224; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4195; + goto tr4224; } else - goto tr4195; - goto tr914; -tr882: + goto tr4224; + goto tr915; +tr883: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st221; -tr883: +tr884: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st221; -tr952: +tr953: { s->buffer[0] = 0; s->buffer_length = 0; } goto st221; -tr953: +tr954: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -30908,11 +31447,11 @@ tr953: s->buffer_length = 0; } goto st221; -tr954: +tr955: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -30921,7 +31460,7 @@ tr954: s->buffer_length = 0; } goto st221; -tr915: +tr916: { s->r_owner_length = s->dname_tmp_length; } @@ -30930,14 +31469,14 @@ tr915: s->buffer_length = 0; } goto st221; -tr916: +tr917: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -30946,14 +31485,14 @@ tr916: s->buffer_length = 0; } goto st221; -tr917: +tr918: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -30962,7 +31501,7 @@ tr917: s->buffer_length = 0; } goto st221; -tr4270: +tr4299: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30970,11 +31509,11 @@ tr4270: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } goto st221; -tr4271: +tr4300: { s->buffer[0] = 0; s->buffer_length = 0; @@ -30982,18 +31521,18 @@ tr4271: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } goto st221; -tr4272: +tr4301: { s->buffer[0] = 0; s->buffer_length = 0; @@ -31001,14 +31540,14 @@ tr4272: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } goto st221; @@ -31031,8 +31570,8 @@ case 221: switch( _widec ) { case 9: goto st221; case 32: goto st221; - case 40: goto tr882; - case 41: goto tr883; + case 40: goto tr883; + case 41: goto tr884; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -31069,27 +31608,27 @@ case 221: case 117: goto tr20; case 119: goto tr21; case 122: goto tr22; - case 1802: goto tr95; - case 1851: goto tr96; - case 2058: goto tr884; - case 2107: goto tr885; + case 1802: goto tr96; + case 1851: goto tr97; + case 2058: goto tr885; + case 2107: goto tr886; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; goto tr0; -tr885: +tr886: { s->buffer_length = 0; } goto st222; -tr886: +tr887: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st222; -tr956: +tr957: { s->buffer_length = 0; } @@ -31098,7 +31637,7 @@ tr956: s->buffer_length = 0; } goto st222; -tr961: +tr962: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -31112,7 +31651,7 @@ tr961: s->buffer_length = 0; } goto st222; -tr965: +tr966: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -31122,7 +31661,7 @@ tr965: s->buffer_length = 0; } goto st222; -tr919: +tr920: { s->r_owner_length = s->dname_tmp_length; } @@ -31134,7 +31673,7 @@ tr919: s->buffer_length = 0; } goto st222; -tr4274: +tr4303: { s->buffer[0] = 0; s->buffer_length = 0; @@ -31145,7 +31684,7 @@ tr4274: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } goto st222; @@ -31172,106 +31711,107 @@ case 222: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr98; - case 2058: goto tr887; + case 1802: goto tr99; + case 2058: goto tr888; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr886; + goto tr887; } else if ( _widec >= 1664 ) - goto tr97; - goto tr91; -tr108: + goto tr98; + goto tr92; +tr109: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 223;goto st1089;} + {stack[top++] = 223;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 223;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 223;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 223;goto st1093;} + {stack[top++] = 223;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 223;goto st1125;} + {stack[top++] = 223;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 223;goto st1130;} + {stack[top++] = 223;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 223;goto st1135;} + {stack[top++] = 223;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 223;goto st1140;} + {stack[top++] = 223;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 223;goto st1144;} + {stack[top++] = 223;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 223;goto st1146;} + {stack[top++] = 223;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 223;goto st1201;} + {stack[top++] = 223;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 223;goto st1212;} + {stack[top++] = 223;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 223;goto st1229;} + {stack[top++] = 223;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 223;goto st1240;} + {stack[top++] = 223;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 223;goto st1251;} + {stack[top++] = 223;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 223;goto st1264;} + {stack[top++] = 223;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 223;goto st1274;} + {stack[top++] = 223;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 223;goto st1313;} + {stack[top++] = 223;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 223;goto st1339;} + {stack[top++] = 223;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 223;goto st1342;} + {stack[top++] = 223;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 223;goto st1353;} + {stack[top++] = 223;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 223;goto st1355;} + {stack[top++] = 223;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 223;goto st1384;} + {stack[top++] = 223;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 223;goto st1397;} + {stack[top++] = 223;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 223;goto st1410;} + {stack[top++] = 223;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 223;goto st1416;} + {stack[top++] = 223;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 223;goto st1434;} + {stack[top++] = 223;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 223;goto st1429;} + {stack[top++] = 223;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 223;goto st1447;} + {stack[top++] = 223;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 223;goto st1453;} + {stack[top++] = 223;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 223;goto st1459;} + {stack[top++] = 223;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 223;goto st1467;} + {stack[top++] = 223;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 223;goto st1475;} + {stack[top++] = 223;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 223;goto st1481;} + {stack[top++] = 223;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { @@ -31282,104 +31822,105 @@ tr108: s->buffer_length = 0; } goto st223; -tr115: +tr116: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 223;goto st1089;} + {stack[top++] = 223;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 223;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 223;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 223;goto st1093;} + {stack[top++] = 223;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 223;goto st1125;} + {stack[top++] = 223;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 223;goto st1130;} + {stack[top++] = 223;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 223;goto st1135;} + {stack[top++] = 223;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 223;goto st1140;} + {stack[top++] = 223;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 223;goto st1144;} + {stack[top++] = 223;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 223;goto st1146;} + {stack[top++] = 223;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 223;goto st1201;} + {stack[top++] = 223;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 223;goto st1212;} + {stack[top++] = 223;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 223;goto st1229;} + {stack[top++] = 223;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 223;goto st1240;} + {stack[top++] = 223;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 223;goto st1251;} + {stack[top++] = 223;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 223;goto st1264;} + {stack[top++] = 223;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 223;goto st1274;} + {stack[top++] = 223;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 223;goto st1313;} + {stack[top++] = 223;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 223;goto st1339;} + {stack[top++] = 223;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 223;goto st1342;} + {stack[top++] = 223;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 223;goto st1353;} + {stack[top++] = 223;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 223;goto st1355;} + {stack[top++] = 223;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 223;goto st1384;} + {stack[top++] = 223;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 223;goto st1397;} + {stack[top++] = 223;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 223;goto st1410;} + {stack[top++] = 223;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 223;goto st1416;} + {stack[top++] = 223;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 223;goto st1434;} + {stack[top++] = 223;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 223;goto st1429;} + {stack[top++] = 223;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 223;goto st1447;} + {stack[top++] = 223;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 223;goto st1453;} + {stack[top++] = 223;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 223;goto st1459;} + {stack[top++] = 223;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 223;goto st1467;} + {stack[top++] = 223;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 223;goto st1475;} + {stack[top++] = 223;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 223;goto st1481;} + {stack[top++] = 223;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->buffer_length = 0; } goto st223; -tr873: +tr874: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -31388,92 +31929,93 @@ tr873: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 223;goto st1089;} + {stack[top++] = 223;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 223;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 223;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 223;goto st1093;} + {stack[top++] = 223;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 223;goto st1125;} + {stack[top++] = 223;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 223;goto st1130;} + {stack[top++] = 223;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 223;goto st1135;} + {stack[top++] = 223;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 223;goto st1140;} + {stack[top++] = 223;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 223;goto st1144;} + {stack[top++] = 223;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 223;goto st1146;} + {stack[top++] = 223;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 223;goto st1201;} + {stack[top++] = 223;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 223;goto st1212;} + {stack[top++] = 223;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 223;goto st1229;} + {stack[top++] = 223;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 223;goto st1240;} + {stack[top++] = 223;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 223;goto st1251;} + {stack[top++] = 223;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 223;goto st1264;} + {stack[top++] = 223;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 223;goto st1274;} + {stack[top++] = 223;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 223;goto st1313;} + {stack[top++] = 223;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 223;goto st1339;} + {stack[top++] = 223;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 223;goto st1342;} + {stack[top++] = 223;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 223;goto st1353;} + {stack[top++] = 223;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 223;goto st1355;} + {stack[top++] = 223;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 223;goto st1384;} + {stack[top++] = 223;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 223;goto st1397;} + {stack[top++] = 223;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 223;goto st1410;} + {stack[top++] = 223;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 223;goto st1416;} + {stack[top++] = 223;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 223;goto st1434;} + {stack[top++] = 223;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 223;goto st1429;} + {stack[top++] = 223;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 223;goto st1447;} + {stack[top++] = 223;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 223;goto st1453;} + {stack[top++] = 223;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 223;goto st1459;} + {stack[top++] = 223;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 223;goto st1467;} + {stack[top++] = 223;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 223;goto st1475;} + {stack[top++] = 223;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 223;goto st1481;} + {stack[top++] = 223;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { @@ -31501,32 +32043,32 @@ case 223: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr888; - case 32: goto tr888; - case 40: goto tr889; - case 41: goto tr890; - case 1802: goto tr891; - case 1851: goto tr892; - case 2058: goto tr891; - case 2107: goto tr892; + case 9: goto tr889; + case 32: goto tr889; + case 40: goto tr890; + case 41: goto tr891; + case 1802: goto tr892; + case 1851: goto tr893; + case 2058: goto tr892; + case 2107: goto tr893; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr97; + goto tr98; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr97; + goto tr98; } else - goto tr97; - goto tr85; -tr893: + goto tr98; + goto tr86; +tr894: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st224; -tr888: +tr889: { s->buffer[0] = 0; s->buffer_length = 0; @@ -31537,7 +32079,7 @@ tr888: } } goto st224; -tr889: +tr890: { s->buffer[0] = 0; s->buffer_length = 0; @@ -31545,7 +32087,7 @@ tr889: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -31555,7 +32097,7 @@ tr889: } } goto st224; -tr890: +tr891: { s->buffer[0] = 0; s->buffer_length = 0; @@ -31563,7 +32105,7 @@ tr890: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -31573,11 +32115,11 @@ tr890: } } goto st224; -tr894: +tr895: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -31587,11 +32129,11 @@ tr894: } } goto st224; -tr895: +tr896: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -31618,25 +32160,25 @@ case 224: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr893; - case 32: goto tr893; - case 40: goto tr894; - case 41: goto tr895; - case 1802: goto tr98; - case 1851: goto tr896; - case 2058: goto tr98; - case 2107: goto tr896; + case 9: goto tr894; + case 32: goto tr894; + case 40: goto tr895; + case 41: goto tr896; + case 1802: goto tr99; + case 1851: goto tr897; + case 2058: goto tr99; + case 2107: goto tr897; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr97; + goto tr98; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr97; + goto tr98; } else - goto tr97; - goto tr91; -tr874: + goto tr98; + goto tr92; +tr875: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -31648,92 +32190,93 @@ tr874: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1499;goto st1089;} + {stack[top++] = 1511;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1499;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 1511;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1499;goto st1093;} + {stack[top++] = 1511;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1499;goto st1125;} + {stack[top++] = 1511;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1499;goto st1130;} + {stack[top++] = 1511;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1499;goto st1135;} + {stack[top++] = 1511;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1499;goto st1140;} + {stack[top++] = 1511;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1499;goto st1144;} + {stack[top++] = 1511;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1499;goto st1146;} + {stack[top++] = 1511;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1499;goto st1201;} + {stack[top++] = 1511;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1499;goto st1212;} + {stack[top++] = 1511;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1499;goto st1229;} + {stack[top++] = 1511;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 1499;goto st1240;} + {stack[top++] = 1511;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1499;goto st1251;} + {stack[top++] = 1511;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1499;goto st1264;} + {stack[top++] = 1511;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1499;goto st1274;} + {stack[top++] = 1511;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1499;goto st1313;} + {stack[top++] = 1511;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1499;goto st1339;} + {stack[top++] = 1511;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1499;goto st1342;} + {stack[top++] = 1511;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1499;goto st1353;} + {stack[top++] = 1511;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1499;goto st1355;} + {stack[top++] = 1511;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1499;goto st1384;} + {stack[top++] = 1511;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1499;goto st1397;} + {stack[top++] = 1511;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1499;goto st1410;} + {stack[top++] = 1511;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1499;goto st1416;} + {stack[top++] = 1511;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1499;goto st1434;} + {stack[top++] = 1511;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 1499;goto st1429;} + {stack[top++] = 1511;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1499;goto st1447;} + {stack[top++] = 1511;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1499;goto st1453;} + {stack[top++] = 1511;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 1499;goto st1459;} + {stack[top++] = 1511;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1499;goto st1467;} + {stack[top++] = 1511;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1499;goto st1475;} + {stack[top++] = 1511;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1499;goto st1481;} + {stack[top++] = 1511;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { @@ -31743,7 +32286,7 @@ tr874: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -31756,16 +32299,16 @@ tr874: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1499; goto _out;} + {p++; cs = 1511; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1499; goto _out;} + p--; {p++; cs = 1511; goto _out;} } } - goto st1499; -tr880: + goto st1511; +tr881: { s->line_counter++; } @@ -31773,98 +32316,99 @@ tr880: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1499;goto st1089;} + {stack[top++] = 1511;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1499;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 1511;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1499;goto st1093;} + {stack[top++] = 1511;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1499;goto st1125;} + {stack[top++] = 1511;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1499;goto st1130;} + {stack[top++] = 1511;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1499;goto st1135;} + {stack[top++] = 1511;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1499;goto st1140;} + {stack[top++] = 1511;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1499;goto st1144;} + {stack[top++] = 1511;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1499;goto st1146;} + {stack[top++] = 1511;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1499;goto st1201;} + {stack[top++] = 1511;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1499;goto st1212;} + {stack[top++] = 1511;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1499;goto st1229;} + {stack[top++] = 1511;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 1499;goto st1240;} + {stack[top++] = 1511;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1499;goto st1251;} + {stack[top++] = 1511;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1499;goto st1264;} + {stack[top++] = 1511;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1499;goto st1274;} + {stack[top++] = 1511;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1499;goto st1313;} + {stack[top++] = 1511;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1499;goto st1339;} + {stack[top++] = 1511;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1499;goto st1342;} + {stack[top++] = 1511;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1499;goto st1353;} + {stack[top++] = 1511;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1499;goto st1355;} + {stack[top++] = 1511;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1499;goto st1384;} + {stack[top++] = 1511;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1499;goto st1397;} + {stack[top++] = 1511;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1499;goto st1410;} + {stack[top++] = 1511;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1499;goto st1416;} + {stack[top++] = 1511;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1499;goto st1434;} + {stack[top++] = 1511;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 1499;goto st1429;} + {stack[top++] = 1511;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1499;goto st1447;} + {stack[top++] = 1511;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1499;goto st1453;} + {stack[top++] = 1511;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 1499;goto st1459;} + {stack[top++] = 1511;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1499;goto st1467;} + {stack[top++] = 1511;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1499;goto st1475;} + {stack[top++] = 1511;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1499;goto st1481;} + {stack[top++] = 1511;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -31877,19 +32421,19 @@ tr880: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1499; goto _out;} + {p++; cs = 1511; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1499; goto _out;} + p--; {p++; cs = 1511; goto _out;} } } - goto st1499; -st1499: + goto st1511; +st1511: if ( ++p == pe ) - goto _test_eof1499; -case 1499: + goto _test_eof1511; +case 1511: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31907,77 +32451,77 @@ case 1499: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4275; - case 32: goto tr4275; - case 36: goto tr4201; - case 40: goto tr4276; - case 41: goto tr4277; - case 42: goto tr4204; - case 58: goto tr75; - case 92: goto tr4205; - case 95: goto tr4204; - case 2826: goto tr89; - case 2875: goto tr90; - case 3082: goto tr4273; - case 3131: goto tr4278; - case 3338: goto tr107; - case 3387: goto tr108; - case 3594: goto tr4273; - case 3643: goto tr4279; + case 9: goto tr4304; + case 32: goto tr4304; + case 36: goto tr4230; + case 40: goto tr4305; + case 41: goto tr4306; + case 42: goto tr4233; + case 58: goto tr76; + case 92: goto tr4234; + case 95: goto tr4233; + case 2826: goto tr90; + case 2875: goto tr91; + case 3082: goto tr4302; + case 3131: goto tr4307; + case 3338: goto tr108; + case 3387: goto tr109; + case 3594: goto tr4302; + case 3643: goto tr4308; } if ( _widec < 60 ) { if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 44 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4204; + goto tr4233; } else - goto tr75; + goto tr76; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 90 ) - goto tr4204; + goto tr4233; } else if ( _widec > 96 ) { if ( _widec > 122 ) { if ( 123 <= _widec ) - goto tr75; + goto tr76; } else if ( _widec >= 97 ) - goto tr4204; + goto tr4233; } else - goto tr75; + goto tr76; } else - goto tr75; - goto tr914; -tr898: + goto tr76; + goto tr915; +tr899: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st225; -tr899: +tr900: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st225; -tr1028: +tr1040: { s->buffer[0] = 0; s->buffer_length = 0; } goto st225; -tr1029: +tr1041: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -31986,11 +32530,11 @@ tr1029: s->buffer_length = 0; } goto st225; -tr1030: +tr1042: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -31999,7 +32543,7 @@ tr1030: s->buffer_length = 0; } goto st225; -tr4275: +tr4304: { s->buffer[0] = 0; s->buffer_length = 0; @@ -32007,15 +32551,15 @@ tr4275: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } goto st225; -tr4276: +tr4305: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -32026,15 +32570,15 @@ tr4276: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } goto st225; -tr4277: +tr4306: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -32045,7 +32589,7 @@ tr4277: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } goto st225; @@ -32072,68 +32616,68 @@ case 225: switch( _widec ) { case 9: goto st225; case 32: goto st225; - case 40: goto tr898; - case 41: goto tr899; - case 58: goto tr75; - case 65: goto tr124; - case 67: goto tr125; - case 68: goto tr126; - case 69: goto tr127; - case 72: goto tr128; - case 73: goto tr129; - case 75: goto tr130; - case 76: goto tr131; - case 77: goto tr132; - case 78: goto tr133; - case 79: goto tr134; - case 80: goto tr135; - case 82: goto tr136; - case 83: goto tr137; - case 84: goto tr138; - case 85: goto tr139; - case 87: goto tr140; - case 90: goto tr141; - case 92: goto tr80; - case 97: goto tr124; - case 99: goto tr125; - case 100: goto tr126; - case 101: goto tr127; - case 104: goto tr128; - case 105: goto tr129; - case 107: goto tr130; - case 108: goto tr131; - case 109: goto tr132; - case 110: goto tr133; - case 111: goto tr134; - case 112: goto tr135; - case 114: goto tr136; - case 115: goto tr137; - case 116: goto tr138; - case 117: goto tr139; - case 119: goto tr140; - case 122: goto tr141; - case 2826: goto tr95; - case 2875: goto tr96; - case 3082: goto tr884; - case 3131: goto tr900; - case 3338: goto tr114; - case 3387: goto tr115; - case 3594: goto tr884; - case 3643: goto tr901; + case 40: goto tr899; + case 41: goto tr900; + case 58: goto tr76; + case 65: goto tr125; + case 67: goto tr126; + case 68: goto tr127; + case 69: goto tr128; + case 72: goto tr129; + case 73: goto tr130; + case 75: goto tr131; + case 76: goto tr132; + case 77: goto tr133; + case 78: goto tr134; + case 79: goto tr135; + case 80: goto tr136; + case 82: goto tr137; + case 83: goto tr138; + case 84: goto tr139; + case 85: goto tr140; + case 87: goto tr141; + case 90: goto tr142; + case 92: goto tr81; + case 97: goto tr125; + case 99: goto tr126; + case 100: goto tr127; + case 101: goto tr128; + case 104: goto tr129; + case 105: goto tr130; + case 107: goto tr131; + case 108: goto tr132; + case 109: goto tr133; + case 110: goto tr134; + case 111: goto tr135; + case 112: goto tr136; + case 114: goto tr137; + case 115: goto tr138; + case 116: goto tr139; + case 117: goto tr140; + case 119: goto tr141; + case 122: goto tr142; + case 2826: goto tr96; + case 2875: goto tr97; + case 3082: goto tr885; + case 3131: goto tr901; + case 3338: goto tr115; + case 3387: goto tr116; + case 3594: goto tr885; + case 3643: goto tr902; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 47 ) { if ( _widec > 57 ) { if ( 60 <= _widec ) - goto tr75; + goto tr76; } else if ( _widec >= 48 ) - goto tr123; + goto tr124; } else - goto tr75; - goto tr120; -tr125: + goto tr76; + goto tr121; +tr126: { s->r_class = s->default_class; } @@ -32144,92 +32688,93 @@ tr125: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 226;goto st1089;} + {stack[top++] = 226;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 226;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 226;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 226;goto st1093;} + {stack[top++] = 226;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 226;goto st1125;} + {stack[top++] = 226;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 226;goto st1130;} + {stack[top++] = 226;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 226;goto st1135;} + {stack[top++] = 226;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 226;goto st1140;} + {stack[top++] = 226;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 226;goto st1144;} + {stack[top++] = 226;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 226;goto st1146;} + {stack[top++] = 226;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 226;goto st1201;} + {stack[top++] = 226;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 226;goto st1212;} + {stack[top++] = 226;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 226;goto st1229;} + {stack[top++] = 226;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 226;goto st1240;} + {stack[top++] = 226;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 226;goto st1251;} + {stack[top++] = 226;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 226;goto st1264;} + {stack[top++] = 226;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 226;goto st1274;} + {stack[top++] = 226;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 226;goto st1313;} + {stack[top++] = 226;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 226;goto st1339;} + {stack[top++] = 226;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 226;goto st1342;} + {stack[top++] = 226;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 226;goto st1353;} + {stack[top++] = 226;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 226;goto st1355;} + {stack[top++] = 226;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 226;goto st1384;} + {stack[top++] = 226;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 226;goto st1397;} + {stack[top++] = 226;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 226;goto st1410;} + {stack[top++] = 226;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 226;goto st1416;} + {stack[top++] = 226;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 226;goto st1434;} + {stack[top++] = 226;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 226;goto st1429;} + {stack[top++] = 226;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 226;goto st1447;} + {stack[top++] = 226;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 226;goto st1453;} + {stack[top++] = 226;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 226;goto st1459;} + {stack[top++] = 226;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 226;goto st1467;} + {stack[top++] = 226;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 226;goto st1475;} + {stack[top++] = 226;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 226;goto st1481;} + {stack[top++] = 226;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st226; @@ -32250,10 +32795,10 @@ case 226: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 65: goto st18; case 68: goto st22; case 69: goto st29; @@ -32264,13 +32809,13 @@ case 226: case 101: goto st29; case 110: goto st32; case 115: goto st36; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr126: + goto tr867; +tr127: { s->r_class = s->default_class; } @@ -32281,92 +32826,93 @@ tr126: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 227;goto st1089;} + {stack[top++] = 227;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 227;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 227;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 227;goto st1093;} + {stack[top++] = 227;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 227;goto st1125;} + {stack[top++] = 227;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 227;goto st1130;} + {stack[top++] = 227;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 227;goto st1135;} + {stack[top++] = 227;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 227;goto st1140;} + {stack[top++] = 227;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 227;goto st1144;} + {stack[top++] = 227;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 227;goto st1146;} + {stack[top++] = 227;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 227;goto st1201;} + {stack[top++] = 227;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 227;goto st1212;} + {stack[top++] = 227;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 227;goto st1229;} + {stack[top++] = 227;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 227;goto st1240;} + {stack[top++] = 227;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 227;goto st1251;} + {stack[top++] = 227;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 227;goto st1264;} + {stack[top++] = 227;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 227;goto st1274;} + {stack[top++] = 227;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 227;goto st1313;} + {stack[top++] = 227;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 227;goto st1339;} + {stack[top++] = 227;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 227;goto st1342;} + {stack[top++] = 227;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 227;goto st1353;} + {stack[top++] = 227;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 227;goto st1355;} + {stack[top++] = 227;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 227;goto st1384;} + {stack[top++] = 227;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 227;goto st1397;} + {stack[top++] = 227;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 227;goto st1410;} + {stack[top++] = 227;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 227;goto st1416;} + {stack[top++] = 227;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 227;goto st1434;} + {stack[top++] = 227;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 227;goto st1429;} + {stack[top++] = 227;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 227;goto st1447;} + {stack[top++] = 227;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 227;goto st1453;} + {stack[top++] = 227;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 227;goto st1459;} + {stack[top++] = 227;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 227;goto st1467;} + {stack[top++] = 227;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 227;goto st1475;} + {stack[top++] = 227;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 227;goto st1481;} + {stack[top++] = 227;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st227; @@ -32387,151 +32933,22 @@ case 227: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 72: goto st41; case 78: goto st45; case 83: goto st53; case 104: goto st41; case 110: goto st45; case 115: goto st53; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; - } - goto tr866; -tr127: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - { - p--; - switch (s->r_type) { - case KNOT_RRTYPE_A: - {stack[top++] = 228;goto st1089;} - case KNOT_RRTYPE_NS: - case KNOT_RRTYPE_CNAME: - case KNOT_RRTYPE_PTR: - case KNOT_RRTYPE_DNAME: - {stack[top++] = 228;goto st1091;} - case KNOT_RRTYPE_SOA: - {stack[top++] = 228;goto st1093;} - case KNOT_RRTYPE_HINFO: - {stack[top++] = 228;goto st1125;} - case KNOT_RRTYPE_MINFO: - case KNOT_RRTYPE_RP: - {stack[top++] = 228;goto st1130;} - case KNOT_RRTYPE_MX: - case KNOT_RRTYPE_AFSDB: - case KNOT_RRTYPE_RT: - case KNOT_RRTYPE_KX: - case KNOT_RRTYPE_LP: - {stack[top++] = 228;goto st1135;} - case KNOT_RRTYPE_TXT: - case KNOT_RRTYPE_SPF: - case KNOT_RRTYPE_RESINFO: - case KNOT_RRTYPE_WALLET: - {stack[top++] = 228;goto st1140;} - case KNOT_RRTYPE_AAAA: - {stack[top++] = 228;goto st1144;} - case KNOT_RRTYPE_LOC: - {stack[top++] = 228;goto st1146;} - case KNOT_RRTYPE_SRV: - {stack[top++] = 228;goto st1201;} - case KNOT_RRTYPE_NAPTR: - {stack[top++] = 228;goto st1212;} - case KNOT_RRTYPE_CERT: - {stack[top++] = 228;goto st1229;} - case KNOT_RRTYPE_APL: - {stack[top++] = 228;goto st1240;} - case KNOT_RRTYPE_DS: - case KNOT_RRTYPE_CDS: - {stack[top++] = 228;goto st1251;} - case KNOT_RRTYPE_SSHFP: - {stack[top++] = 228;goto st1264;} - case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 228;goto st1274;} - case KNOT_RRTYPE_RRSIG: - {stack[top++] = 228;goto st1313;} - case KNOT_RRTYPE_NSEC: - {stack[top++] = 228;goto st1339;} - case KNOT_RRTYPE_KEY: - case KNOT_RRTYPE_DNSKEY: - case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 228;goto st1342;} - case KNOT_RRTYPE_DHCID: - case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 228;goto st1353;} - case KNOT_RRTYPE_NSEC3: - {stack[top++] = 228;goto st1355;} - case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 228;goto st1384;} - case KNOT_RRTYPE_TLSA: - case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 228;goto st1397;} - case KNOT_RRTYPE_CSYNC: - {stack[top++] = 228;goto st1410;} - case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 228;goto st1416;} - case KNOT_RRTYPE_NID: - case KNOT_RRTYPE_L64: - {stack[top++] = 228;goto st1434;} - case KNOT_RRTYPE_L32: - {stack[top++] = 228;goto st1429;} - case KNOT_RRTYPE_EUI48: - {stack[top++] = 228;goto st1447;} - case KNOT_RRTYPE_EUI64: - {stack[top++] = 228;goto st1453;} - case KNOT_RRTYPE_URI: - {stack[top++] = 228;goto st1459;} - case KNOT_RRTYPE_CAA: - {stack[top++] = 228;goto st1467;} - case KNOT_RRTYPE_SVCB: - case KNOT_RRTYPE_HTTPS: - {stack[top++] = 228;goto st1475;} - case KNOT_RRTYPE_DSYNC: - {stack[top++] = 228;goto st1481;} - default: - WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} - } - } - goto st228; -st228: - if ( ++p == pe ) - goto _test_eof228; -case 228: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; - case 85: goto st58; - case 117: goto st58; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; + goto tr867; tr128: { s->r_class = s->default_class; @@ -32543,92 +32960,223 @@ tr128: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 229;goto st1089;} + {stack[top++] = 228;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 229;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 228;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 229;goto st1093;} + {stack[top++] = 228;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 229;goto st1125;} + {stack[top++] = 228;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 229;goto st1130;} + {stack[top++] = 228;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 229;goto st1135;} + {stack[top++] = 228;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 229;goto st1140;} + {stack[top++] = 228;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 229;goto st1144;} + {stack[top++] = 228;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 229;goto st1146;} + {stack[top++] = 228;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 229;goto st1201;} + {stack[top++] = 228;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 229;goto st1212;} + {stack[top++] = 228;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 229;goto st1229;} + {stack[top++] = 228;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 229;goto st1240;} + {stack[top++] = 228;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 229;goto st1251;} + {stack[top++] = 228;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 229;goto st1264;} + {stack[top++] = 228;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 229;goto st1274;} + {stack[top++] = 228;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 229;goto st1313;} + {stack[top++] = 228;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 229;goto st1339;} + {stack[top++] = 228;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 229;goto st1342;} + {stack[top++] = 228;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 229;goto st1353;} + {stack[top++] = 228;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 229;goto st1355;} + {stack[top++] = 228;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 229;goto st1384;} + {stack[top++] = 228;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 229;goto st1397;} + {stack[top++] = 228;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 229;goto st1410;} + {stack[top++] = 228;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 229;goto st1416;} + {stack[top++] = 228;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 229;goto st1434;} + {stack[top++] = 228;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 229;goto st1429;} + {stack[top++] = 228;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 229;goto st1447;} + {stack[top++] = 228;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 229;goto st1453;} + {stack[top++] = 228;goto st1465;} case KNOT_RRTYPE_URI: + {stack[top++] = 228;goto st1471;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 228;goto st1479;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 228;goto st1487;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 228;goto st1493;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st329;} + } + } + goto st228; +st228: + if ( ++p == pe ) + goto _test_eof228; +case 228: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; + case 85: goto st58; + case 117: goto st58; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; + } + goto tr867; +tr129: + { + s->r_class = s->default_class; + } + { + s->r_ttl = s->default_ttl; + } + { + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 229;goto st1101;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 229;goto st1103;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 229;goto st1105;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 229;goto st1137;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 229;goto st1142;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 229;goto st1147;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 229;goto st1152;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 229;goto st1156;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 229;goto st1158;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 229;goto st1213;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 229;goto st1224;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 229;goto st1241;} + case KNOT_RRTYPE_APL: + {stack[top++] = 229;goto st1252;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 229;goto st1263;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 229;goto st1276;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 229;goto st1286;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 229;goto st1325;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 229;goto st1351;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 229;goto st1354;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 229;goto st1365;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 229;goto st1367;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 229;goto st1396;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 229;goto st1409;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 229;goto st1422;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 229;goto st1428;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 229;goto st1446;} + case KNOT_RRTYPE_L32: + {stack[top++] = 229;goto st1441;} + case KNOT_RRTYPE_EUI48: {stack[top++] = 229;goto st1459;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 229;goto st1465;} + case KNOT_RRTYPE_URI: + {stack[top++] = 229;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 229;goto st1467;} + {stack[top++] = 229;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 229;goto st1475;} + {stack[top++] = 229;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 229;goto st1481;} + {stack[top++] = 229;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st229; @@ -32649,21 +33197,21 @@ case 229: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 73: goto st65; case 84: goto st69; case 105: goto st65; case 116: goto st69; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr129: + goto tr867; +tr130: { s->r_class = s->default_class; } @@ -32674,92 +33222,93 @@ tr129: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 230;goto st1089;} + {stack[top++] = 230;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 230;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 230;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 230;goto st1093;} + {stack[top++] = 230;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 230;goto st1125;} + {stack[top++] = 230;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 230;goto st1130;} + {stack[top++] = 230;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 230;goto st1135;} + {stack[top++] = 230;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 230;goto st1140;} + {stack[top++] = 230;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 230;goto st1144;} + {stack[top++] = 230;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 230;goto st1146;} + {stack[top++] = 230;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 230;goto st1201;} + {stack[top++] = 230;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 230;goto st1212;} + {stack[top++] = 230;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 230;goto st1229;} + {stack[top++] = 230;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 230;goto st1240;} + {stack[top++] = 230;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 230;goto st1251;} + {stack[top++] = 230;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 230;goto st1264;} + {stack[top++] = 230;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 230;goto st1274;} + {stack[top++] = 230;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 230;goto st1313;} + {stack[top++] = 230;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 230;goto st1339;} + {stack[top++] = 230;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 230;goto st1342;} + {stack[top++] = 230;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 230;goto st1353;} + {stack[top++] = 230;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 230;goto st1355;} + {stack[top++] = 230;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 230;goto st1384;} + {stack[top++] = 230;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 230;goto st1397;} + {stack[top++] = 230;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 230;goto st1410;} + {stack[top++] = 230;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 230;goto st1416;} + {stack[top++] = 230;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 230;goto st1434;} + {stack[top++] = 230;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 230;goto st1429;} + {stack[top++] = 230;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 230;goto st1447;} + {stack[top++] = 230;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 230;goto st1453;} + {stack[top++] = 230;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 230;goto st1459;} + {stack[top++] = 230;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 230;goto st1467;} + {stack[top++] = 230;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 230;goto st1475;} + {stack[top++] = 230;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 230;goto st1481;} + {stack[top++] = 230;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st230; @@ -32780,21 +33329,21 @@ case 230: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 78: goto st191; case 80: goto st77; case 110: goto st191; case 112: goto st77; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr130: + goto tr867; +tr131: { s->r_class = s->default_class; } @@ -32805,92 +33354,93 @@ tr130: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 231;goto st1089;} + {stack[top++] = 231;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 231;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 231;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 231;goto st1093;} + {stack[top++] = 231;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 231;goto st1125;} + {stack[top++] = 231;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 231;goto st1130;} + {stack[top++] = 231;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 231;goto st1135;} + {stack[top++] = 231;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 231;goto st1140;} + {stack[top++] = 231;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 231;goto st1144;} + {stack[top++] = 231;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 231;goto st1146;} + {stack[top++] = 231;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 231;goto st1201;} + {stack[top++] = 231;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 231;goto st1212;} + {stack[top++] = 231;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 231;goto st1229;} + {stack[top++] = 231;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 231;goto st1240;} + {stack[top++] = 231;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 231;goto st1251;} + {stack[top++] = 231;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 231;goto st1264;} + {stack[top++] = 231;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 231;goto st1274;} + {stack[top++] = 231;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 231;goto st1313;} + {stack[top++] = 231;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 231;goto st1339;} + {stack[top++] = 231;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 231;goto st1342;} + {stack[top++] = 231;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 231;goto st1353;} + {stack[top++] = 231;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 231;goto st1355;} + {stack[top++] = 231;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 231;goto st1384;} + {stack[top++] = 231;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 231;goto st1397;} + {stack[top++] = 231;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 231;goto st1410;} + {stack[top++] = 231;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 231;goto st1416;} + {stack[top++] = 231;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 231;goto st1434;} + {stack[top++] = 231;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 231;goto st1429;} + {stack[top++] = 231;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 231;goto st1447;} + {stack[top++] = 231;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 231;goto st1453;} + {stack[top++] = 231;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 231;goto st1459;} + {stack[top++] = 231;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 231;goto st1467;} + {stack[top++] = 231;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 231;goto st1475;} + {stack[top++] = 231;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 231;goto st1481;} + {stack[top++] = 231;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st231; @@ -32911,21 +33461,21 @@ case 231: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 69: goto st85; case 88: goto st87; case 101: goto st85; case 120: goto st87; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr131: + goto tr867; +tr132: { s->r_class = s->default_class; } @@ -32936,92 +33486,93 @@ tr131: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 232;goto st1089;} + {stack[top++] = 232;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 232;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 232;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 232;goto st1093;} + {stack[top++] = 232;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 232;goto st1125;} + {stack[top++] = 232;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 232;goto st1130;} + {stack[top++] = 232;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 232;goto st1135;} + {stack[top++] = 232;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 232;goto st1140;} + {stack[top++] = 232;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 232;goto st1144;} + {stack[top++] = 232;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 232;goto st1146;} + {stack[top++] = 232;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 232;goto st1201;} + {stack[top++] = 232;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 232;goto st1212;} + {stack[top++] = 232;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 232;goto st1229;} + {stack[top++] = 232;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 232;goto st1240;} + {stack[top++] = 232;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 232;goto st1251;} + {stack[top++] = 232;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 232;goto st1264;} + {stack[top++] = 232;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 232;goto st1274;} + {stack[top++] = 232;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 232;goto st1313;} + {stack[top++] = 232;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 232;goto st1339;} + {stack[top++] = 232;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 232;goto st1342;} + {stack[top++] = 232;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 232;goto st1353;} + {stack[top++] = 232;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 232;goto st1355;} + {stack[top++] = 232;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 232;goto st1384;} + {stack[top++] = 232;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 232;goto st1397;} + {stack[top++] = 232;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 232;goto st1410;} + {stack[top++] = 232;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 232;goto st1416;} + {stack[top++] = 232;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 232;goto st1434;} + {stack[top++] = 232;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 232;goto st1429;} + {stack[top++] = 232;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 232;goto st1447;} + {stack[top++] = 232;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 232;goto st1453;} + {stack[top++] = 232;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 232;goto st1459;} + {stack[top++] = 232;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 232;goto st1467;} + {stack[top++] = 232;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 232;goto st1475;} + {stack[top++] = 232;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 232;goto st1481;} + {stack[top++] = 232;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st232; @@ -33042,23 +33593,23 @@ case 232: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 51: goto st89; case 54: goto st91; case 79: goto st93; case 80: goto st95; case 111: goto st93; case 112: goto st95; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr132: + goto tr867; +tr133: { s->r_class = s->default_class; } @@ -33069,92 +33620,93 @@ tr132: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 233;goto st1089;} + {stack[top++] = 233;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 233;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 233;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 233;goto st1093;} + {stack[top++] = 233;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 233;goto st1125;} + {stack[top++] = 233;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 233;goto st1130;} + {stack[top++] = 233;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 233;goto st1135;} + {stack[top++] = 233;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 233;goto st1140;} + {stack[top++] = 233;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 233;goto st1144;} + {stack[top++] = 233;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 233;goto st1146;} + {stack[top++] = 233;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 233;goto st1201;} + {stack[top++] = 233;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 233;goto st1212;} + {stack[top++] = 233;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 233;goto st1229;} + {stack[top++] = 233;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 233;goto st1240;} + {stack[top++] = 233;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 233;goto st1251;} + {stack[top++] = 233;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 233;goto st1264;} + {stack[top++] = 233;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 233;goto st1274;} + {stack[top++] = 233;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 233;goto st1313;} + {stack[top++] = 233;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 233;goto st1339;} + {stack[top++] = 233;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 233;goto st1342;} + {stack[top++] = 233;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 233;goto st1353;} + {stack[top++] = 233;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 233;goto st1355;} + {stack[top++] = 233;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 233;goto st1384;} + {stack[top++] = 233;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 233;goto st1397;} + {stack[top++] = 233;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 233;goto st1410;} + {stack[top++] = 233;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 233;goto st1416;} + {stack[top++] = 233;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 233;goto st1434;} + {stack[top++] = 233;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 233;goto st1429;} + {stack[top++] = 233;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 233;goto st1447;} + {stack[top++] = 233;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 233;goto st1453;} + {stack[top++] = 233;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 233;goto st1459;} + {stack[top++] = 233;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 233;goto st1467;} + {stack[top++] = 233;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 233;goto st1475;} + {stack[top++] = 233;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 233;goto st1481;} + {stack[top++] = 233;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st233; @@ -33175,21 +33727,21 @@ case 233: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 73: goto st97; case 88: goto st101; case 105: goto st97; case 120: goto st101; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr133: + goto tr867; +tr134: { s->r_class = s->default_class; } @@ -33200,92 +33752,93 @@ tr133: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 234;goto st1089;} + {stack[top++] = 234;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 234;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 234;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 234;goto st1093;} + {stack[top++] = 234;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 234;goto st1125;} + {stack[top++] = 234;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 234;goto st1130;} + {stack[top++] = 234;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 234;goto st1135;} + {stack[top++] = 234;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 234;goto st1140;} + {stack[top++] = 234;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 234;goto st1144;} + {stack[top++] = 234;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 234;goto st1146;} + {stack[top++] = 234;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 234;goto st1201;} + {stack[top++] = 234;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 234;goto st1212;} + {stack[top++] = 234;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 234;goto st1229;} + {stack[top++] = 234;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 234;goto st1240;} + {stack[top++] = 234;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 234;goto st1251;} + {stack[top++] = 234;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 234;goto st1264;} + {stack[top++] = 234;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 234;goto st1274;} + {stack[top++] = 234;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 234;goto st1313;} + {stack[top++] = 234;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 234;goto st1339;} + {stack[top++] = 234;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 234;goto st1342;} + {stack[top++] = 234;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 234;goto st1353;} + {stack[top++] = 234;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 234;goto st1355;} + {stack[top++] = 234;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 234;goto st1384;} + {stack[top++] = 234;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 234;goto st1397;} + {stack[top++] = 234;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 234;goto st1410;} + {stack[top++] = 234;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 234;goto st1416;} + {stack[top++] = 234;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 234;goto st1434;} + {stack[top++] = 234;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 234;goto st1429;} + {stack[top++] = 234;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 234;goto st1447;} + {stack[top++] = 234;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 234;goto st1453;} + {stack[top++] = 234;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 234;goto st1459;} + {stack[top++] = 234;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 234;goto st1467;} + {stack[top++] = 234;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 234;goto st1475;} + {stack[top++] = 234;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 234;goto st1481;} + {stack[top++] = 234;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st234; @@ -33306,23 +33859,23 @@ case 234: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 65: goto st103; case 73: goto st107; case 83: goto st109; case 97: goto st103; case 105: goto st107; case 115: goto st109; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr134: + goto tr867; +tr135: { s->r_class = s->default_class; } @@ -33333,92 +33886,93 @@ tr134: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 235;goto st1089;} + {stack[top++] = 235;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 235;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 235;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 235;goto st1093;} + {stack[top++] = 235;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 235;goto st1125;} + {stack[top++] = 235;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 235;goto st1130;} + {stack[top++] = 235;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 235;goto st1135;} + {stack[top++] = 235;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 235;goto st1140;} + {stack[top++] = 235;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 235;goto st1144;} + {stack[top++] = 235;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 235;goto st1146;} + {stack[top++] = 235;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 235;goto st1201;} + {stack[top++] = 235;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 235;goto st1212;} + {stack[top++] = 235;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 235;goto st1229;} + {stack[top++] = 235;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 235;goto st1240;} + {stack[top++] = 235;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 235;goto st1251;} + {stack[top++] = 235;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 235;goto st1264;} + {stack[top++] = 235;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 235;goto st1274;} + {stack[top++] = 235;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 235;goto st1313;} + {stack[top++] = 235;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 235;goto st1339;} + {stack[top++] = 235;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 235;goto st1342;} + {stack[top++] = 235;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 235;goto st1353;} + {stack[top++] = 235;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 235;goto st1355;} + {stack[top++] = 235;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 235;goto st1384;} + {stack[top++] = 235;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 235;goto st1397;} + {stack[top++] = 235;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 235;goto st1410;} + {stack[top++] = 235;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 235;goto st1416;} + {stack[top++] = 235;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 235;goto st1434;} + {stack[top++] = 235;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 235;goto st1429;} + {stack[top++] = 235;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 235;goto st1447;} + {stack[top++] = 235;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 235;goto st1453;} + {stack[top++] = 235;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 235;goto st1459;} + {stack[top++] = 235;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 235;goto st1467;} + {stack[top++] = 235;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 235;goto st1475;} + {stack[top++] = 235;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 235;goto st1481;} + {stack[top++] = 235;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st235; @@ -33439,19 +33993,19 @@ case 235: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 80: goto st119; case 112: goto st119; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr135: + goto tr867; +tr136: { s->r_class = s->default_class; } @@ -33462,92 +34016,93 @@ tr135: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 236;goto st1089;} + {stack[top++] = 236;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 236;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 236;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 236;goto st1093;} + {stack[top++] = 236;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 236;goto st1125;} + {stack[top++] = 236;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 236;goto st1130;} + {stack[top++] = 236;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 236;goto st1135;} + {stack[top++] = 236;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 236;goto st1140;} + {stack[top++] = 236;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 236;goto st1144;} + {stack[top++] = 236;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 236;goto st1146;} + {stack[top++] = 236;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 236;goto st1201;} + {stack[top++] = 236;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 236;goto st1212;} + {stack[top++] = 236;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 236;goto st1229;} + {stack[top++] = 236;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 236;goto st1240;} + {stack[top++] = 236;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 236;goto st1251;} + {stack[top++] = 236;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 236;goto st1264;} + {stack[top++] = 236;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 236;goto st1274;} + {stack[top++] = 236;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 236;goto st1313;} + {stack[top++] = 236;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 236;goto st1339;} + {stack[top++] = 236;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 236;goto st1342;} + {stack[top++] = 236;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 236;goto st1353;} + {stack[top++] = 236;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 236;goto st1355;} + {stack[top++] = 236;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 236;goto st1384;} + {stack[top++] = 236;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 236;goto st1397;} + {stack[top++] = 236;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 236;goto st1410;} + {stack[top++] = 236;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 236;goto st1416;} + {stack[top++] = 236;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 236;goto st1434;} + {stack[top++] = 236;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 236;goto st1429;} + {stack[top++] = 236;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 236;goto st1447;} + {stack[top++] = 236;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 236;goto st1453;} + {stack[top++] = 236;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 236;goto st1459;} + {stack[top++] = 236;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 236;goto st1467;} + {stack[top++] = 236;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 236;goto st1475;} + {stack[top++] = 236;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 236;goto st1481;} + {stack[top++] = 236;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st236; @@ -33568,19 +34123,19 @@ case 236: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 84: goto st129; case 116: goto st129; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr136: + goto tr867; +tr137: { s->r_class = s->default_class; } @@ -33591,92 +34146,93 @@ tr136: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 237;goto st1089;} + {stack[top++] = 237;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 237;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 237;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 237;goto st1093;} + {stack[top++] = 237;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 237;goto st1125;} + {stack[top++] = 237;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 237;goto st1130;} + {stack[top++] = 237;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 237;goto st1135;} + {stack[top++] = 237;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 237;goto st1140;} + {stack[top++] = 237;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 237;goto st1144;} + {stack[top++] = 237;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 237;goto st1146;} + {stack[top++] = 237;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 237;goto st1201;} + {stack[top++] = 237;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 237;goto st1212;} + {stack[top++] = 237;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 237;goto st1229;} + {stack[top++] = 237;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 237;goto st1240;} + {stack[top++] = 237;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 237;goto st1251;} + {stack[top++] = 237;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 237;goto st1264;} + {stack[top++] = 237;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 237;goto st1274;} + {stack[top++] = 237;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 237;goto st1313;} + {stack[top++] = 237;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 237;goto st1339;} + {stack[top++] = 237;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 237;goto st1342;} + {stack[top++] = 237;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 237;goto st1353;} + {stack[top++] = 237;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 237;goto st1355;} + {stack[top++] = 237;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 237;goto st1384;} + {stack[top++] = 237;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 237;goto st1397;} + {stack[top++] = 237;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 237;goto st1410;} + {stack[top++] = 237;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 237;goto st1416;} + {stack[top++] = 237;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 237;goto st1434;} + {stack[top++] = 237;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 237;goto st1429;} + {stack[top++] = 237;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 237;goto st1447;} + {stack[top++] = 237;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 237;goto st1453;} + {stack[top++] = 237;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 237;goto st1459;} + {stack[top++] = 237;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 237;goto st1467;} + {stack[top++] = 237;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 237;goto st1475;} + {stack[top++] = 237;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 237;goto st1481;} + {stack[top++] = 237;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st237; @@ -33697,10 +34253,10 @@ case 237: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 69: goto st132; case 80: goto st138; case 82: goto st139; @@ -33709,13 +34265,13 @@ case 237: case 112: goto st138; case 114: goto st139; case 116: goto st143; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr137: + goto tr867; +tr138: { s->r_class = s->default_class; } @@ -33726,92 +34282,93 @@ tr137: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 238;goto st1089;} + {stack[top++] = 238;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 238;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 238;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 238;goto st1093;} + {stack[top++] = 238;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 238;goto st1125;} + {stack[top++] = 238;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 238;goto st1130;} + {stack[top++] = 238;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 238;goto st1135;} + {stack[top++] = 238;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 238;goto st1140;} + {stack[top++] = 238;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 238;goto st1144;} + {stack[top++] = 238;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 238;goto st1146;} + {stack[top++] = 238;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 238;goto st1201;} + {stack[top++] = 238;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 238;goto st1212;} + {stack[top++] = 238;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 238;goto st1229;} + {stack[top++] = 238;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 238;goto st1240;} + {stack[top++] = 238;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 238;goto st1251;} + {stack[top++] = 238;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 238;goto st1264;} + {stack[top++] = 238;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 238;goto st1274;} + {stack[top++] = 238;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 238;goto st1313;} + {stack[top++] = 238;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 238;goto st1339;} + {stack[top++] = 238;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 238;goto st1342;} + {stack[top++] = 238;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 238;goto st1353;} + {stack[top++] = 238;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 238;goto st1355;} + {stack[top++] = 238;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 238;goto st1384;} + {stack[top++] = 238;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 238;goto st1397;} + {stack[top++] = 238;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 238;goto st1410;} + {stack[top++] = 238;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 238;goto st1416;} + {stack[top++] = 238;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 238;goto st1434;} + {stack[top++] = 238;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 238;goto st1429;} + {stack[top++] = 238;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 238;goto st1447;} + {stack[top++] = 238;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 238;goto st1453;} + {stack[top++] = 238;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 238;goto st1459;} + {stack[top++] = 238;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 238;goto st1467;} + {stack[top++] = 238;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 238;goto st1475;} + {stack[top++] = 238;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 238;goto st1481;} + {stack[top++] = 238;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st238; @@ -33832,10 +34389,10 @@ case 238: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 77: goto st145; case 79: goto st150; case 80: goto st152; @@ -33848,13 +34405,13 @@ case 238: case 114: goto st154; case 115: goto st156; case 118: goto st160; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr138: + goto tr867; +tr139: { s->r_class = s->default_class; } @@ -33865,92 +34422,93 @@ tr138: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 239;goto st1089;} + {stack[top++] = 239;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 239;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 239;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 239;goto st1093;} + {stack[top++] = 239;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 239;goto st1125;} + {stack[top++] = 239;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 239;goto st1130;} + {stack[top++] = 239;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 239;goto st1135;} + {stack[top++] = 239;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 239;goto st1140;} + {stack[top++] = 239;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 239;goto st1144;} + {stack[top++] = 239;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 239;goto st1146;} + {stack[top++] = 239;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 239;goto st1201;} + {stack[top++] = 239;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 239;goto st1212;} + {stack[top++] = 239;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 239;goto st1229;} + {stack[top++] = 239;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 239;goto st1240;} + {stack[top++] = 239;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 239;goto st1251;} + {stack[top++] = 239;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 239;goto st1264;} + {stack[top++] = 239;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 239;goto st1274;} + {stack[top++] = 239;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 239;goto st1313;} + {stack[top++] = 239;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 239;goto st1339;} + {stack[top++] = 239;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 239;goto st1342;} + {stack[top++] = 239;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 239;goto st1353;} + {stack[top++] = 239;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 239;goto st1355;} + {stack[top++] = 239;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 239;goto st1384;} + {stack[top++] = 239;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 239;goto st1397;} + {stack[top++] = 239;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 239;goto st1410;} + {stack[top++] = 239;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 239;goto st1416;} + {stack[top++] = 239;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 239;goto st1434;} + {stack[top++] = 239;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 239;goto st1429;} + {stack[top++] = 239;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 239;goto st1447;} + {stack[top++] = 239;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 239;goto st1453;} + {stack[top++] = 239;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 239;goto st1459;} + {stack[top++] = 239;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 239;goto st1467;} + {stack[top++] = 239;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 239;goto st1475;} + {stack[top++] = 239;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 239;goto st1481;} + {stack[top++] = 239;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st239; @@ -33971,23 +34529,23 @@ case 239: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 76: goto st164; case 88: goto st167; case 89: goto st169; case 108: goto st164; case 120: goto st167; case 121: goto st169; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr139: + goto tr867; +tr140: { s->r_class = s->default_class; } @@ -33998,92 +34556,93 @@ tr139: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 240;goto st1089;} + {stack[top++] = 240;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 240;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 240;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 240;goto st1093;} + {stack[top++] = 240;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 240;goto st1125;} + {stack[top++] = 240;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 240;goto st1130;} + {stack[top++] = 240;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 240;goto st1135;} + {stack[top++] = 240;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 240;goto st1140;} + {stack[top++] = 240;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 240;goto st1144;} + {stack[top++] = 240;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 240;goto st1146;} + {stack[top++] = 240;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 240;goto st1201;} + {stack[top++] = 240;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 240;goto st1212;} + {stack[top++] = 240;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 240;goto st1229;} + {stack[top++] = 240;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 240;goto st1240;} + {stack[top++] = 240;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 240;goto st1251;} + {stack[top++] = 240;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 240;goto st1264;} + {stack[top++] = 240;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 240;goto st1274;} + {stack[top++] = 240;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 240;goto st1313;} + {stack[top++] = 240;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 240;goto st1339;} + {stack[top++] = 240;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 240;goto st1342;} + {stack[top++] = 240;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 240;goto st1353;} + {stack[top++] = 240;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 240;goto st1355;} + {stack[top++] = 240;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 240;goto st1384;} + {stack[top++] = 240;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 240;goto st1397;} + {stack[top++] = 240;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 240;goto st1410;} + {stack[top++] = 240;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 240;goto st1416;} + {stack[top++] = 240;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 240;goto st1434;} + {stack[top++] = 240;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 240;goto st1429;} + {stack[top++] = 240;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 240;goto st1447;} + {stack[top++] = 240;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 240;goto st1453;} + {stack[top++] = 240;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 240;goto st1459;} + {stack[top++] = 240;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 240;goto st1467;} + {stack[top++] = 240;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 240;goto st1475;} + {stack[top++] = 240;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 240;goto st1481;} + {stack[top++] = 240;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st240; @@ -34104,19 +34663,19 @@ case 240: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 82: goto st174; case 114: goto st174; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr140: + goto tr867; +tr141: { s->r_class = s->default_class; } @@ -34127,92 +34686,93 @@ tr140: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 241;goto st1089;} + {stack[top++] = 241;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 241;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 241;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 241;goto st1093;} + {stack[top++] = 241;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 241;goto st1125;} + {stack[top++] = 241;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 241;goto st1130;} + {stack[top++] = 241;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 241;goto st1135;} + {stack[top++] = 241;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 241;goto st1140;} + {stack[top++] = 241;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 241;goto st1144;} + {stack[top++] = 241;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 241;goto st1146;} + {stack[top++] = 241;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 241;goto st1201;} + {stack[top++] = 241;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 241;goto st1212;} + {stack[top++] = 241;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 241;goto st1229;} + {stack[top++] = 241;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 241;goto st1240;} + {stack[top++] = 241;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 241;goto st1251;} + {stack[top++] = 241;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 241;goto st1264;} + {stack[top++] = 241;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 241;goto st1274;} + {stack[top++] = 241;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 241;goto st1313;} + {stack[top++] = 241;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 241;goto st1339;} + {stack[top++] = 241;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 241;goto st1342;} + {stack[top++] = 241;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 241;goto st1353;} + {stack[top++] = 241;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 241;goto st1355;} + {stack[top++] = 241;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 241;goto st1384;} + {stack[top++] = 241;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 241;goto st1397;} + {stack[top++] = 241;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 241;goto st1410;} + {stack[top++] = 241;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 241;goto st1416;} + {stack[top++] = 241;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 241;goto st1434;} + {stack[top++] = 241;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 241;goto st1429;} + {stack[top++] = 241;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 241;goto st1447;} + {stack[top++] = 241;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 241;goto st1453;} + {stack[top++] = 241;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 241;goto st1459;} + {stack[top++] = 241;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 241;goto st1467;} + {stack[top++] = 241;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 241;goto st1475;} + {stack[top++] = 241;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 241;goto st1481;} + {stack[top++] = 241;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st241; @@ -34233,19 +34793,19 @@ case 241: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 65: goto st177; case 97: goto st177; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr141: + goto tr867; +tr142: { s->r_class = s->default_class; } @@ -34256,92 +34816,93 @@ tr141: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 242;goto st1089;} + {stack[top++] = 242;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 242;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 242;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 242;goto st1093;} + {stack[top++] = 242;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 242;goto st1125;} + {stack[top++] = 242;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 242;goto st1130;} + {stack[top++] = 242;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 242;goto st1135;} + {stack[top++] = 242;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 242;goto st1140;} + {stack[top++] = 242;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 242;goto st1144;} + {stack[top++] = 242;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 242;goto st1146;} + {stack[top++] = 242;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 242;goto st1201;} + {stack[top++] = 242;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 242;goto st1212;} + {stack[top++] = 242;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 242;goto st1229;} + {stack[top++] = 242;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 242;goto st1240;} + {stack[top++] = 242;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 242;goto st1251;} + {stack[top++] = 242;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 242;goto st1264;} + {stack[top++] = 242;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 242;goto st1274;} + {stack[top++] = 242;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 242;goto st1313;} + {stack[top++] = 242;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 242;goto st1339;} + {stack[top++] = 242;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 242;goto st1342;} + {stack[top++] = 242;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 242;goto st1353;} + {stack[top++] = 242;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 242;goto st1355;} + {stack[top++] = 242;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 242;goto st1384;} + {stack[top++] = 242;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 242;goto st1397;} + {stack[top++] = 242;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 242;goto st1410;} + {stack[top++] = 242;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 242;goto st1416;} + {stack[top++] = 242;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 242;goto st1434;} + {stack[top++] = 242;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 242;goto st1429;} + {stack[top++] = 242;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 242;goto st1447;} + {stack[top++] = 242;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 242;goto st1453;} + {stack[top++] = 242;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 242;goto st1459;} + {stack[top++] = 242;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 242;goto st1467;} + {stack[top++] = 242;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 242;goto st1475;} + {stack[top++] = 242;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 242;goto st1481;} + {stack[top++] = 242;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st242; @@ -34362,31 +34923,31 @@ case 242: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; case 79: goto st183; case 111: goto st183; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; } - goto tr866; -tr900: + goto tr867; +tr901: { s->buffer_length = 0; } goto st243; -tr902: +tr903: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st243; -tr1031: +tr1043: { s->buffer_length = 0; } @@ -34395,7 +34956,7 @@ tr1031: s->buffer_length = 0; } goto st243; -tr969: +tr970: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -34409,7 +34970,7 @@ tr969: s->buffer_length = 0; } goto st243; -tr973: +tr974: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -34419,7 +34980,7 @@ tr973: s->buffer_length = 0; } goto st243; -tr938: +tr939: { s->r_owner_length = s->dname_tmp_length; } @@ -34435,7 +34996,7 @@ tr938: s->buffer_length = 0; } goto st243; -tr4278: +tr4307: { s->buffer_length = 0; } @@ -34446,7 +35007,7 @@ tr4278: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } goto st243; @@ -34473,21 +35034,21 @@ case 243: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr98; - case 2058: goto tr903; + case 1802: goto tr99; + case 2058: goto tr904; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr902; + goto tr903; } else if ( _widec >= 1664 ) - goto tr97; - goto tr85; -tr142: + goto tr98; + goto tr86; +tr143: { s->line_counter++; } - goto st1500; -tr1005: + goto st1512; +tr1017: { s->buffer[s->buffer_length++] = 0; @@ -34497,15 +35058,15 @@ tr1005: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1500; goto _out;} + {p++; cs = 1512; goto _out;} } } } { s->line_counter++; } - goto st1500; -tr903: + goto st1512; +tr904: { s->buffer[s->buffer_length++] = 0; @@ -34515,7 +35076,7 @@ tr903: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1500; goto _out;} + {p++; cs = 1512; goto _out;} } } } @@ -34525,7 +35086,7 @@ tr903: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -34538,23 +35099,23 @@ tr903: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1500; goto _out;} + {p++; cs = 1512; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1500; goto _out;} + p--; {p++; cs = 1512; goto _out;} } } - goto st1500; -tr944: + goto st1512; +tr945: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -34567,16 +35128,16 @@ tr944: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1500; goto _out;} + {p++; cs = 1512; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1500; goto _out;} + p--; {p++; cs = 1512; goto _out;} } } - goto st1500; -tr937: + goto st1512; +tr938: { s->r_owner_length = s->dname_tmp_length; } @@ -34594,7 +35155,7 @@ tr937: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -34607,34 +35168,34 @@ tr937: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1500; goto _out;} + {p++; cs = 1512; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1500; goto _out;} + p--; {p++; cs = 1512; goto _out;} } } - goto st1500; -tr4206: + goto st1512; +tr4235: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1500; -st1500: + goto st1512; +st1512: if ( ++p == pe ) - goto _test_eof1500; -case 1500: + goto _test_eof1512; +case 1512: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34652,178 +35213,179 @@ case 1500: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4200; - case 32: goto tr4200; - case 36: goto tr4201; - case 40: goto tr4202; - case 41: goto tr4203; - case 42: goto tr4204; - case 58: goto tr75; - case 65: goto tr4282; - case 67: goto tr4283; - case 68: goto tr4284; - case 69: goto tr4285; - case 72: goto tr4286; - case 73: goto tr4287; - case 75: goto tr4288; - case 76: goto tr4289; - case 77: goto tr4290; - case 78: goto tr4291; - case 79: goto tr4292; - case 80: goto tr4293; - case 82: goto tr4294; - case 83: goto tr4295; - case 84: goto tr4296; - case 85: goto tr4297; - case 87: goto tr4298; - case 90: goto tr4299; - case 92: goto tr4205; - case 95: goto tr4204; - case 97: goto tr4282; - case 99: goto tr4283; - case 100: goto tr4284; - case 101: goto tr4285; - case 104: goto tr4286; - case 105: goto tr4287; - case 107: goto tr4288; - case 108: goto tr4289; - case 109: goto tr4290; - case 110: goto tr4291; - case 111: goto tr4292; - case 112: goto tr4293; - case 114: goto tr4294; - case 115: goto tr4295; - case 116: goto tr4296; - case 117: goto tr4297; - case 119: goto tr4298; - case 122: goto tr4299; - case 2826: goto tr4196; - case 2875: goto tr4197; - case 3082: goto tr4206; - case 3131: goto tr4207; - case 3338: goto tr4208; - case 3387: goto tr4209; - case 3594: goto tr4210; - case 3643: goto tr4211; + case 9: goto tr4229; + case 32: goto tr4229; + case 36: goto tr4230; + case 40: goto tr4231; + case 41: goto tr4232; + case 42: goto tr4233; + case 58: goto tr76; + case 65: goto tr4311; + case 67: goto tr4312; + case 68: goto tr4313; + case 69: goto tr4314; + case 72: goto tr4315; + case 73: goto tr4316; + case 75: goto tr4317; + case 76: goto tr4318; + case 77: goto tr4319; + case 78: goto tr4320; + case 79: goto tr4321; + case 80: goto tr4322; + case 82: goto tr4323; + case 83: goto tr4324; + case 84: goto tr4325; + case 85: goto tr4326; + case 87: goto tr4327; + case 90: goto tr4328; + case 92: goto tr4234; + case 95: goto tr4233; + case 97: goto tr4311; + case 99: goto tr4312; + case 100: goto tr4313; + case 101: goto tr4314; + case 104: goto tr4315; + case 105: goto tr4316; + case 107: goto tr4317; + case 108: goto tr4318; + case 109: goto tr4319; + case 110: goto tr4320; + case 111: goto tr4321; + case 112: goto tr4322; + case 114: goto tr4323; + case 115: goto tr4324; + case 116: goto tr4325; + case 117: goto tr4326; + case 119: goto tr4327; + case 122: goto tr4328; + case 2826: goto tr4225; + case 2875: goto tr4226; + case 3082: goto tr4235; + case 3131: goto tr4236; + case 3338: goto tr4237; + case 3387: goto tr4238; + case 3594: goto tr4239; + case 3643: goto tr4240; } if ( _widec < 60 ) { if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 44 ) { if ( _widec > 47 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4281; + goto tr4310; } else if ( _widec >= 45 ) - goto tr4204; + goto tr4233; } else - goto tr75; + goto tr76; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 89 ) - goto tr4204; + goto tr4233; } else if ( _widec > 96 ) { if ( _widec > 121 ) { if ( 123 <= _widec ) - goto tr75; + goto tr76; } else if ( _widec >= 98 ) - goto tr4204; + goto tr4233; } else - goto tr75; + goto tr76; } else - goto tr75; - goto tr4280; -tr4201: + goto tr76; + goto tr4309; +tr4230: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 244;goto st1089;} + {stack[top++] = 244;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 244;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 244;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 244;goto st1093;} + {stack[top++] = 244;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 244;goto st1125;} + {stack[top++] = 244;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 244;goto st1130;} + {stack[top++] = 244;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 244;goto st1135;} + {stack[top++] = 244;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 244;goto st1140;} + {stack[top++] = 244;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 244;goto st1144;} + {stack[top++] = 244;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 244;goto st1146;} + {stack[top++] = 244;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 244;goto st1201;} + {stack[top++] = 244;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 244;goto st1212;} + {stack[top++] = 244;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 244;goto st1229;} + {stack[top++] = 244;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 244;goto st1240;} + {stack[top++] = 244;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 244;goto st1251;} + {stack[top++] = 244;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 244;goto st1264;} + {stack[top++] = 244;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 244;goto st1274;} + {stack[top++] = 244;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 244;goto st1313;} + {stack[top++] = 244;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 244;goto st1339;} + {stack[top++] = 244;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 244;goto st1342;} + {stack[top++] = 244;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 244;goto st1353;} + {stack[top++] = 244;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 244;goto st1355;} + {stack[top++] = 244;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 244;goto st1384;} + {stack[top++] = 244;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 244;goto st1397;} + {stack[top++] = 244;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 244;goto st1410;} + {stack[top++] = 244;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 244;goto st1416;} + {stack[top++] = 244;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 244;goto st1434;} + {stack[top++] = 244;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 244;goto st1429;} + {stack[top++] = 244;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 244;goto st1447;} + {stack[top++] = 244;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 244;goto st1453;} + {stack[top++] = 244;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 244;goto st1459;} + {stack[top++] = 244;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 244;goto st1467;} + {stack[top++] = 244;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 244;goto st1475;} + {stack[top++] = 244;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 244;goto st1481;} + {stack[top++] = 244;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st244; @@ -34844,23 +35406,23 @@ case 244: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr86; - case 32: goto tr86; - case 40: goto tr87; - case 41: goto tr88; - case 73: goto tr799; - case 79: goto tr800; - case 84: goto tr801; - case 105: goto tr799; - case 111: goto tr800; - case 116: goto tr801; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr89; - case 2107: goto tr90; - } - goto tr904; -tr800: + case 9: goto tr87; + case 32: goto tr87; + case 40: goto tr88; + case 41: goto tr89; + case 73: goto tr800; + case 79: goto tr801; + case 84: goto tr802; + case 105: goto tr800; + case 111: goto tr801; + case 116: goto tr802; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr90; + case 2107: goto tr91; + } + goto tr905; +tr801: { ERR(ZS_OK); } @@ -34873,7 +35435,7 @@ case 245: case 82: goto st246; case 114: goto st246; } - goto tr798; + goto tr799; st246: if ( ++p == pe ) goto _test_eof246; @@ -34882,7 +35444,7 @@ case 246: case 73: goto st247; case 105: goto st247; } - goto tr798; + goto tr799; st247: if ( ++p == pe ) goto _test_eof247; @@ -34891,7 +35453,7 @@ case 247: case 71: goto st248; case 103: goto st248; } - goto tr798; + goto tr799; st248: if ( ++p == pe ) goto _test_eof248; @@ -34900,7 +35462,7 @@ case 248: case 73: goto st249; case 105: goto st249; } - goto tr798; + goto tr799; st249: if ( ++p == pe ) goto _test_eof249; @@ -34909,22 +35471,22 @@ case 249: case 78: goto st250; case 110: goto st250; } - goto tr798; + goto tr799; st250: if ( ++p == pe ) goto _test_eof250; case 250: switch( (*p) ) { - case 32: goto tr910; - case 59: goto tr910; + case 32: goto tr911; + case 59: goto tr911; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr910; + goto tr911; } else if ( (*p) >= 9 ) - goto tr910; - goto tr798; -tr801: + goto tr911; + goto tr799; +tr802: { ERR(ZS_OK); } @@ -34937,7 +35499,7 @@ case 251: case 84: goto st252; case 116: goto st252; } - goto tr798; + goto tr799; st252: if ( ++p == pe ) goto _test_eof252; @@ -34946,119 +35508,120 @@ case 252: case 76: goto st253; case 108: goto st253; } - goto tr798; + goto tr799; st253: if ( ++p == pe ) goto _test_eof253; case 253: switch( (*p) ) { - case 32: goto tr913; - case 59: goto tr913; + case 32: goto tr914; + case 59: goto tr914; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr913; + goto tr914; } else if ( (*p) >= 9 ) - goto tr913; - goto tr798; -tr4204: + goto tr914; + goto tr799; +tr4233: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 254;goto st1089;} + {stack[top++] = 254;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 254;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 254;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 254;goto st1093;} + {stack[top++] = 254;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 254;goto st1125;} + {stack[top++] = 254;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 254;goto st1130;} + {stack[top++] = 254;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 254;goto st1135;} + {stack[top++] = 254;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 254;goto st1140;} + {stack[top++] = 254;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 254;goto st1144;} + {stack[top++] = 254;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 254;goto st1146;} + {stack[top++] = 254;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 254;goto st1201;} + {stack[top++] = 254;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 254;goto st1212;} + {stack[top++] = 254;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 254;goto st1229;} + {stack[top++] = 254;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 254;goto st1240;} + {stack[top++] = 254;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 254;goto st1251;} + {stack[top++] = 254;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 254;goto st1264;} + {stack[top++] = 254;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 254;goto st1274;} + {stack[top++] = 254;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 254;goto st1313;} + {stack[top++] = 254;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 254;goto st1339;} + {stack[top++] = 254;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 254;goto st1342;} + {stack[top++] = 254;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 254;goto st1353;} + {stack[top++] = 254;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 254;goto st1355;} + {stack[top++] = 254;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 254;goto st1384;} + {stack[top++] = 254;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 254;goto st1397;} + {stack[top++] = 254;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 254;goto st1410;} + {stack[top++] = 254;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 254;goto st1416;} + {stack[top++] = 254;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 254;goto st1434;} + {stack[top++] = 254;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 254;goto st1429;} + {stack[top++] = 254;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 254;goto st1447;} + {stack[top++] = 254;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 254;goto st1453;} + {stack[top++] = 254;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 254;goto st1459;} + {stack[top++] = 254;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 254;goto st1467;} + {stack[top++] = 254;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 254;goto st1475;} + {stack[top++] = 254;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 254;goto st1481;} + {stack[top++] = 254;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 254;goto st327;} } + { p--; {stack[top++] = 254;goto st331;} } goto st254; st254: if ( ++p == pe ) @@ -35077,17 +35640,17 @@ case 254: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; - } - goto tr914; -tr4281: + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; + } + goto tr915; +tr4310: { s->number64 = 0; } @@ -35102,106 +35665,107 @@ tr4281: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 255;goto st1089;} + {stack[top++] = 255;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 255;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 255;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 255;goto st1093;} + {stack[top++] = 255;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 255;goto st1125;} + {stack[top++] = 255;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 255;goto st1130;} + {stack[top++] = 255;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 255;goto st1135;} + {stack[top++] = 255;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 255;goto st1140;} + {stack[top++] = 255;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 255;goto st1144;} + {stack[top++] = 255;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 255;goto st1146;} + {stack[top++] = 255;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 255;goto st1201;} + {stack[top++] = 255;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 255;goto st1212;} + {stack[top++] = 255;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 255;goto st1229;} + {stack[top++] = 255;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 255;goto st1240;} + {stack[top++] = 255;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 255;goto st1251;} + {stack[top++] = 255;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 255;goto st1264;} + {stack[top++] = 255;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 255;goto st1274;} + {stack[top++] = 255;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 255;goto st1313;} + {stack[top++] = 255;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 255;goto st1339;} + {stack[top++] = 255;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 255;goto st1342;} + {stack[top++] = 255;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 255;goto st1353;} + {stack[top++] = 255;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 255;goto st1355;} + {stack[top++] = 255;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 255;goto st1384;} + {stack[top++] = 255;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 255;goto st1397;} + {stack[top++] = 255;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 255;goto st1410;} + {stack[top++] = 255;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 255;goto st1416;} + {stack[top++] = 255;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 255;goto st1434;} + {stack[top++] = 255;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 255;goto st1429;} + {stack[top++] = 255;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 255;goto st1447;} + {stack[top++] = 255;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 255;goto st1453;} + {stack[top++] = 255;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 255;goto st1459;} + {stack[top++] = 255;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 255;goto st1467;} + {stack[top++] = 255;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 255;goto st1475;} + {stack[top++] = 255;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 255;goto st1481;} + {stack[top++] = 255;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 255;goto st327;} } + { p--; {stack[top++] = 255;goto st331;} } goto st255; st255: if ( ++p == pe ) @@ -35220,10 +35784,10 @@ case 255: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr921; - case 32: goto tr921; - case 40: goto tr922; - case 41: goto tr923; + case 9: goto tr922; + case 32: goto tr922; + case 40: goto tr923; + case 41: goto tr924; case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; @@ -35234,33 +35798,33 @@ case 255: case 109: goto tr34; case 115: goto st213; case 119: goto tr36; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr924; - case 2107: goto tr925; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr925; + case 2107: goto tr926; } if ( 48 <= _widec && _widec <= 57 ) goto tr31; - goto tr920; -tr927: + goto tr921; +tr928: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st256; -tr928: +tr929: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st256; -tr921: +tr922: { s->r_owner_length = s->dname_tmp_length; } @@ -35269,7 +35833,7 @@ tr921: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -35277,14 +35841,14 @@ tr921: s->buffer_length = 0; } goto st256; -tr922: +tr923: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -35293,7 +35857,7 @@ tr922: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -35301,14 +35865,14 @@ tr922: s->buffer_length = 0; } goto st256; -tr923: +tr924: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -35317,7 +35881,7 @@ tr923: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -35344,8 +35908,8 @@ case 256: switch( _widec ) { case 9: goto st256; case 32: goto st256; - case 40: goto tr927; - case 41: goto tr928; + case 40: goto tr928; + case 41: goto tr929; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -35382,27 +35946,27 @@ case 256: case 117: goto tr20; case 119: goto tr21; case 122: goto tr22; - case 1802: goto tr95; - case 1851: goto tr96; - case 2058: goto tr929; - case 2107: goto tr930; + case 1802: goto tr96; + case 1851: goto tr97; + case 2058: goto tr930; + case 2107: goto tr931; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; goto tr0; -tr930: +tr931: { s->buffer_length = 0; } goto st257; -tr931: +tr932: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st257; -tr925: +tr926: { s->r_owner_length = s->dname_tmp_length; } @@ -35414,7 +35978,7 @@ tr925: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -35445,16 +36009,16 @@ case 257: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr98; - case 2058: goto tr932; + case 1802: goto tr99; + case 2058: goto tr933; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr931; + goto tr932; } else if ( _widec >= 1664 ) - goto tr97; - goto tr154; -tr4282: + goto tr98; + goto tr155; +tr4311: { s->r_class = s->default_class; } @@ -35465,99 +36029,100 @@ tr4282: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 258;goto st1089;} + {stack[top++] = 258;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 258;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 258;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 258;goto st1093;} + {stack[top++] = 258;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 258;goto st1125;} + {stack[top++] = 258;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 258;goto st1130;} + {stack[top++] = 258;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 258;goto st1135;} + {stack[top++] = 258;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 258;goto st1140;} + {stack[top++] = 258;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 258;goto st1144;} + {stack[top++] = 258;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 258;goto st1146;} + {stack[top++] = 258;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 258;goto st1201;} + {stack[top++] = 258;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 258;goto st1212;} + {stack[top++] = 258;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 258;goto st1229;} + {stack[top++] = 258;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 258;goto st1240;} + {stack[top++] = 258;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 258;goto st1251;} + {stack[top++] = 258;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 258;goto st1264;} + {stack[top++] = 258;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 258;goto st1274;} + {stack[top++] = 258;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 258;goto st1313;} + {stack[top++] = 258;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 258;goto st1339;} + {stack[top++] = 258;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 258;goto st1342;} + {stack[top++] = 258;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 258;goto st1353;} + {stack[top++] = 258;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 258;goto st1355;} + {stack[top++] = 258;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 258;goto st1384;} + {stack[top++] = 258;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 258;goto st1397;} + {stack[top++] = 258;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 258;goto st1410;} + {stack[top++] = 258;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 258;goto st1416;} + {stack[top++] = 258;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 258;goto st1434;} + {stack[top++] = 258;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 258;goto st1429;} + {stack[top++] = 258;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 258;goto st1447;} + {stack[top++] = 258;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 258;goto st1453;} + {stack[top++] = 258;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 258;goto st1459;} + {stack[top++] = 258;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 258;goto st1467;} + {stack[top++] = 258;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 258;goto st1475;} + {stack[top++] = 258;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 258;goto st1481;} + {stack[top++] = 258;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 258;goto st327;} } + { p--; {stack[top++] = 258;goto st331;} } goto st258; st258: if ( ++p == pe ) @@ -35580,45 +36145,47 @@ case 258: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr934; - case 32: goto tr934; - case 40: goto tr935; - case 41: goto tr936; + case 9: goto tr935; + case 32: goto tr935; + case 40: goto tr936; + case 41: goto tr937; case 65: goto st283; case 70: goto st286; - case 80: goto st290; + case 76: goto st290; + case 80: goto st294; case 97: goto st283; case 102: goto st286; - case 112: goto st290; - case 2826: goto tr89; - case 2875: goto tr90; - case 3082: goto tr937; - case 3131: goto tr938; - case 3338: goto tr872; - case 3387: goto tr873; - case 3594: goto tr939; - case 3643: goto tr940; - } - goto tr933; -tr942: + case 108: goto st290; + case 112: goto st294; + case 2826: goto tr90; + case 2875: goto tr91; + case 3082: goto tr938; + case 3131: goto tr939; + case 3338: goto tr873; + case 3387: goto tr874; + case 3594: goto tr940; + case 3643: goto tr941; + } + goto tr934; +tr943: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st259; -tr943: +tr944: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st259; -tr934: +tr935: { s->r_owner_length = s->dname_tmp_length; } @@ -35631,14 +36198,14 @@ tr934: s->buffer_length = 0; } goto st259; -tr935: +tr936: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -35651,14 +36218,14 @@ tr935: s->buffer_length = 0; } goto st259; -tr936: +tr937: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -35694,68 +36261,68 @@ case 259: switch( _widec ) { case 9: goto st259; case 32: goto st259; - case 40: goto tr942; - case 41: goto tr943; - case 58: goto tr75; - case 65: goto tr124; - case 67: goto tr125; - case 68: goto tr126; - case 69: goto tr127; - case 72: goto tr128; - case 73: goto tr129; - case 75: goto tr130; - case 76: goto tr131; - case 77: goto tr132; - case 78: goto tr133; - case 79: goto tr134; - case 80: goto tr135; - case 82: goto tr136; - case 83: goto tr137; - case 84: goto tr138; - case 85: goto tr139; - case 87: goto tr140; - case 90: goto tr141; - case 92: goto tr80; - case 97: goto tr124; - case 99: goto tr125; - case 100: goto tr126; - case 101: goto tr127; - case 104: goto tr128; - case 105: goto tr129; - case 107: goto tr130; - case 108: goto tr131; - case 109: goto tr132; - case 110: goto tr133; - case 111: goto tr134; - case 112: goto tr135; - case 114: goto tr136; - case 115: goto tr137; - case 116: goto tr138; - case 117: goto tr139; - case 119: goto tr140; - case 122: goto tr141; - case 2826: goto tr95; - case 2875: goto tr96; - case 3082: goto tr944; - case 3131: goto tr900; - case 3338: goto tr114; - case 3387: goto tr115; - case 3594: goto tr945; - case 3643: goto tr901; + case 40: goto tr943; + case 41: goto tr944; + case 58: goto tr76; + case 65: goto tr125; + case 67: goto tr126; + case 68: goto tr127; + case 69: goto tr128; + case 72: goto tr129; + case 73: goto tr130; + case 75: goto tr131; + case 76: goto tr132; + case 77: goto tr133; + case 78: goto tr134; + case 79: goto tr135; + case 80: goto tr136; + case 82: goto tr137; + case 83: goto tr138; + case 84: goto tr139; + case 85: goto tr140; + case 87: goto tr141; + case 90: goto tr142; + case 92: goto tr81; + case 97: goto tr125; + case 99: goto tr126; + case 100: goto tr127; + case 101: goto tr128; + case 104: goto tr129; + case 105: goto tr130; + case 107: goto tr131; + case 108: goto tr132; + case 109: goto tr133; + case 110: goto tr134; + case 111: goto tr135; + case 112: goto tr136; + case 114: goto tr137; + case 115: goto tr138; + case 116: goto tr139; + case 117: goto tr140; + case 119: goto tr141; + case 122: goto tr142; + case 2826: goto tr96; + case 2875: goto tr97; + case 3082: goto tr945; + case 3131: goto tr901; + case 3338: goto tr115; + case 3387: goto tr116; + case 3594: goto tr946; + case 3643: goto tr902; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 47 ) { if ( _widec > 57 ) { if ( 60 <= _widec ) - goto tr75; + goto tr76; } else if ( _widec >= 48 ) - goto tr123; + goto tr124; } else - goto tr75; - goto tr120; -tr146: + goto tr76; + goto tr121; +tr147: { s->line_counter++; } @@ -35763,96 +36330,97 @@ tr146: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1501;goto st1089;} + {stack[top++] = 1513;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1501;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 1513;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1501;goto st1093;} + {stack[top++] = 1513;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1501;goto st1125;} + {stack[top++] = 1513;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1501;goto st1130;} + {stack[top++] = 1513;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1501;goto st1135;} + {stack[top++] = 1513;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1501;goto st1140;} + {stack[top++] = 1513;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1501;goto st1144;} + {stack[top++] = 1513;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1501;goto st1146;} + {stack[top++] = 1513;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1501;goto st1201;} + {stack[top++] = 1513;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1501;goto st1212;} + {stack[top++] = 1513;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1501;goto st1229;} + {stack[top++] = 1513;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 1501;goto st1240;} + {stack[top++] = 1513;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1501;goto st1251;} + {stack[top++] = 1513;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1501;goto st1264;} + {stack[top++] = 1513;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1501;goto st1274;} + {stack[top++] = 1513;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1501;goto st1313;} + {stack[top++] = 1513;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1501;goto st1339;} + {stack[top++] = 1513;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1501;goto st1342;} + {stack[top++] = 1513;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1501;goto st1353;} + {stack[top++] = 1513;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1501;goto st1355;} + {stack[top++] = 1513;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1501;goto st1384;} + {stack[top++] = 1513;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1501;goto st1397;} + {stack[top++] = 1513;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1501;goto st1410;} + {stack[top++] = 1513;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1501;goto st1416;} + {stack[top++] = 1513;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1501;goto st1434;} + {stack[top++] = 1513;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 1501;goto st1429;} + {stack[top++] = 1513;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1501;goto st1447;} + {stack[top++] = 1513;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1501;goto st1453;} + {stack[top++] = 1513;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 1501;goto st1459;} + {stack[top++] = 1513;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1501;goto st1467;} + {stack[top++] = 1513;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1501;goto st1475;} + {stack[top++] = 1513;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1501;goto st1481;} + {stack[top++] = 1513;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } - goto st1501; -tr945: + goto st1513; +tr946: { s->line_counter++; } @@ -35860,98 +36428,99 @@ tr945: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1501;goto st1089;} + {stack[top++] = 1513;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1501;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 1513;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1501;goto st1093;} + {stack[top++] = 1513;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1501;goto st1125;} + {stack[top++] = 1513;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1501;goto st1130;} + {stack[top++] = 1513;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1501;goto st1135;} + {stack[top++] = 1513;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1501;goto st1140;} + {stack[top++] = 1513;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1501;goto st1144;} + {stack[top++] = 1513;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1501;goto st1146;} + {stack[top++] = 1513;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1501;goto st1201;} + {stack[top++] = 1513;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1501;goto st1212;} + {stack[top++] = 1513;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1501;goto st1229;} + {stack[top++] = 1513;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 1501;goto st1240;} + {stack[top++] = 1513;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1501;goto st1251;} + {stack[top++] = 1513;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1501;goto st1264;} + {stack[top++] = 1513;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1501;goto st1274;} + {stack[top++] = 1513;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1501;goto st1313;} + {stack[top++] = 1513;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1501;goto st1339;} + {stack[top++] = 1513;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1501;goto st1342;} + {stack[top++] = 1513;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1501;goto st1353;} + {stack[top++] = 1513;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1501;goto st1355;} + {stack[top++] = 1513;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1501;goto st1384;} + {stack[top++] = 1513;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1501;goto st1397;} + {stack[top++] = 1513;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1501;goto st1410;} + {stack[top++] = 1513;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1501;goto st1416;} + {stack[top++] = 1513;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1501;goto st1434;} + {stack[top++] = 1513;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 1501;goto st1429;} + {stack[top++] = 1513;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1501;goto st1447;} + {stack[top++] = 1513;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1501;goto st1453;} + {stack[top++] = 1513;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 1501;goto st1459;} + {stack[top++] = 1513;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1501;goto st1467;} + {stack[top++] = 1513;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1501;goto st1475;} + {stack[top++] = 1513;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1501;goto st1481;} + {stack[top++] = 1513;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -35964,16 +36533,16 @@ tr945: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1501; goto _out;} + {p++; cs = 1513; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1501; goto _out;} + p--; {p++; cs = 1513; goto _out;} } } - goto st1501; -tr939: + goto st1513; +tr940: { s->r_owner_length = s->dname_tmp_length; } @@ -35988,92 +36557,93 @@ tr939: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1501;goto st1089;} + {stack[top++] = 1513;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1501;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 1513;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1501;goto st1093;} + {stack[top++] = 1513;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1501;goto st1125;} + {stack[top++] = 1513;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1501;goto st1130;} + {stack[top++] = 1513;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1501;goto st1135;} + {stack[top++] = 1513;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1501;goto st1140;} + {stack[top++] = 1513;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1501;goto st1144;} + {stack[top++] = 1513;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1501;goto st1146;} + {stack[top++] = 1513;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1501;goto st1201;} + {stack[top++] = 1513;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1501;goto st1212;} + {stack[top++] = 1513;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1501;goto st1229;} + {stack[top++] = 1513;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 1501;goto st1240;} + {stack[top++] = 1513;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1501;goto st1251;} + {stack[top++] = 1513;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1501;goto st1264;} + {stack[top++] = 1513;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1501;goto st1274;} + {stack[top++] = 1513;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1501;goto st1313;} + {stack[top++] = 1513;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1501;goto st1339;} + {stack[top++] = 1513;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1501;goto st1342;} + {stack[top++] = 1513;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1501;goto st1353;} + {stack[top++] = 1513;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1501;goto st1355;} + {stack[top++] = 1513;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1501;goto st1384;} + {stack[top++] = 1513;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1501;goto st1397;} + {stack[top++] = 1513;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1501;goto st1410;} + {stack[top++] = 1513;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1501;goto st1416;} + {stack[top++] = 1513;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1501;goto st1434;} + {stack[top++] = 1513;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 1501;goto st1429;} + {stack[top++] = 1513;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1501;goto st1447;} + {stack[top++] = 1513;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1501;goto st1453;} + {stack[top++] = 1513;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 1501;goto st1459;} + {stack[top++] = 1513;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1501;goto st1467;} + {stack[top++] = 1513;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1501;goto st1475;} + {stack[top++] = 1513;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1501;goto st1481;} + {stack[top++] = 1513;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { @@ -36083,7 +36653,7 @@ tr939: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->r_data_length = rdata_tail - s->r_data; @@ -36096,16 +36666,16 @@ tr939: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1501; goto _out;} + {p++; cs = 1513; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1501; goto _out;} + p--; {p++; cs = 1513; goto _out;} } } - goto st1501; -tr4210: + goto st1513; +tr4239: { s->line_counter++; } @@ -36113,109 +36683,110 @@ tr4210: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1501;goto st1089;} + {stack[top++] = 1513;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 1501;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 1513;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1501;goto st1093;} + {stack[top++] = 1513;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1501;goto st1125;} + {stack[top++] = 1513;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1501;goto st1130;} + {stack[top++] = 1513;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1501;goto st1135;} + {stack[top++] = 1513;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1501;goto st1140;} + {stack[top++] = 1513;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1501;goto st1144;} + {stack[top++] = 1513;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1501;goto st1146;} + {stack[top++] = 1513;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1501;goto st1201;} + {stack[top++] = 1513;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1501;goto st1212;} + {stack[top++] = 1513;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1501;goto st1229;} + {stack[top++] = 1513;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 1501;goto st1240;} + {stack[top++] = 1513;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1501;goto st1251;} + {stack[top++] = 1513;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1501;goto st1264;} + {stack[top++] = 1513;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1501;goto st1274;} + {stack[top++] = 1513;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1501;goto st1313;} + {stack[top++] = 1513;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1501;goto st1339;} + {stack[top++] = 1513;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1501;goto st1342;} + {stack[top++] = 1513;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1501;goto st1353;} + {stack[top++] = 1513;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1501;goto st1355;} + {stack[top++] = 1513;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1501;goto st1384;} + {stack[top++] = 1513;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1501;goto st1397;} + {stack[top++] = 1513;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1501;goto st1410;} + {stack[top++] = 1513;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1501;goto st1416;} + {stack[top++] = 1513;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1501;goto st1434;} + {stack[top++] = 1513;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 1501;goto st1429;} + {stack[top++] = 1513;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1501;goto st1447;} + {stack[top++] = 1513;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1501;goto st1453;} + {stack[top++] = 1513;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 1501;goto st1459;} + {stack[top++] = 1513;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1501;goto st1467;} + {stack[top++] = 1513;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1501;goto st1475;} + {stack[top++] = 1513;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1501;goto st1481;} + {stack[top++] = 1513;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1501; -st1501: + goto st1513; +st1513: if ( ++p == pe ) - goto _test_eof1501; -case 1501: + goto _test_eof1513; +case 1513: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36233,88 +36804,88 @@ case 1501: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4275; - case 32: goto tr4275; - case 36: goto tr4201; - case 40: goto tr4276; - case 41: goto tr4277; - case 42: goto tr4204; - case 58: goto tr75; - case 65: goto tr4282; - case 67: goto tr4283; - case 68: goto tr4284; - case 69: goto tr4285; - case 72: goto tr4286; - case 73: goto tr4287; - case 75: goto tr4288; - case 76: goto tr4289; - case 77: goto tr4290; - case 78: goto tr4291; - case 79: goto tr4292; - case 80: goto tr4293; - case 82: goto tr4294; - case 83: goto tr4295; - case 84: goto tr4296; - case 85: goto tr4297; - case 87: goto tr4298; - case 90: goto tr4299; - case 92: goto tr4205; - case 95: goto tr4204; - case 97: goto tr4282; - case 99: goto tr4283; - case 100: goto tr4284; - case 101: goto tr4285; - case 104: goto tr4286; - case 105: goto tr4287; - case 107: goto tr4288; - case 108: goto tr4289; - case 109: goto tr4290; - case 110: goto tr4291; - case 111: goto tr4292; - case 112: goto tr4293; - case 114: goto tr4294; - case 115: goto tr4295; - case 116: goto tr4296; - case 117: goto tr4297; - case 119: goto tr4298; - case 122: goto tr4299; - case 2826: goto tr89; - case 2875: goto tr90; - case 3082: goto tr4300; - case 3131: goto tr4278; - case 3338: goto tr107; - case 3387: goto tr108; - case 3594: goto tr4300; - case 3643: goto tr4279; + case 9: goto tr4304; + case 32: goto tr4304; + case 36: goto tr4230; + case 40: goto tr4305; + case 41: goto tr4306; + case 42: goto tr4233; + case 58: goto tr76; + case 65: goto tr4311; + case 67: goto tr4312; + case 68: goto tr4313; + case 69: goto tr4314; + case 72: goto tr4315; + case 73: goto tr4316; + case 75: goto tr4317; + case 76: goto tr4318; + case 77: goto tr4319; + case 78: goto tr4320; + case 79: goto tr4321; + case 80: goto tr4322; + case 82: goto tr4323; + case 83: goto tr4324; + case 84: goto tr4325; + case 85: goto tr4326; + case 87: goto tr4327; + case 90: goto tr4328; + case 92: goto tr4234; + case 95: goto tr4233; + case 97: goto tr4311; + case 99: goto tr4312; + case 100: goto tr4313; + case 101: goto tr4314; + case 104: goto tr4315; + case 105: goto tr4316; + case 107: goto tr4317; + case 108: goto tr4318; + case 109: goto tr4319; + case 110: goto tr4320; + case 111: goto tr4321; + case 112: goto tr4322; + case 114: goto tr4323; + case 115: goto tr4324; + case 116: goto tr4325; + case 117: goto tr4326; + case 119: goto tr4327; + case 122: goto tr4328; + case 2826: goto tr90; + case 2875: goto tr91; + case 3082: goto tr4329; + case 3131: goto tr4307; + case 3338: goto tr108; + case 3387: goto tr109; + case 3594: goto tr4329; + case 3643: goto tr4308; } if ( _widec < 60 ) { if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 44 ) { if ( _widec > 47 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4281; + goto tr4310; } else if ( _widec >= 45 ) - goto tr4204; + goto tr4233; } else - goto tr75; + goto tr76; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 89 ) - goto tr4204; + goto tr4233; } else if ( _widec > 96 ) { if ( _widec > 121 ) { if ( 123 <= _widec ) - goto tr75; + goto tr76; } else if ( _widec >= 98 ) - goto tr4204; + goto tr4233; } else - goto tr75; + goto tr76; } else - goto tr75; - goto tr4280; -tr4283: + goto tr76; + goto tr4309; +tr4312: { s->r_class = s->default_class; } @@ -36325,99 +36896,100 @@ tr4283: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 260;goto st1089;} + {stack[top++] = 260;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 260;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 260;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 260;goto st1093;} + {stack[top++] = 260;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 260;goto st1125;} + {stack[top++] = 260;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 260;goto st1130;} + {stack[top++] = 260;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 260;goto st1135;} + {stack[top++] = 260;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 260;goto st1140;} + {stack[top++] = 260;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 260;goto st1144;} + {stack[top++] = 260;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 260;goto st1146;} + {stack[top++] = 260;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 260;goto st1201;} + {stack[top++] = 260;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 260;goto st1212;} + {stack[top++] = 260;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 260;goto st1229;} + {stack[top++] = 260;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 260;goto st1240;} + {stack[top++] = 260;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 260;goto st1251;} + {stack[top++] = 260;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 260;goto st1264;} + {stack[top++] = 260;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 260;goto st1274;} + {stack[top++] = 260;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 260;goto st1313;} + {stack[top++] = 260;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 260;goto st1339;} + {stack[top++] = 260;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 260;goto st1342;} + {stack[top++] = 260;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 260;goto st1353;} + {stack[top++] = 260;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 260;goto st1355;} + {stack[top++] = 260;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 260;goto st1384;} + {stack[top++] = 260;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 260;goto st1397;} + {stack[top++] = 260;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 260;goto st1410;} + {stack[top++] = 260;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 260;goto st1416;} + {stack[top++] = 260;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 260;goto st1434;} + {stack[top++] = 260;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 260;goto st1429;} + {stack[top++] = 260;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 260;goto st1447;} + {stack[top++] = 260;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 260;goto st1453;} + {stack[top++] = 260;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 260;goto st1459;} + {stack[top++] = 260;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 260;goto st1467;} + {stack[top++] = 260;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 260;goto st1475;} + {stack[top++] = 260;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 260;goto st1481;} + {stack[top++] = 260;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 260;goto st327;} } + { p--; {stack[top++] = 260;goto st331;} } goto st260; st260: if ( ++p == pe ) @@ -36436,10 +37008,10 @@ case 260: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 65: goto st18; case 68: goto st22; case 69: goto st29; @@ -36450,13 +37022,13 @@ case 260: case 101: goto st29; case 110: goto st32; case 115: goto st36; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4284: + goto tr934; +tr4313: { s->r_class = s->default_class; } @@ -36467,99 +37039,100 @@ tr4284: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 261;goto st1089;} + {stack[top++] = 261;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 261;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 261;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 261;goto st1093;} + {stack[top++] = 261;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 261;goto st1125;} + {stack[top++] = 261;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 261;goto st1130;} + {stack[top++] = 261;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 261;goto st1135;} + {stack[top++] = 261;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 261;goto st1140;} + {stack[top++] = 261;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 261;goto st1144;} + {stack[top++] = 261;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 261;goto st1146;} + {stack[top++] = 261;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 261;goto st1201;} + {stack[top++] = 261;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 261;goto st1212;} + {stack[top++] = 261;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 261;goto st1229;} + {stack[top++] = 261;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 261;goto st1240;} + {stack[top++] = 261;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 261;goto st1251;} + {stack[top++] = 261;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 261;goto st1264;} + {stack[top++] = 261;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 261;goto st1274;} + {stack[top++] = 261;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 261;goto st1313;} + {stack[top++] = 261;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 261;goto st1339;} + {stack[top++] = 261;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 261;goto st1342;} + {stack[top++] = 261;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 261;goto st1353;} + {stack[top++] = 261;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 261;goto st1355;} + {stack[top++] = 261;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 261;goto st1384;} + {stack[top++] = 261;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 261;goto st1397;} + {stack[top++] = 261;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 261;goto st1410;} + {stack[top++] = 261;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 261;goto st1416;} + {stack[top++] = 261;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 261;goto st1434;} + {stack[top++] = 261;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 261;goto st1429;} + {stack[top++] = 261;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 261;goto st1447;} + {stack[top++] = 261;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 261;goto st1453;} + {stack[top++] = 261;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 261;goto st1459;} + {stack[top++] = 261;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 261;goto st1467;} + {stack[top++] = 261;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 261;goto st1475;} + {stack[top++] = 261;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 261;goto st1481;} + {stack[top++] = 261;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 261;goto st327;} } + { p--; {stack[top++] = 261;goto st331;} } goto st261; st261: if ( ++p == pe ) @@ -36578,23 +37151,23 @@ case 261: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 72: goto st41; case 78: goto st45; case 83: goto st53; case 104: goto st41; case 110: goto st45; case 115: goto st53; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4285: + goto tr934; +tr4314: { s->r_class = s->default_class; } @@ -36605,99 +37178,100 @@ tr4285: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 262;goto st1089;} + {stack[top++] = 262;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 262;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 262;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 262;goto st1093;} + {stack[top++] = 262;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 262;goto st1125;} + {stack[top++] = 262;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 262;goto st1130;} + {stack[top++] = 262;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 262;goto st1135;} + {stack[top++] = 262;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 262;goto st1140;} + {stack[top++] = 262;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 262;goto st1144;} + {stack[top++] = 262;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 262;goto st1146;} + {stack[top++] = 262;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 262;goto st1201;} + {stack[top++] = 262;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 262;goto st1212;} + {stack[top++] = 262;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 262;goto st1229;} + {stack[top++] = 262;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 262;goto st1240;} + {stack[top++] = 262;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 262;goto st1251;} + {stack[top++] = 262;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 262;goto st1264;} + {stack[top++] = 262;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 262;goto st1274;} + {stack[top++] = 262;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 262;goto st1313;} + {stack[top++] = 262;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 262;goto st1339;} + {stack[top++] = 262;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 262;goto st1342;} + {stack[top++] = 262;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 262;goto st1353;} + {stack[top++] = 262;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 262;goto st1355;} + {stack[top++] = 262;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 262;goto st1384;} + {stack[top++] = 262;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 262;goto st1397;} + {stack[top++] = 262;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 262;goto st1410;} + {stack[top++] = 262;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 262;goto st1416;} + {stack[top++] = 262;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 262;goto st1434;} + {stack[top++] = 262;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 262;goto st1429;} + {stack[top++] = 262;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 262;goto st1447;} + {stack[top++] = 262;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 262;goto st1453;} + {stack[top++] = 262;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 262;goto st1459;} + {stack[top++] = 262;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 262;goto st1467;} + {stack[top++] = 262;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 262;goto st1475;} + {stack[top++] = 262;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 262;goto st1481;} + {stack[top++] = 262;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 262;goto st327;} } + { p--; {stack[top++] = 262;goto st331;} } goto st262; st262: if ( ++p == pe ) @@ -36716,19 +37290,19 @@ case 262: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 85: goto st58; case 117: goto st58; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4286: + goto tr934; +tr4315: { s->r_class = s->default_class; } @@ -36739,99 +37313,100 @@ tr4286: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 263;goto st1089;} + {stack[top++] = 263;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 263;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 263;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 263;goto st1093;} + {stack[top++] = 263;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 263;goto st1125;} + {stack[top++] = 263;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 263;goto st1130;} + {stack[top++] = 263;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 263;goto st1135;} + {stack[top++] = 263;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 263;goto st1140;} + {stack[top++] = 263;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 263;goto st1144;} + {stack[top++] = 263;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 263;goto st1146;} + {stack[top++] = 263;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 263;goto st1201;} + {stack[top++] = 263;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 263;goto st1212;} + {stack[top++] = 263;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 263;goto st1229;} + {stack[top++] = 263;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 263;goto st1240;} + {stack[top++] = 263;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 263;goto st1251;} + {stack[top++] = 263;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 263;goto st1264;} + {stack[top++] = 263;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 263;goto st1274;} + {stack[top++] = 263;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 263;goto st1313;} + {stack[top++] = 263;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 263;goto st1339;} + {stack[top++] = 263;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 263;goto st1342;} + {stack[top++] = 263;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 263;goto st1353;} + {stack[top++] = 263;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 263;goto st1355;} + {stack[top++] = 263;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 263;goto st1384;} + {stack[top++] = 263;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 263;goto st1397;} + {stack[top++] = 263;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 263;goto st1410;} + {stack[top++] = 263;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 263;goto st1416;} + {stack[top++] = 263;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 263;goto st1434;} + {stack[top++] = 263;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 263;goto st1429;} + {stack[top++] = 263;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 263;goto st1447;} + {stack[top++] = 263;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 263;goto st1453;} + {stack[top++] = 263;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 263;goto st1459;} + {stack[top++] = 263;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 263;goto st1467;} + {stack[top++] = 263;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 263;goto st1475;} + {stack[top++] = 263;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 263;goto st1481;} + {stack[top++] = 263;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 263;goto st327;} } + { p--; {stack[top++] = 263;goto st331;} } goto st263; st263: if ( ++p == pe ) @@ -36850,21 +37425,21 @@ case 263: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 73: goto st65; case 84: goto st69; case 105: goto st65; case 116: goto st69; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4287: + goto tr934; +tr4316: { s->r_class = s->default_class; } @@ -36875,99 +37450,100 @@ tr4287: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 264;goto st1089;} + {stack[top++] = 264;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 264;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 264;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 264;goto st1093;} + {stack[top++] = 264;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 264;goto st1125;} + {stack[top++] = 264;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 264;goto st1130;} + {stack[top++] = 264;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 264;goto st1135;} + {stack[top++] = 264;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 264;goto st1140;} + {stack[top++] = 264;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 264;goto st1144;} + {stack[top++] = 264;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 264;goto st1146;} + {stack[top++] = 264;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 264;goto st1201;} + {stack[top++] = 264;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 264;goto st1212;} + {stack[top++] = 264;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 264;goto st1229;} + {stack[top++] = 264;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 264;goto st1240;} + {stack[top++] = 264;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 264;goto st1251;} + {stack[top++] = 264;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 264;goto st1264;} + {stack[top++] = 264;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 264;goto st1274;} + {stack[top++] = 264;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 264;goto st1313;} + {stack[top++] = 264;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 264;goto st1339;} + {stack[top++] = 264;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 264;goto st1342;} + {stack[top++] = 264;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 264;goto st1353;} + {stack[top++] = 264;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 264;goto st1355;} + {stack[top++] = 264;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 264;goto st1384;} + {stack[top++] = 264;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 264;goto st1397;} + {stack[top++] = 264;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 264;goto st1410;} + {stack[top++] = 264;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 264;goto st1416;} + {stack[top++] = 264;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 264;goto st1434;} + {stack[top++] = 264;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 264;goto st1429;} + {stack[top++] = 264;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 264;goto st1447;} + {stack[top++] = 264;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 264;goto st1453;} + {stack[top++] = 264;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 264;goto st1459;} + {stack[top++] = 264;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 264;goto st1467;} + {stack[top++] = 264;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 264;goto st1475;} + {stack[top++] = 264;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 264;goto st1481;} + {stack[top++] = 264;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 264;goto st327;} } + { p--; {stack[top++] = 264;goto st331;} } goto st264; st264: if ( ++p == pe ) @@ -36986,21 +37562,21 @@ case 264: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 78: goto st191; case 80: goto st77; case 110: goto st191; case 112: goto st77; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4288: + goto tr934; +tr4317: { s->r_class = s->default_class; } @@ -37011,99 +37587,100 @@ tr4288: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 265;goto st1089;} + {stack[top++] = 265;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 265;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 265;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 265;goto st1093;} + {stack[top++] = 265;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 265;goto st1125;} + {stack[top++] = 265;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 265;goto st1130;} + {stack[top++] = 265;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 265;goto st1135;} + {stack[top++] = 265;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 265;goto st1140;} + {stack[top++] = 265;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 265;goto st1144;} + {stack[top++] = 265;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 265;goto st1146;} + {stack[top++] = 265;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 265;goto st1201;} + {stack[top++] = 265;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 265;goto st1212;} + {stack[top++] = 265;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 265;goto st1229;} + {stack[top++] = 265;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 265;goto st1240;} + {stack[top++] = 265;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 265;goto st1251;} + {stack[top++] = 265;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 265;goto st1264;} + {stack[top++] = 265;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 265;goto st1274;} + {stack[top++] = 265;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 265;goto st1313;} + {stack[top++] = 265;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 265;goto st1339;} + {stack[top++] = 265;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 265;goto st1342;} + {stack[top++] = 265;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 265;goto st1353;} + {stack[top++] = 265;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 265;goto st1355;} + {stack[top++] = 265;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 265;goto st1384;} + {stack[top++] = 265;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 265;goto st1397;} + {stack[top++] = 265;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 265;goto st1410;} + {stack[top++] = 265;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 265;goto st1416;} + {stack[top++] = 265;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 265;goto st1434;} + {stack[top++] = 265;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 265;goto st1429;} + {stack[top++] = 265;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 265;goto st1447;} + {stack[top++] = 265;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 265;goto st1453;} + {stack[top++] = 265;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 265;goto st1459;} + {stack[top++] = 265;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 265;goto st1467;} + {stack[top++] = 265;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 265;goto st1475;} + {stack[top++] = 265;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 265;goto st1481;} + {stack[top++] = 265;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 265;goto st327;} } + { p--; {stack[top++] = 265;goto st331;} } goto st265; st265: if ( ++p == pe ) @@ -37122,21 +37699,21 @@ case 265: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 69: goto st85; case 88: goto st87; case 101: goto st85; case 120: goto st87; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4289: + goto tr934; +tr4318: { s->r_class = s->default_class; } @@ -37147,99 +37724,100 @@ tr4289: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 266;goto st1089;} + {stack[top++] = 266;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 266;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 266;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 266;goto st1093;} + {stack[top++] = 266;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 266;goto st1125;} + {stack[top++] = 266;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 266;goto st1130;} + {stack[top++] = 266;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 266;goto st1135;} + {stack[top++] = 266;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 266;goto st1140;} + {stack[top++] = 266;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 266;goto st1144;} + {stack[top++] = 266;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 266;goto st1146;} + {stack[top++] = 266;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 266;goto st1201;} + {stack[top++] = 266;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 266;goto st1212;} + {stack[top++] = 266;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 266;goto st1229;} + {stack[top++] = 266;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 266;goto st1240;} + {stack[top++] = 266;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 266;goto st1251;} + {stack[top++] = 266;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 266;goto st1264;} + {stack[top++] = 266;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 266;goto st1274;} + {stack[top++] = 266;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 266;goto st1313;} + {stack[top++] = 266;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 266;goto st1339;} + {stack[top++] = 266;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 266;goto st1342;} + {stack[top++] = 266;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 266;goto st1353;} + {stack[top++] = 266;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 266;goto st1355;} + {stack[top++] = 266;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 266;goto st1384;} + {stack[top++] = 266;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 266;goto st1397;} + {stack[top++] = 266;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 266;goto st1410;} + {stack[top++] = 266;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 266;goto st1416;} + {stack[top++] = 266;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 266;goto st1434;} + {stack[top++] = 266;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 266;goto st1429;} + {stack[top++] = 266;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 266;goto st1447;} + {stack[top++] = 266;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 266;goto st1453;} + {stack[top++] = 266;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 266;goto st1459;} + {stack[top++] = 266;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 266;goto st1467;} + {stack[top++] = 266;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 266;goto st1475;} + {stack[top++] = 266;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 266;goto st1481;} + {stack[top++] = 266;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 266;goto st327;} } + { p--; {stack[top++] = 266;goto st331;} } goto st266; st266: if ( ++p == pe ) @@ -37258,23 +37836,23 @@ case 266: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 51: goto st89; case 54: goto st91; case 79: goto st93; case 80: goto st95; case 111: goto st93; case 112: goto st95; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4290: + goto tr934; +tr4319: { s->r_class = s->default_class; } @@ -37285,99 +37863,100 @@ tr4290: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 267;goto st1089;} + {stack[top++] = 267;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 267;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 267;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 267;goto st1093;} + {stack[top++] = 267;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 267;goto st1125;} + {stack[top++] = 267;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 267;goto st1130;} + {stack[top++] = 267;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 267;goto st1135;} + {stack[top++] = 267;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 267;goto st1140;} + {stack[top++] = 267;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 267;goto st1144;} + {stack[top++] = 267;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 267;goto st1146;} + {stack[top++] = 267;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 267;goto st1201;} + {stack[top++] = 267;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 267;goto st1212;} + {stack[top++] = 267;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 267;goto st1229;} + {stack[top++] = 267;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 267;goto st1240;} + {stack[top++] = 267;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 267;goto st1251;} + {stack[top++] = 267;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 267;goto st1264;} + {stack[top++] = 267;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 267;goto st1274;} + {stack[top++] = 267;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 267;goto st1313;} + {stack[top++] = 267;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 267;goto st1339;} + {stack[top++] = 267;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 267;goto st1342;} + {stack[top++] = 267;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 267;goto st1353;} + {stack[top++] = 267;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 267;goto st1355;} + {stack[top++] = 267;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 267;goto st1384;} + {stack[top++] = 267;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 267;goto st1397;} + {stack[top++] = 267;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 267;goto st1410;} + {stack[top++] = 267;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 267;goto st1416;} + {stack[top++] = 267;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 267;goto st1434;} + {stack[top++] = 267;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 267;goto st1429;} + {stack[top++] = 267;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 267;goto st1447;} + {stack[top++] = 267;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 267;goto st1453;} + {stack[top++] = 267;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 267;goto st1459;} + {stack[top++] = 267;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 267;goto st1467;} + {stack[top++] = 267;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 267;goto st1475;} + {stack[top++] = 267;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 267;goto st1481;} + {stack[top++] = 267;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 267;goto st327;} } + { p--; {stack[top++] = 267;goto st331;} } goto st267; st267: if ( ++p == pe ) @@ -37396,21 +37975,21 @@ case 267: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 73: goto st97; case 88: goto st101; case 105: goto st97; case 120: goto st101; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4291: + goto tr934; +tr4320: { s->r_class = s->default_class; } @@ -37421,99 +38000,100 @@ tr4291: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 268;goto st1089;} + {stack[top++] = 268;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 268;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 268;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 268;goto st1093;} + {stack[top++] = 268;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 268;goto st1125;} + {stack[top++] = 268;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 268;goto st1130;} + {stack[top++] = 268;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 268;goto st1135;} + {stack[top++] = 268;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 268;goto st1140;} + {stack[top++] = 268;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 268;goto st1144;} + {stack[top++] = 268;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 268;goto st1146;} + {stack[top++] = 268;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 268;goto st1201;} + {stack[top++] = 268;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 268;goto st1212;} + {stack[top++] = 268;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 268;goto st1229;} + {stack[top++] = 268;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 268;goto st1240;} + {stack[top++] = 268;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 268;goto st1251;} + {stack[top++] = 268;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 268;goto st1264;} + {stack[top++] = 268;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 268;goto st1274;} + {stack[top++] = 268;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 268;goto st1313;} + {stack[top++] = 268;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 268;goto st1339;} + {stack[top++] = 268;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 268;goto st1342;} + {stack[top++] = 268;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 268;goto st1353;} + {stack[top++] = 268;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 268;goto st1355;} + {stack[top++] = 268;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 268;goto st1384;} + {stack[top++] = 268;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 268;goto st1397;} + {stack[top++] = 268;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 268;goto st1410;} + {stack[top++] = 268;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 268;goto st1416;} + {stack[top++] = 268;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 268;goto st1434;} + {stack[top++] = 268;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 268;goto st1429;} + {stack[top++] = 268;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 268;goto st1447;} + {stack[top++] = 268;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 268;goto st1453;} + {stack[top++] = 268;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 268;goto st1459;} + {stack[top++] = 268;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 268;goto st1467;} + {stack[top++] = 268;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 268;goto st1475;} + {stack[top++] = 268;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 268;goto st1481;} + {stack[top++] = 268;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 268;goto st327;} } + { p--; {stack[top++] = 268;goto st331;} } goto st268; st268: if ( ++p == pe ) @@ -37532,23 +38112,23 @@ case 268: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 65: goto st103; case 73: goto st107; case 83: goto st109; case 97: goto st103; case 105: goto st107; case 115: goto st109; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4292: + goto tr934; +tr4321: { s->r_class = s->default_class; } @@ -37559,99 +38139,100 @@ tr4292: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 269;goto st1089;} + {stack[top++] = 269;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 269;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 269;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 269;goto st1093;} + {stack[top++] = 269;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 269;goto st1125;} + {stack[top++] = 269;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 269;goto st1130;} + {stack[top++] = 269;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 269;goto st1135;} + {stack[top++] = 269;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 269;goto st1140;} + {stack[top++] = 269;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 269;goto st1144;} + {stack[top++] = 269;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 269;goto st1146;} + {stack[top++] = 269;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 269;goto st1201;} + {stack[top++] = 269;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 269;goto st1212;} + {stack[top++] = 269;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 269;goto st1229;} + {stack[top++] = 269;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 269;goto st1240;} + {stack[top++] = 269;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 269;goto st1251;} + {stack[top++] = 269;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 269;goto st1264;} + {stack[top++] = 269;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 269;goto st1274;} + {stack[top++] = 269;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 269;goto st1313;} + {stack[top++] = 269;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 269;goto st1339;} + {stack[top++] = 269;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 269;goto st1342;} + {stack[top++] = 269;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 269;goto st1353;} + {stack[top++] = 269;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 269;goto st1355;} + {stack[top++] = 269;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 269;goto st1384;} + {stack[top++] = 269;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 269;goto st1397;} + {stack[top++] = 269;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 269;goto st1410;} + {stack[top++] = 269;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 269;goto st1416;} + {stack[top++] = 269;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 269;goto st1434;} + {stack[top++] = 269;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 269;goto st1429;} + {stack[top++] = 269;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 269;goto st1447;} + {stack[top++] = 269;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 269;goto st1453;} + {stack[top++] = 269;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 269;goto st1459;} + {stack[top++] = 269;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 269;goto st1467;} + {stack[top++] = 269;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 269;goto st1475;} + {stack[top++] = 269;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 269;goto st1481;} + {stack[top++] = 269;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 269;goto st327;} } + { p--; {stack[top++] = 269;goto st331;} } goto st269; st269: if ( ++p == pe ) @@ -37670,19 +38251,19 @@ case 269: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 80: goto st119; case 112: goto st119; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4293: + goto tr934; +tr4322: { s->r_class = s->default_class; } @@ -37693,99 +38274,100 @@ tr4293: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 270;goto st1089;} + {stack[top++] = 270;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 270;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 270;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 270;goto st1093;} + {stack[top++] = 270;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 270;goto st1125;} + {stack[top++] = 270;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 270;goto st1130;} + {stack[top++] = 270;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 270;goto st1135;} + {stack[top++] = 270;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 270;goto st1140;} + {stack[top++] = 270;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 270;goto st1144;} + {stack[top++] = 270;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 270;goto st1146;} + {stack[top++] = 270;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 270;goto st1201;} + {stack[top++] = 270;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 270;goto st1212;} + {stack[top++] = 270;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 270;goto st1229;} + {stack[top++] = 270;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 270;goto st1240;} + {stack[top++] = 270;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 270;goto st1251;} + {stack[top++] = 270;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 270;goto st1264;} + {stack[top++] = 270;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 270;goto st1274;} + {stack[top++] = 270;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 270;goto st1313;} + {stack[top++] = 270;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 270;goto st1339;} + {stack[top++] = 270;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 270;goto st1342;} + {stack[top++] = 270;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 270;goto st1353;} + {stack[top++] = 270;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 270;goto st1355;} + {stack[top++] = 270;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 270;goto st1384;} + {stack[top++] = 270;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 270;goto st1397;} + {stack[top++] = 270;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 270;goto st1410;} + {stack[top++] = 270;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 270;goto st1416;} + {stack[top++] = 270;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 270;goto st1434;} + {stack[top++] = 270;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 270;goto st1429;} + {stack[top++] = 270;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 270;goto st1447;} + {stack[top++] = 270;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 270;goto st1453;} + {stack[top++] = 270;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 270;goto st1459;} + {stack[top++] = 270;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 270;goto st1467;} + {stack[top++] = 270;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 270;goto st1475;} + {stack[top++] = 270;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 270;goto st1481;} + {stack[top++] = 270;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 270;goto st327;} } + { p--; {stack[top++] = 270;goto st331;} } goto st270; st270: if ( ++p == pe ) @@ -37804,19 +38386,19 @@ case 270: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 84: goto st129; case 116: goto st129; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4294: + goto tr934; +tr4323: { s->r_class = s->default_class; } @@ -37827,99 +38409,100 @@ tr4294: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 271;goto st1089;} + {stack[top++] = 271;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 271;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 271;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 271;goto st1093;} + {stack[top++] = 271;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 271;goto st1125;} + {stack[top++] = 271;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 271;goto st1130;} + {stack[top++] = 271;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 271;goto st1135;} + {stack[top++] = 271;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 271;goto st1140;} + {stack[top++] = 271;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 271;goto st1144;} + {stack[top++] = 271;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 271;goto st1146;} + {stack[top++] = 271;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 271;goto st1201;} + {stack[top++] = 271;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 271;goto st1212;} + {stack[top++] = 271;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 271;goto st1229;} + {stack[top++] = 271;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 271;goto st1240;} + {stack[top++] = 271;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 271;goto st1251;} + {stack[top++] = 271;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 271;goto st1264;} + {stack[top++] = 271;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 271;goto st1274;} + {stack[top++] = 271;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 271;goto st1313;} + {stack[top++] = 271;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 271;goto st1339;} + {stack[top++] = 271;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 271;goto st1342;} + {stack[top++] = 271;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 271;goto st1353;} + {stack[top++] = 271;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 271;goto st1355;} + {stack[top++] = 271;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 271;goto st1384;} + {stack[top++] = 271;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 271;goto st1397;} + {stack[top++] = 271;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 271;goto st1410;} + {stack[top++] = 271;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 271;goto st1416;} + {stack[top++] = 271;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 271;goto st1434;} + {stack[top++] = 271;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 271;goto st1429;} + {stack[top++] = 271;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 271;goto st1447;} + {stack[top++] = 271;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 271;goto st1453;} + {stack[top++] = 271;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 271;goto st1459;} + {stack[top++] = 271;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 271;goto st1467;} + {stack[top++] = 271;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 271;goto st1475;} + {stack[top++] = 271;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 271;goto st1481;} + {stack[top++] = 271;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 271;goto st327;} } + { p--; {stack[top++] = 271;goto st331;} } goto st271; st271: if ( ++p == pe ) @@ -37938,10 +38521,10 @@ case 271: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 69: goto st132; case 80: goto st138; case 82: goto st139; @@ -37950,13 +38533,13 @@ case 271: case 112: goto st138; case 114: goto st139; case 116: goto st143; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4295: + goto tr934; +tr4324: { s->r_class = s->default_class; } @@ -37967,99 +38550,100 @@ tr4295: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st1089;} + {stack[top++] = 272;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 272;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 272;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st1093;} + {stack[top++] = 272;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st1125;} + {stack[top++] = 272;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st1130;} + {stack[top++] = 272;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st1135;} + {stack[top++] = 272;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st1140;} + {stack[top++] = 272;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st1144;} + {stack[top++] = 272;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st1146;} + {stack[top++] = 272;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st1201;} + {stack[top++] = 272;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1212;} + {stack[top++] = 272;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1229;} + {stack[top++] = 272;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1240;} + {stack[top++] = 272;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1251;} + {stack[top++] = 272;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1264;} + {stack[top++] = 272;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1274;} + {stack[top++] = 272;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1313;} + {stack[top++] = 272;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1339;} + {stack[top++] = 272;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1342;} + {stack[top++] = 272;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1353;} + {stack[top++] = 272;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 272;goto st1355;} + {stack[top++] = 272;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1384;} + {stack[top++] = 272;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1397;} + {stack[top++] = 272;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1410;} + {stack[top++] = 272;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1416;} + {stack[top++] = 272;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1434;} + {stack[top++] = 272;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1429;} + {stack[top++] = 272;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1447;} + {stack[top++] = 272;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1453;} + {stack[top++] = 272;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1459;} + {stack[top++] = 272;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1467;} + {stack[top++] = 272;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1475;} + {stack[top++] = 272;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 272;goto st1481;} + {stack[top++] = 272;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 272;goto st327;} } + { p--; {stack[top++] = 272;goto st331;} } goto st272; st272: if ( ++p == pe ) @@ -38078,10 +38662,10 @@ case 272: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 77: goto st145; case 79: goto st150; case 80: goto st152; @@ -38094,13 +38678,13 @@ case 272: case 114: goto st154; case 115: goto st156; case 118: goto st160; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4296: + goto tr934; +tr4325: { s->r_class = s->default_class; } @@ -38111,99 +38695,100 @@ tr4296: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 273;goto st1089;} + {stack[top++] = 273;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 273;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 273;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 273;goto st1093;} + {stack[top++] = 273;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 273;goto st1125;} + {stack[top++] = 273;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 273;goto st1130;} + {stack[top++] = 273;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 273;goto st1135;} + {stack[top++] = 273;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 273;goto st1140;} + {stack[top++] = 273;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 273;goto st1144;} + {stack[top++] = 273;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 273;goto st1146;} + {stack[top++] = 273;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 273;goto st1201;} + {stack[top++] = 273;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 273;goto st1212;} + {stack[top++] = 273;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 273;goto st1229;} + {stack[top++] = 273;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 273;goto st1240;} + {stack[top++] = 273;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 273;goto st1251;} + {stack[top++] = 273;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 273;goto st1264;} + {stack[top++] = 273;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 273;goto st1274;} + {stack[top++] = 273;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 273;goto st1313;} + {stack[top++] = 273;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 273;goto st1339;} + {stack[top++] = 273;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 273;goto st1342;} + {stack[top++] = 273;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 273;goto st1353;} + {stack[top++] = 273;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 273;goto st1355;} + {stack[top++] = 273;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 273;goto st1384;} + {stack[top++] = 273;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 273;goto st1397;} + {stack[top++] = 273;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 273;goto st1410;} + {stack[top++] = 273;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 273;goto st1416;} + {stack[top++] = 273;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 273;goto st1434;} + {stack[top++] = 273;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 273;goto st1429;} + {stack[top++] = 273;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 273;goto st1447;} + {stack[top++] = 273;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 273;goto st1453;} + {stack[top++] = 273;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 273;goto st1459;} + {stack[top++] = 273;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 273;goto st1467;} + {stack[top++] = 273;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 273;goto st1475;} + {stack[top++] = 273;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 273;goto st1481;} + {stack[top++] = 273;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 273;goto st327;} } + { p--; {stack[top++] = 273;goto st331;} } goto st273; st273: if ( ++p == pe ) @@ -38222,23 +38807,23 @@ case 273: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 76: goto st164; case 88: goto st167; case 89: goto st169; case 108: goto st164; case 120: goto st167; case 121: goto st169; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4297: + goto tr934; +tr4326: { s->r_class = s->default_class; } @@ -38249,99 +38834,100 @@ tr4297: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 274;goto st1089;} + {stack[top++] = 274;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 274;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 274;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 274;goto st1093;} + {stack[top++] = 274;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 274;goto st1125;} + {stack[top++] = 274;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 274;goto st1130;} + {stack[top++] = 274;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 274;goto st1135;} + {stack[top++] = 274;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 274;goto st1140;} + {stack[top++] = 274;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 274;goto st1144;} + {stack[top++] = 274;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 274;goto st1146;} + {stack[top++] = 274;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 274;goto st1201;} + {stack[top++] = 274;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 274;goto st1212;} + {stack[top++] = 274;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 274;goto st1229;} + {stack[top++] = 274;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 274;goto st1240;} + {stack[top++] = 274;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 274;goto st1251;} + {stack[top++] = 274;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 274;goto st1264;} + {stack[top++] = 274;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 274;goto st1274;} + {stack[top++] = 274;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 274;goto st1313;} + {stack[top++] = 274;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 274;goto st1339;} + {stack[top++] = 274;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 274;goto st1342;} + {stack[top++] = 274;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 274;goto st1353;} + {stack[top++] = 274;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 274;goto st1355;} + {stack[top++] = 274;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 274;goto st1384;} + {stack[top++] = 274;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 274;goto st1397;} + {stack[top++] = 274;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 274;goto st1410;} + {stack[top++] = 274;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 274;goto st1416;} + {stack[top++] = 274;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 274;goto st1434;} + {stack[top++] = 274;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 274;goto st1429;} + {stack[top++] = 274;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 274;goto st1447;} + {stack[top++] = 274;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 274;goto st1453;} + {stack[top++] = 274;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 274;goto st1459;} + {stack[top++] = 274;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 274;goto st1467;} + {stack[top++] = 274;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 274;goto st1475;} + {stack[top++] = 274;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 274;goto st1481;} + {stack[top++] = 274;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 274;goto st327;} } + { p--; {stack[top++] = 274;goto st331;} } goto st274; st274: if ( ++p == pe ) @@ -38360,19 +38946,19 @@ case 274: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 82: goto st174; case 114: goto st174; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4298: + goto tr934; +tr4327: { s->r_class = s->default_class; } @@ -38383,99 +38969,100 @@ tr4298: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 275;goto st1089;} + {stack[top++] = 275;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 275;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 275;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 275;goto st1093;} + {stack[top++] = 275;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 275;goto st1125;} + {stack[top++] = 275;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 275;goto st1130;} + {stack[top++] = 275;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 275;goto st1135;} + {stack[top++] = 275;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 275;goto st1140;} + {stack[top++] = 275;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 275;goto st1144;} + {stack[top++] = 275;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 275;goto st1146;} + {stack[top++] = 275;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 275;goto st1201;} + {stack[top++] = 275;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 275;goto st1212;} + {stack[top++] = 275;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 275;goto st1229;} + {stack[top++] = 275;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 275;goto st1240;} + {stack[top++] = 275;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 275;goto st1251;} + {stack[top++] = 275;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 275;goto st1264;} + {stack[top++] = 275;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 275;goto st1274;} + {stack[top++] = 275;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 275;goto st1313;} + {stack[top++] = 275;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 275;goto st1339;} + {stack[top++] = 275;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 275;goto st1342;} + {stack[top++] = 275;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 275;goto st1353;} + {stack[top++] = 275;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 275;goto st1355;} + {stack[top++] = 275;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 275;goto st1384;} + {stack[top++] = 275;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 275;goto st1397;} + {stack[top++] = 275;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 275;goto st1410;} + {stack[top++] = 275;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 275;goto st1416;} + {stack[top++] = 275;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 275;goto st1434;} + {stack[top++] = 275;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 275;goto st1429;} + {stack[top++] = 275;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 275;goto st1447;} + {stack[top++] = 275;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 275;goto st1453;} + {stack[top++] = 275;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 275;goto st1459;} + {stack[top++] = 275;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 275;goto st1467;} + {stack[top++] = 275;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 275;goto st1475;} + {stack[top++] = 275;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 275;goto st1481;} + {stack[top++] = 275;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 275;goto st327;} } + { p--; {stack[top++] = 275;goto st331;} } goto st275; st275: if ( ++p == pe ) @@ -38494,19 +39081,19 @@ case 275: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 65: goto st177; case 97: goto st177; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4299: + goto tr934; +tr4328: { s->r_class = s->default_class; } @@ -38517,99 +39104,100 @@ tr4299: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 276;goto st1089;} + {stack[top++] = 276;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 276;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 276;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 276;goto st1093;} + {stack[top++] = 276;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 276;goto st1125;} + {stack[top++] = 276;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 276;goto st1130;} + {stack[top++] = 276;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 276;goto st1135;} + {stack[top++] = 276;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 276;goto st1140;} + {stack[top++] = 276;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 276;goto st1144;} + {stack[top++] = 276;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 276;goto st1146;} + {stack[top++] = 276;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 276;goto st1201;} + {stack[top++] = 276;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 276;goto st1212;} + {stack[top++] = 276;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 276;goto st1229;} + {stack[top++] = 276;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 276;goto st1240;} + {stack[top++] = 276;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 276;goto st1251;} + {stack[top++] = 276;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 276;goto st1264;} + {stack[top++] = 276;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 276;goto st1274;} + {stack[top++] = 276;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 276;goto st1313;} + {stack[top++] = 276;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 276;goto st1339;} + {stack[top++] = 276;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 276;goto st1342;} + {stack[top++] = 276;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 276;goto st1353;} + {stack[top++] = 276;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 276;goto st1355;} + {stack[top++] = 276;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 276;goto st1384;} + {stack[top++] = 276;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 276;goto st1397;} + {stack[top++] = 276;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 276;goto st1410;} + {stack[top++] = 276;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 276;goto st1416;} + {stack[top++] = 276;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 276;goto st1434;} + {stack[top++] = 276;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 276;goto st1429;} + {stack[top++] = 276;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 276;goto st1447;} + {stack[top++] = 276;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 276;goto st1453;} + {stack[top++] = 276;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 276;goto st1459;} + {stack[top++] = 276;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 276;goto st1467;} + {stack[top++] = 276;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 276;goto st1475;} + {stack[top++] = 276;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 276;goto st1481;} + {stack[top++] = 276;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 276;goto st327;} } + { p--; {stack[top++] = 276;goto st331;} } goto st276; st276: if ( ++p == pe ) @@ -38628,19 +39216,19 @@ case 276: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr915; - case 32: goto tr915; - case 40: goto tr916; - case 41: goto tr917; + case 9: goto tr916; + case 32: goto tr916; + case 40: goto tr917; + case 41: goto tr918; case 79: goto st183; case 111: goto st183; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr918; - case 2107: goto tr919; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr919; + case 2107: goto tr920; } - goto tr933; -tr4205: + goto tr934; +tr4234: { if (pe - p == 1) { *wrap = WRAP_DETECTED; @@ -38650,7 +39238,7 @@ tr4205: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 277;goto st327;} } + { p--; {stack[top++] = 277;goto st331;} } goto st277; st277: if ( ++p == pe ) @@ -38669,26 +39257,26 @@ case 277: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr946; - case 32: goto tr946; - case 35: goto tr100; - case 40: goto tr948; - case 41: goto tr949; - case 1802: goto tr99; - case 1851: goto tr99; - case 2058: goto tr950; - case 2107: goto tr951; + case 9: goto tr947; + case 32: goto tr947; + case 35: goto tr101; + case 40: goto tr949; + case 41: goto tr950; + case 1802: goto tr100; + case 1851: goto tr100; + case 2058: goto tr951; + case 2107: goto tr952; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr99; + goto tr100; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr99; + goto tr100; } else - goto tr99; - goto tr947; -tr946: + goto tr100; + goto tr948; +tr947: { s->r_owner_length = s->dname_tmp_length; } @@ -38701,103 +39289,104 @@ tr946: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 278;goto st1089;} + {stack[top++] = 278;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 278;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 278;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 278;goto st1093;} + {stack[top++] = 278;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 278;goto st1125;} + {stack[top++] = 278;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 278;goto st1130;} + {stack[top++] = 278;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 278;goto st1135;} + {stack[top++] = 278;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 278;goto st1140;} + {stack[top++] = 278;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 278;goto st1144;} + {stack[top++] = 278;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 278;goto st1146;} + {stack[top++] = 278;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 278;goto st1201;} + {stack[top++] = 278;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 278;goto st1212;} + {stack[top++] = 278;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 278;goto st1229;} + {stack[top++] = 278;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 278;goto st1240;} + {stack[top++] = 278;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 278;goto st1251;} + {stack[top++] = 278;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 278;goto st1264;} + {stack[top++] = 278;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 278;goto st1274;} + {stack[top++] = 278;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 278;goto st1313;} + {stack[top++] = 278;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 278;goto st1339;} + {stack[top++] = 278;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 278;goto st1342;} + {stack[top++] = 278;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 278;goto st1353;} + {stack[top++] = 278;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 278;goto st1355;} + {stack[top++] = 278;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 278;goto st1384;} + {stack[top++] = 278;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 278;goto st1397;} + {stack[top++] = 278;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 278;goto st1410;} + {stack[top++] = 278;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 278;goto st1416;} + {stack[top++] = 278;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 278;goto st1434;} + {stack[top++] = 278;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 278;goto st1429;} + {stack[top++] = 278;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 278;goto st1447;} + {stack[top++] = 278;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 278;goto st1453;} + {stack[top++] = 278;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 278;goto st1459;} + {stack[top++] = 278;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 278;goto st1467;} + {stack[top++] = 278;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 278;goto st1475;} + {stack[top++] = 278;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 278;goto st1481;} + {stack[top++] = 278;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st278; -tr948: +tr949: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -38810,103 +39399,104 @@ tr948: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 278;goto st1089;} + {stack[top++] = 278;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 278;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 278;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 278;goto st1093;} + {stack[top++] = 278;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 278;goto st1125;} + {stack[top++] = 278;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 278;goto st1130;} + {stack[top++] = 278;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 278;goto st1135;} + {stack[top++] = 278;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 278;goto st1140;} + {stack[top++] = 278;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 278;goto st1144;} + {stack[top++] = 278;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 278;goto st1146;} + {stack[top++] = 278;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 278;goto st1201;} + {stack[top++] = 278;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 278;goto st1212;} + {stack[top++] = 278;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 278;goto st1229;} + {stack[top++] = 278;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 278;goto st1240;} + {stack[top++] = 278;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 278;goto st1251;} + {stack[top++] = 278;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 278;goto st1264;} + {stack[top++] = 278;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 278;goto st1274;} + {stack[top++] = 278;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 278;goto st1313;} + {stack[top++] = 278;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 278;goto st1339;} + {stack[top++] = 278;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 278;goto st1342;} + {stack[top++] = 278;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 278;goto st1353;} + {stack[top++] = 278;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 278;goto st1355;} + {stack[top++] = 278;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 278;goto st1384;} + {stack[top++] = 278;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 278;goto st1397;} + {stack[top++] = 278;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 278;goto st1410;} + {stack[top++] = 278;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 278;goto st1416;} + {stack[top++] = 278;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 278;goto st1434;} + {stack[top++] = 278;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 278;goto st1429;} + {stack[top++] = 278;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 278;goto st1447;} + {stack[top++] = 278;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 278;goto st1453;} + {stack[top++] = 278;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 278;goto st1459;} + {stack[top++] = 278;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 278;goto st1467;} + {stack[top++] = 278;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 278;goto st1475;} + {stack[top++] = 278;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 278;goto st1481;} + {stack[top++] = 278;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st278; -tr949: +tr950: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -38919,96 +39509,97 @@ tr949: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 278;goto st1089;} + {stack[top++] = 278;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 278;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 278;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 278;goto st1093;} + {stack[top++] = 278;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 278;goto st1125;} + {stack[top++] = 278;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 278;goto st1130;} + {stack[top++] = 278;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 278;goto st1135;} + {stack[top++] = 278;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 278;goto st1140;} + {stack[top++] = 278;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 278;goto st1144;} + {stack[top++] = 278;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 278;goto st1146;} + {stack[top++] = 278;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 278;goto st1201;} + {stack[top++] = 278;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 278;goto st1212;} + {stack[top++] = 278;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 278;goto st1229;} + {stack[top++] = 278;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 278;goto st1240;} + {stack[top++] = 278;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 278;goto st1251;} + {stack[top++] = 278;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 278;goto st1264;} + {stack[top++] = 278;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 278;goto st1274;} + {stack[top++] = 278;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 278;goto st1313;} + {stack[top++] = 278;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 278;goto st1339;} + {stack[top++] = 278;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 278;goto st1342;} + {stack[top++] = 278;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 278;goto st1353;} + {stack[top++] = 278;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 278;goto st1355;} + {stack[top++] = 278;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 278;goto st1384;} + {stack[top++] = 278;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 278;goto st1397;} + {stack[top++] = 278;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 278;goto st1410;} + {stack[top++] = 278;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 278;goto st1416;} + {stack[top++] = 278;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 278;goto st1434;} + {stack[top++] = 278;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 278;goto st1429;} + {stack[top++] = 278;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 278;goto st1447;} + {stack[top++] = 278;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 278;goto st1453;} + {stack[top++] = 278;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 278;goto st1459;} + {stack[top++] = 278;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 278;goto st1467;} + {stack[top++] = 278;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 278;goto st1475;} + {stack[top++] = 278;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 278;goto st1481;} + {stack[top++] = 278;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st278; -tr950: +tr951: { s->r_owner_length = s->dname_tmp_length; } @@ -39024,92 +39615,93 @@ tr950: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 278;goto st1089;} + {stack[top++] = 278;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 278;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 278;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 278;goto st1093;} + {stack[top++] = 278;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 278;goto st1125;} + {stack[top++] = 278;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 278;goto st1130;} + {stack[top++] = 278;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 278;goto st1135;} + {stack[top++] = 278;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 278;goto st1140;} + {stack[top++] = 278;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 278;goto st1144;} + {stack[top++] = 278;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 278;goto st1146;} + {stack[top++] = 278;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 278;goto st1201;} + {stack[top++] = 278;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 278;goto st1212;} + {stack[top++] = 278;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 278;goto st1229;} + {stack[top++] = 278;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 278;goto st1240;} + {stack[top++] = 278;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 278;goto st1251;} + {stack[top++] = 278;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 278;goto st1264;} + {stack[top++] = 278;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 278;goto st1274;} + {stack[top++] = 278;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 278;goto st1313;} + {stack[top++] = 278;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 278;goto st1339;} + {stack[top++] = 278;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 278;goto st1342;} + {stack[top++] = 278;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 278;goto st1353;} + {stack[top++] = 278;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 278;goto st1355;} + {stack[top++] = 278;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 278;goto st1384;} + {stack[top++] = 278;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 278;goto st1397;} + {stack[top++] = 278;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 278;goto st1410;} + {stack[top++] = 278;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 278;goto st1416;} + {stack[top++] = 278;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 278;goto st1434;} + {stack[top++] = 278;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 278;goto st1429;} + {stack[top++] = 278;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 278;goto st1447;} + {stack[top++] = 278;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 278;goto st1453;} + {stack[top++] = 278;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 278;goto st1459;} + {stack[top++] = 278;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 278;goto st1467;} + {stack[top++] = 278;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 278;goto st1475;} + {stack[top++] = 278;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 278;goto st1481;} + {stack[top++] = 278;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st278; @@ -39130,10 +39722,10 @@ case 278: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr952; - case 32: goto tr952; - case 40: goto tr953; - case 41: goto tr954; + case 9: goto tr953; + case 32: goto tr953; + case 40: goto tr954; + case 41: goto tr955; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -39170,15 +39762,15 @@ case 278: case 117: goto tr20; case 119: goto tr21; case 122: goto tr22; - case 1802: goto tr89; - case 1851: goto tr90; - case 2058: goto tr955; - case 2107: goto tr956; + case 1802: goto tr90; + case 1851: goto tr91; + case 2058: goto tr956; + case 2107: goto tr957; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; - goto tr120; -tr951: + goto tr121; +tr952: { s->r_owner_length = s->dname_tmp_length; } @@ -39194,92 +39786,93 @@ tr951: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 279;goto st1089;} + {stack[top++] = 279;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 279;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 279;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 279;goto st1093;} + {stack[top++] = 279;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 279;goto st1125;} + {stack[top++] = 279;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 279;goto st1130;} + {stack[top++] = 279;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 279;goto st1135;} + {stack[top++] = 279;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 279;goto st1140;} + {stack[top++] = 279;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 279;goto st1144;} + {stack[top++] = 279;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 279;goto st1146;} + {stack[top++] = 279;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 279;goto st1201;} + {stack[top++] = 279;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 279;goto st1212;} + {stack[top++] = 279;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 279;goto st1229;} + {stack[top++] = 279;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 279;goto st1240;} + {stack[top++] = 279;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 279;goto st1251;} + {stack[top++] = 279;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 279;goto st1264;} + {stack[top++] = 279;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 279;goto st1274;} + {stack[top++] = 279;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 279;goto st1313;} + {stack[top++] = 279;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 279;goto st1339;} + {stack[top++] = 279;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 279;goto st1342;} + {stack[top++] = 279;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 279;goto st1353;} + {stack[top++] = 279;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 279;goto st1355;} + {stack[top++] = 279;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 279;goto st1384;} + {stack[top++] = 279;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 279;goto st1397;} + {stack[top++] = 279;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 279;goto st1410;} + {stack[top++] = 279;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 279;goto st1416;} + {stack[top++] = 279;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 279;goto st1434;} + {stack[top++] = 279;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 279;goto st1429;} + {stack[top++] = 279;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 279;goto st1447;} + {stack[top++] = 279;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 279;goto st1453;} + {stack[top++] = 279;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 279;goto st1459;} + {stack[top++] = 279;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 279;goto st1467;} + {stack[top++] = 279;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 279;goto st1475;} + {stack[top++] = 279;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 279;goto st1481;} + {stack[top++] = 279;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st279; @@ -39318,30 +39911,30 @@ case 279: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr86; - case 1802: goto tr89; - case 1824: goto tr86; - case 1832: goto tr87; - case 1833: goto tr88; - case 1851: goto tr90; - case 2057: goto tr957; - case 2058: goto tr958; - case 2080: goto tr957; - case 2088: goto tr959; - case 2089: goto tr960; - case 2107: goto tr961; + case 1801: goto tr87; + case 1802: goto tr90; + case 1824: goto tr87; + case 1832: goto tr88; + case 1833: goto tr89; + case 1851: goto tr91; + case 2057: goto tr958; + case 2058: goto tr959; + case 2080: goto tr958; + case 2088: goto tr960; + case 2089: goto tr961; + case 2107: goto tr962; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr820; - goto tr85; -tr962: + goto tr821; + goto tr86; +tr963: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st280; -tr957: +tr958: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39352,7 +39945,7 @@ tr957: s->buffer_length = 0; } goto st280; -tr959: +tr960: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39365,12 +39958,12 @@ tr959: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st280; -tr960: +tr961: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39383,12 +39976,12 @@ tr960: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st280; -tr963: +tr964: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39397,12 +39990,12 @@ tr963: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st280; -tr964: +tr965: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39411,7 +40004,7 @@ tr964: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -39452,22 +40045,22 @@ case 280: } switch( _widec ) { case 1801: goto st7; - case 1802: goto tr95; + case 1802: goto tr96; case 1824: goto st7; - case 1832: goto tr93; - case 1833: goto tr94; - case 1851: goto tr96; - case 2057: goto tr962; - case 2058: goto tr887; - case 2080: goto tr962; - case 2088: goto tr963; - case 2089: goto tr964; - case 2107: goto tr965; + case 1832: goto tr94; + case 1833: goto tr95; + case 1851: goto tr97; + case 2057: goto tr963; + case 2058: goto tr888; + case 2080: goto tr963; + case 2088: goto tr964; + case 2089: goto tr965; + case 2107: goto tr966; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr820; - goto tr91; -tr901: + goto tr821; + goto tr92; +tr902: { s->buffer_length = 0; } @@ -39475,96 +40068,97 @@ tr901: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 281;goto st1089;} + {stack[top++] = 281;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 281;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 281;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 281;goto st1093;} + {stack[top++] = 281;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 281;goto st1125;} + {stack[top++] = 281;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 281;goto st1130;} + {stack[top++] = 281;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 281;goto st1135;} + {stack[top++] = 281;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 281;goto st1140;} + {stack[top++] = 281;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 281;goto st1144;} + {stack[top++] = 281;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 281;goto st1146;} + {stack[top++] = 281;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 281;goto st1201;} + {stack[top++] = 281;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 281;goto st1212;} + {stack[top++] = 281;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 281;goto st1229;} + {stack[top++] = 281;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 281;goto st1240;} + {stack[top++] = 281;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 281;goto st1251;} + {stack[top++] = 281;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 281;goto st1264;} + {stack[top++] = 281;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 281;goto st1274;} + {stack[top++] = 281;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 281;goto st1313;} + {stack[top++] = 281;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 281;goto st1339;} + {stack[top++] = 281;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 281;goto st1342;} + {stack[top++] = 281;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 281;goto st1353;} + {stack[top++] = 281;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 281;goto st1355;} + {stack[top++] = 281;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 281;goto st1384;} + {stack[top++] = 281;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 281;goto st1397;} + {stack[top++] = 281;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 281;goto st1410;} + {stack[top++] = 281;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 281;goto st1416;} + {stack[top++] = 281;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 281;goto st1434;} + {stack[top++] = 281;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 281;goto st1429;} + {stack[top++] = 281;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 281;goto st1447;} + {stack[top++] = 281;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 281;goto st1453;} + {stack[top++] = 281;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 281;goto st1459;} + {stack[top++] = 281;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 281;goto st1467;} + {stack[top++] = 281;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 281;goto st1475;} + {stack[top++] = 281;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 281;goto st1481;} + {stack[top++] = 281;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } goto st281; -tr1032: +tr1044: { s->buffer_length = 0; } @@ -39572,92 +40166,93 @@ tr1032: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 281;goto st1089;} + {stack[top++] = 281;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 281;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 281;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 281;goto st1093;} + {stack[top++] = 281;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 281;goto st1125;} + {stack[top++] = 281;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 281;goto st1130;} + {stack[top++] = 281;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 281;goto st1135;} + {stack[top++] = 281;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 281;goto st1140;} + {stack[top++] = 281;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 281;goto st1144;} + {stack[top++] = 281;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 281;goto st1146;} + {stack[top++] = 281;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 281;goto st1201;} + {stack[top++] = 281;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 281;goto st1212;} + {stack[top++] = 281;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 281;goto st1229;} + {stack[top++] = 281;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 281;goto st1240;} + {stack[top++] = 281;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 281;goto st1251;} + {stack[top++] = 281;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 281;goto st1264;} + {stack[top++] = 281;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 281;goto st1274;} + {stack[top++] = 281;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 281;goto st1313;} + {stack[top++] = 281;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 281;goto st1339;} + {stack[top++] = 281;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 281;goto st1342;} + {stack[top++] = 281;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 281;goto st1353;} + {stack[top++] = 281;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 281;goto st1355;} + {stack[top++] = 281;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 281;goto st1384;} + {stack[top++] = 281;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 281;goto st1397;} + {stack[top++] = 281;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 281;goto st1410;} + {stack[top++] = 281;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 281;goto st1416;} + {stack[top++] = 281;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 281;goto st1434;} + {stack[top++] = 281;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 281;goto st1429;} + {stack[top++] = 281;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 281;goto st1447;} + {stack[top++] = 281;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 281;goto st1453;} + {stack[top++] = 281;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 281;goto st1459;} + {stack[top++] = 281;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 281;goto st1467;} + {stack[top++] = 281;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 281;goto st1475;} + {stack[top++] = 281;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 281;goto st1481;} + {stack[top++] = 281;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { @@ -39665,7 +40260,7 @@ tr1032: s->buffer_length = 0; } goto st281; -tr940: +tr941: { s->r_owner_length = s->dname_tmp_length; } @@ -39680,92 +40275,93 @@ tr940: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 281;goto st1089;} + {stack[top++] = 281;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 281;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 281;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 281;goto st1093;} + {stack[top++] = 281;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 281;goto st1125;} + {stack[top++] = 281;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 281;goto st1130;} + {stack[top++] = 281;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 281;goto st1135;} + {stack[top++] = 281;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 281;goto st1140;} + {stack[top++] = 281;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 281;goto st1144;} + {stack[top++] = 281;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 281;goto st1146;} + {stack[top++] = 281;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 281;goto st1201;} + {stack[top++] = 281;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 281;goto st1212;} + {stack[top++] = 281;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 281;goto st1229;} + {stack[top++] = 281;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 281;goto st1240;} + {stack[top++] = 281;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 281;goto st1251;} + {stack[top++] = 281;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 281;goto st1264;} + {stack[top++] = 281;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 281;goto st1274;} + {stack[top++] = 281;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 281;goto st1313;} + {stack[top++] = 281;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 281;goto st1339;} + {stack[top++] = 281;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 281;goto st1342;} + {stack[top++] = 281;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 281;goto st1353;} + {stack[top++] = 281;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 281;goto st1355;} + {stack[top++] = 281;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 281;goto st1384;} + {stack[top++] = 281;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 281;goto st1397;} + {stack[top++] = 281;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 281;goto st1410;} + {stack[top++] = 281;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 281;goto st1416;} + {stack[top++] = 281;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 281;goto st1434;} + {stack[top++] = 281;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 281;goto st1429;} + {stack[top++] = 281;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 281;goto st1447;} + {stack[top++] = 281;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 281;goto st1453;} + {stack[top++] = 281;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 281;goto st1459;} + {stack[top++] = 281;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 281;goto st1467;} + {stack[top++] = 281;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 281;goto st1475;} + {stack[top++] = 281;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 281;goto st1481;} + {stack[top++] = 281;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { @@ -39773,7 +40369,7 @@ tr940: s->buffer_length = 0; } goto st281; -tr4279: +tr4308: { s->buffer_length = 0; } @@ -39781,92 +40377,93 @@ tr4279: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 281;goto st1089;} + {stack[top++] = 281;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 281;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 281;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 281;goto st1093;} + {stack[top++] = 281;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 281;goto st1125;} + {stack[top++] = 281;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 281;goto st1130;} + {stack[top++] = 281;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 281;goto st1135;} + {stack[top++] = 281;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 281;goto st1140;} + {stack[top++] = 281;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 281;goto st1144;} + {stack[top++] = 281;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 281;goto st1146;} + {stack[top++] = 281;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 281;goto st1201;} + {stack[top++] = 281;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 281;goto st1212;} + {stack[top++] = 281;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 281;goto st1229;} + {stack[top++] = 281;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 281;goto st1240;} + {stack[top++] = 281;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 281;goto st1251;} + {stack[top++] = 281;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 281;goto st1264;} + {stack[top++] = 281;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 281;goto st1274;} + {stack[top++] = 281;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 281;goto st1313;} + {stack[top++] = 281;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 281;goto st1339;} + {stack[top++] = 281;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 281;goto st1342;} + {stack[top++] = 281;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 281;goto st1353;} + {stack[top++] = 281;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 281;goto st1355;} + {stack[top++] = 281;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 281;goto st1384;} + {stack[top++] = 281;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 281;goto st1397;} + {stack[top++] = 281;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 281;goto st1410;} + {stack[top++] = 281;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 281;goto st1416;} + {stack[top++] = 281;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 281;goto st1434;} + {stack[top++] = 281;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 281;goto st1429;} + {stack[top++] = 281;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 281;goto st1447;} + {stack[top++] = 281;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 281;goto st1453;} + {stack[top++] = 281;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 281;goto st1459;} + {stack[top++] = 281;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 281;goto st1467;} + {stack[top++] = 281;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 281;goto st1475;} + {stack[top++] = 281;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 281;goto st1481;} + {stack[top++] = 281;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { @@ -39876,7 +40473,7 @@ tr4279: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } goto st281; @@ -39915,33 +40512,33 @@ case 281: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr888; - case 1802: goto tr891; - case 1824: goto tr888; - case 1832: goto tr889; - case 1833: goto tr890; - case 1851: goto tr892; - case 2057: goto tr966; - case 2058: goto tr958; - case 2080: goto tr966; - case 2088: goto tr967; - case 2089: goto tr968; - case 2107: goto tr969; + case 1801: goto tr889; + case 1802: goto tr892; + case 1824: goto tr889; + case 1832: goto tr890; + case 1833: goto tr891; + case 1851: goto tr893; + case 2057: goto tr967; + case 2058: goto tr959; + case 2080: goto tr967; + case 2088: goto tr968; + case 2089: goto tr969; + case 2107: goto tr970; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr902; + goto tr903; } else if ( _widec >= 1664 ) - goto tr97; - goto tr85; -tr970: + goto tr98; + goto tr86; +tr971: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } goto st282; -tr966: +tr967: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39952,7 +40549,7 @@ tr966: s->buffer_length = 0; } goto st282; -tr967: +tr968: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39965,12 +40562,12 @@ tr967: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st282; -tr968: +tr969: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39983,12 +40580,12 @@ tr968: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } goto st282; -tr971: +tr972: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -39997,12 +40594,12 @@ tr971: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } goto st282; -tr972: +tr973: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40011,7 +40608,7 @@ tr972: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -40051,25 +40648,25 @@ case 282: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr893; - case 1802: goto tr98; - case 1824: goto tr893; - case 1832: goto tr894; - case 1833: goto tr895; - case 1851: goto tr896; - case 2057: goto tr970; - case 2058: goto tr887; - case 2080: goto tr970; - case 2088: goto tr971; - case 2089: goto tr972; - case 2107: goto tr973; + case 1801: goto tr894; + case 1802: goto tr99; + case 1824: goto tr894; + case 1832: goto tr895; + case 1833: goto tr896; + case 1851: goto tr897; + case 2057: goto tr971; + case 2058: goto tr888; + case 2080: goto tr971; + case 2088: goto tr972; + case 2089: goto tr973; + case 2107: goto tr974; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr902; + goto tr903; } else if ( _widec >= 1664 ) - goto tr97; - goto tr85; + goto tr98; + goto tr86; st283: if ( ++p == pe ) goto _test_eof283; @@ -40109,16 +40706,16 @@ case 285: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr976; - case 32: goto tr976; - case 40: goto tr977; - case 41: goto tr978; - case 3082: goto tr979; - case 3131: goto tr980; - case 3338: goto tr981; - case 3387: goto tr981; - case 3594: goto tr982; - case 3643: goto tr983; + case 9: goto tr977; + case 32: goto tr977; + case 40: goto tr978; + case 41: goto tr979; + case 3082: goto tr980; + case 3131: goto tr981; + case 3338: goto tr982; + case 3387: goto tr982; + case 3594: goto tr983; + case 3643: goto tr984; } goto tr63; st286: @@ -40169,16 +40766,16 @@ case 289: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr987; - case 32: goto tr987; - case 40: goto tr988; - case 41: goto tr989; - case 3082: goto tr990; - case 3131: goto tr991; - case 3338: goto tr992; - case 3387: goto tr992; - case 3594: goto tr993; - case 3643: goto tr994; + case 9: goto tr988; + case 32: goto tr988; + case 40: goto tr989; + case 41: goto tr990; + case 3082: goto tr991; + case 3131: goto tr992; + case 3338: goto tr993; + case 3387: goto tr993; + case 3594: goto tr994; + case 3643: goto tr995; } goto tr63; st290: @@ -40186,14 +40783,32 @@ st290: goto _test_eof290; case 290: switch( (*p) ) { - case 76: goto st291; - case 108: goto st291; + case 73: goto st291; + case 105: goto st291; } goto tr39; st291: if ( ++p == pe ) goto _test_eof291; case 291: + switch( (*p) ) { + case 65: goto st292; + case 97: goto st292; + } + goto tr39; +st292: + if ( ++p == pe ) + goto _test_eof292; +case 292: + switch( (*p) ) { + case 83: goto st293; + case 115: goto st293; + } + goto tr39; +st293: + if ( ++p == pe ) + goto _test_eof293; +case 293: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40211,49 +40826,91 @@ case 291: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr996; - case 32: goto tr996; - case 40: goto tr997; - case 41: goto tr998; - case 3082: goto tr999; - case 3131: goto tr1000; - case 3338: goto tr1001; - case 3387: goto tr1001; - case 3594: goto tr1002; - case 3643: goto tr1003; + case 9: goto tr999; + case 32: goto tr999; + case 40: goto tr1000; + case 41: goto tr1001; + case 3082: goto tr1002; + case 3131: goto tr1003; + case 3338: goto tr1004; + case 3387: goto tr1004; + case 3594: goto tr1005; + case 3643: goto tr1006; } goto tr63; -tr143: +st294: + if ( ++p == pe ) + goto _test_eof294; +case 294: + switch( (*p) ) { + case 76: goto st295; + case 108: goto st295; + } + goto tr39; +st295: + if ( ++p == pe ) + goto _test_eof295; +case 295: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1008; + case 32: goto tr1008; + case 40: goto tr1009; + case 41: goto tr1010; + case 3082: goto tr1011; + case 3131: goto tr1012; + case 3338: goto tr1013; + case 3387: goto tr1013; + case 3594: goto tr1014; + case 3643: goto tr1015; + } + goto tr63; +tr144: { s->buffer_length = 0; } - goto st292; -tr1004: + goto st296; +tr1016: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st292; -tr4207: + goto st296; +tr4236: { s->buffer_length = 0; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st292; -st292: + goto st296; +st296: if ( ++p == pe ) - goto _test_eof292; -case 292: + goto _test_eof296; +case 296: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -40273,106 +40930,107 @@ case 292: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr797; - case 2058: goto tr1005; + case 1802: goto tr798; + case 2058: goto tr1017; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1004; + goto tr1016; } else if ( _widec >= 1664 ) - goto tr796; - goto tr85; -tr4209: + goto tr797; + goto tr86; +tr4238: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 293;goto st1089;} + {stack[top++] = 297;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 293;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 297;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 293;goto st1093;} + {stack[top++] = 297;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 293;goto st1125;} + {stack[top++] = 297;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 293;goto st1130;} + {stack[top++] = 297;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 293;goto st1135;} + {stack[top++] = 297;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 293;goto st1140;} + {stack[top++] = 297;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 293;goto st1144;} + {stack[top++] = 297;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 293;goto st1146;} + {stack[top++] = 297;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 293;goto st1201;} + {stack[top++] = 297;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 293;goto st1212;} + {stack[top++] = 297;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 293;goto st1229;} + {stack[top++] = 297;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 293;goto st1240;} + {stack[top++] = 297;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 293;goto st1251;} + {stack[top++] = 297;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 293;goto st1264;} + {stack[top++] = 297;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 293;goto st1274;} + {stack[top++] = 297;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 293;goto st1313;} + {stack[top++] = 297;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 293;goto st1339;} + {stack[top++] = 297;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 293;goto st1342;} + {stack[top++] = 297;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 293;goto st1353;} + {stack[top++] = 297;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 293;goto st1355;} + {stack[top++] = 297;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 293;goto st1384;} + {stack[top++] = 297;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 293;goto st1397;} + {stack[top++] = 297;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 293;goto st1410;} + {stack[top++] = 297;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 293;goto st1416;} + {stack[top++] = 297;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 293;goto st1434;} + {stack[top++] = 297;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 293;goto st1429;} + {stack[top++] = 297;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 293;goto st1447;} + {stack[top++] = 297;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 293;goto st1453;} + {stack[top++] = 297;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 293;goto st1459;} + {stack[top++] = 297;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 293;goto st1467;} + {stack[top++] = 297;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 293;goto st1475;} + {stack[top++] = 297;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 293;goto st1481;} + {stack[top++] = 297;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { @@ -40382,108 +41040,109 @@ tr4209: { s->buffer_length = 0; } - goto st293; -tr145: + goto st297; +tr146: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 293;goto st1089;} + {stack[top++] = 297;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 293;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 297;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 293;goto st1093;} + {stack[top++] = 297;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 293;goto st1125;} + {stack[top++] = 297;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 293;goto st1130;} + {stack[top++] = 297;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 293;goto st1135;} + {stack[top++] = 297;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 293;goto st1140;} + {stack[top++] = 297;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 293;goto st1144;} + {stack[top++] = 297;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 293;goto st1146;} + {stack[top++] = 297;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 293;goto st1201;} + {stack[top++] = 297;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 293;goto st1212;} + {stack[top++] = 297;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 293;goto st1229;} + {stack[top++] = 297;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 293;goto st1240;} + {stack[top++] = 297;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 293;goto st1251;} + {stack[top++] = 297;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 293;goto st1264;} + {stack[top++] = 297;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 293;goto st1274;} + {stack[top++] = 297;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 293;goto st1313;} + {stack[top++] = 297;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 293;goto st1339;} + {stack[top++] = 297;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 293;goto st1342;} + {stack[top++] = 297;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 293;goto st1353;} + {stack[top++] = 297;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 293;goto st1355;} + {stack[top++] = 297;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 293;goto st1384;} + {stack[top++] = 297;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 293;goto st1397;} + {stack[top++] = 297;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 293;goto st1410;} + {stack[top++] = 297;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 293;goto st1416;} + {stack[top++] = 297;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 293;goto st1434;} + {stack[top++] = 297;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 293;goto st1429;} + {stack[top++] = 297;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 293;goto st1447;} + {stack[top++] = 297;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 293;goto st1453;} + {stack[top++] = 297;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 293;goto st1459;} + {stack[top++] = 297;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 293;goto st1467;} + {stack[top++] = 297;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 293;goto st1475;} + {stack[top++] = 297;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 293;goto st1481;} + {stack[top++] = 297;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->buffer_length = 0; } - goto st293; -st293: + goto st297; +st297: if ( ++p == pe ) - goto _test_eof293; -case 293: + goto _test_eof297; +case 297: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40497,32 +41156,32 @@ case 293: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1006; - case 32: goto tr1006; - case 40: goto tr1007; - case 41: goto tr1008; - case 1802: goto tr1009; - case 1851: goto tr892; - case 2058: goto tr1009; - case 2107: goto tr892; + case 9: goto tr1018; + case 32: goto tr1018; + case 40: goto tr1019; + case 41: goto tr1020; + case 1802: goto tr1021; + case 1851: goto tr893; + case 2058: goto tr1021; + case 2107: goto tr893; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr796; + goto tr797; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr796; + goto tr797; } else - goto tr796; - goto tr85; -tr1010: + goto tr797; + goto tr86; +tr1022: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st294; -tr1006: + goto st298; +tr1018: { s->buffer[0] = 0; s->buffer_length = 0; @@ -40532,8 +41191,8 @@ tr1006: s->buffer[s->buffer_length++] = (*p); } } - goto st294; -tr1007: + goto st298; +tr1019: { s->buffer[0] = 0; s->buffer_length = 0; @@ -40541,7 +41200,7 @@ tr1007: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -40550,8 +41209,8 @@ tr1007: s->buffer[s->buffer_length++] = (*p); } } - goto st294; -tr1008: + goto st298; +tr1020: { s->buffer[0] = 0; s->buffer_length = 0; @@ -40559,7 +41218,7 @@ tr1008: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -40568,12 +41227,12 @@ tr1008: s->buffer[s->buffer_length++] = (*p); } } - goto st294; -tr1011: + goto st298; +tr1023: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -40582,12 +41241,12 @@ tr1011: s->buffer[s->buffer_length++] = (*p); } } - goto st294; -tr1012: + goto st298; +tr1024: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -40596,11 +41255,11 @@ tr1012: s->buffer[s->buffer_length++] = (*p); } } - goto st294; -st294: + goto st298; +st298: if ( ++p == pe ) - goto _test_eof294; -case 294: + goto _test_eof298; +case 298: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40614,25 +41273,25 @@ case 294: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1010; - case 32: goto tr1010; - case 40: goto tr1011; - case 41: goto tr1012; - case 1802: goto tr1013; - case 1851: goto tr896; - case 2058: goto tr1013; - case 2107: goto tr896; + case 9: goto tr1022; + case 32: goto tr1022; + case 40: goto tr1023; + case 41: goto tr1024; + case 1802: goto tr1025; + case 1851: goto tr897; + case 2058: goto tr1025; + case 2107: goto tr897; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr796; + goto tr797; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr796; + goto tr797; } else - goto tr796; - goto tr91; -tr147: + goto tr797; + goto tr92; +tr148: { s->buffer_length = 0; } @@ -40640,96 +41299,97 @@ tr147: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 295;goto st1089;} + {stack[top++] = 299;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 295;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 299;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 295;goto st1093;} + {stack[top++] = 299;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 295;goto st1125;} + {stack[top++] = 299;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 295;goto st1130;} + {stack[top++] = 299;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 295;goto st1135;} + {stack[top++] = 299;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 295;goto st1140;} + {stack[top++] = 299;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 295;goto st1144;} + {stack[top++] = 299;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 295;goto st1146;} + {stack[top++] = 299;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 295;goto st1201;} + {stack[top++] = 299;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 295;goto st1212;} + {stack[top++] = 299;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 295;goto st1229;} + {stack[top++] = 299;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 295;goto st1240;} + {stack[top++] = 299;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 295;goto st1251;} + {stack[top++] = 299;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 295;goto st1264;} + {stack[top++] = 299;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 295;goto st1274;} + {stack[top++] = 299;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 295;goto st1313;} + {stack[top++] = 299;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 295;goto st1339;} + {stack[top++] = 299;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 295;goto st1342;} + {stack[top++] = 299;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 295;goto st1353;} + {stack[top++] = 299;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 295;goto st1355;} + {stack[top++] = 299;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 295;goto st1384;} + {stack[top++] = 299;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 295;goto st1397;} + {stack[top++] = 299;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 295;goto st1410;} + {stack[top++] = 299;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 295;goto st1416;} + {stack[top++] = 299;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 295;goto st1434;} + {stack[top++] = 299;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 295;goto st1429;} + {stack[top++] = 299;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 295;goto st1447;} + {stack[top++] = 299;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 295;goto st1453;} + {stack[top++] = 299;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 295;goto st1459;} + {stack[top++] = 299;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 295;goto st1467;} + {stack[top++] = 299;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 295;goto st1475;} + {stack[top++] = 299;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 295;goto st1481;} + {stack[top++] = 299;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } - goto st295; -tr4211: + goto st299; +tr4240: { s->buffer_length = 0; } @@ -40737,109 +41397,110 @@ tr4211: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 295;goto st1089;} + {stack[top++] = 299;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 295;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 299;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 295;goto st1093;} + {stack[top++] = 299;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 295;goto st1125;} + {stack[top++] = 299;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 295;goto st1130;} + {stack[top++] = 299;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 295;goto st1135;} + {stack[top++] = 299;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 295;goto st1140;} + {stack[top++] = 299;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 295;goto st1144;} + {stack[top++] = 299;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 295;goto st1146;} + {stack[top++] = 299;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 295;goto st1201;} + {stack[top++] = 299;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 295;goto st1212;} + {stack[top++] = 299;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 295;goto st1229;} + {stack[top++] = 299;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 295;goto st1240;} + {stack[top++] = 299;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 295;goto st1251;} + {stack[top++] = 299;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 295;goto st1264;} + {stack[top++] = 299;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 295;goto st1274;} + {stack[top++] = 299;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 295;goto st1313;} + {stack[top++] = 299;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 295;goto st1339;} + {stack[top++] = 299;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 295;goto st1342;} + {stack[top++] = 299;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 295;goto st1353;} + {stack[top++] = 299;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 295;goto st1355;} + {stack[top++] = 299;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 295;goto st1384;} + {stack[top++] = 299;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 295;goto st1397;} + {stack[top++] = 299;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 295;goto st1410;} + {stack[top++] = 299;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 295;goto st1416;} + {stack[top++] = 299;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 295;goto st1434;} + {stack[top++] = 299;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 295;goto st1429;} + {stack[top++] = 299;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 295;goto st1447;} + {stack[top++] = 299;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 295;goto st1453;} + {stack[top++] = 299;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 295;goto st1459;} + {stack[top++] = 299;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 295;goto st1467;} + {stack[top++] = 299;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 295;goto st1475;} + {stack[top++] = 299;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 295;goto st1481;} + {stack[top++] = 299;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st295; -st295: + goto st299; +st299: if ( ++p == pe ) - goto _test_eof295; -case 295: + goto _test_eof299; +case 299: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -40871,33 +41532,33 @@ case 295: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr1006; - case 1802: goto tr1009; - case 1824: goto tr1006; - case 1832: goto tr1007; - case 1833: goto tr1008; - case 1851: goto tr892; - case 2057: goto tr1014; - case 2058: goto tr958; - case 2080: goto tr1014; - case 2088: goto tr1015; - case 2089: goto tr1016; - case 2107: goto tr969; + case 1801: goto tr1018; + case 1802: goto tr1021; + case 1824: goto tr1018; + case 1832: goto tr1019; + case 1833: goto tr1020; + case 1851: goto tr893; + case 2057: goto tr1026; + case 2058: goto tr959; + case 2080: goto tr1026; + case 2088: goto tr1027; + case 2089: goto tr1028; + case 2107: goto tr970; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1004; + goto tr1016; } else if ( _widec >= 1664 ) - goto tr796; - goto tr85; -tr1017: + goto tr797; + goto tr86; +tr1029: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st296; -tr1014: + goto st300; +tr1026: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40907,8 +41568,8 @@ tr1014: s->buffer[0] = 0; s->buffer_length = 0; } - goto st296; -tr1015: + goto st300; +tr1027: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40921,12 +41582,12 @@ tr1015: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st296; -tr1016: + goto st300; +tr1028: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40939,12 +41600,12 @@ tr1016: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st296; -tr1018: + goto st300; +tr1030: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40953,12 +41614,12 @@ tr1018: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st296; -tr1019: + goto st300; +tr1031: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40967,15 +41628,15 @@ tr1019: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st296; -st296: + goto st300; +st300: if ( ++p == pe ) - goto _test_eof296; -case 296: + goto _test_eof300; +case 300: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -41007,26 +41668,26 @@ case 296: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr1010; - case 1802: goto tr1013; - case 1824: goto tr1010; - case 1832: goto tr1011; - case 1833: goto tr1012; - case 1851: goto tr896; - case 2057: goto tr1017; - case 2058: goto tr887; - case 2080: goto tr1017; - case 2088: goto tr1018; - case 2089: goto tr1019; - case 2107: goto tr973; + case 1801: goto tr1022; + case 1802: goto tr1025; + case 1824: goto tr1022; + case 1832: goto tr1023; + case 1833: goto tr1024; + case 1851: goto tr897; + case 2057: goto tr1029; + case 2058: goto tr888; + case 2080: goto tr1029; + case 2088: goto tr1030; + case 2089: goto tr1031; + case 2107: goto tr974; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1004; + goto tr1016; } else if ( _widec >= 1664 ) - goto tr796; - goto tr85; -tr116: + goto tr797; + goto tr86; +tr117: { s->buffer_length = 0; } @@ -41034,96 +41695,97 @@ tr116: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 297;goto st1089;} + {stack[top++] = 301;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 297;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 301;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 297;goto st1093;} + {stack[top++] = 301;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 297;goto st1125;} + {stack[top++] = 301;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 297;goto st1130;} + {stack[top++] = 301;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 297;goto st1135;} + {stack[top++] = 301;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 297;goto st1140;} + {stack[top++] = 301;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 297;goto st1144;} + {stack[top++] = 301;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 297;goto st1146;} + {stack[top++] = 301;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 297;goto st1201;} + {stack[top++] = 301;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 297;goto st1212;} + {stack[top++] = 301;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 297;goto st1229;} + {stack[top++] = 301;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 297;goto st1240;} + {stack[top++] = 301;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 297;goto st1251;} + {stack[top++] = 301;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 297;goto st1264;} + {stack[top++] = 301;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 297;goto st1274;} + {stack[top++] = 301;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 297;goto st1313;} + {stack[top++] = 301;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 297;goto st1339;} + {stack[top++] = 301;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 297;goto st1342;} + {stack[top++] = 301;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 297;goto st1353;} + {stack[top++] = 301;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 297;goto st1355;} + {stack[top++] = 301;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 297;goto st1384;} + {stack[top++] = 301;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 297;goto st1397;} + {stack[top++] = 301;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 297;goto st1410;} + {stack[top++] = 301;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 297;goto st1416;} + {stack[top++] = 301;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 297;goto st1434;} + {stack[top++] = 301;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 297;goto st1429;} + {stack[top++] = 301;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 297;goto st1447;} + {stack[top++] = 301;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 297;goto st1453;} + {stack[top++] = 301;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 297;goto st1459;} + {stack[top++] = 301;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 297;goto st1467;} + {stack[top++] = 301;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 297;goto st1475;} + {stack[top++] = 301;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 297;goto st1481;} + {stack[top++] = 301;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } - goto st297; -tr109: + goto st301; +tr110: { s->buffer_length = 0; } @@ -41131,100 +41793,101 @@ tr109: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 297;goto st1089;} + {stack[top++] = 301;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 297;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 301;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 297;goto st1093;} + {stack[top++] = 301;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 297;goto st1125;} + {stack[top++] = 301;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 297;goto st1130;} + {stack[top++] = 301;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 297;goto st1135;} + {stack[top++] = 301;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 297;goto st1140;} + {stack[top++] = 301;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 297;goto st1144;} + {stack[top++] = 301;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 297;goto st1146;} + {stack[top++] = 301;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 297;goto st1201;} + {stack[top++] = 301;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 297;goto st1212;} + {stack[top++] = 301;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 297;goto st1229;} + {stack[top++] = 301;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 297;goto st1240;} + {stack[top++] = 301;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 297;goto st1251;} + {stack[top++] = 301;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 297;goto st1264;} + {stack[top++] = 301;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 297;goto st1274;} + {stack[top++] = 301;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 297;goto st1313;} + {stack[top++] = 301;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 297;goto st1339;} + {stack[top++] = 301;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 297;goto st1342;} + {stack[top++] = 301;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 297;goto st1353;} + {stack[top++] = 301;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 297;goto st1355;} + {stack[top++] = 301;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 297;goto st1384;} + {stack[top++] = 301;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 297;goto st1397;} + {stack[top++] = 301;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 297;goto st1410;} + {stack[top++] = 301;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 297;goto st1416;} + {stack[top++] = 301;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 297;goto st1434;} + {stack[top++] = 301;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 297;goto st1429;} + {stack[top++] = 301;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 297;goto st1447;} + {stack[top++] = 301;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 297;goto st1453;} + {stack[top++] = 301;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 297;goto st1459;} + {stack[top++] = 301;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 297;goto st1467;} + {stack[top++] = 301;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 297;goto st1475;} + {stack[top++] = 301;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 297;goto st1481;} + {stack[top++] = 301;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st297; -tr875: + goto st301; +tr876: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -41236,103 +41899,104 @@ tr875: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 297;goto st1089;} + {stack[top++] = 301;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 297;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 301;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 297;goto st1093;} + {stack[top++] = 301;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 297;goto st1125;} + {stack[top++] = 301;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 297;goto st1130;} + {stack[top++] = 301;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 297;goto st1135;} + {stack[top++] = 301;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 297;goto st1140;} + {stack[top++] = 301;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 297;goto st1144;} + {stack[top++] = 301;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 297;goto st1146;} + {stack[top++] = 301;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 297;goto st1201;} + {stack[top++] = 301;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 297;goto st1212;} + {stack[top++] = 301;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 297;goto st1229;} + {stack[top++] = 301;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 297;goto st1240;} + {stack[top++] = 301;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 297;goto st1251;} + {stack[top++] = 301;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 297;goto st1264;} + {stack[top++] = 301;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 297;goto st1274;} + {stack[top++] = 301;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 297;goto st1313;} + {stack[top++] = 301;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 297;goto st1339;} + {stack[top++] = 301;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 297;goto st1342;} + {stack[top++] = 301;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 297;goto st1353;} + {stack[top++] = 301;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 297;goto st1355;} + {stack[top++] = 301;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 297;goto st1384;} + {stack[top++] = 301;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 297;goto st1397;} + {stack[top++] = 301;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 297;goto st1410;} + {stack[top++] = 301;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 297;goto st1416;} + {stack[top++] = 301;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 297;goto st1434;} + {stack[top++] = 301;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 297;goto st1429;} + {stack[top++] = 301;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 297;goto st1447;} + {stack[top++] = 301;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 297;goto st1453;} + {stack[top++] = 301;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 297;goto st1459;} + {stack[top++] = 301;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 297;goto st1467;} + {stack[top++] = 301;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 297;goto st1475;} + {stack[top++] = 301;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 297;goto st1481;} + {stack[top++] = 301;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st297; -st297: + goto st301; +st301: if ( ++p == pe ) - goto _test_eof297; -case 297: + goto _test_eof301; +case 301: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -41364,33 +42028,33 @@ case 297: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr888; - case 1802: goto tr891; - case 1824: goto tr888; - case 1832: goto tr889; - case 1833: goto tr890; - case 1851: goto tr892; - case 2057: goto tr1020; - case 2058: goto tr891; - case 2080: goto tr1020; - case 2088: goto tr1021; - case 2089: goto tr1022; - case 2107: goto tr177; + case 1801: goto tr889; + case 1802: goto tr892; + case 1824: goto tr889; + case 1832: goto tr890; + case 1833: goto tr891; + case 1851: goto tr893; + case 2057: goto tr1032; + case 2058: goto tr892; + case 2080: goto tr1032; + case 2088: goto tr1033; + case 2089: goto tr1034; + case 2107: goto tr178; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr117; + goto tr118; } else if ( _widec >= 1664 ) - goto tr97; - goto tr85; -tr1023: + goto tr98; + goto tr86; +tr1035: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st298; -tr1020: + goto st302; +tr1032: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41400,8 +42064,8 @@ tr1020: s->buffer[0] = 0; s->buffer_length = 0; } - goto st298; -tr1021: + goto st302; +tr1033: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41414,12 +42078,12 @@ tr1021: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st298; -tr1022: + goto st302; +tr1034: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41432,12 +42096,12 @@ tr1022: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st298; -tr1024: + goto st302; +tr1036: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41446,12 +42110,12 @@ tr1024: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st298; -tr1025: + goto st302; +tr1037: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41460,15 +42124,15 @@ tr1025: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st298; -st298: + goto st302; +st302: if ( ++p == pe ) - goto _test_eof298; -case 298: + goto _test_eof302; +case 302: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -41500,38 +42164,38 @@ case 298: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr893; - case 1802: goto tr98; - case 1824: goto tr893; - case 1832: goto tr894; - case 1833: goto tr895; - case 1851: goto tr896; - case 2057: goto tr1023; - case 2058: goto tr98; - case 2080: goto tr1023; - case 2088: goto tr1024; - case 2089: goto tr1025; - case 2107: goto tr181; + case 1801: goto tr894; + case 1802: goto tr99; + case 1824: goto tr894; + case 1832: goto tr895; + case 1833: goto tr896; + case 1851: goto tr897; + case 2057: goto tr1035; + case 2058: goto tr99; + case 2080: goto tr1035; + case 2088: goto tr1036; + case 2089: goto tr1037; + case 2107: goto tr182; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr117; + goto tr118; } else if ( _widec >= 1664 ) - goto tr97; - goto tr85; -tr863: + goto tr98; + goto tr86; +tr864: { s->buffer_length = 0; } - goto st299; -tr1026: + goto st303; +tr1038: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st299; -tr856: + goto st303; +tr857: { s->r_owner_length = s->dname_tmp_length; } @@ -41542,11 +42206,11 @@ tr856: { rdata_tail = s->r_data; } - goto st299; -st299: + goto st303; +st303: if ( ++p == pe ) - goto _test_eof299; -case 299: + goto _test_eof303; +case 303: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -41566,11 +42230,11 @@ case 299: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1027; + goto tr1039; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1026; - goto tr77; -tr864: + goto tr1038; + goto tr78; +tr865: { s->line_counter++; } @@ -41578,96 +42242,97 @@ tr864: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 300;goto st1089;} + {stack[top++] = 304;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 300;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 304;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 300;goto st1093;} + {stack[top++] = 304;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 300;goto st1125;} + {stack[top++] = 304;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 300;goto st1130;} + {stack[top++] = 304;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 300;goto st1135;} + {stack[top++] = 304;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 300;goto st1140;} + {stack[top++] = 304;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 300;goto st1144;} + {stack[top++] = 304;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 300;goto st1146;} + {stack[top++] = 304;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 300;goto st1201;} + {stack[top++] = 304;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 300;goto st1212;} + {stack[top++] = 304;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 300;goto st1229;} + {stack[top++] = 304;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 300;goto st1240;} + {stack[top++] = 304;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 300;goto st1251;} + {stack[top++] = 304;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 300;goto st1264;} + {stack[top++] = 304;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 300;goto st1274;} + {stack[top++] = 304;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 300;goto st1313;} + {stack[top++] = 304;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 300;goto st1339;} + {stack[top++] = 304;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 300;goto st1342;} + {stack[top++] = 304;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 300;goto st1353;} + {stack[top++] = 304;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 300;goto st1355;} + {stack[top++] = 304;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 300;goto st1384;} + {stack[top++] = 304;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 300;goto st1397;} + {stack[top++] = 304;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 300;goto st1410;} + {stack[top++] = 304;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 300;goto st1416;} + {stack[top++] = 304;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 300;goto st1434;} + {stack[top++] = 304;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 300;goto st1429;} + {stack[top++] = 304;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 300;goto st1447;} + {stack[top++] = 304;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 300;goto st1453;} + {stack[top++] = 304;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 300;goto st1459;} + {stack[top++] = 304;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 300;goto st1467;} + {stack[top++] = 304;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 300;goto st1475;} + {stack[top++] = 304;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 300;goto st1481;} + {stack[top++] = 304;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } - goto st300; -tr857: + goto st304; +tr858: { s->r_owner_length = s->dname_tmp_length; } @@ -41682,99 +42347,100 @@ tr857: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 300;goto st1089;} + {stack[top++] = 304;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 300;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 304;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 300;goto st1093;} + {stack[top++] = 304;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 300;goto st1125;} + {stack[top++] = 304;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 300;goto st1130;} + {stack[top++] = 304;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 300;goto st1135;} + {stack[top++] = 304;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 300;goto st1140;} + {stack[top++] = 304;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 300;goto st1144;} + {stack[top++] = 304;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 300;goto st1146;} + {stack[top++] = 304;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 300;goto st1201;} + {stack[top++] = 304;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 300;goto st1212;} + {stack[top++] = 304;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 300;goto st1229;} + {stack[top++] = 304;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 300;goto st1240;} + {stack[top++] = 304;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 300;goto st1251;} + {stack[top++] = 304;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 300;goto st1264;} + {stack[top++] = 304;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 300;goto st1274;} + {stack[top++] = 304;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 300;goto st1313;} + {stack[top++] = 304;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 300;goto st1339;} + {stack[top++] = 304;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 300;goto st1342;} + {stack[top++] = 304;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 300;goto st1353;} + {stack[top++] = 304;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 300;goto st1355;} + {stack[top++] = 304;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 300;goto st1384;} + {stack[top++] = 304;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 300;goto st1397;} + {stack[top++] = 304;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 300;goto st1410;} + {stack[top++] = 304;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 300;goto st1416;} + {stack[top++] = 304;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 300;goto st1434;} + {stack[top++] = 304;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 300;goto st1429;} + {stack[top++] = 304;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 300;goto st1447;} + {stack[top++] = 304;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 300;goto st1453;} + {stack[top++] = 304;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 300;goto st1459;} + {stack[top++] = 304;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 300;goto st1467;} + {stack[top++] = 304;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 300;goto st1475;} + {stack[top++] = 304;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 300;goto st1481;} + {stack[top++] = 304;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } - goto st300; -st300: + goto st304; +st304: if ( ++p == pe ) - goto _test_eof300; -case 300: + goto _test_eof304; +case 304: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41792,70 +42458,70 @@ case 300: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1028; - case 32: goto tr1028; - case 40: goto tr1029; - case 41: goto tr1030; - case 58: goto tr75; - case 65: goto tr124; - case 67: goto tr125; - case 68: goto tr126; - case 69: goto tr127; - case 72: goto tr128; - case 73: goto tr129; - case 75: goto tr130; - case 76: goto tr131; - case 77: goto tr132; - case 78: goto tr133; - case 79: goto tr134; - case 80: goto tr135; - case 82: goto tr136; - case 83: goto tr137; - case 84: goto tr138; - case 85: goto tr139; - case 87: goto tr140; - case 90: goto tr141; - case 92: goto tr80; - case 97: goto tr124; - case 99: goto tr125; - case 100: goto tr126; - case 101: goto tr127; - case 104: goto tr128; - case 105: goto tr129; - case 107: goto tr130; - case 108: goto tr131; - case 109: goto tr132; - case 110: goto tr133; - case 111: goto tr134; - case 112: goto tr135; - case 114: goto tr136; - case 115: goto tr137; - case 116: goto tr138; - case 117: goto tr139; - case 119: goto tr140; - case 122: goto tr141; - case 2826: goto tr89; - case 2875: goto tr90; - case 3082: goto tr955; - case 3131: goto tr1031; - case 3338: goto tr107; - case 3387: goto tr108; - case 3594: goto tr955; - case 3643: goto tr1032; + case 9: goto tr1040; + case 32: goto tr1040; + case 40: goto tr1041; + case 41: goto tr1042; + case 58: goto tr76; + case 65: goto tr125; + case 67: goto tr126; + case 68: goto tr127; + case 69: goto tr128; + case 72: goto tr129; + case 73: goto tr130; + case 75: goto tr131; + case 76: goto tr132; + case 77: goto tr133; + case 78: goto tr134; + case 79: goto tr135; + case 80: goto tr136; + case 82: goto tr137; + case 83: goto tr138; + case 84: goto tr139; + case 85: goto tr140; + case 87: goto tr141; + case 90: goto tr142; + case 92: goto tr81; + case 97: goto tr125; + case 99: goto tr126; + case 100: goto tr127; + case 101: goto tr128; + case 104: goto tr129; + case 105: goto tr130; + case 107: goto tr131; + case 108: goto tr132; + case 109: goto tr133; + case 110: goto tr134; + case 111: goto tr135; + case 112: goto tr136; + case 114: goto tr137; + case 115: goto tr138; + case 116: goto tr139; + case 117: goto tr140; + case 119: goto tr141; + case 122: goto tr142; + case 2826: goto tr90; + case 2875: goto tr91; + case 3082: goto tr956; + case 3131: goto tr1043; + case 3338: goto tr108; + case 3387: goto tr109; + case 3594: goto tr956; + case 3643: goto tr1044; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr75; + goto tr76; } else if ( _widec > 47 ) { if ( _widec > 57 ) { if ( 60 <= _widec ) - goto tr75; + goto tr76; } else if ( _widec >= 48 ) - goto tr123; + goto tr124; } else - goto tr75; - goto tr120; -tr865: + goto tr76; + goto tr121; +tr866: { s->buffer_length = 0; } @@ -41863,96 +42529,97 @@ tr865: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 301;goto st1089;} + {stack[top++] = 305;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 301;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 305;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 301;goto st1093;} + {stack[top++] = 305;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 301;goto st1125;} + {stack[top++] = 305;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 301;goto st1130;} + {stack[top++] = 305;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 301;goto st1135;} + {stack[top++] = 305;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 301;goto st1140;} + {stack[top++] = 305;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 301;goto st1144;} + {stack[top++] = 305;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 301;goto st1146;} + {stack[top++] = 305;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 301;goto st1201;} + {stack[top++] = 305;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 301;goto st1212;} + {stack[top++] = 305;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 301;goto st1229;} + {stack[top++] = 305;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 301;goto st1240;} + {stack[top++] = 305;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 301;goto st1251;} + {stack[top++] = 305;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 301;goto st1264;} + {stack[top++] = 305;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 301;goto st1274;} + {stack[top++] = 305;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 301;goto st1313;} + {stack[top++] = 305;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 301;goto st1339;} + {stack[top++] = 305;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 301;goto st1342;} + {stack[top++] = 305;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 301;goto st1353;} + {stack[top++] = 305;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 301;goto st1355;} + {stack[top++] = 305;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 301;goto st1384;} + {stack[top++] = 305;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 301;goto st1397;} + {stack[top++] = 305;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 301;goto st1410;} + {stack[top++] = 305;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 301;goto st1416;} + {stack[top++] = 305;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 301;goto st1434;} + {stack[top++] = 305;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 301;goto st1429;} + {stack[top++] = 305;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 301;goto st1447;} + {stack[top++] = 305;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 301;goto st1453;} + {stack[top++] = 305;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 301;goto st1459;} + {stack[top++] = 305;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 301;goto st1467;} + {stack[top++] = 305;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 301;goto st1475;} + {stack[top++] = 305;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 301;goto st1481;} + {stack[top++] = 305;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } - goto st301; -tr858: + goto st305; +tr859: { s->r_owner_length = s->dname_tmp_length; } @@ -41967,99 +42634,100 @@ tr858: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 301;goto st1089;} + {stack[top++] = 305;goto st1101;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = 301;goto st1091;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 305;goto st1103;} case KNOT_RRTYPE_SOA: - {stack[top++] = 301;goto st1093;} + {stack[top++] = 305;goto st1105;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 301;goto st1125;} + {stack[top++] = 305;goto st1137;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 301;goto st1130;} + {stack[top++] = 305;goto st1142;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 301;goto st1135;} + {stack[top++] = 305;goto st1147;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 301;goto st1140;} + {stack[top++] = 305;goto st1152;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 301;goto st1144;} + {stack[top++] = 305;goto st1156;} case KNOT_RRTYPE_LOC: - {stack[top++] = 301;goto st1146;} + {stack[top++] = 305;goto st1158;} case KNOT_RRTYPE_SRV: - {stack[top++] = 301;goto st1201;} + {stack[top++] = 305;goto st1213;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 301;goto st1212;} + {stack[top++] = 305;goto st1224;} case KNOT_RRTYPE_CERT: - {stack[top++] = 301;goto st1229;} + {stack[top++] = 305;goto st1241;} case KNOT_RRTYPE_APL: - {stack[top++] = 301;goto st1240;} + {stack[top++] = 305;goto st1252;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 301;goto st1251;} + {stack[top++] = 305;goto st1263;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 301;goto st1264;} + {stack[top++] = 305;goto st1276;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 301;goto st1274;} + {stack[top++] = 305;goto st1286;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 301;goto st1313;} + {stack[top++] = 305;goto st1325;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 301;goto st1339;} + {stack[top++] = 305;goto st1351;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 301;goto st1342;} + {stack[top++] = 305;goto st1354;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 301;goto st1353;} + {stack[top++] = 305;goto st1365;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 301;goto st1355;} + {stack[top++] = 305;goto st1367;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 301;goto st1384;} + {stack[top++] = 305;goto st1396;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 301;goto st1397;} + {stack[top++] = 305;goto st1409;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 301;goto st1410;} + {stack[top++] = 305;goto st1422;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 301;goto st1416;} + {stack[top++] = 305;goto st1428;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 301;goto st1434;} + {stack[top++] = 305;goto st1446;} case KNOT_RRTYPE_L32: - {stack[top++] = 301;goto st1429;} + {stack[top++] = 305;goto st1441;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 301;goto st1447;} + {stack[top++] = 305;goto st1459;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 301;goto st1453;} + {stack[top++] = 305;goto st1465;} case KNOT_RRTYPE_URI: - {stack[top++] = 301;goto st1459;} + {stack[top++] = 305;goto st1471;} case KNOT_RRTYPE_CAA: - {stack[top++] = 301;goto st1467;} + {stack[top++] = 305;goto st1479;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 301;goto st1475;} + {stack[top++] = 305;goto st1487;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 301;goto st1481;} + {stack[top++] = 305;goto st1493;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st325;} + {goto st329;} } } - goto st301; -st301: + goto st305; +st305: if ( ++p == pe ) - goto _test_eof301; -case 301: + goto _test_eof305; +case 305: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -42091,30 +42759,30 @@ case 301: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr86; - case 1802: goto tr89; - case 1824: goto tr86; - case 1832: goto tr87; - case 1833: goto tr88; - case 1851: goto tr90; - case 2057: goto tr1033; - case 2058: goto tr958; - case 2080: goto tr1033; - case 2088: goto tr1034; - case 2089: goto tr1035; - case 2107: goto tr969; + case 1801: goto tr87; + case 1802: goto tr90; + case 1824: goto tr87; + case 1832: goto tr88; + case 1833: goto tr89; + case 1851: goto tr91; + case 2057: goto tr1045; + case 2058: goto tr959; + case 2080: goto tr1045; + case 2088: goto tr1046; + case 2089: goto tr1047; + case 2107: goto tr970; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1026; - goto tr85; -tr1036: + goto tr1038; + goto tr86; +tr1048: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st302; -tr1033: + goto st306; +tr1045: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -42124,8 +42792,8 @@ tr1033: s->buffer[0] = 0; s->buffer_length = 0; } - goto st302; -tr1034: + goto st306; +tr1046: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -42138,12 +42806,12 @@ tr1034: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st302; -tr1035: + goto st306; +tr1047: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -42156,12 +42824,12 @@ tr1035: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st302; -tr1037: + goto st306; +tr1049: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -42170,12 +42838,12 @@ tr1037: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st302; -tr1038: + goto st306; +tr1050: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -42184,15 +42852,15 @@ tr1038: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st302; -st302: + goto st306; +st306: if ( ++p == pe ) - goto _test_eof302; -case 302: + goto _test_eof306; +case 306: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -42225,22 +42893,22 @@ case 302: } switch( _widec ) { case 1801: goto st7; - case 1802: goto tr95; + case 1802: goto tr96; case 1824: goto st7; - case 1832: goto tr93; - case 1833: goto tr94; - case 1851: goto tr96; - case 2057: goto tr1036; - case 2058: goto tr887; - case 2080: goto tr1036; - case 2088: goto tr1037; - case 2089: goto tr1038; - case 2107: goto tr973; + case 1832: goto tr94; + case 1833: goto tr95; + case 1851: goto tr97; + case 2057: goto tr1048; + case 2058: goto tr888; + case 2080: goto tr1048; + case 2088: goto tr1049; + case 2089: goto tr1050; + case 2107: goto tr974; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1026; - goto tr85; -tr4217: + goto tr1038; + goto tr86; +tr4246: { s->r_class = s->default_class; } @@ -42248,9 +42916,9 @@ tr4217: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 303;goto st327;} } - goto st303; -tr4239: + { p--; {stack[top++] = 307;goto st331;} } + goto st307; +tr4268: { s->r_class = s->default_class; } @@ -42261,12 +42929,12 @@ tr4239: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 303;goto st327;} } - goto st303; -st303: + { p--; {stack[top++] = 307;goto st331;} } + goto st307; +st307: if ( ++p == pe ) - goto _test_eof303; -case 303: + goto _test_eof307; +case 307: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42280,10 +42948,10 @@ case 303: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 65: goto st18; case 68: goto st22; case 69: goto st29; @@ -42294,11 +42962,11 @@ case 303: case 101: goto st29; case 110: goto st32; case 115: goto st36; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4218: + goto tr1051; +tr4247: { s->r_class = s->default_class; } @@ -42306,9 +42974,9 @@ tr4218: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 304;goto st327;} } - goto st304; -tr4240: + { p--; {stack[top++] = 308;goto st331;} } + goto st308; +tr4269: { s->r_class = s->default_class; } @@ -42319,12 +42987,12 @@ tr4240: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 304;goto st327;} } - goto st304; -st304: + { p--; {stack[top++] = 308;goto st331;} } + goto st308; +st308: if ( ++p == pe ) - goto _test_eof304; -case 304: + goto _test_eof308; +case 308: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42338,21 +43006,21 @@ case 304: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 72: goto st41; case 78: goto st45; case 83: goto st53; case 104: goto st41; case 110: goto st45; case 115: goto st53; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4219: + goto tr1051; +tr4248: { s->r_class = s->default_class; } @@ -42360,9 +43028,9 @@ tr4219: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 305;goto st327;} } - goto st305; -tr4241: + { p--; {stack[top++] = 309;goto st331;} } + goto st309; +tr4270: { s->r_class = s->default_class; } @@ -42373,12 +43041,12 @@ tr4241: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 305;goto st327;} } - goto st305; -st305: + { p--; {stack[top++] = 309;goto st331;} } + goto st309; +st309: if ( ++p == pe ) - goto _test_eof305; -case 305: + goto _test_eof309; +case 309: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42392,17 +43060,17 @@ case 305: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 85: goto st58; case 117: goto st58; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4220: + goto tr1051; +tr4249: { s->r_class = s->default_class; } @@ -42410,9 +43078,9 @@ tr4220: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 306;goto st327;} } - goto st306; -tr4242: + { p--; {stack[top++] = 310;goto st331;} } + goto st310; +tr4271: { s->r_class = s->default_class; } @@ -42423,12 +43091,12 @@ tr4242: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 306;goto st327;} } - goto st306; -st306: + { p--; {stack[top++] = 310;goto st331;} } + goto st310; +st310: if ( ++p == pe ) - goto _test_eof306; -case 306: + goto _test_eof310; +case 310: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42442,19 +43110,19 @@ case 306: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 73: goto st65; case 84: goto st69; case 105: goto st65; case 116: goto st69; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4243: + goto tr1051; +tr4272: { s->r_class = s->default_class; } @@ -42465,12 +43133,12 @@ tr4243: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 307;goto st327;} } - goto st307; -st307: + { p--; {stack[top++] = 311;goto st331;} } + goto st311; +st311: if ( ++p == pe ) - goto _test_eof307; -case 307: + goto _test_eof311; +case 311: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42484,19 +43152,19 @@ case 307: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 78: goto st191; case 80: goto st77; case 110: goto st191; case 112: goto st77; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4222: + goto tr1051; +tr4251: { s->r_class = s->default_class; } @@ -42504,9 +43172,9 @@ tr4222: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 308;goto st327;} } - goto st308; -tr4244: + { p--; {stack[top++] = 312;goto st331;} } + goto st312; +tr4273: { s->r_class = s->default_class; } @@ -42517,12 +43185,12 @@ tr4244: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 308;goto st327;} } - goto st308; -st308: + { p--; {stack[top++] = 312;goto st331;} } + goto st312; +st312: if ( ++p == pe ) - goto _test_eof308; -case 308: + goto _test_eof312; +case 312: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42536,19 +43204,19 @@ case 308: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 69: goto st85; case 88: goto st87; case 101: goto st85; case 120: goto st87; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4223: + goto tr1051; +tr4252: { s->r_class = s->default_class; } @@ -42556,9 +43224,9 @@ tr4223: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 309;goto st327;} } - goto st309; -tr4245: + { p--; {stack[top++] = 313;goto st331;} } + goto st313; +tr4274: { s->r_class = s->default_class; } @@ -42569,12 +43237,12 @@ tr4245: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 309;goto st327;} } - goto st309; -st309: + { p--; {stack[top++] = 313;goto st331;} } + goto st313; +st313: if ( ++p == pe ) - goto _test_eof309; -case 309: + goto _test_eof313; +case 313: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42588,21 +43256,21 @@ case 309: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 51: goto st89; case 54: goto st91; case 79: goto st93; case 80: goto st95; case 111: goto st93; case 112: goto st95; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4224: + goto tr1051; +tr4253: { s->r_class = s->default_class; } @@ -42610,9 +43278,9 @@ tr4224: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 310;goto st327;} } - goto st310; -tr4246: + { p--; {stack[top++] = 314;goto st331;} } + goto st314; +tr4275: { s->r_class = s->default_class; } @@ -42623,12 +43291,12 @@ tr4246: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 310;goto st327;} } - goto st310; -st310: + { p--; {stack[top++] = 314;goto st331;} } + goto st314; +st314: if ( ++p == pe ) - goto _test_eof310; -case 310: + goto _test_eof314; +case 314: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42642,19 +43310,19 @@ case 310: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 73: goto st97; case 88: goto st101; case 105: goto st97; case 120: goto st101; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4225: + goto tr1051; +tr4254: { s->r_class = s->default_class; } @@ -42662,9 +43330,9 @@ tr4225: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 311;goto st327;} } - goto st311; -tr4247: + { p--; {stack[top++] = 315;goto st331;} } + goto st315; +tr4276: { s->r_class = s->default_class; } @@ -42675,12 +43343,12 @@ tr4247: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 311;goto st327;} } - goto st311; -st311: + { p--; {stack[top++] = 315;goto st331;} } + goto st315; +st315: if ( ++p == pe ) - goto _test_eof311; -case 311: + goto _test_eof315; +case 315: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42694,21 +43362,21 @@ case 311: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 65: goto st103; case 73: goto st107; case 83: goto st109; case 97: goto st103; case 105: goto st107; case 115: goto st109; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4226: + goto tr1051; +tr4255: { s->r_class = s->default_class; } @@ -42716,9 +43384,9 @@ tr4226: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 312;goto st327;} } - goto st312; -tr4248: + { p--; {stack[top++] = 316;goto st331;} } + goto st316; +tr4277: { s->r_class = s->default_class; } @@ -42729,12 +43397,12 @@ tr4248: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 312;goto st327;} } - goto st312; -st312: + { p--; {stack[top++] = 316;goto st331;} } + goto st316; +st316: if ( ++p == pe ) - goto _test_eof312; -case 312: + goto _test_eof316; +case 316: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42748,17 +43416,17 @@ case 312: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 80: goto st119; case 112: goto st119; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4227: + goto tr1051; +tr4256: { s->r_class = s->default_class; } @@ -42766,9 +43434,9 @@ tr4227: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 313;goto st327;} } - goto st313; -tr4249: + { p--; {stack[top++] = 317;goto st331;} } + goto st317; +tr4278: { s->r_class = s->default_class; } @@ -42779,12 +43447,12 @@ tr4249: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 313;goto st327;} } - goto st313; -st313: + { p--; {stack[top++] = 317;goto st331;} } + goto st317; +st317: if ( ++p == pe ) - goto _test_eof313; -case 313: + goto _test_eof317; +case 317: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42798,17 +43466,17 @@ case 313: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 84: goto st129; case 116: goto st129; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4228: + goto tr1051; +tr4257: { s->r_class = s->default_class; } @@ -42816,9 +43484,9 @@ tr4228: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 314;goto st327;} } - goto st314; -tr4250: + { p--; {stack[top++] = 318;goto st331;} } + goto st318; +tr4279: { s->r_class = s->default_class; } @@ -42829,12 +43497,12 @@ tr4250: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 314;goto st327;} } - goto st314; -st314: + { p--; {stack[top++] = 318;goto st331;} } + goto st318; +st318: if ( ++p == pe ) - goto _test_eof314; -case 314: + goto _test_eof318; +case 318: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42848,10 +43516,10 @@ case 314: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 69: goto st132; case 80: goto st138; case 82: goto st139; @@ -42860,11 +43528,11 @@ case 314: case 112: goto st138; case 114: goto st139; case 116: goto st143; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4229: + goto tr1051; +tr4258: { s->r_class = s->default_class; } @@ -42872,9 +43540,9 @@ tr4229: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 315;goto st327;} } - goto st315; -tr4251: + { p--; {stack[top++] = 319;goto st331;} } + goto st319; +tr4280: { s->r_class = s->default_class; } @@ -42885,12 +43553,12 @@ tr4251: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 315;goto st327;} } - goto st315; -st315: + { p--; {stack[top++] = 319;goto st331;} } + goto st319; +st319: if ( ++p == pe ) - goto _test_eof315; -case 315: + goto _test_eof319; +case 319: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42904,10 +43572,10 @@ case 315: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 77: goto st145; case 79: goto st150; case 80: goto st152; @@ -42920,11 +43588,11 @@ case 315: case 114: goto st154; case 115: goto st156; case 118: goto st160; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4230: + goto tr1051; +tr4259: { s->r_class = s->default_class; } @@ -42932,9 +43600,9 @@ tr4230: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 316;goto st327;} } - goto st316; -tr4252: + { p--; {stack[top++] = 320;goto st331;} } + goto st320; +tr4281: { s->r_class = s->default_class; } @@ -42945,12 +43613,12 @@ tr4252: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 316;goto st327;} } - goto st316; -st316: + { p--; {stack[top++] = 320;goto st331;} } + goto st320; +st320: if ( ++p == pe ) - goto _test_eof316; -case 316: + goto _test_eof320; +case 320: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42964,21 +43632,21 @@ case 316: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 76: goto st164; case 88: goto st167; case 89: goto st169; case 108: goto st164; case 120: goto st167; case 121: goto st169; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4231: + goto tr1051; +tr4260: { s->r_class = s->default_class; } @@ -42986,9 +43654,9 @@ tr4231: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 317;goto st327;} } - goto st317; -tr4253: + { p--; {stack[top++] = 321;goto st331;} } + goto st321; +tr4282: { s->r_class = s->default_class; } @@ -42999,12 +43667,12 @@ tr4253: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 317;goto st327;} } - goto st317; -st317: + { p--; {stack[top++] = 321;goto st331;} } + goto st321; +st321: if ( ++p == pe ) - goto _test_eof317; -case 317: + goto _test_eof321; +case 321: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43018,17 +43686,17 @@ case 317: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 82: goto st174; case 114: goto st174; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4232: + goto tr1051; +tr4261: { s->r_class = s->default_class; } @@ -43036,9 +43704,9 @@ tr4232: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 318;goto st327;} } - goto st318; -tr4254: + { p--; {stack[top++] = 322;goto st331;} } + goto st322; +tr4283: { s->r_class = s->default_class; } @@ -43049,12 +43717,12 @@ tr4254: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 318;goto st327;} } - goto st318; -st318: + { p--; {stack[top++] = 322;goto st331;} } + goto st322; +st322: if ( ++p == pe ) - goto _test_eof318; -case 318: + goto _test_eof322; +case 322: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43068,17 +43736,17 @@ case 318: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 65: goto st177; case 97: goto st177; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr4233: + goto tr1051; +tr4262: { s->r_class = s->default_class; } @@ -43086,9 +43754,9 @@ tr4233: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 319;goto st327;} } - goto st319; -tr4255: + { p--; {stack[top++] = 323;goto st331;} } + goto st323; +tr4284: { s->r_class = s->default_class; } @@ -43099,12 +43767,12 @@ tr4255: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 319;goto st327;} } - goto st319; -st319: + { p--; {stack[top++] = 323;goto st331;} } + goto st323; +st323: if ( ++p == pe ) - goto _test_eof319; -case 319: + goto _test_eof323; +case 323: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43118,33 +43786,33 @@ case 319: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 79: goto st183; case 111: goto st183; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; + goto tr1051; tr26: { s->buffer_length = 0; } - goto st320; -tr1040: + goto st324; +tr1052: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st320; -tr4199: + goto st324; +tr4228: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -43154,30 +43822,30 @@ tr4199: s->buffer[0] = 0; s->buffer_length = 0; } - goto st320; -tr4269: + goto st324; +tr4298: { s->buffer_length = 0; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st320; -tr4265: + goto st324; +tr4294: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -43187,11 +43855,11 @@ tr4265: s->buffer[0] = 0; s->buffer_length = 0; } - goto st320; -st320: + goto st324; +st324: if ( ++p == pe ) - goto _test_eof320; -case 320: + goto _test_eof324; +case 324: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -43211,46 +43879,46 @@ case 320: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr797; - case 2058: goto tr1041; + case 1802: goto tr798; + case 2058: goto tr1053; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1040; + goto tr1052; } else if ( _widec >= 1664 ) - goto tr796; - goto tr91; -tr739: + goto tr797; + goto tr92; +tr740: { s->buffer_length = 0; } - goto st321; -tr1042: + goto st325; +tr1054: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st321; -tr4235: + goto st325; +tr4264: { s->buffer_length = 0; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st321; -st321: + goto st325; +st325: if ( ++p == pe ) - goto _test_eof321; -case 321: + goto _test_eof325; +case 325: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -43270,16 +43938,16 @@ case 321: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr797; - case 2058: goto tr1043; + case 1802: goto tr798; + case 2058: goto tr1055; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1042; + goto tr1054; } else if ( _widec >= 1664 ) - goto tr796; - goto tr154; -tr4221: + goto tr797; + goto tr155; +tr4250: { s->r_class = s->default_class; } @@ -43287,12 +43955,12 @@ tr4221: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 322;goto st327;} } - goto st322; -st322: + { p--; {stack[top++] = 326;goto st331;} } + goto st326; +st326: if ( ++p == pe ) - goto _test_eof322; -case 322: + goto _test_eof326; +case 326: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43306,37 +43974,37 @@ case 322: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr810; - case 32: goto tr810; - case 40: goto tr811; - case 41: goto tr812; + case 9: goto tr811; + case 32: goto tr811; + case 40: goto tr812; + case 41: goto tr813; case 78: goto st74; case 80: goto st77; case 110: goto st74; case 112: goto st77; - case 2058: goto tr813; - case 2107: goto tr814; + case 2058: goto tr814; + case 2107: goto tr815; } - goto tr1039; -tr159: + goto tr1051; +tr160: { s->buffer_length = 0; } - goto st323; -tr1044: + goto st327; +tr1056: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st323; -tr153: + goto st327; +tr154: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -43346,11 +44014,11 @@ tr153: s->buffer[0] = 0; s->buffer_length = 0; } - goto st323; -st323: + goto st327; +st327: if ( ++p == pe ) - goto _test_eof323; -case 323: + goto _test_eof327; +case 327: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -43370,33 +44038,33 @@ case 323: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr98; - case 2058: goto tr1045; + case 1802: goto tr99; + case 2058: goto tr1057; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1044; + goto tr1056; } else if ( _widec >= 1664 ) - goto tr97; - goto tr154; -tr1049: + goto tr98; + goto tr155; +tr1061: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st324; -tr1048: + goto st328; +tr1060: { s->line_counter++; } - goto st324; -st324: + goto st328; +st328: if ( ++p == pe ) - goto _test_eof324; -case 324: + goto _test_eof328; +case 328: _widec = (*p); if ( (*p) > 10 ) { if ( 41 <= (*p) && (*p) <= 41 ) { @@ -43410,38 +44078,38 @@ case 324: s->multiline ) _widec += 256; } switch( _widec ) { - case 266: goto tr1047; - case 522: goto tr1048; - case 1065: goto tr1049; + case 266: goto tr1059; + case 522: goto tr1060; + case 1065: goto tr1061; } if ( _widec < 11 ) { if ( _widec <= 9 ) - goto st324; + goto st328; } else if ( _widec > 40 ) { if ( 42 <= _widec ) - goto st324; + goto st328; } else - goto st324; + goto st328; goto st0; -tr1047: - { p--; {stack[top++] = 1502;goto st1492;} } +tr1059: + { p--; {stack[top++] = 1514;goto st1504;} } { s->line_counter++; } - goto st1502; -st1502: + goto st1514; +st1514: if ( ++p == pe ) - goto _test_eof1502; -case 1502: + goto _test_eof1514; +case 1514: goto st0; -st325: +st329: if ( ++p == pe ) - goto _test_eof325; -case 325: + goto _test_eof329; +case 329: if ( (*p) == 10 ) - goto tr1051; - goto tr1050; -tr1050: + goto tr1063; + goto tr1062; +tr1062: { s->buffer_length = 0; } @@ -43454,8 +44122,8 @@ tr1050: s->buffer[s->buffer_length++] = (*p); } } - goto st326; -tr1052: + goto st330; +tr1064: { if ((*p) == '\r') { ERR(ZS_DOS_NEWLINE); @@ -43465,16 +44133,16 @@ tr1052: s->buffer[s->buffer_length++] = (*p); } } - goto st326; -st326: + goto st330; +st330: if ( ++p == pe ) - goto _test_eof326; -case 326: + goto _test_eof330; +case 330: if ( (*p) == 10 ) - goto tr1053; - goto tr1052; -tr1051: - cs = 1503; + goto tr1065; + goto tr1064; +tr1063: + cs = 1515; { s->buffer_length = 0; } @@ -43511,18 +44179,18 @@ tr1051: if (s->error.fatal) { {p++; goto _out;} } - {goto st324;} + {goto st328;} } else { // Return if external processing. - p--; cs = 324; {p++; goto _out;} + p--; cs = 328; {p++; goto _out;} } } { s->line_counter++; } goto _again; -tr1053: - cs = 1503; +tr1065: + cs = 1515; { // Terminate the error context string. s->buffer[s->buffer_length++] = 0; @@ -43556,42 +44224,42 @@ tr1053: if (s->error.fatal) { {p++; goto _out;} } - {goto st324;} + {goto st328;} } else { // Return if external processing. - p--; cs = 324; {p++; goto _out;} + p--; cs = 328; {p++; goto _out;} } } { s->line_counter++; } goto _again; -st1503: +st1515: if ( ++p == pe ) - goto _test_eof1503; -case 1503: + goto _test_eof1515; +case 1515: goto st0; -st327: +st331: if ( ++p == pe ) - goto _test_eof327; -case 327: + goto _test_eof331; +case 331: switch( (*p) ) { - case 42: goto tr1055; - case 46: goto tr1056; - case 64: goto st335; - case 92: goto tr1058; - case 95: goto tr1055; + case 42: goto tr1067; + case 46: goto tr1068; + case 64: goto st339; + case 92: goto tr1070; + case 95: goto tr1067; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1055; + goto tr1067; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1055; + goto tr1067; } else - goto tr1055; - goto tr1054; -tr1055: + goto tr1067; + goto tr1066; +tr1067: { s->item_length_position = 0; s->dname_tmp_length = 0; @@ -43607,11 +44275,11 @@ tr1055: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st328; -tr1060: + goto st332; +tr1072: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -43619,11 +44287,11 @@ tr1060: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st328; -tr1064: + goto st332; +tr1076: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -43635,11 +44303,11 @@ tr1064: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st328; -tr1071: + goto st332; +tr1083: { s->dname_tmp_length++; } @@ -43650,38 +44318,38 @@ tr1071: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st328; -st328: + goto st332; +st332: if ( ++p == pe ) - goto _test_eof328; -case 328: + goto _test_eof332; +case 332: switch( (*p) ) { - case 32: goto tr1059; - case 42: goto tr1060; - case 46: goto tr1061; - case 59: goto tr1059; - case 92: goto st330; - case 95: goto tr1060; + case 32: goto tr1071; + case 42: goto tr1072; + case 46: goto tr1073; + case 59: goto tr1071; + case 92: goto st334; + case 95: goto tr1072; } if ( (*p) < 45 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1059; + goto tr1071; } else if ( (*p) >= 9 ) - goto tr1059; + goto tr1071; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1060; + goto tr1072; } else if ( (*p) >= 65 ) - goto tr1060; + goto tr1072; } else - goto tr1060; - goto tr1054; -tr1059: + goto tr1072; + goto tr1066; +tr1071: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -43690,7 +44358,7 @@ tr1059: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -43703,14 +44371,14 @@ tr1059: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1504; -tr1063: + goto st1516; +tr1075: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -43718,8 +44386,8 @@ tr1063: { p--; {cs = stack[--top];goto _again;} } - goto st1504; -tr1070: + goto st1516; +tr1082: { s->dname_tmp_length++; } @@ -43731,7 +44399,7 @@ tr1070: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -43744,14 +44412,14 @@ tr1070: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1504; -tr1074: + goto st1516; +tr1086: { // Copy already verified zone origin. memcpy(s->dname, @@ -43763,13 +44431,13 @@ tr1074: { p--; {cs = stack[--top];goto _again;} } - goto st1504; -st1504: + goto st1516; +st1516: if ( ++p == pe ) - goto _test_eof1504; -case 1504: + goto _test_eof1516; +case 1516: goto st0; -tr1061: +tr1073: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -43778,11 +44446,11 @@ tr1061: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st329; -tr1072: + goto st333; +tr1084: { s->dname_tmp_length++; } @@ -43794,38 +44462,38 @@ tr1072: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st329; -st329: + goto st333; +st333: if ( ++p == pe ) - goto _test_eof329; -case 329: + goto _test_eof333; +case 333: switch( (*p) ) { - case 32: goto tr1063; - case 42: goto tr1064; - case 45: goto tr1064; - case 59: goto tr1063; - case 92: goto tr1065; - case 95: goto tr1064; + case 32: goto tr1075; + case 42: goto tr1076; + case 45: goto tr1076; + case 59: goto tr1075; + case 92: goto tr1077; + case 95: goto tr1076; } if ( (*p) < 47 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1063; + goto tr1075; } else if ( (*p) >= 9 ) - goto tr1063; + goto tr1075; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1064; + goto tr1076; } else if ( (*p) >= 65 ) - goto tr1064; + goto tr1076; } else - goto tr1064; - goto tr1054; -tr1058: + goto tr1076; + goto tr1066; +tr1070: { s->item_length_position = 0; s->dname_tmp_length = 0; @@ -43834,142 +44502,142 @@ tr1058: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st330; -tr1065: + goto st334; +tr1077: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st330; -tr1073: + goto st334; +tr1085: { s->dname_tmp_length++; } - goto st330; -st330: + goto st334; +st334: if ( ++p == pe ) - goto _test_eof330; -case 330: + goto _test_eof334; +case 334: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1066; - goto tr1060; -tr1066: + goto tr1078; + goto tr1072; +tr1078: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st331; -st331: + goto st335; +st335: if ( ++p == pe ) - goto _test_eof331; -case 331: + goto _test_eof335; +case 335: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1068; - goto tr1067; -tr1068: + goto tr1080; + goto tr1079; +tr1080: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st332; -st332: + goto st336; +st336: if ( ++p == pe ) - goto _test_eof332; -case 332: + goto _test_eof336; +case 336: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1069; - goto tr1067; -tr1069: + goto tr1081; + goto tr1079; +tr1081: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st333; -st333: + goto st337; +st337: if ( ++p == pe ) - goto _test_eof333; -case 333: + goto _test_eof337; +case 337: switch( (*p) ) { - case 32: goto tr1070; - case 42: goto tr1071; - case 46: goto tr1072; - case 59: goto tr1070; - case 92: goto tr1073; - case 95: goto tr1071; + case 32: goto tr1082; + case 42: goto tr1083; + case 46: goto tr1084; + case 59: goto tr1082; + case 92: goto tr1085; + case 95: goto tr1083; } if ( (*p) < 45 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1070; + goto tr1082; } else if ( (*p) >= 9 ) - goto tr1070; + goto tr1082; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1071; + goto tr1083; } else if ( (*p) >= 65 ) - goto tr1071; + goto tr1083; } else - goto tr1071; - goto tr1067; -tr1056: + goto tr1083; + goto tr1079; +tr1068: { s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st334; -st334: + goto st338; +st338: if ( ++p == pe ) - goto _test_eof334; -case 334: + goto _test_eof338; +case 338: switch( (*p) ) { - case 32: goto tr1063; - case 59: goto tr1063; + case 32: goto tr1075; + case 59: goto tr1075; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1063; + goto tr1075; } else if ( (*p) >= 9 ) - goto tr1063; - goto tr1054; -st335: + goto tr1075; + goto tr1066; +st339: if ( ++p == pe ) - goto _test_eof335; -case 335: + goto _test_eof339; +case 339: switch( (*p) ) { - case 32: goto tr1074; - case 59: goto tr1074; + case 32: goto tr1086; + case 59: goto tr1086; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1074; + goto tr1086; } else if ( (*p) >= 9 ) - goto tr1074; - goto tr1054; -st336: + goto tr1086; + goto tr1066; +st340: if ( ++p == pe ) - goto _test_eof336; -case 336: + goto _test_eof340; +case 340: switch( (*p) ) { - case 34: goto st342; - case 92: goto st338; + case 34: goto st346; + case 92: goto st342; } if ( (*p) > 58 ) { if ( 60 <= (*p) && (*p) <= 126 ) - goto tr1076; + goto tr1088; } else if ( (*p) >= 33 ) - goto tr1076; - goto tr1075; -tr1076: + goto tr1088; + goto tr1087; +tr1088: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -43982,18 +44650,18 @@ tr1076: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st337; -tr1080: + goto st341; +tr1092: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44001,7 +44669,7 @@ tr1080: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44019,7 +44687,7 @@ tr1080: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -44035,18 +44703,18 @@ tr1080: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st337; -tr1088: + goto st341; +tr1100: { rdata_tail++; } @@ -44057,7 +44725,7 @@ tr1088: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44075,7 +44743,7 @@ tr1088: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -44091,40 +44759,40 @@ tr1088: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st337; -st337: + goto st341; +st341: if ( ++p == pe ) - goto _test_eof337; -case 337: + goto _test_eof341; +case 341: switch( (*p) ) { - case 32: goto tr1079; - case 33: goto tr1080; - case 59: goto tr1079; - case 92: goto tr1082; + case 32: goto tr1091; + case 33: goto tr1092; + case 59: goto tr1091; + case 92: goto tr1094; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1079; + goto tr1091; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1080; + goto tr1092; } else if ( (*p) >= 40 ) - goto tr1081; + goto tr1093; } else - goto tr1080; - goto tr1075; -tr1079: + goto tr1092; + goto tr1087; +tr1091: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44132,7 +44800,7 @@ tr1079: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44150,15 +44818,15 @@ tr1079: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } { p--; {cs = stack[--top];goto _again;} } - goto st1505; -tr1087: + goto st1517; +tr1099: { rdata_tail++; } @@ -44169,7 +44837,7 @@ tr1087: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44187,25 +44855,25 @@ tr1087: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } { p--; {cs = stack[--top];goto _again;} } - goto st1505; -tr1100: + goto st1517; +tr1112: { p--; {cs = stack[--top];goto _again;} } - goto st1505; -st1505: + goto st1517; +st1517: if ( ++p == pe ) - goto _test_eof1505; -case 1505: + goto _test_eof1517; +case 1517: goto st0; -tr1081: +tr1093: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44213,7 +44881,7 @@ tr1081: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44231,7 +44899,7 @@ tr1081: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -44247,21 +44915,21 @@ tr1081: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1506; -tr1089: + goto st1518; +tr1101: { rdata_tail++; } @@ -44272,7 +44940,7 @@ tr1089: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44290,7 +44958,7 @@ tr1089: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -44306,43 +44974,43 @@ tr1089: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1506; -st1506: + goto st1518; +st1518: if ( ++p == pe ) - goto _test_eof1506; -case 1506: + goto _test_eof1518; +case 1518: switch( (*p) ) { - case 32: goto tr1079; - case 33: goto tr1080; - case 59: goto tr1079; - case 92: goto tr1082; + case 32: goto tr1091; + case 33: goto tr1092; + case 59: goto tr1091; + case 92: goto tr1094; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1079; + goto tr1091; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1080; + goto tr1092; } else if ( (*p) >= 40 ) - goto tr1081; + goto tr1093; } else - goto tr1080; - goto tr1075; -tr1082: + goto tr1092; + goto tr1087; +tr1094: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44350,7 +45018,7 @@ tr1082: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44368,12 +45036,12 @@ tr1082: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } - goto st338; -tr1090: + goto st342; +tr1102: { rdata_tail++; } @@ -44384,7 +45052,7 @@ tr1090: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44402,25 +45070,25 @@ tr1090: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } - goto st338; -st338: + goto st342; +st342: if ( ++p == pe ) - goto _test_eof338; -case 338: + goto _test_eof342; +case 342: if ( (*p) < 48 ) { if ( 32 <= (*p) && (*p) <= 47 ) - goto tr1076; + goto tr1088; } else if ( (*p) > 57 ) { if ( 58 <= (*p) && (*p) <= 126 ) - goto tr1076; + goto tr1088; } else - goto tr1084; - goto tr1083; -tr1084: + goto tr1096; + goto tr1095; +tr1096: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -44433,7 +45101,7 @@ tr1084: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } @@ -44441,7 +45109,7 @@ tr1084: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -44454,18 +45122,18 @@ tr1084: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st339; -st339: + goto st343; +st343: if ( ++p == pe ) - goto _test_eof339; -case 339: + goto _test_eof343; +case 343: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1085; - goto tr1083; -tr1085: + goto tr1097; + goto tr1095; +tr1097: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -44476,18 +45144,18 @@ tr1085: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st340; -st340: + goto st344; +st344: if ( ++p == pe ) - goto _test_eof340; -case 340: + goto _test_eof344; +case 344: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1086; - goto tr1083; -tr1086: + goto tr1098; + goto tr1095; +tr1098: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -44498,33 +45166,33 @@ tr1086: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st341; -st341: + goto st345; +st345: if ( ++p == pe ) - goto _test_eof341; -case 341: + goto _test_eof345; +case 345: switch( (*p) ) { - case 32: goto tr1087; - case 33: goto tr1088; - case 59: goto tr1087; - case 92: goto tr1090; + case 32: goto tr1099; + case 33: goto tr1100; + case 59: goto tr1099; + case 92: goto tr1102; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1087; + goto tr1099; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1088; + goto tr1100; } else if ( (*p) >= 40 ) - goto tr1089; + goto tr1101; } else - goto tr1088; - goto tr1083; -tr1091: + goto tr1100; + goto tr1095; +tr1103: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -44537,18 +45205,18 @@ tr1091: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st342; -tr1095: + goto st346; +tr1107: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44556,7 +45224,7 @@ tr1095: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44574,7 +45242,7 @@ tr1095: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -44590,18 +45258,18 @@ tr1095: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st342; -tr1104: + goto st346; +tr1116: { rdata_tail++; } @@ -44612,7 +45280,7 @@ tr1104: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44630,7 +45298,7 @@ tr1104: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -44646,21 +45314,21 @@ tr1104: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st342; -st342: + goto st346; +st346: if ( ++p == pe ) - goto _test_eof342; -case 342: + goto _test_eof346; +case 346: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -44668,17 +45336,17 @@ case 342: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1091; - case 32: goto tr1091; - case 34: goto st344; - case 59: goto tr1091; - case 92: goto st345; - case 1546: goto tr1091; + case 9: goto tr1103; + case 32: goto tr1103; + case 34: goto st348; + case 59: goto tr1103; + case 92: goto st349; + case 1546: goto tr1103; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1092; - goto tr1075; -tr1092: + goto tr1104; + goto tr1087; +tr1104: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -44691,18 +45359,18 @@ tr1092: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st343; -tr1096: + goto st347; +tr1108: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44710,7 +45378,7 @@ tr1096: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44728,7 +45396,7 @@ tr1096: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -44744,18 +45412,18 @@ tr1096: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st343; -tr1105: + goto st347; +tr1117: { rdata_tail++; } @@ -44766,7 +45434,7 @@ tr1105: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44784,7 +45452,7 @@ tr1105: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -44800,21 +45468,21 @@ tr1105: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st343; -st343: + goto st347; +st347: if ( ++p == pe ) - goto _test_eof343; -case 343: + goto _test_eof347; +case 347: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -44822,17 +45490,17 @@ case 343: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1095; - case 32: goto tr1095; - case 34: goto tr1097; - case 59: goto tr1095; - case 92: goto tr1098; - case 1546: goto tr1095; + case 9: goto tr1107; + case 32: goto tr1107; + case 34: goto tr1109; + case 59: goto tr1107; + case 92: goto tr1110; + case 1546: goto tr1107; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1096; - goto tr1075; -tr1097: + goto tr1108; + goto tr1087; +tr1109: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44840,7 +45508,7 @@ tr1097: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44858,12 +45526,12 @@ tr1097: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } - goto st344; -tr1106: + goto st348; +tr1118: { rdata_tail++; } @@ -44874,7 +45542,7 @@ tr1106: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44892,26 +45560,26 @@ tr1106: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } - goto st344; -st344: + goto st348; +st348: if ( ++p == pe ) - goto _test_eof344; -case 344: + goto _test_eof348; +case 348: switch( (*p) ) { - case 32: goto tr1100; - case 59: goto tr1100; + case 32: goto tr1112; + case 59: goto tr1112; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1100; + goto tr1112; } else if ( (*p) >= 9 ) - goto tr1100; - goto tr1099; -tr1098: + goto tr1112; + goto tr1111; +tr1110: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44919,7 +45587,7 @@ tr1098: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44937,12 +45605,12 @@ tr1098: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } - goto st345; -tr1107: + goto st349; +tr1119: { rdata_tail++; } @@ -44953,7 +45621,7 @@ tr1107: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44971,25 +45639,25 @@ tr1107: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } } - goto st345; -st345: + goto st349; +st349: if ( ++p == pe ) - goto _test_eof345; -case 345: + goto _test_eof349; +case 349: if ( (*p) < 48 ) { if ( 32 <= (*p) && (*p) <= 47 ) - goto tr1092; + goto tr1104; } else if ( (*p) > 57 ) { if ( 58 <= (*p) && (*p) <= 126 ) - goto tr1092; + goto tr1104; } else - goto tr1101; - goto tr1083; -tr1101: + goto tr1113; + goto tr1095; +tr1113: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -45002,7 +45670,7 @@ tr1101: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } @@ -45010,7 +45678,7 @@ tr1101: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -45023,18 +45691,18 @@ tr1101: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st346; -st346: + goto st350; +st350: if ( ++p == pe ) - goto _test_eof346; -case 346: + goto _test_eof350; +case 350: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1102; - goto tr1083; -tr1102: + goto tr1114; + goto tr1095; +tr1114: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -45045,18 +45713,18 @@ tr1102: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st347; -st347: + goto st351; +st351: if ( ++p == pe ) - goto _test_eof347; -case 347: + goto _test_eof351; +case 351: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1103; - goto tr1083; -tr1103: + goto tr1115; + goto tr1095; +tr1115: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -45067,14 +45735,14 @@ tr1103: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st348; -st348: + goto st352; +st352: if ( ++p == pe ) - goto _test_eof348; -case 348: + goto _test_eof352; +case 352: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -45082,20 +45750,20 @@ case 348: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1104; - case 32: goto tr1104; - case 34: goto tr1106; - case 59: goto tr1104; - case 92: goto tr1107; - case 1546: goto tr1104; + case 9: goto tr1116; + case 32: goto tr1116; + case 34: goto tr1118; + case 59: goto tr1116; + case 92: goto tr1119; + case 1546: goto tr1116; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1105; - goto tr1083; -st349: + goto tr1117; + goto tr1095; +st353: if ( ++p == pe ) - goto _test_eof349; -case 349: + goto _test_eof353; +case 353: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45109,38 +45777,38 @@ case 349: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st350; - case 32: goto st350; - case 40: goto tr1110; - case 41: goto tr1111; - case 2058: goto tr1112; - case 2107: goto tr1113; - } - goto tr1108; -tr1110: + case 9: goto st354; + case 32: goto st354; + case 40: goto tr1122; + case 41: goto tr1123; + case 2058: goto tr1124; + case 2107: goto tr1125; + } + goto tr1120; +tr1122: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st350; -tr1111: + goto st354; +tr1123: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st350; -tr1112: + goto st354; +tr1124: { s->line_counter++; } - goto st350; -tr1151: + goto st354; +tr1163: { s->buffer[s->buffer_length++] = 0; @@ -45150,18 +45818,18 @@ tr1151: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 350; goto _out;} + {p++; cs = 354; goto _out;} } } } { s->line_counter++; } - goto st350; -st350: + goto st354; +st354: if ( ++p == pe ) - goto _test_eof350; -case 350: + goto _test_eof354; +case 354: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45175,17 +45843,17 @@ case 350: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st350; - case 32: goto st350; - case 40: goto tr1110; - case 41: goto tr1111; - case 2058: goto tr1112; - case 2107: goto tr1113; + case 9: goto st354; + case 32: goto st354; + case 40: goto tr1122; + case 41: goto tr1123; + case 2058: goto tr1124; + case 2107: goto tr1125; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1115; - goto tr1114; -tr1115: + goto tr1127; + goto tr1126; +tr1127: { s->number64 = 0; } @@ -45200,11 +45868,11 @@ tr1115: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st351; -tr1120: + goto st355; +tr1132: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -45216,14 +45884,14 @@ tr1120: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st351; -st351: + goto st355; +st355: if ( ++p == pe ) - goto _test_eof351; -case 351: + goto _test_eof355; +case 355: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45237,53 +45905,53 @@ case 351: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1117; - case 32: goto tr1117; - case 40: goto tr1118; - case 41: goto tr1119; - case 68: goto tr1121; - case 72: goto tr1122; - case 77: goto tr1123; - case 83: goto st354; - case 87: goto tr1125; - case 100: goto tr1121; - case 104: goto tr1122; - case 109: goto tr1123; - case 115: goto st354; - case 119: goto tr1125; - case 1802: goto tr1126; - case 1851: goto tr1127; - case 2058: goto tr1126; - case 2107: goto tr1127; + case 9: goto tr1129; + case 32: goto tr1129; + case 40: goto tr1130; + case 41: goto tr1131; + case 68: goto tr1133; + case 72: goto tr1134; + case 77: goto tr1135; + case 83: goto st358; + case 87: goto tr1137; + case 100: goto tr1133; + case 104: goto tr1134; + case 109: goto tr1135; + case 115: goto st358; + case 119: goto tr1137; + case 1802: goto tr1138; + case 1851: goto tr1139; + case 2058: goto tr1138; + case 2107: goto tr1139; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1120; - goto tr1116; -tr1130: + goto tr1132; + goto tr1128; +tr1142: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st352; -tr1131: + goto st356; +tr1143: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st352; -tr1117: + goto st356; +tr1129: { s->buffer[0] = 0; s->buffer_length = 0; } - goto st352; -tr1118: + goto st356; +tr1130: { s->buffer[0] = 0; s->buffer_length = 0; @@ -45291,12 +45959,12 @@ tr1118: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st352; -tr1119: + goto st356; +tr1131: { s->buffer[0] = 0; s->buffer_length = 0; @@ -45304,32 +45972,32 @@ tr1119: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st352; -tr1144: + goto st356; +tr1156: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st352; -tr1145: + goto st356; +tr1157: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -45339,18 +46007,18 @@ tr1145: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st352; -tr1146: + goto st356; +tr1158: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -45360,15 +46028,15 @@ tr1146: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st352; -st352: + goto st356; +st356: if ( ++p == pe ) - goto _test_eof352; -case 352: + goto _test_eof356; +case 356: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45382,17 +46050,17 @@ case 352: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st352; - case 32: goto st352; - case 40: goto tr1130; - case 41: goto tr1131; - case 1802: goto tr1132; - case 1851: goto tr1133; - case 2058: goto tr1132; - case 2107: goto tr1133; - } - goto tr1128; -tr1126: + case 9: goto st356; + case 32: goto st356; + case 40: goto tr1142; + case 41: goto tr1143; + case 1802: goto tr1144; + case 1851: goto tr1145; + case 2058: goto tr1144; + case 2107: goto tr1145; + } + goto tr1140; +tr1138: { s->buffer[0] = 0; s->buffer_length = 0; @@ -45402,7 +46070,7 @@ tr1126: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -45411,14 +46079,14 @@ tr1126: { s->line_counter++; } - goto st1507; -tr1132: + goto st1519; +tr1144: { if (s->number64 <= UINT32_MAX) { s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -45427,8 +46095,8 @@ tr1132: { s->line_counter++; } - goto st1507; -tr1135: + goto st1519; +tr1147: { s->buffer[s->buffer_length++] = 0; @@ -45438,7 +46106,7 @@ tr1135: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1507; goto _out;} + {p++; cs = 1519; goto _out;} } } } @@ -45447,7 +46115,7 @@ tr1135: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -45456,14 +46124,14 @@ tr1135: { s->line_counter++; } - goto st1507; -tr1148: + goto st1519; +tr1160: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -45475,7 +46143,7 @@ tr1148: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -45484,18 +46152,18 @@ tr1148: { s->line_counter++; } - goto st1507; -st1507: + goto st1519; +st1519: if ( ++p == pe ) - goto _test_eof1507; -case 1507: + goto _test_eof1519; +case 1519: goto st0; -tr1133: +tr1145: { s->buffer_length = 0; } - goto st353; -tr1127: + goto st357; +tr1139: { s->buffer[0] = 0; s->buffer_length = 0; @@ -45503,21 +46171,21 @@ tr1127: { s->buffer_length = 0; } - goto st353; -tr1134: + goto st357; +tr1146: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st353; -tr1149: + goto st357; +tr1161: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -45527,54 +46195,54 @@ tr1149: { s->buffer_length = 0; } - goto st353; -st353: + goto st357; +st357: if ( ++p == pe ) - goto _test_eof353; -case 353: + goto _test_eof357; +case 357: if ( (*p) == 10 ) - goto tr1135; - goto tr1134; -tr1121: + goto tr1147; + goto tr1146; +tr1133: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st354; -tr1122: + goto st358; +tr1134: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st354; -tr1123: + goto st358; +tr1135: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st354; -tr1125: + goto st358; +tr1137: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st354; -st354: + goto st358; +st358: if ( ++p == pe ) - goto _test_eof354; -case 354: + goto _test_eof358; +case 358: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45588,19 +46256,19 @@ case 354: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1117; - case 32: goto tr1117; - case 40: goto tr1118; - case 41: goto tr1119; - case 1802: goto tr1126; - case 1851: goto tr1127; - case 2058: goto tr1126; - case 2107: goto tr1127; + case 9: goto tr1129; + case 32: goto tr1129; + case 40: goto tr1130; + case 41: goto tr1131; + case 1802: goto tr1138; + case 1851: goto tr1139; + case 2058: goto tr1138; + case 2107: goto tr1139; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1136; - goto tr1116; -tr1138: + goto tr1148; + goto tr1128; +tr1150: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -45612,11 +46280,11 @@ tr1138: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st355; -tr1136: + goto st359; +tr1148: { s->number64_tmp = s->number64; } @@ -45634,17 +46302,17 @@ tr1136: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st355; -tr1147: + goto st359; +tr1159: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -45664,69 +46332,69 @@ tr1147: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st355; -st355: + goto st359; +st359: if ( ++p == pe ) - goto _test_eof355; -case 355: + goto _test_eof359; +case 359: switch( (*p) ) { - case 68: goto tr1139; - case 72: goto tr1140; - case 77: goto tr1141; - case 83: goto st356; - case 87: goto tr1143; - case 100: goto tr1139; - case 104: goto tr1140; - case 109: goto tr1141; - case 115: goto st356; - case 119: goto tr1143; + case 68: goto tr1151; + case 72: goto tr1152; + case 77: goto tr1153; + case 83: goto st360; + case 87: goto tr1155; + case 100: goto tr1151; + case 104: goto tr1152; + case 109: goto tr1153; + case 115: goto st360; + case 119: goto tr1155; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1138; - goto tr1137; -tr1139: + goto tr1150; + goto tr1149; +tr1151: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st356; -tr1140: + goto st360; +tr1152: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st356; -tr1141: + goto st360; +tr1153: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st356; -tr1143: + goto st360; +tr1155: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st356; -st356: + goto st360; +st360: if ( ++p == pe ) - goto _test_eof356; -case 356: + goto _test_eof360; +case 360: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45740,34 +46408,34 @@ case 356: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1144; - case 32: goto tr1144; - case 40: goto tr1145; - case 41: goto tr1146; - case 1802: goto tr1148; - case 1851: goto tr1149; - case 2058: goto tr1148; - case 2107: goto tr1149; + case 9: goto tr1156; + case 32: goto tr1156; + case 40: goto tr1157; + case 41: goto tr1158; + case 1802: goto tr1160; + case 1851: goto tr1161; + case 2058: goto tr1160; + case 2107: goto tr1161; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1147; - goto tr1116; -tr1113: + goto tr1159; + goto tr1128; +tr1125: { s->buffer_length = 0; } - goto st357; -tr1150: + goto st361; +tr1162: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st357; -st357: + goto st361; +st361: if ( ++p == pe ) - goto _test_eof357; -case 357: + goto _test_eof361; +case 361: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -45787,14 +46455,14 @@ case 357: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1151; + goto tr1163; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1150; - goto tr1108; -st358: + goto tr1162; + goto tr1120; +st362: if ( ++p == pe ) - goto _test_eof358; -case 358: + goto _test_eof362; +case 362: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45808,38 +46476,38 @@ case 358: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st359; - case 32: goto st359; - case 40: goto tr1154; - case 41: goto tr1155; - case 2058: goto tr1156; - case 2107: goto tr1157; + case 9: goto st363; + case 32: goto st363; + case 40: goto tr1166; + case 41: goto tr1167; + case 2058: goto tr1168; + case 2107: goto tr1169; } - goto tr1152; -tr1154: + goto tr1164; +tr1166: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st359; -tr1155: + goto st363; +tr1167: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st359; -tr1156: + goto st363; +tr1168: { s->line_counter++; } - goto st359; -tr1187: + goto st363; +tr1199: { s->buffer[s->buffer_length++] = 0; @@ -45849,18 +46517,18 @@ tr1187: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 359; goto _out;} + {p++; cs = 363; goto _out;} } } } { s->line_counter++; } - goto st359; -st359: + goto st363; +st363: if ( ++p == pe ) - goto _test_eof359; -case 359: + goto _test_eof363; +case 363: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -45874,27 +46542,27 @@ case 359: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st359; - case 32: goto st359; - case 40: goto tr1154; - case 41: goto tr1155; - case 42: goto tr1158; - case 46: goto tr1159; - case 92: goto tr1160; - case 95: goto tr1158; - case 2058: goto tr1156; - case 2107: goto tr1157; + case 9: goto st363; + case 32: goto st363; + case 40: goto tr1166; + case 41: goto tr1167; + case 42: goto tr1170; + case 46: goto tr1171; + case 92: goto tr1172; + case 95: goto tr1170; + case 2058: goto tr1168; + case 2107: goto tr1169; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1158; + goto tr1170; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1158; + goto tr1170; } else - goto tr1158; - goto tr1152; -tr1161: + goto tr1170; + goto tr1164; +tr1173: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -45902,11 +46570,11 @@ tr1161: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st360; -tr1168: + goto st364; +tr1180: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -45918,11 +46586,11 @@ tr1168: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st360; -tr1183: + goto st364; +tr1195: { s->dname_tmp_length++; } @@ -45933,11 +46601,11 @@ tr1183: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st360; -tr1158: + goto st364; +tr1170: { s->dname = s->zone_origin; } @@ -45956,30 +46624,30 @@ tr1158: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st360; -st360: + goto st364; +st364: if ( ++p == pe ) - goto _test_eof360; -case 360: + goto _test_eof364; +case 364: switch( (*p) ) { - case 42: goto tr1161; - case 46: goto tr1162; - case 92: goto st364; - case 95: goto tr1161; + case 42: goto tr1173; + case 46: goto tr1174; + case 92: goto st368; + case 95: goto tr1173; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1161; + goto tr1173; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1161; + goto tr1173; } else - goto tr1161; - goto tr1152; -tr1162: + goto tr1173; + goto tr1164; +tr1174: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -45988,11 +46656,11 @@ tr1162: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st361; -tr1184: + goto st365; +tr1196: { s->dname_tmp_length++; } @@ -46004,14 +46672,14 @@ tr1184: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st361; -st361: + goto st365; +st365: if ( ++p == pe ) - goto _test_eof361; -case 361: + goto _test_eof365; +case 365: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46025,47 +46693,47 @@ case 361: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1165; - case 32: goto tr1165; - case 40: goto tr1166; - case 41: goto tr1167; - case 42: goto tr1168; - case 45: goto tr1168; - case 92: goto tr1169; - case 95: goto tr1168; - case 1802: goto tr1170; - case 1851: goto tr1171; - case 2058: goto tr1170; - case 2107: goto tr1171; + case 9: goto tr1177; + case 32: goto tr1177; + case 40: goto tr1178; + case 41: goto tr1179; + case 42: goto tr1180; + case 45: goto tr1180; + case 92: goto tr1181; + case 95: goto tr1180; + case 1802: goto tr1182; + case 1851: goto tr1183; + case 2058: goto tr1182; + case 2107: goto tr1183; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1168; + goto tr1180; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1168; + goto tr1180; } else - goto tr1168; - goto tr1164; -tr1173: + goto tr1180; + goto tr1176; +tr1185: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st362; -tr1174: + goto st366; +tr1186: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st362; -tr1165: + goto st366; +tr1177: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46074,8 +46742,8 @@ tr1165: s->buffer[0] = 0; s->buffer_length = 0; } - goto st362; -tr1166: + goto st366; +tr1178: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46087,12 +46755,12 @@ tr1166: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st362; -tr1167: + goto st366; +tr1179: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46104,15 +46772,15 @@ tr1167: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st362; -st362: + goto st366; +st366: if ( ++p == pe ) - goto _test_eof362; -case 362: + goto _test_eof366; +case 366: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46126,17 +46794,17 @@ case 362: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st362; - case 32: goto st362; - case 40: goto tr1173; - case 41: goto tr1174; - case 1802: goto tr1175; - case 1851: goto tr1176; - case 2058: goto tr1175; - case 2107: goto tr1176; - } - goto tr1164; -tr1170: + case 9: goto st366; + case 32: goto st366; + case 40: goto tr1185; + case 41: goto tr1186; + case 1802: goto tr1187; + case 1851: goto tr1188; + case 2058: goto tr1187; + case 2107: goto tr1188; + } + goto tr1176; +tr1182: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46154,8 +46822,8 @@ tr1170: { s->line_counter++; } - goto st1508; -tr1175: + goto st1520; +tr1187: { s->zone_origin_length = s->dname_tmp_length; } @@ -46165,8 +46833,8 @@ tr1175: { s->line_counter++; } - goto st1508; -tr1178: + goto st1520; +tr1190: { s->buffer[s->buffer_length++] = 0; @@ -46176,7 +46844,7 @@ tr1178: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1508; goto _out;} + {p++; cs = 1520; goto _out;} } } } @@ -46189,25 +46857,25 @@ tr1178: { s->line_counter++; } - goto st1508; -st1508: + goto st1520; +st1520: if ( ++p == pe ) - goto _test_eof1508; -case 1508: + goto _test_eof1520; +case 1520: goto st0; -tr1176: +tr1188: { s->buffer_length = 0; } - goto st363; -tr1177: + goto st367; +tr1189: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st363; -tr1171: + goto st367; +tr1183: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46219,26 +46887,26 @@ tr1171: { s->buffer_length = 0; } - goto st363; -st363: + goto st367; +st367: if ( ++p == pe ) - goto _test_eof363; -case 363: + goto _test_eof367; +case 367: if ( (*p) == 10 ) - goto tr1178; - goto tr1177; -tr1169: + goto tr1190; + goto tr1189; +tr1181: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st364; -tr1185: + goto st368; +tr1197: { s->dname_tmp_length++; } - goto st364; -tr1160: + goto st368; +tr1172: { s->dname = s->zone_origin; } @@ -46250,75 +46918,75 @@ tr1160: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st364; -st364: + goto st368; +st368: if ( ++p == pe ) - goto _test_eof364; -case 364: + goto _test_eof368; +case 368: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1179; - goto tr1161; -tr1179: + goto tr1191; + goto tr1173; +tr1191: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st365; -st365: + goto st369; +st369: if ( ++p == pe ) - goto _test_eof365; -case 365: + goto _test_eof369; +case 369: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1181; - goto tr1180; -tr1181: + goto tr1193; + goto tr1192; +tr1193: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st366; -st366: + goto st370; +st370: if ( ++p == pe ) - goto _test_eof366; -case 366: + goto _test_eof370; +case 370: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1182; - goto tr1180; -tr1182: + goto tr1194; + goto tr1192; +tr1194: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st367; -st367: + goto st371; +st371: if ( ++p == pe ) - goto _test_eof367; -case 367: + goto _test_eof371; +case 371: switch( (*p) ) { - case 42: goto tr1183; - case 46: goto tr1184; - case 92: goto tr1185; - case 95: goto tr1183; + case 42: goto tr1195; + case 46: goto tr1196; + case 92: goto tr1197; + case 95: goto tr1195; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1183; + goto tr1195; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1183; + goto tr1195; } else - goto tr1183; - goto tr1180; -tr1159: + goto tr1195; + goto tr1192; +tr1171: { s->dname = s->zone_origin; } @@ -46326,11 +46994,11 @@ tr1159: s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st368; -st368: + goto st372; +st372: if ( ++p == pe ) - goto _test_eof368; -case 368: + goto _test_eof372; +case 372: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46344,32 +47012,32 @@ case 368: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1165; - case 32: goto tr1165; - case 40: goto tr1166; - case 41: goto tr1167; - case 1802: goto tr1170; - case 1851: goto tr1171; - case 2058: goto tr1170; - case 2107: goto tr1171; - } - goto tr1164; -tr1157: + case 9: goto tr1177; + case 32: goto tr1177; + case 40: goto tr1178; + case 41: goto tr1179; + case 1802: goto tr1182; + case 1851: goto tr1183; + case 2058: goto tr1182; + case 2107: goto tr1183; + } + goto tr1176; +tr1169: { s->buffer_length = 0; } - goto st369; -tr1186: + goto st373; +tr1198: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st369; -st369: + goto st373; +st373: if ( ++p == pe ) - goto _test_eof369; -case 369: + goto _test_eof373; +case 373: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -46389,14 +47057,14 @@ case 369: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1187; + goto tr1199; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1186; - goto tr1152; -st370: + goto tr1198; + goto tr1164; +st374: if ( ++p == pe ) - goto _test_eof370; -case 370: + goto _test_eof374; +case 374: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46410,38 +47078,38 @@ case 370: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st371; - case 32: goto st371; - case 40: goto tr1189; - case 41: goto tr1190; - case 2058: goto tr1191; - case 2107: goto tr1192; + case 9: goto st375; + case 32: goto st375; + case 40: goto tr1201; + case 41: goto tr1202; + case 2058: goto tr1203; + case 2107: goto tr1204; } goto st0; -tr1189: +tr1201: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st371; -tr1190: + goto st375; +tr1202: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st371; -tr1191: + goto st375; +tr1203: { s->line_counter++; } - goto st371; -tr1245: + goto st375; +tr1257: { s->buffer[s->buffer_length++] = 0; @@ -46451,18 +47119,18 @@ tr1245: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 371; goto _out;} + {p++; cs = 375; goto _out;} } } } { s->line_counter++; } - goto st371; -st371: + goto st375; +st375: if ( ++p == pe ) - goto _test_eof371; -case 371: + goto _test_eof375; +case 375: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46476,32 +47144,32 @@ case 371: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st371; - case 32: goto st371; - case 40: goto tr1189; - case 41: goto tr1190; - case 2058: goto tr1191; - case 2107: goto tr1192; + case 9: goto st375; + case 32: goto st375; + case 40: goto tr1201; + case 41: goto tr1202; + case 2058: goto tr1203; + case 2107: goto tr1204; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr1193; + goto tr1205; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr1193; + goto tr1205; } else - goto tr1193; - goto tr1194; -tr1193: + goto tr1205; + goto tr1206; +tr1205: { rdata_tail = s->r_data; } - { p--; {stack[top++] = 372;goto st336;} } - goto st372; -st372: + { p--; {stack[top++] = 376;goto st340;} } + goto st376; +st376: if ( ++p == pe ) - goto _test_eof372; -case 372: + goto _test_eof376; +case 376: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46515,40 +47183,40 @@ case 372: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1196; - case 32: goto tr1196; - case 40: goto tr1197; - case 41: goto tr1198; - case 1802: goto tr1199; - case 1851: goto tr1200; - case 2058: goto tr1199; - case 2107: goto tr1201; - } - goto tr1195; -tr1204: + case 9: goto tr1208; + case 32: goto tr1208; + case 40: goto tr1209; + case 41: goto tr1210; + case 1802: goto tr1211; + case 1851: goto tr1212; + case 2058: goto tr1211; + case 2107: goto tr1213; + } + goto tr1207; +tr1216: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st373; -tr1205: + goto st377; +tr1217: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st373; -tr1196: + goto st377; +tr1208: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } // Store zero terminated include filename. @@ -46562,13 +47230,13 @@ tr1196: s->buffer[0] = 0; s->buffer_length = 0; } - goto st373; -tr1197: + goto st377; +tr1209: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } // Store zero terminated include filename. @@ -46581,7 +47249,7 @@ tr1197: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } @@ -46589,13 +47257,13 @@ tr1197: s->buffer[0] = 0; s->buffer_length = 0; } - goto st373; -tr1198: + goto st377; +tr1210: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } // Store zero terminated include filename. @@ -46608,7 +47276,7 @@ tr1198: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } @@ -46616,11 +47284,11 @@ tr1198: s->buffer[0] = 0; s->buffer_length = 0; } - goto st373; -st373: + goto st377; +st377: if ( ++p == pe ) - goto _test_eof373; -case 373: + goto _test_eof377; +case 377: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46634,29 +47302,29 @@ case 373: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st373; - case 32: goto st373; - case 40: goto tr1204; - case 41: goto tr1205; - case 42: goto tr1206; - case 46: goto tr1207; - case 92: goto tr1208; - case 95: goto tr1206; - case 1802: goto tr1209; - case 1851: goto tr1210; - case 2058: goto tr1209; - case 2107: goto tr1211; + case 9: goto st377; + case 32: goto st377; + case 40: goto tr1216; + case 41: goto tr1217; + case 42: goto tr1218; + case 46: goto tr1219; + case 92: goto tr1220; + case 95: goto tr1218; + case 1802: goto tr1221; + case 1851: goto tr1222; + case 2058: goto tr1221; + case 2107: goto tr1223; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1206; + goto tr1218; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1206; + goto tr1218; } else - goto tr1206; - goto tr1202; -tr1213: + goto tr1218; + goto tr1214; +tr1225: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -46664,11 +47332,11 @@ tr1213: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st374; -tr1219: + goto st378; +tr1231: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -46680,11 +47348,11 @@ tr1219: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st374; -tr1232: + goto st378; +tr1244: { s->dname_tmp_length++; } @@ -46695,11 +47363,11 @@ tr1232: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st374; -tr1206: + goto st378; +tr1218: { s->dname = s->r_data; } @@ -46718,30 +47386,30 @@ tr1206: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st374; -st374: + goto st378; +st378: if ( ++p == pe ) - goto _test_eof374; -case 374: + goto _test_eof378; +case 378: switch( (*p) ) { - case 42: goto tr1213; - case 46: goto tr1214; - case 92: goto st378; - case 95: goto tr1213; + case 42: goto tr1225; + case 46: goto tr1226; + case 92: goto st382; + case 95: goto tr1225; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1213; + goto tr1225; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1213; + goto tr1225; } else - goto tr1213; - goto tr1212; -tr1214: + goto tr1225; + goto tr1224; +tr1226: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -46750,11 +47418,11 @@ tr1214: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st375; -tr1233: + goto st379; +tr1245: { s->dname_tmp_length++; } @@ -46766,14 +47434,14 @@ tr1233: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st375; -st375: + goto st379; +st379: if ( ++p == pe ) - goto _test_eof375; -case 375: + goto _test_eof379; +case 379: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46787,47 +47455,47 @@ case 375: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1216; - case 32: goto tr1216; - case 40: goto tr1217; - case 41: goto tr1218; - case 42: goto tr1219; - case 45: goto tr1219; - case 92: goto tr1220; - case 95: goto tr1219; - case 1802: goto tr1221; - case 1851: goto tr1222; - case 2058: goto tr1221; - case 2107: goto tr1222; + case 9: goto tr1228; + case 32: goto tr1228; + case 40: goto tr1229; + case 41: goto tr1230; + case 42: goto tr1231; + case 45: goto tr1231; + case 92: goto tr1232; + case 95: goto tr1231; + case 1802: goto tr1233; + case 1851: goto tr1234; + case 2058: goto tr1233; + case 2107: goto tr1234; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1219; + goto tr1231; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1219; + goto tr1231; } else - goto tr1219; - goto tr1202; -tr1224: + goto tr1231; + goto tr1214; +tr1236: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st376; -tr1225: + goto st380; +tr1237: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st376; -tr1216: + goto st380; +tr1228: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46839,8 +47507,8 @@ tr1216: s->buffer[0] = 0; s->buffer_length = 0; } - goto st376; -tr1217: + goto st380; +tr1229: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46855,12 +47523,12 @@ tr1217: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st376; -tr1218: + goto st380; +tr1230: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46875,15 +47543,15 @@ tr1218: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st376; -st376: + goto st380; +st380: if ( ++p == pe ) - goto _test_eof376; -case 376: + goto _test_eof380; +case 380: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46897,23 +47565,23 @@ case 376: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st376; - case 32: goto st376; - case 40: goto tr1224; - case 41: goto tr1225; - case 1802: goto tr1209; - case 1851: goto tr1210; - case 2058: goto tr1209; - case 2107: goto tr1210; + case 9: goto st380; + case 32: goto st380; + case 40: goto tr1236; + case 41: goto tr1237; + case 1802: goto tr1221; + case 1851: goto tr1222; + case 2058: goto tr1221; + case 2107: goto tr1222; } - goto tr91; -tr1199: - cs = 1509; + goto tr92; +tr1211: + cs = 1521; { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } // Store zero terminated include filename. @@ -46934,7 +47602,7 @@ tr1199: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -46954,7 +47622,7 @@ tr1199: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st325;} + p--; {goto st329;} } // Parse included zone file. @@ -46974,13 +47642,13 @@ tr1199: } zs_deinit(ss); free(ss); - p--; {goto st325;} + p--; {goto st329;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1492; {p++; goto _out;} + p--; cs = 1504; {p++; goto _out;} } } { @@ -46990,8 +47658,8 @@ tr1199: s->line_counter++; } goto _again; -tr1209: - cs = 1509; +tr1221: + cs = 1521; { // Extend relative file path. if (s->include_filename[0] != '/') { @@ -46999,7 +47667,7 @@ tr1209: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -47019,7 +47687,7 @@ tr1209: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st325;} + p--; {goto st329;} } // Parse included zone file. @@ -47039,13 +47707,13 @@ tr1209: } zs_deinit(ss); free(ss); - p--; {goto st325;} + p--; {goto st329;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1492; {p++; goto _out;} + p--; cs = 1504; {p++; goto _out;} } } { @@ -47055,8 +47723,8 @@ tr1209: s->line_counter++; } goto _again; -tr1221: - cs = 1509; +tr1233: + cs = 1521; { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -47075,7 +47743,7 @@ tr1221: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -47095,7 +47763,7 @@ tr1221: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st325;} + p--; {goto st329;} } // Parse included zone file. @@ -47115,13 +47783,13 @@ tr1221: } zs_deinit(ss); free(ss); - p--; {goto st325;} + p--; {goto st329;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1492; {p++; goto _out;} + p--; cs = 1504; {p++; goto _out;} } } { @@ -47131,8 +47799,8 @@ tr1221: s->line_counter++; } goto _again; -tr1227: - cs = 1509; +tr1239: + cs = 1521; { s->buffer[s->buffer_length++] = 0; @@ -47153,7 +47821,7 @@ tr1227: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -47173,7 +47841,7 @@ tr1227: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st325;} + p--; {goto st329;} } // Parse included zone file. @@ -47193,13 +47861,13 @@ tr1227: } zs_deinit(ss); free(ss); - p--; {goto st325;} + p--; {goto st329;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1492; {p++; goto _out;} + p--; cs = 1504; {p++; goto _out;} } } { @@ -47209,29 +47877,29 @@ tr1227: s->line_counter++; } goto _again; -st1509: +st1521: if ( ++p == pe ) - goto _test_eof1509; -case 1509: + goto _test_eof1521; +case 1521: goto st0; -tr1210: +tr1222: { s->buffer_length = 0; } - goto st377; -tr1226: + goto st381; +tr1238: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st377; -tr1200: + goto st381; +tr1212: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } // Store zero terminated include filename. @@ -47248,8 +47916,8 @@ tr1200: { s->buffer_length = 0; } - goto st377; -tr1222: + goto st381; +tr1234: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -47264,26 +47932,26 @@ tr1222: { s->buffer_length = 0; } - goto st377; -st377: + goto st381; +st381: if ( ++p == pe ) - goto _test_eof377; -case 377: + goto _test_eof381; +case 381: if ( (*p) == 10 ) - goto tr1227; - goto tr1226; -tr1220: + goto tr1239; + goto tr1238; +tr1232: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st378; -tr1234: + goto st382; +tr1246: { s->dname_tmp_length++; } - goto st378; -tr1208: + goto st382; +tr1220: { s->dname = s->r_data; } @@ -47295,75 +47963,75 @@ tr1208: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st378; -st378: + goto st382; +st382: if ( ++p == pe ) - goto _test_eof378; -case 378: + goto _test_eof382; +case 382: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1228; - goto tr1213; -tr1228: + goto tr1240; + goto tr1225; +tr1240: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st379; -st379: + goto st383; +st383: if ( ++p == pe ) - goto _test_eof379; -case 379: + goto _test_eof383; +case 383: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1230; - goto tr1229; -tr1230: + goto tr1242; + goto tr1241; +tr1242: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st380; -st380: + goto st384; +st384: if ( ++p == pe ) - goto _test_eof380; -case 380: + goto _test_eof384; +case 384: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1231; - goto tr1229; -tr1231: + goto tr1243; + goto tr1241; +tr1243: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st381; -st381: + goto st385; +st385: if ( ++p == pe ) - goto _test_eof381; -case 381: + goto _test_eof385; +case 385: switch( (*p) ) { - case 42: goto tr1232; - case 46: goto tr1233; - case 92: goto tr1234; - case 95: goto tr1232; + case 42: goto tr1244; + case 46: goto tr1245; + case 92: goto tr1246; + case 95: goto tr1244; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1232; + goto tr1244; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1232; + goto tr1244; } else - goto tr1232; - goto tr1229; -tr1207: + goto tr1244; + goto tr1241; +tr1219: { s->dname = s->r_data; } @@ -47371,11 +48039,11 @@ tr1207: s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st382; -st382: + goto st386; +st386: if ( ++p == pe ) - goto _test_eof382; -case 382: + goto _test_eof386; +case 386: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47389,34 +48057,34 @@ case 382: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1216; - case 32: goto tr1216; - case 40: goto tr1217; - case 41: goto tr1218; - case 1802: goto tr1221; - case 1851: goto tr1222; - case 2058: goto tr1221; - case 2107: goto tr1222; + case 9: goto tr1228; + case 32: goto tr1228; + case 40: goto tr1229; + case 41: goto tr1230; + case 1802: goto tr1233; + case 1851: goto tr1234; + case 2058: goto tr1233; + case 2107: goto tr1234; } - goto tr1202; -tr1211: + goto tr1214; +tr1223: { s->buffer_length = 0; } - goto st383; -tr1235: + goto st387; +tr1247: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st383; -tr1201: + goto st387; +tr1213: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } // Store zero terminated include filename. @@ -47433,11 +48101,11 @@ tr1201: s->buffer[0] = 0; s->buffer_length = 0; } - goto st383; -st383: + goto st387; +st387: if ( ++p == pe ) - goto _test_eof383; -case 383: + goto _test_eof387; +case 387: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -47457,17 +48125,17 @@ case 383: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr1227; - case 2058: goto tr1236; + case 1802: goto tr1239; + case 2058: goto tr1248; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1235; + goto tr1247; } else if ( _widec >= 1664 ) - goto tr1226; - goto tr91; -tr1236: - cs = 1510; + goto tr1238; + goto tr92; +tr1248: + cs = 1522; { s->buffer[s->buffer_length++] = 0; @@ -47491,7 +48159,7 @@ tr1236: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st325;} + p--; {goto st329;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -47511,7 +48179,7 @@ tr1236: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st325;} + p--; {goto st329;} } // Parse included zone file. @@ -47531,23 +48199,23 @@ tr1236: } zs_deinit(ss); free(ss); - p--; {goto st325;} + p--; {goto st329;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1492; {p++; goto _out;} + p--; cs = 1504; {p++; goto _out;} } } { p--; {cs = stack[--top];goto _again;} } goto _again; -st1510: +st1522: if ( ++p == pe ) - goto _test_eof1510; -case 1510: + goto _test_eof1522; +case 1522: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47561,50 +48229,50 @@ case 1510: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st384; - case 32: goto st384; - case 40: goto tr1238; - case 41: goto tr1239; - case 42: goto tr1206; - case 46: goto tr1207; - case 92: goto tr1208; - case 95: goto tr1206; - case 2058: goto tr1240; - case 2107: goto tr1241; + case 9: goto st388; + case 32: goto st388; + case 40: goto tr1250; + case 41: goto tr1251; + case 42: goto tr1218; + case 46: goto tr1219; + case 92: goto tr1220; + case 95: goto tr1218; + case 2058: goto tr1252; + case 2107: goto tr1253; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1206; + goto tr1218; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1206; + goto tr1218; } else - goto tr1206; - goto tr1212; -tr1238: + goto tr1218; + goto tr1224; +tr1250: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st384; -tr1239: + goto st388; +tr1251: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st384; -tr1240: + goto st388; +tr1252: { s->line_counter++; } - goto st384; -tr1243: + goto st388; +tr1255: { s->buffer[s->buffer_length++] = 0; @@ -47614,18 +48282,18 @@ tr1243: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 384; goto _out;} + {p++; cs = 388; goto _out;} } } } { s->line_counter++; } - goto st384; -st384: + goto st388; +st388: if ( ++p == pe ) - goto _test_eof384; -case 384: + goto _test_eof388; +case 388: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47639,42 +48307,42 @@ case 384: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st384; - case 32: goto st384; - case 40: goto tr1238; - case 41: goto tr1239; - case 42: goto tr1206; - case 46: goto tr1207; - case 92: goto tr1208; - case 95: goto tr1206; - case 2058: goto tr1240; - case 2107: goto tr1241; + case 9: goto st388; + case 32: goto st388; + case 40: goto tr1250; + case 41: goto tr1251; + case 42: goto tr1218; + case 46: goto tr1219; + case 92: goto tr1220; + case 95: goto tr1218; + case 2058: goto tr1252; + case 2107: goto tr1253; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1206; + goto tr1218; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1206; + goto tr1218; } else - goto tr1206; - goto tr1212; -tr1241: + goto tr1218; + goto tr1224; +tr1253: { s->buffer_length = 0; } - goto st385; -tr1242: + goto st389; +tr1254: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st385; -st385: + goto st389; +st389: if ( ++p == pe ) - goto _test_eof385; -case 385: + goto _test_eof389; +case 389: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -47694,26 +48362,26 @@ case 385: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1243; + goto tr1255; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1242; + goto tr1254; goto st0; -tr1192: +tr1204: { s->buffer_length = 0; } - goto st386; -tr1244: + goto st390; +tr1256: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st386; -st386: + goto st390; +st390: if ( ++p == pe ) - goto _test_eof386; -case 386: + goto _test_eof390; +case 390: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -47733,51 +48401,51 @@ case 386: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1245; + goto tr1257; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1244; + goto tr1256; goto st0; -st387: +st391: if ( ++p == pe ) - goto _test_eof387; -case 387: + goto _test_eof391; +case 391: if ( (*p) == 43 ) - goto tr1247; + goto tr1259; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1247; + goto tr1259; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1247; + goto tr1259; } else - goto tr1247; - goto tr1246; -tr1247: + goto tr1259; + goto tr1258; +tr1259: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st388; -st388: + goto st392; +st392: if ( ++p == pe ) - goto _test_eof388; -case 388: + goto _test_eof392; +case 392: if ( (*p) == 43 ) - goto tr1248; + goto tr1260; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1248; + goto tr1260; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1248; + goto tr1260; } else - goto tr1248; - goto tr1246; -tr1248: + goto tr1260; + goto tr1258; +tr1260: { *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; @@ -47785,28 +48453,28 @@ tr1248: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st389; -st389: + goto st393; +st393: if ( ++p == pe ) - goto _test_eof389; -case 389: + goto _test_eof393; +case 393: switch( (*p) ) { - case 43: goto tr1249; - case 61: goto st393; + case 43: goto tr1261; + case 61: goto st397; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1249; + goto tr1261; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1249; + goto tr1261; } else - goto tr1249; - goto tr1246; -tr1249: + goto tr1261; + goto tr1258; +tr1261: { *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; @@ -47814,51 +48482,51 @@ tr1249: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st390; -st390: + goto st394; +st394: if ( ++p == pe ) - goto _test_eof390; -case 390: + goto _test_eof394; +case 394: switch( (*p) ) { - case 43: goto tr1251; - case 61: goto st391; + case 43: goto tr1263; + case 61: goto st395; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1251; + goto tr1263; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1251; + goto tr1263; } else - goto tr1251; - goto tr1246; -tr1253: + goto tr1263; + goto tr1258; +tr1265: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st391; -tr1254: + goto st395; +tr1266: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st391; -tr1255: + goto st395; +tr1267: { s->line_counter++; } - goto st391; -tr1261: + goto st395; +tr1273: { s->buffer[s->buffer_length++] = 0; @@ -47868,23 +48536,23 @@ tr1261: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 391; goto _out;} + {p++; cs = 395; goto _out;} } } } { s->line_counter++; } - goto st391; -tr1251: + goto st395; +tr1263: { *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st391; -st391: + goto st395; +st395: if ( ++p == pe ) - goto _test_eof391; -case 391: + goto _test_eof395; +case 395: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47902,43 +48570,43 @@ case 391: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st391; - case 32: goto st391; - case 40: goto tr1253; - case 41: goto tr1254; - case 43: goto tr1247; - case 3082: goto tr1255; - case 3131: goto tr1256; - case 3338: goto tr1257; - case 3387: goto tr1257; - case 3594: goto tr1258; - case 3643: goto tr1259; + case 9: goto st395; + case 32: goto st395; + case 40: goto tr1265; + case 41: goto tr1266; + case 43: goto tr1259; + case 3082: goto tr1267; + case 3131: goto tr1268; + case 3338: goto tr1269; + case 3387: goto tr1269; + case 3594: goto tr1270; + case 3643: goto tr1271; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1247; + goto tr1259; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1247; + goto tr1259; } else - goto tr1247; - goto tr1246; -tr1256: + goto tr1259; + goto tr1258; +tr1268: { s->buffer_length = 0; } - goto st392; -tr1260: + goto st396; +tr1272: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st392; -st392: + goto st396; +st396: if ( ++p == pe ) - goto _test_eof392; -case 392: + goto _test_eof396; +case 396: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -47958,32 +48626,32 @@ case 392: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1261; + goto tr1273; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1260; - goto tr1246; -tr1257: + goto tr1272; + goto tr1258; +tr1269: { p--; {cs = stack[--top];goto _again;} } - goto st1511; -st1511: + goto st1523; +st1523: if ( ++p == pe ) - goto _test_eof1511; -case 1511: + goto _test_eof1523; +case 1523: goto st0; -tr1258: +tr1270: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1512; -st1512: + goto st1524; +st1524: if ( ++p == pe ) - goto _test_eof1512; -case 1512: + goto _test_eof1524; +case 1524: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -48001,39 +48669,39 @@ case 1512: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st391; - case 32: goto st391; - case 40: goto tr1253; - case 41: goto tr1254; - case 43: goto tr1247; - case 3082: goto tr1255; - case 3131: goto tr1256; - case 3338: goto tr1257; - case 3387: goto tr1257; - case 3594: goto tr1258; - case 3643: goto tr1259; + case 9: goto st395; + case 32: goto st395; + case 40: goto tr1265; + case 41: goto tr1266; + case 43: goto tr1259; + case 3082: goto tr1267; + case 3131: goto tr1268; + case 3338: goto tr1269; + case 3387: goto tr1269; + case 3594: goto tr1270; + case 3643: goto tr1271; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1247; + goto tr1259; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1247; + goto tr1259; } else - goto tr1247; - goto tr1246; -tr1259: + goto tr1259; + goto tr1258; +tr1271: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1513; -st1513: + goto st1525; +st1525: if ( ++p == pe ) - goto _test_eof1513; -case 1513: + goto _test_eof1525; +case 1525: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -48053,369 +48721,377 @@ case 1513: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1261; + goto tr1273; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1260; - goto tr1246; -st393: + goto tr1272; + goto tr1258; +st397: if ( ++p == pe ) - goto _test_eof393; -case 393: + goto _test_eof397; +case 397: if ( (*p) == 61 ) - goto st391; - goto tr1246; -st394: + goto st395; + goto tr1258; +st398: if ( ++p == pe ) - goto _test_eof394; -case 394: + goto _test_eof398; +case 398: switch( (*p) ) { - case 65: goto st395; - case 67: goto st405; - case 68: goto st426; - case 69: goto st443; - case 72: goto st450; - case 73: goto st459; - case 75: goto st467; - case 76: goto st471; - case 77: goto st479; - case 78: goto st485; - case 79: goto st501; - case 80: goto st511; - case 82: goto st514; - case 83: goto st527; - case 84: goto st546; - case 85: goto st556; - case 87: goto st559; - case 90: goto st565; - case 97: goto st395; - case 99: goto st405; - case 100: goto st426; - case 101: goto st443; - case 104: goto st450; - case 105: goto st459; - case 107: goto st467; - case 108: goto st471; - case 109: goto st479; - case 110: goto st485; - case 111: goto st501; - case 112: goto st511; - case 114: goto st514; - case 115: goto st527; - case 116: goto st546; - case 117: goto st556; - case 119: goto st559; - case 122: goto st565; - } - goto tr1262; -st395: + case 65: goto st399; + case 67: goto st413; + case 68: goto st434; + case 69: goto st451; + case 72: goto st458; + case 73: goto st467; + case 75: goto st475; + case 76: goto st479; + case 77: goto st487; + case 78: goto st493; + case 79: goto st509; + case 80: goto st519; + case 82: goto st522; + case 83: goto st535; + case 84: goto st554; + case 85: goto st564; + case 87: goto st567; + case 90: goto st573; + case 97: goto st399; + case 99: goto st413; + case 100: goto st434; + case 101: goto st451; + case 104: goto st458; + case 105: goto st467; + case 107: goto st475; + case 108: goto st479; + case 109: goto st487; + case 110: goto st493; + case 111: goto st509; + case 112: goto st519; + case 114: goto st522; + case 115: goto st535; + case 116: goto st554; + case 117: goto st564; + case 119: goto st567; + case 122: goto st573; + } + goto tr1274; +st399: if ( ++p == pe ) - goto _test_eof395; -case 395: + goto _test_eof399; +case 399: switch( (*p) ) { - case 32: goto tr1281; - case 59: goto tr1281; - case 65: goto st396; - case 70: goto st399; - case 80: goto st403; - case 97: goto st396; - case 102: goto st399; - case 112: goto st403; + case 32: goto tr1293; + case 59: goto tr1293; + case 65: goto st400; + case 70: goto st403; + case 76: goto st407; + case 80: goto st411; + case 97: goto st400; + case 102: goto st403; + case 108: goto st407; + case 112: goto st411; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1281; + goto tr1293; } else if ( (*p) >= 9 ) - goto tr1281; - goto tr1262; -tr1281: + goto tr1293; + goto tr1274; +tr1293: { type_num(KNOT_RRTYPE_A, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1287: + goto st1526; +tr1300: { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1291: + goto st1526; +tr1304: { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1293: + goto st1526; +tr1308: + { type_num(KNOT_RRTYPE_ALIAS, &rdata_tail); } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1526; +tr1310: { type_num(KNOT_RRTYPE_APL, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1300: + goto st1526; +tr1317: { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1307: + goto st1526; +tr1324: { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1308: + goto st1526; +tr1325: { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1311: + goto st1526; +tr1328: { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1315: + goto st1526; +tr1332: { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1319: + goto st1526; +tr1336: { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1326: + goto st1526; +tr1343: { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1331: + goto st1526; +tr1348: { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1335: + goto st1526; +tr1352: { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1336: + goto st1526; +tr1353: { type_num(KNOT_RRTYPE_DS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1340: + goto st1526; +tr1357: { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1346: + goto st1526; +tr1363: { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1348: + goto st1526; +tr1365: { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1354: + goto st1526; +tr1371: { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1358: + goto st1526; +tr1375: { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1366: + goto st1526; +tr1383: { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1370: + goto st1526; +tr1387: { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1371: + goto st1526; +tr1388: { type_num(KNOT_RRTYPE_KX, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1377: + goto st1526; +tr1394: { type_num(KNOT_RRTYPE_L32, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1379: + goto st1526; +tr1396: { type_num(KNOT_RRTYPE_L64, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1381: + goto st1526; +tr1398: { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1382: + goto st1526; +tr1399: { type_num(KNOT_RRTYPE_LP, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1388: + goto st1526; +tr1405: { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1389: + goto st1526; +tr1406: { type_num(KNOT_RRTYPE_MX, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1396: + goto st1526; +tr1413: { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1398: + goto st1526; +tr1415: { type_num(KNOT_RRTYPE_NID, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1399: + goto st1526; +tr1416: { type_num(KNOT_RRTYPE_NS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1402: + goto st1526; +tr1419: { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1404: + goto st1526; +tr1421: { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1410: + goto st1526; +tr1427: { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1420: + goto st1526; +tr1437: { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1423: + goto st1526; +tr1440: { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1433: + goto st1526; +tr1450: { type_num(KNOT_RRTYPE_RESINFO, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1434: + goto st1526; +tr1451: { type_num(KNOT_RRTYPE_RP, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1438: + goto st1526; +tr1455: { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1439: + goto st1526; +tr1456: { type_num(KNOT_RRTYPE_RT, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1450: + goto st1526; +tr1467: { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1452: + goto st1526; +tr1469: { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1454: + goto st1526; +tr1471: { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1456: + goto st1526; +tr1473: { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1460: + goto st1526; +tr1477: { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1463: + goto st1526; +tr1480: { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1469: + goto st1526; +tr1486: { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1471: + goto st1526; +tr1488: { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1476: + goto st1526; +tr1493: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -48423,183 +49099,127 @@ tr1476: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1480: + goto st1526; +tr1497: { type_num(KNOT_RRTYPE_URI, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1486: + goto st1526; +tr1503: { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -tr1492: + goto st1526; +tr1509: { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1514; -st1514: + goto st1526; +st1526: if ( ++p == pe ) - goto _test_eof1514; -case 1514: + goto _test_eof1526; +case 1526: goto st0; -st396: - if ( ++p == pe ) - goto _test_eof396; -case 396: - switch( (*p) ) { - case 65: goto st397; - case 97: goto st397; - } - goto tr1262; -st397: - if ( ++p == pe ) - goto _test_eof397; -case 397: - switch( (*p) ) { - case 65: goto st398; - case 97: goto st398; - } - goto tr1262; -st398: - if ( ++p == pe ) - goto _test_eof398; -case 398: - switch( (*p) ) { - case 32: goto tr1287; - case 59: goto tr1287; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1287; - } else if ( (*p) >= 9 ) - goto tr1287; - goto tr1262; -st399: - if ( ++p == pe ) - goto _test_eof399; -case 399: - switch( (*p) ) { - case 83: goto st400; - case 115: goto st400; - } - goto tr1262; st400: if ( ++p == pe ) goto _test_eof400; case 400: switch( (*p) ) { - case 68: goto st401; - case 100: goto st401; + case 65: goto st401; + case 97: goto st401; } - goto tr1262; + goto tr1274; st401: if ( ++p == pe ) goto _test_eof401; case 401: switch( (*p) ) { - case 66: goto st402; - case 98: goto st402; + case 65: goto st402; + case 97: goto st402; } - goto tr1262; + goto tr1274; st402: if ( ++p == pe ) goto _test_eof402; case 402: switch( (*p) ) { - case 32: goto tr1291; - case 59: goto tr1291; + case 32: goto tr1300; + case 59: goto tr1300; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1291; + goto tr1300; } else if ( (*p) >= 9 ) - goto tr1291; - goto tr1262; + goto tr1300; + goto tr1274; st403: if ( ++p == pe ) goto _test_eof403; case 403: switch( (*p) ) { - case 76: goto st404; - case 108: goto st404; + case 83: goto st404; + case 115: goto st404; } - goto tr1262; + goto tr1274; st404: if ( ++p == pe ) goto _test_eof404; case 404: switch( (*p) ) { - case 32: goto tr1293; - case 59: goto tr1293; + case 68: goto st405; + case 100: goto st405; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1293; - } else if ( (*p) >= 9 ) - goto tr1293; - goto tr1262; + goto tr1274; st405: if ( ++p == pe ) goto _test_eof405; case 405: switch( (*p) ) { - case 65: goto st406; - case 68: goto st408; - case 69: goto st415; - case 78: goto st418; - case 83: goto st422; - case 97: goto st406; - case 100: goto st408; - case 101: goto st415; - case 110: goto st418; - case 115: goto st422; + case 66: goto st406; + case 98: goto st406; } - goto tr1262; + goto tr1274; st406: if ( ++p == pe ) goto _test_eof406; case 406: switch( (*p) ) { - case 65: goto st407; - case 97: goto st407; + case 32: goto tr1304; + case 59: goto tr1304; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1304; + } else if ( (*p) >= 9 ) + goto tr1304; + goto tr1274; st407: if ( ++p == pe ) goto _test_eof407; case 407: switch( (*p) ) { - case 32: goto tr1300; - case 59: goto tr1300; + case 73: goto st408; + case 105: goto st408; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1300; - } else if ( (*p) >= 9 ) - goto tr1300; - goto tr1262; + goto tr1274; st408: if ( ++p == pe ) goto _test_eof408; case 408: switch( (*p) ) { - case 78: goto st409; - case 83: goto st414; - case 110: goto st409; - case 115: goto st414; + case 65: goto st409; + case 97: goto st409; } - goto tr1262; + goto tr1274; st409: if ( ++p == pe ) goto _test_eof409; @@ -48608,1770 +49228,1867 @@ case 409: case 83: goto st410; case 115: goto st410; } - goto tr1262; + goto tr1274; st410: if ( ++p == pe ) goto _test_eof410; case 410: switch( (*p) ) { - case 75: goto st411; - case 107: goto st411; + case 32: goto tr1308; + case 59: goto tr1308; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1308; + } else if ( (*p) >= 9 ) + goto tr1308; + goto tr1274; st411: if ( ++p == pe ) goto _test_eof411; case 411: switch( (*p) ) { - case 69: goto st412; - case 101: goto st412; + case 76: goto st412; + case 108: goto st412; } - goto tr1262; + goto tr1274; st412: if ( ++p == pe ) goto _test_eof412; case 412: switch( (*p) ) { - case 89: goto st413; - case 121: goto st413; + case 32: goto tr1310; + case 59: goto tr1310; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1310; + } else if ( (*p) >= 9 ) + goto tr1310; + goto tr1274; st413: if ( ++p == pe ) goto _test_eof413; case 413: switch( (*p) ) { - case 32: goto tr1307; - case 59: goto tr1307; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1307; - } else if ( (*p) >= 9 ) - goto tr1307; - goto tr1262; + case 65: goto st414; + case 68: goto st416; + case 69: goto st423; + case 78: goto st426; + case 83: goto st430; + case 97: goto st414; + case 100: goto st416; + case 101: goto st423; + case 110: goto st426; + case 115: goto st430; + } + goto tr1274; st414: if ( ++p == pe ) goto _test_eof414; case 414: switch( (*p) ) { - case 32: goto tr1308; - case 59: goto tr1308; + case 65: goto st415; + case 97: goto st415; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1308; - } else if ( (*p) >= 9 ) - goto tr1308; - goto tr1262; + goto tr1274; st415: if ( ++p == pe ) goto _test_eof415; case 415: switch( (*p) ) { - case 82: goto st416; - case 114: goto st416; + case 32: goto tr1317; + case 59: goto tr1317; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1317; + } else if ( (*p) >= 9 ) + goto tr1317; + goto tr1274; st416: if ( ++p == pe ) goto _test_eof416; case 416: switch( (*p) ) { - case 84: goto st417; - case 116: goto st417; + case 78: goto st417; + case 83: goto st422; + case 110: goto st417; + case 115: goto st422; } - goto tr1262; + goto tr1274; st417: if ( ++p == pe ) goto _test_eof417; case 417: switch( (*p) ) { - case 32: goto tr1311; - case 59: goto tr1311; + case 83: goto st418; + case 115: goto st418; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1311; - } else if ( (*p) >= 9 ) - goto tr1311; - goto tr1262; + goto tr1274; st418: if ( ++p == pe ) goto _test_eof418; case 418: switch( (*p) ) { - case 65: goto st419; - case 97: goto st419; + case 75: goto st419; + case 107: goto st419; } - goto tr1262; + goto tr1274; st419: if ( ++p == pe ) goto _test_eof419; case 419: switch( (*p) ) { - case 77: goto st420; - case 109: goto st420; + case 69: goto st420; + case 101: goto st420; } - goto tr1262; + goto tr1274; st420: if ( ++p == pe ) goto _test_eof420; case 420: switch( (*p) ) { - case 69: goto st421; - case 101: goto st421; + case 89: goto st421; + case 121: goto st421; } - goto tr1262; + goto tr1274; st421: if ( ++p == pe ) goto _test_eof421; case 421: switch( (*p) ) { - case 32: goto tr1315; - case 59: goto tr1315; + case 32: goto tr1324; + case 59: goto tr1324; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1315; + goto tr1324; } else if ( (*p) >= 9 ) - goto tr1315; - goto tr1262; + goto tr1324; + goto tr1274; st422: if ( ++p == pe ) goto _test_eof422; case 422: switch( (*p) ) { - case 89: goto st423; - case 121: goto st423; + case 32: goto tr1325; + case 59: goto tr1325; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1325; + } else if ( (*p) >= 9 ) + goto tr1325; + goto tr1274; st423: if ( ++p == pe ) goto _test_eof423; case 423: switch( (*p) ) { - case 78: goto st424; - case 110: goto st424; + case 82: goto st424; + case 114: goto st424; } - goto tr1262; + goto tr1274; st424: if ( ++p == pe ) goto _test_eof424; case 424: switch( (*p) ) { - case 67: goto st425; - case 99: goto st425; + case 84: goto st425; + case 116: goto st425; } - goto tr1262; + goto tr1274; st425: if ( ++p == pe ) goto _test_eof425; case 425: switch( (*p) ) { - case 32: goto tr1319; - case 59: goto tr1319; + case 32: goto tr1328; + case 59: goto tr1328; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1319; + goto tr1328; } else if ( (*p) >= 9 ) - goto tr1319; - goto tr1262; + goto tr1328; + goto tr1274; st426: if ( ++p == pe ) goto _test_eof426; case 426: switch( (*p) ) { - case 72: goto st427; - case 78: goto st431; - case 83: goto st439; - case 104: goto st427; - case 110: goto st431; - case 115: goto st439; + case 65: goto st427; + case 97: goto st427; } - goto tr1262; + goto tr1274; st427: if ( ++p == pe ) goto _test_eof427; case 427: switch( (*p) ) { - case 67: goto st428; - case 99: goto st428; + case 77: goto st428; + case 109: goto st428; } - goto tr1262; + goto tr1274; st428: if ( ++p == pe ) goto _test_eof428; case 428: switch( (*p) ) { - case 73: goto st429; - case 105: goto st429; + case 69: goto st429; + case 101: goto st429; } - goto tr1262; + goto tr1274; st429: if ( ++p == pe ) goto _test_eof429; case 429: switch( (*p) ) { - case 68: goto st430; - case 100: goto st430; + case 32: goto tr1332; + case 59: goto tr1332; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1332; + } else if ( (*p) >= 9 ) + goto tr1332; + goto tr1274; st430: if ( ++p == pe ) goto _test_eof430; case 430: switch( (*p) ) { - case 32: goto tr1326; - case 59: goto tr1326; + case 89: goto st431; + case 121: goto st431; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1326; - } else if ( (*p) >= 9 ) - goto tr1326; - goto tr1262; + goto tr1274; st431: if ( ++p == pe ) goto _test_eof431; case 431: switch( (*p) ) { - case 65: goto st432; - case 83: goto st435; - case 97: goto st432; - case 115: goto st435; + case 78: goto st432; + case 110: goto st432; } - goto tr1262; + goto tr1274; st432: if ( ++p == pe ) goto _test_eof432; case 432: switch( (*p) ) { - case 77: goto st433; - case 109: goto st433; + case 67: goto st433; + case 99: goto st433; } - goto tr1262; + goto tr1274; st433: if ( ++p == pe ) goto _test_eof433; case 433: switch( (*p) ) { - case 69: goto st434; - case 101: goto st434; + case 32: goto tr1336; + case 59: goto tr1336; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1336; + } else if ( (*p) >= 9 ) + goto tr1336; + goto tr1274; st434: if ( ++p == pe ) goto _test_eof434; case 434: switch( (*p) ) { - case 32: goto tr1331; - case 59: goto tr1331; + case 72: goto st435; + case 78: goto st439; + case 83: goto st447; + case 104: goto st435; + case 110: goto st439; + case 115: goto st447; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1331; - } else if ( (*p) >= 9 ) - goto tr1331; - goto tr1262; + goto tr1274; st435: if ( ++p == pe ) goto _test_eof435; case 435: switch( (*p) ) { - case 75: goto st436; - case 107: goto st436; + case 67: goto st436; + case 99: goto st436; } - goto tr1262; + goto tr1274; st436: if ( ++p == pe ) goto _test_eof436; case 436: switch( (*p) ) { - case 69: goto st437; - case 101: goto st437; + case 73: goto st437; + case 105: goto st437; } - goto tr1262; + goto tr1274; st437: if ( ++p == pe ) goto _test_eof437; case 437: switch( (*p) ) { - case 89: goto st438; - case 121: goto st438; + case 68: goto st438; + case 100: goto st438; } - goto tr1262; + goto tr1274; st438: if ( ++p == pe ) goto _test_eof438; case 438: switch( (*p) ) { - case 32: goto tr1335; - case 59: goto tr1335; + case 32: goto tr1343; + case 59: goto tr1343; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1335; + goto tr1343; } else if ( (*p) >= 9 ) - goto tr1335; - goto tr1262; + goto tr1343; + goto tr1274; st439: if ( ++p == pe ) goto _test_eof439; case 439: switch( (*p) ) { - case 32: goto tr1336; - case 59: goto tr1336; - case 89: goto st440; - case 121: goto st440; + case 65: goto st440; + case 83: goto st443; + case 97: goto st440; + case 115: goto st443; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1336; - } else if ( (*p) >= 9 ) - goto tr1336; - goto tr1262; + goto tr1274; st440: if ( ++p == pe ) goto _test_eof440; case 440: switch( (*p) ) { - case 78: goto st441; - case 110: goto st441; + case 77: goto st441; + case 109: goto st441; } - goto tr1262; + goto tr1274; st441: if ( ++p == pe ) goto _test_eof441; case 441: switch( (*p) ) { - case 67: goto st442; - case 99: goto st442; + case 69: goto st442; + case 101: goto st442; } - goto tr1262; + goto tr1274; st442: if ( ++p == pe ) goto _test_eof442; case 442: switch( (*p) ) { - case 32: goto tr1340; - case 59: goto tr1340; + case 32: goto tr1348; + case 59: goto tr1348; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1340; + goto tr1348; } else if ( (*p) >= 9 ) - goto tr1340; - goto tr1262; + goto tr1348; + goto tr1274; st443: if ( ++p == pe ) goto _test_eof443; case 443: switch( (*p) ) { - case 85: goto st444; - case 117: goto st444; + case 75: goto st444; + case 107: goto st444; } - goto tr1262; + goto tr1274; st444: if ( ++p == pe ) goto _test_eof444; case 444: switch( (*p) ) { - case 73: goto st445; - case 105: goto st445; + case 69: goto st445; + case 101: goto st445; } - goto tr1262; + goto tr1274; st445: if ( ++p == pe ) goto _test_eof445; case 445: switch( (*p) ) { - case 52: goto st446; - case 54: goto st448; + case 89: goto st446; + case 121: goto st446; } - goto tr1262; + goto tr1274; st446: if ( ++p == pe ) goto _test_eof446; case 446: - if ( (*p) == 56 ) - goto st447; - goto tr1262; + switch( (*p) ) { + case 32: goto tr1352; + case 59: goto tr1352; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1352; + } else if ( (*p) >= 9 ) + goto tr1352; + goto tr1274; st447: if ( ++p == pe ) goto _test_eof447; case 447: switch( (*p) ) { - case 32: goto tr1346; - case 59: goto tr1346; + case 32: goto tr1353; + case 59: goto tr1353; + case 89: goto st448; + case 121: goto st448; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1346; + goto tr1353; } else if ( (*p) >= 9 ) - goto tr1346; - goto tr1262; + goto tr1353; + goto tr1274; st448: if ( ++p == pe ) goto _test_eof448; case 448: - if ( (*p) == 52 ) - goto st449; - goto tr1262; + switch( (*p) ) { + case 78: goto st449; + case 110: goto st449; + } + goto tr1274; st449: if ( ++p == pe ) goto _test_eof449; case 449: switch( (*p) ) { - case 32: goto tr1348; - case 59: goto tr1348; + case 67: goto st450; + case 99: goto st450; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1348; - } else if ( (*p) >= 9 ) - goto tr1348; - goto tr1262; + goto tr1274; st450: if ( ++p == pe ) goto _test_eof450; case 450: switch( (*p) ) { - case 73: goto st451; - case 84: goto st455; - case 105: goto st451; - case 116: goto st455; + case 32: goto tr1357; + case 59: goto tr1357; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1357; + } else if ( (*p) >= 9 ) + goto tr1357; + goto tr1274; st451: if ( ++p == pe ) goto _test_eof451; case 451: switch( (*p) ) { - case 78: goto st452; - case 110: goto st452; + case 85: goto st452; + case 117: goto st452; } - goto tr1262; + goto tr1274; st452: if ( ++p == pe ) goto _test_eof452; case 452: switch( (*p) ) { - case 70: goto st453; - case 102: goto st453; + case 73: goto st453; + case 105: goto st453; } - goto tr1262; + goto tr1274; st453: if ( ++p == pe ) goto _test_eof453; case 453: switch( (*p) ) { - case 79: goto st454; - case 111: goto st454; + case 52: goto st454; + case 54: goto st456; } - goto tr1262; + goto tr1274; st454: if ( ++p == pe ) goto _test_eof454; case 454: - switch( (*p) ) { - case 32: goto tr1354; - case 59: goto tr1354; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1354; - } else if ( (*p) >= 9 ) - goto tr1354; - goto tr1262; + if ( (*p) == 56 ) + goto st455; + goto tr1274; st455: if ( ++p == pe ) goto _test_eof455; case 455: switch( (*p) ) { - case 84: goto st456; - case 116: goto st456; + case 32: goto tr1363; + case 59: goto tr1363; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1363; + } else if ( (*p) >= 9 ) + goto tr1363; + goto tr1274; st456: if ( ++p == pe ) goto _test_eof456; case 456: - switch( (*p) ) { - case 80: goto st457; - case 112: goto st457; - } - goto tr1262; + if ( (*p) == 52 ) + goto st457; + goto tr1274; st457: if ( ++p == pe ) goto _test_eof457; case 457: switch( (*p) ) { - case 83: goto st458; - case 115: goto st458; + case 32: goto tr1365; + case 59: goto tr1365; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1365; + } else if ( (*p) >= 9 ) + goto tr1365; + goto tr1274; st458: if ( ++p == pe ) goto _test_eof458; case 458: switch( (*p) ) { - case 32: goto tr1358; - case 59: goto tr1358; + case 73: goto st459; + case 84: goto st463; + case 105: goto st459; + case 116: goto st463; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1358; - } else if ( (*p) >= 9 ) - goto tr1358; - goto tr1262; + goto tr1274; st459: if ( ++p == pe ) goto _test_eof459; case 459: switch( (*p) ) { - case 80: goto st460; - case 112: goto st460; + case 78: goto st460; + case 110: goto st460; } - goto tr1262; + goto tr1274; st460: if ( ++p == pe ) goto _test_eof460; case 460: switch( (*p) ) { - case 83: goto st461; - case 115: goto st461; + case 70: goto st461; + case 102: goto st461; } - goto tr1262; + goto tr1274; st461: if ( ++p == pe ) goto _test_eof461; case 461: switch( (*p) ) { - case 69: goto st462; - case 101: goto st462; + case 79: goto st462; + case 111: goto st462; } - goto tr1262; + goto tr1274; st462: if ( ++p == pe ) goto _test_eof462; case 462: switch( (*p) ) { - case 67: goto st463; - case 99: goto st463; + case 32: goto tr1371; + case 59: goto tr1371; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1371; + } else if ( (*p) >= 9 ) + goto tr1371; + goto tr1274; st463: if ( ++p == pe ) goto _test_eof463; case 463: switch( (*p) ) { - case 75: goto st464; - case 107: goto st464; + case 84: goto st464; + case 116: goto st464; } - goto tr1262; + goto tr1274; st464: if ( ++p == pe ) goto _test_eof464; case 464: switch( (*p) ) { - case 69: goto st465; - case 101: goto st465; + case 80: goto st465; + case 112: goto st465; } - goto tr1262; + goto tr1274; st465: if ( ++p == pe ) goto _test_eof465; case 465: switch( (*p) ) { - case 89: goto st466; - case 121: goto st466; + case 83: goto st466; + case 115: goto st466; } - goto tr1262; + goto tr1274; st466: if ( ++p == pe ) goto _test_eof466; case 466: switch( (*p) ) { - case 32: goto tr1366; - case 59: goto tr1366; + case 32: goto tr1375; + case 59: goto tr1375; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1366; + goto tr1375; } else if ( (*p) >= 9 ) - goto tr1366; - goto tr1262; + goto tr1375; + goto tr1274; st467: if ( ++p == pe ) goto _test_eof467; case 467: switch( (*p) ) { - case 69: goto st468; - case 88: goto st470; - case 101: goto st468; - case 120: goto st470; + case 80: goto st468; + case 112: goto st468; } - goto tr1262; + goto tr1274; st468: if ( ++p == pe ) goto _test_eof468; case 468: switch( (*p) ) { - case 89: goto st469; - case 121: goto st469; + case 83: goto st469; + case 115: goto st469; } - goto tr1262; + goto tr1274; st469: if ( ++p == pe ) goto _test_eof469; case 469: switch( (*p) ) { - case 32: goto tr1370; - case 59: goto tr1370; + case 69: goto st470; + case 101: goto st470; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1370; - } else if ( (*p) >= 9 ) - goto tr1370; - goto tr1262; + goto tr1274; st470: if ( ++p == pe ) goto _test_eof470; case 470: switch( (*p) ) { - case 32: goto tr1371; - case 59: goto tr1371; + case 67: goto st471; + case 99: goto st471; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1371; - } else if ( (*p) >= 9 ) - goto tr1371; - goto tr1262; + goto tr1274; st471: if ( ++p == pe ) goto _test_eof471; case 471: switch( (*p) ) { - case 51: goto st472; - case 54: goto st474; - case 79: goto st476; - case 80: goto st478; - case 111: goto st476; - case 112: goto st478; + case 75: goto st472; + case 107: goto st472; } - goto tr1262; + goto tr1274; st472: if ( ++p == pe ) goto _test_eof472; case 472: - if ( (*p) == 50 ) - goto st473; - goto tr1262; + switch( (*p) ) { + case 69: goto st473; + case 101: goto st473; + } + goto tr1274; st473: if ( ++p == pe ) goto _test_eof473; case 473: switch( (*p) ) { - case 32: goto tr1377; - case 59: goto tr1377; + case 89: goto st474; + case 121: goto st474; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1377; - } else if ( (*p) >= 9 ) - goto tr1377; - goto tr1262; + goto tr1274; st474: if ( ++p == pe ) goto _test_eof474; case 474: - if ( (*p) == 52 ) - goto st475; - goto tr1262; + switch( (*p) ) { + case 32: goto tr1383; + case 59: goto tr1383; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1383; + } else if ( (*p) >= 9 ) + goto tr1383; + goto tr1274; st475: if ( ++p == pe ) goto _test_eof475; case 475: switch( (*p) ) { - case 32: goto tr1379; - case 59: goto tr1379; + case 69: goto st476; + case 88: goto st478; + case 101: goto st476; + case 120: goto st478; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1379; - } else if ( (*p) >= 9 ) - goto tr1379; - goto tr1262; + goto tr1274; st476: if ( ++p == pe ) goto _test_eof476; case 476: switch( (*p) ) { - case 67: goto st477; - case 99: goto st477; + case 89: goto st477; + case 121: goto st477; } - goto tr1262; + goto tr1274; st477: if ( ++p == pe ) goto _test_eof477; case 477: switch( (*p) ) { - case 32: goto tr1381; - case 59: goto tr1381; + case 32: goto tr1387; + case 59: goto tr1387; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1381; + goto tr1387; } else if ( (*p) >= 9 ) - goto tr1381; - goto tr1262; + goto tr1387; + goto tr1274; st478: if ( ++p == pe ) goto _test_eof478; case 478: switch( (*p) ) { - case 32: goto tr1382; - case 59: goto tr1382; + case 32: goto tr1388; + case 59: goto tr1388; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1382; + goto tr1388; } else if ( (*p) >= 9 ) - goto tr1382; - goto tr1262; + goto tr1388; + goto tr1274; st479: if ( ++p == pe ) goto _test_eof479; case 479: switch( (*p) ) { - case 73: goto st480; - case 88: goto st484; - case 105: goto st480; - case 120: goto st484; + case 51: goto st480; + case 54: goto st482; + case 79: goto st484; + case 80: goto st486; + case 111: goto st484; + case 112: goto st486; } - goto tr1262; + goto tr1274; st480: if ( ++p == pe ) goto _test_eof480; case 480: - switch( (*p) ) { - case 78: goto st481; - case 110: goto st481; - } - goto tr1262; + if ( (*p) == 50 ) + goto st481; + goto tr1274; st481: if ( ++p == pe ) goto _test_eof481; case 481: switch( (*p) ) { - case 70: goto st482; - case 102: goto st482; + case 32: goto tr1394; + case 59: goto tr1394; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1394; + } else if ( (*p) >= 9 ) + goto tr1394; + goto tr1274; st482: if ( ++p == pe ) goto _test_eof482; case 482: - switch( (*p) ) { - case 79: goto st483; - case 111: goto st483; - } - goto tr1262; + if ( (*p) == 52 ) + goto st483; + goto tr1274; st483: if ( ++p == pe ) goto _test_eof483; case 483: switch( (*p) ) { - case 32: goto tr1388; - case 59: goto tr1388; + case 32: goto tr1396; + case 59: goto tr1396; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1388; + goto tr1396; } else if ( (*p) >= 9 ) - goto tr1388; - goto tr1262; + goto tr1396; + goto tr1274; st484: if ( ++p == pe ) goto _test_eof484; case 484: switch( (*p) ) { - case 32: goto tr1389; - case 59: goto tr1389; + case 67: goto st485; + case 99: goto st485; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1389; - } else if ( (*p) >= 9 ) - goto tr1389; - goto tr1262; + goto tr1274; st485: if ( ++p == pe ) goto _test_eof485; case 485: switch( (*p) ) { - case 65: goto st486; - case 73: goto st490; - case 83: goto st492; - case 97: goto st486; - case 105: goto st490; - case 115: goto st492; + case 32: goto tr1398; + case 59: goto tr1398; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1398; + } else if ( (*p) >= 9 ) + goto tr1398; + goto tr1274; st486: if ( ++p == pe ) goto _test_eof486; case 486: switch( (*p) ) { - case 80: goto st487; - case 112: goto st487; + case 32: goto tr1399; + case 59: goto tr1399; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1399; + } else if ( (*p) >= 9 ) + goto tr1399; + goto tr1274; st487: if ( ++p == pe ) goto _test_eof487; case 487: switch( (*p) ) { - case 84: goto st488; - case 116: goto st488; + case 73: goto st488; + case 88: goto st492; + case 105: goto st488; + case 120: goto st492; } - goto tr1262; + goto tr1274; st488: if ( ++p == pe ) goto _test_eof488; case 488: switch( (*p) ) { - case 82: goto st489; - case 114: goto st489; + case 78: goto st489; + case 110: goto st489; } - goto tr1262; + goto tr1274; st489: if ( ++p == pe ) goto _test_eof489; case 489: switch( (*p) ) { - case 32: goto tr1396; - case 59: goto tr1396; + case 70: goto st490; + case 102: goto st490; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1396; - } else if ( (*p) >= 9 ) - goto tr1396; - goto tr1262; + goto tr1274; st490: if ( ++p == pe ) goto _test_eof490; case 490: switch( (*p) ) { - case 68: goto st491; - case 100: goto st491; + case 79: goto st491; + case 111: goto st491; } - goto tr1262; + goto tr1274; st491: if ( ++p == pe ) goto _test_eof491; case 491: switch( (*p) ) { - case 32: goto tr1398; - case 59: goto tr1398; + case 32: goto tr1405; + case 59: goto tr1405; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1398; + goto tr1405; } else if ( (*p) >= 9 ) - goto tr1398; - goto tr1262; + goto tr1405; + goto tr1274; st492: if ( ++p == pe ) goto _test_eof492; case 492: switch( (*p) ) { - case 32: goto tr1399; - case 59: goto tr1399; - case 69: goto st493; - case 101: goto st493; + case 32: goto tr1406; + case 59: goto tr1406; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1399; + goto tr1406; } else if ( (*p) >= 9 ) - goto tr1399; - goto tr1262; + goto tr1406; + goto tr1274; st493: if ( ++p == pe ) goto _test_eof493; case 493: switch( (*p) ) { - case 67: goto st494; - case 99: goto st494; + case 65: goto st494; + case 73: goto st498; + case 83: goto st500; + case 97: goto st494; + case 105: goto st498; + case 115: goto st500; } - goto tr1262; + goto tr1274; st494: if ( ++p == pe ) goto _test_eof494; case 494: switch( (*p) ) { - case 32: goto tr1402; - case 51: goto st495; - case 59: goto tr1402; + case 80: goto st495; + case 112: goto st495; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1402; - } else if ( (*p) >= 9 ) - goto tr1402; - goto tr1262; + goto tr1274; st495: if ( ++p == pe ) goto _test_eof495; case 495: switch( (*p) ) { - case 32: goto tr1404; - case 59: goto tr1404; - case 80: goto st496; - case 112: goto st496; + case 84: goto st496; + case 116: goto st496; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1404; - } else if ( (*p) >= 9 ) - goto tr1404; - goto tr1262; + goto tr1274; st496: if ( ++p == pe ) goto _test_eof496; case 496: switch( (*p) ) { - case 65: goto st497; - case 97: goto st497; + case 82: goto st497; + case 114: goto st497; } - goto tr1262; + goto tr1274; st497: if ( ++p == pe ) goto _test_eof497; case 497: switch( (*p) ) { - case 82: goto st498; - case 114: goto st498; + case 32: goto tr1413; + case 59: goto tr1413; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1413; + } else if ( (*p) >= 9 ) + goto tr1413; + goto tr1274; st498: if ( ++p == pe ) goto _test_eof498; case 498: switch( (*p) ) { - case 65: goto st499; - case 97: goto st499; + case 68: goto st499; + case 100: goto st499; } - goto tr1262; + goto tr1274; st499: if ( ++p == pe ) goto _test_eof499; case 499: switch( (*p) ) { - case 77: goto st500; - case 109: goto st500; + case 32: goto tr1415; + case 59: goto tr1415; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1415; + } else if ( (*p) >= 9 ) + goto tr1415; + goto tr1274; st500: if ( ++p == pe ) goto _test_eof500; case 500: switch( (*p) ) { - case 32: goto tr1410; - case 59: goto tr1410; + case 32: goto tr1416; + case 59: goto tr1416; + case 69: goto st501; + case 101: goto st501; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1410; + goto tr1416; } else if ( (*p) >= 9 ) - goto tr1410; - goto tr1262; + goto tr1416; + goto tr1274; st501: if ( ++p == pe ) goto _test_eof501; case 501: switch( (*p) ) { - case 80: goto st502; - case 112: goto st502; + case 67: goto st502; + case 99: goto st502; } - goto tr1262; + goto tr1274; st502: if ( ++p == pe ) goto _test_eof502; case 502: switch( (*p) ) { - case 69: goto st503; - case 101: goto st503; + case 32: goto tr1419; + case 51: goto st503; + case 59: goto tr1419; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1419; + } else if ( (*p) >= 9 ) + goto tr1419; + goto tr1274; st503: if ( ++p == pe ) goto _test_eof503; case 503: switch( (*p) ) { - case 78: goto st504; - case 110: goto st504; + case 32: goto tr1421; + case 59: goto tr1421; + case 80: goto st504; + case 112: goto st504; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1421; + } else if ( (*p) >= 9 ) + goto tr1421; + goto tr1274; st504: if ( ++p == pe ) goto _test_eof504; case 504: switch( (*p) ) { - case 80: goto st505; - case 112: goto st505; + case 65: goto st505; + case 97: goto st505; } - goto tr1262; + goto tr1274; st505: if ( ++p == pe ) goto _test_eof505; case 505: switch( (*p) ) { - case 71: goto st506; - case 103: goto st506; + case 82: goto st506; + case 114: goto st506; } - goto tr1262; + goto tr1274; st506: if ( ++p == pe ) goto _test_eof506; case 506: switch( (*p) ) { - case 80: goto st507; - case 112: goto st507; + case 65: goto st507; + case 97: goto st507; } - goto tr1262; + goto tr1274; st507: if ( ++p == pe ) goto _test_eof507; case 507: switch( (*p) ) { - case 75: goto st508; - case 107: goto st508; + case 77: goto st508; + case 109: goto st508; } - goto tr1262; + goto tr1274; st508: if ( ++p == pe ) goto _test_eof508; case 508: switch( (*p) ) { - case 69: goto st509; - case 101: goto st509; + case 32: goto tr1427; + case 59: goto tr1427; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1427; + } else if ( (*p) >= 9 ) + goto tr1427; + goto tr1274; st509: if ( ++p == pe ) goto _test_eof509; case 509: switch( (*p) ) { - case 89: goto st510; - case 121: goto st510; + case 80: goto st510; + case 112: goto st510; } - goto tr1262; + goto tr1274; st510: if ( ++p == pe ) goto _test_eof510; case 510: switch( (*p) ) { - case 32: goto tr1420; - case 59: goto tr1420; + case 69: goto st511; + case 101: goto st511; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1420; - } else if ( (*p) >= 9 ) - goto tr1420; - goto tr1262; + goto tr1274; st511: if ( ++p == pe ) goto _test_eof511; case 511: switch( (*p) ) { - case 84: goto st512; - case 116: goto st512; + case 78: goto st512; + case 110: goto st512; } - goto tr1262; + goto tr1274; st512: if ( ++p == pe ) goto _test_eof512; case 512: switch( (*p) ) { - case 82: goto st513; - case 114: goto st513; + case 80: goto st513; + case 112: goto st513; } - goto tr1262; + goto tr1274; st513: if ( ++p == pe ) goto _test_eof513; case 513: switch( (*p) ) { - case 32: goto tr1423; - case 59: goto tr1423; + case 71: goto st514; + case 103: goto st514; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1423; - } else if ( (*p) >= 9 ) - goto tr1423; - goto tr1262; + goto tr1274; st514: if ( ++p == pe ) goto _test_eof514; case 514: switch( (*p) ) { - case 69: goto st515; - case 80: goto st521; - case 82: goto st522; - case 84: goto st526; - case 101: goto st515; - case 112: goto st521; - case 114: goto st522; - case 116: goto st526; + case 80: goto st515; + case 112: goto st515; } - goto tr1262; + goto tr1274; st515: if ( ++p == pe ) goto _test_eof515; case 515: switch( (*p) ) { - case 83: goto st516; - case 115: goto st516; + case 75: goto st516; + case 107: goto st516; } - goto tr1262; + goto tr1274; st516: if ( ++p == pe ) goto _test_eof516; case 516: switch( (*p) ) { - case 73: goto st517; - case 105: goto st517; + case 69: goto st517; + case 101: goto st517; } - goto tr1262; + goto tr1274; st517: if ( ++p == pe ) goto _test_eof517; case 517: switch( (*p) ) { - case 78: goto st518; - case 110: goto st518; + case 89: goto st518; + case 121: goto st518; } - goto tr1262; + goto tr1274; st518: if ( ++p == pe ) goto _test_eof518; case 518: switch( (*p) ) { - case 70: goto st519; - case 102: goto st519; + case 32: goto tr1437; + case 59: goto tr1437; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1437; + } else if ( (*p) >= 9 ) + goto tr1437; + goto tr1274; st519: if ( ++p == pe ) goto _test_eof519; case 519: switch( (*p) ) { - case 79: goto st520; - case 111: goto st520; + case 84: goto st520; + case 116: goto st520; } - goto tr1262; + goto tr1274; st520: if ( ++p == pe ) goto _test_eof520; case 520: switch( (*p) ) { - case 32: goto tr1433; - case 59: goto tr1433; + case 82: goto st521; + case 114: goto st521; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1433; - } else if ( (*p) >= 9 ) - goto tr1433; - goto tr1262; + goto tr1274; st521: if ( ++p == pe ) goto _test_eof521; case 521: switch( (*p) ) { - case 32: goto tr1434; - case 59: goto tr1434; + case 32: goto tr1440; + case 59: goto tr1440; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1434; + goto tr1440; } else if ( (*p) >= 9 ) - goto tr1434; - goto tr1262; + goto tr1440; + goto tr1274; st522: if ( ++p == pe ) goto _test_eof522; case 522: switch( (*p) ) { - case 83: goto st523; - case 115: goto st523; + case 69: goto st523; + case 80: goto st529; + case 82: goto st530; + case 84: goto st534; + case 101: goto st523; + case 112: goto st529; + case 114: goto st530; + case 116: goto st534; } - goto tr1262; + goto tr1274; st523: if ( ++p == pe ) goto _test_eof523; case 523: switch( (*p) ) { - case 73: goto st524; - case 105: goto st524; + case 83: goto st524; + case 115: goto st524; } - goto tr1262; + goto tr1274; st524: if ( ++p == pe ) goto _test_eof524; case 524: switch( (*p) ) { - case 71: goto st525; - case 103: goto st525; + case 73: goto st525; + case 105: goto st525; } - goto tr1262; + goto tr1274; st525: if ( ++p == pe ) goto _test_eof525; case 525: switch( (*p) ) { - case 32: goto tr1438; - case 59: goto tr1438; + case 78: goto st526; + case 110: goto st526; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1438; - } else if ( (*p) >= 9 ) - goto tr1438; - goto tr1262; + goto tr1274; st526: if ( ++p == pe ) goto _test_eof526; case 526: switch( (*p) ) { - case 32: goto tr1439; - case 59: goto tr1439; + case 70: goto st527; + case 102: goto st527; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1439; - } else if ( (*p) >= 9 ) - goto tr1439; - goto tr1262; + goto tr1274; st527: if ( ++p == pe ) goto _test_eof527; case 527: switch( (*p) ) { - case 77: goto st528; - case 79: goto st533; - case 80: goto st535; - case 82: goto st537; - case 83: goto st539; - case 86: goto st543; - case 109: goto st528; - case 111: goto st533; - case 112: goto st535; - case 114: goto st537; - case 115: goto st539; - case 118: goto st543; - } - goto tr1262; + case 79: goto st528; + case 111: goto st528; + } + goto tr1274; st528: if ( ++p == pe ) goto _test_eof528; case 528: switch( (*p) ) { - case 73: goto st529; - case 105: goto st529; + case 32: goto tr1450; + case 59: goto tr1450; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1450; + } else if ( (*p) >= 9 ) + goto tr1450; + goto tr1274; st529: if ( ++p == pe ) goto _test_eof529; case 529: switch( (*p) ) { - case 77: goto st530; - case 109: goto st530; + case 32: goto tr1451; + case 59: goto tr1451; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1451; + } else if ( (*p) >= 9 ) + goto tr1451; + goto tr1274; st530: if ( ++p == pe ) goto _test_eof530; case 530: switch( (*p) ) { - case 69: goto st531; - case 101: goto st531; + case 83: goto st531; + case 115: goto st531; } - goto tr1262; + goto tr1274; st531: if ( ++p == pe ) goto _test_eof531; case 531: switch( (*p) ) { - case 65: goto st532; - case 97: goto st532; + case 73: goto st532; + case 105: goto st532; } - goto tr1262; + goto tr1274; st532: if ( ++p == pe ) goto _test_eof532; case 532: switch( (*p) ) { - case 32: goto tr1450; - case 59: goto tr1450; + case 71: goto st533; + case 103: goto st533; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1450; - } else if ( (*p) >= 9 ) - goto tr1450; - goto tr1262; + goto tr1274; st533: if ( ++p == pe ) goto _test_eof533; case 533: switch( (*p) ) { - case 65: goto st534; - case 97: goto st534; + case 32: goto tr1455; + case 59: goto tr1455; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1455; + } else if ( (*p) >= 9 ) + goto tr1455; + goto tr1274; st534: if ( ++p == pe ) goto _test_eof534; case 534: switch( (*p) ) { - case 32: goto tr1452; - case 59: goto tr1452; + case 32: goto tr1456; + case 59: goto tr1456; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1452; + goto tr1456; } else if ( (*p) >= 9 ) - goto tr1452; - goto tr1262; + goto tr1456; + goto tr1274; st535: if ( ++p == pe ) goto _test_eof535; case 535: switch( (*p) ) { - case 70: goto st536; - case 102: goto st536; - } - goto tr1262; + case 77: goto st536; + case 79: goto st541; + case 80: goto st543; + case 82: goto st545; + case 83: goto st547; + case 86: goto st551; + case 109: goto st536; + case 111: goto st541; + case 112: goto st543; + case 114: goto st545; + case 115: goto st547; + case 118: goto st551; + } + goto tr1274; st536: if ( ++p == pe ) goto _test_eof536; case 536: switch( (*p) ) { - case 32: goto tr1454; - case 59: goto tr1454; + case 73: goto st537; + case 105: goto st537; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1454; - } else if ( (*p) >= 9 ) - goto tr1454; - goto tr1262; + goto tr1274; st537: if ( ++p == pe ) goto _test_eof537; case 537: switch( (*p) ) { - case 86: goto st538; - case 118: goto st538; + case 77: goto st538; + case 109: goto st538; } - goto tr1262; + goto tr1274; st538: if ( ++p == pe ) goto _test_eof538; case 538: switch( (*p) ) { - case 32: goto tr1456; - case 59: goto tr1456; + case 69: goto st539; + case 101: goto st539; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1456; - } else if ( (*p) >= 9 ) - goto tr1456; - goto tr1262; + goto tr1274; st539: if ( ++p == pe ) goto _test_eof539; case 539: switch( (*p) ) { - case 72: goto st540; - case 104: goto st540; + case 65: goto st540; + case 97: goto st540; } - goto tr1262; + goto tr1274; st540: if ( ++p == pe ) goto _test_eof540; case 540: switch( (*p) ) { - case 70: goto st541; - case 102: goto st541; + case 32: goto tr1467; + case 59: goto tr1467; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1467; + } else if ( (*p) >= 9 ) + goto tr1467; + goto tr1274; st541: if ( ++p == pe ) goto _test_eof541; case 541: switch( (*p) ) { - case 80: goto st542; - case 112: goto st542; + case 65: goto st542; + case 97: goto st542; } - goto tr1262; + goto tr1274; st542: if ( ++p == pe ) goto _test_eof542; case 542: switch( (*p) ) { - case 32: goto tr1460; - case 59: goto tr1460; + case 32: goto tr1469; + case 59: goto tr1469; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1460; + goto tr1469; } else if ( (*p) >= 9 ) - goto tr1460; - goto tr1262; + goto tr1469; + goto tr1274; st543: if ( ++p == pe ) goto _test_eof543; case 543: switch( (*p) ) { - case 67: goto st544; - case 99: goto st544; + case 70: goto st544; + case 102: goto st544; } - goto tr1262; + goto tr1274; st544: if ( ++p == pe ) goto _test_eof544; case 544: switch( (*p) ) { - case 66: goto st545; - case 98: goto st545; + case 32: goto tr1471; + case 59: goto tr1471; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1471; + } else if ( (*p) >= 9 ) + goto tr1471; + goto tr1274; st545: if ( ++p == pe ) goto _test_eof545; case 545: switch( (*p) ) { - case 32: goto tr1463; - case 59: goto tr1463; + case 86: goto st546; + case 118: goto st546; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1463; - } else if ( (*p) >= 9 ) - goto tr1463; - goto tr1262; + goto tr1274; st546: if ( ++p == pe ) goto _test_eof546; case 546: switch( (*p) ) { - case 76: goto st547; - case 88: goto st550; - case 89: goto st552; - case 108: goto st547; - case 120: goto st550; - case 121: goto st552; + case 32: goto tr1473; + case 59: goto tr1473; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1473; + } else if ( (*p) >= 9 ) + goto tr1473; + goto tr1274; st547: if ( ++p == pe ) goto _test_eof547; case 547: switch( (*p) ) { - case 83: goto st548; - case 115: goto st548; + case 72: goto st548; + case 104: goto st548; } - goto tr1262; + goto tr1274; st548: if ( ++p == pe ) goto _test_eof548; case 548: switch( (*p) ) { - case 65: goto st549; - case 97: goto st549; + case 70: goto st549; + case 102: goto st549; } - goto tr1262; + goto tr1274; st549: if ( ++p == pe ) goto _test_eof549; case 549: switch( (*p) ) { - case 32: goto tr1469; - case 59: goto tr1469; + case 80: goto st550; + case 112: goto st550; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1469; - } else if ( (*p) >= 9 ) - goto tr1469; - goto tr1262; + goto tr1274; st550: if ( ++p == pe ) goto _test_eof550; case 550: switch( (*p) ) { - case 84: goto st551; - case 116: goto st551; + case 32: goto tr1477; + case 59: goto tr1477; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1477; + } else if ( (*p) >= 9 ) + goto tr1477; + goto tr1274; st551: if ( ++p == pe ) goto _test_eof551; case 551: switch( (*p) ) { - case 32: goto tr1471; - case 59: goto tr1471; + case 67: goto st552; + case 99: goto st552; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1471; - } else if ( (*p) >= 9 ) - goto tr1471; - goto tr1262; + goto tr1274; st552: if ( ++p == pe ) goto _test_eof552; case 552: switch( (*p) ) { - case 80: goto st553; - case 112: goto st553; + case 66: goto st553; + case 98: goto st553; } - goto tr1262; + goto tr1274; st553: if ( ++p == pe ) goto _test_eof553; case 553: switch( (*p) ) { - case 69: goto st554; - case 101: goto st554; + case 32: goto tr1480; + case 59: goto tr1480; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1480; + } else if ( (*p) >= 9 ) + goto tr1480; + goto tr1274; st554: if ( ++p == pe ) goto _test_eof554; case 554: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1475; - goto tr1474; -tr1475: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} - } - } - goto st555; -tr1477: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} - } + switch( (*p) ) { + case 76: goto st555; + case 88: goto st558; + case 89: goto st560; + case 108: goto st555; + case 120: goto st558; + case 121: goto st560; } - goto st555; + goto tr1274; st555: if ( ++p == pe ) goto _test_eof555; case 555: switch( (*p) ) { - case 32: goto tr1476; - case 59: goto tr1476; + case 83: goto st556; + case 115: goto st556; } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1476; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1477; - } else - goto tr1476; - goto tr1474; + goto tr1274; st556: if ( ++p == pe ) goto _test_eof556; case 556: switch( (*p) ) { - case 82: goto st557; - case 114: goto st557; + case 65: goto st557; + case 97: goto st557; } - goto tr1262; + goto tr1274; st557: if ( ++p == pe ) goto _test_eof557; case 557: switch( (*p) ) { - case 73: goto st558; - case 105: goto st558; + case 32: goto tr1486; + case 59: goto tr1486; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1486; + } else if ( (*p) >= 9 ) + goto tr1486; + goto tr1274; st558: if ( ++p == pe ) goto _test_eof558; case 558: switch( (*p) ) { - case 32: goto tr1480; - case 59: goto tr1480; + case 84: goto st559; + case 116: goto st559; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1480; - } else if ( (*p) >= 9 ) - goto tr1480; - goto tr1262; + goto tr1274; st559: if ( ++p == pe ) goto _test_eof559; case 559: switch( (*p) ) { - case 65: goto st560; - case 97: goto st560; + case 32: goto tr1488; + case 59: goto tr1488; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1488; + } else if ( (*p) >= 9 ) + goto tr1488; + goto tr1274; st560: if ( ++p == pe ) goto _test_eof560; case 560: switch( (*p) ) { - case 76: goto st561; - case 108: goto st561; + case 80: goto st561; + case 112: goto st561; } - goto tr1262; + goto tr1274; st561: if ( ++p == pe ) goto _test_eof561; case 561: switch( (*p) ) { - case 76: goto st562; - case 108: goto st562; + case 69: goto st562; + case 101: goto st562; } - goto tr1262; + goto tr1274; st562: if ( ++p == pe ) goto _test_eof562; case 562: - switch( (*p) ) { - case 69: goto st563; - case 101: goto st563; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr1492; + goto tr1491; +tr1492: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st329;} + } } - goto tr1262; + goto st563; +tr1494: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st329;} + } + } + goto st563; st563: if ( ++p == pe ) goto _test_eof563; case 563: switch( (*p) ) { - case 84: goto st564; - case 116: goto st564; + case 32: goto tr1493; + case 59: goto tr1493; } - goto tr1262; + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr1493; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr1494; + } else + goto tr1493; + goto tr1491; st564: if ( ++p == pe ) goto _test_eof564; case 564: switch( (*p) ) { - case 32: goto tr1486; - case 59: goto tr1486; + case 82: goto st565; + case 114: goto st565; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1486; - } else if ( (*p) >= 9 ) - goto tr1486; - goto tr1262; + goto tr1274; st565: if ( ++p == pe ) goto _test_eof565; case 565: switch( (*p) ) { - case 79: goto st566; - case 111: goto st566; + case 73: goto st566; + case 105: goto st566; } - goto tr1262; + goto tr1274; st566: if ( ++p == pe ) goto _test_eof566; case 566: switch( (*p) ) { - case 78: goto st567; - case 110: goto st567; + case 32: goto tr1497; + case 59: goto tr1497; } - goto tr1262; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1497; + } else if ( (*p) >= 9 ) + goto tr1497; + goto tr1274; st567: if ( ++p == pe ) goto _test_eof567; case 567: switch( (*p) ) { - case 69: goto st568; - case 101: goto st568; + case 65: goto st568; + case 97: goto st568; } - goto tr1262; + goto tr1274; st568: if ( ++p == pe ) goto _test_eof568; case 568: switch( (*p) ) { - case 77: goto st569; - case 109: goto st569; + case 76: goto st569; + case 108: goto st569; } - goto tr1262; + goto tr1274; st569: if ( ++p == pe ) goto _test_eof569; case 569: switch( (*p) ) { - case 68: goto st570; - case 100: goto st570; + case 76: goto st570; + case 108: goto st570; } - goto tr1262; + goto tr1274; st570: if ( ++p == pe ) goto _test_eof570; case 570: switch( (*p) ) { - case 32: goto tr1492; - case 59: goto tr1492; + case 69: goto st571; + case 101: goto st571; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1492; - } else if ( (*p) >= 9 ) - goto tr1492; - goto tr1262; + goto tr1274; st571: if ( ++p == pe ) goto _test_eof571; case 571: + switch( (*p) ) { + case 84: goto st572; + case 116: goto st572; + } + goto tr1274; +st572: + if ( ++p == pe ) + goto _test_eof572; +case 572: + switch( (*p) ) { + case 32: goto tr1503; + case 59: goto tr1503; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1503; + } else if ( (*p) >= 9 ) + goto tr1503; + goto tr1274; +st573: + if ( ++p == pe ) + goto _test_eof573; +case 573: + switch( (*p) ) { + case 79: goto st574; + case 111: goto st574; + } + goto tr1274; +st574: + if ( ++p == pe ) + goto _test_eof574; +case 574: + switch( (*p) ) { + case 78: goto st575; + case 110: goto st575; + } + goto tr1274; +st575: + if ( ++p == pe ) + goto _test_eof575; +case 575: + switch( (*p) ) { + case 69: goto st576; + case 101: goto st576; + } + goto tr1274; +st576: + if ( ++p == pe ) + goto _test_eof576; +case 576: + switch( (*p) ) { + case 77: goto st577; + case 109: goto st577; + } + goto tr1274; +st577: + if ( ++p == pe ) + goto _test_eof577; +case 577: + switch( (*p) ) { + case 68: goto st578; + case 100: goto st578; + } + goto tr1274; +st578: + if ( ++p == pe ) + goto _test_eof578; +case 578: + switch( (*p) ) { + case 32: goto tr1509; + case 59: goto tr1509; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1509; + } else if ( (*p) >= 9 ) + goto tr1509; + goto tr1274; +st579: + if ( ++p == pe ) + goto _test_eof579; +case 579: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -50389,42 +51106,42 @@ case 571: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1494; - case 32: goto tr1494; - case 40: goto tr1495; - case 41: goto tr1496; - case 3082: goto tr1497; - case 3131: goto tr1498; - case 3338: goto tr1499; - case 3387: goto tr1499; - case 3594: goto tr1500; - case 3643: goto tr1501; - } - goto tr1493; -tr1503: + case 9: goto tr1511; + case 32: goto tr1511; + case 40: goto tr1512; + case 41: goto tr1513; + case 3082: goto tr1514; + case 3131: goto tr1515; + case 3338: goto tr1516; + case 3387: goto tr1516; + case 3594: goto tr1517; + case 3643: goto tr1518; + } + goto tr1510; +tr1520: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1504: + goto st580; +tr1521: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1523: + goto st580; +tr1540: { s->line_counter++; } - goto st572; -tr1550: + goto st580; +tr1568: { s->buffer[s->buffer_length++] = 0; @@ -50434,21 +51151,21 @@ tr1550: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 572; goto _out;} + {p++; cs = 580; goto _out;} } } } { s->line_counter++; } - goto st572; -tr1494: + goto st580; +tr1511: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } - goto st572; -tr1495: + goto st580; +tr1512: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -50456,12 +51173,12 @@ tr1495: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1496: + goto st580; +tr1513: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -50469,12 +51186,12 @@ tr1496: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1497: + goto st580; +tr1514: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -50482,1547 +51199,1576 @@ tr1497: { s->line_counter++; } - goto st572; -tr1528: + goto st580; +tr1545: { window_add_bit(KNOT_RRTYPE_A, s); } - goto st572; -tr1529: + goto st580; +tr1546: { window_add_bit(KNOT_RRTYPE_A, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1530: + goto st580; +tr1547: { window_add_bit(KNOT_RRTYPE_A, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1534: + goto st580; +tr1552: { window_add_bit(KNOT_RRTYPE_A, s); } { s->line_counter++; } - goto st572; -tr1541: + goto st580; +tr1559: { window_add_bit(KNOT_RRTYPE_AAAA, s); } - goto st572; -tr1542: + goto st580; +tr1560: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1543: + goto st580; +tr1561: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1544: + goto st580; +tr1562: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->line_counter++; } - goto st572; -tr1557: + goto st580; +tr1575: { window_add_bit(KNOT_RRTYPE_CAA, s); } - goto st572; -tr1558: + goto st580; +tr1576: { window_add_bit(KNOT_RRTYPE_CAA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1559: + goto st580; +tr1577: { window_add_bit(KNOT_RRTYPE_CAA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1560: + goto st580; +tr1578: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->line_counter++; } - goto st572; -tr1571: + goto st580; +tr1589: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } - goto st572; -tr1572: + goto st580; +tr1590: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1573: + goto st580; +tr1591: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1574: + goto st580; +tr1592: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->line_counter++; } - goto st572; -tr1579: + goto st580; +tr1597: { window_add_bit(KNOT_RRTYPE_CDS, s); } - goto st572; -tr1580: + goto st580; +tr1598: { window_add_bit(KNOT_RRTYPE_CDS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1581: + goto st580; +tr1599: { window_add_bit(KNOT_RRTYPE_CDS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1582: + goto st580; +tr1600: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->line_counter++; } - goto st572; -tr1589: + goto st580; +tr1607: { window_add_bit(KNOT_RRTYPE_CERT, s); } - goto st572; -tr1590: + goto st580; +tr1608: { window_add_bit(KNOT_RRTYPE_CERT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1591: + goto st580; +tr1609: { window_add_bit(KNOT_RRTYPE_CERT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1592: + goto st580; +tr1610: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->line_counter++; } - goto st572; -tr1600: + goto st580; +tr1618: { window_add_bit(KNOT_RRTYPE_CNAME, s); } - goto st572; -tr1601: + goto st580; +tr1619: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1602: + goto st580; +tr1620: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1603: + goto st580; +tr1621: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->line_counter++; } - goto st572; -tr1611: + goto st580; +tr1629: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } - goto st572; -tr1612: + goto st580; +tr1630: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1613: + goto st580; +tr1631: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1614: + goto st580; +tr1632: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->line_counter++; } - goto st572; -tr1625: + goto st580; +tr1643: { window_add_bit(KNOT_RRTYPE_DHCID, s); } - goto st572; -tr1626: + goto st580; +tr1644: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1627: + goto st580; +tr1645: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1628: + goto st580; +tr1646: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->line_counter++; } - goto st572; -tr1637: + goto st580; +tr1655: { window_add_bit(KNOT_RRTYPE_DNAME, s); } - goto st572; -tr1638: + goto st580; +tr1656: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1639: + goto st580; +tr1657: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1640: + goto st580; +tr1658: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->line_counter++; } - goto st572; -tr1648: + goto st580; +tr1666: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } - goto st572; -tr1649: + goto st580; +tr1667: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1650: + goto st580; +tr1668: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1651: + goto st580; +tr1669: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->line_counter++; } - goto st572; -tr1656: + goto st580; +tr1674: { window_add_bit(KNOT_RRTYPE_DS, s); } - goto st572; -tr1657: + goto st580; +tr1675: { window_add_bit(KNOT_RRTYPE_DS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1658: + goto st580; +tr1676: { window_add_bit(KNOT_RRTYPE_DS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1660: + goto st580; +tr1678: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->line_counter++; } - goto st572; -tr1667: + goto st580; +tr1685: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } - goto st572; -tr1668: + goto st580; +tr1686: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1669: + goto st580; +tr1687: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1670: + goto st580; +tr1688: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->line_counter++; } - goto st572; -tr1680: + goto st580; +tr1698: { window_add_bit(KNOT_RRTYPE_EUI48, s); } - goto st572; -tr1681: + goto st580; +tr1699: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1682: + goto st580; +tr1700: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1683: + goto st580; +tr1701: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->line_counter++; } - goto st572; -tr1689: + goto st580; +tr1707: { window_add_bit(KNOT_RRTYPE_EUI64, s); } - goto st572; -tr1690: + goto st580; +tr1708: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1691: + goto st580; +tr1709: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1692: + goto st580; +tr1710: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->line_counter++; } - goto st572; -tr1702: + goto st580; +tr1720: { window_add_bit(KNOT_RRTYPE_HINFO, s); } - goto st572; -tr1703: + goto st580; +tr1721: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1704: + goto st580; +tr1722: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1705: + goto st580; +tr1723: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->line_counter++; } - goto st572; -tr1713: + goto st580; +tr1731: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } - goto st572; -tr1714: + goto st580; +tr1732: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1715: + goto st580; +tr1733: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1716: + goto st580; +tr1734: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->line_counter++; } - goto st572; -tr1728: + goto st580; +tr1746: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } - goto st572; -tr1729: + goto st580; +tr1747: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1730: + goto st580; +tr1748: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1731: + goto st580; +tr1749: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->line_counter++; } - goto st572; -tr1739: + goto st580; +tr1757: { window_add_bit(KNOT_RRTYPE_KEY, s); } - goto st572; -tr1740: + goto st580; +tr1758: { window_add_bit(KNOT_RRTYPE_KEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1741: + goto st580; +tr1759: { window_add_bit(KNOT_RRTYPE_KEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1742: + goto st580; +tr1760: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->line_counter++; } - goto st572; -tr1747: + goto st580; +tr1765: { window_add_bit(KNOT_RRTYPE_KX, s); } - goto st572; -tr1748: + goto st580; +tr1766: { window_add_bit(KNOT_RRTYPE_KX, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1749: + goto st580; +tr1767: { window_add_bit(KNOT_RRTYPE_KX, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1750: + goto st580; +tr1768: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->line_counter++; } - goto st572; -tr1760: + goto st580; +tr1778: { window_add_bit(KNOT_RRTYPE_L32, s); } - goto st572; -tr1761: + goto st580; +tr1779: { window_add_bit(KNOT_RRTYPE_L32, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1762: + goto st580; +tr1780: { window_add_bit(KNOT_RRTYPE_L32, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1763: + goto st580; +tr1781: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->line_counter++; } - goto st572; -tr1769: + goto st580; +tr1787: { window_add_bit(KNOT_RRTYPE_L64, s); } - goto st572; -tr1770: + goto st580; +tr1788: { window_add_bit(KNOT_RRTYPE_L64, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1771: + goto st580; +tr1789: { window_add_bit(KNOT_RRTYPE_L64, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1772: + goto st580; +tr1790: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->line_counter++; } - goto st572; -tr1778: + goto st580; +tr1796: { window_add_bit(KNOT_RRTYPE_LOC, s); } - goto st572; -tr1779: + goto st580; +tr1797: { window_add_bit(KNOT_RRTYPE_LOC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1780: + goto st580; +tr1798: { window_add_bit(KNOT_RRTYPE_LOC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1781: + goto st580; +tr1799: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->line_counter++; } - goto st572; -tr1786: + goto st580; +tr1804: { window_add_bit(KNOT_RRTYPE_LP, s); } - goto st572; -tr1787: + goto st580; +tr1805: { window_add_bit(KNOT_RRTYPE_LP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1788: + goto st580; +tr1806: { window_add_bit(KNOT_RRTYPE_LP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1789: + goto st580; +tr1807: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->line_counter++; } - goto st572; -tr1799: + goto st580; +tr1817: { window_add_bit(KNOT_RRTYPE_MINFO, s); } - goto st572; -tr1800: + goto st580; +tr1818: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1801: + goto st580; +tr1819: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1802: + goto st580; +tr1820: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->line_counter++; } - goto st572; -tr1807: + goto st580; +tr1825: { window_add_bit(KNOT_RRTYPE_MX, s); } - goto st572; -tr1808: + goto st580; +tr1826: { window_add_bit(KNOT_RRTYPE_MX, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1809: + goto st580; +tr1827: { window_add_bit(KNOT_RRTYPE_MX, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1810: + goto st580; +tr1828: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->line_counter++; } - goto st572; -tr1821: + goto st580; +tr1839: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } - goto st572; -tr1822: + goto st580; +tr1840: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1823: + goto st580; +tr1841: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1824: + goto st580; +tr1842: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->line_counter++; } - goto st572; -tr1830: + goto st580; +tr1848: { window_add_bit(KNOT_RRTYPE_NID, s); } - goto st572; -tr1831: + goto st580; +tr1849: { window_add_bit(KNOT_RRTYPE_NID, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1832: + goto st580; +tr1850: { window_add_bit(KNOT_RRTYPE_NID, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1833: + goto st580; +tr1851: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->line_counter++; } - goto st572; -tr1838: + goto st580; +tr1856: { window_add_bit(KNOT_RRTYPE_NS, s); } - goto st572; -tr1839: + goto st580; +tr1857: { window_add_bit(KNOT_RRTYPE_NS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1840: + goto st580; +tr1858: { window_add_bit(KNOT_RRTYPE_NS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1842: + goto st580; +tr1860: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->line_counter++; } - goto st572; -tr1848: + goto st580; +tr1866: { window_add_bit(KNOT_RRTYPE_NSEC, s); } - goto st572; -tr1849: + goto st580; +tr1867: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1850: + goto st580; +tr1868: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1852: + goto st580; +tr1870: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->line_counter++; } - goto st572; -tr1857: + goto st580; +tr1875: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } - goto st572; -tr1858: + goto st580; +tr1876: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1859: + goto st580; +tr1877: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1861: + goto st580; +tr1879: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->line_counter++; } - goto st572; -tr1870: + goto st580; +tr1888: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } - goto st572; -tr1871: + goto st580; +tr1889: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1872: + goto st580; +tr1890: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1873: + goto st580; +tr1891: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->line_counter++; } - goto st572; -tr1887: + goto st580; +tr1905: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } - goto st572; -tr1888: + goto st580; +tr1906: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1889: + goto st580; +tr1907: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1890: + goto st580; +tr1908: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->line_counter++; } - goto st572; -tr1897: + goto st580; +tr1915: { window_add_bit(KNOT_RRTYPE_PTR, s); } - goto st572; -tr1898: + goto st580; +tr1916: { window_add_bit(KNOT_RRTYPE_PTR, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1899: + goto st580; +tr1917: { window_add_bit(KNOT_RRTYPE_PTR, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1900: + goto st580; +tr1918: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->line_counter++; } - goto st572; -tr1914: + goto st580; +tr1932: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } - goto st572; -tr1915: + goto st580; +tr1933: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1916: + goto st580; +tr1934: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1917: + goto st580; +tr1935: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { s->line_counter++; } - goto st572; -tr1922: + goto st580; +tr1940: { window_add_bit(KNOT_RRTYPE_RP, s); } - goto st572; -tr1923: + goto st580; +tr1941: { window_add_bit(KNOT_RRTYPE_RP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1924: + goto st580; +tr1942: { window_add_bit(KNOT_RRTYPE_RP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1925: + goto st580; +tr1943: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->line_counter++; } - goto st572; -tr1933: + goto st580; +tr1951: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } - goto st572; -tr1934: + goto st580; +tr1952: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1935: + goto st580; +tr1953: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1936: + goto st580; +tr1954: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->line_counter++; } - goto st572; -tr1941: + goto st580; +tr1959: { window_add_bit(KNOT_RRTYPE_RT, s); } - goto st572; -tr1942: + goto st580; +tr1960: { window_add_bit(KNOT_RRTYPE_RT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1943: + goto st580; +tr1961: { window_add_bit(KNOT_RRTYPE_RT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1944: + goto st580; +tr1962: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->line_counter++; } - goto st572; -tr1959: + goto st580; +tr1977: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } - goto st572; -tr1960: + goto st580; +tr1978: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1961: + goto st580; +tr1979: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1962: + goto st580; +tr1980: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->line_counter++; } - goto st572; -tr1968: + goto st580; +tr1986: { window_add_bit(KNOT_RRTYPE_SOA, s); } - goto st572; -tr1969: + goto st580; +tr1987: { window_add_bit(KNOT_RRTYPE_SOA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1970: + goto st580; +tr1988: { window_add_bit(KNOT_RRTYPE_SOA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1971: + goto st580; +tr1989: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->line_counter++; } - goto st572; -tr1977: + goto st580; +tr1995: { window_add_bit(KNOT_RRTYPE_SPF, s); } - goto st572; -tr1978: + goto st580; +tr1996: { window_add_bit(KNOT_RRTYPE_SPF, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1979: + goto st580; +tr1997: { window_add_bit(KNOT_RRTYPE_SPF, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1980: + goto st580; +tr1998: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->line_counter++; } - goto st572; -tr1986: + goto st580; +tr2004: { window_add_bit(KNOT_RRTYPE_SRV, s); } - goto st572; -tr1987: + goto st580; +tr2005: { window_add_bit(KNOT_RRTYPE_SRV, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1988: + goto st580; +tr2006: { window_add_bit(KNOT_RRTYPE_SRV, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr1989: + goto st580; +tr2007: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->line_counter++; } - goto st572; -tr1997: + goto st580; +tr2015: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } - goto st572; -tr1998: + goto st580; +tr2016: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr1999: + goto st580; +tr2017: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr2000: + goto st580; +tr2018: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->line_counter++; } - goto st572; -tr2007: + goto st580; +tr2025: { window_add_bit(KNOT_RRTYPE_SVCB, s); } - goto st572; -tr2008: + goto st580; +tr2026: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr2009: + goto st580; +tr2027: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr2010: + goto st580; +tr2028: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->line_counter++; } - goto st572; -tr2020: + goto st580; +tr2038: { window_add_bit(KNOT_RRTYPE_TLSA, s); } - goto st572; -tr2021: + goto st580; +tr2039: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr2022: + goto st580; +tr2040: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr2023: + goto st580; +tr2041: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->line_counter++; } - goto st572; -tr2029: + goto st580; +tr2047: { window_add_bit(KNOT_RRTYPE_TXT, s); } - goto st572; -tr2030: + goto st580; +tr2048: { window_add_bit(KNOT_RRTYPE_TXT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr2031: + goto st580; +tr2049: { window_add_bit(KNOT_RRTYPE_TXT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr2032: + goto st580; +tr2050: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->line_counter++; } - goto st572; -tr2040: + goto st580; +tr2058: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st572; -tr2041: + goto st580; +tr2059: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr2042: + goto st580; +tr2060: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr2044: + goto st580; +tr2062: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st572; -tr2051: + goto st580; +tr2069: { window_add_bit(KNOT_RRTYPE_URI, s); } - goto st572; -tr2052: + goto st580; +tr2070: { window_add_bit(KNOT_RRTYPE_URI, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr2053: + goto st580; +tr2071: { window_add_bit(KNOT_RRTYPE_URI, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr2054: + goto st580; +tr2072: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->line_counter++; } - goto st572; -tr2064: + goto st580; +tr2082: { window_add_bit(KNOT_RRTYPE_WALLET, s); } - goto st572; -tr2065: + goto st580; +tr2083: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr2066: + goto st580; +tr2084: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr2067: + goto st580; +tr2085: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->line_counter++; } - goto st572; -tr2077: + goto st580; +tr2095: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } - goto st572; -tr2078: + goto st580; +tr2096: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr2079: + goto st580; +tr2097: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr2080: + goto st580; +tr2098: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->line_counter++; } - goto st572; -tr2088: + goto st580; +tr2106: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - goto st572; -tr2089: + goto st580; +tr2107: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr2090: + goto st580; +tr2108: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr2091: + goto st580; +tr2109: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->line_counter++; } - goto st572; -tr2097: + goto st580; +tr2117: + { window_add_bit(KNOT_RRTYPE_ALIAS, s); } + goto st580; +tr2118: + { window_add_bit(KNOT_RRTYPE_ALIAS, s); } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st329;} + } + s->multiline = true; + } + goto st580; +tr2119: + { window_add_bit(KNOT_RRTYPE_ALIAS, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st329;} + } + s->multiline = false; + } + goto st580; +tr2120: + { window_add_bit(KNOT_RRTYPE_ALIAS, s); } + { + s->line_counter++; + } + goto st580; +tr2126: { window_add_bit(KNOT_RRTYPE_APL, s); } - goto st572; -tr2098: + goto st580; +tr2127: { window_add_bit(KNOT_RRTYPE_APL, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st572; -tr2099: + goto st580; +tr2128: { window_add_bit(KNOT_RRTYPE_APL, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st572; -tr2100: + goto st580; +tr2129: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->line_counter++; } - goto st572; -st572: + goto st580; +st580: if ( ++p == pe ) - goto _test_eof572; -case 572: + goto _test_eof580; +case 580: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -52040,58 +52786,58 @@ case 572: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st572; - case 32: goto st572; - case 40: goto tr1503; - case 41: goto tr1504; - case 65: goto st573; - case 67: goto st578; - case 68: goto st599; - case 69: goto st616; - case 72: goto st623; - case 73: goto st632; - case 75: goto st640; - case 76: goto st644; - case 77: goto st652; - case 78: goto st658; - case 79: goto st674; - case 80: goto st684; - case 82: goto st687; - case 83: goto st700; - case 84: goto st719; - case 85: goto st729; - case 87: goto st732; - case 90: goto st738; - case 97: goto st573; - case 99: goto st578; - case 100: goto st599; - case 101: goto st616; - case 104: goto st623; - case 105: goto st632; - case 107: goto st640; - case 108: goto st644; - case 109: goto st652; - case 110: goto st658; - case 111: goto st674; - case 112: goto st684; - case 114: goto st687; - case 115: goto st700; - case 116: goto st719; - case 117: goto st729; - case 119: goto st732; - case 122: goto st738; - case 3082: goto tr1523; - case 3131: goto tr1524; - case 3338: goto tr1525; - case 3387: goto tr1525; - case 3594: goto tr1526; - case 3643: goto tr1527; - } - goto tr1493; -st573: + case 9: goto st580; + case 32: goto st580; + case 40: goto tr1520; + case 41: goto tr1521; + case 65: goto st581; + case 67: goto st586; + case 68: goto st607; + case 69: goto st624; + case 72: goto st631; + case 73: goto st640; + case 75: goto st648; + case 76: goto st652; + case 77: goto st660; + case 78: goto st666; + case 79: goto st682; + case 80: goto st692; + case 82: goto st695; + case 83: goto st708; + case 84: goto st727; + case 85: goto st737; + case 87: goto st740; + case 90: goto st746; + case 97: goto st581; + case 99: goto st586; + case 100: goto st607; + case 101: goto st624; + case 104: goto st631; + case 105: goto st640; + case 107: goto st648; + case 108: goto st652; + case 109: goto st660; + case 110: goto st666; + case 111: goto st682; + case 112: goto st692; + case 114: goto st695; + case 115: goto st708; + case 116: goto st727; + case 117: goto st737; + case 119: goto st740; + case 122: goto st746; + case 3082: goto tr1540; + case 3131: goto tr1541; + case 3338: goto tr1542; + case 3387: goto tr1542; + case 3594: goto tr1543; + case 3643: goto tr1544; + } + goto tr1510; +st581: if ( ++p == pe ) - goto _test_eof573; -case 573: + goto _test_eof581; +case 581: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -52109,46 +52855,48 @@ case 573: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1528; - case 32: goto tr1528; - case 40: goto tr1529; - case 41: goto tr1530; - case 65: goto st574; - case 70: goto st744; - case 80: goto st748; - case 97: goto st574; - case 102: goto st744; - case 112: goto st748; - case 3082: goto tr1534; - case 3131: goto tr1535; - case 3338: goto tr1536; - case 3387: goto tr1536; - case 3594: goto tr1537; - case 3643: goto tr1538; - } - goto tr1493; -st574: + case 9: goto tr1545; + case 32: goto tr1545; + case 40: goto tr1546; + case 41: goto tr1547; + case 65: goto st582; + case 70: goto st752; + case 76: goto st756; + case 80: goto st760; + case 97: goto st582; + case 102: goto st752; + case 108: goto st756; + case 112: goto st760; + case 3082: goto tr1552; + case 3131: goto tr1553; + case 3338: goto tr1554; + case 3387: goto tr1554; + case 3594: goto tr1555; + case 3643: goto tr1556; + } + goto tr1510; +st582: if ( ++p == pe ) - goto _test_eof574; -case 574: + goto _test_eof582; +case 582: switch( (*p) ) { - case 65: goto st575; - case 97: goto st575; + case 65: goto st583; + case 97: goto st583; } - goto tr1493; -st575: + goto tr1510; +st583: if ( ++p == pe ) - goto _test_eof575; -case 575: + goto _test_eof583; +case 583: switch( (*p) ) { - case 65: goto st576; - case 97: goto st576; + case 65: goto st584; + case 97: goto st584; } - goto tr1493; -st576: + goto tr1510; +st584: if ( ++p == pe ) - goto _test_eof576; -case 576: + goto _test_eof584; +case 584: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -52166,31 +52914,31 @@ case 576: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1541; - case 32: goto tr1541; - case 40: goto tr1542; - case 41: goto tr1543; - case 3082: goto tr1544; - case 3131: goto tr1545; - case 3338: goto tr1546; - case 3387: goto tr1546; - case 3594: goto tr1547; - case 3643: goto tr1548; - } - goto tr1493; -tr1524: + case 9: goto tr1559; + case 32: goto tr1559; + case 40: goto tr1560; + case 41: goto tr1561; + case 3082: goto tr1562; + case 3131: goto tr1563; + case 3338: goto tr1564; + case 3387: goto tr1564; + case 3594: goto tr1565; + case 3643: goto tr1566; + } + goto tr1510; +tr1541: { s->buffer_length = 0; } - goto st577; -tr1549: + goto st585; +tr1567: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st577; -tr1498: + goto st585; +tr1515: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -52198,330 +52946,336 @@ tr1498: { s->buffer_length = 0; } - goto st577; -tr1535: + goto st585; +tr1553: { window_add_bit(KNOT_RRTYPE_A, s); } { s->buffer_length = 0; } - goto st577; -tr1545: + goto st585; +tr1563: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->buffer_length = 0; } - goto st577; -tr1561: + goto st585; +tr1579: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->buffer_length = 0; } - goto st577; -tr1575: + goto st585; +tr1593: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->buffer_length = 0; } - goto st577; -tr1583: + goto st585; +tr1601: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->buffer_length = 0; } - goto st577; -tr1593: + goto st585; +tr1611: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->buffer_length = 0; } - goto st577; -tr1604: + goto st585; +tr1622: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->buffer_length = 0; } - goto st577; -tr1615: + goto st585; +tr1633: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->buffer_length = 0; } - goto st577; -tr1629: + goto st585; +tr1647: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->buffer_length = 0; } - goto st577; -tr1641: + goto st585; +tr1659: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->buffer_length = 0; } - goto st577; -tr1652: + goto st585; +tr1670: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->buffer_length = 0; } - goto st577; -tr1661: + goto st585; +tr1679: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->buffer_length = 0; } - goto st577; -tr1671: + goto st585; +tr1689: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->buffer_length = 0; } - goto st577; -tr1684: + goto st585; +tr1702: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->buffer_length = 0; } - goto st577; -tr1693: + goto st585; +tr1711: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->buffer_length = 0; } - goto st577; -tr1706: + goto st585; +tr1724: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->buffer_length = 0; } - goto st577; -tr1717: + goto st585; +tr1735: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->buffer_length = 0; } - goto st577; -tr1732: + goto st585; +tr1750: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->buffer_length = 0; } - goto st577; -tr1743: + goto st585; +tr1761: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->buffer_length = 0; } - goto st577; -tr1751: + goto st585; +tr1769: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->buffer_length = 0; } - goto st577; -tr1764: + goto st585; +tr1782: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->buffer_length = 0; } - goto st577; -tr1773: + goto st585; +tr1791: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->buffer_length = 0; } - goto st577; -tr1782: + goto st585; +tr1800: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->buffer_length = 0; } - goto st577; -tr1790: + goto st585; +tr1808: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->buffer_length = 0; } - goto st577; -tr1803: + goto st585; +tr1821: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->buffer_length = 0; } - goto st577; -tr1811: + goto st585; +tr1829: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->buffer_length = 0; } - goto st577; -tr1825: + goto st585; +tr1843: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->buffer_length = 0; } - goto st577; -tr1834: + goto st585; +tr1852: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->buffer_length = 0; } - goto st577; -tr1843: + goto st585; +tr1861: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->buffer_length = 0; } - goto st577; -tr1853: + goto st585; +tr1871: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->buffer_length = 0; } - goto st577; -tr1862: + goto st585; +tr1880: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->buffer_length = 0; } - goto st577; -tr1874: + goto st585; +tr1892: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->buffer_length = 0; } - goto st577; -tr1891: + goto st585; +tr1909: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->buffer_length = 0; } - goto st577; -tr1901: + goto st585; +tr1919: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->buffer_length = 0; } - goto st577; -tr1918: + goto st585; +tr1936: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { s->buffer_length = 0; } - goto st577; -tr1926: + goto st585; +tr1944: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->buffer_length = 0; } - goto st577; -tr1937: + goto st585; +tr1955: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->buffer_length = 0; } - goto st577; -tr1945: + goto st585; +tr1963: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->buffer_length = 0; } - goto st577; -tr1963: + goto st585; +tr1981: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->buffer_length = 0; } - goto st577; -tr1972: + goto st585; +tr1990: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->buffer_length = 0; } - goto st577; -tr1981: + goto st585; +tr1999: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->buffer_length = 0; } - goto st577; -tr1990: + goto st585; +tr2008: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->buffer_length = 0; } - goto st577; -tr2001: + goto st585; +tr2019: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->buffer_length = 0; } - goto st577; -tr2011: + goto st585; +tr2029: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->buffer_length = 0; } - goto st577; -tr2024: + goto st585; +tr2042: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->buffer_length = 0; } - goto st577; -tr2033: + goto st585; +tr2051: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->buffer_length = 0; } - goto st577; -tr2045: + goto st585; +tr2063: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st577; -tr2055: + goto st585; +tr2073: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->buffer_length = 0; } - goto st577; -tr2068: + goto st585; +tr2086: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->buffer_length = 0; } - goto st577; -tr2081: + goto st585; +tr2099: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->buffer_length = 0; } - goto st577; -tr2092: + goto st585; +tr2110: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->buffer_length = 0; } - goto st577; -tr2101: + goto st585; +tr2121: + { window_add_bit(KNOT_RRTYPE_ALIAS, s); } + { + s->buffer_length = 0; + } + goto st585; +tr2130: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->buffer_length = 0; } - goto st577; -st577: + goto st585; +st585: if ( ++p == pe ) - goto _test_eof577; -case 577: + goto _test_eof585; +case 585: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -52541,11 +53295,11 @@ case 577: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1550; + goto tr1568; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1549; - goto tr1493; -tr1499: + goto tr1567; + goto tr1510; +tr1516: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -52568,7 +53322,7 @@ tr1499: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52576,8 +53330,8 @@ tr1499: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1525: + goto st1527; +tr1542: { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -52596,7 +53350,7 @@ tr1525: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52604,8 +53358,8 @@ tr1525: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1536: + goto st1527; +tr1554: { window_add_bit(KNOT_RRTYPE_A, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52625,7 +53379,7 @@ tr1536: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52633,8 +53387,8 @@ tr1536: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1546: + goto st1527; +tr1564: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52654,7 +53408,7 @@ tr1546: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52662,8 +53416,8 @@ tr1546: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1562: + goto st1527; +tr1580: { window_add_bit(KNOT_RRTYPE_CAA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52683,7 +53437,7 @@ tr1562: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52691,8 +53445,8 @@ tr1562: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1576: + goto st1527; +tr1594: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52712,7 +53466,7 @@ tr1576: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52720,8 +53474,8 @@ tr1576: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1584: + goto st1527; +tr1602: { window_add_bit(KNOT_RRTYPE_CDS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52741,7 +53495,7 @@ tr1584: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52749,8 +53503,8 @@ tr1584: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1594: + goto st1527; +tr1612: { window_add_bit(KNOT_RRTYPE_CERT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52770,7 +53524,7 @@ tr1594: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52778,8 +53532,8 @@ tr1594: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1605: + goto st1527; +tr1623: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52799,7 +53553,7 @@ tr1605: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52807,8 +53561,8 @@ tr1605: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1616: + goto st1527; +tr1634: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52828,7 +53582,7 @@ tr1616: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52836,8 +53590,8 @@ tr1616: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1630: + goto st1527; +tr1648: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52857,7 +53611,7 @@ tr1630: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52865,8 +53619,8 @@ tr1630: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1642: + goto st1527; +tr1660: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52886,7 +53640,7 @@ tr1642: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52894,8 +53648,8 @@ tr1642: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1653: + goto st1527; +tr1671: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52915,7 +53669,7 @@ tr1653: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52923,8 +53677,8 @@ tr1653: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1662: + goto st1527; +tr1680: { window_add_bit(KNOT_RRTYPE_DS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52944,7 +53698,7 @@ tr1662: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52952,8 +53706,8 @@ tr1662: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1672: + goto st1527; +tr1690: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -52973,7 +53727,7 @@ tr1672: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -52981,8 +53735,8 @@ tr1672: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1685: + goto st1527; +tr1703: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53002,7 +53756,7 @@ tr1685: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53010,8 +53764,8 @@ tr1685: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1694: + goto st1527; +tr1712: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53031,7 +53785,7 @@ tr1694: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53039,8 +53793,8 @@ tr1694: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1707: + goto st1527; +tr1725: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53060,7 +53814,7 @@ tr1707: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53068,8 +53822,8 @@ tr1707: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1718: + goto st1527; +tr1736: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53089,7 +53843,7 @@ tr1718: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53097,8 +53851,8 @@ tr1718: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1733: + goto st1527; +tr1751: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53118,7 +53872,7 @@ tr1733: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53126,8 +53880,8 @@ tr1733: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1744: + goto st1527; +tr1762: { window_add_bit(KNOT_RRTYPE_KEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53147,7 +53901,7 @@ tr1744: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53155,8 +53909,8 @@ tr1744: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1752: + goto st1527; +tr1770: { window_add_bit(KNOT_RRTYPE_KX, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53176,7 +53930,7 @@ tr1752: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53184,8 +53938,8 @@ tr1752: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1765: + goto st1527; +tr1783: { window_add_bit(KNOT_RRTYPE_L32, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53205,7 +53959,7 @@ tr1765: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53213,8 +53967,8 @@ tr1765: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1774: + goto st1527; +tr1792: { window_add_bit(KNOT_RRTYPE_L64, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53234,7 +53988,7 @@ tr1774: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53242,8 +53996,8 @@ tr1774: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1783: + goto st1527; +tr1801: { window_add_bit(KNOT_RRTYPE_LOC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53263,7 +54017,7 @@ tr1783: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53271,8 +54025,8 @@ tr1783: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1791: + goto st1527; +tr1809: { window_add_bit(KNOT_RRTYPE_LP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53292,7 +54046,7 @@ tr1791: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53300,8 +54054,8 @@ tr1791: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1804: + goto st1527; +tr1822: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53321,7 +54075,7 @@ tr1804: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53329,8 +54083,8 @@ tr1804: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1812: + goto st1527; +tr1830: { window_add_bit(KNOT_RRTYPE_MX, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53350,7 +54104,7 @@ tr1812: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53358,8 +54112,8 @@ tr1812: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1826: + goto st1527; +tr1844: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53379,7 +54133,7 @@ tr1826: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53387,8 +54141,8 @@ tr1826: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1835: + goto st1527; +tr1853: { window_add_bit(KNOT_RRTYPE_NID, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53408,7 +54162,7 @@ tr1835: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53416,8 +54170,8 @@ tr1835: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1844: + goto st1527; +tr1862: { window_add_bit(KNOT_RRTYPE_NS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53437,7 +54191,7 @@ tr1844: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53445,8 +54199,8 @@ tr1844: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1854: + goto st1527; +tr1872: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53466,7 +54220,7 @@ tr1854: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53474,8 +54228,8 @@ tr1854: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1863: + goto st1527; +tr1881: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53495,7 +54249,7 @@ tr1863: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53503,8 +54257,8 @@ tr1863: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1875: + goto st1527; +tr1893: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53524,7 +54278,7 @@ tr1875: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53532,8 +54286,8 @@ tr1875: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1892: + goto st1527; +tr1910: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53553,7 +54307,7 @@ tr1892: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53561,8 +54315,8 @@ tr1892: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1902: + goto st1527; +tr1920: { window_add_bit(KNOT_RRTYPE_PTR, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53582,7 +54336,7 @@ tr1902: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53590,8 +54344,8 @@ tr1902: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1919: + goto st1527; +tr1937: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53611,7 +54365,7 @@ tr1919: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53619,8 +54373,8 @@ tr1919: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1927: + goto st1527; +tr1945: { window_add_bit(KNOT_RRTYPE_RP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53640,7 +54394,7 @@ tr1927: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53648,8 +54402,8 @@ tr1927: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1938: + goto st1527; +tr1956: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53669,7 +54423,7 @@ tr1938: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53677,8 +54431,8 @@ tr1938: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1946: + goto st1527; +tr1964: { window_add_bit(KNOT_RRTYPE_RT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53698,7 +54452,7 @@ tr1946: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53706,8 +54460,8 @@ tr1946: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1964: + goto st1527; +tr1982: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53727,7 +54481,7 @@ tr1964: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53735,8 +54489,8 @@ tr1964: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1973: + goto st1527; +tr1991: { window_add_bit(KNOT_RRTYPE_SOA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53756,7 +54510,7 @@ tr1973: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53764,8 +54518,8 @@ tr1973: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1982: + goto st1527; +tr2000: { window_add_bit(KNOT_RRTYPE_SPF, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53785,7 +54539,7 @@ tr1982: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53793,8 +54547,8 @@ tr1982: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr1991: + goto st1527; +tr2009: { window_add_bit(KNOT_RRTYPE_SRV, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53814,7 +54568,7 @@ tr1991: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53822,8 +54576,8 @@ tr1991: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr2002: + goto st1527; +tr2020: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53843,7 +54597,7 @@ tr2002: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53851,8 +54605,8 @@ tr2002: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr2012: + goto st1527; +tr2030: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53872,7 +54626,7 @@ tr2012: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53880,8 +54634,8 @@ tr2012: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr2025: + goto st1527; +tr2043: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53901,7 +54655,7 @@ tr2025: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53909,8 +54663,8 @@ tr2025: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr2034: + goto st1527; +tr2052: { window_add_bit(KNOT_RRTYPE_TXT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53930,7 +54684,7 @@ tr2034: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53938,14 +54692,14 @@ tr2034: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr2046: + goto st1527; +tr2064: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -53966,7 +54720,7 @@ tr2046: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -53974,8 +54728,8 @@ tr2046: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr2056: + goto st1527; +tr2074: { window_add_bit(KNOT_RRTYPE_URI, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53995,7 +54749,7 @@ tr2056: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54003,8 +54757,8 @@ tr2056: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr2069: + goto st1527; +tr2087: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54024,7 +54778,7 @@ tr2069: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54032,8 +54786,8 @@ tr2069: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr2082: + goto st1527; +tr2100: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54053,7 +54807,7 @@ tr2082: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54061,8 +54815,8 @@ tr2082: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr2093: + goto st1527; +tr2111: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54082,7 +54836,7 @@ tr2093: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54090,9 +54844,9 @@ tr2093: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -tr2102: - { window_add_bit(KNOT_RRTYPE_APL, s); } + goto st1527; +tr2122: + { window_add_bit(KNOT_RRTYPE_ALIAS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -54111,7 +54865,7 @@ tr2102: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54119,20 +54873,9 @@ tr2102: { p--; {cs = stack[--top];goto _again;} } - goto st1515; -st1515: - if ( ++p == pe ) - goto _test_eof1515; -case 1515: - goto st0; -tr1500: - { - memset(s->windows, 0, sizeof(s->windows)); - s->last_window = -1; - } - { - s->line_counter++; - } + goto st1527; +tr2131: + { window_add_bit(KNOT_RRTYPE_APL, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -54151,7 +54894,7 @@ tr1500: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54159,40 +54902,17 @@ tr1500: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1526: - { - s->line_counter++; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} - } - } - } - } + goto st1527; +st1527: + if ( ++p == pe ) + goto _test_eof1527; +case 1527: + goto st0; +tr1517: { - p--; {cs = stack[--top];goto _again;} + memset(s->windows, 0, sizeof(s->windows)); + s->last_window = -1; } - goto st1516; -tr1537: - { window_add_bit(KNOT_RRTYPE_A, s); } { s->line_counter++; } @@ -54214,7 +54934,7 @@ tr1537: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54222,9 +54942,8 @@ tr1537: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1547: - { window_add_bit(KNOT_RRTYPE_AAAA, s); } + goto st1528; +tr1543: { s->line_counter++; } @@ -54246,7 +54965,7 @@ tr1547: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54254,9 +54973,9 @@ tr1547: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1563: - { window_add_bit(KNOT_RRTYPE_CAA, s); } + goto st1528; +tr1555: + { window_add_bit(KNOT_RRTYPE_A, s); } { s->line_counter++; } @@ -54278,7 +54997,7 @@ tr1563: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54286,9 +55005,9 @@ tr1563: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1577: - { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } + goto st1528; +tr1565: + { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->line_counter++; } @@ -54310,7 +55029,7 @@ tr1577: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54318,9 +55037,9 @@ tr1577: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1585: - { window_add_bit(KNOT_RRTYPE_CDS, s); } + goto st1528; +tr1581: + { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->line_counter++; } @@ -54342,7 +55061,7 @@ tr1585: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54350,9 +55069,9 @@ tr1585: { p--; {cs = stack[--top];goto _again;} } - goto st1516; + goto st1528; tr1595: - { window_add_bit(KNOT_RRTYPE_CERT, s); } + { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->line_counter++; } @@ -54374,7 +55093,7 @@ tr1595: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54382,9 +55101,9 @@ tr1595: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1606: - { window_add_bit(KNOT_RRTYPE_CNAME, s); } + goto st1528; +tr1603: + { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->line_counter++; } @@ -54406,7 +55125,7 @@ tr1606: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54414,9 +55133,9 @@ tr1606: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1617: - { window_add_bit(KNOT_RRTYPE_CSYNC, s); } + goto st1528; +tr1613: + { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->line_counter++; } @@ -54438,7 +55157,7 @@ tr1617: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54446,9 +55165,9 @@ tr1617: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1631: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } + goto st1528; +tr1624: + { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->line_counter++; } @@ -54470,7 +55189,7 @@ tr1631: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54478,9 +55197,9 @@ tr1631: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1643: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } + goto st1528; +tr1635: + { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->line_counter++; } @@ -54502,7 +55221,7 @@ tr1643: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54510,9 +55229,9 @@ tr1643: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1654: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } + goto st1528; +tr1649: + { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->line_counter++; } @@ -54534,7 +55253,7 @@ tr1654: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54542,9 +55261,9 @@ tr1654: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1663: - { window_add_bit(KNOT_RRTYPE_DS, s); } + goto st1528; +tr1661: + { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->line_counter++; } @@ -54566,7 +55285,7 @@ tr1663: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54574,9 +55293,9 @@ tr1663: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1673: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + goto st1528; +tr1672: + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->line_counter++; } @@ -54598,7 +55317,7 @@ tr1673: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54606,9 +55325,9 @@ tr1673: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1686: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } + goto st1528; +tr1681: + { window_add_bit(KNOT_RRTYPE_DS, s); } { s->line_counter++; } @@ -54630,7 +55349,7 @@ tr1686: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54638,9 +55357,9 @@ tr1686: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1695: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } + goto st1528; +tr1691: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->line_counter++; } @@ -54662,7 +55381,7 @@ tr1695: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54670,9 +55389,9 @@ tr1695: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1708: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } + goto st1528; +tr1704: + { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->line_counter++; } @@ -54694,7 +55413,7 @@ tr1708: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54702,8 +55421,72 @@ tr1708: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1719: + goto st1528; +tr1713: + { window_add_bit(KNOT_RRTYPE_EUI64, s); } + { + s->line_counter++; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st329;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1528; +tr1726: + { window_add_bit(KNOT_RRTYPE_HINFO, s); } + { + s->line_counter++; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st329;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1528; +tr1737: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->line_counter++; @@ -54726,7 +55509,7 @@ tr1719: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54734,8 +55517,8 @@ tr1719: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1734: + goto st1528; +tr1752: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->line_counter++; @@ -54758,7 +55541,7 @@ tr1734: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54766,8 +55549,8 @@ tr1734: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1745: + goto st1528; +tr1763: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->line_counter++; @@ -54790,7 +55573,7 @@ tr1745: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54798,8 +55581,8 @@ tr1745: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1753: + goto st1528; +tr1771: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->line_counter++; @@ -54822,7 +55605,7 @@ tr1753: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54830,8 +55613,8 @@ tr1753: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1766: + goto st1528; +tr1784: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->line_counter++; @@ -54854,7 +55637,7 @@ tr1766: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54862,8 +55645,8 @@ tr1766: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1775: + goto st1528; +tr1793: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->line_counter++; @@ -54886,7 +55669,7 @@ tr1775: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54894,8 +55677,8 @@ tr1775: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1784: + goto st1528; +tr1802: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->line_counter++; @@ -54918,7 +55701,7 @@ tr1784: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54926,8 +55709,8 @@ tr1784: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1792: + goto st1528; +tr1810: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->line_counter++; @@ -54950,7 +55733,7 @@ tr1792: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54958,8 +55741,8 @@ tr1792: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1805: + goto st1528; +tr1823: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->line_counter++; @@ -54982,7 +55765,7 @@ tr1805: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -54990,8 +55773,8 @@ tr1805: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1813: + goto st1528; +tr1831: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->line_counter++; @@ -55014,7 +55797,7 @@ tr1813: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55022,8 +55805,8 @@ tr1813: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1827: + goto st1528; +tr1845: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->line_counter++; @@ -55046,7 +55829,7 @@ tr1827: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55054,8 +55837,8 @@ tr1827: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1836: + goto st1528; +tr1854: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->line_counter++; @@ -55078,7 +55861,7 @@ tr1836: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55086,8 +55869,8 @@ tr1836: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1845: + goto st1528; +tr1863: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->line_counter++; @@ -55110,7 +55893,7 @@ tr1845: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55118,8 +55901,8 @@ tr1845: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1855: + goto st1528; +tr1873: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->line_counter++; @@ -55142,7 +55925,7 @@ tr1855: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55150,8 +55933,8 @@ tr1855: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1864: + goto st1528; +tr1882: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->line_counter++; @@ -55174,7 +55957,7 @@ tr1864: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55182,8 +55965,8 @@ tr1864: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1876: + goto st1528; +tr1894: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->line_counter++; @@ -55206,7 +55989,7 @@ tr1876: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55214,8 +55997,8 @@ tr1876: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1893: + goto st1528; +tr1911: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->line_counter++; @@ -55238,7 +56021,7 @@ tr1893: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55246,8 +56029,8 @@ tr1893: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1903: + goto st1528; +tr1921: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->line_counter++; @@ -55270,7 +56053,7 @@ tr1903: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55278,8 +56061,8 @@ tr1903: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1920: + goto st1528; +tr1938: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { s->line_counter++; @@ -55302,7 +56085,7 @@ tr1920: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55310,8 +56093,8 @@ tr1920: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1928: + goto st1528; +tr1946: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->line_counter++; @@ -55334,7 +56117,7 @@ tr1928: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55342,8 +56125,8 @@ tr1928: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1939: + goto st1528; +tr1957: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->line_counter++; @@ -55366,7 +56149,7 @@ tr1939: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55374,8 +56157,8 @@ tr1939: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1947: + goto st1528; +tr1965: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->line_counter++; @@ -55398,7 +56181,7 @@ tr1947: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55406,8 +56189,8 @@ tr1947: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1965: + goto st1528; +tr1983: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->line_counter++; @@ -55430,7 +56213,7 @@ tr1965: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55438,8 +56221,8 @@ tr1965: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1974: + goto st1528; +tr1992: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->line_counter++; @@ -55462,7 +56245,7 @@ tr1974: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55470,8 +56253,8 @@ tr1974: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1983: + goto st1528; +tr2001: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->line_counter++; @@ -55494,7 +56277,7 @@ tr1983: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55502,8 +56285,8 @@ tr1983: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1992: + goto st1528; +tr2010: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->line_counter++; @@ -55526,7 +56309,7 @@ tr1992: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55534,8 +56317,8 @@ tr1992: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr2003: + goto st1528; +tr2021: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->line_counter++; @@ -55558,7 +56341,7 @@ tr2003: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55566,8 +56349,8 @@ tr2003: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr2013: + goto st1528; +tr2031: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->line_counter++; @@ -55590,7 +56373,7 @@ tr2013: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55598,8 +56381,8 @@ tr2013: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr2026: + goto st1528; +tr2044: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->line_counter++; @@ -55622,7 +56405,7 @@ tr2026: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55630,8 +56413,8 @@ tr2026: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr2035: + goto st1528; +tr2053: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->line_counter++; @@ -55654,7 +56437,7 @@ tr2035: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55662,14 +56445,14 @@ tr2035: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr2047: + goto st1528; +tr2065: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -55693,7 +56476,7 @@ tr2047: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55701,8 +56484,8 @@ tr2047: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr2057: + goto st1528; +tr2075: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->line_counter++; @@ -55725,7 +56508,7 @@ tr2057: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55733,8 +56516,8 @@ tr2057: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr2070: + goto st1528; +tr2088: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->line_counter++; @@ -55757,7 +56540,7 @@ tr2070: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55765,8 +56548,8 @@ tr2070: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr2083: + goto st1528; +tr2101: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->line_counter++; @@ -55789,7 +56572,7 @@ tr2083: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55797,8 +56580,8 @@ tr2083: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr2094: + goto st1528; +tr2112: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->line_counter++; @@ -55821,7 +56604,7 @@ tr2094: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55829,9 +56612,9 @@ tr2094: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr2103: - { window_add_bit(KNOT_RRTYPE_APL, s); } + goto st1528; +tr2123: + { window_add_bit(KNOT_RRTYPE_ALIAS, s); } { s->line_counter++; } @@ -55853,7 +56636,7 @@ tr2103: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -55861,142 +56644,11 @@ tr2103: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -st1516: - if ( ++p == pe ) - goto _test_eof1516; -case 1516: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto st572; - case 32: goto st572; - case 40: goto tr1503; - case 41: goto tr1504; - case 65: goto st573; - case 67: goto st578; - case 68: goto st599; - case 69: goto st616; - case 72: goto st623; - case 73: goto st632; - case 75: goto st640; - case 76: goto st644; - case 77: goto st652; - case 78: goto st658; - case 79: goto st674; - case 80: goto st684; - case 82: goto st687; - case 83: goto st700; - case 84: goto st719; - case 85: goto st729; - case 87: goto st732; - case 90: goto st738; - case 97: goto st573; - case 99: goto st578; - case 100: goto st599; - case 101: goto st616; - case 104: goto st623; - case 105: goto st632; - case 107: goto st640; - case 108: goto st644; - case 109: goto st652; - case 110: goto st658; - case 111: goto st674; - case 112: goto st684; - case 114: goto st687; - case 115: goto st700; - case 116: goto st719; - case 117: goto st729; - case 119: goto st732; - case 122: goto st738; - case 3082: goto tr1523; - case 3131: goto tr1524; - case 3338: goto tr1525; - case 3387: goto tr1525; - case 3594: goto tr1526; - case 3643: goto tr1527; - } - goto tr1493; -st578: - if ( ++p == pe ) - goto _test_eof578; -case 578: - switch( (*p) ) { - case 65: goto st579; - case 68: goto st581; - case 69: goto st588; - case 78: goto st591; - case 83: goto st595; - case 97: goto st579; - case 100: goto st581; - case 101: goto st588; - case 110: goto st591; - case 115: goto st595; - } - goto tr1493; -st579: - if ( ++p == pe ) - goto _test_eof579; -case 579: - switch( (*p) ) { - case 65: goto st580; - case 97: goto st580; - } - goto tr1493; -st580: - if ( ++p == pe ) - goto _test_eof580; -case 580: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1557; - case 32: goto tr1557; - case 40: goto tr1558; - case 41: goto tr1559; - case 3082: goto tr1560; - case 3131: goto tr1561; - case 3338: goto tr1562; - case 3387: goto tr1562; - case 3594: goto tr1563; - case 3643: goto tr1564; - } - goto tr1493; -tr1501: - { - memset(s->windows, 0, sizeof(s->windows)); - s->last_window = -1; - } + goto st1528; +tr2132: + { window_add_bit(KNOT_RRTYPE_APL, s); } { - s->buffer_length = 0; + s->line_counter++; } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -56016,7 +56668,7 @@ tr1501: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56024,40 +56676,140 @@ tr1501: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1527: - { - s->buffer_length = 0; + goto st1528; +st1528: + if ( ++p == pe ) + goto _test_eof1528; +case 1528: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} - } - } + switch( _widec ) { + case 9: goto st580; + case 32: goto st580; + case 40: goto tr1520; + case 41: goto tr1521; + case 65: goto st581; + case 67: goto st586; + case 68: goto st607; + case 69: goto st624; + case 72: goto st631; + case 73: goto st640; + case 75: goto st648; + case 76: goto st652; + case 77: goto st660; + case 78: goto st666; + case 79: goto st682; + case 80: goto st692; + case 82: goto st695; + case 83: goto st708; + case 84: goto st727; + case 85: goto st737; + case 87: goto st740; + case 90: goto st746; + case 97: goto st581; + case 99: goto st586; + case 100: goto st607; + case 101: goto st624; + case 104: goto st631; + case 105: goto st640; + case 107: goto st648; + case 108: goto st652; + case 109: goto st660; + case 110: goto st666; + case 111: goto st682; + case 112: goto st692; + case 114: goto st695; + case 115: goto st708; + case 116: goto st727; + case 117: goto st737; + case 119: goto st740; + case 122: goto st746; + case 3082: goto tr1540; + case 3131: goto tr1541; + case 3338: goto tr1542; + case 3387: goto tr1542; + case 3594: goto tr1543; + case 3643: goto tr1544; + } + goto tr1510; +st586: + if ( ++p == pe ) + goto _test_eof586; +case 586: + switch( (*p) ) { + case 65: goto st587; + case 68: goto st589; + case 69: goto st596; + case 78: goto st599; + case 83: goto st603; + case 97: goto st587; + case 100: goto st589; + case 101: goto st596; + case 110: goto st599; + case 115: goto st603; + } + goto tr1510; +st587: + if ( ++p == pe ) + goto _test_eof587; +case 587: + switch( (*p) ) { + case 65: goto st588; + case 97: goto st588; + } + goto tr1510; +st588: + if ( ++p == pe ) + goto _test_eof588; +case 588: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + switch( _widec ) { + case 9: goto tr1575; + case 32: goto tr1575; + case 40: goto tr1576; + case 41: goto tr1577; + case 3082: goto tr1578; + case 3131: goto tr1579; + case 3338: goto tr1580; + case 3387: goto tr1580; + case 3594: goto tr1581; + case 3643: goto tr1582; + } + goto tr1510; +tr1518: { - p--; {cs = stack[--top];goto _again;} + memset(s->windows, 0, sizeof(s->windows)); + s->last_window = -1; } - goto st1517; -tr1538: - { window_add_bit(KNOT_RRTYPE_A, s); } { s->buffer_length = 0; } @@ -56079,7 +56831,7 @@ tr1538: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56087,9 +56839,8 @@ tr1538: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1548: - { window_add_bit(KNOT_RRTYPE_AAAA, s); } + goto st1529; +tr1544: { s->buffer_length = 0; } @@ -56111,7 +56862,7 @@ tr1548: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56119,9 +56870,9 @@ tr1548: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1564: - { window_add_bit(KNOT_RRTYPE_CAA, s); } + goto st1529; +tr1556: + { window_add_bit(KNOT_RRTYPE_A, s); } { s->buffer_length = 0; } @@ -56143,7 +56894,7 @@ tr1564: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56151,9 +56902,9 @@ tr1564: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1578: - { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } + goto st1529; +tr1566: + { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->buffer_length = 0; } @@ -56175,7 +56926,7 @@ tr1578: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56183,9 +56934,9 @@ tr1578: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1586: - { window_add_bit(KNOT_RRTYPE_CDS, s); } + goto st1529; +tr1582: + { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->buffer_length = 0; } @@ -56207,7 +56958,7 @@ tr1586: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56215,9 +56966,9 @@ tr1586: { p--; {cs = stack[--top];goto _again;} } - goto st1517; + goto st1529; tr1596: - { window_add_bit(KNOT_RRTYPE_CERT, s); } + { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->buffer_length = 0; } @@ -56239,7 +56990,7 @@ tr1596: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56247,9 +56998,9 @@ tr1596: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1607: - { window_add_bit(KNOT_RRTYPE_CNAME, s); } + goto st1529; +tr1604: + { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->buffer_length = 0; } @@ -56271,7 +57022,7 @@ tr1607: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56279,9 +57030,9 @@ tr1607: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1618: - { window_add_bit(KNOT_RRTYPE_CSYNC, s); } + goto st1529; +tr1614: + { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->buffer_length = 0; } @@ -56303,7 +57054,7 @@ tr1618: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56311,9 +57062,9 @@ tr1618: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1632: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } + goto st1529; +tr1625: + { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->buffer_length = 0; } @@ -56335,7 +57086,7 @@ tr1632: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56343,9 +57094,9 @@ tr1632: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1644: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } + goto st1529; +tr1636: + { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->buffer_length = 0; } @@ -56367,7 +57118,7 @@ tr1644: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56375,9 +57126,9 @@ tr1644: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1655: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } + goto st1529; +tr1650: + { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->buffer_length = 0; } @@ -56399,7 +57150,7 @@ tr1655: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56407,9 +57158,9 @@ tr1655: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1664: - { window_add_bit(KNOT_RRTYPE_DS, s); } + goto st1529; +tr1662: + { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->buffer_length = 0; } @@ -56431,7 +57182,7 @@ tr1664: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56439,9 +57190,9 @@ tr1664: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1674: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + goto st1529; +tr1673: + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->buffer_length = 0; } @@ -56463,7 +57214,7 @@ tr1674: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56471,9 +57222,9 @@ tr1674: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1687: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } + goto st1529; +tr1682: + { window_add_bit(KNOT_RRTYPE_DS, s); } { s->buffer_length = 0; } @@ -56495,7 +57246,7 @@ tr1687: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56503,9 +57254,9 @@ tr1687: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1696: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } + goto st1529; +tr1692: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->buffer_length = 0; } @@ -56527,7 +57278,7 @@ tr1696: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56535,9 +57286,9 @@ tr1696: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1709: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } + goto st1529; +tr1705: + { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->buffer_length = 0; } @@ -56559,7 +57310,7 @@ tr1709: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56567,9 +57318,9 @@ tr1709: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1720: - { window_add_bit(KNOT_RRTYPE_HTTPS, s); } + goto st1529; +tr1714: + { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->buffer_length = 0; } @@ -56591,7 +57342,7 @@ tr1720: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56599,9 +57350,9 @@ tr1720: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1735: - { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } + goto st1529; +tr1727: + { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->buffer_length = 0; } @@ -56623,7 +57374,7 @@ tr1735: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56631,9 +57382,9 @@ tr1735: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1746: - { window_add_bit(KNOT_RRTYPE_KEY, s); } + goto st1529; +tr1738: + { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->buffer_length = 0; } @@ -56655,7 +57406,7 @@ tr1746: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56663,9 +57414,9 @@ tr1746: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1754: - { window_add_bit(KNOT_RRTYPE_KX, s); } + goto st1529; +tr1753: + { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->buffer_length = 0; } @@ -56687,7 +57438,7 @@ tr1754: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56695,9 +57446,9 @@ tr1754: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1767: - { window_add_bit(KNOT_RRTYPE_L32, s); } + goto st1529; +tr1764: + { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->buffer_length = 0; } @@ -56719,7 +57470,7 @@ tr1767: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56727,9 +57478,9 @@ tr1767: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1776: - { window_add_bit(KNOT_RRTYPE_L64, s); } + goto st1529; +tr1772: + { window_add_bit(KNOT_RRTYPE_KX, s); } { s->buffer_length = 0; } @@ -56751,7 +57502,7 @@ tr1776: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56759,9 +57510,9 @@ tr1776: { p--; {cs = stack[--top];goto _again;} } - goto st1517; + goto st1529; tr1785: - { window_add_bit(KNOT_RRTYPE_LOC, s); } + { window_add_bit(KNOT_RRTYPE_L32, s); } { s->buffer_length = 0; } @@ -56783,7 +57534,7 @@ tr1785: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56791,9 +57542,9 @@ tr1785: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1793: - { window_add_bit(KNOT_RRTYPE_LP, s); } + goto st1529; +tr1794: + { window_add_bit(KNOT_RRTYPE_L64, s); } { s->buffer_length = 0; } @@ -56815,7 +57566,7 @@ tr1793: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56823,9 +57574,9 @@ tr1793: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1806: - { window_add_bit(KNOT_RRTYPE_MINFO, s); } + goto st1529; +tr1803: + { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->buffer_length = 0; } @@ -56847,7 +57598,7 @@ tr1806: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56855,9 +57606,9 @@ tr1806: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1814: - { window_add_bit(KNOT_RRTYPE_MX, s); } + goto st1529; +tr1811: + { window_add_bit(KNOT_RRTYPE_LP, s); } { s->buffer_length = 0; } @@ -56879,7 +57630,7 @@ tr1814: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56887,9 +57638,9 @@ tr1814: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1828: - { window_add_bit(KNOT_RRTYPE_NAPTR, s); } + goto st1529; +tr1824: + { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->buffer_length = 0; } @@ -56911,7 +57662,7 @@ tr1828: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56919,9 +57670,9 @@ tr1828: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1837: - { window_add_bit(KNOT_RRTYPE_NID, s); } + goto st1529; +tr1832: + { window_add_bit(KNOT_RRTYPE_MX, s); } { s->buffer_length = 0; } @@ -56943,7 +57694,7 @@ tr1837: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56951,9 +57702,9 @@ tr1837: { p--; {cs = stack[--top];goto _again;} } - goto st1517; + goto st1529; tr1846: - { window_add_bit(KNOT_RRTYPE_NS, s); } + { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->buffer_length = 0; } @@ -56975,7 +57726,7 @@ tr1846: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -56983,9 +57734,9 @@ tr1846: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1856: - { window_add_bit(KNOT_RRTYPE_NSEC, s); } + goto st1529; +tr1855: + { window_add_bit(KNOT_RRTYPE_NID, s); } { s->buffer_length = 0; } @@ -57007,7 +57758,7 @@ tr1856: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57015,9 +57766,9 @@ tr1856: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1865: - { window_add_bit(KNOT_RRTYPE_NSEC3, s); } + goto st1529; +tr1864: + { window_add_bit(KNOT_RRTYPE_NS, s); } { s->buffer_length = 0; } @@ -57039,7 +57790,7 @@ tr1865: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57047,9 +57798,9 @@ tr1865: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1877: - { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } + goto st1529; +tr1874: + { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->buffer_length = 0; } @@ -57071,7 +57822,7 @@ tr1877: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57079,9 +57830,9 @@ tr1877: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1894: - { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } + goto st1529; +tr1883: + { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->buffer_length = 0; } @@ -57103,7 +57854,7 @@ tr1894: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57111,9 +57862,9 @@ tr1894: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1904: - { window_add_bit(KNOT_RRTYPE_PTR, s); } + goto st1529; +tr1895: + { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->buffer_length = 0; } @@ -57135,7 +57886,7 @@ tr1904: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57143,9 +57894,9 @@ tr1904: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1921: - { window_add_bit(KNOT_RRTYPE_RESINFO, s); } + goto st1529; +tr1912: + { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->buffer_length = 0; } @@ -57167,7 +57918,7 @@ tr1921: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57175,8 +57926,72 @@ tr1921: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1929: + goto st1529; +tr1922: + { window_add_bit(KNOT_RRTYPE_PTR, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st329;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1529; +tr1939: + { window_add_bit(KNOT_RRTYPE_RESINFO, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st329;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1529; +tr1947: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->buffer_length = 0; @@ -57199,7 +58014,7 @@ tr1929: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57207,8 +58022,8 @@ tr1929: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1940: + goto st1529; +tr1958: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->buffer_length = 0; @@ -57231,7 +58046,7 @@ tr1940: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57239,8 +58054,8 @@ tr1940: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1948: + goto st1529; +tr1966: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->buffer_length = 0; @@ -57263,7 +58078,7 @@ tr1948: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57271,8 +58086,8 @@ tr1948: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1966: + goto st1529; +tr1984: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->buffer_length = 0; @@ -57295,7 +58110,7 @@ tr1966: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57303,8 +58118,8 @@ tr1966: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1975: + goto st1529; +tr1993: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->buffer_length = 0; @@ -57327,7 +58142,7 @@ tr1975: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57335,8 +58150,8 @@ tr1975: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1984: + goto st1529; +tr2002: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->buffer_length = 0; @@ -57359,7 +58174,7 @@ tr1984: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57367,8 +58182,8 @@ tr1984: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1993: + goto st1529; +tr2011: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->buffer_length = 0; @@ -57391,7 +58206,7 @@ tr1993: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57399,8 +58214,8 @@ tr1993: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr2004: + goto st1529; +tr2022: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->buffer_length = 0; @@ -57423,7 +58238,7 @@ tr2004: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57431,8 +58246,8 @@ tr2004: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr2014: + goto st1529; +tr2032: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->buffer_length = 0; @@ -57455,7 +58270,7 @@ tr2014: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57463,8 +58278,8 @@ tr2014: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr2027: + goto st1529; +tr2045: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->buffer_length = 0; @@ -57487,7 +58302,7 @@ tr2027: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57495,8 +58310,8 @@ tr2027: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr2036: + goto st1529; +tr2054: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->buffer_length = 0; @@ -57519,7 +58334,7 @@ tr2036: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57527,14 +58342,14 @@ tr2036: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr2048: + goto st1529; +tr2066: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -57558,7 +58373,7 @@ tr2048: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57566,8 +58381,8 @@ tr2048: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr2058: + goto st1529; +tr2076: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->buffer_length = 0; @@ -57590,7 +58405,7 @@ tr2058: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57598,8 +58413,8 @@ tr2058: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr2071: + goto st1529; +tr2089: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->buffer_length = 0; @@ -57622,7 +58437,7 @@ tr2071: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57630,8 +58445,8 @@ tr2071: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr2084: + goto st1529; +tr2102: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->buffer_length = 0; @@ -57654,7 +58469,7 @@ tr2084: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57662,8 +58477,8 @@ tr2084: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr2095: + goto st1529; +tr2113: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->buffer_length = 0; @@ -57686,7 +58501,7 @@ tr2095: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57694,8 +58509,40 @@ tr2095: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr2104: + goto st1529; +tr2124: + { window_add_bit(KNOT_RRTYPE_ALIAS, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st329;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1529; +tr2133: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->buffer_length = 0; @@ -57718,7 +58565,7 @@ tr2104: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } } @@ -57726,11 +58573,11 @@ tr2104: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -st1517: + goto st1529; +st1529: if ( ++p == pe ) - goto _test_eof1517; -case 1517: + goto _test_eof1529; +case 1529: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -57750,201 +58597,57 @@ case 1517: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1550; + goto tr1568; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1549; - goto tr1493; -st581: - if ( ++p == pe ) - goto _test_eof581; -case 581: - switch( (*p) ) { - case 78: goto st582; - case 83: goto st587; - case 110: goto st582; - case 115: goto st587; - } - goto tr1493; -st582: - if ( ++p == pe ) - goto _test_eof582; -case 582: - switch( (*p) ) { - case 83: goto st583; - case 115: goto st583; - } - goto tr1493; -st583: - if ( ++p == pe ) - goto _test_eof583; -case 583: - switch( (*p) ) { - case 75: goto st584; - case 107: goto st584; - } - goto tr1493; -st584: - if ( ++p == pe ) - goto _test_eof584; -case 584: - switch( (*p) ) { - case 69: goto st585; - case 101: goto st585; - } - goto tr1493; -st585: - if ( ++p == pe ) - goto _test_eof585; -case 585: - switch( (*p) ) { - case 89: goto st586; - case 121: goto st586; - } - goto tr1493; -st586: - if ( ++p == pe ) - goto _test_eof586; -case 586: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1571; - case 32: goto tr1571; - case 40: goto tr1572; - case 41: goto tr1573; - case 3082: goto tr1574; - case 3131: goto tr1575; - case 3338: goto tr1576; - case 3387: goto tr1576; - case 3594: goto tr1577; - case 3643: goto tr1578; - } - goto tr1493; -st587: - if ( ++p == pe ) - goto _test_eof587; -case 587: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1579; - case 32: goto tr1579; - case 40: goto tr1580; - case 41: goto tr1581; - case 3082: goto tr1582; - case 3131: goto tr1583; - case 3338: goto tr1584; - case 3387: goto tr1584; - case 3594: goto tr1585; - case 3643: goto tr1586; - } - goto tr1493; -st588: - if ( ++p == pe ) - goto _test_eof588; -case 588: - switch( (*p) ) { - case 82: goto st589; - case 114: goto st589; - } - goto tr1493; + goto tr1567; + goto tr1510; st589: if ( ++p == pe ) goto _test_eof589; case 589: switch( (*p) ) { - case 84: goto st590; - case 116: goto st590; + case 78: goto st590; + case 83: goto st595; + case 110: goto st590; + case 115: goto st595; } - goto tr1493; + goto tr1510; st590: if ( ++p == pe ) goto _test_eof590; case 590: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1589; - case 32: goto tr1589; - case 40: goto tr1590; - case 41: goto tr1591; - case 3082: goto tr1592; - case 3131: goto tr1593; - case 3338: goto tr1594; - case 3387: goto tr1594; - case 3594: goto tr1595; - case 3643: goto tr1596; + switch( (*p) ) { + case 83: goto st591; + case 115: goto st591; } - goto tr1493; + goto tr1510; st591: if ( ++p == pe ) goto _test_eof591; case 591: switch( (*p) ) { - case 65: goto st592; - case 97: goto st592; + case 75: goto st592; + case 107: goto st592; } - goto tr1493; + goto tr1510; st592: if ( ++p == pe ) goto _test_eof592; case 592: switch( (*p) ) { - case 77: goto st593; - case 109: goto st593; + case 69: goto st593; + case 101: goto st593; } - goto tr1493; + goto tr1510; st593: if ( ++p == pe ) goto _test_eof593; case 593: switch( (*p) ) { - case 69: goto st594; - case 101: goto st594; + case 89: goto st594; + case 121: goto st594; } - goto tr1493; + goto tr1510; st594: if ( ++p == pe ) goto _test_eof594; @@ -57966,45 +58669,69 @@ case 594: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1600; - case 32: goto tr1600; - case 40: goto tr1601; - case 41: goto tr1602; - case 3082: goto tr1603; - case 3131: goto tr1604; - case 3338: goto tr1605; - case 3387: goto tr1605; - case 3594: goto tr1606; - case 3643: goto tr1607; + case 9: goto tr1589; + case 32: goto tr1589; + case 40: goto tr1590; + case 41: goto tr1591; + case 3082: goto tr1592; + case 3131: goto tr1593; + case 3338: goto tr1594; + case 3387: goto tr1594; + case 3594: goto tr1595; + case 3643: goto tr1596; } - goto tr1493; + goto tr1510; st595: if ( ++p == pe ) goto _test_eof595; case 595: - switch( (*p) ) { - case 89: goto st596; - case 121: goto st596; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr1493; + switch( _widec ) { + case 9: goto tr1597; + case 32: goto tr1597; + case 40: goto tr1598; + case 41: goto tr1599; + case 3082: goto tr1600; + case 3131: goto tr1601; + case 3338: goto tr1602; + case 3387: goto tr1602; + case 3594: goto tr1603; + case 3643: goto tr1604; + } + goto tr1510; st596: if ( ++p == pe ) goto _test_eof596; case 596: switch( (*p) ) { - case 78: goto st597; - case 110: goto st597; + case 82: goto st597; + case 114: goto st597; } - goto tr1493; + goto tr1510; st597: if ( ++p == pe ) goto _test_eof597; case 597: switch( (*p) ) { - case 67: goto st598; - case 99: goto st598; + case 84: goto st598; + case 116: goto st598; } - goto tr1493; + goto tr1510; st598: if ( ++p == pe ) goto _test_eof598; @@ -58026,62 +58753,49 @@ case 598: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1611; - case 32: goto tr1611; - case 40: goto tr1612; - case 41: goto tr1613; - case 3082: goto tr1614; - case 3131: goto tr1615; - case 3338: goto tr1616; - case 3387: goto tr1616; - case 3594: goto tr1617; - case 3643: goto tr1618; - } - goto tr1493; + case 9: goto tr1607; + case 32: goto tr1607; + case 40: goto tr1608; + case 41: goto tr1609; + case 3082: goto tr1610; + case 3131: goto tr1611; + case 3338: goto tr1612; + case 3387: goto tr1612; + case 3594: goto tr1613; + case 3643: goto tr1614; + } + goto tr1510; st599: if ( ++p == pe ) goto _test_eof599; case 599: switch( (*p) ) { - case 72: goto st600; - case 78: goto st604; - case 83: goto st612; - case 104: goto st600; - case 110: goto st604; - case 115: goto st612; + case 65: goto st600; + case 97: goto st600; } - goto tr1493; + goto tr1510; st600: if ( ++p == pe ) goto _test_eof600; case 600: switch( (*p) ) { - case 67: goto st601; - case 99: goto st601; + case 77: goto st601; + case 109: goto st601; } - goto tr1493; + goto tr1510; st601: if ( ++p == pe ) goto _test_eof601; case 601: switch( (*p) ) { - case 73: goto st602; - case 105: goto st602; + case 69: goto st602; + case 101: goto st602; } - goto tr1493; + goto tr1510; st602: if ( ++p == pe ) goto _test_eof602; case 602: - switch( (*p) ) { - case 68: goto st603; - case 100: goto st603; - } - goto tr1493; -st603: - if ( ++p == pe ) - goto _test_eof603; -case 603: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58099,51 +58813,49 @@ case 603: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1625; - case 32: goto tr1625; - case 40: goto tr1626; - case 41: goto tr1627; - case 3082: goto tr1628; - case 3131: goto tr1629; - case 3338: goto tr1630; - case 3387: goto tr1630; - case 3594: goto tr1631; - case 3643: goto tr1632; + case 9: goto tr1618; + case 32: goto tr1618; + case 40: goto tr1619; + case 41: goto tr1620; + case 3082: goto tr1621; + case 3131: goto tr1622; + case 3338: goto tr1623; + case 3387: goto tr1623; + case 3594: goto tr1624; + case 3643: goto tr1625; + } + goto tr1510; +st603: + if ( ++p == pe ) + goto _test_eof603; +case 603: + switch( (*p) ) { + case 89: goto st604; + case 121: goto st604; } - goto tr1493; + goto tr1510; st604: if ( ++p == pe ) goto _test_eof604; case 604: switch( (*p) ) { - case 65: goto st605; - case 83: goto st608; - case 97: goto st605; - case 115: goto st608; + case 78: goto st605; + case 110: goto st605; } - goto tr1493; + goto tr1510; st605: if ( ++p == pe ) goto _test_eof605; case 605: switch( (*p) ) { - case 77: goto st606; - case 109: goto st606; + case 67: goto st606; + case 99: goto st606; } - goto tr1493; + goto tr1510; st606: if ( ++p == pe ) goto _test_eof606; case 606: - switch( (*p) ) { - case 69: goto st607; - case 101: goto st607; - } - goto tr1493; -st607: - if ( ++p == pe ) - goto _test_eof607; -case 607: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58161,45 +58873,58 @@ case 607: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1637; - case 32: goto tr1637; - case 40: goto tr1638; - case 41: goto tr1639; - case 3082: goto tr1640; - case 3131: goto tr1641; - case 3338: goto tr1642; - case 3387: goto tr1642; - case 3594: goto tr1643; - case 3643: goto tr1644; + case 9: goto tr1629; + case 32: goto tr1629; + case 40: goto tr1630; + case 41: goto tr1631; + case 3082: goto tr1632; + case 3131: goto tr1633; + case 3338: goto tr1634; + case 3387: goto tr1634; + case 3594: goto tr1635; + case 3643: goto tr1636; + } + goto tr1510; +st607: + if ( ++p == pe ) + goto _test_eof607; +case 607: + switch( (*p) ) { + case 72: goto st608; + case 78: goto st612; + case 83: goto st620; + case 104: goto st608; + case 110: goto st612; + case 115: goto st620; } - goto tr1493; + goto tr1510; st608: if ( ++p == pe ) goto _test_eof608; case 608: switch( (*p) ) { - case 75: goto st609; - case 107: goto st609; + case 67: goto st609; + case 99: goto st609; } - goto tr1493; + goto tr1510; st609: if ( ++p == pe ) goto _test_eof609; case 609: switch( (*p) ) { - case 69: goto st610; - case 101: goto st610; + case 73: goto st610; + case 105: goto st610; } - goto tr1493; + goto tr1510; st610: if ( ++p == pe ) goto _test_eof610; case 610: switch( (*p) ) { - case 89: goto st611; - case 121: goto st611; + case 68: goto st611; + case 100: goto st611; } - goto tr1493; + goto tr1510; st611: if ( ++p == pe ) goto _test_eof611; @@ -58221,71 +58946,47 @@ case 611: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1648; - case 32: goto tr1648; - case 40: goto tr1649; - case 41: goto tr1650; - case 3082: goto tr1651; - case 3131: goto tr1652; - case 3338: goto tr1653; - case 3387: goto tr1653; - case 3594: goto tr1654; - case 3643: goto tr1655; - } - goto tr1493; + case 9: goto tr1643; + case 32: goto tr1643; + case 40: goto tr1644; + case 41: goto tr1645; + case 3082: goto tr1646; + case 3131: goto tr1647; + case 3338: goto tr1648; + case 3387: goto tr1648; + case 3594: goto tr1649; + case 3643: goto tr1650; + } + goto tr1510; st612: if ( ++p == pe ) goto _test_eof612; case 612: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + switch( (*p) ) { + case 65: goto st613; + case 83: goto st616; + case 97: goto st613; + case 115: goto st616; } - switch( _widec ) { - case 9: goto tr1656; - case 32: goto tr1656; - case 40: goto tr1657; - case 41: goto tr1658; - case 89: goto st613; - case 121: goto st613; - case 3082: goto tr1660; - case 3131: goto tr1661; - case 3338: goto tr1662; - case 3387: goto tr1662; - case 3594: goto tr1663; - case 3643: goto tr1664; - } - goto tr1493; + goto tr1510; st613: if ( ++p == pe ) goto _test_eof613; case 613: switch( (*p) ) { - case 78: goto st614; - case 110: goto st614; + case 77: goto st614; + case 109: goto st614; } - goto tr1493; + goto tr1510; st614: if ( ++p == pe ) goto _test_eof614; case 614: switch( (*p) ) { - case 67: goto st615; - case 99: goto st615; + case 69: goto st615; + case 101: goto st615; } - goto tr1493; + goto tr1510; st615: if ( ++p == pe ) goto _test_eof615; @@ -58307,52 +59008,78 @@ case 615: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1667; - case 32: goto tr1667; - case 40: goto tr1668; - case 41: goto tr1669; - case 3082: goto tr1670; - case 3131: goto tr1671; - case 3338: goto tr1672; - case 3387: goto tr1672; - case 3594: goto tr1673; - case 3643: goto tr1674; - } - goto tr1493; + case 9: goto tr1655; + case 32: goto tr1655; + case 40: goto tr1656; + case 41: goto tr1657; + case 3082: goto tr1658; + case 3131: goto tr1659; + case 3338: goto tr1660; + case 3387: goto tr1660; + case 3594: goto tr1661; + case 3643: goto tr1662; + } + goto tr1510; st616: if ( ++p == pe ) goto _test_eof616; case 616: switch( (*p) ) { - case 85: goto st617; - case 117: goto st617; + case 75: goto st617; + case 107: goto st617; } - goto tr1493; + goto tr1510; st617: if ( ++p == pe ) goto _test_eof617; case 617: switch( (*p) ) { - case 73: goto st618; - case 105: goto st618; + case 69: goto st618; + case 101: goto st618; } - goto tr1493; + goto tr1510; st618: if ( ++p == pe ) goto _test_eof618; case 618: switch( (*p) ) { - case 52: goto st619; - case 54: goto st621; + case 89: goto st619; + case 121: goto st619; } - goto tr1493; + goto tr1510; st619: if ( ++p == pe ) goto _test_eof619; case 619: - if ( (*p) == 56 ) - goto st620; - goto tr1493; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1666; + case 32: goto tr1666; + case 40: goto tr1667; + case 41: goto tr1668; + case 3082: goto tr1669; + case 3131: goto tr1670; + case 3338: goto tr1671; + case 3387: goto tr1671; + case 3594: goto tr1672; + case 3643: goto tr1673; + } + goto tr1510; st620: if ( ++p == pe ) goto _test_eof620; @@ -58374,29 +59101,42 @@ case 620: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1680; - case 32: goto tr1680; - case 40: goto tr1681; - case 41: goto tr1682; - case 3082: goto tr1683; - case 3131: goto tr1684; - case 3338: goto tr1685; - case 3387: goto tr1685; - case 3594: goto tr1686; - case 3643: goto tr1687; - } - goto tr1493; + case 9: goto tr1674; + case 32: goto tr1674; + case 40: goto tr1675; + case 41: goto tr1676; + case 89: goto st621; + case 121: goto st621; + case 3082: goto tr1678; + case 3131: goto tr1679; + case 3338: goto tr1680; + case 3387: goto tr1680; + case 3594: goto tr1681; + case 3643: goto tr1682; + } + goto tr1510; st621: if ( ++p == pe ) goto _test_eof621; case 621: - if ( (*p) == 52 ) - goto st622; - goto tr1493; + switch( (*p) ) { + case 78: goto st622; + case 110: goto st622; + } + goto tr1510; st622: if ( ++p == pe ) goto _test_eof622; case 622: + switch( (*p) ) { + case 67: goto st623; + case 99: goto st623; + } + goto tr1510; +st623: + if ( ++p == pe ) + goto _test_eof623; +case 623: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58414,60 +59154,56 @@ case 622: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1689; - case 32: goto tr1689; - case 40: goto tr1690; - case 41: goto tr1691; - case 3082: goto tr1692; - case 3131: goto tr1693; - case 3338: goto tr1694; - case 3387: goto tr1694; - case 3594: goto tr1695; - case 3643: goto tr1696; - } - goto tr1493; -st623: - if ( ++p == pe ) - goto _test_eof623; -case 623: - switch( (*p) ) { - case 73: goto st624; - case 84: goto st628; - case 105: goto st624; - case 116: goto st628; - } - goto tr1493; + case 9: goto tr1685; + case 32: goto tr1685; + case 40: goto tr1686; + case 41: goto tr1687; + case 3082: goto tr1688; + case 3131: goto tr1689; + case 3338: goto tr1690; + case 3387: goto tr1690; + case 3594: goto tr1691; + case 3643: goto tr1692; + } + goto tr1510; st624: if ( ++p == pe ) goto _test_eof624; case 624: switch( (*p) ) { - case 78: goto st625; - case 110: goto st625; + case 85: goto st625; + case 117: goto st625; } - goto tr1493; + goto tr1510; st625: if ( ++p == pe ) goto _test_eof625; case 625: switch( (*p) ) { - case 70: goto st626; - case 102: goto st626; + case 73: goto st626; + case 105: goto st626; } - goto tr1493; + goto tr1510; st626: if ( ++p == pe ) goto _test_eof626; case 626: switch( (*p) ) { - case 79: goto st627; - case 111: goto st627; + case 52: goto st627; + case 54: goto st629; } - goto tr1493; + goto tr1510; st627: if ( ++p == pe ) goto _test_eof627; case 627: + if ( (*p) == 56 ) + goto st628; + goto tr1510; +st628: + if ( ++p == pe ) + goto _test_eof628; +case 628: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58485,49 +59221,29 @@ case 627: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1702; - case 32: goto tr1702; - case 40: goto tr1703; - case 41: goto tr1704; - case 3082: goto tr1705; - case 3131: goto tr1706; - case 3338: goto tr1707; - case 3387: goto tr1707; - case 3594: goto tr1708; - case 3643: goto tr1709; - } - goto tr1493; -st628: - if ( ++p == pe ) - goto _test_eof628; -case 628: - switch( (*p) ) { - case 84: goto st629; - case 116: goto st629; - } - goto tr1493; + case 9: goto tr1698; + case 32: goto tr1698; + case 40: goto tr1699; + case 41: goto tr1700; + case 3082: goto tr1701; + case 3131: goto tr1702; + case 3338: goto tr1703; + case 3387: goto tr1703; + case 3594: goto tr1704; + case 3643: goto tr1705; + } + goto tr1510; st629: if ( ++p == pe ) goto _test_eof629; case 629: - switch( (*p) ) { - case 80: goto st630; - case 112: goto st630; - } - goto tr1493; + if ( (*p) == 52 ) + goto st630; + goto tr1510; st630: if ( ++p == pe ) goto _test_eof630; case 630: - switch( (*p) ) { - case 83: goto st631; - case 115: goto st631; - } - goto tr1493; -st631: - if ( ++p == pe ) - goto _test_eof631; -case 631: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58545,81 +59261,116 @@ case 631: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1713; - case 32: goto tr1713; - case 40: goto tr1714; - case 41: goto tr1715; - case 3082: goto tr1716; - case 3131: goto tr1717; - case 3338: goto tr1718; - case 3387: goto tr1718; - case 3594: goto tr1719; - case 3643: goto tr1720; + case 9: goto tr1707; + case 32: goto tr1707; + case 40: goto tr1708; + case 41: goto tr1709; + case 3082: goto tr1710; + case 3131: goto tr1711; + case 3338: goto tr1712; + case 3387: goto tr1712; + case 3594: goto tr1713; + case 3643: goto tr1714; + } + goto tr1510; +st631: + if ( ++p == pe ) + goto _test_eof631; +case 631: + switch( (*p) ) { + case 73: goto st632; + case 84: goto st636; + case 105: goto st632; + case 116: goto st636; } - goto tr1493; + goto tr1510; st632: if ( ++p == pe ) goto _test_eof632; case 632: switch( (*p) ) { - case 80: goto st633; - case 112: goto st633; + case 78: goto st633; + case 110: goto st633; } - goto tr1493; + goto tr1510; st633: if ( ++p == pe ) goto _test_eof633; case 633: switch( (*p) ) { - case 83: goto st634; - case 115: goto st634; + case 70: goto st634; + case 102: goto st634; } - goto tr1493; + goto tr1510; st634: if ( ++p == pe ) goto _test_eof634; case 634: switch( (*p) ) { - case 69: goto st635; - case 101: goto st635; + case 79: goto st635; + case 111: goto st635; } - goto tr1493; + goto tr1510; st635: if ( ++p == pe ) goto _test_eof635; case 635: - switch( (*p) ) { - case 67: goto st636; - case 99: goto st636; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr1493; + switch( _widec ) { + case 9: goto tr1720; + case 32: goto tr1720; + case 40: goto tr1721; + case 41: goto tr1722; + case 3082: goto tr1723; + case 3131: goto tr1724; + case 3338: goto tr1725; + case 3387: goto tr1725; + case 3594: goto tr1726; + case 3643: goto tr1727; + } + goto tr1510; st636: if ( ++p == pe ) goto _test_eof636; case 636: switch( (*p) ) { - case 75: goto st637; - case 107: goto st637; + case 84: goto st637; + case 116: goto st637; } - goto tr1493; + goto tr1510; st637: if ( ++p == pe ) goto _test_eof637; case 637: switch( (*p) ) { - case 69: goto st638; - case 101: goto st638; + case 80: goto st638; + case 112: goto st638; } - goto tr1493; + goto tr1510; st638: if ( ++p == pe ) goto _test_eof638; case 638: switch( (*p) ) { - case 89: goto st639; - case 121: goto st639; + case 83: goto st639; + case 115: goto st639; } - goto tr1493; + goto tr1510; st639: if ( ++p == pe ) goto _test_eof639; @@ -58641,168 +59392,85 @@ case 639: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1728; - case 32: goto tr1728; - case 40: goto tr1729; - case 41: goto tr1730; - case 3082: goto tr1731; - case 3131: goto tr1732; - case 3338: goto tr1733; - case 3387: goto tr1733; - case 3594: goto tr1734; - case 3643: goto tr1735; - } - goto tr1493; + case 9: goto tr1731; + case 32: goto tr1731; + case 40: goto tr1732; + case 41: goto tr1733; + case 3082: goto tr1734; + case 3131: goto tr1735; + case 3338: goto tr1736; + case 3387: goto tr1736; + case 3594: goto tr1737; + case 3643: goto tr1738; + } + goto tr1510; st640: if ( ++p == pe ) goto _test_eof640; case 640: switch( (*p) ) { - case 69: goto st641; - case 88: goto st643; - case 101: goto st641; - case 120: goto st643; + case 80: goto st641; + case 112: goto st641; } - goto tr1493; + goto tr1510; st641: if ( ++p == pe ) goto _test_eof641; case 641: switch( (*p) ) { - case 89: goto st642; - case 121: goto st642; + case 83: goto st642; + case 115: goto st642; } - goto tr1493; + goto tr1510; st642: if ( ++p == pe ) goto _test_eof642; case 642: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1739; - case 32: goto tr1739; - case 40: goto tr1740; - case 41: goto tr1741; - case 3082: goto tr1742; - case 3131: goto tr1743; - case 3338: goto tr1744; - case 3387: goto tr1744; - case 3594: goto tr1745; - case 3643: goto tr1746; + switch( (*p) ) { + case 69: goto st643; + case 101: goto st643; } - goto tr1493; + goto tr1510; st643: if ( ++p == pe ) goto _test_eof643; case 643: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1747; - case 32: goto tr1747; - case 40: goto tr1748; - case 41: goto tr1749; - case 3082: goto tr1750; - case 3131: goto tr1751; - case 3338: goto tr1752; - case 3387: goto tr1752; - case 3594: goto tr1753; - case 3643: goto tr1754; + switch( (*p) ) { + case 67: goto st644; + case 99: goto st644; } - goto tr1493; + goto tr1510; st644: if ( ++p == pe ) goto _test_eof644; case 644: switch( (*p) ) { - case 51: goto st645; - case 54: goto st647; - case 79: goto st649; - case 80: goto st651; - case 111: goto st649; - case 112: goto st651; + case 75: goto st645; + case 107: goto st645; } - goto tr1493; + goto tr1510; st645: if ( ++p == pe ) goto _test_eof645; case 645: - if ( (*p) == 50 ) - goto st646; - goto tr1493; + switch( (*p) ) { + case 69: goto st646; + case 101: goto st646; + } + goto tr1510; st646: if ( ++p == pe ) goto _test_eof646; case 646: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1760; - case 32: goto tr1760; - case 40: goto tr1761; - case 41: goto tr1762; - case 3082: goto tr1763; - case 3131: goto tr1764; - case 3338: goto tr1765; - case 3387: goto tr1765; - case 3594: goto tr1766; - case 3643: goto tr1767; + switch( (*p) ) { + case 89: goto st647; + case 121: goto st647; } - goto tr1493; + goto tr1510; st647: if ( ++p == pe ) goto _test_eof647; case 647: - if ( (*p) == 52 ) - goto st648; - goto tr1493; -st648: - if ( ++p == pe ) - goto _test_eof648; -case 648: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58820,27 +59488,38 @@ case 648: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1769; - case 32: goto tr1769; - case 40: goto tr1770; - case 41: goto tr1771; - case 3082: goto tr1772; - case 3131: goto tr1773; - case 3338: goto tr1774; - case 3387: goto tr1774; - case 3594: goto tr1775; - case 3643: goto tr1776; + case 9: goto tr1746; + case 32: goto tr1746; + case 40: goto tr1747; + case 41: goto tr1748; + case 3082: goto tr1749; + case 3131: goto tr1750; + case 3338: goto tr1751; + case 3387: goto tr1751; + case 3594: goto tr1752; + case 3643: goto tr1753; + } + goto tr1510; +st648: + if ( ++p == pe ) + goto _test_eof648; +case 648: + switch( (*p) ) { + case 69: goto st649; + case 88: goto st651; + case 101: goto st649; + case 120: goto st651; } - goto tr1493; + goto tr1510; st649: if ( ++p == pe ) goto _test_eof649; case 649: switch( (*p) ) { - case 67: goto st650; - case 99: goto st650; + case 89: goto st650; + case 121: goto st650; } - goto tr1493; + goto tr1510; st650: if ( ++p == pe ) goto _test_eof650; @@ -58862,18 +59541,18 @@ case 650: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1778; - case 32: goto tr1778; - case 40: goto tr1779; - case 41: goto tr1780; - case 3082: goto tr1781; - case 3131: goto tr1782; - case 3338: goto tr1783; - case 3387: goto tr1783; - case 3594: goto tr1784; - case 3643: goto tr1785; - } - goto tr1493; + case 9: goto tr1757; + case 32: goto tr1757; + case 40: goto tr1758; + case 41: goto tr1759; + case 3082: goto tr1760; + case 3131: goto tr1761; + case 3338: goto tr1762; + case 3387: goto tr1762; + case 3594: goto tr1763; + case 3643: goto tr1764; + } + goto tr1510; st651: if ( ++p == pe ) goto _test_eof651; @@ -58895,56 +59574,78 @@ case 651: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1786; - case 32: goto tr1786; - case 40: goto tr1787; - case 41: goto tr1788; - case 3082: goto tr1789; - case 3131: goto tr1790; - case 3338: goto tr1791; - case 3387: goto tr1791; - case 3594: goto tr1792; - case 3643: goto tr1793; - } - goto tr1493; + case 9: goto tr1765; + case 32: goto tr1765; + case 40: goto tr1766; + case 41: goto tr1767; + case 3082: goto tr1768; + case 3131: goto tr1769; + case 3338: goto tr1770; + case 3387: goto tr1770; + case 3594: goto tr1771; + case 3643: goto tr1772; + } + goto tr1510; st652: if ( ++p == pe ) goto _test_eof652; case 652: switch( (*p) ) { - case 73: goto st653; - case 88: goto st657; - case 105: goto st653; - case 120: goto st657; + case 51: goto st653; + case 54: goto st655; + case 79: goto st657; + case 80: goto st659; + case 111: goto st657; + case 112: goto st659; } - goto tr1493; + goto tr1510; st653: if ( ++p == pe ) goto _test_eof653; case 653: - switch( (*p) ) { - case 78: goto st654; - case 110: goto st654; - } - goto tr1493; + if ( (*p) == 50 ) + goto st654; + goto tr1510; st654: if ( ++p == pe ) goto _test_eof654; case 654: - switch( (*p) ) { - case 70: goto st655; - case 102: goto st655; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1778; + case 32: goto tr1778; + case 40: goto tr1779; + case 41: goto tr1780; + case 3082: goto tr1781; + case 3131: goto tr1782; + case 3338: goto tr1783; + case 3387: goto tr1783; + case 3594: goto tr1784; + case 3643: goto tr1785; } - goto tr1493; + goto tr1510; st655: if ( ++p == pe ) goto _test_eof655; case 655: - switch( (*p) ) { - case 79: goto st656; - case 111: goto st656; - } - goto tr1493; + if ( (*p) == 52 ) + goto st656; + goto tr1510; st656: if ( ++p == pe ) goto _test_eof656; @@ -58966,22 +59667,31 @@ case 656: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1799; - case 32: goto tr1799; - case 40: goto tr1800; - case 41: goto tr1801; - case 3082: goto tr1802; - case 3131: goto tr1803; - case 3338: goto tr1804; - case 3387: goto tr1804; - case 3594: goto tr1805; - case 3643: goto tr1806; - } - goto tr1493; + case 9: goto tr1787; + case 32: goto tr1787; + case 40: goto tr1788; + case 41: goto tr1789; + case 3082: goto tr1790; + case 3131: goto tr1791; + case 3338: goto tr1792; + case 3387: goto tr1792; + case 3594: goto tr1793; + case 3643: goto tr1794; + } + goto tr1510; st657: if ( ++p == pe ) goto _test_eof657; case 657: + switch( (*p) ) { + case 67: goto st658; + case 99: goto st658; + } + goto tr1510; +st658: + if ( ++p == pe ) + goto _test_eof658; +case 658: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -58999,62 +59709,22 @@ case 657: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1807; - case 32: goto tr1807; - case 40: goto tr1808; - case 41: goto tr1809; - case 3082: goto tr1810; - case 3131: goto tr1811; - case 3338: goto tr1812; - case 3387: goto tr1812; - case 3594: goto tr1813; - case 3643: goto tr1814; - } - goto tr1493; -st658: - if ( ++p == pe ) - goto _test_eof658; -case 658: - switch( (*p) ) { - case 65: goto st659; - case 73: goto st663; - case 83: goto st665; - case 97: goto st659; - case 105: goto st663; - case 115: goto st665; - } - goto tr1493; + case 9: goto tr1796; + case 32: goto tr1796; + case 40: goto tr1797; + case 41: goto tr1798; + case 3082: goto tr1799; + case 3131: goto tr1800; + case 3338: goto tr1801; + case 3387: goto tr1801; + case 3594: goto tr1802; + case 3643: goto tr1803; + } + goto tr1510; st659: if ( ++p == pe ) goto _test_eof659; case 659: - switch( (*p) ) { - case 80: goto st660; - case 112: goto st660; - } - goto tr1493; -st660: - if ( ++p == pe ) - goto _test_eof660; -case 660: - switch( (*p) ) { - case 84: goto st661; - case 116: goto st661; - } - goto tr1493; -st661: - if ( ++p == pe ) - goto _test_eof661; -case 661: - switch( (*p) ) { - case 82: goto st662; - case 114: goto st662; - } - goto tr1493; -st662: - if ( ++p == pe ) - goto _test_eof662; -case 662: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59072,27 +59742,56 @@ case 662: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1821; - case 32: goto tr1821; - case 40: goto tr1822; - case 41: goto tr1823; - case 3082: goto tr1824; - case 3131: goto tr1825; - case 3338: goto tr1826; - case 3387: goto tr1826; - case 3594: goto tr1827; - case 3643: goto tr1828; + case 9: goto tr1804; + case 32: goto tr1804; + case 40: goto tr1805; + case 41: goto tr1806; + case 3082: goto tr1807; + case 3131: goto tr1808; + case 3338: goto tr1809; + case 3387: goto tr1809; + case 3594: goto tr1810; + case 3643: goto tr1811; + } + goto tr1510; +st660: + if ( ++p == pe ) + goto _test_eof660; +case 660: + switch( (*p) ) { + case 73: goto st661; + case 88: goto st665; + case 105: goto st661; + case 120: goto st665; } - goto tr1493; + goto tr1510; +st661: + if ( ++p == pe ) + goto _test_eof661; +case 661: + switch( (*p) ) { + case 78: goto st662; + case 110: goto st662; + } + goto tr1510; +st662: + if ( ++p == pe ) + goto _test_eof662; +case 662: + switch( (*p) ) { + case 70: goto st663; + case 102: goto st663; + } + goto tr1510; st663: if ( ++p == pe ) goto _test_eof663; case 663: switch( (*p) ) { - case 68: goto st664; - case 100: goto st664; + case 79: goto st664; + case 111: goto st664; } - goto tr1493; + goto tr1510; st664: if ( ++p == pe ) goto _test_eof664; @@ -59114,18 +59813,18 @@ case 664: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1830; - case 32: goto tr1830; - case 40: goto tr1831; - case 41: goto tr1832; - case 3082: goto tr1833; - case 3131: goto tr1834; - case 3338: goto tr1835; - case 3387: goto tr1835; - case 3594: goto tr1836; - case 3643: goto tr1837; - } - goto tr1493; + case 9: goto tr1817; + case 32: goto tr1817; + case 40: goto tr1818; + case 41: goto tr1819; + case 3082: goto tr1820; + case 3131: goto tr1821; + case 3338: goto tr1822; + case 3387: goto tr1822; + case 3594: goto tr1823; + case 3643: goto tr1824; + } + goto tr1510; st665: if ( ++p == pe ) goto _test_eof665; @@ -59147,33 +59846,62 @@ case 665: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1838; - case 32: goto tr1838; - case 40: goto tr1839; - case 41: goto tr1840; - case 69: goto st666; - case 101: goto st666; - case 3082: goto tr1842; - case 3131: goto tr1843; - case 3338: goto tr1844; - case 3387: goto tr1844; - case 3594: goto tr1845; - case 3643: goto tr1846; - } - goto tr1493; + case 9: goto tr1825; + case 32: goto tr1825; + case 40: goto tr1826; + case 41: goto tr1827; + case 3082: goto tr1828; + case 3131: goto tr1829; + case 3338: goto tr1830; + case 3387: goto tr1830; + case 3594: goto tr1831; + case 3643: goto tr1832; + } + goto tr1510; st666: if ( ++p == pe ) goto _test_eof666; case 666: switch( (*p) ) { - case 67: goto st667; - case 99: goto st667; + case 65: goto st667; + case 73: goto st671; + case 83: goto st673; + case 97: goto st667; + case 105: goto st671; + case 115: goto st673; } - goto tr1493; + goto tr1510; st667: if ( ++p == pe ) goto _test_eof667; case 667: + switch( (*p) ) { + case 80: goto st668; + case 112: goto st668; + } + goto tr1510; +st668: + if ( ++p == pe ) + goto _test_eof668; +case 668: + switch( (*p) ) { + case 84: goto st669; + case 116: goto st669; + } + goto tr1510; +st669: + if ( ++p == pe ) + goto _test_eof669; +case 669: + switch( (*p) ) { + case 82: goto st670; + case 114: goto st670; + } + goto tr1510; +st670: + if ( ++p == pe ) + goto _test_eof670; +case 670: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59191,23 +59919,31 @@ case 667: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1848; - case 32: goto tr1848; - case 40: goto tr1849; - case 41: goto tr1850; - case 51: goto st668; - case 3082: goto tr1852; - case 3131: goto tr1853; - case 3338: goto tr1854; - case 3387: goto tr1854; - case 3594: goto tr1855; - case 3643: goto tr1856; - } - goto tr1493; -st668: + case 9: goto tr1839; + case 32: goto tr1839; + case 40: goto tr1840; + case 41: goto tr1841; + case 3082: goto tr1842; + case 3131: goto tr1843; + case 3338: goto tr1844; + case 3387: goto tr1844; + case 3594: goto tr1845; + case 3643: goto tr1846; + } + goto tr1510; +st671: if ( ++p == pe ) - goto _test_eof668; -case 668: + goto _test_eof671; +case 671: + switch( (*p) ) { + case 68: goto st672; + case 100: goto st672; + } + goto tr1510; +st672: + if ( ++p == pe ) + goto _test_eof672; +case 672: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59225,56 +59961,18 @@ case 668: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1857; - case 32: goto tr1857; - case 40: goto tr1858; - case 41: goto tr1859; - case 80: goto st669; - case 112: goto st669; - case 3082: goto tr1861; - case 3131: goto tr1862; - case 3338: goto tr1863; - case 3387: goto tr1863; - case 3594: goto tr1864; - case 3643: goto tr1865; - } - goto tr1493; -st669: - if ( ++p == pe ) - goto _test_eof669; -case 669: - switch( (*p) ) { - case 65: goto st670; - case 97: goto st670; - } - goto tr1493; -st670: - if ( ++p == pe ) - goto _test_eof670; -case 670: - switch( (*p) ) { - case 82: goto st671; - case 114: goto st671; - } - goto tr1493; -st671: - if ( ++p == pe ) - goto _test_eof671; -case 671: - switch( (*p) ) { - case 65: goto st672; - case 97: goto st672; - } - goto tr1493; -st672: - if ( ++p == pe ) - goto _test_eof672; -case 672: - switch( (*p) ) { - case 77: goto st673; - case 109: goto st673; - } - goto tr1493; + case 9: goto tr1848; + case 32: goto tr1848; + case 40: goto tr1849; + case 41: goto tr1850; + case 3082: goto tr1851; + case 3131: goto tr1852; + case 3338: goto tr1853; + case 3387: goto tr1853; + case 3594: goto tr1854; + case 3643: goto tr1855; + } + goto tr1510; st673: if ( ++p == pe ) goto _test_eof673; @@ -59296,103 +59994,138 @@ case 673: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1870; - case 32: goto tr1870; - case 40: goto tr1871; - case 41: goto tr1872; - case 3082: goto tr1873; - case 3131: goto tr1874; - case 3338: goto tr1875; - case 3387: goto tr1875; - case 3594: goto tr1876; - case 3643: goto tr1877; - } - goto tr1493; + case 9: goto tr1856; + case 32: goto tr1856; + case 40: goto tr1857; + case 41: goto tr1858; + case 69: goto st674; + case 101: goto st674; + case 3082: goto tr1860; + case 3131: goto tr1861; + case 3338: goto tr1862; + case 3387: goto tr1862; + case 3594: goto tr1863; + case 3643: goto tr1864; + } + goto tr1510; st674: if ( ++p == pe ) goto _test_eof674; case 674: switch( (*p) ) { - case 80: goto st675; - case 112: goto st675; + case 67: goto st675; + case 99: goto st675; } - goto tr1493; + goto tr1510; st675: if ( ++p == pe ) goto _test_eof675; case 675: - switch( (*p) ) { - case 69: goto st676; - case 101: goto st676; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr1493; + switch( _widec ) { + case 9: goto tr1866; + case 32: goto tr1866; + case 40: goto tr1867; + case 41: goto tr1868; + case 51: goto st676; + case 3082: goto tr1870; + case 3131: goto tr1871; + case 3338: goto tr1872; + case 3387: goto tr1872; + case 3594: goto tr1873; + case 3643: goto tr1874; + } + goto tr1510; st676: if ( ++p == pe ) goto _test_eof676; case 676: - switch( (*p) ) { - case 78: goto st677; - case 110: goto st677; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr1493; + switch( _widec ) { + case 9: goto tr1875; + case 32: goto tr1875; + case 40: goto tr1876; + case 41: goto tr1877; + case 80: goto st677; + case 112: goto st677; + case 3082: goto tr1879; + case 3131: goto tr1880; + case 3338: goto tr1881; + case 3387: goto tr1881; + case 3594: goto tr1882; + case 3643: goto tr1883; + } + goto tr1510; st677: if ( ++p == pe ) goto _test_eof677; case 677: switch( (*p) ) { - case 80: goto st678; - case 112: goto st678; + case 65: goto st678; + case 97: goto st678; } - goto tr1493; + goto tr1510; st678: if ( ++p == pe ) goto _test_eof678; case 678: switch( (*p) ) { - case 71: goto st679; - case 103: goto st679; + case 82: goto st679; + case 114: goto st679; } - goto tr1493; + goto tr1510; st679: if ( ++p == pe ) goto _test_eof679; case 679: switch( (*p) ) { - case 80: goto st680; - case 112: goto st680; + case 65: goto st680; + case 97: goto st680; } - goto tr1493; + goto tr1510; st680: if ( ++p == pe ) goto _test_eof680; case 680: switch( (*p) ) { - case 75: goto st681; - case 107: goto st681; + case 77: goto st681; + case 109: goto st681; } - goto tr1493; + goto tr1510; st681: if ( ++p == pe ) goto _test_eof681; case 681: - switch( (*p) ) { - case 69: goto st682; - case 101: goto st682; - } - goto tr1493; -st682: - if ( ++p == pe ) - goto _test_eof682; -case 682: - switch( (*p) ) { - case 89: goto st683; - case 121: goto st683; - } - goto tr1493; -st683: - if ( ++p == pe ) - goto _test_eof683; -case 683: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59410,133 +60143,103 @@ case 683: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1887; - case 32: goto tr1887; - case 40: goto tr1888; - case 41: goto tr1889; - case 3082: goto tr1890; - case 3131: goto tr1891; - case 3338: goto tr1892; - case 3387: goto tr1892; - case 3594: goto tr1893; - case 3643: goto tr1894; + case 9: goto tr1888; + case 32: goto tr1888; + case 40: goto tr1889; + case 41: goto tr1890; + case 3082: goto tr1891; + case 3131: goto tr1892; + case 3338: goto tr1893; + case 3387: goto tr1893; + case 3594: goto tr1894; + case 3643: goto tr1895; + } + goto tr1510; +st682: + if ( ++p == pe ) + goto _test_eof682; +case 682: + switch( (*p) ) { + case 80: goto st683; + case 112: goto st683; } - goto tr1493; + goto tr1510; +st683: + if ( ++p == pe ) + goto _test_eof683; +case 683: + switch( (*p) ) { + case 69: goto st684; + case 101: goto st684; + } + goto tr1510; st684: if ( ++p == pe ) goto _test_eof684; case 684: switch( (*p) ) { - case 84: goto st685; - case 116: goto st685; + case 78: goto st685; + case 110: goto st685; } - goto tr1493; + goto tr1510; st685: if ( ++p == pe ) goto _test_eof685; case 685: switch( (*p) ) { - case 82: goto st686; - case 114: goto st686; + case 80: goto st686; + case 112: goto st686; } - goto tr1493; + goto tr1510; st686: if ( ++p == pe ) goto _test_eof686; case 686: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1897; - case 32: goto tr1897; - case 40: goto tr1898; - case 41: goto tr1899; - case 3082: goto tr1900; - case 3131: goto tr1901; - case 3338: goto tr1902; - case 3387: goto tr1902; - case 3594: goto tr1903; - case 3643: goto tr1904; + switch( (*p) ) { + case 71: goto st687; + case 103: goto st687; } - goto tr1493; + goto tr1510; st687: if ( ++p == pe ) goto _test_eof687; case 687: switch( (*p) ) { - case 69: goto st688; - case 80: goto st694; - case 82: goto st695; - case 84: goto st699; - case 101: goto st688; - case 112: goto st694; - case 114: goto st695; - case 116: goto st699; + case 80: goto st688; + case 112: goto st688; } - goto tr1493; + goto tr1510; st688: if ( ++p == pe ) goto _test_eof688; case 688: switch( (*p) ) { - case 83: goto st689; - case 115: goto st689; + case 75: goto st689; + case 107: goto st689; } - goto tr1493; + goto tr1510; st689: if ( ++p == pe ) goto _test_eof689; case 689: switch( (*p) ) { - case 73: goto st690; - case 105: goto st690; + case 69: goto st690; + case 101: goto st690; } - goto tr1493; + goto tr1510; st690: if ( ++p == pe ) goto _test_eof690; case 690: switch( (*p) ) { - case 78: goto st691; - case 110: goto st691; + case 89: goto st691; + case 121: goto st691; } - goto tr1493; + goto tr1510; st691: if ( ++p == pe ) goto _test_eof691; case 691: - switch( (*p) ) { - case 70: goto st692; - case 102: goto st692; - } - goto tr1493; -st692: - if ( ++p == pe ) - goto _test_eof692; -case 692: - switch( (*p) ) { - case 79: goto st693; - case 111: goto st693; - } - goto tr1493; -st693: - if ( ++p == pe ) - goto _test_eof693; -case 693: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59554,18 +60257,36 @@ case 693: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1914; - case 32: goto tr1914; - case 40: goto tr1915; - case 41: goto tr1916; - case 3082: goto tr1917; - case 3131: goto tr1918; - case 3338: goto tr1919; - case 3387: goto tr1919; - case 3594: goto tr1920; - case 3643: goto tr1921; + case 9: goto tr1905; + case 32: goto tr1905; + case 40: goto tr1906; + case 41: goto tr1907; + case 3082: goto tr1908; + case 3131: goto tr1909; + case 3338: goto tr1910; + case 3387: goto tr1910; + case 3594: goto tr1911; + case 3643: goto tr1912; + } + goto tr1510; +st692: + if ( ++p == pe ) + goto _test_eof692; +case 692: + switch( (*p) ) { + case 84: goto st693; + case 116: goto st693; + } + goto tr1510; +st693: + if ( ++p == pe ) + goto _test_eof693; +case 693: + switch( (*p) ) { + case 82: goto st694; + case 114: goto st694; } - goto tr1493; + goto tr1510; st694: if ( ++p == pe ) goto _test_eof694; @@ -59587,49 +60308,82 @@ case 694: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1922; - case 32: goto tr1922; - case 40: goto tr1923; - case 41: goto tr1924; - case 3082: goto tr1925; - case 3131: goto tr1926; - case 3338: goto tr1927; - case 3387: goto tr1927; - case 3594: goto tr1928; - case 3643: goto tr1929; - } - goto tr1493; + case 9: goto tr1915; + case 32: goto tr1915; + case 40: goto tr1916; + case 41: goto tr1917; + case 3082: goto tr1918; + case 3131: goto tr1919; + case 3338: goto tr1920; + case 3387: goto tr1920; + case 3594: goto tr1921; + case 3643: goto tr1922; + } + goto tr1510; st695: if ( ++p == pe ) goto _test_eof695; case 695: switch( (*p) ) { - case 83: goto st696; - case 115: goto st696; + case 69: goto st696; + case 80: goto st702; + case 82: goto st703; + case 84: goto st707; + case 101: goto st696; + case 112: goto st702; + case 114: goto st703; + case 116: goto st707; } - goto tr1493; + goto tr1510; st696: if ( ++p == pe ) goto _test_eof696; case 696: switch( (*p) ) { - case 73: goto st697; - case 105: goto st697; + case 83: goto st697; + case 115: goto st697; } - goto tr1493; + goto tr1510; st697: if ( ++p == pe ) goto _test_eof697; case 697: switch( (*p) ) { - case 71: goto st698; - case 103: goto st698; + case 73: goto st698; + case 105: goto st698; } - goto tr1493; + goto tr1510; st698: if ( ++p == pe ) goto _test_eof698; case 698: + switch( (*p) ) { + case 78: goto st699; + case 110: goto st699; + } + goto tr1510; +st699: + if ( ++p == pe ) + goto _test_eof699; +case 699: + switch( (*p) ) { + case 70: goto st700; + case 102: goto st700; + } + goto tr1510; +st700: + if ( ++p == pe ) + goto _test_eof700; +case 700: + switch( (*p) ) { + case 79: goto st701; + case 111: goto st701; + } + goto tr1510; +st701: + if ( ++p == pe ) + goto _test_eof701; +case 701: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59647,22 +60401,22 @@ case 698: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1933; - case 32: goto tr1933; - case 40: goto tr1934; - case 41: goto tr1935; - case 3082: goto tr1936; - case 3131: goto tr1937; - case 3338: goto tr1938; - case 3387: goto tr1938; - case 3594: goto tr1939; - case 3643: goto tr1940; - } - goto tr1493; -st699: + case 9: goto tr1932; + case 32: goto tr1932; + case 40: goto tr1933; + case 41: goto tr1934; + case 3082: goto tr1935; + case 3131: goto tr1936; + case 3338: goto tr1937; + case 3387: goto tr1937; + case 3594: goto tr1938; + case 3643: goto tr1939; + } + goto tr1510; +st702: if ( ++p == pe ) - goto _test_eof699; -case 699: + goto _test_eof702; +case 702: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59680,77 +60434,49 @@ case 699: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1941; - case 32: goto tr1941; - case 40: goto tr1942; - case 41: goto tr1943; - case 3082: goto tr1944; - case 3131: goto tr1945; - case 3338: goto tr1946; - case 3387: goto tr1946; - case 3594: goto tr1947; - case 3643: goto tr1948; - } - goto tr1493; -st700: - if ( ++p == pe ) - goto _test_eof700; -case 700: - switch( (*p) ) { - case 77: goto st701; - case 79: goto st706; - case 80: goto st708; - case 82: goto st710; - case 83: goto st712; - case 86: goto st716; - case 109: goto st701; - case 111: goto st706; - case 112: goto st708; - case 114: goto st710; - case 115: goto st712; - case 118: goto st716; - } - goto tr1493; -st701: - if ( ++p == pe ) - goto _test_eof701; -case 701: - switch( (*p) ) { - case 73: goto st702; - case 105: goto st702; - } - goto tr1493; -st702: - if ( ++p == pe ) - goto _test_eof702; -case 702: - switch( (*p) ) { - case 77: goto st703; - case 109: goto st703; - } - goto tr1493; + case 9: goto tr1940; + case 32: goto tr1940; + case 40: goto tr1941; + case 41: goto tr1942; + case 3082: goto tr1943; + case 3131: goto tr1944; + case 3338: goto tr1945; + case 3387: goto tr1945; + case 3594: goto tr1946; + case 3643: goto tr1947; + } + goto tr1510; st703: if ( ++p == pe ) goto _test_eof703; case 703: switch( (*p) ) { - case 69: goto st704; - case 101: goto st704; + case 83: goto st704; + case 115: goto st704; } - goto tr1493; + goto tr1510; st704: if ( ++p == pe ) goto _test_eof704; case 704: switch( (*p) ) { - case 65: goto st705; - case 97: goto st705; + case 73: goto st705; + case 105: goto st705; } - goto tr1493; + goto tr1510; st705: if ( ++p == pe ) goto _test_eof705; case 705: + switch( (*p) ) { + case 71: goto st706; + case 103: goto st706; + } + goto tr1510; +st706: + if ( ++p == pe ) + goto _test_eof706; +case 706: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59768,27 +60494,18 @@ case 705: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1959; - case 32: goto tr1959; - case 40: goto tr1960; - case 41: goto tr1961; - case 3082: goto tr1962; - case 3131: goto tr1963; - case 3338: goto tr1964; - case 3387: goto tr1964; - case 3594: goto tr1965; - case 3643: goto tr1966; - } - goto tr1493; -st706: - if ( ++p == pe ) - goto _test_eof706; -case 706: - switch( (*p) ) { - case 65: goto st707; - case 97: goto st707; - } - goto tr1493; + case 9: goto tr1951; + case 32: goto tr1951; + case 40: goto tr1952; + case 41: goto tr1953; + case 3082: goto tr1954; + case 3131: goto tr1955; + case 3338: goto tr1956; + case 3387: goto tr1956; + case 3594: goto tr1957; + case 3643: goto tr1958; + } + goto tr1510; st707: if ( ++p == pe ) goto _test_eof707; @@ -59810,31 +60527,77 @@ case 707: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1968; - case 32: goto tr1968; - case 40: goto tr1969; - case 41: goto tr1970; - case 3082: goto tr1971; - case 3131: goto tr1972; - case 3338: goto tr1973; - case 3387: goto tr1973; - case 3594: goto tr1974; - case 3643: goto tr1975; + case 9: goto tr1959; + case 32: goto tr1959; + case 40: goto tr1960; + case 41: goto tr1961; + case 3082: goto tr1962; + case 3131: goto tr1963; + case 3338: goto tr1964; + case 3387: goto tr1964; + case 3594: goto tr1965; + case 3643: goto tr1966; } - goto tr1493; + goto tr1510; st708: if ( ++p == pe ) goto _test_eof708; case 708: switch( (*p) ) { - case 70: goto st709; - case 102: goto st709; - } - goto tr1493; + case 77: goto st709; + case 79: goto st714; + case 80: goto st716; + case 82: goto st718; + case 83: goto st720; + case 86: goto st724; + case 109: goto st709; + case 111: goto st714; + case 112: goto st716; + case 114: goto st718; + case 115: goto st720; + case 118: goto st724; + } + goto tr1510; st709: if ( ++p == pe ) goto _test_eof709; case 709: + switch( (*p) ) { + case 73: goto st710; + case 105: goto st710; + } + goto tr1510; +st710: + if ( ++p == pe ) + goto _test_eof710; +case 710: + switch( (*p) ) { + case 77: goto st711; + case 109: goto st711; + } + goto tr1510; +st711: + if ( ++p == pe ) + goto _test_eof711; +case 711: + switch( (*p) ) { + case 69: goto st712; + case 101: goto st712; + } + goto tr1510; +st712: + if ( ++p == pe ) + goto _test_eof712; +case 712: + switch( (*p) ) { + case 65: goto st713; + case 97: goto st713; + } + goto tr1510; +st713: + if ( ++p == pe ) + goto _test_eof713; +case 713: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59863,20 +60626,20 @@ case 709: case 3594: goto tr1983; case 3643: goto tr1984; } - goto tr1493; -st710: + goto tr1510; +st714: if ( ++p == pe ) - goto _test_eof710; -case 710: + goto _test_eof714; +case 714: switch( (*p) ) { - case 86: goto st711; - case 118: goto st711; + case 65: goto st715; + case 97: goto st715; } - goto tr1493; -st711: + goto tr1510; +st715: if ( ++p == pe ) - goto _test_eof711; -case 711: + goto _test_eof715; +case 715: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59905,38 +60668,62 @@ case 711: case 3594: goto tr1992; case 3643: goto tr1993; } - goto tr1493; -st712: + goto tr1510; +st716: if ( ++p == pe ) - goto _test_eof712; -case 712: + goto _test_eof716; +case 716: switch( (*p) ) { - case 72: goto st713; - case 104: goto st713; + case 70: goto st717; + case 102: goto st717; } - goto tr1493; -st713: + goto tr1510; +st717: if ( ++p == pe ) - goto _test_eof713; -case 713: - switch( (*p) ) { - case 70: goto st714; - case 102: goto st714; + goto _test_eof717; +case 717: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto tr1493; -st714: + switch( _widec ) { + case 9: goto tr1995; + case 32: goto tr1995; + case 40: goto tr1996; + case 41: goto tr1997; + case 3082: goto tr1998; + case 3131: goto tr1999; + case 3338: goto tr2000; + case 3387: goto tr2000; + case 3594: goto tr2001; + case 3643: goto tr2002; + } + goto tr1510; +st718: if ( ++p == pe ) - goto _test_eof714; -case 714: + goto _test_eof718; +case 718: switch( (*p) ) { - case 80: goto st715; - case 112: goto st715; + case 86: goto st719; + case 118: goto st719; } - goto tr1493; -st715: + goto tr1510; +st719: if ( ++p == pe ) - goto _test_eof715; -case 715: + goto _test_eof719; +case 719: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59954,40 +60741,49 @@ case 715: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1997; - case 32: goto tr1997; - case 40: goto tr1998; - case 41: goto tr1999; - case 3082: goto tr2000; - case 3131: goto tr2001; - case 3338: goto tr2002; - case 3387: goto tr2002; - case 3594: goto tr2003; - case 3643: goto tr2004; + case 9: goto tr2004; + case 32: goto tr2004; + case 40: goto tr2005; + case 41: goto tr2006; + case 3082: goto tr2007; + case 3131: goto tr2008; + case 3338: goto tr2009; + case 3387: goto tr2009; + case 3594: goto tr2010; + case 3643: goto tr2011; + } + goto tr1510; +st720: + if ( ++p == pe ) + goto _test_eof720; +case 720: + switch( (*p) ) { + case 72: goto st721; + case 104: goto st721; } - goto tr1493; -st716: + goto tr1510; +st721: if ( ++p == pe ) - goto _test_eof716; -case 716: + goto _test_eof721; +case 721: switch( (*p) ) { - case 67: goto st717; - case 99: goto st717; + case 70: goto st722; + case 102: goto st722; } - goto tr1493; -st717: + goto tr1510; +st722: if ( ++p == pe ) - goto _test_eof717; -case 717: + goto _test_eof722; +case 722: switch( (*p) ) { - case 66: goto st718; - case 98: goto st718; + case 80: goto st723; + case 112: goto st723; } - goto tr1493; -st718: + goto tr1510; +st723: if ( ++p == pe ) - goto _test_eof718; -case 718: + goto _test_eof723; +case 723: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60005,53 +60801,104 @@ case 718: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2007; - case 32: goto tr2007; - case 40: goto tr2008; - case 41: goto tr2009; - case 3082: goto tr2010; - case 3131: goto tr2011; - case 3338: goto tr2012; - case 3387: goto tr2012; - case 3594: goto tr2013; - case 3643: goto tr2014; + case 9: goto tr2015; + case 32: goto tr2015; + case 40: goto tr2016; + case 41: goto tr2017; + case 3082: goto tr2018; + case 3131: goto tr2019; + case 3338: goto tr2020; + case 3387: goto tr2020; + case 3594: goto tr2021; + case 3643: goto tr2022; + } + goto tr1510; +st724: + if ( ++p == pe ) + goto _test_eof724; +case 724: + switch( (*p) ) { + case 67: goto st725; + case 99: goto st725; } - goto tr1493; -st719: + goto tr1510; +st725: if ( ++p == pe ) - goto _test_eof719; -case 719: + goto _test_eof725; +case 725: switch( (*p) ) { - case 76: goto st720; - case 88: goto st723; - case 89: goto st725; - case 108: goto st720; - case 120: goto st723; - case 121: goto st725; + case 66: goto st726; + case 98: goto st726; } - goto tr1493; -st720: + goto tr1510; +st726: if ( ++p == pe ) - goto _test_eof720; -case 720: + goto _test_eof726; +case 726: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2025; + case 32: goto tr2025; + case 40: goto tr2026; + case 41: goto tr2027; + case 3082: goto tr2028; + case 3131: goto tr2029; + case 3338: goto tr2030; + case 3387: goto tr2030; + case 3594: goto tr2031; + case 3643: goto tr2032; + } + goto tr1510; +st727: + if ( ++p == pe ) + goto _test_eof727; +case 727: switch( (*p) ) { - case 83: goto st721; - case 115: goto st721; + case 76: goto st728; + case 88: goto st731; + case 89: goto st733; + case 108: goto st728; + case 120: goto st731; + case 121: goto st733; } - goto tr1493; -st721: + goto tr1510; +st728: if ( ++p == pe ) - goto _test_eof721; -case 721: + goto _test_eof728; +case 728: switch( (*p) ) { - case 65: goto st722; - case 97: goto st722; + case 83: goto st729; + case 115: goto st729; } - goto tr1493; -st722: + goto tr1510; +st729: if ( ++p == pe ) - goto _test_eof722; -case 722: + goto _test_eof729; +case 729: + switch( (*p) ) { + case 65: goto st730; + case 97: goto st730; + } + goto tr1510; +st730: + if ( ++p == pe ) + goto _test_eof730; +case 730: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60069,31 +60916,31 @@ case 722: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2020; - case 32: goto tr2020; - case 40: goto tr2021; - case 41: goto tr2022; - case 3082: goto tr2023; - case 3131: goto tr2024; - case 3338: goto tr2025; - case 3387: goto tr2025; - case 3594: goto tr2026; - case 3643: goto tr2027; - } - goto tr1493; -st723: + case 9: goto tr2038; + case 32: goto tr2038; + case 40: goto tr2039; + case 41: goto tr2040; + case 3082: goto tr2041; + case 3131: goto tr2042; + case 3338: goto tr2043; + case 3387: goto tr2043; + case 3594: goto tr2044; + case 3643: goto tr2045; + } + goto tr1510; +st731: if ( ++p == pe ) - goto _test_eof723; -case 723: + goto _test_eof731; +case 731: switch( (*p) ) { - case 84: goto st724; - case 116: goto st724; + case 84: goto st732; + case 116: goto st732; } - goto tr1493; -st724: + goto tr1510; +st732: if ( ++p == pe ) - goto _test_eof724; -case 724: + goto _test_eof732; +case 732: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60111,44 +60958,44 @@ case 724: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2029; - case 32: goto tr2029; - case 40: goto tr2030; - case 41: goto tr2031; - case 3082: goto tr2032; - case 3131: goto tr2033; - case 3338: goto tr2034; - case 3387: goto tr2034; - case 3594: goto tr2035; - case 3643: goto tr2036; - } - goto tr1493; -st725: + case 9: goto tr2047; + case 32: goto tr2047; + case 40: goto tr2048; + case 41: goto tr2049; + case 3082: goto tr2050; + case 3131: goto tr2051; + case 3338: goto tr2052; + case 3387: goto tr2052; + case 3594: goto tr2053; + case 3643: goto tr2054; + } + goto tr1510; +st733: if ( ++p == pe ) - goto _test_eof725; -case 725: + goto _test_eof733; +case 733: switch( (*p) ) { - case 80: goto st726; - case 112: goto st726; + case 80: goto st734; + case 112: goto st734; } - goto tr1493; -st726: + goto tr1510; +st734: if ( ++p == pe ) - goto _test_eof726; -case 726: + goto _test_eof734; +case 734: switch( (*p) ) { - case 69: goto st727; - case 101: goto st727; + case 69: goto st735; + case 101: goto st735; } - goto tr1493; -st727: + goto tr1510; +st735: if ( ++p == pe ) - goto _test_eof727; -case 727: + goto _test_eof735; +case 735: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2039; - goto tr1493; -tr2039: + goto tr2057; + goto tr1510; +tr2057: { s->number64 = 0; } @@ -60163,11 +61010,11 @@ tr2039: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st728; -tr2043: + goto st736; +tr2061: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -60179,14 +61026,14 @@ tr2043: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st728; -st728: + goto st736; +st736: if ( ++p == pe ) - goto _test_eof728; -case 728: + goto _test_eof736; +case 736: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60204,42 +61051,42 @@ case 728: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2040; - case 32: goto tr2040; - case 40: goto tr2041; - case 41: goto tr2042; - case 3082: goto tr2044; - case 3131: goto tr2045; - case 3338: goto tr2046; - case 3387: goto tr2046; - case 3594: goto tr2047; - case 3643: goto tr2048; + case 9: goto tr2058; + case 32: goto tr2058; + case 40: goto tr2059; + case 41: goto tr2060; + case 3082: goto tr2062; + case 3131: goto tr2063; + case 3338: goto tr2064; + case 3387: goto tr2064; + case 3594: goto tr2065; + case 3643: goto tr2066; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2043; - goto tr1493; -st729: + goto tr2061; + goto tr1510; +st737: if ( ++p == pe ) - goto _test_eof729; -case 729: + goto _test_eof737; +case 737: switch( (*p) ) { - case 82: goto st730; - case 114: goto st730; + case 82: goto st738; + case 114: goto st738; } - goto tr1493; -st730: + goto tr1510; +st738: if ( ++p == pe ) - goto _test_eof730; -case 730: + goto _test_eof738; +case 738: switch( (*p) ) { - case 73: goto st731; - case 105: goto st731; + case 73: goto st739; + case 105: goto st739; } - goto tr1493; -st731: + goto tr1510; +st739: if ( ++p == pe ) - goto _test_eof731; -case 731: + goto _test_eof739; +case 739: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60257,67 +61104,67 @@ case 731: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2051; - case 32: goto tr2051; - case 40: goto tr2052; - case 41: goto tr2053; - case 3082: goto tr2054; - case 3131: goto tr2055; - case 3338: goto tr2056; - case 3387: goto tr2056; - case 3594: goto tr2057; - case 3643: goto tr2058; - } - goto tr1493; -st732: + case 9: goto tr2069; + case 32: goto tr2069; + case 40: goto tr2070; + case 41: goto tr2071; + case 3082: goto tr2072; + case 3131: goto tr2073; + case 3338: goto tr2074; + case 3387: goto tr2074; + case 3594: goto tr2075; + case 3643: goto tr2076; + } + goto tr1510; +st740: if ( ++p == pe ) - goto _test_eof732; -case 732: + goto _test_eof740; +case 740: switch( (*p) ) { - case 65: goto st733; - case 97: goto st733; + case 65: goto st741; + case 97: goto st741; } - goto tr1493; -st733: + goto tr1510; +st741: if ( ++p == pe ) - goto _test_eof733; -case 733: + goto _test_eof741; +case 741: switch( (*p) ) { - case 76: goto st734; - case 108: goto st734; + case 76: goto st742; + case 108: goto st742; } - goto tr1493; -st734: + goto tr1510; +st742: if ( ++p == pe ) - goto _test_eof734; -case 734: + goto _test_eof742; +case 742: switch( (*p) ) { - case 76: goto st735; - case 108: goto st735; + case 76: goto st743; + case 108: goto st743; } - goto tr1493; -st735: + goto tr1510; +st743: if ( ++p == pe ) - goto _test_eof735; -case 735: + goto _test_eof743; +case 743: switch( (*p) ) { - case 69: goto st736; - case 101: goto st736; + case 69: goto st744; + case 101: goto st744; } - goto tr1493; -st736: + goto tr1510; +st744: if ( ++p == pe ) - goto _test_eof736; -case 736: + goto _test_eof744; +case 744: switch( (*p) ) { - case 84: goto st737; - case 116: goto st737; + case 84: goto st745; + case 116: goto st745; } - goto tr1493; -st737: + goto tr1510; +st745: if ( ++p == pe ) - goto _test_eof737; -case 737: + goto _test_eof745; +case 745: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60335,67 +61182,67 @@ case 737: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2064; - case 32: goto tr2064; - case 40: goto tr2065; - case 41: goto tr2066; - case 3082: goto tr2067; - case 3131: goto tr2068; - case 3338: goto tr2069; - case 3387: goto tr2069; - case 3594: goto tr2070; - case 3643: goto tr2071; - } - goto tr1493; -st738: + case 9: goto tr2082; + case 32: goto tr2082; + case 40: goto tr2083; + case 41: goto tr2084; + case 3082: goto tr2085; + case 3131: goto tr2086; + case 3338: goto tr2087; + case 3387: goto tr2087; + case 3594: goto tr2088; + case 3643: goto tr2089; + } + goto tr1510; +st746: if ( ++p == pe ) - goto _test_eof738; -case 738: + goto _test_eof746; +case 746: switch( (*p) ) { - case 79: goto st739; - case 111: goto st739; + case 79: goto st747; + case 111: goto st747; } - goto tr1493; -st739: + goto tr1510; +st747: if ( ++p == pe ) - goto _test_eof739; -case 739: + goto _test_eof747; +case 747: switch( (*p) ) { - case 78: goto st740; - case 110: goto st740; + case 78: goto st748; + case 110: goto st748; } - goto tr1493; -st740: + goto tr1510; +st748: if ( ++p == pe ) - goto _test_eof740; -case 740: + goto _test_eof748; +case 748: switch( (*p) ) { - case 69: goto st741; - case 101: goto st741; + case 69: goto st749; + case 101: goto st749; } - goto tr1493; -st741: + goto tr1510; +st749: if ( ++p == pe ) - goto _test_eof741; -case 741: + goto _test_eof749; +case 749: switch( (*p) ) { - case 77: goto st742; - case 109: goto st742; + case 77: goto st750; + case 109: goto st750; } - goto tr1493; -st742: + goto tr1510; +st750: if ( ++p == pe ) - goto _test_eof742; -case 742: + goto _test_eof750; +case 750: switch( (*p) ) { - case 68: goto st743; - case 100: goto st743; + case 68: goto st751; + case 100: goto st751; } - goto tr1493; -st743: + goto tr1510; +st751: if ( ++p == pe ) - goto _test_eof743; -case 743: + goto _test_eof751; +case 751: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60413,49 +61260,49 @@ case 743: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2077; - case 32: goto tr2077; - case 40: goto tr2078; - case 41: goto tr2079; - case 3082: goto tr2080; - case 3131: goto tr2081; - case 3338: goto tr2082; - case 3387: goto tr2082; - case 3594: goto tr2083; - case 3643: goto tr2084; - } - goto tr1493; -st744: + case 9: goto tr2095; + case 32: goto tr2095; + case 40: goto tr2096; + case 41: goto tr2097; + case 3082: goto tr2098; + case 3131: goto tr2099; + case 3338: goto tr2100; + case 3387: goto tr2100; + case 3594: goto tr2101; + case 3643: goto tr2102; + } + goto tr1510; +st752: if ( ++p == pe ) - goto _test_eof744; -case 744: + goto _test_eof752; +case 752: switch( (*p) ) { - case 83: goto st745; - case 115: goto st745; + case 83: goto st753; + case 115: goto st753; } - goto tr1493; -st745: + goto tr1510; +st753: if ( ++p == pe ) - goto _test_eof745; -case 745: + goto _test_eof753; +case 753: switch( (*p) ) { - case 68: goto st746; - case 100: goto st746; + case 68: goto st754; + case 100: goto st754; } - goto tr1493; -st746: + goto tr1510; +st754: if ( ++p == pe ) - goto _test_eof746; -case 746: + goto _test_eof754; +case 754: switch( (*p) ) { - case 66: goto st747; - case 98: goto st747; + case 66: goto st755; + case 98: goto st755; } - goto tr1493; -st747: + goto tr1510; +st755: if ( ++p == pe ) - goto _test_eof747; -case 747: + goto _test_eof755; +case 755: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60473,31 +61320,49 @@ case 747: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2088; - case 32: goto tr2088; - case 40: goto tr2089; - case 41: goto tr2090; - case 3082: goto tr2091; - case 3131: goto tr2092; - case 3338: goto tr2093; - case 3387: goto tr2093; - case 3594: goto tr2094; - case 3643: goto tr2095; + case 9: goto tr2106; + case 32: goto tr2106; + case 40: goto tr2107; + case 41: goto tr2108; + case 3082: goto tr2109; + case 3131: goto tr2110; + case 3338: goto tr2111; + case 3387: goto tr2111; + case 3594: goto tr2112; + case 3643: goto tr2113; + } + goto tr1510; +st756: + if ( ++p == pe ) + goto _test_eof756; +case 756: + switch( (*p) ) { + case 73: goto st757; + case 105: goto st757; } - goto tr1493; -st748: + goto tr1510; +st757: if ( ++p == pe ) - goto _test_eof748; -case 748: + goto _test_eof757; +case 757: switch( (*p) ) { - case 76: goto st749; - case 108: goto st749; + case 65: goto st758; + case 97: goto st758; } - goto tr1493; -st749: + goto tr1510; +st758: if ( ++p == pe ) - goto _test_eof749; -case 749: + goto _test_eof758; +case 758: + switch( (*p) ) { + case 83: goto st759; + case 115: goto st759; + } + goto tr1510; +st759: + if ( ++p == pe ) + goto _test_eof759; +case 759: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60515,22 +61380,64 @@ case 749: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2097; - case 32: goto tr2097; - case 40: goto tr2098; - case 41: goto tr2099; - case 3082: goto tr2100; - case 3131: goto tr2101; - case 3338: goto tr2102; - case 3387: goto tr2102; - case 3594: goto tr2103; - case 3643: goto tr2104; + case 9: goto tr2117; + case 32: goto tr2117; + case 40: goto tr2118; + case 41: goto tr2119; + case 3082: goto tr2120; + case 3131: goto tr2121; + case 3338: goto tr2122; + case 3387: goto tr2122; + case 3594: goto tr2123; + case 3643: goto tr2124; + } + goto tr1510; +st760: + if ( ++p == pe ) + goto _test_eof760; +case 760: + switch( (*p) ) { + case 76: goto st761; + case 108: goto st761; } - goto tr1493; -st750: + goto tr1510; +st761: if ( ++p == pe ) - goto _test_eof750; -case 750: + goto _test_eof761; +case 761: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2126; + case 32: goto tr2126; + case 40: goto tr2127; + case 41: goto tr2128; + case 3082: goto tr2129; + case 3131: goto tr2130; + case 3338: goto tr2131; + case 3387: goto tr2131; + case 3594: goto tr2132; + case 3643: goto tr2133; + } + goto tr1510; +st762: + if ( ++p == pe ) + goto _test_eof762; +case 762: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60544,38 +61451,38 @@ case 750: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st751; - case 32: goto st751; - case 40: goto tr2107; - case 41: goto tr2108; - case 2058: goto tr2109; - case 2107: goto tr2110; - } - goto tr2105; -tr2107: + case 9: goto st763; + case 32: goto st763; + case 40: goto tr2136; + case 41: goto tr2137; + case 2058: goto tr2138; + case 2107: goto tr2139; + } + goto tr2134; +tr2136: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st751; -tr2108: + goto st763; +tr2137: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st751; -tr2109: + goto st763; +tr2138: { s->line_counter++; } - goto st751; -tr2140: + goto st763; +tr2169: { s->buffer[s->buffer_length++] = 0; @@ -60585,18 +61492,18 @@ tr2140: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 751; goto _out;} + {p++; cs = 763; goto _out;} } } } { s->line_counter++; } - goto st751; -st751: + goto st763; +st763: if ( ++p == pe ) - goto _test_eof751; -case 751: + goto _test_eof763; +case 763: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60610,17 +61517,17 @@ case 751: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st751; - case 32: goto st751; - case 40: goto tr2107; - case 41: goto tr2108; - case 2058: goto tr2109; - case 2107: goto tr2110; + case 9: goto st763; + case 32: goto st763; + case 40: goto tr2136; + case 41: goto tr2137; + case 2058: goto tr2138; + case 2107: goto tr2139; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2112; - goto tr2111; -tr2112: + goto tr2141; + goto tr2140; +tr2141: { s->number64 = 0; } @@ -60635,11 +61542,11 @@ tr2112: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st752; -tr2116: + goto st764; +tr2145: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -60651,14 +61558,14 @@ tr2116: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st752; -st752: + goto st764; +st764: if ( ++p == pe ) - goto _test_eof752; -case 752: + goto _test_eof764; +case 764: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60672,40 +61579,40 @@ case 752: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2113; - case 32: goto tr2113; - case 40: goto tr2114; - case 41: goto tr2115; - case 2058: goto tr2117; - case 2107: goto tr2118; + case 9: goto tr2142; + case 32: goto tr2142; + case 40: goto tr2143; + case 41: goto tr2144; + case 2058: goto tr2146; + case 2107: goto tr2147; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2116; - goto tr2111; -tr2121: + goto tr2145; + goto tr2140; +tr2150: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st753; -tr2122: + goto st765; +tr2151: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st753; -tr2124: + goto st765; +tr2153: { s->line_counter++; } - goto st753; -tr2138: + goto st765; +tr2167: { s->buffer[s->buffer_length++] = 0; @@ -60715,75 +61622,75 @@ tr2138: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 753; goto _out;} + {p++; cs = 765; goto _out;} } } } { s->line_counter++; } - goto st753; -tr2113: + goto st765; +tr2142: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st753; -tr2114: + goto st765; +tr2143: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st753; -tr2115: + goto st765; +tr2144: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st753; -tr2117: + goto st765; +tr2146: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st753; -st753: + goto st765; +st765: if ( ++p == pe ) - goto _test_eof753; -case 753: + goto _test_eof765; +case 765: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60797,69 +61704,69 @@ case 753: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st753; - case 32: goto st753; - case 40: goto tr2121; - case 41: goto tr2122; - case 2058: goto tr2124; - case 2107: goto tr2125; + case 9: goto st765; + case 32: goto st765; + case 40: goto tr2150; + case 41: goto tr2151; + case 2058: goto tr2153; + case 2107: goto tr2154; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2123; + goto tr2152; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2123; + goto tr2152; } else - goto tr2123; - goto tr2119; -tr2123: + goto tr2152; + goto tr2148; +tr2152: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st754; -st754: + goto st766; +st766: if ( ++p == pe ) - goto _test_eof754; -case 754: + goto _test_eof766; +case 766: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2126; + goto tr2155; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2126; + goto tr2155; } else - goto tr2126; - goto tr2119; -tr2128: + goto tr2155; + goto tr2148; +tr2157: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st755; -tr2129: + goto st767; +tr2158: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st755; -tr2130: + goto st767; +tr2159: { s->line_counter++; } - goto st755; -tr2136: + goto st767; +tr2165: { s->buffer[s->buffer_length++] = 0; @@ -60869,24 +61776,24 @@ tr2136: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 755; goto _out;} + {p++; cs = 767; goto _out;} } } } { s->line_counter++; } - goto st755; -tr2126: + goto st767; +tr2155: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st755; -st755: + goto st767; +st767: if ( ++p == pe ) - goto _test_eof755; -case 755: + goto _test_eof767; +case 767: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60904,42 +61811,42 @@ case 755: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st755; - case 32: goto st755; - case 40: goto tr2128; - case 41: goto tr2129; - case 3082: goto tr2130; - case 3131: goto tr2131; - case 3338: goto tr2132; - case 3387: goto tr2132; - case 3594: goto tr2133; - case 3643: goto tr2134; + case 9: goto st767; + case 32: goto st767; + case 40: goto tr2157; + case 41: goto tr2158; + case 3082: goto tr2159; + case 3131: goto tr2160; + case 3338: goto tr2161; + case 3387: goto tr2161; + case 3594: goto tr2162; + case 3643: goto tr2163; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2123; + goto tr2152; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2123; + goto tr2152; } else - goto tr2123; - goto tr2119; -tr2131: + goto tr2152; + goto tr2148; +tr2160: { s->buffer_length = 0; } - goto st756; -tr2135: + goto st768; +tr2164: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st756; -st756: + goto st768; +st768: if ( ++p == pe ) - goto _test_eof756; -case 756: + goto _test_eof768; +case 768: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -60959,44 +61866,44 @@ case 756: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2136; + goto tr2165; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2135; - goto tr2119; -tr2132: + goto tr2164; + goto tr2148; +tr2161: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1518; -st1518: + goto st1530; +st1530: if ( ++p == pe ) - goto _test_eof1518; -case 1518: + goto _test_eof1530; +case 1530: goto st0; -tr2133: +tr2162: { s->line_counter++; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1519; -st1519: + goto st1531; +st1531: if ( ++p == pe ) - goto _test_eof1519; -case 1519: + goto _test_eof1531; +case 1531: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61014,44 +61921,44 @@ case 1519: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st755; - case 32: goto st755; - case 40: goto tr2128; - case 41: goto tr2129; - case 3082: goto tr2130; - case 3131: goto tr2131; - case 3338: goto tr2132; - case 3387: goto tr2132; - case 3594: goto tr2133; - case 3643: goto tr2134; + case 9: goto st767; + case 32: goto st767; + case 40: goto tr2157; + case 41: goto tr2158; + case 3082: goto tr2159; + case 3131: goto tr2160; + case 3338: goto tr2161; + case 3387: goto tr2161; + case 3594: goto tr2162; + case 3643: goto tr2163; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2123; + goto tr2152; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2123; + goto tr2152; } else - goto tr2123; - goto tr2119; -tr2134: + goto tr2152; + goto tr2148; +tr2163: { s->buffer_length = 0; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1520; -st1520: + goto st1532; +st1532: if ( ++p == pe ) - goto _test_eof1520; -case 1520: + goto _test_eof1532; +case 1532: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -61071,39 +61978,39 @@ case 1520: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2136; + goto tr2165; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2135; - goto tr2119; -tr2125: + goto tr2164; + goto tr2148; +tr2154: { s->buffer_length = 0; } - goto st757; -tr2137: + goto st769; +tr2166: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st757; -tr2118: + goto st769; +tr2147: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st757; -st757: + goto st769; +st769: if ( ++p == pe ) - goto _test_eof757; -case 757: + goto _test_eof769; +case 769: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -61123,26 +62030,26 @@ case 757: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2138; + goto tr2167; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2137; - goto tr2105; -tr2110: + goto tr2166; + goto tr2134; +tr2139: { s->buffer_length = 0; } - goto st758; -tr2139: + goto st770; +tr2168: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st758; -st758: + goto st770; +st770: if ( ++p == pe ) - goto _test_eof758; -case 758: + goto _test_eof770; +case 770: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -61162,14 +62069,14 @@ case 758: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2140; + goto tr2169; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2139; - goto tr2105; -st759: + goto tr2168; + goto tr2134; +st771: if ( ++p == pe ) - goto _test_eof759; -case 759: + goto _test_eof771; +case 771: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61183,38 +62090,38 @@ case 759: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st760; - case 32: goto st760; - case 40: goto tr2142; - case 41: goto tr2143; - case 2058: goto tr2144; - case 2107: goto tr2145; - } - goto tr2105; -tr2142: + case 9: goto st772; + case 32: goto st772; + case 40: goto tr2171; + case 41: goto tr2172; + case 2058: goto tr2173; + case 2107: goto tr2174; + } + goto tr2134; +tr2171: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st760; -tr2143: + goto st772; +tr2172: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st760; -tr2144: + goto st772; +tr2173: { s->line_counter++; } - goto st760; -tr2180: + goto st772; +tr2209: { s->buffer[s->buffer_length++] = 0; @@ -61224,18 +62131,18 @@ tr2180: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 760; goto _out;} + {p++; cs = 772; goto _out;} } } } { s->line_counter++; } - goto st760; -st760: + goto st772; +st772: if ( ++p == pe ) - goto _test_eof760; -case 760: + goto _test_eof772; +case 772: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61249,18 +62156,18 @@ case 760: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st760; - case 32: goto st760; - case 40: goto tr2142; - case 41: goto tr2143; - case 48: goto tr2146; - case 2058: goto tr2144; - case 2107: goto tr2145; + case 9: goto st772; + case 32: goto st772; + case 40: goto tr2171; + case 41: goto tr2172; + case 48: goto tr2175; + case 2058: goto tr2173; + case 2107: goto tr2174; } if ( 49 <= _widec && _widec <= 57 ) - goto tr2147; - goto tr2111; -tr2146: + goto tr2176; + goto tr2140; +tr2175: { s->number64 = 0; } @@ -61275,14 +62182,14 @@ tr2146: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st761; -st761: + goto st773; +st773: if ( ++p == pe ) - goto _test_eof761; -case 761: + goto _test_eof773; +case 773: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61296,19 +62203,19 @@ case 761: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2148; - case 32: goto tr2148; - case 40: goto tr2149; - case 41: goto tr2150; - case 1802: goto tr2152; - case 1851: goto tr2152; - case 2058: goto tr2153; - case 2107: goto tr2154; + case 9: goto tr2177; + case 32: goto tr2177; + case 40: goto tr2178; + case 41: goto tr2179; + case 1802: goto tr2181; + case 1851: goto tr2181; + case 2058: goto tr2182; + case 2107: goto tr2183; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2151; - goto tr2111; -tr2148: + goto tr2180; + goto tr2140; +tr2177: { p--; {cs = stack[--top];goto _again;} } @@ -61317,11 +62224,11 @@ tr2148: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1521; -tr2149: + goto st1533; +tr2178: { p--; {cs = stack[--top];goto _again;} } @@ -61330,18 +62237,18 @@ tr2149: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1521; -tr2150: + goto st1533; +tr2179: { p--; {cs = stack[--top];goto _again;} } @@ -61350,18 +62257,18 @@ tr2150: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1521; -tr2153: + goto st1533; +tr2182: { p--; {cs = stack[--top];goto _again;} } @@ -61370,17 +62277,17 @@ tr2153: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1521; -st1521: + goto st1533; +st1533: if ( ++p == pe ) - goto _test_eof1521; -case 1521: + goto _test_eof1533; +case 1533: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61394,46 +62301,46 @@ case 1521: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st762; - case 32: goto st762; - case 40: goto tr2156; - case 41: goto tr2157; - case 2058: goto tr2159; - case 2107: goto tr2160; + case 9: goto st774; + case 32: goto st774; + case 40: goto tr2185; + case 41: goto tr2186; + case 2058: goto tr2188; + case 2107: goto tr2189; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2158; + goto tr2187; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2158; + goto tr2187; } else - goto tr2158; - goto tr2119; -tr2156: + goto tr2187; + goto tr2148; +tr2185: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st762; -tr2157: + goto st774; +tr2186: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st762; -tr2159: + goto st774; +tr2188: { s->line_counter++; } - goto st762; -tr2173: + goto st774; +tr2202: { s->buffer[s->buffer_length++] = 0; @@ -61443,75 +62350,75 @@ tr2173: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 762; goto _out;} + {p++; cs = 774; goto _out;} } } } { s->line_counter++; } - goto st762; -tr2174: + goto st774; +tr2203: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st762; -tr2175: + goto st774; +tr2204: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st762; -tr2176: + goto st774; +tr2205: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st762; -tr2177: + goto st774; +tr2206: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st762; -st762: + goto st774; +st774: if ( ++p == pe ) - goto _test_eof762; -case 762: + goto _test_eof774; +case 774: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61525,69 +62432,69 @@ case 762: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st762; - case 32: goto st762; - case 40: goto tr2156; - case 41: goto tr2157; - case 2058: goto tr2159; - case 2107: goto tr2160; + case 9: goto st774; + case 32: goto st774; + case 40: goto tr2185; + case 41: goto tr2186; + case 2058: goto tr2188; + case 2107: goto tr2189; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2158; + goto tr2187; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2158; + goto tr2187; } else - goto tr2158; - goto tr2119; -tr2158: + goto tr2187; + goto tr2148; +tr2187: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st763; -st763: + goto st775; +st775: if ( ++p == pe ) - goto _test_eof763; -case 763: + goto _test_eof775; +case 775: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2161; + goto tr2190; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2161; + goto tr2190; } else - goto tr2161; - goto tr2119; -tr2163: + goto tr2190; + goto tr2148; +tr2192: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st764; -tr2164: + goto st776; +tr2193: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st764; -tr2165: + goto st776; +tr2194: { s->line_counter++; } - goto st764; -tr2171: + goto st776; +tr2200: { s->buffer[s->buffer_length++] = 0; @@ -61597,24 +62504,24 @@ tr2171: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 764; goto _out;} + {p++; cs = 776; goto _out;} } } } { s->line_counter++; } - goto st764; -tr2161: + goto st776; +tr2190: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st764; -st764: + goto st776; +st776: if ( ++p == pe ) - goto _test_eof764; -case 764: + goto _test_eof776; +case 776: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61632,42 +62539,42 @@ case 764: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st764; - case 32: goto st764; - case 40: goto tr2163; - case 41: goto tr2164; - case 3082: goto tr2165; - case 3131: goto tr2166; - case 3338: goto tr2167; - case 3387: goto tr2167; - case 3594: goto tr2168; - case 3643: goto tr2169; + case 9: goto st776; + case 32: goto st776; + case 40: goto tr2192; + case 41: goto tr2193; + case 3082: goto tr2194; + case 3131: goto tr2195; + case 3338: goto tr2196; + case 3387: goto tr2196; + case 3594: goto tr2197; + case 3643: goto tr2198; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2158; + goto tr2187; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2158; + goto tr2187; } else - goto tr2158; - goto tr2119; -tr2166: + goto tr2187; + goto tr2148; +tr2195: { s->buffer_length = 0; } - goto st765; -tr2170: + goto st777; +tr2199: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st765; -st765: + goto st777; +st777: if ( ++p == pe ) - goto _test_eof765; -case 765: + goto _test_eof777; +case 777: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -61687,49 +62594,49 @@ case 765: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2171; + goto tr2200; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2170; - goto tr2119; -tr2152: + goto tr2199; + goto tr2148; +tr2181: { p--; {cs = stack[--top];goto _again;} } - goto st1522; -tr2167: + goto st1534; +tr2196: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1522; -st1522: + goto st1534; +st1534: if ( ++p == pe ) - goto _test_eof1522; -case 1522: - goto tr2105; -tr2168: + goto _test_eof1534; +case 1534: + goto tr2134; +tr2197: { s->line_counter++; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1523; -st1523: + goto st1535; +st1535: if ( ++p == pe ) - goto _test_eof1523; -case 1523: + goto _test_eof1535; +case 1535: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61747,44 +62654,44 @@ case 1523: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st764; - case 32: goto st764; - case 40: goto tr2163; - case 41: goto tr2164; - case 3082: goto tr2165; - case 3131: goto tr2166; - case 3338: goto tr2167; - case 3387: goto tr2167; - case 3594: goto tr2168; - case 3643: goto tr2169; + case 9: goto st776; + case 32: goto st776; + case 40: goto tr2192; + case 41: goto tr2193; + case 3082: goto tr2194; + case 3131: goto tr2195; + case 3338: goto tr2196; + case 3387: goto tr2196; + case 3594: goto tr2197; + case 3643: goto tr2198; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2158; + goto tr2187; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2158; + goto tr2187; } else - goto tr2158; - goto tr2119; -tr2169: + goto tr2187; + goto tr2148; +tr2198: { s->buffer_length = 0; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1524; -st1524: + goto st1536; +st1536: if ( ++p == pe ) - goto _test_eof1524; -case 1524: + goto _test_eof1536; +case 1536: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -61804,39 +62711,39 @@ case 1524: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2171; + goto tr2200; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2170; - goto tr2119; -tr2160: + goto tr2199; + goto tr2148; +tr2189: { s->buffer_length = 0; } - goto st766; -tr2172: + goto st778; +tr2201: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st766; -tr2178: + goto st778; +tr2207: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st766; -st766: + goto st778; +st778: if ( ++p == pe ) - goto _test_eof766; -case 766: + goto _test_eof778; +case 778: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -61856,11 +62763,11 @@ case 766: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2173; + goto tr2202; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2172; - goto tr2105; -tr2147: + goto tr2201; + goto tr2134; +tr2176: { s->number64 = 0; } @@ -61875,11 +62782,11 @@ tr2147: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st767; -tr2151: + goto st779; +tr2180: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -61891,14 +62798,14 @@ tr2151: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st767; -st767: + goto st779; +st779: if ( ++p == pe ) - goto _test_eof767; -case 767: + goto _test_eof779; +case 779: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61912,17 +62819,17 @@ case 767: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2174; - case 32: goto tr2174; - case 40: goto tr2175; - case 41: goto tr2176; - case 2058: goto tr2177; - case 2107: goto tr2178; + case 9: goto tr2203; + case 32: goto tr2203; + case 40: goto tr2204; + case 41: goto tr2205; + case 2058: goto tr2206; + case 2107: goto tr2207; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2151; - goto tr2111; -tr2154: + goto tr2180; + goto tr2140; +tr2183: { p--; {cs = stack[--top];goto _again;} } @@ -61931,17 +62838,17 @@ tr2154: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1525; -st1525: + goto st1537; +st1537: if ( ++p == pe ) - goto _test_eof1525; -case 1525: + goto _test_eof1537; +case 1537: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -61961,26 +62868,26 @@ case 1525: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2173; + goto tr2202; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2172; - goto tr2105; -tr2145: + goto tr2201; + goto tr2134; +tr2174: { s->buffer_length = 0; } - goto st768; -tr2179: + goto st780; +tr2208: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st768; -st768: + goto st780; +st780: if ( ++p == pe ) - goto _test_eof768; -case 768: + goto _test_eof780; +case 780: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -62000,71 +62907,71 @@ case 768: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2180; + goto tr2209; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2179; - goto tr2105; -st769: + goto tr2208; + goto tr2134; +st781: if ( ++p == pe ) - goto _test_eof769; -case 769: + goto _test_eof781; +case 781: switch( (*p) ) { - case 97: goto tr2182; - case 100: goto tr2183; - case 101: goto tr2184; - case 105: goto tr2185; - case 107: goto tr2186; - case 110: goto tr2187; - case 111: goto tr2188; - case 112: goto tr2189; + case 97: goto tr2211; + case 100: goto tr2212; + case 101: goto tr2213; + case 105: goto tr2214; + case 107: goto tr2215; + case 110: goto tr2216; + case 111: goto tr2217; + case 112: goto tr2218; } - goto tr2181; -tr2182: + goto tr2210; +tr2211: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st770; -st770: + goto st782; +st782: if ( ++p == pe ) - goto _test_eof770; -case 770: + goto _test_eof782; +case 782: if ( (*p) == 108 ) - goto st771; - goto tr2181; -st771: + goto st783; + goto tr2210; +st783: if ( ++p == pe ) - goto _test_eof771; -case 771: + goto _test_eof783; +case 783: if ( (*p) == 112 ) - goto st772; - goto tr2181; -st772: + goto st784; + goto tr2210; +st784: if ( ++p == pe ) - goto _test_eof772; -case 772: + goto _test_eof784; +case 784: if ( (*p) == 110 ) - goto st773; - goto tr2181; -st773: + goto st785; + goto tr2210; +st785: if ( ++p == pe ) - goto _test_eof773; -case 773: + goto _test_eof785; +case 785: switch( (*p) ) { - case 32: goto tr2193; - case 34: goto tr2193; - case 44: goto tr2193; - case 59: goto tr2193; + case 32: goto tr2222; + case 34: goto tr2222; + case 44: goto tr2222; + case 59: goto tr2222; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2193; + goto tr2222; } else if ( (*p) >= 9 ) - goto tr2193; - goto tr2181; -tr2222: + goto tr2222; + goto tr2210; +tr2251: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -62072,14 +62979,14 @@ tr2222: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr2193: + goto st1538; +tr2222: { uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); @@ -62088,8 +62995,8 @@ tr2193: { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr2200: + goto st1538; +tr2229: { uint16_t val = htons(7); memcpy(rdata_tail, &val, 2); @@ -62098,8 +63005,8 @@ tr2200: { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr2203: + goto st1538; +tr2232: { uint16_t val = htons(5); memcpy(rdata_tail, &val, 2); @@ -62108,8 +63015,8 @@ tr2203: { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr2212: + goto st1538; +tr2241: { uint16_t val = htons(4); memcpy(rdata_tail, &val, 2); @@ -62118,8 +63025,8 @@ tr2212: { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr2217: + goto st1538; +tr2246: { uint16_t val = htons(6); memcpy(rdata_tail, &val, 2); @@ -62128,571 +63035,571 @@ tr2217: { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr2238: + goto st1538; +tr2267: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1526; -tr2243: - { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1526; -tr2247: - { - uint16_t val = htons(3); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1526; -st1526: - if ( ++p == pe ) - goto _test_eof1526; -case 1526: - goto st0; -tr2183: - { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} - } - } - goto st774; -st774: - if ( ++p == pe ) - goto _test_eof774; -case 774: - if ( (*p) == 111 ) - goto st775; - goto tr2181; -st775: - if ( ++p == pe ) - goto _test_eof775; -case 775: - if ( (*p) == 104 ) - goto st776; - goto tr2181; -st776: - if ( ++p == pe ) - goto _test_eof776; -case 776: - if ( (*p) == 112 ) - goto st777; - goto tr2181; -st777: - if ( ++p == pe ) - goto _test_eof777; -case 777: - if ( (*p) == 97 ) - goto st778; - goto tr2181; -st778: - if ( ++p == pe ) - goto _test_eof778; -case 778: - if ( (*p) == 116 ) - goto st779; - goto tr2181; -st779: - if ( ++p == pe ) - goto _test_eof779; -case 779: - if ( (*p) == 104 ) - goto st780; - goto tr2181; -st780: - if ( ++p == pe ) - goto _test_eof780; -case 780: - switch( (*p) ) { - case 32: goto tr2200; - case 34: goto tr2200; - case 44: goto tr2200; - case 59: goto tr2200; + { + p--; {cs = stack[--top];goto _again;} } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2200; - } else if ( (*p) >= 9 ) - goto tr2200; - goto tr2181; -tr2184: + goto st1538; +tr2272: { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} - } + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st781; -st781: - if ( ++p == pe ) - goto _test_eof781; -case 781: - if ( (*p) == 99 ) - goto st782; - goto tr2181; -st782: - if ( ++p == pe ) - goto _test_eof782; -case 782: - if ( (*p) == 104 ) - goto st783; - goto tr2181; -st783: - if ( ++p == pe ) - goto _test_eof783; -case 783: - switch( (*p) ) { - case 32: goto tr2203; - case 34: goto tr2203; - case 44: goto tr2203; - case 59: goto tr2203; + { + p--; {cs = stack[--top];goto _again;} } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2203; - } else if ( (*p) >= 9 ) - goto tr2203; - goto tr2181; -tr2185: + goto st1538; +tr2276: + { + uint16_t val = htons(3); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1538; +st1538: + if ( ++p == pe ) + goto _test_eof1538; +case 1538: + goto st0; +tr2212: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st784; -st784: - if ( ++p == pe ) - goto _test_eof784; -case 784: - if ( (*p) == 112 ) - goto st785; - goto tr2181; -st785: - if ( ++p == pe ) - goto _test_eof785; -case 785: - if ( (*p) == 118 ) - goto st786; - goto tr2181; + goto st786; st786: if ( ++p == pe ) goto _test_eof786; case 786: - switch( (*p) ) { - case 52: goto st787; - case 54: goto st792; - } - goto tr2181; + if ( (*p) == 111 ) + goto st787; + goto tr2210; st787: if ( ++p == pe ) goto _test_eof787; case 787: if ( (*p) == 104 ) goto st788; - goto tr2181; + goto tr2210; st788: if ( ++p == pe ) goto _test_eof788; case 788: - if ( (*p) == 105 ) + if ( (*p) == 112 ) goto st789; - goto tr2181; + goto tr2210; st789: if ( ++p == pe ) goto _test_eof789; case 789: - if ( (*p) == 110 ) + if ( (*p) == 97 ) goto st790; - goto tr2181; + goto tr2210; st790: if ( ++p == pe ) goto _test_eof790; case 790: if ( (*p) == 116 ) goto st791; - goto tr2181; + goto tr2210; st791: if ( ++p == pe ) goto _test_eof791; case 791: + if ( (*p) == 104 ) + goto st792; + goto tr2210; +st792: + if ( ++p == pe ) + goto _test_eof792; +case 792: switch( (*p) ) { - case 32: goto tr2212; - case 34: goto tr2212; - case 44: goto tr2212; - case 59: goto tr2212; + case 32: goto tr2229; + case 34: goto tr2229; + case 44: goto tr2229; + case 59: goto tr2229; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2212; + goto tr2229; } else if ( (*p) >= 9 ) - goto tr2212; - goto tr2181; -st792: - if ( ++p == pe ) - goto _test_eof792; -case 792: - if ( (*p) == 104 ) - goto st793; - goto tr2181; + goto tr2229; + goto tr2210; +tr2213: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st329;} + } + } + goto st793; st793: if ( ++p == pe ) goto _test_eof793; case 793: - if ( (*p) == 105 ) + if ( (*p) == 99 ) goto st794; - goto tr2181; + goto tr2210; st794: if ( ++p == pe ) goto _test_eof794; case 794: - if ( (*p) == 110 ) + if ( (*p) == 104 ) goto st795; - goto tr2181; + goto tr2210; st795: if ( ++p == pe ) goto _test_eof795; case 795: - if ( (*p) == 116 ) - goto st796; - goto tr2181; -st796: - if ( ++p == pe ) - goto _test_eof796; -case 796: switch( (*p) ) { - case 32: goto tr2217; - case 34: goto tr2217; - case 44: goto tr2217; - case 59: goto tr2217; + case 32: goto tr2232; + case 34: goto tr2232; + case 44: goto tr2232; + case 59: goto tr2232; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2217; + goto tr2232; } else if ( (*p) >= 9 ) - goto tr2217; - goto tr2181; -tr2186: + goto tr2232; + goto tr2210; +tr2214: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st797; + goto st796; +st796: + if ( ++p == pe ) + goto _test_eof796; +case 796: + if ( (*p) == 112 ) + goto st797; + goto tr2210; st797: if ( ++p == pe ) goto _test_eof797; case 797: - if ( (*p) == 101 ) + if ( (*p) == 118 ) goto st798; - goto tr2181; + goto tr2210; st798: if ( ++p == pe ) goto _test_eof798; case 798: - if ( (*p) == 121 ) - goto st799; - goto tr2181; + switch( (*p) ) { + case 52: goto st799; + case 54: goto st804; + } + goto tr2210; st799: if ( ++p == pe ) goto _test_eof799; case 799: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2221; - goto tr2220; -tr2221: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} - } - } - goto st800; -tr2223: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} - } - } - goto st800; + if ( (*p) == 104 ) + goto st800; + goto tr2210; st800: if ( ++p == pe ) goto _test_eof800; case 800: - switch( (*p) ) { - case 32: goto tr2222; - case 34: goto tr2222; - case 44: goto tr2222; - case 59: goto tr2222; - } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2222; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2223; - } else - goto tr2222; - goto tr2220; -tr2187: - { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} - } - } - goto st801; + if ( (*p) == 105 ) + goto st801; + goto tr2210; st801: if ( ++p == pe ) goto _test_eof801; case 801: - if ( (*p) == 111 ) + if ( (*p) == 110 ) goto st802; - goto tr2181; + goto tr2210; st802: if ( ++p == pe ) goto _test_eof802; case 802: - if ( (*p) == 45 ) + if ( (*p) == 116 ) goto st803; - goto tr2181; + goto tr2210; st803: if ( ++p == pe ) goto _test_eof803; case 803: - if ( (*p) == 100 ) - goto st804; - goto tr2181; + switch( (*p) ) { + case 32: goto tr2241; + case 34: goto tr2241; + case 44: goto tr2241; + case 59: goto tr2241; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2241; + } else if ( (*p) >= 9 ) + goto tr2241; + goto tr2210; st804: if ( ++p == pe ) goto _test_eof804; case 804: - if ( (*p) == 101 ) + if ( (*p) == 104 ) goto st805; - goto tr2181; + goto tr2210; st805: if ( ++p == pe ) goto _test_eof805; case 805: - if ( (*p) == 102 ) + if ( (*p) == 105 ) goto st806; - goto tr2181; + goto tr2210; st806: if ( ++p == pe ) goto _test_eof806; case 806: - if ( (*p) == 97 ) + if ( (*p) == 110 ) goto st807; - goto tr2181; + goto tr2210; st807: if ( ++p == pe ) goto _test_eof807; case 807: - if ( (*p) == 117 ) + if ( (*p) == 116 ) goto st808; - goto tr2181; + goto tr2210; st808: if ( ++p == pe ) goto _test_eof808; case 808: - if ( (*p) == 108 ) - goto st809; - goto tr2181; + switch( (*p) ) { + case 32: goto tr2246; + case 34: goto tr2246; + case 44: goto tr2246; + case 59: goto tr2246; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2246; + } else if ( (*p) >= 9 ) + goto tr2246; + goto tr2210; +tr2215: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st329;} + } + } + goto st809; st809: if ( ++p == pe ) goto _test_eof809; case 809: - if ( (*p) == 116 ) + if ( (*p) == 101 ) goto st810; - goto tr2181; + goto tr2210; st810: if ( ++p == pe ) goto _test_eof810; case 810: - if ( (*p) == 45 ) + if ( (*p) == 121 ) goto st811; - goto tr2181; + goto tr2210; st811: if ( ++p == pe ) goto _test_eof811; case 811: - if ( (*p) == 97 ) - goto st812; - goto tr2181; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2250; + goto tr2249; +tr2250: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st329;} + } + } + goto st812; +tr2252: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st329;} + } + } + goto st812; st812: if ( ++p == pe ) goto _test_eof812; case 812: - if ( (*p) == 108 ) - goto st813; - goto tr2181; + switch( (*p) ) { + case 32: goto tr2251; + case 34: goto tr2251; + case 44: goto tr2251; + case 59: goto tr2251; + } + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2251; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2252; + } else + goto tr2251; + goto tr2249; +tr2216: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st329;} + } + } + goto st813; st813: if ( ++p == pe ) goto _test_eof813; case 813: - if ( (*p) == 112 ) + if ( (*p) == 111 ) goto st814; - goto tr2181; + goto tr2210; st814: if ( ++p == pe ) goto _test_eof814; case 814: - if ( (*p) == 110 ) + if ( (*p) == 45 ) goto st815; - goto tr2181; + goto tr2210; st815: if ( ++p == pe ) goto _test_eof815; case 815: - switch( (*p) ) { - case 32: goto tr2238; - case 34: goto tr2238; - case 44: goto tr2238; - case 59: goto tr2238; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2238; - } else if ( (*p) >= 9 ) - goto tr2238; - goto tr2181; -tr2188: - { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} - } - } - goto st816; + if ( (*p) == 100 ) + goto st816; + goto tr2210; st816: if ( ++p == pe ) goto _test_eof816; case 816: - if ( (*p) == 104 ) + if ( (*p) == 101 ) goto st817; - goto tr2181; + goto tr2210; st817: if ( ++p == pe ) goto _test_eof817; case 817: - if ( (*p) == 116 ) + if ( (*p) == 102 ) goto st818; - goto tr2181; + goto tr2210; st818: if ( ++p == pe ) goto _test_eof818; case 818: - if ( (*p) == 116 ) + if ( (*p) == 97 ) goto st819; - goto tr2181; + goto tr2210; st819: if ( ++p == pe ) goto _test_eof819; case 819: - if ( (*p) == 112 ) + if ( (*p) == 117 ) goto st820; - goto tr2181; + goto tr2210; st820: if ( ++p == pe ) goto _test_eof820; case 820: - switch( (*p) ) { - case 32: goto tr2243; - case 34: goto tr2243; - case 44: goto tr2243; - case 59: goto tr2243; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2243; - } else if ( (*p) >= 9 ) - goto tr2243; - goto tr2181; -tr2189: - { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} - } - } - goto st821; + if ( (*p) == 108 ) + goto st821; + goto tr2210; st821: if ( ++p == pe ) goto _test_eof821; case 821: - if ( (*p) == 111 ) + if ( (*p) == 116 ) goto st822; - goto tr2181; + goto tr2210; st822: if ( ++p == pe ) goto _test_eof822; case 822: - if ( (*p) == 114 ) + if ( (*p) == 45 ) goto st823; - goto tr2181; + goto tr2210; st823: if ( ++p == pe ) goto _test_eof823; case 823: - if ( (*p) == 116 ) + if ( (*p) == 97 ) goto st824; - goto tr2181; + goto tr2210; st824: if ( ++p == pe ) goto _test_eof824; case 824: + if ( (*p) == 108 ) + goto st825; + goto tr2210; +st825: + if ( ++p == pe ) + goto _test_eof825; +case 825: + if ( (*p) == 112 ) + goto st826; + goto tr2210; +st826: + if ( ++p == pe ) + goto _test_eof826; +case 826: + if ( (*p) == 110 ) + goto st827; + goto tr2210; +st827: + if ( ++p == pe ) + goto _test_eof827; +case 827: switch( (*p) ) { - case 32: goto tr2247; - case 34: goto tr2247; - case 44: goto tr2247; - case 59: goto tr2247; + case 32: goto tr2267; + case 34: goto tr2267; + case 44: goto tr2267; + case 59: goto tr2267; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2247; + goto tr2267; } else if ( (*p) >= 9 ) - goto tr2247; - goto tr2181; -st825: + goto tr2267; + goto tr2210; +tr2217: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st329;} + } + } + goto st828; +st828: if ( ++p == pe ) - goto _test_eof825; -case 825: + goto _test_eof828; +case 828: + if ( (*p) == 104 ) + goto st829; + goto tr2210; +st829: + if ( ++p == pe ) + goto _test_eof829; +case 829: + if ( (*p) == 116 ) + goto st830; + goto tr2210; +st830: + if ( ++p == pe ) + goto _test_eof830; +case 830: + if ( (*p) == 116 ) + goto st831; + goto tr2210; +st831: + if ( ++p == pe ) + goto _test_eof831; +case 831: + if ( (*p) == 112 ) + goto st832; + goto tr2210; +st832: + if ( ++p == pe ) + goto _test_eof832; +case 832: + switch( (*p) ) { + case 32: goto tr2272; + case 34: goto tr2272; + case 44: goto tr2272; + case 59: goto tr2272; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2272; + } else if ( (*p) >= 9 ) + goto tr2272; + goto tr2210; +tr2218: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st329;} + } + } + goto st833; +st833: + if ( ++p == pe ) + goto _test_eof833; +case 833: + if ( (*p) == 111 ) + goto st834; + goto tr2210; +st834: + if ( ++p == pe ) + goto _test_eof834; +case 834: + if ( (*p) == 114 ) + goto st835; + goto tr2210; +st835: + if ( ++p == pe ) + goto _test_eof835; +case 835: + if ( (*p) == 116 ) + goto st836; + goto tr2210; +st836: + if ( ++p == pe ) + goto _test_eof836; +case 836: + switch( (*p) ) { + case 32: goto tr2276; + case 34: goto tr2276; + case 44: goto tr2276; + case 59: goto tr2276; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2276; + } else if ( (*p) >= 9 ) + goto tr2276; + goto tr2210; +st837: + if ( ++p == pe ) + goto _test_eof837; +case 837: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62710,42 +63617,42 @@ case 825: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2249; - case 32: goto tr2249; - case 40: goto tr2250; - case 41: goto tr2251; - case 3082: goto tr2252; - case 3131: goto tr2253; - case 3338: goto tr2254; - case 3387: goto tr2254; - case 3594: goto tr2255; - case 3643: goto tr2256; - } - goto tr2248; -tr2258: + case 9: goto tr2278; + case 32: goto tr2278; + case 40: goto tr2279; + case 41: goto tr2280; + case 3082: goto tr2281; + case 3131: goto tr2282; + case 3338: goto tr2283; + case 3387: goto tr2283; + case 3594: goto tr2284; + case 3643: goto tr2285; + } + goto tr2277; +tr2287: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2259: + goto st838; +tr2288: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2269: + goto st838; +tr2298: { s->line_counter++; } - goto st826; -tr2289: + goto st838; +tr2318: { s->buffer[s->buffer_length++] = 0; @@ -62755,21 +63662,21 @@ tr2289: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 826; goto _out;} + {p++; cs = 838; goto _out;} } } } { s->line_counter++; } - goto st826; -tr2249: + goto st838; +tr2278: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; } - goto st826; -tr2250: + goto st838; +tr2279: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -62777,12 +63684,12 @@ tr2250: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2251: + goto st838; +tr2280: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -62790,12 +63697,12 @@ tr2251: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2252: + goto st838; +tr2281: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -62803,26 +63710,26 @@ tr2252: { s->line_counter++; } - goto st826; -tr2280: + goto st838; +tr2309: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -62833,36 +63740,36 @@ tr2280: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } - goto st826; -tr2281: + goto st838; +tr2310: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -62873,43 +63780,43 @@ tr2281: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2282: + goto st838; +tr2311: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -62920,43 +63827,43 @@ tr2282: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2283: + goto st838; +tr2312: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -62967,21 +63874,21 @@ tr2283: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st826; -tr2299: + goto st838; +tr2328: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -62990,18 +63897,18 @@ tr2299: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } - goto st826; -tr2300: + goto st838; +tr2329: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63010,25 +63917,25 @@ tr2300: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2301: + goto st838; +tr2330: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63037,25 +63944,25 @@ tr2301: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2302: + goto st838; +tr2331: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63064,86 +63971,86 @@ tr2302: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st826; -tr2309: + goto st838; +tr2338: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } - goto st826; -tr2310: + goto st838; +tr2339: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2311: + goto st838; +tr2340: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2312: + goto st838; +tr2341: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st826; -tr2352: + goto st838; +tr2381: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -63156,30 +64063,30 @@ tr2352: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } - goto st826; -tr2353: + goto st838; +tr2382: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -63192,37 +64099,37 @@ tr2353: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2354: + goto st838; +tr2383: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -63235,37 +64142,37 @@ tr2354: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2357: + goto st838; +tr2386: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -63278,33 +64185,33 @@ tr2357: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st826; -tr2375: + goto st838; +tr2404: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -63317,30 +64224,30 @@ tr2375: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } - goto st826; -tr2376: + goto st838; +tr2405: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -63353,37 +64260,37 @@ tr2376: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2377: + goto st838; +tr2406: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -63396,37 +64303,37 @@ tr2377: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2380: + goto st838; +tr2409: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -63439,21 +64346,21 @@ tr2380: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st826; -tr2390: + goto st838; +tr2419: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63461,7 +64368,7 @@ tr2390: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -63473,11 +64380,11 @@ tr2390: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } - goto st826; -tr2391: + goto st838; +tr2420: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63485,7 +64392,7 @@ tr2391: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -63497,18 +64404,18 @@ tr2391: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2392: + goto st838; +tr2421: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63516,7 +64423,7 @@ tr2392: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -63528,18 +64435,18 @@ tr2392: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2395: + goto st838; +tr2424: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63547,7 +64454,7 @@ tr2395: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -63559,14 +64466,14 @@ tr2395: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st826; -tr2415: + goto st838; +tr2444: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63575,7 +64482,7 @@ tr2415: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -63585,11 +64492,11 @@ tr2415: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } - goto st826; -tr2416: + goto st838; +tr2445: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63598,7 +64505,7 @@ tr2416: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -63608,18 +64515,18 @@ tr2416: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2417: + goto st838; +tr2446: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63628,7 +64535,7 @@ tr2417: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -63638,18 +64545,18 @@ tr2417: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2419: + goto st838; +tr2448: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63658,7 +64565,7 @@ tr2419: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -63668,14 +64575,14 @@ tr2419: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st826; -tr2439: + goto st838; +tr2468: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -63690,11 +64597,11 @@ tr2439: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } - goto st826; -tr2440: + goto st838; +tr2469: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -63709,18 +64616,18 @@ tr2440: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2441: + goto st838; +tr2470: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -63735,18 +64642,18 @@ tr2441: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2442: + goto st838; +tr2471: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -63761,14 +64668,14 @@ tr2442: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st826; -tr2451: + goto st838; +tr2480: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -63783,11 +64690,11 @@ tr2451: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } - goto st826; -tr2452: + goto st838; +tr2481: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -63802,18 +64709,18 @@ tr2452: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2453: + goto st838; +tr2482: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -63828,18 +64735,18 @@ tr2453: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2454: + goto st838; +tr2483: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -63854,14 +64761,14 @@ tr2454: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st826; -tr2468: + goto st838; +tr2497: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63869,18 +64776,18 @@ tr2468: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } - goto st826; -tr2469: + goto st838; +tr2498: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63888,25 +64795,25 @@ tr2469: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st826; -tr2470: + goto st838; +tr2499: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63914,25 +64821,25 @@ tr2470: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st826; -tr2472: + goto st838; +tr2501: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -63940,24 +64847,24 @@ tr2472: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st826; -st826: + goto st838; +st838: if ( ++p == pe ) - goto _test_eof826; -case 826: + goto _test_eof838; +case 838: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -63975,87 +64882,87 @@ case 826: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st826; - case 32: goto st826; - case 40: goto tr2258; - case 41: goto tr2259; - case 97: goto tr2260; - case 100: goto tr2261; - case 101: goto tr2262; - case 105: goto tr2263; - case 107: goto tr2264; - case 109: goto tr2265; - case 110: goto tr2266; - case 111: goto tr2267; - case 112: goto tr2268; - case 3082: goto tr2269; - case 3131: goto tr2270; - case 3338: goto tr2271; - case 3387: goto tr2271; - case 3594: goto tr2272; - case 3643: goto tr2273; - } - goto tr2248; -tr2260: + case 9: goto st838; + case 32: goto st838; + case 40: goto tr2287; + case 41: goto tr2288; + case 97: goto tr2289; + case 100: goto tr2290; + case 101: goto tr2291; + case 105: goto tr2292; + case 107: goto tr2293; + case 109: goto tr2294; + case 110: goto tr2295; + case 111: goto tr2296; + case 112: goto tr2297; + case 3082: goto tr2298; + case 3131: goto tr2299; + case 3338: goto tr2300; + case 3387: goto tr2300; + case 3594: goto tr2301; + case 3643: goto tr2302; + } + goto tr2277; +tr2289: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->svcb.param_position = rdata_tail; } - goto st827; -st827: + goto st839; +st839: if ( ++p == pe ) - goto _test_eof827; -case 827: + goto _test_eof839; +case 839: if ( (*p) == 108 ) - goto st828; - goto tr2248; -st828: + goto st840; + goto tr2277; +st840: if ( ++p == pe ) - goto _test_eof828; -case 828: + goto _test_eof840; +case 840: if ( (*p) == 112 ) - goto st829; - goto tr2248; -st829: + goto st841; + goto tr2277; +st841: if ( ++p == pe ) - goto _test_eof829; -case 829: + goto _test_eof841; +case 841: if ( (*p) == 110 ) - goto st830; - goto tr2248; -st830: + goto st842; + goto tr2277; +st842: if ( ++p == pe ) - goto _test_eof830; -case 830: + goto _test_eof842; +case 842: if ( (*p) == 61 ) - goto tr2277; - goto tr2248; -tr2277: + goto tr2306; + goto tr2277; +tr2306: { uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st831; -st831: + goto st843; +st843: if ( ++p == pe ) - goto _test_eof831; -case 831: + goto _test_eof843; +case 843: switch( (*p) ) { - case 32: goto tr2248; - case 34: goto tr2279; - case 59: goto tr2248; + case 32: goto tr2277; + case 34: goto tr2308; + case 59: goto tr2277; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2248; + goto tr2277; } else if ( (*p) >= 9 ) - goto tr2248; - goto tr2278; -tr2278: + goto tr2277; + goto tr2307; +tr2307: { s->comma_list = true; s->pending_backslash = false; @@ -64066,7 +64973,7 @@ tr2278: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64074,15 +64981,15 @@ tr2278: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 832;goto st336;} } - goto st832; -st832: + { p--; {stack[top++] = 844;goto st340;} } + goto st844; +st844: if ( ++p == pe ) - goto _test_eof832; -case 832: + goto _test_eof844; +case 844: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -64100,31 +65007,31 @@ case 832: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2280; - case 32: goto tr2280; - case 40: goto tr2281; - case 41: goto tr2282; - case 3082: goto tr2283; - case 3131: goto tr2284; - case 3338: goto tr2285; - case 3387: goto tr2285; - case 3594: goto tr2286; - case 3643: goto tr2287; + case 9: goto tr2309; + case 32: goto tr2309; + case 40: goto tr2310; + case 41: goto tr2311; + case 3082: goto tr2312; + case 3131: goto tr2313; + case 3338: goto tr2314; + case 3387: goto tr2314; + case 3594: goto tr2315; + case 3643: goto tr2316; } - goto tr2248; -tr2270: + goto tr2277; +tr2299: { s->buffer_length = 0; } - goto st833; -tr2288: + goto st845; +tr2317: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st833; -tr2253: + goto st845; +tr2282: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -64132,26 +65039,26 @@ tr2253: { s->buffer_length = 0; } - goto st833; -tr2284: + goto st845; +tr2313: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64162,21 +65069,21 @@ tr2284: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st833; -tr2303: + goto st845; +tr2332: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -64185,45 +65092,45 @@ tr2303: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st833; -tr2313: + goto st845; +tr2342: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st833; -tr2358: + goto st845; +tr2387: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -64236,33 +65143,33 @@ tr2358: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st833; -tr2381: + goto st845; +tr2410: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -64275,21 +65182,21 @@ tr2381: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st833; -tr2396: + goto st845; +tr2425: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -64297,7 +65204,7 @@ tr2396: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64309,14 +65216,14 @@ tr2396: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st833; -tr2420: + goto st845; +tr2449: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -64325,7 +65232,7 @@ tr2420: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64335,14 +65242,14 @@ tr2420: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st833; -tr2443: + goto st845; +tr2472: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -64357,14 +65264,14 @@ tr2443: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st833; -tr2455: + goto st845; +tr2484: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -64379,14 +65286,14 @@ tr2455: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st833; -tr2473: + goto st845; +tr2502: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -64394,24 +65301,24 @@ tr2473: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st833; -st833: + goto st845; +st845: if ( ++p == pe ) - goto _test_eof833; -case 833: + goto _test_eof845; +case 845: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -64431,11 +65338,11 @@ case 833: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2289; + goto tr2318; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2288; - goto tr2248; -tr2254: + goto tr2317; + goto tr2277; +tr2283: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -64444,44 +65351,44 @@ tr2254: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2271: + goto st1539; +tr2300: { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2285: + goto st1539; +tr2314: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64492,28 +65399,28 @@ tr2285: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2304: + goto st1539; +tr2333: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -64522,59 +65429,59 @@ tr2304: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2314: + goto st1539; +tr2343: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2359: + goto st1539; +tr2388: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -64587,40 +65494,40 @@ tr2359: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2382: + goto st1539; +tr2411: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -64633,28 +65540,28 @@ tr2382: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2397: + goto st1539; +tr2426: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -64662,7 +65569,7 @@ tr2397: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64674,21 +65581,21 @@ tr2397: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2421: + goto st1539; +tr2450: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -64697,7 +65604,7 @@ tr2421: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64707,21 +65614,21 @@ tr2421: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2444: + goto st1539; +tr2473: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -64736,21 +65643,21 @@ tr2444: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2456: + goto st1539; +tr2485: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -64765,21 +65672,21 @@ tr2456: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2474: + goto st1539; +tr2503: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -64787,33 +65694,33 @@ tr2474: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1527; -st1527: + goto st1539; +st1539: if ( ++p == pe ) - goto _test_eof1527; -case 1527: + goto _test_eof1539; +case 1539: goto st0; -tr2255: +tr2284: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -64825,14 +65732,14 @@ tr2255: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2272: + goto st1540; +tr2301: { s->line_counter++; } @@ -64840,32 +65747,32 @@ tr2272: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2286: + goto st1540; +tr2315: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64876,14 +65783,14 @@ tr2286: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64893,14 +65800,14 @@ tr2286: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2305: + goto st1540; +tr2334: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -64909,14 +65816,14 @@ tr2305: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64926,19 +65833,19 @@ tr2305: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2315: + goto st1540; +tr2344: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64948,26 +65855,26 @@ tr2315: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2360: + goto st1540; +tr2389: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -64980,14 +65887,14 @@ tr2360: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -64997,26 +65904,26 @@ tr2360: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2383: + goto st1540; +tr2412: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -65029,14 +65936,14 @@ tr2383: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65046,14 +65953,14 @@ tr2383: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2398: + goto st1540; +tr2427: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -65061,7 +65968,7 @@ tr2398: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65073,7 +65980,7 @@ tr2398: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65083,14 +65990,14 @@ tr2398: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2422: + goto st1540; +tr2451: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65099,7 +66006,7 @@ tr2422: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65109,7 +66016,7 @@ tr2422: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65119,14 +66026,14 @@ tr2422: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2445: + goto st1540; +tr2474: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -65141,7 +66048,7 @@ tr2445: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65151,14 +66058,14 @@ tr2445: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2457: + goto st1540; +tr2486: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -65173,7 +66080,7 @@ tr2457: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65183,14 +66090,14 @@ tr2457: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2475: + goto st1540; +tr2504: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -65198,14 +66105,14 @@ tr2475: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65215,17 +66122,17 @@ tr2475: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1528; -st1528: + goto st1540; +st1540: if ( ++p == pe ) - goto _test_eof1528; -case 1528: + goto _test_eof1540; +case 1540: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65243,123 +66150,123 @@ case 1528: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st826; - case 32: goto st826; - case 40: goto tr2258; - case 41: goto tr2259; - case 97: goto tr2260; - case 100: goto tr2261; - case 101: goto tr2262; - case 105: goto tr2263; - case 107: goto tr2264; - case 109: goto tr2265; - case 110: goto tr2266; - case 111: goto tr2267; - case 112: goto tr2268; - case 3082: goto tr2269; - case 3131: goto tr2270; - case 3338: goto tr2271; - case 3387: goto tr2271; - case 3594: goto tr2272; - case 3643: goto tr2273; - } - goto tr2248; -tr2261: + case 9: goto st838; + case 32: goto st838; + case 40: goto tr2287; + case 41: goto tr2288; + case 97: goto tr2289; + case 100: goto tr2290; + case 101: goto tr2291; + case 105: goto tr2292; + case 107: goto tr2293; + case 109: goto tr2294; + case 110: goto tr2295; + case 111: goto tr2296; + case 112: goto tr2297; + case 3082: goto tr2298; + case 3131: goto tr2299; + case 3338: goto tr2300; + case 3387: goto tr2300; + case 3594: goto tr2301; + case 3643: goto tr2302; + } + goto tr2277; +tr2290: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->svcb.param_position = rdata_tail; } - goto st834; -st834: + goto st846; +st846: if ( ++p == pe ) - goto _test_eof834; -case 834: + goto _test_eof846; +case 846: if ( (*p) == 111 ) - goto st835; - goto tr2248; -st835: + goto st847; + goto tr2277; +st847: if ( ++p == pe ) - goto _test_eof835; -case 835: + goto _test_eof847; +case 847: if ( (*p) == 104 ) - goto st836; - goto tr2248; -st836: + goto st848; + goto tr2277; +st848: if ( ++p == pe ) - goto _test_eof836; -case 836: + goto _test_eof848; +case 848: if ( (*p) == 112 ) - goto st837; - goto tr2248; -st837: + goto st849; + goto tr2277; +st849: if ( ++p == pe ) - goto _test_eof837; -case 837: + goto _test_eof849; +case 849: if ( (*p) == 97 ) - goto st838; - goto tr2248; -st838: + goto st850; + goto tr2277; +st850: if ( ++p == pe ) - goto _test_eof838; -case 838: + goto _test_eof850; +case 850: if ( (*p) == 116 ) - goto st839; - goto tr2248; -st839: + goto st851; + goto tr2277; +st851: if ( ++p == pe ) - goto _test_eof839; -case 839: + goto _test_eof851; +case 851: if ( (*p) == 104 ) - goto st840; - goto tr2248; -st840: + goto st852; + goto tr2277; +st852: if ( ++p == pe ) - goto _test_eof840; -case 840: + goto _test_eof852; +case 852: if ( (*p) == 61 ) - goto tr2296; - goto tr2248; -tr2296: + goto tr2325; + goto tr2277; +tr2325: { uint16_t val = htons(7); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st841; -st841: + goto st853; +st853: if ( ++p == pe ) - goto _test_eof841; -case 841: + goto _test_eof853; +case 853: switch( (*p) ) { - case 32: goto tr2248; - case 34: goto tr2298; - case 59: goto tr2248; + case 32: goto tr2277; + case 34: goto tr2327; + case 59: goto tr2277; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2248; + goto tr2277; } else if ( (*p) >= 9 ) - goto tr2248; - goto tr2297; -tr2297: + goto tr2277; + goto tr2326; +tr2326: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 842;goto st336;} } - goto st842; -st842: + { p--; {stack[top++] = 854;goto st340;} } + goto st854; +st854: if ( ++p == pe ) - goto _test_eof842; -case 842: + goto _test_eof854; +case 854: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65377,19 +66284,19 @@ case 842: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2299; - case 32: goto tr2299; - case 40: goto tr2300; - case 41: goto tr2301; - case 3082: goto tr2302; - case 3131: goto tr2303; - case 3338: goto tr2304; - case 3387: goto tr2304; - case 3594: goto tr2305; - case 3643: goto tr2306; - } - goto tr2248; -tr2256: + case 9: goto tr2328; + case 32: goto tr2328; + case 40: goto tr2329; + case 41: goto tr2330; + case 3082: goto tr2331; + case 3131: goto tr2332; + case 3338: goto tr2333; + case 3387: goto tr2333; + case 3594: goto tr2334; + case 3643: goto tr2335; + } + goto tr2277; +tr2285: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -65401,14 +66308,14 @@ tr2256: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2273: + goto st1541; +tr2302: { s->buffer_length = 0; } @@ -65416,32 +66323,32 @@ tr2273: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2287: + goto st1541; +tr2316: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65452,14 +66359,14 @@ tr2287: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65469,14 +66376,14 @@ tr2287: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2306: + goto st1541; +tr2335: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65485,14 +66392,14 @@ tr2306: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65502,19 +66409,19 @@ tr2306: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2316: + goto st1541; +tr2345: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65524,26 +66431,26 @@ tr2316: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2361: + goto st1541; +tr2390: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -65556,14 +66463,14 @@ tr2361: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65573,26 +66480,26 @@ tr2361: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2384: + goto st1541; +tr2413: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -65605,14 +66512,14 @@ tr2384: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65622,14 +66529,14 @@ tr2384: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2399: + goto st1541; +tr2428: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -65637,7 +66544,7 @@ tr2399: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65649,7 +66556,7 @@ tr2399: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65659,14 +66566,14 @@ tr2399: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2423: + goto st1541; +tr2452: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65675,7 +66582,7 @@ tr2423: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65685,7 +66592,7 @@ tr2423: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65695,14 +66602,14 @@ tr2423: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2446: + goto st1541; +tr2475: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -65717,7 +66624,7 @@ tr2446: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65727,14 +66634,14 @@ tr2446: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2458: + goto st1541; +tr2487: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -65749,7 +66656,7 @@ tr2458: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65759,14 +66666,14 @@ tr2458: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2476: + goto st1541; +tr2505: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -65774,14 +66681,14 @@ tr2476: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -65791,17 +66698,17 @@ tr2476: int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1529; -st1529: + goto st1541; +st1541: if ( ++p == pe ) - goto _test_eof1529; -case 1529: + goto _test_eof1541; +case 1541: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -65821,26 +66728,26 @@ case 1529: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2289; + goto tr2318; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2288; - goto tr2248; -tr2298: + goto tr2317; + goto tr2277; +tr2327: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 843;goto st336;} } - goto st843; -st843: + { p--; {stack[top++] = 855;goto st340;} } + goto st855; +st855: if ( ++p == pe ) - goto _test_eof843; -case 843: + goto _test_eof855; +case 855: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65858,46 +66765,46 @@ case 843: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2299; - case 32: goto tr2299; - case 40: goto tr2300; - case 41: goto tr2301; - case 3082: goto tr2302; - case 3131: goto tr2303; - case 3338: goto tr2304; - case 3387: goto tr2304; - case 3594: goto tr2305; - case 3643: goto tr2306; + case 9: goto tr2328; + case 32: goto tr2328; + case 40: goto tr2329; + case 41: goto tr2330; + case 3082: goto tr2331; + case 3131: goto tr2332; + case 3338: goto tr2333; + case 3387: goto tr2333; + case 3594: goto tr2334; + case 3643: goto tr2335; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2307; + goto tr2336; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2307; + goto tr2336; } else - goto tr2307; - goto tr2248; -tr2307: + goto tr2336; + goto tr2277; +tr2336: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 844;goto st336;} } - goto st844; -st844: + { p--; {stack[top++] = 856;goto st340;} } + goto st856; +st856: if ( ++p == pe ) - goto _test_eof844; -case 844: + goto _test_eof856; +case 856: if ( (*p) == 34 ) - goto tr2308; - goto tr2248; -tr2308: + goto tr2337; + goto tr2277; +tr2337: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65906,23 +66813,23 @@ tr2308: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st845; -tr2348: + goto st857; +tr2377: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -65935,23 +66842,23 @@ tr2348: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st845; -tr2371: + goto st857; +tr2400: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -65964,11 +66871,11 @@ tr2371: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st845; -tr2466: + goto st857; +tr2495: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -65976,11 +66883,11 @@ tr2466: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st845; -tr2412: + goto st857; +tr2441: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65989,32 +66896,32 @@ tr2412: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } - goto st845; -tr2478: + goto st857; +tr2507: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -66025,14 +66932,14 @@ tr2478: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st845; -st845: + goto st857; +st857: if ( ++p == pe ) - goto _test_eof845; -case 845: + goto _test_eof857; +case 857: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66050,105 +66957,105 @@ case 845: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2309; - case 32: goto tr2309; - case 40: goto tr2310; - case 41: goto tr2311; - case 3082: goto tr2312; - case 3131: goto tr2313; - case 3338: goto tr2314; - case 3387: goto tr2314; - case 3594: goto tr2315; - case 3643: goto tr2316; - } - goto tr2248; -tr2262: + case 9: goto tr2338; + case 32: goto tr2338; + case 40: goto tr2339; + case 41: goto tr2340; + case 3082: goto tr2341; + case 3131: goto tr2342; + case 3338: goto tr2343; + case 3387: goto tr2343; + case 3594: goto tr2344; + case 3643: goto tr2345; + } + goto tr2277; +tr2291: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->svcb.param_position = rdata_tail; } - goto st846; -st846: + goto st858; +st858: if ( ++p == pe ) - goto _test_eof846; -case 846: + goto _test_eof858; +case 858: if ( (*p) == 99 ) - goto st847; - goto tr2248; -st847: + goto st859; + goto tr2277; +st859: if ( ++p == pe ) - goto _test_eof847; -case 847: + goto _test_eof859; +case 859: if ( (*p) == 104 ) - goto st848; - goto tr2248; -st848: + goto st860; + goto tr2277; +st860: if ( ++p == pe ) - goto _test_eof848; -case 848: + goto _test_eof860; +case 860: if ( (*p) == 61 ) - goto tr2319; - goto tr2248; -tr2319: + goto tr2348; + goto tr2277; +tr2348: { uint16_t val = htons(5); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st849; -st849: + goto st861; +st861: if ( ++p == pe ) - goto _test_eof849; -case 849: + goto _test_eof861; +case 861: switch( (*p) ) { - case 34: goto st850; - case 43: goto tr2321; + case 34: goto st862; + case 43: goto tr2350; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2321; + goto tr2350; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2321; + goto tr2350; } else - goto tr2321; - goto tr2248; -st850: + goto tr2350; + goto tr2277; +st862: if ( ++p == pe ) - goto _test_eof850; -case 850: + goto _test_eof862; +case 862: if ( (*p) == 43 ) - goto tr2322; + goto tr2351; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2322; + goto tr2351; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2322; + goto tr2351; } else - goto tr2322; - goto tr2248; -tr2328: + goto tr2351; + goto tr2277; +tr2357: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st851; -tr2322: + goto st863; +tr2351: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -66156,26 +67063,26 @@ tr2322: *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st851; -st851: + goto st863; +st863: if ( ++p == pe ) - goto _test_eof851; -case 851: + goto _test_eof863; +case 863: if ( (*p) == 43 ) - goto tr2323; + goto tr2352; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2323; + goto tr2352; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2323; + goto tr2352; } else - goto tr2323; - goto tr2248; -tr2323: + goto tr2352; + goto tr2277; +tr2352: { *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; @@ -66183,28 +67090,28 @@ tr2323: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st852; -st852: + goto st864; +st864: if ( ++p == pe ) - goto _test_eof852; -case 852: + goto _test_eof864; +case 864: switch( (*p) ) { - case 43: goto tr2324; - case 61: goto st855; + case 43: goto tr2353; + case 61: goto st867; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2324; + goto tr2353; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2324; + goto tr2353; } else - goto tr2324; - goto tr2248; -tr2324: + goto tr2353; + goto tr2277; +tr2353: { *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; @@ -66212,74 +67119,74 @@ tr2324: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st853; -st853: + goto st865; +st865: if ( ++p == pe ) - goto _test_eof853; -case 853: + goto _test_eof865; +case 865: switch( (*p) ) { - case 43: goto tr2326; - case 61: goto st854; + case 43: goto tr2355; + case 61: goto st866; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2326; + goto tr2355; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2326; + goto tr2355; } else - goto tr2326; - goto tr2248; -tr2326: + goto tr2355; + goto tr2277; +tr2355: { *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st854; -st854: + goto st866; +st866: if ( ++p == pe ) - goto _test_eof854; -case 854: + goto _test_eof866; +case 866: switch( (*p) ) { - case 34: goto tr2308; - case 43: goto tr2328; + case 34: goto tr2337; + case 43: goto tr2357; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2328; + goto tr2357; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2328; + goto tr2357; } else - goto tr2328; - goto tr2248; -st855: + goto tr2357; + goto tr2277; +st867: if ( ++p == pe ) - goto _test_eof855; -case 855: + goto _test_eof867; +case 867: if ( (*p) == 61 ) - goto st854; - goto tr2248; -tr2334: + goto st866; + goto tr2277; +tr2363: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st856; -tr2321: + goto st868; +tr2350: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -66287,26 +67194,26 @@ tr2321: *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st856; -st856: + goto st868; +st868: if ( ++p == pe ) - goto _test_eof856; -case 856: + goto _test_eof868; +case 868: if ( (*p) == 43 ) - goto tr2329; + goto tr2358; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2329; + goto tr2358; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2329; + goto tr2358; } else - goto tr2329; - goto tr2248; -tr2329: + goto tr2358; + goto tr2277; +tr2358: { *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; @@ -66314,28 +67221,28 @@ tr2329: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st857; -st857: + goto st869; +st869: if ( ++p == pe ) - goto _test_eof857; -case 857: + goto _test_eof869; +case 869: switch( (*p) ) { - case 43: goto tr2330; - case 61: goto st860; + case 43: goto tr2359; + case 61: goto st872; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2330; + goto tr2359; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2330; + goto tr2359; } else - goto tr2330; - goto tr2248; -tr2330: + goto tr2359; + goto tr2277; +tr2359: { *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; @@ -66343,36 +67250,36 @@ tr2330: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st858; -st858: + goto st870; +st870: if ( ++p == pe ) - goto _test_eof858; -case 858: + goto _test_eof870; +case 870: switch( (*p) ) { - case 43: goto tr2332; - case 61: goto st859; + case 43: goto tr2361; + case 61: goto st871; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2332; + goto tr2361; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2332; + goto tr2361; } else - goto tr2332; - goto tr2248; -tr2332: + goto tr2361; + goto tr2277; +tr2361: { *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st859; -st859: + goto st871; +st871: if ( ++p == pe ) - goto _test_eof859; -case 859: + goto _test_eof871; +case 871: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66390,136 +67297,136 @@ case 859: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2299; - case 32: goto tr2299; - case 40: goto tr2300; - case 41: goto tr2301; - case 43: goto tr2334; - case 3082: goto tr2302; - case 3131: goto tr2303; - case 3338: goto tr2304; - case 3387: goto tr2304; - case 3594: goto tr2305; - case 3643: goto tr2306; + case 9: goto tr2328; + case 32: goto tr2328; + case 40: goto tr2329; + case 41: goto tr2330; + case 43: goto tr2363; + case 3082: goto tr2331; + case 3131: goto tr2332; + case 3338: goto tr2333; + case 3387: goto tr2333; + case 3594: goto tr2334; + case 3643: goto tr2335; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr2334; + goto tr2363; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2334; + goto tr2363; } else - goto tr2334; - goto tr2248; -st860: + goto tr2363; + goto tr2277; +st872: if ( ++p == pe ) - goto _test_eof860; -case 860: + goto _test_eof872; +case 872: if ( (*p) == 61 ) - goto st859; - goto tr2248; -tr2263: + goto st871; + goto tr2277; +tr2292: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->svcb.param_position = rdata_tail; } - goto st861; -st861: + goto st873; +st873: if ( ++p == pe ) - goto _test_eof861; -case 861: + goto _test_eof873; +case 873: if ( (*p) == 112 ) - goto st862; - goto tr2248; -st862: + goto st874; + goto tr2277; +st874: if ( ++p == pe ) - goto _test_eof862; -case 862: + goto _test_eof874; +case 874: if ( (*p) == 118 ) - goto st863; - goto tr2248; -st863: + goto st875; + goto tr2277; +st875: if ( ++p == pe ) - goto _test_eof863; -case 863: + goto _test_eof875; +case 875: switch( (*p) ) { - case 52: goto st864; - case 54: goto st875; + case 52: goto st876; + case 54: goto st887; } - goto tr2248; -st864: + goto tr2277; +st876: if ( ++p == pe ) - goto _test_eof864; -case 864: + goto _test_eof876; +case 876: if ( (*p) == 104 ) - goto st865; - goto tr2248; -st865: + goto st877; + goto tr2277; +st877: if ( ++p == pe ) - goto _test_eof865; -case 865: + goto _test_eof877; +case 877: if ( (*p) == 105 ) - goto st866; - goto tr2248; -st866: + goto st878; + goto tr2277; +st878: if ( ++p == pe ) - goto _test_eof866; -case 866: + goto _test_eof878; +case 878: if ( (*p) == 110 ) - goto st867; - goto tr2248; -st867: + goto st879; + goto tr2277; +st879: if ( ++p == pe ) - goto _test_eof867; -case 867: + goto _test_eof879; +case 879: if ( (*p) == 116 ) - goto st868; - goto tr2248; -st868: + goto st880; + goto tr2277; +st880: if ( ++p == pe ) - goto _test_eof868; -case 868: + goto _test_eof880; +case 880: if ( (*p) == 61 ) - goto tr2343; - goto tr2248; -tr2343: + goto tr2372; + goto tr2277; +tr2372: { uint16_t val = htons(4); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st869; -st869: + goto st881; +st881: if ( ++p == pe ) - goto _test_eof869; -case 869: + goto _test_eof881; +case 881: switch( (*p) ) { - case 34: goto st870; - case 46: goto tr2346; + case 34: goto st882; + case 46: goto tr2375; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2346; - goto tr2344; -st870: + goto tr2375; + goto tr2373; +st882: if ( ++p == pe ) - goto _test_eof870; -case 870: + goto _test_eof882; +case 882: if ( (*p) == 46 ) - goto tr2347; + goto tr2376; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2347; - goto tr2344; -tr2347: + goto tr2376; + goto tr2373; +tr2376: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -66530,21 +67437,21 @@ tr2347: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st871; -tr2350: + goto st883; +tr2379: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st871; -tr2351: + goto st883; +tr2380: { s->buffer_length = 0; } @@ -66553,57 +67460,57 @@ tr2351: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st871; -st871: + goto st883; +st883: if ( ++p == pe ) - goto _test_eof871; -case 871: + goto _test_eof883; +case 883: switch( (*p) ) { - case 34: goto tr2348; - case 44: goto tr2349; - case 46: goto tr2350; + case 34: goto tr2377; + case 44: goto tr2378; + case 46: goto tr2379; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2350; - goto tr2344; -tr2349: + goto tr2379; + goto tr2373; +tr2378: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st872; -st872: + goto st884; +st884: if ( ++p == pe ) - goto _test_eof872; -case 872: + goto _test_eof884; +case 884: if ( (*p) == 46 ) - goto tr2351; + goto tr2380; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2351; - goto tr2344; -tr2346: + goto tr2380; + goto tr2373; +tr2375: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -66614,21 +67521,21 @@ tr2346: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st873; -tr2356: + goto st885; +tr2385: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st873; -tr2362: + goto st885; +tr2391: { s->buffer_length = 0; } @@ -66637,14 +67544,14 @@ tr2362: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st873; -st873: + goto st885; +st885: if ( ++p == pe ) - goto _test_eof873; -case 873: + goto _test_eof885; +case 885: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66662,131 +67569,131 @@ case 873: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2352; - case 32: goto tr2352; - case 40: goto tr2353; - case 41: goto tr2354; - case 44: goto tr2355; - case 46: goto tr2356; - case 3082: goto tr2357; - case 3131: goto tr2358; - case 3338: goto tr2359; - case 3387: goto tr2359; - case 3594: goto tr2360; - case 3643: goto tr2361; + case 9: goto tr2381; + case 32: goto tr2381; + case 40: goto tr2382; + case 41: goto tr2383; + case 44: goto tr2384; + case 46: goto tr2385; + case 3082: goto tr2386; + case 3131: goto tr2387; + case 3338: goto tr2388; + case 3387: goto tr2388; + case 3594: goto tr2389; + case 3643: goto tr2390; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2356; - goto tr2344; -tr2355: + goto tr2385; + goto tr2373; +tr2384: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st874; -st874: + goto st886; +st886: if ( ++p == pe ) - goto _test_eof874; -case 874: + goto _test_eof886; +case 886: if ( (*p) == 46 ) - goto tr2362; + goto tr2391; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2362; - goto tr2344; -st875: + goto tr2391; + goto tr2373; +st887: if ( ++p == pe ) - goto _test_eof875; -case 875: + goto _test_eof887; +case 887: if ( (*p) == 104 ) - goto st876; - goto tr2248; -st876: + goto st888; + goto tr2277; +st888: if ( ++p == pe ) - goto _test_eof876; -case 876: + goto _test_eof888; +case 888: if ( (*p) == 105 ) - goto st877; - goto tr2248; -st877: + goto st889; + goto tr2277; +st889: if ( ++p == pe ) - goto _test_eof877; -case 877: + goto _test_eof889; +case 889: if ( (*p) == 110 ) - goto st878; - goto tr2248; -st878: + goto st890; + goto tr2277; +st890: if ( ++p == pe ) - goto _test_eof878; -case 878: + goto _test_eof890; +case 890: if ( (*p) == 116 ) - goto st879; - goto tr2248; -st879: + goto st891; + goto tr2277; +st891: if ( ++p == pe ) - goto _test_eof879; -case 879: + goto _test_eof891; +case 891: if ( (*p) == 61 ) - goto tr2367; - goto tr2248; -tr2367: + goto tr2396; + goto tr2277; +tr2396: { uint16_t val = htons(6); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st880; -st880: + goto st892; +st892: if ( ++p == pe ) - goto _test_eof880; -case 880: + goto _test_eof892; +case 892: switch( (*p) ) { - case 34: goto st881; - case 46: goto tr2369; + case 34: goto st893; + case 46: goto tr2398; } if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2369; + goto tr2398; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2369; + goto tr2398; } else - goto tr2369; - goto tr2344; -st881: + goto tr2398; + goto tr2373; +st893: if ( ++p == pe ) - goto _test_eof881; -case 881: + goto _test_eof893; +case 893: if ( (*p) == 46 ) - goto tr2370; + goto tr2399; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2370; + goto tr2399; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2370; + goto tr2399; } else - goto tr2370; - goto tr2344; -tr2370: + goto tr2399; + goto tr2373; +tr2399: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -66797,21 +67704,21 @@ tr2370: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st882; -tr2373: + goto st894; +tr2402: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st882; -tr2374: + goto st894; +tr2403: { s->buffer_length = 0; } @@ -66820,69 +67727,69 @@ tr2374: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st882; -st882: + goto st894; +st894: if ( ++p == pe ) - goto _test_eof882; -case 882: + goto _test_eof894; +case 894: switch( (*p) ) { - case 34: goto tr2371; - case 44: goto tr2372; - case 46: goto tr2373; + case 34: goto tr2400; + case 44: goto tr2401; + case 46: goto tr2402; } if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2373; + goto tr2402; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2373; + goto tr2402; } else - goto tr2373; - goto tr2344; -tr2372: + goto tr2402; + goto tr2373; +tr2401: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st883; -st883: + goto st895; +st895: if ( ++p == pe ) - goto _test_eof883; -case 883: + goto _test_eof895; +case 895: if ( (*p) == 46 ) - goto tr2374; + goto tr2403; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2374; + goto tr2403; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2374; + goto tr2403; } else - goto tr2374; - goto tr2344; -tr2369: + goto tr2403; + goto tr2373; +tr2398: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -66893,21 +67800,21 @@ tr2369: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st884; -tr2379: + goto st896; +tr2408: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st884; -tr2385: + goto st896; +tr2414: { s->buffer_length = 0; } @@ -66916,14 +67823,14 @@ tr2385: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st884; -st884: + goto st896; +st896: if ( ++p == pe ) - goto _test_eof884; -case 884: + goto _test_eof896; +case 896: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66941,92 +67848,92 @@ case 884: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2375; - case 32: goto tr2375; - case 40: goto tr2376; - case 41: goto tr2377; - case 44: goto tr2378; - case 46: goto tr2379; - case 3082: goto tr2380; - case 3131: goto tr2381; - case 3338: goto tr2382; - case 3387: goto tr2382; - case 3594: goto tr2383; - case 3643: goto tr2384; + case 9: goto tr2404; + case 32: goto tr2404; + case 40: goto tr2405; + case 41: goto tr2406; + case 44: goto tr2407; + case 46: goto tr2408; + case 3082: goto tr2409; + case 3131: goto tr2410; + case 3338: goto tr2411; + case 3387: goto tr2411; + case 3594: goto tr2412; + case 3643: goto tr2413; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 58 ) - goto tr2379; + goto tr2408; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2379; + goto tr2408; } else - goto tr2379; - goto tr2344; -tr2378: + goto tr2408; + goto tr2373; +tr2407: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st885; -st885: + goto st897; +st897: if ( ++p == pe ) - goto _test_eof885; -case 885: + goto _test_eof897; +case 897: if ( (*p) == 46 ) - goto tr2385; + goto tr2414; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2385; + goto tr2414; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2385; + goto tr2414; } else - goto tr2385; - goto tr2344; -tr2264: + goto tr2414; + goto tr2373; +tr2293: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->svcb.param_position = rdata_tail; } - goto st886; -st886: + goto st898; +st898: if ( ++p == pe ) - goto _test_eof886; -case 886: + goto _test_eof898; +case 898: if ( (*p) == 101 ) - goto st887; - goto tr2248; -st887: + goto st899; + goto tr2277; +st899: if ( ++p == pe ) - goto _test_eof887; -case 887: + goto _test_eof899; +case 899: if ( (*p) == 121 ) - goto st888; - goto tr2248; -st888: + goto st900; + goto tr2277; +st900: if ( ++p == pe ) - goto _test_eof888; -case 888: + goto _test_eof900; +case 900: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2389; - goto tr2388; -tr2389: + goto tr2418; + goto tr2417; +tr2418: { s->number64 = 0; } @@ -67041,11 +67948,11 @@ tr2389: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st889; -tr2393: + goto st901; +tr2422: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -67057,14 +67964,14 @@ tr2393: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st889; -st889: + goto st901; +st901: if ( ++p == pe ) - goto _test_eof889; -case 889: + goto _test_eof901; +case 901: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67082,22 +67989,22 @@ case 889: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2390; - case 32: goto tr2390; - case 40: goto tr2391; - case 41: goto tr2392; - case 61: goto tr2394; - case 3082: goto tr2395; - case 3131: goto tr2396; - case 3338: goto tr2397; - case 3387: goto tr2397; - case 3594: goto tr2398; - case 3643: goto tr2399; + case 9: goto tr2419; + case 32: goto tr2419; + case 40: goto tr2420; + case 41: goto tr2421; + case 61: goto tr2423; + case 3082: goto tr2424; + case 3131: goto tr2425; + case 3338: goto tr2426; + case 3387: goto tr2426; + case 3594: goto tr2427; + case 3643: goto tr2428; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2393; - goto tr2388; -tr2394: + goto tr2422; + goto tr2417; +tr2423: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -67105,126 +68012,126 @@ tr2394: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st890; -st890: + goto st902; +st902: if ( ++p == pe ) - goto _test_eof890; -case 890: + goto _test_eof902; +case 902: switch( (*p) ) { - case 32: goto tr2248; - case 59: goto tr2248; + case 32: goto tr2277; + case 59: goto tr2277; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2248; + goto tr2277; } else if ( (*p) >= 9 ) - goto tr2248; - goto tr2297; -tr2265: + goto tr2277; + goto tr2326; +tr2294: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->svcb.param_position = rdata_tail; } - goto st891; -st891: + goto st903; +st903: if ( ++p == pe ) - goto _test_eof891; -case 891: + goto _test_eof903; +case 903: if ( (*p) == 97 ) - goto st892; - goto tr2248; -st892: + goto st904; + goto tr2277; +st904: if ( ++p == pe ) - goto _test_eof892; -case 892: + goto _test_eof904; +case 904: if ( (*p) == 110 ) - goto st893; - goto tr2248; -st893: + goto st905; + goto tr2277; +st905: if ( ++p == pe ) - goto _test_eof893; -case 893: + goto _test_eof905; +case 905: if ( (*p) == 100 ) - goto st894; - goto tr2248; -st894: + goto st906; + goto tr2277; +st906: if ( ++p == pe ) - goto _test_eof894; -case 894: + goto _test_eof906; +case 906: if ( (*p) == 97 ) - goto st895; - goto tr2248; -st895: + goto st907; + goto tr2277; +st907: if ( ++p == pe ) - goto _test_eof895; -case 895: + goto _test_eof907; +case 907: if ( (*p) == 116 ) - goto st896; - goto tr2248; -st896: + goto st908; + goto tr2277; +st908: if ( ++p == pe ) - goto _test_eof896; -case 896: + goto _test_eof908; +case 908: if ( (*p) == 111 ) - goto st897; - goto tr2248; -st897: + goto st909; + goto tr2277; +st909: if ( ++p == pe ) - goto _test_eof897; -case 897: + goto _test_eof909; +case 909: if ( (*p) == 114 ) - goto st898; - goto tr2248; -st898: + goto st910; + goto tr2277; +st910: if ( ++p == pe ) - goto _test_eof898; -case 898: + goto _test_eof910; +case 910: if ( (*p) == 121 ) - goto st899; - goto tr2248; -st899: + goto st911; + goto tr2277; +st911: if ( ++p == pe ) - goto _test_eof899; -case 899: + goto _test_eof911; +case 911: if ( (*p) == 61 ) - goto tr2408; - goto tr2248; -tr2408: + goto tr2437; + goto tr2277; +tr2437: { uint16_t val = htons(0); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st900; -st900: + goto st912; +st912: if ( ++p == pe ) - goto _test_eof900; -case 900: + goto _test_eof912; +case 912: if ( (*p) == 34 ) - goto st901; + goto st913; if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2410; + goto tr2439; } else if ( (*p) >= 65 ) - goto tr2410; - goto tr2248; -st901: + goto tr2439; + goto tr2277; +st913: if ( ++p == pe ) - goto _test_eof901; -case 901: + goto _test_eof913; +case 913: if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2411; + goto tr2440; } else if ( (*p) >= 65 ) - goto tr2411; - goto tr2248; -tr2411: + goto tr2440; + goto tr2277; +tr2440: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } @@ -67234,34 +68141,34 @@ tr2411: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 902;goto st769;} } - goto st902; -tr2414: - { p--; {stack[top++] = 902;goto st769;} } - goto st902; -st902: + { p--; {stack[top++] = 914;goto st781;} } + goto st914; +tr2443: + { p--; {stack[top++] = 914;goto st781;} } + goto st914; +st914: if ( ++p == pe ) - goto _test_eof902; -case 902: + goto _test_eof914; +case 914: switch( (*p) ) { - case 34: goto tr2412; - case 44: goto st903; + case 34: goto tr2441; + case 44: goto st915; } - goto tr2248; -st903: + goto tr2277; +st915: if ( ++p == pe ) - goto _test_eof903; -case 903: + goto _test_eof915; +case 915: if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2414; + goto tr2443; } else if ( (*p) >= 65 ) - goto tr2414; - goto tr2248; -tr2410: + goto tr2443; + goto tr2277; +tr2439: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } @@ -67271,18 +68178,18 @@ tr2410: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 904;goto st769;} } - goto st904; -tr2424: - { p--; {stack[top++] = 904;goto st769;} } - goto st904; -st904: + { p--; {stack[top++] = 916;goto st781;} } + goto st916; +tr2453: + { p--; {stack[top++] = 916;goto st781;} } + goto st916; +st916: if ( ++p == pe ) - goto _test_eof904; -case 904: + goto _test_eof916; +case 916: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67300,140 +68207,140 @@ case 904: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2415; - case 32: goto tr2415; - case 40: goto tr2416; - case 41: goto tr2417; - case 44: goto st905; - case 3082: goto tr2419; - case 3131: goto tr2420; - case 3338: goto tr2421; - case 3387: goto tr2421; - case 3594: goto tr2422; - case 3643: goto tr2423; - } - goto tr2248; -st905: + case 9: goto tr2444; + case 32: goto tr2444; + case 40: goto tr2445; + case 41: goto tr2446; + case 44: goto st917; + case 3082: goto tr2448; + case 3131: goto tr2449; + case 3338: goto tr2450; + case 3387: goto tr2450; + case 3594: goto tr2451; + case 3643: goto tr2452; + } + goto tr2277; +st917: if ( ++p == pe ) - goto _test_eof905; -case 905: + goto _test_eof917; +case 917: if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2424; + goto tr2453; } else if ( (*p) >= 65 ) - goto tr2424; - goto tr2248; -tr2266: + goto tr2453; + goto tr2277; +tr2295: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->svcb.param_position = rdata_tail; } - goto st906; -st906: + goto st918; +st918: if ( ++p == pe ) - goto _test_eof906; -case 906: + goto _test_eof918; +case 918: if ( (*p) == 111 ) - goto st907; - goto tr2248; -st907: + goto st919; + goto tr2277; +st919: if ( ++p == pe ) - goto _test_eof907; -case 907: + goto _test_eof919; +case 919: if ( (*p) == 45 ) - goto st908; - goto tr2248; -st908: + goto st920; + goto tr2277; +st920: if ( ++p == pe ) - goto _test_eof908; -case 908: + goto _test_eof920; +case 920: if ( (*p) == 100 ) - goto st909; - goto tr2248; -st909: + goto st921; + goto tr2277; +st921: if ( ++p == pe ) - goto _test_eof909; -case 909: + goto _test_eof921; +case 921: if ( (*p) == 101 ) - goto st910; - goto tr2248; -st910: + goto st922; + goto tr2277; +st922: if ( ++p == pe ) - goto _test_eof910; -case 910: + goto _test_eof922; +case 922: if ( (*p) == 102 ) - goto st911; - goto tr2248; -st911: + goto st923; + goto tr2277; +st923: if ( ++p == pe ) - goto _test_eof911; -case 911: + goto _test_eof923; +case 923: if ( (*p) == 97 ) - goto st912; - goto tr2248; -st912: + goto st924; + goto tr2277; +st924: if ( ++p == pe ) - goto _test_eof912; -case 912: + goto _test_eof924; +case 924: if ( (*p) == 117 ) - goto st913; - goto tr2248; -st913: + goto st925; + goto tr2277; +st925: if ( ++p == pe ) - goto _test_eof913; -case 913: + goto _test_eof925; +case 925: if ( (*p) == 108 ) - goto st914; - goto tr2248; -st914: + goto st926; + goto tr2277; +st926: if ( ++p == pe ) - goto _test_eof914; -case 914: + goto _test_eof926; +case 926: if ( (*p) == 116 ) - goto st915; - goto tr2248; -st915: + goto st927; + goto tr2277; +st927: if ( ++p == pe ) - goto _test_eof915; -case 915: + goto _test_eof927; +case 927: if ( (*p) == 45 ) - goto st916; - goto tr2248; -st916: + goto st928; + goto tr2277; +st928: if ( ++p == pe ) - goto _test_eof916; -case 916: + goto _test_eof928; +case 928: if ( (*p) == 97 ) - goto st917; - goto tr2248; -st917: + goto st929; + goto tr2277; +st929: if ( ++p == pe ) - goto _test_eof917; -case 917: + goto _test_eof929; +case 929: if ( (*p) == 108 ) - goto st918; - goto tr2248; -st918: + goto st930; + goto tr2277; +st930: if ( ++p == pe ) - goto _test_eof918; -case 918: + goto _test_eof930; +case 930: if ( (*p) == 112 ) - goto st919; - goto tr2248; -st919: + goto st931; + goto tr2277; +st931: if ( ++p == pe ) - goto _test_eof919; -case 919: + goto _test_eof931; +case 931: if ( (*p) == 110 ) - goto st920; - goto tr2248; -st920: + goto st932; + goto tr2277; +st932: if ( ++p == pe ) - goto _test_eof920; -case 920: + goto _test_eof932; +case 932: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67451,59 +68358,59 @@ case 920: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2439; - case 32: goto tr2439; - case 40: goto tr2440; - case 41: goto tr2441; - case 3082: goto tr2442; - case 3131: goto tr2443; - case 3338: goto tr2444; - case 3387: goto tr2444; - case 3594: goto tr2445; - case 3643: goto tr2446; - } - goto tr2248; -tr2267: + case 9: goto tr2468; + case 32: goto tr2468; + case 40: goto tr2469; + case 41: goto tr2470; + case 3082: goto tr2471; + case 3131: goto tr2472; + case 3338: goto tr2473; + case 3387: goto tr2473; + case 3594: goto tr2474; + case 3643: goto tr2475; + } + goto tr2277; +tr2296: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->svcb.param_position = rdata_tail; } - goto st921; -st921: + goto st933; +st933: if ( ++p == pe ) - goto _test_eof921; -case 921: + goto _test_eof933; +case 933: if ( (*p) == 104 ) - goto st922; - goto tr2248; -st922: + goto st934; + goto tr2277; +st934: if ( ++p == pe ) - goto _test_eof922; -case 922: + goto _test_eof934; +case 934: if ( (*p) == 116 ) - goto st923; - goto tr2248; -st923: + goto st935; + goto tr2277; +st935: if ( ++p == pe ) - goto _test_eof923; -case 923: + goto _test_eof935; +case 935: if ( (*p) == 116 ) - goto st924; - goto tr2248; -st924: + goto st936; + goto tr2277; +st936: if ( ++p == pe ) - goto _test_eof924; -case 924: + goto _test_eof936; +case 936: if ( (*p) == 112 ) - goto st925; - goto tr2248; -st925: + goto st937; + goto tr2277; +st937: if ( ++p == pe ) - goto _test_eof925; -case 925: + goto _test_eof937; +case 937: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67521,79 +68428,79 @@ case 925: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2451; - case 32: goto tr2451; - case 40: goto tr2452; - case 41: goto tr2453; - case 3082: goto tr2454; - case 3131: goto tr2455; - case 3338: goto tr2456; - case 3387: goto tr2456; - case 3594: goto tr2457; - case 3643: goto tr2458; - } - goto tr2248; -tr2268: + case 9: goto tr2480; + case 32: goto tr2480; + case 40: goto tr2481; + case 41: goto tr2482; + case 3082: goto tr2483; + case 3131: goto tr2484; + case 3338: goto tr2485; + case 3387: goto tr2485; + case 3594: goto tr2486; + case 3643: goto tr2487; + } + goto tr2277; +tr2297: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } s->svcb.param_position = rdata_tail; } - goto st926; -st926: + goto st938; +st938: if ( ++p == pe ) - goto _test_eof926; -case 926: + goto _test_eof938; +case 938: if ( (*p) == 111 ) - goto st927; - goto tr2248; -st927: + goto st939; + goto tr2277; +st939: if ( ++p == pe ) - goto _test_eof927; -case 927: + goto _test_eof939; +case 939: if ( (*p) == 114 ) - goto st928; - goto tr2248; -st928: + goto st940; + goto tr2277; +st940: if ( ++p == pe ) - goto _test_eof928; -case 928: + goto _test_eof940; +case 940: if ( (*p) == 116 ) - goto st929; - goto tr2248; -st929: + goto st941; + goto tr2277; +st941: if ( ++p == pe ) - goto _test_eof929; -case 929: + goto _test_eof941; +case 941: if ( (*p) == 61 ) - goto tr2462; - goto tr2248; -tr2462: + goto tr2491; + goto tr2277; +tr2491: { uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st930; -st930: + goto st942; +st942: if ( ++p == pe ) - goto _test_eof930; -case 930: + goto _test_eof942; +case 942: if ( (*p) == 34 ) - goto st931; + goto st943; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2464; - goto tr2388; -st931: + goto tr2493; + goto tr2417; +st943: if ( ++p == pe ) - goto _test_eof931; -case 931: + goto _test_eof943; +case 943: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2465; - goto tr2388; -tr2467: + goto tr2494; + goto tr2417; +tr2496: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -67605,11 +68512,11 @@ tr2467: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st932; -tr2465: + goto st944; +tr2494: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -67618,7 +68525,7 @@ tr2465: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -67635,20 +68542,20 @@ tr2465: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st932; -st932: + goto st944; +st944: if ( ++p == pe ) - goto _test_eof932; -case 932: + goto _test_eof944; +case 944: if ( (*p) == 34 ) - goto tr2466; + goto tr2495; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2467; - goto tr2388; -tr2471: + goto tr2496; + goto tr2417; +tr2500: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -67660,11 +68567,11 @@ tr2471: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st933; -tr2464: + goto st945; +tr2493: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -67673,7 +68580,7 @@ tr2464: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -67690,14 +68597,14 @@ tr2464: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st933; -st933: + goto st945; +st945: if ( ++p == pe ) - goto _test_eof933; -case 933: + goto _test_eof945; +case 945: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67715,21 +68622,21 @@ case 933: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2468; - case 32: goto tr2468; - case 40: goto tr2469; - case 41: goto tr2470; - case 3082: goto tr2472; - case 3131: goto tr2473; - case 3338: goto tr2474; - case 3387: goto tr2474; - case 3594: goto tr2475; - case 3643: goto tr2476; + case 9: goto tr2497; + case 32: goto tr2497; + case 40: goto tr2498; + case 41: goto tr2499; + case 3082: goto tr2501; + case 3131: goto tr2502; + case 3338: goto tr2503; + case 3387: goto tr2503; + case 3594: goto tr2504; + case 3643: goto tr2505; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2471; - goto tr2388; -tr2279: + goto tr2500; + goto tr2417; +tr2308: { s->comma_list = true; s->pending_backslash = false; @@ -67740,7 +68647,7 @@ tr2279: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -67748,15 +68655,15 @@ tr2279: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 934;goto st336;} } - goto st934; -st934: + { p--; {stack[top++] = 946;goto st340;} } + goto st946; +st946: if ( ++p == pe ) - goto _test_eof934; -case 934: + goto _test_eof946; +case 946: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67774,27 +68681,27 @@ case 934: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2280; - case 32: goto tr2280; - case 40: goto tr2281; - case 41: goto tr2282; - case 3082: goto tr2283; - case 3131: goto tr2284; - case 3338: goto tr2285; - case 3387: goto tr2285; - case 3594: goto tr2286; - case 3643: goto tr2287; + case 9: goto tr2309; + case 32: goto tr2309; + case 40: goto tr2310; + case 41: goto tr2311; + case 3082: goto tr2312; + case 3131: goto tr2313; + case 3338: goto tr2314; + case 3387: goto tr2314; + case 3594: goto tr2315; + case 3643: goto tr2316; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2477; + goto tr2506; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2477; + goto tr2506; } else - goto tr2477; - goto tr2248; -tr2477: + goto tr2506; + goto tr2277; +tr2506: { s->comma_list = true; s->pending_backslash = false; @@ -67805,7 +68712,7 @@ tr2477: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -67813,38 +68720,38 @@ tr2477: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 935;goto st336;} } - goto st935; -st935: + { p--; {stack[top++] = 947;goto st340;} } + goto st947; +st947: if ( ++p == pe ) - goto _test_eof935; -case 935: + goto _test_eof947; +case 947: if ( (*p) == 34 ) - goto tr2478; - goto tr2248; -st936: + goto tr2507; + goto tr2277; +st948: if ( ++p == pe ) - goto _test_eof936; -case 936: + goto _test_eof948; +case 948: switch( (*p) ) { - case 68: goto st938; - case 69: goto st953; - case 73: goto st992; - case 80: goto st1000; - case 82: goto st1013; - case 100: goto st938; - case 101: goto st953; - case 105: goto st992; - case 112: goto st1000; - case 114: goto st1013; + case 68: goto st950; + case 69: goto st965; + case 73: goto st1004; + case 80: goto st1012; + case 82: goto st1025; + case 100: goto st950; + case 101: goto st965; + case 105: goto st1004; + case 112: goto st1012; + case 114: goto st1025; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2480; - goto tr2479; -tr2480: + goto tr2509; + goto tr2508; +tr2509: { s->number64 = 0; } @@ -67859,11 +68766,11 @@ tr2480: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st937; -tr2487: + goto st949; +tr2516: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -67875,409 +68782,291 @@ tr2487: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st937; -st937: + goto st949; +st949: if ( ++p == pe ) - goto _test_eof937; -case 937: + goto _test_eof949; +case 949: switch( (*p) ) { - case 32: goto tr2486; - case 59: goto tr2486; + case 32: goto tr2515; + case 59: goto tr2515; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2486; + goto tr2515; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2487; + goto tr2516; } else - goto tr2486; - goto tr2479; -tr2486: + goto tr2515; + goto tr2508; +tr2515: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2490: + goto st1542; +tr2519: { *(rdata_tail++) = 2; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2492: + goto st1542; +tr2521: { *(rdata_tail++) = 3; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2504: + goto st1542; +tr2533: { *(rdata_tail++) = 6; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2514: + goto st1542; +tr2543: { *(rdata_tail++) = 12; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2528: + goto st1542; +tr2557: { *(rdata_tail++) = 13; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2537: + goto st1542; +tr2566: { *(rdata_tail++) = 14; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2544: + goto st1542; +tr2573: { *(rdata_tail++) = 15; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2547: + goto st1542; +tr2576: { *(rdata_tail++) = 16; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2555: + goto st1542; +tr2584: { *(rdata_tail++) = 252; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2566: + goto st1542; +tr2595: { *(rdata_tail++) = 253; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2569: + goto st1542; +tr2598: { *(rdata_tail++) = 254; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2576: + goto st1542; +tr2605: { *(rdata_tail++) = 1; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2582: + goto st1542; +tr2611: { *(rdata_tail++) = 5; } { p--; {cs = stack[--top];goto _again;} } - goto st1530; -tr2594: - { - *(rdata_tail++) = 7; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1530; -tr2597: - { - *(rdata_tail++) = 8; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1530; -tr2600: - { - *(rdata_tail++) = 10; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1530; -st1530: - if ( ++p == pe ) - goto _test_eof1530; -case 1530: - goto st0; -st938: - if ( ++p == pe ) - goto _test_eof938; -case 938: - switch( (*p) ) { - case 72: goto st939; - case 83: goto st940; - case 104: goto st939; - case 115: goto st940; - } - goto tr2479; -st939: - if ( ++p == pe ) - goto _test_eof939; -case 939: - switch( (*p) ) { - case 32: goto tr2490; - case 59: goto tr2490; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2490; - } else if ( (*p) >= 9 ) - goto tr2490; - goto tr2479; -st940: - if ( ++p == pe ) - goto _test_eof940; -case 940: - switch( (*p) ) { - case 65: goto st941; - case 97: goto st941; - } - goto tr2479; -st941: - if ( ++p == pe ) - goto _test_eof941; -case 941: - switch( (*p) ) { - case 32: goto tr2492; - case 45: goto st942; - case 59: goto tr2492; + goto st1542; +tr2623: + { + *(rdata_tail++) = 7; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2492; - } else if ( (*p) >= 9 ) - goto tr2492; - goto tr2479; -st942: - if ( ++p == pe ) - goto _test_eof942; -case 942: - switch( (*p) ) { - case 78: goto st943; - case 110: goto st943; + { + p--; {cs = stack[--top];goto _again;} } - goto tr2479; -st943: - if ( ++p == pe ) - goto _test_eof943; -case 943: - switch( (*p) ) { - case 83: goto st944; - case 115: goto st944; + goto st1542; +tr2626: + { + *(rdata_tail++) = 8; } - goto tr2479; -st944: - if ( ++p == pe ) - goto _test_eof944; -case 944: - switch( (*p) ) { - case 69: goto st945; - case 101: goto st945; + { + p--; {cs = stack[--top];goto _again;} } - goto tr2479; -st945: - if ( ++p == pe ) - goto _test_eof945; -case 945: - switch( (*p) ) { - case 67: goto st946; - case 99: goto st946; + goto st1542; +tr2629: + { + *(rdata_tail++) = 10; } - goto tr2479; -st946: - if ( ++p == pe ) - goto _test_eof946; -case 946: - if ( (*p) == 51 ) - goto st947; - goto tr2479; -st947: - if ( ++p == pe ) - goto _test_eof947; -case 947: - if ( (*p) == 45 ) - goto st948; - goto tr2479; -st948: - if ( ++p == pe ) - goto _test_eof948; -case 948: - switch( (*p) ) { - case 83: goto st949; - case 115: goto st949; + { + p--; {cs = stack[--top];goto _again;} } - goto tr2479; -st949: + goto st1542; +st1542: if ( ++p == pe ) - goto _test_eof949; -case 949: - switch( (*p) ) { - case 72: goto st950; - case 104: goto st950; - } - goto tr2479; + goto _test_eof1542; +case 1542: + goto st0; st950: if ( ++p == pe ) goto _test_eof950; case 950: switch( (*p) ) { - case 65: goto st951; - case 97: goto st951; + case 72: goto st951; + case 83: goto st952; + case 104: goto st951; + case 115: goto st952; } - goto tr2479; + goto tr2508; st951: if ( ++p == pe ) goto _test_eof951; case 951: - if ( (*p) == 49 ) - goto st952; - goto tr2479; + switch( (*p) ) { + case 32: goto tr2519; + case 59: goto tr2519; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2519; + } else if ( (*p) >= 9 ) + goto tr2519; + goto tr2508; st952: if ( ++p == pe ) goto _test_eof952; case 952: switch( (*p) ) { - case 32: goto tr2504; - case 59: goto tr2504; + case 65: goto st953; + case 97: goto st953; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2504; - } else if ( (*p) >= 9 ) - goto tr2504; - goto tr2479; + goto tr2508; st953: if ( ++p == pe ) goto _test_eof953; case 953: switch( (*p) ) { - case 67: goto st954; - case 68: goto st983; - case 99: goto st954; - case 100: goto st983; + case 32: goto tr2521; + case 45: goto st954; + case 59: goto tr2521; } - goto tr2479; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2521; + } else if ( (*p) >= 9 ) + goto tr2521; + goto tr2508; st954: if ( ++p == pe ) goto _test_eof954; case 954: switch( (*p) ) { - case 67: goto st955; - case 68: goto st961; - case 99: goto st955; - case 100: goto st961; + case 78: goto st955; + case 110: goto st955; } - goto tr2479; + goto tr2508; st955: if ( ++p == pe ) goto _test_eof955; case 955: - if ( (*p) == 45 ) - goto st956; - goto tr2479; + switch( (*p) ) { + case 83: goto st956; + case 115: goto st956; + } + goto tr2508; st956: if ( ++p == pe ) goto _test_eof956; case 956: switch( (*p) ) { - case 71: goto st957; - case 103: goto st957; + case 69: goto st957; + case 101: goto st957; } - goto tr2479; + goto tr2508; st957: if ( ++p == pe ) goto _test_eof957; case 957: switch( (*p) ) { - case 79: goto st958; - case 111: goto st958; + case 67: goto st958; + case 99: goto st958; } - goto tr2479; + goto tr2508; st958: if ( ++p == pe ) goto _test_eof958; case 958: - switch( (*p) ) { - case 83: goto st959; - case 115: goto st959; - } - goto tr2479; + if ( (*p) == 51 ) + goto st959; + goto tr2508; st959: if ( ++p == pe ) goto _test_eof959; case 959: - switch( (*p) ) { - case 84: goto st960; - case 116: goto st960; - } - goto tr2479; + if ( (*p) == 45 ) + goto st960; + goto tr2508; st960: if ( ++p == pe ) goto _test_eof960; case 960: switch( (*p) ) { - case 32: goto tr2514; - case 59: goto tr2514; + case 83: goto st961; + case 115: goto st961; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2514; - } else if ( (*p) >= 9 ) - goto tr2514; - goto tr2479; + goto tr2508; st961: if ( ++p == pe ) goto _test_eof961; case 961: switch( (*p) ) { - case 83: goto st962; - case 115: goto st962; + case 72: goto st962; + case 104: goto st962; } - goto tr2479; + goto tr2508; st962: if ( ++p == pe ) goto _test_eof962; @@ -68286,740 +69075,858 @@ case 962: case 65: goto st963; case 97: goto st963; } - goto tr2479; + goto tr2508; st963: if ( ++p == pe ) goto _test_eof963; case 963: - switch( (*p) ) { - case 80: goto st964; - case 112: goto st964; - } - goto tr2479; + if ( (*p) == 49 ) + goto st964; + goto tr2508; st964: if ( ++p == pe ) goto _test_eof964; case 964: switch( (*p) ) { - case 50: goto st965; - case 51: goto st974; + case 32: goto tr2533; + case 59: goto tr2533; } - goto tr2479; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2533; + } else if ( (*p) >= 9 ) + goto tr2533; + goto tr2508; st965: if ( ++p == pe ) goto _test_eof965; case 965: - if ( (*p) == 53 ) - goto st966; - goto tr2479; + switch( (*p) ) { + case 67: goto st966; + case 68: goto st995; + case 99: goto st966; + case 100: goto st995; + } + goto tr2508; st966: if ( ++p == pe ) goto _test_eof966; case 966: - if ( (*p) == 54 ) - goto st967; - goto tr2479; + switch( (*p) ) { + case 67: goto st967; + case 68: goto st973; + case 99: goto st967; + case 100: goto st973; + } + goto tr2508; st967: if ( ++p == pe ) goto _test_eof967; case 967: - switch( (*p) ) { - case 83: goto st968; - case 115: goto st968; - } - goto tr2479; + if ( (*p) == 45 ) + goto st968; + goto tr2508; st968: if ( ++p == pe ) goto _test_eof968; case 968: switch( (*p) ) { - case 72: goto st969; - case 104: goto st969; + case 71: goto st969; + case 103: goto st969; } - goto tr2479; + goto tr2508; st969: if ( ++p == pe ) goto _test_eof969; case 969: switch( (*p) ) { - case 65: goto st970; - case 97: goto st970; + case 79: goto st970; + case 111: goto st970; } - goto tr2479; + goto tr2508; st970: if ( ++p == pe ) goto _test_eof970; case 970: - if ( (*p) == 50 ) - goto st971; - goto tr2479; + switch( (*p) ) { + case 83: goto st971; + case 115: goto st971; + } + goto tr2508; st971: if ( ++p == pe ) goto _test_eof971; case 971: - if ( (*p) == 53 ) - goto st972; - goto tr2479; + switch( (*p) ) { + case 84: goto st972; + case 116: goto st972; + } + goto tr2508; st972: if ( ++p == pe ) goto _test_eof972; case 972: - if ( (*p) == 54 ) - goto st973; - goto tr2479; + switch( (*p) ) { + case 32: goto tr2543; + case 59: goto tr2543; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2543; + } else if ( (*p) >= 9 ) + goto tr2543; + goto tr2508; st973: if ( ++p == pe ) goto _test_eof973; case 973: switch( (*p) ) { - case 32: goto tr2528; - case 59: goto tr2528; + case 83: goto st974; + case 115: goto st974; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2528; - } else if ( (*p) >= 9 ) - goto tr2528; - goto tr2479; + goto tr2508; st974: if ( ++p == pe ) goto _test_eof974; case 974: - if ( (*p) == 56 ) - goto st975; - goto tr2479; + switch( (*p) ) { + case 65: goto st975; + case 97: goto st975; + } + goto tr2508; st975: if ( ++p == pe ) goto _test_eof975; case 975: - if ( (*p) == 52 ) - goto st976; - goto tr2479; + switch( (*p) ) { + case 80: goto st976; + case 112: goto st976; + } + goto tr2508; st976: if ( ++p == pe ) goto _test_eof976; case 976: switch( (*p) ) { - case 83: goto st977; - case 115: goto st977; + case 50: goto st977; + case 51: goto st986; } - goto tr2479; + goto tr2508; st977: if ( ++p == pe ) goto _test_eof977; case 977: - switch( (*p) ) { - case 72: goto st978; - case 104: goto st978; - } - goto tr2479; + if ( (*p) == 53 ) + goto st978; + goto tr2508; st978: if ( ++p == pe ) goto _test_eof978; case 978: - switch( (*p) ) { - case 65: goto st979; - case 97: goto st979; - } - goto tr2479; + if ( (*p) == 54 ) + goto st979; + goto tr2508; st979: if ( ++p == pe ) goto _test_eof979; case 979: - if ( (*p) == 51 ) - goto st980; - goto tr2479; + switch( (*p) ) { + case 83: goto st980; + case 115: goto st980; + } + goto tr2508; st980: if ( ++p == pe ) goto _test_eof980; case 980: - if ( (*p) == 56 ) - goto st981; - goto tr2479; + switch( (*p) ) { + case 72: goto st981; + case 104: goto st981; + } + goto tr2508; st981: if ( ++p == pe ) goto _test_eof981; case 981: - if ( (*p) == 52 ) - goto st982; - goto tr2479; + switch( (*p) ) { + case 65: goto st982; + case 97: goto st982; + } + goto tr2508; st982: if ( ++p == pe ) goto _test_eof982; case 982: - switch( (*p) ) { - case 32: goto tr2537; - case 59: goto tr2537; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2537; - } else if ( (*p) >= 9 ) - goto tr2537; - goto tr2479; + if ( (*p) == 50 ) + goto st983; + goto tr2508; st983: if ( ++p == pe ) goto _test_eof983; case 983: - switch( (*p) ) { - case 50: goto st984; - case 52: goto st989; - } - goto tr2479; + if ( (*p) == 53 ) + goto st984; + goto tr2508; st984: if ( ++p == pe ) goto _test_eof984; case 984: - if ( (*p) == 53 ) + if ( (*p) == 54 ) goto st985; - goto tr2479; + goto tr2508; st985: if ( ++p == pe ) goto _test_eof985; case 985: - if ( (*p) == 53 ) - goto st986; - goto tr2479; + switch( (*p) ) { + case 32: goto tr2557; + case 59: goto tr2557; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2557; + } else if ( (*p) >= 9 ) + goto tr2557; + goto tr2508; st986: if ( ++p == pe ) goto _test_eof986; case 986: - if ( (*p) == 49 ) + if ( (*p) == 56 ) goto st987; - goto tr2479; + goto tr2508; st987: if ( ++p == pe ) goto _test_eof987; case 987: - if ( (*p) == 57 ) + if ( (*p) == 52 ) goto st988; - goto tr2479; + goto tr2508; st988: if ( ++p == pe ) goto _test_eof988; case 988: switch( (*p) ) { - case 32: goto tr2544; - case 59: goto tr2544; + case 83: goto st989; + case 115: goto st989; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2544; - } else if ( (*p) >= 9 ) - goto tr2544; - goto tr2479; + goto tr2508; st989: if ( ++p == pe ) goto _test_eof989; case 989: - if ( (*p) == 52 ) - goto st990; - goto tr2479; + switch( (*p) ) { + case 72: goto st990; + case 104: goto st990; + } + goto tr2508; st990: if ( ++p == pe ) goto _test_eof990; case 990: - if ( (*p) == 56 ) - goto st991; - goto tr2479; + switch( (*p) ) { + case 65: goto st991; + case 97: goto st991; + } + goto tr2508; st991: if ( ++p == pe ) goto _test_eof991; case 991: - switch( (*p) ) { - case 32: goto tr2547; - case 59: goto tr2547; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2547; - } else if ( (*p) >= 9 ) - goto tr2547; - goto tr2479; + if ( (*p) == 51 ) + goto st992; + goto tr2508; st992: if ( ++p == pe ) goto _test_eof992; case 992: - switch( (*p) ) { - case 78: goto st993; - case 110: goto st993; - } - goto tr2479; + if ( (*p) == 56 ) + goto st993; + goto tr2508; st993: if ( ++p == pe ) goto _test_eof993; case 993: - switch( (*p) ) { - case 68: goto st994; - case 100: goto st994; - } - goto tr2479; + if ( (*p) == 52 ) + goto st994; + goto tr2508; st994: if ( ++p == pe ) goto _test_eof994; case 994: switch( (*p) ) { - case 73: goto st995; - case 105: goto st995; + case 32: goto tr2566; + case 59: goto tr2566; } - goto tr2479; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2566; + } else if ( (*p) >= 9 ) + goto tr2566; + goto tr2508; st995: if ( ++p == pe ) goto _test_eof995; case 995: switch( (*p) ) { - case 82: goto st996; - case 114: goto st996; + case 50: goto st996; + case 52: goto st1001; } - goto tr2479; + goto tr2508; st996: if ( ++p == pe ) goto _test_eof996; case 996: - switch( (*p) ) { - case 69: goto st997; - case 101: goto st997; - } - goto tr2479; + if ( (*p) == 53 ) + goto st997; + goto tr2508; st997: if ( ++p == pe ) goto _test_eof997; case 997: - switch( (*p) ) { - case 67: goto st998; - case 99: goto st998; - } - goto tr2479; + if ( (*p) == 53 ) + goto st998; + goto tr2508; st998: if ( ++p == pe ) goto _test_eof998; case 998: - switch( (*p) ) { - case 84: goto st999; - case 116: goto st999; - } - goto tr2479; + if ( (*p) == 49 ) + goto st999; + goto tr2508; st999: if ( ++p == pe ) goto _test_eof999; case 999: - switch( (*p) ) { - case 32: goto tr2555; - case 59: goto tr2555; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2555; - } else if ( (*p) >= 9 ) - goto tr2555; - goto tr2479; + if ( (*p) == 57 ) + goto st1000; + goto tr2508; st1000: if ( ++p == pe ) goto _test_eof1000; case 1000: switch( (*p) ) { - case 82: goto st1001; - case 114: goto st1001; + case 32: goto tr2573; + case 59: goto tr2573; } - goto tr2479; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2573; + } else if ( (*p) >= 9 ) + goto tr2573; + goto tr2508; st1001: if ( ++p == pe ) goto _test_eof1001; case 1001: - switch( (*p) ) { - case 73: goto st1002; - case 105: goto st1002; - } - goto tr2479; + if ( (*p) == 52 ) + goto st1002; + goto tr2508; st1002: if ( ++p == pe ) goto _test_eof1002; case 1002: - switch( (*p) ) { - case 86: goto st1003; - case 118: goto st1003; - } - goto tr2479; + if ( (*p) == 56 ) + goto st1003; + goto tr2508; st1003: if ( ++p == pe ) goto _test_eof1003; case 1003: switch( (*p) ) { - case 65: goto st1004; - case 97: goto st1004; + case 32: goto tr2576; + case 59: goto tr2576; } - goto tr2479; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2576; + } else if ( (*p) >= 9 ) + goto tr2576; + goto tr2508; st1004: if ( ++p == pe ) goto _test_eof1004; case 1004: switch( (*p) ) { - case 84: goto st1005; - case 116: goto st1005; + case 78: goto st1005; + case 110: goto st1005; } - goto tr2479; + goto tr2508; st1005: if ( ++p == pe ) goto _test_eof1005; case 1005: switch( (*p) ) { - case 69: goto st1006; - case 101: goto st1006; + case 68: goto st1006; + case 100: goto st1006; } - goto tr2479; + goto tr2508; st1006: if ( ++p == pe ) goto _test_eof1006; case 1006: switch( (*p) ) { - case 68: goto st1007; - case 79: goto st1010; - case 100: goto st1007; - case 111: goto st1010; + case 73: goto st1007; + case 105: goto st1007; } - goto tr2479; + goto tr2508; st1007: if ( ++p == pe ) goto _test_eof1007; case 1007: switch( (*p) ) { - case 78: goto st1008; - case 110: goto st1008; + case 82: goto st1008; + case 114: goto st1008; } - goto tr2479; + goto tr2508; st1008: if ( ++p == pe ) goto _test_eof1008; case 1008: switch( (*p) ) { - case 83: goto st1009; - case 115: goto st1009; + case 69: goto st1009; + case 101: goto st1009; } - goto tr2479; + goto tr2508; st1009: if ( ++p == pe ) goto _test_eof1009; case 1009: switch( (*p) ) { - case 32: goto tr2566; - case 59: goto tr2566; + case 67: goto st1010; + case 99: goto st1010; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2566; - } else if ( (*p) >= 9 ) - goto tr2566; - goto tr2479; + goto tr2508; st1010: if ( ++p == pe ) goto _test_eof1010; case 1010: switch( (*p) ) { - case 73: goto st1011; - case 105: goto st1011; + case 84: goto st1011; + case 116: goto st1011; } - goto tr2479; + goto tr2508; st1011: if ( ++p == pe ) goto _test_eof1011; case 1011: switch( (*p) ) { - case 68: goto st1012; - case 100: goto st1012; + case 32: goto tr2584; + case 59: goto tr2584; } - goto tr2479; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2584; + } else if ( (*p) >= 9 ) + goto tr2584; + goto tr2508; st1012: if ( ++p == pe ) goto _test_eof1012; case 1012: switch( (*p) ) { - case 32: goto tr2569; - case 59: goto tr2569; + case 82: goto st1013; + case 114: goto st1013; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2569; - } else if ( (*p) >= 9 ) - goto tr2569; - goto tr2479; + goto tr2508; st1013: if ( ++p == pe ) goto _test_eof1013; case 1013: switch( (*p) ) { - case 83: goto st1014; - case 115: goto st1014; + case 73: goto st1014; + case 105: goto st1014; } - goto tr2479; + goto tr2508; st1014: if ( ++p == pe ) goto _test_eof1014; case 1014: switch( (*p) ) { - case 65: goto st1015; - case 97: goto st1015; + case 86: goto st1015; + case 118: goto st1015; } - goto tr2479; + goto tr2508; st1015: if ( ++p == pe ) goto _test_eof1015; case 1015: switch( (*p) ) { - case 77: goto st1016; - case 83: goto st1019; - case 109: goto st1016; - case 115: goto st1019; + case 65: goto st1016; + case 97: goto st1016; } - goto tr2479; + goto tr2508; st1016: if ( ++p == pe ) goto _test_eof1016; case 1016: switch( (*p) ) { - case 68: goto st1017; - case 100: goto st1017; + case 84: goto st1017; + case 116: goto st1017; } - goto tr2479; + goto tr2508; st1017: if ( ++p == pe ) goto _test_eof1017; case 1017: - if ( (*p) == 53 ) - goto st1018; - goto tr2479; + switch( (*p) ) { + case 69: goto st1018; + case 101: goto st1018; + } + goto tr2508; st1018: if ( ++p == pe ) goto _test_eof1018; case 1018: switch( (*p) ) { - case 32: goto tr2576; - case 59: goto tr2576; + case 68: goto st1019; + case 79: goto st1022; + case 100: goto st1019; + case 111: goto st1022; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2576; - } else if ( (*p) >= 9 ) - goto tr2576; - goto tr2479; + goto tr2508; st1019: if ( ++p == pe ) goto _test_eof1019; case 1019: switch( (*p) ) { - case 72: goto st1020; - case 104: goto st1020; + case 78: goto st1020; + case 110: goto st1020; } - goto tr2479; + goto tr2508; st1020: if ( ++p == pe ) goto _test_eof1020; case 1020: switch( (*p) ) { - case 65: goto st1021; - case 97: goto st1021; + case 83: goto st1021; + case 115: goto st1021; } - goto tr2479; + goto tr2508; st1021: if ( ++p == pe ) goto _test_eof1021; case 1021: switch( (*p) ) { - case 49: goto st1022; - case 50: goto st1034; - case 53: goto st1037; + case 32: goto tr2595; + case 59: goto tr2595; } - goto tr2479; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2595; + } else if ( (*p) >= 9 ) + goto tr2595; + goto tr2508; st1022: if ( ++p == pe ) goto _test_eof1022; case 1022: switch( (*p) ) { - case 32: goto tr2582; - case 45: goto st1023; - case 59: goto tr2582; + case 73: goto st1023; + case 105: goto st1023; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2582; - } else if ( (*p) >= 9 ) - goto tr2582; - goto tr2479; + goto tr2508; st1023: if ( ++p == pe ) goto _test_eof1023; case 1023: switch( (*p) ) { - case 78: goto st1024; - case 110: goto st1024; + case 68: goto st1024; + case 100: goto st1024; } - goto tr2479; + goto tr2508; st1024: if ( ++p == pe ) goto _test_eof1024; case 1024: switch( (*p) ) { - case 83: goto st1025; - case 115: goto st1025; + case 32: goto tr2598; + case 59: goto tr2598; } - goto tr2479; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2598; + } else if ( (*p) >= 9 ) + goto tr2598; + goto tr2508; st1025: if ( ++p == pe ) goto _test_eof1025; case 1025: switch( (*p) ) { - case 69: goto st1026; - case 101: goto st1026; + case 83: goto st1026; + case 115: goto st1026; } - goto tr2479; + goto tr2508; st1026: if ( ++p == pe ) goto _test_eof1026; case 1026: switch( (*p) ) { - case 67: goto st1027; - case 99: goto st1027; + case 65: goto st1027; + case 97: goto st1027; } - goto tr2479; + goto tr2508; st1027: if ( ++p == pe ) goto _test_eof1027; case 1027: - if ( (*p) == 51 ) - goto st1028; - goto tr2479; + switch( (*p) ) { + case 77: goto st1028; + case 83: goto st1031; + case 109: goto st1028; + case 115: goto st1031; + } + goto tr2508; st1028: if ( ++p == pe ) goto _test_eof1028; case 1028: - if ( (*p) == 45 ) - goto st1029; - goto tr2479; + switch( (*p) ) { + case 68: goto st1029; + case 100: goto st1029; + } + goto tr2508; st1029: if ( ++p == pe ) goto _test_eof1029; case 1029: - switch( (*p) ) { - case 83: goto st1030; - case 115: goto st1030; - } - goto tr2479; + if ( (*p) == 53 ) + goto st1030; + goto tr2508; st1030: if ( ++p == pe ) goto _test_eof1030; case 1030: switch( (*p) ) { - case 72: goto st1031; - case 104: goto st1031; + case 32: goto tr2605; + case 59: goto tr2605; } - goto tr2479; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2605; + } else if ( (*p) >= 9 ) + goto tr2605; + goto tr2508; st1031: if ( ++p == pe ) goto _test_eof1031; case 1031: switch( (*p) ) { - case 65: goto st1032; - case 97: goto st1032; + case 72: goto st1032; + case 104: goto st1032; } - goto tr2479; + goto tr2508; st1032: if ( ++p == pe ) goto _test_eof1032; case 1032: - if ( (*p) == 49 ) - goto st1033; - goto tr2479; + switch( (*p) ) { + case 65: goto st1033; + case 97: goto st1033; + } + goto tr2508; st1033: if ( ++p == pe ) goto _test_eof1033; case 1033: switch( (*p) ) { - case 32: goto tr2594; - case 59: goto tr2594; + case 49: goto st1034; + case 50: goto st1046; + case 53: goto st1049; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2594; - } else if ( (*p) >= 9 ) - goto tr2594; - goto tr2479; + goto tr2508; st1034: if ( ++p == pe ) goto _test_eof1034; case 1034: - if ( (*p) == 53 ) - goto st1035; - goto tr2479; + switch( (*p) ) { + case 32: goto tr2611; + case 45: goto st1035; + case 59: goto tr2611; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2611; + } else if ( (*p) >= 9 ) + goto tr2611; + goto tr2508; st1035: if ( ++p == pe ) goto _test_eof1035; case 1035: - if ( (*p) == 54 ) - goto st1036; - goto tr2479; + switch( (*p) ) { + case 78: goto st1036; + case 110: goto st1036; + } + goto tr2508; st1036: if ( ++p == pe ) goto _test_eof1036; case 1036: switch( (*p) ) { - case 32: goto tr2597; - case 59: goto tr2597; + case 83: goto st1037; + case 115: goto st1037; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2597; - } else if ( (*p) >= 9 ) - goto tr2597; - goto tr2479; + goto tr2508; st1037: if ( ++p == pe ) goto _test_eof1037; case 1037: - if ( (*p) == 49 ) - goto st1038; - goto tr2479; + switch( (*p) ) { + case 69: goto st1038; + case 101: goto st1038; + } + goto tr2508; st1038: if ( ++p == pe ) goto _test_eof1038; case 1038: - if ( (*p) == 50 ) - goto st1039; - goto tr2479; + switch( (*p) ) { + case 67: goto st1039; + case 99: goto st1039; + } + goto tr2508; st1039: if ( ++p == pe ) goto _test_eof1039; case 1039: + if ( (*p) == 51 ) + goto st1040; + goto tr2508; +st1040: + if ( ++p == pe ) + goto _test_eof1040; +case 1040: + if ( (*p) == 45 ) + goto st1041; + goto tr2508; +st1041: + if ( ++p == pe ) + goto _test_eof1041; +case 1041: + switch( (*p) ) { + case 83: goto st1042; + case 115: goto st1042; + } + goto tr2508; +st1042: + if ( ++p == pe ) + goto _test_eof1042; +case 1042: + switch( (*p) ) { + case 72: goto st1043; + case 104: goto st1043; + } + goto tr2508; +st1043: + if ( ++p == pe ) + goto _test_eof1043; +case 1043: + switch( (*p) ) { + case 65: goto st1044; + case 97: goto st1044; + } + goto tr2508; +st1044: + if ( ++p == pe ) + goto _test_eof1044; +case 1044: + if ( (*p) == 49 ) + goto st1045; + goto tr2508; +st1045: + if ( ++p == pe ) + goto _test_eof1045; +case 1045: switch( (*p) ) { - case 32: goto tr2600; - case 59: goto tr2600; + case 32: goto tr2623; + case 59: goto tr2623; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2600; + goto tr2623; } else if ( (*p) >= 9 ) - goto tr2600; - goto tr2479; -st1040: + goto tr2623; + goto tr2508; +st1046: if ( ++p == pe ) - goto _test_eof1040; -case 1040: + goto _test_eof1046; +case 1046: + if ( (*p) == 53 ) + goto st1047; + goto tr2508; +st1047: + if ( ++p == pe ) + goto _test_eof1047; +case 1047: + if ( (*p) == 54 ) + goto st1048; + goto tr2508; +st1048: + if ( ++p == pe ) + goto _test_eof1048; +case 1048: + switch( (*p) ) { + case 32: goto tr2626; + case 59: goto tr2626; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2626; + } else if ( (*p) >= 9 ) + goto tr2626; + goto tr2508; +st1049: + if ( ++p == pe ) + goto _test_eof1049; +case 1049: + if ( (*p) == 49 ) + goto st1050; + goto tr2508; +st1050: + if ( ++p == pe ) + goto _test_eof1050; +case 1050: + if ( (*p) == 50 ) + goto st1051; + goto tr2508; +st1051: + if ( ++p == pe ) + goto _test_eof1051; +case 1051: + switch( (*p) ) { + case 32: goto tr2629; + case 59: goto tr2629; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2629; + } else if ( (*p) >= 9 ) + goto tr2629; + goto tr2508; +st1052: + if ( ++p == pe ) + goto _test_eof1052; +case 1052: switch( (*p) ) { - case 65: goto st1042; - case 73: goto st1048; - case 79: goto st1065; - case 80: goto st1068; - case 83: goto st1074; - case 85: goto st1078; - case 97: goto st1042; - case 105: goto st1048; - case 111: goto st1065; - case 112: goto st1068; - case 115: goto st1074; - case 117: goto st1078; + case 65: goto st1054; + case 73: goto st1060; + case 79: goto st1077; + case 80: goto st1080; + case 83: goto st1086; + case 85: goto st1090; + case 97: goto st1054; + case 105: goto st1060; + case 111: goto st1077; + case 112: goto st1080; + case 115: goto st1086; + case 117: goto st1090; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2602; - goto tr2601; -tr2602: + goto tr2631; + goto tr2630; +tr2631: { s->number64 = 0; } @@ -69034,11 +69941,11 @@ tr2602: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1041; -tr2610: + goto st1053; +tr2639: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -69050,28 +69957,28 @@ tr2610: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1041; -st1041: + goto st1053; +st1053: if ( ++p == pe ) - goto _test_eof1041; -case 1041: + goto _test_eof1053; +case 1053: switch( (*p) ) { - case 32: goto tr2609; - case 59: goto tr2609; + case 32: goto tr2638; + case 59: goto tr2638; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2609; + goto tr2638; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2610; + goto tr2639; } else - goto tr2609; - goto tr2601; -tr2609: + goto tr2638; + goto tr2630; +tr2638: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -69079,14 +69986,14 @@ tr2609: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr2646: + goto st1543; +tr2675: { uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); @@ -69095,8 +70002,8 @@ tr2646: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr2616: + goto st1543; +tr2645: { uint16_t val = htons(7); memcpy(rdata_tail, &val, 2); @@ -69105,8 +70012,8 @@ tr2616: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr2636: + goto st1543; +tr2665: { uint16_t val = htons(5); memcpy(rdata_tail, &val, 2); @@ -69115,8 +70022,8 @@ tr2636: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr2632: + goto st1543; +tr2661: { uint16_t val = htons(4); memcpy(rdata_tail, &val, 2); @@ -69125,8 +70032,8 @@ tr2632: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr2629: + goto st1543; +tr2658: { uint16_t val = htons(6); memcpy(rdata_tail, &val, 2); @@ -69135,8 +70042,8 @@ tr2629: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr2650: + goto st1543; +tr2679: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -69145,8 +70052,8 @@ tr2650: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr2625: + goto st1543; +tr2654: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -69155,8 +70062,8 @@ tr2625: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr2643: + goto st1543; +tr2672: { uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); @@ -69165,8 +70072,8 @@ tr2643: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr2639: + goto st1543; +tr2668: { uint16_t val = htons(254); memcpy(rdata_tail, &val, 2); @@ -69175,8 +70082,8 @@ tr2639: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -tr2653: + goto st1543; +tr2682: { uint16_t val = htons(253); memcpy(rdata_tail, &val, 2); @@ -69185,433 +70092,433 @@ tr2653: { p--; {cs = stack[--top];goto _again;} } - goto st1531; -st1531: + goto st1543; +st1543: if ( ++p == pe ) - goto _test_eof1531; -case 1531: + goto _test_eof1543; +case 1543: goto st0; -st1042: - if ( ++p == pe ) - goto _test_eof1042; -case 1042: - switch( (*p) ) { - case 67: goto st1043; - case 99: goto st1043; - } - goto tr2601; -st1043: - if ( ++p == pe ) - goto _test_eof1043; -case 1043: - switch( (*p) ) { - case 80: goto st1044; - case 112: goto st1044; - } - goto tr2601; -st1044: - if ( ++p == pe ) - goto _test_eof1044; -case 1044: - switch( (*p) ) { - case 75: goto st1045; - case 107: goto st1045; - } - goto tr2601; -st1045: - if ( ++p == pe ) - goto _test_eof1045; -case 1045: - switch( (*p) ) { - case 73: goto st1046; - case 105: goto st1046; - } - goto tr2601; -st1046: - if ( ++p == pe ) - goto _test_eof1046; -case 1046: - switch( (*p) ) { - case 88: goto st1047; - case 120: goto st1047; - } - goto tr2601; -st1047: - if ( ++p == pe ) - goto _test_eof1047; -case 1047: - switch( (*p) ) { - case 32: goto tr2616; - case 59: goto tr2616; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2616; - } else if ( (*p) >= 9 ) - goto tr2616; - goto tr2601; -st1048: - if ( ++p == pe ) - goto _test_eof1048; -case 1048: - switch( (*p) ) { - case 65: goto st1049; - case 80: goto st1055; - case 83: goto st1061; - case 97: goto st1049; - case 112: goto st1055; - case 115: goto st1061; - } - goto tr2601; -st1049: - if ( ++p == pe ) - goto _test_eof1049; -case 1049: - switch( (*p) ) { - case 67: goto st1050; - case 99: goto st1050; - } - goto tr2601; -st1050: - if ( ++p == pe ) - goto _test_eof1050; -case 1050: - switch( (*p) ) { - case 80: goto st1051; - case 112: goto st1051; - } - goto tr2601; -st1051: - if ( ++p == pe ) - goto _test_eof1051; -case 1051: - switch( (*p) ) { - case 75: goto st1052; - case 107: goto st1052; - } - goto tr2601; -st1052: - if ( ++p == pe ) - goto _test_eof1052; -case 1052: - switch( (*p) ) { - case 73: goto st1053; - case 105: goto st1053; - } - goto tr2601; -st1053: - if ( ++p == pe ) - goto _test_eof1053; -case 1053: - switch( (*p) ) { - case 88: goto st1054; - case 120: goto st1054; - } - goto tr2601; st1054: if ( ++p == pe ) goto _test_eof1054; case 1054: switch( (*p) ) { - case 32: goto tr2625; - case 59: goto tr2625; + case 67: goto st1055; + case 99: goto st1055; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2625; - } else if ( (*p) >= 9 ) - goto tr2625; - goto tr2601; + goto tr2630; st1055: if ( ++p == pe ) goto _test_eof1055; case 1055: switch( (*p) ) { - case 71: goto st1056; - case 75: goto st1058; - case 103: goto st1056; - case 107: goto st1058; + case 80: goto st1056; + case 112: goto st1056; } - goto tr2601; + goto tr2630; st1056: if ( ++p == pe ) goto _test_eof1056; case 1056: switch( (*p) ) { - case 80: goto st1057; - case 112: goto st1057; + case 75: goto st1057; + case 107: goto st1057; } - goto tr2601; + goto tr2630; st1057: if ( ++p == pe ) goto _test_eof1057; case 1057: switch( (*p) ) { - case 32: goto tr2629; - case 59: goto tr2629; + case 73: goto st1058; + case 105: goto st1058; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2629; - } else if ( (*p) >= 9 ) - goto tr2629; - goto tr2601; + goto tr2630; st1058: if ( ++p == pe ) goto _test_eof1058; case 1058: switch( (*p) ) { - case 73: goto st1059; - case 105: goto st1059; + case 88: goto st1059; + case 120: goto st1059; } - goto tr2601; + goto tr2630; st1059: if ( ++p == pe ) goto _test_eof1059; case 1059: switch( (*p) ) { - case 88: goto st1060; - case 120: goto st1060; + case 32: goto tr2645; + case 59: goto tr2645; } - goto tr2601; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2645; + } else if ( (*p) >= 9 ) + goto tr2645; + goto tr2630; st1060: if ( ++p == pe ) goto _test_eof1060; case 1060: switch( (*p) ) { - case 32: goto tr2632; - case 59: goto tr2632; + case 65: goto st1061; + case 80: goto st1067; + case 83: goto st1073; + case 97: goto st1061; + case 112: goto st1067; + case 115: goto st1073; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2632; - } else if ( (*p) >= 9 ) - goto tr2632; - goto tr2601; + goto tr2630; st1061: if ( ++p == pe ) goto _test_eof1061; case 1061: switch( (*p) ) { - case 80: goto st1062; - case 112: goto st1062; + case 67: goto st1062; + case 99: goto st1062; } - goto tr2601; + goto tr2630; st1062: if ( ++p == pe ) goto _test_eof1062; case 1062: switch( (*p) ) { - case 75: goto st1063; - case 107: goto st1063; + case 80: goto st1063; + case 112: goto st1063; } - goto tr2601; + goto tr2630; st1063: if ( ++p == pe ) goto _test_eof1063; case 1063: switch( (*p) ) { - case 73: goto st1064; - case 105: goto st1064; + case 75: goto st1064; + case 107: goto st1064; } - goto tr2601; + goto tr2630; st1064: if ( ++p == pe ) goto _test_eof1064; case 1064: switch( (*p) ) { - case 32: goto tr2636; - case 59: goto tr2636; + case 73: goto st1065; + case 105: goto st1065; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2636; - } else if ( (*p) >= 9 ) - goto tr2636; - goto tr2601; + goto tr2630; st1065: if ( ++p == pe ) goto _test_eof1065; case 1065: switch( (*p) ) { - case 73: goto st1066; - case 105: goto st1066; + case 88: goto st1066; + case 120: goto st1066; } - goto tr2601; + goto tr2630; st1066: if ( ++p == pe ) goto _test_eof1066; case 1066: switch( (*p) ) { - case 68: goto st1067; - case 100: goto st1067; + case 32: goto tr2654; + case 59: goto tr2654; } - goto tr2601; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2654; + } else if ( (*p) >= 9 ) + goto tr2654; + goto tr2630; st1067: if ( ++p == pe ) goto _test_eof1067; case 1067: switch( (*p) ) { - case 32: goto tr2639; - case 59: goto tr2639; + case 71: goto st1068; + case 75: goto st1070; + case 103: goto st1068; + case 107: goto st1070; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2639; - } else if ( (*p) >= 9 ) - goto tr2639; - goto tr2601; + goto tr2630; st1068: if ( ++p == pe ) goto _test_eof1068; case 1068: switch( (*p) ) { - case 71: goto st1069; - case 75: goto st1071; - case 103: goto st1069; - case 107: goto st1071; + case 80: goto st1069; + case 112: goto st1069; } - goto tr2601; + goto tr2630; st1069: if ( ++p == pe ) goto _test_eof1069; case 1069: switch( (*p) ) { - case 80: goto st1070; - case 112: goto st1070; + case 32: goto tr2658; + case 59: goto tr2658; } - goto tr2601; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2658; + } else if ( (*p) >= 9 ) + goto tr2658; + goto tr2630; st1070: if ( ++p == pe ) goto _test_eof1070; case 1070: switch( (*p) ) { - case 32: goto tr2643; - case 59: goto tr2643; + case 73: goto st1071; + case 105: goto st1071; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2643; - } else if ( (*p) >= 9 ) - goto tr2643; - goto tr2601; + goto tr2630; st1071: if ( ++p == pe ) goto _test_eof1071; case 1071: switch( (*p) ) { - case 73: goto st1072; - case 105: goto st1072; + case 88: goto st1072; + case 120: goto st1072; } - goto tr2601; + goto tr2630; st1072: if ( ++p == pe ) goto _test_eof1072; case 1072: switch( (*p) ) { - case 88: goto st1073; - case 120: goto st1073; + case 32: goto tr2661; + case 59: goto tr2661; } - goto tr2601; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2661; + } else if ( (*p) >= 9 ) + goto tr2661; + goto tr2630; st1073: if ( ++p == pe ) goto _test_eof1073; case 1073: switch( (*p) ) { - case 32: goto tr2646; - case 59: goto tr2646; + case 80: goto st1074; + case 112: goto st1074; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2646; - } else if ( (*p) >= 9 ) - goto tr2646; - goto tr2601; + goto tr2630; st1074: if ( ++p == pe ) goto _test_eof1074; case 1074: switch( (*p) ) { - case 80: goto st1075; - case 112: goto st1075; + case 75: goto st1075; + case 107: goto st1075; } - goto tr2601; + goto tr2630; st1075: if ( ++p == pe ) goto _test_eof1075; case 1075: switch( (*p) ) { - case 75: goto st1076; - case 107: goto st1076; + case 73: goto st1076; + case 105: goto st1076; } - goto tr2601; + goto tr2630; st1076: if ( ++p == pe ) goto _test_eof1076; case 1076: switch( (*p) ) { - case 73: goto st1077; - case 105: goto st1077; + case 32: goto tr2665; + case 59: goto tr2665; } - goto tr2601; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2665; + } else if ( (*p) >= 9 ) + goto tr2665; + goto tr2630; st1077: if ( ++p == pe ) goto _test_eof1077; case 1077: switch( (*p) ) { - case 32: goto tr2650; - case 59: goto tr2650; + case 73: goto st1078; + case 105: goto st1078; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2650; - } else if ( (*p) >= 9 ) - goto tr2650; - goto tr2601; + goto tr2630; st1078: if ( ++p == pe ) goto _test_eof1078; case 1078: switch( (*p) ) { - case 82: goto st1079; - case 114: goto st1079; + case 68: goto st1079; + case 100: goto st1079; } - goto tr2601; + goto tr2630; st1079: if ( ++p == pe ) goto _test_eof1079; case 1079: switch( (*p) ) { - case 73: goto st1080; - case 105: goto st1080; + case 32: goto tr2668; + case 59: goto tr2668; } - goto tr2601; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2668; + } else if ( (*p) >= 9 ) + goto tr2668; + goto tr2630; st1080: if ( ++p == pe ) goto _test_eof1080; case 1080: switch( (*p) ) { - case 32: goto tr2653; - case 59: goto tr2653; + case 71: goto st1081; + case 75: goto st1083; + case 103: goto st1081; + case 107: goto st1083; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2653; - } else if ( (*p) >= 9 ) - goto tr2653; - goto tr2601; + goto tr2630; st1081: if ( ++p == pe ) goto _test_eof1081; case 1081: switch( (*p) ) { - case 78: goto st1083; - case 110: goto st1083; + case 80: goto st1082; + case 112: goto st1082; + } + goto tr2630; +st1082: + if ( ++p == pe ) + goto _test_eof1082; +case 1082: + switch( (*p) ) { + case 32: goto tr2672; + case 59: goto tr2672; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2672; + } else if ( (*p) >= 9 ) + goto tr2672; + goto tr2630; +st1083: + if ( ++p == pe ) + goto _test_eof1083; +case 1083: + switch( (*p) ) { + case 73: goto st1084; + case 105: goto st1084; + } + goto tr2630; +st1084: + if ( ++p == pe ) + goto _test_eof1084; +case 1084: + switch( (*p) ) { + case 88: goto st1085; + case 120: goto st1085; + } + goto tr2630; +st1085: + if ( ++p == pe ) + goto _test_eof1085; +case 1085: + switch( (*p) ) { + case 32: goto tr2675; + case 59: goto tr2675; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2675; + } else if ( (*p) >= 9 ) + goto tr2675; + goto tr2630; +st1086: + if ( ++p == pe ) + goto _test_eof1086; +case 1086: + switch( (*p) ) { + case 80: goto st1087; + case 112: goto st1087; + } + goto tr2630; +st1087: + if ( ++p == pe ) + goto _test_eof1087; +case 1087: + switch( (*p) ) { + case 75: goto st1088; + case 107: goto st1088; + } + goto tr2630; +st1088: + if ( ++p == pe ) + goto _test_eof1088; +case 1088: + switch( (*p) ) { + case 73: goto st1089; + case 105: goto st1089; + } + goto tr2630; +st1089: + if ( ++p == pe ) + goto _test_eof1089; +case 1089: + switch( (*p) ) { + case 32: goto tr2679; + case 59: goto tr2679; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2679; + } else if ( (*p) >= 9 ) + goto tr2679; + goto tr2630; +st1090: + if ( ++p == pe ) + goto _test_eof1090; +case 1090: + switch( (*p) ) { + case 82: goto st1091; + case 114: goto st1091; + } + goto tr2630; +st1091: + if ( ++p == pe ) + goto _test_eof1091; +case 1091: + switch( (*p) ) { + case 73: goto st1092; + case 105: goto st1092; + } + goto tr2630; +st1092: + if ( ++p == pe ) + goto _test_eof1092; +case 1092: + switch( (*p) ) { + case 32: goto tr2682; + case 59: goto tr2682; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2682; + } else if ( (*p) >= 9 ) + goto tr2682; + goto tr2630; +st1093: + if ( ++p == pe ) + goto _test_eof1093; +case 1093: + switch( (*p) ) { + case 78: goto st1095; + case 110: goto st1095; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2655; - goto tr2654; -tr2655: + goto tr2684; + goto tr2683; +tr2684: { s->number64 = 0; } @@ -69626,11 +70533,11 @@ tr2655: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1082; -tr2658: + goto st1094; +tr2687: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -69642,133 +70549,133 @@ tr2658: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1082; -st1082: + goto st1094; +st1094: if ( ++p == pe ) - goto _test_eof1082; -case 1082: + goto _test_eof1094; +case 1094: switch( (*p) ) { - case 32: goto tr2657; - case 59: goto tr2657; + case 32: goto tr2686; + case 59: goto tr2686; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2657; + goto tr2686; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2658; + goto tr2687; } else - goto tr2657; - goto tr2654; -tr2657: + goto tr2686; + goto tr2683; +tr2686: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1532; -tr2664: + goto st1544; +tr2693: { *(rdata_tail++) = 1; } { p--; {cs = stack[--top];goto _again;} } - goto st1532; -st1532: + goto st1544; +st1544: if ( ++p == pe ) - goto _test_eof1532; -case 1532: + goto _test_eof1544; +case 1544: goto st0; -st1083: +st1095: if ( ++p == pe ) - goto _test_eof1083; -case 1083: + goto _test_eof1095; +case 1095: switch( (*p) ) { - case 79: goto st1084; - case 111: goto st1084; + case 79: goto st1096; + case 111: goto st1096; } - goto tr2654; -st1084: + goto tr2683; +st1096: if ( ++p == pe ) - goto _test_eof1084; -case 1084: + goto _test_eof1096; +case 1096: switch( (*p) ) { - case 84: goto st1085; - case 116: goto st1085; + case 84: goto st1097; + case 116: goto st1097; } - goto tr2654; -st1085: + goto tr2683; +st1097: if ( ++p == pe ) - goto _test_eof1085; -case 1085: + goto _test_eof1097; +case 1097: switch( (*p) ) { - case 73: goto st1086; - case 105: goto st1086; + case 73: goto st1098; + case 105: goto st1098; } - goto tr2654; -st1086: + goto tr2683; +st1098: if ( ++p == pe ) - goto _test_eof1086; -case 1086: + goto _test_eof1098; +case 1098: switch( (*p) ) { - case 70: goto st1087; - case 102: goto st1087; + case 70: goto st1099; + case 102: goto st1099; } - goto tr2654; -st1087: + goto tr2683; +st1099: if ( ++p == pe ) - goto _test_eof1087; -case 1087: + goto _test_eof1099; +case 1099: switch( (*p) ) { - case 89: goto st1088; - case 121: goto st1088; + case 89: goto st1100; + case 121: goto st1100; } - goto tr2654; -st1088: + goto tr2683; +st1100: if ( ++p == pe ) - goto _test_eof1088; -case 1088: + goto _test_eof1100; +case 1100: switch( (*p) ) { - case 32: goto tr2664; - case 59: goto tr2664; + case 32: goto tr2693; + case 59: goto tr2693; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2664; + goto tr2693; } else if ( (*p) >= 9 ) - goto tr2664; - goto tr2654; -st1089: + goto tr2693; + goto tr2683; +st1101: if ( ++p == pe ) - goto _test_eof1089; -case 1089: + goto _test_eof1101; +case 1101: if ( (*p) == 46 ) - goto tr2666; + goto tr2695; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2666; - goto tr2665; -tr2668: + goto tr2695; + goto tr2694; +tr2697: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1090; -tr2666: + goto st1102; +tr2695: { s->buffer_length = 0; } @@ -69777,41 +70684,41 @@ tr2666: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1090; -st1090: + goto st1102; +st1102: if ( ++p == pe ) - goto _test_eof1090; -case 1090: + goto _test_eof1102; +case 1102: switch( (*p) ) { - case 32: goto tr2667; - case 46: goto tr2668; - case 59: goto tr2667; + case 32: goto tr2696; + case 46: goto tr2697; + case 59: goto tr2696; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2667; + goto tr2696; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2668; + goto tr2697; } else - goto tr2667; - goto tr2665; -tr2667: + goto tr2696; + goto tr2694; +tr2696: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -69819,91 +70726,91 @@ tr2667: { p--; {cs = stack[--top];goto _again;} } - goto st1533; -st1533: + goto st1545; +st1545: if ( ++p == pe ) - goto _test_eof1533; -case 1533: + goto _test_eof1545; +case 1545: goto st0; -st1091: +st1103: if ( ++p == pe ) - goto _test_eof1091; -case 1091: + goto _test_eof1103; +case 1103: switch( (*p) ) { - case 42: goto tr2669; - case 92: goto tr2669; - case 95: goto tr2669; + case 42: goto tr2698; + case 92: goto tr2698; + case 95: goto tr2698; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2669; + goto tr2698; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2669; + goto tr2698; } else - goto tr2669; - goto tr77; -tr2669: + goto tr2698; + goto tr78; +tr2698: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1092;goto st327;} } - goto st1092; -st1092: + { p--; {stack[top++] = 1104;goto st331;} } + goto st1104; +st1104: if ( ++p == pe ) - goto _test_eof1092; -case 1092: + goto _test_eof1104; +case 1104: switch( (*p) ) { - case 32: goto tr2670; - case 59: goto tr2670; + case 32: goto tr2699; + case 59: goto tr2699; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2670; + goto tr2699; } else if ( (*p) >= 9 ) - goto tr2670; - goto tr77; -tr2670: + goto tr2699; + goto tr78; +tr2699: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1534; -st1534: + goto st1546; +st1546: if ( ++p == pe ) - goto _test_eof1534; -case 1534: + goto _test_eof1546; +case 1546: goto st0; -st1093: +st1105: if ( ++p == pe ) - goto _test_eof1093; -case 1093: + goto _test_eof1105; +case 1105: switch( (*p) ) { - case 42: goto tr2671; - case 92: goto tr2671; - case 95: goto tr2671; + case 42: goto tr2700; + case 92: goto tr2700; + case 95: goto tr2700; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2671; + goto tr2700; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2671; + goto tr2700; } else - goto tr2671; - goto tr77; -tr2671: + goto tr2700; + goto tr78; +tr2700: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1094;goto st327;} } - goto st1094; -st1094: + { p--; {stack[top++] = 1106;goto st331;} } + goto st1106; +st1106: if ( ++p == pe ) - goto _test_eof1094; -case 1094: + goto _test_eof1106; +case 1106: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -69917,38 +70824,38 @@ case 1094: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2672; - case 32: goto tr2672; - case 40: goto tr2673; - case 41: goto tr2674; - case 2058: goto tr2675; - case 2107: goto tr2676; + case 9: goto tr2701; + case 32: goto tr2701; + case 40: goto tr2702; + case 41: goto tr2703; + case 2058: goto tr2704; + case 2107: goto tr2705; } - goto tr77; -tr2678: + goto tr78; +tr2707: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1095; -tr2679: + goto st1107; +tr2708: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1095; -tr2681: + goto st1107; +tr2710: { s->line_counter++; } - goto st1095; -tr2825: + goto st1107; +tr2854: { s->buffer[s->buffer_length++] = 0; @@ -69958,55 +70865,55 @@ tr2825: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1095; goto _out;} + {p++; cs = 1107; goto _out;} } } } { s->line_counter++; } - goto st1095; -tr2672: + goto st1107; +tr2701: { rdata_tail += s->dname_tmp_length; } - goto st1095; -tr2673: + goto st1107; +tr2702: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1095; -tr2674: + goto st1107; +tr2703: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1095; -tr2675: + goto st1107; +tr2704: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1095; -st1095: + goto st1107; +st1107: if ( ++p == pe ) - goto _test_eof1095; -case 1095: + goto _test_eof1107; +case 1107: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70020,35 +70927,35 @@ case 1095: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1095; - case 32: goto st1095; - case 40: goto tr2678; - case 41: goto tr2679; - case 42: goto tr2680; - case 92: goto tr2680; - case 95: goto tr2680; - case 2058: goto tr2681; - case 2107: goto tr2682; + case 9: goto st1107; + case 32: goto st1107; + case 40: goto tr2707; + case 41: goto tr2708; + case 42: goto tr2709; + case 92: goto tr2709; + case 95: goto tr2709; + case 2058: goto tr2710; + case 2107: goto tr2711; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2680; + goto tr2709; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2680; + goto tr2709; } else - goto tr2680; - goto tr77; -tr2680: + goto tr2709; + goto tr78; +tr2709: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1096;goto st327;} } - goto st1096; -st1096: + { p--; {stack[top++] = 1108;goto st331;} } + goto st1108; +st1108: if ( ++p == pe ) - goto _test_eof1096; -case 1096: + goto _test_eof1108; +case 1108: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70062,38 +70969,38 @@ case 1096: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2683; - case 32: goto tr2683; - case 40: goto tr2684; - case 41: goto tr2685; - case 2058: goto tr2686; - case 2107: goto tr2687; + case 9: goto tr2712; + case 32: goto tr2712; + case 40: goto tr2713; + case 41: goto tr2714; + case 2058: goto tr2715; + case 2107: goto tr2716; } - goto tr77; -tr2690: + goto tr78; +tr2719: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1097; -tr2691: + goto st1109; +tr2720: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1097; -tr2693: + goto st1109; +tr2722: { s->line_counter++; } - goto st1097; -tr2823: + goto st1109; +tr2852: { s->buffer[s->buffer_length++] = 0; @@ -70103,55 +71010,55 @@ tr2823: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1097; goto _out;} + {p++; cs = 1109; goto _out;} } } } { s->line_counter++; } - goto st1097; -tr2683: + goto st1109; +tr2712: { rdata_tail += s->dname_tmp_length; } - goto st1097; -tr2684: + goto st1109; +tr2713: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1097; -tr2685: + goto st1109; +tr2714: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1097; -tr2686: + goto st1109; +tr2715: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1097; -st1097: + goto st1109; +st1109: if ( ++p == pe ) - goto _test_eof1097; -case 1097: + goto _test_eof1109; +case 1109: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70165,17 +71072,17 @@ case 1097: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1097; - case 32: goto st1097; - case 40: goto tr2690; - case 41: goto tr2691; - case 2058: goto tr2693; - case 2107: goto tr2694; + case 9: goto st1109; + case 32: goto st1109; + case 40: goto tr2719; + case 41: goto tr2720; + case 2058: goto tr2722; + case 2107: goto tr2723; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2692; - goto tr2688; -tr2692: + goto tr2721; + goto tr2717; +tr2721: { s->number64 = 0; } @@ -70190,11 +71097,11 @@ tr2692: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1098; -tr2698: + goto st1110; +tr2727: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70206,14 +71113,14 @@ tr2698: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1098; -st1098: + goto st1110; +st1110: if ( ++p == pe ) - goto _test_eof1098; -case 1098: + goto _test_eof1110; +case 1110: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70227,40 +71134,40 @@ case 1098: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2695; - case 32: goto tr2695; - case 40: goto tr2696; - case 41: goto tr2697; - case 2058: goto tr2699; - case 2107: goto tr2700; + case 9: goto tr2724; + case 32: goto tr2724; + case 40: goto tr2725; + case 41: goto tr2726; + case 2058: goto tr2728; + case 2107: goto tr2729; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2698; - goto tr2688; -tr2702: + goto tr2727; + goto tr2717; +tr2731: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1099; -tr2703: + goto st1111; +tr2732: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1099; -tr2705: + goto st1111; +tr2734: { s->line_counter++; } - goto st1099; -tr2821: + goto st1111; +tr2850: { s->buffer[s->buffer_length++] = 0; @@ -70270,15 +71177,15 @@ tr2821: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1099; goto _out;} + {p++; cs = 1111; goto _out;} } } } { s->line_counter++; } - goto st1099; -tr2695: + goto st1111; +tr2724: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70286,11 +71193,11 @@ tr2695: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1099; -tr2696: + goto st1111; +tr2725: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70298,18 +71205,18 @@ tr2696: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1099; -tr2697: + goto st1111; +tr2726: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70317,18 +71224,18 @@ tr2697: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1099; -tr2699: + goto st1111; +tr2728: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70336,17 +71243,17 @@ tr2699: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1099; -st1099: + goto st1111; +st1111: if ( ++p == pe ) - goto _test_eof1099; -case 1099: + goto _test_eof1111; +case 1111: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70360,17 +71267,17 @@ case 1099: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1099; - case 32: goto st1099; - case 40: goto tr2702; - case 41: goto tr2703; - case 2058: goto tr2705; - case 2107: goto tr2706; + case 9: goto st1111; + case 32: goto st1111; + case 40: goto tr2731; + case 41: goto tr2732; + case 2058: goto tr2734; + case 2107: goto tr2735; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2704; - goto tr2688; -tr2704: + goto tr2733; + goto tr2717; +tr2733: { s->number64 = 0; } @@ -70385,11 +71292,11 @@ tr2704: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1100; -tr2711: + goto st1112; +tr2740: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70401,14 +71308,14 @@ tr2711: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1100; -st1100: + goto st1112; +st1112: if ( ++p == pe ) - goto _test_eof1100; -case 1100: + goto _test_eof1112; +case 1112: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70422,50 +71329,50 @@ case 1100: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2708; - case 32: goto tr2708; - case 40: goto tr2709; - case 41: goto tr2710; - case 68: goto tr2712; - case 72: goto tr2713; - case 77: goto tr2714; - case 83: goto st1119; - case 87: goto tr2716; - case 100: goto tr2712; - case 104: goto tr2713; - case 109: goto tr2714; - case 115: goto st1119; - case 119: goto tr2716; - case 2058: goto tr2717; - case 2107: goto tr2718; + case 9: goto tr2737; + case 32: goto tr2737; + case 40: goto tr2738; + case 41: goto tr2739; + case 68: goto tr2741; + case 72: goto tr2742; + case 77: goto tr2743; + case 83: goto st1131; + case 87: goto tr2745; + case 100: goto tr2741; + case 104: goto tr2742; + case 109: goto tr2743; + case 115: goto st1131; + case 119: goto tr2745; + case 2058: goto tr2746; + case 2107: goto tr2747; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2711; - goto tr2707; -tr2720: + goto tr2740; + goto tr2736; +tr2749: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1101; -tr2721: + goto st1113; +tr2750: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1101; -tr2723: + goto st1113; +tr2752: { s->line_counter++; } - goto st1101; -tr2806: + goto st1113; +tr2835: { s->buffer[s->buffer_length++] = 0; @@ -70475,15 +71382,15 @@ tr2806: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1101; goto _out;} + {p++; cs = 1113; goto _out;} } } } { s->line_counter++; } - goto st1101; -tr2708: + goto st1113; +tr2737: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70491,11 +71398,11 @@ tr2708: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1101; -tr2709: + goto st1113; +tr2738: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70503,18 +71410,18 @@ tr2709: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1101; -tr2710: + goto st1113; +tr2739: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70522,18 +71429,18 @@ tr2710: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1101; -tr2717: + goto st1113; +tr2746: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70541,20 +71448,20 @@ tr2717: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1101; -tr2814: + goto st1113; +tr2843: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -70564,17 +71471,17 @@ tr2814: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1101; -tr2815: + goto st1113; +tr2844: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -70584,24 +71491,24 @@ tr2815: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1101; -tr2816: + goto st1113; +tr2845: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -70611,24 +71518,24 @@ tr2816: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1101; -tr2818: + goto st1113; +tr2847: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -70638,17 +71545,17 @@ tr2818: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1101; -st1101: + goto st1113; +st1113: if ( ++p == pe ) - goto _test_eof1101; -case 1101: + goto _test_eof1113; +case 1113: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70662,17 +71569,17 @@ case 1101: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1101; - case 32: goto st1101; - case 40: goto tr2720; - case 41: goto tr2721; - case 2058: goto tr2723; - case 2107: goto tr2724; + case 9: goto st1113; + case 32: goto st1113; + case 40: goto tr2749; + case 41: goto tr2750; + case 2058: goto tr2752; + case 2107: goto tr2753; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2722; - goto tr2688; -tr2722: + goto tr2751; + goto tr2717; +tr2751: { s->number64 = 0; } @@ -70687,11 +71594,11 @@ tr2722: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1102; -tr2728: + goto st1114; +tr2757: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70703,14 +71610,14 @@ tr2728: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1102; -st1102: + goto st1114; +st1114: if ( ++p == pe ) - goto _test_eof1102; -case 1102: + goto _test_eof1114; +case 1114: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70724,50 +71631,50 @@ case 1102: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2725; - case 32: goto tr2725; - case 40: goto tr2726; - case 41: goto tr2727; - case 68: goto tr2729; - case 72: goto tr2730; - case 77: goto tr2731; - case 83: goto st1115; - case 87: goto tr2733; - case 100: goto tr2729; - case 104: goto tr2730; - case 109: goto tr2731; - case 115: goto st1115; - case 119: goto tr2733; - case 2058: goto tr2734; - case 2107: goto tr2735; + case 9: goto tr2754; + case 32: goto tr2754; + case 40: goto tr2755; + case 41: goto tr2756; + case 68: goto tr2758; + case 72: goto tr2759; + case 77: goto tr2760; + case 83: goto st1127; + case 87: goto tr2762; + case 100: goto tr2758; + case 104: goto tr2759; + case 109: goto tr2760; + case 115: goto st1127; + case 119: goto tr2762; + case 2058: goto tr2763; + case 2107: goto tr2764; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2728; - goto tr2707; -tr2737: + goto tr2757; + goto tr2736; +tr2766: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1103; -tr2738: + goto st1115; +tr2767: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1103; -tr2740: + goto st1115; +tr2769: { s->line_counter++; } - goto st1103; -tr2791: + goto st1115; +tr2820: { s->buffer[s->buffer_length++] = 0; @@ -70777,15 +71684,15 @@ tr2791: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1103; goto _out;} + {p++; cs = 1115; goto _out;} } } } { s->line_counter++; } - goto st1103; -tr2725: + goto st1115; +tr2754: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70793,11 +71700,11 @@ tr2725: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1103; -tr2726: + goto st1115; +tr2755: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70805,18 +71712,18 @@ tr2726: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1103; -tr2727: + goto st1115; +tr2756: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70824,18 +71731,18 @@ tr2727: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1103; -tr2734: + goto st1115; +tr2763: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -70843,20 +71750,20 @@ tr2734: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1103; -tr2799: + goto st1115; +tr2828: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -70866,17 +71773,17 @@ tr2799: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1103; -tr2800: + goto st1115; +tr2829: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -70886,24 +71793,24 @@ tr2800: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1103; -tr2801: + goto st1115; +tr2830: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -70913,24 +71820,24 @@ tr2801: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1103; -tr2803: + goto st1115; +tr2832: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -70940,17 +71847,17 @@ tr2803: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1103; -st1103: + goto st1115; +st1115: if ( ++p == pe ) - goto _test_eof1103; -case 1103: + goto _test_eof1115; +case 1115: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -70964,17 +71871,17 @@ case 1103: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1103; - case 32: goto st1103; - case 40: goto tr2737; - case 41: goto tr2738; - case 2058: goto tr2740; - case 2107: goto tr2741; + case 9: goto st1115; + case 32: goto st1115; + case 40: goto tr2766; + case 41: goto tr2767; + case 2058: goto tr2769; + case 2107: goto tr2770; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2739; - goto tr2688; -tr2739: + goto tr2768; + goto tr2717; +tr2768: { s->number64 = 0; } @@ -70989,11 +71896,11 @@ tr2739: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1104; -tr2745: + goto st1116; +tr2774: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71005,14 +71912,14 @@ tr2745: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1104; -st1104: + goto st1116; +st1116: if ( ++p == pe ) - goto _test_eof1104; -case 1104: + goto _test_eof1116; +case 1116: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71026,50 +71933,50 @@ case 1104: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2742; - case 32: goto tr2742; - case 40: goto tr2743; - case 41: goto tr2744; - case 68: goto tr2746; - case 72: goto tr2747; - case 77: goto tr2748; - case 83: goto st1111; - case 87: goto tr2750; - case 100: goto tr2746; - case 104: goto tr2747; - case 109: goto tr2748; - case 115: goto st1111; - case 119: goto tr2750; - case 2058: goto tr2751; - case 2107: goto tr2752; + case 9: goto tr2771; + case 32: goto tr2771; + case 40: goto tr2772; + case 41: goto tr2773; + case 68: goto tr2775; + case 72: goto tr2776; + case 77: goto tr2777; + case 83: goto st1123; + case 87: goto tr2779; + case 100: goto tr2775; + case 104: goto tr2776; + case 109: goto tr2777; + case 115: goto st1123; + case 119: goto tr2779; + case 2058: goto tr2780; + case 2107: goto tr2781; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2745; - goto tr2707; -tr2754: + goto tr2774; + goto tr2736; +tr2783: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1105; -tr2755: + goto st1117; +tr2784: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1105; -tr2757: + goto st1117; +tr2786: { s->line_counter++; } - goto st1105; -tr2776: + goto st1117; +tr2805: { s->buffer[s->buffer_length++] = 0; @@ -71079,15 +71986,15 @@ tr2776: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1105; goto _out;} + {p++; cs = 1117; goto _out;} } } } { s->line_counter++; } - goto st1105; -tr2742: + goto st1117; +tr2771: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71095,11 +72002,11 @@ tr2742: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1105; -tr2743: + goto st1117; +tr2772: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71107,18 +72014,18 @@ tr2743: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1105; -tr2744: + goto st1117; +tr2773: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71126,18 +72033,18 @@ tr2744: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1105; -tr2751: + goto st1117; +tr2780: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71145,20 +72052,20 @@ tr2751: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1105; -tr2784: + goto st1117; +tr2813: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -71168,17 +72075,17 @@ tr2784: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1105; -tr2785: + goto st1117; +tr2814: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -71188,24 +72095,24 @@ tr2785: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1105; -tr2786: + goto st1117; +tr2815: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -71215,24 +72122,24 @@ tr2786: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1105; -tr2788: + goto st1117; +tr2817: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -71242,17 +72149,17 @@ tr2788: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1105; -st1105: + goto st1117; +st1117: if ( ++p == pe ) - goto _test_eof1105; -case 1105: + goto _test_eof1117; +case 1117: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71266,17 +72173,17 @@ case 1105: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1105; - case 32: goto st1105; - case 40: goto tr2754; - case 41: goto tr2755; - case 2058: goto tr2757; - case 2107: goto tr2758; + case 9: goto st1117; + case 32: goto st1117; + case 40: goto tr2783; + case 41: goto tr2784; + case 2058: goto tr2786; + case 2107: goto tr2787; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2756; - goto tr2688; -tr2756: + goto tr2785; + goto tr2717; +tr2785: { s->number64 = 0; } @@ -71291,11 +72198,11 @@ tr2756: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1106; -tr2760: + goto st1118; +tr2789: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71307,38 +72214,38 @@ tr2760: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1106; -st1106: + goto st1118; +st1118: if ( ++p == pe ) - goto _test_eof1106; -case 1106: + goto _test_eof1118; +case 1118: switch( (*p) ) { - case 32: goto tr2759; - case 59: goto tr2759; - case 68: goto tr2761; - case 72: goto tr2762; - case 77: goto tr2763; - case 83: goto st1107; - case 87: goto tr2765; - case 100: goto tr2761; - case 104: goto tr2762; - case 109: goto tr2763; - case 115: goto st1107; - case 119: goto tr2765; + case 32: goto tr2788; + case 59: goto tr2788; + case 68: goto tr2790; + case 72: goto tr2791; + case 77: goto tr2792; + case 83: goto st1119; + case 87: goto tr2794; + case 100: goto tr2790; + case 104: goto tr2791; + case 109: goto tr2792; + case 115: goto st1119; + case 119: goto tr2794; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2759; + goto tr2788; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2760; + goto tr2789; } else - goto tr2759; - goto tr2707; -tr2759: + goto tr2788; + goto tr2736; +tr2788: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71346,20 +72253,20 @@ tr2759: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1535; -tr2773: + goto st1547; +tr2802: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -71369,72 +72276,72 @@ tr2773: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1535; -st1535: + goto st1547; +st1547: if ( ++p == pe ) - goto _test_eof1535; -case 1535: + goto _test_eof1547; +case 1547: goto st0; -tr2761: +tr2790: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1107; -tr2762: + goto st1119; +tr2791: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1107; -tr2763: + goto st1119; +tr2792: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1107; -tr2765: + goto st1119; +tr2794: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1107; -st1107: + goto st1119; +st1119: if ( ++p == pe ) - goto _test_eof1107; -case 1107: + goto _test_eof1119; +case 1119: switch( (*p) ) { - case 32: goto tr2759; - case 59: goto tr2759; + case 32: goto tr2788; + case 59: goto tr2788; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2759; + goto tr2788; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2766; + goto tr2795; } else - goto tr2759; - goto tr2707; -tr2767: + goto tr2788; + goto tr2736; +tr2796: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71446,11 +72353,11 @@ tr2767: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1108; -tr2766: + goto st1120; +tr2795: { s->number64_tmp = s->number64; } @@ -71468,17 +72375,17 @@ tr2766: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1108; -tr2774: + goto st1120; +tr2803: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -71498,95 +72405,95 @@ tr2774: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1108; -st1108: + goto st1120; +st1120: if ( ++p == pe ) - goto _test_eof1108; -case 1108: + goto _test_eof1120; +case 1120: switch( (*p) ) { - case 68: goto tr2768; - case 72: goto tr2769; - case 77: goto tr2770; - case 83: goto st1109; - case 87: goto tr2772; - case 100: goto tr2768; - case 104: goto tr2769; - case 109: goto tr2770; - case 115: goto st1109; - case 119: goto tr2772; + case 68: goto tr2797; + case 72: goto tr2798; + case 77: goto tr2799; + case 83: goto st1121; + case 87: goto tr2801; + case 100: goto tr2797; + case 104: goto tr2798; + case 109: goto tr2799; + case 115: goto st1121; + case 119: goto tr2801; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2767; - goto tr2707; -tr2768: + goto tr2796; + goto tr2736; +tr2797: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1109; -tr2769: + goto st1121; +tr2798: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1109; -tr2770: + goto st1121; +tr2799: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1109; -tr2772: + goto st1121; +tr2801: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1109; -st1109: + goto st1121; +st1121: if ( ++p == pe ) - goto _test_eof1109; -case 1109: + goto _test_eof1121; +case 1121: switch( (*p) ) { - case 32: goto tr2773; - case 59: goto tr2773; + case 32: goto tr2802; + case 59: goto tr2802; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2773; + goto tr2802; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2774; + goto tr2803; } else - goto tr2773; - goto tr2707; -tr2758: + goto tr2802; + goto tr2736; +tr2787: { s->buffer_length = 0; } - goto st1110; -tr2775: + goto st1122; +tr2804: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1110; -tr2752: + goto st1122; +tr2781: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71594,20 +72501,20 @@ tr2752: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1110; -tr2789: + goto st1122; +tr2818: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -71617,17 +72524,17 @@ tr2789: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1110; -st1110: + goto st1122; +st1122: if ( ++p == pe ) - goto _test_eof1110; -case 1110: + goto _test_eof1122; +case 1122: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -71647,50 +72554,50 @@ case 1110: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2776; + goto tr2805; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2775; - goto tr77; -tr2746: + goto tr2804; + goto tr78; +tr2775: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1111; -tr2747: + goto st1123; +tr2776: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1111; -tr2748: + goto st1123; +tr2777: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1111; -tr2750: + goto st1123; +tr2779: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1111; -st1111: + goto st1123; +st1123: if ( ++p == pe ) - goto _test_eof1111; -case 1111: + goto _test_eof1123; +case 1123: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71704,17 +72611,17 @@ case 1111: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2742; - case 32: goto tr2742; - case 40: goto tr2743; - case 41: goto tr2744; - case 2058: goto tr2751; - case 2107: goto tr2752; + case 9: goto tr2771; + case 32: goto tr2771; + case 40: goto tr2772; + case 41: goto tr2773; + case 2058: goto tr2780; + case 2107: goto tr2781; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2777; - goto tr2707; -tr2778: + goto tr2806; + goto tr2736; +tr2807: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71726,11 +72633,11 @@ tr2778: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1112; -tr2777: + goto st1124; +tr2806: { s->number64_tmp = s->number64; } @@ -71748,17 +72655,17 @@ tr2777: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1112; -tr2787: + goto st1124; +tr2816: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -71778,69 +72685,69 @@ tr2787: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1112; -st1112: + goto st1124; +st1124: if ( ++p == pe ) - goto _test_eof1112; -case 1112: + goto _test_eof1124; +case 1124: switch( (*p) ) { - case 68: goto tr2779; - case 72: goto tr2780; - case 77: goto tr2781; - case 83: goto st1113; - case 87: goto tr2783; - case 100: goto tr2779; - case 104: goto tr2780; - case 109: goto tr2781; - case 115: goto st1113; - case 119: goto tr2783; + case 68: goto tr2808; + case 72: goto tr2809; + case 77: goto tr2810; + case 83: goto st1125; + case 87: goto tr2812; + case 100: goto tr2808; + case 104: goto tr2809; + case 109: goto tr2810; + case 115: goto st1125; + case 119: goto tr2812; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2778; - goto tr2707; -tr2779: + goto tr2807; + goto tr2736; +tr2808: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1113; -tr2780: + goto st1125; +tr2809: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1113; -tr2781: + goto st1125; +tr2810: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1113; -tr2783: + goto st1125; +tr2812: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1113; -st1113: + goto st1125; +st1125: if ( ++p == pe ) - goto _test_eof1113; -case 1113: + goto _test_eof1125; +case 1125: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71854,29 +72761,29 @@ case 1113: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2784; - case 32: goto tr2784; - case 40: goto tr2785; - case 41: goto tr2786; - case 2058: goto tr2788; - case 2107: goto tr2789; + case 9: goto tr2813; + case 32: goto tr2813; + case 40: goto tr2814; + case 41: goto tr2815; + case 2058: goto tr2817; + case 2107: goto tr2818; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2787; - goto tr2707; -tr2741: + goto tr2816; + goto tr2736; +tr2770: { s->buffer_length = 0; } - goto st1114; -tr2790: + goto st1126; +tr2819: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1114; -tr2735: + goto st1126; +tr2764: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71884,20 +72791,20 @@ tr2735: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1114; -tr2804: + goto st1126; +tr2833: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -71907,17 +72814,17 @@ tr2804: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1114; -st1114: + goto st1126; +st1126: if ( ++p == pe ) - goto _test_eof1114; -case 1114: + goto _test_eof1126; +case 1126: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -71937,50 +72844,50 @@ case 1114: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2791; + goto tr2820; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2790; - goto tr77; -tr2729: + goto tr2819; + goto tr78; +tr2758: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1115; -tr2730: + goto st1127; +tr2759: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1115; -tr2731: + goto st1127; +tr2760: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1115; -tr2733: + goto st1127; +tr2762: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1115; -st1115: + goto st1127; +st1127: if ( ++p == pe ) - goto _test_eof1115; -case 1115: + goto _test_eof1127; +case 1127: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71994,17 +72901,17 @@ case 1115: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2725; - case 32: goto tr2725; - case 40: goto tr2726; - case 41: goto tr2727; - case 2058: goto tr2734; - case 2107: goto tr2735; + case 9: goto tr2754; + case 32: goto tr2754; + case 40: goto tr2755; + case 41: goto tr2756; + case 2058: goto tr2763; + case 2107: goto tr2764; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2792; - goto tr2707; -tr2793: + goto tr2821; + goto tr2736; +tr2822: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -72016,11 +72923,11 @@ tr2793: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1116; -tr2792: + goto st1128; +tr2821: { s->number64_tmp = s->number64; } @@ -72038,17 +72945,17 @@ tr2792: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1116; -tr2802: + goto st1128; +tr2831: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -72068,69 +72975,69 @@ tr2802: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1116; -st1116: + goto st1128; +st1128: if ( ++p == pe ) - goto _test_eof1116; -case 1116: + goto _test_eof1128; +case 1128: switch( (*p) ) { - case 68: goto tr2794; - case 72: goto tr2795; - case 77: goto tr2796; - case 83: goto st1117; - case 87: goto tr2798; - case 100: goto tr2794; - case 104: goto tr2795; - case 109: goto tr2796; - case 115: goto st1117; - case 119: goto tr2798; + case 68: goto tr2823; + case 72: goto tr2824; + case 77: goto tr2825; + case 83: goto st1129; + case 87: goto tr2827; + case 100: goto tr2823; + case 104: goto tr2824; + case 109: goto tr2825; + case 115: goto st1129; + case 119: goto tr2827; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2793; - goto tr2707; -tr2794: + goto tr2822; + goto tr2736; +tr2823: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1117; -tr2795: + goto st1129; +tr2824: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1117; -tr2796: + goto st1129; +tr2825: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1117; -tr2798: + goto st1129; +tr2827: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1117; -st1117: + goto st1129; +st1129: if ( ++p == pe ) - goto _test_eof1117; -case 1117: + goto _test_eof1129; +case 1129: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72144,29 +73051,29 @@ case 1117: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2799; - case 32: goto tr2799; - case 40: goto tr2800; - case 41: goto tr2801; - case 2058: goto tr2803; - case 2107: goto tr2804; + case 9: goto tr2828; + case 32: goto tr2828; + case 40: goto tr2829; + case 41: goto tr2830; + case 2058: goto tr2832; + case 2107: goto tr2833; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2802; - goto tr2707; -tr2724: + goto tr2831; + goto tr2736; +tr2753: { s->buffer_length = 0; } - goto st1118; -tr2805: + goto st1130; +tr2834: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1118; -tr2718: + goto st1130; +tr2747: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -72174,20 +73081,20 @@ tr2718: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1118; -tr2819: + goto st1130; +tr2848: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -72197,17 +73104,17 @@ tr2819: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1118; -st1118: + goto st1130; +st1130: if ( ++p == pe ) - goto _test_eof1118; -case 1118: + goto _test_eof1130; +case 1130: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -72227,50 +73134,50 @@ case 1118: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2806; + goto tr2835; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2805; - goto tr77; -tr2712: + goto tr2834; + goto tr78; +tr2741: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1119; -tr2713: + goto st1131; +tr2742: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1119; -tr2714: + goto st1131; +tr2743: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1119; -tr2716: + goto st1131; +tr2745: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1119; -st1119: + goto st1131; +st1131: if ( ++p == pe ) - goto _test_eof1119; -case 1119: + goto _test_eof1131; +case 1131: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72284,17 +73191,17 @@ case 1119: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2708; - case 32: goto tr2708; - case 40: goto tr2709; - case 41: goto tr2710; - case 2058: goto tr2717; - case 2107: goto tr2718; + case 9: goto tr2737; + case 32: goto tr2737; + case 40: goto tr2738; + case 41: goto tr2739; + case 2058: goto tr2746; + case 2107: goto tr2747; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2807; - goto tr2707; -tr2808: + goto tr2836; + goto tr2736; +tr2837: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -72306,11 +73213,11 @@ tr2808: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1120; -tr2807: + goto st1132; +tr2836: { s->number64_tmp = s->number64; } @@ -72328,17 +73235,17 @@ tr2807: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1120; -tr2817: + goto st1132; +tr2846: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -72358,69 +73265,69 @@ tr2817: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1120; -st1120: + goto st1132; +st1132: if ( ++p == pe ) - goto _test_eof1120; -case 1120: + goto _test_eof1132; +case 1132: switch( (*p) ) { - case 68: goto tr2809; - case 72: goto tr2810; - case 77: goto tr2811; - case 83: goto st1121; - case 87: goto tr2813; - case 100: goto tr2809; - case 104: goto tr2810; - case 109: goto tr2811; - case 115: goto st1121; - case 119: goto tr2813; + case 68: goto tr2838; + case 72: goto tr2839; + case 77: goto tr2840; + case 83: goto st1133; + case 87: goto tr2842; + case 100: goto tr2838; + case 104: goto tr2839; + case 109: goto tr2840; + case 115: goto st1133; + case 119: goto tr2842; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2808; - goto tr2707; -tr2809: + goto tr2837; + goto tr2736; +tr2838: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1121; -tr2810: + goto st1133; +tr2839: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1121; -tr2811: + goto st1133; +tr2840: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1121; -tr2813: + goto st1133; +tr2842: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1121; -st1121: + goto st1133; +st1133: if ( ++p == pe ) - goto _test_eof1121; -case 1121: + goto _test_eof1133; +case 1133: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72434,29 +73341,29 @@ case 1121: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2814; - case 32: goto tr2814; - case 40: goto tr2815; - case 41: goto tr2816; - case 2058: goto tr2818; - case 2107: goto tr2819; + case 9: goto tr2843; + case 32: goto tr2843; + case 40: goto tr2844; + case 41: goto tr2845; + case 2058: goto tr2847; + case 2107: goto tr2848; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2817; - goto tr2707; -tr2706: + goto tr2846; + goto tr2736; +tr2735: { s->buffer_length = 0; } - goto st1122; -tr2820: + goto st1134; +tr2849: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1122; -tr2700: + goto st1134; +tr2729: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -72464,17 +73371,17 @@ tr2700: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1122; -st1122: + goto st1134; +st1134: if ( ++p == pe ) - goto _test_eof1122; -case 1122: + goto _test_eof1134; +case 1134: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -72494,34 +73401,34 @@ case 1122: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2821; + goto tr2850; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2820; - goto tr77; -tr2694: + goto tr2849; + goto tr78; +tr2723: { s->buffer_length = 0; } - goto st1123; -tr2822: + goto st1135; +tr2851: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1123; -tr2687: + goto st1135; +tr2716: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1123; -st1123: + goto st1135; +st1135: if ( ++p == pe ) - goto _test_eof1123; -case 1123: + goto _test_eof1135; +case 1135: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -72541,34 +73448,34 @@ case 1123: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2823; + goto tr2852; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2822; - goto tr77; -tr2682: + goto tr2851; + goto tr78; +tr2711: { s->buffer_length = 0; } - goto st1124; -tr2824: + goto st1136; +tr2853: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1124; -tr2676: + goto st1136; +tr2705: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1124; -st1124: + goto st1136; +st1136: if ( ++p == pe ) - goto _test_eof1124; -case 1124: + goto _test_eof1136; +case 1136: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -72588,39 +73495,39 @@ case 1124: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2825; + goto tr2854; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2824; - goto tr77; -st1125: + goto tr2853; + goto tr78; +st1137: if ( ++p == pe ) - goto _test_eof1125; -case 1125: + goto _test_eof1137; +case 1137: switch( (*p) ) { - case 32: goto tr77; - case 59: goto tr77; + case 32: goto tr78; + case 59: goto tr78; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr77; + goto tr78; } else if ( (*p) >= 9 ) - goto tr77; - goto tr2826; -tr2826: + goto tr78; + goto tr2855; +tr2855: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 1126;goto st336;} } - goto st1126; -st1126: + { p--; {stack[top++] = 1138;goto st340;} } + goto st1138; +st1138: if ( ++p == pe ) - goto _test_eof1126; -case 1126: + goto _test_eof1138; +case 1138: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72634,38 +73541,38 @@ case 1126: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2827; - case 32: goto tr2827; - case 40: goto tr2828; - case 41: goto tr2829; - case 2058: goto tr2830; - case 2107: goto tr2831; + case 9: goto tr2856; + case 32: goto tr2856; + case 40: goto tr2857; + case 41: goto tr2858; + case 2058: goto tr2859; + case 2107: goto tr2860; } - goto tr77; -tr2834: + goto tr78; +tr2863: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1127; -tr2835: + goto st1139; +tr2864: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1127; -tr2836: + goto st1139; +tr2865: { s->line_counter++; } - goto st1127; -tr2840: + goto st1139; +tr2869: { s->buffer[s->buffer_length++] = 0; @@ -72675,95 +73582,95 @@ tr2840: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1127; goto _out;} + {p++; cs = 1139; goto _out;} } } } { s->line_counter++; } - goto st1127; -tr2827: + goto st1139; +tr2856: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1127; -tr2828: + goto st1139; +tr2857: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1127; -tr2829: + goto st1139; +tr2858: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1127; -tr2830: + goto st1139; +tr2859: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1127; -st1127: + goto st1139; +st1139: if ( ++p == pe ) - goto _test_eof1127; -case 1127: + goto _test_eof1139; +case 1139: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72777,104 +73684,104 @@ case 1127: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1127; - case 32: goto st1127; - case 40: goto tr2834; - case 41: goto tr2835; - case 2058: goto tr2836; - case 2107: goto tr2837; + case 9: goto st1139; + case 32: goto st1139; + case 40: goto tr2863; + case 41: goto tr2864; + case 2058: goto tr2865; + case 2107: goto tr2866; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2832; + goto tr2861; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2832; + goto tr2861; } else - goto tr2832; - goto tr77; -tr2832: + goto tr2861; + goto tr78; +tr2861: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 1128;goto st336;} } - goto st1128; -st1128: + { p--; {stack[top++] = 1140;goto st340;} } + goto st1140; +st1140: if ( ++p == pe ) - goto _test_eof1128; -case 1128: + goto _test_eof1140; +case 1140: switch( (*p) ) { - case 32: goto tr2838; - case 59: goto tr2838; + case 32: goto tr2867; + case 59: goto tr2867; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2838; + goto tr2867; } else if ( (*p) >= 9 ) - goto tr2838; - goto tr77; -tr2838: + goto tr2867; + goto tr78; +tr2867: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1536; -st1536: + goto st1548; +st1548: if ( ++p == pe ) - goto _test_eof1536; -case 1536: + goto _test_eof1548; +case 1548: goto st0; -tr2837: +tr2866: { s->buffer_length = 0; } - goto st1129; -tr2839: + goto st1141; +tr2868: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1129; -tr2831: + goto st1141; +tr2860: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1129; -st1129: + goto st1141; +st1141: if ( ++p == pe ) - goto _test_eof1129; -case 1129: + goto _test_eof1141; +case 1141: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -72894,38 +73801,38 @@ case 1129: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2840; + goto tr2869; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2839; - goto tr77; -st1130: + goto tr2868; + goto tr78; +st1142: if ( ++p == pe ) - goto _test_eof1130; -case 1130: + goto _test_eof1142; +case 1142: switch( (*p) ) { - case 42: goto tr2841; - case 92: goto tr2841; - case 95: goto tr2841; + case 42: goto tr2870; + case 92: goto tr2870; + case 95: goto tr2870; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2841; + goto tr2870; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2841; + goto tr2870; } else - goto tr2841; - goto tr77; -tr2841: + goto tr2870; + goto tr78; +tr2870: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1131;goto st327;} } - goto st1131; -st1131: + { p--; {stack[top++] = 1143;goto st331;} } + goto st1143; +st1143: if ( ++p == pe ) - goto _test_eof1131; -case 1131: + goto _test_eof1143; +case 1143: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72939,38 +73846,38 @@ case 1131: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2842; - case 32: goto tr2842; - case 40: goto tr2843; - case 41: goto tr2844; - case 2058: goto tr2845; - case 2107: goto tr2846; - } - goto tr77; -tr2848: + case 9: goto tr2871; + case 32: goto tr2871; + case 40: goto tr2872; + case 41: goto tr2873; + case 2058: goto tr2874; + case 2107: goto tr2875; + } + goto tr78; +tr2877: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1132; -tr2849: + goto st1144; +tr2878: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1132; -tr2851: + goto st1144; +tr2880: { s->line_counter++; } - goto st1132; -tr2855: + goto st1144; +tr2884: { s->buffer[s->buffer_length++] = 0; @@ -72980,55 +73887,55 @@ tr2855: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1132; goto _out;} + {p++; cs = 1144; goto _out;} } } } { s->line_counter++; } - goto st1132; -tr2842: + goto st1144; +tr2871: { rdata_tail += s->dname_tmp_length; } - goto st1132; -tr2843: + goto st1144; +tr2872: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1132; -tr2844: + goto st1144; +tr2873: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1132; -tr2845: + goto st1144; +tr2874: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1132; -st1132: + goto st1144; +st1144: if ( ++p == pe ) - goto _test_eof1132; -case 1132: + goto _test_eof1144; +case 1144: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73042,82 +73949,82 @@ case 1132: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1132; - case 32: goto st1132; - case 40: goto tr2848; - case 41: goto tr2849; - case 42: goto tr2850; - case 92: goto tr2850; - case 95: goto tr2850; - case 2058: goto tr2851; - case 2107: goto tr2852; + case 9: goto st1144; + case 32: goto st1144; + case 40: goto tr2877; + case 41: goto tr2878; + case 42: goto tr2879; + case 92: goto tr2879; + case 95: goto tr2879; + case 2058: goto tr2880; + case 2107: goto tr2881; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2850; + goto tr2879; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2850; + goto tr2879; } else - goto tr2850; - goto tr77; -tr2850: + goto tr2879; + goto tr78; +tr2879: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1133;goto st327;} } - goto st1133; -st1133: + { p--; {stack[top++] = 1145;goto st331;} } + goto st1145; +st1145: if ( ++p == pe ) - goto _test_eof1133; -case 1133: + goto _test_eof1145; +case 1145: switch( (*p) ) { - case 32: goto tr2853; - case 59: goto tr2853; + case 32: goto tr2882; + case 59: goto tr2882; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2853; + goto tr2882; } else if ( (*p) >= 9 ) - goto tr2853; - goto tr77; -tr2853: + goto tr2882; + goto tr78; +tr2882: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1537; -st1537: + goto st1549; +st1549: if ( ++p == pe ) - goto _test_eof1537; -case 1537: + goto _test_eof1549; +case 1549: goto st0; -tr2852: +tr2881: { s->buffer_length = 0; } - goto st1134; -tr2854: + goto st1146; +tr2883: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1134; -tr2846: + goto st1146; +tr2875: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1134; -st1134: + goto st1146; +st1146: if ( ++p == pe ) - goto _test_eof1134; -case 1134: + goto _test_eof1146; +case 1146: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -73137,18 +74044,18 @@ case 1134: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2855; + goto tr2884; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2854; - goto tr77; -st1135: + goto tr2883; + goto tr78; +st1147: if ( ++p == pe ) - goto _test_eof1135; -case 1135: + goto _test_eof1147; +case 1147: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2856; - goto tr2688; -tr2856: + goto tr2885; + goto tr2717; +tr2885: { s->number64 = 0; } @@ -73163,11 +74070,11 @@ tr2856: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1136; -tr2860: + goto st1148; +tr2889: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -73179,14 +74086,14 @@ tr2860: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1136; -st1136: + goto st1148; +st1148: if ( ++p == pe ) - goto _test_eof1136; -case 1136: + goto _test_eof1148; +case 1148: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73200,40 +74107,40 @@ case 1136: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2857; - case 32: goto tr2857; - case 40: goto tr2858; - case 41: goto tr2859; - case 2058: goto tr2861; - case 2107: goto tr2862; + case 9: goto tr2886; + case 32: goto tr2886; + case 40: goto tr2887; + case 41: goto tr2888; + case 2058: goto tr2890; + case 2107: goto tr2891; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2860; - goto tr2688; -tr2864: + goto tr2889; + goto tr2717; +tr2893: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1137; -tr2865: + goto st1149; +tr2894: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1137; -tr2867: + goto st1149; +tr2896: { s->line_counter++; } - goto st1137; -tr2871: + goto st1149; +tr2900: { s->buffer[s->buffer_length++] = 0; @@ -73243,15 +74150,15 @@ tr2871: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1137; goto _out;} + {p++; cs = 1149; goto _out;} } } } { s->line_counter++; } - goto st1137; -tr2857: + goto st1149; +tr2886: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -73259,11 +74166,11 @@ tr2857: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1137; -tr2858: + goto st1149; +tr2887: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -73271,18 +74178,18 @@ tr2858: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1137; -tr2859: + goto st1149; +tr2888: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -73290,18 +74197,18 @@ tr2859: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1137; -tr2861: + goto st1149; +tr2890: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -73309,17 +74216,17 @@ tr2861: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1137; -st1137: + goto st1149; +st1149: if ( ++p == pe ) - goto _test_eof1137; -case 1137: + goto _test_eof1149; +case 1149: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73333,71 +74240,71 @@ case 1137: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1137; - case 32: goto st1137; - case 40: goto tr2864; - case 41: goto tr2865; - case 42: goto tr2866; - case 92: goto tr2866; - case 95: goto tr2866; - case 2058: goto tr2867; - case 2107: goto tr2868; + case 9: goto st1149; + case 32: goto st1149; + case 40: goto tr2893; + case 41: goto tr2894; + case 42: goto tr2895; + case 92: goto tr2895; + case 95: goto tr2895; + case 2058: goto tr2896; + case 2107: goto tr2897; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2866; + goto tr2895; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2866; + goto tr2895; } else - goto tr2866; - goto tr77; -tr2866: + goto tr2895; + goto tr78; +tr2895: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1138;goto st327;} } - goto st1138; -st1138: + { p--; {stack[top++] = 1150;goto st331;} } + goto st1150; +st1150: if ( ++p == pe ) - goto _test_eof1138; -case 1138: + goto _test_eof1150; +case 1150: switch( (*p) ) { - case 32: goto tr2869; - case 59: goto tr2869; + case 32: goto tr2898; + case 59: goto tr2898; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2869; + goto tr2898; } else if ( (*p) >= 9 ) - goto tr2869; - goto tr77; -tr2869: + goto tr2898; + goto tr78; +tr2898: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1538; -st1538: + goto st1550; +st1550: if ( ++p == pe ) - goto _test_eof1538; -case 1538: + goto _test_eof1550; +case 1550: goto st0; -tr2868: +tr2897: { s->buffer_length = 0; } - goto st1139; -tr2870: + goto st1151; +tr2899: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1139; -tr2862: + goto st1151; +tr2891: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -73405,17 +74312,17 @@ tr2862: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1139; -st1139: + goto st1151; +st1151: if ( ++p == pe ) - goto _test_eof1139; -case 1139: + goto _test_eof1151; +case 1151: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -73435,36 +74342,36 @@ case 1139: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2871; + goto tr2900; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2870; - goto tr77; -st1140: + goto tr2899; + goto tr78; +st1152: if ( ++p == pe ) - goto _test_eof1140; -case 1140: + goto _test_eof1152; +case 1152: switch( (*p) ) { - case 32: goto tr2873; - case 59: goto tr2873; + case 32: goto tr2902; + case 59: goto tr2902; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2873; + goto tr2902; } else if ( (*p) >= 9 ) - goto tr2873; - goto tr2872; -tr2882: + goto tr2902; + goto tr2901; +tr2911: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 1141;goto st336;} } - goto st1141; -tr2872: + { p--; {stack[top++] = 1153;goto st340;} } + goto st1153; +tr2901: { s->long_string = true; } @@ -73473,15 +74380,15 @@ tr2872: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 1141;goto st336;} } - goto st1141; -st1141: + { p--; {stack[top++] = 1153;goto st340;} } + goto st1153; +st1153: if ( ++p == pe ) - goto _test_eof1141; -case 1141: + goto _test_eof1153; +case 1153: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73499,42 +74406,42 @@ case 1141: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2874; - case 32: goto tr2874; - case 40: goto tr2875; - case 41: goto tr2876; - case 3082: goto tr2877; - case 3131: goto tr2878; - case 3338: goto tr2879; - case 3387: goto tr2879; - case 3594: goto tr2880; - case 3643: goto tr2881; - } - goto tr2873; -tr2884: + case 9: goto tr2903; + case 32: goto tr2903; + case 40: goto tr2904; + case 41: goto tr2905; + case 3082: goto tr2906; + case 3131: goto tr2907; + case 3338: goto tr2908; + case 3387: goto tr2908; + case 3594: goto tr2909; + case 3643: goto tr2910; + } + goto tr2902; +tr2913: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1142; -tr2885: + goto st1154; +tr2914: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1142; -tr2886: + goto st1154; +tr2915: { s->line_counter++; } - goto st1142; -tr2892: + goto st1154; +tr2921: { s->buffer[s->buffer_length++] = 0; @@ -73544,95 +74451,95 @@ tr2892: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1142; goto _out;} + {p++; cs = 1154; goto _out;} } } } { s->line_counter++; } - goto st1142; -tr2874: + goto st1154; +tr2903: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1142; -tr2875: + goto st1154; +tr2904: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1142; -tr2876: + goto st1154; +tr2905: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1142; -tr2877: + goto st1154; +tr2906: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1142; -st1142: + goto st1154; +st1154: if ( ++p == pe ) - goto _test_eof1142; -case 1142: + goto _test_eof1154; +case 1154: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73650,60 +74557,60 @@ case 1142: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1142; - case 32: goto st1142; - case 40: goto tr2884; - case 41: goto tr2885; - case 3082: goto tr2886; - case 3131: goto tr2887; - case 3338: goto tr2888; - case 3387: goto tr2888; - case 3594: goto tr2889; - case 3643: goto tr2890; + case 9: goto st1154; + case 32: goto st1154; + case 40: goto tr2913; + case 41: goto tr2914; + case 3082: goto tr2915; + case 3131: goto tr2916; + case 3338: goto tr2917; + case 3387: goto tr2917; + case 3594: goto tr2918; + case 3643: goto tr2919; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2882; + goto tr2911; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2882; + goto tr2911; } else - goto tr2882; - goto tr2873; -tr2887: + goto tr2911; + goto tr2902; +tr2916: { s->buffer_length = 0; } - goto st1143; -tr2891: + goto st1155; +tr2920: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1143; -tr2878: + goto st1155; +tr2907: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1143; -st1143: + goto st1155; +st1155: if ( ++p == pe ) - goto _test_eof1143; -case 1143: + goto _test_eof1155; +case 1155: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -73723,22 +74630,22 @@ case 1143: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2892; + goto tr2921; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2891; - goto tr2873; -tr2879: + goto tr2920; + goto tr2902; +tr2908: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -73747,32 +74654,32 @@ tr2879: { p--; {cs = stack[--top];goto _again;} } - goto st1539; -tr2888: + goto st1551; +tr2917: { s->long_string = false; } { p--; {cs = stack[--top];goto _again;} } - goto st1539; -st1539: + goto st1551; +st1551: if ( ++p == pe ) - goto _test_eof1539; -case 1539: + goto _test_eof1551; +case 1551: goto st0; -tr2880: +tr2909: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -73784,8 +74691,8 @@ tr2880: { p--; {cs = stack[--top];goto _again;} } - goto st1540; -tr2889: + goto st1552; +tr2918: { s->line_counter++; } @@ -73795,11 +74702,11 @@ tr2889: { p--; {cs = stack[--top];goto _again;} } - goto st1540; -st1540: + goto st1552; +st1552: if ( ++p == pe ) - goto _test_eof1540; -case 1540: + goto _test_eof1552; +case 1552: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73817,38 +74724,38 @@ case 1540: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1142; - case 32: goto st1142; - case 40: goto tr2884; - case 41: goto tr2885; - case 3082: goto tr2886; - case 3131: goto tr2887; - case 3338: goto tr2888; - case 3387: goto tr2888; - case 3594: goto tr2889; - case 3643: goto tr2890; + case 9: goto st1154; + case 32: goto st1154; + case 40: goto tr2913; + case 41: goto tr2914; + case 3082: goto tr2915; + case 3131: goto tr2916; + case 3338: goto tr2917; + case 3387: goto tr2917; + case 3594: goto tr2918; + case 3643: goto tr2919; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2882; + goto tr2911; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2882; + goto tr2911; } else - goto tr2882; - goto tr2873; -tr2881: + goto tr2911; + goto tr2902; +tr2910: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -73860,8 +74767,8 @@ tr2881: { p--; {cs = stack[--top];goto _again;} } - goto st1541; -tr2890: + goto st1553; +tr2919: { s->buffer_length = 0; } @@ -73871,11 +74778,11 @@ tr2890: { p--; {cs = stack[--top];goto _again;} } - goto st1541; -st1541: + goto st1553; +st1553: if ( ++p == pe ) - goto _test_eof1541; -case 1541: + goto _test_eof1553; +case 1553: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -73895,36 +74802,36 @@ case 1541: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2892; + goto tr2921; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2891; - goto tr2873; -st1144: + goto tr2920; + goto tr2902; +st1156: if ( ++p == pe ) - goto _test_eof1144; -case 1144: + goto _test_eof1156; +case 1156: if ( (*p) == 46 ) - goto tr2893; + goto tr2922; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2893; + goto tr2922; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2893; + goto tr2922; } else - goto tr2893; - goto tr2665; -tr2895: + goto tr2922; + goto tr2694; +tr2924: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1145; -tr2893: + goto st1157; +tr2922: { s->buffer_length = 0; } @@ -73933,47 +74840,47 @@ tr2893: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1145; -st1145: + goto st1157; +st1157: if ( ++p == pe ) - goto _test_eof1145; -case 1145: + goto _test_eof1157; +case 1157: switch( (*p) ) { - case 32: goto tr2894; - case 46: goto tr2895; - case 59: goto tr2894; + case 32: goto tr2923; + case 46: goto tr2924; + case 59: goto tr2923; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2894; + goto tr2923; } else if ( (*p) >= 9 ) - goto tr2894; + goto tr2923; } else if ( (*p) > 58 ) { if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2895; + goto tr2924; } else if ( (*p) >= 65 ) - goto tr2895; + goto tr2924; } else - goto tr2895; - goto tr2665; -tr2894: + goto tr2924; + goto tr2694; +tr2923: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -73981,20 +74888,20 @@ tr2894: { p--; {cs = stack[--top];goto _again;} } - goto st1542; -st1542: + goto st1554; +st1554: if ( ++p == pe ) - goto _test_eof1542; -case 1542: + goto _test_eof1554; +case 1554: goto st0; -st1146: +st1158: if ( ++p == pe ) - goto _test_eof1146; -case 1146: + goto _test_eof1158; +case 1158: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2897; - goto tr2896; -tr2901: + goto tr2926; + goto tr2925; +tr2930: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -74006,11 +74913,11 @@ tr2901: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1147; -tr2897: + goto st1159; +tr2926: { memset(&(s->loc), 0, sizeof(s->loc)); // Defaults. @@ -74035,14 +74942,14 @@ tr2897: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1147; -st1147: + goto st1159; +st1159: if ( ++p == pe ) - goto _test_eof1147; -case 1147: + goto _test_eof1159; +case 1159: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74056,40 +74963,40 @@ case 1147: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2898; - case 32: goto tr2898; - case 40: goto tr2899; - case 41: goto tr2900; - case 2058: goto tr2902; - case 2107: goto tr2903; + case 9: goto tr2927; + case 32: goto tr2927; + case 40: goto tr2928; + case 41: goto tr2929; + case 2058: goto tr2931; + case 2107: goto tr2932; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2901; - goto tr2896; -tr2905: + goto tr2930; + goto tr2925; +tr2934: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1148; -tr2906: + goto st1160; +tr2935: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1148; -tr2910: + goto st1160; +tr2939: { s->line_counter++; } - goto st1148; -tr3153: + goto st1160; +tr3182: { s->buffer[s->buffer_length++] = 0; @@ -74099,75 +75006,75 @@ tr3153: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1148; goto _out;} + {p++; cs = 1160; goto _out;} } } } { s->line_counter++; } - goto st1148; -tr2898: + goto st1160; +tr2927: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1148; -tr2899: + goto st1160; +tr2928: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1148; -tr2900: + goto st1160; +tr2929: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1148; -tr2902: + goto st1160; +tr2931: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1148; -st1148: + goto st1160; +st1160: if ( ++p == pe ) - goto _test_eof1148; -case 1148: + goto _test_eof1160; +case 1160: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74181,19 +75088,19 @@ case 1148: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1148; - case 32: goto st1148; - case 40: goto tr2905; - case 41: goto tr2906; - case 78: goto st1153; - case 83: goto st1195; - case 2058: goto tr2910; - case 2107: goto tr2911; + case 9: goto st1160; + case 32: goto st1160; + case 40: goto tr2934; + case 41: goto tr2935; + case 78: goto st1165; + case 83: goto st1207; + case 2058: goto tr2939; + case 2107: goto tr2940; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2907; - goto tr2896; -tr2907: + goto tr2936; + goto tr2925; +tr2936: { s->number64 = 0; } @@ -74208,11 +75115,11 @@ tr2907: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1149; -tr2915: + goto st1161; +tr2944: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -74224,14 +75131,14 @@ tr2915: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1149; -st1149: + goto st1161; +st1161: if ( ++p == pe ) - goto _test_eof1149; -case 1149: + goto _test_eof1161; +case 1161: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74245,40 +75152,40 @@ case 1149: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2912; - case 32: goto tr2912; - case 40: goto tr2913; - case 41: goto tr2914; - case 2058: goto tr2916; - case 2107: goto tr2917; + case 9: goto tr2941; + case 32: goto tr2941; + case 40: goto tr2942; + case 41: goto tr2943; + case 2058: goto tr2945; + case 2107: goto tr2946; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2915; - goto tr2896; -tr2919: + goto tr2944; + goto tr2925; +tr2948: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1150; -tr2920: + goto st1162; +tr2949: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1150; -tr2922: + goto st1162; +tr2951: { s->line_counter++; } - goto st1150; -tr3151: + goto st1162; +tr3180: { s->buffer[s->buffer_length++] = 0; @@ -74288,75 +75195,75 @@ tr3151: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1150; goto _out;} + {p++; cs = 1162; goto _out;} } } } { s->line_counter++; } - goto st1150; -tr2912: + goto st1162; +tr2941: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1150; -tr2913: + goto st1162; +tr2942: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1150; -tr2914: + goto st1162; +tr2943: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1150; -tr2916: + goto st1162; +tr2945: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1150; -st1150: + goto st1162; +st1162: if ( ++p == pe ) - goto _test_eof1150; -case 1150: + goto _test_eof1162; +case 1162: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74370,19 +75277,19 @@ case 1150: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1150; - case 32: goto st1150; - case 40: goto tr2919; - case 41: goto tr2920; - case 78: goto st1153; - case 83: goto st1195; - case 2058: goto tr2922; - case 2107: goto tr2923; + case 9: goto st1162; + case 32: goto st1162; + case 40: goto tr2948; + case 41: goto tr2949; + case 78: goto st1165; + case 83: goto st1207; + case 2058: goto tr2951; + case 2107: goto tr2952; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2921; - goto tr2896; -tr2928: + goto tr2950; + goto tr2925; +tr2957: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -74394,11 +75301,11 @@ tr2928: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1151; -tr2921: + goto st1163; +tr2950: { s->decimals = 3; } @@ -74419,14 +75326,14 @@ tr2921: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1151; -st1151: + goto st1163; +st1163: if ( ++p == pe ) - goto _test_eof1151; -case 1151: + goto _test_eof1163; +case 1163: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74440,41 +75347,41 @@ case 1151: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2924; - case 32: goto tr2924; - case 40: goto tr2925; - case 41: goto tr2926; - case 46: goto st1197; - case 2058: goto tr2929; - case 2107: goto tr2930; + case 9: goto tr2953; + case 32: goto tr2953; + case 40: goto tr2954; + case 41: goto tr2955; + case 46: goto st1209; + case 2058: goto tr2958; + case 2107: goto tr2959; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2928; - goto tr2896; -tr2932: + goto tr2957; + goto tr2925; +tr2961: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1152; -tr2933: + goto st1164; +tr2962: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1152; -tr2934: + goto st1164; +tr2963: { s->line_counter++; } - goto st1152; -tr3142: + goto st1164; +tr3171: { s->buffer[s->buffer_length++] = 0; @@ -74484,15 +75391,15 @@ tr3142: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1152; goto _out;} + {p++; cs = 1164; goto _out;} } } } { s->line_counter++; } - goto st1152; -tr2924: + goto st1164; +tr2953: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74502,7 +75409,7 @@ tr2924: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -74510,11 +75417,11 @@ tr2924: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1152; -tr2925: + goto st1164; +tr2954: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74524,7 +75431,7 @@ tr2925: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -74532,18 +75439,18 @@ tr2925: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1152; -tr2926: + goto st1164; +tr2955: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74553,7 +75460,7 @@ tr2926: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -74561,18 +75468,18 @@ tr2926: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1152; -tr2929: + goto st1164; +tr2958: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -74582,7 +75489,7 @@ tr2929: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -74590,14 +75497,14 @@ tr2929: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1152; -tr3143: + goto st1164; +tr3172: { s->number64_tmp = s->number64; } @@ -74610,7 +75517,7 @@ tr3143: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -74618,11 +75525,11 @@ tr3143: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1152; -tr3144: + goto st1164; +tr3173: { s->number64_tmp = s->number64; } @@ -74635,7 +75542,7 @@ tr3144: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -74643,18 +75550,18 @@ tr3144: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1152; -tr3145: + goto st1164; +tr3174: { s->number64_tmp = s->number64; } @@ -74667,7 +75574,7 @@ tr3145: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -74675,18 +75582,18 @@ tr3145: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1152; -tr3147: + goto st1164; +tr3176: { s->number64_tmp = s->number64; } @@ -74699,7 +75606,7 @@ tr3147: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -74707,17 +75614,17 @@ tr3147: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1152; -st1152: + goto st1164; +st1164: if ( ++p == pe ) - goto _test_eof1152; -case 1152: + goto _test_eof1164; +case 1164: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74731,20 +75638,20 @@ case 1152: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1152; - case 32: goto st1152; - case 40: goto tr2932; - case 41: goto tr2933; - case 78: goto st1153; - case 83: goto st1195; - case 2058: goto tr2934; - case 2107: goto tr2935; - } - goto tr2896; -st1153: + case 9: goto st1164; + case 32: goto st1164; + case 40: goto tr2961; + case 41: goto tr2962; + case 78: goto st1165; + case 83: goto st1207; + case 2058: goto tr2963; + case 2107: goto tr2964; + } + goto tr2925; +st1165: if ( ++p == pe ) - goto _test_eof1153; -case 1153: + goto _test_eof1165; +case 1165: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74758,38 +75665,38 @@ case 1153: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1154; - case 32: goto st1154; - case 40: goto tr2937; - case 41: goto tr2938; - case 2058: goto tr2939; - case 2107: goto tr2940; - } - goto tr2896; -tr2937: + case 9: goto st1166; + case 32: goto st1166; + case 40: goto tr2966; + case 41: goto tr2967; + case 2058: goto tr2968; + case 2107: goto tr2969; + } + goto tr2925; +tr2966: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1154; -tr2938: + goto st1166; +tr2967: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1154; -tr2939: + goto st1166; +tr2968: { s->line_counter++; } - goto st1154; -tr3135: + goto st1166; +tr3164: { s->buffer[s->buffer_length++] = 0; @@ -74799,55 +75706,55 @@ tr3135: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1154; goto _out;} + {p++; cs = 1166; goto _out;} } } } { s->line_counter++; } - goto st1154; -tr3136: + goto st1166; +tr3165: { s->loc.lat_sign = -1; } - goto st1154; -tr3137: + goto st1166; +tr3166: { s->loc.lat_sign = -1; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1154; -tr3138: + goto st1166; +tr3167: { s->loc.lat_sign = -1; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1154; -tr3139: + goto st1166; +tr3168: { s->loc.lat_sign = -1; } { s->line_counter++; } - goto st1154; -st1154: + goto st1166; +st1166: if ( ++p == pe ) - goto _test_eof1154; -case 1154: + goto _test_eof1166; +case 1166: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74861,17 +75768,17 @@ case 1154: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1154; - case 32: goto st1154; - case 40: goto tr2937; - case 41: goto tr2938; - case 2058: goto tr2939; - case 2107: goto tr2940; + case 9: goto st1166; + case 32: goto st1166; + case 40: goto tr2966; + case 41: goto tr2967; + case 2058: goto tr2968; + case 2107: goto tr2969; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2941; - goto tr2896; -tr2941: + goto tr2970; + goto tr2925; +tr2970: { s->number64 = 0; } @@ -74886,11 +75793,11 @@ tr2941: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1155; -tr2945: + goto st1167; +tr2974: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -74902,14 +75809,14 @@ tr2945: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1155; -st1155: + goto st1167; +st1167: if ( ++p == pe ) - goto _test_eof1155; -case 1155: + goto _test_eof1167; +case 1167: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74923,40 +75830,40 @@ case 1155: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2942; - case 32: goto tr2942; - case 40: goto tr2943; - case 41: goto tr2944; - case 2058: goto tr2946; - case 2107: goto tr2947; + case 9: goto tr2971; + case 32: goto tr2971; + case 40: goto tr2972; + case 41: goto tr2973; + case 2058: goto tr2975; + case 2107: goto tr2976; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2945; - goto tr2896; -tr2949: + goto tr2974; + goto tr2925; +tr2978: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1156; -tr2950: + goto st1168; +tr2979: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1156; -tr2954: + goto st1168; +tr2983: { s->line_counter++; } - goto st1156; -tr3133: + goto st1168; +tr3162: { s->buffer[s->buffer_length++] = 0; @@ -74966,75 +75873,75 @@ tr3133: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1156; goto _out;} + {p++; cs = 1168; goto _out;} } } } { s->line_counter++; } - goto st1156; -tr2942: + goto st1168; +tr2971: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1156; -tr2943: + goto st1168; +tr2972: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1156; -tr2944: + goto st1168; +tr2973: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1156; -tr2946: + goto st1168; +tr2975: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1156; -st1156: + goto st1168; +st1168: if ( ++p == pe ) - goto _test_eof1156; -case 1156: + goto _test_eof1168; +case 1168: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75048,19 +75955,19 @@ case 1156: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1156; - case 32: goto st1156; - case 40: goto tr2949; - case 41: goto tr2950; - case 69: goto st1161; - case 87: goto st1188; - case 2058: goto tr2954; - case 2107: goto tr2955; + case 9: goto st1168; + case 32: goto st1168; + case 40: goto tr2978; + case 41: goto tr2979; + case 69: goto st1173; + case 87: goto st1200; + case 2058: goto tr2983; + case 2107: goto tr2984; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2951; - goto tr2896; -tr2951: + goto tr2980; + goto tr2925; +tr2980: { s->number64 = 0; } @@ -75075,11 +75982,11 @@ tr2951: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1157; -tr2959: + goto st1169; +tr2988: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75091,14 +75998,14 @@ tr2959: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1157; -st1157: + goto st1169; +st1169: if ( ++p == pe ) - goto _test_eof1157; -case 1157: + goto _test_eof1169; +case 1169: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75112,40 +76019,40 @@ case 1157: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2956; - case 32: goto tr2956; - case 40: goto tr2957; - case 41: goto tr2958; - case 2058: goto tr2960; - case 2107: goto tr2961; + case 9: goto tr2985; + case 32: goto tr2985; + case 40: goto tr2986; + case 41: goto tr2987; + case 2058: goto tr2989; + case 2107: goto tr2990; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2959; - goto tr2896; -tr2963: + goto tr2988; + goto tr2925; +tr2992: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1158; -tr2964: + goto st1170; +tr2993: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1158; -tr2966: + goto st1170; +tr2995: { s->line_counter++; } - goto st1158; -tr3131: + goto st1170; +tr3160: { s->buffer[s->buffer_length++] = 0; @@ -75155,75 +76062,75 @@ tr3131: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1158; goto _out;} + {p++; cs = 1170; goto _out;} } } } { s->line_counter++; } - goto st1158; -tr2956: + goto st1170; +tr2985: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1158; -tr2957: + goto st1170; +tr2986: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1158; -tr2958: + goto st1170; +tr2987: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1158; -tr2960: + goto st1170; +tr2989: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1158; -st1158: + goto st1170; +st1170: if ( ++p == pe ) - goto _test_eof1158; -case 1158: + goto _test_eof1170; +case 1170: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75237,19 +76144,19 @@ case 1158: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1158; - case 32: goto st1158; - case 40: goto tr2963; - case 41: goto tr2964; - case 69: goto st1161; - case 87: goto st1188; - case 2058: goto tr2966; - case 2107: goto tr2967; + case 9: goto st1170; + case 32: goto st1170; + case 40: goto tr2992; + case 41: goto tr2993; + case 69: goto st1173; + case 87: goto st1200; + case 2058: goto tr2995; + case 2107: goto tr2996; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2965; - goto tr2896; -tr2972: + goto tr2994; + goto tr2925; +tr3001: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75261,11 +76168,11 @@ tr2972: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1159; -tr2965: + goto st1171; +tr2994: { s->decimals = 3; } @@ -75286,14 +76193,14 @@ tr2965: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1159; -st1159: + goto st1171; +st1171: if ( ++p == pe ) - goto _test_eof1159; -case 1159: + goto _test_eof1171; +case 1171: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75307,41 +76214,41 @@ case 1159: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2968; - case 32: goto tr2968; - case 40: goto tr2969; - case 41: goto tr2970; - case 46: goto st1190; - case 2058: goto tr2973; - case 2107: goto tr2974; + case 9: goto tr2997; + case 32: goto tr2997; + case 40: goto tr2998; + case 41: goto tr2999; + case 46: goto st1202; + case 2058: goto tr3002; + case 2107: goto tr3003; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2972; - goto tr2896; -tr2976: + goto tr3001; + goto tr2925; +tr3005: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1160; -tr2977: + goto st1172; +tr3006: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1160; -tr2978: + goto st1172; +tr3007: { s->line_counter++; } - goto st1160; -tr3122: + goto st1172; +tr3151: { s->buffer[s->buffer_length++] = 0; @@ -75351,15 +76258,15 @@ tr3122: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1160; goto _out;} + {p++; cs = 1172; goto _out;} } } } { s->line_counter++; } - goto st1160; -tr2968: + goto st1172; +tr2997: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75369,7 +76276,7 @@ tr2968: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75377,11 +76284,11 @@ tr2968: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1160; -tr2969: + goto st1172; +tr2998: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75391,7 +76298,7 @@ tr2969: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75399,18 +76306,18 @@ tr2969: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1160; -tr2970: + goto st1172; +tr2999: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75420,7 +76327,7 @@ tr2970: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75428,18 +76335,18 @@ tr2970: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1160; -tr2973: + goto st1172; +tr3002: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75449,7 +76356,7 @@ tr2973: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75457,14 +76364,14 @@ tr2973: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1160; -tr3123: + goto st1172; +tr3152: { s->number64_tmp = s->number64; } @@ -75477,7 +76384,7 @@ tr3123: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75485,11 +76392,11 @@ tr3123: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1160; -tr3124: + goto st1172; +tr3153: { s->number64_tmp = s->number64; } @@ -75502,7 +76409,7 @@ tr3124: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75510,18 +76417,18 @@ tr3124: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1160; -tr3125: + goto st1172; +tr3154: { s->number64_tmp = s->number64; } @@ -75534,7 +76441,7 @@ tr3125: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75542,18 +76449,18 @@ tr3125: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1160; -tr3127: + goto st1172; +tr3156: { s->number64_tmp = s->number64; } @@ -75566,7 +76473,7 @@ tr3127: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75574,17 +76481,17 @@ tr3127: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1160; -st1160: + goto st1172; +st1172: if ( ++p == pe ) - goto _test_eof1160; -case 1160: + goto _test_eof1172; +case 1172: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75598,20 +76505,20 @@ case 1160: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1160; - case 32: goto st1160; - case 40: goto tr2976; - case 41: goto tr2977; - case 69: goto st1161; - case 87: goto st1188; - case 2058: goto tr2978; - case 2107: goto tr2979; - } - goto tr2896; -st1161: + case 9: goto st1172; + case 32: goto st1172; + case 40: goto tr3005; + case 41: goto tr3006; + case 69: goto st1173; + case 87: goto st1200; + case 2058: goto tr3007; + case 2107: goto tr3008; + } + goto tr2925; +st1173: if ( ++p == pe ) - goto _test_eof1161; -case 1161: + goto _test_eof1173; +case 1173: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75625,38 +76532,38 @@ case 1161: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1162; - case 32: goto st1162; - case 40: goto tr2981; - case 41: goto tr2982; - case 2058: goto tr2983; - case 2107: goto tr2984; - } - goto tr2896; -tr2981: + case 9: goto st1174; + case 32: goto st1174; + case 40: goto tr3010; + case 41: goto tr3011; + case 2058: goto tr3012; + case 2107: goto tr3013; + } + goto tr2925; +tr3010: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1162; -tr2982: + goto st1174; +tr3011: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1162; -tr2983: + goto st1174; +tr3012: { s->line_counter++; } - goto st1162; -tr3115: + goto st1174; +tr3144: { s->buffer[s->buffer_length++] = 0; @@ -75666,55 +76573,55 @@ tr3115: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1162; goto _out;} + {p++; cs = 1174; goto _out;} } } } { s->line_counter++; } - goto st1162; -tr3116: + goto st1174; +tr3145: { s->loc.long_sign = -1; } - goto st1162; -tr3117: + goto st1174; +tr3146: { s->loc.long_sign = -1; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1162; -tr3118: + goto st1174; +tr3147: { s->loc.long_sign = -1; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1162; -tr3119: + goto st1174; +tr3148: { s->loc.long_sign = -1; } { s->line_counter++; } - goto st1162; -st1162: + goto st1174; +st1174: if ( ++p == pe ) - goto _test_eof1162; -case 1162: + goto _test_eof1174; +case 1174: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75728,25 +76635,25 @@ case 1162: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1162; - case 32: goto st1162; - case 40: goto tr2981; - case 41: goto tr2982; - case 45: goto st1163; - case 2058: goto tr2983; - case 2107: goto tr2984; + case 9: goto st1174; + case 32: goto st1174; + case 40: goto tr3010; + case 41: goto tr3011; + case 45: goto st1175; + case 2058: goto tr3012; + case 2107: goto tr3013; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2986; - goto tr2896; -st1163: + goto tr3015; + goto tr2925; +st1175: if ( ++p == pe ) - goto _test_eof1163; -case 1163: + goto _test_eof1175; +case 1175: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2987; - goto tr2896; -tr2992: + goto tr3016; + goto tr2925; +tr3021: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75758,11 +76665,11 @@ tr2992: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1164; -tr2986: + goto st1176; +tr3015: { s->decimals = 2; } @@ -75783,11 +76690,11 @@ tr2986: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1164; -tr2987: + goto st1176; +tr3016: { s->loc.alt_sign = -1; } @@ -75811,14 +76718,14 @@ tr2987: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1164; -st1164: + goto st1176; +st1176: if ( ++p == pe ) - goto _test_eof1164; -case 1164: + goto _test_eof1176; +case 1176: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75836,46 +76743,46 @@ case 1164: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2988; - case 32: goto tr2988; - case 40: goto tr2989; - case 41: goto tr2990; - case 46: goto st1184; - case 109: goto tr2993; - case 3082: goto tr2994; - case 3131: goto tr2995; - case 3338: goto tr2996; - case 3387: goto tr2996; - case 3594: goto tr2997; - case 3643: goto tr2998; + case 9: goto tr3017; + case 32: goto tr3017; + case 40: goto tr3018; + case 41: goto tr3019; + case 46: goto st1196; + case 109: goto tr3022; + case 3082: goto tr3023; + case 3131: goto tr3024; + case 3338: goto tr3025; + case 3387: goto tr3025; + case 3594: goto tr3026; + case 3643: goto tr3027; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2992; - goto tr2896; -tr3000: + goto tr3021; + goto tr2925; +tr3029: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1165; -tr3001: + goto st1177; +tr3030: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1165; -tr3003: + goto st1177; +tr3032: { s->line_counter++; } - goto st1165; -tr3102: + goto st1177; +tr3131: { s->buffer[s->buffer_length++] = 0; @@ -75885,15 +76792,15 @@ tr3102: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1165; goto _out;} + {p++; cs = 1177; goto _out;} } } } { s->line_counter++; } - goto st1165; -tr2988: + goto st1177; +tr3017: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75903,7 +76810,7 @@ tr2988: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75913,11 +76820,11 @@ tr2988: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1165; -tr2989: + goto st1177; +tr3018: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75927,7 +76834,7 @@ tr2989: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75937,18 +76844,18 @@ tr2989: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1165; -tr2990: + goto st1177; +tr3019: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75958,7 +76865,7 @@ tr2990: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75968,18 +76875,18 @@ tr2990: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1165; -tr2994: + goto st1177; +tr3023: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75989,7 +76896,7 @@ tr2994: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -75999,14 +76906,14 @@ tr2994: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1165; -tr3103: + goto st1177; +tr3132: { s->number64_tmp = s->number64; } @@ -76019,7 +76926,7 @@ tr3103: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76029,11 +76936,11 @@ tr3103: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1165; -tr3104: + goto st1177; +tr3133: { s->number64_tmp = s->number64; } @@ -76046,7 +76953,7 @@ tr3104: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76056,18 +76963,18 @@ tr3104: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1165; -tr3105: + goto st1177; +tr3134: { s->number64_tmp = s->number64; } @@ -76080,7 +76987,7 @@ tr3105: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76090,18 +76997,18 @@ tr3105: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1165; -tr3108: + goto st1177; +tr3137: { s->number64_tmp = s->number64; } @@ -76114,7 +77021,7 @@ tr3108: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76124,17 +77031,17 @@ tr3108: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1165; -st1165: + goto st1177; +st1177: if ( ++p == pe ) - goto _test_eof1165; -case 1165: + goto _test_eof1177; +case 1177: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76152,21 +77059,21 @@ case 1165: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1165; - case 32: goto st1165; - case 40: goto tr3000; - case 41: goto tr3001; - case 3082: goto tr3003; - case 3131: goto tr3004; - case 3338: goto tr3005; - case 3387: goto tr3005; - case 3594: goto tr3006; - case 3643: goto tr3007; + case 9: goto st1177; + case 32: goto st1177; + case 40: goto tr3029; + case 41: goto tr3030; + case 3082: goto tr3032; + case 3131: goto tr3033; + case 3338: goto tr3034; + case 3387: goto tr3034; + case 3594: goto tr3035; + case 3643: goto tr3036; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3002; - goto tr2896; -tr3012: + goto tr3031; + goto tr2925; +tr3041: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76178,11 +77085,11 @@ tr3012: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1166; -tr3002: + goto st1178; +tr3031: { s->decimals = 2; } @@ -76203,14 +77110,14 @@ tr3002: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1166; -st1166: + goto st1178; +st1178: if ( ++p == pe ) - goto _test_eof1166; -case 1166: + goto _test_eof1178; +case 1178: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76228,46 +77135,46 @@ case 1166: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3008; - case 32: goto tr3008; - case 40: goto tr3009; - case 41: goto tr3010; - case 46: goto st1180; - case 109: goto tr3013; - case 3082: goto tr3014; - case 3131: goto tr3015; - case 3338: goto tr3016; - case 3387: goto tr3016; - case 3594: goto tr3017; - case 3643: goto tr3018; + case 9: goto tr3037; + case 32: goto tr3037; + case 40: goto tr3038; + case 41: goto tr3039; + case 46: goto st1192; + case 109: goto tr3042; + case 3082: goto tr3043; + case 3131: goto tr3044; + case 3338: goto tr3045; + case 3387: goto tr3045; + case 3594: goto tr3046; + case 3643: goto tr3047; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3012; - goto tr2896; -tr3020: + goto tr3041; + goto tr2925; +tr3049: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1167; -tr3021: + goto st1179; +tr3050: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1167; -tr3023: + goto st1179; +tr3052: { s->line_counter++; } - goto st1167; -tr3089: + goto st1179; +tr3118: { s->buffer[s->buffer_length++] = 0; @@ -76277,15 +77184,15 @@ tr3089: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1167; goto _out;} + {p++; cs = 1179; goto _out;} } } } { s->line_counter++; } - goto st1167; -tr3008: + goto st1179; +tr3037: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76295,7 +77202,7 @@ tr3008: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76303,11 +77210,11 @@ tr3008: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1167; -tr3009: + goto st1179; +tr3038: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76317,7 +77224,7 @@ tr3009: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76325,18 +77232,18 @@ tr3009: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1167; -tr3010: + goto st1179; +tr3039: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76346,7 +77253,7 @@ tr3010: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76354,18 +77261,18 @@ tr3010: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1167; -tr3014: + goto st1179; +tr3043: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76375,7 +77282,7 @@ tr3014: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76383,14 +77290,14 @@ tr3014: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1167; -tr3090: + goto st1179; +tr3119: { s->number64_tmp = s->number64; } @@ -76403,7 +77310,7 @@ tr3090: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76411,11 +77318,11 @@ tr3090: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1167; -tr3091: + goto st1179; +tr3120: { s->number64_tmp = s->number64; } @@ -76428,7 +77335,7 @@ tr3091: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76436,18 +77343,18 @@ tr3091: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1167; -tr3092: + goto st1179; +tr3121: { s->number64_tmp = s->number64; } @@ -76460,7 +77367,7 @@ tr3092: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76468,18 +77375,18 @@ tr3092: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1167; -tr3095: + goto st1179; +tr3124: { s->number64_tmp = s->number64; } @@ -76492,7 +77399,7 @@ tr3095: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76500,17 +77407,17 @@ tr3095: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1167; -st1167: + goto st1179; +st1179: if ( ++p == pe ) - goto _test_eof1167; -case 1167: + goto _test_eof1179; +case 1179: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76528,21 +77435,21 @@ case 1167: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1167; - case 32: goto st1167; - case 40: goto tr3020; - case 41: goto tr3021; - case 3082: goto tr3023; - case 3131: goto tr3024; - case 3338: goto tr3005; - case 3387: goto tr3005; - case 3594: goto tr3025; - case 3643: goto tr3026; + case 9: goto st1179; + case 32: goto st1179; + case 40: goto tr3049; + case 41: goto tr3050; + case 3082: goto tr3052; + case 3131: goto tr3053; + case 3338: goto tr3034; + case 3387: goto tr3034; + case 3594: goto tr3054; + case 3643: goto tr3055; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3022; - goto tr2896; -tr3031: + goto tr3051; + goto tr2925; +tr3060: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76554,11 +77461,11 @@ tr3031: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1168; -tr3022: + goto st1180; +tr3051: { s->decimals = 2; } @@ -76579,14 +77486,14 @@ tr3022: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1168; -st1168: + goto st1180; +st1180: if ( ++p == pe ) - goto _test_eof1168; -case 1168: + goto _test_eof1180; +case 1180: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76604,46 +77511,46 @@ case 1168: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3027; - case 32: goto tr3027; - case 40: goto tr3028; - case 41: goto tr3029; - case 46: goto st1176; - case 109: goto tr3032; - case 3082: goto tr3033; - case 3131: goto tr3034; - case 3338: goto tr3035; - case 3387: goto tr3035; - case 3594: goto tr3036; - case 3643: goto tr3037; + case 9: goto tr3056; + case 32: goto tr3056; + case 40: goto tr3057; + case 41: goto tr3058; + case 46: goto st1188; + case 109: goto tr3061; + case 3082: goto tr3062; + case 3131: goto tr3063; + case 3338: goto tr3064; + case 3387: goto tr3064; + case 3594: goto tr3065; + case 3643: goto tr3066; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3031; - goto tr2896; -tr3039: + goto tr3060; + goto tr2925; +tr3068: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1169; -tr3040: + goto st1181; +tr3069: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1169; -tr3042: + goto st1181; +tr3071: { s->line_counter++; } - goto st1169; -tr3076: + goto st1181; +tr3105: { s->buffer[s->buffer_length++] = 0; @@ -76653,15 +77560,15 @@ tr3076: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1169; goto _out;} + {p++; cs = 1181; goto _out;} } } } { s->line_counter++; } - goto st1169; -tr3027: + goto st1181; +tr3056: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76671,7 +77578,7 @@ tr3027: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76679,11 +77586,11 @@ tr3027: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1169; -tr3028: + goto st1181; +tr3057: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76693,7 +77600,7 @@ tr3028: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76701,18 +77608,18 @@ tr3028: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1169; -tr3029: + goto st1181; +tr3058: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76722,7 +77629,7 @@ tr3029: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76730,18 +77637,18 @@ tr3029: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1169; -tr3033: + goto st1181; +tr3062: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76751,7 +77658,7 @@ tr3033: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76759,14 +77666,14 @@ tr3033: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1169; -tr3077: + goto st1181; +tr3106: { s->number64_tmp = s->number64; } @@ -76779,7 +77686,7 @@ tr3077: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76787,11 +77694,11 @@ tr3077: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1169; -tr3078: + goto st1181; +tr3107: { s->number64_tmp = s->number64; } @@ -76804,7 +77711,7 @@ tr3078: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76812,18 +77719,18 @@ tr3078: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1169; -tr3079: + goto st1181; +tr3108: { s->number64_tmp = s->number64; } @@ -76836,7 +77743,7 @@ tr3079: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76844,18 +77751,18 @@ tr3079: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1169; -tr3082: + goto st1181; +tr3111: { s->number64_tmp = s->number64; } @@ -76868,7 +77775,7 @@ tr3082: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -76876,17 +77783,17 @@ tr3082: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1169; -st1169: + goto st1181; +st1181: if ( ++p == pe ) - goto _test_eof1169; -case 1169: + goto _test_eof1181; +case 1181: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76904,21 +77811,21 @@ case 1169: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1169; - case 32: goto st1169; - case 40: goto tr3039; - case 41: goto tr3040; - case 3082: goto tr3042; - case 3131: goto tr3043; - case 3338: goto tr3005; - case 3387: goto tr3005; - case 3594: goto tr3044; - case 3643: goto tr3045; + case 9: goto st1181; + case 32: goto st1181; + case 40: goto tr3068; + case 41: goto tr3069; + case 3082: goto tr3071; + case 3131: goto tr3072; + case 3338: goto tr3034; + case 3387: goto tr3034; + case 3594: goto tr3073; + case 3643: goto tr3074; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3041; - goto tr2896; -tr3050: + goto tr3070; + goto tr2925; +tr3079: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76930,11 +77837,11 @@ tr3050: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1170; -tr3041: + goto st1182; +tr3070: { s->decimals = 2; } @@ -76955,14 +77862,14 @@ tr3041: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1170; -st1170: + goto st1182; +st1182: if ( ++p == pe ) - goto _test_eof1170; -case 1170: + goto _test_eof1182; +case 1182: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76980,46 +77887,46 @@ case 1170: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3046; - case 32: goto tr3046; - case 40: goto tr3047; - case 41: goto tr3048; - case 46: goto st1173; - case 109: goto tr3046; - case 3082: goto tr3051; - case 3131: goto tr3052; - case 3338: goto tr3053; - case 3387: goto tr3053; - case 3594: goto tr3054; - case 3643: goto tr3055; + case 9: goto tr3075; + case 32: goto tr3075; + case 40: goto tr3076; + case 41: goto tr3077; + case 46: goto st1185; + case 109: goto tr3075; + case 3082: goto tr3080; + case 3131: goto tr3081; + case 3338: goto tr3082; + case 3387: goto tr3082; + case 3594: goto tr3083; + case 3643: goto tr3084; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3050; - goto tr2896; -tr3057: + goto tr3079; + goto tr2925; +tr3086: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1171; -tr3058: + goto st1183; +tr3087: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1171; -tr3059: + goto st1183; +tr3088: { s->line_counter++; } - goto st1171; -tr3064: + goto st1183; +tr3093: { s->buffer[s->buffer_length++] = 0; @@ -77029,15 +77936,15 @@ tr3064: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1171; goto _out;} + {p++; cs = 1183; goto _out;} } } } { s->line_counter++; } - goto st1171; -tr3046: + goto st1183; +tr3075: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77047,7 +77954,7 @@ tr3046: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77055,11 +77962,11 @@ tr3046: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1171; -tr3047: + goto st1183; +tr3076: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77069,7 +77976,7 @@ tr3047: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77077,18 +77984,18 @@ tr3047: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1171; -tr3048: + goto st1183; +tr3077: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77098,7 +78005,7 @@ tr3048: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77106,18 +78013,18 @@ tr3048: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1171; -tr3051: + goto st1183; +tr3080: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77127,7 +78034,7 @@ tr3051: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77135,14 +78042,14 @@ tr3051: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1171; -tr3065: + goto st1183; +tr3094: { s->number64_tmp = s->number64; } @@ -77155,7 +78062,7 @@ tr3065: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77163,11 +78070,11 @@ tr3065: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1171; -tr3066: + goto st1183; +tr3095: { s->number64_tmp = s->number64; } @@ -77180,7 +78087,7 @@ tr3066: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77188,18 +78095,18 @@ tr3066: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1171; -tr3067: + goto st1183; +tr3096: { s->number64_tmp = s->number64; } @@ -77212,7 +78119,7 @@ tr3067: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77220,18 +78127,18 @@ tr3067: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1171; -tr3069: + goto st1183; +tr3098: { s->number64_tmp = s->number64; } @@ -77244,7 +78151,7 @@ tr3069: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77252,17 +78159,17 @@ tr3069: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1171; -st1171: + goto st1183; +st1183: if ( ++p == pe ) - goto _test_eof1171; -case 1171: + goto _test_eof1183; +case 1183: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77280,31 +78187,31 @@ case 1171: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1171; - case 32: goto st1171; - case 40: goto tr3057; - case 41: goto tr3058; - case 3082: goto tr3059; - case 3131: goto tr3060; - case 3338: goto tr3005; - case 3387: goto tr3005; - case 3594: goto tr3061; - case 3643: goto tr3062; - } - goto tr2896; -tr3060: + case 9: goto st1183; + case 32: goto st1183; + case 40: goto tr3086; + case 41: goto tr3087; + case 3082: goto tr3088; + case 3131: goto tr3089; + case 3338: goto tr3034; + case 3387: goto tr3034; + case 3594: goto tr3090; + case 3643: goto tr3091; + } + goto tr2925; +tr3089: { s->buffer_length = 0; } - goto st1172; -tr3063: + goto st1184; +tr3092: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1172; -tr3052: + goto st1184; +tr3081: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77314,7 +78221,7 @@ tr3052: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77322,14 +78229,14 @@ tr3052: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1172; -tr3070: + goto st1184; +tr3099: { s->number64_tmp = s->number64; } @@ -77342,7 +78249,7 @@ tr3070: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77350,17 +78257,17 @@ tr3070: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1172; -st1172: + goto st1184; +st1184: if ( ++p == pe ) - goto _test_eof1172; -case 1172: + goto _test_eof1184; +case 1184: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -77380,11 +78287,11 @@ case 1172: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3064; + goto tr3093; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3063; - goto tr2896; -tr2996: + goto tr3092; + goto tr2925; +tr3025: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77394,7 +78301,7 @@ tr2996: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77404,7 +78311,7 @@ tr2996: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77436,8 +78343,8 @@ tr2996: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr3005: + goto st1555; +tr3034: { // Write version. *(rdata_tail) = 0; @@ -77467,8 +78374,8 @@ tr3005: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr3016: + goto st1555; +tr3045: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77478,7 +78385,7 @@ tr3016: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77486,7 +78393,7 @@ tr3016: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77518,8 +78425,8 @@ tr3016: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr3035: + goto st1555; +tr3064: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77529,7 +78436,7 @@ tr3035: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77537,7 +78444,7 @@ tr3035: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77569,8 +78476,8 @@ tr3035: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr3053: + goto st1555; +tr3082: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77580,7 +78487,7 @@ tr3053: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77588,7 +78495,7 @@ tr3053: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77620,8 +78527,8 @@ tr3053: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr3071: + goto st1555; +tr3100: { s->number64_tmp = s->number64; } @@ -77634,7 +78541,7 @@ tr3071: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77642,7 +78549,7 @@ tr3071: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77674,8 +78581,8 @@ tr3071: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr3084: + goto st1555; +tr3113: { s->number64_tmp = s->number64; } @@ -77688,7 +78595,7 @@ tr3084: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77696,7 +78603,7 @@ tr3084: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77728,8 +78635,8 @@ tr3084: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr3097: + goto st1555; +tr3126: { s->number64_tmp = s->number64; } @@ -77742,7 +78649,7 @@ tr3097: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77750,7 +78657,7 @@ tr3097: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77782,8 +78689,8 @@ tr3097: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr3110: + goto st1555; +tr3139: { s->number64_tmp = s->number64; } @@ -77796,7 +78703,7 @@ tr3110: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77806,7 +78713,7 @@ tr3110: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77838,13 +78745,13 @@ tr3110: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -st1543: + goto st1555; +st1555: if ( ++p == pe ) - goto _test_eof1543; -case 1543: + goto _test_eof1555; +case 1555: goto st0; -tr3061: +tr3090: { s->line_counter++; } @@ -77877,8 +78784,8 @@ tr3061: { p--; {cs = stack[--top];goto _again;} } - goto st1544; -tr3054: + goto st1556; +tr3083: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77888,7 +78795,7 @@ tr3054: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77896,7 +78803,7 @@ tr3054: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77931,8 +78838,8 @@ tr3054: { p--; {cs = stack[--top];goto _again;} } - goto st1544; -tr3072: + goto st1556; +tr3101: { s->number64_tmp = s->number64; } @@ -77945,7 +78852,7 @@ tr3072: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77953,7 +78860,7 @@ tr3072: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -77988,11 +78895,11 @@ tr3072: { p--; {cs = stack[--top];goto _again;} } - goto st1544; -st1544: + goto st1556; +st1556: if ( ++p == pe ) - goto _test_eof1544; -case 1544: + goto _test_eof1556; +case 1556: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78010,19 +78917,19 @@ case 1544: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1171; - case 32: goto st1171; - case 40: goto tr3057; - case 41: goto tr3058; - case 3082: goto tr3059; - case 3131: goto tr3060; - case 3338: goto tr3005; - case 3387: goto tr3005; - case 3594: goto tr3061; - case 3643: goto tr3062; - } - goto tr2896; -tr3062: + case 9: goto st1183; + case 32: goto st1183; + case 40: goto tr3086; + case 41: goto tr3087; + case 3082: goto tr3088; + case 3131: goto tr3089; + case 3338: goto tr3034; + case 3387: goto tr3034; + case 3594: goto tr3090; + case 3643: goto tr3091; + } + goto tr2925; +tr3091: { s->buffer_length = 0; } @@ -78055,8 +78962,8 @@ tr3062: { p--; {cs = stack[--top];goto _again;} } - goto st1545; -tr3055: + goto st1557; +tr3084: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78066,7 +78973,7 @@ tr3055: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78074,7 +78981,7 @@ tr3055: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78109,8 +79016,8 @@ tr3055: { p--; {cs = stack[--top];goto _again;} } - goto st1545; -tr3073: + goto st1557; +tr3102: { s->number64_tmp = s->number64; } @@ -78123,7 +79030,7 @@ tr3073: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78131,7 +79038,7 @@ tr3073: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78166,11 +79073,11 @@ tr3073: { p--; {cs = stack[--top];goto _again;} } - goto st1545; -st1545: + goto st1557; +st1557: if ( ++p == pe ) - goto _test_eof1545; -case 1545: + goto _test_eof1557; +case 1557: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78190,14 +79097,14 @@ case 1545: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3064; + goto tr3093; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3063; - goto tr2896; -st1173: + goto tr3092; + goto tr2925; +st1185: if ( ++p == pe ) - goto _test_eof1173; -case 1173: + goto _test_eof1185; +case 1185: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78215,22 +79122,22 @@ case 1173: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3065; - case 32: goto tr3065; - case 40: goto tr3066; - case 41: goto tr3067; - case 109: goto tr3065; - case 3082: goto tr3069; - case 3131: goto tr3070; - case 3338: goto tr3071; - case 3387: goto tr3071; - case 3594: goto tr3072; - case 3643: goto tr3073; + case 9: goto tr3094; + case 32: goto tr3094; + case 40: goto tr3095; + case 41: goto tr3096; + case 109: goto tr3094; + case 3082: goto tr3098; + case 3131: goto tr3099; + case 3338: goto tr3100; + case 3387: goto tr3100; + case 3594: goto tr3101; + case 3643: goto tr3102; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3068; - goto tr2896; -tr3068: + goto tr3097; + goto tr2925; +tr3097: { s->number64_tmp = s->number64; } @@ -78248,14 +79155,14 @@ tr3068: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1174; -tr3074: + goto st1186; +tr3103: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -78267,17 +79174,17 @@ tr3074: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1174; -st1174: + goto st1186; +st1186: if ( ++p == pe ) - goto _test_eof1174; -case 1174: + goto _test_eof1186; +case 1186: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78295,34 +79202,34 @@ case 1174: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3046; - case 32: goto tr3046; - case 40: goto tr3047; - case 41: goto tr3048; - case 109: goto tr3046; - case 3082: goto tr3051; - case 3131: goto tr3052; - case 3338: goto tr3053; - case 3387: goto tr3053; - case 3594: goto tr3054; - case 3643: goto tr3055; + case 9: goto tr3075; + case 32: goto tr3075; + case 40: goto tr3076; + case 41: goto tr3077; + case 109: goto tr3075; + case 3082: goto tr3080; + case 3131: goto tr3081; + case 3338: goto tr3082; + case 3387: goto tr3082; + case 3594: goto tr3083; + case 3643: goto tr3084; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3074; - goto tr2896; -tr3043: + goto tr3103; + goto tr2925; +tr3072: { s->buffer_length = 0; } - goto st1175; -tr3075: + goto st1187; +tr3104: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1175; -tr3034: + goto st1187; +tr3063: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78332,7 +79239,7 @@ tr3034: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78340,14 +79247,14 @@ tr3034: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1175; -tr3083: + goto st1187; +tr3112: { s->number64_tmp = s->number64; } @@ -78360,7 +79267,7 @@ tr3083: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78368,17 +79275,17 @@ tr3083: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1175; -st1175: + goto st1187; +st1187: if ( ++p == pe ) - goto _test_eof1175; -case 1175: + goto _test_eof1187; +case 1187: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78398,11 +79305,11 @@ case 1175: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3076; + goto tr3105; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3075; - goto tr2896; -tr3044: + goto tr3104; + goto tr2925; +tr3073: { s->line_counter++; } @@ -78435,8 +79342,8 @@ tr3044: { p--; {cs = stack[--top];goto _again;} } - goto st1546; -tr3036: + goto st1558; +tr3065: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78446,7 +79353,7 @@ tr3036: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78454,7 +79361,7 @@ tr3036: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78489,8 +79396,8 @@ tr3036: { p--; {cs = stack[--top];goto _again;} } - goto st1546; -tr3085: + goto st1558; +tr3114: { s->number64_tmp = s->number64; } @@ -78503,7 +79410,7 @@ tr3085: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78511,7 +79418,7 @@ tr3085: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78546,11 +79453,11 @@ tr3085: { p--; {cs = stack[--top];goto _again;} } - goto st1546; -st1546: + goto st1558; +st1558: if ( ++p == pe ) - goto _test_eof1546; -case 1546: + goto _test_eof1558; +case 1558: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78568,21 +79475,21 @@ case 1546: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1169; - case 32: goto st1169; - case 40: goto tr3039; - case 41: goto tr3040; - case 3082: goto tr3042; - case 3131: goto tr3043; - case 3338: goto tr3005; - case 3387: goto tr3005; - case 3594: goto tr3044; - case 3643: goto tr3045; + case 9: goto st1181; + case 32: goto st1181; + case 40: goto tr3068; + case 41: goto tr3069; + case 3082: goto tr3071; + case 3131: goto tr3072; + case 3338: goto tr3034; + case 3387: goto tr3034; + case 3594: goto tr3073; + case 3643: goto tr3074; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3041; - goto tr2896; -tr3045: + goto tr3070; + goto tr2925; +tr3074: { s->buffer_length = 0; } @@ -78615,8 +79522,8 @@ tr3045: { p--; {cs = stack[--top];goto _again;} } - goto st1547; -tr3037: + goto st1559; +tr3066: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78626,7 +79533,7 @@ tr3037: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78634,7 +79541,7 @@ tr3037: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78669,8 +79576,8 @@ tr3037: { p--; {cs = stack[--top];goto _again;} } - goto st1547; -tr3086: + goto st1559; +tr3115: { s->number64_tmp = s->number64; } @@ -78683,7 +79590,7 @@ tr3086: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78691,7 +79598,7 @@ tr3086: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78726,11 +79633,11 @@ tr3086: { p--; {cs = stack[--top];goto _again;} } - goto st1547; -st1547: + goto st1559; +st1559: if ( ++p == pe ) - goto _test_eof1547; -case 1547: + goto _test_eof1559; +case 1559: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78750,14 +79657,14 @@ case 1547: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3076; + goto tr3105; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3075; - goto tr2896; -st1176: + goto tr3104; + goto tr2925; +st1188: if ( ++p == pe ) - goto _test_eof1176; -case 1176: + goto _test_eof1188; +case 1188: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78775,22 +79682,22 @@ case 1176: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3077; - case 32: goto tr3077; - case 40: goto tr3078; - case 41: goto tr3079; - case 109: goto tr3081; - case 3082: goto tr3082; - case 3131: goto tr3083; - case 3338: goto tr3084; - case 3387: goto tr3084; - case 3594: goto tr3085; - case 3643: goto tr3086; + case 9: goto tr3106; + case 32: goto tr3106; + case 40: goto tr3107; + case 41: goto tr3108; + case 109: goto tr3110; + case 3082: goto tr3111; + case 3131: goto tr3112; + case 3338: goto tr3113; + case 3387: goto tr3113; + case 3594: goto tr3114; + case 3643: goto tr3115; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3080; - goto tr2896; -tr3080: + goto tr3109; + goto tr2925; +tr3109: { s->number64_tmp = s->number64; } @@ -78808,14 +79715,14 @@ tr3080: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1177; -tr3087: + goto st1189; +tr3116: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -78827,17 +79734,17 @@ tr3087: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1177; -st1177: + goto st1189; +st1189: if ( ++p == pe ) - goto _test_eof1177; -case 1177: + goto _test_eof1189; +case 1189: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78855,22 +79762,22 @@ case 1177: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3027; - case 32: goto tr3027; - case 40: goto tr3028; - case 41: goto tr3029; - case 109: goto tr3032; - case 3082: goto tr3033; - case 3131: goto tr3034; - case 3338: goto tr3035; - case 3387: goto tr3035; - case 3594: goto tr3036; - case 3643: goto tr3037; + case 9: goto tr3056; + case 32: goto tr3056; + case 40: goto tr3057; + case 41: goto tr3058; + case 109: goto tr3061; + case 3082: goto tr3062; + case 3131: goto tr3063; + case 3338: goto tr3064; + case 3387: goto tr3064; + case 3594: goto tr3065; + case 3643: goto tr3066; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3087; - goto tr2896; -tr3032: + goto tr3116; + goto tr2925; +tr3061: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78880,7 +79787,7 @@ tr3032: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78888,11 +79795,11 @@ tr3032: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1178; -tr3081: + goto st1190; +tr3110: { s->number64_tmp = s->number64; } @@ -78905,7 +79812,7 @@ tr3081: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78913,14 +79820,14 @@ tr3081: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1178; -st1178: + goto st1190; +st1190: if ( ++p == pe ) - goto _test_eof1178; -case 1178: + goto _test_eof1190; +case 1190: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78938,31 +79845,31 @@ case 1178: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1169; - case 32: goto st1169; - case 40: goto tr3039; - case 41: goto tr3040; - case 3082: goto tr3042; - case 3131: goto tr3043; - case 3338: goto tr3005; - case 3387: goto tr3005; - case 3594: goto tr3044; - case 3643: goto tr3045; - } - goto tr2896; -tr3024: + case 9: goto st1181; + case 32: goto st1181; + case 40: goto tr3068; + case 41: goto tr3069; + case 3082: goto tr3071; + case 3131: goto tr3072; + case 3338: goto tr3034; + case 3387: goto tr3034; + case 3594: goto tr3073; + case 3643: goto tr3074; + } + goto tr2925; +tr3053: { s->buffer_length = 0; } - goto st1179; -tr3088: + goto st1191; +tr3117: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1179; -tr3015: + goto st1191; +tr3044: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78972,7 +79879,7 @@ tr3015: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -78980,14 +79887,14 @@ tr3015: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1179; -tr3096: + goto st1191; +tr3125: { s->number64_tmp = s->number64; } @@ -79000,7 +79907,7 @@ tr3096: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79008,17 +79915,17 @@ tr3096: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1179; -st1179: + goto st1191; +st1191: if ( ++p == pe ) - goto _test_eof1179; -case 1179: + goto _test_eof1191; +case 1191: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79038,11 +79945,11 @@ case 1179: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3089; + goto tr3118; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3088; - goto tr2896; -tr3025: + goto tr3117; + goto tr2925; +tr3054: { s->line_counter++; } @@ -79075,8 +79982,8 @@ tr3025: { p--; {cs = stack[--top];goto _again;} } - goto st1548; -tr3017: + goto st1560; +tr3046: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79086,7 +79993,7 @@ tr3017: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79094,7 +80001,7 @@ tr3017: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79129,8 +80036,8 @@ tr3017: { p--; {cs = stack[--top];goto _again;} } - goto st1548; -tr3098: + goto st1560; +tr3127: { s->number64_tmp = s->number64; } @@ -79143,7 +80050,7 @@ tr3098: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79151,7 +80058,7 @@ tr3098: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79186,11 +80093,11 @@ tr3098: { p--; {cs = stack[--top];goto _again;} } - goto st1548; -st1548: + goto st1560; +st1560: if ( ++p == pe ) - goto _test_eof1548; -case 1548: + goto _test_eof1560; +case 1560: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79208,21 +80115,21 @@ case 1548: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1167; - case 32: goto st1167; - case 40: goto tr3020; - case 41: goto tr3021; - case 3082: goto tr3023; - case 3131: goto tr3024; - case 3338: goto tr3005; - case 3387: goto tr3005; - case 3594: goto tr3025; - case 3643: goto tr3026; + case 9: goto st1179; + case 32: goto st1179; + case 40: goto tr3049; + case 41: goto tr3050; + case 3082: goto tr3052; + case 3131: goto tr3053; + case 3338: goto tr3034; + case 3387: goto tr3034; + case 3594: goto tr3054; + case 3643: goto tr3055; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3022; - goto tr2896; -tr3026: + goto tr3051; + goto tr2925; +tr3055: { s->buffer_length = 0; } @@ -79255,8 +80162,8 @@ tr3026: { p--; {cs = stack[--top];goto _again;} } - goto st1549; -tr3018: + goto st1561; +tr3047: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79266,7 +80173,7 @@ tr3018: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79274,7 +80181,7 @@ tr3018: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79309,8 +80216,8 @@ tr3018: { p--; {cs = stack[--top];goto _again;} } - goto st1549; -tr3099: + goto st1561; +tr3128: { s->number64_tmp = s->number64; } @@ -79323,7 +80230,7 @@ tr3099: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79331,7 +80238,7 @@ tr3099: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79366,11 +80273,11 @@ tr3099: { p--; {cs = stack[--top];goto _again;} } - goto st1549; -st1549: + goto st1561; +st1561: if ( ++p == pe ) - goto _test_eof1549; -case 1549: + goto _test_eof1561; +case 1561: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79390,14 +80297,14 @@ case 1549: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3089; + goto tr3118; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3088; - goto tr2896; -st1180: + goto tr3117; + goto tr2925; +st1192: if ( ++p == pe ) - goto _test_eof1180; -case 1180: + goto _test_eof1192; +case 1192: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79415,22 +80322,22 @@ case 1180: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3090; - case 32: goto tr3090; - case 40: goto tr3091; - case 41: goto tr3092; - case 109: goto tr3094; - case 3082: goto tr3095; - case 3131: goto tr3096; - case 3338: goto tr3097; - case 3387: goto tr3097; - case 3594: goto tr3098; - case 3643: goto tr3099; + case 9: goto tr3119; + case 32: goto tr3119; + case 40: goto tr3120; + case 41: goto tr3121; + case 109: goto tr3123; + case 3082: goto tr3124; + case 3131: goto tr3125; + case 3338: goto tr3126; + case 3387: goto tr3126; + case 3594: goto tr3127; + case 3643: goto tr3128; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3093; - goto tr2896; -tr3093: + goto tr3122; + goto tr2925; +tr3122: { s->number64_tmp = s->number64; } @@ -79448,14 +80355,14 @@ tr3093: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1181; -tr3100: + goto st1193; +tr3129: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -79467,17 +80374,17 @@ tr3100: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1181; -st1181: + goto st1193; +st1193: if ( ++p == pe ) - goto _test_eof1181; -case 1181: + goto _test_eof1193; +case 1193: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79495,22 +80402,22 @@ case 1181: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3008; - case 32: goto tr3008; - case 40: goto tr3009; - case 41: goto tr3010; - case 109: goto tr3013; - case 3082: goto tr3014; - case 3131: goto tr3015; - case 3338: goto tr3016; - case 3387: goto tr3016; - case 3594: goto tr3017; - case 3643: goto tr3018; + case 9: goto tr3037; + case 32: goto tr3037; + case 40: goto tr3038; + case 41: goto tr3039; + case 109: goto tr3042; + case 3082: goto tr3043; + case 3131: goto tr3044; + case 3338: goto tr3045; + case 3387: goto tr3045; + case 3594: goto tr3046; + case 3643: goto tr3047; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3100; - goto tr2896; -tr3013: + goto tr3129; + goto tr2925; +tr3042: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79520,7 +80427,7 @@ tr3013: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79528,11 +80435,11 @@ tr3013: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1182; -tr3094: + goto st1194; +tr3123: { s->number64_tmp = s->number64; } @@ -79545,7 +80452,7 @@ tr3094: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79553,14 +80460,14 @@ tr3094: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1182; -st1182: + goto st1194; +st1194: if ( ++p == pe ) - goto _test_eof1182; -case 1182: + goto _test_eof1194; +case 1194: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79578,31 +80485,31 @@ case 1182: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1167; - case 32: goto st1167; - case 40: goto tr3020; - case 41: goto tr3021; - case 3082: goto tr3023; - case 3131: goto tr3024; - case 3338: goto tr3005; - case 3387: goto tr3005; - case 3594: goto tr3025; - case 3643: goto tr3026; + case 9: goto st1179; + case 32: goto st1179; + case 40: goto tr3049; + case 41: goto tr3050; + case 3082: goto tr3052; + case 3131: goto tr3053; + case 3338: goto tr3034; + case 3387: goto tr3034; + case 3594: goto tr3054; + case 3643: goto tr3055; } - goto tr2896; -tr3004: + goto tr2925; +tr3033: { s->buffer_length = 0; } - goto st1183; -tr3101: + goto st1195; +tr3130: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1183; -tr2995: + goto st1195; +tr3024: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79612,7 +80519,7 @@ tr2995: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79622,14 +80529,14 @@ tr2995: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1183; -tr3109: + goto st1195; +tr3138: { s->number64_tmp = s->number64; } @@ -79642,7 +80549,7 @@ tr3109: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79652,17 +80559,17 @@ tr3109: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1183; -st1183: + goto st1195; +st1195: if ( ++p == pe ) - goto _test_eof1183; -case 1183: + goto _test_eof1195; +case 1195: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79682,11 +80589,11 @@ case 1183: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3102; + goto tr3131; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3101; - goto tr2896; -tr2997: + goto tr3130; + goto tr2925; +tr3026: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79696,7 +80603,7 @@ tr2997: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79706,7 +80613,7 @@ tr2997: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79741,8 +80648,8 @@ tr2997: { p--; {cs = stack[--top];goto _again;} } - goto st1550; -tr3006: + goto st1562; +tr3035: { s->line_counter++; } @@ -79775,8 +80682,8 @@ tr3006: { p--; {cs = stack[--top];goto _again;} } - goto st1550; -tr3111: + goto st1562; +tr3140: { s->number64_tmp = s->number64; } @@ -79789,7 +80696,7 @@ tr3111: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79799,7 +80706,7 @@ tr3111: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79834,11 +80741,11 @@ tr3111: { p--; {cs = stack[--top];goto _again;} } - goto st1550; -st1550: + goto st1562; +st1562: if ( ++p == pe ) - goto _test_eof1550; -case 1550: + goto _test_eof1562; +case 1562: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79856,21 +80763,21 @@ case 1550: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1165; - case 32: goto st1165; - case 40: goto tr3000; - case 41: goto tr3001; - case 3082: goto tr3003; - case 3131: goto tr3004; - case 3338: goto tr3005; - case 3387: goto tr3005; - case 3594: goto tr3006; - case 3643: goto tr3007; + case 9: goto st1177; + case 32: goto st1177; + case 40: goto tr3029; + case 41: goto tr3030; + case 3082: goto tr3032; + case 3131: goto tr3033; + case 3338: goto tr3034; + case 3387: goto tr3034; + case 3594: goto tr3035; + case 3643: goto tr3036; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3002; - goto tr2896; -tr2998: + goto tr3031; + goto tr2925; +tr3027: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79880,7 +80787,7 @@ tr2998: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79890,7 +80797,7 @@ tr2998: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79925,8 +80832,8 @@ tr2998: { p--; {cs = stack[--top];goto _again;} } - goto st1551; -tr3007: + goto st1563; +tr3036: { s->buffer_length = 0; } @@ -79959,8 +80866,8 @@ tr3007: { p--; {cs = stack[--top];goto _again;} } - goto st1551; -tr3112: + goto st1563; +tr3141: { s->number64_tmp = s->number64; } @@ -79973,7 +80880,7 @@ tr3112: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -79983,7 +80890,7 @@ tr3112: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -80018,11 +80925,11 @@ tr3112: { p--; {cs = stack[--top];goto _again;} } - goto st1551; -st1551: + goto st1563; +st1563: if ( ++p == pe ) - goto _test_eof1551; -case 1551: + goto _test_eof1563; +case 1563: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80042,14 +80949,14 @@ case 1551: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3102; + goto tr3131; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3101; - goto tr2896; -st1184: + goto tr3130; + goto tr2925; +st1196: if ( ++p == pe ) - goto _test_eof1184; -case 1184: + goto _test_eof1196; +case 1196: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80067,22 +80974,22 @@ case 1184: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3103; - case 32: goto tr3103; - case 40: goto tr3104; - case 41: goto tr3105; - case 109: goto tr3107; - case 3082: goto tr3108; - case 3131: goto tr3109; - case 3338: goto tr3110; - case 3387: goto tr3110; - case 3594: goto tr3111; - case 3643: goto tr3112; + case 9: goto tr3132; + case 32: goto tr3132; + case 40: goto tr3133; + case 41: goto tr3134; + case 109: goto tr3136; + case 3082: goto tr3137; + case 3131: goto tr3138; + case 3338: goto tr3139; + case 3387: goto tr3139; + case 3594: goto tr3140; + case 3643: goto tr3141; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3106; - goto tr2896; -tr3106: + goto tr3135; + goto tr2925; +tr3135: { s->number64_tmp = s->number64; } @@ -80100,14 +81007,14 @@ tr3106: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1185; -tr3113: + goto st1197; +tr3142: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80119,17 +81026,17 @@ tr3113: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1185; -st1185: + goto st1197; +st1197: if ( ++p == pe ) - goto _test_eof1185; -case 1185: + goto _test_eof1197; +case 1197: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80147,22 +81054,22 @@ case 1185: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2988; - case 32: goto tr2988; - case 40: goto tr2989; - case 41: goto tr2990; - case 109: goto tr2993; - case 3082: goto tr2994; - case 3131: goto tr2995; - case 3338: goto tr2996; - case 3387: goto tr2996; - case 3594: goto tr2997; - case 3643: goto tr2998; + case 9: goto tr3017; + case 32: goto tr3017; + case 40: goto tr3018; + case 41: goto tr3019; + case 109: goto tr3022; + case 3082: goto tr3023; + case 3131: goto tr3024; + case 3338: goto tr3025; + case 3387: goto tr3025; + case 3594: goto tr3026; + case 3643: goto tr3027; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3113; - goto tr2896; -tr2993: + goto tr3142; + goto tr2925; +tr3022: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -80172,7 +81079,7 @@ tr2993: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -80182,11 +81089,11 @@ tr2993: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1186; -tr3107: + goto st1198; +tr3136: { s->number64_tmp = s->number64; } @@ -80199,7 +81106,7 @@ tr3107: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -80209,14 +81116,14 @@ tr3107: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1186; -st1186: + goto st1198; +st1198: if ( ++p == pe ) - goto _test_eof1186; -case 1186: + goto _test_eof1198; +case 1198: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80234,42 +81141,42 @@ case 1186: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1165; - case 32: goto st1165; - case 40: goto tr3000; - case 41: goto tr3001; - case 3082: goto tr3003; - case 3131: goto tr3004; - case 3338: goto tr3005; - case 3387: goto tr3005; - case 3594: goto tr3006; - case 3643: goto tr3007; - } - goto tr2896; -tr2984: + case 9: goto st1177; + case 32: goto st1177; + case 40: goto tr3029; + case 41: goto tr3030; + case 3082: goto tr3032; + case 3131: goto tr3033; + case 3338: goto tr3034; + case 3387: goto tr3034; + case 3594: goto tr3035; + case 3643: goto tr3036; + } + goto tr2925; +tr3013: { s->buffer_length = 0; } - goto st1187; -tr3114: + goto st1199; +tr3143: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1187; -tr3120: + goto st1199; +tr3149: { s->loc.long_sign = -1; } { s->buffer_length = 0; } - goto st1187; -st1187: + goto st1199; +st1199: if ( ++p == pe ) - goto _test_eof1187; -case 1187: + goto _test_eof1199; +case 1199: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80289,14 +81196,14 @@ case 1187: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3115; + goto tr3144; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3114; - goto tr2896; -st1188: + goto tr3143; + goto tr2925; +st1200: if ( ++p == pe ) - goto _test_eof1188; -case 1188: + goto _test_eof1200; +case 1200: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80310,27 +81217,27 @@ case 1188: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3116; - case 32: goto tr3116; - case 40: goto tr3117; - case 41: goto tr3118; - case 2058: goto tr3119; - case 2107: goto tr3120; - } - goto tr2896; -tr2979: + case 9: goto tr3145; + case 32: goto tr3145; + case 40: goto tr3146; + case 41: goto tr3147; + case 2058: goto tr3148; + case 2107: goto tr3149; + } + goto tr2925; +tr3008: { s->buffer_length = 0; } - goto st1189; -tr3121: + goto st1201; +tr3150: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1189; -tr2974: + goto st1201; +tr3003: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -80340,7 +81247,7 @@ tr2974: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -80348,14 +81255,14 @@ tr2974: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1189; -tr3128: + goto st1201; +tr3157: { s->number64_tmp = s->number64; } @@ -80368,7 +81275,7 @@ tr3128: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -80376,17 +81283,17 @@ tr3128: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1189; -st1189: + goto st1201; +st1201: if ( ++p == pe ) - goto _test_eof1189; -case 1189: + goto _test_eof1201; +case 1201: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80406,14 +81313,14 @@ case 1189: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3122; + goto tr3151; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3121; - goto tr2896; -st1190: + goto tr3150; + goto tr2925; +st1202: if ( ++p == pe ) - goto _test_eof1190; -case 1190: + goto _test_eof1202; +case 1202: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80427,17 +81334,17 @@ case 1190: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3123; - case 32: goto tr3123; - case 40: goto tr3124; - case 41: goto tr3125; - case 2058: goto tr3127; - case 2107: goto tr3128; + case 9: goto tr3152; + case 32: goto tr3152; + case 40: goto tr3153; + case 41: goto tr3154; + case 2058: goto tr3156; + case 2107: goto tr3157; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3126; - goto tr2896; -tr3126: + goto tr3155; + goto tr2925; +tr3155: { s->number64_tmp = s->number64; } @@ -80455,14 +81362,14 @@ tr3126: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1191; -tr3129: + goto st1203; +tr3158: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80474,17 +81381,17 @@ tr3129: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1191; -st1191: + goto st1203; +st1203: if ( ++p == pe ) - goto _test_eof1191; -case 1191: + goto _test_eof1203; +case 1203: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80498,45 +81405,45 @@ case 1191: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2968; - case 32: goto tr2968; - case 40: goto tr2969; - case 41: goto tr2970; - case 2058: goto tr2973; - case 2107: goto tr2974; + case 9: goto tr2997; + case 32: goto tr2997; + case 40: goto tr2998; + case 41: goto tr2999; + case 2058: goto tr3002; + case 2107: goto tr3003; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3129; - goto tr2896; -tr2967: + goto tr3158; + goto tr2925; +tr2996: { s->buffer_length = 0; } - goto st1192; -tr3130: + goto st1204; +tr3159: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1192; -tr2961: + goto st1204; +tr2990: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1192; -st1192: + goto st1204; +st1204: if ( ++p == pe ) - goto _test_eof1192; -case 1192: + goto _test_eof1204; +case 1204: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80556,39 +81463,39 @@ case 1192: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3131; + goto tr3160; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3130; - goto tr2896; -tr2955: + goto tr3159; + goto tr2925; +tr2984: { s->buffer_length = 0; } - goto st1193; -tr3132: + goto st1205; +tr3161: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1193; -tr2947: + goto st1205; +tr2976: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1193; -st1193: + goto st1205; +st1205: if ( ++p == pe ) - goto _test_eof1193; -case 1193: + goto _test_eof1205; +case 1205: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80608,34 +81515,34 @@ case 1193: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3133; + goto tr3162; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3132; - goto tr2896; -tr2940: + goto tr3161; + goto tr2925; +tr2969: { s->buffer_length = 0; } - goto st1194; -tr3134: + goto st1206; +tr3163: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1194; -tr3140: + goto st1206; +tr3169: { s->loc.lat_sign = -1; } { s->buffer_length = 0; } - goto st1194; -st1194: + goto st1206; +st1206: if ( ++p == pe ) - goto _test_eof1194; -case 1194: + goto _test_eof1206; +case 1206: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80655,14 +81562,14 @@ case 1194: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3135; + goto tr3164; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3134; - goto tr2896; -st1195: + goto tr3163; + goto tr2925; +st1207: if ( ++p == pe ) - goto _test_eof1195; -case 1195: + goto _test_eof1207; +case 1207: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80676,27 +81583,27 @@ case 1195: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3136; - case 32: goto tr3136; - case 40: goto tr3137; - case 41: goto tr3138; - case 2058: goto tr3139; - case 2107: goto tr3140; - } - goto tr2896; -tr2935: + case 9: goto tr3165; + case 32: goto tr3165; + case 40: goto tr3166; + case 41: goto tr3167; + case 2058: goto tr3168; + case 2107: goto tr3169; + } + goto tr2925; +tr2964: { s->buffer_length = 0; } - goto st1196; -tr3141: + goto st1208; +tr3170: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1196; -tr2930: + goto st1208; +tr2959: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -80706,7 +81613,7 @@ tr2930: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -80714,14 +81621,14 @@ tr2930: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1196; -tr3148: + goto st1208; +tr3177: { s->number64_tmp = s->number64; } @@ -80734,7 +81641,7 @@ tr3148: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -80742,17 +81649,17 @@ tr3148: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1196; -st1196: + goto st1208; +st1208: if ( ++p == pe ) - goto _test_eof1196; -case 1196: + goto _test_eof1208; +case 1208: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80772,14 +81679,14 @@ case 1196: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3142; + goto tr3171; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3141; - goto tr2896; -st1197: + goto tr3170; + goto tr2925; +st1209: if ( ++p == pe ) - goto _test_eof1197; -case 1197: + goto _test_eof1209; +case 1209: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80793,17 +81700,17 @@ case 1197: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3143; - case 32: goto tr3143; - case 40: goto tr3144; - case 41: goto tr3145; - case 2058: goto tr3147; - case 2107: goto tr3148; + case 9: goto tr3172; + case 32: goto tr3172; + case 40: goto tr3173; + case 41: goto tr3174; + case 2058: goto tr3176; + case 2107: goto tr3177; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3146; - goto tr2896; -tr3146: + goto tr3175; + goto tr2925; +tr3175: { s->number64_tmp = s->number64; } @@ -80821,14 +81728,14 @@ tr3146: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1198; -tr3149: + goto st1210; +tr3178: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80840,17 +81747,17 @@ tr3149: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->decimal_counter++; } - goto st1198; -st1198: + goto st1210; +st1210: if ( ++p == pe ) - goto _test_eof1198; -case 1198: + goto _test_eof1210; +case 1210: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80864,45 +81771,45 @@ case 1198: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2924; - case 32: goto tr2924; - case 40: goto tr2925; - case 41: goto tr2926; - case 2058: goto tr2929; - case 2107: goto tr2930; + case 9: goto tr2953; + case 32: goto tr2953; + case 40: goto tr2954; + case 41: goto tr2955; + case 2058: goto tr2958; + case 2107: goto tr2959; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3149; - goto tr2896; -tr2923: + goto tr3178; + goto tr2925; +tr2952: { s->buffer_length = 0; } - goto st1199; -tr3150: + goto st1211; +tr3179: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1199; -tr2917: + goto st1211; +tr2946: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1199; -st1199: + goto st1211; +st1211: if ( ++p == pe ) - goto _test_eof1199; -case 1199: + goto _test_eof1211; +case 1211: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80922,39 +81829,39 @@ case 1199: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3151; + goto tr3180; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3150; - goto tr2896; -tr2911: + goto tr3179; + goto tr2925; +tr2940: { s->buffer_length = 0; } - goto st1200; -tr3152: + goto st1212; +tr3181: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1200; -tr2903: + goto st1212; +tr2932: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1200; -st1200: + goto st1212; +st1212: if ( ++p == pe ) - goto _test_eof1200; -case 1200: + goto _test_eof1212; +case 1212: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80974,18 +81881,18 @@ case 1200: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3153; + goto tr3182; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3152; - goto tr2896; -st1201: + goto tr3181; + goto tr2925; +st1213: if ( ++p == pe ) - goto _test_eof1201; -case 1201: + goto _test_eof1213; +case 1213: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3154; - goto tr2688; -tr3154: + goto tr3183; + goto tr2717; +tr3183: { s->number64 = 0; } @@ -81000,11 +81907,11 @@ tr3154: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1202; -tr3158: + goto st1214; +tr3187: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -81016,14 +81923,14 @@ tr3158: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1202; -st1202: + goto st1214; +st1214: if ( ++p == pe ) - goto _test_eof1202; -case 1202: + goto _test_eof1214; +case 1214: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81037,40 +81944,40 @@ case 1202: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3155; - case 32: goto tr3155; - case 40: goto tr3156; - case 41: goto tr3157; - case 2058: goto tr3159; - case 2107: goto tr3160; + case 9: goto tr3184; + case 32: goto tr3184; + case 40: goto tr3185; + case 41: goto tr3186; + case 2058: goto tr3188; + case 2107: goto tr3189; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3158; - goto tr2688; -tr3162: + goto tr3187; + goto tr2717; +tr3191: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1203; -tr3163: + goto st1215; +tr3192: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1203; -tr3165: + goto st1215; +tr3194: { s->line_counter++; } - goto st1203; -tr3197: + goto st1215; +tr3226: { s->buffer[s->buffer_length++] = 0; @@ -81080,15 +81987,15 @@ tr3197: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1203; goto _out;} + {p++; cs = 1215; goto _out;} } } } { s->line_counter++; } - goto st1203; -tr3155: + goto st1215; +tr3184: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81096,11 +82003,11 @@ tr3155: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1203; -tr3156: + goto st1215; +tr3185: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81108,18 +82015,18 @@ tr3156: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1203; -tr3157: + goto st1215; +tr3186: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81127,18 +82034,18 @@ tr3157: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1203; -tr3159: + goto st1215; +tr3188: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81146,17 +82053,17 @@ tr3159: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1203; -st1203: + goto st1215; +st1215: if ( ++p == pe ) - goto _test_eof1203; -case 1203: + goto _test_eof1215; +case 1215: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81170,17 +82077,17 @@ case 1203: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1203; - case 32: goto st1203; - case 40: goto tr3162; - case 41: goto tr3163; - case 2058: goto tr3165; - case 2107: goto tr3166; + case 9: goto st1215; + case 32: goto st1215; + case 40: goto tr3191; + case 41: goto tr3192; + case 2058: goto tr3194; + case 2107: goto tr3195; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3164; - goto tr2688; -tr3164: + goto tr3193; + goto tr2717; +tr3193: { s->number64 = 0; } @@ -81195,11 +82102,11 @@ tr3164: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1204; -tr3170: + goto st1216; +tr3199: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -81211,14 +82118,14 @@ tr3170: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1204; -st1204: + goto st1216; +st1216: if ( ++p == pe ) - goto _test_eof1204; -case 1204: + goto _test_eof1216; +case 1216: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81232,40 +82139,40 @@ case 1204: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3167; - case 32: goto tr3167; - case 40: goto tr3168; - case 41: goto tr3169; - case 2058: goto tr3171; - case 2107: goto tr3172; + case 9: goto tr3196; + case 32: goto tr3196; + case 40: goto tr3197; + case 41: goto tr3198; + case 2058: goto tr3200; + case 2107: goto tr3201; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3170; - goto tr2688; -tr3174: + goto tr3199; + goto tr2717; +tr3203: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1205; -tr3175: + goto st1217; +tr3204: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1205; -tr3177: + goto st1217; +tr3206: { s->line_counter++; } - goto st1205; -tr3195: + goto st1217; +tr3224: { s->buffer[s->buffer_length++] = 0; @@ -81275,15 +82182,15 @@ tr3195: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1205; goto _out;} + {p++; cs = 1217; goto _out;} } } } { s->line_counter++; } - goto st1205; -tr3167: + goto st1217; +tr3196: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81291,11 +82198,11 @@ tr3167: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1205; -tr3168: + goto st1217; +tr3197: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81303,18 +82210,18 @@ tr3168: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1205; -tr3169: + goto st1217; +tr3198: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81322,18 +82229,18 @@ tr3169: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1205; -tr3171: + goto st1217; +tr3200: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81341,17 +82248,17 @@ tr3171: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1205; -st1205: + goto st1217; +st1217: if ( ++p == pe ) - goto _test_eof1205; -case 1205: + goto _test_eof1217; +case 1217: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81365,17 +82272,17 @@ case 1205: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1205; - case 32: goto st1205; - case 40: goto tr3174; - case 41: goto tr3175; - case 2058: goto tr3177; - case 2107: goto tr3178; + case 9: goto st1217; + case 32: goto st1217; + case 40: goto tr3203; + case 41: goto tr3204; + case 2058: goto tr3206; + case 2107: goto tr3207; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3176; - goto tr2688; -tr3176: + goto tr3205; + goto tr2717; +tr3205: { s->number64 = 0; } @@ -81390,11 +82297,11 @@ tr3176: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1206; -tr3182: + goto st1218; +tr3211: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -81406,14 +82313,14 @@ tr3182: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1206; -st1206: + goto st1218; +st1218: if ( ++p == pe ) - goto _test_eof1206; -case 1206: + goto _test_eof1218; +case 1218: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81427,40 +82334,40 @@ case 1206: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3179; - case 32: goto tr3179; - case 40: goto tr3180; - case 41: goto tr3181; - case 2058: goto tr3183; - case 2107: goto tr3184; + case 9: goto tr3208; + case 32: goto tr3208; + case 40: goto tr3209; + case 41: goto tr3210; + case 2058: goto tr3212; + case 2107: goto tr3213; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3182; - goto tr2688; -tr3186: + goto tr3211; + goto tr2717; +tr3215: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1207; -tr3187: + goto st1219; +tr3216: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1207; -tr3189: + goto st1219; +tr3218: { s->line_counter++; } - goto st1207; -tr3193: + goto st1219; +tr3222: { s->buffer[s->buffer_length++] = 0; @@ -81470,15 +82377,15 @@ tr3193: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1207; goto _out;} + {p++; cs = 1219; goto _out;} } } } { s->line_counter++; } - goto st1207; -tr3179: + goto st1219; +tr3208: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81486,11 +82393,11 @@ tr3179: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1207; -tr3180: + goto st1219; +tr3209: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81498,18 +82405,18 @@ tr3180: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1207; -tr3181: + goto st1219; +tr3210: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81517,18 +82424,18 @@ tr3181: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1207; -tr3183: + goto st1219; +tr3212: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81536,17 +82443,17 @@ tr3183: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1207; -st1207: + goto st1219; +st1219: if ( ++p == pe ) - goto _test_eof1207; -case 1207: + goto _test_eof1219; +case 1219: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81560,71 +82467,71 @@ case 1207: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1207; - case 32: goto st1207; - case 40: goto tr3186; - case 41: goto tr3187; - case 42: goto tr3188; - case 92: goto tr3188; - case 95: goto tr3188; - case 2058: goto tr3189; - case 2107: goto tr3190; + case 9: goto st1219; + case 32: goto st1219; + case 40: goto tr3215; + case 41: goto tr3216; + case 42: goto tr3217; + case 92: goto tr3217; + case 95: goto tr3217; + case 2058: goto tr3218; + case 2107: goto tr3219; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3188; + goto tr3217; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3188; + goto tr3217; } else - goto tr3188; - goto tr77; -tr3188: + goto tr3217; + goto tr78; +tr3217: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1208;goto st327;} } - goto st1208; -st1208: + { p--; {stack[top++] = 1220;goto st331;} } + goto st1220; +st1220: if ( ++p == pe ) - goto _test_eof1208; -case 1208: + goto _test_eof1220; +case 1220: switch( (*p) ) { - case 32: goto tr3191; - case 59: goto tr3191; + case 32: goto tr3220; + case 59: goto tr3220; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3191; + goto tr3220; } else if ( (*p) >= 9 ) - goto tr3191; - goto tr77; -tr3191: + goto tr3220; + goto tr78; +tr3220: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1552; -st1552: + goto st1564; +st1564: if ( ++p == pe ) - goto _test_eof1552; -case 1552: + goto _test_eof1564; +case 1564: goto st0; -tr3190: +tr3219: { s->buffer_length = 0; } - goto st1209; -tr3192: + goto st1221; +tr3221: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1209; -tr3184: + goto st1221; +tr3213: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81632,17 +82539,17 @@ tr3184: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1209; -st1209: + goto st1221; +st1221: if ( ++p == pe ) - goto _test_eof1209; -case 1209: + goto _test_eof1221; +case 1221: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81662,23 +82569,23 @@ case 1209: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3193; + goto tr3222; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3192; - goto tr77; -tr3178: + goto tr3221; + goto tr78; +tr3207: { s->buffer_length = 0; } - goto st1210; -tr3194: + goto st1222; +tr3223: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1210; -tr3172: + goto st1222; +tr3201: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81686,17 +82593,17 @@ tr3172: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1210; -st1210: + goto st1222; +st1222: if ( ++p == pe ) - goto _test_eof1210; -case 1210: + goto _test_eof1222; +case 1222: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81716,23 +82623,23 @@ case 1210: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3195; + goto tr3224; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3194; - goto tr77; -tr3166: + goto tr3223; + goto tr78; +tr3195: { s->buffer_length = 0; } - goto st1211; -tr3196: + goto st1223; +tr3225: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1211; -tr3160: + goto st1223; +tr3189: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81740,17 +82647,17 @@ tr3160: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1211; -st1211: + goto st1223; +st1223: if ( ++p == pe ) - goto _test_eof1211; -case 1211: + goto _test_eof1223; +case 1223: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81770,18 +82677,18 @@ case 1211: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3197; + goto tr3226; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3196; - goto tr77; -st1212: + goto tr3225; + goto tr78; +st1224: if ( ++p == pe ) - goto _test_eof1212; -case 1212: + goto _test_eof1224; +case 1224: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3198; - goto tr2688; -tr3198: + goto tr3227; + goto tr2717; +tr3227: { s->number64 = 0; } @@ -81796,11 +82703,11 @@ tr3198: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1213; -tr3202: + goto st1225; +tr3231: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -81812,14 +82719,14 @@ tr3202: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1213; -st1213: + goto st1225; +st1225: if ( ++p == pe ) - goto _test_eof1213; -case 1213: + goto _test_eof1225; +case 1225: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81833,40 +82740,40 @@ case 1213: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3199; - case 32: goto tr3199; - case 40: goto tr3200; - case 41: goto tr3201; - case 2058: goto tr3203; - case 2107: goto tr3204; + case 9: goto tr3228; + case 32: goto tr3228; + case 40: goto tr3229; + case 41: goto tr3230; + case 2058: goto tr3232; + case 2107: goto tr3233; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3202; - goto tr2688; -tr3206: + goto tr3231; + goto tr2717; +tr3235: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1214; -tr3207: + goto st1226; +tr3236: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1214; -tr3209: + goto st1226; +tr3238: { s->line_counter++; } - goto st1214; -tr3266: + goto st1226; +tr3295: { s->buffer[s->buffer_length++] = 0; @@ -81876,15 +82783,15 @@ tr3266: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1214; goto _out;} + {p++; cs = 1226; goto _out;} } } } { s->line_counter++; } - goto st1214; -tr3199: + goto st1226; +tr3228: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81892,11 +82799,11 @@ tr3199: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1214; -tr3200: + goto st1226; +tr3229: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81904,18 +82811,18 @@ tr3200: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1214; -tr3201: + goto st1226; +tr3230: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81923,18 +82830,18 @@ tr3201: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1214; -tr3203: + goto st1226; +tr3232: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -81942,17 +82849,17 @@ tr3203: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1214; -st1214: + goto st1226; +st1226: if ( ++p == pe ) - goto _test_eof1214; -case 1214: + goto _test_eof1226; +case 1226: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81966,17 +82873,17 @@ case 1214: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1214; - case 32: goto st1214; - case 40: goto tr3206; - case 41: goto tr3207; - case 2058: goto tr3209; - case 2107: goto tr3210; + case 9: goto st1226; + case 32: goto st1226; + case 40: goto tr3235; + case 41: goto tr3236; + case 2058: goto tr3238; + case 2107: goto tr3239; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3208; - goto tr2688; -tr3208: + goto tr3237; + goto tr2717; +tr3237: { s->number64 = 0; } @@ -81991,11 +82898,11 @@ tr3208: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1215; -tr3214: + goto st1227; +tr3243: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -82007,14 +82914,14 @@ tr3214: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1215; -st1215: + goto st1227; +st1227: if ( ++p == pe ) - goto _test_eof1215; -case 1215: + goto _test_eof1227; +case 1227: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82028,40 +82935,40 @@ case 1215: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3211; - case 32: goto tr3211; - case 40: goto tr3212; - case 41: goto tr3213; - case 2058: goto tr3215; - case 2107: goto tr3216; + case 9: goto tr3240; + case 32: goto tr3240; + case 40: goto tr3241; + case 41: goto tr3242; + case 2058: goto tr3244; + case 2107: goto tr3245; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3214; - goto tr2688; -tr3219: + goto tr3243; + goto tr2717; +tr3248: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1216; -tr3220: + goto st1228; +tr3249: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1216; -tr3221: + goto st1228; +tr3250: { s->line_counter++; } - goto st1216; -tr3264: + goto st1228; +tr3293: { s->buffer[s->buffer_length++] = 0; @@ -82071,15 +82978,15 @@ tr3264: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1216; goto _out;} + {p++; cs = 1228; goto _out;} } } } { s->line_counter++; } - goto st1216; -tr3211: + goto st1228; +tr3240: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82087,11 +82994,11 @@ tr3211: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1216; -tr3212: + goto st1228; +tr3241: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82099,18 +83006,18 @@ tr3212: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1216; -tr3213: + goto st1228; +tr3242: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82118,18 +83025,18 @@ tr3213: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1216; -tr3215: + goto st1228; +tr3244: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82137,17 +83044,17 @@ tr3215: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1216; -st1216: + goto st1228; +st1228: if ( ++p == pe ) - goto _test_eof1216; -case 1216: + goto _test_eof1228; +case 1228: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82161,37 +83068,37 @@ case 1216: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1216; - case 32: goto st1216; - case 40: goto tr3219; - case 41: goto tr3220; - case 2058: goto tr3221; - case 2107: goto tr3222; + case 9: goto st1228; + case 32: goto st1228; + case 40: goto tr3248; + case 41: goto tr3249; + case 2058: goto tr3250; + case 2107: goto tr3251; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr3217; + goto tr3246; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr3217; + goto tr3246; } else - goto tr3217; - goto tr77; -tr3217: + goto tr3246; + goto tr78; +tr3246: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 1217;goto st336;} } - goto st1217; -st1217: + { p--; {stack[top++] = 1229;goto st340;} } + goto st1229; +st1229: if ( ++p == pe ) - goto _test_eof1217; -case 1217: + goto _test_eof1229; +case 1229: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82205,38 +83112,38 @@ case 1217: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3223; - case 32: goto tr3223; - case 40: goto tr3224; - case 41: goto tr3225; - case 2058: goto tr3226; - case 2107: goto tr3227; - } - goto tr77; -tr3230: + case 9: goto tr3252; + case 32: goto tr3252; + case 40: goto tr3253; + case 41: goto tr3254; + case 2058: goto tr3255; + case 2107: goto tr3256; + } + goto tr78; +tr3259: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1218; -tr3231: + goto st1230; +tr3260: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1218; -tr3232: + goto st1230; +tr3261: { s->line_counter++; } - goto st1218; -tr3262: + goto st1230; +tr3291: { s->buffer[s->buffer_length++] = 0; @@ -82246,95 +83153,95 @@ tr3262: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1218; goto _out;} + {p++; cs = 1230; goto _out;} } } } { s->line_counter++; } - goto st1218; -tr3223: + goto st1230; +tr3252: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1218; -tr3224: + goto st1230; +tr3253: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1218; -tr3225: + goto st1230; +tr3254: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1218; -tr3226: + goto st1230; +tr3255: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1218; -st1218: + goto st1230; +st1230: if ( ++p == pe ) - goto _test_eof1218; -case 1218: + goto _test_eof1230; +case 1230: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82348,37 +83255,37 @@ case 1218: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1218; - case 32: goto st1218; - case 40: goto tr3230; - case 41: goto tr3231; - case 2058: goto tr3232; - case 2107: goto tr3233; + case 9: goto st1230; + case 32: goto st1230; + case 40: goto tr3259; + case 41: goto tr3260; + case 2058: goto tr3261; + case 2107: goto tr3262; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr3228; + goto tr3257; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr3228; + goto tr3257; } else - goto tr3228; - goto tr77; -tr3228: + goto tr3257; + goto tr78; +tr3257: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 1219;goto st336;} } - goto st1219; -st1219: + { p--; {stack[top++] = 1231;goto st340;} } + goto st1231; +st1231: if ( ++p == pe ) - goto _test_eof1219; -case 1219: + goto _test_eof1231; +case 1231: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82392,38 +83299,38 @@ case 1219: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3234; - case 32: goto tr3234; - case 40: goto tr3235; - case 41: goto tr3236; - case 2058: goto tr3237; - case 2107: goto tr3238; - } - goto tr77; -tr3241: + case 9: goto tr3263; + case 32: goto tr3263; + case 40: goto tr3264; + case 41: goto tr3265; + case 2058: goto tr3266; + case 2107: goto tr3267; + } + goto tr78; +tr3270: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1220; -tr3242: + goto st1232; +tr3271: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1220; -tr3243: + goto st1232; +tr3272: { s->line_counter++; } - goto st1220; -tr3260: + goto st1232; +tr3289: { s->buffer[s->buffer_length++] = 0; @@ -82433,95 +83340,95 @@ tr3260: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1220; goto _out;} + {p++; cs = 1232; goto _out;} } } } { s->line_counter++; } - goto st1220; -tr3234: + goto st1232; +tr3263: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1220; -tr3235: + goto st1232; +tr3264: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1220; -tr3236: + goto st1232; +tr3265: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1220; -tr3237: + goto st1232; +tr3266: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1220; -st1220: + goto st1232; +st1232: if ( ++p == pe ) - goto _test_eof1220; -case 1220: + goto _test_eof1232; +case 1232: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82535,37 +83442,37 @@ case 1220: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1220; - case 32: goto st1220; - case 40: goto tr3241; - case 41: goto tr3242; - case 2058: goto tr3243; - case 2107: goto tr3244; + case 9: goto st1232; + case 32: goto st1232; + case 40: goto tr3270; + case 41: goto tr3271; + case 2058: goto tr3272; + case 2107: goto tr3273; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr3239; + goto tr3268; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr3239; + goto tr3268; } else - goto tr3239; - goto tr77; -tr3239: + goto tr3268; + goto tr78; +tr3268: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 1221;goto st336;} } - goto st1221; -st1221: + { p--; {stack[top++] = 1233;goto st340;} } + goto st1233; +st1233: if ( ++p == pe ) - goto _test_eof1221; -case 1221: + goto _test_eof1233; +case 1233: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82579,38 +83486,38 @@ case 1221: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3245; - case 32: goto tr3245; - case 40: goto tr3246; - case 41: goto tr3247; - case 2058: goto tr3248; - case 2107: goto tr3249; + case 9: goto tr3274; + case 32: goto tr3274; + case 40: goto tr3275; + case 41: goto tr3276; + case 2058: goto tr3277; + case 2107: goto tr3278; } - goto tr77; -tr3251: + goto tr78; +tr3280: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1222; -tr3252: + goto st1234; +tr3281: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1222; -tr3254: + goto st1234; +tr3283: { s->line_counter++; } - goto st1222; -tr3258: + goto st1234; +tr3287: { s->buffer[s->buffer_length++] = 0; @@ -82620,95 +83527,95 @@ tr3258: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1222; goto _out;} + {p++; cs = 1234; goto _out;} } } } { s->line_counter++; } - goto st1222; -tr3245: + goto st1234; +tr3274: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1222; -tr3246: + goto st1234; +tr3275: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1222; -tr3247: + goto st1234; +tr3276: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1222; -tr3248: + goto st1234; +tr3277: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1222; -st1222: + goto st1234; +st1234: if ( ++p == pe ) - goto _test_eof1222; -case 1222: + goto _test_eof1234; +case 1234: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82722,92 +83629,92 @@ case 1222: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1222; - case 32: goto st1222; - case 40: goto tr3251; - case 41: goto tr3252; - case 42: goto tr3253; - case 92: goto tr3253; - case 95: goto tr3253; - case 2058: goto tr3254; - case 2107: goto tr3255; + case 9: goto st1234; + case 32: goto st1234; + case 40: goto tr3280; + case 41: goto tr3281; + case 42: goto tr3282; + case 92: goto tr3282; + case 95: goto tr3282; + case 2058: goto tr3283; + case 2107: goto tr3284; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3253; + goto tr3282; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3253; + goto tr3282; } else - goto tr3253; - goto tr77; -tr3253: + goto tr3282; + goto tr78; +tr3282: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1223;goto st327;} } - goto st1223; -st1223: + { p--; {stack[top++] = 1235;goto st331;} } + goto st1235; +st1235: if ( ++p == pe ) - goto _test_eof1223; -case 1223: + goto _test_eof1235; +case 1235: switch( (*p) ) { - case 32: goto tr3256; - case 59: goto tr3256; + case 32: goto tr3285; + case 59: goto tr3285; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3256; + goto tr3285; } else if ( (*p) >= 9 ) - goto tr3256; - goto tr77; -tr3256: + goto tr3285; + goto tr78; +tr3285: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1553; -st1553: + goto st1565; +st1565: if ( ++p == pe ) - goto _test_eof1553; -case 1553: + goto _test_eof1565; +case 1565: goto st0; -tr3255: +tr3284: { s->buffer_length = 0; } - goto st1224; -tr3257: + goto st1236; +tr3286: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1224; -tr3249: + goto st1236; +tr3278: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1224; -st1224: + goto st1236; +st1236: if ( ++p == pe ) - goto _test_eof1224; -case 1224: + goto _test_eof1236; +case 1236: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82827,44 +83734,44 @@ case 1224: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3258; + goto tr3287; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3257; - goto tr77; -tr3244: + goto tr3286; + goto tr78; +tr3273: { s->buffer_length = 0; } - goto st1225; -tr3259: + goto st1237; +tr3288: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1225; -tr3238: + goto st1237; +tr3267: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1225; -st1225: + goto st1237; +st1237: if ( ++p == pe ) - goto _test_eof1225; -case 1225: + goto _test_eof1237; +case 1237: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82884,44 +83791,44 @@ case 1225: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3260; + goto tr3289; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3259; - goto tr77; -tr3233: + goto tr3288; + goto tr78; +tr3262: { s->buffer_length = 0; } - goto st1226; -tr3261: + goto st1238; +tr3290: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1226; -tr3227: + goto st1238; +tr3256: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1226; -st1226: + goto st1238; +st1238: if ( ++p == pe ) - goto _test_eof1226; -case 1226: + goto _test_eof1238; +case 1238: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82941,23 +83848,23 @@ case 1226: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3262; + goto tr3291; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3261; - goto tr77; -tr3222: + goto tr3290; + goto tr78; +tr3251: { s->buffer_length = 0; } - goto st1227; -tr3263: + goto st1239; +tr3292: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1227; -tr3216: + goto st1239; +tr3245: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82965,17 +83872,17 @@ tr3216: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1227; -st1227: + goto st1239; +st1239: if ( ++p == pe ) - goto _test_eof1227; -case 1227: + goto _test_eof1239; +case 1239: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82995,23 +83902,23 @@ case 1227: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3264; + goto tr3293; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3263; - goto tr77; -tr3210: + goto tr3292; + goto tr78; +tr3239: { s->buffer_length = 0; } - goto st1228; -tr3265: + goto st1240; +tr3294: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1228; -tr3204: + goto st1240; +tr3233: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83019,17 +83926,17 @@ tr3204: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1228; -st1228: + goto st1240; +st1240: if ( ++p == pe ) - goto _test_eof1228; -case 1228: + goto _test_eof1240; +case 1240: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -83049,30 +83956,30 @@ case 1228: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3266; + goto tr3295; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3265; - goto tr77; -st1229: + goto tr3294; + goto tr78; +st1241: if ( ++p == pe ) - goto _test_eof1229; -case 1229: + goto _test_eof1241; +case 1241: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3267; + goto tr3296; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3267; + goto tr3296; } else - goto tr3267; - goto tr77; -tr3267: - { p--; {stack[top++] = 1230;goto st1040;} } - goto st1230; -st1230: + goto tr3296; + goto tr78; +tr3296: + { p--; {stack[top++] = 1242;goto st1052;} } + goto st1242; +st1242: if ( ++p == pe ) - goto _test_eof1230; -case 1230: + goto _test_eof1242; +case 1242: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83086,38 +83993,38 @@ case 1230: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1231; - case 32: goto st1231; - case 40: goto tr3269; - case 41: goto tr3270; - case 2058: goto tr3271; - case 2107: goto tr3272; - } - goto tr77; -tr3269: + case 9: goto st1243; + case 32: goto st1243; + case 40: goto tr3298; + case 41: goto tr3299; + case 2058: goto tr3300; + case 2107: goto tr3301; + } + goto tr78; +tr3298: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1231; -tr3270: + goto st1243; +tr3299: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1231; -tr3271: + goto st1243; +tr3300: { s->line_counter++; } - goto st1231; -tr3298: + goto st1243; +tr3327: { s->buffer[s->buffer_length++] = 0; @@ -83127,18 +84034,18 @@ tr3298: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1231; goto _out;} + {p++; cs = 1243; goto _out;} } } } { s->line_counter++; } - goto st1231; -st1231: + goto st1243; +st1243: if ( ++p == pe ) - goto _test_eof1231; -case 1231: + goto _test_eof1243; +case 1243: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83152,17 +84059,17 @@ case 1231: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1231; - case 32: goto st1231; - case 40: goto tr3269; - case 41: goto tr3270; - case 2058: goto tr3271; - case 2107: goto tr3272; + case 9: goto st1243; + case 32: goto st1243; + case 40: goto tr3298; + case 41: goto tr3299; + case 2058: goto tr3300; + case 2107: goto tr3301; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3273; - goto tr2688; -tr3273: + goto tr3302; + goto tr2717; +tr3302: { s->number64 = 0; } @@ -83177,11 +84084,11 @@ tr3273: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1232; -tr3277: + goto st1244; +tr3306: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -83193,14 +84100,14 @@ tr3277: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1232; -st1232: + goto st1244; +st1244: if ( ++p == pe ) - goto _test_eof1232; -case 1232: + goto _test_eof1244; +case 1244: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83214,40 +84121,40 @@ case 1232: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3274; - case 32: goto tr3274; - case 40: goto tr3275; - case 41: goto tr3276; - case 2058: goto tr3278; - case 2107: goto tr3279; + case 9: goto tr3303; + case 32: goto tr3303; + case 40: goto tr3304; + case 41: goto tr3305; + case 2058: goto tr3307; + case 2107: goto tr3308; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3277; - goto tr2688; -tr3281: + goto tr3306; + goto tr2717; +tr3310: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1233; -tr3282: + goto st1245; +tr3311: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1233; -tr3284: + goto st1245; +tr3313: { s->line_counter++; } - goto st1233; -tr3296: + goto st1245; +tr3325: { s->buffer[s->buffer_length++] = 0; @@ -83257,15 +84164,15 @@ tr3296: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1233; goto _out;} + {p++; cs = 1245; goto _out;} } } } { s->line_counter++; } - goto st1233; -tr3274: + goto st1245; +tr3303: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83273,11 +84180,11 @@ tr3274: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1233; -tr3275: + goto st1245; +tr3304: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83285,18 +84192,18 @@ tr3275: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1233; -tr3276: + goto st1245; +tr3305: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83304,18 +84211,18 @@ tr3276: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1233; -tr3278: + goto st1245; +tr3307: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83323,17 +84230,17 @@ tr3278: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1233; -st1233: + goto st1245; +st1245: if ( ++p == pe ) - goto _test_eof1233; -case 1233: + goto _test_eof1245; +case 1245: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83347,29 +84254,29 @@ case 1233: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1233; - case 32: goto st1233; - case 40: goto tr3281; - case 41: goto tr3282; - case 2058: goto tr3284; - case 2107: goto tr3285; + case 9: goto st1245; + case 32: goto st1245; + case 40: goto tr3310; + case 41: goto tr3311; + case 2058: goto tr3313; + case 2107: goto tr3314; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3283; + goto tr3312; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3283; + goto tr3312; } else - goto tr3283; - goto tr77; -tr3283: - { p--; {stack[top++] = 1234;goto st936;} } - goto st1234; -st1234: + goto tr3312; + goto tr78; +tr3312: + { p--; {stack[top++] = 1246;goto st948;} } + goto st1246; +st1246: if ( ++p == pe ) - goto _test_eof1234; -case 1234: + goto _test_eof1246; +case 1246: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83383,38 +84290,38 @@ case 1234: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1235; - case 32: goto st1235; - case 40: goto tr3287; - case 41: goto tr3288; - case 2058: goto tr3289; - case 2107: goto tr3290; - } - goto tr77; -tr3287: + case 9: goto st1247; + case 32: goto st1247; + case 40: goto tr3316; + case 41: goto tr3317; + case 2058: goto tr3318; + case 2107: goto tr3319; + } + goto tr78; +tr3316: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1235; -tr3288: + goto st1247; +tr3317: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1235; -tr3289: + goto st1247; +tr3318: { s->line_counter++; } - goto st1235; -tr3294: + goto st1247; +tr3323: { s->buffer[s->buffer_length++] = 0; @@ -83424,18 +84331,18 @@ tr3294: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1235; goto _out;} + {p++; cs = 1247; goto _out;} } } } { s->line_counter++; } - goto st1235; -st1235: + goto st1247; +st1247: if ( ++p == pe ) - goto _test_eof1235; -case 1235: + goto _test_eof1247; +case 1247: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83449,30 +84356,30 @@ case 1235: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1235; - case 32: goto st1235; - case 40: goto tr3287; - case 41: goto tr3288; - case 43: goto tr3291; - case 2058: goto tr3289; - case 2107: goto tr3290; + case 9: goto st1247; + case 32: goto st1247; + case 40: goto tr3316; + case 41: goto tr3317; + case 43: goto tr3320; + case 2058: goto tr3318; + case 2107: goto tr3319; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3291; + goto tr3320; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3291; + goto tr3320; } else - goto tr3291; - goto tr77; -tr3291: - { p--; {stack[top++] = 1236;goto st387;} } - goto st1236; -st1236: + goto tr3320; + goto tr78; +tr3320: + { p--; {stack[top++] = 1248;goto st391;} } + goto st1248; +st1248: if ( ++p == pe ) - goto _test_eof1236; -case 1236: + goto _test_eof1248; +case 1248: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83486,36 +84393,36 @@ case 1236: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3292; - case 2619: goto tr3292; + case 2570: goto tr3321; + case 2619: goto tr3321; } - goto tr77; -tr3292: + goto tr78; +tr3321: { p--; {cs = stack[--top];goto _again;} } - goto st1554; -st1554: + goto st1566; +st1566: if ( ++p == pe ) - goto _test_eof1554; -case 1554: + goto _test_eof1566; +case 1566: goto st0; -tr3290: +tr3319: { s->buffer_length = 0; } - goto st1237; -tr3293: + goto st1249; +tr3322: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1237; -st1237: + goto st1249; +st1249: if ( ++p == pe ) - goto _test_eof1237; -case 1237: + goto _test_eof1249; +case 1249: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -83535,23 +84442,23 @@ case 1237: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3294; + goto tr3323; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3293; - goto tr77; -tr3285: + goto tr3322; + goto tr78; +tr3314: { s->buffer_length = 0; } - goto st1238; -tr3295: + goto st1250; +tr3324: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1238; -tr3279: + goto st1250; +tr3308: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83559,17 +84466,17 @@ tr3279: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1238; -st1238: + goto st1250; +st1250: if ( ++p == pe ) - goto _test_eof1238; -case 1238: + goto _test_eof1250; +case 1250: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -83589,26 +84496,26 @@ case 1238: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3296; + goto tr3325; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3295; - goto tr77; -tr3272: + goto tr3324; + goto tr78; +tr3301: { s->buffer_length = 0; } - goto st1239; -tr3297: + goto st1251; +tr3326: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1239; -st1239: + goto st1251; +st1251: if ( ++p == pe ) - goto _test_eof1239; -case 1239: + goto _test_eof1251; +case 1251: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -83628,34 +84535,34 @@ case 1239: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3298; + goto tr3327; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3297; - goto tr77; -tr3302: + goto tr3326; + goto tr78; +tr3331: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1240; -tr3303: + goto st1252; +tr3332: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1240; -tr3306: + goto st1252; +tr3335: { s->line_counter++; } - goto st1240; -tr3329: + goto st1252; +tr3358: { s->buffer[s->buffer_length++] = 0; @@ -83665,22 +84572,22 @@ tr3329: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1240; goto _out;} + {p++; cs = 1252; goto _out;} } } } { s->line_counter++; } - goto st1240; -tr3319: + goto st1252; +tr3348: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -83697,7 +84604,7 @@ tr3319: break; default: WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -83709,7 +84616,7 @@ tr3319: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -83725,15 +84632,15 @@ tr3319: memcpy(rdata_tail, s->buffer, len); rdata_tail += len; } - goto st1240; -tr3320: + goto st1252; +tr3349: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -83750,7 +84657,7 @@ tr3320: break; default: WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -83762,7 +84669,7 @@ tr3320: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -83781,19 +84688,19 @@ tr3320: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1240; -tr3321: + goto st1252; +tr3350: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -83810,7 +84717,7 @@ tr3321: break; default: WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -83822,7 +84729,7 @@ tr3321: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -83841,19 +84748,19 @@ tr3321: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1240; -tr3323: + goto st1252; +tr3352: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -83870,7 +84777,7 @@ tr3323: break; default: WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -83882,7 +84789,7 @@ tr3323: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -83901,11 +84808,11 @@ tr3323: { s->line_counter++; } - goto st1240; -st1240: + goto st1252; +st1252: if ( ++p == pe ) - goto _test_eof1240; -case 1240: + goto _test_eof1252; +case 1252: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83923,78 +84830,78 @@ case 1240: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1240; - case 32: goto st1240; - case 33: goto tr3301; - case 40: goto tr3302; - case 41: goto tr3303; - case 49: goto tr3304; - case 50: goto tr3305; - case 3082: goto tr3306; - case 3131: goto tr3307; - case 3338: goto tr3308; - case 3387: goto tr3308; - case 3594: goto tr3309; - case 3643: goto tr3310; - } - goto tr3299; -tr3301: + case 9: goto st1252; + case 32: goto st1252; + case 33: goto tr3330; + case 40: goto tr3331; + case 41: goto tr3332; + case 49: goto tr3333; + case 50: goto tr3334; + case 3082: goto tr3335; + case 3131: goto tr3336; + case 3338: goto tr3337; + case 3387: goto tr3337; + case 3594: goto tr3338; + case 3643: goto tr3339; + } + goto tr3328; +tr3330: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.excl_flag = 128; // dec 128 = bin 10000000. } - goto st1241; -st1241: + goto st1253; +st1253: if ( ++p == pe ) - goto _test_eof1241; -case 1241: + goto _test_eof1253; +case 1253: switch( (*p) ) { - case 49: goto tr3311; - case 50: goto tr3312; + case 49: goto tr3340; + case 50: goto tr3341; } - goto tr3299; -tr3304: + goto tr3328; +tr3333: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.addr_family = 1; } - goto st1242; -tr3311: + goto st1254; +tr3340: { s->apl.addr_family = 1; } - goto st1242; -st1242: + goto st1254; +st1254: if ( ++p == pe ) - goto _test_eof1242; -case 1242: + goto _test_eof1254; +case 1254: if ( (*p) == 58 ) - goto st1243; - goto tr3299; -st1243: + goto st1255; + goto tr3328; +st1255: if ( ++p == pe ) - goto _test_eof1243; -case 1243: + goto _test_eof1255; +case 1255: if ( (*p) == 46 ) - goto tr3315; + goto tr3344; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3315; - goto tr3314; -tr3316: + goto tr3344; + goto tr3343; +tr3345: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1244; -tr3315: + goto st1256; +tr3344: { s->buffer_length = 0; } @@ -84003,47 +84910,47 @@ tr3315: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1244; -st1244: + goto st1256; +st1256: if ( ++p == pe ) - goto _test_eof1244; -case 1244: + goto _test_eof1256; +case 1256: if ( (*p) == 47 ) - goto tr3317; + goto tr3346; if ( 46 <= (*p) && (*p) <= 57 ) - goto tr3316; - goto tr3314; -tr3317: + goto tr3345; + goto tr3343; +tr3346: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1245; -tr3333: + goto st1257; +tr3362: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1245; -st1245: + goto st1257; +st1257: if ( ++p == pe ) - goto _test_eof1245; -case 1245: + goto _test_eof1257; +case 1257: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3318; - goto tr3299; -tr3318: + goto tr3347; + goto tr3328; +tr3347: { s->number64 = 0; } @@ -84058,11 +84965,11 @@ tr3318: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1246; -tr3322: + goto st1258; +tr3351: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -84074,14 +84981,14 @@ tr3322: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1246; -st1246: + goto st1258; +st1258: if ( ++p == pe ) - goto _test_eof1246; -case 1246: + goto _test_eof1258; +case 1258: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84099,40 +85006,40 @@ case 1246: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3319; - case 32: goto tr3319; - case 40: goto tr3320; - case 41: goto tr3321; - case 3082: goto tr3323; - case 3131: goto tr3324; - case 3338: goto tr3325; - case 3387: goto tr3325; - case 3594: goto tr3326; - case 3643: goto tr3327; + case 9: goto tr3348; + case 32: goto tr3348; + case 40: goto tr3349; + case 41: goto tr3350; + case 3082: goto tr3352; + case 3131: goto tr3353; + case 3338: goto tr3354; + case 3387: goto tr3354; + case 3594: goto tr3355; + case 3643: goto tr3356; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3322; - goto tr3299; -tr3307: + goto tr3351; + goto tr3328; +tr3336: { s->buffer_length = 0; } - goto st1247; -tr3328: + goto st1259; +tr3357: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1247; -tr3324: + goto st1259; +tr3353: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -84149,7 +85056,7 @@ tr3324: break; default: WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -84161,7 +85068,7 @@ tr3324: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -84180,11 +85087,11 @@ tr3324: { s->buffer_length = 0; } - goto st1247; -st1247: + goto st1259; +st1259: if ( ++p == pe ) - goto _test_eof1247; -case 1247: + goto _test_eof1259; +case 1259: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84204,23 +85111,23 @@ case 1247: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3329; + goto tr3358; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3328; - goto tr77; -tr3308: + goto tr3357; + goto tr78; +tr3337: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -tr3325: + goto st1567; +tr3354: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -84237,7 +85144,7 @@ tr3325: break; default: WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -84249,7 +85156,7 @@ tr3325: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -84268,28 +85175,28 @@ tr3325: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -st1555: + goto st1567; +st1567: if ( ++p == pe ) - goto _test_eof1555; -case 1555: + goto _test_eof1567; +case 1567: goto st0; -tr3309: +tr3338: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1556; -tr3326: + goto st1568; +tr3355: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -84306,7 +85213,7 @@ tr3326: break; default: WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -84318,7 +85225,7 @@ tr3326: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -84340,11 +85247,11 @@ tr3326: { p--; {cs = stack[--top];goto _again;} } - goto st1556; -st1556: + goto st1568; +st1568: if ( ++p == pe ) - goto _test_eof1556; -case 1556: + goto _test_eof1568; +case 1568: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84362,67 +85269,67 @@ case 1556: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1240; - case 32: goto st1240; - case 33: goto tr3301; - case 40: goto tr3302; - case 41: goto tr3303; - case 49: goto tr3304; - case 50: goto tr3305; - case 3082: goto tr3306; - case 3131: goto tr3307; - case 3338: goto tr3308; - case 3387: goto tr3308; - case 3594: goto tr3309; - case 3643: goto tr3310; - } - goto tr3299; -tr3305: + case 9: goto st1252; + case 32: goto st1252; + case 33: goto tr3330; + case 40: goto tr3331; + case 41: goto tr3332; + case 49: goto tr3333; + case 50: goto tr3334; + case 3082: goto tr3335; + case 3131: goto tr3336; + case 3338: goto tr3337; + case 3387: goto tr3337; + case 3594: goto tr3338; + case 3643: goto tr3339; + } + goto tr3328; +tr3334: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.addr_family = 2; } - goto st1248; -tr3312: + goto st1260; +tr3341: { s->apl.addr_family = 2; } - goto st1248; -st1248: + goto st1260; +st1260: if ( ++p == pe ) - goto _test_eof1248; -case 1248: + goto _test_eof1260; +case 1260: if ( (*p) == 58 ) - goto st1249; - goto tr3299; -st1249: + goto st1261; + goto tr3328; +st1261: if ( ++p == pe ) - goto _test_eof1249; -case 1249: + goto _test_eof1261; +case 1261: if ( (*p) == 46 ) - goto tr3331; + goto tr3360; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr3331; + goto tr3360; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3331; + goto tr3360; } else - goto tr3331; - goto tr3314; -tr3332: + goto tr3360; + goto tr3343; +tr3361: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1250; -tr3331: + goto st1262; +tr3360: { s->buffer_length = 0; } @@ -84431,41 +85338,41 @@ tr3331: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1250; -st1250: + goto st1262; +st1262: if ( ++p == pe ) - goto _test_eof1250; -case 1250: + goto _test_eof1262; +case 1262: if ( (*p) == 47 ) - goto tr3333; + goto tr3362; if ( (*p) < 65 ) { if ( 46 <= (*p) && (*p) <= 58 ) - goto tr3332; + goto tr3361; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3332; + goto tr3361; } else - goto tr3332; - goto tr3314; -tr3310: + goto tr3361; + goto tr3343; +tr3339: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1557; -tr3327: + goto st1569; +tr3356: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -84482,7 +85389,7 @@ tr3327: break; default: WARN(ZS_BAD_APL); - p--; {goto st325;} + p--; {goto st329;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -84494,7 +85401,7 @@ tr3327: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -84516,11 +85423,11 @@ tr3327: { p--; {cs = stack[--top];goto _again;} } - goto st1557; -st1557: + goto st1569; +st1569: if ( ++p == pe ) - goto _test_eof1557; -case 1557: + goto _test_eof1569; +case 1569: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84540,18 +85447,18 @@ case 1557: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3329; + goto tr3358; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3328; - goto tr77; -st1251: + goto tr3357; + goto tr78; +st1263: if ( ++p == pe ) - goto _test_eof1251; -case 1251: + goto _test_eof1263; +case 1263: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3334; - goto tr2688; -tr3334: + goto tr3363; + goto tr2717; +tr3363: { s->number64 = 0; } @@ -84566,11 +85473,11 @@ tr3334: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1252; -tr3338: + goto st1264; +tr3367: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -84582,14 +85489,14 @@ tr3338: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1252; -st1252: + goto st1264; +st1264: if ( ++p == pe ) - goto _test_eof1252; -case 1252: + goto _test_eof1264; +case 1264: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84603,40 +85510,40 @@ case 1252: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3335; - case 32: goto tr3335; - case 40: goto tr3336; - case 41: goto tr3337; - case 2058: goto tr3339; - case 2107: goto tr3340; + case 9: goto tr3364; + case 32: goto tr3364; + case 40: goto tr3365; + case 41: goto tr3366; + case 2058: goto tr3368; + case 2107: goto tr3369; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3338; - goto tr2688; -tr3342: + goto tr3367; + goto tr2717; +tr3371: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1253; -tr3343: + goto st1265; +tr3372: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1253; -tr3345: + goto st1265; +tr3374: { s->line_counter++; } - goto st1253; -tr3382: + goto st1265; +tr3411: { s->buffer[s->buffer_length++] = 0; @@ -84646,15 +85553,15 @@ tr3382: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1253; goto _out;} + {p++; cs = 1265; goto _out;} } } } { s->line_counter++; } - goto st1253; -tr3335: + goto st1265; +tr3364: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84662,11 +85569,11 @@ tr3335: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1253; -tr3336: + goto st1265; +tr3365: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84674,18 +85581,18 @@ tr3336: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1253; -tr3337: + goto st1265; +tr3366: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84693,18 +85600,18 @@ tr3337: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1253; -tr3339: + goto st1265; +tr3368: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84712,17 +85619,17 @@ tr3339: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1253; -st1253: + goto st1265; +st1265: if ( ++p == pe ) - goto _test_eof1253; -case 1253: + goto _test_eof1265; +case 1265: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84736,29 +85643,29 @@ case 1253: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1253; - case 32: goto st1253; - case 40: goto tr3342; - case 41: goto tr3343; - case 2058: goto tr3345; - case 2107: goto tr3346; + case 9: goto st1265; + case 32: goto st1265; + case 40: goto tr3371; + case 41: goto tr3372; + case 2058: goto tr3374; + case 2107: goto tr3375; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3344; + goto tr3373; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3344; + goto tr3373; } else - goto tr3344; - goto tr77; -tr3344: - { p--; {stack[top++] = 1254;goto st936;} } - goto st1254; -st1254: + goto tr3373; + goto tr78; +tr3373: + { p--; {stack[top++] = 1266;goto st948;} } + goto st1266; +st1266: if ( ++p == pe ) - goto _test_eof1254; -case 1254: + goto _test_eof1266; +case 1266: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84772,38 +85679,38 @@ case 1254: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1255; - case 32: goto st1255; - case 40: goto tr3348; - case 41: goto tr3349; - case 2058: goto tr3350; - case 2107: goto tr3351; - } - goto tr77; -tr3348: + case 9: goto st1267; + case 32: goto st1267; + case 40: goto tr3377; + case 41: goto tr3378; + case 2058: goto tr3379; + case 2107: goto tr3380; + } + goto tr78; +tr3377: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1255; -tr3349: + goto st1267; +tr3378: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1255; -tr3350: + goto st1267; +tr3379: { s->line_counter++; } - goto st1255; -tr3380: + goto st1267; +tr3409: { s->buffer[s->buffer_length++] = 0; @@ -84813,18 +85720,18 @@ tr3380: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1255; goto _out;} + {p++; cs = 1267; goto _out;} } } } { s->line_counter++; } - goto st1255; -st1255: + goto st1267; +st1267: if ( ++p == pe ) - goto _test_eof1255; -case 1255: + goto _test_eof1267; +case 1267: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84838,17 +85745,17 @@ case 1255: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1255; - case 32: goto st1255; - case 40: goto tr3348; - case 41: goto tr3349; - case 2058: goto tr3350; - case 2107: goto tr3351; + case 9: goto st1267; + case 32: goto st1267; + case 40: goto tr3377; + case 41: goto tr3378; + case 2058: goto tr3379; + case 2107: goto tr3380; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3352; - goto tr2688; -tr3352: + goto tr3381; + goto tr2717; +tr3381: { s->number64 = 0; } @@ -84863,11 +85770,11 @@ tr3352: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1256; -tr3356: + goto st1268; +tr3385: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -84879,14 +85786,14 @@ tr3356: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1256; -st1256: + goto st1268; +st1268: if ( ++p == pe ) - goto _test_eof1256; -case 1256: + goto _test_eof1268; +case 1268: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84900,40 +85807,40 @@ case 1256: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3353; - case 32: goto tr3353; - case 40: goto tr3354; - case 41: goto tr3355; - case 2058: goto tr3357; - case 2107: goto tr3358; + case 9: goto tr3382; + case 32: goto tr3382; + case 40: goto tr3383; + case 41: goto tr3384; + case 2058: goto tr3386; + case 2107: goto tr3387; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3356; - goto tr2688; -tr3361: + goto tr3385; + goto tr2717; +tr3390: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1257; -tr3362: + goto st1269; +tr3391: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1257; -tr3364: + goto st1269; +tr3393: { s->line_counter++; } - goto st1257; -tr3378: + goto st1269; +tr3407: { s->buffer[s->buffer_length++] = 0; @@ -84943,79 +85850,79 @@ tr3378: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1257; goto _out;} + {p++; cs = 1269; goto _out;} } } } { s->line_counter++; } - goto st1257; -tr3353: + goto st1269; +tr3382: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1257; -tr3354: + goto st1269; +tr3383: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1257; -tr3355: + goto st1269; +tr3384: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1257; -tr3357: + goto st1269; +tr3386: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1257; -st1257: + goto st1269; +st1269: if ( ++p == pe ) - goto _test_eof1257; -case 1257: + goto _test_eof1269; +case 1269: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85029,69 +85936,69 @@ case 1257: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1257; - case 32: goto st1257; - case 40: goto tr3361; - case 41: goto tr3362; - case 2058: goto tr3364; - case 2107: goto tr3365; + case 9: goto st1269; + case 32: goto st1269; + case 40: goto tr3390; + case 41: goto tr3391; + case 2058: goto tr3393; + case 2107: goto tr3394; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3363; + goto tr3392; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3363; + goto tr3392; } else - goto tr3363; - goto tr3359; -tr3363: + goto tr3392; + goto tr3388; +tr3392: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1258; -st1258: + goto st1270; +st1270: if ( ++p == pe ) - goto _test_eof1258; -case 1258: + goto _test_eof1270; +case 1270: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3366; + goto tr3395; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3366; + goto tr3395; } else - goto tr3366; - goto tr3359; -tr3368: + goto tr3395; + goto tr3388; +tr3397: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1259; -tr3369: + goto st1271; +tr3398: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1259; -tr3370: + goto st1271; +tr3399: { s->line_counter++; } - goto st1259; -tr3376: + goto st1271; +tr3405: { s->buffer[s->buffer_length++] = 0; @@ -85101,24 +86008,24 @@ tr3376: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1259; goto _out;} + {p++; cs = 1271; goto _out;} } } } { s->line_counter++; } - goto st1259; -tr3366: + goto st1271; +tr3395: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1259; -st1259: + goto st1271; +st1271: if ( ++p == pe ) - goto _test_eof1259; -case 1259: + goto _test_eof1271; +case 1271: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85136,42 +86043,42 @@ case 1259: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1259; - case 32: goto st1259; - case 40: goto tr3368; - case 41: goto tr3369; - case 3082: goto tr3370; - case 3131: goto tr3371; - case 3338: goto tr3372; - case 3387: goto tr3372; - case 3594: goto tr3373; - case 3643: goto tr3374; + case 9: goto st1271; + case 32: goto st1271; + case 40: goto tr3397; + case 41: goto tr3398; + case 3082: goto tr3399; + case 3131: goto tr3400; + case 3338: goto tr3401; + case 3387: goto tr3401; + case 3594: goto tr3402; + case 3643: goto tr3403; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3363; + goto tr3392; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3363; + goto tr3392; } else - goto tr3363; - goto tr3359; -tr3371: + goto tr3392; + goto tr3388; +tr3400: { s->buffer_length = 0; } - goto st1260; -tr3375: + goto st1272; +tr3404: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1260; -st1260: + goto st1272; +st1272: if ( ++p == pe ) - goto _test_eof1260; -case 1260: + goto _test_eof1272; +case 1272: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85191,32 +86098,32 @@ case 1260: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3376; + goto tr3405; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3375; - goto tr3359; -tr3372: + goto tr3404; + goto tr3388; +tr3401: { p--; {cs = stack[--top];goto _again;} } - goto st1558; -st1558: + goto st1570; +st1570: if ( ++p == pe ) - goto _test_eof1558; -case 1558: + goto _test_eof1570; +case 1570: goto st0; -tr3373: +tr3402: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1559; -st1559: + goto st1571; +st1571: if ( ++p == pe ) - goto _test_eof1559; -case 1559: + goto _test_eof1571; +case 1571: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85234,38 +86141,38 @@ case 1559: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1259; - case 32: goto st1259; - case 40: goto tr3368; - case 41: goto tr3369; - case 3082: goto tr3370; - case 3131: goto tr3371; - case 3338: goto tr3372; - case 3387: goto tr3372; - case 3594: goto tr3373; - case 3643: goto tr3374; + case 9: goto st1271; + case 32: goto st1271; + case 40: goto tr3397; + case 41: goto tr3398; + case 3082: goto tr3399; + case 3131: goto tr3400; + case 3338: goto tr3401; + case 3387: goto tr3401; + case 3594: goto tr3402; + case 3643: goto tr3403; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3363; + goto tr3392; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3363; + goto tr3392; } else - goto tr3363; - goto tr3359; -tr3374: + goto tr3392; + goto tr3388; +tr3403: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1560; -st1560: + goto st1572; +st1572: if ( ++p == pe ) - goto _test_eof1560; -case 1560: + goto _test_eof1572; +case 1572: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85285,40 +86192,40 @@ case 1560: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3376; + goto tr3405; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3375; - goto tr3359; -tr3365: + goto tr3404; + goto tr3388; +tr3394: { s->buffer_length = 0; } - goto st1261; -tr3377: + goto st1273; +tr3406: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1261; -tr3358: + goto st1273; +tr3387: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1261; -st1261: + goto st1273; +st1273: if ( ++p == pe ) - goto _test_eof1261; -case 1261: + goto _test_eof1273; +case 1273: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85338,26 +86245,26 @@ case 1261: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3378; + goto tr3407; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3377; - goto tr77; -tr3351: + goto tr3406; + goto tr78; +tr3380: { s->buffer_length = 0; } - goto st1262; -tr3379: + goto st1274; +tr3408: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1262; -st1262: + goto st1274; +st1274: if ( ++p == pe ) - goto _test_eof1262; -case 1262: + goto _test_eof1274; +case 1274: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85377,23 +86284,23 @@ case 1262: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3380; + goto tr3409; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3379; - goto tr77; -tr3346: + goto tr3408; + goto tr78; +tr3375: { s->buffer_length = 0; } - goto st1263; -tr3381: + goto st1275; +tr3410: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1263; -tr3340: + goto st1275; +tr3369: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -85401,17 +86308,17 @@ tr3340: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1263; -st1263: + goto st1275; +st1275: if ( ++p == pe ) - goto _test_eof1263; -case 1263: + goto _test_eof1275; +case 1275: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85431,18 +86338,18 @@ case 1263: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3382; + goto tr3411; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3381; - goto tr77; -st1264: + goto tr3410; + goto tr78; +st1276: if ( ++p == pe ) - goto _test_eof1264; -case 1264: + goto _test_eof1276; +case 1276: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3383; - goto tr2688; -tr3383: + goto tr3412; + goto tr2717; +tr3412: { s->number64 = 0; } @@ -85457,11 +86364,11 @@ tr3383: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1265; -tr3387: + goto st1277; +tr3416: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -85473,14 +86380,14 @@ tr3387: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1265; -st1265: + goto st1277; +st1277: if ( ++p == pe ) - goto _test_eof1265; -case 1265: + goto _test_eof1277; +case 1277: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85494,40 +86401,40 @@ case 1265: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3384; - case 32: goto tr3384; - case 40: goto tr3385; - case 41: goto tr3386; - case 2058: goto tr3388; - case 2107: goto tr3389; + case 9: goto tr3413; + case 32: goto tr3413; + case 40: goto tr3414; + case 41: goto tr3415; + case 2058: goto tr3417; + case 2107: goto tr3418; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3387; - goto tr2688; -tr3391: + goto tr3416; + goto tr2717; +tr3420: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1266; -tr3392: + goto st1278; +tr3421: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1266; -tr3394: + goto st1278; +tr3423: { s->line_counter++; } - goto st1266; -tr3422: + goto st1278; +tr3451: { s->buffer[s->buffer_length++] = 0; @@ -85537,79 +86444,79 @@ tr3422: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1266; goto _out;} + {p++; cs = 1278; goto _out;} } } } { s->line_counter++; } - goto st1266; -tr3384: + goto st1278; +tr3413: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1266; -tr3385: + goto st1278; +tr3414: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1266; -tr3386: + goto st1278; +tr3415: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1266; -tr3388: + goto st1278; +tr3417: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1266; -st1266: + goto st1278; +st1278: if ( ++p == pe ) - goto _test_eof1266; -case 1266: + goto _test_eof1278; +case 1278: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85623,17 +86530,17 @@ case 1266: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1266; - case 32: goto st1266; - case 40: goto tr3391; - case 41: goto tr3392; - case 2058: goto tr3394; - case 2107: goto tr3395; + case 9: goto st1278; + case 32: goto st1278; + case 40: goto tr3420; + case 41: goto tr3421; + case 2058: goto tr3423; + case 2107: goto tr3424; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3393; - goto tr2688; -tr3393: + goto tr3422; + goto tr2717; +tr3422: { s->number64 = 0; } @@ -85648,11 +86555,11 @@ tr3393: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1267; -tr3399: + goto st1279; +tr3428: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -85664,14 +86571,14 @@ tr3399: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1267; -st1267: + goto st1279; +st1279: if ( ++p == pe ) - goto _test_eof1267; -case 1267: + goto _test_eof1279; +case 1279: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85685,40 +86592,40 @@ case 1267: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3396; - case 32: goto tr3396; - case 40: goto tr3397; - case 41: goto tr3398; - case 2058: goto tr3400; - case 2107: goto tr3401; + case 9: goto tr3425; + case 32: goto tr3425; + case 40: goto tr3426; + case 41: goto tr3427; + case 2058: goto tr3429; + case 2107: goto tr3430; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3399; - goto tr2688; -tr3403: + goto tr3428; + goto tr2717; +tr3432: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1268; -tr3404: + goto st1280; +tr3433: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1268; -tr3406: + goto st1280; +tr3435: { s->line_counter++; } - goto st1268; -tr3420: + goto st1280; +tr3449: { s->buffer[s->buffer_length++] = 0; @@ -85728,79 +86635,79 @@ tr3420: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1268; goto _out;} + {p++; cs = 1280; goto _out;} } } } { s->line_counter++; } - goto st1268; -tr3396: + goto st1280; +tr3425: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1268; -tr3397: + goto st1280; +tr3426: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1268; -tr3398: + goto st1280; +tr3427: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1268; -tr3400: + goto st1280; +tr3429: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1268; -st1268: + goto st1280; +st1280: if ( ++p == pe ) - goto _test_eof1268; -case 1268: + goto _test_eof1280; +case 1280: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85814,69 +86721,69 @@ case 1268: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1268; - case 32: goto st1268; - case 40: goto tr3403; - case 41: goto tr3404; - case 2058: goto tr3406; - case 2107: goto tr3407; + case 9: goto st1280; + case 32: goto st1280; + case 40: goto tr3432; + case 41: goto tr3433; + case 2058: goto tr3435; + case 2107: goto tr3436; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3405; + goto tr3434; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3405; + goto tr3434; } else - goto tr3405; - goto tr3359; -tr3405: + goto tr3434; + goto tr3388; +tr3434: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1269; -st1269: + goto st1281; +st1281: if ( ++p == pe ) - goto _test_eof1269; -case 1269: + goto _test_eof1281; +case 1281: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3408; + goto tr3437; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3408; + goto tr3437; } else - goto tr3408; - goto tr3359; -tr3410: + goto tr3437; + goto tr3388; +tr3439: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1270; -tr3411: + goto st1282; +tr3440: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1270; -tr3412: + goto st1282; +tr3441: { s->line_counter++; } - goto st1270; -tr3418: + goto st1282; +tr3447: { s->buffer[s->buffer_length++] = 0; @@ -85886,24 +86793,24 @@ tr3418: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1270; goto _out;} + {p++; cs = 1282; goto _out;} } } } { s->line_counter++; } - goto st1270; -tr3408: + goto st1282; +tr3437: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1270; -st1270: + goto st1282; +st1282: if ( ++p == pe ) - goto _test_eof1270; -case 1270: + goto _test_eof1282; +case 1282: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85921,42 +86828,42 @@ case 1270: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1270; - case 32: goto st1270; - case 40: goto tr3410; - case 41: goto tr3411; - case 3082: goto tr3412; - case 3131: goto tr3413; - case 3338: goto tr3414; - case 3387: goto tr3414; - case 3594: goto tr3415; - case 3643: goto tr3416; + case 9: goto st1282; + case 32: goto st1282; + case 40: goto tr3439; + case 41: goto tr3440; + case 3082: goto tr3441; + case 3131: goto tr3442; + case 3338: goto tr3443; + case 3387: goto tr3443; + case 3594: goto tr3444; + case 3643: goto tr3445; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3405; + goto tr3434; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3405; + goto tr3434; } else - goto tr3405; - goto tr3359; -tr3413: + goto tr3434; + goto tr3388; +tr3442: { s->buffer_length = 0; } - goto st1271; -tr3417: + goto st1283; +tr3446: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1271; -st1271: + goto st1283; +st1283: if ( ++p == pe ) - goto _test_eof1271; -case 1271: + goto _test_eof1283; +case 1283: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85976,32 +86883,32 @@ case 1271: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3418; + goto tr3447; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3417; - goto tr3359; -tr3414: + goto tr3446; + goto tr3388; +tr3443: { p--; {cs = stack[--top];goto _again;} } - goto st1561; -st1561: + goto st1573; +st1573: if ( ++p == pe ) - goto _test_eof1561; -case 1561: + goto _test_eof1573; +case 1573: goto st0; -tr3415: +tr3444: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1562; -st1562: + goto st1574; +st1574: if ( ++p == pe ) - goto _test_eof1562; -case 1562: + goto _test_eof1574; +case 1574: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86019,38 +86926,38 @@ case 1562: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1270; - case 32: goto st1270; - case 40: goto tr3410; - case 41: goto tr3411; - case 3082: goto tr3412; - case 3131: goto tr3413; - case 3338: goto tr3414; - case 3387: goto tr3414; - case 3594: goto tr3415; - case 3643: goto tr3416; + case 9: goto st1282; + case 32: goto st1282; + case 40: goto tr3439; + case 41: goto tr3440; + case 3082: goto tr3441; + case 3131: goto tr3442; + case 3338: goto tr3443; + case 3387: goto tr3443; + case 3594: goto tr3444; + case 3643: goto tr3445; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3405; + goto tr3434; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3405; + goto tr3434; } else - goto tr3405; - goto tr3359; -tr3416: + goto tr3434; + goto tr3388; +tr3445: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1563; -st1563: + goto st1575; +st1575: if ( ++p == pe ) - goto _test_eof1563; -case 1563: + goto _test_eof1575; +case 1575: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86070,40 +86977,40 @@ case 1563: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3418; + goto tr3447; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3417; - goto tr3359; -tr3407: + goto tr3446; + goto tr3388; +tr3436: { s->buffer_length = 0; } - goto st1272; -tr3419: + goto st1284; +tr3448: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1272; -tr3401: + goto st1284; +tr3430: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1272; -st1272: + goto st1284; +st1284: if ( ++p == pe ) - goto _test_eof1272; -case 1272: + goto _test_eof1284; +case 1284: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86123,40 +87030,40 @@ case 1272: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3420; + goto tr3449; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3419; - goto tr77; -tr3395: + goto tr3448; + goto tr78; +tr3424: { s->buffer_length = 0; } - goto st1273; -tr3421: + goto st1285; +tr3450: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1273; -tr3389: + goto st1285; +tr3418: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1273; -st1273: + goto st1285; +st1285: if ( ++p == pe ) - goto _test_eof1273; -case 1273: + goto _test_eof1285; +case 1285: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86176,18 +87083,18 @@ case 1273: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3422; + goto tr3451; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3421; - goto tr77; -st1274: + goto tr3450; + goto tr78; +st1286: if ( ++p == pe ) - goto _test_eof1274; -case 1274: + goto _test_eof1286; +case 1286: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3423; - goto tr2688; -tr3423: + goto tr3452; + goto tr2717; +tr3452: { s->number64 = 0; } @@ -86202,11 +87109,11 @@ tr3423: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1275; -tr3427: + goto st1287; +tr3456: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -86218,14 +87125,14 @@ tr3427: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1275; -st1275: + goto st1287; +st1287: if ( ++p == pe ) - goto _test_eof1275; -case 1275: + goto _test_eof1287; +case 1287: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86239,40 +87146,40 @@ case 1275: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3424; - case 32: goto tr3424; - case 40: goto tr3425; - case 41: goto tr3426; - case 2058: goto tr3428; - case 2107: goto tr3429; + case 9: goto tr3453; + case 32: goto tr3453; + case 40: goto tr3454; + case 41: goto tr3455; + case 2058: goto tr3457; + case 2107: goto tr3458; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3427; - goto tr2688; -tr3432: + goto tr3456; + goto tr2717; +tr3461: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1276; -tr3433: + goto st1288; +tr3462: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1276; -tr3438: + goto st1288; +tr3467: { s->line_counter++; } - goto st1276; -tr3631: + goto st1288; +tr3660: { s->buffer[s->buffer_length++] = 0; @@ -86282,79 +87189,79 @@ tr3631: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1276; goto _out;} + {p++; cs = 1288; goto _out;} } } } { s->line_counter++; } - goto st1276; -tr3424: + goto st1288; +tr3453: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1276; -tr3425: + goto st1288; +tr3454: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1276; -tr3426: + goto st1288; +tr3455: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1276; -tr3428: + goto st1288; +tr3457: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1276; -st1276: + goto st1288; +st1288: if ( ++p == pe ) - goto _test_eof1276; -case 1276: + goto _test_eof1288; +case 1288: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86368,27 +87275,27 @@ case 1276: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1276; - case 32: goto st1276; - case 40: goto tr3432; - case 41: goto tr3433; - case 48: goto tr3434; - case 49: goto tr3435; - case 50: goto tr3436; - case 51: goto tr3437; - case 2058: goto tr3438; - case 2107: goto tr3439; - } - goto tr3430; -tr3434: + case 9: goto st1288; + case 32: goto st1288; + case 40: goto tr3461; + case 41: goto tr3462; + case 48: goto tr3463; + case 49: goto tr3464; + case 50: goto tr3465; + case 51: goto tr3466; + case 2058: goto tr3467; + case 2107: goto tr3468; + } + goto tr3459; +tr3463: { *(rdata_tail++) = 0; } - goto st1277; -st1277: + goto st1289; +st1289: if ( ++p == pe ) - goto _test_eof1277; -case 1277: + goto _test_eof1289; +case 1289: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86402,38 +87309,38 @@ case 1277: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1278; - case 32: goto st1278; - case 40: goto tr3441; - case 41: goto tr3442; - case 2058: goto tr3443; - case 2107: goto tr3444; + case 9: goto st1290; + case 32: goto st1290; + case 40: goto tr3470; + case 41: goto tr3471; + case 2058: goto tr3472; + case 2107: goto tr3473; } - goto tr3430; -tr3441: + goto tr3459; +tr3470: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1278; -tr3442: + goto st1290; +tr3471: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1278; -tr3443: + goto st1290; +tr3472: { s->line_counter++; } - goto st1278; -tr3493: + goto st1290; +tr3522: { s->buffer[s->buffer_length++] = 0; @@ -86443,18 +87350,18 @@ tr3493: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1278; goto _out;} + {p++; cs = 1290; goto _out;} } } } { s->line_counter++; } - goto st1278; -st1278: + goto st1290; +st1290: if ( ++p == pe ) - goto _test_eof1278; -case 1278: + goto _test_eof1290; +case 1290: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86468,17 +87375,17 @@ case 1278: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1278; - case 32: goto st1278; - case 40: goto tr3441; - case 41: goto tr3442; - case 2058: goto tr3443; - case 2107: goto tr3444; + case 9: goto st1290; + case 32: goto st1290; + case 40: goto tr3470; + case 41: goto tr3471; + case 2058: goto tr3472; + case 2107: goto tr3473; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3446; - goto tr3445; -tr3446: + goto tr3475; + goto tr3474; +tr3475: { s->number64 = 0; } @@ -86493,11 +87400,11 @@ tr3446: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1279; -tr3450: + goto st1291; +tr3479: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -86509,14 +87416,14 @@ tr3450: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1279; -st1279: + goto st1291; +st1291: if ( ++p == pe ) - goto _test_eof1279; -case 1279: + goto _test_eof1291; +case 1291: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86530,40 +87437,40 @@ case 1279: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3447; - case 32: goto tr3447; - case 40: goto tr3448; - case 41: goto tr3449; - case 2058: goto tr3451; - case 2107: goto tr3452; + case 9: goto tr3476; + case 32: goto tr3476; + case 40: goto tr3477; + case 41: goto tr3478; + case 2058: goto tr3480; + case 2107: goto tr3481; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3450; - goto tr3445; -tr3454: + goto tr3479; + goto tr3474; +tr3483: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1280; -tr3455: + goto st1292; +tr3484: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1280; -tr3457: + goto st1292; +tr3486: { s->line_counter++; } - goto st1280; -tr3491: + goto st1292; +tr3520: { s->buffer[s->buffer_length++] = 0; @@ -86573,79 +87480,79 @@ tr3491: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1280; goto _out;} + {p++; cs = 1292; goto _out;} } } } { s->line_counter++; } - goto st1280; -tr3447: + goto st1292; +tr3476: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1280; -tr3448: + goto st1292; +tr3477: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1280; -tr3449: + goto st1292; +tr3478: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1280; -tr3451: + goto st1292; +tr3480: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1280; -st1280: + goto st1292; +st1292: if ( ++p == pe ) - goto _test_eof1280; -case 1280: + goto _test_eof1292; +case 1292: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86659,19 +87566,19 @@ case 1280: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1280; - case 32: goto st1280; - case 40: goto tr3454; - case 41: goto tr3455; - case 46: goto st1281; - case 2058: goto tr3457; - case 2107: goto tr3458; + case 9: goto st1292; + case 32: goto st1292; + case 40: goto tr3483; + case 41: goto tr3484; + case 46: goto st1293; + case 2058: goto tr3486; + case 2107: goto tr3487; } - goto tr3430; -st1281: + goto tr3459; +st1293: if ( ++p == pe ) - goto _test_eof1281; -case 1281: + goto _test_eof1293; +case 1293: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -86729,66 +87636,66 @@ case 1281: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 7177: goto st1282; - case 7200: goto st1282; - case 7208: goto tr3461; - case 7209: goto tr3462; - case 7433: goto st1285; - case 7456: goto st1285; - case 7464: goto tr3464; - case 7465: goto tr3465; - case 7689: goto st1287; - case 7712: goto st1287; - case 7720: goto tr3467; - case 7721: goto tr3468; - case 10506: goto tr3469; - case 10555: goto tr3469; - case 10762: goto tr3469; - case 10811: goto tr3469; - case 11274: goto tr3470; - case 11323: goto tr3471; - case 11530: goto tr3469; - case 11579: goto tr3469; - case 11786: goto tr3472; - case 11835: goto tr3473; - case 12298: goto tr3474; - case 12347: goto tr3475; - case 12554: goto tr3469; - case 12603: goto tr3469; - case 12810: goto tr3476; - case 12859: goto tr3477; - case 13322: goto tr3478; - case 13371: goto tr3479; - case 13578: goto tr3469; - case 13627: goto tr3469; - case 13834: goto tr3480; - case 13883: goto tr3481; - } - goto tr3459; -tr3461: + case 7177: goto st1294; + case 7200: goto st1294; + case 7208: goto tr3490; + case 7209: goto tr3491; + case 7433: goto st1297; + case 7456: goto st1297; + case 7464: goto tr3493; + case 7465: goto tr3494; + case 7689: goto st1299; + case 7712: goto st1299; + case 7720: goto tr3496; + case 7721: goto tr3497; + case 10506: goto tr3498; + case 10555: goto tr3498; + case 10762: goto tr3498; + case 10811: goto tr3498; + case 11274: goto tr3499; + case 11323: goto tr3500; + case 11530: goto tr3498; + case 11579: goto tr3498; + case 11786: goto tr3501; + case 11835: goto tr3502; + case 12298: goto tr3503; + case 12347: goto tr3504; + case 12554: goto tr3498; + case 12603: goto tr3498; + case 12810: goto tr3505; + case 12859: goto tr3506; + case 13322: goto tr3507; + case 13371: goto tr3508; + case 13578: goto tr3498; + case 13627: goto tr3498; + case 13834: goto tr3509; + case 13883: goto tr3510; + } + goto tr3488; +tr3490: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1282; -tr3462: + goto st1294; +tr3491: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1282; -tr3470: + goto st1294; +tr3499: { s->line_counter++; } - goto st1282; -tr3485: + goto st1294; +tr3514: { s->buffer[s->buffer_length++] = 0; @@ -86798,100 +87705,100 @@ tr3485: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1282; goto _out;} + {p++; cs = 1294; goto _out;} } } } { s->line_counter++; } - goto st1282; -tr3515: + goto st1294; +tr3544: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1282; -tr3560: + goto st1294; +tr3589: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1282; -tr3604: + goto st1294; +tr3633: { rdata_tail += s->dname_tmp_length; } - goto st1282; -tr3605: + goto st1294; +tr3634: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1282; -tr3606: + goto st1294; +tr3635: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1282; -tr3614: + goto st1294; +tr3643: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1282; -tr3516: + goto st1294; +tr3545: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -86899,24 +87806,24 @@ tr3516: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1282; -tr3517: + goto st1294; +tr3546: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -86924,24 +87831,24 @@ tr3517: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1282; -tr3525: + goto st1294; +tr3554: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -86949,20 +87856,20 @@ tr3525: { s->line_counter++; } - goto st1282; -tr3561: + goto st1294; +tr3590: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86970,24 +87877,24 @@ tr3561: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1282; -tr3562: + goto st1294; +tr3591: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -86995,24 +87902,24 @@ tr3562: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1282; -tr3570: + goto st1294; +tr3599: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87020,11 +87927,11 @@ tr3570: { s->line_counter++; } - goto st1282; -st1282: + goto st1294; +st1294: if ( ++p == pe ) - goto _test_eof1282; -case 1282: + goto _test_eof1294; +case 1294: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -87096,30 +88003,30 @@ case 1282: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4105: goto st1282; - case 4128: goto st1282; - case 4136: goto tr3461; - case 4137: goto tr3462; - case 4139: goto tr3483; - case 5130: goto tr3470; - case 5179: goto tr3471; + case 4105: goto st1294; + case 4128: goto st1294; + case 4136: goto tr3490; + case 4137: goto tr3491; + case 4139: goto tr3512; + case 5130: goto tr3499; + case 5179: goto tr3500; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3483; + goto tr3512; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3483; + goto tr3512; } else - goto tr3483; - goto tr3482; -tr3483: - { p--; {stack[top++] = 1283;goto st387;} } - goto st1283; -st1283: + goto tr3512; + goto tr3511; +tr3512: + { p--; {stack[top++] = 1295;goto st391;} } + goto st1295; +st1295: if ( ++p == pe ) - goto _test_eof1283; -case 1283: + goto _test_eof1295; +case 1295: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87133,28 +88040,28 @@ case 1283: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3469; - case 2619: goto tr3469; + case 2570: goto tr3498; + case 2619: goto tr3498; } - goto tr3482; -tr3469: + goto tr3511; +tr3498: { p--; {cs = stack[--top];goto _again;} } - goto st1564; -tr3524: + goto st1576; +tr3553: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87162,28 +88069,28 @@ tr3524: { p--; {cs = stack[--top];goto _again;} } - goto st1564; -tr3613: + goto st1576; +tr3642: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1564; -tr3569: + goto st1576; +tr3598: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87191,45 +88098,45 @@ tr3569: { p--; {cs = stack[--top];goto _again;} } - goto st1564; -st1564: + goto st1576; +st1576: if ( ++p == pe ) - goto _test_eof1564; -case 1564: + goto _test_eof1576; +case 1576: goto st0; -tr3471: +tr3500: { s->buffer_length = 0; } - goto st1284; -tr3484: + goto st1296; +tr3513: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1284; -tr3615: + goto st1296; +tr3644: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1284; -tr3526: + goto st1296; +tr3555: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87237,20 +88144,20 @@ tr3526: { s->buffer_length = 0; } - goto st1284; -tr3571: + goto st1296; +tr3600: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87258,11 +88165,11 @@ tr3571: { s->buffer_length = 0; } - goto st1284; -st1284: + goto st1296; +st1296: if ( ++p == pe ) - goto _test_eof1284; -case 1284: + goto _test_eof1296; +case 1296: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -87288,34 +88195,34 @@ case 1284: s->number64 != 0 ) _widec += 512; } if ( _widec == 5130 ) - goto tr3485; + goto tr3514; if ( 4992 <= _widec && _widec <= 5247 ) - goto tr3484; - goto tr3482; -tr3464: + goto tr3513; + goto tr3511; +tr3493: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1285; -tr3465: + goto st1297; +tr3494: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1285; -tr3474: + goto st1297; +tr3503: { s->line_counter++; } - goto st1285; -tr3487: + goto st1297; +tr3516: { s->buffer[s->buffer_length++] = 0; @@ -87325,100 +88232,100 @@ tr3487: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1285; goto _out;} + {p++; cs = 1297; goto _out;} } } } { s->line_counter++; } - goto st1285; -tr3518: + goto st1297; +tr3547: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1285; -tr3563: + goto st1297; +tr3592: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1285; -tr3607: + goto st1297; +tr3636: { rdata_tail += s->dname_tmp_length; } - goto st1285; -tr3608: + goto st1297; +tr3637: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1285; -tr3609: + goto st1297; +tr3638: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1285; -tr3618: + goto st1297; +tr3647: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1285; -tr3519: + goto st1297; +tr3548: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87426,24 +88333,24 @@ tr3519: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1285; -tr3520: + goto st1297; +tr3549: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87451,24 +88358,24 @@ tr3520: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1285; -tr3529: + goto st1297; +tr3558: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87476,20 +88383,20 @@ tr3529: { s->line_counter++; } - goto st1285; -tr3564: + goto st1297; +tr3593: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87497,24 +88404,24 @@ tr3564: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1285; -tr3565: + goto st1297; +tr3594: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87522,24 +88429,24 @@ tr3565: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1285; -tr3574: + goto st1297; +tr3603: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87547,11 +88454,11 @@ tr3574: { s->line_counter++; } - goto st1285; -st1285: + goto st1297; +st1297: if ( ++p == pe ) - goto _test_eof1285; -case 1285: + goto _test_eof1297; +case 1297: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -87597,55 +88504,55 @@ case 1285: s->number64 == 0 ) _widec += 256; } switch( _widec ) { - case 5641: goto st1285; - case 5664: goto st1285; - case 5672: goto tr3464; - case 5673: goto tr3465; - case 14602: goto tr3469; - case 14651: goto tr3469; - case 14858: goto tr3469; - case 14907: goto tr3469; - case 15370: goto tr3474; - case 15419: goto tr3475; - case 15626: goto tr3469; - case 15675: goto tr3469; - case 15882: goto tr3476; - case 15931: goto tr3477; - } - goto tr3482; -tr3475: + case 5641: goto st1297; + case 5664: goto st1297; + case 5672: goto tr3493; + case 5673: goto tr3494; + case 14602: goto tr3498; + case 14651: goto tr3498; + case 14858: goto tr3498; + case 14907: goto tr3498; + case 15370: goto tr3503; + case 15419: goto tr3504; + case 15626: goto tr3498; + case 15675: goto tr3498; + case 15882: goto tr3505; + case 15931: goto tr3506; + } + goto tr3511; +tr3504: { s->buffer_length = 0; } - goto st1286; -tr3486: + goto st1298; +tr3515: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1286; -tr3619: + goto st1298; +tr3648: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1286; -tr3530: + goto st1298; +tr3559: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87653,20 +88560,20 @@ tr3530: { s->buffer_length = 0; } - goto st1286; -tr3575: + goto st1298; +tr3604: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87674,11 +88581,11 @@ tr3575: { s->buffer_length = 0; } - goto st1286; -st1286: + goto st1298; +st1298: if ( ++p == pe ) - goto _test_eof1286; -case 1286: + goto _test_eof1298; +case 1298: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -87704,31 +88611,31 @@ case 1286: s->number64 == 0 ) _widec += 512; } if ( _widec == 6666 ) - goto tr3487; + goto tr3516; if ( 6528 <= _widec && _widec <= 6783 ) - goto tr3486; - goto tr3482; -tr3476: + goto tr3515; + goto tr3511; +tr3505: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1565; -tr3531: + goto st1577; +tr3560: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87739,20 +88646,20 @@ tr3531: { p--; {cs = stack[--top];goto _again;} } - goto st1565; -tr3576: + goto st1577; +tr3605: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87763,8 +88670,8 @@ tr3576: { p--; {cs = stack[--top];goto _again;} } - goto st1565; -tr3620: + goto st1577; +tr3649: { rdata_tail += s->dname_tmp_length; } @@ -87774,11 +88681,11 @@ tr3620: { p--; {cs = stack[--top];goto _again;} } - goto st1565; -st1565: + goto st1577; +st1577: if ( ++p == pe ) - goto _test_eof1565; -case 1565: + goto _test_eof1577; +case 1577: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -87824,43 +88731,43 @@ case 1565: s->number64 == 0 ) _widec += 256; } switch( _widec ) { - case 5641: goto st1285; - case 5664: goto st1285; - case 5672: goto tr3464; - case 5673: goto tr3465; - case 14602: goto tr3469; - case 14651: goto tr3469; - case 14858: goto tr3469; - case 14907: goto tr3469; - case 15370: goto tr3474; - case 15419: goto tr3475; - case 15626: goto tr3469; - case 15675: goto tr3469; - case 15882: goto tr3476; - case 15931: goto tr3477; - } - goto tr3482; -tr3477: + case 5641: goto st1297; + case 5664: goto st1297; + case 5672: goto tr3493; + case 5673: goto tr3494; + case 14602: goto tr3498; + case 14651: goto tr3498; + case 14858: goto tr3498; + case 14907: goto tr3498; + case 15370: goto tr3503; + case 15419: goto tr3504; + case 15626: goto tr3498; + case 15675: goto tr3498; + case 15882: goto tr3505; + case 15931: goto tr3506; + } + goto tr3511; +tr3506: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1566; -tr3532: + goto st1578; +tr3561: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -87871,20 +88778,20 @@ tr3532: { p--; {cs = stack[--top];goto _again;} } - goto st1566; -tr3577: + goto st1578; +tr3606: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -87895,8 +88802,8 @@ tr3577: { p--; {cs = stack[--top];goto _again;} } - goto st1566; -tr3621: + goto st1578; +tr3650: { rdata_tail += s->dname_tmp_length; } @@ -87906,11 +88813,11 @@ tr3621: { p--; {cs = stack[--top];goto _again;} } - goto st1566; -st1566: + goto st1578; +st1578: if ( ++p == pe ) - goto _test_eof1566; -case 1566: + goto _test_eof1578; +case 1578: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -87936,34 +88843,34 @@ case 1566: s->number64 == 0 ) _widec += 512; } if ( _widec == 6666 ) - goto tr3487; + goto tr3516; if ( 6528 <= _widec && _widec <= 6783 ) - goto tr3486; - goto tr3482; -tr3467: + goto tr3515; + goto tr3511; +tr3496: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1287; -tr3468: + goto st1299; +tr3497: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1287; -tr3478: + goto st1299; +tr3507: { s->line_counter++; } - goto st1287; -tr3489: + goto st1299; +tr3518: { s->buffer[s->buffer_length++] = 0; @@ -87973,100 +88880,100 @@ tr3489: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1287; goto _out;} + {p++; cs = 1299; goto _out;} } } } { s->line_counter++; } - goto st1287; -tr3521: + goto st1299; +tr3550: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1287; -tr3566: + goto st1299; +tr3595: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1287; -tr3610: + goto st1299; +tr3639: { rdata_tail += s->dname_tmp_length; } - goto st1287; -tr3611: + goto st1299; +tr3640: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1287; -tr3612: + goto st1299; +tr3641: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1287; -tr3622: + goto st1299; +tr3651: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1287; -tr3522: + goto st1299; +tr3551: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88074,24 +88981,24 @@ tr3522: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1287; -tr3523: + goto st1299; +tr3552: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88099,24 +89006,24 @@ tr3523: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1287; -tr3533: + goto st1299; +tr3562: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88124,20 +89031,20 @@ tr3533: { s->line_counter++; } - goto st1287; -tr3567: + goto st1299; +tr3596: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88145,24 +89052,24 @@ tr3567: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1287; -tr3568: + goto st1299; +tr3597: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88170,24 +89077,24 @@ tr3568: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1287; -tr3578: + goto st1299; +tr3607: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88195,11 +89102,11 @@ tr3578: { s->line_counter++; } - goto st1287; -st1287: + goto st1299; +st1299: if ( ++p == pe ) - goto _test_eof1287; -case 1287: + goto _test_eof1299; +case 1299: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -88287,72 +89194,72 @@ case 1287: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4139: goto tr3483; - case 7177: goto st1282; - case 7200: goto st1282; - case 7208: goto tr3461; - case 7209: goto tr3462; - case 7433: goto st1285; - case 7456: goto st1285; - case 7464: goto tr3464; - case 7465: goto tr3465; - case 7689: goto st1287; - case 7712: goto st1287; - case 7720: goto tr3467; - case 7721: goto tr3468; - case 10506: goto tr3469; - case 10555: goto tr3469; - case 10762: goto tr3469; - case 10811: goto tr3469; - case 11274: goto tr3470; - case 11323: goto tr3471; - case 11530: goto tr3469; - case 11579: goto tr3469; - case 11786: goto tr3472; - case 11835: goto tr3473; - case 12298: goto tr3474; - case 12347: goto tr3475; - case 12554: goto tr3469; - case 12603: goto tr3469; - case 12810: goto tr3476; - case 12859: goto tr3477; - case 13322: goto tr3478; - case 13371: goto tr3479; - case 13578: goto tr3469; - case 13627: goto tr3469; - case 13834: goto tr3480; - case 13883: goto tr3481; + case 4139: goto tr3512; + case 7177: goto st1294; + case 7200: goto st1294; + case 7208: goto tr3490; + case 7209: goto tr3491; + case 7433: goto st1297; + case 7456: goto st1297; + case 7464: goto tr3493; + case 7465: goto tr3494; + case 7689: goto st1299; + case 7712: goto st1299; + case 7720: goto tr3496; + case 7721: goto tr3497; + case 10506: goto tr3498; + case 10555: goto tr3498; + case 10762: goto tr3498; + case 10811: goto tr3498; + case 11274: goto tr3499; + case 11323: goto tr3500; + case 11530: goto tr3498; + case 11579: goto tr3498; + case 11786: goto tr3501; + case 11835: goto tr3502; + case 12298: goto tr3503; + case 12347: goto tr3504; + case 12554: goto tr3498; + case 12603: goto tr3498; + case 12810: goto tr3505; + case 12859: goto tr3506; + case 13322: goto tr3507; + case 13371: goto tr3508; + case 13578: goto tr3498; + case 13627: goto tr3498; + case 13834: goto tr3509; + case 13883: goto tr3510; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3483; + goto tr3512; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3483; + goto tr3512; } else - goto tr3483; - goto tr3482; -tr3472: + goto tr3512; + goto tr3511; +tr3501: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1567; -tr3527: + goto st1579; +tr3556: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88363,20 +89270,20 @@ tr3527: { p--; {cs = stack[--top];goto _again;} } - goto st1567; -tr3572: + goto st1579; +tr3601: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88387,8 +89294,8 @@ tr3572: { p--; {cs = stack[--top];goto _again;} } - goto st1567; -tr3616: + goto st1579; +tr3645: { rdata_tail += s->dname_tmp_length; } @@ -88398,11 +89305,11 @@ tr3616: { p--; {cs = stack[--top];goto _again;} } - goto st1567; -st1567: + goto st1579; +st1579: if ( ++p == pe ) - goto _test_eof1567; -case 1567: + goto _test_eof1579; +case 1579: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -88474,44 +89381,44 @@ case 1567: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4105: goto st1282; - case 4128: goto st1282; - case 4136: goto tr3461; - case 4137: goto tr3462; - case 4139: goto tr3483; - case 5130: goto tr3470; - case 5179: goto tr3471; + case 4105: goto st1294; + case 4128: goto st1294; + case 4136: goto tr3490; + case 4137: goto tr3491; + case 4139: goto tr3512; + case 5130: goto tr3499; + case 5179: goto tr3500; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3483; + goto tr3512; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3483; + goto tr3512; } else - goto tr3483; - goto tr3482; -tr3473: + goto tr3512; + goto tr3511; +tr3502: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1568; -tr3528: + goto st1580; +tr3557: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88522,20 +89429,20 @@ tr3528: { p--; {cs = stack[--top];goto _again;} } - goto st1568; -tr3573: + goto st1580; +tr3602: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88546,8 +89453,8 @@ tr3573: { p--; {cs = stack[--top];goto _again;} } - goto st1568; -tr3617: + goto st1580; +tr3646: { rdata_tail += s->dname_tmp_length; } @@ -88557,11 +89464,11 @@ tr3617: { p--; {cs = stack[--top];goto _again;} } - goto st1568; -st1568: + goto st1580; +st1580: if ( ++p == pe ) - goto _test_eof1568; -case 1568: + goto _test_eof1580; +case 1580: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -88587,43 +89494,43 @@ case 1568: s->number64 != 0 ) _widec += 512; } if ( _widec == 5130 ) - goto tr3485; + goto tr3514; if ( 4992 <= _widec && _widec <= 5247 ) - goto tr3484; - goto tr3482; -tr3479: + goto tr3513; + goto tr3511; +tr3508: { s->buffer_length = 0; } - goto st1288; -tr3488: + goto st1300; +tr3517: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1288; -tr3623: + goto st1300; +tr3652: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1288; -tr3534: + goto st1300; +tr3563: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88631,20 +89538,20 @@ tr3534: { s->buffer_length = 0; } - goto st1288; -tr3579: + goto st1300; +tr3608: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88652,11 +89559,11 @@ tr3579: { s->buffer_length = 0; } - goto st1288; -st1288: + goto st1300; +st1300: if ( ++p == pe ) - goto _test_eof1288; -case 1288: + goto _test_eof1300; +case 1300: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -88688,40 +89595,40 @@ case 1288: s->number64 == 0 ) _widec += 1024; } switch( _widec ) { - case 8714: goto tr3485; - case 9226: goto tr3487; - case 9738: goto tr3489; + case 8714: goto tr3514; + case 9226: goto tr3516; + case 9738: goto tr3518; } if ( _widec < 9088 ) { if ( 8576 <= _widec && _widec <= 8831 ) - goto tr3484; + goto tr3513; } else if ( _widec > 9343 ) { if ( 9600 <= _widec && _widec <= 9855 ) - goto tr3488; + goto tr3517; } else - goto tr3486; - goto tr3482; -tr3480: + goto tr3515; + goto tr3511; +tr3509: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1569; -tr3535: + goto st1581; +tr3564: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88732,20 +89639,20 @@ tr3535: { p--; {cs = stack[--top];goto _again;} } - goto st1569; -tr3580: + goto st1581; +tr3609: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88756,8 +89663,8 @@ tr3580: { p--; {cs = stack[--top];goto _again;} } - goto st1569; -tr3624: + goto st1581; +tr3653: { rdata_tail += s->dname_tmp_length; } @@ -88767,11 +89674,11 @@ tr3624: { p--; {cs = stack[--top];goto _again;} } - goto st1569; -st1569: + goto st1581; +st1581: if ( ++p == pe ) - goto _test_eof1569; -case 1569: + goto _test_eof1581; +case 1581: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -88859,72 +89766,72 @@ case 1569: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4139: goto tr3483; - case 7177: goto st1282; - case 7200: goto st1282; - case 7208: goto tr3461; - case 7209: goto tr3462; - case 7433: goto st1285; - case 7456: goto st1285; - case 7464: goto tr3464; - case 7465: goto tr3465; - case 7689: goto st1287; - case 7712: goto st1287; - case 7720: goto tr3467; - case 7721: goto tr3468; - case 10506: goto tr3469; - case 10555: goto tr3469; - case 10762: goto tr3469; - case 10811: goto tr3469; - case 11274: goto tr3470; - case 11323: goto tr3471; - case 11530: goto tr3469; - case 11579: goto tr3469; - case 11786: goto tr3472; - case 11835: goto tr3473; - case 12298: goto tr3474; - case 12347: goto tr3475; - case 12554: goto tr3469; - case 12603: goto tr3469; - case 12810: goto tr3476; - case 12859: goto tr3477; - case 13322: goto tr3478; - case 13371: goto tr3479; - case 13578: goto tr3469; - case 13627: goto tr3469; - case 13834: goto tr3480; - case 13883: goto tr3481; + case 4139: goto tr3512; + case 7177: goto st1294; + case 7200: goto st1294; + case 7208: goto tr3490; + case 7209: goto tr3491; + case 7433: goto st1297; + case 7456: goto st1297; + case 7464: goto tr3493; + case 7465: goto tr3494; + case 7689: goto st1299; + case 7712: goto st1299; + case 7720: goto tr3496; + case 7721: goto tr3497; + case 10506: goto tr3498; + case 10555: goto tr3498; + case 10762: goto tr3498; + case 10811: goto tr3498; + case 11274: goto tr3499; + case 11323: goto tr3500; + case 11530: goto tr3498; + case 11579: goto tr3498; + case 11786: goto tr3501; + case 11835: goto tr3502; + case 12298: goto tr3503; + case 12347: goto tr3504; + case 12554: goto tr3498; + case 12603: goto tr3498; + case 12810: goto tr3505; + case 12859: goto tr3506; + case 13322: goto tr3507; + case 13371: goto tr3508; + case 13578: goto tr3498; + case 13627: goto tr3498; + case 13834: goto tr3509; + case 13883: goto tr3510; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3483; + goto tr3512; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3483; + goto tr3512; } else - goto tr3483; - goto tr3482; -tr3481: + goto tr3512; + goto tr3511; +tr3510: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1570; -tr3536: + goto st1582; +tr3565: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88935,20 +89842,20 @@ tr3536: { p--; {cs = stack[--top];goto _again;} } - goto st1570; -tr3581: + goto st1582; +tr3610: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88959,8 +89866,8 @@ tr3581: { p--; {cs = stack[--top];goto _again;} } - goto st1570; -tr3625: + goto st1582; +tr3654: { rdata_tail += s->dname_tmp_length; } @@ -88970,11 +89877,11 @@ tr3625: { p--; {cs = stack[--top];goto _again;} } - goto st1570; -st1570: + goto st1582; +st1582: if ( ++p == pe ) - goto _test_eof1570; -case 1570: + goto _test_eof1582; +case 1582: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89006,49 +89913,49 @@ case 1570: s->number64 == 0 ) _widec += 1024; } switch( _widec ) { - case 8714: goto tr3485; - case 9226: goto tr3487; - case 9738: goto tr3489; + case 8714: goto tr3514; + case 9226: goto tr3516; + case 9738: goto tr3518; } if ( _widec < 9088 ) { if ( 8576 <= _widec && _widec <= 8831 ) - goto tr3484; + goto tr3513; } else if ( _widec > 9343 ) { if ( 9600 <= _widec && _widec <= 9855 ) - goto tr3488; + goto tr3517; } else - goto tr3486; - goto tr3482; -tr3458: + goto tr3515; + goto tr3511; +tr3487: { s->buffer_length = 0; } - goto st1289; -tr3490: + goto st1301; +tr3519: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1289; -tr3452: + goto st1301; +tr3481: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1289; -st1289: + goto st1301; +st1301: if ( ++p == pe ) - goto _test_eof1289; -case 1289: + goto _test_eof1301; +case 1301: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89068,26 +89975,26 @@ case 1289: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3491; + goto tr3520; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3490; - goto tr3430; -tr3444: + goto tr3519; + goto tr3459; +tr3473: { s->buffer_length = 0; } - goto st1290; -tr3492: + goto st1302; +tr3521: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1290; -st1290: + goto st1302; +st1302: if ( ++p == pe ) - goto _test_eof1290; -case 1290: + goto _test_eof1302; +case 1302: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89107,19 +90014,19 @@ case 1290: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3493; + goto tr3522; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3492; - goto tr3430; -tr3435: + goto tr3521; + goto tr3459; +tr3464: { *(rdata_tail++) = 1; } - goto st1291; -st1291: + goto st1303; +st1303: if ( ++p == pe ) - goto _test_eof1291; -case 1291: + goto _test_eof1303; +case 1303: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89133,38 +90040,38 @@ case 1291: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1292; - case 32: goto st1292; - case 40: goto tr3495; - case 41: goto tr3496; - case 2058: goto tr3497; - case 2107: goto tr3498; + case 9: goto st1304; + case 32: goto st1304; + case 40: goto tr3524; + case 41: goto tr3525; + case 2058: goto tr3526; + case 2107: goto tr3527; } - goto tr3430; -tr3495: + goto tr3459; +tr3524: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1292; -tr3496: + goto st1304; +tr3525: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1292; -tr3497: + goto st1304; +tr3526: { s->line_counter++; } - goto st1292; -tr3540: + goto st1304; +tr3569: { s->buffer[s->buffer_length++] = 0; @@ -89174,18 +90081,18 @@ tr3540: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1292; goto _out;} + {p++; cs = 1304; goto _out;} } } } { s->line_counter++; } - goto st1292; -st1292: + goto st1304; +st1304: if ( ++p == pe ) - goto _test_eof1292; -case 1292: + goto _test_eof1304; +case 1304: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89199,17 +90106,17 @@ case 1292: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1292; - case 32: goto st1292; - case 40: goto tr3495; - case 41: goto tr3496; - case 2058: goto tr3497; - case 2107: goto tr3498; + case 9: goto st1304; + case 32: goto st1304; + case 40: goto tr3524; + case 41: goto tr3525; + case 2058: goto tr3526; + case 2107: goto tr3527; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3499; - goto tr3445; -tr3499: + goto tr3528; + goto tr3474; +tr3528: { s->number64 = 0; } @@ -89224,11 +90131,11 @@ tr3499: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1293; -tr3503: + goto st1305; +tr3532: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -89240,14 +90147,14 @@ tr3503: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1293; -st1293: + goto st1305; +st1305: if ( ++p == pe ) - goto _test_eof1293; -case 1293: + goto _test_eof1305; +case 1305: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89261,40 +90168,40 @@ case 1293: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3500; - case 32: goto tr3500; - case 40: goto tr3501; - case 41: goto tr3502; - case 2058: goto tr3504; - case 2107: goto tr3505; + case 9: goto tr3529; + case 32: goto tr3529; + case 40: goto tr3530; + case 41: goto tr3531; + case 2058: goto tr3533; + case 2107: goto tr3534; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3503; - goto tr3445; -tr3508: + goto tr3532; + goto tr3474; +tr3537: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1294; -tr3509: + goto st1306; +tr3538: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1294; -tr3511: + goto st1306; +tr3540: { s->line_counter++; } - goto st1294; -tr3538: + goto st1306; +tr3567: { s->buffer[s->buffer_length++] = 0; @@ -89304,79 +90211,79 @@ tr3538: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1294; goto _out;} + {p++; cs = 1306; goto _out;} } } } { s->line_counter++; } - goto st1294; -tr3500: + goto st1306; +tr3529: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1294; -tr3501: + goto st1306; +tr3530: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1294; -tr3502: + goto st1306; +tr3531: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1294; -tr3504: + goto st1306; +tr3533: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1294; -st1294: + goto st1306; +st1306: if ( ++p == pe ) - goto _test_eof1294; -case 1294: + goto _test_eof1306; +case 1306: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89390,28 +90297,28 @@ case 1294: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1294; - case 32: goto st1294; - case 40: goto tr3508; - case 41: goto tr3509; - case 46: goto tr3510; - case 2058: goto tr3511; - case 2107: goto tr3512; + case 9: goto st1306; + case 32: goto st1306; + case 40: goto tr3537; + case 41: goto tr3538; + case 46: goto tr3539; + case 2058: goto tr3540; + case 2107: goto tr3541; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3510; - goto tr3506; -tr3514: + goto tr3539; + goto tr3535; +tr3543: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1295; -tr3510: + goto st1307; +tr3539: { s->buffer_length = 0; } @@ -89420,14 +90327,14 @@ tr3510: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1295; -st1295: + goto st1307; +st1307: if ( ++p == pe ) - goto _test_eof1295; -case 1295: + goto _test_eof1307; +case 1307: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -89485,75 +90392,75 @@ case 1295: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 46: goto tr3514; - case 7177: goto tr3515; - case 7200: goto tr3515; - case 7208: goto tr3516; - case 7209: goto tr3517; - case 7433: goto tr3518; - case 7456: goto tr3518; - case 7464: goto tr3519; - case 7465: goto tr3520; - case 7689: goto tr3521; - case 7712: goto tr3521; - case 7720: goto tr3522; - case 7721: goto tr3523; - case 10506: goto tr3524; - case 10555: goto tr3524; - case 10762: goto tr3524; - case 10811: goto tr3524; - case 11274: goto tr3525; - case 11323: goto tr3526; - case 11530: goto tr3524; - case 11579: goto tr3524; - case 11786: goto tr3527; - case 11835: goto tr3528; - case 12298: goto tr3529; - case 12347: goto tr3530; - case 12554: goto tr3524; - case 12603: goto tr3524; - case 12810: goto tr3531; - case 12859: goto tr3532; - case 13322: goto tr3533; - case 13371: goto tr3534; - case 13578: goto tr3524; - case 13627: goto tr3524; - case 13834: goto tr3535; - case 13883: goto tr3536; + case 46: goto tr3543; + case 7177: goto tr3544; + case 7200: goto tr3544; + case 7208: goto tr3545; + case 7209: goto tr3546; + case 7433: goto tr3547; + case 7456: goto tr3547; + case 7464: goto tr3548; + case 7465: goto tr3549; + case 7689: goto tr3550; + case 7712: goto tr3550; + case 7720: goto tr3551; + case 7721: goto tr3552; + case 10506: goto tr3553; + case 10555: goto tr3553; + case 10762: goto tr3553; + case 10811: goto tr3553; + case 11274: goto tr3554; + case 11323: goto tr3555; + case 11530: goto tr3553; + case 11579: goto tr3553; + case 11786: goto tr3556; + case 11835: goto tr3557; + case 12298: goto tr3558; + case 12347: goto tr3559; + case 12554: goto tr3553; + case 12603: goto tr3553; + case 12810: goto tr3560; + case 12859: goto tr3561; + case 13322: goto tr3562; + case 13371: goto tr3563; + case 13578: goto tr3553; + case 13627: goto tr3553; + case 13834: goto tr3564; + case 13883: goto tr3565; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3514; - goto tr3513; -tr3512: + goto tr3543; + goto tr3542; +tr3541: { s->buffer_length = 0; } - goto st1296; -tr3537: + goto st1308; +tr3566: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1296; -tr3505: + goto st1308; +tr3534: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1296; -st1296: + goto st1308; +st1308: if ( ++p == pe ) - goto _test_eof1296; -case 1296: + goto _test_eof1308; +case 1308: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89573,26 +90480,26 @@ case 1296: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3538; + goto tr3567; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3537; - goto tr3430; -tr3498: + goto tr3566; + goto tr3459; +tr3527: { s->buffer_length = 0; } - goto st1297; -tr3539: + goto st1309; +tr3568: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1297; -st1297: + goto st1309; +st1309: if ( ++p == pe ) - goto _test_eof1297; -case 1297: + goto _test_eof1309; +case 1309: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89612,19 +90519,19 @@ case 1297: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3540; + goto tr3569; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3539; - goto tr3430; -tr3436: + goto tr3568; + goto tr3459; +tr3465: { *(rdata_tail++) = 2; } - goto st1298; -st1298: + goto st1310; +st1310: if ( ++p == pe ) - goto _test_eof1298; -case 1298: + goto _test_eof1310; +case 1310: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89638,38 +90545,38 @@ case 1298: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1299; - case 32: goto st1299; - case 40: goto tr3542; - case 41: goto tr3543; - case 2058: goto tr3544; - case 2107: goto tr3545; + case 9: goto st1311; + case 32: goto st1311; + case 40: goto tr3571; + case 41: goto tr3572; + case 2058: goto tr3573; + case 2107: goto tr3574; } - goto tr3430; -tr3542: + goto tr3459; +tr3571: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1299; -tr3543: + goto st1311; +tr3572: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1299; -tr3544: + goto st1311; +tr3573: { s->line_counter++; } - goto st1299; -tr3585: + goto st1311; +tr3614: { s->buffer[s->buffer_length++] = 0; @@ -89679,18 +90586,18 @@ tr3585: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1299; goto _out;} + {p++; cs = 1311; goto _out;} } } } { s->line_counter++; } - goto st1299; -st1299: + goto st1311; +st1311: if ( ++p == pe ) - goto _test_eof1299; -case 1299: + goto _test_eof1311; +case 1311: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89704,17 +90611,17 @@ case 1299: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1299; - case 32: goto st1299; - case 40: goto tr3542; - case 41: goto tr3543; - case 2058: goto tr3544; - case 2107: goto tr3545; + case 9: goto st1311; + case 32: goto st1311; + case 40: goto tr3571; + case 41: goto tr3572; + case 2058: goto tr3573; + case 2107: goto tr3574; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3546; - goto tr3445; -tr3546: + goto tr3575; + goto tr3474; +tr3575: { s->number64 = 0; } @@ -89729,11 +90636,11 @@ tr3546: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1300; -tr3550: + goto st1312; +tr3579: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -89745,14 +90652,14 @@ tr3550: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1300; -st1300: + goto st1312; +st1312: if ( ++p == pe ) - goto _test_eof1300; -case 1300: + goto _test_eof1312; +case 1312: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89766,40 +90673,40 @@ case 1300: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3547; - case 32: goto tr3547; - case 40: goto tr3548; - case 41: goto tr3549; - case 2058: goto tr3551; - case 2107: goto tr3552; + case 9: goto tr3576; + case 32: goto tr3576; + case 40: goto tr3577; + case 41: goto tr3578; + case 2058: goto tr3580; + case 2107: goto tr3581; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3550; - goto tr3445; -tr3554: + goto tr3579; + goto tr3474; +tr3583: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1301; -tr3555: + goto st1313; +tr3584: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1301; -tr3557: + goto st1313; +tr3586: { s->line_counter++; } - goto st1301; -tr3583: + goto st1313; +tr3612: { s->buffer[s->buffer_length++] = 0; @@ -89809,79 +90716,79 @@ tr3583: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1301; goto _out;} + {p++; cs = 1313; goto _out;} } } } { s->line_counter++; } - goto st1301; -tr3547: + goto st1313; +tr3576: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1301; -tr3548: + goto st1313; +tr3577: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1301; -tr3549: + goto st1313; +tr3578: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1301; -tr3551: + goto st1313; +tr3580: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1301; -st1301: + goto st1313; +st1313: if ( ++p == pe ) - goto _test_eof1301; -case 1301: + goto _test_eof1313; +case 1313: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -89895,34 +90802,34 @@ case 1301: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1301; - case 32: goto st1301; - case 40: goto tr3554; - case 41: goto tr3555; - case 46: goto tr3556; - case 2058: goto tr3557; - case 2107: goto tr3558; + case 9: goto st1313; + case 32: goto st1313; + case 40: goto tr3583; + case 41: goto tr3584; + case 46: goto tr3585; + case 2058: goto tr3586; + case 2107: goto tr3587; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 58 ) - goto tr3556; + goto tr3585; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3556; + goto tr3585; } else - goto tr3556; - goto tr3506; -tr3559: + goto tr3585; + goto tr3535; +tr3588: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1302; -tr3556: + goto st1314; +tr3585: { s->buffer_length = 0; } @@ -89931,14 +90838,14 @@ tr3556: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1302; -st1302: + goto st1314; +st1314: if ( ++p == pe ) - goto _test_eof1302; -case 1302: + goto _test_eof1314; +case 1314: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -89996,81 +90903,81 @@ case 1302: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 46: goto tr3559; - case 7177: goto tr3560; - case 7200: goto tr3560; - case 7208: goto tr3561; - case 7209: goto tr3562; - case 7433: goto tr3563; - case 7456: goto tr3563; - case 7464: goto tr3564; - case 7465: goto tr3565; - case 7689: goto tr3566; - case 7712: goto tr3566; - case 7720: goto tr3567; - case 7721: goto tr3568; - case 10506: goto tr3569; - case 10555: goto tr3569; - case 10762: goto tr3569; - case 10811: goto tr3569; - case 11274: goto tr3570; - case 11323: goto tr3571; - case 11530: goto tr3569; - case 11579: goto tr3569; - case 11786: goto tr3572; - case 11835: goto tr3573; - case 12298: goto tr3574; - case 12347: goto tr3575; - case 12554: goto tr3569; - case 12603: goto tr3569; - case 12810: goto tr3576; - case 12859: goto tr3577; - case 13322: goto tr3578; - case 13371: goto tr3579; - case 13578: goto tr3569; - case 13627: goto tr3569; - case 13834: goto tr3580; - case 13883: goto tr3581; + case 46: goto tr3588; + case 7177: goto tr3589; + case 7200: goto tr3589; + case 7208: goto tr3590; + case 7209: goto tr3591; + case 7433: goto tr3592; + case 7456: goto tr3592; + case 7464: goto tr3593; + case 7465: goto tr3594; + case 7689: goto tr3595; + case 7712: goto tr3595; + case 7720: goto tr3596; + case 7721: goto tr3597; + case 10506: goto tr3598; + case 10555: goto tr3598; + case 10762: goto tr3598; + case 10811: goto tr3598; + case 11274: goto tr3599; + case 11323: goto tr3600; + case 11530: goto tr3598; + case 11579: goto tr3598; + case 11786: goto tr3601; + case 11835: goto tr3602; + case 12298: goto tr3603; + case 12347: goto tr3604; + case 12554: goto tr3598; + case 12603: goto tr3598; + case 12810: goto tr3605; + case 12859: goto tr3606; + case 13322: goto tr3607; + case 13371: goto tr3608; + case 13578: goto tr3598; + case 13627: goto tr3598; + case 13834: goto tr3609; + case 13883: goto tr3610; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 58 ) - goto tr3559; + goto tr3588; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3559; + goto tr3588; } else - goto tr3559; - goto tr3513; -tr3558: + goto tr3588; + goto tr3542; +tr3587: { s->buffer_length = 0; } - goto st1303; -tr3582: + goto st1315; +tr3611: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1303; -tr3552: + goto st1315; +tr3581: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1303; -st1303: + goto st1315; +st1315: if ( ++p == pe ) - goto _test_eof1303; -case 1303: + goto _test_eof1315; +case 1315: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90090,26 +90997,26 @@ case 1303: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3583; + goto tr3612; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3582; - goto tr3430; -tr3545: + goto tr3611; + goto tr3459; +tr3574: { s->buffer_length = 0; } - goto st1304; -tr3584: + goto st1316; +tr3613: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1304; -st1304: + goto st1316; +st1316: if ( ++p == pe ) - goto _test_eof1304; -case 1304: + goto _test_eof1316; +case 1316: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90129,19 +91036,19 @@ case 1304: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3585; + goto tr3614; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3584; - goto tr3430; -tr3437: + goto tr3613; + goto tr3459; +tr3466: { *(rdata_tail++) = 3; } - goto st1305; -st1305: + goto st1317; +st1317: if ( ++p == pe ) - goto _test_eof1305; -case 1305: + goto _test_eof1317; +case 1317: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90155,38 +91062,38 @@ case 1305: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1306; - case 32: goto st1306; - case 40: goto tr3587; - case 41: goto tr3588; - case 2058: goto tr3589; - case 2107: goto tr3590; + case 9: goto st1318; + case 32: goto st1318; + case 40: goto tr3616; + case 41: goto tr3617; + case 2058: goto tr3618; + case 2107: goto tr3619; } - goto tr3430; -tr3587: + goto tr3459; +tr3616: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1306; -tr3588: + goto st1318; +tr3617: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1306; -tr3589: + goto st1318; +tr3618: { s->line_counter++; } - goto st1306; -tr3629: + goto st1318; +tr3658: { s->buffer[s->buffer_length++] = 0; @@ -90196,18 +91103,18 @@ tr3629: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1306; goto _out;} + {p++; cs = 1318; goto _out;} } } } { s->line_counter++; } - goto st1306; -st1306: + goto st1318; +st1318: if ( ++p == pe ) - goto _test_eof1306; -case 1306: + goto _test_eof1318; +case 1318: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90221,17 +91128,17 @@ case 1306: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1306; - case 32: goto st1306; - case 40: goto tr3587; - case 41: goto tr3588; - case 2058: goto tr3589; - case 2107: goto tr3590; + case 9: goto st1318; + case 32: goto st1318; + case 40: goto tr3616; + case 41: goto tr3617; + case 2058: goto tr3618; + case 2107: goto tr3619; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3591; - goto tr3445; -tr3591: + goto tr3620; + goto tr3474; +tr3620: { s->number64 = 0; } @@ -90246,11 +91153,11 @@ tr3591: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1307; -tr3595: + goto st1319; +tr3624: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -90262,14 +91169,14 @@ tr3595: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1307; -st1307: + goto st1319; +st1319: if ( ++p == pe ) - goto _test_eof1307; -case 1307: + goto _test_eof1319; +case 1319: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90283,40 +91190,40 @@ case 1307: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3592; - case 32: goto tr3592; - case 40: goto tr3593; - case 41: goto tr3594; - case 2058: goto tr3596; - case 2107: goto tr3597; + case 9: goto tr3621; + case 32: goto tr3621; + case 40: goto tr3622; + case 41: goto tr3623; + case 2058: goto tr3625; + case 2107: goto tr3626; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3595; - goto tr3445; -tr3599: + goto tr3624; + goto tr3474; +tr3628: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1308; -tr3600: + goto st1320; +tr3629: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1308; -tr3602: + goto st1320; +tr3631: { s->line_counter++; } - goto st1308; -tr3627: + goto st1320; +tr3656: { s->buffer[s->buffer_length++] = 0; @@ -90326,79 +91233,79 @@ tr3627: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1308; goto _out;} + {p++; cs = 1320; goto _out;} } } } { s->line_counter++; } - goto st1308; -tr3592: + goto st1320; +tr3621: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1308; -tr3593: + goto st1320; +tr3622: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1308; -tr3594: + goto st1320; +tr3623: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1308; -tr3596: + goto st1320; +tr3625: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1308; -st1308: + goto st1320; +st1320: if ( ++p == pe ) - goto _test_eof1308; -case 1308: + goto _test_eof1320; +case 1320: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90412,35 +91319,35 @@ case 1308: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1308; - case 32: goto st1308; - case 40: goto tr3599; - case 41: goto tr3600; - case 42: goto tr3601; - case 92: goto tr3601; - case 95: goto tr3601; - case 2058: goto tr3602; - case 2107: goto tr3603; + case 9: goto st1320; + case 32: goto st1320; + case 40: goto tr3628; + case 41: goto tr3629; + case 42: goto tr3630; + case 92: goto tr3630; + case 95: goto tr3630; + case 2058: goto tr3631; + case 2107: goto tr3632; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3601; + goto tr3630; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3601; + goto tr3630; } else - goto tr3601; - goto tr3430; -tr3601: + goto tr3630; + goto tr3459; +tr3630: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1309;goto st327;} } - goto st1309; -st1309: + { p--; {stack[top++] = 1321;goto st331;} } + goto st1321; +st1321: if ( ++p == pe ) - goto _test_eof1309; -case 1309: + goto _test_eof1321; +case 1321: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -90498,72 +91405,72 @@ case 1309: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 7177: goto tr3604; - case 7200: goto tr3604; - case 7208: goto tr3605; - case 7209: goto tr3606; - case 7433: goto tr3607; - case 7456: goto tr3607; - case 7464: goto tr3608; - case 7465: goto tr3609; - case 7689: goto tr3610; - case 7712: goto tr3610; - case 7720: goto tr3611; - case 7721: goto tr3612; - case 10506: goto tr3613; - case 10555: goto tr3613; - case 10762: goto tr3613; - case 10811: goto tr3613; - case 11274: goto tr3614; - case 11323: goto tr3615; - case 11530: goto tr3613; - case 11579: goto tr3613; - case 11786: goto tr3616; - case 11835: goto tr3617; - case 12298: goto tr3618; - case 12347: goto tr3619; - case 12554: goto tr3613; - case 12603: goto tr3613; - case 12810: goto tr3620; - case 12859: goto tr3621; - case 13322: goto tr3622; - case 13371: goto tr3623; - case 13578: goto tr3613; - case 13627: goto tr3613; - case 13834: goto tr3624; - case 13883: goto tr3625; - } - goto tr3459; -tr3603: + case 7177: goto tr3633; + case 7200: goto tr3633; + case 7208: goto tr3634; + case 7209: goto tr3635; + case 7433: goto tr3636; + case 7456: goto tr3636; + case 7464: goto tr3637; + case 7465: goto tr3638; + case 7689: goto tr3639; + case 7712: goto tr3639; + case 7720: goto tr3640; + case 7721: goto tr3641; + case 10506: goto tr3642; + case 10555: goto tr3642; + case 10762: goto tr3642; + case 10811: goto tr3642; + case 11274: goto tr3643; + case 11323: goto tr3644; + case 11530: goto tr3642; + case 11579: goto tr3642; + case 11786: goto tr3645; + case 11835: goto tr3646; + case 12298: goto tr3647; + case 12347: goto tr3648; + case 12554: goto tr3642; + case 12603: goto tr3642; + case 12810: goto tr3649; + case 12859: goto tr3650; + case 13322: goto tr3651; + case 13371: goto tr3652; + case 13578: goto tr3642; + case 13627: goto tr3642; + case 13834: goto tr3653; + case 13883: goto tr3654; + } + goto tr3488; +tr3632: { s->buffer_length = 0; } - goto st1310; -tr3626: + goto st1322; +tr3655: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1310; -tr3597: + goto st1322; +tr3626: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1310; -st1310: + goto st1322; +st1322: if ( ++p == pe ) - goto _test_eof1310; -case 1310: + goto _test_eof1322; +case 1322: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90583,26 +91490,26 @@ case 1310: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3627; + goto tr3656; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3626; - goto tr3430; -tr3590: + goto tr3655; + goto tr3459; +tr3619: { s->buffer_length = 0; } - goto st1311; -tr3628: + goto st1323; +tr3657: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1311; -st1311: + goto st1323; +st1323: if ( ++p == pe ) - goto _test_eof1311; -case 1311: + goto _test_eof1323; +case 1323: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90622,40 +91529,40 @@ case 1311: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3629; + goto tr3658; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3628; - goto tr3430; -tr3439: + goto tr3657; + goto tr3459; +tr3468: { s->buffer_length = 0; } - goto st1312; -tr3630: + goto st1324; +tr3659: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1312; -tr3429: + goto st1324; +tr3458: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1312; -st1312: + goto st1324; +st1324: if ( ++p == pe ) - goto _test_eof1312; -case 1312: + goto _test_eof1324; +case 1324: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90675,30 +91582,30 @@ case 1312: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3631; + goto tr3660; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3630; - goto tr77; -st1313: + goto tr3659; + goto tr78; +st1325: if ( ++p == pe ) - goto _test_eof1313; -case 1313: + goto _test_eof1325; +case 1325: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3632; + goto tr3661; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3632; + goto tr3661; } else - goto tr3632; - goto tr77; -tr3632: - { p--; {stack[top++] = 1314;goto st394;} } - goto st1314; -st1314: + goto tr3661; + goto tr78; +tr3661: + { p--; {stack[top++] = 1326;goto st398;} } + goto st1326; +st1326: if ( ++p == pe ) - goto _test_eof1314; -case 1314: + goto _test_eof1326; +case 1326: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90712,38 +91619,38 @@ case 1314: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1315; - case 32: goto st1315; - case 40: goto tr3634; - case 41: goto tr3635; - case 2058: goto tr3636; - case 2107: goto tr3637; + case 9: goto st1327; + case 32: goto st1327; + case 40: goto tr3663; + case 41: goto tr3664; + case 2058: goto tr3665; + case 2107: goto tr3666; } - goto tr77; -tr3634: + goto tr78; +tr3663: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1315; -tr3635: + goto st1327; +tr3664: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1315; -tr3636: + goto st1327; +tr3665: { s->line_counter++; } - goto st1315; -tr3733: + goto st1327; +tr3762: { s->buffer[s->buffer_length++] = 0; @@ -90753,18 +91660,18 @@ tr3733: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1315; goto _out;} + {p++; cs = 1327; goto _out;} } } } { s->line_counter++; } - goto st1315; -st1315: + goto st1327; +st1327: if ( ++p == pe ) - goto _test_eof1315; -case 1315: + goto _test_eof1327; +case 1327: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90778,29 +91685,29 @@ case 1315: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1315; - case 32: goto st1315; - case 40: goto tr3634; - case 41: goto tr3635; - case 2058: goto tr3636; - case 2107: goto tr3637; + case 9: goto st1327; + case 32: goto st1327; + case 40: goto tr3663; + case 41: goto tr3664; + case 2058: goto tr3665; + case 2107: goto tr3666; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3638; + goto tr3667; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3638; + goto tr3667; } else - goto tr3638; - goto tr77; -tr3638: - { p--; {stack[top++] = 1316;goto st936;} } - goto st1316; -st1316: + goto tr3667; + goto tr78; +tr3667: + { p--; {stack[top++] = 1328;goto st948;} } + goto st1328; +st1328: if ( ++p == pe ) - goto _test_eof1316; -case 1316: + goto _test_eof1328; +case 1328: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90814,38 +91721,38 @@ case 1316: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1317; - case 32: goto st1317; - case 40: goto tr3640; - case 41: goto tr3641; - case 2058: goto tr3642; - case 2107: goto tr3643; + case 9: goto st1329; + case 32: goto st1329; + case 40: goto tr3669; + case 41: goto tr3670; + case 2058: goto tr3671; + case 2107: goto tr3672; } - goto tr77; -tr3640: + goto tr78; +tr3669: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1317; -tr3641: + goto st1329; +tr3670: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1317; -tr3642: + goto st1329; +tr3671: { s->line_counter++; } - goto st1317; -tr3731: + goto st1329; +tr3760: { s->buffer[s->buffer_length++] = 0; @@ -90855,18 +91762,18 @@ tr3731: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1317; goto _out;} + {p++; cs = 1329; goto _out;} } } } { s->line_counter++; } - goto st1317; -st1317: + goto st1329; +st1329: if ( ++p == pe ) - goto _test_eof1317; -case 1317: + goto _test_eof1329; +case 1329: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90880,17 +91787,17 @@ case 1317: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1317; - case 32: goto st1317; - case 40: goto tr3640; - case 41: goto tr3641; - case 2058: goto tr3642; - case 2107: goto tr3643; + case 9: goto st1329; + case 32: goto st1329; + case 40: goto tr3669; + case 41: goto tr3670; + case 2058: goto tr3671; + case 2107: goto tr3672; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3644; - goto tr2688; -tr3644: + goto tr3673; + goto tr2717; +tr3673: { s->number64 = 0; } @@ -90905,11 +91812,11 @@ tr3644: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1318; -tr3648: + goto st1330; +tr3677: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -90921,14 +91828,14 @@ tr3648: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1318; -st1318: + goto st1330; +st1330: if ( ++p == pe ) - goto _test_eof1318; -case 1318: + goto _test_eof1330; +case 1330: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90942,40 +91849,40 @@ case 1318: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3645; - case 32: goto tr3645; - case 40: goto tr3646; - case 41: goto tr3647; - case 2058: goto tr3649; - case 2107: goto tr3650; + case 9: goto tr3674; + case 32: goto tr3674; + case 40: goto tr3675; + case 41: goto tr3676; + case 2058: goto tr3678; + case 2107: goto tr3679; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3648; - goto tr2688; -tr3652: + goto tr3677; + goto tr2717; +tr3681: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1319; -tr3653: + goto st1331; +tr3682: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1319; -tr3655: + goto st1331; +tr3684: { s->line_counter++; } - goto st1319; -tr3729: + goto st1331; +tr3758: { s->buffer[s->buffer_length++] = 0; @@ -90985,79 +91892,79 @@ tr3729: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1319; goto _out;} + {p++; cs = 1331; goto _out;} } } } { s->line_counter++; } - goto st1319; -tr3645: + goto st1331; +tr3674: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1319; -tr3646: + goto st1331; +tr3675: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1319; -tr3647: + goto st1331; +tr3676: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1319; -tr3649: + goto st1331; +tr3678: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1319; -st1319: + goto st1331; +st1331: if ( ++p == pe ) - goto _test_eof1319; -case 1319: + goto _test_eof1331; +case 1331: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91071,17 +91978,17 @@ case 1319: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1319; - case 32: goto st1319; - case 40: goto tr3652; - case 41: goto tr3653; - case 2058: goto tr3655; - case 2107: goto tr3656; + case 9: goto st1331; + case 32: goto st1331; + case 40: goto tr3681; + case 41: goto tr3682; + case 2058: goto tr3684; + case 2107: goto tr3685; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3654; - goto tr2688; -tr3654: + goto tr3683; + goto tr2717; +tr3683: { s->number64 = 0; } @@ -91096,11 +92003,11 @@ tr3654: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1320; -tr3660: + goto st1332; +tr3689: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -91112,14 +92019,14 @@ tr3660: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1320; -st1320: + goto st1332; +st1332: if ( ++p == pe ) - goto _test_eof1320; -case 1320: + goto _test_eof1332; +case 1332: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91133,40 +92040,40 @@ case 1320: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3657; - case 32: goto tr3657; - case 40: goto tr3658; - case 41: goto tr3659; - case 2058: goto tr3661; - case 2107: goto tr3662; + case 9: goto tr3686; + case 32: goto tr3686; + case 40: goto tr3687; + case 41: goto tr3688; + case 2058: goto tr3690; + case 2107: goto tr3691; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3660; - goto tr2688; -tr3665: + goto tr3689; + goto tr2717; +tr3694: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1321; -tr3666: + goto st1333; +tr3695: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1321; -tr3668: + goto st1333; +tr3697: { s->line_counter++; } - goto st1321; -tr3727: + goto st1333; +tr3756: { s->buffer[s->buffer_length++] = 0; @@ -91176,15 +92083,15 @@ tr3727: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1321; goto _out;} + {p++; cs = 1333; goto _out;} } } } { s->line_counter++; } - goto st1321; -tr3657: + goto st1333; +tr3686: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -91192,11 +92099,11 @@ tr3657: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1321; -tr3658: + goto st1333; +tr3687: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -91204,18 +92111,18 @@ tr3658: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1321; -tr3659: + goto st1333; +tr3688: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -91223,18 +92130,18 @@ tr3659: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1321; -tr3661: + goto st1333; +tr3690: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -91242,17 +92149,17 @@ tr3661: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1321; -st1321: + goto st1333; +st1333: if ( ++p == pe ) - goto _test_eof1321; -case 1321: + goto _test_eof1333; +case 1333: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91266,17 +92173,17 @@ case 1321: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1321; - case 32: goto st1321; - case 40: goto tr3665; - case 41: goto tr3666; - case 2058: goto tr3668; - case 2107: goto tr3669; + case 9: goto st1333; + case 32: goto st1333; + case 40: goto tr3694; + case 41: goto tr3695; + case 2058: goto tr3697; + case 2107: goto tr3698; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3667; - goto tr3663; -tr3667: + goto tr3696; + goto tr3692; +tr3696: { s->buffer_length = 0; } @@ -91285,24 +92192,24 @@ tr3667: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1322; -tr3673: + goto st1334; +tr3702: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1322; -st1322: + goto st1334; +st1334: if ( ++p == pe ) - goto _test_eof1322; -case 1322: + goto _test_eof1334; +case 1334: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91316,40 +92223,40 @@ case 1322: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3670; - case 32: goto tr3670; - case 40: goto tr3671; - case 41: goto tr3672; - case 2058: goto tr3674; - case 2107: goto tr3675; + case 9: goto tr3699; + case 32: goto tr3699; + case 40: goto tr3700; + case 41: goto tr3701; + case 2058: goto tr3703; + case 2107: goto tr3704; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3673; - goto tr3663; -tr3677: + goto tr3702; + goto tr3692; +tr3706: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1323; -tr3678: + goto st1335; +tr3707: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1323; -tr3680: + goto st1335; +tr3709: { s->line_counter++; } - goto st1323; -tr3725: + goto st1335; +tr3754: { s->buffer[s->buffer_length++] = 0; @@ -91359,15 +92266,15 @@ tr3725: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1323; goto _out;} + {p++; cs = 1335; goto _out;} } } } { s->line_counter++; } - goto st1323; -tr3670: + goto st1335; +tr3699: { s->buffer[s->buffer_length] = 0; @@ -91380,7 +92287,7 @@ tr3670: rdata_tail += 4; } else { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -91389,7 +92296,7 @@ tr3670: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st325;} + p--; {goto st329;} } if (s->number64 <= UINT32_MAX) { @@ -91397,15 +92304,15 @@ tr3670: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1323; -tr3671: + goto st1335; +tr3700: { s->buffer[s->buffer_length] = 0; @@ -91418,7 +92325,7 @@ tr3671: rdata_tail += 4; } else { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -91427,7 +92334,7 @@ tr3671: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st325;} + p--; {goto st329;} } if (s->number64 <= UINT32_MAX) { @@ -91435,22 +92342,22 @@ tr3671: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1323; -tr3672: + goto st1335; +tr3701: { s->buffer[s->buffer_length] = 0; @@ -91463,7 +92370,7 @@ tr3672: rdata_tail += 4; } else { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -91472,7 +92379,7 @@ tr3672: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st325;} + p--; {goto st329;} } if (s->number64 <= UINT32_MAX) { @@ -91480,22 +92387,22 @@ tr3672: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1323; -tr3674: + goto st1335; +tr3703: { s->buffer[s->buffer_length] = 0; @@ -91508,7 +92415,7 @@ tr3674: rdata_tail += 4; } else { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -91517,7 +92424,7 @@ tr3674: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st325;} + p--; {goto st329;} } if (s->number64 <= UINT32_MAX) { @@ -91525,21 +92432,21 @@ tr3674: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1323; -st1323: + goto st1335; +st1335: if ( ++p == pe ) - goto _test_eof1323; -case 1323: + goto _test_eof1335; +case 1335: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91553,17 +92460,17 @@ case 1323: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1323; - case 32: goto st1323; - case 40: goto tr3677; - case 41: goto tr3678; - case 2058: goto tr3680; - case 2107: goto tr3681; + case 9: goto st1335; + case 32: goto st1335; + case 40: goto tr3706; + case 41: goto tr3707; + case 2058: goto tr3709; + case 2107: goto tr3710; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3679; - goto tr3663; -tr3679: + goto tr3708; + goto tr3692; +tr3708: { s->buffer_length = 0; } @@ -91572,24 +92479,24 @@ tr3679: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1324; -tr3685: + goto st1336; +tr3714: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1324; -st1324: + goto st1336; +st1336: if ( ++p == pe ) - goto _test_eof1324; -case 1324: + goto _test_eof1336; +case 1336: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91603,40 +92510,40 @@ case 1324: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3682; - case 32: goto tr3682; - case 40: goto tr3683; - case 41: goto tr3684; - case 2058: goto tr3686; - case 2107: goto tr3687; + case 9: goto tr3711; + case 32: goto tr3711; + case 40: goto tr3712; + case 41: goto tr3713; + case 2058: goto tr3715; + case 2107: goto tr3716; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3685; - goto tr3663; -tr3689: + goto tr3714; + goto tr3692; +tr3718: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1325; -tr3690: + goto st1337; +tr3719: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1325; -tr3692: + goto st1337; +tr3721: { s->line_counter++; } - goto st1325; -tr3723: + goto st1337; +tr3752: { s->buffer[s->buffer_length++] = 0; @@ -91646,15 +92553,15 @@ tr3723: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1325; goto _out;} + {p++; cs = 1337; goto _out;} } } } { s->line_counter++; } - goto st1325; -tr3682: + goto st1337; +tr3711: { s->buffer[s->buffer_length] = 0; @@ -91667,7 +92574,7 @@ tr3682: rdata_tail += 4; } else { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -91676,7 +92583,7 @@ tr3682: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st325;} + p--; {goto st329;} } if (s->number64 <= UINT32_MAX) { @@ -91684,15 +92591,15 @@ tr3682: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1325; -tr3683: + goto st1337; +tr3712: { s->buffer[s->buffer_length] = 0; @@ -91705,7 +92612,7 @@ tr3683: rdata_tail += 4; } else { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -91714,7 +92621,7 @@ tr3683: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st325;} + p--; {goto st329;} } if (s->number64 <= UINT32_MAX) { @@ -91722,22 +92629,22 @@ tr3683: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1325; -tr3684: + goto st1337; +tr3713: { s->buffer[s->buffer_length] = 0; @@ -91750,7 +92657,7 @@ tr3684: rdata_tail += 4; } else { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -91759,7 +92666,7 @@ tr3684: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st325;} + p--; {goto st329;} } if (s->number64 <= UINT32_MAX) { @@ -91767,22 +92674,22 @@ tr3684: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1325; -tr3686: + goto st1337; +tr3715: { s->buffer[s->buffer_length] = 0; @@ -91795,7 +92702,7 @@ tr3686: rdata_tail += 4; } else { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -91804,7 +92711,7 @@ tr3686: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st325;} + p--; {goto st329;} } if (s->number64 <= UINT32_MAX) { @@ -91812,21 +92719,21 @@ tr3686: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1325; -st1325: + goto st1337; +st1337: if ( ++p == pe ) - goto _test_eof1325; -case 1325: + goto _test_eof1337; +case 1337: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91840,17 +92747,17 @@ case 1325: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1325; - case 32: goto st1325; - case 40: goto tr3689; - case 41: goto tr3690; - case 2058: goto tr3692; - case 2107: goto tr3693; + case 9: goto st1337; + case 32: goto st1337; + case 40: goto tr3718; + case 41: goto tr3719; + case 2058: goto tr3721; + case 2107: goto tr3722; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3691; - goto tr2688; -tr3691: + goto tr3720; + goto tr2717; +tr3720: { s->number64 = 0; } @@ -91865,11 +92772,11 @@ tr3691: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1326; -tr3697: + goto st1338; +tr3726: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -91881,14 +92788,14 @@ tr3697: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1326; -st1326: + goto st1338; +st1338: if ( ++p == pe ) - goto _test_eof1326; -case 1326: + goto _test_eof1338; +case 1338: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91902,40 +92809,40 @@ case 1326: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3694; - case 32: goto tr3694; - case 40: goto tr3695; - case 41: goto tr3696; - case 2058: goto tr3698; - case 2107: goto tr3699; + case 9: goto tr3723; + case 32: goto tr3723; + case 40: goto tr3724; + case 41: goto tr3725; + case 2058: goto tr3727; + case 2107: goto tr3728; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3697; - goto tr2688; -tr3701: + goto tr3726; + goto tr2717; +tr3730: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1327; -tr3702: + goto st1339; +tr3731: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1327; -tr3704: + goto st1339; +tr3733: { s->line_counter++; } - goto st1327; -tr3721: + goto st1339; +tr3750: { s->buffer[s->buffer_length++] = 0; @@ -91945,15 +92852,15 @@ tr3721: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1327; goto _out;} + {p++; cs = 1339; goto _out;} } } } { s->line_counter++; } - goto st1327; -tr3694: + goto st1339; +tr3723: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91961,11 +92868,11 @@ tr3694: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1327; -tr3695: + goto st1339; +tr3724: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91973,18 +92880,18 @@ tr3695: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1327; -tr3696: + goto st1339; +tr3725: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -91992,18 +92899,18 @@ tr3696: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1327; -tr3698: + goto st1339; +tr3727: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -92011,17 +92918,17 @@ tr3698: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1327; -st1327: + goto st1339; +st1339: if ( ++p == pe ) - goto _test_eof1327; -case 1327: + goto _test_eof1339; +case 1339: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92035,35 +92942,35 @@ case 1327: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1327; - case 32: goto st1327; - case 40: goto tr3701; - case 41: goto tr3702; - case 42: goto tr3703; - case 92: goto tr3703; - case 95: goto tr3703; - case 2058: goto tr3704; - case 2107: goto tr3705; + case 9: goto st1339; + case 32: goto st1339; + case 40: goto tr3730; + case 41: goto tr3731; + case 42: goto tr3732; + case 92: goto tr3732; + case 95: goto tr3732; + case 2058: goto tr3733; + case 2107: goto tr3734; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3703; + goto tr3732; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3703; + goto tr3732; } else - goto tr3703; - goto tr77; -tr3703: + goto tr3732; + goto tr78; +tr3732: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1328;goto st327;} } - goto st1328; -st1328: + { p--; {stack[top++] = 1340;goto st331;} } + goto st1340; +st1340: if ( ++p == pe ) - goto _test_eof1328; -case 1328: + goto _test_eof1340; +case 1340: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92077,38 +92984,38 @@ case 1328: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3706; - case 32: goto tr3706; - case 40: goto tr3707; - case 41: goto tr3708; - case 2058: goto tr3709; - case 2107: goto tr3710; + case 9: goto tr3735; + case 32: goto tr3735; + case 40: goto tr3736; + case 41: goto tr3737; + case 2058: goto tr3738; + case 2107: goto tr3739; } - goto tr77; -tr3712: + goto tr78; +tr3741: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1329; -tr3713: + goto st1341; +tr3742: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1329; -tr3715: + goto st1341; +tr3744: { s->line_counter++; } - goto st1329; -tr3719: + goto st1341; +tr3748: { s->buffer[s->buffer_length++] = 0; @@ -92118,55 +93025,55 @@ tr3719: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1329; goto _out;} + {p++; cs = 1341; goto _out;} } } } { s->line_counter++; } - goto st1329; -tr3706: + goto st1341; +tr3735: { rdata_tail += s->dname_tmp_length; } - goto st1329; -tr3707: + goto st1341; +tr3736: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1329; -tr3708: + goto st1341; +tr3737: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1329; -tr3709: + goto st1341; +tr3738: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1329; -st1329: + goto st1341; +st1341: if ( ++p == pe ) - goto _test_eof1329; -case 1329: + goto _test_eof1341; +case 1341: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92180,30 +93087,30 @@ case 1329: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1329; - case 32: goto st1329; - case 40: goto tr3712; - case 41: goto tr3713; - case 43: goto tr3714; - case 2058: goto tr3715; - case 2107: goto tr3716; + case 9: goto st1341; + case 32: goto st1341; + case 40: goto tr3741; + case 41: goto tr3742; + case 43: goto tr3743; + case 2058: goto tr3744; + case 2107: goto tr3745; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3714; + goto tr3743; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3714; + goto tr3743; } else - goto tr3714; - goto tr77; -tr3714: - { p--; {stack[top++] = 1330;goto st387;} } - goto st1330; -st1330: + goto tr3743; + goto tr78; +tr3743: + { p--; {stack[top++] = 1342;goto st391;} } + goto st1342; +st1342: if ( ++p == pe ) - goto _test_eof1330; -case 1330: + goto _test_eof1342; +case 1342: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92217,44 +93124,44 @@ case 1330: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3717; - case 2619: goto tr3717; + case 2570: goto tr3746; + case 2619: goto tr3746; } - goto tr77; -tr3717: + goto tr78; +tr3746: { p--; {cs = stack[--top];goto _again;} } - goto st1571; -st1571: + goto st1583; +st1583: if ( ++p == pe ) - goto _test_eof1571; -case 1571: + goto _test_eof1583; +case 1583: goto st0; -tr3716: +tr3745: { s->buffer_length = 0; } - goto st1331; -tr3718: + goto st1343; +tr3747: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1331; -tr3710: + goto st1343; +tr3739: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1331; -st1331: + goto st1343; +st1343: if ( ++p == pe ) - goto _test_eof1331; -case 1331: + goto _test_eof1343; +case 1343: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -92274,23 +93181,23 @@ case 1331: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3719; + goto tr3748; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3718; - goto tr77; -tr3705: + goto tr3747; + goto tr78; +tr3734: { s->buffer_length = 0; } - goto st1332; -tr3720: + goto st1344; +tr3749: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1332; -tr3699: + goto st1344; +tr3728: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -92298,17 +93205,17 @@ tr3699: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1332; -st1332: + goto st1344; +st1344: if ( ++p == pe ) - goto _test_eof1332; -case 1332: + goto _test_eof1344; +case 1344: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -92328,23 +93235,23 @@ case 1332: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3721; + goto tr3750; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3720; - goto tr77; -tr3693: + goto tr3749; + goto tr78; +tr3722: { s->buffer_length = 0; } - goto st1333; -tr3722: + goto st1345; +tr3751: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1333; -tr3687: + goto st1345; +tr3716: { s->buffer[s->buffer_length] = 0; @@ -92357,7 +93264,7 @@ tr3687: rdata_tail += 4; } else { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -92366,7 +93273,7 @@ tr3687: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st325;} + p--; {goto st329;} } if (s->number64 <= UINT32_MAX) { @@ -92374,21 +93281,21 @@ tr3687: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1333; -st1333: + goto st1345; +st1345: if ( ++p == pe ) - goto _test_eof1333; -case 1333: + goto _test_eof1345; +case 1345: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -92408,23 +93315,23 @@ case 1333: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3723; + goto tr3752; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3722; - goto tr77; -tr3681: + goto tr3751; + goto tr78; +tr3710: { s->buffer_length = 0; } - goto st1334; -tr3724: + goto st1346; +tr3753: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1334; -tr3675: + goto st1346; +tr3704: { s->buffer[s->buffer_length] = 0; @@ -92437,7 +93344,7 @@ tr3675: rdata_tail += 4; } else { WARN(ret); - p--; {goto st325;} + p--; {goto st329;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -92446,7 +93353,7 @@ tr3675: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st325;} + p--; {goto st329;} } if (s->number64 <= UINT32_MAX) { @@ -92454,21 +93361,21 @@ tr3675: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1334; -st1334: + goto st1346; +st1346: if ( ++p == pe ) - goto _test_eof1334; -case 1334: + goto _test_eof1346; +case 1346: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -92488,23 +93395,23 @@ case 1334: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3725; + goto tr3754; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3724; - goto tr77; -tr3669: + goto tr3753; + goto tr78; +tr3698: { s->buffer_length = 0; } - goto st1335; -tr3726: + goto st1347; +tr3755: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1335; -tr3662: + goto st1347; +tr3691: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -92512,17 +93419,17 @@ tr3662: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1335; -st1335: + goto st1347; +st1347: if ( ++p == pe ) - goto _test_eof1335; -case 1335: + goto _test_eof1347; +case 1347: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -92542,40 +93449,40 @@ case 1335: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3727; + goto tr3756; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3726; - goto tr77; -tr3656: + goto tr3755; + goto tr78; +tr3685: { s->buffer_length = 0; } - goto st1336; -tr3728: + goto st1348; +tr3757: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1336; -tr3650: + goto st1348; +tr3679: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1336; -st1336: + goto st1348; +st1348: if ( ++p == pe ) - goto _test_eof1336; -case 1336: + goto _test_eof1348; +case 1348: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -92595,26 +93502,26 @@ case 1336: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3729; + goto tr3758; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3728; - goto tr77; -tr3643: + goto tr3757; + goto tr78; +tr3672: { s->buffer_length = 0; } - goto st1337; -tr3730: + goto st1349; +tr3759: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1337; -st1337: + goto st1349; +st1349: if ( ++p == pe ) - goto _test_eof1337; -case 1337: + goto _test_eof1349; +case 1349: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -92634,26 +93541,26 @@ case 1337: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3731; + goto tr3760; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3730; - goto tr77; -tr3637: + goto tr3759; + goto tr78; +tr3666: { s->buffer_length = 0; } - goto st1338; -tr3732: + goto st1350; +tr3761: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1338; -st1338: + goto st1350; +st1350: if ( ++p == pe ) - goto _test_eof1338; -case 1338: + goto _test_eof1350; +case 1350: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -92673,86 +93580,86 @@ case 1338: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3733; + goto tr3762; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3732; - goto tr77; -st1339: + goto tr3761; + goto tr78; +st1351: if ( ++p == pe ) - goto _test_eof1339; -case 1339: + goto _test_eof1351; +case 1351: switch( (*p) ) { - case 42: goto tr3734; - case 92: goto tr3734; - case 95: goto tr3734; + case 42: goto tr3763; + case 92: goto tr3763; + case 95: goto tr3763; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr3734; + goto tr3763; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3734; + goto tr3763; } else - goto tr3734; - goto tr77; -tr3734: + goto tr3763; + goto tr78; +tr3763: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1340;goto st327;} } - goto st1340; -st1340: + { p--; {stack[top++] = 1352;goto st331;} } + goto st1352; +st1352: if ( ++p == pe ) - goto _test_eof1340; -case 1340: + goto _test_eof1352; +case 1352: switch( (*p) ) { - case 32: goto tr3735; - case 59: goto tr3735; + case 32: goto tr3764; + case 59: goto tr3764; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3735; + goto tr3764; } else if ( (*p) >= 9 ) - goto tr3735; - goto tr77; -tr3735: + goto tr3764; + goto tr78; +tr3764: { rdata_tail += s->dname_tmp_length; } - { p--; {stack[top++] = 1341;goto st571;} } - goto st1341; -st1341: + { p--; {stack[top++] = 1353;goto st579;} } + goto st1353; +st1353: if ( ++p == pe ) - goto _test_eof1341; -case 1341: + goto _test_eof1353; +case 1353: switch( (*p) ) { - case 32: goto tr3736; - case 59: goto tr3736; + case 32: goto tr3765; + case 59: goto tr3765; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3736; + goto tr3765; } else if ( (*p) >= 9 ) - goto tr3736; - goto tr77; -tr3736: + goto tr3765; + goto tr78; +tr3765: { p--; {cs = stack[--top];goto _again;} } - goto st1572; -st1572: + goto st1584; +st1584: if ( ++p == pe ) - goto _test_eof1572; -case 1572: + goto _test_eof1584; +case 1584: goto st0; -st1342: +st1354: if ( ++p == pe ) - goto _test_eof1342; -case 1342: + goto _test_eof1354; +case 1354: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3737; - goto tr2688; -tr3737: + goto tr3766; + goto tr2717; +tr3766: { s->number64 = 0; } @@ -92767,11 +93674,11 @@ tr3737: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1343; -tr3741: + goto st1355; +tr3770: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -92783,14 +93690,14 @@ tr3741: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1343; -st1343: + goto st1355; +st1355: if ( ++p == pe ) - goto _test_eof1343; -case 1343: + goto _test_eof1355; +case 1355: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92804,40 +93711,40 @@ case 1343: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3738; - case 32: goto tr3738; - case 40: goto tr3739; - case 41: goto tr3740; - case 2058: goto tr3742; - case 2107: goto tr3743; + case 9: goto tr3767; + case 32: goto tr3767; + case 40: goto tr3768; + case 41: goto tr3769; + case 2058: goto tr3771; + case 2107: goto tr3772; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3741; - goto tr2688; -tr3745: + goto tr3770; + goto tr2717; +tr3774: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1344; -tr3746: + goto st1356; +tr3775: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1344; -tr3748: + goto st1356; +tr3777: { s->line_counter++; } - goto st1344; -tr3774: + goto st1356; +tr3803: { s->buffer[s->buffer_length++] = 0; @@ -92847,15 +93754,15 @@ tr3774: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1344; goto _out;} + {p++; cs = 1356; goto _out;} } } } { s->line_counter++; } - goto st1344; -tr3738: + goto st1356; +tr3767: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -92863,11 +93770,11 @@ tr3738: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1344; -tr3739: + goto st1356; +tr3768: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -92875,18 +93782,18 @@ tr3739: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1344; -tr3740: + goto st1356; +tr3769: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -92894,18 +93801,18 @@ tr3740: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1344; -tr3742: + goto st1356; +tr3771: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -92913,17 +93820,17 @@ tr3742: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1344; -st1344: + goto st1356; +st1356: if ( ++p == pe ) - goto _test_eof1344; -case 1344: + goto _test_eof1356; +case 1356: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92937,17 +93844,17 @@ case 1344: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1344; - case 32: goto st1344; - case 40: goto tr3745; - case 41: goto tr3746; - case 2058: goto tr3748; - case 2107: goto tr3749; + case 9: goto st1356; + case 32: goto st1356; + case 40: goto tr3774; + case 41: goto tr3775; + case 2058: goto tr3777; + case 2107: goto tr3778; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3747; - goto tr2688; -tr3747: + goto tr3776; + goto tr2717; +tr3776: { s->number64 = 0; } @@ -92962,11 +93869,11 @@ tr3747: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1345; -tr3753: + goto st1357; +tr3782: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -92978,14 +93885,14 @@ tr3753: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1345; -st1345: + goto st1357; +st1357: if ( ++p == pe ) - goto _test_eof1345; -case 1345: + goto _test_eof1357; +case 1357: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92999,40 +93906,40 @@ case 1345: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3750; - case 32: goto tr3750; - case 40: goto tr3751; - case 41: goto tr3752; - case 2058: goto tr3754; - case 2107: goto tr3755; + case 9: goto tr3779; + case 32: goto tr3779; + case 40: goto tr3780; + case 41: goto tr3781; + case 2058: goto tr3783; + case 2107: goto tr3784; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3753; - goto tr2688; -tr3757: + goto tr3782; + goto tr2717; +tr3786: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1346; -tr3758: + goto st1358; +tr3787: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1346; -tr3760: + goto st1358; +tr3789: { s->line_counter++; } - goto st1346; -tr3772: + goto st1358; +tr3801: { s->buffer[s->buffer_length++] = 0; @@ -93042,79 +93949,79 @@ tr3772: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1346; goto _out;} + {p++; cs = 1358; goto _out;} } } } { s->line_counter++; } - goto st1346; -tr3750: + goto st1358; +tr3779: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1346; -tr3751: + goto st1358; +tr3780: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1346; -tr3752: + goto st1358; +tr3781: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1346; -tr3754: + goto st1358; +tr3783: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1346; -st1346: + goto st1358; +st1358: if ( ++p == pe ) - goto _test_eof1346; -case 1346: + goto _test_eof1358; +case 1358: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93128,29 +94035,29 @@ case 1346: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1346; - case 32: goto st1346; - case 40: goto tr3757; - case 41: goto tr3758; - case 2058: goto tr3760; - case 2107: goto tr3761; + case 9: goto st1358; + case 32: goto st1358; + case 40: goto tr3786; + case 41: goto tr3787; + case 2058: goto tr3789; + case 2107: goto tr3790; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3759; + goto tr3788; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3759; + goto tr3788; } else - goto tr3759; - goto tr77; -tr3759: - { p--; {stack[top++] = 1347;goto st936;} } - goto st1347; -st1347: + goto tr3788; + goto tr78; +tr3788: + { p--; {stack[top++] = 1359;goto st948;} } + goto st1359; +st1359: if ( ++p == pe ) - goto _test_eof1347; -case 1347: + goto _test_eof1359; +case 1359: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93164,38 +94071,38 @@ case 1347: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1348; - case 32: goto st1348; - case 40: goto tr3763; - case 41: goto tr3764; - case 2058: goto tr3765; - case 2107: goto tr3766; + case 9: goto st1360; + case 32: goto st1360; + case 40: goto tr3792; + case 41: goto tr3793; + case 2058: goto tr3794; + case 2107: goto tr3795; } - goto tr77; -tr3763: + goto tr78; +tr3792: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1348; -tr3764: + goto st1360; +tr3793: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1348; -tr3765: + goto st1360; +tr3794: { s->line_counter++; } - goto st1348; -tr3770: + goto st1360; +tr3799: { s->buffer[s->buffer_length++] = 0; @@ -93205,18 +94112,18 @@ tr3770: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1348; goto _out;} + {p++; cs = 1360; goto _out;} } } } { s->line_counter++; } - goto st1348; -st1348: + goto st1360; +st1360: if ( ++p == pe ) - goto _test_eof1348; -case 1348: + goto _test_eof1360; +case 1360: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93230,30 +94137,30 @@ case 1348: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1348; - case 32: goto st1348; - case 40: goto tr3763; - case 41: goto tr3764; - case 43: goto tr3767; - case 2058: goto tr3765; - case 2107: goto tr3766; + case 9: goto st1360; + case 32: goto st1360; + case 40: goto tr3792; + case 41: goto tr3793; + case 43: goto tr3796; + case 2058: goto tr3794; + case 2107: goto tr3795; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3767; + goto tr3796; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3767; + goto tr3796; } else - goto tr3767; - goto tr77; -tr3767: - { p--; {stack[top++] = 1349;goto st387;} } - goto st1349; -st1349: + goto tr3796; + goto tr78; +tr3796: + { p--; {stack[top++] = 1361;goto st391;} } + goto st1361; +st1361: if ( ++p == pe ) - goto _test_eof1349; -case 1349: + goto _test_eof1361; +case 1361: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93267,36 +94174,36 @@ case 1349: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3768; - case 2619: goto tr3768; + case 2570: goto tr3797; + case 2619: goto tr3797; } - goto tr77; -tr3768: + goto tr78; +tr3797: { p--; {cs = stack[--top];goto _again;} } - goto st1573; -st1573: + goto st1585; +st1585: if ( ++p == pe ) - goto _test_eof1573; -case 1573: + goto _test_eof1585; +case 1585: goto st0; -tr3766: +tr3795: { s->buffer_length = 0; } - goto st1350; -tr3769: + goto st1362; +tr3798: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1350; -st1350: + goto st1362; +st1362: if ( ++p == pe ) - goto _test_eof1350; -case 1350: + goto _test_eof1362; +case 1362: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93316,40 +94223,40 @@ case 1350: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3770; + goto tr3799; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3769; - goto tr77; -tr3761: + goto tr3798; + goto tr78; +tr3790: { s->buffer_length = 0; } - goto st1351; -tr3771: + goto st1363; +tr3800: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1351; -tr3755: + goto st1363; +tr3784: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1351; -st1351: + goto st1363; +st1363: if ( ++p == pe ) - goto _test_eof1351; -case 1351: + goto _test_eof1363; +case 1363: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93369,23 +94276,23 @@ case 1351: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3772; + goto tr3801; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3771; - goto tr77; -tr3749: + goto tr3800; + goto tr78; +tr3778: { s->buffer_length = 0; } - goto st1352; -tr3773: + goto st1364; +tr3802: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1352; -tr3743: + goto st1364; +tr3772: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93393,17 +94300,17 @@ tr3743: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1352; -st1352: + goto st1364; +st1364: if ( ++p == pe ) - goto _test_eof1352; -case 1352: + goto _test_eof1364; +case 1364: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93423,32 +94330,32 @@ case 1352: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3774; + goto tr3803; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3773; - goto tr77; -st1353: + goto tr3802; + goto tr78; +st1365: if ( ++p == pe ) - goto _test_eof1353; -case 1353: + goto _test_eof1365; +case 1365: if ( (*p) == 43 ) - goto tr3775; + goto tr3804; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr3775; + goto tr3804; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3775; + goto tr3804; } else - goto tr3775; - goto tr77; -tr3775: - { p--; {stack[top++] = 1354;goto st387;} } - goto st1354; -st1354: + goto tr3804; + goto tr78; +tr3804: + { p--; {stack[top++] = 1366;goto st391;} } + goto st1366; +st1366: if ( ++p == pe ) - goto _test_eof1354; -case 1354: + goto _test_eof1366; +case 1366: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93462,28 +94369,28 @@ case 1354: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3776; - case 2619: goto tr3776; + case 2570: goto tr3805; + case 2619: goto tr3805; } - goto tr77; -tr3776: + goto tr78; +tr3805: { p--; {cs = stack[--top];goto _again;} } - goto st1574; -st1574: + goto st1586; +st1586: if ( ++p == pe ) - goto _test_eof1574; -case 1574: + goto _test_eof1586; +case 1586: goto st0; -st1355: +st1367: if ( ++p == pe ) - goto _test_eof1355; -case 1355: + goto _test_eof1367; +case 1367: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3777; - goto tr2688; -tr3777: + goto tr3806; + goto tr2717; +tr3806: { s->number64 = 0; } @@ -93498,11 +94405,11 @@ tr3777: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1356; -tr3781: + goto st1368; +tr3810: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -93514,14 +94421,14 @@ tr3781: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1356; -st1356: + goto st1368; +st1368: if ( ++p == pe ) - goto _test_eof1356; -case 1356: + goto _test_eof1368; +case 1368: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93535,40 +94442,40 @@ case 1356: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3778; - case 32: goto tr3778; - case 40: goto tr3779; - case 41: goto tr3780; - case 2058: goto tr3782; - case 2107: goto tr3783; + case 9: goto tr3807; + case 32: goto tr3807; + case 40: goto tr3808; + case 41: goto tr3809; + case 2058: goto tr3811; + case 2107: goto tr3812; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3781; - goto tr2688; -tr3785: + goto tr3810; + goto tr2717; +tr3814: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1357; -tr3786: + goto st1369; +tr3815: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1357; -tr3788: + goto st1369; +tr3817: { s->line_counter++; } - goto st1357; -tr3852: + goto st1369; +tr3881: { s->buffer[s->buffer_length++] = 0; @@ -93578,79 +94485,79 @@ tr3852: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1357; goto _out;} + {p++; cs = 1369; goto _out;} } } } { s->line_counter++; } - goto st1357; -tr3778: + goto st1369; +tr3807: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1357; -tr3779: + goto st1369; +tr3808: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1357; -tr3780: + goto st1369; +tr3809: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1357; -tr3782: + goto st1369; +tr3811: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1357; -st1357: + goto st1369; +st1369: if ( ++p == pe ) - goto _test_eof1357; -case 1357: + goto _test_eof1369; +case 1369: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93664,17 +94571,17 @@ case 1357: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1357; - case 32: goto st1357; - case 40: goto tr3785; - case 41: goto tr3786; - case 2058: goto tr3788; - case 2107: goto tr3789; + case 9: goto st1369; + case 32: goto st1369; + case 40: goto tr3814; + case 41: goto tr3815; + case 2058: goto tr3817; + case 2107: goto tr3818; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3787; - goto tr2688; -tr3787: + goto tr3816; + goto tr2717; +tr3816: { s->number64 = 0; } @@ -93689,11 +94596,11 @@ tr3787: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1358; -tr3793: + goto st1370; +tr3822: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -93705,14 +94612,14 @@ tr3793: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1358; -st1358: + goto st1370; +st1370: if ( ++p == pe ) - goto _test_eof1358; -case 1358: + goto _test_eof1370; +case 1370: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93726,40 +94633,40 @@ case 1358: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3790; - case 32: goto tr3790; - case 40: goto tr3791; - case 41: goto tr3792; - case 2058: goto tr3794; - case 2107: goto tr3795; + case 9: goto tr3819; + case 32: goto tr3819; + case 40: goto tr3820; + case 41: goto tr3821; + case 2058: goto tr3823; + case 2107: goto tr3824; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3793; - goto tr2688; -tr3797: + goto tr3822; + goto tr2717; +tr3826: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1359; -tr3798: + goto st1371; +tr3827: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1359; -tr3800: + goto st1371; +tr3829: { s->line_counter++; } - goto st1359; -tr3850: + goto st1371; +tr3879: { s->buffer[s->buffer_length++] = 0; @@ -93769,79 +94676,79 @@ tr3850: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1359; goto _out;} + {p++; cs = 1371; goto _out;} } } } { s->line_counter++; } - goto st1359; -tr3790: + goto st1371; +tr3819: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1359; -tr3791: + goto st1371; +tr3820: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1359; -tr3792: + goto st1371; +tr3821: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1359; -tr3794: + goto st1371; +tr3823: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1359; -st1359: + goto st1371; +st1371: if ( ++p == pe ) - goto _test_eof1359; -case 1359: + goto _test_eof1371; +case 1371: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93855,17 +94762,17 @@ case 1359: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1359; - case 32: goto st1359; - case 40: goto tr3797; - case 41: goto tr3798; - case 2058: goto tr3800; - case 2107: goto tr3801; + case 9: goto st1371; + case 32: goto st1371; + case 40: goto tr3826; + case 41: goto tr3827; + case 2058: goto tr3829; + case 2107: goto tr3830; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3799; - goto tr2688; -tr3799: + goto tr3828; + goto tr2717; +tr3828: { s->number64 = 0; } @@ -93880,11 +94787,11 @@ tr3799: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1360; -tr3805: + goto st1372; +tr3834: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -93896,14 +94803,14 @@ tr3805: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1360; -st1360: + goto st1372; +st1372: if ( ++p == pe ) - goto _test_eof1360; -case 1360: + goto _test_eof1372; +case 1372: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93917,40 +94824,40 @@ case 1360: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3802; - case 32: goto tr3802; - case 40: goto tr3803; - case 41: goto tr3804; - case 2058: goto tr3806; - case 2107: goto tr3807; + case 9: goto tr3831; + case 32: goto tr3831; + case 40: goto tr3832; + case 41: goto tr3833; + case 2058: goto tr3835; + case 2107: goto tr3836; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3805; - goto tr2688; -tr3809: + goto tr3834; + goto tr2717; +tr3838: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1361; -tr3810: + goto st1373; +tr3839: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1361; -tr3813: + goto st1373; +tr3842: { s->line_counter++; } - goto st1361; -tr3848: + goto st1373; +tr3877: { s->buffer[s->buffer_length++] = 0; @@ -93960,15 +94867,15 @@ tr3848: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1361; goto _out;} + {p++; cs = 1373; goto _out;} } } } { s->line_counter++; } - goto st1361; -tr3802: + goto st1373; +tr3831: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93976,11 +94883,11 @@ tr3802: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1361; -tr3803: + goto st1373; +tr3832: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93988,18 +94895,18 @@ tr3803: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1361; -tr3804: + goto st1373; +tr3833: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94007,18 +94914,18 @@ tr3804: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1361; -tr3806: + goto st1373; +tr3835: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94026,17 +94933,17 @@ tr3806: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1361; -st1361: + goto st1373; +st1373: if ( ++p == pe ) - goto _test_eof1361; -case 1361: + goto _test_eof1373; +case 1373: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94050,37 +94957,37 @@ case 1361: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1361; - case 32: goto st1361; - case 40: goto tr3809; - case 41: goto tr3810; - case 45: goto tr3811; - case 2058: goto tr3813; - case 2107: goto tr3814; + case 9: goto st1373; + case 32: goto st1373; + case 40: goto tr3838; + case 41: goto tr3839; + case 45: goto tr3840; + case 2058: goto tr3842; + case 2107: goto tr3843; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3812; + goto tr3841; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3812; + goto tr3841; } else - goto tr3812; - goto tr3359; -tr3811: + goto tr3841; + goto tr3388; +tr3840: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1362; -st1362: + goto st1374; +st1374: if ( ++p == pe ) - goto _test_eof1362; -case 1362: + goto _test_eof1374; +case 1374: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94094,38 +95001,38 @@ case 1362: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3815; - case 32: goto tr3815; - case 40: goto tr3816; - case 41: goto tr3817; - case 2058: goto tr3818; - case 2107: goto tr3819; - } - goto tr3359; -tr3822: + case 9: goto tr3844; + case 32: goto tr3844; + case 40: goto tr3845; + case 41: goto tr3846; + case 2058: goto tr3847; + case 2107: goto tr3848; + } + goto tr3388; +tr3851: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1363; -tr3823: + goto st1375; +tr3852: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1363; -tr3825: + goto st1375; +tr3854: { s->line_counter++; } - goto st1363; -tr3844: + goto st1375; +tr3873: { s->buffer[s->buffer_length++] = 0; @@ -94135,95 +95042,95 @@ tr3844: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1363; goto _out;} + {p++; cs = 1375; goto _out;} } } } { s->line_counter++; } - goto st1363; -tr3815: + goto st1375; +tr3844: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1363; -tr3816: + goto st1375; +tr3845: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1363; -tr3817: + goto st1375; +tr3846: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1363; -tr3818: + goto st1375; +tr3847: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1363; -st1363: + goto st1375; +st1375: if ( ++p == pe ) - goto _test_eof1363; -case 1363: + goto _test_eof1375; +case 1375: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94237,29 +95144,29 @@ case 1363: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1363; - case 32: goto st1363; - case 40: goto tr3822; - case 41: goto tr3823; - case 2058: goto tr3825; - case 2107: goto tr3826; + case 9: goto st1375; + case 32: goto st1375; + case 40: goto tr3851; + case 41: goto tr3852; + case 2058: goto tr3854; + case 2107: goto tr3855; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3824; + goto tr3853; } else if ( _widec > 86 ) { if ( 97 <= _widec && _widec <= 118 ) - goto tr3824; + goto tr3853; } else - goto tr3824; - goto tr3820; -tr3824: + goto tr3853; + goto tr3849; +tr3853: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -94267,34 +95174,34 @@ tr3824: *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1364; -tr3839: + goto st1376; +tr3868: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1364; -st1364: + goto st1376; +st1376: if ( ++p == pe ) - goto _test_eof1364; -case 1364: + goto _test_eof1376; +case 1376: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3827; + goto tr3856; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3827; + goto tr3856; } else - goto tr3827; - goto tr3820; -tr3827: + goto tr3856; + goto tr3849; +tr3856: { *(rdata_tail++) += second_left_base32hex_to_num[(uint8_t)(*p)]; @@ -94302,44 +95209,44 @@ tr3827: *rdata_tail = second_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1365; -st1365: + goto st1377; +st1377: if ( ++p == pe ) - goto _test_eof1365; -case 1365: + goto _test_eof1377; +case 1377: if ( (*p) == 61 ) - goto st1376; + goto st1388; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3828; + goto tr3857; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3828; + goto tr3857; } else - goto tr3828; - goto tr3820; -tr3828: + goto tr3857; + goto tr3849; +tr3857: { *rdata_tail += third_base32hex_to_num[(uint8_t)(*p)]; } - goto st1366; -st1366: + goto st1378; +st1378: if ( ++p == pe ) - goto _test_eof1366; -case 1366: + goto _test_eof1378; +case 1378: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3830; + goto tr3859; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3830; + goto tr3859; } else - goto tr3830; - goto tr3820; -tr3830: + goto tr3859; + goto tr3849; +tr3859: { *(rdata_tail++) += fourth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -94347,26 +95254,26 @@ tr3830: *rdata_tail = fourth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1367; -st1367: + goto st1379; +st1379: if ( ++p == pe ) - goto _test_eof1367; -case 1367: + goto _test_eof1379; +case 1379: if ( (*p) == 61 ) - goto st1375; + goto st1387; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3831; + goto tr3860; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3831; + goto tr3860; } else - goto tr3831; - goto tr3820; -tr3831: + goto tr3860; + goto tr3849; +tr3860: { *(rdata_tail++) += fifth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -94374,44 +95281,44 @@ tr3831: *rdata_tail = fifth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1368; -st1368: + goto st1380; +st1380: if ( ++p == pe ) - goto _test_eof1368; -case 1368: + goto _test_eof1380; +case 1380: if ( (*p) == 61 ) - goto st1373; + goto st1385; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3833; + goto tr3862; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3833; + goto tr3862; } else - goto tr3833; - goto tr3820; -tr3833: + goto tr3862; + goto tr3849; +tr3862: { *rdata_tail += sixth_base32hex_to_num[(uint8_t)(*p)]; } - goto st1369; -st1369: + goto st1381; +st1381: if ( ++p == pe ) - goto _test_eof1369; -case 1369: + goto _test_eof1381; +case 1381: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3835; + goto tr3864; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3835; + goto tr3864; } else - goto tr3835; - goto tr3820; -tr3835: + goto tr3864; + goto tr3849; +tr3864: { *(rdata_tail++) += seventh_left_base32hex_to_num[(uint8_t)(*p)]; @@ -94419,162 +95326,162 @@ tr3835: *rdata_tail = seventh_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1370; -st1370: + goto st1382; +st1382: if ( ++p == pe ) - goto _test_eof1370; -case 1370: + goto _test_eof1382; +case 1382: if ( (*p) == 61 ) - goto st1371; + goto st1383; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3836; + goto tr3865; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3836; + goto tr3865; } else - goto tr3836; - goto tr3820; -tr3836: + goto tr3865; + goto tr3849; +tr3865: { *(rdata_tail++) += eighth_base32hex_to_num[(uint8_t)(*p)]; } - goto st1371; -st1371: + goto st1383; +st1383: if ( ++p == pe ) - goto _test_eof1371; -case 1371: + goto _test_eof1383; +case 1383: switch( (*p) ) { - case 32: goto tr3838; - case 59: goto tr3838; + case 32: goto tr3867; + case 59: goto tr3867; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3838; + goto tr3867; } else if ( (*p) >= 9 ) - goto tr3838; + goto tr3867; } else if ( (*p) > 57 ) { if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3839; + goto tr3868; } else if ( (*p) >= 65 ) - goto tr3839; + goto tr3868; } else - goto tr3839; - goto tr3820; -tr3838: + goto tr3868; + goto tr3849; +tr3867: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 1372;goto st571;} } - goto st1372; -st1372: + { p--; {stack[top++] = 1384;goto st579;} } + goto st1384; +st1384: if ( ++p == pe ) - goto _test_eof1372; -case 1372: + goto _test_eof1384; +case 1384: switch( (*p) ) { - case 32: goto tr3840; - case 59: goto tr3840; + case 32: goto tr3869; + case 59: goto tr3869; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3840; + goto tr3869; } else if ( (*p) >= 9 ) - goto tr3840; - goto tr77; -tr3840: + goto tr3869; + goto tr78; +tr3869: { p--; {cs = stack[--top];goto _again;} } - goto st1575; -st1575: + goto st1587; +st1587: if ( ++p == pe ) - goto _test_eof1575; -case 1575: + goto _test_eof1587; +case 1587: goto st0; -st1373: +st1385: if ( ++p == pe ) - goto _test_eof1373; -case 1373: + goto _test_eof1385; +case 1385: if ( (*p) == 61 ) - goto st1374; - goto tr3820; -st1374: + goto st1386; + goto tr3849; +st1386: if ( ++p == pe ) - goto _test_eof1374; -case 1374: + goto _test_eof1386; +case 1386: if ( (*p) == 61 ) - goto st1371; - goto tr3820; -st1375: + goto st1383; + goto tr3849; +st1387: if ( ++p == pe ) - goto _test_eof1375; -case 1375: + goto _test_eof1387; +case 1387: if ( (*p) == 61 ) - goto st1373; - goto tr3820; -st1376: + goto st1385; + goto tr3849; +st1388: if ( ++p == pe ) - goto _test_eof1376; -case 1376: + goto _test_eof1388; +case 1388: if ( (*p) == 61 ) - goto st1377; - goto tr3820; -st1377: + goto st1389; + goto tr3849; +st1389: if ( ++p == pe ) - goto _test_eof1377; -case 1377: + goto _test_eof1389; +case 1389: if ( (*p) == 61 ) - goto st1375; - goto tr3820; -tr3826: + goto st1387; + goto tr3849; +tr3855: { s->buffer_length = 0; } - goto st1378; -tr3843: + goto st1390; +tr3872: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1378; -tr3819: + goto st1390; +tr3848: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1378; -st1378: + goto st1390; +st1390: if ( ++p == pe ) - goto _test_eof1378; -case 1378: + goto _test_eof1390; +case 1390: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94594,27 +95501,27 @@ case 1378: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3844; + goto tr3873; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3843; - goto tr77; -tr3846: + goto tr3872; + goto tr78; +tr3875: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1379; -tr3812: + goto st1391; +tr3841: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -94622,33 +95529,33 @@ tr3812: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1379; -st1379: + goto st1391; +st1391: if ( ++p == pe ) - goto _test_eof1379; -case 1379: + goto _test_eof1391; +case 1391: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3845; + goto tr3874; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3845; + goto tr3874; } else - goto tr3845; - goto tr3359; -tr3845: + goto tr3874; + goto tr3388; +tr3874: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1380; -st1380: + goto st1392; +st1392: if ( ++p == pe ) - goto _test_eof1380; -case 1380: + goto _test_eof1392; +case 1392: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94662,35 +95569,35 @@ case 1380: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3815; - case 32: goto tr3815; - case 40: goto tr3816; - case 41: goto tr3817; - case 2058: goto tr3818; - case 2107: goto tr3819; + case 9: goto tr3844; + case 32: goto tr3844; + case 40: goto tr3845; + case 41: goto tr3846; + case 2058: goto tr3847; + case 2107: goto tr3848; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3846; + goto tr3875; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3846; + goto tr3875; } else - goto tr3846; - goto tr3359; -tr3814: + goto tr3875; + goto tr3388; +tr3843: { s->buffer_length = 0; } - goto st1381; -tr3847: + goto st1393; +tr3876: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1381; -tr3807: + goto st1393; +tr3836: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94698,17 +95605,17 @@ tr3807: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1381; -st1381: + goto st1393; +st1393: if ( ++p == pe ) - goto _test_eof1381; -case 1381: + goto _test_eof1393; +case 1393: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94728,40 +95635,40 @@ case 1381: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3848; + goto tr3877; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3847; - goto tr77; -tr3801: + goto tr3876; + goto tr78; +tr3830: { s->buffer_length = 0; } - goto st1382; -tr3849: + goto st1394; +tr3878: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1382; -tr3795: + goto st1394; +tr3824: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1382; -st1382: + goto st1394; +st1394: if ( ++p == pe ) - goto _test_eof1382; -case 1382: + goto _test_eof1394; +case 1394: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94781,40 +95688,40 @@ case 1382: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3850; + goto tr3879; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3849; - goto tr77; -tr3789: + goto tr3878; + goto tr78; +tr3818: { s->buffer_length = 0; } - goto st1383; -tr3851: + goto st1395; +tr3880: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1383; -tr3783: + goto st1395; +tr3812: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1383; -st1383: + goto st1395; +st1395: if ( ++p == pe ) - goto _test_eof1383; -case 1383: + goto _test_eof1395; +case 1395: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94834,18 +95741,18 @@ case 1383: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3852; + goto tr3881; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3851; - goto tr77; -st1384: + goto tr3880; + goto tr78; +st1396: if ( ++p == pe ) - goto _test_eof1384; -case 1384: + goto _test_eof1396; +case 1396: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3853; - goto tr2688; -tr3853: + goto tr3882; + goto tr2717; +tr3882: { s->number64 = 0; } @@ -94860,11 +95767,11 @@ tr3853: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1385; -tr3857: + goto st1397; +tr3886: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94876,14 +95783,14 @@ tr3857: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1385; -st1385: + goto st1397; +st1397: if ( ++p == pe ) - goto _test_eof1385; -case 1385: + goto _test_eof1397; +case 1397: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94897,40 +95804,40 @@ case 1385: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3854; - case 32: goto tr3854; - case 40: goto tr3855; - case 41: goto tr3856; - case 2058: goto tr3858; - case 2107: goto tr3859; + case 9: goto tr3883; + case 32: goto tr3883; + case 40: goto tr3884; + case 41: goto tr3885; + case 2058: goto tr3887; + case 2107: goto tr3888; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3857; - goto tr2688; -tr3861: + goto tr3886; + goto tr2717; +tr3890: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1386; -tr3862: + goto st1398; +tr3891: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1386; -tr3864: + goto st1398; +tr3893: { s->line_counter++; } - goto st1386; -tr3899: + goto st1398; +tr3928: { s->buffer[s->buffer_length++] = 0; @@ -94940,79 +95847,79 @@ tr3899: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1386; goto _out;} + {p++; cs = 1398; goto _out;} } } } { s->line_counter++; } - goto st1386; -tr3854: + goto st1398; +tr3883: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1386; -tr3855: + goto st1398; +tr3884: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1386; -tr3856: + goto st1398; +tr3885: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1386; -tr3858: + goto st1398; +tr3887: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1386; -st1386: + goto st1398; +st1398: if ( ++p == pe ) - goto _test_eof1386; -case 1386: + goto _test_eof1398; +case 1398: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95026,17 +95933,17 @@ case 1386: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1386; - case 32: goto st1386; - case 40: goto tr3861; - case 41: goto tr3862; - case 2058: goto tr3864; - case 2107: goto tr3865; + case 9: goto st1398; + case 32: goto st1398; + case 40: goto tr3890; + case 41: goto tr3891; + case 2058: goto tr3893; + case 2107: goto tr3894; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3863; - goto tr2688; -tr3863: + goto tr3892; + goto tr2717; +tr3892: { s->number64 = 0; } @@ -95051,11 +95958,11 @@ tr3863: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1387; -tr3869: + goto st1399; +tr3898: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95067,14 +95974,14 @@ tr3869: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1387; -st1387: + goto st1399; +st1399: if ( ++p == pe ) - goto _test_eof1387; -case 1387: + goto _test_eof1399; +case 1399: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95088,40 +95995,40 @@ case 1387: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3866; - case 32: goto tr3866; - case 40: goto tr3867; - case 41: goto tr3868; - case 2058: goto tr3870; - case 2107: goto tr3871; + case 9: goto tr3895; + case 32: goto tr3895; + case 40: goto tr3896; + case 41: goto tr3897; + case 2058: goto tr3899; + case 2107: goto tr3900; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3869; - goto tr2688; -tr3873: + goto tr3898; + goto tr2717; +tr3902: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1388; -tr3874: + goto st1400; +tr3903: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1388; -tr3876: + goto st1400; +tr3905: { s->line_counter++; } - goto st1388; -tr3897: + goto st1400; +tr3926: { s->buffer[s->buffer_length++] = 0; @@ -95131,79 +96038,79 @@ tr3897: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1388; goto _out;} + {p++; cs = 1400; goto _out;} } } } { s->line_counter++; } - goto st1388; -tr3866: + goto st1400; +tr3895: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1388; -tr3867: + goto st1400; +tr3896: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1388; -tr3868: + goto st1400; +tr3897: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1388; -tr3870: + goto st1400; +tr3899: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1388; -st1388: + goto st1400; +st1400: if ( ++p == pe ) - goto _test_eof1388; -case 1388: + goto _test_eof1400; +case 1400: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95217,17 +96124,17 @@ case 1388: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1388; - case 32: goto st1388; - case 40: goto tr3873; - case 41: goto tr3874; - case 2058: goto tr3876; - case 2107: goto tr3877; + case 9: goto st1400; + case 32: goto st1400; + case 40: goto tr3902; + case 41: goto tr3903; + case 2058: goto tr3905; + case 2107: goto tr3906; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3875; - goto tr2688; -tr3875: + goto tr3904; + goto tr2717; +tr3904: { s->number64 = 0; } @@ -95242,11 +96149,11 @@ tr3875: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1389; -tr3881: + goto st1401; +tr3910: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95258,14 +96165,14 @@ tr3881: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1389; -st1389: + goto st1401; +st1401: if ( ++p == pe ) - goto _test_eof1389; -case 1389: + goto _test_eof1401; +case 1401: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95279,40 +96186,40 @@ case 1389: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3878; - case 32: goto tr3878; - case 40: goto tr3879; - case 41: goto tr3880; - case 2058: goto tr3882; - case 2107: goto tr3883; + case 9: goto tr3907; + case 32: goto tr3907; + case 40: goto tr3908; + case 41: goto tr3909; + case 2058: goto tr3911; + case 2107: goto tr3912; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3881; - goto tr2688; -tr3885: + goto tr3910; + goto tr2717; +tr3914: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1390; -tr3886: + goto st1402; +tr3915: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1390; -tr3889: + goto st1402; +tr3918: { s->line_counter++; } - goto st1390; -tr3895: + goto st1402; +tr3924: { s->buffer[s->buffer_length++] = 0; @@ -95322,15 +96229,15 @@ tr3895: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1390; goto _out;} + {p++; cs = 1402; goto _out;} } } } { s->line_counter++; } - goto st1390; -tr3878: + goto st1402; +tr3907: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95338,11 +96245,11 @@ tr3878: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1390; -tr3879: + goto st1402; +tr3908: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95350,18 +96257,18 @@ tr3879: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1390; -tr3880: + goto st1402; +tr3909: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95369,18 +96276,18 @@ tr3880: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1390; -tr3882: + goto st1402; +tr3911: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95388,17 +96295,17 @@ tr3882: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1390; -st1390: + goto st1402; +st1402: if ( ++p == pe ) - goto _test_eof1390; -case 1390: + goto _test_eof1402; +case 1402: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95412,87 +96319,87 @@ case 1390: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1390; - case 32: goto st1390; - case 40: goto tr3885; - case 41: goto tr3886; - case 45: goto tr3887; - case 2058: goto tr3889; - case 2107: goto tr3890; + case 9: goto st1402; + case 32: goto st1402; + case 40: goto tr3914; + case 41: goto tr3915; + case 45: goto tr3916; + case 2058: goto tr3918; + case 2107: goto tr3919; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3888; + goto tr3917; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3888; + goto tr3917; } else - goto tr3888; - goto tr3359; -tr3887: + goto tr3917; + goto tr3388; +tr3916: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1391; -st1391: + goto st1403; +st1403: if ( ++p == pe ) - goto _test_eof1391; -case 1391: + goto _test_eof1403; +case 1403: switch( (*p) ) { - case 32: goto tr3891; - case 59: goto tr3891; + case 32: goto tr3920; + case 59: goto tr3920; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3891; + goto tr3920; } else if ( (*p) >= 9 ) - goto tr3891; - goto tr3359; -tr3891: + goto tr3920; + goto tr3388; +tr3920: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1576; -st1576: + goto st1588; +st1588: if ( ++p == pe ) - goto _test_eof1576; -case 1576: + goto _test_eof1588; +case 1588: goto st0; -tr3893: +tr3922: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1392; -tr3888: + goto st1404; +tr3917: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { @@ -95500,65 +96407,65 @@ tr3888: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1392; -st1392: + goto st1404; +st1404: if ( ++p == pe ) - goto _test_eof1392; -case 1392: + goto _test_eof1404; +case 1404: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3892; + goto tr3921; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3892; + goto tr3921; } else - goto tr3892; - goto tr3359; -tr3892: + goto tr3921; + goto tr3388; +tr3921: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1393; -st1393: + goto st1405; +st1405: if ( ++p == pe ) - goto _test_eof1393; -case 1393: + goto _test_eof1405; +case 1405: switch( (*p) ) { - case 32: goto tr3891; - case 59: goto tr3891; + case 32: goto tr3920; + case 59: goto tr3920; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3891; + goto tr3920; } else if ( (*p) >= 9 ) - goto tr3891; + goto tr3920; } else if ( (*p) > 57 ) { if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3893; + goto tr3922; } else if ( (*p) >= 65 ) - goto tr3893; + goto tr3922; } else - goto tr3893; - goto tr3359; -tr3890: + goto tr3922; + goto tr3388; +tr3919: { s->buffer_length = 0; } - goto st1394; -tr3894: + goto st1406; +tr3923: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1394; -tr3883: + goto st1406; +tr3912: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95566,17 +96473,17 @@ tr3883: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1394; -st1394: + goto st1406; +st1406: if ( ++p == pe ) - goto _test_eof1394; -case 1394: + goto _test_eof1406; +case 1406: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95596,40 +96503,40 @@ case 1394: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3895; + goto tr3924; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3894; - goto tr77; -tr3877: + goto tr3923; + goto tr78; +tr3906: { s->buffer_length = 0; } - goto st1395; -tr3896: + goto st1407; +tr3925: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1395; -tr3871: + goto st1407; +tr3900: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1395; -st1395: + goto st1407; +st1407: if ( ++p == pe ) - goto _test_eof1395; -case 1395: + goto _test_eof1407; +case 1407: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95649,40 +96556,40 @@ case 1395: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3897; + goto tr3926; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3896; - goto tr77; -tr3865: + goto tr3925; + goto tr78; +tr3894: { s->buffer_length = 0; } - goto st1396; -tr3898: + goto st1408; +tr3927: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1396; -tr3859: + goto st1408; +tr3888: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1396; -st1396: + goto st1408; +st1408: if ( ++p == pe ) - goto _test_eof1396; -case 1396: + goto _test_eof1408; +case 1408: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95702,18 +96609,18 @@ case 1396: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3899; + goto tr3928; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3898; - goto tr77; -st1397: + goto tr3927; + goto tr78; +st1409: if ( ++p == pe ) - goto _test_eof1397; -case 1397: + goto _test_eof1409; +case 1409: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3900; - goto tr2688; -tr3900: + goto tr3929; + goto tr2717; +tr3929: { s->number64 = 0; } @@ -95728,11 +96635,11 @@ tr3900: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1398; -tr3904: + goto st1410; +tr3933: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95744,14 +96651,14 @@ tr3904: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1398; -st1398: + goto st1410; +st1410: if ( ++p == pe ) - goto _test_eof1398; -case 1398: + goto _test_eof1410; +case 1410: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95765,40 +96672,40 @@ case 1398: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3901; - case 32: goto tr3901; - case 40: goto tr3902; - case 41: goto tr3903; - case 2058: goto tr3905; - case 2107: goto tr3906; + case 9: goto tr3930; + case 32: goto tr3930; + case 40: goto tr3931; + case 41: goto tr3932; + case 2058: goto tr3934; + case 2107: goto tr3935; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3904; - goto tr2688; -tr3908: + goto tr3933; + goto tr2717; +tr3937: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1399; -tr3909: + goto st1411; +tr3938: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1399; -tr3911: + goto st1411; +tr3940: { s->line_counter++; } - goto st1399; -tr3953: + goto st1411; +tr3982: { s->buffer[s->buffer_length++] = 0; @@ -95808,79 +96715,79 @@ tr3953: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1399; goto _out;} + {p++; cs = 1411; goto _out;} } } } { s->line_counter++; } - goto st1399; -tr3901: + goto st1411; +tr3930: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1399; -tr3902: + goto st1411; +tr3931: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1399; -tr3903: + goto st1411; +tr3932: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1399; -tr3905: + goto st1411; +tr3934: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1399; -st1399: + goto st1411; +st1411: if ( ++p == pe ) - goto _test_eof1399; -case 1399: + goto _test_eof1411; +case 1411: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95894,17 +96801,17 @@ case 1399: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1399; - case 32: goto st1399; - case 40: goto tr3908; - case 41: goto tr3909; - case 2058: goto tr3911; - case 2107: goto tr3912; + case 9: goto st1411; + case 32: goto st1411; + case 40: goto tr3937; + case 41: goto tr3938; + case 2058: goto tr3940; + case 2107: goto tr3941; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3910; - goto tr2688; -tr3910: + goto tr3939; + goto tr2717; +tr3939: { s->number64 = 0; } @@ -95919,11 +96826,11 @@ tr3910: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1400; -tr3916: + goto st1412; +tr3945: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95935,14 +96842,14 @@ tr3916: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1400; -st1400: + goto st1412; +st1412: if ( ++p == pe ) - goto _test_eof1400; -case 1400: + goto _test_eof1412; +case 1412: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95956,40 +96863,40 @@ case 1400: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3913; - case 32: goto tr3913; - case 40: goto tr3914; - case 41: goto tr3915; - case 2058: goto tr3917; - case 2107: goto tr3918; + case 9: goto tr3942; + case 32: goto tr3942; + case 40: goto tr3943; + case 41: goto tr3944; + case 2058: goto tr3946; + case 2107: goto tr3947; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3916; - goto tr2688; -tr3920: + goto tr3945; + goto tr2717; +tr3949: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1401; -tr3921: + goto st1413; +tr3950: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1401; -tr3923: + goto st1413; +tr3952: { s->line_counter++; } - goto st1401; -tr3951: + goto st1413; +tr3980: { s->buffer[s->buffer_length++] = 0; @@ -95999,79 +96906,79 @@ tr3951: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1401; goto _out;} + {p++; cs = 1413; goto _out;} } } } { s->line_counter++; } - goto st1401; -tr3913: + goto st1413; +tr3942: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1401; -tr3914: + goto st1413; +tr3943: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1401; -tr3915: + goto st1413; +tr3944: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1401; -tr3917: + goto st1413; +tr3946: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1401; -st1401: + goto st1413; +st1413: if ( ++p == pe ) - goto _test_eof1401; -case 1401: + goto _test_eof1413; +case 1413: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96085,17 +96992,17 @@ case 1401: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1401; - case 32: goto st1401; - case 40: goto tr3920; - case 41: goto tr3921; - case 2058: goto tr3923; - case 2107: goto tr3924; + case 9: goto st1413; + case 32: goto st1413; + case 40: goto tr3949; + case 41: goto tr3950; + case 2058: goto tr3952; + case 2107: goto tr3953; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3922; - goto tr2688; -tr3922: + goto tr3951; + goto tr2717; +tr3951: { s->number64 = 0; } @@ -96110,11 +97017,11 @@ tr3922: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1402; -tr3928: + goto st1414; +tr3957: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96126,14 +97033,14 @@ tr3928: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1402; -st1402: + goto st1414; +st1414: if ( ++p == pe ) - goto _test_eof1402; -case 1402: + goto _test_eof1414; +case 1414: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96147,40 +97054,40 @@ case 1402: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3925; - case 32: goto tr3925; - case 40: goto tr3926; - case 41: goto tr3927; - case 2058: goto tr3929; - case 2107: goto tr3930; + case 9: goto tr3954; + case 32: goto tr3954; + case 40: goto tr3955; + case 41: goto tr3956; + case 2058: goto tr3958; + case 2107: goto tr3959; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3928; - goto tr2688; -tr3932: + goto tr3957; + goto tr2717; +tr3961: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1403; -tr3933: + goto st1415; +tr3962: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1403; -tr3935: + goto st1415; +tr3964: { s->line_counter++; } - goto st1403; -tr3949: + goto st1415; +tr3978: { s->buffer[s->buffer_length++] = 0; @@ -96190,79 +97097,79 @@ tr3949: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1403; goto _out;} + {p++; cs = 1415; goto _out;} } } } { s->line_counter++; } - goto st1403; -tr3925: + goto st1415; +tr3954: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1403; -tr3926: + goto st1415; +tr3955: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1403; -tr3927: + goto st1415; +tr3956: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1403; -tr3929: + goto st1415; +tr3958: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1403; -st1403: + goto st1415; +st1415: if ( ++p == pe ) - goto _test_eof1403; -case 1403: + goto _test_eof1415; +case 1415: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96276,69 +97183,69 @@ case 1403: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1403; - case 32: goto st1403; - case 40: goto tr3932; - case 41: goto tr3933; - case 2058: goto tr3935; - case 2107: goto tr3936; + case 9: goto st1415; + case 32: goto st1415; + case 40: goto tr3961; + case 41: goto tr3962; + case 2058: goto tr3964; + case 2107: goto tr3965; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3934; + goto tr3963; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3934; + goto tr3963; } else - goto tr3934; - goto tr3359; -tr3934: + goto tr3963; + goto tr3388; +tr3963: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1404; -st1404: + goto st1416; +st1416: if ( ++p == pe ) - goto _test_eof1404; -case 1404: + goto _test_eof1416; +case 1416: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3937; + goto tr3966; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3937; + goto tr3966; } else - goto tr3937; - goto tr3359; -tr3939: + goto tr3966; + goto tr3388; +tr3968: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1405; -tr3940: + goto st1417; +tr3969: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1405; -tr3941: + goto st1417; +tr3970: { s->line_counter++; } - goto st1405; -tr3947: + goto st1417; +tr3976: { s->buffer[s->buffer_length++] = 0; @@ -96348,24 +97255,24 @@ tr3947: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1405; goto _out;} + {p++; cs = 1417; goto _out;} } } } { s->line_counter++; } - goto st1405; -tr3937: + goto st1417; +tr3966: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1405; -st1405: + goto st1417; +st1417: if ( ++p == pe ) - goto _test_eof1405; -case 1405: + goto _test_eof1417; +case 1417: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96383,42 +97290,42 @@ case 1405: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1405; - case 32: goto st1405; - case 40: goto tr3939; - case 41: goto tr3940; - case 3082: goto tr3941; - case 3131: goto tr3942; - case 3338: goto tr3943; - case 3387: goto tr3943; - case 3594: goto tr3944; - case 3643: goto tr3945; + case 9: goto st1417; + case 32: goto st1417; + case 40: goto tr3968; + case 41: goto tr3969; + case 3082: goto tr3970; + case 3131: goto tr3971; + case 3338: goto tr3972; + case 3387: goto tr3972; + case 3594: goto tr3973; + case 3643: goto tr3974; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3934; + goto tr3963; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3934; + goto tr3963; } else - goto tr3934; - goto tr3359; -tr3942: + goto tr3963; + goto tr3388; +tr3971: { s->buffer_length = 0; } - goto st1406; -tr3946: + goto st1418; +tr3975: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1406; -st1406: + goto st1418; +st1418: if ( ++p == pe ) - goto _test_eof1406; -case 1406: + goto _test_eof1418; +case 1418: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96438,32 +97345,32 @@ case 1406: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3947; + goto tr3976; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3946; - goto tr3359; -tr3943: + goto tr3975; + goto tr3388; +tr3972: { p--; {cs = stack[--top];goto _again;} } - goto st1577; -st1577: + goto st1589; +st1589: if ( ++p == pe ) - goto _test_eof1577; -case 1577: + goto _test_eof1589; +case 1589: goto st0; -tr3944: +tr3973: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1578; -st1578: + goto st1590; +st1590: if ( ++p == pe ) - goto _test_eof1578; -case 1578: + goto _test_eof1590; +case 1590: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96481,38 +97388,38 @@ case 1578: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1405; - case 32: goto st1405; - case 40: goto tr3939; - case 41: goto tr3940; - case 3082: goto tr3941; - case 3131: goto tr3942; - case 3338: goto tr3943; - case 3387: goto tr3943; - case 3594: goto tr3944; - case 3643: goto tr3945; + case 9: goto st1417; + case 32: goto st1417; + case 40: goto tr3968; + case 41: goto tr3969; + case 3082: goto tr3970; + case 3131: goto tr3971; + case 3338: goto tr3972; + case 3387: goto tr3972; + case 3594: goto tr3973; + case 3643: goto tr3974; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3934; + goto tr3963; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3934; + goto tr3963; } else - goto tr3934; - goto tr3359; -tr3945: + goto tr3963; + goto tr3388; +tr3974: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1579; -st1579: - if ( ++p == pe ) - goto _test_eof1579; -case 1579: + goto st1591; +st1591: + if ( ++p == pe ) + goto _test_eof1591; +case 1591: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96532,40 +97439,40 @@ case 1579: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3947; + goto tr3976; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3946; - goto tr3359; -tr3936: + goto tr3975; + goto tr3388; +tr3965: { s->buffer_length = 0; } - goto st1407; -tr3948: + goto st1419; +tr3977: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1407; -tr3930: + goto st1419; +tr3959: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1407; -st1407: + goto st1419; +st1419: if ( ++p == pe ) - goto _test_eof1407; -case 1407: + goto _test_eof1419; +case 1419: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96585,40 +97492,40 @@ case 1407: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3949; + goto tr3978; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3948; - goto tr77; -tr3924: + goto tr3977; + goto tr78; +tr3953: { s->buffer_length = 0; } - goto st1408; -tr3950: + goto st1420; +tr3979: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1408; -tr3918: + goto st1420; +tr3947: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1408; -st1408: + goto st1420; +st1420: if ( ++p == pe ) - goto _test_eof1408; -case 1408: + goto _test_eof1420; +case 1420: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96638,40 +97545,40 @@ case 1408: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3951; + goto tr3980; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3950; - goto tr77; -tr3912: + goto tr3979; + goto tr78; +tr3941: { s->buffer_length = 0; } - goto st1409; -tr3952: + goto st1421; +tr3981: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1409; -tr3906: + goto st1421; +tr3935: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1409; -st1409: + goto st1421; +st1421: if ( ++p == pe ) - goto _test_eof1409; -case 1409: + goto _test_eof1421; +case 1421: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96691,18 +97598,18 @@ case 1409: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3953; + goto tr3982; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3952; - goto tr77; -st1410: + goto tr3981; + goto tr78; +st1422: if ( ++p == pe ) - goto _test_eof1410; -case 1410: + goto _test_eof1422; +case 1422: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3954; - goto tr2688; -tr3954: + goto tr3983; + goto tr2717; +tr3983: { s->number64 = 0; } @@ -96717,11 +97624,11 @@ tr3954: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1411; -tr3958: + goto st1423; +tr3987: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96733,14 +97640,14 @@ tr3958: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1411; -st1411: + goto st1423; +st1423: if ( ++p == pe ) - goto _test_eof1411; -case 1411: + goto _test_eof1423; +case 1423: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96754,40 +97661,40 @@ case 1411: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3955; - case 32: goto tr3955; - case 40: goto tr3956; - case 41: goto tr3957; - case 2058: goto tr3959; - case 2107: goto tr3960; + case 9: goto tr3984; + case 32: goto tr3984; + case 40: goto tr3985; + case 41: goto tr3986; + case 2058: goto tr3988; + case 2107: goto tr3989; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3958; - goto tr2688; -tr3962: + goto tr3987; + goto tr2717; +tr3991: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1412; -tr3963: + goto st1424; +tr3992: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1412; -tr3965: + goto st1424; +tr3994: { s->line_counter++; } - goto st1412; -tr3971: + goto st1424; +tr4000: { s->buffer[s->buffer_length++] = 0; @@ -96797,15 +97704,15 @@ tr3971: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1412; goto _out;} + {p++; cs = 1424; goto _out;} } } } { s->line_counter++; } - goto st1412; -tr3955: + goto st1424; +tr3984: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96813,11 +97720,11 @@ tr3955: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1412; -tr3956: + goto st1424; +tr3985: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96825,18 +97732,18 @@ tr3956: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1412; -tr3957: + goto st1424; +tr3986: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96844,18 +97751,18 @@ tr3957: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1412; -tr3959: + goto st1424; +tr3988: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -96863,17 +97770,17 @@ tr3959: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1412; -st1412: + goto st1424; +st1424: if ( ++p == pe ) - goto _test_eof1412; -case 1412: + goto _test_eof1424; +case 1424: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96887,17 +97794,17 @@ case 1412: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1412; - case 32: goto st1412; - case 40: goto tr3962; - case 41: goto tr3963; - case 2058: goto tr3965; - case 2107: goto tr3966; + case 9: goto st1424; + case 32: goto st1424; + case 40: goto tr3991; + case 41: goto tr3992; + case 2058: goto tr3994; + case 2107: goto tr3995; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3964; - goto tr2688; -tr3964: + goto tr3993; + goto tr2717; +tr3993: { s->number64 = 0; } @@ -96912,11 +97819,11 @@ tr3964: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1413; -tr3968: + goto st1425; +tr3997: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96928,28 +97835,28 @@ tr3968: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1413; -st1413: + goto st1425; +st1425: if ( ++p == pe ) - goto _test_eof1413; -case 1413: + goto _test_eof1425; +case 1425: switch( (*p) ) { - case 32: goto tr3967; - case 59: goto tr3967; + case 32: goto tr3996; + case 59: goto tr3996; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr3967; + goto tr3996; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3968; + goto tr3997; } else - goto tr3967; - goto tr2688; -tr3967: + goto tr3996; + goto tr2717; +tr3996: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96957,48 +97864,48 @@ tr3967: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 1414;goto st571;} } - goto st1414; -st1414: + { p--; {stack[top++] = 1426;goto st579;} } + goto st1426; +st1426: if ( ++p == pe ) - goto _test_eof1414; -case 1414: + goto _test_eof1426; +case 1426: switch( (*p) ) { - case 32: goto tr3969; - case 59: goto tr3969; + case 32: goto tr3998; + case 59: goto tr3998; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3969; + goto tr3998; } else if ( (*p) >= 9 ) - goto tr3969; - goto tr77; -tr3969: + goto tr3998; + goto tr78; +tr3998: { p--; {cs = stack[--top];goto _again;} } - goto st1580; -st1580: + goto st1592; +st1592: if ( ++p == pe ) - goto _test_eof1580; -case 1580: + goto _test_eof1592; +case 1592: goto st0; -tr3966: +tr3995: { s->buffer_length = 0; } - goto st1415; -tr3970: + goto st1427; +tr3999: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1415; -tr3960: + goto st1427; +tr3989: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -97006,17 +97913,17 @@ tr3960: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1415; -st1415: + goto st1427; +st1427: if ( ++p == pe ) - goto _test_eof1415; -case 1415: + goto _test_eof1427; +case 1427: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97036,18 +97943,18 @@ case 1415: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3971; + goto tr4000; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3970; - goto tr77; -st1416: + goto tr3999; + goto tr78; +st1428: if ( ++p == pe ) - goto _test_eof1416; -case 1416: + goto _test_eof1428; +case 1428: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3972; - goto tr2688; -tr3972: + goto tr4001; + goto tr2717; +tr4001: { s->number64 = 0; } @@ -97062,11 +97969,11 @@ tr3972: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1417; -tr3976: + goto st1429; +tr4005: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97078,14 +97985,14 @@ tr3976: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1417; -st1417: + goto st1429; +st1429: if ( ++p == pe ) - goto _test_eof1417; -case 1417: + goto _test_eof1429; +case 1429: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97099,40 +98006,40 @@ case 1417: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3973; - case 32: goto tr3973; - case 40: goto tr3974; - case 41: goto tr3975; - case 2058: goto tr3977; - case 2107: goto tr3978; + case 9: goto tr4002; + case 32: goto tr4002; + case 40: goto tr4003; + case 41: goto tr4004; + case 2058: goto tr4006; + case 2107: goto tr4007; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3976; - goto tr2688; -tr3980: + goto tr4005; + goto tr2717; +tr4009: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1418; -tr3981: + goto st1430; +tr4010: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1418; -tr3983: + goto st1430; +tr4012: { s->line_counter++; } - goto st1418; -tr4025: + goto st1430; +tr4054: { s->buffer[s->buffer_length++] = 0; @@ -97142,15 +98049,15 @@ tr4025: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1418; goto _out;} + {p++; cs = 1430; goto _out;} } } } { s->line_counter++; } - goto st1418; -tr3973: + goto st1430; +tr4002: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -97158,11 +98065,11 @@ tr3973: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1418; -tr3974: + goto st1430; +tr4003: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -97170,18 +98077,18 @@ tr3974: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1418; -tr3975: + goto st1430; +tr4004: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -97189,18 +98096,18 @@ tr3975: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1418; -tr3977: + goto st1430; +tr4006: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -97208,17 +98115,17 @@ tr3977: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1418; -st1418: + goto st1430; +st1430: if ( ++p == pe ) - goto _test_eof1418; -case 1418: + goto _test_eof1430; +case 1430: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97232,17 +98139,17 @@ case 1418: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1418; - case 32: goto st1418; - case 40: goto tr3980; - case 41: goto tr3981; - case 2058: goto tr3983; - case 2107: goto tr3984; + case 9: goto st1430; + case 32: goto st1430; + case 40: goto tr4009; + case 41: goto tr4010; + case 2058: goto tr4012; + case 2107: goto tr4013; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3982; - goto tr2688; -tr3982: + goto tr4011; + goto tr2717; +tr4011: { s->number64 = 0; } @@ -97257,11 +98164,11 @@ tr3982: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1419; -tr3988: + goto st1431; +tr4017: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97273,14 +98180,14 @@ tr3988: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1419; -st1419: + goto st1431; +st1431: if ( ++p == pe ) - goto _test_eof1419; -case 1419: + goto _test_eof1431; +case 1431: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97294,40 +98201,40 @@ case 1419: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3985; - case 32: goto tr3985; - case 40: goto tr3986; - case 41: goto tr3987; - case 2058: goto tr3989; - case 2107: goto tr3990; + case 9: goto tr4014; + case 32: goto tr4014; + case 40: goto tr4015; + case 41: goto tr4016; + case 2058: goto tr4018; + case 2107: goto tr4019; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3988; - goto tr2688; -tr3992: + goto tr4017; + goto tr2717; +tr4021: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1420; -tr3993: + goto st1432; +tr4022: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1420; -tr3995: + goto st1432; +tr4024: { s->line_counter++; } - goto st1420; -tr4023: + goto st1432; +tr4052: { s->buffer[s->buffer_length++] = 0; @@ -97337,79 +98244,79 @@ tr4023: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1420; goto _out;} + {p++; cs = 1432; goto _out;} } } } { s->line_counter++; } - goto st1420; -tr3985: + goto st1432; +tr4014: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1420; -tr3986: + goto st1432; +tr4015: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1420; -tr3987: + goto st1432; +tr4016: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1420; -tr3989: + goto st1432; +tr4018: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1420; -st1420: + goto st1432; +st1432: if ( ++p == pe ) - goto _test_eof1420; -case 1420: + goto _test_eof1432; +case 1432: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97423,17 +98330,17 @@ case 1420: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1420; - case 32: goto st1420; - case 40: goto tr3992; - case 41: goto tr3993; - case 2058: goto tr3995; - case 2107: goto tr3996; + case 9: goto st1432; + case 32: goto st1432; + case 40: goto tr4021; + case 41: goto tr4022; + case 2058: goto tr4024; + case 2107: goto tr4025; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3994; - goto tr2688; -tr3994: + goto tr4023; + goto tr2717; +tr4023: { s->number64 = 0; } @@ -97448,11 +98355,11 @@ tr3994: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1421; -tr4000: + goto st1433; +tr4029: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97464,14 +98371,14 @@ tr4000: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1421; -st1421: + goto st1433; +st1433: if ( ++p == pe ) - goto _test_eof1421; -case 1421: + goto _test_eof1433; +case 1433: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97485,40 +98392,40 @@ case 1421: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3997; - case 32: goto tr3997; - case 40: goto tr3998; - case 41: goto tr3999; - case 2058: goto tr4001; - case 2107: goto tr4002; + case 9: goto tr4026; + case 32: goto tr4026; + case 40: goto tr4027; + case 41: goto tr4028; + case 2058: goto tr4030; + case 2107: goto tr4031; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4000; - goto tr2688; -tr4004: + goto tr4029; + goto tr2717; +tr4033: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1422; -tr4005: + goto st1434; +tr4034: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1422; -tr4007: + goto st1434; +tr4036: { s->line_counter++; } - goto st1422; -tr4021: + goto st1434; +tr4050: { s->buffer[s->buffer_length++] = 0; @@ -97528,79 +98435,79 @@ tr4021: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1422; goto _out;} + {p++; cs = 1434; goto _out;} } } } { s->line_counter++; } - goto st1422; -tr3997: + goto st1434; +tr4026: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1422; -tr3998: + goto st1434; +tr4027: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1422; -tr3999: + goto st1434; +tr4028: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1422; -tr4001: + goto st1434; +tr4030: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1422; -st1422: + goto st1434; +st1434: if ( ++p == pe ) - goto _test_eof1422; -case 1422: + goto _test_eof1434; +case 1434: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97614,69 +98521,69 @@ case 1422: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1422; - case 32: goto st1422; - case 40: goto tr4004; - case 41: goto tr4005; - case 2058: goto tr4007; - case 2107: goto tr4008; + case 9: goto st1434; + case 32: goto st1434; + case 40: goto tr4033; + case 41: goto tr4034; + case 2058: goto tr4036; + case 2107: goto tr4037; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4006; + goto tr4035; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4006; + goto tr4035; } else - goto tr4006; - goto tr3359; -tr4006: + goto tr4035; + goto tr3388; +tr4035: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1423; -st1423: + goto st1435; +st1435: if ( ++p == pe ) - goto _test_eof1423; -case 1423: + goto _test_eof1435; +case 1435: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4009; + goto tr4038; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4009; + goto tr4038; } else - goto tr4009; - goto tr3359; -tr4011: + goto tr4038; + goto tr3388; +tr4040: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1424; -tr4012: + goto st1436; +tr4041: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1424; -tr4013: + goto st1436; +tr4042: { s->line_counter++; } - goto st1424; -tr4019: + goto st1436; +tr4048: { s->buffer[s->buffer_length++] = 0; @@ -97686,24 +98593,24 @@ tr4019: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1424; goto _out;} + {p++; cs = 1436; goto _out;} } } } { s->line_counter++; } - goto st1424; -tr4009: + goto st1436; +tr4038: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1424; -st1424: + goto st1436; +st1436: if ( ++p == pe ) - goto _test_eof1424; -case 1424: + goto _test_eof1436; +case 1436: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97721,42 +98628,42 @@ case 1424: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1424; - case 32: goto st1424; - case 40: goto tr4011; - case 41: goto tr4012; - case 3082: goto tr4013; - case 3131: goto tr4014; - case 3338: goto tr4015; - case 3387: goto tr4015; - case 3594: goto tr4016; - case 3643: goto tr4017; + case 9: goto st1436; + case 32: goto st1436; + case 40: goto tr4040; + case 41: goto tr4041; + case 3082: goto tr4042; + case 3131: goto tr4043; + case 3338: goto tr4044; + case 3387: goto tr4044; + case 3594: goto tr4045; + case 3643: goto tr4046; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4006; + goto tr4035; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4006; + goto tr4035; } else - goto tr4006; - goto tr3359; -tr4014: + goto tr4035; + goto tr3388; +tr4043: { s->buffer_length = 0; } - goto st1425; -tr4018: + goto st1437; +tr4047: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1425; -st1425: + goto st1437; +st1437: if ( ++p == pe ) - goto _test_eof1425; -case 1425: + goto _test_eof1437; +case 1437: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97776,32 +98683,32 @@ case 1425: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4019; + goto tr4048; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4018; - goto tr3359; -tr4015: + goto tr4047; + goto tr3388; +tr4044: { p--; {cs = stack[--top];goto _again;} } - goto st1581; -st1581: + goto st1593; +st1593: if ( ++p == pe ) - goto _test_eof1581; -case 1581: + goto _test_eof1593; +case 1593: goto st0; -tr4016: +tr4045: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1582; -st1582: + goto st1594; +st1594: if ( ++p == pe ) - goto _test_eof1582; -case 1582: + goto _test_eof1594; +case 1594: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97819,38 +98726,38 @@ case 1582: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1424; - case 32: goto st1424; - case 40: goto tr4011; - case 41: goto tr4012; - case 3082: goto tr4013; - case 3131: goto tr4014; - case 3338: goto tr4015; - case 3387: goto tr4015; - case 3594: goto tr4016; - case 3643: goto tr4017; + case 9: goto st1436; + case 32: goto st1436; + case 40: goto tr4040; + case 41: goto tr4041; + case 3082: goto tr4042; + case 3131: goto tr4043; + case 3338: goto tr4044; + case 3387: goto tr4044; + case 3594: goto tr4045; + case 3643: goto tr4046; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4006; + goto tr4035; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4006; + goto tr4035; } else - goto tr4006; - goto tr3359; -tr4017: + goto tr4035; + goto tr3388; +tr4046: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1583; -st1583: + goto st1595; +st1595: if ( ++p == pe ) - goto _test_eof1583; -case 1583: + goto _test_eof1595; +case 1595: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97870,40 +98777,40 @@ case 1583: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4019; + goto tr4048; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4018; - goto tr3359; -tr4008: + goto tr4047; + goto tr3388; +tr4037: { s->buffer_length = 0; } - goto st1426; -tr4020: + goto st1438; +tr4049: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1426; -tr4002: + goto st1438; +tr4031: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1426; -st1426: + goto st1438; +st1438: if ( ++p == pe ) - goto _test_eof1426; -case 1426: + goto _test_eof1438; +case 1438: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97923,40 +98830,40 @@ case 1426: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4021; + goto tr4050; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4020; - goto tr77; -tr3996: + goto tr4049; + goto tr78; +tr4025: { s->buffer_length = 0; } - goto st1427; -tr4022: + goto st1439; +tr4051: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1427; -tr3990: + goto st1439; +tr4019: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1427; -st1427: + goto st1439; +st1439: if ( ++p == pe ) - goto _test_eof1427; -case 1427: + goto _test_eof1439; +case 1439: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97976,23 +98883,23 @@ case 1427: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4023; + goto tr4052; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4022; - goto tr77; -tr3984: + goto tr4051; + goto tr78; +tr4013: { s->buffer_length = 0; } - goto st1428; -tr4024: + goto st1440; +tr4053: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1428; -tr3978: + goto st1440; +tr4007: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98000,17 +98907,17 @@ tr3978: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1428; -st1428: + goto st1440; +st1440: if ( ++p == pe ) - goto _test_eof1428; -case 1428: + goto _test_eof1440; +case 1440: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -98030,18 +98937,18 @@ case 1428: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4025; + goto tr4054; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4024; - goto tr77; -st1429: + goto tr4053; + goto tr78; +st1441: if ( ++p == pe ) - goto _test_eof1429; -case 1429: + goto _test_eof1441; +case 1441: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4026; - goto tr2688; -tr4026: + goto tr4055; + goto tr2717; +tr4055: { s->number64 = 0; } @@ -98056,11 +98963,11 @@ tr4026: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1430; -tr4030: + goto st1442; +tr4059: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98072,14 +98979,14 @@ tr4030: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1430; -st1430: + goto st1442; +st1442: if ( ++p == pe ) - goto _test_eof1430; -case 1430: + goto _test_eof1442; +case 1442: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98093,40 +99000,40 @@ case 1430: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4027; - case 32: goto tr4027; - case 40: goto tr4028; - case 41: goto tr4029; - case 2058: goto tr4031; - case 2107: goto tr4032; + case 9: goto tr4056; + case 32: goto tr4056; + case 40: goto tr4057; + case 41: goto tr4058; + case 2058: goto tr4060; + case 2107: goto tr4061; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4030; - goto tr2688; -tr4034: + goto tr4059; + goto tr2717; +tr4063: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1431; -tr4035: + goto st1443; +tr4064: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1431; -tr4037: + goto st1443; +tr4066: { s->line_counter++; } - goto st1431; -tr4042: + goto st1443; +tr4071: { s->buffer[s->buffer_length++] = 0; @@ -98136,15 +99043,15 @@ tr4042: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1431; goto _out;} + {p++; cs = 1443; goto _out;} } } } { s->line_counter++; } - goto st1431; -tr4027: + goto st1443; +tr4056: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98152,11 +99059,11 @@ tr4027: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1431; -tr4028: + goto st1443; +tr4057: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98164,18 +99071,18 @@ tr4028: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1431; -tr4029: + goto st1443; +tr4058: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98183,18 +99090,18 @@ tr4029: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1431; -tr4031: + goto st1443; +tr4060: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98202,17 +99109,17 @@ tr4031: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1431; -st1431: + goto st1443; +st1443: if ( ++p == pe ) - goto _test_eof1431; -case 1431: + goto _test_eof1443; +case 1443: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98226,28 +99133,28 @@ case 1431: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1431; - case 32: goto st1431; - case 40: goto tr4034; - case 41: goto tr4035; - case 46: goto tr4036; - case 2058: goto tr4037; - case 2107: goto tr4038; + case 9: goto st1443; + case 32: goto st1443; + case 40: goto tr4063; + case 41: goto tr4064; + case 46: goto tr4065; + case 2058: goto tr4066; + case 2107: goto tr4067; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4036; - goto tr2665; -tr4040: + goto tr4065; + goto tr2694; +tr4069: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1432; -tr4036: + goto st1444; +tr4065: { s->buffer_length = 0; } @@ -98256,41 +99163,41 @@ tr4036: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1432; -st1432: + goto st1444; +st1444: if ( ++p == pe ) - goto _test_eof1432; -case 1432: + goto _test_eof1444; +case 1444: switch( (*p) ) { - case 32: goto tr4039; - case 46: goto tr4040; - case 59: goto tr4039; + case 32: goto tr4068; + case 46: goto tr4069; + case 59: goto tr4068; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr4039; + goto tr4068; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4040; + goto tr4069; } else - goto tr4039; - goto tr2665; -tr4039: + goto tr4068; + goto tr2694; +tr4068: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st325;} + p--; {goto st329;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -98298,25 +99205,25 @@ tr4039: { p--; {cs = stack[--top];goto _again;} } - goto st1584; -st1584: + goto st1596; +st1596: if ( ++p == pe ) - goto _test_eof1584; -case 1584: + goto _test_eof1596; +case 1596: goto st0; -tr4038: +tr4067: { s->buffer_length = 0; } - goto st1433; -tr4041: + goto st1445; +tr4070: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1433; -tr4032: + goto st1445; +tr4061: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98324,17 +99231,17 @@ tr4032: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1433; -st1433: + goto st1445; +st1445: if ( ++p == pe ) - goto _test_eof1433; -case 1433: + goto _test_eof1445; +case 1445: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -98354,18 +99261,18 @@ case 1433: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4042; + goto tr4071; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4041; - goto tr77; -st1434: + goto tr4070; + goto tr78; +st1446: if ( ++p == pe ) - goto _test_eof1434; -case 1434: + goto _test_eof1446; +case 1446: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4043; - goto tr2688; -tr4043: + goto tr4072; + goto tr2717; +tr4072: { s->number64 = 0; } @@ -98380,11 +99287,11 @@ tr4043: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1435; -tr4047: + goto st1447; +tr4076: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98396,14 +99303,14 @@ tr4047: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1435; -st1435: + goto st1447; +st1447: if ( ++p == pe ) - goto _test_eof1435; -case 1435: + goto _test_eof1447; +case 1447: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98417,40 +99324,40 @@ case 1435: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4044; - case 32: goto tr4044; - case 40: goto tr4045; - case 41: goto tr4046; - case 2058: goto tr4048; - case 2107: goto tr4049; + case 9: goto tr4073; + case 32: goto tr4073; + case 40: goto tr4074; + case 41: goto tr4075; + case 2058: goto tr4077; + case 2107: goto tr4078; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4047; - goto tr2688; -tr4051: + goto tr4076; + goto tr2717; +tr4080: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1436; -tr4052: + goto st1448; +tr4081: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1436; -tr4054: + goto st1448; +tr4083: { s->line_counter++; } - goto st1436; -tr4068: + goto st1448; +tr4097: { s->buffer[s->buffer_length++] = 0; @@ -98460,15 +99367,15 @@ tr4068: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1436; goto _out;} + {p++; cs = 1448; goto _out;} } } } { s->line_counter++; } - goto st1436; -tr4044: + goto st1448; +tr4073: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98476,11 +99383,11 @@ tr4044: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1436; -tr4045: + goto st1448; +tr4074: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98488,18 +99395,18 @@ tr4045: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1436; -tr4046: + goto st1448; +tr4075: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98507,18 +99414,18 @@ tr4046: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1436; -tr4048: + goto st1448; +tr4077: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98526,17 +99433,17 @@ tr4048: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1436; -st1436: + goto st1448; +st1448: if ( ++p == pe ) - goto _test_eof1436; -case 1436: + goto _test_eof1448; +case 1448: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98550,23 +99457,23 @@ case 1436: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1436; - case 32: goto st1436; - case 40: goto tr4051; - case 41: goto tr4052; - case 2058: goto tr4054; - case 2107: goto tr4055; + case 9: goto st1448; + case 32: goto st1448; + case 40: goto tr4080; + case 41: goto tr4081; + case 2058: goto tr4083; + case 2107: goto tr4084; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4053; + goto tr4082; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4053; + goto tr4082; } else - goto tr4053; - goto tr3359; -tr4053: + goto tr4082; + goto tr3388; +tr4082: { s->item_length = 0; } @@ -98575,214 +99482,214 @@ tr4053: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1437; -st1437: + goto st1449; +st1449: if ( ++p == pe ) - goto _test_eof1437; -case 1437: + goto _test_eof1449; +case 1449: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4056; + goto tr4085; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4056; + goto tr4085; } else - goto tr4056; - goto tr3359; -tr4056: + goto tr4085; + goto tr3388; +tr4085: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1438; -st1438: + goto st1450; +st1450: if ( ++p == pe ) - goto _test_eof1438; -case 1438: + goto _test_eof1450; +case 1450: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4057; + goto tr4086; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4057; + goto tr4086; } else - goto tr4057; - goto tr3359; -tr4057: + goto tr4086; + goto tr3388; +tr4086: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1439; -st1439: + goto st1451; +st1451: if ( ++p == pe ) - goto _test_eof1439; -case 1439: + goto _test_eof1451; +case 1451: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4058; + goto tr4087; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4058; + goto tr4087; } else - goto tr4058; - goto tr3359; -tr4058: + goto tr4087; + goto tr3388; +tr4087: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1440; -st1440: + goto st1452; +st1452: if ( ++p == pe ) - goto _test_eof1440; -case 1440: + goto _test_eof1452; +case 1452: if ( (*p) == 58 ) - goto tr4060; - goto tr4059; -tr4060: + goto tr4089; + goto tr4088; +tr4089: { s->item_length++; } - goto st1441; -st1441: + goto st1453; +st1453: if ( ++p == pe ) - goto _test_eof1441; -case 1441: + goto _test_eof1453; +case 1453: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4061; + goto tr4090; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4061; + goto tr4090; } else - goto tr4061; - goto tr3359; -tr4061: + goto tr4090; + goto tr3388; +tr4090: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1442; -st1442: + goto st1454; +st1454: if ( ++p == pe ) - goto _test_eof1442; -case 1442: + goto _test_eof1454; +case 1454: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4062; + goto tr4091; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4062; + goto tr4091; } else - goto tr4062; - goto tr3359; -tr4062: + goto tr4091; + goto tr3388; +tr4091: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1443; -st1443: + goto st1455; +st1455: if ( ++p == pe ) - goto _test_eof1443; -case 1443: + goto _test_eof1455; +case 1455: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4063; + goto tr4092; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4063; + goto tr4092; } else - goto tr4063; - goto tr3359; -tr4063: + goto tr4092; + goto tr3388; +tr4092: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1444; -st1444: + goto st1456; +st1456: if ( ++p == pe ) - goto _test_eof1444; -case 1444: + goto _test_eof1456; +case 1456: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4064; + goto tr4093; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4064; + goto tr4093; } else - goto tr4064; - goto tr3359; -tr4064: + goto tr4093; + goto tr3388; +tr4093: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1445; -st1445: + goto st1457; +st1457: if ( ++p == pe ) - goto _test_eof1445; -case 1445: + goto _test_eof1457; +case 1457: switch( (*p) ) { - case 32: goto tr4066; - case 58: goto tr4060; - case 59: goto tr4066; + case 32: goto tr4095; + case 58: goto tr4089; + case 59: goto tr4095; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4066; + goto tr4095; } else if ( (*p) >= 9 ) - goto tr4066; - goto tr4065; -tr4066: + goto tr4095; + goto tr4094; +tr4095: { s->item_length++; } { if (s->item_length != 4) { WARN(ZS_BAD_L64_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1585; -st1585: + goto st1597; +st1597: if ( ++p == pe ) - goto _test_eof1585; -case 1585: + goto _test_eof1597; +case 1597: goto st0; -tr4055: +tr4084: { s->buffer_length = 0; } - goto st1446; -tr4067: + goto st1458; +tr4096: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1446; -tr4049: + goto st1458; +tr4078: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98790,17 +99697,17 @@ tr4049: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1446; -st1446: + goto st1458; +st1458: if ( ++p == pe ) - goto _test_eof1446; -case 1446: + goto _test_eof1458; +case 1458: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -98820,24 +99727,24 @@ case 1446: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4068; + goto tr4097; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4067; - goto tr77; -st1447: + goto tr4096; + goto tr78; +st1459: if ( ++p == pe ) - goto _test_eof1447; -case 1447: + goto _test_eof1459; +case 1459: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4069; + goto tr4098; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4069; + goto tr4098; } else - goto tr4069; - goto tr3359; -tr4069: + goto tr4098; + goto tr3388; +tr4098: { s->item_length = 0; } @@ -98846,131 +99753,131 @@ tr4069: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1448; -st1448: + goto st1460; +st1460: if ( ++p == pe ) - goto _test_eof1448; -case 1448: + goto _test_eof1460; +case 1460: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4070; + goto tr4099; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4070; + goto tr4099; } else - goto tr4070; - goto tr3359; -tr4070: + goto tr4099; + goto tr3388; +tr4099: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1449; -st1449: + goto st1461; +st1461: if ( ++p == pe ) - goto _test_eof1449; -case 1449: + goto _test_eof1461; +case 1461: if ( (*p) == 45 ) - goto tr4072; - goto tr4071; -tr4072: + goto tr4101; + goto tr4100; +tr4101: { s->item_length++; } - goto st1450; -st1450: + goto st1462; +st1462: if ( ++p == pe ) - goto _test_eof1450; -case 1450: + goto _test_eof1462; +case 1462: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4073; + goto tr4102; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4073; + goto tr4102; } else - goto tr4073; - goto tr3359; -tr4073: + goto tr4102; + goto tr3388; +tr4102: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1451; -st1451: + goto st1463; +st1463: if ( ++p == pe ) - goto _test_eof1451; -case 1451: + goto _test_eof1463; +case 1463: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4074; + goto tr4103; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4074; + goto tr4103; } else - goto tr4074; - goto tr3359; -tr4074: + goto tr4103; + goto tr3388; +tr4103: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1452; -st1452: + goto st1464; +st1464: if ( ++p == pe ) - goto _test_eof1452; -case 1452: + goto _test_eof1464; +case 1464: switch( (*p) ) { - case 32: goto tr4075; - case 45: goto tr4072; - case 59: goto tr4075; + case 32: goto tr4104; + case 45: goto tr4101; + case 59: goto tr4104; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4075; + goto tr4104; } else if ( (*p) >= 9 ) - goto tr4075; - goto tr4071; -tr4075: + goto tr4104; + goto tr4100; +tr4104: { s->item_length++; } { if (s->item_length != 6) { WARN(ZS_BAD_EUI_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1586; -st1586: + goto st1598; +st1598: if ( ++p == pe ) - goto _test_eof1586; -case 1586: + goto _test_eof1598; +case 1598: goto st0; -st1453: +st1465: if ( ++p == pe ) - goto _test_eof1453; -case 1453: + goto _test_eof1465; +case 1465: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4076; + goto tr4105; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4076; + goto tr4105; } else - goto tr4076; - goto tr3359; -tr4076: + goto tr4105; + goto tr3388; +tr4105: { s->item_length = 0; } @@ -98979,125 +99886,125 @@ tr4076: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1454; -st1454: + goto st1466; +st1466: if ( ++p == pe ) - goto _test_eof1454; -case 1454: + goto _test_eof1466; +case 1466: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4077; + goto tr4106; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4077; + goto tr4106; } else - goto tr4077; - goto tr3359; -tr4077: + goto tr4106; + goto tr3388; +tr4106: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1455; -st1455: + goto st1467; +st1467: if ( ++p == pe ) - goto _test_eof1455; -case 1455: + goto _test_eof1467; +case 1467: if ( (*p) == 45 ) - goto tr4078; - goto tr4071; -tr4078: + goto tr4107; + goto tr4100; +tr4107: { s->item_length++; } - goto st1456; -st1456: + goto st1468; +st1468: if ( ++p == pe ) - goto _test_eof1456; -case 1456: + goto _test_eof1468; +case 1468: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4079; + goto tr4108; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4079; + goto tr4108; } else - goto tr4079; - goto tr3359; -tr4079: + goto tr4108; + goto tr3388; +tr4108: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1457; -st1457: + goto st1469; +st1469: if ( ++p == pe ) - goto _test_eof1457; -case 1457: + goto _test_eof1469; +case 1469: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4080; + goto tr4109; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4080; + goto tr4109; } else - goto tr4080; - goto tr3359; -tr4080: + goto tr4109; + goto tr3388; +tr4109: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1458; -st1458: + goto st1470; +st1470: if ( ++p == pe ) - goto _test_eof1458; -case 1458: + goto _test_eof1470; +case 1470: switch( (*p) ) { - case 32: goto tr4081; - case 45: goto tr4078; - case 59: goto tr4081; + case 32: goto tr4110; + case 45: goto tr4107; + case 59: goto tr4110; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4081; + goto tr4110; } else if ( (*p) >= 9 ) - goto tr4081; - goto tr4071; -tr4081: + goto tr4110; + goto tr4100; +tr4110: { s->item_length++; } { if (s->item_length != 8) { WARN(ZS_BAD_EUI_LENGTH); - p--; {goto st325;} + p--; {goto st329;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1587; -st1587: + goto st1599; +st1599: if ( ++p == pe ) - goto _test_eof1587; -case 1587: + goto _test_eof1599; +case 1599: goto st0; -st1459: +st1471: if ( ++p == pe ) - goto _test_eof1459; -case 1459: + goto _test_eof1471; +case 1471: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4082; - goto tr2688; -tr4082: + goto tr4111; + goto tr2717; +tr4111: { s->number64 = 0; } @@ -99112,11 +100019,11 @@ tr4082: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1460; -tr4086: + goto st1472; +tr4115: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99128,14 +100035,14 @@ tr4086: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1460; -st1460: + goto st1472; +st1472: if ( ++p == pe ) - goto _test_eof1460; -case 1460: + goto _test_eof1472; +case 1472: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99149,40 +100056,40 @@ case 1460: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4083; - case 32: goto tr4083; - case 40: goto tr4084; - case 41: goto tr4085; - case 2058: goto tr4087; - case 2107: goto tr4088; + case 9: goto tr4112; + case 32: goto tr4112; + case 40: goto tr4113; + case 41: goto tr4114; + case 2058: goto tr4116; + case 2107: goto tr4117; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4086; - goto tr2688; -tr4090: + goto tr4115; + goto tr2717; +tr4119: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1461; -tr4091: + goto st1473; +tr4120: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1461; -tr4093: + goto st1473; +tr4122: { s->line_counter++; } - goto st1461; -tr4111: + goto st1473; +tr4140: { s->buffer[s->buffer_length++] = 0; @@ -99192,15 +100099,15 @@ tr4111: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1461; goto _out;} + {p++; cs = 1473; goto _out;} } } } { s->line_counter++; } - goto st1461; -tr4083: + goto st1473; +tr4112: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99208,11 +100115,11 @@ tr4083: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1461; -tr4084: + goto st1473; +tr4113: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99220,18 +100127,18 @@ tr4084: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1461; -tr4085: + goto st1473; +tr4114: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99239,18 +100146,18 @@ tr4085: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1461; -tr4087: + goto st1473; +tr4116: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99258,17 +100165,17 @@ tr4087: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1461; -st1461: + goto st1473; +st1473: if ( ++p == pe ) - goto _test_eof1461; -case 1461: + goto _test_eof1473; +case 1473: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99282,17 +100189,17 @@ case 1461: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1461; - case 32: goto st1461; - case 40: goto tr4090; - case 41: goto tr4091; - case 2058: goto tr4093; - case 2107: goto tr4094; + case 9: goto st1473; + case 32: goto st1473; + case 40: goto tr4119; + case 41: goto tr4120; + case 2058: goto tr4122; + case 2107: goto tr4123; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4092; - goto tr2688; -tr4092: + goto tr4121; + goto tr2717; +tr4121: { s->number64 = 0; } @@ -99307,11 +100214,11 @@ tr4092: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1462; -tr4098: + goto st1474; +tr4127: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99323,14 +100230,14 @@ tr4098: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1462; -st1462: + goto st1474; +st1474: if ( ++p == pe ) - goto _test_eof1462; -case 1462: + goto _test_eof1474; +case 1474: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99344,40 +100251,40 @@ case 1462: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4095; - case 32: goto tr4095; - case 40: goto tr4096; - case 41: goto tr4097; - case 2058: goto tr4099; - case 2107: goto tr4100; + case 9: goto tr4124; + case 32: goto tr4124; + case 40: goto tr4125; + case 41: goto tr4126; + case 2058: goto tr4128; + case 2107: goto tr4129; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4098; - goto tr2688; -tr4103: + goto tr4127; + goto tr2717; +tr4132: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1463; -tr4104: + goto st1475; +tr4133: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1463; -tr4105: + goto st1475; +tr4134: { s->line_counter++; } - goto st1463; -tr4109: + goto st1475; +tr4138: { s->buffer[s->buffer_length++] = 0; @@ -99387,15 +100294,15 @@ tr4109: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1463; goto _out;} + {p++; cs = 1475; goto _out;} } } } { s->line_counter++; } - goto st1463; -tr4095: + goto st1475; +tr4124: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99403,11 +100310,11 @@ tr4095: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1463; -tr4096: + goto st1475; +tr4125: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99415,18 +100322,18 @@ tr4096: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1463; -tr4097: + goto st1475; +tr4126: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99434,18 +100341,18 @@ tr4097: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1463; -tr4099: + goto st1475; +tr4128: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99453,17 +100360,17 @@ tr4099: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1463; -st1463: + goto st1475; +st1475: if ( ++p == pe ) - goto _test_eof1463; -case 1463: + goto _test_eof1475; +case 1475: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99477,62 +100384,62 @@ case 1463: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1463; - case 32: goto st1463; - case 40: goto tr4103; - case 41: goto tr4104; - case 2058: goto tr4105; - case 2107: goto tr4106; + case 9: goto st1475; + case 32: goto st1475; + case 40: goto tr4132; + case 41: goto tr4133; + case 2058: goto tr4134; + case 2107: goto tr4135; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4101; + goto tr4130; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4101; + goto tr4130; } else - goto tr4101; - goto tr77; -tr4101: - { p--; {stack[top++] = 1464;goto st336;} } - goto st1464; -st1464: + goto tr4130; + goto tr78; +tr4130: + { p--; {stack[top++] = 1476;goto st340;} } + goto st1476; +st1476: if ( ++p == pe ) - goto _test_eof1464; -case 1464: + goto _test_eof1476; +case 1476: switch( (*p) ) { - case 32: goto tr4107; - case 59: goto tr4107; + case 32: goto tr4136; + case 59: goto tr4136; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4107; + goto tr4136; } else if ( (*p) >= 9 ) - goto tr4107; - goto tr77; -tr4107: + goto tr4136; + goto tr78; +tr4136: { p--; {cs = stack[--top];goto _again;} } - goto st1588; -st1588: + goto st1600; +st1600: if ( ++p == pe ) - goto _test_eof1588; -case 1588: + goto _test_eof1600; +case 1600: goto st0; -tr4106: +tr4135: { s->buffer_length = 0; } - goto st1465; -tr4108: + goto st1477; +tr4137: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1465; -tr4100: + goto st1477; +tr4129: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99540,17 +100447,17 @@ tr4100: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1465; -st1465: + goto st1477; +st1477: if ( ++p == pe ) - goto _test_eof1465; -case 1465: + goto _test_eof1477; +case 1477: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99570,23 +100477,23 @@ case 1465: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4109; + goto tr4138; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4108; - goto tr77; -tr4094: + goto tr4137; + goto tr78; +tr4123: { s->buffer_length = 0; } - goto st1466; -tr4110: + goto st1478; +tr4139: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1466; -tr4088: + goto st1478; +tr4117: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99594,17 +100501,17 @@ tr4088: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1466; -st1466: + goto st1478; +st1478: if ( ++p == pe ) - goto _test_eof1466; -case 1466: + goto _test_eof1478; +case 1478: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99624,18 +100531,18 @@ case 1466: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4111; + goto tr4140; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4110; - goto tr77; -st1467: + goto tr4139; + goto tr78; +st1479: if ( ++p == pe ) - goto _test_eof1467; -case 1467: + goto _test_eof1479; +case 1479: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4112; - goto tr2688; -tr4112: + goto tr4141; + goto tr2717; +tr4141: { s->number64 = 0; } @@ -99650,11 +100557,11 @@ tr4112: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1468; -tr4116: + goto st1480; +tr4145: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99666,14 +100573,14 @@ tr4116: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1468; -st1468: + goto st1480; +st1480: if ( ++p == pe ) - goto _test_eof1468; -case 1468: + goto _test_eof1480; +case 1480: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99687,40 +100594,40 @@ case 1468: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4113; - case 32: goto tr4113; - case 40: goto tr4114; - case 41: goto tr4115; - case 2058: goto tr4117; - case 2107: goto tr4118; + case 9: goto tr4142; + case 32: goto tr4142; + case 40: goto tr4143; + case 41: goto tr4144; + case 2058: goto tr4146; + case 2107: goto tr4147; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4116; - goto tr2688; -tr4121: + goto tr4145; + goto tr2717; +tr4150: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1469; -tr4122: + goto st1481; +tr4151: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1469; -tr4123: + goto st1481; +tr4152: { s->line_counter++; } - goto st1469; -tr4140: + goto st1481; +tr4169: { s->buffer[s->buffer_length++] = 0; @@ -99730,79 +100637,79 @@ tr4140: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1469; goto _out;} + {p++; cs = 1481; goto _out;} } } } { s->line_counter++; } - goto st1469; -tr4113: + goto st1481; +tr4142: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1469; -tr4114: + goto st1481; +tr4143: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1469; -tr4115: + goto st1481; +tr4144: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1469; -tr4117: + goto st1481; +tr4146: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1469; -st1469: + goto st1481; +st1481: if ( ++p == pe ) - goto _test_eof1469; -case 1469: + goto _test_eof1481; +case 1481: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99816,37 +100723,37 @@ case 1469: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1469; - case 32: goto st1469; - case 40: goto tr4121; - case 41: goto tr4122; - case 2058: goto tr4123; - case 2107: goto tr4124; + case 9: goto st1481; + case 32: goto st1481; + case 40: goto tr4150; + case 41: goto tr4151; + case 2058: goto tr4152; + case 2107: goto tr4153; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4119; + goto tr4148; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4119; + goto tr4148; } else - goto tr4119; - goto tr77; -tr4119: + goto tr4148; + goto tr78; +tr4148: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - { p--; {stack[top++] = 1470;goto st336;} } - goto st1470; -st1470: + { p--; {stack[top++] = 1482;goto st340;} } + goto st1482; +st1482: if ( ++p == pe ) - goto _test_eof1470; -case 1470: + goto _test_eof1482; +case 1482: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99860,38 +100767,38 @@ case 1470: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4125; - case 32: goto tr4125; - case 40: goto tr4126; - case 41: goto tr4127; - case 2058: goto tr4128; - case 2107: goto tr4129; + case 9: goto tr4154; + case 32: goto tr4154; + case 40: goto tr4155; + case 41: goto tr4156; + case 2058: goto tr4157; + case 2107: goto tr4158; } - goto tr77; -tr4132: + goto tr78; +tr4161: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1471; -tr4133: + goto st1483; +tr4162: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1471; -tr4134: + goto st1483; +tr4163: { s->line_counter++; } - goto st1471; -tr4138: + goto st1483; +tr4167: { s->buffer[s->buffer_length++] = 0; @@ -99901,95 +100808,95 @@ tr4138: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1471; goto _out;} + {p++; cs = 1483; goto _out;} } } } { s->line_counter++; } - goto st1471; -tr4125: + goto st1483; +tr4154: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1471; -tr4126: + goto st1483; +tr4155: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1471; -tr4127: + goto st1483; +tr4156: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1471; -tr4128: + goto st1483; +tr4157: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1471; -st1471: + goto st1483; +st1483: if ( ++p == pe ) - goto _test_eof1471; -case 1471: + goto _test_eof1483; +case 1483: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100003,83 +100910,83 @@ case 1471: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1471; - case 32: goto st1471; - case 40: goto tr4132; - case 41: goto tr4133; - case 2058: goto tr4134; - case 2107: goto tr4135; + case 9: goto st1483; + case 32: goto st1483; + case 40: goto tr4161; + case 41: goto tr4162; + case 2058: goto tr4163; + case 2107: goto tr4164; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4130; + goto tr4159; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4130; + goto tr4159; } else - goto tr4130; - goto tr77; -tr4130: - { p--; {stack[top++] = 1472;goto st336;} } - goto st1472; -st1472: + goto tr4159; + goto tr78; +tr4159: + { p--; {stack[top++] = 1484;goto st340;} } + goto st1484; +st1484: if ( ++p == pe ) - goto _test_eof1472; -case 1472: + goto _test_eof1484; +case 1484: switch( (*p) ) { - case 32: goto tr4136; - case 59: goto tr4136; + case 32: goto tr4165; + case 59: goto tr4165; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4136; + goto tr4165; } else if ( (*p) >= 9 ) - goto tr4136; - goto tr77; -tr4136: + goto tr4165; + goto tr78; +tr4165: { p--; {cs = stack[--top];goto _again;} } - goto st1589; -st1589: + goto st1601; +st1601: if ( ++p == pe ) - goto _test_eof1589; -case 1589: + goto _test_eof1601; +case 1601: goto st0; -tr4135: +tr4164: { s->buffer_length = 0; } - goto st1473; -tr4137: + goto st1485; +tr4166: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1473; -tr4129: + goto st1485; +tr4158: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st325;} + p--; {goto st329;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1473; -st1473: + goto st1485; +st1485: if ( ++p == pe ) - goto _test_eof1473; -case 1473: + goto _test_eof1485; +case 1485: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100099,40 +101006,40 @@ case 1473: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4138; + goto tr4167; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4137; - goto tr77; -tr4124: + goto tr4166; + goto tr78; +tr4153: { s->buffer_length = 0; } - goto st1474; -tr4139: + goto st1486; +tr4168: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1474; -tr4118: + goto st1486; +tr4147: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1474; -st1474: + goto st1486; +st1486: if ( ++p == pe ) - goto _test_eof1474; -case 1474: + goto _test_eof1486; +case 1486: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100152,18 +101059,18 @@ case 1474: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4140; + goto tr4169; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4139; - goto tr77; -st1475: + goto tr4168; + goto tr78; +st1487: if ( ++p == pe ) - goto _test_eof1475; -case 1475: + goto _test_eof1487; +case 1487: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4141; - goto tr2688; -tr4141: + goto tr4170; + goto tr2717; +tr4170: { s->number64 = 0; } @@ -100178,11 +101085,11 @@ tr4141: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1476; -tr4145: + goto st1488; +tr4174: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -100194,14 +101101,14 @@ tr4145: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1476; -st1476: + goto st1488; +st1488: if ( ++p == pe ) - goto _test_eof1476; -case 1476: + goto _test_eof1488; +case 1488: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100215,40 +101122,40 @@ case 1476: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4142; - case 32: goto tr4142; - case 40: goto tr4143; - case 41: goto tr4144; - case 2058: goto tr4146; - case 2107: goto tr4147; + case 9: goto tr4171; + case 32: goto tr4171; + case 40: goto tr4172; + case 41: goto tr4173; + case 2058: goto tr4175; + case 2107: goto tr4176; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4145; - goto tr2688; -tr4149: + goto tr4174; + goto tr2717; +tr4178: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1477; -tr4150: + goto st1489; +tr4179: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1477; -tr4152: + goto st1489; +tr4181: { s->line_counter++; } - goto st1477; -tr4157: + goto st1489; +tr4186: { s->buffer[s->buffer_length++] = 0; @@ -100258,15 +101165,15 @@ tr4157: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1477; goto _out;} + {p++; cs = 1489; goto _out;} } } } { s->line_counter++; } - goto st1477; -tr4142: + goto st1489; +tr4171: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100274,11 +101181,11 @@ tr4142: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1477; -tr4143: + goto st1489; +tr4172: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100286,18 +101193,18 @@ tr4143: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1477; -tr4144: + goto st1489; +tr4173: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100305,18 +101212,18 @@ tr4144: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1477; -tr4146: + goto st1489; +tr4175: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100324,17 +101231,17 @@ tr4146: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1477; -st1477: + goto st1489; +st1489: if ( ++p == pe ) - goto _test_eof1477; -case 1477: + goto _test_eof1489; +case 1489: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100348,88 +101255,88 @@ case 1477: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1477; - case 32: goto st1477; - case 40: goto tr4149; - case 41: goto tr4150; - case 42: goto tr4151; - case 92: goto tr4151; - case 95: goto tr4151; - case 2058: goto tr4152; - case 2107: goto tr4153; + case 9: goto st1489; + case 32: goto st1489; + case 40: goto tr4178; + case 41: goto tr4179; + case 42: goto tr4180; + case 92: goto tr4180; + case 95: goto tr4180; + case 2058: goto tr4181; + case 2107: goto tr4182; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4151; + goto tr4180; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4151; + goto tr4180; } else - goto tr4151; - goto tr77; -tr4151: + goto tr4180; + goto tr78; +tr4180: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1478;goto st327;} } - goto st1478; -st1478: + { p--; {stack[top++] = 1490;goto st331;} } + goto st1490; +st1490: if ( ++p == pe ) - goto _test_eof1478; -case 1478: + goto _test_eof1490; +case 1490: switch( (*p) ) { - case 32: goto tr4154; - case 59: goto tr4154; + case 32: goto tr4183; + case 59: goto tr4183; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4154; + goto tr4183; } else if ( (*p) >= 9 ) - goto tr4154; - goto tr77; -tr4154: + goto tr4183; + goto tr78; +tr4183: { rdata_tail += s->dname_tmp_length; } - { p--; {stack[top++] = 1479;goto st825;} } - goto st1479; -st1479: + { p--; {stack[top++] = 1491;goto st837;} } + goto st1491; +st1491: if ( ++p == pe ) - goto _test_eof1479; -case 1479: + goto _test_eof1491; +case 1491: switch( (*p) ) { - case 32: goto tr4155; - case 59: goto tr4155; + case 32: goto tr4184; + case 59: goto tr4184; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4155; + goto tr4184; } else if ( (*p) >= 9 ) - goto tr4155; - goto tr77; -tr4155: + goto tr4184; + goto tr78; +tr4184: { p--; {cs = stack[--top];goto _again;} } - goto st1590; -st1590: + goto st1602; +st1602: if ( ++p == pe ) - goto _test_eof1590; -case 1590: + goto _test_eof1602; +case 1602: goto st0; -tr4153: +tr4182: { s->buffer_length = 0; } - goto st1480; -tr4156: + goto st1492; +tr4185: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1480; -tr4147: + goto st1492; +tr4176: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100437,17 +101344,17 @@ tr4147: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1480; -st1480: + goto st1492; +st1492: if ( ++p == pe ) - goto _test_eof1480; -case 1480: + goto _test_eof1492; +case 1492: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100467,30 +101374,30 @@ case 1480: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4157; + goto tr4186; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4156; - goto tr77; -st1481: + goto tr4185; + goto tr78; +st1493: if ( ++p == pe ) - goto _test_eof1481; -case 1481: + goto _test_eof1493; +case 1493: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4158; + goto tr4187; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr4158; + goto tr4187; } else - goto tr4158; - goto tr77; -tr4158: - { p--; {stack[top++] = 1482;goto st394;} } - goto st1482; -st1482: + goto tr4187; + goto tr78; +tr4187: + { p--; {stack[top++] = 1494;goto st398;} } + goto st1494; +st1494: if ( ++p == pe ) - goto _test_eof1482; -case 1482: + goto _test_eof1494; +case 1494: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100504,38 +101411,38 @@ case 1482: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1483; - case 32: goto st1483; - case 40: goto tr4160; - case 41: goto tr4161; - case 2058: goto tr4162; - case 2107: goto tr4163; - } - goto tr77; -tr4160: + case 9: goto st1495; + case 32: goto st1495; + case 40: goto tr4189; + case 41: goto tr4190; + case 2058: goto tr4191; + case 2107: goto tr4192; + } + goto tr78; +tr4189: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1483; -tr4161: + goto st1495; +tr4190: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1483; -tr4162: + goto st1495; +tr4191: { s->line_counter++; } - goto st1483; -tr4189: + goto st1495; +tr4218: { s->buffer[s->buffer_length++] = 0; @@ -100545,18 +101452,18 @@ tr4189: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1495; goto _out;} } } } { s->line_counter++; } - goto st1483; -st1483: + goto st1495; +st1495: if ( ++p == pe ) - goto _test_eof1483; -case 1483: + goto _test_eof1495; +case 1495: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100570,29 +101477,29 @@ case 1483: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1483; - case 32: goto st1483; - case 40: goto tr4160; - case 41: goto tr4161; - case 2058: goto tr4162; - case 2107: goto tr4163; + case 9: goto st1495; + case 32: goto st1495; + case 40: goto tr4189; + case 41: goto tr4190; + case 2058: goto tr4191; + case 2107: goto tr4192; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4164; + goto tr4193; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4164; + goto tr4193; } else - goto tr4164; - goto tr77; -tr4164: - { p--; {stack[top++] = 1484;goto st1081;} } - goto st1484; -st1484: + goto tr4193; + goto tr78; +tr4193: + { p--; {stack[top++] = 1496;goto st1093;} } + goto st1496; +st1496: if ( ++p == pe ) - goto _test_eof1484; -case 1484: + goto _test_eof1496; +case 1496: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100606,38 +101513,38 @@ case 1484: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1485; - case 32: goto st1485; - case 40: goto tr4166; - case 41: goto tr4167; - case 2058: goto tr4168; - case 2107: goto tr4169; - } - goto tr77; -tr4166: + case 9: goto st1497; + case 32: goto st1497; + case 40: goto tr4195; + case 41: goto tr4196; + case 2058: goto tr4197; + case 2107: goto tr4198; + } + goto tr78; +tr4195: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1485; -tr4167: + goto st1497; +tr4196: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1485; -tr4168: + goto st1497; +tr4197: { s->line_counter++; } - goto st1485; -tr4187: + goto st1497; +tr4216: { s->buffer[s->buffer_length++] = 0; @@ -100647,18 +101554,18 @@ tr4187: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1485; goto _out;} + {p++; cs = 1497; goto _out;} } } } { s->line_counter++; } - goto st1485; -st1485: + goto st1497; +st1497: if ( ++p == pe ) - goto _test_eof1485; -case 1485: + goto _test_eof1497; +case 1497: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100672,17 +101579,17 @@ case 1485: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1485; - case 32: goto st1485; - case 40: goto tr4166; - case 41: goto tr4167; - case 2058: goto tr4168; - case 2107: goto tr4169; + case 9: goto st1497; + case 32: goto st1497; + case 40: goto tr4195; + case 41: goto tr4196; + case 2058: goto tr4197; + case 2107: goto tr4198; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4170; - goto tr2688; -tr4170: + goto tr4199; + goto tr2717; +tr4199: { s->number64 = 0; } @@ -100697,11 +101604,11 @@ tr4170: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1486; -tr4174: + goto st1498; +tr4203: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -100713,14 +101620,14 @@ tr4174: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1486; -st1486: + goto st1498; +st1498: if ( ++p == pe ) - goto _test_eof1486; -case 1486: + goto _test_eof1498; +case 1498: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100734,40 +101641,40 @@ case 1486: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4171; - case 32: goto tr4171; - case 40: goto tr4172; - case 41: goto tr4173; - case 2058: goto tr4175; - case 2107: goto tr4176; + case 9: goto tr4200; + case 32: goto tr4200; + case 40: goto tr4201; + case 41: goto tr4202; + case 2058: goto tr4204; + case 2107: goto tr4205; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4174; - goto tr2688; -tr4178: + goto tr4203; + goto tr2717; +tr4207: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1487; -tr4179: + goto st1499; +tr4208: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1487; -tr4181: + goto st1499; +tr4210: { s->line_counter++; } - goto st1487; -tr4185: + goto st1499; +tr4214: { s->buffer[s->buffer_length++] = 0; @@ -100777,15 +101684,15 @@ tr4185: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1487; goto _out;} + {p++; cs = 1499; goto _out;} } } } { s->line_counter++; } - goto st1487; -tr4171: + goto st1499; +tr4200: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100793,11 +101700,11 @@ tr4171: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } - goto st1487; -tr4172: + goto st1499; +tr4201: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100805,18 +101712,18 @@ tr4172: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = true; } - goto st1487; -tr4173: + goto st1499; +tr4202: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100824,18 +101731,18 @@ tr4173: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st325;} + p--; {goto st329;} } s->multiline = false; } - goto st1487; -tr4175: + goto st1499; +tr4204: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100843,17 +101750,17 @@ tr4175: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->line_counter++; } - goto st1487; -st1487: + goto st1499; +st1499: if ( ++p == pe ) - goto _test_eof1487; -case 1487: + goto _test_eof1499; +case 1499: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100867,71 +101774,71 @@ case 1487: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1487; - case 32: goto st1487; - case 40: goto tr4178; - case 41: goto tr4179; - case 42: goto tr4180; - case 92: goto tr4180; - case 95: goto tr4180; - case 2058: goto tr4181; - case 2107: goto tr4182; + case 9: goto st1499; + case 32: goto st1499; + case 40: goto tr4207; + case 41: goto tr4208; + case 42: goto tr4209; + case 92: goto tr4209; + case 95: goto tr4209; + case 2058: goto tr4210; + case 2107: goto tr4211; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4180; + goto tr4209; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4180; + goto tr4209; } else - goto tr4180; - goto tr77; -tr4180: + goto tr4209; + goto tr78; +tr4209: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1488;goto st327;} } - goto st1488; -st1488: + { p--; {stack[top++] = 1500;goto st331;} } + goto st1500; +st1500: if ( ++p == pe ) - goto _test_eof1488; -case 1488: + goto _test_eof1500; +case 1500: switch( (*p) ) { - case 32: goto tr4183; - case 59: goto tr4183; + case 32: goto tr4212; + case 59: goto tr4212; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4183; + goto tr4212; } else if ( (*p) >= 9 ) - goto tr4183; - goto tr77; -tr4183: + goto tr4212; + goto tr78; +tr4212: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1591; -st1591: + goto st1603; +st1603: if ( ++p == pe ) - goto _test_eof1591; -case 1591: + goto _test_eof1603; +case 1603: goto st0; -tr4182: +tr4211: { s->buffer_length = 0; } - goto st1489; -tr4184: + goto st1501; +tr4213: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1489; -tr4176: + goto st1501; +tr4205: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100939,17 +101846,17 @@ tr4176: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st325;} + p--; {goto st329;} } } { s->buffer_length = 0; } - goto st1489; -st1489: + goto st1501; +st1501: if ( ++p == pe ) - goto _test_eof1489; -case 1489: + goto _test_eof1501; +case 1501: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100969,26 +101876,26 @@ case 1489: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4185; + goto tr4214; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4184; - goto tr77; -tr4169: + goto tr4213; + goto tr78; +tr4198: { s->buffer_length = 0; } - goto st1490; -tr4186: + goto st1502; +tr4215: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1490; -st1490: + goto st1502; +st1502: if ( ++p == pe ) - goto _test_eof1490; -case 1490: + goto _test_eof1502; +case 1502: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -101008,26 +101915,26 @@ case 1490: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4187; + goto tr4216; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4186; - goto tr77; -tr4163: + goto tr4215; + goto tr78; +tr4192: { s->buffer_length = 0; } - goto st1491; -tr4188: + goto st1503; +tr4217: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1491; -st1491: + goto st1503; +st1503: if ( ++p == pe ) - goto _test_eof1491; -case 1491: + goto _test_eof1503; +case 1503: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -101047,12 +101954,12 @@ case 1491: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4189; + goto tr4218; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4188; - goto tr77; + goto tr4217; + goto tr78; } - _test_eof1492: cs = 1492; goto _test_eof; + _test_eof1504: cs = 1504; goto _test_eof; _test_eof1: cs = 1; goto _test_eof; _test_eof2: cs = 2; goto _test_eof; _test_eof3: cs = 3; goto _test_eof; @@ -101066,7 +101973,7 @@ case 1491: _test_eof11: cs = 11; goto _test_eof; _test_eof12: cs = 12; goto _test_eof; _test_eof13: cs = 13; goto _test_eof; - _test_eof1493: cs = 1493; goto _test_eof; + _test_eof1505: cs = 1505; goto _test_eof; _test_eof14: cs = 14; goto _test_eof; _test_eof15: cs = 15; goto _test_eof; _test_eof16: cs = 16; goto _test_eof; @@ -101242,7 +102149,7 @@ case 1491: _test_eof186: cs = 186; goto _test_eof; _test_eof187: cs = 187; goto _test_eof; _test_eof188: cs = 188; goto _test_eof; - _test_eof1494: cs = 1494; goto _test_eof; + _test_eof1506: cs = 1506; goto _test_eof; _test_eof189: cs = 189; goto _test_eof; _test_eof190: cs = 190; goto _test_eof; _test_eof191: cs = 191; goto _test_eof; @@ -101253,7 +102160,7 @@ case 1491: _test_eof196: cs = 196; goto _test_eof; _test_eof197: cs = 197; goto _test_eof; _test_eof198: cs = 198; goto _test_eof; - _test_eof1495: cs = 1495; goto _test_eof; + _test_eof1507: cs = 1507; goto _test_eof; _test_eof199: cs = 199; goto _test_eof; _test_eof200: cs = 200; goto _test_eof; _test_eof201: cs = 201; goto _test_eof; @@ -101262,11 +102169,11 @@ case 1491: _test_eof204: cs = 204; goto _test_eof; _test_eof205: cs = 205; goto _test_eof; _test_eof206: cs = 206; goto _test_eof; - _test_eof1496: cs = 1496; goto _test_eof; + _test_eof1508: cs = 1508; goto _test_eof; _test_eof207: cs = 207; goto _test_eof; _test_eof208: cs = 208; goto _test_eof; _test_eof209: cs = 209; goto _test_eof; - _test_eof1497: cs = 1497; goto _test_eof; + _test_eof1509: cs = 1509; goto _test_eof; _test_eof210: cs = 210; goto _test_eof; _test_eof211: cs = 211; goto _test_eof; _test_eof212: cs = 212; goto _test_eof; @@ -101278,12 +102185,12 @@ case 1491: _test_eof218: cs = 218; goto _test_eof; _test_eof219: cs = 219; goto _test_eof; _test_eof220: cs = 220; goto _test_eof; - _test_eof1498: cs = 1498; goto _test_eof; + _test_eof1510: cs = 1510; goto _test_eof; _test_eof221: cs = 221; goto _test_eof; _test_eof222: cs = 222; goto _test_eof; _test_eof223: cs = 223; goto _test_eof; _test_eof224: cs = 224; goto _test_eof; - _test_eof1499: cs = 1499; goto _test_eof; + _test_eof1511: cs = 1511; goto _test_eof; _test_eof225: cs = 225; goto _test_eof; _test_eof226: cs = 226; goto _test_eof; _test_eof227: cs = 227; goto _test_eof; @@ -101303,7 +102210,7 @@ case 1491: _test_eof241: cs = 241; goto _test_eof; _test_eof242: cs = 242; goto _test_eof; _test_eof243: cs = 243; goto _test_eof; - _test_eof1500: cs = 1500; goto _test_eof; + _test_eof1512: cs = 1512; goto _test_eof; _test_eof244: cs = 244; goto _test_eof; _test_eof245: cs = 245; goto _test_eof; _test_eof246: cs = 246; goto _test_eof; @@ -101320,7 +102227,7 @@ case 1491: _test_eof257: cs = 257; goto _test_eof; _test_eof258: cs = 258; goto _test_eof; _test_eof259: cs = 259; goto _test_eof; - _test_eof1501: cs = 1501; goto _test_eof; + _test_eof1513: cs = 1513; goto _test_eof; _test_eof260: cs = 260; goto _test_eof; _test_eof261: cs = 261; goto _test_eof; _test_eof262: cs = 262; goto _test_eof; @@ -101386,28 +102293,28 @@ case 1491: _test_eof322: cs = 322; goto _test_eof; _test_eof323: cs = 323; goto _test_eof; _test_eof324: cs = 324; goto _test_eof; - _test_eof1502: cs = 1502; goto _test_eof; _test_eof325: cs = 325; goto _test_eof; _test_eof326: cs = 326; goto _test_eof; - _test_eof1503: cs = 1503; goto _test_eof; _test_eof327: cs = 327; goto _test_eof; _test_eof328: cs = 328; goto _test_eof; - _test_eof1504: cs = 1504; goto _test_eof; + _test_eof1514: cs = 1514; goto _test_eof; _test_eof329: cs = 329; goto _test_eof; _test_eof330: cs = 330; goto _test_eof; + _test_eof1515: cs = 1515; goto _test_eof; _test_eof331: cs = 331; goto _test_eof; _test_eof332: cs = 332; goto _test_eof; + _test_eof1516: cs = 1516; goto _test_eof; _test_eof333: cs = 333; goto _test_eof; _test_eof334: cs = 334; goto _test_eof; _test_eof335: cs = 335; goto _test_eof; _test_eof336: cs = 336; goto _test_eof; _test_eof337: cs = 337; goto _test_eof; - _test_eof1505: cs = 1505; goto _test_eof; - _test_eof1506: cs = 1506; goto _test_eof; _test_eof338: cs = 338; goto _test_eof; _test_eof339: cs = 339; goto _test_eof; _test_eof340: cs = 340; goto _test_eof; _test_eof341: cs = 341; goto _test_eof; + _test_eof1517: cs = 1517; goto _test_eof; + _test_eof1518: cs = 1518; goto _test_eof; _test_eof342: cs = 342; goto _test_eof; _test_eof343: cs = 343; goto _test_eof; _test_eof344: cs = 344; goto _test_eof; @@ -101419,22 +102326,22 @@ case 1491: _test_eof350: cs = 350; goto _test_eof; _test_eof351: cs = 351; goto _test_eof; _test_eof352: cs = 352; goto _test_eof; - _test_eof1507: cs = 1507; goto _test_eof; _test_eof353: cs = 353; goto _test_eof; _test_eof354: cs = 354; goto _test_eof; _test_eof355: cs = 355; goto _test_eof; _test_eof356: cs = 356; goto _test_eof; + _test_eof1519: cs = 1519; goto _test_eof; _test_eof357: cs = 357; goto _test_eof; _test_eof358: cs = 358; goto _test_eof; _test_eof359: cs = 359; goto _test_eof; _test_eof360: cs = 360; goto _test_eof; _test_eof361: cs = 361; goto _test_eof; _test_eof362: cs = 362; goto _test_eof; - _test_eof1508: cs = 1508; goto _test_eof; _test_eof363: cs = 363; goto _test_eof; _test_eof364: cs = 364; goto _test_eof; _test_eof365: cs = 365; goto _test_eof; _test_eof366: cs = 366; goto _test_eof; + _test_eof1520: cs = 1520; goto _test_eof; _test_eof367: cs = 367; goto _test_eof; _test_eof368: cs = 368; goto _test_eof; _test_eof369: cs = 369; goto _test_eof; @@ -101445,35 +102352,35 @@ case 1491: _test_eof374: cs = 374; goto _test_eof; _test_eof375: cs = 375; goto _test_eof; _test_eof376: cs = 376; goto _test_eof; - _test_eof1509: cs = 1509; goto _test_eof; _test_eof377: cs = 377; goto _test_eof; _test_eof378: cs = 378; goto _test_eof; _test_eof379: cs = 379; goto _test_eof; _test_eof380: cs = 380; goto _test_eof; + _test_eof1521: cs = 1521; goto _test_eof; _test_eof381: cs = 381; goto _test_eof; _test_eof382: cs = 382; goto _test_eof; _test_eof383: cs = 383; goto _test_eof; - _test_eof1510: cs = 1510; goto _test_eof; _test_eof384: cs = 384; goto _test_eof; _test_eof385: cs = 385; goto _test_eof; _test_eof386: cs = 386; goto _test_eof; _test_eof387: cs = 387; goto _test_eof; + _test_eof1522: cs = 1522; goto _test_eof; _test_eof388: cs = 388; goto _test_eof; _test_eof389: cs = 389; goto _test_eof; _test_eof390: cs = 390; goto _test_eof; _test_eof391: cs = 391; goto _test_eof; _test_eof392: cs = 392; goto _test_eof; - _test_eof1511: cs = 1511; goto _test_eof; - _test_eof1512: cs = 1512; goto _test_eof; - _test_eof1513: cs = 1513; goto _test_eof; _test_eof393: cs = 393; goto _test_eof; _test_eof394: cs = 394; goto _test_eof; _test_eof395: cs = 395; goto _test_eof; - _test_eof1514: cs = 1514; goto _test_eof; _test_eof396: cs = 396; goto _test_eof; + _test_eof1523: cs = 1523; goto _test_eof; + _test_eof1524: cs = 1524; goto _test_eof; + _test_eof1525: cs = 1525; goto _test_eof; _test_eof397: cs = 397; goto _test_eof; _test_eof398: cs = 398; goto _test_eof; _test_eof399: cs = 399; goto _test_eof; + _test_eof1526: cs = 1526; goto _test_eof; _test_eof400: cs = 400; goto _test_eof; _test_eof401: cs = 401; goto _test_eof; _test_eof402: cs = 402; goto _test_eof; @@ -101652,20 +102559,20 @@ case 1491: _test_eof575: cs = 575; goto _test_eof; _test_eof576: cs = 576; goto _test_eof; _test_eof577: cs = 577; goto _test_eof; - _test_eof1515: cs = 1515; goto _test_eof; - _test_eof1516: cs = 1516; goto _test_eof; _test_eof578: cs = 578; goto _test_eof; _test_eof579: cs = 579; goto _test_eof; _test_eof580: cs = 580; goto _test_eof; - _test_eof1517: cs = 1517; goto _test_eof; _test_eof581: cs = 581; goto _test_eof; _test_eof582: cs = 582; goto _test_eof; _test_eof583: cs = 583; goto _test_eof; _test_eof584: cs = 584; goto _test_eof; _test_eof585: cs = 585; goto _test_eof; + _test_eof1527: cs = 1527; goto _test_eof; + _test_eof1528: cs = 1528; goto _test_eof; _test_eof586: cs = 586; goto _test_eof; _test_eof587: cs = 587; goto _test_eof; _test_eof588: cs = 588; goto _test_eof; + _test_eof1529: cs = 1529; goto _test_eof; _test_eof589: cs = 589; goto _test_eof; _test_eof590: cs = 590; goto _test_eof; _test_eof591: cs = 591; goto _test_eof; @@ -101834,44 +102741,44 @@ case 1491: _test_eof754: cs = 754; goto _test_eof; _test_eof755: cs = 755; goto _test_eof; _test_eof756: cs = 756; goto _test_eof; - _test_eof1518: cs = 1518; goto _test_eof; - _test_eof1519: cs = 1519; goto _test_eof; - _test_eof1520: cs = 1520; goto _test_eof; _test_eof757: cs = 757; goto _test_eof; _test_eof758: cs = 758; goto _test_eof; _test_eof759: cs = 759; goto _test_eof; _test_eof760: cs = 760; goto _test_eof; _test_eof761: cs = 761; goto _test_eof; - _test_eof1521: cs = 1521; goto _test_eof; _test_eof762: cs = 762; goto _test_eof; _test_eof763: cs = 763; goto _test_eof; _test_eof764: cs = 764; goto _test_eof; _test_eof765: cs = 765; goto _test_eof; - _test_eof1522: cs = 1522; goto _test_eof; - _test_eof1523: cs = 1523; goto _test_eof; - _test_eof1524: cs = 1524; goto _test_eof; _test_eof766: cs = 766; goto _test_eof; _test_eof767: cs = 767; goto _test_eof; - _test_eof1525: cs = 1525; goto _test_eof; _test_eof768: cs = 768; goto _test_eof; + _test_eof1530: cs = 1530; goto _test_eof; + _test_eof1531: cs = 1531; goto _test_eof; + _test_eof1532: cs = 1532; goto _test_eof; _test_eof769: cs = 769; goto _test_eof; _test_eof770: cs = 770; goto _test_eof; _test_eof771: cs = 771; goto _test_eof; _test_eof772: cs = 772; goto _test_eof; _test_eof773: cs = 773; goto _test_eof; - _test_eof1526: cs = 1526; goto _test_eof; + _test_eof1533: cs = 1533; goto _test_eof; _test_eof774: cs = 774; goto _test_eof; _test_eof775: cs = 775; goto _test_eof; _test_eof776: cs = 776; goto _test_eof; _test_eof777: cs = 777; goto _test_eof; + _test_eof1534: cs = 1534; goto _test_eof; + _test_eof1535: cs = 1535; goto _test_eof; + _test_eof1536: cs = 1536; goto _test_eof; _test_eof778: cs = 778; goto _test_eof; _test_eof779: cs = 779; goto _test_eof; + _test_eof1537: cs = 1537; goto _test_eof; _test_eof780: cs = 780; goto _test_eof; _test_eof781: cs = 781; goto _test_eof; _test_eof782: cs = 782; goto _test_eof; _test_eof783: cs = 783; goto _test_eof; _test_eof784: cs = 784; goto _test_eof; _test_eof785: cs = 785; goto _test_eof; + _test_eof1538: cs = 1538; goto _test_eof; _test_eof786: cs = 786; goto _test_eof; _test_eof787: cs = 787; goto _test_eof; _test_eof788: cs = 788; goto _test_eof; @@ -101920,8 +102827,6 @@ case 1491: _test_eof831: cs = 831; goto _test_eof; _test_eof832: cs = 832; goto _test_eof; _test_eof833: cs = 833; goto _test_eof; - _test_eof1527: cs = 1527; goto _test_eof; - _test_eof1528: cs = 1528; goto _test_eof; _test_eof834: cs = 834; goto _test_eof; _test_eof835: cs = 835; goto _test_eof; _test_eof836: cs = 836; goto _test_eof; @@ -101931,10 +102836,11 @@ case 1491: _test_eof840: cs = 840; goto _test_eof; _test_eof841: cs = 841; goto _test_eof; _test_eof842: cs = 842; goto _test_eof; - _test_eof1529: cs = 1529; goto _test_eof; _test_eof843: cs = 843; goto _test_eof; _test_eof844: cs = 844; goto _test_eof; _test_eof845: cs = 845; goto _test_eof; + _test_eof1539: cs = 1539; goto _test_eof; + _test_eof1540: cs = 1540; goto _test_eof; _test_eof846: cs = 846; goto _test_eof; _test_eof847: cs = 847; goto _test_eof; _test_eof848: cs = 848; goto _test_eof; @@ -101944,6 +102850,7 @@ case 1491: _test_eof852: cs = 852; goto _test_eof; _test_eof853: cs = 853; goto _test_eof; _test_eof854: cs = 854; goto _test_eof; + _test_eof1541: cs = 1541; goto _test_eof; _test_eof855: cs = 855; goto _test_eof; _test_eof856: cs = 856; goto _test_eof; _test_eof857: cs = 857; goto _test_eof; @@ -102027,7 +102934,6 @@ case 1491: _test_eof935: cs = 935; goto _test_eof; _test_eof936: cs = 936; goto _test_eof; _test_eof937: cs = 937; goto _test_eof; - _test_eof1530: cs = 1530; goto _test_eof; _test_eof938: cs = 938; goto _test_eof; _test_eof939: cs = 939; goto _test_eof; _test_eof940: cs = 940; goto _test_eof; @@ -102040,6 +102946,7 @@ case 1491: _test_eof947: cs = 947; goto _test_eof; _test_eof948: cs = 948; goto _test_eof; _test_eof949: cs = 949; goto _test_eof; + _test_eof1542: cs = 1542; goto _test_eof; _test_eof950: cs = 950; goto _test_eof; _test_eof951: cs = 951; goto _test_eof; _test_eof952: cs = 952; goto _test_eof; @@ -102132,7 +103039,6 @@ case 1491: _test_eof1039: cs = 1039; goto _test_eof; _test_eof1040: cs = 1040; goto _test_eof; _test_eof1041: cs = 1041; goto _test_eof; - _test_eof1531: cs = 1531; goto _test_eof; _test_eof1042: cs = 1042; goto _test_eof; _test_eof1043: cs = 1043; goto _test_eof; _test_eof1044: cs = 1044; goto _test_eof; @@ -102145,6 +103051,7 @@ case 1491: _test_eof1051: cs = 1051; goto _test_eof; _test_eof1052: cs = 1052; goto _test_eof; _test_eof1053: cs = 1053; goto _test_eof; + _test_eof1543: cs = 1543; goto _test_eof; _test_eof1054: cs = 1054; goto _test_eof; _test_eof1055: cs = 1055; goto _test_eof; _test_eof1056: cs = 1056; goto _test_eof; @@ -102174,7 +103081,6 @@ case 1491: _test_eof1080: cs = 1080; goto _test_eof; _test_eof1081: cs = 1081; goto _test_eof; _test_eof1082: cs = 1082; goto _test_eof; - _test_eof1532: cs = 1532; goto _test_eof; _test_eof1083: cs = 1083; goto _test_eof; _test_eof1084: cs = 1084; goto _test_eof; _test_eof1085: cs = 1085; goto _test_eof; @@ -102183,12 +103089,11 @@ case 1491: _test_eof1088: cs = 1088; goto _test_eof; _test_eof1089: cs = 1089; goto _test_eof; _test_eof1090: cs = 1090; goto _test_eof; - _test_eof1533: cs = 1533; goto _test_eof; _test_eof1091: cs = 1091; goto _test_eof; _test_eof1092: cs = 1092; goto _test_eof; - _test_eof1534: cs = 1534; goto _test_eof; _test_eof1093: cs = 1093; goto _test_eof; _test_eof1094: cs = 1094; goto _test_eof; + _test_eof1544: cs = 1544; goto _test_eof; _test_eof1095: cs = 1095; goto _test_eof; _test_eof1096: cs = 1096; goto _test_eof; _test_eof1097: cs = 1097; goto _test_eof; @@ -102197,11 +103102,12 @@ case 1491: _test_eof1100: cs = 1100; goto _test_eof; _test_eof1101: cs = 1101; goto _test_eof; _test_eof1102: cs = 1102; goto _test_eof; + _test_eof1545: cs = 1545; goto _test_eof; _test_eof1103: cs = 1103; goto _test_eof; _test_eof1104: cs = 1104; goto _test_eof; + _test_eof1546: cs = 1546; goto _test_eof; _test_eof1105: cs = 1105; goto _test_eof; _test_eof1106: cs = 1106; goto _test_eof; - _test_eof1535: cs = 1535; goto _test_eof; _test_eof1107: cs = 1107; goto _test_eof; _test_eof1108: cs = 1108; goto _test_eof; _test_eof1109: cs = 1109; goto _test_eof; @@ -102214,6 +103120,7 @@ case 1491: _test_eof1116: cs = 1116; goto _test_eof; _test_eof1117: cs = 1117; goto _test_eof; _test_eof1118: cs = 1118; goto _test_eof; + _test_eof1547: cs = 1547; goto _test_eof; _test_eof1119: cs = 1119; goto _test_eof; _test_eof1120: cs = 1120; goto _test_eof; _test_eof1121: cs = 1121; goto _test_eof; @@ -102224,42 +103131,42 @@ case 1491: _test_eof1126: cs = 1126; goto _test_eof; _test_eof1127: cs = 1127; goto _test_eof; _test_eof1128: cs = 1128; goto _test_eof; - _test_eof1536: cs = 1536; goto _test_eof; _test_eof1129: cs = 1129; goto _test_eof; _test_eof1130: cs = 1130; goto _test_eof; _test_eof1131: cs = 1131; goto _test_eof; _test_eof1132: cs = 1132; goto _test_eof; _test_eof1133: cs = 1133; goto _test_eof; - _test_eof1537: cs = 1537; goto _test_eof; _test_eof1134: cs = 1134; goto _test_eof; _test_eof1135: cs = 1135; goto _test_eof; _test_eof1136: cs = 1136; goto _test_eof; _test_eof1137: cs = 1137; goto _test_eof; _test_eof1138: cs = 1138; goto _test_eof; - _test_eof1538: cs = 1538; goto _test_eof; _test_eof1139: cs = 1139; goto _test_eof; _test_eof1140: cs = 1140; goto _test_eof; + _test_eof1548: cs = 1548; goto _test_eof; _test_eof1141: cs = 1141; goto _test_eof; _test_eof1142: cs = 1142; goto _test_eof; _test_eof1143: cs = 1143; goto _test_eof; - _test_eof1539: cs = 1539; goto _test_eof; - _test_eof1540: cs = 1540; goto _test_eof; - _test_eof1541: cs = 1541; goto _test_eof; _test_eof1144: cs = 1144; goto _test_eof; _test_eof1145: cs = 1145; goto _test_eof; - _test_eof1542: cs = 1542; goto _test_eof; + _test_eof1549: cs = 1549; goto _test_eof; _test_eof1146: cs = 1146; goto _test_eof; _test_eof1147: cs = 1147; goto _test_eof; _test_eof1148: cs = 1148; goto _test_eof; _test_eof1149: cs = 1149; goto _test_eof; _test_eof1150: cs = 1150; goto _test_eof; + _test_eof1550: cs = 1550; goto _test_eof; _test_eof1151: cs = 1151; goto _test_eof; _test_eof1152: cs = 1152; goto _test_eof; _test_eof1153: cs = 1153; goto _test_eof; _test_eof1154: cs = 1154; goto _test_eof; _test_eof1155: cs = 1155; goto _test_eof; + _test_eof1551: cs = 1551; goto _test_eof; + _test_eof1552: cs = 1552; goto _test_eof; + _test_eof1553: cs = 1553; goto _test_eof; _test_eof1156: cs = 1156; goto _test_eof; _test_eof1157: cs = 1157; goto _test_eof; + _test_eof1554: cs = 1554; goto _test_eof; _test_eof1158: cs = 1158; goto _test_eof; _test_eof1159: cs = 1159; goto _test_eof; _test_eof1160: cs = 1160; goto _test_eof; @@ -102275,38 +103182,38 @@ case 1491: _test_eof1170: cs = 1170; goto _test_eof; _test_eof1171: cs = 1171; goto _test_eof; _test_eof1172: cs = 1172; goto _test_eof; - _test_eof1543: cs = 1543; goto _test_eof; - _test_eof1544: cs = 1544; goto _test_eof; - _test_eof1545: cs = 1545; goto _test_eof; _test_eof1173: cs = 1173; goto _test_eof; _test_eof1174: cs = 1174; goto _test_eof; _test_eof1175: cs = 1175; goto _test_eof; - _test_eof1546: cs = 1546; goto _test_eof; - _test_eof1547: cs = 1547; goto _test_eof; _test_eof1176: cs = 1176; goto _test_eof; _test_eof1177: cs = 1177; goto _test_eof; _test_eof1178: cs = 1178; goto _test_eof; _test_eof1179: cs = 1179; goto _test_eof; - _test_eof1548: cs = 1548; goto _test_eof; - _test_eof1549: cs = 1549; goto _test_eof; _test_eof1180: cs = 1180; goto _test_eof; _test_eof1181: cs = 1181; goto _test_eof; _test_eof1182: cs = 1182; goto _test_eof; _test_eof1183: cs = 1183; goto _test_eof; - _test_eof1550: cs = 1550; goto _test_eof; - _test_eof1551: cs = 1551; goto _test_eof; _test_eof1184: cs = 1184; goto _test_eof; + _test_eof1555: cs = 1555; goto _test_eof; + _test_eof1556: cs = 1556; goto _test_eof; + _test_eof1557: cs = 1557; goto _test_eof; _test_eof1185: cs = 1185; goto _test_eof; _test_eof1186: cs = 1186; goto _test_eof; _test_eof1187: cs = 1187; goto _test_eof; + _test_eof1558: cs = 1558; goto _test_eof; + _test_eof1559: cs = 1559; goto _test_eof; _test_eof1188: cs = 1188; goto _test_eof; _test_eof1189: cs = 1189; goto _test_eof; _test_eof1190: cs = 1190; goto _test_eof; _test_eof1191: cs = 1191; goto _test_eof; + _test_eof1560: cs = 1560; goto _test_eof; + _test_eof1561: cs = 1561; goto _test_eof; _test_eof1192: cs = 1192; goto _test_eof; _test_eof1193: cs = 1193; goto _test_eof; _test_eof1194: cs = 1194; goto _test_eof; _test_eof1195: cs = 1195; goto _test_eof; + _test_eof1562: cs = 1562; goto _test_eof; + _test_eof1563: cs = 1563; goto _test_eof; _test_eof1196: cs = 1196; goto _test_eof; _test_eof1197: cs = 1197; goto _test_eof; _test_eof1198: cs = 1198; goto _test_eof; @@ -102320,7 +103227,6 @@ case 1491: _test_eof1206: cs = 1206; goto _test_eof; _test_eof1207: cs = 1207; goto _test_eof; _test_eof1208: cs = 1208; goto _test_eof; - _test_eof1552: cs = 1552; goto _test_eof; _test_eof1209: cs = 1209; goto _test_eof; _test_eof1210: cs = 1210; goto _test_eof; _test_eof1211: cs = 1211; goto _test_eof; @@ -102333,10 +103239,10 @@ case 1491: _test_eof1218: cs = 1218; goto _test_eof; _test_eof1219: cs = 1219; goto _test_eof; _test_eof1220: cs = 1220; goto _test_eof; + _test_eof1564: cs = 1564; goto _test_eof; _test_eof1221: cs = 1221; goto _test_eof; _test_eof1222: cs = 1222; goto _test_eof; _test_eof1223: cs = 1223; goto _test_eof; - _test_eof1553: cs = 1553; goto _test_eof; _test_eof1224: cs = 1224; goto _test_eof; _test_eof1225: cs = 1225; goto _test_eof; _test_eof1226: cs = 1226; goto _test_eof; @@ -102349,8 +103255,8 @@ case 1491: _test_eof1233: cs = 1233; goto _test_eof; _test_eof1234: cs = 1234; goto _test_eof; _test_eof1235: cs = 1235; goto _test_eof; + _test_eof1565: cs = 1565; goto _test_eof; _test_eof1236: cs = 1236; goto _test_eof; - _test_eof1554: cs = 1554; goto _test_eof; _test_eof1237: cs = 1237; goto _test_eof; _test_eof1238: cs = 1238; goto _test_eof; _test_eof1239: cs = 1239; goto _test_eof; @@ -102362,12 +103268,10 @@ case 1491: _test_eof1245: cs = 1245; goto _test_eof; _test_eof1246: cs = 1246; goto _test_eof; _test_eof1247: cs = 1247; goto _test_eof; - _test_eof1555: cs = 1555; goto _test_eof; - _test_eof1556: cs = 1556; goto _test_eof; _test_eof1248: cs = 1248; goto _test_eof; + _test_eof1566: cs = 1566; goto _test_eof; _test_eof1249: cs = 1249; goto _test_eof; _test_eof1250: cs = 1250; goto _test_eof; - _test_eof1557: cs = 1557; goto _test_eof; _test_eof1251: cs = 1251; goto _test_eof; _test_eof1252: cs = 1252; goto _test_eof; _test_eof1253: cs = 1253; goto _test_eof; @@ -102377,12 +103281,12 @@ case 1491: _test_eof1257: cs = 1257; goto _test_eof; _test_eof1258: cs = 1258; goto _test_eof; _test_eof1259: cs = 1259; goto _test_eof; + _test_eof1567: cs = 1567; goto _test_eof; + _test_eof1568: cs = 1568; goto _test_eof; _test_eof1260: cs = 1260; goto _test_eof; - _test_eof1558: cs = 1558; goto _test_eof; - _test_eof1559: cs = 1559; goto _test_eof; - _test_eof1560: cs = 1560; goto _test_eof; _test_eof1261: cs = 1261; goto _test_eof; _test_eof1262: cs = 1262; goto _test_eof; + _test_eof1569: cs = 1569; goto _test_eof; _test_eof1263: cs = 1263; goto _test_eof; _test_eof1264: cs = 1264; goto _test_eof; _test_eof1265: cs = 1265; goto _test_eof; @@ -102392,10 +103296,10 @@ case 1491: _test_eof1269: cs = 1269; goto _test_eof; _test_eof1270: cs = 1270; goto _test_eof; _test_eof1271: cs = 1271; goto _test_eof; - _test_eof1561: cs = 1561; goto _test_eof; - _test_eof1562: cs = 1562; goto _test_eof; - _test_eof1563: cs = 1563; goto _test_eof; _test_eof1272: cs = 1272; goto _test_eof; + _test_eof1570: cs = 1570; goto _test_eof; + _test_eof1571: cs = 1571; goto _test_eof; + _test_eof1572: cs = 1572; goto _test_eof; _test_eof1273: cs = 1273; goto _test_eof; _test_eof1274: cs = 1274; goto _test_eof; _test_eof1275: cs = 1275; goto _test_eof; @@ -102407,18 +103311,14 @@ case 1491: _test_eof1281: cs = 1281; goto _test_eof; _test_eof1282: cs = 1282; goto _test_eof; _test_eof1283: cs = 1283; goto _test_eof; - _test_eof1564: cs = 1564; goto _test_eof; + _test_eof1573: cs = 1573; goto _test_eof; + _test_eof1574: cs = 1574; goto _test_eof; + _test_eof1575: cs = 1575; goto _test_eof; _test_eof1284: cs = 1284; goto _test_eof; _test_eof1285: cs = 1285; goto _test_eof; _test_eof1286: cs = 1286; goto _test_eof; - _test_eof1565: cs = 1565; goto _test_eof; - _test_eof1566: cs = 1566; goto _test_eof; _test_eof1287: cs = 1287; goto _test_eof; - _test_eof1567: cs = 1567; goto _test_eof; - _test_eof1568: cs = 1568; goto _test_eof; _test_eof1288: cs = 1288; goto _test_eof; - _test_eof1569: cs = 1569; goto _test_eof; - _test_eof1570: cs = 1570; goto _test_eof; _test_eof1289: cs = 1289; goto _test_eof; _test_eof1290: cs = 1290; goto _test_eof; _test_eof1291: cs = 1291; goto _test_eof; @@ -102426,11 +103326,18 @@ case 1491: _test_eof1293: cs = 1293; goto _test_eof; _test_eof1294: cs = 1294; goto _test_eof; _test_eof1295: cs = 1295; goto _test_eof; + _test_eof1576: cs = 1576; goto _test_eof; _test_eof1296: cs = 1296; goto _test_eof; _test_eof1297: cs = 1297; goto _test_eof; _test_eof1298: cs = 1298; goto _test_eof; + _test_eof1577: cs = 1577; goto _test_eof; + _test_eof1578: cs = 1578; goto _test_eof; _test_eof1299: cs = 1299; goto _test_eof; + _test_eof1579: cs = 1579; goto _test_eof; + _test_eof1580: cs = 1580; goto _test_eof; _test_eof1300: cs = 1300; goto _test_eof; + _test_eof1581: cs = 1581; goto _test_eof; + _test_eof1582: cs = 1582; goto _test_eof; _test_eof1301: cs = 1301; goto _test_eof; _test_eof1302: cs = 1302; goto _test_eof; _test_eof1303: cs = 1303; goto _test_eof; @@ -102461,7 +103368,6 @@ case 1491: _test_eof1328: cs = 1328; goto _test_eof; _test_eof1329: cs = 1329; goto _test_eof; _test_eof1330: cs = 1330; goto _test_eof; - _test_eof1571: cs = 1571; goto _test_eof; _test_eof1331: cs = 1331; goto _test_eof; _test_eof1332: cs = 1332; goto _test_eof; _test_eof1333: cs = 1333; goto _test_eof; @@ -102473,8 +103379,8 @@ case 1491: _test_eof1339: cs = 1339; goto _test_eof; _test_eof1340: cs = 1340; goto _test_eof; _test_eof1341: cs = 1341; goto _test_eof; - _test_eof1572: cs = 1572; goto _test_eof; _test_eof1342: cs = 1342; goto _test_eof; + _test_eof1583: cs = 1583; goto _test_eof; _test_eof1343: cs = 1343; goto _test_eof; _test_eof1344: cs = 1344; goto _test_eof; _test_eof1345: cs = 1345; goto _test_eof; @@ -102482,13 +103388,12 @@ case 1491: _test_eof1347: cs = 1347; goto _test_eof; _test_eof1348: cs = 1348; goto _test_eof; _test_eof1349: cs = 1349; goto _test_eof; - _test_eof1573: cs = 1573; goto _test_eof; _test_eof1350: cs = 1350; goto _test_eof; _test_eof1351: cs = 1351; goto _test_eof; _test_eof1352: cs = 1352; goto _test_eof; _test_eof1353: cs = 1353; goto _test_eof; + _test_eof1584: cs = 1584; goto _test_eof; _test_eof1354: cs = 1354; goto _test_eof; - _test_eof1574: cs = 1574; goto _test_eof; _test_eof1355: cs = 1355; goto _test_eof; _test_eof1356: cs = 1356; goto _test_eof; _test_eof1357: cs = 1357; goto _test_eof; @@ -102496,18 +103401,19 @@ case 1491: _test_eof1359: cs = 1359; goto _test_eof; _test_eof1360: cs = 1360; goto _test_eof; _test_eof1361: cs = 1361; goto _test_eof; + _test_eof1585: cs = 1585; goto _test_eof; _test_eof1362: cs = 1362; goto _test_eof; _test_eof1363: cs = 1363; goto _test_eof; _test_eof1364: cs = 1364; goto _test_eof; _test_eof1365: cs = 1365; goto _test_eof; _test_eof1366: cs = 1366; goto _test_eof; + _test_eof1586: cs = 1586; goto _test_eof; _test_eof1367: cs = 1367; goto _test_eof; _test_eof1368: cs = 1368; goto _test_eof; _test_eof1369: cs = 1369; goto _test_eof; _test_eof1370: cs = 1370; goto _test_eof; _test_eof1371: cs = 1371; goto _test_eof; _test_eof1372: cs = 1372; goto _test_eof; - _test_eof1575: cs = 1575; goto _test_eof; _test_eof1373: cs = 1373; goto _test_eof; _test_eof1374: cs = 1374; goto _test_eof; _test_eof1375: cs = 1375; goto _test_eof; @@ -102520,6 +103426,7 @@ case 1491: _test_eof1382: cs = 1382; goto _test_eof; _test_eof1383: cs = 1383; goto _test_eof; _test_eof1384: cs = 1384; goto _test_eof; + _test_eof1587: cs = 1587; goto _test_eof; _test_eof1385: cs = 1385; goto _test_eof; _test_eof1386: cs = 1386; goto _test_eof; _test_eof1387: cs = 1387; goto _test_eof; @@ -102527,7 +103434,6 @@ case 1491: _test_eof1389: cs = 1389; goto _test_eof; _test_eof1390: cs = 1390; goto _test_eof; _test_eof1391: cs = 1391; goto _test_eof; - _test_eof1576: cs = 1576; goto _test_eof; _test_eof1392: cs = 1392; goto _test_eof; _test_eof1393: cs = 1393; goto _test_eof; _test_eof1394: cs = 1394; goto _test_eof; @@ -102540,12 +103446,10 @@ case 1491: _test_eof1401: cs = 1401; goto _test_eof; _test_eof1402: cs = 1402; goto _test_eof; _test_eof1403: cs = 1403; goto _test_eof; + _test_eof1588: cs = 1588; goto _test_eof; _test_eof1404: cs = 1404; goto _test_eof; _test_eof1405: cs = 1405; goto _test_eof; _test_eof1406: cs = 1406; goto _test_eof; - _test_eof1577: cs = 1577; goto _test_eof; - _test_eof1578: cs = 1578; goto _test_eof; - _test_eof1579: cs = 1579; goto _test_eof; _test_eof1407: cs = 1407; goto _test_eof; _test_eof1408: cs = 1408; goto _test_eof; _test_eof1409: cs = 1409; goto _test_eof; @@ -102554,11 +103458,13 @@ case 1491: _test_eof1412: cs = 1412; goto _test_eof; _test_eof1413: cs = 1413; goto _test_eof; _test_eof1414: cs = 1414; goto _test_eof; - _test_eof1580: cs = 1580; goto _test_eof; _test_eof1415: cs = 1415; goto _test_eof; _test_eof1416: cs = 1416; goto _test_eof; _test_eof1417: cs = 1417; goto _test_eof; _test_eof1418: cs = 1418; goto _test_eof; + _test_eof1589: cs = 1589; goto _test_eof; + _test_eof1590: cs = 1590; goto _test_eof; + _test_eof1591: cs = 1591; goto _test_eof; _test_eof1419: cs = 1419; goto _test_eof; _test_eof1420: cs = 1420; goto _test_eof; _test_eof1421: cs = 1421; goto _test_eof; @@ -102566,22 +103472,22 @@ case 1491: _test_eof1423: cs = 1423; goto _test_eof; _test_eof1424: cs = 1424; goto _test_eof; _test_eof1425: cs = 1425; goto _test_eof; - _test_eof1581: cs = 1581; goto _test_eof; - _test_eof1582: cs = 1582; goto _test_eof; - _test_eof1583: cs = 1583; goto _test_eof; _test_eof1426: cs = 1426; goto _test_eof; + _test_eof1592: cs = 1592; goto _test_eof; _test_eof1427: cs = 1427; goto _test_eof; _test_eof1428: cs = 1428; goto _test_eof; _test_eof1429: cs = 1429; goto _test_eof; _test_eof1430: cs = 1430; goto _test_eof; _test_eof1431: cs = 1431; goto _test_eof; _test_eof1432: cs = 1432; goto _test_eof; - _test_eof1584: cs = 1584; goto _test_eof; _test_eof1433: cs = 1433; goto _test_eof; _test_eof1434: cs = 1434; goto _test_eof; _test_eof1435: cs = 1435; goto _test_eof; _test_eof1436: cs = 1436; goto _test_eof; _test_eof1437: cs = 1437; goto _test_eof; + _test_eof1593: cs = 1593; goto _test_eof; + _test_eof1594: cs = 1594; goto _test_eof; + _test_eof1595: cs = 1595; goto _test_eof; _test_eof1438: cs = 1438; goto _test_eof; _test_eof1439: cs = 1439; goto _test_eof; _test_eof1440: cs = 1440; goto _test_eof; @@ -102589,8 +103495,8 @@ case 1491: _test_eof1442: cs = 1442; goto _test_eof; _test_eof1443: cs = 1443; goto _test_eof; _test_eof1444: cs = 1444; goto _test_eof; + _test_eof1596: cs = 1596; goto _test_eof; _test_eof1445: cs = 1445; goto _test_eof; - _test_eof1585: cs = 1585; goto _test_eof; _test_eof1446: cs = 1446; goto _test_eof; _test_eof1447: cs = 1447; goto _test_eof; _test_eof1448: cs = 1448; goto _test_eof; @@ -102598,51 +103504,64 @@ case 1491: _test_eof1450: cs = 1450; goto _test_eof; _test_eof1451: cs = 1451; goto _test_eof; _test_eof1452: cs = 1452; goto _test_eof; - _test_eof1586: cs = 1586; goto _test_eof; _test_eof1453: cs = 1453; goto _test_eof; _test_eof1454: cs = 1454; goto _test_eof; _test_eof1455: cs = 1455; goto _test_eof; _test_eof1456: cs = 1456; goto _test_eof; _test_eof1457: cs = 1457; goto _test_eof; + _test_eof1597: cs = 1597; goto _test_eof; _test_eof1458: cs = 1458; goto _test_eof; - _test_eof1587: cs = 1587; goto _test_eof; _test_eof1459: cs = 1459; goto _test_eof; _test_eof1460: cs = 1460; goto _test_eof; _test_eof1461: cs = 1461; goto _test_eof; _test_eof1462: cs = 1462; goto _test_eof; _test_eof1463: cs = 1463; goto _test_eof; _test_eof1464: cs = 1464; goto _test_eof; - _test_eof1588: cs = 1588; goto _test_eof; + _test_eof1598: cs = 1598; goto _test_eof; _test_eof1465: cs = 1465; goto _test_eof; _test_eof1466: cs = 1466; goto _test_eof; _test_eof1467: cs = 1467; goto _test_eof; _test_eof1468: cs = 1468; goto _test_eof; _test_eof1469: cs = 1469; goto _test_eof; _test_eof1470: cs = 1470; goto _test_eof; + _test_eof1599: cs = 1599; goto _test_eof; _test_eof1471: cs = 1471; goto _test_eof; _test_eof1472: cs = 1472; goto _test_eof; - _test_eof1589: cs = 1589; goto _test_eof; _test_eof1473: cs = 1473; goto _test_eof; _test_eof1474: cs = 1474; goto _test_eof; _test_eof1475: cs = 1475; goto _test_eof; _test_eof1476: cs = 1476; goto _test_eof; + _test_eof1600: cs = 1600; goto _test_eof; _test_eof1477: cs = 1477; goto _test_eof; _test_eof1478: cs = 1478; goto _test_eof; _test_eof1479: cs = 1479; goto _test_eof; - _test_eof1590: cs = 1590; goto _test_eof; _test_eof1480: cs = 1480; goto _test_eof; _test_eof1481: cs = 1481; goto _test_eof; _test_eof1482: cs = 1482; goto _test_eof; _test_eof1483: cs = 1483; goto _test_eof; _test_eof1484: cs = 1484; goto _test_eof; + _test_eof1601: cs = 1601; goto _test_eof; _test_eof1485: cs = 1485; goto _test_eof; _test_eof1486: cs = 1486; goto _test_eof; _test_eof1487: cs = 1487; goto _test_eof; _test_eof1488: cs = 1488; goto _test_eof; - _test_eof1591: cs = 1591; goto _test_eof; _test_eof1489: cs = 1489; goto _test_eof; _test_eof1490: cs = 1490; goto _test_eof; _test_eof1491: cs = 1491; goto _test_eof; + _test_eof1602: cs = 1602; goto _test_eof; + _test_eof1492: cs = 1492; goto _test_eof; + _test_eof1493: cs = 1493; goto _test_eof; + _test_eof1494: cs = 1494; goto _test_eof; + _test_eof1495: cs = 1495; goto _test_eof; + _test_eof1496: cs = 1496; goto _test_eof; + _test_eof1497: cs = 1497; goto _test_eof; + _test_eof1498: cs = 1498; goto _test_eof; + _test_eof1499: cs = 1499; goto _test_eof; + _test_eof1500: cs = 1500; goto _test_eof; + _test_eof1603: cs = 1603; goto _test_eof; + _test_eof1501: cs = 1501; goto _test_eof; + _test_eof1502: cs = 1502; goto _test_eof; + _test_eof1503: cs = 1503; goto _test_eof; _test_eof: {} if ( p == eof ) @@ -102654,28 +103573,28 @@ case 1491: case 222: case 224: case 280: - case 294: - case 320: - case 376: - case 377: - case 383: + case 298: + case 324: + case 380: + case 381: + case 387: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 327: - case 328: - case 329: - case 334: - case 335: + case 331: + case 332: + case 333: + case 338: + case 339: { WARN(ZS_BAD_DNAME_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 207: @@ -102683,56 +103602,56 @@ goto st325;} s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 344: + case 348: { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 349: - case 357: + case 353: + case 361: { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 358: - case 359: - case 360: - case 369: + case 362: + case 363: + case 364: + case 373: { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 371: + case 375: { ERR(ZS_BAD_INCLUDE_FILENAME); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 374: - case 384: + case 378: + case 388: { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1496: + case 1508: { NOERR; } @@ -102757,28 +103676,24 @@ goto st325;} { ERR(ZS_BAD_DIRECTIVE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 387: - case 388: - case 389: - case 390: case 391: case 392: case 393: + case 394: + case 395: + case 396: + case 397: { WARN(ZS_BAD_BASE64_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 394: - case 395: - case 396: - case 397: case 398: case 399: case 400: @@ -102935,14 +103850,14 @@ goto st325;} case 551: case 552: case 553: + case 554: + case 555: case 556: case 557: case 558: case 559: case 560: case 561: - case 562: - case 563: case 564: case 565: case 566: @@ -102950,13 +103865,6 @@ goto st325;} case 568: case 569: case 570: - { - WARN(ZS_UNSUPPORTED_TYPE); - p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} - } - break; case 571: case 572: case 573: @@ -102965,6 +103873,13 @@ goto st325;} case 576: case 577: case 578: + { + WARN(ZS_UNSUPPORTED_TYPE); + p--; { if ( p == pe ) + goto _test_eof329; +goto st329;} + } + break; case 579: case 580: case 581: @@ -103136,38 +104051,38 @@ goto st325;} case 747: case 748: case 749: + case 750: + case 751: + case 752: + case 753: + case 754: + case 755: + case 756: + case 757: + case 758: + case 759: + case 760: + case 761: { WARN(ZS_BAD_BITMAP); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 750: - case 757: - case 758: - case 759: - case 766: - case 768: + case 762: + case 769: + case 770: + case 771: + case 778: + case 780: { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 825: - case 826: - case 827: - case 828: - case 829: - case 830: - case 831: - case 832: - case 833: - case 834: - case 835: - case 836: case 837: case 838: case 839: @@ -103200,25 +104115,25 @@ goto st325;} case 866: case 867: case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: case 875: case 876: case 877: case 878: case 879: - case 886: + case 880: case 887: + case 888: + case 889: case 890: case 891: - case 892: - case 893: - case 894: - case 895: - case 896: - case 897: case 898: case 899: - case 900: - case 901: case 902: case 903: case 904: @@ -103247,27 +104162,27 @@ goto st325;} case 927: case 928: case 929: + case 930: + case 931: + case 932: + case 933: case 934: case 935: + case 936: + case 937: + case 938: + case 939: + case 940: + case 941: + case 946: + case 947: { WARN(ZS_BAD_SVCB_PARAM); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 769: - case 770: - case 771: - case 772: - case 773: - case 774: - case 775: - case 776: - case 777: - case 778: - case 779: - case 780: case 781: case 782: case 783: @@ -103286,6 +104201,8 @@ goto st325;} case 796: case 797: case 798: + case 799: + case 800: case 801: case 802: case 803: @@ -103296,8 +104213,6 @@ goto st325;} case 808: case 809: case 810: - case 811: - case 812: case 813: case 814: case 815: @@ -103310,25 +104225,25 @@ goto st325;} case 822: case 823: case 824: + case 825: + case 826: + case 827: + case 828: + case 829: + case 830: + case 831: + case 832: + case 833: + case 834: + case 835: + case 836: { WARN(ZS_BAD_SVCB_MANDATORY); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 936: - case 937: - case 938: - case 939: - case 940: - case 941: - case 942: - case 943: - case 944: - case 945: - case 946: - case 947: case 948: case 949: case 950: @@ -103421,13 +104336,6 @@ goto st325;} case 1037: case 1038: case 1039: - { - WARN(ZS_BAD_ALGORITHM); - p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} - } - break; case 1040: case 1041: case 1042: @@ -103440,6 +104348,13 @@ goto st325;} case 1049: case 1050: case 1051: + { + WARN(ZS_BAD_ALGORITHM); + p--; { if ( p == pe ) + goto _test_eof329; +goto st329;} + } + break; case 1052: case 1053: case 1054: @@ -103469,13 +104384,6 @@ goto st325;} case 1078: case 1079: case 1080: - { - WARN(ZS_BAD_CERT_TYPE); - p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} - } - break; case 1081: case 1082: case 1083: @@ -103484,62 +104392,71 @@ goto st325;} case 1086: case 1087: case 1088: + case 1089: + case 1090: + case 1091: + case 1092: { - WARN(ZS_BAD_DSYNC_SCHEME); + WARN(ZS_BAD_CERT_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 5: - case 9: - case 10: - case 299: - case 1091: - case 1092: case 1093: case 1094: case 1095: case 1096: - case 1110: - case 1114: - case 1118: + case 1097: + case 1098: + case 1099: + case 1100: + { + WARN(ZS_BAD_DSYNC_SCHEME); + p--; { if ( p == pe ) + goto _test_eof329; +goto st329;} + } + break; + case 5: + case 9: + case 10: + case 303: + case 1103: + case 1104: + case 1105: + case 1106: + case 1107: + case 1108: case 1122: - case 1123: - case 1124: - case 1125: case 1126: - case 1127: - case 1128: - case 1129: case 1130: - case 1131: - case 1132: - case 1133: case 1134: + case 1135: + case 1136: case 1137: case 1138: case 1139: - case 1207: - case 1208: - case 1209: - case 1210: - case 1211: - case 1216: - case 1217: - case 1218: + case 1140: + case 1141: + case 1142: + case 1143: + case 1144: + case 1145: + case 1146: + case 1149: + case 1150: + case 1151: case 1219: case 1220: case 1221: case 1222: case 1223: - case 1224: - case 1225: - case 1226: - case 1227: case 1228: case 1229: case 1230: + case 1231: + case 1232: case 1233: case 1234: case 1235: @@ -103547,34 +104464,36 @@ goto st325;} case 1237: case 1238: case 1239: + case 1240: + case 1241: + case 1242: + case 1245: + case 1246: case 1247: - case 1253: - case 1254: - case 1261: - case 1262: - case 1263: - case 1272: + case 1248: + case 1249: + case 1250: + case 1251: + case 1259: + case 1265: + case 1266: case 1273: - case 1312: - case 1313: - case 1314: - case 1315: - case 1316: + case 1274: + case 1275: + case 1284: + case 1285: + case 1324: + case 1325: + case 1326: case 1327: case 1328: - case 1329: - case 1330: - case 1331: - case 1332: - case 1333: - case 1334: - case 1335: - case 1336: - case 1337: - case 1338: case 1339: case 1340: case 1341: + case 1342: + case 1343: + case 1344: + case 1345: case 1346: case 1347: case 1348: @@ -103583,53 +104502,61 @@ goto st325;} case 1351: case 1352: case 1353: - case 1354: - case 1372: - case 1378: - case 1381: - case 1382: - case 1383: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: + case 1364: + case 1365: + case 1366: + case 1384: + case 1390: + case 1393: case 1394: case 1395: - case 1396: + case 1406: case 1407: case 1408: - case 1409: - case 1414: - case 1415: + case 1419: + case 1420: + case 1421: case 1426: case 1427: - case 1428: - case 1433: - case 1446: - case 1463: - case 1464: - case 1465: - case 1466: - case 1469: - case 1470: - case 1471: - case 1472: - case 1473: - case 1474: + case 1438: + case 1439: + case 1440: + case 1445: + case 1458: + case 1475: + case 1476: case 1477: case 1478: - case 1479: - case 1480: case 1481: case 1482: case 1483: case 1484: - case 1487: - case 1488: + case 1485: + case 1486: case 1489: case 1490: case 1491: + case 1492: + case 1493: + case 1494: + case 1495: + case 1496: + case 1499: + case 1500: + case 1501: + case 1502: + case 1503: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 3: @@ -103765,94 +104692,97 @@ goto st325;} case 287: case 288: case 290: + case 291: + case 292: + case 294: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 352: - case 353: + case 356: + case 357: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 361: - case 362: - case 363: - case 368: + case 365: + case 366: + case 367: + case 372: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 330: - case 331: - case 332: - case 333: + case 334: + case 335: + case 336: + case 337: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_DNAME_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 364: - case 365: - case 366: - case 367: + case 368: + case 369: + case 370: + case 371: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 378: - case 379: - case 380: - case 381: + case 382: + case 383: + case 384: + case 385: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 277: @@ -103860,20 +104790,16 @@ goto st325;} s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 303: - case 304: - case 305: - case 306: case 307: case 308: case 309: @@ -103887,195 +104813,199 @@ goto st325;} case 317: case 318: case 319: + case 320: + case 321: case 322: + case 323: + case 326: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 350: + case 354: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 554: - case 555: + case 562: + case 563: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 751: - case 752: - case 760: - case 761: - case 767: + case 763: + case 764: + case 772: + case 773: + case 779: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 888: - case 889: - case 930: - case 931: - case 932: - case 933: + case 900: + case 901: + case 942: + case 943: + case 944: + case 945: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_SVCB_PARAM); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 799: - case 800: + case 811: + case 812: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_SVCB_MANDATORY); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1097: - case 1098: - case 1099: - case 1101: - case 1103: - case 1105: - case 1135: - case 1136: - case 1201: - case 1202: - case 1203: - case 1204: - case 1205: - case 1206: - case 1212: + case 1109: + case 1110: + case 1111: + case 1113: + case 1115: + case 1117: + case 1147: + case 1148: case 1213: case 1214: case 1215: - case 1231: - case 1232: - case 1251: - case 1252: - case 1255: - case 1256: + case 1216: + case 1217: + case 1218: + case 1224: + case 1225: + case 1226: + case 1227: + case 1243: + case 1244: + case 1263: case 1264: - case 1265: - case 1266: case 1267: - case 1274: - case 1275: - case 1317: - case 1318: - case 1319: - case 1320: - case 1325: - case 1326: - case 1342: - case 1343: - case 1344: - case 1345: + case 1268: + case 1276: + case 1277: + case 1278: + case 1279: + case 1286: + case 1287: + case 1329: + case 1330: + case 1331: + case 1332: + case 1337: + case 1338: + case 1354: case 1355: case 1356: case 1357: - case 1358: - case 1359: - case 1360: - case 1384: - case 1385: - case 1386: - case 1387: - case 1388: - case 1389: + case 1367: + case 1368: + case 1369: + case 1370: + case 1371: + case 1372: + case 1396: case 1397: case 1398: case 1399: case 1400: case 1401: - case 1402: + case 1409: case 1410: case 1411: case 1412: case 1413: - case 1416: - case 1417: - case 1418: - case 1419: - case 1420: - case 1421: + case 1414: + case 1422: + case 1423: + case 1424: + case 1425: + case 1428: case 1429: case 1430: - case 1434: - case 1435: - case 1459: - case 1460: - case 1461: - case 1462: - case 1467: - case 1468: - case 1475: - case 1476: - case 1485: - case 1486: + case 1431: + case 1432: + case 1433: + case 1441: + case 1442: + case 1446: + case 1447: + case 1471: + case 1472: + case 1473: + case 1474: + case 1479: + case 1480: + case 1487: + case 1488: + case 1497: + case 1498: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 171: @@ -104085,297 +105015,285 @@ goto st325;} { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1321: - case 1322: - case 1323: - case 1324: + case 1333: + case 1334: + case 1335: + case 1336: { WARN(ZS_BAD_TIMESTAMP_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 336: - case 337: - case 342: - case 343: + case 340: + case 341: + case 346: + case 347: { WARN(ZS_BAD_TEXT_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1140: - case 1141: - case 1142: - case 1143: + case 1152: + case 1153: + case 1154: + case 1155: { s->long_string = false; } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 372: + case 376: { ERR(ZS_BAD_INCLUDE_FILENAME); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 373: - case 375: - case 382: + case 377: + case 379: + case 386: { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 869: - case 870: - case 871: - case 872: - case 873: - case 874: - case 880: case 881: case 882: case 883: case 884: case 885: + case 886: + case 892: + case 893: + case 894: + case 895: + case 896: + case 897: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_SVCB_PARAM); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1089: - case 1090: - case 1144: - case 1145: - case 1431: - case 1432: + case 1101: + case 1102: + case 1156: + case 1157: + case 1443: + case 1444: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1240: - case 1241: - case 1242: - case 1245: - case 1246: - case 1248: + case 1252: + case 1253: + case 1254: + case 1257: + case 1258: + case 1260: { WARN(ZS_BAD_APL); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1257: - case 1258: - case 1259: - case 1260: - case 1268: case 1269: case 1270: case 1271: - case 1361: - case 1362: - case 1379: - case 1380: - case 1390: + case 1272: + case 1280: + case 1281: + case 1282: + case 1283: + case 1373: + case 1374: case 1391: case 1392: - case 1393: + case 1402: case 1403: case 1404: case 1405: - case 1406: - case 1422: - case 1423: - case 1424: - case 1425: + case 1415: + case 1416: + case 1417: + case 1418: + case 1434: + case 1435: case 1436: case 1437: - case 1438: - case 1439: - case 1441: - case 1442: - case 1443: - case 1444: - case 1447: case 1448: + case 1449: case 1450: case 1451: case 1453: case 1454: + case 1455: case 1456: - case 1457: + case 1459: + case 1460: + case 1462: + case 1463: + case 1465: + case 1466: + case 1468: + case 1469: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1363: - case 1364: - case 1365: - case 1366: - case 1367: - case 1368: - case 1369: - case 1370: - case 1371: - case 1373: - case 1374: case 1375: case 1376: case 1377: + case 1378: + case 1379: + case 1380: + case 1381: + case 1382: + case 1383: + case 1385: + case 1386: + case 1387: + case 1388: + case 1389: { WARN(ZS_BAD_BASE32HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1276: - case 1277: - case 1280: + case 1288: case 1289: - case 1290: - case 1291: - case 1296: - case 1297: - case 1298: + case 1292: + case 1301: + case 1302: case 1303: - case 1304: - case 1305: case 1308: + case 1309: case 1310: - case 1311: + case 1315: + case 1316: + case 1317: + case 1320: + case 1322: + case 1323: { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1282: - case 1283: - case 1284: - case 1285: - case 1286: - case 1287: - case 1288: + case 1294: + case 1295: + case 1296: + case 1297: + case 1298: + case 1299: + case 1300: { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1146: - case 1147: - case 1148: - case 1149: - case 1150: - case 1151: - case 1152: - case 1153: - case 1154: - case 1155: - case 1156: - case 1157: case 1158: case 1159: case 1160: @@ -104419,17 +105337,29 @@ goto st325;} case 1198: case 1199: case 1200: + case 1201: + case 1202: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: { WARN(ZS_BAD_LOC_DATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 6: @@ -104444,42 +105374,42 @@ goto st325;} case 279: case 281: case 282: - case 292: - case 293: - case 295: case 296: case 297: - case 298: + case 299: + case 300: case 301: case 302: + case 305: + case 306: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 16: case 257: - case 321: - case 323: + case 325: + case 327: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 4: @@ -104532,18 +105462,19 @@ goto st325;} case 187: case 285: case 289: - case 291: + case 293: + case 295: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 254: @@ -104551,20 +105482,20 @@ goto st325;} s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 217: @@ -104572,47 +105503,47 @@ goto st325;} s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1278: - case 1279: - case 1292: - case 1293: - case 1299: - case 1300: - case 1306: - case 1307: + case 1290: + case 1291: + case 1304: + case 1305: + case 1311: + case 1312: + case 1318: + case 1319: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 1: @@ -104622,20 +105553,20 @@ goto st325;} { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 172: @@ -104643,75 +105574,75 @@ goto st325;} { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 355: + case 359: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1100: - case 1102: - case 1104: - case 1106: - case 1107: - case 1108: - case 1109: - case 1111: case 1112: - case 1113: - case 1115: + case 1114: case 1116: - case 1117: + case 1118: case 1119: case 1120: case 1121: + case 1123: + case 1124: + case 1125: + case 1127: + case 1128: + case 1129: + case 1131: + case 1132: + case 1133: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 2: @@ -104725,222 +105656,222 @@ goto st325;} { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 338: - case 339: - case 340: - case 341: + case 342: + case 343: + case 344: case 345: - case 346: - case 347: - case 348: + case 349: + case 350: + case 351: + case 352: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_TEXT_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1243: - case 1244: - case 1249: - case 1250: + case 1255: + case 1256: + case 1261: + case 1262: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_APL); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1294: - case 1301: + case 1306: + case 1313: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 753: - case 754: - case 755: - case 756: - case 762: - case 763: - case 764: case 765: + case 766: + case 767: + case 768: + case 774: + case 775: + case 776: + case 777: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1440: + case 1452: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_CHAR_COLON); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1281: - case 1309: + case 1293: + case 1321: { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1449: - case 1452: - case 1455: - case 1458: + case 1461: + case 1464: + case 1467: + case 1470: { WARN(ZS_BAD_CHAR_DASH); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1445: + case 1457: { WARN(ZS_BAD_CHAR_COLON); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 244: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { ERR(ZS_BAD_DIRECTIVE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 219: @@ -104964,20 +105895,20 @@ goto st325;} { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 210: @@ -104985,26 +105916,26 @@ goto st325;} s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 258: @@ -105029,143 +105960,143 @@ goto st325;} s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 14: case 225: case 259: case 278: - case 300: + case 304: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 351: - case 354: - case 356: + case 355: + case 358: + case 360: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; - case 1295: - case 1302: + case 1307: + case 1314: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 15: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; case 255: @@ -105173,38 +106104,38 @@ goto st325;} s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof325; -goto st325;} + goto _test_eof329; +goto st329;} } break; } diff --git a/src/libzscanner/scanner.c.t0 b/src/libzscanner/scanner.c.t0 index 4033a54f1d..1121e568ca 100644 --- a/src/libzscanner/scanner.c.t0 +++ b/src/libzscanner/scanner.c.t0 @@ -102,752 +102,760 @@ static const short _zone_scanner_actions[] = { 125, 1, 126, 1, 128, 1, 129, 1, 130, 1, 131, 1, 145, 1, 146, 1, 148, 1, 149, 1, 150, 1, 151, 1, - 152, 1, 158, 1, 210, 1, 211, 1, - 212, 1, 213, 1, 214, 1, 215, 1, - 216, 1, 217, 1, 218, 1, 219, 1, - 220, 1, 221, 1, 222, 1, 223, 1, - 224, 1, 225, 1, 226, 1, 227, 1, - 228, 1, 229, 1, 230, 1, 231, 1, - 232, 1, 233, 1, 234, 1, 235, 1, - 236, 1, 237, 1, 238, 1, 239, 1, - 240, 1, 241, 1, 242, 1, 243, 1, - 244, 1, 245, 1, 246, 1, 247, 1, - 248, 1, 249, 1, 250, 1, 251, 1, - 252, 1, 253, 1, 254, 1, 255, 1, - 256, 1, 257, 1, 258, 1, 259, 1, - 260, 1, 261, 1, 262, 1, 263, 1, - 265, 1, 267, 1, 268, 1, 269, 1, - 270, 1, 277, 1, 278, 1, 283, 1, - 285, 1, 290, 1, 293, 1, 295, 1, - 296, 1, 297, 1, 298, 1, 303, 1, - 304, 1, 306, 1, 307, 1, 308, 1, - 309, 1, 310, 1, 311, 1, 313, 1, - 314, 1, 315, 1, 316, 1, 318, 2, - 0, 49, 2, 1, 0, 2, 1, 314, - 2, 1, 370, 2, 2, 5, 2, 2, - 7, 2, 3, 5, 2, 3, 7, 2, - 4, 0, 2, 4, 5, 2, 4, 7, - 2, 4, 314, 2, 5, 2, 2, 5, - 3, 2, 5, 4, 2, 5, 7, 2, - 6, 1, 2, 7, 1, 2, 7, 2, - 2, 7, 3, 2, 7, 4, 2, 7, - 5, 2, 7, 32, 2, 8, 73, 2, - 8, 77, 2, 9, 10, 2, 11, 1, - 2, 12, 1, 2, 13, 14, 2, 16, - 17, 2, 18, 14, 2, 18, 15, 2, - 19, 24, 2, 19, 77, 2, 19, 84, - 2, 20, 0, 2, 20, 7, 2, 22, - 0, 2, 23, 13, 2, 26, 69, 2, - 26, 108, 2, 26, 119, 2, 27, 0, - 2, 27, 1, 2, 27, 2, 2, 27, - 3, 2, 27, 4, 2, 27, 266, 2, - 28, 69, 2, 28, 113, 2, 29, 298, - 2, 29, 302, 2, 30, 25, 2, 31, - 1, 2, 31, 2, 2, 31, 3, 2, - 31, 4, 2, 31, 7, 2, 31, 93, - 2, 32, 7, 2, 33, 8, 2, 33, - 313, 2, 33, 318, 2, 34, 25, 2, - 35, 0, 2, 35, 1, 2, 35, 2, - 2, 35, 3, 2, 35, 4, 2, 35, - 266, 2, 35, 305, 2, 36, 41, 2, - 37, 36, 2, 38, 73, 2, 38, 158, - 2, 38, 283, 2, 38, 295, 2, 38, - 296, 2, 38, 313, 2, 38, 318, 2, - 42, 271, 2, 42, 272, 2, 42, 273, - 2, 42, 274, 2, 42, 275, 2, 42, - 276, 2, 45, 0, 2, 45, 1, 2, - 45, 2, 2, 45, 3, 2, 45, 4, - 2, 46, 0, 2, 46, 1, 2, 46, - 2, 2, 46, 3, 2, 46, 4, 2, - 46, 266, 2, 46, 298, 2, 47, 0, - 2, 47, 1, 2, 47, 2, 2, 47, - 3, 2, 47, 4, 2, 48, 312, 2, - 49, 1, 2, 49, 2, 2, 49, 3, - 2, 49, 4, 2, 56, 7, 2, 56, - 47, 2, 56, 93, 2, 57, 58, 2, - 59, 1, 2, 59, 2, 2, 59, 3, - 2, 59, 4, 2, 60, 313, 2, 62, - 63, 2, 64, 65, 2, 66, 68, 2, - 68, 0, 2, 68, 61, 2, 71, 0, - 2, 71, 313, 2, 75, 23, 2, 79, - 69, 2, 80, 7, 2, 81, 8, 2, - 82, 23, 2, 84, 8, 2, 90, 91, - 2, 92, 1, 2, 92, 2, 2, 92, - 3, 2, 92, 4, 2, 93, 1, 2, - 93, 2, 2, 93, 3, 2, 93, 4, - 2, 93, 7, 2, 94, 95, 2, 96, - 295, 2, 96, 313, 2, 97, 98, 2, - 99, 100, 2, 101, 102, 2, 101, 103, - 2, 101, 104, 2, 105, 106, 2, 107, - 313, 2, 110, 313, 2, 111, 0, 2, - 127, 313, 2, 129, 0, 2, 130, 0, - 2, 131, 0, 2, 132, 0, 2, 133, - 0, 2, 134, 0, 2, 135, 0, 2, - 136, 0, 2, 137, 0, 2, 138, 0, - 2, 139, 0, 2, 140, 0, 2, 141, - 0, 2, 142, 0, 2, 143, 0, 2, - 144, 0, 2, 146, 0, 2, 147, 0, - 2, 148, 0, 2, 149, 0, 2, 150, - 0, 2, 151, 0, 2, 152, 0, 2, - 153, 0, 2, 154, 0, 2, 155, 0, - 2, 156, 313, 2, 157, 313, 2, 159, - 0, 2, 160, 0, 2, 161, 0, 2, - 162, 0, 2, 163, 0, 2, 164, 0, - 2, 165, 0, 2, 166, 0, 2, 167, - 0, 2, 168, 0, 2, 169, 0, 2, - 170, 0, 2, 171, 0, 2, 172, 0, - 2, 173, 0, 2, 174, 0, 2, 175, - 0, 2, 176, 0, 2, 177, 0, 2, - 178, 0, 2, 179, 0, 2, 180, 0, - 2, 181, 0, 2, 182, 0, 2, 183, - 0, 2, 184, 0, 2, 185, 0, 2, - 186, 0, 2, 187, 0, 2, 188, 0, - 2, 189, 0, 2, 190, 0, 2, 191, - 0, 2, 192, 0, 2, 193, 0, 2, - 194, 0, 2, 195, 0, 2, 196, 0, - 2, 197, 0, 2, 198, 0, 2, 199, - 0, 2, 200, 0, 2, 201, 0, 2, - 202, 0, 2, 203, 0, 2, 204, 0, - 2, 205, 0, 2, 206, 0, 2, 207, - 0, 2, 208, 0, 2, 209, 0, 2, - 211, 1, 2, 211, 2, 2, 211, 3, - 2, 211, 4, 2, 212, 1, 2, 212, - 2, 2, 212, 3, 2, 212, 4, 2, - 213, 1, 2, 213, 2, 2, 213, 3, - 2, 213, 4, 2, 214, 1, 2, 214, - 2, 2, 214, 3, 2, 214, 4, 2, - 215, 1, 2, 215, 2, 2, 215, 3, - 2, 215, 4, 2, 216, 1, 2, 216, - 2, 2, 216, 3, 2, 216, 4, 2, - 217, 1, 2, 217, 2, 2, 217, 3, - 2, 217, 4, 2, 218, 1, 2, 218, - 2, 2, 218, 3, 2, 218, 4, 2, - 219, 1, 2, 219, 2, 2, 219, 3, - 2, 219, 4, 2, 220, 1, 2, 220, - 2, 2, 220, 3, 2, 220, 4, 2, - 221, 1, 2, 221, 2, 2, 221, 3, - 2, 221, 4, 2, 222, 1, 2, 222, - 2, 2, 222, 3, 2, 222, 4, 2, - 223, 1, 2, 223, 2, 2, 223, 3, - 2, 223, 4, 2, 224, 1, 2, 224, - 2, 2, 224, 3, 2, 224, 4, 2, - 225, 1, 2, 225, 2, 2, 225, 3, - 2, 225, 4, 2, 226, 1, 2, 226, - 2, 2, 226, 3, 2, 226, 4, 2, - 227, 1, 2, 227, 2, 2, 227, 3, - 2, 227, 4, 2, 228, 1, 2, 228, - 2, 2, 228, 3, 2, 228, 4, 2, - 229, 1, 2, 229, 2, 2, 229, 3, - 2, 229, 4, 2, 230, 1, 2, 230, - 2, 2, 230, 3, 2, 230, 4, 2, - 231, 1, 2, 231, 2, 2, 231, 3, - 2, 231, 4, 2, 232, 1, 2, 232, - 2, 2, 232, 3, 2, 232, 4, 2, - 233, 1, 2, 233, 2, 2, 233, 3, - 2, 233, 4, 2, 234, 1, 2, 234, - 2, 2, 234, 3, 2, 234, 4, 2, - 235, 1, 2, 235, 2, 2, 235, 3, - 2, 235, 4, 2, 236, 1, 2, 236, - 2, 2, 236, 3, 2, 236, 4, 2, - 237, 1, 2, 237, 2, 2, 237, 3, - 2, 237, 4, 2, 238, 1, 2, 238, - 2, 2, 238, 3, 2, 238, 4, 2, - 239, 1, 2, 239, 2, 2, 239, 3, - 2, 239, 4, 2, 240, 1, 2, 240, - 2, 2, 240, 3, 2, 240, 4, 2, - 241, 1, 2, 241, 2, 2, 241, 3, - 2, 241, 4, 2, 242, 1, 2, 242, - 2, 2, 242, 3, 2, 242, 4, 2, - 243, 1, 2, 243, 2, 2, 243, 3, - 2, 243, 4, 2, 244, 1, 2, 244, - 2, 2, 244, 3, 2, 244, 4, 2, - 245, 1, 2, 245, 2, 2, 245, 3, - 2, 245, 4, 2, 246, 1, 2, 246, - 2, 2, 246, 3, 2, 246, 4, 2, - 247, 1, 2, 247, 2, 2, 247, 3, - 2, 247, 4, 2, 248, 1, 2, 248, - 2, 2, 248, 3, 2, 248, 4, 2, - 249, 1, 2, 249, 2, 2, 249, 3, - 2, 249, 4, 2, 250, 1, 2, 250, - 2, 2, 250, 3, 2, 250, 4, 2, - 251, 1, 2, 251, 2, 2, 251, 3, - 2, 251, 4, 2, 252, 1, 2, 252, - 2, 2, 252, 3, 2, 252, 4, 2, - 253, 1, 2, 253, 2, 2, 253, 3, - 2, 253, 4, 2, 254, 1, 2, 254, - 2, 2, 254, 3, 2, 254, 4, 2, - 255, 1, 2, 255, 2, 2, 255, 3, - 2, 255, 4, 2, 256, 1, 2, 256, - 2, 2, 256, 3, 2, 256, 4, 2, - 257, 1, 2, 257, 2, 2, 257, 3, - 2, 257, 4, 2, 258, 1, 2, 258, - 2, 2, 258, 3, 2, 258, 4, 2, - 259, 1, 2, 259, 2, 2, 259, 3, - 2, 259, 4, 2, 260, 1, 2, 260, - 2, 2, 260, 3, 2, 260, 4, 2, - 261, 1, 2, 261, 2, 2, 261, 3, - 2, 261, 4, 2, 262, 1, 2, 262, - 2, 2, 262, 3, 2, 262, 4, 2, - 263, 1, 2, 263, 2, 2, 263, 3, - 2, 263, 4, 2, 264, 0, 2, 267, - 1, 2, 267, 2, 2, 267, 3, 2, - 267, 4, 2, 268, 1, 2, 268, 2, - 2, 268, 3, 2, 268, 4, 2, 269, - 1, 2, 269, 2, 2, 269, 3, 2, - 269, 4, 2, 270, 1, 2, 270, 2, - 2, 270, 3, 2, 270, 4, 2, 277, - 1, 2, 277, 2, 2, 277, 3, 2, - 277, 4, 2, 278, 1, 2, 278, 2, - 2, 278, 3, 2, 278, 4, 2, 281, - 0, 2, 282, 313, 2, 284, 108, 2, - 289, 108, 2, 293, 1, 2, 293, 2, - 2, 293, 3, 2, 293, 4, 2, 294, - 0, 2, 298, 1, 2, 298, 2, 2, - 298, 3, 2, 298, 4, 2, 313, 8, - 2, 314, 1, 2, 314, 4, 2, 317, - 314, 2, 318, 8, 2, 318, 313, 2, - 319, 312, 2, 320, 312, 2, 321, 312, - 2, 322, 312, 2, 323, 312, 2, 324, - 312, 2, 325, 312, 2, 326, 312, 2, - 327, 312, 2, 328, 312, 2, 329, 312, - 2, 330, 312, 2, 331, 312, 2, 332, - 312, 2, 333, 312, 2, 334, 312, 2, - 335, 312, 2, 336, 312, 2, 337, 312, - 2, 338, 312, 2, 339, 312, 2, 340, - 312, 2, 341, 312, 2, 342, 312, 2, - 343, 312, 2, 344, 312, 2, 345, 312, - 2, 346, 312, 2, 347, 312, 2, 348, - 312, 2, 349, 312, 2, 350, 312, 2, - 351, 312, 2, 352, 312, 2, 353, 312, - 2, 354, 312, 2, 355, 312, 2, 356, - 312, 2, 357, 312, 2, 358, 312, 2, - 359, 312, 2, 360, 312, 2, 361, 312, - 2, 362, 312, 2, 363, 312, 2, 364, - 312, 2, 365, 312, 2, 366, 312, 2, - 367, 312, 2, 368, 312, 2, 369, 312, - 2, 370, 1, 3, 0, 49, 1, 3, - 0, 49, 2, 3, 0, 49, 3, 3, - 0, 49, 4, 3, 1, 7, 370, 3, - 1, 32, 7, 3, 1, 71, 0, 3, - 1, 111, 0, 3, 1, 264, 0, 3, - 1, 281, 0, 3, 1, 294, 0, 3, - 1, 314, 370, 3, 2, 7, 32, 3, - 2, 32, 7, 3, 3, 7, 32, 3, - 3, 32, 7, 3, 4, 7, 32, 3, - 4, 32, 7, 3, 4, 71, 0, 3, - 4, 111, 0, 3, 4, 264, 0, 3, - 4, 281, 0, 3, 4, 294, 0, 3, - 4, 314, 7, 3, 5, 7, 2, 3, - 5, 7, 3, 3, 5, 7, 4, 3, - 6, 1, 370, 3, 6, 370, 1, 3, - 7, 2, 5, 3, 7, 2, 32, 3, - 7, 3, 5, 3, 7, 3, 32, 3, - 7, 4, 5, 3, 7, 4, 32, 3, - 7, 370, 1, 3, 9, 11, 1, 3, - 15, 21, 0, 3, 20, 7, 2, 3, - 20, 7, 3, 3, 20, 7, 4, 3, - 20, 83, 7, 3, 23, 13, 14, 3, - 27, 71, 0, 3, 27, 300, 29, 3, - 28, 94, 95, 3, 29, 298, 1, 3, - 29, 298, 2, 3, 29, 298, 3, 3, - 29, 298, 4, 3, 29, 302, 298, 3, - 31, 1, 93, 3, 31, 2, 7, 3, - 31, 2, 93, 3, 31, 3, 7, 3, - 31, 3, 93, 3, 31, 4, 7, 3, - 31, 4, 93, 3, 31, 93, 7, 3, - 31, 317, 314, 3, 31, 319, 312, 3, - 32, 1, 7, 3, 32, 2, 7, 3, - 32, 3, 7, 3, 32, 4, 7, 3, - 33, 89, 8, 3, 33, 313, 8, 3, - 33, 318, 8, 3, 33, 318, 313, 3, - 35, 1, 0, 3, 35, 4, 0, 3, - 37, 36, 314, 3, 38, 156, 313, 3, - 38, 318, 8, 3, 38, 318, 313, 3, - 40, 42, 271, 3, 40, 42, 272, 3, - 40, 42, 273, 3, 40, 42, 274, 3, - 40, 42, 275, 3, 40, 42, 276, 3, - 42, 271, 1, 3, 42, 271, 2, 3, - 42, 271, 3, 3, 42, 271, 4, 3, - 42, 272, 1, 3, 42, 272, 2, 3, - 42, 272, 3, 3, 42, 272, 4, 3, - 42, 273, 1, 3, 42, 273, 2, 3, - 42, 273, 3, 3, 42, 273, 4, 3, - 42, 274, 1, 3, 42, 274, 2, 3, - 42, 274, 3, 3, 42, 274, 4, 3, - 42, 275, 1, 3, 42, 275, 2, 3, - 42, 275, 3, 3, 42, 275, 4, 3, - 42, 276, 1, 3, 42, 276, 2, 3, - 42, 276, 3, 3, 42, 276, 4, 3, - 46, 145, 298, 3, 46, 298, 1, 3, - 46, 298, 2, 3, 46, 298, 3, 3, - 46, 298, 4, 3, 48, 312, 1, 3, - 48, 312, 2, 3, 48, 312, 3, 3, - 48, 312, 4, 3, 48, 312, 314, 3, - 50, 38, 73, 3, 50, 38, 313, 3, - 50, 38, 318, 3, 55, 37, 36, 3, - 56, 7, 2, 3, 56, 7, 3, 3, - 56, 7, 4, 3, 56, 47, 0, 3, - 56, 47, 1, 3, 56, 47, 2, 3, - 56, 47, 3, 3, 56, 47, 4, 3, - 56, 93, 1, 3, 56, 93, 2, 3, - 56, 93, 3, 3, 56, 93, 4, 3, - 66, 68, 0, 3, 66, 68, 61, 3, - 67, 62, 63, 3, 68, 61, 0, 3, - 70, 26, 69, 3, 72, 0, 1, 3, - 75, 23, 13, 3, 76, 0, 1, 3, - 80, 2, 7, 3, 80, 3, 7, 3, - 80, 4, 7, 3, 80, 7, 4, 3, - 82, 23, 13, 3, 85, 0, 1, 3, - 88, 7, 1, 3, 88, 7, 4, 3, - 88, 30, 25, 3, 88, 32, 7, 3, - 90, 30, 25, 3, 90, 91, 314, 3, - 93, 2, 7, 3, 93, 3, 7, 3, - 93, 4, 7, 3, 96, 107, 313, 3, - 96, 156, 313, 3, 97, 98, 0, 3, - 97, 98, 1, 3, 97, 98, 2, 3, - 97, 98, 3, 3, 97, 98, 4, 3, - 97, 98, 29, 3, 99, 100, 0, 3, - 99, 100, 1, 3, 99, 100, 2, 3, - 99, 100, 3, 3, 99, 100, 4, 3, - 99, 100, 29, 3, 105, 106, 0, 3, - 105, 106, 1, 3, 105, 106, 2, 3, - 105, 106, 3, 3, 105, 106, 4, 3, - 110, 112, 283, 3, 110, 292, 313, 3, - 147, 145, 298, 3, 153, 145, 298, 3, - 156, 157, 313, 3, 211, 264, 0, 3, - 212, 264, 0, 3, 213, 264, 0, 3, - 214, 264, 0, 3, 215, 264, 0, 3, - 216, 264, 0, 3, 217, 264, 0, 3, - 218, 264, 0, 3, 219, 264, 0, 3, - 220, 264, 0, 3, 221, 264, 0, 3, - 222, 264, 0, 3, 223, 264, 0, 3, - 224, 264, 0, 3, 225, 264, 0, 3, - 226, 264, 0, 3, 227, 264, 0, 3, - 228, 264, 0, 3, 229, 264, 0, 3, - 230, 264, 0, 3, 231, 264, 0, 3, - 232, 264, 0, 3, 233, 264, 0, 3, - 234, 264, 0, 3, 235, 264, 0, 3, - 236, 264, 0, 3, 237, 264, 0, 3, - 238, 264, 0, 3, 239, 264, 0, 3, - 240, 264, 0, 3, 241, 264, 0, 3, - 242, 264, 0, 3, 243, 264, 0, 3, - 244, 264, 0, 3, 245, 264, 0, 3, - 246, 264, 0, 3, 247, 264, 0, 3, - 248, 264, 0, 3, 249, 264, 0, 3, - 250, 264, 0, 3, 251, 264, 0, 3, - 252, 264, 0, 3, 253, 264, 0, 3, - 254, 264, 0, 3, 255, 264, 0, 3, - 256, 264, 0, 3, 257, 264, 0, 3, - 258, 264, 0, 3, 259, 264, 0, 3, - 260, 264, 0, 3, 261, 264, 0, 3, - 262, 264, 0, 3, 263, 264, 0, 3, - 280, 37, 36, 3, 285, 286, 0, 3, - 285, 287, 0, 3, 288, 110, 313, 3, - 290, 291, 0, 3, 292, 110, 313, 3, - 293, 294, 0, 3, 298, 294, 0, 3, - 301, 28, 304, 3, 313, 8, 89, 3, - 314, 7, 1, 3, 314, 7, 4, 3, - 314, 30, 25, 3, 314, 370, 1, 3, - 316, 30, 25, 3, 318, 313, 8, 3, - 319, 312, 1, 3, 319, 312, 2, 3, - 319, 312, 3, 3, 319, 312, 4, 3, - 319, 312, 7, 3, 319, 312, 314, 3, - 320, 312, 1, 3, 320, 312, 2, 3, - 320, 312, 3, 3, 320, 312, 4, 3, - 320, 312, 314, 3, 321, 312, 1, 3, - 321, 312, 2, 3, 321, 312, 3, 3, - 321, 312, 4, 3, 321, 312, 314, 3, - 322, 312, 1, 3, 322, 312, 2, 3, - 322, 312, 3, 3, 322, 312, 4, 3, - 322, 312, 314, 3, 323, 312, 1, 3, - 323, 312, 2, 3, 323, 312, 3, 3, - 323, 312, 4, 3, 323, 312, 314, 3, - 324, 312, 1, 3, 324, 312, 2, 3, - 324, 312, 3, 3, 324, 312, 4, 3, - 324, 312, 314, 3, 325, 312, 1, 3, - 325, 312, 2, 3, 325, 312, 3, 3, - 325, 312, 4, 3, 325, 312, 314, 3, - 326, 312, 1, 3, 326, 312, 2, 3, - 326, 312, 3, 3, 326, 312, 4, 3, - 326, 312, 314, 3, 327, 312, 1, 3, - 327, 312, 2, 3, 327, 312, 3, 3, - 327, 312, 4, 3, 327, 312, 314, 3, - 328, 312, 1, 3, 328, 312, 2, 3, - 328, 312, 3, 3, 328, 312, 4, 3, - 328, 312, 314, 3, 329, 312, 1, 3, - 329, 312, 2, 3, 329, 312, 3, 3, - 329, 312, 4, 3, 329, 312, 314, 3, - 330, 312, 1, 3, 330, 312, 2, 3, - 330, 312, 3, 3, 330, 312, 4, 3, - 330, 312, 314, 3, 331, 312, 1, 3, - 331, 312, 2, 3, 331, 312, 3, 3, - 331, 312, 4, 3, 331, 312, 314, 3, - 332, 312, 1, 3, 332, 312, 2, 3, - 332, 312, 3, 3, 332, 312, 4, 3, - 332, 312, 314, 3, 333, 312, 1, 3, - 333, 312, 2, 3, 333, 312, 3, 3, - 333, 312, 4, 3, 333, 312, 314, 3, - 334, 312, 1, 3, 334, 312, 2, 3, - 334, 312, 3, 3, 334, 312, 4, 3, - 334, 312, 314, 3, 335, 312, 1, 3, - 335, 312, 2, 3, 335, 312, 3, 3, - 335, 312, 4, 3, 335, 312, 314, 3, - 336, 312, 1, 3, 336, 312, 2, 3, - 336, 312, 3, 3, 336, 312, 4, 3, - 336, 312, 314, 3, 337, 312, 1, 3, - 337, 312, 2, 3, 337, 312, 3, 3, - 337, 312, 4, 3, 337, 312, 314, 3, - 338, 312, 1, 3, 338, 312, 2, 3, - 338, 312, 3, 3, 338, 312, 4, 3, - 338, 312, 314, 3, 339, 312, 1, 3, - 339, 312, 2, 3, 339, 312, 3, 3, - 339, 312, 4, 3, 339, 312, 314, 3, - 340, 312, 1, 3, 340, 312, 2, 3, - 340, 312, 3, 3, 340, 312, 4, 3, - 340, 312, 314, 3, 341, 312, 1, 3, - 341, 312, 2, 3, 341, 312, 3, 3, - 341, 312, 4, 3, 341, 312, 314, 3, - 342, 312, 1, 3, 342, 312, 2, 3, - 342, 312, 3, 3, 342, 312, 4, 3, - 342, 312, 314, 3, 343, 312, 1, 3, - 343, 312, 2, 3, 343, 312, 3, 3, - 343, 312, 4, 3, 343, 312, 314, 3, - 344, 312, 1, 3, 344, 312, 2, 3, - 344, 312, 3, 3, 344, 312, 4, 3, - 344, 312, 314, 3, 345, 312, 1, 3, - 345, 312, 2, 3, 345, 312, 3, 3, - 345, 312, 4, 3, 345, 312, 314, 3, - 346, 312, 1, 3, 346, 312, 2, 3, - 346, 312, 3, 3, 346, 312, 4, 3, - 346, 312, 314, 3, 347, 312, 1, 3, - 347, 312, 2, 3, 347, 312, 3, 3, - 347, 312, 4, 3, 347, 312, 314, 3, - 348, 312, 1, 3, 348, 312, 2, 3, - 348, 312, 3, 3, 348, 312, 4, 3, - 348, 312, 314, 3, 349, 312, 1, 3, - 349, 312, 2, 3, 349, 312, 3, 3, - 349, 312, 4, 3, 349, 312, 314, 3, - 350, 312, 1, 3, 350, 312, 2, 3, - 350, 312, 3, 3, 350, 312, 4, 3, - 350, 312, 314, 3, 351, 312, 1, 3, - 351, 312, 2, 3, 351, 312, 3, 3, - 351, 312, 4, 3, 351, 312, 314, 3, - 352, 312, 1, 3, 352, 312, 2, 3, - 352, 312, 3, 3, 352, 312, 4, 3, - 352, 312, 314, 3, 353, 312, 1, 3, - 353, 312, 2, 3, 353, 312, 3, 3, - 353, 312, 4, 3, 353, 312, 314, 3, - 354, 312, 1, 3, 354, 312, 2, 3, - 354, 312, 3, 3, 354, 312, 4, 3, - 354, 312, 314, 3, 355, 312, 1, 3, - 355, 312, 2, 3, 355, 312, 3, 3, - 355, 312, 4, 3, 355, 312, 314, 3, - 356, 312, 1, 3, 356, 312, 2, 3, - 356, 312, 3, 3, 356, 312, 4, 3, - 356, 312, 314, 3, 357, 312, 1, 3, - 357, 312, 2, 3, 357, 312, 3, 3, - 357, 312, 4, 3, 357, 312, 314, 3, - 358, 312, 1, 3, 358, 312, 2, 3, - 358, 312, 3, 3, 358, 312, 4, 3, - 358, 312, 314, 3, 359, 312, 1, 3, - 359, 312, 2, 3, 359, 312, 3, 3, - 359, 312, 4, 3, 359, 312, 314, 3, - 360, 312, 1, 3, 360, 312, 2, 3, - 360, 312, 3, 3, 360, 312, 4, 3, - 360, 312, 314, 3, 361, 312, 1, 3, - 361, 312, 2, 3, 361, 312, 3, 3, - 361, 312, 4, 3, 361, 312, 314, 3, - 362, 312, 1, 3, 362, 312, 2, 3, - 362, 312, 3, 3, 362, 312, 4, 3, - 362, 312, 314, 3, 363, 312, 1, 3, - 363, 312, 2, 3, 363, 312, 3, 3, - 363, 312, 4, 3, 363, 312, 314, 3, - 364, 312, 1, 3, 364, 312, 2, 3, - 364, 312, 3, 3, 364, 312, 4, 3, - 364, 312, 314, 3, 365, 312, 1, 3, - 365, 312, 2, 3, 365, 312, 3, 3, - 365, 312, 4, 3, 365, 312, 314, 3, - 366, 312, 1, 3, 366, 312, 2, 3, - 366, 312, 3, 3, 366, 312, 4, 3, - 366, 312, 314, 3, 367, 312, 1, 3, - 367, 312, 2, 3, 367, 312, 3, 3, - 367, 312, 4, 3, 367, 312, 314, 3, - 368, 312, 1, 3, 368, 312, 2, 3, - 368, 312, 3, 3, 368, 312, 4, 3, - 368, 312, 314, 3, 369, 312, 1, 3, - 369, 312, 2, 3, 369, 312, 3, 3, - 369, 312, 4, 3, 369, 312, 314, 3, - 370, 1, 6, 4, 1, 7, 370, 32, - 4, 1, 314, 32, 7, 4, 4, 314, - 7, 32, 4, 4, 314, 32, 7, 4, - 6, 1, 7, 370, 4, 6, 1, 85, - 0, 4, 6, 72, 0, 1, 4, 6, - 76, 0, 1, 4, 6, 85, 0, 1, - 4, 7, 6, 370, 1, 4, 7, 72, - 0, 1, 4, 7, 370, 1, 6, 4, - 7, 370, 1, 32, 4, 18, 15, 21, - 0, 4, 20, 83, 7, 2, 4, 20, - 83, 7, 3, 4, 20, 83, 7, 4, - 4, 27, 1, 71, 0, 4, 27, 4, - 71, 0, 4, 27, 300, 29, 298, 4, - 29, 298, 294, 0, 4, 29, 302, 298, - 1, 4, 29, 302, 298, 2, 4, 29, - 302, 298, 3, 4, 29, 302, 298, 4, - 4, 31, 1, 7, 370, 4, 31, 1, - 317, 314, 4, 31, 1, 319, 312, 4, - 31, 2, 93, 7, 4, 31, 2, 317, - 314, 4, 31, 2, 319, 312, 4, 31, - 3, 93, 7, 4, 31, 3, 317, 314, - 4, 31, 3, 319, 312, 4, 31, 4, - 93, 7, 4, 31, 4, 317, 314, 4, - 31, 4, 319, 312, 4, 31, 319, 312, - 7, 4, 33, 38, 318, 8, 4, 33, - 50, 38, 318, 4, 33, 318, 313, 8, - 4, 37, 36, 30, 25, 4, 38, 318, - 313, 8, 4, 40, 37, 36, 41, 4, - 40, 42, 271, 1, 4, 40, 42, 271, - 2, 4, 40, 42, 271, 3, 4, 40, - 42, 271, 4, 4, 40, 42, 272, 1, - 4, 40, 42, 272, 2, 4, 40, 42, - 272, 3, 4, 40, 42, 272, 4, 4, - 40, 42, 273, 1, 4, 40, 42, 273, - 2, 4, 40, 42, 273, 3, 4, 40, - 42, 273, 4, 4, 40, 42, 274, 1, - 4, 40, 42, 274, 2, 4, 40, 42, - 274, 3, 4, 40, 42, 274, 4, 4, - 40, 42, 275, 1, 4, 40, 42, 275, - 2, 4, 40, 42, 275, 3, 4, 40, - 42, 275, 4, 4, 40, 42, 276, 1, - 4, 40, 42, 276, 2, 4, 40, 42, - 276, 3, 4, 40, 42, 276, 4, 4, - 42, 273, 281, 0, 4, 42, 274, 281, - 0, 4, 42, 275, 281, 0, 4, 42, - 276, 281, 0, 4, 43, 39, 37, 36, - 4, 44, 39, 37, 36, 4, 46, 145, - 298, 1, 4, 46, 145, 298, 2, 4, - 46, 145, 298, 3, 4, 46, 145, 298, - 4, 4, 46, 298, 294, 0, 4, 48, - 312, 1, 314, 4, 48, 312, 4, 314, - 4, 50, 38, 8, 73, 4, 56, 55, - 37, 36, 4, 66, 68, 61, 0, 4, - 75, 23, 13, 14, 4, 82, 23, 13, - 14, 4, 88, 32, 1, 7, 4, 88, - 32, 2, 7, 4, 88, 32, 3, 7, - 4, 88, 32, 4, 7, 4, 90, 91, - 30, 25, 4, 93, 1, 7, 370, 4, - 96, 156, 157, 313, 4, 97, 98, 1, - 0, 4, 97, 98, 4, 0, 4, 97, - 98, 29, 298, 4, 99, 100, 1, 0, - 4, 99, 100, 4, 0, 4, 99, 100, - 29, 298, 4, 105, 106, 1, 0, 4, - 105, 106, 4, 0, 4, 147, 145, 298, - 1, 4, 147, 145, 298, 2, 4, 147, - 145, 298, 3, 4, 147, 145, 298, 4, - 4, 147, 303, 37, 36, 4, 153, 145, - 298, 1, 4, 153, 145, 298, 2, 4, - 153, 145, 298, 3, 4, 153, 145, 298, - 4, 4, 211, 1, 264, 0, 4, 211, - 4, 264, 0, 4, 212, 1, 264, 0, - 4, 212, 4, 264, 0, 4, 213, 1, - 264, 0, 4, 213, 4, 264, 0, 4, - 214, 1, 264, 0, 4, 214, 4, 264, - 0, 4, 215, 1, 264, 0, 4, 215, - 4, 264, 0, 4, 216, 1, 264, 0, - 4, 216, 4, 264, 0, 4, 217, 1, - 264, 0, 4, 217, 4, 264, 0, 4, - 218, 1, 264, 0, 4, 218, 4, 264, - 0, 4, 219, 1, 264, 0, 4, 219, - 4, 264, 0, 4, 220, 1, 264, 0, - 4, 220, 4, 264, 0, 4, 221, 1, - 264, 0, 4, 221, 4, 264, 0, 4, - 222, 1, 264, 0, 4, 222, 4, 264, - 0, 4, 223, 1, 264, 0, 4, 223, - 4, 264, 0, 4, 224, 1, 264, 0, - 4, 224, 4, 264, 0, 4, 225, 1, - 264, 0, 4, 225, 4, 264, 0, 4, - 226, 1, 264, 0, 4, 226, 4, 264, - 0, 4, 227, 1, 264, 0, 4, 227, - 4, 264, 0, 4, 228, 1, 264, 0, - 4, 228, 4, 264, 0, 4, 229, 1, - 264, 0, 4, 229, 4, 264, 0, 4, - 230, 1, 264, 0, 4, 230, 4, 264, - 0, 4, 231, 1, 264, 0, 4, 231, - 4, 264, 0, 4, 232, 1, 264, 0, - 4, 232, 4, 264, 0, 4, 233, 1, - 264, 0, 4, 233, 4, 264, 0, 4, - 234, 1, 264, 0, 4, 234, 4, 264, - 0, 4, 235, 1, 264, 0, 4, 235, - 4, 264, 0, 4, 236, 1, 264, 0, - 4, 236, 4, 264, 0, 4, 237, 1, - 264, 0, 4, 237, 4, 264, 0, 4, - 238, 1, 264, 0, 4, 238, 4, 264, - 0, 4, 239, 1, 264, 0, 4, 239, - 4, 264, 0, 4, 240, 1, 264, 0, - 4, 240, 4, 264, 0, 4, 241, 1, - 264, 0, 4, 241, 4, 264, 0, 4, - 242, 1, 264, 0, 4, 242, 4, 264, - 0, 4, 243, 1, 264, 0, 4, 243, - 4, 264, 0, 4, 244, 1, 264, 0, - 4, 244, 4, 264, 0, 4, 245, 1, - 264, 0, 4, 245, 4, 264, 0, 4, - 246, 1, 264, 0, 4, 246, 4, 264, - 0, 4, 247, 1, 264, 0, 4, 247, - 4, 264, 0, 4, 248, 1, 264, 0, - 4, 248, 4, 264, 0, 4, 249, 1, - 264, 0, 4, 249, 4, 264, 0, 4, - 250, 1, 264, 0, 4, 250, 4, 264, - 0, 4, 251, 1, 264, 0, 4, 251, - 4, 264, 0, 4, 252, 1, 264, 0, - 4, 252, 4, 264, 0, 4, 253, 1, - 264, 0, 4, 253, 4, 264, 0, 4, - 254, 1, 264, 0, 4, 254, 4, 264, - 0, 4, 255, 1, 264, 0, 4, 255, - 4, 264, 0, 4, 256, 1, 264, 0, - 4, 256, 4, 264, 0, 4, 257, 1, - 264, 0, 4, 257, 4, 264, 0, 4, - 258, 1, 264, 0, 4, 258, 4, 264, - 0, 4, 259, 1, 264, 0, 4, 259, - 4, 264, 0, 4, 260, 1, 264, 0, - 4, 260, 4, 264, 0, 4, 261, 1, - 264, 0, 4, 261, 4, 264, 0, 4, - 262, 1, 264, 0, 4, 262, 4, 264, - 0, 4, 263, 1, 264, 0, 4, 263, - 4, 264, 0, 4, 293, 1, 294, 0, - 4, 293, 4, 294, 0, 4, 298, 1, - 294, 0, 4, 298, 4, 294, 0, 4, - 299, 28, 26, 69, 4, 314, 7, 370, - 1, 4, 319, 312, 1, 314, 4, 319, - 312, 2, 7, 4, 319, 312, 3, 7, - 4, 319, 312, 4, 7, 4, 319, 312, - 4, 314, 4, 320, 312, 1, 314, 4, - 320, 312, 4, 314, 4, 321, 312, 1, - 314, 4, 321, 312, 4, 314, 4, 322, - 312, 1, 314, 4, 322, 312, 4, 314, - 4, 323, 312, 1, 314, 4, 323, 312, - 4, 314, 4, 324, 312, 1, 314, 4, - 324, 312, 4, 314, 4, 325, 312, 1, - 314, 4, 325, 312, 4, 314, 4, 326, - 312, 1, 314, 4, 326, 312, 4, 314, - 4, 327, 312, 1, 314, 4, 327, 312, - 4, 314, 4, 328, 312, 1, 314, 4, - 328, 312, 4, 314, 4, 329, 312, 1, - 314, 4, 329, 312, 4, 314, 4, 330, - 312, 1, 314, 4, 330, 312, 4, 314, - 4, 331, 312, 1, 314, 4, 331, 312, - 4, 314, 4, 332, 312, 1, 314, 4, - 332, 312, 4, 314, 4, 333, 312, 1, - 314, 4, 333, 312, 4, 314, 4, 334, - 312, 1, 314, 4, 334, 312, 4, 314, - 4, 335, 312, 1, 314, 4, 335, 312, - 4, 314, 4, 336, 312, 1, 314, 4, - 336, 312, 4, 314, 4, 337, 312, 1, - 314, 4, 337, 312, 4, 314, 4, 338, - 312, 1, 314, 4, 338, 312, 4, 314, - 4, 339, 312, 1, 314, 4, 339, 312, - 4, 314, 4, 340, 312, 1, 314, 4, - 340, 312, 4, 314, 4, 341, 312, 1, - 314, 4, 341, 312, 4, 314, 4, 342, - 312, 1, 314, 4, 342, 312, 4, 314, - 4, 343, 312, 1, 314, 4, 343, 312, - 4, 314, 4, 344, 312, 1, 314, 4, - 344, 312, 4, 314, 4, 345, 312, 1, - 314, 4, 345, 312, 4, 314, 4, 346, - 312, 1, 314, 4, 346, 312, 4, 314, - 4, 347, 312, 1, 314, 4, 347, 312, - 4, 314, 4, 348, 312, 1, 314, 4, - 348, 312, 4, 314, 4, 349, 312, 1, - 314, 4, 349, 312, 4, 314, 4, 350, - 312, 1, 314, 4, 350, 312, 4, 314, - 4, 351, 312, 1, 314, 4, 351, 312, - 4, 314, 4, 352, 312, 1, 314, 4, - 352, 312, 4, 314, 4, 353, 312, 1, - 314, 4, 353, 312, 4, 314, 4, 354, - 312, 1, 314, 4, 354, 312, 4, 314, - 4, 355, 312, 1, 314, 4, 355, 312, - 4, 314, 4, 356, 312, 1, 314, 4, - 356, 312, 4, 314, 4, 357, 312, 1, - 314, 4, 357, 312, 4, 314, 4, 358, - 312, 1, 314, 4, 358, 312, 4, 314, - 4, 359, 312, 1, 314, 4, 359, 312, - 4, 314, 4, 360, 312, 1, 314, 4, - 360, 312, 4, 314, 4, 361, 312, 1, - 314, 4, 361, 312, 4, 314, 4, 362, - 312, 1, 314, 4, 362, 312, 4, 314, - 4, 363, 312, 1, 314, 4, 363, 312, - 4, 314, 4, 364, 312, 1, 314, 4, - 364, 312, 4, 314, 4, 365, 312, 1, - 314, 4, 365, 312, 4, 314, 4, 366, - 312, 1, 314, 4, 366, 312, 4, 314, - 4, 367, 312, 1, 314, 4, 367, 312, - 4, 314, 4, 368, 312, 1, 314, 4, - 368, 312, 4, 314, 4, 369, 312, 1, - 314, 4, 369, 312, 4, 314, 5, 20, - 7, 76, 0, 1, 5, 27, 300, 29, - 298, 1, 5, 27, 300, 29, 298, 2, - 5, 27, 300, 29, 298, 3, 5, 27, - 300, 29, 298, 4, 5, 29, 298, 1, - 294, 0, 5, 29, 298, 4, 294, 0, - 5, 29, 302, 298, 294, 0, 5, 31, - 1, 93, 7, 370, 5, 31, 1, 319, - 312, 314, 5, 31, 2, 319, 312, 7, - 5, 31, 3, 319, 312, 7, 5, 31, - 4, 319, 312, 7, 5, 31, 4, 319, - 312, 314, 5, 33, 38, 318, 313, 8, - 5, 37, 36, 314, 30, 25, 5, 40, - 42, 273, 281, 0, 5, 40, 42, 274, - 281, 0, 5, 40, 42, 275, 281, 0, - 5, 40, 42, 276, 281, 0, 5, 42, - 273, 1, 281, 0, 5, 42, 273, 4, - 281, 0, 5, 42, 274, 1, 281, 0, - 5, 42, 274, 4, 281, 0, 5, 42, - 275, 1, 281, 0, 5, 42, 275, 4, - 281, 0, 5, 42, 276, 1, 281, 0, - 5, 42, 276, 4, 281, 0, 5, 46, - 145, 298, 294, 0, 5, 46, 298, 1, - 294, 0, 5, 46, 298, 4, 294, 0, - 5, 50, 38, 318, 313, 8, 5, 56, + 152, 1, 158, 1, 211, 1, 212, 1, + 213, 1, 214, 1, 215, 1, 216, 1, + 217, 1, 218, 1, 219, 1, 220, 1, + 221, 1, 222, 1, 223, 1, 224, 1, + 225, 1, 226, 1, 227, 1, 228, 1, + 229, 1, 230, 1, 231, 1, 232, 1, + 233, 1, 234, 1, 235, 1, 236, 1, + 237, 1, 238, 1, 239, 1, 240, 1, + 241, 1, 242, 1, 243, 1, 244, 1, + 245, 1, 246, 1, 247, 1, 248, 1, + 249, 1, 250, 1, 251, 1, 252, 1, + 253, 1, 254, 1, 255, 1, 256, 1, + 257, 1, 258, 1, 259, 1, 260, 1, + 261, 1, 262, 1, 263, 1, 264, 1, + 265, 1, 267, 1, 269, 1, 270, 1, + 271, 1, 272, 1, 279, 1, 280, 1, + 285, 1, 287, 1, 292, 1, 295, 1, + 297, 1, 298, 1, 299, 1, 300, 1, + 305, 1, 306, 1, 308, 1, 309, 1, + 310, 1, 311, 1, 312, 1, 313, 1, + 315, 1, 316, 1, 317, 1, 318, 1, + 320, 2, 0, 49, 2, 1, 0, 2, + 1, 316, 2, 1, 373, 2, 2, 5, + 2, 2, 7, 2, 3, 5, 2, 3, + 7, 2, 4, 0, 2, 4, 5, 2, + 4, 7, 2, 4, 316, 2, 5, 2, + 2, 5, 3, 2, 5, 4, 2, 5, + 7, 2, 6, 1, 2, 7, 1, 2, + 7, 2, 2, 7, 3, 2, 7, 4, + 2, 7, 5, 2, 7, 32, 2, 8, + 73, 2, 8, 77, 2, 9, 10, 2, + 11, 1, 2, 12, 1, 2, 13, 14, + 2, 16, 17, 2, 18, 14, 2, 18, + 15, 2, 19, 24, 2, 19, 77, 2, + 19, 84, 2, 20, 0, 2, 20, 7, + 2, 22, 0, 2, 23, 13, 2, 26, + 69, 2, 26, 108, 2, 26, 119, 2, + 27, 0, 2, 27, 1, 2, 27, 2, + 2, 27, 3, 2, 27, 4, 2, 27, + 268, 2, 28, 69, 2, 28, 113, 2, + 29, 300, 2, 29, 304, 2, 30, 25, + 2, 31, 1, 2, 31, 2, 2, 31, + 3, 2, 31, 4, 2, 31, 7, 2, + 31, 93, 2, 32, 7, 2, 33, 8, + 2, 33, 315, 2, 33, 320, 2, 34, + 25, 2, 35, 0, 2, 35, 1, 2, + 35, 2, 2, 35, 3, 2, 35, 4, + 2, 35, 268, 2, 35, 307, 2, 36, + 41, 2, 37, 36, 2, 38, 73, 2, + 38, 158, 2, 38, 285, 2, 38, 297, + 2, 38, 298, 2, 38, 315, 2, 38, + 320, 2, 42, 273, 2, 42, 274, 2, + 42, 275, 2, 42, 276, 2, 42, 277, + 2, 42, 278, 2, 45, 0, 2, 45, + 1, 2, 45, 2, 2, 45, 3, 2, + 45, 4, 2, 46, 0, 2, 46, 1, + 2, 46, 2, 2, 46, 3, 2, 46, + 4, 2, 46, 268, 2, 46, 300, 2, + 47, 0, 2, 47, 1, 2, 47, 2, + 2, 47, 3, 2, 47, 4, 2, 48, + 314, 2, 49, 1, 2, 49, 2, 2, + 49, 3, 2, 49, 4, 2, 56, 7, + 2, 56, 47, 2, 56, 93, 2, 57, + 58, 2, 59, 1, 2, 59, 2, 2, + 59, 3, 2, 59, 4, 2, 60, 315, + 2, 62, 63, 2, 64, 65, 2, 66, + 68, 2, 68, 0, 2, 68, 61, 2, + 71, 0, 2, 71, 315, 2, 75, 23, + 2, 79, 69, 2, 80, 7, 2, 81, + 8, 2, 82, 23, 2, 84, 8, 2, + 90, 91, 2, 92, 1, 2, 92, 2, + 2, 92, 3, 2, 92, 4, 2, 93, + 1, 2, 93, 2, 2, 93, 3, 2, + 93, 4, 2, 93, 7, 2, 94, 95, + 2, 96, 297, 2, 96, 315, 2, 97, + 98, 2, 99, 100, 2, 101, 102, 2, + 101, 103, 2, 101, 104, 2, 105, 106, + 2, 107, 315, 2, 110, 315, 2, 111, + 0, 2, 127, 315, 2, 129, 0, 2, + 130, 0, 2, 131, 0, 2, 132, 0, + 2, 133, 0, 2, 134, 0, 2, 135, + 0, 2, 136, 0, 2, 137, 0, 2, + 138, 0, 2, 139, 0, 2, 140, 0, + 2, 141, 0, 2, 142, 0, 2, 143, + 0, 2, 144, 0, 2, 146, 0, 2, + 147, 0, 2, 148, 0, 2, 149, 0, + 2, 150, 0, 2, 151, 0, 2, 152, + 0, 2, 153, 0, 2, 154, 0, 2, + 155, 0, 2, 156, 315, 2, 157, 315, + 2, 159, 0, 2, 160, 0, 2, 161, + 0, 2, 162, 0, 2, 163, 0, 2, + 164, 0, 2, 165, 0, 2, 166, 0, + 2, 167, 0, 2, 168, 0, 2, 169, + 0, 2, 170, 0, 2, 171, 0, 2, + 172, 0, 2, 173, 0, 2, 174, 0, + 2, 175, 0, 2, 176, 0, 2, 177, + 0, 2, 178, 0, 2, 179, 0, 2, + 180, 0, 2, 181, 0, 2, 182, 0, + 2, 183, 0, 2, 184, 0, 2, 185, + 0, 2, 186, 0, 2, 187, 0, 2, + 188, 0, 2, 189, 0, 2, 190, 0, + 2, 191, 0, 2, 192, 0, 2, 193, + 0, 2, 194, 0, 2, 195, 0, 2, + 196, 0, 2, 197, 0, 2, 198, 0, + 2, 199, 0, 2, 200, 0, 2, 201, + 0, 2, 202, 0, 2, 203, 0, 2, + 204, 0, 2, 205, 0, 2, 206, 0, + 2, 207, 0, 2, 208, 0, 2, 209, + 0, 2, 210, 0, 2, 212, 1, 2, + 212, 2, 2, 212, 3, 2, 212, 4, + 2, 213, 1, 2, 213, 2, 2, 213, + 3, 2, 213, 4, 2, 214, 1, 2, + 214, 2, 2, 214, 3, 2, 214, 4, + 2, 215, 1, 2, 215, 2, 2, 215, + 3, 2, 215, 4, 2, 216, 1, 2, + 216, 2, 2, 216, 3, 2, 216, 4, + 2, 217, 1, 2, 217, 2, 2, 217, + 3, 2, 217, 4, 2, 218, 1, 2, + 218, 2, 2, 218, 3, 2, 218, 4, + 2, 219, 1, 2, 219, 2, 2, 219, + 3, 2, 219, 4, 2, 220, 1, 2, + 220, 2, 2, 220, 3, 2, 220, 4, + 2, 221, 1, 2, 221, 2, 2, 221, + 3, 2, 221, 4, 2, 222, 1, 2, + 222, 2, 2, 222, 3, 2, 222, 4, + 2, 223, 1, 2, 223, 2, 2, 223, + 3, 2, 223, 4, 2, 224, 1, 2, + 224, 2, 2, 224, 3, 2, 224, 4, + 2, 225, 1, 2, 225, 2, 2, 225, + 3, 2, 225, 4, 2, 226, 1, 2, + 226, 2, 2, 226, 3, 2, 226, 4, + 2, 227, 1, 2, 227, 2, 2, 227, + 3, 2, 227, 4, 2, 228, 1, 2, + 228, 2, 2, 228, 3, 2, 228, 4, + 2, 229, 1, 2, 229, 2, 2, 229, + 3, 2, 229, 4, 2, 230, 1, 2, + 230, 2, 2, 230, 3, 2, 230, 4, + 2, 231, 1, 2, 231, 2, 2, 231, + 3, 2, 231, 4, 2, 232, 1, 2, + 232, 2, 2, 232, 3, 2, 232, 4, + 2, 233, 1, 2, 233, 2, 2, 233, + 3, 2, 233, 4, 2, 234, 1, 2, + 234, 2, 2, 234, 3, 2, 234, 4, + 2, 235, 1, 2, 235, 2, 2, 235, + 3, 2, 235, 4, 2, 236, 1, 2, + 236, 2, 2, 236, 3, 2, 236, 4, + 2, 237, 1, 2, 237, 2, 2, 237, + 3, 2, 237, 4, 2, 238, 1, 2, + 238, 2, 2, 238, 3, 2, 238, 4, + 2, 239, 1, 2, 239, 2, 2, 239, + 3, 2, 239, 4, 2, 240, 1, 2, + 240, 2, 2, 240, 3, 2, 240, 4, + 2, 241, 1, 2, 241, 2, 2, 241, + 3, 2, 241, 4, 2, 242, 1, 2, + 242, 2, 2, 242, 3, 2, 242, 4, + 2, 243, 1, 2, 243, 2, 2, 243, + 3, 2, 243, 4, 2, 244, 1, 2, + 244, 2, 2, 244, 3, 2, 244, 4, + 2, 245, 1, 2, 245, 2, 2, 245, + 3, 2, 245, 4, 2, 246, 1, 2, + 246, 2, 2, 246, 3, 2, 246, 4, + 2, 247, 1, 2, 247, 2, 2, 247, + 3, 2, 247, 4, 2, 248, 1, 2, + 248, 2, 2, 248, 3, 2, 248, 4, + 2, 249, 1, 2, 249, 2, 2, 249, + 3, 2, 249, 4, 2, 250, 1, 2, + 250, 2, 2, 250, 3, 2, 250, 4, + 2, 251, 1, 2, 251, 2, 2, 251, + 3, 2, 251, 4, 2, 252, 1, 2, + 252, 2, 2, 252, 3, 2, 252, 4, + 2, 253, 1, 2, 253, 2, 2, 253, + 3, 2, 253, 4, 2, 254, 1, 2, + 254, 2, 2, 254, 3, 2, 254, 4, + 2, 255, 1, 2, 255, 2, 2, 255, + 3, 2, 255, 4, 2, 256, 1, 2, + 256, 2, 2, 256, 3, 2, 256, 4, + 2, 257, 1, 2, 257, 2, 2, 257, + 3, 2, 257, 4, 2, 258, 1, 2, + 258, 2, 2, 258, 3, 2, 258, 4, + 2, 259, 1, 2, 259, 2, 2, 259, + 3, 2, 259, 4, 2, 260, 1, 2, + 260, 2, 2, 260, 3, 2, 260, 4, + 2, 261, 1, 2, 261, 2, 2, 261, + 3, 2, 261, 4, 2, 262, 1, 2, + 262, 2, 2, 262, 3, 2, 262, 4, + 2, 263, 1, 2, 263, 2, 2, 263, + 3, 2, 263, 4, 2, 264, 1, 2, + 264, 2, 2, 264, 3, 2, 264, 4, + 2, 265, 1, 2, 265, 2, 2, 265, + 3, 2, 265, 4, 2, 266, 0, 2, + 269, 1, 2, 269, 2, 2, 269, 3, + 2, 269, 4, 2, 270, 1, 2, 270, + 2, 2, 270, 3, 2, 270, 4, 2, + 271, 1, 2, 271, 2, 2, 271, 3, + 2, 271, 4, 2, 272, 1, 2, 272, + 2, 2, 272, 3, 2, 272, 4, 2, + 279, 1, 2, 279, 2, 2, 279, 3, + 2, 279, 4, 2, 280, 1, 2, 280, + 2, 2, 280, 3, 2, 280, 4, 2, + 283, 0, 2, 284, 315, 2, 286, 108, + 2, 291, 108, 2, 295, 1, 2, 295, + 2, 2, 295, 3, 2, 295, 4, 2, + 296, 0, 2, 300, 1, 2, 300, 2, + 2, 300, 3, 2, 300, 4, 2, 315, + 8, 2, 316, 1, 2, 316, 4, 2, + 319, 316, 2, 320, 8, 2, 320, 315, + 2, 321, 314, 2, 322, 314, 2, 323, + 314, 2, 324, 314, 2, 325, 314, 2, + 326, 314, 2, 327, 314, 2, 328, 314, + 2, 329, 314, 2, 330, 314, 2, 331, + 314, 2, 332, 314, 2, 333, 314, 2, + 334, 314, 2, 335, 314, 2, 336, 314, + 2, 337, 314, 2, 338, 314, 2, 339, + 314, 2, 340, 314, 2, 341, 314, 2, + 342, 314, 2, 343, 314, 2, 344, 314, + 2, 345, 314, 2, 346, 314, 2, 347, + 314, 2, 348, 314, 2, 349, 314, 2, + 350, 314, 2, 351, 314, 2, 352, 314, + 2, 353, 314, 2, 354, 314, 2, 355, + 314, 2, 356, 314, 2, 357, 314, 2, + 358, 314, 2, 359, 314, 2, 360, 314, + 2, 361, 314, 2, 362, 314, 2, 363, + 314, 2, 364, 314, 2, 365, 314, 2, + 366, 314, 2, 367, 314, 2, 368, 314, + 2, 369, 314, 2, 370, 314, 2, 371, + 314, 2, 372, 314, 2, 373, 1, 3, + 0, 49, 1, 3, 0, 49, 2, 3, + 0, 49, 3, 3, 0, 49, 4, 3, + 1, 7, 373, 3, 1, 32, 7, 3, + 1, 71, 0, 3, 1, 111, 0, 3, + 1, 266, 0, 3, 1, 283, 0, 3, + 1, 296, 0, 3, 1, 316, 373, 3, + 2, 7, 32, 3, 2, 32, 7, 3, + 3, 7, 32, 3, 3, 32, 7, 3, + 4, 7, 32, 3, 4, 32, 7, 3, + 4, 71, 0, 3, 4, 111, 0, 3, + 4, 266, 0, 3, 4, 283, 0, 3, + 4, 296, 0, 3, 4, 316, 7, 3, + 5, 7, 2, 3, 5, 7, 3, 3, + 5, 7, 4, 3, 6, 1, 373, 3, + 6, 373, 1, 3, 7, 2, 5, 3, + 7, 2, 32, 3, 7, 3, 5, 3, + 7, 3, 32, 3, 7, 4, 5, 3, + 7, 4, 32, 3, 7, 373, 1, 3, + 9, 11, 1, 3, 15, 21, 0, 3, + 20, 7, 2, 3, 20, 7, 3, 3, + 20, 7, 4, 3, 20, 83, 7, 3, + 23, 13, 14, 3, 27, 71, 0, 3, + 27, 302, 29, 3, 28, 94, 95, 3, + 29, 300, 1, 3, 29, 300, 2, 3, + 29, 300, 3, 3, 29, 300, 4, 3, + 29, 304, 300, 3, 31, 1, 93, 3, + 31, 2, 7, 3, 31, 2, 93, 3, + 31, 3, 7, 3, 31, 3, 93, 3, + 31, 4, 7, 3, 31, 4, 93, 3, + 31, 93, 7, 3, 31, 319, 316, 3, + 31, 321, 314, 3, 32, 1, 7, 3, + 32, 2, 7, 3, 32, 3, 7, 3, + 32, 4, 7, 3, 33, 89, 8, 3, + 33, 315, 8, 3, 33, 320, 8, 3, + 33, 320, 315, 3, 35, 1, 0, 3, + 35, 4, 0, 3, 37, 36, 316, 3, + 38, 156, 315, 3, 38, 320, 8, 3, + 38, 320, 315, 3, 40, 42, 273, 3, + 40, 42, 274, 3, 40, 42, 275, 3, + 40, 42, 276, 3, 40, 42, 277, 3, + 40, 42, 278, 3, 42, 273, 1, 3, + 42, 273, 2, 3, 42, 273, 3, 3, + 42, 273, 4, 3, 42, 274, 1, 3, + 42, 274, 2, 3, 42, 274, 3, 3, + 42, 274, 4, 3, 42, 275, 1, 3, + 42, 275, 2, 3, 42, 275, 3, 3, + 42, 275, 4, 3, 42, 276, 1, 3, + 42, 276, 2, 3, 42, 276, 3, 3, + 42, 276, 4, 3, 42, 277, 1, 3, + 42, 277, 2, 3, 42, 277, 3, 3, + 42, 277, 4, 3, 42, 278, 1, 3, + 42, 278, 2, 3, 42, 278, 3, 3, + 42, 278, 4, 3, 46, 145, 300, 3, + 46, 300, 1, 3, 46, 300, 2, 3, + 46, 300, 3, 3, 46, 300, 4, 3, + 48, 314, 1, 3, 48, 314, 2, 3, + 48, 314, 3, 3, 48, 314, 4, 3, + 48, 314, 316, 3, 50, 38, 73, 3, + 50, 38, 315, 3, 50, 38, 320, 3, + 55, 37, 36, 3, 56, 7, 2, 3, + 56, 7, 3, 3, 56, 7, 4, 3, + 56, 47, 0, 3, 56, 47, 1, 3, + 56, 47, 2, 3, 56, 47, 3, 3, + 56, 47, 4, 3, 56, 93, 1, 3, + 56, 93, 2, 3, 56, 93, 3, 3, + 56, 93, 4, 3, 66, 68, 0, 3, + 66, 68, 61, 3, 67, 62, 63, 3, + 68, 61, 0, 3, 70, 26, 69, 3, + 72, 0, 1, 3, 75, 23, 13, 3, + 76, 0, 1, 3, 80, 2, 7, 3, + 80, 3, 7, 3, 80, 4, 7, 3, + 80, 7, 4, 3, 82, 23, 13, 3, + 85, 0, 1, 3, 88, 7, 1, 3, + 88, 7, 4, 3, 88, 30, 25, 3, + 88, 32, 7, 3, 90, 30, 25, 3, + 90, 91, 316, 3, 93, 2, 7, 3, + 93, 3, 7, 3, 93, 4, 7, 3, + 96, 107, 315, 3, 96, 156, 315, 3, + 97, 98, 0, 3, 97, 98, 1, 3, + 97, 98, 2, 3, 97, 98, 3, 3, + 97, 98, 4, 3, 97, 98, 29, 3, + 99, 100, 0, 3, 99, 100, 1, 3, + 99, 100, 2, 3, 99, 100, 3, 3, + 99, 100, 4, 3, 99, 100, 29, 3, + 105, 106, 0, 3, 105, 106, 1, 3, + 105, 106, 2, 3, 105, 106, 3, 3, + 105, 106, 4, 3, 110, 112, 285, 3, + 110, 294, 315, 3, 147, 145, 300, 3, + 153, 145, 300, 3, 156, 157, 315, 3, + 212, 266, 0, 3, 213, 266, 0, 3, + 214, 266, 0, 3, 215, 266, 0, 3, + 216, 266, 0, 3, 217, 266, 0, 3, + 218, 266, 0, 3, 219, 266, 0, 3, + 220, 266, 0, 3, 221, 266, 0, 3, + 222, 266, 0, 3, 223, 266, 0, 3, + 224, 266, 0, 3, 225, 266, 0, 3, + 226, 266, 0, 3, 227, 266, 0, 3, + 228, 266, 0, 3, 229, 266, 0, 3, + 230, 266, 0, 3, 231, 266, 0, 3, + 232, 266, 0, 3, 233, 266, 0, 3, + 234, 266, 0, 3, 235, 266, 0, 3, + 236, 266, 0, 3, 237, 266, 0, 3, + 238, 266, 0, 3, 239, 266, 0, 3, + 240, 266, 0, 3, 241, 266, 0, 3, + 242, 266, 0, 3, 243, 266, 0, 3, + 244, 266, 0, 3, 245, 266, 0, 3, + 246, 266, 0, 3, 247, 266, 0, 3, + 248, 266, 0, 3, 249, 266, 0, 3, + 250, 266, 0, 3, 251, 266, 0, 3, + 252, 266, 0, 3, 253, 266, 0, 3, + 254, 266, 0, 3, 255, 266, 0, 3, + 256, 266, 0, 3, 257, 266, 0, 3, + 258, 266, 0, 3, 259, 266, 0, 3, + 260, 266, 0, 3, 261, 266, 0, 3, + 262, 266, 0, 3, 263, 266, 0, 3, + 264, 266, 0, 3, 265, 266, 0, 3, + 282, 37, 36, 3, 287, 288, 0, 3, + 287, 289, 0, 3, 290, 110, 315, 3, + 292, 293, 0, 3, 294, 110, 315, 3, + 295, 296, 0, 3, 300, 296, 0, 3, + 303, 28, 306, 3, 315, 8, 89, 3, + 316, 7, 1, 3, 316, 7, 4, 3, + 316, 30, 25, 3, 316, 373, 1, 3, + 318, 30, 25, 3, 320, 315, 8, 3, + 321, 314, 1, 3, 321, 314, 2, 3, + 321, 314, 3, 3, 321, 314, 4, 3, + 321, 314, 7, 3, 321, 314, 316, 3, + 322, 314, 1, 3, 322, 314, 2, 3, + 322, 314, 3, 3, 322, 314, 4, 3, + 322, 314, 316, 3, 323, 314, 1, 3, + 323, 314, 2, 3, 323, 314, 3, 3, + 323, 314, 4, 3, 323, 314, 316, 3, + 324, 314, 1, 3, 324, 314, 2, 3, + 324, 314, 3, 3, 324, 314, 4, 3, + 324, 314, 316, 3, 325, 314, 1, 3, + 325, 314, 2, 3, 325, 314, 3, 3, + 325, 314, 4, 3, 325, 314, 316, 3, + 326, 314, 1, 3, 326, 314, 2, 3, + 326, 314, 3, 3, 326, 314, 4, 3, + 326, 314, 316, 3, 327, 314, 1, 3, + 327, 314, 2, 3, 327, 314, 3, 3, + 327, 314, 4, 3, 327, 314, 316, 3, + 328, 314, 1, 3, 328, 314, 2, 3, + 328, 314, 3, 3, 328, 314, 4, 3, + 328, 314, 316, 3, 329, 314, 1, 3, + 329, 314, 2, 3, 329, 314, 3, 3, + 329, 314, 4, 3, 329, 314, 316, 3, + 330, 314, 1, 3, 330, 314, 2, 3, + 330, 314, 3, 3, 330, 314, 4, 3, + 330, 314, 316, 3, 331, 314, 1, 3, + 331, 314, 2, 3, 331, 314, 3, 3, + 331, 314, 4, 3, 331, 314, 316, 3, + 332, 314, 1, 3, 332, 314, 2, 3, + 332, 314, 3, 3, 332, 314, 4, 3, + 332, 314, 316, 3, 333, 314, 1, 3, + 333, 314, 2, 3, 333, 314, 3, 3, + 333, 314, 4, 3, 333, 314, 316, 3, + 334, 314, 1, 3, 334, 314, 2, 3, + 334, 314, 3, 3, 334, 314, 4, 3, + 334, 314, 316, 3, 335, 314, 1, 3, + 335, 314, 2, 3, 335, 314, 3, 3, + 335, 314, 4, 3, 335, 314, 316, 3, + 336, 314, 1, 3, 336, 314, 2, 3, + 336, 314, 3, 3, 336, 314, 4, 3, + 336, 314, 316, 3, 337, 314, 1, 3, + 337, 314, 2, 3, 337, 314, 3, 3, + 337, 314, 4, 3, 337, 314, 316, 3, + 338, 314, 1, 3, 338, 314, 2, 3, + 338, 314, 3, 3, 338, 314, 4, 3, + 338, 314, 316, 3, 339, 314, 1, 3, + 339, 314, 2, 3, 339, 314, 3, 3, + 339, 314, 4, 3, 339, 314, 316, 3, + 340, 314, 1, 3, 340, 314, 2, 3, + 340, 314, 3, 3, 340, 314, 4, 3, + 340, 314, 316, 3, 341, 314, 1, 3, + 341, 314, 2, 3, 341, 314, 3, 3, + 341, 314, 4, 3, 341, 314, 316, 3, + 342, 314, 1, 3, 342, 314, 2, 3, + 342, 314, 3, 3, 342, 314, 4, 3, + 342, 314, 316, 3, 343, 314, 1, 3, + 343, 314, 2, 3, 343, 314, 3, 3, + 343, 314, 4, 3, 343, 314, 316, 3, + 344, 314, 1, 3, 344, 314, 2, 3, + 344, 314, 3, 3, 344, 314, 4, 3, + 344, 314, 316, 3, 345, 314, 1, 3, + 345, 314, 2, 3, 345, 314, 3, 3, + 345, 314, 4, 3, 345, 314, 316, 3, + 346, 314, 1, 3, 346, 314, 2, 3, + 346, 314, 3, 3, 346, 314, 4, 3, + 346, 314, 316, 3, 347, 314, 1, 3, + 347, 314, 2, 3, 347, 314, 3, 3, + 347, 314, 4, 3, 347, 314, 316, 3, + 348, 314, 1, 3, 348, 314, 2, 3, + 348, 314, 3, 3, 348, 314, 4, 3, + 348, 314, 316, 3, 349, 314, 1, 3, + 349, 314, 2, 3, 349, 314, 3, 3, + 349, 314, 4, 3, 349, 314, 316, 3, + 350, 314, 1, 3, 350, 314, 2, 3, + 350, 314, 3, 3, 350, 314, 4, 3, + 350, 314, 316, 3, 351, 314, 1, 3, + 351, 314, 2, 3, 351, 314, 3, 3, + 351, 314, 4, 3, 351, 314, 316, 3, + 352, 314, 1, 3, 352, 314, 2, 3, + 352, 314, 3, 3, 352, 314, 4, 3, + 352, 314, 316, 3, 353, 314, 1, 3, + 353, 314, 2, 3, 353, 314, 3, 3, + 353, 314, 4, 3, 353, 314, 316, 3, + 354, 314, 1, 3, 354, 314, 2, 3, + 354, 314, 3, 3, 354, 314, 4, 3, + 354, 314, 316, 3, 355, 314, 1, 3, + 355, 314, 2, 3, 355, 314, 3, 3, + 355, 314, 4, 3, 355, 314, 316, 3, + 356, 314, 1, 3, 356, 314, 2, 3, + 356, 314, 3, 3, 356, 314, 4, 3, + 356, 314, 316, 3, 357, 314, 1, 3, + 357, 314, 2, 3, 357, 314, 3, 3, + 357, 314, 4, 3, 357, 314, 316, 3, + 358, 314, 1, 3, 358, 314, 2, 3, + 358, 314, 3, 3, 358, 314, 4, 3, + 358, 314, 316, 3, 359, 314, 1, 3, + 359, 314, 2, 3, 359, 314, 3, 3, + 359, 314, 4, 3, 359, 314, 316, 3, + 360, 314, 1, 3, 360, 314, 2, 3, + 360, 314, 3, 3, 360, 314, 4, 3, + 360, 314, 316, 3, 361, 314, 1, 3, + 361, 314, 2, 3, 361, 314, 3, 3, + 361, 314, 4, 3, 361, 314, 316, 3, + 362, 314, 1, 3, 362, 314, 2, 3, + 362, 314, 3, 3, 362, 314, 4, 3, + 362, 314, 316, 3, 363, 314, 1, 3, + 363, 314, 2, 3, 363, 314, 3, 3, + 363, 314, 4, 3, 363, 314, 316, 3, + 364, 314, 1, 3, 364, 314, 2, 3, + 364, 314, 3, 3, 364, 314, 4, 3, + 364, 314, 316, 3, 365, 314, 1, 3, + 365, 314, 2, 3, 365, 314, 3, 3, + 365, 314, 4, 3, 365, 314, 316, 3, + 366, 314, 1, 3, 366, 314, 2, 3, + 366, 314, 3, 3, 366, 314, 4, 3, + 366, 314, 316, 3, 367, 314, 1, 3, + 367, 314, 2, 3, 367, 314, 3, 3, + 367, 314, 4, 3, 367, 314, 316, 3, + 368, 314, 1, 3, 368, 314, 2, 3, + 368, 314, 3, 3, 368, 314, 4, 3, + 368, 314, 316, 3, 369, 314, 1, 3, + 369, 314, 2, 3, 369, 314, 3, 3, + 369, 314, 4, 3, 369, 314, 316, 3, + 370, 314, 1, 3, 370, 314, 2, 3, + 370, 314, 3, 3, 370, 314, 4, 3, + 370, 314, 316, 3, 371, 314, 1, 3, + 371, 314, 2, 3, 371, 314, 3, 3, + 371, 314, 4, 3, 371, 314, 316, 3, + 372, 314, 1, 3, 372, 314, 2, 3, + 372, 314, 3, 3, 372, 314, 4, 3, + 372, 314, 316, 3, 373, 1, 6, 4, + 1, 7, 373, 32, 4, 1, 316, 32, + 7, 4, 4, 316, 7, 32, 4, 4, + 316, 32, 7, 4, 6, 1, 7, 373, + 4, 6, 1, 85, 0, 4, 6, 72, + 0, 1, 4, 6, 76, 0, 1, 4, + 6, 85, 0, 1, 4, 7, 6, 373, + 1, 4, 7, 72, 0, 1, 4, 7, + 373, 1, 6, 4, 7, 373, 1, 32, + 4, 18, 15, 21, 0, 4, 20, 83, + 7, 2, 4, 20, 83, 7, 3, 4, + 20, 83, 7, 4, 4, 27, 1, 71, + 0, 4, 27, 4, 71, 0, 4, 27, + 302, 29, 300, 4, 29, 300, 296, 0, + 4, 29, 304, 300, 1, 4, 29, 304, + 300, 2, 4, 29, 304, 300, 3, 4, + 29, 304, 300, 4, 4, 31, 1, 7, + 373, 4, 31, 1, 319, 316, 4, 31, + 1, 321, 314, 4, 31, 2, 93, 7, + 4, 31, 2, 319, 316, 4, 31, 2, + 321, 314, 4, 31, 3, 93, 7, 4, + 31, 3, 319, 316, 4, 31, 3, 321, + 314, 4, 31, 4, 93, 7, 4, 31, + 4, 319, 316, 4, 31, 4, 321, 314, + 4, 31, 321, 314, 7, 4, 33, 38, + 320, 8, 4, 33, 50, 38, 320, 4, + 33, 320, 315, 8, 4, 37, 36, 30, + 25, 4, 38, 320, 315, 8, 4, 40, + 37, 36, 41, 4, 40, 42, 273, 1, + 4, 40, 42, 273, 2, 4, 40, 42, + 273, 3, 4, 40, 42, 273, 4, 4, + 40, 42, 274, 1, 4, 40, 42, 274, + 2, 4, 40, 42, 274, 3, 4, 40, + 42, 274, 4, 4, 40, 42, 275, 1, + 4, 40, 42, 275, 2, 4, 40, 42, + 275, 3, 4, 40, 42, 275, 4, 4, + 40, 42, 276, 1, 4, 40, 42, 276, + 2, 4, 40, 42, 276, 3, 4, 40, + 42, 276, 4, 4, 40, 42, 277, 1, + 4, 40, 42, 277, 2, 4, 40, 42, + 277, 3, 4, 40, 42, 277, 4, 4, + 40, 42, 278, 1, 4, 40, 42, 278, + 2, 4, 40, 42, 278, 3, 4, 40, + 42, 278, 4, 4, 42, 275, 283, 0, + 4, 42, 276, 283, 0, 4, 42, 277, + 283, 0, 4, 42, 278, 283, 0, 4, + 43, 39, 37, 36, 4, 44, 39, 37, + 36, 4, 46, 145, 300, 1, 4, 46, + 145, 300, 2, 4, 46, 145, 300, 3, + 4, 46, 145, 300, 4, 4, 46, 300, + 296, 0, 4, 48, 314, 1, 316, 4, + 48, 314, 4, 316, 4, 50, 38, 8, + 73, 4, 56, 55, 37, 36, 4, 66, + 68, 61, 0, 4, 75, 23, 13, 14, + 4, 82, 23, 13, 14, 4, 88, 32, + 1, 7, 4, 88, 32, 2, 7, 4, + 88, 32, 3, 7, 4, 88, 32, 4, + 7, 4, 90, 91, 30, 25, 4, 93, + 1, 7, 373, 4, 96, 156, 157, 315, + 4, 97, 98, 1, 0, 4, 97, 98, + 4, 0, 4, 97, 98, 29, 300, 4, + 99, 100, 1, 0, 4, 99, 100, 4, + 0, 4, 99, 100, 29, 300, 4, 105, + 106, 1, 0, 4, 105, 106, 4, 0, + 4, 147, 145, 300, 1, 4, 147, 145, + 300, 2, 4, 147, 145, 300, 3, 4, + 147, 145, 300, 4, 4, 147, 305, 37, + 36, 4, 153, 145, 300, 1, 4, 153, + 145, 300, 2, 4, 153, 145, 300, 3, + 4, 153, 145, 300, 4, 4, 212, 1, + 266, 0, 4, 212, 4, 266, 0, 4, + 213, 1, 266, 0, 4, 213, 4, 266, + 0, 4, 214, 1, 266, 0, 4, 214, + 4, 266, 0, 4, 215, 1, 266, 0, + 4, 215, 4, 266, 0, 4, 216, 1, + 266, 0, 4, 216, 4, 266, 0, 4, + 217, 1, 266, 0, 4, 217, 4, 266, + 0, 4, 218, 1, 266, 0, 4, 218, + 4, 266, 0, 4, 219, 1, 266, 0, + 4, 219, 4, 266, 0, 4, 220, 1, + 266, 0, 4, 220, 4, 266, 0, 4, + 221, 1, 266, 0, 4, 221, 4, 266, + 0, 4, 222, 1, 266, 0, 4, 222, + 4, 266, 0, 4, 223, 1, 266, 0, + 4, 223, 4, 266, 0, 4, 224, 1, + 266, 0, 4, 224, 4, 266, 0, 4, + 225, 1, 266, 0, 4, 225, 4, 266, + 0, 4, 226, 1, 266, 0, 4, 226, + 4, 266, 0, 4, 227, 1, 266, 0, + 4, 227, 4, 266, 0, 4, 228, 1, + 266, 0, 4, 228, 4, 266, 0, 4, + 229, 1, 266, 0, 4, 229, 4, 266, + 0, 4, 230, 1, 266, 0, 4, 230, + 4, 266, 0, 4, 231, 1, 266, 0, + 4, 231, 4, 266, 0, 4, 232, 1, + 266, 0, 4, 232, 4, 266, 0, 4, + 233, 1, 266, 0, 4, 233, 4, 266, + 0, 4, 234, 1, 266, 0, 4, 234, + 4, 266, 0, 4, 235, 1, 266, 0, + 4, 235, 4, 266, 0, 4, 236, 1, + 266, 0, 4, 236, 4, 266, 0, 4, + 237, 1, 266, 0, 4, 237, 4, 266, + 0, 4, 238, 1, 266, 0, 4, 238, + 4, 266, 0, 4, 239, 1, 266, 0, + 4, 239, 4, 266, 0, 4, 240, 1, + 266, 0, 4, 240, 4, 266, 0, 4, + 241, 1, 266, 0, 4, 241, 4, 266, + 0, 4, 242, 1, 266, 0, 4, 242, + 4, 266, 0, 4, 243, 1, 266, 0, + 4, 243, 4, 266, 0, 4, 244, 1, + 266, 0, 4, 244, 4, 266, 0, 4, + 245, 1, 266, 0, 4, 245, 4, 266, + 0, 4, 246, 1, 266, 0, 4, 246, + 4, 266, 0, 4, 247, 1, 266, 0, + 4, 247, 4, 266, 0, 4, 248, 1, + 266, 0, 4, 248, 4, 266, 0, 4, + 249, 1, 266, 0, 4, 249, 4, 266, + 0, 4, 250, 1, 266, 0, 4, 250, + 4, 266, 0, 4, 251, 1, 266, 0, + 4, 251, 4, 266, 0, 4, 252, 1, + 266, 0, 4, 252, 4, 266, 0, 4, + 253, 1, 266, 0, 4, 253, 4, 266, + 0, 4, 254, 1, 266, 0, 4, 254, + 4, 266, 0, 4, 255, 1, 266, 0, + 4, 255, 4, 266, 0, 4, 256, 1, + 266, 0, 4, 256, 4, 266, 0, 4, + 257, 1, 266, 0, 4, 257, 4, 266, + 0, 4, 258, 1, 266, 0, 4, 258, + 4, 266, 0, 4, 259, 1, 266, 0, + 4, 259, 4, 266, 0, 4, 260, 1, + 266, 0, 4, 260, 4, 266, 0, 4, + 261, 1, 266, 0, 4, 261, 4, 266, + 0, 4, 262, 1, 266, 0, 4, 262, + 4, 266, 0, 4, 263, 1, 266, 0, + 4, 263, 4, 266, 0, 4, 264, 1, + 266, 0, 4, 264, 4, 266, 0, 4, + 265, 1, 266, 0, 4, 265, 4, 266, + 0, 4, 295, 1, 296, 0, 4, 295, + 4, 296, 0, 4, 300, 1, 296, 0, + 4, 300, 4, 296, 0, 4, 301, 28, + 26, 69, 4, 316, 7, 373, 1, 4, + 321, 314, 1, 316, 4, 321, 314, 2, + 7, 4, 321, 314, 3, 7, 4, 321, + 314, 4, 7, 4, 321, 314, 4, 316, + 4, 322, 314, 1, 316, 4, 322, 314, + 4, 316, 4, 323, 314, 1, 316, 4, + 323, 314, 4, 316, 4, 324, 314, 1, + 316, 4, 324, 314, 4, 316, 4, 325, + 314, 1, 316, 4, 325, 314, 4, 316, + 4, 326, 314, 1, 316, 4, 326, 314, + 4, 316, 4, 327, 314, 1, 316, 4, + 327, 314, 4, 316, 4, 328, 314, 1, + 316, 4, 328, 314, 4, 316, 4, 329, + 314, 1, 316, 4, 329, 314, 4, 316, + 4, 330, 314, 1, 316, 4, 330, 314, + 4, 316, 4, 331, 314, 1, 316, 4, + 331, 314, 4, 316, 4, 332, 314, 1, + 316, 4, 332, 314, 4, 316, 4, 333, + 314, 1, 316, 4, 333, 314, 4, 316, + 4, 334, 314, 1, 316, 4, 334, 314, + 4, 316, 4, 335, 314, 1, 316, 4, + 335, 314, 4, 316, 4, 336, 314, 1, + 316, 4, 336, 314, 4, 316, 4, 337, + 314, 1, 316, 4, 337, 314, 4, 316, + 4, 338, 314, 1, 316, 4, 338, 314, + 4, 316, 4, 339, 314, 1, 316, 4, + 339, 314, 4, 316, 4, 340, 314, 1, + 316, 4, 340, 314, 4, 316, 4, 341, + 314, 1, 316, 4, 341, 314, 4, 316, + 4, 342, 314, 1, 316, 4, 342, 314, + 4, 316, 4, 343, 314, 1, 316, 4, + 343, 314, 4, 316, 4, 344, 314, 1, + 316, 4, 344, 314, 4, 316, 4, 345, + 314, 1, 316, 4, 345, 314, 4, 316, + 4, 346, 314, 1, 316, 4, 346, 314, + 4, 316, 4, 347, 314, 1, 316, 4, + 347, 314, 4, 316, 4, 348, 314, 1, + 316, 4, 348, 314, 4, 316, 4, 349, + 314, 1, 316, 4, 349, 314, 4, 316, + 4, 350, 314, 1, 316, 4, 350, 314, + 4, 316, 4, 351, 314, 1, 316, 4, + 351, 314, 4, 316, 4, 352, 314, 1, + 316, 4, 352, 314, 4, 316, 4, 353, + 314, 1, 316, 4, 353, 314, 4, 316, + 4, 354, 314, 1, 316, 4, 354, 314, + 4, 316, 4, 355, 314, 1, 316, 4, + 355, 314, 4, 316, 4, 356, 314, 1, + 316, 4, 356, 314, 4, 316, 4, 357, + 314, 1, 316, 4, 357, 314, 4, 316, + 4, 358, 314, 1, 316, 4, 358, 314, + 4, 316, 4, 359, 314, 1, 316, 4, + 359, 314, 4, 316, 4, 360, 314, 1, + 316, 4, 360, 314, 4, 316, 4, 361, + 314, 1, 316, 4, 361, 314, 4, 316, + 4, 362, 314, 1, 316, 4, 362, 314, + 4, 316, 4, 363, 314, 1, 316, 4, + 363, 314, 4, 316, 4, 364, 314, 1, + 316, 4, 364, 314, 4, 316, 4, 365, + 314, 1, 316, 4, 365, 314, 4, 316, + 4, 366, 314, 1, 316, 4, 366, 314, + 4, 316, 4, 367, 314, 1, 316, 4, + 367, 314, 4, 316, 4, 368, 314, 1, + 316, 4, 368, 314, 4, 316, 4, 369, + 314, 1, 316, 4, 369, 314, 4, 316, + 4, 370, 314, 1, 316, 4, 370, 314, + 4, 316, 4, 371, 314, 1, 316, 4, + 371, 314, 4, 316, 4, 372, 314, 1, + 316, 4, 372, 314, 4, 316, 5, 20, + 7, 76, 0, 1, 5, 27, 302, 29, + 300, 1, 5, 27, 302, 29, 300, 2, + 5, 27, 302, 29, 300, 3, 5, 27, + 302, 29, 300, 4, 5, 29, 300, 1, + 296, 0, 5, 29, 300, 4, 296, 0, + 5, 29, 304, 300, 296, 0, 5, 31, + 1, 93, 7, 373, 5, 31, 1, 321, + 314, 316, 5, 31, 2, 321, 314, 7, + 5, 31, 3, 321, 314, 7, 5, 31, + 4, 321, 314, 7, 5, 31, 4, 321, + 314, 316, 5, 33, 38, 320, 315, 8, + 5, 37, 36, 316, 30, 25, 5, 40, + 42, 275, 283, 0, 5, 40, 42, 276, + 283, 0, 5, 40, 42, 277, 283, 0, + 5, 40, 42, 278, 283, 0, 5, 42, + 275, 1, 283, 0, 5, 42, 275, 4, + 283, 0, 5, 42, 276, 1, 283, 0, + 5, 42, 276, 4, 283, 0, 5, 42, + 277, 1, 283, 0, 5, 42, 277, 4, + 283, 0, 5, 42, 278, 1, 283, 0, + 5, 42, 278, 4, 283, 0, 5, 46, + 145, 300, 296, 0, 5, 46, 300, 1, + 296, 0, 5, 46, 300, 4, 296, 0, + 5, 50, 38, 320, 315, 8, 5, 56, 7, 72, 0, 1, 5, 80, 7, 85, - 0, 1, 5, 90, 91, 314, 30, 25, - 5, 97, 98, 29, 298, 1, 5, 97, - 98, 29, 298, 2, 5, 97, 98, 29, - 298, 3, 5, 97, 98, 29, 298, 4, - 5, 99, 100, 29, 298, 1, 5, 99, - 100, 29, 298, 2, 5, 99, 100, 29, - 298, 3, 5, 99, 100, 29, 298, 4, - 5, 147, 145, 298, 294, 0, 5, 153, - 145, 298, 294, 0, 5, 279, 43, 39, - 37, 36, 5, 319, 312, 1, 7, 370, - 5, 319, 312, 4, 314, 7, 5, 319, - 312, 314, 7, 4, 6, 20, 83, 7, - 85, 0, 1, 6, 27, 300, 29, 298, - 294, 0, 6, 29, 302, 298, 1, 294, - 0, 6, 29, 302, 298, 4, 294, 0, - 6, 31, 1, 319, 312, 7, 370, 6, - 31, 4, 319, 312, 314, 7, 6, 33, - 50, 38, 318, 313, 8, 6, 40, 42, - 273, 1, 281, 0, 6, 40, 42, 273, - 4, 281, 0, 6, 40, 42, 274, 1, - 281, 0, 6, 40, 42, 274, 4, 281, - 0, 6, 40, 42, 275, 1, 281, 0, - 6, 40, 42, 275, 4, 281, 0, 6, - 40, 42, 276, 1, 281, 0, 6, 40, - 42, 276, 4, 281, 0, 6, 46, 145, - 298, 1, 294, 0, 6, 46, 145, 298, - 4, 294, 0, 6, 97, 98, 29, 298, - 294, 0, 6, 99, 100, 29, 298, 294, - 0, 6, 147, 145, 298, 1, 294, 0, - 6, 147, 145, 298, 4, 294, 0, 6, - 153, 145, 298, 1, 294, 0, 6, 153, - 145, 298, 4, 294, 0, 6, 319, 312, - 1, 314, 7, 370, 6, 319, 312, 314, - 7, 370, 1, 7, 27, 300, 29, 298, - 1, 294, 0, 7, 27, 300, 29, 298, - 4, 294, 0, 7, 31, 1, 319, 312, - 314, 7, 370, 7, 97, 98, 29, 298, - 1, 294, 0, 7, 97, 98, 29, 298, - 4, 294, 0, 7, 99, 100, 29, 298, - 1, 294, 0, 7, 99, 100, 29, 298, - 4, 294, 0 + 0, 1, 5, 90, 91, 316, 30, 25, + 5, 97, 98, 29, 300, 1, 5, 97, + 98, 29, 300, 2, 5, 97, 98, 29, + 300, 3, 5, 97, 98, 29, 300, 4, + 5, 99, 100, 29, 300, 1, 5, 99, + 100, 29, 300, 2, 5, 99, 100, 29, + 300, 3, 5, 99, 100, 29, 300, 4, + 5, 147, 145, 300, 296, 0, 5, 153, + 145, 300, 296, 0, 5, 281, 43, 39, + 37, 36, 5, 321, 314, 1, 7, 373, + 5, 321, 314, 4, 316, 7, 5, 321, + 314, 316, 7, 4, 6, 20, 83, 7, + 85, 0, 1, 6, 27, 302, 29, 300, + 296, 0, 6, 29, 304, 300, 1, 296, + 0, 6, 29, 304, 300, 4, 296, 0, + 6, 31, 1, 321, 314, 7, 373, 6, + 31, 4, 321, 314, 316, 7, 6, 33, + 50, 38, 320, 315, 8, 6, 40, 42, + 275, 1, 283, 0, 6, 40, 42, 275, + 4, 283, 0, 6, 40, 42, 276, 1, + 283, 0, 6, 40, 42, 276, 4, 283, + 0, 6, 40, 42, 277, 1, 283, 0, + 6, 40, 42, 277, 4, 283, 0, 6, + 40, 42, 278, 1, 283, 0, 6, 40, + 42, 278, 4, 283, 0, 6, 46, 145, + 300, 1, 296, 0, 6, 46, 145, 300, + 4, 296, 0, 6, 97, 98, 29, 300, + 296, 0, 6, 99, 100, 29, 300, 296, + 0, 6, 147, 145, 300, 1, 296, 0, + 6, 147, 145, 300, 4, 296, 0, 6, + 153, 145, 300, 1, 296, 0, 6, 153, + 145, 300, 4, 296, 0, 6, 321, 314, + 1, 316, 7, 373, 6, 321, 314, 316, + 7, 373, 1, 7, 27, 302, 29, 300, + 1, 296, 0, 7, 27, 302, 29, 300, + 4, 296, 0, 7, 31, 1, 321, 314, + 316, 7, 373, 7, 97, 98, 29, 300, + 1, 296, 0, 7, 97, 98, 29, 300, + 4, 296, 0, 7, 99, 100, 29, 300, + 1, 296, 0, 7, 99, 100, 29, 300, + 4, 296, 0 }; static const short _zone_scanner_cond_offsets[] = { @@ -887,169 +895,171 @@ static const short _zone_scanner_cond_offsets[] = { 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 293, 298, 303, 308, 308, 308, 310, 310, - 310, 310, 312, 312, 314, 317, 319, 321, - 326, 331, 336, 341, 344, 346, 351, 356, - 358, 360, 362, 364, 366, 368, 370, 372, - 374, 376, 378, 380, 382, 384, 386, 388, - 390, 393, 396, 398, 401, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 404, - 405, 405, 405, 405, 405, 406, 408, 410, - 412, 414, 414, 416, 416, 418, 421, 423, - 425, 425, 427, 429, 429, 429, 429, 429, - 429, 431, 434, 436, 438, 440, 442, 442, - 444, 446, 446, 446, 446, 446, 446, 448, - 451, 453, 456, 459, 459, 459, 459, 459, - 461, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, - 464, 464, 464, 464, 466, 468, 470, 470, - 470, 472, 475, 475, 475, 477, 477, 477, - 477, 477, 477, 479, 481, 481, 481, 483, - 483, 483, 483, 485, 485, 485, 485, 487, - 487, 487, 487, 487, 489, 489, 489, 489, - 491, 491, 491, 491, 493, 495, 495, 495, - 497, 497, 497, 497, 497, 499, 499, 501, - 501, 501, 501, 501, 503, 503, 503, 503, - 505, 505, 505, 505, 505, 505, 505, 505, - 507, 507, 507, 509, 511, 511, 511, 513, - 513, 515, 515, 517, 519, 519, 519, 519, - 519, 521, 523, 523, 523, 523, 523, 525, - 525, 527, 529, 529, 531, 533, 533, 533, - 533, 533, 535, 535, 535, 535, 535, 535, - 535, 535, 535, 535, 537, 537, 537, 539, - 539, 539, 539, 539, 539, 539, 541, 543, - 543, 543, 543, 545, 547, 547, 547, 547, - 547, 547, 549, 549, 551, 551, 553, 553, - 555, 555, 555, 555, 557, 557, 557, 559, - 559, 559, 559, 561, 561, 563, 563, 563, - 563, 565, 565, 565, 567, 567, 567, 567, - 567, 567, 569, 569, 569, 569, 569, 569, - 571, 571, 571, 571, 573, 573, 575, 577, - 579, 581, 583, 583, 585, 588, 591, 594, - 596, 598, 600, 602, 602, 604, 607, 610, - 612, 615, 615, 615, 615, 615, 615, 615, - 615, 615, 615, 615, 615, 615, 615, 615, - 615, 615, 615, 615, 615, 615, 615, 615, - 615, 615, 615, 615, 615, 615, 615, 615, - 615, 615, 615, 615, 615, 615, 615, 615, - 615, 615, 615, 615, 615, 615, 615, 615, - 615, 615, 615, 615, 615, 615, 615, 615, - 615, 615, 617, 619, 619, 619, 619, 619, - 619, 621, 624, 624, 624, 624, 624, 624, - 624, 624, 624, 626, 628, 628, 630, 630, - 630, 630, 630, 630, 630, 630, 630, 630, - 630, 630, 630, 630, 632, 632, 632, 632, - 632, 632, 632, 632, 632, 632, 632, 632, + 310, 310, 312, 312, 312, 312, 314, 314, + 316, 319, 321, 323, 328, 333, 338, 343, + 346, 348, 353, 358, 360, 362, 364, 366, + 368, 370, 372, 374, 376, 378, 380, 382, + 384, 386, 388, 390, 392, 395, 398, 400, + 403, 405, 405, 405, 405, 405, 405, 405, + 405, 405, 405, 405, 405, 405, 405, 405, + 405, 405, 405, 406, 407, 407, 407, 407, + 407, 408, 410, 412, 414, 416, 416, 418, + 418, 420, 423, 425, 427, 427, 429, 431, + 431, 431, 431, 431, 431, 433, 436, 438, + 440, 442, 444, 444, 446, 448, 448, 448, + 448, 448, 448, 450, 453, 455, 458, 461, + 461, 461, 461, 461, 463, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 466, 466, 466, 466, + 466, 466, 466, 466, 468, 470, 472, 472, + 472, 474, 477, 477, 477, 479, 479, 479, + 479, 479, 479, 481, 483, 483, 483, 485, + 485, 485, 485, 487, 487, 487, 487, 489, + 489, 489, 489, 489, 491, 491, 491, 491, + 493, 493, 493, 493, 495, 497, 497, 497, + 499, 499, 499, 499, 499, 501, 501, 503, + 503, 503, 503, 503, 505, 505, 505, 505, + 507, 507, 507, 507, 507, 507, 507, 507, + 509, 509, 509, 511, 513, 513, 513, 515, + 515, 517, 517, 519, 521, 521, 521, 521, + 521, 523, 525, 525, 525, 525, 525, 527, + 527, 529, 531, 531, 533, 535, 535, 535, + 535, 535, 537, 537, 537, 537, 537, 537, + 537, 537, 537, 537, 539, 539, 539, 541, + 541, 541, 541, 541, 541, 541, 543, 545, + 545, 545, 545, 547, 549, 549, 549, 549, + 549, 549, 551, 551, 553, 553, 555, 555, + 557, 557, 557, 557, 559, 559, 559, 561, + 561, 561, 561, 563, 563, 565, 565, 565, + 565, 567, 567, 567, 569, 569, 569, 569, + 569, 569, 571, 571, 571, 571, 571, 571, + 573, 573, 573, 573, 575, 575, 575, 575, + 577, 577, 579, 581, 583, 585, 587, 587, + 589, 592, 595, 598, 600, 602, 604, 606, + 606, 608, 611, 614, 616, 619, 619, 619, + 619, 619, 619, 619, 619, 619, 619, 619, + 619, 619, 619, 619, 619, 619, 619, 619, + 619, 619, 619, 619, 619, 619, 619, 619, + 619, 619, 619, 619, 619, 619, 619, 619, + 619, 619, 619, 619, 619, 619, 619, 619, + 619, 619, 619, 619, 619, 619, 619, 619, + 619, 619, 619, 619, 619, 619, 621, 623, + 623, 623, 623, 623, 623, 625, 628, 628, + 628, 628, 628, 628, 628, 628, 628, 630, 632, 632, 634, 634, 634, 634, 634, 634, - 634, 634, 634, 634, 634, 636, 636, 636, - 636, 636, 638, 638, 638, 638, 638, 638, + 634, 634, 634, 634, 634, 634, 634, 634, + 636, 636, 636, 636, 636, 636, 636, 636, + 636, 636, 636, 636, 636, 636, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, - 638, 640, 640, 640, 640, 640, 640, 640, - 640, 640, 640, 640, 640, 640, 640, 640, - 640, 642, 642, 642, 642, 642, 644, 644, - 644, 644, 644, 644, 644, 644, 646, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 650, - 652, 654, 656, 658, 660, 662, 664, 666, - 668, 670, 672, 672, 672, 672, 672, 675, - 677, 677, 679, 682, 684, 684, 686, 689, - 691, 691, 693, 696, 699, 702, 702, 704, - 706, 706, 709, 709, 711, 713, 713, 716, - 716, 718, 720, 720, 723, 723, 725, 727, - 730, 730, 730, 730, 732, 734, 736, 738, - 740, 742, 744, 746, 748, 750, 752, 754, - 756, 758, 760, 762, 762, 764, 766, 768, - 770, 772, 774, 776, 778, 781, 783, 785, - 788, 790, 792, 794, 797, 799, 801, 803, - 806, 808, 810, 812, 815, 817, 820, 822, - 824, 827, 830, 833, 835, 838, 840, 842, - 845, 848, 848, 850, 852, 854, 856, 858, - 860, 860, 863, 866, 869, 869, 871, 873, - 875, 877, 879, 881, 883, 885, 887, 889, - 889, 892, 895, 898, 901, 904, 904, 906, - 908, 910, 912, 914, 916, 918, 921, 924, - 927, 929, 929, 929, 929, 929, 929, 931, - 934, 934, 934, 934, 934, 936, 938, 940, - 942, 944, 946, 946, 948, 951, 954, 957, - 960, 960, 962, 964, 966, 968, 968, 970, - 973, 976, 979, 979, 981, 983, 985, 987, - 989, 991, 997, 1008, 1010, 1013, 1019, 1022, - 1033, 1036, 1039, 1042, 1044, 1046, 1048, 1050, - 1056, 1059, 1062, 1064, 1066, 1068, 1070, 1076, - 1079, 1082, 1084, 1086, 1088, 1090, 1096, 1099, - 1102, 1105, 1105, 1107, 1109, 1111, 1113, 1115, - 1117, 1119, 1121, 1123, 1125, 1127, 1129, 1131, - 1133, 1135, 1137, 1139, 1142, 1145, 1148, 1151, - 1154, 1157, 1160, 1163, 1163, 1163, 1163, 1163, - 1165, 1167, 1169, 1171, 1173, 1175, 1177, 1180, - 1183, 1186, 1186, 1188, 1188, 1190, 1192, 1194, - 1196, 1198, 1200, 1202, 1204, 1204, 1204, 1204, - 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, - 1204, 1204, 1204, 1207, 1207, 1209, 1212, 1215, - 1218, 1218, 1220, 1222, 1224, 1226, 1228, 1230, - 1230, 1230, 1230, 1233, 1236, 1239, 1239, 1241, - 1243, 1245, 1247, 1249, 1251, 1251, 1253, 1256, - 1259, 1262, 1265, 1265, 1267, 1269, 1269, 1269, - 1272, 1272, 1274, 1276, 1278, 1280, 1282, 1284, - 1284, 1286, 1289, 1292, 1295, 1298, 1298, 1300, - 1302, 1302, 1305, 1305, 1307, 1309, 1309, 1309, - 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1312, - 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, - 1312, 1312, 1312, 1312, 1312, 1314, 1316, 1318, - 1320, 1320, 1323, 1326, 1326, 1328, 1330, 1332, - 1334, 1334, 1337, 1340, 1340, 1342, 1344, 1344, - 1344, 1347, 1347, 1349, 1351, 1353, 1355, 1357, - 1359, 1359, 1362, 1365, 1368, 1370, 1372, 1374, - 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1388, - 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1390, - 1390, 1392, 1395, 1395, 1395, 1397, 1400, 1400, - 1402, 1405, 1407, 1407, 1409, 1412, 1415, 1415, - 1415, 1417, 1420, 1420, 1420, 1420, 1420, 1420, - 1420, 1420, 1420, 1420, 1420, 1422, 1425, 1425, - 1425, 1427, 1430, 1432, 1435, 1437, 1440, 1442, - 1445, 1445, 1445, 1445, 1445, 1447, 1450, 1450, - 1452, 1455, 1455, 1457, 1460, 1460, 1466, 1469, - 1480, 1483, 1494, 1497, 1497, 1497, 1497, 1497, - 1497, 1497, 1497, 1499, 1502, 1502, 1502, 1504, - 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507 + 638, 640, 640, 640, 640, 640, 642, 642, + 642, 642, 642, 642, 642, 642, 642, 642, + 642, 642, 642, 642, 642, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 646, 646, 646, + 646, 646, 648, 648, 648, 648, 648, 648, + 648, 648, 650, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 654, 656, 658, 660, 662, + 664, 666, 668, 670, 672, 674, 676, 676, + 676, 676, 676, 679, 681, 681, 683, 686, + 688, 688, 690, 693, 695, 695, 697, 700, + 703, 706, 706, 708, 710, 710, 713, 713, + 715, 717, 717, 720, 720, 722, 724, 724, + 727, 727, 729, 731, 734, 734, 734, 734, + 736, 738, 740, 742, 744, 746, 748, 750, + 752, 754, 756, 758, 760, 762, 764, 766, + 766, 768, 770, 772, 774, 776, 778, 780, + 782, 785, 787, 789, 792, 794, 796, 798, + 801, 803, 805, 807, 810, 812, 814, 816, + 819, 821, 824, 826, 828, 831, 834, 837, + 839, 842, 844, 846, 849, 852, 852, 854, + 856, 858, 860, 862, 864, 864, 867, 870, + 873, 873, 875, 877, 879, 881, 883, 885, + 887, 889, 891, 893, 893, 896, 899, 902, + 905, 908, 908, 910, 912, 914, 916, 918, + 920, 922, 925, 928, 931, 933, 933, 933, + 933, 933, 933, 935, 938, 938, 938, 938, + 938, 940, 942, 944, 946, 948, 950, 950, + 952, 955, 958, 961, 964, 964, 966, 968, + 970, 972, 972, 974, 977, 980, 983, 983, + 985, 987, 989, 991, 993, 995, 1001, 1012, + 1014, 1017, 1023, 1026, 1037, 1040, 1043, 1046, + 1048, 1050, 1052, 1054, 1060, 1063, 1066, 1068, + 1070, 1072, 1074, 1080, 1083, 1086, 1088, 1090, + 1092, 1094, 1100, 1103, 1106, 1109, 1109, 1111, + 1113, 1115, 1117, 1119, 1121, 1123, 1125, 1127, + 1129, 1131, 1133, 1135, 1137, 1139, 1141, 1143, + 1146, 1149, 1152, 1155, 1158, 1161, 1164, 1167, + 1167, 1167, 1167, 1167, 1169, 1171, 1173, 1175, + 1177, 1179, 1181, 1184, 1187, 1190, 1190, 1192, + 1192, 1194, 1196, 1198, 1200, 1202, 1204, 1206, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1211, + 1211, 1213, 1216, 1219, 1222, 1222, 1224, 1226, + 1228, 1230, 1232, 1234, 1234, 1234, 1234, 1237, + 1240, 1243, 1243, 1245, 1247, 1249, 1251, 1253, + 1255, 1255, 1257, 1260, 1263, 1266, 1269, 1269, + 1271, 1273, 1273, 1273, 1276, 1276, 1278, 1280, + 1282, 1284, 1286, 1288, 1288, 1290, 1293, 1296, + 1299, 1302, 1302, 1304, 1306, 1306, 1309, 1309, + 1311, 1313, 1313, 1313, 1313, 1313, 1313, 1313, + 1313, 1313, 1313, 1316, 1316, 1316, 1316, 1316, + 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, + 1316, 1318, 1320, 1322, 1324, 1324, 1327, 1330, + 1330, 1332, 1334, 1336, 1338, 1338, 1341, 1344, + 1344, 1346, 1348, 1348, 1348, 1351, 1351, 1353, + 1355, 1357, 1359, 1361, 1363, 1363, 1366, 1369, + 1372, 1374, 1376, 1378, 1380, 1382, 1384, 1386, + 1388, 1390, 1392, 1392, 1392, 1392, 1392, 1392, + 1392, 1392, 1392, 1394, 1394, 1396, 1399, 1399, + 1399, 1401, 1404, 1404, 1406, 1409, 1411, 1411, + 1413, 1416, 1419, 1419, 1419, 1421, 1424, 1424, + 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, + 1424, 1426, 1429, 1429, 1429, 1431, 1434, 1436, + 1439, 1441, 1444, 1446, 1449, 1449, 1449, 1449, + 1449, 1451, 1454, 1454, 1456, 1459, 1459, 1461, + 1464, 1464, 1470, 1473, 1484, 1487, 1498, 1501, + 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1503, + 1506, 1506, 1506, 1508, 1511, 1511, 1511, 1511, + 1511, 1511, 1511, 1511 }; static const char _zone_scanner_cond_lengths[] = { @@ -1089,20 +1099,21 @@ static const char _zone_scanner_cond_lengths[] = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 0, 0, 2, 0, 0, - 0, 2, 0, 2, 3, 2, 2, 5, - 5, 5, 5, 3, 2, 5, 5, 2, - 2, 2, 2, 2, 2, 2, 2, 2, + 0, 2, 0, 0, 0, 2, 0, 2, + 3, 2, 2, 5, 5, 5, 5, 3, + 2, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 2, 3, 2, 0, 0, 0, + 2, 2, 2, 2, 3, 3, 2, 3, + 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 0, 0, 0, 0, + 1, 2, 2, 2, 2, 0, 2, 0, + 2, 3, 2, 2, 0, 2, 2, 0, + 0, 0, 0, 0, 2, 3, 2, 2, + 2, 2, 0, 2, 2, 0, 0, 0, + 0, 0, 2, 3, 2, 3, 3, 0, + 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, - 0, 0, 0, 0, 1, 2, 2, 2, - 2, 0, 2, 0, 2, 3, 2, 2, - 0, 2, 2, 0, 0, 0, 0, 0, - 2, 3, 2, 2, 2, 2, 0, 2, - 2, 0, 0, 0, 0, 0, 2, 3, - 2, 3, 3, 0, 0, 0, 0, 2, - 3, 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, @@ -1146,31 +1157,31 @@ static const char _zone_scanner_cond_lengths[] = { 0, 0, 2, 0, 2, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 2, 0, 2, 2, 2, - 2, 2, 0, 2, 3, 3, 3, 2, - 2, 2, 2, 0, 2, 3, 3, 2, - 3, 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, 2, 0, 0, 0, 2, + 0, 2, 2, 2, 2, 2, 0, 2, + 3, 3, 3, 2, 2, 2, 2, 0, + 2, 3, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 0, 0, 0, 0, 0, - 2, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 2, 0, + 0, 0, 0, 0, 2, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, + 0, 2, 2, 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, @@ -1189,69 +1200,70 @@ static const char _zone_scanner_cond_lengths[] = { 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, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, + 0, 0, 3, 2, 0, 2, 3, 2, + 0, 2, 3, 2, 0, 2, 3, 3, + 3, 0, 2, 2, 0, 3, 0, 2, + 2, 0, 3, 0, 2, 2, 0, 3, + 0, 2, 2, 3, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 0, 0, 0, 0, 3, 2, - 0, 2, 3, 2, 0, 2, 3, 2, - 0, 2, 3, 3, 3, 0, 2, 2, - 0, 3, 0, 2, 2, 0, 3, 0, - 2, 2, 0, 3, 0, 2, 2, 3, - 0, 0, 0, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 0, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 2, 2, 3, + 3, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 3, - 2, 2, 2, 3, 2, 3, 2, 2, - 3, 3, 3, 2, 3, 2, 2, 3, - 3, 0, 2, 2, 2, 2, 2, 2, - 0, 3, 3, 3, 0, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 0, - 3, 3, 3, 3, 3, 0, 2, 2, - 2, 2, 2, 2, 2, 3, 3, 3, - 2, 0, 0, 0, 0, 0, 2, 3, - 0, 0, 0, 0, 2, 2, 2, 2, - 2, 2, 0, 2, 3, 3, 3, 3, - 0, 2, 2, 2, 2, 0, 2, 3, - 3, 3, 0, 2, 2, 2, 2, 2, - 2, 6, 11, 2, 3, 6, 3, 11, - 3, 3, 3, 2, 2, 2, 2, 6, - 3, 3, 2, 2, 2, 2, 6, 3, - 3, 2, 2, 2, 2, 6, 3, 3, + 2, 3, 2, 2, 3, 3, 3, 2, + 3, 2, 2, 3, 3, 0, 2, 2, + 2, 2, 2, 2, 0, 3, 3, 3, + 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 0, 3, 3, 3, 3, 3, 0, 2, 2, 2, 2, 2, 2, + 2, 3, 3, 3, 2, 0, 0, 0, + 0, 0, 2, 3, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 0, 2, + 3, 3, 3, 3, 0, 2, 2, 2, + 2, 0, 2, 3, 3, 3, 0, 2, + 2, 2, 2, 2, 2, 6, 11, 2, + 3, 6, 3, 11, 3, 3, 3, 2, + 2, 2, 2, 6, 3, 3, 2, 2, + 2, 2, 6, 3, 3, 2, 2, 2, + 2, 6, 3, 3, 3, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, + 3, 3, 3, 3, 3, 3, 3, 0, + 0, 0, 0, 2, 2, 2, 2, 2, + 2, 2, 3, 3, 3, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 0, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 3, 3, - 3, 0, 2, 0, 2, 2, 2, 2, - 2, 2, 2, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 2, 3, 3, 3, - 0, 2, 2, 2, 2, 2, 2, 0, - 0, 0, 3, 3, 3, 0, 2, 2, - 2, 2, 2, 2, 0, 2, 3, 3, - 3, 3, 0, 2, 2, 0, 0, 3, - 0, 2, 2, 2, 2, 2, 2, 0, - 2, 3, 3, 3, 3, 0, 2, 2, - 0, 3, 0, 2, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 2, 2, - 0, 3, 3, 0, 2, 2, 2, 2, - 0, 3, 3, 0, 2, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, + 2, 3, 3, 3, 0, 2, 2, 2, + 2, 2, 2, 0, 0, 0, 3, 3, 3, 0, 2, 2, 2, 2, 2, 2, - 0, 3, 3, 3, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 2, 3, 0, 0, 2, 3, 0, 2, - 3, 2, 0, 2, 3, 3, 0, 0, - 2, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 3, 0, 0, - 2, 3, 2, 3, 2, 3, 2, 3, - 0, 0, 0, 0, 2, 3, 0, 2, - 3, 0, 2, 3, 0, 6, 3, 11, - 3, 11, 3, 0, 0, 0, 0, 0, - 0, 0, 2, 3, 0, 0, 2, 3, - 0, 0, 0, 0, 0, 0, 0, 0 + 0, 2, 3, 3, 3, 3, 0, 2, + 2, 0, 0, 3, 0, 2, 2, 2, + 2, 2, 2, 0, 2, 3, 3, 3, + 3, 0, 2, 2, 0, 3, 0, 2, + 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 0, 3, 3, 0, + 2, 2, 2, 2, 0, 3, 3, 0, + 2, 2, 0, 0, 3, 0, 2, 2, + 2, 2, 2, 2, 0, 3, 3, 3, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 2, 3, 0, 0, + 2, 3, 0, 2, 3, 2, 0, 2, + 3, 3, 0, 0, 2, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 3, 0, 0, 2, 3, 2, 3, + 2, 3, 2, 3, 0, 0, 0, 0, + 2, 3, 0, 2, 3, 0, 2, 3, + 0, 6, 3, 11, 3, 11, 3, 0, + 0, 0, 0, 0, 0, 0, 2, 3, + 0, 0, 2, 3, 0, 0, 0, 0, + 0, 0, 0, 0 }; static const short _zone_scanner_cond_keys[] = { @@ -1333,47 +1345,48 @@ static const short _zone_scanner_cond_keys[] = { 11, 58, 59, 59, 60, 127, -128, 9, 10, 10, 11, 58, 59, 59, 60, 127, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 58, - 59, 59, 60, 127, -128, 9, 10, 10, - 11, 58, 59, 59, 60, 127, -128, 9, + 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 58, 59, 59, 60, 127, -128, 9, 10, 10, 11, 58, 59, 59, - 60, 127, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, -128, 9, 10, 10, + 60, 127, -128, 9, 10, 10, 11, 58, + 59, 59, 60, 127, -128, 9, 10, 10, 11, 58, 59, 59, 60, 127, -128, 9, - 10, 10, 11, 58, 59, 59, 60, 127, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 11, 127, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 58, 59, 59, + 60, 127, -128, 9, 10, 10, 11, 58, + 59, 59, 60, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 41, 41, 10, 10, - 10, 10, 10, 10, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, -128, 9, + -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, + 41, 41, 10, 10, 10, 10, 10, 10, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, @@ -1674,27 +1687,28 @@ static const char _zone_scanner_cond_spaces[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, - 7, 7, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 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, - 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 3, 4, 4, 4, 0, 0, + 0, 0, 0, 2, 3, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 7, 0, + 0, 0, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -1706,16 +1720,16 @@ static const char _zone_scanner_cond_spaces[] = { 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 7, 0, 0, 0, - 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 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, @@ -1724,19 +1738,18 @@ static const char _zone_scanner_cond_spaces[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, + 7, 7, 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, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 0, 0, 0, 7, 7, 7, - 7, 0, 0, 0, 7, 7, 7, 7, - 7, 7, 0, 0, 0, 7, 7, 7, - 7, 7, 7, 0, 0, 0, 7, 7, - 7, 7, 7, 7, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 0, 0, + 0, 7, 7, 7, 7, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 0, 0, + 0, 7, 7, 7, 7, 7, 7, 0, + 0, 0, 7, 7, 7, 7, 7, 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, @@ -1749,54 +1762,54 @@ static const char _zone_scanner_cond_spaces[] = { 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, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 0, 0, 0, 0, + 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, - 13, 10, 10, 10, 13, 5, 8, 5, - 5, 5, 5, 5, 5, 8, 5, 5, - 1, 1, 8, 8, 8, 6, 11, 6, - 6, 6, 11, 9, 9, 9, 10, 13, - 10, 10, 10, 5, 5, 5, 13, 5, - 5, 12, 12, 12, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 13, 10, 10, 10, 13, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 13, 10, 10, 10, + 13, 5, 8, 5, 5, 5, 5, 5, + 5, 8, 5, 5, 1, 1, 8, 8, + 8, 6, 11, 6, 6, 6, 11, 9, + 9, 9, 10, 13, 10, 10, 10, 5, + 5, 5, 13, 5, 5, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 13, 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 13, 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10, 13, + 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 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, 1, - 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, + 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, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 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, @@ -1806,226 +1819,228 @@ static const char _zone_scanner_cond_spaces[] = { 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, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 7, 7, 7, 7, 0, 0, 7, 7, - 0, 0, 0, 7, 7, 0, 0, 0, - 7, 7, 0, 0, 0, 0, 0, 7, - 7, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 7, 7, 7, 7, + 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, - 0, 7, 7, 0, 0, 0, 7, 7, + 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, - 7, 0, 0, 0, 6, 11, 6, 6, - 6, 11, 9, 9, 9, 5, 8, 5, - 5, 5, 5, 5, 5, 8, 5, 5, - 8, 8, 8, 10, 13, 10, 10, 10, - 5, 5, 5, 13, 5, 5, 12, 12, - 12, 7, 7, 0, 0, 0, 7, 7, - 0, 0, 0, 0 + 7, 0, 0, 0, 7, 7, 0, 0, + 0, 7, 7, 0, 0, 0, 7, 7, + 0, 0, 0, 7, 7, 0, 0, 0, + 6, 11, 6, 6, 6, 11, 9, 9, + 9, 5, 8, 5, 5, 5, 5, 5, + 5, 8, 5, 5, 8, 8, 8, 10, + 13, 10, 10, 10, 5, 5, 5, 13, + 5, 5, 12, 12, 12, 7, 7, 0, + 0, 0, 7, 7, 0, 0, 0, 0 }; static const short _zone_scanner_key_offsets[] = { - 0, 0, 46, 64, 106, 122, 139, 147, - 155, 156, 157, 160, 179, 198, 204, 262, - 282, 326, 336, 338, 348, 362, 376, 380, - 382, 384, 386, 388, 398, 408, 410, 412, - 422, 424, 426, 428, 438, 440, 442, 444, - 454, 460, 462, 464, 466, 476, 480, 482, - 484, 494, 496, 498, 500, 510, 522, 524, - 526, 536, 538, 540, 542, 543, 553, 554, - 564, 568, 570, 572, 574, 584, 586, 588, - 590, 600, 604, 610, 652, 654, 656, 658, - 660, 662, 664, 666, 676, 680, 682, 692, - 702, 708, 709, 719, 720, 730, 732, 742, - 752, 756, 758, 760, 762, 772, 782, 788, - 790, 792, 794, 804, 806, 816, 828, 830, - 841, 853, 855, 857, 859, 861, 871, 873, - 875, 877, 879, 881, 883, 885, 887, 889, - 899, 901, 903, 913, 921, 923, 925, 927, - 929, 931, 941, 951, 953, 955, 957, 967, - 977, 989, 991, 993, 995, 997, 1007, 1009, - 1019, 1021, 1031, 1033, 1043, 1045, 1047, 1049, - 1059, 1061, 1063, 1073, 1079, 1081, 1083, 1093, - 1095, 1105, 1107, 1109, 1111, 1123, 1125, 1127, - 1137, 1139, 1141, 1143, 1145, 1147, 1157, 1159, - 1161, 1163, 1165, 1167, 1177, 1180, 1226, 1230, - 1236, 1280, 1298, 1306, 1318, 1326, 1329, 1330, - 1336, 1338, 1340, 1342, 1344, 1346, 1348, 1354, - 1360, 1404, 1407, 1425, 1469, 1472, 1480, 1492, - 1500, 1503, 1519, 1575, 1593, 1612, 1658, 1664, - 1678, 1692, 1750, 1768, 1782, 1792, 1804, 1816, - 1828, 1842, 1854, 1868, 1878, 1888, 1904, 1924, - 1938, 1948, 1958, 1968, 1974, 1988, 1990, 1992, - 1994, 1996, 1998, 2004, 2006, 2008, 2014, 2022, - 2042, 2088, 2094, 2112, 2170, 2188, 2202, 2212, - 2224, 2236, 2248, 2262, 2274, 2288, 2298, 2308, - 2324, 2344, 2358, 2368, 2378, 2388, 2403, 2449, - 2463, 2477, 2493, 2509, 2511, 2513, 2523, 2525, - 2527, 2529, 2539, 2541, 2551, 2557, 2571, 2585, - 2601, 2617, 2633, 2649, 2652, 2710, 2724, 2738, - 2754, 2766, 2774, 2784, 2794, 2804, 2816, 2826, - 2838, 2846, 2854, 2868, 2886, 2898, 2906, 2914, - 2922, 2928, 2934, 2944, 2950, 2959, 2960, 2961, - 2972, 2988, 3004, 3006, 3008, 3010, 3026, 3032, - 3038, 3044, 3056, 3062, 3064, 3066, 3078, 3086, - 3094, 3100, 3106, 3108, 3110, 3118, 3124, 3132, - 3152, 3160, 3161, 3171, 3183, 3193, 3196, 3202, - 3218, 3228, 3246, 3254, 3255, 3257, 3259, 3261, - 3271, 3279, 3282, 3288, 3300, 3308, 3326, 3336, - 3354, 3362, 3363, 3365, 3367, 3369, 3379, 3387, - 3393, 3409, 3412, 3415, 3422, 3429, 3437, 3445, - 3462, 3465, 3466, 3502, 3514, 3516, 3518, 3524, - 3526, 3528, 3530, 3536, 3538, 3544, 3554, 3556, - 3562, 3566, 3568, 3570, 3572, 3574, 3580, 3586, - 3588, 3590, 3596, 3598, 3600, 3602, 3608, 3610, - 3612, 3614, 3620, 3626, 3628, 3630, 3632, 3638, - 3642, 3644, 3646, 3652, 3654, 3656, 3658, 3664, - 3672, 3674, 3676, 3682, 3684, 3686, 3688, 3689, - 3695, 3696, 3702, 3706, 3708, 3710, 3712, 3718, - 3720, 3722, 3724, 3730, 3732, 3734, 3736, 3738, - 3740, 3742, 3744, 3750, 3754, 3756, 3762, 3768, - 3774, 3775, 3781, 3782, 3788, 3790, 3796, 3802, - 3806, 3808, 3810, 3812, 3818, 3824, 3830, 3832, - 3834, 3836, 3842, 3844, 3850, 3858, 3860, 3867, - 3875, 3877, 3879, 3881, 3883, 3889, 3891, 3893, - 3895, 3897, 3899, 3901, 3903, 3905, 3907, 3913, - 3915, 3917, 3923, 3931, 3933, 3935, 3937, 3939, - 3941, 3947, 3953, 3955, 3957, 3959, 3965, 3971, - 3983, 3985, 3987, 3989, 3991, 3997, 3999, 4005, - 4007, 4013, 4015, 4021, 4023, 4025, 4027, 4033, - 4035, 4037, 4043, 4049, 4051, 4053, 4059, 4061, - 4067, 4069, 4071, 4073, 4081, 4083, 4085, 4091, - 4093, 4095, 4097, 4099, 4101, 4107, 4109, 4111, - 4113, 4115, 4117, 4123, 4133, 4179, 4195, 4197, - 4199, 4209, 4212, 4222, 4224, 4234, 4238, 4240, - 4242, 4244, 4246, 4256, 4266, 4268, 4270, 4280, - 4282, 4284, 4286, 4296, 4298, 4300, 4302, 4312, - 4318, 4320, 4322, 4324, 4334, 4338, 4340, 4342, - 4352, 4354, 4356, 4358, 4368, 4380, 4382, 4384, - 4394, 4396, 4398, 4400, 4401, 4411, 4412, 4422, - 4426, 4428, 4430, 4432, 4442, 4444, 4446, 4448, - 4458, 4460, 4462, 4464, 4466, 4468, 4470, 4472, - 4482, 4486, 4488, 4498, 4508, 4514, 4515, 4525, - 4526, 4536, 4538, 4548, 4558, 4562, 4564, 4566, - 4568, 4578, 4588, 4594, 4596, 4598, 4600, 4610, - 4612, 4622, 4634, 4636, 4647, 4659, 4661, 4663, - 4665, 4667, 4677, 4679, 4681, 4683, 4685, 4687, - 4689, 4691, 4693, 4695, 4705, 4707, 4709, 4719, - 4727, 4729, 4731, 4733, 4735, 4737, 4747, 4757, - 4759, 4761, 4763, 4773, 4783, 4795, 4797, 4799, - 4801, 4803, 4813, 4815, 4825, 4827, 4837, 4839, - 4849, 4851, 4853, 4855, 4865, 4867, 4869, 4879, - 4885, 4887, 4889, 4899, 4901, 4911, 4913, 4915, - 4917, 4929, 4931, 4933, 4943, 4945, 4947, 4949, - 4951, 4953, 4963, 4965, 4967, 4969, 4971, 4973, - 4983, 4985, 4987, 4989, 4999, 5001, 5011, 5017, - 5025, 5033, 5045, 5051, 5067, 5070, 5073, 5076, - 5082, 5091, 5101, 5113, 5119, 5135, 5138, 5141, - 5149, 5152, 5160, 5161, 5162, 5163, 5171, 5172, - 5173, 5174, 5175, 5176, 5177, 5185, 5186, 5187, - 5195, 5196, 5197, 5199, 5200, 5201, 5202, 5203, - 5211, 5212, 5213, 5214, 5215, 5223, 5224, 5225, - 5227, 5237, 5238, 5239, 5240, 5241, 5242, 5243, - 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, - 5259, 5260, 5261, 5262, 5263, 5271, 5272, 5273, - 5274, 5282, 5292, 5311, 5312, 5313, 5314, 5315, - 5322, 5332, 5335, 5336, 5337, 5338, 5339, 5340, - 5341, 5342, 5349, 5359, 5375, 5376, 5386, 5387, - 5388, 5389, 5397, 5404, 5411, 5419, 5427, 5435, - 5436, 5443, 5451, 5459, 5476, 5477, 5478, 5479, - 5481, 5482, 5483, 5484, 5485, 5486, 5490, 5493, - 5498, 5501, 5515, 5518, 5519, 5520, 5521, 5522, - 5523, 5531, 5538, 5547, 5554, 5572, 5579, 5580, - 5581, 5583, 5596, 5602, 5603, 5604, 5605, 5606, - 5607, 5608, 5609, 5610, 5611, 5616, 5620, 5622, - 5626, 5637, 5641, 5642, 5643, 5644, 5645, 5646, - 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, - 5655, 5665, 5666, 5667, 5668, 5669, 5679, 5680, - 5681, 5682, 5683, 5686, 5688, 5691, 5703, 5719, - 5720, 5732, 5740, 5744, 5750, 5752, 5759, 5761, - 5763, 5765, 5767, 5768, 5769, 5771, 5773, 5775, - 5776, 5782, 5786, 5790, 5791, 5793, 5795, 5797, - 5799, 5805, 5807, 5809, 5811, 5813, 5814, 5815, - 5817, 5819, 5821, 5822, 5823, 5824, 5830, 5831, - 5832, 5834, 5836, 5838, 5839, 5840, 5841, 5847, - 5849, 5850, 5851, 5852, 5853, 5859, 5860, 5861, - 5867, 5869, 5871, 5873, 5875, 5877, 5879, 5881, - 5887, 5889, 5891, 5893, 5895, 5897, 5899, 5903, - 5905, 5907, 5913, 5915, 5917, 5923, 5925, 5927, - 5931, 5933, 5934, 5940, 5942, 5944, 5947, 5954, - 5956, 5958, 5960, 5962, 5963, 5964, 5966, 5968, - 5970, 5971, 5977, 5978, 5979, 5985, 5986, 5987, - 5993, 6007, 6015, 6017, 6019, 6021, 6023, 6025, - 6031, 6037, 6039, 6041, 6043, 6045, 6047, 6053, - 6057, 6059, 6065, 6067, 6069, 6075, 6077, 6079, - 6081, 6087, 6089, 6091, 6097, 6101, 6103, 6109, - 6111, 6113, 6119, 6121, 6123, 6125, 6131, 6133, - 6135, 6141, 6145, 6153, 6155, 6157, 6159, 6161, - 6163, 6169, 6172, 6181, 6190, 6196, 6205, 6211, - 6226, 6232, 6240, 6248, 6256, 6274, 6282, 6300, - 6308, 6326, 6334, 6352, 6360, 6372, 6380, 6383, - 6391, 6403, 6411, 6414, 6422, 6434, 6442, 6445, - 6453, 6465, 6473, 6476, 6479, 6482, 6488, 6494, - 6506, 6512, 6515, 6524, 6530, 6545, 6551, 6554, - 6556, 6564, 6579, 6585, 6588, 6594, 6604, 6620, - 6623, 6630, 6643, 6645, 6653, 6663, 6671, 6681, - 6690, 6698, 6704, 6712, 6720, 6730, 6738, 6748, - 6757, 6765, 6771, 6780, 6782, 6796, 6808, 6822, - 6834, 6848, 6860, 6874, 6884, 6887, 6900, 6913, - 6916, 6929, 6942, 6952, 6955, 6968, 6981, 6991, - 6994, 7007, 7020, 7030, 7033, 7039, 7042, 7050, - 7058, 7061, 7064, 7067, 7073, 7076, 7084, 7092, - 7095, 7098, 7100, 7108, 7116, 7124, 7132, 7140, - 7155, 7161, 7164, 7167, 7170, 7172, 7180, 7188, - 7196, 7208, 7214, 7226, 7232, 7244, 7250, 7265, - 7271, 7274, 7277, 7280, 7283, 7286, 7292, 7298, - 7306, 7314, 7326, 7332, 7345, 7347, 7350, 7353, - 7356, 7369, 7371, 7372, 7375, 7378, 7380, 7392, - 7395, 7396, 7403, 7410, 7412, 7420, 7432, 7438, - 7446, 7454, 7466, 7472, 7488, 7491, 7494, 7497, - 7500, 7502, 7510, 7518, 7526, 7538, 7544, 7560, - 7563, 7566, 7569, 7571, 7579, 7589, 7595, 7603, - 7611, 7618, 7652, 7665, 7667, 7670, 7684, 7687, - 7728, 7737, 7740, 7743, 7749, 7757, 7765, 7774, - 7811, 7814, 7817, 7823, 7831, 7839, 7852, 7893, - 7896, 7899, 7905, 7913, 7921, 7936, 7970, 7973, - 7976, 7979, 7985, 7991, 8003, 8009, 8017, 8025, - 8033, 8041, 8049, 8057, 8065, 8073, 8081, 8089, - 8104, 8110, 8123, 8125, 8128, 8131, 8134, 8137, - 8140, 8143, 8146, 8149, 8158, 8164, 8170, 8172, - 8180, 8188, 8196, 8208, 8214, 8227, 8229, 8232, - 8235, 8238, 8245, 8247, 8249, 8257, 8265, 8273, - 8281, 8289, 8302, 8308, 8320, 8326, 8333, 8339, - 8346, 8353, 8359, 8366, 8378, 8384, 8385, 8386, - 8387, 8388, 8389, 8392, 8398, 8410, 8413, 8416, - 8419, 8421, 8429, 8437, 8445, 8453, 8461, 8474, - 8480, 8486, 8498, 8501, 8504, 8507, 8509, 8517, - 8525, 8533, 8541, 8549, 8561, 8567, 8583, 8586, - 8589, 8592, 8595, 8597, 8605, 8613, 8621, 8627, - 8630, 8632, 8640, 8648, 8656, 8664, 8672, 8684, - 8690, 8706, 8709, 8712, 8715, 8718, 8720, 8728, - 8737, 8746, 8749, 8751, 8759, 8771, 8777, 8783, - 8789, 8790, 8796, 8802, 8808, 8814, 8821, 8824, - 8830, 8836, 8837, 8843, 8849, 8856, 8862, 8868, - 8869, 8875, 8881, 8888, 8890, 8898, 8906, 8914, - 8926, 8932, 8935, 8938, 8940, 8948, 8960, 8966, - 8978, 8984, 8987, 8990, 8992, 9000, 9015, 9021, - 9027, 9030, 9036, 9042, 9054, 9060, 9068, 9076, - 9091, 9097, 9100, 9103, 9106, 9124, 9157, 9211, - 9267, 9285, 9341, 9359, 9392, 9463, 9534, 9534, - 9534, 9534, 9534, 9546, 9546, 9546, 9546, 9562, - 9562, 9579, 9582, 9582, 9582, 9628, 9631, 9631, - 9647, 9650, 9662, 9662, 9678, 9681, 9684, 9684, - 9684, 9703, 9706, 9706, 9706, 9706, 9706, 9706, - 9706, 9706, 9706, 9706, 9706, 9722, 9725, 9725, - 9725, 9735, 9738, 9750, 9753, 9765, 9768, 9780, - 9783, 9783, 9783, 9783, 9783, 9796, 9799, 9799, - 9815, 9818, 9818, 9834, 9837, 9837, 9851, 9854, - 9867, 9870, 9911, 9920, 9920, 9920, 9920, 9920, - 9920, 9920, 9920, 9936, 9939, 9939, 9939, 9955, - 9958, 9958, 9958, 9958, 9958, 9958, 9958, 9958 + 0, 0, 46, 64, 106, 124, 141, 149, + 157, 158, 159, 162, 181, 200, 206, 264, + 284, 328, 338, 340, 350, 364, 378, 382, + 384, 386, 388, 390, 400, 410, 412, 414, + 424, 426, 428, 430, 440, 442, 444, 446, + 456, 462, 464, 466, 468, 478, 482, 484, + 486, 496, 498, 500, 502, 512, 524, 526, + 528, 538, 540, 542, 544, 545, 555, 556, + 566, 570, 572, 574, 576, 586, 588, 590, + 592, 602, 606, 612, 654, 656, 658, 660, + 662, 664, 666, 668, 678, 682, 684, 694, + 704, 710, 711, 721, 722, 732, 734, 744, + 754, 758, 760, 762, 764, 774, 784, 790, + 792, 794, 796, 806, 808, 818, 830, 832, + 843, 855, 857, 859, 861, 863, 873, 875, + 877, 879, 881, 883, 885, 887, 889, 891, + 901, 903, 905, 915, 923, 925, 927, 929, + 931, 933, 943, 953, 955, 957, 959, 969, + 979, 991, 993, 995, 997, 999, 1009, 1011, + 1021, 1023, 1033, 1035, 1045, 1047, 1049, 1051, + 1061, 1063, 1065, 1075, 1081, 1083, 1085, 1095, + 1097, 1107, 1109, 1111, 1113, 1125, 1127, 1129, + 1139, 1141, 1143, 1145, 1147, 1149, 1159, 1161, + 1163, 1165, 1167, 1169, 1179, 1182, 1228, 1232, + 1238, 1282, 1300, 1308, 1320, 1328, 1331, 1332, + 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1356, + 1362, 1406, 1409, 1427, 1471, 1474, 1482, 1494, + 1502, 1505, 1523, 1579, 1599, 1618, 1664, 1670, + 1684, 1698, 1756, 1774, 1788, 1798, 1810, 1822, + 1834, 1848, 1860, 1874, 1884, 1894, 1910, 1930, + 1944, 1954, 1964, 1974, 1980, 1994, 1996, 1998, + 2000, 2002, 2004, 2010, 2012, 2014, 2020, 2028, + 2048, 2094, 2100, 2120, 2178, 2196, 2210, 2220, + 2232, 2244, 2256, 2270, 2282, 2296, 2306, 2316, + 2332, 2352, 2366, 2376, 2386, 2396, 2411, 2457, + 2471, 2485, 2501, 2517, 2519, 2521, 2531, 2533, + 2535, 2537, 2547, 2549, 2551, 2553, 2563, 2565, + 2575, 2581, 2595, 2609, 2625, 2641, 2657, 2673, + 2676, 2734, 2748, 2762, 2778, 2790, 2798, 2808, + 2818, 2828, 2840, 2850, 2862, 2870, 2878, 2892, + 2910, 2922, 2930, 2938, 2946, 2952, 2958, 2968, + 2974, 2983, 2984, 2985, 2996, 3012, 3028, 3030, + 3032, 3034, 3050, 3056, 3062, 3068, 3080, 3086, + 3088, 3090, 3102, 3110, 3118, 3124, 3130, 3132, + 3134, 3142, 3148, 3156, 3176, 3184, 3185, 3195, + 3207, 3217, 3220, 3226, 3242, 3252, 3270, 3278, + 3279, 3281, 3283, 3285, 3295, 3303, 3306, 3312, + 3324, 3332, 3350, 3360, 3378, 3386, 3387, 3389, + 3391, 3393, 3403, 3411, 3417, 3433, 3436, 3439, + 3446, 3453, 3461, 3469, 3486, 3489, 3490, 3526, + 3540, 3542, 3544, 3550, 3552, 3554, 3556, 3562, + 3564, 3566, 3568, 3574, 3576, 3582, 3592, 3594, + 3600, 3604, 3606, 3608, 3610, 3612, 3618, 3624, + 3626, 3628, 3634, 3636, 3638, 3640, 3646, 3648, + 3650, 3652, 3658, 3664, 3666, 3668, 3670, 3676, + 3680, 3682, 3684, 3690, 3692, 3694, 3696, 3702, + 3710, 3712, 3714, 3720, 3722, 3724, 3726, 3727, + 3733, 3734, 3740, 3744, 3746, 3748, 3750, 3756, + 3758, 3760, 3762, 3768, 3770, 3772, 3774, 3776, + 3778, 3780, 3782, 3788, 3792, 3794, 3800, 3806, + 3812, 3813, 3819, 3820, 3826, 3828, 3834, 3840, + 3844, 3846, 3848, 3850, 3856, 3862, 3868, 3870, + 3872, 3874, 3880, 3882, 3888, 3896, 3898, 3905, + 3913, 3915, 3917, 3919, 3921, 3927, 3929, 3931, + 3933, 3935, 3937, 3939, 3941, 3943, 3945, 3951, + 3953, 3955, 3961, 3969, 3971, 3973, 3975, 3977, + 3979, 3985, 3991, 3993, 3995, 3997, 4003, 4009, + 4021, 4023, 4025, 4027, 4029, 4035, 4037, 4043, + 4045, 4051, 4053, 4059, 4061, 4063, 4065, 4071, + 4073, 4075, 4081, 4087, 4089, 4091, 4097, 4099, + 4105, 4107, 4109, 4111, 4119, 4121, 4123, 4129, + 4131, 4133, 4135, 4137, 4139, 4145, 4147, 4149, + 4151, 4153, 4155, 4161, 4171, 4217, 4235, 4237, + 4239, 4249, 4252, 4262, 4264, 4274, 4278, 4280, + 4282, 4284, 4286, 4296, 4306, 4308, 4310, 4320, + 4322, 4324, 4326, 4336, 4338, 4340, 4342, 4352, + 4358, 4360, 4362, 4364, 4374, 4378, 4380, 4382, + 4392, 4394, 4396, 4398, 4408, 4420, 4422, 4424, + 4434, 4436, 4438, 4440, 4441, 4451, 4452, 4462, + 4466, 4468, 4470, 4472, 4482, 4484, 4486, 4488, + 4498, 4500, 4502, 4504, 4506, 4508, 4510, 4512, + 4522, 4526, 4528, 4538, 4548, 4554, 4555, 4565, + 4566, 4576, 4578, 4588, 4598, 4602, 4604, 4606, + 4608, 4618, 4628, 4634, 4636, 4638, 4640, 4650, + 4652, 4662, 4674, 4676, 4687, 4699, 4701, 4703, + 4705, 4707, 4717, 4719, 4721, 4723, 4725, 4727, + 4729, 4731, 4733, 4735, 4745, 4747, 4749, 4759, + 4767, 4769, 4771, 4773, 4775, 4777, 4787, 4797, + 4799, 4801, 4803, 4813, 4823, 4835, 4837, 4839, + 4841, 4843, 4853, 4855, 4865, 4867, 4877, 4879, + 4889, 4891, 4893, 4895, 4905, 4907, 4909, 4919, + 4925, 4927, 4929, 4939, 4941, 4951, 4953, 4955, + 4957, 4969, 4971, 4973, 4983, 4985, 4987, 4989, + 4991, 4993, 5003, 5005, 5007, 5009, 5011, 5013, + 5023, 5025, 5027, 5029, 5039, 5041, 5043, 5045, + 5055, 5057, 5067, 5073, 5081, 5089, 5101, 5107, + 5123, 5126, 5129, 5132, 5138, 5147, 5157, 5169, + 5175, 5191, 5194, 5197, 5205, 5208, 5216, 5217, + 5218, 5219, 5227, 5228, 5229, 5230, 5231, 5232, + 5233, 5241, 5242, 5243, 5251, 5252, 5253, 5255, + 5256, 5257, 5258, 5259, 5267, 5268, 5269, 5270, + 5271, 5279, 5280, 5281, 5283, 5293, 5294, 5295, + 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, + 5304, 5305, 5306, 5307, 5315, 5316, 5317, 5318, + 5319, 5327, 5328, 5329, 5330, 5338, 5348, 5367, + 5368, 5369, 5370, 5371, 5378, 5388, 5391, 5392, + 5393, 5394, 5395, 5396, 5397, 5398, 5405, 5415, + 5431, 5432, 5442, 5443, 5444, 5445, 5453, 5460, + 5467, 5475, 5483, 5491, 5492, 5499, 5507, 5515, + 5532, 5533, 5534, 5535, 5537, 5538, 5539, 5540, + 5541, 5542, 5546, 5549, 5554, 5557, 5571, 5574, + 5575, 5576, 5577, 5578, 5579, 5587, 5594, 5603, + 5610, 5628, 5635, 5636, 5637, 5639, 5652, 5658, + 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, + 5667, 5672, 5676, 5678, 5682, 5693, 5697, 5698, + 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, + 5707, 5708, 5709, 5710, 5711, 5721, 5722, 5723, + 5724, 5725, 5735, 5736, 5737, 5738, 5739, 5742, + 5744, 5747, 5759, 5775, 5776, 5788, 5796, 5800, + 5806, 5808, 5815, 5817, 5819, 5821, 5823, 5824, + 5825, 5827, 5829, 5831, 5832, 5838, 5842, 5846, + 5847, 5849, 5851, 5853, 5855, 5861, 5863, 5865, + 5867, 5869, 5870, 5871, 5873, 5875, 5877, 5878, + 5879, 5880, 5886, 5887, 5888, 5890, 5892, 5894, + 5895, 5896, 5897, 5903, 5905, 5906, 5907, 5908, + 5909, 5915, 5916, 5917, 5923, 5925, 5927, 5929, + 5931, 5933, 5935, 5937, 5943, 5945, 5947, 5949, + 5951, 5953, 5955, 5959, 5961, 5963, 5969, 5971, + 5973, 5979, 5981, 5983, 5987, 5989, 5990, 5996, + 5998, 6000, 6003, 6010, 6012, 6014, 6016, 6018, + 6019, 6020, 6022, 6024, 6026, 6027, 6033, 6034, + 6035, 6041, 6042, 6043, 6049, 6063, 6071, 6073, + 6075, 6077, 6079, 6081, 6087, 6093, 6095, 6097, + 6099, 6101, 6103, 6109, 6113, 6115, 6121, 6123, + 6125, 6131, 6133, 6135, 6137, 6143, 6145, 6147, + 6153, 6157, 6159, 6165, 6167, 6169, 6175, 6177, + 6179, 6181, 6187, 6189, 6191, 6197, 6201, 6209, + 6211, 6213, 6215, 6217, 6219, 6225, 6228, 6237, + 6246, 6252, 6261, 6267, 6282, 6288, 6296, 6304, + 6312, 6330, 6338, 6356, 6364, 6382, 6390, 6408, + 6416, 6428, 6436, 6439, 6447, 6459, 6467, 6470, + 6478, 6490, 6498, 6501, 6509, 6521, 6529, 6532, + 6535, 6538, 6544, 6550, 6562, 6568, 6571, 6580, + 6586, 6601, 6607, 6610, 6612, 6620, 6635, 6641, + 6644, 6650, 6660, 6676, 6679, 6686, 6699, 6701, + 6709, 6719, 6727, 6737, 6746, 6754, 6760, 6768, + 6776, 6786, 6794, 6804, 6813, 6821, 6827, 6836, + 6838, 6852, 6864, 6878, 6890, 6904, 6916, 6930, + 6940, 6943, 6956, 6969, 6972, 6985, 6998, 7008, + 7011, 7024, 7037, 7047, 7050, 7063, 7076, 7086, + 7089, 7095, 7098, 7106, 7114, 7117, 7120, 7123, + 7129, 7132, 7140, 7148, 7151, 7154, 7156, 7164, + 7172, 7180, 7188, 7196, 7211, 7217, 7220, 7223, + 7226, 7228, 7236, 7244, 7252, 7264, 7270, 7282, + 7288, 7300, 7306, 7321, 7327, 7330, 7333, 7336, + 7339, 7342, 7348, 7354, 7362, 7370, 7382, 7388, + 7401, 7403, 7406, 7409, 7412, 7425, 7427, 7428, + 7431, 7434, 7436, 7448, 7451, 7452, 7459, 7466, + 7468, 7476, 7488, 7494, 7502, 7510, 7522, 7528, + 7544, 7547, 7550, 7553, 7556, 7558, 7566, 7574, + 7582, 7594, 7600, 7616, 7619, 7622, 7625, 7627, + 7635, 7645, 7651, 7659, 7667, 7674, 7708, 7721, + 7723, 7726, 7740, 7743, 7784, 7793, 7796, 7799, + 7805, 7813, 7821, 7830, 7867, 7870, 7873, 7879, + 7887, 7895, 7908, 7949, 7952, 7955, 7961, 7969, + 7977, 7992, 8026, 8029, 8032, 8035, 8041, 8047, + 8059, 8065, 8073, 8081, 8089, 8097, 8105, 8113, + 8121, 8129, 8137, 8145, 8160, 8166, 8179, 8181, + 8184, 8187, 8190, 8193, 8196, 8199, 8202, 8205, + 8214, 8220, 8226, 8228, 8236, 8244, 8252, 8264, + 8270, 8283, 8285, 8288, 8291, 8294, 8301, 8303, + 8305, 8313, 8321, 8329, 8337, 8345, 8358, 8364, + 8376, 8382, 8389, 8395, 8402, 8409, 8415, 8422, + 8434, 8440, 8441, 8442, 8443, 8444, 8445, 8448, + 8454, 8466, 8469, 8472, 8475, 8477, 8485, 8493, + 8501, 8509, 8517, 8530, 8536, 8542, 8554, 8557, + 8560, 8563, 8565, 8573, 8581, 8589, 8597, 8605, + 8617, 8623, 8639, 8642, 8645, 8648, 8651, 8653, + 8661, 8669, 8677, 8683, 8686, 8688, 8696, 8704, + 8712, 8720, 8728, 8740, 8746, 8762, 8765, 8768, + 8771, 8774, 8776, 8784, 8793, 8802, 8805, 8807, + 8815, 8827, 8833, 8839, 8845, 8846, 8852, 8858, + 8864, 8870, 8877, 8880, 8886, 8892, 8893, 8899, + 8905, 8912, 8918, 8924, 8925, 8931, 8937, 8944, + 8946, 8954, 8962, 8970, 8982, 8988, 8991, 8994, + 8996, 9004, 9016, 9022, 9034, 9040, 9043, 9046, + 9048, 9056, 9071, 9077, 9083, 9086, 9092, 9098, + 9110, 9116, 9124, 9132, 9147, 9153, 9156, 9159, + 9162, 9180, 9213, 9267, 9323, 9341, 9397, 9415, + 9448, 9519, 9590, 9590, 9590, 9590, 9590, 9602, + 9602, 9602, 9602, 9618, 9618, 9635, 9638, 9638, + 9638, 9684, 9687, 9687, 9703, 9706, 9718, 9718, + 9734, 9737, 9740, 9740, 9740, 9759, 9762, 9762, + 9762, 9762, 9762, 9762, 9762, 9762, 9762, 9762, + 9762, 9778, 9781, 9781, 9781, 9791, 9794, 9806, + 9809, 9821, 9824, 9836, 9839, 9839, 9839, 9839, + 9839, 9852, 9855, 9855, 9871, 9874, 9874, 9890, + 9893, 9893, 9907, 9910, 9923, 9926, 9967, 9976, + 9976, 9976, 9976, 9976, 9976, 9976, 9976, 9992, + 9995, 9995, 9995, 10011, 10014, 10014, 10014, 10014, + 10014, 10014, 10014, 10014 }; static const short _zone_scanner_trans_keys[] = { @@ -2043,255 +2058,256 @@ static const short _zone_scanner_trans_keys[] = { 100, 101, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 119, 122, 2058, 2107, 9, 32, 40, 41, 65, 70, - 80, 97, 102, 112, 3082, 3131, 3338, 3387, - 3594, 3643, 9, 32, 40, 41, 92, 3082, - 3131, 3338, 3387, 3594, 3643, -128, 8, 11, - 58, 60, 127, 9, 32, 40, 41, 1802, - 1851, 2058, 2107, 9, 32, 40, 41, 1802, - 1851, 2058, 2107, 10, 35, 2058, 1920, 2175, - 9, 32, 40, 41, 92, 2826, 2875, 3082, - 3131, 3338, 3387, 3594, 3643, -128, 8, 11, - 58, 60, 127, 9, 32, 40, 41, 92, + 76, 80, 97, 102, 108, 112, 3082, 3131, + 3338, 3387, 3594, 3643, 9, 32, 40, 41, + 92, 3082, 3131, 3338, 3387, 3594, 3643, -128, + 8, 11, 58, 60, 127, 9, 32, 40, + 41, 1802, 1851, 2058, 2107, 9, 32, 40, + 41, 1802, 1851, 2058, 2107, 10, 35, 2058, + 1920, 2175, 9, 32, 40, 41, 92, 2826, + 2875, 3082, 3131, 3338, 3387, 3594, 3643, -128, + 8, 11, 58, 60, 127, 9, 32, 40, + 41, 92, 2826, 2875, 3082, 3131, 3338, 3387, + 3594, 3643, -128, 8, 11, 58, 60, 127, + 1802, 2058, 1664, 1919, 1920, 2175, 9, 32, + 40, 41, 58, 65, 67, 68, 69, 72, + 73, 75, 76, 77, 78, 79, 80, 82, + 83, 84, 85, 87, 90, 92, 97, 99, + 100, 101, 104, 105, 107, 108, 109, 110, + 111, 112, 114, 115, 116, 117, 119, 122, 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643, - -128, 8, 11, 58, 60, 127, 1802, 2058, - 1664, 1919, 1920, 2175, 9, 32, 40, 41, - 58, 65, 67, 68, 69, 72, 73, 75, - 76, 77, 78, 79, 80, 82, 83, 84, - 85, 87, 90, 92, 97, 99, 100, 101, - 104, 105, 107, 108, 109, 110, 111, 112, - 114, 115, 116, 117, 119, 122, 2826, 2875, - 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, - 11, 47, 48, 57, 60, 127, 9, 32, - 40, 41, 68, 72, 77, 83, 87, 100, - 104, 109, 115, 119, 1802, 1851, 2058, 2107, - 48, 57, 9, 32, 40, 41, 65, 67, - 68, 69, 72, 73, 75, 76, 77, 78, - 79, 80, 82, 83, 84, 85, 87, 90, - 97, 99, 100, 101, 104, 105, 107, 108, - 109, 110, 111, 112, 114, 115, 116, 117, - 119, 122, 1802, 1851, 2058, 2107, 65, 68, - 69, 78, 83, 97, 100, 101, 110, 115, - 65, 97, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 1801, 1802, 1824, 1832, + -128, 8, 11, 47, 48, 57, 60, 127, + 9, 32, 40, 41, 68, 72, 77, 83, + 87, 100, 104, 109, 115, 119, 1802, 1851, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 65, 67, 68, 69, 72, 73, 75, 76, + 77, 78, 79, 80, 82, 83, 84, 85, + 87, 90, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 1802, 1851, 2058, 2107, + 65, 68, 69, 78, 83, 97, 100, 101, + 110, 115, 65, 97, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 1801, 1802, + 1824, 1832, 1833, 1851, 2057, 2058, 2080, 2088, + 2089, 2107, 1920, 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, 2088, 2089, 2107, - 1920, 2175, 1801, 1802, 1824, 1832, 1833, 1851, - 2057, 2058, 2080, 2088, 2089, 2107, 1920, 2175, - 78, 83, 110, 115, 83, 115, 75, 107, - 69, 101, 89, 121, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, + 1920, 2175, 78, 83, 110, 115, 83, 115, + 75, 107, 69, 101, 89, 121, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 82, 114, 84, 116, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 82, 114, 84, 116, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 65, 97, - 77, 109, 69, 101, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 89, 121, - 78, 110, 67, 99, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 72, 78, - 83, 104, 110, 115, 67, 99, 73, 105, - 68, 100, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 65, 83, 97, 115, - 77, 109, 69, 101, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 75, 107, + 65, 97, 77, 109, 69, 101, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 89, 121, 78, 110, 67, 99, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 72, 78, 83, 104, 110, 115, 67, 99, + 73, 105, 68, 100, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 65, 83, + 97, 115, 77, 109, 69, 101, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 75, 107, 69, 101, 89, 121, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 9, 32, 40, 41, 89, 121, 3082, 3131, + 3338, 3387, 3594, 3643, 78, 110, 67, 99, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 85, 117, 73, 105, 52, 54, + 56, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 52, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 73, 84, + 105, 116, 78, 110, 70, 102, 79, 111, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 84, 116, 80, 112, 83, 115, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 78, 80, 110, 112, 9, 32, + 40, 41, 2058, 2107, 9, 32, 40, 41, + 65, 67, 68, 69, 72, 73, 75, 76, + 77, 78, 79, 80, 82, 83, 84, 85, + 87, 90, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 2058, 2107, 80, 112, + 83, 115, 69, 101, 67, 99, 75, 107, 69, 101, 89, 121, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 69, 88, + 101, 120, 89, 121, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, - 40, 41, 89, 121, 3082, 3131, 3338, 3387, - 3594, 3643, 78, 110, 67, 99, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 85, 117, 73, 105, 52, 54, 56, 9, + 51, 54, 79, 80, 111, 112, 50, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 52, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 73, 84, 105, 116, - 78, 110, 70, 102, 79, 111, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 84, 116, 80, 112, 83, 115, 9, 32, + 3338, 3387, 3594, 3643, 67, 99, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 78, 80, 110, 112, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 65, 67, - 68, 69, 72, 73, 75, 76, 77, 78, - 79, 80, 82, 83, 84, 85, 87, 90, - 97, 99, 100, 101, 104, 105, 107, 108, - 109, 110, 111, 112, 114, 115, 116, 117, - 119, 122, 2058, 2107, 80, 112, 83, 115, - 69, 101, 67, 99, 75, 107, 69, 101, - 89, 121, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 69, 88, 101, 120, - 89, 121, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 51, 54, - 79, 80, 111, 112, 50, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 52, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 67, 99, 9, 32, 40, 41, + 3594, 3643, 73, 88, 105, 120, 78, 110, + 70, 102, 79, 111, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 73, 88, 105, 120, 78, 110, 70, 102, - 79, 111, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 65, 73, - 83, 97, 105, 115, 80, 112, 84, 116, - 82, 114, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 68, 100, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 9, 32, 40, 41, 69, 101, 3082, 3131, - 3338, 3387, 3594, 3643, 67, 99, 9, 32, - 40, 41, 51, 3082, 3131, 3338, 3387, 3594, - 3643, 9, 32, 40, 41, 80, 112, 3082, - 3131, 3338, 3387, 3594, 3643, 65, 97, 82, - 114, 65, 97, 77, 109, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 80, - 112, 69, 101, 78, 110, 80, 112, 71, - 103, 80, 112, 75, 107, 69, 101, 89, - 121, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 84, 116, 82, 114, 9, + 65, 73, 83, 97, 105, 115, 80, 112, + 84, 116, 82, 114, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 68, 100, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 9, 32, 40, 41, 69, 101, + 3082, 3131, 3338, 3387, 3594, 3643, 67, 99, + 9, 32, 40, 41, 51, 3082, 3131, 3338, + 3387, 3594, 3643, 9, 32, 40, 41, 80, + 112, 3082, 3131, 3338, 3387, 3594, 3643, 65, + 97, 82, 114, 65, 97, 77, 109, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 69, 80, 82, 84, 101, 112, 114, - 116, 83, 115, 73, 105, 78, 110, 70, - 102, 79, 111, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 83, - 115, 73, 105, 71, 103, 9, 32, 40, + 3643, 80, 112, 69, 101, 78, 110, 80, + 112, 71, 103, 80, 112, 75, 107, 69, + 101, 89, 121, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 84, 116, 82, + 114, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 69, 80, 82, 84, 101, + 112, 114, 116, 83, 115, 73, 105, 78, + 110, 70, 102, 79, 111, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 77, 79, 80, 82, 83, 86, 109, - 111, 112, 114, 115, 118, 73, 105, 77, - 109, 69, 101, 65, 97, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 65, - 97, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 70, 102, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 86, - 118, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 72, 104, 70, 102, 80, - 112, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 67, 99, 66, 98, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 76, 88, 89, 108, 120, 121, 83, - 115, 65, 97, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 84, 116, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 80, 112, 69, 101, 48, 57, 9, + 3643, 83, 115, 73, 105, 71, 103, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 82, 114, 73, 105, 9, + 3643, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 77, 79, 80, 82, 83, + 86, 109, 111, 112, 114, 115, 118, 73, + 105, 77, 109, 69, 101, 65, 97, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 65, 97, 76, 108, 76, 108, 69, - 101, 84, 116, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 79, 111, 78, - 110, 69, 101, 77, 109, 68, 100, 9, + 3643, 65, 97, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 70, 102, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 2058, 1920, 2175, 9, 32, 40, 41, - 65, 67, 68, 69, 72, 73, 75, 76, - 77, 78, 79, 80, 82, 83, 84, 85, - 87, 90, 97, 99, 100, 101, 104, 105, - 107, 108, 109, 110, 111, 112, 114, 115, - 116, 117, 119, 122, 1802, 1851, 2058, 2107, - 48, 57, 78, 80, 110, 112, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, - 65, 67, 68, 69, 72, 73, 75, 76, - 77, 78, 79, 80, 82, 83, 84, 85, - 87, 90, 97, 99, 100, 101, 104, 105, - 107, 108, 109, 110, 111, 112, 114, 115, - 116, 117, 119, 122, 2058, 2107, 48, 57, - 9, 32, 40, 41, 68, 72, 77, 83, - 87, 100, 104, 109, 115, 119, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, + 3643, 86, 118, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 72, 104, 70, + 102, 80, 112, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 67, 99, 66, + 98, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 76, 88, 89, 108, 120, + 121, 83, 115, 65, 97, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 84, + 116, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 80, 112, 69, 101, 48, + 57, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 48, 57, 82, 114, 73, + 105, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 65, 97, 76, 108, 76, + 108, 69, 101, 84, 116, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 79, + 111, 78, 110, 69, 101, 77, 109, 68, + 100, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, + 40, 41, 65, 67, 68, 69, 72, 73, + 75, 76, 77, 78, 79, 80, 82, 83, + 84, 85, 87, 90, 97, 99, 100, 101, + 104, 105, 107, 108, 109, 110, 111, 112, + 114, 115, 116, 117, 119, 122, 1802, 1851, + 2058, 2107, 48, 57, 78, 80, 110, 112, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 65, 67, 68, 69, 72, 73, + 75, 76, 77, 78, 79, 80, 82, 83, + 84, 85, 87, 90, 97, 99, 100, 101, + 104, 105, 107, 108, 109, 110, 111, 112, + 114, 115, 116, 117, 119, 122, 2058, 2107, + 48, 57, 9, 32, 40, 41, 68, 72, + 77, 83, 87, 100, 104, 109, 115, 119, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 68, 72, 77, 83, + 87, 100, 104, 109, 115, 119, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 2058, 1920, 2175, 10, 73, 79, 84, 105, + 111, 116, 78, 110, 67, 99, 76, 108, + 85, 117, 68, 100, 69, 101, 32, 59, + 9, 10, 40, 41, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 65, 67, + 68, 69, 72, 73, 75, 76, 77, 78, + 79, 80, 82, 83, 84, 85, 87, 90, + 97, 99, 100, 101, 104, 105, 107, 108, + 109, 110, 111, 112, 114, 115, 116, 117, + 119, 122, 2058, 2107, 48, 57, 2058, 1920, + 2175, 9, 32, 40, 41, 68, 72, 77, + 83, 87, 100, 104, 109, 115, 119, 2058, + 2107, 48, 57, 9, 32, 40, 41, 65, + 67, 68, 69, 72, 73, 75, 76, 77, + 78, 79, 80, 82, 83, 84, 85, 87, + 90, 97, 99, 100, 101, 104, 105, 107, + 108, 109, 110, 111, 112, 114, 115, 116, + 117, 119, 122, 2058, 2107, 48, 57, 2058, + 1920, 2175, 9, 32, 40, 41, 2058, 2107, 48, 57, 68, 72, 77, 83, 87, 100, 104, 109, 115, 119, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 2058, 1920, - 2175, 10, 73, 79, 84, 105, 111, 116, - 78, 110, 67, 99, 76, 108, 85, 117, - 68, 100, 69, 101, 32, 59, 9, 10, - 40, 41, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 65, 67, 68, 69, - 72, 73, 75, 76, 77, 78, 79, 80, - 82, 83, 84, 85, 87, 90, 97, 99, - 100, 101, 104, 105, 107, 108, 109, 110, - 111, 112, 114, 115, 116, 117, 119, 122, - 2058, 2107, 48, 57, 2058, 1920, 2175, 9, - 32, 40, 41, 68, 72, 77, 83, 87, - 100, 104, 109, 115, 119, 2058, 2107, 48, - 57, 9, 32, 40, 41, 65, 67, 68, - 69, 72, 73, 75, 76, 77, 78, 79, - 80, 82, 83, 84, 85, 87, 90, 97, - 99, 100, 101, 104, 105, 107, 108, 109, - 110, 111, 112, 114, 115, 116, 117, 119, - 122, 2058, 2107, 48, 57, 2058, 1920, 2175, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 68, 72, 77, 83, 87, 100, 104, 109, - 115, 119, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 2058, 1920, 2175, 9, - 32, 40, 41, 65, 70, 80, 97, 102, - 112, 3082, 3131, 3338, 3387, 3594, 3643, 9, - 32, 40, 41, 58, 65, 67, 68, 69, - 72, 73, 75, 76, 77, 78, 79, 80, - 82, 83, 84, 85, 87, 90, 92, 97, - 99, 100, 101, 104, 105, 107, 108, 109, - 110, 111, 112, 114, 115, 116, 117, 119, - 122, 3082, 3131, 3338, 3387, 3594, 3643, -128, - 8, 11, 47, 48, 57, 60, 127, 9, - 32, 40, 41, 65, 70, 80, 97, 102, - 112, 2826, 2875, 3082, 3131, 3338, 3387, 3594, - 3643, 9, 32, 40, 41, 92, 2826, 2875, - 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, - 11, 58, 60, 127, 9, 32, 40, 41, + 2175, 9, 32, 40, 41, 65, 70, 76, + 80, 97, 102, 108, 112, 3082, 3131, 3338, + 3387, 3594, 3643, 9, 32, 40, 41, 58, 65, 67, 68, 69, 72, 73, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, - 87, 90, 97, 99, 100, 101, 104, 105, - 107, 108, 109, 110, 111, 112, 114, 115, - 116, 117, 119, 122, 1802, 1851, 2058, 2107, - 48, 57, 1802, 2058, 1664, 1919, 1920, 2175, - 9, 32, 40, 41, 1802, 1851, 2058, 2107, - -128, 8, 11, 58, 60, 127, 9, 32, + 87, 90, 92, 97, 99, 100, 101, 104, + 105, 107, 108, 109, 110, 111, 112, 114, + 115, 116, 117, 119, 122, 3082, 3131, 3338, + 3387, 3594, 3643, -128, 8, 11, 47, 48, + 57, 60, 127, 9, 32, 40, 41, 65, + 70, 76, 80, 97, 102, 108, 112, 2826, + 2875, 3082, 3131, 3338, 3387, 3594, 3643, 9, + 32, 40, 41, 92, 2826, 2875, 3082, 3131, + 3338, 3387, 3594, 3643, -128, 8, 11, 58, + 60, 127, 9, 32, 40, 41, 65, 67, + 68, 69, 72, 73, 75, 76, 77, 78, + 79, 80, 82, 83, 84, 85, 87, 90, + 97, 99, 100, 101, 104, 105, 107, 108, + 109, 110, 111, 112, 114, 115, 116, 117, + 119, 122, 1802, 1851, 2058, 2107, 48, 57, + 1802, 2058, 1664, 1919, 1920, 2175, 9, 32, 40, 41, 1802, 1851, 2058, 2107, -128, 8, 11, 58, 60, 127, 9, 32, 40, 41, - 58, 65, 67, 68, 69, 72, 73, 75, - 76, 77, 78, 79, 80, 82, 83, 84, - 85, 87, 90, 92, 97, 99, 100, 101, - 104, 105, 107, 108, 109, 110, 111, 112, - 114, 115, 116, 117, 119, 122, 2826, 2875, - 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, - 11, 47, 48, 57, 60, 127, 9, 32, - 40, 41, 65, 68, 69, 78, 83, 97, - 100, 101, 110, 115, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 72, 78, 83, 104, + 1802, 1851, 2058, 2107, -128, 8, 11, 58, + 60, 127, 9, 32, 40, 41, 58, 65, + 67, 68, 69, 72, 73, 75, 76, 77, + 78, 79, 80, 82, 83, 84, 85, 87, + 90, 92, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 2826, 2875, 3082, 3131, + 3338, 3387, 3594, 3643, -128, 8, 11, 47, + 48, 57, 60, 127, 9, 32, 40, 41, + 65, 68, 69, 78, 83, 97, 100, 101, 110, 115, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 85, 117, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 73, 84, 105, 116, - 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 78, 80, 110, 112, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 69, 88, 101, 120, + 40, 41, 72, 78, 83, 104, 110, 115, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 51, 54, 79, 80, 111, 112, 1802, 1851, - 2058, 2107, 9, 32, 40, 41, 73, 88, - 105, 120, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 65, 73, 83, 97, 105, 115, + 85, 117, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 73, 84, 105, 116, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 78, 80, + 110, 112, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 69, 88, 101, 120, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 51, 54, + 79, 80, 111, 112, 1802, 1851, 2058, 2107, + 9, 32, 40, 41, 73, 88, 105, 120, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 80, 112, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 84, 116, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 69, 80, 82, 84, - 101, 112, 114, 116, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 77, 79, 80, 82, - 83, 86, 109, 111, 112, 114, 115, 118, + 65, 73, 83, 97, 105, 115, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 80, 112, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 76, 88, 89, 108, 120, 121, 1802, 1851, - 2058, 2107, 9, 32, 40, 41, 82, 114, + 84, 116, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 69, 80, 82, 84, 101, 112, + 114, 116, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 77, 79, 80, 82, 83, 86, + 109, 111, 112, 114, 115, 118, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 76, 88, + 89, 108, 120, 121, 1802, 1851, 2058, 2107, + 9, 32, 40, 41, 82, 114, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 65, 97, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 65, 97, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 79, 111, 1802, 1851, 2058, 2107, - 1802, 2058, 1664, 1919, 1920, 2175, 9, 32, - 40, 41, 73, 79, 84, 105, 111, 116, - 1802, 1851, 2058, 2107, 82, 114, 73, 105, - 71, 103, 73, 105, 78, 110, 32, 59, - 9, 10, 40, 41, 84, 116, 76, 108, - 32, 59, 9, 10, 40, 41, 9, 32, - 40, 41, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 68, 72, 77, 83, 87, 100, - 104, 109, 115, 119, 1802, 1851, 2058, 2107, - 48, 57, 9, 32, 40, 41, 65, 67, - 68, 69, 72, 73, 75, 76, 77, 78, - 79, 80, 82, 83, 84, 85, 87, 90, - 97, 99, 100, 101, 104, 105, 107, 108, - 109, 110, 111, 112, 114, 115, 116, 117, - 119, 122, 1802, 1851, 2058, 2107, 48, 57, - 1802, 2058, 1664, 1919, 1920, 2175, 9, 32, - 40, 41, 65, 70, 80, 97, 102, 112, + 79, 111, 1802, 1851, 2058, 2107, 1802, 2058, + 1664, 1919, 1920, 2175, 9, 32, 40, 41, + 73, 79, 84, 105, 111, 116, 1802, 1851, + 2058, 2107, 82, 114, 73, 105, 71, 103, + 73, 105, 78, 110, 32, 59, 9, 10, + 40, 41, 84, 116, 76, 108, 32, 59, + 9, 10, 40, 41, 9, 32, 40, 41, + 1802, 1851, 2058, 2107, 9, 32, 40, 41, + 68, 72, 77, 83, 87, 100, 104, 109, + 115, 119, 1802, 1851, 2058, 2107, 48, 57, + 9, 32, 40, 41, 65, 67, 68, 69, + 72, 73, 75, 76, 77, 78, 79, 80, + 82, 83, 84, 85, 87, 90, 97, 99, + 100, 101, 104, 105, 107, 108, 109, 110, + 111, 112, 114, 115, 116, 117, 119, 122, + 1802, 1851, 2058, 2107, 48, 57, 1802, 2058, + 1664, 1919, 1920, 2175, 9, 32, 40, 41, + 65, 70, 76, 80, 97, 102, 108, 112, 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 58, 65, 67, 68, 69, 72, 73, 75, 76, 77, 78, 79, @@ -2346,6 +2362,8 @@ static const short _zone_scanner_trans_keys[] = { 97, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 83, 115, 68, 100, 66, 98, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 73, 105, 65, 97, 83, + 115, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 76, 108, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 1802, 2058, 1664, 1919, 1920, 2175, 9, 32, 40, @@ -2467,92 +2485,94 @@ static const short _zone_scanner_trans_keys[] = { 84, 85, 87, 90, 97, 99, 100, 101, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 119, 122, 32, 59, - 65, 70, 80, 97, 102, 112, 9, 10, - 40, 41, 65, 97, 65, 97, 32, 59, - 9, 10, 40, 41, 83, 115, 68, 100, - 66, 98, 32, 59, 9, 10, 40, 41, - 76, 108, 32, 59, 9, 10, 40, 41, - 65, 68, 69, 78, 83, 97, 100, 101, - 110, 115, 65, 97, 32, 59, 9, 10, - 40, 41, 78, 83, 110, 115, 83, 115, - 75, 107, 69, 101, 89, 121, 32, 59, - 9, 10, 40, 41, 32, 59, 9, 10, - 40, 41, 82, 114, 84, 116, 32, 59, - 9, 10, 40, 41, 65, 97, 77, 109, - 69, 101, 32, 59, 9, 10, 40, 41, - 89, 121, 78, 110, 67, 99, 32, 59, - 9, 10, 40, 41, 72, 78, 83, 104, - 110, 115, 67, 99, 73, 105, 68, 100, - 32, 59, 9, 10, 40, 41, 65, 83, - 97, 115, 77, 109, 69, 101, 32, 59, - 9, 10, 40, 41, 75, 107, 69, 101, - 89, 121, 32, 59, 9, 10, 40, 41, - 32, 59, 89, 121, 9, 10, 40, 41, - 78, 110, 67, 99, 32, 59, 9, 10, - 40, 41, 85, 117, 73, 105, 52, 54, - 56, 32, 59, 9, 10, 40, 41, 52, - 32, 59, 9, 10, 40, 41, 73, 84, - 105, 116, 78, 110, 70, 102, 79, 111, - 32, 59, 9, 10, 40, 41, 84, 116, - 80, 112, 83, 115, 32, 59, 9, 10, - 40, 41, 80, 112, 83, 115, 69, 101, - 67, 99, 75, 107, 69, 101, 89, 121, - 32, 59, 9, 10, 40, 41, 69, 88, - 101, 120, 89, 121, 32, 59, 9, 10, + 65, 70, 76, 80, 97, 102, 108, 112, + 9, 10, 40, 41, 65, 97, 65, 97, + 32, 59, 9, 10, 40, 41, 83, 115, + 68, 100, 66, 98, 32, 59, 9, 10, + 40, 41, 73, 105, 65, 97, 83, 115, + 32, 59, 9, 10, 40, 41, 76, 108, + 32, 59, 9, 10, 40, 41, 65, 68, + 69, 78, 83, 97, 100, 101, 110, 115, + 65, 97, 32, 59, 9, 10, 40, 41, + 78, 83, 110, 115, 83, 115, 75, 107, + 69, 101, 89, 121, 32, 59, 9, 10, 40, 41, 32, 59, 9, 10, 40, 41, - 51, 54, 79, 80, 111, 112, 50, 32, + 82, 114, 84, 116, 32, 59, 9, 10, + 40, 41, 65, 97, 77, 109, 69, 101, + 32, 59, 9, 10, 40, 41, 89, 121, + 78, 110, 67, 99, 32, 59, 9, 10, + 40, 41, 72, 78, 83, 104, 110, 115, + 67, 99, 73, 105, 68, 100, 32, 59, + 9, 10, 40, 41, 65, 83, 97, 115, + 77, 109, 69, 101, 32, 59, 9, 10, + 40, 41, 75, 107, 69, 101, 89, 121, + 32, 59, 9, 10, 40, 41, 32, 59, + 89, 121, 9, 10, 40, 41, 78, 110, + 67, 99, 32, 59, 9, 10, 40, 41, + 85, 117, 73, 105, 52, 54, 56, 32, 59, 9, 10, 40, 41, 52, 32, 59, - 9, 10, 40, 41, 67, 99, 32, 59, - 9, 10, 40, 41, 32, 59, 9, 10, - 40, 41, 73, 88, 105, 120, 78, 110, - 70, 102, 79, 111, 32, 59, 9, 10, + 9, 10, 40, 41, 73, 84, 105, 116, + 78, 110, 70, 102, 79, 111, 32, 59, + 9, 10, 40, 41, 84, 116, 80, 112, + 83, 115, 32, 59, 9, 10, 40, 41, + 80, 112, 83, 115, 69, 101, 67, 99, + 75, 107, 69, 101, 89, 121, 32, 59, + 9, 10, 40, 41, 69, 88, 101, 120, + 89, 121, 32, 59, 9, 10, 40, 41, + 32, 59, 9, 10, 40, 41, 51, 54, + 79, 80, 111, 112, 50, 32, 59, 9, + 10, 40, 41, 52, 32, 59, 9, 10, + 40, 41, 67, 99, 32, 59, 9, 10, 40, 41, 32, 59, 9, 10, 40, 41, - 65, 73, 83, 97, 105, 115, 80, 112, - 84, 116, 82, 114, 32, 59, 9, 10, - 40, 41, 68, 100, 32, 59, 9, 10, - 40, 41, 32, 59, 69, 101, 9, 10, - 40, 41, 67, 99, 32, 51, 59, 9, - 10, 40, 41, 32, 59, 80, 112, 9, - 10, 40, 41, 65, 97, 82, 114, 65, - 97, 77, 109, 32, 59, 9, 10, 40, - 41, 80, 112, 69, 101, 78, 110, 80, - 112, 71, 103, 80, 112, 75, 107, 69, - 101, 89, 121, 32, 59, 9, 10, 40, - 41, 84, 116, 82, 114, 32, 59, 9, - 10, 40, 41, 69, 80, 82, 84, 101, - 112, 114, 116, 83, 115, 73, 105, 78, - 110, 70, 102, 79, 111, 32, 59, 9, + 73, 88, 105, 120, 78, 110, 70, 102, + 79, 111, 32, 59, 9, 10, 40, 41, + 32, 59, 9, 10, 40, 41, 65, 73, + 83, 97, 105, 115, 80, 112, 84, 116, + 82, 114, 32, 59, 9, 10, 40, 41, + 68, 100, 32, 59, 9, 10, 40, 41, + 32, 59, 69, 101, 9, 10, 40, 41, + 67, 99, 32, 51, 59, 9, 10, 40, + 41, 32, 59, 80, 112, 9, 10, 40, + 41, 65, 97, 82, 114, 65, 97, 77, + 109, 32, 59, 9, 10, 40, 41, 80, + 112, 69, 101, 78, 110, 80, 112, 71, + 103, 80, 112, 75, 107, 69, 101, 89, + 121, 32, 59, 9, 10, 40, 41, 84, + 116, 82, 114, 32, 59, 9, 10, 40, + 41, 69, 80, 82, 84, 101, 112, 114, + 116, 83, 115, 73, 105, 78, 110, 70, + 102, 79, 111, 32, 59, 9, 10, 40, + 41, 32, 59, 9, 10, 40, 41, 83, + 115, 73, 105, 71, 103, 32, 59, 9, 10, 40, 41, 32, 59, 9, 10, 40, - 41, 83, 115, 73, 105, 71, 103, 32, - 59, 9, 10, 40, 41, 32, 59, 9, - 10, 40, 41, 77, 79, 80, 82, 83, - 86, 109, 111, 112, 114, 115, 118, 73, - 105, 77, 109, 69, 101, 65, 97, 32, - 59, 9, 10, 40, 41, 65, 97, 32, - 59, 9, 10, 40, 41, 70, 102, 32, - 59, 9, 10, 40, 41, 86, 118, 32, - 59, 9, 10, 40, 41, 72, 104, 70, - 102, 80, 112, 32, 59, 9, 10, 40, - 41, 67, 99, 66, 98, 32, 59, 9, - 10, 40, 41, 76, 88, 89, 108, 120, - 121, 83, 115, 65, 97, 32, 59, 9, - 10, 40, 41, 84, 116, 32, 59, 9, - 10, 40, 41, 80, 112, 69, 101, 48, - 57, 32, 59, 9, 10, 40, 41, 48, - 57, 82, 114, 73, 105, 32, 59, 9, - 10, 40, 41, 65, 97, 76, 108, 76, - 108, 69, 101, 84, 116, 32, 59, 9, - 10, 40, 41, 79, 111, 78, 110, 69, - 101, 77, 109, 68, 100, 32, 59, 9, - 10, 40, 41, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 9, 32, 40, - 41, 65, 67, 68, 69, 72, 73, 75, - 76, 77, 78, 79, 80, 82, 83, 84, - 85, 87, 90, 97, 99, 100, 101, 104, - 105, 107, 108, 109, 110, 111, 112, 114, - 115, 116, 117, 119, 122, 3082, 3131, 3338, + 41, 77, 79, 80, 82, 83, 86, 109, + 111, 112, 114, 115, 118, 73, 105, 77, + 109, 69, 101, 65, 97, 32, 59, 9, + 10, 40, 41, 65, 97, 32, 59, 9, + 10, 40, 41, 70, 102, 32, 59, 9, + 10, 40, 41, 86, 118, 32, 59, 9, + 10, 40, 41, 72, 104, 70, 102, 80, + 112, 32, 59, 9, 10, 40, 41, 67, + 99, 66, 98, 32, 59, 9, 10, 40, + 41, 76, 88, 89, 108, 120, 121, 83, + 115, 65, 97, 32, 59, 9, 10, 40, + 41, 84, 116, 32, 59, 9, 10, 40, + 41, 80, 112, 69, 101, 48, 57, 32, + 59, 9, 10, 40, 41, 48, 57, 82, + 114, 73, 105, 32, 59, 9, 10, 40, + 41, 65, 97, 76, 108, 76, 108, 69, + 101, 84, 116, 32, 59, 9, 10, 40, + 41, 79, 111, 78, 110, 69, 101, 77, + 109, 68, 100, 32, 59, 9, 10, 40, + 41, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 65, - 70, 80, 97, 102, 112, 3082, 3131, 3338, + 67, 68, 69, 72, 73, 75, 76, 77, + 78, 79, 80, 82, 83, 84, 85, 87, + 90, 97, 99, 100, 101, 104, 105, 107, + 108, 109, 110, 111, 112, 114, 115, 116, + 117, 119, 122, 3082, 3131, 3338, 3387, 3594, + 3643, 9, 32, 40, 41, 65, 70, 76, + 80, 97, 102, 108, 112, 3082, 3131, 3338, 3387, 3594, 3643, 65, 97, 65, 97, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, 65, 68, 69, 78, @@ -2653,6 +2673,8 @@ static const short _zone_scanner_trans_keys[] = { 101, 77, 109, 68, 100, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 83, 115, 68, 100, 66, 98, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 73, + 105, 65, 97, 83, 115, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 76, 108, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 2058, @@ -3277,7 +3299,7 @@ static const short _zone_scanner_trans_keys[] = { }; static const char _zone_scanner_single_lengths[] = { - 0, 44, 16, 42, 16, 11, 8, 8, + 0, 44, 16, 42, 18, 11, 8, 8, 1, 1, 1, 13, 13, 2, 50, 18, 44, 10, 2, 10, 12, 12, 4, 2, 2, 2, 2, 10, 10, 2, 2, 10, @@ -3304,29 +3326,30 @@ static const char _zone_scanner_single_lengths[] = { 42, 16, 6, 10, 6, 1, 1, 6, 2, 2, 2, 2, 2, 2, 2, 6, 42, 1, 16, 42, 1, 6, 10, 6, - 1, 16, 48, 18, 13, 44, 2, 8, + 1, 18, 48, 20, 13, 44, 2, 8, 8, 50, 18, 14, 10, 12, 12, 12, 14, 12, 14, 10, 10, 16, 20, 14, 10, 10, 10, 2, 14, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 18, - 44, 2, 18, 50, 18, 14, 10, 12, + 44, 2, 20, 50, 18, 14, 10, 12, 12, 12, 14, 12, 14, 10, 10, 16, 20, 14, 10, 10, 10, 9, 44, 12, 12, 12, 12, 2, 2, 10, 2, 2, - 2, 10, 2, 10, 2, 8, 8, 12, - 12, 12, 12, 1, 50, 12, 12, 16, - 12, 8, 10, 10, 10, 12, 10, 12, - 8, 8, 14, 18, 12, 8, 8, 8, - 2, 2, 10, 2, 3, 1, 1, 5, - 6, 6, 0, 0, 0, 6, 2, 2, - 2, 4, 0, 0, 0, 4, 6, 6, - 2, 0, 0, 0, 6, 6, 6, 18, - 8, 1, 8, 10, 8, 1, 6, 10, - 4, 12, 8, 1, 0, 0, 0, 4, - 8, 1, 6, 6, 8, 12, 4, 12, - 8, 1, 0, 0, 0, 4, 8, 2, - 10, 1, 1, 1, 1, 2, 2, 11, - 1, 1, 36, 8, 2, 2, 2, 2, + 2, 10, 2, 2, 2, 10, 2, 10, + 2, 8, 8, 12, 12, 12, 12, 1, + 50, 12, 12, 16, 12, 8, 10, 10, + 10, 12, 10, 12, 8, 8, 14, 18, + 12, 8, 8, 8, 2, 2, 10, 2, + 3, 1, 1, 5, 6, 6, 0, 0, + 0, 6, 2, 2, 2, 4, 0, 0, + 0, 4, 6, 6, 2, 0, 0, 0, + 6, 6, 6, 18, 8, 1, 8, 10, + 8, 1, 6, 10, 4, 12, 8, 1, + 0, 0, 0, 4, 8, 1, 6, 6, + 8, 12, 4, 12, 8, 1, 0, 0, + 0, 4, 8, 2, 10, 1, 1, 1, + 1, 2, 2, 11, 1, 1, 36, 10, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -3348,7 +3371,7 @@ static const char _zone_scanner_single_lengths[] = { 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 10, 46, 16, 2, 2, + 2, 2, 2, 10, 46, 18, 2, 2, 10, 1, 10, 2, 10, 4, 2, 2, 2, 2, 10, 10, 2, 2, 10, 2, 2, 2, 10, 2, 2, 2, 10, 6, @@ -3370,112 +3393,113 @@ static const char _zone_scanner_single_lengths[] = { 2, 2, 10, 2, 10, 2, 2, 0, 10, 2, 2, 10, 2, 2, 2, 2, 2, 10, 2, 2, 2, 2, 2, 10, - 2, 2, 2, 10, 2, 10, 6, 6, - 6, 6, 0, 10, 1, 1, 1, 6, - 7, 8, 6, 0, 10, 1, 1, 6, - 1, 8, 1, 1, 1, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 4, - 1, 1, 2, 1, 1, 1, 1, 4, - 1, 1, 1, 1, 4, 1, 1, 0, - 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 4, - 1, 1, 1, 1, 4, 1, 1, 1, - 4, 10, 19, 1, 1, 1, 1, 3, - 10, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 10, 10, 1, 10, 1, 1, - 1, 2, 1, 1, 2, 2, 2, 1, - 1, 2, 2, 11, 1, 1, 1, 2, - 1, 1, 1, 1, 1, 2, 1, 3, - 1, 12, 1, 1, 1, 1, 1, 1, - 2, 1, 3, 1, 12, 1, 1, 1, - 0, 11, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 2, 0, - 11, 0, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 10, 2, 2, 2, 10, + 2, 10, 6, 6, 6, 6, 0, 10, + 1, 1, 1, 6, 7, 8, 6, 0, + 10, 1, 1, 6, 1, 8, 1, 1, + 1, 4, 1, 1, 1, 1, 1, 1, + 4, 1, 1, 4, 1, 1, 2, 1, + 1, 1, 1, 4, 1, 1, 1, 1, + 4, 1, 1, 0, 4, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 4, 1, 1, 1, 1, + 4, 1, 1, 1, 4, 10, 19, 1, + 1, 1, 1, 3, 10, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 10, 10, + 1, 10, 1, 1, 1, 2, 1, 1, + 2, 2, 2, 1, 1, 2, 2, 11, + 1, 1, 1, 2, 1, 1, 1, 1, + 1, 2, 1, 3, 1, 12, 1, 1, + 1, 1, 1, 1, 2, 1, 3, 1, + 12, 1, 1, 1, 0, 11, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 10, 1, 1, 1, 1, 10, 1, 1, - 1, 1, 1, 0, 1, 10, 10, 1, - 10, 2, 4, 2, 2, 3, 2, 2, - 2, 2, 1, 1, 2, 2, 2, 1, - 2, 4, 4, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 1, 2, - 2, 2, 1, 1, 1, 2, 1, 1, - 2, 2, 2, 1, 1, 1, 2, 2, - 1, 1, 1, 1, 2, 1, 1, 2, + 1, 0, 2, 0, 11, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 10, 1, 1, 1, + 1, 10, 1, 1, 1, 1, 1, 0, + 1, 10, 10, 1, 10, 2, 4, 2, + 2, 3, 2, 2, 2, 2, 1, 1, + 2, 2, 2, 1, 2, 4, 4, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 4, 2, - 2, 2, 2, 2, 2, 2, 2, 4, - 2, 1, 2, 2, 2, 3, 3, 2, - 2, 2, 2, 1, 1, 2, 2, 2, - 1, 2, 1, 1, 2, 1, 1, 2, - 12, 2, 2, 2, 2, 2, 2, 2, - 6, 2, 2, 2, 2, 2, 2, 4, + 2, 1, 1, 2, 2, 2, 1, 1, + 1, 2, 1, 1, 2, 2, 2, 1, + 1, 1, 2, 2, 1, 1, 1, 1, + 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 4, 2, 2, 2, + 2, 2, 4, 2, 2, 2, 2, 2, + 2, 2, 2, 4, 2, 1, 2, 2, + 2, 3, 3, 2, 2, 2, 2, 1, + 1, 2, 2, 2, 1, 2, 1, 1, + 2, 1, 1, 2, 12, 2, 2, 2, + 2, 2, 2, 2, 6, 2, 2, 2, + 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 3, 3, 2, 3, 6, 9, - 6, 6, 6, 6, 16, 6, 16, 6, - 16, 6, 12, 2, 10, 2, 1, 6, - 10, 6, 1, 6, 10, 6, 1, 6, - 10, 6, 1, 1, 1, 2, 6, 6, - 2, 1, 3, 6, 9, 2, 1, 0, - 6, 9, 2, 1, 2, 10, 10, 1, - 1, 3, 0, 6, 8, 6, 8, 7, - 8, 6, 6, 6, 8, 6, 8, 7, - 8, 6, 7, 0, 12, 10, 12, 10, - 12, 10, 12, 10, 1, 11, 11, 1, + 2, 2, 2, 2, 2, 1, 3, 3, + 2, 3, 6, 9, 6, 6, 6, 6, + 16, 6, 16, 6, 16, 6, 12, 2, + 10, 2, 1, 6, 10, 6, 1, 6, + 10, 6, 1, 6, 10, 6, 1, 1, + 1, 2, 6, 6, 2, 1, 3, 6, + 9, 2, 1, 0, 6, 9, 2, 1, + 2, 10, 10, 1, 1, 3, 0, 6, + 8, 6, 8, 7, 8, 6, 6, 6, + 8, 6, 8, 7, 8, 6, 7, 0, + 12, 10, 12, 10, 12, 10, 12, 10, + 1, 11, 11, 1, 11, 11, 10, 1, 11, 11, 10, 1, 11, 11, 10, 1, - 11, 11, 10, 1, 6, 1, 6, 6, - 1, 1, 1, 6, 1, 6, 6, 1, - 1, 0, 6, 6, 6, 6, 6, 9, - 2, 1, 1, 1, 0, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 9, 2, - 1, 1, 1, 1, 1, 0, 6, 6, - 6, 6, 6, 7, 2, 1, 1, 1, - 13, 2, 1, 1, 1, 0, 10, 1, - 1, 1, 1, 0, 6, 6, 6, 6, - 6, 6, 0, 10, 1, 1, 1, 1, - 0, 6, 6, 6, 6, 0, 10, 1, - 1, 1, 0, 6, 10, 6, 6, 6, - 7, 34, 7, 2, 1, 14, 1, 35, - 3, 1, 1, 6, 6, 6, 7, 35, - 1, 1, 6, 6, 6, 7, 35, 1, - 1, 6, 6, 6, 9, 34, 1, 1, + 6, 1, 6, 6, 1, 1, 1, 6, + 1, 6, 6, 1, 1, 0, 6, 6, + 6, 6, 6, 9, 2, 1, 1, 1, + 0, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 9, 2, 1, 1, 1, 1, + 1, 0, 6, 6, 6, 6, 6, 7, + 2, 1, 1, 1, 13, 2, 1, 1, + 1, 0, 10, 1, 1, 1, 1, 0, + 6, 6, 6, 6, 6, 6, 0, 10, + 1, 1, 1, 1, 0, 6, 6, 6, + 6, 0, 10, 1, 1, 1, 0, 6, + 10, 6, 6, 6, 7, 34, 7, 2, + 1, 14, 1, 35, 3, 1, 1, 6, + 6, 6, 7, 35, 1, 1, 6, 6, + 6, 7, 35, 1, 1, 6, 6, 6, + 9, 34, 1, 1, 1, 0, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 9, 6, 7, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 3, + 2, 2, 0, 6, 6, 6, 6, 6, + 7, 2, 1, 1, 1, 1, 2, 0, + 6, 6, 6, 6, 6, 7, 6, 6, + 0, 1, 0, 1, 1, 0, 1, 2, + 2, 1, 1, 1, 1, 1, 1, 0, + 6, 1, 1, 1, 0, 6, 6, 6, + 6, 6, 7, 2, 0, 2, 1, 1, 1, 0, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 9, - 6, 7, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 2, 2, 0, 6, - 6, 6, 6, 6, 7, 2, 1, 1, - 1, 1, 2, 0, 6, 6, 6, 6, - 6, 7, 6, 6, 0, 1, 0, 1, - 1, 0, 1, 2, 2, 1, 1, 1, - 1, 1, 1, 0, 6, 1, 1, 1, - 0, 6, 6, 6, 6, 6, 7, 2, - 0, 2, 1, 1, 1, 0, 6, 6, - 6, 6, 6, 6, 0, 10, 1, 1, - 1, 1, 0, 6, 6, 2, 2, 1, - 0, 6, 6, 6, 6, 6, 6, 0, - 10, 1, 1, 1, 1, 0, 6, 7, - 3, 1, 0, 6, 6, 0, 0, 0, - 1, 0, 0, 0, 0, 3, 1, 0, - 0, 1, 0, 0, 3, 0, 0, 1, - 0, 0, 3, 0, 6, 6, 6, 6, - 2, 1, 1, 0, 6, 6, 6, 6, - 2, 1, 1, 0, 6, 9, 2, 2, - 1, 0, 6, 6, 6, 6, 6, 9, - 2, 1, 1, 1, 12, 17, 48, 48, - 12, 48, 12, 17, 53, 53, 0, 0, - 0, 0, 4, 0, 0, 0, 10, 0, - 11, 1, 0, 0, 46, 1, 0, 10, - 1, 6, 0, 10, 1, 1, 0, 0, - 19, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 1, 0, 0, - 10, 1, 10, 1, 10, 1, 10, 1, - 0, 0, 0, 0, 13, 1, 0, 10, - 1, 0, 10, 1, 0, 14, 1, 7, - 1, 35, 3, 0, 0, 0, 0, 0, - 0, 0, 10, 1, 0, 0, 10, 1, - 0, 0, 0, 0, 0, 0, 0, 0 + 0, 10, 1, 1, 1, 1, 0, 6, + 6, 2, 2, 1, 0, 6, 6, 6, + 6, 6, 6, 0, 10, 1, 1, 1, + 1, 0, 6, 7, 3, 1, 0, 6, + 6, 0, 0, 0, 1, 0, 0, 0, + 0, 3, 1, 0, 0, 1, 0, 0, + 3, 0, 0, 1, 0, 0, 3, 0, + 6, 6, 6, 6, 2, 1, 1, 0, + 6, 6, 6, 6, 2, 1, 1, 0, + 6, 9, 2, 2, 1, 0, 6, 6, + 6, 6, 6, 9, 2, 1, 1, 1, + 12, 17, 48, 48, 12, 48, 12, 17, + 53, 53, 0, 0, 0, 0, 4, 0, + 0, 0, 10, 0, 11, 1, 0, 0, + 46, 1, 0, 10, 1, 6, 0, 10, + 1, 1, 0, 0, 19, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 10, 1, 0, 0, 10, 1, 10, 1, + 10, 1, 10, 1, 0, 0, 0, 0, + 13, 1, 0, 10, 1, 0, 10, 1, + 0, 14, 1, 7, 1, 35, 3, 0, + 0, 0, 0, 0, 0, 0, 10, 1, + 0, 0, 10, 1, 0, 0, 0, 0, + 0, 0, 0, 0 }; static const char _zone_scanner_range_lengths[] = { @@ -3515,20 +3539,21 @@ static const char _zone_scanner_range_lengths[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 3, 3, 2, - 2, 2, 2, 1, 4, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 2, 3, 0, 0, 3, - 5, 5, 1, 1, 1, 5, 2, 2, - 2, 4, 3, 1, 1, 4, 1, 1, - 2, 3, 1, 1, 1, 0, 1, 1, - 0, 0, 1, 1, 1, 1, 0, 3, - 3, 3, 0, 0, 1, 1, 1, 3, - 0, 1, 0, 3, 0, 3, 3, 3, - 0, 0, 1, 1, 1, 3, 0, 2, - 3, 1, 1, 3, 3, 3, 3, 3, - 1, 0, 0, 2, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 3, 3, 2, 2, 2, 2, 1, + 4, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 2, 0, 2, + 3, 0, 0, 3, 5, 5, 1, 1, + 1, 5, 2, 2, 2, 4, 3, 1, + 1, 4, 1, 1, 2, 3, 1, 1, + 1, 0, 1, 1, 0, 0, 1, 1, + 1, 1, 0, 3, 3, 3, 0, 0, + 1, 1, 1, 3, 0, 1, 0, 3, + 0, 3, 3, 3, 0, 0, 1, 1, + 1, 3, 0, 2, 3, 1, 1, 3, + 3, 3, 3, 3, 1, 0, 0, 2, + 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 0, 0, 0, 2, 0, 0, @@ -3572,314 +3597,317 @@ static const char _zone_scanner_range_lengths[] = { 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, - 1, 3, 3, 3, 1, 1, 1, 0, - 1, 1, 3, 3, 3, 1, 1, 1, - 1, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 2, 0, 0, 1, - 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 2, - 0, 1, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 3, 0, 0, 0, 0, - 0, 3, 3, 3, 3, 3, 3, 0, - 3, 3, 3, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, - 1, 1, 1, 0, 0, 0, 0, 0, - 3, 3, 3, 3, 3, 3, 0, 0, - 1, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 3, 3, 3, + 1, 1, 1, 0, 1, 1, 3, 3, + 3, 1, 1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, + 2, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 2, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 3, + 0, 0, 0, 0, 0, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 1, 1, 3, 0, - 1, 3, 0, 2, 0, 2, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 3, 3, 3, 3, + 3, 3, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 2, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 2, + 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 2, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 2, 0, 0, 2, - 1, 3, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 2, 0, - 0, 2, 0, 0, 2, 0, 0, 0, - 2, 0, 0, 2, 0, 0, 2, 0, - 0, 2, 0, 0, 0, 2, 0, 0, - 2, 1, 3, 0, 0, 0, 0, 0, - 2, 1, 3, 3, 2, 3, 0, 3, - 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 3, 1, 3, 1, 1, + 0, 0, 0, 0, 0, 0, 1, 1, + 1, 1, 3, 0, 1, 3, 0, 2, + 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, + 2, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, + 2, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, + 2, 0, 0, 2, 1, 3, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 2, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 2, + 0, 0, 2, 0, 0, 2, 0, 0, + 0, 2, 0, 0, 2, 1, 3, 0, + 0, 0, 0, 0, 2, 1, 3, 3, + 2, 3, 0, 3, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 3, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 0, 3, - 2, 1, 3, 0, 3, 2, 1, 1, - 1, 3, 2, 1, 2, 0, 3, 1, - 3, 5, 1, 1, 1, 1, 1, 1, - 0, 0, 1, 1, 1, 1, 1, 1, - 0, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 0, 1, 1, 1, 0, 1, - 1, 1, 0, 1, 0, 1, 1, 1, - 1, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 1, - 3, 0, 3, 0, 3, 0, 3, 2, - 1, 1, 1, 1, 1, 3, 0, 1, - 1, 3, 0, 3, 0, 1, 1, 1, - 0, 0, 0, 1, 1, 1, 1, 1, - 0, 3, 3, 1, 1, 3, 0, 1, - 1, 3, 3, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 3, 3, 1, + 1, 2, 0, 3, 2, 1, 3, 0, + 3, 2, 1, 1, 1, 3, 2, 1, + 2, 0, 3, 1, 3, 5, 1, 1, + 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, - 0, 0, 3, 0, 1, 0, 1, 3, - 3, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 0, 1, 1, 3, 3, 1, - 1, 0, 1, 1, 3, 0, 1, 1, - 1, 3, 0, 3, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 0, 1, + 1, 1, 0, 1, 1, 1, 0, 1, + 0, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 3, 0, 3, 0, + 3, 0, 3, 2, 1, 1, 1, 1, + 1, 3, 0, 1, 1, 3, 0, 3, + 0, 1, 1, 1, 0, 0, 0, 1, + 1, 1, 1, 1, 0, 3, 3, 1, + 1, 3, 0, 1, 1, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 0, 0, 3, 0, + 1, 0, 1, 3, 3, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 0, 1, + 1, 3, 3, 1, 1, 0, 1, 1, + 3, 0, 1, 1, 1, 3, 0, 3, + 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 0, 3, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 2, 2, 1, 1, - 1, 1, 3, 0, 3, 0, 1, 1, - 1, 3, 0, 1, 1, 1, 1, 1, - 1, 3, 0, 3, 3, 3, 3, 3, - 3, 3, 3, 5, 2, 0, 0, 0, - 0, 0, 1, 3, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 2, - 3, 5, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 3, 3, 1, 1, - 1, 1, 1, 1, 1, 3, 2, 1, - 1, 1, 1, 1, 1, 1, 3, 3, + 2, 2, 1, 1, 1, 1, 3, 0, + 3, 0, 1, 1, 1, 3, 0, 1, + 1, 1, 1, 1, 1, 3, 0, 3, + 3, 3, 3, 3, 3, 3, 3, 5, + 2, 0, 0, 0, 0, 0, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, - 3, 1, 1, 1, 3, 3, 3, 3, - 0, 3, 3, 3, 3, 2, 1, 3, - 3, 0, 3, 3, 2, 3, 3, 0, - 3, 3, 2, 1, 1, 1, 1, 3, - 2, 1, 1, 1, 1, 3, 0, 3, - 2, 1, 1, 1, 1, 3, 2, 2, - 1, 3, 0, 3, 0, 1, 1, 3, - 2, 1, 1, 1, 3, 8, 3, 4, - 3, 4, 3, 8, 9, 9, 0, 0, - 0, 0, 4, 0, 0, 0, 3, 0, - 3, 1, 0, 0, 0, 1, 0, 3, - 1, 3, 0, 3, 1, 1, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 1, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 1, 0, 3, - 1, 0, 3, 1, 0, 0, 1, 3, - 1, 3, 3, 0, 0, 0, 0, 0, - 0, 0, 3, 1, 0, 0, 3, 1, - 0, 0, 0, 0, 0, 0, 0, 0 + 1, 1, 3, 2, 3, 5, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 1, 1, 1, 1, 1, 1, + 1, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 3, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 3, 1, 1, 1, + 3, 3, 3, 3, 0, 3, 3, 3, + 3, 2, 1, 3, 3, 0, 3, 3, + 2, 3, 3, 0, 3, 3, 2, 1, + 1, 1, 1, 3, 2, 1, 1, 1, + 1, 3, 0, 3, 2, 1, 1, 1, + 1, 3, 2, 2, 1, 3, 0, 3, + 0, 1, 1, 3, 2, 1, 1, 1, + 3, 8, 3, 4, 3, 4, 3, 8, + 9, 9, 0, 0, 0, 0, 4, 0, + 0, 0, 3, 0, 3, 1, 0, 0, + 0, 1, 0, 3, 1, 3, 0, 3, + 1, 1, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 3, 1, 0, 0, 0, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 0, 0, + 0, 1, 0, 3, 1, 0, 3, 1, + 0, 0, 1, 3, 1, 3, 3, 0, + 0, 0, 0, 0, 0, 0, 3, 1, + 0, 0, 3, 1, 0, 0, 0, 0, + 0, 0, 0, 0 }; static const short _zone_scanner_index_offsets[] = { - 0, 0, 46, 64, 107, 124, 139, 148, - 157, 159, 161, 164, 181, 198, 203, 258, - 278, 323, 334, 337, 348, 362, 376, 381, - 384, 387, 390, 393, 404, 415, 418, 421, - 432, 435, 438, 441, 452, 455, 458, 461, - 472, 479, 482, 485, 488, 499, 504, 507, - 510, 521, 524, 527, 530, 541, 554, 557, - 560, 571, 574, 577, 580, 582, 593, 595, - 606, 611, 614, 617, 620, 631, 634, 637, - 640, 651, 656, 663, 706, 709, 712, 715, - 718, 721, 724, 727, 738, 743, 746, 757, - 768, 775, 777, 788, 790, 801, 804, 815, - 826, 831, 834, 837, 840, 851, 862, 869, - 872, 875, 878, 889, 892, 903, 916, 919, - 931, 944, 947, 950, 953, 956, 967, 970, - 973, 976, 979, 982, 985, 988, 991, 994, - 1005, 1008, 1011, 1022, 1031, 1034, 1037, 1040, - 1043, 1046, 1057, 1068, 1071, 1074, 1077, 1088, - 1099, 1112, 1115, 1118, 1121, 1124, 1135, 1138, - 1149, 1152, 1163, 1166, 1177, 1180, 1183, 1186, - 1197, 1200, 1203, 1214, 1221, 1224, 1227, 1238, - 1241, 1252, 1255, 1258, 1260, 1272, 1275, 1278, - 1289, 1292, 1295, 1298, 1301, 1304, 1315, 1318, - 1321, 1324, 1327, 1330, 1341, 1344, 1390, 1395, - 1402, 1446, 1464, 1472, 1484, 1492, 1495, 1497, - 1504, 1507, 1510, 1513, 1516, 1519, 1522, 1527, - 1534, 1578, 1581, 1599, 1643, 1646, 1654, 1666, - 1674, 1677, 1694, 1747, 1766, 1783, 1829, 1834, - 1846, 1858, 1913, 1932, 1947, 1958, 1971, 1984, - 1997, 2012, 2025, 2040, 2051, 2062, 2079, 2100, - 2115, 2126, 2137, 2148, 2153, 2168, 2171, 2174, - 2177, 2180, 2183, 2188, 2191, 2194, 2199, 2208, - 2228, 2274, 2279, 2298, 2353, 2372, 2387, 2398, - 2411, 2424, 2437, 2452, 2465, 2480, 2491, 2502, - 2519, 2540, 2555, 2566, 2577, 2588, 2601, 2647, - 2661, 2675, 2690, 2705, 2708, 2711, 2722, 2725, - 2728, 2731, 2742, 2745, 2756, 2761, 2773, 2785, - 2800, 2815, 2830, 2845, 2848, 2903, 2917, 2931, - 2948, 2961, 2970, 2981, 2992, 3003, 3016, 3027, - 3040, 3049, 3058, 3073, 3092, 3105, 3114, 3123, - 3132, 3137, 3142, 3153, 3158, 3165, 3167, 3169, - 3178, 3190, 3202, 3204, 3206, 3208, 3220, 3225, - 3230, 3235, 3244, 3248, 3250, 3252, 3261, 3269, - 3277, 3282, 3286, 3288, 3290, 3298, 3305, 3313, - 3333, 3342, 3344, 3354, 3366, 3376, 3379, 3386, - 3400, 3408, 3424, 3433, 3435, 3437, 3439, 3441, - 3449, 3458, 3461, 3468, 3478, 3487, 3503, 3511, - 3527, 3536, 3538, 3540, 3542, 3544, 3552, 3561, - 3566, 3580, 3583, 3586, 3591, 3596, 3602, 3608, - 3623, 3626, 3628, 3665, 3676, 3679, 3682, 3687, - 3690, 3693, 3696, 3701, 3704, 3709, 3720, 3723, - 3728, 3733, 3736, 3739, 3742, 3745, 3750, 3755, - 3758, 3761, 3766, 3769, 3772, 3775, 3780, 3783, - 3786, 3789, 3794, 3801, 3804, 3807, 3810, 3815, - 3820, 3823, 3826, 3831, 3834, 3837, 3840, 3845, - 3852, 3855, 3858, 3863, 3866, 3869, 3872, 3874, - 3879, 3881, 3886, 3891, 3894, 3897, 3900, 3905, - 3908, 3911, 3914, 3919, 3922, 3925, 3928, 3931, - 3934, 3937, 3940, 3945, 3950, 3953, 3958, 3963, - 3970, 3972, 3977, 3979, 3984, 3987, 3992, 3997, - 4002, 4005, 4008, 4011, 4016, 4021, 4028, 4031, - 4034, 4037, 4042, 4045, 4050, 4057, 4060, 4066, - 4073, 4076, 4079, 4082, 4085, 4090, 4093, 4096, - 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4122, - 4125, 4128, 4133, 4142, 4145, 4148, 4151, 4154, - 4157, 4162, 4167, 4170, 4173, 4176, 4181, 4186, - 4199, 4202, 4205, 4208, 4211, 4216, 4219, 4224, - 4227, 4232, 4235, 4240, 4243, 4246, 4249, 4254, - 4257, 4260, 4265, 4272, 4275, 4278, 4283, 4286, - 4291, 4294, 4297, 4299, 4305, 4308, 4311, 4316, - 4319, 4322, 4325, 4328, 4331, 4336, 4339, 4342, - 4345, 4348, 4351, 4356, 4367, 4414, 4431, 4434, - 4437, 4448, 4451, 4462, 4465, 4476, 4481, 4484, - 4487, 4490, 4493, 4504, 4515, 4518, 4521, 4532, - 4535, 4538, 4541, 4552, 4555, 4558, 4561, 4572, - 4579, 4582, 4585, 4588, 4599, 4604, 4607, 4610, - 4621, 4624, 4627, 4630, 4641, 4654, 4657, 4660, - 4671, 4674, 4677, 4680, 4682, 4693, 4695, 4706, - 4711, 4714, 4717, 4720, 4731, 4734, 4737, 4740, - 4751, 4754, 4757, 4760, 4763, 4766, 4769, 4772, - 4783, 4788, 4791, 4802, 4813, 4820, 4822, 4833, - 4835, 4846, 4849, 4860, 4871, 4876, 4879, 4882, - 4885, 4896, 4907, 4914, 4917, 4920, 4923, 4934, - 4937, 4948, 4961, 4964, 4976, 4989, 4992, 4995, - 4998, 5001, 5012, 5015, 5018, 5021, 5024, 5027, - 5030, 5033, 5036, 5039, 5050, 5053, 5056, 5067, - 5076, 5079, 5082, 5085, 5088, 5091, 5102, 5113, - 5116, 5119, 5122, 5133, 5144, 5157, 5160, 5163, - 5166, 5169, 5180, 5183, 5194, 5197, 5208, 5211, - 5222, 5225, 5228, 5231, 5242, 5245, 5248, 5259, - 5266, 5269, 5272, 5283, 5286, 5297, 5300, 5303, - 5305, 5317, 5320, 5323, 5334, 5337, 5340, 5343, - 5346, 5349, 5360, 5363, 5366, 5369, 5372, 5375, - 5386, 5389, 5392, 5395, 5406, 5409, 5420, 5427, - 5435, 5443, 5453, 5457, 5471, 5474, 5477, 5480, - 5487, 5496, 5506, 5516, 5520, 5534, 5537, 5540, - 5548, 5551, 5560, 5562, 5564, 5566, 5573, 5575, - 5577, 5579, 5581, 5583, 5585, 5592, 5594, 5596, - 5603, 5605, 5607, 5610, 5612, 5614, 5616, 5618, - 5625, 5627, 5629, 5631, 5633, 5640, 5642, 5644, - 5646, 5654, 5656, 5658, 5660, 5662, 5664, 5666, - 5668, 5670, 5672, 5674, 5676, 5678, 5680, 5682, - 5689, 5691, 5693, 5695, 5697, 5704, 5706, 5708, - 5710, 5717, 5728, 5748, 5750, 5752, 5754, 5756, - 5762, 5773, 5776, 5778, 5780, 5782, 5784, 5786, - 5788, 5790, 5796, 5807, 5821, 5823, 5834, 5836, - 5838, 5840, 5846, 5851, 5856, 5862, 5868, 5874, - 5876, 5881, 5887, 5893, 5908, 5910, 5912, 5914, - 5917, 5919, 5921, 5923, 5925, 5927, 5931, 5934, - 5939, 5942, 5956, 5959, 5961, 5963, 5965, 5967, - 5969, 5975, 5980, 5987, 5992, 6008, 6013, 6015, - 6017, 6019, 6032, 6037, 6039, 6041, 6043, 6045, - 6047, 6049, 6051, 6053, 6055, 6059, 6062, 6065, - 6068, 6080, 6083, 6085, 6087, 6089, 6091, 6093, - 6095, 6097, 6099, 6101, 6103, 6105, 6107, 6109, - 6111, 6122, 6124, 6126, 6128, 6130, 6141, 6143, - 6145, 6147, 6149, 6152, 6154, 6157, 6169, 6183, - 6185, 6197, 6203, 6208, 6213, 6216, 6222, 6225, - 6228, 6231, 6234, 6236, 6238, 6241, 6244, 6247, - 6249, 6254, 6259, 6264, 6266, 6269, 6272, 6275, - 6278, 6283, 6286, 6289, 6292, 6295, 6297, 6299, - 6302, 6305, 6308, 6310, 6312, 6314, 6319, 6321, - 6323, 6326, 6329, 6332, 6334, 6336, 6338, 6343, - 6346, 6348, 6350, 6352, 6354, 6359, 6361, 6363, - 6368, 6371, 6374, 6377, 6380, 6383, 6386, 6389, - 6394, 6397, 6400, 6403, 6406, 6409, 6412, 6417, - 6420, 6423, 6428, 6431, 6434, 6439, 6442, 6445, - 6450, 6453, 6455, 6460, 6463, 6466, 6470, 6476, - 6479, 6482, 6485, 6488, 6490, 6492, 6495, 6498, - 6501, 6503, 6508, 6510, 6512, 6517, 6519, 6521, - 6526, 6540, 6546, 6549, 6552, 6555, 6558, 6561, - 6566, 6573, 6576, 6579, 6582, 6585, 6588, 6593, - 6598, 6601, 6606, 6609, 6612, 6617, 6620, 6623, - 6626, 6631, 6634, 6637, 6642, 6647, 6650, 6655, - 6658, 6661, 6666, 6669, 6672, 6675, 6680, 6683, - 6686, 6691, 6695, 6701, 6704, 6707, 6710, 6713, - 6716, 6721, 6724, 6731, 6738, 6743, 6750, 6757, - 6770, 6777, 6785, 6793, 6801, 6819, 6827, 6845, - 6853, 6871, 6879, 6895, 6901, 6913, 6919, 6922, - 6930, 6942, 6950, 6953, 6961, 6973, 6981, 6984, - 6992, 7004, 7012, 7015, 7018, 7021, 7026, 7033, - 7043, 7048, 7051, 7058, 7065, 7078, 7083, 7086, - 7088, 7096, 7109, 7114, 7117, 7122, 7133, 7147, - 7150, 7155, 7164, 7166, 7174, 7184, 7192, 7202, - 7211, 7220, 7227, 7235, 7243, 7253, 7261, 7271, - 7280, 7289, 7296, 7305, 7307, 7321, 7333, 7347, - 7359, 7373, 7385, 7399, 7410, 7413, 7426, 7439, - 7442, 7455, 7468, 7479, 7482, 7495, 7508, 7519, - 7522, 7535, 7548, 7559, 7562, 7569, 7572, 7580, - 7588, 7591, 7594, 7597, 7604, 7607, 7615, 7623, - 7626, 7629, 7631, 7639, 7647, 7655, 7663, 7671, - 7684, 7689, 7692, 7695, 7698, 7700, 7708, 7716, - 7724, 7734, 7741, 7751, 7758, 7768, 7775, 7788, - 7793, 7796, 7799, 7802, 7805, 7808, 7812, 7819, - 7827, 7835, 7845, 7852, 7863, 7866, 7869, 7872, - 7875, 7889, 7892, 7894, 7897, 7900, 7902, 7914, - 7917, 7919, 7924, 7929, 7931, 7939, 7949, 7956, - 7964, 7972, 7982, 7986, 8000, 8003, 8006, 8009, - 8012, 8014, 8022, 8030, 8038, 8048, 8052, 8066, - 8069, 8072, 8075, 8077, 8085, 8096, 8103, 8111, - 8119, 8127, 8162, 8173, 8176, 8179, 8194, 8197, - 8236, 8243, 8246, 8249, 8256, 8264, 8272, 8281, - 8318, 8321, 8324, 8331, 8339, 8347, 8358, 8397, - 8400, 8403, 8410, 8418, 8426, 8439, 8474, 8477, - 8480, 8483, 8487, 8494, 8504, 8511, 8519, 8527, - 8535, 8543, 8551, 8559, 8567, 8575, 8583, 8591, - 8604, 8611, 8622, 8625, 8628, 8631, 8634, 8637, - 8640, 8643, 8646, 8649, 8656, 8661, 8666, 8668, - 8676, 8684, 8692, 8702, 8709, 8720, 8723, 8726, - 8729, 8732, 8737, 8740, 8742, 8750, 8758, 8766, - 8774, 8782, 8793, 8800, 8810, 8814, 8819, 8823, - 8828, 8833, 8837, 8842, 8850, 8855, 8857, 8859, - 8861, 8863, 8865, 8868, 8872, 8882, 8885, 8888, - 8891, 8893, 8901, 8909, 8917, 8925, 8933, 8944, - 8949, 8953, 8961, 8964, 8967, 8970, 8972, 8980, - 8988, 8996, 9004, 9012, 9022, 9026, 9040, 9043, - 9046, 9049, 9052, 9054, 9062, 9070, 9076, 9081, - 9084, 9086, 9094, 9102, 9110, 9118, 9126, 9136, - 9140, 9154, 9157, 9160, 9163, 9166, 9168, 9176, - 9185, 9192, 9195, 9197, 9205, 9215, 9219, 9223, - 9227, 9229, 9233, 9237, 9241, 9245, 9251, 9254, - 9258, 9262, 9264, 9268, 9272, 9278, 9282, 9286, - 9288, 9292, 9296, 9302, 9304, 9312, 9320, 9328, - 9338, 9343, 9346, 9349, 9351, 9359, 9369, 9376, - 9386, 9391, 9394, 9397, 9399, 9407, 9420, 9425, - 9430, 9433, 9437, 9444, 9454, 9461, 9469, 9477, - 9490, 9495, 9498, 9501, 9504, 9520, 9546, 9598, - 9651, 9667, 9720, 9736, 9762, 9825, 9888, 9889, - 9890, 9891, 9892, 9901, 9902, 9903, 9904, 9918, - 9919, 9934, 9937, 9938, 9939, 9986, 9989, 9990, - 10004, 10007, 10017, 10018, 10032, 10035, 10038, 10039, - 10040, 10060, 10063, 10064, 10065, 10066, 10067, 10068, - 10069, 10070, 10071, 10072, 10073, 10087, 10090, 10091, - 10092, 10103, 10106, 10118, 10121, 10133, 10136, 10148, - 10151, 10152, 10153, 10154, 10155, 10169, 10172, 10173, - 10187, 10190, 10191, 10205, 10208, 10209, 10224, 10227, - 10238, 10241, 10280, 10287, 10288, 10289, 10290, 10291, - 10292, 10293, 10294, 10308, 10311, 10312, 10313, 10327, - 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337 + 0, 0, 46, 64, 107, 126, 141, 150, + 159, 161, 163, 166, 183, 200, 205, 260, + 280, 325, 336, 339, 350, 364, 378, 383, + 386, 389, 392, 395, 406, 417, 420, 423, + 434, 437, 440, 443, 454, 457, 460, 463, + 474, 481, 484, 487, 490, 501, 506, 509, + 512, 523, 526, 529, 532, 543, 556, 559, + 562, 573, 576, 579, 582, 584, 595, 597, + 608, 613, 616, 619, 622, 633, 636, 639, + 642, 653, 658, 665, 708, 711, 714, 717, + 720, 723, 726, 729, 740, 745, 748, 759, + 770, 777, 779, 790, 792, 803, 806, 817, + 828, 833, 836, 839, 842, 853, 864, 871, + 874, 877, 880, 891, 894, 905, 918, 921, + 933, 946, 949, 952, 955, 958, 969, 972, + 975, 978, 981, 984, 987, 990, 993, 996, + 1007, 1010, 1013, 1024, 1033, 1036, 1039, 1042, + 1045, 1048, 1059, 1070, 1073, 1076, 1079, 1090, + 1101, 1114, 1117, 1120, 1123, 1126, 1137, 1140, + 1151, 1154, 1165, 1168, 1179, 1182, 1185, 1188, + 1199, 1202, 1205, 1216, 1223, 1226, 1229, 1240, + 1243, 1254, 1257, 1260, 1262, 1274, 1277, 1280, + 1291, 1294, 1297, 1300, 1303, 1306, 1317, 1320, + 1323, 1326, 1329, 1332, 1343, 1346, 1392, 1397, + 1404, 1448, 1466, 1474, 1486, 1494, 1497, 1499, + 1506, 1509, 1512, 1515, 1518, 1521, 1524, 1529, + 1536, 1580, 1583, 1601, 1645, 1648, 1656, 1668, + 1676, 1679, 1698, 1751, 1772, 1789, 1835, 1840, + 1852, 1864, 1919, 1938, 1953, 1964, 1977, 1990, + 2003, 2018, 2031, 2046, 2057, 2068, 2085, 2106, + 2121, 2132, 2143, 2154, 2159, 2174, 2177, 2180, + 2183, 2186, 2189, 2194, 2197, 2200, 2205, 2214, + 2234, 2280, 2285, 2306, 2361, 2380, 2395, 2406, + 2419, 2432, 2445, 2460, 2473, 2488, 2499, 2510, + 2527, 2548, 2563, 2574, 2585, 2596, 2609, 2655, + 2669, 2683, 2698, 2713, 2716, 2719, 2730, 2733, + 2736, 2739, 2750, 2753, 2756, 2759, 2770, 2773, + 2784, 2789, 2801, 2813, 2828, 2843, 2858, 2873, + 2876, 2931, 2945, 2959, 2976, 2989, 2998, 3009, + 3020, 3031, 3044, 3055, 3068, 3077, 3086, 3101, + 3120, 3133, 3142, 3151, 3160, 3165, 3170, 3181, + 3186, 3193, 3195, 3197, 3206, 3218, 3230, 3232, + 3234, 3236, 3248, 3253, 3258, 3263, 3272, 3276, + 3278, 3280, 3289, 3297, 3305, 3310, 3314, 3316, + 3318, 3326, 3333, 3341, 3361, 3370, 3372, 3382, + 3394, 3404, 3407, 3414, 3428, 3436, 3452, 3461, + 3463, 3465, 3467, 3469, 3477, 3486, 3489, 3496, + 3506, 3515, 3531, 3539, 3555, 3564, 3566, 3568, + 3570, 3572, 3580, 3589, 3594, 3608, 3611, 3614, + 3619, 3624, 3630, 3636, 3651, 3654, 3656, 3693, + 3706, 3709, 3712, 3717, 3720, 3723, 3726, 3731, + 3734, 3737, 3740, 3745, 3748, 3753, 3764, 3767, + 3772, 3777, 3780, 3783, 3786, 3789, 3794, 3799, + 3802, 3805, 3810, 3813, 3816, 3819, 3824, 3827, + 3830, 3833, 3838, 3845, 3848, 3851, 3854, 3859, + 3864, 3867, 3870, 3875, 3878, 3881, 3884, 3889, + 3896, 3899, 3902, 3907, 3910, 3913, 3916, 3918, + 3923, 3925, 3930, 3935, 3938, 3941, 3944, 3949, + 3952, 3955, 3958, 3963, 3966, 3969, 3972, 3975, + 3978, 3981, 3984, 3989, 3994, 3997, 4002, 4007, + 4014, 4016, 4021, 4023, 4028, 4031, 4036, 4041, + 4046, 4049, 4052, 4055, 4060, 4065, 4072, 4075, + 4078, 4081, 4086, 4089, 4094, 4101, 4104, 4110, + 4117, 4120, 4123, 4126, 4129, 4134, 4137, 4140, + 4143, 4146, 4149, 4152, 4155, 4158, 4161, 4166, + 4169, 4172, 4177, 4186, 4189, 4192, 4195, 4198, + 4201, 4206, 4211, 4214, 4217, 4220, 4225, 4230, + 4243, 4246, 4249, 4252, 4255, 4260, 4263, 4268, + 4271, 4276, 4279, 4284, 4287, 4290, 4293, 4298, + 4301, 4304, 4309, 4316, 4319, 4322, 4327, 4330, + 4335, 4338, 4341, 4343, 4349, 4352, 4355, 4360, + 4363, 4366, 4369, 4372, 4375, 4380, 4383, 4386, + 4389, 4392, 4395, 4400, 4411, 4458, 4477, 4480, + 4483, 4494, 4497, 4508, 4511, 4522, 4527, 4530, + 4533, 4536, 4539, 4550, 4561, 4564, 4567, 4578, + 4581, 4584, 4587, 4598, 4601, 4604, 4607, 4618, + 4625, 4628, 4631, 4634, 4645, 4650, 4653, 4656, + 4667, 4670, 4673, 4676, 4687, 4700, 4703, 4706, + 4717, 4720, 4723, 4726, 4728, 4739, 4741, 4752, + 4757, 4760, 4763, 4766, 4777, 4780, 4783, 4786, + 4797, 4800, 4803, 4806, 4809, 4812, 4815, 4818, + 4829, 4834, 4837, 4848, 4859, 4866, 4868, 4879, + 4881, 4892, 4895, 4906, 4917, 4922, 4925, 4928, + 4931, 4942, 4953, 4960, 4963, 4966, 4969, 4980, + 4983, 4994, 5007, 5010, 5022, 5035, 5038, 5041, + 5044, 5047, 5058, 5061, 5064, 5067, 5070, 5073, + 5076, 5079, 5082, 5085, 5096, 5099, 5102, 5113, + 5122, 5125, 5128, 5131, 5134, 5137, 5148, 5159, + 5162, 5165, 5168, 5179, 5190, 5203, 5206, 5209, + 5212, 5215, 5226, 5229, 5240, 5243, 5254, 5257, + 5268, 5271, 5274, 5277, 5288, 5291, 5294, 5305, + 5312, 5315, 5318, 5329, 5332, 5343, 5346, 5349, + 5351, 5363, 5366, 5369, 5380, 5383, 5386, 5389, + 5392, 5395, 5406, 5409, 5412, 5415, 5418, 5421, + 5432, 5435, 5438, 5441, 5452, 5455, 5458, 5461, + 5472, 5475, 5486, 5493, 5501, 5509, 5519, 5523, + 5537, 5540, 5543, 5546, 5553, 5562, 5572, 5582, + 5586, 5600, 5603, 5606, 5614, 5617, 5626, 5628, + 5630, 5632, 5639, 5641, 5643, 5645, 5647, 5649, + 5651, 5658, 5660, 5662, 5669, 5671, 5673, 5676, + 5678, 5680, 5682, 5684, 5691, 5693, 5695, 5697, + 5699, 5706, 5708, 5710, 5712, 5720, 5722, 5724, + 5726, 5728, 5730, 5732, 5734, 5736, 5738, 5740, + 5742, 5744, 5746, 5748, 5755, 5757, 5759, 5761, + 5763, 5770, 5772, 5774, 5776, 5783, 5794, 5814, + 5816, 5818, 5820, 5822, 5828, 5839, 5842, 5844, + 5846, 5848, 5850, 5852, 5854, 5856, 5862, 5873, + 5887, 5889, 5900, 5902, 5904, 5906, 5912, 5917, + 5922, 5928, 5934, 5940, 5942, 5947, 5953, 5959, + 5974, 5976, 5978, 5980, 5983, 5985, 5987, 5989, + 5991, 5993, 5997, 6000, 6005, 6008, 6022, 6025, + 6027, 6029, 6031, 6033, 6035, 6041, 6046, 6053, + 6058, 6074, 6079, 6081, 6083, 6085, 6098, 6103, + 6105, 6107, 6109, 6111, 6113, 6115, 6117, 6119, + 6121, 6125, 6128, 6131, 6134, 6146, 6149, 6151, + 6153, 6155, 6157, 6159, 6161, 6163, 6165, 6167, + 6169, 6171, 6173, 6175, 6177, 6188, 6190, 6192, + 6194, 6196, 6207, 6209, 6211, 6213, 6215, 6218, + 6220, 6223, 6235, 6249, 6251, 6263, 6269, 6274, + 6279, 6282, 6288, 6291, 6294, 6297, 6300, 6302, + 6304, 6307, 6310, 6313, 6315, 6320, 6325, 6330, + 6332, 6335, 6338, 6341, 6344, 6349, 6352, 6355, + 6358, 6361, 6363, 6365, 6368, 6371, 6374, 6376, + 6378, 6380, 6385, 6387, 6389, 6392, 6395, 6398, + 6400, 6402, 6404, 6409, 6412, 6414, 6416, 6418, + 6420, 6425, 6427, 6429, 6434, 6437, 6440, 6443, + 6446, 6449, 6452, 6455, 6460, 6463, 6466, 6469, + 6472, 6475, 6478, 6483, 6486, 6489, 6494, 6497, + 6500, 6505, 6508, 6511, 6516, 6519, 6521, 6526, + 6529, 6532, 6536, 6542, 6545, 6548, 6551, 6554, + 6556, 6558, 6561, 6564, 6567, 6569, 6574, 6576, + 6578, 6583, 6585, 6587, 6592, 6606, 6612, 6615, + 6618, 6621, 6624, 6627, 6632, 6639, 6642, 6645, + 6648, 6651, 6654, 6659, 6664, 6667, 6672, 6675, + 6678, 6683, 6686, 6689, 6692, 6697, 6700, 6703, + 6708, 6713, 6716, 6721, 6724, 6727, 6732, 6735, + 6738, 6741, 6746, 6749, 6752, 6757, 6761, 6767, + 6770, 6773, 6776, 6779, 6782, 6787, 6790, 6797, + 6804, 6809, 6816, 6823, 6836, 6843, 6851, 6859, + 6867, 6885, 6893, 6911, 6919, 6937, 6945, 6961, + 6967, 6979, 6985, 6988, 6996, 7008, 7016, 7019, + 7027, 7039, 7047, 7050, 7058, 7070, 7078, 7081, + 7084, 7087, 7092, 7099, 7109, 7114, 7117, 7124, + 7131, 7144, 7149, 7152, 7154, 7162, 7175, 7180, + 7183, 7188, 7199, 7213, 7216, 7221, 7230, 7232, + 7240, 7250, 7258, 7268, 7277, 7286, 7293, 7301, + 7309, 7319, 7327, 7337, 7346, 7355, 7362, 7371, + 7373, 7387, 7399, 7413, 7425, 7439, 7451, 7465, + 7476, 7479, 7492, 7505, 7508, 7521, 7534, 7545, + 7548, 7561, 7574, 7585, 7588, 7601, 7614, 7625, + 7628, 7635, 7638, 7646, 7654, 7657, 7660, 7663, + 7670, 7673, 7681, 7689, 7692, 7695, 7697, 7705, + 7713, 7721, 7729, 7737, 7750, 7755, 7758, 7761, + 7764, 7766, 7774, 7782, 7790, 7800, 7807, 7817, + 7824, 7834, 7841, 7854, 7859, 7862, 7865, 7868, + 7871, 7874, 7878, 7885, 7893, 7901, 7911, 7918, + 7929, 7932, 7935, 7938, 7941, 7955, 7958, 7960, + 7963, 7966, 7968, 7980, 7983, 7985, 7990, 7995, + 7997, 8005, 8015, 8022, 8030, 8038, 8048, 8052, + 8066, 8069, 8072, 8075, 8078, 8080, 8088, 8096, + 8104, 8114, 8118, 8132, 8135, 8138, 8141, 8143, + 8151, 8162, 8169, 8177, 8185, 8193, 8228, 8239, + 8242, 8245, 8260, 8263, 8302, 8309, 8312, 8315, + 8322, 8330, 8338, 8347, 8384, 8387, 8390, 8397, + 8405, 8413, 8424, 8463, 8466, 8469, 8476, 8484, + 8492, 8505, 8540, 8543, 8546, 8549, 8553, 8560, + 8570, 8577, 8585, 8593, 8601, 8609, 8617, 8625, + 8633, 8641, 8649, 8657, 8670, 8677, 8688, 8691, + 8694, 8697, 8700, 8703, 8706, 8709, 8712, 8715, + 8722, 8727, 8732, 8734, 8742, 8750, 8758, 8768, + 8775, 8786, 8789, 8792, 8795, 8798, 8803, 8806, + 8808, 8816, 8824, 8832, 8840, 8848, 8859, 8866, + 8876, 8880, 8885, 8889, 8894, 8899, 8903, 8908, + 8916, 8921, 8923, 8925, 8927, 8929, 8931, 8934, + 8938, 8948, 8951, 8954, 8957, 8959, 8967, 8975, + 8983, 8991, 8999, 9010, 9015, 9019, 9027, 9030, + 9033, 9036, 9038, 9046, 9054, 9062, 9070, 9078, + 9088, 9092, 9106, 9109, 9112, 9115, 9118, 9120, + 9128, 9136, 9142, 9147, 9150, 9152, 9160, 9168, + 9176, 9184, 9192, 9202, 9206, 9220, 9223, 9226, + 9229, 9232, 9234, 9242, 9251, 9258, 9261, 9263, + 9271, 9281, 9285, 9289, 9293, 9295, 9299, 9303, + 9307, 9311, 9317, 9320, 9324, 9328, 9330, 9334, + 9338, 9344, 9348, 9352, 9354, 9358, 9362, 9368, + 9370, 9378, 9386, 9394, 9404, 9409, 9412, 9415, + 9417, 9425, 9435, 9442, 9452, 9457, 9460, 9463, + 9465, 9473, 9486, 9491, 9496, 9499, 9503, 9510, + 9520, 9527, 9535, 9543, 9556, 9561, 9564, 9567, + 9570, 9586, 9612, 9664, 9717, 9733, 9786, 9802, + 9828, 9891, 9954, 9955, 9956, 9957, 9958, 9967, + 9968, 9969, 9970, 9984, 9985, 10000, 10003, 10004, + 10005, 10052, 10055, 10056, 10070, 10073, 10083, 10084, + 10098, 10101, 10104, 10105, 10106, 10126, 10129, 10130, + 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, + 10139, 10153, 10156, 10157, 10158, 10169, 10172, 10184, + 10187, 10199, 10202, 10214, 10217, 10218, 10219, 10220, + 10221, 10235, 10238, 10239, 10253, 10256, 10257, 10271, + 10274, 10275, 10290, 10293, 10304, 10307, 10346, 10353, + 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10374, + 10377, 10378, 10379, 10393, 10396, 10397, 10398, 10399, + 10400, 10401, 10402, 10403 }; static const short _zone_scanner_indicies[] = { @@ -3897,2420 +3925,2436 @@ static const short _zone_scanner_indicies[] = { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 39, 64, 64, 65, 66, 67, - 68, 69, 67, 68, 69, 70, 71, 72, - 72, 73, 74, 63, 76, 76, 78, 79, - 80, 81, 82, 75, 75, 83, 84, 75, - 75, 75, 77, 86, 86, 87, 88, 89, - 90, 89, 90, 85, 92, 92, 93, 94, - 95, 96, 95, 96, 91, 98, 97, 100, - 99, 102, 101, 77, 103, 103, 104, 105, - 80, 89, 90, 89, 106, 107, 108, 89, - 109, 75, 75, 75, 85, 110, 110, 111, - 112, 80, 95, 96, 95, 113, 114, 115, - 95, 116, 75, 75, 75, 85, 98, 118, - 97, 117, 85, 119, 119, 121, 122, 75, - 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 80, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 23, 24, 142, - 143, 144, 145, 146, 147, 75, 75, 123, - 75, 120, 149, 149, 150, 151, 32, 33, - 34, 35, 36, 32, 33, 34, 35, 36, - 89, 90, 152, 153, 31, 148, 155, 155, - 156, 157, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 43, 44, 45, 46, + 68, 69, 70, 67, 68, 69, 70, 71, + 72, 73, 73, 74, 75, 63, 77, 77, + 79, 80, 81, 82, 83, 76, 76, 84, + 85, 76, 76, 76, 78, 87, 87, 88, + 89, 90, 91, 90, 91, 86, 93, 93, + 94, 95, 96, 97, 96, 97, 92, 99, + 98, 101, 100, 103, 102, 78, 104, 104, + 105, 106, 81, 90, 91, 90, 107, 108, + 109, 90, 110, 76, 76, 76, 86, 111, + 111, 112, 113, 81, 96, 97, 96, 114, + 115, 116, 96, 117, 76, 76, 76, 86, + 99, 119, 98, 118, 86, 120, 120, 122, + 123, 76, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 81, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 23, + 24, 143, 144, 145, 146, 147, 148, 76, + 76, 124, 76, 121, 150, 150, 151, 152, + 32, 33, 34, 35, 36, 32, 33, 34, + 35, 36, 90, 91, 153, 154, 31, 149, + 156, 156, 157, 158, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 95, 96, - 158, 159, 154, 160, 161, 162, 163, 164, - 160, 161, 162, 163, 164, 39, 165, 165, - 39, 166, 166, 167, 168, 169, 170, 171, - 171, 172, 173, 63, 86, 89, 86, 87, - 88, 90, 174, 89, 174, 175, 176, 177, - 101, 85, 92, 95, 92, 93, 94, 96, - 178, 95, 178, 179, 180, 181, 101, 85, - 182, 183, 182, 183, 39, 184, 184, 39, - 185, 185, 39, 186, 186, 39, 187, 187, - 39, 188, 188, 189, 190, 191, 192, 193, - 193, 194, 195, 63, 196, 196, 197, 198, - 199, 200, 201, 201, 202, 203, 63, 204, - 204, 39, 205, 205, 39, 206, 206, 207, - 208, 209, 210, 211, 211, 212, 213, 63, - 214, 214, 39, 215, 215, 39, 216, 216, - 39, 217, 217, 218, 219, 220, 221, 222, - 222, 223, 224, 63, 225, 225, 39, 226, - 226, 39, 227, 227, 39, 228, 228, 229, - 230, 231, 232, 233, 233, 234, 235, 63, - 236, 237, 238, 236, 237, 238, 39, 239, - 239, 39, 240, 240, 39, 241, 241, 39, - 242, 242, 243, 244, 245, 246, 247, 247, - 248, 249, 63, 250, 251, 250, 251, 39, - 252, 252, 39, 253, 253, 39, 254, 254, - 255, 256, 257, 258, 259, 259, 260, 261, - 63, 262, 262, 39, 263, 263, 39, 264, - 264, 39, 265, 265, 266, 267, 268, 269, - 270, 270, 271, 272, 63, 273, 273, 274, - 275, 276, 276, 277, 278, 279, 279, 280, - 281, 63, 282, 282, 39, 283, 283, 39, - 284, 284, 285, 286, 287, 288, 289, 289, - 290, 291, 63, 292, 292, 39, 293, 293, - 39, 294, 295, 39, 296, 39, 297, 297, - 298, 299, 300, 301, 302, 302, 303, 304, - 63, 305, 39, 306, 306, 307, 308, 309, - 310, 311, 311, 312, 313, 63, 314, 315, - 314, 315, 39, 316, 316, 39, 317, 317, - 39, 318, 318, 39, 319, 319, 320, 321, - 322, 323, 324, 324, 325, 326, 63, 327, - 327, 39, 328, 328, 39, 329, 329, 39, - 330, 330, 331, 332, 333, 334, 335, 335, - 336, 337, 63, 338, 339, 338, 339, 39, - 340, 340, 341, 342, 343, 344, 39, 345, - 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, - 367, 39, 339, 339, 39, 368, 368, 39, - 369, 369, 39, 370, 370, 39, 371, 371, - 39, 372, 372, 39, 373, 373, 39, 374, - 374, 375, 376, 377, 378, 379, 379, 380, - 381, 63, 382, 383, 382, 383, 39, 384, - 384, 39, 385, 385, 386, 387, 388, 389, - 390, 390, 391, 392, 63, 393, 393, 394, - 395, 396, 397, 398, 398, 399, 400, 63, - 401, 402, 403, 404, 403, 404, 39, 405, - 39, 406, 406, 407, 408, 409, 410, 411, - 411, 412, 413, 63, 414, 39, 415, 415, - 416, 417, 418, 419, 420, 420, 421, 422, - 63, 423, 423, 39, 424, 424, 425, 426, - 427, 428, 429, 429, 430, 431, 63, 432, - 432, 433, 434, 435, 436, 437, 437, 438, - 439, 63, 440, 441, 440, 441, 39, 442, - 442, 39, 443, 443, 39, 444, 444, 39, - 445, 445, 446, 447, 448, 449, 450, 450, - 451, 452, 63, 453, 453, 454, 455, 456, - 457, 458, 458, 459, 460, 63, 461, 462, - 463, 461, 462, 463, 39, 464, 464, 39, - 465, 465, 39, 466, 466, 39, 467, 467, - 468, 469, 470, 471, 472, 472, 473, 474, - 63, 475, 475, 39, 476, 476, 477, 478, - 479, 480, 481, 481, 482, 483, 63, 484, - 484, 485, 486, 487, 487, 488, 489, 490, - 490, 491, 492, 63, 493, 493, 39, 494, - 494, 495, 496, 497, 498, 499, 500, 500, - 501, 502, 63, 503, 503, 504, 505, 506, - 506, 507, 508, 509, 509, 510, 511, 63, - 512, 512, 39, 513, 513, 39, 514, 514, - 39, 515, 515, 39, 516, 516, 517, 518, - 519, 520, 521, 521, 522, 523, 63, 524, - 524, 39, 525, 525, 39, 526, 526, 39, - 527, 527, 39, 528, 528, 39, 529, 529, - 39, 530, 530, 39, 531, 531, 39, 532, - 532, 39, 533, 533, 534, 535, 536, 537, - 538, 538, 539, 540, 63, 541, 541, 39, - 542, 542, 39, 543, 543, 544, 545, 546, - 547, 548, 548, 549, 550, 63, 551, 552, - 553, 554, 551, 552, 553, 554, 39, 555, - 555, 39, 556, 556, 39, 557, 557, 39, - 558, 558, 39, 559, 559, 39, 560, 560, - 561, 562, 563, 564, 565, 565, 566, 567, - 63, 568, 568, 569, 570, 571, 572, 573, - 573, 574, 575, 63, 576, 576, 39, 577, - 577, 39, 578, 578, 39, 579, 579, 580, - 581, 582, 583, 584, 584, 585, 586, 63, - 587, 587, 588, 589, 590, 591, 592, 592, - 593, 594, 63, 595, 596, 597, 598, 599, - 600, 595, 596, 597, 598, 599, 600, 39, - 601, 601, 39, 602, 602, 39, 603, 603, - 39, 604, 604, 39, 605, 605, 606, 607, - 608, 609, 610, 610, 611, 612, 63, 613, - 613, 39, 614, 614, 615, 616, 617, 618, - 619, 619, 620, 621, 63, 622, 622, 39, - 623, 623, 624, 625, 626, 627, 628, 628, - 629, 630, 63, 631, 631, 39, 632, 632, - 633, 634, 635, 636, 637, 637, 638, 639, - 63, 640, 640, 39, 641, 641, 39, 642, - 642, 39, 643, 643, 644, 645, 646, 647, - 648, 648, 649, 650, 63, 651, 651, 39, - 652, 652, 39, 653, 653, 654, 655, 656, - 657, 658, 658, 659, 660, 63, 661, 662, - 663, 661, 662, 663, 39, 664, 664, 39, - 665, 665, 39, 666, 666, 667, 668, 669, - 670, 671, 671, 672, 673, 63, 674, 674, - 39, 675, 675, 676, 677, 678, 679, 680, - 680, 681, 682, 63, 683, 683, 39, 684, - 684, 39, 686, 685, 688, 688, 689, 690, - 692, 693, 694, 694, 695, 696, 691, 687, - 697, 697, 39, 698, 698, 39, 699, 699, - 700, 701, 702, 703, 704, 704, 705, 706, - 63, 707, 707, 39, 708, 708, 39, 709, - 709, 39, 710, 710, 39, 711, 711, 39, - 712, 712, 713, 714, 715, 716, 717, 717, - 718, 719, 63, 720, 720, 39, 721, 721, - 39, 722, 722, 39, 723, 723, 39, 724, - 724, 39, 725, 725, 726, 727, 728, 729, - 730, 730, 731, 732, 63, 734, 733, 39, - 735, 735, 736, 737, 5, 6, 7, 8, + 55, 56, 57, 58, 59, 60, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, + 96, 97, 159, 160, 155, 161, 162, 163, + 164, 165, 161, 162, 163, 164, 165, 39, + 166, 166, 39, 167, 167, 168, 169, 170, + 171, 172, 172, 173, 174, 63, 87, 90, + 87, 88, 89, 91, 175, 90, 175, 176, + 177, 178, 102, 86, 93, 96, 93, 94, + 95, 97, 179, 96, 179, 180, 181, 182, + 102, 86, 183, 184, 183, 184, 39, 185, + 185, 39, 186, 186, 39, 187, 187, 39, + 188, 188, 39, 189, 189, 190, 191, 192, + 193, 194, 194, 195, 196, 63, 197, 197, + 198, 199, 200, 201, 202, 202, 203, 204, + 63, 205, 205, 39, 206, 206, 39, 207, + 207, 208, 209, 210, 211, 212, 212, 213, + 214, 63, 215, 215, 39, 216, 216, 39, + 217, 217, 39, 218, 218, 219, 220, 221, + 222, 223, 223, 224, 225, 63, 226, 226, + 39, 227, 227, 39, 228, 228, 39, 229, + 229, 230, 231, 232, 233, 234, 234, 235, + 236, 63, 237, 238, 239, 237, 238, 239, + 39, 240, 240, 39, 241, 241, 39, 242, + 242, 39, 243, 243, 244, 245, 246, 247, + 248, 248, 249, 250, 63, 251, 252, 251, + 252, 39, 253, 253, 39, 254, 254, 39, + 255, 255, 256, 257, 258, 259, 260, 260, + 261, 262, 63, 263, 263, 39, 264, 264, + 39, 265, 265, 39, 266, 266, 267, 268, + 269, 270, 271, 271, 272, 273, 63, 274, + 274, 275, 276, 277, 277, 278, 279, 280, + 280, 281, 282, 63, 283, 283, 39, 284, + 284, 39, 285, 285, 286, 287, 288, 289, + 290, 290, 291, 292, 63, 293, 293, 39, + 294, 294, 39, 295, 296, 39, 297, 39, + 298, 298, 299, 300, 301, 302, 303, 303, + 304, 305, 63, 306, 39, 307, 307, 308, + 309, 310, 311, 312, 312, 313, 314, 63, + 315, 316, 315, 316, 39, 317, 317, 39, + 318, 318, 39, 319, 319, 39, 320, 320, + 321, 322, 323, 324, 325, 325, 326, 327, + 63, 328, 328, 39, 329, 329, 39, 330, + 330, 39, 331, 331, 332, 333, 334, 335, + 336, 336, 337, 338, 63, 339, 340, 339, + 340, 39, 341, 341, 342, 343, 344, 345, + 39, 346, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 349, + 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 39, 340, 340, 39, 369, + 369, 39, 370, 370, 39, 371, 371, 39, + 372, 372, 39, 373, 373, 39, 374, 374, + 39, 375, 375, 376, 377, 378, 379, 380, + 380, 381, 382, 63, 383, 384, 383, 384, + 39, 385, 385, 39, 386, 386, 387, 388, + 389, 390, 391, 391, 392, 393, 63, 394, + 394, 395, 396, 397, 398, 399, 399, 400, + 401, 63, 402, 403, 404, 405, 404, 405, + 39, 406, 39, 407, 407, 408, 409, 410, + 411, 412, 412, 413, 414, 63, 415, 39, + 416, 416, 417, 418, 419, 420, 421, 421, + 422, 423, 63, 424, 424, 39, 425, 425, + 426, 427, 428, 429, 430, 430, 431, 432, + 63, 433, 433, 434, 435, 436, 437, 438, + 438, 439, 440, 63, 441, 442, 441, 442, + 39, 443, 443, 39, 444, 444, 39, 445, + 445, 39, 446, 446, 447, 448, 449, 450, + 451, 451, 452, 453, 63, 454, 454, 455, + 456, 457, 458, 459, 459, 460, 461, 63, + 462, 463, 464, 462, 463, 464, 39, 465, + 465, 39, 466, 466, 39, 467, 467, 39, + 468, 468, 469, 470, 471, 472, 473, 473, + 474, 475, 63, 476, 476, 39, 477, 477, + 478, 479, 480, 481, 482, 482, 483, 484, + 63, 485, 485, 486, 487, 488, 488, 489, + 490, 491, 491, 492, 493, 63, 494, 494, + 39, 495, 495, 496, 497, 498, 499, 500, + 501, 501, 502, 503, 63, 504, 504, 505, + 506, 507, 507, 508, 509, 510, 510, 511, + 512, 63, 513, 513, 39, 514, 514, 39, + 515, 515, 39, 516, 516, 39, 517, 517, + 518, 519, 520, 521, 522, 522, 523, 524, + 63, 525, 525, 39, 526, 526, 39, 527, + 527, 39, 528, 528, 39, 529, 529, 39, + 530, 530, 39, 531, 531, 39, 532, 532, + 39, 533, 533, 39, 534, 534, 535, 536, + 537, 538, 539, 539, 540, 541, 63, 542, + 542, 39, 543, 543, 39, 544, 544, 545, + 546, 547, 548, 549, 549, 550, 551, 63, + 552, 553, 554, 555, 552, 553, 554, 555, + 39, 556, 556, 39, 557, 557, 39, 558, + 558, 39, 559, 559, 39, 560, 560, 39, + 561, 561, 562, 563, 564, 565, 566, 566, + 567, 568, 63, 569, 569, 570, 571, 572, + 573, 574, 574, 575, 576, 63, 577, 577, + 39, 578, 578, 39, 579, 579, 39, 580, + 580, 581, 582, 583, 584, 585, 585, 586, + 587, 63, 588, 588, 589, 590, 591, 592, + 593, 593, 594, 595, 63, 596, 597, 598, + 599, 600, 601, 596, 597, 598, 599, 600, + 601, 39, 602, 602, 39, 603, 603, 39, + 604, 604, 39, 605, 605, 39, 606, 606, + 607, 608, 609, 610, 611, 611, 612, 613, + 63, 614, 614, 39, 615, 615, 616, 617, + 618, 619, 620, 620, 621, 622, 63, 623, + 623, 39, 624, 624, 625, 626, 627, 628, + 629, 629, 630, 631, 63, 632, 632, 39, + 633, 633, 634, 635, 636, 637, 638, 638, + 639, 640, 63, 641, 641, 39, 642, 642, + 39, 643, 643, 39, 644, 644, 645, 646, + 647, 648, 649, 649, 650, 651, 63, 652, + 652, 39, 653, 653, 39, 654, 654, 655, + 656, 657, 658, 659, 659, 660, 661, 63, + 662, 663, 664, 662, 663, 664, 39, 665, + 665, 39, 666, 666, 39, 667, 667, 668, + 669, 670, 671, 672, 672, 673, 674, 63, + 675, 675, 39, 676, 676, 677, 678, 679, + 680, 681, 681, 682, 683, 63, 684, 684, + 39, 685, 685, 39, 687, 686, 689, 689, + 690, 691, 693, 694, 695, 695, 696, 697, + 692, 688, 698, 698, 39, 699, 699, 39, + 700, 700, 701, 702, 703, 704, 705, 705, + 706, 707, 63, 708, 708, 39, 709, 709, + 39, 710, 710, 39, 711, 711, 39, 712, + 712, 39, 713, 713, 714, 715, 716, 717, + 718, 718, 719, 720, 63, 721, 721, 39, + 722, 722, 39, 723, 723, 39, 724, 724, + 39, 725, 725, 39, 726, 726, 727, 728, + 729, 730, 731, 731, 732, 733, 63, 735, + 734, 39, 736, 736, 737, 738, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, + 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 739, 740, 4, 0, + 741, 340, 741, 340, 39, 742, 742, 743, + 744, 745, 746, 39, 747, 747, 748, 749, + 751, 752, 753, 754, 755, 756, 757, 758, + 759, 760, 761, 762, 763, 764, 765, 766, + 767, 768, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 750, 686, + 771, 771, 772, 773, 775, 776, 777, 778, + 779, 775, 776, 777, 778, 779, 780, 781, + 774, 27, 771, 771, 772, 773, 780, 781, + 782, 27, 784, 785, 786, 787, 788, 784, + 785, 786, 787, 788, 783, 27, 789, 789, + 790, 791, 793, 794, 792, 27, 796, 795, + 39, 798, 797, 800, 801, 802, 800, 801, + 802, 799, 803, 803, 799, 804, 804, 799, + 805, 805, 799, 806, 806, 799, 807, 807, + 799, 808, 808, 799, 809, 809, 809, 809, + 799, 811, 811, 812, 813, 814, 815, 810, + 816, 816, 817, 818, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 738, 739, 4, 0, 740, 339, - 740, 339, 39, 741, 741, 742, 743, 744, - 745, 39, 746, 746, 747, 748, 750, 751, - 752, 753, 754, 755, 756, 757, 758, 759, - 760, 761, 762, 763, 764, 765, 766, 767, - 750, 751, 752, 753, 754, 755, 756, 757, - 758, 759, 760, 761, 762, 763, 764, 765, - 766, 767, 768, 769, 749, 685, 770, 770, - 771, 772, 774, 775, 776, 777, 778, 774, - 775, 776, 777, 778, 779, 780, 773, 27, - 770, 770, 771, 772, 779, 780, 781, 27, - 783, 784, 785, 786, 787, 783, 784, 785, - 786, 787, 782, 27, 788, 788, 789, 790, - 792, 793, 791, 27, 795, 794, 39, 797, - 796, 799, 800, 801, 799, 800, 801, 798, - 802, 802, 798, 803, 803, 798, 804, 804, - 798, 805, 805, 798, 806, 806, 798, 807, - 807, 798, 808, 808, 808, 808, 798, 810, - 810, 811, 812, 813, 814, 809, 815, 815, - 816, 817, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 818, 819, - 4, 685, 822, 820, 821, 824, 824, 825, - 826, 32, 33, 34, 35, 36, 32, 33, - 34, 35, 36, 827, 828, 31, 823, 829, - 829, 830, 831, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 5, 6, 7, + 819, 820, 4, 686, 823, 821, 822, 825, + 825, 826, 827, 32, 33, 34, 35, 36, + 32, 33, 34, 35, 36, 828, 829, 31, + 824, 830, 830, 831, 832, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 832, - 833, 4, 685, 835, 834, 39, 28, 28, - 29, 30, 37, 38, 836, 27, 838, 839, - 840, 841, 842, 838, 839, 840, 841, 842, - 837, 27, 843, 843, 844, 845, 847, 848, - 846, 27, 850, 849, 39, 852, 852, 853, - 854, 67, 68, 69, 67, 68, 69, 855, - 856, 72, 72, 857, 858, 851, 859, 859, - 860, 861, 75, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 80, 124, 125, + 16, 17, 18, 19, 20, 21, 22, 5, + 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, + 22, 833, 834, 4, 686, 836, 835, 39, + 28, 28, 29, 30, 37, 38, 837, 27, + 839, 840, 841, 842, 843, 839, 840, 841, + 842, 843, 838, 27, 844, 844, 845, 846, + 848, 849, 847, 27, 851, 850, 39, 853, + 853, 854, 855, 67, 68, 69, 70, 67, + 68, 69, 70, 856, 857, 73, 73, 858, + 859, 852, 860, 860, 861, 862, 76, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 862, 863, 75, 75, 864, 865, 75, 75, - 123, 75, 687, 867, 867, 868, 869, 67, - 68, 69, 67, 68, 69, 89, 90, 870, - 871, 872, 873, 874, 875, 866, 876, 876, - 877, 878, 80, 95, 96, 879, 113, 114, - 115, 880, 116, 75, 75, 75, 85, 881, - 881, 882, 883, 5, 6, 7, 8, 9, + 142, 81, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 863, 864, 76, 76, + 865, 866, 76, 76, 124, 76, 688, 868, + 868, 869, 870, 67, 68, 69, 70, 67, + 68, 69, 70, 90, 91, 871, 872, 873, + 874, 875, 876, 867, 877, 877, 878, 879, + 81, 96, 97, 880, 114, 115, 116, 881, + 117, 76, 76, 76, 86, 882, 882, 883, + 884, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 95, - 96, 884, 885, 4, 0, 98, 887, 97, - 886, 91, 888, 888, 889, 890, 891, 892, - 891, 892, 97, 97, 97, 85, 893, 893, - 894, 895, 98, 896, 98, 896, 97, 97, - 97, 91, 897, 897, 898, 899, 75, 124, + 18, 19, 20, 21, 22, 96, 97, 885, + 886, 4, 0, 99, 888, 98, 887, 92, + 889, 889, 890, 891, 892, 893, 892, 893, + 98, 98, 98, 86, 894, 894, 895, 896, + 99, 897, 99, 897, 98, 98, 98, 92, + 898, 898, 899, 900, 76, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 81, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 80, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 95, 96, 884, 900, - 114, 115, 884, 901, 75, 75, 123, 75, - 120, 86, 86, 87, 88, 160, 161, 162, - 163, 164, 160, 161, 162, 163, 164, 89, - 90, 89, 90, 866, 86, 86, 87, 88, - 236, 237, 238, 236, 237, 238, 89, 90, - 89, 90, 866, 86, 86, 87, 88, 292, - 292, 89, 90, 89, 90, 866, 86, 86, - 87, 88, 314, 315, 314, 315, 89, 90, - 89, 90, 866, 86, 86, 87, 88, 740, - 339, 740, 339, 89, 90, 89, 90, 866, - 86, 86, 87, 88, 382, 383, 382, 383, - 89, 90, 89, 90, 866, 86, 86, 87, - 88, 401, 402, 403, 404, 403, 404, 89, - 90, 89, 90, 866, 86, 86, 87, 88, - 440, 441, 440, 441, 89, 90, 89, 90, - 866, 86, 86, 87, 88, 461, 462, 463, - 461, 462, 463, 89, 90, 89, 90, 866, - 86, 86, 87, 88, 524, 524, 89, 90, - 89, 90, 866, 86, 86, 87, 88, 541, - 541, 89, 90, 89, 90, 866, 86, 86, - 87, 88, 551, 552, 553, 554, 551, 552, - 553, 554, 89, 90, 89, 90, 866, 86, - 86, 87, 88, 595, 596, 597, 598, 599, - 600, 595, 596, 597, 598, 599, 600, 89, - 90, 89, 90, 866, 86, 86, 87, 88, - 661, 662, 663, 661, 662, 663, 89, 90, - 89, 90, 866, 86, 86, 87, 88, 697, - 697, 89, 90, 89, 90, 866, 86, 86, - 87, 88, 707, 707, 89, 90, 89, 90, - 866, 86, 86, 87, 88, 720, 720, 89, - 90, 89, 90, 866, 98, 903, 97, 902, - 85, 86, 86, 87, 88, 799, 800, 801, - 799, 800, 801, 89, 90, 89, 90, 904, - 905, 905, 798, 906, 906, 798, 907, 907, - 798, 908, 908, 798, 909, 909, 798, 910, - 910, 910, 910, 798, 911, 911, 798, 912, - 912, 798, 913, 913, 913, 913, 798, 915, - 915, 916, 917, 89, 90, 918, 919, 914, - 921, 921, 922, 923, 32, 33, 34, 35, - 36, 32, 33, 34, 35, 36, 89, 90, - 924, 925, 31, 920, 926, 926, 927, 928, + 141, 142, 96, 97, 885, 901, 115, 116, + 885, 902, 76, 76, 124, 76, 121, 87, + 87, 88, 89, 161, 162, 163, 164, 165, + 161, 162, 163, 164, 165, 90, 91, 90, + 91, 867, 87, 87, 88, 89, 237, 238, + 239, 237, 238, 239, 90, 91, 90, 91, + 867, 87, 87, 88, 89, 293, 293, 90, + 91, 90, 91, 867, 87, 87, 88, 89, + 315, 316, 315, 316, 90, 91, 90, 91, + 867, 87, 87, 88, 89, 741, 340, 741, + 340, 90, 91, 90, 91, 867, 87, 87, + 88, 89, 383, 384, 383, 384, 90, 91, + 90, 91, 867, 87, 87, 88, 89, 402, + 403, 404, 405, 404, 405, 90, 91, 90, + 91, 867, 87, 87, 88, 89, 441, 442, + 441, 442, 90, 91, 90, 91, 867, 87, + 87, 88, 89, 462, 463, 464, 462, 463, + 464, 90, 91, 90, 91, 867, 87, 87, + 88, 89, 525, 525, 90, 91, 90, 91, + 867, 87, 87, 88, 89, 542, 542, 90, + 91, 90, 91, 867, 87, 87, 88, 89, + 552, 553, 554, 555, 552, 553, 554, 555, + 90, 91, 90, 91, 867, 87, 87, 88, + 89, 596, 597, 598, 599, 600, 601, 596, + 597, 598, 599, 600, 601, 90, 91, 90, + 91, 867, 87, 87, 88, 89, 662, 663, + 664, 662, 663, 664, 90, 91, 90, 91, + 867, 87, 87, 88, 89, 698, 698, 90, + 91, 90, 91, 867, 87, 87, 88, 89, + 708, 708, 90, 91, 90, 91, 867, 87, + 87, 88, 89, 721, 721, 90, 91, 90, + 91, 867, 99, 904, 98, 903, 86, 87, + 87, 88, 89, 800, 801, 802, 800, 801, + 802, 90, 91, 90, 91, 905, 906, 906, + 799, 907, 907, 799, 908, 908, 799, 909, + 909, 799, 910, 910, 799, 911, 911, 911, + 911, 799, 912, 912, 799, 913, 913, 799, + 914, 914, 914, 914, 799, 916, 916, 917, + 918, 90, 91, 919, 920, 915, 922, 922, + 923, 924, 32, 33, 34, 35, 36, 32, + 33, 34, 35, 36, 90, 91, 925, 926, + 31, 921, 927, 927, 928, 929, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 95, 96, 929, 930, - 4, 0, 98, 932, 97, 931, 154, 934, - 934, 935, 936, 67, 68, 69, 67, 68, - 69, 89, 90, 937, 938, 872, 873, 939, - 940, 933, 941, 941, 942, 943, 75, 124, - 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, - 141, 80, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 95, 96, 944, 900, - 114, 115, 945, 901, 75, 75, 123, 75, - 120, 915, 915, 916, 917, 160, 161, 162, - 163, 164, 160, 161, 162, 163, 164, 89, - 90, 918, 919, 933, 915, 915, 916, 917, - 236, 237, 238, 236, 237, 238, 89, 90, - 918, 919, 933, 915, 915, 916, 917, 292, - 292, 89, 90, 918, 919, 933, 915, 915, - 916, 917, 314, 315, 314, 315, 89, 90, - 918, 919, 933, 915, 915, 916, 917, 740, - 339, 740, 339, 89, 90, 918, 919, 933, - 915, 915, 916, 917, 382, 383, 382, 383, - 89, 90, 918, 919, 933, 915, 915, 916, - 917, 401, 402, 403, 404, 403, 404, 89, - 90, 918, 919, 933, 915, 915, 916, 917, - 440, 441, 440, 441, 89, 90, 918, 919, - 933, 915, 915, 916, 917, 461, 462, 463, - 461, 462, 463, 89, 90, 918, 919, 933, - 915, 915, 916, 917, 524, 524, 89, 90, - 918, 919, 933, 915, 915, 916, 917, 541, - 541, 89, 90, 918, 919, 933, 915, 915, - 916, 917, 551, 552, 553, 554, 551, 552, - 553, 554, 89, 90, 918, 919, 933, 915, - 915, 916, 917, 595, 596, 597, 598, 599, - 600, 595, 596, 597, 598, 599, 600, 89, - 90, 918, 919, 933, 915, 915, 916, 917, - 661, 662, 663, 661, 662, 663, 89, 90, - 918, 919, 933, 915, 915, 916, 917, 697, - 697, 89, 90, 918, 919, 933, 915, 915, - 916, 917, 707, 707, 89, 90, 918, 919, - 933, 915, 915, 916, 917, 720, 720, 89, - 90, 918, 919, 933, 946, 946, 100, 948, - 949, 99, 99, 950, 951, 99, 99, 99, - 947, 952, 952, 953, 954, 5, 6, 7, + 21, 22, 96, 97, 930, 931, 4, 0, + 99, 933, 98, 932, 155, 935, 935, 936, + 937, 67, 68, 69, 70, 67, 68, 69, + 70, 90, 91, 938, 939, 873, 874, 940, + 941, 934, 942, 942, 943, 944, 76, 125, + 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, + 142, 81, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 96, 97, 945, 901, + 115, 116, 946, 902, 76, 76, 124, 76, + 121, 916, 916, 917, 918, 161, 162, 163, + 164, 165, 161, 162, 163, 164, 165, 90, + 91, 919, 920, 934, 916, 916, 917, 918, + 237, 238, 239, 237, 238, 239, 90, 91, + 919, 920, 934, 916, 916, 917, 918, 293, + 293, 90, 91, 919, 920, 934, 916, 916, + 917, 918, 315, 316, 315, 316, 90, 91, + 919, 920, 934, 916, 916, 917, 918, 741, + 340, 741, 340, 90, 91, 919, 920, 934, + 916, 916, 917, 918, 383, 384, 383, 384, + 90, 91, 919, 920, 934, 916, 916, 917, + 918, 402, 403, 404, 405, 404, 405, 90, + 91, 919, 920, 934, 916, 916, 917, 918, + 441, 442, 441, 442, 90, 91, 919, 920, + 934, 916, 916, 917, 918, 462, 463, 464, + 462, 463, 464, 90, 91, 919, 920, 934, + 916, 916, 917, 918, 525, 525, 90, 91, + 919, 920, 934, 916, 916, 917, 918, 542, + 542, 90, 91, 919, 920, 934, 916, 916, + 917, 918, 552, 553, 554, 555, 552, 553, + 554, 555, 90, 91, 919, 920, 934, 916, + 916, 917, 918, 596, 597, 598, 599, 600, + 601, 596, 597, 598, 599, 600, 601, 90, + 91, 919, 920, 934, 916, 916, 917, 918, + 662, 663, 664, 662, 663, 664, 90, 91, + 919, 920, 934, 916, 916, 917, 918, 698, + 698, 90, 91, 919, 920, 934, 916, 916, + 917, 918, 708, 708, 90, 91, 919, 920, + 934, 916, 916, 917, 918, 721, 721, 90, + 91, 919, 920, 934, 947, 947, 101, 949, + 950, 100, 100, 951, 952, 100, 100, 100, + 948, 953, 953, 954, 955, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 89, 90, 955, 956, 4, 120, 86, - 89, 86, 87, 88, 90, 957, 958, 957, - 959, 960, 961, 820, 85, 92, 95, 92, - 93, 94, 96, 962, 887, 962, 963, 964, - 965, 820, 91, 888, 891, 888, 889, 890, - 892, 966, 958, 966, 967, 968, 969, 97, - 902, 85, 893, 98, 893, 894, 895, 896, - 970, 887, 970, 971, 972, 973, 97, 902, - 85, 974, 974, 39, 975, 975, 39, 976, - 976, 977, 978, 979, 980, 981, 981, 982, - 983, 63, 984, 984, 39, 985, 985, 39, - 986, 986, 39, 987, 987, 988, 989, 990, - 991, 992, 992, 993, 994, 63, 995, 995, - 39, 996, 996, 997, 998, 999, 1000, 1001, - 1001, 1002, 1003, 63, 797, 1005, 796, 1004, - 85, 1006, 1006, 1007, 1008, 1009, 892, 1009, - 892, 796, 796, 796, 85, 1010, 1010, 1011, - 1012, 1013, 896, 1013, 896, 796, 796, 796, - 91, 1006, 1009, 1006, 1007, 1008, 892, 1014, - 958, 1014, 1015, 1016, 969, 796, 1004, 85, - 1010, 1013, 1010, 1011, 1012, 896, 1017, 887, - 1017, 1018, 1019, 973, 796, 1004, 85, 888, - 891, 888, 889, 890, 892, 1020, 891, 1020, - 1021, 1022, 177, 97, 117, 85, 893, 98, - 893, 894, 895, 896, 1023, 98, 1023, 1024, - 1025, 181, 97, 117, 85, 1027, 1026, 77, - 1028, 1028, 1029, 1030, 75, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 80, - 124, 125, 126, 127, 128, 129, 130, 131, + 22, 90, 91, 956, 957, 4, 121, 87, + 90, 87, 88, 89, 91, 958, 959, 958, + 960, 961, 962, 821, 86, 93, 96, 93, + 94, 95, 97, 963, 888, 963, 964, 965, + 966, 821, 92, 889, 892, 889, 890, 891, + 893, 967, 959, 967, 968, 969, 970, 98, + 903, 86, 894, 99, 894, 895, 896, 897, + 971, 888, 971, 972, 973, 974, 98, 903, + 86, 975, 975, 39, 976, 976, 39, 977, + 977, 978, 979, 980, 981, 982, 982, 983, + 984, 63, 985, 985, 39, 986, 986, 39, + 987, 987, 39, 988, 988, 989, 990, 991, + 992, 993, 993, 994, 995, 63, 996, 996, + 39, 997, 997, 39, 998, 998, 39, 999, + 999, 1000, 1001, 1002, 1003, 1004, 1004, 1005, + 1006, 63, 1007, 1007, 39, 1008, 1008, 1009, + 1010, 1011, 1012, 1013, 1013, 1014, 1015, 63, + 798, 1017, 797, 1016, 86, 1018, 1018, 1019, + 1020, 1021, 893, 1021, 893, 797, 797, 797, + 86, 1022, 1022, 1023, 1024, 1025, 897, 1025, + 897, 797, 797, 797, 92, 1018, 1021, 1018, + 1019, 1020, 893, 1026, 959, 1026, 1027, 1028, + 970, 797, 1016, 86, 1022, 1025, 1022, 1023, + 1024, 897, 1029, 888, 1029, 1030, 1031, 974, + 797, 1016, 86, 889, 892, 889, 890, 891, + 893, 1032, 892, 1032, 1033, 1034, 178, 98, + 118, 86, 894, 99, 894, 895, 896, 897, + 1035, 99, 1035, 1036, 1037, 182, 98, 118, + 86, 1039, 1038, 78, 1040, 1040, 1041, 1042, + 76, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 89, 90, 955, 1031, 107, 108, - 955, 1032, 75, 75, 123, 75, 120, 86, - 89, 86, 87, 88, 90, 1033, 958, 1033, - 1034, 1035, 969, 1026, 85, 92, 95, 92, - 93, 94, 96, 1036, 887, 1036, 1037, 1038, - 973, 1026, 85, 810, 810, 811, 812, 160, - 161, 162, 163, 164, 160, 161, 162, 163, - 164, 813, 814, 1039, 810, 810, 811, 812, - 236, 237, 238, 236, 237, 238, 813, 814, - 1039, 810, 810, 811, 812, 292, 292, 813, - 814, 1039, 810, 810, 811, 812, 314, 315, - 314, 315, 813, 814, 1039, 810, 810, 811, - 812, 740, 339, 740, 339, 813, 814, 1039, - 810, 810, 811, 812, 382, 383, 382, 383, - 813, 814, 1039, 810, 810, 811, 812, 401, - 402, 403, 404, 403, 404, 813, 814, 1039, - 810, 810, 811, 812, 440, 441, 440, 441, - 813, 814, 1039, 810, 810, 811, 812, 461, - 462, 463, 461, 462, 463, 813, 814, 1039, - 810, 810, 811, 812, 524, 524, 813, 814, - 1039, 810, 810, 811, 812, 541, 541, 813, - 814, 1039, 810, 810, 811, 812, 551, 552, - 553, 554, 551, 552, 553, 554, 813, 814, - 1039, 810, 810, 811, 812, 595, 596, 597, - 598, 599, 600, 595, 596, 597, 598, 599, - 600, 813, 814, 1039, 810, 810, 811, 812, - 661, 662, 663, 661, 662, 663, 813, 814, - 1039, 810, 810, 811, 812, 697, 697, 813, - 814, 1039, 810, 810, 811, 812, 707, 707, - 813, 814, 1039, 810, 810, 811, 812, 720, - 720, 813, 814, 1039, 797, 1041, 796, 1040, - 91, 797, 1043, 796, 1042, 154, 810, 810, - 811, 812, 338, 339, 338, 339, 813, 814, - 1039, 98, 1045, 97, 1044, 154, 1047, 1048, - 1049, 1046, 1046, 1046, 821, 1051, 1050, 1053, - 1052, 1055, 1056, 1057, 1058, 1055, 1055, 1055, - 1055, 1054, 1059, 1060, 1061, 1059, 1062, 1060, - 1059, 1059, 1060, 1060, 1060, 1054, 1063, 1064, - 1064, 1063, 1065, 1064, 1063, 1063, 1064, 1064, - 1064, 1054, 1066, 1060, 1068, 1067, 1069, 1067, - 1070, 1071, 1072, 1070, 1073, 1071, 1070, 1070, - 1071, 1071, 1071, 1067, 1063, 1063, 1063, 1063, - 1054, 1074, 1074, 1074, 1074, 1054, 1077, 1078, - 1076, 1076, 1075, 1079, 1080, 1079, 1082, 1079, - 1080, 1081, 1080, 1075, 1076, 1084, 1076, 1083, - 1085, 1083, 1086, 1083, 1087, 1088, 1087, 1090, - 1087, 1088, 1089, 1088, 1083, 1091, 1091, 1093, - 1091, 1094, 1091, 1092, 1075, 1095, 1095, 1097, - 1095, 1098, 1095, 1096, 1075, 1100, 1100, 1100, - 1100, 1099, 1092, 1101, 1092, 1083, 1102, 1083, - 1103, 1083, 1104, 1104, 1106, 1104, 1107, 1104, - 1105, 1083, 1109, 1109, 1110, 1111, 1112, 1113, - 1108, 1109, 1109, 1110, 1111, 1112, 1113, 1115, - 1114, 1117, 1117, 1118, 1119, 1121, 1122, 1123, - 1124, 1125, 1121, 1122, 1123, 1124, 1125, 1126, - 1127, 1126, 1127, 1120, 1116, 1129, 1129, 1130, - 1131, 1132, 1133, 1132, 1133, 1128, 1135, 1134, - 1117, 1117, 1118, 1119, 1126, 1127, 1126, 1127, - 1136, 1116, 1139, 1140, 1141, 1142, 1143, 1139, - 1140, 1141, 1142, 1143, 1138, 1137, 1144, 1144, - 1145, 1146, 1148, 1149, 1148, 1149, 1147, 1116, - 1151, 1150, 1108, 1153, 1153, 1154, 1155, 1156, - 1157, 1152, 1153, 1153, 1154, 1155, 1158, 1159, - 1160, 1158, 1156, 1157, 1158, 1158, 1158, 1152, - 1161, 1162, 1163, 1161, 1161, 1161, 1161, 1152, - 1165, 1165, 1166, 1167, 1168, 1168, 1169, 1168, - 1170, 1171, 1170, 1171, 1168, 1168, 1168, 1164, - 1172, 1172, 1173, 1174, 1175, 1176, 1175, 1176, - 1164, 1178, 1177, 1179, 1161, 1181, 1180, 1182, - 1180, 1183, 1184, 1185, 1183, 1183, 1183, 1183, - 1180, 1165, 1165, 1166, 1167, 1170, 1171, 1170, - 1171, 1164, 1187, 1186, 1152, 1188, 1188, 1189, - 1190, 1191, 1192, 821, 1188, 1188, 1189, 1190, - 1191, 1192, 1193, 1193, 1193, 1194, 1196, 1196, - 1197, 1198, 1199, 1200, 1199, 1201, 1195, 1203, - 1203, 1204, 1205, 1206, 1207, 1208, 1206, 1209, - 1210, 1209, 1211, 1206, 1206, 1206, 1202, 1213, - 1214, 1215, 1213, 1213, 1213, 1213, 1212, 1216, - 1216, 1217, 1218, 1219, 1219, 1220, 1219, 1221, - 1222, 1221, 1222, 1219, 1219, 1219, 1202, 1223, - 1223, 1224, 1225, 1209, 1210, 1209, 1210, 91, - 1227, 1226, 1228, 1213, 1230, 1229, 1231, 1229, - 1232, 1233, 1234, 1232, 1232, 1232, 1232, 1229, - 1216, 1216, 1217, 1218, 1221, 1222, 1221, 1222, - 1202, 1227, 1236, 1226, 1235, 91, 1237, 1237, - 1238, 1239, 1206, 1207, 1208, 1206, 1240, 1241, - 1206, 1206, 1206, 1212, 1243, 1242, 821, 1245, - 1244, 821, 1247, 1247, 1247, 1247, 1246, 1248, - 1248, 1248, 1248, 1246, 1249, 1250, 1249, 1249, - 1249, 1246, 1251, 1252, 1251, 1251, 1251, 1246, - 1252, 1252, 1253, 1254, 1247, 1255, 1256, 1257, - 1257, 1258, 1259, 1247, 1247, 1247, 1246, 1261, - 1260, 1246, 1252, 1246, 1263, 1264, 1265, 1266, - 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, - 1275, 1276, 1277, 1278, 1279, 1280, 1263, 1264, - 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, - 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, - 1262, 1281, 1281, 1282, 1283, 1284, 1282, 1283, - 1284, 1281, 1281, 1262, 1285, 1285, 1262, 1286, - 1286, 1262, 1287, 1287, 1287, 1287, 1262, 1288, - 1288, 1262, 1289, 1289, 1262, 1290, 1290, 1262, - 1291, 1291, 1291, 1291, 1262, 1292, 1292, 1262, - 1293, 1293, 1293, 1293, 1262, 1294, 1295, 1296, - 1297, 1298, 1294, 1295, 1296, 1297, 1298, 1262, - 1299, 1299, 1262, 1300, 1300, 1300, 1300, 1262, - 1301, 1302, 1301, 1302, 1262, 1303, 1303, 1262, - 1304, 1304, 1262, 1305, 1305, 1262, 1306, 1306, - 1262, 1307, 1307, 1307, 1307, 1262, 1308, 1308, - 1308, 1308, 1262, 1309, 1309, 1262, 1310, 1310, - 1262, 1311, 1311, 1311, 1311, 1262, 1312, 1312, - 1262, 1313, 1313, 1262, 1314, 1314, 1262, 1315, - 1315, 1315, 1315, 1262, 1316, 1316, 1262, 1317, - 1317, 1262, 1318, 1318, 1262, 1319, 1319, 1319, - 1319, 1262, 1320, 1321, 1322, 1320, 1321, 1322, - 1262, 1323, 1323, 1262, 1324, 1324, 1262, 1325, - 1325, 1262, 1326, 1326, 1326, 1326, 1262, 1327, - 1328, 1327, 1328, 1262, 1329, 1329, 1262, 1330, - 1330, 1262, 1331, 1331, 1331, 1331, 1262, 1332, - 1332, 1262, 1333, 1333, 1262, 1334, 1334, 1262, - 1335, 1335, 1335, 1335, 1262, 1336, 1336, 1337, - 1337, 1336, 1336, 1262, 1338, 1338, 1262, 1339, - 1339, 1262, 1340, 1340, 1340, 1340, 1262, 1341, - 1341, 1262, 1342, 1342, 1262, 1343, 1344, 1262, - 1345, 1262, 1346, 1346, 1346, 1346, 1262, 1347, - 1262, 1348, 1348, 1348, 1348, 1262, 1349, 1350, - 1349, 1350, 1262, 1351, 1351, 1262, 1352, 1352, - 1262, 1353, 1353, 1262, 1354, 1354, 1354, 1354, - 1262, 1355, 1355, 1262, 1356, 1356, 1262, 1357, - 1357, 1262, 1358, 1358, 1358, 1358, 1262, 1359, - 1359, 1262, 1360, 1360, 1262, 1361, 1361, 1262, - 1362, 1362, 1262, 1363, 1363, 1262, 1364, 1364, - 1262, 1365, 1365, 1262, 1366, 1366, 1366, 1366, - 1262, 1367, 1368, 1367, 1368, 1262, 1369, 1369, - 1262, 1370, 1370, 1370, 1370, 1262, 1371, 1371, - 1371, 1371, 1262, 1372, 1373, 1374, 1375, 1374, - 1375, 1262, 1376, 1262, 1377, 1377, 1377, 1377, - 1262, 1378, 1262, 1379, 1379, 1379, 1379, 1262, - 1380, 1380, 1262, 1381, 1381, 1381, 1381, 1262, - 1382, 1382, 1382, 1382, 1262, 1383, 1384, 1383, - 1384, 1262, 1385, 1385, 1262, 1386, 1386, 1262, - 1387, 1387, 1262, 1388, 1388, 1388, 1388, 1262, - 1389, 1389, 1389, 1389, 1262, 1390, 1391, 1392, - 1390, 1391, 1392, 1262, 1393, 1393, 1262, 1394, - 1394, 1262, 1395, 1395, 1262, 1396, 1396, 1396, - 1396, 1262, 1397, 1397, 1262, 1398, 1398, 1398, - 1398, 1262, 1399, 1399, 1400, 1400, 1399, 1399, - 1262, 1401, 1401, 1262, 1402, 1403, 1402, 1402, - 1402, 1262, 1404, 1404, 1405, 1405, 1404, 1404, - 1262, 1406, 1406, 1262, 1407, 1407, 1262, 1408, - 1408, 1262, 1409, 1409, 1262, 1410, 1410, 1410, - 1410, 1262, 1411, 1411, 1262, 1412, 1412, 1262, - 1413, 1413, 1262, 1414, 1414, 1262, 1415, 1415, - 1262, 1416, 1416, 1262, 1417, 1417, 1262, 1418, - 1418, 1262, 1419, 1419, 1262, 1420, 1420, 1420, - 1420, 1262, 1421, 1421, 1262, 1422, 1422, 1262, - 1423, 1423, 1423, 1423, 1262, 1424, 1425, 1426, - 1427, 1424, 1425, 1426, 1427, 1262, 1428, 1428, - 1262, 1429, 1429, 1262, 1430, 1430, 1262, 1431, - 1431, 1262, 1432, 1432, 1262, 1433, 1433, 1433, - 1433, 1262, 1434, 1434, 1434, 1434, 1262, 1435, - 1435, 1262, 1436, 1436, 1262, 1437, 1437, 1262, - 1438, 1438, 1438, 1438, 1262, 1439, 1439, 1439, - 1439, 1262, 1440, 1441, 1442, 1443, 1444, 1445, - 1440, 1441, 1442, 1443, 1444, 1445, 1262, 1446, - 1446, 1262, 1447, 1447, 1262, 1448, 1448, 1262, - 1449, 1449, 1262, 1450, 1450, 1450, 1450, 1262, - 1451, 1451, 1262, 1452, 1452, 1452, 1452, 1262, - 1453, 1453, 1262, 1454, 1454, 1454, 1454, 1262, - 1455, 1455, 1262, 1456, 1456, 1456, 1456, 1262, - 1457, 1457, 1262, 1458, 1458, 1262, 1459, 1459, - 1262, 1460, 1460, 1460, 1460, 1262, 1461, 1461, - 1262, 1462, 1462, 1262, 1463, 1463, 1463, 1463, - 1262, 1464, 1465, 1466, 1464, 1465, 1466, 1262, - 1467, 1467, 1262, 1468, 1468, 1262, 1469, 1469, - 1469, 1469, 1262, 1470, 1470, 1262, 1471, 1471, - 1471, 1471, 1262, 1472, 1472, 1262, 1473, 1473, - 1262, 1475, 1474, 1476, 1476, 1476, 1476, 1477, - 1474, 1478, 1478, 1262, 1479, 1479, 1262, 1480, - 1480, 1480, 1480, 1262, 1481, 1481, 1262, 1482, - 1482, 1262, 1483, 1483, 1262, 1484, 1484, 1262, - 1485, 1485, 1262, 1486, 1486, 1486, 1486, 1262, - 1487, 1487, 1262, 1488, 1488, 1262, 1489, 1489, - 1262, 1490, 1490, 1262, 1491, 1491, 1262, 1492, - 1492, 1492, 1492, 1262, 1494, 1494, 1495, 1496, - 1497, 1498, 1499, 1499, 1500, 1501, 1493, 1502, - 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, - 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, - 1518, 1519, 1520, 1521, 1522, 1505, 1506, 1507, - 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, - 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, - 1524, 1525, 1525, 1526, 1527, 1493, 1528, 1528, - 1529, 1530, 1531, 1532, 1533, 1531, 1532, 1533, - 1534, 1535, 1536, 1536, 1537, 1538, 1493, 1539, - 1539, 1493, 1540, 1540, 1493, 1541, 1541, 1542, - 1543, 1544, 1545, 1546, 1546, 1547, 1548, 1493, - 1550, 1549, 1493, 1551, 1552, 1553, 1554, 1555, - 1551, 1552, 1553, 1554, 1555, 1493, 1556, 1556, - 1493, 1557, 1557, 1558, 1559, 1560, 1561, 1562, - 1562, 1563, 1564, 1493, 1565, 1566, 1565, 1566, - 1493, 1567, 1567, 1493, 1568, 1568, 1493, 1569, - 1569, 1493, 1570, 1570, 1493, 1571, 1571, 1572, - 1573, 1574, 1575, 1576, 1576, 1577, 1578, 1493, - 1579, 1579, 1580, 1581, 1582, 1583, 1584, 1584, - 1585, 1586, 1493, 1587, 1587, 1493, 1588, 1588, - 1493, 1589, 1589, 1590, 1591, 1592, 1593, 1594, - 1594, 1595, 1596, 1493, 1597, 1597, 1493, 1598, - 1598, 1493, 1599, 1599, 1493, 1600, 1600, 1601, - 1602, 1603, 1604, 1605, 1605, 1606, 1607, 1493, - 1608, 1608, 1493, 1609, 1609, 1493, 1610, 1610, - 1493, 1611, 1611, 1612, 1613, 1614, 1615, 1616, - 1616, 1617, 1618, 1493, 1619, 1620, 1621, 1619, - 1620, 1621, 1493, 1622, 1622, 1493, 1623, 1623, - 1493, 1624, 1624, 1493, 1625, 1625, 1626, 1627, - 1628, 1629, 1630, 1630, 1631, 1632, 1493, 1633, - 1634, 1633, 1634, 1493, 1635, 1635, 1493, 1636, - 1636, 1493, 1637, 1637, 1638, 1639, 1640, 1641, - 1642, 1642, 1643, 1644, 1493, 1645, 1645, 1493, - 1646, 1646, 1493, 1647, 1647, 1493, 1648, 1648, - 1649, 1650, 1651, 1652, 1653, 1653, 1654, 1655, - 1493, 1656, 1656, 1657, 1658, 1659, 1659, 1660, - 1661, 1662, 1662, 1663, 1664, 1493, 1665, 1665, - 1493, 1666, 1666, 1493, 1667, 1667, 1668, 1669, - 1670, 1671, 1672, 1672, 1673, 1674, 1493, 1675, - 1675, 1493, 1676, 1676, 1493, 1677, 1678, 1493, - 1679, 1493, 1680, 1680, 1681, 1682, 1683, 1684, - 1685, 1685, 1686, 1687, 1493, 1688, 1493, 1689, - 1689, 1690, 1691, 1692, 1693, 1694, 1694, 1695, - 1696, 1493, 1697, 1698, 1697, 1698, 1493, 1699, - 1699, 1493, 1700, 1700, 1493, 1701, 1701, 1493, - 1702, 1702, 1703, 1704, 1705, 1706, 1707, 1707, - 1708, 1709, 1493, 1710, 1710, 1493, 1711, 1711, - 1493, 1712, 1712, 1493, 1713, 1713, 1714, 1715, - 1716, 1717, 1718, 1718, 1719, 1720, 1493, 1721, - 1721, 1493, 1722, 1722, 1493, 1723, 1723, 1493, - 1724, 1724, 1493, 1725, 1725, 1493, 1726, 1726, - 1493, 1727, 1727, 1493, 1728, 1728, 1729, 1730, - 1731, 1732, 1733, 1733, 1734, 1735, 1493, 1736, - 1737, 1736, 1737, 1493, 1738, 1738, 1493, 1739, - 1739, 1740, 1741, 1742, 1743, 1744, 1744, 1745, - 1746, 1493, 1747, 1747, 1748, 1749, 1750, 1751, - 1752, 1752, 1753, 1754, 1493, 1755, 1756, 1757, - 1758, 1757, 1758, 1493, 1759, 1493, 1760, 1760, - 1761, 1762, 1763, 1764, 1765, 1765, 1766, 1767, - 1493, 1768, 1493, 1769, 1769, 1770, 1771, 1772, - 1773, 1774, 1774, 1775, 1776, 1493, 1777, 1777, - 1493, 1778, 1778, 1779, 1780, 1781, 1782, 1783, - 1783, 1784, 1785, 1493, 1786, 1786, 1787, 1788, - 1789, 1790, 1791, 1791, 1792, 1793, 1493, 1794, - 1795, 1794, 1795, 1493, 1796, 1796, 1493, 1797, - 1797, 1493, 1798, 1798, 1493, 1799, 1799, 1800, - 1801, 1802, 1803, 1804, 1804, 1805, 1806, 1493, - 1807, 1807, 1808, 1809, 1810, 1811, 1812, 1812, - 1813, 1814, 1493, 1815, 1816, 1817, 1815, 1816, - 1817, 1493, 1818, 1818, 1493, 1819, 1819, 1493, - 1820, 1820, 1493, 1821, 1821, 1822, 1823, 1824, - 1825, 1826, 1826, 1827, 1828, 1493, 1829, 1829, - 1493, 1830, 1830, 1831, 1832, 1833, 1834, 1835, - 1835, 1836, 1837, 1493, 1838, 1838, 1839, 1840, - 1841, 1841, 1842, 1843, 1844, 1844, 1845, 1846, - 1493, 1847, 1847, 1493, 1848, 1848, 1849, 1850, - 1851, 1852, 1853, 1854, 1854, 1855, 1856, 1493, - 1857, 1857, 1858, 1859, 1860, 1860, 1861, 1862, - 1863, 1863, 1864, 1865, 1493, 1866, 1866, 1493, - 1867, 1867, 1493, 1868, 1868, 1493, 1869, 1869, - 1493, 1870, 1870, 1871, 1872, 1873, 1874, 1875, - 1875, 1876, 1877, 1493, 1878, 1878, 1493, 1879, - 1879, 1493, 1880, 1880, 1493, 1881, 1881, 1493, - 1882, 1882, 1493, 1883, 1883, 1493, 1884, 1884, - 1493, 1885, 1885, 1493, 1886, 1886, 1493, 1887, - 1887, 1888, 1889, 1890, 1891, 1892, 1892, 1893, - 1894, 1493, 1895, 1895, 1493, 1896, 1896, 1493, - 1897, 1897, 1898, 1899, 1900, 1901, 1902, 1902, - 1903, 1904, 1493, 1905, 1906, 1907, 1908, 1905, - 1906, 1907, 1908, 1493, 1909, 1909, 1493, 1910, - 1910, 1493, 1911, 1911, 1493, 1912, 1912, 1493, - 1913, 1913, 1493, 1914, 1914, 1915, 1916, 1917, - 1918, 1919, 1919, 1920, 1921, 1493, 1922, 1922, - 1923, 1924, 1925, 1926, 1927, 1927, 1928, 1929, - 1493, 1930, 1930, 1493, 1931, 1931, 1493, 1932, - 1932, 1493, 1933, 1933, 1934, 1935, 1936, 1937, - 1938, 1938, 1939, 1940, 1493, 1941, 1941, 1942, - 1943, 1944, 1945, 1946, 1946, 1947, 1948, 1493, - 1949, 1950, 1951, 1952, 1953, 1954, 1949, 1950, - 1951, 1952, 1953, 1954, 1493, 1955, 1955, 1493, - 1956, 1956, 1493, 1957, 1957, 1493, 1958, 1958, - 1493, 1959, 1959, 1960, 1961, 1962, 1963, 1964, - 1964, 1965, 1966, 1493, 1967, 1967, 1493, 1968, - 1968, 1969, 1970, 1971, 1972, 1973, 1973, 1974, - 1975, 1493, 1976, 1976, 1493, 1977, 1977, 1978, - 1979, 1980, 1981, 1982, 1982, 1983, 1984, 1493, - 1985, 1985, 1493, 1986, 1986, 1987, 1988, 1989, - 1990, 1991, 1991, 1992, 1993, 1493, 1994, 1994, - 1493, 1995, 1995, 1493, 1996, 1996, 1493, 1997, - 1997, 1998, 1999, 2000, 2001, 2002, 2002, 2003, - 2004, 1493, 2005, 2005, 1493, 2006, 2006, 1493, - 2007, 2007, 2008, 2009, 2010, 2011, 2012, 2012, - 2013, 2014, 1493, 2015, 2016, 2017, 2015, 2016, - 2017, 1493, 2018, 2018, 1493, 2019, 2019, 1493, - 2020, 2020, 2021, 2022, 2023, 2024, 2025, 2025, - 2026, 2027, 1493, 2028, 2028, 1493, 2029, 2029, - 2030, 2031, 2032, 2033, 2034, 2034, 2035, 2036, - 1493, 2037, 2037, 1493, 2038, 2038, 1493, 2039, - 1493, 2040, 2040, 2041, 2042, 2044, 2045, 2046, - 2046, 2047, 2048, 2043, 1493, 2049, 2049, 1493, - 2050, 2050, 1493, 2051, 2051, 2052, 2053, 2054, - 2055, 2056, 2056, 2057, 2058, 1493, 2059, 2059, - 1493, 2060, 2060, 1493, 2061, 2061, 1493, 2062, - 2062, 1493, 2063, 2063, 1493, 2064, 2064, 2065, - 2066, 2067, 2068, 2069, 2069, 2070, 2071, 1493, - 2072, 2072, 1493, 2073, 2073, 1493, 2074, 2074, - 1493, 2075, 2075, 1493, 2076, 2076, 1493, 2077, - 2077, 2078, 2079, 2080, 2081, 2082, 2082, 2083, - 2084, 1493, 2085, 2085, 1493, 2086, 2086, 1493, - 2087, 2087, 1493, 2088, 2088, 2089, 2090, 2091, - 2092, 2093, 2093, 2094, 2095, 1493, 2096, 2096, - 1493, 2097, 2097, 2098, 2099, 2100, 2101, 2102, - 2102, 2103, 2104, 1493, 2106, 2106, 2107, 2108, - 2109, 2110, 2105, 2106, 2106, 2107, 2108, 2109, - 2110, 2112, 2111, 2113, 2113, 2114, 2115, 2117, - 2118, 2116, 2111, 2120, 2120, 2121, 2122, 2124, - 2125, 2123, 2123, 2123, 2119, 2126, 2126, 2126, - 2119, 2127, 2127, 2128, 2129, 2130, 2131, 2132, - 2132, 2133, 2134, 2123, 2123, 2123, 2119, 2136, - 2135, 2119, 2138, 2137, 2105, 2140, 2139, 2105, - 2141, 2141, 2142, 2143, 2144, 2145, 2105, 2141, - 2141, 2142, 2143, 2146, 2144, 2145, 2147, 2111, - 2148, 2148, 2149, 2150, 2152, 2152, 2153, 2154, - 2151, 2111, 2155, 2155, 2156, 2157, 2159, 2160, - 2158, 2158, 2158, 2119, 2161, 2161, 2161, 2119, - 2162, 2162, 2163, 2164, 2165, 2166, 2167, 2167, - 2168, 2169, 2158, 2158, 2158, 2119, 2171, 2170, - 2119, 2173, 2172, 2105, 2174, 2174, 2175, 2176, - 2177, 2178, 2151, 2111, 2180, 2179, 2105, 2182, - 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2181, - 2190, 2181, 2191, 2181, 2192, 2181, 2193, 2193, - 2193, 2193, 2193, 2193, 2181, 2194, 2181, 2195, - 2181, 2196, 2181, 2197, 2181, 2198, 2181, 2199, - 2181, 2200, 2200, 2200, 2200, 2200, 2200, 2181, - 2201, 2181, 2202, 2181, 2203, 2203, 2203, 2203, - 2203, 2203, 2181, 2204, 2181, 2205, 2181, 2206, - 2207, 2181, 2208, 2181, 2209, 2181, 2210, 2181, - 2211, 2181, 2212, 2212, 2212, 2212, 2212, 2212, - 2181, 2213, 2181, 2214, 2181, 2215, 2181, 2216, - 2181, 2217, 2217, 2217, 2217, 2217, 2217, 2181, - 2218, 2181, 2219, 2181, 2221, 2220, 2222, 2222, - 2222, 2222, 2222, 2222, 2223, 2220, 2224, 2181, - 2225, 2181, 2226, 2181, 2227, 2181, 2228, 2181, - 2229, 2181, 2230, 2181, 2231, 2181, 2232, 2181, - 2233, 2181, 2234, 2181, 2235, 2181, 2236, 2181, - 2237, 2181, 2238, 2238, 2238, 2238, 2238, 2238, - 2181, 2239, 2181, 2240, 2181, 2241, 2181, 2242, - 2181, 2243, 2243, 2243, 2243, 2243, 2243, 2181, - 2244, 2181, 2245, 2181, 2246, 2181, 2247, 2247, - 2247, 2247, 2247, 2247, 2181, 2249, 2249, 2250, - 2251, 2252, 2253, 2254, 2254, 2255, 2256, 2248, - 2257, 2257, 2258, 2259, 2260, 2261, 2262, 2263, - 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, - 2271, 2272, 2273, 2248, 2274, 2248, 2275, 2248, - 2276, 2248, 2277, 2248, 2248, 2279, 2248, 2248, - 2248, 2278, 2280, 2280, 2281, 2282, 2283, 2284, - 2285, 2285, 2286, 2287, 2248, 2289, 2288, 2248, - 2290, 2248, 2291, 2248, 2292, 2248, 2293, 2248, - 2294, 2248, 2295, 2248, 2296, 2248, 2248, 2298, - 2248, 2248, 2248, 2297, 2299, 2299, 2300, 2301, - 2302, 2303, 2304, 2304, 2305, 2306, 2248, 2299, - 2299, 2300, 2301, 2302, 2303, 2304, 2304, 2305, - 2306, 2307, 2307, 2307, 2248, 2308, 2248, 2309, - 2309, 2310, 2311, 2312, 2313, 2314, 2314, 2315, - 2316, 2248, 2317, 2248, 2318, 2248, 2319, 2248, - 2320, 2321, 2321, 2321, 2321, 2248, 2322, 2322, - 2322, 2322, 2248, 2323, 2323, 2323, 2323, 2248, - 2324, 2325, 2324, 2324, 2324, 2248, 2326, 2327, - 2326, 2326, 2326, 2248, 2308, 2328, 2328, 2328, - 2328, 2248, 2327, 2248, 2329, 2329, 2329, 2329, - 2248, 2330, 2331, 2330, 2330, 2330, 2248, 2332, - 2333, 2332, 2332, 2332, 2248, 2299, 2299, 2300, - 2301, 2334, 2302, 2303, 2304, 2304, 2305, 2306, - 2334, 2334, 2334, 2248, 2333, 2248, 2335, 2248, - 2336, 2248, 2337, 2338, 2248, 2339, 2248, 2340, - 2248, 2341, 2248, 2342, 2248, 2343, 2248, 2345, - 2346, 2346, 2344, 2347, 2347, 2344, 2348, 2349, - 2350, 2350, 2344, 2351, 2351, 2344, 2352, 2352, - 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2359, - 2360, 2361, 2356, 2344, 2362, 2362, 2344, 2363, - 2248, 2364, 2248, 2365, 2248, 2366, 2248, 2367, - 2248, 2368, 2369, 2369, 2369, 2369, 2344, 2370, - 2370, 2370, 2370, 2344, 2371, 2372, 2373, 2373, - 2373, 2373, 2344, 2374, 2374, 2374, 2374, 2344, - 2375, 2375, 2376, 2377, 2378, 2379, 2380, 2381, - 2382, 2382, 2383, 2384, 2379, 2379, 2379, 2344, - 2385, 2385, 2385, 2385, 2344, 2386, 2248, 2387, - 2248, 2389, 2388, 2390, 2390, 2391, 2392, 2394, - 2395, 2396, 2397, 2397, 2398, 2399, 2393, 2388, - 2248, 2248, 2248, 2248, 2297, 2400, 2248, 2401, - 2248, 2402, 2248, 2403, 2248, 2404, 2248, 2405, - 2248, 2406, 2248, 2407, 2248, 2408, 2248, 2409, - 2410, 2410, 2248, 2411, 2411, 2248, 2412, 2413, - 2248, 2414, 2414, 2248, 2415, 2415, 2416, 2417, - 2418, 2419, 2420, 2421, 2421, 2422, 2423, 2248, - 2424, 2424, 2248, 2425, 2248, 2426, 2248, 2427, - 2248, 2428, 2248, 2429, 2248, 2430, 2248, 2431, - 2248, 2432, 2248, 2433, 2248, 2434, 2248, 2435, - 2248, 2436, 2248, 2437, 2248, 2438, 2248, 2439, - 2439, 2440, 2441, 2442, 2443, 2444, 2444, 2445, - 2446, 2248, 2447, 2248, 2448, 2248, 2449, 2248, - 2450, 2248, 2451, 2451, 2452, 2453, 2454, 2455, - 2456, 2456, 2457, 2458, 2248, 2459, 2248, 2460, - 2248, 2461, 2248, 2462, 2248, 2463, 2464, 2388, - 2465, 2388, 2466, 2467, 2388, 2468, 2468, 2469, - 2470, 2472, 2473, 2474, 2474, 2475, 2476, 2471, - 2388, 2280, 2280, 2281, 2282, 2283, 2284, 2285, - 2285, 2286, 2287, 2477, 2477, 2477, 2248, 2478, - 2248, 2481, 2482, 2483, 2484, 2485, 2481, 2482, - 2483, 2484, 2485, 2480, 2479, 2486, 2486, 2486, - 2486, 2487, 2479, 2488, 2489, 2488, 2489, 2479, - 2490, 2490, 2490, 2490, 2479, 2491, 2491, 2479, - 2492, 2493, 2492, 2492, 2492, 2479, 2494, 2494, - 2479, 2495, 2495, 2479, 2496, 2496, 2479, 2497, - 2497, 2479, 2498, 2479, 2499, 2479, 2500, 2500, - 2479, 2501, 2501, 2479, 2502, 2502, 2479, 2503, - 2479, 2504, 2504, 2504, 2504, 2479, 2505, 2506, - 2505, 2506, 2479, 2507, 2508, 2507, 2508, 2479, - 2509, 2479, 2510, 2510, 2479, 2511, 2511, 2479, - 2512, 2512, 2479, 2513, 2513, 2479, 2514, 2514, - 2514, 2514, 2479, 2515, 2515, 2479, 2516, 2516, - 2479, 2517, 2517, 2479, 2518, 2519, 2479, 2520, - 2479, 2521, 2479, 2522, 2522, 2479, 2523, 2523, - 2479, 2524, 2524, 2479, 2525, 2479, 2526, 2479, - 2527, 2479, 2528, 2528, 2528, 2528, 2479, 2529, - 2479, 2530, 2479, 2531, 2531, 2479, 2532, 2532, - 2479, 2533, 2533, 2479, 2534, 2479, 2535, 2479, - 2536, 2479, 2537, 2537, 2537, 2537, 2479, 2538, - 2539, 2479, 2540, 2479, 2541, 2479, 2542, 2479, - 2543, 2479, 2544, 2544, 2544, 2544, 2479, 2545, - 2479, 2546, 2479, 2547, 2547, 2547, 2547, 2479, - 2548, 2548, 2479, 2549, 2549, 2479, 2550, 2550, - 2479, 2551, 2551, 2479, 2552, 2552, 2479, 2553, - 2553, 2479, 2554, 2554, 2479, 2555, 2555, 2555, - 2555, 2479, 2556, 2556, 2479, 2557, 2557, 2479, - 2558, 2558, 2479, 2559, 2559, 2479, 2560, 2560, - 2479, 2561, 2561, 2479, 2562, 2563, 2562, 2563, - 2479, 2564, 2564, 2479, 2565, 2565, 2479, 2566, - 2566, 2566, 2566, 2479, 2567, 2567, 2479, 2568, - 2568, 2479, 2569, 2569, 2569, 2569, 2479, 2570, - 2570, 2479, 2571, 2571, 2479, 2572, 2573, 2572, - 2573, 2479, 2574, 2574, 2479, 2575, 2479, 2576, - 2576, 2576, 2576, 2479, 2577, 2577, 2479, 2578, - 2578, 2479, 2579, 2580, 2581, 2479, 2582, 2583, - 2582, 2582, 2582, 2479, 2584, 2584, 2479, 2585, - 2585, 2479, 2586, 2586, 2479, 2587, 2587, 2479, - 2588, 2479, 2589, 2479, 2590, 2590, 2479, 2591, - 2591, 2479, 2592, 2592, 2479, 2593, 2479, 2594, - 2594, 2594, 2594, 2479, 2595, 2479, 2596, 2479, - 2597, 2597, 2597, 2597, 2479, 2598, 2479, 2599, - 2479, 2600, 2600, 2600, 2600, 2479, 2603, 2604, - 2605, 2606, 2607, 2608, 2603, 2604, 2605, 2606, - 2607, 2608, 2602, 2601, 2609, 2609, 2609, 2609, - 2610, 2601, 2611, 2611, 2601, 2612, 2612, 2601, - 2613, 2613, 2601, 2614, 2614, 2601, 2615, 2615, - 2601, 2616, 2616, 2616, 2616, 2601, 2617, 2618, - 2619, 2617, 2618, 2619, 2601, 2620, 2620, 2601, - 2621, 2621, 2601, 2622, 2622, 2601, 2623, 2623, - 2601, 2624, 2624, 2601, 2625, 2625, 2625, 2625, - 2601, 2626, 2627, 2626, 2627, 2601, 2628, 2628, - 2601, 2629, 2629, 2629, 2629, 2601, 2630, 2630, - 2601, 2631, 2631, 2601, 2632, 2632, 2632, 2632, - 2601, 2633, 2633, 2601, 2634, 2634, 2601, 2635, - 2635, 2601, 2636, 2636, 2636, 2636, 2601, 2637, - 2637, 2601, 2638, 2638, 2601, 2639, 2639, 2639, - 2639, 2601, 2640, 2641, 2640, 2641, 2601, 2642, - 2642, 2601, 2643, 2643, 2643, 2643, 2601, 2644, - 2644, 2601, 2645, 2645, 2601, 2646, 2646, 2646, - 2646, 2601, 2647, 2647, 2601, 2648, 2648, 2601, - 2649, 2649, 2601, 2650, 2650, 2650, 2650, 2601, - 2651, 2651, 2601, 2652, 2652, 2601, 2653, 2653, - 2653, 2653, 2601, 2656, 2656, 2655, 2654, 2657, - 2657, 2657, 2657, 2658, 2654, 2659, 2659, 2654, - 2660, 2660, 2654, 2661, 2661, 2654, 2662, 2662, - 2654, 2663, 2663, 2654, 2664, 2664, 2664, 2664, - 2654, 2666, 2666, 2665, 2667, 2668, 2667, 2667, - 2667, 2668, 2665, 2669, 2669, 2669, 2669, 2669, - 2669, 77, 2670, 2670, 2670, 2670, 77, 2671, - 2671, 2671, 2671, 2671, 2671, 77, 2672, 2672, - 2673, 2674, 2675, 2676, 77, 2677, 2677, 2678, - 2679, 2680, 2680, 2680, 2681, 2682, 2680, 2680, - 2680, 77, 2683, 2683, 2684, 2685, 2686, 2687, - 77, 2689, 2689, 2690, 2691, 2693, 2694, 2692, - 2688, 2695, 2695, 2696, 2697, 2699, 2700, 2698, - 2688, 2701, 2701, 2702, 2703, 2705, 2706, 2704, - 2688, 2708, 2708, 2709, 2710, 2712, 2713, 2714, - 2715, 2716, 2712, 2713, 2714, 2715, 2716, 2717, - 2718, 2711, 2707, 2719, 2719, 2720, 2721, 2723, - 2724, 2722, 2688, 2725, 2725, 2726, 2727, 2729, - 2730, 2731, 2732, 2733, 2729, 2730, 2731, 2732, - 2733, 2734, 2735, 2728, 2707, 2736, 2736, 2737, - 2738, 2740, 2741, 2739, 2688, 2742, 2742, 2743, - 2744, 2746, 2747, 2748, 2749, 2750, 2746, 2747, - 2748, 2749, 2750, 2751, 2752, 2745, 2707, 2753, - 2753, 2754, 2755, 2757, 2758, 2756, 2688, 2759, - 2759, 2761, 2762, 2763, 2764, 2765, 2761, 2762, - 2763, 2764, 2765, 2759, 2759, 2760, 2707, 2759, - 2759, 2759, 2759, 2766, 2707, 2768, 2769, 2770, - 2771, 2772, 2768, 2769, 2770, 2771, 2772, 2767, - 2707, 2773, 2773, 2773, 2773, 2774, 2707, 2776, - 2775, 77, 2742, 2742, 2743, 2744, 2751, 2752, - 2777, 2707, 2779, 2780, 2781, 2782, 2783, 2779, - 2780, 2781, 2782, 2783, 2778, 2707, 2784, 2784, - 2785, 2786, 2788, 2789, 2787, 2707, 2791, 2790, - 77, 2725, 2725, 2726, 2727, 2734, 2735, 2792, - 2707, 2794, 2795, 2796, 2797, 2798, 2794, 2795, - 2796, 2797, 2798, 2793, 2707, 2799, 2799, 2800, - 2801, 2803, 2804, 2802, 2707, 2806, 2805, 77, - 2708, 2708, 2709, 2710, 2717, 2718, 2807, 2707, - 2809, 2810, 2811, 2812, 2813, 2809, 2810, 2811, - 2812, 2813, 2808, 2707, 2814, 2814, 2815, 2816, - 2818, 2819, 2817, 2707, 2821, 2820, 77, 2823, - 2822, 77, 2825, 2824, 77, 77, 77, 77, - 77, 2826, 2827, 2827, 2828, 2829, 2830, 2831, - 77, 2833, 2833, 2834, 2835, 2836, 2837, 2832, - 2832, 2832, 77, 2838, 2838, 2838, 2838, 77, - 2840, 2839, 77, 2841, 2841, 2841, 2841, 2841, - 2841, 77, 2842, 2842, 2843, 2844, 2845, 2846, - 77, 2847, 2847, 2848, 2849, 2850, 2850, 2850, - 2851, 2852, 2850, 2850, 2850, 77, 2853, 2853, - 2853, 2853, 77, 2855, 2854, 77, 2856, 2688, - 2857, 2857, 2858, 2859, 2861, 2862, 2860, 2688, - 2863, 2863, 2864, 2865, 2866, 2866, 2866, 2867, - 2868, 2866, 2866, 2866, 77, 2869, 2869, 2869, - 2869, 77, 2871, 2870, 77, 2873, 2873, 2873, - 2873, 2872, 2874, 2874, 2875, 2876, 2877, 2878, - 2879, 2879, 2880, 2881, 2873, 2883, 2883, 2884, - 2885, 2886, 2887, 2888, 2888, 2889, 2890, 2882, - 2882, 2882, 2873, 2892, 2891, 2873, 2893, 2893, - 2893, 2893, 2665, 2894, 2895, 2894, 2894, 2894, - 2895, 2895, 2895, 2665, 2897, 2896, 2898, 2898, - 2899, 2900, 2902, 2903, 2901, 2896, 2904, 2904, - 2905, 2906, 2908, 2909, 2910, 2911, 2907, 2896, - 2912, 2912, 2913, 2914, 2916, 2917, 2915, 2896, - 2918, 2918, 2919, 2920, 2908, 2909, 2922, 2923, - 2921, 2896, 2924, 2924, 2925, 2926, 2927, 2929, - 2930, 2928, 2896, 2931, 2931, 2932, 2933, 2908, - 2909, 2934, 2935, 2896, 2936, 2936, 2937, 2938, - 2939, 2940, 2896, 2936, 2936, 2937, 2938, 2939, - 2940, 2941, 2896, 2942, 2942, 2943, 2944, 2946, - 2947, 2945, 2896, 2948, 2948, 2949, 2950, 2952, - 2953, 2954, 2955, 2951, 2896, 2956, 2956, 2957, - 2958, 2960, 2961, 2959, 2896, 2962, 2962, 2963, - 2964, 2952, 2953, 2966, 2967, 2965, 2896, 2968, - 2968, 2969, 2970, 2971, 2973, 2974, 2972, 2896, - 2975, 2975, 2976, 2977, 2952, 2953, 2978, 2979, - 2896, 2980, 2980, 2981, 2982, 2983, 2984, 2896, - 2980, 2980, 2981, 2982, 2985, 2983, 2984, 2986, - 2896, 2987, 2896, 2988, 2988, 2989, 2990, 2991, - 2993, 2994, 2995, 2996, 2996, 2997, 2998, 2992, - 2896, 2999, 2999, 3000, 3001, 3003, 3004, 3005, - 3005, 3006, 3007, 3002, 2896, 3008, 3008, 3009, - 3010, 3011, 3013, 3014, 3015, 3016, 3016, 3017, - 3018, 3012, 2896, 3019, 3019, 3020, 3021, 3023, - 3024, 3005, 3005, 3025, 3026, 3022, 2896, 3027, - 3027, 3028, 3029, 3030, 3032, 3033, 3034, 3035, - 3035, 3036, 3037, 3031, 2896, 3038, 3038, 3039, - 3040, 3042, 3043, 3005, 3005, 3044, 3045, 3041, - 2896, 3046, 3046, 3047, 3048, 3049, 3046, 3051, - 3052, 3053, 3053, 3054, 3055, 3050, 2896, 3056, - 3056, 3057, 3058, 3059, 3060, 3005, 3005, 3061, - 3062, 2896, 3064, 3063, 2896, 3065, 3065, 3066, - 3067, 3065, 3069, 3070, 3071, 3071, 3072, 3073, - 3068, 2896, 3046, 3046, 3047, 3048, 3046, 3051, - 3052, 3053, 3053, 3054, 3055, 3074, 2896, 3076, - 3075, 2896, 3077, 3077, 3078, 3079, 3081, 3082, - 3083, 3084, 3084, 3085, 3086, 3080, 2896, 3027, - 3027, 3028, 3029, 3032, 3033, 3034, 3035, 3035, - 3036, 3037, 3087, 2896, 3038, 3038, 3039, 3040, - 3042, 3043, 3005, 3005, 3044, 3045, 2896, 3089, - 3088, 2896, 3090, 3090, 3091, 3092, 3094, 3095, - 3096, 3097, 3097, 3098, 3099, 3093, 2896, 3008, - 3008, 3009, 3010, 3013, 3014, 3015, 3016, 3016, - 3017, 3018, 3100, 2896, 3019, 3019, 3020, 3021, - 3023, 3024, 3005, 3005, 3025, 3026, 2896, 3102, - 3101, 2896, 3103, 3103, 3104, 3105, 3107, 3108, - 3109, 3110, 3110, 3111, 3112, 3106, 2896, 2988, - 2988, 2989, 2990, 2993, 2994, 2995, 2996, 2996, - 2997, 2998, 3113, 2896, 2999, 2999, 3000, 3001, - 3003, 3004, 3005, 3005, 3006, 3007, 2896, 3115, - 3114, 2896, 3116, 3116, 3117, 3118, 3119, 3120, - 2896, 3122, 3121, 2896, 3123, 3123, 3124, 3125, - 3127, 3128, 3126, 2896, 2968, 2968, 2969, 2970, - 2973, 2974, 3129, 2896, 3131, 3130, 2896, 3133, - 3132, 2896, 3135, 3134, 2896, 3136, 3136, 3137, - 3138, 3139, 3140, 2896, 3142, 3141, 2896, 3143, - 3143, 3144, 3145, 3147, 3148, 3146, 2896, 2924, - 2924, 2925, 2926, 2929, 2930, 3149, 2896, 3151, - 3150, 2896, 3153, 3152, 2896, 3154, 2688, 3155, - 3155, 3156, 3157, 3159, 3160, 3158, 2688, 3161, - 3161, 3162, 3163, 3165, 3166, 3164, 2688, 3167, - 3167, 3168, 3169, 3171, 3172, 3170, 2688, 3173, - 3173, 3174, 3175, 3177, 3178, 3176, 2688, 3179, - 3179, 3180, 3181, 3183, 3184, 3182, 2688, 3185, - 3185, 3186, 3187, 3188, 3188, 3188, 3189, 3190, - 3188, 3188, 3188, 77, 3191, 3191, 3191, 3191, - 77, 3193, 3192, 77, 3195, 3194, 77, 3197, - 3196, 77, 3198, 2688, 3199, 3199, 3200, 3201, - 3203, 3204, 3202, 2688, 3205, 3205, 3206, 3207, - 3209, 3210, 3208, 2688, 3211, 3211, 3212, 3213, - 3215, 3216, 3214, 2688, 3218, 3218, 3219, 3220, - 3221, 3222, 3217, 3217, 3217, 77, 3223, 3223, - 3224, 3225, 3226, 3227, 77, 3229, 3229, 3230, - 3231, 3232, 3233, 3228, 3228, 3228, 77, 3234, - 3234, 3235, 3236, 3237, 3238, 77, 3240, 3240, - 3241, 3242, 3243, 3244, 3239, 3239, 3239, 77, - 3245, 3245, 3246, 3247, 3248, 3249, 77, 3250, - 3250, 3251, 3252, 3253, 3253, 3253, 3254, 3255, - 3253, 3253, 3253, 77, 3256, 3256, 3256, 3256, - 77, 3258, 3257, 77, 3260, 3259, 77, 3262, - 3261, 77, 3264, 3263, 77, 3266, 3265, 77, - 3267, 3267, 3267, 77, 3268, 3268, 3269, 3270, - 3271, 3272, 77, 3268, 3268, 3269, 3270, 3271, - 3272, 3273, 2688, 3274, 3274, 3275, 3276, 3278, - 3279, 3277, 2688, 3280, 3280, 3281, 3282, 3284, - 3285, 3283, 3283, 3283, 77, 3286, 3286, 3287, - 3288, 3289, 3290, 77, 3286, 3286, 3287, 3288, - 3291, 3289, 3290, 3291, 3291, 3291, 77, 3292, - 3292, 77, 3294, 3293, 77, 3296, 3295, 77, - 3298, 3297, 77, 3300, 3300, 3301, 3302, 3303, - 3304, 3305, 3306, 3307, 3308, 3308, 3309, 3310, - 3299, 3311, 3312, 3299, 3313, 3299, 3315, 3315, - 3314, 3317, 3316, 3314, 3318, 3299, 3319, 3319, - 3320, 3321, 3323, 3324, 3325, 3325, 3326, 3327, - 3322, 3299, 3329, 3328, 77, 3330, 3299, 3331, - 3331, 3331, 3331, 3314, 3333, 3332, 3332, 3332, - 3314, 3334, 2688, 3335, 3335, 3336, 3337, 3339, - 3340, 3338, 2688, 3341, 3341, 3342, 3343, 3345, - 3346, 3344, 3344, 3344, 77, 3347, 3347, 3348, - 3349, 3350, 3351, 77, 3347, 3347, 3348, 3349, - 3350, 3351, 3352, 2688, 3353, 3353, 3354, 3355, - 3357, 3358, 3356, 2688, 3360, 3360, 3361, 3362, - 3364, 3365, 3363, 3363, 3363, 3359, 3366, 3366, - 3366, 3359, 3367, 3367, 3368, 3369, 3370, 3371, - 3372, 3372, 3373, 3374, 3363, 3363, 3363, 3359, - 3376, 3375, 3359, 3378, 3377, 77, 3380, 3379, - 77, 3382, 3381, 77, 3383, 2688, 3384, 3384, - 3385, 3386, 3388, 3389, 3387, 2688, 3390, 3390, - 3391, 3392, 3394, 3395, 3393, 2688, 3396, 3396, - 3397, 3398, 3400, 3401, 3399, 2688, 3402, 3402, - 3403, 3404, 3406, 3407, 3405, 3405, 3405, 3359, - 3408, 3408, 3408, 3359, 3409, 3409, 3410, 3411, - 3412, 3413, 3414, 3414, 3415, 3416, 3405, 3405, - 3405, 3359, 3418, 3417, 3359, 3420, 3419, 77, - 3422, 3421, 77, 3423, 2688, 3424, 3424, 3425, - 3426, 3428, 3429, 3427, 2688, 3431, 3431, 3432, - 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3430, - 3440, 3440, 3441, 3442, 3443, 3444, 3430, 3440, - 3440, 3441, 3442, 3443, 3444, 3446, 3445, 3447, - 3447, 3448, 3449, 3451, 3452, 3450, 3445, 3453, - 3453, 3454, 3455, 3456, 3457, 3458, 3430, 3460, - 3460, 3461, 3462, 3463, 3463, 3464, 3465, 3466, - 3466, 3467, 3468, 3469, 3469, 3469, 3469, 3470, - 3471, 3469, 3469, 3472, 3473, 3474, 3475, 3469, - 3469, 3476, 3477, 3478, 3479, 3469, 3469, 3480, - 3481, 3459, 3460, 3460, 3461, 3462, 3483, 3470, - 3471, 3483, 3483, 3483, 3482, 3469, 3469, 3482, - 3485, 3484, 3482, 3463, 3463, 3464, 3465, 3469, - 3469, 3469, 3469, 3474, 3475, 3469, 3469, 3476, - 3477, 3482, 3487, 3486, 3482, 3483, 3460, 3460, - 3461, 3462, 3463, 3463, 3464, 3465, 3466, 3466, - 3467, 3468, 3469, 3469, 3469, 3469, 3470, 3471, - 3469, 3469, 3472, 3473, 3474, 3475, 3469, 3469, - 3476, 3477, 3478, 3479, 3469, 3469, 3480, 3481, - 3483, 3483, 3483, 3482, 3485, 3487, 3489, 3484, - 3486, 3488, 3482, 3491, 3490, 3430, 3493, 3492, - 3430, 3494, 3494, 3495, 3496, 3497, 3498, 3430, - 3494, 3494, 3495, 3496, 3497, 3498, 3499, 3445, - 3500, 3500, 3501, 3502, 3504, 3505, 3503, 3445, - 3507, 3507, 3508, 3509, 3510, 3511, 3512, 3510, - 3506, 3514, 3515, 3515, 3516, 3517, 3518, 3518, - 3519, 3520, 3521, 3521, 3522, 3523, 3524, 3524, - 3524, 3524, 3525, 3526, 3524, 3524, 3527, 3528, - 3529, 3530, 3524, 3524, 3531, 3532, 3533, 3534, - 3524, 3524, 3535, 3536, 3514, 3513, 3538, 3537, - 3430, 3540, 3539, 3430, 3541, 3541, 3542, 3543, - 3544, 3545, 3430, 3541, 3541, 3542, 3543, 3544, - 3545, 3546, 3445, 3547, 3547, 3548, 3549, 3551, - 3552, 3550, 3445, 3553, 3553, 3554, 3555, 3556, - 3557, 3558, 3556, 3556, 3556, 3506, 3559, 3560, - 3560, 3561, 3562, 3563, 3563, 3564, 3565, 3566, - 3566, 3567, 3568, 3569, 3569, 3569, 3569, 3570, - 3571, 3569, 3569, 3572, 3573, 3574, 3575, 3569, - 3569, 3576, 3577, 3578, 3579, 3569, 3569, 3580, - 3581, 3559, 3559, 3559, 3513, 3583, 3582, 3430, - 3585, 3584, 3430, 3586, 3586, 3587, 3588, 3589, - 3590, 3430, 3586, 3586, 3587, 3588, 3589, 3590, - 3591, 3445, 3592, 3592, 3593, 3594, 3596, 3597, - 3595, 3445, 3598, 3598, 3599, 3600, 3601, 3601, - 3601, 3602, 3603, 3601, 3601, 3601, 3430, 3604, - 3604, 3605, 3606, 3607, 3607, 3608, 3609, 3610, - 3610, 3611, 3612, 3613, 3613, 3613, 3613, 3614, - 3615, 3613, 3613, 3616, 3617, 3618, 3619, 3613, - 3613, 3620, 3621, 3622, 3623, 3613, 3613, 3624, - 3625, 3459, 3627, 3626, 3430, 3629, 3628, 3430, - 3631, 3630, 77, 3632, 3632, 3632, 77, 3633, - 3633, 3634, 3635, 3636, 3637, 77, 3633, 3633, - 3634, 3635, 3636, 3637, 3638, 3638, 3638, 77, - 3639, 3639, 3640, 3641, 3642, 3643, 77, 3639, - 3639, 3640, 3641, 3642, 3643, 3644, 2688, 3645, - 3645, 3646, 3647, 3649, 3650, 3648, 2688, 3651, - 3651, 3652, 3653, 3655, 3656, 3654, 2688, 3657, - 3657, 3658, 3659, 3661, 3662, 3660, 2688, 3664, - 3664, 3665, 3666, 3668, 3669, 3667, 3663, 3670, - 3670, 3671, 3672, 3674, 3675, 3673, 3663, 3676, - 3676, 3677, 3678, 3680, 3681, 3679, 3663, 3682, - 3682, 3683, 3684, 3686, 3687, 3685, 3663, 3688, - 3688, 3689, 3690, 3692, 3693, 3691, 2688, 3694, - 3694, 3695, 3696, 3698, 3699, 3697, 2688, 3700, - 3700, 3701, 3702, 3703, 3703, 3703, 3704, 3705, - 3703, 3703, 3703, 77, 3706, 3706, 3707, 3708, - 3709, 3710, 77, 3711, 3711, 3712, 3713, 3714, - 3715, 3716, 3714, 3714, 3714, 77, 3717, 3717, - 77, 3719, 3718, 77, 3721, 3720, 77, 3723, - 3722, 77, 3725, 3724, 77, 3727, 3726, 77, - 3729, 3728, 77, 3731, 3730, 77, 3733, 3732, - 77, 3734, 3734, 3734, 3734, 3734, 3734, 77, - 3735, 3735, 3735, 3735, 77, 3736, 3736, 3736, - 3736, 77, 3737, 2688, 3738, 3738, 3739, 3740, - 3742, 3743, 3741, 2688, 3744, 3744, 3745, 3746, - 3748, 3749, 3747, 2688, 3750, 3750, 3751, 3752, - 3754, 3755, 3753, 2688, 3756, 3756, 3757, 3758, - 3760, 3761, 3759, 3759, 3759, 77, 3762, 3762, - 3763, 3764, 3765, 3766, 77, 3762, 3762, 3763, - 3764, 3767, 3765, 3766, 3767, 3767, 3767, 77, - 3768, 3768, 77, 3770, 3769, 77, 3772, 3771, - 77, 3774, 3773, 77, 3775, 3775, 3775, 3775, - 77, 3776, 3776, 77, 3777, 2688, 3778, 3778, - 3779, 3780, 3782, 3783, 3781, 2688, 3784, 3784, - 3785, 3786, 3788, 3789, 3787, 2688, 3790, 3790, - 3791, 3792, 3794, 3795, 3793, 2688, 3796, 3796, - 3797, 3798, 3800, 3801, 3799, 2688, 3802, 3802, - 3803, 3804, 3806, 3807, 3805, 2688, 3808, 3808, - 3809, 3810, 3811, 3813, 3814, 3812, 3812, 3812, - 3359, 3815, 3815, 3816, 3817, 3818, 3819, 3359, - 3821, 3821, 3822, 3823, 3825, 3826, 3824, 3824, - 3824, 3820, 3827, 3827, 3827, 3820, 3829, 3828, - 3828, 3828, 3820, 3830, 3830, 3830, 3820, 3832, - 3831, 3831, 3831, 3820, 3834, 3833, 3833, 3833, - 3820, 3835, 3835, 3835, 3820, 3837, 3836, 3836, - 3836, 3820, 3838, 3838, 3838, 3838, 3839, 3839, - 3839, 3820, 3840, 3840, 3840, 3840, 77, 3841, - 3820, 3837, 3820, 3834, 3820, 3842, 3820, 3832, - 3820, 3844, 3843, 77, 3845, 3845, 3845, 3359, - 3815, 3815, 3816, 3817, 3818, 3819, 3846, 3846, - 3846, 3359, 3848, 3847, 77, 3850, 3849, 77, - 3852, 3851, 77, 3853, 2688, 3854, 3854, 3855, - 3856, 3858, 3859, 3857, 2688, 3860, 3860, 3861, - 3862, 3864, 3865, 3863, 2688, 3866, 3866, 3867, - 3868, 3870, 3871, 3869, 2688, 3872, 3872, 3873, - 3874, 3876, 3877, 3875, 2688, 3878, 3878, 3879, - 3880, 3882, 3883, 3881, 2688, 3884, 3884, 3885, - 3886, 3887, 3889, 3890, 3888, 3888, 3888, 3359, - 3891, 3891, 3891, 3891, 3359, 3892, 3892, 3892, - 3359, 3891, 3891, 3891, 3891, 3893, 3893, 3893, - 3359, 3895, 3894, 77, 3897, 3896, 77, 3899, - 3898, 77, 3900, 2688, 3901, 3901, 3902, 3903, - 3905, 3906, 3904, 2688, 3907, 3907, 3908, 3909, - 3911, 3912, 3910, 2688, 3913, 3913, 3914, 3915, - 3917, 3918, 3916, 2688, 3919, 3919, 3920, 3921, - 3923, 3924, 3922, 2688, 3925, 3925, 3926, 3927, - 3929, 3930, 3928, 2688, 3931, 3931, 3932, 3933, - 3935, 3936, 3934, 3934, 3934, 3359, 3937, 3937, - 3937, 3359, 3938, 3938, 3939, 3940, 3941, 3942, - 3943, 3943, 3944, 3945, 3934, 3934, 3934, 3359, - 3947, 3946, 3359, 3949, 3948, 77, 3951, 3950, - 77, 3953, 3952, 77, 3954, 2688, 3955, 3955, - 3956, 3957, 3959, 3960, 3958, 2688, 3961, 3961, - 3962, 3963, 3965, 3966, 3964, 2688, 3967, 3967, - 3967, 3967, 3968, 2688, 3969, 3969, 3969, 3969, - 77, 3971, 3970, 77, 3972, 2688, 3973, 3973, - 3974, 3975, 3977, 3978, 3976, 2688, 3979, 3979, - 3980, 3981, 3983, 3984, 3982, 2688, 3985, 3985, - 3986, 3987, 3989, 3990, 3988, 2688, 3991, 3991, - 3992, 3993, 3995, 3996, 3994, 2688, 3997, 3997, - 3998, 3999, 4001, 4002, 4000, 2688, 4003, 4003, - 4004, 4005, 4007, 4008, 4006, 4006, 4006, 3359, - 4009, 4009, 4009, 3359, 4010, 4010, 4011, 4012, - 4013, 4014, 4015, 4015, 4016, 4017, 4006, 4006, - 4006, 3359, 4019, 4018, 3359, 4021, 4020, 77, - 4023, 4022, 77, 4025, 4024, 77, 4026, 2688, - 4027, 4027, 4028, 4029, 4031, 4032, 4030, 2688, - 4033, 4033, 4034, 4035, 4036, 4037, 4038, 4036, - 2665, 4039, 4040, 4039, 4039, 4039, 4040, 2665, - 4042, 4041, 77, 4043, 2688, 4044, 4044, 4045, - 4046, 4048, 4049, 4047, 2688, 4050, 4050, 4051, - 4052, 4054, 4055, 4053, 4053, 4053, 3359, 4056, - 4056, 4056, 3359, 4057, 4057, 4057, 3359, 4058, - 4058, 4058, 3359, 4060, 4059, 4061, 4061, 4061, - 3359, 4062, 4062, 4062, 3359, 4063, 4063, 4063, - 3359, 4064, 4064, 4064, 3359, 4066, 4060, 4066, - 4066, 4066, 4065, 4068, 4067, 77, 4069, 4069, - 4069, 3359, 4070, 4070, 4070, 3359, 4072, 4071, - 4073, 4073, 4073, 3359, 4074, 4074, 4074, 3359, - 4075, 4072, 4075, 4075, 4075, 4071, 4076, 4076, - 4076, 3359, 4077, 4077, 4077, 3359, 4078, 4071, - 4079, 4079, 4079, 3359, 4080, 4080, 4080, 3359, - 4081, 4078, 4081, 4081, 4081, 4071, 4082, 2688, - 4083, 4083, 4084, 4085, 4087, 4088, 4086, 2688, - 4089, 4089, 4090, 4091, 4093, 4094, 4092, 2688, - 4095, 4095, 4096, 4097, 4099, 4100, 4098, 2688, - 4102, 4102, 4103, 4104, 4105, 4106, 4101, 4101, - 4101, 77, 4107, 4107, 4107, 4107, 77, 4109, - 4108, 77, 4111, 4110, 77, 4112, 2688, 4113, - 4113, 4114, 4115, 4117, 4118, 4116, 2688, 4120, - 4120, 4121, 4122, 4123, 4124, 4119, 4119, 4119, - 77, 4125, 4125, 4126, 4127, 4128, 4129, 77, - 4131, 4131, 4132, 4133, 4134, 4135, 4130, 4130, - 4130, 77, 4136, 4136, 4136, 4136, 77, 4138, - 4137, 77, 4140, 4139, 77, 4141, 2688, 4142, - 4142, 4143, 4144, 4146, 4147, 4145, 2688, 4148, - 4148, 4149, 4150, 4151, 4151, 4151, 4152, 4153, - 4151, 4151, 4151, 77, 4154, 4154, 4154, 4154, - 77, 4155, 4155, 4155, 4155, 77, 4157, 4156, - 77, 4158, 4158, 4158, 77, 4159, 4159, 4160, - 4161, 4162, 4163, 77, 4159, 4159, 4160, 4161, - 4162, 4163, 4164, 4164, 4164, 77, 4165, 4165, - 4166, 4167, 4168, 4169, 77, 4165, 4165, 4166, - 4167, 4168, 4169, 4170, 2688, 4171, 4171, 4172, - 4173, 4175, 4176, 4174, 2688, 4177, 4177, 4178, - 4179, 4180, 4180, 4180, 4181, 4182, 4180, 4180, - 4180, 77, 4183, 4183, 4183, 4183, 77, 4185, - 4184, 77, 4187, 4186, 77, 4189, 4188, 77, - 4191, 4191, 4192, 4193, 4194, 4195, 4195, 4195, - 4196, 4197, 4198, 4199, 4195, 4195, 4195, 4190, - 4200, 4200, 4201, 4202, 4203, 4204, 75, 4205, - 4204, 4196, 4197, 4206, 4207, 4208, 4209, 4210, - 4211, 75, 75, 4204, 75, 4204, 75, 4204, - 75, 914, 4213, 4213, 4192, 4214, 4215, 4195, - 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, - 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, - 4232, 4233, 4195, 4195, 4216, 4217, 4218, 4219, - 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, - 4228, 4229, 4230, 4231, 4232, 4233, 4196, 4197, - 4234, 4235, 4195, 4195, 4195, 4212, 4213, 4213, - 4192, 4214, 4215, 4195, 4238, 4239, 4240, 4241, - 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, - 4250, 4251, 4252, 4253, 4254, 4255, 4195, 4195, - 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, - 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, - 4254, 4255, 4196, 4197, 4234, 4235, 4195, 4237, - 4195, 4195, 4236, 4257, 4257, 4258, 4259, 4260, - 4261, 4261, 4261, 4262, 4263, 4264, 4265, 4261, - 4261, 4261, 4256, 4191, 4191, 4192, 4266, 4267, - 4195, 4238, 4239, 4240, 4241, 4242, 4243, 4244, - 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, - 4253, 4254, 4255, 4195, 4195, 4238, 4239, 4240, - 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, - 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4196, - 4197, 4268, 4269, 4195, 4237, 4195, 4195, 4236, - 4270, 4270, 4192, 4271, 4272, 4195, 4195, 4195, - 89, 90, 4273, 4274, 4195, 4195, 4195, 914, - 4275, 4275, 4201, 4276, 4277, 4204, 75, 4205, - 4204, 89, 90, 4273, 4278, 107, 108, 4273, - 4279, 75, 75, 4204, 75, 4204, 75, 4204, - 75, 914, 4200, 4200, 4201, 4202, 4203, 4204, - 75, 4282, 4283, 4284, 4285, 4286, 4287, 4288, - 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, - 4297, 4298, 4299, 4205, 4204, 4282, 4283, 4284, - 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, - 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4196, - 4197, 4206, 4207, 4208, 4209, 4210, 4211, 75, - 75, 4204, 4281, 75, 4204, 75, 4204, 75, - 4280, 4275, 4275, 4201, 4276, 4277, 4204, 75, - 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, - 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, - 4298, 4299, 4205, 4204, 4282, 4283, 4284, 4285, - 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, - 4294, 4295, 4296, 4297, 4298, 4299, 89, 90, - 4300, 4278, 107, 108, 4300, 4279, 75, 75, - 4204, 4281, 75, 4204, 75, 4204, 75, 4280, - 821, 821, 821, 821, 1079, 1080, 1079, 1082, - 1079, 1080, 1081, 1080, 1075, 821, 821, 821, - 1237, 1237, 1238, 1239, 1206, 1207, 1208, 1206, - 1240, 1241, 1206, 1206, 1206, 1212, 821, 1252, - 1252, 1253, 1254, 1247, 1255, 1256, 1257, 1257, - 1258, 1259, 1247, 1247, 1247, 1246, 1261, 1260, - 1246, 821, 821, 1502, 1502, 1503, 1504, 1505, - 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, - 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, - 1522, 1505, 1506, 1507, 1508, 1509, 1510, 1511, - 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, - 1520, 1521, 1522, 1523, 1524, 1525, 1525, 1526, - 1527, 1493, 1550, 1549, 1493, 821, 2127, 2127, - 2128, 2129, 2130, 2131, 2132, 2132, 2133, 2134, - 2123, 2123, 2123, 2119, 2136, 2135, 2119, 2155, - 2155, 2156, 2157, 2159, 2160, 2158, 2158, 2158, - 2119, 2105, 2162, 2162, 2163, 2164, 2165, 2166, - 2167, 2167, 2168, 2169, 2158, 2158, 2158, 2119, - 2171, 2170, 2119, 2173, 2172, 2105, 821, 821, - 2257, 2257, 2258, 2259, 2260, 2261, 2262, 2263, - 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, - 2271, 2272, 2273, 2248, 2289, 2288, 2248, 821, - 821, 821, 821, 821, 821, 821, 821, 821, - 821, 2883, 2883, 2884, 2885, 2886, 2887, 2888, - 2888, 2889, 2890, 2882, 2882, 2882, 2873, 2892, - 2891, 2873, 821, 821, 3056, 3056, 3057, 3058, - 3059, 3060, 3005, 3005, 3061, 3062, 2896, 3064, - 3063, 2896, 3038, 3038, 3039, 3040, 3042, 3043, - 3005, 3005, 3044, 3045, 3041, 2896, 3076, 3075, - 2896, 3019, 3019, 3020, 3021, 3023, 3024, 3005, - 3005, 3025, 3026, 3022, 2896, 3089, 3088, 2896, - 2999, 2999, 3000, 3001, 3003, 3004, 3005, 3005, - 3006, 3007, 3002, 2896, 3102, 3101, 2896, 821, - 821, 821, 821, 3300, 3300, 3301, 3302, 3303, - 3304, 3305, 3306, 3307, 3308, 3308, 3309, 3310, - 3299, 3329, 3328, 77, 821, 3367, 3367, 3368, - 3369, 3370, 3371, 3372, 3372, 3373, 3374, 3363, - 3363, 3363, 3359, 3376, 3375, 3359, 821, 3409, - 3409, 3410, 3411, 3412, 3413, 3414, 3414, 3415, - 3416, 3405, 3405, 3405, 3359, 3418, 3417, 3359, - 821, 3463, 3463, 3464, 3465, 3469, 3469, 3469, - 3469, 3474, 3475, 3469, 3469, 3476, 3477, 3482, - 3487, 3486, 3482, 3460, 3460, 3461, 3462, 3483, - 3470, 3471, 3483, 3483, 3483, 3482, 3485, 3484, - 3482, 3483, 3460, 3460, 3461, 3462, 3463, 3463, - 3464, 3465, 3466, 3466, 3467, 3468, 3469, 3469, - 3469, 3469, 3470, 3471, 3469, 3469, 3472, 3473, - 3474, 3475, 3469, 3469, 3476, 3477, 3478, 3479, - 3469, 3469, 3480, 3481, 3483, 3483, 3483, 3482, - 3485, 3487, 3489, 3484, 3486, 3488, 3482, 821, - 821, 821, 821, 821, 821, 821, 3938, 3938, - 3939, 3940, 3941, 3942, 3943, 3943, 3944, 3945, - 3934, 3934, 3934, 3359, 3947, 3946, 3359, 821, - 821, 4010, 4010, 4011, 4012, 4013, 4014, 4015, - 4015, 4016, 4017, 4006, 4006, 4006, 3359, 4019, - 4018, 3359, 821, 821, 821, 821, 821, 821, - 821, 821, 0 + 140, 141, 142, 81, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 90, 91, + 956, 1043, 108, 109, 956, 1044, 76, 76, + 124, 76, 121, 87, 90, 87, 88, 89, + 91, 1045, 959, 1045, 1046, 1047, 970, 1038, + 86, 93, 96, 93, 94, 95, 97, 1048, + 888, 1048, 1049, 1050, 974, 1038, 86, 811, + 811, 812, 813, 161, 162, 163, 164, 165, + 161, 162, 163, 164, 165, 814, 815, 1051, + 811, 811, 812, 813, 237, 238, 239, 237, + 238, 239, 814, 815, 1051, 811, 811, 812, + 813, 293, 293, 814, 815, 1051, 811, 811, + 812, 813, 315, 316, 315, 316, 814, 815, + 1051, 811, 811, 812, 813, 741, 340, 741, + 340, 814, 815, 1051, 811, 811, 812, 813, + 383, 384, 383, 384, 814, 815, 1051, 811, + 811, 812, 813, 402, 403, 404, 405, 404, + 405, 814, 815, 1051, 811, 811, 812, 813, + 441, 442, 441, 442, 814, 815, 1051, 811, + 811, 812, 813, 462, 463, 464, 462, 463, + 464, 814, 815, 1051, 811, 811, 812, 813, + 525, 525, 814, 815, 1051, 811, 811, 812, + 813, 542, 542, 814, 815, 1051, 811, 811, + 812, 813, 552, 553, 554, 555, 552, 553, + 554, 555, 814, 815, 1051, 811, 811, 812, + 813, 596, 597, 598, 599, 600, 601, 596, + 597, 598, 599, 600, 601, 814, 815, 1051, + 811, 811, 812, 813, 662, 663, 664, 662, + 663, 664, 814, 815, 1051, 811, 811, 812, + 813, 698, 698, 814, 815, 1051, 811, 811, + 812, 813, 708, 708, 814, 815, 1051, 811, + 811, 812, 813, 721, 721, 814, 815, 1051, + 798, 1053, 797, 1052, 92, 798, 1055, 797, + 1054, 155, 811, 811, 812, 813, 339, 340, + 339, 340, 814, 815, 1051, 99, 1057, 98, + 1056, 155, 1059, 1060, 1061, 1058, 1058, 1058, + 822, 1063, 1062, 1065, 1064, 1067, 1068, 1069, + 1070, 1067, 1067, 1067, 1067, 1066, 1071, 1072, + 1073, 1071, 1074, 1072, 1071, 1071, 1072, 1072, + 1072, 1066, 1075, 1076, 1076, 1075, 1077, 1076, + 1075, 1075, 1076, 1076, 1076, 1066, 1078, 1072, + 1080, 1079, 1081, 1079, 1082, 1083, 1084, 1082, + 1085, 1083, 1082, 1082, 1083, 1083, 1083, 1079, + 1075, 1075, 1075, 1075, 1066, 1086, 1086, 1086, + 1086, 1066, 1089, 1090, 1088, 1088, 1087, 1091, + 1092, 1091, 1094, 1091, 1092, 1093, 1092, 1087, + 1088, 1096, 1088, 1095, 1097, 1095, 1098, 1095, + 1099, 1100, 1099, 1102, 1099, 1100, 1101, 1100, + 1095, 1103, 1103, 1105, 1103, 1106, 1103, 1104, + 1087, 1107, 1107, 1109, 1107, 1110, 1107, 1108, + 1087, 1112, 1112, 1112, 1112, 1111, 1104, 1113, + 1104, 1095, 1114, 1095, 1115, 1095, 1116, 1116, + 1118, 1116, 1119, 1116, 1117, 1095, 1121, 1121, + 1122, 1123, 1124, 1125, 1120, 1121, 1121, 1122, + 1123, 1124, 1125, 1127, 1126, 1129, 1129, 1130, + 1131, 1133, 1134, 1135, 1136, 1137, 1133, 1134, + 1135, 1136, 1137, 1138, 1139, 1138, 1139, 1132, + 1128, 1141, 1141, 1142, 1143, 1144, 1145, 1144, + 1145, 1140, 1147, 1146, 1129, 1129, 1130, 1131, + 1138, 1139, 1138, 1139, 1148, 1128, 1151, 1152, + 1153, 1154, 1155, 1151, 1152, 1153, 1154, 1155, + 1150, 1149, 1156, 1156, 1157, 1158, 1160, 1161, + 1160, 1161, 1159, 1128, 1163, 1162, 1120, 1165, + 1165, 1166, 1167, 1168, 1169, 1164, 1165, 1165, + 1166, 1167, 1170, 1171, 1172, 1170, 1168, 1169, + 1170, 1170, 1170, 1164, 1173, 1174, 1175, 1173, + 1173, 1173, 1173, 1164, 1177, 1177, 1178, 1179, + 1180, 1180, 1181, 1180, 1182, 1183, 1182, 1183, + 1180, 1180, 1180, 1176, 1184, 1184, 1185, 1186, + 1187, 1188, 1187, 1188, 1176, 1190, 1189, 1191, + 1173, 1193, 1192, 1194, 1192, 1195, 1196, 1197, + 1195, 1195, 1195, 1195, 1192, 1177, 1177, 1178, + 1179, 1182, 1183, 1182, 1183, 1176, 1199, 1198, + 1164, 1200, 1200, 1201, 1202, 1203, 1204, 822, + 1200, 1200, 1201, 1202, 1203, 1204, 1205, 1205, + 1205, 1206, 1208, 1208, 1209, 1210, 1211, 1212, + 1211, 1213, 1207, 1215, 1215, 1216, 1217, 1218, + 1219, 1220, 1218, 1221, 1222, 1221, 1223, 1218, + 1218, 1218, 1214, 1225, 1226, 1227, 1225, 1225, + 1225, 1225, 1224, 1228, 1228, 1229, 1230, 1231, + 1231, 1232, 1231, 1233, 1234, 1233, 1234, 1231, + 1231, 1231, 1214, 1235, 1235, 1236, 1237, 1221, + 1222, 1221, 1222, 92, 1239, 1238, 1240, 1225, + 1242, 1241, 1243, 1241, 1244, 1245, 1246, 1244, + 1244, 1244, 1244, 1241, 1228, 1228, 1229, 1230, + 1233, 1234, 1233, 1234, 1214, 1239, 1248, 1238, + 1247, 92, 1249, 1249, 1250, 1251, 1218, 1219, + 1220, 1218, 1252, 1253, 1218, 1218, 1218, 1224, + 1255, 1254, 822, 1257, 1256, 822, 1259, 1259, + 1259, 1259, 1258, 1260, 1260, 1260, 1260, 1258, + 1261, 1262, 1261, 1261, 1261, 1258, 1263, 1264, + 1263, 1263, 1263, 1258, 1264, 1264, 1265, 1266, + 1259, 1267, 1268, 1269, 1269, 1270, 1271, 1259, + 1259, 1259, 1258, 1273, 1272, 1258, 1264, 1258, + 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, + 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, + 1291, 1292, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, + 1289, 1290, 1291, 1292, 1274, 1293, 1293, 1294, + 1295, 1296, 1297, 1294, 1295, 1296, 1297, 1293, + 1293, 1274, 1298, 1298, 1274, 1299, 1299, 1274, + 1300, 1300, 1300, 1300, 1274, 1301, 1301, 1274, + 1302, 1302, 1274, 1303, 1303, 1274, 1304, 1304, + 1304, 1304, 1274, 1305, 1305, 1274, 1306, 1306, + 1274, 1307, 1307, 1274, 1308, 1308, 1308, 1308, + 1274, 1309, 1309, 1274, 1310, 1310, 1310, 1310, + 1274, 1311, 1312, 1313, 1314, 1315, 1311, 1312, + 1313, 1314, 1315, 1274, 1316, 1316, 1274, 1317, + 1317, 1317, 1317, 1274, 1318, 1319, 1318, 1319, + 1274, 1320, 1320, 1274, 1321, 1321, 1274, 1322, + 1322, 1274, 1323, 1323, 1274, 1324, 1324, 1324, + 1324, 1274, 1325, 1325, 1325, 1325, 1274, 1326, + 1326, 1274, 1327, 1327, 1274, 1328, 1328, 1328, + 1328, 1274, 1329, 1329, 1274, 1330, 1330, 1274, + 1331, 1331, 1274, 1332, 1332, 1332, 1332, 1274, + 1333, 1333, 1274, 1334, 1334, 1274, 1335, 1335, + 1274, 1336, 1336, 1336, 1336, 1274, 1337, 1338, + 1339, 1337, 1338, 1339, 1274, 1340, 1340, 1274, + 1341, 1341, 1274, 1342, 1342, 1274, 1343, 1343, + 1343, 1343, 1274, 1344, 1345, 1344, 1345, 1274, + 1346, 1346, 1274, 1347, 1347, 1274, 1348, 1348, + 1348, 1348, 1274, 1349, 1349, 1274, 1350, 1350, + 1274, 1351, 1351, 1274, 1352, 1352, 1352, 1352, + 1274, 1353, 1353, 1354, 1354, 1353, 1353, 1274, + 1355, 1355, 1274, 1356, 1356, 1274, 1357, 1357, + 1357, 1357, 1274, 1358, 1358, 1274, 1359, 1359, + 1274, 1360, 1361, 1274, 1362, 1274, 1363, 1363, + 1363, 1363, 1274, 1364, 1274, 1365, 1365, 1365, + 1365, 1274, 1366, 1367, 1366, 1367, 1274, 1368, + 1368, 1274, 1369, 1369, 1274, 1370, 1370, 1274, + 1371, 1371, 1371, 1371, 1274, 1372, 1372, 1274, + 1373, 1373, 1274, 1374, 1374, 1274, 1375, 1375, + 1375, 1375, 1274, 1376, 1376, 1274, 1377, 1377, + 1274, 1378, 1378, 1274, 1379, 1379, 1274, 1380, + 1380, 1274, 1381, 1381, 1274, 1382, 1382, 1274, + 1383, 1383, 1383, 1383, 1274, 1384, 1385, 1384, + 1385, 1274, 1386, 1386, 1274, 1387, 1387, 1387, + 1387, 1274, 1388, 1388, 1388, 1388, 1274, 1389, + 1390, 1391, 1392, 1391, 1392, 1274, 1393, 1274, + 1394, 1394, 1394, 1394, 1274, 1395, 1274, 1396, + 1396, 1396, 1396, 1274, 1397, 1397, 1274, 1398, + 1398, 1398, 1398, 1274, 1399, 1399, 1399, 1399, + 1274, 1400, 1401, 1400, 1401, 1274, 1402, 1402, + 1274, 1403, 1403, 1274, 1404, 1404, 1274, 1405, + 1405, 1405, 1405, 1274, 1406, 1406, 1406, 1406, + 1274, 1407, 1408, 1409, 1407, 1408, 1409, 1274, + 1410, 1410, 1274, 1411, 1411, 1274, 1412, 1412, + 1274, 1413, 1413, 1413, 1413, 1274, 1414, 1414, + 1274, 1415, 1415, 1415, 1415, 1274, 1416, 1416, + 1417, 1417, 1416, 1416, 1274, 1418, 1418, 1274, + 1419, 1420, 1419, 1419, 1419, 1274, 1421, 1421, + 1422, 1422, 1421, 1421, 1274, 1423, 1423, 1274, + 1424, 1424, 1274, 1425, 1425, 1274, 1426, 1426, + 1274, 1427, 1427, 1427, 1427, 1274, 1428, 1428, + 1274, 1429, 1429, 1274, 1430, 1430, 1274, 1431, + 1431, 1274, 1432, 1432, 1274, 1433, 1433, 1274, + 1434, 1434, 1274, 1435, 1435, 1274, 1436, 1436, + 1274, 1437, 1437, 1437, 1437, 1274, 1438, 1438, + 1274, 1439, 1439, 1274, 1440, 1440, 1440, 1440, + 1274, 1441, 1442, 1443, 1444, 1441, 1442, 1443, + 1444, 1274, 1445, 1445, 1274, 1446, 1446, 1274, + 1447, 1447, 1274, 1448, 1448, 1274, 1449, 1449, + 1274, 1450, 1450, 1450, 1450, 1274, 1451, 1451, + 1451, 1451, 1274, 1452, 1452, 1274, 1453, 1453, + 1274, 1454, 1454, 1274, 1455, 1455, 1455, 1455, + 1274, 1456, 1456, 1456, 1456, 1274, 1457, 1458, + 1459, 1460, 1461, 1462, 1457, 1458, 1459, 1460, + 1461, 1462, 1274, 1463, 1463, 1274, 1464, 1464, + 1274, 1465, 1465, 1274, 1466, 1466, 1274, 1467, + 1467, 1467, 1467, 1274, 1468, 1468, 1274, 1469, + 1469, 1469, 1469, 1274, 1470, 1470, 1274, 1471, + 1471, 1471, 1471, 1274, 1472, 1472, 1274, 1473, + 1473, 1473, 1473, 1274, 1474, 1474, 1274, 1475, + 1475, 1274, 1476, 1476, 1274, 1477, 1477, 1477, + 1477, 1274, 1478, 1478, 1274, 1479, 1479, 1274, + 1480, 1480, 1480, 1480, 1274, 1481, 1482, 1483, + 1481, 1482, 1483, 1274, 1484, 1484, 1274, 1485, + 1485, 1274, 1486, 1486, 1486, 1486, 1274, 1487, + 1487, 1274, 1488, 1488, 1488, 1488, 1274, 1489, + 1489, 1274, 1490, 1490, 1274, 1492, 1491, 1493, + 1493, 1493, 1493, 1494, 1491, 1495, 1495, 1274, + 1496, 1496, 1274, 1497, 1497, 1497, 1497, 1274, + 1498, 1498, 1274, 1499, 1499, 1274, 1500, 1500, + 1274, 1501, 1501, 1274, 1502, 1502, 1274, 1503, + 1503, 1503, 1503, 1274, 1504, 1504, 1274, 1505, + 1505, 1274, 1506, 1506, 1274, 1507, 1507, 1274, + 1508, 1508, 1274, 1509, 1509, 1509, 1509, 1274, + 1511, 1511, 1512, 1513, 1514, 1515, 1516, 1516, + 1517, 1518, 1510, 1519, 1519, 1520, 1521, 1522, + 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, + 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, + 1539, 1522, 1523, 1524, 1525, 1526, 1527, 1528, + 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, + 1537, 1538, 1539, 1540, 1541, 1542, 1542, 1543, + 1544, 1510, 1545, 1545, 1546, 1547, 1548, 1549, + 1550, 1551, 1548, 1549, 1550, 1551, 1552, 1553, + 1554, 1554, 1555, 1556, 1510, 1557, 1557, 1510, + 1558, 1558, 1510, 1559, 1559, 1560, 1561, 1562, + 1563, 1564, 1564, 1565, 1566, 1510, 1568, 1567, + 1510, 1569, 1570, 1571, 1572, 1573, 1569, 1570, + 1571, 1572, 1573, 1510, 1574, 1574, 1510, 1575, + 1575, 1576, 1577, 1578, 1579, 1580, 1580, 1581, + 1582, 1510, 1583, 1584, 1583, 1584, 1510, 1585, + 1585, 1510, 1586, 1586, 1510, 1587, 1587, 1510, + 1588, 1588, 1510, 1589, 1589, 1590, 1591, 1592, + 1593, 1594, 1594, 1595, 1596, 1510, 1597, 1597, + 1598, 1599, 1600, 1601, 1602, 1602, 1603, 1604, + 1510, 1605, 1605, 1510, 1606, 1606, 1510, 1607, + 1607, 1608, 1609, 1610, 1611, 1612, 1612, 1613, + 1614, 1510, 1615, 1615, 1510, 1616, 1616, 1510, + 1617, 1617, 1510, 1618, 1618, 1619, 1620, 1621, + 1622, 1623, 1623, 1624, 1625, 1510, 1626, 1626, + 1510, 1627, 1627, 1510, 1628, 1628, 1510, 1629, + 1629, 1630, 1631, 1632, 1633, 1634, 1634, 1635, + 1636, 1510, 1637, 1638, 1639, 1637, 1638, 1639, + 1510, 1640, 1640, 1510, 1641, 1641, 1510, 1642, + 1642, 1510, 1643, 1643, 1644, 1645, 1646, 1647, + 1648, 1648, 1649, 1650, 1510, 1651, 1652, 1651, + 1652, 1510, 1653, 1653, 1510, 1654, 1654, 1510, + 1655, 1655, 1656, 1657, 1658, 1659, 1660, 1660, + 1661, 1662, 1510, 1663, 1663, 1510, 1664, 1664, + 1510, 1665, 1665, 1510, 1666, 1666, 1667, 1668, + 1669, 1670, 1671, 1671, 1672, 1673, 1510, 1674, + 1674, 1675, 1676, 1677, 1677, 1678, 1679, 1680, + 1680, 1681, 1682, 1510, 1683, 1683, 1510, 1684, + 1684, 1510, 1685, 1685, 1686, 1687, 1688, 1689, + 1690, 1690, 1691, 1692, 1510, 1693, 1693, 1510, + 1694, 1694, 1510, 1695, 1696, 1510, 1697, 1510, + 1698, 1698, 1699, 1700, 1701, 1702, 1703, 1703, + 1704, 1705, 1510, 1706, 1510, 1707, 1707, 1708, + 1709, 1710, 1711, 1712, 1712, 1713, 1714, 1510, + 1715, 1716, 1715, 1716, 1510, 1717, 1717, 1510, + 1718, 1718, 1510, 1719, 1719, 1510, 1720, 1720, + 1721, 1722, 1723, 1724, 1725, 1725, 1726, 1727, + 1510, 1728, 1728, 1510, 1729, 1729, 1510, 1730, + 1730, 1510, 1731, 1731, 1732, 1733, 1734, 1735, + 1736, 1736, 1737, 1738, 1510, 1739, 1739, 1510, + 1740, 1740, 1510, 1741, 1741, 1510, 1742, 1742, + 1510, 1743, 1743, 1510, 1744, 1744, 1510, 1745, + 1745, 1510, 1746, 1746, 1747, 1748, 1749, 1750, + 1751, 1751, 1752, 1753, 1510, 1754, 1755, 1754, + 1755, 1510, 1756, 1756, 1510, 1757, 1757, 1758, + 1759, 1760, 1761, 1762, 1762, 1763, 1764, 1510, + 1765, 1765, 1766, 1767, 1768, 1769, 1770, 1770, + 1771, 1772, 1510, 1773, 1774, 1775, 1776, 1775, + 1776, 1510, 1777, 1510, 1778, 1778, 1779, 1780, + 1781, 1782, 1783, 1783, 1784, 1785, 1510, 1786, + 1510, 1787, 1787, 1788, 1789, 1790, 1791, 1792, + 1792, 1793, 1794, 1510, 1795, 1795, 1510, 1796, + 1796, 1797, 1798, 1799, 1800, 1801, 1801, 1802, + 1803, 1510, 1804, 1804, 1805, 1806, 1807, 1808, + 1809, 1809, 1810, 1811, 1510, 1812, 1813, 1812, + 1813, 1510, 1814, 1814, 1510, 1815, 1815, 1510, + 1816, 1816, 1510, 1817, 1817, 1818, 1819, 1820, + 1821, 1822, 1822, 1823, 1824, 1510, 1825, 1825, + 1826, 1827, 1828, 1829, 1830, 1830, 1831, 1832, + 1510, 1833, 1834, 1835, 1833, 1834, 1835, 1510, + 1836, 1836, 1510, 1837, 1837, 1510, 1838, 1838, + 1510, 1839, 1839, 1840, 1841, 1842, 1843, 1844, + 1844, 1845, 1846, 1510, 1847, 1847, 1510, 1848, + 1848, 1849, 1850, 1851, 1852, 1853, 1853, 1854, + 1855, 1510, 1856, 1856, 1857, 1858, 1859, 1859, + 1860, 1861, 1862, 1862, 1863, 1864, 1510, 1865, + 1865, 1510, 1866, 1866, 1867, 1868, 1869, 1870, + 1871, 1872, 1872, 1873, 1874, 1510, 1875, 1875, + 1876, 1877, 1878, 1878, 1879, 1880, 1881, 1881, + 1882, 1883, 1510, 1884, 1884, 1510, 1885, 1885, + 1510, 1886, 1886, 1510, 1887, 1887, 1510, 1888, + 1888, 1889, 1890, 1891, 1892, 1893, 1893, 1894, + 1895, 1510, 1896, 1896, 1510, 1897, 1897, 1510, + 1898, 1898, 1510, 1899, 1899, 1510, 1900, 1900, + 1510, 1901, 1901, 1510, 1902, 1902, 1510, 1903, + 1903, 1510, 1904, 1904, 1510, 1905, 1905, 1906, + 1907, 1908, 1909, 1910, 1910, 1911, 1912, 1510, + 1913, 1913, 1510, 1914, 1914, 1510, 1915, 1915, + 1916, 1917, 1918, 1919, 1920, 1920, 1921, 1922, + 1510, 1923, 1924, 1925, 1926, 1923, 1924, 1925, + 1926, 1510, 1927, 1927, 1510, 1928, 1928, 1510, + 1929, 1929, 1510, 1930, 1930, 1510, 1931, 1931, + 1510, 1932, 1932, 1933, 1934, 1935, 1936, 1937, + 1937, 1938, 1939, 1510, 1940, 1940, 1941, 1942, + 1943, 1944, 1945, 1945, 1946, 1947, 1510, 1948, + 1948, 1510, 1949, 1949, 1510, 1950, 1950, 1510, + 1951, 1951, 1952, 1953, 1954, 1955, 1956, 1956, + 1957, 1958, 1510, 1959, 1959, 1960, 1961, 1962, + 1963, 1964, 1964, 1965, 1966, 1510, 1967, 1968, + 1969, 1970, 1971, 1972, 1967, 1968, 1969, 1970, + 1971, 1972, 1510, 1973, 1973, 1510, 1974, 1974, + 1510, 1975, 1975, 1510, 1976, 1976, 1510, 1977, + 1977, 1978, 1979, 1980, 1981, 1982, 1982, 1983, + 1984, 1510, 1985, 1985, 1510, 1986, 1986, 1987, + 1988, 1989, 1990, 1991, 1991, 1992, 1993, 1510, + 1994, 1994, 1510, 1995, 1995, 1996, 1997, 1998, + 1999, 2000, 2000, 2001, 2002, 1510, 2003, 2003, + 1510, 2004, 2004, 2005, 2006, 2007, 2008, 2009, + 2009, 2010, 2011, 1510, 2012, 2012, 1510, 2013, + 2013, 1510, 2014, 2014, 1510, 2015, 2015, 2016, + 2017, 2018, 2019, 2020, 2020, 2021, 2022, 1510, + 2023, 2023, 1510, 2024, 2024, 1510, 2025, 2025, + 2026, 2027, 2028, 2029, 2030, 2030, 2031, 2032, + 1510, 2033, 2034, 2035, 2033, 2034, 2035, 1510, + 2036, 2036, 1510, 2037, 2037, 1510, 2038, 2038, + 2039, 2040, 2041, 2042, 2043, 2043, 2044, 2045, + 1510, 2046, 2046, 1510, 2047, 2047, 2048, 2049, + 2050, 2051, 2052, 2052, 2053, 2054, 1510, 2055, + 2055, 1510, 2056, 2056, 1510, 2057, 1510, 2058, + 2058, 2059, 2060, 2062, 2063, 2064, 2064, 2065, + 2066, 2061, 1510, 2067, 2067, 1510, 2068, 2068, + 1510, 2069, 2069, 2070, 2071, 2072, 2073, 2074, + 2074, 2075, 2076, 1510, 2077, 2077, 1510, 2078, + 2078, 1510, 2079, 2079, 1510, 2080, 2080, 1510, + 2081, 2081, 1510, 2082, 2082, 2083, 2084, 2085, + 2086, 2087, 2087, 2088, 2089, 1510, 2090, 2090, + 1510, 2091, 2091, 1510, 2092, 2092, 1510, 2093, + 2093, 1510, 2094, 2094, 1510, 2095, 2095, 2096, + 2097, 2098, 2099, 2100, 2100, 2101, 2102, 1510, + 2103, 2103, 1510, 2104, 2104, 1510, 2105, 2105, + 1510, 2106, 2106, 2107, 2108, 2109, 2110, 2111, + 2111, 2112, 2113, 1510, 2114, 2114, 1510, 2115, + 2115, 1510, 2116, 2116, 1510, 2117, 2117, 2118, + 2119, 2120, 2121, 2122, 2122, 2123, 2124, 1510, + 2125, 2125, 1510, 2126, 2126, 2127, 2128, 2129, + 2130, 2131, 2131, 2132, 2133, 1510, 2135, 2135, + 2136, 2137, 2138, 2139, 2134, 2135, 2135, 2136, + 2137, 2138, 2139, 2141, 2140, 2142, 2142, 2143, + 2144, 2146, 2147, 2145, 2140, 2149, 2149, 2150, + 2151, 2153, 2154, 2152, 2152, 2152, 2148, 2155, + 2155, 2155, 2148, 2156, 2156, 2157, 2158, 2159, + 2160, 2161, 2161, 2162, 2163, 2152, 2152, 2152, + 2148, 2165, 2164, 2148, 2167, 2166, 2134, 2169, + 2168, 2134, 2170, 2170, 2171, 2172, 2173, 2174, + 2134, 2170, 2170, 2171, 2172, 2175, 2173, 2174, + 2176, 2140, 2177, 2177, 2178, 2179, 2181, 2181, + 2182, 2183, 2180, 2140, 2184, 2184, 2185, 2186, + 2188, 2189, 2187, 2187, 2187, 2148, 2190, 2190, + 2190, 2148, 2191, 2191, 2192, 2193, 2194, 2195, + 2196, 2196, 2197, 2198, 2187, 2187, 2187, 2148, + 2200, 2199, 2148, 2202, 2201, 2134, 2203, 2203, + 2204, 2205, 2206, 2207, 2180, 2140, 2209, 2208, + 2134, 2211, 2212, 2213, 2214, 2215, 2216, 2217, + 2218, 2210, 2219, 2210, 2220, 2210, 2221, 2210, + 2222, 2222, 2222, 2222, 2222, 2222, 2210, 2223, + 2210, 2224, 2210, 2225, 2210, 2226, 2210, 2227, + 2210, 2228, 2210, 2229, 2229, 2229, 2229, 2229, + 2229, 2210, 2230, 2210, 2231, 2210, 2232, 2232, + 2232, 2232, 2232, 2232, 2210, 2233, 2210, 2234, + 2210, 2235, 2236, 2210, 2237, 2210, 2238, 2210, + 2239, 2210, 2240, 2210, 2241, 2241, 2241, 2241, + 2241, 2241, 2210, 2242, 2210, 2243, 2210, 2244, + 2210, 2245, 2210, 2246, 2246, 2246, 2246, 2246, + 2246, 2210, 2247, 2210, 2248, 2210, 2250, 2249, + 2251, 2251, 2251, 2251, 2251, 2251, 2252, 2249, + 2253, 2210, 2254, 2210, 2255, 2210, 2256, 2210, + 2257, 2210, 2258, 2210, 2259, 2210, 2260, 2210, + 2261, 2210, 2262, 2210, 2263, 2210, 2264, 2210, + 2265, 2210, 2266, 2210, 2267, 2267, 2267, 2267, + 2267, 2267, 2210, 2268, 2210, 2269, 2210, 2270, + 2210, 2271, 2210, 2272, 2272, 2272, 2272, 2272, + 2272, 2210, 2273, 2210, 2274, 2210, 2275, 2210, + 2276, 2276, 2276, 2276, 2276, 2276, 2210, 2278, + 2278, 2279, 2280, 2281, 2282, 2283, 2283, 2284, + 2285, 2277, 2286, 2286, 2287, 2288, 2289, 2290, + 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, + 2299, 2300, 2300, 2301, 2302, 2277, 2303, 2277, + 2304, 2277, 2305, 2277, 2306, 2277, 2277, 2308, + 2277, 2277, 2277, 2307, 2309, 2309, 2310, 2311, + 2312, 2313, 2314, 2314, 2315, 2316, 2277, 2318, + 2317, 2277, 2319, 2277, 2320, 2277, 2321, 2277, + 2322, 2277, 2323, 2277, 2324, 2277, 2325, 2277, + 2277, 2327, 2277, 2277, 2277, 2326, 2328, 2328, + 2329, 2330, 2331, 2332, 2333, 2333, 2334, 2335, + 2277, 2328, 2328, 2329, 2330, 2331, 2332, 2333, + 2333, 2334, 2335, 2336, 2336, 2336, 2277, 2337, + 2277, 2338, 2338, 2339, 2340, 2341, 2342, 2343, + 2343, 2344, 2345, 2277, 2346, 2277, 2347, 2277, + 2348, 2277, 2349, 2350, 2350, 2350, 2350, 2277, + 2351, 2351, 2351, 2351, 2277, 2352, 2352, 2352, + 2352, 2277, 2353, 2354, 2353, 2353, 2353, 2277, + 2355, 2356, 2355, 2355, 2355, 2277, 2337, 2357, + 2357, 2357, 2357, 2277, 2356, 2277, 2358, 2358, + 2358, 2358, 2277, 2359, 2360, 2359, 2359, 2359, + 2277, 2361, 2362, 2361, 2361, 2361, 2277, 2328, + 2328, 2329, 2330, 2363, 2331, 2332, 2333, 2333, + 2334, 2335, 2363, 2363, 2363, 2277, 2362, 2277, + 2364, 2277, 2365, 2277, 2366, 2367, 2277, 2368, + 2277, 2369, 2277, 2370, 2277, 2371, 2277, 2372, + 2277, 2374, 2375, 2375, 2373, 2376, 2376, 2373, + 2377, 2378, 2379, 2379, 2373, 2380, 2380, 2373, + 2381, 2381, 2382, 2383, 2384, 2385, 2386, 2387, + 2388, 2388, 2389, 2390, 2385, 2373, 2391, 2391, + 2373, 2392, 2277, 2393, 2277, 2394, 2277, 2395, + 2277, 2396, 2277, 2397, 2398, 2398, 2398, 2398, + 2373, 2399, 2399, 2399, 2399, 2373, 2400, 2401, + 2402, 2402, 2402, 2402, 2373, 2403, 2403, 2403, + 2403, 2373, 2404, 2404, 2405, 2406, 2407, 2408, + 2409, 2410, 2411, 2411, 2412, 2413, 2408, 2408, + 2408, 2373, 2414, 2414, 2414, 2414, 2373, 2415, + 2277, 2416, 2277, 2418, 2417, 2419, 2419, 2420, + 2421, 2423, 2424, 2425, 2426, 2426, 2427, 2428, + 2422, 2417, 2277, 2277, 2277, 2277, 2326, 2429, + 2277, 2430, 2277, 2431, 2277, 2432, 2277, 2433, + 2277, 2434, 2277, 2435, 2277, 2436, 2277, 2437, + 2277, 2438, 2439, 2439, 2277, 2440, 2440, 2277, + 2441, 2442, 2277, 2443, 2443, 2277, 2444, 2444, + 2445, 2446, 2447, 2448, 2449, 2450, 2450, 2451, + 2452, 2277, 2453, 2453, 2277, 2454, 2277, 2455, + 2277, 2456, 2277, 2457, 2277, 2458, 2277, 2459, + 2277, 2460, 2277, 2461, 2277, 2462, 2277, 2463, + 2277, 2464, 2277, 2465, 2277, 2466, 2277, 2467, + 2277, 2468, 2468, 2469, 2470, 2471, 2472, 2473, + 2473, 2474, 2475, 2277, 2476, 2277, 2477, 2277, + 2478, 2277, 2479, 2277, 2480, 2480, 2481, 2482, + 2483, 2484, 2485, 2485, 2486, 2487, 2277, 2488, + 2277, 2489, 2277, 2490, 2277, 2491, 2277, 2492, + 2493, 2417, 2494, 2417, 2495, 2496, 2417, 2497, + 2497, 2498, 2499, 2501, 2502, 2503, 2503, 2504, + 2505, 2500, 2417, 2309, 2309, 2310, 2311, 2312, + 2313, 2314, 2314, 2315, 2316, 2506, 2506, 2506, + 2277, 2507, 2277, 2510, 2511, 2512, 2513, 2514, + 2510, 2511, 2512, 2513, 2514, 2509, 2508, 2515, + 2515, 2515, 2515, 2516, 2508, 2517, 2518, 2517, + 2518, 2508, 2519, 2519, 2519, 2519, 2508, 2520, + 2520, 2508, 2521, 2522, 2521, 2521, 2521, 2508, + 2523, 2523, 2508, 2524, 2524, 2508, 2525, 2525, + 2508, 2526, 2526, 2508, 2527, 2508, 2528, 2508, + 2529, 2529, 2508, 2530, 2530, 2508, 2531, 2531, + 2508, 2532, 2508, 2533, 2533, 2533, 2533, 2508, + 2534, 2535, 2534, 2535, 2508, 2536, 2537, 2536, + 2537, 2508, 2538, 2508, 2539, 2539, 2508, 2540, + 2540, 2508, 2541, 2541, 2508, 2542, 2542, 2508, + 2543, 2543, 2543, 2543, 2508, 2544, 2544, 2508, + 2545, 2545, 2508, 2546, 2546, 2508, 2547, 2548, + 2508, 2549, 2508, 2550, 2508, 2551, 2551, 2508, + 2552, 2552, 2508, 2553, 2553, 2508, 2554, 2508, + 2555, 2508, 2556, 2508, 2557, 2557, 2557, 2557, + 2508, 2558, 2508, 2559, 2508, 2560, 2560, 2508, + 2561, 2561, 2508, 2562, 2562, 2508, 2563, 2508, + 2564, 2508, 2565, 2508, 2566, 2566, 2566, 2566, + 2508, 2567, 2568, 2508, 2569, 2508, 2570, 2508, + 2571, 2508, 2572, 2508, 2573, 2573, 2573, 2573, + 2508, 2574, 2508, 2575, 2508, 2576, 2576, 2576, + 2576, 2508, 2577, 2577, 2508, 2578, 2578, 2508, + 2579, 2579, 2508, 2580, 2580, 2508, 2581, 2581, + 2508, 2582, 2582, 2508, 2583, 2583, 2508, 2584, + 2584, 2584, 2584, 2508, 2585, 2585, 2508, 2586, + 2586, 2508, 2587, 2587, 2508, 2588, 2588, 2508, + 2589, 2589, 2508, 2590, 2590, 2508, 2591, 2592, + 2591, 2592, 2508, 2593, 2593, 2508, 2594, 2594, + 2508, 2595, 2595, 2595, 2595, 2508, 2596, 2596, + 2508, 2597, 2597, 2508, 2598, 2598, 2598, 2598, + 2508, 2599, 2599, 2508, 2600, 2600, 2508, 2601, + 2602, 2601, 2602, 2508, 2603, 2603, 2508, 2604, + 2508, 2605, 2605, 2605, 2605, 2508, 2606, 2606, + 2508, 2607, 2607, 2508, 2608, 2609, 2610, 2508, + 2611, 2612, 2611, 2611, 2611, 2508, 2613, 2613, + 2508, 2614, 2614, 2508, 2615, 2615, 2508, 2616, + 2616, 2508, 2617, 2508, 2618, 2508, 2619, 2619, + 2508, 2620, 2620, 2508, 2621, 2621, 2508, 2622, + 2508, 2623, 2623, 2623, 2623, 2508, 2624, 2508, + 2625, 2508, 2626, 2626, 2626, 2626, 2508, 2627, + 2508, 2628, 2508, 2629, 2629, 2629, 2629, 2508, + 2632, 2633, 2634, 2635, 2636, 2637, 2632, 2633, + 2634, 2635, 2636, 2637, 2631, 2630, 2638, 2638, + 2638, 2638, 2639, 2630, 2640, 2640, 2630, 2641, + 2641, 2630, 2642, 2642, 2630, 2643, 2643, 2630, + 2644, 2644, 2630, 2645, 2645, 2645, 2645, 2630, + 2646, 2647, 2648, 2646, 2647, 2648, 2630, 2649, + 2649, 2630, 2650, 2650, 2630, 2651, 2651, 2630, + 2652, 2652, 2630, 2653, 2653, 2630, 2654, 2654, + 2654, 2654, 2630, 2655, 2656, 2655, 2656, 2630, + 2657, 2657, 2630, 2658, 2658, 2658, 2658, 2630, + 2659, 2659, 2630, 2660, 2660, 2630, 2661, 2661, + 2661, 2661, 2630, 2662, 2662, 2630, 2663, 2663, + 2630, 2664, 2664, 2630, 2665, 2665, 2665, 2665, + 2630, 2666, 2666, 2630, 2667, 2667, 2630, 2668, + 2668, 2668, 2668, 2630, 2669, 2670, 2669, 2670, + 2630, 2671, 2671, 2630, 2672, 2672, 2672, 2672, + 2630, 2673, 2673, 2630, 2674, 2674, 2630, 2675, + 2675, 2675, 2675, 2630, 2676, 2676, 2630, 2677, + 2677, 2630, 2678, 2678, 2630, 2679, 2679, 2679, + 2679, 2630, 2680, 2680, 2630, 2681, 2681, 2630, + 2682, 2682, 2682, 2682, 2630, 2685, 2685, 2684, + 2683, 2686, 2686, 2686, 2686, 2687, 2683, 2688, + 2688, 2683, 2689, 2689, 2683, 2690, 2690, 2683, + 2691, 2691, 2683, 2692, 2692, 2683, 2693, 2693, + 2693, 2693, 2683, 2695, 2695, 2694, 2696, 2697, + 2696, 2696, 2696, 2697, 2694, 2698, 2698, 2698, + 2698, 2698, 2698, 78, 2699, 2699, 2699, 2699, + 78, 2700, 2700, 2700, 2700, 2700, 2700, 78, + 2701, 2701, 2702, 2703, 2704, 2705, 78, 2706, + 2706, 2707, 2708, 2709, 2709, 2709, 2710, 2711, + 2709, 2709, 2709, 78, 2712, 2712, 2713, 2714, + 2715, 2716, 78, 2718, 2718, 2719, 2720, 2722, + 2723, 2721, 2717, 2724, 2724, 2725, 2726, 2728, + 2729, 2727, 2717, 2730, 2730, 2731, 2732, 2734, + 2735, 2733, 2717, 2737, 2737, 2738, 2739, 2741, + 2742, 2743, 2744, 2745, 2741, 2742, 2743, 2744, + 2745, 2746, 2747, 2740, 2736, 2748, 2748, 2749, + 2750, 2752, 2753, 2751, 2717, 2754, 2754, 2755, + 2756, 2758, 2759, 2760, 2761, 2762, 2758, 2759, + 2760, 2761, 2762, 2763, 2764, 2757, 2736, 2765, + 2765, 2766, 2767, 2769, 2770, 2768, 2717, 2771, + 2771, 2772, 2773, 2775, 2776, 2777, 2778, 2779, + 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2774, + 2736, 2782, 2782, 2783, 2784, 2786, 2787, 2785, + 2717, 2788, 2788, 2790, 2791, 2792, 2793, 2794, + 2790, 2791, 2792, 2793, 2794, 2788, 2788, 2789, + 2736, 2788, 2788, 2788, 2788, 2795, 2736, 2797, + 2798, 2799, 2800, 2801, 2797, 2798, 2799, 2800, + 2801, 2796, 2736, 2802, 2802, 2802, 2802, 2803, + 2736, 2805, 2804, 78, 2771, 2771, 2772, 2773, + 2780, 2781, 2806, 2736, 2808, 2809, 2810, 2811, + 2812, 2808, 2809, 2810, 2811, 2812, 2807, 2736, + 2813, 2813, 2814, 2815, 2817, 2818, 2816, 2736, + 2820, 2819, 78, 2754, 2754, 2755, 2756, 2763, + 2764, 2821, 2736, 2823, 2824, 2825, 2826, 2827, + 2823, 2824, 2825, 2826, 2827, 2822, 2736, 2828, + 2828, 2829, 2830, 2832, 2833, 2831, 2736, 2835, + 2834, 78, 2737, 2737, 2738, 2739, 2746, 2747, + 2836, 2736, 2838, 2839, 2840, 2841, 2842, 2838, + 2839, 2840, 2841, 2842, 2837, 2736, 2843, 2843, + 2844, 2845, 2847, 2848, 2846, 2736, 2850, 2849, + 78, 2852, 2851, 78, 2854, 2853, 78, 78, + 78, 78, 78, 2855, 2856, 2856, 2857, 2858, + 2859, 2860, 78, 2862, 2862, 2863, 2864, 2865, + 2866, 2861, 2861, 2861, 78, 2867, 2867, 2867, + 2867, 78, 2869, 2868, 78, 2870, 2870, 2870, + 2870, 2870, 2870, 78, 2871, 2871, 2872, 2873, + 2874, 2875, 78, 2876, 2876, 2877, 2878, 2879, + 2879, 2879, 2880, 2881, 2879, 2879, 2879, 78, + 2882, 2882, 2882, 2882, 78, 2884, 2883, 78, + 2885, 2717, 2886, 2886, 2887, 2888, 2890, 2891, + 2889, 2717, 2892, 2892, 2893, 2894, 2895, 2895, + 2895, 2896, 2897, 2895, 2895, 2895, 78, 2898, + 2898, 2898, 2898, 78, 2900, 2899, 78, 2902, + 2902, 2902, 2902, 2901, 2903, 2903, 2904, 2905, + 2906, 2907, 2908, 2908, 2909, 2910, 2902, 2912, + 2912, 2913, 2914, 2915, 2916, 2917, 2917, 2918, + 2919, 2911, 2911, 2911, 2902, 2921, 2920, 2902, + 2922, 2922, 2922, 2922, 2694, 2923, 2924, 2923, + 2923, 2923, 2924, 2924, 2924, 2694, 2926, 2925, + 2927, 2927, 2928, 2929, 2931, 2932, 2930, 2925, + 2933, 2933, 2934, 2935, 2937, 2938, 2939, 2940, + 2936, 2925, 2941, 2941, 2942, 2943, 2945, 2946, + 2944, 2925, 2947, 2947, 2948, 2949, 2937, 2938, + 2951, 2952, 2950, 2925, 2953, 2953, 2954, 2955, + 2956, 2958, 2959, 2957, 2925, 2960, 2960, 2961, + 2962, 2937, 2938, 2963, 2964, 2925, 2965, 2965, + 2966, 2967, 2968, 2969, 2925, 2965, 2965, 2966, + 2967, 2968, 2969, 2970, 2925, 2971, 2971, 2972, + 2973, 2975, 2976, 2974, 2925, 2977, 2977, 2978, + 2979, 2981, 2982, 2983, 2984, 2980, 2925, 2985, + 2985, 2986, 2987, 2989, 2990, 2988, 2925, 2991, + 2991, 2992, 2993, 2981, 2982, 2995, 2996, 2994, + 2925, 2997, 2997, 2998, 2999, 3000, 3002, 3003, + 3001, 2925, 3004, 3004, 3005, 3006, 2981, 2982, + 3007, 3008, 2925, 3009, 3009, 3010, 3011, 3012, + 3013, 2925, 3009, 3009, 3010, 3011, 3014, 3012, + 3013, 3015, 2925, 3016, 2925, 3017, 3017, 3018, + 3019, 3020, 3022, 3023, 3024, 3025, 3025, 3026, + 3027, 3021, 2925, 3028, 3028, 3029, 3030, 3032, + 3033, 3034, 3034, 3035, 3036, 3031, 2925, 3037, + 3037, 3038, 3039, 3040, 3042, 3043, 3044, 3045, + 3045, 3046, 3047, 3041, 2925, 3048, 3048, 3049, + 3050, 3052, 3053, 3034, 3034, 3054, 3055, 3051, + 2925, 3056, 3056, 3057, 3058, 3059, 3061, 3062, + 3063, 3064, 3064, 3065, 3066, 3060, 2925, 3067, + 3067, 3068, 3069, 3071, 3072, 3034, 3034, 3073, + 3074, 3070, 2925, 3075, 3075, 3076, 3077, 3078, + 3075, 3080, 3081, 3082, 3082, 3083, 3084, 3079, + 2925, 3085, 3085, 3086, 3087, 3088, 3089, 3034, + 3034, 3090, 3091, 2925, 3093, 3092, 2925, 3094, + 3094, 3095, 3096, 3094, 3098, 3099, 3100, 3100, + 3101, 3102, 3097, 2925, 3075, 3075, 3076, 3077, + 3075, 3080, 3081, 3082, 3082, 3083, 3084, 3103, + 2925, 3105, 3104, 2925, 3106, 3106, 3107, 3108, + 3110, 3111, 3112, 3113, 3113, 3114, 3115, 3109, + 2925, 3056, 3056, 3057, 3058, 3061, 3062, 3063, + 3064, 3064, 3065, 3066, 3116, 2925, 3067, 3067, + 3068, 3069, 3071, 3072, 3034, 3034, 3073, 3074, + 2925, 3118, 3117, 2925, 3119, 3119, 3120, 3121, + 3123, 3124, 3125, 3126, 3126, 3127, 3128, 3122, + 2925, 3037, 3037, 3038, 3039, 3042, 3043, 3044, + 3045, 3045, 3046, 3047, 3129, 2925, 3048, 3048, + 3049, 3050, 3052, 3053, 3034, 3034, 3054, 3055, + 2925, 3131, 3130, 2925, 3132, 3132, 3133, 3134, + 3136, 3137, 3138, 3139, 3139, 3140, 3141, 3135, + 2925, 3017, 3017, 3018, 3019, 3022, 3023, 3024, + 3025, 3025, 3026, 3027, 3142, 2925, 3028, 3028, + 3029, 3030, 3032, 3033, 3034, 3034, 3035, 3036, + 2925, 3144, 3143, 2925, 3145, 3145, 3146, 3147, + 3148, 3149, 2925, 3151, 3150, 2925, 3152, 3152, + 3153, 3154, 3156, 3157, 3155, 2925, 2997, 2997, + 2998, 2999, 3002, 3003, 3158, 2925, 3160, 3159, + 2925, 3162, 3161, 2925, 3164, 3163, 2925, 3165, + 3165, 3166, 3167, 3168, 3169, 2925, 3171, 3170, + 2925, 3172, 3172, 3173, 3174, 3176, 3177, 3175, + 2925, 2953, 2953, 2954, 2955, 2958, 2959, 3178, + 2925, 3180, 3179, 2925, 3182, 3181, 2925, 3183, + 2717, 3184, 3184, 3185, 3186, 3188, 3189, 3187, + 2717, 3190, 3190, 3191, 3192, 3194, 3195, 3193, + 2717, 3196, 3196, 3197, 3198, 3200, 3201, 3199, + 2717, 3202, 3202, 3203, 3204, 3206, 3207, 3205, + 2717, 3208, 3208, 3209, 3210, 3212, 3213, 3211, + 2717, 3214, 3214, 3215, 3216, 3217, 3217, 3217, + 3218, 3219, 3217, 3217, 3217, 78, 3220, 3220, + 3220, 3220, 78, 3222, 3221, 78, 3224, 3223, + 78, 3226, 3225, 78, 3227, 2717, 3228, 3228, + 3229, 3230, 3232, 3233, 3231, 2717, 3234, 3234, + 3235, 3236, 3238, 3239, 3237, 2717, 3240, 3240, + 3241, 3242, 3244, 3245, 3243, 2717, 3247, 3247, + 3248, 3249, 3250, 3251, 3246, 3246, 3246, 78, + 3252, 3252, 3253, 3254, 3255, 3256, 78, 3258, + 3258, 3259, 3260, 3261, 3262, 3257, 3257, 3257, + 78, 3263, 3263, 3264, 3265, 3266, 3267, 78, + 3269, 3269, 3270, 3271, 3272, 3273, 3268, 3268, + 3268, 78, 3274, 3274, 3275, 3276, 3277, 3278, + 78, 3279, 3279, 3280, 3281, 3282, 3282, 3282, + 3283, 3284, 3282, 3282, 3282, 78, 3285, 3285, + 3285, 3285, 78, 3287, 3286, 78, 3289, 3288, + 78, 3291, 3290, 78, 3293, 3292, 78, 3295, + 3294, 78, 3296, 3296, 3296, 78, 3297, 3297, + 3298, 3299, 3300, 3301, 78, 3297, 3297, 3298, + 3299, 3300, 3301, 3302, 2717, 3303, 3303, 3304, + 3305, 3307, 3308, 3306, 2717, 3309, 3309, 3310, + 3311, 3313, 3314, 3312, 3312, 3312, 78, 3315, + 3315, 3316, 3317, 3318, 3319, 78, 3315, 3315, + 3316, 3317, 3320, 3318, 3319, 3320, 3320, 3320, + 78, 3321, 3321, 78, 3323, 3322, 78, 3325, + 3324, 78, 3327, 3326, 78, 3329, 3329, 3330, + 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3337, + 3338, 3339, 3328, 3340, 3341, 3328, 3342, 3328, + 3344, 3344, 3343, 3346, 3345, 3343, 3347, 3328, + 3348, 3348, 3349, 3350, 3352, 3353, 3354, 3354, + 3355, 3356, 3351, 3328, 3358, 3357, 78, 3359, + 3328, 3360, 3360, 3360, 3360, 3343, 3362, 3361, + 3361, 3361, 3343, 3363, 2717, 3364, 3364, 3365, + 3366, 3368, 3369, 3367, 2717, 3370, 3370, 3371, + 3372, 3374, 3375, 3373, 3373, 3373, 78, 3376, + 3376, 3377, 3378, 3379, 3380, 78, 3376, 3376, + 3377, 3378, 3379, 3380, 3381, 2717, 3382, 3382, + 3383, 3384, 3386, 3387, 3385, 2717, 3389, 3389, + 3390, 3391, 3393, 3394, 3392, 3392, 3392, 3388, + 3395, 3395, 3395, 3388, 3396, 3396, 3397, 3398, + 3399, 3400, 3401, 3401, 3402, 3403, 3392, 3392, + 3392, 3388, 3405, 3404, 3388, 3407, 3406, 78, + 3409, 3408, 78, 3411, 3410, 78, 3412, 2717, + 3413, 3413, 3414, 3415, 3417, 3418, 3416, 2717, + 3419, 3419, 3420, 3421, 3423, 3424, 3422, 2717, + 3425, 3425, 3426, 3427, 3429, 3430, 3428, 2717, + 3431, 3431, 3432, 3433, 3435, 3436, 3434, 3434, + 3434, 3388, 3437, 3437, 3437, 3388, 3438, 3438, + 3439, 3440, 3441, 3442, 3443, 3443, 3444, 3445, + 3434, 3434, 3434, 3388, 3447, 3446, 3388, 3449, + 3448, 78, 3451, 3450, 78, 3452, 2717, 3453, + 3453, 3454, 3455, 3457, 3458, 3456, 2717, 3460, + 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, + 3468, 3459, 3469, 3469, 3470, 3471, 3472, 3473, + 3459, 3469, 3469, 3470, 3471, 3472, 3473, 3475, + 3474, 3476, 3476, 3477, 3478, 3480, 3481, 3479, + 3474, 3482, 3482, 3483, 3484, 3485, 3486, 3487, + 3459, 3489, 3489, 3490, 3491, 3492, 3492, 3493, + 3494, 3495, 3495, 3496, 3497, 3498, 3498, 3498, + 3498, 3499, 3500, 3498, 3498, 3501, 3502, 3503, + 3504, 3498, 3498, 3505, 3506, 3507, 3508, 3498, + 3498, 3509, 3510, 3488, 3489, 3489, 3490, 3491, + 3512, 3499, 3500, 3512, 3512, 3512, 3511, 3498, + 3498, 3511, 3514, 3513, 3511, 3492, 3492, 3493, + 3494, 3498, 3498, 3498, 3498, 3503, 3504, 3498, + 3498, 3505, 3506, 3511, 3516, 3515, 3511, 3512, + 3489, 3489, 3490, 3491, 3492, 3492, 3493, 3494, + 3495, 3495, 3496, 3497, 3498, 3498, 3498, 3498, + 3499, 3500, 3498, 3498, 3501, 3502, 3503, 3504, + 3498, 3498, 3505, 3506, 3507, 3508, 3498, 3498, + 3509, 3510, 3512, 3512, 3512, 3511, 3514, 3516, + 3518, 3513, 3515, 3517, 3511, 3520, 3519, 3459, + 3522, 3521, 3459, 3523, 3523, 3524, 3525, 3526, + 3527, 3459, 3523, 3523, 3524, 3525, 3526, 3527, + 3528, 3474, 3529, 3529, 3530, 3531, 3533, 3534, + 3532, 3474, 3536, 3536, 3537, 3538, 3539, 3540, + 3541, 3539, 3535, 3543, 3544, 3544, 3545, 3546, + 3547, 3547, 3548, 3549, 3550, 3550, 3551, 3552, + 3553, 3553, 3553, 3553, 3554, 3555, 3553, 3553, + 3556, 3557, 3558, 3559, 3553, 3553, 3560, 3561, + 3562, 3563, 3553, 3553, 3564, 3565, 3543, 3542, + 3567, 3566, 3459, 3569, 3568, 3459, 3570, 3570, + 3571, 3572, 3573, 3574, 3459, 3570, 3570, 3571, + 3572, 3573, 3574, 3575, 3474, 3576, 3576, 3577, + 3578, 3580, 3581, 3579, 3474, 3582, 3582, 3583, + 3584, 3585, 3586, 3587, 3585, 3585, 3585, 3535, + 3588, 3589, 3589, 3590, 3591, 3592, 3592, 3593, + 3594, 3595, 3595, 3596, 3597, 3598, 3598, 3598, + 3598, 3599, 3600, 3598, 3598, 3601, 3602, 3603, + 3604, 3598, 3598, 3605, 3606, 3607, 3608, 3598, + 3598, 3609, 3610, 3588, 3588, 3588, 3542, 3612, + 3611, 3459, 3614, 3613, 3459, 3615, 3615, 3616, + 3617, 3618, 3619, 3459, 3615, 3615, 3616, 3617, + 3618, 3619, 3620, 3474, 3621, 3621, 3622, 3623, + 3625, 3626, 3624, 3474, 3627, 3627, 3628, 3629, + 3630, 3630, 3630, 3631, 3632, 3630, 3630, 3630, + 3459, 3633, 3633, 3634, 3635, 3636, 3636, 3637, + 3638, 3639, 3639, 3640, 3641, 3642, 3642, 3642, + 3642, 3643, 3644, 3642, 3642, 3645, 3646, 3647, + 3648, 3642, 3642, 3649, 3650, 3651, 3652, 3642, + 3642, 3653, 3654, 3488, 3656, 3655, 3459, 3658, + 3657, 3459, 3660, 3659, 78, 3661, 3661, 3661, + 78, 3662, 3662, 3663, 3664, 3665, 3666, 78, + 3662, 3662, 3663, 3664, 3665, 3666, 3667, 3667, + 3667, 78, 3668, 3668, 3669, 3670, 3671, 3672, + 78, 3668, 3668, 3669, 3670, 3671, 3672, 3673, + 2717, 3674, 3674, 3675, 3676, 3678, 3679, 3677, + 2717, 3680, 3680, 3681, 3682, 3684, 3685, 3683, + 2717, 3686, 3686, 3687, 3688, 3690, 3691, 3689, + 2717, 3693, 3693, 3694, 3695, 3697, 3698, 3696, + 3692, 3699, 3699, 3700, 3701, 3703, 3704, 3702, + 3692, 3705, 3705, 3706, 3707, 3709, 3710, 3708, + 3692, 3711, 3711, 3712, 3713, 3715, 3716, 3714, + 3692, 3717, 3717, 3718, 3719, 3721, 3722, 3720, + 2717, 3723, 3723, 3724, 3725, 3727, 3728, 3726, + 2717, 3729, 3729, 3730, 3731, 3732, 3732, 3732, + 3733, 3734, 3732, 3732, 3732, 78, 3735, 3735, + 3736, 3737, 3738, 3739, 78, 3740, 3740, 3741, + 3742, 3743, 3744, 3745, 3743, 3743, 3743, 78, + 3746, 3746, 78, 3748, 3747, 78, 3750, 3749, + 78, 3752, 3751, 78, 3754, 3753, 78, 3756, + 3755, 78, 3758, 3757, 78, 3760, 3759, 78, + 3762, 3761, 78, 3763, 3763, 3763, 3763, 3763, + 3763, 78, 3764, 3764, 3764, 3764, 78, 3765, + 3765, 3765, 3765, 78, 3766, 2717, 3767, 3767, + 3768, 3769, 3771, 3772, 3770, 2717, 3773, 3773, + 3774, 3775, 3777, 3778, 3776, 2717, 3779, 3779, + 3780, 3781, 3783, 3784, 3782, 2717, 3785, 3785, + 3786, 3787, 3789, 3790, 3788, 3788, 3788, 78, + 3791, 3791, 3792, 3793, 3794, 3795, 78, 3791, + 3791, 3792, 3793, 3796, 3794, 3795, 3796, 3796, + 3796, 78, 3797, 3797, 78, 3799, 3798, 78, + 3801, 3800, 78, 3803, 3802, 78, 3804, 3804, + 3804, 3804, 78, 3805, 3805, 78, 3806, 2717, + 3807, 3807, 3808, 3809, 3811, 3812, 3810, 2717, + 3813, 3813, 3814, 3815, 3817, 3818, 3816, 2717, + 3819, 3819, 3820, 3821, 3823, 3824, 3822, 2717, + 3825, 3825, 3826, 3827, 3829, 3830, 3828, 2717, + 3831, 3831, 3832, 3833, 3835, 3836, 3834, 2717, + 3837, 3837, 3838, 3839, 3840, 3842, 3843, 3841, + 3841, 3841, 3388, 3844, 3844, 3845, 3846, 3847, + 3848, 3388, 3850, 3850, 3851, 3852, 3854, 3855, + 3853, 3853, 3853, 3849, 3856, 3856, 3856, 3849, + 3858, 3857, 3857, 3857, 3849, 3859, 3859, 3859, + 3849, 3861, 3860, 3860, 3860, 3849, 3863, 3862, + 3862, 3862, 3849, 3864, 3864, 3864, 3849, 3866, + 3865, 3865, 3865, 3849, 3867, 3867, 3867, 3867, + 3868, 3868, 3868, 3849, 3869, 3869, 3869, 3869, + 78, 3870, 3849, 3866, 3849, 3863, 3849, 3871, + 3849, 3861, 3849, 3873, 3872, 78, 3874, 3874, + 3874, 3388, 3844, 3844, 3845, 3846, 3847, 3848, + 3875, 3875, 3875, 3388, 3877, 3876, 78, 3879, + 3878, 78, 3881, 3880, 78, 3882, 2717, 3883, + 3883, 3884, 3885, 3887, 3888, 3886, 2717, 3889, + 3889, 3890, 3891, 3893, 3894, 3892, 2717, 3895, + 3895, 3896, 3897, 3899, 3900, 3898, 2717, 3901, + 3901, 3902, 3903, 3905, 3906, 3904, 2717, 3907, + 3907, 3908, 3909, 3911, 3912, 3910, 2717, 3913, + 3913, 3914, 3915, 3916, 3918, 3919, 3917, 3917, + 3917, 3388, 3920, 3920, 3920, 3920, 3388, 3921, + 3921, 3921, 3388, 3920, 3920, 3920, 3920, 3922, + 3922, 3922, 3388, 3924, 3923, 78, 3926, 3925, + 78, 3928, 3927, 78, 3929, 2717, 3930, 3930, + 3931, 3932, 3934, 3935, 3933, 2717, 3936, 3936, + 3937, 3938, 3940, 3941, 3939, 2717, 3942, 3942, + 3943, 3944, 3946, 3947, 3945, 2717, 3948, 3948, + 3949, 3950, 3952, 3953, 3951, 2717, 3954, 3954, + 3955, 3956, 3958, 3959, 3957, 2717, 3960, 3960, + 3961, 3962, 3964, 3965, 3963, 3963, 3963, 3388, + 3966, 3966, 3966, 3388, 3967, 3967, 3968, 3969, + 3970, 3971, 3972, 3972, 3973, 3974, 3963, 3963, + 3963, 3388, 3976, 3975, 3388, 3978, 3977, 78, + 3980, 3979, 78, 3982, 3981, 78, 3983, 2717, + 3984, 3984, 3985, 3986, 3988, 3989, 3987, 2717, + 3990, 3990, 3991, 3992, 3994, 3995, 3993, 2717, + 3996, 3996, 3996, 3996, 3997, 2717, 3998, 3998, + 3998, 3998, 78, 4000, 3999, 78, 4001, 2717, + 4002, 4002, 4003, 4004, 4006, 4007, 4005, 2717, + 4008, 4008, 4009, 4010, 4012, 4013, 4011, 2717, + 4014, 4014, 4015, 4016, 4018, 4019, 4017, 2717, + 4020, 4020, 4021, 4022, 4024, 4025, 4023, 2717, + 4026, 4026, 4027, 4028, 4030, 4031, 4029, 2717, + 4032, 4032, 4033, 4034, 4036, 4037, 4035, 4035, + 4035, 3388, 4038, 4038, 4038, 3388, 4039, 4039, + 4040, 4041, 4042, 4043, 4044, 4044, 4045, 4046, + 4035, 4035, 4035, 3388, 4048, 4047, 3388, 4050, + 4049, 78, 4052, 4051, 78, 4054, 4053, 78, + 4055, 2717, 4056, 4056, 4057, 4058, 4060, 4061, + 4059, 2717, 4062, 4062, 4063, 4064, 4065, 4066, + 4067, 4065, 2694, 4068, 4069, 4068, 4068, 4068, + 4069, 2694, 4071, 4070, 78, 4072, 2717, 4073, + 4073, 4074, 4075, 4077, 4078, 4076, 2717, 4079, + 4079, 4080, 4081, 4083, 4084, 4082, 4082, 4082, + 3388, 4085, 4085, 4085, 3388, 4086, 4086, 4086, + 3388, 4087, 4087, 4087, 3388, 4089, 4088, 4090, + 4090, 4090, 3388, 4091, 4091, 4091, 3388, 4092, + 4092, 4092, 3388, 4093, 4093, 4093, 3388, 4095, + 4089, 4095, 4095, 4095, 4094, 4097, 4096, 78, + 4098, 4098, 4098, 3388, 4099, 4099, 4099, 3388, + 4101, 4100, 4102, 4102, 4102, 3388, 4103, 4103, + 4103, 3388, 4104, 4101, 4104, 4104, 4104, 4100, + 4105, 4105, 4105, 3388, 4106, 4106, 4106, 3388, + 4107, 4100, 4108, 4108, 4108, 3388, 4109, 4109, + 4109, 3388, 4110, 4107, 4110, 4110, 4110, 4100, + 4111, 2717, 4112, 4112, 4113, 4114, 4116, 4117, + 4115, 2717, 4118, 4118, 4119, 4120, 4122, 4123, + 4121, 2717, 4124, 4124, 4125, 4126, 4128, 4129, + 4127, 2717, 4131, 4131, 4132, 4133, 4134, 4135, + 4130, 4130, 4130, 78, 4136, 4136, 4136, 4136, + 78, 4138, 4137, 78, 4140, 4139, 78, 4141, + 2717, 4142, 4142, 4143, 4144, 4146, 4147, 4145, + 2717, 4149, 4149, 4150, 4151, 4152, 4153, 4148, + 4148, 4148, 78, 4154, 4154, 4155, 4156, 4157, + 4158, 78, 4160, 4160, 4161, 4162, 4163, 4164, + 4159, 4159, 4159, 78, 4165, 4165, 4165, 4165, + 78, 4167, 4166, 78, 4169, 4168, 78, 4170, + 2717, 4171, 4171, 4172, 4173, 4175, 4176, 4174, + 2717, 4177, 4177, 4178, 4179, 4180, 4180, 4180, + 4181, 4182, 4180, 4180, 4180, 78, 4183, 4183, + 4183, 4183, 78, 4184, 4184, 4184, 4184, 78, + 4186, 4185, 78, 4187, 4187, 4187, 78, 4188, + 4188, 4189, 4190, 4191, 4192, 78, 4188, 4188, + 4189, 4190, 4191, 4192, 4193, 4193, 4193, 78, + 4194, 4194, 4195, 4196, 4197, 4198, 78, 4194, + 4194, 4195, 4196, 4197, 4198, 4199, 2717, 4200, + 4200, 4201, 4202, 4204, 4205, 4203, 2717, 4206, + 4206, 4207, 4208, 4209, 4209, 4209, 4210, 4211, + 4209, 4209, 4209, 78, 4212, 4212, 4212, 4212, + 78, 4214, 4213, 78, 4216, 4215, 78, 4218, + 4217, 78, 4220, 4220, 4221, 4222, 4223, 4224, + 4224, 4224, 4225, 4226, 4227, 4228, 4224, 4224, + 4224, 4219, 4229, 4229, 4230, 4231, 4232, 4233, + 76, 4234, 4233, 4225, 4226, 4235, 4236, 4237, + 4238, 4239, 4240, 76, 76, 4233, 76, 4233, + 76, 4233, 76, 915, 4242, 4242, 4221, 4243, + 4244, 4224, 4245, 4246, 4247, 4248, 4249, 4250, + 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, + 4259, 4260, 4261, 4262, 4224, 4224, 4245, 4246, + 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, + 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, + 4225, 4226, 4263, 4264, 4224, 4224, 4224, 4241, + 4242, 4242, 4221, 4243, 4244, 4224, 4267, 4268, + 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, + 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, + 4224, 4224, 4267, 4268, 4269, 4270, 4271, 4272, + 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, + 4281, 4282, 4283, 4284, 4225, 4226, 4263, 4264, + 4224, 4266, 4224, 4224, 4265, 4286, 4286, 4287, + 4288, 4289, 4290, 4290, 4290, 4291, 4292, 4293, + 4294, 4290, 4290, 4290, 4285, 4220, 4220, 4221, + 4295, 4296, 4224, 4267, 4268, 4269, 4270, 4271, + 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, + 4280, 4281, 4282, 4283, 4284, 4224, 4224, 4267, + 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, + 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, + 4284, 4225, 4226, 4297, 4298, 4224, 4266, 4224, + 4224, 4265, 4299, 4299, 4221, 4300, 4301, 4224, + 4224, 4224, 90, 91, 4302, 4303, 4224, 4224, + 4224, 915, 4304, 4304, 4230, 4305, 4306, 4233, + 76, 4234, 4233, 90, 91, 4302, 4307, 108, + 109, 4302, 4308, 76, 76, 4233, 76, 4233, + 76, 4233, 76, 915, 4229, 4229, 4230, 4231, + 4232, 4233, 76, 4311, 4312, 4313, 4314, 4315, + 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, + 4324, 4325, 4326, 4327, 4328, 4234, 4233, 4311, + 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, + 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, + 4328, 4225, 4226, 4235, 4236, 4237, 4238, 4239, + 4240, 76, 76, 4233, 4310, 76, 4233, 76, + 4233, 76, 4309, 4304, 4304, 4230, 4305, 4306, + 4233, 76, 4311, 4312, 4313, 4314, 4315, 4316, + 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, + 4325, 4326, 4327, 4328, 4234, 4233, 4311, 4312, + 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, + 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, + 90, 91, 4329, 4307, 108, 109, 4329, 4308, + 76, 76, 4233, 4310, 76, 4233, 76, 4233, + 76, 4309, 822, 822, 822, 822, 1091, 1092, + 1091, 1094, 1091, 1092, 1093, 1092, 1087, 822, + 822, 822, 1249, 1249, 1250, 1251, 1218, 1219, + 1220, 1218, 1252, 1253, 1218, 1218, 1218, 1224, + 822, 1264, 1264, 1265, 1266, 1259, 1267, 1268, + 1269, 1269, 1270, 1271, 1259, 1259, 1259, 1258, + 1273, 1272, 1258, 822, 822, 1519, 1519, 1520, + 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, + 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, + 1537, 1538, 1539, 1522, 1523, 1524, 1525, 1526, + 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, + 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, + 1542, 1543, 1544, 1510, 1568, 1567, 1510, 822, + 2156, 2156, 2157, 2158, 2159, 2160, 2161, 2161, + 2162, 2163, 2152, 2152, 2152, 2148, 2165, 2164, + 2148, 2184, 2184, 2185, 2186, 2188, 2189, 2187, + 2187, 2187, 2148, 2134, 2191, 2191, 2192, 2193, + 2194, 2195, 2196, 2196, 2197, 2198, 2187, 2187, + 2187, 2148, 2200, 2199, 2148, 2202, 2201, 2134, + 822, 822, 2286, 2286, 2287, 2288, 2289, 2290, + 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, + 2299, 2300, 2300, 2301, 2302, 2277, 2318, 2317, + 2277, 822, 822, 822, 822, 822, 822, 822, + 822, 822, 822, 2912, 2912, 2913, 2914, 2915, + 2916, 2917, 2917, 2918, 2919, 2911, 2911, 2911, + 2902, 2921, 2920, 2902, 822, 822, 3085, 3085, + 3086, 3087, 3088, 3089, 3034, 3034, 3090, 3091, + 2925, 3093, 3092, 2925, 3067, 3067, 3068, 3069, + 3071, 3072, 3034, 3034, 3073, 3074, 3070, 2925, + 3105, 3104, 2925, 3048, 3048, 3049, 3050, 3052, + 3053, 3034, 3034, 3054, 3055, 3051, 2925, 3118, + 3117, 2925, 3028, 3028, 3029, 3030, 3032, 3033, + 3034, 3034, 3035, 3036, 3031, 2925, 3131, 3130, + 2925, 822, 822, 822, 822, 3329, 3329, 3330, + 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3337, + 3338, 3339, 3328, 3358, 3357, 78, 822, 3396, + 3396, 3397, 3398, 3399, 3400, 3401, 3401, 3402, + 3403, 3392, 3392, 3392, 3388, 3405, 3404, 3388, + 822, 3438, 3438, 3439, 3440, 3441, 3442, 3443, + 3443, 3444, 3445, 3434, 3434, 3434, 3388, 3447, + 3446, 3388, 822, 3492, 3492, 3493, 3494, 3498, + 3498, 3498, 3498, 3503, 3504, 3498, 3498, 3505, + 3506, 3511, 3516, 3515, 3511, 3489, 3489, 3490, + 3491, 3512, 3499, 3500, 3512, 3512, 3512, 3511, + 3514, 3513, 3511, 3512, 3489, 3489, 3490, 3491, + 3492, 3492, 3493, 3494, 3495, 3495, 3496, 3497, + 3498, 3498, 3498, 3498, 3499, 3500, 3498, 3498, + 3501, 3502, 3503, 3504, 3498, 3498, 3505, 3506, + 3507, 3508, 3498, 3498, 3509, 3510, 3512, 3512, + 3512, 3511, 3514, 3516, 3518, 3513, 3515, 3517, + 3511, 822, 822, 822, 822, 822, 822, 822, + 3967, 3967, 3968, 3969, 3970, 3971, 3972, 3972, + 3973, 3974, 3963, 3963, 3963, 3388, 3976, 3975, + 3388, 822, 822, 4039, 4039, 4040, 4041, 4042, + 4043, 4044, 4044, 4045, 4046, 4035, 4035, 4035, + 3388, 4048, 4047, 3388, 822, 822, 822, 822, + 822, 822, 822, 822, 0 }; static const short _zone_scanner_trans_targs[] = { 0, 1, 1, 1, 2, 4, 17, 40, 57, 64, 190, 84, 88, 96, 102, 118, - 128, 131, 144, 163, 173, 176, 182, 1492, - 198, 1497, 320, 0, 3, 3, 3, 2, + 128, 131, 144, 163, 173, 176, 182, 1504, + 198, 1509, 324, 0, 3, 3, 3, 2, 213, 213, 213, 213, 213, 3, 216, 0, 3, 3, 3, 4, 17, 40, 57, 64, 73, 84, 88, 96, 102, 118, 128, 131, 144, 163, 173, 176, 182, 3, 216, 0, - 5, 5, 5, 283, 286, 290, 5, 10, - 6, 11, 20, 6, 5, 0, 5, 5, - 9, 5, 10, 11, 20, 0, 7, 7, - 7, 1492, 8, 0, 7, 7, 7, 1492, - 8, 8, 1492, 6, 6, 10, 5, 12, - 12, 12, 13, 1498, 223, 297, 12, 12, - 12, 13, 1498, 223, 297, 13, 1493, 14, - 0, 14, 14, 15, 219, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 1500, 292, - 1498, 293, 1501, 295, 0, 16, 16, 16, - 1494, 323, 0, 16, 16, 16, 1494, 323, - 18, 22, 29, 32, 36, 19, 5, 5, - 5, 5, 10, 6, 11, 20, 21, 21, - 21, 13, 21, 21, 21, 13, 23, 28, - 24, 25, 26, 27, 5, 5, 5, 5, - 10, 6, 11, 20, 5, 5, 5, 5, - 10, 6, 11, 20, 30, 31, 5, 5, - 5, 5, 10, 6, 11, 20, 33, 34, - 35, 5, 5, 5, 5, 10, 6, 11, - 20, 37, 38, 39, 5, 5, 5, 5, - 10, 6, 11, 20, 41, 45, 53, 42, - 43, 44, 5, 5, 5, 5, 10, 6, - 11, 20, 46, 49, 47, 48, 5, 5, - 5, 5, 10, 6, 11, 20, 50, 51, - 52, 5, 5, 5, 5, 10, 6, 11, - 20, 5, 5, 5, 54, 5, 10, 6, - 11, 20, 55, 56, 5, 5, 5, 5, - 10, 6, 11, 20, 58, 59, 60, 62, - 61, 5, 5, 5, 5, 10, 6, 11, - 20, 63, 5, 5, 5, 5, 10, 6, - 11, 20, 65, 69, 66, 67, 68, 5, - 5, 5, 5, 10, 6, 11, 20, 70, - 71, 72, 5, 5, 5, 5, 10, 6, - 11, 20, 74, 77, 75, 75, 75, 75, - 188, 75, 75, 75, 4, 17, 40, 57, - 64, 76, 84, 88, 96, 102, 118, 128, - 131, 144, 163, 173, 176, 182, 75, 188, - 78, 79, 80, 81, 82, 83, 5, 5, - 5, 5, 10, 6, 11, 20, 85, 87, - 86, 5, 5, 5, 5, 10, 6, 11, - 20, 5, 5, 5, 5, 10, 6, 11, - 20, 89, 91, 93, 95, 90, 5, 5, - 5, 5, 10, 6, 11, 20, 92, 5, - 5, 5, 5, 10, 6, 11, 20, 94, - 5, 5, 5, 5, 10, 6, 11, 20, - 5, 5, 5, 5, 10, 6, 11, 20, - 97, 101, 98, 99, 100, 5, 5, 5, + 5, 5, 5, 283, 286, 290, 294, 5, + 10, 6, 11, 20, 6, 5, 0, 5, + 5, 9, 5, 10, 11, 20, 0, 7, + 7, 7, 1504, 8, 0, 7, 7, 7, + 1504, 8, 8, 1504, 6, 6, 10, 5, + 12, 12, 12, 13, 1510, 223, 301, 12, + 12, 12, 13, 1510, 223, 301, 13, 1505, + 14, 0, 14, 14, 15, 219, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 1512, + 296, 1510, 297, 1513, 299, 0, 16, 16, + 16, 1506, 327, 0, 16, 16, 16, 1506, + 327, 18, 22, 29, 32, 36, 19, 5, + 5, 5, 5, 10, 6, 11, 20, 21, + 21, 21, 13, 21, 21, 21, 13, 23, + 28, 24, 25, 26, 27, 5, 5, 5, 5, 10, 6, 11, 20, 5, 5, 5, - 5, 10, 6, 11, 20, 103, 107, 109, - 104, 105, 106, 5, 5, 5, 5, 10, - 6, 11, 20, 108, 5, 5, 5, 5, - 10, 6, 11, 20, 5, 5, 5, 110, - 5, 10, 6, 11, 20, 111, 5, 5, - 5, 112, 5, 10, 6, 11, 20, 5, - 5, 5, 113, 5, 10, 6, 11, 20, - 114, 115, 116, 117, 5, 5, 5, 5, - 10, 6, 11, 20, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 5, 5, 5, - 5, 10, 6, 11, 20, 129, 130, 5, - 5, 5, 5, 10, 6, 11, 20, 132, - 138, 139, 143, 133, 134, 135, 136, 137, + 5, 10, 6, 11, 20, 30, 31, 5, + 5, 5, 5, 10, 6, 11, 20, 33, + 34, 35, 5, 5, 5, 5, 10, 6, + 11, 20, 37, 38, 39, 5, 5, 5, + 5, 10, 6, 11, 20, 41, 45, 53, + 42, 43, 44, 5, 5, 5, 5, 10, + 6, 11, 20, 46, 49, 47, 48, 5, + 5, 5, 5, 10, 6, 11, 20, 50, + 51, 52, 5, 5, 5, 5, 10, 6, + 11, 20, 5, 5, 5, 54, 5, 10, + 6, 11, 20, 55, 56, 5, 5, 5, + 5, 10, 6, 11, 20, 58, 59, 60, + 62, 61, 5, 5, 5, 5, 10, 6, + 11, 20, 63, 5, 5, 5, 5, 10, + 6, 11, 20, 65, 69, 66, 67, 68, 5, 5, 5, 5, 10, 6, 11, 20, + 70, 71, 72, 5, 5, 5, 5, 10, + 6, 11, 20, 74, 77, 75, 75, 75, + 75, 188, 75, 75, 75, 4, 17, 40, + 57, 64, 76, 84, 88, 96, 102, 118, + 128, 131, 144, 163, 173, 176, 182, 75, + 188, 78, 79, 80, 81, 82, 83, 5, + 5, 5, 5, 10, 6, 11, 20, 85, + 87, 86, 5, 5, 5, 5, 10, 6, + 11, 20, 5, 5, 5, 5, 10, 6, + 11, 20, 89, 91, 93, 95, 90, 5, + 5, 5, 5, 10, 6, 11, 20, 92, 5, 5, 5, 5, 10, 6, 11, 20, - 140, 141, 142, 5, 5, 5, 5, 10, - 6, 11, 20, 5, 5, 5, 5, 10, - 6, 11, 20, 145, 150, 152, 154, 156, - 160, 146, 147, 148, 149, 5, 5, 5, - 5, 10, 6, 11, 20, 151, 5, 5, - 5, 5, 10, 6, 11, 20, 153, 5, - 5, 5, 5, 10, 6, 11, 20, 155, + 94, 5, 5, 5, 5, 10, 6, 11, + 20, 5, 5, 5, 5, 10, 6, 11, + 20, 97, 101, 98, 99, 100, 5, 5, + 5, 5, 10, 6, 11, 20, 5, 5, + 5, 5, 10, 6, 11, 20, 103, 107, + 109, 104, 105, 106, 5, 5, 5, 5, + 10, 6, 11, 20, 108, 5, 5, 5, + 5, 10, 6, 11, 20, 5, 5, 5, + 110, 5, 10, 6, 11, 20, 111, 5, + 5, 5, 112, 5, 10, 6, 11, 20, + 5, 5, 5, 113, 5, 10, 6, 11, + 20, 114, 115, 116, 117, 5, 5, 5, + 5, 10, 6, 11, 20, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 5, 5, + 5, 5, 10, 6, 11, 20, 129, 130, 5, 5, 5, 5, 10, 6, 11, 20, - 157, 158, 159, 5, 5, 5, 5, 10, - 6, 11, 20, 161, 162, 5, 5, 5, - 5, 10, 6, 11, 20, 164, 167, 169, - 165, 166, 5, 5, 5, 5, 10, 6, - 11, 20, 168, 5, 5, 5, 5, 10, - 6, 11, 20, 170, 171, 0, 172, 0, - 5, 5, 5, 172, 5, 10, 6, 11, - 20, 174, 175, 5, 5, 5, 5, 10, - 6, 11, 20, 177, 178, 179, 180, 181, + 132, 138, 139, 143, 133, 134, 135, 136, + 137, 5, 5, 5, 5, 10, 6, 11, + 20, 5, 5, 5, 5, 10, 6, 11, + 20, 140, 141, 142, 5, 5, 5, 5, + 10, 6, 11, 20, 5, 5, 5, 5, + 10, 6, 11, 20, 145, 150, 152, 154, + 156, 160, 146, 147, 148, 149, 5, 5, + 5, 5, 10, 6, 11, 20, 151, 5, + 5, 5, 5, 10, 6, 11, 20, 153, 5, 5, 5, 5, 10, 6, 11, 20, - 183, 184, 185, 186, 187, 5, 5, 5, - 5, 10, 6, 11, 20, 188, 75, 189, - 189, 189, 1495, 321, 191, 192, 192, 192, - 192, 197, 192, 192, 192, 193, 4, 17, - 40, 57, 64, 76, 84, 88, 96, 102, - 118, 128, 131, 144, 163, 173, 176, 182, - 192, 197, 75, 75, 75, 193, 194, 194, - 194, 194, 194, 75, 188, 195, 195, 196, - 196, 196, 196, 196, 75, 75, 75, 195, - 75, 188, 197, 192, 198, 1492, 0, 200, - 245, 251, 201, 202, 203, 204, 205, 206, - 1496, 0, 208, 208, 208, 208, 209, 208, - 208, 208, 208, 209, 209, 0, 208, 0, - 211, 211, 211, 211, 212, 211, 211, 211, - 211, 212, 212, 211, 214, 214, 215, 215, - 215, 215, 215, 3, 3, 3, 214, 3, - 216, 216, 3, 0, 218, 218, 218, 218, - 299, 300, 301, 218, 218, 218, 218, 299, - 300, 301, 0, 220, 220, 220, 1493, 13, - 1498, 223, 1499, 297, 220, 220, 220, 1493, - 1499, 221, 221, 221, 1497, 222, 222, 1497, - 224, 224, 224, 1492, 8, 224, 224, 224, - 8, 225, 225, 225, 243, 281, 243, 1500, - 0, 246, 247, 248, 249, 250, 1496, 252, - 253, 1496, 0, 221, 221, 221, 1497, 222, - 0, 256, 256, 256, 1495, 257, 256, 256, - 256, 1495, 257, 257, 1495, 0, 259, 259, - 259, 1500, 243, 1501, 281, 259, 259, 259, - 1500, 1501, 278, 0, 278, 278, 278, 279, - 221, 221, 221, 1497, 222, 280, 1497, 280, - 280, 222, 280, 280, 280, 222, 282, 282, - 282, 243, 282, 282, 282, 243, 284, 285, + 155, 5, 5, 5, 5, 10, 6, 11, + 20, 157, 158, 159, 5, 5, 5, 5, + 10, 6, 11, 20, 161, 162, 5, 5, + 5, 5, 10, 6, 11, 20, 164, 167, + 169, 165, 166, 5, 5, 5, 5, 10, + 6, 11, 20, 168, 5, 5, 5, 5, + 10, 6, 11, 20, 170, 171, 0, 172, + 0, 5, 5, 5, 172, 5, 10, 6, + 11, 20, 174, 175, 5, 5, 5, 5, + 10, 6, 11, 20, 177, 178, 179, 180, + 181, 5, 5, 5, 5, 10, 6, 11, + 20, 183, 184, 185, 186, 187, 5, 5, + 5, 5, 10, 6, 11, 20, 188, 75, + 189, 189, 189, 1507, 325, 191, 192, 192, + 192, 192, 197, 192, 192, 192, 193, 4, + 17, 40, 57, 64, 76, 84, 88, 96, + 102, 118, 128, 131, 144, 163, 173, 176, + 182, 192, 197, 75, 75, 75, 193, 194, + 194, 194, 194, 194, 75, 188, 195, 195, + 196, 196, 196, 196, 196, 75, 75, 75, + 195, 75, 188, 197, 192, 198, 1504, 0, + 200, 245, 251, 201, 202, 203, 204, 205, + 206, 1508, 0, 208, 208, 208, 208, 209, + 208, 208, 208, 208, 209, 209, 0, 208, + 0, 211, 211, 211, 211, 212, 211, 211, + 211, 211, 212, 212, 211, 214, 214, 215, + 215, 215, 215, 215, 3, 3, 3, 214, + 3, 216, 216, 3, 0, 218, 218, 218, + 218, 303, 304, 305, 218, 218, 218, 218, + 303, 304, 305, 0, 220, 220, 220, 1505, + 13, 1510, 223, 1511, 301, 220, 220, 220, + 1505, 1511, 221, 221, 221, 1509, 222, 222, + 1509, 224, 224, 224, 1504, 8, 224, 224, + 224, 8, 225, 225, 225, 243, 281, 243, + 1512, 0, 246, 247, 248, 249, 250, 1508, + 252, 253, 1508, 0, 221, 221, 221, 1509, + 222, 0, 256, 256, 256, 1507, 257, 256, + 256, 256, 1507, 257, 257, 1507, 0, 259, + 259, 259, 1512, 243, 1513, 281, 259, 259, + 259, 1512, 1513, 278, 0, 278, 278, 278, + 279, 221, 221, 221, 1509, 222, 280, 1509, + 280, 280, 222, 280, 280, 280, 222, 282, + 282, 282, 243, 282, 282, 282, 243, 284, + 285, 5, 5, 5, 5, 10, 6, 11, + 20, 287, 288, 289, 5, 5, 5, 5, + 10, 6, 11, 20, 291, 292, 293, 5, + 5, 5, 5, 10, 6, 11, 20, 295, 5, 5, 5, 5, 10, 6, 11, 20, - 287, 288, 289, 5, 5, 5, 5, 10, - 6, 11, 20, 291, 5, 5, 5, 5, - 10, 6, 11, 20, 292, 1500, 294, 294, - 294, 1492, 294, 294, 294, 1492, 296, 296, - 296, 296, 296, 296, 298, 298, 298, 298, - 298, 298, 299, 218, 225, 225, 225, 243, - 281, 302, 302, 302, 302, 302, 302, 0, - 320, 1497, 321, 1495, 323, 1494, 324, 1502, - 324, 324, 326, 1503, 326, 1503, 0, 328, - 334, 335, 330, 1504, 328, 329, 330, 1504, - 328, 330, 331, 0, 332, 333, 1504, 328, - 329, 330, 1504, 0, 337, 342, 338, 1505, - 337, 1506, 338, 0, 339, 340, 341, 1505, - 337, 1506, 338, 342, 343, 344, 345, 342, - 343, 344, 345, 0, 1505, 346, 347, 348, - 342, 343, 344, 345, 0, 350, 350, 350, - 350, 357, 0, 351, 0, 352, 352, 352, - 351, 354, 354, 354, 354, 354, 1507, 353, - 0, 352, 352, 352, 1507, 353, 353, 1507, - 355, 0, 355, 356, 356, 356, 356, 356, - 352, 352, 352, 355, 1507, 353, 357, 350, - 0, 359, 359, 359, 359, 369, 360, 368, - 364, 360, 361, 364, 0, 362, 362, 362, - 360, 364, 1508, 363, 362, 362, 362, 1508, - 363, 363, 1508, 365, 0, 366, 367, 360, - 361, 364, 369, 359, 371, 371, 371, 371, - 386, 372, 0, 0, 373, 373, 373, 1509, - 377, 383, 0, 373, 373, 373, 374, 382, - 378, 1509, 377, 383, 0, 374, 375, 378, - 376, 376, 376, 374, 378, 1509, 377, 376, - 376, 376, 377, 1509, 379, 0, 380, 381, - 374, 375, 378, 383, 1510, 384, 384, 384, - 384, 385, 385, 384, 386, 371, 0, 388, - 389, 390, 393, 391, 391, 391, 391, 391, - 392, 1511, 1512, 1513, 392, 391, 0, 395, - 405, 426, 443, 450, 459, 467, 471, 479, - 485, 501, 511, 514, 527, 546, 556, 559, - 565, 1514, 396, 399, 403, 397, 398, 1514, - 400, 401, 402, 1514, 404, 1514, 406, 408, - 415, 418, 422, 407, 1514, 409, 414, 410, - 411, 412, 413, 1514, 1514, 416, 417, 1514, - 419, 420, 421, 1514, 423, 424, 425, 1514, - 427, 431, 439, 428, 429, 430, 1514, 432, - 435, 433, 434, 1514, 436, 437, 438, 1514, - 1514, 440, 441, 442, 1514, 444, 445, 446, - 448, 447, 1514, 449, 1514, 451, 455, 452, - 453, 454, 1514, 456, 457, 458, 1514, 460, - 461, 462, 463, 464, 465, 466, 1514, 468, - 470, 469, 1514, 1514, 472, 474, 476, 478, - 473, 1514, 475, 1514, 477, 1514, 1514, 480, - 484, 481, 482, 483, 1514, 1514, 486, 490, - 492, 487, 488, 489, 1514, 491, 1514, 1514, - 493, 494, 1514, 495, 1514, 496, 497, 498, - 499, 500, 1514, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 1514, 512, 513, 1514, - 515, 521, 522, 526, 516, 517, 518, 519, - 520, 1514, 1514, 523, 524, 525, 1514, 1514, - 528, 533, 535, 537, 539, 543, 529, 530, - 531, 532, 1514, 534, 1514, 536, 1514, 538, - 1514, 540, 541, 542, 1514, 544, 545, 1514, - 547, 550, 552, 548, 549, 1514, 551, 1514, - 553, 554, 0, 555, 1514, 555, 557, 558, - 1514, 560, 561, 562, 563, 564, 1514, 566, - 567, 568, 569, 570, 1514, 0, 572, 572, - 572, 572, 577, 1515, 1516, 1517, 572, 572, - 572, 573, 578, 599, 616, 623, 632, 640, - 644, 652, 658, 674, 684, 687, 700, 719, - 729, 732, 738, 572, 577, 1515, 1516, 1517, - 572, 572, 572, 574, 744, 748, 572, 577, - 1515, 1516, 1517, 575, 576, 572, 572, 572, - 572, 577, 1515, 1516, 1517, 577, 572, 579, - 581, 588, 591, 595, 580, 572, 572, 572, - 572, 577, 1515, 1516, 1517, 582, 587, 583, - 584, 585, 586, 572, 572, 572, 572, 577, - 1515, 1516, 1517, 572, 572, 572, 572, 577, - 1515, 1516, 1517, 589, 590, 572, 572, 572, - 572, 577, 1515, 1516, 1517, 592, 593, 594, - 572, 572, 572, 572, 577, 1515, 1516, 1517, - 596, 597, 598, 572, 572, 572, 572, 577, - 1515, 1516, 1517, 600, 604, 612, 601, 602, - 603, 572, 572, 572, 572, 577, 1515, 1516, - 1517, 605, 608, 606, 607, 572, 572, 572, - 572, 577, 1515, 1516, 1517, 609, 610, 611, - 572, 572, 572, 572, 577, 1515, 1516, 1517, - 572, 572, 572, 613, 572, 577, 1515, 1516, - 1517, 614, 615, 572, 572, 572, 572, 577, - 1515, 1516, 1517, 617, 618, 619, 621, 620, - 572, 572, 572, 572, 577, 1515, 1516, 1517, - 622, 572, 572, 572, 572, 577, 1515, 1516, - 1517, 624, 628, 625, 626, 627, 572, 572, - 572, 572, 577, 1515, 1516, 1517, 629, 630, - 631, 572, 572, 572, 572, 577, 1515, 1516, - 1517, 633, 634, 635, 636, 637, 638, 639, - 572, 572, 572, 572, 577, 1515, 1516, 1517, - 641, 643, 642, 572, 572, 572, 572, 577, - 1515, 1516, 1517, 572, 572, 572, 572, 577, - 1515, 1516, 1517, 645, 647, 649, 651, 646, - 572, 572, 572, 572, 577, 1515, 1516, 1517, - 648, 572, 572, 572, 572, 577, 1515, 1516, - 1517, 650, 572, 572, 572, 572, 577, 1515, - 1516, 1517, 572, 572, 572, 572, 577, 1515, - 1516, 1517, 653, 657, 654, 655, 656, 572, - 572, 572, 572, 577, 1515, 1516, 1517, 572, - 572, 572, 572, 577, 1515, 1516, 1517, 659, - 663, 665, 660, 661, 662, 572, 572, 572, - 572, 577, 1515, 1516, 1517, 664, 572, 572, - 572, 572, 577, 1515, 1516, 1517, 572, 572, - 572, 666, 572, 577, 1515, 1516, 1517, 667, - 572, 572, 572, 668, 572, 577, 1515, 1516, - 1517, 572, 572, 572, 669, 572, 577, 1515, - 1516, 1517, 670, 671, 672, 673, 572, 572, - 572, 572, 577, 1515, 1516, 1517, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 572, - 572, 572, 572, 577, 1515, 1516, 1517, 685, - 686, 572, 572, 572, 572, 577, 1515, 1516, - 1517, 688, 694, 695, 699, 689, 690, 691, - 692, 693, 572, 572, 572, 572, 577, 1515, - 1516, 1517, 572, 572, 572, 572, 577, 1515, - 1516, 1517, 696, 697, 698, 572, 572, 572, - 572, 577, 1515, 1516, 1517, 572, 572, 572, - 572, 577, 1515, 1516, 1517, 701, 706, 708, - 710, 712, 716, 702, 703, 704, 705, 572, - 572, 572, 572, 577, 1515, 1516, 1517, 707, - 572, 572, 572, 572, 577, 1515, 1516, 1517, - 709, 572, 572, 572, 572, 577, 1515, 1516, - 1517, 711, 572, 572, 572, 572, 577, 1515, - 1516, 1517, 713, 714, 715, 572, 572, 572, - 572, 577, 1515, 1516, 1517, 717, 718, 572, - 572, 572, 572, 577, 1515, 1516, 1517, 720, - 723, 725, 721, 722, 572, 572, 572, 572, - 577, 1515, 1516, 1517, 724, 572, 572, 572, - 572, 577, 1515, 1516, 1517, 726, 727, 728, - 572, 572, 572, 728, 572, 577, 1515, 1516, - 1517, 730, 731, 572, 572, 572, 572, 577, - 1515, 1516, 1517, 733, 734, 735, 736, 737, - 572, 572, 572, 572, 577, 1515, 1516, 1517, - 739, 740, 741, 742, 743, 572, 572, 572, - 572, 577, 1515, 1516, 1517, 745, 746, 747, - 572, 572, 572, 572, 577, 1515, 1516, 1517, - 749, 572, 572, 572, 572, 577, 1515, 1516, - 1517, 0, 751, 751, 751, 751, 758, 0, - 752, 753, 753, 753, 752, 753, 757, 0, - 753, 753, 753, 754, 753, 757, 755, 755, - 755, 755, 755, 756, 1518, 1519, 1520, 756, - 755, 757, 753, 758, 751, 760, 760, 760, - 760, 768, 761, 767, 1521, 1521, 1521, 767, - 1522, 1521, 1525, 762, 762, 762, 763, 762, - 766, 764, 764, 764, 764, 764, 765, 1522, - 1523, 1524, 765, 764, 766, 762, 762, 762, - 762, 762, 766, 768, 760, 0, 770, 774, - 781, 784, 797, 801, 816, 821, 771, 772, - 773, 1526, 775, 776, 777, 778, 779, 780, - 1526, 782, 783, 1526, 785, 786, 787, 792, - 788, 789, 790, 791, 1526, 793, 794, 795, - 796, 1526, 798, 799, 0, 800, 1526, 800, - 802, 803, 804, 805, 806, 807, 808, 809, - 810, 811, 812, 813, 814, 815, 1526, 817, - 818, 819, 820, 1526, 822, 823, 824, 1526, - 0, 826, 826, 826, 826, 833, 1527, 1528, - 1529, 826, 826, 826, 827, 834, 846, 861, - 886, 891, 906, 921, 926, 826, 833, 1527, - 1528, 1529, 828, 829, 830, 831, 832, 934, - 826, 826, 826, 826, 833, 1527, 1528, 1529, - 833, 826, 835, 836, 837, 838, 839, 840, - 841, 842, 843, 826, 826, 826, 826, 833, - 1527, 1528, 1529, 844, 845, 826, 826, 826, - 826, 833, 1527, 1528, 1529, 847, 848, 849, - 850, 856, 851, 852, 853, 855, 854, 854, - 851, 857, 858, 860, 859, 859, 856, 862, - 863, 864, 875, 865, 866, 867, 868, 869, - 0, 870, 873, 871, 845, 872, 871, 871, - 826, 826, 826, 874, 873, 826, 833, 1527, - 1528, 1529, 873, 876, 877, 878, 879, 880, - 881, 884, 882, 845, 883, 882, 882, 826, - 826, 826, 885, 884, 826, 833, 1527, 1528, - 1529, 884, 887, 888, 0, 889, 826, 826, - 826, 889, 890, 826, 833, 1527, 1528, 1529, - 892, 893, 894, 895, 896, 897, 898, 899, - 900, 901, 904, 902, 845, 903, 902, 826, - 826, 826, 905, 826, 833, 1527, 1528, 1529, - 904, 907, 908, 909, 910, 911, 912, 913, - 914, 915, 916, 917, 918, 919, 920, 826, - 826, 826, 826, 833, 1527, 1528, 1529, 922, - 923, 924, 925, 826, 826, 826, 826, 833, - 1527, 1528, 1529, 927, 928, 929, 930, 931, - 933, 932, 845, 932, 826, 826, 826, 933, - 826, 833, 1527, 1528, 1529, 935, 845, 0, - 937, 938, 953, 992, 1000, 1013, 1530, 937, - 939, 940, 1530, 941, 1530, 942, 943, 944, - 945, 946, 947, 948, 949, 950, 951, 952, - 1530, 954, 983, 955, 961, 956, 957, 958, - 959, 960, 1530, 962, 963, 964, 965, 974, - 966, 967, 968, 969, 970, 971, 972, 973, - 1530, 975, 976, 977, 978, 979, 980, 981, - 982, 1530, 984, 989, 985, 986, 987, 988, - 1530, 990, 991, 1530, 993, 994, 995, 996, - 997, 998, 999, 1530, 1001, 1002, 1003, 1004, - 1005, 1006, 1007, 1010, 1008, 1009, 1530, 1011, - 1012, 1530, 1014, 1015, 1016, 1019, 1017, 1018, - 1530, 1020, 1021, 1022, 1034, 1037, 1530, 1023, - 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, - 1032, 1033, 1530, 1035, 1036, 1530, 1038, 1039, - 1530, 0, 1041, 1042, 1048, 1065, 1068, 1074, - 1078, 1531, 1041, 1043, 1044, 1045, 1046, 1047, - 1531, 1049, 1055, 1061, 1050, 1051, 1052, 1053, - 1054, 1531, 1056, 1058, 1057, 1531, 1059, 1060, - 1531, 1062, 1063, 1064, 1531, 1066, 1067, 1531, - 1069, 1071, 1070, 1531, 1072, 1073, 1531, 1075, - 1076, 1077, 1531, 1079, 1080, 1531, 0, 1082, - 1083, 1532, 1082, 1084, 1085, 1086, 1087, 1088, - 1532, 0, 1090, 1533, 1090, 1092, 1534, 1094, - 1095, 1095, 1095, 1095, 1124, 1095, 1095, 1095, - 1096, 1095, 1124, 1097, 1097, 1097, 1097, 1123, - 0, 1097, 1097, 1097, 1098, 1097, 1123, 1099, - 1099, 1099, 1098, 1099, 1122, 1099, 1099, 1099, - 1100, 1099, 1122, 0, 1101, 1101, 1101, 1100, - 1119, 1119, 1119, 1119, 1119, 1101, 1118, 1101, - 1101, 1101, 1102, 1101, 1118, 1103, 1103, 1103, - 1102, 1115, 1115, 1115, 1115, 1115, 1103, 1114, - 1103, 1103, 1103, 1104, 1103, 1114, 1105, 1105, - 1105, 1104, 1111, 1111, 1111, 1111, 1111, 1105, - 1110, 1105, 1105, 1105, 1106, 1105, 1110, 1535, - 1106, 1107, 1107, 1107, 1107, 1107, 1108, 1108, - 1109, 1109, 1109, 1109, 1109, 1535, 1108, 1110, - 1105, 1112, 1112, 1113, 1113, 1113, 1113, 1113, - 1105, 1105, 1105, 1112, 1105, 1110, 1114, 1103, - 1116, 1116, 1117, 1117, 1117, 1117, 1117, 1103, - 1103, 1103, 1116, 1103, 1114, 1118, 1101, 1120, - 1120, 1121, 1121, 1121, 1121, 1121, 1101, 1101, - 1101, 1120, 1101, 1118, 1122, 1099, 1123, 1097, - 1124, 1095, 1126, 1127, 1127, 1127, 1127, 1129, - 1128, 1127, 1127, 1127, 1127, 1129, 1536, 1129, - 1127, 1131, 1132, 1132, 1132, 1132, 1134, 1132, - 1132, 1132, 1133, 1132, 1134, 1537, 1134, 1132, - 1136, 1137, 1137, 1137, 1136, 1137, 1139, 1137, - 1137, 1137, 1138, 1137, 1139, 1538, 1139, 1137, - 1141, 0, 1142, 1142, 1142, 1142, 1143, 1539, - 1540, 1541, 1141, 1142, 1142, 1142, 1142, 1143, - 1539, 1540, 1541, 1143, 1142, 1145, 1542, 1145, - 0, 1147, 1148, 1148, 1148, 1147, 1148, 1200, - 1148, 1148, 1148, 1149, 1153, 1195, 1148, 1200, - 1150, 1150, 1150, 1149, 1150, 1199, 1150, 1150, - 1150, 1151, 1150, 1199, 1152, 1152, 1152, 1197, - 1151, 1152, 1196, 1152, 1152, 1152, 1152, 1196, - 1154, 1154, 1154, 1154, 1194, 1155, 1156, 1156, - 1156, 1155, 1156, 1193, 1156, 1156, 1156, 1157, - 1161, 1188, 1156, 1193, 1158, 1158, 1158, 1157, - 1158, 1192, 1158, 1158, 1158, 1159, 1158, 1192, - 1160, 1160, 1160, 1190, 1159, 1160, 1189, 1160, - 1160, 1160, 1160, 1189, 1162, 1162, 1162, 1162, - 1187, 1163, 1164, 1164, 1165, 1165, 1165, 1184, - 1164, 1186, 1165, 1183, 1543, 1550, 1551, 1165, - 1165, 1165, 1166, 1165, 1183, 1543, 1550, 1551, - 1167, 1167, 1167, 1180, 1166, 1182, 1167, 1179, - 1543, 1548, 1549, 1167, 1167, 1167, 1168, 1167, - 1179, 1548, 1549, 1169, 1169, 1169, 1176, 1168, - 1178, 1169, 1175, 1543, 1546, 1547, 1169, 1169, - 1169, 1170, 1169, 1175, 1546, 1547, 1171, 1171, - 1171, 1173, 1170, 1171, 1172, 1543, 1544, 1545, - 1171, 1171, 1171, 1171, 1172, 1544, 1545, 1172, - 1171, 1171, 1171, 1171, 1174, 1171, 1172, 1543, - 1544, 1545, 1174, 1175, 1169, 1169, 1169, 1169, - 1177, 1178, 1169, 1175, 1543, 1546, 1547, 1177, - 1179, 1167, 1167, 1167, 1167, 1181, 1182, 1167, - 1179, 1543, 1548, 1549, 1181, 1183, 1165, 1165, - 1165, 1165, 1185, 1186, 1165, 1183, 1543, 1550, - 1551, 1185, 1187, 1162, 1162, 1162, 1162, 1162, - 1187, 1189, 1160, 1160, 1160, 1160, 1191, 1160, - 1189, 1191, 1192, 1158, 1193, 1156, 1194, 1154, - 1154, 1154, 1154, 1154, 1194, 1196, 1152, 1152, - 1152, 1152, 1198, 1152, 1196, 1198, 1199, 1150, - 1200, 1148, 1202, 1203, 1203, 1203, 1202, 1203, - 1211, 1203, 1203, 1203, 1204, 1203, 1211, 1205, - 1205, 1205, 1204, 1205, 1210, 1205, 1205, 1205, - 1206, 1205, 1210, 1207, 1207, 1207, 1206, 1207, - 1209, 1207, 1207, 1207, 1208, 1207, 1209, 1552, - 1209, 1207, 1210, 1205, 1211, 1203, 1213, 1214, - 1214, 1214, 1213, 1214, 1228, 1214, 1214, 1214, - 1215, 1214, 1228, 1216, 1216, 1216, 1215, 1216, - 1227, 1217, 1216, 1216, 1216, 1216, 1227, 1218, - 1218, 1218, 1218, 1226, 1219, 1218, 1218, 1218, - 1218, 1226, 1220, 1220, 1220, 1220, 1225, 1221, - 1220, 1220, 1220, 1220, 1225, 1222, 1222, 1222, - 1222, 1224, 1222, 1222, 1222, 1223, 1222, 1224, - 1553, 1224, 1222, 1225, 1220, 1226, 1218, 1227, - 1216, 1228, 1214, 1230, 1231, 1231, 1231, 1231, - 1239, 1232, 1233, 1233, 1233, 1232, 1233, 1238, - 1233, 1233, 1233, 1234, 1233, 1238, 1235, 1235, - 1235, 1235, 1237, 1236, 1554, 1237, 1235, 1238, - 1233, 1239, 1231, 0, 1240, 1241, 1240, 1240, - 1242, 1248, 1240, 1247, 1555, 1556, 1557, 1242, - 1248, 1243, 0, 1244, 1244, 1245, 1246, 1240, - 1240, 1240, 1246, 1240, 1247, 1555, 1556, 1557, - 1247, 1240, 1249, 1250, 1250, 1245, 1252, 1253, - 1253, 1253, 1252, 1253, 1263, 1253, 1253, 1253, - 1254, 1253, 1263, 1255, 1255, 1255, 1255, 1262, - 1256, 1257, 1257, 1257, 1256, 1257, 1261, 0, - 1257, 1257, 1257, 1258, 1257, 1261, 1259, 1259, - 1259, 1259, 1259, 1260, 1558, 1559, 1560, 1260, - 1259, 1261, 1257, 1262, 1255, 1263, 1253, 1265, - 1266, 1266, 1266, 1265, 1266, 1273, 1266, 1266, - 1266, 1267, 1266, 1273, 1268, 1268, 1268, 1267, - 1268, 1272, 1268, 1268, 1268, 1269, 1268, 1272, - 1270, 1270, 1270, 1270, 1270, 1271, 1561, 1562, - 1563, 1271, 1270, 1272, 1268, 1273, 1266, 1275, - 1276, 1276, 1276, 1275, 1276, 1312, 0, 1276, - 1276, 1276, 1277, 1291, 1298, 1305, 1276, 1312, - 1278, 1278, 1278, 1278, 1290, 0, 1279, 1280, - 1280, 1280, 1279, 1280, 1289, 1280, 1280, 1280, - 1281, 1280, 1289, 0, 1282, 1282, 1282, 1285, - 1285, 1285, 1287, 1287, 1287, 1564, 1282, 1284, - 1567, 1568, 1285, 1286, 1565, 1566, 1287, 1288, - 1569, 1570, 0, 1283, 1284, 1282, 1286, 1285, - 1288, 1287, 1289, 1280, 1290, 1278, 1292, 1292, - 1292, 1292, 1297, 1293, 1294, 1294, 1294, 1293, - 1294, 1296, 0, 1294, 1294, 1294, 1295, 1294, - 1296, 0, 1295, 1282, 1282, 1282, 1285, 1285, - 1285, 1287, 1287, 1287, 1564, 1282, 1284, 1567, - 1568, 1285, 1286, 1565, 1566, 1287, 1288, 1569, - 1570, 1296, 1294, 1297, 1292, 1299, 1299, 1299, - 1299, 1304, 1300, 1301, 1301, 1301, 1300, 1301, - 1303, 1301, 1301, 1301, 1302, 1301, 1303, 1302, - 1282, 1282, 1282, 1285, 1285, 1285, 1287, 1287, - 1287, 1564, 1282, 1284, 1567, 1568, 1285, 1286, - 1565, 1566, 1287, 1288, 1569, 1570, 1303, 1301, - 1304, 1299, 1306, 1306, 1306, 1306, 1311, 1307, - 1308, 1308, 1308, 1307, 1308, 1310, 1308, 1308, - 1308, 1309, 1308, 1310, 1282, 1282, 1282, 1285, - 1285, 1285, 1287, 1287, 1287, 1564, 1282, 1284, - 1567, 1568, 1285, 1286, 1565, 1566, 1287, 1288, - 1569, 1570, 1310, 1308, 1311, 1306, 1312, 1276, - 1314, 1315, 1315, 1315, 1315, 1338, 1316, 1317, - 1317, 1317, 1317, 1337, 1318, 1319, 1319, 1319, - 1318, 1319, 1336, 1319, 1319, 1319, 1320, 1319, - 1336, 1321, 1321, 1321, 1320, 1321, 1335, 0, - 1321, 1321, 1321, 1322, 1321, 1335, 1323, 1323, - 1323, 1322, 1323, 1334, 1323, 1323, 1323, 1324, - 1323, 1334, 1325, 1325, 1325, 1324, 1325, 1333, - 1325, 1325, 1325, 1326, 1325, 1333, 1327, 1327, - 1327, 1326, 1327, 1332, 1327, 1327, 1327, 1328, - 1327, 1332, 1329, 1329, 1329, 1329, 1331, 1329, - 1329, 1329, 1330, 1329, 1331, 1571, 1331, 1329, - 1332, 1327, 1333, 1325, 1334, 1323, 1335, 1321, - 1336, 1319, 1337, 1317, 1338, 1315, 1340, 1341, - 1572, 1343, 1344, 1344, 1344, 1343, 1344, 1352, - 1344, 1344, 1344, 1345, 1344, 1352, 1346, 1346, - 1346, 1345, 1346, 1351, 1346, 1346, 1346, 1347, - 1346, 1351, 1348, 1348, 1348, 1348, 1350, 1349, - 1573, 1350, 1348, 1351, 1346, 1352, 1344, 1354, - 1574, 1356, 1357, 1357, 1357, 1356, 1357, 1383, - 1357, 1357, 1357, 1358, 1357, 1383, 1359, 1359, - 1359, 1358, 1359, 1382, 1359, 1359, 1359, 1360, - 1359, 1382, 1361, 1361, 1361, 1360, 1361, 1381, - 1361, 1361, 1361, 1362, 1379, 1361, 1381, 1363, - 1363, 1363, 1363, 1378, 0, 1363, 1363, 1363, - 1364, 1363, 1378, 1365, 1366, 1376, 1367, 1368, - 1375, 1369, 1373, 1370, 1371, 1371, 1372, 1364, - 1575, 1374, 1377, 1378, 1363, 1380, 1379, 1381, - 1361, 1382, 1359, 1383, 1357, 1385, 1386, 1386, - 1386, 1385, 1386, 1396, 1386, 1386, 1386, 1387, - 1386, 1396, 1388, 1388, 1388, 1387, 1388, 1395, - 1388, 1388, 1388, 1389, 1388, 1395, 1390, 1390, - 1390, 1389, 1390, 1394, 1390, 1390, 1390, 1391, - 1392, 1390, 1394, 1576, 1393, 1392, 1394, 1390, - 1395, 1388, 1396, 1386, 1398, 1399, 1399, 1399, - 1398, 1399, 1409, 1399, 1399, 1399, 1400, 1399, - 1409, 1401, 1401, 1401, 1400, 1401, 1408, 1401, - 1401, 1401, 1402, 1401, 1408, 1403, 1403, 1403, - 1402, 1403, 1407, 1403, 1403, 1403, 1404, 1403, - 1407, 1405, 1405, 1405, 1405, 1405, 1406, 1577, - 1578, 1579, 1406, 1405, 1407, 1403, 1408, 1401, - 1409, 1399, 1411, 1412, 1412, 1412, 1411, 1412, - 1415, 1412, 1412, 1412, 1413, 1412, 1415, 1414, - 1413, 1580, 1415, 1412, 1417, 1418, 1418, 1418, - 1417, 1418, 1428, 1418, 1418, 1418, 1419, 1418, - 1428, 1420, 1420, 1420, 1419, 1420, 1427, 1420, - 1420, 1420, 1421, 1420, 1427, 1422, 1422, 1422, - 1421, 1422, 1426, 1422, 1422, 1422, 1423, 1422, - 1426, 1424, 1424, 1424, 1424, 1424, 1425, 1581, - 1582, 1583, 1425, 1424, 1426, 1422, 1427, 1420, - 1428, 1418, 1430, 1431, 1431, 1431, 1430, 1431, - 1433, 1431, 1431, 1431, 1432, 1431, 1433, 1584, - 1432, 1433, 1431, 1435, 1436, 1436, 1436, 1435, - 1436, 1446, 1436, 1436, 1436, 1437, 1436, 1446, - 1438, 1439, 1440, 0, 1441, 1442, 1443, 1444, - 1445, 0, 1585, 1446, 1436, 1448, 1449, 0, - 1450, 1451, 1452, 1586, 1454, 1455, 1456, 1457, - 1458, 1587, 1460, 1461, 1461, 1461, 1460, 1461, - 1466, 1461, 1461, 1461, 1462, 1461, 1466, 1463, - 1463, 1463, 1462, 1463, 1465, 1464, 1463, 1463, - 1463, 1463, 1465, 1588, 1465, 1463, 1466, 1461, - 1468, 1469, 1469, 1469, 1468, 1469, 1474, 1470, - 1469, 1469, 1469, 1469, 1474, 1471, 1471, 1471, - 1471, 1473, 1472, 1471, 1471, 1471, 1471, 1473, - 1589, 1473, 1471, 1474, 1469, 1476, 1477, 1477, - 1477, 1476, 1477, 1480, 1477, 1477, 1477, 1478, - 1477, 1480, 1479, 1590, 1480, 1477, 1482, 1483, - 1483, 1483, 1483, 1491, 1484, 1485, 1485, 1485, - 1485, 1490, 1486, 1487, 1487, 1487, 1486, 1487, - 1489, 1487, 1487, 1487, 1488, 1487, 1489, 1591, - 1489, 1487, 1490, 1485, 1491, 1483, 0, 1, - 199, 1, 1, 207, 1492, 198, 1497, 320, - 14, 244, 14, 14, 254, 277, 1500, 292, - 1498, 293, 1501, 295, 0, 189, 189, 189, - 217, 303, 304, 305, 306, 322, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 1495, 321, 0, 210, 217, 303, - 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, - 0, 1, 199, 1, 1, 207, 1492, 198, - 1497, 320, 1, 1, 1497, 320, 221, 221, - 221, 1497, 222, 225, 225, 225, 243, 281, - 0, 255, 258, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 1497 + 296, 1512, 298, 298, 298, 1504, 298, 298, + 298, 1504, 300, 300, 300, 300, 300, 300, + 302, 302, 302, 302, 302, 302, 303, 218, + 225, 225, 225, 243, 281, 306, 306, 306, + 306, 306, 306, 0, 324, 1509, 325, 1507, + 327, 1506, 328, 1514, 328, 328, 330, 1515, + 330, 1515, 0, 332, 338, 339, 334, 1516, + 332, 333, 334, 1516, 332, 334, 335, 0, + 336, 337, 1516, 332, 333, 334, 1516, 0, + 341, 346, 342, 1517, 341, 1518, 342, 0, + 343, 344, 345, 1517, 341, 1518, 342, 346, + 347, 348, 349, 346, 347, 348, 349, 0, + 1517, 350, 351, 352, 346, 347, 348, 349, + 0, 354, 354, 354, 354, 361, 0, 355, + 0, 356, 356, 356, 355, 358, 358, 358, + 358, 358, 1519, 357, 0, 356, 356, 356, + 1519, 357, 357, 1519, 359, 0, 359, 360, + 360, 360, 360, 360, 356, 356, 356, 359, + 1519, 357, 361, 354, 0, 363, 363, 363, + 363, 373, 364, 372, 368, 364, 365, 368, + 0, 366, 366, 366, 364, 368, 1520, 367, + 366, 366, 366, 1520, 367, 367, 1520, 369, + 0, 370, 371, 364, 365, 368, 373, 363, + 375, 375, 375, 375, 390, 376, 0, 0, + 377, 377, 377, 1521, 381, 387, 0, 377, + 377, 377, 378, 386, 382, 1521, 381, 387, + 0, 378, 379, 382, 380, 380, 380, 378, + 382, 1521, 381, 380, 380, 380, 381, 1521, + 383, 0, 384, 385, 378, 379, 382, 387, + 1522, 388, 388, 388, 388, 389, 389, 388, + 390, 375, 0, 392, 393, 394, 397, 395, + 395, 395, 395, 395, 396, 1523, 1524, 1525, + 396, 395, 0, 399, 413, 434, 451, 458, + 467, 475, 479, 487, 493, 509, 519, 522, + 535, 554, 564, 567, 573, 1526, 400, 403, + 407, 411, 401, 402, 1526, 404, 405, 406, + 1526, 408, 409, 410, 1526, 412, 1526, 414, + 416, 423, 426, 430, 415, 1526, 417, 422, + 418, 419, 420, 421, 1526, 1526, 424, 425, + 1526, 427, 428, 429, 1526, 431, 432, 433, + 1526, 435, 439, 447, 436, 437, 438, 1526, + 440, 443, 441, 442, 1526, 444, 445, 446, + 1526, 1526, 448, 449, 450, 1526, 452, 453, + 454, 456, 455, 1526, 457, 1526, 459, 463, + 460, 461, 462, 1526, 464, 465, 466, 1526, + 468, 469, 470, 471, 472, 473, 474, 1526, + 476, 478, 477, 1526, 1526, 480, 482, 484, + 486, 481, 1526, 483, 1526, 485, 1526, 1526, + 488, 492, 489, 490, 491, 1526, 1526, 494, + 498, 500, 495, 496, 497, 1526, 499, 1526, + 1526, 501, 502, 1526, 503, 1526, 504, 505, + 506, 507, 508, 1526, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 1526, 520, 521, + 1526, 523, 529, 530, 534, 524, 525, 526, + 527, 528, 1526, 1526, 531, 532, 533, 1526, + 1526, 536, 541, 543, 545, 547, 551, 537, + 538, 539, 540, 1526, 542, 1526, 544, 1526, + 546, 1526, 548, 549, 550, 1526, 552, 553, + 1526, 555, 558, 560, 556, 557, 1526, 559, + 1526, 561, 562, 0, 563, 1526, 563, 565, + 566, 1526, 568, 569, 570, 571, 572, 1526, + 574, 575, 576, 577, 578, 1526, 0, 580, + 580, 580, 580, 585, 1527, 1528, 1529, 580, + 580, 580, 581, 586, 607, 624, 631, 640, + 648, 652, 660, 666, 682, 692, 695, 708, + 727, 737, 740, 746, 580, 585, 1527, 1528, + 1529, 580, 580, 580, 582, 752, 756, 760, + 580, 585, 1527, 1528, 1529, 583, 584, 580, + 580, 580, 580, 585, 1527, 1528, 1529, 585, + 580, 587, 589, 596, 599, 603, 588, 580, + 580, 580, 580, 585, 1527, 1528, 1529, 590, + 595, 591, 592, 593, 594, 580, 580, 580, + 580, 585, 1527, 1528, 1529, 580, 580, 580, + 580, 585, 1527, 1528, 1529, 597, 598, 580, + 580, 580, 580, 585, 1527, 1528, 1529, 600, + 601, 602, 580, 580, 580, 580, 585, 1527, + 1528, 1529, 604, 605, 606, 580, 580, 580, + 580, 585, 1527, 1528, 1529, 608, 612, 620, + 609, 610, 611, 580, 580, 580, 580, 585, + 1527, 1528, 1529, 613, 616, 614, 615, 580, + 580, 580, 580, 585, 1527, 1528, 1529, 617, + 618, 619, 580, 580, 580, 580, 585, 1527, + 1528, 1529, 580, 580, 580, 621, 580, 585, + 1527, 1528, 1529, 622, 623, 580, 580, 580, + 580, 585, 1527, 1528, 1529, 625, 626, 627, + 629, 628, 580, 580, 580, 580, 585, 1527, + 1528, 1529, 630, 580, 580, 580, 580, 585, + 1527, 1528, 1529, 632, 636, 633, 634, 635, + 580, 580, 580, 580, 585, 1527, 1528, 1529, + 637, 638, 639, 580, 580, 580, 580, 585, + 1527, 1528, 1529, 641, 642, 643, 644, 645, + 646, 647, 580, 580, 580, 580, 585, 1527, + 1528, 1529, 649, 651, 650, 580, 580, 580, + 580, 585, 1527, 1528, 1529, 580, 580, 580, + 580, 585, 1527, 1528, 1529, 653, 655, 657, + 659, 654, 580, 580, 580, 580, 585, 1527, + 1528, 1529, 656, 580, 580, 580, 580, 585, + 1527, 1528, 1529, 658, 580, 580, 580, 580, + 585, 1527, 1528, 1529, 580, 580, 580, 580, + 585, 1527, 1528, 1529, 661, 665, 662, 663, + 664, 580, 580, 580, 580, 585, 1527, 1528, + 1529, 580, 580, 580, 580, 585, 1527, 1528, + 1529, 667, 671, 673, 668, 669, 670, 580, + 580, 580, 580, 585, 1527, 1528, 1529, 672, + 580, 580, 580, 580, 585, 1527, 1528, 1529, + 580, 580, 580, 674, 580, 585, 1527, 1528, + 1529, 675, 580, 580, 580, 676, 580, 585, + 1527, 1528, 1529, 580, 580, 580, 677, 580, + 585, 1527, 1528, 1529, 678, 679, 680, 681, + 580, 580, 580, 580, 585, 1527, 1528, 1529, + 683, 684, 685, 686, 687, 688, 689, 690, + 691, 580, 580, 580, 580, 585, 1527, 1528, + 1529, 693, 694, 580, 580, 580, 580, 585, + 1527, 1528, 1529, 696, 702, 703, 707, 697, + 698, 699, 700, 701, 580, 580, 580, 580, + 585, 1527, 1528, 1529, 580, 580, 580, 580, + 585, 1527, 1528, 1529, 704, 705, 706, 580, + 580, 580, 580, 585, 1527, 1528, 1529, 580, + 580, 580, 580, 585, 1527, 1528, 1529, 709, + 714, 716, 718, 720, 724, 710, 711, 712, + 713, 580, 580, 580, 580, 585, 1527, 1528, + 1529, 715, 580, 580, 580, 580, 585, 1527, + 1528, 1529, 717, 580, 580, 580, 580, 585, + 1527, 1528, 1529, 719, 580, 580, 580, 580, + 585, 1527, 1528, 1529, 721, 722, 723, 580, + 580, 580, 580, 585, 1527, 1528, 1529, 725, + 726, 580, 580, 580, 580, 585, 1527, 1528, + 1529, 728, 731, 733, 729, 730, 580, 580, + 580, 580, 585, 1527, 1528, 1529, 732, 580, + 580, 580, 580, 585, 1527, 1528, 1529, 734, + 735, 736, 580, 580, 580, 736, 580, 585, + 1527, 1528, 1529, 738, 739, 580, 580, 580, + 580, 585, 1527, 1528, 1529, 741, 742, 743, + 744, 745, 580, 580, 580, 580, 585, 1527, + 1528, 1529, 747, 748, 749, 750, 751, 580, + 580, 580, 580, 585, 1527, 1528, 1529, 753, + 754, 755, 580, 580, 580, 580, 585, 1527, + 1528, 1529, 757, 758, 759, 580, 580, 580, + 580, 585, 1527, 1528, 1529, 761, 580, 580, + 580, 580, 585, 1527, 1528, 1529, 0, 763, + 763, 763, 763, 770, 0, 764, 765, 765, + 765, 764, 765, 769, 0, 765, 765, 765, + 766, 765, 769, 767, 767, 767, 767, 767, + 768, 1530, 1531, 1532, 768, 767, 769, 765, + 770, 763, 772, 772, 772, 772, 780, 773, + 779, 1533, 1533, 1533, 779, 1534, 1533, 1537, + 774, 774, 774, 775, 774, 778, 776, 776, + 776, 776, 776, 777, 1534, 1535, 1536, 777, + 776, 778, 774, 774, 774, 774, 774, 778, + 780, 772, 0, 782, 786, 793, 796, 809, + 813, 828, 833, 783, 784, 785, 1538, 787, + 788, 789, 790, 791, 792, 1538, 794, 795, + 1538, 797, 798, 799, 804, 800, 801, 802, + 803, 1538, 805, 806, 807, 808, 1538, 810, + 811, 0, 812, 1538, 812, 814, 815, 816, + 817, 818, 819, 820, 821, 822, 823, 824, + 825, 826, 827, 1538, 829, 830, 831, 832, + 1538, 834, 835, 836, 1538, 0, 838, 838, + 838, 838, 845, 1539, 1540, 1541, 838, 838, + 838, 839, 846, 858, 873, 898, 903, 918, + 933, 938, 838, 845, 1539, 1540, 1541, 840, + 841, 842, 843, 844, 946, 838, 838, 838, + 838, 845, 1539, 1540, 1541, 845, 838, 847, + 848, 849, 850, 851, 852, 853, 854, 855, + 838, 838, 838, 838, 845, 1539, 1540, 1541, + 856, 857, 838, 838, 838, 838, 845, 1539, + 1540, 1541, 859, 860, 861, 862, 868, 863, + 864, 865, 867, 866, 866, 863, 869, 870, + 872, 871, 871, 868, 874, 875, 876, 887, + 877, 878, 879, 880, 881, 0, 882, 885, + 883, 857, 884, 883, 883, 838, 838, 838, + 886, 885, 838, 845, 1539, 1540, 1541, 885, + 888, 889, 890, 891, 892, 893, 896, 894, + 857, 895, 894, 894, 838, 838, 838, 897, + 896, 838, 845, 1539, 1540, 1541, 896, 899, + 900, 0, 901, 838, 838, 838, 901, 902, + 838, 845, 1539, 1540, 1541, 904, 905, 906, + 907, 908, 909, 910, 911, 912, 913, 916, + 914, 857, 915, 914, 838, 838, 838, 917, + 838, 845, 1539, 1540, 1541, 916, 919, 920, + 921, 922, 923, 924, 925, 926, 927, 928, + 929, 930, 931, 932, 838, 838, 838, 838, + 845, 1539, 1540, 1541, 934, 935, 936, 937, + 838, 838, 838, 838, 845, 1539, 1540, 1541, + 939, 940, 941, 942, 943, 945, 944, 857, + 944, 838, 838, 838, 945, 838, 845, 1539, + 1540, 1541, 947, 857, 0, 949, 950, 965, + 1004, 1012, 1025, 1542, 949, 951, 952, 1542, + 953, 1542, 954, 955, 956, 957, 958, 959, + 960, 961, 962, 963, 964, 1542, 966, 995, + 967, 973, 968, 969, 970, 971, 972, 1542, + 974, 975, 976, 977, 986, 978, 979, 980, + 981, 982, 983, 984, 985, 1542, 987, 988, + 989, 990, 991, 992, 993, 994, 1542, 996, + 1001, 997, 998, 999, 1000, 1542, 1002, 1003, + 1542, 1005, 1006, 1007, 1008, 1009, 1010, 1011, + 1542, 1013, 1014, 1015, 1016, 1017, 1018, 1019, + 1022, 1020, 1021, 1542, 1023, 1024, 1542, 1026, + 1027, 1028, 1031, 1029, 1030, 1542, 1032, 1033, + 1034, 1046, 1049, 1542, 1035, 1036, 1037, 1038, + 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1542, + 1047, 1048, 1542, 1050, 1051, 1542, 0, 1053, + 1054, 1060, 1077, 1080, 1086, 1090, 1543, 1053, + 1055, 1056, 1057, 1058, 1059, 1543, 1061, 1067, + 1073, 1062, 1063, 1064, 1065, 1066, 1543, 1068, + 1070, 1069, 1543, 1071, 1072, 1543, 1074, 1075, + 1076, 1543, 1078, 1079, 1543, 1081, 1083, 1082, + 1543, 1084, 1085, 1543, 1087, 1088, 1089, 1543, + 1091, 1092, 1543, 0, 1094, 1095, 1544, 1094, + 1096, 1097, 1098, 1099, 1100, 1544, 0, 1102, + 1545, 1102, 1104, 1546, 1106, 1107, 1107, 1107, + 1107, 1136, 1107, 1107, 1107, 1108, 1107, 1136, + 1109, 1109, 1109, 1109, 1135, 0, 1109, 1109, + 1109, 1110, 1109, 1135, 1111, 1111, 1111, 1110, + 1111, 1134, 1111, 1111, 1111, 1112, 1111, 1134, + 0, 1113, 1113, 1113, 1112, 1131, 1131, 1131, + 1131, 1131, 1113, 1130, 1113, 1113, 1113, 1114, + 1113, 1130, 1115, 1115, 1115, 1114, 1127, 1127, + 1127, 1127, 1127, 1115, 1126, 1115, 1115, 1115, + 1116, 1115, 1126, 1117, 1117, 1117, 1116, 1123, + 1123, 1123, 1123, 1123, 1117, 1122, 1117, 1117, + 1117, 1118, 1117, 1122, 1547, 1118, 1119, 1119, + 1119, 1119, 1119, 1120, 1120, 1121, 1121, 1121, + 1121, 1121, 1547, 1120, 1122, 1117, 1124, 1124, + 1125, 1125, 1125, 1125, 1125, 1117, 1117, 1117, + 1124, 1117, 1122, 1126, 1115, 1128, 1128, 1129, + 1129, 1129, 1129, 1129, 1115, 1115, 1115, 1128, + 1115, 1126, 1130, 1113, 1132, 1132, 1133, 1133, + 1133, 1133, 1133, 1113, 1113, 1113, 1132, 1113, + 1130, 1134, 1111, 1135, 1109, 1136, 1107, 1138, + 1139, 1139, 1139, 1139, 1141, 1140, 1139, 1139, + 1139, 1139, 1141, 1548, 1141, 1139, 1143, 1144, + 1144, 1144, 1144, 1146, 1144, 1144, 1144, 1145, + 1144, 1146, 1549, 1146, 1144, 1148, 1149, 1149, + 1149, 1148, 1149, 1151, 1149, 1149, 1149, 1150, + 1149, 1151, 1550, 1151, 1149, 1153, 0, 1154, + 1154, 1154, 1154, 1155, 1551, 1552, 1553, 1153, + 1154, 1154, 1154, 1154, 1155, 1551, 1552, 1553, + 1155, 1154, 1157, 1554, 1157, 0, 1159, 1160, + 1160, 1160, 1159, 1160, 1212, 1160, 1160, 1160, + 1161, 1165, 1207, 1160, 1212, 1162, 1162, 1162, + 1161, 1162, 1211, 1162, 1162, 1162, 1163, 1162, + 1211, 1164, 1164, 1164, 1209, 1163, 1164, 1208, + 1164, 1164, 1164, 1164, 1208, 1166, 1166, 1166, + 1166, 1206, 1167, 1168, 1168, 1168, 1167, 1168, + 1205, 1168, 1168, 1168, 1169, 1173, 1200, 1168, + 1205, 1170, 1170, 1170, 1169, 1170, 1204, 1170, + 1170, 1170, 1171, 1170, 1204, 1172, 1172, 1172, + 1202, 1171, 1172, 1201, 1172, 1172, 1172, 1172, + 1201, 1174, 1174, 1174, 1174, 1199, 1175, 1176, + 1176, 1177, 1177, 1177, 1196, 1176, 1198, 1177, + 1195, 1555, 1562, 1563, 1177, 1177, 1177, 1178, + 1177, 1195, 1555, 1562, 1563, 1179, 1179, 1179, + 1192, 1178, 1194, 1179, 1191, 1555, 1560, 1561, + 1179, 1179, 1179, 1180, 1179, 1191, 1560, 1561, + 1181, 1181, 1181, 1188, 1180, 1190, 1181, 1187, + 1555, 1558, 1559, 1181, 1181, 1181, 1182, 1181, + 1187, 1558, 1559, 1183, 1183, 1183, 1185, 1182, + 1183, 1184, 1555, 1556, 1557, 1183, 1183, 1183, + 1183, 1184, 1556, 1557, 1184, 1183, 1183, 1183, + 1183, 1186, 1183, 1184, 1555, 1556, 1557, 1186, + 1187, 1181, 1181, 1181, 1181, 1189, 1190, 1181, + 1187, 1555, 1558, 1559, 1189, 1191, 1179, 1179, + 1179, 1179, 1193, 1194, 1179, 1191, 1555, 1560, + 1561, 1193, 1195, 1177, 1177, 1177, 1177, 1197, + 1198, 1177, 1195, 1555, 1562, 1563, 1197, 1199, + 1174, 1174, 1174, 1174, 1174, 1199, 1201, 1172, + 1172, 1172, 1172, 1203, 1172, 1201, 1203, 1204, + 1170, 1205, 1168, 1206, 1166, 1166, 1166, 1166, + 1166, 1206, 1208, 1164, 1164, 1164, 1164, 1210, + 1164, 1208, 1210, 1211, 1162, 1212, 1160, 1214, + 1215, 1215, 1215, 1214, 1215, 1223, 1215, 1215, + 1215, 1216, 1215, 1223, 1217, 1217, 1217, 1216, + 1217, 1222, 1217, 1217, 1217, 1218, 1217, 1222, + 1219, 1219, 1219, 1218, 1219, 1221, 1219, 1219, + 1219, 1220, 1219, 1221, 1564, 1221, 1219, 1222, + 1217, 1223, 1215, 1225, 1226, 1226, 1226, 1225, + 1226, 1240, 1226, 1226, 1226, 1227, 1226, 1240, + 1228, 1228, 1228, 1227, 1228, 1239, 1229, 1228, + 1228, 1228, 1228, 1239, 1230, 1230, 1230, 1230, + 1238, 1231, 1230, 1230, 1230, 1230, 1238, 1232, + 1232, 1232, 1232, 1237, 1233, 1232, 1232, 1232, + 1232, 1237, 1234, 1234, 1234, 1234, 1236, 1234, + 1234, 1234, 1235, 1234, 1236, 1565, 1236, 1234, + 1237, 1232, 1238, 1230, 1239, 1228, 1240, 1226, + 1242, 1243, 1243, 1243, 1243, 1251, 1244, 1245, + 1245, 1245, 1244, 1245, 1250, 1245, 1245, 1245, + 1246, 1245, 1250, 1247, 1247, 1247, 1247, 1249, + 1248, 1566, 1249, 1247, 1250, 1245, 1251, 1243, + 0, 1252, 1253, 1252, 1252, 1254, 1260, 1252, + 1259, 1567, 1568, 1569, 1254, 1260, 1255, 0, + 1256, 1256, 1257, 1258, 1252, 1252, 1252, 1258, + 1252, 1259, 1567, 1568, 1569, 1259, 1252, 1261, + 1262, 1262, 1257, 1264, 1265, 1265, 1265, 1264, + 1265, 1275, 1265, 1265, 1265, 1266, 1265, 1275, + 1267, 1267, 1267, 1267, 1274, 1268, 1269, 1269, + 1269, 1268, 1269, 1273, 0, 1269, 1269, 1269, + 1270, 1269, 1273, 1271, 1271, 1271, 1271, 1271, + 1272, 1570, 1571, 1572, 1272, 1271, 1273, 1269, + 1274, 1267, 1275, 1265, 1277, 1278, 1278, 1278, + 1277, 1278, 1285, 1278, 1278, 1278, 1279, 1278, + 1285, 1280, 1280, 1280, 1279, 1280, 1284, 1280, + 1280, 1280, 1281, 1280, 1284, 1282, 1282, 1282, + 1282, 1282, 1283, 1573, 1574, 1575, 1283, 1282, + 1284, 1280, 1285, 1278, 1287, 1288, 1288, 1288, + 1287, 1288, 1324, 0, 1288, 1288, 1288, 1289, + 1303, 1310, 1317, 1288, 1324, 1290, 1290, 1290, + 1290, 1302, 0, 1291, 1292, 1292, 1292, 1291, + 1292, 1301, 1292, 1292, 1292, 1293, 1292, 1301, + 0, 1294, 1294, 1294, 1297, 1297, 1297, 1299, + 1299, 1299, 1576, 1294, 1296, 1579, 1580, 1297, + 1298, 1577, 1578, 1299, 1300, 1581, 1582, 0, + 1295, 1296, 1294, 1298, 1297, 1300, 1299, 1301, + 1292, 1302, 1290, 1304, 1304, 1304, 1304, 1309, + 1305, 1306, 1306, 1306, 1305, 1306, 1308, 0, + 1306, 1306, 1306, 1307, 1306, 1308, 0, 1307, + 1294, 1294, 1294, 1297, 1297, 1297, 1299, 1299, + 1299, 1576, 1294, 1296, 1579, 1580, 1297, 1298, + 1577, 1578, 1299, 1300, 1581, 1582, 1308, 1306, + 1309, 1304, 1311, 1311, 1311, 1311, 1316, 1312, + 1313, 1313, 1313, 1312, 1313, 1315, 1313, 1313, + 1313, 1314, 1313, 1315, 1314, 1294, 1294, 1294, + 1297, 1297, 1297, 1299, 1299, 1299, 1576, 1294, + 1296, 1579, 1580, 1297, 1298, 1577, 1578, 1299, + 1300, 1581, 1582, 1315, 1313, 1316, 1311, 1318, + 1318, 1318, 1318, 1323, 1319, 1320, 1320, 1320, + 1319, 1320, 1322, 1320, 1320, 1320, 1321, 1320, + 1322, 1294, 1294, 1294, 1297, 1297, 1297, 1299, + 1299, 1299, 1576, 1294, 1296, 1579, 1580, 1297, + 1298, 1577, 1578, 1299, 1300, 1581, 1582, 1322, + 1320, 1323, 1318, 1324, 1288, 1326, 1327, 1327, + 1327, 1327, 1350, 1328, 1329, 1329, 1329, 1329, + 1349, 1330, 1331, 1331, 1331, 1330, 1331, 1348, + 1331, 1331, 1331, 1332, 1331, 1348, 1333, 1333, + 1333, 1332, 1333, 1347, 0, 1333, 1333, 1333, + 1334, 1333, 1347, 1335, 1335, 1335, 1334, 1335, + 1346, 1335, 1335, 1335, 1336, 1335, 1346, 1337, + 1337, 1337, 1336, 1337, 1345, 1337, 1337, 1337, + 1338, 1337, 1345, 1339, 1339, 1339, 1338, 1339, + 1344, 1339, 1339, 1339, 1340, 1339, 1344, 1341, + 1341, 1341, 1341, 1343, 1341, 1341, 1341, 1342, + 1341, 1343, 1583, 1343, 1341, 1344, 1339, 1345, + 1337, 1346, 1335, 1347, 1333, 1348, 1331, 1349, + 1329, 1350, 1327, 1352, 1353, 1584, 1355, 1356, + 1356, 1356, 1355, 1356, 1364, 1356, 1356, 1356, + 1357, 1356, 1364, 1358, 1358, 1358, 1357, 1358, + 1363, 1358, 1358, 1358, 1359, 1358, 1363, 1360, + 1360, 1360, 1360, 1362, 1361, 1585, 1362, 1360, + 1363, 1358, 1364, 1356, 1366, 1586, 1368, 1369, + 1369, 1369, 1368, 1369, 1395, 1369, 1369, 1369, + 1370, 1369, 1395, 1371, 1371, 1371, 1370, 1371, + 1394, 1371, 1371, 1371, 1372, 1371, 1394, 1373, + 1373, 1373, 1372, 1373, 1393, 1373, 1373, 1373, + 1374, 1391, 1373, 1393, 1375, 1375, 1375, 1375, + 1390, 0, 1375, 1375, 1375, 1376, 1375, 1390, + 1377, 1378, 1388, 1379, 1380, 1387, 1381, 1385, + 1382, 1383, 1383, 1384, 1376, 1587, 1386, 1389, + 1390, 1375, 1392, 1391, 1393, 1373, 1394, 1371, + 1395, 1369, 1397, 1398, 1398, 1398, 1397, 1398, + 1408, 1398, 1398, 1398, 1399, 1398, 1408, 1400, + 1400, 1400, 1399, 1400, 1407, 1400, 1400, 1400, + 1401, 1400, 1407, 1402, 1402, 1402, 1401, 1402, + 1406, 1402, 1402, 1402, 1403, 1404, 1402, 1406, + 1588, 1405, 1404, 1406, 1402, 1407, 1400, 1408, + 1398, 1410, 1411, 1411, 1411, 1410, 1411, 1421, + 1411, 1411, 1411, 1412, 1411, 1421, 1413, 1413, + 1413, 1412, 1413, 1420, 1413, 1413, 1413, 1414, + 1413, 1420, 1415, 1415, 1415, 1414, 1415, 1419, + 1415, 1415, 1415, 1416, 1415, 1419, 1417, 1417, + 1417, 1417, 1417, 1418, 1589, 1590, 1591, 1418, + 1417, 1419, 1415, 1420, 1413, 1421, 1411, 1423, + 1424, 1424, 1424, 1423, 1424, 1427, 1424, 1424, + 1424, 1425, 1424, 1427, 1426, 1425, 1592, 1427, + 1424, 1429, 1430, 1430, 1430, 1429, 1430, 1440, + 1430, 1430, 1430, 1431, 1430, 1440, 1432, 1432, + 1432, 1431, 1432, 1439, 1432, 1432, 1432, 1433, + 1432, 1439, 1434, 1434, 1434, 1433, 1434, 1438, + 1434, 1434, 1434, 1435, 1434, 1438, 1436, 1436, + 1436, 1436, 1436, 1437, 1593, 1594, 1595, 1437, + 1436, 1438, 1434, 1439, 1432, 1440, 1430, 1442, + 1443, 1443, 1443, 1442, 1443, 1445, 1443, 1443, + 1443, 1444, 1443, 1445, 1596, 1444, 1445, 1443, + 1447, 1448, 1448, 1448, 1447, 1448, 1458, 1448, + 1448, 1448, 1449, 1448, 1458, 1450, 1451, 1452, + 0, 1453, 1454, 1455, 1456, 1457, 0, 1597, + 1458, 1448, 1460, 1461, 0, 1462, 1463, 1464, + 1598, 1466, 1467, 1468, 1469, 1470, 1599, 1472, + 1473, 1473, 1473, 1472, 1473, 1478, 1473, 1473, + 1473, 1474, 1473, 1478, 1475, 1475, 1475, 1474, + 1475, 1477, 1476, 1475, 1475, 1475, 1475, 1477, + 1600, 1477, 1475, 1478, 1473, 1480, 1481, 1481, + 1481, 1480, 1481, 1486, 1482, 1481, 1481, 1481, + 1481, 1486, 1483, 1483, 1483, 1483, 1485, 1484, + 1483, 1483, 1483, 1483, 1485, 1601, 1485, 1483, + 1486, 1481, 1488, 1489, 1489, 1489, 1488, 1489, + 1492, 1489, 1489, 1489, 1490, 1489, 1492, 1491, + 1602, 1492, 1489, 1494, 1495, 1495, 1495, 1495, + 1503, 1496, 1497, 1497, 1497, 1497, 1502, 1498, + 1499, 1499, 1499, 1498, 1499, 1501, 1499, 1499, + 1499, 1500, 1499, 1501, 1603, 1501, 1499, 1502, + 1497, 1503, 1495, 0, 1, 199, 1, 1, + 207, 1504, 198, 1509, 324, 14, 244, 14, + 14, 254, 277, 1512, 296, 1510, 297, 1513, + 299, 0, 189, 189, 189, 217, 307, 308, + 309, 310, 326, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 1507, + 325, 0, 210, 217, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 0, 1, 199, + 1, 1, 207, 1504, 198, 1509, 324, 1, + 1, 1509, 324, 221, 221, 221, 1509, 222, + 225, 225, 225, 243, 281, 0, 255, 258, + 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, + 276, 1509 }; static const short _zone_scanner_trans_actions[] = { - 2247, 0, 5, 7, 551, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 3, - 9, 3, 9, 2423, 103, 743, 746, 45, - 59, 57, 55, 0, 61, 740, 749, 333, + 2267, 0, 5, 7, 553, 727, 727, 727, + 727, 727, 727, 727, 727, 727, 727, 727, + 727, 727, 727, 727, 727, 727, 727, 3, + 9, 3, 9, 2443, 103, 745, 748, 45, + 59, 57, 55, 0, 61, 742, 751, 335, 0, 5, 7, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 97, 97, 97, 3, 9, 1796, - 1799, 2947, 2951, 0, 0, 0, 2943, 2955, - 2963, 5081, 5101, 327, 0, 325, 5, 7, - 331, 3, 9, 341, 368, 1781, 13, 389, - 392, 2095, 395, 15, 0, 5, 7, 1952, - 9, 11, 2067, 1790, 329, 11, 383, 13, - 350, 356, 365, 5076, 2923, 2047, 0, 5, - 7, 9, 2931, 1787, 368, 11, 2063, 0, - 4181, 5, 7, 2239, 2555, 2555, 2555, 2555, - 2555, 2555, 2555, 2555, 2555, 2555, 2555, 2555, - 2555, 2555, 2555, 2555, 2555, 2555, 3, 9, - 1784, 1787, 341, 368, 5792, 752, 2559, 2563, - 4426, 2567, 1793, 0, 5, 7, 344, 9, - 0, 0, 0, 0, 0, 0, 1934, 3851, - 3855, 3847, 3859, 3863, 5546, 5551, 380, 2051, - 2055, 2059, 11, 371, 374, 377, 0, 0, - 0, 0, 0, 0, 1898, 3611, 3615, 3607, - 3619, 3623, 5426, 5431, 1895, 3591, 3595, 3587, - 3599, 3603, 5416, 5421, 0, 0, 1853, 3311, - 3315, 3307, 3319, 3323, 5276, 5281, 0, 0, - 0, 1805, 2991, 2995, 2987, 2999, 3003, 5116, - 5121, 0, 0, 0, 1904, 3651, 3655, 3647, - 3659, 3663, 5446, 5451, 0, 0, 0, 0, - 0, 0, 1880, 3491, 3495, 3487, 3499, 3503, - 5366, 5371, 0, 0, 0, 0, 1856, 3331, - 3335, 3327, 3339, 3343, 5286, 5291, 0, 0, - 0, 1877, 3471, 3475, 3467, 3479, 3483, 5356, - 5361, 1862, 3371, 3375, 0, 3367, 3379, 3383, - 5306, 5311, 0, 0, 1943, 3911, 3915, 3907, - 3919, 3923, 5576, 5581, 0, 0, 0, 0, - 0, 1925, 3791, 3795, 3787, 3799, 3803, 5516, - 5521, 0, 1928, 3811, 3815, 3807, 3819, 3823, - 5526, 5531, 0, 0, 0, 0, 0, 1814, - 3051, 3055, 3047, 3059, 3063, 5146, 5151, 0, - 0, 0, 1940, 3891, 3895, 3887, 3899, 3903, - 5566, 5571, 0, 0, 101, 731, 734, 728, - 737, 0, 5, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 9, - 0, 0, 0, 0, 0, 0, 1868, 3411, - 3415, 3407, 3419, 3423, 5326, 5331, 0, 0, - 0, 1835, 3191, 3195, 3187, 3199, 3203, 5216, - 5221, 1850, 3291, 3295, 3287, 3299, 3303, 5266, - 5271, 0, 0, 0, 0, 0, 1916, 3731, - 3735, 3727, 3739, 3743, 5486, 5491, 0, 1919, - 3751, 3755, 3747, 3759, 3763, 5496, 5501, 0, - 1841, 3231, 3235, 3227, 3239, 3243, 5236, 5241, - 1922, 3771, 3775, 3767, 3779, 3783, 5506, 5511, - 0, 0, 0, 0, 0, 1817, 3071, 3075, - 3067, 3079, 3083, 5156, 5161, 1820, 3091, 3095, - 3087, 3099, 3103, 5166, 5171, 0, 0, 0, - 0, 0, 0, 1847, 3271, 3275, 3267, 3279, - 3283, 5256, 5261, 0, 1913, 3711, 3715, 3707, - 3719, 3723, 5476, 5481, 1802, 2971, 2975, 0, - 2967, 2979, 2983, 5106, 5111, 0, 1874, 3451, - 3455, 0, 3447, 3459, 3463, 5346, 5351, 1883, - 3511, 3515, 0, 3507, 3519, 3523, 5376, 5381, - 0, 0, 0, 0, 1886, 3531, 3535, 3527, - 3539, 3543, 5386, 5391, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1901, 3631, 3635, - 3627, 3639, 3643, 5436, 5441, 0, 0, 1811, - 3031, 3035, 3027, 3039, 3043, 5136, 5141, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1946, 3931, 3935, 3927, 3939, 3943, 5586, 5591, - 1826, 3131, 3135, 3127, 3139, 3143, 5186, 5191, - 0, 0, 0, 1871, 3431, 3435, 3427, 3439, - 3443, 5336, 5341, 1832, 3171, 3175, 3167, 3179, - 3183, 5206, 5211, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1892, 3571, 3575, - 3567, 3579, 3583, 5406, 5411, 0, 1808, 3011, - 3015, 3007, 3019, 3023, 5126, 5131, 0, 1910, - 3691, 3695, 3687, 3699, 3703, 5466, 5471, 0, - 1844, 3251, 3255, 3247, 3259, 3263, 5246, 5251, - 0, 0, 0, 1865, 3391, 3395, 3387, 3399, - 3403, 5316, 5321, 0, 0, 1937, 3871, 3875, - 3867, 3879, 3883, 5556, 5561, 0, 0, 0, - 0, 0, 1889, 3551, 3555, 3547, 3559, 3563, - 5396, 5401, 0, 1823, 3111, 3115, 3107, 3119, - 3123, 5176, 5181, 0, 0, 572, 551, 2251, - 644, 2399, 2403, 45, 2395, 2407, 2411, 4366, - 4371, 0, 0, 1931, 3831, 3835, 3827, 3839, - 3843, 5536, 5541, 0, 0, 0, 0, 0, - 1949, 3951, 3955, 3947, 3959, 3963, 5596, 5601, - 0, 0, 0, 0, 0, 1907, 3671, 3675, - 3667, 3679, 3683, 5456, 5461, 11, 383, 0, - 5, 7, 3, 9, 0, 101, 731, 734, - 728, 737, 0, 5, 7, 551, 99, 99, + 97, 97, 97, 97, 97, 3, 9, 1813, + 1816, 2971, 2975, 0, 0, 0, 0, 2967, + 2979, 2987, 5135, 5155, 329, 0, 327, 5, + 7, 333, 3, 9, 343, 370, 1798, 13, + 391, 394, 2115, 397, 15, 0, 5, 7, + 1972, 9, 11, 2087, 1807, 331, 11, 385, + 13, 352, 358, 367, 5130, 2947, 2067, 0, + 5, 7, 9, 2955, 1804, 370, 11, 2083, + 0, 4225, 5, 7, 2259, 2575, 2575, 2575, + 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, + 2575, 2575, 2575, 2575, 2575, 2575, 2575, 3, + 9, 1801, 1804, 343, 370, 5856, 754, 2579, + 2583, 4470, 2587, 1810, 0, 5, 7, 346, + 9, 0, 0, 0, 0, 0, 0, 1951, + 3875, 3879, 3871, 3883, 3887, 5600, 5605, 382, + 2071, 2075, 2079, 11, 373, 376, 379, 0, + 0, 0, 0, 0, 0, 1915, 3635, 3639, + 3631, 3643, 3647, 5480, 5485, 1912, 3615, 3619, + 3611, 3623, 3627, 5470, 5475, 0, 0, 1870, + 3335, 3339, 3331, 3343, 3347, 5330, 5335, 0, + 0, 0, 1822, 3015, 3019, 3011, 3023, 3027, + 5170, 5175, 0, 0, 0, 1921, 3675, 3679, + 3671, 3683, 3687, 5500, 5505, 0, 0, 0, + 0, 0, 0, 1897, 3515, 3519, 3511, 3523, + 3527, 5420, 5425, 0, 0, 0, 0, 1873, + 3355, 3359, 3351, 3363, 3367, 5340, 5345, 0, + 0, 0, 1894, 3495, 3499, 3491, 3503, 3507, + 5410, 5415, 1879, 3395, 3399, 0, 3391, 3403, + 3407, 5360, 5365, 0, 0, 1960, 3935, 3939, + 3931, 3943, 3947, 5630, 5635, 0, 0, 0, + 0, 0, 1942, 3815, 3819, 3811, 3823, 3827, + 5570, 5575, 0, 1945, 3835, 3839, 3831, 3843, + 3847, 5580, 5585, 0, 0, 0, 0, 0, + 1831, 3075, 3079, 3071, 3083, 3087, 5200, 5205, + 0, 0, 0, 1957, 3915, 3919, 3911, 3923, + 3927, 5620, 5625, 0, 0, 101, 733, 736, + 730, 739, 0, 5, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, + 9, 0, 0, 0, 0, 0, 0, 1885, + 3435, 3439, 3431, 3443, 3447, 5380, 5385, 0, + 0, 0, 1852, 3215, 3219, 3211, 3223, 3227, + 5270, 5275, 1867, 3315, 3319, 3311, 3323, 3327, + 5320, 5325, 0, 0, 0, 0, 0, 1933, + 3755, 3759, 3751, 3763, 3767, 5540, 5545, 0, + 1936, 3775, 3779, 3771, 3783, 3787, 5550, 5555, + 0, 1858, 3255, 3259, 3251, 3263, 3267, 5290, + 5295, 1939, 3795, 3799, 3791, 3803, 3807, 5560, + 5565, 0, 0, 0, 0, 0, 1834, 3095, + 3099, 3091, 3103, 3107, 5210, 5215, 1837, 3115, + 3119, 3111, 3123, 3127, 5220, 5225, 0, 0, + 0, 0, 0, 0, 1864, 3295, 3299, 3291, + 3303, 3307, 5310, 5315, 0, 1930, 3735, 3739, + 3731, 3743, 3747, 5530, 5535, 1819, 2995, 2999, + 0, 2991, 3003, 3007, 5160, 5165, 0, 1891, + 3475, 3479, 0, 3471, 3483, 3487, 5400, 5405, + 1900, 3535, 3539, 0, 3531, 3543, 3547, 5430, + 5435, 0, 0, 0, 0, 1903, 3555, 3559, + 3551, 3563, 3567, 5440, 5445, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1918, 3655, + 3659, 3651, 3663, 3667, 5490, 5495, 0, 0, + 1828, 3055, 3059, 3051, 3063, 3067, 5190, 5195, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1963, 3955, 3959, 3951, 3963, 3967, 5640, + 5645, 1843, 3155, 3159, 3151, 3163, 3167, 5240, + 5245, 0, 0, 0, 1888, 3455, 3459, 3451, + 3463, 3467, 5390, 5395, 1849, 3195, 3199, 3191, + 3203, 3207, 5260, 5265, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1909, 3595, + 3599, 3591, 3603, 3607, 5460, 5465, 0, 1825, + 3035, 3039, 3031, 3043, 3047, 5180, 5185, 0, + 1927, 3715, 3719, 3711, 3723, 3727, 5520, 5525, + 0, 1861, 3275, 3279, 3271, 3283, 3287, 5300, + 5305, 0, 0, 0, 1882, 3415, 3419, 3411, + 3423, 3427, 5370, 5375, 0, 0, 1954, 3895, + 3899, 3891, 3903, 3907, 5610, 5615, 0, 0, + 0, 0, 0, 1906, 3575, 3579, 3571, 3583, + 3587, 5450, 5455, 0, 1840, 3135, 3139, 3131, + 3143, 3147, 5230, 5235, 0, 0, 574, 553, + 2271, 646, 2419, 2423, 45, 2415, 2427, 2431, + 4410, 4415, 0, 0, 1948, 3855, 3859, 3851, + 3863, 3867, 5590, 5595, 0, 0, 0, 0, + 0, 1966, 3975, 3979, 3971, 3983, 3987, 5650, + 5655, 0, 0, 0, 0, 0, 1924, 3695, + 3699, 3691, 3703, 3707, 5510, 5515, 11, 385, + 0, 5, 7, 3, 9, 0, 101, 733, + 736, 730, 739, 0, 5, 7, 553, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 3, 9, 103, 743, 746, 45, 59, 57, - 55, 0, 61, 740, 749, 2427, 45, 59, - 57, 55, 0, 61, 665, 2467, 2471, 4381, - 2463, 2475, 11, 383, 11, 383, 95, 91, - 91, 91, 0, 0, 0, 0, 0, 0, - 89, 41, 39, 497, 500, 494, 503, 0, - 5, 7, 3, 9, 11, 0, 383, 4166, - 509, 2167, 2175, 2159, 2183, 0, 5, 7, - 3, 9, 11, 383, 2427, 45, 59, 57, - 55, 0, 61, 665, 2467, 2471, 4381, 2463, - 2475, 11, 383, 2227, 2195, 4121, 4136, 4106, - 4151, 5660, 5684, 0, 5, 7, 3, 9, - 341, 368, 2939, 2959, 5086, 5091, 5882, 5096, - 6068, 5894, 6061, 5888, 0, 5, 7, 344, - 1999, 0, 5, 7, 344, 9, 11, 2063, - 398, 2071, 2079, 4016, 2087, 11, 347, 353, - 362, 0, 5, 7, 9, 368, 11, 2063, - 2915, 0, 0, 0, 0, 0, 83, 0, - 0, 79, 2219, 506, 2163, 2171, 4096, 2179, - 5942, 2187, 4111, 4126, 5654, 4141, 0, 5, - 7, 344, 9, 11, 2063, 4171, 4156, 5666, - 5672, 5928, 5678, 6091, 5935, 0, 5, 7, - 344, 1999, 2191, 518, 4116, 4131, 4101, 4146, - 13, 350, 356, 1971, 365, 380, 3991, 2051, - 2055, 2059, 11, 371, 374, 377, 380, 2051, - 2055, 2059, 11, 371, 374, 377, 0, 0, - 1838, 3211, 3215, 3207, 3219, 3223, 5226, 5231, - 0, 0, 0, 1829, 3151, 3155, 3147, 3159, - 3163, 5196, 5201, 0, 1859, 3351, 3355, 3347, - 3359, 3363, 5296, 5301, 11, 383, 398, 2071, - 2079, 4026, 11, 347, 353, 3967, 380, 2051, - 2055, 11, 371, 374, 380, 2051, 2055, 11, - 371, 374, 11, 383, 13, 350, 356, 365, - 2047, 380, 2051, 2055, 11, 371, 374, 521, - 11, 383, 11, 383, 11, 2063, 0, 416, - 3, 7, 410, 2099, 17, 413, 31, 2123, - 29, 0, 449, 2103, 21, 23, 0, 440, - 419, 19, 422, 431, 25, 25, 4036, 425, - 428, 27, 446, 686, 67, 0, 0, 695, - 698, 2491, 73, 2487, 689, 71, 71, 2479, - 2483, 4386, 692, 67, 67, 0, 0, 698, - 698, 73, 73, 69, 1, 689, 71, 71, - 2483, 2483, 692, 692, 77, 0, 5, 7, - 3, 9, 554, 551, 4376, 13, 389, 392, - 45, 59, 57, 55, 0, 61, 4021, 395, - 404, 0, 5, 7, 2499, 9, 11, 4001, - 2427, 2415, 45, 59, 57, 55, 0, 61, - 659, 2431, 2435, 4381, 5798, 2439, 11, 383, - 81, 0, 5, 7, 3, 9, 4391, 707, - 2503, 21, 23, 0, 407, 443, 2107, 2111, - 419, 19, 5606, 2115, 0, 5, 7, 2507, - 9, 11, 4006, 422, 434, 25, 25, 425, - 428, 27, 11, 383, 0, 5, 7, 3, - 9, 710, 85, 716, 713, 2511, 2515, 5804, - 2523, 2519, 722, 0, 5, 7, 4396, 719, - 2527, 2531, 9, 9, 87, 21, 23, 0, - 2119, 4041, 4046, 419, 19, 5900, 4051, 0, - 5, 7, 11, 4011, 422, 437, 25, 25, - 425, 428, 27, 11, 3996, 0, 5, 7, - 3, 9, 11, 383, 11, 383, 127, 119, - 121, 123, 0, 125, 0, 5, 7, 3, - 9, 1, 338, 359, 11, 383, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 878, 0, 0, 0, 0, 0, 917, - 0, 0, 0, 908, 0, 938, 0, 0, - 0, 0, 0, 0, 1013, 0, 0, 0, - 0, 0, 0, 977, 974, 0, 0, 932, - 0, 0, 0, 884, 0, 0, 0, 983, - 0, 0, 0, 0, 0, 0, 959, 0, - 0, 0, 0, 935, 0, 0, 0, 956, - 941, 0, 0, 0, 1022, 0, 0, 0, - 0, 0, 1004, 0, 1007, 0, 0, 0, - 0, 0, 893, 0, 0, 0, 1019, 0, - 0, 0, 0, 0, 0, 0, 947, 0, - 0, 0, 914, 929, 0, 0, 0, 0, - 0, 995, 0, 998, 0, 920, 1001, 0, - 0, 0, 0, 0, 896, 899, 0, 0, - 0, 0, 0, 0, 926, 0, 992, 881, - 0, 0, 953, 0, 962, 0, 0, 0, - 0, 0, 965, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 980, 0, 0, 890, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1025, 905, 0, 0, 0, 950, 911, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 971, 0, 887, 0, 989, 0, - 923, 0, 0, 0, 944, 0, 0, 1016, - 0, 0, 0, 0, 0, 968, 0, 902, - 0, 0, 557, 551, 608, 45, 0, 0, - 1010, 0, 0, 0, 0, 0, 1028, 0, - 0, 0, 0, 0, 986, 279, 277, 1658, - 1661, 1655, 1664, 2875, 5041, 5046, 0, 5, - 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 9, 1667, 1987, 2035, - 175, 1046, 1049, 0, 0, 0, 1043, 1052, - 2671, 4531, 4536, 0, 0, 201, 1202, 1205, - 1199, 1208, 2723, 4661, 4666, 11, 383, 0, - 0, 0, 0, 0, 0, 265, 1586, 1589, - 1583, 1592, 2851, 4981, 4986, 0, 0, 0, - 0, 0, 0, 241, 1442, 1445, 1439, 1448, - 2803, 4861, 4866, 239, 1430, 1433, 1427, 1436, - 2799, 4851, 4856, 0, 0, 211, 1262, 1265, - 1259, 1268, 2743, 4711, 4716, 0, 0, 0, - 179, 1070, 1073, 1067, 1076, 2679, 4551, 4556, - 0, 0, 0, 245, 1466, 1469, 1463, 1472, - 2811, 4881, 4886, 0, 0, 0, 0, 0, - 0, 229, 1370, 1373, 1367, 1376, 2779, 4801, - 4806, 0, 0, 0, 0, 213, 1274, 1277, - 1271, 1280, 2747, 4721, 4726, 0, 0, 0, - 227, 1358, 1361, 1355, 1364, 2775, 4791, 4796, - 217, 1298, 1301, 0, 1295, 1304, 2755, 4741, - 4746, 0, 0, 271, 1622, 1625, 1619, 1628, - 2863, 5011, 5016, 0, 0, 0, 0, 0, - 259, 1550, 1553, 1547, 1556, 2839, 4951, 4956, - 0, 261, 1562, 1565, 1559, 1568, 2843, 4961, - 4966, 0, 0, 0, 0, 0, 185, 1106, - 1109, 1103, 1112, 2691, 4581, 4586, 0, 0, - 0, 269, 1610, 1613, 1607, 1616, 2859, 5001, - 5006, 0, 0, 0, 0, 0, 0, 0, - 221, 1322, 1325, 1319, 1328, 2763, 4761, 4766, - 0, 0, 0, 199, 1190, 1193, 1187, 1196, - 2719, 4651, 4656, 209, 1250, 1253, 1247, 1256, - 2739, 4701, 4706, 0, 0, 0, 0, 0, - 253, 1514, 1517, 1511, 1520, 2827, 4921, 4926, - 0, 255, 1526, 1529, 1523, 1532, 2831, 4931, - 4936, 0, 203, 1214, 1217, 1211, 1220, 2727, - 4671, 4676, 257, 1538, 1541, 1535, 1544, 2835, - 4941, 4946, 0, 0, 0, 0, 0, 187, - 1118, 1121, 1115, 1124, 2695, 4591, 4596, 189, - 1130, 1133, 1127, 1136, 2699, 4601, 4606, 0, - 0, 0, 0, 0, 0, 207, 1238, 1241, - 1235, 1244, 2735, 4691, 4696, 0, 251, 1502, - 1505, 1499, 1508, 2823, 4911, 4916, 177, 1058, - 1061, 0, 1055, 1064, 2675, 4541, 4546, 0, - 225, 1346, 1349, 0, 1343, 1352, 2771, 4781, - 4786, 231, 1382, 1385, 0, 1379, 1388, 2783, - 4811, 4816, 0, 0, 0, 0, 233, 1394, - 1397, 1391, 1400, 2787, 4821, 4826, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 243, - 1454, 1457, 1451, 1460, 2807, 4871, 4876, 0, - 0, 183, 1094, 1097, 1091, 1100, 2687, 4571, - 4576, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 273, 1634, 1637, 1631, 1640, 2867, - 5021, 5026, 193, 1154, 1157, 1151, 1160, 2707, - 4621, 4626, 0, 0, 0, 223, 1334, 1337, - 1331, 1340, 2767, 4771, 4776, 197, 1178, 1181, - 1175, 1184, 2715, 4641, 4646, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, - 1418, 1421, 1415, 1424, 2795, 4841, 4846, 0, - 181, 1082, 1085, 1079, 1088, 2683, 4561, 4566, - 0, 249, 1490, 1493, 1487, 1496, 2819, 4901, - 4906, 0, 205, 1226, 1229, 1223, 1232, 2731, - 4681, 4686, 0, 0, 0, 219, 1310, 1313, - 1307, 1316, 2759, 4751, 4756, 0, 0, 267, - 1598, 1601, 1595, 1604, 2855, 4991, 4996, 0, - 0, 0, 0, 0, 235, 1406, 1409, 1403, - 1412, 2791, 4831, 4836, 0, 191, 1142, 1145, - 1139, 1148, 2703, 4611, 4616, 0, 0, 551, - 173, 1034, 1037, 45, 1031, 1040, 2667, 4521, - 4526, 0, 0, 263, 1574, 1577, 1571, 1580, - 2847, 4971, 4976, 0, 0, 0, 0, 0, - 275, 1646, 1649, 1643, 1652, 2871, 5031, 5036, - 0, 0, 0, 0, 0, 247, 1478, 1481, - 1475, 1484, 2815, 4891, 4896, 0, 0, 0, - 195, 1166, 1169, 1163, 1172, 2711, 4631, 4636, - 0, 215, 1286, 1289, 1283, 1292, 2751, 4731, - 4736, 293, 0, 5, 7, 3, 9, 560, - 551, 53, 650, 653, 45, 647, 656, 2647, + 99, 3, 9, 103, 745, 748, 45, 59, + 57, 55, 0, 61, 742, 751, 2447, 45, + 59, 57, 55, 0, 61, 667, 2487, 2491, + 4425, 2483, 2495, 11, 385, 11, 385, 95, + 91, 91, 91, 0, 0, 0, 0, 0, + 0, 89, 41, 39, 499, 502, 496, 505, + 0, 5, 7, 3, 9, 11, 0, 385, + 4210, 511, 2187, 2195, 2179, 2203, 0, 5, + 7, 3, 9, 11, 385, 2447, 45, 59, + 57, 55, 0, 61, 667, 2487, 2491, 4425, + 2483, 2495, 11, 385, 2247, 2215, 4165, 4180, + 4150, 4195, 5724, 5748, 0, 5, 7, 3, + 9, 343, 370, 2963, 2983, 5140, 5145, 5946, + 5150, 6132, 5958, 6125, 5952, 0, 5, 7, + 346, 2019, 0, 5, 7, 346, 9, 11, + 2083, 400, 2091, 2099, 4060, 2107, 11, 349, + 355, 364, 0, 5, 7, 9, 370, 11, + 2083, 2939, 0, 0, 0, 0, 0, 83, + 0, 0, 79, 2239, 508, 2183, 2191, 4140, + 2199, 6006, 2207, 4155, 4170, 5718, 4185, 0, + 5, 7, 346, 9, 11, 2083, 4215, 4200, + 5730, 5736, 5992, 5742, 6155, 5999, 0, 5, + 7, 346, 2019, 2211, 520, 4160, 4175, 4145, + 4190, 13, 352, 358, 1991, 367, 382, 4035, + 2071, 2075, 2079, 11, 373, 376, 379, 382, + 2071, 2075, 2079, 11, 373, 376, 379, 0, + 0, 1855, 3235, 3239, 3231, 3243, 3247, 5280, + 5285, 0, 0, 0, 1846, 3175, 3179, 3171, + 3183, 3187, 5250, 5255, 0, 0, 0, 1969, + 3995, 3999, 3991, 4003, 4007, 5660, 5665, 0, + 1876, 3375, 3379, 3371, 3383, 3387, 5350, 5355, + 11, 385, 400, 2091, 2099, 4070, 11, 349, + 355, 4011, 382, 2071, 2075, 11, 373, 376, + 382, 2071, 2075, 11, 373, 376, 11, 385, + 13, 352, 358, 367, 2067, 382, 2071, 2075, + 11, 373, 376, 523, 11, 385, 11, 385, + 11, 2083, 0, 418, 3, 7, 412, 2119, + 17, 415, 31, 2143, 29, 0, 451, 2123, + 21, 23, 0, 442, 421, 19, 424, 433, + 25, 25, 4080, 427, 430, 27, 448, 688, + 67, 0, 0, 697, 700, 2511, 73, 2507, + 691, 71, 71, 2499, 2503, 4430, 694, 67, + 67, 0, 0, 700, 700, 73, 73, 69, + 1, 691, 71, 71, 2503, 2503, 694, 694, + 77, 0, 5, 7, 3, 9, 556, 553, + 4420, 13, 391, 394, 45, 59, 57, 55, + 0, 61, 4065, 397, 406, 0, 5, 7, + 2519, 9, 11, 4045, 2447, 2435, 45, 59, + 57, 55, 0, 61, 661, 2451, 2455, 4425, + 5862, 2459, 11, 385, 81, 0, 5, 7, + 3, 9, 4435, 709, 2523, 21, 23, 0, + 409, 445, 2127, 2131, 421, 19, 5670, 2135, + 0, 5, 7, 2527, 9, 11, 4050, 424, + 436, 25, 25, 427, 430, 27, 11, 385, + 0, 5, 7, 3, 9, 712, 85, 718, + 715, 2531, 2535, 5868, 2543, 2539, 724, 0, + 5, 7, 4440, 721, 2547, 2551, 9, 9, + 87, 21, 23, 0, 2139, 4085, 4090, 421, + 19, 5964, 4095, 0, 5, 7, 11, 4055, + 424, 439, 25, 25, 427, 430, 27, 11, + 4040, 0, 5, 7, 3, 9, 11, 385, + 11, 385, 127, 119, 121, 123, 0, 125, + 0, 5, 7, 3, 9, 1, 340, 361, + 11, 385, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 880, 0, 0, + 0, 0, 0, 0, 919, 0, 0, 0, + 910, 0, 0, 0, 1033, 0, 940, 0, + 0, 0, 0, 0, 0, 1015, 0, 0, + 0, 0, 0, 0, 979, 976, 0, 0, + 934, 0, 0, 0, 886, 0, 0, 0, + 985, 0, 0, 0, 0, 0, 0, 961, + 0, 0, 0, 0, 937, 0, 0, 0, + 958, 943, 0, 0, 0, 1024, 0, 0, + 0, 0, 0, 1006, 0, 1009, 0, 0, + 0, 0, 0, 895, 0, 0, 0, 1021, + 0, 0, 0, 0, 0, 0, 0, 949, + 0, 0, 0, 916, 931, 0, 0, 0, + 0, 0, 997, 0, 1000, 0, 922, 1003, + 0, 0, 0, 0, 0, 898, 901, 0, + 0, 0, 0, 0, 0, 928, 0, 994, + 883, 0, 0, 955, 0, 964, 0, 0, + 0, 0, 0, 967, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 982, 0, 0, + 892, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1027, 907, 0, 0, 0, 952, + 913, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 973, 0, 889, 0, 991, + 0, 925, 0, 0, 0, 946, 0, 0, + 1018, 0, 0, 0, 0, 0, 970, 0, + 904, 0, 0, 559, 553, 610, 45, 0, + 0, 1012, 0, 0, 0, 0, 0, 1030, + 0, 0, 0, 0, 0, 988, 281, 279, + 1675, 1678, 1672, 1681, 2899, 5095, 5100, 0, + 5, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 9, 1684, 2007, + 2055, 175, 1051, 1054, 0, 0, 0, 0, + 1048, 1057, 2691, 4575, 4580, 0, 0, 201, + 1207, 1210, 1204, 1213, 2743, 4705, 4710, 11, + 385, 0, 0, 0, 0, 0, 0, 265, + 1591, 1594, 1588, 1597, 2871, 5025, 5030, 0, + 0, 0, 0, 0, 0, 241, 1447, 1450, + 1444, 1453, 2823, 4905, 4910, 239, 1435, 1438, + 1432, 1441, 2819, 4895, 4900, 0, 0, 211, + 1267, 1270, 1264, 1273, 2763, 4755, 4760, 0, + 0, 0, 179, 1075, 1078, 1072, 1081, 2699, + 4595, 4600, 0, 0, 0, 245, 1471, 1474, + 1468, 1477, 2831, 4925, 4930, 0, 0, 0, + 0, 0, 0, 229, 1375, 1378, 1372, 1381, + 2799, 4845, 4850, 0, 0, 0, 0, 213, + 1279, 1282, 1276, 1285, 2767, 4765, 4770, 0, + 0, 0, 227, 1363, 1366, 1360, 1369, 2795, + 4835, 4840, 217, 1303, 1306, 0, 1300, 1309, + 2775, 4785, 4790, 0, 0, 271, 1627, 1630, + 1624, 1633, 2883, 5055, 5060, 0, 0, 0, + 0, 0, 259, 1555, 1558, 1552, 1561, 2859, + 4995, 5000, 0, 261, 1567, 1570, 1564, 1573, + 2863, 5005, 5010, 0, 0, 0, 0, 0, + 185, 1111, 1114, 1108, 1117, 2711, 4625, 4630, + 0, 0, 0, 269, 1615, 1618, 1612, 1621, + 2879, 5045, 5050, 0, 0, 0, 0, 0, + 0, 0, 221, 1327, 1330, 1324, 1333, 2783, + 4805, 4810, 0, 0, 0, 199, 1195, 1198, + 1192, 1201, 2739, 4695, 4700, 209, 1255, 1258, + 1252, 1261, 2759, 4745, 4750, 0, 0, 0, + 0, 0, 253, 1519, 1522, 1516, 1525, 2847, + 4965, 4970, 0, 255, 1531, 1534, 1528, 1537, + 2851, 4975, 4980, 0, 203, 1219, 1222, 1216, + 1225, 2747, 4715, 4720, 257, 1543, 1546, 1540, + 1549, 2855, 4985, 4990, 0, 0, 0, 0, + 0, 187, 1123, 1126, 1120, 1129, 2715, 4635, + 4640, 189, 1135, 1138, 1132, 1141, 2719, 4645, + 4650, 0, 0, 0, 0, 0, 0, 207, + 1243, 1246, 1240, 1249, 2755, 4735, 4740, 0, + 251, 1507, 1510, 1504, 1513, 2843, 4955, 4960, + 177, 1063, 1066, 0, 1060, 1069, 2695, 4585, + 4590, 0, 225, 1351, 1354, 0, 1348, 1357, + 2791, 4825, 4830, 231, 1387, 1390, 0, 1384, + 1393, 2803, 4855, 4860, 0, 0, 0, 0, + 233, 1399, 1402, 1396, 1405, 2807, 4865, 4870, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 243, 1459, 1462, 1456, 1465, 2827, 4915, + 4920, 0, 0, 183, 1099, 1102, 1096, 1105, + 2707, 4615, 4620, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 273, 1639, 1642, 1636, + 1645, 2887, 5065, 5070, 193, 1159, 1162, 1156, + 1165, 2727, 4665, 4670, 0, 0, 0, 223, + 1339, 1342, 1336, 1345, 2787, 4815, 4820, 197, + 1183, 1186, 1180, 1189, 2735, 4685, 4690, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 237, 1423, 1426, 1420, 1429, 2815, 4885, + 4890, 0, 181, 1087, 1090, 1084, 1093, 2703, + 4605, 4610, 0, 249, 1495, 1498, 1492, 1501, + 2839, 4945, 4950, 0, 205, 1231, 1234, 1228, + 1237, 2751, 4725, 4730, 0, 0, 0, 219, + 1315, 1318, 1312, 1321, 2779, 4795, 4800, 0, + 0, 267, 1603, 1606, 1600, 1609, 2875, 5035, + 5040, 0, 0, 0, 0, 0, 235, 1411, + 1414, 1408, 1417, 2811, 4875, 4880, 0, 191, + 1147, 1150, 1144, 1153, 2723, 4655, 4660, 0, + 0, 553, 173, 1039, 1042, 45, 1036, 1045, + 2687, 4565, 4570, 0, 0, 263, 1579, 1582, + 1576, 1585, 2867, 5015, 5020, 0, 0, 0, + 0, 0, 275, 1651, 1654, 1648, 1657, 2891, + 5075, 5080, 0, 0, 0, 0, 0, 247, + 1483, 1486, 1480, 1489, 2835, 4935, 4940, 0, + 0, 0, 195, 1171, 1174, 1168, 1177, 2731, + 4675, 4680, 0, 0, 0, 277, 1663, 1666, + 1660, 1669, 2895, 5085, 5090, 0, 215, 1291, + 1294, 1288, 1297, 2771, 4775, 4780, 295, 0, + 5, 7, 3, 9, 562, 553, 53, 652, + 655, 45, 649, 658, 2667, 0, 5, 7, + 115, 3, 9, 117, 0, 5, 7, 3, + 9, 790, 2003, 2051, 11, 385, 11, 385, + 11, 385, 0, 5, 7, 3, 9, 553, + 553, 337, 1979, 1983, 45, 1, 1975, 1987, + 0, 5, 7, 115, 3, 9, 117, 0, + 5, 7, 3, 9, 790, 2003, 2051, 11, + 385, 11, 385, 53, 652, 655, 649, 658, + 11, 385, 305, 311, 311, 311, 311, 311, + 311, 311, 311, 0, 0, 0, 844, 0, + 0, 0, 0, 0, 0, 862, 0, 0, + 856, 0, 0, 0, 0, 0, 0, 0, + 0, 853, 0, 0, 0, 0, 859, 0, + 0, 568, 553, 610, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 847, 0, 0, 0, 0, + 865, 0, 0, 0, 850, 303, 301, 1774, + 1777, 1771, 1780, 2927, 5105, 5110, 0, 5, + 7, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 3, 9, 1783, 2015, 2063, 0, + 0, 0, 157, 5125, 5125, 4110, 5682, 5688, + 5676, 5694, 5971, 6139, 6147, 11, 385, 0, + 0, 0, 0, 0, 0, 167, 481, 481, + 487, 2163, 2167, 2159, 2171, 4115, 5700, 5706, + 481, 37, 309, 1789, 1792, 1786, 1795, 2931, + 5115, 5120, 0, 0, 163, 0, 484, 484, + 121, 123, 0, 125, 0, 119, 121, 123, + 0, 125, 0, 119, 0, 0, 0, 0, + 0, 0, 0, 0, 161, 760, 0, 2155, + 2155, 2619, 766, 105, 757, 4490, 5886, 5892, + 766, 105, 5880, 5898, 6083, 6163, 6171, 757, + 0, 0, 0, 0, 165, 0, 2155, 2155, + 2643, 769, 105, 757, 4505, 5910, 5916, 769, + 105, 5904, 5922, 6090, 6179, 6187, 757, 0, + 0, 565, 553, 2395, 4390, 4395, 45, 49, + 4385, 4400, 5838, 6069, 6076, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 0, 2935, + 2935, 490, 0, 313, 2175, 4125, 4130, 0, + 4120, 4135, 5712, 5978, 5985, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2675, 4525, 4530, 4520, + 4535, 5928, 6097, 6104, 0, 0, 0, 0, + 2679, 4550, 4555, 4545, 4560, 5934, 6111, 6118, + 0, 0, 0, 159, 0, 4540, 4540, 49, + 45, 628, 2403, 2407, 45, 2399, 2411, 4405, + 5844, 5850, 5125, 2151, 315, 553, 0, 0, + 0, 0, 0, 595, 45, 0, 0, 799, + 0, 802, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 808, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 820, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 823, 0, 0, + 0, 0, 0, 0, 0, 0, 826, 0, + 0, 0, 0, 0, 0, 829, 0, 0, + 832, 0, 0, 0, 0, 0, 0, 0, + 835, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 838, 0, 0, 841, 0, + 0, 0, 0, 0, 0, 796, 0, 0, + 0, 0, 0, 805, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 811, + 0, 0, 814, 0, 0, 817, 317, 553, + 0, 0, 0, 0, 0, 0, 610, 45, + 0, 0, 0, 0, 0, 862, 0, 0, + 0, 0, 0, 0, 0, 0, 865, 0, + 0, 0, 859, 0, 0, 853, 0, 0, + 0, 856, 0, 0, 871, 0, 0, 0, + 850, 0, 0, 844, 0, 0, 0, 847, + 0, 0, 868, 319, 553, 0, 595, 45, + 0, 0, 0, 0, 0, 796, 763, 757, + 2599, 105, 526, 529, 526, 43, 535, 538, + 532, 541, 0, 5, 7, 526, 3, 9, + 43, 535, 538, 532, 541, 571, 0, 5, + 7, 553, 3, 9, 51, 637, 640, 45, + 634, 643, 0, 5, 7, 553, 3, 9, + 2439, 51, 637, 640, 45, 59, 57, 55, + 0, 61, 634, 643, 0, 5, 7, 553, + 3, 9, 51, 637, 640, 45, 59, 57, + 55, 0, 61, 634, 643, 0, 5, 7, + 553, 3, 9, 51, 637, 640, 45, 59, + 57, 55, 0, 61, 634, 643, 0, 5, + 7, 553, 3, 9, 631, 45, 59, 57, + 55, 0, 61, 2447, 45, 59, 57, 55, + 0, 61, 2463, 4425, 11, 385, 2447, 45, + 59, 57, 55, 0, 61, 664, 2471, 2475, + 4425, 2467, 2479, 11, 385, 2447, 45, 59, + 57, 55, 0, 61, 664, 2471, 2475, 4425, + 2467, 2479, 11, 385, 2447, 45, 59, 57, + 55, 0, 61, 664, 2471, 2475, 4425, 2467, + 2479, 11, 385, 11, 385, 11, 385, 454, + 35, 469, 472, 466, 475, 454, 0, 5, + 7, 3, 9, 463, 11, 385, 526, 43, + 535, 538, 532, 541, 0, 5, 7, 526, + 3, 9, 529, 11, 385, 553, 49, 616, + 619, 45, 613, 622, 0, 5, 7, 526, + 3, 9, 529, 11, 385, 2515, 706, 35, + 469, 472, 466, 475, 2147, 4100, 4105, 454, + 0, 5, 7, 3, 9, 703, 1999, 2047, + 11, 385, 757, 2623, 105, 1762, 2903, 283, + 1690, 1693, 45, 1687, 1696, 0, 5, 7, + 553, 0, 0, 3, 9, 287, 1714, 1717, + 45, 1711, 1720, 0, 5, 7, 4380, 3, + 9, 577, 2303, 2307, 0, 45, 2299, 2311, + 0, 5, 7, 3, 9, 0, 5, 7, + 3, 9, 553, 285, 1702, 1705, 45, 1699, + 1708, 0, 5, 7, 553, 0, 0, 3, + 9, 289, 1726, 1729, 45, 1723, 1732, 0, + 5, 7, 4380, 3, 9, 580, 2319, 2323, + 0, 45, 2315, 2327, 0, 5, 7, 3, + 9, 0, 5, 7, 3, 9, 0, 4375, + 5940, 583, 2335, 2339, 0, 45, 583, 2331, + 2343, 4355, 5790, 5796, 0, 5, 7, 4375, + 3, 9, 1759, 2011, 2059, 586, 2351, 2355, + 0, 45, 586, 2347, 2359, 4360, 5802, 5808, + 0, 5, 7, 4375, 3, 9, 2011, 2059, + 589, 2367, 2371, 0, 45, 589, 2363, 2375, + 4365, 5814, 5820, 0, 5, 7, 4375, 3, + 9, 2011, 2059, 592, 2383, 2387, 0, 45, + 2379, 2391, 4370, 5826, 5832, 0, 5, 7, + 3, 9, 2011, 2059, 11, 385, 2295, 4340, + 4345, 4230, 4335, 4350, 5784, 6055, 6062, 550, + 11, 385, 2291, 4320, 4325, 4230, 2291, 4315, + 4330, 5778, 6041, 6048, 550, 11, 385, 2287, + 4300, 4305, 4230, 2287, 4295, 4310, 5772, 6027, + 6034, 550, 11, 385, 2283, 4280, 4285, 4230, + 2283, 4275, 4290, 5766, 6013, 6020, 550, 11, + 385, 293, 1750, 1753, 1747, 1756, 11, 385, + 2279, 4260, 4265, 4230, 4255, 4270, 550, 11, + 385, 11, 385, 11, 385, 291, 1738, 1741, + 1735, 1744, 11, 385, 2275, 4240, 4245, 4230, + 4235, 4250, 550, 11, 385, 11, 385, 553, + 49, 616, 619, 45, 613, 622, 0, 5, + 7, 553, 3, 9, 49, 616, 619, 45, + 613, 622, 0, 5, 7, 553, 3, 9, + 49, 616, 619, 45, 613, 622, 0, 5, + 7, 526, 3, 9, 529, 11, 385, 11, + 385, 11, 385, 553, 49, 616, 619, 45, + 613, 622, 0, 5, 7, 553, 3, 9, + 49, 616, 619, 45, 613, 622, 454, 0, + 5, 7, 3, 9, 35, 469, 472, 466, + 475, 454, 0, 5, 7, 3, 9, 35, + 469, 472, 466, 475, 454, 0, 5, 7, + 3, 9, 35, 469, 472, 466, 475, 0, + 5, 7, 526, 3, 9, 529, 11, 385, + 11, 385, 11, 385, 11, 385, 11, 385, + 323, 0, 5, 7, 3, 9, 553, 49, + 616, 619, 45, 613, 622, 0, 5, 7, + 321, 3, 9, 0, 5, 7, 3, 9, + 129, 1, 11, 385, 11, 385, 11, 385, + 784, 0, 772, 5, 7, 775, 778, 3, + 9, 1, 340, 361, 111, 113, 0, 2591, + 757, 105, 107, 553, 781, 2655, 2659, 45, + 2651, 2663, 2647, 4510, 4515, 11, 385, 0, + 757, 105, 109, 553, 49, 616, 619, 45, + 613, 622, 0, 5, 7, 321, 3, 9, + 0, 5, 7, 3, 9, 553, 47, 601, + 604, 45, 598, 607, 787, 0, 5, 7, + 115, 3, 9, 117, 0, 5, 7, 3, + 9, 1, 340, 361, 11, 385, 11, 385, + 11, 385, 11, 385, 553, 47, 601, 604, + 45, 598, 607, 0, 5, 7, 553, 3, + 9, 47, 601, 604, 45, 598, 607, 0, + 5, 7, 115, 3, 9, 117, 0, 5, + 7, 3, 9, 1, 340, 361, 11, 385, + 11, 385, 11, 385, 553, 47, 601, 604, + 45, 598, 607, 874, 0, 5, 7, 147, + 149, 151, 153, 3, 9, 0, 5, 7, + 3, 9, 2263, 553, 47, 601, 604, 45, + 598, 607, 0, 5, 7, 0, 3, 9, + 2683, 0, 5, 7, 0, 5, 7, 0, + 5, 7, 1, 3, 9, 340, 361, 3, + 9, 340, 361, 3, 9, 340, 361, 877, + 129, 11, 385, 11, 385, 11, 385, 11, + 385, 11, 385, 0, 5, 7, 3, 9, + 553, 47, 601, 604, 45, 598, 607, 2595, + 0, 5, 7, 757, 3, 9, 4475, 105, + 766, 2607, 2611, 766, 2607, 2611, 766, 2607, + 2611, 2599, 2603, 2615, 4480, 4485, 2603, 2615, + 4480, 4485, 2603, 2615, 4480, 4485, 11, 385, + 11, 385, 0, 5, 7, 3, 9, 553, + 47, 601, 604, 45, 598, 607, 0, 5, + 7, 757, 3, 9, 105, 769, 2631, 2635, + 769, 2631, 2635, 769, 2631, 2635, 2623, 2627, + 2639, 4495, 4500, 2627, 2639, 4495, 4500, 2627, + 2639, 4495, 4500, 11, 385, 11, 385, 0, + 5, 7, 3, 9, 553, 47, 601, 604, + 45, 598, 607, 0, 5, 7, 526, 3, + 9, 43, 535, 538, 43, 535, 538, 43, + 535, 538, 529, 532, 541, 2251, 2255, 532, + 541, 2251, 2255, 532, 541, 2251, 2255, 11, + 385, 11, 385, 11, 385, 171, 0, 5, + 7, 3, 9, 321, 0, 5, 7, 3, + 9, 553, 47, 601, 604, 45, 598, 607, + 0, 5, 7, 553, 3, 9, 51, 637, + 640, 45, 634, 643, 685, 0, 5, 7, + 670, 3, 9, 65, 676, 679, 63, 673, + 682, 0, 5, 7, 670, 3, 9, 65, + 676, 679, 63, 673, 682, 0, 5, 7, + 553, 3, 9, 49, 616, 619, 45, 613, + 622, 0, 5, 7, 526, 3, 9, 43, + 535, 538, 532, 541, 0, 5, 7, 129, + 3, 9, 1, 11, 385, 11, 385, 11, + 385, 11, 385, 11, 385, 11, 385, 11, + 385, 11, 385, 526, 544, 1, 553, 49, + 616, 619, 45, 613, 622, 0, 5, 7, + 553, 3, 9, 47, 601, 604, 45, 598, + 607, 0, 5, 7, 321, 3, 9, 0, + 5, 7, 3, 9, 129, 1, 11, 385, + 11, 385, 11, 385, 129, 1, 553, 47, + 601, 604, 45, 598, 607, 0, 5, 7, + 553, 3, 9, 47, 601, 604, 45, 598, + 607, 0, 5, 7, 553, 3, 9, 49, + 616, 619, 45, 613, 622, 0, 5, 7, + 33, 457, 3, 9, 35, 469, 472, 466, + 475, 793, 0, 5, 7, 460, 3, 9, + 133, 135, 0, 137, 139, 0, 141, 0, + 143, 145, 0, 478, 131, 1, 0, 0, + 11, 385, 117, 115, 11, 385, 11, 385, + 11, 385, 553, 47, 601, 604, 45, 598, + 607, 0, 5, 7, 553, 3, 9, 47, + 601, 604, 45, 598, 607, 0, 5, 7, + 553, 3, 9, 49, 616, 619, 45, 613, + 622, 0, 5, 7, 33, 457, 3, 9, + 463, 117, 115, 11, 385, 11, 385, 11, + 385, 553, 47, 601, 604, 45, 598, 607, + 0, 5, 7, 553, 3, 9, 47, 601, + 604, 45, 598, 607, 0, 5, 7, 553, + 3, 9, 47, 601, 604, 45, 598, 607, 0, 5, 7, 115, 3, 9, 117, 0, - 5, 7, 3, 9, 788, 1983, 2031, 11, - 383, 11, 383, 11, 383, 0, 5, 7, - 3, 9, 551, 551, 335, 1959, 1963, 45, - 1, 1955, 1967, 0, 5, 7, 115, 3, - 9, 117, 0, 5, 7, 3, 9, 788, - 1983, 2031, 11, 383, 11, 383, 53, 650, - 653, 647, 656, 11, 383, 303, 309, 309, - 309, 309, 309, 309, 309, 309, 0, 0, - 0, 842, 0, 0, 0, 0, 0, 0, - 860, 0, 0, 854, 0, 0, 0, 0, - 0, 0, 0, 0, 851, 0, 0, 0, - 0, 857, 0, 0, 566, 551, 608, 45, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 845, 0, - 0, 0, 0, 863, 0, 0, 0, 848, - 301, 299, 1757, 1760, 1754, 1763, 2903, 5051, - 5056, 0, 5, 7, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 3, 9, 1766, - 1995, 2043, 0, 0, 0, 157, 5071, 5071, - 4066, 5618, 5624, 5612, 5630, 5907, 6075, 6083, - 11, 383, 0, 0, 0, 0, 0, 0, - 167, 479, 479, 485, 2143, 2147, 2139, 2151, - 4071, 5636, 5642, 479, 37, 307, 1772, 1775, - 1769, 1778, 2907, 5061, 5066, 0, 0, 163, - 0, 482, 482, 121, 123, 0, 125, 0, - 119, 121, 123, 0, 125, 0, 119, 0, - 0, 0, 0, 0, 0, 0, 0, 161, - 758, 0, 2135, 2135, 2599, 764, 105, 755, - 4446, 5822, 5828, 764, 105, 5816, 5834, 6019, - 6099, 6107, 755, 0, 0, 0, 0, 165, - 0, 2135, 2135, 2623, 767, 105, 755, 4461, - 5846, 5852, 767, 105, 5840, 5858, 6026, 6115, - 6123, 755, 0, 0, 563, 551, 2375, 4346, - 4351, 45, 49, 4341, 4356, 5774, 6005, 6012, - 0, 0, 0, 0, 0, 0, 0, 0, - 155, 0, 2911, 2911, 488, 0, 311, 2155, - 4081, 4086, 0, 4076, 4091, 5648, 5914, 5921, - 311, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2655, - 4481, 4486, 4476, 4491, 5864, 6033, 6040, 0, - 0, 0, 0, 2659, 4506, 4511, 4501, 4516, - 5870, 6047, 6054, 0, 0, 0, 159, 0, - 4496, 4496, 49, 45, 626, 2383, 2387, 45, - 2379, 2391, 4361, 5780, 5786, 5071, 2131, 313, - 551, 0, 0, 0, 0, 0, 593, 45, - 0, 0, 797, 0, 800, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 806, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 818, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 821, 0, 0, 0, 0, 0, 0, 0, - 0, 824, 0, 0, 0, 0, 0, 0, - 827, 0, 0, 830, 0, 0, 0, 0, - 0, 0, 0, 833, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 836, 0, - 0, 839, 0, 0, 0, 0, 0, 0, - 794, 0, 0, 0, 0, 0, 803, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 809, 0, 0, 812, 0, 0, - 815, 315, 551, 0, 0, 0, 0, 0, - 0, 608, 45, 0, 0, 0, 0, 0, - 860, 0, 0, 0, 0, 0, 0, 0, - 0, 863, 0, 0, 0, 857, 0, 0, - 851, 0, 0, 0, 854, 0, 0, 869, - 0, 0, 0, 848, 0, 0, 842, 0, - 0, 0, 845, 0, 0, 866, 317, 551, - 0, 593, 45, 0, 0, 0, 0, 0, - 794, 761, 755, 2579, 105, 524, 527, 524, - 43, 533, 536, 530, 539, 0, 5, 7, - 524, 3, 9, 43, 533, 536, 530, 539, - 569, 0, 5, 7, 551, 3, 9, 51, - 635, 638, 45, 632, 641, 0, 5, 7, - 551, 3, 9, 2419, 51, 635, 638, 45, - 59, 57, 55, 0, 61, 632, 641, 0, - 5, 7, 551, 3, 9, 51, 635, 638, - 45, 59, 57, 55, 0, 61, 632, 641, - 0, 5, 7, 551, 3, 9, 51, 635, - 638, 45, 59, 57, 55, 0, 61, 632, - 641, 0, 5, 7, 551, 3, 9, 629, - 45, 59, 57, 55, 0, 61, 2427, 45, - 59, 57, 55, 0, 61, 2443, 4381, 11, - 383, 2427, 45, 59, 57, 55, 0, 61, - 662, 2451, 2455, 4381, 2447, 2459, 11, 383, - 2427, 45, 59, 57, 55, 0, 61, 662, - 2451, 2455, 4381, 2447, 2459, 11, 383, 2427, - 45, 59, 57, 55, 0, 61, 662, 2451, - 2455, 4381, 2447, 2459, 11, 383, 11, 383, - 11, 383, 452, 35, 467, 470, 464, 473, - 452, 0, 5, 7, 3, 9, 461, 11, - 383, 524, 43, 533, 536, 530, 539, 0, - 5, 7, 524, 3, 9, 527, 11, 383, - 551, 49, 614, 617, 45, 611, 620, 0, - 5, 7, 524, 3, 9, 527, 11, 383, - 2495, 704, 35, 467, 470, 464, 473, 2127, - 4056, 4061, 452, 0, 5, 7, 3, 9, - 701, 1979, 2027, 11, 383, 755, 2603, 105, - 1745, 2879, 281, 1673, 1676, 45, 1670, 1679, - 0, 5, 7, 551, 0, 0, 3, 9, - 285, 1697, 1700, 45, 1694, 1703, 0, 5, - 7, 4336, 3, 9, 575, 2283, 2287, 0, - 45, 2279, 2291, 0, 5, 7, 3, 9, - 0, 5, 7, 3, 9, 551, 283, 1685, - 1688, 45, 1682, 1691, 0, 5, 7, 551, - 0, 0, 3, 9, 287, 1709, 1712, 45, - 1706, 1715, 0, 5, 7, 4336, 3, 9, - 578, 2299, 2303, 0, 45, 2295, 2307, 0, - 5, 7, 3, 9, 0, 5, 7, 3, - 9, 0, 4331, 5876, 581, 2315, 2319, 0, - 45, 581, 2311, 2323, 4311, 5726, 5732, 0, - 5, 7, 4331, 3, 9, 1742, 1991, 2039, - 584, 2331, 2335, 0, 45, 584, 2327, 2339, - 4316, 5738, 5744, 0, 5, 7, 4331, 3, - 9, 1991, 2039, 587, 2347, 2351, 0, 45, - 587, 2343, 2355, 4321, 5750, 5756, 0, 5, - 7, 4331, 3, 9, 1991, 2039, 590, 2363, - 2367, 0, 45, 2359, 2371, 4326, 5762, 5768, - 0, 5, 7, 3, 9, 1991, 2039, 11, - 383, 2275, 4296, 4301, 4186, 4291, 4306, 5720, - 5991, 5998, 548, 11, 383, 2271, 4276, 4281, - 4186, 2271, 4271, 4286, 5714, 5977, 5984, 548, - 11, 383, 2267, 4256, 4261, 4186, 2267, 4251, - 4266, 5708, 5963, 5970, 548, 11, 383, 2263, - 4236, 4241, 4186, 2263, 4231, 4246, 5702, 5949, - 5956, 548, 11, 383, 291, 1733, 1736, 1730, - 1739, 11, 383, 2259, 4216, 4221, 4186, 4211, - 4226, 548, 11, 383, 11, 383, 11, 383, - 289, 1721, 1724, 1718, 1727, 11, 383, 2255, - 4196, 4201, 4186, 4191, 4206, 548, 11, 383, - 11, 383, 551, 49, 614, 617, 45, 611, - 620, 0, 5, 7, 551, 3, 9, 49, - 614, 617, 45, 611, 620, 0, 5, 7, - 551, 3, 9, 49, 614, 617, 45, 611, - 620, 0, 5, 7, 524, 3, 9, 527, - 11, 383, 11, 383, 11, 383, 551, 49, - 614, 617, 45, 611, 620, 0, 5, 7, - 551, 3, 9, 49, 614, 617, 45, 611, - 620, 452, 0, 5, 7, 3, 9, 35, - 467, 470, 464, 473, 452, 0, 5, 7, - 3, 9, 35, 467, 470, 464, 473, 452, - 0, 5, 7, 3, 9, 35, 467, 470, - 464, 473, 0, 5, 7, 524, 3, 9, - 527, 11, 383, 11, 383, 11, 383, 11, - 383, 11, 383, 321, 0, 5, 7, 3, - 9, 551, 49, 614, 617, 45, 611, 620, - 0, 5, 7, 319, 3, 9, 0, 5, - 7, 3, 9, 129, 1, 11, 383, 11, - 383, 11, 383, 782, 0, 770, 5, 7, - 773, 776, 3, 9, 1, 338, 359, 111, - 113, 0, 2571, 755, 105, 107, 551, 779, - 2635, 2639, 45, 2631, 2643, 2627, 4466, 4471, - 11, 383, 0, 755, 105, 109, 551, 49, - 614, 617, 45, 611, 620, 0, 5, 7, - 319, 3, 9, 0, 5, 7, 3, 9, - 551, 47, 599, 602, 45, 596, 605, 785, + 5, 7, 3, 9, 1, 340, 361, 11, + 385, 11, 385, 11, 385, 11, 385, 553, + 51, 637, 640, 45, 634, 643, 0, 5, + 7, 553, 3, 9, 625, 45, 1, 11, + 385, 553, 51, 637, 640, 45, 634, 643, + 0, 5, 7, 553, 3, 9, 47, 601, + 604, 45, 598, 607, 0, 5, 7, 553, + 3, 9, 47, 601, 604, 45, 598, 607, 0, 5, 7, 115, 3, 9, 117, 0, - 5, 7, 3, 9, 1, 338, 359, 11, - 383, 11, 383, 11, 383, 11, 383, 551, - 47, 599, 602, 45, 596, 605, 0, 5, - 7, 551, 3, 9, 47, 599, 602, 45, - 596, 605, 0, 5, 7, 115, 3, 9, - 117, 0, 5, 7, 3, 9, 1, 338, - 359, 11, 383, 11, 383, 11, 383, 551, - 47, 599, 602, 45, 596, 605, 872, 0, - 5, 7, 147, 149, 151, 153, 3, 9, - 0, 5, 7, 3, 9, 2243, 551, 47, - 599, 602, 45, 596, 605, 0, 5, 7, - 0, 3, 9, 2663, 0, 5, 7, 0, - 5, 7, 0, 5, 7, 1, 3, 9, - 338, 359, 3, 9, 338, 359, 3, 9, - 338, 359, 875, 129, 11, 383, 11, 383, - 11, 383, 11, 383, 11, 383, 0, 5, - 7, 3, 9, 551, 47, 599, 602, 45, - 596, 605, 2575, 0, 5, 7, 755, 3, - 9, 4431, 105, 764, 2587, 2591, 764, 2587, - 2591, 764, 2587, 2591, 2579, 2583, 2595, 4436, - 4441, 2583, 2595, 4436, 4441, 2583, 2595, 4436, - 4441, 11, 383, 11, 383, 0, 5, 7, - 3, 9, 551, 47, 599, 602, 45, 596, - 605, 0, 5, 7, 755, 3, 9, 105, - 767, 2611, 2615, 767, 2611, 2615, 767, 2611, - 2615, 2603, 2607, 2619, 4451, 4456, 2607, 2619, - 4451, 4456, 2607, 2619, 4451, 4456, 11, 383, - 11, 383, 0, 5, 7, 3, 9, 551, - 47, 599, 602, 45, 596, 605, 0, 5, - 7, 524, 3, 9, 43, 533, 536, 43, - 533, 536, 43, 533, 536, 527, 530, 539, - 2231, 2235, 530, 539, 2231, 2235, 530, 539, - 2231, 2235, 11, 383, 11, 383, 11, 383, - 171, 0, 5, 7, 3, 9, 319, 0, - 5, 7, 3, 9, 551, 47, 599, 602, - 45, 596, 605, 0, 5, 7, 551, 3, - 9, 51, 635, 638, 45, 632, 641, 683, - 0, 5, 7, 668, 3, 9, 65, 674, - 677, 63, 671, 680, 0, 5, 7, 668, - 3, 9, 65, 674, 677, 63, 671, 680, - 0, 5, 7, 551, 3, 9, 49, 614, - 617, 45, 611, 620, 0, 5, 7, 524, - 3, 9, 43, 533, 536, 530, 539, 0, - 5, 7, 129, 3, 9, 1, 11, 383, - 11, 383, 11, 383, 11, 383, 11, 383, - 11, 383, 11, 383, 11, 383, 524, 542, - 1, 551, 49, 614, 617, 45, 611, 620, - 0, 5, 7, 551, 3, 9, 47, 599, - 602, 45, 596, 605, 0, 5, 7, 319, - 3, 9, 0, 5, 7, 3, 9, 129, - 1, 11, 383, 11, 383, 11, 383, 129, - 1, 551, 47, 599, 602, 45, 596, 605, - 0, 5, 7, 551, 3, 9, 47, 599, - 602, 45, 596, 605, 0, 5, 7, 551, - 3, 9, 49, 614, 617, 45, 611, 620, - 0, 5, 7, 33, 455, 3, 9, 35, - 467, 470, 464, 473, 791, 0, 5, 7, - 458, 3, 9, 133, 135, 0, 137, 139, - 0, 141, 0, 143, 145, 0, 476, 131, - 1, 0, 0, 11, 383, 117, 115, 11, - 383, 11, 383, 11, 383, 551, 47, 599, - 602, 45, 596, 605, 0, 5, 7, 551, - 3, 9, 47, 599, 602, 45, 596, 605, - 0, 5, 7, 551, 3, 9, 49, 614, - 617, 45, 611, 620, 0, 5, 7, 33, - 455, 3, 9, 461, 117, 115, 11, 383, - 11, 383, 11, 383, 551, 47, 599, 602, - 45, 596, 605, 0, 5, 7, 551, 3, - 9, 47, 599, 602, 45, 596, 605, 0, - 5, 7, 551, 3, 9, 47, 599, 602, - 45, 596, 605, 0, 5, 7, 115, 3, - 9, 117, 0, 5, 7, 3, 9, 1, - 338, 359, 11, 383, 11, 383, 11, 383, - 11, 383, 551, 51, 635, 638, 45, 632, - 641, 0, 5, 7, 551, 3, 9, 623, - 45, 1, 11, 383, 551, 51, 635, 638, - 45, 632, 641, 0, 5, 7, 551, 3, - 9, 47, 599, 602, 45, 596, 605, 0, - 5, 7, 551, 3, 9, 47, 599, 602, - 45, 596, 605, 0, 5, 7, 115, 3, - 9, 117, 0, 5, 7, 3, 9, 1, - 338, 359, 11, 383, 11, 383, 11, 383, - 11, 383, 551, 49, 614, 617, 45, 611, - 620, 0, 5, 7, 755, 3, 9, 2579, - 105, 11, 383, 551, 49, 614, 617, 45, - 611, 620, 0, 5, 7, 1751, 3, 9, - 117, 115, 117, 2651, 297, 115, 117, 115, - 117, 2899, 2895, 11, 383, 1748, 117, 2891, - 295, 115, 117, 2883, 1748, 117, 295, 115, - 117, 2887, 551, 49, 614, 617, 45, 611, - 620, 0, 5, 7, 551, 3, 9, 49, - 614, 617, 45, 611, 620, 75, 0, 5, - 7, 3, 9, 1, 11, 383, 11, 383, - 551, 47, 599, 602, 45, 596, 605, 452, - 0, 5, 7, 3, 9, 35, 467, 470, - 464, 473, 75, 0, 5, 7, 3, 9, - 1, 11, 383, 11, 383, 551, 49, 614, - 617, 45, 611, 620, 0, 5, 7, 524, - 3, 9, 545, 1, 11, 383, 171, 0, - 5, 7, 3, 9, 323, 0, 5, 7, - 3, 9, 551, 49, 614, 617, 45, 611, - 620, 0, 5, 7, 524, 3, 9, 527, - 11, 383, 11, 383, 11, 383, 515, 512, - 0, 2203, 2207, 491, 386, 395, 2199, 2211, - 512, 327, 2007, 2015, 2927, 2935, 1975, 2023, - 2919, 2923, 3976, 3986, 2223, 512, 2007, 2015, - 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551, - 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551, - 2551, 2551, 1975, 2023, 4161, 4176, 4421, 4421, - 4421, 4421, 4421, 4421, 4421, 4421, 4421, 4421, - 4421, 4421, 4421, 4421, 4421, 4421, 4421, 4421, - 2215, 2547, 93, 4406, 4411, 2543, 2535, 2539, - 4401, 4416, 2007, 2015, 1975, 2023, 401, 2075, - 2083, 4031, 2091, 401, 2003, 2011, 2019, 3981, - 5690, 5696, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 3971 + 5, 7, 3, 9, 1, 340, 361, 11, + 385, 11, 385, 11, 385, 11, 385, 553, + 49, 616, 619, 45, 613, 622, 0, 5, + 7, 757, 3, 9, 2599, 105, 11, 385, + 553, 49, 616, 619, 45, 613, 622, 0, + 5, 7, 1768, 3, 9, 117, 115, 117, + 2671, 299, 115, 117, 115, 117, 2923, 2919, + 11, 385, 1765, 117, 2915, 297, 115, 117, + 2907, 1765, 117, 297, 115, 117, 2911, 553, + 49, 616, 619, 45, 613, 622, 0, 5, + 7, 553, 3, 9, 49, 616, 619, 45, + 613, 622, 75, 0, 5, 7, 3, 9, + 1, 11, 385, 11, 385, 553, 47, 601, + 604, 45, 598, 607, 454, 0, 5, 7, + 3, 9, 35, 469, 472, 466, 475, 75, + 0, 5, 7, 3, 9, 1, 11, 385, + 11, 385, 553, 49, 616, 619, 45, 613, + 622, 0, 5, 7, 526, 3, 9, 547, + 1, 11, 385, 171, 0, 5, 7, 3, + 9, 325, 0, 5, 7, 3, 9, 553, + 49, 616, 619, 45, 613, 622, 0, 5, + 7, 526, 3, 9, 529, 11, 385, 11, + 385, 11, 385, 517, 514, 0, 2223, 2227, + 493, 388, 397, 2219, 2231, 514, 329, 2027, + 2035, 2951, 2959, 1995, 2043, 2943, 2947, 4020, + 4030, 2243, 514, 2027, 2035, 2571, 2571, 2571, + 2571, 2571, 2571, 2571, 2571, 2571, 2571, 2571, + 2571, 2571, 2571, 2571, 2571, 2571, 2571, 1995, + 2043, 4205, 4220, 4465, 4465, 4465, 4465, 4465, + 4465, 4465, 4465, 4465, 4465, 4465, 4465, 4465, + 4465, 4465, 4465, 4465, 4465, 2235, 2567, 93, + 4450, 4455, 2563, 2555, 2559, 4445, 4460, 2027, + 2035, 1995, 2043, 403, 2095, 2103, 4075, 2111, + 403, 2023, 2031, 2039, 4025, 5754, 5760, 5874, + 5874, 5874, 5874, 5874, 5874, 5874, 5874, 5874, + 5874, 5874, 5874, 5874, 5874, 5874, 5874, 5874, + 5874, 4015 }; static const short _zone_scanner_eof_actions[] = { - 0, 2247, 2423, 333, 1796, 325, 1781, 15, - 15, 325, 325, 1781, 1781, 1781, 4181, 5792, - 1793, 333, 333, 1796, 1781, 1781, 333, 333, - 333, 333, 333, 1796, 1796, 333, 333, 1796, - 333, 333, 333, 1796, 333, 333, 333, 1796, - 333, 333, 333, 333, 1796, 333, 333, 333, - 1796, 333, 333, 333, 1796, 1796, 333, 333, - 1796, 333, 333, 333, 333, 1796, 333, 1796, - 333, 333, 333, 333, 1796, 333, 333, 333, - 1796, 333, 333, 333, 333, 333, 333, 333, - 333, 333, 333, 1796, 333, 333, 1796, 1796, - 333, 333, 1796, 333, 1796, 333, 1796, 1796, - 333, 333, 333, 333, 1796, 1796, 333, 333, - 333, 333, 1796, 333, 1796, 1796, 333, 1796, - 1796, 333, 333, 333, 333, 1796, 333, 333, - 333, 333, 333, 333, 333, 333, 333, 1796, - 333, 333, 1796, 333, 333, 333, 333, 333, - 333, 1796, 1796, 333, 333, 333, 1796, 1796, - 333, 333, 333, 333, 333, 1796, 333, 1796, - 333, 1796, 333, 1796, 333, 333, 333, 1796, - 333, 333, 1796, 333, 333, 333, 1796, 333, - 1796, 333, 333, 572, 2251, 333, 333, 1796, - 333, 333, 333, 333, 333, 1796, 333, 333, - 333, 333, 333, 1796, 333, 2247, 333, 333, - 572, 2423, 2423, 2423, 2423, 333, 15, 95, + 0, 2267, 2443, 335, 1813, 327, 1798, 15, + 15, 327, 327, 1798, 1798, 1798, 4225, 5856, + 1810, 335, 335, 1813, 1798, 1798, 335, 335, + 335, 335, 335, 1813, 1813, 335, 335, 1813, + 335, 335, 335, 1813, 335, 335, 335, 1813, + 335, 335, 335, 335, 1813, 335, 335, 335, + 1813, 335, 335, 335, 1813, 1813, 335, 335, + 1813, 335, 335, 335, 335, 1813, 335, 1813, + 335, 335, 335, 335, 1813, 335, 335, 335, + 1813, 335, 335, 335, 335, 335, 335, 335, + 335, 335, 335, 1813, 335, 335, 1813, 1813, + 335, 335, 1813, 335, 1813, 335, 1813, 1813, + 335, 335, 335, 335, 1813, 1813, 335, 335, + 335, 335, 1813, 335, 1813, 1813, 335, 1813, + 1813, 335, 335, 335, 335, 1813, 335, 335, + 335, 335, 335, 335, 335, 335, 335, 1813, + 335, 335, 1813, 335, 335, 335, 335, 335, + 335, 1813, 1813, 335, 335, 335, 1813, 1813, + 335, 335, 335, 335, 335, 1813, 335, 1813, + 335, 1813, 335, 1813, 335, 335, 335, 1813, + 335, 335, 1813, 335, 335, 335, 1813, 335, + 1813, 335, 335, 574, 2271, 335, 335, 1813, + 335, 335, 335, 335, 335, 1813, 335, 335, + 335, 335, 335, 1813, 335, 2267, 335, 335, + 574, 2443, 2443, 2443, 2443, 335, 15, 95, 95, 95, 95, 95, 95, 95, 95, 41, - 572, 0, 4166, 572, 333, 2423, 2423, 2423, - 333, 2227, 2251, 2939, 1781, 2247, 15, 1781, - 15, 4181, 2939, 2939, 2939, 2939, 2939, 2939, - 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939, - 2939, 2939, 2939, 1781, 2915, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 2219, 5942, - 2247, 1793, 4171, 4181, 4171, 4171, 4171, 4171, - 4171, 4171, 4171, 4171, 4171, 4171, 4171, 4171, - 4171, 4171, 4171, 4171, 4171, 518, 4181, 1781, - 15, 1781, 1781, 333, 333, 1796, 333, 333, - 333, 1796, 333, 1796, 1781, 1781, 15, 1781, - 1781, 1781, 1781, 325, 4181, 1781, 1781, 521, - 521, 521, 521, 521, 521, 521, 521, 521, - 521, 521, 521, 521, 521, 521, 521, 521, - 15, 1793, 521, 1793, 0, 0, 0, 31, - 31, 31, 431, 431, 431, 431, 31, 31, - 686, 686, 2487, 2487, 2487, 2487, 686, 686, - 69, 2487, 2487, 2487, 2487, 77, 554, 4376, - 404, 404, 4376, 2415, 4376, 77, 81, 81, - 81, 407, 407, 407, 434, 434, 434, 434, - 407, 81, 0, 85, 716, 722, 87, 722, - 15, 15, 437, 437, 437, 437, 722, 15, - 87, 0, 0, 127, 127, 127, 127, 127, - 127, 127, 169, 169, 169, 169, 169, 169, + 574, 0, 4210, 574, 335, 2443, 2443, 2443, + 335, 2247, 2271, 2963, 1798, 2267, 15, 1798, + 15, 4225, 2963, 2963, 2963, 2963, 2963, 2963, + 2963, 2963, 2963, 2963, 2963, 2963, 2963, 2963, + 2963, 2963, 2963, 1798, 2939, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 2239, 6006, + 2267, 1810, 4215, 4225, 4215, 4215, 4215, 4215, + 4215, 4215, 4215, 4215, 4215, 4215, 4215, 4215, + 4215, 4215, 4215, 4215, 4215, 520, 4225, 1798, + 15, 1798, 1798, 335, 335, 1813, 335, 335, + 335, 1813, 335, 335, 335, 1813, 335, 1813, + 1798, 1798, 15, 1798, 1798, 1798, 1798, 327, + 4225, 1798, 1798, 523, 523, 523, 523, 523, + 523, 523, 523, 523, 523, 523, 523, 523, + 523, 523, 523, 523, 15, 1810, 523, 1810, + 0, 0, 0, 31, 31, 31, 433, 433, + 433, 433, 31, 31, 688, 688, 2507, 2507, + 2507, 2507, 688, 688, 69, 2507, 2507, 2507, + 2507, 77, 556, 4420, 406, 406, 4420, 2435, + 4420, 77, 81, 81, 81, 409, 409, 409, + 436, 436, 436, 436, 409, 81, 0, 85, + 718, 724, 87, 724, 15, 15, 439, 439, + 439, 439, 724, 15, 87, 0, 0, 127, + 127, 127, 127, 127, 127, 127, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, @@ -6330,136 +6374,138 @@ static const short _zone_scanner_eof_actions[] = { 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 557, 557, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 293, 560, - 560, 2647, 2647, 2647, 2647, 293, 293, 293, - 560, 560, 2647, 2647, 2647, 2647, 293, 560, - 293, 303, 303, 303, 303, 303, 303, 303, + 169, 169, 559, 559, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 295, 562, 562, 2667, 2667, 2667, + 2667, 295, 295, 295, 562, 562, 2667, 2667, + 2667, 2667, 295, 562, 295, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 568, 568, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, + 303, 760, 760, 760, 760, 760, 760, 303, + 303, 303, 303, 303, 760, 760, 760, 760, + 760, 760, 303, 303, 565, 565, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 566, - 566, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, - 303, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 758, 758, 758, - 758, 758, 758, 301, 301, 301, 301, 301, - 758, 758, 758, 758, 758, 758, 301, 301, - 563, 563, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 563, 563, 563, 563, 301, 301, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, + 303, 303, 303, 303, 303, 303, 565, 565, + 565, 565, 303, 303, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 317, 317, 317, 317, 317, 317, 317, - 317, 761, 761, 325, 325, 325, 325, 325, - 325, 569, 569, 569, 2419, 569, 2419, 569, - 2419, 569, 2419, 2419, 2419, 2419, 325, 2419, - 2419, 2419, 325, 2419, 2419, 2419, 325, 2419, - 2419, 2419, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 569, - 569, 325, 325, 325, 704, 704, 704, 704, - 761, 761, 1745, 1745, 1745, 1745, 1745, 1745, - 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, - 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, - 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, - 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, - 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, - 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, - 1745, 569, 569, 569, 569, 569, 569, 325, - 325, 325, 325, 325, 569, 569, 569, 569, - 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 569, - 569, 325, 325, 325, 325, 325, 325, 325, - 782, 782, 782, 2571, 2571, 782, 782, 325, - 782, 2571, 2571, 569, 569, 325, 325, 569, - 569, 785, 785, 785, 785, 325, 325, 325, - 569, 569, 569, 569, 785, 785, 785, 785, - 325, 325, 569, 569, 872, 872, 2243, 2243, - 872, 2663, 875, 875, 875, 875, 875, 875, - 875, 872, 872, 872, 2243, 2243, 2575, 4431, - 872, 872, 872, 2243, 2243, 2575, 4431, 872, - 872, 872, 2243, 2243, 872, 2663, 872, 872, - 325, 325, 325, 325, 325, 569, 569, 569, - 569, 683, 683, 683, 683, 569, 569, 325, - 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 569, 569, - 569, 569, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 569, 569, 569, 569, 569, - 569, 785, 785, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 325, 791, 791, 791, - 791, 791, 325, 785, 785, 325, 325, 325, - 569, 569, 569, 569, 569, 569, 785, 785, - 785, 785, 325, 325, 325, 569, 569, 569, - 569, 569, 569, 785, 785, 785, 785, 325, - 325, 325, 569, 569, 569, 569, 325, 325, - 569, 569, 569, 569, 569, 569, 785, 785, - 785, 785, 325, 325, 325, 569, 569, 761, - 761, 325, 569, 569, 785, 785, 785, 785, - 2651, 785, 785, 785, 785, 2899, 325, 785, - 785, 2891, 785, 785, 2891, 785, 785, 2891, - 785, 785, 2891, 569, 569, 569, 569, 325, - 325, 325, 325, 569, 569, 325, 325, 325, - 325, 325, 325, 569, 569, 325, 325, 325, - 325, 325, 325, 325, 325, 569, 569, 325, - 325, 325, 325, 325, 0, 0, 0, 0, - 93, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 319, 319, 319, + 319, 319, 319, 319, 319, 763, 763, 327, + 327, 327, 327, 327, 327, 571, 571, 571, + 2439, 571, 2439, 571, 2439, 571, 2439, 2439, + 2439, 2439, 327, 2439, 2439, 2439, 327, 2439, + 2439, 2439, 327, 2439, 2439, 2439, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 327, + 327, 327, 327, 571, 571, 327, 327, 327, + 706, 706, 706, 706, 763, 763, 1762, 1762, + 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, + 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, + 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, + 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, + 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, + 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, + 1762, 1762, 1762, 1762, 1762, 571, 571, 571, + 571, 571, 571, 327, 327, 327, 327, 327, + 571, 571, 571, 571, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 327, + 327, 327, 327, 571, 571, 327, 327, 327, + 327, 327, 327, 327, 784, 784, 784, 2591, + 2591, 784, 784, 327, 784, 2591, 2591, 571, + 571, 327, 327, 571, 571, 787, 787, 787, + 787, 327, 327, 327, 571, 571, 571, 571, + 787, 787, 787, 787, 327, 327, 571, 571, + 874, 874, 2263, 2263, 874, 2683, 877, 877, + 877, 877, 877, 877, 877, 874, 874, 874, + 2263, 2263, 2595, 4475, 874, 874, 874, 2263, + 2263, 2595, 4475, 874, 874, 874, 2263, 2263, + 874, 2683, 874, 874, 327, 327, 327, 327, + 327, 571, 571, 571, 571, 685, 685, 685, + 685, 571, 571, 327, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 327, + 327, 327, 571, 571, 571, 571, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 571, + 571, 571, 571, 571, 571, 787, 787, 793, + 793, 793, 793, 793, 793, 793, 793, 793, + 327, 793, 793, 793, 793, 793, 327, 787, + 787, 327, 327, 327, 571, 571, 571, 571, + 571, 571, 787, 787, 787, 787, 327, 327, + 327, 571, 571, 571, 571, 571, 571, 787, + 787, 787, 787, 327, 327, 327, 571, 571, + 571, 571, 327, 327, 571, 571, 571, 571, + 571, 571, 787, 787, 787, 787, 327, 327, + 327, 571, 571, 763, 763, 327, 571, 571, + 787, 787, 787, 787, 2671, 787, 787, 787, + 787, 2923, 327, 787, 787, 2915, 787, 787, + 2915, 787, 787, 2915, 787, 787, 2915, 571, + 571, 571, 571, 327, 327, 327, 327, 571, + 571, 327, 327, 327, 327, 327, 327, 571, + 571, 327, 327, 327, 327, 327, 327, 327, + 327, 571, 571, 327, 327, 327, 327, 327, + 0, 0, 0, 0, 93, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 }; @@ -6481,7 +6527,7 @@ int zs_init( memset(s, 0, sizeof(*s)); // Nonzero initial scanner state. - s->cs = 1492; + s->cs = 1504; // Reset the file descriptor. s->file.descriptor = -1; @@ -7021,7 +7067,7 @@ _match: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } s->multiline = true; } @@ -7030,7 +7076,7 @@ _match: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } s->multiline = false; } @@ -7071,7 +7117,7 @@ _match: case 8: { WARN(ZS_BAD_REST); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 9: @@ -7124,15 +7170,15 @@ _match: if (s->error.fatal) { {p++; goto _out; } } - {cs = 324;goto _again;} + {cs = 328;goto _again;} } else { // Return if external processing. - p--; cs = 324; {p++; goto _out; } + p--; cs = 328; {p++; goto _out; } } } break; case 12: - { p--; {stack[top++] = cs; cs = 1492;goto _again;} } + { p--; {stack[top++] = cs; cs = 1504;goto _again;} } break; case 13: { @@ -7148,7 +7194,7 @@ _match: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7161,7 +7207,7 @@ _match: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7172,7 +7218,7 @@ _match: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7190,7 +7236,7 @@ _match: case 19: { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 20: @@ -7210,7 +7256,7 @@ _match: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7233,11 +7279,11 @@ _match: case 24: { WARN(ZS_BAD_DNAME_CHAR); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 25: - { p--; {stack[top++] = cs; cs = 327;goto _again;} } + { p--; {stack[top++] = cs; cs = 331;goto _again;} } break; case 26: { @@ -7245,7 +7291,7 @@ _match: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7254,13 +7300,13 @@ _match: s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7271,7 +7317,7 @@ _match: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7284,7 +7330,7 @@ _match: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7303,7 +7349,7 @@ _match: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7311,7 +7357,7 @@ _match: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 34: @@ -7336,7 +7382,7 @@ _match: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7348,7 +7394,7 @@ _match: case 38: { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 39: @@ -7376,7 +7422,7 @@ _match: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7397,7 +7443,7 @@ _match: rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7409,7 +7455,7 @@ _match: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7421,7 +7467,7 @@ _match: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7431,7 +7477,7 @@ _match: s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7441,14 +7487,14 @@ _match: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; case 50: { WARN(ZS_BAD_TIME_UNIT); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 51: @@ -7456,7 +7502,7 @@ _match: s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7465,7 +7511,7 @@ _match: s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7474,7 +7520,7 @@ _match: s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7483,7 +7529,7 @@ _match: s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7498,7 +7544,7 @@ _match: s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7513,7 +7559,7 @@ _match: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7530,7 +7576,7 @@ _match: rdata_tail += 4; } else { WARN(ret); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -7539,7 +7585,7 @@ _match: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } if (s->number64 <= UINT32_MAX) { @@ -7547,18 +7593,18 @@ _match: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; case 60: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 61: @@ -7574,27 +7620,27 @@ _match: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; case 62: { WARN(ZS_BAD_TEXT_CHAR); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 63: { WARN(ZS_BAD_TEXT); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 64: @@ -7610,7 +7656,7 @@ _match: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } @@ -7618,7 +7664,7 @@ _match: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7633,7 +7679,7 @@ _match: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7645,7 +7691,7 @@ _match: case 67: { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 68: @@ -7656,7 +7702,7 @@ _match: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -7674,13 +7720,13 @@ _match: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } } break; case 69: - { p--; {stack[top++] = cs; cs = 336;goto _again;} } + { p--; {stack[top++] = cs; cs = 340;goto _again;} } break; case 70: { @@ -7698,18 +7744,18 @@ _match: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; case 73: { ERR(ZS_BAD_TTL); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 74: - { p--; {stack[top++] = cs; cs = 349;goto _again;} } + { p--; {stack[top++] = cs; cs = 353;goto _again;} } break; case 75: { @@ -7724,11 +7770,11 @@ _match: case 77: { ERR(ZS_BAD_ORIGIN); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 78: - { p--; {stack[top++] = cs; cs = 358;goto _again;} } + { p--; {stack[top++] = cs; cs = 362;goto _again;} } break; case 79: { @@ -7740,7 +7786,7 @@ _match: size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } // Store zero terminated include filename. @@ -7754,7 +7800,7 @@ _match: case 81: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 82: @@ -7770,7 +7816,7 @@ _match: case 84: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 85: @@ -7781,7 +7827,7 @@ _match: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -7801,7 +7847,7 @@ _match: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } // Parse included zone file. @@ -7821,18 +7867,18 @@ _match: } zs_deinit(ss); free(ss); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1492; {p++; goto _out; } + p--; cs = 1504; {p++; goto _out; } } } break; case 86: - { p--; {stack[top++] = cs; cs = 370;goto _again;} } + { p--; {stack[top++] = cs; cs = 374;goto _again;} } break; case 87: { @@ -7847,7 +7893,7 @@ _match: case 89: { ERR(ZS_BAD_DIRECTIVE); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 90: @@ -7871,7 +7917,7 @@ _match: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7886,14 +7932,14 @@ _match: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; case 96: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 97: @@ -7902,7 +7948,7 @@ _match: if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7910,7 +7956,7 @@ _match: { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -7922,7 +7968,7 @@ _match: if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7930,7 +7976,7 @@ _match: { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -7963,7 +8009,7 @@ _match: s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -7982,7 +8028,7 @@ _match: break; default: WARN(ZS_BAD_APL); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -7994,7 +8040,7 @@ _match: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -8014,7 +8060,7 @@ _match: case 107: { WARN(ZS_BAD_APL); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 108: @@ -8023,7 +8069,7 @@ _match: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -8036,21 +8082,21 @@ _match: case 110: { WARN(ZS_BAD_HEX_CHAR); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 111: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; case 112: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 113: @@ -8059,7 +8105,7 @@ _match: *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -8071,7 +8117,7 @@ _match: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -8083,7 +8129,7 @@ _match: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -8095,11 +8141,11 @@ _match: case 117: { WARN(ZS_BAD_BASE64_CHAR); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 118: - { p--; {stack[top++] = cs; cs = 387;goto _again;} } + { p--; {stack[top++] = cs; cs = 391;goto _again;} } break; case 119: { @@ -8107,7 +8153,7 @@ _match: *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -8119,7 +8165,7 @@ _match: *rdata_tail = second_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -8136,7 +8182,7 @@ _match: *rdata_tail = fourth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -8148,7 +8194,7 @@ _match: *rdata_tail = fifth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -8165,7 +8211,7 @@ _match: *rdata_tail = seventh_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; @@ -8177,7 +8223,7 @@ _match: case 127: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 128: @@ -8345,19 +8391,19 @@ _match: case 156: { WARN(ZS_BAD_GATEWAY); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 157: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 158: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; case 159: @@ -8514,178 +8560,184 @@ _match: { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } break; case 210: - { p--; {stack[top++] = cs; cs = 394;goto _again;} } + { type_num(KNOT_RRTYPE_ALIAS, &rdata_tail); } break; case 211: + { p--; {stack[top++] = cs; cs = 398;goto _again;} } + break; + case 212: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 212: - { window_add_bit(KNOT_RRTYPE_A, s); } - break; case 213: - { window_add_bit(KNOT_RRTYPE_NS, s); } + { window_add_bit(KNOT_RRTYPE_A, s); } break; case 214: - { window_add_bit(KNOT_RRTYPE_CNAME, s); } + { window_add_bit(KNOT_RRTYPE_NS, s); } break; case 215: - { window_add_bit(KNOT_RRTYPE_SOA, s); } + { window_add_bit(KNOT_RRTYPE_CNAME, s); } break; case 216: - { window_add_bit(KNOT_RRTYPE_PTR, s); } + { window_add_bit(KNOT_RRTYPE_SOA, s); } break; case 217: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } + { window_add_bit(KNOT_RRTYPE_PTR, s); } break; case 218: - { window_add_bit(KNOT_RRTYPE_MINFO, s); } + { window_add_bit(KNOT_RRTYPE_HINFO, s); } break; case 219: - { window_add_bit(KNOT_RRTYPE_MX, s); } + { window_add_bit(KNOT_RRTYPE_MINFO, s); } break; case 220: - { window_add_bit(KNOT_RRTYPE_TXT, s); } + { window_add_bit(KNOT_RRTYPE_MX, s); } break; case 221: - { window_add_bit(KNOT_RRTYPE_RP, s); } + { window_add_bit(KNOT_RRTYPE_TXT, s); } break; case 222: - { window_add_bit(KNOT_RRTYPE_AFSDB, s); } + { window_add_bit(KNOT_RRTYPE_RP, s); } break; case 223: - { window_add_bit(KNOT_RRTYPE_RT, s); } + { window_add_bit(KNOT_RRTYPE_AFSDB, s); } break; case 224: - { window_add_bit(KNOT_RRTYPE_KEY, s); } + { window_add_bit(KNOT_RRTYPE_RT, s); } break; case 225: - { window_add_bit(KNOT_RRTYPE_AAAA, s); } + { window_add_bit(KNOT_RRTYPE_KEY, s); } break; case 226: - { window_add_bit(KNOT_RRTYPE_LOC, s); } + { window_add_bit(KNOT_RRTYPE_AAAA, s); } break; case 227: - { window_add_bit(KNOT_RRTYPE_SRV, s); } + { window_add_bit(KNOT_RRTYPE_LOC, s); } break; case 228: - { window_add_bit(KNOT_RRTYPE_NAPTR, s); } + { window_add_bit(KNOT_RRTYPE_SRV, s); } break; case 229: - { window_add_bit(KNOT_RRTYPE_KX, s); } + { window_add_bit(KNOT_RRTYPE_NAPTR, s); } break; case 230: - { window_add_bit(KNOT_RRTYPE_CERT, s); } + { window_add_bit(KNOT_RRTYPE_KX, s); } break; case 231: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } + { window_add_bit(KNOT_RRTYPE_CERT, s); } break; case 232: - { window_add_bit(KNOT_RRTYPE_APL, s); } + { window_add_bit(KNOT_RRTYPE_DNAME, s); } break; case 233: - { window_add_bit(KNOT_RRTYPE_DS, s); } + { window_add_bit(KNOT_RRTYPE_APL, s); } break; case 234: - { window_add_bit(KNOT_RRTYPE_SSHFP, s); } + { window_add_bit(KNOT_RRTYPE_DS, s); } break; case 235: - { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } + { window_add_bit(KNOT_RRTYPE_SSHFP, s); } break; case 236: - { window_add_bit(KNOT_RRTYPE_RRSIG, s); } + { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } break; case 237: - { window_add_bit(KNOT_RRTYPE_NSEC, s); } + { window_add_bit(KNOT_RRTYPE_RRSIG, s); } break; case 238: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } + { window_add_bit(KNOT_RRTYPE_NSEC, s); } break; case 239: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } break; case 240: - { window_add_bit(KNOT_RRTYPE_NSEC3, s); } + { window_add_bit(KNOT_RRTYPE_DHCID, s); } break; case 241: - { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } + { window_add_bit(KNOT_RRTYPE_NSEC3, s); } break; case 242: - { window_add_bit(KNOT_RRTYPE_TLSA, s); } + { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } break; case 243: - { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } + { window_add_bit(KNOT_RRTYPE_TLSA, s); } break; case 244: - { window_add_bit(KNOT_RRTYPE_CDS, s); } + { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } break; case 245: - { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } + { window_add_bit(KNOT_RRTYPE_CDS, s); } break; case 246: - { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } + { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } break; case 247: - { window_add_bit(KNOT_RRTYPE_CSYNC, s); } + { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } break; case 248: - { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } + { window_add_bit(KNOT_RRTYPE_CSYNC, s); } break; case 249: - { window_add_bit(KNOT_RRTYPE_SPF, s); } + { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } break; case 250: - { window_add_bit(KNOT_RRTYPE_NID, s); } + { window_add_bit(KNOT_RRTYPE_SPF, s); } break; case 251: - { window_add_bit(KNOT_RRTYPE_L32, s); } + { window_add_bit(KNOT_RRTYPE_NID, s); } break; case 252: - { window_add_bit(KNOT_RRTYPE_L64, s); } + { window_add_bit(KNOT_RRTYPE_L32, s); } break; case 253: - { window_add_bit(KNOT_RRTYPE_LP, s); } + { window_add_bit(KNOT_RRTYPE_L64, s); } break; case 254: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } + { window_add_bit(KNOT_RRTYPE_LP, s); } break; case 255: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } + { window_add_bit(KNOT_RRTYPE_EUI48, s); } break; case 256: - { window_add_bit(KNOT_RRTYPE_URI, s); } + { window_add_bit(KNOT_RRTYPE_EUI64, s); } break; case 257: - { window_add_bit(KNOT_RRTYPE_CAA, s); } + { window_add_bit(KNOT_RRTYPE_URI, s); } break; case 258: - { window_add_bit(KNOT_RRTYPE_SVCB, s); } + { window_add_bit(KNOT_RRTYPE_CAA, s); } break; case 259: - { window_add_bit(KNOT_RRTYPE_HTTPS, s); } + { window_add_bit(KNOT_RRTYPE_SVCB, s); } break; case 260: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + { window_add_bit(KNOT_RRTYPE_HTTPS, s); } break; case 261: - { window_add_bit(KNOT_RRTYPE_RESINFO, s); } + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } break; case 262: - { window_add_bit(KNOT_RRTYPE_WALLET, s); } + { window_add_bit(KNOT_RRTYPE_RESINFO, s); } break; case 263: + { window_add_bit(KNOT_RRTYPE_WALLET, s); } + break; + case 264: + { window_add_bit(KNOT_RRTYPE_ALIAS, s); } + break; + case 265: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } break; - case 264: + case 266: { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -8704,82 +8756,82 @@ _match: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } } } break; - case 265: + case 267: { WARN(ZS_BAD_BITMAP); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 266: - { p--; {stack[top++] = cs; cs = 571;goto _again;} } + case 268: + { p--; {stack[top++] = cs; cs = 579;goto _again;} } break; - case 267: + case 269: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 268: + case 270: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 269: + case 271: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 270: + case 272: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 271: + case 273: { if (s->number64 <= 59999) { s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 272: + case 274: { if (s->number64 <= 59999) { s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 273: + case 275: { if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || (s->loc.alt_sign == -1 && s->number64 <= 10000000)) @@ -8787,56 +8839,56 @@ _match: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 274: + case 276: { if (s->number64 <= 9000000000ULL) { s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 275: + case 277: { if (s->number64 <= 9000000000ULL) { s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 276: + case 278: { if (s->number64 <= 9000000000ULL) { s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 277: + case 279: { s->loc.lat_sign = -1; } break; - case 278: + case 280: { s->loc.long_sign = -1; } break; - case 279: + case 281: { s->loc.alt_sign = -1; } break; - case 280: + case 282: { memset(&(s->loc), 0, sizeof(s->loc)); // Defaults. @@ -8848,7 +8900,7 @@ _match: s->loc.alt_sign = 1; } break; - case 281: + case 283: { // Write version. *(rdata_tail) = 0; @@ -8876,291 +8928,292 @@ _match: rdata_tail += 4; } break; - case 282: + case 284: { WARN(ZS_BAD_LOC_DATA); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 283: + case 285: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 284: + case 286: { s->item_length = 0; } break; - case 285: + case 287: { s->item_length++; } break; - case 286: + case 288: { if (s->item_length != 6) { WARN(ZS_BAD_EUI_LENGTH); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 287: + case 289: { if (s->item_length != 8) { WARN(ZS_BAD_EUI_LENGTH); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 288: + case 290: { WARN(ZS_BAD_CHAR_DASH); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 289: + case 291: { s->item_length = 0; } break; - case 290: + case 292: { s->item_length++; } break; - case 291: + case 293: { if (s->item_length != 4) { WARN(ZS_BAD_L64_LENGTH); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 292: + case 294: { WARN(ZS_BAD_CHAR_COLON); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 293: + case 295: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; } break; - case 294: + case 296: { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 295: + case 297: { WARN(ZS_BAD_SVCB_PARAM); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 296: + case 298: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 297: + case 299: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } s->svcb.param_position = rdata_tail; } break; - case 298: + case 300: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 299: + case 301: { s->comma_list = true; s->pending_backslash = false; } break; - case 300: + case 302: { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 301: + case 303: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } break; - case 302: + case 304: { svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } break; - case 303: + case 305: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } } break; - case 304: - { p--; {stack[top++] = cs; cs = 769;goto _again;} } + case 306: + { p--; {stack[top++] = cs; cs = 781;goto _again;} } break; - case 305: - { p--; {stack[top++] = cs; cs = 825;goto _again;} } + case 307: + { p--; {stack[top++] = cs; cs = 837;goto _again;} } break; - case 306: + case 308: { WARN(ZS_BAD_ALGORITHM); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 307: + case 309: { WARN(ZS_BAD_CERT_TYPE); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 308: + case 310: { WARN(ZS_BAD_DSYNC_SCHEME); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 309: - { p--; {stack[top++] = cs; cs = 936;goto _again;} } - break; - case 310: - { p--; {stack[top++] = cs; cs = 1040;goto _again;} } - break; case 311: - { p--; {stack[top++] = cs; cs = 1081;goto _again;} } + { p--; {stack[top++] = cs; cs = 948;goto _again;} } break; case 312: + { p--; {stack[top++] = cs; cs = 1052;goto _again;} } + break; + case 313: + { p--; {stack[top++] = cs; cs = 1093;goto _again;} } + break; + case 314: { rdata_tail = s->r_data; } break; - case 313: + case 315: { WARN(ZS_BAD_RDATA); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 314: + case 316: { p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = cs; cs = 1089;goto _again;} + {stack[top++] = cs; cs = 1101;goto _again;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: - {stack[top++] = cs; cs = 1091;goto _again;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = cs; cs = 1103;goto _again;} case KNOT_RRTYPE_SOA: - {stack[top++] = cs; cs = 1093;goto _again;} + {stack[top++] = cs; cs = 1105;goto _again;} case KNOT_RRTYPE_HINFO: - {stack[top++] = cs; cs = 1125;goto _again;} + {stack[top++] = cs; cs = 1137;goto _again;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = cs; cs = 1130;goto _again;} + {stack[top++] = cs; cs = 1142;goto _again;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = cs; cs = 1135;goto _again;} + {stack[top++] = cs; cs = 1147;goto _again;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = cs; cs = 1140;goto _again;} + {stack[top++] = cs; cs = 1152;goto _again;} case KNOT_RRTYPE_AAAA: - {stack[top++] = cs; cs = 1144;goto _again;} + {stack[top++] = cs; cs = 1156;goto _again;} case KNOT_RRTYPE_LOC: - {stack[top++] = cs; cs = 1146;goto _again;} + {stack[top++] = cs; cs = 1158;goto _again;} case KNOT_RRTYPE_SRV: - {stack[top++] = cs; cs = 1201;goto _again;} + {stack[top++] = cs; cs = 1213;goto _again;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = cs; cs = 1212;goto _again;} + {stack[top++] = cs; cs = 1224;goto _again;} case KNOT_RRTYPE_CERT: - {stack[top++] = cs; cs = 1229;goto _again;} + {stack[top++] = cs; cs = 1241;goto _again;} case KNOT_RRTYPE_APL: - {stack[top++] = cs; cs = 1240;goto _again;} + {stack[top++] = cs; cs = 1252;goto _again;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = cs; cs = 1251;goto _again;} + {stack[top++] = cs; cs = 1263;goto _again;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = cs; cs = 1264;goto _again;} + {stack[top++] = cs; cs = 1276;goto _again;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = cs; cs = 1274;goto _again;} + {stack[top++] = cs; cs = 1286;goto _again;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = cs; cs = 1313;goto _again;} + {stack[top++] = cs; cs = 1325;goto _again;} case KNOT_RRTYPE_NSEC: - {stack[top++] = cs; cs = 1339;goto _again;} + {stack[top++] = cs; cs = 1351;goto _again;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = cs; cs = 1342;goto _again;} + {stack[top++] = cs; cs = 1354;goto _again;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = cs; cs = 1353;goto _again;} + {stack[top++] = cs; cs = 1365;goto _again;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = cs; cs = 1355;goto _again;} + {stack[top++] = cs; cs = 1367;goto _again;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = cs; cs = 1384;goto _again;} + {stack[top++] = cs; cs = 1396;goto _again;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = cs; cs = 1397;goto _again;} + {stack[top++] = cs; cs = 1409;goto _again;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = cs; cs = 1410;goto _again;} + {stack[top++] = cs; cs = 1422;goto _again;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = cs; cs = 1416;goto _again;} + {stack[top++] = cs; cs = 1428;goto _again;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = cs; cs = 1434;goto _again;} + {stack[top++] = cs; cs = 1446;goto _again;} case KNOT_RRTYPE_L32: - {stack[top++] = cs; cs = 1429;goto _again;} + {stack[top++] = cs; cs = 1441;goto _again;} case KNOT_RRTYPE_EUI48: - {stack[top++] = cs; cs = 1447;goto _again;} + {stack[top++] = cs; cs = 1459;goto _again;} case KNOT_RRTYPE_EUI64: - {stack[top++] = cs; cs = 1453;goto _again;} + {stack[top++] = cs; cs = 1465;goto _again;} case KNOT_RRTYPE_URI: - {stack[top++] = cs; cs = 1459;goto _again;} + {stack[top++] = cs; cs = 1471;goto _again;} case KNOT_RRTYPE_CAA: - {stack[top++] = cs; cs = 1467;goto _again;} + {stack[top++] = cs; cs = 1479;goto _again;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = cs; cs = 1475;goto _again;} + {stack[top++] = cs; cs = 1487;goto _again;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = cs; cs = 1481;goto _again;} + {stack[top++] = cs; cs = 1493;goto _again;} default: WARN(ZS_CANNOT_TEXT_DATA); - {cs = 325;goto _again;} + {cs = 329;goto _again;} } } break; - case 315: + case 317: { switch (s->r_type) { // Next types must not have empty rdata. @@ -9214,192 +9267,196 @@ _match: case KNOT_RRTYPE_DSYNC: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = cs; cs = 750;goto _again;} + case KNOT_RRTYPE_ALIAS: + {stack[top++] = cs; cs = 762;goto _again;} // Next types can have empty rdata. case KNOT_RRTYPE_APL: default: - {stack[top++] = cs; cs = 759;goto _again;} + {stack[top++] = cs; cs = 771;goto _again;} } } break; - case 316: + case 318: { if (pe - p == 1) { *wrap = WRAP_DETECTED; } } break; - case 317: + case 319: { if (*wrap == WRAP_NONE) { p--; } } break; - case 318: + case 320: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } break; - case 319: + case 321: { s->r_type = KNOT_RRTYPE_A; } break; - case 320: + case 322: { s->r_type = KNOT_RRTYPE_NS; } break; - case 321: + case 323: { s->r_type = KNOT_RRTYPE_CNAME; } break; - case 322: + case 324: { s->r_type = KNOT_RRTYPE_SOA; } break; - case 323: + case 325: { s->r_type = KNOT_RRTYPE_PTR; } break; - case 324: + case 326: { s->r_type = KNOT_RRTYPE_HINFO; } break; - case 325: + case 327: { s->r_type = KNOT_RRTYPE_MINFO; } break; - case 326: + case 328: { s->r_type = KNOT_RRTYPE_MX; } break; - case 327: + case 329: { s->r_type = KNOT_RRTYPE_TXT; } break; - case 328: + case 330: { s->r_type = KNOT_RRTYPE_RP; } break; - case 329: + case 331: { s->r_type = KNOT_RRTYPE_AFSDB; } break; - case 330: + case 332: { s->r_type = KNOT_RRTYPE_RT; } break; - case 331: + case 333: { s->r_type = KNOT_RRTYPE_KEY; } break; - case 332: + case 334: { s->r_type = KNOT_RRTYPE_AAAA; } break; - case 333: + case 335: { s->r_type = KNOT_RRTYPE_LOC; } break; - case 334: + case 336: { s->r_type = KNOT_RRTYPE_SRV; } break; - case 335: + case 337: { s->r_type = KNOT_RRTYPE_NAPTR; } break; - case 336: + case 338: { s->r_type = KNOT_RRTYPE_KX; } break; - case 337: + case 339: { s->r_type = KNOT_RRTYPE_CERT; } break; - case 338: + case 340: { s->r_type = KNOT_RRTYPE_DNAME; } break; - case 339: + case 341: { s->r_type = KNOT_RRTYPE_APL; } break; - case 340: + case 342: { s->r_type = KNOT_RRTYPE_DS; } break; - case 341: + case 343: { s->r_type = KNOT_RRTYPE_SSHFP; } break; - case 342: + case 344: { s->r_type = KNOT_RRTYPE_IPSECKEY; } break; - case 343: + case 345: { s->r_type = KNOT_RRTYPE_RRSIG; } break; - case 344: + case 346: { s->r_type = KNOT_RRTYPE_NSEC; } break; - case 345: + case 347: { s->r_type = KNOT_RRTYPE_DNSKEY; } break; - case 346: + case 348: { s->r_type = KNOT_RRTYPE_DHCID; } break; - case 347: + case 349: { s->r_type = KNOT_RRTYPE_NSEC3; } break; - case 348: + case 350: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } break; - case 349: + case 351: { s->r_type = KNOT_RRTYPE_TLSA; } break; - case 350: + case 352: { s->r_type = KNOT_RRTYPE_SMIMEA; } break; - case 351: + case 353: { s->r_type = KNOT_RRTYPE_CDS; } break; - case 352: + case 354: { s->r_type = KNOT_RRTYPE_CDNSKEY; } break; - case 353: + case 355: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } break; - case 354: + case 356: { s->r_type = KNOT_RRTYPE_CSYNC; } break; - case 355: + case 357: { s->r_type = KNOT_RRTYPE_ZONEMD; } break; - case 356: + case 358: { s->r_type = KNOT_RRTYPE_SPF; } break; - case 357: + case 359: { s->r_type = KNOT_RRTYPE_NID; } break; - case 358: + case 360: { s->r_type = KNOT_RRTYPE_L32; } break; - case 359: + case 361: { s->r_type = KNOT_RRTYPE_L64; } break; - case 360: + case 362: { s->r_type = KNOT_RRTYPE_LP; } break; - case 361: + case 363: { s->r_type = KNOT_RRTYPE_EUI48; } break; - case 362: + case 364: { s->r_type = KNOT_RRTYPE_EUI64; } break; - case 363: + case 365: { s->r_type = KNOT_RRTYPE_URI; } break; - case 364: + case 366: { s->r_type = KNOT_RRTYPE_CAA; } break; - case 365: + case 367: { s->r_type = KNOT_RRTYPE_SVCB; } break; - case 366: + case 368: { s->r_type = KNOT_RRTYPE_HTTPS; } break; - case 367: + case 369: { s->r_type = KNOT_RRTYPE_DSYNC; } break; - case 368: + case 370: { s->r_type = KNOT_RRTYPE_RESINFO; } break; - case 369: + case 371: { s->r_type = KNOT_RRTYPE_WALLET; } break; - case 370: + case 372: + { s->r_type = KNOT_RRTYPE_ALIAS; } + break; + case 373: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 325;goto _again;} + p--; {cs = 329;goto _again;} } s->r_data_length = rdata_tail - s->r_data; @@ -9439,7 +9496,7 @@ _again: case 8: { WARN(ZS_BAD_REST); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9447,7 +9504,7 @@ goto _again;} case 19: { WARN(ZS_BAD_NUMBER); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9455,7 +9512,7 @@ goto _again;} case 24: { WARN(ZS_BAD_DNAME_CHAR); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9464,7 +9521,7 @@ goto _again;} { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9472,7 +9529,7 @@ goto _again;} case 38: { WARN(ZS_BAD_NUMBER); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9480,7 +9537,7 @@ goto _again;} case 50: { WARN(ZS_BAD_TIME_UNIT); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9488,7 +9545,7 @@ goto _again;} case 60: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9496,7 +9553,7 @@ goto _again;} case 62: { WARN(ZS_BAD_TEXT_CHAR); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9504,7 +9561,7 @@ goto _again;} case 63: { WARN(ZS_BAD_TEXT); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9512,7 +9569,7 @@ goto _again;} case 67: { WARN(ZS_BAD_NUMBER); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9525,7 +9582,7 @@ goto _again;} case 73: { ERR(ZS_BAD_TTL); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9533,7 +9590,7 @@ goto _again;} case 77: { ERR(ZS_BAD_ORIGIN); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9541,7 +9598,7 @@ goto _again;} case 81: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9549,7 +9606,7 @@ goto _again;} case 84: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9562,7 +9619,7 @@ goto _again;} case 89: { ERR(ZS_BAD_DIRECTIVE); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9570,7 +9627,7 @@ goto _again;} case 96: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9578,7 +9635,7 @@ goto _again;} case 107: { WARN(ZS_BAD_APL); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9586,7 +9643,7 @@ goto _again;} case 110: { WARN(ZS_BAD_HEX_CHAR); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9594,7 +9651,7 @@ goto _again;} case 112: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9602,7 +9659,7 @@ goto _again;} case 117: { WARN(ZS_BAD_BASE64_CHAR); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9610,7 +9667,7 @@ goto _again;} case 127: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9618,7 +9675,7 @@ goto _again;} case 156: { WARN(ZS_BAD_GATEWAY); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9626,7 +9683,7 @@ goto _again;} case 157: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9634,103 +9691,103 @@ goto _again;} case 158: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 265: + case 267: { WARN(ZS_BAD_BITMAP); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 282: + case 284: { WARN(ZS_BAD_LOC_DATA); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 283: + case 285: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 288: + case 290: { WARN(ZS_BAD_CHAR_DASH); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 292: + case 294: { WARN(ZS_BAD_CHAR_COLON); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 295: + case 297: { WARN(ZS_BAD_SVCB_PARAM); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 296: + case 298: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 306: + case 308: { WARN(ZS_BAD_ALGORITHM); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 307: + case 309: { WARN(ZS_BAD_CERT_TYPE); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 308: + case 310: { WARN(ZS_BAD_DSYNC_SCHEME); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 313: + case 315: { WARN(ZS_BAD_RDATA); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 318: + case 320: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 325; if ( p == pe ) + p--; {cs = 329; if ( p == pe ) goto _test_eof; goto _again;} } diff --git a/src/libzscanner/scanner_body.rl b/src/libzscanner/scanner_body.rl index fd50e5dc58..46c1e3cd05 100644 --- a/src/libzscanner/scanner_body.rl +++ b/src/libzscanner/scanner_body.rl @@ -1422,6 +1422,7 @@ | "DSYNC"i %{ type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } | "RESINFO"i %{ type_num(KNOT_RRTYPE_RESINFO, &rdata_tail); } | "WALLET"i %{ type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } + | "ALIAS"i %{ type_num(KNOT_RRTYPE_ALIAS, &rdata_tail); } | "TYPE"i . num16 # TYPE0-TYPE65535. ) $!_type_error %_ret . all_wchar; type_num = alnum ${ fhold; fcall type_num_; }; @@ -1492,6 +1493,7 @@ | "DSYNC"i %{ window_add_bit(KNOT_RRTYPE_DSYNC, s); } | "RESINFO"i %{ window_add_bit(KNOT_RRTYPE_RESINFO, s); } | "WALLET"i %{ window_add_bit(KNOT_RRTYPE_WALLET, s); } + | "ALIAS"i %{ window_add_bit(KNOT_RRTYPE_ALIAS, s); } | "TYPE"i . type_bitmap # TYPE0-TYPE65535. ); @@ -2091,6 +2093,7 @@ case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: fcall r_data_ns; case KNOT_RRTYPE_SOA: fcall r_data_soa; @@ -2227,6 +2230,7 @@ case KNOT_RRTYPE_DSYNC: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: + case KNOT_RRTYPE_ALIAS: fcall nonempty_hex_r_data; // Next types can have empty rdata. case KNOT_RRTYPE_APL: @@ -2314,6 +2318,7 @@ | "DSYNC"i %{ s->r_type = KNOT_RRTYPE_DSYNC; } | "RESINFO"i %{ s->r_type = KNOT_RRTYPE_RESINFO; } | "WALLET"i %{ s->r_type = KNOT_RRTYPE_WALLET; } + | "ALIAS"i %{ s->r_type = KNOT_RRTYPE_ALIAS; } | "TYPE"i . type_number ) $!_r_type_error; # END diff --git a/tests/libzscanner/TESTS b/tests/libzscanner/TESTS index a25a617e49..797fcde19a 100644 --- a/tests/libzscanner/TESTS +++ b/tests/libzscanner/TESTS @@ -87,3 +87,4 @@ 59_WALLET 60_DSYNC 61_RESINFO +62_ALIAS diff --git a/tests/libzscanner/data/62_ALIAS.in b/tests/libzscanner/data/62_ALIAS.in new file mode 100644 index 0000000000..38b017f933 --- /dev/null +++ b/tests/libzscanner/data/62_ALIAS.in @@ -0,0 +1,14 @@ +$ORIGIN . +$TTL 1 + +; The ALIAS is the same as the NS, so there are the differences and basics only. + +; OK +@ ALIAS test.example.com ; Relative dname +@ ALIAS \# 1 00 ; Hexadecimal rdata +@ TYPE65401 \# 1 00 ; TYPE + Hexadecimal rdata +@ TYPE65401 @ ; TYPE +@ alias @ ; Type in lower-case + +; KO +@ ALIAS diff --git a/tests/libzscanner/data/62_ALIAS.out b/tests/libzscanner/data/62_ALIAS.out new file mode 100644 index 0000000000..9b219d3e63 --- /dev/null +++ b/tests/libzscanner/data/62_ALIAS.out @@ -0,0 +1,32 @@ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=FF79 +RDATA=0474657374076578616D706C6503636F6D00 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=FF79 +RDATA=00 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=FF79 +RDATA=00 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=FF79 +RDATA=00 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=FF79 +RDATA=00 +------ +WARNG=ZS_BAD_RDATA +------ diff --git a/tests/libzscanner/test_zscanner.in b/tests/libzscanner/test_zscanner.in index 5e59d19a97..42b7d23fe4 100644 --- a/tests/libzscanner/test_zscanner.in +++ b/tests/libzscanner/test_zscanner.in @@ -14,7 +14,7 @@ TMPDIR=$(test_tmpdir) TESTS_DIR="$SOURCE"/data ZSCANNER_TOOL="$BUILD"/zscanner-tool -plan 89 +plan 90 mkdir -p "$TMPDIR"/includes/ for a in 1 2 3 4 5 6; do From 015c07430f1b16d3f009df4b7d50a169f2a804fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Mon, 19 Jan 2026 14:59:38 +0100 Subject: [PATCH 369/675] redis: add flag to merge rdataset into existing one in binary API --- src/redis/arg.h | 9 ++++ src/redis/internal.h | 107 ++++++++++++++++++++++++++++++------------- src/redis/knot.c | 18 ++++++-- 3 files changed, 97 insertions(+), 37 deletions(-) diff --git a/src/redis/arg.h b/src/redis/arg.h index ced5479c2f..7265c33df6 100644 --- a/src/redis/arg.h +++ b/src/redis/arg.h @@ -166,6 +166,15 @@ typedef struct { out.len = ret; \ } +#define ARG_FLAG(arg, out, flag) { \ + size_t len; \ + const char *ptr = RedisModule_StringPtrLen(arg, &len); \ + if (strcmp(ptr, flag) != 0) { \ + return RedisModule_ReplyWithError(ctx, RDB_E("invalid flag")); \ + } \ + out = true; \ +} + #define ARG_DNAME_TXT(arg, out, origin, name) { \ size_t len; \ out.txt = RedisModule_StringPtrLen(arg, &len); \ diff --git a/src/redis/internal.h b/src/redis/internal.h index 166b5f0b1e..378ef70ae5 100644 --- a/src/redis/internal.h +++ b/src/redis/internal.h @@ -798,6 +798,27 @@ static int upd_add_bin_cb(diff_v *diff, const void *data, uint32_t ttl) return ret; } +static int upd_merge_bin_cb(diff_v *diff, const void *data, uint32_t ttl) +{ + const knot_rdataset_t *rdataset = data; + + int ret = KNOT_EOK; + + knot_rdata_t *rr = rdataset->rdata; + for (uint16_t i = 0; i < rdataset->count && ret == KNOT_EOK; i++) { + if (knot_rdataset_member(&diff->rem_rrs, rr)) { + ret = knot_rdataset_remove(&diff->rem_rrs, rr, &mm); + } else { + ret = knot_rdataset_add(&diff->add_rrs, rr, &mm); + diff->add_ttl = ttl; + } + + rr = knot_rdataset_next(rr); + } + + return ret; +} + static int upd_remove_bin_cb(diff_v *diff, const void *data, uint32_t ttl) { const knot_rdataset_t *rdataset = data; @@ -892,9 +913,10 @@ static int upd_remove_txt_format(RedisModuleCtx *ctx, const arg_dname_t *origin, static void upd_add_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin, const rdb_txn_t *txn, const arg_dname_t *owner, const uint32_t ttl, const uint16_t rtype, - const knot_rdataset_t *data) + const knot_rdataset_t *data, bool merge) { - exception_t e = upd_add_rem(ctx, origin, txn, owner, ttl, rtype, (void *)data, upd_add_bin_cb); + exception_t e = upd_add_rem(ctx, origin, txn, owner, ttl, rtype, (void *)data, + merge ? upd_merge_bin_cb : upd_add_bin_cb); if (e.ret != KNOT_EOK) { RedisModule_ReplyWithError(ctx, e.what); } else { @@ -981,7 +1003,8 @@ static void scanner_error(zs_scanner_t *s) static void zone_store_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin, const rdb_txn_t *txn, const arg_dname_t *owner, uint16_t rtype, uint32_t ttl, uint16_t rcount, - const uint8_t *zone_data, const size_t zone_data_len) + const uint8_t *zone_data, const size_t zone_data_len, + bool merge) { if (zone_txn_is_open(ctx, origin, txn) == false) { RedisModule_ReplyWithError(ctx, RDB_ETXN); @@ -990,45 +1013,63 @@ static void zone_store_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin RedisModuleString *rrset_keyname = rrset_keyname_construct(ctx, origin, txn, owner, rtype); rrset_k rrset_key = RedisModule_OpenKey(ctx, rrset_keyname, REDISMODULE_READ | REDISMODULE_WRITE); - if (RedisModule_KeyType(rrset_key) != REDISMODULE_KEYTYPE_EMPTY) { - RedisModule_FreeString(ctx, rrset_keyname); - RedisModule_CloseKey(rrset_key); - RedisModule_ReplyWithError(ctx, RDB_EEXIST); - return; - } + if (RedisModule_KeyType(rrset_key) == REDISMODULE_KEYTYPE_EMPTY) { + rrset_v *rrset = RedisModule_Calloc(1, sizeof(*rrset)); + if (rrset == NULL) { + RedisModule_FreeString(ctx, rrset_keyname); + RedisModule_CloseKey(rrset_key); + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return; + } - rrset_v *rrset = RedisModule_Calloc(1, sizeof(*rrset)); - if (rrset == NULL) { + rrset->ttl = ttl; + rrset->rrs.count = rcount; + if (zone_data_len != 0) { + rrset->rrs.rdata = RedisModule_Alloc(zone_data_len); + if (rrset->rrs.rdata == NULL) { + RedisModule_Free(rrset); + RedisModule_FreeString(ctx, rrset_keyname); + RedisModule_CloseKey(rrset_key); + RedisModule_ReplyWithError(ctx, RDB_EALLOC); + return; + } + rrset->rrs.size = zone_data_len; + memcpy(rrset->rrs.rdata, zone_data, zone_data_len); + } else { + rrset->rrs.rdata = NULL; + rrset->rrs.size = 0; + } + + int ret = rrset_key_set(ctx, rrset_key, rrset_keyname, origin, txn, rtype, rrset); RedisModule_FreeString(ctx, rrset_keyname); RedisModule_CloseKey(rrset_key); - RedisModule_ReplyWithError(ctx, RDB_EALLOC); - return; - } - - rrset->ttl = ttl; - rrset->rrs.count = rcount; - if (zone_data_len != 0) { - rrset->rrs.rdata = RedisModule_Alloc(zone_data_len); - if (rrset->rrs.rdata == NULL) { + if (ret != KNOT_EOK) { RedisModule_Free(rrset); + RedisModule_ReplyWithError(ctx, RDB_ESTORE); + return; + } + } else if (merge) { + rrset_v *rrset = RedisModule_ModuleTypeGetValue(rrset_key); + RedisModule_Assert(rrset != NULL); + + knot_rdataset_t new_rdataset = { + .count = rcount, + .size = zone_data_len, + .rdata = (knot_rdata_t *)zone_data + }; + if (knot_rdataset_merge(&rrset->rrs, &new_rdataset, &mm) != KNOT_EOK) { RedisModule_FreeString(ctx, rrset_keyname); RedisModule_CloseKey(rrset_key); RedisModule_ReplyWithError(ctx, RDB_EALLOC); - return; } - rrset->rrs.size = zone_data_len; - memcpy(rrset->rrs.rdata, zone_data, zone_data_len); - } else { - rrset->rrs.rdata = NULL; - rrset->rrs.size = 0; - } + rrset->ttl = ttl; - int ret = rrset_key_set(ctx, rrset_key, rrset_keyname, origin, txn, rtype, rrset); - RedisModule_FreeString(ctx, rrset_keyname); - RedisModule_CloseKey(rrset_key); - if (ret != KNOT_EOK) { - RedisModule_Free(rrset); - RedisModule_ReplyWithError(ctx, RDB_ESTORE); + RedisModule_FreeString(ctx, rrset_keyname); + RedisModule_CloseKey(rrset_key); + } else { + RedisModule_FreeString(ctx, rrset_keyname); + RedisModule_CloseKey(rrset_key); + RedisModule_ReplyWithError(ctx, RDB_EEXIST); return; } diff --git a/src/redis/knot.c b/src/redis/knot.c index 534f12937a..7b623d1fd3 100644 --- a/src/redis/knot.c +++ b/src/redis/knot.c @@ -257,7 +257,7 @@ static int zone_store_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int arg static int zone_store_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { - if (argc != 8) { + if (argc < 8 || argc > 9) { return RedisModule_WrongArity(ctx); } @@ -283,7 +283,12 @@ static int zone_store_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int arg size_t rdataset_len; ARG_DATA(argv[7], rdataset_len, rdataset, "rdataset"); - zone_store_bin_format(ctx, &origin, &txn, &owner, rtype, ttl, rcount, rdataset, rdataset_len); + bool merge = false; + if (argc > 8) { + ARG_FLAG(argv[8], merge, "M"); + } + + zone_store_bin_format(ctx, &origin, &txn, &owner, rtype, ttl, rcount, rdataset, rdataset_len, merge); return REDISMODULE_OK; } @@ -543,7 +548,7 @@ static int upd_add_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) static int upd_add_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { - if (argc != 8) { + if (argc < 8 || argc > 9) { return RedisModule_WrongArity(ctx); } @@ -569,13 +574,18 @@ static int upd_add_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) size_t rdata_len; ARG_DATA(argv[7], rdata_len, rdata, "rdata"); + bool merge = false; + if (argc > 8) { + ARG_FLAG(argv[8], merge, "M"); + } + knot_rdataset_t rdataset = { .count = rcount, .size = rdata_len, .rdata = (knot_rdata_t *)rdata }; - upd_add_bin_format(ctx, &origin, &txn, &owner, ttl, rtype, &rdataset); + upd_add_bin_format(ctx, &origin, &txn, &owner, ttl, rtype, &rdataset, merge); return REDISMODULE_OK; } From e0d21bbd79a38146f4fabd0e0c0eac2af94c991f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Thu, 22 Jan 2026 13:36:24 +0100 Subject: [PATCH 370/675] redis: fix listing of empty database --- src/redis/internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/redis/internal.h b/src/redis/internal.h index 378ef70ae5..f868851158 100644 --- a/src/redis/internal.h +++ b/src/redis/internal.h @@ -1402,7 +1402,7 @@ static void zone_list(RedisModuleCtx *ctx, bool instances, bool txt) RedisModuleKey *zones_index = get_zones_index(ctx, REDISMODULE_READ); if (zones_index == NULL) { - RedisModule_ReplyWithError(ctx, RDB_EALLOC); + RedisModule_ReplyWithEmptyArray(ctx); return; } RedisModuleScanCursor *cursor = RedisModule_ScanCursorCreate(); From 3373cbdf4cd97829f858b54b043ca82ad862d845 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 24 Jan 2026 13:34:43 +0100 Subject: [PATCH 371/675] redis: remove empty diff formed by add/rem canceling --- src/redis/internal.h | 10 +++++++++- tests-redis/test.py | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/redis/internal.h b/src/redis/internal.h index f868851158..0bb8401114 100644 --- a/src/redis/internal.h +++ b/src/redis/internal.h @@ -874,14 +874,22 @@ static exception_t upd_add_rem(RedisModuleCtx *ctx, const arg_dname_t *origin, } else { RedisModule_Assert(RedisModule_ModuleTypeGetType(diff_key) == rdb_diff_t); } - RedisModule_FreeString(ctx, diff_keystr); ret = cb(diff, data, ttl); if (ret == KNOT_EEXIST) { + RedisModule_FreeString(ctx, diff_keystr); RedisModule_CloseKey(diff_key); throw(KNOT_EEXIST, RDB_EEXIST); } + if (diff->add_rrs.count == 0 && diff->rem_rrs.count == 0) { + index_k diff_index_key = get_upd_index(ctx, origin, txn, id, REDISMODULE_READ | REDISMODULE_WRITE); + RedisModule_ZsetRem(diff_index_key, diff_keystr, NULL); + RedisModule_CloseKey(diff_index_key); + RedisModule_DeleteKey(diff_key); + } + + RedisModule_FreeString(ctx, diff_keystr); RedisModule_CloseKey(diff_key); return_ok; } diff --git a/tests-redis/test.py b/tests-redis/test.py index 758b6f0ce2..1f67a37c05 100644 --- a/tests-redis/test.py +++ b/tests-redis/test.py @@ -450,6 +450,20 @@ def test_upd_commit(): resp = env.cmd('KNOT.UPD.LOAD', 'example.com', 1, 1) env.assertEqual(len(resp), 1, message="Failed to commit update") + # add/remove canceling + txn1 = env.cmd('KNOT.ZONE.BEGIN', 'example.com', 1) + env.cmd('KNOT.ZONE.STORE', 'example.com', txn1, "@ IN SOA ns.icann.org. noc.dns.icann.org. ( 1 7200 3600 1209600 3600 )") + env.cmd('KNOT.ZONE.COMMIT', 'example.com', txn1) + + txn = env.cmd('KNOT.UPD.BEGIN', 'example.com', 1) + env.cmd('KNOT.UPD.ADD', 'example.com', txn, "cancel TXT test") + env.cmd('KNOT.UPD.REMOVE', 'example.com', txn, "cancel TXT test") + env.cmd('KNOT.UPD.ADD', 'example.com', txn, "cancel2 TXT test2") + env.cmd('KNOT.UPD.REMOVE', 'example.com', txn, "cancel2 TXT test2") + env.cmd('KNOT.UPD.COMMIT', 'example.com', txn) + resp = env.cmd('KNOT.UPD.LOAD', 'example.com', 1, 1) + env.assertEqual(len(resp[0]), 1, message="Failed to commit update") + def test_upd_abort(): env = Env(moduleArgs=['max-event-age', '60', 'default-ttl', '3600']) From e72a763398298caa12ff973fdd42539466f7abb1 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 6 Mar 2026 11:33:13 +0100 Subject: [PATCH 372/675] redis: fix dumping of empty update --- src/redis/internal.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/redis/internal.h b/src/redis/internal.h index 0bb8401114..5fd4fbf48e 100644 --- a/src/redis/internal.h +++ b/src/redis/internal.h @@ -2295,7 +2295,9 @@ static void upd_commit(RedisModuleCtx *ctx, const arg_dname_t *origin, rdb_txn_t static int upd_dump(RedisModuleCtx *ctx, index_k index_key, const arg_dname_t *origin, const arg_dname_t *opt_owner, const uint16_t *opt_rtype, dump_mode_t mode) { - RedisModule_Assert(RedisModule_KeyType(index_key) == REDISMODULE_KEYTYPE_ZSET); + int zone_keytype = RedisModule_KeyType(index_key); + RedisModule_Assert(zone_keytype == REDISMODULE_KEYTYPE_EMPTY || + zone_keytype == REDISMODULE_KEYTYPE_ZSET); char buf[128 * 1024]; From 64f888c4015d6adc4e615337f014eada05e97016 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Thu, 8 Jan 2026 14:33:07 +0100 Subject: [PATCH 373/675] scripts: add script to resolve ALIASes in Redis backed zone --- scripts/redis_unalias.py | 380 ++++++++++++++++++ tests-extra/requirements.txt | 1 + tests-extra/tests/redis/alias/data/zone1.zone | 10 + .../tests/redis/alias/data/zone1.zone.1 | 10 + .../tests/redis/alias/data/zone1.zone.10 | 12 + .../tests/redis/alias/data/zone1.zone.11 | 12 + tests-extra/tests/redis/alias/data/zone2.zone | 8 + .../tests/redis/alias/data/zone2.zone.1 | 7 + .../tests/redis/alias/data/zone2.zone.10 | 10 + .../tests/redis/alias/data/zone2.zone.11 | 8 + tests-extra/tests/redis/alias/test.py | 57 +++ tests-extra/tools/dnstest/params.py | 2 + tests-extra/tools/dnstest/redis.py | 13 + 13 files changed, 530 insertions(+) create mode 100755 scripts/redis_unalias.py create mode 100644 tests-extra/tests/redis/alias/data/zone1.zone create mode 100644 tests-extra/tests/redis/alias/data/zone1.zone.1 create mode 100644 tests-extra/tests/redis/alias/data/zone1.zone.10 create mode 100644 tests-extra/tests/redis/alias/data/zone1.zone.11 create mode 100644 tests-extra/tests/redis/alias/data/zone2.zone create mode 100644 tests-extra/tests/redis/alias/data/zone2.zone.1 create mode 100644 tests-extra/tests/redis/alias/data/zone2.zone.10 create mode 100644 tests-extra/tests/redis/alias/data/zone2.zone.11 create mode 100644 tests-extra/tests/redis/alias/test.py diff --git a/scripts/redis_unalias.py b/scripts/redis_unalias.py new file mode 100755 index 0000000000..e85ea166ce --- /dev/null +++ b/scripts/redis_unalias.py @@ -0,0 +1,380 @@ +#!/usr/bin/env python3 +# Copyright (C) CZ.NIC, z.s.p.o. and contributors +# SPDX-License-Identifier: GPL-2.0-or-later +# For more information, see + +"""Script for resolving ALIAS records in zones stored in Redis using local resolver.""" + +# requirements redis[hiredis] +from argparse import ArgumentError, ArgumentParser +from contextlib import contextmanager +from enum import IntEnum +from re import sub +from redis import Redis +from redis.exceptions import ConnectionError, ResponseError, TimeoutError +from socket import AF_INET, AF_INET6, SOCK_DGRAM, gaierror, getaddrinfo, inet_pton +from sys import exit, stderr + +class RRType(IntEnum): + A = 1 + SOA = 6 + AAAA = 28 + ALIAS = 65401 + +class Stats: + new = 0 + updated = 0 + resolved = 0 + ipv4 = 0 + ipv6 = 0 + not_found = 0 + + def __str__(self): + return \ + f'Zones: {self.new + self.updated}\t(new: {self.new}, updated: {self.updated})\n' + \ + f'Aliases: {self.resolved + self.not_found}\t(resolved: {self.resolved}, unknown: {self.not_found})\n' + \ + f'Records: {self.ipv4 + self.ipv6}\t(A: {self.resolved}, AAAA: {self.ipv6})' + +def arg_parser(): + parser = ArgumentParser( + exit_on_error=False, + prog="redis-unalias.py", + description="Resolves ALIAS records in all zones of the input instance " + "into the output instance" + ) + + # required positional arguments + parser.add_argument( + "input_instance", + type=int, + help="zone instance that converts ALIAS from", + ) + parser.add_argument( + "output_instance", + type=int, + help="zone instance that converts ALIAS to", + ) + + # redis connection + redis_group = parser.add_argument_group("connection") + redis_group.add_argument( + "-a", "--addr", + default="localhost", + help="redis-server address", + ) + redis_group.add_argument( + "-p", "--port", + type=int, + default=6379, + help="redis-server port", + ) + + # TLS settings + tls_group = parser.add_argument_group("TLS") + tls_group.add_argument( + "-t", "--tls", + action="store_true", + help="use transport layer security (TLS)", + ) + tls_group.add_argument( + "-C", "--tls-cert", + dest="tls_cert", + help="path to a client certificate", + ) + tls_group.add_argument( + "-K", "--tls-key", + dest="tls_key", + help="path to a client key", + ) + tls_group.add_argument( + "-A", "--tls-ca", + dest="tls_ca", + help="path to a trusted CA certificates used to verify the server", + ) + tls_group.add_argument( + "-i", "--tls-insecure", + action="store_const", + const="none", + default="required", + help="disable client TLS validation", + ) + + # behavior + behavior_group = parser.add_argument_group("execution") + behavior_group.add_argument( + "-d", "--dry-run", + action="store_true", + help="print the transaction instead of commiting", + ) + behavior_group.add_argument( + "-s", "--print-stats", + action="store_true", + help="print statistics at the end", + ) + + return parser + +def bytes_to_int(bytes): + return int.from_bytes(bytes, signed=False) + +def int_to_bytes(val): + return bytes([val]) + +def txn_to_str(txn): + return txn[0] * 10 + txn[1] + +def dname_to_str(wire): + res = "" + + dname_len = len(wire) + if dname_len == 0: + return res + + label_len = 0 + for i in range(0, dname_len): + if label_len == 0: + label_len = wire[i] + if len(res) > 0 or dname_len == 1: + res += '.' + continue + + c = chr(wire[i]) + if c.isalnum() or c == '-': + res += c + else: + res += f"\\{wire[i]:03}" + + label_len -= 1 + + return res + +def af_to_rtype(af): + if af == AF_INET: + return RRType.A.value + elif af == AF_INET6: + return RRType.AAAA.value + else: + raise Exception('Unsupported type') + +def rdata_to_dname_list(dname): + processing = 0 + out = [] + while processing < len(dname): + size = int.from_bytes(dname[processing : processing + 2], "little", signed=False) + if size == 0: + break + wire = dname[processing + 2 : processing + size + 2] + out.append(dname_to_str(wire)) + processing += size + 2 + return out + +def get_serial(rdata): + wire_serial = rdata[len(rdata) - 21 : len(rdata) - 17] + return int.from_bytes(wire_serial, byteorder='big', signed=False) + +def set_serial(rdata, serial): + b = bytearray(rdata) + b[len(b) - 21 : len(b) - 17] = serial.to_bytes(4, 'big') + return bytes(b) + +@contextmanager +def knot_zone_transaction(conn, zone, inst, dryrun): + txn = None + try: + instance = int_to_bytes(inst) + txn = conn.execute_command('KNOT_BIN.ZONE.BEGIN', zone, instance) + yield txn + except: + if txn: + conn.execute_command('KNOT_BIN.ZONE.ABORT', zone, txn) + raise + else: + if dryrun: + zone_str = dname_to_str(zone) + resp = conn.execute_command('KNOT.ZONE.LOAD', zone_str, txn_to_str(txn)) + conn.execute_command('KNOT_BIN.ZONE.ABORT', zone, txn) + print(f'=== FULL {zone_str} ===') + for record in resp: + print(*[x.decode() for x in record], sep=' ') + else: + conn.execute_command('KNOT_BIN.ZONE.COMMIT', zone, txn) + +@contextmanager +def knot_upd_transaction(conn, zone, inst, dryrun): + txn = None + try: + instance = int_to_bytes(inst) + txn = conn.execute_command('KNOT_BIN.UPD.BEGIN', zone, instance) + yield txn + except: + if txn: + conn.execute_command('KNOT_BIN.UPD.ABORT', zone, txn) + raise + else: + if dryrun: + zone_str = dname_to_str(zone) + resp = conn.execute_command('KNOT.UPD.DIFF', zone_str, txn_to_str(txn)) + conn.execute_command('KNOT_BIN.UPD.ABORT', zone, txn) + print(f'=== UPDATE {zone_str} ===') + for diff in resp: + for rem in diff[0]: + print('- ', end='') + print(*[x.decode() for x in rem], sep=' ') + for add in diff[1]: + print('+ ', end='') + print(*[x.decode() for x in add], sep=' ') + else: + if conn.execute_command('KNOT_BIN.UPD.DIFF', zone, txn): + conn.execute_command('KNOT_BIN.UPD.COMMIT', zone, txn) + else: + conn.execute_command('KNOT_BIN.UPD.ABORT', zone, txn) + +def store_zone_record(conn, zone, txn, record): + resp = conn.execute_command('KNOT_BIN.ZONE.STORE', zone, txn, + record[0], record[1], record[2], record[3], record[4], "M") + if resp != b'OK': + raise Exception("Failed to store record") + +def resolve_zone_record(conn, zone, txn, record): + global stats + for dname in rdata_to_dname_list(record[4]): + try: + resp = getaddrinfo(dname, None, type=SOCK_DGRAM) + for r in resp: + new_record = record[0:1] + if r[0] == AF_INET or r[0] == AF_INET6: + bin = inet_pton(r[0], r[4][0]) + size = len(bin).to_bytes(2, byteorder='little', signed=False) + new_record.extend([af_to_rtype(r[0]), record[2], 1, size + bin]) + else: + continue + + store_zone_record(conn, zone, txn, new_record) + if r[0] == AF_INET: + stats.ipv4 += 1 + else: + stats.ipv6 += 1 + stats.resolved += 1 + except (gaierror, UnicodeEncodeError): # Not found - skip + stats.not_found += 1 + +def store_upd_record(conn, zone, txn, record): + resp = conn.execute_command('KNOT_BIN.UPD.ADD', zone, txn, + record[0], record[1], record[2], record[3], record[4], "M") + if resp != b'OK': + raise Exception("Failed to insert record") + +def remove_upd_record(conn, zone, txn, record): + resp = conn.execute_command('KNOT_BIN.UPD.REM', zone, txn, + record[0], record[1], record[2], record[3], record[4]) + if resp != b'OK': + raise Exception("Failed to delete record") + +def resolve_upd_record(conn, zone, txn, record): + global stats + for dname in rdata_to_dname_list(record[4]): + try: + resp = getaddrinfo(dname, None, type=SOCK_DGRAM) + for r in resp: + new_record = record[0:1] + if r[0] == AF_INET or r[0] == AF_INET6: + bin = inet_pton(r[0], r[4][0]) + size = len(bin).to_bytes(2, byteorder='little', signed=False) + new_record.extend([af_to_rtype(r[0]), record[2], 1, size + bin]) + else: + continue + store_upd_record(conn, zone, txn, new_record) + if r[0] == AF_INET: + stats.ipv4 += 1 + else: + stats.ipv6 += 1 + stats.resolved += 1 + except (gaierror, UnicodeEncodeError): # Not found - skip + stats.not_found += 1 + +def convert_zone_new(conn, zone, input, output, dryrun): + input_resp = conn.execute_command('KNOT_BIN.ZONE.LOAD', zone, int_to_bytes(input)) + with knot_zone_transaction(conn, zone, output, dryrun) as txn: + for r in input_resp: + if r[1] == RRType.ALIAS: + resolve_zone_record(conn, zone, txn, r) + else: + store_zone_record(conn, zone, txn, r) + +def convert_zone_existing(conn, zone, input, output, dryrun): + input_resp = conn.execute_command('KNOT_BIN.ZONE.LOAD', zone, int_to_bytes(input)) + old_resp = conn.execute_command('KNOT_BIN.ZONE.LOAD', zone, int_to_bytes(output)) + with knot_upd_transaction(conn, zone, output, dryrun) as txn: + for r in old_resp: + if r[1] == RRType.SOA: + current_soa = r + continue + remove_upd_record(conn, zone, txn, r) + for r in input_resp: + if r[1] == RRType.ALIAS: + resolve_upd_record(conn, zone, txn, r) + else: + if r[1] == RRType.SOA: + input_soa = r + continue + store_upd_record(conn, zone, txn, r) + + if conn.execute_command('KNOT_BIN.UPD.DIFF', zone, txn): + remove_upd_record(conn, zone, txn, current_soa) + new_serial = (get_serial(current_soa[4]) + 1) % (2**32) + input_soa[4] = set_serial(input_soa[4], new_serial) + store_upd_record(conn, zone, txn, input_soa) + +def convert_zone(conn, zone, input, output, dryrun): + global stats + if not zone[1]: + convert_zone_new(conn, zone[0], input, output, dryrun) + stats.new += 1 + else: + convert_zone_existing(conn, zone[0], input, output, dryrun) + stats.updated += 1 + +def list_zones(conn, input, output): + input_mask = 1 << (input - 1) + output_mask = 1 << (output - 1) + + resp = conn.execute_command('KNOT_BIN.ZONE.LIST') + filtered = filter(lambda x: (bytes_to_int(x[1]) & input_mask) != 0, resp) + return map(lambda x: (x[0], (bytes_to_int(x[1]) & output_mask) != 0), filtered) + +def main(): + global stats + stats = Stats() + args = arg_parser() + try: + conf = args.parse_args() + conn = Redis( + host=conf.addr, + port=conf.port, + ssl=conf.tls, + ssl_certfile=conf.tls_cert, + ssl_keyfile=conf.tls_key, + ssl_ca_certs=conf.tls_ca, + ssl_cert_reqs=conf.tls_insecure, + socket_timeout=5 + ) + for zone in list_zones(conn, conf.input_instance, conf.output_instance): + convert_zone(conn, zone, conf.input_instance, conf.output_instance, conf.dry_run) + except ConnectionError as e: + err = sub(r'^Error\s+-?\d+\s+', 'Error: ', e.args[0]) + print(err, file=stderr) + exit(1) + except (ResponseError, TimeoutError) as e: + print("Error: " + e.args[0], file=stderr) + exit(1) + except ArgumentError as e: + print("Error: " + e.message, file=stderr) + args.print_help() + exit(1) + + if conf.print_stats: + print("Statistics\n----------") + print(stats) + +if __name__ == "__main__": + main() diff --git a/tests-extra/requirements.txt b/tests-extra/requirements.txt index e2995420a5..631d90a105 100644 --- a/tests-extra/requirements.txt +++ b/tests-extra/requirements.txt @@ -3,3 +3,4 @@ jsonschema psutil pyyaml setuptools +redis[hiredis] \ No newline at end of file diff --git a/tests-extra/tests/redis/alias/data/zone1.zone b/tests-extra/tests/redis/alias/data/zone1.zone new file mode 100644 index 0000000000..d2209acf18 --- /dev/null +++ b/tests-extra/tests/redis/alias/data/zone1.zone @@ -0,0 +1,10 @@ +$ORIGIN zone1. + +@ SOA ns admin 1 25 25 80 600 + NS ns +ns AAAA ::0 + +@ ALIAS a.root-servers.net. +alias ALIAS b.root-servers.net. +alias A 198.41.0.4 +alias A 192.168.0.1 diff --git a/tests-extra/tests/redis/alias/data/zone1.zone.1 b/tests-extra/tests/redis/alias/data/zone1.zone.1 new file mode 100644 index 0000000000..6d29e2a202 --- /dev/null +++ b/tests-extra/tests/redis/alias/data/zone1.zone.1 @@ -0,0 +1,10 @@ +$ORIGIN zone1. + +@ SOA ns admin 2 25 25 80 600 + NS ns +ns AAAA ::0 + +@ ALIAS a.root-servers.net. +alias ALIAS c.root-servers.net. +alias A 198.41.0.4 +alias A 192.168.0.1 diff --git a/tests-extra/tests/redis/alias/data/zone1.zone.10 b/tests-extra/tests/redis/alias/data/zone1.zone.10 new file mode 100644 index 0000000000..bd53f9aaad --- /dev/null +++ b/tests-extra/tests/redis/alias/data/zone1.zone.10 @@ -0,0 +1,12 @@ +$ORIGIN zone1. + +@ SOA ns admin 1 25 25 80 600 + NS ns +ns AAAA ::0 + +@ A 198.41.0.4 +@ AAAA 2001:503:ba3e::2:30 +alias A 198.41.0.4 +alias A 192.168.0.1 +alias A 170.247.170.2 +alias AAAA 2801:1b8:10::b diff --git a/tests-extra/tests/redis/alias/data/zone1.zone.11 b/tests-extra/tests/redis/alias/data/zone1.zone.11 new file mode 100644 index 0000000000..c52768144a --- /dev/null +++ b/tests-extra/tests/redis/alias/data/zone1.zone.11 @@ -0,0 +1,12 @@ +$ORIGIN zone1. + +@ SOA ns admin 2 25 25 80 600 + NS ns +ns AAAA ::0 + +@ A 198.41.0.4 +@ AAAA 2001:503:ba3e::2:30 +alias A 198.41.0.4 +alias A 192.168.0.1 +alias A 192.33.4.12 +alias AAAA 2001:500:2::c diff --git a/tests-extra/tests/redis/alias/data/zone2.zone b/tests-extra/tests/redis/alias/data/zone2.zone new file mode 100644 index 0000000000..f73c10a5ea --- /dev/null +++ b/tests-extra/tests/redis/alias/data/zone2.zone @@ -0,0 +1,8 @@ +$ORIGIN zone2. + +@ SOA ns admin 1 25 25 80 600 + NS ns +ns AAAA ::0 + +@ ALIAS c.root-servers.net. +alias ALIAS d.root-servers.net. diff --git a/tests-extra/tests/redis/alias/data/zone2.zone.1 b/tests-extra/tests/redis/alias/data/zone2.zone.1 new file mode 100644 index 0000000000..7491143322 --- /dev/null +++ b/tests-extra/tests/redis/alias/data/zone2.zone.1 @@ -0,0 +1,7 @@ +$ORIGIN zone2. + +@ SOA ns admin 2 25 25 80 600 + NS ns +ns AAAA ::0 + +@ ALIAS c.root-servers.net. diff --git a/tests-extra/tests/redis/alias/data/zone2.zone.10 b/tests-extra/tests/redis/alias/data/zone2.zone.10 new file mode 100644 index 0000000000..edfa715acc --- /dev/null +++ b/tests-extra/tests/redis/alias/data/zone2.zone.10 @@ -0,0 +1,10 @@ +$ORIGIN zone2. + +@ SOA ns admin 1 25 25 80 600 + NS ns +ns AAAA ::0 + +@ A 192.33.4.12 +@ AAAA 2001:500:2::c +alias A 199.7.91.13 +alias AAAA 2001:500:2d::d diff --git a/tests-extra/tests/redis/alias/data/zone2.zone.11 b/tests-extra/tests/redis/alias/data/zone2.zone.11 new file mode 100644 index 0000000000..a64eabd886 --- /dev/null +++ b/tests-extra/tests/redis/alias/data/zone2.zone.11 @@ -0,0 +1,8 @@ +$ORIGIN zone2. + +@ SOA ns admin 2 25 25 80 600 + NS ns +ns AAAA ::0 + +@ A 192.33.4.12 +@ AAAA 2001:500:2::c diff --git a/tests-extra/tests/redis/alias/test.py b/tests-extra/tests/redis/alias/test.py new file mode 100644 index 0000000000..78766da204 --- /dev/null +++ b/tests-extra/tests/redis/alias/test.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 + +'''Test for ALIAS resolving script.''' + +import random +from dnstest.test import Test +from dnstest.utils import * + +t = Test() + +master = t.server("knot") +slave = t.server("knot") +ref = t.server("knot") + +zones = t.zone("zone1", storage=".") + t.zone("zone2", storage=".") + +t.link(zones, master) +t.link(zones, slave) +t.link(zones, ref) + +redis = t.backend("redis", tls=random.choice([True, False])) + +master.db_out(zones, [redis], 1) +slave.db_in(zones, [redis], 2) + +ref.update_zonefile(zones[0], 10) +ref.update_zonefile(zones[1], 10) + +if random.choice([True, False]): + master.conf_zone(zones).journal_content = "all" + master.conf_zone(zones).zonefile_load = "difference-no-serial" + +slave.conf_zone(zones).zonefile_sync = "0" + +t.start() + +master.zones_wait(zones) +redis.unalias(1, 2, dry_run=True) +redis.unalias(1, 2) +redis.unalias(1, 2) # Should be NOOP. +serials = slave.zones_wait(zones) +t.xfr_diff(ref, slave, zones) + +master.update_zonefile(zones[0], 1) +master.update_zonefile(zones[1], 1) +master.reload() +ref.update_zonefile(zones[0], 11) +ref.update_zonefile(zones[1], 11) +ref.reload() +redis.unalias(1, 2, dry_run=True) +redis.unalias(1, 2) +redis.unalias(1, 2) # Should be NOOP. +slave.zones_wait(zones, serials) +serials = slave.zones_wait(zones, serials) +t.xfr_diff(ref, slave, zones) + +t.end() diff --git a/tests-extra/tools/dnstest/params.py b/tests-extra/tools/dnstest/params.py index 39cb38ffe7..777fda69e3 100644 --- a/tests-extra/tools/dnstest/params.py +++ b/tests-extra/tools/dnstest/params.py @@ -82,6 +82,8 @@ def get_param(env_name, default): bind_ctl = get_binary("KNOT_TEST_BINDC", "rndc") # KNOT_TEST_BIND_CHECKCONF - Bind checkconf binary. bind_checkconf_bin = get_binary("KNOT_TEST_BIND_CHECKCONF", "named-checkconf") +# KNOT_TEST_UNALIAS - Script for ALIAS resolving. +unalias_bin = get_binary("KNOT_TEST_UNALIAS", repo_binary("scripts/redis_unalias.py")) # KNOT_TEST_OUTS_DIR - working directories location. outs_dir = get_param("KNOT_TEST_OUTS_DIR", "/tmp") diff --git a/tests-extra/tools/dnstest/redis.py b/tests-extra/tools/dnstest/redis.py index d535c43983..941d94ed50 100644 --- a/tests-extra/tools/dnstest/redis.py +++ b/tests-extra/tools/dnstest/redis.py @@ -1,9 +1,12 @@ +#!/usr/bin/env python3 + from dnstest.utils import * import dnstest.params as params import datetime import os import shutil import subprocess +import sys import time class Redis(object): @@ -141,3 +144,13 @@ def cli(self, *params): outf.write(txt) outf.write("\n--------\n") return txt + + def unalias(self, inst_in, inst_out, dry_run=False): + cmd = [ sys.executable, params.unalias_bin, str(inst_in), str(inst_out), "-a", + self.addr, "-p", str(self.tls_port if self.tls else self.port), "-s" ] + if self.tls: + cmd += [ "-t", "-i" ] + if dry_run: + cmd += [ "-d" ] + outf = open(os.path.join(self.wrk_dir, "unalias.log"), "a") + subprocess.run(cmd, stdout=outf, stderr=outf) From 7bedbb8625b5b90079f928786cde8c7acac348ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Wed, 7 Jan 2026 12:28:39 +0100 Subject: [PATCH 374/675] contrib/time: add fallbacks for CLOCK_MONOTONIC_COARSE and CLOCK_REALTIME_COARSE --- src/contrib/time.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/contrib/time.h b/src/contrib/time.h index 07cdd2465d..ddb754b11f 100644 --- a/src/contrib/time.h +++ b/src/contrib/time.h @@ -15,6 +15,14 @@ #define st_mtim st_mtimespec #endif +#ifndef CLOCK_MONOTONIC_COARSE + #define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC +#endif + +#ifndef CLOCK_REALTIME_COARSE + #define CLOCK_REALTIME_COARSE CLOCK_REALTIME +#endif + typedef unsigned long long knot_millis_t; /*! From eb7b646f9d011a56b730a3dca81fe01c9a90a056 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 6 Mar 2026 15:15:14 +0100 Subject: [PATCH 375/675] rrl: remove redundant CLOCK_MONOTONIC_COARSE check/definition --- src/knot/modules/rrl/functions.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/knot/modules/rrl/functions.c b/src/knot/modules/rrl/functions.c index 977b86c2ca..5539040a5e 100644 --- a/src/knot/modules/rrl/functions.c +++ b/src/knot/modules/rrl/functions.c @@ -4,7 +4,6 @@ */ #include -#include #include "knot/modules/rrl/functions.h" #include "knot/modules/rrl/kru.h" @@ -25,10 +24,6 @@ #define RRL_V6_PREFIXES_CNT (sizeof(RRL_V6_PREFIXES) / sizeof(*RRL_V6_PREFIXES)) #define RRL_MAX_PREFIXES_CNT ((RRL_V4_PREFIXES_CNT > RRL_V6_PREFIXES_CNT) ? RRL_V4_PREFIXES_CNT : RRL_V6_PREFIXES_CNT) -#ifndef CLOCK_MONOTONIC_COARSE -#define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC -#endif - #define RRL_LIMIT_KOEF 1/2 // Avoid probabilistic rounding wherever possible. struct rrl_table { From 9a4203df21da1435b0605cb871b7d6db48b07b5f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 8 Mar 2026 08:09:06 +0100 Subject: [PATCH 376/675] redis: fix possibly misaligned input rdata where needed --- src/redis/arg.h | 10 ++++++++++ src/redis/internal.h | 1 + src/redis/knot.c | 3 +++ 3 files changed, 14 insertions(+) diff --git a/src/redis/arg.h b/src/redis/arg.h index 7265c33df6..920cc18f70 100644 --- a/src/redis/arg.h +++ b/src/redis/arg.h @@ -236,3 +236,13 @@ static knot_dname_t *dname_from_str(const char *ptr, size_t len, uint8_t *out, a return out; } + +#define ALIGN_RDATASET(rdataset) { \ + if (((uintptr_t)rdataset.rdata % 2) != 0) { \ + uint8_t *tmp = alloca(rdataset.size); \ + if (tmp != NULL) { \ + memcpy(tmp, (void *)rdataset.rdata, rdataset.size); \ + rdataset.rdata = (knot_rdata_t *)tmp; \ + } \ + } \ +} diff --git a/src/redis/internal.h b/src/redis/internal.h index 5fd4fbf48e..43eb47880f 100644 --- a/src/redis/internal.h +++ b/src/redis/internal.h @@ -1065,6 +1065,7 @@ static void zone_store_bin_format(RedisModuleCtx *ctx, const arg_dname_t *origin .size = zone_data_len, .rdata = (knot_rdata_t *)zone_data }; + ALIGN_RDATASET(new_rdataset); if (knot_rdataset_merge(&rrset->rrs, &new_rdataset, &mm) != KNOT_EOK) { RedisModule_FreeString(ctx, rrset_keyname); RedisModule_CloseKey(rrset_key); diff --git a/src/redis/knot.c b/src/redis/knot.c index 7b623d1fd3..0fe96e46a2 100644 --- a/src/redis/knot.c +++ b/src/redis/knot.c @@ -584,6 +584,9 @@ static int upd_add_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) .size = rdata_len, .rdata = (knot_rdata_t *)rdata }; + if (merge) { + ALIGN_RDATASET(rdataset); + } upd_add_bin_format(ctx, &origin, &txn, &owner, ttl, rtype, &rdataset, merge); return REDISMODULE_OK; From 7eafc3406d60a73a3e20227b000212857e0b1bf6 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 23 Feb 2026 10:26:09 +0100 Subject: [PATCH 377/675] fdset: support optional number of contexts per one descriptor --- src/knot/common/fdset.c | 19 ++++++++++--------- src/knot/common/fdset.h | 30 ++++++++++++++++-------------- src/knot/server/tcp-handler.c | 10 +++++----- src/knot/server/udp-handler.c | 4 ++-- tests/knot/test_fdset.c | 2 +- 5 files changed, 34 insertions(+), 31 deletions(-) diff --git a/src/knot/common/fdset.c b/src/knot/common/fdset.c index 1418491156..f96f64d3cc 100644 --- a/src/knot/common/fdset.c +++ b/src/knot/common/fdset.c @@ -23,8 +23,7 @@ static int fdset_resize(fdset_t *set, const unsigned size) { assert(set); - MEM_RESIZE(set->ctx, size); - MEM_RESIZE(set->ctx2, size); + MEM_RESIZE(set->ctx, size * set->ctx_count); MEM_RESIZE(set->timeout, size); #if defined(HAVE_EPOLL) || defined(HAVE_KQUEUE) MEM_RESIZE(set->ev, size); @@ -35,13 +34,14 @@ static int fdset_resize(fdset_t *set, const unsigned size) return KNOT_EOK; } -int fdset_init(fdset_t *set, const unsigned size) +int fdset_init(fdset_t *set, const unsigned size, const uint8_t ctx_count) { - if (set == NULL) { + if (set == NULL || ctx_count < 1) { return KNOT_EINVAL; } memset(set, 0, sizeof(*set)); + set->ctx_count = ctx_count; #if defined(HAVE_EPOLL) || defined(HAVE_KQUEUE) #ifdef HAVE_EPOLL @@ -70,7 +70,6 @@ void fdset_clear(fdset_t *set) } free(set->ctx); - free(set->ctx2); free(set->timeout); #if defined(HAVE_EPOLL) || defined(HAVE_KQUEUE) free(set->ev); @@ -94,8 +93,10 @@ int fdset_add(fdset_t *set, const int fd, const fdset_event_t events, void *ctx) } const int idx = set->n++; - set->ctx[idx] = ctx; - set->ctx2[idx] = NULL; + set->ctx[set->ctx_count * idx] = ctx; + for (int i = 1; i < set->ctx_count; i++) { + set->ctx[set->ctx_count * idx + i] = NULL; + } set->timeout[idx] = 0; #ifdef HAVE_EPOLL set->ev[idx].data.fd = fd; @@ -155,8 +156,8 @@ int fdset_remove(fdset_t *set, const unsigned idx) const unsigned last = --set->n; /* Nothing else if it is the last one. Move last -> i if some remain. */ if (idx < last) { - set->ctx[idx] = set->ctx[last]; - set->ctx2[idx] = set->ctx2[last]; + memcpy(&set->ctx[set->ctx_count * idx], &set->ctx[set->ctx_count * last], + sizeof(*set->ctx) * set->ctx_count); set->timeout[idx] = set->timeout[last]; #if defined(HAVE_EPOLL) || defined (HAVE_KQUEUE) set->ev[idx] = set->ev[last]; diff --git a/src/knot/common/fdset.h b/src/knot/common/fdset.h index ed72549a10..6b299793b2 100644 --- a/src/knot/common/fdset.h +++ b/src/knot/common/fdset.h @@ -33,8 +33,8 @@ typedef struct { unsigned n; /*!< Active fds. */ unsigned size; /*!< Array size (allocated). */ - void **ctx; /*!< Context for each fd. */ - void **ctx2; /*!< Another context for each fd. */ + uint8_t ctx_count; /*!< Number of context pointers for each fd. */ + void **ctx; /*!< Contexts for each fd. */ time_t *timeout; /*!< Timeout for each fd (seconds precision). */ #if defined(HAVE_EPOLL) || defined(HAVE_KQUEUE) #ifdef HAVE_EPOLL @@ -91,12 +91,13 @@ typedef fdset_sweep_state_t (*fdset_sweep_cb_t)(fdset_t *, int, void *); /*! * \brief Initialize fdset to given size. * - * \param set Target set. - * \param size Initial set size. + * \param set Target set. + * \param size Initial set size. + * \param ctx_count Number (>=1) of context pointers per one descriptor. * * \return Error code, KNOT_EOK if success. */ -int fdset_init(fdset_t *set, const unsigned size); +int fdset_init(fdset_t *set, const unsigned size, const uint8_t ctx_count); /*! * \brief Clear whole context of the fdset. @@ -111,7 +112,7 @@ void fdset_clear(fdset_t *set); * \param set Target set. * \param fd Added file descriptor. * \param events Mask of watched events. - * \param ctx Context (optional). + * \param ctx First context pointer (optional). * * \retval ret >= 0 is index of the added fd. * \retval ret < 0 on error. @@ -249,25 +250,26 @@ inline static int fdset_it_get_fd(const fdset_it_t *it) /*! * \brief Get context of event referenced by iterator. * - * \param it Target iterator. + * \param it Target iterator. + * \param ctx_idx Context index (counted from 0). * * \retval Context of the fd. */ -inline static void *fdset_it_get_ctx(const fdset_it_t *it) +inline static void *fdset_it_get_ctx(const fdset_it_t *it, const uint8_t ctx_idx) { - assert(it); + assert(it && ctx_idx < it->set->ctx_count); - return it->set->ctx[fdset_it_get_idx(it)]; + return it->set->ctx[it->set->ctx_count * fdset_it_get_idx(it) + ctx_idx]; } /*! - * \brief Get a read/write pointer on (void *) second context. + * \brief Get a read/write pointer on context at the given index. */ -inline static void **fdset_ctx2(const fdset_t *set, const unsigned idx) +inline static void **fdset_ctx(const fdset_t *set, const unsigned idx, const uint8_t ctx_idx) { - assert(set && idx < set->n); + assert(set && idx < set->n && ctx_idx < set->ctx_count); - return &set->ctx2[idx]; + return &set->ctx[set->ctx_count * idx + ctx_idx]; } /*! diff --git a/src/knot/server/tcp-handler.c b/src/knot/server/tcp-handler.c index 402f54db3c..e2fc83ae8b 100644 --- a/src/knot/server/tcp-handler.c +++ b/src/knot/server/tcp-handler.c @@ -75,7 +75,7 @@ static void update_tcp_conf(tcp_context_t *tcp) static void free_tls_ctx(fdset_t *set, int idx) { - void **tls_conn = fdset_ctx2(set, idx); + void **tls_conn = fdset_ctx(set, idx, 1); if (*tls_conn != NULL) { knot_tls_conn_del(*tls_conn); *tls_conn = NULL; @@ -285,13 +285,13 @@ static int tcp_event_serve(tcp_context_t *tcp, unsigned i, const iface_t *iface) /* Establish a TLS session. */ if (iface->tls) { assert(tcp->tls_ctx != NULL); - knot_tls_conn_t *tls_conn = *fdset_ctx2(&tcp->set, i); + knot_tls_conn_t *tls_conn = *fdset_ctx(&tcp->set, i, 1); if (tls_conn == NULL) { tls_conn = knot_tls_conn_new(tcp->tls_ctx, fd); if (tls_conn == NULL) { return KNOT_ENOMEM; } - *fdset_ctx2(&tcp->set, i) = tls_conn; + *fdset_ctx(&tcp->set, i, 1) = tls_conn; } params_update_tls(¶ms, tls_conn); } @@ -332,7 +332,7 @@ static void tcp_wait_for_events(tcp_context_t *tcp) if (fdset_it_is_error(&it)) { should_close = (idx >= tcp->client_threshold); } else if (fdset_it_is_pollin(&it)) { - const iface_t *iface = fdset_it_get_ctx(&it); + const iface_t *iface = fdset_it_get_ctx(&it, 0); assert(iface); /* Master sockets - new connection to accept. */ if (idx < tcp->client_threshold) { @@ -401,7 +401,7 @@ int tcp_master(dthread_t *thread) } /* Prepare initial buffer for listening and bound sockets. */ - if (fdset_init(&tcp.set, FDSET_RESIZE_STEP) != KNOT_EOK) { + if (fdset_init(&tcp.set, FDSET_RESIZE_STEP, 2) != KNOT_EOK) { ret = KNOT_ENOMEM; goto finish; } diff --git a/src/knot/server/udp-handler.c b/src/knot/server/udp-handler.c index df249fa9f0..5977372c15 100644 --- a/src/knot/server/udp-handler.c +++ b/src/knot/server/udp-handler.c @@ -577,7 +577,7 @@ int udp_master(dthread_t *thread) void *xdp_socket = NULL; size_t nifs = handler->server->n_ifaces; fdset_t fds; - if (fdset_init(&fds, nifs) != KNOT_EOK) { + if (fdset_init(&fds, nifs, 1) != KNOT_EOK) { goto finish; } unsigned nfds = udp_set_ifaces(handler->server, nifs, &fds, @@ -619,7 +619,7 @@ int udp_master(dthread_t *thread) continue; } if (api->udp_recv(fdset_it_get_fd(&it), api_ctx) > 0) { - const iface_t *iface = fdset_it_get_ctx(&it); + const iface_t *iface = fdset_it_get_ctx(&it, 0); assert(iface); api->udp_handle(&udp, iface, api_ctx); api->udp_send(api_ctx); diff --git a/tests/knot/test_fdset.c b/tests/knot/test_fdset.c index 1f4e8924f2..12325948b1 100644 --- a/tests/knot/test_fdset.c +++ b/tests/knot/test_fdset.c @@ -38,7 +38,7 @@ int main(int argc, char *argv[]) plan_lazy(); fdset_t fdset; - int ret = fdset_init(&fdset, 32); + int ret = fdset_init(&fdset, 32, 2); ok(ret == KNOT_EOK, "fdset_init"); int fds0[2], fds1[2], fds2[2]; From 998ae1a8d7ec65477a9df170adf1e54506ece292 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 26 Feb 2026 09:55:46 +0100 Subject: [PATCH 378/675] udp-handler: unify with tcp-handler --- src/knot/server/udp-handler.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/knot/server/udp-handler.c b/src/knot/server/udp-handler.c index 5977372c15..c6d8243ff9 100644 --- a/src/knot/server/udp-handler.c +++ b/src/knot/server/udp-handler.c @@ -51,7 +51,6 @@ typedef struct { server_t *server; /*!< Name server structure. */ unsigned thread_id; /*!< Thread identifier. */ sockaddr_t local; /*!< Storage for local any address for currently processed query. */ - #ifdef ENABLE_QUIC knot_quic_table_t *quic_table; /*!< QUIC connection table if active. */ knot_sweep_stats_t quic_closed; /*!< QUIC sweep context. */ @@ -533,10 +532,6 @@ int udp_master(dthread_t *thread) iohandler_t *handler = (iohandler_t *)thread->data; int thread_id = handler->thread_id[dt_get_id(thread)]; - if (handler->server->n_ifaces == 0) { - return KNOT_EOK; - } - /* Set thread affinity to CPU core (same for UDP and XDP). */ unsigned cpu = dt_online_cpus(); if (cpu > 1) { @@ -546,6 +541,7 @@ int udp_master(dthread_t *thread) /* Choose processing API. */ udp_api_t *api = NULL; + void *api_ctx = NULL; if (is_xdp_thread(handler->server, thread_id)) { #ifdef ENABLE_XDP api = &xdp_mmsg_api; @@ -559,7 +555,8 @@ int udp_master(dthread_t *thread) api = &udp_msg_api; #endif } - void *api_ctx = NULL; + + int ret = KNOT_EOK; /* Create big enough memory cushion. */ knot_mm_t mm; @@ -575,15 +572,15 @@ int udp_master(dthread_t *thread) /* Allocate descriptors for the configured interfaces. */ bool quic = false; void *xdp_socket = NULL; - size_t nifs = handler->server->n_ifaces; fdset_t fds; - if (fdset_init(&fds, nifs, 1) != KNOT_EOK) { + ret = fdset_init(&fds, handler->server->n_ifaces, 1); + if (ret != KNOT_EOK) { goto finish; } - unsigned nfds = udp_set_ifaces(handler->server, nifs, &fds, - thread_id, &xdp_socket, &quic); + unsigned nfds = udp_set_ifaces(handler->server, handler->server->n_ifaces, + &fds, thread_id, &xdp_socket, &quic); if (nfds == 0) { - goto finish; + goto finish; /* Terminate on zero interfaces. */ } #ifdef ENABLE_QUIC @@ -591,6 +588,7 @@ int udp_master(dthread_t *thread) udp.quic_idle_close= conf()->cache.srv_quic_idle_close * 1000000000LU; udp.quic_table = quic_make_table(handler->server); if (udp.quic_table == NULL) { + ret = KNOT_ENOMEM; goto finish; } } @@ -599,6 +597,7 @@ int udp_master(dthread_t *thread) /* Initialize the networking API. */ api_ctx = api->udp_init(&udp, xdp_socket); if (api_ctx == NULL) { + ret = KNOT_ENOMEM; goto finish; } @@ -638,5 +637,5 @@ int udp_master(dthread_t *thread) mp_delete(mm.ctx); fdset_clear(&fds); - return KNOT_EOK; + return ret; } From 659ebcf0a6ad2902c8b52974555576af62bb9ebe Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 26 Feb 2026 10:08:15 +0100 Subject: [PATCH 379/675] tcp-handler: tiny code cleanup --- src/knot/server/tcp-handler.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/knot/server/tcp-handler.c b/src/knot/server/tcp-handler.c index e2fc83ae8b..82092bd412 100644 --- a/src/knot/server/tcp-handler.c +++ b/src/knot/server/tcp-handler.c @@ -35,7 +35,7 @@ #include "contrib/ucw/mempool.h" /*! \brief TCP context data. */ -typedef struct tcp_context { +typedef struct { knot_layer_t layer; /*!< Query processing layer. */ server_t *server; /*!< Name server structure. */ struct iovec iov[2]; /*!< TX/RX buffers. */ @@ -400,13 +400,12 @@ int tcp_master(dthread_t *thread) } } - /* Prepare initial buffer for listening and bound sockets. */ - if (fdset_init(&tcp.set, FDSET_RESIZE_STEP, 2) != KNOT_EOK) { - ret = KNOT_ENOMEM; + /* Initialize descriptors for the configured interfaces and bound sockets. */ + ret = fdset_init(&tcp.set, FDSET_RESIZE_STEP, 2); + if (ret != KNOT_EOK) { goto finish; } - /* Set descriptors for the configured interfaces. */ bool tls = false; tcp.client_threshold = tcp_set_ifaces(handler->server->ifaces, handler->server->n_ifaces, From b0d542d03acc50727c02f28439d13d2e5af9eaa1 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 8 Mar 2026 19:34:20 +0100 Subject: [PATCH 380/675] fdset: add include --- src/knot/common/fdset.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/knot/common/fdset.h b/src/knot/common/fdset.h index 6b299793b2..7aa8f94d1d 100644 --- a/src/knot/common/fdset.h +++ b/src/knot/common/fdset.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #ifdef HAVE_EPOLL From 1ac9424c3fd4c7d0db025d060be749e26c50a94b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Wed, 7 Jan 2026 13:03:39 +0100 Subject: [PATCH 381/675] contrib/lists: add WALK_LIST_RESUME --- src/contrib/ucw/lists.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/contrib/ucw/lists.h b/src/contrib/ucw/lists.h index d8ed449ab6..e6bccb4eab 100644 --- a/src/contrib/ucw/lists.h +++ b/src/contrib/ucw/lists.h @@ -25,6 +25,9 @@ typedef struct list { #define TAIL(list) ((void *)((list).tail.prev)) #define WALK_LIST(n,list) for(n=HEAD(list);(NODE (n))->next; \ n=(void *)((NODE (n))->next)) +#define WALK_LIST_RESUME(n,list) for((n)=(void *)((NODE (n))?(NODE (n))->next:HEAD(list)); \ + ((NODE (n))&&(NODE (n))->next)||((n)=NULL); \ + (n)=(void *)((NODE (n))->next)) #define WALK_LIST_DELSAFE(n,nxt,list) \ for(n=HEAD(list); (nxt=(void *)((NODE (n))->next)); n=(void *) nxt) /* WALK_LIST_FIRST supposes that called code removes each processed node */ From a5282b40c7be2fd6ea610c202a6b778c7b12b354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Tue, 9 Dec 2025 16:24:24 +0100 Subject: [PATCH 382/675] dnstap: responses-with-queries as part of dt_message_fill --- src/contrib/dnstap/message.c | 11 ++++++++++- src/contrib/dnstap/message.h | 7 ++++++- src/knot/modules/dnstap/dnstap.c | 14 +++----------- src/utils/kdig/kdig_exec.c | 2 +- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/contrib/dnstap/message.c b/src/contrib/dnstap/message.c index 2f3b9b2b15..55b6959cc9 100644 --- a/src/contrib/dnstap/message.c +++ b/src/contrib/dnstap/message.c @@ -62,7 +62,9 @@ int dt_message_fill(Dnstap__Message *m, const int protocol, const void *wire, const size_t len_wire, - const struct timespec *mtime) + const struct timespec *mtime, + const void *wire_q, + const size_t len_wire_q) { if (m == NULL) { return KNOT_EINVAL; @@ -113,6 +115,13 @@ int dt_message_fill(Dnstap__Message *m, m->has_response_time_sec = 1; m->has_response_time_nsec = 1; } + // Also add query message if provided + if (wire_q != NULL) { + // Message.query_message + m->query_message.len = len_wire_q; + m->query_message.data = (uint8_t *)wire_q; + m->has_query_message = 1; + } } return KNOT_EOK; diff --git a/src/contrib/dnstap/message.h b/src/contrib/dnstap/message.h index ef24dada63..e3067a1081 100644 --- a/src/contrib/dnstap/message.h +++ b/src/contrib/dnstap/message.h @@ -37,6 +37,9 @@ * \param mtime * Message time. May be NULL. * + * \param *_q + * Symmetrical query parameters in case responses-with-queries is enabled. + * * \retval KNOT_EOK * \retval KNOT_EINVAL */ @@ -47,4 +50,6 @@ int dt_message_fill(Dnstap__Message *m, const int protocol, const void *wire, const size_t len_wire, - const struct timespec *mtime); + const struct timespec *mtime, + const void *wire_q, + const size_t len_wire_q); diff --git a/src/knot/modules/dnstap/dnstap.c b/src/knot/modules/dnstap/dnstap.c index 3d4baa5610..614fbb6b46 100644 --- a/src/knot/modules/dnstap/dnstap.c +++ b/src/knot/modules/dnstap/dnstap.c @@ -84,7 +84,9 @@ static knotd_state_t log_message(knotd_state_t state, const knot_pkt_t *pkt, int ret = dt_message_fill(&msg, msgtype, (const struct sockaddr *)knotd_qdata_remote_addr(qdata), (const struct sockaddr *)knotd_qdata_local_addr(qdata), - qdata->params->proto, pkt->wire, pkt->size, &tv); + qdata->params->proto, pkt->wire, pkt->size, &tv, + (ctx->with_queries && qdata->query != NULL) ? qdata->query->wire : NULL, + (ctx->with_queries && qdata->query != NULL) ? qdata->query->size : 0); if (ret != KNOT_EOK) { return state; } @@ -105,16 +107,6 @@ static knotd_state_t log_message(knotd_state_t state, const knot_pkt_t *pkt, dnstap.has_version = 1; } - /* Also add query message if 'responses-with-queries' is enabled and this is a response. */ - if (ctx->with_queries && - msgtype == DNSTAP__MESSAGE__TYPE__AUTH_RESPONSE && - qdata->query != NULL) - { - msg.query_message.len = qdata->query->size; - msg.query_message.data = qdata->query->wire; - msg.has_query_message = 1; - } - /* Pack the message. */ uint8_t *frame = NULL; size_t size = 0; diff --git a/src/utils/kdig/kdig_exec.c b/src/utils/kdig/kdig_exec.c index d4090bfe79..c0f46d0793 100644 --- a/src/utils/kdig/kdig_exec.c +++ b/src/utils/kdig/kdig_exec.c @@ -56,7 +56,7 @@ static int write_dnstap(dt_writer_t *writer, ret = dt_message_fill(&msg, msg_type, net->local_info->ai_addr, net->srv->ai_addr, protocol, - wire, wire_len, mtime); + wire, wire_len, mtime, NULL, 0); if (ret != KNOT_EOK) { return ret; } From f9d930cceba322c303c45b7fc0059f902d0d0fc7 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 11 Mar 2026 15:18:27 +0100 Subject: [PATCH 383/675] geoip: fix crash if missing record owner in config file --- src/knot/modules/geoip/geoip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/modules/geoip/geoip.c b/src/knot/modules/geoip/geoip.c index 394a7638f7..ac99282070 100644 --- a/src/knot/modules/geoip/geoip.c +++ b/src/knot/modules/geoip/geoip.c @@ -528,11 +528,11 @@ static int parse_rr(check_ctx_t *check, yp_parser_t *yp, zs_scanner_t *scanner, view->rrsets = alloc_ret; view->avail *= 2; } - add_rr = &view->rrsets[view->count++]; knot_dname_t *owner_cpy = knot_dname_copy(owner, NULL); if (owner_cpy == NULL) { return KNOT_ENOMEM; } + add_rr = &view->rrsets[view->count++]; knot_rrset_init(add_rr, owner_cpy, rr_type, KNOT_CLASS_IN, ttl); } From 30034ee8e1fddecf941a63cc70a7a1c9b958886a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 11 Mar 2026 15:18:57 +0100 Subject: [PATCH 384/675] geoip: improve error check if missing record owner in config file --- src/knot/modules/geoip/geoip.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/knot/modules/geoip/geoip.c b/src/knot/modules/geoip/geoip.c index ac99282070..6f7c826cfa 100644 --- a/src/knot/modules/geoip/geoip.c +++ b/src/knot/modules/geoip/geoip.c @@ -306,6 +306,8 @@ static int finalize_geo_view(check_ctx_t *check, geo_view_t *view, knot_dname_t { if (view == NULL || view->count == 0) { return KNOT_EOK; + } else if (owner == NULL) { + return KNOT_EMALF; } int ret = KNOT_EOK; @@ -485,6 +487,10 @@ static int parse_view(check_ctx_t *check, geoip_ctx_t *ctx, yp_parser_t *yp, geo static int parse_rr(check_ctx_t *check, yp_parser_t *yp, zs_scanner_t *scanner, knot_dname_t *owner, geo_view_t *view, uint32_t ttl) { + if (owner == NULL) { + return KNOT_EMALF; + } + uint16_t rr_type = KNOT_RRTYPE_A; if (knot_rrtype_from_string(yp->key, &rr_type) != 0) { geo_log(check, LOG_ERR, "invalid RR type '%s' on line %zu", From 0c34fbe767f2cd62589bc02592e10df5458e4001 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 11 Mar 2026 21:09:48 +0100 Subject: [PATCH 385/675] dnssec: add a mutex to prevent race condition when registering a PKCS#11 module --- src/libknot/dnssec/p11/p11.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/libknot/dnssec/p11/p11.c b/src/libknot/dnssec/p11/p11.c index 0b878c5346..0a851c96e6 100644 --- a/src/libknot/dnssec/p11/p11.c +++ b/src/libknot/dnssec/p11/p11.c @@ -5,6 +5,7 @@ #include #include +#include #include #include @@ -15,6 +16,7 @@ #define PKCS11_MODULES_MAX 16 +static pthread_mutex_t pkcs11_modules_lock = PTHREAD_MUTEX_INITIALIZER; static char *pkcs11_modules[PKCS11_MODULES_MAX] = { 0 }; static int pkcs11_modules_count = 0; @@ -37,31 +39,39 @@ int p11_reinit(void) int p11_load_module(const char *module) { + pthread_mutex_lock(&pkcs11_modules_lock); + for (int i = 0; i < pkcs11_modules_count; i++) { if (strcmp(pkcs11_modules[i], module) == 0) { + pthread_mutex_unlock(&pkcs11_modules_lock); return KNOT_EOK; } } assert(pkcs11_modules_count <= PKCS11_MODULES_MAX); if (pkcs11_modules_count == PKCS11_MODULES_MAX) { + pthread_mutex_unlock(&pkcs11_modules_lock); return KNOT_ERANGE; } char *copy = strdup(module); if (!copy) { + pthread_mutex_unlock(&pkcs11_modules_lock); return KNOT_ENOMEM; } int r = gnutls_pkcs11_add_provider(module, NULL); if (r != GNUTLS_E_SUCCESS) { free(copy); + pthread_mutex_unlock(&pkcs11_modules_lock); return KNOT_P11_ELOAD; } pkcs11_modules[pkcs11_modules_count] = copy; pkcs11_modules_count += 1; + pthread_mutex_unlock(&pkcs11_modules_lock); + return KNOT_EOK; } From 33a21fda61b10fca894fce305a9248ad5634eee3 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 16 Mar 2026 11:31:23 +0100 Subject: [PATCH 386/675] update: improve terribly slow zone_update_no_change() --- src/knot/updates/zone-update.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 4b7819f1b7..8476bed1ad 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1287,6 +1287,12 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) return KNOT_EOK; } +static int no_change(const knot_rrset_t *rr, void *ctx) +{ + (void)ctx; + return knot_rrset_empty(rr) ? KNOT_EOK : 1; +} + bool zone_update_no_change(zone_update_t *update) { if (update == NULL) { @@ -1294,9 +1300,8 @@ bool zone_update_no_change(zone_update_t *update) } if (update->flags & UPDATE_NO_CHSET) { - zone_diff_t diff; - get_zone_diff(&diff, update); - return (zone_diff_serialized_size(diff) == 0); + return zone_update_foreach(update, false, no_change, NULL) == KNOT_EOK && + zone_update_foreach(update, true, no_change, NULL) == KNOT_EOK; } else if (update->flags & (UPDATE_INCREMENTAL | UPDATE_HYBRID)) { return changeset_empty(&update->change); } else { From 1b37bda02634076e3458aee3aea2f51ba5a713b7 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 16 Mar 2026 15:24:29 +0100 Subject: [PATCH 387/675] zone/evsched/worker_pool: remove assigned task before freeing zone... ...so that the potentially assigned task doesn't dangle leading to freed memory access which could happen if a zone is allocated and module init fails it is deallocated but the assigned event LOAD task remains --- src/knot/events/events.c | 1 + src/knot/server/server.c | 6 +++--- src/knot/worker/pool.c | 11 +++++++++++ src/knot/worker/pool.h | 5 +++++ src/knot/worker/queue.c | 9 +++++++++ src/knot/worker/queue.h | 5 +++++ 6 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/knot/events/events.c b/src/knot/events/events.c index 70c0cb08ec..92d7050281 100644 --- a/src/knot/events/events.c +++ b/src/knot/events/events.c @@ -324,6 +324,7 @@ void zone_events_deinit(zone_t *zone) evsched_cancel(events->event); evsched_event_free(events->event); + worker_pool_unassign(events->pool, &events->task); pthread_mutex_unlock(&events->mx); pthread_mutex_destroy(&events->mx); diff --git a/src/knot/server/server.c b/src/knot/server/server.c index b7075a829e..296db0cc08 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1104,9 +1104,6 @@ void server_deinit(server_t *server) /* Free remaining interfaces. */ server_deinit_iface_list(server->ifaces, server->n_ifaces); - /* Free threads and event handlers. */ - worker_pool_destroy(server->workers); - /* Free eventual timer DB syncing thread. */ dt_delete(&server->timerdb_sync); @@ -1116,6 +1113,9 @@ void server_deinit(server_t *server) /* Free zone database. */ knot_zonedb_deep_free(&server->zone_db, true); + /* Free threads and event handlers. */ + worker_pool_destroy(server->workers); + /* Free remaining events. */ evsched_deinit(&server->sched); diff --git a/src/knot/worker/pool.c b/src/knot/worker/pool.c index 2d0937acef..711f7d6797 100644 --- a/src/knot/worker/pool.c +++ b/src/knot/worker/pool.c @@ -213,6 +213,17 @@ void worker_pool_assign(worker_pool_t *pool, struct task *task) pthread_mutex_unlock(&pool->lock); } +void worker_pool_unassign(worker_pool_t *pool, struct task *task) +{ + if (!pool || !task) { + return; + } + + pthread_mutex_lock(&pool->lock); + worker_queue_remove(&pool->tasks, task); + pthread_mutex_unlock(&pool->lock); +} + void worker_pool_clear(worker_pool_t *pool) { if (!pool) { diff --git a/src/knot/worker/pool.h b/src/knot/worker/pool.h index 5808c20e9e..d32170c0e2 100644 --- a/src/knot/worker/pool.h +++ b/src/knot/worker/pool.h @@ -69,6 +69,11 @@ void worker_pool_wait_cb(worker_pool_t *pool, wait_callback_t cb); */ void worker_pool_assign(worker_pool_t *pool, struct task *task); +/*! + * \brief Revert assignment of a specific task to the worker pool. + */ +void worker_pool_unassign(worker_pool_t *pool, struct task *task); + /*! * \brief Clear all tasks enqueued in pool processing queue. */ diff --git a/src/knot/worker/queue.c b/src/knot/worker/queue.c index 450a7b56c8..dda697f55e 100644 --- a/src/knot/worker/queue.c +++ b/src/knot/worker/queue.c @@ -32,6 +32,15 @@ void worker_queue_enqueue(worker_queue_t *queue, worker_task_t *task) ptrlist_add(&queue->list, task, &queue->mm_ctx); } +void worker_queue_remove(worker_queue_t *queue, worker_task_t *task) +{ + if (!queue || !task) { + return; + } + + ptrlist_find_rem(&queue->list, task, &queue->mm_ctx); +} + worker_task_t *worker_queue_dequeue(worker_queue_t *queue) { if (!queue) { diff --git a/src/knot/worker/queue.h b/src/knot/worker/queue.h index 4efd0818b8..78f752dfd0 100644 --- a/src/knot/worker/queue.h +++ b/src/knot/worker/queue.h @@ -41,6 +41,11 @@ void worker_queue_deinit(worker_queue_t *queue); */ void worker_queue_enqueue(worker_queue_t *queue, worker_task_t *task); +/*! + * \brief Revert insertion of this task to the queue. + */ +void worker_queue_remove(worker_queue_t *queue, worker_task_t *task); + /*! * \brief Remove item from the queue. * From 85eb7c4d8f4644cce6d815a4a2c7d12c17243ae0 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 17 Mar 2026 13:17:51 +0100 Subject: [PATCH 388/675] modules: unload module context if any when closing/error --- src/knot/conf/module.c | 3 --- src/knot/nameserver/query_module.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/knot/conf/module.c b/src/knot/conf/module.c index 14d94e1082..77d5d891ee 100644 --- a/src/knot/conf/module.c +++ b/src/knot/conf/module.c @@ -451,9 +451,6 @@ void conf_deactivate_modules( // Free query modules list. knotd_mod_t *mod, *next; WALK_LIST_DELSAFE(mod, next, *query_modules) { - if (mod->api->unload != NULL) { - mod->api->unload(mod); - } query_module_close(mod); } init_list(query_modules); diff --git a/src/knot/nameserver/query_module.c b/src/knot/nameserver/query_module.c index 8d7c4af2de..5fbff03442 100644 --- a/src/knot/nameserver/query_module.c +++ b/src/knot/nameserver/query_module.c @@ -172,6 +172,9 @@ void query_module_close(knotd_mod_t *module) return; } + if (module->ctx != NULL && module->api->unload != NULL) { + module->api->unload(module); + } module_reset(NULL, module, NULL); conf_free_mod_id(module->id); free(module); From 572f11d66c3242b69ecfed2674c2e87a3f509084 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 17 Mar 2026 14:08:42 +0100 Subject: [PATCH 389/675] modules: add missing checks from hook registrations --- src/knot/modules/cookies/cookies.c | 2 ++ src/knot/modules/dnstap/dnstap.c | 10 ++++++++-- src/knot/modules/onlinesign/onlinesign.c | 14 ++++++++------ src/knot/modules/rrl/rrl.c | 8 +++++--- src/knot/modules/whoami/whoami.c | 5 +---- 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/knot/modules/cookies/cookies.c b/src/knot/modules/cookies/cookies.c index 4defb7621f..a8b0927245 100644 --- a/src/knot/modules/cookies/cookies.c +++ b/src/knot/modules/cookies/cookies.c @@ -280,6 +280,7 @@ int cookies_load(knotd_mod_t *mod) ret = dnssec_random_buffer((uint8_t *)gen_secret, sizeof(gen_secret)); if (ret != KNOT_EOK) { free(ctx); + knotd_mod_ctx_set(mod, NULL); return ret; } ATOMIC_SET(ctx->secret[0].variable, gen_secret[0]); @@ -293,6 +294,7 @@ int cookies_load(knotd_mod_t *mod) if (thread_create_nosignal(&ctx->update_secret, update_secret, (void *)mod)) { knotd_mod_log(mod, LOG_ERR, "failed to create the secret rollover thread"); free(ctx); + knotd_mod_ctx_set(mod, NULL); return KNOT_ERROR; } } diff --git a/src/knot/modules/dnstap/dnstap.c b/src/knot/modules/dnstap/dnstap.c index 614fbb6b46..486a23ad0f 100644 --- a/src/knot/modules/dnstap/dnstap.c +++ b/src/knot/modules/dnstap/dnstap.c @@ -335,10 +335,16 @@ int dnstap_load(knotd_mod_t *mod) /* Hook to the query plan. */ if (log_queries) { - knotd_mod_hook(mod, KNOTD_STAGE_BEGIN, dnstap_message_log_query); + int ret = knotd_mod_hook(mod, KNOTD_STAGE_BEGIN, dnstap_message_log_query); + if (ret != KNOT_EOK) { + return ret; + } } if (log_responses) { - knotd_mod_hook(mod, KNOTD_STAGE_END, dnstap_message_log_response); + int ret = knotd_mod_hook(mod, KNOTD_STAGE_END, dnstap_message_log_response); + if (ret != KNOT_EOK) { + return ret; + } } return KNOT_EOK; diff --git a/src/knot/modules/onlinesign/onlinesign.c b/src/knot/modules/onlinesign/onlinesign.c index 7ddce085c7..fc6e0c1323 100644 --- a/src/knot/modules/onlinesign/onlinesign.c +++ b/src/knot/modules/onlinesign/onlinesign.c @@ -669,6 +669,8 @@ int load_nsec_bitmap(online_sign_ctx_t *ctx, knotd_conf_t *conf) return KNOT_EOK; } +#define CHECK_RET(cmd) if ((ret = (cmd)) != KNOT_EOK) return ret; + int online_sign_load(knotd_mod_t *mod) { knotd_conf_t conf = knotd_conf_zone(mod, C_DNSSEC_SIGNING, @@ -702,15 +704,15 @@ int online_sign_load(knotd_mod_t *mod) knotd_mod_ctx_set(mod, ctx); - knotd_mod_in_hook(mod, KNOTD_STAGE_ANSWER, pre_routine); + CHECK_RET(knotd_mod_in_hook(mod, KNOTD_STAGE_ANSWER, pre_routine)); - knotd_mod_in_hook(mod, KNOTD_STAGE_ANSWER, synth_answer); - knotd_mod_in_hook(mod, KNOTD_STAGE_ANSWER, sign_section); + CHECK_RET(knotd_mod_in_hook(mod, KNOTD_STAGE_ANSWER, synth_answer)); + CHECK_RET(knotd_mod_in_hook(mod, KNOTD_STAGE_ANSWER, sign_section)); - knotd_mod_in_hook(mod, KNOTD_STAGE_AUTHORITY, synth_authority); - knotd_mod_in_hook(mod, KNOTD_STAGE_AUTHORITY, sign_section); + CHECK_RET(knotd_mod_in_hook(mod, KNOTD_STAGE_AUTHORITY, synth_authority)); + CHECK_RET(knotd_mod_in_hook(mod, KNOTD_STAGE_AUTHORITY, sign_section)); - knotd_mod_in_hook(mod, KNOTD_STAGE_ADDITIONAL, sign_section); + CHECK_RET(knotd_mod_in_hook(mod, KNOTD_STAGE_ADDITIONAL, sign_section)); return KNOT_EOK; } diff --git a/src/knot/modules/rrl/rrl.c b/src/knot/modules/rrl/rrl.c index 29f95a0d58..5370603cb5 100644 --- a/src/knot/modules/rrl/rrl.c +++ b/src/knot/modules/rrl/rrl.c @@ -187,6 +187,8 @@ static void ctx_free(rrl_ctx_t *ctx) free(ctx); } +#define CHECK_RET(cmd) if ((ret = (cmd)) != KNOT_EOK) return ret; + int rrl_load(knotd_mod_t *mod) { rrl_ctx_t *ctx = calloc(1, sizeof(rrl_ctx_t)); @@ -254,13 +256,13 @@ int rrl_load(knotd_mod_t *mod) knotd_mod_ctx_set(mod, ctx); if (rate_limit > 0) { - knotd_mod_hook(mod, KNOTD_STAGE_BEGIN, ratelimit_apply); + CHECK_RET(knotd_mod_hook(mod, KNOTD_STAGE_BEGIN, ratelimit_apply)); } if (time_limit > 0) { // Note that these two callbacks aren't executed IF PER-ZONE module! - knotd_mod_proto_hook(mod, KNOTD_STAGE_PROTO_BEGIN, protolimit_start); - knotd_mod_proto_hook(mod, KNOTD_STAGE_PROTO_END, protolimit_end); + CHECK_RET(knotd_mod_proto_hook(mod, KNOTD_STAGE_PROTO_BEGIN, protolimit_start)); + CHECK_RET(knotd_mod_proto_hook(mod, KNOTD_STAGE_PROTO_END, protolimit_end)); } return KNOT_EOK; diff --git a/src/knot/modules/whoami/whoami.c b/src/knot/modules/whoami/whoami.c index e77bf002fc..3b273dd5ad 100644 --- a/src/knot/modules/whoami/whoami.c +++ b/src/knot/modules/whoami/whoami.c @@ -93,10 +93,7 @@ static knotd_in_state_t whoami_query(knotd_in_state_t state, knot_pkt_t *pkt, int whoami_load(knotd_mod_t *mod) { - /* Hook to the query plan. */ - knotd_mod_in_hook(mod, KNOTD_STAGE_ANSWER, whoami_query); - - return KNOT_EOK; + return knotd_mod_in_hook(mod, KNOTD_STAGE_ANSWER, whoami_query); } KNOTD_MOD_API(whoami, KNOTD_MOD_FLAG_SCOPE_ZONE | KNOTD_MOD_FLAG_OPT_CONF, From 8081d7bd31371823cb88e21ff32a56a05af667fc Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 23 Apr 2024 17:00:22 +0200 Subject: [PATCH 390/675] keymgr/offlineKSK: allow timestamps in YMDhms format --- src/utils/keymgr/offline_ksk.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/keymgr/offline_ksk.c b/src/utils/keymgr/offline_ksk.c index 35a00b99be..988c8b3b91 100644 --- a/src/utils/keymgr/offline_ksk.c +++ b/src/utils/keymgr/offline_ksk.c @@ -392,7 +392,7 @@ static void ksr_sign_header(zs_scanner_t *sc) } knot_time_t next_timestamp; - if (str_to_u64(next_str, &next_timestamp) != KNOT_EOK) { + if (knot_time_parse("YMDhms|#", next_str, &next_timestamp) != 0) { // trailing header without timestamp next_timestamp = 0; } @@ -436,7 +436,7 @@ static void skr_import_header(zs_scanner_t *sc) } knot_time_t next_timestamp; - if (str_to_u64(next_str, &next_timestamp) != KNOT_EOK) { + if (knot_time_parse("YMDhms|#", next_str, &next_timestamp) != 0) { // trailing header without timestamp next_timestamp = 0; } @@ -476,7 +476,7 @@ static void skr_validate_header(zs_scanner_t *sc) } knot_time_t next_timestamp; - if (str_to_u64(next_str, &next_timestamp) != KNOT_EOK) { + if (knot_time_parse("YMDhms|#", next_str, &next_timestamp) != 0) { // trailing header without timestamp next_timestamp = 0; } From ee8938bd7c7f4d1f9cb7c11773d70ec193cb4f49 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 25 Apr 2024 11:00:36 +0200 Subject: [PATCH 391/675] tests-extra: facility for calling server.key_gen/set() also for Bind --- tests-extra/tools/dnstest/server.py | 48 ++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 0f4e43281b..16fd0bbacd 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1005,6 +1005,10 @@ def use_keys(self, zone): def dnssec(self, zone): return self.conf_ss("policy", zone) + def key_timer_params(self, **new_params): + nested_list = [ self.key_timer_param(par_name, par_val) for par_name, par_val in new_params.items() ] + return [ x for xs in nested_list for x in xs ] + def enable_nsec3(self, zone, **args): zone = zone_arg_check(zone) @@ -1114,6 +1118,31 @@ def flush(self, zone=None, wait=False): def bind_version(self): return tuple(map(int, run([self.daemon_bin, '-v'], stdout=PIPE, stderr=PIPE, text=True).stdout.replace('BIND ', '').split('-')[0].split('.'))) + def key_timer_param(self, timer_name, timer_val): + ktpmap = { 'publish': '-P', 'active': '-A', 'retire': '-I', 'revoke': '-R', 'remove': '-D' } + ktpmap |= { 'algorithm': '-a', 'size': '-b' } + ignore = [ 'ksk', 'zsk', 'created', 'ready' ] + if timer_name == "ksk" and str(timer_val).lower()[0] in [ "y", "t", "1" ]: + return [ '-f', 'KSK' ] + if timer_name in ignore: + return [] + if timer_name not in ktpmap: + assert(0) + return [ ktpmap[timer_name], str(timer_val) ] + + def key_gen(self, zone_name, **new_params): + z = self.zones[zone_name] + alg = "ecdsa256" if z.dnssec.algorithm is None else z.dnssec.algorithm + ps = [ 'dnssec-keygen', '-n', 'ZONE', '-K', self.keydir ] + if z.dnssec.nsec3: + ps += ['-3'] + out = check_output(ps + self.key_timer_params(algorithm=alg, **new_params) + [z.name], stderr=DEVNULL) + return out.decode('ascii').strip() + + def key_set(self, zone_name, key_id, **new_values): + ps = [ 'dnssec-settime', '-K', self.keydir ] + check_output(ps + self.key_timer_params(**new_values) + [key_id], stderr=DEVNULL) + def check_option(self, option): proc = Popen([params.bind_checkconf_bin, "/dev/fd/0"], stdout=PIPE, stderr=PIPE, stdin=PIPE, @@ -1230,7 +1259,7 @@ def get_config(self): s.begin("keys") zsk_life = "unlimited" if z.dnssec.zsk_lifetime is None else z.dnssec.zsk_lifetime ksk_life = "unlimited" if z.dnssec.ksk_lifetime is None else z.dnssec.ksk_lifetime - alg = "ecdsa256" if z.dnssec.alg is None else z.dnssec.alg + alg = "ecdsa256" if z.dnssec.algorithm is None else z.dnssec.algorithm if z.dnssec.single_type_signing: s.item("csk", "lifetime %s algorithm %s" % (ksk_life, alg)) else: @@ -1356,14 +1385,8 @@ def start(self, clean=False, fatal=True): continue # unrelated: generate keys as Bind won't do - ps = [ 'dnssec-keygen', '-n', 'ZONE', '-a', 'ECDSA256', '-K', self.keydir ] - if z.dnssec.nsec3: - ps += ['-3'] - k1 = check_output(ps + [z.name], stderr=DEVNULL) - k2 = check_output(ps + ["-f", "KSK"] + [z.name], stderr=DEVNULL) - - k1 = self.keydir + '/' + k1.rstrip().decode('ascii') - k2 = self.keydir + '/' + k2.rstrip().decode('ascii') + k1 = os.path.join(self.keydir, self.key_gen(zname)) + k2 = os.path.join(self.keydir, self.key_gen(zname, ksk="True")) # Append to zone with open(z.zfile.path, 'a') as outf: @@ -1430,14 +1453,17 @@ def flush(self, zone=None, wait=False): else: self.ctl("%szone-flush" % params, wait=wait) + def key_timer_param(self, timer_name, timer_val): + return [ timer_name + "=" + timer_val ] + def key_gen(self, zone_name, **new_params): - set_params = [ option + "=" + value for option, value in new_params.items() ] + set_params = self.key_timer_params(**new_params) res = dnstest.keys.Keymgr.run_check(self.confile, zone_name, "generate", *set_params) errcode, stdo, stde = res return stdo.split()[-1] def key_set(self, zone_name, key_id, **new_values): - set_params = [ option + "=" + value for option, value in new_values.items() ] + set_params = self.key_timer_params(**new_values) dnstest.keys.Keymgr.run_check(self.confile, zone_name, "set", key_id, *set_params) def key_import_bind(self, zone_name): From e14a364cbcc6ab918ff95783b724e8d45159185f Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 25 Apr 2024 15:49:43 +0200 Subject: [PATCH 392/675] tests: offlineKSK interoperability with Bind9 --- tests-extra/tests/dnssec/offline_ksk/test.py | 111 ++++++++++--------- tests-extra/tools/dnstest/params.py | 2 + tests-extra/tools/dnstest/server.py | 12 +- 3 files changed, 72 insertions(+), 53 deletions(-) diff --git a/tests-extra/tests/dnssec/offline_ksk/test.py b/tests-extra/tests/dnssec/offline_ksk/test.py index 539e9d248d..549f51df82 100644 --- a/tests-extra/tests/dnssec/offline_ksk/test.py +++ b/tests-extra/tests/dnssec/offline_ksk/test.py @@ -23,6 +23,10 @@ def cripple_skr(skr_in, skr_out): if len(linesplit) > 2 and linesplit[2] == "RRSIG": after_rrsig = 0 rrsig_now += 1 + elif len(linesplit) > 3 and linesplit[3] == "RRSIG": + rrsig_now += 1 + if rrsig_now == rrsig_chosen: + lineout = linein.lower() # Bind9-style RRSIG is crippled directly else: after_rrsig += 1 if after_rrsig == 3 and rrsig_now == rrsig_chosen: @@ -112,8 +116,9 @@ def writef(filename, contents): ON_SLAVE = random.choice([True, False]) IXFR = random.choice([True, False]) if ON_SLAVE else False +SIGNER_BIND = random.choice([True, False]) -check_log("On-slave signing %s, IXFR enabled %s" % (ON_SLAVE, IXFR)) +check_log("On-slave signing %s, IXFR enabled %s, Bind9 as signer %s" % (ON_SLAVE, IXFR, SIGNER_BIND)) t = Test() @@ -154,10 +159,7 @@ def writef(filename, contents): # options without any effect knot.dnssec(zone).ksk_lifetime = NONSENSE -# needed for keymgr -knot.gen_confile() - -signer = t.server("knot") +signer = t.server("bind" if SIGNER_BIND else "knot") t.link(zone, signer) # KSK side @@ -178,7 +180,7 @@ def writef(filename, contents): signer.dnssec(zone).propagation_delay = int(NONSENSE / 10) # needed for keymgr -signer.gen_confile() +t.generate_conf() def tickf(when): return "+%d" % (STARTUP + when * TICK) @@ -195,7 +197,7 @@ def tickf(when): Keymgr.run_check(knot.confile, ZONE, "pregenerate", "+20", "+" + str(FUTURE)) _, out, _ = Keymgr.run_check(knot.confile, ZONE, "generate-ksr", "+0", "+" + str(FUTURE)) writef(KSR, out) -_, out, _ = Keymgr.run_check(signer.confile, ZONE, "sign-ksr", KSR) +out = signer.sign_ksr(ZONE, KSR) writef(SKR, out) cripple_skr(SKR, SKR_BROKEN) @@ -210,13 +212,15 @@ def tickf(when): TICK_SAFE = TICK + TICK // 2; # run it and see if the signing and rollovers work well -t.start() +if ON_SLAVE: + master.start() +knot.start() knot.zone_wait(zone) check_zone(knot, zone, 2, 1, 1, "init") zone_update(master, knot, zone, ON_SLAVE) wait_for_dnskey_count(t, knot, 3, STARTUP + TICK_SAFE * 2) -check_zone(knot, zone, 3, 2, 1, "KSK rollover: publish") +check_zone(knot, zone, 3, 1 if SIGNER_BIND else 2, 1, "KSK rollover: publish") zone_update(master, knot, zone, ON_SLAVE) wait_for_dnskey_count(t, knot, 2, TICK_SAFE * 3) @@ -244,7 +248,7 @@ def tickf(when): Keymgr.run_check(knot.confile, ZONE, "pregenerate", "+" + str(FUTURE)) _, out, _ = Keymgr.run_check(knot.confile, ZONE, "generate-ksr", "+0", "+" + str(FUTURE)) writef(KSR, out) -_, out, _ = Keymgr.run_check(signer.confile, ZONE, "sign-ksr", KSR) +out = signer.sign_ksr(ZONE, KSR) writef(SKR, out) Keymgr.run_check(knot.confile, ZONE, "import-skr", SKR) @@ -255,7 +259,7 @@ def tickf(when): zone_update(master, knot, zone, ON_SLAVE) wait_for_dnskey_count(t, knot, 3, STARTUP + TICK_SAFE) -check_zone(knot, zone, 3, 2, 1, "KSK rollover2: publish") +check_zone(knot, zone, 3, 1 if SIGNER_BIND else 2, 1, "KSK rollover2: publish") zone_update(master, knot, zone, ON_SLAVE) wait_for_dnskey_count(t, knot, 2, TICK_SAFE * 3) @@ -271,46 +275,49 @@ def tickf(when): # prepare algorithm roll-over: delete pre-generated ZSKs, arrange all the timestamps -_, out, _ = Keymgr.run_check(knot.confile, ZONE, "list") -for line in out.split('\n'): - if len(line) > 0 and line.split()[-1] == "remove=0": # only one key with this property - last_zsk = line.split()[0] - -algtick = 5 -now = int(time.time()) -preactive = now + algtick -publish = preactive + algtick -postactive = publish + algtick -remove = postactive + algtick - -key_ksk4 = signer.key_gen(ZONE, ksk="true", algorithm="ECDSAP256SHA256", created="+0", pre_active=str(preactive), publish=str(publish), ready=str(publish), active=str(postactive)) -key_zsk2 = knot.key_gen(ZONE, ksk="false", algorithm="ECDSAP256SHA256", created="+0", pre_active=str(preactive), publish=str(publish), active=str(postactive)) -signer.key_set(ZONE, key_ksk3, post_active=str(postactive), remove=str(remove)) -knot.key_set(ZONE, last_zsk, post_active=str(postactive), remove=str(remove)) - -KSR = KSR + "3" -SKR = SKR + "3" -_, out, _ = Keymgr.run_check(knot.confile, ZONE, "generate-ksr", "+0", str(remove + 1)) -writef(KSR, out) -_, out, _ = Keymgr.run_check(signer.confile, ZONE, "sign-ksr", KSR) -writef(SKR, out) -Keymgr.run_check(knot.confile, ZONE, "import-skr", SKR) -knot.ctl("zone-keys-load") - -zone_update(master, knot, zone, ON_SLAVE) -wait_for_rrsig_count(t, knot, "SOA", 2, algtick + 2) -check_zone(knot, zone, 2, 1, 2, "alg roll: pre-active") - -zone_update(master, knot, zone, ON_SLAVE) -wait_for_dnskey_count(t, knot, 4, algtick + 2) -check_zone(knot, zone, 4, 2, 2, "alg roll: published") - -zone_update(master, knot, zone, ON_SLAVE) -wait_for_dnskey_count(t, knot, 2, algtick + 2) -check_zone(knot, zone, 2, 2, 2, "alg roll: post-active") - -zone_update(master, knot, zone, ON_SLAVE) -wait_for_rrsig_count(t, knot, "SOA", 1, algtick + 2) -check_zone(knot, zone, 2, 1, 1, "alg roll: finished") +if not SIGNER_BIND: + _, out, _ = Keymgr.run_check(knot.confile, ZONE, "list") + for line in out.split('\n'): + if len(line) > 0 and line.split()[-1] == "remove=0": # only one key with this property + last_zsk = line.split()[0] + + algtick = 5 + now = int(time.time()) + preactive = now + algtick + publish = preactive + algtick + postactive = publish + algtick + remove = postactive + algtick + + key_ksk4 = signer.key_gen(ZONE, ksk="true", algorithm="ECDSAP256SHA256", created="+0", + pre_active=str(preactive), publish=str(publish), ready=str(publish), active=str(postactive)) + key_zsk2 = knot.key_gen(ZONE, ksk="false", algorithm="ECDSAP256SHA256", created="+0", + pre_active=str(preactive), publish=str(publish), active=str(postactive)) + signer.key_set(ZONE, key_ksk3, post_active=str(postactive), remove=str(remove)) + knot.key_set(ZONE, last_zsk, post_active=str(postactive), remove=str(remove)) + + KSR = KSR + "3" + SKR = SKR + "3" + _, out, _ = Keymgr.run_check(knot.confile, ZONE, "generate-ksr", "+0", str(remove + 1)) + writef(KSR, out) + out = signer.sign_ksr(ZONE, KSR) + writef(SKR, out) + Keymgr.run_check(knot.confile, ZONE, "import-skr", SKR) + knot.ctl("zone-keys-load") + + zone_update(master, knot, zone, ON_SLAVE) + wait_for_rrsig_count(t, knot, "SOA", 2, algtick + 2) + check_zone(knot, zone, 2, 1, 2, "alg roll: pre-active") + + zone_update(master, knot, zone, ON_SLAVE) + wait_for_dnskey_count(t, knot, 4, algtick + 2) + check_zone(knot, zone, 4, 2, 2, "alg roll: published") + + zone_update(master, knot, zone, ON_SLAVE) + wait_for_dnskey_count(t, knot, 2, algtick + 2) + check_zone(knot, zone, 2, 2, 2, "alg roll: post-active") + + zone_update(master, knot, zone, ON_SLAVE) + wait_for_rrsig_count(t, knot, "SOA", 1, algtick + 2) + check_zone(knot, zone, 2, 1, 1, "alg roll: finished") t.end() diff --git a/tests-extra/tools/dnstest/params.py b/tests-extra/tools/dnstest/params.py index 777fda69e3..0a210f8b4f 100644 --- a/tests-extra/tools/dnstest/params.py +++ b/tests-extra/tools/dnstest/params.py @@ -82,6 +82,8 @@ def get_param(env_name, default): bind_ctl = get_binary("KNOT_TEST_BINDC", "rndc") # KNOT_TEST_BIND_CHECKCONF - Bind checkconf binary. bind_checkconf_bin = get_binary("KNOT_TEST_BIND_CHECKCONF", "named-checkconf") +# KNOT_TEST_DNSSEC_KSR - Bind Offline KSK signer. +bind_dnssec_ksr = get_binary("KNOT_TEST_BIND_KSR", "dnssec-ksr") # KNOT_TEST_UNALIAS - Script for ALIAS resolving. unalias_bin = get_binary("KNOT_TEST_UNALIAS", repo_binary("scripts/redis_unalias.py")) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 16fd0bbacd..633e2c64a5 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1143,6 +1143,12 @@ def key_set(self, zone_name, key_id, **new_values): ps = [ 'dnssec-settime', '-K', self.keydir ] check_output(ps + self.key_timer_params(**new_values) + [key_id], stderr=DEVNULL) + def sign_ksr(self, zone_name, ksr_file): + ps = [ params.bind_dnssec_ksr, '-i', 'now', '-e', '+1h', '-k', zone_name, '-l', self.confile, + '-K', self.keydir, '-f', ksr_file, 'sign' ] + out = check_output(ps + [zone_name], stderr=open(os.path.join(self.dir, "dnssec_ksr.err"), mode="a")) + return out.decode('utf-8') + def check_option(self, option): proc = Popen([params.bind_checkconf_bin, "/dev/fd/0"], stdout=PIPE, stderr=PIPE, stdin=PIPE, @@ -1381,7 +1387,7 @@ def start(self, clean=False, fatal=True): for zname in self.zones: z = self.zones[zname] z.dnssec = self.dnssec(z) - if z.dnssec.enable != True: + if z.dnssec.enable != True or z.dnssec.offline_ksk == True: continue # unrelated: generate keys as Bind won't do @@ -1477,6 +1483,10 @@ def key_import_bind(self, zone_name): if m and m.group("name") == zone_name.lower(): dnstest.keys.Keymgr.run_check(self.confile, zone_name, "import-bind", pkey_path) + def sign_ksr(self, zone_name, ksr_file): + _, out, _ = dnstest.keys.Keymgr.run_check(self.confile, zone_name, "sign-ksr", ksr_file) + return out + def _on_str_hex(self, conf, name, value): if value == True: return From e9d57c12f4f7f5e7aadf1c0de1a1dbdfbda7fb31 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 18 Mar 2026 10:06:12 +0100 Subject: [PATCH 393/675] tests: Bind9 in OfflineKSK: detection if available and new enough --- tests-extra/tests/dnssec/offline_ksk/test.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests-extra/tests/dnssec/offline_ksk/test.py b/tests-extra/tests/dnssec/offline_ksk/test.py index 549f51df82..e3a3e7e6c6 100644 --- a/tests-extra/tests/dnssec/offline_ksk/test.py +++ b/tests-extra/tests/dnssec/offline_ksk/test.py @@ -5,10 +5,12 @@ """ import random +from subprocess import check_output, DEVNULL from dnstest.utils import * from dnstest.keys import Keymgr from dnstest.test import Test +from dnstest.params import bind_dnssec_ksr def cripple_skr(skr_in, skr_out): rrsigs_total = 9 @@ -118,7 +120,11 @@ def writef(filename, contents): IXFR = random.choice([True, False]) if ON_SLAVE else False SIGNER_BIND = random.choice([True, False]) -check_log("On-slave signing %s, IXFR enabled %s, Bind9 as signer %s" % (ON_SLAVE, IXFR, SIGNER_BIND)) +DNSSEC_KSR_VER = None if bind_dnssec_ksr is None or bind_dnssec_ksr == "" else check_output([ bind_dnssec_ksr, "-V" ], stderr=DEVNULL).decode('utf-8').split('.')[1] +if DNSSEC_KSR_VER is None or int(DNSSEC_KSR_VER) < 21: + SIGNER_BIND = False + +check_log("On-slave signing %s, IXFR enabled %s, Bind9 as signer %s, dnssec-ksr version %s" % (ON_SLAVE, IXFR, SIGNER_BIND, str(DNSSEC_KSR_VER))) t = Test() From e82de2eba6bd84166d1140d1012ef2956229ec56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Tue, 3 Mar 2026 08:43:21 +0100 Subject: [PATCH 394/675] kxdpgun: tweak --json output It was producing a large []-list of JSONs from the [schema]. But the intention was to use a *stream* of newline-delimited JSON objects, each matching the [schema]. We output that now. [schema]: https://github.com/DNS-OARC/dns-metrics --- src/utils/kxdpgun/main.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/utils/kxdpgun/main.c b/src/utils/kxdpgun/main.c index 459e2bcf51..79dadd9ce7 100644 --- a/src/utils/kxdpgun/main.c +++ b/src/utils/kxdpgun/main.c @@ -1355,10 +1355,6 @@ int main(int argc, char *argv[]) goto err; } - if (JSON_MODE(ctx)) { - jsonw_list(ctx.jw, NULL); // wrap the json in a list, for syntactic correctness - } - thread_ctxs = calloc(ctx.n_threads, sizeof(*thread_ctxs)); threads = calloc(ctx.n_threads, sizeof(*threads)); if (thread_ctxs == NULL || threads == NULL) { @@ -1425,7 +1421,6 @@ int main(int argc, char *argv[]) free(threads); free_global_payloads(); if (JSON_MODE(ctx)) { - jsonw_end(ctx.jw); jsonw_free(&ctx.jw); } return ecode; From 8eca2184b45b51b9d7bab846818b2a490d4c9768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hynek=20=C5=A0aback=C3=BD?= Date: Tue, 3 Mar 2026 15:38:22 +0100 Subject: [PATCH 395/675] kxdpgun + json: edit to comply with JSON lines --- src/contrib/json.c | 14 +++++++++++--- src/utils/kxdpgun/main.c | 2 +- src/utils/kxdpgun/stats.c | 2 +- src/utils/kxdpgun/stats.h | 2 +- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/contrib/json.c b/src/contrib/json.c index 3a4f1cb66f..8133b12577 100644 --- a/src/contrib/json.c +++ b/src/contrib/json.c @@ -13,6 +13,8 @@ #define MAX_DEPTH 16 +#define NO_INDENT NULL + enum { BLOCK_INVALID = 0, BLOCK_OBJECT, @@ -38,9 +40,9 @@ struct jsonw { int top; /*! Newline needed indication. */ bool wrap; -}; -static const char *DEFAULT_INDENT = "\t"; + bool json_lines; +}; static void start_block(jsonw_t *w, int type) { @@ -66,6 +68,9 @@ static struct block *cur_block(jsonw_t *w) /*! Insert new line and indent for the next write. */ static void wrap(jsonw_t *w) { + if (w->indent == NO_INDENT) + return; + if (!w->wrap) { w->wrap = true; return; @@ -130,7 +135,7 @@ jsonw_t *jsonw_new(FILE *out, const char *indent) } w->out = out; - w->indent = indent ? indent : DEFAULT_INDENT; + w->indent = indent; w->top = MAX_DEPTH; return w; @@ -253,4 +258,7 @@ void jsonw_end(jsonw_t *w) (void)fprintf(w->out, "]"); break; } + + if (w->indent == NO_INDENT && w->top == MAX_DEPTH) + fputc('\n', w->out); } diff --git a/src/utils/kxdpgun/main.c b/src/utils/kxdpgun/main.c index 79dadd9ce7..0c0e2f5bda 100644 --- a/src/utils/kxdpgun/main.c +++ b/src/utils/kxdpgun/main.c @@ -1299,7 +1299,7 @@ static bool get_opts(int argc, char *argv[], xdp_gun_ctx_t *ctx) } break; case 'j': - if ((ctx->jw = jsonw_new(stdout, JSON_INDENT)) == NULL) { + if ((ctx->jw = jsonw_new(stdout, NO_INDENT)) == NULL) { ERR2("failed to use JSON"); return false; } diff --git a/src/utils/kxdpgun/stats.c b/src/utils/kxdpgun/stats.c index 75584a12a7..0d5894d2c0 100644 --- a/src/utils/kxdpgun/stats.c +++ b/src/utils/kxdpgun/stats.c @@ -139,8 +139,8 @@ void json_thrd_summary(const xdp_gun_ctx_t *ctx, const kxdpgun_stats_t *st) jsonw_object(ctx->jw, NULL); { - jsonw_str(w, "type", "thread_summary"); jsonw_ulong(w, "runid", ctx->runid); + jsonw_str(w, "type", "thread_summary"); jsonw_ulong(w, "subid", ctx->thread_id); jsonw_ulong(w, "qry_sent", st->qry_sent); jsonw_ulong(w, "ans_recv", st->ans_recv); diff --git a/src/utils/kxdpgun/stats.h b/src/utils/kxdpgun/stats.h index 5da62aa86a..cf2ee6fd8f 100644 --- a/src/utils/kxdpgun/stats.h +++ b/src/utils/kxdpgun/stats.h @@ -16,7 +16,7 @@ #define STATS_SECTION_SEP "--------------------------------------------------------------" -#define JSON_INDENT " " +#define NO_INDENT NULL #define STATS_SCHEMA_VERSION 20240530 #define DURATION_US(st) (((st).until - (st).since) / 1000) From c8130fe13ad056a75c5336d49a95c047e739dea0 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 17 Mar 2026 22:25:52 +0100 Subject: [PATCH 396/675] atomic: remove GCC __atomic support, which isn't used anywhere --- configure.ac | 14 ++++---------- src/contrib/atomic.h | 18 ------------------ tests/contrib/test_atomic.c | 2 +- 3 files changed, 5 insertions(+), 29 deletions(-) diff --git a/configure.ac b/configure.ac index 41e9354914..e28c825c32 100644 --- a/configure.ac +++ b/configure.ac @@ -753,23 +753,17 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[cpuset_t set; CPU AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[cpuset_t* set = cpuset_create(); cpuset_destroy(set);]])], [AC_DEFINE(HAVE_CPUSET_NETBSD, 1, [Define if cpuset_t and cpuset(3) exists.])]) -# Check for a C11 or GCC-style '__atomic' compiler builtin atomic functions. -atomic_type="none" +# Check for C11 compiler builtin atomic functions. AC_LINK_IFELSE( [AC_LANG_PROGRAM([[#if (__STDC_VERSION__ < 201112L) || defined(__STDC_NO_ATOMICS__) #error "No C11 atomics" #endif #include ]], - [[atomic_uint_fast64_t val = 0;]] - [[atomic_fetch_add_explicit(&val, 1, memory_order_relaxed);]])], + [[atomic_uint_fast64_t val = 0; + atomic_fetch_add_explicit(&val, 1, memory_order_relaxed);]])], [AC_DEFINE(HAVE_C11_ATOMIC, 1, [Define to 1 if you have C11 'atomic' functions.]) atomic_type="C11"], - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[#include ]], - [[uint64_t val = 0; __atomic_add_fetch(&val, 1, __ATOMIC_RELAXED);]])], - [AC_DEFINE(HAVE_GCC_ATOMIC, 1, [Define to 1 if you have GCC-style '__atomic' functions.]) - atomic_type="__atomic"] - ) + [atomic_type="none"] ) # Prepare CFLAG_VISIBILITY to be used where needed diff --git a/src/contrib/atomic.h b/src/contrib/atomic.h index 88f0b603c1..d663ce6b2d 100644 --- a/src/contrib/atomic.h +++ b/src/contrib/atomic.h @@ -25,24 +25,6 @@ typedef atomic_size_t knot_atomic_size_t; typedef _Atomic (void *) knot_atomic_ptr_t; typedef atomic_bool knot_atomic_bool; -#elif defined(HAVE_GCC_ATOMIC) /* GCC __atomic */ - #include - #include - #include - - #define ATOMIC_INIT(dst, val) __atomic_store_n(&(dst), (val), __ATOMIC_RELAXED) - #define ATOMIC_DEINIT(dst) - #define ATOMIC_SET(dst, val) __atomic_store_n(&(dst), (val), __ATOMIC_RELAXED) - #define ATOMIC_GET(src) __atomic_load_n(&(src), __ATOMIC_RELAXED) - #define ATOMIC_ADD(dst, val) __atomic_add_fetch(&(dst), (val), __ATOMIC_RELAXED) - #define ATOMIC_SUB(dst, val) __atomic_sub_fetch(&(dst), (val), __ATOMIC_RELAXED) - #define ATOMIC_XCHG(dst, val) __atomic_exchange_n(&(dst), (val), __ATOMIC_RELAXED) - - typedef uint16_t knot_atomic_uint16_t; - typedef uint64_t knot_atomic_uint64_t; - typedef size_t knot_atomic_size_t; - typedef void* knot_atomic_ptr_t; - typedef bool knot_atomic_bool; #else /* Fallback using spinlocks. Much slower. */ #include #include diff --git a/tests/contrib/test_atomic.c b/tests/contrib/test_atomic.c index 74f30fad45..33126c345a 100644 --- a/tests/contrib/test_atomic.c +++ b/tests/contrib/test_atomic.c @@ -11,7 +11,7 @@ #include "knot/server/dthreads.h" #define THREADS 16 -#if defined(HAVE_C11_ATOMIC) || defined(HAVE_GCC_ATOMIC) +#if defined(HAVE_C11_ATOMIC) #define CYCLES1 100000 #define CYCLES2 2000000 #define CYCLES3 100000 From 0f1df4b34e0ab06263ed8f2ec4de5525c8eaff71 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 18 Mar 2026 20:29:18 +0100 Subject: [PATCH 397/675] atomic: add ATOMIC_CMPXCHG() --- src/contrib/atomic.h | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/contrib/atomic.h b/src/contrib/atomic.h index d663ce6b2d..8e4bfa47d9 100644 --- a/src/contrib/atomic.h +++ b/src/contrib/atomic.h @@ -12,13 +12,14 @@ #ifdef HAVE_C11_ATOMIC /* C11 */ #include - #define ATOMIC_INIT(dst, val) atomic_store_explicit(&(dst), (val), memory_order_relaxed) + #define ATOMIC_INIT(dst, val) atomic_store_explicit(&(dst), (val), memory_order_relaxed) #define ATOMIC_DEINIT(dst) - #define ATOMIC_SET(dst, val) atomic_store_explicit(&(dst), (val), memory_order_relaxed) - #define ATOMIC_GET(src) atomic_load_explicit(&(src), memory_order_relaxed) - #define ATOMIC_ADD(dst, val) (void)atomic_fetch_add_explicit(&(dst), (val), memory_order_relaxed) - #define ATOMIC_SUB(dst, val) (void)atomic_fetch_sub_explicit(&(dst), (val), memory_order_relaxed) - #define ATOMIC_XCHG(dst, val) atomic_exchange_explicit(&(dst), (val), memory_order_relaxed) + #define ATOMIC_SET(dst, val) atomic_store_explicit(&(dst), (val), memory_order_relaxed) + #define ATOMIC_GET(src) atomic_load_explicit(&(src), memory_order_relaxed) + #define ATOMIC_ADD(dst, val) (void)atomic_fetch_add_explicit(&(dst), (val), memory_order_relaxed) + #define ATOMIC_SUB(dst, val) (void)atomic_fetch_sub_explicit(&(dst), (val), memory_order_relaxed) + #define ATOMIC_XCHG(dst, val) atomic_exchange_explicit(&(dst), (val), memory_order_relaxed) + #define ATOMIC_CMPXCHG(dst, exp, des) atomic_compare_exchange_weak(&(dst), &(exp), (des)) typedef atomic_uint_fast16_t knot_atomic_uint16_t; typedef atomic_uint_fast64_t knot_atomic_uint64_t; @@ -74,6 +75,20 @@ _z; \ }) +#define ATOMIC_CMPXCHG(dst, exp, des) ({ \ + bool _z; \ + knot_spin_lock((knot_spin_t *)&(dst).lock); \ + if ((dst).value.vol == (exp)) { \ + (dst).value.vol = (des); \ + _z = true; \ + } else { \ + (exp) = (dst).value.vol; \ + _z = false; \ + } \ + knot_spin_unlock((knot_spin_t *)&(dst).lock); \ + _z; \ + }) + #define ATOMIC_T(x) struct { \ knot_spin_t lock; \ union { \ From e2781283b351c8dbbbfaa97665856edb6a1dc09d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 19 Mar 2026 08:59:55 +0100 Subject: [PATCH 398/675] atomic: make ATOMIC_* commands with highest memory order by default Add ATOMIC_*_SOFT alternatives for appropriate cases (statistic counters). --- src/contrib/atomic.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/contrib/atomic.h b/src/contrib/atomic.h index 8e4bfa47d9..346c264714 100644 --- a/src/contrib/atomic.h +++ b/src/contrib/atomic.h @@ -12,13 +12,13 @@ #ifdef HAVE_C11_ATOMIC /* C11 */ #include - #define ATOMIC_INIT(dst, val) atomic_store_explicit(&(dst), (val), memory_order_relaxed) + #define ATOMIC_INIT(dst, val) atomic_store(&(dst), (val)) #define ATOMIC_DEINIT(dst) - #define ATOMIC_SET(dst, val) atomic_store_explicit(&(dst), (val), memory_order_relaxed) - #define ATOMIC_GET(src) atomic_load_explicit(&(src), memory_order_relaxed) - #define ATOMIC_ADD(dst, val) (void)atomic_fetch_add_explicit(&(dst), (val), memory_order_relaxed) - #define ATOMIC_SUB(dst, val) (void)atomic_fetch_sub_explicit(&(dst), (val), memory_order_relaxed) - #define ATOMIC_XCHG(dst, val) atomic_exchange_explicit(&(dst), (val), memory_order_relaxed) + #define ATOMIC_SET(dst, val) atomic_store(&(dst), (val)) + #define ATOMIC_GET(src) atomic_load(&(src)) + #define ATOMIC_ADD(dst, val) (void)atomic_fetch_add(&(dst), (val)) + #define ATOMIC_SUB(dst, val) (void)atomic_fetch_sub(&(dst), (val)) + #define ATOMIC_XCHG(dst, val) atomic_exchange(&(dst), (val)) #define ATOMIC_CMPXCHG(dst, exp, des) atomic_compare_exchange_weak(&(dst), &(exp), (des)) typedef atomic_uint_fast16_t knot_atomic_uint16_t; From 6509a4f46ff3cec713e7558a137554f85d8c6dcd Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 19 Mar 2026 09:07:04 +0100 Subject: [PATCH 399/675] atomic: add ATOMIC_*_SOFT alternatives for appropriate cases (statistic counters) --- src/contrib/atomic.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/contrib/atomic.h b/src/contrib/atomic.h index 346c264714..5011faf6a7 100644 --- a/src/contrib/atomic.h +++ b/src/contrib/atomic.h @@ -21,6 +21,11 @@ #define ATOMIC_XCHG(dst, val) atomic_exchange(&(dst), (val)) #define ATOMIC_CMPXCHG(dst, exp, des) atomic_compare_exchange_weak(&(dst), &(exp), (des)) + #define ATOMIC_SET_SOFT(dst, val) atomic_store_explicit(&(dst), (val), memory_order_relaxed) + #define ATOMIC_GET_SOFT(src) atomic_load_explicit(&(src), memory_order_relaxed) + #define ATOMIC_ADD_SOFT(dst, val) (void)atomic_fetch_add_explicit(&(dst), (val), memory_order_relaxed) + #define ATOMIC_SUB_SOFT(dst, val) (void)atomic_fetch_sub_explicit(&(dst), (val), memory_order_relaxed) + typedef atomic_uint_fast16_t knot_atomic_uint16_t; typedef atomic_uint_fast64_t knot_atomic_uint64_t; typedef atomic_size_t knot_atomic_size_t; @@ -89,6 +94,11 @@ _z; \ }) + #define ATOMIC_SET_SOFT ATOMIC_SET + #define ATOMIC_GET_SOFT ATOMIC_GET + #define ATOMIC_ADD_SOFT ATOMIC_ADD + #define ATOMIC_SUB_SOFT ATOMIC_SUB + #define ATOMIC_T(x) struct { \ knot_spin_t lock; \ union { \ From d8948abf7fb22f734071d3d954df6fa036cd2ba2 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 19 Mar 2026 09:01:20 +0100 Subject: [PATCH 400/675] src: use ATOMIC_*_SOFT() where appropriate --- src/knot/common/stats.c | 8 ++++---- src/knot/modules/cookies/cookies.c | 8 ++++---- src/knot/modules/probe/probe.c | 4 ++-- src/knot/nameserver/query_module.c | 6 +++--- src/knot/server/server.c | 6 +++--- src/knot/server/tcp-handler.c | 4 ++-- src/knot/zone/zone.c | 2 +- src/utils/kxdpgun/main.c | 6 +++--- 8 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/knot/common/stats.c b/src/knot/common/stats.c index 66c9009bda..5af1120dab 100644 --- a/src/knot/common/stats.c +++ b/src/knot/common/stats.c @@ -22,7 +22,7 @@ static uint64_t stats_get_counter(knot_atomic_uint64_t **stats_vals, uint32_t of { uint64_t res = 0; for (unsigned i = 0; i < threads; i++) { - res += ATOMIC_GET(stats_vals[i][offset]); + res += ATOMIC_GET_SOFT(stats_vals[i][offset]); } return res; } @@ -127,9 +127,9 @@ int stats_server(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx) } DUMP_VAL(params, "zone-count", knot_zonedb_size(ctx->server->zone_db)); - DUMP_VAL(params, "zone-update-error", ATOMIC_GET(ctx->server->stats.zone_update_error)); - DUMP_VAL(params, "tcp-io-timeout", ATOMIC_GET(ctx->server->stats.tcp_io_timeout)); - DUMP_VAL(params, "tcp-idle-timeout", ATOMIC_GET(ctx->server->stats.tcp_idle_timeout)); + DUMP_VAL(params, "zone-update-error", ATOMIC_GET_SOFT(ctx->server->stats.zone_update_error)); + DUMP_VAL(params, "tcp-io-timeout", ATOMIC_GET_SOFT(ctx->server->stats.tcp_io_timeout)); + DUMP_VAL(params, "tcp-idle-timeout", ATOMIC_GET_SOFT(ctx->server->stats.tcp_idle_timeout)); return KNOT_EOK; } diff --git a/src/knot/modules/cookies/cookies.c b/src/knot/modules/cookies/cookies.c index a8b0927245..517852afe6 100644 --- a/src/knot/modules/cookies/cookies.c +++ b/src/knot/modules/cookies/cookies.c @@ -64,10 +64,10 @@ static void update_ctr(cookies_ctx_t *ctx) { assert(ctx); - if (ATOMIC_GET(ctx->badcookie_ctr) < ctx->badcookie_slip) { - ATOMIC_ADD(ctx->badcookie_ctr, 1); + if (ATOMIC_GET_SOFT(ctx->badcookie_ctr) < ctx->badcookie_slip) { + ATOMIC_ADD_SOFT(ctx->badcookie_ctr, 1); } else { - ATOMIC_SET(ctx->badcookie_ctr, BADCOOKIE_CTR_INIT); + ATOMIC_SET_SOFT(ctx->badcookie_ctr, BADCOOKIE_CTR_INIT); } } @@ -196,7 +196,7 @@ static knotd_state_t cookies_process(knotd_state_t state, knot_pkt_t *pkt, } return state; - } else if (ATOMIC_GET(ctx->badcookie_ctr) > BADCOOKIE_CTR_INIT) { + } else if (ATOMIC_GET_SOFT(ctx->badcookie_ctr) > BADCOOKIE_CTR_INIT) { // Silently drop the response. update_ctr(ctx); knotd_mod_stats_incr(mod, qdata->params->thread_id, 1, 0, 1); diff --git a/src/knot/modules/probe/probe.c b/src/knot/modules/probe/probe.c index 1b4c4ab436..f2c45ec5f8 100644 --- a/src/knot/modules/probe/probe.c +++ b/src/knot/modules/probe/probe.c @@ -57,11 +57,11 @@ static knotd_state_t export(knotd_state_t state, knot_pkt_t *pkt, if (ctx->min_diff_ns > 0) { struct timespec now = time_now(); uint64_t now_ns = 1000000000 * now.tv_sec + now.tv_nsec; - uint64_t last_ns = ATOMIC_GET(ctx->last_times[idx]); + uint64_t last_ns = ATOMIC_GET_SOFT(ctx->last_times[idx]); if (now_ns - last_ns < ctx->min_diff_ns) { return state; } - ATOMIC_SET(ctx->last_times[idx], now_ns); + ATOMIC_SET_SOFT(ctx->last_times[idx], now_ns); } // Prepare data sources. diff --git a/src/knot/nameserver/query_module.c b/src/knot/nameserver/query_module.c index 5fbff03442..1865168f68 100644 --- a/src/knot/nameserver/query_module.c +++ b/src/knot/nameserver/query_module.c @@ -373,21 +373,21 @@ _public_ void knotd_mod_stats_incr(knotd_mod_t *mod, unsigned thr_id, uint32_t ctr_id, uint32_t idx, uint64_t val) { - STATS_BODY(ATOMIC_ADD) + STATS_BODY(ATOMIC_ADD_SOFT) } _public_ void knotd_mod_stats_decr(knotd_mod_t *mod, unsigned thr_id, uint32_t ctr_id, uint32_t idx, uint64_t val) { - STATS_BODY(ATOMIC_SUB) + STATS_BODY(ATOMIC_SUB_SOFT) } _public_ void knotd_mod_stats_store(knotd_mod_t *mod, unsigned thr_id, uint32_t ctr_id, uint32_t idx, uint64_t val) { - STATS_BODY(ATOMIC_SET) + STATS_BODY(ATOMIC_SET_SOFT) } _public_ diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 296db0cc08..c2eebf0791 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1556,9 +1556,9 @@ int server_reload(server_t *server, reload_t mode) return ret; } - ATOMIC_SET(server->stats.tcp_io_timeout, 0); - ATOMIC_SET(server->stats.tcp_idle_timeout, 0); - ATOMIC_SET(server->stats.zone_update_error, 0); + ATOMIC_SET_SOFT(server->stats.tcp_io_timeout, 0); + ATOMIC_SET_SOFT(server->stats.tcp_idle_timeout, 0); + ATOMIC_SET_SOFT(server->stats.zone_update_error, 0); } conf_update_flag_t upd_flags = CONF_UPD_FNOFREE; diff --git a/src/knot/server/tcp-handler.c b/src/knot/server/tcp-handler.c index 82092bd412..b2fce73b95 100644 --- a/src/knot/server/tcp-handler.c +++ b/src/knot/server/tcp-handler.c @@ -88,7 +88,7 @@ static fdset_sweep_state_t tcp_sweep(fdset_t *set, int idx, void *data) assert(set && fd >= 0); server_t *server = data; - ATOMIC_ADD(server->stats.tcp_idle_timeout, 1); + ATOMIC_ADD_SOFT(server->stats.tcp_idle_timeout, 1); if (log_enabled_debug()) { /* Best-effort, name and shame. */ @@ -114,7 +114,7 @@ static void tcp_log_error(const struct sockaddr_storage *ss, const char *operati return; } - ATOMIC_ADD(server->stats.tcp_io_timeout, 1); + ATOMIC_ADD_SOFT(server->stats.tcp_io_timeout, 1); if (log_enabled_debug()) { char addr_str[SOCKADDR_STRLEN]; diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index ed30877fa7..31819331a6 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -1059,7 +1059,7 @@ time_t zone_bootstrap_next(uint8_t *count) void zone_update_error(conf_t *conf, zone_t *zone) { if (conf != NULL && zone != NULL) { - ATOMIC_ADD(zone->server->stats.zone_update_error, 1); + ATOMIC_ADD_SOFT(zone->server->stats.zone_update_error, 1); if (conf->cache.srv_dbus_event & DBUS_EVENT_ZONE_UPDATED) { dbus_emit_zone_updated(zone->name, false, 0); } diff --git a/src/utils/kxdpgun/main.c b/src/utils/kxdpgun/main.c index 0c0e2f5bda..7a30bad6b5 100644 --- a/src/utils/kxdpgun/main.c +++ b/src/utils/kxdpgun/main.c @@ -80,7 +80,7 @@ static void sigusr_handler(int signo) { assert(signo == SIGUSR1); if (global_stats.collected == 0) { - ATOMIC_ADD(stats_trigger, 1); + ATOMIC_ADD_SOFT(stats_trigger, 1); } } @@ -735,13 +735,13 @@ void *xdp_gun_thread(void *_ctx) if (ctx->thread_id == 0 && ctx->stats_period_ns != 0 && global_stats.collected == 0 && (duration_ns - (periodic_stats.since - local_stats.since)) >= ctx->stats_period_ns) { ATOMIC_SET(stats_switch, STATS_PERIODIC); - ATOMIC_ADD(stats_trigger, 1); + ATOMIC_ADD_SOFT(stats_trigger, 1); } if (xdp_trigger == KXDPGUN_STOP && ctx->duration > duration_us) { ctx->duration = duration_us; } - uint64_t tmp_stats_trigger = ATOMIC_GET(stats_trigger); + uint64_t tmp_stats_trigger = ATOMIC_GET_SOFT(stats_trigger); if (duration_us < ctx->duration && tmp_stats_trigger > stats_triggered) { bool tmp_stats_switch = ATOMIC_GET(stats_switch); stats_triggered = tmp_stats_trigger; From 74badc6c6af8c8538204da9c7caba76b76abb80c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 20 Mar 2026 11:30:58 +0100 Subject: [PATCH 401/675] stats: refactor server statistics --- src/knot/common/stats.c | 33 ++++++++++++++++++++++++++++++--- src/knot/common/stats.h | 28 ++++++++++++++++++++++++++++ src/knot/server/server.c | 8 +++++--- src/knot/server/server.h | 6 ------ src/knot/server/tcp-handler.c | 8 ++++---- src/knot/zone/zone.c | 3 ++- 6 files changed, 69 insertions(+), 17 deletions(-) diff --git a/src/knot/common/stats.c b/src/knot/common/stats.c index 5af1120dab..6cbdeedf66 100644 --- a/src/knot/common/stats.c +++ b/src/knot/common/stats.c @@ -3,6 +3,7 @@ * For more information, see */ +#include #include #include #include @@ -17,6 +18,32 @@ #include "knot/nameserver/query_module.h" #include "libknot/xdp.h" +const char* stats_server_names[] = { + "zone-update-error", + "tcp-io-timeout", + "tcp-idle-timeout", +}; + +#define STATS_SERVER_COUNT (sizeof(stats_server_names) / sizeof(stats_server_names[0])) +static knot_atomic_uint64_t stats_server_ctrs[STATS_SERVER_COUNT]; + +void stats_server_increment(stats_server_counter_t counter) +{ + assert(counter < STATS_SERVER_COUNT); + ATOMIC_ADD_SOFT(stats_server_ctrs[counter], 1); +} + +void stats_server_walk(const stats_server_mode_t mode) +{ + for (int i = 0; i < STATS_SERVER_COUNT; i++) { + switch (mode) { + case STATS_SERVER_INIT: ATOMIC_INIT(stats_server_ctrs[i], 0); break; + case STATS_SERVER_RESET: ATOMIC_SET(stats_server_ctrs[i], 0); break; + case STATS_SERVER_DEINIT: ATOMIC_DEINIT(stats_server_ctrs[i]); break; + } + } +} + static uint64_t stats_get_counter(knot_atomic_uint64_t **stats_vals, uint32_t offset, unsigned threads) { @@ -127,9 +154,9 @@ int stats_server(stats_dump_ctr_f fcn, stats_dump_ctx_t *ctx) } DUMP_VAL(params, "zone-count", knot_zonedb_size(ctx->server->zone_db)); - DUMP_VAL(params, "zone-update-error", ATOMIC_GET_SOFT(ctx->server->stats.zone_update_error)); - DUMP_VAL(params, "tcp-io-timeout", ATOMIC_GET_SOFT(ctx->server->stats.tcp_io_timeout)); - DUMP_VAL(params, "tcp-idle-timeout", ATOMIC_GET_SOFT(ctx->server->stats.tcp_idle_timeout)); + for (int i = 0; i < STATS_SERVER_COUNT; i++) { + DUMP_VAL(params, stats_server_names[i], ATOMIC_GET_SOFT(stats_server_ctrs[i])); + } return KNOT_EOK; } diff --git a/src/knot/common/stats.h b/src/knot/common/stats.h index 757fa8b926..c6ae219620 100644 --- a/src/knot/common/stats.h +++ b/src/knot/common/stats.h @@ -44,6 +44,34 @@ typedef struct { void *ctx; } stats_dump_ctx_t; +/*! + * \brief Server statistic counters. + */ +typedef enum { + stats_server_zone_upd_err, + stats_server_tcp_io_timeout, + stats_server_tcp_idle_timeout, +} stats_server_counter_t; + +/*! + * \brief Operation on server statistic counters. + */ +typedef enum { + STATS_SERVER_INIT, + STATS_SERVER_RESET, + STATS_SERVER_DEINIT, +} stats_server_mode_t; + +/*! + * \brief Perfom given operation on server statistic counters. + */ +void stats_server_walk(const stats_server_mode_t mode); + +/*! + * \brief Increment a server statistic counter. + */ +void stats_server_increment(stats_server_counter_t counter); + /*! * \brief Statistic metric dump callback. */ diff --git a/src/knot/server/server.c b/src/knot/server/server.c index c2eebf0791..4282f3c54f 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1020,6 +1020,8 @@ int server_init(server_t *server, int bg_workers) memset(server, 0, sizeof(server_t)); + stats_server_walk(STATS_SERVER_INIT); + if (evsched_init(&server->sched, server) != KNOT_EOK) { return KNOT_ENOMEM; } @@ -1083,6 +1085,8 @@ void server_deinit(server_t *server) return; } + stats_server_walk(STATS_SERVER_DEINIT); + zone_backups_deinit(&server->backup_ctxs); /* Save zone timers. */ @@ -1556,9 +1560,7 @@ int server_reload(server_t *server, reload_t mode) return ret; } - ATOMIC_SET_SOFT(server->stats.tcp_io_timeout, 0); - ATOMIC_SET_SOFT(server->stats.tcp_idle_timeout, 0); - ATOMIC_SET_SOFT(server->stats.zone_update_error, 0); + stats_server_walk(STATS_SERVER_RESET); } conf_update_flag_t upd_flags = CONF_UPD_FNOFREE; diff --git a/src/knot/server/server.h b/src/knot/server/server.h index a663272130..ae856f7586 100644 --- a/src/knot/server/server.h +++ b/src/knot/server/server.h @@ -87,12 +87,6 @@ typedef struct server { /*! \brief Server state tracking. */ volatile unsigned state; - struct { - knot_atomic_uint64_t tcp_io_timeout; - knot_atomic_uint64_t tcp_idle_timeout; - knot_atomic_uint64_t zone_update_error; - } stats; - knot_zonedb_t *zone_db; knot_lmdb_db_t timerdb; knot_lmdb_db_t journaldb; diff --git a/src/knot/server/tcp-handler.c b/src/knot/server/tcp-handler.c index b2fce73b95..5fc76019d9 100644 --- a/src/knot/server/tcp-handler.c +++ b/src/knot/server/tcp-handler.c @@ -23,6 +23,7 @@ #include "knot/server/tcp-handler.h" #include "knot/common/log.h" #include "knot/common/fdset.h" +#include "knot/common/stats.h" #include "knot/nameserver/process_query.h" #include "knot/query/layer.h" #include "libknot/quic/tls.h" @@ -82,13 +83,12 @@ static void free_tls_ctx(fdset_t *set, int idx) } } -static fdset_sweep_state_t tcp_sweep(fdset_t *set, int idx, void *data) +static fdset_sweep_state_t tcp_sweep(fdset_t *set, int idx, _unused_ void *data) { const int fd = fdset_get_fd(set, idx); assert(set && fd >= 0); - server_t *server = data; - ATOMIC_ADD_SOFT(server->stats.tcp_idle_timeout, 1); + stats_server_increment(stats_server_tcp_idle_timeout); if (log_enabled_debug()) { /* Best-effort, name and shame. */ @@ -114,7 +114,7 @@ static void tcp_log_error(const struct sockaddr_storage *ss, const char *operati return; } - ATOMIC_ADD_SOFT(server->stats.tcp_io_timeout, 1); + stats_server_increment(stats_server_tcp_io_timeout); if (log_enabled_debug()) { char addr_str[SOCKADDR_STRLEN]; diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 31819331a6..f65b477de5 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -11,6 +11,7 @@ #include "knot/common/dbus.h" #include "knot/common/log.h" +#include "knot/common/stats.h" #include "knot/conf/module.h" #include "knot/dnssec/kasp/kasp_db.h" #include "knot/events/replan.h" @@ -1059,7 +1060,7 @@ time_t zone_bootstrap_next(uint8_t *count) void zone_update_error(conf_t *conf, zone_t *zone) { if (conf != NULL && zone != NULL) { - ATOMIC_ADD_SOFT(zone->server->stats.zone_update_error, 1); + stats_server_increment(stats_server_zone_upd_err); if (conf->cache.srv_dbus_event & DBUS_EVENT_ZONE_UPDATED) { dbus_emit_zone_updated(zone->name, false, 0); } From f2380b32a2102980797c5a8decef510550e04b6d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 20 Mar 2026 15:10:45 +0100 Subject: [PATCH 402/675] conf: increase conf_lmdb_readers() return value by 3 A user was hitting the previous limit. --- src/knot/conf/conf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/conf/conf.h b/src/knot/conf/conf.h index 58bcb6f07f..f3a347ebe3 100644 --- a/src/knot/conf/conf.h +++ b/src/knot/conf/conf.h @@ -903,7 +903,7 @@ static inline size_t conf_lmdb_readers( return 126; } return conf_udp_threads(conf) + conf_tcp_threads(conf) + - conf_bg_threads(conf) + conf_xdp_threads(conf) + 2; // Main thread, utils. + conf_bg_threads(conf) + conf_xdp_threads(conf) + 5; // Main thread, utils. } /*! From 1947096e0b88d05b55007d952b8a4c19529065ee Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 20 Oct 2025 12:44:55 +0200 Subject: [PATCH 403/675] distro/deb: introduce sysusers.d and tmpfiles.d https://salsa.debian.org/dns-team/knot-dns/-/commit/ffae9018ae1b879d470e91936d53ca1be2334415 --- distro/common/knot.sysusers | 1 + distro/common/knot.tmpfiles | 3 +++ distro/pkg/deb-nolibxdp/knot.postinst | 17 ++++++++++++++++- distro/pkg/deb-nolibxdp/knot.postrm | 22 +++++++++++++++++++++- distro/pkg/deb/control | 2 +- distro/pkg/deb/knot.postinst | 10 ++++------ distro/pkg/deb/knot.postrm | 2 -- distro/pkg/deb/knot.sysusers | 1 + distro/pkg/deb/knot.tmpfiles | 1 + 9 files changed, 48 insertions(+), 11 deletions(-) create mode 100644 distro/common/knot.sysusers create mode 100644 distro/common/knot.tmpfiles mode change 120000 => 100644 distro/pkg/deb-nolibxdp/knot.postinst mode change 120000 => 100644 distro/pkg/deb-nolibxdp/knot.postrm create mode 120000 distro/pkg/deb/knot.sysusers create mode 120000 distro/pkg/deb/knot.tmpfiles diff --git a/distro/common/knot.sysusers b/distro/common/knot.sysusers new file mode 100644 index 0000000000..d49059d1b2 --- /dev/null +++ b/distro/common/knot.sysusers @@ -0,0 +1 @@ +u knot - - /var/lib/knot diff --git a/distro/common/knot.tmpfiles b/distro/common/knot.tmpfiles new file mode 100644 index 0000000000..3bd468670b --- /dev/null +++ b/distro/common/knot.tmpfiles @@ -0,0 +1,3 @@ +d /var/lib/knot 0770 root knot +d /etc/knot 0750 root knot +f /etc/knot/knot.conf 0640 root knot diff --git a/distro/pkg/deb-nolibxdp/knot.postinst b/distro/pkg/deb-nolibxdp/knot.postinst deleted file mode 120000 index d0b2d37ef6..0000000000 --- a/distro/pkg/deb-nolibxdp/knot.postinst +++ /dev/null @@ -1 +0,0 @@ -../deb/knot.postinst \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/knot.postinst b/distro/pkg/deb-nolibxdp/knot.postinst new file mode 100644 index 0000000000..da747c8263 --- /dev/null +++ b/distro/pkg/deb-nolibxdp/knot.postinst @@ -0,0 +1,16 @@ +#!/bin/sh +set -e + +if [ "$1" = "configure" ]; then + if ! getent passwd knot > /dev/null; then + adduser --quiet --system --group --no-create-home --home /var/lib/knot knot + fi + + dpkg-statoverride --list /var/lib/knot >/dev/null 2>&1 || dpkg-statoverride --update --add root knot 0770 /var/lib/knot + dpkg-statoverride --list /etc/knot/knot.conf >/dev/null 2>&1 || dpkg-statoverride --update --add root knot 0640 /etc/knot/knot.conf + dpkg-statoverride --list /etc/knot >/dev/null 2>&1 || dpkg-statoverride --update --add root knot 0750 /etc/knot +fi + +#DEBHELPER# + +exit 0 diff --git a/distro/pkg/deb-nolibxdp/knot.postrm b/distro/pkg/deb-nolibxdp/knot.postrm deleted file mode 120000 index 62b9c11df2..0000000000 --- a/distro/pkg/deb-nolibxdp/knot.postrm +++ /dev/null @@ -1 +0,0 @@ -../deb/knot.postrm \ No newline at end of file diff --git a/distro/pkg/deb-nolibxdp/knot.postrm b/distro/pkg/deb-nolibxdp/knot.postrm new file mode 100644 index 0000000000..14b3d69b62 --- /dev/null +++ b/distro/pkg/deb-nolibxdp/knot.postrm @@ -0,0 +1,21 @@ +#!/bin/sh +set -e + +if test "$1" = "purge"; then + state_dir=/var/lib/knot + for db_name in "catalog" "confdb" "journal" "keys" "timers"; do + rm -rf $state_dir/$db_name >/dev/null 2>&1 || true + done + rmdir $state_dir >/dev/null 2>&1 || true + [ -e $state_dir/* ] && echo "Notice: there are still data in ${state_dir}, please check." + + dpkg-statoverride --remove /var/lib/knot >/dev/null 2>&1 || true + dpkg-statoverride --remove /etc/knot/knot.conf >/dev/null 2>&1 || true + dpkg-statoverride --remove /etc/knot >/dev/null 2>&1 || true + + deluser --quiet knot >/dev/null 2>&1 || true +fi + +#DEBHELPER# + +exit 0 diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index 07a7eec255..42bd10d082 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -13,6 +13,7 @@ Build-Depends: automake, debhelper (>= 11), dh-python, + dh-sequence-installsysusers, libbpf-dev, libcap-ng-dev, libedit-dev, @@ -43,7 +44,6 @@ Vcs-Git: https://gitlab.nic.cz/knot/knot-dns.git Package: knot Architecture: any Depends: - adduser, libknot16 (= ${binary:Version}), libzscanner5 (= ${binary:Version}), ${misc:Depends}, diff --git a/distro/pkg/deb/knot.postinst b/distro/pkg/deb/knot.postinst index da747c8263..9ed7222619 100644 --- a/distro/pkg/deb/knot.postinst +++ b/distro/pkg/deb/knot.postinst @@ -1,16 +1,14 @@ #!/bin/sh set -e -if [ "$1" = "configure" ]; then - if ! getent passwd knot > /dev/null; then - adduser --quiet --system --group --no-create-home --home /var/lib/knot knot - fi +# Ensure sysusers.d/tmpfiles.d are applied before statoverride runs + +#DEBHELPER# +if [ "$1" = "configure" ]; then dpkg-statoverride --list /var/lib/knot >/dev/null 2>&1 || dpkg-statoverride --update --add root knot 0770 /var/lib/knot dpkg-statoverride --list /etc/knot/knot.conf >/dev/null 2>&1 || dpkg-statoverride --update --add root knot 0640 /etc/knot/knot.conf dpkg-statoverride --list /etc/knot >/dev/null 2>&1 || dpkg-statoverride --update --add root knot 0750 /etc/knot fi -#DEBHELPER# - exit 0 diff --git a/distro/pkg/deb/knot.postrm b/distro/pkg/deb/knot.postrm index 14b3d69b62..c3b5f95842 100644 --- a/distro/pkg/deb/knot.postrm +++ b/distro/pkg/deb/knot.postrm @@ -12,8 +12,6 @@ if test "$1" = "purge"; then dpkg-statoverride --remove /var/lib/knot >/dev/null 2>&1 || true dpkg-statoverride --remove /etc/knot/knot.conf >/dev/null 2>&1 || true dpkg-statoverride --remove /etc/knot >/dev/null 2>&1 || true - - deluser --quiet knot >/dev/null 2>&1 || true fi #DEBHELPER# diff --git a/distro/pkg/deb/knot.sysusers b/distro/pkg/deb/knot.sysusers new file mode 120000 index 0000000000..39969e4ecb --- /dev/null +++ b/distro/pkg/deb/knot.sysusers @@ -0,0 +1 @@ +../../common/knot.sysusers \ No newline at end of file diff --git a/distro/pkg/deb/knot.tmpfiles b/distro/pkg/deb/knot.tmpfiles new file mode 120000 index 0000000000..76b7acf6ce --- /dev/null +++ b/distro/pkg/deb/knot.tmpfiles @@ -0,0 +1 @@ +../../common/knot.tmpfiles \ No newline at end of file From 4d2c7fefd324a2381a25f0d5af3b5c6952da1b98 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 20 Mar 2026 20:06:28 +0100 Subject: [PATCH 404/675] distro: unify files for Arch --- distro/pkg/arch/PKGBUILD | 2 +- distro/pkg/arch/knot.sysusers | 1 - distro/pkg/arch/knot.tmpfiles.arch | 2 -- 3 files changed, 1 insertion(+), 4 deletions(-) delete mode 100644 distro/pkg/arch/knot.sysusers delete mode 100644 distro/pkg/arch/knot.tmpfiles.arch diff --git a/distro/pkg/arch/PKGBUILD b/distro/pkg/arch/PKGBUILD index c2412ae01b..82b17bb7b7 100644 --- a/distro/pkg/arch/PKGBUILD +++ b/distro/pkg/arch/PKGBUILD @@ -62,5 +62,5 @@ package() { mv "${pkgdir}"/etc/knot/{knot.sample.conf,knot.conf} install -Dm644 distro/common/${pkgname}.service -t "${pkgdir}"/usr/lib/systemd/system/ - install -Dm644 distro/pkg/arch/${pkgname}.sysusers "${pkgdir}"/usr/lib/sysusers.d/${pkgname}.conf + install -Dm644 distro/common/${pkgname}.sysusers "${pkgdir}"/usr/lib/sysusers.d/${pkgname}.conf } diff --git a/distro/pkg/arch/knot.sysusers b/distro/pkg/arch/knot.sysusers deleted file mode 100644 index 735db76dbb..0000000000 --- a/distro/pkg/arch/knot.sysusers +++ /dev/null @@ -1 +0,0 @@ -u knot - "Knot DNS Daemon User" diff --git a/distro/pkg/arch/knot.tmpfiles.arch b/distro/pkg/arch/knot.tmpfiles.arch deleted file mode 100644 index b20df6a8e3..0000000000 --- a/distro/pkg/arch/knot.tmpfiles.arch +++ /dev/null @@ -1,2 +0,0 @@ -d /run/knot 0755 knot knot - - -d /var/lib/knot 0700 knot knot - - From 7ba93e2c46be24a2cf0ebfb882ab9d6ab05a936c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 20 Mar 2026 20:25:20 +0100 Subject: [PATCH 405/675] distro/deb: declare in d/clean that doc/modules/ is a directory https://salsa.debian.org/dns-team/knot-dns/-/commit/304614ad4f5e629cfc51b4b364acf764ffeebe20 --- distro/pkg/deb/clean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distro/pkg/deb/clean b/distro/pkg/deb/clean index b2a9f3f85b..f4a0ed5d19 100644 --- a/distro/pkg/deb/clean +++ b/distro/pkg/deb/clean @@ -1,2 +1,2 @@ -doc/modules +doc/modules/ .pybuild/ From cd737e921f0d37e460e35ca79d2efc8114fffb90 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 20 Mar 2026 20:30:01 +0100 Subject: [PATCH 406/675] distro/deb: upgrade to Policy 4.7.3 https://salsa.debian.org/dns-team/knot-dns/-/commit/a70430a37309e584f671e7ec6f0dcefe29ff1a95 https://salsa.debian.org/dns-team/knot-dns/-/commit/eb57ca1bf562826a4f4813d719419f0f23a5ad67 --- distro/pkg/deb/control | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index 42bd10d082..302ead1d96 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -1,6 +1,5 @@ Source: knot Section: net -Priority: optional Maintainer: Knot DNS Uploaders: Daniel Salzman , @@ -36,7 +35,7 @@ Build-Depends: protobuf-compiler, python3-all, softhsm2 , -Standards-Version: 4.7.2 +Standards-Version: 4.7.3 Homepage: https://www.knot-dns.cz/ Vcs-Browser: https://gitlab.nic.cz/knot/knot-dns Vcs-Git: https://gitlab.nic.cz/knot/knot-dns.git From 0448549f3f21be30829024d7dad860a4936de4b6 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 18 Mar 2026 20:21:20 +0100 Subject: [PATCH 407/675] xdp: allow configuring ZERO_COPY by 'xdp.zero-copy' Disabling ZERO_COPY can help if there is a bug in the kernel/driver. --- doc/reference.rst | 14 ++++++++++++++ src/knot/conf/base.c | 4 ++++ src/knot/conf/base.h | 1 + src/knot/conf/schema.c | 1 + src/knot/conf/schema.h | 1 + src/knot/server/server.c | 13 +++++++++++-- tests/knot/test_confio.c | 1 + 7 files changed, 33 insertions(+), 2 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index e872015bbe..0df9a42756 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -742,6 +742,7 @@ Various options related to XDP listening, especially TCP. tcp-idle-reset-timeout: TIME tcp-resend-timeout: TIME route-check: BOOL + zero-copy: BOOL ring-size: INT busypoll-budget: INT busypoll-timeout: INT @@ -927,6 +928,19 @@ Change of this parameter requires restart of the Knot server to take effect. *Default:* ``off`` +.. _xdp_zero-copy: + +zero-copy +--------- + +If enabled and supported by the configured network device, zero-copy mode +can be used. For testing purposes or if there is an issue with the kernel +or device driver, disabling zero-copy may help, at the cost of lower performance. + +Change of this parameter requires restart of the Knot server to take effect. + +*Default:* ``on`` + .. _xdp_ring-size: ring-size diff --git a/src/knot/conf/base.c b/src/knot/conf/base.c index 93635dcdca..9f9847e7c0 100644 --- a/src/knot/conf/base.c +++ b/src/knot/conf/base.c @@ -119,6 +119,7 @@ static void init_cache( static bool running_xdp_tcp; static uint16_t running_xdp_quic; static bool running_route_check; + static bool running_zero_copy; static uint16_t running_ring_size; static uint16_t running_busypoll_budget; static uint16_t running_busypoll_timeout; @@ -140,6 +141,7 @@ static void init_cache( running_xdp_quic = conf_get_int(conf, C_XDP, C_QUIC_PORT); } running_route_check = conf_get_bool(conf, C_XDP, C_ROUTE_CHECK); + running_zero_copy = conf_get_bool(conf, C_XDP, C_ZERO_COPY); running_ring_size = conf_get_int(conf, C_XDP, C_RING_SIZE); running_busypoll_budget = conf_get_int(conf, C_XDP, C_BUSYPOLL_BUDGET); running_busypoll_timeout = conf_get_int(conf, C_XDP, C_BUSYPOLL_TIMEOUT); @@ -227,6 +229,8 @@ static void init_cache( conf->cache.xdp_route_check = running_route_check; + conf->cache.xdp_zero_copy = running_zero_copy; + conf->cache.xdp_ring_size = running_ring_size; conf->cache.xdp_busypoll_budget = running_busypoll_budget; diff --git a/src/knot/conf/base.h b/src/knot/conf/base.h index 1609a55fd3..43b234e194 100644 --- a/src/knot/conf/base.h +++ b/src/knot/conf/base.h @@ -166,6 +166,7 @@ typedef struct { bool xdp_udp; bool xdp_tcp; bool xdp_route_check; + bool xdp_zero_copy; bool srv_tcp_reuseport; bool srv_socket_affinity; bool srv_ecs; diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 914cf0fad0..bf599c558d 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -270,6 +270,7 @@ static const yp_item_t desc_xdp[] = { { C_TCP_IDLE_RESET, YP_TINT, YP_VINT = { 1, INT32_MAX, 20, YP_STIME } }, { C_TCP_RESEND, YP_TINT, YP_VINT = { 1, INT32_MAX, 5, YP_STIME } }, { C_ROUTE_CHECK, YP_TBOOL, YP_VNONE }, + { C_ZERO_COPY, YP_TBOOL, YP_VBOOL = { true } }, { C_RING_SIZE, YP_TINT, YP_VINT = { 4, 32768, 2048 } }, { C_BUSYPOLL_BUDGET, YP_TINT, YP_VINT = { 0, UINT16_MAX, 0 } }, { C_BUSYPOLL_TIMEOUT, YP_TINT, YP_VINT = { 1, UINT16_MAX, 20 } }, diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 8d5d57da98..385142970b 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -186,6 +186,7 @@ #define C_VERSION "\x07""version" #define C_VIA "\x03""via" #define C_XDP "\x03""xdp" +#define C_ZERO_COPY "\x09""zero-copy" #define C_ZONE "\x04""zone" #define C_ZONEFILE_LOAD "\x0D""zonefile-load" #define C_ZONEFILE_SKIP "\x0D""zonefile-skip" diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 4282f3c54f..944d47bc4a 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -329,8 +329,10 @@ static iface_t *server_init_xdp_iface(struct sockaddr_storage *addr, bool route_ } knot_xdp_mode_t mode = knot_eth_xdp_mode(if_nametoindex(iface.name)); - log_info("%s, queues %d, %s mode%s", msg, iface.queues, - (mode == KNOT_XDP_MODE_FULL ? "native" : "emulated"), + bool native = (mode == KNOT_XDP_MODE_FULL); + log_info("%s, queues %d, %s%s mode%s", msg, iface.queues, + (native ? "native" : "emulated"), + (native && xdp_config->force_copy ? "/copy" : ""), route_check ? ", route check" : ""); } @@ -765,6 +767,7 @@ static int configure_sockets(conf_t *conf, server_t *s) .ring_size = conf->cache.xdp_ring_size, .busy_poll_budget = conf->cache.xdp_busypoll_budget, .busy_poll_timeout = conf->cache.xdp_busypoll_timeout, + .force_copy = !conf->cache.xdp_zero_copy, }; unsigned thread_id = s->handlers[IO_UDP].handler.unit->size + s->handlers[IO_TCP].handler.unit->size; @@ -1432,6 +1435,7 @@ static void warn_server_reconfigure(conf_t *conf, server_t *server) static bool warn_xdp_tcp = true; static bool warn_xdp_quic = true; static bool warn_route_check = true; + static bool warn_zero_copy = true; static bool warn_ring_size = true; static bool warn_busypoll_budget = true; static bool warn_busypoll_timeout = true; @@ -1493,6 +1497,11 @@ static void warn_server_reconfigure(conf_t *conf, server_t *server) warn_route_check = false; } + if (warn_zero_copy && conf->cache.xdp_zero_copy != conf_get_bool(conf, C_XDP, C_ZERO_COPY)) { + log_warning(msg, &C_ZERO_COPY[1]); + warn_zero_copy = false; + } + if (warn_ring_size && conf->cache.xdp_ring_size != conf_get_int(conf, C_XDP, C_RING_SIZE)) { log_warning(msg, &C_RING_SIZE[1]); warn_ring_size = false; diff --git a/tests/knot/test_confio.c b/tests/knot/test_confio.c index 0bca700e05..b11b20f2d2 100644 --- a/tests/knot/test_confio.c +++ b/tests/knot/test_confio.c @@ -995,6 +995,7 @@ static const yp_item_t desc_xdp[] = { { C_TCP_IDLE_RESET, YP_TINT, YP_VNONE }, { C_TCP_RESEND, YP_TINT, YP_VNONE }, { C_ROUTE_CHECK, YP_TBOOL, YP_VNONE }, + { C_ZERO_COPY, YP_TBOOL, YP_VNONE }, { C_RING_SIZE, YP_TINT, YP_VNONE }, { C_BUSYPOLL_BUDGET, YP_TINT, YP_VNONE }, { C_BUSYPOLL_TIMEOUT, YP_TINT, YP_VNONE }, From 9bdaa80bba1a69a7b12f6c34984ebabe2521e348 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 23 Mar 2026 08:25:57 +0100 Subject: [PATCH 408/675] kxdpgun: add /copy to XDP mode if forced --- src/utils/kxdpgun/stats.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/utils/kxdpgun/stats.c b/src/utils/kxdpgun/stats.c index 0d5894d2c0..158beb3f3f 100644 --- a/src/utils/kxdpgun/stats.c +++ b/src/utils/kxdpgun/stats.c @@ -50,12 +50,16 @@ void collect_periodic_stats(kxdpgun_stats_t *into, const kxdpgun_stats_t *what) void plain_stats_header(const xdp_gun_ctx_t *ctx) { - INFO2("using interface %s, XDP threads %u, IPv%c/%s%s%s, %s mode", ctx->dev, ctx->n_threads, + knot_xdp_mode_t mode = knot_eth_xdp_mode(if_nametoindex(ctx->dev)); + bool native = (mode == KNOT_XDP_MODE_FULL); + INFO2("using interface %s, XDP threads %u, IPv%c/%s%s%s, %s%s mode", + ctx->dev, ctx->n_threads, (ctx->ipv6 ? '6' : '4'), (ctx->tcp ? "TCP" : ctx->quic ? "QUIC" : "UDP"), (ctx->sending_mode[0] != '\0' ? " mode " : ""), (ctx->sending_mode[0] != '\0' ? ctx->sending_mode : ""), - (knot_eth_xdp_mode(if_nametoindex(ctx->dev)) == KNOT_XDP_MODE_FULL ? "native" : "emulated")); + (native ? "native" : "emulated"), + (native && ctx->xdp_config.force_copy ? "/copy" : "")); puts(STATS_SECTION_SEP); } From 38f66a56667e2c275612c376ada96fba89b63cac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hynek=20=C5=A0aback=C3=BD?= Date: Wed, 25 Mar 2026 12:37:24 +0100 Subject: [PATCH 409/675] kxdpgun: add reply link rate to stats output --- src/utils/kxdpgun/main.c | 1 + src/utils/kxdpgun/stats.c | 18 ++++++++++++++---- src/utils/kxdpgun/stats.h | 3 +++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/utils/kxdpgun/main.c b/src/utils/kxdpgun/main.c index 7a30bad6b5..a287bfd6ab 100644 --- a/src/utils/kxdpgun/main.c +++ b/src/utils/kxdpgun/main.c @@ -717,6 +717,7 @@ void *xdp_gun_thread(void *_ctx) } } periodic_stats.wire_recv += wire; + periodic_stats.pkts_recv += recvd; knot_xdp_recv_finish(xsk, pkts, recvd); pfd.revents = 0; } diff --git a/src/utils/kxdpgun/stats.c b/src/utils/kxdpgun/stats.c index 158beb3f3f..448bdc0d6e 100644 --- a/src/utils/kxdpgun/stats.c +++ b/src/utils/kxdpgun/stats.c @@ -42,6 +42,7 @@ void collect_periodic_stats(kxdpgun_stats_t *into, const kxdpgun_stats_t *what) into->size_recv += what->size_recv; into->wire_recv += what->wire_recv; into->lost += what->lost; + into->pkts_recv += what->pkts_recv; into->errors += what->errors; for (int i = 0; i < RCODE_MAX; i++) { into->rcodes_recv[i] += what->rcodes_recv[i]; @@ -173,6 +174,11 @@ static void format_with_separators(uint64_t num, char output[static 64]) output[i] = '\0'; } +static inline uint64_t calculate_line_rate(const kxdpgun_stats_t *st) +{ + return (st->wire_recv + (st->pkts_recv * ETH_L1_OVERHEAD)) * 8; +} + void plain_stats(const xdp_gun_ctx_t *ctx, kxdpgun_stats_t *st, stats_type_t stt) { printf("%s metrics:\n", (stt == STATS_SUM) ? "cumulative" : "periodic"); @@ -210,10 +216,14 @@ void plain_stats(const xdp_gun_ctx_t *ctx, kxdpgun_stats_t *st, stats_type_t stt printf("total reset: %"PRIu64" (%s pps) (%f %%)\n", st->rst_recv, pretty_print_pps, pct(st->rst_recv)); } - printf("average DNS reply size: %"PRIu64" B\n", - st->ans_recv > 0 ? st->size_recv / st->ans_recv : 0); - printf("average Ethernet reply rate: %"PRIu64" bps (%.2f Mbps)\n", - ps(st->wire_recv * 8), ps((float)st->wire_recv * 8 / (1000 * 1000))); + uint64_t average_dns_size = st->ans_recv > 0 ? st->size_recv / st->ans_recv : 0; + printf("average DNS reply size: %"PRIu64" B\n", average_dns_size); + uint64_t l2_throughput = ps(st->wire_recv * 8); + printf("average L2 throughput: %"PRIu64" bps (%.2f Mbps)\n", + l2_throughput, (float)l2_throughput / (1000 * 1000)); + uint64_t l1_throughput = ps(calculate_line_rate(st)); + printf("average L1 throughput: %"PRIu64" bps (%.2f Mbps)\n", + l1_throughput, (float)l1_throughput / (1000 * 1000)); for (int i = 0; i < RCODE_MAX; i++) { if (st->rcodes_recv[i] > 0) { diff --git a/src/utils/kxdpgun/stats.h b/src/utils/kxdpgun/stats.h index cf2ee6fd8f..43b5e41de3 100644 --- a/src/utils/kxdpgun/stats.h +++ b/src/utils/kxdpgun/stats.h @@ -19,6 +19,8 @@ #define NO_INDENT NULL #define STATS_SCHEMA_VERSION 20240530 +#define ETH_L1_OVERHEAD 20 + #define DURATION_US(st) (((st).until - (st).since) / 1000) #define DURATION_NS(st) ((st).until - (st).since) @@ -42,6 +44,7 @@ typedef struct { uint64_t wire_recv; uint64_t errors; uint64_t lost; + uint64_t pkts_recv; uint64_t rcodes_recv[RCODE_MAX]; } kxdpgun_stats_t; From 66048a10b019e83aed1be7466379cd9644bc6092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hynek=20=C5=A0aback=C3=BD?= Date: Wed, 25 Mar 2026 14:17:32 +0100 Subject: [PATCH 410/675] kxdpgun: edit stats to print throughput in SI format --- src/utils/kxdpgun/stats.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/utils/kxdpgun/stats.c b/src/utils/kxdpgun/stats.c index 448bdc0d6e..d20c680830 100644 --- a/src/utils/kxdpgun/stats.c +++ b/src/utils/kxdpgun/stats.c @@ -174,6 +174,17 @@ static void format_with_separators(uint64_t num, char output[static 64]) output[i] = '\0'; } +static void si_transform(float number, char *out, size_t out_size) +{ + static const char si[] = " KMGT"; + unsigned i = 0; + while (number >= 1000 && i < sizeof(si)) { + number /= 1000; + i++; + } + (void)snprintf(out, out_size, (i == 0) ? "%.2f " : "%.2f %c", number, si[i]); +} + static inline uint64_t calculate_line_rate(const kxdpgun_stats_t *st) { return (st->wire_recv + (st->pkts_recv * ETH_L1_OVERHEAD)) * 8; @@ -218,12 +229,15 @@ void plain_stats(const xdp_gun_ctx_t *ctx, kxdpgun_stats_t *st, stats_type_t stt } uint64_t average_dns_size = st->ans_recv > 0 ? st->size_recv / st->ans_recv : 0; printf("average DNS reply size: %"PRIu64" B\n", average_dns_size); + char si_value[9]; uint64_t l2_throughput = ps(st->wire_recv * 8); - printf("average L2 throughput: %"PRIu64" bps (%.2f Mbps)\n", - l2_throughput, (float)l2_throughput / (1000 * 1000)); + si_transform((float)l2_throughput, si_value, sizeof(si_value)); + printf("average L2 throughput: %"PRIu64" bps (%sbps)\n", + l2_throughput, si_value); uint64_t l1_throughput = ps(calculate_line_rate(st)); - printf("average L1 throughput: %"PRIu64" bps (%.2f Mbps)\n", - l1_throughput, (float)l1_throughput / (1000 * 1000)); + si_transform((float)l1_throughput, si_value, sizeof(si_value)); + printf("average L1 throughput: %"PRIu64" bps (%sbps)\n", + l1_throughput, si_value); for (int i = 0; i < RCODE_MAX; i++) { if (st->rcodes_recv[i] > 0) { From 8abcd9558e8fb063e53bfb921dab181fd30736fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Thu, 26 Mar 2026 10:12:35 +0100 Subject: [PATCH 411/675] redis: fix arity check at 'KNOT_BIN.AOF.DIFF' --- src/redis/type_diff.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/redis/type_diff.h b/src/redis/type_diff.h index 7c2d4323c6..2b406e5ea5 100644 --- a/src/redis/type_diff.h +++ b/src/redis/type_diff.h @@ -105,7 +105,7 @@ static void diff_free(void *value) static int diff_aof_rewrite(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { - if (argc != 7) { + if (argc != 8) { return RedisModule_WrongArity(ctx); } From 709dd964ffc210cfde75225b188f8e3d4e457d0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Thu, 26 Mar 2026 10:31:26 +0100 Subject: [PATCH 412/675] redis: fix use-after-free pointer at 'diff_aof_rewrite' --- src/redis/type_diff.h | 20 ++++++++++++++++---- src/redis/type_rrset.h | 7 +++++-- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/redis/type_diff.h b/src/redis/type_diff.h index 2b406e5ea5..706097da10 100644 --- a/src/redis/type_diff.h +++ b/src/redis/type_diff.h @@ -128,12 +128,18 @@ static int diff_aof_rewrite(RedisModuleCtx *ctx, RedisModuleString **argv, int a diff->add_rrs.count = add_rrs_count_val; size_t add_rrs_len = 0; - diff->add_rrs.rdata = (knot_rdata_t *)RedisModule_StringPtrLen(argv[3], &add_rrs_len); + const char *rdataset_str = RedisModule_StringPtrLen(argv[3], &add_rrs_len); if (add_rrs_len > UINT32_MAX) { RedisModule_CloseKey(diff_key); return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } else if (add_rrs_len != 0) { + diff->add_rrs.rdata = RedisModule_Alloc(add_rrs_len); + diff->add_rrs.size = add_rrs_len; + memcpy(diff->add_rrs.rdata, rdataset_str, add_rrs_len); + } else { + diff->add_rrs.rdata = NULL; + diff->add_rrs.size = 0; } - diff->add_rrs.size = add_rrs_len; long long rem_rrs_count_val = 0; ret = RedisModule_StringToLongLong(argv[4], &rem_rrs_count_val); @@ -147,12 +153,18 @@ static int diff_aof_rewrite(RedisModuleCtx *ctx, RedisModuleString **argv, int a diff->rem_rrs.count = rem_rrs_count_val; size_t rem_rrs_len = 0; - diff->rem_rrs.rdata = (knot_rdata_t *)RedisModule_StringPtrLen(argv[5], &rem_rrs_len); + rdataset_str = RedisModule_StringPtrLen(argv[5], &rem_rrs_len); if (rem_rrs_len > UINT32_MAX) { RedisModule_CloseKey(diff_key); return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } else if (rem_rrs_len != 0) { + diff->rem_rrs.rdata = RedisModule_Alloc(rem_rrs_len); + diff->rem_rrs.size = rem_rrs_len; + memcpy(diff->rem_rrs.rdata, rdataset_str, rem_rrs_len); + } else { + diff->rem_rrs.rdata = NULL; + diff->rem_rrs.size = 0; } - diff->rem_rrs.size = rem_rrs_len; long long ttl_val = 0; ret = RedisModule_StringToLongLong(argv[6], &ttl_val); diff --git a/src/redis/type_rrset.h b/src/redis/type_rrset.h index 434e0d8b79..80e362a75f 100644 --- a/src/redis/type_rrset.h +++ b/src/redis/type_rrset.h @@ -105,9 +105,12 @@ static int rrset_aof_rewrite(RedisModuleCtx *ctx, RedisModuleString **argv, int } rrset->rrs.count = count_val; - size_t rdataset_strlen; + size_t rdataset_strlen = 0; const char *rdataset_str = RedisModule_StringPtrLen(argv[4], &rdataset_strlen); - if (rdataset_strlen != 0) { + if (rdataset_strlen > UINT32_MAX) { + RedisModule_CloseKey(rrset_key); + return RedisModule_ReplyWithError(ctx, RDB_EMALF); + } else if (rdataset_strlen != 0) { rrset->rrs.rdata = RedisModule_Alloc(rdataset_strlen); rrset->rrs.size = rdataset_strlen; memcpy(rrset->rrs.rdata, rdataset_str, rdataset_strlen); From 58b2ae5bd3b2c802a2437b2b0f3dc849278bd94c Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 26 Mar 2026 15:25:53 +0100 Subject: [PATCH 413/675] refresh: warn when all primaries are outdated --- src/knot/events/handlers/refresh.c | 4 ++++ src/knot/zone/zone.c | 15 +++++++++++---- src/knot/zone/zone.h | 4 ++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 3e78e7b325..392ab34c9c 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -408,6 +408,7 @@ static int axfr_finalize(struct refresh_data *data) master_serial, dnssec_enable || data->reverse_or_include, bootstrap); data->fallback->remote = false; + data->fallback->was_refresh = true; zone_set_last_master(data->zone, (const struct sockaddr_storage *)data->remote); return KNOT_EOK; @@ -697,6 +698,7 @@ static int ixfr_finalize(struct refresh_data *data) if (old_serial != zone_contents_serial(data->zone->contents)) { data->fallback->remote = false; + data->fallback->was_refresh = true; zone_set_last_master(data->zone, (const struct sockaddr_storage *)data->remote); } @@ -1149,11 +1151,13 @@ static int soa_query_consume(knot_layer_t *layer, knot_pkt_t *pkt) REFRESH_LOG_PROTO(LOG_INFO, data, "remote serial %u, zone is up-to-date%s", remote_serial, expires_in); + data->fallback->was_uptodate = true; return KNOT_STATE_DONE; } else { finalize_timers_noexpire(data); REFRESH_LOG_PROTO(LOG_INFO, data, "remote serial %u, remote is outdated", remote_serial); + data->fallback->was_outdated = true; return KNOT_STATE_DONE; } } diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index f65b477de5..48c497190f 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -846,6 +846,9 @@ int zone_master_try(conf_t *conf, zone_t *zone, zone_master_cb callback, }; ret = try_remote(conf, zone, callback, callback_data, err_str, preferred_id, &preferred, &fallback, "notifier "); + if (ret == KNOT_EOK && !fallback.was_refresh) { + log_zone_warning(zone->name, "NOTIFYing master is %s", fallback.was_outdated ? "outdated" : "up-to-date"); + } if ((ret == KNOT_EOK && !preferred_2x) || !fallback.remote) { return ret; // Success or local error. } @@ -853,10 +856,10 @@ int zone_master_try(conf_t *conf, zone_t *zone, zone_master_cb callback, /* Try the last server. */ + zone_master_fallback_t fallback = { + true, true, true, pin_tolerance + }; if (last_idx >= 0 && last_idx != preferred_idx) { - zone_master_fallback_t fallback = { - true, true, true, pin_tolerance - }; ret = try_remote(conf, zone, callback, callback_data, err_str, last_id, &last, &fallback, "pinned "); if (!fallback.remote) { @@ -868,7 +871,7 @@ int zone_master_try(conf_t *conf, zone_t *zone, zone_master_cb callback, conf_val_reset(&masters); conf_mix_iter_init(conf, &masters, &iter); - zone_master_fallback_t fallback = { true, true, false, pin_tolerance }; + fallback.trying_last = false; for (idx = 0; iter.id->code == KNOT_EOK && fallback.remote; idx++) { if (idx != last_idx && idx != preferred_idx) { fallback.address = true; @@ -882,6 +885,10 @@ int zone_master_try(conf_t *conf, zone_t *zone, zone_master_cb callback, conf_mix_iter_next(&iter); } + if (fallback.was_outdated && (!fallback.was_refresh && !fallback.was_uptodate)) { + log_zone_warning(zone->name, "all masters are outdated"); + } + return ret == KNOT_EOK ? KNOT_EOK : KNOT_ENOMASTER; } diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 928ca373ad..1e1947f879 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -295,6 +295,10 @@ typedef struct { bool remote; //!< Fallback to next remote server is required. bool trying_last; //!< This master try is for the same server as last time. uint32_t pin_tol; //!< Configured master pin tolerance (0 for no pin). + + bool was_refresh; //!< During the refresh event, some successful refresh took place. + bool was_uptodate; //!< Some of the attempted primaries was up-to-date. + bool was_outdated; //!< Some of the attempted primaries was outdated. } zone_master_fallback_t; typedef int (*zone_master_cb)(conf_t *conf, zone_t *zone, const conf_remote_t *remote, From ee336e373bcef08b48f2c93db19129f9f6624a0c Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 26 Mar 2026 16:45:03 +0100 Subject: [PATCH 414/675] zone/load/difference-no-serial: enforce serial policy already upon initial zonefile load --- src/knot/events/handlers/load.c | 28 ++++++++++++++---------- tests-extra/tests/zone/difse/test.py | 4 ++++ tests-extra/tests/zone/difse2all/test.py | 1 + 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 1b1c152525..f71c8be888 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -235,21 +235,24 @@ int event_load(conf_t *conf, zone_t *zone) } // If configured and possible, fix the SOA serial of zonefile. + uint32_t serial = zone->zonefile.serial; zone_contents_t *relevant = (zone->contents != NULL ? zone->contents : journal_conts); - if (zf_conts != NULL && zf_from == ZONEFILE_LOAD_DIFSE && relevant != NULL) { - uint32_t serial = zone_contents_serial(relevant); - uint32_t set = serial_next(serial, conf, zone->name, SERIAL_POLICY_AUTO, 1); - zone_contents_set_soa_serial(zf_conts, set); - log_zone_info(zone->name, "%s loaded%s%.0u, serial updated %u -> %u", - zone_src, (db_enabled ? ", instance " : ""), - db_instance, zone->zonefile.serial, set); - zone->zonefile.serial = set; - } else { - log_zone_info(zone->name, "%s loaded%s%.0u, serial %u", - zone_src, (db_enabled ? ", instance " : ""), - db_instance, zone->zonefile.serial); + if (zf_conts != NULL && zf_from == ZONEFILE_LOAD_DIFSE) { + serial = zone_contents_serial(relevant != NULL ? relevant : zf_conts); + uint32_t set = serial_next(serial, conf, zone->name, SERIAL_POLICY_AUTO, relevant != NULL ? 1 : 0); + if (set != serial) { + zone_contents_set_soa_serial(zf_conts, set); + zone->zonefile.serial = set; + } } + log_zone_info(zone->name, "%s loaded%s%.0u, serial %s%.0u%s%u", + zone_src, (db_enabled ? ", instance " : ""), db_instance, + (serial != zone->zonefile.serial ? "updated " : ""), + (serial != zone->zonefile.serial ? serial : 0), + (serial != zone->zonefile.serial ? " -> " : ""), + zone->zonefile.serial); + // If configured and appliable to zonefile, load journal changes. if (load_from != JOURNAL_CONTENT_NONE) { ret = zone_load_journal(conf, zone, zf_conts); @@ -436,6 +439,7 @@ int event_load(conf_t *conf, zone_t *zone) // If the change is only automatically incremented SOA serial, make it no change. if (zf_from == ZONEFILE_LOAD_DIFSE && (up.flags & (UPDATE_INCREMENTAL | UPDATE_HYBRID)) && + serial_next(zone->zonefile.serial, conf, zone->name, SERIAL_POLICY_AUTO, 0) != zone_contents_serial(up.new_cont) && (ret = zone_update_differs_just_serial(&up, update_zonemd)) == KNOT_EOK) { changeset_t *cpy; ret = zone_update_to_changeset(&up, &cpy); diff --git a/tests-extra/tests/zone/difse/test.py b/tests-extra/tests/zone/difse/test.py index 2f546341a7..b6262edf5c 100644 --- a/tests-extra/tests/zone/difse/test.py +++ b/tests-extra/tests/zone/difse/test.py @@ -9,6 +9,7 @@ import dnstest.params from subprocess import PIPE, Popen import random +import time def journal_changesets(server, zone): zij = 0 @@ -44,11 +45,14 @@ def check_journal(server, zone, expect_zij, expect_chs): knot.conf_zone(zone).zonefile_sync = "-1" knot.conf_zone(zone).journal_content = "all" knot.conf_zone(zone).zonefile_load = "difference-no-serial" +knot.conf_zone(zone).serial_policy = "unixtime" knot.update_zonefile(zone, version=start_version) t.start() serial = knot.zone_wait(zone) +if serial < time.time() - 20 or serial > time.time(): + set_err("Not adjusted initial loaded serial to policy.") check_journal(knot, zone[0], 1, 0) knot.update_zonefile(zone, version=start_version+1) diff --git a/tests-extra/tests/zone/difse2all/test.py b/tests-extra/tests/zone/difse2all/test.py index 052c7c45e7..7452ff949c 100644 --- a/tests-extra/tests/zone/difse2all/test.py +++ b/tests-extra/tests/zone/difse2all/test.py @@ -28,6 +28,7 @@ knot.conf_zone(zone).journal_content = "all" knot.conf_zone(zone).zonefile_load = "difference-no-serial" +knot.conf_zone(zone).serial_policy = "unixtime" if purge_beforehand: knot.ctl("zone-purge -f +expire example.") From 9091be99f5549781df51a66782040971fb2c21c0 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sat, 28 Mar 2026 07:07:00 +0100 Subject: [PATCH 415/675] fixup but think again --- src/knot/events/handlers/load.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index f71c8be888..4b4d1fa9bd 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -439,7 +439,7 @@ int event_load(conf_t *conf, zone_t *zone) // If the change is only automatically incremented SOA serial, make it no change. if (zf_from == ZONEFILE_LOAD_DIFSE && (up.flags & (UPDATE_INCREMENTAL | UPDATE_HYBRID)) && - serial_next(zone->zonefile.serial, conf, zone->name, SERIAL_POLICY_AUTO, 0) != zone_contents_serial(up.new_cont) && + serial_next(zone_update_from_serial(&up), conf, zone->name, SERIAL_POLICY_AUTO, 0) != zone_contents_serial(up.new_cont) && (ret = zone_update_differs_just_serial(&up, update_zonemd)) == KNOT_EOK) { changeset_t *cpy; ret = zone_update_to_changeset(&up, &cpy); From 7b0e9ae48886f75e36d8693adb62ee6f9bd243e4 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 29 Mar 2026 20:43:19 +0200 Subject: [PATCH 416/675] libngtcp2: update embedded library to v1.22.0 --- src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c | 116 +++-- src/contrib/libngtcp2/ngtcp2/crypto/shared.c | 51 ++- src/contrib/libngtcp2/ngtcp2/crypto/shared.h | 20 - .../libngtcp2/ngtcp2/lib/ngtcp2_acktr.h | 8 +- .../libngtcp2/ngtcp2/lib/ngtcp2_addr.h | 8 +- .../libngtcp2/ngtcp2/lib/ngtcp2_balloc.c | 12 +- .../libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c | 5 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c | 29 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.h | 34 +- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.c | 348 ++++++++++----- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.h | 60 +-- .../libngtcp2/ngtcp2/lib/ngtcp2_conv.c | 10 +- .../libngtcp2/ngtcp2/lib/ngtcp2_crypto.h | 4 +- .../libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c | 17 +- .../libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.h | 15 +- .../libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c | 42 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h | 2 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_net.h | 8 +- .../libngtcp2/ngtcp2/lib/ngtcp2_objalloc.h | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c | 60 ++- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h | 39 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.c | 19 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.h | 24 +- .../libngtcp2/ngtcp2/lib/ngtcp2_qlog.c | 29 +- .../libngtcp2/ngtcp2/lib/ngtcp2_qlog.h | 2 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h | 22 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c | 48 +-- .../libngtcp2/ngtcp2/lib/ngtcp2_strm.h | 28 +- .../ngtcp2/lib/ngtcp2_transport_params.c | 9 +- .../ngtcp2/lib/ngtcp2_transport_params.h | 14 +- .../ngtcp2/lib/ngtcp2_window_filter.c | 2 +- src/contrib/libngtcp2/ngtcp2/ngtcp2.h | 399 +++++++++++++++--- src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h | 46 +- src/contrib/libngtcp2/ngtcp2/version.h | 4 +- 40 files changed, 1041 insertions(+), 521 deletions(-) diff --git a/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c b/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c index 23f04f0112..cf7e6ca893 100644 --- a/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c +++ b/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c @@ -220,14 +220,15 @@ int ngtcp2_crypto_aead_ctx_encrypt_init(ngtcp2_crypto_aead_ctx *aead_ctx, gnutls_cipher_algorithm_t cipher = (gnutls_cipher_algorithm_t)(intptr_t)aead->native_handle; gnutls_aead_cipher_hd_t hd; - gnutls_datum_t _key; (void)noncelen; - _key.data = (void *)key; - _key.size = (unsigned int)ngtcp2_crypto_aead_keylen(aead); - - if (gnutls_aead_cipher_init(&hd, cipher, &_key) != 0) { + if (gnutls_aead_cipher_init( + &hd, cipher, + &(gnutls_datum_t){ + .data = (uint8_t *)key, + .size = (unsigned int)ngtcp2_crypto_aead_keylen(aead), + }) != 0) { return -1; } @@ -242,14 +243,15 @@ int ngtcp2_crypto_aead_ctx_decrypt_init(ngtcp2_crypto_aead_ctx *aead_ctx, gnutls_cipher_algorithm_t cipher = (gnutls_cipher_algorithm_t)(intptr_t)aead->native_handle; gnutls_aead_cipher_hd_t hd; - gnutls_datum_t _key; (void)noncelen; - _key.data = (void *)key; - _key.size = (unsigned int)ngtcp2_crypto_aead_keylen(aead); - - if (gnutls_aead_cipher_init(&hd, cipher, &_key) != 0) { + if (gnutls_aead_cipher_init( + &hd, cipher, + &(gnutls_datum_t){ + .data = (uint8_t *)key, + .size = (unsigned int)ngtcp2_crypto_aead_keylen(aead), + }) != 0) { return -1; } @@ -267,15 +269,17 @@ void ngtcp2_crypto_aead_ctx_free(ngtcp2_crypto_aead_ctx *aead_ctx) { int ngtcp2_crypto_cipher_ctx_encrypt_init(ngtcp2_crypto_cipher_ctx *cipher_ctx, const ngtcp2_crypto_cipher *cipher, const uint8_t *key) { - gnutls_cipher_algorithm_t _cipher = + gnutls_cipher_algorithm_t cph = (gnutls_cipher_algorithm_t)(intptr_t)cipher->native_handle; gnutls_cipher_hd_t hd; - gnutls_datum_t _key; - _key.data = (void *)key; - _key.size = (unsigned int)gnutls_cipher_get_key_size(_cipher); - - if (gnutls_cipher_init(&hd, _cipher, &_key, NULL) != 0) { + if (gnutls_cipher_init( + &hd, cph, + &(gnutls_datum_t){ + .data = (uint8_t *)key, + .size = (unsigned int)gnutls_cipher_get_key_size(cph), + }, + NULL) != 0) { return -1; } @@ -295,10 +299,17 @@ int ngtcp2_crypto_hkdf_extract(uint8_t *dest, const ngtcp2_crypto_md *md, const uint8_t *salt, size_t saltlen) { gnutls_mac_algorithm_t prf = (gnutls_mac_algorithm_t)(intptr_t)md->native_handle; - gnutls_datum_t _secret = {(void *)secret, (unsigned int)secretlen}; - gnutls_datum_t _salt = {(void *)salt, (unsigned int)saltlen}; - if (gnutls_hkdf_extract(prf, &_secret, &_salt, dest) != 0) { + if (gnutls_hkdf_extract(prf, + &(gnutls_datum_t){ + .data = (uint8_t *)secret, + .size = (unsigned int)secretlen, + }, + &(gnutls_datum_t){ + .data = (uint8_t *)salt, + .size = (unsigned int)saltlen, + }, + dest) != 0) { return -1; } @@ -311,10 +322,17 @@ int ngtcp2_crypto_hkdf_expand(uint8_t *dest, size_t destlen, size_t infolen) { gnutls_mac_algorithm_t prf = (gnutls_mac_algorithm_t)(intptr_t)md->native_handle; - gnutls_datum_t _secret = {(void *)secret, (unsigned int)secretlen}; - gnutls_datum_t _info = {(void *)info, (unsigned int)infolen}; - if (gnutls_hkdf_expand(prf, &_secret, &_info, dest, destlen) != 0) { + if (gnutls_hkdf_expand(prf, + &(gnutls_datum_t){ + .data = (uint8_t *)secret, + .size = (unsigned int)secretlen, + }, + &(gnutls_datum_t){ + .data = (uint8_t *)info, + .size = (unsigned int)infolen, + }, + dest, destlen) != 0) { return -1; } @@ -329,18 +347,32 @@ int ngtcp2_crypto_hkdf(uint8_t *dest, size_t destlen, (gnutls_mac_algorithm_t)(intptr_t)md->native_handle; size_t keylen = ngtcp2_crypto_md_hashlen(md); uint8_t key[64]; - gnutls_datum_t _secret = {(void *)secret, (unsigned int)secretlen}; - gnutls_datum_t _key = {(void *)key, (unsigned int)keylen}; - gnutls_datum_t _salt = {(void *)salt, (unsigned int)saltlen}; - gnutls_datum_t _info = {(void *)info, (unsigned int)infolen}; assert(keylen <= sizeof(key)); - if (gnutls_hkdf_extract(prf, &_secret, &_salt, key) != 0) { + if (gnutls_hkdf_extract(prf, + &(gnutls_datum_t){ + .data = (uint8_t *)secret, + .size = (unsigned int)secretlen, + }, + &(gnutls_datum_t){ + .data = (uint8_t *)salt, + .size = (unsigned int)saltlen, + }, + key) != 0) { return -1; } - if (gnutls_hkdf_expand(prf, &_key, &_info, dest, destlen) != 0) { + if (gnutls_hkdf_expand(prf, + &(gnutls_datum_t){ + .data = (uint8_t *)key, + .size = (unsigned int)keylen, + }, + &(gnutls_datum_t){ + .data = (uint8_t *)info, + .size = (unsigned int)infolen, + }, + dest, destlen) != 0) { return -1; } @@ -403,13 +435,11 @@ int ngtcp2_crypto_hp_mask(uint8_t *dest, const ngtcp2_crypto_cipher *hp, switch (cipher) { case GNUTLS_CIPHER_AES_128_CBC: case GNUTLS_CIPHER_AES_256_CBC: { - uint8_t iv[16]; - uint8_t buf[16]; - /* Emulate one block AES-ECB by invalidating the effect of IV */ - memset(iv, 0, sizeof(iv)); + static const uint8_t iv[16] = {0}; + uint8_t buf[16]; - gnutls_cipher_set_iv(hd, iv, sizeof(iv)); + gnutls_cipher_set_iv(hd, (uint8_t *)iv, sizeof(iv)); if (gnutls_cipher_encrypt2(hd, sample, 16, buf, sizeof(buf)) != 0) { return -1; @@ -419,14 +449,14 @@ int ngtcp2_crypto_hp_mask(uint8_t *dest, const ngtcp2_crypto_cipher *hp, } break; case GNUTLS_CIPHER_CHACHA20_32: { - static const uint8_t PLAINTEXT[] = "\x00\x00\x00\x00\x00"; + static const uint8_t PLAINTEXT[16] = {0}; uint8_t buf[5 + 16]; size_t buflen = sizeof(buf); gnutls_cipher_set_iv(hd, (void *)sample, 16); - if (gnutls_cipher_encrypt2(hd, PLAINTEXT, ngtcp2_strlen_lit(PLAINTEXT), buf, - buflen) != 0) { + if (gnutls_cipher_encrypt2(hd, PLAINTEXT, sizeof(PLAINTEXT), buf, buflen) != + 0) { return -1; } @@ -543,6 +573,20 @@ int ngtcp2_crypto_get_path_challenge_data_cb(ngtcp2_conn *conn, uint8_t *data, return 0; } +int ngtcp2_crypto_get_path_challenge_data2_cb(ngtcp2_conn *conn, + ngtcp2_path_challenge_data *data, + void *user_data) { + (void)conn; + (void)user_data; + + if (gnutls_rnd(GNUTLS_RND_RANDOM, data->data, + NGTCP2_PATH_CHALLENGE_DATALEN) != 0) { + return NGTCP2_ERR_CALLBACK_FAILURE; + } + + return 0; +} + int ngtcp2_crypto_random(uint8_t *data, size_t datalen) { if (gnutls_rnd(GNUTLS_RND_RANDOM, data, datalen) != 0) { return -1; diff --git a/src/contrib/libngtcp2/ngtcp2/crypto/shared.c b/src/contrib/libngtcp2/ngtcp2/crypto/shared.c index 1d8d1d68f7..f1bb902672 100644 --- a/src/contrib/libngtcp2/ngtcp2/crypto/shared.c +++ b/src/contrib/libngtcp2/ngtcp2/crypto/shared.c @@ -37,6 +37,22 @@ #include "ngtcp2_macro.h" #include "ngtcp2_net.h" +/* + * NGTCP2_INITIAL_SALT_V1 is a salt value which is used to derive + * initial secret. It is used for QUIC v1. + */ +static const uint8_t NGTCP2_INITIAL_SALT_V1[] = { + 0x38, 0x76, 0x2C, 0xF7, 0xF5, 0x59, 0x34, 0xB3, 0x4D, 0x17, + 0x9A, 0xE6, 0xA4, 0xC8, 0x0C, 0xAD, 0xCC, 0xBB, 0x7F, 0x0A}; + +/* + * NGTCP2_INITIAL_SALT_V2 is a salt value which is used to derive + * initial secret. It is used for QUIC v2. + */ +static const uint8_t NGTCP2_INITIAL_SALT_V2[] = { + 0x0D, 0xED, 0xE3, 0xDE, 0xF7, 0x00, 0xA6, 0xDB, 0x81, 0x93, + 0x81, 0xBE, 0x6E, 0x26, 0x9D, 0xCB, 0xF9, 0xBD, 0x2E, 0xD9}; + ngtcp2_crypto_md *ngtcp2_crypto_md_init(ngtcp2_crypto_md *md, void *md_native_handle) { md->native_handle = md_native_handle; @@ -87,12 +103,12 @@ int ngtcp2_crypto_derive_initial_secrets(uint8_t *rx_secret, uint8_t *tx_secret, switch (version) { case NGTCP2_PROTO_VER_V1: default: - salt = (const uint8_t *)NGTCP2_INITIAL_SALT_V1; - saltlen = ngtcp2_strlen_lit(NGTCP2_INITIAL_SALT_V1); + salt = NGTCP2_INITIAL_SALT_V1; + saltlen = sizeof(NGTCP2_INITIAL_SALT_V1); break; case NGTCP2_PROTO_VER_V2: - salt = (const uint8_t *)NGTCP2_INITIAL_SALT_V2; - saltlen = ngtcp2_strlen_lit(NGTCP2_INITIAL_SALT_V2); + salt = NGTCP2_INITIAL_SALT_V2; + saltlen = sizeof(NGTCP2_INITIAL_SALT_V2); break; } @@ -922,8 +938,8 @@ ngtcp2_ssize ngtcp2_crypto_generate_retry_token( uint8_t *token, const uint8_t *secret, size_t secretlen, uint32_t version, const ngtcp2_sockaddr *remote_addr, ngtcp2_socklen remote_addrlen, const ngtcp2_cid *retry_scid, const ngtcp2_cid *odcid, ngtcp2_tstamp ts) { - uint8_t - plaintext[/* cid len = */ 1 + NGTCP2_MAX_CIDLEN + sizeof(ngtcp2_tstamp)]; + uint8_t plaintext[/* cid len = */ 1 + NGTCP2_MAX_CIDLEN + + sizeof(ngtcp2_tstamp)] = {0}; uint8_t rand_data[NGTCP2_CRYPTO_TOKEN_RAND_DATALEN]; uint8_t key[16]; uint8_t iv[12]; @@ -942,8 +958,6 @@ ngtcp2_ssize ngtcp2_crypto_generate_retry_token( assert((size_t)remote_addrlen <= sizeof(ngtcp2_sockaddr_union)); - memset(plaintext, 0, sizeof(plaintext)); - *p++ = (uint8_t)odcid->datalen; memcpy(p, odcid->data, odcid->datalen); p += NGTCP2_MAX_CIDLEN; @@ -1104,7 +1118,7 @@ ngtcp2_ssize ngtcp2_crypto_generate_retry_token2( const ngtcp2_sockaddr *remote_addr, ngtcp2_socklen remote_addrlen, const ngtcp2_cid *retry_scid, const ngtcp2_cid *odcid, ngtcp2_tstamp ts) { uint8_t plaintext[sizeof(ngtcp2_sockaddr_union) + /* cid len = */ 1 + - NGTCP2_MAX_CIDLEN + sizeof(ngtcp2_tstamp)]; + NGTCP2_MAX_CIDLEN + sizeof(ngtcp2_tstamp)] = {0}; uint8_t rand_data[NGTCP2_CRYPTO_TOKEN_RAND_DATALEN]; uint8_t key[16]; uint8_t iv[12]; @@ -1121,8 +1135,6 @@ ngtcp2_ssize ngtcp2_crypto_generate_retry_token2( assert((size_t)remote_addrlen <= sizeof(ngtcp2_sockaddr_union)); - memset(plaintext, 0, sizeof(plaintext)); - memcpy(p, remote_addr, (size_t)remote_addrlen); p += sizeof(ngtcp2_sockaddr_union); *p++ = (uint8_t)odcid->datalen; @@ -1717,8 +1729,21 @@ int ngtcp2_crypto_recv_crypto_data_cb(ngtcp2_conn *conn, (void)offset; (void)user_data; - if (ngtcp2_crypto_read_write_crypto_data(conn, encryption_level, data, - datalen) != 0) { + rv = + ngtcp2_crypto_read_write_crypto_data(conn, encryption_level, data, datalen); + if (rv != 0) { + switch (rv) { + case /* NGTCP2_CRYPTO_QUICTLS_ERR_TLS_WANT_CLIENT_HELLO_CB */ -10001: + case /* NGTCP2_CRYPTO_QUICTLS_ERR_TLS_WANT_X509_LOOKUP */ -10002: + /* These errors are not unrecoverable error, and they just + indicate that handshake has been interrupted. ngtcp2 does + not mind whether handshake is interrupted or not. Just + return 0 in this case. There are OSSL version and they have + the same enum value, therefore we cannot enumerate them + here. */ + return 0; + } + rv = ngtcp2_conn_get_tls_error(conn); if (rv) { return rv; diff --git a/src/contrib/libngtcp2/ngtcp2/crypto/shared.h b/src/contrib/libngtcp2/ngtcp2/crypto/shared.h index 34158d3d02..c517b7f224 100644 --- a/src/contrib/libngtcp2/ngtcp2/crypto/shared.h +++ b/src/contrib/libngtcp2/ngtcp2/crypto/shared.h @@ -31,26 +31,6 @@ #include -/** - * @macro - * - * :macro:`NGTCP2_INITIAL_SALT_V1` is a salt value which is used to - * derive initial secret. It is used for QUIC v1. - */ -#define NGTCP2_INITIAL_SALT_V1 \ - "\x38\x76\x2c\xf7\xf5\x59\x34\xb3\x4d\x17\x9a\xe6\xa4\xc8\x0c\xad\xcc\xbb" \ - "\x7f\x0a" - -/** - * @macro - * - * :macro:`NGTCP2_INITIAL_SALT_V2` is a salt value which is used to - * derive initial secret. It is used for QUIC v2. - */ -#define NGTCP2_INITIAL_SALT_V2 \ - "\x0d\xed\xe3\xde\xf7\x00\xa6\xdb\x81\x93\x81\xbe\x6e\x26\x9d\xcb\xf9\xbd" \ - "\x2e\xd9" - /* Maximum key usage (encryption) limits */ #define NGTCP2_CRYPTO_MAX_ENCRYPTION_AES_GCM (1ULL << 23) #define NGTCP2_CRYPTO_MAX_ENCRYPTION_CHACHA20_POLY1305 (1ULL << 62) diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h index 1a591c5ead..026c2cabe8 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.h @@ -97,16 +97,16 @@ typedef struct ngtcp2_acktr_ack_entry { } ngtcp2_acktr_ack_entry; /* NGTCP2_ACKTR_FLAG_NONE indicates that no flag set. */ -#define NGTCP2_ACKTR_FLAG_NONE 0x00u +#define NGTCP2_ACKTR_FLAG_NONE 0x00U /* NGTCP2_ACKTR_FLAG_IMMEDIATE_ACK indicates that immediate acknowledgement is required. */ -#define NGTCP2_ACKTR_FLAG_IMMEDIATE_ACK 0x01u +#define NGTCP2_ACKTR_FLAG_IMMEDIATE_ACK 0x01U /* NGTCP2_ACKTR_FLAG_ACTIVE_ACK indicates that there are pending protected packet to be acknowledged. */ -#define NGTCP2_ACKTR_FLAG_ACTIVE_ACK 0x02u +#define NGTCP2_ACKTR_FLAG_ACTIVE_ACK 0x02U /* NGTCP2_ACKTR_FLAG_CANCEL_TIMER is set when ACK delay timer is expired and canceled. */ -#define NGTCP2_ACKTR_FLAG_CANCEL_TIMER 0x0100u +#define NGTCP2_ACKTR_FLAG_CANCEL_TIMER 0x0100U ngtcp2_static_ringbuf_def(acks, 32, sizeof(ngtcp2_acktr_ack_entry)) diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.h index c2224f85cd..6314b1afc8 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_addr.h @@ -46,14 +46,14 @@ void ngtcp2_addr_copy(ngtcp2_addr *dest, const ngtcp2_addr *src); int ngtcp2_addr_eq(const ngtcp2_addr *a, const ngtcp2_addr *b); /* NGTCP2_ADDR_CMP_FLAG_NONE indicates that no flag set. */ -#define NGTCP2_ADDR_CMP_FLAG_NONE 0x0u +#define NGTCP2_ADDR_CMP_FLAG_NONE 0x0U /* NGTCP2_ADDR_CMP_FLAG_ADDR indicates IP addresses do not match. */ -#define NGTCP2_ADDR_CMP_FLAG_ADDR 0x1u +#define NGTCP2_ADDR_CMP_FLAG_ADDR 0x1U /* NGTCP2_ADDR_CMP_FLAG_PORT indicates ports do not match. */ -#define NGTCP2_ADDR_CMP_FLAG_PORT 0x2u +#define NGTCP2_ADDR_CMP_FLAG_PORT 0x2U /* NGTCP2_ADDR_CMP_FLAG_FAMILY indicates address families do not match. */ -#define NGTCP2_ADDR_CMP_FLAG_FAMILY 0x4u +#define NGTCP2_ADDR_CMP_FLAG_FAMILY 0x4U /* * ngtcp2_addr_cmp compares address and port between |a| and |b|, and diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c index cb865c5cef..fff7a9ef65 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c @@ -30,7 +30,7 @@ void ngtcp2_balloc_init(ngtcp2_balloc *balloc, size_t blklen, const ngtcp2_mem *mem) { - assert((blklen & 0xfu) == 0); + assert((blklen & 0xFU) == 0); balloc->mem = mem; balloc->blklen = blklen; @@ -66,7 +66,7 @@ int ngtcp2_balloc_get(ngtcp2_balloc *balloc, void **pbuf, size_t n) { if (ngtcp2_buf_left(&balloc->buf) < n) { p = ngtcp2_mem_malloc(balloc->mem, - sizeof(ngtcp2_memblock_hd) + 0x8u + balloc->blklen); + sizeof(ngtcp2_memblock_hd) + 0x8U + balloc->blklen); if (p == NULL) { return NGTCP2_ERR_NOMEM; } @@ -76,15 +76,15 @@ int ngtcp2_balloc_get(ngtcp2_balloc *balloc, void **pbuf, size_t n) { balloc->head = hd; ngtcp2_buf_init( &balloc->buf, - (uint8_t *)(((uintptr_t)p + sizeof(ngtcp2_memblock_hd) + 0xfu) & - ~(uintptr_t)0xfu), + (uint8_t *)(((uintptr_t)p + sizeof(ngtcp2_memblock_hd) + 0xFU) & + ~(uintptr_t)0xFU), balloc->blklen); } - assert(((uintptr_t)balloc->buf.last & 0xfu) == 0); + assert(((uintptr_t)balloc->buf.last & 0xFU) == 0); *pbuf = balloc->buf.last; - balloc->buf.last += (n + 0xfu) & ~(uintptr_t)0xfu; + balloc->buf.last += (n + 0xFU) & ~(uintptr_t)0xFU; return 0; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c index 7e77186772..1d65d93d56 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c @@ -42,7 +42,7 @@ const ngtcp2_callbacks *ngtcp2_callbacks_convert_to_latest( return src; } - memset(dest, 0, sizeof(*dest)); + *dest = (ngtcp2_callbacks){0}; callbacks_copy(dest, src, callbacks_version); @@ -63,6 +63,9 @@ size_t ngtcp2_callbackslen_version(int callbacks_version) { switch (callbacks_version) { case NGTCP2_CALLBACKS_VERSION: return sizeof(callbacks); + case NGTCP2_CALLBACKS_V2: + return offsetof(ngtcp2_callbacks, begin_path_validation) + + sizeof(callbacks.begin_path_validation); case NGTCP2_CALLBACKS_V1: return offsetof(ngtcp2_callbacks, tls_early_data_rejected) + sizeof(callbacks.tls_early_data_rejected); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c index 42a4827664..4eba2aaca5 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c @@ -29,8 +29,9 @@ #include "ngtcp2_path.h" #include "ngtcp2_str.h" +#include "ngtcp2_pkt.h" -void ngtcp2_cid_zero(ngtcp2_cid *cid) { memset(cid, 0, sizeof(*cid)); } +void ngtcp2_cid_zero(ngtcp2_cid *cid) { *cid = (ngtcp2_cid){0}; } void ngtcp2_cid_init(ngtcp2_cid *cid, const uint8_t *data, size_t datalen) { assert(datalen <= NGTCP2_MAX_CIDLEN); @@ -74,12 +75,12 @@ void ngtcp2_scid_copy(ngtcp2_scid *dest, const ngtcp2_scid *src) { } void ngtcp2_dcid_init(ngtcp2_dcid *dcid, uint64_t seq, const ngtcp2_cid *cid, - const uint8_t *token) { + const ngtcp2_stateless_reset_token *token) { dcid->seq = seq; dcid->cid = *cid; if (token) { - memcpy(dcid->token, token, NGTCP2_STATELESS_RESET_TOKENLEN); + dcid->token = *token; dcid->flags = NGTCP2_DCID_FLAG_TOKEN_PRESENT; } else { dcid->flags = NGTCP2_DCID_FLAG_NONE; @@ -93,11 +94,12 @@ void ngtcp2_dcid_init(ngtcp2_dcid *dcid, uint64_t seq, const ngtcp2_cid *cid, dcid->max_udp_payload_size = NGTCP2_MAX_UDP_PAYLOAD_SIZE; } -void ngtcp2_dcid_set_token(ngtcp2_dcid *dcid, const uint8_t *token) { +void ngtcp2_dcid_set_token(ngtcp2_dcid *dcid, + const ngtcp2_stateless_reset_token *token) { assert(token); dcid->flags |= NGTCP2_DCID_FLAG_TOKEN_PRESENT; - memcpy(dcid->token, token, NGTCP2_STATELESS_RESET_TOKENLEN); + dcid->token = *token; } void ngtcp2_dcid_set_path(ngtcp2_dcid *dcid, const ngtcp2_path *path) { @@ -106,7 +108,7 @@ void ngtcp2_dcid_set_path(ngtcp2_dcid *dcid, const ngtcp2_path *path) { void ngtcp2_dcid_copy(ngtcp2_dcid *dest, const ngtcp2_dcid *src) { ngtcp2_dcid_init(dest, src->seq, &src->cid, - (src->flags & NGTCP2_DCID_FLAG_TOKEN_PRESENT) ? src->token + (src->flags & NGTCP2_DCID_FLAG_TOKEN_PRESENT) ? &src->token : NULL); ngtcp2_path_copy(&dest->ps.path, &src->ps.path); dest->retired_ts = src->retired_ts; @@ -123,18 +125,19 @@ void ngtcp2_dcid_copy_cid_token(ngtcp2_dcid *dest, const ngtcp2_dcid *src) { if (src->flags & NGTCP2_DCID_FLAG_TOKEN_PRESENT) { dest->flags |= NGTCP2_DCID_FLAG_TOKEN_PRESENT; - memcpy(dest->token, src->token, NGTCP2_STATELESS_RESET_TOKENLEN); + dest->token = src->token; } else if (dest->flags & NGTCP2_DCID_FLAG_TOKEN_PRESENT) { dest->flags &= (uint8_t)~NGTCP2_DCID_FLAG_TOKEN_PRESENT; } } int ngtcp2_dcid_verify_uniqueness(const ngtcp2_dcid *dcid, uint64_t seq, - const ngtcp2_cid *cid, const uint8_t *token) { + const ngtcp2_cid *cid, + const ngtcp2_stateless_reset_token *token) { if (dcid->seq == seq) { return ngtcp2_cid_eq(&dcid->cid, cid) && (dcid->flags & NGTCP2_DCID_FLAG_TOKEN_PRESENT) && - memcmp(dcid->token, token, NGTCP2_STATELESS_RESET_TOKENLEN) == 0 + ngtcp2_stateless_reset_token_eq(&dcid->token, token) ? 0 : NGTCP2_ERR_PROTO; } @@ -142,12 +145,12 @@ int ngtcp2_dcid_verify_uniqueness(const ngtcp2_dcid *dcid, uint64_t seq, return !ngtcp2_cid_eq(&dcid->cid, cid) ? 0 : NGTCP2_ERR_PROTO; } -int ngtcp2_dcid_verify_stateless_reset_token(const ngtcp2_dcid *dcid, - const ngtcp2_path *path, - const uint8_t *token) { +int ngtcp2_dcid_verify_stateless_reset_token( + const ngtcp2_dcid *dcid, const ngtcp2_path *path, + const ngtcp2_stateless_reset_token *token) { return ngtcp2_path_eq(&dcid->ps.path, path) && (dcid->flags & NGTCP2_DCID_FLAG_TOKEN_PRESENT) && - ngtcp2_cmemeq(dcid->token, token, NGTCP2_STATELESS_RESET_TOKENLEN) + ngtcp2_cmemeq(dcid->token.data, token->data, sizeof(token->data)) ? 0 : NGTCP2_ERR_INVALID_ARGUMENT; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.h index 9321cfb64e..f4956b0bac 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.h @@ -35,13 +35,13 @@ #include "ngtcp2_path.h" /* NGTCP2_SCID_FLAG_NONE indicates that no flag is set. */ -#define NGTCP2_SCID_FLAG_NONE 0x00u +#define NGTCP2_SCID_FLAG_NONE 0x00U /* NGTCP2_SCID_FLAG_USED indicates that a local endpoint observed that a remote endpoint uses this particular Connection ID. */ -#define NGTCP2_SCID_FLAG_USED 0x01u +#define NGTCP2_SCID_FLAG_USED 0x01U /* NGTCP2_SCID_FLAG_RETIRED indicates that this particular Connection ID is retired. */ -#define NGTCP2_SCID_FLAG_RETIRED 0x02u +#define NGTCP2_SCID_FLAG_RETIRED 0x02U typedef struct ngtcp2_scid { ngtcp2_pq_entry pe; @@ -57,13 +57,13 @@ typedef struct ngtcp2_scid { } ngtcp2_scid; /* NGTCP2_DCID_FLAG_NONE indicates that no flag is set. */ -#define NGTCP2_DCID_FLAG_NONE 0x00u +#define NGTCP2_DCID_FLAG_NONE 0x00U /* NGTCP2_DCID_FLAG_PATH_VALIDATED indicates that an associated path has been validated. */ -#define NGTCP2_DCID_FLAG_PATH_VALIDATED 0x01u +#define NGTCP2_DCID_FLAG_PATH_VALIDATED 0x01U /* NGTCP2_DCID_FLAG_TOKEN_PRESENT indicates that a stateless reset token is set in token field. */ -#define NGTCP2_DCID_FLAG_TOKEN_PRESENT 0x02u +#define NGTCP2_DCID_FLAG_TOKEN_PRESENT 0x02U typedef struct ngtcp2_dcid { /* seq is the sequence number associated to the Connection ID. */ @@ -93,7 +93,7 @@ typedef struct ngtcp2_dcid { /* token is a stateless reset token received along with this Connection ID. The stateless reset token is tied to the connection, not to the particular Connection ID. */ - uint8_t token[NGTCP2_STATELESS_RESET_TOKENLEN]; + ngtcp2_stateless_reset_token token; } ngtcp2_dcid; /* ngtcp2_cid_zero makes |cid| zero-length. */ @@ -123,17 +123,18 @@ void ngtcp2_scid_copy(ngtcp2_scid *dest, const ngtcp2_scid *src); /* * ngtcp2_dcid_init initializes |dcid| with the given parameters. If - * |token| is NULL, the function fills dcid->token with 0. |token| - * must be NGTCP2_STATELESS_RESET_TOKENLEN bytes long. + * |token| is not NULL, the function sets + * NGTCP2_DCID_FLAG_TOKEN_PRESENT flag. */ void ngtcp2_dcid_init(ngtcp2_dcid *dcid, uint64_t seq, const ngtcp2_cid *cid, - const uint8_t *token); + const ngtcp2_stateless_reset_token *token); /* * ngtcp2_dcid_set_token sets |token| to |dcid|. |token| must not be - * NULL, and must be NGTCP2_STATELESS_RESET_TOKENLEN bytes long. + * NULL. */ -void ngtcp2_dcid_set_token(ngtcp2_dcid *dcid, const uint8_t *token); +void ngtcp2_dcid_set_token(ngtcp2_dcid *dcid, + const ngtcp2_stateless_reset_token *token); /* * ngtcp2_dcid_set_path sets |path| to |dcid|. It sets @@ -160,7 +161,8 @@ void ngtcp2_dcid_copy_cid_token(ngtcp2_dcid *dest, const ngtcp2_dcid *src); * |token|) tuple against |dcid|. */ int ngtcp2_dcid_verify_uniqueness(const ngtcp2_dcid *dcid, uint64_t seq, - const ngtcp2_cid *cid, const uint8_t *token); + const ngtcp2_cid *cid, + const ngtcp2_stateless_reset_token *token); /* * ngtcp2_dcid_verify_stateless_reset_token verifies stateless reset @@ -172,9 +174,9 @@ int ngtcp2_dcid_verify_uniqueness(const ngtcp2_dcid *dcid, uint64_t seq, * NGTCP2_ERR_INVALID_ARGUMENT * Tokens do not match; or |dcid| does not contain a token. */ -int ngtcp2_dcid_verify_stateless_reset_token(const ngtcp2_dcid *dcid, - const ngtcp2_path *path, - const uint8_t *token); +int ngtcp2_dcid_verify_stateless_reset_token( + const ngtcp2_dcid *dcid, const ngtcp2_path *path, + const ngtcp2_stateless_reset_token *token); /* TODO It might be performance win if we store congestion state in this entry, and restore it when migrate back to this path. */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c index 29fe7b0391..c470eb05b0 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c @@ -255,13 +255,20 @@ static int conn_call_extend_max_local_streams_uni(ngtcp2_conn *conn, } static int conn_call_get_new_connection_id(ngtcp2_conn *conn, ngtcp2_cid *cid, - uint8_t *token, size_t cidlen) { + ngtcp2_stateless_reset_token *token, + size_t cidlen) { int rv; - assert(conn->callbacks.get_new_connection_id); + if (conn->callbacks.get_new_connection_id2) { + rv = conn->callbacks.get_new_connection_id2(conn, cid, token, cidlen, + conn->user_data); + } else { + assert(conn->callbacks.get_new_connection_id); + + rv = conn->callbacks.get_new_connection_id(conn, cid, token->data, cidlen, + conn->user_data); + } - rv = conn->callbacks.get_new_connection_id(conn, cid, token, cidlen, - conn->user_data); if (rv != 0) { return NGTCP2_ERR_CALLBACK_FAILURE; } @@ -424,14 +431,20 @@ static int conn_call_dcid_status(ngtcp2_conn *conn, const ngtcp2_dcid *dcid) { int rv; - if (!conn->callbacks.dcid_status) { + if (conn->callbacks.dcid_status2) { + rv = conn->callbacks.dcid_status2( + conn, type, dcid->seq, &dcid->cid, + (dcid->flags & NGTCP2_DCID_FLAG_TOKEN_PRESENT) ? &dcid->token : NULL, + conn->user_data); + } else if (conn->callbacks.dcid_status) { + rv = conn->callbacks.dcid_status( + conn, type, dcid->seq, &dcid->cid, + (dcid->flags & NGTCP2_DCID_FLAG_TOKEN_PRESENT) ? dcid->token.data : NULL, + conn->user_data); + } else { return 0; } - rv = conn->callbacks.dcid_status( - conn, type, dcid->seq, &dcid->cid, - (dcid->flags & NGTCP2_DCID_FLAG_TOKEN_PRESENT) ? dcid->token : NULL, - conn->user_data); if (rv != 0) { return NGTCP2_ERR_CALLBACK_FAILURE; } @@ -504,12 +517,19 @@ static int conn_call_client_initial(ngtcp2_conn *conn) { return 0; } -static int conn_call_get_path_challenge_data(ngtcp2_conn *conn, uint8_t *data) { +static int conn_call_get_path_challenge_data(ngtcp2_conn *conn, + ngtcp2_path_challenge_data *data) { int rv; - assert(conn->callbacks.get_path_challenge_data); + if (conn->callbacks.get_path_challenge_data2) { + rv = conn->callbacks.get_path_challenge_data2(conn, data, conn->user_data); + } else { + assert(conn->callbacks.get_path_challenge_data); + + rv = conn->callbacks.get_path_challenge_data(conn, data->data, + conn->user_data); + } - rv = conn->callbacks.get_path_challenge_data(conn, data, conn->user_data); if (rv != 0) { return NGTCP2_ERR_CALLBACK_FAILURE; } @@ -550,14 +570,24 @@ static int conn_call_recv_retry(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd) { static int conn_call_recv_stateless_reset(ngtcp2_conn *conn, - const ngtcp2_pkt_stateless_reset *sr) { + const ngtcp2_pkt_stateless_reset2 *sr) { int rv; + ngtcp2_pkt_stateless_reset legacy_sr; + + if (conn->callbacks.recv_stateless_reset2) { + rv = conn->callbacks.recv_stateless_reset2(conn, sr, conn->user_data); + } else if (conn->callbacks.recv_stateless_reset) { + memcpy(legacy_sr.stateless_reset_token, sr->token.data, + sizeof(legacy_sr.stateless_reset_token)); + legacy_sr.rand = sr->rand; + legacy_sr.randlen = sr->randlen; - if (!conn->callbacks.recv_stateless_reset) { + rv = + conn->callbacks.recv_stateless_reset(conn, &legacy_sr, conn->user_data); + } else { return 0; } - rv = conn->callbacks.recv_stateless_reset(conn, sr, conn->user_data); if (rv != 0) { return NGTCP2_ERR_CALLBACK_FAILURE; } @@ -840,8 +870,8 @@ static void conn_reset_conn_stat_cc(ngtcp2_conn *conn, */ static void reset_conn_stat_recovery(ngtcp2_conn_stat *cstat) { /* Initializes them with UINT64_MAX. */ - memset(cstat->loss_time, 0xff, sizeof(cstat->loss_time)); - memset(cstat->last_tx_pkt_ts, 0xff, sizeof(cstat->last_tx_pkt_ts)); + memset(cstat->loss_time, 0xFF, sizeof(cstat->loss_time)); + memset(cstat->last_tx_pkt_ts, 0xFF, sizeof(cstat->last_tx_pkt_ts)); } /* @@ -1072,13 +1102,13 @@ static void conn_update_skip_pkt(ngtcp2_conn *conn, ngtcp2_pktns *pktns) { conn->callbacks.rand(&r, 1, &conn->local.settings.rand_ctx); - if (1ll << pktns->tx.skip_pkt.exponent > + if (1LL << pktns->tx.skip_pkt.exponent > (NGTCP2_MAX_PKT_NUM - min_gap) / ((int64_t)r + 1)) { pktns->tx.skip_pkt.next_pkt_num = INT64_MAX; return; } - gap = ((int64_t)r + 1) * (1ll << pktns->tx.skip_pkt.exponent++) + min_gap; + gap = ((int64_t)r + 1) * (1LL << pktns->tx.skip_pkt.exponent++) + min_gap; if (pktns->tx.last_pkt_num > NGTCP2_MAX_PKT_NUM - gap) { pktns->tx.skip_pkt.next_pkt_num = INT64_MAX; @@ -1196,11 +1226,12 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, assert(callbacks->hp_mask); assert(server || callbacks->recv_retry); assert(callbacks->rand); - assert(callbacks->get_new_connection_id); + assert(callbacks->get_new_connection_id2 || callbacks->get_new_connection_id); assert(callbacks->update_key); assert(callbacks->delete_crypto_aead_ctx); assert(callbacks->delete_crypto_cipher_ctx); - assert(callbacks->get_path_challenge_data); + assert(callbacks->get_path_challenge_data2 || + callbacks->get_path_challenge_data); assert(!server || !ngtcp2_is_reserved_version(client_chosen_version)); for (i = 0; i < settings->pmtud_probeslen; ++i) { @@ -1860,13 +1891,13 @@ static size_t pktns_select_pkt_numlen(ngtcp2_pktns *pktns) { n = n * 2 - 1; - if (n > 0xffffff) { + if (n > 0xFFFFFF) { return 4; } - if (n > 0xffff) { + if (n > 0xFFFF) { return 3; } - if (n > 0xff) { + if (n > 0xFF) { return 2; } return 1; @@ -1974,6 +2005,16 @@ static int conn_verify_dcid(ngtcp2_conn *conn, int *pnew_cid_used, return 0; } +static int conn_can_send_next_pkt(ngtcp2_conn *conn, size_t left, + uint64_t min_payloadlen) { + /* TODO the next packet type should be taken into account */ + return left >= + /* TODO Assuming that pkt_num is encoded in 1 byte. */ + NGTCP2_MIN_LONG_HEADERLEN + conn->dcid.current.cid.datalen + + conn->oscid.datalen + NGTCP2_PKT_LENGTHLEN - 1 + min_payloadlen + + NGTCP2_MAX_AEAD_OVERHEAD; +} + /* * conn_should_pad_pkt returns nonzero if the packet should be padded. * |type| is the type of packet. |left| is the space left in packet @@ -2020,32 +2061,30 @@ static int conn_should_pad_pkt(ngtcp2_conn *conn, uint8_t type, size_t left, return 1; } } - } else { - assert(type == NGTCP2_PKT_HANDSHAKE); - if (!require_padding) { - return 0; - } + return !conn_can_send_next_pkt(conn, left, min_payloadlen); + } - if (!conn->pktns.crypto.tx.ckm) { - return 1; - } + assert(type == NGTCP2_PKT_HANDSHAKE); - /* We might send Handshake packet even if exceeding CWND. In that - case, we do not write non-probe 1RTT packet. */ - if (conn_cwnd_is_zero(conn) && conn->pktns.rtb.probe_pkt_left == 0) { - return 1; - } + if (!require_padding) { + /* If we have 1RTT key, pad this Handshake packet so that the next + 1RTT packet can be squeezed into the same GSO buffer. */ + return conn->pktns.crypto.tx.ckm && + !conn_can_send_next_pkt(conn, left, NGTCP2_MIN_COALESCED_PAYLOADLEN); + } + + if (!conn->pktns.crypto.tx.ckm) { + return 1; + } - min_payloadlen = NGTCP2_MIN_COALESCED_PAYLOADLEN; + /* We might send Handshake packet even if exceeding CWND. In that + case, we do not write non-probe 1RTT packet. */ + if (conn_cwnd_is_zero(conn) && conn->pktns.rtb.probe_pkt_left == 0) { + return 1; } - /* TODO the next packet type should be taken into account */ - return left < - /* TODO Assuming that pkt_num is encoded in 1 byte. */ - NGTCP2_MIN_LONG_HEADERLEN + conn->dcid.current.cid.datalen + - conn->oscid.datalen + NGTCP2_PKT_LENGTHLEN - 1 + min_payloadlen + - NGTCP2_MAX_AEAD_OVERHEAD; + return !conn_can_send_next_pkt(conn, left, NGTCP2_MIN_COALESCED_PAYLOADLEN); } static void conn_restart_timer_on_write(ngtcp2_conn *conn, ngtcp2_tstamp ts) { @@ -2888,7 +2927,7 @@ static void conn_discard_early_key(ngtcp2_conn *conn) { conn_call_delete_crypto_aead_ctx(conn, &conn->early.ckm->aead_ctx); conn_call_delete_crypto_cipher_ctx(conn, &conn->early.hp_ctx); - memset(&conn->early.hp_ctx, 0, sizeof(conn->early.hp_ctx)); + conn->early.hp_ctx = (ngtcp2_crypto_cipher_ctx){0}; ngtcp2_crypto_km_del(conn->early.ckm, conn->mem); conn->early.ckm = NULL; @@ -3205,58 +3244,59 @@ static size_t conn_required_num_new_connection_id(ngtcp2_conn *conn) { static int conn_enqueue_new_connection_id(ngtcp2_conn *conn) { size_t i, need = conn_required_num_new_connection_id(conn); size_t cidlen = conn->oscid.datalen; - ngtcp2_cid cid; - uint64_t seq; int rv; - uint8_t token[NGTCP2_STATELESS_RESET_TOKENLEN]; ngtcp2_frame_chain *nfrc; ngtcp2_pktns *pktns = &conn->pktns; ngtcp2_scid *scid; ngtcp2_ksl_it it; for (i = 0; i < need; ++i) { - rv = conn_call_get_new_connection_id(conn, &cid, token, cidlen); + rv = ngtcp2_frame_chain_objalloc_new(&nfrc, &conn->frc_objalloc); if (rv != 0) { return rv; } - if (cid.datalen != cidlen) { - return NGTCP2_ERR_CALLBACK_FAILURE; + nfrc->fr.new_connection_id.type = NGTCP2_FRAME_NEW_CONNECTION_ID; + nfrc->fr.new_connection_id.seq = ++conn->scid.last_seq; + nfrc->fr.new_connection_id.retire_prior_to = 0; + + rv = conn_call_get_new_connection_id(conn, &nfrc->fr.new_connection_id.cid, + &nfrc->fr.new_connection_id.token, + cidlen); + if (rv != 0) { + goto fail; + } + + if (nfrc->fr.new_connection_id.cid.datalen != cidlen) { + rv = NGTCP2_ERR_CALLBACK_FAILURE; + goto fail; } /* Assert uniqueness */ - it = ngtcp2_ksl_lower_bound(&conn->scid.set, &cid); + it = + ngtcp2_ksl_lower_bound(&conn->scid.set, &nfrc->fr.new_connection_id.cid); if (!ngtcp2_ksl_it_end(&it) && - ngtcp2_cid_eq(ngtcp2_ksl_it_key(&it), &cid)) { - return NGTCP2_ERR_CALLBACK_FAILURE; + ngtcp2_cid_eq(ngtcp2_ksl_it_key(&it), + &nfrc->fr.new_connection_id.cid)) { + rv = NGTCP2_ERR_CALLBACK_FAILURE; + goto fail; } - seq = ++conn->scid.last_seq; - scid = ngtcp2_mem_malloc(conn->mem, sizeof(*scid)); if (scid == NULL) { - return NGTCP2_ERR_NOMEM; + rv = NGTCP2_ERR_NOMEM; + goto fail; } - ngtcp2_scid_init(scid, seq, &cid); + ngtcp2_scid_init(scid, nfrc->fr.new_connection_id.seq, + &nfrc->fr.new_connection_id.cid); rv = ngtcp2_ksl_insert(&conn->scid.set, NULL, &scid->cid, scid); if (rv != 0) { ngtcp2_mem_free(conn->mem, scid); - return rv; - } - - rv = ngtcp2_frame_chain_objalloc_new(&nfrc, &conn->frc_objalloc); - if (rv != 0) { - return rv; + goto fail; } - nfrc->fr.new_connection_id.type = NGTCP2_FRAME_NEW_CONNECTION_ID; - nfrc->fr.new_connection_id.seq = seq; - nfrc->fr.new_connection_id.retire_prior_to = 0; - nfrc->fr.new_connection_id.cid = cid; - memcpy(nfrc->fr.new_connection_id.stateless_reset_token, token, - sizeof(token)); nfrc->next = pktns->tx.frq; pktns->tx.frq = nfrc; @@ -3266,6 +3306,11 @@ static int conn_enqueue_new_connection_id(ngtcp2_conn *conn) { } return 0; + +fail: + ngtcp2_frame_chain_objalloc_del(nfrc, &conn->frc_objalloc, conn->mem); + + return rv; } static int dcidtr_on_deactivate(const ngtcp2_dcid *dcid, void *user_data) { @@ -3605,9 +3650,10 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, /* PATH_RESPONSE is bound to the path that the corresponding PATH_CHALLENGE is received. */ if (ngtcp2_path_eq(&conn->dcid.current.ps.path, &pcent->ps.path)) { - lfr.path_response.type = NGTCP2_FRAME_PATH_RESPONSE; - memcpy(lfr.path_response.data, pcent->data, - sizeof(lfr.path_response.data)); + lfr.path_response = (ngtcp2_path_response){ + .type = NGTCP2_FRAME_PATH_RESPONSE, + .data = pcent->data, + }; rv = conn_ppe_write_frame_hd_log(conn, ppe, &hd_logged, hd, &lfr); if (rv != 0) { @@ -5121,7 +5167,7 @@ static ngtcp2_ssize conn_write_path_challenge(ngtcp2_conn *conn, return 0; } - rv = conn_call_get_path_challenge_data(conn, lfr.path_challenge.data); + rv = conn_call_get_path_challenge_data(conn, &lfr.path_challenge.data); if (rv != 0) { return rv; } @@ -5153,7 +5199,7 @@ static ngtcp2_ssize conn_write_path_challenge(ngtcp2_conn *conn, flags = NGTCP2_PV_ENTRY_FLAG_NONE; } - ngtcp2_pv_add_entry(pv, lfr.path_challenge.data, expiry, flags, ts); + ngtcp2_pv_add_entry(pv, &lfr.path_challenge.data, expiry, flags, ts); nwrite = ngtcp2_conn_write_single_frame_pkt( conn, pi, dest, destlen, NGTCP2_PKT_1RTT, NGTCP2_WRITE_PKT_FLAG_NONE, @@ -5259,8 +5305,10 @@ static ngtcp2_ssize conn_write_path_response(ngtcp2_conn *conn, } } - lfr.path_response.type = NGTCP2_FRAME_PATH_RESPONSE; - memcpy(lfr.path_response.data, pcent->data, sizeof(lfr.path_response.data)); + lfr.path_response = (ngtcp2_path_response){ + .type = NGTCP2_FRAME_PATH_RESPONSE, + .data = pcent->data, + }; nwrite = ngtcp2_conn_write_single_frame_pkt( conn, pi, dest, destlen, NGTCP2_PKT_1RTT, NGTCP2_WRITE_PKT_FLAG_NONE, @@ -5877,9 +5925,9 @@ decrypt_hp(ngtcp2_pkt_hd *hd, uint8_t *dest, const ngtcp2_crypto_cipher *hp, } if (hd->flags & NGTCP2_PKT_FLAG_LONG_FORM) { - dest[0] = (uint8_t)(dest[0] ^ (mask[0] & 0x0f)); + dest[0] = (uint8_t)(dest[0] ^ (mask[0] & 0x0F)); } else { - dest[0] = (uint8_t)(dest[0] ^ (mask[0] & 0x1f)); + dest[0] = (uint8_t)(dest[0] ^ (mask[0] & 0x1F)); if (dest[0] & NGTCP2_SHORT_KEY_PHASE_BIT) { hd->flags |= NGTCP2_PKT_FLAG_KEY_PHASE; } @@ -5994,7 +6042,7 @@ static void conn_recv_path_challenge(ngtcp2_conn *conn, const ngtcp2_path *path, } ent = ngtcp2_ringbuf_push_front(&conn->rx.path_challenge.rb); - ngtcp2_path_challenge_entry_init(ent, path, fr->data); + ngtcp2_path_challenge_entry_init(ent, path, &fr->data); } /* @@ -6064,7 +6112,7 @@ static int conn_recv_path_response(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd, return 0; } - rv = ngtcp2_pv_validate(pv, &ent_flags, fr->data); + rv = ngtcp2_pv_validate(pv, &ent_flags, &fr->data); if (rv != 0) { assert(!ngtcp2_err_is_fatal(rv)); @@ -6947,6 +6995,10 @@ static ngtcp2_ssize conn_recv_handshake_cpkt(ngtcp2_conn *conn, const uint8_t *origpkt = pkt; uint32_t version; + if (pktlen == 0) { + return 0; + } + if (ngtcp2_path_eq(&conn->dcid.current.ps.path, path)) { conn->dcid.current.bytes_recv += dgramlen; } @@ -7882,9 +7934,8 @@ static int conn_recv_stop_sending(ngtcp2_conn *conn, */ static int check_stateless_reset(const ngtcp2_dcid *dcid, const ngtcp2_path *path, - const ngtcp2_pkt_stateless_reset *sr) { - return ngtcp2_dcid_verify_stateless_reset_token( - dcid, path, sr->stateless_reset_token) == 0; + const ngtcp2_pkt_stateless_reset2 *sr) { + return ngtcp2_dcid_verify_stateless_reset_token(dcid, path, &sr->token) == 0; } /* @@ -7908,7 +7959,7 @@ static int conn_on_stateless_reset(ngtcp2_conn *conn, const ngtcp2_path *path, const uint8_t *payload, size_t payloadlen) { int rv; ngtcp2_pv *pv = conn->pv; - ngtcp2_pkt_stateless_reset sr; + ngtcp2_pkt_stateless_reset2 sr; rv = ngtcp2_pkt_decode_stateless_reset(&sr, payload, payloadlen); if (rv != 0) { @@ -7919,8 +7970,7 @@ static int conn_on_stateless_reset(ngtcp2_conn *conn, const ngtcp2_path *path, (!pv || (!check_stateless_reset(&pv->dcid, path, &sr) && (!(pv->flags & NGTCP2_PV_FLAG_FALLBACK_PRESENT) || !check_stateless_reset(&pv->fallback_dcid, path, &sr))))) { - rv = ngtcp2_dcidtr_verify_stateless_reset(&conn->dcid.dtr, path, - sr.stateless_reset_token); + rv = ngtcp2_dcidtr_verify_stateless_reset(&conn->dcid.dtr, path, &sr.token); if (rv != 0) { return rv; } @@ -8000,7 +8050,7 @@ static int conn_recv_new_connection_id(ngtcp2_conn *conn, } rv = ngtcp2_dcid_verify_uniqueness(&conn->dcid.current, fr->seq, &fr->cid, - fr->stateless_reset_token); + &fr->token); if (rv != 0) { return rv; } @@ -8009,8 +8059,8 @@ static int conn_recv_new_connection_id(ngtcp2_conn *conn, } if (pv) { - rv = ngtcp2_dcid_verify_uniqueness(&pv->dcid, fr->seq, &fr->cid, - fr->stateless_reset_token); + rv = + ngtcp2_dcid_verify_uniqueness(&pv->dcid, fr->seq, &fr->cid, &fr->token); if (rv != 0) { return rv; } @@ -8019,8 +8069,8 @@ static int conn_recv_new_connection_id(ngtcp2_conn *conn, } } - rv = ngtcp2_dcidtr_verify_token_uniqueness( - &conn->dcid.dtr, &found, fr->seq, &fr->cid, fr->stateless_reset_token); + rv = ngtcp2_dcidtr_verify_token_uniqueness(&conn->dcid.dtr, &found, fr->seq, + &fr->cid, &fr->token); if (rv != 0) { return rv; } @@ -8098,8 +8148,7 @@ static int conn_recv_new_connection_id(ngtcp2_conn *conn, return 0; } - ngtcp2_dcidtr_push_unused(&conn->dcid.dtr, fr->seq, &fr->cid, - fr->stateless_reset_token); + ngtcp2_dcidtr_push_unused(&conn->dcid.dtr, fr->seq, &fr->cid, &fr->token); return 0; } @@ -10305,6 +10354,49 @@ int ngtcp2_conn_read_pkt_versioned(ngtcp2_conn *conn, const ngtcp2_path *path, return conn_recv_cpkt(conn, path, pi, pkt, pktlen, ts); } +int ngtcp2_conn_continue_handshake(ngtcp2_conn *conn, ngtcp2_tstamp ts) { + int rv; + ngtcp2_encryption_level encryption_level; + uint64_t offset; + + conn_update_timestamp(conn, ts); + + switch (conn->state) { + case NGTCP2_CS_CLIENT_INITIAL: + case NGTCP2_CS_CLIENT_WAIT_HANDSHAKE: + case NGTCP2_CS_SERVER_INITIAL: + case NGTCP2_CS_SERVER_WAIT_HANDSHAKE: + /* Most of the handshake interruption happens in Initial + encryption level, but this might not be the case depending on + the TLS stack and its functionality and where interruption + occurs. After all, we do not need to support all kinds of + interruptions. */ + if (conn->in_pktns) { + encryption_level = NGTCP2_ENCRYPTION_LEVEL_INITIAL; + offset = ngtcp2_strm_rx_offset(&conn->in_pktns->crypto.strm); + } else if (conn->hs_pktns) { + encryption_level = NGTCP2_ENCRYPTION_LEVEL_HANDSHAKE; + offset = ngtcp2_strm_rx_offset(&conn->hs_pktns->crypto.strm); + } else { + return 0; + } + + rv = conn_call_recv_crypto_data(conn, encryption_level, offset, NULL, 0); + if (rv != 0) { + return rv; + } + + return (int)conn_read_handshake(conn, /* path = */ NULL, /* pi = */ NULL, + /* pkt = */ NULL, 0, ts); + case NGTCP2_CS_CLOSING: + return NGTCP2_ERR_CLOSING; + case NGTCP2_CS_DRAINING: + return NGTCP2_ERR_DRAINING; + default: + return 0; + } +} + /* * conn_check_pkt_num_exhausted returns nonzero if packet number is * exhausted in at least one of packet number space. @@ -10406,6 +10498,7 @@ static ngtcp2_ssize conn_write_handshake(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, size_t origlen = destlen; uint64_t pending_early_datalen; ngtcp2_preferred_addr *paddr; + ngtcp2_stateless_reset_token token; switch (conn->state) { case NGTCP2_CS_CLIENT_INITIAL: @@ -10533,8 +10626,8 @@ static ngtcp2_ssize conn_write_handshake(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, assert(!ngtcp2_dcidtr_unused_full(&conn->dcid.dtr)); paddr = &conn->remote.transport_params->preferred_addr; - ngtcp2_dcidtr_push_unused(&conn->dcid.dtr, 1, &paddr->cid, - paddr->stateless_reset_token); + memcpy(token.data, paddr->stateless_reset_token, sizeof(token.data)); + ngtcp2_dcidtr_push_unused(&conn->dcid.dtr, 1, &paddr->cid, &token); rv = ngtcp2_gaptr_push(&conn->dcid.seqgap, 1, 1); if (rv != 0) { @@ -10542,12 +10635,12 @@ static ngtcp2_ssize conn_write_handshake(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, } } - if (conn->remote.transport_params->stateless_reset_token_present) { - assert(conn->dcid.current.seq == 0); + if (conn->remote.transport_params->stateless_reset_token_present && + conn->dcid.current.seq == 0) { assert(!(conn->dcid.current.flags & NGTCP2_DCID_FLAG_TOKEN_PRESENT)); - ngtcp2_dcid_set_token( - &conn->dcid.current, - conn->remote.transport_params->stateless_reset_token); + memcpy(token.data, conn->remote.transport_params->stateless_reset_token, + sizeof(token.data)); + ngtcp2_dcid_set_token(&conn->dcid.current, &token); } rv = conn_call_activate_dcid(conn, &conn->dcid.current); @@ -10923,8 +11016,7 @@ int ngtcp2_conn_install_rx_handshake_key( if (rv != 0) { ngtcp2_crypto_km_del(pktns->crypto.rx.ckm, conn->mem); pktns->crypto.rx.ckm = NULL; - - memset(&pktns->crypto.rx.hp_ctx, 0, sizeof(pktns->crypto.rx.hp_ctx)); + pktns->crypto.rx.hp_ctx = (ngtcp2_crypto_cipher_ctx){0}; return rv; } @@ -10971,8 +11063,7 @@ int ngtcp2_conn_install_tx_handshake_key( to them. */ ngtcp2_crypto_km_del(pktns->crypto.tx.ckm, conn->mem); pktns->crypto.tx.ckm = NULL; - - memset(&pktns->crypto.tx.hp_ctx, 0, sizeof(pktns->crypto.tx.hp_ctx)); + pktns->crypto.tx.hp_ctx = (ngtcp2_crypto_cipher_ctx){0}; return rv; } @@ -11005,8 +11096,7 @@ int ngtcp2_conn_install_0rtt_key(ngtcp2_conn *conn, if (rv != 0) { ngtcp2_crypto_km_del(conn->early.ckm, conn->mem); conn->early.ckm = NULL; - - memset(&conn->early.hp_ctx, 0, sizeof(conn->early.hp_ctx)); + conn->early.hp_ctx = (ngtcp2_crypto_cipher_ctx){0}; return rv; } @@ -11053,8 +11143,7 @@ int ngtcp2_conn_install_rx_key(ngtcp2_conn *conn, const uint8_t *secret, if (rv != 0) { ngtcp2_crypto_km_del(pktns->crypto.rx.ckm, conn->mem); pktns->crypto.rx.ckm = NULL; - - memset(&pktns->crypto.rx.hp_ctx, 0, sizeof(pktns->crypto.rx.hp_ctx)); + pktns->crypto.rx.hp_ctx = (ngtcp2_crypto_cipher_ctx){0}; return rv; } @@ -11099,8 +11188,7 @@ int ngtcp2_conn_install_tx_key(ngtcp2_conn *conn, const uint8_t *secret, if (rv != 0) { ngtcp2_crypto_km_del(pktns->crypto.tx.ckm, conn->mem); pktns->crypto.tx.ckm = NULL; - - memset(&pktns->crypto.tx.hp_ctx, 0, sizeof(pktns->crypto.tx.hp_ctx)); + pktns->crypto.tx.hp_ctx = (ngtcp2_crypto_cipher_ctx){0}; return rv; } @@ -13485,20 +13573,46 @@ static size_t conn_get_num_active_dcid(ngtcp2_conn *conn) { return n; } -static void copy_dcid_to_cid_token(ngtcp2_cid_token *dest, +size_t ngtcp2_conn_get_active_dcid(ngtcp2_conn *conn, ngtcp2_cid_token *dest) { + ngtcp2_cid_token2 cid_tokens[/* current */ 1 + /* pv */ 2 + + NGTCP2_DCIDTR_MAX_RETIRED_DCID_SIZE]; + size_t n, i; + + if (!dest) { + return ngtcp2_conn_get_active_dcid2(conn, NULL); + } + + n = ngtcp2_conn_get_active_dcid2(conn, cid_tokens); + + for (i = 0; i < n; ++i) { + dest[i].seq = cid_tokens[i].seq; + dest[i].cid = cid_tokens[i].cid; + ngtcp2_path_storage_init2(&dest[i].ps, &cid_tokens[i].ps.path); + dest[i].token_present = cid_tokens[i].token_present; + + if (dest[i].token_present) { + memcpy(dest[i].token, cid_tokens[i].token.data, sizeof(dest[i].token)); + } + } + + return n; +} + +static void copy_dcid_to_cid_token(ngtcp2_cid_token2 *dest, const ngtcp2_dcid *src) { dest->seq = src->seq; dest->cid = src->cid; ngtcp2_path_storage_init2(&dest->ps, &src->ps.path); if ((dest->token_present = (src->flags & NGTCP2_DCID_FLAG_TOKEN_PRESENT) != 0)) { - memcpy(dest->token, src->token, NGTCP2_STATELESS_RESET_TOKENLEN); + dest->token = src->token; } } -size_t ngtcp2_conn_get_active_dcid(ngtcp2_conn *conn, ngtcp2_cid_token *dest) { +size_t ngtcp2_conn_get_active_dcid2(ngtcp2_conn *conn, + ngtcp2_cid_token2 *dest) { ngtcp2_pv *pv = conn->pv; - ngtcp2_cid_token *orig = dest; + ngtcp2_cid_token2 *orig = dest; ngtcp2_dcid *dcid; size_t len, i; @@ -14068,9 +14182,9 @@ ngtcp2_conn_find_path_history(ngtcp2_conn *conn, const ngtcp2_path *path, void ngtcp2_path_challenge_entry_init(ngtcp2_path_challenge_entry *pcent, const ngtcp2_path *path, - const uint8_t *data) { + const ngtcp2_path_challenge_data *data) { ngtcp2_path_storage_init2(&pcent->ps, path); - memcpy(pcent->data, data, sizeof(pcent->data)); + pcent->data = *data; } /* The functions prefixed with ngtcp2_pkt_ are usually put inside diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h index a6f7616ee0..47175736d4 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h @@ -94,35 +94,35 @@ typedef enum { #define NGTCP2_CCERR_MAX_REASONLEN 1024 /* NGTCP2_WRITE_PKT_FLAG_NONE indicates that no flag is set. */ -#define NGTCP2_WRITE_PKT_FLAG_NONE 0x00u +#define NGTCP2_WRITE_PKT_FLAG_NONE 0x00U /* NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING indicates that packet other than Initial packet should be padded so that UDP datagram payload is at least NGTCP2_MAX_UDP_PAYLOAD_SIZE bytes. Initial packet might be padded based on QUIC requirement regardless of this flag. */ -#define NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING 0x01u +#define NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING 0x01U /* NGTCP2_WRITE_PKT_FLAG_MORE indicates that more frames might come and it should be encoded into the current packet. */ -#define NGTCP2_WRITE_PKT_FLAG_MORE 0x02u +#define NGTCP2_WRITE_PKT_FLAG_MORE 0x02U /* NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING_FULL is just like NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING, but it requests to add padding to the full UDP datagram payload size. */ -#define NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING_FULL 0x04u +#define NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING_FULL 0x04U /* NGTCP2_WRITE_PKT_FLAG_PADDING_IF_NOT_EMPTY adds padding to the QUIC packet as much as possible if the packet is not empty. */ -#define NGTCP2_WRITE_PKT_FLAG_PADDING_IF_NOT_EMPTY 0x08u +#define NGTCP2_WRITE_PKT_FLAG_PADDING_IF_NOT_EMPTY 0x08U typedef struct ngtcp2_path_challenge_entry { ngtcp2_path_storage ps; - uint8_t data[NGTCP2_PATH_CHALLENGE_DATALEN]; + ngtcp2_path_challenge_data data; } ngtcp2_path_challenge_entry; void ngtcp2_path_challenge_entry_init(ngtcp2_path_challenge_entry *pcent, const ngtcp2_path *path, - const uint8_t *data); + const ngtcp2_path_challenge_data *data); /* NGTCP2_CONN_FLAG_NONE indicates that no flag is set. */ -#define NGTCP2_CONN_FLAG_NONE 0x00u +#define NGTCP2_CONN_FLAG_NONE 0x00U /* NGTCP2_CONN_FLAG_TLS_HANDSHAKE_COMPLETED is set when TLS stack declares that TLS handshake has completed. The condition of this declaration varies between TLS implementations and this flag does @@ -130,69 +130,69 @@ void ngtcp2_path_challenge_entry_init(ngtcp2_path_challenge_entry *pcent, implementations declare TLS handshake completion as server when they write off Server Finished and before deriving application rx secret. */ -#define NGTCP2_CONN_FLAG_TLS_HANDSHAKE_COMPLETED 0x01u +#define NGTCP2_CONN_FLAG_TLS_HANDSHAKE_COMPLETED 0x01U /* NGTCP2_CONN_FLAG_INITIAL_PKT_PROCESSED is set when the first Initial packet has successfully been processed. */ -#define NGTCP2_CONN_FLAG_INITIAL_PKT_PROCESSED 0x02u +#define NGTCP2_CONN_FLAG_INITIAL_PKT_PROCESSED 0x02U /* NGTCP2_CONN_FLAG_TRANSPORT_PARAM_RECVED is set if transport parameters are received. */ -#define NGTCP2_CONN_FLAG_TRANSPORT_PARAM_RECVED 0x04u +#define NGTCP2_CONN_FLAG_TRANSPORT_PARAM_RECVED 0x04U /* NGTCP2_CONN_FLAG_LOCAL_TRANSPORT_PARAMS_COMMITTED is set when a local transport parameters are applied. */ -#define NGTCP2_CONN_FLAG_LOCAL_TRANSPORT_PARAMS_COMMITTED 0x08u +#define NGTCP2_CONN_FLAG_LOCAL_TRANSPORT_PARAMS_COMMITTED 0x08U /* NGTCP2_CONN_FLAG_RECV_RETRY is set when a client receives Retry packet. */ -#define NGTCP2_CONN_FLAG_RECV_RETRY 0x10u +#define NGTCP2_CONN_FLAG_RECV_RETRY 0x10U /* NGTCP2_CONN_FLAG_EARLY_DATA_REJECTED is set when 0-RTT packet is rejected by a peer. */ -#define NGTCP2_CONN_FLAG_EARLY_DATA_REJECTED 0x20u +#define NGTCP2_CONN_FLAG_EARLY_DATA_REJECTED 0x20U /* NGTCP2_CONN_FLAG_KEEP_ALIVE_CANCELLED is set when the expired keep-alive timer has been cancelled. */ -#define NGTCP2_CONN_FLAG_KEEP_ALIVE_CANCELLED 0x40u +#define NGTCP2_CONN_FLAG_KEEP_ALIVE_CANCELLED 0x40U /* NGTCP2_CONN_FLAG_HANDSHAKE_CONFIRMED is set when an endpoint confirmed completion of handshake. */ -#define NGTCP2_CONN_FLAG_HANDSHAKE_CONFIRMED 0x80u +#define NGTCP2_CONN_FLAG_HANDSHAKE_CONFIRMED 0x80U /* NGTCP2_CONN_FLAG_HANDSHAKE_COMPLETED is set when the library transitions its state to "post handshake". */ -#define NGTCP2_CONN_FLAG_HANDSHAKE_COMPLETED 0x0100u +#define NGTCP2_CONN_FLAG_HANDSHAKE_COMPLETED 0x0100U /* NGTCP2_CONN_FLAG_HANDSHAKE_EARLY_RETRANSMIT is set when the early handshake retransmission has done when server receives overlapping Initial crypto data. */ -#define NGTCP2_CONN_FLAG_HANDSHAKE_EARLY_RETRANSMIT 0x0200u +#define NGTCP2_CONN_FLAG_HANDSHAKE_EARLY_RETRANSMIT 0x0200U /* NGTCP2_CONN_FLAG_CLEAR_FIXED_BIT indicates that the local endpoint sends a QUIC packet without Fixed Bit set if a remote endpoint supports Greasing QUIC Bit extension. */ -#define NGTCP2_CONN_FLAG_CLEAR_FIXED_BIT 0x0400u +#define NGTCP2_CONN_FLAG_CLEAR_FIXED_BIT 0x0400U /* NGTCP2_CONN_FLAG_KEY_UPDATE_NOT_CONFIRMED is set when key update is not confirmed by the local endpoint. That is, it has not received ACK frame which acknowledges packet which is encrypted with new key. */ -#define NGTCP2_CONN_FLAG_KEY_UPDATE_NOT_CONFIRMED 0x0800u +#define NGTCP2_CONN_FLAG_KEY_UPDATE_NOT_CONFIRMED 0x0800U /* NGTCP2_CONN_FLAG_PPE_PENDING is set when NGTCP2_WRITE_STREAM_FLAG_MORE is used and the intermediate state of ngtcp2_ppe is stored in pkt struct of ngtcp2_conn. */ -#define NGTCP2_CONN_FLAG_PPE_PENDING 0x1000u +#define NGTCP2_CONN_FLAG_PPE_PENDING 0x1000U /* NGTCP2_CONN_FLAG_RESTART_IDLE_TIMER_ON_WRITE is set when idle timer should be restarted on next write. */ -#define NGTCP2_CONN_FLAG_RESTART_IDLE_TIMER_ON_WRITE 0x2000u +#define NGTCP2_CONN_FLAG_RESTART_IDLE_TIMER_ON_WRITE 0x2000U /* NGTCP2_CONN_FLAG_SERVER_ADDR_VERIFIED indicates that server as peer verified client address. This flag is only used by client. */ -#define NGTCP2_CONN_FLAG_SERVER_ADDR_VERIFIED 0x4000u +#define NGTCP2_CONN_FLAG_SERVER_ADDR_VERIFIED 0x4000U /* NGTCP2_CONN_FLAG_EARLY_KEY_INSTALLED indicates that an early key is installed. conn->early.ckm cannot be used for this purpose because it might be discarded when a certain condition is met. */ -#define NGTCP2_CONN_FLAG_EARLY_KEY_INSTALLED 0x8000u +#define NGTCP2_CONN_FLAG_EARLY_KEY_INSTALLED 0x8000U /* NGTCP2_CONN_FLAG_KEY_UPDATE_INITIATOR is set when the local endpoint has initiated key update. */ -#define NGTCP2_CONN_FLAG_KEY_UPDATE_INITIATOR 0x10000u +#define NGTCP2_CONN_FLAG_KEY_UPDATE_INITIATOR 0x10000U /* NGTCP2_CONN_FLAG_AGGREGATE_PKTS is set when ngtcp2_conn_writev_stream is called inside the callback invoked by ngtcp2_conn_write_aggregate_pkt. */ -#define NGTCP2_CONN_FLAG_AGGREGATE_PKTS 0x20000u +#define NGTCP2_CONN_FLAG_AGGREGATE_PKTS 0x20000U /* NGTCP2_CONN_FLAG_CRUMBLE_INITIAL_CRYPTO, if set, crumbles an Initial CRYPTO frame into pieces as a countermeasure against Deep Packet Inspection. */ -#define NGTCP2_CONN_FLAG_CRUMBLE_INITIAL_CRYPTO 0x40000u +#define NGTCP2_CONN_FLAG_CRUMBLE_INITIAL_CRYPTO 0x40000U typedef struct ngtcp2_pktns { struct { @@ -943,7 +943,7 @@ ngtcp2_conn_server_negotiate_version(ngtcp2_conn *conn, * @function * * `ngtcp2_conn_write_connection_close_pkt` writes a packet which - * contains a CONNECTION_CLOSE frame (type 0x1c) in the buffer pointed + * contains a CONNECTION_CLOSE frame (type 0x1C) in the buffer pointed * by |dest| whose capacity is |datalen|. * * If |path| is not ``NULL``, this function stores the network path @@ -985,7 +985,7 @@ ngtcp2_ssize ngtcp2_conn_write_connection_close_pkt( * @function * * `ngtcp2_conn_write_application_close_pkt` writes a packet which - * contains a CONNECTION_CLOSE frame (type 0x1d) in the buffer pointed + * contains a CONNECTION_CLOSE frame (type 0x1D) in the buffer pointed * by |dest| whose capacity is |datalen|. * * If |path| is not ``NULL``, this function stores the network path @@ -998,7 +998,7 @@ ngtcp2_ssize ngtcp2_conn_write_connection_close_pkt( * if it succeeds. The metadata includes ECN markings. * * If handshake has not been confirmed yet, CONNECTION_CLOSE (type - * 0x1c) with error code :macro:`NGTCP2_APPLICATION_ERROR` is written + * 0x1C) with error code :macro:`NGTCP2_APPLICATION_ERROR` is written * instead. * * This function must not be called from inside the callback diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c index 7b2e02e5b1..a0cef0c864 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c @@ -74,21 +74,21 @@ static const uint8_t *get_uvarint(uint64_t *dest, const uint8_t *p) { case 1: memcpy(&n16, p, 2); n16 = ngtcp2_ntohs(n16); - n16 &= 0x3fff; + n16 &= 0x3FFF; *dest = n16; return p + 2; case 2: memcpy(&n32, p, 4); n32 = ngtcp2_ntohl(n32); - n32 &= 0x3fffffff; + n32 &= 0x3FFFFFFF; *dest = n32; return p + 4; case 3: memcpy(&n64, p, 8); n64 = ngtcp2_ntohl64(n64); - n64 &= 0x3fffffffffffffff; + n64 &= 0x3FFFFFFFFFFFFFFF; *dest = n64; return p + 8; @@ -168,7 +168,7 @@ uint8_t *ngtcp2_put_uvarint(uint8_t *p, uint64_t n) { } assert(n < 4611686018427387904ULL); rv = ngtcp2_put_uint64be(p, n); - *p |= 0xc0; + *p |= 0xC0; return rv; } @@ -200,7 +200,7 @@ uint8_t *ngtcp2_put_pkt_num(uint8_t *p, int64_t pkt_num, size_t len) { } size_t ngtcp2_get_uvarintlen(const uint8_t *p) { - return (size_t)(1u << (*p >> 6)); + return (size_t)(1U << (*p >> 6)); } size_t ngtcp2_put_uvarintlen(uint64_t n) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.h index ca6d494846..c1e786b5fc 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.h @@ -42,10 +42,10 @@ #define NGTCP2_MAX_AEAD_OVERHEAD 16 /* NGTCP2_CRYPTO_KM_FLAG_NONE indicates that no flag is set. */ -#define NGTCP2_CRYPTO_KM_FLAG_NONE 0x00u +#define NGTCP2_CRYPTO_KM_FLAG_NONE 0x00U /* NGTCP2_CRYPTO_KM_FLAG_KEY_PHASE_ONE is set if key phase bit is set. */ -#define NGTCP2_CRYPTO_KM_FLAG_KEY_PHASE_ONE 0x01u +#define NGTCP2_CRYPTO_KM_FLAG_KEY_PHASE_ONE 0x01U typedef struct ngtcp2_crypto_km { ngtcp2_vec secret; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c index 170b9f803c..a312398bbf 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c @@ -157,9 +157,9 @@ int ngtcp2_dcidtr_bind_dcid(ngtcp2_dcidtr *dtr, ngtcp2_dcid **pdest, return 0; } -int ngtcp2_dcidtr_verify_stateless_reset(const ngtcp2_dcidtr *dtr, - const ngtcp2_path *path, - const uint8_t *token) { +int ngtcp2_dcidtr_verify_stateless_reset( + const ngtcp2_dcidtr *dtr, const ngtcp2_path *path, + const ngtcp2_stateless_reset_token *token) { const ngtcp2_dcid *dcid; const ngtcp2_ringbuf *rb = &dtr->bound.rb; size_t i, len = ngtcp2_ringbuf_len(rb); @@ -176,7 +176,7 @@ int ngtcp2_dcidtr_verify_stateless_reset(const ngtcp2_dcidtr *dtr, static int verify_token_uniqueness(const ngtcp2_ringbuf *rb, int *pfound, uint64_t seq, const ngtcp2_cid *cid, - const uint8_t *token) { + const ngtcp2_stateless_reset_token *token) { const ngtcp2_dcid *dcid; size_t i, len = ngtcp2_ringbuf_len(rb); int rv; @@ -196,9 +196,9 @@ static int verify_token_uniqueness(const ngtcp2_ringbuf *rb, int *pfound, return 0; } -int ngtcp2_dcidtr_verify_token_uniqueness(const ngtcp2_dcidtr *dtr, int *pfound, - uint64_t seq, const ngtcp2_cid *cid, - const uint8_t *token) { +int ngtcp2_dcidtr_verify_token_uniqueness( + const ngtcp2_dcidtr *dtr, int *pfound, uint64_t seq, const ngtcp2_cid *cid, + const ngtcp2_stateless_reset_token *token) { int rv; rv = verify_token_uniqueness(&dtr->bound.rb, pfound, seq, cid, token); @@ -406,7 +406,8 @@ ngtcp2_tstamp ngtcp2_dcidtr_earliest_retired_ts(const ngtcp2_dcidtr *dtr) { } void ngtcp2_dcidtr_push_unused(ngtcp2_dcidtr *dtr, uint64_t seq, - const ngtcp2_cid *cid, const uint8_t *token) { + const ngtcp2_cid *cid, + const ngtcp2_stateless_reset_token *token) { ngtcp2_dcid *dcid = ngtcp2_ringbuf_push_back(&dtr->unused.rb); ngtcp2_dcid_init(dcid, seq, cid, token); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.h index 63043427bc..945ed12bae 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.h @@ -154,9 +154,9 @@ int ngtcp2_dcidtr_bind_dcid(ngtcp2_dcidtr *dtr, ngtcp2_dcid **pdest, * There is no Destination Connection ID that matches the given * |path| and |token|. */ -int ngtcp2_dcidtr_verify_stateless_reset(const ngtcp2_dcidtr *dtr, - const ngtcp2_path *path, - const uint8_t *token); +int ngtcp2_dcidtr_verify_stateless_reset( + const ngtcp2_dcidtr *dtr, const ngtcp2_path *path, + const ngtcp2_stateless_reset_token *token); /* * ngtcp2_dcidtr_verify_token_uniqueness verifies that the uniqueness @@ -180,9 +180,9 @@ int ngtcp2_dcidtr_verify_stateless_reset(const ngtcp2_dcidtr *dtr, * The given combination of values does not satisfy the above * conditions. */ -int ngtcp2_dcidtr_verify_token_uniqueness(const ngtcp2_dcidtr *dtr, int *pfound, - uint64_t seq, const ngtcp2_cid *cid, - const uint8_t *token); +int ngtcp2_dcidtr_verify_token_uniqueness( + const ngtcp2_dcidtr *dtr, int *pfound, uint64_t seq, const ngtcp2_cid *cid, + const ngtcp2_stateless_reset_token *token); /* * ngtcp2_dcidtr_retire_inactive_dcid_prior_to retires inactive @@ -273,7 +273,8 @@ ngtcp2_tstamp ngtcp2_dcidtr_earliest_retired_ts(const ngtcp2_dcidtr *dtr); * buffer space is full, the earliest ngtcp2_dcid is removed. */ void ngtcp2_dcidtr_push_unused(ngtcp2_dcidtr *dtr, uint64_t seq, - const ngtcp2_cid *cid, const uint8_t *token); + const ngtcp2_cid *cid, + const ngtcp2_stateless_reset_token *token); /* * ngtcp2_dcidtr_pop_unused_cid_token removes an unused Destination diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h index 5342b9fa7b..c73100dbcb 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h @@ -36,10 +36,10 @@ /* NGTCP2_FRAME_CHAIN_BINDER_FLAG_NONE indicates that no flag is set. */ -#define NGTCP2_FRAME_CHAIN_BINDER_FLAG_NONE 0x00u +#define NGTCP2_FRAME_CHAIN_BINDER_FLAG_NONE 0x00U /* NGTCP2_FRAME_CHAIN_BINDER_FLAG_ACK indicates that an information which a frame carries has been acknowledged. */ -#define NGTCP2_FRAME_CHAIN_BINDER_FLAG_ACK 0x01u +#define NGTCP2_FRAME_CHAIN_BINDER_FLAG_ACK 0x01U /* * ngtcp2_frame_chain_binder binds 2 or more of ngtcp2_frame_chain to diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c index be3c9e182b..80000f42f9 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c @@ -55,12 +55,12 @@ void ngtcp2_ksl_init(ngtcp2_ksl *ksl, ngtcp2_ksl_compar compar, assert(keylen >= sizeof(uint64_t)); - aligned_keylen = (keylen + 0x7u) & ~0x7u; + aligned_keylen = (keylen + 0x7U) & ~0x7U; assert(aligned_keylen <= UINT16_MAX); ngtcp2_objalloc_init(&ksl->blkalloc, - (ksl_blklen(aligned_keylen) + 0xfu) & ~(uintptr_t)0xfu, + (ksl_blklen(aligned_keylen) + 0xFU) & ~(uintptr_t)0xFU, mem); ksl->root = NULL; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c index 39fd6969a5..191c64430b 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c @@ -47,7 +47,7 @@ void ngtcp2_log_init(ngtcp2_log *log, const ngtcp2_cid *scid, log->scid[0] = '\0'; } log->log_printf = log_printf; - log->events = 0xff; + log->events = 0xFF; log->ts = log->last_ts = ts; log->user_data = user_data; } @@ -134,7 +134,7 @@ static const char *strerrorcode(uint64_t error_code) { case NGTCP2_VERSION_NEGOTIATION_ERROR: return "VERSION_NEGOTIATION_ERROR"; default: - if (0x100u <= error_code && error_code <= 0x1ffu) { + if (0x100U <= error_code && error_code <= 0x1FFU) { return "CRYPTO_ERROR"; } return "(unknown)"; @@ -328,7 +328,7 @@ static void log_fr_streams_blocked(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, static void log_fr_new_connection_id(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_new_connection_id *fr, const char *dir) { - char buf[sizeof(fr->stateless_reset_token) * 2 + 1]; + char buf[sizeof(fr->token.data) * 2 + 1]; char cid[sizeof(fr->cid.data) * 2 + 1]; ngtcp2_log_infof_raw( @@ -339,8 +339,7 @@ static void log_fr_new_connection_id(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->seq, ngtcp2_encode_hex_cstr(cid, fr->cid.data, fr->cid.datalen), fr->retire_prior_to, - ngtcp2_encode_hex_cstr(buf, fr->stateless_reset_token, - sizeof(fr->stateless_reset_token))); + ngtcp2_encode_hex_cstr(buf, fr->token.data, sizeof(fr->token.data))); } static void log_fr_stop_sending(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -357,25 +356,25 @@ static void log_fr_stop_sending(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, static void log_fr_path_challenge(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_path_challenge *fr, const char *dir) { - char buf[sizeof(fr->data) * 2 + 1]; + char buf[sizeof(fr->data.data) * 2 + 1]; - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " PATH_CHALLENGE(0x%02" PRIx64 - ") data=0x%s", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, - ngtcp2_encode_hex_cstr(buf, fr->data, sizeof(fr->data))); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " PATH_CHALLENGE(0x%02" PRIx64 ") data=0x%s", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, + ngtcp2_encode_hex_cstr(buf, fr->data.data, sizeof(fr->data.data))); } static void log_fr_path_response(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_path_response *fr, const char *dir) { - char buf[sizeof(fr->data) * 2 + 1]; + char buf[sizeof(fr->data.data) * 2 + 1]; - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " PATH_RESPONSE(0x%02" PRIx64 - ") data=0x%s", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, - ngtcp2_encode_hex_cstr(buf, fr->data, sizeof(fr->data))); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_FRM, + NGTCP2_LOG_PKT " PATH_RESPONSE(0x%02" PRIx64 ") data=0x%s", + NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, + ngtcp2_encode_hex_cstr(buf, fr->data.data, sizeof(fr->data.data))); } static void log_fr_crypto(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -542,8 +541,8 @@ void ngtcp2_log_rx_vn(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, } } -void ngtcp2_log_rx_sr(ngtcp2_log *log, const ngtcp2_pkt_stateless_reset *sr) { - char buf[sizeof(sr->stateless_reset_token) * 2 + 1]; +void ngtcp2_log_rx_sr(ngtcp2_log *log, const ngtcp2_pkt_stateless_reset2 *sr) { + char buf[sizeof(sr->token.data) * 2 + 1]; ngtcp2_pkt_hd shd; ngtcp2_pkt_hd *hd = &shd; @@ -558,14 +557,13 @@ void ngtcp2_log_rx_sr(ngtcp2_log *log, const ngtcp2_pkt_stateless_reset *sr) { ngtcp2_log_infof_raw( log, NGTCP2_LOG_EVENT_PKT, NGTCP2_LOG_PKT " token=0x%s randlen=%zu", NGTCP2_LOG_PKT_HD_FIELDS("rx"), - ngtcp2_encode_hex_cstr(buf, sr->stateless_reset_token, - sizeof(sr->stateless_reset_token)), + ngtcp2_encode_hex_cstr(buf, sr->token.data, sizeof(sr->token.data)), sr->randlen); } void ngtcp2_log_remote_tp(ngtcp2_log *log, const ngtcp2_transport_params *params) { - char token[NGTCP2_STATELESS_RESET_TOKENLEN * 2 + 1]; + char token[sizeof(params->stateless_reset_token) * 2 + 1]; char addr[16 * 2 + 7 + 1]; char cid[NGTCP2_MAX_CIDLEN * 2 + 1]; size_t i; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h index 02726bc19d..b8bccb9d09 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h @@ -107,7 +107,7 @@ void ngtcp2_log_tx_fr(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, void ngtcp2_log_rx_vn(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const uint32_t *sv, size_t nsv); -void ngtcp2_log_rx_sr(ngtcp2_log *log, const ngtcp2_pkt_stateless_reset *sr); +void ngtcp2_log_rx_sr(ngtcp2_log *log, const ngtcp2_pkt_stateless_reset2 *sr); void ngtcp2_log_remote_tp(ngtcp2_log *log, const ngtcp2_transport_params *params); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c index 6b332f6b58..3ad4b9f1ef 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_map.c @@ -77,10 +77,10 @@ int ngtcp2_map_each(const ngtcp2_map *map, int (*func)(void *data, void *ptr), /* Hasher from https://github.com/rust-lang/rustc-hash/blob/dc5c33f1283de2da64d8d7a06401d91aded03ad4/src/lib.rs to maximize the output's sensitivity to all input bits. */ -#define NGTCP2_MAP_HASHER 0xf1357aea2e62a9c5ull +#define NGTCP2_MAP_HASHER 0xF1357AEA2E62A9C5ULL /* 64-bit Fibonacci hashing constant, Golden Ratio constant, to get the high bits with the good distribution. */ -#define NGTCP2_MAP_FIBO 0x9e3779b97f4a7c15ull +#define NGTCP2_MAP_FIBO 0x9E3779B97F4A7C15ULL static size_t map_index(const ngtcp2_map *map, ngtcp2_map_key_type key) { key += map->seed; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_net.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_net.h index 103a2fb2d8..35a807f9fe 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_net.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_net.h @@ -97,9 +97,9 @@ STIN uint32_t ngtcp2_htonl(uint32_t hostlong) { uint32_t res; unsigned char *p = (unsigned char *)&res; *p++ = (unsigned char)(hostlong >> 24); - *p++ = (hostlong >> 16) & 0xffu; - *p++ = (hostlong >> 8) & 0xffu; - *p = hostlong & 0xffu; + *p++ = (hostlong >> 16) & 0xFFU; + *p++ = (hostlong >> 8) & 0xFFU; + *p = hostlong & 0xFFU; return res; } @@ -107,7 +107,7 @@ STIN uint16_t ngtcp2_htons(uint16_t hostshort) { uint16_t res; unsigned char *p = (unsigned char *)&res; *p++ = (unsigned char)(hostshort >> 8); - *p = hostshort & 0xffu; + *p = hostshort & 0xFFU; return res; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_objalloc.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_objalloc.h index cf23de7b2b..4b6df53857 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_objalloc.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_objalloc.h @@ -69,7 +69,7 @@ void ngtcp2_objalloc_clear(ngtcp2_objalloc *objalloc); inline static void ngtcp2_objalloc_##NAME##_init( \ ngtcp2_objalloc *objalloc, size_t nmemb, const ngtcp2_mem *mem) { \ ngtcp2_objalloc_init( \ - objalloc, ((sizeof(TYPE) + 0xfu) & ~(uintptr_t)0xfu) * nmemb, mem); \ + objalloc, ((sizeof(TYPE) + 0xFU) & ~(uintptr_t)0xFU) * nmemb, mem); \ } \ \ TYPE *ngtcp2_objalloc_##NAME##_get(ngtcp2_objalloc *objalloc); \ @@ -123,7 +123,7 @@ void ngtcp2_objalloc_clear(ngtcp2_objalloc *objalloc); inline static void ngtcp2_objalloc_##NAME##_init( \ ngtcp2_objalloc *objalloc, size_t nmemb, const ngtcp2_mem *mem) { \ ngtcp2_objalloc_init( \ - objalloc, ((sizeof(TYPE) + 0xfu) & ~(uintptr_t)0xfu) * nmemb, mem); \ + objalloc, ((sizeof(TYPE) + 0xFU) & ~(uintptr_t)0xFU) * nmemb, mem); \ } \ \ inline static TYPE *ngtcp2_objalloc_##NAME##_get( \ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c index c8490467e4..ddaf94a779 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pcg.c @@ -70,8 +70,8 @@ static uint32_t pcg_rotr_32(uint32_t value, unsigned int rot) { } static uint32_t pcg_output_xsh_rr_64_32(uint64_t state) { - return pcg_rotr_32((uint32_t)(((state >> 18u) ^ state) >> 27u), - (unsigned int)(state >> 59u)); + return pcg_rotr_32((uint32_t)(((state >> 18U) ^ state) >> 27U), + (unsigned int)(state >> 59U)); } uint32_t ngtcp2_pcg32_rand(ngtcp2_pcg32 *pcg) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c index a63913f8af..f86e65118d 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c @@ -565,7 +565,7 @@ ngtcp2_ssize ngtcp2_frame_decoder_decode(ngtcp2_frame_decoder *frd, return ngtcp2_pkt_decode_stream_frame(&dest->stream, payload, payloadlen); } - /* For frame types > 0xff, use ngtcp2_get_uvarintlen and + /* For frame types > 0xFF, use ngtcp2_get_uvarintlen and ngtcp2_get_uvarint to get a frame type, and then switch over it. Verify that payloadlen >= ngtcp2_get_uvarintlen(payload) before calling ngtcp2_get_uvarint(payload). */ @@ -1208,8 +1208,7 @@ ngtcp2_ssize ngtcp2_pkt_decode_new_connection_id_frame( ++p; ngtcp2_cid_init(&dest->cid, p, cil); p += cil; - p = ngtcp2_get_bytes(dest->stateless_reset_token, p, - NGTCP2_STATELESS_RESET_TOKENLEN); + p = ngtcp2_get_bytes(dest->token.data, p, sizeof(dest->token.data)); assert((size_t)(p - payload) == len); @@ -1268,7 +1267,7 @@ ngtcp2_ssize ngtcp2_pkt_decode_path_challenge_frame(ngtcp2_path_challenge *dest, p = payload + 1; dest->type = NGTCP2_FRAME_PATH_CHALLENGE; - ngtcp2_cpymem(dest->data, p, sizeof(dest->data)); + ngtcp2_cpymem(dest->data.data, p, sizeof(dest->data.data)); p += sizeof(dest->data); assert((size_t)(p - payload) == len); @@ -1289,7 +1288,7 @@ ngtcp2_ssize ngtcp2_pkt_decode_path_response_frame(ngtcp2_path_response *dest, p = payload + 1; dest->type = NGTCP2_FRAME_PATH_RESPONSE; - ngtcp2_cpymem(dest->data, p, sizeof(dest->data)); + ngtcp2_cpymem(dest->data.data, p, sizeof(dest->data.data)); p += sizeof(dest->data); assert((size_t)(p - payload) == len); @@ -1883,7 +1882,7 @@ ngtcp2_pkt_encode_new_connection_id_frame(uint8_t *out, size_t outlen, const ngtcp2_new_connection_id *fr) { size_t len = 1 + ngtcp2_put_uvarintlen(fr->seq) + ngtcp2_put_uvarintlen(fr->retire_prior_to) + 1 + - fr->cid.datalen + NGTCP2_STATELESS_RESET_TOKENLEN; + fr->cid.datalen + sizeof(fr->token.data); uint8_t *p; if (outlen < len) { @@ -1897,8 +1896,7 @@ ngtcp2_pkt_encode_new_connection_id_frame(uint8_t *out, size_t outlen, p = ngtcp2_put_uvarint(p, fr->retire_prior_to); *p++ = (uint8_t)fr->cid.datalen; p = ngtcp2_cpymem(p, fr->cid.data, fr->cid.datalen); - p = ngtcp2_cpymem(p, fr->stateless_reset_token, - NGTCP2_STATELESS_RESET_TOKENLEN); + p = ngtcp2_cpymem(p, fr->token.data, sizeof(fr->token.data)); assert((size_t)(p - out) == len); @@ -1940,7 +1938,7 @@ ngtcp2_pkt_encode_path_challenge_frame(uint8_t *out, size_t outlen, p = out; *p++ = NGTCP2_FRAME_PATH_CHALLENGE; - p = ngtcp2_cpymem(p, fr->data, sizeof(fr->data)); + p = ngtcp2_cpymem(p, fr->data.data, sizeof(fr->data.data)); assert((size_t)(p - out) == len); @@ -1960,7 +1958,7 @@ ngtcp2_pkt_encode_path_response_frame(uint8_t *out, size_t outlen, p = out; *p++ = NGTCP2_FRAME_PATH_RESPONSE; - p = ngtcp2_cpymem(p, fr->data, sizeof(fr->data)); + p = ngtcp2_cpymem(p, fr->data.data, sizeof(fr->data.data)); assert((size_t)(p - out) == len); @@ -2116,7 +2114,7 @@ ngtcp2_ssize ngtcp2_pkt_write_version_negotiation( p = dest; - *p++ = 0xc0 | unused_random; + *p++ = 0xC0 | unused_random; p = ngtcp2_put_uint32be(p, 0); *p++ = (uint8_t)dcidlen; @@ -2153,20 +2151,20 @@ size_t ngtcp2_pkt_decode_version_negotiation(uint32_t *dest, return payloadlen / sizeof(uint32_t); } -int ngtcp2_pkt_decode_stateless_reset(ngtcp2_pkt_stateless_reset *sr, +int ngtcp2_pkt_decode_stateless_reset(ngtcp2_pkt_stateless_reset2 *sr, const uint8_t *payload, size_t payloadlen) { const uint8_t *p = payload; if (payloadlen < - NGTCP2_MIN_STATELESS_RESET_RANDLEN + NGTCP2_STATELESS_RESET_TOKENLEN) { + NGTCP2_MIN_STATELESS_RESET_RANDLEN + sizeof(sr->token.data)) { return NGTCP2_ERR_INVALID_ARGUMENT; } sr->rand = p; - sr->randlen = payloadlen - NGTCP2_STATELESS_RESET_TOKENLEN; + sr->randlen = payloadlen - sizeof(sr->token.data); p += sr->randlen; - memcpy(sr->stateless_reset_token, p, NGTCP2_STATELESS_RESET_TOKENLEN); + memcpy(sr->token.data, p, sizeof(sr->token.data)); return 0; } @@ -2245,10 +2243,21 @@ ngtcp2_ssize ngtcp2_pkt_write_stateless_reset(uint8_t *dest, size_t destlen, const uint8_t *stateless_reset_token, const uint8_t *rand, size_t randlen) { + ngtcp2_stateless_reset_token token; + + memcpy(token.data, stateless_reset_token, sizeof(token.data)); + + return ngtcp2_pkt_write_stateless_reset2(dest, destlen, &token, rand, + randlen); +} + +ngtcp2_ssize +ngtcp2_pkt_write_stateless_reset2(uint8_t *dest, size_t destlen, + const ngtcp2_stateless_reset_token *token, + const uint8_t *rand, size_t randlen) { uint8_t *p; - if (destlen < - NGTCP2_MIN_STATELESS_RESET_RANDLEN + NGTCP2_STATELESS_RESET_TOKENLEN) { + if (destlen < NGTCP2_MIN_STATELESS_RESET_RANDLEN + sizeof(token->data)) { return NGTCP2_ERR_NOBUF; } @@ -2258,11 +2267,11 @@ ngtcp2_pkt_write_stateless_reset(uint8_t *dest, size_t destlen, p = dest; - randlen = ngtcp2_min_size(destlen - NGTCP2_STATELESS_RESET_TOKENLEN, randlen); + randlen = ngtcp2_min_size(destlen - sizeof(token->data), randlen); p = ngtcp2_cpymem(p, rand, randlen); - p = ngtcp2_cpymem(p, stateless_reset_token, NGTCP2_STATELESS_RESET_TOKENLEN); - *dest = (uint8_t)((*dest & 0x7fu) | 0x40u); + p = ngtcp2_cpymem(p, token->data, sizeof(token->data)); + *dest = (uint8_t)((*dest & 0x3FU) | 0x40U); return p - dest; } @@ -2356,7 +2365,7 @@ ngtcp2_ssize ngtcp2_pkt_encode_pseudo_retry( return NGTCP2_ERR_NOBUF; } - *p &= 0xf0; + *p &= 0xF0; *p |= unused; p += nwrite; @@ -2430,7 +2439,7 @@ size_t ngtcp2_pkt_stream_max_datalen(int64_t stream_id, uint64_t offset, left -= n; if (left > 8 + 1073741823 && len > 1073741823) { - len = ngtcp2_min_uint64(len, 4611686018427387903lu); + len = ngtcp2_min_uint64(len, 4611686018427387903UL); return (size_t)ngtcp2_min_uint64(len, (uint64_t)(left - 8)); } @@ -2461,7 +2470,7 @@ size_t ngtcp2_pkt_crypto_max_datalen(uint64_t offset, size_t len, size_t left) { if (left > 8 + 1073741823 && len > 1073741823) { #if SIZE_MAX == UINT64_MAX - len = ngtcp2_min_size(len, 4611686018427387903lu); + len = ngtcp2_min_size(len, 4611686018427387903UL); #endif /* SIZE_MAX == UINT64_MAX */ return ngtcp2_min_size(len, left - 8); } @@ -2869,3 +2878,8 @@ size_t ngtcp2_pkt_remove_vec_partial(ngtcp2_vec *removed_data, ngtcp2_vec *data, return datacnt + 1; } + +int ngtcp2_stateless_reset_token_eq(const ngtcp2_stateless_reset_token *a, + const ngtcp2_stateless_reset_token *b) { + return memcmp(a->data, b->data, sizeof(a->data)) == 0; +} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h index abf13693b9..bfdb065b74 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h @@ -38,14 +38,14 @@ /* Long header specific macros */ #define NGTCP2_LONG_TYPE_MASK 0x30 -#define NGTCP2_LONG_RESERVED_BIT_MASK 0x0c +#define NGTCP2_LONG_RESERVED_BIT_MASK 0x0C /* Short header specific macros */ #define NGTCP2_SHORT_RESERVED_BIT_MASK 0x18 #define NGTCP2_SHORT_KEY_PHASE_BIT 0x04 /* NGTCP2_SR_TYPE is a Type field of Stateless Reset. */ -#define NGTCP2_SR_TYPE 0x1f +#define NGTCP2_SR_TYPE 0x1F /* NGTCP2_MIN_LONG_HEADERLEN is the minimum length of long header. That is (1|1|TT|RR|PP)<1> + VERSION<4> + DCIL<1> + SCIL<1> + @@ -78,23 +78,23 @@ /* NGTCP2_MAX_SERVER_STREAM_ID_BIDI is the maximum bidirectional server stream ID. */ -#define NGTCP2_MAX_SERVER_STREAM_ID_BIDI ((int64_t)0x3ffffffffffffffdll) +#define NGTCP2_MAX_SERVER_STREAM_ID_BIDI ((int64_t)0x3FFFFFFFFFFFFFFDLL) /* NGTCP2_MAX_CLIENT_STREAM_ID_BIDI is the maximum bidirectional client stream ID. */ -#define NGTCP2_MAX_CLIENT_STREAM_ID_BIDI ((int64_t)0x3ffffffffffffffcll) +#define NGTCP2_MAX_CLIENT_STREAM_ID_BIDI ((int64_t)0x3FFFFFFFFFFFFFFCLL) /* NGTCP2_MAX_SERVER_STREAM_ID_UNI is the maximum unidirectional server stream ID. */ -#define NGTCP2_MAX_SERVER_STREAM_ID_UNI ((int64_t)0x3fffffffffffffffll) +#define NGTCP2_MAX_SERVER_STREAM_ID_UNI ((int64_t)0x3FFFFFFFFFFFFFFFLL) /* NGTCP2_MAX_CLIENT_STREAM_ID_UNI is the maximum unidirectional client stream ID. */ -#define NGTCP2_MAX_CLIENT_STREAM_ID_UNI ((int64_t)0x3ffffffffffffffell) +#define NGTCP2_MAX_CLIENT_STREAM_ID_UNI ((int64_t)0x3FFFFFFFFFFFFFFELL) /* NGTCP2_MAX_NUM_ACK_RANGES is the maximum number of Additional ACK ranges which this library can create, or decode. */ #define NGTCP2_MAX_ACK_RANGES 32 /* NGTCP2_MAX_PKT_NUM is the maximum packet number. */ -#define NGTCP2_MAX_PKT_NUM ((int64_t)((1ll << 62) - 1)) +#define NGTCP2_MAX_PKT_NUM ((int64_t)((1LL << 62) - 1)) /* NGTCP2_MIN_PKT_EXPANDLEN is the minimum packet size expansion to hide/trigger Stateless Reset. */ @@ -172,11 +172,11 @@ typedef struct ngtcp2_pkt_retry { #define NGTCP2_FRAME_STREAMS_BLOCKED_UNI 0x17 #define NGTCP2_FRAME_NEW_CONNECTION_ID 0x18 #define NGTCP2_FRAME_RETIRE_CONNECTION_ID 0x19 -#define NGTCP2_FRAME_PATH_CHALLENGE 0x1a -#define NGTCP2_FRAME_PATH_RESPONSE 0x1b -#define NGTCP2_FRAME_CONNECTION_CLOSE 0x1c -#define NGTCP2_FRAME_CONNECTION_CLOSE_APP 0x1d -#define NGTCP2_FRAME_HANDSHAKE_DONE 0x1e +#define NGTCP2_FRAME_PATH_CHALLENGE 0x1A +#define NGTCP2_FRAME_PATH_RESPONSE 0x1B +#define NGTCP2_FRAME_CONNECTION_CLOSE 0x1C +#define NGTCP2_FRAME_CONNECTION_CLOSE_APP 0x1D +#define NGTCP2_FRAME_HANDSHAKE_DONE 0x1E #define NGTCP2_FRAME_DATAGRAM 0x30 #define NGTCP2_FRAME_DATAGRAM_LEN 0x31 @@ -300,7 +300,7 @@ typedef struct ngtcp2_new_connection_id { uint64_t seq; uint64_t retire_prior_to; ngtcp2_cid cid; - uint8_t stateless_reset_token[NGTCP2_STATELESS_RESET_TOKENLEN]; + ngtcp2_stateless_reset_token token; } ngtcp2_new_connection_id; typedef struct ngtcp2_stop_sending { @@ -311,12 +311,12 @@ typedef struct ngtcp2_stop_sending { typedef struct ngtcp2_path_challenge { uint64_t type; - uint8_t data[NGTCP2_PATH_CHALLENGE_DATALEN]; + ngtcp2_path_challenge_data data; } ngtcp2_path_challenge; typedef struct ngtcp2_path_response { uint64_t type; - uint8_t data[NGTCP2_PATH_CHALLENGE_DATALEN]; + ngtcp2_path_challenge_data data; } ngtcp2_path_response; typedef struct ngtcp2_new_token { @@ -514,7 +514,7 @@ size_t ngtcp2_pkt_decode_version_negotiation(uint32_t *dest, * NGTCP2_ERR_INVALID_ARGUMENT * Payloadlen is too short. */ -int ngtcp2_pkt_decode_stateless_reset(ngtcp2_pkt_stateless_reset *sr, +int ngtcp2_pkt_decode_stateless_reset(ngtcp2_pkt_stateless_reset2 *sr, const uint8_t *payload, size_t payloadlen); @@ -1323,4 +1323,11 @@ size_t ngtcp2_pkt_remove_vec_partial(ngtcp2_vec *removed_data, ngtcp2_vec *data, size_t datacnt, uint64_t *offsets, ngtcp2_pcg32 *pcg, const ngtcp2_vec *part); +/* + * ngtcp2_stateless_reset_token_eq returns nonzero if |a| and |b| + * share the same token. + */ +int ngtcp2_stateless_reset_token_eq(const ngtcp2_stateless_reset_token *a, + const ngtcp2_stateless_reset_token *b); + #endif /* !defined(NGTCP2_PKT_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c index 4d193125ae..3054732db0 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c @@ -154,9 +154,9 @@ ngtcp2_ssize ngtcp2_ppe_final(ngtcp2_ppe *ppe, const uint8_t **ppkt) { p = buf->begin; if (*p & NGTCP2_HEADER_FORM_BIT) { - *p = (uint8_t)(*p ^ (mask[0] & 0x0f)); + *p = (uint8_t)(*p ^ (mask[0] & 0x0F)); } else { - *p = (uint8_t)(*p ^ (mask[0] & 0x1f)); + *p = (uint8_t)(*p ^ (mask[0] & 0x1F)); } p = buf->begin + ppe->pkt_num_offset; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.c index 471f84c764..972c27f395 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.c @@ -31,12 +31,16 @@ #include "ngtcp2_log.h" #include "ngtcp2_macro.h" #include "ngtcp2_addr.h" +#include "ngtcp2_str.h" -void ngtcp2_pv_entry_init(ngtcp2_pv_entry *pvent, const uint8_t *data, +void ngtcp2_pv_entry_init(ngtcp2_pv_entry *pvent, + const ngtcp2_path_challenge_data *data, ngtcp2_tstamp expiry, uint8_t flags) { - memcpy(pvent->data, data, sizeof(pvent->data)); - pvent->expiry = expiry; - pvent->flags = flags; + *pvent = (ngtcp2_pv_entry){ + .expiry = expiry, + .flags = flags, + .data = *data, + }; } int ngtcp2_pv_new(ngtcp2_pv **ppv, const ngtcp2_dcid *dcid, @@ -70,7 +74,7 @@ void ngtcp2_pv_del(ngtcp2_pv *pv) { ngtcp2_mem_free(pv->mem, pv); } -void ngtcp2_pv_add_entry(ngtcp2_pv *pv, const uint8_t *data, +void ngtcp2_pv_add_entry(ngtcp2_pv *pv, const ngtcp2_path_challenge_data *data, ngtcp2_tstamp expiry, uint8_t flags, ngtcp2_tstamp ts) { ngtcp2_pv_entry *ent; @@ -88,7 +92,8 @@ void ngtcp2_pv_add_entry(ngtcp2_pv *pv, const uint8_t *data, --pv->probe_pkt_left; } -int ngtcp2_pv_validate(ngtcp2_pv *pv, uint8_t *pflags, const uint8_t *data) { +int ngtcp2_pv_validate(ngtcp2_pv *pv, uint8_t *pflags, + const ngtcp2_path_challenge_data *data) { size_t len = ngtcp2_ringbuf_len(&pv->ents.rb); size_t i; ngtcp2_pv_entry *ent; @@ -99,7 +104,7 @@ int ngtcp2_pv_validate(ngtcp2_pv *pv, uint8_t *pflags, const uint8_t *data) { for (i = 0; i < len; ++i) { ent = ngtcp2_ringbuf_get(&pv->ents.rb, i); - if (memcmp(ent->data, data, sizeof(ent->data)) == 0) { + if (ngtcp2_cmemeq(ent->data.data, data->data, sizeof(ent->data.data))) { *pflags = ent->flags; ngtcp2_log_info(pv->log, NGTCP2_LOG_EVENT_PTV, "path has been validated"); return 0; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.h index b62ab204b2..28bdf722b2 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.h @@ -46,10 +46,10 @@ typedef struct ngtcp2_log ngtcp2_log; typedef struct ngtcp2_frame_chain ngtcp2_frame_chain; /* NGTCP2_PV_ENTRY_FLAG_NONE indicates that no flag is set. */ -#define NGTCP2_PV_ENTRY_FLAG_NONE 0x00u +#define NGTCP2_PV_ENTRY_FLAG_NONE 0x00U /* NGTCP2_PV_ENTRY_FLAG_UNDERSIZED indicates that UDP datagram which contains PATH_CHALLENGE is undersized (< 1200 bytes) */ -#define NGTCP2_PV_ENTRY_FLAG_UNDERSIZED 0x01u +#define NGTCP2_PV_ENTRY_FLAG_UNDERSIZED 0x01U typedef struct ngtcp2_pv_entry { /* expiry is the timestamp when this PATH_CHALLENGE expires. */ @@ -57,30 +57,31 @@ typedef struct ngtcp2_pv_entry { /* flags is zero or more of NGTCP2_PV_ENTRY_FLAG_*. */ uint8_t flags; /* data is a byte string included in PATH_CHALLENGE. */ - uint8_t data[NGTCP2_PATH_CHALLENGE_DATALEN]; + ngtcp2_path_challenge_data data; } ngtcp2_pv_entry; -void ngtcp2_pv_entry_init(ngtcp2_pv_entry *pvent, const uint8_t *data, +void ngtcp2_pv_entry_init(ngtcp2_pv_entry *pvent, + const ngtcp2_path_challenge_data *data, ngtcp2_tstamp expiry, uint8_t flags); /* NGTCP2_PV_FLAG_NONE indicates no flag is set. */ -#define NGTCP2_PV_FLAG_NONE 0x00u +#define NGTCP2_PV_FLAG_NONE 0x00U /* NGTCP2_PV_FLAG_DONT_CARE indicates that the outcome of path validation should be ignored entirely. */ -#define NGTCP2_PV_FLAG_DONT_CARE 0x01u +#define NGTCP2_PV_FLAG_DONT_CARE 0x01U /* NGTCP2_PV_FLAG_CANCEL_TIMER indicates that the expiry timer is cancelled. */ -#define NGTCP2_PV_FLAG_CANCEL_TIMER 0x02u +#define NGTCP2_PV_FLAG_CANCEL_TIMER 0x02U /* NGTCP2_PV_FLAG_FALLBACK_PRESENT indicates that a fallback Destination Connection ID and PTO are available in ngtcp2_pv. If path validation fails, then fallback to them. If path validation succeeds, the fallback Destination Connection ID is retired if it is not zero length, and does not equal to the current Destination Connection ID. */ -#define NGTCP2_PV_FLAG_FALLBACK_PRESENT 0x04u +#define NGTCP2_PV_FLAG_FALLBACK_PRESENT 0x04U /* NGTCP2_PV_FLAG_PREFERRED_ADDR indicates that client is migrating to server's preferred address. This flag is only used by client. */ -#define NGTCP2_PV_FLAG_PREFERRED_ADDR 0x10u +#define NGTCP2_PV_FLAG_PREFERRED_ADDR 0x10U typedef struct ngtcp2_pv ngtcp2_pv; @@ -141,7 +142,7 @@ void ngtcp2_pv_del(ngtcp2_pv *pv); * ngtcp2_pv_add_entry adds new entry with |data|. |expiry| is the * expiry time of the entry. */ -void ngtcp2_pv_add_entry(ngtcp2_pv *pv, const uint8_t *data, +void ngtcp2_pv_add_entry(ngtcp2_pv *pv, const ngtcp2_path_challenge_data *data, ngtcp2_tstamp expiry, uint8_t flags, ngtcp2_tstamp ts); /* @@ -164,7 +165,8 @@ int ngtcp2_pv_full(ngtcp2_pv *pv); * NGTCP2_ERR_INVALID_ARGUMENT * |pv| does not have an entry which has |data| and |path| */ -int ngtcp2_pv_validate(ngtcp2_pv *pv, uint8_t *pflags, const uint8_t *data); +int ngtcp2_pv_validate(ngtcp2_pv *pv, uint8_t *pflags, + const ngtcp2_path_challenge_data *data); /* * ngtcp2_pv_handle_entry_expiry checks expiry of existing entries. diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c index c10e2ff670..ed08eb1b5a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c @@ -194,7 +194,7 @@ void ngtcp2_qlog_start(ngtcp2_qlog *qlog, const ngtcp2_cid *odcid, int server) { } p = write_verbatim( - p, "\x1e{\"qlog_format\":\"JSON-SEQ\",\"qlog_version\":\"0.3\","); + p, "\x1E{\"qlog_format\":\"JSON-SEQ\",\"qlog_version\":\"0.3\","); p = write_trace(p, server, odcid); p = write_verbatim(p, "}\n"); @@ -547,8 +547,7 @@ write_new_connection_id_frame(uint8_t *p, const ngtcp2_new_connection_id *fr) { *p++ = ','; p = write_pair_cid(p, "connection_id", &fr->cid); p = write_verbatim(p, ",\"stateless_reset_token\":{"); - p = write_pair_hex(p, "data", fr->stateless_reset_token, - sizeof(fr->stateless_reset_token)); + p = write_pair_hex(p, "data", fr->token.data, sizeof(fr->token.data)); *p++ = '}'; *p++ = '}'; @@ -578,7 +577,7 @@ static uint8_t *write_path_challenge_frame(uint8_t *p, #define NGTCP2_QLOG_PATH_CHALLENGE_FRAME_OVERHEAD 57 p = write_verbatim(p, "{\"frame_type\":\"path_challenge\","); - p = write_pair_hex(p, "data", fr->data, sizeof(fr->data)); + p = write_pair_hex(p, "data", fr->data.data, sizeof(fr->data.data)); *p++ = '}'; return p; @@ -592,7 +591,7 @@ static uint8_t *write_path_response_frame(uint8_t *p, #define NGTCP2_QLOG_PATH_RESPONSE_FRAME_OVERHEAD 56 p = write_verbatim(p, "{\"frame_type\":\"path_response\","); - p = write_pair_hex(p, "data", fr->data, sizeof(fr->data)); + p = write_pair_hex(p, "data", fr->data.data, sizeof(fr->data.data)); *p++ = '}'; return p; @@ -662,7 +661,7 @@ static void qlog_pkt_write_start(ngtcp2_qlog *qlog, int sent) { ngtcp2_buf_reset(&qlog->buf); p = qlog->buf.last; - *p++ = '\x1e'; + *p++ = '\x1E'; *p++ = '{'; p = qlog_write_time(qlog, p); p = write_verbatim(p, ",\"name\":"); @@ -913,7 +912,7 @@ void ngtcp2_qlog_parameters_set_transport_params( return; } - *p++ = '\x1e'; + *p++ = '\x1E'; *p++ = '{'; p = qlog_write_time(qlog, p); p = write_verbatim( @@ -1029,7 +1028,7 @@ void ngtcp2_qlog_metrics_updated(ngtcp2_qlog *qlog, return; } - *p++ = '\x1e'; + *p++ = '\x1E'; *p++ = '{'; p = qlog_write_time(qlog, p); p = write_verbatim(p, ",\"name\":\"recovery:metrics_updated\",\"data\":{"); @@ -1068,7 +1067,7 @@ void ngtcp2_qlog_pkt_lost(ngtcp2_qlog *qlog, ngtcp2_rtb_entry *ent) { return; } - *p++ = '\x1e'; + *p++ = '\x1E'; *p++ = '{'; p = qlog_write_time(qlog, p); p = write_verbatim( @@ -1096,7 +1095,7 @@ void ngtcp2_qlog_retry_pkt_received(ngtcp2_qlog *qlog, const ngtcp2_pkt_hd *hd, ngtcp2_buf_init(&buf, rawbuf, sizeof(rawbuf)); - *buf.last++ = '\x1e'; + *buf.last++ = '\x1E'; *buf.last++ = '{'; buf.last = qlog_write_time(qlog, buf.last); buf.last = write_verbatim( @@ -1118,7 +1117,7 @@ void ngtcp2_qlog_retry_pkt_received(ngtcp2_qlog *qlog, const ngtcp2_pkt_hd *hd, } void ngtcp2_qlog_stateless_reset_pkt_received( - ngtcp2_qlog *qlog, const ngtcp2_pkt_stateless_reset *sr) { + ngtcp2_qlog *qlog, const ngtcp2_pkt_stateless_reset2 *sr) { uint8_t buf[256]; uint8_t *p = buf; @@ -1126,7 +1125,7 @@ void ngtcp2_qlog_stateless_reset_pkt_received( return; } - *p++ = '\x1e'; + *p++ = '\x1E'; *p++ = '{'; p = qlog_write_time(qlog, p); p = write_verbatim( @@ -1135,8 +1134,8 @@ void ngtcp2_qlog_stateless_reset_pkt_received( .type = NGTCP2_PKT_STATELESS_RESET, }); *p++ = ','; - p = write_pair_hex(p, "stateless_reset_token", sr->stateless_reset_token, - NGTCP2_STATELESS_RESET_TOKENLEN); + p = write_pair_hex(p, "stateless_reset_token", sr->token.data, + sizeof(sr->token.data)); p = write_verbatim(p, "}}\n"); qlog->write(qlog->user_data, NGTCP2_QLOG_WRITE_FLAG_NONE, buf, @@ -1158,7 +1157,7 @@ void ngtcp2_qlog_version_negotiation_pkt_received(ngtcp2_qlog *qlog, ngtcp2_buf_init(&buf, rawbuf, sizeof(rawbuf)); - *buf.last++ = '\x1e'; + *buf.last++ = '\x1E'; *buf.last++ = '{'; buf.last = qlog_write_time(qlog, buf.last); buf.last = write_verbatim( diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.h index d2a5f1038c..17668a5023 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.h @@ -147,7 +147,7 @@ void ngtcp2_qlog_retry_pkt_received(ngtcp2_qlog *qlog, const ngtcp2_pkt_hd *hd, * event for a received Stateless Reset packet. */ void ngtcp2_qlog_stateless_reset_pkt_received( - ngtcp2_qlog *qlog, const ngtcp2_pkt_stateless_reset *sr); + ngtcp2_qlog *qlog, const ngtcp2_pkt_stateless_reset2 *sr); /* * ngtcp2_qlog_version_negotiation_pkt_received writes packet_received diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c index 88ec585e69..67aaa04930 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c @@ -200,10 +200,10 @@ static size_t rtb_on_remove(ngtcp2_rtb *rtb, ngtcp2_rtb_entry *ent, } /* NGTCP2_RECLAIM_FLAG_NONE indicates that no flag is set. */ -#define NGTCP2_RECLAIM_FLAG_NONE 0x00u +#define NGTCP2_RECLAIM_FLAG_NONE 0x00U /* NGTCP2_RECLAIM_FLAG_ON_LOSS indicates that frames are reclaimed because of the packet loss.*/ -#define NGTCP2_RECLAIM_FLAG_ON_LOSS 0x01u +#define NGTCP2_RECLAIM_FLAG_ON_LOSS 0x01U /* * rtb_reclaim_frame copies and queues frames included in |ent| for diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h index 14684a458a..62bcb381fa 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h @@ -48,41 +48,41 @@ typedef struct ngtcp2_conn_stat ngtcp2_conn_stat; typedef struct ngtcp2_frame_chain ngtcp2_frame_chain; /* NGTCP2_RTB_ENTRY_FLAG_NONE indicates that no flag is set. */ -#define NGTCP2_RTB_ENTRY_FLAG_NONE 0x00u +#define NGTCP2_RTB_ENTRY_FLAG_NONE 0x00U /* NGTCP2_RTB_ENTRY_FLAG_PROBE indicates that the entry includes a probe packet. */ -#define NGTCP2_RTB_ENTRY_FLAG_PROBE 0x01u +#define NGTCP2_RTB_ENTRY_FLAG_PROBE 0x01U /* NGTCP2_RTB_ENTRY_FLAG_RETRANSMITTABLE indicates that the entry includes a frame which must be retransmitted until it is acknowledged. In most cases, this flag is used along with NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING and NGTCP2_RTB_ENTRY_FLAG_PTO_ELICITING. */ -#define NGTCP2_RTB_ENTRY_FLAG_RETRANSMITTABLE 0x02u +#define NGTCP2_RTB_ENTRY_FLAG_RETRANSMITTABLE 0x02U /* NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING indicates that the entry elicits acknowledgement. */ -#define NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING 0x04u +#define NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING 0x04U /* NGTCP2_RTB_ENTRY_FLAG_PTO_RECLAIMED indicates that the packet has been reclaimed on PTO. It is not marked lost yet and still consumes congestion window. */ -#define NGTCP2_RTB_ENTRY_FLAG_PTO_RECLAIMED 0x08u +#define NGTCP2_RTB_ENTRY_FLAG_PTO_RECLAIMED 0x08U /* NGTCP2_RTB_ENTRY_FLAG_LOST_RETRANSMITTED indicates that the entry has been marked lost and, optionally, scheduled to retransmit. */ -#define NGTCP2_RTB_ENTRY_FLAG_LOST_RETRANSMITTED 0x10u +#define NGTCP2_RTB_ENTRY_FLAG_LOST_RETRANSMITTED 0x10U /* NGTCP2_RTB_ENTRY_FLAG_ECN indicates that the entry is included in a UDP datagram with ECN marking. */ -#define NGTCP2_RTB_ENTRY_FLAG_ECN 0x20u +#define NGTCP2_RTB_ENTRY_FLAG_ECN 0x20U /* NGTCP2_RTB_ENTRY_FLAG_DATAGRAM indicates that the entry includes DATAGRAM frame. */ -#define NGTCP2_RTB_ENTRY_FLAG_DATAGRAM 0x40u +#define NGTCP2_RTB_ENTRY_FLAG_DATAGRAM 0x40U /* NGTCP2_RTB_ENTRY_FLAG_PMTUD_PROBE indicates that the entry includes a PMTUD probe packet. */ -#define NGTCP2_RTB_ENTRY_FLAG_PMTUD_PROBE 0x80u +#define NGTCP2_RTB_ENTRY_FLAG_PMTUD_PROBE 0x80U /* NGTCP2_RTB_ENTRY_FLAG_PTO_ELICITING indicates that the entry includes a packet which elicits PTO probe packets. */ -#define NGTCP2_RTB_ENTRY_FLAG_PTO_ELICITING 0x100u +#define NGTCP2_RTB_ENTRY_FLAG_PTO_ELICITING 0x100U /* NGTCP2_RTB_ENTRY_FLAG_SKIP indicates that the entry has the skipped packet number. */ -#define NGTCP2_RTB_ENTRY_FLAG_SKIP 0x200u +#define NGTCP2_RTB_ENTRY_FLAG_SKIP 0x200U typedef struct ngtcp2_rtb_entry ngtcp2_rtb_entry; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c index 1ae0f10d91..2726571a50 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c @@ -50,7 +50,7 @@ uint8_t *ngtcp2_encode_hex(uint8_t *dest, const uint8_t *data, size_t len) { for (i = 0; i < len; ++i) { *dest++ = (uint8_t)LOWER_XDIGITS[data[i] >> 4]; - *dest++ = (uint8_t)LOWER_XDIGITS[data[i] & 0xf]; + *dest++ = (uint8_t)LOWER_XDIGITS[data[i] & 0xF]; } return dest; @@ -72,7 +72,7 @@ char *ngtcp2_encode_printable_ascii_cstr(char *dest, const uint8_t *data, for (i = 0; i < len; ++i) { c = data[i]; - if (0x20 <= c && c <= 0x7e) { + if (0x20 <= c && c <= 0x7E) { *p++ = (char)c; } else { *p++ = '.'; @@ -116,7 +116,7 @@ static char *write_hex_zsup(char *dest, const uint8_t *data, size_t len) { break; } - d &= 0xf; + d &= 0xF; if (d) { *p++ = LOWER_XDIGITS[d]; @@ -133,7 +133,7 @@ static char *write_hex_zsup(char *dest, const uint8_t *data, size_t len) { for (; i < len; ++i) { d = data[i]; *p++ = LOWER_XDIGITS[d >> 4]; - *p++ = LOWER_XDIGITS[d & 0xf]; + *p++ = LOWER_XDIGITS[d & 0xF]; } return p; @@ -235,7 +235,7 @@ static int countl_zero(uint64_t x) { }; int n = 0; - if (x >= 1ull << 32) { + if (x >= 1ULL << 32) { x >>= 32; n += 32; } @@ -263,25 +263,25 @@ static int countl_zero(uint64_t x) { */ static size_t count_digit(uint64_t x) { static const uint64_t count_digit_tbl[] = { - 9ull, - 99ull, - 999ull, - 9999ull, - 99999ull, - 999999ull, - 9999999ull, - 99999999ull, - 999999999ull, - 9999999999ull, - 99999999999ull, - 999999999999ull, - 9999999999999ull, - 99999999999999ull, - 999999999999999ull, - 9999999999999999ull, - 99999999999999999ull, - 999999999999999999ull, - 9999999999999999999ull, + 9ULL, + 99ULL, + 999ULL, + 9999ULL, + 99999ULL, + 999999ULL, + 9999999ULL, + 99999999ULL, + 999999999ULL, + 9999999999ULL, + 99999999999ULL, + 999999999999ULL, + 9999999999999ULL, + 99999999999999ULL, + 999999999999999ULL, + 9999999999999999ULL, + 99999999999999999ULL, + 999999999999999999ULL, + 9999999999999999999ULL, }; size_t y = (size_t)(19 * (63 - countl_zero(x | 1)) >> 6); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h index fb86bd1c23..0d5d8a63a6 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_strm.h @@ -41,54 +41,54 @@ typedef struct ngtcp2_frame_chain ngtcp2_frame_chain; /* NGTCP2_STRM_FLAG_NONE indicates that no flag is set. */ -#define NGTCP2_STRM_FLAG_NONE 0x00u +#define NGTCP2_STRM_FLAG_NONE 0x00U /* NGTCP2_STRM_FLAG_SHUT_RD indicates that further reception of stream data is not allowed. */ -#define NGTCP2_STRM_FLAG_SHUT_RD 0x01u +#define NGTCP2_STRM_FLAG_SHUT_RD 0x01U /* NGTCP2_STRM_FLAG_SHUT_WR indicates that further transmission of stream data is not allowed. */ -#define NGTCP2_STRM_FLAG_SHUT_WR 0x02u +#define NGTCP2_STRM_FLAG_SHUT_WR 0x02U #define NGTCP2_STRM_FLAG_SHUT_RDWR \ (NGTCP2_STRM_FLAG_SHUT_RD | NGTCP2_STRM_FLAG_SHUT_WR) /* NGTCP2_STRM_FLAG_RESET_STREAM indicates that RESET_STREAM is sent from the local endpoint. In this case, NGTCP2_STRM_FLAG_SHUT_WR is also set. */ -#define NGTCP2_STRM_FLAG_RESET_STREAM 0x04u +#define NGTCP2_STRM_FLAG_RESET_STREAM 0x04U /* NGTCP2_STRM_FLAG_RESET_STREAM_RECVED indicates that RESET_STREAM is received from the remote endpoint. In this case, NGTCP2_STRM_FLAG_SHUT_RD is also set. */ -#define NGTCP2_STRM_FLAG_RESET_STREAM_RECVED 0x08u +#define NGTCP2_STRM_FLAG_RESET_STREAM_RECVED 0x08U /* NGTCP2_STRM_FLAG_STOP_SENDING indicates that STOP_SENDING is sent from the local endpoint. */ -#define NGTCP2_STRM_FLAG_STOP_SENDING 0x10u +#define NGTCP2_STRM_FLAG_STOP_SENDING 0x10U /* NGTCP2_STRM_FLAG_RESET_STREAM_ACKED indicates that the outgoing RESET_STREAM is acknowledged by peer. */ -#define NGTCP2_STRM_FLAG_RESET_STREAM_ACKED 0x20u +#define NGTCP2_STRM_FLAG_RESET_STREAM_ACKED 0x20U /* NGTCP2_STRM_FLAG_FIN_ACKED indicates that a STREAM with FIN bit set is acknowledged by a remote endpoint. */ -#define NGTCP2_STRM_FLAG_FIN_ACKED 0x40u +#define NGTCP2_STRM_FLAG_FIN_ACKED 0x40U /* NGTCP2_STRM_FLAG_ANY_ACKED indicates that any portion of stream data, including 0 length segment, is acknowledged. */ -#define NGTCP2_STRM_FLAG_ANY_ACKED 0x80u +#define NGTCP2_STRM_FLAG_ANY_ACKED 0x80U /* NGTCP2_STRM_FLAG_APP_ERROR_CODE_SET indicates that app_error_code field is set. This resolves the ambiguity that the initial app_error_code value 0 might be a proper application error code. In this case, without this flag, we are unable to distinguish assigned value from unassigned one. */ -#define NGTCP2_STRM_FLAG_APP_ERROR_CODE_SET 0x100u +#define NGTCP2_STRM_FLAG_APP_ERROR_CODE_SET 0x100U /* NGTCP2_STRM_FLAG_SEND_STOP_SENDING is set when STOP_SENDING frame should be sent. */ -#define NGTCP2_STRM_FLAG_SEND_STOP_SENDING 0x200u +#define NGTCP2_STRM_FLAG_SEND_STOP_SENDING 0x200U /* NGTCP2_STRM_FLAG_SEND_RESET_STREAM is set when RESET_STREAM frame should be sent. */ -#define NGTCP2_STRM_FLAG_SEND_RESET_STREAM 0x400u +#define NGTCP2_STRM_FLAG_SEND_RESET_STREAM 0x400U /* NGTCP2_STRM_FLAG_STOP_SENDING_RECVED indicates that STOP_SENDING is received from the remote endpoint. In this case, NGTCP2_STRM_FLAG_SHUT_WR is also set. */ -#define NGTCP2_STRM_FLAG_STOP_SENDING_RECVED 0x800u +#define NGTCP2_STRM_FLAG_STOP_SENDING_RECVED 0x800U /* NGTCP2_STRM_FLAG_ANY_SENT indicates that any STREAM frame, including empty one, has been sent. */ -#define NGTCP2_STRM_FLAG_ANY_SENT 0x1000u +#define NGTCP2_STRM_FLAG_ANY_SENT 0x1000U typedef struct ngtcp2_strm ngtcp2_strm; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c index d652ece4e0..5d378176e1 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c @@ -150,8 +150,8 @@ ngtcp2_ssize ngtcp2_transport_params_encode_versioned( if (params->stateless_reset_token_present) { len += ngtcp2_put_uvarintlen(NGTCP2_TRANSPORT_PARAM_STATELESS_RESET_TOKEN) + - ngtcp2_put_uvarintlen(NGTCP2_STATELESS_RESET_TOKENLEN) + - NGTCP2_STATELESS_RESET_TOKENLEN; + ngtcp2_put_uvarintlen(sizeof(params->stateless_reset_token)) + + sizeof(params->stateless_reset_token); } if (params->preferred_addr_present) { @@ -160,7 +160,7 @@ ngtcp2_ssize ngtcp2_transport_params_encode_versioned( preferred_addrlen = 4 /* ipv4Address */ + 2 /* ipv4Port */ + 16 /* ipv6Address */ + 2 /* ipv6Port */ + 1 + params->preferred_addr.cid.datalen /* CID */ + - NGTCP2_STATELESS_RESET_TOKENLEN; + sizeof(params->preferred_addr.stateless_reset_token); len += ngtcp2_put_uvarintlen(NGTCP2_TRANSPORT_PARAM_PREFERRED_ADDRESS) + ngtcp2_put_uvarintlen(preferred_addrlen) + preferred_addrlen; } @@ -626,7 +626,8 @@ int ngtcp2_transport_params_decode_versioned(int transport_params_version, } len = 4 /* ipv4Address */ + 2 /* ipv4Port */ + 16 /* ipv6Address */ + 2 /* ipv6Port */ - + 1 /* cid length */ + NGTCP2_STATELESS_RESET_TOKENLEN; + + 1 /* cid length */ + + sizeof(params->preferred_addr.stateless_reset_token); if (valuelen < len) { return NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.h index c077f06a9d..d98d034b3c 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.h @@ -45,16 +45,16 @@ typedef uint64_t ngtcp2_transport_param_id; #define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAM_DATA_UNI 0x07 #define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAMS_BIDI 0x08 #define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAMS_UNI 0x09 -#define NGTCP2_TRANSPORT_PARAM_ACK_DELAY_EXPONENT 0x0a -#define NGTCP2_TRANSPORT_PARAM_MAX_ACK_DELAY 0x0b -#define NGTCP2_TRANSPORT_PARAM_DISABLE_ACTIVE_MIGRATION 0x0c -#define NGTCP2_TRANSPORT_PARAM_PREFERRED_ADDRESS 0x0d -#define NGTCP2_TRANSPORT_PARAM_ACTIVE_CONNECTION_ID_LIMIT 0x0e -#define NGTCP2_TRANSPORT_PARAM_INITIAL_SOURCE_CONNECTION_ID 0x0f +#define NGTCP2_TRANSPORT_PARAM_ACK_DELAY_EXPONENT 0x0A +#define NGTCP2_TRANSPORT_PARAM_MAX_ACK_DELAY 0x0B +#define NGTCP2_TRANSPORT_PARAM_DISABLE_ACTIVE_MIGRATION 0x0C +#define NGTCP2_TRANSPORT_PARAM_PREFERRED_ADDRESS 0x0D +#define NGTCP2_TRANSPORT_PARAM_ACTIVE_CONNECTION_ID_LIMIT 0x0E +#define NGTCP2_TRANSPORT_PARAM_INITIAL_SOURCE_CONNECTION_ID 0x0F #define NGTCP2_TRANSPORT_PARAM_RETRY_SOURCE_CONNECTION_ID 0x10 /* https://datatracker.ietf.org/doc/html/rfc9221 */ #define NGTCP2_TRANSPORT_PARAM_MAX_DATAGRAM_FRAME_SIZE 0x20 -#define NGTCP2_TRANSPORT_PARAM_GREASE_QUIC_BIT 0x2ab2 +#define NGTCP2_TRANSPORT_PARAM_GREASE_QUIC_BIT 0x2AB2 /* https://datatracker.ietf.org/doc/html/rfc9368 */ #define NGTCP2_TRANSPORT_PARAM_VERSION_INFORMATION 0x11 diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.c index 39f3d408a7..707cd57079 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.c @@ -39,7 +39,7 @@ void ngtcp2_window_filter_init(ngtcp2_window_filter *wf, uint64_t window_length) { wf->window_length = window_length; - memset(wf->estimates, 0xff, sizeof(wf->estimates)); + memset(wf->estimates, 0xFF, sizeof(wf->estimates)); } void ngtcp2_window_filter_update(ngtcp2_window_filter *wf, uint64_t new_sample, diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h index ba3f7a7e1a..c71ff364e3 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h @@ -262,7 +262,7 @@ typedef struct ngtcp2_mem { * * :macro:`NGTCP2_PROTO_VER_V1` is the QUIC version 1. */ -#define NGTCP2_PROTO_VER_V1 ((uint32_t)0x00000001u) +#define NGTCP2_PROTO_VER_V1 ((uint32_t)0x00000001U) /** * @macro @@ -270,7 +270,7 @@ typedef struct ngtcp2_mem { * :macro:`NGTCP2_PROTO_VER_V2` is the QUIC version 2. See * :rfc:`9369`. */ -#define NGTCP2_PROTO_VER_V2 ((uint32_t)0x6b3343cfu) +#define NGTCP2_PROTO_VER_V2 ((uint32_t)0x6B3343CFU) /** * @macro @@ -294,7 +294,7 @@ typedef struct ngtcp2_mem { * :macro:`NGTCP2_RESERVED_VERSION_MASK` is the bit mask of reserved * version. */ -#define NGTCP2_RESERVED_VERSION_MASK 0x0a0a0a0au +#define NGTCP2_RESERVED_VERSION_MASK 0x0A0A0A0AU /** * @macrosection @@ -377,7 +377,7 @@ typedef struct ngtcp2_mem { * integrity tag of Retry packet. It is used for QUIC v1. */ #define NGTCP2_RETRY_KEY_V1 \ - "\xbe\x0c\x69\x0b\x9f\x66\x57\x5a\x1d\x76\x6b\x54\xe3\x68\xc8\x4e" + "\xBE\x0C\x69\x0B\x9F\x66\x57\x5A\x1D\x76\x6B\x54\xE3\x68\xC8\x4E" /** * @macro @@ -385,7 +385,7 @@ typedef struct ngtcp2_mem { * :macro:`NGTCP2_RETRY_NONCE_V1` is nonce used when generating * integrity tag of Retry packet. It is used for QUIC v1. */ -#define NGTCP2_RETRY_NONCE_V1 "\x46\x15\x99\xd3\x5d\x63\x2b\xf2\x23\x98\x25\xbb" +#define NGTCP2_RETRY_NONCE_V1 "\x46\x15\x99\xD3\x5D\x63\x2B\xF2\x23\x98\x25\xBB" /** * @macro @@ -395,7 +395,7 @@ typedef struct ngtcp2_mem { * :rfc:`9369`. */ #define NGTCP2_RETRY_KEY_V2 \ - "\x8f\xb4\xb0\x1b\x56\xac\x48\xe2\x60\xfb\xcb\xce\xad\x7c\xcc\x92" + "\x8F\xB4\xB0\x1B\x56\xAC\x48\xE2\x60\xFB\xCB\xCE\xAD\x7C\xCC\x92" /** * @macro @@ -404,7 +404,7 @@ typedef struct ngtcp2_mem { * integrity tag of Retry packet. It is used for QUIC v2. See * :rfc:`9369`. */ -#define NGTCP2_RETRY_NONCE_V2 "\xd8\x69\x69\xbc\x2d\x7c\x6d\x99\x90\xef\xb0\x4a" +#define NGTCP2_RETRY_NONCE_V2 "\xD8\x69\x69\xBC\x2D\x7C\x6D\x99\x90\xEF\xB0\x4A" /** * @macro @@ -812,7 +812,7 @@ typedef struct NGTCP2_ALIGN(8) ngtcp2_pkt_info { * * :macro:`NGTCP2_PKT_FLAG_NONE` indicates no flag set. */ -#define NGTCP2_PKT_FLAG_NONE 0x00u +#define NGTCP2_PKT_FLAG_NONE 0x00U /** * @macro @@ -820,7 +820,7 @@ typedef struct NGTCP2_ALIGN(8) ngtcp2_pkt_info { * :macro:`NGTCP2_PKT_FLAG_LONG_FORM` indicates the Long header packet * header. */ -#define NGTCP2_PKT_FLAG_LONG_FORM 0x01u +#define NGTCP2_PKT_FLAG_LONG_FORM 0x01U /** * @macro @@ -828,14 +828,14 @@ typedef struct NGTCP2_ALIGN(8) ngtcp2_pkt_info { * :macro:`NGTCP2_PKT_FLAG_FIXED_BIT_CLEAR` indicates that Fixed Bit * (aka QUIC bit) is not set. */ -#define NGTCP2_PKT_FLAG_FIXED_BIT_CLEAR 0x02u +#define NGTCP2_PKT_FLAG_FIXED_BIT_CLEAR 0x02U /** * @macro * * :macro:`NGTCP2_PKT_FLAG_KEY_PHASE` indicates Key Phase bit set. */ -#define NGTCP2_PKT_FLAG_KEY_PHASE 0x04u +#define NGTCP2_PKT_FLAG_KEY_PHASE 0x04U /** * @enum @@ -887,7 +887,7 @@ typedef enum ngtcp2_pkt_type { * * :macro:`NGTCP2_NO_ERROR` is QUIC transport error code ``NO_ERROR``. */ -#define NGTCP2_NO_ERROR 0x0u +#define NGTCP2_NO_ERROR 0x0U /** * @macro @@ -895,7 +895,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_INTERNAL_ERROR` is QUIC transport error code * ``INTERNAL_ERROR``. */ -#define NGTCP2_INTERNAL_ERROR 0x1u +#define NGTCP2_INTERNAL_ERROR 0x1U /** * @macro @@ -903,7 +903,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_CONNECTION_REFUSED` is QUIC transport error code * ``CONNECTION_REFUSED``. */ -#define NGTCP2_CONNECTION_REFUSED 0x2u +#define NGTCP2_CONNECTION_REFUSED 0x2U /** * @macro @@ -911,7 +911,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_FLOW_CONTROL_ERROR` is QUIC transport error code * ``FLOW_CONTROL_ERROR``. */ -#define NGTCP2_FLOW_CONTROL_ERROR 0x3u +#define NGTCP2_FLOW_CONTROL_ERROR 0x3U /** * @macro @@ -919,7 +919,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_STREAM_LIMIT_ERROR` is QUIC transport error code * ``STREAM_LIMIT_ERROR``. */ -#define NGTCP2_STREAM_LIMIT_ERROR 0x4u +#define NGTCP2_STREAM_LIMIT_ERROR 0x4U /** * @macro @@ -927,7 +927,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_STREAM_STATE_ERROR` is QUIC transport error code * ``STREAM_STATE_ERROR``. */ -#define NGTCP2_STREAM_STATE_ERROR 0x5u +#define NGTCP2_STREAM_STATE_ERROR 0x5U /** * @macro @@ -935,7 +935,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_FINAL_SIZE_ERROR` is QUIC transport error code * ``FINAL_SIZE_ERROR``. */ -#define NGTCP2_FINAL_SIZE_ERROR 0x6u +#define NGTCP2_FINAL_SIZE_ERROR 0x6U /** * @macro @@ -943,7 +943,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_FRAME_ENCODING_ERROR` is QUIC transport error code * ``FRAME_ENCODING_ERROR``. */ -#define NGTCP2_FRAME_ENCODING_ERROR 0x7u +#define NGTCP2_FRAME_ENCODING_ERROR 0x7U /** * @macro @@ -951,7 +951,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_TRANSPORT_PARAMETER_ERROR` is QUIC transport error * code ``TRANSPORT_PARAMETER_ERROR``. */ -#define NGTCP2_TRANSPORT_PARAMETER_ERROR 0x8u +#define NGTCP2_TRANSPORT_PARAMETER_ERROR 0x8U /** * @macro @@ -959,7 +959,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_CONNECTION_ID_LIMIT_ERROR` is QUIC transport error * code ``CONNECTION_ID_LIMIT_ERROR``. */ -#define NGTCP2_CONNECTION_ID_LIMIT_ERROR 0x9u +#define NGTCP2_CONNECTION_ID_LIMIT_ERROR 0x9U /** * @macro @@ -967,7 +967,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_PROTOCOL_VIOLATION` is QUIC transport error code * ``PROTOCOL_VIOLATION``. */ -#define NGTCP2_PROTOCOL_VIOLATION 0xau +#define NGTCP2_PROTOCOL_VIOLATION 0xAU /** * @macro @@ -975,7 +975,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_INVALID_TOKEN` is QUIC transport error code * ``INVALID_TOKEN``. */ -#define NGTCP2_INVALID_TOKEN 0xbu +#define NGTCP2_INVALID_TOKEN 0xBU /** * @macro @@ -983,7 +983,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_APPLICATION_ERROR` is QUIC transport error code * ``APPLICATION_ERROR``. */ -#define NGTCP2_APPLICATION_ERROR 0xcu +#define NGTCP2_APPLICATION_ERROR 0xCU /** * @macro @@ -991,7 +991,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_CRYPTO_BUFFER_EXCEEDED` is QUIC transport error code * ``CRYPTO_BUFFER_EXCEEDED``. */ -#define NGTCP2_CRYPTO_BUFFER_EXCEEDED 0xdu +#define NGTCP2_CRYPTO_BUFFER_EXCEEDED 0xDU /** * @macro @@ -999,7 +999,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_KEY_UPDATE_ERROR` is QUIC transport error code * ``KEY_UPDATE_ERROR``. */ -#define NGTCP2_KEY_UPDATE_ERROR 0xeu +#define NGTCP2_KEY_UPDATE_ERROR 0xEU /** * @macro @@ -1007,7 +1007,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_AEAD_LIMIT_REACHED` is QUIC transport error code * ``AEAD_LIMIT_REACHED``. */ -#define NGTCP2_AEAD_LIMIT_REACHED 0xfu +#define NGTCP2_AEAD_LIMIT_REACHED 0xFU /** * @macro @@ -1015,7 +1015,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_NO_VIABLE_PATH` is QUIC transport error code * ``NO_VIABLE_PATH``. */ -#define NGTCP2_NO_VIABLE_PATH 0x10u +#define NGTCP2_NO_VIABLE_PATH 0x10U /** * @macro @@ -1023,7 +1023,7 @@ typedef enum ngtcp2_pkt_type { * :macro:`NGTCP2_CRYPTO_ERROR` is QUIC transport error code * ``CRYPTO_ERROR``. */ -#define NGTCP2_CRYPTO_ERROR 0x100u +#define NGTCP2_CRYPTO_ERROR 0x100U /** * @macro @@ -1187,6 +1187,9 @@ typedef struct ngtcp2_pkt_hd { * @struct * * :type:`ngtcp2_pkt_stateless_reset` represents Stateless Reset. + * + * Deprecated since v1.22.0. Use :type:`ngtcp2_pkt_stateless_reset2` + * instead. */ typedef struct ngtcp2_pkt_stateless_reset { /** @@ -1204,6 +1207,40 @@ typedef struct ngtcp2_pkt_stateless_reset { size_t randlen; } ngtcp2_pkt_stateless_reset; +/** + * @struct + * + * :type:`ngtcp2_stateless_reset_token` stores stateless reset token. + * + * This struct has been available since v1.22.0. + */ +typedef struct ngtcp2_stateless_reset_token { + uint8_t data[NGTCP2_STATELESS_RESET_TOKENLEN]; +} ngtcp2_stateless_reset_token; + +/** + * @struct + * + * :type:`ngtcp2_pkt_stateless_reset2` represents Stateless Reset. + * + * This struct has been available since v1.22.0. + */ +typedef struct ngtcp2_pkt_stateless_reset2 { + /** + * :member:`token` contains stateless reset token. + */ + ngtcp2_stateless_reset_token token; + /** + * :member:`rand` points a buffer which contains random bytes + * section. + */ + const uint8_t *rand; + /** + * :member:`randlen` is the number of random bytes. + */ + size_t randlen; +} ngtcp2_pkt_stateless_reset2; + /** * @macrosection * @@ -1250,7 +1287,7 @@ typedef struct ngtcp2_pkt_stateless_reset { * :macro:`NGTCP2_TLSEXT_QUIC_TRANSPORT_PARAMETERS_V1` is TLS * extension type of quic_transport_parameters. */ -#define NGTCP2_TLSEXT_QUIC_TRANSPORT_PARAMETERS_V1 0x39u +#define NGTCP2_TLSEXT_QUIC_TRANSPORT_PARAMETERS_V1 0x39U #ifdef NGTCP2_USE_GENERIC_SOCKADDR # ifndef NGTCP2_AF_INET @@ -1703,14 +1740,14 @@ typedef void (*ngtcp2_printf)(void *user_data, const char *format, ...); * * :macro:`NGTCP2_QLOG_WRITE_FLAG_NONE` indicates no flag set. */ -#define NGTCP2_QLOG_WRITE_FLAG_NONE 0x00u +#define NGTCP2_QLOG_WRITE_FLAG_NONE 0x00U /** * @macro * * :macro:`NGTCP2_QLOG_WRITE_FLAG_FIN` indicates that this is the * final call to :type:`ngtcp2_qlog_write` in the current connection. */ -#define NGTCP2_QLOG_WRITE_FLAG_FIN 0x01u +#define NGTCP2_QLOG_WRITE_FLAG_FIN 0x01U /** * @struct @@ -2444,11 +2481,42 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_pkt_decode_hd_short(ngtcp2_pkt_hd *dest, * :macro:`NGTCP2_ERR_INVALID_ARGUMENT` * |randlen| is strictly less than * :macro:`NGTCP2_MIN_STATELESS_RESET_RANDLEN`. + * + * Deprecated since v1.22.0. Use `ngtcp2_pkt_write_stateless_reset2` + * instead. */ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_pkt_write_stateless_reset( uint8_t *dest, size_t destlen, const uint8_t *stateless_reset_token, const uint8_t *rand, size_t randlen); +/** + * @function + * + * `ngtcp2_pkt_write_stateless_reset2` writes Stateless Reset packet + * in the buffer pointed by |dest| whose length is |destlen|. |token| + * must store the Stateless Reset Token. |rand| specifies the random + * octets preceding Stateless Reset Token. The length of |rand| is + * specified by |randlen| which must be at least + * :macro:`NGTCP2_MIN_STATELESS_RESET_RANDLEN` bytes long. + * + * If |randlen| is too long to write them all in the buffer, |rand| is + * written to the buffer as much as possible, and is truncated. + * + * This function returns the number of bytes written to the buffer, or + * one of the following negative error codes: + * + * :macro:`NGTCP2_ERR_NOBUF` + * Buffer is too small. + * :macro:`NGTCP2_ERR_INVALID_ARGUMENT` + * |randlen| is strictly less than + * :macro:`NGTCP2_MIN_STATELESS_RESET_RANDLEN`. + * + * This function has been available since v1.22.0. + */ +NGTCP2_EXTERN ngtcp2_ssize ngtcp2_pkt_write_stateless_reset2( + uint8_t *dest, size_t destlen, const ngtcp2_stateless_reset_token *token, + const uint8_t *rand, size_t randlen); + /** * @function * @@ -2744,7 +2812,7 @@ typedef int (*ngtcp2_hp_mask)(uint8_t *dest, const ngtcp2_crypto_cipher *hp, * * :macro:`NGTCP2_STREAM_DATA_FLAG_NONE` indicates no flag set. */ -#define NGTCP2_STREAM_DATA_FLAG_NONE 0x00u +#define NGTCP2_STREAM_DATA_FLAG_NONE 0x00U /** * @macro @@ -2752,7 +2820,7 @@ typedef int (*ngtcp2_hp_mask)(uint8_t *dest, const ngtcp2_crypto_cipher *hp, * :macro:`NGTCP2_STREAM_DATA_FLAG_FIN` indicates that this chunk of * data is final piece of an incoming stream. */ -#define NGTCP2_STREAM_DATA_FLAG_FIN 0x01u +#define NGTCP2_STREAM_DATA_FLAG_FIN 0x01U /** * @macro @@ -2761,7 +2829,7 @@ typedef int (*ngtcp2_hp_mask)(uint8_t *dest, const ngtcp2_crypto_cipher *hp, * data contains data received in 0-RTT packet, and the handshake has * not completed yet, which means that the data might be replayed. */ -#define NGTCP2_STREAM_DATA_FLAG_0RTT 0x02u +#define NGTCP2_STREAM_DATA_FLAG_0RTT 0x02U /** * @functypedef @@ -2816,7 +2884,7 @@ typedef int (*ngtcp2_stream_open)(ngtcp2_conn *conn, int64_t stream_id, * * :macro:`NGTCP2_STREAM_CLOSE_FLAG_NONE` indicates no flag set. */ -#define NGTCP2_STREAM_CLOSE_FLAG_NONE 0x00u +#define NGTCP2_STREAM_CLOSE_FLAG_NONE 0x00U /** * @macro @@ -2824,7 +2892,7 @@ typedef int (*ngtcp2_stream_open)(ngtcp2_conn *conn, int64_t stream_id, * :macro:`NGTCP2_STREAM_CLOSE_FLAG_APP_ERROR_CODE_SET` indicates that * app_error_code parameter is set. */ -#define NGTCP2_STREAM_CLOSE_FLAG_APP_ERROR_CODE_SET 0x01u +#define NGTCP2_STREAM_CLOSE_FLAG_APP_ERROR_CODE_SET 0x01U /** * @functypedef @@ -2905,6 +2973,9 @@ typedef int (*ngtcp2_acked_stream_data_offset)( * The implementation of this callback should return 0 if it succeeds. * Returning :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library * call return immediately. + * + * Deprecated since v1.22.0. Use :type:`ngtcp2_recv_stateless_reset2` + * instead. */ typedef int (*ngtcp2_recv_stateless_reset)(ngtcp2_conn *conn, const ngtcp2_pkt_stateless_reset *sr, @@ -2969,6 +3040,9 @@ typedef void (*ngtcp2_rand)(uint8_t *dest, size_t destlen, * The callback function must return 0 if it succeeds. Returning * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return * immediately. + * + * Deprecated since v1.22.0. Use + * :type:`ngtcp2_get_new_connection_id2` instead. */ typedef int (*ngtcp2_get_new_connection_id)(ngtcp2_conn *conn, ngtcp2_cid *cid, uint8_t *token, size_t cidlen, @@ -3033,7 +3107,7 @@ typedef int (*ngtcp2_update_key)( * * :macro:`NGTCP2_PATH_VALIDATION_FLAG_NONE` indicates no flag set. */ -#define NGTCP2_PATH_VALIDATION_FLAG_NONE 0x00u +#define NGTCP2_PATH_VALIDATION_FLAG_NONE 0x00U /** * @macro @@ -3042,7 +3116,7 @@ typedef int (*ngtcp2_update_key)( * validation involving server preferred address. This flag is only * set for client. */ -#define NGTCP2_PATH_VALIDATION_FLAG_PREFERRED_ADDR 0x01u +#define NGTCP2_PATH_VALIDATION_FLAG_PREFERRED_ADDR 0x01U /** * @macro @@ -3051,7 +3125,7 @@ typedef int (*ngtcp2_update_key)( * server should send NEW_TOKEN frame for the new remote address. * This flag is only set for server. */ -#define NGTCP2_PATH_VALIDATION_FLAG_NEW_TOKEN 0x02u +#define NGTCP2_PATH_VALIDATION_FLAG_NEW_TOKEN 0x02U /** * @functypedef @@ -3166,6 +3240,9 @@ typedef enum ngtcp2_connection_id_status_type { * The callback function must return 0 if it succeeds. Returning * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return * immediately. + * + * Deprecated since v1.22.0. Use :type:`ngtcp2_connection_id_status2` + * instead. */ typedef int (*ngtcp2_connection_id_status)( ngtcp2_conn *conn, ngtcp2_connection_id_status_type type, uint64_t seq, @@ -3221,7 +3298,7 @@ typedef void (*ngtcp2_delete_crypto_cipher_ctx)( * * :macro:`NGTCP2_DATAGRAM_FLAG_NONE` indicates no flag set. */ -#define NGTCP2_DATAGRAM_FLAG_NONE 0x00u +#define NGTCP2_DATAGRAM_FLAG_NONE 0x00U /** * @macro @@ -3230,7 +3307,7 @@ typedef void (*ngtcp2_delete_crypto_cipher_ctx)( * received in 0-RTT packet, and the handshake has not completed yet, * which means that the data might be replayed. */ -#define NGTCP2_DATAGRAM_FLAG_0RTT 0x01u +#define NGTCP2_DATAGRAM_FLAG_0RTT 0x01U /** * @functypedef @@ -3293,6 +3370,9 @@ typedef int (*ngtcp2_lost_datagram)(ngtcp2_conn *conn, uint64_t dgram_id, * The callback function must return 0 if it succeeds. Returning * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return * immediately. + * + * Deprecated since v1.22.0. Use + * :type:`ngtcp2_get_path_challenge_data2` instead. */ typedef int (*ngtcp2_get_path_challenge_data)(ngtcp2_conn *conn, uint8_t *data, void *user_data); @@ -3364,9 +3444,99 @@ typedef int (*ngtcp2_recv_key)(ngtcp2_conn *conn, ngtcp2_encryption_level level, typedef int (*ngtcp2_tls_early_data_rejected)(ngtcp2_conn *conn, void *user_data); +/** + * @functypedef + * + * :type:`ngtcp2_recv_stateless_reset2` is a callback function which + * is called when Stateless Reset packet is received. The stateless + * reset details are given in |sr|. + * + * The implementation of this callback should return 0 if it succeeds. + * Returning :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library + * call return immediately. + * + * This type has been available since v1.22.0 + */ +typedef int (*ngtcp2_recv_stateless_reset2)( + ngtcp2_conn *conn, const ngtcp2_pkt_stateless_reset2 *sr, void *user_data); + +/** + * @functypedef + * + * :type:`ngtcp2_get_new_connection_id2` is a callback function to ask + * an application for new connection ID. Application must generate + * new unused connection ID with the exact |cidlen| bytes, and store + * it in |cid|. It also has to generate a stateless reset token, and + * store it in |token|. + * + * The callback function must return 0 if it succeeds. Returning + * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return + * immediately. + * + * This type has been available since v1.22.0 + */ +typedef int (*ngtcp2_get_new_connection_id2)( + ngtcp2_conn *conn, ngtcp2_cid *cid, ngtcp2_stateless_reset_token *token, + size_t cidlen, void *user_data); + +/** + * @functypedef + * + * :type:`ngtcp2_connection_id_status2` is a callback function which + * is called when the status of Destination Connection ID changes. + * + * |token| is the associated stateless reset token, and it is ``NULL`` + * if no token is present. + * + * |type| is the one of the value defined in + * :type:`ngtcp2_connection_id_status_type`. The new value might be + * added in the future release. + * + * The callback function must return 0 if it succeeds. Returning + * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return + * immediately. + * + * This type has been available since v1.22.0 + */ +typedef int (*ngtcp2_connection_id_status2)( + ngtcp2_conn *conn, ngtcp2_connection_id_status_type type, uint64_t seq, + const ngtcp2_cid *cid, const ngtcp2_stateless_reset_token *token, + void *user_data); + +/** + * @struct + * + * :type:`ngtcp2_path_challenge_data` stores path challenge data. + * + * This type has been available since v1.22.0. + */ +typedef struct ngtcp2_path_challenge_data { + uint8_t data[NGTCP2_PATH_CHALLENGE_DATALEN]; +} ngtcp2_path_challenge_data; + +/** + * @functypedef + * + * :type:`ngtcp2_get_path_challenge_data2` is a callback function to + * ask an application for new data that is sent in PATH_CHALLENGE + * frame. Application must generate new unpredictable, exactly + * :macro:`NGTCP2_PATH_CHALLENGE_DATALEN` bytes of random data, and + * store them into |data|. + * + * The callback function must return 0 if it succeeds. Returning + * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return + * immediately. + * + * This type has been available since v1.22.0. + */ +typedef int (*ngtcp2_get_path_challenge_data2)(ngtcp2_conn *conn, + ngtcp2_path_challenge_data *data, + void *user_data); + #define NGTCP2_CALLBACKS_V1 1 #define NGTCP2_CALLBACKS_V2 2 -#define NGTCP2_CALLBACKS_VERSION NGTCP2_CALLBACKS_V2 +#define NGTCP2_CALLBACKS_V3 3 +#define NGTCP2_CALLBACKS_VERSION NGTCP2_CALLBACKS_V3 /** * @struct @@ -3453,6 +3623,11 @@ typedef struct ngtcp2_callbacks { * :member:`recv_stateless_reset` is a callback function which is * invoked when Stateless Reset packet is received. This callback * function is optional. + * + * Deprecated since v1.22.0. Use :member:`recv_stateless_reset2` + * instead. If both :member:`recv_stateless_reset` and + * :member:`recv_stateless_reset2` are set, the latter has the + * precedence. */ ngtcp2_recv_stateless_reset recv_stateless_reset; /** @@ -3483,8 +3658,14 @@ typedef struct ngtcp2_callbacks { ngtcp2_rand rand; /** * :member:`get_new_connection_id` is a callback function which is - * invoked when the library needs new connection ID. This callback - * function must be specified. + * invoked when the library needs new connection ID. Either this + * callback function or :member:`get_new_connection_id2` must be + * specified. + * + * Deprecated since v1.22.0. Use :member:`get_new_connection_id2` + * instead. If both :member:`get_new_connection_id` and + * :member:`get_new_connection_id2` are set, the latter has the + * precedence. */ ngtcp2_get_new_connection_id get_new_connection_id; /** @@ -3545,6 +3726,10 @@ typedef struct ngtcp2_callbacks { * when the new Destination Connection ID is activated, or the * activated Destination Connection ID is now deactivated. This * callback function is optional. + * + * Deprecated since v1.22.0. Use :member:`dcid_status2` instead. + * If both :member:`dcid_status` and :member:`dcid_status2` are set, + * the latter has the precedence. */ ngtcp2_connection_id_status dcid_status; /** @@ -3595,6 +3780,9 @@ typedef struct ngtcp2_callbacks { * :member:`get_path_challenge_data` is a callback function which is * invoked when the library needs new data sent along with * PATH_CHALLENGE frame. This callback must be specified. + * + * Deprecated since v1.22.0. Use :member:`get_path_challenge_data2` + * instead. */ ngtcp2_get_path_challenge_data get_path_challenge_data; /** @@ -3638,6 +3826,35 @@ typedef struct ngtcp2_callbacks { * available since v1.14.0. */ ngtcp2_begin_path_validation begin_path_validation; + /* The following fields have been added since NGTCP2_CALLBACKS_V3. */ + /** + * :member:`recv_stateless_reset2` is a callback function which is + * invoked when Stateless Reset packet is received. This callback + * function is optional. This field is available since v1.22.0. + */ + ngtcp2_recv_stateless_reset2 recv_stateless_reset2; + /** + * :member:`get_new_connection_id2` is a callback function which is + * invoked when the library needs new connection ID. This callback + * function must be specified. This field is available since + * v1.22.0. + */ + ngtcp2_get_new_connection_id2 get_new_connection_id2; + /** + * :member:`dcid_status2` is a callback function which is invoked + * when the new Destination Connection ID is activated, or the + * activated Destination Connection ID is now deactivated. This + * callback function is optional. This field is available since + * v1.22.0. + */ + ngtcp2_connection_id_status2 dcid_status2; + /** + * :member:`get_path_challenge_data2` is a callback function which + * is invoked when the library needs new data sent along with + * PATH_CHALLENGE frame. This callback must be specified. This + * field is available since v1.22.0. + */ + ngtcp2_get_path_challenge_data2 get_path_challenge_data2; } ngtcp2_callbacks; /** @@ -3853,6 +4070,21 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_write_pkt_versioned( ngtcp2_conn *conn, ngtcp2_path *path, int pkt_info_version, ngtcp2_pkt_info *pi, uint8_t *dest, size_t destlen, ngtcp2_tstamp ts); +/** + * @function + * + * `ngtcp2_conn_continue_handshake` resumes handshake interrupted by + * TLS stack routine (e.g., private key operation offloading, + * certificate lookup, etc). + * + * This function returns 0 if it succeeds. In general, this function + * returns the same set of error codes from `ngtcp2_conn_read_pkt`. + * + * This function has been available since v1.22.0. + */ +NGTCP2_EXTERN int ngtcp2_conn_continue_handshake(ngtcp2_conn *conn, + ngtcp2_tstamp ts); + /** * @function * @@ -4512,7 +4744,7 @@ NGTCP2_EXTERN int ngtcp2_conn_shutdown_stream_read(ngtcp2_conn *conn, * * :macro:`NGTCP2_WRITE_STREAM_FLAG_NONE` indicates no flag set. */ -#define NGTCP2_WRITE_STREAM_FLAG_NONE 0x00u +#define NGTCP2_WRITE_STREAM_FLAG_NONE 0x00U /** * @macro @@ -4520,7 +4752,7 @@ NGTCP2_EXTERN int ngtcp2_conn_shutdown_stream_read(ngtcp2_conn *conn, * :macro:`NGTCP2_WRITE_STREAM_FLAG_MORE` indicates that more data may * come, and should be coalesced into the same packet if possible. */ -#define NGTCP2_WRITE_STREAM_FLAG_MORE 0x01u +#define NGTCP2_WRITE_STREAM_FLAG_MORE 0x01U /** * @macro @@ -4528,7 +4760,7 @@ NGTCP2_EXTERN int ngtcp2_conn_shutdown_stream_read(ngtcp2_conn *conn, * :macro:`NGTCP2_WRITE_STREAM_FLAG_FIN` indicates that a passed data * is the final part of a stream. */ -#define NGTCP2_WRITE_STREAM_FLAG_FIN 0x02u +#define NGTCP2_WRITE_STREAM_FLAG_FIN 0x02U /** * @macro @@ -4539,7 +4771,7 @@ NGTCP2_EXTERN int ngtcp2_conn_shutdown_stream_read(ngtcp2_conn *conn, * finalizing it. PATH_CHALLENGE, PATH_RESPONSE, CONNECTION_CLOSE * only packets and PMTUD packets are excluded. */ -#define NGTCP2_WRITE_STREAM_FLAG_PADDING 0x04u +#define NGTCP2_WRITE_STREAM_FLAG_PADDING 0x04U /** * @function @@ -4724,7 +4956,7 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_writev_stream_versioned( * * :macro:`NGTCP2_WRITE_DATAGRAM_FLAG_NONE` indicates no flag set. */ -#define NGTCP2_WRITE_DATAGRAM_FLAG_NONE 0x00u +#define NGTCP2_WRITE_DATAGRAM_FLAG_NONE 0x00U /** * @macro @@ -4732,7 +4964,7 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_writev_stream_versioned( * :macro:`NGTCP2_WRITE_DATAGRAM_FLAG_MORE` indicates that more data * may come, and should be coalesced into the same packet if possible. */ -#define NGTCP2_WRITE_DATAGRAM_FLAG_MORE 0x01u +#define NGTCP2_WRITE_DATAGRAM_FLAG_MORE 0x01U /** * @macro @@ -4743,7 +4975,7 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_writev_stream_versioned( * finalizing it. PATH_CHALLENGE, PATH_RESPONSE, CONNECTION_CLOSE * only packets and PMTUD packets are excluded. */ -#define NGTCP2_WRITE_DATAGRAM_FLAG_PADDING 0x02u +#define NGTCP2_WRITE_DATAGRAM_FLAG_PADDING 0x02U /** * @function @@ -4980,6 +5212,8 @@ NGTCP2_EXTERN size_t ngtcp2_conn_get_scid(ngtcp2_conn *conn, ngtcp2_cid *dest); * * :type:`ngtcp2_cid_token` is the convenient struct to store * Connection ID, its associated path, and stateless reset token. + * + * Deprecated since v1.22.0. Use :type:`ngtcp2_cid_token2` instead. */ typedef struct ngtcp2_cid_token { /** @@ -5019,10 +5253,65 @@ typedef struct ngtcp2_cid_token { * sizeof(:type:`ngtcp2_cid_token`) * n bytes available, where n is * the return value of `ngtcp2_conn_get_active_dcid` with |dest| == * NULL. + * + * Deprecated since v1.22.0. Use `ngtcp2_conn_get_active_dcid2` + * instead. */ NGTCP2_EXTERN size_t ngtcp2_conn_get_active_dcid(ngtcp2_conn *conn, ngtcp2_cid_token *dest); +/** + * @struct + * + * :type:`ngtcp2_cid_token2` is the convenient struct to store + * Connection ID, its associated path, and stateless reset token. + * + * This type has been available since v1.22.0. + */ +typedef struct ngtcp2_cid_token2 { + /** + * :member:`seq` is the sequence number of this Connection ID. + */ + uint64_t seq; + /** + * :member:`cid` is Connection ID. + */ + ngtcp2_cid cid; + /** + * :member:`ps` is the path which this Connection ID is associated + * with. + */ + ngtcp2_path_storage ps; + /** + * :member:`token` is the stateless reset token for this Connection + * ID. + */ + ngtcp2_stateless_reset_token token; + /** + * :member:`token_present` is nonzero if token contains stateless + * reset token. + */ + uint8_t token_present; +} ngtcp2_cid_token2; + +/** + * @function + * + * `ngtcp2_conn_get_active_dcid2` writes the all active Destination + * Connection IDs and their tokens to |dest|. Before handshake + * completes, this function returns 0. If |dest| is NULL, this + * function does not write anything, and returns the number of + * Destination Connection IDs that would otherwise be written to the + * provided buffer. The buffer pointed by |dest| must have + * sizeof(:type:`ngtcp2_cid_token2`) * n bytes available, where n is + * the return value of `ngtcp2_conn_get_active_dcid2` with |dest| == + * NULL. + * + * This function has been available since v1.22.0. + */ +NGTCP2_EXTERN size_t ngtcp2_conn_get_active_dcid2(ngtcp2_conn *conn, + ngtcp2_cid_token2 *dest); + /** * @function * @@ -5553,7 +5842,7 @@ NGTCP2_EXTERN void ngtcp2_ccerr_set_application_error(ngtcp2_ccerr *ccerr, * @function * * `ngtcp2_conn_write_connection_close` writes a packet which contains - * CONNECTION_CLOSE frame(s) (type 0x1c or 0x1d) in the buffer pointed + * CONNECTION_CLOSE frame(s) (type 0x1C or 0x1D) in the buffer pointed * by |dest| whose capacity is |destlen|. * * For client, |destlen| should be at least @@ -5570,10 +5859,10 @@ NGTCP2_EXTERN void ngtcp2_ccerr_set_application_error(ngtcp2_ccerr *ccerr, * * If :member:`ccerr->type ` == * :enum:`ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_TRANSPORT`, this - * function sends CONNECTION_CLOSE (type 0x1c) frame. If + * function sends CONNECTION_CLOSE (type 0x1C) frame. If * :member:`ccerr->type ` == * :enum:`ngtcp2_ccerr_type.NGTCP2_CCERR_TYPE_APPLICATION`, it sends - * CONNECTION_CLOSE (type 0x1d) frame. Otherwise, it does not produce + * CONNECTION_CLOSE (type 0x1D) frame. Otherwise, it does not produce * any data, and returns 0. * * |destlen| could be shorten by some factors (e.g., server side diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h index c2099d2495..28eeeb5ead 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h @@ -524,11 +524,14 @@ NGTCP2_EXTERN int ngtcp2_crypto_recv_client_initial_cb(ngtcp2_conn *conn, * completes. It is allowed to call this function with |datalen| == * 0. In this case, no additional read operation is done. * + * This function is implemented per TLS backend. See + * :ref:`tls-integration` for more details. + * * This function returns 0 if it succeeds, or a negative error code. * The generic error code is -1 if a specific error code is not * suitable. The error codes less than -10000 are specific to - * underlying TLS implementation. For quictls, the error codes are - * defined in *ngtcp2_crypto_quictls.h*. + * underlying TLS implementation. Refer to the implementation + * specific header files for error codes. */ NGTCP2_EXTERN int ngtcp2_crypto_read_write_crypto_data(ngtcp2_conn *conn, @@ -542,11 +545,22 @@ ngtcp2_crypto_read_write_crypto_data(ngtcp2_conn *conn, * `ngtcp2_crypto_read_write_crypto_data`. It can be directly passed * to :member:`ngtcp2_callbacks.recv_crypto_data` field. * + * For quictls and OpenSSL, the following error codes are treated as + * success: + * + * - -10001 (e.g., :macro:`NGTCP2_CRYPTO_QUICTLS_ERR_TLS_WANT_X509_LOOKUP`) + * - -10002 (e.g., :macro:`NGTCP2_CRYPTO_QUICTLS_ERR_TLS_WANT_CLIENT_HELLO_CB`) + * + * To continue the interrupted handshake, call + * `ngtcp2_conn_continue_handshake`. + * + * See :ref:`tls-integration` for more details. + * * If this function is used, the TLS implementation specific error * codes described in `ngtcp2_crypto_read_write_crypto_data` are - * treated as if it returns -1. Do not use this function if an - * application wishes to use the TLS implementation specific error - * codes. + * treated as if it returns -1 except for those that are listed above. + * Do not use this function if an application wishes to use the TLS + * implementation specific error codes. */ NGTCP2_EXTERN int ngtcp2_crypto_recv_crypto_data_cb( ngtcp2_conn *conn, ngtcp2_encryption_level encryption_level, uint64_t offset, @@ -583,7 +597,7 @@ NGTCP2_EXTERN int ngtcp2_crypto_generate_stateless_reset_token( * :macro:`NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY` is the magic byte for * Retry token generated by `ngtcp2_crypto_generate_retry_token`. */ -#define NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY 0xb6 +#define NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY 0xB6 /** * @macro @@ -591,7 +605,7 @@ NGTCP2_EXTERN int ngtcp2_crypto_generate_stateless_reset_token( * :macro:`NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY2` is the magic byte for * Retry token generated by `ngtcp2_crypto_generate_retry_token2`. */ -#define NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY2 0xb7 +#define NGTCP2_CRYPTO_TOKEN_MAGIC_RETRY2 0xB7 /** * @macro @@ -978,11 +992,29 @@ NGTCP2_EXTERN void ngtcp2_crypto_delete_crypto_cipher_ctx_cb( * * This function can be directly passed to * :member:`ngtcp2_callbacks.get_path_challenge_data` field. + * + * Deprecated since v1.22.0. Use + * `ngtcp2_crypto_get_path_challenge_data2_cb` instead. */ NGTCP2_EXTERN int ngtcp2_crypto_get_path_challenge_data_cb(ngtcp2_conn *conn, uint8_t *data, void *user_data); +/** + * @function + * + * `ngtcp2_crypto_get_path_challenge_data2_cb` writes unpredictable + * sequence of :macro:`NGTCP2_PATH_CHALLENGE_DATALEN` bytes to |data| + * which is sent with PATH_CHALLENGE frame. + * + * This function can be directly passed to + * :member:`ngtcp2_callbacks.get_path_challenge_data2` field. + * + * This function has been available since v1.22.0. + */ +NGTCP2_EXTERN int ngtcp2_crypto_get_path_challenge_data2_cb( + ngtcp2_conn *conn, ngtcp2_path_challenge_data *data, void *user_data); + /** * @function * diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index ff43c9c8f8..88e0107a55 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.21.0" +#define NGTCP2_VERSION "1.22.0" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x011500 +#define NGTCP2_VERSION_NUM 0x011600 #endif /* !defined(NGTCP2_VERSION_H) */ From 7032097a5743e3f0be94f4c5212c04e6b7d9845d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 28 Mar 2026 18:34:05 +0100 Subject: [PATCH 417/675] libzscanner: add rdata lower casing support and generic format indication --- src/libzscanner/functions.c | 12 + src/libzscanner/functions.h | 7 + src/libzscanner/scanner.c.g2 | 649 ++++-- src/libzscanner/scanner.c.t0 | 3382 +++++++++++++++-------------- src/libzscanner/scanner.h | 14 +- src/libzscanner/scanner_body.rl | 22 +- tests/libzscanner/zscanner-tool.c | 12 +- 7 files changed, 2258 insertions(+), 1840 deletions(-) diff --git a/src/libzscanner/functions.c b/src/libzscanner/functions.c index 43a5d8a58f..6335c3263d 100644 --- a/src/libzscanner/functions.c +++ b/src/libzscanner/functions.c @@ -7,6 +7,7 @@ #include #include +#include "contrib/tolower.h" #include "libzscanner/error.h" #include "libzscanner/functions.h" #include "libknot/endian.h" @@ -847,6 +848,17 @@ void dname_to_str(const uint8_t *data, text[text_len] = 0; } +void dname_to_lower(uint8_t *name) +{ + while (*name != '\0') { + uint8_t len = *name; + for (uint8_t i = 1; i <= len; ++i) { + name[i] = knot_tolower(name[i]); + } + name += 1 + len; + } +} + uint8_t loc64to8(uint64_t number) { uint8_t exponent = 0; diff --git a/src/libzscanner/functions.h b/src/libzscanner/functions.h index e73f9897d5..e4b29dae2c 100644 --- a/src/libzscanner/functions.h +++ b/src/libzscanner/functions.h @@ -86,6 +86,13 @@ void dname_to_str(const uint8_t *data, const uint32_t data_len, char *text); +/*! + * \brief Applies lower casing on dname. + * + * \param name Buffer containing wire-format dname. + */ +void dname_to_lower(uint8_t *name); + /*! * \brief Converts unsigned integer to mantissa*10^(exponent). * diff --git a/src/libzscanner/scanner.c.g2 b/src/libzscanner/scanner.c.g2 index 13d1643bde..7328d63755 100644 --- a/src/libzscanner/scanner.c.g2 +++ b/src/libzscanner/scanner.c.g2 @@ -6164,6 +6164,7 @@ tr73: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -6259,6 +6260,7 @@ tr73: goto st6; tr76: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -6359,6 +6361,7 @@ tr100: } } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -6454,6 +6457,7 @@ tr100: goto st6; tr101: { + s->r_data_generic = true; switch (s->r_type) { // Next types must not have empty rdata. case KNOT_RRTYPE_A: @@ -6521,6 +6525,7 @@ tr172: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -6620,6 +6625,7 @@ tr194: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -6719,6 +6725,7 @@ tr202: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -6818,6 +6825,7 @@ tr212: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -6917,6 +6925,7 @@ tr223: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -7016,6 +7025,7 @@ tr234: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -7115,6 +7125,7 @@ tr248: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -7214,6 +7225,7 @@ tr260: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -7313,6 +7325,7 @@ tr271: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -7412,6 +7425,7 @@ tr280: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -7511,6 +7525,7 @@ tr290: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -7610,6 +7625,7 @@ tr303: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -7709,6 +7725,7 @@ tr312: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -7808,6 +7825,7 @@ tr325: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -7907,6 +7925,7 @@ tr336: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -8006,6 +8025,7 @@ tr380: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -8105,6 +8125,7 @@ tr391: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -8204,6 +8225,7 @@ tr399: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -8303,6 +8325,7 @@ tr412: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -8402,6 +8425,7 @@ tr421: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -8501,6 +8525,7 @@ tr430: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -8600,6 +8625,7 @@ tr438: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -8699,6 +8725,7 @@ tr451: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -8798,6 +8825,7 @@ tr459: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -8897,6 +8925,7 @@ tr473: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -8996,6 +9025,7 @@ tr482: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -9095,6 +9125,7 @@ tr491: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -9194,6 +9225,7 @@ tr501: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -9293,6 +9325,7 @@ tr510: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -9392,6 +9425,7 @@ tr522: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -9491,6 +9525,7 @@ tr539: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -9590,6 +9625,7 @@ tr549: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -9689,6 +9725,7 @@ tr566: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -9788,6 +9825,7 @@ tr574: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -9887,6 +9925,7 @@ tr585: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -9986,6 +10025,7 @@ tr593: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -10085,6 +10125,7 @@ tr611: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -10184,6 +10225,7 @@ tr620: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -10283,6 +10325,7 @@ tr629: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -10382,6 +10425,7 @@ tr638: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -10481,6 +10525,7 @@ tr649: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -10580,6 +10625,7 @@ tr659: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -10679,6 +10725,7 @@ tr672: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -10778,6 +10825,7 @@ tr681: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -10884,6 +10932,7 @@ tr695: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -10983,6 +11032,7 @@ tr705: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -11082,6 +11132,7 @@ tr718: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -11181,6 +11232,7 @@ tr731: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -11280,6 +11332,7 @@ tr982: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -11379,6 +11432,7 @@ tr993: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -11478,6 +11532,7 @@ tr1004: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -11577,6 +11632,7 @@ tr1013: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -12372,6 +12428,7 @@ tr74: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -12470,6 +12527,7 @@ tr84: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -12572,6 +12630,7 @@ tr173: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -12674,6 +12733,7 @@ tr195: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -12776,6 +12836,7 @@ tr203: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -12878,6 +12939,7 @@ tr213: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -12980,6 +13042,7 @@ tr224: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -13082,6 +13145,7 @@ tr235: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -13184,6 +13248,7 @@ tr249: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -13286,6 +13351,7 @@ tr261: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -13388,6 +13454,7 @@ tr272: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -13490,6 +13557,7 @@ tr281: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -13592,6 +13660,7 @@ tr291: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -13694,6 +13763,7 @@ tr304: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -13796,6 +13866,7 @@ tr313: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -13898,6 +13969,7 @@ tr326: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -14000,6 +14072,7 @@ tr337: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -14102,6 +14175,7 @@ tr381: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -14204,6 +14278,7 @@ tr392: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -14306,6 +14381,7 @@ tr400: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -14408,6 +14484,7 @@ tr413: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -14510,6 +14587,7 @@ tr422: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -14612,6 +14690,7 @@ tr431: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -14714,6 +14793,7 @@ tr439: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -14816,6 +14896,7 @@ tr452: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -14918,6 +14999,7 @@ tr460: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -15020,6 +15102,7 @@ tr474: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -15122,6 +15205,7 @@ tr483: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -15224,6 +15308,7 @@ tr492: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -15326,6 +15411,7 @@ tr502: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -15428,6 +15514,7 @@ tr511: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -15530,6 +15617,7 @@ tr523: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -15632,6 +15720,7 @@ tr540: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -15734,6 +15823,7 @@ tr550: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -15836,6 +15926,7 @@ tr567: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -15938,6 +16029,7 @@ tr575: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -16040,6 +16132,7 @@ tr586: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -16142,6 +16235,7 @@ tr594: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -16244,6 +16338,7 @@ tr612: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -16346,6 +16441,7 @@ tr621: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -16448,6 +16544,7 @@ tr630: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -16550,6 +16647,7 @@ tr639: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -16652,6 +16750,7 @@ tr650: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -16754,6 +16853,7 @@ tr660: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -16856,6 +16956,7 @@ tr673: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -16958,6 +17059,7 @@ tr682: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -17067,6 +17169,7 @@ tr696: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -17169,6 +17272,7 @@ tr706: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -17271,6 +17375,7 @@ tr719: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -17373,6 +17478,7 @@ tr732: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -17475,6 +17581,7 @@ tr983: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -17577,6 +17684,7 @@ tr994: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -17679,6 +17787,7 @@ tr1005: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -17781,6 +17890,7 @@ tr1014: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -18444,6 +18554,7 @@ tr124: } } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -18799,6 +18910,7 @@ tr75: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -18897,6 +19009,7 @@ tr85: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -18999,6 +19112,7 @@ tr174: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -19101,6 +19215,7 @@ tr196: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -19203,6 +19318,7 @@ tr204: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -19305,6 +19421,7 @@ tr214: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -19407,6 +19524,7 @@ tr225: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -19509,6 +19627,7 @@ tr236: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -19611,6 +19730,7 @@ tr250: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -19713,6 +19833,7 @@ tr262: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -19815,6 +19936,7 @@ tr273: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -19917,6 +20039,7 @@ tr282: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -20019,6 +20142,7 @@ tr292: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -20121,6 +20245,7 @@ tr305: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -20223,6 +20348,7 @@ tr314: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -20325,6 +20451,7 @@ tr327: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -20427,6 +20554,7 @@ tr338: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -20529,6 +20657,7 @@ tr382: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -20631,6 +20760,7 @@ tr393: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -20733,6 +20863,7 @@ tr401: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -20835,6 +20966,7 @@ tr414: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -20937,6 +21069,7 @@ tr423: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -21039,6 +21172,7 @@ tr432: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -21141,6 +21275,7 @@ tr440: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -21243,6 +21378,7 @@ tr453: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -21345,6 +21481,7 @@ tr461: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -21447,6 +21584,7 @@ tr475: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -21549,6 +21687,7 @@ tr484: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -21651,6 +21790,7 @@ tr493: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -21753,6 +21893,7 @@ tr503: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -21855,6 +21996,7 @@ tr512: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -21957,6 +22099,7 @@ tr524: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -22059,6 +22202,7 @@ tr541: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -22161,6 +22305,7 @@ tr551: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -22263,6 +22408,7 @@ tr568: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -22365,6 +22511,7 @@ tr576: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -22467,6 +22614,7 @@ tr587: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -22569,6 +22717,7 @@ tr595: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -22671,6 +22820,7 @@ tr613: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -22773,6 +22923,7 @@ tr622: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -22875,6 +23026,7 @@ tr631: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -22977,6 +23129,7 @@ tr640: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -23079,6 +23232,7 @@ tr651: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -23181,6 +23335,7 @@ tr661: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -23283,6 +23438,7 @@ tr674: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -23385,6 +23541,7 @@ tr683: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -23494,6 +23651,7 @@ tr697: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -23596,6 +23754,7 @@ tr707: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -23698,6 +23857,7 @@ tr720: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -23800,6 +23960,7 @@ tr733: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -23902,6 +24063,7 @@ tr984: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -24004,6 +24166,7 @@ tr995: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -24106,6 +24269,7 @@ tr1006: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -24208,6 +24372,7 @@ tr1015: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -30551,6 +30716,7 @@ tr125: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -30795,6 +30961,7 @@ case 220: goto tr86; tr108: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -30921,6 +31088,7 @@ tr108: goto st1510; tr115: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -31043,6 +31211,7 @@ tr115: goto st1510; tr145: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -31145,6 +31314,7 @@ tr873: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -31271,6 +31441,7 @@ tr873: goto st1510; tr4237: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -31722,6 +31893,7 @@ case 222: goto tr92; tr109: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -31824,6 +31996,7 @@ tr109: goto st223; tr116: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -31926,6 +32099,7 @@ tr874: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -32187,6 +32361,7 @@ tr875: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -32313,6 +32488,7 @@ tr881: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -32685,6 +32861,7 @@ tr126: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -32823,6 +33000,7 @@ tr127: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -32957,6 +33135,7 @@ tr128: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -33087,6 +33266,7 @@ tr129: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -33219,6 +33399,7 @@ tr130: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -33351,6 +33532,7 @@ tr131: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -33483,6 +33665,7 @@ tr132: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -33617,6 +33800,7 @@ tr133: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -33749,6 +33933,7 @@ tr134: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -33883,6 +34068,7 @@ tr135: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -34013,6 +34199,7 @@ tr136: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -34143,6 +34330,7 @@ tr137: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -34279,6 +34467,7 @@ tr138: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -34419,6 +34608,7 @@ tr139: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -34553,6 +34743,7 @@ tr140: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -34683,6 +34874,7 @@ tr141: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -34813,6 +35005,7 @@ tr142: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -35296,6 +35489,7 @@ case 1512: goto tr4309; tr4230: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -35525,6 +35719,7 @@ case 253: goto tr799; tr4233: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -35669,6 +35864,7 @@ tr4310: } } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -36026,6 +36222,7 @@ tr4311: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -36327,6 +36524,7 @@ tr147: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -36425,6 +36623,7 @@ tr946: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -36554,6 +36753,7 @@ tr940: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -36680,6 +36880,7 @@ tr4239: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -36893,6 +37094,7 @@ tr4312: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -37036,6 +37238,7 @@ tr4313: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -37175,6 +37378,7 @@ tr4314: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -37310,6 +37514,7 @@ tr4315: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -37447,6 +37652,7 @@ tr4316: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -37584,6 +37790,7 @@ tr4317: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -37721,6 +37928,7 @@ tr4318: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -37860,6 +38068,7 @@ tr4319: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -37997,6 +38206,7 @@ tr4320: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -38136,6 +38346,7 @@ tr4321: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -38271,6 +38482,7 @@ tr4322: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -38406,6 +38618,7 @@ tr4323: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -38547,6 +38760,7 @@ tr4324: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -38692,6 +38906,7 @@ tr4325: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -38831,6 +39046,7 @@ tr4326: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -38966,6 +39182,7 @@ tr4327: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -39101,6 +39318,7 @@ tr4328: s->r_ttl = s->default_ttl; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -39286,6 +39504,7 @@ tr947: } } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -39396,6 +39615,7 @@ tr949: } } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -39506,6 +39726,7 @@ tr950: } } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -39612,6 +39833,7 @@ tr951: } } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -39783,6 +40005,7 @@ tr952: } } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -40065,6 +40288,7 @@ tr902: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -40163,6 +40387,7 @@ tr1044: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -40272,6 +40497,7 @@ tr941: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -40374,6 +40600,7 @@ tr4308: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -40941,6 +41168,7 @@ case 296: goto tr86; tr4238: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -41043,6 +41271,7 @@ tr4238: goto st297; tr146: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -41296,6 +41525,7 @@ tr148: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -41394,6 +41624,7 @@ tr4240: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -41692,6 +41923,7 @@ tr117: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -41790,6 +42022,7 @@ tr110: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -41896,6 +42129,7 @@ tr876: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -42239,6 +42473,7 @@ tr865: s->line_counter++; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -42344,6 +42579,7 @@ tr858: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -42526,6 +42762,7 @@ tr866: s->buffer_length = 0; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -42631,6 +42868,7 @@ tr859: rdata_tail = s->r_data; } { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -70771,6 +71009,11 @@ case 1104: goto tr2699; goto tr78; tr2699: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -70874,11 +71117,21 @@ tr2854: } goto st1107; tr2701: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } goto st1107; tr2702: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -70891,6 +71144,11 @@ tr2702: } goto st1107; tr2703: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -70903,6 +71161,11 @@ tr2703: } goto st1107; tr2704: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -71019,11 +71282,21 @@ tr2852: } goto st1109; tr2712: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } goto st1109; tr2713: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -71036,6 +71309,11 @@ tr2713: } goto st1109; tr2714: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -71048,6 +71326,11 @@ tr2714: } goto st1109; tr2715: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -73418,6 +73701,11 @@ tr2851: } goto st1135; tr2716: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -73465,6 +73753,11 @@ tr2853: } goto st1136; tr2705: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -73896,11 +74189,21 @@ tr2884: } goto st1144; tr2871: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } goto st1144; tr2872: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -73913,6 +74216,11 @@ tr2872: } goto st1144; tr2873: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -73925,6 +74233,11 @@ tr2873: } goto st1144; tr2874: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -73989,6 +74302,11 @@ case 1145: goto tr2882; goto tr78; tr2882: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -74014,6 +74332,11 @@ tr2883: } goto st1146; tr2875: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -74280,6 +74603,11 @@ case 1150: goto tr2898; goto tr78; tr2898: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -82507,6 +82835,11 @@ case 1220: goto tr3220; goto tr78; tr3220: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -83669,6 +84002,11 @@ case 1235: goto tr3285; goto tr78; tr3285: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -87749,43 +88087,6 @@ tr3589: rdata_tail += ZS_INET6_ADDR_LENGTH; } goto st1294; -tr3633: - { - rdata_tail += s->dname_tmp_length; - } - goto st1294; -tr3634: - { - rdata_tail += s->dname_tmp_length; - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = true; - } - goto st1294; -tr3635: - { - rdata_tail += s->dname_tmp_length; - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; - } - goto st1294; -tr3643: - { - rdata_tail += s->dname_tmp_length; - } - { - s->line_counter++; - } - goto st1294; tr3545: { s->buffer[s->buffer_length] = 0; @@ -87928,6 +88229,43 @@ tr3599: s->line_counter++; } goto st1294; +tr3633: + { + rdata_tail += s->dname_tmp_length; + } + goto st1294; +tr3634: + { + rdata_tail += s->dname_tmp_length; + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st329;} + } + s->multiline = true; + } + goto st1294; +tr3635: + { + rdata_tail += s->dname_tmp_length; + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st329;} + } + s->multiline = false; + } + goto st1294; +tr3643: + { + rdata_tail += s->dname_tmp_length; + } + { + s->line_counter++; + } + goto st1294; st1294: if ( ++p == pe ) goto _test_eof1294; @@ -88070,14 +88408,6 @@ tr3553: p--; {cs = stack[--top];goto _again;} } goto st1576; -tr3642: - { - rdata_tail += s->dname_tmp_length; - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1576; tr3598: { s->buffer[s->buffer_length] = 0; @@ -88099,6 +88429,14 @@ tr3598: p--; {cs = stack[--top];goto _again;} } goto st1576; +tr3642: + { + rdata_tail += s->dname_tmp_length; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1576; st1576: if ( ++p == pe ) goto _test_eof1576; @@ -88116,14 +88454,6 @@ tr3513: } } goto st1296; -tr3644: - { - rdata_tail += s->dname_tmp_length; - } - { - s->buffer_length = 0; - } - goto st1296; tr3555: { s->buffer[s->buffer_length] = 0; @@ -88166,6 +88496,14 @@ tr3600: s->buffer_length = 0; } goto st1296; +tr3644: + { + rdata_tail += s->dname_tmp_length; + } + { + s->buffer_length = 0; + } + goto st1296; st1296: if ( ++p == pe ) goto _test_eof1296; @@ -88276,43 +88614,6 @@ tr3592: rdata_tail += ZS_INET6_ADDR_LENGTH; } goto st1297; -tr3636: - { - rdata_tail += s->dname_tmp_length; - } - goto st1297; -tr3637: - { - rdata_tail += s->dname_tmp_length; - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = true; - } - goto st1297; -tr3638: - { - rdata_tail += s->dname_tmp_length; - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; - } - goto st1297; -tr3647: - { - rdata_tail += s->dname_tmp_length; - } - { - s->line_counter++; - } - goto st1297; tr3548: { s->buffer[s->buffer_length] = 0; @@ -88455,6 +88756,43 @@ tr3603: s->line_counter++; } goto st1297; +tr3636: + { + rdata_tail += s->dname_tmp_length; + } + goto st1297; +tr3637: + { + rdata_tail += s->dname_tmp_length; + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st329;} + } + s->multiline = true; + } + goto st1297; +tr3638: + { + rdata_tail += s->dname_tmp_length; + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st329;} + } + s->multiline = false; + } + goto st1297; +tr3647: + { + rdata_tail += s->dname_tmp_length; + } + { + s->line_counter++; + } + goto st1297; st1297: if ( ++p == pe ) goto _test_eof1297; @@ -88532,14 +88870,6 @@ tr3515: } } goto st1298; -tr3648: - { - rdata_tail += s->dname_tmp_length; - } - { - s->buffer_length = 0; - } - goto st1298; tr3559: { s->buffer[s->buffer_length] = 0; @@ -88582,6 +88912,14 @@ tr3604: s->buffer_length = 0; } goto st1298; +tr3648: + { + rdata_tail += s->dname_tmp_length; + } + { + s->buffer_length = 0; + } + goto st1298; st1298: if ( ++p == pe ) goto _test_eof1298; @@ -88924,43 +89262,6 @@ tr3595: rdata_tail += ZS_INET6_ADDR_LENGTH; } goto st1299; -tr3639: - { - rdata_tail += s->dname_tmp_length; - } - goto st1299; -tr3640: - { - rdata_tail += s->dname_tmp_length; - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = true; - } - goto st1299; -tr3641: - { - rdata_tail += s->dname_tmp_length; - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; - } - goto st1299; -tr3651: - { - rdata_tail += s->dname_tmp_length; - } - { - s->line_counter++; - } - goto st1299; tr3551: { s->buffer[s->buffer_length] = 0; @@ -89103,6 +89404,43 @@ tr3607: s->line_counter++; } goto st1299; +tr3639: + { + rdata_tail += s->dname_tmp_length; + } + goto st1299; +tr3640: + { + rdata_tail += s->dname_tmp_length; + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st329;} + } + s->multiline = true; + } + goto st1299; +tr3641: + { + rdata_tail += s->dname_tmp_length; + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st329;} + } + s->multiline = false; + } + goto st1299; +tr3651: + { + rdata_tail += s->dname_tmp_length; + } + { + s->line_counter++; + } + goto st1299; st1299: if ( ++p == pe ) goto _test_eof1299; @@ -89510,14 +89848,6 @@ tr3517: } } goto st1300; -tr3652: - { - rdata_tail += s->dname_tmp_length; - } - { - s->buffer_length = 0; - } - goto st1300; tr3563: { s->buffer[s->buffer_length] = 0; @@ -89560,6 +89890,14 @@ tr3608: s->buffer_length = 0; } goto st1300; +tr3652: + { + rdata_tail += s->dname_tmp_length; + } + { + s->buffer_length = 0; + } + goto st1300; st1300: if ( ++p == pe ) goto _test_eof1300; @@ -93034,11 +93372,21 @@ tr3748: } goto st1341; tr3735: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } goto st1341; tr3736: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -93051,6 +93399,11 @@ tr3736: } goto st1341; tr3737: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -93063,6 +93416,11 @@ tr3737: } goto st1341; tr3738: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } @@ -93151,6 +93509,11 @@ tr3747: } goto st1343; tr3739: + { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } { rdata_tail += s->dname_tmp_length; } diff --git a/src/libzscanner/scanner.c.t0 b/src/libzscanner/scanner.c.t0 index 1121e568ca..ba37a6df68 100644 --- a/src/libzscanner/scanner.c.t0 +++ b/src/libzscanner/scanner.c.t0 @@ -86,112 +86,112 @@ static const short _zone_scanner_actions[] = { 8, 1, 10, 1, 13, 1, 14, 1, 15, 1, 17, 1, 18, 1, 23, 1, 24, 1, 26, 1, 27, 1, 29, 1, - 31, 1, 33, 1, 35, 1, 36, 1, - 45, 1, 46, 1, 47, 1, 49, 1, - 51, 1, 52, 1, 53, 1, 54, 1, - 58, 1, 59, 1, 61, 1, 63, 1, - 65, 1, 68, 1, 69, 1, 73, 1, - 74, 1, 77, 1, 78, 1, 81, 1, - 84, 1, 86, 1, 87, 1, 88, 1, - 89, 1, 90, 1, 91, 1, 92, 1, - 93, 1, 95, 1, 97, 1, 99, 1, - 103, 1, 104, 1, 108, 1, 109, 1, - 113, 1, 114, 1, 115, 1, 116, 1, - 117, 1, 118, 1, 119, 1, 120, 1, - 121, 1, 122, 1, 123, 1, 124, 1, - 125, 1, 126, 1, 128, 1, 129, 1, - 130, 1, 131, 1, 145, 1, 146, 1, - 148, 1, 149, 1, 150, 1, 151, 1, - 152, 1, 158, 1, 211, 1, 212, 1, - 213, 1, 214, 1, 215, 1, 216, 1, - 217, 1, 218, 1, 219, 1, 220, 1, - 221, 1, 222, 1, 223, 1, 224, 1, - 225, 1, 226, 1, 227, 1, 228, 1, - 229, 1, 230, 1, 231, 1, 232, 1, - 233, 1, 234, 1, 235, 1, 236, 1, - 237, 1, 238, 1, 239, 1, 240, 1, - 241, 1, 242, 1, 243, 1, 244, 1, - 245, 1, 246, 1, 247, 1, 248, 1, - 249, 1, 250, 1, 251, 1, 252, 1, - 253, 1, 254, 1, 255, 1, 256, 1, - 257, 1, 258, 1, 259, 1, 260, 1, - 261, 1, 262, 1, 263, 1, 264, 1, - 265, 1, 267, 1, 269, 1, 270, 1, - 271, 1, 272, 1, 279, 1, 280, 1, - 285, 1, 287, 1, 292, 1, 295, 1, - 297, 1, 298, 1, 299, 1, 300, 1, - 305, 1, 306, 1, 308, 1, 309, 1, - 310, 1, 311, 1, 312, 1, 313, 1, - 315, 1, 316, 1, 317, 1, 318, 1, - 320, 2, 0, 49, 2, 1, 0, 2, - 1, 316, 2, 1, 373, 2, 2, 5, + 31, 1, 33, 1, 36, 1, 37, 1, + 46, 1, 47, 1, 48, 1, 50, 1, + 52, 1, 53, 1, 54, 1, 55, 1, + 59, 1, 60, 1, 62, 1, 64, 1, + 66, 1, 69, 1, 70, 1, 74, 1, + 75, 1, 78, 1, 79, 1, 82, 1, + 85, 1, 87, 1, 88, 1, 89, 1, + 90, 1, 91, 1, 92, 1, 93, 1, + 94, 1, 96, 1, 98, 1, 100, 1, + 104, 1, 105, 1, 109, 1, 110, 1, + 114, 1, 115, 1, 116, 1, 117, 1, + 118, 1, 119, 1, 120, 1, 121, 1, + 122, 1, 123, 1, 124, 1, 125, 1, + 126, 1, 127, 1, 129, 1, 130, 1, + 131, 1, 132, 1, 146, 1, 147, 1, + 149, 1, 150, 1, 151, 1, 152, 1, + 153, 1, 159, 1, 212, 1, 213, 1, + 214, 1, 215, 1, 216, 1, 217, 1, + 218, 1, 219, 1, 220, 1, 221, 1, + 222, 1, 223, 1, 224, 1, 225, 1, + 226, 1, 227, 1, 228, 1, 229, 1, + 230, 1, 231, 1, 232, 1, 233, 1, + 234, 1, 235, 1, 236, 1, 237, 1, + 238, 1, 239, 1, 240, 1, 241, 1, + 242, 1, 243, 1, 244, 1, 245, 1, + 246, 1, 247, 1, 248, 1, 249, 1, + 250, 1, 251, 1, 252, 1, 253, 1, + 254, 1, 255, 1, 256, 1, 257, 1, + 258, 1, 259, 1, 260, 1, 261, 1, + 262, 1, 263, 1, 264, 1, 265, 1, + 266, 1, 268, 1, 270, 1, 271, 1, + 272, 1, 273, 1, 280, 1, 281, 1, + 286, 1, 288, 1, 293, 1, 296, 1, + 298, 1, 299, 1, 300, 1, 301, 1, + 306, 1, 307, 1, 309, 1, 310, 1, + 311, 1, 312, 1, 313, 1, 314, 1, + 316, 1, 317, 1, 318, 1, 319, 1, + 321, 2, 0, 50, 2, 1, 0, 2, + 1, 317, 2, 1, 374, 2, 2, 5, 2, 2, 7, 2, 3, 5, 2, 3, 7, 2, 4, 0, 2, 4, 5, 2, - 4, 7, 2, 4, 316, 2, 5, 2, + 4, 7, 2, 4, 317, 2, 5, 2, 2, 5, 3, 2, 5, 4, 2, 5, 7, 2, 6, 1, 2, 7, 1, 2, 7, 2, 2, 7, 3, 2, 7, 4, 2, 7, 5, 2, 7, 32, 2, 8, - 73, 2, 8, 77, 2, 9, 10, 2, + 74, 2, 8, 78, 2, 9, 10, 2, 11, 1, 2, 12, 1, 2, 13, 14, 2, 16, 17, 2, 18, 14, 2, 18, - 15, 2, 19, 24, 2, 19, 77, 2, - 19, 84, 2, 20, 0, 2, 20, 7, + 15, 2, 19, 24, 2, 19, 78, 2, + 19, 85, 2, 20, 0, 2, 20, 7, 2, 22, 0, 2, 23, 13, 2, 26, - 69, 2, 26, 108, 2, 26, 119, 2, + 70, 2, 26, 109, 2, 26, 120, 2, 27, 0, 2, 27, 1, 2, 27, 2, 2, 27, 3, 2, 27, 4, 2, 27, - 268, 2, 28, 69, 2, 28, 113, 2, - 29, 300, 2, 29, 304, 2, 30, 25, + 269, 2, 28, 70, 2, 28, 114, 2, + 29, 301, 2, 29, 305, 2, 30, 25, 2, 31, 1, 2, 31, 2, 2, 31, 3, 2, 31, 4, 2, 31, 7, 2, - 31, 93, 2, 32, 7, 2, 33, 8, - 2, 33, 315, 2, 33, 320, 2, 34, - 25, 2, 35, 0, 2, 35, 1, 2, - 35, 2, 2, 35, 3, 2, 35, 4, - 2, 35, 268, 2, 35, 307, 2, 36, - 41, 2, 37, 36, 2, 38, 73, 2, - 38, 158, 2, 38, 285, 2, 38, 297, - 2, 38, 298, 2, 38, 315, 2, 38, - 320, 2, 42, 273, 2, 42, 274, 2, - 42, 275, 2, 42, 276, 2, 42, 277, - 2, 42, 278, 2, 45, 0, 2, 45, - 1, 2, 45, 2, 2, 45, 3, 2, - 45, 4, 2, 46, 0, 2, 46, 1, - 2, 46, 2, 2, 46, 3, 2, 46, - 4, 2, 46, 268, 2, 46, 300, 2, - 47, 0, 2, 47, 1, 2, 47, 2, - 2, 47, 3, 2, 47, 4, 2, 48, - 314, 2, 49, 1, 2, 49, 2, 2, - 49, 3, 2, 49, 4, 2, 56, 7, - 2, 56, 47, 2, 56, 93, 2, 57, - 58, 2, 59, 1, 2, 59, 2, 2, - 59, 3, 2, 59, 4, 2, 60, 315, - 2, 62, 63, 2, 64, 65, 2, 66, - 68, 2, 68, 0, 2, 68, 61, 2, - 71, 0, 2, 71, 315, 2, 75, 23, - 2, 79, 69, 2, 80, 7, 2, 81, - 8, 2, 82, 23, 2, 84, 8, 2, - 90, 91, 2, 92, 1, 2, 92, 2, - 2, 92, 3, 2, 92, 4, 2, 93, - 1, 2, 93, 2, 2, 93, 3, 2, - 93, 4, 2, 93, 7, 2, 94, 95, - 2, 96, 297, 2, 96, 315, 2, 97, - 98, 2, 99, 100, 2, 101, 102, 2, - 101, 103, 2, 101, 104, 2, 105, 106, - 2, 107, 315, 2, 110, 315, 2, 111, - 0, 2, 127, 315, 2, 129, 0, 2, + 31, 94, 2, 32, 7, 2, 33, 8, + 2, 33, 316, 2, 33, 321, 2, 34, + 25, 2, 35, 36, 2, 36, 0, 2, + 36, 1, 2, 36, 2, 2, 36, 3, + 2, 36, 4, 2, 36, 269, 2, 36, + 308, 2, 37, 42, 2, 38, 37, 2, + 39, 74, 2, 39, 159, 2, 39, 286, + 2, 39, 298, 2, 39, 299, 2, 39, + 316, 2, 39, 321, 2, 43, 274, 2, + 43, 275, 2, 43, 276, 2, 43, 277, + 2, 43, 278, 2, 43, 279, 2, 46, + 0, 2, 46, 1, 2, 46, 2, 2, + 46, 3, 2, 46, 4, 2, 47, 0, + 2, 47, 1, 2, 47, 2, 2, 47, + 3, 2, 47, 4, 2, 47, 269, 2, + 47, 301, 2, 48, 0, 2, 48, 1, + 2, 48, 2, 2, 48, 3, 2, 48, + 4, 2, 49, 315, 2, 50, 1, 2, + 50, 2, 2, 50, 3, 2, 50, 4, + 2, 57, 7, 2, 57, 48, 2, 57, + 94, 2, 58, 59, 2, 60, 1, 2, + 60, 2, 2, 60, 3, 2, 60, 4, + 2, 61, 316, 2, 63, 64, 2, 65, + 66, 2, 67, 69, 2, 69, 0, 2, + 69, 62, 2, 72, 0, 2, 72, 316, + 2, 76, 23, 2, 80, 70, 2, 81, + 7, 2, 82, 8, 2, 83, 23, 2, + 85, 8, 2, 91, 92, 2, 93, 1, + 2, 93, 2, 2, 93, 3, 2, 93, + 4, 2, 94, 1, 2, 94, 2, 2, + 94, 3, 2, 94, 4, 2, 94, 7, + 2, 95, 96, 2, 97, 298, 2, 97, + 316, 2, 98, 99, 2, 100, 101, 2, + 102, 103, 2, 102, 104, 2, 102, 105, + 2, 106, 107, 2, 108, 316, 2, 111, + 316, 2, 112, 0, 2, 128, 316, 2, 130, 0, 2, 131, 0, 2, 132, 0, 2, 133, 0, 2, 134, 0, 2, 135, 0, 2, 136, 0, 2, 137, 0, 2, 138, 0, 2, 139, 0, 2, 140, 0, 2, 141, 0, 2, 142, 0, 2, 143, - 0, 2, 144, 0, 2, 146, 0, 2, + 0, 2, 144, 0, 2, 145, 0, 2, 147, 0, 2, 148, 0, 2, 149, 0, 2, 150, 0, 2, 151, 0, 2, 152, 0, 2, 153, 0, 2, 154, 0, 2, - 155, 0, 2, 156, 315, 2, 157, 315, - 2, 159, 0, 2, 160, 0, 2, 161, + 155, 0, 2, 156, 0, 2, 157, 316, + 2, 158, 316, 2, 160, 0, 2, 161, 0, 2, 162, 0, 2, 163, 0, 2, 164, 0, 2, 165, 0, 2, 166, 0, 2, 167, 0, 2, 168, 0, 2, 169, @@ -210,652 +210,655 @@ static const short _zone_scanner_actions[] = { 0, 2, 202, 0, 2, 203, 0, 2, 204, 0, 2, 205, 0, 2, 206, 0, 2, 207, 0, 2, 208, 0, 2, 209, - 0, 2, 210, 0, 2, 212, 1, 2, - 212, 2, 2, 212, 3, 2, 212, 4, - 2, 213, 1, 2, 213, 2, 2, 213, - 3, 2, 213, 4, 2, 214, 1, 2, - 214, 2, 2, 214, 3, 2, 214, 4, - 2, 215, 1, 2, 215, 2, 2, 215, - 3, 2, 215, 4, 2, 216, 1, 2, - 216, 2, 2, 216, 3, 2, 216, 4, - 2, 217, 1, 2, 217, 2, 2, 217, - 3, 2, 217, 4, 2, 218, 1, 2, - 218, 2, 2, 218, 3, 2, 218, 4, - 2, 219, 1, 2, 219, 2, 2, 219, - 3, 2, 219, 4, 2, 220, 1, 2, - 220, 2, 2, 220, 3, 2, 220, 4, - 2, 221, 1, 2, 221, 2, 2, 221, - 3, 2, 221, 4, 2, 222, 1, 2, - 222, 2, 2, 222, 3, 2, 222, 4, - 2, 223, 1, 2, 223, 2, 2, 223, - 3, 2, 223, 4, 2, 224, 1, 2, - 224, 2, 2, 224, 3, 2, 224, 4, - 2, 225, 1, 2, 225, 2, 2, 225, - 3, 2, 225, 4, 2, 226, 1, 2, - 226, 2, 2, 226, 3, 2, 226, 4, - 2, 227, 1, 2, 227, 2, 2, 227, - 3, 2, 227, 4, 2, 228, 1, 2, - 228, 2, 2, 228, 3, 2, 228, 4, - 2, 229, 1, 2, 229, 2, 2, 229, - 3, 2, 229, 4, 2, 230, 1, 2, - 230, 2, 2, 230, 3, 2, 230, 4, - 2, 231, 1, 2, 231, 2, 2, 231, - 3, 2, 231, 4, 2, 232, 1, 2, - 232, 2, 2, 232, 3, 2, 232, 4, - 2, 233, 1, 2, 233, 2, 2, 233, - 3, 2, 233, 4, 2, 234, 1, 2, - 234, 2, 2, 234, 3, 2, 234, 4, - 2, 235, 1, 2, 235, 2, 2, 235, - 3, 2, 235, 4, 2, 236, 1, 2, - 236, 2, 2, 236, 3, 2, 236, 4, - 2, 237, 1, 2, 237, 2, 2, 237, - 3, 2, 237, 4, 2, 238, 1, 2, - 238, 2, 2, 238, 3, 2, 238, 4, - 2, 239, 1, 2, 239, 2, 2, 239, - 3, 2, 239, 4, 2, 240, 1, 2, - 240, 2, 2, 240, 3, 2, 240, 4, - 2, 241, 1, 2, 241, 2, 2, 241, - 3, 2, 241, 4, 2, 242, 1, 2, - 242, 2, 2, 242, 3, 2, 242, 4, - 2, 243, 1, 2, 243, 2, 2, 243, - 3, 2, 243, 4, 2, 244, 1, 2, - 244, 2, 2, 244, 3, 2, 244, 4, - 2, 245, 1, 2, 245, 2, 2, 245, - 3, 2, 245, 4, 2, 246, 1, 2, - 246, 2, 2, 246, 3, 2, 246, 4, - 2, 247, 1, 2, 247, 2, 2, 247, - 3, 2, 247, 4, 2, 248, 1, 2, - 248, 2, 2, 248, 3, 2, 248, 4, - 2, 249, 1, 2, 249, 2, 2, 249, - 3, 2, 249, 4, 2, 250, 1, 2, - 250, 2, 2, 250, 3, 2, 250, 4, - 2, 251, 1, 2, 251, 2, 2, 251, - 3, 2, 251, 4, 2, 252, 1, 2, - 252, 2, 2, 252, 3, 2, 252, 4, - 2, 253, 1, 2, 253, 2, 2, 253, - 3, 2, 253, 4, 2, 254, 1, 2, - 254, 2, 2, 254, 3, 2, 254, 4, - 2, 255, 1, 2, 255, 2, 2, 255, - 3, 2, 255, 4, 2, 256, 1, 2, - 256, 2, 2, 256, 3, 2, 256, 4, - 2, 257, 1, 2, 257, 2, 2, 257, - 3, 2, 257, 4, 2, 258, 1, 2, - 258, 2, 2, 258, 3, 2, 258, 4, - 2, 259, 1, 2, 259, 2, 2, 259, - 3, 2, 259, 4, 2, 260, 1, 2, - 260, 2, 2, 260, 3, 2, 260, 4, - 2, 261, 1, 2, 261, 2, 2, 261, - 3, 2, 261, 4, 2, 262, 1, 2, - 262, 2, 2, 262, 3, 2, 262, 4, - 2, 263, 1, 2, 263, 2, 2, 263, - 3, 2, 263, 4, 2, 264, 1, 2, - 264, 2, 2, 264, 3, 2, 264, 4, - 2, 265, 1, 2, 265, 2, 2, 265, - 3, 2, 265, 4, 2, 266, 0, 2, - 269, 1, 2, 269, 2, 2, 269, 3, - 2, 269, 4, 2, 270, 1, 2, 270, - 2, 2, 270, 3, 2, 270, 4, 2, - 271, 1, 2, 271, 2, 2, 271, 3, - 2, 271, 4, 2, 272, 1, 2, 272, - 2, 2, 272, 3, 2, 272, 4, 2, - 279, 1, 2, 279, 2, 2, 279, 3, - 2, 279, 4, 2, 280, 1, 2, 280, - 2, 2, 280, 3, 2, 280, 4, 2, - 283, 0, 2, 284, 315, 2, 286, 108, - 2, 291, 108, 2, 295, 1, 2, 295, - 2, 2, 295, 3, 2, 295, 4, 2, - 296, 0, 2, 300, 1, 2, 300, 2, - 2, 300, 3, 2, 300, 4, 2, 315, - 8, 2, 316, 1, 2, 316, 4, 2, - 319, 316, 2, 320, 8, 2, 320, 315, - 2, 321, 314, 2, 322, 314, 2, 323, - 314, 2, 324, 314, 2, 325, 314, 2, - 326, 314, 2, 327, 314, 2, 328, 314, - 2, 329, 314, 2, 330, 314, 2, 331, - 314, 2, 332, 314, 2, 333, 314, 2, - 334, 314, 2, 335, 314, 2, 336, 314, - 2, 337, 314, 2, 338, 314, 2, 339, - 314, 2, 340, 314, 2, 341, 314, 2, - 342, 314, 2, 343, 314, 2, 344, 314, - 2, 345, 314, 2, 346, 314, 2, 347, - 314, 2, 348, 314, 2, 349, 314, 2, - 350, 314, 2, 351, 314, 2, 352, 314, - 2, 353, 314, 2, 354, 314, 2, 355, - 314, 2, 356, 314, 2, 357, 314, 2, - 358, 314, 2, 359, 314, 2, 360, 314, - 2, 361, 314, 2, 362, 314, 2, 363, - 314, 2, 364, 314, 2, 365, 314, 2, - 366, 314, 2, 367, 314, 2, 368, 314, - 2, 369, 314, 2, 370, 314, 2, 371, - 314, 2, 372, 314, 2, 373, 1, 3, - 0, 49, 1, 3, 0, 49, 2, 3, - 0, 49, 3, 3, 0, 49, 4, 3, - 1, 7, 373, 3, 1, 32, 7, 3, - 1, 71, 0, 3, 1, 111, 0, 3, - 1, 266, 0, 3, 1, 283, 0, 3, - 1, 296, 0, 3, 1, 316, 373, 3, - 2, 7, 32, 3, 2, 32, 7, 3, - 3, 7, 32, 3, 3, 32, 7, 3, - 4, 7, 32, 3, 4, 32, 7, 3, - 4, 71, 0, 3, 4, 111, 0, 3, - 4, 266, 0, 3, 4, 283, 0, 3, - 4, 296, 0, 3, 4, 316, 7, 3, - 5, 7, 2, 3, 5, 7, 3, 3, - 5, 7, 4, 3, 6, 1, 373, 3, - 6, 373, 1, 3, 7, 2, 5, 3, - 7, 2, 32, 3, 7, 3, 5, 3, - 7, 3, 32, 3, 7, 4, 5, 3, - 7, 4, 32, 3, 7, 373, 1, 3, - 9, 11, 1, 3, 15, 21, 0, 3, - 20, 7, 2, 3, 20, 7, 3, 3, - 20, 7, 4, 3, 20, 83, 7, 3, - 23, 13, 14, 3, 27, 71, 0, 3, - 27, 302, 29, 3, 28, 94, 95, 3, - 29, 300, 1, 3, 29, 300, 2, 3, - 29, 300, 3, 3, 29, 300, 4, 3, - 29, 304, 300, 3, 31, 1, 93, 3, - 31, 2, 7, 3, 31, 2, 93, 3, - 31, 3, 7, 3, 31, 3, 93, 3, - 31, 4, 7, 3, 31, 4, 93, 3, - 31, 93, 7, 3, 31, 319, 316, 3, - 31, 321, 314, 3, 32, 1, 7, 3, - 32, 2, 7, 3, 32, 3, 7, 3, - 32, 4, 7, 3, 33, 89, 8, 3, - 33, 315, 8, 3, 33, 320, 8, 3, - 33, 320, 315, 3, 35, 1, 0, 3, - 35, 4, 0, 3, 37, 36, 316, 3, - 38, 156, 315, 3, 38, 320, 8, 3, - 38, 320, 315, 3, 40, 42, 273, 3, - 40, 42, 274, 3, 40, 42, 275, 3, - 40, 42, 276, 3, 40, 42, 277, 3, - 40, 42, 278, 3, 42, 273, 1, 3, - 42, 273, 2, 3, 42, 273, 3, 3, - 42, 273, 4, 3, 42, 274, 1, 3, - 42, 274, 2, 3, 42, 274, 3, 3, - 42, 274, 4, 3, 42, 275, 1, 3, - 42, 275, 2, 3, 42, 275, 3, 3, - 42, 275, 4, 3, 42, 276, 1, 3, - 42, 276, 2, 3, 42, 276, 3, 3, - 42, 276, 4, 3, 42, 277, 1, 3, - 42, 277, 2, 3, 42, 277, 3, 3, - 42, 277, 4, 3, 42, 278, 1, 3, - 42, 278, 2, 3, 42, 278, 3, 3, - 42, 278, 4, 3, 46, 145, 300, 3, - 46, 300, 1, 3, 46, 300, 2, 3, - 46, 300, 3, 3, 46, 300, 4, 3, - 48, 314, 1, 3, 48, 314, 2, 3, - 48, 314, 3, 3, 48, 314, 4, 3, - 48, 314, 316, 3, 50, 38, 73, 3, - 50, 38, 315, 3, 50, 38, 320, 3, - 55, 37, 36, 3, 56, 7, 2, 3, - 56, 7, 3, 3, 56, 7, 4, 3, - 56, 47, 0, 3, 56, 47, 1, 3, - 56, 47, 2, 3, 56, 47, 3, 3, - 56, 47, 4, 3, 56, 93, 1, 3, - 56, 93, 2, 3, 56, 93, 3, 3, - 56, 93, 4, 3, 66, 68, 0, 3, - 66, 68, 61, 3, 67, 62, 63, 3, - 68, 61, 0, 3, 70, 26, 69, 3, - 72, 0, 1, 3, 75, 23, 13, 3, - 76, 0, 1, 3, 80, 2, 7, 3, - 80, 3, 7, 3, 80, 4, 7, 3, - 80, 7, 4, 3, 82, 23, 13, 3, - 85, 0, 1, 3, 88, 7, 1, 3, - 88, 7, 4, 3, 88, 30, 25, 3, - 88, 32, 7, 3, 90, 30, 25, 3, - 90, 91, 316, 3, 93, 2, 7, 3, - 93, 3, 7, 3, 93, 4, 7, 3, - 96, 107, 315, 3, 96, 156, 315, 3, - 97, 98, 0, 3, 97, 98, 1, 3, - 97, 98, 2, 3, 97, 98, 3, 3, - 97, 98, 4, 3, 97, 98, 29, 3, - 99, 100, 0, 3, 99, 100, 1, 3, - 99, 100, 2, 3, 99, 100, 3, 3, - 99, 100, 4, 3, 99, 100, 29, 3, - 105, 106, 0, 3, 105, 106, 1, 3, - 105, 106, 2, 3, 105, 106, 3, 3, - 105, 106, 4, 3, 110, 112, 285, 3, - 110, 294, 315, 3, 147, 145, 300, 3, - 153, 145, 300, 3, 156, 157, 315, 3, - 212, 266, 0, 3, 213, 266, 0, 3, - 214, 266, 0, 3, 215, 266, 0, 3, - 216, 266, 0, 3, 217, 266, 0, 3, - 218, 266, 0, 3, 219, 266, 0, 3, - 220, 266, 0, 3, 221, 266, 0, 3, - 222, 266, 0, 3, 223, 266, 0, 3, - 224, 266, 0, 3, 225, 266, 0, 3, - 226, 266, 0, 3, 227, 266, 0, 3, - 228, 266, 0, 3, 229, 266, 0, 3, - 230, 266, 0, 3, 231, 266, 0, 3, - 232, 266, 0, 3, 233, 266, 0, 3, - 234, 266, 0, 3, 235, 266, 0, 3, - 236, 266, 0, 3, 237, 266, 0, 3, - 238, 266, 0, 3, 239, 266, 0, 3, - 240, 266, 0, 3, 241, 266, 0, 3, - 242, 266, 0, 3, 243, 266, 0, 3, - 244, 266, 0, 3, 245, 266, 0, 3, - 246, 266, 0, 3, 247, 266, 0, 3, - 248, 266, 0, 3, 249, 266, 0, 3, - 250, 266, 0, 3, 251, 266, 0, 3, - 252, 266, 0, 3, 253, 266, 0, 3, - 254, 266, 0, 3, 255, 266, 0, 3, - 256, 266, 0, 3, 257, 266, 0, 3, - 258, 266, 0, 3, 259, 266, 0, 3, - 260, 266, 0, 3, 261, 266, 0, 3, - 262, 266, 0, 3, 263, 266, 0, 3, - 264, 266, 0, 3, 265, 266, 0, 3, - 282, 37, 36, 3, 287, 288, 0, 3, - 287, 289, 0, 3, 290, 110, 315, 3, - 292, 293, 0, 3, 294, 110, 315, 3, - 295, 296, 0, 3, 300, 296, 0, 3, - 303, 28, 306, 3, 315, 8, 89, 3, - 316, 7, 1, 3, 316, 7, 4, 3, - 316, 30, 25, 3, 316, 373, 1, 3, - 318, 30, 25, 3, 320, 315, 8, 3, - 321, 314, 1, 3, 321, 314, 2, 3, - 321, 314, 3, 3, 321, 314, 4, 3, - 321, 314, 7, 3, 321, 314, 316, 3, - 322, 314, 1, 3, 322, 314, 2, 3, - 322, 314, 3, 3, 322, 314, 4, 3, - 322, 314, 316, 3, 323, 314, 1, 3, - 323, 314, 2, 3, 323, 314, 3, 3, - 323, 314, 4, 3, 323, 314, 316, 3, - 324, 314, 1, 3, 324, 314, 2, 3, - 324, 314, 3, 3, 324, 314, 4, 3, - 324, 314, 316, 3, 325, 314, 1, 3, - 325, 314, 2, 3, 325, 314, 3, 3, - 325, 314, 4, 3, 325, 314, 316, 3, - 326, 314, 1, 3, 326, 314, 2, 3, - 326, 314, 3, 3, 326, 314, 4, 3, - 326, 314, 316, 3, 327, 314, 1, 3, - 327, 314, 2, 3, 327, 314, 3, 3, - 327, 314, 4, 3, 327, 314, 316, 3, - 328, 314, 1, 3, 328, 314, 2, 3, - 328, 314, 3, 3, 328, 314, 4, 3, - 328, 314, 316, 3, 329, 314, 1, 3, - 329, 314, 2, 3, 329, 314, 3, 3, - 329, 314, 4, 3, 329, 314, 316, 3, - 330, 314, 1, 3, 330, 314, 2, 3, - 330, 314, 3, 3, 330, 314, 4, 3, - 330, 314, 316, 3, 331, 314, 1, 3, - 331, 314, 2, 3, 331, 314, 3, 3, - 331, 314, 4, 3, 331, 314, 316, 3, - 332, 314, 1, 3, 332, 314, 2, 3, - 332, 314, 3, 3, 332, 314, 4, 3, - 332, 314, 316, 3, 333, 314, 1, 3, - 333, 314, 2, 3, 333, 314, 3, 3, - 333, 314, 4, 3, 333, 314, 316, 3, - 334, 314, 1, 3, 334, 314, 2, 3, - 334, 314, 3, 3, 334, 314, 4, 3, - 334, 314, 316, 3, 335, 314, 1, 3, - 335, 314, 2, 3, 335, 314, 3, 3, - 335, 314, 4, 3, 335, 314, 316, 3, - 336, 314, 1, 3, 336, 314, 2, 3, - 336, 314, 3, 3, 336, 314, 4, 3, - 336, 314, 316, 3, 337, 314, 1, 3, - 337, 314, 2, 3, 337, 314, 3, 3, - 337, 314, 4, 3, 337, 314, 316, 3, - 338, 314, 1, 3, 338, 314, 2, 3, - 338, 314, 3, 3, 338, 314, 4, 3, - 338, 314, 316, 3, 339, 314, 1, 3, - 339, 314, 2, 3, 339, 314, 3, 3, - 339, 314, 4, 3, 339, 314, 316, 3, - 340, 314, 1, 3, 340, 314, 2, 3, - 340, 314, 3, 3, 340, 314, 4, 3, - 340, 314, 316, 3, 341, 314, 1, 3, - 341, 314, 2, 3, 341, 314, 3, 3, - 341, 314, 4, 3, 341, 314, 316, 3, - 342, 314, 1, 3, 342, 314, 2, 3, - 342, 314, 3, 3, 342, 314, 4, 3, - 342, 314, 316, 3, 343, 314, 1, 3, - 343, 314, 2, 3, 343, 314, 3, 3, - 343, 314, 4, 3, 343, 314, 316, 3, - 344, 314, 1, 3, 344, 314, 2, 3, - 344, 314, 3, 3, 344, 314, 4, 3, - 344, 314, 316, 3, 345, 314, 1, 3, - 345, 314, 2, 3, 345, 314, 3, 3, - 345, 314, 4, 3, 345, 314, 316, 3, - 346, 314, 1, 3, 346, 314, 2, 3, - 346, 314, 3, 3, 346, 314, 4, 3, - 346, 314, 316, 3, 347, 314, 1, 3, - 347, 314, 2, 3, 347, 314, 3, 3, - 347, 314, 4, 3, 347, 314, 316, 3, - 348, 314, 1, 3, 348, 314, 2, 3, - 348, 314, 3, 3, 348, 314, 4, 3, - 348, 314, 316, 3, 349, 314, 1, 3, - 349, 314, 2, 3, 349, 314, 3, 3, - 349, 314, 4, 3, 349, 314, 316, 3, - 350, 314, 1, 3, 350, 314, 2, 3, - 350, 314, 3, 3, 350, 314, 4, 3, - 350, 314, 316, 3, 351, 314, 1, 3, - 351, 314, 2, 3, 351, 314, 3, 3, - 351, 314, 4, 3, 351, 314, 316, 3, - 352, 314, 1, 3, 352, 314, 2, 3, - 352, 314, 3, 3, 352, 314, 4, 3, - 352, 314, 316, 3, 353, 314, 1, 3, - 353, 314, 2, 3, 353, 314, 3, 3, - 353, 314, 4, 3, 353, 314, 316, 3, - 354, 314, 1, 3, 354, 314, 2, 3, - 354, 314, 3, 3, 354, 314, 4, 3, - 354, 314, 316, 3, 355, 314, 1, 3, - 355, 314, 2, 3, 355, 314, 3, 3, - 355, 314, 4, 3, 355, 314, 316, 3, - 356, 314, 1, 3, 356, 314, 2, 3, - 356, 314, 3, 3, 356, 314, 4, 3, - 356, 314, 316, 3, 357, 314, 1, 3, - 357, 314, 2, 3, 357, 314, 3, 3, - 357, 314, 4, 3, 357, 314, 316, 3, - 358, 314, 1, 3, 358, 314, 2, 3, - 358, 314, 3, 3, 358, 314, 4, 3, - 358, 314, 316, 3, 359, 314, 1, 3, - 359, 314, 2, 3, 359, 314, 3, 3, - 359, 314, 4, 3, 359, 314, 316, 3, - 360, 314, 1, 3, 360, 314, 2, 3, - 360, 314, 3, 3, 360, 314, 4, 3, - 360, 314, 316, 3, 361, 314, 1, 3, - 361, 314, 2, 3, 361, 314, 3, 3, - 361, 314, 4, 3, 361, 314, 316, 3, - 362, 314, 1, 3, 362, 314, 2, 3, - 362, 314, 3, 3, 362, 314, 4, 3, - 362, 314, 316, 3, 363, 314, 1, 3, - 363, 314, 2, 3, 363, 314, 3, 3, - 363, 314, 4, 3, 363, 314, 316, 3, - 364, 314, 1, 3, 364, 314, 2, 3, - 364, 314, 3, 3, 364, 314, 4, 3, - 364, 314, 316, 3, 365, 314, 1, 3, - 365, 314, 2, 3, 365, 314, 3, 3, - 365, 314, 4, 3, 365, 314, 316, 3, - 366, 314, 1, 3, 366, 314, 2, 3, - 366, 314, 3, 3, 366, 314, 4, 3, - 366, 314, 316, 3, 367, 314, 1, 3, - 367, 314, 2, 3, 367, 314, 3, 3, - 367, 314, 4, 3, 367, 314, 316, 3, - 368, 314, 1, 3, 368, 314, 2, 3, - 368, 314, 3, 3, 368, 314, 4, 3, - 368, 314, 316, 3, 369, 314, 1, 3, - 369, 314, 2, 3, 369, 314, 3, 3, - 369, 314, 4, 3, 369, 314, 316, 3, - 370, 314, 1, 3, 370, 314, 2, 3, - 370, 314, 3, 3, 370, 314, 4, 3, - 370, 314, 316, 3, 371, 314, 1, 3, - 371, 314, 2, 3, 371, 314, 3, 3, - 371, 314, 4, 3, 371, 314, 316, 3, - 372, 314, 1, 3, 372, 314, 2, 3, - 372, 314, 3, 3, 372, 314, 4, 3, - 372, 314, 316, 3, 373, 1, 6, 4, - 1, 7, 373, 32, 4, 1, 316, 32, - 7, 4, 4, 316, 7, 32, 4, 4, - 316, 32, 7, 4, 6, 1, 7, 373, - 4, 6, 1, 85, 0, 4, 6, 72, - 0, 1, 4, 6, 76, 0, 1, 4, - 6, 85, 0, 1, 4, 7, 6, 373, - 1, 4, 7, 72, 0, 1, 4, 7, - 373, 1, 6, 4, 7, 373, 1, 32, - 4, 18, 15, 21, 0, 4, 20, 83, - 7, 2, 4, 20, 83, 7, 3, 4, - 20, 83, 7, 4, 4, 27, 1, 71, - 0, 4, 27, 4, 71, 0, 4, 27, - 302, 29, 300, 4, 29, 300, 296, 0, - 4, 29, 304, 300, 1, 4, 29, 304, - 300, 2, 4, 29, 304, 300, 3, 4, - 29, 304, 300, 4, 4, 31, 1, 7, - 373, 4, 31, 1, 319, 316, 4, 31, - 1, 321, 314, 4, 31, 2, 93, 7, - 4, 31, 2, 319, 316, 4, 31, 2, - 321, 314, 4, 31, 3, 93, 7, 4, - 31, 3, 319, 316, 4, 31, 3, 321, - 314, 4, 31, 4, 93, 7, 4, 31, - 4, 319, 316, 4, 31, 4, 321, 314, - 4, 31, 321, 314, 7, 4, 33, 38, - 320, 8, 4, 33, 50, 38, 320, 4, - 33, 320, 315, 8, 4, 37, 36, 30, - 25, 4, 38, 320, 315, 8, 4, 40, - 37, 36, 41, 4, 40, 42, 273, 1, - 4, 40, 42, 273, 2, 4, 40, 42, - 273, 3, 4, 40, 42, 273, 4, 4, - 40, 42, 274, 1, 4, 40, 42, 274, - 2, 4, 40, 42, 274, 3, 4, 40, - 42, 274, 4, 4, 40, 42, 275, 1, - 4, 40, 42, 275, 2, 4, 40, 42, - 275, 3, 4, 40, 42, 275, 4, 4, - 40, 42, 276, 1, 4, 40, 42, 276, - 2, 4, 40, 42, 276, 3, 4, 40, - 42, 276, 4, 4, 40, 42, 277, 1, - 4, 40, 42, 277, 2, 4, 40, 42, - 277, 3, 4, 40, 42, 277, 4, 4, - 40, 42, 278, 1, 4, 40, 42, 278, - 2, 4, 40, 42, 278, 3, 4, 40, - 42, 278, 4, 4, 42, 275, 283, 0, - 4, 42, 276, 283, 0, 4, 42, 277, - 283, 0, 4, 42, 278, 283, 0, 4, - 43, 39, 37, 36, 4, 44, 39, 37, - 36, 4, 46, 145, 300, 1, 4, 46, - 145, 300, 2, 4, 46, 145, 300, 3, - 4, 46, 145, 300, 4, 4, 46, 300, - 296, 0, 4, 48, 314, 1, 316, 4, - 48, 314, 4, 316, 4, 50, 38, 8, - 73, 4, 56, 55, 37, 36, 4, 66, - 68, 61, 0, 4, 75, 23, 13, 14, - 4, 82, 23, 13, 14, 4, 88, 32, - 1, 7, 4, 88, 32, 2, 7, 4, - 88, 32, 3, 7, 4, 88, 32, 4, - 7, 4, 90, 91, 30, 25, 4, 93, - 1, 7, 373, 4, 96, 156, 157, 315, - 4, 97, 98, 1, 0, 4, 97, 98, - 4, 0, 4, 97, 98, 29, 300, 4, - 99, 100, 1, 0, 4, 99, 100, 4, - 0, 4, 99, 100, 29, 300, 4, 105, - 106, 1, 0, 4, 105, 106, 4, 0, - 4, 147, 145, 300, 1, 4, 147, 145, - 300, 2, 4, 147, 145, 300, 3, 4, - 147, 145, 300, 4, 4, 147, 305, 37, - 36, 4, 153, 145, 300, 1, 4, 153, - 145, 300, 2, 4, 153, 145, 300, 3, - 4, 153, 145, 300, 4, 4, 212, 1, - 266, 0, 4, 212, 4, 266, 0, 4, - 213, 1, 266, 0, 4, 213, 4, 266, - 0, 4, 214, 1, 266, 0, 4, 214, - 4, 266, 0, 4, 215, 1, 266, 0, - 4, 215, 4, 266, 0, 4, 216, 1, - 266, 0, 4, 216, 4, 266, 0, 4, - 217, 1, 266, 0, 4, 217, 4, 266, - 0, 4, 218, 1, 266, 0, 4, 218, - 4, 266, 0, 4, 219, 1, 266, 0, - 4, 219, 4, 266, 0, 4, 220, 1, - 266, 0, 4, 220, 4, 266, 0, 4, - 221, 1, 266, 0, 4, 221, 4, 266, - 0, 4, 222, 1, 266, 0, 4, 222, - 4, 266, 0, 4, 223, 1, 266, 0, - 4, 223, 4, 266, 0, 4, 224, 1, - 266, 0, 4, 224, 4, 266, 0, 4, - 225, 1, 266, 0, 4, 225, 4, 266, - 0, 4, 226, 1, 266, 0, 4, 226, - 4, 266, 0, 4, 227, 1, 266, 0, - 4, 227, 4, 266, 0, 4, 228, 1, - 266, 0, 4, 228, 4, 266, 0, 4, - 229, 1, 266, 0, 4, 229, 4, 266, - 0, 4, 230, 1, 266, 0, 4, 230, - 4, 266, 0, 4, 231, 1, 266, 0, - 4, 231, 4, 266, 0, 4, 232, 1, - 266, 0, 4, 232, 4, 266, 0, 4, - 233, 1, 266, 0, 4, 233, 4, 266, - 0, 4, 234, 1, 266, 0, 4, 234, - 4, 266, 0, 4, 235, 1, 266, 0, - 4, 235, 4, 266, 0, 4, 236, 1, - 266, 0, 4, 236, 4, 266, 0, 4, - 237, 1, 266, 0, 4, 237, 4, 266, - 0, 4, 238, 1, 266, 0, 4, 238, - 4, 266, 0, 4, 239, 1, 266, 0, - 4, 239, 4, 266, 0, 4, 240, 1, - 266, 0, 4, 240, 4, 266, 0, 4, - 241, 1, 266, 0, 4, 241, 4, 266, - 0, 4, 242, 1, 266, 0, 4, 242, - 4, 266, 0, 4, 243, 1, 266, 0, - 4, 243, 4, 266, 0, 4, 244, 1, - 266, 0, 4, 244, 4, 266, 0, 4, - 245, 1, 266, 0, 4, 245, 4, 266, - 0, 4, 246, 1, 266, 0, 4, 246, - 4, 266, 0, 4, 247, 1, 266, 0, - 4, 247, 4, 266, 0, 4, 248, 1, - 266, 0, 4, 248, 4, 266, 0, 4, - 249, 1, 266, 0, 4, 249, 4, 266, - 0, 4, 250, 1, 266, 0, 4, 250, - 4, 266, 0, 4, 251, 1, 266, 0, - 4, 251, 4, 266, 0, 4, 252, 1, - 266, 0, 4, 252, 4, 266, 0, 4, - 253, 1, 266, 0, 4, 253, 4, 266, - 0, 4, 254, 1, 266, 0, 4, 254, - 4, 266, 0, 4, 255, 1, 266, 0, - 4, 255, 4, 266, 0, 4, 256, 1, - 266, 0, 4, 256, 4, 266, 0, 4, - 257, 1, 266, 0, 4, 257, 4, 266, - 0, 4, 258, 1, 266, 0, 4, 258, - 4, 266, 0, 4, 259, 1, 266, 0, - 4, 259, 4, 266, 0, 4, 260, 1, - 266, 0, 4, 260, 4, 266, 0, 4, - 261, 1, 266, 0, 4, 261, 4, 266, - 0, 4, 262, 1, 266, 0, 4, 262, - 4, 266, 0, 4, 263, 1, 266, 0, - 4, 263, 4, 266, 0, 4, 264, 1, - 266, 0, 4, 264, 4, 266, 0, 4, - 265, 1, 266, 0, 4, 265, 4, 266, - 0, 4, 295, 1, 296, 0, 4, 295, - 4, 296, 0, 4, 300, 1, 296, 0, - 4, 300, 4, 296, 0, 4, 301, 28, - 26, 69, 4, 316, 7, 373, 1, 4, - 321, 314, 1, 316, 4, 321, 314, 2, - 7, 4, 321, 314, 3, 7, 4, 321, - 314, 4, 7, 4, 321, 314, 4, 316, - 4, 322, 314, 1, 316, 4, 322, 314, - 4, 316, 4, 323, 314, 1, 316, 4, - 323, 314, 4, 316, 4, 324, 314, 1, - 316, 4, 324, 314, 4, 316, 4, 325, - 314, 1, 316, 4, 325, 314, 4, 316, - 4, 326, 314, 1, 316, 4, 326, 314, - 4, 316, 4, 327, 314, 1, 316, 4, - 327, 314, 4, 316, 4, 328, 314, 1, - 316, 4, 328, 314, 4, 316, 4, 329, - 314, 1, 316, 4, 329, 314, 4, 316, - 4, 330, 314, 1, 316, 4, 330, 314, - 4, 316, 4, 331, 314, 1, 316, 4, - 331, 314, 4, 316, 4, 332, 314, 1, - 316, 4, 332, 314, 4, 316, 4, 333, - 314, 1, 316, 4, 333, 314, 4, 316, - 4, 334, 314, 1, 316, 4, 334, 314, - 4, 316, 4, 335, 314, 1, 316, 4, - 335, 314, 4, 316, 4, 336, 314, 1, - 316, 4, 336, 314, 4, 316, 4, 337, - 314, 1, 316, 4, 337, 314, 4, 316, - 4, 338, 314, 1, 316, 4, 338, 314, - 4, 316, 4, 339, 314, 1, 316, 4, - 339, 314, 4, 316, 4, 340, 314, 1, - 316, 4, 340, 314, 4, 316, 4, 341, - 314, 1, 316, 4, 341, 314, 4, 316, - 4, 342, 314, 1, 316, 4, 342, 314, - 4, 316, 4, 343, 314, 1, 316, 4, - 343, 314, 4, 316, 4, 344, 314, 1, - 316, 4, 344, 314, 4, 316, 4, 345, - 314, 1, 316, 4, 345, 314, 4, 316, - 4, 346, 314, 1, 316, 4, 346, 314, - 4, 316, 4, 347, 314, 1, 316, 4, - 347, 314, 4, 316, 4, 348, 314, 1, - 316, 4, 348, 314, 4, 316, 4, 349, - 314, 1, 316, 4, 349, 314, 4, 316, - 4, 350, 314, 1, 316, 4, 350, 314, - 4, 316, 4, 351, 314, 1, 316, 4, - 351, 314, 4, 316, 4, 352, 314, 1, - 316, 4, 352, 314, 4, 316, 4, 353, - 314, 1, 316, 4, 353, 314, 4, 316, - 4, 354, 314, 1, 316, 4, 354, 314, - 4, 316, 4, 355, 314, 1, 316, 4, - 355, 314, 4, 316, 4, 356, 314, 1, - 316, 4, 356, 314, 4, 316, 4, 357, - 314, 1, 316, 4, 357, 314, 4, 316, - 4, 358, 314, 1, 316, 4, 358, 314, - 4, 316, 4, 359, 314, 1, 316, 4, - 359, 314, 4, 316, 4, 360, 314, 1, - 316, 4, 360, 314, 4, 316, 4, 361, - 314, 1, 316, 4, 361, 314, 4, 316, - 4, 362, 314, 1, 316, 4, 362, 314, - 4, 316, 4, 363, 314, 1, 316, 4, - 363, 314, 4, 316, 4, 364, 314, 1, - 316, 4, 364, 314, 4, 316, 4, 365, - 314, 1, 316, 4, 365, 314, 4, 316, - 4, 366, 314, 1, 316, 4, 366, 314, - 4, 316, 4, 367, 314, 1, 316, 4, - 367, 314, 4, 316, 4, 368, 314, 1, - 316, 4, 368, 314, 4, 316, 4, 369, - 314, 1, 316, 4, 369, 314, 4, 316, - 4, 370, 314, 1, 316, 4, 370, 314, - 4, 316, 4, 371, 314, 1, 316, 4, - 371, 314, 4, 316, 4, 372, 314, 1, - 316, 4, 372, 314, 4, 316, 5, 20, - 7, 76, 0, 1, 5, 27, 302, 29, - 300, 1, 5, 27, 302, 29, 300, 2, - 5, 27, 302, 29, 300, 3, 5, 27, - 302, 29, 300, 4, 5, 29, 300, 1, - 296, 0, 5, 29, 300, 4, 296, 0, - 5, 29, 304, 300, 296, 0, 5, 31, - 1, 93, 7, 373, 5, 31, 1, 321, - 314, 316, 5, 31, 2, 321, 314, 7, - 5, 31, 3, 321, 314, 7, 5, 31, - 4, 321, 314, 7, 5, 31, 4, 321, - 314, 316, 5, 33, 38, 320, 315, 8, - 5, 37, 36, 316, 30, 25, 5, 40, - 42, 275, 283, 0, 5, 40, 42, 276, - 283, 0, 5, 40, 42, 277, 283, 0, - 5, 40, 42, 278, 283, 0, 5, 42, - 275, 1, 283, 0, 5, 42, 275, 4, - 283, 0, 5, 42, 276, 1, 283, 0, - 5, 42, 276, 4, 283, 0, 5, 42, - 277, 1, 283, 0, 5, 42, 277, 4, - 283, 0, 5, 42, 278, 1, 283, 0, - 5, 42, 278, 4, 283, 0, 5, 46, - 145, 300, 296, 0, 5, 46, 300, 1, - 296, 0, 5, 46, 300, 4, 296, 0, - 5, 50, 38, 320, 315, 8, 5, 56, - 7, 72, 0, 1, 5, 80, 7, 85, - 0, 1, 5, 90, 91, 316, 30, 25, - 5, 97, 98, 29, 300, 1, 5, 97, - 98, 29, 300, 2, 5, 97, 98, 29, - 300, 3, 5, 97, 98, 29, 300, 4, - 5, 99, 100, 29, 300, 1, 5, 99, - 100, 29, 300, 2, 5, 99, 100, 29, - 300, 3, 5, 99, 100, 29, 300, 4, - 5, 147, 145, 300, 296, 0, 5, 153, - 145, 300, 296, 0, 5, 281, 43, 39, - 37, 36, 5, 321, 314, 1, 7, 373, - 5, 321, 314, 4, 316, 7, 5, 321, - 314, 316, 7, 4, 6, 20, 83, 7, - 85, 0, 1, 6, 27, 302, 29, 300, - 296, 0, 6, 29, 304, 300, 1, 296, - 0, 6, 29, 304, 300, 4, 296, 0, - 6, 31, 1, 321, 314, 7, 373, 6, - 31, 4, 321, 314, 316, 7, 6, 33, - 50, 38, 320, 315, 8, 6, 40, 42, - 275, 1, 283, 0, 6, 40, 42, 275, - 4, 283, 0, 6, 40, 42, 276, 1, - 283, 0, 6, 40, 42, 276, 4, 283, - 0, 6, 40, 42, 277, 1, 283, 0, - 6, 40, 42, 277, 4, 283, 0, 6, - 40, 42, 278, 1, 283, 0, 6, 40, - 42, 278, 4, 283, 0, 6, 46, 145, - 300, 1, 296, 0, 6, 46, 145, 300, - 4, 296, 0, 6, 97, 98, 29, 300, - 296, 0, 6, 99, 100, 29, 300, 296, - 0, 6, 147, 145, 300, 1, 296, 0, - 6, 147, 145, 300, 4, 296, 0, 6, - 153, 145, 300, 1, 296, 0, 6, 153, - 145, 300, 4, 296, 0, 6, 321, 314, - 1, 316, 7, 373, 6, 321, 314, 316, - 7, 373, 1, 7, 27, 302, 29, 300, - 1, 296, 0, 7, 27, 302, 29, 300, - 4, 296, 0, 7, 31, 1, 321, 314, - 316, 7, 373, 7, 97, 98, 29, 300, - 1, 296, 0, 7, 97, 98, 29, 300, - 4, 296, 0, 7, 99, 100, 29, 300, - 1, 296, 0, 7, 99, 100, 29, 300, - 4, 296, 0 + 0, 2, 210, 0, 2, 211, 0, 2, + 213, 1, 2, 213, 2, 2, 213, 3, + 2, 213, 4, 2, 214, 1, 2, 214, + 2, 2, 214, 3, 2, 214, 4, 2, + 215, 1, 2, 215, 2, 2, 215, 3, + 2, 215, 4, 2, 216, 1, 2, 216, + 2, 2, 216, 3, 2, 216, 4, 2, + 217, 1, 2, 217, 2, 2, 217, 3, + 2, 217, 4, 2, 218, 1, 2, 218, + 2, 2, 218, 3, 2, 218, 4, 2, + 219, 1, 2, 219, 2, 2, 219, 3, + 2, 219, 4, 2, 220, 1, 2, 220, + 2, 2, 220, 3, 2, 220, 4, 2, + 221, 1, 2, 221, 2, 2, 221, 3, + 2, 221, 4, 2, 222, 1, 2, 222, + 2, 2, 222, 3, 2, 222, 4, 2, + 223, 1, 2, 223, 2, 2, 223, 3, + 2, 223, 4, 2, 224, 1, 2, 224, + 2, 2, 224, 3, 2, 224, 4, 2, + 225, 1, 2, 225, 2, 2, 225, 3, + 2, 225, 4, 2, 226, 1, 2, 226, + 2, 2, 226, 3, 2, 226, 4, 2, + 227, 1, 2, 227, 2, 2, 227, 3, + 2, 227, 4, 2, 228, 1, 2, 228, + 2, 2, 228, 3, 2, 228, 4, 2, + 229, 1, 2, 229, 2, 2, 229, 3, + 2, 229, 4, 2, 230, 1, 2, 230, + 2, 2, 230, 3, 2, 230, 4, 2, + 231, 1, 2, 231, 2, 2, 231, 3, + 2, 231, 4, 2, 232, 1, 2, 232, + 2, 2, 232, 3, 2, 232, 4, 2, + 233, 1, 2, 233, 2, 2, 233, 3, + 2, 233, 4, 2, 234, 1, 2, 234, + 2, 2, 234, 3, 2, 234, 4, 2, + 235, 1, 2, 235, 2, 2, 235, 3, + 2, 235, 4, 2, 236, 1, 2, 236, + 2, 2, 236, 3, 2, 236, 4, 2, + 237, 1, 2, 237, 2, 2, 237, 3, + 2, 237, 4, 2, 238, 1, 2, 238, + 2, 2, 238, 3, 2, 238, 4, 2, + 239, 1, 2, 239, 2, 2, 239, 3, + 2, 239, 4, 2, 240, 1, 2, 240, + 2, 2, 240, 3, 2, 240, 4, 2, + 241, 1, 2, 241, 2, 2, 241, 3, + 2, 241, 4, 2, 242, 1, 2, 242, + 2, 2, 242, 3, 2, 242, 4, 2, + 243, 1, 2, 243, 2, 2, 243, 3, + 2, 243, 4, 2, 244, 1, 2, 244, + 2, 2, 244, 3, 2, 244, 4, 2, + 245, 1, 2, 245, 2, 2, 245, 3, + 2, 245, 4, 2, 246, 1, 2, 246, + 2, 2, 246, 3, 2, 246, 4, 2, + 247, 1, 2, 247, 2, 2, 247, 3, + 2, 247, 4, 2, 248, 1, 2, 248, + 2, 2, 248, 3, 2, 248, 4, 2, + 249, 1, 2, 249, 2, 2, 249, 3, + 2, 249, 4, 2, 250, 1, 2, 250, + 2, 2, 250, 3, 2, 250, 4, 2, + 251, 1, 2, 251, 2, 2, 251, 3, + 2, 251, 4, 2, 252, 1, 2, 252, + 2, 2, 252, 3, 2, 252, 4, 2, + 253, 1, 2, 253, 2, 2, 253, 3, + 2, 253, 4, 2, 254, 1, 2, 254, + 2, 2, 254, 3, 2, 254, 4, 2, + 255, 1, 2, 255, 2, 2, 255, 3, + 2, 255, 4, 2, 256, 1, 2, 256, + 2, 2, 256, 3, 2, 256, 4, 2, + 257, 1, 2, 257, 2, 2, 257, 3, + 2, 257, 4, 2, 258, 1, 2, 258, + 2, 2, 258, 3, 2, 258, 4, 2, + 259, 1, 2, 259, 2, 2, 259, 3, + 2, 259, 4, 2, 260, 1, 2, 260, + 2, 2, 260, 3, 2, 260, 4, 2, + 261, 1, 2, 261, 2, 2, 261, 3, + 2, 261, 4, 2, 262, 1, 2, 262, + 2, 2, 262, 3, 2, 262, 4, 2, + 263, 1, 2, 263, 2, 2, 263, 3, + 2, 263, 4, 2, 264, 1, 2, 264, + 2, 2, 264, 3, 2, 264, 4, 2, + 265, 1, 2, 265, 2, 2, 265, 3, + 2, 265, 4, 2, 266, 1, 2, 266, + 2, 2, 266, 3, 2, 266, 4, 2, + 267, 0, 2, 270, 1, 2, 270, 2, + 2, 270, 3, 2, 270, 4, 2, 271, + 1, 2, 271, 2, 2, 271, 3, 2, + 271, 4, 2, 272, 1, 2, 272, 2, + 2, 272, 3, 2, 272, 4, 2, 273, + 1, 2, 273, 2, 2, 273, 3, 2, + 273, 4, 2, 280, 1, 2, 280, 2, + 2, 280, 3, 2, 280, 4, 2, 281, + 1, 2, 281, 2, 2, 281, 3, 2, + 281, 4, 2, 284, 0, 2, 285, 316, + 2, 287, 109, 2, 292, 109, 2, 296, + 1, 2, 296, 2, 2, 296, 3, 2, + 296, 4, 2, 297, 0, 2, 301, 1, + 2, 301, 2, 2, 301, 3, 2, 301, + 4, 2, 316, 8, 2, 317, 1, 2, + 317, 4, 2, 320, 317, 2, 321, 8, + 2, 321, 316, 2, 322, 315, 2, 323, + 315, 2, 324, 315, 2, 325, 315, 2, + 326, 315, 2, 327, 315, 2, 328, 315, + 2, 329, 315, 2, 330, 315, 2, 331, + 315, 2, 332, 315, 2, 333, 315, 2, + 334, 315, 2, 335, 315, 2, 336, 315, + 2, 337, 315, 2, 338, 315, 2, 339, + 315, 2, 340, 315, 2, 341, 315, 2, + 342, 315, 2, 343, 315, 2, 344, 315, + 2, 345, 315, 2, 346, 315, 2, 347, + 315, 2, 348, 315, 2, 349, 315, 2, + 350, 315, 2, 351, 315, 2, 352, 315, + 2, 353, 315, 2, 354, 315, 2, 355, + 315, 2, 356, 315, 2, 357, 315, 2, + 358, 315, 2, 359, 315, 2, 360, 315, + 2, 361, 315, 2, 362, 315, 2, 363, + 315, 2, 364, 315, 2, 365, 315, 2, + 366, 315, 2, 367, 315, 2, 368, 315, + 2, 369, 315, 2, 370, 315, 2, 371, + 315, 2, 372, 315, 2, 373, 315, 2, + 374, 1, 3, 0, 50, 1, 3, 0, + 50, 2, 3, 0, 50, 3, 3, 0, + 50, 4, 3, 1, 7, 374, 3, 1, + 32, 7, 3, 1, 72, 0, 3, 1, + 112, 0, 3, 1, 267, 0, 3, 1, + 284, 0, 3, 1, 297, 0, 3, 1, + 317, 374, 3, 2, 7, 32, 3, 2, + 32, 7, 3, 3, 7, 32, 3, 3, + 32, 7, 3, 4, 7, 32, 3, 4, + 32, 7, 3, 4, 72, 0, 3, 4, + 112, 0, 3, 4, 267, 0, 3, 4, + 284, 0, 3, 4, 297, 0, 3, 4, + 317, 7, 3, 5, 7, 2, 3, 5, + 7, 3, 3, 5, 7, 4, 3, 6, + 1, 374, 3, 6, 374, 1, 3, 7, + 2, 5, 3, 7, 2, 32, 3, 7, + 3, 5, 3, 7, 3, 32, 3, 7, + 4, 5, 3, 7, 4, 32, 3, 7, + 374, 1, 3, 9, 11, 1, 3, 15, + 21, 0, 3, 20, 7, 2, 3, 20, + 7, 3, 3, 20, 7, 4, 3, 20, + 84, 7, 3, 23, 13, 14, 3, 27, + 72, 0, 3, 27, 303, 29, 3, 28, + 95, 96, 3, 29, 301, 1, 3, 29, + 301, 2, 3, 29, 301, 3, 3, 29, + 301, 4, 3, 29, 305, 301, 3, 31, + 1, 94, 3, 31, 2, 7, 3, 31, + 2, 94, 3, 31, 3, 7, 3, 31, + 3, 94, 3, 31, 4, 7, 3, 31, + 4, 94, 3, 31, 94, 7, 3, 31, + 320, 317, 3, 31, 322, 315, 3, 32, + 1, 7, 3, 32, 2, 7, 3, 32, + 3, 7, 3, 32, 4, 7, 3, 33, + 90, 8, 3, 33, 316, 8, 3, 33, + 321, 8, 3, 33, 321, 316, 3, 35, + 36, 0, 3, 35, 36, 1, 3, 35, + 36, 2, 3, 35, 36, 3, 3, 35, + 36, 4, 3, 36, 1, 0, 3, 36, + 4, 0, 3, 38, 37, 317, 3, 39, + 157, 316, 3, 39, 321, 8, 3, 39, + 321, 316, 3, 41, 43, 274, 3, 41, + 43, 275, 3, 41, 43, 276, 3, 41, + 43, 277, 3, 41, 43, 278, 3, 41, + 43, 279, 3, 43, 274, 1, 3, 43, + 274, 2, 3, 43, 274, 3, 3, 43, + 274, 4, 3, 43, 275, 1, 3, 43, + 275, 2, 3, 43, 275, 3, 3, 43, + 275, 4, 3, 43, 276, 1, 3, 43, + 276, 2, 3, 43, 276, 3, 3, 43, + 276, 4, 3, 43, 277, 1, 3, 43, + 277, 2, 3, 43, 277, 3, 3, 43, + 277, 4, 3, 43, 278, 1, 3, 43, + 278, 2, 3, 43, 278, 3, 3, 43, + 278, 4, 3, 43, 279, 1, 3, 43, + 279, 2, 3, 43, 279, 3, 3, 43, + 279, 4, 3, 47, 146, 301, 3, 47, + 301, 1, 3, 47, 301, 2, 3, 47, + 301, 3, 3, 47, 301, 4, 3, 49, + 315, 1, 3, 49, 315, 2, 3, 49, + 315, 3, 3, 49, 315, 4, 3, 49, + 315, 317, 3, 51, 39, 74, 3, 51, + 39, 316, 3, 51, 39, 321, 3, 56, + 38, 37, 3, 57, 7, 2, 3, 57, + 7, 3, 3, 57, 7, 4, 3, 57, + 48, 0, 3, 57, 48, 1, 3, 57, + 48, 2, 3, 57, 48, 3, 3, 57, + 48, 4, 3, 57, 94, 1, 3, 57, + 94, 2, 3, 57, 94, 3, 3, 57, + 94, 4, 3, 67, 69, 0, 3, 67, + 69, 62, 3, 68, 63, 64, 3, 69, + 62, 0, 3, 71, 26, 70, 3, 73, + 0, 1, 3, 76, 23, 13, 3, 77, + 0, 1, 3, 81, 2, 7, 3, 81, + 3, 7, 3, 81, 4, 7, 3, 81, + 7, 4, 3, 83, 23, 13, 3, 86, + 0, 1, 3, 89, 7, 1, 3, 89, + 7, 4, 3, 89, 30, 25, 3, 89, + 32, 7, 3, 91, 30, 25, 3, 91, + 92, 317, 3, 94, 2, 7, 3, 94, + 3, 7, 3, 94, 4, 7, 3, 97, + 108, 316, 3, 97, 157, 316, 3, 98, + 99, 0, 3, 98, 99, 1, 3, 98, + 99, 2, 3, 98, 99, 3, 3, 98, + 99, 4, 3, 98, 99, 29, 3, 100, + 101, 0, 3, 100, 101, 1, 3, 100, + 101, 2, 3, 100, 101, 3, 3, 100, + 101, 4, 3, 100, 101, 29, 3, 106, + 107, 0, 3, 106, 107, 1, 3, 106, + 107, 2, 3, 106, 107, 3, 3, 106, + 107, 4, 3, 111, 113, 286, 3, 111, + 295, 316, 3, 148, 146, 301, 3, 154, + 146, 301, 3, 157, 158, 316, 3, 213, + 267, 0, 3, 214, 267, 0, 3, 215, + 267, 0, 3, 216, 267, 0, 3, 217, + 267, 0, 3, 218, 267, 0, 3, 219, + 267, 0, 3, 220, 267, 0, 3, 221, + 267, 0, 3, 222, 267, 0, 3, 223, + 267, 0, 3, 224, 267, 0, 3, 225, + 267, 0, 3, 226, 267, 0, 3, 227, + 267, 0, 3, 228, 267, 0, 3, 229, + 267, 0, 3, 230, 267, 0, 3, 231, + 267, 0, 3, 232, 267, 0, 3, 233, + 267, 0, 3, 234, 267, 0, 3, 235, + 267, 0, 3, 236, 267, 0, 3, 237, + 267, 0, 3, 238, 267, 0, 3, 239, + 267, 0, 3, 240, 267, 0, 3, 241, + 267, 0, 3, 242, 267, 0, 3, 243, + 267, 0, 3, 244, 267, 0, 3, 245, + 267, 0, 3, 246, 267, 0, 3, 247, + 267, 0, 3, 248, 267, 0, 3, 249, + 267, 0, 3, 250, 267, 0, 3, 251, + 267, 0, 3, 252, 267, 0, 3, 253, + 267, 0, 3, 254, 267, 0, 3, 255, + 267, 0, 3, 256, 267, 0, 3, 257, + 267, 0, 3, 258, 267, 0, 3, 259, + 267, 0, 3, 260, 267, 0, 3, 261, + 267, 0, 3, 262, 267, 0, 3, 263, + 267, 0, 3, 264, 267, 0, 3, 265, + 267, 0, 3, 266, 267, 0, 3, 283, + 38, 37, 3, 288, 289, 0, 3, 288, + 290, 0, 3, 291, 111, 316, 3, 293, + 294, 0, 3, 295, 111, 316, 3, 296, + 297, 0, 3, 301, 297, 0, 3, 304, + 28, 307, 3, 316, 8, 90, 3, 317, + 7, 1, 3, 317, 7, 4, 3, 317, + 30, 25, 3, 317, 374, 1, 3, 319, + 30, 25, 3, 321, 316, 8, 3, 322, + 315, 1, 3, 322, 315, 2, 3, 322, + 315, 3, 3, 322, 315, 4, 3, 322, + 315, 7, 3, 322, 315, 317, 3, 323, + 315, 1, 3, 323, 315, 2, 3, 323, + 315, 3, 3, 323, 315, 4, 3, 323, + 315, 317, 3, 324, 315, 1, 3, 324, + 315, 2, 3, 324, 315, 3, 3, 324, + 315, 4, 3, 324, 315, 317, 3, 325, + 315, 1, 3, 325, 315, 2, 3, 325, + 315, 3, 3, 325, 315, 4, 3, 325, + 315, 317, 3, 326, 315, 1, 3, 326, + 315, 2, 3, 326, 315, 3, 3, 326, + 315, 4, 3, 326, 315, 317, 3, 327, + 315, 1, 3, 327, 315, 2, 3, 327, + 315, 3, 3, 327, 315, 4, 3, 327, + 315, 317, 3, 328, 315, 1, 3, 328, + 315, 2, 3, 328, 315, 3, 3, 328, + 315, 4, 3, 328, 315, 317, 3, 329, + 315, 1, 3, 329, 315, 2, 3, 329, + 315, 3, 3, 329, 315, 4, 3, 329, + 315, 317, 3, 330, 315, 1, 3, 330, + 315, 2, 3, 330, 315, 3, 3, 330, + 315, 4, 3, 330, 315, 317, 3, 331, + 315, 1, 3, 331, 315, 2, 3, 331, + 315, 3, 3, 331, 315, 4, 3, 331, + 315, 317, 3, 332, 315, 1, 3, 332, + 315, 2, 3, 332, 315, 3, 3, 332, + 315, 4, 3, 332, 315, 317, 3, 333, + 315, 1, 3, 333, 315, 2, 3, 333, + 315, 3, 3, 333, 315, 4, 3, 333, + 315, 317, 3, 334, 315, 1, 3, 334, + 315, 2, 3, 334, 315, 3, 3, 334, + 315, 4, 3, 334, 315, 317, 3, 335, + 315, 1, 3, 335, 315, 2, 3, 335, + 315, 3, 3, 335, 315, 4, 3, 335, + 315, 317, 3, 336, 315, 1, 3, 336, + 315, 2, 3, 336, 315, 3, 3, 336, + 315, 4, 3, 336, 315, 317, 3, 337, + 315, 1, 3, 337, 315, 2, 3, 337, + 315, 3, 3, 337, 315, 4, 3, 337, + 315, 317, 3, 338, 315, 1, 3, 338, + 315, 2, 3, 338, 315, 3, 3, 338, + 315, 4, 3, 338, 315, 317, 3, 339, + 315, 1, 3, 339, 315, 2, 3, 339, + 315, 3, 3, 339, 315, 4, 3, 339, + 315, 317, 3, 340, 315, 1, 3, 340, + 315, 2, 3, 340, 315, 3, 3, 340, + 315, 4, 3, 340, 315, 317, 3, 341, + 315, 1, 3, 341, 315, 2, 3, 341, + 315, 3, 3, 341, 315, 4, 3, 341, + 315, 317, 3, 342, 315, 1, 3, 342, + 315, 2, 3, 342, 315, 3, 3, 342, + 315, 4, 3, 342, 315, 317, 3, 343, + 315, 1, 3, 343, 315, 2, 3, 343, + 315, 3, 3, 343, 315, 4, 3, 343, + 315, 317, 3, 344, 315, 1, 3, 344, + 315, 2, 3, 344, 315, 3, 3, 344, + 315, 4, 3, 344, 315, 317, 3, 345, + 315, 1, 3, 345, 315, 2, 3, 345, + 315, 3, 3, 345, 315, 4, 3, 345, + 315, 317, 3, 346, 315, 1, 3, 346, + 315, 2, 3, 346, 315, 3, 3, 346, + 315, 4, 3, 346, 315, 317, 3, 347, + 315, 1, 3, 347, 315, 2, 3, 347, + 315, 3, 3, 347, 315, 4, 3, 347, + 315, 317, 3, 348, 315, 1, 3, 348, + 315, 2, 3, 348, 315, 3, 3, 348, + 315, 4, 3, 348, 315, 317, 3, 349, + 315, 1, 3, 349, 315, 2, 3, 349, + 315, 3, 3, 349, 315, 4, 3, 349, + 315, 317, 3, 350, 315, 1, 3, 350, + 315, 2, 3, 350, 315, 3, 3, 350, + 315, 4, 3, 350, 315, 317, 3, 351, + 315, 1, 3, 351, 315, 2, 3, 351, + 315, 3, 3, 351, 315, 4, 3, 351, + 315, 317, 3, 352, 315, 1, 3, 352, + 315, 2, 3, 352, 315, 3, 3, 352, + 315, 4, 3, 352, 315, 317, 3, 353, + 315, 1, 3, 353, 315, 2, 3, 353, + 315, 3, 3, 353, 315, 4, 3, 353, + 315, 317, 3, 354, 315, 1, 3, 354, + 315, 2, 3, 354, 315, 3, 3, 354, + 315, 4, 3, 354, 315, 317, 3, 355, + 315, 1, 3, 355, 315, 2, 3, 355, + 315, 3, 3, 355, 315, 4, 3, 355, + 315, 317, 3, 356, 315, 1, 3, 356, + 315, 2, 3, 356, 315, 3, 3, 356, + 315, 4, 3, 356, 315, 317, 3, 357, + 315, 1, 3, 357, 315, 2, 3, 357, + 315, 3, 3, 357, 315, 4, 3, 357, + 315, 317, 3, 358, 315, 1, 3, 358, + 315, 2, 3, 358, 315, 3, 3, 358, + 315, 4, 3, 358, 315, 317, 3, 359, + 315, 1, 3, 359, 315, 2, 3, 359, + 315, 3, 3, 359, 315, 4, 3, 359, + 315, 317, 3, 360, 315, 1, 3, 360, + 315, 2, 3, 360, 315, 3, 3, 360, + 315, 4, 3, 360, 315, 317, 3, 361, + 315, 1, 3, 361, 315, 2, 3, 361, + 315, 3, 3, 361, 315, 4, 3, 361, + 315, 317, 3, 362, 315, 1, 3, 362, + 315, 2, 3, 362, 315, 3, 3, 362, + 315, 4, 3, 362, 315, 317, 3, 363, + 315, 1, 3, 363, 315, 2, 3, 363, + 315, 3, 3, 363, 315, 4, 3, 363, + 315, 317, 3, 364, 315, 1, 3, 364, + 315, 2, 3, 364, 315, 3, 3, 364, + 315, 4, 3, 364, 315, 317, 3, 365, + 315, 1, 3, 365, 315, 2, 3, 365, + 315, 3, 3, 365, 315, 4, 3, 365, + 315, 317, 3, 366, 315, 1, 3, 366, + 315, 2, 3, 366, 315, 3, 3, 366, + 315, 4, 3, 366, 315, 317, 3, 367, + 315, 1, 3, 367, 315, 2, 3, 367, + 315, 3, 3, 367, 315, 4, 3, 367, + 315, 317, 3, 368, 315, 1, 3, 368, + 315, 2, 3, 368, 315, 3, 3, 368, + 315, 4, 3, 368, 315, 317, 3, 369, + 315, 1, 3, 369, 315, 2, 3, 369, + 315, 3, 3, 369, 315, 4, 3, 369, + 315, 317, 3, 370, 315, 1, 3, 370, + 315, 2, 3, 370, 315, 3, 3, 370, + 315, 4, 3, 370, 315, 317, 3, 371, + 315, 1, 3, 371, 315, 2, 3, 371, + 315, 3, 3, 371, 315, 4, 3, 371, + 315, 317, 3, 372, 315, 1, 3, 372, + 315, 2, 3, 372, 315, 3, 3, 372, + 315, 4, 3, 372, 315, 317, 3, 373, + 315, 1, 3, 373, 315, 2, 3, 373, + 315, 3, 3, 373, 315, 4, 3, 373, + 315, 317, 3, 374, 1, 6, 4, 1, + 7, 374, 32, 4, 1, 317, 32, 7, + 4, 4, 317, 7, 32, 4, 4, 317, + 32, 7, 4, 6, 1, 7, 374, 4, + 6, 1, 86, 0, 4, 6, 73, 0, + 1, 4, 6, 77, 0, 1, 4, 6, + 86, 0, 1, 4, 7, 6, 374, 1, + 4, 7, 73, 0, 1, 4, 7, 374, + 1, 6, 4, 7, 374, 1, 32, 4, + 18, 15, 21, 0, 4, 20, 84, 7, + 2, 4, 20, 84, 7, 3, 4, 20, + 84, 7, 4, 4, 27, 1, 72, 0, + 4, 27, 4, 72, 0, 4, 27, 303, + 29, 301, 4, 29, 301, 297, 0, 4, + 29, 305, 301, 1, 4, 29, 305, 301, + 2, 4, 29, 305, 301, 3, 4, 29, + 305, 301, 4, 4, 31, 1, 7, 374, + 4, 31, 1, 320, 317, 4, 31, 1, + 322, 315, 4, 31, 2, 94, 7, 4, + 31, 2, 320, 317, 4, 31, 2, 322, + 315, 4, 31, 3, 94, 7, 4, 31, + 3, 320, 317, 4, 31, 3, 322, 315, + 4, 31, 4, 94, 7, 4, 31, 4, + 320, 317, 4, 31, 4, 322, 315, 4, + 31, 322, 315, 7, 4, 33, 39, 321, + 8, 4, 33, 51, 39, 321, 4, 33, + 321, 316, 8, 4, 38, 37, 30, 25, + 4, 39, 321, 316, 8, 4, 41, 38, + 37, 42, 4, 41, 43, 274, 1, 4, + 41, 43, 274, 2, 4, 41, 43, 274, + 3, 4, 41, 43, 274, 4, 4, 41, + 43, 275, 1, 4, 41, 43, 275, 2, + 4, 41, 43, 275, 3, 4, 41, 43, + 275, 4, 4, 41, 43, 276, 1, 4, + 41, 43, 276, 2, 4, 41, 43, 276, + 3, 4, 41, 43, 276, 4, 4, 41, + 43, 277, 1, 4, 41, 43, 277, 2, + 4, 41, 43, 277, 3, 4, 41, 43, + 277, 4, 4, 41, 43, 278, 1, 4, + 41, 43, 278, 2, 4, 41, 43, 278, + 3, 4, 41, 43, 278, 4, 4, 41, + 43, 279, 1, 4, 41, 43, 279, 2, + 4, 41, 43, 279, 3, 4, 41, 43, + 279, 4, 4, 43, 276, 284, 0, 4, + 43, 277, 284, 0, 4, 43, 278, 284, + 0, 4, 43, 279, 284, 0, 4, 44, + 40, 38, 37, 4, 45, 40, 38, 37, + 4, 47, 146, 301, 1, 4, 47, 146, + 301, 2, 4, 47, 146, 301, 3, 4, + 47, 146, 301, 4, 4, 47, 301, 297, + 0, 4, 49, 315, 1, 317, 4, 49, + 315, 4, 317, 4, 51, 39, 8, 74, + 4, 57, 56, 38, 37, 4, 67, 69, + 62, 0, 4, 76, 23, 13, 14, 4, + 83, 23, 13, 14, 4, 89, 32, 1, + 7, 4, 89, 32, 2, 7, 4, 89, + 32, 3, 7, 4, 89, 32, 4, 7, + 4, 91, 92, 30, 25, 4, 94, 1, + 7, 374, 4, 97, 157, 158, 316, 4, + 98, 99, 1, 0, 4, 98, 99, 4, + 0, 4, 98, 99, 29, 301, 4, 100, + 101, 1, 0, 4, 100, 101, 4, 0, + 4, 100, 101, 29, 301, 4, 106, 107, + 1, 0, 4, 106, 107, 4, 0, 4, + 148, 146, 301, 1, 4, 148, 146, 301, + 2, 4, 148, 146, 301, 3, 4, 148, + 146, 301, 4, 4, 148, 306, 38, 37, + 4, 154, 146, 301, 1, 4, 154, 146, + 301, 2, 4, 154, 146, 301, 3, 4, + 154, 146, 301, 4, 4, 213, 1, 267, + 0, 4, 213, 4, 267, 0, 4, 214, + 1, 267, 0, 4, 214, 4, 267, 0, + 4, 215, 1, 267, 0, 4, 215, 4, + 267, 0, 4, 216, 1, 267, 0, 4, + 216, 4, 267, 0, 4, 217, 1, 267, + 0, 4, 217, 4, 267, 0, 4, 218, + 1, 267, 0, 4, 218, 4, 267, 0, + 4, 219, 1, 267, 0, 4, 219, 4, + 267, 0, 4, 220, 1, 267, 0, 4, + 220, 4, 267, 0, 4, 221, 1, 267, + 0, 4, 221, 4, 267, 0, 4, 222, + 1, 267, 0, 4, 222, 4, 267, 0, + 4, 223, 1, 267, 0, 4, 223, 4, + 267, 0, 4, 224, 1, 267, 0, 4, + 224, 4, 267, 0, 4, 225, 1, 267, + 0, 4, 225, 4, 267, 0, 4, 226, + 1, 267, 0, 4, 226, 4, 267, 0, + 4, 227, 1, 267, 0, 4, 227, 4, + 267, 0, 4, 228, 1, 267, 0, 4, + 228, 4, 267, 0, 4, 229, 1, 267, + 0, 4, 229, 4, 267, 0, 4, 230, + 1, 267, 0, 4, 230, 4, 267, 0, + 4, 231, 1, 267, 0, 4, 231, 4, + 267, 0, 4, 232, 1, 267, 0, 4, + 232, 4, 267, 0, 4, 233, 1, 267, + 0, 4, 233, 4, 267, 0, 4, 234, + 1, 267, 0, 4, 234, 4, 267, 0, + 4, 235, 1, 267, 0, 4, 235, 4, + 267, 0, 4, 236, 1, 267, 0, 4, + 236, 4, 267, 0, 4, 237, 1, 267, + 0, 4, 237, 4, 267, 0, 4, 238, + 1, 267, 0, 4, 238, 4, 267, 0, + 4, 239, 1, 267, 0, 4, 239, 4, + 267, 0, 4, 240, 1, 267, 0, 4, + 240, 4, 267, 0, 4, 241, 1, 267, + 0, 4, 241, 4, 267, 0, 4, 242, + 1, 267, 0, 4, 242, 4, 267, 0, + 4, 243, 1, 267, 0, 4, 243, 4, + 267, 0, 4, 244, 1, 267, 0, 4, + 244, 4, 267, 0, 4, 245, 1, 267, + 0, 4, 245, 4, 267, 0, 4, 246, + 1, 267, 0, 4, 246, 4, 267, 0, + 4, 247, 1, 267, 0, 4, 247, 4, + 267, 0, 4, 248, 1, 267, 0, 4, + 248, 4, 267, 0, 4, 249, 1, 267, + 0, 4, 249, 4, 267, 0, 4, 250, + 1, 267, 0, 4, 250, 4, 267, 0, + 4, 251, 1, 267, 0, 4, 251, 4, + 267, 0, 4, 252, 1, 267, 0, 4, + 252, 4, 267, 0, 4, 253, 1, 267, + 0, 4, 253, 4, 267, 0, 4, 254, + 1, 267, 0, 4, 254, 4, 267, 0, + 4, 255, 1, 267, 0, 4, 255, 4, + 267, 0, 4, 256, 1, 267, 0, 4, + 256, 4, 267, 0, 4, 257, 1, 267, + 0, 4, 257, 4, 267, 0, 4, 258, + 1, 267, 0, 4, 258, 4, 267, 0, + 4, 259, 1, 267, 0, 4, 259, 4, + 267, 0, 4, 260, 1, 267, 0, 4, + 260, 4, 267, 0, 4, 261, 1, 267, + 0, 4, 261, 4, 267, 0, 4, 262, + 1, 267, 0, 4, 262, 4, 267, 0, + 4, 263, 1, 267, 0, 4, 263, 4, + 267, 0, 4, 264, 1, 267, 0, 4, + 264, 4, 267, 0, 4, 265, 1, 267, + 0, 4, 265, 4, 267, 0, 4, 266, + 1, 267, 0, 4, 266, 4, 267, 0, + 4, 296, 1, 297, 0, 4, 296, 4, + 297, 0, 4, 301, 1, 297, 0, 4, + 301, 4, 297, 0, 4, 302, 28, 26, + 70, 4, 317, 7, 374, 1, 4, 322, + 315, 1, 317, 4, 322, 315, 2, 7, + 4, 322, 315, 3, 7, 4, 322, 315, + 4, 7, 4, 322, 315, 4, 317, 4, + 323, 315, 1, 317, 4, 323, 315, 4, + 317, 4, 324, 315, 1, 317, 4, 324, + 315, 4, 317, 4, 325, 315, 1, 317, + 4, 325, 315, 4, 317, 4, 326, 315, + 1, 317, 4, 326, 315, 4, 317, 4, + 327, 315, 1, 317, 4, 327, 315, 4, + 317, 4, 328, 315, 1, 317, 4, 328, + 315, 4, 317, 4, 329, 315, 1, 317, + 4, 329, 315, 4, 317, 4, 330, 315, + 1, 317, 4, 330, 315, 4, 317, 4, + 331, 315, 1, 317, 4, 331, 315, 4, + 317, 4, 332, 315, 1, 317, 4, 332, + 315, 4, 317, 4, 333, 315, 1, 317, + 4, 333, 315, 4, 317, 4, 334, 315, + 1, 317, 4, 334, 315, 4, 317, 4, + 335, 315, 1, 317, 4, 335, 315, 4, + 317, 4, 336, 315, 1, 317, 4, 336, + 315, 4, 317, 4, 337, 315, 1, 317, + 4, 337, 315, 4, 317, 4, 338, 315, + 1, 317, 4, 338, 315, 4, 317, 4, + 339, 315, 1, 317, 4, 339, 315, 4, + 317, 4, 340, 315, 1, 317, 4, 340, + 315, 4, 317, 4, 341, 315, 1, 317, + 4, 341, 315, 4, 317, 4, 342, 315, + 1, 317, 4, 342, 315, 4, 317, 4, + 343, 315, 1, 317, 4, 343, 315, 4, + 317, 4, 344, 315, 1, 317, 4, 344, + 315, 4, 317, 4, 345, 315, 1, 317, + 4, 345, 315, 4, 317, 4, 346, 315, + 1, 317, 4, 346, 315, 4, 317, 4, + 347, 315, 1, 317, 4, 347, 315, 4, + 317, 4, 348, 315, 1, 317, 4, 348, + 315, 4, 317, 4, 349, 315, 1, 317, + 4, 349, 315, 4, 317, 4, 350, 315, + 1, 317, 4, 350, 315, 4, 317, 4, + 351, 315, 1, 317, 4, 351, 315, 4, + 317, 4, 352, 315, 1, 317, 4, 352, + 315, 4, 317, 4, 353, 315, 1, 317, + 4, 353, 315, 4, 317, 4, 354, 315, + 1, 317, 4, 354, 315, 4, 317, 4, + 355, 315, 1, 317, 4, 355, 315, 4, + 317, 4, 356, 315, 1, 317, 4, 356, + 315, 4, 317, 4, 357, 315, 1, 317, + 4, 357, 315, 4, 317, 4, 358, 315, + 1, 317, 4, 358, 315, 4, 317, 4, + 359, 315, 1, 317, 4, 359, 315, 4, + 317, 4, 360, 315, 1, 317, 4, 360, + 315, 4, 317, 4, 361, 315, 1, 317, + 4, 361, 315, 4, 317, 4, 362, 315, + 1, 317, 4, 362, 315, 4, 317, 4, + 363, 315, 1, 317, 4, 363, 315, 4, + 317, 4, 364, 315, 1, 317, 4, 364, + 315, 4, 317, 4, 365, 315, 1, 317, + 4, 365, 315, 4, 317, 4, 366, 315, + 1, 317, 4, 366, 315, 4, 317, 4, + 367, 315, 1, 317, 4, 367, 315, 4, + 317, 4, 368, 315, 1, 317, 4, 368, + 315, 4, 317, 4, 369, 315, 1, 317, + 4, 369, 315, 4, 317, 4, 370, 315, + 1, 317, 4, 370, 315, 4, 317, 4, + 371, 315, 1, 317, 4, 371, 315, 4, + 317, 4, 372, 315, 1, 317, 4, 372, + 315, 4, 317, 4, 373, 315, 1, 317, + 4, 373, 315, 4, 317, 5, 20, 7, + 77, 0, 1, 5, 27, 303, 29, 301, + 1, 5, 27, 303, 29, 301, 2, 5, + 27, 303, 29, 301, 3, 5, 27, 303, + 29, 301, 4, 5, 29, 301, 1, 297, + 0, 5, 29, 301, 4, 297, 0, 5, + 29, 305, 301, 297, 0, 5, 31, 1, + 94, 7, 374, 5, 31, 1, 322, 315, + 317, 5, 31, 2, 322, 315, 7, 5, + 31, 3, 322, 315, 7, 5, 31, 4, + 322, 315, 7, 5, 31, 4, 322, 315, + 317, 5, 33, 39, 321, 316, 8, 5, + 38, 37, 317, 30, 25, 5, 41, 43, + 276, 284, 0, 5, 41, 43, 277, 284, + 0, 5, 41, 43, 278, 284, 0, 5, + 41, 43, 279, 284, 0, 5, 43, 276, + 1, 284, 0, 5, 43, 276, 4, 284, + 0, 5, 43, 277, 1, 284, 0, 5, + 43, 277, 4, 284, 0, 5, 43, 278, + 1, 284, 0, 5, 43, 278, 4, 284, + 0, 5, 43, 279, 1, 284, 0, 5, + 43, 279, 4, 284, 0, 5, 47, 146, + 301, 297, 0, 5, 47, 301, 1, 297, + 0, 5, 47, 301, 4, 297, 0, 5, + 51, 39, 321, 316, 8, 5, 57, 7, + 73, 0, 1, 5, 81, 7, 86, 0, + 1, 5, 91, 92, 317, 30, 25, 5, + 98, 99, 29, 301, 1, 5, 98, 99, + 29, 301, 2, 5, 98, 99, 29, 301, + 3, 5, 98, 99, 29, 301, 4, 5, + 100, 101, 29, 301, 1, 5, 100, 101, + 29, 301, 2, 5, 100, 101, 29, 301, + 3, 5, 100, 101, 29, 301, 4, 5, + 148, 146, 301, 297, 0, 5, 154, 146, + 301, 297, 0, 5, 282, 44, 40, 38, + 37, 5, 322, 315, 1, 7, 374, 5, + 322, 315, 4, 317, 7, 5, 322, 315, + 317, 7, 4, 6, 20, 84, 7, 86, + 0, 1, 6, 27, 303, 29, 301, 297, + 0, 6, 29, 305, 301, 1, 297, 0, + 6, 29, 305, 301, 4, 297, 0, 6, + 31, 1, 322, 315, 7, 374, 6, 31, + 4, 322, 315, 317, 7, 6, 33, 51, + 39, 321, 316, 8, 6, 41, 43, 276, + 1, 284, 0, 6, 41, 43, 276, 4, + 284, 0, 6, 41, 43, 277, 1, 284, + 0, 6, 41, 43, 277, 4, 284, 0, + 6, 41, 43, 278, 1, 284, 0, 6, + 41, 43, 278, 4, 284, 0, 6, 41, + 43, 279, 1, 284, 0, 6, 41, 43, + 279, 4, 284, 0, 6, 47, 146, 301, + 1, 297, 0, 6, 47, 146, 301, 4, + 297, 0, 6, 98, 99, 29, 301, 297, + 0, 6, 100, 101, 29, 301, 297, 0, + 6, 148, 146, 301, 1, 297, 0, 6, + 148, 146, 301, 4, 297, 0, 6, 154, + 146, 301, 1, 297, 0, 6, 154, 146, + 301, 4, 297, 0, 6, 322, 315, 1, + 317, 7, 374, 6, 322, 315, 317, 7, + 374, 1, 7, 27, 303, 29, 301, 1, + 297, 0, 7, 27, 303, 29, 301, 4, + 297, 0, 7, 31, 1, 322, 315, 317, + 7, 374, 7, 98, 99, 29, 301, 1, + 297, 0, 7, 98, 99, 29, 301, 4, + 297, 0, 7, 100, 101, 29, 301, 1, + 297, 0, 7, 100, 101, 29, 301, 4, + 297, 0 }; static const short _zone_scanner_cond_offsets[] = { @@ -5760,600 +5763,600 @@ static const short _zone_scanner_trans_targs[] = { }; static const short _zone_scanner_trans_actions[] = { - 2267, 0, 5, 7, 553, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 3, - 9, 3, 9, 2443, 103, 745, 748, 45, - 59, 57, 55, 0, 61, 742, 751, 335, + 2290, 0, 5, 7, 556, 730, 730, 730, + 730, 730, 730, 730, 730, 730, 730, 730, + 730, 730, 730, 730, 730, 730, 730, 3, + 9, 3, 9, 2466, 103, 748, 751, 45, + 59, 57, 55, 0, 61, 745, 754, 335, 0, 5, 7, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 97, 97, 97, 3, 9, 1813, - 1816, 2971, 2975, 0, 0, 0, 0, 2967, - 2979, 2987, 5135, 5155, 329, 0, 327, 5, - 7, 333, 3, 9, 343, 370, 1798, 13, - 391, 394, 2115, 397, 15, 0, 5, 7, - 1972, 9, 11, 2087, 1807, 331, 11, 385, - 13, 352, 358, 367, 5130, 2947, 2067, 0, - 5, 7, 9, 2955, 1804, 370, 11, 2083, - 0, 4225, 5, 7, 2259, 2575, 2575, 2575, - 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, - 2575, 2575, 2575, 2575, 2575, 2575, 2575, 3, - 9, 1801, 1804, 343, 370, 5856, 754, 2579, - 2583, 4470, 2587, 1810, 0, 5, 7, 346, - 9, 0, 0, 0, 0, 0, 0, 1951, - 3875, 3879, 3871, 3883, 3887, 5600, 5605, 382, - 2071, 2075, 2079, 11, 373, 376, 379, 0, - 0, 0, 0, 0, 0, 1915, 3635, 3639, - 3631, 3643, 3647, 5480, 5485, 1912, 3615, 3619, - 3611, 3623, 3627, 5470, 5475, 0, 0, 1870, - 3335, 3339, 3331, 3343, 3347, 5330, 5335, 0, - 0, 0, 1822, 3015, 3019, 3011, 3023, 3027, - 5170, 5175, 0, 0, 0, 1921, 3675, 3679, - 3671, 3683, 3687, 5500, 5505, 0, 0, 0, - 0, 0, 0, 1897, 3515, 3519, 3511, 3523, - 3527, 5420, 5425, 0, 0, 0, 0, 1873, - 3355, 3359, 3351, 3363, 3367, 5340, 5345, 0, - 0, 0, 1894, 3495, 3499, 3491, 3503, 3507, - 5410, 5415, 1879, 3395, 3399, 0, 3391, 3403, - 3407, 5360, 5365, 0, 0, 1960, 3935, 3939, - 3931, 3943, 3947, 5630, 5635, 0, 0, 0, - 0, 0, 1942, 3815, 3819, 3811, 3823, 3827, - 5570, 5575, 0, 1945, 3835, 3839, 3831, 3843, - 3847, 5580, 5585, 0, 0, 0, 0, 0, - 1831, 3075, 3079, 3071, 3083, 3087, 5200, 5205, - 0, 0, 0, 1957, 3915, 3919, 3911, 3923, - 3927, 5620, 5625, 0, 0, 101, 733, 736, - 730, 739, 0, 5, 7, 0, 0, 0, + 97, 97, 97, 97, 97, 3, 9, 1816, + 1819, 2994, 2998, 0, 0, 0, 0, 2990, + 3002, 3010, 5158, 5178, 329, 0, 327, 5, + 7, 333, 3, 9, 343, 370, 1801, 13, + 391, 394, 2118, 397, 15, 0, 5, 7, + 1975, 9, 11, 2090, 1810, 331, 11, 385, + 13, 352, 358, 367, 5153, 2970, 2070, 0, + 5, 7, 9, 2978, 1807, 370, 11, 2086, + 0, 4248, 5, 7, 2282, 2598, 2598, 2598, + 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, + 2598, 2598, 2598, 2598, 2598, 2598, 2598, 3, + 9, 1804, 1807, 343, 370, 5879, 757, 2602, + 2606, 4493, 2610, 1813, 0, 5, 7, 346, + 9, 0, 0, 0, 0, 0, 0, 1954, + 3898, 3902, 3894, 3906, 3910, 5623, 5628, 382, + 2074, 2078, 2082, 11, 373, 376, 379, 0, + 0, 0, 0, 0, 0, 1918, 3658, 3662, + 3654, 3666, 3670, 5503, 5508, 1915, 3638, 3642, + 3634, 3646, 3650, 5493, 5498, 0, 0, 1873, + 3358, 3362, 3354, 3366, 3370, 5353, 5358, 0, + 0, 0, 1825, 3038, 3042, 3034, 3046, 3050, + 5193, 5198, 0, 0, 0, 1924, 3698, 3702, + 3694, 3706, 3710, 5523, 5528, 0, 0, 0, + 0, 0, 0, 1900, 3538, 3542, 3534, 3546, + 3550, 5443, 5448, 0, 0, 0, 0, 1876, + 3378, 3382, 3374, 3386, 3390, 5363, 5368, 0, + 0, 0, 1897, 3518, 3522, 3514, 3526, 3530, + 5433, 5438, 1882, 3418, 3422, 0, 3414, 3426, + 3430, 5383, 5388, 0, 0, 1963, 3958, 3962, + 3954, 3966, 3970, 5653, 5658, 0, 0, 0, + 0, 0, 1945, 3838, 3842, 3834, 3846, 3850, + 5593, 5598, 0, 1948, 3858, 3862, 3854, 3866, + 3870, 5603, 5608, 0, 0, 0, 0, 0, + 1834, 3098, 3102, 3094, 3106, 3110, 5223, 5228, + 0, 0, 0, 1960, 3938, 3942, 3934, 3946, + 3950, 5643, 5648, 0, 0, 101, 736, 739, + 733, 742, 0, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 9, 0, 0, 0, 0, 0, 0, 1885, - 3435, 3439, 3431, 3443, 3447, 5380, 5385, 0, - 0, 0, 1852, 3215, 3219, 3211, 3223, 3227, - 5270, 5275, 1867, 3315, 3319, 3311, 3323, 3327, - 5320, 5325, 0, 0, 0, 0, 0, 1933, - 3755, 3759, 3751, 3763, 3767, 5540, 5545, 0, - 1936, 3775, 3779, 3771, 3783, 3787, 5550, 5555, - 0, 1858, 3255, 3259, 3251, 3263, 3267, 5290, - 5295, 1939, 3795, 3799, 3791, 3803, 3807, 5560, - 5565, 0, 0, 0, 0, 0, 1834, 3095, - 3099, 3091, 3103, 3107, 5210, 5215, 1837, 3115, - 3119, 3111, 3123, 3127, 5220, 5225, 0, 0, - 0, 0, 0, 0, 1864, 3295, 3299, 3291, - 3303, 3307, 5310, 5315, 0, 1930, 3735, 3739, - 3731, 3743, 3747, 5530, 5535, 1819, 2995, 2999, - 0, 2991, 3003, 3007, 5160, 5165, 0, 1891, - 3475, 3479, 0, 3471, 3483, 3487, 5400, 5405, - 1900, 3535, 3539, 0, 3531, 3543, 3547, 5430, - 5435, 0, 0, 0, 0, 1903, 3555, 3559, - 3551, 3563, 3567, 5440, 5445, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1918, 3655, - 3659, 3651, 3663, 3667, 5490, 5495, 0, 0, - 1828, 3055, 3059, 3051, 3063, 3067, 5190, 5195, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1963, 3955, 3959, 3951, 3963, 3967, 5640, - 5645, 1843, 3155, 3159, 3151, 3163, 3167, 5240, - 5245, 0, 0, 0, 1888, 3455, 3459, 3451, - 3463, 3467, 5390, 5395, 1849, 3195, 3199, 3191, - 3203, 3207, 5260, 5265, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1909, 3595, - 3599, 3591, 3603, 3607, 5460, 5465, 0, 1825, - 3035, 3039, 3031, 3043, 3047, 5180, 5185, 0, - 1927, 3715, 3719, 3711, 3723, 3727, 5520, 5525, - 0, 1861, 3275, 3279, 3271, 3283, 3287, 5300, - 5305, 0, 0, 0, 1882, 3415, 3419, 3411, - 3423, 3427, 5370, 5375, 0, 0, 1954, 3895, - 3899, 3891, 3903, 3907, 5610, 5615, 0, 0, - 0, 0, 0, 1906, 3575, 3579, 3571, 3583, - 3587, 5450, 5455, 0, 1840, 3135, 3139, 3131, - 3143, 3147, 5230, 5235, 0, 0, 574, 553, - 2271, 646, 2419, 2423, 45, 2415, 2427, 2431, - 4410, 4415, 0, 0, 1948, 3855, 3859, 3851, - 3863, 3867, 5590, 5595, 0, 0, 0, 0, - 0, 1966, 3975, 3979, 3971, 3983, 3987, 5650, - 5655, 0, 0, 0, 0, 0, 1924, 3695, - 3699, 3691, 3703, 3707, 5510, 5515, 11, 385, - 0, 5, 7, 3, 9, 0, 101, 733, - 736, 730, 739, 0, 5, 7, 553, 99, + 9, 0, 0, 0, 0, 0, 0, 1888, + 3458, 3462, 3454, 3466, 3470, 5403, 5408, 0, + 0, 0, 1855, 3238, 3242, 3234, 3246, 3250, + 5293, 5298, 1870, 3338, 3342, 3334, 3346, 3350, + 5343, 5348, 0, 0, 0, 0, 0, 1936, + 3778, 3782, 3774, 3786, 3790, 5563, 5568, 0, + 1939, 3798, 3802, 3794, 3806, 3810, 5573, 5578, + 0, 1861, 3278, 3282, 3274, 3286, 3290, 5313, + 5318, 1942, 3818, 3822, 3814, 3826, 3830, 5583, + 5588, 0, 0, 0, 0, 0, 1837, 3118, + 3122, 3114, 3126, 3130, 5233, 5238, 1840, 3138, + 3142, 3134, 3146, 3150, 5243, 5248, 0, 0, + 0, 0, 0, 0, 1867, 3318, 3322, 3314, + 3326, 3330, 5333, 5338, 0, 1933, 3758, 3762, + 3754, 3766, 3770, 5553, 5558, 1822, 3018, 3022, + 0, 3014, 3026, 3030, 5183, 5188, 0, 1894, + 3498, 3502, 0, 3494, 3506, 3510, 5423, 5428, + 1903, 3558, 3562, 0, 3554, 3566, 3570, 5453, + 5458, 0, 0, 0, 0, 1906, 3578, 3582, + 3574, 3586, 3590, 5463, 5468, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1921, 3678, + 3682, 3674, 3686, 3690, 5513, 5518, 0, 0, + 1831, 3078, 3082, 3074, 3086, 3090, 5213, 5218, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1966, 3978, 3982, 3974, 3986, 3990, 5663, + 5668, 1846, 3178, 3182, 3174, 3186, 3190, 5263, + 5268, 0, 0, 0, 1891, 3478, 3482, 3474, + 3486, 3490, 5413, 5418, 1852, 3218, 3222, 3214, + 3226, 3230, 5283, 5288, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1912, 3618, + 3622, 3614, 3626, 3630, 5483, 5488, 0, 1828, + 3058, 3062, 3054, 3066, 3070, 5203, 5208, 0, + 1930, 3738, 3742, 3734, 3746, 3750, 5543, 5548, + 0, 1864, 3298, 3302, 3294, 3306, 3310, 5323, + 5328, 0, 0, 0, 1885, 3438, 3442, 3434, + 3446, 3450, 5393, 5398, 0, 0, 1957, 3918, + 3922, 3914, 3926, 3930, 5633, 5638, 0, 0, + 0, 0, 0, 1909, 3598, 3602, 3594, 3606, + 3610, 5473, 5478, 0, 1843, 3158, 3162, 3154, + 3166, 3170, 5253, 5258, 0, 0, 577, 556, + 2294, 649, 2442, 2446, 45, 2438, 2450, 2454, + 4433, 4438, 0, 0, 1951, 3878, 3882, 3874, + 3886, 3890, 5613, 5618, 0, 0, 0, 0, + 0, 1969, 3998, 4002, 3994, 4006, 4010, 5673, + 5678, 0, 0, 0, 0, 0, 1927, 3718, + 3722, 3714, 3726, 3730, 5533, 5538, 11, 385, + 0, 5, 7, 3, 9, 0, 101, 736, + 739, 733, 742, 0, 5, 7, 556, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 3, 9, 103, 745, 748, 45, 59, - 57, 55, 0, 61, 742, 751, 2447, 45, - 59, 57, 55, 0, 61, 667, 2487, 2491, - 4425, 2483, 2495, 11, 385, 11, 385, 95, + 99, 3, 9, 103, 748, 751, 45, 59, + 57, 55, 0, 61, 745, 754, 2470, 45, + 59, 57, 55, 0, 61, 670, 2510, 2514, + 4448, 2506, 2518, 11, 385, 11, 385, 95, 91, 91, 91, 0, 0, 0, 0, 0, 0, 89, 41, 39, 499, 502, 496, 505, 0, 5, 7, 3, 9, 11, 0, 385, - 4210, 511, 2187, 2195, 2179, 2203, 0, 5, - 7, 3, 9, 11, 385, 2447, 45, 59, - 57, 55, 0, 61, 667, 2487, 2491, 4425, - 2483, 2495, 11, 385, 2247, 2215, 4165, 4180, - 4150, 4195, 5724, 5748, 0, 5, 7, 3, - 9, 343, 370, 2963, 2983, 5140, 5145, 5946, - 5150, 6132, 5958, 6125, 5952, 0, 5, 7, - 346, 2019, 0, 5, 7, 346, 9, 11, - 2083, 400, 2091, 2099, 4060, 2107, 11, 349, + 4233, 511, 2190, 2198, 2182, 2206, 0, 5, + 7, 3, 9, 11, 385, 2470, 45, 59, + 57, 55, 0, 61, 670, 2510, 2514, 4448, + 2506, 2518, 11, 385, 2250, 2218, 4188, 4203, + 4173, 4218, 5747, 5771, 0, 5, 7, 3, + 9, 343, 370, 2986, 3006, 5163, 5168, 5969, + 5173, 6155, 5981, 6148, 5975, 0, 5, 7, + 346, 2022, 0, 5, 7, 346, 9, 11, + 2086, 400, 2094, 2102, 4083, 2110, 11, 349, 355, 364, 0, 5, 7, 9, 370, 11, - 2083, 2939, 0, 0, 0, 0, 0, 83, - 0, 0, 79, 2239, 508, 2183, 2191, 4140, - 2199, 6006, 2207, 4155, 4170, 5718, 4185, 0, - 5, 7, 346, 9, 11, 2083, 4215, 4200, - 5730, 5736, 5992, 5742, 6155, 5999, 0, 5, - 7, 346, 2019, 2211, 520, 4160, 4175, 4145, - 4190, 13, 352, 358, 1991, 367, 382, 4035, - 2071, 2075, 2079, 11, 373, 376, 379, 382, - 2071, 2075, 2079, 11, 373, 376, 379, 0, - 0, 1855, 3235, 3239, 3231, 3243, 3247, 5280, - 5285, 0, 0, 0, 1846, 3175, 3179, 3171, - 3183, 3187, 5250, 5255, 0, 0, 0, 1969, - 3995, 3999, 3991, 4003, 4007, 5660, 5665, 0, - 1876, 3375, 3379, 3371, 3383, 3387, 5350, 5355, - 11, 385, 400, 2091, 2099, 4070, 11, 349, - 355, 4011, 382, 2071, 2075, 11, 373, 376, - 382, 2071, 2075, 11, 373, 376, 11, 385, - 13, 352, 358, 367, 2067, 382, 2071, 2075, + 2086, 2962, 0, 0, 0, 0, 0, 83, + 0, 0, 79, 2242, 508, 2186, 2194, 4163, + 2202, 6029, 2210, 4178, 4193, 5741, 4208, 0, + 5, 7, 346, 9, 11, 2086, 4238, 4223, + 5753, 5759, 6015, 5765, 6178, 6022, 0, 5, + 7, 346, 2022, 2214, 520, 4183, 4198, 4168, + 4213, 13, 352, 358, 1994, 367, 382, 4058, + 2074, 2078, 2082, 11, 373, 376, 379, 382, + 2074, 2078, 2082, 11, 373, 376, 379, 0, + 0, 1858, 3258, 3262, 3254, 3266, 3270, 5303, + 5308, 0, 0, 0, 1849, 3198, 3202, 3194, + 3206, 3210, 5273, 5278, 0, 0, 0, 1972, + 4018, 4022, 4014, 4026, 4030, 5683, 5688, 0, + 1879, 3398, 3402, 3394, 3406, 3410, 5373, 5378, + 11, 385, 400, 2094, 2102, 4093, 11, 349, + 355, 4034, 382, 2074, 2078, 11, 373, 376, + 382, 2074, 2078, 11, 373, 376, 11, 385, + 13, 352, 358, 367, 2070, 382, 2074, 2078, 11, 373, 376, 523, 11, 385, 11, 385, - 11, 2083, 0, 418, 3, 7, 412, 2119, - 17, 415, 31, 2143, 29, 0, 451, 2123, + 11, 2086, 0, 418, 3, 7, 412, 2122, + 17, 415, 31, 2146, 29, 0, 451, 2126, 21, 23, 0, 442, 421, 19, 424, 433, - 25, 25, 4080, 427, 430, 27, 448, 688, - 67, 0, 0, 697, 700, 2511, 73, 2507, - 691, 71, 71, 2499, 2503, 4430, 694, 67, - 67, 0, 0, 700, 700, 73, 73, 69, - 1, 691, 71, 71, 2503, 2503, 694, 694, - 77, 0, 5, 7, 3, 9, 556, 553, - 4420, 13, 391, 394, 45, 59, 57, 55, - 0, 61, 4065, 397, 406, 0, 5, 7, - 2519, 9, 11, 4045, 2447, 2435, 45, 59, - 57, 55, 0, 61, 661, 2451, 2455, 4425, - 5862, 2459, 11, 385, 81, 0, 5, 7, - 3, 9, 4435, 709, 2523, 21, 23, 0, - 409, 445, 2127, 2131, 421, 19, 5670, 2135, - 0, 5, 7, 2527, 9, 11, 4050, 424, + 25, 25, 4103, 427, 430, 27, 448, 691, + 67, 0, 0, 700, 703, 2534, 73, 2530, + 694, 71, 71, 2522, 2526, 4453, 697, 67, + 67, 0, 0, 703, 703, 73, 73, 69, + 1, 694, 71, 71, 2526, 2526, 697, 697, + 77, 0, 5, 7, 3, 9, 559, 556, + 4443, 13, 391, 394, 45, 59, 57, 55, + 0, 61, 4088, 397, 406, 0, 5, 7, + 2542, 9, 11, 4068, 2470, 2458, 45, 59, + 57, 55, 0, 61, 664, 2474, 2478, 4448, + 5885, 2482, 11, 385, 81, 0, 5, 7, + 3, 9, 4458, 712, 2546, 21, 23, 0, + 409, 445, 2130, 2134, 421, 19, 5693, 2138, + 0, 5, 7, 2550, 9, 11, 4073, 424, 436, 25, 25, 427, 430, 27, 11, 385, - 0, 5, 7, 3, 9, 712, 85, 718, - 715, 2531, 2535, 5868, 2543, 2539, 724, 0, - 5, 7, 4440, 721, 2547, 2551, 9, 9, - 87, 21, 23, 0, 2139, 4085, 4090, 421, - 19, 5964, 4095, 0, 5, 7, 11, 4055, + 0, 5, 7, 3, 9, 715, 85, 721, + 718, 2554, 2558, 5891, 2566, 2562, 727, 0, + 5, 7, 4463, 724, 2570, 2574, 9, 9, + 87, 21, 23, 0, 2142, 4108, 4113, 421, + 19, 5987, 4118, 0, 5, 7, 11, 4078, 424, 439, 25, 25, 427, 430, 27, 11, - 4040, 0, 5, 7, 3, 9, 11, 385, + 4063, 0, 5, 7, 3, 9, 11, 385, 11, 385, 127, 119, 121, 123, 0, 125, 0, 5, 7, 3, 9, 1, 340, 361, 11, 385, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 880, 0, 0, - 0, 0, 0, 0, 919, 0, 0, 0, - 910, 0, 0, 0, 1033, 0, 940, 0, - 0, 0, 0, 0, 0, 1015, 0, 0, - 0, 0, 0, 0, 979, 976, 0, 0, - 934, 0, 0, 0, 886, 0, 0, 0, - 985, 0, 0, 0, 0, 0, 0, 961, - 0, 0, 0, 0, 937, 0, 0, 0, - 958, 943, 0, 0, 0, 1024, 0, 0, - 0, 0, 0, 1006, 0, 1009, 0, 0, - 0, 0, 0, 895, 0, 0, 0, 1021, - 0, 0, 0, 0, 0, 0, 0, 949, - 0, 0, 0, 916, 931, 0, 0, 0, - 0, 0, 997, 0, 1000, 0, 922, 1003, - 0, 0, 0, 0, 0, 898, 901, 0, - 0, 0, 0, 0, 0, 928, 0, 994, - 883, 0, 0, 955, 0, 964, 0, 0, - 0, 0, 0, 967, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 982, 0, 0, - 892, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1027, 907, 0, 0, 0, 952, - 913, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 973, 0, 889, 0, 991, - 0, 925, 0, 0, 0, 946, 0, 0, - 1018, 0, 0, 0, 0, 0, 970, 0, - 904, 0, 0, 559, 553, 610, 45, 0, - 0, 1012, 0, 0, 0, 0, 0, 1030, - 0, 0, 0, 0, 0, 988, 281, 279, - 1675, 1678, 1672, 1681, 2899, 5095, 5100, 0, + 0, 0, 0, 0, 0, 883, 0, 0, + 0, 0, 0, 0, 922, 0, 0, 0, + 913, 0, 0, 0, 1036, 0, 943, 0, + 0, 0, 0, 0, 0, 1018, 0, 0, + 0, 0, 0, 0, 982, 979, 0, 0, + 937, 0, 0, 0, 889, 0, 0, 0, + 988, 0, 0, 0, 0, 0, 0, 964, + 0, 0, 0, 0, 940, 0, 0, 0, + 961, 946, 0, 0, 0, 1027, 0, 0, + 0, 0, 0, 1009, 0, 1012, 0, 0, + 0, 0, 0, 898, 0, 0, 0, 1024, + 0, 0, 0, 0, 0, 0, 0, 952, + 0, 0, 0, 919, 934, 0, 0, 0, + 0, 0, 1000, 0, 1003, 0, 925, 1006, + 0, 0, 0, 0, 0, 901, 904, 0, + 0, 0, 0, 0, 0, 931, 0, 997, + 886, 0, 0, 958, 0, 967, 0, 0, + 0, 0, 0, 970, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 985, 0, 0, + 895, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1030, 910, 0, 0, 0, 955, + 916, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 976, 0, 892, 0, 994, + 0, 928, 0, 0, 0, 949, 0, 0, + 1021, 0, 0, 0, 0, 0, 973, 0, + 907, 0, 0, 562, 556, 613, 45, 0, + 0, 1015, 0, 0, 0, 0, 0, 1033, + 0, 0, 0, 0, 0, 991, 281, 279, + 1678, 1681, 1675, 1684, 2922, 5118, 5123, 0, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 9, 1684, 2007, - 2055, 175, 1051, 1054, 0, 0, 0, 0, - 1048, 1057, 2691, 4575, 4580, 0, 0, 201, - 1207, 1210, 1204, 1213, 2743, 4705, 4710, 11, + 0, 0, 0, 0, 3, 9, 1687, 2010, + 2058, 175, 1054, 1057, 0, 0, 0, 0, + 1051, 1060, 2714, 4598, 4603, 0, 0, 201, + 1210, 1213, 1207, 1216, 2766, 4728, 4733, 11, 385, 0, 0, 0, 0, 0, 0, 265, - 1591, 1594, 1588, 1597, 2871, 5025, 5030, 0, - 0, 0, 0, 0, 0, 241, 1447, 1450, - 1444, 1453, 2823, 4905, 4910, 239, 1435, 1438, - 1432, 1441, 2819, 4895, 4900, 0, 0, 211, - 1267, 1270, 1264, 1273, 2763, 4755, 4760, 0, - 0, 0, 179, 1075, 1078, 1072, 1081, 2699, - 4595, 4600, 0, 0, 0, 245, 1471, 1474, - 1468, 1477, 2831, 4925, 4930, 0, 0, 0, - 0, 0, 0, 229, 1375, 1378, 1372, 1381, - 2799, 4845, 4850, 0, 0, 0, 0, 213, - 1279, 1282, 1276, 1285, 2767, 4765, 4770, 0, - 0, 0, 227, 1363, 1366, 1360, 1369, 2795, - 4835, 4840, 217, 1303, 1306, 0, 1300, 1309, - 2775, 4785, 4790, 0, 0, 271, 1627, 1630, - 1624, 1633, 2883, 5055, 5060, 0, 0, 0, - 0, 0, 259, 1555, 1558, 1552, 1561, 2859, - 4995, 5000, 0, 261, 1567, 1570, 1564, 1573, - 2863, 5005, 5010, 0, 0, 0, 0, 0, - 185, 1111, 1114, 1108, 1117, 2711, 4625, 4630, - 0, 0, 0, 269, 1615, 1618, 1612, 1621, - 2879, 5045, 5050, 0, 0, 0, 0, 0, - 0, 0, 221, 1327, 1330, 1324, 1333, 2783, - 4805, 4810, 0, 0, 0, 199, 1195, 1198, - 1192, 1201, 2739, 4695, 4700, 209, 1255, 1258, - 1252, 1261, 2759, 4745, 4750, 0, 0, 0, - 0, 0, 253, 1519, 1522, 1516, 1525, 2847, - 4965, 4970, 0, 255, 1531, 1534, 1528, 1537, - 2851, 4975, 4980, 0, 203, 1219, 1222, 1216, - 1225, 2747, 4715, 4720, 257, 1543, 1546, 1540, - 1549, 2855, 4985, 4990, 0, 0, 0, 0, - 0, 187, 1123, 1126, 1120, 1129, 2715, 4635, - 4640, 189, 1135, 1138, 1132, 1141, 2719, 4645, - 4650, 0, 0, 0, 0, 0, 0, 207, - 1243, 1246, 1240, 1249, 2755, 4735, 4740, 0, - 251, 1507, 1510, 1504, 1513, 2843, 4955, 4960, - 177, 1063, 1066, 0, 1060, 1069, 2695, 4585, - 4590, 0, 225, 1351, 1354, 0, 1348, 1357, - 2791, 4825, 4830, 231, 1387, 1390, 0, 1384, - 1393, 2803, 4855, 4860, 0, 0, 0, 0, - 233, 1399, 1402, 1396, 1405, 2807, 4865, 4870, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 243, 1459, 1462, 1456, 1465, 2827, 4915, - 4920, 0, 0, 183, 1099, 1102, 1096, 1105, - 2707, 4615, 4620, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 273, 1639, 1642, 1636, - 1645, 2887, 5065, 5070, 193, 1159, 1162, 1156, - 1165, 2727, 4665, 4670, 0, 0, 0, 223, - 1339, 1342, 1336, 1345, 2787, 4815, 4820, 197, - 1183, 1186, 1180, 1189, 2735, 4685, 4690, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 237, 1423, 1426, 1420, 1429, 2815, 4885, - 4890, 0, 181, 1087, 1090, 1084, 1093, 2703, - 4605, 4610, 0, 249, 1495, 1498, 1492, 1501, - 2839, 4945, 4950, 0, 205, 1231, 1234, 1228, - 1237, 2751, 4725, 4730, 0, 0, 0, 219, - 1315, 1318, 1312, 1321, 2779, 4795, 4800, 0, - 0, 267, 1603, 1606, 1600, 1609, 2875, 5035, - 5040, 0, 0, 0, 0, 0, 235, 1411, - 1414, 1408, 1417, 2811, 4875, 4880, 0, 191, - 1147, 1150, 1144, 1153, 2723, 4655, 4660, 0, - 0, 553, 173, 1039, 1042, 45, 1036, 1045, - 2687, 4565, 4570, 0, 0, 263, 1579, 1582, - 1576, 1585, 2867, 5015, 5020, 0, 0, 0, - 0, 0, 275, 1651, 1654, 1648, 1657, 2891, - 5075, 5080, 0, 0, 0, 0, 0, 247, - 1483, 1486, 1480, 1489, 2835, 4935, 4940, 0, - 0, 0, 195, 1171, 1174, 1168, 1177, 2731, - 4675, 4680, 0, 0, 0, 277, 1663, 1666, - 1660, 1669, 2895, 5085, 5090, 0, 215, 1291, - 1294, 1288, 1297, 2771, 4775, 4780, 295, 0, - 5, 7, 3, 9, 562, 553, 53, 652, - 655, 45, 649, 658, 2667, 0, 5, 7, + 1594, 1597, 1591, 1600, 2894, 5048, 5053, 0, + 0, 0, 0, 0, 0, 241, 1450, 1453, + 1447, 1456, 2846, 4928, 4933, 239, 1438, 1441, + 1435, 1444, 2842, 4918, 4923, 0, 0, 211, + 1270, 1273, 1267, 1276, 2786, 4778, 4783, 0, + 0, 0, 179, 1078, 1081, 1075, 1084, 2722, + 4618, 4623, 0, 0, 0, 245, 1474, 1477, + 1471, 1480, 2854, 4948, 4953, 0, 0, 0, + 0, 0, 0, 229, 1378, 1381, 1375, 1384, + 2822, 4868, 4873, 0, 0, 0, 0, 213, + 1282, 1285, 1279, 1288, 2790, 4788, 4793, 0, + 0, 0, 227, 1366, 1369, 1363, 1372, 2818, + 4858, 4863, 217, 1306, 1309, 0, 1303, 1312, + 2798, 4808, 4813, 0, 0, 271, 1630, 1633, + 1627, 1636, 2906, 5078, 5083, 0, 0, 0, + 0, 0, 259, 1558, 1561, 1555, 1564, 2882, + 5018, 5023, 0, 261, 1570, 1573, 1567, 1576, + 2886, 5028, 5033, 0, 0, 0, 0, 0, + 185, 1114, 1117, 1111, 1120, 2734, 4648, 4653, + 0, 0, 0, 269, 1618, 1621, 1615, 1624, + 2902, 5068, 5073, 0, 0, 0, 0, 0, + 0, 0, 221, 1330, 1333, 1327, 1336, 2806, + 4828, 4833, 0, 0, 0, 199, 1198, 1201, + 1195, 1204, 2762, 4718, 4723, 209, 1258, 1261, + 1255, 1264, 2782, 4768, 4773, 0, 0, 0, + 0, 0, 253, 1522, 1525, 1519, 1528, 2870, + 4988, 4993, 0, 255, 1534, 1537, 1531, 1540, + 2874, 4998, 5003, 0, 203, 1222, 1225, 1219, + 1228, 2770, 4738, 4743, 257, 1546, 1549, 1543, + 1552, 2878, 5008, 5013, 0, 0, 0, 0, + 0, 187, 1126, 1129, 1123, 1132, 2738, 4658, + 4663, 189, 1138, 1141, 1135, 1144, 2742, 4668, + 4673, 0, 0, 0, 0, 0, 0, 207, + 1246, 1249, 1243, 1252, 2778, 4758, 4763, 0, + 251, 1510, 1513, 1507, 1516, 2866, 4978, 4983, + 177, 1066, 1069, 0, 1063, 1072, 2718, 4608, + 4613, 0, 225, 1354, 1357, 0, 1351, 1360, + 2814, 4848, 4853, 231, 1390, 1393, 0, 1387, + 1396, 2826, 4878, 4883, 0, 0, 0, 0, + 233, 1402, 1405, 1399, 1408, 2830, 4888, 4893, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 243, 1462, 1465, 1459, 1468, 2850, 4938, + 4943, 0, 0, 183, 1102, 1105, 1099, 1108, + 2730, 4638, 4643, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 273, 1642, 1645, 1639, + 1648, 2910, 5088, 5093, 193, 1162, 1165, 1159, + 1168, 2750, 4688, 4693, 0, 0, 0, 223, + 1342, 1345, 1339, 1348, 2810, 4838, 4843, 197, + 1186, 1189, 1183, 1192, 2758, 4708, 4713, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 237, 1426, 1429, 1423, 1432, 2838, 4908, + 4913, 0, 181, 1090, 1093, 1087, 1096, 2726, + 4628, 4633, 0, 249, 1498, 1501, 1495, 1504, + 2862, 4968, 4973, 0, 205, 1234, 1237, 1231, + 1240, 2774, 4748, 4753, 0, 0, 0, 219, + 1318, 1321, 1315, 1324, 2802, 4818, 4823, 0, + 0, 267, 1606, 1609, 1603, 1612, 2898, 5058, + 5063, 0, 0, 0, 0, 0, 235, 1414, + 1417, 1411, 1420, 2834, 4898, 4903, 0, 191, + 1150, 1153, 1147, 1156, 2746, 4678, 4683, 0, + 0, 556, 173, 1042, 1045, 45, 1039, 1048, + 2710, 4588, 4593, 0, 0, 263, 1582, 1585, + 1579, 1588, 2890, 5038, 5043, 0, 0, 0, + 0, 0, 275, 1654, 1657, 1651, 1660, 2914, + 5098, 5103, 0, 0, 0, 0, 0, 247, + 1486, 1489, 1483, 1492, 2858, 4958, 4963, 0, + 0, 0, 195, 1174, 1177, 1171, 1180, 2754, + 4698, 4703, 0, 0, 0, 277, 1666, 1669, + 1663, 1672, 2918, 5108, 5113, 0, 215, 1294, + 1297, 1291, 1300, 2794, 4798, 4803, 295, 0, + 5, 7, 3, 9, 565, 556, 53, 655, + 658, 45, 652, 661, 2690, 0, 5, 7, 115, 3, 9, 117, 0, 5, 7, 3, - 9, 790, 2003, 2051, 11, 385, 11, 385, - 11, 385, 0, 5, 7, 3, 9, 553, - 553, 337, 1979, 1983, 45, 1, 1975, 1987, + 9, 793, 2006, 2054, 11, 385, 11, 385, + 11, 385, 0, 5, 7, 3, 9, 556, + 556, 337, 1982, 1986, 45, 1, 1978, 1990, 0, 5, 7, 115, 3, 9, 117, 0, - 5, 7, 3, 9, 790, 2003, 2051, 11, - 385, 11, 385, 53, 652, 655, 649, 658, + 5, 7, 3, 9, 793, 2006, 2054, 11, + 385, 11, 385, 53, 655, 658, 652, 661, 11, 385, 305, 311, 311, 311, 311, 311, - 311, 311, 311, 0, 0, 0, 844, 0, - 0, 0, 0, 0, 0, 862, 0, 0, - 856, 0, 0, 0, 0, 0, 0, 0, - 0, 853, 0, 0, 0, 0, 859, 0, - 0, 568, 553, 610, 45, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 847, 0, 0, 0, 0, - 865, 0, 0, 0, 850, 303, 301, 1774, - 1777, 1771, 1780, 2927, 5105, 5110, 0, 5, + 311, 311, 311, 0, 0, 0, 847, 0, + 0, 0, 0, 0, 0, 865, 0, 0, + 859, 0, 0, 0, 0, 0, 0, 0, + 0, 856, 0, 0, 0, 0, 862, 0, + 0, 571, 556, 613, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 850, 0, 0, 0, 0, + 868, 0, 0, 0, 853, 303, 301, 1777, + 1780, 1774, 1783, 2950, 5128, 5133, 0, 5, 7, 307, 307, 307, 307, 307, 307, 307, - 307, 307, 3, 9, 1783, 2015, 2063, 0, - 0, 0, 157, 5125, 5125, 4110, 5682, 5688, - 5676, 5694, 5971, 6139, 6147, 11, 385, 0, + 307, 307, 3, 9, 1786, 2018, 2066, 0, + 0, 0, 157, 5148, 5148, 4133, 5705, 5711, + 5699, 5717, 5994, 6162, 6170, 11, 385, 0, 0, 0, 0, 0, 0, 167, 481, 481, - 487, 2163, 2167, 2159, 2171, 4115, 5700, 5706, - 481, 37, 309, 1789, 1792, 1786, 1795, 2931, - 5115, 5120, 0, 0, 163, 0, 484, 484, + 487, 2166, 2170, 2162, 2174, 4138, 5723, 5729, + 481, 37, 309, 1792, 1795, 1789, 1798, 2954, + 5138, 5143, 0, 0, 163, 0, 484, 484, 121, 123, 0, 125, 0, 119, 121, 123, 0, 125, 0, 119, 0, 0, 0, 0, - 0, 0, 0, 0, 161, 760, 0, 2155, - 2155, 2619, 766, 105, 757, 4490, 5886, 5892, - 766, 105, 5880, 5898, 6083, 6163, 6171, 757, - 0, 0, 0, 0, 165, 0, 2155, 2155, - 2643, 769, 105, 757, 4505, 5910, 5916, 769, - 105, 5904, 5922, 6090, 6179, 6187, 757, 0, - 0, 565, 553, 2395, 4390, 4395, 45, 49, - 4385, 4400, 5838, 6069, 6076, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 2935, - 2935, 490, 0, 313, 2175, 4125, 4130, 0, - 4120, 4135, 5712, 5978, 5985, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2675, 4525, 4530, 4520, - 4535, 5928, 6097, 6104, 0, 0, 0, 0, - 2679, 4550, 4555, 4545, 4560, 5934, 6111, 6118, - 0, 0, 0, 159, 0, 4540, 4540, 49, - 45, 628, 2403, 2407, 45, 2399, 2411, 4405, - 5844, 5850, 5125, 2151, 315, 553, 0, 0, - 0, 0, 0, 595, 45, 0, 0, 799, - 0, 802, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 808, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 820, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 823, 0, 0, - 0, 0, 0, 0, 0, 0, 826, 0, - 0, 0, 0, 0, 0, 829, 0, 0, - 832, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 161, 763, 0, 2158, + 2158, 2642, 769, 105, 760, 4513, 5909, 5915, + 769, 105, 5903, 5921, 6106, 6186, 6194, 760, + 0, 0, 0, 0, 165, 0, 2158, 2158, + 2666, 772, 105, 760, 4528, 5933, 5939, 772, + 105, 5927, 5945, 6113, 6202, 6210, 760, 0, + 0, 568, 556, 2418, 4413, 4418, 45, 49, + 4408, 4423, 5861, 6092, 6099, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 0, 2958, + 2958, 490, 0, 313, 2178, 4148, 4153, 0, + 4143, 4158, 5735, 6001, 6008, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2698, 4548, 4553, 4543, + 4558, 5951, 6120, 6127, 0, 0, 0, 0, + 2702, 4573, 4578, 4568, 4583, 5957, 6134, 6141, + 0, 0, 0, 159, 0, 4563, 4563, 49, + 45, 631, 2426, 2430, 45, 2422, 2434, 4428, + 5867, 5873, 5148, 2154, 315, 556, 0, 0, + 0, 0, 0, 598, 45, 0, 0, 802, + 0, 805, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 811, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 823, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 826, 0, 0, + 0, 0, 0, 0, 0, 0, 829, 0, + 0, 0, 0, 0, 0, 832, 0, 0, 835, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 838, 0, 0, 841, 0, - 0, 0, 0, 0, 0, 796, 0, 0, - 0, 0, 0, 805, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 811, - 0, 0, 814, 0, 0, 817, 317, 553, - 0, 0, 0, 0, 0, 0, 610, 45, - 0, 0, 0, 0, 0, 862, 0, 0, - 0, 0, 0, 0, 0, 0, 865, 0, - 0, 0, 859, 0, 0, 853, 0, 0, - 0, 856, 0, 0, 871, 0, 0, 0, - 850, 0, 0, 844, 0, 0, 0, 847, - 0, 0, 868, 319, 553, 0, 595, 45, - 0, 0, 0, 0, 0, 796, 763, 757, - 2599, 105, 526, 529, 526, 43, 535, 538, - 532, 541, 0, 5, 7, 526, 3, 9, - 43, 535, 538, 532, 541, 571, 0, 5, - 7, 553, 3, 9, 51, 637, 640, 45, - 634, 643, 0, 5, 7, 553, 3, 9, - 2439, 51, 637, 640, 45, 59, 57, 55, - 0, 61, 634, 643, 0, 5, 7, 553, - 3, 9, 51, 637, 640, 45, 59, 57, - 55, 0, 61, 634, 643, 0, 5, 7, - 553, 3, 9, 51, 637, 640, 45, 59, - 57, 55, 0, 61, 634, 643, 0, 5, - 7, 553, 3, 9, 631, 45, 59, 57, - 55, 0, 61, 2447, 45, 59, 57, 55, - 0, 61, 2463, 4425, 11, 385, 2447, 45, - 59, 57, 55, 0, 61, 664, 2471, 2475, - 4425, 2467, 2479, 11, 385, 2447, 45, 59, - 57, 55, 0, 61, 664, 2471, 2475, 4425, - 2467, 2479, 11, 385, 2447, 45, 59, 57, - 55, 0, 61, 664, 2471, 2475, 4425, 2467, - 2479, 11, 385, 11, 385, 11, 385, 454, + 838, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 841, 0, 0, 844, 0, + 0, 0, 0, 0, 0, 799, 0, 0, + 0, 0, 0, 808, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 814, + 0, 0, 817, 0, 0, 820, 317, 556, + 0, 0, 0, 0, 0, 0, 613, 45, + 0, 0, 0, 0, 0, 865, 0, 0, + 0, 0, 0, 0, 0, 0, 868, 0, + 0, 0, 862, 0, 0, 856, 0, 0, + 0, 859, 0, 0, 874, 0, 0, 0, + 853, 0, 0, 847, 0, 0, 0, 850, + 0, 0, 871, 319, 556, 0, 598, 45, + 0, 0, 0, 0, 0, 799, 766, 760, + 2622, 105, 526, 2254, 526, 529, 2262, 2266, + 2258, 2270, 0, 5, 7, 526, 3, 9, + 529, 2262, 2266, 2258, 2270, 574, 0, 5, + 7, 556, 3, 9, 51, 640, 643, 45, + 637, 646, 0, 5, 7, 556, 3, 9, + 2462, 51, 640, 643, 45, 59, 57, 55, + 0, 61, 637, 646, 0, 5, 7, 556, + 3, 9, 51, 640, 643, 45, 59, 57, + 55, 0, 61, 637, 646, 0, 5, 7, + 556, 3, 9, 51, 640, 643, 45, 59, + 57, 55, 0, 61, 637, 646, 0, 5, + 7, 556, 3, 9, 634, 45, 59, 57, + 55, 0, 61, 2470, 45, 59, 57, 55, + 0, 61, 2486, 4448, 11, 385, 2470, 45, + 59, 57, 55, 0, 61, 667, 2494, 2498, + 4448, 2490, 2502, 11, 385, 2470, 45, 59, + 57, 55, 0, 61, 667, 2494, 2498, 4448, + 2490, 2502, 11, 385, 2470, 45, 59, 57, + 55, 0, 61, 667, 2494, 2498, 4448, 2490, + 2502, 11, 385, 11, 385, 11, 385, 454, 35, 469, 472, 466, 475, 454, 0, 5, - 7, 3, 9, 463, 11, 385, 526, 43, - 535, 538, 532, 541, 0, 5, 7, 526, - 3, 9, 529, 11, 385, 553, 49, 616, - 619, 45, 613, 622, 0, 5, 7, 526, - 3, 9, 529, 11, 385, 2515, 706, 35, - 469, 472, 466, 475, 2147, 4100, 4105, 454, - 0, 5, 7, 3, 9, 703, 1999, 2047, - 11, 385, 757, 2623, 105, 1762, 2903, 283, - 1690, 1693, 45, 1687, 1696, 0, 5, 7, - 553, 0, 0, 3, 9, 287, 1714, 1717, - 45, 1711, 1720, 0, 5, 7, 4380, 3, - 9, 577, 2303, 2307, 0, 45, 2299, 2311, + 7, 3, 9, 463, 11, 385, 526, 529, + 2262, 2266, 2258, 2270, 0, 5, 7, 526, + 3, 9, 2254, 11, 385, 556, 49, 619, + 622, 45, 616, 625, 0, 5, 7, 526, + 3, 9, 2254, 11, 385, 2538, 709, 35, + 469, 472, 466, 475, 2150, 4123, 4128, 454, + 0, 5, 7, 3, 9, 706, 2002, 2050, + 11, 385, 760, 2646, 105, 1765, 2926, 283, + 1693, 1696, 45, 1690, 1699, 0, 5, 7, + 556, 0, 0, 3, 9, 287, 1717, 1720, + 45, 1714, 1723, 0, 5, 7, 4403, 3, + 9, 580, 2326, 2330, 0, 45, 2322, 2334, 0, 5, 7, 3, 9, 0, 5, 7, - 3, 9, 553, 285, 1702, 1705, 45, 1699, - 1708, 0, 5, 7, 553, 0, 0, 3, - 9, 289, 1726, 1729, 45, 1723, 1732, 0, - 5, 7, 4380, 3, 9, 580, 2319, 2323, - 0, 45, 2315, 2327, 0, 5, 7, 3, - 9, 0, 5, 7, 3, 9, 0, 4375, - 5940, 583, 2335, 2339, 0, 45, 583, 2331, - 2343, 4355, 5790, 5796, 0, 5, 7, 4375, - 3, 9, 1759, 2011, 2059, 586, 2351, 2355, - 0, 45, 586, 2347, 2359, 4360, 5802, 5808, - 0, 5, 7, 4375, 3, 9, 2011, 2059, - 589, 2367, 2371, 0, 45, 589, 2363, 2375, - 4365, 5814, 5820, 0, 5, 7, 4375, 3, - 9, 2011, 2059, 592, 2383, 2387, 0, 45, - 2379, 2391, 4370, 5826, 5832, 0, 5, 7, - 3, 9, 2011, 2059, 11, 385, 2295, 4340, - 4345, 4230, 4335, 4350, 5784, 6055, 6062, 550, - 11, 385, 2291, 4320, 4325, 4230, 2291, 4315, - 4330, 5778, 6041, 6048, 550, 11, 385, 2287, - 4300, 4305, 4230, 2287, 4295, 4310, 5772, 6027, - 6034, 550, 11, 385, 2283, 4280, 4285, 4230, - 2283, 4275, 4290, 5766, 6013, 6020, 550, 11, - 385, 293, 1750, 1753, 1747, 1756, 11, 385, - 2279, 4260, 4265, 4230, 4255, 4270, 550, 11, - 385, 11, 385, 11, 385, 291, 1738, 1741, - 1735, 1744, 11, 385, 2275, 4240, 4245, 4230, - 4235, 4250, 550, 11, 385, 11, 385, 553, - 49, 616, 619, 45, 613, 622, 0, 5, - 7, 553, 3, 9, 49, 616, 619, 45, - 613, 622, 0, 5, 7, 553, 3, 9, - 49, 616, 619, 45, 613, 622, 0, 5, - 7, 526, 3, 9, 529, 11, 385, 11, - 385, 11, 385, 553, 49, 616, 619, 45, - 613, 622, 0, 5, 7, 553, 3, 9, - 49, 616, 619, 45, 613, 622, 454, 0, + 3, 9, 556, 285, 1705, 1708, 45, 1702, + 1711, 0, 5, 7, 556, 0, 0, 3, + 9, 289, 1729, 1732, 45, 1726, 1735, 0, + 5, 7, 4403, 3, 9, 583, 2342, 2346, + 0, 45, 2338, 2350, 0, 5, 7, 3, + 9, 0, 5, 7, 3, 9, 0, 4398, + 5963, 586, 2358, 2362, 0, 45, 586, 2354, + 2366, 4378, 5813, 5819, 0, 5, 7, 4398, + 3, 9, 1762, 2014, 2062, 589, 2374, 2378, + 0, 45, 589, 2370, 2382, 4383, 5825, 5831, + 0, 5, 7, 4398, 3, 9, 2014, 2062, + 592, 2390, 2394, 0, 45, 592, 2386, 2398, + 4388, 5837, 5843, 0, 5, 7, 4398, 3, + 9, 2014, 2062, 595, 2406, 2410, 0, 45, + 2402, 2414, 4393, 5849, 5855, 0, 5, 7, + 3, 9, 2014, 2062, 11, 385, 2318, 4363, + 4368, 4253, 4358, 4373, 5807, 6078, 6085, 553, + 11, 385, 2314, 4343, 4348, 4253, 2314, 4338, + 4353, 5801, 6064, 6071, 553, 11, 385, 2310, + 4323, 4328, 4253, 2310, 4318, 4333, 5795, 6050, + 6057, 553, 11, 385, 2306, 4303, 4308, 4253, + 2306, 4298, 4313, 5789, 6036, 6043, 553, 11, + 385, 293, 1753, 1756, 1750, 1759, 11, 385, + 2302, 4283, 4288, 4253, 4278, 4293, 553, 11, + 385, 11, 385, 11, 385, 291, 1741, 1744, + 1738, 1747, 11, 385, 2298, 4263, 4268, 4253, + 4258, 4273, 553, 11, 385, 11, 385, 556, + 49, 619, 622, 45, 616, 625, 0, 5, + 7, 556, 3, 9, 49, 619, 622, 45, + 616, 625, 0, 5, 7, 556, 3, 9, + 49, 619, 622, 45, 616, 625, 0, 5, + 7, 526, 3, 9, 2254, 11, 385, 11, + 385, 11, 385, 556, 49, 619, 622, 45, + 616, 625, 0, 5, 7, 556, 3, 9, + 49, 619, 622, 45, 616, 625, 454, 0, 5, 7, 3, 9, 35, 469, 472, 466, 475, 454, 0, 5, 7, 3, 9, 35, 469, 472, 466, 475, 454, 0, 5, 7, 3, 9, 35, 469, 472, 466, 475, 0, - 5, 7, 526, 3, 9, 529, 11, 385, + 5, 7, 526, 3, 9, 2254, 11, 385, 11, 385, 11, 385, 11, 385, 11, 385, - 323, 0, 5, 7, 3, 9, 553, 49, - 616, 619, 45, 613, 622, 0, 5, 7, + 323, 0, 5, 7, 3, 9, 556, 49, + 619, 622, 45, 616, 625, 0, 5, 7, 321, 3, 9, 0, 5, 7, 3, 9, 129, 1, 11, 385, 11, 385, 11, 385, - 784, 0, 772, 5, 7, 775, 778, 3, - 9, 1, 340, 361, 111, 113, 0, 2591, - 757, 105, 107, 553, 781, 2655, 2659, 45, - 2651, 2663, 2647, 4510, 4515, 11, 385, 0, - 757, 105, 109, 553, 49, 616, 619, 45, - 613, 622, 0, 5, 7, 321, 3, 9, - 0, 5, 7, 3, 9, 553, 47, 601, - 604, 45, 598, 607, 787, 0, 5, 7, + 787, 0, 775, 5, 7, 778, 781, 3, + 9, 1, 340, 361, 111, 113, 0, 2614, + 760, 105, 107, 556, 784, 2678, 2682, 45, + 2674, 2686, 2670, 4533, 4538, 11, 385, 0, + 760, 105, 109, 556, 49, 619, 622, 45, + 616, 625, 0, 5, 7, 321, 3, 9, + 0, 5, 7, 3, 9, 556, 47, 604, + 607, 45, 601, 610, 790, 0, 5, 7, 115, 3, 9, 117, 0, 5, 7, 3, 9, 1, 340, 361, 11, 385, 11, 385, - 11, 385, 11, 385, 553, 47, 601, 604, - 45, 598, 607, 0, 5, 7, 553, 3, - 9, 47, 601, 604, 45, 598, 607, 0, + 11, 385, 11, 385, 556, 47, 604, 607, + 45, 601, 610, 0, 5, 7, 556, 3, + 9, 47, 604, 607, 45, 601, 610, 0, 5, 7, 115, 3, 9, 117, 0, 5, 7, 3, 9, 1, 340, 361, 11, 385, - 11, 385, 11, 385, 553, 47, 601, 604, - 45, 598, 607, 874, 0, 5, 7, 147, + 11, 385, 11, 385, 556, 47, 604, 607, + 45, 601, 610, 877, 0, 5, 7, 147, 149, 151, 153, 3, 9, 0, 5, 7, - 3, 9, 2263, 553, 47, 601, 604, 45, - 598, 607, 0, 5, 7, 0, 3, 9, - 2683, 0, 5, 7, 0, 5, 7, 0, + 3, 9, 2286, 556, 47, 604, 607, 45, + 601, 610, 0, 5, 7, 0, 3, 9, + 2706, 0, 5, 7, 0, 5, 7, 0, 5, 7, 1, 3, 9, 340, 361, 3, - 9, 340, 361, 3, 9, 340, 361, 877, + 9, 340, 361, 3, 9, 340, 361, 880, 129, 11, 385, 11, 385, 11, 385, 11, 385, 11, 385, 0, 5, 7, 3, 9, - 553, 47, 601, 604, 45, 598, 607, 2595, - 0, 5, 7, 757, 3, 9, 4475, 105, - 766, 2607, 2611, 766, 2607, 2611, 766, 2607, - 2611, 2599, 2603, 2615, 4480, 4485, 2603, 2615, - 4480, 4485, 2603, 2615, 4480, 4485, 11, 385, - 11, 385, 0, 5, 7, 3, 9, 553, - 47, 601, 604, 45, 598, 607, 0, 5, - 7, 757, 3, 9, 105, 769, 2631, 2635, - 769, 2631, 2635, 769, 2631, 2635, 2623, 2627, - 2639, 4495, 4500, 2627, 2639, 4495, 4500, 2627, - 2639, 4495, 4500, 11, 385, 11, 385, 0, - 5, 7, 3, 9, 553, 47, 601, 604, - 45, 598, 607, 0, 5, 7, 526, 3, - 9, 43, 535, 538, 43, 535, 538, 43, - 535, 538, 529, 532, 541, 2251, 2255, 532, - 541, 2251, 2255, 532, 541, 2251, 2255, 11, + 556, 47, 604, 607, 45, 601, 610, 2618, + 0, 5, 7, 760, 3, 9, 4498, 105, + 769, 2630, 2634, 769, 2630, 2634, 769, 2630, + 2634, 2622, 2626, 2638, 4503, 4508, 2626, 2638, + 4503, 4508, 2626, 2638, 4503, 4508, 11, 385, + 11, 385, 0, 5, 7, 3, 9, 556, + 47, 604, 607, 45, 601, 610, 0, 5, + 7, 760, 3, 9, 105, 772, 2654, 2658, + 772, 2654, 2658, 772, 2654, 2658, 2646, 2650, + 2662, 4518, 4523, 2650, 2662, 4518, 4523, 2650, + 2662, 4518, 4523, 11, 385, 11, 385, 0, + 5, 7, 3, 9, 556, 47, 604, 607, + 45, 601, 610, 0, 5, 7, 526, 3, + 9, 43, 538, 541, 43, 538, 541, 43, + 538, 541, 532, 535, 544, 2274, 2278, 535, + 544, 2274, 2278, 535, 544, 2274, 2278, 11, 385, 11, 385, 11, 385, 171, 0, 5, 7, 3, 9, 321, 0, 5, 7, 3, - 9, 553, 47, 601, 604, 45, 598, 607, - 0, 5, 7, 553, 3, 9, 51, 637, - 640, 45, 634, 643, 685, 0, 5, 7, - 670, 3, 9, 65, 676, 679, 63, 673, - 682, 0, 5, 7, 670, 3, 9, 65, - 676, 679, 63, 673, 682, 0, 5, 7, - 553, 3, 9, 49, 616, 619, 45, 613, - 622, 0, 5, 7, 526, 3, 9, 43, - 535, 538, 532, 541, 0, 5, 7, 129, + 9, 556, 47, 604, 607, 45, 601, 610, + 0, 5, 7, 556, 3, 9, 51, 640, + 643, 45, 637, 646, 688, 0, 5, 7, + 673, 3, 9, 65, 679, 682, 63, 676, + 685, 0, 5, 7, 673, 3, 9, 65, + 679, 682, 63, 676, 685, 0, 5, 7, + 556, 3, 9, 49, 619, 622, 45, 616, + 625, 0, 5, 7, 526, 3, 9, 529, + 2262, 2266, 2258, 2270, 0, 5, 7, 129, 3, 9, 1, 11, 385, 11, 385, 11, 385, 11, 385, 11, 385, 11, 385, 11, - 385, 11, 385, 526, 544, 1, 553, 49, - 616, 619, 45, 613, 622, 0, 5, 7, - 553, 3, 9, 47, 601, 604, 45, 598, - 607, 0, 5, 7, 321, 3, 9, 0, + 385, 11, 385, 526, 547, 1, 556, 49, + 619, 622, 45, 616, 625, 0, 5, 7, + 556, 3, 9, 47, 604, 607, 45, 601, + 610, 0, 5, 7, 321, 3, 9, 0, 5, 7, 3, 9, 129, 1, 11, 385, - 11, 385, 11, 385, 129, 1, 553, 47, - 601, 604, 45, 598, 607, 0, 5, 7, - 553, 3, 9, 47, 601, 604, 45, 598, - 607, 0, 5, 7, 553, 3, 9, 49, - 616, 619, 45, 613, 622, 0, 5, 7, + 11, 385, 11, 385, 129, 1, 556, 47, + 604, 607, 45, 601, 610, 0, 5, 7, + 556, 3, 9, 47, 604, 607, 45, 601, + 610, 0, 5, 7, 556, 3, 9, 49, + 619, 622, 45, 616, 625, 0, 5, 7, 33, 457, 3, 9, 35, 469, 472, 466, - 475, 793, 0, 5, 7, 460, 3, 9, + 475, 796, 0, 5, 7, 460, 3, 9, 133, 135, 0, 137, 139, 0, 141, 0, 143, 145, 0, 478, 131, 1, 0, 0, 11, 385, 117, 115, 11, 385, 11, 385, - 11, 385, 553, 47, 601, 604, 45, 598, - 607, 0, 5, 7, 553, 3, 9, 47, - 601, 604, 45, 598, 607, 0, 5, 7, - 553, 3, 9, 49, 616, 619, 45, 613, - 622, 0, 5, 7, 33, 457, 3, 9, + 11, 385, 556, 47, 604, 607, 45, 601, + 610, 0, 5, 7, 556, 3, 9, 47, + 604, 607, 45, 601, 610, 0, 5, 7, + 556, 3, 9, 49, 619, 622, 45, 616, + 625, 0, 5, 7, 33, 457, 3, 9, 463, 117, 115, 11, 385, 11, 385, 11, - 385, 553, 47, 601, 604, 45, 598, 607, - 0, 5, 7, 553, 3, 9, 47, 601, - 604, 45, 598, 607, 0, 5, 7, 553, - 3, 9, 47, 601, 604, 45, 598, 607, + 385, 556, 47, 604, 607, 45, 601, 610, + 0, 5, 7, 556, 3, 9, 47, 604, + 607, 45, 601, 610, 0, 5, 7, 556, + 3, 9, 47, 604, 607, 45, 601, 610, 0, 5, 7, 115, 3, 9, 117, 0, 5, 7, 3, 9, 1, 340, 361, 11, - 385, 11, 385, 11, 385, 11, 385, 553, - 51, 637, 640, 45, 634, 643, 0, 5, - 7, 553, 3, 9, 625, 45, 1, 11, - 385, 553, 51, 637, 640, 45, 634, 643, - 0, 5, 7, 553, 3, 9, 47, 601, - 604, 45, 598, 607, 0, 5, 7, 553, - 3, 9, 47, 601, 604, 45, 598, 607, + 385, 11, 385, 11, 385, 11, 385, 556, + 51, 640, 643, 45, 637, 646, 0, 5, + 7, 556, 3, 9, 628, 45, 1, 11, + 385, 556, 51, 640, 643, 45, 637, 646, + 0, 5, 7, 556, 3, 9, 47, 604, + 607, 45, 601, 610, 0, 5, 7, 556, + 3, 9, 47, 604, 607, 45, 601, 610, 0, 5, 7, 115, 3, 9, 117, 0, 5, 7, 3, 9, 1, 340, 361, 11, - 385, 11, 385, 11, 385, 11, 385, 553, - 49, 616, 619, 45, 613, 622, 0, 5, - 7, 757, 3, 9, 2599, 105, 11, 385, - 553, 49, 616, 619, 45, 613, 622, 0, - 5, 7, 1768, 3, 9, 117, 115, 117, - 2671, 299, 115, 117, 115, 117, 2923, 2919, - 11, 385, 1765, 117, 2915, 297, 115, 117, - 2907, 1765, 117, 297, 115, 117, 2911, 553, - 49, 616, 619, 45, 613, 622, 0, 5, - 7, 553, 3, 9, 49, 616, 619, 45, - 613, 622, 75, 0, 5, 7, 3, 9, - 1, 11, 385, 11, 385, 553, 47, 601, - 604, 45, 598, 607, 454, 0, 5, 7, + 385, 11, 385, 11, 385, 11, 385, 556, + 49, 619, 622, 45, 616, 625, 0, 5, + 7, 760, 3, 9, 2622, 105, 11, 385, + 556, 49, 619, 622, 45, 616, 625, 0, + 5, 7, 1771, 3, 9, 117, 115, 117, + 2694, 299, 115, 117, 115, 117, 2946, 2942, + 11, 385, 1768, 117, 2938, 297, 115, 117, + 2930, 1768, 117, 297, 115, 117, 2934, 556, + 49, 619, 622, 45, 616, 625, 0, 5, + 7, 556, 3, 9, 49, 619, 622, 45, + 616, 625, 75, 0, 5, 7, 3, 9, + 1, 11, 385, 11, 385, 556, 47, 604, + 607, 45, 601, 610, 454, 0, 5, 7, 3, 9, 35, 469, 472, 466, 475, 75, 0, 5, 7, 3, 9, 1, 11, 385, - 11, 385, 553, 49, 616, 619, 45, 613, - 622, 0, 5, 7, 526, 3, 9, 547, + 11, 385, 556, 49, 619, 622, 45, 616, + 625, 0, 5, 7, 526, 3, 9, 550, 1, 11, 385, 171, 0, 5, 7, 3, - 9, 325, 0, 5, 7, 3, 9, 553, - 49, 616, 619, 45, 613, 622, 0, 5, - 7, 526, 3, 9, 529, 11, 385, 11, - 385, 11, 385, 517, 514, 0, 2223, 2227, - 493, 388, 397, 2219, 2231, 514, 329, 2027, - 2035, 2951, 2959, 1995, 2043, 2943, 2947, 4020, - 4030, 2243, 514, 2027, 2035, 2571, 2571, 2571, - 2571, 2571, 2571, 2571, 2571, 2571, 2571, 2571, - 2571, 2571, 2571, 2571, 2571, 2571, 2571, 1995, - 2043, 4205, 4220, 4465, 4465, 4465, 4465, 4465, - 4465, 4465, 4465, 4465, 4465, 4465, 4465, 4465, - 4465, 4465, 4465, 4465, 4465, 2235, 2567, 93, - 4450, 4455, 2563, 2555, 2559, 4445, 4460, 2027, - 2035, 1995, 2043, 403, 2095, 2103, 4075, 2111, - 403, 2023, 2031, 2039, 4025, 5754, 5760, 5874, - 5874, 5874, 5874, 5874, 5874, 5874, 5874, 5874, - 5874, 5874, 5874, 5874, 5874, 5874, 5874, 5874, - 5874, 4015 + 9, 325, 0, 5, 7, 3, 9, 556, + 49, 619, 622, 45, 616, 625, 0, 5, + 7, 526, 3, 9, 532, 11, 385, 11, + 385, 11, 385, 517, 514, 0, 2226, 2230, + 493, 388, 397, 2222, 2234, 514, 329, 2030, + 2038, 2974, 2982, 1998, 2046, 2966, 2970, 4043, + 4053, 2246, 514, 2030, 2038, 2594, 2594, 2594, + 2594, 2594, 2594, 2594, 2594, 2594, 2594, 2594, + 2594, 2594, 2594, 2594, 2594, 2594, 2594, 1998, + 2046, 4228, 4243, 4488, 4488, 4488, 4488, 4488, + 4488, 4488, 4488, 4488, 4488, 4488, 4488, 4488, + 4488, 4488, 4488, 4488, 4488, 2238, 2590, 93, + 4473, 4478, 2586, 2578, 2582, 4468, 4483, 2030, + 2038, 1998, 2046, 403, 2098, 2106, 4098, 2114, + 403, 2026, 2034, 2042, 4048, 5777, 5783, 5897, + 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, + 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, + 5897, 4038 }; static const short _zone_scanner_eof_actions[] = { - 0, 2267, 2443, 335, 1813, 327, 1798, 15, - 15, 327, 327, 1798, 1798, 1798, 4225, 5856, - 1810, 335, 335, 1813, 1798, 1798, 335, 335, - 335, 335, 335, 1813, 1813, 335, 335, 1813, - 335, 335, 335, 1813, 335, 335, 335, 1813, - 335, 335, 335, 335, 1813, 335, 335, 335, - 1813, 335, 335, 335, 1813, 1813, 335, 335, - 1813, 335, 335, 335, 335, 1813, 335, 1813, - 335, 335, 335, 335, 1813, 335, 335, 335, - 1813, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 1813, 335, 335, 1813, 1813, - 335, 335, 1813, 335, 1813, 335, 1813, 1813, - 335, 335, 335, 335, 1813, 1813, 335, 335, - 335, 335, 1813, 335, 1813, 1813, 335, 1813, - 1813, 335, 335, 335, 335, 1813, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 1813, - 335, 335, 1813, 335, 335, 335, 335, 335, - 335, 1813, 1813, 335, 335, 335, 1813, 1813, - 335, 335, 335, 335, 335, 1813, 335, 1813, - 335, 1813, 335, 1813, 335, 335, 335, 1813, - 335, 335, 1813, 335, 335, 335, 1813, 335, - 1813, 335, 335, 574, 2271, 335, 335, 1813, - 335, 335, 335, 335, 335, 1813, 335, 335, - 335, 335, 335, 1813, 335, 2267, 335, 335, - 574, 2443, 2443, 2443, 2443, 335, 15, 95, + 0, 2290, 2466, 335, 1816, 327, 1801, 15, + 15, 327, 327, 1801, 1801, 1801, 4248, 5879, + 1813, 335, 335, 1816, 1801, 1801, 335, 335, + 335, 335, 335, 1816, 1816, 335, 335, 1816, + 335, 335, 335, 1816, 335, 335, 335, 1816, + 335, 335, 335, 335, 1816, 335, 335, 335, + 1816, 335, 335, 335, 1816, 1816, 335, 335, + 1816, 335, 335, 335, 335, 1816, 335, 1816, + 335, 335, 335, 335, 1816, 335, 335, 335, + 1816, 335, 335, 335, 335, 335, 335, 335, + 335, 335, 335, 1816, 335, 335, 1816, 1816, + 335, 335, 1816, 335, 1816, 335, 1816, 1816, + 335, 335, 335, 335, 1816, 1816, 335, 335, + 335, 335, 1816, 335, 1816, 1816, 335, 1816, + 1816, 335, 335, 335, 335, 1816, 335, 335, + 335, 335, 335, 335, 335, 335, 335, 1816, + 335, 335, 1816, 335, 335, 335, 335, 335, + 335, 1816, 1816, 335, 335, 335, 1816, 1816, + 335, 335, 335, 335, 335, 1816, 335, 1816, + 335, 1816, 335, 1816, 335, 335, 335, 1816, + 335, 335, 1816, 335, 335, 335, 1816, 335, + 1816, 335, 335, 577, 2294, 335, 335, 1816, + 335, 335, 335, 335, 335, 1816, 335, 335, + 335, 335, 335, 1816, 335, 2290, 335, 335, + 577, 2466, 2466, 2466, 2466, 335, 15, 95, 95, 95, 95, 95, 95, 95, 95, 41, - 574, 0, 4210, 574, 335, 2443, 2443, 2443, - 335, 2247, 2271, 2963, 1798, 2267, 15, 1798, - 15, 4225, 2963, 2963, 2963, 2963, 2963, 2963, - 2963, 2963, 2963, 2963, 2963, 2963, 2963, 2963, - 2963, 2963, 2963, 1798, 2939, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 2239, 6006, - 2267, 1810, 4215, 4225, 4215, 4215, 4215, 4215, - 4215, 4215, 4215, 4215, 4215, 4215, 4215, 4215, - 4215, 4215, 4215, 4215, 4215, 520, 4225, 1798, - 15, 1798, 1798, 335, 335, 1813, 335, 335, - 335, 1813, 335, 335, 335, 1813, 335, 1813, - 1798, 1798, 15, 1798, 1798, 1798, 1798, 327, - 4225, 1798, 1798, 523, 523, 523, 523, 523, + 577, 0, 4233, 577, 335, 2466, 2466, 2466, + 335, 2250, 2294, 2986, 1801, 2290, 15, 1801, + 15, 4248, 2986, 2986, 2986, 2986, 2986, 2986, + 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, + 2986, 2986, 2986, 1801, 2962, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 2242, 6029, + 2290, 1813, 4238, 4248, 4238, 4238, 4238, 4238, + 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238, + 4238, 4238, 4238, 4238, 4238, 520, 4248, 1801, + 15, 1801, 1801, 335, 335, 1816, 335, 335, + 335, 1816, 335, 335, 335, 1816, 335, 1816, + 1801, 1801, 15, 1801, 1801, 1801, 1801, 327, + 4248, 1801, 1801, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, - 523, 523, 523, 523, 15, 1810, 523, 1810, + 523, 523, 523, 523, 15, 1813, 523, 1813, 0, 0, 0, 31, 31, 31, 433, 433, - 433, 433, 31, 31, 688, 688, 2507, 2507, - 2507, 2507, 688, 688, 69, 2507, 2507, 2507, - 2507, 77, 556, 4420, 406, 406, 4420, 2435, - 4420, 77, 81, 81, 81, 409, 409, 409, + 433, 433, 31, 31, 691, 691, 2530, 2530, + 2530, 2530, 691, 691, 69, 2530, 2530, 2530, + 2530, 77, 559, 4443, 406, 406, 4443, 2458, + 4443, 77, 81, 81, 81, 409, 409, 409, 436, 436, 436, 436, 409, 81, 0, 85, - 718, 724, 87, 724, 15, 15, 439, 439, - 439, 439, 724, 15, 87, 0, 0, 127, + 721, 727, 87, 727, 15, 15, 439, 439, + 439, 439, 727, 15, 87, 0, 0, 127, 127, 127, 127, 127, 127, 127, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, @@ -6375,7 +6378,7 @@ static const short _zone_scanner_eof_actions[] = { 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 559, 559, 169, 169, 169, 169, + 169, 169, 562, 562, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, @@ -6400,13 +6403,13 @@ static const short _zone_scanner_eof_actions[] = { 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 295, 562, 562, 2667, 2667, 2667, - 2667, 295, 295, 295, 562, 562, 2667, 2667, - 2667, 2667, 295, 562, 295, 305, 305, 305, + 281, 281, 295, 565, 565, 2690, 2690, 2690, + 2690, 295, 295, 295, 565, 565, 2690, 2690, + 2690, 2690, 295, 565, 295, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 568, 568, 305, 305, 305, + 305, 305, 305, 571, 571, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 303, 303, 303, @@ -6415,15 +6418,15 @@ static const short _zone_scanner_eof_actions[] = { 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, - 303, 760, 760, 760, 760, 760, 760, 303, - 303, 303, 303, 303, 760, 760, 760, 760, - 760, 760, 303, 303, 565, 565, 303, 303, + 303, 763, 763, 763, 763, 763, 763, 303, + 303, 303, 303, 303, 763, 763, 763, 763, + 763, 763, 303, 303, 568, 568, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 565, 565, - 565, 565, 303, 303, 315, 315, 315, 315, + 303, 303, 303, 303, 303, 303, 568, 568, + 568, 568, 303, 303, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, @@ -6442,57 +6445,57 @@ static const short _zone_scanner_eof_actions[] = { 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 319, 319, 319, - 319, 319, 319, 319, 319, 763, 763, 327, - 327, 327, 327, 327, 327, 571, 571, 571, - 2439, 571, 2439, 571, 2439, 571, 2439, 2439, - 2439, 2439, 327, 2439, 2439, 2439, 327, 2439, - 2439, 2439, 327, 2439, 2439, 2439, 327, 327, + 319, 319, 319, 319, 319, 766, 766, 327, + 327, 327, 327, 327, 327, 574, 574, 574, + 2462, 574, 2462, 574, 2462, 574, 2462, 2462, + 2462, 2462, 327, 2462, 2462, 2462, 327, 2462, + 2462, 2462, 327, 2462, 2462, 2462, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 571, 571, 327, 327, 327, - 706, 706, 706, 706, 763, 763, 1762, 1762, - 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, - 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, - 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, - 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, - 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, - 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, - 1762, 1762, 1762, 1762, 1762, 571, 571, 571, - 571, 571, 571, 327, 327, 327, 327, 327, - 571, 571, 571, 571, 327, 327, 327, 327, + 327, 327, 327, 574, 574, 327, 327, 327, + 709, 709, 709, 709, 766, 766, 1765, 1765, + 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, + 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, + 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, + 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, + 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, + 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, + 1765, 1765, 1765, 1765, 1765, 574, 574, 574, + 574, 574, 574, 327, 327, 327, 327, 327, + 574, 574, 574, 574, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 571, 571, 327, 327, 327, - 327, 327, 327, 327, 784, 784, 784, 2591, - 2591, 784, 784, 327, 784, 2591, 2591, 571, - 571, 327, 327, 571, 571, 787, 787, 787, - 787, 327, 327, 327, 571, 571, 571, 571, - 787, 787, 787, 787, 327, 327, 571, 571, - 874, 874, 2263, 2263, 874, 2683, 877, 877, - 877, 877, 877, 877, 877, 874, 874, 874, - 2263, 2263, 2595, 4475, 874, 874, 874, 2263, - 2263, 2595, 4475, 874, 874, 874, 2263, 2263, - 874, 2683, 874, 874, 327, 327, 327, 327, - 327, 571, 571, 571, 571, 685, 685, 685, - 685, 571, 571, 327, 327, 327, 327, 327, + 327, 327, 327, 574, 574, 327, 327, 327, + 327, 327, 327, 327, 787, 787, 787, 2614, + 2614, 787, 787, 327, 787, 2614, 2614, 574, + 574, 327, 327, 574, 574, 790, 790, 790, + 790, 327, 327, 327, 574, 574, 574, 574, + 790, 790, 790, 790, 327, 327, 574, 574, + 877, 877, 2286, 2286, 877, 2706, 880, 880, + 880, 880, 880, 880, 880, 877, 877, 877, + 2286, 2286, 2618, 4498, 877, 877, 877, 2286, + 2286, 2618, 4498, 877, 877, 877, 2286, 2286, + 877, 2706, 877, 877, 327, 327, 327, 327, + 327, 574, 574, 574, 574, 688, 688, 688, + 688, 574, 574, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 571, 571, 571, 571, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 571, - 571, 571, 571, 571, 571, 787, 787, 793, - 793, 793, 793, 793, 793, 793, 793, 793, - 327, 793, 793, 793, 793, 793, 327, 787, - 787, 327, 327, 327, 571, 571, 571, 571, - 571, 571, 787, 787, 787, 787, 327, 327, - 327, 571, 571, 571, 571, 571, 571, 787, - 787, 787, 787, 327, 327, 327, 571, 571, - 571, 571, 327, 327, 571, 571, 571, 571, - 571, 571, 787, 787, 787, 787, 327, 327, - 327, 571, 571, 763, 763, 327, 571, 571, - 787, 787, 787, 787, 2671, 787, 787, 787, - 787, 2923, 327, 787, 787, 2915, 787, 787, - 2915, 787, 787, 2915, 787, 787, 2915, 571, - 571, 571, 571, 327, 327, 327, 327, 571, - 571, 327, 327, 327, 327, 327, 327, 571, - 571, 327, 327, 327, 327, 327, 327, 327, - 327, 571, 571, 327, 327, 327, 327, 327, + 327, 327, 574, 574, 574, 574, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 574, + 574, 574, 574, 574, 574, 790, 790, 796, + 796, 796, 796, 796, 796, 796, 796, 796, + 327, 796, 796, 796, 796, 796, 327, 790, + 790, 327, 327, 327, 574, 574, 574, 574, + 574, 574, 790, 790, 790, 790, 327, 327, + 327, 574, 574, 574, 574, 574, 574, 790, + 790, 790, 790, 327, 327, 327, 574, 574, + 574, 574, 327, 327, 574, 574, 574, 574, + 574, 574, 790, 790, 790, 790, 327, 327, + 327, 574, 574, 766, 766, 327, 574, 574, + 790, 790, 790, 790, 2694, 790, 790, 790, + 790, 2946, 327, 790, 790, 2938, 790, 790, + 2938, 790, 790, 2938, 790, 790, 2938, 574, + 574, 574, 574, 327, 327, 327, 327, 574, + 574, 327, 327, 327, 327, 327, 327, 574, + 574, 327, 327, 327, 327, 327, 327, 327, + 327, 574, 574, 327, 327, 327, 327, 327, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7367,10 +7370,17 @@ _match: break; case 35: { - rdata_tail += s->dname_tmp_length; + if (s->to_lower) { + dname_to_lower(s->dname); + } } break; case 36: + { + rdata_tail += s->dname_tmp_length; + } + break; + case 37: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -7386,33 +7396,33 @@ _match: } } break; - case 37: + case 38: { s->number64 = 0; } break; - case 38: + case 39: { WARN(ZS_BAD_NUMBER); p--; {cs = 329;goto _again;} } break; - case 39: + case 40: { s->decimal_counter = 0; } break; - case 40: + case 41: { s->number64_tmp = s->number64; } break; - case 41: + case 42: { s->decimal_counter++; } break; - case 42: + case 43: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -7426,17 +7436,17 @@ _match: } } break; - case 43: + case 44: { s->decimals = 2; } break; - case 44: + case 45: { s->decimals = 3; } break; - case 45: + case 46: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); @@ -7447,7 +7457,7 @@ _match: } } break; - case 46: + case 47: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -7459,7 +7469,7 @@ _match: } } break; - case 47: + case 48: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -7471,7 +7481,7 @@ _match: } } break; - case 48: + case 49: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); @@ -7481,7 +7491,7 @@ _match: } } break; - case 49: + case 50: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); @@ -7491,13 +7501,13 @@ _match: } } break; - case 50: + case 51: { WARN(ZS_BAD_TIME_UNIT); p--; {cs = 329;goto _again;} } break; - case 51: + case 52: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { @@ -7506,7 +7516,7 @@ _match: } } break; - case 52: + case 53: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { @@ -7515,7 +7525,7 @@ _match: } } break; - case 53: + case 54: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { @@ -7524,7 +7534,7 @@ _match: } } break; - case 54: + case 55: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { @@ -7533,12 +7543,12 @@ _match: } } break; - case 55: + case 56: { s->number64_tmp = s->number64; } break; - case 56: + case 57: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; @@ -7548,12 +7558,12 @@ _match: } } break; - case 57: + case 58: { s->buffer_length = 0; } break; - case 58: + case 59: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -7563,7 +7573,7 @@ _match: } } break; - case 59: + case 60: { s->buffer[s->buffer_length] = 0; @@ -7601,13 +7611,13 @@ _match: } } break; - case 60: + case 61: { WARN(ZS_BAD_TIMESTAMP_CHAR); p--; {cs = 329;goto _again;} } break; - case 61: + case 62: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -7631,19 +7641,19 @@ _match: } } break; - case 62: + case 63: { WARN(ZS_BAD_TEXT_CHAR); p--; {cs = 329;goto _again;} } break; - case 63: + case 64: { WARN(ZS_BAD_TEXT); p--; {cs = 329;goto _again;} } break; - case 64: + case 65: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -7668,7 +7678,7 @@ _match: } } break; - case 65: + case 66: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -7683,18 +7693,18 @@ _match: } } break; - case 66: + case 67: { rdata_tail++; } break; - case 67: + case 68: { WARN(ZS_BAD_NUMBER); p--; {cs = 329;goto _again;} } break; - case 68: + case 69: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -7725,20 +7735,20 @@ _match: } } break; - case 69: + case 70: { p--; {stack[top++] = cs; cs = 340;goto _again;} } break; - case 70: + case 71: { s->long_string = true; } break; - case 71: + case 72: { s->long_string = false; } break; - case 72: + case 73: { if (s->number64 <= UINT32_MAX) { s->default_ttl = (uint32_t)(s->number64); @@ -7748,40 +7758,40 @@ _match: } } break; - case 73: + case 74: { ERR(ZS_BAD_TTL); p--; {cs = 329;goto _again;} } break; - case 74: + case 75: { p--; {stack[top++] = cs; cs = 353;goto _again;} } break; - case 75: + case 76: { s->dname = s->zone_origin; } break; - case 76: + case 77: { s->zone_origin_length = s->dname_tmp_length; } break; - case 77: + case 78: { ERR(ZS_BAD_ORIGIN); p--; {cs = 329;goto _again;} } break; - case 78: + case 79: { p--; {stack[top++] = cs; cs = 362;goto _again;} } break; - case 79: + case 80: { rdata_tail = s->r_data; } break; - case 80: + case 81: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { @@ -7797,29 +7807,29 @@ _match: s->dname = NULL; } break; - case 81: + case 82: { ERR(ZS_BAD_INCLUDE_FILENAME); p--; {cs = 329;goto _again;} } break; - case 82: + case 83: { s->dname = s->r_data; } break; - case 83: + case 84: { s->r_data_length = s->dname_tmp_length; } break; - case 84: + case 85: { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; {cs = 329;goto _again;} } break; - case 85: + case 86: { // Extend relative file path. if (s->include_filename[0] != '/') { @@ -7877,41 +7887,41 @@ _match: } } break; - case 86: + case 87: { p--; {stack[top++] = cs; cs = 374;goto _again;} } break; - case 87: + case 88: { ERR(ZS_OK); } break; - case 88: + case 89: { NOERR; } break; - case 89: + case 90: { ERR(ZS_BAD_DIRECTIVE); p--; {cs = 329;goto _again;} } break; - case 90: + case 91: { s->r_class = s->default_class; } break; - case 91: + case 92: { s->r_ttl = s->default_ttl; } break; - case 92: + case 93: { s->r_class = KNOT_CLASS_IN; } break; - case 93: + case 94: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); @@ -7921,12 +7931,12 @@ _match: } } break; - case 94: + case 95: { s->buffer_length = 0; } break; - case 95: + case 96: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -7936,13 +7946,13 @@ _match: } } break; - case 96: + case 97: { WARN(ZS_BAD_ADDRESS_CHAR); p--; {cs = 329;goto _again;} } break; - case 97: + case 98: { s->buffer[s->buffer_length] = 0; @@ -7952,7 +7962,7 @@ _match: } } break; - case 98: + case 99: { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); @@ -7962,7 +7972,7 @@ _match: rdata_tail += ZS_INET4_ADDR_LENGTH; } break; - case 99: + case 100: { s->buffer[s->buffer_length] = 0; @@ -7972,7 +7982,7 @@ _match: } } break; - case 100: + case 101: { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); @@ -7982,27 +7992,27 @@ _match: rdata_tail += ZS_INET6_ADDR_LENGTH; } break; - case 101: + case 102: { memset(&(s->apl), 0, sizeof(s->apl)); } break; - case 102: + case 103: { s->apl.excl_flag = 128; // dec 128 = bin 10000000. } break; - case 103: + case 104: { s->apl.addr_family = 1; } break; - case 104: + case 105: { s->apl.addr_family = 2; } break; - case 105: + case 106: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { @@ -8013,7 +8023,7 @@ _match: } } break; - case 106: + case 107: { // Copy address to buffer. uint8_t len; @@ -8057,13 +8067,13 @@ _match: rdata_tail += len; } break; - case 107: + case 108: { WARN(ZS_BAD_APL); p--; {cs = 329;goto _again;} } break; - case 108: + case 109: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; @@ -8073,19 +8083,19 @@ _match: } } break; - case 109: + case 110: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } break; - case 110: + case 111: { WARN(ZS_BAD_HEX_CHAR); p--; {cs = 329;goto _again;} } break; - case 111: + case 112: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); @@ -8093,13 +8103,13 @@ _match: } } break; - case 112: + case 113: { WARN(ZS_BAD_HEX_RDATA); p--; {cs = 329;goto _again;} } break; - case 113: + case 114: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; @@ -8109,7 +8119,7 @@ _match: } } break; - case 114: + case 115: { *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; @@ -8121,7 +8131,7 @@ _match: } } break; - case 115: + case 116: { *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; @@ -8133,21 +8143,21 @@ _match: } } break; - case 116: + case 117: { *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } break; - case 117: + case 118: { WARN(ZS_BAD_BASE64_CHAR); p--; {cs = 329;goto _again;} } break; - case 118: + case 119: { p--; {stack[top++] = cs; cs = 391;goto _again;} } break; - case 119: + case 120: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; @@ -8157,7 +8167,7 @@ _match: } } break; - case 120: + case 121: { *(rdata_tail++) += second_left_base32hex_to_num[(uint8_t)(*p)]; @@ -8169,12 +8179,12 @@ _match: } } break; - case 121: + case 122: { *rdata_tail += third_base32hex_to_num[(uint8_t)(*p)]; } break; - case 122: + case 123: { *(rdata_tail++) += fourth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -8186,7 +8196,7 @@ _match: } } break; - case 123: + case 124: { *(rdata_tail++) += fifth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -8198,12 +8208,12 @@ _match: } } break; - case 124: + case 125: { *rdata_tail += sixth_base32hex_to_num[(uint8_t)(*p)]; } break; - case 125: + case 126: { *(rdata_tail++) += seventh_left_base32hex_to_num[(uint8_t)(*p)]; @@ -8215,357 +8225,357 @@ _match: } } break; - case 126: + case 127: { *(rdata_tail++) += eighth_base32hex_to_num[(uint8_t)(*p)]; } break; - case 127: + case 128: { WARN(ZS_BAD_BASE32HEX_CHAR); p--; {cs = 329;goto _again;} } break; - case 128: + case 129: { *(rdata_tail++) = 0; } break; - case 129: + case 130: { *(rdata_tail++) = 1; } break; - case 130: + case 131: { *(rdata_tail++) = 2; } break; - case 131: + case 132: { *(rdata_tail++) = 3; } break; - case 132: + case 133: { *(rdata_tail++) = 5; } break; - case 133: + case 134: { *(rdata_tail++) = 6; } break; - case 134: + case 135: { *(rdata_tail++) = 7; } break; - case 135: + case 136: { *(rdata_tail++) = 8; } break; - case 136: + case 137: { *(rdata_tail++) = 10; } break; - case 137: + case 138: { *(rdata_tail++) = 12; } break; - case 138: + case 139: { *(rdata_tail++) = 13; } break; - case 139: + case 140: { *(rdata_tail++) = 14; } break; - case 140: + case 141: { *(rdata_tail++) = 15; } break; - case 141: + case 142: { *(rdata_tail++) = 16; } break; - case 142: + case 143: { *(rdata_tail++) = 252; } break; - case 143: + case 144: { *(rdata_tail++) = 253; } break; - case 144: + case 145: { *(rdata_tail++) = 254; } break; - case 145: + case 146: { uint16_t val = htons(0); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } break; - case 146: + case 147: { uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } break; - case 147: + case 148: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } break; - case 148: + case 149: { uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } break; - case 149: + case 150: { uint16_t val = htons(4); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } break; - case 150: + case 151: { uint16_t val = htons(5); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } break; - case 151: + case 152: { uint16_t val = htons(6); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } break; - case 152: + case 153: { uint16_t val = htons(7); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } break; - case 153: + case 154: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } break; - case 154: + case 155: { uint16_t val = htons(253); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } break; - case 155: + case 156: { uint16_t val = htons(254); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } break; - case 156: + case 157: { WARN(ZS_BAD_GATEWAY); p--; {cs = 329;goto _again;} } break; - case 157: + case 158: { WARN(ZS_BAD_GATEWAY_KEY); p--; {cs = 329;goto _again;} } break; - case 158: + case 159: { WARN(ZS_UNSUPPORTED_TYPE); p--; {cs = 329;goto _again;} } break; - case 159: + case 160: { type_num(KNOT_RRTYPE_A, &rdata_tail); } break; - case 160: + case 161: { type_num(KNOT_RRTYPE_NS, &rdata_tail); } break; - case 161: + case 162: { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } break; - case 162: + case 163: { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } break; - case 163: + case 164: { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } break; - case 164: + case 165: { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } break; - case 165: + case 166: { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } break; - case 166: + case 167: { type_num(KNOT_RRTYPE_MX, &rdata_tail); } break; - case 167: + case 168: { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } break; - case 168: + case 169: { type_num(KNOT_RRTYPE_RP, &rdata_tail); } break; - case 169: + case 170: { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } break; - case 170: + case 171: { type_num(KNOT_RRTYPE_RT, &rdata_tail); } break; - case 171: + case 172: { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } break; - case 172: + case 173: { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } break; - case 173: + case 174: { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } break; - case 174: + case 175: { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } break; - case 175: + case 176: { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } break; - case 176: + case 177: { type_num(KNOT_RRTYPE_KX, &rdata_tail); } break; - case 177: + case 178: { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } break; - case 178: + case 179: { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } break; - case 179: + case 180: { type_num(KNOT_RRTYPE_APL, &rdata_tail); } break; - case 180: + case 181: { type_num(KNOT_RRTYPE_DS, &rdata_tail); } break; - case 181: + case 182: { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } break; - case 182: + case 183: { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } break; - case 183: + case 184: { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } break; - case 184: + case 185: { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } break; - case 185: + case 186: { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } break; - case 186: + case 187: { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } break; - case 187: + case 188: { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } break; - case 188: + case 189: { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } break; - case 189: + case 190: { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } break; - case 190: + case 191: { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } break; - case 191: + case 192: { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } break; - case 192: + case 193: { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } break; - case 193: + case 194: { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } break; - case 194: + case 195: { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } break; - case 195: + case 196: { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } break; - case 196: + case 197: { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } break; - case 197: + case 198: { type_num(KNOT_RRTYPE_NID, &rdata_tail); } break; - case 198: + case 199: { type_num(KNOT_RRTYPE_L32, &rdata_tail); } break; - case 199: + case 200: { type_num(KNOT_RRTYPE_L64, &rdata_tail); } break; - case 200: + case 201: { type_num(KNOT_RRTYPE_LP, &rdata_tail); } break; - case 201: + case 202: { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } break; - case 202: + case 203: { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } break; - case 203: + case 204: { type_num(KNOT_RRTYPE_URI, &rdata_tail); } break; - case 204: + case 205: { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } break; - case 205: + case 206: { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } break; - case 206: + case 207: { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } break; - case 207: + case 208: { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } break; - case 208: + case 209: { type_num(KNOT_RRTYPE_RESINFO, &rdata_tail); } break; - case 209: + case 210: { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } break; - case 210: + case 211: { type_num(KNOT_RRTYPE_ALIAS, &rdata_tail); } break; - case 211: + case 212: { p--; {stack[top++] = cs; cs = 398;goto _again;} } break; - case 212: + case 213: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); @@ -8575,169 +8585,169 @@ _match: } } break; - case 213: + case 214: { window_add_bit(KNOT_RRTYPE_A, s); } break; - case 214: + case 215: { window_add_bit(KNOT_RRTYPE_NS, s); } break; - case 215: + case 216: { window_add_bit(KNOT_RRTYPE_CNAME, s); } break; - case 216: + case 217: { window_add_bit(KNOT_RRTYPE_SOA, s); } break; - case 217: + case 218: { window_add_bit(KNOT_RRTYPE_PTR, s); } break; - case 218: + case 219: { window_add_bit(KNOT_RRTYPE_HINFO, s); } break; - case 219: + case 220: { window_add_bit(KNOT_RRTYPE_MINFO, s); } break; - case 220: + case 221: { window_add_bit(KNOT_RRTYPE_MX, s); } break; - case 221: + case 222: { window_add_bit(KNOT_RRTYPE_TXT, s); } break; - case 222: + case 223: { window_add_bit(KNOT_RRTYPE_RP, s); } break; - case 223: + case 224: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } break; - case 224: + case 225: { window_add_bit(KNOT_RRTYPE_RT, s); } break; - case 225: + case 226: { window_add_bit(KNOT_RRTYPE_KEY, s); } break; - case 226: + case 227: { window_add_bit(KNOT_RRTYPE_AAAA, s); } break; - case 227: + case 228: { window_add_bit(KNOT_RRTYPE_LOC, s); } break; - case 228: + case 229: { window_add_bit(KNOT_RRTYPE_SRV, s); } break; - case 229: + case 230: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } break; - case 230: + case 231: { window_add_bit(KNOT_RRTYPE_KX, s); } break; - case 231: + case 232: { window_add_bit(KNOT_RRTYPE_CERT, s); } break; - case 232: + case 233: { window_add_bit(KNOT_RRTYPE_DNAME, s); } break; - case 233: + case 234: { window_add_bit(KNOT_RRTYPE_APL, s); } break; - case 234: + case 235: { window_add_bit(KNOT_RRTYPE_DS, s); } break; - case 235: + case 236: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } break; - case 236: + case 237: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } break; - case 237: + case 238: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } break; - case 238: + case 239: { window_add_bit(KNOT_RRTYPE_NSEC, s); } break; - case 239: + case 240: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } break; - case 240: + case 241: { window_add_bit(KNOT_RRTYPE_DHCID, s); } break; - case 241: + case 242: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } break; - case 242: + case 243: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } break; - case 243: + case 244: { window_add_bit(KNOT_RRTYPE_TLSA, s); } break; - case 244: + case 245: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } break; - case 245: + case 246: { window_add_bit(KNOT_RRTYPE_CDS, s); } break; - case 246: + case 247: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } break; - case 247: + case 248: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } break; - case 248: + case 249: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } break; - case 249: + case 250: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } break; - case 250: + case 251: { window_add_bit(KNOT_RRTYPE_SPF, s); } break; - case 251: + case 252: { window_add_bit(KNOT_RRTYPE_NID, s); } break; - case 252: + case 253: { window_add_bit(KNOT_RRTYPE_L32, s); } break; - case 253: + case 254: { window_add_bit(KNOT_RRTYPE_L64, s); } break; - case 254: + case 255: { window_add_bit(KNOT_RRTYPE_LP, s); } break; - case 255: + case 256: { window_add_bit(KNOT_RRTYPE_EUI48, s); } break; - case 256: + case 257: { window_add_bit(KNOT_RRTYPE_EUI64, s); } break; - case 257: + case 258: { window_add_bit(KNOT_RRTYPE_URI, s); } break; - case 258: + case 259: { window_add_bit(KNOT_RRTYPE_CAA, s); } break; - case 259: + case 260: { window_add_bit(KNOT_RRTYPE_SVCB, s); } break; - case 260: + case 261: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } break; - case 261: + case 262: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } break; - case 262: + case 263: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } break; - case 263: + case 264: { window_add_bit(KNOT_RRTYPE_WALLET, s); } break; - case 264: + case 265: { window_add_bit(KNOT_RRTYPE_ALIAS, s); } break; - case 265: + case 266: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } break; - case 266: + case 267: { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -8762,16 +8772,16 @@ _match: } } break; - case 267: + case 268: { WARN(ZS_BAD_BITMAP); p--; {cs = 329;goto _again;} } break; - case 268: + case 269: { p--; {stack[top++] = cs; cs = 579;goto _again;} } break; - case 269: + case 270: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); @@ -8781,7 +8791,7 @@ _match: } } break; - case 270: + case 271: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); @@ -8791,7 +8801,7 @@ _match: } } break; - case 271: + case 272: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); @@ -8801,7 +8811,7 @@ _match: } } break; - case 272: + case 273: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); @@ -8811,7 +8821,7 @@ _match: } } break; - case 273: + case 274: { if (s->number64 <= 59999) { s->loc.s1 = (uint32_t)(s->number64); @@ -8821,7 +8831,7 @@ _match: } } break; - case 274: + case 275: { if (s->number64 <= 59999) { s->loc.s2 = (uint32_t)(s->number64); @@ -8831,7 +8841,7 @@ _match: } } break; - case 275: + case 276: { if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || (s->loc.alt_sign == -1 && s->number64 <= 10000000)) @@ -8843,7 +8853,7 @@ _match: } } break; - case 276: + case 277: { if (s->number64 <= 9000000000ULL) { s->loc.siz = s->number64; @@ -8853,7 +8863,7 @@ _match: } } break; - case 277: + case 278: { if (s->number64 <= 9000000000ULL) { s->loc.hp = s->number64; @@ -8863,7 +8873,7 @@ _match: } } break; - case 278: + case 279: { if (s->number64 <= 9000000000ULL) { s->loc.vp = s->number64; @@ -8873,22 +8883,22 @@ _match: } } break; - case 279: + case 280: { s->loc.lat_sign = -1; } break; - case 280: + case 281: { s->loc.long_sign = -1; } break; - case 281: + case 282: { s->loc.alt_sign = -1; } break; - case 282: + case 283: { memset(&(s->loc), 0, sizeof(s->loc)); // Defaults. @@ -8900,7 +8910,7 @@ _match: s->loc.alt_sign = 1; } break; - case 283: + case 284: { // Write version. *(rdata_tail) = 0; @@ -8928,29 +8938,29 @@ _match: rdata_tail += 4; } break; - case 284: + case 285: { WARN(ZS_BAD_LOC_DATA); p--; {cs = 329;goto _again;} } break; - case 285: + case 286: { WARN(ZS_BAD_HEX_RDATA); p--; {cs = 329;goto _again;} } break; - case 286: + case 287: { s->item_length = 0; } break; - case 287: + case 288: { s->item_length++; } break; - case 288: + case 289: { if (s->item_length != 6) { WARN(ZS_BAD_EUI_LENGTH); @@ -8958,7 +8968,7 @@ _match: } } break; - case 289: + case 290: { if (s->item_length != 8) { WARN(ZS_BAD_EUI_LENGTH); @@ -8966,23 +8976,23 @@ _match: } } break; - case 290: + case 291: { WARN(ZS_BAD_CHAR_DASH); p--; {cs = 329;goto _again;} } break; - case 291: + case 292: { s->item_length = 0; } break; - case 292: + case 293: { s->item_length++; } break; - case 293: + case 294: { if (s->item_length != 4) { WARN(ZS_BAD_L64_LENGTH); @@ -8990,19 +9000,19 @@ _match: } } break; - case 294: + case 295: { WARN(ZS_BAD_CHAR_COLON); p--; {cs = 329;goto _again;} } break; - case 295: + case 296: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; } break; - case 296: + case 297: { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { @@ -9011,19 +9021,19 @@ _match: } } break; - case 297: + case 298: { WARN(ZS_BAD_SVCB_PARAM); p--; {cs = 329;goto _again;} } break; - case 298: + case 299: { WARN(ZS_BAD_SVCB_MANDATORY); p--; {cs = 329;goto _again;} } break; - case 299: + case 300: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); @@ -9032,7 +9042,7 @@ _match: s->svcb.param_position = rdata_tail; } break; - case 300: + case 301: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { @@ -9041,13 +9051,13 @@ _match: } } break; - case 301: + case 302: { s->comma_list = true; s->pending_backslash = false; } break; - case 302: + case 303: { s->comma_list = false; if (s->pending_backslash) { @@ -9056,17 +9066,17 @@ _match: } } break; - case 303: + case 304: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } break; - case 304: + case 305: { svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } break; - case 305: + case 306: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); @@ -9074,52 +9084,53 @@ _match: } } break; - case 306: + case 307: { p--; {stack[top++] = cs; cs = 781;goto _again;} } break; - case 307: + case 308: { p--; {stack[top++] = cs; cs = 837;goto _again;} } break; - case 308: + case 309: { WARN(ZS_BAD_ALGORITHM); p--; {cs = 329;goto _again;} } break; - case 309: + case 310: { WARN(ZS_BAD_CERT_TYPE); p--; {cs = 329;goto _again;} } break; - case 310: + case 311: { WARN(ZS_BAD_DSYNC_SCHEME); p--; {cs = 329;goto _again;} } break; - case 311: + case 312: { p--; {stack[top++] = cs; cs = 948;goto _again;} } break; - case 312: + case 313: { p--; {stack[top++] = cs; cs = 1052;goto _again;} } break; - case 313: + case 314: { p--; {stack[top++] = cs; cs = 1093;goto _again;} } break; - case 314: + case 315: { rdata_tail = s->r_data; } break; - case 315: + case 316: { WARN(ZS_BAD_RDATA); p--; {cs = 329;goto _again;} } break; - case 316: + case 317: { + s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -9213,8 +9224,9 @@ _match: } } break; - case 317: + case 318: { + s->r_data_generic = true; switch (s->r_type) { // Next types must not have empty rdata. case KNOT_RRTYPE_A: @@ -9276,183 +9288,183 @@ _match: } } break; - case 318: + case 319: { if (pe - p == 1) { *wrap = WRAP_DETECTED; } } break; - case 319: + case 320: { if (*wrap == WRAP_NONE) { p--; } } break; - case 320: + case 321: { WARN(ZS_UNSUPPORTED_TYPE); p--; {cs = 329;goto _again;} } break; - case 321: + case 322: { s->r_type = KNOT_RRTYPE_A; } break; - case 322: + case 323: { s->r_type = KNOT_RRTYPE_NS; } break; - case 323: + case 324: { s->r_type = KNOT_RRTYPE_CNAME; } break; - case 324: + case 325: { s->r_type = KNOT_RRTYPE_SOA; } break; - case 325: + case 326: { s->r_type = KNOT_RRTYPE_PTR; } break; - case 326: + case 327: { s->r_type = KNOT_RRTYPE_HINFO; } break; - case 327: + case 328: { s->r_type = KNOT_RRTYPE_MINFO; } break; - case 328: + case 329: { s->r_type = KNOT_RRTYPE_MX; } break; - case 329: + case 330: { s->r_type = KNOT_RRTYPE_TXT; } break; - case 330: + case 331: { s->r_type = KNOT_RRTYPE_RP; } break; - case 331: + case 332: { s->r_type = KNOT_RRTYPE_AFSDB; } break; - case 332: + case 333: { s->r_type = KNOT_RRTYPE_RT; } break; - case 333: + case 334: { s->r_type = KNOT_RRTYPE_KEY; } break; - case 334: + case 335: { s->r_type = KNOT_RRTYPE_AAAA; } break; - case 335: + case 336: { s->r_type = KNOT_RRTYPE_LOC; } break; - case 336: + case 337: { s->r_type = KNOT_RRTYPE_SRV; } break; - case 337: + case 338: { s->r_type = KNOT_RRTYPE_NAPTR; } break; - case 338: + case 339: { s->r_type = KNOT_RRTYPE_KX; } break; - case 339: + case 340: { s->r_type = KNOT_RRTYPE_CERT; } break; - case 340: + case 341: { s->r_type = KNOT_RRTYPE_DNAME; } break; - case 341: + case 342: { s->r_type = KNOT_RRTYPE_APL; } break; - case 342: + case 343: { s->r_type = KNOT_RRTYPE_DS; } break; - case 343: + case 344: { s->r_type = KNOT_RRTYPE_SSHFP; } break; - case 344: + case 345: { s->r_type = KNOT_RRTYPE_IPSECKEY; } break; - case 345: + case 346: { s->r_type = KNOT_RRTYPE_RRSIG; } break; - case 346: + case 347: { s->r_type = KNOT_RRTYPE_NSEC; } break; - case 347: + case 348: { s->r_type = KNOT_RRTYPE_DNSKEY; } break; - case 348: + case 349: { s->r_type = KNOT_RRTYPE_DHCID; } break; - case 349: + case 350: { s->r_type = KNOT_RRTYPE_NSEC3; } break; - case 350: + case 351: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } break; - case 351: + case 352: { s->r_type = KNOT_RRTYPE_TLSA; } break; - case 352: + case 353: { s->r_type = KNOT_RRTYPE_SMIMEA; } break; - case 353: + case 354: { s->r_type = KNOT_RRTYPE_CDS; } break; - case 354: + case 355: { s->r_type = KNOT_RRTYPE_CDNSKEY; } break; - case 355: + case 356: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } break; - case 356: + case 357: { s->r_type = KNOT_RRTYPE_CSYNC; } break; - case 357: + case 358: { s->r_type = KNOT_RRTYPE_ZONEMD; } break; - case 358: + case 359: { s->r_type = KNOT_RRTYPE_SPF; } break; - case 359: + case 360: { s->r_type = KNOT_RRTYPE_NID; } break; - case 360: + case 361: { s->r_type = KNOT_RRTYPE_L32; } break; - case 361: + case 362: { s->r_type = KNOT_RRTYPE_L64; } break; - case 362: + case 363: { s->r_type = KNOT_RRTYPE_LP; } break; - case 363: + case 364: { s->r_type = KNOT_RRTYPE_EUI48; } break; - case 364: + case 365: { s->r_type = KNOT_RRTYPE_EUI64; } break; - case 365: + case 366: { s->r_type = KNOT_RRTYPE_URI; } break; - case 366: + case 367: { s->r_type = KNOT_RRTYPE_CAA; } break; - case 367: + case 368: { s->r_type = KNOT_RRTYPE_SVCB; } break; - case 368: + case 369: { s->r_type = KNOT_RRTYPE_HTTPS; } break; - case 369: + case 370: { s->r_type = KNOT_RRTYPE_DSYNC; } break; - case 370: + case 371: { s->r_type = KNOT_RRTYPE_RESINFO; } break; - case 371: + case 372: { s->r_type = KNOT_RRTYPE_WALLET; } break; - case 372: + case 373: { s->r_type = KNOT_RRTYPE_ALIAS; } break; - case 373: + case 374: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); @@ -9526,7 +9538,7 @@ goto _again;} goto _again;} } break; - case 38: + case 39: { WARN(ZS_BAD_NUMBER); p--; {cs = 329; if ( p == pe ) @@ -9534,7 +9546,7 @@ goto _again;} goto _again;} } break; - case 50: + case 51: { WARN(ZS_BAD_TIME_UNIT); p--; {cs = 329; if ( p == pe ) @@ -9542,7 +9554,7 @@ goto _again;} goto _again;} } break; - case 60: + case 61: { WARN(ZS_BAD_TIMESTAMP_CHAR); p--; {cs = 329; if ( p == pe ) @@ -9550,7 +9562,7 @@ goto _again;} goto _again;} } break; - case 62: + case 63: { WARN(ZS_BAD_TEXT_CHAR); p--; {cs = 329; if ( p == pe ) @@ -9558,7 +9570,7 @@ goto _again;} goto _again;} } break; - case 63: + case 64: { WARN(ZS_BAD_TEXT); p--; {cs = 329; if ( p == pe ) @@ -9566,7 +9578,7 @@ goto _again;} goto _again;} } break; - case 67: + case 68: { WARN(ZS_BAD_NUMBER); p--; {cs = 329; if ( p == pe ) @@ -9574,12 +9586,12 @@ goto _again;} goto _again;} } break; - case 71: + case 72: { s->long_string = false; } break; - case 73: + case 74: { ERR(ZS_BAD_TTL); p--; {cs = 329; if ( p == pe ) @@ -9587,7 +9599,7 @@ goto _again;} goto _again;} } break; - case 77: + case 78: { ERR(ZS_BAD_ORIGIN); p--; {cs = 329; if ( p == pe ) @@ -9595,7 +9607,7 @@ goto _again;} goto _again;} } break; - case 81: + case 82: { ERR(ZS_BAD_INCLUDE_FILENAME); p--; {cs = 329; if ( p == pe ) @@ -9603,7 +9615,7 @@ goto _again;} goto _again;} } break; - case 84: + case 85: { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; {cs = 329; if ( p == pe ) @@ -9611,12 +9623,12 @@ goto _again;} goto _again;} } break; - case 88: + case 89: { NOERR; } break; - case 89: + case 90: { ERR(ZS_BAD_DIRECTIVE); p--; {cs = 329; if ( p == pe ) @@ -9624,7 +9636,7 @@ goto _again;} goto _again;} } break; - case 96: + case 97: { WARN(ZS_BAD_ADDRESS_CHAR); p--; {cs = 329; if ( p == pe ) @@ -9632,7 +9644,7 @@ goto _again;} goto _again;} } break; - case 107: + case 108: { WARN(ZS_BAD_APL); p--; {cs = 329; if ( p == pe ) @@ -9640,7 +9652,7 @@ goto _again;} goto _again;} } break; - case 110: + case 111: { WARN(ZS_BAD_HEX_CHAR); p--; {cs = 329; if ( p == pe ) @@ -9648,7 +9660,7 @@ goto _again;} goto _again;} } break; - case 112: + case 113: { WARN(ZS_BAD_HEX_RDATA); p--; {cs = 329; if ( p == pe ) @@ -9656,7 +9668,7 @@ goto _again;} goto _again;} } break; - case 117: + case 118: { WARN(ZS_BAD_BASE64_CHAR); p--; {cs = 329; if ( p == pe ) @@ -9664,7 +9676,7 @@ goto _again;} goto _again;} } break; - case 127: + case 128: { WARN(ZS_BAD_BASE32HEX_CHAR); p--; {cs = 329; if ( p == pe ) @@ -9672,7 +9684,7 @@ goto _again;} goto _again;} } break; - case 156: + case 157: { WARN(ZS_BAD_GATEWAY); p--; {cs = 329; if ( p == pe ) @@ -9680,7 +9692,7 @@ goto _again;} goto _again;} } break; - case 157: + case 158: { WARN(ZS_BAD_GATEWAY_KEY); p--; {cs = 329; if ( p == pe ) @@ -9688,7 +9700,7 @@ goto _again;} goto _again;} } break; - case 158: + case 159: { WARN(ZS_UNSUPPORTED_TYPE); p--; {cs = 329; if ( p == pe ) @@ -9696,7 +9708,7 @@ goto _again;} goto _again;} } break; - case 267: + case 268: { WARN(ZS_BAD_BITMAP); p--; {cs = 329; if ( p == pe ) @@ -9704,7 +9716,7 @@ goto _again;} goto _again;} } break; - case 284: + case 285: { WARN(ZS_BAD_LOC_DATA); p--; {cs = 329; if ( p == pe ) @@ -9712,7 +9724,7 @@ goto _again;} goto _again;} } break; - case 285: + case 286: { WARN(ZS_BAD_HEX_RDATA); p--; {cs = 329; if ( p == pe ) @@ -9720,7 +9732,7 @@ goto _again;} goto _again;} } break; - case 290: + case 291: { WARN(ZS_BAD_CHAR_DASH); p--; {cs = 329; if ( p == pe ) @@ -9728,7 +9740,7 @@ goto _again;} goto _again;} } break; - case 294: + case 295: { WARN(ZS_BAD_CHAR_COLON); p--; {cs = 329; if ( p == pe ) @@ -9736,7 +9748,7 @@ goto _again;} goto _again;} } break; - case 297: + case 298: { WARN(ZS_BAD_SVCB_PARAM); p--; {cs = 329; if ( p == pe ) @@ -9744,7 +9756,7 @@ goto _again;} goto _again;} } break; - case 298: + case 299: { WARN(ZS_BAD_SVCB_MANDATORY); p--; {cs = 329; if ( p == pe ) @@ -9752,7 +9764,7 @@ goto _again;} goto _again;} } break; - case 308: + case 309: { WARN(ZS_BAD_ALGORITHM); p--; {cs = 329; if ( p == pe ) @@ -9760,7 +9772,7 @@ goto _again;} goto _again;} } break; - case 309: + case 310: { WARN(ZS_BAD_CERT_TYPE); p--; {cs = 329; if ( p == pe ) @@ -9768,7 +9780,7 @@ goto _again;} goto _again;} } break; - case 310: + case 311: { WARN(ZS_BAD_DSYNC_SCHEME); p--; {cs = 329; if ( p == pe ) @@ -9776,7 +9788,7 @@ goto _again;} goto _again;} } break; - case 315: + case 316: { WARN(ZS_BAD_RDATA); p--; {cs = 329; if ( p == pe ) @@ -9784,7 +9796,7 @@ goto _again;} goto _again;} } break; - case 320: + case 321: { WARN(ZS_UNSUPPORTED_TYPE); p--; {cs = 329; if ( p == pe ) diff --git a/src/libzscanner/scanner.h b/src/libzscanner/scanner.h index b85641b2ba..b54fe1dafd 100644 --- a/src/libzscanner/scanner.h +++ b/src/libzscanner/scanner.h @@ -149,6 +149,9 @@ struct zs_scanner { /*! Indication of a non-applied backslash. */ bool pending_backslash; + /*! If not generic format, apply lower casing on rdata. */ + bool to_lower; + /*! Pointer to the actual dname storage (origin/owner/rdata). */ uint8_t *dname; /*! Pointer to the actual dname length storage. */ @@ -239,19 +242,24 @@ struct zs_scanner { uint32_t r_ttl; /*! Type of the current record data. */ uint16_t r_type; + /*! Generic rdata indication (skipped item checks and lower casing). */ + bool r_data_generic; /*! Length of the current rdata. */ uint32_t r_data_length; /*! Current rdata. */ uint8_t r_data[ZS_MAX_RDATA_LENGTH]; - /* - * Example: a. IN 60 MX 1 b. ; A comment + /* Example: + * + * INPUT: a. IN 60 MX 1 B. ; A comment + * to_lower = true * - * r_owner_length = 3 + * OUTPUT: r_owner_length = 3 * r_owner = 016100 * r_class = 1 * r_ttl = 60 * r_type = 15 + * r_data_generic = false * r_data_length = 5 * r_data = 0001016200 * buffer_length = 11 diff --git a/src/libzscanner/scanner_body.rl b/src/libzscanner/scanner_body.rl index 46c1e3cd05..23c540e3e7 100644 --- a/src/libzscanner/scanner_body.rl +++ b/src/libzscanner/scanner_body.rl @@ -323,11 +323,17 @@ action _r_dname_init { s->dname = rdata_tail; } + action _r_dname_tolower { + if (s->to_lower) { + dname_to_lower(s->dname); + } + } action _r_dname_exit { rdata_tail += s->dname_tmp_length; } r_dname = dname >_r_dname_init %_r_dname_exit; + r_dname_lower = dname >_r_dname_init %_r_dname_tolower %_r_dname_exit; # END # BEGIN - Number processing @@ -1952,11 +1958,11 @@ $!_r_data_error %_ret . all_wchar; r_data_ns := - (r_dname) + (r_dname_lower) $!_r_data_error %_ret . all_wchar; r_data_soa := - (r_dname . sep . r_dname . sep . num32 . sep . time32 . + (r_dname_lower . sep . r_dname_lower . sep . num32 . sep . time32 . sep . time32 . sep . time32 . sep . time32) $!_r_data_error %_ret . all_wchar; @@ -1965,11 +1971,11 @@ $!_r_data_error %_ret . all_wchar; r_data_minfo := - (r_dname . sep . r_dname) + (r_dname_lower . sep . r_dname_lower) $!_r_data_error %_ret . all_wchar; r_data_mx := - (num16 . sep . r_dname) + (num16 . sep . r_dname_lower) $!_r_data_error %_ret . all_wchar; r_data_txt := @@ -1985,12 +1991,12 @@ $!_r_data_error %_ret . end_wchar; r_data_srv := - (num16 . sep . num16 . sep . num16 . sep . r_dname) + (num16 . sep . num16 . sep . num16 . sep . r_dname_lower) $!_r_data_error %_ret . all_wchar; r_data_naptr := (num16 . sep . num16 . sep . text_string . sep . text_string . - sep . text_string . sep . r_dname) + sep . text_string . sep . r_dname_lower) $!_r_data_error %_ret . all_wchar; r_data_cert := @@ -2015,7 +2021,7 @@ r_data_rrsig := (type_num . sep . dns_alg . sep . num8 . sep . num32 . sep . - timestamp . sep . timestamp . sep . num16 . sep . r_dname . + timestamp . sep . timestamp . sep . num16 . sep . r_dname_lower . sep . base64) $!_r_data_error %_ret . end_wchar; @@ -2085,6 +2091,7 @@ $!_r_data_error %_ret . all_wchar; action _text_r_data { + s->r_data_generic = false; fhold; switch (s->r_type) { case KNOT_RRTYPE_A: @@ -2178,6 +2185,7 @@ } } action _hex_r_data { + s->r_data_generic = true; switch (s->r_type) { // Next types must not have empty rdata. case KNOT_RRTYPE_A: diff --git a/tests/libzscanner/zscanner-tool.c b/tests/libzscanner/zscanner-tool.c index 48f28b538a..30b3a11865 100644 --- a/tests/libzscanner/zscanner-tool.c +++ b/tests/libzscanner/zscanner-tool.c @@ -34,6 +34,7 @@ static void help(void) " 1 Debug output (DEFAULT).\n" " 2 Test output.\n" " -b Divide hex string to blocks of length .\n" + " -l Enable rdata lower casing.\n" " -s State parsing mode.\n" " -t Launch unit tests.\n" " -h Print this help.\n"); @@ -129,12 +130,13 @@ static int include(zs_scanner_t *s) int main(int argc, char *argv[]) { - int mode = DEFAULT_MODE, block = 0, state = 0, test = 0; + int mode = DEFAULT_MODE, block = 0, lower = 0, state = 0, test = 0; // Command line long options. struct option opts[] = { { "mode", required_argument, NULL, 'm' }, { "block", required_argument, NULL, 'b' }, + { "lower", no_argument, NULL, 'l' }, { "state", no_argument, NULL, 's' }, { "test", no_argument, NULL, 't' }, { "help", no_argument, NULL, 'h' }, @@ -143,7 +145,7 @@ int main(int argc, char *argv[]) // Parsed command line arguments. int opt = 0, li = 0; - while ((opt = getopt_long(argc, argv, "m:b:sth", opts, &li)) != -1) { + while ((opt = getopt_long(argc, argv, "m:b:lsth", opts, &li)) != -1) { switch (opt) { case 'm': mode = atoi(optarg); @@ -151,6 +153,9 @@ int main(int argc, char *argv[]) case 'b': block = atoi(optarg); break; + case 'l': + lower = 1; + break; case 's': state = 1; break; @@ -190,6 +195,9 @@ int main(int argc, char *argv[]) free(s); return EXIT_FAILURE; } + if (lower) { + s->to_lower = true; + } if (zs_set_input_file(s, zone_file) != 0) { printf("Scanner file error!\n"); zs_deinit(s); From 0a4767af3a4036758f5c8a14cd87e37940cf6e91 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 30 Mar 2026 15:59:35 +0200 Subject: [PATCH 418/675] zonefile-load + ctl/zone-set: canonicalize only generic... ...as non-generic textual format is canonicalized already in zscanner --- src/knot/ctl/commands.c | 8 ++++++-- src/knot/zone/zonefile.c | 15 ++++++++++----- .../dnssec/case_sensitivity/data/example.zone | 2 +- .../dnssec/case_sensitivity/data/modify-dsync.awk | 7 +++++++ .../dnssec/case_sensitivity/data/modify-lp.awk | 7 ------- tests-extra/tests/dnssec/case_sensitivity/test.py | 2 +- 6 files changed, 25 insertions(+), 16 deletions(-) create mode 100644 tests-extra/tests/dnssec/case_sensitivity/data/modify-dsync.awk delete mode 100644 tests-extra/tests/dnssec/case_sensitivity/data/modify-lp.awk diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 888ad5b30d..9cbaa434a5 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1459,7 +1459,7 @@ static int create_rrset(knot_rrset_t **rrset, zone_t *zone, ctl_args_t *args, zs_scanner_t *scanner = &ctl_globals[args->thread_idx].scanner; if (zs_init(scanner, origin, KNOT_CLASS_IN, default_ttl) != 0 || zs_set_input_string(scanner, buff, rdata_len) != 0 || - zs_parse_record(scanner) != 0 || + (scanner->to_lower = true, zs_parse_record(scanner) != 0) || scanner->state != ZS_STATE_DATA) { args->data[KNOT_CTL_IDX_ZONE] = origin; // Needed if called for all zones. if (scanner->error.code == ZS_OK) { // If not ZS_STATE_DATA. @@ -1487,7 +1487,11 @@ static int create_rrset(knot_rrset_t **rrset, zone_t *zone, ctl_args_t *args, goto parser_failed; } - ret = knot_rrset_rr_to_canonical(*rrset); + if (scanner->r_data_generic) { + ret = knot_rrset_rr_to_canonical(*rrset); + } else { + knot_dname_to_lower((*rrset)->owner); + } parser_failed: zs_deinit(scanner); diff --git a/src/knot/zone/zonefile.c b/src/knot/zone/zonefile.c index ed34e115ef..20a28e71fd 100644 --- a/src/knot/zone/zonefile.c +++ b/src/knot/zone/zonefile.c @@ -107,11 +107,15 @@ static void process_data(zs_scanner_t *scanner) return; } - ret = knot_rrset_rr_to_canonical(&rr); - if (ret != KNOT_EOK) { - knot_rrset_clear(&rr, NULL); - zl->ret = ret; - return; + if (scanner->r_data_generic) { + ret = knot_rrset_rr_to_canonical(&rr); + if (ret != KNOT_EOK) { + knot_rrset_clear(&rr, NULL); + zl->ret = ret; + return; + } + } else { + knot_dname_to_lower(rr.owner); } zl->ret = zcreator_step(zl->contents, &rr, zl->skip); @@ -192,6 +196,7 @@ int zonefile_open(zloader_t *loader, const char *source, const knot_dname_t *ori zs_deinit(&loader->scanner); return KNOT_EFILE; } + loader->scanner.to_lower = true; loader->contents = zone_contents_new(origin, true); if (loader->contents == NULL) { diff --git a/tests-extra/tests/dnssec/case_sensitivity/data/example.zone b/tests-extra/tests/dnssec/case_sensitivity/data/example.zone index 9d199d61e9..562d591d21 100644 --- a/tests-extra/tests/dnssec/case_sensitivity/data/example.zone +++ b/tests-extra/tests/dnssec/case_sensitivity/data/example.zone @@ -5,4 +5,4 @@ ns1.example. 3600 IN A 192.0.2.1 ns2.example. 3600 IN AAAA ::1 example. 3600 IN MX 1 xx.example. *.c.example. 3600 IN CNAME ttt-example. -lp.example. 3600 IN LP 5 L32-SUBnet.example. +dsync.example. 3600 IN DSYNC CDS NOTIFY 5360 CdS-scaNNer.exAmPLe. diff --git a/tests-extra/tests/dnssec/case_sensitivity/data/modify-dsync.awk b/tests-extra/tests/dnssec/case_sensitivity/data/modify-dsync.awk new file mode 100644 index 0000000000..64e2f94a3e --- /dev/null +++ b/tests-extra/tests/dnssec/case_sensitivity/data/modify-dsync.awk @@ -0,0 +1,7 @@ +# expected-changes -1 +1 + +# DSYNC: target +$3 == "DSYNC" { $7 = toupper($7); } + +# output +{ print } diff --git a/tests-extra/tests/dnssec/case_sensitivity/data/modify-lp.awk b/tests-extra/tests/dnssec/case_sensitivity/data/modify-lp.awk deleted file mode 100644 index 1c96b034c3..0000000000 --- a/tests-extra/tests/dnssec/case_sensitivity/data/modify-lp.awk +++ /dev/null @@ -1,7 +0,0 @@ -# expected-changes -1 +1 - -# LP: signer name -$3 == "LP" { $5 = toupper($5); } - -# output -{ print } diff --git a/tests-extra/tests/dnssec/case_sensitivity/test.py b/tests-extra/tests/dnssec/case_sensitivity/test.py index efaf3d7375..ae5db2a99f 100644 --- a/tests-extra/tests/dnssec/case_sensitivity/test.py +++ b/tests-extra/tests/dnssec/case_sensitivity/test.py @@ -30,7 +30,7 @@ def patch_zone(t, server, zone, script): scripts = [ ("insensitive RRs", "modify-insensitive.awk", False), ("NSEC RR", "modify-nsec.awk", True), - ("LP RR", "modify-lp.awk", True), + ("DSYNC RR", "modify-dsync.awk", True), ] for name, script, resign in scripts: From 856c881340d5ccb0dfc17e16fdfcac20dd2796a5 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 30 Mar 2026 16:44:37 +0200 Subject: [PATCH 419/675] tests: extended RR lower-casing test --- .../records/duplicates/data/duplicates.zone | 17 +++++++++++++++++ tests-extra/tests/records/duplicates/test.py | 4 +++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/tests-extra/tests/records/duplicates/data/duplicates.zone b/tests-extra/tests/records/duplicates/data/duplicates.zone index 1db97c2471..4d6cf8d47a 100644 --- a/tests-extra/tests/records/duplicates/data/duplicates.zone +++ b/tests-extra/tests/records/duplicates/data/duplicates.zone @@ -12,3 +12,20 @@ dupl MX 10 some.domain. dupl MX 10 Some.Domain. DuPl MX 10 some.domain. dUpL MX 10 sOMe.doMAin. +dupl MX \# 15 000a04534f4d4506444f4d41494e00 +dupl MX \# 15 000a04736f6d6506444f4d41494e00 +dupl MX \# 15 000a04534f4d4506644f6d41496e00 + +srv SRV 10 0 1000 a.example. +Srv SRV 10 0 1000 a.Example. +SRV SRV 10 0 1000 A.examplE. +srV SRV 10 0 1000 a.EXAMPLE. + +cname CNAME srv.duplicates. +Cname CNAME SRV.duplicateS. +CNAME CNAME srV.DUPLICATES. + +svcB SVCB 10 A.exAmple. +;; SVCB TargetName is case-sensitive, these two are different +sVCb SVCB 10 a.EXampLE. +SVCB SVCB \# 13 000a0161074558616D704C4500 diff --git a/tests-extra/tests/records/duplicates/test.py b/tests-extra/tests/records/duplicates/test.py index b71edfb493..735ba52715 100644 --- a/tests-extra/tests/records/duplicates/test.py +++ b/tests-extra/tests/records/duplicates/test.py @@ -11,6 +11,8 @@ zone = t.zone("duplicates.", storage=".") t.link(zone, knot) +knot.conf_zone(zone).journal_content = "all" + t.start() knot.zones_wait(zone) @@ -23,6 +25,6 @@ for msg in resp.resp: count += len(msg.answer) -compare(count, 6, "AXFR record count") +compare(count, 10, "AXFR record count") t.end() From df4815fb6cb4952af5888eb1065a606fbfaa0af1 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 26 Mar 2026 11:34:33 +0100 Subject: [PATCH 420/675] libknot/descriptor: add minimum rdata sizes where appropriate --- src/libknot/descriptor.c | 43 +++++++++++++++------------- tests-extra/tests/ddns/basic/test.py | 4 +-- tests/libknot/test_descriptor.c | 4 +-- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c index 0032d59d41..1d1ed05fbf 100644 --- a/src/libknot/descriptor.c +++ b/src/libknot/descriptor.c @@ -23,6 +23,8 @@ static const char* dns_classes[][2] = { /*! * \brief RR type descriptors. + * + * \note Variable and items are not verified for rdata oversize! */ static const knot_rdata_descriptor_t rdata_descriptors[] = { [0] = { { KNOT_RDATA_WF_REMAINDER, @@ -58,7 +60,7 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { [KNOT_RRTYPE_SIG] = { { 18, KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "SIG" }, - [KNOT_RRTYPE_KEY] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_KEY] = { { 4, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "KEY" }, [KNOT_RRTYPE_AAAA] = { { 16, KNOT_RDATA_WF_END }, "AAAA" }, [KNOT_RRTYPE_LOC] = { { 16, KNOT_RDATA_WF_END }, "LOC" }, @@ -69,7 +71,7 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { KNOT_RDATA_WF_END }, "NAPTR" }, [KNOT_RRTYPE_KX] = { { 2, KNOT_RDATA_WF_FIXED_DNAME, KNOT_RDATA_WF_END }, "KX" }, - [KNOT_RRTYPE_CERT] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_CERT] = { { 5, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "CERT" }, [KNOT_RRTYPE_DNAME] = { { KNOT_RDATA_WF_FIXED_DNAME, KNOT_RDATA_WF_END }, "DNAME" }, @@ -77,11 +79,11 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { KNOT_RDATA_WF_END }, "OPT" }, [KNOT_RRTYPE_APL] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "APL" }, - [KNOT_RRTYPE_DS] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_DS] = { { 4, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "DS" }, - [KNOT_RRTYPE_SSHFP] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_SSHFP] = { { 2, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "SSHFP" }, - [KNOT_RRTYPE_IPSECKEY] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_IPSECKEY] = { { 3, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "IPSECKEY" }, [KNOT_RRTYPE_RRSIG] = { { 18, KNOT_RDATA_WF_FIXED_DNAME, KNOT_RDATA_WF_REMAINDER, @@ -89,33 +91,35 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { [KNOT_RRTYPE_NSEC] = { { KNOT_RDATA_WF_FIXED_DNAME, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "NSEC" }, - [KNOT_RRTYPE_DNSKEY] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_DNSKEY] = { { 4, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "DNSKEY" }, [KNOT_RRTYPE_DHCID] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "DHCID" }, - [KNOT_RRTYPE_NSEC3] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_NSEC3] = { { 7, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "NSEC3" }, - [KNOT_RRTYPE_NSEC3PARAM] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_NSEC3PARAM] = { { 5, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "NSEC3PARAM" }, - [KNOT_RRTYPE_TLSA] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_TLSA] = { { 3, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "TLSA" }, [KNOT_RRTYPE_SMIMEA] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "SMIMEA" }, - [KNOT_RRTYPE_CDS] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_CDS] = { { 4, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "CDS" }, - [KNOT_RRTYPE_CDNSKEY] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_CDNSKEY] = { { 4, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "CDNSKEY" }, [KNOT_RRTYPE_OPENPGPKEY] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "OPENPGPKEY" }, - [KNOT_RRTYPE_CSYNC] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_CSYNC] = { { 6, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "CSYNC" }, - [KNOT_RRTYPE_ZONEMD] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_ZONEMD] = { { 6, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "ZONEMD" }, - [KNOT_RRTYPE_SVCB] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_SVCB] = { { 2, KNOT_RDATA_WF_FIXED_DNAME, + KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "SVCB" }, - [KNOT_RRTYPE_HTTPS] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_HTTPS] = { { 2, KNOT_RDATA_WF_FIXED_DNAME, + KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "HTTPS" }, - [KNOT_RRTYPE_DSYNC] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_DSYNC] = { { 5, KNOT_RDATA_WF_FIXED_DNAME, KNOT_RDATA_WF_END }, "DSYNC" }, [KNOT_RRTYPE_SPF] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "SPF" }, @@ -137,11 +141,10 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { KNOT_RDATA_WF_END }, "IXFR" }, [KNOT_RRTYPE_AXFR] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "AXFR" }, - [KNOT_RRTYPE_ANY] = { { KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "ANY" }, - [KNOT_RRTYPE_URI] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_ANY] = { { KNOT_RDATA_WF_END }, "ANY" }, + [KNOT_RRTYPE_URI] = { { 4, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "URI" }, - [KNOT_RRTYPE_CAA] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_CAA] = { { 1, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "CAA" }, [KNOT_RRTYPE_RESINFO] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "RESINFO" }, diff --git a/tests-extra/tests/ddns/basic/test.py b/tests-extra/tests/ddns/basic/test.py index 8d6fe63c95..01ffab031f 100644 --- a/tests-extra/tests/ddns/basic/test.py +++ b/tests-extra/tests/ddns/basic/test.py @@ -242,7 +242,7 @@ def do_normal_tests(master, zone, dnssec=False): up.send("NOERROR") resp = master.dig("svcb.ddns.", "SVCB", dnssec=dnssec) resp.check(rcode="NOERROR") - resp.check_record(section="additional", name="*.svcbtarget.ddns.", rtype="AAAA", ttl=3600, rdata="1::3") + resp.check_record(section="additional", name="target.svcb.svcbtarget.ddns.", rtype="AAAA", ttl=3600, rdata="1::3") resp.check_count(1, rtype="AAAA", section="additional") if dnssec: resp.check_count(2, rtype="RRSIG", section="additional") @@ -254,7 +254,7 @@ def do_normal_tests(master, zone, dnssec=False): up.send("NOERROR") resp = master.dig("svcb.ddns.", "SVCB", dnssec=dnssec) resp.check(rcode="NOERROR") - resp.check_record(section="additional", name="*.svcbtarget.ddns.", rtype="AAAA", ttl=3600, rdata="1::3") + resp.check_record(section="additional", name="target.svcb.svcbtarget.ddns.", rtype="AAAA", ttl=3600, rdata="1::3") resp.check_count(1, rtype="AAAA", section="additional") if dnssec: resp.check_count(2, rtype="RRSIG", section="additional") diff --git a/tests/libknot/test_descriptor.c b/tests/libknot/test_descriptor.c index d04bc4b8ce..6a3593e68b 100644 --- a/tests/libknot/test_descriptor.c +++ b/tests/libknot/test_descriptor.c @@ -74,10 +74,8 @@ int main(int argc, char *argv[]) // 5. ANY descr = knot_get_rdata_descriptor(255); ok(strcmp(descr->type_name, "ANY") == 0, "get ANY descriptor name"); - ok(descr->block_types[0] == KNOT_RDATA_WF_REMAINDER, + ok(descr->block_types[0] == KNOT_RDATA_WF_END, "get ANY descriptor 1. item type"); - ok(descr->block_types[1] == KNOT_RDATA_WF_END, - "get ANY descriptor 2. item type"); ret = knot_rrtype_to_string(255, name, BUF_LEN); ok(ret > 0, "get ANY ret"); From 2bb9e1cc7ac2d88949a2f380b32712cde4899412 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 26 Mar 2026 12:15:14 +0100 Subject: [PATCH 421/675] libknot/nsec3: ensure item length getters don't return overlimit values --- src/libknot/rrtype/nsec3.h | 6 ++++-- src/libknot/rrtype/nsec3param.h | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/libknot/rrtype/nsec3.h b/src/libknot/rrtype/nsec3.h index 270663e319..d76bddfaea 100644 --- a/src/libknot/rrtype/nsec3.h +++ b/src/libknot/rrtype/nsec3.h @@ -46,7 +46,8 @@ static inline uint8_t knot_nsec3_salt_len(const knot_rdata_t *rdata) { assert(rdata); - return *(rdata->data + 4); + uint8_t val = *(rdata->data + 4); + return (6 + val <= rdata->len) ? val : 0; } static inline @@ -60,7 +61,8 @@ static inline uint8_t knot_nsec3_next_len(const knot_rdata_t *rdata) { assert(rdata); - return *(rdata->data + 5 + knot_nsec3_salt_len(rdata)); + uint8_t val = *(rdata->data + 5 + knot_nsec3_salt_len(rdata)); + return (6 + knot_nsec3_salt_len(rdata) + val <= rdata->len) ? val : 0; } static inline diff --git a/src/libknot/rrtype/nsec3param.h b/src/libknot/rrtype/nsec3param.h index c046a3680d..a077314022 100644 --- a/src/libknot/rrtype/nsec3param.h +++ b/src/libknot/rrtype/nsec3param.h @@ -40,7 +40,8 @@ static inline uint8_t knot_nsec3param_salt_len(const knot_rdata_t *rdata) { assert(rdata); - return *(rdata->data + 4); + uint8_t val = *(rdata->data + 4); + return (5 + val == rdata->len) ? val : 0; } static inline From aba882554e88718d25061703e1b2e519f4180cb5 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 31 Mar 2026 12:30:19 +0200 Subject: [PATCH 422/675] libknot/zonemd: ensure item length getters don't return overlimit values --- src/libknot/rrtype/zonemd.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libknot/rrtype/zonemd.h b/src/libknot/rrtype/zonemd.h index b11b5cda23..62e6daa596 100644 --- a/src/libknot/rrtype/zonemd.h +++ b/src/libknot/rrtype/zonemd.h @@ -43,11 +43,12 @@ uint8_t knot_zonemd_algorithm(const knot_rdata_t *rdata) static inline size_t knot_zonemd_digest_size(const knot_rdata_t *rdata) { + size_t val = 0; switch (knot_zonemd_algorithm(rdata)) { - case KNOT_ZONEMD_ALGORITHM_SHA384: return 48; - case KNOT_ZONEMD_ALGORITHM_SHA512: return 64; - default: return 0; + case KNOT_ZONEMD_ALGORITHM_SHA384: val = 48; break; + case KNOT_ZONEMD_ALGORITHM_SHA512: val = 64; break; } + return val + 6 <= rdata->len ? val : 0; } static inline From 4efa28802b015f2001f8c170d83601fd8d2bf64e Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 26 Mar 2026 14:03:44 +0100 Subject: [PATCH 423/675] libknot/rrset-dump: check for valid data length prefix --- src/libknot/rrset-dump.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c index 0691cc945c..30d6c92145 100644 --- a/src/libknot/rrset-dump.c +++ b/src/libknot/rrset-dump.c @@ -478,6 +478,7 @@ static void wire_len_data_encode_to_str(rrset_dump_params_t *p, } if (in_len > 0) { + CHECK_INMAX(in_len) // Encode data directly to the output. int ret = enc(p->in, in_len, (uint8_t *)(p->out), p->out_max); CHECK_RET_POSITIVE @@ -536,6 +537,8 @@ static void wire_data_omit(rrset_dump_params_t *p, p->in_max -= len_len; } + CHECK_INMAX(in_len) + const char *omit_message = "[omitted]"; const size_t omlen = strlen(omit_message); From 86744b70e96ff0172e574c086abf421e81ecf99f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 30 Mar 2026 12:30:55 +0200 Subject: [PATCH 424/675] ctl: don't canonicalize rdata if in generic format and forced --- src/knot/ctl/commands.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 9cbaa434a5..4b0cac31b4 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1431,6 +1431,8 @@ static int create_rrset(knot_rrset_t **rrset, zone_t *zone, ctl_args_t *args, const char *data = args->data[KNOT_CTL_IDX_DATA]; const char *ttl = need_ttl ? args->data[KNOT_CTL_IDX_TTL] : NULL; + bool force = ctl_has_flag(args->data[KNOT_CTL_IDX_FLAGS], CTL_FLAG_FORCE); + // Prepare a buffer for a reconstructed record. const size_t buff_len = sizeof(ctl_globals[args->thread_idx].txt_rr); char *buff = ctl_globals[args->thread_idx].txt_rr; @@ -1487,7 +1489,7 @@ static int create_rrset(knot_rrset_t **rrset, zone_t *zone, ctl_args_t *args, goto parser_failed; } - if (scanner->r_data_generic) { + if (scanner->r_data_generic && !force) { ret = knot_rrset_rr_to_canonical(*rrset); } else { knot_dname_to_lower((*rrset)->owner); From a6868e14f3abd3106aabdac752b10e0b8afcd9c5 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 27 Mar 2026 16:45:53 +0100 Subject: [PATCH 425/675] libknot: distinguish RR types that may have non/empty rdata remainder --- src/libknot/descriptor.c | 24 ++++++++++++------------ src/libknot/descriptor.h | 2 ++ src/libknot/packet/rrset-wire.c | 2 ++ src/libknot/rrset.c | 5 +++++ tests/libknot/test_descriptor.c | 6 +++--- 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c index 1d1ed05fbf..e4453f065c 100644 --- a/src/libknot/descriptor.c +++ b/src/libknot/descriptor.c @@ -27,7 +27,7 @@ static const char* dns_classes[][2] = { * \note Variable and items are not verified for rdata oversize! */ static const knot_rdata_descriptor_t rdata_descriptors[] = { - [0] = { { KNOT_RDATA_WF_REMAINDER, + [0] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, NULL }, [KNOT_RRTYPE_A] = { { 4, KNOT_RDATA_WF_END }, "A" }, [KNOT_RRTYPE_NS] = { { KNOT_RDATA_WF_COMPRESSIBLE_DNAME, @@ -37,7 +37,7 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { [KNOT_RRTYPE_SOA] = { { KNOT_RDATA_WF_COMPRESSIBLE_DNAME, KNOT_RDATA_WF_COMPRESSIBLE_DNAME, 20, KNOT_RDATA_WF_END }, "SOA" }, - [KNOT_RRTYPE_NULL] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_NULL] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, "NULL" }, [KNOT_RRTYPE_PTR] = { { KNOT_RDATA_WF_COMPRESSIBLE_DNAME, KNOT_RDATA_WF_END }, "PTR" }, @@ -75,9 +75,9 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { KNOT_RDATA_WF_END }, "CERT" }, [KNOT_RRTYPE_DNAME] = { { KNOT_RDATA_WF_FIXED_DNAME, KNOT_RDATA_WF_END }, "DNAME" }, - [KNOT_RRTYPE_OPT] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_OPT] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, "OPT" }, - [KNOT_RRTYPE_APL] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_APL] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, "APL" }, [KNOT_RRTYPE_DS] = { { 4, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "DS" }, @@ -89,15 +89,15 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "RRSIG" }, [KNOT_RRTYPE_NSEC] = { { KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_REMAINDER, + KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, "NSEC" }, [KNOT_RRTYPE_DNSKEY] = { { 4, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "DNSKEY" }, [KNOT_RRTYPE_DHCID] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "DHCID" }, - [KNOT_RRTYPE_NSEC3] = { { 7, KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_NSEC3] = { { 7, KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, "NSEC3" }, - [KNOT_RRTYPE_NSEC3PARAM] = { { 5, KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_NSEC3PARAM] = { { 5, KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, "NSEC3PARAM" }, [KNOT_RRTYPE_TLSA] = { { 3, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "TLSA" }, @@ -109,15 +109,15 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { KNOT_RDATA_WF_END }, "CDNSKEY" }, [KNOT_RRTYPE_OPENPGPKEY] = { { KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "OPENPGPKEY" }, - [KNOT_RRTYPE_CSYNC] = { { 6, KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_CSYNC] = { { 6, KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, "CSYNC" }, [KNOT_RRTYPE_ZONEMD] = { { 6, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "ZONEMD" }, [KNOT_RRTYPE_SVCB] = { { 2, KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_REMAINDER, + KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, "SVCB" }, [KNOT_RRTYPE_HTTPS] = { { 2, KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_REMAINDER, + KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, "HTTPS" }, [KNOT_RRTYPE_DSYNC] = { { 5, KNOT_RDATA_WF_FIXED_DNAME, KNOT_RDATA_WF_END }, "DSYNC" }, @@ -137,9 +137,9 @@ static const knot_rdata_descriptor_t rdata_descriptors[] = { [KNOT_RRTYPE_TSIG] = { { KNOT_RDATA_WF_FIXED_DNAME, KNOT_RDATA_WF_REMAINDER, KNOT_RDATA_WF_END }, "TSIG" }, - [KNOT_RRTYPE_IXFR] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_IXFR] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, "IXFR" }, - [KNOT_RRTYPE_AXFR] = { { KNOT_RDATA_WF_REMAINDER, + [KNOT_RRTYPE_AXFR] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, KNOT_RDATA_WF_END }, "AXFR" }, [KNOT_RRTYPE_ANY] = { { KNOT_RDATA_WF_END }, "ANY" }, [KNOT_RRTYPE_URI] = { { 4, KNOT_RDATA_WF_REMAINDER, diff --git a/src/libknot/descriptor.h b/src/libknot/descriptor.h index 64bf659ebe..5c91b650eb 100644 --- a/src/libknot/descriptor.h +++ b/src/libknot/descriptor.h @@ -158,6 +158,8 @@ enum knot_rdata_wireformat { KNOT_RDATA_WF_NAPTR_HEADER, /*!< Final part of a record. */ KNOT_RDATA_WF_REMAINDER, + /*!< Final part that is allowed to be empty. */ + KNOT_RDATA_WF_REMAINDER_MAYEMPTY, /*!< The last descriptor in array. */ KNOT_RDATA_WF_END = 0 }; diff --git a/src/libknot/packet/rrset-wire.c b/src/libknot/packet/rrset-wire.c index 2ab0550d0b..bdfadced0e 100644 --- a/src/libknot/packet/rrset-wire.c +++ b/src/libknot/packet/rrset-wire.c @@ -402,6 +402,7 @@ static int rdata_traverse_write(const uint8_t **src, size_t *src_avail, ret = write_rdata_naptr_header(src, src_avail, dst, dst_avail); break; case KNOT_RDATA_WF_REMAINDER: + case KNOT_RDATA_WF_REMAINDER_MAYEMPTY: ret = write_rdata_fixed(src, src_avail, dst, dst_avail, *src_avail); break; default: @@ -611,6 +612,7 @@ static int rdata_traverse_parse(const uint8_t **src, size_t *src_avail, ret = write_rdata_naptr_header(src, src_avail, dst, dst_avail); break; case KNOT_RDATA_WF_REMAINDER: + case KNOT_RDATA_WF_REMAINDER_MAYEMPTY: ret = write_rdata_fixed(src, src_avail, dst, dst_avail, *src_avail); break; default: diff --git a/src/libknot/rrset.c b/src/libknot/rrset.c index 1486464873..972383e92d 100644 --- a/src/libknot/rrset.c +++ b/src/libknot/rrset.c @@ -170,6 +170,11 @@ int knot_rdata_to_canonical(knot_rdata_t *rdata, uint16_t type) pos += ret; break; case KNOT_RDATA_WF_REMAINDER: + if (pos >= endpos) { + return KNOT_EMALF; + } + break; + case KNOT_RDATA_WF_REMAINDER_MAYEMPTY: break; default: /* Fixed size block */ diff --git a/tests/libknot/test_descriptor.c b/tests/libknot/test_descriptor.c index 6a3593e68b..5e00833ab1 100644 --- a/tests/libknot/test_descriptor.c +++ b/tests/libknot/test_descriptor.c @@ -26,7 +26,7 @@ int main(int argc, char *argv[]) // 1. TYPE0 descr = knot_get_rdata_descriptor(0); ok(descr->type_name == 0, "get TYPE0 descriptor name"); - ok(descr->block_types[0] == KNOT_RDATA_WF_REMAINDER, + ok(descr->block_types[0] == KNOT_RDATA_WF_REMAINDER_MAYEMPTY, "get TYPE0 descriptor 1. item type"); ok(descr->block_types[1] == KNOT_RDATA_WF_END, "get TYPE0 descriptor 2. item type"); @@ -62,7 +62,7 @@ int main(int argc, char *argv[]) // 4. TYPE38 (A6) descr = knot_get_rdata_descriptor(38); ok(descr->type_name == 0, "get TYPE38 descriptor name"); - ok(descr->block_types[0] == KNOT_RDATA_WF_REMAINDER, + ok(descr->block_types[0] == KNOT_RDATA_WF_REMAINDER_MAYEMPTY, "get TYPE38 descriptor 1. item type"); ok(descr->block_types[1] == KNOT_RDATA_WF_END, "get TYPE38 descriptor 2. item type"); @@ -84,7 +84,7 @@ int main(int argc, char *argv[]) // 6. TYPE65535 descr = knot_get_rdata_descriptor(65535); ok(descr->type_name == 0, "get TYPE65535 descriptor name"); - ok(descr->block_types[0] == KNOT_RDATA_WF_REMAINDER, + ok(descr->block_types[0] == KNOT_RDATA_WF_REMAINDER_MAYEMPTY, "get TYPE65535 descriptor 1. item type"); ok(descr->block_types[1] == KNOT_RDATA_WF_END, "get TYPE65535 descriptor 2. item type"); From 475ad48626ccef48e5fe86a195d61c64d365e864 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 31 Mar 2026 11:18:59 +0200 Subject: [PATCH 426/675] ctl/zone-set: leak when RR parsing fails --- src/knot/ctl/commands.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 4b0cac31b4..353fd5f025 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1497,6 +1497,10 @@ static int create_rrset(knot_rrset_t **rrset, zone_t *zone, ctl_args_t *args, parser_failed: zs_deinit(scanner); + if (ret != KNOT_EOK) { + knot_rrset_free(*rrset, NULL); + } + return ret; } @@ -1512,7 +1516,7 @@ static int zone_txn_set_l(zone_t *zone, ctl_args_t *args) return KNOT_EINVAL; } - knot_rrset_t *rrset; + knot_rrset_t *rrset = NULL; int ret = create_rrset(&rrset, zone, args, true); if (ret != KNOT_EOK) { return ret; @@ -1549,7 +1553,7 @@ static int zone_txn_unset_l(zone_t *zone, ctl_args_t *args) return KNOT_EINVAL; } - knot_rrset_t *rrset; + knot_rrset_t *rrset = NULL; int ret = create_rrset(&rrset, zone, args, false); if (ret != KNOT_EOK) { return ret; From 23372fb4a654785b637620691c5da73b7d8c0491 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 27 Mar 2026 11:33:10 +0100 Subject: [PATCH 427/675] zonefile+ctl+redis: prevent malformed RRs in generic format --- distro/pkg/deb/libknot16.symbols | 1 + src/knot/zone/zonefile.c | 2 + src/libknot/descriptor.c | 8 + src/libknot/descriptor.h | 5 + src/libknot/packet/rrset-wire.c | 10 +- src/libknot/rrset.c | 37 ++-- src/libzscanner/NOTES | 1 + src/redis/internal.h | 4 +- .../malformed_rr/data/journal/data.mdb | Bin 12288 -> 0 bytes .../malformed_rr/data/journal/lock.mdb | Bin 512 -> 0 bytes .../records/malformed_rr/data/template.zone | 6 + .../tests/records/malformed_rr/test.py | 158 ++++++++++++------ 12 files changed, 162 insertions(+), 70 deletions(-) delete mode 100644 tests-extra/tests/records/malformed_rr/data/journal/data.mdb delete mode 100644 tests-extra/tests/records/malformed_rr/data/journal/lock.mdb create mode 100644 tests-extra/tests/records/malformed_rr/data/template.zone diff --git a/distro/pkg/deb/libknot16.symbols b/distro/pkg/deb/libknot16.symbols index cd0f9f5162..7541de6281 100644 --- a/distro/pkg/deb/libknot16.symbols +++ b/distro/pkg/deb/libknot16.symbols @@ -268,6 +268,7 @@ libknot.so.16 libknot16 #MINVER# knot_rrset_txt_dump_edns@Base 3.5.0 knot_rrset_txt_dump_header@Base 3.5.0 knot_rrtype_additional_needed@Base 3.5.0 + knot_rrtype_allows_empty@Base 3.5.4 knot_rrtype_from_string@Base 3.5.0 knot_rrtype_is_dnssec@Base 3.5.0 knot_rrtype_is_metatype@Base 3.5.0 diff --git a/src/knot/zone/zonefile.c b/src/knot/zone/zonefile.c index 20a28e71fd..eec9b64c06 100644 --- a/src/knot/zone/zonefile.c +++ b/src/knot/zone/zonefile.c @@ -91,6 +91,8 @@ static void process_data(zs_scanner_t *scanner) return; } + assert(scanner->r_data_length > 0 || knot_rrtype_allows_empty(scanner->r_type)); + knot_dname_t *owner = knot_dname_copy(scanner->r_owner, NULL); if (owner == NULL) { zl->ret = KNOT_ENOMEM; diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c index e4453f065c..7ed5c8c559 100644 --- a/src/libknot/descriptor.c +++ b/src/libknot/descriptor.c @@ -388,6 +388,14 @@ bool knot_rrtype_should_be_lowercased(const uint16_t type) type == KNOT_RRTYPE_RRSIG; } +_public_ +bool knot_rrtype_allows_empty(const uint16_t type) +{ + const knot_rdata_descriptor_t *descr = knot_get_rdata_descriptor(type); + // NOTE obsolete types' descriptors don't have this + return descr->block_types[0] == KNOT_RDATA_WF_REMAINDER_MAYEMPTY; +} + _public_ int knot_opt_code_to_string(const uint16_t code, char *out, const size_t out_len) { diff --git a/src/libknot/descriptor.h b/src/libknot/descriptor.h index 5c91b650eb..85bbf6db76 100644 --- a/src/libknot/descriptor.h +++ b/src/libknot/descriptor.h @@ -290,6 +290,11 @@ int knot_rrtype_additional_needed(const uint16_t type); */ bool knot_rrtype_should_be_lowercased(const uint16_t type); +/*! + * \brief Tells whether rdata on given RR type may be legally empty. + */ +bool knot_rrtype_allows_empty(const uint16_t type); + /*! * \brief Translates option code to string. * diff --git a/src/libknot/packet/rrset-wire.c b/src/libknot/packet/rrset-wire.c index bdfadced0e..9058d5799d 100644 --- a/src/libknot/packet/rrset-wire.c +++ b/src/libknot/packet/rrset-wire.c @@ -629,13 +629,9 @@ static int rdata_traverse_parse(const uint8_t **src, size_t *src_avail, return KNOT_EOK; } -static bool allow_zero_rdata(const knot_rrset_t *rr, - const knot_rdata_descriptor_t *desc) +static bool allow_zero_rdata(const knot_rrset_t *rr) { - return rr->rclass != KNOT_CLASS_IN || // NONE and ANY for DDNS - rr->type == KNOT_RRTYPE_APL || // APL RR type - rr->type == KNOT_RRTYPE_NULL || // NULL RR type - desc->type_name == NULL; // Unknown RR type + return rr->rclass != KNOT_CLASS_IN /* DDNS */ || knot_rrtype_allows_empty(rr->type); } static int parse_rdata(const uint8_t *pkt_wire, size_t *pos, size_t pkt_size, @@ -651,7 +647,7 @@ static int parse_rdata(const uint8_t *pkt_wire, size_t *pos, size_t pkt_size, } if (rdlength == 0) { - if (allow_zero_rdata(rrset, desc)) { + if (allow_zero_rdata(rrset)) { return knot_rrset_add_rdata(rrset, NULL, 0, mm); } else { return KNOT_EMALF; diff --git a/src/libknot/rrset.c b/src/libknot/rrset.c index 972383e92d..e246e2e673 100644 --- a/src/libknot/rrset.c +++ b/src/libknot/rrset.c @@ -132,8 +132,14 @@ int knot_rdata_to_canonical(knot_rdata_t *rdata, uint16_t type) return KNOT_EINVAL; } - /* Convert DNAMEs in RDATA only for RFC4034 types. */ - if (!knot_rrtype_should_be_lowercased(type)) { + /* + * NOTE - the non/zero rdata length MUST be guarded elsewhere. + * In case of incoming pkt this is rrset-wire.c:allow_zero_rdata() + * (including the exceptions for DDNS) + * in case of zonefile, ctl or Redis it is scanner-body.rl:_hex_r_data + */ + const uint16_t rdlen = rdata->len; + if (rdlen == 0) { return KNOT_EOK; } @@ -142,31 +148,31 @@ int knot_rdata_to_canonical(knot_rdata_t *rdata, uint16_t type) desc = knot_get_obsolete_rdata_descriptor(type); } - uint16_t rdlen = rdata->len; uint8_t *pos = rdata->data; uint8_t *endpos = pos + rdlen; - /* No RDATA */ - if (rdlen == 0) { - return KNOT_EOK; - } - - /* Otherwise, whole and not malformed RDATA are expected. */ + /* Check the RDATA items against the corresponding descriptor, lower case if needed. */ for (int i = 0; desc->block_types[i] != KNOT_RDATA_WF_END; ++i) { - int block_type = desc->block_types[i]; + int ret, block_type = desc->block_types[i]; switch (block_type) { case KNOT_RDATA_WF_COMPRESSIBLE_DNAME: case KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME: case KNOT_RDATA_WF_FIXED_DNAME: - knot_dname_to_lower(pos); - pos += knot_dname_size(pos); + ret = knot_dname_wire_check(pos, endpos, NULL); + if (ret <= 0) { + return KNOT_EMALF; + } + /* Convert DNAME in RDATA if needed. */ + if (knot_rrtype_should_be_lowercased(type)) { + knot_dname_to_lower(pos); + } + pos += ret; break; case KNOT_RDATA_WF_NAPTR_HEADER: - ; int ret = knot_naptr_header_size(pos, endpos); + ret = knot_naptr_header_size(pos, endpos); if (ret < 0) { return ret; } - pos += ret; break; case KNOT_RDATA_WF_REMAINDER: @@ -180,6 +186,9 @@ int knot_rdata_to_canonical(knot_rdata_t *rdata, uint16_t type) /* Fixed size block */ assert(block_type > 0); pos += block_type; + if (pos > endpos) { + return KNOT_EMALF; + } } } diff --git a/src/libzscanner/NOTES b/src/libzscanner/NOTES index a55f6055f0..3c4d0e7757 100644 --- a/src/libzscanner/NOTES +++ b/src/libzscanner/NOTES @@ -18,6 +18,7 @@ - timestamps in RRSIG are limited to the end of year 2225 - zscanner doesn't make semantic control of parser rdata - the following zone is considered ok with two records +- LP rdata are lower cased but shouldn't be """ . a ( 1.1.1.1 diff --git a/src/redis/internal.h b/src/redis/internal.h index 43eb47880f..e2e940ab2d 100644 --- a/src/redis/internal.h +++ b/src/redis/internal.h @@ -963,7 +963,7 @@ static void scanner_data(zs_scanner_t *s) uint8_t buf[knot_rdata_size(s->r_data_length)]; knot_rdata_t *rdata = (knot_rdata_t *)buf; knot_rdata_init(rdata, s->r_data_length, s->r_data); - if (knot_rdata_to_canonical(rdata, s->r_type) != KNOT_EOK) { + if (s->r_data_generic && knot_rdata_to_canonical(rdata, s->r_type) != KNOT_EOK) { RedisModule_ReplyWithError(s_ctx->ctx, RDB_EMALF); s_ctx->replied = true; s->error.fatal = true; @@ -1093,7 +1093,7 @@ static void run_scanner(scanner_ctx_t *s_ctx, const arg_dname_t *origin, if (zs_init(&s, origin->txt, KNOT_CLASS_IN, s_ctx->dflt_ttl) != 0 || zs_set_input_string(&s, data, data_len) != 0 || zs_set_processing(&s, scanner_data, scanner_error, s_ctx) != 0 || - zs_parse_all(&s) != 0 || s.error.fatal) { + (s.to_lower = true, zs_parse_all(&s) != 0) || s.error.fatal) { if (!s_ctx->replied) { RedisModule_ReplyWithError(s_ctx->ctx, RDB_EPARSE); } diff --git a/tests-extra/tests/records/malformed_rr/data/journal/data.mdb b/tests-extra/tests/records/malformed_rr/data/journal/data.mdb deleted file mode 100644 index e4cf0b4ed33d5cc16e7a3964bdf3bdebe135bf27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI1J#N%M6vv-G2q>}HRfH6TB3K#<3KaGLh$^Q*SdMqHYsvPkJa#~oIR^~|9R(#7 z+8fYNMo6518vx@Of9&iyO(ZJ*Uae<5^P4yC{nlGpChCqms`F#>>#NfZHSLt>R@-V~ zd(!UzX%Bm5e5B)zJ;zau!T=1w01UtY48Q;kzyJ)u01UtY4BXJb@Z9|`p8tpFLr*7q z(B|vzw7c95%fd1kfB_hQ0T_S*7=Qs7fB_hQ0T_UREd$;2H<3$E=rs5~`7}8VUWJ#z zJbWEo1$*J=;BvCH09_b>0T_S*7=Qs7fB_hQf&biquj&uf`GS=q< zzW>l&nez6?ksrD{r5FC95YLU-{S_BgE^}t3F|N0GdZN}H)-v+(%mC!?;K*+i_RtPH zjL(f##sy9K%?pT}ut%#Va^D$%vL8ycBE?&qg7C;ZY0k*(9vW-^M^(fkd$?g(*x zJlD>5C!RM#Tp!Q##YJ*v)K4$_Y7S(NJo3E-Uy*+A{=mNXc#_oXlr8$QHF;lMs~fZ8 aRh&f@7b@at;L<|=E#y5Bz2gNlH~I?@4f1XP diff --git a/tests-extra/tests/records/malformed_rr/data/journal/lock.mdb b/tests-extra/tests/records/malformed_rr/data/journal/lock.mdb deleted file mode 100644 index 27a21b22301307bde7bcf8560c8a255d9a787d79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmcb2;Qc;E21W)DfRJD&!+#)vuuw^u8W@c#%YaiKx;hviWDf|y_zgXe#V%IBc%w9} GLjVADjTVmp diff --git a/tests-extra/tests/records/malformed_rr/data/template.zone b/tests-extra/tests/records/malformed_rr/data/template.zone new file mode 100644 index 0000000000..e5deec1dc2 --- /dev/null +++ b/tests-extra/tests/records/malformed_rr/data/template.zone @@ -0,0 +1,6 @@ +@ SOA dns1 hostmaster 1 10800 3600 1209600 7200 + NS dns1 +dns1 A 192.0.2.1 +@ RRSIG SOA 0 2 3600 20491231235959 20200101010101 0 cds.short. aW52YWxpZA== ;; RRSIG for SOA denotes "signed" zone +@ DNSKEY 257 3 13 8lft3zdObNsOni2O2MNrram7jxKFMcP4M0GWQqlKep+sGisfUjWGz2sE2MAh3298xX7OHa0C4XpFe7W/gS560A== +@ CDNSKEY 257 3 13 8lft3zdObNsOni2O2MNrram7jxKFMcP4M0GWQqlKep+sGisfUjWGz2sE2MAh3298xX7OHa0C4XpFe7W/gS560A== ;; CDNSKEY and DNSKEY presence is checked before CDS processig diff --git a/tests-extra/tests/records/malformed_rr/test.py b/tests-extra/tests/records/malformed_rr/test.py index 532819228b..17f9e4b0ad 100644 --- a/tests-extra/tests/records/malformed_rr/test.py +++ b/tests-extra/tests/records/malformed_rr/test.py @@ -4,77 +4,141 @@ from dnstest.test import Test from dnstest.utils import * +import os import shutil +rrs = { + 'a': 'C000', + 'svcb': '0001000003000403646F68', + 'https': '0001', + 'cds': '0101', + 'nsec3': '01000000', + 'nsec3param': '01000000', + 'zonemd': '000000020101d564', +} + +zns_masl = [ "a.short.", "svcb.short.", "nsec3param.short.", "zonemd.short." ] + +def add_owner(zn): + if zn == 'nsec3.short.': + return '5rv3hj8n5hjgjckqd09lssc266f6mtcf' # knsec3hash 1 0 0 - nsec3.short. + elif zn == 'nsec3.empty.': + return 'f06u65p6uholedjsnl6gvdftpmc0cfo0' # knsec3hash 1 0 0 - nsec3.empty. + else: + return zn + +def add_rr(zn): + (what, how) = zn.split(".")[:2] + res = add_owner(zn) + " " + what + " \\# " + if how == "empty": + return res + "0" + else: + return res + "%d %s" % (len(rrs[what]) / 2, rrs[what]) + +zns_short = [ '%s.short' % x for x in rrs ] +zns_empty = [ '%s.empty' % x for x in rrs ] + t = Test() master = t.server("knot") slave = t.server("knot") zfloader = t.server("knot") -ZONE = "example.com." -zone = t.zone(ZONE) - -t.link(zone, master, slave) -t.link(zone, zfloader) -master.conf_zone(zone).zonefile_load = "none" -master.conf_zone(zone).journal_content = "all" +zones_short = sum([t.zone(zn, storage=".", exists=False) for zn in zns_short], []) +zones_empty = sum([t.zone(zn, storage=".", exists=False) for zn in zns_empty], []) +zones_all = zones_short + zones_empty +zones_masl = [ x for x in zones_short if x.name in zns_masl ] +zones_zfld = zones_all -zfloader.conf_zone(zone).zonefile_load = "difference-no-serial" -zfloader.conf_zone(zone).journal_content = "all" +t.link(zones_masl, master, slave) +t.link(zones_zfld, zfloader) -shutil.copytree(os.path.join(t.data_dir, "journal"), os.path.join(master.dir, "journal")) +master.conf_zone(zones_masl).journal_content = "all" +master.conf_zone(zones_masl).semantic_checks = False -t.start() +zfloader.conf_zone(zones_all).zonefile_load = "difference-no-serial" +zfloader.conf_zone(zones_all).journal_content = "all" +zfloader.conf_zone(zones_all).semantic_checks = True -serial = master.zone_wait(zone) -master.ctl("zone-flush", wait=True) +for s in [slave, zfloader]: + for z in zones_all: + if "zonemd" in z.name: + s.conf_zone(z).zonemd_verify = True -generic_a = False -with open(master.zones[ZONE].zfile.path, "r") as f: - for l in f: - if "\\# 2 C000" in l: - generic_a = True +for z in zones_all: + for s in [ master, zfloader]: + if z.name in s.zones: + shutil.copyfile(os.path.join(t.data_dir, "template.zone"), s.zones[z.name].zfile.path) -if not generic_a: - set_err("NO GENERIC A") +t.start() -resp = master.dig("dns2." + ZONE, "A") -resp.check(rcode="NOERROR", rdata="192.0.2.2") +serials = master.zones_wait(zones_masl) +for z in zones_masl: + master.ctl("zone-begin " + z.name) + try: + master.ctl("zone-set " + z.name + " " + add_rr(z.name)) + if z.name != "svcb.short." and z.name != 'zonemd.short.': + detail_log("Allowed malformed generic RR in ctl " + z.name) + set_err("Allowed malformed generic RR in ctl " + z.name) + except: + master.ctl("-f zone-set " + z.name + " " + add_rr(z.name)) + if 'nsec3.' in z.name: + master.ctl("zone-set %s @ NSEC3PARAM 1 0 0 -" % z.name) + try: + master.ctl("zone-commit " + z.name) + except: + if 'nsec3param' in z.name: + pass + else: + raise + + +master.zones_wait([x for x in zones_masl if 'nsec3param' not in x.name], serials) +t.sleep(2) +serials["svcb.short."] += 1 # SVCB is not malformed to the degree that it would fail canonicalization +slave.zones_wait([x for x in zones_masl if 'zonemd' not in x.name], serials, equal=True, greater=False) +master.ctl("zone-flush", wait=True) -resp = master.dig("dns1." + ZONE, "A") -resp.check(rcode="SERVFAIL", nordata="192.0.2.1") +for z in zones_masl: + if 'nsec3param' in z.name or 'zonemd' in z.name: + continue -try: - resp = master.dig("svcb." + ZONE, "SVCB", timeout=0.3) - resp.check(rcode="NOERROR") -except Failed: - pass + generic_found = False + with open(master.zones[z.name].zfile.path, "r") as f: + for l in f: + if "\\# " in l: + generic_found = True + if not generic_found: + detail_log("No generic RR in " + z.name) + set_err("No generic RR in " + z.name) -resp = slave.dig("dns2." + ZONE, "A") -resp.check(rcode="SERVFAIL", nordata="192.0.2.2") + resp = master.dig("dns1." + z.name, "A") + resp.check(rcode="NOERROR", rdata="192.0.2.1") -resp = slave.dig("svcb." + ZONE, "SVCB") +resp = master.dig("a.short.", "A") resp.check(rcode="SERVFAIL") -resp = zfloader.dig("svcb." + ZONE, "SVCB") -resp.check(rcode="NXDOMAIN") - -shutil.copyfile(master.zones[ZONE].zfile.path, zfloader.zones[ZONE].zfile.path) -zfloader.ctl("zone-reload", wait=True) - -zfloader.zone_wait(zone, serial) - -resp = zfloader.dig("dns2." + ZONE, "A") -resp.check(rcode="NOERROR", rdata="192.0.2.2") - -resp = zfloader.dig("dns1." + ZONE, "A") -resp.check(rcode="SERVFAIL", nordata="192.0.2.1") - try: - resp = zfloader.dig("svcb." + ZONE, "SVCB", timeout=0.3) + resp = master.dig("svcb.short.", "SVCB", timeout=0.3) resp.check(rcode="NOERROR") except Failed: pass +for z in zones_zfld: + if z.name in master.zones and 'nsec3param' not in z.name: + shutil.copyfile(master.zones[z.name].zfile.path, zfloader.zones[z.name].zfile.path) + else: + with open(zfloader.zones[z.name].zfile.path, "a") as f: + f.write(add_rr(z.name) + "\n") + if 'nsec3.' in z.name: + f.write("@ NSEC3PARAM 1 0 0 -\n") + + try: + zfloader.ctl("zone-reload " + z.name, wait=True) + if z.name != "svcb.short." and z.name != 'zonemd.short.': + detail_log("Allowed malformed generic RR in zone file " + z.name) + set_err("Allowed malformed generic RR in zone file " + z.name) + except: + pass + t.end() From c6850f65950fd150699d52d83fee629121da6c57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Fri, 27 Feb 2026 19:51:37 +0100 Subject: [PATCH 428/675] libknot: add EDNS Report-Channel option --- src/libknot/codes.c | 1 + src/libknot/rrtype/opt.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/libknot/codes.c b/src/libknot/codes.c index 458e4eee61..ab495c88c7 100644 --- a/src/libknot/codes.c +++ b/src/libknot/codes.c @@ -131,6 +131,7 @@ const knot_lookup_t knot_edns_opt_names[] = { { KNOT_EDNS_OPTION_PADDING, "PADDING" }, { KNOT_EDNS_OPTION_CHAIN, "CHAIN" }, { KNOT_EDNS_OPTION_EDE, "EDE" }, + { KNOT_EDNS_OPTION_REPORT_CHANNEL,"REPORTCHANNEL" }, { KNOT_EDNS_OPTION_ZONEVERSION, "ZONEVERSION" }, { 0, NULL } }; diff --git a/src/libknot/rrtype/opt.h b/src/libknot/rrtype/opt.h index 3e33396d97..86d8bd8799 100644 --- a/src/libknot/rrtype/opt.h +++ b/src/libknot/rrtype/opt.h @@ -84,6 +84,8 @@ enum { KNOT_EDNS_OPTION_CHAIN = 13, /*! \brief EDNS Extended error code. */ KNOT_EDNS_OPTION_EDE = 15, + /*! \brief EDNS DNS Report Channel code. */ + KNOT_EDNS_OPTION_REPORT_CHANNEL= 18, /*! \brief EDNS Zone version option code. */ KNOT_EDNS_OPTION_ZONEVERSION = 19, From 4395effb589f898b574552bd61b1a72f0cdf386a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Fri, 27 Feb 2026 19:55:08 +0100 Subject: [PATCH 429/675] kdig: add support for EDNS Report-Channel option --- src/utils/common/exec.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/utils/common/exec.c b/src/utils/common/exec.c index 23483cf92c..62ee19fe9e 100644 --- a/src/utils/common/exec.c +++ b/src/utils/common/exec.c @@ -285,6 +285,17 @@ static void print_expire(const uint8_t *data, uint16_t len) } } +static void print_dname(const uint8_t *data, uint16_t len) +{ + if (len == 0) { + printf("(empty)"); + } else { + char str[KNOT_DNAME_TXT_MAXLEN] = ""; + knot_dname_to_str(str, data, sizeof(str)); + printf("%s", str); + } +} + static void print_zoneversion(const uint8_t *data, uint16_t len, const knot_dname_t *qname) { knot_dname_storage_t zone; @@ -380,6 +391,10 @@ static void print_section_opt(const knot_pkt_t *packet, const style_t *style) printf(";; EXPIRE: "); print_expire(opt_data, opt_len); break; + case KNOT_EDNS_OPTION_REPORT_CHANNEL: + printf(";; REPORTCHANNEL: "); + print_dname(opt_data, opt_len); + break; case KNOT_EDNS_OPTION_ZONEVERSION: printf(";; ZONEVERSION: "); const knot_dname_t *qname = knot_pkt_qname(packet); From 69784550cf14210341c4d2132742250e651f4792 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Mon, 9 Feb 2026 14:57:44 +0100 Subject: [PATCH 430/675] knotd: add module for EDNS error reporting, RFC 9567 --- Knot.files | 2 + configure.ac | 1 + src/knot/Makefile.inc | 1 + src/knot/modules/dnserr/Makefile.inc | 13 + src/knot/modules/dnserr/dnserr.c | 434 +++++++++++++++++++++++ src/knot/modules/dnserr/dnserr.rst | 92 +++++ tests-extra/tests/modules/dnserr/test.py | 153 ++++++++ tests-extra/tools/dnstest/module.py | 31 ++ tests/.gitignore | 1 + tests/Makefile.am | 10 + tests/modules/test_dnserr.c | 88 +++++ 11 files changed, 826 insertions(+) create mode 100644 src/knot/modules/dnserr/Makefile.inc create mode 100644 src/knot/modules/dnserr/dnserr.c create mode 100644 src/knot/modules/dnserr/dnserr.rst create mode 100644 tests-extra/tests/modules/dnserr/test.py create mode 100644 tests/modules/test_dnserr.c diff --git a/Knot.files b/Knot.files index 4f617a7eb4..9410df8859 100644 --- a/Knot.files +++ b/Knot.files @@ -289,6 +289,7 @@ src/knot/journal/serialization.c src/knot/journal/serialization.h src/knot/modules/authsignal/authsignal.c src/knot/modules/cookies/cookies.c +src/knot/modules/dnserr/dnserr.c src/knot/modules/dnsproxy/dnsproxy.c src/knot/modules/dnstap/dnstap.c src/knot/modules/geoip/geodb.c @@ -756,6 +757,7 @@ tests/libknot/test_yptrafo.c tests/libzscanner/processing.c tests/libzscanner/processing.h tests/libzscanner/zscanner-tool.c +tests/modules/test_dnserr.c tests/modules/test_onlinesign.c tests/modules/test_rrl.c tests/tap/basic.c diff --git a/configure.ac b/configure.ac index e28c825c32..1514966d83 100644 --- a/configure.ac +++ b/configure.ac @@ -413,6 +413,7 @@ doc_modules="" KNOT_MODULE([authsignal], "yes") KNOT_MODULE([cookies], "yes") +KNOT_MODULE([dnserr], "yes") KNOT_MODULE([dnsproxy], "yes", "non-shareable") KNOT_MODULE([dnstap], "no") KNOT_MODULE([geoip], "yes") diff --git a/src/knot/Makefile.inc b/src/knot/Makefile.inc index b325ea4fb0..19cb78a71b 100644 --- a/src/knot/Makefile.inc +++ b/src/knot/Makefile.inc @@ -262,6 +262,7 @@ pkglib_LTLIBRARIES = include $(srcdir)/knot/modules/authsignal/Makefile.inc include $(srcdir)/knot/modules/cookies/Makefile.inc +include $(srcdir)/knot/modules/dnserr/Makefile.inc include $(srcdir)/knot/modules/dnsproxy/Makefile.inc include $(srcdir)/knot/modules/dnstap/Makefile.inc include $(srcdir)/knot/modules/geoip/Makefile.inc diff --git a/src/knot/modules/dnserr/Makefile.inc b/src/knot/modules/dnserr/Makefile.inc new file mode 100644 index 0000000000..513c4521c9 --- /dev/null +++ b/src/knot/modules/dnserr/Makefile.inc @@ -0,0 +1,13 @@ +knot_modules_dnserr_la_SOURCES = knot/modules/dnserr/dnserr.c +EXTRA_DIST += knot/modules/dnserr/dnserr.rst + +if STATIC_MODULE_dnserr +libknotd_la_SOURCES += $(knot_modules_dnserr_la_SOURCES) +endif + +if SHARED_MODULE_dnserr +knot_modules_dnserr_la_LDFLAGS = $(KNOTD_MOD_LDFLAGS) +knot_modules_dnserr_la_CPPFLAGS = $(KNOTD_MOD_CPPFLAGS) +knot_modules_dnserr_la_LIBADD = $(libcontrib_LIBS) +pkglib_LTLIBRARIES += knot/modules/dnserr.la +endif diff --git a/src/knot/modules/dnserr/dnserr.c b/src/knot/modules/dnserr/dnserr.c new file mode 100644 index 0000000000..e4c22ef5a3 --- /dev/null +++ b/src/knot/modules/dnserr/dnserr.c @@ -0,0 +1,434 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#include +#include + +#include "contrib/atomic.h" +#include "contrib/sockaddr.h" +#include "contrib/strtonum.h" +#include "contrib/time.h" +#include "contrib/wire_ctx.h" +#include "knot/include/module.h" +#include "libknot/descriptor.h" + +#define MOD_CHANNEL "\x0e""report-channel" +#define MOD_AGENT "\x05""agent" +#define MOD_CACHESIZE "\x0a""cache-size" +#define MOD_CACHELIFETIME "\x0e""cache-lifetime" + +#define RESPONSE "\x0f""Report received" + +const yp_item_t dnserr_conf[] = { + { MOD_CHANNEL, YP_TDNAME, YP_VNONE }, + { MOD_AGENT, YP_TBOOL, YP_VNONE }, + { MOD_CACHESIZE, YP_TINT, YP_VINT = { 1, INT32_MAX, 1000 }}, + { MOD_CACHELIFETIME, YP_TINT, YP_VINT = { 1, 36 * 24 * 3600, 10, YP_STIME }}, + { NULL } +}; + +typedef struct { + uint16_t qtypes[32]; + const uint8_t *record; + const uint8_t *record_end; + uint16_t err; + uint8_t qtypes_cnt; +} dnserr_parsed_t; + +typedef struct { + uint16_t err; + uint16_t qtype; + knot_dname_storage_t record; + sockaddr_t addr; + bool used; +} log_tuple_t; + +typedef struct { + pthread_rwlock_t lock; + log_tuple_t data; +} log_set_el_t; + +typedef struct { + pthread_rwlock_t clean_lock; + size_t size; + log_set_el_t *table; +} log_set_t; + +typedef struct { + log_set_t cache; + knot_atomic_uint64_t last_cleanup; + const knot_dname_t *channel; + uint32_t lifetime; + uint8_t channel_size; + uint8_t zone_labels; + bool agent; +} dnserr_ctx_t; + +int dnserr_conf_check(knotd_conf_check_args_t *args) +{ + knotd_conf_t conf_agent = knotd_conf_check_item(args, MOD_AGENT); + if (!conf_agent.single.boolean) { + knotd_conf_t conf_channel = knotd_conf_check_item(args, MOD_CHANNEL); + if (conf_channel.count == 0 || conf_channel.single.dname[0] == '\0') { + args->err_str = "no valid report channel specified"; + return KNOT_EINVAL; + } + } + + return KNOT_EOK; +} + +static uint64_t log_tuple_hash(const log_tuple_t *val) +{ + if (val == NULL) { + return 0; + } + + const uint64_t *h = (const uint64_t *)val; + // Fast hash by XOR qtype, error and first 20 chars of record + return h[0] ^ h[1] ^ h[2]; +} + +static bool log_tuple_eq(const log_tuple_t *a, const log_tuple_t *b) +{ + return a->err == b->err && + a->qtype == b->qtype && + knot_dname_is_equal((const knot_dname_t *)&a->record, + (const knot_dname_t *)&b->record) && + sockaddr_cmp((struct sockaddr_storage *)&a->addr, + (struct sockaddr_storage *)&b->addr, true) == 0; +} + +static int hashset_add(log_set_t *set, const log_tuple_t *val) +{ + /* NOTE: After some testing, limit 10 ought to be enough + * A larger number of iterations (search depth) is a waste of CPU time + * and has no real impact on HIT/MISS (except for disproportionately large + * tables, where a lot of iterations help). + */ + pthread_rwlock_rdlock(&set->clean_lock); + static const size_t JUMP_LIMIT = 10; + uint64_t h = log_tuple_hash(val); + int i = 1; + while (i < JUMP_LIMIT) { + uint64_t idx = h % set->size; + log_set_el_t *it = set->table + idx; + + pthread_rwlock_rdlock(&it->lock); + if (!it->data.used) { + pthread_rwlock_unlock(&it->lock); + pthread_rwlock_wrlock(&it->lock); + // NOTE: have to check empty space with RW lock acquired + if (it->data.used) { + pthread_rwlock_unlock(&it->lock); + continue; + } + memcpy(&it->data, val, sizeof(*val)); + pthread_rwlock_unlock(&it->lock); + pthread_rwlock_unlock(&set->clean_lock); + return KNOT_EOK; + } + bool equals = log_tuple_eq(val, &it->data); + pthread_rwlock_unlock(&it->lock); + if (equals) { + pthread_rwlock_unlock(&set->clean_lock); + return KNOT_EEXIST; + } + + // Quadratic probing + h += i * i; + ++i; + } + pthread_rwlock_unlock(&set->clean_lock); + return KNOT_ELIMIT; +} + +static void hashset_clean(log_set_t *set) +{ + pthread_rwlock_wrlock(&set->clean_lock); + for (log_set_el_t *el = set->table; el != set->table + set->size; ++el) { + pthread_rwlock_wrlock(&el->lock); + el->data.used = false; + pthread_rwlock_unlock(&el->lock); + } + pthread_rwlock_unlock(&set->clean_lock); +} + +static bool equal_label(const knot_dname_t *a, const knot_dname_t *b) +{ + return a[0] == b[0] && memcmp(&a[1], &b[1], a[0]) == 0; +} + +static void incr_label(const knot_dname_t **label) +{ + *label += 1 + (*label)[0]; +} + +static bool parse_qtype_label(dnserr_parsed_t *out, const uint8_t *label) +{ + assert(label[0] != '\0'); // Ensured by the label count check. + + out->qtypes_cnt = 0; // Cannot overflow as there can be up to 63 label chars. + bool empty = true; + unsigned val = 0; + for (int i = 1; i <= label[0]; i++) { + if (label[i] == '-') { + if (i == 1 || i == label[0] || empty) { + return false; + } + out->qtypes[out->qtypes_cnt++] = val; + val = 0; + empty = true; + continue; + } else if (label[i] < '0' || label[i] > '9') { + return false; + } + val *= 10; + val += label[i] - '0'; + if (val == 0 || val > UINT16_MAX) { + return false; + } + empty = false; + } + out->qtypes[out->qtypes_cnt++] = val; + return true; +} + +static bool parse_err_label(dnserr_parsed_t *out, const uint8_t *label) +{ + assert(label[0] != '\0'); // Ensured by the label count check. + + unsigned val = 0; + for (int i = 1; i <= label[0]; i++) { + if (label[i] < '0' || label[i] > '9') { + return false; + } + val *= 10; + val += label[i] - '0'; + if (val > UINT16_MAX) { // val = 0 is valid error + return false; + } + } + out->err = val; + return true; +} + +static int report_query(dnserr_parsed_t *out, uint8_t zone_labels, const knot_dname_t *qname) +{ + static const uint8_t ER_LABEL[4] = "\x03""_er"; + + // Check leading _er label. + const knot_dname_t *label = qname; + if (!equal_label(label, ER_LABEL)) { + return KNOT_ENOENT; + } + incr_label(&label); + + // Check enough labels. + size_t labels = knot_dname_labels(qname, NULL); + if (labels < 5 + zone_labels) { + return KNOT_EMALF; + } + + // Parse QTYPEs label. + if (!parse_qtype_label(out, label)) { + return KNOT_EMALF; + } + incr_label(&label); + + // Find owner labels. + uint8_t record_labels = labels - zone_labels - 4; + out->record = label; + for (int i = 0; i < record_labels; i++) { + incr_label(&label); + } + out->record_end = label; + + // Parse error code label. + if (!parse_err_label(out, label)) { + return KNOT_EMALF; + } + incr_label(&label); + + // Check trailing _er label. + if (!equal_label(label, ER_LABEL)) { + return KNOT_EMALF; + } + + return KNOT_EOK; +} + +static knotd_in_state_t handle_report(knotd_in_state_t state, knot_pkt_t *pkt, + knotd_qdata_t *qdata, knotd_mod_t *mod) +{ + assert(pkt && qdata && mod); + + dnserr_ctx_t *ctx = knotd_mod_ctx(mod); + assert(ctx->agent); + + dnserr_parsed_t parsed; + const uint16_t qtype = knot_pkt_qtype(qdata->query); + const uint16_t qclass = knot_pkt_qclass(qdata->query); + if (qclass != KNOT_CLASS_IN || qtype != KNOT_RRTYPE_TXT) { + return state; + } + + int ret = report_query(&parsed, ctx->zone_labels, qdata->name); + if (ret == KNOT_EMALF) { + qdata->rcode = KNOT_RCODE_FORMERR; + return KNOTD_IN_STATE_ERROR; + } else if (ret != KNOT_EOK) { + return state; + } + + if ((qdata->params->proto == KNOTD_QUERY_PROTO_UDP) && + (qdata->params->flags & KNOTD_QUERY_FLAG_COOKIE) == 0) { + knot_wire_set_aa(pkt->wire); + knot_wire_set_tc(pkt->wire); + return KNOTD_IN_STATE_TRUNC; + } + + knot_rrset_t *rr = knot_rrset_new(qdata->name, KNOT_RRTYPE_TXT, + KNOT_CLASS_IN, ctx->lifetime, &pkt->mm); + if (rr == NULL) { + return KNOTD_IN_STATE_ERROR; + } + if (knot_rrset_add_rdata(rr, (uint8_t *)RESPONSE, sizeof(RESPONSE) - 1, + &pkt->mm) != KNOT_EOK) { + knot_rrset_free(rr, &pkt->mm); + return KNOTD_IN_STATE_ERROR; + } + if (knot_pkt_put(pkt, KNOT_COMPR_HINT_QNAME, rr, KNOT_PF_FREE) != KNOT_EOK) { + knot_rrset_free(rr, &pkt->mm); + return KNOTD_IN_STATE_ERROR; + } + + uint64_t last, now; + do { + last = ATOMIC_GET(ctx->last_cleanup); + now = knot_millis_now(); + + if (now - last <= ctx->lifetime * 1000) { + break; + } + } while (!ATOMIC_CMPXCHG(ctx->last_cleanup, last, now)); + if (now - last > ctx->lifetime * 1000) { + hashset_clean(&ctx->cache); + } + + log_tuple_t ev = { + .err = parsed.err, + .used = true + }; + memcpy(&ev.addr, knotd_qdata_remote_addr(qdata), sizeof(ev.addr)); + sockaddr_port_set((struct sockaddr_storage *)&ev.addr, 0); // Ignore source port. + memcpy(ev.record, parsed.record, parsed.record_end - parsed.record); + ev.record[parsed.record_end - parsed.record] = '\0'; + + // For each QTYPE store one event into hashset + for (int idx = 0; idx < parsed.qtypes_cnt; ++idx) { + ev.qtype = parsed.qtypes[idx]; + int op = hashset_add(&ctx->cache, &ev); + if (op != KNOT_EOK) { + continue; + } + + char addr_str[SOCKADDR_STRLEN]; + char owner_str[KNOT_DNAME_TXT_MAXLEN]; + char qtype_str[32]; + if (sockaddr_tostr(addr_str, sizeof(addr_str), (struct sockaddr_storage *)&ev.addr) > 0 && + knot_dname_to_str(owner_str, ev.record, sizeof(owner_str)) != NULL && + knot_rrtype_to_string(ev.qtype, qtype_str, sizeof(qtype_str))) { + knotd_mod_log(mod, LOG_NOTICE, "report, qname '%s', qtype %s, error %u, client %s", + owner_str, qtype_str, ev.err, addr_str); + } else { + knotd_mod_log(mod, LOG_ERR, "failed to log report"); + } + } + + return KNOTD_IN_STATE_HIT; +} + +static knotd_in_state_t report_channel(knotd_in_state_t state, knot_pkt_t *pkt, + knotd_qdata_t *qdata, knotd_mod_t *mod) +{ + assert(pkt && qdata && mod); + + dnserr_ctx_t *ctx = knotd_mod_ctx(mod); + assert(!ctx->agent); + + if (knot_rrset_empty(&qdata->opt_rr)) { + return state; + } + + // Best effort. + if (knot_pkt_reserve(pkt, KNOT_EDNS_OPTION_HDRLEN + ctx->channel_size) == KNOT_EOK) { + (void)knot_edns_add_option(&qdata->opt_rr, KNOT_EDNS_OPTION_REPORT_CHANNEL, + ctx->channel_size, ctx->channel, qdata->mm); + } + + return state; +} + +int dnserr_load(knotd_mod_t *mod) +{ + dnserr_ctx_t *ctx = calloc(1, sizeof(*ctx)); + if (ctx == NULL) { + return KNOT_ENOMEM; + } + + knotd_conf_t conf_log = knotd_conf_mod(mod, MOD_AGENT); + ctx->agent = conf_log.single.boolean; + + if (ctx->agent) { + knotd_conf_t conf_cachesize = knotd_conf_mod(mod, MOD_CACHESIZE); + ctx->cache.size = conf_cachesize.single.integer; + ctx->cache.table = calloc(ctx->cache.size, sizeof(log_set_el_t)); + if (ctx->cache.table == NULL) { + free(ctx); + return KNOT_ENOMEM; + } + + pthread_rwlock_init(&ctx->cache.clean_lock, NULL); + for (int i = 0; i < ctx->cache.size; ++i) { + pthread_rwlock_init(&ctx->cache.table[i].lock, NULL); + } + + ctx->zone_labels = knot_dname_labels(knotd_mod_zone(mod), NULL); + knotd_conf_t conf_lifetime = knotd_conf_mod(mod, MOD_CACHELIFETIME); + ctx->lifetime = conf_lifetime.single.integer; + } else { + knotd_conf_t conf_agent = knotd_conf_mod(mod, MOD_CHANNEL); + ctx->channel = conf_agent.single.dname; + ctx->channel_size = knot_dname_size(ctx->channel); + } + + knotd_mod_ctx_set(mod, ctx); + + if (ctx->agent) { + return knotd_mod_in_hook(mod, KNOTD_STAGE_PREANSWER, handle_report); + } else { + return knotd_mod_in_hook(mod, KNOTD_STAGE_ANSWER, report_channel); + } +} + +void dnserr_unload(knotd_mod_t *mod) +{ + dnserr_ctx_t *ctx = knotd_mod_ctx(mod); + + if (ctx->agent) { + pthread_rwlock_wrlock(&ctx->cache.clean_lock); + for (int i = 0; i < ctx->cache.size; ++i) { + pthread_rwlock_destroy(&ctx->cache.table[i].lock); + } + pthread_rwlock_unlock(&ctx->cache.clean_lock); + pthread_rwlock_destroy(&ctx->cache.clean_lock); + free(ctx->cache.table); + } + free(ctx); +} + +KNOTD_MOD_API(dnserr, KNOTD_MOD_FLAG_SCOPE_ZONE, + dnserr_load, dnserr_unload, dnserr_conf, dnserr_conf_check); diff --git a/src/knot/modules/dnserr/dnserr.rst b/src/knot/modules/dnserr/dnserr.rst new file mode 100644 index 0000000000..605a3f9e17 --- /dev/null +++ b/src/knot/modules/dnserr/dnserr.rst @@ -0,0 +1,92 @@ +.. _mod-dnserr: + +``dnserr`` — DNS Error Reporting +================================ + +The module implements :rfc:`9567` and can be used either to indicate support +for DNS error reporting or as a monitoring agent. + +Example +------- + +Use this configuration to tell resolvers that if they encounter an error +with `example.com`, they should send a report to `channel.example`. + +:: + + mod-dnserr: + - id: report + report-channel: channel.example + + zone: + - domain: example.com + module: mod-dnserr/report + +Use this configuration on the server responsible for `channel.example` +to capture incoming error reports. The zone name is considered as the report +channel name. Unique reports are cached to prevent log flooding. + +:: + + mod-dnserr: + - id: agent + agent: on + + zone: + - domain: channel.example + module: mod-dnserr/agent + +Module reference +---------------- + +:: + + mod-dnserr: + - id: STR + report-channel: DNAME + agent: BOOL + cache-size: INT + cache-lifetime: TIME + +.. _mod-dnserr_id: + +id +.. + +A module identifier. + +.. _mod-dnserr_report-channel: + +report-channel +.............. + +Enables the announcement of DNS error reporting to the specified channel. + +*Default:* not set + +.. _mod-dnserr_agent: + +agent +..... + +Enables monitoring agent mode. Received reports are logged to the server log. + +*Default:* not set + +.. _mod-dnserr_cache-size: + +cache-size +.......... + +Size of the cache that stores unique reports to be logged. + +*Default:* 1000 + +.. _mod-dnserr_cache-lifetime: + +cache-lifetime +.............. + +Lifetime of the log cache in seconds. + +*Default:* 10 diff --git a/tests-extra/tests/modules/dnserr/test.py b/tests-extra/tests/modules/dnserr/test.py new file mode 100644 index 0000000000..ec9e950d9b --- /dev/null +++ b/tests-extra/tests/modules/dnserr/test.py @@ -0,0 +1,153 @@ +#!/usr/bin/env python3 + +''' Check DNS Error Reporting module. ''' + +import dns +from dnstest.module import ModDnsErr +from dnstest.test import Test +from dnstest.utils import * + +# Backward compatibility +if not hasattr(dns.edns, "ReportChannelOption"): + ReportChannelCode = 18 + + class ReportChannelOption(dns.edns.Option): + def __init__(self, agent_domain): + super().__init__(ReportChannelCode) + self.agent_domain = agent_domain + + def to_wire(self): + return self.agent_domain.to_wire() + + def to_text(self): + return "REPORTCHANNEL " + self.agent_domain.to_text() + + @classmethod + def from_wire_parser(cls, otype, parser): + return cls(parser.get_name()) + + dns.edns.register_type(ReportChannelOption, ReportChannelCode) + dns.edns.ReportChannelOption = ReportChannelOption + +class ErrReport(): + def __init__(self, zone, owner, rtype_txt, error_code): + self.zone = zone + self.owner = owner + self.rtype_txt = rtype_txt + self.error_code = error_code + + def query(self): + rtype = dns.rdatatype.from_text(self.rtype_txt) + return f"_er.{rtype}.{self.owner}.{self.error_code}._er.{self.zone}" + +def check_channel(resp, val): + if resp == None or resp.resp == None or resp.resp.opt == None: + return False + + for i in resp.resp.opt.items: + for o in i.options: + if (isinstance(o, dns.edns.ReportChannelOption)): + detail_log("Received EDNS ReportChannel \'%s\'" % o.agent_domain) + if val == str(o.agent_domain): + return True + + return False + +def check_report(server, report, count): + pattern = f"report, qname '{report.owner}.', qtype {report.rtype_txt}, error {report.error_code}" + found = server.log_search_count(pattern) + if found != count: + detail_log("LOG SEARCH COUNT '%s' found %d expected %d" % (pattern, found, count)) + set_err("LOG SEARCH COUNT %d != %d" % (found, count)) + +t = Test() + +ModDnsErr.check() + +CHANNEL = "channel.example." +agent = t.server("knot") +zone_channel = t.zone_rnd(1, names=[CHANNEL]) +t.link(zone_channel, agent) +agent.add_module(zone_channel[0], ModDnsErr(agent=True, cache_size=3, cache_lifetime=3)) + +server = t.server("knot") +zone = t.zone("example.com.") +t.link(zone, server) +server.add_module(zone[0], ModDnsErr(report_channel=CHANNEL)) + +t.start() + +server.zones_wait(zone) +agent.zones_wait(zone_channel) + +## Testing return of Report-Channel in normal query responses + +# Try a query without EDNS +resp = server.dig("dns1.example.com.", "A", edns=None) +resp.check(rcode="NOERROR") +isset(resp.resp.opt == None, "no EDNS Report-Channel present") + +# Try a query with EDNS +resp = server.dig("dns1.example.com.", "A", edns=0) +resp.check(rcode="NOERROR") +isset(check_channel(resp, CHANNEL), "correct EDNS Report-Channel present") + +## Testing agent + +ERR_RESP = '"Report received"' + +report1 = ErrReport(CHANNEL, "report1", "A", 2) +report2 = ErrReport(CHANNEL, "report2", "A", 2) +report3 = ErrReport(CHANNEL, "report2", "AAAA", 2) +report4 = ErrReport(CHANNEL, "report3", "AAAA", 2) + +# Query the reporting zone normally +resp = agent.dig(CHANNEL, "SOA") +resp.check(rcode="NOERROR", flags="AA") + +# Query with incomplete report QNAMEs +resp = agent.dig("_er." + CHANNEL, "TXT", udp=False) +resp.check(rcode="FORMERR") +resp = agent.dig("_er.1.test." + CHANNEL, "TXT", udp=False) +resp.check(rcode="FORMERR") +resp = agent.dig("_er.1.test._err." + CHANNEL, "TXT", udp=False) +resp.check(rcode="FORMERR") + +# Report not accepted over UDP +resp = agent.dig(report1.query(), "TXT", udp=True) +resp.check(rcode="NOERROR", flags="AA TC") +resp.check_counts(answer=0, authority=0, additional=0) + +# Report not accepted over TCP - bad QTYPE +resp = agent.dig(report1.query(), "A", udp=False) +resp.check(rcode="NXDOMAIN", flags="AA", noflags="TC") +resp.check_counts(answer=0, authority=1, additional=0) + +# Report accepted over TCP +resp = agent.dig(report1.query(), "TXT", udp=False) +resp.check_record(section="answer", rtype="TXT", ttl="3", rdata=ERR_RESP) +resp.check_counts(answer=1, authority=0, additional=0) +check_report(agent, report1, 1) + +# Report multiple reports over TCP - cache is fully occupied +for report in [report1, report2, report3]: + resp = agent.dig(report.query(), "TXT", udp=False) + resp.check_record(section="answer", rtype="TXT", ttl="3", rdata=ERR_RESP) + resp.check_counts(answer=1, authority=0, additional=0) + check_report(agent, report, 1) + +# Report not logged due to full cache +resp = agent.dig(report4.query(), "TXT", udp=False) +resp.check_record(section="answer", rtype="TXT", ttl="3", rdata=ERR_RESP) +resp.check_counts(answer=1, authority=0, additional=0) +check_report(agent, report4, 0) + +t.sleep(3) + +# Repeat the report after the cache is flushed +resp = agent.dig(report4.query(), "TXT", udp=False) +resp.check_record(section="answer", rtype="TXT", ttl="3", rdata=ERR_RESP) +resp.check_counts(answer=1, authority=0, additional=0) +check_report(agent, report4, 1) + +t.end() diff --git a/tests-extra/tools/dnstest/module.py b/tests-extra/tools/dnstest/module.py index b82b30877c..aa6af2178e 100644 --- a/tests-extra/tools/dnstest/module.py +++ b/tests-extra/tools/dnstest/module.py @@ -443,3 +443,34 @@ class ModAuthSignal(KnotModule): mod_name = "authsignal" empty = True + +class ModDnsErr(KnotModule): + '''DNS Error module''' + + mod_name = "dnserr" + + def __init__(self, report_channel=None, agent=False, cache_size=None, cache_lifetime=None): + super().__init__() + self.report_channel = report_channel + self.agent = agent + self.cache_size = cache_size + self.cache_lifetime = cache_lifetime + + def get_conf(self, conf=None): + if not conf: + conf = dnstest.config.KnotConf() + + conf.begin(self.conf_name) + conf.id_item("id", self.conf_id) + if self.report_channel: + conf.item_str("report-channel", self.report_channel) + if self.agent: + conf.item_str("agent", "on") + if self.cache_size: + conf.item_str("cache-size", self.cache_size) + if self.cache_lifetime: + conf.item_str("cache-lifetime", self.cache_lifetime) + conf.end() + + return conf + diff --git a/tests/.gitignore b/tests/.gitignore index 123430fc01..a4a59795fb 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -92,6 +92,7 @@ /libzscanner/test_zscanner /libzscanner/zscanner-tool +/modules/test_dnserr /modules/test_onlinesign /modules/test_rrl diff --git a/tests/Makefile.am b/tests/Makefile.am index e39d9eafdd..fc506fd4d9 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -167,6 +167,16 @@ check_PROGRAMS += \ endif HAVE_LIBUTILS if HAVE_DAEMON +if STATIC_MODULE_dnserr +check_PROGRAMS += \ + modules/test_dnserr +else +if SHARED_MODULE_dnserr +check_PROGRAMS += \ + modules/test_dnserr +endif +endif + if STATIC_MODULE_onlinesign check_PROGRAMS += \ modules/test_onlinesign diff --git a/tests/modules/test_dnserr.c b/tests/modules/test_dnserr.c new file mode 100644 index 0000000000..5ff3cc02fe --- /dev/null +++ b/tests/modules/test_dnserr.c @@ -0,0 +1,88 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#include + +#define dnserr_conf test_dnserr_conf +#define dnserr_conf_check test_dnserr_conf_check +#define dnserr_load test_dnserr_load +#define dnserr_unload test_dnserr_unload +#include "knot/modules/dnserr/dnserr.c" +#include "libknot/errcode.h" + +#define test_pass_parse_report_query(x) _test_parse_report_query((x), KNOT_EOK) +#define test_fail_parse_report_query(x) _test_parse_report_query((x), KNOT_EMALF) +#define test_skip_parse_report_query(x) _test_parse_report_query((x), KNOT_ENOENT) + +static void _test_parse_report_query(const char *dname_txt, int expected) +{ + knot_dname_storage_t dname; + if (knot_dname_from_str(dname, dname_txt, KNOT_DNAME_MAXLEN) == NULL) { + skip("parse_report_query: '%s' is not valid dname", dname_txt); + } + dnserr_parsed_t parsed; + int ret = report_query(&parsed, 0, dname); + ok(ret == expected, "parse_report_query, %s", dname_txt); +} + +int main(int argc, char *argv[]) +{ + plan_lazy(); + + // Must start (and not end) with _er label + test_skip_parse_report_query("."); + test_skip_parse_report_query("a"); + test_skip_parse_report_query("a._er"); + test_fail_parse_report_query("_er"); + test_skip_parse_report_query("1.a.1._er"); + test_skip_parse_report_query("a.1.a.1._er"); + test_skip_parse_report_query("a._er.1.a.1._er"); + + // After _er label there is a list of decadic rrtypes joined with hyphen + test_fail_parse_report_query("_er.a"); + test_fail_parse_report_query("_er.-"); + test_fail_parse_report_query("_er.-1"); + test_fail_parse_report_query("_er.1-"); + test_fail_parse_report_query("_er.1"); + test_fail_parse_report_query("_er.1-2"); + test_fail_parse_report_query("_er.-1-2"); + test_fail_parse_report_query("_er.1-2-"); + test_fail_parse_report_query("_er.1a-2"); + test_fail_parse_report_query("_er.1-a2"); + test_fail_parse_report_query("_er.a.a.2._er"); + test_fail_parse_report_query("_er.-.a.2._er"); + test_fail_parse_report_query("_er.-1.a.2._er"); + test_fail_parse_report_query("_er.1-.a.2._er"); + test_fail_parse_report_query("_er.-1-2.a.2._er"); + test_fail_parse_report_query("_er.1-2-.a.2._er"); + test_fail_parse_report_query("_er.1a-2.a.2._er"); + test_fail_parse_report_query("_er.1-a2.a.2._er"); + + // After rrcode list label there is a dname + test_fail_parse_report_query("_er.1"); + test_fail_parse_report_query("_er.1.a"); + test_fail_parse_report_query("_er.1.a.a.a.a"); + test_fail_parse_report_query("_er.1.1._er"); + + // After dname is errcode + test_fail_parse_report_query("_er.1.a.a"); + test_fail_parse_report_query("_er.1.a.1a"); + test_fail_parse_report_query("_er.1.a.a1"); + test_fail_parse_report_query("_er.1.a.1-1"); + test_fail_parse_report_query("_er.1.a.a._er"); + test_fail_parse_report_query("_er.1.a.1a._er"); + test_fail_parse_report_query("_er.1.a.a1._er"); + test_fail_parse_report_query("_er.1.a.1-1._er"); + + // Allowed names + test_pass_parse_report_query("_er.1.a.1._er"); + test_pass_parse_report_query("_er.1-28.a.2._er"); + test_pass_parse_report_query("_er.1-2-28.a.3._er"); + test_pass_parse_report_query("_er.1.a.a.1._er"); + test_pass_parse_report_query("_er.1-28.a.a.2._er"); + test_pass_parse_report_query("_er.1-2-28.a.a.3._er"); + + return 0; +} From 97c5328ff1c5fb9ac42e1a5686ff2d5a6d4faea7 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 1 Apr 2026 14:18:33 +0200 Subject: [PATCH 431/675] tests: workaround for Bind9 bug #5824 --- tests-extra/tests/basic/query/test.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests-extra/tests/basic/query/test.py b/tests-extra/tests/basic/query/test.py index 8c1237021d..723b24939e 100644 --- a/tests-extra/tests/basic/query/test.py +++ b/tests-extra/tests/basic/query/test.py @@ -18,6 +18,8 @@ root = t.zone(".") t.link(root, knot_root) +knot.conf_zone(zone).journal_content = "none" + def query_test(knot, bind, dnssec): ''' Negative answers. ''' From 3699716a7b612027b0388941f220919614c57bd8 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 23 Mar 2026 11:47:05 +0100 Subject: [PATCH 432/675] mod-onlinesign: fix computation of immediately successive name --- src/knot/modules/onlinesign/nsec_next.c | 62 ++++++++++++++----------- tests/modules/test_onlinesign.c | 39 ++++++++++------ 2 files changed, 61 insertions(+), 40 deletions(-) diff --git a/src/knot/modules/onlinesign/nsec_next.c b/src/knot/modules/onlinesign/nsec_next.c index bd84f56e37..310146d5c7 100644 --- a/src/knot/modules/onlinesign/nsec_next.c +++ b/src/knot/modules/onlinesign/nsec_next.c @@ -16,42 +16,50 @@ static bool inc_label(const uint8_t *buffer, uint8_t **label_ptr) assert(label_ptr && *label_ptr); assert(buffer <= *label_ptr && *label_ptr < buffer + KNOT_DNAME_MAXLEN); - const uint8_t *label = *label_ptr; - const uint8_t len = *label; + uint8_t *label = *label_ptr; + const uint8_t len = *label; const uint8_t *first = *label_ptr + 1; - const uint8_t *last = *label_ptr + len; + uint8_t *last = *label_ptr + len; - assert(len <= KNOT_DNAME_MAXLABELLEN); + assert(len > 0 && len <= KNOT_DNAME_MAXLABELLEN); - // jump over trailing 0xff chars - uint8_t *scan = (uint8_t *)last; - while (scan >= first && *scan == 0xff) { - scan -= 1; - } + // append a zero byte at the end whenever possible + if (len < KNOT_DNAME_MAXLABELLEN && label > buffer) { + uint8_t *label_new = label - 1; + *label_new = len + 1; + memmove(label_new + 1, first, len); + label_new[len + 1] = 0x00; - // increase in place - if (scan >= first) { - if (*scan == 'A' - 1) { - *scan = 'Z' + 1; - } else { - *scan += 1; - } - memset(scan + 1, 0x00, last - scan); + *label_ptr = label_new; return true; } - // check name and label boundaries - if (scan - 1 < buffer || len == KNOT_DNAME_MAXLABELLEN) { - return false; - } + // strip trailing 0xff chars + if (*last == 0xff) { + unsigned num0xff = 1; + while (num0xff < len && *(last - num0xff) == 0xff) { + num0xff += 1; + } - // append a zero byte at the end of the label - scan -= 1; - scan[0] = len + 1; - memmove(scan + 1, first, len); - scan[len + 1] = 0x00; + if (num0xff == len) { + // impossible to increment label, strip it and increment next label + return false; + } - *label_ptr = scan; + uint8_t *label_new = label + num0xff; + memmove(label_new + 1, first, len - num0xff); + *label_new = len - num0xff; + + *label_ptr = label_new; + // pointer 'last' still valid, able to further manipulate with that one + } + + // increase in place, skip possible upper-case result + if (*last == 'A' - 1) { + *last = 'Z' + 1; + } else { + *last += 1; + } return true; } diff --git a/tests/modules/test_onlinesign.c b/tests/modules/test_onlinesign.c index e1719b42a7..1535d49793 100644 --- a/tests/modules/test_onlinesign.c +++ b/tests/modules/test_onlinesign.c @@ -98,14 +98,14 @@ int main(int argc, char *argv[]) "increment first label (binary)", "\x08""walrus\xff\xff" LONG_SUFFIX, APEX, - "\x08""walrut\x00\x00" LONG_SUFFIX + "\x06""walrut" LONG_SUFFIX ); test_nsec_next( - "increment first label (in place)", + "append zero octet to first label", "\x07""lobster" LONG_SUFFIX, APEX, - "\x07""lobstes" LONG_SUFFIX + "\x08""lobster\x00" LONG_SUFFIX ); test_nsec_next( @@ -118,21 +118,21 @@ int main(int argc, char *argv[]) // name too long test_nsec_next( - "name to long, strip label and increase next (simple)", + "name too long, strip label and append next (simple)", "\x03""\xff\xff\xff""\x04""newt" LONG_SUFFIX, APEX, - "\x04""newu" LONG_SUFFIX + "\x05""newt\x00" LONG_SUFFIX ); test_nsec_next( - "name to long, strip label and increase next (binary)", + "name too long, strip label and append next (binary)", "\x03""\xff\xff\xff""\x04""cc\xff\xff" LONG_SUFFIX, APEX, - "\x04""cd\x00\x00" LONG_SUFFIX + "\x05""cc\xff\xff\x00" LONG_SUFFIX ); test_nsec_next( - "name to long, strip label and increase next (extend)", + "name too long, strip label and append next (extend)", "\x04""\xff\xff\xff\xff""\x03""\xff\xff\xff" LONG_SUFFIX, APEX, "\x04""\xff\xff\xff\x00" LONG_SUFFIX @@ -155,24 +155,24 @@ int main(int argc, char *argv[]) assert(sizeof(PAD_LABEL) == 41 + 1); test_nsec_next( - "label too long, strip and increase next (simple)", + "label too long, strip and append next (simple)", MAX_LABEL "\x08""mandrill" MAX_LABEL MAX_LABEL PAD_LABEL APEX, APEX, - "\x08""mandrilm" MAX_LABEL MAX_LABEL PAD_LABEL APEX + "\x09""mandrill\x00" MAX_LABEL MAX_LABEL PAD_LABEL APEX ); test_nsec_next( - "label too long, strip and increase next (extend)", + "label too long, strip and append next (extend)", MAX_LABEL "\x07""\xff\xff\xff\xff\xff\xff\xff" MAX_LABEL MAX_LABEL PAD_LABEL APEX, APEX, "\x08""\xff\xff\xff\xff\xff\xff\xff\x00" MAX_LABEL MAX_LABEL PAD_LABEL APEX ); test_nsec_next( - "label too long, strip multiple", + "label too long, strip multiple, append next next", MAX_LABEL MAX_LABEL "\x08""flamingo" MAX_LABEL PAD_LABEL APEX, APEX, - "\x08""flamingp" MAX_LABEL PAD_LABEL APEX + "\x09""flamingo\x00" MAX_LABEL PAD_LABEL APEX ); test_nsec_next( @@ -188,5 +188,18 @@ int main(int argc, char *argv[]) APEX ); + test_nsec_next( + "strip multiple labels and append short one", + "\x2f" /* 47 */ + "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" + "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" + "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" + "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" + "\xff\xff\xff\xff\xff\xff\xff" + MAX_LABEL MAX_LABEL MAX_LABEL "\x01""w" APEX, + APEX, + "\x02""w\x00" APEX + ); + return 0; } From bbca9e402c4e288cb39635b6c41efb638de3c8bf Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 4 Apr 2026 16:37:26 +0200 Subject: [PATCH 433/675] tests-extra: fix NOTIFY over TLS from Bind --- tests-extra/tools/dnstest/server.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 633e2c64a5..89734161e2 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1327,6 +1327,16 @@ def get_config(self): for slave in z.slaves: if self.disable_notify: continue + if self.tsig: + slaves += "%s port %i key %s" \ + % (slave.addr, slave.tls_port or slave.port, self.tsig.name) + else: + slaves += "%s port %i" % (slave.addr, slave.tls_port or slave.port) + if slave.tls_port: + slaves += " tls %s" % (slave.name if slave.cert_key_file else "ephemeral") + slaves += "; " + + # START - workaround for older Bind versions, remove in the future if self.tsig: slaves += "%s port %s key %s" \ % (slave.addr, slave.port, self.tsig.name) @@ -1335,6 +1345,7 @@ def get_config(self): if slave.tls_port: slaves += " tls %s" % (slave.name if slave.cert_key_file else "ephemeral") slaves += "; " + # END if slaves: s.item("also-notify", "{ %s}" % slaves) From 4e9c4a09d22f5bd591f599e674636bd17a544e37 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 10 Apr 2026 11:34:32 +0200 Subject: [PATCH 434/675] events: add missing mutex lock, code unification --- src/knot/events/events.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/knot/events/events.c b/src/knot/events/events.c index 92d7050281..6b55a95717 100644 --- a/src/knot/events/events.c +++ b/src/knot/events/events.c @@ -493,9 +493,17 @@ void zone_events_freeze_blocking(zone_t *zone) void zone_events_start_answering(zone_t *zone) { - pthread_mutex_lock(&zone->events.mx); - zone->events.answering = true; - reschedule(&zone->events, true); // unlocks events->mx + if (!zone) { + return; + } + + zone_events_t *events = &zone->events; + + pthread_mutex_lock(&events->reschedule_lock); + pthread_mutex_lock(&events->mx); + events->answering = true; + + reschedule(events, true); // unlocks events->mx } void zone_events_start(zone_t *zone) From 23b7f6d703428bfd2724aae357c81df3bd7fbbf0 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 14 Apr 2026 08:54:49 +0200 Subject: [PATCH 435/675] knotd: fix library linking order (place malloc_LIBS last) Otherwise, an alternative allocator may be linked but not necessarily used as the effective malloc implementation. --- src/utils/Makefile.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/Makefile.inc b/src/utils/Makefile.inc index 3c4c790a1c..4d180a4250 100644 --- a/src/utils/Makefile.inc +++ b/src/utils/Makefile.inc @@ -143,7 +143,7 @@ knotc_CPPFLAGS = $(libknotus_la_CPPFLAGS) knotc_LDADD = $(libknotd_LIBS) $(libknotus_LIBS) knotc_LDFLAGS = $(AM_LDFLAGS) -rdynamic knotd_CPPFLAGS = $(libknotus_la_CPPFLAGS) $(liburcu_CFLAGS) $(systemd_CFLAGS) -knotd_LDADD = $(malloc_LIBS) $(libknotd_LIBS) $(cap_ng_LIBS) +knotd_LDADD = $(libknotd_LIBS) $(cap_ng_LIBS) $(malloc_LIBS) knotd_LDFLAGS = $(AM_LDFLAGS) -rdynamic if HAVE_UTILS From a7dd8f3285820de08828baf5b8269ba54f2e5470 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 14 Apr 2026 11:58:35 +0200 Subject: [PATCH 436/675] scripts/timers_dump.py: fix empty zone name for the root zone --- scripts/timers_dump.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/timers_dump.py b/scripts/timers_dump.py index ed7f8c0b1f..902b346609 100755 --- a/scripts/timers_dump.py +++ b/scripts/timers_dump.py @@ -86,7 +86,7 @@ def parse_dname(cls, dname): label = dname[1:llen+1].decode("utf-8") dname = dname[llen+1:] labels.append(label) - return ".".join(labels) + return ".".join(labels) if labels else "." @classmethod def parse_timers(cls, binary): From 4fc72969d345be3a48568db55b9d79c81878120a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 14 Apr 2026 12:40:04 +0200 Subject: [PATCH 437/675] tests: mute warning 'strnlen' specified bound 108 exceeds source size 38 --- tests/knot/test_zone_timers.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/knot/test_zone_timers.c b/tests/knot/test_zone_timers.c index e0d93f4ce0..60a63d6048 100644 --- a/tests/knot/test_zone_timers.c +++ b/tests/knot/test_zone_timers.c @@ -30,6 +30,11 @@ static const zone_timers_t MOCK_TIMERS = { static bool timers_eq(const zone_timers_t *val, const zone_timers_t *ref) { + struct sockaddr_storage val_last_master = { 0 }; + struct sockaddr_storage ref_last_master = { 0 }; + memcpy(&val_last_master, &val->last_master, sizeof(val->last_master)); + memcpy(&ref_last_master, &ref->last_master, sizeof(ref->last_master)); + return val->last_flush == ref->last_flush && val->flags == ref->flags && val->next_refresh == ref->next_refresh && @@ -38,8 +43,7 @@ static bool timers_eq(const zone_timers_t *val, const zone_timers_t *ref) val->next_ds_push == ref->next_ds_push && val->catalog_member == ref->catalog_member && val->next_expire == ref->next_expire && - sockaddr_cmp((struct sockaddr_storage *)&val->last_master, - (struct sockaddr_storage *)&ref->last_master, false) == 0 && + sockaddr_cmp(&val_last_master, &ref_last_master, false) == 0 && val->master_pin_hit == ref->master_pin_hit && (val->last_signed_serial == ref->last_signed_serial || !(val->flags & LAST_SIGNED_SERIAL_VALID)); } From 252ac85466cc605ae5cf4601389afe15ad713eed Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 16 Apr 2026 07:53:30 +0200 Subject: [PATCH 438/675] knot_lmdb: call mdb_reader_check() even for RO transactions --- src/knot/journal/knot_lmdb.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/knot/journal/knot_lmdb.c b/src/knot/journal/knot_lmdb.c index 1e4ad5861a..73724ab657 100644 --- a/src/knot/journal/knot_lmdb.c +++ b/src/knot/journal/knot_lmdb.c @@ -19,8 +19,6 @@ #include "libknot/endian.h" #include "libknot/error.h" -#define READER_LOCK_CLEAN_MAX_FREQ 3 // minimal interval between reader-lock-table cleanups - static void err_to_knot(int *err) { switch (*err) { @@ -70,7 +68,6 @@ void knot_lmdb_init(knot_lmdb_db_t *db, const char *path, size_t mapsize, unsign pthread_mutex_init(&db->opening_mutex, NULL); db->maxdbs = 2; db->maxreaders = conf_lmdb_readers(conf()); - db->last_readlock_clean = 0; } static int lmdb_stat(const char *lmdb_path, struct stat *st) @@ -269,13 +266,14 @@ void knot_lmdb_deinit(knot_lmdb_db_t *db) void knot_lmdb_begin(knot_lmdb_db_t *db, knot_lmdb_txn_t *txn, bool rw) { - uint64_t next_readlock_clean = db->last_readlock_clean + READER_LOCK_CLEAN_MAX_FREQ, now = knot_time(); - if (rw && next_readlock_clean < now) { // Cleaning up reader lock table can be done occasionally. Opening a RW txn seems a good occasion. - int cleared = 0, _unused_ ret = mdb_reader_check(db->env, &cleared); - db->last_readlock_clean = now; - } - txn->ret = mdb_txn_begin(db->env, NULL, rw ? 0 : MDB_RDONLY, &txn->txn); + if (txn->ret == MDB_READERS_FULL) { + int cleared = 0; + txn->ret = mdb_reader_check(db->env, &cleared); + if (txn->ret == MDB_SUCCESS) { + txn->ret = mdb_txn_begin(db->env, NULL, rw ? 0 : MDB_RDONLY, &txn->txn); + } + } err_to_knot(&txn->ret); if (txn->ret == KNOT_EOK) { txn->opened = true; From b7f429d7575381f52f34499b3895b15ec46817b5 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 10 Apr 2026 14:14:11 +0200 Subject: [PATCH 439/675] yparser: fix unix socket path guessing --- src/libknot/yparser/yptrafo.c | 6 ++++-- tests/libknot/test_yptrafo.c | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libknot/yparser/yptrafo.c b/src/libknot/yparser/yptrafo.c index ff02cd7551..681ceed999 100644 --- a/src/libknot/yparser/yptrafo.c +++ b/src/libknot/yparser/yptrafo.c @@ -386,23 +386,25 @@ static uint8_t sock_type_guess( size_t dots = 0; size_t colons = 0; size_t digits = 0; + size_t slashes = 0; // Analyze the string. for (size_t i = 0; i < len; i++) { if (str[i] == '.') dots++; else if (str[i] == ':') colons++; else if (is_digit(str[i])) digits++; + else if (str[i] == '/') slashes++; } // Guess socket type. - if (colons >= 2) { + if (colons >= 2 && slashes == 0) { *if_name = (const uint8_t *)strchr((const char *)str, '%'); if (*if_name == NULL) { return ADDR_TYPE_IPV6; } else { return ADDR_TYPE_IPV6_LINKLOCAL; } - } else if (colons == 0 && dots == 3 && digits >= 3) { + } else if (colons == 0 && dots == 3 && digits >= 3 && slashes == 0) { return ADDR_TYPE_IPV4; } else { return ADDR_TYPE_UNIX; diff --git a/tests/libknot/test_yptrafo.c b/tests/libknot/test_yptrafo.c index b8f91baae5..5936eee533 100644 --- a/tests/libknot/test_yptrafo.c +++ b/tests/libknot/test_yptrafo.c @@ -135,9 +135,9 @@ static void str_test(const char *txt, const char *val) static void addr_test(const char *txt, bool port) { int ret; - uint8_t b[64]; + uint8_t b[128]; size_t b_len = sizeof(b); - char t[64]; + char t[128]; size_t t_len = sizeof(t); yp_item_t i = { NULL, YP_TADDR, YP_VNONE }; @@ -375,6 +375,7 @@ int main(int argc, char *argv[]) addr_test("2001:db8::1", true); addr_test("::1@12345", false); addr_test("/tmp/test.sock", true); + addr_test("/knot-3.6.dev0+1775816156.4373fdb0d/_build/sub/tests/tmp/knot/knot.sock", true); addr_test("eth1@53", true); addr_test("::1%lo", true); addr_test("::1%2", true); From 3d88fe16d4975194cea50022c6d78ee98cc22fcf Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sun, 23 Feb 2025 14:05:53 +0100 Subject: [PATCH 440/675] adjust: bugfix: prev pointers for non-binode contents --- src/knot/zone/adjust.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/zone/adjust.c b/src/knot/zone/adjust.c index c260e2bc07..d9208bf0e6 100644 --- a/src/knot/zone/adjust.c +++ b/src/knot/zone/adjust.c @@ -360,7 +360,7 @@ static int adjust_single(zone_node_t *node, void *data) // set pointer to previous node if (args->adjust_prevs && args->previous_node != NULL && node->prev != args->previous_node && - node->prev != binode_counterpart(args->previous_node)) { + (!(args->previous_node->flags & NODE_FLAGS_BINODE) || node->prev != binode_counterpart(args->previous_node))) { zone_tree_insert(args->ctx.changed_nodes, &node); node->prev = args->previous_node; } From 075265aaf1a2dacd1afb18d73ccc0de846e2a8f5 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sun, 23 Feb 2025 19:23:40 +0100 Subject: [PATCH 441/675] libknot: allow loading nsec3 params from NSEC3 --- src/libknot/dnssec/nsec.h | 2 ++ src/libknot/dnssec/nsec/nsec.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libknot/dnssec/nsec.h b/src/libknot/dnssec/nsec.h index f4414c65d3..fd2f39fb47 100644 --- a/src/libknot/dnssec/nsec.h +++ b/src/libknot/dnssec/nsec.h @@ -50,6 +50,8 @@ void dnssec_nsec3_params_free(dnssec_nsec3_params_t *params); /*! * Parse NSEC3 parameters from NSEC3PARAM RDATA. * + * \note The function can be called on NSEC3 RDATA. + * * \param params Output parameters. * \param rdata NSEC3PARAM RDATA. * diff --git a/src/libknot/dnssec/nsec/nsec.c b/src/libknot/dnssec/nsec/nsec.c index 30da574ac0..fc0835f57f 100644 --- a/src/libknot/dnssec/nsec/nsec.c +++ b/src/libknot/dnssec/nsec/nsec.c @@ -50,7 +50,7 @@ int dnssec_nsec3_params_from_rdata(dnssec_nsec3_params_t *params, new_params.iterations = wire_ctx_read_u16(&wire); new_params.salt.size = wire_ctx_read_u8(&wire); - if (wire_ctx_available(&wire) != new_params.salt.size) { + if (wire_ctx_available(&wire) < new_params.salt.size) { return KNOT_EMALF; } @@ -60,7 +60,7 @@ int dnssec_nsec3_params_from_rdata(dnssec_nsec3_params_t *params, } binary_read(&wire, &new_params.salt); - assert(wire_ctx_offset(&wire) == rdata->size); + assert(wire_ctx_offset(&wire) <= rdata->size); *params = new_params; From e5c9f480f432eec6550342c9f598bfe1123b39aa Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sun, 9 Mar 2025 21:00:50 +0100 Subject: [PATCH 442/675] dnssec validation: bugfix: dont remove any even redundant RRSIGs --- src/knot/dnssec/zone-sign.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/dnssec/zone-sign.c b/src/knot/dnssec/zone-sign.c index 0166886d2f..99340a0c39 100644 --- a/src/knot/dnssec/zone-sign.c +++ b/src/knot/dnssec/zone-sign.c @@ -511,7 +511,7 @@ static int sign_node_rrsets(const zone_node_t *node, } } - if (result == KNOT_EOK) { + if (result == KNOT_EOK && !sign_ctx->dnssec_ctx->validation_mode) { result = remove_standalone_rrsigs(node, &rrsigs, changeset); } return result; From 26358f91f37e9ead5be2834bfdbab00f3389cd5d Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 21 Feb 2025 20:51:31 +0100 Subject: [PATCH 443/675] kdig: implemented DNSSEC validation (+validate) --- Knot.files | 2 + configure.ac | 12 + doc/man_kdig.rst | 8 + src/knot/dnssec/nsec-chain.c | 2 +- src/knot/dnssec/nsec3-chain.c | 2 +- src/knot/dnssec/zone-events.c | 4 +- src/knot/updates/zone-update.c | 2 +- src/knot/zone/adjust.c | 12 +- src/knot/zone/adjust.h | 3 +- src/knot/zone/node.c | 15 + src/knot/zone/node.h | 9 + src/knot/zone/zonefile.c | 4 +- src/utils/Makefile.inc | 14 +- src/utils/kdig/dnssec_validation.c | 767 +++++++++++++++++++++++++++++ src/utils/kdig/dnssec_validation.h | 41 ++ src/utils/kdig/kdig_exec.c | 50 ++ src/utils/kdig/kdig_params.c | 35 ++ src/utils/kdig/kdig_params.h | 3 + tests/.gitignore | 1 + tests/Makefile.am | 17 +- tests/utils/test_kdig_validate.in | 126 +++++ 21 files changed, 1109 insertions(+), 20 deletions(-) create mode 100644 src/utils/kdig/dnssec_validation.c create mode 100644 src/utils/kdig/dnssec_validation.h create mode 100644 tests/utils/test_kdig_validate.in diff --git a/Knot.files b/Knot.files index 9410df8859..675b8bf29b 100644 --- a/Knot.files +++ b/Knot.files @@ -615,6 +615,8 @@ src/utils/common/token.h src/utils/common/util_conf.c src/utils/common/util_conf.h src/utils/kcatalogprint/main.c +src/utils/kdig/dnssec_validation.c +src/utils/kdig/dnssec_validation.h src/utils/kdig/kdig_exec.c src/utils/kdig/kdig_exec.h src/utils/kdig/kdig_main.c diff --git a/configure.ac b/configure.ac index 1514966d83..9a707467e7 100644 --- a/configure.ac +++ b/configure.ac @@ -629,6 +629,11 @@ AC_ARG_WITH(libnghttp2, with_libnghttp2=yes ) +dnl DNSSEC validation in kdig +AC_ARG_ENABLE([kdig_validation], + AS_HELP_STRING([--enable-kdig-validation=yes|no], [DNSSEC validation in kdig [default=yes]]), + [enable_kdig_validation="$enableval"], [enable_kdig_validation=yes]) + AS_IF([test "$enable_utilities" = "yes"], [ AS_IF([test "$with_libidn" != "no"], [ PKG_CHECK_MODULES([libidn2], [libidn2 >= 2.0.0], [ @@ -650,6 +655,12 @@ AS_IF([test "$enable_utilities" = "yes"], [ ]) ]) + AS_IF([test "$enable_daemon" = "no"], [enable_kdig_validation=no]) + AS_IF([test "$enable_kdig_validation" != "no"], [ + AC_DEFINE([HAVE_KDIG_VALIDATION], [1], [Define to 1 to enable DNSSEC validation in kdig.]) + ]) + AM_CONDITIONAL([HAVE_KDIG_VALIDATION], [test "$enable_kdig_validation" = yes]) + AS_IF([test "$enable_xdp" != "no"], [ PKG_CHECK_MODULES([libmnl], [libmnl], [], [ AC_MSG_ERROR([libmnl not found]) @@ -824,6 +835,7 @@ result_msg_base=" Utilities with IDN: ${with_libidn} Utilities with DoH: ${with_libnghttp2} Utilities with Dnstap: ${enable_dnstap} + Kdig DNSSEC validation: ${enable_kdig_validation} MaxMind DB support: ${enable_maxminddb} Systemd integration: ${enable_systemd} D-Bus support: ${enable_dbus} diff --git a/doc/man_kdig.rst b/doc/man_kdig.rst index f21e2871c3..a730099034 100644 --- a/doc/man_kdig.rst +++ b/doc/man_kdig.rst @@ -177,6 +177,14 @@ Options **+**\ [\ **no**\ ]\ **dnssec** Same as **+**\ [\ **no**\ ]\ **doflag** +**+**\ [\ **no**\ ]\ **validate**\[\ =\ *LEVEL*\] + Also query for DNSKEY, validate DNSSEC in the answer. Implies DO flag. + Optional argument specifies verbosity (1-3, default 3). + + NOTICE: this is not a security feature, rather a debugging tool. Kdig + doesn't attempt to obtain nor validate the whole trust chain, therefore + an attacker can in theory spoof everything and Kdig concludes "valid". + **+**\ [\ **no**\ ]\ **all** Show all packet sections. diff --git a/src/knot/dnssec/nsec-chain.c b/src/knot/dnssec/nsec-chain.c index aeb1279fb2..09567c3c4e 100644 --- a/src/knot/dnssec/nsec-chain.c +++ b/src/knot/dnssec/nsec-chain.c @@ -734,7 +734,7 @@ int knot_nsec_fix_chain(zone_update_t *update, uint32_t ttl) return ret; } - ret = zone_adjust_contents(update->new_cont, adjust_cb_void, NULL, false, true, 1, update->a_ctx->node_ptrs); + ret = zone_adjust_contents(update->new_cont, adjust_cb_void, NULL, false, true, true, 1, update->a_ctx->node_ptrs); if (ret != KNOT_EOK) { return ret; } diff --git a/src/knot/dnssec/nsec3-chain.c b/src/knot/dnssec/nsec3-chain.c index 621cc7eaea..41ddd44ded 100644 --- a/src/knot/dnssec/nsec3-chain.c +++ b/src/knot/dnssec/nsec3-chain.c @@ -665,7 +665,7 @@ int knot_nsec3_fix_chain(zone_update_t *update, return ret; } - ret = zone_adjust_contents(update->new_cont, NULL, adjust_cb_void, false, true, 1, update->a_ctx->nsec3_ptrs); + ret = zone_adjust_contents(update->new_cont, NULL, adjust_cb_void, false, true, true, 1, update->a_ctx->nsec3_ptrs); if (ret != KNOT_EOK) { return ret; } diff --git a/src/knot/dnssec/zone-events.c b/src/knot/dnssec/zone-events.c index 059fa1ef4b..32e528ea24 100644 --- a/src/knot/dnssec/zone-events.c +++ b/src/knot/dnssec/zone-events.c @@ -230,7 +230,7 @@ int knot_dnssec_zone_sign(zone_update_t *update, } result = zone_adjust_contents(update->new_cont, adjust_cb_flags, NULL, - false, false, 1, update->a_ctx->node_ptrs); + false, false, true, 1, update->a_ctx->node_ptrs); if (result != KNOT_EOK) { return result; } @@ -367,7 +367,7 @@ int knot_dnssec_sign_update(zone_update_t *update, conf_t *conf) } result = zone_adjust_contents(update->new_cont, adjust_cb_flags, NULL, - false, false, 1, update->a_ctx->node_ptrs); + false, false, true, 1, update->a_ctx->node_ptrs); if (result != KNOT_EOK) { goto done; } diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 8476bed1ad..ecaafcd758 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -983,7 +983,7 @@ int zone_update_semcheck(conf_t *conf, zone_update_t *update) // adjust_cb_nsec3_pointer not needed as we don't check DNSSEC here int ret = zone_adjust_contents(update->new_cont, adjust_cb_flags, NULL, - false, false, 1, node_ptrs); + false, false, true, 1, node_ptrs); if (ret != KNOT_EOK) { return ret; } diff --git a/src/knot/zone/adjust.c b/src/knot/zone/adjust.c index d9208bf0e6..a11e5a3718 100644 --- a/src/knot/zone/adjust.c +++ b/src/knot/zone/adjust.c @@ -467,10 +467,10 @@ static int zone_adjust_tree_parallel(zone_tree_t *tree, adjust_ctx_t *ctx, } int zone_adjust_contents(zone_contents_t *zone, adjust_cb_t nodes_cb, adjust_cb_t nsec3_cb, - bool measure_zone, bool adjust_prevs, unsigned threads, + bool measure_zone, bool adjust_prevs, bool load_nsec3p, unsigned threads, zone_tree_t *add_changed) { - int ret = zone_contents_load_nsec3param(zone); + int ret = load_nsec3p ? zone_contents_load_nsec3param(zone) : KNOT_EOK; if (ret != KNOT_EOK) { log_zone_error(zone->apex->owner, "failed to load NSEC3 parameters (%s)", @@ -538,10 +538,10 @@ int zone_adjust_update(zone_update_t *update, adjust_cb_t nodes_cb, adjust_cb_t int zone_adjust_full(zone_contents_t *zone, unsigned threads) { int ret = zone_adjust_contents(zone, adjust_cb_flags, adjust_cb_nsec3_flags, - true, true, 1, NULL); + true, true, true, 1, NULL); if (ret == KNOT_EOK) { ret = zone_adjust_contents(zone, adjust_cb_nsec3_and_additionals, NULL, - false, false, threads, NULL); + false, false, true, threads, NULL); } if (ret == KNOT_EOK) { additionals_tree_free(zone->adds_tree); @@ -578,11 +578,11 @@ int zone_adjust_incremental_update(zone_update_t *update, unsigned threads) }; ret = zone_adjust_contents(update->new_cont, adjust_cb_flags, adjust_cb_nsec3_flags, - false, true, 1, update->a_ctx->adjust_ptrs); + false, true, true, 1, update->a_ctx->adjust_ptrs); if (ret == KNOT_EOK) { if (nsec3change) { ret = zone_adjust_contents(update->new_cont, adjust_cb_nsec3_and_wildcard, NULL, - false, false, threads, update->a_ctx->adjust_ptrs); + false, false, true, threads, update->a_ctx->adjust_ptrs); if (ret == KNOT_EOK) { // just measure zone size ret = zone_adjust_update(update, adjust_cb_void, adjust_cb_void, true); diff --git a/src/knot/zone/adjust.h b/src/knot/zone/adjust.h index 779087e313..2f76d4355f 100644 --- a/src/knot/zone/adjust.h +++ b/src/knot/zone/adjust.h @@ -63,13 +63,14 @@ int adjust_cb_void(zone_node_t *node, adjust_ctx_t *ctx); * \param nsec3_cb Callback for NSEC3 nodes. * \param measure_zone While adjusting, count the size and max TTL of the zone. * \param adjust_prevs Also (re-)generate node->prev pointers. + * \param load_nsec3p Load NSEC3PARAM from zone. * \param threads Operate in parallel using specified threads. * \param add_changed Special tree to add any changed node (by adjusting) into. * * \return KNOT_E* */ int zone_adjust_contents(zone_contents_t *zone, adjust_cb_t nodes_cb, adjust_cb_t nsec3_cb, - bool measure_zone, bool adjust_prevs, unsigned threads, + bool measure_zone, bool adjust_prevs, bool load_nsec3p, unsigned threads, zone_tree_t *add_changed); /*! diff --git a/src/knot/zone/node.c b/src/knot/zone/node.c index 4ce1433a28..87f683c4c3 100644 --- a/src/knot/zone/node.c +++ b/src/knot/zone/node.c @@ -434,6 +434,21 @@ bool node_rrtype_is_signed(const zone_node_t *node, uint16_t type) return false; } +void node_set_ttl(zone_node_t *node, uint16_t type, uint32_t ttl) +{ + if (node == NULL) { + return; + } + + int remain = node->rrset_count; + while (--remain >= 0) { + if (node->rrs[remain].type == type) { + node->rrs[remain].ttl = ttl; + break; + } + } +} + bool node_bitmap_equal(const zone_node_t *a, const zone_node_t *b) { if (a == NULL || b == NULL || a->rrset_count != b->rrset_count) { diff --git a/src/knot/zone/node.h b/src/knot/zone/node.h index 3f5071aeb8..52679986db 100644 --- a/src/knot/zone/node.h +++ b/src/knot/zone/node.h @@ -372,6 +372,15 @@ static inline knot_rrset_t node_rrset(const zone_node_t *node, uint16_t type) return rrset; } +/*! + * \brief Set TTL of specific RRset. + * + * \param node Zone node. + * \param type RRtype to search the RRset. + * \param ttl TTL to be set. + */ +void node_set_ttl(zone_node_t *node, uint16_t type, uint32_t ttl); + /*! * \brief Returns RRSet structure initialized with data from node at position * equal to \a pos. diff --git a/src/knot/zone/zonefile.c b/src/knot/zone/zonefile.c index eec9b64c06..5d96f44c5e 100644 --- a/src/knot/zone/zonefile.c +++ b/src/knot/zone/zonefile.c @@ -248,7 +248,7 @@ zone_contents_t *zonefile_load(zloader_t *loader, uint16_t threads) } ret = zone_adjust_contents(loader->contents, adjust_cb_flags_and_nsec3, - adjust_cb_nsec3_flags, true, true, 1, NULL); + adjust_cb_nsec3_flags, true, true, true, 1, NULL); if (ret != KNOT_EOK) { ERROR(zname, "failed to finalize zone contents (%s)", knot_strerror(ret)); goto fail; @@ -265,7 +265,7 @@ zone_contents_t *zonefile_load(zloader_t *loader, uint16_t threads) /* The contents will now change possibly messing up NSEC3 tree, it will be adjusted again at zone_update_commit. */ ret = zone_adjust_contents(loader->contents, unadjust_cb_point_to_nsec3, - NULL, false, false, 1, NULL); + NULL, false, false, true, 1, NULL); if (ret != KNOT_EOK) { ERROR(zname, "failed to finalize zone contents (%s)", knot_strerror(ret)); goto fail; diff --git a/src/utils/Makefile.inc b/src/utils/Makefile.inc index 4d180a4250..63035034a7 100644 --- a/src/utils/Makefile.inc +++ b/src/utils/Makefile.inc @@ -7,8 +7,7 @@ noinst_LTLIBRARIES += libknotus.la libknotus_la_CPPFLAGS = $(embedded_libngtcp2_CFLAGS) \ $(AM_CPPFLAGS) $(CFLAG_VISIBILITY) $(gnutls_CFLAGS) \ $(libedit_CFLAGS) $(libidn2_CFLAGS) $(libidn_CFLAGS) \ - $(libkqueue_CFLAGS) $(libnghttp2_CFLAGS) $(libngtcp2_CFLAGS) \ - $(lmdb_CFLAGS) + $(libkqueue_CFLAGS) $(libnghttp2_CFLAGS) $(libngtcp2_CFLAGS) libknotus_la_LDFLAGS = $(AM_LDFLAGS) $(LDFLAG_EXCLUDE_LIBS) libknotus_la_LIBADD = $(libidn2_LIBS) $(libidn_LIBS) $(libnghttp2_LIBS) $(libngtcp2_LIBS) libknotus_LIBS = libknotus.la libknot.la $(libcontrib_LIBS) \ @@ -59,6 +58,12 @@ kdig_SOURCES = \ utils/kdig/kdig_params.c \ utils/kdig/kdig_params.h +if HAVE_KDIG_VALIDATION +kdig_SOURCES += \ + utils/kdig/dnssec_validation.c \ + utils/kdig/dnssec_validation.h +endif HAVE_KDIG_VALIDATION + khost_SOURCES = \ utils/kdig/kdig_exec.c \ utils/kdig/kdig_exec.h \ @@ -81,8 +86,9 @@ knsupdate_SOURCES = \ utils/knsupdate/knsupdate_params.h kdig_CPPFLAGS = $(libknotus_la_CPPFLAGS) -kdig_LDADD = $(libknotus_LIBS) -khost_CPPFLAGS = $(libknotus_la_CPPFLAGS) +kdig_LDADD = $(libknotd_LIBS) $(libknotus_LIBS) +kdig_LDFLAGS = $(AM_LDFLAGS) +khost_CPPFLAGS = $(libknotus_la_CPPFLAGS) -DNO_DNSSEC_VALIDATION khost_LDADD = $(libknotus_LIBS) knsec3hash_CPPFLAGS = $(libknotus_la_CPPFLAGS) knsec3hash_LDADD = libknot.la $(libcontrib_LIBS) diff --git a/src/utils/kdig/dnssec_validation.c b/src/utils/kdig/dnssec_validation.c new file mode 100644 index 0000000000..4b62b2453f --- /dev/null +++ b/src/utils/kdig/dnssec_validation.c @@ -0,0 +1,767 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#include + +#include "utils/kdig/dnssec_validation.h" +#include "knot/dnssec/zone-nsec.h" +#include "knot/dnssec/zone-sign.h" +#include "knot/zone/adjust.h" + +#define CNAME_LIMIT 3 + +typedef struct kdig_dnssec_ctx { + zone_contents_t *conts; + knot_dname_t *orig_qname; + uint16_t orig_qtype; + knot_rcode_t orig_rcode; + unsigned cname_visit; +} kdig_dnssec_ctx_t; + +typedef struct { + zone_contents_t *conts; + kdig_validation_log_level_t level; +} tree_cb_ctx_t; + +static void kdv_log(kdig_validation_log_level_t log_level, kdig_validation_log_level_t set_level, + const char *prefix, const knot_dname_t *at, const char *msg, ...) +{ + if (set_level >= log_level) { + fprintf(stdout, ";; %s: ", prefix); + va_list args; + va_start(args, msg); + vfprintf(stdout, msg, args); + va_end(args); + if (at != NULL) { + char at_txt[KNOT_DNAME_TXT_MAXLEN] = { 0 }; + knot_dname_to_str(at_txt, at, sizeof(at_txt)); + fprintf(stdout, " at %s\n", at_txt); + } else { + fprintf(stdout, "\n"); + } + } +} + +#define LOG_OUTCOME(level, at, msg, ...) kdv_log(KDIG_VALIDATION_LOG_OUTCOME, level, "OUTCOME", at, msg, ##__VA_ARGS__) +#define LOG_ERROR(level, at, msg, ...) kdv_log(KDIG_VALIDATION_LOG_ERRORS, level, "ERROR", at, msg, ##__VA_ARGS__) +#define LOG_FOUND(level, at, msg, ...) kdv_log(KDIG_VALIDATION_LOG_INFOS, level, "FOUND", at, msg, ##__VA_ARGS__) +#define LOG_INF(level, at, msg, ...) kdv_log(KDIG_VALIDATION_LOG_INFOS, level, "INFO", at, msg, ##__VA_ARGS__) + +static bool dname_between(const knot_dname_t *first, const knot_dname_t *between, const knot_dname_t *second) +{ + if (knot_dname_cmp(first, second) < 0) { + return knot_dname_cmp(first, between) < 0 && knot_dname_cmp(between, second) < 0; + } else { + return knot_dname_cmp(first, between) < 0 || knot_dname_cmp(between, second) < 0; + } +} + +static int dname_wildcard(const knot_dname_t *from, knot_dname_t *dest, size_t dest_len) +{ + size_t from_size = knot_dname_size(from); + if (from_size + 2 > dest_len) { + return KNOT_ERANGE; + } + memcpy(dest, "\x01*", 2); + memcpy(dest + 2, from, from_size); + return KNOT_EOK; +} + +static const knot_dname_t *dname_next_labels(const knot_dname_t *name, unsigned nlabels) +{ + return name + knot_dname_prefixlen(name, nlabels); +} + +static bool nsec_covers_name(const knot_dname_t *nsec_owner, const knot_rdata_t *nsec_rdata, + const knot_dname_t *name) +{ + const knot_dname_t *nsec_next = knot_nsec_next(nsec_rdata); + return dname_between(nsec_owner, name, nsec_next); +} + +static bool nsec3_covers_name(const knot_dname_t *nsec3_owner, const knot_rdata_t *nsec3_rdata, + const knot_dname_t *name, const knot_dname_t *apex) +{ + const uint8_t *nsec3_hash = knot_nsec3_next(nsec3_rdata); + uint16_t n3h_len = knot_nsec3_next_len(nsec3_rdata); + uint8_t nsec3_next[KNOT_DNAME_MAXLEN] = { 0 }; + int ret = knot_nsec3_hash_to_dname(nsec3_next, sizeof(nsec3_next), nsec3_hash, n3h_len, apex); + return ret == KNOT_EOK /* best effort */ && dname_between(nsec3_owner, name, nsec3_next); +} + +static int check_nsec3(zone_node_t *node, void *data) +{ + tree_cb_ctx_t *ctx = data; + dnssec_nsec3_params_t *params = &ctx->conts->nsec3_params, found = { 0 }; + knot_rdataset_t *nsec3 = node_rdataset(node, KNOT_RRTYPE_NSEC3); + dnssec_binary_t rd = { .data = nsec3->rdata->data, .size = nsec3->rdata->len }; + int ret; + if ((ret = dnssec_nsec3_params_from_rdata(&found, &rd)) != KNOT_EOK || + !dnssec_nsec3_params_match(&found, params)) { + LOG_ERROR(ctx->level, node->owner, "invalid or unmatching NSEC3"); + return 1; + } + free(found.salt.data); + + zone_node_t *prev = node_prev(node); + nsec3 = node_rdataset(prev, KNOT_RRTYPE_NSEC3); + if (prev != node && nsec3_covers_name(prev->owner, nsec3->rdata, node->owner, ctx->conts->apex->owner)) { + LOG_ERROR(ctx->level, node->owner, "overlapping NSEC3 ranges"); + return 1; + } + return KNOT_EOK; +} + +static bool parents_have_rrtype(zone_node_t *n, uint16_t type) +{ + while ((n = node_parent(n)) != NULL) { + if (node_rrtype_exists(n, type)) { + return true; + } + } + return false; +} + +static int move_rrset(zone_contents_t *c, zone_node_t *n, uint16_t type, const knot_dname_t *target) +{ + zone_node_t *unused = NULL; + knot_rrset_t rr = node_rrset(n, type); + if (knot_rrset_empty(&rr)) { + return KNOT_EOK; + } + + const knot_rrset_t rr2 = { + .owner = (knot_dname_t *)target, + .type = rr.type, + .rclass = rr.rclass, + .ttl = rr.ttl, + .rrs = rr.rrs, + }; + + int ret = zone_contents_add_rr(c, &rr2, &unused); + if (ret == KNOT_EOK) { + ret = zone_contents_remove_rr(c, &rr, &n); + } + return ret; +} + +static int rrsig_types_labelcnt(const knot_rdataset_t *rrsig, + uint16_t *types, /* must be pre-allocated to rrsig->count+1 */ + uint16_t *lbcnt) +{ + knot_rdata_t *rd = rrsig->rdata; + for (int i = 0; i < rrsig->count; i++) { + if (*lbcnt == 0) { + *lbcnt = knot_rrsig_labels(rd); + } else if (*lbcnt != knot_rrsig_labels(rd)) { + return KNOT_ESEMCHECK; + } + types[i] = knot_rrsig_type_covered(rd); + rd = knot_rdataset_next(rd); + } + return KNOT_EOK; +} + +static int restore_orig_ttls(zone_node_t *node, _unused_ void *unused) +{ + knot_rdataset_t *rrsig = node_rdataset(node, KNOT_RRTYPE_RRSIG); + if (rrsig != NULL) { + knot_rdata_t *rd = rrsig->rdata; + for (int i = 0; i < rrsig->count; i++) { + node_set_ttl(node, knot_rrsig_type_covered(rd), knot_rrsig_original_ttl(rd)); + rd = knot_rdataset_next(rd); + } + } + return KNOT_EOK; +} + +static bool has_nsec3(const zone_contents_t *conts) +{ + return conts->nsec3_params.algorithm > 0; +} + +static bool bitmap_covers(const uint8_t *bitmap, uint16_t bm_len, + uint16_t rrtype, const zone_node_t *node) +{ + if (node != NULL) { + for (int i = 0; i < node->rrset_count; i++) { + uint16_t rrt = node->rrs[i].type; + if (!dnssec_nsec_bitmap_contains(bitmap, bm_len, rrt)) { + return true; + } + } + return false; + } else if (rrtype == 0) { + return true; + } else { + return !dnssec_nsec_bitmap_contains(bitmap, bm_len, rrtype); + } +} + +static bool has_nodata(zone_contents_t *conts, const knot_dname_t *name, uint16_t type, + const zone_node_t *from_node, const knot_dname_t **where) +{ + if (!has_nsec3(conts)) { + const zone_node_t *node = zone_contents_find_node(conts, name); + knot_rrset_t nsec = node_rrset(node, KNOT_RRTYPE_NSEC); + if (where != NULL) { + *where = nsec.owner; + } + return !knot_rrset_empty(&nsec) + && bitmap_covers(knot_nsec_bitmap(nsec.rrs.rdata), + knot_nsec_bitmap_len(nsec.rrs.rdata), type, from_node); + } + + const zone_node_t *nsec3_node = NULL, *nsec3_prev = NULL; + int ret = zone_contents_find_nsec3_for_name(conts, name, &nsec3_node, &nsec3_prev); + if (ret != ZONE_NAME_FOUND) { + return false; // best effort + } + knot_rrset_t nsec3 = node_rrset(nsec3_node, KNOT_RRTYPE_NSEC3); + if (where != NULL) { + *where = nsec3.owner; + } + return !knot_rrset_empty(&nsec3) && + bitmap_covers(knot_nsec3_bitmap(nsec3.rrs.rdata), + knot_nsec3_bitmap_len(nsec3.rrs.rdata), type, from_node); +} + +static bool has_nxdomain(zone_contents_t *conts, const knot_dname_t *name, bool opt_out, + kdig_validation_log_level_t level, bool *has_opt_out, + const knot_dname_t **where, const knot_dname_t **encloser) +{ + if (!has_nsec3(conts)) { + const zone_node_t *match = NULL, *closest = NULL, *prev = NULL; + int ret = zone_contents_find_dname(conts, name, &match, &closest, &prev, + knot_dname_with_null(name)); + if (ret < 0 || match == prev) { + return false; + } + while (prev->rrset_count == 0) { + prev = node_prev(prev); + } + knot_rrset_t nsec = node_rrset(prev, KNOT_RRTYPE_NSEC); + *where = nsec.owner; + *encloser = closest->owner; + if (!knot_rrset_empty(&nsec) && + knot_dname_in_bailiwick(knot_nsec_next(nsec.rrs.rdata), name) >= 0) { + *encloser = name; // empty-non-terminal detected + } + return !opt_out && !knot_rrset_empty(&nsec) && + nsec_covers_name(prev->owner, nsec.rrs.rdata, name); + } + + // scan for closest encloser represented by some NSEC3, because the closest encloser node + // might not be here + size_t apex_nlabels = knot_dname_labels(conts->apex->owner, NULL); + size_t name_nlabels = knot_dname_labels(name, NULL); + const knot_dname_t *enc_where = NULL; + *encloser = knot_dname_next_label(name); + for (; name_nlabels > apex_nlabels; name_nlabels--) { + if (has_nodata(conts, *encloser, 0, NULL, &enc_where) || + // tricky exception: in some cases the closest encloser is + // proven by existence of stuff, e.g. RFC 5155 § 7.2.6 + zone_contents_find_node(conts, *encloser) != NULL) { + break; + } + name = *encloser; + *encloser = knot_dname_next_label(name); + } + if (name_nlabels <= apex_nlabels) { + LOG_ERROR(level, name, "NSEC3 encloser proof missing"); + return false; + } else { + char enc_name[KNOT_DNAME_TXT_MAXLEN] = { 0 }; + (void)knot_dname_to_str(enc_name, *encloser, sizeof(enc_name)); + LOG_FOUND(level, enc_where != NULL ? enc_where : *encloser, "NSEC3 encloser %s found", enc_name); + } + + const zone_node_t *nsec3_node = NULL, *nsec3_prev = NULL; + knot_dname_storage_t nsec3_name; + int ret = knot_create_nsec3_owner(nsec3_name, sizeof(nsec3_name), name, + conts->apex->owner, &conts->nsec3_params); + if (ret == KNOT_EOK) { + ret = zone_contents_find_nsec3(conts, nsec3_name, &nsec3_node, &nsec3_prev); + } + if (ret != ZONE_NAME_NOT_FOUND) { + return false; // best effort + } + knot_rrset_t nsec3 = node_rrset(nsec3_prev, KNOT_RRTYPE_NSEC3); + *where = nsec3.owner; + if (has_opt_out != NULL) { + *has_opt_out = (knot_nsec3_flags(nsec3.rrs.rdata) & KNOT_NSEC3_FLAG_OPT_OUT); + } + return !knot_rrset_empty(&nsec3) && + nsec3_covers_name(nsec3_prev->owner, nsec3.rrs.rdata, nsec3_name, conts->apex->owner) && + (!opt_out || (knot_nsec3_flags(nsec3.rrs.rdata) & KNOT_NSEC3_FLAG_OPT_OUT)); +} + +static int check_existing_with_nsecs(zone_node_t *node, void *data) +{ + tree_cb_ctx_t *ctx = data; + const knot_dname_t *where = NULL, *encloser = NULL; + bool has_opt_out = false; + if (node->flags & NODE_FLAGS_DELEG) { + bool has_nxd = has_nxdomain(ctx->conts, node->owner, false, KDIG_VALIDATION_LOG_NONE, + &has_opt_out, &where, &encloser); + if (node_rrtype_exists(node, KNOT_RRTYPE_DS)) { + if (has_nodata(ctx->conts, node->owner, KNOT_RRTYPE_DS, NULL, NULL)) { + LOG_ERROR(ctx->level, node->owner, + "NSEC(3) wrongly proves insecure delegation"); + return 1; + } else if (has_nxd) { + if (has_opt_out) { + LOG_ERROR(ctx->level, node->owner, + "NSEC3 opt-out wrongly applied to secure delegation"); + } else { + LOG_ERROR(ctx->level, node->owner, + "NSEC(3) wrongly proves NXDOMAIN for secure delegation"); + } + return 1; + } + } else if (has_nxd && !has_opt_out) { + if (has_nsec3(ctx->conts)) { + LOG_ERROR(ctx->level, node->owner, + "NSEC3 opt-out flag missing, proving NXDOMAIN fro insecure delegation"); + } else { + LOG_ERROR(ctx->level, node->owner, + "NSEC wrongly proves NXDOMAIN for insecure delegation"); + } + return 1; + } + } else if (!(node->flags & NODE_FLAGS_NONAUTH)) { + if (has_nodata(ctx->conts, node->owner, 0, node, NULL)) { + LOG_ERROR(ctx->level, node->owner, "NSEC(3) wrongly proves NODATA"); + return 1; + } else if (has_nxdomain(ctx->conts, node->owner, false, KDIG_VALIDATION_LOG_NONE, + &has_opt_out, &where, &encloser) && + (!has_opt_out || (node->flags & NODE_FLAGS_SUBTREE_AUTH))) { + LOG_ERROR(ctx->level, node->owner, "NSEC(3) wrongly proves NXDOMAIN"); + return 1; + } + } + return KNOT_EOK; +} + +static const knot_rrset_t *find_first(knot_pkt_t *pkt, uint16_t rrtype, knot_section_t limit) +{ + for (int i = 0; i <= limit; i++) { + for (int j = 0; j < pkt->sections[i].count; j++) { + const knot_rrset_t *rr = knot_pkt_rr(&pkt->sections[i], j); + if (rr->type == rrtype) { + return rr; + } + } + } + return NULL; +} + +int remove_cnames(zone_node_t *node, void *data) +{ + knot_rrset_t cname = node_rrset(node, KNOT_RRTYPE_CNAME); + if (!knot_rrset_empty(&cname)) { + zone_node_t *unused = NULL; + return zone_contents_remove_rr(data, &cname, &unused); + } + return KNOT_EOK; +} + +static int rrsets_pkt2conts(knot_pkt_t *pkt, zone_contents_t *conts, + knot_section_t limit, uint16_t type_only, + kdig_validation_log_level_t level) +{ + int ret = KNOT_EOK; + for (int i = 0; i <= limit && ret == KNOT_EOK; i++) { + for (int j = 0; j < pkt->sections[i].count && ret == KNOT_EOK; j++) { + const knot_rrset_t *rr = knot_pkt_rr(&pkt->sections[i], j); + if (rr->type == KNOT_RRTYPE_RRSIG) { + assert(rr->rrs.count == 1); + if (type_only && knot_rrsig_type_covered(rr->rrs.rdata) != type_only) { + continue; + } + } else if ((type_only && rr->type != type_only) || knot_rrtype_is_metatype(rr->type)) { + continue; + } + + uint16_t rr_pos = knot_pkt_rr_offset(&pkt->sections[i], j); + knot_dname_storage_t owner; + knot_dname_unpack(owner, pkt->wire + rr_pos, sizeof(owner), pkt->wire); + + knot_rrset_t rrcpy = *rr; + rrcpy.owner = (knot_dname_t *)&owner; + ret = knot_rrset_rr_to_canonical(&rrcpy); + if (ret != KNOT_EOK) { + break; + } + + if (i > KNOT_ANSWER && knot_dname_in_bailiwick(rrcpy.owner, conts->apex->owner) < 0) { + continue; + } + + zone_node_t *inserted = NULL; + ret = zone_contents_add_rr(conts, &rrcpy, &inserted); + if (ret == KNOT_ETTL) { + char rrtype[16] = { 0 }; + knot_rrtype_to_string(rr->type, rrtype, sizeof(rrtype)); + LOG_INF(level, rr->owner, "mismatched TTLs for type %s", rrtype); + ret = KNOT_EOK; + } + } + } + return ret; +} + +static int solve_missing_apex(knot_pkt_t *pkt, uint16_t rrtype, zone_contents_t *conts, + kdig_validation_log_level_t level) +{ + if (node_rrtype_exists(conts->apex, rrtype)) { + return KNOT_EOK; + } + if (knot_pkt_qtype(pkt) != rrtype || + !knot_dname_is_equal(knot_pkt_qname(pkt), conts->apex->owner)) { + return KNOT_EAGAIN; + } + int ret = rrsets_pkt2conts(pkt, conts, KNOT_ANSWER, rrtype, level); + if (ret == KNOT_EOK && !node_rrtype_exists(conts->apex, rrtype)) { + ret = KNOT_ENOENT; + } + return ret; +} + +static int check_cname(kdig_dnssec_ctx_t *ctx, const knot_dname_t *cname, + uint16_t type, kdig_validation_log_level_t level, + knot_rcode_t *expected_rcode); + +static int check_name(kdig_dnssec_ctx_t *ctx, const knot_dname_t *name, + uint16_t type, kdig_validation_log_level_t level, + knot_rcode_t *expected_rcode) +{ + const knot_dname_t *where = NULL, *encloser = NULL; + const zone_node_t *match = NULL, *closest = NULL, *prev = NULL; + bool has_opt_out = false; + bool wc_match = knot_dname_is_wildcard(name) && !knot_dname_is_wildcard(ctx->orig_qname); + int ret = zone_contents_find_dname(ctx->conts, name, &match, &closest, &prev, + knot_dname_with_null(name)); + if (ret < 0) { + return ret; + } + if (expected_rcode != NULL) { + *expected_rcode = KNOT_RCODE_NOERROR; + } + while ((closest->flags & NODE_FLAGS_NONAUTH)) { + closest = node_parent(closest); + } + if ((closest->flags & NODE_FLAGS_DELEG)) { + if (node_rrtype_exists(closest, KNOT_RRTYPE_DS)) { + LOG_FOUND(level, closest->owner, "secure delegation, DS found"); + return KNOT_EOK; + } else if (has_nodata(ctx->conts, closest->owner, KNOT_RRTYPE_DS, NULL, &where)) { + LOG_FOUND(level, where, "insecure delegation, DS NODATA proof found"); + } else if (has_nxdomain(ctx->conts, closest->owner, true, level, &has_opt_out, &where, &encloser)) { + assert(has_opt_out); + LOG_FOUND(level, where, "insecure delegation, opt-out proof found"); + } else { + LOG_ERROR(level, closest->owner, "delegation, DS non-existence proof missing"); + return 1; + } + } else if (ret == ZONE_NAME_NOT_FOUND) { + if (!wc_match && has_nsec3(ctx->conts) && has_nodata(ctx->conts, name, 0, NULL, &where)) { + if (has_nodata(ctx->conts, name, type, NULL, &where)) { + LOG_FOUND(level, where, "NSEC3 NODATA proof found"); + return KNOT_EOK; + } else { + LOG_ERROR(level, where, "NSEC3 NODATA proof missing"); + return 1; + } + } + if (node_rrtype_exists(closest, KNOT_RRTYPE_DNAME)) { + const knot_dname_t *dname_tgt = knot_dname_target(node_rdataset(closest, KNOT_RRTYPE_DNAME)->rdata); + size_t labels = knot_dname_labels(closest->owner, NULL); + knot_dname_t *cname = knot_dname_replace_suffix(name, labels, dname_tgt, NULL); + if (cname == NULL) { + return KNOT_ENOMEM; + } + LOG_FOUND(level, cname, "DNAME found, continuing validation"); + ret = check_cname(ctx, cname, type, level, expected_rcode); + knot_dname_free(cname, NULL); + return ret; + } + if (has_nxdomain(ctx->conts, name, false, level, &has_opt_out, &where, &encloser)) { + if (wc_match) { + LOG_FOUND(level, where, "wildcard non-existence proven"); + } else { + LOG_FOUND(level, where, "NXDOMAIN proven"); + } + } else { + if (ctx->cname_visit > 0) { + LOG_INF(level, name, "CNAME/DNAME chain not returned whole, please re-query for the target"); + return KNOT_EOK; // auth is not obligated to follow the chain whole + } + if (wc_match) { + LOG_INF(level, where, "wildcard non-existence proof missing"); + } else { + LOG_INF(level, where, "NXDOMAIN proof missing"); + } + return 1; + } + if (encloser == name) { + LOG_INF(level, name, "empty non-terminal detected, wildcard not applicable"); + return KNOT_EOK; + } + if (knot_dname_is_wildcard(name)) { + if (expected_rcode != NULL) { + *expected_rcode = KNOT_RCODE_NXDOMAIN; + } + } else { + knot_dname_storage_t wc; + ret = dname_wildcard(encloser, wc, sizeof(wc)); + if (ret != KNOT_EOK) { + return ret; + } + if (has_opt_out && ctx->orig_rcode == KNOT_RCODE_NOERROR && + zone_contents_find_node(ctx->conts, wc) == NULL) { + LOG_INF(level, wc, "this is empty non-terminal NODATA unprovable due to NSEC3 opt-out, " + "skipping wildcard non-existence proof"); + return KNOT_EOK; + } + LOG_INF(level, wc, "checking wildcard non/existence"); + return check_name(ctx, wc, type, level, expected_rcode); + } + } else if (node_rrtype_exists(match, KNOT_RRTYPE_CNAME)) { + const knot_rdataset_t *cn = node_rdataset(match, KNOT_RRTYPE_CNAME); + LOG_FOUND(level, knot_cname_name(cn->rdata), "CNAME found, continuing validation"); + return check_cname(ctx, knot_cname_name(cn->rdata), type, level, expected_rcode); + } else if (!node_rrtype_exists(match, type)) { + if (has_nodata(ctx->conts, match->owner, type, NULL, &where)) { + LOG_FOUND(level, where, "NSEC NODATA proof found"); + } else { + LOG_ERROR(level, match->owner, "NODATA proof missing"); + return 1; + } + } else { + LOG_FOUND(level, match->owner, "positive answer found"); + } + return KNOT_EOK; +} + +static int check_cname(kdig_dnssec_ctx_t *ctx, const knot_dname_t *cname, + uint16_t type, kdig_validation_log_level_t level, + knot_rcode_t *expected_rcode) +{ + if (knot_dname_in_bailiwick(cname, ctx->conts->apex->owner) < 0) { + return KNOT_EOK; + } + if (++ctx->cname_visit >= CNAME_LIMIT) { + LOG_INF(level, cname, "limit (%d) of CNAME/DNAME chain reached, giving up", CNAME_LIMIT); + return KNOT_EOK; + } + return check_name(ctx, cname, type, level, expected_rcode); +} + +static int init_conts_from_pkt(knot_pkt_t *pkt, kdig_dnssec_ctx_t *ctx, + kdig_validation_log_level_t level) +{ + const knot_rrset_t *some_rrsig = find_first(pkt, KNOT_RRTYPE_RRSIG, KNOT_AUTHORITY); + if (some_rrsig == NULL) { + return KNOT_DNSSEC_ENOSIG; + } + const knot_dname_t *rrsig_zone = knot_rrsig_signer_name(some_rrsig->rrs.rdata); + + ctx->orig_qname = knot_dname_copy(knot_pkt_qname(pkt), NULL); + ctx->conts = zone_contents_new(rrsig_zone, false); + if (ctx->orig_qname == NULL || ctx->conts == NULL) { + // no need to free anything, sorted by kdig_dnssec_free in any case + return KNOT_ENOMEM; + } + ctx->orig_qtype = knot_pkt_qtype(pkt); + ctx->orig_rcode = knot_pkt_ext_rcode(pkt); + + int ret = rrsets_pkt2conts(pkt, ctx->conts, KNOT_AUTHORITY, 0, level); + if (ret != KNOT_EOK) { + return ret; + } + + const knot_rrset_t *some_nsec3 = find_first(pkt, KNOT_RRTYPE_NSEC3, KNOT_AUTHORITY); + if (some_nsec3 != NULL) { + dnssec_binary_t nsec3rd = { + .data = some_nsec3->rrs.rdata->data, + .size = some_nsec3->rrs.rdata->len, + }; + ret = dnssec_nsec3_params_from_rdata(&ctx->conts->nsec3_params, &nsec3rd); + if (ret != KNOT_EOK) { + return ret; + } + } + + return KNOT_EOK; +} + +static int dnssec_validate(knot_pkt_t *pkt, kdig_dnssec_ctx_t **dv_ctx, + kdig_validation_log_level_t loglevel, + knot_dname_t zone_name[KNOT_DNAME_MAXLEN], + uint16_t *type_needed) +{ + if (pkt == NULL || dv_ctx == NULL || zone_name == NULL || type_needed == NULL) { + return KNOT_EINVAL; + } + + if (*dv_ctx == NULL) { + *dv_ctx = calloc(1, sizeof(**dv_ctx)); + if (*dv_ctx == NULL) { + return KNOT_ENOMEM; + } + + int ret = init_conts_from_pkt(pkt, *dv_ctx, loglevel); + if (ret != KNOT_EOK) { + return ret; + } else if (loglevel >= KDIG_VALIDATION_LOG_INFOS) { + char zn[KNOT_DNAME_TXT_MAXLEN] = { 0 }; + knot_dname_to_str(zn, (*dv_ctx)->conts->apex->owner, sizeof(zn)); + LOG_INF(loglevel, NULL, "for zone: %s", zn); + } + } + + zone_contents_t *conts = (*dv_ctx)->conts; + memcpy(zone_name, conts->apex->owner, knot_dname_size(conts->apex->owner)); + + int ret = solve_missing_apex(pkt, KNOT_RRTYPE_DNSKEY, conts, loglevel); + if (ret != KNOT_EOK) { // EAGAIN or failure + *type_needed = KNOT_RRTYPE_DNSKEY; + return ret; + } + + // revert answering quirks: wildcard expansion and CNAME synthesis + zone_tree_delsafe_it_t it = { 0 }; + ret = zone_tree_delsafe_it_begin(conts->nodes, &it, false); + while (ret == KNOT_EOK && !zone_tree_delsafe_it_finished(&it)) { + zone_node_t *n = zone_tree_delsafe_it_val(&it); + knot_rrset_t cname = node_rrset(n, KNOT_RRTYPE_CNAME); + knot_rrset_t rrsig = node_rrset(n, KNOT_RRTYPE_RRSIG); + if (!knot_rrset_empty(&cname) && parents_have_rrtype(n, KNOT_RRTYPE_DNAME)) { + ret = zone_contents_remove_rr(conts, &cname, &n); + zone_tree_delsafe_it_next(&it); + continue; + } + + uint16_t nlabels = knot_dname_labels(n->owner, NULL); + uint16_t rrsig_nlabels = 0; + uint16_t types[rrsig.rrs.count + 1]; + ret = rrsig_types_labelcnt(&rrsig.rrs, &types[0], &rrsig_nlabels); + types[rrsig.rrs.count] = KNOT_RRTYPE_RRSIG; + if (nlabels > rrsig_nlabels && rrsig_nlabels > 0 && !knot_dname_is_wildcard(n->owner)) { + knot_dname_storage_t wc; + const knot_dname_t *stripped = dname_next_labels(n->owner, nlabels - rrsig_nlabels); + ret = dname_wildcard(stripped, wc, sizeof(wc)); + for (int i = 0; i < rrsig.rrs.count + 1 && ret == KNOT_EOK; i++) { + ret = move_rrset(conts, n, types[i], wc); + } + } + zone_tree_delsafe_it_next(&it); + } + zone_tree_delsafe_it_free(&it); + + if (ret == KNOT_EOK) { + ret = zone_adjust_contents(conts, adjust_cb_flags, adjust_cb_nsec3_flags, false, + true, false, 1, NULL); + } + if (ret == KNOT_EOK) { + ret = zone_tree_apply(conts->nodes, restore_orig_ttls, NULL); + } + if (ret == KNOT_EOK) { + ret = zone_tree_apply(conts->nsec3_nodes, restore_orig_ttls, NULL); + } + if (ret != KNOT_EOK) { + return ret; + } + + // NOTE at this point we have complete "contents" filled with the answer, DNSKEY and their RRSIGs + + knot_rcode_t expected_rcode = KNOT_RCODE_NOERROR; + tree_cb_ctx_t cb_ctx = { .conts = conts, .level = loglevel }; + + // check NSEC3 tree consistence + ret = zone_tree_apply(conts->nsec3_nodes, check_nsec3, &cb_ctx); + if (ret != KNOT_EOK) { // also '1' + return ret; + } + + // check the NSEC(3) proofs relevant for the queried name + ret = check_name(*dv_ctx, (*dv_ctx)->orig_qname, (*dv_ctx)->orig_qtype, loglevel, &expected_rcode); + if (ret != KNOT_EOK) { // also '1' + return ret; + } + + // check that any NSEC does not prove non-existence of anything existing + ret = zone_tree_apply(conts->nodes, check_existing_with_nsecs, &cb_ctx); + if (ret != KNOT_EOK) { // also '1' + return ret; + } + + // check validity of all RRSIGs + kdnssec_ctx_t kd_ctx = { 0 }; + ret = kdnssec_validation_ctx(NULL, &kd_ctx, conts, 1); + if (ret != KNOT_EOK) { + return ret; + } + kd_ctx.policy->signing_threads = 1; + zone_update_t fake_up = { .new_cont = conts }; + ret = knot_zone_sign(&fake_up, NULL, &kd_ctx); + kdnssec_ctx_deinit(&kd_ctx); + if (ret == KNOT_DNSSEC_ENOSIG) { + char type_txt[16] = { 0 }; + (void)knot_rrtype_to_string(fake_up.validation_hint.rrtype, type_txt, sizeof(type_txt)); + LOG_ERROR(loglevel, fake_up.validation_hint.node, "invalid or missing RRSIG for %s", type_txt); + return 1; + } else if (ret == KNOT_EOK) { + LOG_FOUND(loglevel, NULL, "all RRSIGs present and valid"); + } + + // check RCODE + if (expected_rcode != (*dv_ctx)->orig_rcode) { + const knot_lookup_t *item = knot_lookup_by_id(knot_rcode_names, expected_rcode); + LOG_ERROR(loglevel, NULL, "expected RCODE was: %s", item->name); + return 1; + } else { + LOG_FOUND(loglevel, NULL, "correct RCODE found"); + } + + return ret; +} + +int kdig_dnssec_validate(knot_pkt_t *pkt, kdig_dnssec_ctx_t **dv_ctx, + kdig_validation_log_level_t level, + knot_dname_t zone_name[KNOT_DNAME_MAXLEN], uint16_t *type_needed) +{ + int ret = dnssec_validate(pkt, dv_ctx, level, zone_name, type_needed); + if (ret == 1) { + LOG_OUTCOME(level, NULL, "Invalid!"); + ret = KNOT_EOK; + } else if (ret == KNOT_DNSSEC_ENOSIG) { // ONLY the case when no RRSIG at all + LOG_ERROR(level, NULL, "Missing any RRSIGs."); + LOG_OUTCOME(level, NULL, "Invalid!"); + ret = KNOT_EOK; + } else if (ret == KNOT_EOK) { + LOG_OUTCOME(level, NULL, "Valid!"); + } + + if (ret == KNOT_EAGAIN) { + char type_txt[16] = { 0 }; + knot_rrtype_to_string(*type_needed, type_txt, sizeof(type_txt)); + LOG_INF(level, zone_name, "need to re-query for %s", type_txt); + } else { + kdig_dnssec_free(*dv_ctx); + *dv_ctx = NULL; + } + return ret; +} + +void kdig_dnssec_free(kdig_dnssec_ctx_t *dv_ctx) +{ + if (dv_ctx != NULL) { + zone_contents_deep_free(dv_ctx->conts); + free(dv_ctx->orig_qname); + free(dv_ctx); + } +} diff --git a/src/utils/kdig/dnssec_validation.h b/src/utils/kdig/dnssec_validation.h new file mode 100644 index 0000000000..7573e8492c --- /dev/null +++ b/src/utils/kdig/dnssec_validation.h @@ -0,0 +1,41 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#pragma once + +#include "libknot/packet/pkt.h" + +struct kdig_dnssec_ctx; + +typedef enum { + KDIG_VALIDATION_LOG_NONE, + KDIG_VALIDATION_LOG_OUTCOME, + KDIG_VALIDATION_LOG_ERRORS, + KDIG_VALIDATION_LOG_INFOS, +} kdig_validation_log_level_t; + +/*! + * \brief Detailed DNSSEC validation of response pkt, logging to stdout. + * + * \param pkt The packet with a DNS response. + * \param dv_ctx In/out: context structure persistent across calling this function. + * \param level Verbosity of the logging. + * \param zone_name Detected zone name. + * \param type_needed Out: RRtype to re-query for. + * + * \retval KNOT_EAGAIN The caller shall re-query the detected zone's apex (zone_name) for requested RRtye (type_needed) and call this function again with the same context (dv_ctx) and the new DNS response packet. + * \retval KNOT_EOK The validation successfully took place, either finding errors and logging them, or finding all OK. + * \return KNOT_E* An error occured so that the validation couldn't take place. + */ +int kdig_dnssec_validate(knot_pkt_t *pkt, struct kdig_dnssec_ctx **dv_ctx, + kdig_validation_log_level_t level, + knot_dname_t zone_name[KNOT_DNAME_MAXLEN], uint16_t *type_needed); + +/*! + * \brief Free DNSSEC validation context. + * + * \param dv_ctx Context structure to free. + */ +void kdig_dnssec_free(struct kdig_dnssec_ctx *dv_ctx); diff --git a/src/utils/kdig/kdig_exec.c b/src/utils/kdig/kdig_exec.c index c0f46d0793..141d4d0f0f 100644 --- a/src/utils/kdig/kdig_exec.c +++ b/src/utils/kdig/kdig_exec.c @@ -8,6 +8,7 @@ #include #include +#include "utils/kdig/dnssec_validation.h" #include "utils/kdig/kdig_exec.h" #include "utils/common/exec.h" #include "utils/common/msg.h" @@ -798,6 +799,55 @@ static int process_query_packet(const knot_pkt_t *query, return ret; } + if (query_ctx->dnssec_validation > 0) { +#if defined(HAVE_KDIG_VALIDATION) && !defined(NO_DNSSEC_VALIDATION) + knot_dname_t zone_name[KNOT_DNAME_MAXLEN] = { 0 }; + uint16_t type_needed = 0; + struct kdig_dnssec_ctx *dv_ctx = query_ctx->dv_ctx; + + if (dv_ctx == NULL) { + printf("\n;; DNSSEC VALIDATION:\n"); + } + + ret = kdig_dnssec_validate(reply, &dv_ctx, query_ctx->dnssec_validation, zone_name, &type_needed); + if (ret == KNOT_EAGAIN) { // need to re-query to get DNSKEY + knot_pkt_free(reply); + + query_t new_ctx = *query_ctx; + new_ctx.owner = knot_dname_to_str_alloc(zone_name); + if (new_ctx.owner == NULL) { + kdig_dnssec_free(dv_ctx); + net_close_keepopen(net, query_ctx); + return KNOT_ENOMEM; + } + new_ctx.type_num = type_needed; + new_ctx.dv_ctx = dv_ctx; + new_ctx.style.show_header = false; + new_ctx.style.show_edns = false; + new_ctx.style.show_footer = false; + new_ctx.style.show_section = false; + new_ctx.style.show_question = false; + new_ctx.style.show_authority = false; + new_ctx.style.show_additional = false; + knot_pkt_t *new_query = create_query_packet(&new_ctx); + if (new_query == NULL) { + free(new_ctx.owner); + kdig_dnssec_free(dv_ctx); + net_close_keepopen(net, query_ctx); + return KNOT_ENOMEM; + } + ret = process_query_packet(new_query, net, &new_ctx, ignore_tc, + sign_ctx, &new_ctx.style); + knot_pkt_free(new_query); + free(new_ctx.owner); + return ret; + } + if (ret != KNOT_EOK) { + ERR("DNSSEC VALIDATION failed to proceed (%s)", knot_strerror(ret)); + } +#endif // HAVE_KDIG_VALIDATION && !NO_DNSSEC_VALIDATION + } + knot_pkt_free(reply); net_close_keepopen(net, query_ctx); diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index 742b28af99..feacd280c3 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -275,6 +275,37 @@ static int opt_nodoflag(const char *arg, void *query) return KNOT_EOK; } +static int opt_validate(const char *arg, void *query) +{ +#if defined(HAVE_KDIG_VALIDATION) && !defined(NO_DNSSEC_VALIDATION) + query_t *q = query; + + q->dnssec_validation = 3; + if (arg != NULL) { + if (!is_digit(arg[0]) || arg[0] < '1' || arg[0] > '3') { + ERR("invalid +validation=%s", arg); + return KNOT_EINVAL; + } + q->dnssec_validation = arg[0] - '0'; + } + q->flags.do_flag = true; + + return KNOT_EOK; +#else + ERR("DNSSEC validation support not compiled"); + return KNOT_ENOTSUP; +#endif // HAVE_KDIG_VALIDATION && !NO_DNSSEC_VALIDATION +} + +static int opt_novalidate(const char *arg, void *query) +{ + query_t *q = query; + + q->dnssec_validation = 0; + + return KNOT_EOK; +} + static int opt_all(const char *arg, void *query) { query_t *q = query; @@ -1550,6 +1581,9 @@ static const param_t kdig_opts2[] = { { "dnssec", ARG_NONE, opt_doflag }, // Alias. { "nodnssec", ARG_NONE, opt_nodoflag }, + { "validate", ARG_OPTIONAL, opt_validate }, + { "novalidate", ARG_NONE, opt_novalidate }, + { "all", ARG_NONE, opt_all }, { "noall", ARG_NONE, opt_noall }, @@ -2377,6 +2411,7 @@ static void print_help(void) " +[no]cdflag Set CD flag.\n" " +[no]doflag Set DO flag.\n" " +[no]dnssec Same as +[no]doflag.\n" + " +[no]validate[=LEVEL] Re-query for SOA and DNSKEY, validate DNSSEC.\n" " +[no]all Show all packet sections.\n" " +[no]qr Show query packet.\n" " +[no]header * Show packet header.\n" diff --git a/src/utils/kdig/kdig_params.h b/src/utils/kdig/kdig_params.h index 869ae12e7d..0fb54210a9 100644 --- a/src/utils/kdig/kdig_params.h +++ b/src/utils/kdig/kdig_params.h @@ -130,6 +130,9 @@ struct query { struct sockaddr_storage src; struct sockaddr_storage dst; } proxy; + /*!< Trigger of DNSSEC validation and related contents_t. */ + int dnssec_validation; + struct kdig_dnssec_ctx *dv_ctx; #if USE_DNSTAP /*!< Context for dnstap reader input. */ dt_reader_t *dt_reader; diff --git a/tests/.gitignore b/tests/.gitignore index a4a59795fb..abb5933545 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -97,3 +97,4 @@ /modules/test_rrl /utils/test_lookup +/utils/test_kdig_validate diff --git a/tests/Makefile.am b/tests/Makefile.am index fc506fd4d9..f93de3c9d1 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -30,7 +30,8 @@ EXTRA_DIST = \ knot/test_semantic_check.in \ libzscanner/data \ libzscanner/test_zscanner.in \ - libzscanner/TESTS + libzscanner/TESTS \ + utils/test_kdig_validate.in check_LTLIBRARIES = libtap.la @@ -45,6 +46,8 @@ libtap_la_SOURCES = \ EXTRA_PROGRAMS = tap/runtests +check_SCRIPTS = + check_PROGRAMS = \ contrib/test_base32hex \ contrib/test_base64 \ @@ -164,6 +167,16 @@ endif ENABLE_XDP if HAVE_LIBUTILS check_PROGRAMS += \ utils/test_lookup + +if HAVE_KDIG_VALIDATION +check_SCRIPTS += \ + utils/test_kdig_validate + +utils/test_kdig_validate: + @$(edit) < $(top_srcdir)/tests/$@.in > $(top_builddir)/tests/$@ + @chmod +x $(top_builddir)/tests/$@ +endif HAVE_KDIG_VALIDATION + endif HAVE_LIBUTILS if HAVE_DAEMON @@ -220,7 +233,7 @@ libzscanner_zscanner_tool_SOURCES = \ libzscanner/processing.h \ libzscanner/processing.c -check_SCRIPTS = \ +check_SCRIPTS += \ libzscanner/test_zscanner edit = $(SED) \ diff --git a/tests/utils/test_kdig_validate.in b/tests/utils/test_kdig_validate.in new file mode 100644 index 0000000000..120825d981 --- /dev/null +++ b/tests/utils/test_kdig_validate.in @@ -0,0 +1,126 @@ +#!/bin/sh +# Copyright (C) CZ.NIC, z.s.p.o. and contributors +# SPDX-License-Identifier: GPL-2.0-or-later +# For more information, see + +BUILDROOT="@top_builddir@" +SRCROOT="@top_srcdir@" + +. "@top_srcdir@/tests/tap/libtap.sh" + +TMPDIR=$(cd $(test_tmpdir) && pwd) +if [ -f /etc/crypto-policies/config ] || [ ${#TMPDIR} -gt 85 ]; then + diag "Test not compatible with strict crypto policy or too long unix socket paths" + skip_all + exit 0 +fi + +SCN=$TMPDIR/scenario.txt +CONF=$TMPDIR/knot.conf +RUNDIR=$TMPDIR/run +LISTEN=$RUNDIR/listen +LISTEN_CTL=$RUNDIR/ctl +VALGRIND= + +if [ "$2" = "v" ]; then + VALGRIND="valgrind --leak-check=full --show-leak-kinds=all" +fi + +cat << EOF > $SCN +delegation.signed deleg A NOK! DS.NODATA.*found x.deleg A NOK! DS.NODATA.*found +different_signer_name.signed dns1 A OK! answer.found dns1 TXT NOK! NODATA.*found +dname_apex_nsec3.signed foo A OK! limit.*of.*DNAME x TXT OK! limit.*of.*DNAME +dnskey_keytags.many dns1 A FAILED many.*keytag dns2 A FAILED many.*keytag +no_rrsig.signed dns1 AAAA NOK! missing.RRSIG.*NSEC dns2 A NOK! missing.RRSIG.*NSEC +no_rrsig_with_delegation.signed deleg A NOK! any.RRSIG deleg DS NOK! missing.RRSIG.*NSEC +nsec_broken_chain_01.signed eee A NOK! invalid.*RRSIG.*NSEC zzz A OK! wildcard.non.*proven +nsec_broken_chain_02.signed eee A OK! wildcard.non.*proven zzz A NOK! wrongly.proves.NXDOMAIN +nsec_missing.signed www AAAA NOK! NXDOMAIN.*missing dns2 A NOK! invalid.*RRSIG.*NSEC +nsec_multiple.signed www AAAA NOK! wrongly.proves.NXDOMAIN zzz A NOK! wrongly.proves.NXDOMAIN +nsec_nonauth.invalid nonauth.deleg NS NOK! invalid.*RRSIG.*DNSKEY nonauth.deleg DS NOK! invalid.*RRSIG.*DNSKEY +nsec_wrong_bitmap_01.signed www A OK! answer.found www AAAA NOK! NODATA.*missing +nsec_wrong_bitmap_02.signed www A OK! answer.found www AAAA NOK! invalid.*RRSIG.*NSEC +nsec3_chain_01.signed deleg A NOK! invalid.*RRSIG.*NSEC3 dns2 A NOK! overlapping.*NSEC3 +nsec3_chain_02.signed deleg A OK! DS.NODATA.*found dns2 A NOK! overlapping.*NSEC3 +nsec3_chain_03.signed deleg A NOK! invalid.*RRSIG.*NSEC3 dns2 A NOK! overlapping.*NSEC3 +nsec3_missing.signed extra AAAA NOK! NXDOMAIN.*missing extrb A NOK! invalid.*RRSIG.*NSEC3 +nsec3_optout_ent.all x.deleg2.ent A OK! opt-out.*found ent A OK! NODATA.*unprovable +nsec3_optout_ent.invalid x.deleg1.ent A OK! DS.NODATA.*found ent A OK! NODATA.*unprovable +nsec3_optout_ent.valid x.deleg1.ent A OK! DS.NODATA.*found ent A OK! NODATA.*found +nsec3_optout.signed zzz A NOK! DS.non.*missing xx.zzz A NOK! DS.non.*missing +nsec3_param_invalid.signed dns1 A OK! answer.found dns2 A NOK! any.RRSIG +nsec3_wrong_bitmap_01.signed example.com. DNSKEY OK! answer.found example.com. SSHFP NOK! wrongly.proves.NODATA +nsec3_wrong_bitmap_02.signed dns1 TXT NOK! invalid.*RRSIG.*NSEC3 dns1 NSEC NOK! NODATA.*missing +rrsig_rdata_ttl.signed dns1 A NOK! invalid.*RRSIG.*A dns1 TXT OK! NODATA.*found +rrsig_signed.signed dns1 A OK! answer.found dns1 RRSIG OK! answer.found +rrsig_ttl.signed dns1 A OK! answer.found dns1 AAAA OK! NODATA.*found +EOF + +cat << EOF > $CONF +server: + rundir: $RUNDIR + listen: $LISTEN + tcp-workers: 1 + udp-workers: 1 + background-workers: 1 +control: + listen: $LISTEN_CTL +database: + storage: $RUNDIR + timer-db-sync: never +zone: + - domain: example.com. + storage: $RUNDIR + file: example.com.zone +log: + - target: stdout + any: debug +EOF + +plan $(( $(cat "$SCN" | wc -l) * 4 )) + +q() { + QN="$2" + OUTCOME=$(echo "$4" | sed 's/NOK/Invalid/;s/OK/Valid/;s/FAILED/VALIDATION failed to proceed/') + case "$QN" in + *.) ;; + *) QN="$QN.example.com." ;; + esac + CMD="$VALGRIND $BUILDROOT/src/kdig @$LISTEN +tcp +validate +nocrypto $QN -t $3" + echo "$1 $CMD" >&2 + RESP=$(sh -c "$CMD" 2>&1) + echo "$RESP" >&2 + echo "$RESP" | grep -q "$OUTCOME" + ok "$1 outcome '$OUTCOME'" test $? -eq 0 + echo "$RESP" | grep -q "$5" + ok "$1 point '$5'" test $? -eq 0 +} + +rm -rf $RUNDIR; mkdir $RUNDIR +$BUILDROOT/src/knotd -c $CONF > $RUNDIR/knot.log & +PID=$! +while ! grep -q 'server started' $RUNDIR/knot.log; do + sleep 0.02 + continue +done + +i=0 +while read ZFILE QNAME QTYPE OUT POINT QNAME2 QTYPE2 OUT2 POINT2; do + i=$((i+1)) + if [ -n "$1" ] && [ "$1" != "$i" ]; then + continue + fi + NLOADED_WAS=$(grep -c 'loaded, serial' $RUNDIR/knot.log) + cat $SRCROOT/tests/knot/semantic_check_data/$ZFILE > $RUNDIR/example.com.zone + $BUILDROOT/src/knotc -s $LISTEN_CTL -f zone-reload >&2 + while [ $(grep -c 'loaded, serial' $RUNDIR/knot.log) = "$NLOADED_WAS" ]; do + sleep 0.02 + done + q "(${i}a)" "$QNAME" "$QTYPE" "$OUT" "$POINT" + q "(${i}b)" "$QNAME2" "$QTYPE2" "$OUT2" "$POINT2" +done < "$SCN" + + +kill -TERM $PID +sleep 0.1 +rm -rf $RUNDIR $SCN $CONF From 89121cb36f8e636c041d95cdaf638d510cb0266f Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 11 Mar 2025 07:42:05 +0100 Subject: [PATCH 444/675] tests: support for calling kdig and its validation --- tests-extra/tests/modules/onlinesign/test.py | 3 +++ tests-extra/tools/dnstest/server.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tests-extra/tests/modules/onlinesign/test.py b/tests-extra/tests/modules/onlinesign/test.py index c7dad10369..e3c2f7c31a 100644 --- a/tests-extra/tests/modules/onlinesign/test.py +++ b/tests-extra/tests/modules/onlinesign/test.py @@ -27,6 +27,7 @@ def check_zone(zone, dnskey_rdata_start): soa1 = knot.dig(zone.name, "SOA", dnssec=True) soa1.check(rcode="NOERROR", flags="QR AA") soa1.check_count(1, "RRSIG") + knot.kdig(zone.name, "SOA", validate=True) t.sleep(1) # Ensure different RRSIGs. @@ -53,6 +54,7 @@ def check_zone(zone, dnskey_rdata_start): resp.check(rcode="NOERROR", flags="QR AA") resp.check_count(1, "DNSKEY") resp.check_count(1, "RRSIG") + knot.kdig(zone.name, "DNSKEY", validate=True) for rrset in resp.resp.answer: if rrset.rdtype != dns.rdatatype.DNSKEY: @@ -67,6 +69,7 @@ def check_zone(zone, dnskey_rdata_start): resp.check_count(1, "SOA", section="authority") resp.check_count(1, "NSEC", section="authority") resp.check_count(2, "RRSIG", section="authority") + knot.kdig("nx." + zone.name, "A", validate=True) t.start() serial = knot.zones_wait(zones) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 89734161e2..ccecfb22a6 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -670,10 +670,10 @@ def kdig(self, rname, rtype, rclass="IN", dnssec=None, validate=None, msgdelay=N if outcome.returncode != 0: set_err("KDIG FAILED") - expect = "OK" + expect = "Valid" if isinstance(validate, str): expect = validate - if validate and not (("DNSSEC VALIDATION: %s!" % expect) in out_s): + if validate and not (("OUTCOME: %s!" % expect) in out_s): set_err("KDIG VALIDATION") return out_s From 9f26e27448efefa381100bc2f89064e075de3795 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 10 Apr 2025 13:01:17 +0200 Subject: [PATCH 445/675] kdig/validation: fix empty-non-terminal wildcard match in NSEC zone... ...for example foo.not-star.phicoh.nl. matches empty-non-terminal wildcard --- src/utils/kdig/dnssec_validation.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/utils/kdig/dnssec_validation.c b/src/utils/kdig/dnssec_validation.c index 4b62b2453f..502b31fb29 100644 --- a/src/utils/kdig/dnssec_validation.c +++ b/src/utils/kdig/dnssec_validation.c @@ -204,11 +204,18 @@ static bool has_nodata(zone_contents_t *conts, const knot_dname_t *name, uint16_ const zone_node_t *from_node, const knot_dname_t **where) { if (!has_nsec3(conts)) { - const zone_node_t *node = zone_contents_find_node(conts, name); - knot_rrset_t nsec = node_rrset(node, KNOT_RRTYPE_NSEC); + const zone_node_t *node = zone_contents_find_node(conts, name), *prev = node; + while (prev->rrset_count == 0) { + prev = node_prev(prev); + } + knot_rrset_t nsec = node_rrset(prev, KNOT_RRTYPE_NSEC); if (where != NULL) { *where = nsec.owner; } + if (prev != node) { // seeking empty non-terminal proof + return !knot_rrset_empty(&nsec) + && nsec_covers_name(prev->owner, nsec.rrs.rdata, name); + } return !knot_rrset_empty(&nsec) && bitmap_covers(knot_nsec_bitmap(nsec.rrs.rdata), knot_nsec_bitmap_len(nsec.rrs.rdata), type, from_node); @@ -331,7 +338,7 @@ static int check_existing_with_nsecs(zone_node_t *node, void *data) } return 1; } - } else if (!(node->flags & NODE_FLAGS_NONAUTH)) { + } else if (!(node->flags & NODE_FLAGS_NONAUTH) && node->rrset_count > 0) { if (has_nodata(ctx->conts, node->owner, 0, node, NULL)) { LOG_ERROR(ctx->level, node->owner, "NSEC(3) wrongly proves NODATA"); return 1; @@ -368,6 +375,11 @@ int remove_cnames(zone_node_t *node, void *data) return KNOT_EOK; } +static zone_node_t *new_node_cb(const knot_dname_t *dname, void *ctx) +{ + return node_new_for_tree(dname, ctx, NULL); +} + static int rrsets_pkt2conts(knot_pkt_t *pkt, zone_contents_t *conts, knot_section_t limit, uint16_t type_only, kdig_validation_log_level_t level) @@ -408,6 +420,11 @@ static int rrsets_pkt2conts(knot_pkt_t *pkt, zone_contents_t *conts, LOG_INF(level, rr->owner, "mismatched TTLs for type %s", rrtype); ret = KNOT_EOK; } + + if (rrcpy.type == KNOT_RRTYPE_NSEC && ret == KNOT_EOK) { + ret = zone_tree_add_node(conts->nodes, conts->apex, knot_nsec_next(rrcpy.rrs.rdata), + new_node_cb, conts->nodes, &inserted); + } } } return ret; From 852c023138412152ddf1debcfeb0fb7bee6eadaa Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 7 Apr 2026 14:49:00 +0200 Subject: [PATCH 446/675] kdig: don't link with unused libknotd dependencies (urcu, hiredis, zscanner,...), version 1 By placing each function in its own section in the object file, the linker can eliminate dead code (and unused calls of external dependencies). The resulting kdig binary is smaller. Unfortunately, this solution slightly worsens knotd performance. --- src/knot/Makefile.inc | 2 +- src/utils/Makefile.inc | 4 ++-- src/utils/kdig/dnssec_validation.c | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/knot/Makefile.inc b/src/knot/Makefile.inc index 19cb78a71b..fb146e8280 100644 --- a/src/knot/Makefile.inc +++ b/src/knot/Makefile.inc @@ -1,7 +1,7 @@ libknotd_la_CPPFLAGS = $(AM_CPPFLAGS) $(CFLAG_VISIBILITY) $(libkqueue_CFLAGS) \ $(liburcu_CFLAGS) $(lmdb_CFLAGS) $(systemd_CFLAGS) \ $(libdbus_CFLAGS) $(gnutls_CFLAGS) $(libhiredis_CFLAGS) \ - -DKNOTD_MOD_STATIC + -DKNOTD_MOD_STATIC -ffunction-sections -fdata-sections libknotd_la_LDFLAGS = $(AM_LDFLAGS) -export-symbols-regex '^knotd_' libknotd_la_LIBADD = $(dlopen_LIBS) $(libkqueue_LIBS) $(pthread_LIBS) libknotd_LIBS = libknotd.la libknot.la libzscanner.la \ diff --git a/src/utils/Makefile.inc b/src/utils/Makefile.inc index 63035034a7..09963838ac 100644 --- a/src/utils/Makefile.inc +++ b/src/utils/Makefile.inc @@ -86,8 +86,8 @@ knsupdate_SOURCES = \ utils/knsupdate/knsupdate_params.h kdig_CPPFLAGS = $(libknotus_la_CPPFLAGS) -kdig_LDADD = $(libknotd_LIBS) $(libknotus_LIBS) -kdig_LDFLAGS = $(AM_LDFLAGS) +kdig_LDADD = libknotd.la $(libknotus_LIBS) $(lmdb_LIBS) +kdig_LDFLAGS = -Wl,--gc-sections khost_CPPFLAGS = $(libknotus_la_CPPFLAGS) -DNO_DNSSEC_VALIDATION khost_LDADD = $(libknotus_LIBS) knsec3hash_CPPFLAGS = $(libknotus_la_CPPFLAGS) diff --git a/src/utils/kdig/dnssec_validation.c b/src/utils/kdig/dnssec_validation.c index 502b31fb29..781b1b4f46 100644 --- a/src/utils/kdig/dnssec_validation.c +++ b/src/utils/kdig/dnssec_validation.c @@ -782,3 +782,8 @@ void kdig_dnssec_free(kdig_dnssec_ctx_t *dv_ctx) free(dv_ctx); } } + +/* Dummy symbols for external dependencies that aren't accessed from kdig. */ +#define DUMMY_FUNC(name) void name(void) { } +DUMMY_FUNC(urcu_memb_read_lock) +DUMMY_FUNC(urcu_memb_read_unlock) From 85daa715a8583de35738feb117e8a6195db60d6b Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 8 Apr 2026 14:25:24 +0200 Subject: [PATCH 447/675] kdig: don't link with unused libknotd dependencies (urcu, hiredis, zscanner,...), version 2 This solution doesn't affect knotd performance by not placing each function in its own section in the object file, but at the cost of a bigger kdig binary. Also it requires ugly symbol redefinitions. --- Knot.files | 1 + src/knot/Makefile.inc | 2 +- src/utils/Makefile.inc | 18 +++- src/utils/common/dummy.c | 142 +++++++++++++++++++++++++++++ src/utils/kdig/dnssec_validation.c | 5 - 5 files changed, 159 insertions(+), 9 deletions(-) create mode 100644 src/utils/common/dummy.c diff --git a/Knot.files b/Knot.files index 675b8bf29b..b90cb7682e 100644 --- a/Knot.files +++ b/Knot.files @@ -586,6 +586,7 @@ src/redis/knot.h src/redis/libs.h src/redis/type_diff.h src/redis/type_rrset.h +src/utils/common/dummy.c src/utils/common/exec.c src/utils/common/exec.h src/utils/common/hex.c diff --git a/src/knot/Makefile.inc b/src/knot/Makefile.inc index fb146e8280..19cb78a71b 100644 --- a/src/knot/Makefile.inc +++ b/src/knot/Makefile.inc @@ -1,7 +1,7 @@ libknotd_la_CPPFLAGS = $(AM_CPPFLAGS) $(CFLAG_VISIBILITY) $(libkqueue_CFLAGS) \ $(liburcu_CFLAGS) $(lmdb_CFLAGS) $(systemd_CFLAGS) \ $(libdbus_CFLAGS) $(gnutls_CFLAGS) $(libhiredis_CFLAGS) \ - -DKNOTD_MOD_STATIC -ffunction-sections -fdata-sections + -DKNOTD_MOD_STATIC libknotd_la_LDFLAGS = $(AM_LDFLAGS) -export-symbols-regex '^knotd_' libknotd_la_LIBADD = $(dlopen_LIBS) $(libkqueue_LIBS) $(pthread_LIBS) libknotd_LIBS = libknotd.la libknot.la libzscanner.la \ diff --git a/src/utils/Makefile.inc b/src/utils/Makefile.inc index 09963838ac..1a18681104 100644 --- a/src/utils/Makefile.inc +++ b/src/utils/Makefile.inc @@ -59,6 +59,14 @@ kdig_SOURCES = \ utils/kdig/kdig_params.h if HAVE_KDIG_VALIDATION +noinst_LTLIBRARIES += libdummy.la + +libdummy_la_CPPFLAGS = $(AM_CPPFLAGS) $(liburcu_CFLAGS) $(systemd_CFLAGS) \ + $(libdbus_CFLAGS) $(libhiredis_CFLAGS) + +libdummy_la_SOURCES = \ + utils/common/dummy.c + kdig_SOURCES += \ utils/kdig/dnssec_validation.c \ utils/kdig/dnssec_validation.h @@ -86,15 +94,19 @@ knsupdate_SOURCES = \ utils/knsupdate/knsupdate_params.h kdig_CPPFLAGS = $(libknotus_la_CPPFLAGS) -kdig_LDADD = libknotd.la $(libknotus_LIBS) $(lmdb_LIBS) -kdig_LDFLAGS = -Wl,--gc-sections -khost_CPPFLAGS = $(libknotus_la_CPPFLAGS) -DNO_DNSSEC_VALIDATION +kdig_LDADD = $(libknotus_LIBS) +khost_CPPFLAGS = $(libknotus_la_CPPFLAGS) khost_LDADD = $(libknotus_LIBS) knsec3hash_CPPFLAGS = $(libknotus_la_CPPFLAGS) knsec3hash_LDADD = libknot.la $(libcontrib_LIBS) knsupdate_CPPFLAGS = $(libknotus_la_CPPFLAGS) knsupdate_LDADD = $(libknotus_LIBS) libzscanner.la +if HAVE_KDIG_VALIDATION +kdig_LDADD += libknotd.la libdummy.la $(libknotus_LIBS) $(lmdb_LIBS) +khost_CPPFLAGS += -DNO_DNSSEC_VALIDATION +endif HAVE_KDIG_VALIDATION + if HAVE_DNSTAP kdig_CPPFLAGS += $(DNSTAP_CFLAGS) kdig_LDADD += $(libdnstap_LIBS) diff --git a/src/utils/common/dummy.c b/src/utils/common/dummy.c new file mode 100644 index 0000000000..1e4841b826 --- /dev/null +++ b/src/utils/common/dummy.c @@ -0,0 +1,142 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +/* + * Dummy symbols for external dependencies that aren't accessed from kdig. + */ + +#include "libzscanner/error.h" +#include "libzscanner/scanner.h" + +int zs_init( + zs_scanner_t *scanner, + const char *origin, + const uint16_t rclass, + const uint32_t ttl +) { return 0; } + +void zs_deinit( + zs_scanner_t *scanner +) { } + +int zs_set_input_string( + zs_scanner_t *scanner, + const char *input, + size_t size +) { return 0; } + +int zs_set_input_file( + zs_scanner_t *scanner, + const char *file_name +) { return 0; } + +int zs_set_processing( + zs_scanner_t *scanner, + void (*process_record)(zs_scanner_t *), + void (*process_error)(zs_scanner_t *), + void *data +) { return 0; } + +int zs_parse_record( + zs_scanner_t *scanner +) { return 0; } + +int zs_parse_all( + zs_scanner_t *scanner +) { return 0; } + +const char* zs_strerror(const int code) { return NULL; } + +//// + +#include + +#if defined(rcu_read_lock_memb) +void urcu_memb_call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *head)) { } +void urcu_memb_read_lock(void) { } +void urcu_memb_read_unlock(void) { } +void urcu_memb_synchronize_rcu(void) { } +void urcu_memb_register_thread(void) { } +void urcu_memb_unregister_thread(void) { } +void *rcu_xchg_pointer_sym(void **p, void *v) { return NULL; } +#else // Needed for CentOS 8 +void call_rcu_memb(struct rcu_head *head, void (*func)(struct rcu_head *head)) { } +void rcu_read_lock_memb(void) { } +void rcu_read_unlock_memb(void) { } +void synchronize_rcu_memb(void) { } +void rcu_register_thread_memb(void) { } +void rcu_unregister_thread_memb(void) { } +void *rcu_xchg_pointer_sym(void **p, void *v) { return NULL; } +#endif // rcu_read_lock_memb + +//// + +#ifdef ENABLE_SYSTEMD +#include +#include + +int sd_booted(void) { return 0; } +#undef sd_journal_send +int sd_journal_send(const char *format, ...) { return 0; } +int sd_journal_send_with_location(const char *file, const char *line, const char *func, const char *format, ...) { return 0; } +#endif // ENABLE_SYSTEMD + +//// + +#if defined(ENABLE_DBUS_SYSTEMD) +#include + +int sd_bus_open_system(sd_bus **ret) { return 0; } +int sd_bus_request_name(sd_bus *bus, const char *name, uint64_t flags) { return 0; } +int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *cookie) { return 0; } +sd_bus* sd_bus_unref(sd_bus *bus) { return NULL; } +int sd_bus_message_new_signal(sd_bus *bus, sd_bus_message **m, const char *path, const char *interface, const char *member) { return 0; } +int sd_bus_message_appendv(sd_bus_message *m, const char *types, va_list ap) { return 0; } +sd_bus_message* sd_bus_message_unref(sd_bus_message *m) { return NULL; } +sd_bus* sd_bus_message_get_bus(sd_bus_message *m) { return NULL; } + +#elif defined(ENABLE_DBUS_LIBDBUS) +#include + +void dbus_error_init(DBusError *error) { } +dbus_bool_t dbus_error_is_set(const DBusError *error) { return 0; } +void dbus_error_free(DBusError *error) { } +DBusConnection* dbus_bus_get(DBusBusType type, DBusError *error) { return NULL; } +int dbus_bus_request_name(DBusConnection *connection, + const char *name, + unsigned int flags, + DBusError *error) { return 0; } +void dbus_connection_unref(DBusConnection *connection) { } +DBusMessage* dbus_message_new_signal(const char *path, + const char *interface, + const char *name) { return NULL; } +dbus_bool_t dbus_message_append_args(DBusMessage *message, int first_arg_type, ...) { return 0; } +dbus_bool_t dbus_connection_send(DBusConnection *connection, + DBusMessage *message, + dbus_uint32_t *client_serial) { return 0; } +void dbus_message_unref(DBusMessage *message) { } + +#endif // ENABLE_DBUS_LIBDBUS + +//// + +#ifdef ENABLE_REDIS +#include + +void redisFree(redisContext *c) { } +redisContext *redisConnectWithTimeout(const char *ip, int port, const struct timeval tv) { return NULL; } +void *redisCommand(redisContext *c, const char *format, ...) { return NULL; } +int redisAppendCommand(redisContext *c, const char *format, ...) { return 0; } +int redisGetReply(redisContext *c, void **reply) { return 0; } +void freeReplyObject(void *reply) { } +int redisBufferWrite(redisContext *c, int *done) { return 0; } +redisContext *redisConnectUnixWithTimeout(const char *path, const struct timeval tv) { return NULL; } + +#ifdef ENABLE_REDIS_TLS +#include +struct hiredisAllocFuncs hiredisAllocFns = { }; +#endif // ENABLE_REDIS_TLS + +#endif // ENABLE_REDIS diff --git a/src/utils/kdig/dnssec_validation.c b/src/utils/kdig/dnssec_validation.c index 781b1b4f46..502b31fb29 100644 --- a/src/utils/kdig/dnssec_validation.c +++ b/src/utils/kdig/dnssec_validation.c @@ -782,8 +782,3 @@ void kdig_dnssec_free(kdig_dnssec_ctx_t *dv_ctx) free(dv_ctx); } } - -/* Dummy symbols for external dependencies that aren't accessed from kdig. */ -#define DUMMY_FUNC(name) void name(void) { } -DUMMY_FUNC(urcu_memb_read_lock) -DUMMY_FUNC(urcu_memb_read_unlock) From bd0a6ce15d1027fedab6c8dbb84b5f9ca7e51295 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 16 Apr 2026 13:08:25 +0200 Subject: [PATCH 448/675] libngtcp2: update embedded library to v1.22.1 --- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c | 2 +- src/contrib/libngtcp2/ngtcp2/version.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c index ed08eb1b5a..42609481ec 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c @@ -902,7 +902,7 @@ void ngtcp2_qlog_pkt_sent_end(ngtcp2_qlog *qlog, const ngtcp2_pkt_hd *hd, void ngtcp2_qlog_parameters_set_transport_params( ngtcp2_qlog *qlog, const ngtcp2_transport_params *params, int server, ngtcp2_qlog_side side) { - uint8_t buf[1024]; + uint8_t buf[2048]; uint8_t *p = buf; const ngtcp2_preferred_addr *paddr; const ngtcp2_sockaddr_in *sa_in; diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index 88e0107a55..a1f09e7148 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.22.0" +#define NGTCP2_VERSION "1.22.1" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x011600 +#define NGTCP2_VERSION_NUM 0x011601 #endif /* !defined(NGTCP2_VERSION_H) */ From ceed837e0b2bfc8f68ecff931f90e2aa04c6da13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dosko=C4=8Dil?= Date: Fri, 13 Feb 2026 16:35:14 +0100 Subject: [PATCH 449/675] utils: report errors in writing the output to the user Notably in cases where output was truncated due to insufficient device storage capacity. --- src/utils/common/msg.h | 13 +++++++++++++ src/utils/kcatalogprint/main.c | 3 +++ src/utils/kdig/kdig_main.c | 3 ++- src/utils/keymgr/main.c | 3 +++ src/utils/khost/khost_main.c | 3 ++- src/utils/kjournalprint/main.c | 3 +++ src/utils/knotc/main.c | 3 ++- src/utils/knsupdate/knsupdate_main.c | 3 ++- src/utils/kxdpgun/main.c | 4 ++++ src/utils/kzonecheck/main.c | 2 +- src/utils/kzonesign/main.c | 3 +++ 11 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/utils/common/msg.h b/src/utils/common/msg.h index 5dba2ecefd..a68dd73ade 100644 --- a/src/utils/common/msg.h +++ b/src/utils/common/msg.h @@ -5,7 +5,10 @@ #pragma once +#include +#include #include +#include #define ERROR_ ";; ERROR: " #define INFO_ ";; INFO: " @@ -30,3 +33,13 @@ int msg_debug(int level, const char *fmt, ...); #define ERR2(msg, ...) do { fprintf(stderr, "error: " msg "\n", ##__VA_ARGS__); fflush(stderr); } while (0) #define WARN2(msg, ...) do { fprintf(stderr, "warning: " msg "\n", ##__VA_ARGS__); fflush(stderr); } while (0) #define INFO2(msg, ...) do { fprintf(stdout, msg "\n", ##__VA_ARGS__); fflush(stdout); } while (0) + +/*! \brief Prints an error message if stdout is in a state of error. */ +inline static bool stdout_write_err(void) +{ + if (fflush(stdout) != 0) { + ERR2("failed writing output (%s)", strerror(errno)); + return true; + } + return false; +} diff --git a/src/utils/kcatalogprint/main.c b/src/utils/kcatalogprint/main.c index 5c89376954..0fbbf477d3 100644 --- a/src/utils/kcatalogprint/main.c +++ b/src/utils/kcatalogprint/main.c @@ -160,6 +160,9 @@ int main(int argc, char *argv[]) catalog_deinit(&c); success: + if (stdout_write_err()) { + goto failure; + } params_cleanup(); util_conf_deinit(); return EXIT_SUCCESS; diff --git a/src/utils/kdig/kdig_main.c b/src/utils/kdig/kdig_main.c index 62a99db0d6..6e0aa60ece 100644 --- a/src/utils/kdig/kdig_main.c +++ b/src/utils/kdig/kdig_main.c @@ -6,6 +6,7 @@ #include #include "libknot/dnssec/crypto.h" +#include "utils/common/msg.h" #include "utils/kdig/kdig_params.h" #include "utils/kdig/kdig_exec.h" #include "libknot/libknot.h" @@ -20,7 +21,7 @@ int main(int argc, char *argv[]) if (kdig_parse(¶ms, argc, argv) == KNOT_EOK) { if (!params.stop) { dnssec_crypto_init(); - if (kdig_exec(¶ms) != KNOT_EOK) { + if (kdig_exec(¶ms) != KNOT_EOK || stdout_write_err()) { ret = EXIT_FAILURE; } dnssec_crypto_cleanup(); diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c index dad690d926..c489d3cae7 100644 --- a/src/utils/keymgr/main.c +++ b/src/utils/keymgr/main.c @@ -423,6 +423,9 @@ int main(int argc, char *argv[]) } success: + if (stdout_write_err()) { + goto failure; + } util_conf_deinit(); dnssec_crypto_cleanup(); return EXIT_SUCCESS; diff --git a/src/utils/khost/khost_main.c b/src/utils/khost/khost_main.c index 253e395832..01b91fc4ba 100644 --- a/src/utils/khost/khost_main.c +++ b/src/utils/khost/khost_main.c @@ -6,6 +6,7 @@ #include #include "libknot/dnssec/crypto.h" +#include "utils/common/msg.h" #include "utils/khost/khost_params.h" #include "utils/kdig/kdig_exec.h" #include "libknot/libknot.h" @@ -20,7 +21,7 @@ int main(int argc, char *argv[]) if (khost_parse(¶ms, argc, argv) == KNOT_EOK) { if (!params.stop) { dnssec_crypto_init(); - if (kdig_exec(¶ms) != KNOT_EOK) { + if (kdig_exec(¶ms) != KNOT_EOK || stdout_write_err()) { ret = EXIT_FAILURE; } dnssec_crypto_cleanup(); diff --git a/src/utils/kjournalprint/main.c b/src/utils/kjournalprint/main.c index 6d536c1412..73458d06f9 100644 --- a/src/utils/kjournalprint/main.c +++ b/src/utils/kjournalprint/main.c @@ -506,6 +506,9 @@ int main(int argc, char *argv[]) } success: + if (stdout_write_err()) { + goto failure; + } util_conf_deinit(); return EXIT_SUCCESS; failure: diff --git a/src/utils/knotc/main.c b/src/utils/knotc/main.c index ec86dc933b..0189cb182c 100644 --- a/src/utils/knotc/main.c +++ b/src/utils/knotc/main.c @@ -9,6 +9,7 @@ #include "contrib/strtonum.h" #include "knot/common/log.h" +#include "utils/common/msg.h" #include "utils/common/params.h" #include "utils/common/signal.h" #include "utils/knotc/commands.h" @@ -165,5 +166,5 @@ int main(int argc, char **argv) log_close(); - return (ret == KNOT_EOK) ? EXIT_SUCCESS : EXIT_FAILURE; + return (ret == KNOT_EOK && !stdout_write_err()) ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/src/utils/knsupdate/knsupdate_main.c b/src/utils/knsupdate/knsupdate_main.c index 0d8551686b..206392ec1c 100644 --- a/src/utils/knsupdate/knsupdate_main.c +++ b/src/utils/knsupdate/knsupdate_main.c @@ -6,6 +6,7 @@ #include #include "libknot/dnssec/crypto.h" +#include "utils/common/msg.h" #include "utils/knsupdate/knsupdate_exec.h" #include "utils/knsupdate/knsupdate_params.h" #include "libknot/libknot.h" @@ -21,7 +22,7 @@ int main(int argc, char *argv[]) if (knsupdate_parse(¶ms, argc, argv) == KNOT_EOK) { if (!params.stop) { dnssec_crypto_init(); - if (knsupdate_exec(¶ms) != KNOT_EOK) { + if (knsupdate_exec(¶ms) != KNOT_EOK || stdout_write_err()) { ret = EXIT_FAILURE; } dnssec_crypto_cleanup(); diff --git a/src/utils/kxdpgun/main.c b/src/utils/kxdpgun/main.c index a287bfd6ab..4faaef2306 100644 --- a/src/utils/kxdpgun/main.c +++ b/src/utils/kxdpgun/main.c @@ -1424,5 +1424,9 @@ int main(int argc, char *argv[]) if (JSON_MODE(ctx)) { jsonw_free(&ctx.jw); } + if (stdout_write_err()) { + ecode = EXIT_FAILURE; + } + return ecode; } diff --git a/src/utils/kzonecheck/main.c b/src/utils/kzonecheck/main.c index 56b95506a4..d6bc19727b 100644 --- a/src/utils/kzonecheck/main.c +++ b/src/utils/kzonecheck/main.c @@ -162,7 +162,7 @@ int main(int argc, char *argv[]) int ret = zone_check(filename, zonename, zonemd, DEFAULT_TTL, optional, (time_t)check_time, print, threads); log_close(); - if (ret == KNOT_EOK) { + if (!stdout_write_err() && ret == KNOT_EOK) { if (verbose && !print) { INFO2("No error found"); } diff --git a/src/utils/kzonesign/main.c b/src/utils/kzonesign/main.c index 73b67e53f3..65bfe20f76 100644 --- a/src/utils/kzonesign/main.c +++ b/src/utils/kzonesign/main.c @@ -270,6 +270,9 @@ int main(int argc, char *argv[]) } success: + if (stdout_write_err()) { + goto failure; + } util_conf_deinit(); return EXIT_SUCCESS; failure: From 3b3fc7daebff93ee5026cdea5392085d4bdd9e18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Wed, 15 Apr 2026 15:31:29 +0200 Subject: [PATCH 450/675] fix: missing error message after explicit fflush call --- src/utils/common/msg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/common/msg.h b/src/utils/common/msg.h index a68dd73ade..9d784cc6ed 100644 --- a/src/utils/common/msg.h +++ b/src/utils/common/msg.h @@ -37,7 +37,7 @@ int msg_debug(int level, const char *fmt, ...); /*! \brief Prints an error message if stdout is in a state of error. */ inline static bool stdout_write_err(void) { - if (fflush(stdout) != 0) { + if (ferror(stdout) != 0) { ERR2("failed writing output (%s)", strerror(errno)); return true; } From 2700ce682082748918285aa95ce097d9dc028d28 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 17 Apr 2026 12:48:18 +0200 Subject: [PATCH 451/675] configure: fix undefined HAVE_KDIG_VALIDATION if disabled utilities or daemon --- configure.ac | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/configure.ac b/configure.ac index 9a707467e7..debbf47270 100644 --- a/configure.ac +++ b/configure.ac @@ -630,9 +630,16 @@ AC_ARG_WITH(libnghttp2, ) dnl DNSSEC validation in kdig -AC_ARG_ENABLE([kdig_validation], - AS_HELP_STRING([--enable-kdig-validation=yes|no], [DNSSEC validation in kdig [default=yes]]), - [enable_kdig_validation="$enableval"], [enable_kdig_validation=yes]) +AC_ARG_ENABLE([kdig-validation], + AS_HELP_STRING([--disable-kdig-validation], [Disable DNSSEC validation in kdig]), + [], [enable_kdig_validation=yes]) +AS_IF([test "$enable_kdig_validation" != "yes" -o "$enable_utilities" != "yes" -o "$enable_daemon" != "yes"], [ + enable_kdig_validation=no +]) +AS_IF([test "$enable_kdig_validation" = "yes"], [ + AC_DEFINE([HAVE_KDIG_VALIDATION], [1], [Define to 1 to enable DNSSEC validation in kdig.]) +]) +AM_CONDITIONAL([HAVE_KDIG_VALIDATION], [test "$enable_kdig_validation" = "yes"]) AS_IF([test "$enable_utilities" = "yes"], [ AS_IF([test "$with_libidn" != "no"], [ @@ -655,12 +662,6 @@ AS_IF([test "$enable_utilities" = "yes"], [ ]) ]) - AS_IF([test "$enable_daemon" = "no"], [enable_kdig_validation=no]) - AS_IF([test "$enable_kdig_validation" != "no"], [ - AC_DEFINE([HAVE_KDIG_VALIDATION], [1], [Define to 1 to enable DNSSEC validation in kdig.]) - ]) - AM_CONDITIONAL([HAVE_KDIG_VALIDATION], [test "$enable_kdig_validation" = yes]) - AS_IF([test "$enable_xdp" != "no"], [ PKG_CHECK_MODULES([libmnl], [libmnl], [], [ AC_MSG_ERROR([libmnl not found]) From b6971163c87278f649c1358e8528154a67b13756 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 20 Apr 2026 12:27:37 +0200 Subject: [PATCH 452/675] module: update conf_activate_modules() description --- src/knot/conf/module.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/knot/conf/module.h b/src/knot/conf/module.h index ae48af6dad..05805e33d1 100644 --- a/src/knot/conf/module.h +++ b/src/knot/conf/module.h @@ -78,10 +78,11 @@ void conf_mod_unload_shared( * Activates configured query modules for the specified zone or for all zones. * * \param[in] conf Configuration. + * \param[in] server Server context. * \param[in] zone_name Zone name, NULL for all zones. * \param[in] query_modules Destination query modules list. * \param[in] query_plan Destination query plan. - * + * * \return Error code, KNOT_EOK if success. */ int conf_activate_modules( From 48d06c517e781af8551982c7d63b9cc1fe4e016b Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 20 Apr 2026 12:28:31 +0200 Subject: [PATCH 453/675] module: extend parameter checks in conf_deactivate_modules() --- src/knot/conf/module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/conf/module.c b/src/knot/conf/module.c index 77d5d891ee..32006dc75f 100644 --- a/src/knot/conf/module.c +++ b/src/knot/conf/module.c @@ -440,7 +440,7 @@ void conf_deactivate_modules( list_t *query_modules, struct query_plan **query_plan) { - if (query_modules == NULL || query_plan == NULL) { + if (query_modules == NULL || query_plan == NULL || *query_plan == NULL) { return; } From 7cfc44dfa5e1726d7066f34259134059d2747961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Tue, 21 Apr 2026 14:29:13 +0200 Subject: [PATCH 454/675] quic: fix undefined behavior - pointer arithmetic after free --- src/libknot/quic/quic_conn.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libknot/quic/quic_conn.c b/src/libknot/quic/quic_conn.c index 94948f2c44..e342868714 100644 --- a/src/libknot/quic/quic_conn.c +++ b/src/libknot/quic/quic_conn.c @@ -503,11 +503,11 @@ void knot_quic_stream_ack_data(knot_quic_conn_t *conn, int64_t stream_id, conn->obufs_size -= first->len; ATOMIC_SUB(conn->quic_table->obufs_size, first->len); s->first_offset += first->len; - free(first); if (s->unsent_obuf == first) { s->unsent_obuf = EMPTY_LIST(*obs) ? NULL : HEAD(*obs); s->unsent_offset = 0; } + free(first); } if (EMPTY_LIST(*obs) && !keep_stream) { @@ -577,12 +577,12 @@ void knot_quic_cleanup(knot_quic_conn_t *conns[], size_t n_conns) { for (size_t i = 0; i < n_conns; i++) { if (conns[i] != NULL && conns[i]->conn == NULL) { - free(conns[i]); for (size_t j = i + 1; j < n_conns; j++) { if (conns[j] == conns[i]) { conns[j] = NULL; } } + free(conns[i]); } } } From 627d392a265eb351961e152f3c5b629ed159324a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Wed, 22 Apr 2026 14:03:13 +0200 Subject: [PATCH 455/675] quic: fix assert happening on ngtcp2 `contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c:78: conn_update_timestamp: Assertion `conn->log.last_ts <= ts' failed.` --- src/libknot/quic/quic_conn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libknot/quic/quic_conn.c b/src/libknot/quic/quic_conn.c index e342868714..8120e1f749 100644 --- a/src/libknot/quic/quic_conn.c +++ b/src/libknot/quic/quic_conn.c @@ -135,7 +135,7 @@ void knot_quic_table_sweep(knot_quic_table_t *table, struct knot_quic_reply *swe send_excessive_load(c, sweep_reply, table); knot_quic_table_rem(c, table); } else if (quic_conn_timeout(c, &now)) { - int ret = ngtcp2_conn_handle_expiry(c->conn, now); + int ret = knot_quic_hanle_expiry(c); if (ret != NGTCP2_NO_ERROR) { // usually NGTCP2_ERR_IDLE_CLOSE or NGTCP2_ERR_HANDSHAKE_TIMEOUT knot_sweep_stats_incr(stats, KNOT_SWEEP_CTR_TIMEOUT); knot_quic_table_rem(c, table); From ae7f1c061102e3fc24185e405d1576fe625828b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Wed, 22 Apr 2026 14:02:38 +0200 Subject: [PATCH 456/675] quic: fix typo in function name knot_quic_hanle_expiry() --- distro/pkg/deb/libknot16.symbols | 2 +- src/knot/query/quic-requestor.c | 2 +- src/libknot/quic/quic.c | 2 +- src/libknot/quic/quic.h | 2 +- src/libknot/quic/quic_conn.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/distro/pkg/deb/libknot16.symbols b/distro/pkg/deb/libknot16.symbols index 7541de6281..e55a74a487 100644 --- a/distro/pkg/deb/libknot16.symbols +++ b/distro/pkg/deb/libknot16.symbols @@ -225,7 +225,7 @@ libknot.so.16 libknot16 #MINVER# knot_quic_conn_rtt@Base 3.5.0 knot_quic_conn_stream_free@Base 3.5.0 knot_quic_handle@Base 3.5.0 - knot_quic_hanle_expiry@Base 3.5.0 + knot_quic_handle_expiry@Base 3.6.0 knot_quic_send@Base 3.5.0 knot_quic_session_available@Base 3.5.0 knot_quic_session_load@Base 3.5.0 diff --git a/src/knot/query/quic-requestor.c b/src/knot/query/quic-requestor.c index 7d64d58842..1757bc302e 100644 --- a/src/knot/query/quic-requestor.c +++ b/src/knot/query/quic-requestor.c @@ -57,7 +57,7 @@ static int quic_exchange(knot_quic_conn_t *conn, knot_quic_reply_t *r, int timeo ret = net_msg_recv(fd, &msg, quic_timeout_ms); if (ret == 0 || ret == KNOT_ECONN || ret == KNOT_ETIMEOUT) { - ret = knot_quic_hanle_expiry(conn); + ret = knot_quic_handle_expiry(conn); } timeout_remain -= quic_timeout_ms; diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c index a876384248..dbda3f0ad2 100644 --- a/src/libknot/quic/quic.c +++ b/src/libknot/quic/quic.c @@ -192,7 +192,7 @@ int64_t knot_quic_conn_next_timeout(knot_quic_conn_t *conn) } _public_ -int knot_quic_hanle_expiry(knot_quic_conn_t *conn) +int knot_quic_handle_expiry(knot_quic_conn_t *conn) { return ngtcp2_conn_handle_expiry(conn->conn, get_timestamp()) == NGTCP2_NO_ERROR ? KNOT_EOK : KNOT_ECONN; } diff --git a/src/libknot/quic/quic.h b/src/libknot/quic/quic.h index 494e0f3e25..75eeafb219 100644 --- a/src/libknot/quic/quic.h +++ b/src/libknot/quic/quic.h @@ -89,7 +89,7 @@ bool quic_conn_timeout(knot_quic_conn_t *conn, uint64_t *now); int64_t knot_quic_conn_next_timeout(knot_quic_conn_t *conn); -int knot_quic_hanle_expiry(knot_quic_conn_t *conn); +int knot_quic_handle_expiry(knot_quic_conn_t *conn); /*! * \brief Returns measured connection RTT in usecs. diff --git a/src/libknot/quic/quic_conn.c b/src/libknot/quic/quic_conn.c index 8120e1f749..a96210e91d 100644 --- a/src/libknot/quic/quic_conn.c +++ b/src/libknot/quic/quic_conn.c @@ -135,7 +135,7 @@ void knot_quic_table_sweep(knot_quic_table_t *table, struct knot_quic_reply *swe send_excessive_load(c, sweep_reply, table); knot_quic_table_rem(c, table); } else if (quic_conn_timeout(c, &now)) { - int ret = knot_quic_hanle_expiry(c); + int ret = knot_quic_handle_expiry(c); if (ret != NGTCP2_NO_ERROR) { // usually NGTCP2_ERR_IDLE_CLOSE or NGTCP2_ERR_HANDSHAKE_TIMEOUT knot_sweep_stats_incr(stats, KNOT_SWEEP_CTR_TIMEOUT); knot_quic_table_rem(c, table); From c9fc403bdb6870fc96d312b4c12642b81f610ae8 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 27 Apr 2026 08:38:05 +0200 Subject: [PATCH 457/675] tests-extra: add check for Redis without ASAN --- tests-extra/tools/dnstest/redis.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests-extra/tools/dnstest/redis.py b/tests-extra/tools/dnstest/redis.py index 941d94ed50..2184044027 100644 --- a/tests-extra/tools/dnstest/redis.py +++ b/tests-extra/tools/dnstest/redis.py @@ -105,6 +105,10 @@ def start(self): self.proc = subprocess.Popen(prog) time.sleep(0.3) + + if fsearch(self.wrk_file("redis.log"), "undefined symbol: __asan"): + raise Skip("Redis with ASAN not available") + self.run_monitor() def run_monitor(self): From f4d7c1c2d98857c68cecd266089ac0a3c6ae8363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Tue, 28 Apr 2026 15:45:43 +0200 Subject: [PATCH 458/675] fix: release of id on error --- src/libknot/dnssec/keystore/pkcs8.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libknot/dnssec/keystore/pkcs8.c b/src/libknot/dnssec/keystore/pkcs8.c index 067f98b6c9..82aa44b2c5 100644 --- a/src/libknot/dnssec/keystore/pkcs8.c +++ b/src/libknot/dnssec/keystore/pkcs8.c @@ -299,6 +299,7 @@ static int pkcs8_generate_key(void *ctx, gnutls_pk_algorithm_t algorithm, if (key_is_duplicate(r, handle, id, &pem)) { return KNOT_EOK; } + free(id); return r; } @@ -306,6 +307,7 @@ static int pkcs8_generate_key(void *ctx, gnutls_pk_algorithm_t algorithm, ssize_t wrote_count = write(file, pem.data, pem.size); if (wrote_count == -1) { + free(id); return knot_map_errno(); } From fc82e705158b3ca7336e19cc338253e9a7f8cf2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Wed, 29 Apr 2026 11:36:04 +0200 Subject: [PATCH 459/675] tests-extra: add progress information --- tests-extra/runtests.py | 57 +++++++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/tests-extra/runtests.py b/tests-extra/runtests.py index 87d092ba5e..ac5ec9b873 100755 --- a/tests-extra/runtests.py +++ b/tests-extra/runtests.py @@ -24,6 +24,22 @@ log = None outs_dir = None +def nothing(): + pass + +def clear_line(): + print("\r\x1b[K", end='') + +def progress_print(cntr, lock, func = nothing, *args, **kwargs): + if sys.stdout.isatty(): + lock.acquire() + clear_line() + func(*args, **kwargs) + print(f"(Processed tests {cntr}/{TASK_COUNT})", end='', flush=True) + lock.release() + else: + func(*args, **kwargs) + def save_traceback(outdir, exc): path = os.path.join(Context().out_dir, "traceback.log") with open(path, mode="a") as f: @@ -132,6 +148,8 @@ def parse_args(cmd_args): return included +TASK_COUNT = 0 + def log_failed(log_dir, msg, indent=True): fname = os.path.join(log_dir, "failed.log") first = False if os.path.isfile(fname) else True @@ -142,7 +160,7 @@ def log_failed(log_dir, msg, indent=True): print("%s%s" % (" " if indent else "", msg), file=file) file.close() -def job(job_id, tasks, results, stop): +def job(job_id, tasks, results, stop, done, print_lock): case_cnt = 0 fail_cnt = 0 skip_cnt = 0 @@ -150,6 +168,7 @@ def job(job_id, tasks, results, stop): ctx = Context() while True: + progress_print(done.value, print_lock) if tasks.empty() or (params.exit_on_error and stop.value): break test, case, repeat = tasks.get() @@ -165,8 +184,9 @@ def job(job_id, tasks, results, stop): case_dir = os.path.join(test_dir, case) test_file = os.path.join(case_dir, "test.py") if not os.path.isfile(test_file): - log.error(case_str_err + "MISSING") skip_cnt += 1 + done.value += 1 + progress_print(done.value, print_lock, log.error, case_str_err + "MISSING") continue try: @@ -185,7 +205,8 @@ def job(job_id, tasks, results, stop): ctx.err_msg = "" except OsError: msg = "EXCEPTION (no dir \'%s\')" % out_dir - log.error(case_str_err + msg) + done.value += 1 + progress_print(done.value, print_lock, log.error, case_str_err + msg) log_failed(outs_dir, case_str_fail + msg) fail_cnt += 1 stop.value = True @@ -197,7 +218,7 @@ def job(job_id, tasks, results, stop): mod = importlib.util.module_from_spec(spec) spec.loader.exec_module(mod) except dnstest.utils.Skip as exc: - log.error(case_str_err + "SKIPPED (%s)" % format(exc)) + progress_print(done.value, print_lock, log.error, case_str_err + "SKIPPED (%s)" % format(exc)) skip_cnt += 1 except dnstest.utils.Failed as exc: save_traceback(ctx.out_dir, exc) @@ -206,10 +227,11 @@ def job(job_id, tasks, results, stop): msg = "FAILED (%s)" % (desc if desc else exc.__class__.__name__) if ctx.err and ctx.err_msg: msg += " AND (" + ctx.err_msg + ")" - log.error(case_str_err + msg) + progress_print(done.value, print_lock, log.error, case_str_err + msg) log_failed(outs_dir, case_str_fail + msg) if params.debug: + print() traceback.print_exc() fail_cnt += 1 @@ -219,10 +241,11 @@ def job(job_id, tasks, results, stop): desc = format(exc) msg = "EXCEPTION (%s)" % (desc if desc else exc.__class__.__name__) - log.error(case_str_err + msg) + progress_print(done.value, print_lock, log.error, case_str_err + msg) log_failed(outs_dir, case_str_fail + msg) if params.debug: + print() traceback.print_exc() fail_cnt += 1 @@ -230,8 +253,10 @@ def job(job_id, tasks, results, stop): except BaseException as exc: save_traceback(ctx.out_dir, exc) if params.debug: + print() traceback.print_exc() else: + print() log.info("INTERRUPTED") # Stop servers if still running. if ctx.test: @@ -241,13 +266,13 @@ def job(job_id, tasks, results, stop): if ctx.err: msg = "FAILED" + \ ((" (" + ctx.err_msg + ")") if ctx.err_msg else "") - log.info(case_str_err + msg) + progress_print(done.value, print_lock, log.info, case_str_err + msg) log_failed(outs_dir, case_str_fail + msg) fail_cnt += 1 stop.value = True else: - log.info(case_str_err + "OK") - + progress_print(done.value, print_lock, log.info, case_str_err + "OK") + done.value += 1 # Stop servers if still running. if ctx.test: ctx.test.end() @@ -258,12 +283,15 @@ def job(job_id, tasks, results, stop): def main(args): global log global outs_dir + global TASK_COUNT multiprocessing.set_start_method('fork') tasks = multiprocessing.Queue() results = multiprocessing.SimpleQueue() stop = multiprocessing.Value('i', False) + done = multiprocessing.Value('i', 0) + print_lock = multiprocessing.Lock() case_cnt = 0 fail_cnt = 0 @@ -276,6 +304,9 @@ def main(args): for test, cases in included.items(): for case in cases: tasks.put((test, case, n), block=False) + TASK_COUNT += 1 + if params.repeat == 0: + TASK_COUNT = '\u221e' timestamp = int(time.time()) today = time.strftime("%Y-%m-%d", time.localtime(timestamp)) @@ -322,17 +353,19 @@ def main(args): ref_time = datetime.datetime.now().replace(microsecond=0) + progress_print(0, print_lock) # Expects we are at a newline + if params.jobs > 1: # Multi-thread run threads = [] for j in range(params.jobs): - t = multiprocessing.Process(target=job, args=(j + 1, tasks, results, stop)) + t = multiprocessing.Process(target=job, args=(j + 1, tasks, results, stop, done, print_lock)) threads.append(t) t.start() for thread in threads: thread.join() else: # Single-thread run - job(1, tasks, results, stop) + job(1, tasks, results, stop, done, print_lock) while not results.empty(): a, b, c = results.get() @@ -345,6 +378,8 @@ def main(args): msg_cases = "TEST CASES: %i" % case_cnt msg_skips = ", SKIPPED: %i" % skip_cnt if skip_cnt > 0 else "" msg_res = ", FAILED: %i" % fail_cnt if fail_cnt > 0 else ", SUCCESS" + + clear_line() log.info(msg_time + msg_cases + msg_skips + msg_res) if fail_cnt: From 4a177cfdacca35c66b6b9cde2ace1dc76877c8c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Wed, 29 Apr 2026 14:20:41 +0200 Subject: [PATCH 460/675] server: quic table max conns minimum limited to 1 --- src/knot/server/quic-handler.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/knot/server/quic-handler.c b/src/knot/server/quic-handler.c index 509271fd35..0a34f6d0bc 100644 --- a/src/knot/server/quic-handler.c +++ b/src/knot/server/quic-handler.c @@ -105,8 +105,8 @@ knot_quic_table_t *quic_make_table(struct server *server) conf_t *pconf = conf(); size_t udp_pl = MIN(pconf->cache.srv_udp_max_payload_ipv4, pconf->cache.srv_udp_max_payload_ipv6); - size_t quic_max_conns = pconf->cache.srv_quic_max_clients / - pconf->cache.srv_udp_threads; + size_t quic_max_conns = MAX(pconf->cache.srv_quic_max_clients / + pconf->cache.srv_udp_threads, 1); size_t quic_max_inbufs= quic_max_conns * QUIC_IBUFS_PER_CONN; size_t quic_max_obufs = pconf->cache.srv_quic_obuf_max_size; From 29445907d5341abc389c89338be6253108738d20 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 30 Apr 2026 09:57:00 +0200 Subject: [PATCH 461/675] tests-extra: make QUIC detection more universal --- tests-extra/tests/quic/backup/test.py | 2 -- tests-extra/tests/quic/ddns/test.py | 2 -- tests-extra/tests/quic/xfr/test.py | 2 -- tests-extra/tests/tls/xfr/test.py | 2 -- tests-extra/tools/dnstest/server.py | 1 + 5 files changed, 1 insertion(+), 8 deletions(-) diff --git a/tests-extra/tests/quic/backup/test.py b/tests-extra/tests/quic/backup/test.py index a008cc188f..72ea7b290b 100644 --- a/tests-extra/tests/quic/backup/test.py +++ b/tests-extra/tests/quic/backup/test.py @@ -18,8 +18,6 @@ keyfile = os.path.join(master.dir, "keys", DFLT_QUIC_KEY_FILE) backup_keyfile = os.path.join(backup_dir, "keys", DFLT_QUIC_KEY_FILE) -master.check_quic() - t.start() master.zones_wait(zones) diff --git a/tests-extra/tests/quic/ddns/test.py b/tests-extra/tests/quic/ddns/test.py index 3d226f81ca..d3f218ef42 100644 --- a/tests-extra/tests/quic/ddns/test.py +++ b/tests-extra/tests/quic/ddns/test.py @@ -28,8 +28,6 @@ def check_dnskey(a, b, zones): sender.conf_ss("dnskey-sync", z).remote = [ recver ] sender.dnssec(z).keytag_modulo = "0/1" -sender.check_quic() - t.start() s_sender = sender.zones_wait(zones) diff --git a/tests-extra/tests/quic/xfr/test.py b/tests-extra/tests/quic/xfr/test.py index 82808e4cea..8a02ceeb89 100644 --- a/tests-extra/tests/quic/xfr/test.py +++ b/tests-extra/tests/quic/xfr/test.py @@ -54,8 +54,6 @@ def upd_check_zones(master, slave, zones, prev_serials): t.xfr_diff(master, slave, zones, prev_serials) return serials -master.check_quic() - t.gen_ca() t.start() diff --git a/tests-extra/tests/tls/xfr/test.py b/tests-extra/tests/tls/xfr/test.py index 3e6665e71a..057222c593 100644 --- a/tests-extra/tests/tls/xfr/test.py +++ b/tests-extra/tests/tls/xfr/test.py @@ -54,8 +54,6 @@ def upd_check_zones(master, slave, zones, prev_serials): t.xfr_diff(master, slave, zones, prev_serials) return serials -master.check_quic() - t.gen_ca() t.start() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index ccecfb22a6..124ad1f7e8 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1592,6 +1592,7 @@ def get_config(self): for addr in self.addr_extra: s.item_str("listen", "%s@%s" % (addr, self.port)) if self.quic_port: + self.check_quic() s.item_str("listen-quic", "%s@%s" % (self.addr, self.quic_port)) if self.tls_port: s.item_str("listen-tls", "%s@%s" % (self.addr, self.tls_port)) From 8903eb3acde8a98252012be0c778ee2a806eb9c9 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 1 May 2026 07:39:42 +0200 Subject: [PATCH 462/675] scripts: unify Dockerfile for Fedora and Rocky And fix missing libatomic on Rocky (dependency of clang package). --- scripts/docker/fedora-latest/Dockerfile | 1 - scripts/docker/rocky-latest/Dockerfile | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/docker/fedora-latest/Dockerfile b/scripts/docker/fedora-latest/Dockerfile index 061bbe9a8a..7bfbf2e477 100644 --- a/scripts/docker/fedora-latest/Dockerfile +++ b/scripts/docker/fedora-latest/Dockerfile @@ -5,7 +5,6 @@ RUN dnf -y upgrade RUN dnf -y install \ 'autoconf' \ 'automake' \ - 'awk' \ 'clang' \ 'diffutils' \ 'libtool' \ diff --git a/scripts/docker/rocky-latest/Dockerfile b/scripts/docker/rocky-latest/Dockerfile index 15b90d7e1f..98acfa41b1 100644 --- a/scripts/docker/rocky-latest/Dockerfile +++ b/scripts/docker/rocky-latest/Dockerfile @@ -6,6 +6,7 @@ RUN dnf -y install epel-release RUN dnf -y --enablerepo crb install \ 'autoconf' \ 'automake' \ + 'clang' \ 'diffutils' \ 'libtool' \ 'make' \ @@ -24,5 +25,4 @@ RUN dnf -y --enablerepo crb install \ 'pkgconfig(libsystemd)' \ 'pkgconfig(liburcu)' \ 'pkgconfig(libxdp)' \ - 'python3-sphinx' \ - 'systemd' + 'python3-sphinx' From 536be45f57007574d00cb2b39debd51e274b6912 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 1 May 2026 20:47:18 +0200 Subject: [PATCH 463/675] tests-fuzz: remove AFL support The knotd_stdio wrapper is broken and unused. In the context of upcoming AI tools, it's not worth keeping. --- tests-fuzz/.gitignore | 5 +- tests-fuzz/Makefile.am | 42 +--------- tests-fuzz/README.md | 33 -------- tests-fuzz/knotd_wrap/afl-loop.h | 10 --- tests-fuzz/knotd_wrap/knot_stdio.conf | 16 ---- tests-fuzz/knotd_wrap/server.c | 18 ----- tests-fuzz/knotd_wrap/tcp-handler.c | 14 ---- tests-fuzz/knotd_wrap/udp-handler.c | 106 -------------------------- tests-fuzz/main.c | 25 +----- 9 files changed, 3 insertions(+), 266 deletions(-) delete mode 100644 tests-fuzz/knotd_wrap/afl-loop.h delete mode 100644 tests-fuzz/knotd_wrap/knot_stdio.conf delete mode 100644 tests-fuzz/knotd_wrap/server.c delete mode 100644 tests-fuzz/knotd_wrap/tcp-handler.c delete mode 100644 tests-fuzz/knotd_wrap/udp-handler.c diff --git a/tests-fuzz/.gitignore b/tests-fuzz/.gitignore index 33741155b3..8f62473bf4 100644 --- a/tests-fuzz/.gitignore +++ b/tests-fuzz/.gitignore @@ -1,12 +1,9 @@ /Makefile.in /Makefile -/knotd_stdio -/knotd_wrap/main.c - *.trs *.log /fuzz_packet /fuzz_zscanner /fuzz_dname_to_str -/fuzz_dname_from_str \ No newline at end of file +/fuzz_dname_from_str diff --git a/tests-fuzz/Makefile.am b/tests-fuzz/Makefile.am index 9147c71b83..41a70d1f69 100644 --- a/tests-fuzz/Makefile.am +++ b/tests-fuzz/Makefile.am @@ -14,47 +14,7 @@ FUZZERS = \ check_PROGRAMS = $(FUZZERS) -if HAVE_DAEMON -# knotd_stdio (AFL) -check_PROGRAMS += knotd_stdio - -nodist_knotd_stdio_SOURCES = knotd_wrap/main.c - -knotd_stdio_SOURCES = \ - knotd_wrap/afl-loop.h \ - knotd_wrap/server.c \ - knotd_wrap/tcp-handler.c \ - knotd_wrap/udp-handler.c - -knotd_stdio_CPPFLAGS = \ - $(AM_CPPFLAGS) \ - $(libkqueue_CFLAGS) \ - $(liburcu_CFLAGS) \ - $(lmdb_CFLAGS) \ - $(systemd_CFLAGS) \ - $(libdbus_CFLAGS) - -knotd_stdio_LDADD = \ - $(top_builddir)/src/libknotd.la \ - $(top_builddir)/src/libknot.la \ - $(top_builddir)/src/libcontrib.la \ - $(top_builddir)/src/libzscanner.la \ - $(cap_ng_LIBS) \ - $(gnutls_LIBS) \ - $(liburcu_LIBS) \ - $(lmdb_LIBS) \ - $(systemd_LIBS) \ - $(libdbus_LIBS) \ - $(hiredis_LIBS) - -BUILT_SOURCES = knotd_wrap/main.c -CLEANFILES = knotd_wrap/main.c -knotd_wrap/main.c: $(top_builddir)/src/utils/knotd/main.c - @echo '#include "knotd_wrap/afl-loop.h"' > $@ - @$(SED) -e 's/for (;;)/while (__AFL_LOOP(10000))/' $(top_srcdir)/src/utils/knotd/main.c >> $@ -endif HAVE_DAEMON - -# Simple function wrappers (AFL, libFuzzer, tests) +# Simple function wrappers (libFuzzer, tests) fuzz_packet_SOURCES = fuzz_packet.c fuzz_packet_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/tests-fuzz/README.md b/tests-fuzz/README.md index fd39851e78..7c7fffcec0 100644 --- a/tests-fuzz/README.md +++ b/tests-fuzz/README.md @@ -1,36 +1,3 @@ -# Fuzzing stdio-wrapped knotd with [AFL](http://lcamtuf.coredump.cx/afl/) - -1. Ensure [Clang](https://clang.llvm.org) -1. Ensure AFL 1.83b+ or install a fresh one - 1. `curl -O -L http://lcamtuf.coredump.cx/afl/releases/afl-latest.tgz` - 1. `tar -xzf afl-latest.tgz` - 1. `cd afl-*/` - 1. `make` - 1. `make -C llvm_mode` - 1. `sudo make install` -1. Compile Knot DNS with `afl-clang` compiler - 1. `CC=afl-clang-fast ./configure --disable-shared --disable-utilities --disable-documentation` - 1. (Add `--with-sanitizer=address` for [ASAN](http://clang.llvm.org/docs/AddressSanitizer.html)) - 1. `make` -1. Try running `knotd_stdio` - 1. `cd tests-fuzz` - 1. `make check-compile` - 1. `mkdir -p /tmp/knotd-fuzz/rundir /tmp/knotd-fuzz/storage` - 1. `./knotd_stdio -c ./knotd_wrap/knot_stdio.conf` - 1. (Consider adding zones or modules to the configuration) -1. Prepare an initial corpus - 1. Checkout the dns-fuzzing repository `git clone https://github.com/CZ-NIC/dns-fuzzing in` - 1. (Add more custom test cases to `in/packet/`) -1. Minimize the tested corpus with `afl-cmin` and simple packet parser (doesn't work with ASAN!) - 1. `afl-cmin -i in/packet/ -o min -- ./fuzz_packet` -1. Run the fuzzer - 1. `AFL_PERSISTENT=1 afl-fuzz -m 1000M -i min -o out -- ./knotd_stdio -c knotd_wrap/knot_stdio.conf` - 1. (Add `AFL_USE_ASAN=1` and use `-m none` if compiled with ASAN) - 1. (Consider parallel fuzzing, see `afl-fuzz -h`) - -**NOTE:** Sanitizer utilization is a bit problematical with AFL, see [notes_for_asan.txt] -(https://github.com/mirrorer/afl/blob/master/docs/notes_for_asan.txt). - # Fuzzing with [libFuzzer](https://llvm.org/docs/LibFuzzer.html) (requires Clang 6.0+) 1. Ensure [Clang](https://clang.llvm.org) with `-fsanitize=fuzzer` support (e.g. [LLVM](https://apt.llvm.org)) diff --git a/tests-fuzz/knotd_wrap/afl-loop.h b/tests-fuzz/knotd_wrap/afl-loop.h deleted file mode 100644 index d883513f6c..0000000000 --- a/tests-fuzz/knotd_wrap/afl-loop.h +++ /dev/null @@ -1,10 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. and contributors - * SPDX-License-Identifier: GPL-2.0-or-later - * For more information, see - */ - -#pragma once - -#ifndef __AFL_LOOP -#define __AFL_LOOP(x) (0) -#endif diff --git a/tests-fuzz/knotd_wrap/knot_stdio.conf b/tests-fuzz/knotd_wrap/knot_stdio.conf deleted file mode 100644 index b5032a72e3..0000000000 --- a/tests-fuzz/knotd_wrap/knot_stdio.conf +++ /dev/null @@ -1,16 +0,0 @@ -server: - udp-workers: 1 - tcp-workers: 1 - background-workers: 1 - rundir: /tmp/knotd-fuzz/rundir - -log: - - target: stderr - any: info - -database: - storage: /tmp/knotd-fuzz/storage - -template: - - id: default - storage: /tmp/knotd-fuzz/storage diff --git a/tests-fuzz/knotd_wrap/server.c b/tests-fuzz/knotd_wrap/server.c deleted file mode 100644 index db271a53a6..0000000000 --- a/tests-fuzz/knotd_wrap/server.c +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. and contributors - * SPDX-License-Identifier: GPL-2.0-or-later - * For more information, see - */ - -#define server_reconfigure orig_server_reconfigure -#include "knot/server/server.c" -#undef server_reconfigure - -extern void udp_master_init_stdio(server_t *server); - -int server_reconfigure(conf_t *conf, server_t *server) -{ - orig_server_reconfigure(conf, server); - udp_master_init_stdio(server); - - return KNOT_EOK; -} diff --git a/tests-fuzz/knotd_wrap/tcp-handler.c b/tests-fuzz/knotd_wrap/tcp-handler.c deleted file mode 100644 index a7dcebad41..0000000000 --- a/tests-fuzz/knotd_wrap/tcp-handler.c +++ /dev/null @@ -1,14 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. and contributors - * SPDX-License-Identifier: GPL-2.0-or-later - * For more information, see - */ - -#define tcp_master orig_tcp_master -#include "knot/server/tcp-handler.c" -#undef tcp_master - -int tcp_master(dthread_t *thread) -{ - log_info("AFL, empty TCP handler"); - return 0; -} diff --git a/tests-fuzz/knotd_wrap/udp-handler.c b/tests-fuzz/knotd_wrap/udp-handler.c deleted file mode 100644 index 3069dbc58d..0000000000 --- a/tests-fuzz/knotd_wrap/udp-handler.c +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. and contributors - * SPDX-License-Identifier: GPL-2.0-or-later - * For more information, see - */ - -#include - -#include "knot/server/udp-handler.c" -#include "knot/common/log.h" - -typedef struct { - struct iovec iov[NBUFS]; - uint8_t buf[NBUFS][KNOT_WIRE_MAX_PKTSIZE]; - sockaddr_t addr; - bool afl_persistent; -} udp_stdin_t; - -static inline void next(udp_stdin_t *rq) -{ - if (rq->afl_persistent) { - raise(SIGSTOP); - } else { - exit(0); - } -} - -static void *udp_stdin_init(_unused_ udp_context_t *ctx, _unused_ void *xdp_sock) -{ - udp_stdin_t *rq = calloc(1, sizeof(*rq)); - if (rq == NULL) { - return NULL; - } - - for (unsigned i = 0; i < NBUFS; ++i) { - rq->iov[i].iov_base = rq->buf[i]; - rq->iov[i].iov_len = sizeof(rq->buf[i]); - } - - rq->addr.ip4.sin_family = AF_INET; - rq->addr.ip4.sin_addr.s_addr = IN_LOOPBACKNET; - rq->addr.ip4.sin_port = 42; - - rq->afl_persistent = getenv("AFL_PERSISTENT") != NULL; - - return rq; -} - -static void udp_stdin_deinit(void *d) -{ - free(d); -} - -static int udp_stdin_recv(_unused_ int fd, void *d) -{ - udp_stdin_t *rq = (udp_stdin_t *)d; - rq->iov[RX].iov_len = fread(rq->iov[RX].iov_base, 1, - sizeof(rq->buf[RX]), stdin); - if (rq->iov[RX].iov_len == 0) { - next(rq); - } - - return rq->iov[RX].iov_len; -} - -static void udp_stdin_handle(udp_context_t *ctx, _unused_ const iface_t *iface, void *d) -{ - udp_stdin_t *rq = (udp_stdin_t *)d; - knotd_qdata_params_t params = params_init(KNOTD_QUERY_PROTO_UDP, &rq->addr, - &iface->addr, STDIN_FILENO, NULL, 0); - udp_handler(ctx, ¶ms, &rq->iov[RX], &rq->iov[TX]); -} - -static void udp_stdin_send(void *d) -{ - udp_stdin_t *rq = (udp_stdin_t *)d; - next(rq); -} - -static udp_api_t stdin_api = { - udp_stdin_init, - udp_stdin_deinit, - udp_stdin_recv, - udp_stdin_handle, - udp_stdin_send -}; - -void udp_master_init_stdio(server_t *server) { - - log_info("AFL, UDP handler listening on stdin"); - - // Register dummy interface to server. - iface_t *ifc = calloc(1, sizeof(*ifc)); - assert(ifc); - ifc->fd_udp = calloc(1, sizeof(*ifc->fd_udp)); - assert(ifc->fd_udp); - ifc->fd_udp[0] = STDIN_FILENO; - ifc->fd_udp_count = 1; - - server->n_ifaces = 1; - server->ifaces = ifc; - - udp_msg_api = stdin_api; -#ifdef ENABLE_RECVMMSG - udp_mmsg_api = stdin_api; -#endif -} diff --git a/tests-fuzz/main.c b/tests-fuzz/main.c index e8eb428837..d71ea30236 100644 --- a/tests-fuzz/main.c +++ b/tests-fuzz/main.c @@ -20,6 +20,7 @@ * DEALINGS IN THE SOFTWARE. */ +#include #include #include #include @@ -31,10 +32,6 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); -#ifndef __AFL_LOOP - -#include - static void test_all_from(const char *dirname) { DIR *dirp = opendir(dirname); @@ -118,23 +115,3 @@ int main(int argc, char **argv) return 0; } - -#else - -int main(int argc, char **argv) -{ - unsigned char buf[64 * 1024]; - - while (__AFL_LOOP(10000)) { - int ret = fread(buf, 1, sizeof(buf), stdin); - if (ret < 0) { - return 0; - } - - LLVMFuzzerTestOneInput(buf, ret); - } - - return 0; -} - -#endif /* __AFL_LOOP */ From e0df8de102ef1b4299b4221f1738c8e405d131e6 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 3 May 2026 17:44:17 +0200 Subject: [PATCH 464/675] scripts/docker: fix LegacyKeyValueFormat warnings --- scripts/docker/debian-latest/Dockerfile | 2 +- scripts/docker/debian-unstable/Dockerfile | 2 +- scripts/docker/fedora-latest/Dockerfile | 2 +- scripts/docker/rocky-latest/Dockerfile | 2 +- scripts/docker/ubuntu-latest/Dockerfile | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/docker/debian-latest/Dockerfile b/scripts/docker/debian-latest/Dockerfile index 512dadd25d..5c7239c0bd 100644 --- a/scripts/docker/debian-latest/Dockerfile +++ b/scripts/docker/debian-latest/Dockerfile @@ -1,6 +1,6 @@ FROM debian:stable-slim LABEL maintainer="Knot DNS " -ENV DEBIAN_FRONTEND noninteractive +ENV DEBIAN_FRONTEND=noninteractive RUN apt-get -y update RUN apt-get -y dist-upgrade RUN apt-get -y install \ diff --git a/scripts/docker/debian-unstable/Dockerfile b/scripts/docker/debian-unstable/Dockerfile index 69245d329c..c3478d66bc 100644 --- a/scripts/docker/debian-unstable/Dockerfile +++ b/scripts/docker/debian-unstable/Dockerfile @@ -1,6 +1,6 @@ FROM debian:unstable-slim LABEL maintainer="Knot DNS " -ENV DEBIAN_FRONTEND noninteractive +ENV DEBIAN_FRONTEND=noninteractive RUN apt-get -y update RUN apt-get -y dist-upgrade RUN apt-get -y install \ diff --git a/scripts/docker/fedora-latest/Dockerfile b/scripts/docker/fedora-latest/Dockerfile index 7bfbf2e477..81b46efdb6 100644 --- a/scripts/docker/fedora-latest/Dockerfile +++ b/scripts/docker/fedora-latest/Dockerfile @@ -1,6 +1,6 @@ FROM fedora:latest LABEL maintainer="Knot DNS " -ENV DEBIAN_FRONTEND noninteractive +ENV DEBIAN_FRONTEND=noninteractive RUN dnf -y upgrade RUN dnf -y install \ 'autoconf' \ diff --git a/scripts/docker/rocky-latest/Dockerfile b/scripts/docker/rocky-latest/Dockerfile index 98acfa41b1..ad916a015d 100644 --- a/scripts/docker/rocky-latest/Dockerfile +++ b/scripts/docker/rocky-latest/Dockerfile @@ -1,6 +1,6 @@ FROM rockylinux:9 LABEL maintainer="Knot DNS " -ENV DEBIAN_FRONTEND noninteractive +ENV DEBIAN_FRONTEND=noninteractive RUN dnf -y upgrade RUN dnf -y install epel-release RUN dnf -y --enablerepo crb install \ diff --git a/scripts/docker/ubuntu-latest/Dockerfile b/scripts/docker/ubuntu-latest/Dockerfile index f8c70d8704..54ff1287f7 100644 --- a/scripts/docker/ubuntu-latest/Dockerfile +++ b/scripts/docker/ubuntu-latest/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:latest LABEL maintainer="Knot DNS " -ENV DEBIAN_FRONTEND noninteractive +ENV DEBIAN_FRONTEND=noninteractive RUN apt-get -y update RUN apt-get -y dist-upgrade RUN apt-get -y install \ From 1273b7192284abdfd2709ff728fe5d6289d5c70c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 4 May 2026 09:03:11 +0200 Subject: [PATCH 465/675] CI: remove no longer supported ubuntu-20.04 --- .gitlab-ci.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9170667b79..7d8b5729de 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -404,10 +404,6 @@ pkg:ubuntu-22.04: <<: *pkg_test_deb image: $CI_REGISTRY/packaging/apkg/test/ubuntu-22.04 -pkg:ubuntu-20.04: - <<: *pkg_test_deb - image: $CI_REGISTRY/packaging/apkg/test/ubuntu-20.04 - pkg:fedora-41: <<: *pkg_test image: $CI_REGISTRY/packaging/apkg/test/fedora-41 From 940ef73cb37c12836a437639b84ea38cc9ca52f4 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 4 May 2026 09:09:42 +0200 Subject: [PATCH 466/675] CI: remove Debian 11 (EOL 2026-08-31) --- .gitlab-ci.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7d8b5729de..58c0faab7c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -388,10 +388,6 @@ pkg:debian-12: <<: *pkg_test_deb image: $CI_REGISTRY/packaging/apkg/test/debian-12 -pkg:debian-11: - <<: *pkg_test_deb - image: $CI_REGISTRY/packaging/apkg/test/debian-11 - pkg:ubuntu-26.04: <<: *pkg_test_deb image: $CI_REGISTRY/packaging/apkg/test/ubuntu-26.04 From b6446aa245af5250120b3a58376cdd99bd9b82a9 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 4 May 2026 09:10:14 +0200 Subject: [PATCH 467/675] distro: update alias for deb-nolibxdp --- distro/config/apkg.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distro/config/apkg.toml b/distro/config/apkg.toml index e08582906d..1f43b15624 100644 --- a/distro/config/apkg.toml +++ b/distro/config/apkg.toml @@ -13,4 +13,4 @@ compat = 6 [[distro.aliases]] name = "deb-nolibxdp" -distro = ["debian == 11", "ubuntu == 20.04", "ubuntu == 22.04"] +distro = ["ubuntu == 22.04"] From 19bc07a25779de190b69dbbe5b514383c5e8856f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Mon, 27 Apr 2026 16:05:21 +0200 Subject: [PATCH 468/675] libknot: reduce the huge rdata_descriptors array --- src/libknot/descriptor.c | 281 ++++++++++++++++----------------------- 1 file changed, 113 insertions(+), 168 deletions(-) diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c index 7ed5c8c559..ef6b3b9df4 100644 --- a/src/libknot/descriptor.c +++ b/src/libknot/descriptor.c @@ -26,178 +26,121 @@ static const char* dns_classes[][2] = { * * \note Variable and items are not verified for rdata oversize! */ -static const knot_rdata_descriptor_t rdata_descriptors[] = { - [0] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, NULL }, - [KNOT_RRTYPE_A] = { { 4, KNOT_RDATA_WF_END }, "A" }, - [KNOT_RRTYPE_NS] = { { KNOT_RDATA_WF_COMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "NS" }, - [KNOT_RRTYPE_CNAME] = { { KNOT_RDATA_WF_COMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "CNAME" }, - [KNOT_RRTYPE_SOA] = { { KNOT_RDATA_WF_COMPRESSIBLE_DNAME, - KNOT_RDATA_WF_COMPRESSIBLE_DNAME, - 20, KNOT_RDATA_WF_END }, "SOA" }, - [KNOT_RRTYPE_NULL] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, "NULL" }, - [KNOT_RRTYPE_PTR] = { { KNOT_RDATA_WF_COMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "PTR" }, - [KNOT_RRTYPE_HINFO] = { { KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "HINFO" }, - [KNOT_RRTYPE_MINFO] = { { KNOT_RDATA_WF_COMPRESSIBLE_DNAME, - KNOT_RDATA_WF_COMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "MINFO" }, - [KNOT_RRTYPE_MX] = { { 2, KNOT_RDATA_WF_COMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "MX" }, - [KNOT_RRTYPE_TXT] = { { KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "TXT" }, - [KNOT_RRTYPE_RP] = { { KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "RP" }, - [KNOT_RRTYPE_AFSDB] = { { 2, KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "AFSDB" }, - [KNOT_RRTYPE_RT] = { { 2, KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "RT" }, - [KNOT_RRTYPE_SIG] = { { 18, KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "SIG" }, - [KNOT_RRTYPE_KEY] = { { 4, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "KEY" }, - [KNOT_RRTYPE_AAAA] = { { 16, KNOT_RDATA_WF_END }, "AAAA" }, - [KNOT_RRTYPE_LOC] = { { 16, KNOT_RDATA_WF_END }, "LOC" }, - [KNOT_RRTYPE_SRV] = { { 6, KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "SRV" }, - [KNOT_RRTYPE_NAPTR] = { { KNOT_RDATA_WF_NAPTR_HEADER, - KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "NAPTR" }, - [KNOT_RRTYPE_KX] = { { 2, KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_END }, "KX" }, - [KNOT_RRTYPE_CERT] = { { 5, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "CERT" }, - [KNOT_RRTYPE_DNAME] = { { KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_END }, "DNAME" }, - [KNOT_RRTYPE_OPT] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, "OPT" }, - [KNOT_RRTYPE_APL] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, "APL" }, - [KNOT_RRTYPE_DS] = { { 4, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "DS" }, - [KNOT_RRTYPE_SSHFP] = { { 2, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "SSHFP" }, - [KNOT_RRTYPE_IPSECKEY] = { { 3, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "IPSECKEY" }, - [KNOT_RRTYPE_RRSIG] = { { 18, KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "RRSIG" }, - [KNOT_RRTYPE_NSEC] = { { KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, "NSEC" }, - [KNOT_RRTYPE_DNSKEY] = { { 4, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "DNSKEY" }, - [KNOT_RRTYPE_DHCID] = { { KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "DHCID" }, - [KNOT_RRTYPE_NSEC3] = { { 7, KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, "NSEC3" }, - [KNOT_RRTYPE_NSEC3PARAM] = { { 5, KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, "NSEC3PARAM" }, - [KNOT_RRTYPE_TLSA] = { { 3, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "TLSA" }, - [KNOT_RRTYPE_SMIMEA] = { { KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "SMIMEA" }, - [KNOT_RRTYPE_CDS] = { { 4, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "CDS" }, - [KNOT_RRTYPE_CDNSKEY] = { { 4, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "CDNSKEY" }, - [KNOT_RRTYPE_OPENPGPKEY] = { { KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "OPENPGPKEY" }, - [KNOT_RRTYPE_CSYNC] = { { 6, KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, "CSYNC" }, - [KNOT_RRTYPE_ZONEMD] = { { 6, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "ZONEMD" }, - [KNOT_RRTYPE_SVCB] = { { 2, KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, "SVCB" }, - [KNOT_RRTYPE_HTTPS] = { { 2, KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, "HTTPS" }, - [KNOT_RRTYPE_DSYNC] = { { 5, KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_END }, "DSYNC" }, - [KNOT_RRTYPE_SPF] = { { KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "SPF" }, - [KNOT_RRTYPE_NID] = { { 10, KNOT_RDATA_WF_END }, "NID" }, - [KNOT_RRTYPE_L32] = { { 6, KNOT_RDATA_WF_END }, "L32" }, - [KNOT_RRTYPE_L64] = { { 10, KNOT_RDATA_WF_END }, "L64" }, - [KNOT_RRTYPE_LP] = { { 2, KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_END }, "LP" }, - [KNOT_RRTYPE_EUI48] = { { 6, KNOT_RDATA_WF_END }, "EUI48" }, - [KNOT_RRTYPE_EUI64] = { { 8, KNOT_RDATA_WF_END }, "EUI64" }, - [KNOT_RRTYPE_NXNAME] = { { KNOT_RDATA_WF_END }, "NXNAME" }, - [KNOT_RRTYPE_TKEY] = { { KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "TKEY" }, - [KNOT_RRTYPE_TSIG] = { { KNOT_RDATA_WF_FIXED_DNAME, - KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "TSIG" }, - [KNOT_RRTYPE_IXFR] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, "IXFR" }, - [KNOT_RRTYPE_AXFR] = { { KNOT_RDATA_WF_REMAINDER_MAYEMPTY, - KNOT_RDATA_WF_END }, "AXFR" }, - [KNOT_RRTYPE_ANY] = { { KNOT_RDATA_WF_END }, "ANY" }, - [KNOT_RRTYPE_URI] = { { 4, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "URI" }, - [KNOT_RRTYPE_CAA] = { { 1, KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "CAA" }, - [KNOT_RRTYPE_RESINFO] = { { KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "RESINFO" }, - [KNOT_RRTYPE_WALLET] = { { KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "WALLET" }, - [KNOT_RRTYPE_ALIAS] = { { KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "ALIAS" }, -}; - -#define MAX_RRTYPE sizeof(rdata_descriptors) / sizeof(knot_rdata_descriptor_t) - 1 +#define KRW(name) KNOT_RDATA_WF_ ## name +#define DESCRIPTOR_TYPES(ITEM) \ + ITEM(A, 4) \ + ITEM(NS, KRW(COMPRESSIBLE_DNAME)) \ + ITEM(CNAME, KRW(COMPRESSIBLE_DNAME)) \ + ITEM(SOA, KRW(COMPRESSIBLE_DNAME), KRW(COMPRESSIBLE_DNAME), 20) \ + ITEM(NULL, KRW(REMAINDER_MAYEMPTY)) \ + ITEM(PTR, KRW(COMPRESSIBLE_DNAME)) \ + ITEM(HINFO, KRW(REMAINDER)) \ + ITEM(MINFO, KRW(COMPRESSIBLE_DNAME), KRW(COMPRESSIBLE_DNAME)) \ + ITEM(MX, 2, KRW(COMPRESSIBLE_DNAME)) \ + ITEM(TXT, KRW(REMAINDER)) \ + ITEM(RP, KRW(DECOMPRESSIBLE_DNAME), KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(AFSDB, 2, KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(RT, 2, KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(SIG, 18, KRW(DECOMPRESSIBLE_DNAME), KRW(REMAINDER)) \ + ITEM(KEY, 4, KRW(REMAINDER)) \ + ITEM(AAAA, 16) \ + ITEM(LOC, 16) \ + ITEM(SRV, 6, KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(NAPTR, KRW(NAPTR_HEADER), KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(KX, 2, KRW(FIXED_DNAME)) \ + ITEM(CERT, 5, KRW(REMAINDER)) \ + ITEM(DNAME, KRW(FIXED_DNAME)) \ + ITEM(OPT, KRW(REMAINDER_MAYEMPTY)) \ + ITEM(APL, KRW(REMAINDER_MAYEMPTY)) \ + ITEM(DS, 4, KRW(REMAINDER)) \ + ITEM(SSHFP, 2, KRW(REMAINDER)) \ + ITEM(IPSECKEY, 3, KRW(REMAINDER)) \ + ITEM(RRSIG, 18, KRW(FIXED_DNAME), KRW(REMAINDER)) \ + ITEM(NSEC, KRW(FIXED_DNAME), KRW(REMAINDER_MAYEMPTY)) \ + ITEM(DNSKEY, 4, KRW(REMAINDER)) \ + ITEM(DHCID, KRW(REMAINDER)) \ + ITEM(NSEC3, 7, KRW(REMAINDER_MAYEMPTY)) \ + ITEM(NSEC3PARAM, 5, KRW(REMAINDER_MAYEMPTY)) \ + ITEM(TLSA, 3, KRW(REMAINDER)) \ + ITEM(SMIMEA, KRW(REMAINDER)) \ + ITEM(CDS, 4, KRW(REMAINDER)) \ + ITEM(CDNSKEY, 4, KRW(REMAINDER)) \ + ITEM(OPENPGPKEY, KRW(REMAINDER)) \ + ITEM(CSYNC, 6, KRW(REMAINDER_MAYEMPTY)) \ + ITEM(ZONEMD, 6, KRW(REMAINDER)) \ + ITEM(SVCB, 2, KRW(FIXED_DNAME), KRW(REMAINDER_MAYEMPTY)) \ + ITEM(HTTPS, 2, KRW(FIXED_DNAME), KRW(REMAINDER_MAYEMPTY)) \ + ITEM(DSYNC, 5, KRW(FIXED_DNAME)) \ + ITEM(SPF, KRW(REMAINDER)) \ + ITEM(NID, 10) \ + ITEM(L32, 6) \ + ITEM(L64, 10) \ + ITEM(LP, 2, KRW(FIXED_DNAME)) \ + ITEM(EUI48, 6) \ + ITEM(EUI64, 8) \ + ITEM(NXNAME, KRW(END)) /* redundant _END */ \ + ITEM(TKEY, KRW(FIXED_DNAME), KRW(REMAINDER)) \ + ITEM(TSIG, KRW(FIXED_DNAME), KRW(REMAINDER)) \ + ITEM(IXFR, KRW(REMAINDER_MAYEMPTY)) \ + ITEM(AXFR, KRW(REMAINDER_MAYEMPTY)) \ + ITEM(ANY, KRW(END)) /* redundant _END */ \ + ITEM(URI, 4, KRW(REMAINDER)) \ + ITEM(CAA, 1, KRW(REMAINDER)) \ + ITEM(RESINFO, KRW(REMAINDER)) \ + ITEM(WALLET, KRW(REMAINDER)) \ + ITEM(ALIAS, KRW(DECOMPRESSIBLE_DNAME)) /*! * \brief Some (OBSOLETE) RR type descriptors. */ -static const knot_rdata_descriptor_t obsolete_rdata_descriptors[] = { - [0] = { { KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, NULL }, - [KNOT_RRTYPE_MD] = { { KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "MD" }, - [KNOT_RRTYPE_MF] = { { KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "MF" }, - [KNOT_RRTYPE_MB] = { { KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "MB" }, - [KNOT_RRTYPE_MG] = { { KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "MG" }, - [KNOT_RRTYPE_MR] = { { KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "MR" }, - [KNOT_RRTYPE_PX] = { { 2, KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_END }, "PX" }, - [KNOT_RRTYPE_NXT] = { { KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - KNOT_RDATA_WF_REMAINDER, - KNOT_RDATA_WF_END }, "NXT" }, -}; +#define OBSOLETE_DESCRIPTOR_TYPES(ITEM) \ + ITEM(MD, KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(MF, KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(MB, KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(MG, KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(MR, KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(PX, 2, KRW(DECOMPRESSIBLE_DNAME), KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(NXT, KRW(DECOMPRESSIBLE_DNAME), KRW(REMAINDER)) _public_ const knot_rdata_descriptor_t *knot_get_rdata_descriptor(const uint16_t type) { - if (type <= MAX_RRTYPE && rdata_descriptors[type].type_name != NULL) { - return &rdata_descriptors[type]; - } else { - return &rdata_descriptors[0]; + // We define descriptors as individual static variables. + #define DEF_ITEM(name, ...) static const knot_rdata_descriptor_t \ + def_ ## name = {{__VA_ARGS__, KRW(END)}, #name}; + DESCRIPTOR_TYPES(DEF_ITEM) + #undef DEF_ITEM + + // The default is separate, as we want the name to be NULL. + static const knot_rdata_descriptor_t def_default = + { { KRW(REMAINDER_MAYEMPTY), KRW(END) }, NULL }; + + switch (type) { + #define SWITCH_ITEM(name, ...) case KNOT_RRTYPE_ ## name: return &(def_ ## name); + DESCRIPTOR_TYPES(SWITCH_ITEM) + #undef SWITCH_ITEM + default: return &def_default; } } _public_ const knot_rdata_descriptor_t *knot_get_obsolete_rdata_descriptor(const uint16_t type) { - if (type <= KNOT_RRTYPE_NXT && - obsolete_rdata_descriptors[type].type_name != NULL) { - return &obsolete_rdata_descriptors[type]; - } else { - return &obsolete_rdata_descriptors[0]; + // We define descriptors as individual static variables. + #define DEF_ITEM(name, ...) static const knot_rdata_descriptor_t \ + def_ ## name = {{__VA_ARGS__, KRW(END)}, #name}; + OBSOLETE_DESCRIPTOR_TYPES(DEF_ITEM) + #undef DEF_ITEM + + // The default is separate, as we want the name to be NULL. + static const knot_rdata_descriptor_t def_default = + { { KRW(REMAINDER), KRW(END) }, NULL }; + + switch (type) { + #define SWITCH_ITEM(name, ...) case KNOT_RRTYPE_ ## name: return &(def_ ## name); + OBSOLETE_DESCRIPTOR_TYPES(SWITCH_ITEM) + #undef SWITCH_ITEM + default: return &def_default; } } @@ -234,15 +177,16 @@ int knot_rrtype_from_string(const char *name, uint16_t *num) return KNOT_EINVAL; } - int i; - char *end; - unsigned long n; + static const uint16_t described_types[] = { + #define CODE_ITEM(name, ...) KNOT_RRTYPE_ ## name, + DESCRIPTOR_TYPES(CODE_ITEM) + #undef CODE_ITEM + }; - // Try to find name in descriptors table. - for (i = 0; i <= MAX_RRTYPE; i++) { - if (rdata_descriptors[i].type_name != NULL && - strcasecmp(rdata_descriptors[i].type_name, name) == 0) { - *num = i; + for (int i = 0; i < sizeof(described_types) / sizeof(described_types[0]); ++i) { + uint16_t type = described_types[i]; + if (strcasecmp(name, knot_get_rdata_descriptor(type)->type_name) == 0) { + *num = type; return KNOT_EOK; } } @@ -255,12 +199,13 @@ int knot_rrtype_from_string(const char *name, uint16_t *num) } // The rest must be a number. - n = strtoul(name, &end, 10); + char *end; + unsigned long n = strtoul(name, &end, 10); if (end == name || *end != '\0' || n > UINT16_MAX) { return KNOT_ENOTYPE; } - *num = n; + return KNOT_EOK; } From 7a43f554ac32cb781061d2ceec6325553c07d5f9 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 29 Apr 2026 08:55:39 +0200 Subject: [PATCH 469/675] libknot: optimize knot_rdata_descriptor_t size --- src/libknot/descriptor.h | 5 ++--- src/libknot/packet/rrset-wire.c | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/libknot/descriptor.h b/src/libknot/descriptor.h index 85bbf6db76..8205b0f4d3 100644 --- a/src/libknot/descriptor.h +++ b/src/libknot/descriptor.h @@ -18,8 +18,7 @@ #include #include -#define KNOT_MAX_RDATA_BLOCKS 8 -#define KNOT_MAX_RDATA_DNAMES 2 // Update this when defining new RR types! +#define KNOT_MAX_RDATA_BLOCKS 6 /*! * \brief Resource record class codes. @@ -169,7 +168,7 @@ enum knot_rdata_wireformat { */ typedef struct { /*!< Item types describing rdata. */ - const int block_types[KNOT_MAX_RDATA_BLOCKS]; + const int16_t block_types[KNOT_MAX_RDATA_BLOCKS]; /*!< RR type name. */ const char *type_name; } knot_rdata_descriptor_t; diff --git a/src/libknot/packet/rrset-wire.c b/src/libknot/packet/rrset-wire.c index 9058d5799d..8ec917e47a 100644 --- a/src/libknot/packet/rrset-wire.c +++ b/src/libknot/packet/rrset-wire.c @@ -386,7 +386,7 @@ static int rdata_traverse_write(const uint8_t **src, size_t *src_avail, const knot_rdata_descriptor_t *desc, knot_compr_t *compr, uint16_t hint) { - for (const int *type = desc->block_types; *type != KNOT_RDATA_WF_END; type++) { + for (const int16_t *type = desc->block_types; *type != KNOT_RDATA_WF_END; type++) { int ret; knot_compr_t *put_compr = NULL; switch (*type) { @@ -599,7 +599,7 @@ static int rdata_traverse_parse(const uint8_t **src, size_t *src_avail, const knot_rdata_descriptor_t *desc, const uint8_t *pkt_wire) { - for (const int *type = desc->block_types; *type != KNOT_RDATA_WF_END; type++) { + for (const int16_t *type = desc->block_types; *type != KNOT_RDATA_WF_END; type++) { int ret; switch (*type) { case KNOT_RDATA_WF_COMPRESSIBLE_DNAME: From f089073fa9811c6aa6eb26a945c35a7a7ca7d29a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 29 Apr 2026 09:02:04 +0200 Subject: [PATCH 470/675] libknot: merge knot_get_rdata_descriptor() with knot_get_obsolete_rdata_descriptor() --- distro/pkg/deb/libknot16.symbols | 1 - src/libknot/descriptor.c | 21 +-------------------- src/libknot/descriptor.h | 10 ---------- src/libknot/packet/rrset-wire.c | 3 --- src/libknot/rrset.c | 3 --- tests/libknot/test_descriptor.c | 31 ++----------------------------- 6 files changed, 3 insertions(+), 66 deletions(-) diff --git a/distro/pkg/deb/libknot16.symbols b/distro/pkg/deb/libknot16.symbols index 7541de6281..bbc40a0cbe 100644 --- a/distro/pkg/deb/libknot16.symbols +++ b/distro/pkg/deb/libknot16.symbols @@ -187,7 +187,6 @@ libknot.so.16 libknot16 #MINVER# knot_eth_rss@Base 3.5.0 knot_eth_vlans@Base 3.5.0 knot_eth_xdp_mode@Base 3.5.0 - knot_get_obsolete_rdata_descriptor@Base 3.5.0 knot_get_rdata_descriptor@Base 3.5.0 knot_naptr_header_size@Base 3.5.0 knot_opcode_names@Base 3.5.0 diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c index ef6b3b9df4..30439d0bc2 100644 --- a/src/libknot/descriptor.c +++ b/src/libknot/descriptor.c @@ -109,6 +109,7 @@ const knot_rdata_descriptor_t *knot_get_rdata_descriptor(const uint16_t type) #define DEF_ITEM(name, ...) static const knot_rdata_descriptor_t \ def_ ## name = {{__VA_ARGS__, KRW(END)}, #name}; DESCRIPTOR_TYPES(DEF_ITEM) + OBSOLETE_DESCRIPTOR_TYPES(DEF_ITEM) #undef DEF_ITEM // The default is separate, as we want the name to be NULL. @@ -118,26 +119,6 @@ const knot_rdata_descriptor_t *knot_get_rdata_descriptor(const uint16_t type) switch (type) { #define SWITCH_ITEM(name, ...) case KNOT_RRTYPE_ ## name: return &(def_ ## name); DESCRIPTOR_TYPES(SWITCH_ITEM) - #undef SWITCH_ITEM - default: return &def_default; - } -} - -_public_ -const knot_rdata_descriptor_t *knot_get_obsolete_rdata_descriptor(const uint16_t type) -{ - // We define descriptors as individual static variables. - #define DEF_ITEM(name, ...) static const knot_rdata_descriptor_t \ - def_ ## name = {{__VA_ARGS__, KRW(END)}, #name}; - OBSOLETE_DESCRIPTOR_TYPES(DEF_ITEM) - #undef DEF_ITEM - - // The default is separate, as we want the name to be NULL. - static const knot_rdata_descriptor_t def_default = - { { KRW(REMAINDER), KRW(END) }, NULL }; - - switch (type) { - #define SWITCH_ITEM(name, ...) case KNOT_RRTYPE_ ## name: return &(def_ ## name); OBSOLETE_DESCRIPTOR_TYPES(SWITCH_ITEM) #undef SWITCH_ITEM default: return &def_default; diff --git a/src/libknot/descriptor.h b/src/libknot/descriptor.h index 8205b0f4d3..ea13d9131a 100644 --- a/src/libknot/descriptor.h +++ b/src/libknot/descriptor.h @@ -183,16 +183,6 @@ typedef struct { */ const knot_rdata_descriptor_t *knot_get_rdata_descriptor(const uint16_t type); -/*! - * \brief Gets rdata descriptor for given RR name (obsolete version). - * - * \param type Mnemonic of RR type whose descriptor should be returned. - * - * \retval RR descriptor for given name, NULL descriptor if - * unknown type. - */ -const knot_rdata_descriptor_t *knot_get_obsolete_rdata_descriptor(const uint16_t type); - /*! * \brief Converts numeric type representation to mnemonic string. * diff --git a/src/libknot/packet/rrset-wire.c b/src/libknot/packet/rrset-wire.c index 8ec917e47a..9a7cabaf7d 100644 --- a/src/libknot/packet/rrset-wire.c +++ b/src/libknot/packet/rrset-wire.c @@ -642,9 +642,6 @@ static int parse_rdata(const uint8_t *pkt_wire, size_t *pos, size_t pkt_size, assert(rrset); const knot_rdata_descriptor_t *desc = knot_get_rdata_descriptor(rrset->type); - if (desc->type_name == NULL) { - desc = knot_get_obsolete_rdata_descriptor(rrset->type); - } if (rdlength == 0) { if (allow_zero_rdata(rrset)) { diff --git a/src/libknot/rrset.c b/src/libknot/rrset.c index e246e2e673..9a74d8e2ee 100644 --- a/src/libknot/rrset.c +++ b/src/libknot/rrset.c @@ -144,9 +144,6 @@ int knot_rdata_to_canonical(knot_rdata_t *rdata, uint16_t type) } const knot_rdata_descriptor_t *desc = knot_get_rdata_descriptor(type); - if (desc->type_name == NULL) { - desc = knot_get_obsolete_rdata_descriptor(type); - } uint8_t *pos = rdata->data; uint8_t *endpos = pos + rdlen; diff --git a/tests/libknot/test_descriptor.c b/tests/libknot/test_descriptor.c index 5e00833ab1..ce087d7c1b 100644 --- a/tests/libknot/test_descriptor.c +++ b/tests/libknot/test_descriptor.c @@ -206,41 +206,14 @@ int main(int argc, char *argv[]) ret = knot_rrclass_from_string("CLASS65536", &num); ok(ret == KNOT_ENOCLASS, "get CLASS65536 num ret"); - // Get obsolete descriptor: - // 30. TYPE0 - descr = knot_get_obsolete_rdata_descriptor(0); - ok(descr->type_name == 0, "get TYPE0 descriptor name"); - ok(descr->block_types[0] == KNOT_RDATA_WF_REMAINDER, - "get TYPE0 descriptor 1. item type"); - ok(descr->block_types[1] == KNOT_RDATA_WF_END, - "get TYPE0 descriptor 2. item type"); - - // 31. MD - descr = knot_get_obsolete_rdata_descriptor(3); + // Get obsolete descriptor MD + descr = knot_get_rdata_descriptor(3); ok(strcmp(descr->type_name, "MD") == 0, "get MD descriptor name"); ok(descr->block_types[0] == KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, "get A descriptor 1. item type"); ok(descr->block_types[1] == KNOT_RDATA_WF_END, "get A descriptor 2. item type"); - // 32. NXT - descr = knot_get_obsolete_rdata_descriptor(30); - ok(strcmp(descr->type_name, "NXT") == 0, "get NXT descriptor name"); - ok(descr->block_types[0] == KNOT_RDATA_WF_DECOMPRESSIBLE_DNAME, - "get CNAME descriptor 1. item type"); - ok(descr->block_types[1] == KNOT_RDATA_WF_REMAINDER, - "get CNAME descriptor 2. item type"); - ok(descr->block_types[2] == KNOT_RDATA_WF_END, - "get CNAME descriptor 3. item type"); - - // 33. TYPE38 (A6) - descr = knot_get_obsolete_rdata_descriptor(38); - ok(descr->type_name == 0, "get TYPE38 descriptor name"); - ok(descr->block_types[0] == KNOT_RDATA_WF_REMAINDER, - "get TYPE38 descriptor 1. item type"); - ok(descr->block_types[1] == KNOT_RDATA_WF_END, - "get TYPE38 descriptor 2. item type"); - // knot_rrtype_to_string NULL output buffer ret = knot_rrtype_to_string(1, NULL, 0); ok(ret == KNOT_EINVAL, "knot_rrtype_to_string: NULL output buffer"); From 6851a6b4106a5dcd83d222b439f4833bf295367b Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 29 Apr 2026 09:11:37 +0200 Subject: [PATCH 471/675] libknot: unify code knot_rrclass_from_string() --- src/libknot/descriptor.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c index 30439d0bc2..f1bae0c341 100644 --- a/src/libknot/descriptor.c +++ b/src/libknot/descriptor.c @@ -221,12 +221,8 @@ int knot_rrclass_from_string(const char *name, uint16_t *num) return KNOT_EINVAL; } - int i; - char *end; - unsigned long n; - // Try to find the name in classes table. - for (i = 0; i <= KNOT_CLASS_ANY; i++) { + for (int i = 0; i <= KNOT_CLASS_ANY; i++) { const char **row = dns_classes[i]; if ((row[0] != NULL && strcasecmp(row[0], name) == 0) || (row[1] != NULL && strcasecmp(row[1], name) == 0)) { @@ -243,12 +239,13 @@ int knot_rrclass_from_string(const char *name, uint16_t *num) } // The rest must be a number. - n = strtoul(name, &end, 10); + char *end; + unsigned long n = strtoul(name, &end, 10); if (end == name || *end != '\0' || n > UINT16_MAX) { return KNOT_ENOCLASS; } - *num = n; + return KNOT_EOK; } From 96570346674e4e1b90010786d5b7f2fbe3790e92 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 5 May 2026 10:01:18 +0200 Subject: [PATCH 472/675] server: unify tcp-handler.c and udp-handler.h headers order --- src/knot/server/tcp-handler.c | 18 +++++++++--------- src/knot/server/udp-handler.c | 8 ++++---- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/knot/server/tcp-handler.c b/src/knot/server/tcp-handler.c index 5fc76019d9..8f0248ad86 100644 --- a/src/knot/server/tcp-handler.c +++ b/src/knot/server/tcp-handler.c @@ -3,29 +3,29 @@ * For more information, see */ -#include -#include #include +#include +#include +#include #include #include #include #include #include -#include -#include -#include #ifdef HAVE_SYS_UIO_H // struct iovec (OpenBSD) #include #endif // HAVE_SYS_UIO_H +#include +#include -#include "knot/server/handler.h" -#include "knot/server/server.h" -#include "knot/server/tcp-handler.h" -#include "knot/common/log.h" #include "knot/common/fdset.h" +#include "knot/common/log.h" #include "knot/common/stats.h" #include "knot/nameserver/process_query.h" #include "knot/query/layer.h" +#include "knot/server/handler.h" +#include "knot/server/server.h" +#include "knot/server/tcp-handler.h" #include "libknot/quic/tls.h" #include "contrib/macros.h" #include "contrib/mempattern.h" diff --git a/src/knot/server/udp-handler.c b/src/knot/server/udp-handler.c index c6d8243ff9..0d66455737 100644 --- a/src/knot/server/udp-handler.c +++ b/src/knot/server/udp-handler.c @@ -21,10 +21,6 @@ #endif /* HAVE_SYS_UIO_H */ #include -#include "contrib/mempattern.h" -#include "contrib/net.h" -#include "contrib/sockaddr.h" -#include "contrib/ucw/mempool.h" #include "knot/common/fdset.h" #include "knot/common/log.h" #include "knot/nameserver/process_query.h" @@ -37,6 +33,10 @@ #include "knot/server/udp-handler.h" #include "knot/server/xdp-handler.h" #include "libknot/xdp/tcp_iobuf.h" +#include "contrib/mempattern.h" +#include "contrib/net.h" +#include "contrib/sockaddr.h" +#include "contrib/ucw/mempool.h" /* Buffer identifiers. */ enum { From f4fd884ae592b24a1d81697bf5846d64572176d9 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 18 Dec 2025 11:24:18 +0100 Subject: [PATCH 473/675] libknot: support for DELEG+DELEGPARAM rrtypes, SIDE-EFFECT: invalid commas and quotes in any domain names in zone files are no longer reported as "invalid domain name character" but as "owner is invalid" or "invalid record data" etc --- src/libknot/codes.c | 10 + src/libknot/codes.h | 5 + src/libknot/consts.h | 13 + src/libknot/descriptor.c | 4 +- src/libknot/descriptor.h | 3 + src/libknot/rrset-dump.c | 84 +- src/libzscanner/scanner.c.g2 | 74886 +++++++++------- src/libzscanner/scanner.c.t0 | 12021 +-- src/libzscanner/scanner_body.rl | 66 +- .../tests/records/load/data/knot-only.zone | 8 + tests/libzscanner/TESTS | 1 + tests/libzscanner/data/01_owner.in | 7 + tests/libzscanner/data/01_owner.out | 18 + tests/libzscanner/data/14_NS.in | 7 + tests/libzscanner/data/14_NS.out | 18 + tests/libzscanner/data/63_DELEG.in | 24 + tests/libzscanner/data/63_DELEG.out | 68 + tests/libzscanner/test_zscanner.in | 2 +- 18 files changed, 47401 insertions(+), 39844 deletions(-) create mode 100644 tests/libzscanner/data/63_DELEG.in create mode 100644 tests/libzscanner/data/63_DELEG.out diff --git a/src/libknot/codes.c b/src/libknot/codes.c index ab495c88c7..1b67daeeb9 100644 --- a/src/libknot/codes.c +++ b/src/libknot/codes.c @@ -121,6 +121,16 @@ const knot_lookup_t knot_svcb_param_names[] = { { 0, NULL } }; +_public_ +const knot_lookup_t knot_deleg_info_names[] = { + { KNOT_DELEG_INFO_MANDATORY, "mandatory" }, + { KNOT_DELEG_INFO_IPV4, "server-ipv4" }, + { KNOT_DELEG_INFO_IPV6, "server-ipv6" }, + { KNOT_DELEG_INFO_NAME, "server-name" }, + { KNOT_DELEG_INFO_INCLUDE, "include-delegparam" }, + { 0, NULL } +}; + _public_ const knot_lookup_t knot_edns_opt_names[] = { { KNOT_EDNS_OPTION_NSID, "NSID" }, diff --git a/src/libknot/codes.h b/src/libknot/codes.h index dd6685328c..177bdfa300 100644 --- a/src/libknot/codes.h +++ b/src/libknot/codes.h @@ -46,6 +46,11 @@ extern const knot_lookup_t knot_dnssec_alg_names[]; */ extern const knot_lookup_t knot_svcb_param_names[]; +/*! + * \brief DELEG DelegInfo types. + */ +extern const knot_lookup_t knot_deleg_info_names[]; + /*! * \brief EDNS option names. */ diff --git a/src/libknot/consts.h b/src/libknot/consts.h index b645853840..533481f304 100644 --- a/src/libknot/consts.h +++ b/src/libknot/consts.h @@ -152,4 +152,17 @@ typedef enum { KNOT_SVCB_PARAM_OHTTP = 8, } knot_svcb_param_t; +/*! + * \brief DELEG DelegInfo registry. + * + * https://datatracker.ietf.org/doc/draft-ietf-deleg/ + */ +typedef enum { + KNOT_DELEG_INFO_MANDATORY = 0, + KNOT_DELEG_INFO_IPV4 = 1, + KNOT_DELEG_INFO_IPV6 = 2, + KNOT_DELEG_INFO_NAME = 3, + KNOT_DELEG_INFO_INCLUDE = 4, +} knot_deleg_info_t; + /*! @} */ diff --git a/src/libknot/descriptor.c b/src/libknot/descriptor.c index f1bae0c341..391067a4d0 100644 --- a/src/libknot/descriptor.c +++ b/src/libknot/descriptor.c @@ -88,7 +88,9 @@ static const char* dns_classes[][2] = { ITEM(CAA, 1, KRW(REMAINDER)) \ ITEM(RESINFO, KRW(REMAINDER)) \ ITEM(WALLET, KRW(REMAINDER)) \ - ITEM(ALIAS, KRW(DECOMPRESSIBLE_DNAME)) + ITEM(ALIAS, KRW(DECOMPRESSIBLE_DNAME)) \ + ITEM(DELEG, KRW(REMAINDER_MAYEMPTY)) \ + ITEM(DELEGPARAM, KRW(REMAINDER_MAYEMPTY)) /*! * \brief Some (OBSOLETE) RR type descriptors. diff --git a/src/libknot/descriptor.h b/src/libknot/descriptor.h index ea13d9131a..acb5ac583e 100644 --- a/src/libknot/descriptor.h +++ b/src/libknot/descriptor.h @@ -121,6 +121,9 @@ enum knot_rr_type { KNOT_RRTYPE_WALLET = 262, /*!< Public wallet address. */ KNOT_RRTYPE_ALIAS = 65401, /*!< PRIVATE. Alias record. */ + + KNOT_RRTYPE_DELEG = 61440, /*!< Next generation delegation. */ + KNOT_RRTYPE_DELEGPARAM = 65433, /*!< Next generation delegation lookaside. */ }; /*! diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c index 30d6c92145..20f0156af1 100644 --- a/src/libknot/rrset-dump.c +++ b/src/libknot/rrset-dump.c @@ -1449,10 +1449,10 @@ static void wire_tsig_rcode_to_str(rrset_dump_params_t *p) p->in_max -= in_len; } -static void wire_svcb_paramkey_to_str(rrset_dump_params_t *p) +static void wire_generic_paramkey_to_str(rrset_dump_params_t *p, const knot_lookup_t *names) { uint16_t param_key = knot_wire_read_u16(p->in); - const knot_lookup_t *type = knot_lookup_by_id(knot_svcb_param_names, param_key); + const knot_lookup_t *type = knot_lookup_by_id(names, param_key); if (type != NULL) { dump_string(p, type->name); @@ -1467,6 +1467,16 @@ static void wire_svcb_paramkey_to_str(rrset_dump_params_t *p) } } +static void wire_svcb_paramkey_to_str(rrset_dump_params_t *p) +{ + wire_generic_paramkey_to_str(p, knot_svcb_param_names); +} + +static void wire_deleg_paramkey_to_str(rrset_dump_params_t *p) +{ + wire_generic_paramkey_to_str(p, knot_deleg_info_names); +} + static void wire_value_list_to_str(rrset_dump_params_t *p, void (*list_item_dump_fcn)(rrset_dump_params_t *p), const uint8_t *expect_end) @@ -1582,6 +1592,45 @@ static void wire_svcparam_to_str(rrset_dump_params_t *p) } } +static void wire_deleginfo_to_str(rrset_dump_params_t *p) +{ + CHECK_PRET + + CHECK_INMAX(4) + + uint16_t key_type = knot_wire_read_u16(p->in); + uint16_t val_len = knot_wire_read_u16(p->in + sizeof(key_type)); + + wire_deleg_paramkey_to_str(p); + + p->in += sizeof(val_len); + p->in_max -= sizeof(val_len); + CHECK_INMAX(val_len) + + if (val_len > 0) { + dump_string(p, "="); + CHECK_PRET + + switch (key_type) { + case KNOT_DELEG_INFO_MANDATORY: + wire_value_list_to_str(p, wire_deleg_paramkey_to_str, p->in + val_len); + break; + case KNOT_DELEG_INFO_IPV4: + wire_value_list_to_str(p, wire_ipv4_to_str, p->in + val_len); + break; + case KNOT_DELEG_INFO_IPV6: + wire_value_list_to_str(p, wire_ipv6_to_str, p->in + val_len); + break; + case KNOT_DELEG_INFO_NAME: + case KNOT_DELEG_INFO_INCLUDE: + wire_value_list_to_str(p, wire_dname_to_str, p->in + val_len); + break; + default: + wire_text_to_str(p, val_len, NULL, true, false); + } + } +} + static void wire_dsync_scheme_to_str(rrset_dump_params_t *p) { CHECK_PRET @@ -1812,6 +1861,7 @@ static void dnskey_info(const uint8_t *rdata, #define DUMP_EUI wire_eui_to_str(p); CHECK_RET(p); #define DUMP_TSIG_RCODE wire_tsig_rcode_to_str(p); CHECK_RET(p); #define DUMP_SVCPARAM wire_svcparam_to_str(p); CHECK_RET(p); +#define DUMP_DELEGINFO wire_deleginfo_to_str(p); CHECK_RET(p); #define DUMP_DSYNC_SCH wire_dsync_scheme_to_str(p); CHECK_RET(p); #define DUMP_UNKNOWN wire_unknown_to_str(p); CHECK_RET(p); @@ -2284,6 +2334,29 @@ static int dump_dsync(DUMP_PARAMS) DUMP_END; } +static int dump_deleg(DUMP_PARAMS) +{ + if (p->style->wrap) { + if (p->in_max > 0) { + WRAP_INIT; + DUMP_DELEGINFO; + while (p->in_max > 0) { + WRAP_LINE; DUMP_DELEGINFO; + } + WRAP_END; + } + } else { + while (p->in_max > 0) { + DUMP_DELEGINFO; + if (p->in_max > 0) { + DUMP_SPACE; + } + } + } + + DUMP_END; +} + static int txt_dump_data(rrset_dump_params_t *p, uint16_t type) { switch (type) { @@ -2373,8 +2446,11 @@ static int txt_dump_data(rrset_dump_params_t *p, uint16_t type) case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: return dump_svcb(p); - case KNOT_RRTYPE_DSYNC: - return dump_dsync(p); + case KNOT_RRTYPE_DSYNC: + return dump_dsync(p); + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + return dump_deleg(p); default: return dump_unknown(p); } diff --git a/src/libzscanner/scanner.c.g2 b/src/libzscanner/scanner.c.g2 index 7328d63755..508b13275b 100644 --- a/src/libzscanner/scanner.c.g2 +++ b/src/libzscanner/scanner.c.g2 @@ -99,7 +99,7 @@ int zs_init( memset(s, 0, sizeof(*s)); // Nonzero initial scanner state. - s->cs = 1504; + s->cs = 1651; // Reset the file descriptor. s->file.descriptor = -1; @@ -429,7 +429,7 @@ static void parse( _again: switch ( cs ) { - case 1504: goto st1504; + case 1651: goto st1651; case 0: goto st0; case 1: goto st1; case 2: goto st2; @@ -444,7 +444,7 @@ _again: case 11: goto st11; case 12: goto st12; case 13: goto st13; - case 1505: goto st1505; + case 1652: goto st1652; case 14: goto st14; case 15: goto st15; case 16: goto st16; @@ -620,7 +620,6 @@ _again: case 186: goto st186; case 187: goto st187; case 188: goto st188; - case 1506: goto st1506; case 189: goto st189; case 190: goto st190; case 191: goto st191; @@ -630,8 +629,8 @@ _again: case 195: goto st195; case 196: goto st196; case 197: goto st197; + case 1653: goto st1653; case 198: goto st198; - case 1507: goto st1507; case 199: goto st199; case 200: goto st200; case 201: goto st201; @@ -640,37 +639,38 @@ _again: case 204: goto st204; case 205: goto st205; case 206: goto st206; - case 1508: goto st1508; case 207: goto st207; + case 1654: goto st1654; case 208: goto st208; case 209: goto st209; - case 1509: goto st1509; case 210: goto st210; case 211: goto st211; case 212: goto st212; case 213: goto st213; case 214: goto st214; case 215: goto st215; + case 1655: goto st1655; case 216: goto st216; case 217: goto st217; case 218: goto st218; + case 1656: goto st1656; case 219: goto st219; case 220: goto st220; - case 1510: goto st1510; case 221: goto st221; case 222: goto st222; case 223: goto st223; case 224: goto st224; - case 1511: goto st1511; case 225: goto st225; case 226: goto st226; case 227: goto st227; case 228: goto st228; case 229: goto st229; + case 1657: goto st1657; case 230: goto st230; case 231: goto st231; case 232: goto st232; case 233: goto st233; + case 1658: goto st1658; case 234: goto st234; case 235: goto st235; case 236: goto st236; @@ -681,7 +681,6 @@ _again: case 241: goto st241; case 242: goto st242; case 243: goto st243; - case 1512: goto st1512; case 244: goto st244; case 245: goto st245; case 246: goto st246; @@ -691,6 +690,7 @@ _again: case 250: goto st250; case 251: goto st251; case 252: goto st252; + case 1659: goto st1659; case 253: goto st253; case 254: goto st254; case 255: goto st255; @@ -698,7 +698,6 @@ _again: case 257: goto st257; case 258: goto st258; case 259: goto st259; - case 1513: goto st1513; case 260: goto st260; case 261: goto st261; case 262: goto st262; @@ -708,6 +707,7 @@ _again: case 266: goto st266; case 267: goto st267; case 268: goto st268; + case 1660: goto st1660; case 269: goto st269; case 270: goto st270; case 271: goto st271; @@ -768,24 +768,22 @@ _again: case 326: goto st326; case 327: goto st327; case 328: goto st328; - case 1514: goto st1514; case 329: goto st329; case 330: goto st330; - case 1515: goto st1515; case 331: goto st331; case 332: goto st332; - case 1516: goto st1516; case 333: goto st333; case 334: goto st334; case 335: goto st335; case 336: goto st336; case 337: goto st337; + case 1661: goto st1661; case 338: goto st338; case 339: goto st339; + case 1662: goto st1662; case 340: goto st340; case 341: goto st341; - case 1517: goto st1517; - case 1518: goto st1518; + case 1663: goto st1663; case 342: goto st342; case 343: goto st343; case 344: goto st344; @@ -795,13 +793,14 @@ _again: case 348: goto st348; case 349: goto st349; case 350: goto st350; + case 1664: goto st1664; + case 1665: goto st1665; case 351: goto st351; case 352: goto st352; case 353: goto st353; case 354: goto st354; case 355: goto st355; case 356: goto st356; - case 1519: goto st1519; case 357: goto st357; case 358: goto st358; case 359: goto st359; @@ -811,8 +810,8 @@ _again: case 363: goto st363; case 364: goto st364; case 365: goto st365; + case 1666: goto st1666; case 366: goto st366; - case 1520: goto st1520; case 367: goto st367; case 368: goto st368; case 369: goto st369; @@ -822,12 +821,12 @@ _again: case 373: goto st373; case 374: goto st374; case 375: goto st375; + case 1667: goto st1667; case 376: goto st376; case 377: goto st377; case 378: goto st378; case 379: goto st379; case 380: goto st380; - case 1521: goto st1521; case 381: goto st381; case 382: goto st382; case 383: goto st383; @@ -835,9 +834,9 @@ _again: case 385: goto st385; case 386: goto st386; case 387: goto st387; - case 1522: goto st1522; case 388: goto st388; case 389: goto st389; + case 1668: goto st1668; case 390: goto st390; case 391: goto st391; case 392: goto st392; @@ -845,22 +844,23 @@ _again: case 394: goto st394; case 395: goto st395; case 396: goto st396; - case 1523: goto st1523; - case 1524: goto st1524; - case 1525: goto st1525; + case 1669: goto st1669; case 397: goto st397; case 398: goto st398; case 399: goto st399; - case 1526: goto st1526; case 400: goto st400; case 401: goto st401; case 402: goto st402; case 403: goto st403; case 404: goto st404; case 405: goto st405; + case 1670: goto st1670; + case 1671: goto st1671; + case 1672: goto st1672; case 406: goto st406; case 407: goto st407; case 408: goto st408; + case 1673: goto st1673; case 409: goto st409; case 410: goto st410; case 411: goto st411; @@ -1038,12 +1038,9 @@ _again: case 583: goto st583; case 584: goto st584; case 585: goto st585; - case 1527: goto st1527; - case 1528: goto st1528; case 586: goto st586; case 587: goto st587; case 588: goto st588; - case 1529: goto st1529; case 589: goto st589; case 590: goto st590; case 591: goto st591; @@ -1059,9 +1056,12 @@ _again: case 601: goto st601; case 602: goto st602; case 603: goto st603; + case 1674: goto st1674; + case 1675: goto st1675; case 604: goto st604; case 605: goto st605; case 606: goto st606; + case 1676: goto st1676; case 607: goto st607; case 608: goto st608; case 609: goto st609; @@ -1224,32 +1224,23 @@ _again: case 766: goto st766; case 767: goto st767; case 768: goto st768; - case 1530: goto st1530; - case 1531: goto st1531; - case 1532: goto st1532; case 769: goto st769; case 770: goto st770; case 771: goto st771; case 772: goto st772; case 773: goto st773; - case 1533: goto st1533; case 774: goto st774; case 775: goto st775; case 776: goto st776; case 777: goto st777; - case 1534: goto st1534; - case 1535: goto st1535; - case 1536: goto st1536; case 778: goto st778; case 779: goto st779; - case 1537: goto st1537; case 780: goto st780; case 781: goto st781; case 782: goto st782; case 783: goto st783; case 784: goto st784; case 785: goto st785; - case 1538: goto st1538; case 786: goto st786; case 787: goto st787; case 788: goto st788; @@ -1260,23 +1251,32 @@ _again: case 793: goto st793; case 794: goto st794; case 795: goto st795; + case 1677: goto st1677; + case 1678: goto st1678; + case 1679: goto st1679; case 796: goto st796; case 797: goto st797; case 798: goto st798; case 799: goto st799; case 800: goto st800; + case 1680: goto st1680; case 801: goto st801; case 802: goto st802; case 803: goto st803; case 804: goto st804; + case 1681: goto st1681; + case 1682: goto st1682; + case 1683: goto st1683; case 805: goto st805; case 806: goto st806; + case 1684: goto st1684; case 807: goto st807; case 808: goto st808; case 809: goto st809; case 810: goto st810; case 811: goto st811; case 812: goto st812; + case 1685: goto st1685; case 813: goto st813; case 814: goto st814; case 815: goto st815; @@ -1310,8 +1310,6 @@ _again: case 843: goto st843; case 844: goto st844; case 845: goto st845; - case 1539: goto st1539; - case 1540: goto st1540; case 846: goto st846; case 847: goto st847; case 848: goto st848; @@ -1321,7 +1319,6 @@ _again: case 852: goto st852; case 853: goto st853; case 854: goto st854; - case 1541: goto st1541; case 855: goto st855; case 856: goto st856; case 857: goto st857; @@ -1350,6 +1347,7 @@ _again: case 880: goto st880; case 881: goto st881; case 882: goto st882; + case 1686: goto st1686; case 883: goto st883; case 884: goto st884; case 885: goto st885; @@ -1379,6 +1377,8 @@ _again: case 909: goto st909; case 910: goto st910; case 911: goto st911; + case 1687: goto st1687; + case 1688: goto st1688; case 912: goto st912; case 913: goto st913; case 914: goto st914; @@ -1388,6 +1388,7 @@ _again: case 918: goto st918; case 919: goto st919; case 920: goto st920; + case 1689: goto st1689; case 921: goto st921; case 922: goto st922; case 923: goto st923; @@ -1417,7 +1418,6 @@ _again: case 947: goto st947; case 948: goto st948; case 949: goto st949; - case 1542: goto st1542; case 950: goto st950; case 951: goto st951; case 952: goto st952; @@ -1485,6 +1485,9 @@ _again: case 1014: goto st1014; case 1015: goto st1015; case 1016: goto st1016; + case 1690: goto st1690; + case 1691: goto st1691; + case 1692: goto st1692; case 1017: goto st1017; case 1018: goto st1018; case 1019: goto st1019; @@ -1515,6 +1518,7 @@ _again: case 1044: goto st1044; case 1045: goto st1045; case 1046: goto st1046; + case 1693: goto st1693; case 1047: goto st1047; case 1048: goto st1048; case 1049: goto st1049; @@ -1522,7 +1526,6 @@ _again: case 1051: goto st1051; case 1052: goto st1052; case 1053: goto st1053; - case 1543: goto st1543; case 1054: goto st1054; case 1055: goto st1055; case 1056: goto st1056; @@ -1531,6 +1534,7 @@ _again: case 1059: goto st1059; case 1060: goto st1060; case 1061: goto st1061; + case 1694: goto st1694; case 1062: goto st1062; case 1063: goto st1063; case 1064: goto st1064; @@ -1564,7 +1568,7 @@ _again: case 1092: goto st1092; case 1093: goto st1093; case 1094: goto st1094; - case 1544: goto st1544; + case 1695: goto st1695; case 1095: goto st1095; case 1096: goto st1096; case 1097: goto st1097; @@ -1573,10 +1577,8 @@ _again: case 1100: goto st1100; case 1101: goto st1101; case 1102: goto st1102; - case 1545: goto st1545; case 1103: goto st1103; case 1104: goto st1104; - case 1546: goto st1546; case 1105: goto st1105; case 1106: goto st1106; case 1107: goto st1107; @@ -1591,7 +1593,6 @@ _again: case 1116: goto st1116; case 1117: goto st1117; case 1118: goto st1118; - case 1547: goto st1547; case 1119: goto st1119; case 1120: goto st1120; case 1121: goto st1121; @@ -1614,30 +1615,23 @@ _again: case 1138: goto st1138; case 1139: goto st1139; case 1140: goto st1140; - case 1548: goto st1548; case 1141: goto st1141; case 1142: goto st1142; case 1143: goto st1143; case 1144: goto st1144; case 1145: goto st1145; - case 1549: goto st1549; case 1146: goto st1146; case 1147: goto st1147; case 1148: goto st1148; case 1149: goto st1149; case 1150: goto st1150; - case 1550: goto st1550; case 1151: goto st1151; case 1152: goto st1152; case 1153: goto st1153; case 1154: goto st1154; case 1155: goto st1155; - case 1551: goto st1551; - case 1552: goto st1552; - case 1553: goto st1553; case 1156: goto st1156; case 1157: goto st1157; - case 1554: goto st1554; case 1158: goto st1158; case 1159: goto st1159; case 1160: goto st1160; @@ -1665,29 +1659,21 @@ _again: case 1182: goto st1182; case 1183: goto st1183; case 1184: goto st1184; - case 1555: goto st1555; - case 1556: goto st1556; - case 1557: goto st1557; case 1185: goto st1185; case 1186: goto st1186; case 1187: goto st1187; - case 1558: goto st1558; - case 1559: goto st1559; case 1188: goto st1188; case 1189: goto st1189; case 1190: goto st1190; case 1191: goto st1191; - case 1560: goto st1560; - case 1561: goto st1561; case 1192: goto st1192; case 1193: goto st1193; case 1194: goto st1194; case 1195: goto st1195; - case 1562: goto st1562; - case 1563: goto st1563; case 1196: goto st1196; case 1197: goto st1197; case 1198: goto st1198; + case 1696: goto st1696; case 1199: goto st1199; case 1200: goto st1200; case 1201: goto st1201; @@ -1710,7 +1696,6 @@ _again: case 1218: goto st1218; case 1219: goto st1219; case 1220: goto st1220; - case 1564: goto st1564; case 1221: goto st1221; case 1222: goto st1222; case 1223: goto st1223; @@ -1726,11 +1711,11 @@ _again: case 1233: goto st1233; case 1234: goto st1234; case 1235: goto st1235; - case 1565: goto st1565; case 1236: goto st1236; case 1237: goto st1237; case 1238: goto st1238; case 1239: goto st1239; + case 1697: goto st1697; case 1240: goto st1240; case 1241: goto st1241; case 1242: goto st1242; @@ -1739,9 +1724,10 @@ _again: case 1245: goto st1245; case 1246: goto st1246; case 1247: goto st1247; + case 1698: goto st1698; case 1248: goto st1248; - case 1566: goto st1566; case 1249: goto st1249; + case 1699: goto st1699; case 1250: goto st1250; case 1251: goto st1251; case 1252: goto st1252; @@ -1752,13 +1738,11 @@ _again: case 1257: goto st1257; case 1258: goto st1258; case 1259: goto st1259; - case 1567: goto st1567; - case 1568: goto st1568; case 1260: goto st1260; case 1261: goto st1261; case 1262: goto st1262; - case 1569: goto st1569; case 1263: goto st1263; + case 1700: goto st1700; case 1264: goto st1264; case 1265: goto st1265; case 1266: goto st1266; @@ -1768,9 +1752,6 @@ _again: case 1270: goto st1270; case 1271: goto st1271; case 1272: goto st1272; - case 1570: goto st1570; - case 1571: goto st1571; - case 1572: goto st1572; case 1273: goto st1273; case 1274: goto st1274; case 1275: goto st1275; @@ -1782,35 +1763,32 @@ _again: case 1281: goto st1281; case 1282: goto st1282; case 1283: goto st1283; - case 1573: goto st1573; - case 1574: goto st1574; - case 1575: goto st1575; case 1284: goto st1284; case 1285: goto st1285; + case 1701: goto st1701; case 1286: goto st1286; case 1287: goto st1287; case 1288: goto st1288; case 1289: goto st1289; case 1290: goto st1290; + case 1702: goto st1702; case 1291: goto st1291; case 1292: goto st1292; case 1293: goto st1293; case 1294: goto st1294; case 1295: goto st1295; - case 1576: goto st1576; + case 1703: goto st1703; case 1296: goto st1296; case 1297: goto st1297; case 1298: goto st1298; - case 1577: goto st1577; - case 1578: goto st1578; case 1299: goto st1299; - case 1579: goto st1579; - case 1580: goto st1580; case 1300: goto st1300; - case 1581: goto st1581; - case 1582: goto st1582; + case 1704: goto st1704; + case 1705: goto st1705; + case 1706: goto st1706; case 1301: goto st1301; case 1302: goto st1302; + case 1707: goto st1707; case 1303: goto st1303; case 1304: goto st1304; case 1305: goto st1305; @@ -1838,20 +1816,28 @@ _again: case 1327: goto st1327; case 1328: goto st1328; case 1329: goto st1329; + case 1708: goto st1708; + case 1709: goto st1709; + case 1710: goto st1710; case 1330: goto st1330; case 1331: goto st1331; case 1332: goto st1332; + case 1711: goto st1711; + case 1712: goto st1712; case 1333: goto st1333; case 1334: goto st1334; case 1335: goto st1335; case 1336: goto st1336; + case 1713: goto st1713; + case 1714: goto st1714; case 1337: goto st1337; case 1338: goto st1338; case 1339: goto st1339; case 1340: goto st1340; + case 1715: goto st1715; + case 1716: goto st1716; case 1341: goto st1341; case 1342: goto st1342; - case 1583: goto st1583; case 1343: goto st1343; case 1344: goto st1344; case 1345: goto st1345; @@ -1863,7 +1849,6 @@ _again: case 1351: goto st1351; case 1352: goto st1352; case 1353: goto st1353; - case 1584: goto st1584; case 1354: goto st1354; case 1355: goto st1355; case 1356: goto st1356; @@ -1872,13 +1857,12 @@ _again: case 1359: goto st1359; case 1360: goto st1360; case 1361: goto st1361; - case 1585: goto st1585; case 1362: goto st1362; case 1363: goto st1363; case 1364: goto st1364; case 1365: goto st1365; + case 1717: goto st1717; case 1366: goto st1366; - case 1586: goto st1586; case 1367: goto st1367; case 1368: goto st1368; case 1369: goto st1369; @@ -1893,11 +1877,11 @@ _again: case 1378: goto st1378; case 1379: goto st1379; case 1380: goto st1380; + case 1718: goto st1718; case 1381: goto st1381; case 1382: goto st1382; case 1383: goto st1383; case 1384: goto st1384; - case 1587: goto st1587; case 1385: goto st1385; case 1386: goto st1386; case 1387: goto st1387; @@ -1907,6 +1891,7 @@ _again: case 1391: goto st1391; case 1392: goto st1392; case 1393: goto st1393; + case 1719: goto st1719; case 1394: goto st1394; case 1395: goto st1395; case 1396: goto st1396; @@ -1917,11 +1902,13 @@ _again: case 1401: goto st1401; case 1402: goto st1402; case 1403: goto st1403; - case 1588: goto st1588; case 1404: goto st1404; + case 1720: goto st1720; + case 1721: goto st1721; case 1405: goto st1405; case 1406: goto st1406; case 1407: goto st1407; + case 1722: goto st1722; case 1408: goto st1408; case 1409: goto st1409; case 1410: goto st1410; @@ -1932,10 +1919,10 @@ _again: case 1415: goto st1415; case 1416: goto st1416; case 1417: goto st1417; + case 1723: goto st1723; + case 1724: goto st1724; + case 1725: goto st1725; case 1418: goto st1418; - case 1589: goto st1589; - case 1590: goto st1590; - case 1591: goto st1591; case 1419: goto st1419; case 1420: goto st1420; case 1421: goto st1421; @@ -1944,9 +1931,11 @@ _again: case 1424: goto st1424; case 1425: goto st1425; case 1426: goto st1426; - case 1592: goto st1592; case 1427: goto st1427; case 1428: goto st1428; + case 1726: goto st1726; + case 1727: goto st1727; + case 1728: goto st1728; case 1429: goto st1429; case 1430: goto st1430; case 1431: goto st1431; @@ -1956,18 +1945,21 @@ _again: case 1435: goto st1435; case 1436: goto st1436; case 1437: goto st1437; - case 1593: goto st1593; - case 1594: goto st1594; - case 1595: goto st1595; case 1438: goto st1438; case 1439: goto st1439; case 1440: goto st1440; + case 1729: goto st1729; case 1441: goto st1441; case 1442: goto st1442; case 1443: goto st1443; + case 1730: goto st1730; + case 1731: goto st1731; case 1444: goto st1444; - case 1596: goto st1596; + case 1732: goto st1732; + case 1733: goto st1733; case 1445: goto st1445; + case 1734: goto st1734; + case 1735: goto st1735; case 1446: goto st1446; case 1447: goto st1447; case 1448: goto st1448; @@ -1980,7 +1972,6 @@ _again: case 1455: goto st1455; case 1456: goto st1456; case 1457: goto st1457; - case 1597: goto st1597; case 1458: goto st1458; case 1459: goto st1459; case 1460: goto st1460; @@ -1988,21 +1979,18 @@ _again: case 1462: goto st1462; case 1463: goto st1463; case 1464: goto st1464; - case 1598: goto st1598; case 1465: goto st1465; case 1466: goto st1466; case 1467: goto st1467; case 1468: goto st1468; case 1469: goto st1469; case 1470: goto st1470; - case 1599: goto st1599; case 1471: goto st1471; case 1472: goto st1472; case 1473: goto st1473; case 1474: goto st1474; case 1475: goto st1475; case 1476: goto st1476; - case 1600: goto st1600; case 1477: goto st1477; case 1478: goto st1478; case 1479: goto st1479; @@ -2011,15 +1999,14 @@ _again: case 1482: goto st1482; case 1483: goto st1483; case 1484: goto st1484; - case 1601: goto st1601; case 1485: goto st1485; case 1486: goto st1486; case 1487: goto st1487; + case 1736: goto st1736; case 1488: goto st1488; case 1489: goto st1489; case 1490: goto st1490; case 1491: goto st1491; - case 1602: goto st1602; case 1492: goto st1492; case 1493: goto st1493; case 1494: goto st1494; @@ -2027,12 +2014,179 @@ _again: case 1496: goto st1496; case 1497: goto st1497; case 1498: goto st1498; + case 1737: goto st1737; case 1499: goto st1499; case 1500: goto st1500; - case 1603: goto st1603; case 1501: goto st1501; case 1502: goto st1502; case 1503: goto st1503; + case 1504: goto st1504; + case 1505: goto st1505; + case 1506: goto st1506; + case 1738: goto st1738; + case 1507: goto st1507; + case 1508: goto st1508; + case 1509: goto st1509; + case 1510: goto st1510; + case 1511: goto st1511; + case 1739: goto st1739; + case 1512: goto st1512; + case 1513: goto st1513; + case 1514: goto st1514; + case 1515: goto st1515; + case 1516: goto st1516; + case 1517: goto st1517; + case 1518: goto st1518; + case 1519: goto st1519; + case 1520: goto st1520; + case 1521: goto st1521; + case 1522: goto st1522; + case 1523: goto st1523; + case 1524: goto st1524; + case 1525: goto st1525; + case 1526: goto st1526; + case 1527: goto st1527; + case 1528: goto st1528; + case 1529: goto st1529; + case 1740: goto st1740; + case 1530: goto st1530; + case 1531: goto st1531; + case 1532: goto st1532; + case 1533: goto st1533; + case 1534: goto st1534; + case 1535: goto st1535; + case 1536: goto st1536; + case 1537: goto st1537; + case 1538: goto st1538; + case 1539: goto st1539; + case 1540: goto st1540; + case 1541: goto st1541; + case 1542: goto st1542; + case 1543: goto st1543; + case 1544: goto st1544; + case 1545: goto st1545; + case 1546: goto st1546; + case 1547: goto st1547; + case 1548: goto st1548; + case 1741: goto st1741; + case 1549: goto st1549; + case 1550: goto st1550; + case 1551: goto st1551; + case 1552: goto st1552; + case 1553: goto st1553; + case 1554: goto st1554; + case 1555: goto st1555; + case 1556: goto st1556; + case 1557: goto st1557; + case 1558: goto st1558; + case 1559: goto st1559; + case 1560: goto st1560; + case 1561: goto st1561; + case 1562: goto st1562; + case 1563: goto st1563; + case 1742: goto st1742; + case 1743: goto st1743; + case 1744: goto st1744; + case 1564: goto st1564; + case 1565: goto st1565; + case 1566: goto st1566; + case 1567: goto st1567; + case 1568: goto st1568; + case 1569: goto st1569; + case 1570: goto st1570; + case 1571: goto st1571; + case 1745: goto st1745; + case 1572: goto st1572; + case 1573: goto st1573; + case 1574: goto st1574; + case 1575: goto st1575; + case 1576: goto st1576; + case 1577: goto st1577; + case 1578: goto st1578; + case 1579: goto st1579; + case 1580: goto st1580; + case 1581: goto st1581; + case 1582: goto st1582; + case 1746: goto st1746; + case 1747: goto st1747; + case 1748: goto st1748; + case 1583: goto st1583; + case 1584: goto st1584; + case 1585: goto st1585; + case 1586: goto st1586; + case 1587: goto st1587; + case 1588: goto st1588; + case 1589: goto st1589; + case 1749: goto st1749; + case 1590: goto st1590; + case 1591: goto st1591; + case 1592: goto st1592; + case 1593: goto st1593; + case 1594: goto st1594; + case 1595: goto st1595; + case 1596: goto st1596; + case 1597: goto st1597; + case 1598: goto st1598; + case 1599: goto st1599; + case 1600: goto st1600; + case 1601: goto st1601; + case 1602: goto st1602; + case 1750: goto st1750; + case 1603: goto st1603; + case 1604: goto st1604; + case 1605: goto st1605; + case 1606: goto st1606; + case 1607: goto st1607; + case 1608: goto st1608; + case 1609: goto st1609; + case 1751: goto st1751; + case 1610: goto st1610; + case 1611: goto st1611; + case 1612: goto st1612; + case 1613: goto st1613; + case 1614: goto st1614; + case 1615: goto st1615; + case 1752: goto st1752; + case 1616: goto st1616; + case 1617: goto st1617; + case 1618: goto st1618; + case 1619: goto st1619; + case 1620: goto st1620; + case 1621: goto st1621; + case 1753: goto st1753; + case 1622: goto st1622; + case 1623: goto st1623; + case 1624: goto st1624; + case 1625: goto st1625; + case 1626: goto st1626; + case 1627: goto st1627; + case 1628: goto st1628; + case 1629: goto st1629; + case 1754: goto st1754; + case 1630: goto st1630; + case 1631: goto st1631; + case 1632: goto st1632; + case 1633: goto st1633; + case 1634: goto st1634; + case 1635: goto st1635; + case 1636: goto st1636; + case 1755: goto st1755; + case 1637: goto st1637; + case 1638: goto st1638; + case 1639: goto st1639; + case 1640: goto st1640; + case 1641: goto st1641; + case 1642: goto st1642; + case 1643: goto st1643; + case 1644: goto st1644; + case 1645: goto st1645; + case 1756: goto st1756; + case 1646: goto st1646; + case 1647: goto st1647; + case 1648: goto st1648; + case 1649: goto st1649; + case 1650: goto st1650; + case 1757: goto st1757; default: break; } @@ -2045,7 +2199,7 @@ tr23: { s->line_counter++; } - goto st1504; + goto st1651; tr90: { s->buffer[0] = 0; @@ -2054,7 +2208,7 @@ tr90: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -2067,23 +2221,23 @@ tr90: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1504; goto _out;} + {p++; cs = 1651; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1504; goto _out;} + p--; {p++; cs = 1651; goto _out;} } } { s->line_counter++; } - goto st1504; + goto st1651; tr96: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -2096,18 +2250,18 @@ tr96: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1504; goto _out;} + {p++; cs = 1651; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1504; goto _out;} + p--; {p++; cs = 1651; goto _out;} } } { s->line_counter++; } - goto st1504; + goto st1651; tr99: { s->buffer[s->buffer_length++] = 0; @@ -2118,14 +2272,14 @@ tr99: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1504; goto _out;} + {p++; cs = 1651; goto _out;} } } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -2138,19 +2292,19 @@ tr99: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1504; goto _out;} + {p++; cs = 1651; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1504; goto _out;} + p--; {p++; cs = 1651; goto _out;} } } { s->line_counter++; } - goto st1504; -tr798: + goto st1651; +tr823: { s->buffer[s->buffer_length++] = 0; @@ -2160,15 +2314,15 @@ tr798: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1504; goto _out;} + {p++; cs = 1651; goto _out;} } } } { s->line_counter++; } - goto st1504; -tr892: + goto st1651; +tr917: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2182,14 +2336,14 @@ tr892: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1504; goto _out;} + {p++; cs = 1651; goto _out;} } } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -2202,19 +2356,19 @@ tr892: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1504; goto _out;} + {p++; cs = 1651; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1504; goto _out;} + p--; {p++; cs = 1651; goto _out;} } } { s->line_counter++; } - goto st1504; -tr1021: + goto st1651; +tr1046: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2222,7 +2376,7 @@ tr1021: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -2235,12 +2389,12 @@ tr1021: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1504; goto _out;} + {p++; cs = 1651; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1504; goto _out;} + p--; {p++; cs = 1651; goto _out;} } } { @@ -2255,16 +2409,16 @@ tr1021: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1504; goto _out;} + {p++; cs = 1651; goto _out;} } } } - goto st1504; -tr1025: + goto st1651; +tr1050: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -2277,12 +2431,12 @@ tr1025: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1504; goto _out;} + {p++; cs = 1651; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1504; goto _out;} + p--; {p++; cs = 1651; goto _out;} } } { @@ -2297,12 +2451,12 @@ tr1025: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1504; goto _out;} + {p++; cs = 1651; goto _out;} } } } - goto st1504; -tr4225: + goto st1651; +tr4510: { s->buffer[0] = 0; s->buffer_length = 0; @@ -2310,8 +2464,8 @@ tr4225: { s->line_counter++; } - goto st1504; -tr4291: + goto st1651; +tr4576: { NOERR; } @@ -2322,11 +2476,11 @@ tr4291: { s->line_counter++; } - goto st1504; -st1504: + goto st1651; +st1651: if ( ++p == pe ) - goto _test_eof1504; -case 1504: + goto _test_eof1651; +case 1651: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -2340,926 +2494,926 @@ case 1504: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4220; - case 32: goto tr4220; - case 36: goto st199; - case 40: goto tr4222; - case 41: goto tr4223; - case 42: goto tr4224; - case 92: goto tr4224; - case 95: goto tr4224; - case 1802: goto tr4225; - case 1851: goto tr4226; - case 2058: goto tr4227; - case 2107: goto tr4228; + case 9: goto tr4505; + case 32: goto tr4505; + case 36: goto st208; + case 40: goto tr4507; + case 41: goto tr4508; + case 42: goto tr4509; + case 92: goto tr4509; + case 95: goto tr4509; + case 1802: goto tr4510; + case 1851: goto tr4511; + case 2058: goto tr4512; + case 2107: goto tr4513; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4224; + goto tr4509; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4224; + goto tr4509; } else - goto tr4224; - goto tr4219; + goto tr4509; + goto tr4504; tr0: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; tr27: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } goto st0; tr39: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } goto st0; tr63: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; tr78: { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; tr86: { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; tr92: { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; tr121: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; tr149: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; tr155: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr686: +tr711: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr688: +tr713: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr799: +tr824: { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr810: +tr835: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr824: +tr849: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr852: +tr877: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr867: +tr892: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr905: +tr930: { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr915: +tr940: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr921: +tr946: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr934: +tr959: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr948: +tr973: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1051: +tr1076: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1066: +tr1091: { WARN(ZS_BAD_DNAME_CHAR); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1079: +tr1104: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_DNAME_CHAR); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1087: +tr1112: { WARN(ZS_BAD_TEXT_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_TEXT); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1095: +tr1120: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_TEXT_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_TEXT); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1111: +tr1136: { WARN(ZS_BAD_TEXT); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1120: +tr1145: { ERR(ZS_BAD_TTL); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1126: +tr1151: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { ERR(ZS_BAD_TTL); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1128: +tr1153: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } { ERR(ZS_BAD_TTL); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1140: +tr1165: { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } { ERR(ZS_BAD_TTL); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1149: +tr1174: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { ERR(ZS_BAD_TTL); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1164: +tr1189: { ERR(ZS_BAD_ORIGIN); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1176: +tr1201: { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } { ERR(ZS_BAD_ORIGIN); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1192: +tr1217: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { ERR(ZS_BAD_ORIGIN); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1206: +tr1231: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1207: +tr1232: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1214: +tr1239: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1224: +tr1249: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1241: +tr1266: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1258: +tr1283: { WARN(ZS_BAD_BASE64_CHAR); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1274: +tr1299: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1491: +tr1527: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr1510: +tr1546: { WARN(ZS_BAD_BITMAP); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2134: +tr2195: { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2140: +tr2201: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2148: +tr2209: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_HEX_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2210: +tr2271: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2249: +tr2310: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2277: +tr2382: { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2373: +tr2478: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2417: +tr2522: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_SVCB_PARAM); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2508: +tr2791: { WARN(ZS_BAD_ALGORITHM); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2630: +tr2913: { WARN(ZS_BAD_CERT_TYPE); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2683: +tr2966: { WARN(ZS_BAD_DSYNC_SCHEME); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2694: +tr2977: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2717: +tr3000: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2736: +tr3019: { WARN(ZS_BAD_TIME_UNIT); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2902: +tr3185: { s->long_string = false; } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr2925: +tr3208: { WARN(ZS_BAD_LOC_DATA); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr3328: +tr3611: { WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr3343: +tr3626: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr3388: +tr3671: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr3459: +tr3742: { WARN(ZS_BAD_GATEWAY); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr3474: +tr3757: { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr3488: +tr3771: { WARN(ZS_BAD_GATEWAY); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr3511: +tr3794: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr3535: +tr3818: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr3542: +tr3825: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_GATEWAY); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_GATEWAY_KEY); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr3692: +tr3975: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr3849: +tr4132: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr4088: +tr4371: { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_CHAR_COLON); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr4094: +tr4377: { WARN(ZS_BAD_CHAR_COLON); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr4100: +tr4383: { WARN(ZS_BAD_CHAR_DASH); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_HEX_CHAR); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr4219: +tr4504: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr4241: +tr4526: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr4265: +tr4550: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr4285: +tr4570: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { ERR(ZS_BAD_DIRECTIVE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; -tr4309: +tr4594: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_RDATA); - p--; {goto st329;} + p--; {goto st338;} } { WARN(ZS_BAD_REST); - p--; {goto st329;} + p--; {goto st338;} } goto st0; st0: @@ -3269,7 +3423,7 @@ tr2: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -3278,16 +3432,16 @@ tr3: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st1; -tr4220: +tr4505: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -3295,17 +3449,17 @@ tr4220: s->buffer_length = 0; } goto st1; -tr4222: +tr4507: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -3314,17 +3468,17 @@ tr4222: s->buffer_length = 0; } goto st1; -tr4223: +tr4508: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -3333,18 +3487,18 @@ tr4223: s->buffer_length = 0; } goto st1; -tr4295: +tr4580: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -3352,18 +3506,18 @@ tr4295: s->buffer_length = 0; } goto st1; -tr4296: +tr4581: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -3371,14 +3525,14 @@ tr4296: s->buffer_length = 0; } goto st1; -tr4286: +tr4571: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -3386,20 +3540,20 @@ tr4286: s->buffer_length = 0; } goto st1; -tr4288: +tr4573: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -3408,20 +3562,20 @@ tr4288: s->buffer_length = 0; } goto st1; -tr4289: +tr4574: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -3510,7 +3664,7 @@ tr4: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } goto st2; @@ -3526,7 +3680,7 @@ tr31: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } goto st2; @@ -3554,12 +3708,12 @@ case 2: case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st213; + case 83: goto st222; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st213; + case 115: goto st222; case 119: goto tr36; case 2058: goto tr37; case 2107: goto tr38; @@ -3571,7 +3725,7 @@ tr41: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -3580,7 +3734,7 @@ tr42: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -3596,7 +3750,7 @@ tr28: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } goto st3; @@ -3606,13 +3760,13 @@ tr29: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -3623,13 +3777,13 @@ tr30: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -3640,14 +3794,14 @@ tr37: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } goto st3; -tr851: +tr876: { s->buffer[s->buffer_length++] = 0; @@ -3665,13 +3819,13 @@ tr851: s->line_counter++; } goto st3; -tr844: +tr869: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -3679,17 +3833,17 @@ tr844: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } goto st3; -tr845: +tr870: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -3697,24 +3851,24 @@ tr845: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st3; -tr846: +tr871: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -3722,24 +3876,24 @@ tr846: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st3; -tr848: +tr873: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -3747,7 +3901,7 @@ tr848: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -3828,7 +3982,7 @@ tr43: s->r_class = s->default_class; } goto st4; -tr751: +tr776: { s->r_ttl = s->default_ttl; } @@ -3858,14 +4012,14 @@ case 4: case 32: goto tr64; case 40: goto tr65; case 41: goto tr66; - case 65: goto st283; - case 70: goto st286; - case 76: goto st290; - case 80: goto st294; - case 97: goto st283; - case 102: goto st286; - case 108: goto st290; - case 112: goto st294; + case 65: goto st292; + case 70: goto st295; + case 76: goto st299; + case 80: goto st303; + case 97: goto st292; + case 102: goto st295; + case 108: goto st299; + case 112: goto st303; case 3082: goto tr71; case 3131: goto tr72; case 3338: goto tr73; @@ -3878,7 +4032,7 @@ tr79: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -3887,7 +4041,7 @@ tr80: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -3911,7 +4065,7 @@ tr65: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -3924,7 +4078,7 @@ tr66: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -3970,7 +4124,7 @@ tr168: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -3983,7 +4137,7 @@ tr169: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -4011,7 +4165,7 @@ tr190: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -4024,7 +4178,7 @@ tr191: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -4052,7 +4206,7 @@ tr198: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -4065,7 +4219,7 @@ tr199: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -4093,7 +4247,7 @@ tr208: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -4106,7 +4260,7 @@ tr209: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -4134,7 +4288,7 @@ tr219: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -4147,7 +4301,7 @@ tr220: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -4175,7 +4329,7 @@ tr230: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -4188,7 +4342,7 @@ tr231: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -4202,13 +4356,95 @@ tr232: s->line_counter++; } goto st5; -tr243: +tr244: + { s->r_type = KNOT_RRTYPE_DELEG; } + { + rdata_tail = s->r_data; + } + goto st5; +tr245: + { s->r_type = KNOT_RRTYPE_DELEG; } + { + rdata_tail = s->r_data; + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st5; +tr246: + { s->r_type = KNOT_RRTYPE_DELEG; } + { + rdata_tail = s->r_data; + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st5; +tr248: + { s->r_type = KNOT_RRTYPE_DELEG; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + goto st5; +tr257: + { s->r_type = KNOT_RRTYPE_DELEGPARAM; } + { + rdata_tail = s->r_data; + } + goto st5; +tr258: + { s->r_type = KNOT_RRTYPE_DELEGPARAM; } + { + rdata_tail = s->r_data; + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st5; +tr259: + { s->r_type = KNOT_RRTYPE_DELEGPARAM; } + { + rdata_tail = s->r_data; + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st5; +tr260: + { s->r_type = KNOT_RRTYPE_DELEGPARAM; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + goto st5; +tr268: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; } goto st5; -tr244: +tr269: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -4216,12 +4452,12 @@ tr244: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr245: +tr270: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -4229,12 +4465,12 @@ tr245: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr246: +tr271: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -4243,13 +4479,13 @@ tr246: s->line_counter++; } goto st5; -tr255: +tr280: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; } goto st5; -tr256: +tr281: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -4257,12 +4493,12 @@ tr256: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr257: +tr282: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -4270,12 +4506,12 @@ tr257: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr258: +tr283: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -4284,13 +4520,13 @@ tr258: s->line_counter++; } goto st5; -tr266: +tr291: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; } goto st5; -tr267: +tr292: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -4298,12 +4534,12 @@ tr267: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr268: +tr293: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -4311,12 +4547,12 @@ tr268: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr269: +tr294: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -4325,13 +4561,13 @@ tr269: s->line_counter++; } goto st5; -tr274: +tr299: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; } goto st5; -tr275: +tr300: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -4339,12 +4575,12 @@ tr275: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr276: +tr301: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -4352,12 +4588,12 @@ tr276: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr278: +tr303: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -4366,13 +4602,13 @@ tr278: s->line_counter++; } goto st5; -tr285: +tr310: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; } goto st5; -tr286: +tr311: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -4380,12 +4616,12 @@ tr286: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr287: +tr312: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -4393,12 +4629,12 @@ tr287: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr288: +tr313: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -4407,13 +4643,13 @@ tr288: s->line_counter++; } goto st5; -tr298: +tr323: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; } goto st5; -tr299: +tr324: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -4421,12 +4657,12 @@ tr299: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr300: +tr325: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -4434,12 +4670,12 @@ tr300: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr301: +tr326: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -4448,13 +4684,13 @@ tr301: s->line_counter++; } goto st5; -tr307: +tr332: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; } goto st5; -tr308: +tr333: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -4462,12 +4698,12 @@ tr308: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr309: +tr334: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -4475,12 +4711,12 @@ tr309: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr310: +tr335: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -4489,13 +4725,13 @@ tr310: s->line_counter++; } goto st5; -tr320: +tr345: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; } goto st5; -tr321: +tr346: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -4503,12 +4739,12 @@ tr321: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr322: +tr347: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -4516,12 +4752,12 @@ tr322: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr323: +tr348: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -4530,13 +4766,13 @@ tr323: s->line_counter++; } goto st5; -tr331: +tr356: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; } goto st5; -tr332: +tr357: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -4544,12 +4780,12 @@ tr332: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr333: +tr358: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -4557,12 +4793,12 @@ tr333: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr334: +tr359: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -4571,13 +4807,13 @@ tr334: s->line_counter++; } goto st5; -tr375: +tr400: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; } goto st5; -tr376: +tr401: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -4585,12 +4821,12 @@ tr376: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr377: +tr402: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -4598,12 +4834,12 @@ tr377: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr378: +tr403: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -4612,13 +4848,13 @@ tr378: s->line_counter++; } goto st5; -tr386: +tr411: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; } goto st5; -tr387: +tr412: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -4626,12 +4862,12 @@ tr387: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr388: +tr413: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -4639,12 +4875,12 @@ tr388: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr389: +tr414: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -4653,13 +4889,13 @@ tr389: s->line_counter++; } goto st5; -tr394: +tr419: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; } goto st5; -tr395: +tr420: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -4667,12 +4903,12 @@ tr395: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr396: +tr421: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -4680,12 +4916,12 @@ tr396: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr397: +tr422: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -4694,13 +4930,13 @@ tr397: s->line_counter++; } goto st5; -tr407: +tr432: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; } goto st5; -tr408: +tr433: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -4708,12 +4944,12 @@ tr408: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr409: +tr434: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -4721,12 +4957,12 @@ tr409: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr410: +tr435: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -4735,13 +4971,13 @@ tr410: s->line_counter++; } goto st5; -tr416: +tr441: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; } goto st5; -tr417: +tr442: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -4749,12 +4985,12 @@ tr417: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr418: +tr443: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -4762,12 +4998,12 @@ tr418: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr419: +tr444: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -4776,13 +5012,13 @@ tr419: s->line_counter++; } goto st5; -tr425: +tr450: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; } goto st5; -tr426: +tr451: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -4790,12 +5026,12 @@ tr426: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr427: +tr452: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -4803,12 +5039,12 @@ tr427: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr428: +tr453: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -4817,13 +5053,13 @@ tr428: s->line_counter++; } goto st5; -tr433: +tr458: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; } goto st5; -tr434: +tr459: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -4831,12 +5067,12 @@ tr434: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr435: +tr460: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -4844,12 +5080,12 @@ tr435: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr436: +tr461: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -4858,13 +5094,13 @@ tr436: s->line_counter++; } goto st5; -tr446: +tr471: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; } goto st5; -tr447: +tr472: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -4872,12 +5108,12 @@ tr447: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr448: +tr473: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -4885,12 +5121,12 @@ tr448: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr449: +tr474: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -4899,13 +5135,13 @@ tr449: s->line_counter++; } goto st5; -tr454: +tr479: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; } goto st5; -tr455: +tr480: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -4913,12 +5149,12 @@ tr455: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr456: +tr481: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -4926,12 +5162,12 @@ tr456: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr457: +tr482: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -4940,13 +5176,13 @@ tr457: s->line_counter++; } goto st5; -tr468: +tr493: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; } goto st5; -tr469: +tr494: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -4954,12 +5190,12 @@ tr469: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr470: +tr495: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -4967,12 +5203,12 @@ tr470: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr471: +tr496: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -4981,13 +5217,13 @@ tr471: s->line_counter++; } goto st5; -tr477: +tr502: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; } goto st5; -tr478: +tr503: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -4995,12 +5231,12 @@ tr478: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr479: +tr504: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -5008,12 +5244,12 @@ tr479: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr480: +tr505: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -5022,13 +5258,13 @@ tr480: s->line_counter++; } goto st5; -tr485: +tr510: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; } goto st5; -tr486: +tr511: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -5036,12 +5272,12 @@ tr486: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr487: +tr512: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -5049,12 +5285,12 @@ tr487: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr489: +tr514: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -5063,13 +5299,13 @@ tr489: s->line_counter++; } goto st5; -tr495: +tr520: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; } goto st5; -tr496: +tr521: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -5077,12 +5313,12 @@ tr496: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr497: +tr522: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -5090,12 +5326,12 @@ tr497: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr499: +tr524: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -5104,13 +5340,13 @@ tr499: s->line_counter++; } goto st5; -tr504: +tr529: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; } goto st5; -tr505: +tr530: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -5118,12 +5354,12 @@ tr505: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr506: +tr531: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -5131,12 +5367,12 @@ tr506: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr508: +tr533: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -5145,13 +5381,13 @@ tr508: s->line_counter++; } goto st5; -tr517: +tr542: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; } goto st5; -tr518: +tr543: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -5159,12 +5395,12 @@ tr518: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr519: +tr544: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -5172,12 +5408,12 @@ tr519: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr520: +tr545: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -5186,13 +5422,13 @@ tr520: s->line_counter++; } goto st5; -tr534: +tr559: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; } goto st5; -tr535: +tr560: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -5200,12 +5436,12 @@ tr535: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr536: +tr561: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -5213,12 +5449,12 @@ tr536: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr537: +tr562: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -5227,13 +5463,13 @@ tr537: s->line_counter++; } goto st5; -tr544: +tr569: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; } goto st5; -tr545: +tr570: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -5241,12 +5477,12 @@ tr545: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr546: +tr571: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -5254,12 +5490,12 @@ tr546: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr547: +tr572: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -5268,13 +5504,13 @@ tr547: s->line_counter++; } goto st5; -tr561: +tr586: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; } goto st5; -tr562: +tr587: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -5282,12 +5518,12 @@ tr562: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr563: +tr588: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -5295,12 +5531,12 @@ tr563: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr564: +tr589: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -5309,13 +5545,13 @@ tr564: s->line_counter++; } goto st5; -tr569: +tr594: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; } goto st5; -tr570: +tr595: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5323,12 +5559,12 @@ tr570: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr571: +tr596: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5336,12 +5572,12 @@ tr571: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr572: +tr597: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -5350,13 +5586,13 @@ tr572: s->line_counter++; } goto st5; -tr580: +tr605: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; } goto st5; -tr581: +tr606: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5364,12 +5600,12 @@ tr581: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr582: +tr607: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5377,12 +5613,12 @@ tr582: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr583: +tr608: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -5391,13 +5627,13 @@ tr583: s->line_counter++; } goto st5; -tr588: +tr613: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; } goto st5; -tr589: +tr614: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5405,12 +5641,12 @@ tr589: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr590: +tr615: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5418,12 +5654,12 @@ tr590: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr591: +tr616: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -5432,13 +5668,13 @@ tr591: s->line_counter++; } goto st5; -tr606: +tr631: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; } goto st5; -tr607: +tr632: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5446,12 +5682,12 @@ tr607: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr608: +tr633: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5459,12 +5695,12 @@ tr608: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr609: +tr634: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -5473,13 +5709,13 @@ tr609: s->line_counter++; } goto st5; -tr615: +tr640: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; } goto st5; -tr616: +tr641: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5487,12 +5723,12 @@ tr616: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr617: +tr642: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5500,12 +5736,12 @@ tr617: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr618: +tr643: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -5514,13 +5750,13 @@ tr618: s->line_counter++; } goto st5; -tr624: +tr649: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; } goto st5; -tr625: +tr650: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5528,12 +5764,12 @@ tr625: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr626: +tr651: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5541,12 +5777,12 @@ tr626: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr627: +tr652: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -5555,13 +5791,13 @@ tr627: s->line_counter++; } goto st5; -tr633: +tr658: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; } goto st5; -tr634: +tr659: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5569,12 +5805,12 @@ tr634: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr635: +tr660: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5582,12 +5818,12 @@ tr635: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr636: +tr661: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -5596,13 +5832,13 @@ tr636: s->line_counter++; } goto st5; -tr644: +tr669: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; } goto st5; -tr645: +tr670: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5610,12 +5846,12 @@ tr645: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr646: +tr671: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5623,12 +5859,12 @@ tr646: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr647: +tr672: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -5637,13 +5873,13 @@ tr647: s->line_counter++; } goto st5; -tr654: +tr679: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; } goto st5; -tr655: +tr680: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5651,12 +5887,12 @@ tr655: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr656: +tr681: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5664,12 +5900,12 @@ tr656: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr657: +tr682: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -5678,13 +5914,13 @@ tr657: s->line_counter++; } goto st5; -tr667: +tr692: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; } goto st5; -tr668: +tr693: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5692,12 +5928,12 @@ tr668: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr669: +tr694: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5705,12 +5941,12 @@ tr669: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr670: +tr695: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -5719,13 +5955,13 @@ tr670: s->line_counter++; } goto st5; -tr676: +tr701: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; } goto st5; -tr677: +tr702: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5733,12 +5969,12 @@ tr677: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr678: +tr703: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5746,12 +5982,12 @@ tr678: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr679: +tr704: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -5760,26 +5996,26 @@ tr679: s->line_counter++; } goto st5; -tr689: +tr714: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { rdata_tail = s->r_data; } goto st5; -tr690: +tr715: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -5788,18 +6024,18 @@ tr690: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr691: +tr716: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -5808,18 +6044,18 @@ tr691: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr693: +tr718: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -5829,13 +6065,13 @@ tr693: s->line_counter++; } goto st5; -tr700: +tr725: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; } goto st5; -tr701: +tr726: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5843,12 +6079,12 @@ tr701: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr702: +tr727: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5856,12 +6092,12 @@ tr702: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr703: +tr728: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -5870,13 +6106,13 @@ tr703: s->line_counter++; } goto st5; -tr713: +tr738: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; } goto st5; -tr714: +tr739: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5884,12 +6120,12 @@ tr714: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr715: +tr740: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5897,12 +6133,12 @@ tr715: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr716: +tr741: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -5911,13 +6147,13 @@ tr716: s->line_counter++; } goto st5; -tr726: +tr751: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; } goto st5; -tr727: +tr752: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5925,12 +6161,12 @@ tr727: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr728: +tr753: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5938,12 +6174,12 @@ tr728: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr729: +tr754: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -5952,13 +6188,13 @@ tr729: s->line_counter++; } goto st5; -tr977: +tr1002: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; } goto st5; -tr978: +tr1003: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5966,12 +6202,12 @@ tr978: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr979: +tr1004: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5979,12 +6215,12 @@ tr979: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr980: +tr1005: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -5993,13 +6229,13 @@ tr980: s->line_counter++; } goto st5; -tr988: +tr1013: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; } goto st5; -tr989: +tr1014: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -6007,12 +6243,12 @@ tr989: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr990: +tr1015: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -6020,12 +6256,12 @@ tr990: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr991: +tr1016: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -6034,13 +6270,13 @@ tr991: s->line_counter++; } goto st5; -tr999: +tr1024: { s->r_type = KNOT_RRTYPE_ALIAS; } { rdata_tail = s->r_data; } goto st5; -tr1000: +tr1025: { s->r_type = KNOT_RRTYPE_ALIAS; } { rdata_tail = s->r_data; @@ -6048,12 +6284,12 @@ tr1000: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr1001: +tr1026: { s->r_type = KNOT_RRTYPE_ALIAS; } { rdata_tail = s->r_data; @@ -6061,12 +6297,12 @@ tr1001: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr1002: +tr1027: { s->r_type = KNOT_RRTYPE_ALIAS; } { rdata_tail = s->r_data; @@ -6075,13 +6311,13 @@ tr1002: s->line_counter++; } goto st5; -tr1008: +tr1033: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; } goto st5; -tr1009: +tr1034: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -6089,12 +6325,12 @@ tr1009: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } goto st5; -tr1010: +tr1035: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -6102,12 +6338,12 @@ tr1010: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st5; -tr1011: +tr1036: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -6168,93 +6404,96 @@ tr73: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; @@ -6264,93 +6503,96 @@ tr76: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; @@ -6365,93 +6607,96 @@ tr100: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; @@ -6511,11 +6756,13 @@ tr101: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st762;} + {stack[top++] = 6;goto st789;} // Next types can have empty rdata. case KNOT_RRTYPE_APL: + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: default: - {stack[top++] = 6;goto st771;} + {stack[top++] = 6;goto st798;} } } goto st6; @@ -6529,93 +6776,96 @@ tr172: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; @@ -6629,93 +6879,96 @@ tr194: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; @@ -6729,93 +6982,96 @@ tr202: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; @@ -6829,93 +7085,96 @@ tr212: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; @@ -6929,93 +7188,96 @@ tr223: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; @@ -7029,97 +7291,306 @@ tr234: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr248: +tr250: + { s->r_type = KNOT_RRTYPE_DELEG; } + { + rdata_tail = s->r_data; + } + { + s->r_data_generic = false; + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 6;goto st1246;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1248;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 6;goto st1250;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 6;goto st1282;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 6;goto st1287;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 6;goto st1292;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 6;goto st1297;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 6;goto st1301;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 6;goto st1303;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 6;goto st1358;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 6;goto st1369;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 6;goto st1386;} + case KNOT_RRTYPE_APL: + {stack[top++] = 6;goto st1397;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 6;goto st1408;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 6;goto st1421;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 6;goto st1431;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 6;goto st1470;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 6;goto st1496;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 6;goto st1499;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 6;goto st1510;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1512;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 6;goto st1541;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 6;goto st1554;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 6;goto st1567;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 6;goto st1573;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 6;goto st1591;} + case KNOT_RRTYPE_L32: + {stack[top++] = 6;goto st1586;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1604;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 6;goto st1610;} + case KNOT_RRTYPE_URI: + {stack[top++] = 6;goto st1616;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 6;goto st1624;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 6;goto st1632;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st338;} + } + } + goto st6; +tr262: + { s->r_type = KNOT_RRTYPE_DELEGPARAM; } + { + rdata_tail = s->r_data; + } + { + s->r_data_generic = false; + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 6;goto st1246;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 6;goto st1248;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 6;goto st1250;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 6;goto st1282;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 6;goto st1287;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 6;goto st1292;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 6;goto st1297;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 6;goto st1301;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 6;goto st1303;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 6;goto st1358;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 6;goto st1369;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 6;goto st1386;} + case KNOT_RRTYPE_APL: + {stack[top++] = 6;goto st1397;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 6;goto st1408;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 6;goto st1421;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 6;goto st1431;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 6;goto st1470;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 6;goto st1496;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 6;goto st1499;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 6;goto st1510;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 6;goto st1512;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 6;goto st1541;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 6;goto st1554;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 6;goto st1567;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 6;goto st1573;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 6;goto st1591;} + case KNOT_RRTYPE_L32: + {stack[top++] = 6;goto st1586;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 6;goto st1604;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 6;goto st1610;} + case KNOT_RRTYPE_URI: + {stack[top++] = 6;goto st1616;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 6;goto st1624;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 6;goto st1632;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st338;} + } + } + goto st6; +tr273: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -7129,97 +7600,100 @@ tr248: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr260: +tr285: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -7229,97 +7703,100 @@ tr260: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr271: +tr296: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -7329,97 +7806,100 @@ tr271: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr280: +tr305: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -7429,97 +7909,100 @@ tr280: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr290: +tr315: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -7529,97 +8012,100 @@ tr290: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr303: +tr328: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -7629,97 +8115,100 @@ tr303: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr312: +tr337: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -7729,97 +8218,100 @@ tr312: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr325: +tr350: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -7829,97 +8321,100 @@ tr325: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr336: +tr361: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -7929,97 +8424,100 @@ tr336: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr380: +tr405: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -8029,97 +8527,100 @@ tr380: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr391: +tr416: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -8129,97 +8630,100 @@ tr391: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr399: +tr424: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -8229,97 +8733,100 @@ tr399: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr412: +tr437: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -8329,97 +8836,100 @@ tr412: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr421: +tr446: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -8429,97 +8939,100 @@ tr421: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr430: +tr455: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -8529,97 +9042,100 @@ tr430: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr438: +tr463: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -8629,97 +9145,100 @@ tr438: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr451: +tr476: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -8729,97 +9248,100 @@ tr451: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr459: +tr484: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -8829,97 +9351,100 @@ tr459: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr473: +tr498: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -8929,97 +9454,100 @@ tr473: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr482: +tr507: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -9029,97 +9557,100 @@ tr482: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr491: +tr516: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -9129,97 +9660,100 @@ tr491: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr501: +tr526: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -9229,97 +9763,100 @@ tr501: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr510: +tr535: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -9329,97 +9866,100 @@ tr510: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr522: +tr547: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -9429,97 +9969,100 @@ tr522: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr539: +tr564: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -9529,97 +10072,100 @@ tr539: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr549: +tr574: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -9629,97 +10175,100 @@ tr549: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr566: +tr591: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -9729,97 +10278,100 @@ tr566: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr574: +tr599: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -9829,97 +10381,100 @@ tr574: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr585: +tr610: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -9929,97 +10484,100 @@ tr585: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr593: +tr618: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -10029,97 +10587,100 @@ tr593: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr611: +tr636: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -10129,97 +10690,100 @@ tr611: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr620: +tr645: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -10229,97 +10793,100 @@ tr620: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr629: +tr654: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -10329,97 +10896,100 @@ tr629: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr638: +tr663: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -10429,97 +10999,100 @@ tr638: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr649: +tr674: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -10529,97 +11102,100 @@ tr649: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr659: +tr684: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -10629,97 +11205,100 @@ tr659: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr672: +tr697: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -10729,97 +11308,100 @@ tr672: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr681: +tr706: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -10829,103 +11411,106 @@ tr681: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr695: +tr720: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -10936,97 +11521,100 @@ tr695: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr705: +tr730: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -11036,97 +11624,100 @@ tr705: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr718: +tr743: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -11136,97 +11727,100 @@ tr718: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr731: +tr756: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -11236,97 +11830,100 @@ tr731: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr982: +tr1007: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -11336,97 +11933,100 @@ tr982: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr993: +tr1018: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -11436,97 +12036,100 @@ tr993: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr1004: +tr1029: { s->r_type = KNOT_RRTYPE_ALIAS; } { rdata_tail = s->r_data; @@ -11536,97 +12139,100 @@ tr1004: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; -tr1013: +tr1038: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -11636,93 +12242,96 @@ tr1013: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 6;goto st1101;} + {stack[top++] = 6;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 6;goto st1103;} + {stack[top++] = 6;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 6;goto st1105;} + {stack[top++] = 6;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 6;goto st1137;} + {stack[top++] = 6;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 6;goto st1142;} + {stack[top++] = 6;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 6;goto st1147;} + {stack[top++] = 6;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 6;goto st1152;} + {stack[top++] = 6;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 6;goto st1156;} + {stack[top++] = 6;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 6;goto st1158;} + {stack[top++] = 6;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 6;goto st1213;} + {stack[top++] = 6;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 6;goto st1224;} + {stack[top++] = 6;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 6;goto st1241;} + {stack[top++] = 6;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 6;goto st1252;} + {stack[top++] = 6;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 6;goto st1263;} + {stack[top++] = 6;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 6;goto st1276;} + {stack[top++] = 6;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 6;goto st1286;} + {stack[top++] = 6;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 6;goto st1325;} + {stack[top++] = 6;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 6;goto st1351;} + {stack[top++] = 6;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 6;goto st1354;} + {stack[top++] = 6;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 6;goto st1365;} + {stack[top++] = 6;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 6;goto st1367;} + {stack[top++] = 6;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 6;goto st1396;} + {stack[top++] = 6;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 6;goto st1409;} + {stack[top++] = 6;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 6;goto st1422;} + {stack[top++] = 6;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 6;goto st1428;} + {stack[top++] = 6;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 6;goto st1446;} + {stack[top++] = 6;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 6;goto st1441;} + {stack[top++] = 6;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 6;goto st1459;} + {stack[top++] = 6;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 6;goto st1465;} + {stack[top++] = 6;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 6;goto st1471;} + {stack[top++] = 6;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 6;goto st1479;} + {stack[top++] = 6;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 6;goto st1487;} + {stack[top++] = 6;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 6;goto st1493;} + {stack[top++] = 6;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 6;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st6; @@ -11757,7 +12366,7 @@ tr94: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -11766,7 +12375,7 @@ tr95: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -11785,7 +12394,7 @@ tr88: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -11798,7 +12407,7 @@ tr89: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -11851,7 +12460,7 @@ tr98: } } goto st8; -tr893: +tr918: { s->buffer[0] = 0; s->buffer_length = 0; @@ -11865,7 +12474,7 @@ tr893: } } goto st8; -tr897: +tr922: { s->buffer_length = 0; } @@ -11971,7 +12580,25 @@ tr233: s->buffer_length = 0; } goto st10; -tr247: +tr249: + { s->r_type = KNOT_RRTYPE_DELEG; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + goto st10; +tr261: + { s->r_type = KNOT_RRTYPE_DELEGPARAM; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + goto st10; +tr272: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -11980,7 +12607,7 @@ tr247: s->buffer_length = 0; } goto st10; -tr259: +tr284: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -11989,7 +12616,7 @@ tr259: s->buffer_length = 0; } goto st10; -tr270: +tr295: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -11998,7 +12625,7 @@ tr270: s->buffer_length = 0; } goto st10; -tr279: +tr304: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -12007,7 +12634,7 @@ tr279: s->buffer_length = 0; } goto st10; -tr289: +tr314: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -12016,7 +12643,7 @@ tr289: s->buffer_length = 0; } goto st10; -tr302: +tr327: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -12025,7 +12652,7 @@ tr302: s->buffer_length = 0; } goto st10; -tr311: +tr336: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -12034,7 +12661,7 @@ tr311: s->buffer_length = 0; } goto st10; -tr324: +tr349: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -12043,7 +12670,7 @@ tr324: s->buffer_length = 0; } goto st10; -tr335: +tr360: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -12052,7 +12679,7 @@ tr335: s->buffer_length = 0; } goto st10; -tr379: +tr404: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -12061,7 +12688,7 @@ tr379: s->buffer_length = 0; } goto st10; -tr390: +tr415: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -12070,7 +12697,7 @@ tr390: s->buffer_length = 0; } goto st10; -tr398: +tr423: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -12079,7 +12706,7 @@ tr398: s->buffer_length = 0; } goto st10; -tr411: +tr436: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -12088,7 +12715,7 @@ tr411: s->buffer_length = 0; } goto st10; -tr420: +tr445: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -12097,7 +12724,7 @@ tr420: s->buffer_length = 0; } goto st10; -tr429: +tr454: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -12106,7 +12733,7 @@ tr429: s->buffer_length = 0; } goto st10; -tr437: +tr462: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -12115,7 +12742,7 @@ tr437: s->buffer_length = 0; } goto st10; -tr450: +tr475: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -12124,7 +12751,7 @@ tr450: s->buffer_length = 0; } goto st10; -tr458: +tr483: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -12133,7 +12760,7 @@ tr458: s->buffer_length = 0; } goto st10; -tr472: +tr497: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -12142,7 +12769,7 @@ tr472: s->buffer_length = 0; } goto st10; -tr481: +tr506: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -12151,7 +12778,7 @@ tr481: s->buffer_length = 0; } goto st10; -tr490: +tr515: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -12160,7 +12787,7 @@ tr490: s->buffer_length = 0; } goto st10; -tr500: +tr525: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -12169,7 +12796,7 @@ tr500: s->buffer_length = 0; } goto st10; -tr509: +tr534: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -12178,7 +12805,7 @@ tr509: s->buffer_length = 0; } goto st10; -tr521: +tr546: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -12187,7 +12814,7 @@ tr521: s->buffer_length = 0; } goto st10; -tr538: +tr563: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -12196,7 +12823,7 @@ tr538: s->buffer_length = 0; } goto st10; -tr548: +tr573: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -12205,7 +12832,7 @@ tr548: s->buffer_length = 0; } goto st10; -tr565: +tr590: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -12214,7 +12841,7 @@ tr565: s->buffer_length = 0; } goto st10; -tr573: +tr598: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -12223,7 +12850,7 @@ tr573: s->buffer_length = 0; } goto st10; -tr584: +tr609: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -12232,7 +12859,7 @@ tr584: s->buffer_length = 0; } goto st10; -tr592: +tr617: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -12241,7 +12868,7 @@ tr592: s->buffer_length = 0; } goto st10; -tr610: +tr635: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -12250,7 +12877,7 @@ tr610: s->buffer_length = 0; } goto st10; -tr619: +tr644: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -12259,7 +12886,7 @@ tr619: s->buffer_length = 0; } goto st10; -tr628: +tr653: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -12268,7 +12895,7 @@ tr628: s->buffer_length = 0; } goto st10; -tr637: +tr662: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -12277,7 +12904,7 @@ tr637: s->buffer_length = 0; } goto st10; -tr648: +tr673: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -12286,7 +12913,7 @@ tr648: s->buffer_length = 0; } goto st10; -tr658: +tr683: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -12295,7 +12922,7 @@ tr658: s->buffer_length = 0; } goto st10; -tr671: +tr696: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -12304,7 +12931,7 @@ tr671: s->buffer_length = 0; } goto st10; -tr680: +tr705: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -12313,13 +12940,13 @@ tr680: s->buffer_length = 0; } goto st10; -tr694: +tr719: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -12329,7 +12956,7 @@ tr694: s->buffer_length = 0; } goto st10; -tr704: +tr729: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -12338,7 +12965,7 @@ tr704: s->buffer_length = 0; } goto st10; -tr717: +tr742: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -12347,7 +12974,7 @@ tr717: s->buffer_length = 0; } goto st10; -tr730: +tr755: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -12356,7 +12983,7 @@ tr730: s->buffer_length = 0; } goto st10; -tr981: +tr1006: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -12365,7 +12992,7 @@ tr981: s->buffer_length = 0; } goto st10; -tr992: +tr1017: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -12374,7 +13001,7 @@ tr992: s->buffer_length = 0; } goto st10; -tr1003: +tr1028: { s->r_type = KNOT_RRTYPE_ALIAS; } { rdata_tail = s->r_data; @@ -12383,7 +13010,7 @@ tr1003: s->buffer_length = 0; } goto st10; -tr1012: +tr1037: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -12432,93 +13059,96 @@ tr74: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; @@ -12531,93 +13161,96 @@ tr84: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; @@ -12634,93 +13267,96 @@ tr173: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; @@ -12737,93 +13373,96 @@ tr195: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; @@ -12840,93 +13479,96 @@ tr203: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; @@ -12943,93 +13585,96 @@ tr213: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; @@ -13046,93 +13691,96 @@ tr224: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; @@ -13149,97 +13797,312 @@ tr235: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr249: +tr251: + { s->r_type = KNOT_RRTYPE_DELEG; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + { + s->r_data_generic = false; + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 11;goto st1246;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1248;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 11;goto st1250;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 11;goto st1282;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 11;goto st1287;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 11;goto st1292;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 11;goto st1297;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 11;goto st1301;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 11;goto st1303;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 11;goto st1358;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 11;goto st1369;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 11;goto st1386;} + case KNOT_RRTYPE_APL: + {stack[top++] = 11;goto st1397;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 11;goto st1408;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 11;goto st1421;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 11;goto st1431;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 11;goto st1470;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 11;goto st1496;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 11;goto st1499;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 11;goto st1510;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1512;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 11;goto st1541;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 11;goto st1554;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 11;goto st1567;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 11;goto st1573;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 11;goto st1591;} + case KNOT_RRTYPE_L32: + {stack[top++] = 11;goto st1586;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1604;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 11;goto st1610;} + case KNOT_RRTYPE_URI: + {stack[top++] = 11;goto st1616;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 11;goto st1624;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 11;goto st1632;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st338;} + } + } + goto st11; +tr263: + { s->r_type = KNOT_RRTYPE_DELEGPARAM; } + { + rdata_tail = s->r_data; + } + { + s->line_counter++; + } + { + s->r_data_generic = false; + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 11;goto st1246;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 11;goto st1248;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 11;goto st1250;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 11;goto st1282;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 11;goto st1287;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 11;goto st1292;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 11;goto st1297;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 11;goto st1301;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 11;goto st1303;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 11;goto st1358;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 11;goto st1369;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 11;goto st1386;} + case KNOT_RRTYPE_APL: + {stack[top++] = 11;goto st1397;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 11;goto st1408;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 11;goto st1421;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 11;goto st1431;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 11;goto st1470;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 11;goto st1496;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 11;goto st1499;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 11;goto st1510;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 11;goto st1512;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 11;goto st1541;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 11;goto st1554;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 11;goto st1567;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 11;goto st1573;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 11;goto st1591;} + case KNOT_RRTYPE_L32: + {stack[top++] = 11;goto st1586;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 11;goto st1604;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 11;goto st1610;} + case KNOT_RRTYPE_URI: + {stack[top++] = 11;goto st1616;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 11;goto st1624;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 11;goto st1632;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st338;} + } + } + goto st11; +tr274: { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; @@ -13252,97 +14115,100 @@ tr249: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr261: +tr286: { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; @@ -13355,97 +14221,100 @@ tr261: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr272: +tr297: { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; @@ -13458,97 +14327,100 @@ tr272: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr281: +tr306: { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; @@ -13561,97 +14433,100 @@ tr281: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr291: +tr316: { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; @@ -13664,97 +14539,100 @@ tr291: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr304: +tr329: { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; @@ -13767,97 +14645,100 @@ tr304: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr313: +tr338: { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; @@ -13870,97 +14751,100 @@ tr313: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr326: +tr351: { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; @@ -13973,97 +14857,100 @@ tr326: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr337: +tr362: { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; @@ -14076,97 +14963,100 @@ tr337: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr381: +tr406: { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; @@ -14179,97 +15069,100 @@ tr381: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr392: +tr417: { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; @@ -14282,97 +15175,100 @@ tr392: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr400: +tr425: { s->r_type = KNOT_RRTYPE_KX; } { rdata_tail = s->r_data; @@ -14385,97 +15281,100 @@ tr400: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr413: +tr438: { s->r_type = KNOT_RRTYPE_L32; } { rdata_tail = s->r_data; @@ -14488,97 +15387,100 @@ tr413: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr422: +tr447: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -14591,97 +15493,100 @@ tr422: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr431: +tr456: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -14694,97 +15599,100 @@ tr431: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr439: +tr464: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -14797,97 +15705,100 @@ tr439: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr452: +tr477: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -14900,97 +15811,100 @@ tr452: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr460: +tr485: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -15003,97 +15917,100 @@ tr460: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr474: +tr499: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -15106,97 +16023,100 @@ tr474: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr483: +tr508: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -15209,97 +16129,100 @@ tr483: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr492: +tr517: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -15312,97 +16235,100 @@ tr492: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr502: +tr527: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -15415,97 +16341,100 @@ tr502: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr511: +tr536: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -15518,97 +16447,100 @@ tr511: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr523: +tr548: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -15621,97 +16553,100 @@ tr523: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr540: +tr565: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -15724,97 +16659,100 @@ tr540: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr550: +tr575: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -15827,97 +16765,100 @@ tr550: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr567: +tr592: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -15930,97 +16871,100 @@ tr567: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr575: +tr600: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -16033,97 +16977,100 @@ tr575: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr586: +tr611: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -16136,97 +17083,100 @@ tr586: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr594: +tr619: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -16239,97 +17189,100 @@ tr594: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr612: +tr637: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -16342,97 +17295,100 @@ tr612: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr621: +tr646: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -16445,97 +17401,100 @@ tr621: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr630: +tr655: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -16548,97 +17507,100 @@ tr630: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr639: +tr664: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -16651,97 +17613,100 @@ tr639: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr650: +tr675: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -16754,97 +17719,100 @@ tr650: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr660: +tr685: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -16857,97 +17825,100 @@ tr660: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr673: +tr698: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -16960,97 +17931,100 @@ tr673: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr682: +tr707: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -17063,103 +18037,106 @@ tr682: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr696: +tr721: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -17173,97 +18150,100 @@ tr696: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr706: +tr731: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -17276,97 +18256,100 @@ tr706: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr719: +tr744: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -17379,97 +18362,100 @@ tr719: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr732: +tr757: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -17482,97 +18468,100 @@ tr732: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr983: +tr1008: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -17585,97 +18574,100 @@ tr983: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr994: +tr1019: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -17688,97 +18680,100 @@ tr994: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr1005: +tr1030: { s->r_type = KNOT_RRTYPE_ALIAS; } { rdata_tail = s->r_data; @@ -17791,97 +18786,100 @@ tr1005: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; -tr1014: +tr1039: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -17894,93 +18892,96 @@ tr1014: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 11;goto st1101;} + {stack[top++] = 11;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 11;goto st1103;} + {stack[top++] = 11;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 11;goto st1105;} + {stack[top++] = 11;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 11;goto st1137;} + {stack[top++] = 11;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 11;goto st1142;} + {stack[top++] = 11;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 11;goto st1147;} + {stack[top++] = 11;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 11;goto st1152;} + {stack[top++] = 11;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 11;goto st1156;} + {stack[top++] = 11;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 11;goto st1158;} + {stack[top++] = 11;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 11;goto st1213;} + {stack[top++] = 11;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 11;goto st1224;} + {stack[top++] = 11;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 11;goto st1241;} + {stack[top++] = 11;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 11;goto st1252;} + {stack[top++] = 11;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 11;goto st1263;} + {stack[top++] = 11;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 11;goto st1276;} + {stack[top++] = 11;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 11;goto st1286;} + {stack[top++] = 11;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 11;goto st1325;} + {stack[top++] = 11;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 11;goto st1351;} + {stack[top++] = 11;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 11;goto st1354;} + {stack[top++] = 11;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 11;goto st1365;} + {stack[top++] = 11;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 11;goto st1367;} + {stack[top++] = 11;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 11;goto st1396;} + {stack[top++] = 11;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 11;goto st1409;} + {stack[top++] = 11;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 11;goto st1422;} + {stack[top++] = 11;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 11;goto st1428;} + {stack[top++] = 11;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 11;goto st1446;} + {stack[top++] = 11;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 11;goto st1441;} + {stack[top++] = 11;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 11;goto st1459;} + {stack[top++] = 11;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 11;goto st1465;} + {stack[top++] = 11;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 11;goto st1471;} + {stack[top++] = 11;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 11;goto st1479;} + {stack[top++] = 11;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 11;goto st1487;} + {stack[top++] = 11;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 11;goto st1493;} + {stack[top++] = 11;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 11;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st11; @@ -18032,7 +19033,7 @@ tr112: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -18041,7 +19042,7 @@ tr113: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -18056,7 +19057,7 @@ tr105: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -18069,7 +19070,7 @@ tr106: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -18167,7 +19168,7 @@ tr182: s->buffer_length = 0; } goto st13; -tr872: +tr897: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -18222,7 +19223,7 @@ tr119: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1505; goto _out;} + {p++; cs = 1652; goto _out;} } } } @@ -18232,7 +19233,7 @@ tr119: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -18245,23 +19246,23 @@ tr119: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1505; goto _out;} + {p++; cs = 1652; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1505; goto _out;} + p--; {p++; cs = 1652; goto _out;} } } - goto st1505; -tr880: + goto st1652; +tr905: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -18274,16 +19275,16 @@ tr880: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1505; goto _out;} + {p++; cs = 1652; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1505; goto _out;} + p--; {p++; cs = 1652; goto _out;} } } - goto st1505; -tr871: + goto st1652; +tr896: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -18298,7 +19299,7 @@ tr871: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -18311,19 +19312,19 @@ tr871: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1505; goto _out;} + {p++; cs = 1652; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1505; goto _out;} + p--; {p++; cs = 1652; goto _out;} } } - goto st1505; -st1505: + goto st1652; +st1652: if ( ++p == pe ) - goto _test_eof1505; -case 1505: + goto _test_eof1652; +case 1652: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -18341,23 +19342,23 @@ case 1505: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4229; - case 32: goto tr4229; - case 36: goto tr4230; - case 40: goto tr4231; - case 41: goto tr4232; - case 42: goto tr4233; + case 9: goto tr4514; + case 32: goto tr4514; + case 36: goto tr4515; + case 40: goto tr4516; + case 41: goto tr4517; + case 42: goto tr4518; case 58: goto tr76; - case 92: goto tr4234; - case 95: goto tr4233; - case 2826: goto tr4225; - case 2875: goto tr4226; - case 3082: goto tr4235; - case 3131: goto tr4236; - case 3338: goto tr4237; - case 3387: goto tr4238; - case 3594: goto tr4239; - case 3643: goto tr4240; + case 92: goto tr4519; + case 95: goto tr4518; + case 2826: goto tr4510; + case 2875: goto tr4511; + case 3082: goto tr4520; + case 3131: goto tr4521; + case 3338: goto tr4522; + case 3387: goto tr4523; + case 3594: goto tr4524; + case 3643: goto tr4525; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -18365,29 +19366,29 @@ case 1505: goto tr76; } else if ( _widec > 44 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4233; + goto tr4518; } else goto tr76; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 90 ) - goto tr4233; + goto tr4518; } else if ( _widec > 96 ) { if ( _widec > 122 ) { if ( 123 <= _widec ) goto tr76; } else if ( _widec >= 97 ) - goto tr4233; + goto tr4518; } else goto tr76; } else goto tr76; - goto tr915; + goto tr940; tr122: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -18396,16 +19397,16 @@ tr123: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } goto st14; -tr4229: +tr4514: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -18413,18 +19414,18 @@ tr4229: s->buffer_length = 0; } goto st14; -tr4231: +tr4516: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -18432,18 +19433,18 @@ tr4231: s->buffer_length = 0; } goto st14; -tr4232: +tr4517: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -18550,7 +19551,7 @@ tr124: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -18558,93 +19559,96 @@ tr124: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 15;goto st1101;} + {stack[top++] = 15;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 15;goto st1103;} + {stack[top++] = 15;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 15;goto st1105;} + {stack[top++] = 15;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 15;goto st1137;} + {stack[top++] = 15;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 15;goto st1142;} + {stack[top++] = 15;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 15;goto st1147;} + {stack[top++] = 15;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 15;goto st1152;} + {stack[top++] = 15;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 15;goto st1156;} + {stack[top++] = 15;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 15;goto st1158;} + {stack[top++] = 15;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 15;goto st1213;} + {stack[top++] = 15;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 15;goto st1224;} + {stack[top++] = 15;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 15;goto st1241;} + {stack[top++] = 15;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 15;goto st1252;} + {stack[top++] = 15;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 15;goto st1263;} + {stack[top++] = 15;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 15;goto st1276;} + {stack[top++] = 15;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 15;goto st1286;} + {stack[top++] = 15;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 15;goto st1325;} + {stack[top++] = 15;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 15;goto st1351;} + {stack[top++] = 15;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 15;goto st1354;} + {stack[top++] = 15;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 15;goto st1365;} + {stack[top++] = 15;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 15;goto st1367;} + {stack[top++] = 15;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 15;goto st1396;} + {stack[top++] = 15;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 15;goto st1409;} + {stack[top++] = 15;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 15;goto st1422;} + {stack[top++] = 15;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 15;goto st1428;} + {stack[top++] = 15;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 15;goto st1446;} + {stack[top++] = 15;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 15;goto st1441;} + {stack[top++] = 15;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 15;goto st1459;} + {stack[top++] = 15;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 15;goto st1465;} + {stack[top++] = 15;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 15;goto st1471;} + {stack[top++] = 15;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 15;goto st1479;} + {stack[top++] = 15;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 15;goto st1487;} + {stack[top++] = 15;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 15;goto st1493;} + {stack[top++] = 15;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 15;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st15; @@ -18672,12 +19676,12 @@ case 15: case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st213; + case 83: goto st222; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st213; + case 115: goto st222; case 119: goto tr36; case 1802: goto tr90; case 1851: goto tr91; @@ -18691,7 +19695,7 @@ tr157: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -18700,7 +19704,7 @@ tr158: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -18711,7 +19715,7 @@ tr150: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -18725,13 +19729,13 @@ tr151: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -18746,13 +19750,13 @@ tr152: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -18837,7 +19841,7 @@ tr44: s->r_class = s->default_class; } goto st17; -tr752: +tr777: { s->r_ttl = s->default_ttl; } @@ -18914,93 +19918,96 @@ tr75: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; @@ -19013,93 +20020,96 @@ tr85: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; @@ -19116,93 +20126,96 @@ tr174: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; @@ -19219,93 +20232,96 @@ tr196: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; @@ -19322,93 +20338,96 @@ tr204: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; @@ -19425,93 +20444,96 @@ tr214: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; @@ -19528,93 +20550,96 @@ tr225: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; @@ -19631,98 +20656,101 @@ tr236: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr250: - { s->r_type = KNOT_RRTYPE_DHCID; } +tr252: + { s->r_type = KNOT_RRTYPE_DELEG; } { rdata_tail = s->r_data; } @@ -19734,98 +20762,101 @@ tr250: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr262: - { s->r_type = KNOT_RRTYPE_DNAME; } +tr264: + { s->r_type = KNOT_RRTYPE_DELEGPARAM; } { rdata_tail = s->r_data; } @@ -19837,98 +20868,101 @@ tr262: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr273: - { s->r_type = KNOT_RRTYPE_DNSKEY; } +tr275: + { s->r_type = KNOT_RRTYPE_DHCID; } { rdata_tail = s->r_data; } @@ -19940,98 +20974,101 @@ tr273: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr282: - { s->r_type = KNOT_RRTYPE_DS; } +tr287: + { s->r_type = KNOT_RRTYPE_DNAME; } { rdata_tail = s->r_data; } @@ -20043,98 +21080,101 @@ tr282: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr292: - { s->r_type = KNOT_RRTYPE_DSYNC; } +tr298: + { s->r_type = KNOT_RRTYPE_DNSKEY; } { rdata_tail = s->r_data; } @@ -20146,98 +21186,101 @@ tr292: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr305: - { s->r_type = KNOT_RRTYPE_EUI48; } +tr307: + { s->r_type = KNOT_RRTYPE_DS; } { rdata_tail = s->r_data; } @@ -20249,98 +21292,101 @@ tr305: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr314: - { s->r_type = KNOT_RRTYPE_EUI64; } +tr317: + { s->r_type = KNOT_RRTYPE_DSYNC; } { rdata_tail = s->r_data; } @@ -20352,98 +21398,101 @@ tr314: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr327: - { s->r_type = KNOT_RRTYPE_HINFO; } +tr330: + { s->r_type = KNOT_RRTYPE_EUI48; } { rdata_tail = s->r_data; } @@ -20455,98 +21504,101 @@ tr327: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr338: - { s->r_type = KNOT_RRTYPE_HTTPS; } +tr339: + { s->r_type = KNOT_RRTYPE_EUI64; } { rdata_tail = s->r_data; } @@ -20558,98 +21610,101 @@ tr338: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr382: - { s->r_type = KNOT_RRTYPE_IPSECKEY; } +tr352: + { s->r_type = KNOT_RRTYPE_HINFO; } { rdata_tail = s->r_data; } @@ -20661,98 +21716,101 @@ tr382: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr393: - { s->r_type = KNOT_RRTYPE_KEY; } +tr363: + { s->r_type = KNOT_RRTYPE_HTTPS; } { rdata_tail = s->r_data; } @@ -20764,98 +21822,101 @@ tr393: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr401: - { s->r_type = KNOT_RRTYPE_KX; } +tr407: + { s->r_type = KNOT_RRTYPE_IPSECKEY; } { rdata_tail = s->r_data; } @@ -20867,98 +21928,101 @@ tr401: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr414: - { s->r_type = KNOT_RRTYPE_L32; } +tr418: + { s->r_type = KNOT_RRTYPE_KEY; } { rdata_tail = s->r_data; } @@ -20970,97 +22034,312 @@ tr414: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr423: +tr426: + { s->r_type = KNOT_RRTYPE_KX; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + s->r_data_generic = false; + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st1246;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1248;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st1250;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st1282;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st1287;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st1292;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st1297;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st1301;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st1303;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1358;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1369;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1386;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1397;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1408;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1421;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1431;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1470;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1496;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1499;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1510;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1512;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1541;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1554;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1567;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1573;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1591;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1586;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1604;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1610;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1616;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1624;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1632;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st338;} + } + } + goto st20; +tr439: + { s->r_type = KNOT_RRTYPE_L32; } + { + rdata_tail = s->r_data; + } + { + s->buffer_length = 0; + } + { + s->r_data_generic = false; + p--; + switch (s->r_type) { + case KNOT_RRTYPE_A: + {stack[top++] = 20;goto st1246;} + case KNOT_RRTYPE_NS: + case KNOT_RRTYPE_CNAME: + case KNOT_RRTYPE_PTR: + case KNOT_RRTYPE_DNAME: + case KNOT_RRTYPE_ALIAS: + {stack[top++] = 20;goto st1248;} + case KNOT_RRTYPE_SOA: + {stack[top++] = 20;goto st1250;} + case KNOT_RRTYPE_HINFO: + {stack[top++] = 20;goto st1282;} + case KNOT_RRTYPE_MINFO: + case KNOT_RRTYPE_RP: + {stack[top++] = 20;goto st1287;} + case KNOT_RRTYPE_MX: + case KNOT_RRTYPE_AFSDB: + case KNOT_RRTYPE_RT: + case KNOT_RRTYPE_KX: + case KNOT_RRTYPE_LP: + {stack[top++] = 20;goto st1292;} + case KNOT_RRTYPE_TXT: + case KNOT_RRTYPE_SPF: + case KNOT_RRTYPE_RESINFO: + case KNOT_RRTYPE_WALLET: + {stack[top++] = 20;goto st1297;} + case KNOT_RRTYPE_AAAA: + {stack[top++] = 20;goto st1301;} + case KNOT_RRTYPE_LOC: + {stack[top++] = 20;goto st1303;} + case KNOT_RRTYPE_SRV: + {stack[top++] = 20;goto st1358;} + case KNOT_RRTYPE_NAPTR: + {stack[top++] = 20;goto st1369;} + case KNOT_RRTYPE_CERT: + {stack[top++] = 20;goto st1386;} + case KNOT_RRTYPE_APL: + {stack[top++] = 20;goto st1397;} + case KNOT_RRTYPE_DS: + case KNOT_RRTYPE_CDS: + {stack[top++] = 20;goto st1408;} + case KNOT_RRTYPE_SSHFP: + {stack[top++] = 20;goto st1421;} + case KNOT_RRTYPE_IPSECKEY: + {stack[top++] = 20;goto st1431;} + case KNOT_RRTYPE_RRSIG: + {stack[top++] = 20;goto st1470;} + case KNOT_RRTYPE_NSEC: + {stack[top++] = 20;goto st1496;} + case KNOT_RRTYPE_KEY: + case KNOT_RRTYPE_DNSKEY: + case KNOT_RRTYPE_CDNSKEY: + {stack[top++] = 20;goto st1499;} + case KNOT_RRTYPE_DHCID: + case KNOT_RRTYPE_OPENPGPKEY: + {stack[top++] = 20;goto st1510;} + case KNOT_RRTYPE_NSEC3: + {stack[top++] = 20;goto st1512;} + case KNOT_RRTYPE_NSEC3PARAM: + {stack[top++] = 20;goto st1541;} + case KNOT_RRTYPE_TLSA: + case KNOT_RRTYPE_SMIMEA: + {stack[top++] = 20;goto st1554;} + case KNOT_RRTYPE_CSYNC: + {stack[top++] = 20;goto st1567;} + case KNOT_RRTYPE_ZONEMD: + {stack[top++] = 20;goto st1573;} + case KNOT_RRTYPE_NID: + case KNOT_RRTYPE_L64: + {stack[top++] = 20;goto st1591;} + case KNOT_RRTYPE_L32: + {stack[top++] = 20;goto st1586;} + case KNOT_RRTYPE_EUI48: + {stack[top++] = 20;goto st1604;} + case KNOT_RRTYPE_EUI64: + {stack[top++] = 20;goto st1610;} + case KNOT_RRTYPE_URI: + {stack[top++] = 20;goto st1616;} + case KNOT_RRTYPE_CAA: + {stack[top++] = 20;goto st1624;} + case KNOT_RRTYPE_SVCB: + case KNOT_RRTYPE_HTTPS: + {stack[top++] = 20;goto st1632;} + case KNOT_RRTYPE_DSYNC: + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} + default: + WARN(ZS_CANNOT_TEXT_DATA); + {goto st338;} + } + } + goto st20; +tr448: { s->r_type = KNOT_RRTYPE_L64; } { rdata_tail = s->r_data; @@ -21073,97 +22352,100 @@ tr423: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr432: +tr457: { s->r_type = KNOT_RRTYPE_LOC; } { rdata_tail = s->r_data; @@ -21176,97 +22458,100 @@ tr432: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr440: +tr465: { s->r_type = KNOT_RRTYPE_LP; } { rdata_tail = s->r_data; @@ -21279,97 +22564,100 @@ tr440: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr453: +tr478: { s->r_type = KNOT_RRTYPE_MINFO; } { rdata_tail = s->r_data; @@ -21382,97 +22670,100 @@ tr453: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr461: +tr486: { s->r_type = KNOT_RRTYPE_MX; } { rdata_tail = s->r_data; @@ -21485,97 +22776,100 @@ tr461: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr475: +tr500: { s->r_type = KNOT_RRTYPE_NAPTR; } { rdata_tail = s->r_data; @@ -21588,97 +22882,100 @@ tr475: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr484: +tr509: { s->r_type = KNOT_RRTYPE_NID; } { rdata_tail = s->r_data; @@ -21691,97 +22988,100 @@ tr484: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr493: +tr518: { s->r_type = KNOT_RRTYPE_NS; } { rdata_tail = s->r_data; @@ -21794,97 +23094,100 @@ tr493: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr503: +tr528: { s->r_type = KNOT_RRTYPE_NSEC; } { rdata_tail = s->r_data; @@ -21897,97 +23200,100 @@ tr503: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr512: +tr537: { s->r_type = KNOT_RRTYPE_NSEC3; } { rdata_tail = s->r_data; @@ -22000,97 +23306,100 @@ tr512: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr524: +tr549: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } { rdata_tail = s->r_data; @@ -22103,97 +23412,100 @@ tr524: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr541: +tr566: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } { rdata_tail = s->r_data; @@ -22206,97 +23518,100 @@ tr541: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr551: +tr576: { s->r_type = KNOT_RRTYPE_PTR; } { rdata_tail = s->r_data; @@ -22309,97 +23624,100 @@ tr551: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr568: +tr593: { s->r_type = KNOT_RRTYPE_RESINFO; } { rdata_tail = s->r_data; @@ -22412,97 +23730,100 @@ tr568: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr576: +tr601: { s->r_type = KNOT_RRTYPE_RP; } { rdata_tail = s->r_data; @@ -22515,97 +23836,100 @@ tr576: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr587: +tr612: { s->r_type = KNOT_RRTYPE_RRSIG; } { rdata_tail = s->r_data; @@ -22618,97 +23942,100 @@ tr587: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr595: +tr620: { s->r_type = KNOT_RRTYPE_RT; } { rdata_tail = s->r_data; @@ -22721,97 +24048,100 @@ tr595: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr613: +tr638: { s->r_type = KNOT_RRTYPE_SMIMEA; } { rdata_tail = s->r_data; @@ -22824,97 +24154,100 @@ tr613: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr622: +tr647: { s->r_type = KNOT_RRTYPE_SOA; } { rdata_tail = s->r_data; @@ -22927,97 +24260,100 @@ tr622: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr631: +tr656: { s->r_type = KNOT_RRTYPE_SPF; } { rdata_tail = s->r_data; @@ -23030,97 +24366,100 @@ tr631: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr640: +tr665: { s->r_type = KNOT_RRTYPE_SRV; } { rdata_tail = s->r_data; @@ -23133,97 +24472,100 @@ tr640: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr651: +tr676: { s->r_type = KNOT_RRTYPE_SSHFP; } { rdata_tail = s->r_data; @@ -23236,97 +24578,100 @@ tr651: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr661: +tr686: { s->r_type = KNOT_RRTYPE_SVCB; } { rdata_tail = s->r_data; @@ -23339,97 +24684,100 @@ tr661: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr674: +tr699: { s->r_type = KNOT_RRTYPE_TLSA; } { rdata_tail = s->r_data; @@ -23442,97 +24790,100 @@ tr674: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr683: +tr708: { s->r_type = KNOT_RRTYPE_TXT; } { rdata_tail = s->r_data; @@ -23545,103 +24896,106 @@ tr683: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr697: +tr722: { if (s->number64 <= UINT16_MAX) { s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -23655,97 +25009,100 @@ tr697: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr707: +tr732: { s->r_type = KNOT_RRTYPE_URI; } { rdata_tail = s->r_data; @@ -23758,97 +25115,100 @@ tr707: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr720: +tr745: { s->r_type = KNOT_RRTYPE_WALLET; } { rdata_tail = s->r_data; @@ -23861,97 +25221,100 @@ tr720: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr733: +tr758: { s->r_type = KNOT_RRTYPE_ZONEMD; } { rdata_tail = s->r_data; @@ -23964,97 +25327,100 @@ tr733: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr984: +tr1009: { s->r_type = KNOT_RRTYPE_AAAA; } { rdata_tail = s->r_data; @@ -24067,97 +25433,100 @@ tr984: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr995: +tr1020: { s->r_type = KNOT_RRTYPE_AFSDB; } { rdata_tail = s->r_data; @@ -24170,97 +25539,100 @@ tr995: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr1006: +tr1031: { s->r_type = KNOT_RRTYPE_ALIAS; } { rdata_tail = s->r_data; @@ -24273,97 +25645,100 @@ tr1006: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; -tr1015: +tr1040: { s->r_type = KNOT_RRTYPE_APL; } { rdata_tail = s->r_data; @@ -24376,93 +25751,96 @@ tr1015: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 20;goto st1101;} + {stack[top++] = 20;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 20;goto st1103;} + {stack[top++] = 20;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 20;goto st1105;} + {stack[top++] = 20;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 20;goto st1137;} + {stack[top++] = 20;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 20;goto st1142;} + {stack[top++] = 20;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 20;goto st1147;} + {stack[top++] = 20;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 20;goto st1152;} + {stack[top++] = 20;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 20;goto st1156;} + {stack[top++] = 20;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 20;goto st1158;} + {stack[top++] = 20;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 20;goto st1213;} + {stack[top++] = 20;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 20;goto st1224;} + {stack[top++] = 20;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 20;goto st1241;} + {stack[top++] = 20;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 20;goto st1252;} + {stack[top++] = 20;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 20;goto st1263;} + {stack[top++] = 20;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 20;goto st1276;} + {stack[top++] = 20;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 20;goto st1286;} + {stack[top++] = 20;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 20;goto st1325;} + {stack[top++] = 20;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 20;goto st1351;} + {stack[top++] = 20;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 20;goto st1354;} + {stack[top++] = 20;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 20;goto st1365;} + {stack[top++] = 20;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 20;goto st1367;} + {stack[top++] = 20;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 20;goto st1396;} + {stack[top++] = 20;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 20;goto st1409;} + {stack[top++] = 20;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 20;goto st1422;} + {stack[top++] = 20;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 20;goto st1428;} + {stack[top++] = 20;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 20;goto st1446;} + {stack[top++] = 20;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 20;goto st1441;} + {stack[top++] = 20;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 20;goto st1459;} + {stack[top++] = 20;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 20;goto st1465;} + {stack[top++] = 20;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 20;goto st1471;} + {stack[top++] = 20;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 20;goto st1479;} + {stack[top++] = 20;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 20;goto st1487;} + {stack[top++] = 20;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 20;goto st1493;} + {stack[top++] = 20;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 20;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } goto st20; @@ -24548,7 +25926,7 @@ tr176: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -24566,7 +25944,7 @@ tr177: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -24580,7 +25958,7 @@ tr180: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -24594,7 +25972,7 @@ tr181: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -24947,7 +26325,7 @@ tr45: s->r_class = s->default_class; } goto st40; -tr753: +tr778: { s->r_ttl = s->default_ttl; } @@ -24957,12 +26335,14 @@ st40: goto _test_eof40; case 40: switch( (*p) ) { - case 72: goto st41; - case 78: goto st45; - case 83: goto st53; - case 104: goto st41; - case 110: goto st45; - case 115: goto st53; + case 69: goto st41; + case 72: goto st50; + case 78: goto st54; + case 83: goto st62; + case 101: goto st41; + case 104: goto st50; + case 110: goto st54; + case 115: goto st62; } goto tr39; st41: @@ -24970,8 +26350,8 @@ st41: goto _test_eof41; case 41: switch( (*p) ) { - case 67: goto st42; - case 99: goto st42; + case 76: goto st42; + case 108: goto st42; } goto tr39; st42: @@ -24979,8 +26359,8 @@ st42: goto _test_eof42; case 42: switch( (*p) ) { - case 73: goto st43; - case 105: goto st43; + case 69: goto st43; + case 101: goto st43; } goto tr39; st43: @@ -24988,8 +26368,8 @@ st43: goto _test_eof43; case 43: switch( (*p) ) { - case 68: goto st44; - case 100: goto st44; + case 71: goto st44; + case 103: goto st44; } goto tr39; st44: @@ -25013,16 +26393,18 @@ case 44: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr243; - case 32: goto tr243; - case 40: goto tr244; - case 41: goto tr245; - case 3082: goto tr246; - case 3131: goto tr247; - case 3338: goto tr248; - case 3387: goto tr248; - case 3594: goto tr249; - case 3643: goto tr250; + case 9: goto tr244; + case 32: goto tr244; + case 40: goto tr245; + case 41: goto tr246; + case 80: goto st45; + case 112: goto st45; + case 3082: goto tr248; + case 3131: goto tr249; + case 3338: goto tr250; + case 3387: goto tr250; + case 3594: goto tr251; + case 3643: goto tr252; } goto tr63; st45: @@ -25031,9 +26413,7 @@ st45: case 45: switch( (*p) ) { case 65: goto st46; - case 83: goto st49; case 97: goto st46; - case 115: goto st49; } goto tr39; st46: @@ -25041,8 +26421,8 @@ st46: goto _test_eof46; case 46: switch( (*p) ) { - case 77: goto st47; - case 109: goto st47; + case 82: goto st47; + case 114: goto st47; } goto tr39; st47: @@ -25050,14 +26430,23 @@ st47: goto _test_eof47; case 47: switch( (*p) ) { - case 69: goto st48; - case 101: goto st48; + case 65: goto st48; + case 97: goto st48; } goto tr39; st48: if ( ++p == pe ) goto _test_eof48; case 48: + switch( (*p) ) { + case 77: goto st49; + case 109: goto st49; + } + goto tr39; +st49: + if ( ++p == pe ) + goto _test_eof49; +case 49: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25075,34 +26464,25 @@ case 48: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr255; - case 32: goto tr255; - case 40: goto tr256; - case 41: goto tr257; - case 3082: goto tr258; - case 3131: goto tr259; - case 3338: goto tr260; - case 3387: goto tr260; - case 3594: goto tr261; - case 3643: goto tr262; + case 9: goto tr257; + case 32: goto tr257; + case 40: goto tr258; + case 41: goto tr259; + case 3082: goto tr260; + case 3131: goto tr261; + case 3338: goto tr262; + case 3387: goto tr262; + case 3594: goto tr263; + case 3643: goto tr264; } goto tr63; -st49: - if ( ++p == pe ) - goto _test_eof49; -case 49: - switch( (*p) ) { - case 75: goto st50; - case 107: goto st50; - } - goto tr39; st50: if ( ++p == pe ) goto _test_eof50; case 50: switch( (*p) ) { - case 69: goto st51; - case 101: goto st51; + case 67: goto st51; + case 99: goto st51; } goto tr39; st51: @@ -25110,43 +26490,19 @@ st51: goto _test_eof51; case 51: switch( (*p) ) { - case 89: goto st52; - case 121: goto st52; + case 73: goto st52; + case 105: goto st52; } goto tr39; st52: if ( ++p == pe ) goto _test_eof52; case 52: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr266; - case 32: goto tr266; - case 40: goto tr267; - case 41: goto tr268; - case 3082: goto tr269; - case 3131: goto tr270; - case 3338: goto tr271; - case 3387: goto tr271; - case 3594: goto tr272; - case 3643: goto tr273; + switch( (*p) ) { + case 68: goto st53; + case 100: goto st53; } - goto tr63; + goto tr39; st53: if ( ++p == pe ) goto _test_eof53; @@ -25168,18 +26524,16 @@ case 53: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr274; - case 32: goto tr274; - case 40: goto tr275; - case 41: goto tr276; - case 89: goto st54; - case 121: goto st54; - case 3082: goto tr278; - case 3131: goto tr279; - case 3338: goto tr280; - case 3387: goto tr280; - case 3594: goto tr281; - case 3643: goto tr282; + case 9: goto tr268; + case 32: goto tr268; + case 40: goto tr269; + case 41: goto tr270; + case 3082: goto tr271; + case 3131: goto tr272; + case 3338: goto tr273; + case 3387: goto tr273; + case 3594: goto tr274; + case 3643: goto tr275; } goto tr63; st54: @@ -25187,8 +26541,10 @@ st54: goto _test_eof54; case 54: switch( (*p) ) { - case 78: goto st55; - case 110: goto st55; + case 65: goto st55; + case 83: goto st58; + case 97: goto st55; + case 115: goto st58; } goto tr39; st55: @@ -25196,14 +26552,23 @@ st55: goto _test_eof55; case 55: switch( (*p) ) { - case 67: goto st56; - case 99: goto st56; + case 77: goto st56; + case 109: goto st56; } goto tr39; st56: if ( ++p == pe ) goto _test_eof56; case 56: + switch( (*p) ) { + case 69: goto st57; + case 101: goto st57; + } + goto tr39; +st57: + if ( ++p == pe ) + goto _test_eof57; +case 57: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25221,52 +26586,25 @@ case 56: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr285; - case 32: goto tr285; - case 40: goto tr286; - case 41: goto tr287; - case 3082: goto tr288; - case 3131: goto tr289; - case 3338: goto tr290; - case 3387: goto tr290; - case 3594: goto tr291; - case 3643: goto tr292; + case 9: goto tr280; + case 32: goto tr280; + case 40: goto tr281; + case 41: goto tr282; + case 3082: goto tr283; + case 3131: goto tr284; + case 3338: goto tr285; + case 3387: goto tr285; + case 3594: goto tr286; + case 3643: goto tr287; } goto tr63; -tr8: - { - s->r_class = s->default_class; - } - { - s->r_ttl = s->default_ttl; - } - goto st57; -tr46: - { - s->r_class = s->default_class; - } - goto st57; -tr754: - { - s->r_ttl = s->default_ttl; - } - goto st57; -st57: - if ( ++p == pe ) - goto _test_eof57; -case 57: - switch( (*p) ) { - case 85: goto st58; - case 117: goto st58; - } - goto tr39; st58: if ( ++p == pe ) goto _test_eof58; case 58: switch( (*p) ) { - case 73: goto st59; - case 105: goto st59; + case 75: goto st59; + case 107: goto st59; } goto tr39; st59: @@ -25274,16 +26612,18 @@ st59: goto _test_eof59; case 59: switch( (*p) ) { - case 52: goto st60; - case 54: goto st62; + case 69: goto st60; + case 101: goto st60; } goto tr39; st60: if ( ++p == pe ) goto _test_eof60; case 60: - if ( (*p) == 56 ) - goto st61; + switch( (*p) ) { + case 89: goto st61; + case 121: goto st61; + } goto tr39; st61: if ( ++p == pe ) @@ -25306,29 +26646,75 @@ case 61: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr298; - case 32: goto tr298; - case 40: goto tr299; - case 41: goto tr300; - case 3082: goto tr301; - case 3131: goto tr302; - case 3338: goto tr303; - case 3387: goto tr303; - case 3594: goto tr304; - case 3643: goto tr305; + case 9: goto tr291; + case 32: goto tr291; + case 40: goto tr292; + case 41: goto tr293; + case 3082: goto tr294; + case 3131: goto tr295; + case 3338: goto tr296; + case 3387: goto tr296; + case 3594: goto tr297; + case 3643: goto tr298; } goto tr63; st62: if ( ++p == pe ) goto _test_eof62; case 62: - if ( (*p) == 52 ) - goto st63; - goto tr39; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr299; + case 32: goto tr299; + case 40: goto tr300; + case 41: goto tr301; + case 89: goto st63; + case 121: goto st63; + case 3082: goto tr303; + case 3131: goto tr304; + case 3338: goto tr305; + case 3387: goto tr305; + case 3594: goto tr306; + case 3643: goto tr307; + } + goto tr63; st63: if ( ++p == pe ) goto _test_eof63; case 63: + switch( (*p) ) { + case 78: goto st64; + case 110: goto st64; + } + goto tr39; +st64: + if ( ++p == pe ) + goto _test_eof64; +case 64: + switch( (*p) ) { + case 67: goto st65; + case 99: goto st65; + } + goto tr39; +st65: + if ( ++p == pe ) + goto _test_eof65; +case 65: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25346,63 +26732,43 @@ case 63: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr307; - case 32: goto tr307; - case 40: goto tr308; - case 41: goto tr309; - case 3082: goto tr310; - case 3131: goto tr311; - case 3338: goto tr312; - case 3387: goto tr312; - case 3594: goto tr313; - case 3643: goto tr314; + case 9: goto tr310; + case 32: goto tr310; + case 40: goto tr311; + case 41: goto tr312; + case 3082: goto tr313; + case 3131: goto tr314; + case 3338: goto tr315; + case 3387: goto tr315; + case 3594: goto tr316; + case 3643: goto tr317; } goto tr63; -tr9: +tr8: { s->r_class = s->default_class; } { s->r_ttl = s->default_ttl; } - goto st64; -tr47: + goto st66; +tr46: { s->r_class = s->default_class; } - goto st64; -tr755: + goto st66; +tr779: { s->r_ttl = s->default_ttl; } - goto st64; -st64: - if ( ++p == pe ) - goto _test_eof64; -case 64: - switch( (*p) ) { - case 73: goto st65; - case 84: goto st69; - case 105: goto st65; - case 116: goto st69; - } - goto tr39; -st65: - if ( ++p == pe ) - goto _test_eof65; -case 65: - switch( (*p) ) { - case 78: goto st66; - case 110: goto st66; - } - goto tr39; + goto st66; st66: if ( ++p == pe ) goto _test_eof66; case 66: switch( (*p) ) { - case 70: goto st67; - case 102: goto st67; + case 85: goto st67; + case 117: goto st67; } goto tr39; st67: @@ -25410,14 +26776,30 @@ st67: goto _test_eof67; case 67: switch( (*p) ) { - case 79: goto st68; - case 111: goto st68; + case 73: goto st68; + case 105: goto st68; } goto tr39; st68: if ( ++p == pe ) goto _test_eof68; case 68: + switch( (*p) ) { + case 52: goto st69; + case 54: goto st71; + } + goto tr39; +st69: + if ( ++p == pe ) + goto _test_eof69; +case 69: + if ( (*p) == 56 ) + goto st70; + goto tr39; +st70: + if ( ++p == pe ) + goto _test_eof70; +case 70: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25435,44 +26817,24 @@ case 68: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr320; - case 32: goto tr320; - case 40: goto tr321; - case 41: goto tr322; - case 3082: goto tr323; - case 3131: goto tr324; - case 3338: goto tr325; - case 3387: goto tr325; - case 3594: goto tr326; - case 3643: goto tr327; + case 9: goto tr323; + case 32: goto tr323; + case 40: goto tr324; + case 41: goto tr325; + case 3082: goto tr326; + case 3131: goto tr327; + case 3338: goto tr328; + case 3387: goto tr328; + case 3594: goto tr329; + case 3643: goto tr330; } goto tr63; -st69: - if ( ++p == pe ) - goto _test_eof69; -case 69: - switch( (*p) ) { - case 84: goto st70; - case 116: goto st70; - } - goto tr39; -st70: - if ( ++p == pe ) - goto _test_eof70; -case 70: - switch( (*p) ) { - case 80: goto st71; - case 112: goto st71; - } - goto tr39; st71: if ( ++p == pe ) goto _test_eof71; case 71: - switch( (*p) ) { - case 83: goto st72; - case 115: goto st72; - } + if ( (*p) == 52 ) + goto st72; goto tr39; st72: if ( ++p == pe ) @@ -25495,38 +26857,187 @@ case 72: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr331; - case 32: goto tr331; - case 40: goto tr332; - case 41: goto tr333; - case 3082: goto tr334; - case 3131: goto tr335; - case 3338: goto tr336; - case 3387: goto tr336; - case 3594: goto tr337; - case 3643: goto tr338; + case 9: goto tr332; + case 32: goto tr332; + case 40: goto tr333; + case 41: goto tr334; + case 3082: goto tr335; + case 3131: goto tr336; + case 3338: goto tr337; + case 3387: goto tr337; + case 3594: goto tr338; + case 3643: goto tr339; } goto tr63; -tr48: +tr9: + { + s->r_class = s->default_class; + } + { + s->r_ttl = s->default_ttl; + } + goto st73; +tr47: { s->r_class = s->default_class; } goto st73; +tr780: + { + s->r_ttl = s->default_ttl; + } + goto st73; st73: if ( ++p == pe ) goto _test_eof73; case 73: switch( (*p) ) { - case 78: goto st74; - case 80: goto st77; - case 110: goto st74; - case 112: goto st77; + case 73: goto st74; + case 84: goto st78; + case 105: goto st74; + case 116: goto st78; } goto tr39; st74: if ( ++p == pe ) goto _test_eof74; case 74: + switch( (*p) ) { + case 78: goto st75; + case 110: goto st75; + } + goto tr39; +st75: + if ( ++p == pe ) + goto _test_eof75; +case 75: + switch( (*p) ) { + case 70: goto st76; + case 102: goto st76; + } + goto tr39; +st76: + if ( ++p == pe ) + goto _test_eof76; +case 76: + switch( (*p) ) { + case 79: goto st77; + case 111: goto st77; + } + goto tr39; +st77: + if ( ++p == pe ) + goto _test_eof77; +case 77: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr345; + case 32: goto tr345; + case 40: goto tr346; + case 41: goto tr347; + case 3082: goto tr348; + case 3131: goto tr349; + case 3338: goto tr350; + case 3387: goto tr350; + case 3594: goto tr351; + case 3643: goto tr352; + } + goto tr63; +st78: + if ( ++p == pe ) + goto _test_eof78; +case 78: + switch( (*p) ) { + case 84: goto st79; + case 116: goto st79; + } + goto tr39; +st79: + if ( ++p == pe ) + goto _test_eof79; +case 79: + switch( (*p) ) { + case 80: goto st80; + case 112: goto st80; + } + goto tr39; +st80: + if ( ++p == pe ) + goto _test_eof80; +case 80: + switch( (*p) ) { + case 83: goto st81; + case 115: goto st81; + } + goto tr39; +st81: + if ( ++p == pe ) + goto _test_eof81; +case 81: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr356; + case 32: goto tr356; + case 40: goto tr357; + case 41: goto tr358; + case 3082: goto tr359; + case 3131: goto tr360; + case 3338: goto tr361; + case 3387: goto tr361; + case 3594: goto tr362; + case 3643: goto tr363; + } + goto tr63; +tr48: + { + s->r_class = s->default_class; + } + goto st82; +st82: + if ( ++p == pe ) + goto _test_eof82; +case 82: + switch( (*p) ) { + case 78: goto st83; + case 80: goto st86; + case 110: goto st83; + case 112: goto st86; + } + goto tr39; +st83: + if ( ++p == pe ) + goto _test_eof83; +case 83: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25540,95 +27051,95 @@ case 74: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr341; - case 32: goto tr341; - case 40: goto tr342; - case 41: goto tr343; - case 2058: goto tr344; - case 2107: goto tr345; + case 9: goto tr366; + case 32: goto tr366; + case 40: goto tr367; + case 41: goto tr368; + case 2058: goto tr369; + case 2107: goto tr370; } goto tr39; -tr347: +tr372: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st75; -tr348: + goto st84; +tr373: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st75; -tr367: + goto st84; +tr392: { s->line_counter++; } - goto st75; -tr771: + goto st84; +tr796: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st75; -tr772: + goto st84; +tr797: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st75; -tr773: + goto st84; +tr798: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st75; -tr780: + goto st84; +tr805: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st75; -tr735: + goto st84; +tr760: { s->buffer[s->buffer_length++] = 0; @@ -25638,58 +27149,58 @@ tr735: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 75; goto _out;} + {p++; cs = 84; goto _out;} } } } { s->line_counter++; } - goto st75; -tr341: + goto st84; +tr366: { s->r_class = KNOT_CLASS_IN; } - goto st75; -tr342: + goto st84; +tr367: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st75; -tr343: + goto st84; +tr368: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st75; -tr344: + goto st84; +tr369: { s->r_class = KNOT_CLASS_IN; } { s->line_counter++; } - goto st75; -tr789: + goto st84; +tr814: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -25697,17 +27208,17 @@ tr789: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st75; -tr790: + goto st84; +tr815: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -25715,24 +27226,24 @@ tr790: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st75; -tr791: + goto st84; +tr816: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -25740,24 +27251,24 @@ tr791: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st75; -tr793: + goto st84; +tr818: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -25765,17 +27276,17 @@ tr793: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st75; -st75: + goto st84; +st84: if ( ++p == pe ) - goto _test_eof75; -case 75: + goto _test_eof84; +case 84: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25789,122 +27300,122 @@ case 75: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st75; - case 32: goto st75; - case 40: goto tr347; - case 41: goto tr348; + case 9: goto st84; + case 32: goto st84; + case 40: goto tr372; + case 41: goto tr373; case 65: goto st4; case 67: goto st17; case 68: goto st40; - case 69: goto st57; - case 72: goto st64; - case 73: goto st76; - case 75: goto st84; - case 76: goto st88; - case 77: goto st96; - case 78: goto st102; - case 79: goto st118; - case 80: goto st128; - case 82: goto st131; - case 83: goto st144; - case 84: goto st163; - case 85: goto st173; - case 87: goto st176; - case 90: goto st182; + case 69: goto st66; + case 72: goto st73; + case 73: goto st85; + case 75: goto st93; + case 76: goto st97; + case 77: goto st105; + case 78: goto st111; + case 79: goto st127; + case 80: goto st137; + case 82: goto st140; + case 83: goto st153; + case 84: goto st172; + case 85: goto st182; + case 87: goto st185; + case 90: goto st191; case 97: goto st4; case 99: goto st17; case 100: goto st40; - case 101: goto st57; - case 104: goto st64; - case 105: goto st76; - case 107: goto st84; - case 108: goto st88; - case 109: goto st96; - case 110: goto st102; - case 111: goto st118; - case 112: goto st128; - case 114: goto st131; - case 115: goto st144; - case 116: goto st163; - case 117: goto st173; - case 119: goto st176; - case 122: goto st182; - case 2058: goto tr367; - case 2107: goto tr368; + case 101: goto st66; + case 104: goto st73; + case 105: goto st85; + case 107: goto st93; + case 108: goto st97; + case 109: goto st105; + case 110: goto st111; + case 111: goto st127; + case 112: goto st137; + case 114: goto st140; + case 115: goto st153; + case 116: goto st172; + case 117: goto st182; + case 119: goto st185; + case 122: goto st191; + case 2058: goto tr392; + case 2107: goto tr393; } goto tr39; -tr756: +tr781: { s->r_ttl = s->default_ttl; } - goto st76; -st76: + goto st85; +st85: if ( ++p == pe ) - goto _test_eof76; -case 76: + goto _test_eof85; +case 85: switch( (*p) ) { - case 80: goto st77; - case 112: goto st77; + case 80: goto st86; + case 112: goto st86; } goto tr39; -st77: +st86: if ( ++p == pe ) - goto _test_eof77; -case 77: + goto _test_eof86; +case 86: switch( (*p) ) { - case 83: goto st78; - case 115: goto st78; + case 83: goto st87; + case 115: goto st87; } goto tr39; -st78: +st87: if ( ++p == pe ) - goto _test_eof78; -case 78: + goto _test_eof87; +case 87: switch( (*p) ) { - case 69: goto st79; - case 101: goto st79; + case 69: goto st88; + case 101: goto st88; } goto tr39; -st79: +st88: if ( ++p == pe ) - goto _test_eof79; -case 79: + goto _test_eof88; +case 88: switch( (*p) ) { - case 67: goto st80; - case 99: goto st80; + case 67: goto st89; + case 99: goto st89; } goto tr39; -st80: +st89: if ( ++p == pe ) - goto _test_eof80; -case 80: + goto _test_eof89; +case 89: switch( (*p) ) { - case 75: goto st81; - case 107: goto st81; + case 75: goto st90; + case 107: goto st90; } goto tr39; -st81: +st90: if ( ++p == pe ) - goto _test_eof81; -case 81: + goto _test_eof90; +case 90: switch( (*p) ) { - case 69: goto st82; - case 101: goto st82; + case 69: goto st91; + case 101: goto st91; } goto tr39; -st82: +st91: if ( ++p == pe ) - goto _test_eof82; -case 82: + goto _test_eof91; +case 91: switch( (*p) ) { - case 89: goto st83; - case 121: goto st83; + case 89: goto st92; + case 121: goto st92; } goto tr39; -st83: +st92: if ( ++p == pe ) - goto _test_eof83; -case 83: + goto _test_eof92; +case 92: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25922,16 +27433,16 @@ case 83: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr375; - case 32: goto tr375; - case 40: goto tr376; - case 41: goto tr377; - case 3082: goto tr378; - case 3131: goto tr379; - case 3338: goto tr380; - case 3387: goto tr380; - case 3594: goto tr381; - case 3643: goto tr382; + case 9: goto tr400; + case 32: goto tr400; + case 40: goto tr401; + case 41: goto tr402; + case 3082: goto tr403; + case 3131: goto tr404; + case 3338: goto tr405; + case 3387: goto tr405; + case 3594: goto tr406; + case 3643: goto tr407; } goto tr63; tr11: @@ -25941,41 +27452,41 @@ tr11: { s->r_ttl = s->default_ttl; } - goto st84; + goto st93; tr49: { s->r_class = s->default_class; } - goto st84; -tr757: + goto st93; +tr782: { s->r_ttl = s->default_ttl; } - goto st84; -st84: + goto st93; +st93: if ( ++p == pe ) - goto _test_eof84; -case 84: + goto _test_eof93; +case 93: switch( (*p) ) { - case 69: goto st85; - case 88: goto st87; - case 101: goto st85; - case 120: goto st87; + case 69: goto st94; + case 88: goto st96; + case 101: goto st94; + case 120: goto st96; } goto tr39; -st85: +st94: if ( ++p == pe ) - goto _test_eof85; -case 85: + goto _test_eof94; +case 94: switch( (*p) ) { - case 89: goto st86; - case 121: goto st86; + case 89: goto st95; + case 121: goto st95; } goto tr39; -st86: +st95: if ( ++p == pe ) - goto _test_eof86; -case 86: + goto _test_eof95; +case 95: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -25993,22 +27504,22 @@ case 86: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr386; - case 32: goto tr386; - case 40: goto tr387; - case 41: goto tr388; - case 3082: goto tr389; - case 3131: goto tr390; - case 3338: goto tr391; - case 3387: goto tr391; - case 3594: goto tr392; - case 3643: goto tr393; + case 9: goto tr411; + case 32: goto tr411; + case 40: goto tr412; + case 41: goto tr413; + case 3082: goto tr414; + case 3131: goto tr415; + case 3338: goto tr416; + case 3387: goto tr416; + case 3594: goto tr417; + case 3643: goto tr418; } goto tr63; -st87: +st96: if ( ++p == pe ) - goto _test_eof87; -case 87: + goto _test_eof96; +case 96: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26026,16 +27537,16 @@ case 87: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr394; - case 32: goto tr394; - case 40: goto tr395; - case 41: goto tr396; - case 3082: goto tr397; - case 3131: goto tr398; - case 3338: goto tr399; - case 3387: goto tr399; - case 3594: goto tr400; - case 3643: goto tr401; + case 9: goto tr419; + case 32: goto tr419; + case 40: goto tr420; + case 41: goto tr421; + case 3082: goto tr422; + case 3131: goto tr423; + case 3338: goto tr424; + case 3387: goto tr424; + case 3594: goto tr425; + case 3643: goto tr426; } goto tr63; tr12: @@ -26045,41 +27556,41 @@ tr12: { s->r_ttl = s->default_ttl; } - goto st88; + goto st97; tr50: { s->r_class = s->default_class; } - goto st88; -tr758: + goto st97; +tr783: { s->r_ttl = s->default_ttl; } - goto st88; -st88: + goto st97; +st97: if ( ++p == pe ) - goto _test_eof88; -case 88: + goto _test_eof97; +case 97: switch( (*p) ) { - case 51: goto st89; - case 54: goto st91; - case 79: goto st93; - case 80: goto st95; - case 111: goto st93; - case 112: goto st95; + case 51: goto st98; + case 54: goto st100; + case 79: goto st102; + case 80: goto st104; + case 111: goto st102; + case 112: goto st104; } goto tr39; -st89: +st98: if ( ++p == pe ) - goto _test_eof89; -case 89: + goto _test_eof98; +case 98: if ( (*p) == 50 ) - goto st90; + goto st99; goto tr39; -st90: +st99: if ( ++p == pe ) - goto _test_eof90; -case 90: + goto _test_eof99; +case 99: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26097,29 +27608,29 @@ case 90: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr407; - case 32: goto tr407; - case 40: goto tr408; - case 41: goto tr409; - case 3082: goto tr410; - case 3131: goto tr411; - case 3338: goto tr412; - case 3387: goto tr412; - case 3594: goto tr413; - case 3643: goto tr414; + case 9: goto tr432; + case 32: goto tr432; + case 40: goto tr433; + case 41: goto tr434; + case 3082: goto tr435; + case 3131: goto tr436; + case 3338: goto tr437; + case 3387: goto tr437; + case 3594: goto tr438; + case 3643: goto tr439; } goto tr63; -st91: +st100: if ( ++p == pe ) - goto _test_eof91; -case 91: + goto _test_eof100; +case 100: if ( (*p) == 52 ) - goto st92; + goto st101; goto tr39; -st92: +st101: if ( ++p == pe ) - goto _test_eof92; -case 92: + goto _test_eof101; +case 101: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26137,31 +27648,31 @@ case 92: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr416; - case 32: goto tr416; - case 40: goto tr417; - case 41: goto tr418; - case 3082: goto tr419; - case 3131: goto tr420; - case 3338: goto tr421; - case 3387: goto tr421; - case 3594: goto tr422; - case 3643: goto tr423; + case 9: goto tr441; + case 32: goto tr441; + case 40: goto tr442; + case 41: goto tr443; + case 3082: goto tr444; + case 3131: goto tr445; + case 3338: goto tr446; + case 3387: goto tr446; + case 3594: goto tr447; + case 3643: goto tr448; } goto tr63; -st93: +st102: if ( ++p == pe ) - goto _test_eof93; -case 93: + goto _test_eof102; +case 102: switch( (*p) ) { - case 67: goto st94; - case 99: goto st94; + case 67: goto st103; + case 99: goto st103; } goto tr39; -st94: +st103: if ( ++p == pe ) - goto _test_eof94; -case 94: + goto _test_eof103; +case 103: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26179,22 +27690,22 @@ case 94: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr425; - case 32: goto tr425; - case 40: goto tr426; - case 41: goto tr427; - case 3082: goto tr428; - case 3131: goto tr429; - case 3338: goto tr430; - case 3387: goto tr430; - case 3594: goto tr431; - case 3643: goto tr432; + case 9: goto tr450; + case 32: goto tr450; + case 40: goto tr451; + case 41: goto tr452; + case 3082: goto tr453; + case 3131: goto tr454; + case 3338: goto tr455; + case 3387: goto tr455; + case 3594: goto tr456; + case 3643: goto tr457; } goto tr63; -st95: +st104: if ( ++p == pe ) - goto _test_eof95; -case 95: + goto _test_eof104; +case 104: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26212,16 +27723,16 @@ case 95: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr433; - case 32: goto tr433; - case 40: goto tr434; - case 41: goto tr435; - case 3082: goto tr436; - case 3131: goto tr437; - case 3338: goto tr438; - case 3387: goto tr438; - case 3594: goto tr439; - case 3643: goto tr440; + case 9: goto tr458; + case 32: goto tr458; + case 40: goto tr459; + case 41: goto tr460; + case 3082: goto tr461; + case 3131: goto tr462; + case 3338: goto tr463; + case 3387: goto tr463; + case 3594: goto tr464; + case 3643: goto tr465; } goto tr63; tr13: @@ -26231,59 +27742,59 @@ tr13: { s->r_ttl = s->default_ttl; } - goto st96; + goto st105; tr51: { s->r_class = s->default_class; } - goto st96; -tr759: + goto st105; +tr784: { s->r_ttl = s->default_ttl; } - goto st96; -st96: + goto st105; +st105: if ( ++p == pe ) - goto _test_eof96; -case 96: + goto _test_eof105; +case 105: switch( (*p) ) { - case 73: goto st97; - case 88: goto st101; - case 105: goto st97; - case 120: goto st101; + case 73: goto st106; + case 88: goto st110; + case 105: goto st106; + case 120: goto st110; } goto tr39; -st97: +st106: if ( ++p == pe ) - goto _test_eof97; -case 97: + goto _test_eof106; +case 106: switch( (*p) ) { - case 78: goto st98; - case 110: goto st98; + case 78: goto st107; + case 110: goto st107; } goto tr39; -st98: +st107: if ( ++p == pe ) - goto _test_eof98; -case 98: + goto _test_eof107; +case 107: switch( (*p) ) { - case 70: goto st99; - case 102: goto st99; + case 70: goto st108; + case 102: goto st108; } goto tr39; -st99: +st108: if ( ++p == pe ) - goto _test_eof99; -case 99: + goto _test_eof108; +case 108: switch( (*p) ) { - case 79: goto st100; - case 111: goto st100; + case 79: goto st109; + case 111: goto st109; } goto tr39; -st100: +st109: if ( ++p == pe ) - goto _test_eof100; -case 100: + goto _test_eof109; +case 109: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26301,22 +27812,22 @@ case 100: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr446; - case 32: goto tr446; - case 40: goto tr447; - case 41: goto tr448; - case 3082: goto tr449; - case 3131: goto tr450; - case 3338: goto tr451; - case 3387: goto tr451; - case 3594: goto tr452; - case 3643: goto tr453; + case 9: goto tr471; + case 32: goto tr471; + case 40: goto tr472; + case 41: goto tr473; + case 3082: goto tr474; + case 3131: goto tr475; + case 3338: goto tr476; + case 3387: goto tr476; + case 3594: goto tr477; + case 3643: goto tr478; } goto tr63; -st101: +st110: if ( ++p == pe ) - goto _test_eof101; -case 101: + goto _test_eof110; +case 110: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26334,16 +27845,16 @@ case 101: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr454; - case 32: goto tr454; - case 40: goto tr455; - case 41: goto tr456; - case 3082: goto tr457; - case 3131: goto tr458; - case 3338: goto tr459; - case 3387: goto tr459; - case 3594: goto tr460; - case 3643: goto tr461; + case 9: goto tr479; + case 32: goto tr479; + case 40: goto tr480; + case 41: goto tr481; + case 3082: goto tr482; + case 3131: goto tr483; + case 3338: goto tr484; + case 3387: goto tr484; + case 3594: goto tr485; + case 3643: goto tr486; } goto tr63; tr14: @@ -26353,61 +27864,61 @@ tr14: { s->r_ttl = s->default_ttl; } - goto st102; + goto st111; tr52: { s->r_class = s->default_class; } - goto st102; -tr760: + goto st111; +tr785: { s->r_ttl = s->default_ttl; } - goto st102; -st102: + goto st111; +st111: if ( ++p == pe ) - goto _test_eof102; -case 102: + goto _test_eof111; +case 111: switch( (*p) ) { - case 65: goto st103; - case 73: goto st107; - case 83: goto st109; - case 97: goto st103; - case 105: goto st107; - case 115: goto st109; + case 65: goto st112; + case 73: goto st116; + case 83: goto st118; + case 97: goto st112; + case 105: goto st116; + case 115: goto st118; } goto tr39; -st103: +st112: if ( ++p == pe ) - goto _test_eof103; -case 103: + goto _test_eof112; +case 112: switch( (*p) ) { - case 80: goto st104; - case 112: goto st104; + case 80: goto st113; + case 112: goto st113; } goto tr39; -st104: +st113: if ( ++p == pe ) - goto _test_eof104; -case 104: + goto _test_eof113; +case 113: switch( (*p) ) { - case 84: goto st105; - case 116: goto st105; + case 84: goto st114; + case 116: goto st114; } goto tr39; -st105: +st114: if ( ++p == pe ) - goto _test_eof105; -case 105: + goto _test_eof114; +case 114: switch( (*p) ) { - case 82: goto st106; - case 114: goto st106; + case 82: goto st115; + case 114: goto st115; } goto tr39; -st106: +st115: if ( ++p == pe ) - goto _test_eof106; -case 106: + goto _test_eof115; +case 115: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26425,31 +27936,31 @@ case 106: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr468; - case 32: goto tr468; - case 40: goto tr469; - case 41: goto tr470; - case 3082: goto tr471; - case 3131: goto tr472; - case 3338: goto tr473; - case 3387: goto tr473; - case 3594: goto tr474; - case 3643: goto tr475; + case 9: goto tr493; + case 32: goto tr493; + case 40: goto tr494; + case 41: goto tr495; + case 3082: goto tr496; + case 3131: goto tr497; + case 3338: goto tr498; + case 3387: goto tr498; + case 3594: goto tr499; + case 3643: goto tr500; } goto tr63; -st107: +st116: if ( ++p == pe ) - goto _test_eof107; -case 107: + goto _test_eof116; +case 116: switch( (*p) ) { - case 68: goto st108; - case 100: goto st108; + case 68: goto st117; + case 100: goto st117; } goto tr39; -st108: +st117: if ( ++p == pe ) - goto _test_eof108; -case 108: + goto _test_eof117; +case 117: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26467,22 +27978,22 @@ case 108: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr477; - case 32: goto tr477; - case 40: goto tr478; - case 41: goto tr479; - case 3082: goto tr480; - case 3131: goto tr481; - case 3338: goto tr482; - case 3387: goto tr482; - case 3594: goto tr483; - case 3643: goto tr484; + case 9: goto tr502; + case 32: goto tr502; + case 40: goto tr503; + case 41: goto tr504; + case 3082: goto tr505; + case 3131: goto tr506; + case 3338: goto tr507; + case 3387: goto tr507; + case 3594: goto tr508; + case 3643: goto tr509; } goto tr63; -st109: +st118: if ( ++p == pe ) - goto _test_eof109; -case 109: + goto _test_eof118; +case 118: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26500,33 +28011,33 @@ case 109: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr485; - case 32: goto tr485; - case 40: goto tr486; - case 41: goto tr487; - case 69: goto st110; - case 101: goto st110; - case 3082: goto tr489; - case 3131: goto tr490; - case 3338: goto tr491; - case 3387: goto tr491; - case 3594: goto tr492; - case 3643: goto tr493; + case 9: goto tr510; + case 32: goto tr510; + case 40: goto tr511; + case 41: goto tr512; + case 69: goto st119; + case 101: goto st119; + case 3082: goto tr514; + case 3131: goto tr515; + case 3338: goto tr516; + case 3387: goto tr516; + case 3594: goto tr517; + case 3643: goto tr518; } goto tr63; -st110: +st119: if ( ++p == pe ) - goto _test_eof110; -case 110: + goto _test_eof119; +case 119: switch( (*p) ) { - case 67: goto st111; - case 99: goto st111; + case 67: goto st120; + case 99: goto st120; } goto tr39; -st111: +st120: if ( ++p == pe ) - goto _test_eof111; -case 111: + goto _test_eof120; +case 120: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26544,23 +28055,23 @@ case 111: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr495; - case 32: goto tr495; - case 40: goto tr496; - case 41: goto tr497; - case 51: goto st112; - case 3082: goto tr499; - case 3131: goto tr500; - case 3338: goto tr501; - case 3387: goto tr501; - case 3594: goto tr502; - case 3643: goto tr503; + case 9: goto tr520; + case 32: goto tr520; + case 40: goto tr521; + case 41: goto tr522; + case 51: goto st121; + case 3082: goto tr524; + case 3131: goto tr525; + case 3338: goto tr526; + case 3387: goto tr526; + case 3594: goto tr527; + case 3643: goto tr528; } goto tr63; -st112: +st121: if ( ++p == pe ) - goto _test_eof112; -case 112: + goto _test_eof121; +case 121: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26578,60 +28089,60 @@ case 112: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr504; - case 32: goto tr504; - case 40: goto tr505; - case 41: goto tr506; - case 80: goto st113; - case 112: goto st113; - case 3082: goto tr508; - case 3131: goto tr509; - case 3338: goto tr510; - case 3387: goto tr510; - case 3594: goto tr511; - case 3643: goto tr512; + case 9: goto tr529; + case 32: goto tr529; + case 40: goto tr530; + case 41: goto tr531; + case 80: goto st122; + case 112: goto st122; + case 3082: goto tr533; + case 3131: goto tr534; + case 3338: goto tr535; + case 3387: goto tr535; + case 3594: goto tr536; + case 3643: goto tr537; } goto tr63; -st113: +st122: if ( ++p == pe ) - goto _test_eof113; -case 113: + goto _test_eof122; +case 122: switch( (*p) ) { - case 65: goto st114; - case 97: goto st114; + case 65: goto st123; + case 97: goto st123; } goto tr39; -st114: +st123: if ( ++p == pe ) - goto _test_eof114; -case 114: + goto _test_eof123; +case 123: switch( (*p) ) { - case 82: goto st115; - case 114: goto st115; + case 82: goto st124; + case 114: goto st124; } goto tr39; -st115: +st124: if ( ++p == pe ) - goto _test_eof115; -case 115: - switch( (*p) ) { - case 65: goto st116; - case 97: goto st116; + goto _test_eof124; +case 124: + switch( (*p) ) { + case 65: goto st125; + case 97: goto st125; } goto tr39; -st116: +st125: if ( ++p == pe ) - goto _test_eof116; -case 116: + goto _test_eof125; +case 125: switch( (*p) ) { - case 77: goto st117; - case 109: goto st117; + case 77: goto st126; + case 109: goto st126; } goto tr39; -st117: +st126: if ( ++p == pe ) - goto _test_eof117; -case 117: + goto _test_eof126; +case 126: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26649,16 +28160,16 @@ case 117: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr517; - case 32: goto tr517; - case 40: goto tr518; - case 41: goto tr519; - case 3082: goto tr520; - case 3131: goto tr521; - case 3338: goto tr522; - case 3387: goto tr522; - case 3594: goto tr523; - case 3643: goto tr524; + case 9: goto tr542; + case 32: goto tr542; + case 40: goto tr543; + case 41: goto tr544; + case 3082: goto tr545; + case 3131: goto tr546; + case 3338: goto tr547; + case 3387: goto tr547; + case 3594: goto tr548; + case 3643: goto tr549; } goto tr63; tr15: @@ -26668,102 +28179,102 @@ tr15: { s->r_ttl = s->default_ttl; } - goto st118; + goto st127; tr53: { s->r_class = s->default_class; } - goto st118; -tr761: + goto st127; +tr786: { s->r_ttl = s->default_ttl; } - goto st118; -st118: + goto st127; +st127: if ( ++p == pe ) - goto _test_eof118; -case 118: + goto _test_eof127; +case 127: switch( (*p) ) { - case 80: goto st119; - case 112: goto st119; + case 80: goto st128; + case 112: goto st128; } goto tr39; -st119: +st128: if ( ++p == pe ) - goto _test_eof119; -case 119: + goto _test_eof128; +case 128: switch( (*p) ) { - case 69: goto st120; - case 101: goto st120; + case 69: goto st129; + case 101: goto st129; } goto tr39; -st120: +st129: if ( ++p == pe ) - goto _test_eof120; -case 120: + goto _test_eof129; +case 129: switch( (*p) ) { - case 78: goto st121; - case 110: goto st121; + case 78: goto st130; + case 110: goto st130; } goto tr39; -st121: +st130: if ( ++p == pe ) - goto _test_eof121; -case 121: + goto _test_eof130; +case 130: switch( (*p) ) { - case 80: goto st122; - case 112: goto st122; + case 80: goto st131; + case 112: goto st131; } goto tr39; -st122: +st131: if ( ++p == pe ) - goto _test_eof122; -case 122: + goto _test_eof131; +case 131: switch( (*p) ) { - case 71: goto st123; - case 103: goto st123; + case 71: goto st132; + case 103: goto st132; } goto tr39; -st123: +st132: if ( ++p == pe ) - goto _test_eof123; -case 123: + goto _test_eof132; +case 132: switch( (*p) ) { - case 80: goto st124; - case 112: goto st124; + case 80: goto st133; + case 112: goto st133; } goto tr39; -st124: +st133: if ( ++p == pe ) - goto _test_eof124; -case 124: + goto _test_eof133; +case 133: switch( (*p) ) { - case 75: goto st125; - case 107: goto st125; + case 75: goto st134; + case 107: goto st134; } goto tr39; -st125: +st134: if ( ++p == pe ) - goto _test_eof125; -case 125: + goto _test_eof134; +case 134: switch( (*p) ) { - case 69: goto st126; - case 101: goto st126; + case 69: goto st135; + case 101: goto st135; } goto tr39; -st126: +st135: if ( ++p == pe ) - goto _test_eof126; -case 126: + goto _test_eof135; +case 135: switch( (*p) ) { - case 89: goto st127; - case 121: goto st127; + case 89: goto st136; + case 121: goto st136; } goto tr39; -st127: +st136: if ( ++p == pe ) - goto _test_eof127; -case 127: + goto _test_eof136; +case 136: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26781,16 +28292,16 @@ case 127: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr534; - case 32: goto tr534; - case 40: goto tr535; - case 41: goto tr536; - case 3082: goto tr537; - case 3131: goto tr538; - case 3338: goto tr539; - case 3387: goto tr539; - case 3594: goto tr540; - case 3643: goto tr541; + case 9: goto tr559; + case 32: goto tr559; + case 40: goto tr560; + case 41: goto tr561; + case 3082: goto tr562; + case 3131: goto tr563; + case 3338: goto tr564; + case 3387: goto tr564; + case 3594: goto tr565; + case 3643: goto tr566; } goto tr63; tr16: @@ -26800,39 +28311,39 @@ tr16: { s->r_ttl = s->default_ttl; } - goto st128; + goto st137; tr54: { s->r_class = s->default_class; } - goto st128; -tr762: + goto st137; +tr787: { s->r_ttl = s->default_ttl; } - goto st128; -st128: + goto st137; +st137: if ( ++p == pe ) - goto _test_eof128; -case 128: + goto _test_eof137; +case 137: switch( (*p) ) { - case 84: goto st129; - case 116: goto st129; + case 84: goto st138; + case 116: goto st138; } goto tr39; -st129: +st138: if ( ++p == pe ) - goto _test_eof129; -case 129: + goto _test_eof138; +case 138: switch( (*p) ) { - case 82: goto st130; - case 114: goto st130; + case 82: goto st139; + case 114: goto st139; } goto tr39; -st130: +st139: if ( ++p == pe ) - goto _test_eof130; -case 130: + goto _test_eof139; +case 139: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26850,16 +28361,16 @@ case 130: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr544; - case 32: goto tr544; - case 40: goto tr545; - case 41: goto tr546; - case 3082: goto tr547; - case 3131: goto tr548; - case 3338: goto tr549; - case 3387: goto tr549; - case 3594: goto tr550; - case 3643: goto tr551; + case 9: goto tr569; + case 32: goto tr569; + case 40: goto tr570; + case 41: goto tr571; + case 3082: goto tr572; + case 3131: goto tr573; + case 3338: goto tr574; + case 3387: goto tr574; + case 3594: goto tr575; + case 3643: goto tr576; } goto tr63; tr17: @@ -26869,81 +28380,81 @@ tr17: { s->r_ttl = s->default_ttl; } - goto st131; + goto st140; tr55: { s->r_class = s->default_class; } - goto st131; -tr763: + goto st140; +tr788: { s->r_ttl = s->default_ttl; } - goto st131; -st131: + goto st140; +st140: if ( ++p == pe ) - goto _test_eof131; -case 131: + goto _test_eof140; +case 140: switch( (*p) ) { - case 69: goto st132; - case 80: goto st138; - case 82: goto st139; - case 84: goto st143; - case 101: goto st132; - case 112: goto st138; - case 114: goto st139; - case 116: goto st143; + case 69: goto st141; + case 80: goto st147; + case 82: goto st148; + case 84: goto st152; + case 101: goto st141; + case 112: goto st147; + case 114: goto st148; + case 116: goto st152; } goto tr39; -st132: +st141: if ( ++p == pe ) - goto _test_eof132; -case 132: + goto _test_eof141; +case 141: switch( (*p) ) { - case 83: goto st133; - case 115: goto st133; + case 83: goto st142; + case 115: goto st142; } goto tr39; -st133: +st142: if ( ++p == pe ) - goto _test_eof133; -case 133: + goto _test_eof142; +case 142: switch( (*p) ) { - case 73: goto st134; - case 105: goto st134; + case 73: goto st143; + case 105: goto st143; } goto tr39; -st134: +st143: if ( ++p == pe ) - goto _test_eof134; -case 134: + goto _test_eof143; +case 143: switch( (*p) ) { - case 78: goto st135; - case 110: goto st135; + case 78: goto st144; + case 110: goto st144; } goto tr39; -st135: +st144: if ( ++p == pe ) - goto _test_eof135; -case 135: + goto _test_eof144; +case 144: switch( (*p) ) { - case 70: goto st136; - case 102: goto st136; + case 70: goto st145; + case 102: goto st145; } goto tr39; -st136: +st145: if ( ++p == pe ) - goto _test_eof136; -case 136: + goto _test_eof145; +case 145: switch( (*p) ) { - case 79: goto st137; - case 111: goto st137; + case 79: goto st146; + case 111: goto st146; } goto tr39; -st137: +st146: if ( ++p == pe ) - goto _test_eof137; -case 137: + goto _test_eof146; +case 146: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26961,22 +28472,22 @@ case 137: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr561; - case 32: goto tr561; - case 40: goto tr562; - case 41: goto tr563; - case 3082: goto tr564; - case 3131: goto tr565; - case 3338: goto tr566; - case 3387: goto tr566; - case 3594: goto tr567; - case 3643: goto tr568; + case 9: goto tr586; + case 32: goto tr586; + case 40: goto tr587; + case 41: goto tr588; + case 3082: goto tr589; + case 3131: goto tr590; + case 3338: goto tr591; + case 3387: goto tr591; + case 3594: goto tr592; + case 3643: goto tr593; } goto tr63; -st138: +st147: if ( ++p == pe ) - goto _test_eof138; -case 138: + goto _test_eof147; +case 147: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -26994,49 +28505,49 @@ case 138: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr569; - case 32: goto tr569; - case 40: goto tr570; - case 41: goto tr571; - case 3082: goto tr572; - case 3131: goto tr573; - case 3338: goto tr574; - case 3387: goto tr574; - case 3594: goto tr575; - case 3643: goto tr576; + case 9: goto tr594; + case 32: goto tr594; + case 40: goto tr595; + case 41: goto tr596; + case 3082: goto tr597; + case 3131: goto tr598; + case 3338: goto tr599; + case 3387: goto tr599; + case 3594: goto tr600; + case 3643: goto tr601; } goto tr63; -st139: +st148: if ( ++p == pe ) - goto _test_eof139; -case 139: + goto _test_eof148; +case 148: switch( (*p) ) { - case 83: goto st140; - case 115: goto st140; + case 83: goto st149; + case 115: goto st149; } goto tr39; -st140: +st149: if ( ++p == pe ) - goto _test_eof140; -case 140: + goto _test_eof149; +case 149: switch( (*p) ) { - case 73: goto st141; - case 105: goto st141; + case 73: goto st150; + case 105: goto st150; } goto tr39; -st141: +st150: if ( ++p == pe ) - goto _test_eof141; -case 141: + goto _test_eof150; +case 150: switch( (*p) ) { - case 71: goto st142; - case 103: goto st142; + case 71: goto st151; + case 103: goto st151; } goto tr39; -st142: +st151: if ( ++p == pe ) - goto _test_eof142; -case 142: + goto _test_eof151; +case 151: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27054,22 +28565,22 @@ case 142: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr580; - case 32: goto tr580; - case 40: goto tr581; - case 41: goto tr582; - case 3082: goto tr583; - case 3131: goto tr584; - case 3338: goto tr585; - case 3387: goto tr585; - case 3594: goto tr586; - case 3643: goto tr587; + case 9: goto tr605; + case 32: goto tr605; + case 40: goto tr606; + case 41: goto tr607; + case 3082: goto tr608; + case 3131: goto tr609; + case 3338: goto tr610; + case 3387: goto tr610; + case 3594: goto tr611; + case 3643: goto tr612; } goto tr63; -st143: +st152: if ( ++p == pe ) - goto _test_eof143; -case 143: + goto _test_eof152; +case 152: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27087,16 +28598,16 @@ case 143: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr588; - case 32: goto tr588; - case 40: goto tr589; - case 41: goto tr590; - case 3082: goto tr591; - case 3131: goto tr592; - case 3338: goto tr593; - case 3387: goto tr593; - case 3594: goto tr594; - case 3643: goto tr595; + case 9: goto tr613; + case 32: goto tr613; + case 40: goto tr614; + case 41: goto tr615; + case 3082: goto tr616; + case 3131: goto tr617; + case 3338: goto tr618; + case 3387: goto tr618; + case 3594: goto tr619; + case 3643: goto tr620; } goto tr63; tr18: @@ -27106,76 +28617,76 @@ tr18: { s->r_ttl = s->default_ttl; } - goto st144; + goto st153; tr56: { s->r_class = s->default_class; } - goto st144; -tr764: + goto st153; +tr789: { s->r_ttl = s->default_ttl; } - goto st144; -st144: + goto st153; +st153: if ( ++p == pe ) - goto _test_eof144; -case 144: + goto _test_eof153; +case 153: switch( (*p) ) { - case 77: goto st145; - case 79: goto st150; - case 80: goto st152; - case 82: goto st154; - case 83: goto st156; - case 86: goto st160; - case 109: goto st145; - case 111: goto st150; - case 112: goto st152; - case 114: goto st154; - case 115: goto st156; - case 118: goto st160; + case 77: goto st154; + case 79: goto st159; + case 80: goto st161; + case 82: goto st163; + case 83: goto st165; + case 86: goto st169; + case 109: goto st154; + case 111: goto st159; + case 112: goto st161; + case 114: goto st163; + case 115: goto st165; + case 118: goto st169; } goto tr39; -st145: +st154: if ( ++p == pe ) - goto _test_eof145; -case 145: + goto _test_eof154; +case 154: switch( (*p) ) { - case 73: goto st146; - case 105: goto st146; + case 73: goto st155; + case 105: goto st155; } goto tr39; -st146: +st155: if ( ++p == pe ) - goto _test_eof146; -case 146: + goto _test_eof155; +case 155: switch( (*p) ) { - case 77: goto st147; - case 109: goto st147; + case 77: goto st156; + case 109: goto st156; } goto tr39; -st147: +st156: if ( ++p == pe ) - goto _test_eof147; -case 147: + goto _test_eof156; +case 156: switch( (*p) ) { - case 69: goto st148; - case 101: goto st148; + case 69: goto st157; + case 101: goto st157; } goto tr39; -st148: +st157: if ( ++p == pe ) - goto _test_eof148; -case 148: + goto _test_eof157; +case 157: switch( (*p) ) { - case 65: goto st149; - case 97: goto st149; + case 65: goto st158; + case 97: goto st158; } goto tr39; -st149: +st158: if ( ++p == pe ) - goto _test_eof149; -case 149: + goto _test_eof158; +case 158: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27193,31 +28704,31 @@ case 149: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr606; - case 32: goto tr606; - case 40: goto tr607; - case 41: goto tr608; - case 3082: goto tr609; - case 3131: goto tr610; - case 3338: goto tr611; - case 3387: goto tr611; - case 3594: goto tr612; - case 3643: goto tr613; + case 9: goto tr631; + case 32: goto tr631; + case 40: goto tr632; + case 41: goto tr633; + case 3082: goto tr634; + case 3131: goto tr635; + case 3338: goto tr636; + case 3387: goto tr636; + case 3594: goto tr637; + case 3643: goto tr638; } goto tr63; -st150: +st159: if ( ++p == pe ) - goto _test_eof150; -case 150: + goto _test_eof159; +case 159: switch( (*p) ) { - case 65: goto st151; - case 97: goto st151; + case 65: goto st160; + case 97: goto st160; } goto tr39; -st151: +st160: if ( ++p == pe ) - goto _test_eof151; -case 151: + goto _test_eof160; +case 160: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27235,31 +28746,31 @@ case 151: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr615; - case 32: goto tr615; - case 40: goto tr616; - case 41: goto tr617; - case 3082: goto tr618; - case 3131: goto tr619; - case 3338: goto tr620; - case 3387: goto tr620; - case 3594: goto tr621; - case 3643: goto tr622; + case 9: goto tr640; + case 32: goto tr640; + case 40: goto tr641; + case 41: goto tr642; + case 3082: goto tr643; + case 3131: goto tr644; + case 3338: goto tr645; + case 3387: goto tr645; + case 3594: goto tr646; + case 3643: goto tr647; } goto tr63; -st152: +st161: if ( ++p == pe ) - goto _test_eof152; -case 152: + goto _test_eof161; +case 161: switch( (*p) ) { - case 70: goto st153; - case 102: goto st153; + case 70: goto st162; + case 102: goto st162; } goto tr39; -st153: +st162: if ( ++p == pe ) - goto _test_eof153; -case 153: + goto _test_eof162; +case 162: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27277,31 +28788,31 @@ case 153: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr624; - case 32: goto tr624; - case 40: goto tr625; - case 41: goto tr626; - case 3082: goto tr627; - case 3131: goto tr628; - case 3338: goto tr629; - case 3387: goto tr629; - case 3594: goto tr630; - case 3643: goto tr631; + case 9: goto tr649; + case 32: goto tr649; + case 40: goto tr650; + case 41: goto tr651; + case 3082: goto tr652; + case 3131: goto tr653; + case 3338: goto tr654; + case 3387: goto tr654; + case 3594: goto tr655; + case 3643: goto tr656; } goto tr63; -st154: +st163: if ( ++p == pe ) - goto _test_eof154; -case 154: + goto _test_eof163; +case 163: switch( (*p) ) { - case 86: goto st155; - case 118: goto st155; + case 86: goto st164; + case 118: goto st164; } goto tr39; -st155: +st164: if ( ++p == pe ) - goto _test_eof155; -case 155: + goto _test_eof164; +case 164: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27319,49 +28830,49 @@ case 155: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr633; - case 32: goto tr633; - case 40: goto tr634; - case 41: goto tr635; - case 3082: goto tr636; - case 3131: goto tr637; - case 3338: goto tr638; - case 3387: goto tr638; - case 3594: goto tr639; - case 3643: goto tr640; + case 9: goto tr658; + case 32: goto tr658; + case 40: goto tr659; + case 41: goto tr660; + case 3082: goto tr661; + case 3131: goto tr662; + case 3338: goto tr663; + case 3387: goto tr663; + case 3594: goto tr664; + case 3643: goto tr665; } goto tr63; -st156: +st165: if ( ++p == pe ) - goto _test_eof156; -case 156: + goto _test_eof165; +case 165: switch( (*p) ) { - case 72: goto st157; - case 104: goto st157; + case 72: goto st166; + case 104: goto st166; } goto tr39; -st157: +st166: if ( ++p == pe ) - goto _test_eof157; -case 157: + goto _test_eof166; +case 166: switch( (*p) ) { - case 70: goto st158; - case 102: goto st158; + case 70: goto st167; + case 102: goto st167; } goto tr39; -st158: +st167: if ( ++p == pe ) - goto _test_eof158; -case 158: + goto _test_eof167; +case 167: switch( (*p) ) { - case 80: goto st159; - case 112: goto st159; + case 80: goto st168; + case 112: goto st168; } goto tr39; -st159: +st168: if ( ++p == pe ) - goto _test_eof159; -case 159: + goto _test_eof168; +case 168: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27379,40 +28890,40 @@ case 159: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr644; - case 32: goto tr644; - case 40: goto tr645; - case 41: goto tr646; - case 3082: goto tr647; - case 3131: goto tr648; - case 3338: goto tr649; - case 3387: goto tr649; - case 3594: goto tr650; - case 3643: goto tr651; + case 9: goto tr669; + case 32: goto tr669; + case 40: goto tr670; + case 41: goto tr671; + case 3082: goto tr672; + case 3131: goto tr673; + case 3338: goto tr674; + case 3387: goto tr674; + case 3594: goto tr675; + case 3643: goto tr676; } goto tr63; -st160: +st169: if ( ++p == pe ) - goto _test_eof160; -case 160: + goto _test_eof169; +case 169: switch( (*p) ) { - case 67: goto st161; - case 99: goto st161; + case 67: goto st170; + case 99: goto st170; } goto tr39; -st161: +st170: if ( ++p == pe ) - goto _test_eof161; -case 161: + goto _test_eof170; +case 170: switch( (*p) ) { - case 66: goto st162; - case 98: goto st162; + case 66: goto st171; + case 98: goto st171; } goto tr39; -st162: +st171: if ( ++p == pe ) - goto _test_eof162; -case 162: + goto _test_eof171; +case 171: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27430,16 +28941,16 @@ case 162: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr654; - case 32: goto tr654; - case 40: goto tr655; - case 41: goto tr656; - case 3082: goto tr657; - case 3131: goto tr658; - case 3338: goto tr659; - case 3387: goto tr659; - case 3594: goto tr660; - case 3643: goto tr661; + case 9: goto tr679; + case 32: goto tr679; + case 40: goto tr680; + case 41: goto tr681; + case 3082: goto tr682; + case 3131: goto tr683; + case 3338: goto tr684; + case 3387: goto tr684; + case 3594: goto tr685; + case 3643: goto tr686; } goto tr63; tr19: @@ -27449,52 +28960,52 @@ tr19: { s->r_ttl = s->default_ttl; } - goto st163; + goto st172; tr57: { s->r_class = s->default_class; } - goto st163; -tr765: + goto st172; +tr790: { s->r_ttl = s->default_ttl; } - goto st163; -st163: + goto st172; +st172: if ( ++p == pe ) - goto _test_eof163; -case 163: + goto _test_eof172; +case 172: switch( (*p) ) { - case 76: goto st164; - case 88: goto st167; - case 89: goto st169; - case 108: goto st164; - case 120: goto st167; - case 121: goto st169; + case 76: goto st173; + case 88: goto st176; + case 89: goto st178; + case 108: goto st173; + case 120: goto st176; + case 121: goto st178; } goto tr39; -st164: +st173: if ( ++p == pe ) - goto _test_eof164; -case 164: + goto _test_eof173; +case 173: switch( (*p) ) { - case 83: goto st165; - case 115: goto st165; + case 83: goto st174; + case 115: goto st174; } goto tr39; -st165: +st174: if ( ++p == pe ) - goto _test_eof165; -case 165: + goto _test_eof174; +case 174: switch( (*p) ) { - case 65: goto st166; - case 97: goto st166; + case 65: goto st175; + case 97: goto st175; } goto tr39; -st166: +st175: if ( ++p == pe ) - goto _test_eof166; -case 166: + goto _test_eof175; +case 175: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27512,31 +29023,31 @@ case 166: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr667; - case 32: goto tr667; - case 40: goto tr668; - case 41: goto tr669; - case 3082: goto tr670; - case 3131: goto tr671; - case 3338: goto tr672; - case 3387: goto tr672; - case 3594: goto tr673; - case 3643: goto tr674; + case 9: goto tr692; + case 32: goto tr692; + case 40: goto tr693; + case 41: goto tr694; + case 3082: goto tr695; + case 3131: goto tr696; + case 3338: goto tr697; + case 3387: goto tr697; + case 3594: goto tr698; + case 3643: goto tr699; } goto tr63; -st167: +st176: if ( ++p == pe ) - goto _test_eof167; -case 167: + goto _test_eof176; +case 176: switch( (*p) ) { - case 84: goto st168; - case 116: goto st168; + case 84: goto st177; + case 116: goto st177; } goto tr39; -st168: +st177: if ( ++p == pe ) - goto _test_eof168; -case 168: + goto _test_eof177; +case 177: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27554,44 +29065,44 @@ case 168: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr676; - case 32: goto tr676; - case 40: goto tr677; - case 41: goto tr678; - case 3082: goto tr679; - case 3131: goto tr680; - case 3338: goto tr681; - case 3387: goto tr681; - case 3594: goto tr682; - case 3643: goto tr683; + case 9: goto tr701; + case 32: goto tr701; + case 40: goto tr702; + case 41: goto tr703; + case 3082: goto tr704; + case 3131: goto tr705; + case 3338: goto tr706; + case 3387: goto tr706; + case 3594: goto tr707; + case 3643: goto tr708; } goto tr63; -st169: +st178: if ( ++p == pe ) - goto _test_eof169; -case 169: + goto _test_eof178; +case 178: switch( (*p) ) { - case 80: goto st170; - case 112: goto st170; + case 80: goto st179; + case 112: goto st179; } goto tr39; -st170: +st179: if ( ++p == pe ) - goto _test_eof170; -case 170: + goto _test_eof179; +case 179: switch( (*p) ) { - case 69: goto st171; - case 101: goto st171; + case 69: goto st180; + case 101: goto st180; } goto tr39; -st171: +st180: if ( ++p == pe ) - goto _test_eof171; -case 171: + goto _test_eof180; +case 180: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr687; - goto tr686; -tr687: + goto tr712; + goto tr711; +tr712: { s->number64 = 0; } @@ -27606,11 +29117,11 @@ tr687: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st172; -tr692: + goto st181; +tr717: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -27622,14 +29133,14 @@ tr692: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st172; -st172: + goto st181; +st181: if ( ++p == pe ) - goto _test_eof172; -case 172: + goto _test_eof181; +case 181: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27647,20 +29158,20 @@ case 172: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr689; - case 32: goto tr689; - case 40: goto tr690; - case 41: goto tr691; - case 3082: goto tr693; - case 3131: goto tr694; - case 3338: goto tr695; - case 3387: goto tr695; - case 3594: goto tr696; - case 3643: goto tr697; + case 9: goto tr714; + case 32: goto tr714; + case 40: goto tr715; + case 41: goto tr716; + case 3082: goto tr718; + case 3131: goto tr719; + case 3338: goto tr720; + case 3387: goto tr720; + case 3594: goto tr721; + case 3643: goto tr722; } if ( 48 <= _widec && _widec <= 57 ) - goto tr692; - goto tr688; + goto tr717; + goto tr713; tr20: { s->r_class = s->default_class; @@ -27668,39 +29179,39 @@ tr20: { s->r_ttl = s->default_ttl; } - goto st173; + goto st182; tr58: { s->r_class = s->default_class; } - goto st173; -tr766: + goto st182; +tr791: { s->r_ttl = s->default_ttl; } - goto st173; -st173: + goto st182; +st182: if ( ++p == pe ) - goto _test_eof173; -case 173: + goto _test_eof182; +case 182: switch( (*p) ) { - case 82: goto st174; - case 114: goto st174; + case 82: goto st183; + case 114: goto st183; } goto tr39; -st174: +st183: if ( ++p == pe ) - goto _test_eof174; -case 174: + goto _test_eof183; +case 183: switch( (*p) ) { - case 73: goto st175; - case 105: goto st175; + case 73: goto st184; + case 105: goto st184; } goto tr39; -st175: +st184: if ( ++p == pe ) - goto _test_eof175; -case 175: + goto _test_eof184; +case 184: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27718,16 +29229,16 @@ case 175: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr700; - case 32: goto tr700; - case 40: goto tr701; - case 41: goto tr702; - case 3082: goto tr703; - case 3131: goto tr704; - case 3338: goto tr705; - case 3387: goto tr705; - case 3594: goto tr706; - case 3643: goto tr707; + case 9: goto tr725; + case 32: goto tr725; + case 40: goto tr726; + case 41: goto tr727; + case 3082: goto tr728; + case 3131: goto tr729; + case 3338: goto tr730; + case 3387: goto tr730; + case 3594: goto tr731; + case 3643: goto tr732; } goto tr63; tr21: @@ -27737,66 +29248,66 @@ tr21: { s->r_ttl = s->default_ttl; } - goto st176; + goto st185; tr59: { s->r_class = s->default_class; } - goto st176; -tr767: + goto st185; +tr792: { s->r_ttl = s->default_ttl; } - goto st176; -st176: + goto st185; +st185: if ( ++p == pe ) - goto _test_eof176; -case 176: + goto _test_eof185; +case 185: switch( (*p) ) { - case 65: goto st177; - case 97: goto st177; + case 65: goto st186; + case 97: goto st186; } goto tr39; -st177: +st186: if ( ++p == pe ) - goto _test_eof177; -case 177: + goto _test_eof186; +case 186: switch( (*p) ) { - case 76: goto st178; - case 108: goto st178; + case 76: goto st187; + case 108: goto st187; } goto tr39; -st178: +st187: if ( ++p == pe ) - goto _test_eof178; -case 178: + goto _test_eof187; +case 187: switch( (*p) ) { - case 76: goto st179; - case 108: goto st179; + case 76: goto st188; + case 108: goto st188; } goto tr39; -st179: +st188: if ( ++p == pe ) - goto _test_eof179; -case 179: + goto _test_eof188; +case 188: switch( (*p) ) { - case 69: goto st180; - case 101: goto st180; + case 69: goto st189; + case 101: goto st189; } goto tr39; -st180: +st189: if ( ++p == pe ) - goto _test_eof180; -case 180: + goto _test_eof189; +case 189: switch( (*p) ) { - case 84: goto st181; - case 116: goto st181; + case 84: goto st190; + case 116: goto st190; } goto tr39; -st181: +st190: if ( ++p == pe ) - goto _test_eof181; -case 181: + goto _test_eof190; +case 190: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27814,16 +29325,16 @@ case 181: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr713; - case 32: goto tr713; - case 40: goto tr714; - case 41: goto tr715; - case 3082: goto tr716; - case 3131: goto tr717; - case 3338: goto tr718; - case 3387: goto tr718; - case 3594: goto tr719; - case 3643: goto tr720; + case 9: goto tr738; + case 32: goto tr738; + case 40: goto tr739; + case 41: goto tr740; + case 3082: goto tr741; + case 3131: goto tr742; + case 3338: goto tr743; + case 3387: goto tr743; + case 3594: goto tr744; + case 3643: goto tr745; } goto tr63; tr22: @@ -27833,66 +29344,66 @@ tr22: { s->r_ttl = s->default_ttl; } - goto st182; + goto st191; tr60: { s->r_class = s->default_class; } - goto st182; -tr768: + goto st191; +tr793: { s->r_ttl = s->default_ttl; } - goto st182; -st182: + goto st191; +st191: if ( ++p == pe ) - goto _test_eof182; -case 182: + goto _test_eof191; +case 191: switch( (*p) ) { - case 79: goto st183; - case 111: goto st183; + case 79: goto st192; + case 111: goto st192; } goto tr39; -st183: +st192: if ( ++p == pe ) - goto _test_eof183; -case 183: + goto _test_eof192; +case 192: switch( (*p) ) { - case 78: goto st184; - case 110: goto st184; + case 78: goto st193; + case 110: goto st193; } goto tr39; -st184: +st193: if ( ++p == pe ) - goto _test_eof184; -case 184: + goto _test_eof193; +case 193: switch( (*p) ) { - case 69: goto st185; - case 101: goto st185; + case 69: goto st194; + case 101: goto st194; } goto tr39; -st185: +st194: if ( ++p == pe ) - goto _test_eof185; -case 185: + goto _test_eof194; +case 194: switch( (*p) ) { - case 77: goto st186; - case 109: goto st186; + case 77: goto st195; + case 109: goto st195; } goto tr39; -st186: +st195: if ( ++p == pe ) - goto _test_eof186; -case 186: + goto _test_eof195; +case 195: switch( (*p) ) { - case 68: goto st187; - case 100: goto st187; + case 68: goto st196; + case 100: goto st196; } goto tr39; -st187: +st196: if ( ++p == pe ) - goto _test_eof187; -case 187: + goto _test_eof196; +case 196: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -27910,58 +29421,58 @@ case 187: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr726; - case 32: goto tr726; - case 40: goto tr727; - case 41: goto tr728; - case 3082: goto tr729; - case 3131: goto tr730; - case 3338: goto tr731; - case 3387: goto tr731; - case 3594: goto tr732; - case 3643: goto tr733; + case 9: goto tr751; + case 32: goto tr751; + case 40: goto tr752; + case 41: goto tr753; + case 3082: goto tr754; + case 3131: goto tr755; + case 3338: goto tr756; + case 3387: goto tr756; + case 3594: goto tr757; + case 3643: goto tr758; } goto tr63; -tr368: +tr393: { s->buffer_length = 0; } - goto st188; -tr781: + goto st197; +tr806: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st188; -tr734: + goto st197; +tr759: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st188; -tr345: + goto st197; +tr370: { s->r_class = KNOT_CLASS_IN; } { s->buffer_length = 0; } - goto st188; -tr794: + goto st197; +tr819: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -27969,17 +29480,17 @@ tr794: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st188; -st188: + goto st197; +st197: if ( ++p == pe ) - goto _test_eof188; -case 188: + goto _test_eof197; +case 197: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -27999,11 +29510,11 @@ case 188: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr735; + goto tr760; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr734; + goto tr759; goto tr39; -tr1057: +tr1082: { s->buffer[s->buffer_length++] = 0; @@ -28013,7 +29524,7 @@ tr1057: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1506; goto _out;} + {p++; cs = 1653; goto _out;} } } } @@ -28023,7 +29534,7 @@ tr1057: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -28036,22 +29547,22 @@ tr1057: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1506; goto _out;} + {p++; cs = 1653; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1506; goto _out;} + p--; {p++; cs = 1653; goto _out;} } } - goto st1506; + goto st1653; tr153: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -28064,7 +29575,7 @@ tr153: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -28077,15 +29588,15 @@ tr153: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1506; goto _out;} + {p++; cs = 1653; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1506; goto _out;} + p--; {p++; cs = 1653; goto _out;} } } - goto st1506; + goto st1653; tr159: { s->line_counter++; @@ -28093,7 +29604,7 @@ tr159: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -28106,19 +29617,19 @@ tr159: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1506; goto _out;} + {p++; cs = 1653; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1506; goto _out;} + p--; {p++; cs = 1653; goto _out;} } } - goto st1506; -st1506: + goto st1653; +st1653: if ( ++p == pe ) - goto _test_eof1506; -case 1506: + goto _test_eof1653; +case 1653: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28132,136 +29643,136 @@ case 1506: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4242; - case 32: goto tr4242; - case 36: goto st199; - case 40: goto tr4243; - case 41: goto tr4244; - case 42: goto tr4224; - case 65: goto tr4245; - case 67: goto tr4246; - case 68: goto tr4247; - case 69: goto tr4248; - case 72: goto tr4249; - case 73: goto tr4250; - case 75: goto tr4251; - case 76: goto tr4252; - case 77: goto tr4253; - case 78: goto tr4254; - case 79: goto tr4255; - case 80: goto tr4256; - case 82: goto tr4257; - case 83: goto tr4258; - case 84: goto tr4259; - case 85: goto tr4260; - case 87: goto tr4261; - case 90: goto tr4262; - case 92: goto tr4224; - case 95: goto tr4224; - case 97: goto tr4245; - case 99: goto tr4246; - case 100: goto tr4247; - case 101: goto tr4248; - case 104: goto tr4249; - case 105: goto tr4250; - case 107: goto tr4251; - case 108: goto tr4252; - case 109: goto tr4253; - case 110: goto tr4254; - case 111: goto tr4255; - case 112: goto tr4256; - case 114: goto tr4257; - case 115: goto tr4258; - case 116: goto tr4259; - case 117: goto tr4260; - case 119: goto tr4261; - case 122: goto tr4262; - case 1802: goto tr4225; - case 1851: goto tr4226; - case 2058: goto tr4263; - case 2107: goto tr4264; + case 9: goto tr4527; + case 32: goto tr4527; + case 36: goto st208; + case 40: goto tr4528; + case 41: goto tr4529; + case 42: goto tr4509; + case 65: goto tr4530; + case 67: goto tr4531; + case 68: goto tr4532; + case 69: goto tr4533; + case 72: goto tr4534; + case 73: goto tr4535; + case 75: goto tr4536; + case 76: goto tr4537; + case 77: goto tr4538; + case 78: goto tr4539; + case 79: goto tr4540; + case 80: goto tr4541; + case 82: goto tr4542; + case 83: goto tr4543; + case 84: goto tr4544; + case 85: goto tr4545; + case 87: goto tr4546; + case 90: goto tr4547; + case 92: goto tr4509; + case 95: goto tr4509; + case 97: goto tr4530; + case 99: goto tr4531; + case 100: goto tr4532; + case 101: goto tr4533; + case 104: goto tr4534; + case 105: goto tr4535; + case 107: goto tr4536; + case 108: goto tr4537; + case 109: goto tr4538; + case 110: goto tr4539; + case 111: goto tr4540; + case 112: goto tr4541; + case 114: goto tr4542; + case 115: goto tr4543; + case 116: goto tr4544; + case 117: goto tr4545; + case 119: goto tr4546; + case 122: goto tr4547; + case 1802: goto tr4510; + case 1851: goto tr4511; + case 2058: goto tr4548; + case 2107: goto tr4549; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4224; + goto tr4509; } else if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4224; + goto tr4509; } else - goto tr4224; - goto tr4241; -tr737: + goto tr4509; + goto tr4526; +tr762: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st189; -tr738: + goto st198; +tr763: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st189; -tr4242: + goto st198; +tr4527: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st189; -tr4243: + goto st198; +tr4528: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st189; -tr4244: + goto st198; +tr4529: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st189; -st189: + goto st198; +st198: if ( ++p == pe ) - goto _test_eof189; -case 189: + goto _test_eof198; +case 198: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28275,10 +29786,10 @@ case 189: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st189; - case 32: goto st189; - case 40: goto tr737; - case 41: goto tr738; + case 9: goto st198; + case 32: goto st198; + case 40: goto tr762; + case 41: goto tr763; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -28317,8 +29828,8 @@ case 189: case 122: goto tr22; case 1802: goto tr23; case 1851: goto tr24; - case 2058: goto tr739; - case 2107: goto tr740; + case 2058: goto tr764; + case 2107: goto tr765; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; @@ -28330,22 +29841,22 @@ tr10: { s->r_ttl = s->default_ttl; } - goto st190; -st190: + goto st199; +st199: if ( ++p == pe ) - goto _test_eof190; -case 190: + goto _test_eof199; +case 199: switch( (*p) ) { - case 78: goto st191; - case 80: goto st77; - case 110: goto st191; - case 112: goto st77; + case 78: goto st200; + case 80: goto st86; + case 110: goto st200; + case 112: goto st86; } goto tr39; -st191: +st200: if ( ++p == pe ) - goto _test_eof191; -case 191: + goto _test_eof200; +case 200: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28359,38 +29870,38 @@ case 191: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr742; - case 32: goto tr742; - case 40: goto tr743; - case 41: goto tr744; - case 2058: goto tr745; - case 2107: goto tr746; + case 9: goto tr767; + case 32: goto tr767; + case 40: goto tr768; + case 41: goto tr769; + case 2058: goto tr770; + case 2107: goto tr771; } goto tr39; -tr748: +tr773: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st192; -tr749: + goto st201; +tr774: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st192; -tr769: + goto st201; +tr794: { s->line_counter++; } - goto st192; -tr796: + goto st201; +tr821: { s->buffer[s->buffer_length++] = 0; @@ -28400,55 +29911,55 @@ tr796: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 192; goto _out;} + {p++; cs = 201; goto _out;} } } } { s->line_counter++; } - goto st192; -tr742: + goto st201; +tr767: { s->r_class = KNOT_CLASS_IN; } - goto st192; -tr743: + goto st201; +tr768: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st192; -tr744: + goto st201; +tr769: { s->r_class = KNOT_CLASS_IN; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st192; -tr745: + goto st201; +tr770: { s->r_class = KNOT_CLASS_IN; } { s->line_counter++; } - goto st192; -st192: + goto st201; +st201: if ( ++p == pe ) - goto _test_eof192; -case 192: + goto _test_eof201; +case 201: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28462,53 +29973,53 @@ case 192: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st192; - case 32: goto st192; - case 40: goto tr748; - case 41: goto tr749; - case 65: goto tr751; - case 67: goto tr752; - case 68: goto tr753; - case 69: goto tr754; - case 72: goto tr755; - case 73: goto tr756; - case 75: goto tr757; - case 76: goto tr758; - case 77: goto tr759; - case 78: goto tr760; - case 79: goto tr761; - case 80: goto tr762; - case 82: goto tr763; - case 83: goto tr764; - case 84: goto tr765; - case 85: goto tr766; - case 87: goto tr767; - case 90: goto tr768; - case 97: goto tr751; - case 99: goto tr752; - case 100: goto tr753; - case 101: goto tr754; - case 104: goto tr755; - case 105: goto tr756; - case 107: goto tr757; - case 108: goto tr758; - case 109: goto tr759; - case 110: goto tr760; - case 111: goto tr761; - case 112: goto tr762; - case 114: goto tr763; - case 115: goto tr764; - case 116: goto tr765; - case 117: goto tr766; - case 119: goto tr767; - case 122: goto tr768; - case 2058: goto tr769; - case 2107: goto tr770; + case 9: goto st201; + case 32: goto st201; + case 40: goto tr773; + case 41: goto tr774; + case 65: goto tr776; + case 67: goto tr777; + case 68: goto tr778; + case 69: goto tr779; + case 72: goto tr780; + case 73: goto tr781; + case 75: goto tr782; + case 76: goto tr783; + case 77: goto tr784; + case 78: goto tr785; + case 79: goto tr786; + case 80: goto tr787; + case 82: goto tr788; + case 83: goto tr789; + case 84: goto tr790; + case 85: goto tr791; + case 87: goto tr792; + case 90: goto tr793; + case 97: goto tr776; + case 99: goto tr777; + case 100: goto tr778; + case 101: goto tr779; + case 104: goto tr780; + case 105: goto tr781; + case 107: goto tr782; + case 108: goto tr783; + case 109: goto tr784; + case 110: goto tr785; + case 111: goto tr786; + case 112: goto tr787; + case 114: goto tr788; + case 115: goto tr789; + case 116: goto tr790; + case 117: goto tr791; + case 119: goto tr792; + case 122: goto tr793; + case 2058: goto tr794; + case 2107: goto tr795; } if ( 48 <= _widec && _widec <= 57 ) - goto tr750; - goto tr686; -tr750: + goto tr775; + goto tr711; +tr775: { s->number64 = 0; } @@ -28523,11 +30034,11 @@ tr750: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st193; -tr774: + goto st202; +tr799: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -28539,14 +30050,14 @@ tr774: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st193; -st193: + goto st202; +st202: if ( ++p == pe ) - goto _test_eof193; -case 193: + goto _test_eof202; +case 202: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28560,66 +30071,66 @@ case 193: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr771; - case 32: goto tr771; - case 40: goto tr772; - case 41: goto tr773; - case 68: goto tr775; - case 72: goto tr776; - case 77: goto tr777; - case 83: goto st194; - case 87: goto tr779; - case 100: goto tr775; - case 104: goto tr776; - case 109: goto tr777; - case 115: goto st194; - case 119: goto tr779; - case 2058: goto tr780; - case 2107: goto tr781; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 68: goto tr800; + case 72: goto tr801; + case 77: goto tr802; + case 83: goto st203; + case 87: goto tr804; + case 100: goto tr800; + case 104: goto tr801; + case 109: goto tr802; + case 115: goto st203; + case 119: goto tr804; + case 2058: goto tr805; + case 2107: goto tr806; } if ( 48 <= _widec && _widec <= 57 ) - goto tr774; + goto tr799; goto tr27; -tr775: +tr800: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st194; -tr776: + goto st203; +tr801: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st194; -tr777: + goto st203; +tr802: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st194; -tr779: + goto st203; +tr804: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st194; -st194: + goto st203; +st203: if ( ++p == pe ) - goto _test_eof194; -case 194: + goto _test_eof203; +case 203: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28633,17 +30144,17 @@ case 194: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr771; - case 32: goto tr771; - case 40: goto tr772; - case 41: goto tr773; - case 2058: goto tr780; - case 2107: goto tr781; + case 9: goto tr796; + case 32: goto tr796; + case 40: goto tr797; + case 41: goto tr798; + case 2058: goto tr805; + case 2107: goto tr806; } if ( 48 <= _widec && _widec <= 57 ) - goto tr782; + goto tr807; goto tr27; -tr783: +tr808: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -28655,11 +30166,11 @@ tr783: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st195; -tr782: + goto st204; +tr807: { s->number64_tmp = s->number64; } @@ -28677,17 +30188,17 @@ tr782: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st195; -tr792: + goto st204; +tr817: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -28707,69 +30218,69 @@ tr792: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st195; -st195: + goto st204; +st204: if ( ++p == pe ) - goto _test_eof195; -case 195: + goto _test_eof204; +case 204: switch( (*p) ) { - case 68: goto tr784; - case 72: goto tr785; - case 77: goto tr786; - case 83: goto st196; - case 87: goto tr788; - case 100: goto tr784; - case 104: goto tr785; - case 109: goto tr786; - case 115: goto st196; - case 119: goto tr788; + case 68: goto tr809; + case 72: goto tr810; + case 77: goto tr811; + case 83: goto st205; + case 87: goto tr813; + case 100: goto tr809; + case 104: goto tr810; + case 109: goto tr811; + case 115: goto st205; + case 119: goto tr813; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr783; + goto tr808; goto tr27; -tr784: +tr809: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st196; -tr785: + goto st205; +tr810: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st196; -tr786: + goto st205; +tr811: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st196; -tr788: + goto st205; +tr813: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st196; -st196: + goto st205; +st205: if ( ++p == pe ) - goto _test_eof196; -case 196: + goto _test_eof205; +case 205: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -28783,40 +30294,40 @@ case 196: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr789; - case 32: goto tr789; - case 40: goto tr790; - case 41: goto tr791; - case 2058: goto tr793; - case 2107: goto tr794; + case 9: goto tr814; + case 32: goto tr814; + case 40: goto tr815; + case 41: goto tr816; + case 2058: goto tr818; + case 2107: goto tr819; } if ( 48 <= _widec && _widec <= 57 ) - goto tr792; + goto tr817; goto tr27; -tr770: +tr795: { s->buffer_length = 0; } - goto st197; -tr795: + goto st206; +tr820: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st197; -tr746: + goto st206; +tr771: { s->r_class = KNOT_CLASS_IN; } { s->buffer_length = 0; } - goto st197; -st197: + goto st206; +st206: if ( ++p == pe ) - goto _test_eof197; -case 197: + goto _test_eof206; +case 206: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -28836,16 +30347,16 @@ case 197: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr796; + goto tr821; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr795; + goto tr820; goto tr39; tr24: { s->buffer_length = 0; } - goto st198; -tr4226: + goto st207; +tr4511: { s->buffer[0] = 0; s->buffer_length = 0; @@ -28853,15 +30364,15 @@ tr4226: { s->buffer_length = 0; } - goto st198; -tr797: + goto st207; +tr822: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st198; -tr4292: + goto st207; +tr4577: { NOERR; } @@ -28872,20 +30383,20 @@ tr4292: { s->buffer_length = 0; } - goto st198; -st198: + goto st207; +st207: if ( ++p == pe ) - goto _test_eof198; -case 198: + goto _test_eof207; +case 207: if ( (*p) == 10 ) - goto tr798; - goto tr797; -tr739: + goto tr823; + goto tr822; +tr764: { s->line_counter++; } - goto st1507; -tr1055: + goto st1654; +tr1080: { s->buffer[s->buffer_length++] = 0; @@ -28895,15 +30406,15 @@ tr1055: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1507; goto _out;} + {p++; cs = 1654; goto _out;} } } } { s->line_counter++; } - goto st1507; -tr933: + goto st1654; +tr958: { s->buffer[s->buffer_length++] = 0; @@ -28913,7 +30424,7 @@ tr933: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1507; goto _out;} + {p++; cs = 1654; goto _out;} } } } @@ -28923,7 +30434,7 @@ tr933: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -28936,23 +30447,23 @@ tr933: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1507; goto _out;} + {p++; cs = 1654; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1507; goto _out;} + p--; {p++; cs = 1654; goto _out;} } } - goto st1507; -tr930: + goto st1654; +tr955: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -28965,16 +30476,16 @@ tr930: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1507; goto _out;} + {p++; cs = 1654; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1507; goto _out;} + p--; {p++; cs = 1654; goto _out;} } } - goto st1507; -tr925: + goto st1654; +tr950: { s->r_owner_length = s->dname_tmp_length; } @@ -28986,7 +30497,7 @@ tr925: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -28996,7 +30507,7 @@ tr925: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -29009,34 +30520,34 @@ tr925: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1507; goto _out;} + {p++; cs = 1654; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1507; goto _out;} + p--; {p++; cs = 1654; goto _out;} } } - goto st1507; -tr4263: + goto st1654; +tr4548: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1507; -st1507: + goto st1654; +st1654: if ( ++p == pe ) - goto _test_eof1507; -case 1507: + goto _test_eof1654; +case 1654: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29050,171 +30561,171 @@ case 1507: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4242; - case 32: goto tr4242; - case 36: goto st199; - case 40: goto tr4243; - case 41: goto tr4244; - case 42: goto tr4224; - case 65: goto tr4267; - case 67: goto tr4268; - case 68: goto tr4269; - case 69: goto tr4270; - case 72: goto tr4271; - case 73: goto tr4272; - case 75: goto tr4273; - case 76: goto tr4274; - case 77: goto tr4275; - case 78: goto tr4276; - case 79: goto tr4277; - case 80: goto tr4278; - case 82: goto tr4279; - case 83: goto tr4280; - case 84: goto tr4281; - case 85: goto tr4282; - case 87: goto tr4283; - case 90: goto tr4284; - case 92: goto tr4224; - case 95: goto tr4224; - case 97: goto tr4267; - case 99: goto tr4268; - case 100: goto tr4269; - case 101: goto tr4270; - case 104: goto tr4271; - case 105: goto tr4272; - case 107: goto tr4273; - case 108: goto tr4274; - case 109: goto tr4275; - case 110: goto tr4276; - case 111: goto tr4277; - case 112: goto tr4278; - case 114: goto tr4279; - case 115: goto tr4280; - case 116: goto tr4281; - case 117: goto tr4282; - case 119: goto tr4283; - case 122: goto tr4284; - case 1802: goto tr4225; - case 1851: goto tr4226; - case 2058: goto tr4263; - case 2107: goto tr4264; + case 9: goto tr4527; + case 32: goto tr4527; + case 36: goto st208; + case 40: goto tr4528; + case 41: goto tr4529; + case 42: goto tr4509; + case 65: goto tr4552; + case 67: goto tr4553; + case 68: goto tr4554; + case 69: goto tr4555; + case 72: goto tr4556; + case 73: goto tr4557; + case 75: goto tr4558; + case 76: goto tr4559; + case 77: goto tr4560; + case 78: goto tr4561; + case 79: goto tr4562; + case 80: goto tr4563; + case 82: goto tr4564; + case 83: goto tr4565; + case 84: goto tr4566; + case 85: goto tr4567; + case 87: goto tr4568; + case 90: goto tr4569; + case 92: goto tr4509; + case 95: goto tr4509; + case 97: goto tr4552; + case 99: goto tr4553; + case 100: goto tr4554; + case 101: goto tr4555; + case 104: goto tr4556; + case 105: goto tr4557; + case 107: goto tr4558; + case 108: goto tr4559; + case 109: goto tr4560; + case 110: goto tr4561; + case 111: goto tr4562; + case 112: goto tr4563; + case 114: goto tr4564; + case 115: goto tr4565; + case 116: goto tr4566; + case 117: goto tr4567; + case 119: goto tr4568; + case 122: goto tr4569; + case 1802: goto tr4510; + case 1851: goto tr4511; + case 2058: goto tr4548; + case 2107: goto tr4549; } if ( _widec < 48 ) { if ( 45 <= _widec && _widec <= 47 ) - goto tr4224; + goto tr4509; } else if ( _widec > 57 ) { if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4224; + goto tr4509; } else if ( _widec >= 64 ) - goto tr4224; + goto tr4509; } else - goto tr4266; - goto tr4265; -tr4287: + goto tr4551; + goto tr4550; +tr4572: { NOERR; } - goto st199; -st199: + goto st208; +st208: if ( ++p == pe ) - goto _test_eof199; -case 199: + goto _test_eof208; +case 208: switch( (*p) ) { - case 73: goto tr800; - case 79: goto tr801; - case 84: goto tr802; - case 105: goto tr800; - case 111: goto tr801; - case 116: goto tr802; + case 73: goto tr825; + case 79: goto tr826; + case 84: goto tr827; + case 105: goto tr825; + case 111: goto tr826; + case 116: goto tr827; } - goto tr799; -tr800: + goto tr824; +tr825: { ERR(ZS_OK); } - goto st200; -st200: + goto st209; +st209: if ( ++p == pe ) - goto _test_eof200; -case 200: + goto _test_eof209; +case 209: switch( (*p) ) { - case 78: goto st201; - case 110: goto st201; + case 78: goto st210; + case 110: goto st210; } - goto tr799; -st201: + goto tr824; +st210: if ( ++p == pe ) - goto _test_eof201; -case 201: + goto _test_eof210; +case 210: switch( (*p) ) { - case 67: goto st202; - case 99: goto st202; + case 67: goto st211; + case 99: goto st211; } - goto tr799; -st202: + goto tr824; +st211: if ( ++p == pe ) - goto _test_eof202; -case 202: + goto _test_eof211; +case 211: switch( (*p) ) { - case 76: goto st203; - case 108: goto st203; + case 76: goto st212; + case 108: goto st212; } - goto tr799; -st203: + goto tr824; +st212: if ( ++p == pe ) - goto _test_eof203; -case 203: + goto _test_eof212; +case 212: switch( (*p) ) { - case 85: goto st204; - case 117: goto st204; + case 85: goto st213; + case 117: goto st213; } - goto tr799; -st204: + goto tr824; +st213: if ( ++p == pe ) - goto _test_eof204; -case 204: + goto _test_eof213; +case 213: switch( (*p) ) { - case 68: goto st205; - case 100: goto st205; + case 68: goto st214; + case 100: goto st214; } - goto tr799; -st205: + goto tr824; +st214: if ( ++p == pe ) - goto _test_eof205; -case 205: + goto _test_eof214; +case 214: switch( (*p) ) { - case 69: goto st206; - case 101: goto st206; + case 69: goto st215; + case 101: goto st215; } - goto tr799; -st206: + goto tr824; +st215: if ( ++p == pe ) - goto _test_eof206; -case 206: + goto _test_eof215; +case 215: switch( (*p) ) { - case 32: goto tr809; - case 59: goto tr809; + case 32: goto tr834; + case 59: goto tr834; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr809; + goto tr834; } else if ( (*p) >= 9 ) - goto tr809; - goto tr799; -tr809: - { p--; {stack[top++] = 1508;goto st374;} } - goto st1508; -tr911: - { p--; {stack[top++] = 1508;goto st362;} } - goto st1508; -tr914: - { p--; {stack[top++] = 1508;goto st353;} } - goto st1508; -st1508: + goto tr834; + goto tr824; +tr834: + { p--; {stack[top++] = 1655;goto st383;} } + goto st1655; +tr936: + { p--; {stack[top++] = 1655;goto st371;} } + goto st1655; +tr939: + { p--; {stack[top++] = 1655;goto st362;} } + goto st1655; +st1655: if ( ++p == pe ) - goto _test_eof1508; -case 1508: + goto _test_eof1655; +case 1655: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29228,36 +30739,36 @@ case 1508: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4286; - case 32: goto tr4286; - case 36: goto tr4287; - case 40: goto tr4288; - case 41: goto tr4289; - case 42: goto tr4290; - case 92: goto tr4290; - case 95: goto tr4290; - case 1802: goto tr4291; - case 1851: goto tr4292; - case 2058: goto tr4293; - case 2107: goto tr4294; + case 9: goto tr4571; + case 32: goto tr4571; + case 36: goto tr4572; + case 40: goto tr4573; + case 41: goto tr4574; + case 42: goto tr4575; + case 92: goto tr4575; + case 95: goto tr4575; + case 1802: goto tr4576; + case 1851: goto tr4577; + case 2058: goto tr4578; + case 2107: goto tr4579; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4290; + goto tr4575; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4290; + goto tr4575; } else - goto tr4290; - goto tr4285; -tr4224: + goto tr4575; + goto tr4570; +tr4509: { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 207;goto st331;} } - goto st207; -tr4290: + { p--; {stack[top++] = 216;goto st340;} } + goto st216; +tr4575: { NOERR; } @@ -29265,12 +30776,12 @@ tr4290: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 207;goto st331;} } - goto st207; -st207: + { p--; {stack[top++] = 216;goto st340;} } + goto st216; +st216: if ( ++p == pe ) - goto _test_eof207; -case 207: + goto _test_eof216; +case 216: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29284,38 +30795,38 @@ case 207: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr810; -tr817: + goto tr835; +tr842: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st208; -tr818: + goto st217; +tr843: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st208; -tr819: + goto st217; +tr844: { s->line_counter++; } - goto st208; -tr823: + goto st217; +tr848: { s->buffer[s->buffer_length++] = 0; @@ -29325,55 +30836,55 @@ tr823: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 208; goto _out;} + {p++; cs = 217; goto _out;} } } } { s->line_counter++; } - goto st208; -tr811: + goto st217; +tr836: { s->r_owner_length = s->dname_tmp_length; } - goto st208; -tr812: + goto st217; +tr837: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st208; -tr813: + goto st217; +tr838: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st208; -tr814: + goto st217; +tr839: { s->r_owner_length = s->dname_tmp_length; } { s->line_counter++; } - goto st208; -st208: + goto st217; +st217: if ( ++p == pe ) - goto _test_eof208; -case 208: + goto _test_eof217; +case 217: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29387,10 +30898,10 @@ case 208: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st208; - case 32: goto st208; - case 40: goto tr817; - case 41: goto tr818; + case 9: goto st217; + case 32: goto st217; + case 40: goto tr842; + case 41: goto tr843; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -29427,36 +30938,36 @@ case 208: case 117: goto tr20; case 119: goto tr21; case 122: goto tr22; - case 2058: goto tr819; - case 2107: goto tr820; + case 2058: goto tr844; + case 2107: goto tr845; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; - goto tr686; -tr820: + goto tr711; +tr845: { s->buffer_length = 0; } - goto st209; -tr821: + goto st218; +tr846: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st209; -tr815: + goto st218; +tr840: { s->r_owner_length = s->dname_tmp_length; } { s->buffer_length = 0; } - goto st209; -st209: + goto st218; +st218: if ( ++p == pe ) - goto _test_eof209; -case 209: + goto _test_eof218; +case 218: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -29476,16 +30987,16 @@ case 209: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr823; + goto tr848; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr821; + goto tr846; goto st0; tr25: { s->line_counter++; } - goto st1509; -tr1053: + goto st1656; +tr1078: { s->buffer[s->buffer_length++] = 0; @@ -29495,15 +31006,15 @@ tr1053: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1509; goto _out;} + {p++; cs = 1656; goto _out;} } } } { s->line_counter++; } - goto st1509; -tr888: + goto st1656; +tr913: { s->buffer[s->buffer_length++] = 0; @@ -29513,7 +31024,7 @@ tr888: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1509; goto _out;} + {p++; cs = 1656; goto _out;} } } } @@ -29523,7 +31034,7 @@ tr888: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -29536,23 +31047,23 @@ tr888: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1509; goto _out;} + {p++; cs = 1656; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1509; goto _out;} + p--; {p++; cs = 1656; goto _out;} } } - goto st1509; -tr885: + goto st1656; +tr910: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -29565,16 +31076,16 @@ tr885: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1509; goto _out;} + {p++; cs = 1656; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1509; goto _out;} + p--; {p++; cs = 1656; goto _out;} } } - goto st1509; -tr919: + goto st1656; +tr944: { s->r_owner_length = s->dname_tmp_length; } @@ -29588,7 +31099,7 @@ tr919: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -29601,16 +31112,16 @@ tr919: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1509; goto _out;} + {p++; cs = 1656; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1509; goto _out;} + p--; {p++; cs = 1656; goto _out;} } } - goto st1509; -tr956: + goto st1656; +tr981: { s->line_counter++; } @@ -29621,7 +31132,7 @@ tr956: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -29634,16 +31145,16 @@ tr956: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1509; goto _out;} + {p++; cs = 1656; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1509; goto _out;} + p--; {p++; cs = 1656; goto _out;} } } - goto st1509; -tr959: + goto st1656; +tr984: { s->buffer[s->buffer_length++] = 0; @@ -29653,7 +31164,7 @@ tr959: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1509; goto _out;} + {p++; cs = 1656; goto _out;} } } } @@ -29667,7 +31178,7 @@ tr959: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -29680,20 +31191,20 @@ tr959: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1509; goto _out;} + {p++; cs = 1656; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1509; goto _out;} + p--; {p++; cs = 1656; goto _out;} } } - goto st1509; -tr4227: + goto st1656; +tr4512: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -29703,30 +31214,30 @@ tr4227: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1509; -tr4297: + goto st1656; +tr4582: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1509; -tr4293: + goto st1656; +tr4578: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -29736,8 +31247,8 @@ tr4293: s->buffer[0] = 0; s->buffer_length = 0; } - goto st1509; -tr4302: + goto st1656; +tr4587: { s->buffer[0] = 0; s->buffer_length = 0; @@ -29745,7 +31256,7 @@ tr4302: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -29758,12 +31269,12 @@ tr4302: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1509; goto _out;} + {p++; cs = 1656; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1509; goto _out;} + p--; {p++; cs = 1656; goto _out;} } } { @@ -29772,11 +31283,11 @@ tr4302: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1509; -tr4329: + goto st1656; +tr4614: { s->line_counter++; } @@ -29787,7 +31298,7 @@ tr4329: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -29800,25 +31311,25 @@ tr4329: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1509; goto _out;} + {p++; cs = 1656; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1509; goto _out;} + p--; {p++; cs = 1656; goto _out;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1509; -st1509: + goto st1656; +st1656: if ( ++p == pe ) - goto _test_eof1509; -case 1509: + goto _test_eof1656; +case 1656: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29832,68 +31343,68 @@ case 1509: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4220; - case 32: goto tr4220; - case 36: goto st199; - case 40: goto tr4295; - case 41: goto tr4296; - case 42: goto tr4224; - case 65: goto tr4267; - case 67: goto tr4268; - case 68: goto tr4269; - case 69: goto tr4270; - case 72: goto tr4271; - case 73: goto tr4272; - case 75: goto tr4273; - case 76: goto tr4274; - case 77: goto tr4275; - case 78: goto tr4276; - case 79: goto tr4277; - case 80: goto tr4278; - case 82: goto tr4279; - case 83: goto tr4280; - case 84: goto tr4281; - case 85: goto tr4282; - case 87: goto tr4283; - case 90: goto tr4284; - case 92: goto tr4224; - case 95: goto tr4224; - case 97: goto tr4267; - case 99: goto tr4268; - case 100: goto tr4269; - case 101: goto tr4270; - case 104: goto tr4271; - case 105: goto tr4272; - case 107: goto tr4273; - case 108: goto tr4274; - case 109: goto tr4275; - case 110: goto tr4276; - case 111: goto tr4277; - case 112: goto tr4278; - case 114: goto tr4279; - case 115: goto tr4280; - case 116: goto tr4281; - case 117: goto tr4282; - case 119: goto tr4283; - case 122: goto tr4284; - case 1802: goto tr4225; - case 1851: goto tr4226; - case 2058: goto tr4297; - case 2107: goto tr4298; + case 9: goto tr4505; + case 32: goto tr4505; + case 36: goto st208; + case 40: goto tr4580; + case 41: goto tr4581; + case 42: goto tr4509; + case 65: goto tr4552; + case 67: goto tr4553; + case 68: goto tr4554; + case 69: goto tr4555; + case 72: goto tr4556; + case 73: goto tr4557; + case 75: goto tr4558; + case 76: goto tr4559; + case 77: goto tr4560; + case 78: goto tr4561; + case 79: goto tr4562; + case 80: goto tr4563; + case 82: goto tr4564; + case 83: goto tr4565; + case 84: goto tr4566; + case 85: goto tr4567; + case 87: goto tr4568; + case 90: goto tr4569; + case 92: goto tr4509; + case 95: goto tr4509; + case 97: goto tr4552; + case 99: goto tr4553; + case 100: goto tr4554; + case 101: goto tr4555; + case 104: goto tr4556; + case 105: goto tr4557; + case 107: goto tr4558; + case 108: goto tr4559; + case 109: goto tr4560; + case 110: goto tr4561; + case 111: goto tr4562; + case 112: goto tr4563; + case 114: goto tr4564; + case 115: goto tr4565; + case 116: goto tr4566; + case 117: goto tr4567; + case 119: goto tr4568; + case 122: goto tr4569; + case 1802: goto tr4510; + case 1851: goto tr4511; + case 2058: goto tr4582; + case 2107: goto tr4583; } if ( _widec < 48 ) { if ( 45 <= _widec && _widec <= 47 ) - goto tr4224; + goto tr4509; } else if ( _widec > 57 ) { if ( _widec > 89 ) { if ( 98 <= _widec && _widec <= 121 ) - goto tr4224; + goto tr4509; } else if ( _widec >= 64 ) - goto tr4224; + goto tr4509; } else - goto tr4266; - goto tr4265; -tr4266: + goto tr4551; + goto tr4550; +tr4551: { s->number64 = 0; } @@ -29908,19 +31419,19 @@ tr4266: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 210;goto st331;} } - goto st210; -st210: + { p--; {stack[top++] = 219;goto st340;} } + goto st219; +st219: if ( ++p == pe ) - goto _test_eof210; -case 210: + goto _test_eof219; +case 219: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -29934,50 +31445,50 @@ case 210: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr825; - case 32: goto tr825; - case 40: goto tr826; - case 41: goto tr827; + case 9: goto tr850; + case 32: goto tr850; + case 40: goto tr851; + case 41: goto tr852; case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st213; + case 83: goto st222; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st213; + case 115: goto st222; case 119: goto tr36; - case 2058: goto tr828; - case 2107: goto tr829; + case 2058: goto tr853; + case 2107: goto tr854; } if ( 48 <= _widec && _widec <= 57 ) goto tr31; - goto tr824; -tr831: + goto tr849; +tr856: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st211; -tr832: + goto st220; +tr857: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st211; -tr833: + goto st220; +tr858: { s->line_counter++; } - goto st211; -tr836: + goto st220; +tr861: { s->buffer[s->buffer_length++] = 0; @@ -29987,15 +31498,15 @@ tr836: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 211; goto _out;} + {p++; cs = 220; goto _out;} } } } { s->line_counter++; } - goto st211; -tr825: + goto st220; +tr850: { s->r_owner_length = s->dname_tmp_length; } @@ -30004,18 +31515,18 @@ tr825: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st211; -tr826: + goto st220; +tr851: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -30024,18 +31535,18 @@ tr826: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st211; -tr827: + goto st220; +tr852: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -30044,11 +31555,11 @@ tr827: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st211; -tr828: + goto st220; +tr853: { s->r_owner_length = s->dname_tmp_length; } @@ -30060,14 +31571,14 @@ tr828: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st211; -st211: + goto st220; +st220: if ( ++p == pe ) - goto _test_eof211; -case 211: + goto _test_eof220; +case 220: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30081,10 +31592,10 @@ case 211: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st211; - case 32: goto st211; - case 40: goto tr831; - case 41: goto tr832; + case 9: goto st220; + case 32: goto st220; + case 40: goto tr856; + case 41: goto tr857; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -30121,25 +31632,25 @@ case 211: case 117: goto tr20; case 119: goto tr21; case 122: goto tr22; - case 2058: goto tr833; - case 2107: goto tr834; + case 2058: goto tr858; + case 2107: goto tr859; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; - goto tr686; -tr834: + goto tr711; +tr859: { s->buffer_length = 0; } - goto st212; -tr835: + goto st221; +tr860: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st212; -tr829: + goto st221; +tr854: { s->r_owner_length = s->dname_tmp_length; } @@ -30151,14 +31662,14 @@ tr829: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st212; -st212: + goto st221; +st221: if ( ++p == pe ) - goto _test_eof212; -case 212: + goto _test_eof221; +case 221: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -30178,50 +31689,50 @@ case 212: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr836; + goto tr861; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr835; + goto tr860; goto tr39; tr32: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st213; + goto st222; tr33: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st213; + goto st222; tr34: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st213; + goto st222; tr36: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st213; -st213: + goto st222; +st222: if ( ++p == pe ) - goto _test_eof213; -case 213: + goto _test_eof222; +case 222: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30243,9 +31754,9 @@ case 213: case 2107: goto tr38; } if ( 48 <= _widec && _widec <= 57 ) - goto tr837; + goto tr862; goto tr27; -tr838: +tr863: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -30257,11 +31768,11 @@ tr838: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st214; -tr837: + goto st223; +tr862: { s->number64_tmp = s->number64; } @@ -30279,17 +31790,17 @@ tr837: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st214; -tr847: + goto st223; +tr872: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -30309,69 +31820,69 @@ tr847: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st214; -st214: + goto st223; +st223: if ( ++p == pe ) - goto _test_eof214; -case 214: + goto _test_eof223; +case 223: switch( (*p) ) { - case 68: goto tr839; - case 72: goto tr840; - case 77: goto tr841; - case 83: goto st215; - case 87: goto tr843; - case 100: goto tr839; - case 104: goto tr840; - case 109: goto tr841; - case 115: goto st215; - case 119: goto tr843; + case 68: goto tr864; + case 72: goto tr865; + case 77: goto tr866; + case 83: goto st224; + case 87: goto tr868; + case 100: goto tr864; + case 104: goto tr865; + case 109: goto tr866; + case 115: goto st224; + case 119: goto tr868; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr838; + goto tr863; goto tr27; -tr839: +tr864: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st215; -tr840: + goto st224; +tr865: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st215; -tr841: + goto st224; +tr866: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st215; -tr843: + goto st224; +tr868: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st215; -st215: + goto st224; +st224: if ( ++p == pe ) - goto _test_eof215; -case 215: + goto _test_eof224; +case 224: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30385,48 +31896,48 @@ case 215: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr844; - case 32: goto tr844; - case 40: goto tr845; - case 41: goto tr846; - case 2058: goto tr848; - case 2107: goto tr849; + case 9: goto tr869; + case 32: goto tr869; + case 40: goto tr870; + case 41: goto tr871; + case 2058: goto tr873; + case 2107: goto tr874; } if ( 48 <= _widec && _widec <= 57 ) - goto tr847; + goto tr872; goto tr27; tr62: { s->buffer_length = 0; } - goto st216; + goto st225; tr38: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st216; -tr850: + goto st225; +tr875: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st216; -tr849: + goto st225; +tr874: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -30434,17 +31945,17 @@ tr849: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st216; -st216: + goto st225; +st225: if ( ++p == pe ) - goto _test_eof216; -case 216: + goto _test_eof225; +case 225: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -30464,11 +31975,11 @@ case 216: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr851; + goto tr876; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr850; + goto tr875; goto tr39; -tr4245: +tr4530: { s->r_class = s->default_class; } @@ -30476,9 +31987,9 @@ tr4245: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 217;goto st331;} } - goto st217; -tr4267: + { p--; {stack[top++] = 226;goto st340;} } + goto st226; +tr4552: { s->r_class = s->default_class; } @@ -30489,12 +32000,12 @@ tr4267: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 217;goto st331;} } - goto st217; -st217: + { p--; {stack[top++] = 226;goto st340;} } + goto st226; +st226: if ( ++p == pe ) - goto _test_eof217; -case 217: + goto _test_eof226; +case 226: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30512,50 +32023,50 @@ case 217: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr853; - case 32: goto tr853; - case 40: goto tr854; - case 41: goto tr855; - case 65: goto st283; - case 70: goto st286; - case 76: goto st290; - case 80: goto st294; - case 97: goto st283; - case 102: goto st286; - case 108: goto st290; - case 112: goto st294; - case 3082: goto tr856; - case 3131: goto tr857; + case 9: goto tr878; + case 32: goto tr878; + case 40: goto tr879; + case 41: goto tr880; + case 65: goto st292; + case 70: goto st295; + case 76: goto st299; + case 80: goto st303; + case 97: goto st292; + case 102: goto st295; + case 108: goto st299; + case 112: goto st303; + case 3082: goto tr881; + case 3131: goto tr882; case 3338: goto tr73; case 3387: goto tr73; - case 3594: goto tr858; - case 3643: goto tr859; + case 3594: goto tr883; + case 3643: goto tr884; } - goto tr852; -tr861: + goto tr877; +tr886: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st218; -tr862: + goto st227; +tr887: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st218; -tr863: + goto st227; +tr888: { s->line_counter++; } - goto st218; -tr1039: + goto st227; +tr1064: { s->buffer[s->buffer_length++] = 0; @@ -30565,15 +32076,15 @@ tr1039: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 218; goto _out;} + {p++; cs = 227; goto _out;} } } } { s->line_counter++; } - goto st218; -tr853: + goto st227; +tr878: { s->r_owner_length = s->dname_tmp_length; } @@ -30581,15 +32092,15 @@ tr853: { rdata_tail = s->r_data; } - goto st218; -tr854: + goto st227; +tr879: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -30597,15 +32108,15 @@ tr854: { rdata_tail = s->r_data; } - goto st218; -tr855: + goto st227; +tr880: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -30613,8 +32124,8 @@ tr855: { rdata_tail = s->r_data; } - goto st218; -tr856: + goto st227; +tr881: { s->r_owner_length = s->dname_tmp_length; } @@ -30625,11 +32136,11 @@ tr856: { rdata_tail = s->r_data; } - goto st218; -st218: + goto st227; +st227: if ( ++p == pe ) - goto _test_eof218; -case 218: + goto _test_eof227; +case 227: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30647,10 +32158,10 @@ case 218: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st218; - case 32: goto st218; - case 40: goto tr861; - case 41: goto tr862; + case 9: goto st227; + case 32: goto st227; + case 40: goto tr886; + case 41: goto tr887; case 58: goto tr76; case 65: goto tr125; case 67: goto tr126; @@ -30689,12 +32200,12 @@ case 218: case 117: goto tr140; case 119: goto tr141; case 122: goto tr142; - case 3082: goto tr863; - case 3131: goto tr864; + case 3082: goto tr888; + case 3131: goto tr889; case 3338: goto tr76; case 3387: goto tr76; - case 3594: goto tr865; - case 3643: goto tr866; + case 3594: goto tr890; + case 3643: goto tr891; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -30707,7 +32218,7 @@ case 218: goto tr124; } else goto tr76; - goto tr688; + goto tr713; tr125: { s->r_class = s->default_class; @@ -30720,100 +32231,103 @@ tr125: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 219;goto st1101;} + {stack[top++] = 228;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 219;goto st1103;} + {stack[top++] = 228;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 219;goto st1105;} + {stack[top++] = 228;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 219;goto st1137;} + {stack[top++] = 228;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 219;goto st1142;} + {stack[top++] = 228;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 219;goto st1147;} + {stack[top++] = 228;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 219;goto st1152;} + {stack[top++] = 228;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 219;goto st1156;} + {stack[top++] = 228;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 219;goto st1158;} + {stack[top++] = 228;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 219;goto st1213;} + {stack[top++] = 228;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 219;goto st1224;} + {stack[top++] = 228;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 219;goto st1241;} + {stack[top++] = 228;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 219;goto st1252;} + {stack[top++] = 228;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 219;goto st1263;} + {stack[top++] = 228;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 219;goto st1276;} + {stack[top++] = 228;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 219;goto st1286;} + {stack[top++] = 228;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 219;goto st1325;} + {stack[top++] = 228;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 219;goto st1351;} + {stack[top++] = 228;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 219;goto st1354;} + {stack[top++] = 228;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 219;goto st1365;} + {stack[top++] = 228;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 219;goto st1367;} + {stack[top++] = 228;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 219;goto st1396;} + {stack[top++] = 228;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 219;goto st1409;} + {stack[top++] = 228;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 219;goto st1422;} + {stack[top++] = 228;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 219;goto st1428;} + {stack[top++] = 228;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 219;goto st1446;} + {stack[top++] = 228;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 219;goto st1441;} + {stack[top++] = 228;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 219;goto st1459;} + {stack[top++] = 228;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 219;goto st1465;} + {stack[top++] = 228;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 219;goto st1471;} + {stack[top++] = 228;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 219;goto st1479;} + {stack[top++] = 228;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 219;goto st1487;} + {stack[top++] = 228;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 219;goto st1493;} + {stack[top++] = 228;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 228;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st219; -st219: + goto st228; +st228: if ( ++p == pe ) - goto _test_eof219; -case 219: + goto _test_eof228; +case 228: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30831,47 +32345,47 @@ case 219: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr868; - case 32: goto tr868; - case 40: goto tr869; - case 41: goto tr870; - case 65: goto st283; - case 70: goto st286; - case 76: goto st290; - case 80: goto st294; - case 97: goto st283; - case 102: goto st286; - case 108: goto st290; - case 112: goto st294; + case 9: goto tr893; + case 32: goto tr893; + case 40: goto tr894; + case 41: goto tr895; + case 65: goto st292; + case 70: goto st295; + case 76: goto st299; + case 80: goto st303; + case 97: goto st292; + case 102: goto st295; + case 108: goto st299; + case 112: goto st303; case 2826: goto tr90; case 2875: goto tr91; - case 3082: goto tr871; - case 3131: goto tr872; - case 3338: goto tr873; - case 3387: goto tr874; - case 3594: goto tr875; - case 3643: goto tr876; - } - goto tr867; -tr878: + case 3082: goto tr896; + case 3131: goto tr897; + case 3338: goto tr898; + case 3387: goto tr899; + case 3594: goto tr900; + case 3643: goto tr901; + } + goto tr892; +tr903: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st220; -tr879: + goto st229; +tr904: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st220; -tr868: + goto st229; +tr893: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -30880,8 +32394,8 @@ tr868: s->buffer[0] = 0; s->buffer_length = 0; } - goto st220; -tr869: + goto st229; +tr894: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -30889,7 +32403,7 @@ tr869: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -30897,8 +32411,8 @@ tr869: s->buffer[0] = 0; s->buffer_length = 0; } - goto st220; -tr870: + goto st229; +tr895: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -30906,7 +32420,7 @@ tr870: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -30914,11 +32428,11 @@ tr870: s->buffer[0] = 0; s->buffer_length = 0; } - goto st220; -st220: + goto st229; +st229: if ( ++p == pe ) - goto _test_eof220; -case 220: + goto _test_eof229; +case 229: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -30936,18 +32450,18 @@ case 220: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st220; - case 32: goto st220; - case 40: goto tr878; - case 41: goto tr879; + case 9: goto st229; + case 32: goto st229; + case 40: goto tr903; + case 41: goto tr904; case 92: goto tr81; case 2826: goto tr96; case 2875: goto tr97; - case 3082: goto tr880; + case 3082: goto tr905; case 3131: goto tr114; case 3338: goto tr115; case 3387: goto tr116; - case 3594: goto tr881; + case 3594: goto tr906; case 3643: goto tr117; } if ( _widec < 11 ) { @@ -30965,93 +32479,96 @@ tr108: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1510;goto st1101;} + {stack[top++] = 1657;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 1510;goto st1103;} + {stack[top++] = 1657;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1510;goto st1105;} + {stack[top++] = 1657;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1510;goto st1137;} + {stack[top++] = 1657;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1510;goto st1142;} + {stack[top++] = 1657;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1510;goto st1147;} + {stack[top++] = 1657;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1510;goto st1152;} + {stack[top++] = 1657;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1510;goto st1156;} + {stack[top++] = 1657;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1510;goto st1158;} + {stack[top++] = 1657;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1510;goto st1213;} + {stack[top++] = 1657;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1510;goto st1224;} + {stack[top++] = 1657;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1510;goto st1241;} + {stack[top++] = 1657;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 1510;goto st1252;} + {stack[top++] = 1657;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1510;goto st1263;} + {stack[top++] = 1657;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1510;goto st1276;} + {stack[top++] = 1657;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1510;goto st1286;} + {stack[top++] = 1657;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1510;goto st1325;} + {stack[top++] = 1657;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1510;goto st1351;} + {stack[top++] = 1657;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1510;goto st1354;} + {stack[top++] = 1657;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1510;goto st1365;} + {stack[top++] = 1657;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1510;goto st1367;} + {stack[top++] = 1657;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1510;goto st1396;} + {stack[top++] = 1657;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1510;goto st1409;} + {stack[top++] = 1657;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1510;goto st1422;} + {stack[top++] = 1657;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1510;goto st1428;} + {stack[top++] = 1657;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1510;goto st1446;} + {stack[top++] = 1657;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 1510;goto st1441;} + {stack[top++] = 1657;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1510;goto st1459;} + {stack[top++] = 1657;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1510;goto st1465;} + {stack[top++] = 1657;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 1510;goto st1471;} + {stack[top++] = 1657;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1510;goto st1479;} + {stack[top++] = 1657;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1510;goto st1487;} + {stack[top++] = 1657;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1510;goto st1493;} + {stack[top++] = 1657;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 1657;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { @@ -31061,7 +32578,7 @@ tr108: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -31074,117 +32591,120 @@ tr108: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1510; goto _out;} + {p++; cs = 1657; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1510; goto _out;} + p--; {p++; cs = 1657; goto _out;} } } { s->line_counter++; } - goto st1510; + goto st1657; tr115: { s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1510;goto st1101;} + {stack[top++] = 1657;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 1510;goto st1103;} + {stack[top++] = 1657;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1510;goto st1105;} + {stack[top++] = 1657;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1510;goto st1137;} + {stack[top++] = 1657;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1510;goto st1142;} + {stack[top++] = 1657;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1510;goto st1147;} + {stack[top++] = 1657;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1510;goto st1152;} + {stack[top++] = 1657;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1510;goto st1156;} + {stack[top++] = 1657;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1510;goto st1158;} + {stack[top++] = 1657;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1510;goto st1213;} + {stack[top++] = 1657;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1510;goto st1224;} + {stack[top++] = 1657;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1510;goto st1241;} + {stack[top++] = 1657;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 1510;goto st1252;} + {stack[top++] = 1657;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1510;goto st1263;} + {stack[top++] = 1657;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1510;goto st1276;} + {stack[top++] = 1657;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1510;goto st1286;} + {stack[top++] = 1657;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1510;goto st1325;} + {stack[top++] = 1657;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1510;goto st1351;} + {stack[top++] = 1657;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1510;goto st1354;} + {stack[top++] = 1657;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1510;goto st1365;} + {stack[top++] = 1657;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1510;goto st1367;} + {stack[top++] = 1657;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1510;goto st1396;} + {stack[top++] = 1657;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1510;goto st1409;} + {stack[top++] = 1657;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1510;goto st1422;} + {stack[top++] = 1657;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1510;goto st1428;} + {stack[top++] = 1657;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1510;goto st1446;} + {stack[top++] = 1657;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 1510;goto st1441;} + {stack[top++] = 1657;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1510;goto st1459;} + {stack[top++] = 1657;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1510;goto st1465;} + {stack[top++] = 1657;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 1510;goto st1471;} + {stack[top++] = 1657;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1510;goto st1479;} + {stack[top++] = 1657;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1510;goto st1487;} + {stack[top++] = 1657;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1510;goto st1493;} + {stack[top++] = 1657;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 1657;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -31197,118 +32717,121 @@ tr115: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1510; goto _out;} + {p++; cs = 1657; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1510; goto _out;} + p--; {p++; cs = 1657; goto _out;} } } { s->line_counter++; } - goto st1510; + goto st1657; tr145: { s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1510;goto st1101;} + {stack[top++] = 1657;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 1510;goto st1103;} + {stack[top++] = 1657;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1510;goto st1105;} + {stack[top++] = 1657;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1510;goto st1137;} + {stack[top++] = 1657;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1510;goto st1142;} + {stack[top++] = 1657;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1510;goto st1147;} + {stack[top++] = 1657;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1510;goto st1152;} + {stack[top++] = 1657;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1510;goto st1156;} + {stack[top++] = 1657;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1510;goto st1158;} + {stack[top++] = 1657;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1510;goto st1213;} + {stack[top++] = 1657;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1510;goto st1224;} + {stack[top++] = 1657;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1510;goto st1241;} + {stack[top++] = 1657;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 1510;goto st1252;} + {stack[top++] = 1657;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1510;goto st1263;} + {stack[top++] = 1657;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1510;goto st1276;} + {stack[top++] = 1657;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1510;goto st1286;} + {stack[top++] = 1657;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1510;goto st1325;} + {stack[top++] = 1657;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1510;goto st1351;} + {stack[top++] = 1657;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1510;goto st1354;} + {stack[top++] = 1657;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1510;goto st1365;} + {stack[top++] = 1657;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1510;goto st1367;} + {stack[top++] = 1657;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1510;goto st1396;} + {stack[top++] = 1657;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1510;goto st1409;} + {stack[top++] = 1657;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1510;goto st1422;} + {stack[top++] = 1657;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1510;goto st1428;} + {stack[top++] = 1657;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1510;goto st1446;} + {stack[top++] = 1657;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 1510;goto st1441;} + {stack[top++] = 1657;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1510;goto st1459;} + {stack[top++] = 1657;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1510;goto st1465;} + {stack[top++] = 1657;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 1510;goto st1471;} + {stack[top++] = 1657;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1510;goto st1479;} + {stack[top++] = 1657;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1510;goto st1487;} + {stack[top++] = 1657;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1510;goto st1493;} + {stack[top++] = 1657;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 1657;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->line_counter++; } - goto st1510; -tr873: + goto st1657; +tr898: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -31318,93 +32841,96 @@ tr873: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1510;goto st1101;} + {stack[top++] = 1657;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 1510;goto st1103;} + {stack[top++] = 1657;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1510;goto st1105;} + {stack[top++] = 1657;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1510;goto st1137;} + {stack[top++] = 1657;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1510;goto st1142;} + {stack[top++] = 1657;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1510;goto st1147;} + {stack[top++] = 1657;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1510;goto st1152;} + {stack[top++] = 1657;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1510;goto st1156;} + {stack[top++] = 1657;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1510;goto st1158;} + {stack[top++] = 1657;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1510;goto st1213;} + {stack[top++] = 1657;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1510;goto st1224;} + {stack[top++] = 1657;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1510;goto st1241;} + {stack[top++] = 1657;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 1510;goto st1252;} + {stack[top++] = 1657;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1510;goto st1263;} + {stack[top++] = 1657;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1510;goto st1276;} + {stack[top++] = 1657;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1510;goto st1286;} + {stack[top++] = 1657;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1510;goto st1325;} + {stack[top++] = 1657;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1510;goto st1351;} + {stack[top++] = 1657;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1510;goto st1354;} + {stack[top++] = 1657;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1510;goto st1365;} + {stack[top++] = 1657;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1510;goto st1367;} + {stack[top++] = 1657;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1510;goto st1396;} + {stack[top++] = 1657;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1510;goto st1409;} + {stack[top++] = 1657;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1510;goto st1422;} + {stack[top++] = 1657;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1510;goto st1428;} + {stack[top++] = 1657;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1510;goto st1446;} + {stack[top++] = 1657;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 1510;goto st1441;} + {stack[top++] = 1657;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1510;goto st1459;} + {stack[top++] = 1657;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1510;goto st1465;} + {stack[top++] = 1657;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 1510;goto st1471;} + {stack[top++] = 1657;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1510;goto st1479;} + {stack[top++] = 1657;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1510;goto st1487;} + {stack[top++] = 1657;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1510;goto st1493;} + {stack[top++] = 1657;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 1657;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { @@ -31414,7 +32940,7 @@ tr873: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -31427,111 +32953,114 @@ tr873: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1510; goto _out;} + {p++; cs = 1657; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1510; goto _out;} + p--; {p++; cs = 1657; goto _out;} } } { s->line_counter++; } - goto st1510; -tr4237: + goto st1657; +tr4522: { s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1510;goto st1101;} + {stack[top++] = 1657;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 1510;goto st1103;} + {stack[top++] = 1657;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1510;goto st1105;} + {stack[top++] = 1657;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1510;goto st1137;} + {stack[top++] = 1657;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1510;goto st1142;} + {stack[top++] = 1657;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1510;goto st1147;} + {stack[top++] = 1657;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1510;goto st1152;} + {stack[top++] = 1657;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1510;goto st1156;} + {stack[top++] = 1657;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1510;goto st1158;} + {stack[top++] = 1657;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1510;goto st1213;} + {stack[top++] = 1657;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1510;goto st1224;} + {stack[top++] = 1657;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1510;goto st1241;} + {stack[top++] = 1657;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 1510;goto st1252;} + {stack[top++] = 1657;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1510;goto st1263;} + {stack[top++] = 1657;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1510;goto st1276;} + {stack[top++] = 1657;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1510;goto st1286;} + {stack[top++] = 1657;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1510;goto st1325;} + {stack[top++] = 1657;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1510;goto st1351;} + {stack[top++] = 1657;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1510;goto st1354;} + {stack[top++] = 1657;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1510;goto st1365;} + {stack[top++] = 1657;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1510;goto st1367;} + {stack[top++] = 1657;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1510;goto st1396;} + {stack[top++] = 1657;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1510;goto st1409;} + {stack[top++] = 1657;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1510;goto st1422;} + {stack[top++] = 1657;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1510;goto st1428;} + {stack[top++] = 1657;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1510;goto st1446;} + {stack[top++] = 1657;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 1510;goto st1441;} + {stack[top++] = 1657;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1510;goto st1459;} + {stack[top++] = 1657;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1510;goto st1465;} + {stack[top++] = 1657;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 1510;goto st1471;} + {stack[top++] = 1657;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1510;goto st1479;} + {stack[top++] = 1657;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1510;goto st1487;} + {stack[top++] = 1657;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1510;goto st1493;} + {stack[top++] = 1657;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 1657;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { @@ -31541,11 +33070,11 @@ tr4237: { s->line_counter++; } - goto st1510; -st1510: + goto st1657; +st1657: if ( ++p == pe ) - goto _test_eof1510; -case 1510: + goto _test_eof1657; +case 1657: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31559,57 +33088,57 @@ case 1510: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4299; - case 32: goto tr4299; - case 36: goto st199; - case 40: goto tr4300; - case 41: goto tr4301; - case 42: goto tr4224; - case 92: goto tr4224; - case 95: goto tr4224; + case 9: goto tr4584; + case 32: goto tr4584; + case 36: goto st208; + case 40: goto tr4585; + case 41: goto tr4586; + case 42: goto tr4509; + case 92: goto tr4509; + case 95: goto tr4509; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr4302; - case 2107: goto tr4303; + case 2058: goto tr4587; + case 2107: goto tr4588; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4224; + goto tr4509; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4224; + goto tr4509; } else - goto tr4224; - goto tr915; -tr883: + goto tr4509; + goto tr940; +tr908: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st221; -tr884: + goto st230; +tr909: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st221; -tr953: + goto st230; +tr978: { s->buffer[0] = 0; s->buffer_length = 0; } - goto st221; -tr954: + goto st230; +tr979: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -31617,12 +33146,12 @@ tr954: s->buffer[0] = 0; s->buffer_length = 0; } - goto st221; -tr955: + goto st230; +tr980: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -31630,8 +33159,8 @@ tr955: s->buffer[0] = 0; s->buffer_length = 0; } - goto st221; -tr916: + goto st230; +tr941: { s->r_owner_length = s->dname_tmp_length; } @@ -31639,15 +33168,15 @@ tr916: s->buffer[0] = 0; s->buffer_length = 0; } - goto st221; -tr917: + goto st230; +tr942: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -31655,15 +33184,15 @@ tr917: s->buffer[0] = 0; s->buffer_length = 0; } - goto st221; -tr918: + goto st230; +tr943: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -31671,8 +33200,8 @@ tr918: s->buffer[0] = 0; s->buffer_length = 0; } - goto st221; -tr4299: + goto st230; +tr4584: { s->buffer[0] = 0; s->buffer_length = 0; @@ -31680,11 +33209,11 @@ tr4299: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st221; -tr4300: + goto st230; +tr4585: { s->buffer[0] = 0; s->buffer_length = 0; @@ -31692,18 +33221,18 @@ tr4300: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st221; -tr4301: + goto st230; +tr4586: { s->buffer[0] = 0; s->buffer_length = 0; @@ -31711,21 +33240,21 @@ tr4301: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st221; -st221: + goto st230; +st230: if ( ++p == pe ) - goto _test_eof221; -case 221: + goto _test_eof230; +case 230: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -31739,10 +33268,10 @@ case 221: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st221; - case 32: goto st221; - case 40: goto tr883; - case 41: goto tr884; + case 9: goto st230; + case 32: goto st230; + case 40: goto tr908; + case 41: goto tr909; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -31781,25 +33310,25 @@ case 221: case 122: goto tr22; case 1802: goto tr96; case 1851: goto tr97; - case 2058: goto tr885; - case 2107: goto tr886; + case 2058: goto tr910; + case 2107: goto tr911; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; goto tr0; -tr886: +tr911: { s->buffer_length = 0; } - goto st222; -tr887: + goto st231; +tr912: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st222; -tr957: + goto st231; +tr982: { s->buffer_length = 0; } @@ -31807,8 +33336,8 @@ tr957: s->buffer[0] = 0; s->buffer_length = 0; } - goto st222; -tr962: + goto st231; +tr987: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -31821,8 +33350,8 @@ tr962: { s->buffer_length = 0; } - goto st222; -tr966: + goto st231; +tr991: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -31831,8 +33360,8 @@ tr966: { s->buffer_length = 0; } - goto st222; -tr920: + goto st231; +tr945: { s->r_owner_length = s->dname_tmp_length; } @@ -31843,8 +33372,8 @@ tr920: s->buffer[0] = 0; s->buffer_length = 0; } - goto st222; -tr4303: + goto st231; +tr4588: { s->buffer[0] = 0; s->buffer_length = 0; @@ -31855,14 +33384,14 @@ tr4303: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st222; -st222: + goto st231; +st231: if ( ++p == pe ) - goto _test_eof222; -case 222: + goto _test_eof231; +case 231: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -31883,11 +33412,11 @@ case 222: } switch( _widec ) { case 1802: goto tr99; - case 2058: goto tr888; + case 2058: goto tr913; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr887; + goto tr912; } else if ( _widec >= 1664 ) goto tr98; goto tr92; @@ -31897,93 +33426,96 @@ tr109: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 223;goto st1101;} + {stack[top++] = 232;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 223;goto st1103;} + {stack[top++] = 232;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 223;goto st1105;} + {stack[top++] = 232;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 223;goto st1137;} + {stack[top++] = 232;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 223;goto st1142;} + {stack[top++] = 232;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 223;goto st1147;} + {stack[top++] = 232;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 223;goto st1152;} + {stack[top++] = 232;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 223;goto st1156;} + {stack[top++] = 232;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 223;goto st1158;} + {stack[top++] = 232;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 223;goto st1213;} + {stack[top++] = 232;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 223;goto st1224;} + {stack[top++] = 232;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 223;goto st1241;} + {stack[top++] = 232;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 223;goto st1252;} + {stack[top++] = 232;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 223;goto st1263;} + {stack[top++] = 232;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 223;goto st1276;} + {stack[top++] = 232;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 223;goto st1286;} + {stack[top++] = 232;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 223;goto st1325;} + {stack[top++] = 232;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 223;goto st1351;} + {stack[top++] = 232;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 223;goto st1354;} + {stack[top++] = 232;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 223;goto st1365;} + {stack[top++] = 232;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 223;goto st1367;} + {stack[top++] = 232;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 223;goto st1396;} + {stack[top++] = 232;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 223;goto st1409;} + {stack[top++] = 232;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 223;goto st1422;} + {stack[top++] = 232;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 223;goto st1428;} + {stack[top++] = 232;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 223;goto st1446;} + {stack[top++] = 232;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 223;goto st1441;} + {stack[top++] = 232;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 223;goto st1459;} + {stack[top++] = 232;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 223;goto st1465;} + {stack[top++] = 232;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 223;goto st1471;} + {stack[top++] = 232;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 223;goto st1479;} + {stack[top++] = 232;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 223;goto st1487;} + {stack[top++] = 232;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 223;goto st1493;} + {stack[top++] = 232;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 232;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { @@ -31993,107 +33525,110 @@ tr109: { s->buffer_length = 0; } - goto st223; + goto st232; tr116: { s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 223;goto st1101;} + {stack[top++] = 232;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 223;goto st1103;} + {stack[top++] = 232;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 223;goto st1105;} + {stack[top++] = 232;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 223;goto st1137;} + {stack[top++] = 232;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 223;goto st1142;} + {stack[top++] = 232;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 223;goto st1147;} + {stack[top++] = 232;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 223;goto st1152;} + {stack[top++] = 232;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 223;goto st1156;} + {stack[top++] = 232;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 223;goto st1158;} + {stack[top++] = 232;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 223;goto st1213;} + {stack[top++] = 232;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 223;goto st1224;} + {stack[top++] = 232;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 223;goto st1241;} + {stack[top++] = 232;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 223;goto st1252;} + {stack[top++] = 232;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 223;goto st1263;} + {stack[top++] = 232;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 223;goto st1276;} + {stack[top++] = 232;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 223;goto st1286;} + {stack[top++] = 232;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 223;goto st1325;} + {stack[top++] = 232;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 223;goto st1351;} + {stack[top++] = 232;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 223;goto st1354;} + {stack[top++] = 232;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 223;goto st1365;} + {stack[top++] = 232;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 223;goto st1367;} + {stack[top++] = 232;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 223;goto st1396;} + {stack[top++] = 232;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 223;goto st1409;} + {stack[top++] = 232;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 223;goto st1422;} + {stack[top++] = 232;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 223;goto st1428;} + {stack[top++] = 232;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 223;goto st1446;} + {stack[top++] = 232;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 223;goto st1441;} + {stack[top++] = 232;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 223;goto st1459;} + {stack[top++] = 232;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 223;goto st1465;} + {stack[top++] = 232;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 223;goto st1471;} + {stack[top++] = 232;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 223;goto st1479;} + {stack[top++] = 232;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 223;goto st1487;} + {stack[top++] = 232;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 223;goto st1493;} + {stack[top++] = 232;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 232;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->buffer_length = 0; } - goto st223; -tr874: + goto st232; +tr899: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -32103,93 +33638,96 @@ tr874: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 223;goto st1101;} + {stack[top++] = 232;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 223;goto st1103;} + {stack[top++] = 232;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 223;goto st1105;} + {stack[top++] = 232;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 223;goto st1137;} + {stack[top++] = 232;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 223;goto st1142;} + {stack[top++] = 232;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 223;goto st1147;} + {stack[top++] = 232;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 223;goto st1152;} + {stack[top++] = 232;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 223;goto st1156;} + {stack[top++] = 232;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 223;goto st1158;} + {stack[top++] = 232;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 223;goto st1213;} + {stack[top++] = 232;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 223;goto st1224;} + {stack[top++] = 232;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 223;goto st1241;} + {stack[top++] = 232;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 223;goto st1252;} + {stack[top++] = 232;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 223;goto st1263;} + {stack[top++] = 232;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 223;goto st1276;} + {stack[top++] = 232;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 223;goto st1286;} + {stack[top++] = 232;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 223;goto st1325;} + {stack[top++] = 232;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 223;goto st1351;} + {stack[top++] = 232;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 223;goto st1354;} + {stack[top++] = 232;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 223;goto st1365;} + {stack[top++] = 232;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 223;goto st1367;} + {stack[top++] = 232;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 223;goto st1396;} + {stack[top++] = 232;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 223;goto st1409;} + {stack[top++] = 232;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 223;goto st1422;} + {stack[top++] = 232;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 223;goto st1428;} + {stack[top++] = 232;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 223;goto st1446;} + {stack[top++] = 232;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 223;goto st1441;} + {stack[top++] = 232;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 223;goto st1459;} + {stack[top++] = 232;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 223;goto st1465;} + {stack[top++] = 232;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 223;goto st1471;} + {stack[top++] = 232;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 223;goto st1479;} + {stack[top++] = 232;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 223;goto st1487;} + {stack[top++] = 232;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 223;goto st1493;} + {stack[top++] = 232;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 232;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { @@ -32199,11 +33737,11 @@ tr874: { s->buffer_length = 0; } - goto st223; -st223: + goto st232; +st232: if ( ++p == pe ) - goto _test_eof223; -case 223: + goto _test_eof232; +case 232: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32217,14 +33755,14 @@ case 223: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr889; - case 32: goto tr889; - case 40: goto tr890; - case 41: goto tr891; - case 1802: goto tr892; - case 1851: goto tr893; - case 2058: goto tr892; - case 2107: goto tr893; + case 9: goto tr914; + case 32: goto tr914; + case 40: goto tr915; + case 41: goto tr916; + case 1802: goto tr917; + case 1851: goto tr918; + case 2058: goto tr917; + case 2107: goto tr918; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -32235,14 +33773,14 @@ case 223: } else goto tr98; goto tr86; -tr894: +tr919: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st224; -tr889: + goto st233; +tr914: { s->buffer[0] = 0; s->buffer_length = 0; @@ -32252,8 +33790,8 @@ tr889: s->buffer[s->buffer_length++] = (*p); } } - goto st224; -tr890: + goto st233; +tr915: { s->buffer[0] = 0; s->buffer_length = 0; @@ -32261,7 +33799,7 @@ tr890: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -32270,8 +33808,8 @@ tr890: s->buffer[s->buffer_length++] = (*p); } } - goto st224; -tr891: + goto st233; +tr916: { s->buffer[0] = 0; s->buffer_length = 0; @@ -32279,7 +33817,7 @@ tr891: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -32288,12 +33826,12 @@ tr891: s->buffer[s->buffer_length++] = (*p); } } - goto st224; -tr895: + goto st233; +tr920: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -32302,12 +33840,12 @@ tr895: s->buffer[s->buffer_length++] = (*p); } } - goto st224; -tr896: + goto st233; +tr921: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -32316,11 +33854,11 @@ tr896: s->buffer[s->buffer_length++] = (*p); } } - goto st224; -st224: + goto st233; +st233: if ( ++p == pe ) - goto _test_eof224; -case 224: + goto _test_eof233; +case 233: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32334,14 +33872,14 @@ case 224: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr894; - case 32: goto tr894; - case 40: goto tr895; - case 41: goto tr896; + case 9: goto tr919; + case 32: goto tr919; + case 40: goto tr920; + case 41: goto tr921; case 1802: goto tr99; - case 1851: goto tr897; + case 1851: goto tr922; case 2058: goto tr99; - case 2107: goto tr897; + case 2107: goto tr922; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -32352,7 +33890,7 @@ case 224: } else goto tr98; goto tr92; -tr875: +tr900: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -32365,93 +33903,96 @@ tr875: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1511;goto st1101;} + {stack[top++] = 1658;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 1511;goto st1103;} + {stack[top++] = 1658;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1511;goto st1105;} + {stack[top++] = 1658;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1511;goto st1137;} + {stack[top++] = 1658;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1511;goto st1142;} + {stack[top++] = 1658;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1511;goto st1147;} + {stack[top++] = 1658;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1511;goto st1152;} + {stack[top++] = 1658;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1511;goto st1156;} + {stack[top++] = 1658;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1511;goto st1158;} + {stack[top++] = 1658;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1511;goto st1213;} + {stack[top++] = 1658;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1511;goto st1224;} + {stack[top++] = 1658;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1511;goto st1241;} + {stack[top++] = 1658;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 1511;goto st1252;} + {stack[top++] = 1658;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1511;goto st1263;} + {stack[top++] = 1658;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1511;goto st1276;} + {stack[top++] = 1658;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1511;goto st1286;} + {stack[top++] = 1658;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1511;goto st1325;} + {stack[top++] = 1658;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1511;goto st1351;} + {stack[top++] = 1658;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1511;goto st1354;} + {stack[top++] = 1658;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1511;goto st1365;} + {stack[top++] = 1658;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1511;goto st1367;} + {stack[top++] = 1658;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1511;goto st1396;} + {stack[top++] = 1658;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1511;goto st1409;} + {stack[top++] = 1658;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1511;goto st1422;} + {stack[top++] = 1658;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1511;goto st1428;} + {stack[top++] = 1658;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1511;goto st1446;} + {stack[top++] = 1658;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 1511;goto st1441;} + {stack[top++] = 1658;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1511;goto st1459;} + {stack[top++] = 1658;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1511;goto st1465;} + {stack[top++] = 1658;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 1511;goto st1471;} + {stack[top++] = 1658;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1511;goto st1479;} + {stack[top++] = 1658;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1511;goto st1487;} + {stack[top++] = 1658;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1511;goto st1493;} + {stack[top++] = 1658;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 1658;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { @@ -32461,7 +34002,7 @@ tr875: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -32474,16 +34015,16 @@ tr875: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1511; goto _out;} + {p++; cs = 1658; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1511; goto _out;} + p--; {p++; cs = 1658; goto _out;} } } - goto st1511; -tr881: + goto st1658; +tr906: { s->line_counter++; } @@ -32492,99 +34033,102 @@ tr881: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1511;goto st1101;} + {stack[top++] = 1658;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 1511;goto st1103;} + {stack[top++] = 1658;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1511;goto st1105;} + {stack[top++] = 1658;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1511;goto st1137;} + {stack[top++] = 1658;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1511;goto st1142;} + {stack[top++] = 1658;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1511;goto st1147;} + {stack[top++] = 1658;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1511;goto st1152;} + {stack[top++] = 1658;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1511;goto st1156;} + {stack[top++] = 1658;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1511;goto st1158;} + {stack[top++] = 1658;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1511;goto st1213;} + {stack[top++] = 1658;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1511;goto st1224;} + {stack[top++] = 1658;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1511;goto st1241;} + {stack[top++] = 1658;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 1511;goto st1252;} + {stack[top++] = 1658;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1511;goto st1263;} + {stack[top++] = 1658;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1511;goto st1276;} + {stack[top++] = 1658;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1511;goto st1286;} + {stack[top++] = 1658;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1511;goto st1325;} + {stack[top++] = 1658;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1511;goto st1351;} + {stack[top++] = 1658;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1511;goto st1354;} + {stack[top++] = 1658;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1511;goto st1365;} + {stack[top++] = 1658;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1511;goto st1367;} + {stack[top++] = 1658;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1511;goto st1396;} + {stack[top++] = 1658;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1511;goto st1409;} + {stack[top++] = 1658;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1511;goto st1422;} + {stack[top++] = 1658;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1511;goto st1428;} + {stack[top++] = 1658;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1511;goto st1446;} + {stack[top++] = 1658;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 1511;goto st1441;} + {stack[top++] = 1658;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1511;goto st1459;} + {stack[top++] = 1658;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1511;goto st1465;} + {stack[top++] = 1658;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 1511;goto st1471;} + {stack[top++] = 1658;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1511;goto st1479;} + {stack[top++] = 1658;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1511;goto st1487;} + {stack[top++] = 1658;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1511;goto st1493;} + {stack[top++] = 1658;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 1658;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -32597,19 +34141,19 @@ tr881: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1511; goto _out;} + {p++; cs = 1658; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1511; goto _out;} + p--; {p++; cs = 1658; goto _out;} } } - goto st1511; -st1511: + goto st1658; +st1658: if ( ++p == pe ) - goto _test_eof1511; -case 1511: + goto _test_eof1658; +case 1658: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32627,23 +34171,23 @@ case 1511: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4304; - case 32: goto tr4304; - case 36: goto tr4230; - case 40: goto tr4305; - case 41: goto tr4306; - case 42: goto tr4233; + case 9: goto tr4589; + case 32: goto tr4589; + case 36: goto tr4515; + case 40: goto tr4590; + case 41: goto tr4591; + case 42: goto tr4518; case 58: goto tr76; - case 92: goto tr4234; - case 95: goto tr4233; + case 92: goto tr4519; + case 95: goto tr4518; case 2826: goto tr90; case 2875: goto tr91; - case 3082: goto tr4302; - case 3131: goto tr4307; + case 3082: goto tr4587; + case 3131: goto tr4592; case 3338: goto tr108; case 3387: goto tr109; - case 3594: goto tr4302; - case 3643: goto tr4308; + case 3594: goto tr4587; + case 3643: goto tr4593; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -32651,53 +34195,53 @@ case 1511: goto tr76; } else if ( _widec > 44 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4233; + goto tr4518; } else goto tr76; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 90 ) - goto tr4233; + goto tr4518; } else if ( _widec > 96 ) { if ( _widec > 122 ) { if ( 123 <= _widec ) goto tr76; } else if ( _widec >= 97 ) - goto tr4233; + goto tr4518; } else goto tr76; } else goto tr76; - goto tr915; -tr899: + goto tr940; +tr924: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st225; -tr900: + goto st234; +tr925: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st225; -tr1040: + goto st234; +tr1065: { s->buffer[0] = 0; s->buffer_length = 0; } - goto st225; -tr1041: + goto st234; +tr1066: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -32705,12 +34249,12 @@ tr1041: s->buffer[0] = 0; s->buffer_length = 0; } - goto st225; -tr1042: + goto st234; +tr1067: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -32718,8 +34262,8 @@ tr1042: s->buffer[0] = 0; s->buffer_length = 0; } - goto st225; -tr4304: + goto st234; +tr4589: { s->buffer[0] = 0; s->buffer_length = 0; @@ -32727,15 +34271,15 @@ tr4304: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st225; -tr4305: + goto st234; +tr4590: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -32746,15 +34290,15 @@ tr4305: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st225; -tr4306: + goto st234; +tr4591: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -32765,14 +34309,14 @@ tr4306: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st225; -st225: + goto st234; +st234: if ( ++p == pe ) - goto _test_eof225; -case 225: + goto _test_eof234; +case 234: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32790,10 +34334,10 @@ case 225: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st225; - case 32: goto st225; - case 40: goto tr899; - case 41: goto tr900; + case 9: goto st234; + case 32: goto st234; + case 40: goto tr924; + case 41: goto tr925; case 58: goto tr76; case 65: goto tr125; case 67: goto tr126; @@ -32834,12 +34378,12 @@ case 225: case 122: goto tr142; case 2826: goto tr96; case 2875: goto tr97; - case 3082: goto tr885; - case 3131: goto tr901; + case 3082: goto tr910; + case 3131: goto tr926; case 3338: goto tr115; case 3387: goto tr116; - case 3594: goto tr885; - case 3643: goto tr902; + case 3594: goto tr910; + case 3643: goto tr927; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -32865,100 +34409,103 @@ tr126: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 226;goto st1101;} + {stack[top++] = 235;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 226;goto st1103;} + {stack[top++] = 235;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 226;goto st1105;} + {stack[top++] = 235;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 226;goto st1137;} + {stack[top++] = 235;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 226;goto st1142;} + {stack[top++] = 235;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 226;goto st1147;} + {stack[top++] = 235;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 226;goto st1152;} + {stack[top++] = 235;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 226;goto st1156;} + {stack[top++] = 235;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 226;goto st1158;} + {stack[top++] = 235;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 226;goto st1213;} + {stack[top++] = 235;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 226;goto st1224;} + {stack[top++] = 235;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 226;goto st1241;} + {stack[top++] = 235;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 226;goto st1252;} + {stack[top++] = 235;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 226;goto st1263;} + {stack[top++] = 235;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 226;goto st1276;} + {stack[top++] = 235;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 226;goto st1286;} + {stack[top++] = 235;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 226;goto st1325;} + {stack[top++] = 235;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 226;goto st1351;} + {stack[top++] = 235;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 226;goto st1354;} + {stack[top++] = 235;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 226;goto st1365;} + {stack[top++] = 235;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 226;goto st1367;} + {stack[top++] = 235;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 226;goto st1396;} + {stack[top++] = 235;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 226;goto st1409;} + {stack[top++] = 235;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 226;goto st1422;} + {stack[top++] = 235;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 226;goto st1428;} + {stack[top++] = 235;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 226;goto st1446;} + {stack[top++] = 235;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 226;goto st1441;} + {stack[top++] = 235;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 226;goto st1459;} + {stack[top++] = 235;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 226;goto st1465;} + {stack[top++] = 235;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 226;goto st1471;} + {stack[top++] = 235;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 226;goto st1479;} + {stack[top++] = 235;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 226;goto st1487;} + {stack[top++] = 235;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 226;goto st1493;} + {stack[top++] = 235;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 235;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st226; -st226: + goto st235; +st235: if ( ++p == pe ) - goto _test_eof226; -case 226: + goto _test_eof235; +case 235: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -32991,7 +34538,7 @@ case 226: case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr127: { s->r_class = s->default_class; @@ -33004,100 +34551,103 @@ tr127: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 227;goto st1101;} + {stack[top++] = 236;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 227;goto st1103;} + {stack[top++] = 236;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 227;goto st1105;} + {stack[top++] = 236;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 227;goto st1137;} + {stack[top++] = 236;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 227;goto st1142;} + {stack[top++] = 236;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 227;goto st1147;} + {stack[top++] = 236;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 227;goto st1152;} + {stack[top++] = 236;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 227;goto st1156;} + {stack[top++] = 236;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 227;goto st1158;} + {stack[top++] = 236;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 227;goto st1213;} + {stack[top++] = 236;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 227;goto st1224;} + {stack[top++] = 236;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 227;goto st1241;} + {stack[top++] = 236;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 227;goto st1252;} + {stack[top++] = 236;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 227;goto st1263;} + {stack[top++] = 236;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 227;goto st1276;} + {stack[top++] = 236;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 227;goto st1286;} + {stack[top++] = 236;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 227;goto st1325;} + {stack[top++] = 236;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 227;goto st1351;} + {stack[top++] = 236;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 227;goto st1354;} + {stack[top++] = 236;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 227;goto st1365;} + {stack[top++] = 236;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 227;goto st1367;} + {stack[top++] = 236;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 227;goto st1396;} + {stack[top++] = 236;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 227;goto st1409;} + {stack[top++] = 236;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 227;goto st1422;} + {stack[top++] = 236;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 227;goto st1428;} + {stack[top++] = 236;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 227;goto st1446;} + {stack[top++] = 236;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 227;goto st1441;} + {stack[top++] = 236;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 227;goto st1459;} + {stack[top++] = 236;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 227;goto st1465;} + {stack[top++] = 236;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 227;goto st1471;} + {stack[top++] = 236;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 227;goto st1479;} + {stack[top++] = 236;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 227;goto st1487;} + {stack[top++] = 236;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 227;goto st1493;} + {stack[top++] = 236;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 236;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st227; -st227: + goto st236; +st236: if ( ++p == pe ) - goto _test_eof227; -case 227: + goto _test_eof236; +case 236: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33115,18 +34665,20 @@ case 227: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 72: goto st41; - case 78: goto st45; - case 83: goto st53; - case 104: goto st41; - case 110: goto st45; - case 115: goto st53; + case 69: goto st41; + case 72: goto st50; + case 78: goto st54; + case 83: goto st62; + case 101: goto st41; + case 104: goto st50; + case 110: goto st54; + case 115: goto st62; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr128: { s->r_class = s->default_class; @@ -33139,100 +34691,103 @@ tr128: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 228;goto st1101;} + {stack[top++] = 237;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 228;goto st1103;} + {stack[top++] = 237;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 228;goto st1105;} + {stack[top++] = 237;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 228;goto st1137;} + {stack[top++] = 237;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 228;goto st1142;} + {stack[top++] = 237;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 228;goto st1147;} + {stack[top++] = 237;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 228;goto st1152;} + {stack[top++] = 237;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 228;goto st1156;} + {stack[top++] = 237;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 228;goto st1158;} + {stack[top++] = 237;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 228;goto st1213;} + {stack[top++] = 237;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 228;goto st1224;} + {stack[top++] = 237;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 228;goto st1241;} + {stack[top++] = 237;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 228;goto st1252;} + {stack[top++] = 237;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 228;goto st1263;} + {stack[top++] = 237;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 228;goto st1276;} + {stack[top++] = 237;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 228;goto st1286;} + {stack[top++] = 237;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 228;goto st1325;} + {stack[top++] = 237;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 228;goto st1351;} + {stack[top++] = 237;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 228;goto st1354;} + {stack[top++] = 237;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 228;goto st1365;} + {stack[top++] = 237;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 228;goto st1367;} + {stack[top++] = 237;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 228;goto st1396;} + {stack[top++] = 237;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 228;goto st1409;} + {stack[top++] = 237;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 228;goto st1422;} + {stack[top++] = 237;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 228;goto st1428;} + {stack[top++] = 237;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 228;goto st1446;} + {stack[top++] = 237;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 228;goto st1441;} + {stack[top++] = 237;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 228;goto st1459;} + {stack[top++] = 237;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 228;goto st1465;} + {stack[top++] = 237;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 228;goto st1471;} + {stack[top++] = 237;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 228;goto st1479;} + {stack[top++] = 237;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 228;goto st1487;} + {stack[top++] = 237;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 228;goto st1493;} + {stack[top++] = 237;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 237;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st228; -st228: + goto st237; +st237: if ( ++p == pe ) - goto _test_eof228; -case 228: + goto _test_eof237; +case 237: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33250,14 +34805,14 @@ case 228: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 85: goto st58; - case 117: goto st58; + case 85: goto st67; + case 117: goto st67; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr129: { s->r_class = s->default_class; @@ -33270,100 +34825,103 @@ tr129: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 229;goto st1101;} + {stack[top++] = 238;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 229;goto st1103;} + {stack[top++] = 238;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 229;goto st1105;} + {stack[top++] = 238;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 229;goto st1137;} + {stack[top++] = 238;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 229;goto st1142;} + {stack[top++] = 238;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 229;goto st1147;} + {stack[top++] = 238;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 229;goto st1152;} + {stack[top++] = 238;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 229;goto st1156;} + {stack[top++] = 238;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 229;goto st1158;} + {stack[top++] = 238;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 229;goto st1213;} + {stack[top++] = 238;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 229;goto st1224;} + {stack[top++] = 238;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 229;goto st1241;} + {stack[top++] = 238;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 229;goto st1252;} + {stack[top++] = 238;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 229;goto st1263;} + {stack[top++] = 238;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 229;goto st1276;} + {stack[top++] = 238;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 229;goto st1286;} + {stack[top++] = 238;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 229;goto st1325;} + {stack[top++] = 238;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 229;goto st1351;} + {stack[top++] = 238;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 229;goto st1354;} + {stack[top++] = 238;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 229;goto st1365;} + {stack[top++] = 238;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 229;goto st1367;} + {stack[top++] = 238;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 229;goto st1396;} + {stack[top++] = 238;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 229;goto st1409;} + {stack[top++] = 238;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 229;goto st1422;} + {stack[top++] = 238;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 229;goto st1428;} + {stack[top++] = 238;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 229;goto st1446;} + {stack[top++] = 238;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 229;goto st1441;} + {stack[top++] = 238;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 229;goto st1459;} + {stack[top++] = 238;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 229;goto st1465;} + {stack[top++] = 238;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 229;goto st1471;} + {stack[top++] = 238;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 229;goto st1479;} + {stack[top++] = 238;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 229;goto st1487;} + {stack[top++] = 238;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 229;goto st1493;} + {stack[top++] = 238;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 238;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st229; -st229: + goto st238; +st238: if ( ++p == pe ) - goto _test_eof229; -case 229: + goto _test_eof238; +case 238: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33381,16 +34939,16 @@ case 229: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 73: goto st65; - case 84: goto st69; - case 105: goto st65; - case 116: goto st69; + case 73: goto st74; + case 84: goto st78; + case 105: goto st74; + case 116: goto st78; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr130: { s->r_class = s->default_class; @@ -33403,100 +34961,103 @@ tr130: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 230;goto st1101;} + {stack[top++] = 239;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 230;goto st1103;} + {stack[top++] = 239;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 230;goto st1105;} + {stack[top++] = 239;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 230;goto st1137;} + {stack[top++] = 239;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 230;goto st1142;} + {stack[top++] = 239;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 230;goto st1147;} + {stack[top++] = 239;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 230;goto st1152;} + {stack[top++] = 239;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 230;goto st1156;} + {stack[top++] = 239;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 230;goto st1158;} + {stack[top++] = 239;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 230;goto st1213;} + {stack[top++] = 239;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 230;goto st1224;} + {stack[top++] = 239;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 230;goto st1241;} + {stack[top++] = 239;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 230;goto st1252;} + {stack[top++] = 239;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 230;goto st1263;} + {stack[top++] = 239;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 230;goto st1276;} + {stack[top++] = 239;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 230;goto st1286;} + {stack[top++] = 239;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 230;goto st1325;} + {stack[top++] = 239;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 230;goto st1351;} + {stack[top++] = 239;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 230;goto st1354;} + {stack[top++] = 239;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 230;goto st1365;} + {stack[top++] = 239;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 230;goto st1367;} + {stack[top++] = 239;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 230;goto st1396;} + {stack[top++] = 239;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 230;goto st1409;} + {stack[top++] = 239;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 230;goto st1422;} + {stack[top++] = 239;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 230;goto st1428;} + {stack[top++] = 239;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 230;goto st1446;} + {stack[top++] = 239;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 230;goto st1441;} + {stack[top++] = 239;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 230;goto st1459;} + {stack[top++] = 239;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 230;goto st1465;} + {stack[top++] = 239;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 230;goto st1471;} + {stack[top++] = 239;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 230;goto st1479;} + {stack[top++] = 239;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 230;goto st1487;} + {stack[top++] = 239;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 230;goto st1493;} + {stack[top++] = 239;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 239;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st230; -st230: + goto st239; +st239: if ( ++p == pe ) - goto _test_eof230; -case 230: + goto _test_eof239; +case 239: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33514,16 +35075,16 @@ case 230: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 78: goto st191; - case 80: goto st77; - case 110: goto st191; - case 112: goto st77; + case 78: goto st200; + case 80: goto st86; + case 110: goto st200; + case 112: goto st86; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr131: { s->r_class = s->default_class; @@ -33536,100 +35097,103 @@ tr131: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 231;goto st1101;} + {stack[top++] = 240;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 231;goto st1103;} + {stack[top++] = 240;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 231;goto st1105;} + {stack[top++] = 240;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 231;goto st1137;} + {stack[top++] = 240;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 231;goto st1142;} + {stack[top++] = 240;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 231;goto st1147;} + {stack[top++] = 240;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 231;goto st1152;} + {stack[top++] = 240;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 231;goto st1156;} + {stack[top++] = 240;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 231;goto st1158;} + {stack[top++] = 240;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 231;goto st1213;} + {stack[top++] = 240;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 231;goto st1224;} + {stack[top++] = 240;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 231;goto st1241;} + {stack[top++] = 240;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 231;goto st1252;} + {stack[top++] = 240;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 231;goto st1263;} + {stack[top++] = 240;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 231;goto st1276;} + {stack[top++] = 240;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 231;goto st1286;} + {stack[top++] = 240;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 231;goto st1325;} + {stack[top++] = 240;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 231;goto st1351;} + {stack[top++] = 240;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 231;goto st1354;} + {stack[top++] = 240;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 231;goto st1365;} + {stack[top++] = 240;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 231;goto st1367;} + {stack[top++] = 240;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 231;goto st1396;} + {stack[top++] = 240;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 231;goto st1409;} + {stack[top++] = 240;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 231;goto st1422;} + {stack[top++] = 240;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 231;goto st1428;} + {stack[top++] = 240;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 231;goto st1446;} + {stack[top++] = 240;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 231;goto st1441;} + {stack[top++] = 240;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 231;goto st1459;} + {stack[top++] = 240;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 231;goto st1465;} + {stack[top++] = 240;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 231;goto st1471;} + {stack[top++] = 240;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 231;goto st1479;} + {stack[top++] = 240;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 231;goto st1487;} + {stack[top++] = 240;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 231;goto st1493;} + {stack[top++] = 240;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 240;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st231; -st231: + goto st240; +st240: if ( ++p == pe ) - goto _test_eof231; -case 231: + goto _test_eof240; +case 240: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33647,16 +35211,16 @@ case 231: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 69: goto st85; - case 88: goto st87; - case 101: goto st85; - case 120: goto st87; + case 69: goto st94; + case 88: goto st96; + case 101: goto st94; + case 120: goto st96; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr132: { s->r_class = s->default_class; @@ -33669,100 +35233,103 @@ tr132: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 232;goto st1101;} + {stack[top++] = 241;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 232;goto st1103;} + {stack[top++] = 241;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 232;goto st1105;} + {stack[top++] = 241;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 232;goto st1137;} + {stack[top++] = 241;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 232;goto st1142;} + {stack[top++] = 241;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 232;goto st1147;} + {stack[top++] = 241;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 232;goto st1152;} + {stack[top++] = 241;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 232;goto st1156;} + {stack[top++] = 241;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 232;goto st1158;} + {stack[top++] = 241;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 232;goto st1213;} + {stack[top++] = 241;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 232;goto st1224;} + {stack[top++] = 241;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 232;goto st1241;} + {stack[top++] = 241;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 232;goto st1252;} + {stack[top++] = 241;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 232;goto st1263;} + {stack[top++] = 241;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 232;goto st1276;} + {stack[top++] = 241;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 232;goto st1286;} + {stack[top++] = 241;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 232;goto st1325;} + {stack[top++] = 241;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 232;goto st1351;} + {stack[top++] = 241;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 232;goto st1354;} + {stack[top++] = 241;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 232;goto st1365;} + {stack[top++] = 241;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 232;goto st1367;} + {stack[top++] = 241;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 232;goto st1396;} + {stack[top++] = 241;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 232;goto st1409;} + {stack[top++] = 241;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 232;goto st1422;} + {stack[top++] = 241;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 232;goto st1428;} + {stack[top++] = 241;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 232;goto st1446;} + {stack[top++] = 241;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 232;goto st1441;} + {stack[top++] = 241;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 232;goto st1459;} + {stack[top++] = 241;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 232;goto st1465;} + {stack[top++] = 241;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 232;goto st1471;} + {stack[top++] = 241;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 232;goto st1479;} + {stack[top++] = 241;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 232;goto st1487;} + {stack[top++] = 241;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 232;goto st1493;} + {stack[top++] = 241;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 241;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st232; -st232: + goto st241; +st241: if ( ++p == pe ) - goto _test_eof232; -case 232: + goto _test_eof241; +case 241: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33780,18 +35347,18 @@ case 232: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 51: goto st89; - case 54: goto st91; - case 79: goto st93; - case 80: goto st95; - case 111: goto st93; - case 112: goto st95; + case 51: goto st98; + case 54: goto st100; + case 79: goto st102; + case 80: goto st104; + case 111: goto st102; + case 112: goto st104; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr133: { s->r_class = s->default_class; @@ -33804,100 +35371,103 @@ tr133: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 233;goto st1101;} + {stack[top++] = 242;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 233;goto st1103;} + {stack[top++] = 242;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 233;goto st1105;} + {stack[top++] = 242;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 233;goto st1137;} + {stack[top++] = 242;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 233;goto st1142;} + {stack[top++] = 242;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 233;goto st1147;} + {stack[top++] = 242;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 233;goto st1152;} + {stack[top++] = 242;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 233;goto st1156;} + {stack[top++] = 242;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 233;goto st1158;} + {stack[top++] = 242;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 233;goto st1213;} + {stack[top++] = 242;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 233;goto st1224;} + {stack[top++] = 242;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 233;goto st1241;} + {stack[top++] = 242;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 233;goto st1252;} + {stack[top++] = 242;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 233;goto st1263;} + {stack[top++] = 242;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 233;goto st1276;} + {stack[top++] = 242;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 233;goto st1286;} + {stack[top++] = 242;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 233;goto st1325;} + {stack[top++] = 242;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 233;goto st1351;} + {stack[top++] = 242;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 233;goto st1354;} + {stack[top++] = 242;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 233;goto st1365;} + {stack[top++] = 242;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 233;goto st1367;} + {stack[top++] = 242;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 233;goto st1396;} + {stack[top++] = 242;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 233;goto st1409;} + {stack[top++] = 242;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 233;goto st1422;} + {stack[top++] = 242;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 233;goto st1428;} + {stack[top++] = 242;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 233;goto st1446;} + {stack[top++] = 242;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 233;goto st1441;} + {stack[top++] = 242;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 233;goto st1459;} + {stack[top++] = 242;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 233;goto st1465;} + {stack[top++] = 242;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 233;goto st1471;} + {stack[top++] = 242;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 233;goto st1479;} + {stack[top++] = 242;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 233;goto st1487;} + {stack[top++] = 242;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 233;goto st1493;} + {stack[top++] = 242;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 242;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st233; -st233: + goto st242; +st242: if ( ++p == pe ) - goto _test_eof233; -case 233: + goto _test_eof242; +case 242: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -33915,16 +35485,16 @@ case 233: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 73: goto st97; - case 88: goto st101; - case 105: goto st97; - case 120: goto st101; + case 73: goto st106; + case 88: goto st110; + case 105: goto st106; + case 120: goto st110; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr134: { s->r_class = s->default_class; @@ -33937,100 +35507,103 @@ tr134: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 234;goto st1101;} + {stack[top++] = 243;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 234;goto st1103;} + {stack[top++] = 243;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 234;goto st1105;} + {stack[top++] = 243;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 234;goto st1137;} + {stack[top++] = 243;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 234;goto st1142;} + {stack[top++] = 243;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 234;goto st1147;} + {stack[top++] = 243;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 234;goto st1152;} + {stack[top++] = 243;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 234;goto st1156;} + {stack[top++] = 243;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 234;goto st1158;} + {stack[top++] = 243;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 234;goto st1213;} + {stack[top++] = 243;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 234;goto st1224;} + {stack[top++] = 243;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 234;goto st1241;} + {stack[top++] = 243;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 234;goto st1252;} + {stack[top++] = 243;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 234;goto st1263;} + {stack[top++] = 243;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 234;goto st1276;} + {stack[top++] = 243;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 234;goto st1286;} + {stack[top++] = 243;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 234;goto st1325;} + {stack[top++] = 243;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 234;goto st1351;} + {stack[top++] = 243;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 234;goto st1354;} + {stack[top++] = 243;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 234;goto st1365;} + {stack[top++] = 243;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 234;goto st1367;} + {stack[top++] = 243;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 234;goto st1396;} + {stack[top++] = 243;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 234;goto st1409;} + {stack[top++] = 243;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 234;goto st1422;} + {stack[top++] = 243;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 234;goto st1428;} + {stack[top++] = 243;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 234;goto st1446;} + {stack[top++] = 243;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 234;goto st1441;} + {stack[top++] = 243;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 234;goto st1459;} + {stack[top++] = 243;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 234;goto st1465;} + {stack[top++] = 243;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 234;goto st1471;} + {stack[top++] = 243;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 234;goto st1479;} + {stack[top++] = 243;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 234;goto st1487;} + {stack[top++] = 243;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 234;goto st1493;} + {stack[top++] = 243;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 243;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st234; -st234: + goto st243; +st243: if ( ++p == pe ) - goto _test_eof234; -case 234: + goto _test_eof243; +case 243: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34048,18 +35621,18 @@ case 234: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 65: goto st103; - case 73: goto st107; - case 83: goto st109; - case 97: goto st103; - case 105: goto st107; - case 115: goto st109; + case 65: goto st112; + case 73: goto st116; + case 83: goto st118; + case 97: goto st112; + case 105: goto st116; + case 115: goto st118; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr135: { s->r_class = s->default_class; @@ -34072,100 +35645,103 @@ tr135: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 235;goto st1101;} + {stack[top++] = 244;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 235;goto st1103;} + {stack[top++] = 244;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 235;goto st1105;} + {stack[top++] = 244;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 235;goto st1137;} + {stack[top++] = 244;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 235;goto st1142;} + {stack[top++] = 244;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 235;goto st1147;} + {stack[top++] = 244;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 235;goto st1152;} + {stack[top++] = 244;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 235;goto st1156;} + {stack[top++] = 244;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 235;goto st1158;} + {stack[top++] = 244;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 235;goto st1213;} + {stack[top++] = 244;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 235;goto st1224;} + {stack[top++] = 244;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 235;goto st1241;} + {stack[top++] = 244;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 235;goto st1252;} + {stack[top++] = 244;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 235;goto st1263;} + {stack[top++] = 244;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 235;goto st1276;} + {stack[top++] = 244;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 235;goto st1286;} + {stack[top++] = 244;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 235;goto st1325;} + {stack[top++] = 244;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 235;goto st1351;} + {stack[top++] = 244;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 235;goto st1354;} + {stack[top++] = 244;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 235;goto st1365;} + {stack[top++] = 244;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 235;goto st1367;} + {stack[top++] = 244;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 235;goto st1396;} + {stack[top++] = 244;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 235;goto st1409;} + {stack[top++] = 244;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 235;goto st1422;} + {stack[top++] = 244;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 235;goto st1428;} + {stack[top++] = 244;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 235;goto st1446;} + {stack[top++] = 244;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 235;goto st1441;} + {stack[top++] = 244;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 235;goto st1459;} + {stack[top++] = 244;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 235;goto st1465;} + {stack[top++] = 244;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 235;goto st1471;} + {stack[top++] = 244;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 235;goto st1479;} + {stack[top++] = 244;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 235;goto st1487;} + {stack[top++] = 244;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 235;goto st1493;} + {stack[top++] = 244;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 244;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st235; -st235: + goto st244; +st244: if ( ++p == pe ) - goto _test_eof235; -case 235: + goto _test_eof244; +case 244: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34183,14 +35759,14 @@ case 235: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 80: goto st119; - case 112: goto st119; + case 80: goto st128; + case 112: goto st128; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr136: { s->r_class = s->default_class; @@ -34203,100 +35779,103 @@ tr136: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 236;goto st1101;} + {stack[top++] = 245;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 236;goto st1103;} + {stack[top++] = 245;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 236;goto st1105;} + {stack[top++] = 245;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 236;goto st1137;} + {stack[top++] = 245;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 236;goto st1142;} + {stack[top++] = 245;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 236;goto st1147;} + {stack[top++] = 245;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 236;goto st1152;} + {stack[top++] = 245;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 236;goto st1156;} + {stack[top++] = 245;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 236;goto st1158;} + {stack[top++] = 245;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 236;goto st1213;} + {stack[top++] = 245;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 236;goto st1224;} + {stack[top++] = 245;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 236;goto st1241;} + {stack[top++] = 245;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 236;goto st1252;} + {stack[top++] = 245;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 236;goto st1263;} + {stack[top++] = 245;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 236;goto st1276;} + {stack[top++] = 245;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 236;goto st1286;} + {stack[top++] = 245;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 236;goto st1325;} + {stack[top++] = 245;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 236;goto st1351;} + {stack[top++] = 245;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 236;goto st1354;} + {stack[top++] = 245;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 236;goto st1365;} + {stack[top++] = 245;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 236;goto st1367;} + {stack[top++] = 245;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 236;goto st1396;} + {stack[top++] = 245;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 236;goto st1409;} + {stack[top++] = 245;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 236;goto st1422;} + {stack[top++] = 245;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 236;goto st1428;} + {stack[top++] = 245;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 236;goto st1446;} + {stack[top++] = 245;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 236;goto st1441;} + {stack[top++] = 245;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 236;goto st1459;} + {stack[top++] = 245;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 236;goto st1465;} + {stack[top++] = 245;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 236;goto st1471;} + {stack[top++] = 245;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 236;goto st1479;} + {stack[top++] = 245;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 236;goto st1487;} + {stack[top++] = 245;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 236;goto st1493;} + {stack[top++] = 245;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 245;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st236; -st236: + goto st245; +st245: if ( ++p == pe ) - goto _test_eof236; -case 236: + goto _test_eof245; +case 245: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34314,14 +35893,14 @@ case 236: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 84: goto st129; - case 116: goto st129; + case 84: goto st138; + case 116: goto st138; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr137: { s->r_class = s->default_class; @@ -34334,100 +35913,103 @@ tr137: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 237;goto st1101;} + {stack[top++] = 246;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 237;goto st1103;} + {stack[top++] = 246;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 237;goto st1105;} + {stack[top++] = 246;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 237;goto st1137;} + {stack[top++] = 246;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 237;goto st1142;} + {stack[top++] = 246;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 237;goto st1147;} + {stack[top++] = 246;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 237;goto st1152;} + {stack[top++] = 246;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 237;goto st1156;} + {stack[top++] = 246;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 237;goto st1158;} + {stack[top++] = 246;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 237;goto st1213;} + {stack[top++] = 246;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 237;goto st1224;} + {stack[top++] = 246;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 237;goto st1241;} + {stack[top++] = 246;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 237;goto st1252;} + {stack[top++] = 246;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 237;goto st1263;} + {stack[top++] = 246;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 237;goto st1276;} + {stack[top++] = 246;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 237;goto st1286;} + {stack[top++] = 246;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 237;goto st1325;} + {stack[top++] = 246;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 237;goto st1351;} + {stack[top++] = 246;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 237;goto st1354;} + {stack[top++] = 246;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 237;goto st1365;} + {stack[top++] = 246;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 237;goto st1367;} + {stack[top++] = 246;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 237;goto st1396;} + {stack[top++] = 246;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 237;goto st1409;} + {stack[top++] = 246;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 237;goto st1422;} + {stack[top++] = 246;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 237;goto st1428;} + {stack[top++] = 246;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 237;goto st1446;} + {stack[top++] = 246;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 237;goto st1441;} + {stack[top++] = 246;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 237;goto st1459;} + {stack[top++] = 246;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 237;goto st1465;} + {stack[top++] = 246;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 237;goto st1471;} + {stack[top++] = 246;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 237;goto st1479;} + {stack[top++] = 246;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 237;goto st1487;} + {stack[top++] = 246;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 237;goto st1493;} + {stack[top++] = 246;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 246;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st237; -st237: + goto st246; +st246: if ( ++p == pe ) - goto _test_eof237; -case 237: + goto _test_eof246; +case 246: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34445,20 +36027,20 @@ case 237: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 69: goto st132; - case 80: goto st138; - case 82: goto st139; - case 84: goto st143; - case 101: goto st132; - case 112: goto st138; - case 114: goto st139; - case 116: goto st143; + case 69: goto st141; + case 80: goto st147; + case 82: goto st148; + case 84: goto st152; + case 101: goto st141; + case 112: goto st147; + case 114: goto st148; + case 116: goto st152; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr138: { s->r_class = s->default_class; @@ -34471,100 +36053,103 @@ tr138: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 238;goto st1101;} + {stack[top++] = 247;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 238;goto st1103;} + {stack[top++] = 247;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 238;goto st1105;} + {stack[top++] = 247;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 238;goto st1137;} + {stack[top++] = 247;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 238;goto st1142;} + {stack[top++] = 247;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 238;goto st1147;} + {stack[top++] = 247;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 238;goto st1152;} + {stack[top++] = 247;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 238;goto st1156;} + {stack[top++] = 247;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 238;goto st1158;} + {stack[top++] = 247;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 238;goto st1213;} + {stack[top++] = 247;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 238;goto st1224;} + {stack[top++] = 247;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 238;goto st1241;} + {stack[top++] = 247;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 238;goto st1252;} + {stack[top++] = 247;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 238;goto st1263;} + {stack[top++] = 247;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 238;goto st1276;} + {stack[top++] = 247;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 238;goto st1286;} + {stack[top++] = 247;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 238;goto st1325;} + {stack[top++] = 247;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 238;goto st1351;} + {stack[top++] = 247;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 238;goto st1354;} + {stack[top++] = 247;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 238;goto st1365;} + {stack[top++] = 247;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 238;goto st1367;} + {stack[top++] = 247;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 238;goto st1396;} + {stack[top++] = 247;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 238;goto st1409;} + {stack[top++] = 247;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 238;goto st1422;} + {stack[top++] = 247;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 238;goto st1428;} + {stack[top++] = 247;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 238;goto st1446;} + {stack[top++] = 247;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 238;goto st1441;} + {stack[top++] = 247;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 238;goto st1459;} + {stack[top++] = 247;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 238;goto st1465;} + {stack[top++] = 247;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 238;goto st1471;} + {stack[top++] = 247;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 238;goto st1479;} + {stack[top++] = 247;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 238;goto st1487;} + {stack[top++] = 247;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 238;goto st1493;} + {stack[top++] = 247;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 247;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st238; -st238: + goto st247; +st247: if ( ++p == pe ) - goto _test_eof238; -case 238: + goto _test_eof247; +case 247: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34582,24 +36167,24 @@ case 238: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 77: goto st145; - case 79: goto st150; - case 80: goto st152; - case 82: goto st154; - case 83: goto st156; - case 86: goto st160; - case 109: goto st145; - case 111: goto st150; - case 112: goto st152; - case 114: goto st154; - case 115: goto st156; - case 118: goto st160; + case 77: goto st154; + case 79: goto st159; + case 80: goto st161; + case 82: goto st163; + case 83: goto st165; + case 86: goto st169; + case 109: goto st154; + case 111: goto st159; + case 112: goto st161; + case 114: goto st163; + case 115: goto st165; + case 118: goto st169; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr139: { s->r_class = s->default_class; @@ -34612,100 +36197,103 @@ tr139: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 239;goto st1101;} + {stack[top++] = 248;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 239;goto st1103;} + {stack[top++] = 248;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 239;goto st1105;} + {stack[top++] = 248;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 239;goto st1137;} + {stack[top++] = 248;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 239;goto st1142;} + {stack[top++] = 248;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 239;goto st1147;} + {stack[top++] = 248;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 239;goto st1152;} + {stack[top++] = 248;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 239;goto st1156;} + {stack[top++] = 248;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 239;goto st1158;} + {stack[top++] = 248;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 239;goto st1213;} + {stack[top++] = 248;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 239;goto st1224;} + {stack[top++] = 248;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 239;goto st1241;} + {stack[top++] = 248;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 239;goto st1252;} + {stack[top++] = 248;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 239;goto st1263;} + {stack[top++] = 248;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 239;goto st1276;} + {stack[top++] = 248;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 239;goto st1286;} + {stack[top++] = 248;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 239;goto st1325;} + {stack[top++] = 248;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 239;goto st1351;} + {stack[top++] = 248;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 239;goto st1354;} + {stack[top++] = 248;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 239;goto st1365;} + {stack[top++] = 248;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 239;goto st1367;} + {stack[top++] = 248;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 239;goto st1396;} + {stack[top++] = 248;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 239;goto st1409;} + {stack[top++] = 248;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 239;goto st1422;} + {stack[top++] = 248;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 239;goto st1428;} + {stack[top++] = 248;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 239;goto st1446;} + {stack[top++] = 248;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 239;goto st1441;} + {stack[top++] = 248;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 239;goto st1459;} + {stack[top++] = 248;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 239;goto st1465;} + {stack[top++] = 248;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 239;goto st1471;} + {stack[top++] = 248;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 239;goto st1479;} + {stack[top++] = 248;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 239;goto st1487;} + {stack[top++] = 248;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 239;goto st1493;} + {stack[top++] = 248;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 248;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st239; -st239: + goto st248; +st248: if ( ++p == pe ) - goto _test_eof239; -case 239: + goto _test_eof248; +case 248: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34723,18 +36311,18 @@ case 239: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 76: goto st164; - case 88: goto st167; - case 89: goto st169; - case 108: goto st164; - case 120: goto st167; - case 121: goto st169; + case 76: goto st173; + case 88: goto st176; + case 89: goto st178; + case 108: goto st173; + case 120: goto st176; + case 121: goto st178; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr140: { s->r_class = s->default_class; @@ -34747,100 +36335,103 @@ tr140: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 240;goto st1101;} + {stack[top++] = 249;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 240;goto st1103;} + {stack[top++] = 249;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 240;goto st1105;} + {stack[top++] = 249;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 240;goto st1137;} + {stack[top++] = 249;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 240;goto st1142;} + {stack[top++] = 249;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 240;goto st1147;} + {stack[top++] = 249;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 240;goto st1152;} + {stack[top++] = 249;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 240;goto st1156;} + {stack[top++] = 249;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 240;goto st1158;} + {stack[top++] = 249;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 240;goto st1213;} + {stack[top++] = 249;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 240;goto st1224;} + {stack[top++] = 249;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 240;goto st1241;} + {stack[top++] = 249;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 240;goto st1252;} + {stack[top++] = 249;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 240;goto st1263;} + {stack[top++] = 249;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 240;goto st1276;} + {stack[top++] = 249;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 240;goto st1286;} + {stack[top++] = 249;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 240;goto st1325;} + {stack[top++] = 249;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 240;goto st1351;} + {stack[top++] = 249;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 240;goto st1354;} + {stack[top++] = 249;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 240;goto st1365;} + {stack[top++] = 249;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 240;goto st1367;} + {stack[top++] = 249;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 240;goto st1396;} + {stack[top++] = 249;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 240;goto st1409;} + {stack[top++] = 249;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 240;goto st1422;} + {stack[top++] = 249;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 240;goto st1428;} + {stack[top++] = 249;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 240;goto st1446;} + {stack[top++] = 249;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 240;goto st1441;} + {stack[top++] = 249;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 240;goto st1459;} + {stack[top++] = 249;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 240;goto st1465;} + {stack[top++] = 249;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 240;goto st1471;} + {stack[top++] = 249;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 240;goto st1479;} + {stack[top++] = 249;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 240;goto st1487;} + {stack[top++] = 249;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 240;goto st1493;} + {stack[top++] = 249;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 249;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st240; -st240: + goto st249; +st249: if ( ++p == pe ) - goto _test_eof240; -case 240: + goto _test_eof249; +case 249: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34858,14 +36449,14 @@ case 240: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 82: goto st174; - case 114: goto st174; + case 82: goto st183; + case 114: goto st183; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr141: { s->r_class = s->default_class; @@ -34878,100 +36469,103 @@ tr141: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 241;goto st1101;} + {stack[top++] = 250;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 241;goto st1103;} + {stack[top++] = 250;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 241;goto st1105;} + {stack[top++] = 250;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 241;goto st1137;} + {stack[top++] = 250;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 241;goto st1142;} + {stack[top++] = 250;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 241;goto st1147;} + {stack[top++] = 250;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 241;goto st1152;} + {stack[top++] = 250;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 241;goto st1156;} + {stack[top++] = 250;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 241;goto st1158;} + {stack[top++] = 250;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 241;goto st1213;} + {stack[top++] = 250;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 241;goto st1224;} + {stack[top++] = 250;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 241;goto st1241;} + {stack[top++] = 250;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 241;goto st1252;} + {stack[top++] = 250;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 241;goto st1263;} + {stack[top++] = 250;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 241;goto st1276;} + {stack[top++] = 250;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 241;goto st1286;} + {stack[top++] = 250;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 241;goto st1325;} + {stack[top++] = 250;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 241;goto st1351;} + {stack[top++] = 250;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 241;goto st1354;} + {stack[top++] = 250;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 241;goto st1365;} + {stack[top++] = 250;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 241;goto st1367;} + {stack[top++] = 250;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 241;goto st1396;} + {stack[top++] = 250;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 241;goto st1409;} + {stack[top++] = 250;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 241;goto st1422;} + {stack[top++] = 250;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 241;goto st1428;} + {stack[top++] = 250;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 241;goto st1446;} + {stack[top++] = 250;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 241;goto st1441;} + {stack[top++] = 250;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 241;goto st1459;} + {stack[top++] = 250;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 241;goto st1465;} + {stack[top++] = 250;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 241;goto st1471;} + {stack[top++] = 250;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 241;goto st1479;} + {stack[top++] = 250;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 241;goto st1487;} + {stack[top++] = 250;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 241;goto st1493;} + {stack[top++] = 250;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 250;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st241; -st241: + goto st250; +st250: if ( ++p == pe ) - goto _test_eof241; -case 241: + goto _test_eof250; +case 250: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -34989,14 +36583,14 @@ case 241: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 65: goto st177; - case 97: goto st177; + case 65: goto st186; + case 97: goto st186; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; + goto tr892; tr142: { s->r_class = s->default_class; @@ -35009,100 +36603,103 @@ tr142: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 242;goto st1101;} + {stack[top++] = 251;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 242;goto st1103;} + {stack[top++] = 251;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 242;goto st1105;} + {stack[top++] = 251;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 242;goto st1137;} + {stack[top++] = 251;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 242;goto st1142;} + {stack[top++] = 251;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 242;goto st1147;} + {stack[top++] = 251;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 242;goto st1152;} + {stack[top++] = 251;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 242;goto st1156;} + {stack[top++] = 251;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 242;goto st1158;} + {stack[top++] = 251;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 242;goto st1213;} + {stack[top++] = 251;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 242;goto st1224;} + {stack[top++] = 251;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 242;goto st1241;} + {stack[top++] = 251;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 242;goto st1252;} + {stack[top++] = 251;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 242;goto st1263;} + {stack[top++] = 251;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 242;goto st1276;} + {stack[top++] = 251;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 242;goto st1286;} + {stack[top++] = 251;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 242;goto st1325;} + {stack[top++] = 251;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 242;goto st1351;} + {stack[top++] = 251;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 242;goto st1354;} + {stack[top++] = 251;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 242;goto st1365;} + {stack[top++] = 251;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 242;goto st1367;} + {stack[top++] = 251;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 242;goto st1396;} + {stack[top++] = 251;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 242;goto st1409;} + {stack[top++] = 251;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 242;goto st1422;} + {stack[top++] = 251;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 242;goto st1428;} + {stack[top++] = 251;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 242;goto st1446;} + {stack[top++] = 251;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 242;goto st1441;} + {stack[top++] = 251;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 242;goto st1459;} + {stack[top++] = 251;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 242;goto st1465;} + {stack[top++] = 251;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 242;goto st1471;} + {stack[top++] = 251;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 242;goto st1479;} + {stack[top++] = 251;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 242;goto st1487;} + {stack[top++] = 251;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 242;goto st1493;} + {stack[top++] = 251;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 251;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st242; -st242: + goto st251; +st251: if ( ++p == pe ) - goto _test_eof242; -case 242: + goto _test_eof251; +case 251: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35120,27 +36717,27 @@ case 242: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 79: goto st183; - case 111: goto st183; + case 79: goto st192; + case 111: goto st192; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr867; -tr901: + goto tr892; +tr926: { s->buffer_length = 0; } - goto st243; -tr903: + goto st252; +tr928: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st243; -tr1043: + goto st252; +tr1068: { s->buffer_length = 0; } @@ -35148,8 +36745,8 @@ tr1043: s->buffer[0] = 0; s->buffer_length = 0; } - goto st243; -tr970: + goto st252; +tr995: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -35162,8 +36759,8 @@ tr970: { s->buffer_length = 0; } - goto st243; -tr974: + goto st252; +tr999: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -35172,8 +36769,8 @@ tr974: { s->buffer_length = 0; } - goto st243; -tr939: + goto st252; +tr964: { s->r_owner_length = s->dname_tmp_length; } @@ -35188,8 +36785,8 @@ tr939: s->buffer[0] = 0; s->buffer_length = 0; } - goto st243; -tr4307: + goto st252; +tr4592: { s->buffer_length = 0; } @@ -35200,14 +36797,14 @@ tr4307: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st243; -st243: + goto st252; +st252: if ( ++p == pe ) - goto _test_eof243; -case 243: + goto _test_eof252; +case 252: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -35228,11 +36825,11 @@ case 243: } switch( _widec ) { case 1802: goto tr99; - case 2058: goto tr904; + case 2058: goto tr929; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr903; + goto tr928; } else if ( _widec >= 1664 ) goto tr98; goto tr86; @@ -35240,8 +36837,8 @@ tr143: { s->line_counter++; } - goto st1512; -tr1017: + goto st1659; +tr1042: { s->buffer[s->buffer_length++] = 0; @@ -35251,15 +36848,15 @@ tr1017: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1512; goto _out;} + {p++; cs = 1659; goto _out;} } } } { s->line_counter++; } - goto st1512; -tr904: + goto st1659; +tr929: { s->buffer[s->buffer_length++] = 0; @@ -35269,7 +36866,7 @@ tr904: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1512; goto _out;} + {p++; cs = 1659; goto _out;} } } } @@ -35279,7 +36876,7 @@ tr904: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -35292,23 +36889,23 @@ tr904: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1512; goto _out;} + {p++; cs = 1659; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1512; goto _out;} + p--; {p++; cs = 1659; goto _out;} } } - goto st1512; -tr945: + goto st1659; +tr970: { s->line_counter++; } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -35321,16 +36918,16 @@ tr945: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1512; goto _out;} + {p++; cs = 1659; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1512; goto _out;} + p--; {p++; cs = 1659; goto _out;} } } - goto st1512; -tr938: + goto st1659; +tr963: { s->r_owner_length = s->dname_tmp_length; } @@ -35348,7 +36945,7 @@ tr938: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -35361,34 +36958,34 @@ tr938: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1512; goto _out;} + {p++; cs = 1659; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1512; goto _out;} + p--; {p++; cs = 1659; goto _out;} } } - goto st1512; -tr4235: + goto st1659; +tr4520: { s->line_counter++; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1512; -st1512: + goto st1659; +st1659: if ( ++p == pe ) - goto _test_eof1512; -case 1512: + goto _test_eof1659; +case 1659: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35406,59 +37003,59 @@ case 1512: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4229; - case 32: goto tr4229; - case 36: goto tr4230; - case 40: goto tr4231; - case 41: goto tr4232; - case 42: goto tr4233; + case 9: goto tr4514; + case 32: goto tr4514; + case 36: goto tr4515; + case 40: goto tr4516; + case 41: goto tr4517; + case 42: goto tr4518; case 58: goto tr76; - case 65: goto tr4311; - case 67: goto tr4312; - case 68: goto tr4313; - case 69: goto tr4314; - case 72: goto tr4315; - case 73: goto tr4316; - case 75: goto tr4317; - case 76: goto tr4318; - case 77: goto tr4319; - case 78: goto tr4320; - case 79: goto tr4321; - case 80: goto tr4322; - case 82: goto tr4323; - case 83: goto tr4324; - case 84: goto tr4325; - case 85: goto tr4326; - case 87: goto tr4327; - case 90: goto tr4328; - case 92: goto tr4234; - case 95: goto tr4233; - case 97: goto tr4311; - case 99: goto tr4312; - case 100: goto tr4313; - case 101: goto tr4314; - case 104: goto tr4315; - case 105: goto tr4316; - case 107: goto tr4317; - case 108: goto tr4318; - case 109: goto tr4319; - case 110: goto tr4320; - case 111: goto tr4321; - case 112: goto tr4322; - case 114: goto tr4323; - case 115: goto tr4324; - case 116: goto tr4325; - case 117: goto tr4326; - case 119: goto tr4327; - case 122: goto tr4328; - case 2826: goto tr4225; - case 2875: goto tr4226; - case 3082: goto tr4235; - case 3131: goto tr4236; - case 3338: goto tr4237; - case 3387: goto tr4238; - case 3594: goto tr4239; - case 3643: goto tr4240; + case 65: goto tr4596; + case 67: goto tr4597; + case 68: goto tr4598; + case 69: goto tr4599; + case 72: goto tr4600; + case 73: goto tr4601; + case 75: goto tr4602; + case 76: goto tr4603; + case 77: goto tr4604; + case 78: goto tr4605; + case 79: goto tr4606; + case 80: goto tr4607; + case 82: goto tr4608; + case 83: goto tr4609; + case 84: goto tr4610; + case 85: goto tr4611; + case 87: goto tr4612; + case 90: goto tr4613; + case 92: goto tr4519; + case 95: goto tr4518; + case 97: goto tr4596; + case 99: goto tr4597; + case 100: goto tr4598; + case 101: goto tr4599; + case 104: goto tr4600; + case 105: goto tr4601; + case 107: goto tr4602; + case 108: goto tr4603; + case 109: goto tr4604; + case 110: goto tr4605; + case 111: goto tr4606; + case 112: goto tr4607; + case 114: goto tr4608; + case 115: goto tr4609; + case 116: goto tr4610; + case 117: goto tr4611; + case 119: goto tr4612; + case 122: goto tr4613; + case 2826: goto tr4510; + case 2875: goto tr4511; + case 3082: goto tr4520; + case 3131: goto tr4521; + case 3338: goto tr4522; + case 3387: goto tr4523; + case 3594: goto tr4524; + case 3643: goto tr4525; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -35467,126 +37064,129 @@ case 1512: } else if ( _widec > 44 ) { if ( _widec > 47 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4310; + goto tr4595; } else if ( _widec >= 45 ) - goto tr4233; + goto tr4518; } else goto tr76; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 89 ) - goto tr4233; + goto tr4518; } else if ( _widec > 96 ) { if ( _widec > 121 ) { if ( 123 <= _widec ) goto tr76; } else if ( _widec >= 98 ) - goto tr4233; + goto tr4518; } else goto tr76; } else goto tr76; - goto tr4309; -tr4230: + goto tr4594; +tr4515: { s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 244;goto st1101;} + {stack[top++] = 253;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 244;goto st1103;} + {stack[top++] = 253;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 244;goto st1105;} + {stack[top++] = 253;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 244;goto st1137;} + {stack[top++] = 253;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 244;goto st1142;} + {stack[top++] = 253;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 244;goto st1147;} + {stack[top++] = 253;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 244;goto st1152;} + {stack[top++] = 253;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 244;goto st1156;} + {stack[top++] = 253;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 244;goto st1158;} + {stack[top++] = 253;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 244;goto st1213;} + {stack[top++] = 253;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 244;goto st1224;} + {stack[top++] = 253;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 244;goto st1241;} + {stack[top++] = 253;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 244;goto st1252;} + {stack[top++] = 253;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 244;goto st1263;} + {stack[top++] = 253;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 244;goto st1276;} + {stack[top++] = 253;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 244;goto st1286;} + {stack[top++] = 253;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 244;goto st1325;} + {stack[top++] = 253;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 244;goto st1351;} + {stack[top++] = 253;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 244;goto st1354;} + {stack[top++] = 253;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 244;goto st1365;} + {stack[top++] = 253;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 244;goto st1367;} + {stack[top++] = 253;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 244;goto st1396;} + {stack[top++] = 253;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 244;goto st1409;} + {stack[top++] = 253;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 244;goto st1422;} + {stack[top++] = 253;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 244;goto st1428;} + {stack[top++] = 253;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 244;goto st1446;} + {stack[top++] = 253;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 244;goto st1441;} + {stack[top++] = 253;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 244;goto st1459;} + {stack[top++] = 253;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 244;goto st1465;} + {stack[top++] = 253;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 244;goto st1471;} + {stack[top++] = 253;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 244;goto st1479;} + {stack[top++] = 253;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 244;goto st1487;} + {stack[top++] = 253;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 244;goto st1493;} + {stack[top++] = 253;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 253;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st244; -st244: + goto st253; +st253: if ( ++p == pe ) - goto _test_eof244; -case 244: + goto _test_eof253; +case 253: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35604,224 +37204,227 @@ case 244: case 32: goto tr87; case 40: goto tr88; case 41: goto tr89; - case 73: goto tr800; - case 79: goto tr801; - case 84: goto tr802; - case 105: goto tr800; - case 111: goto tr801; - case 116: goto tr802; + case 73: goto tr825; + case 79: goto tr826; + case 84: goto tr827; + case 105: goto tr825; + case 111: goto tr826; + case 116: goto tr827; case 1802: goto tr90; case 1851: goto tr91; case 2058: goto tr90; case 2107: goto tr91; } - goto tr905; -tr801: + goto tr930; +tr826: { ERR(ZS_OK); } - goto st245; -st245: + goto st254; +st254: if ( ++p == pe ) - goto _test_eof245; -case 245: + goto _test_eof254; +case 254: switch( (*p) ) { - case 82: goto st246; - case 114: goto st246; + case 82: goto st255; + case 114: goto st255; } - goto tr799; -st246: + goto tr824; +st255: if ( ++p == pe ) - goto _test_eof246; -case 246: + goto _test_eof255; +case 255: switch( (*p) ) { - case 73: goto st247; - case 105: goto st247; + case 73: goto st256; + case 105: goto st256; } - goto tr799; -st247: + goto tr824; +st256: if ( ++p == pe ) - goto _test_eof247; -case 247: + goto _test_eof256; +case 256: switch( (*p) ) { - case 71: goto st248; - case 103: goto st248; + case 71: goto st257; + case 103: goto st257; } - goto tr799; -st248: + goto tr824; +st257: if ( ++p == pe ) - goto _test_eof248; -case 248: + goto _test_eof257; +case 257: switch( (*p) ) { - case 73: goto st249; - case 105: goto st249; + case 73: goto st258; + case 105: goto st258; } - goto tr799; -st249: + goto tr824; +st258: if ( ++p == pe ) - goto _test_eof249; -case 249: + goto _test_eof258; +case 258: switch( (*p) ) { - case 78: goto st250; - case 110: goto st250; + case 78: goto st259; + case 110: goto st259; } - goto tr799; -st250: + goto tr824; +st259: if ( ++p == pe ) - goto _test_eof250; -case 250: + goto _test_eof259; +case 259: switch( (*p) ) { - case 32: goto tr911; - case 59: goto tr911; + case 32: goto tr936; + case 59: goto tr936; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr911; + goto tr936; } else if ( (*p) >= 9 ) - goto tr911; - goto tr799; -tr802: + goto tr936; + goto tr824; +tr827: { ERR(ZS_OK); } - goto st251; -st251: + goto st260; +st260: if ( ++p == pe ) - goto _test_eof251; -case 251: + goto _test_eof260; +case 260: switch( (*p) ) { - case 84: goto st252; - case 116: goto st252; + case 84: goto st261; + case 116: goto st261; } - goto tr799; -st252: + goto tr824; +st261: if ( ++p == pe ) - goto _test_eof252; -case 252: + goto _test_eof261; +case 261: switch( (*p) ) { - case 76: goto st253; - case 108: goto st253; + case 76: goto st262; + case 108: goto st262; } - goto tr799; -st253: + goto tr824; +st262: if ( ++p == pe ) - goto _test_eof253; -case 253: + goto _test_eof262; +case 262: switch( (*p) ) { - case 32: goto tr914; - case 59: goto tr914; + case 32: goto tr939; + case 59: goto tr939; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr914; + goto tr939; } else if ( (*p) >= 9 ) - goto tr914; - goto tr799; -tr4233: + goto tr939; + goto tr824; +tr4518: { s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 254;goto st1101;} + {stack[top++] = 263;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 254;goto st1103;} + {stack[top++] = 263;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 254;goto st1105;} + {stack[top++] = 263;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 254;goto st1137;} + {stack[top++] = 263;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 254;goto st1142;} + {stack[top++] = 263;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 254;goto st1147;} + {stack[top++] = 263;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 254;goto st1152;} + {stack[top++] = 263;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 254;goto st1156;} + {stack[top++] = 263;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 254;goto st1158;} + {stack[top++] = 263;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 254;goto st1213;} + {stack[top++] = 263;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 254;goto st1224;} + {stack[top++] = 263;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 254;goto st1241;} + {stack[top++] = 263;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 254;goto st1252;} + {stack[top++] = 263;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 254;goto st1263;} + {stack[top++] = 263;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 254;goto st1276;} + {stack[top++] = 263;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 254;goto st1286;} + {stack[top++] = 263;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 254;goto st1325;} + {stack[top++] = 263;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 254;goto st1351;} + {stack[top++] = 263;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 254;goto st1354;} + {stack[top++] = 263;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 254;goto st1365;} + {stack[top++] = 263;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 254;goto st1367;} + {stack[top++] = 263;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 254;goto st1396;} + {stack[top++] = 263;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 254;goto st1409;} + {stack[top++] = 263;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 254;goto st1422;} + {stack[top++] = 263;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 254;goto st1428;} + {stack[top++] = 263;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 254;goto st1446;} + {stack[top++] = 263;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 254;goto st1441;} + {stack[top++] = 263;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 254;goto st1459;} + {stack[top++] = 263;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 254;goto st1465;} + {stack[top++] = 263;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 254;goto st1471;} + {stack[top++] = 263;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 254;goto st1479;} + {stack[top++] = 263;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 254;goto st1487;} + {stack[top++] = 263;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 254;goto st1493;} + {stack[top++] = 263;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 263;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 254;goto st331;} } - goto st254; -st254: + { p--; {stack[top++] = 263;goto st340;} } + goto st263; +st263: if ( ++p == pe ) - goto _test_eof254; -case 254: + goto _test_eof263; +case 263: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35835,17 +37438,17 @@ case 254: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr915; -tr4310: + goto tr940; +tr4595: { s->number64 = 0; } @@ -35860,7 +37463,7 @@ tr4310: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -35868,105 +37471,108 @@ tr4310: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 255;goto st1101;} + {stack[top++] = 264;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 255;goto st1103;} + {stack[top++] = 264;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 255;goto st1105;} + {stack[top++] = 264;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 255;goto st1137;} + {stack[top++] = 264;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 255;goto st1142;} + {stack[top++] = 264;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 255;goto st1147;} + {stack[top++] = 264;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 255;goto st1152;} + {stack[top++] = 264;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 255;goto st1156;} + {stack[top++] = 264;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 255;goto st1158;} + {stack[top++] = 264;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 255;goto st1213;} + {stack[top++] = 264;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 255;goto st1224;} + {stack[top++] = 264;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 255;goto st1241;} + {stack[top++] = 264;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 255;goto st1252;} + {stack[top++] = 264;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 255;goto st1263;} + {stack[top++] = 264;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 255;goto st1276;} + {stack[top++] = 264;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 255;goto st1286;} + {stack[top++] = 264;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 255;goto st1325;} + {stack[top++] = 264;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 255;goto st1351;} + {stack[top++] = 264;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 255;goto st1354;} + {stack[top++] = 264;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 255;goto st1365;} + {stack[top++] = 264;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 255;goto st1367;} + {stack[top++] = 264;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 255;goto st1396;} + {stack[top++] = 264;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 255;goto st1409;} + {stack[top++] = 264;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 255;goto st1422;} + {stack[top++] = 264;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 255;goto st1428;} + {stack[top++] = 264;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 255;goto st1446;} + {stack[top++] = 264;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 255;goto st1441;} + {stack[top++] = 264;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 255;goto st1459;} + {stack[top++] = 264;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 255;goto st1465;} + {stack[top++] = 264;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 255;goto st1471;} + {stack[top++] = 264;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 255;goto st1479;} + {stack[top++] = 264;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 255;goto st1487;} + {stack[top++] = 264;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 255;goto st1493;} + {stack[top++] = 264;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 264;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 255;goto st331;} } - goto st255; -st255: + { p--; {stack[top++] = 264;goto st340;} } + goto st264; +st264: if ( ++p == pe ) - goto _test_eof255; -case 255: + goto _test_eof264; +case 264: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -35980,47 +37586,47 @@ case 255: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr922; - case 32: goto tr922; - case 40: goto tr923; - case 41: goto tr924; + case 9: goto tr947; + case 32: goto tr947; + case 40: goto tr948; + case 41: goto tr949; case 68: goto tr32; case 72: goto tr33; case 77: goto tr34; - case 83: goto st213; + case 83: goto st222; case 87: goto tr36; case 100: goto tr32; case 104: goto tr33; case 109: goto tr34; - case 115: goto st213; + case 115: goto st222; case 119: goto tr36; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr925; - case 2107: goto tr926; + case 2058: goto tr950; + case 2107: goto tr951; } if ( 48 <= _widec && _widec <= 57 ) goto tr31; - goto tr921; -tr928: + goto tr946; +tr953: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st256; -tr929: + goto st265; +tr954: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st256; -tr922: + goto st265; +tr947: { s->r_owner_length = s->dname_tmp_length; } @@ -36029,22 +37635,22 @@ tr922: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st256; -tr923: + goto st265; +tr948: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -36053,22 +37659,22 @@ tr923: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st256; -tr924: + goto st265; +tr949: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -36077,18 +37683,18 @@ tr924: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st256; -st256: + goto st265; +st265: if ( ++p == pe ) - goto _test_eof256; -case 256: + goto _test_eof265; +case 265: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36102,10 +37708,10 @@ case 256: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st256; - case 32: goto st256; - case 40: goto tr928; - case 41: goto tr929; + case 9: goto st265; + case 32: goto st265; + case 40: goto tr953; + case 41: goto tr954; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -36144,25 +37750,25 @@ case 256: case 122: goto tr22; case 1802: goto tr96; case 1851: goto tr97; - case 2058: goto tr930; - case 2107: goto tr931; + case 2058: goto tr955; + case 2107: goto tr956; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; goto tr0; -tr931: +tr956: { s->buffer_length = 0; } - goto st257; -tr932: + goto st266; +tr957: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st257; -tr926: + goto st266; +tr951: { s->r_owner_length = s->dname_tmp_length; } @@ -36174,18 +37780,18 @@ tr926: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st257; -st257: + goto st266; +st266: if ( ++p == pe ) - goto _test_eof257; -case 257: + goto _test_eof266; +case 266: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -36206,15 +37812,15 @@ case 257: } switch( _widec ) { case 1802: goto tr99; - case 2058: goto tr933; + case 2058: goto tr958; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr932; + goto tr957; } else if ( _widec >= 1664 ) goto tr98; goto tr155; -tr4311: +tr4596: { s->r_class = s->default_class; } @@ -36226,105 +37832,108 @@ tr4311: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 258;goto st1101;} + {stack[top++] = 267;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 258;goto st1103;} + {stack[top++] = 267;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 258;goto st1105;} + {stack[top++] = 267;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 258;goto st1137;} + {stack[top++] = 267;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 258;goto st1142;} + {stack[top++] = 267;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 258;goto st1147;} + {stack[top++] = 267;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 258;goto st1152;} + {stack[top++] = 267;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 258;goto st1156;} + {stack[top++] = 267;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 258;goto st1158;} + {stack[top++] = 267;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 258;goto st1213;} + {stack[top++] = 267;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 258;goto st1224;} + {stack[top++] = 267;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 258;goto st1241;} + {stack[top++] = 267;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 258;goto st1252;} + {stack[top++] = 267;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 258;goto st1263;} + {stack[top++] = 267;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 258;goto st1276;} + {stack[top++] = 267;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 258;goto st1286;} + {stack[top++] = 267;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 258;goto st1325;} + {stack[top++] = 267;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 258;goto st1351;} + {stack[top++] = 267;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 258;goto st1354;} + {stack[top++] = 267;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 258;goto st1365;} + {stack[top++] = 267;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 258;goto st1367;} + {stack[top++] = 267;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 258;goto st1396;} + {stack[top++] = 267;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 258;goto st1409;} + {stack[top++] = 267;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 258;goto st1422;} + {stack[top++] = 267;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 258;goto st1428;} + {stack[top++] = 267;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 258;goto st1446;} + {stack[top++] = 267;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 258;goto st1441;} + {stack[top++] = 267;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 258;goto st1459;} + {stack[top++] = 267;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 258;goto st1465;} + {stack[top++] = 267;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 258;goto st1471;} + {stack[top++] = 267;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 258;goto st1479;} + {stack[top++] = 267;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 258;goto st1487;} + {stack[top++] = 267;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 258;goto st1493;} + {stack[top++] = 267;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 267;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 258;goto st331;} } - goto st258; -st258: + { p--; {stack[top++] = 267;goto st340;} } + goto st267; +st267: if ( ++p == pe ) - goto _test_eof258; -case 258: + goto _test_eof267; +case 267: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36342,47 +37951,47 @@ case 258: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr935; - case 32: goto tr935; - case 40: goto tr936; - case 41: goto tr937; - case 65: goto st283; - case 70: goto st286; - case 76: goto st290; - case 80: goto st294; - case 97: goto st283; - case 102: goto st286; - case 108: goto st290; - case 112: goto st294; + case 9: goto tr960; + case 32: goto tr960; + case 40: goto tr961; + case 41: goto tr962; + case 65: goto st292; + case 70: goto st295; + case 76: goto st299; + case 80: goto st303; + case 97: goto st292; + case 102: goto st295; + case 108: goto st299; + case 112: goto st303; case 2826: goto tr90; case 2875: goto tr91; - case 3082: goto tr938; - case 3131: goto tr939; - case 3338: goto tr873; - case 3387: goto tr874; - case 3594: goto tr940; - case 3643: goto tr941; - } - goto tr934; -tr943: + case 3082: goto tr963; + case 3131: goto tr964; + case 3338: goto tr898; + case 3387: goto tr899; + case 3594: goto tr965; + case 3643: goto tr966; + } + goto tr959; +tr968: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st259; -tr944: + goto st268; +tr969: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st259; -tr935: + goto st268; +tr960: { s->r_owner_length = s->dname_tmp_length; } @@ -36394,15 +38003,15 @@ tr935: s->buffer[0] = 0; s->buffer_length = 0; } - goto st259; -tr936: + goto st268; +tr961: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -36414,15 +38023,15 @@ tr936: s->buffer[0] = 0; s->buffer_length = 0; } - goto st259; -tr937: + goto st268; +tr962: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -36434,11 +38043,11 @@ tr937: s->buffer[0] = 0; s->buffer_length = 0; } - goto st259; -st259: + goto st268; +st268: if ( ++p == pe ) - goto _test_eof259; -case 259: + goto _test_eof268; +case 268: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -36456,10 +38065,10 @@ case 259: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st259; - case 32: goto st259; - case 40: goto tr943; - case 41: goto tr944; + case 9: goto st268; + case 32: goto st268; + case 40: goto tr968; + case 41: goto tr969; case 58: goto tr76; case 65: goto tr125; case 67: goto tr126; @@ -36500,12 +38109,12 @@ case 259: case 122: goto tr142; case 2826: goto tr96; case 2875: goto tr97; - case 3082: goto tr945; - case 3131: goto tr901; + case 3082: goto tr970; + case 3131: goto tr926; case 3338: goto tr115; case 3387: goto tr116; - case 3594: goto tr946; - case 3643: goto tr902; + case 3594: goto tr971; + case 3643: goto tr927; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -36528,97 +38137,100 @@ tr147: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1513;goto st1101;} + {stack[top++] = 1660;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 1513;goto st1103;} + {stack[top++] = 1660;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1513;goto st1105;} + {stack[top++] = 1660;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1513;goto st1137;} + {stack[top++] = 1660;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1513;goto st1142;} + {stack[top++] = 1660;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1513;goto st1147;} + {stack[top++] = 1660;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1513;goto st1152;} + {stack[top++] = 1660;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1513;goto st1156;} + {stack[top++] = 1660;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1513;goto st1158;} + {stack[top++] = 1660;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1513;goto st1213;} + {stack[top++] = 1660;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1513;goto st1224;} + {stack[top++] = 1660;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1513;goto st1241;} + {stack[top++] = 1660;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 1513;goto st1252;} + {stack[top++] = 1660;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1513;goto st1263;} + {stack[top++] = 1660;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1513;goto st1276;} + {stack[top++] = 1660;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1513;goto st1286;} + {stack[top++] = 1660;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1513;goto st1325;} + {stack[top++] = 1660;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1513;goto st1351;} + {stack[top++] = 1660;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1513;goto st1354;} + {stack[top++] = 1660;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1513;goto st1365;} + {stack[top++] = 1660;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1513;goto st1367;} + {stack[top++] = 1660;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1513;goto st1396;} + {stack[top++] = 1660;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1513;goto st1409;} + {stack[top++] = 1660;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1513;goto st1422;} + {stack[top++] = 1660;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1513;goto st1428;} + {stack[top++] = 1660;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1513;goto st1446;} + {stack[top++] = 1660;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 1513;goto st1441;} + {stack[top++] = 1660;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1513;goto st1459;} + {stack[top++] = 1660;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1513;goto st1465;} + {stack[top++] = 1660;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 1513;goto st1471;} + {stack[top++] = 1660;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1513;goto st1479;} + {stack[top++] = 1660;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1513;goto st1487;} + {stack[top++] = 1660;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1513;goto st1493;} + {stack[top++] = 1660;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 1660;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st1513; -tr946: + goto st1660; +tr971: { s->line_counter++; } @@ -36627,99 +38239,102 @@ tr946: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1513;goto st1101;} + {stack[top++] = 1660;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 1513;goto st1103;} + {stack[top++] = 1660;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1513;goto st1105;} + {stack[top++] = 1660;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1513;goto st1137;} + {stack[top++] = 1660;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1513;goto st1142;} + {stack[top++] = 1660;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1513;goto st1147;} + {stack[top++] = 1660;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1513;goto st1152;} + {stack[top++] = 1660;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1513;goto st1156;} + {stack[top++] = 1660;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1513;goto st1158;} + {stack[top++] = 1660;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1513;goto st1213;} + {stack[top++] = 1660;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1513;goto st1224;} + {stack[top++] = 1660;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1513;goto st1241;} + {stack[top++] = 1660;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 1513;goto st1252;} + {stack[top++] = 1660;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1513;goto st1263;} + {stack[top++] = 1660;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1513;goto st1276;} + {stack[top++] = 1660;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1513;goto st1286;} + {stack[top++] = 1660;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1513;goto st1325;} + {stack[top++] = 1660;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1513;goto st1351;} + {stack[top++] = 1660;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1513;goto st1354;} + {stack[top++] = 1660;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1513;goto st1365;} + {stack[top++] = 1660;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1513;goto st1367;} + {stack[top++] = 1660;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1513;goto st1396;} + {stack[top++] = 1660;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1513;goto st1409;} + {stack[top++] = 1660;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1513;goto st1422;} + {stack[top++] = 1660;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1513;goto st1428;} + {stack[top++] = 1660;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1513;goto st1446;} + {stack[top++] = 1660;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 1513;goto st1441;} + {stack[top++] = 1660;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1513;goto st1459;} + {stack[top++] = 1660;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1513;goto st1465;} + {stack[top++] = 1660;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 1513;goto st1471;} + {stack[top++] = 1660;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1513;goto st1479;} + {stack[top++] = 1660;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1513;goto st1487;} + {stack[top++] = 1660;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1513;goto st1493;} + {stack[top++] = 1660;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 1660;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -36732,16 +38347,16 @@ tr946: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1513; goto _out;} + {p++; cs = 1660; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1513; goto _out;} + p--; {p++; cs = 1660; goto _out;} } } - goto st1513; -tr940: + goto st1660; +tr965: { s->r_owner_length = s->dname_tmp_length; } @@ -36757,93 +38372,96 @@ tr940: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1513;goto st1101;} + {stack[top++] = 1660;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 1513;goto st1103;} + {stack[top++] = 1660;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1513;goto st1105;} + {stack[top++] = 1660;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1513;goto st1137;} + {stack[top++] = 1660;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1513;goto st1142;} + {stack[top++] = 1660;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1513;goto st1147;} + {stack[top++] = 1660;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1513;goto st1152;} + {stack[top++] = 1660;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1513;goto st1156;} + {stack[top++] = 1660;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1513;goto st1158;} + {stack[top++] = 1660;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1513;goto st1213;} + {stack[top++] = 1660;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1513;goto st1224;} + {stack[top++] = 1660;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1513;goto st1241;} + {stack[top++] = 1660;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 1513;goto st1252;} + {stack[top++] = 1660;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1513;goto st1263;} + {stack[top++] = 1660;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1513;goto st1276;} + {stack[top++] = 1660;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1513;goto st1286;} + {stack[top++] = 1660;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1513;goto st1325;} + {stack[top++] = 1660;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1513;goto st1351;} + {stack[top++] = 1660;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1513;goto st1354;} + {stack[top++] = 1660;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1513;goto st1365;} + {stack[top++] = 1660;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1513;goto st1367;} + {stack[top++] = 1660;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1513;goto st1396;} + {stack[top++] = 1660;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1513;goto st1409;} + {stack[top++] = 1660;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1513;goto st1422;} + {stack[top++] = 1660;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1513;goto st1428;} + {stack[top++] = 1660;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1513;goto st1446;} + {stack[top++] = 1660;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 1513;goto st1441;} + {stack[top++] = 1660;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1513;goto st1459;} + {stack[top++] = 1660;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1513;goto st1465;} + {stack[top++] = 1660;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 1513;goto st1471;} + {stack[top++] = 1660;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1513;goto st1479;} + {stack[top++] = 1660;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1513;goto st1487;} + {stack[top++] = 1660;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1513;goto st1493;} + {stack[top++] = 1660;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 1660;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { @@ -36853,7 +38471,7 @@ tr940: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->r_data_length = rdata_tail - s->r_data; @@ -36866,16 +38484,16 @@ tr940: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1513; goto _out;} + {p++; cs = 1660; goto _out;} } } } else { // Return if external processing. - p--; {p++; cs = 1513; goto _out;} + p--; {p++; cs = 1660; goto _out;} } } - goto st1513; -tr4239: + goto st1660; +tr4524: { s->line_counter++; } @@ -36884,110 +38502,113 @@ tr4239: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 1513;goto st1101;} + {stack[top++] = 1660;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 1513;goto st1103;} + {stack[top++] = 1660;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 1513;goto st1105;} + {stack[top++] = 1660;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 1513;goto st1137;} + {stack[top++] = 1660;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 1513;goto st1142;} + {stack[top++] = 1660;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 1513;goto st1147;} + {stack[top++] = 1660;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 1513;goto st1152;} + {stack[top++] = 1660;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 1513;goto st1156;} + {stack[top++] = 1660;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 1513;goto st1158;} + {stack[top++] = 1660;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 1513;goto st1213;} + {stack[top++] = 1660;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 1513;goto st1224;} + {stack[top++] = 1660;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 1513;goto st1241;} + {stack[top++] = 1660;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 1513;goto st1252;} + {stack[top++] = 1660;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 1513;goto st1263;} + {stack[top++] = 1660;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 1513;goto st1276;} + {stack[top++] = 1660;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 1513;goto st1286;} + {stack[top++] = 1660;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 1513;goto st1325;} + {stack[top++] = 1660;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 1513;goto st1351;} + {stack[top++] = 1660;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 1513;goto st1354;} + {stack[top++] = 1660;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 1513;goto st1365;} + {stack[top++] = 1660;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 1513;goto st1367;} + {stack[top++] = 1660;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 1513;goto st1396;} + {stack[top++] = 1660;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 1513;goto st1409;} + {stack[top++] = 1660;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 1513;goto st1422;} + {stack[top++] = 1660;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 1513;goto st1428;} + {stack[top++] = 1660;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 1513;goto st1446;} + {stack[top++] = 1660;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 1513;goto st1441;} + {stack[top++] = 1660;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 1513;goto st1459;} + {stack[top++] = 1660;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 1513;goto st1465;} + {stack[top++] = 1660;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 1513;goto st1471;} + {stack[top++] = 1660;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 1513;goto st1479;} + {stack[top++] = 1660;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 1513;goto st1487;} + {stack[top++] = 1660;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 1513;goto st1493;} + {stack[top++] = 1660;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 1660;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st1513; -st1513: + goto st1660; +st1660: if ( ++p == pe ) - goto _test_eof1513; -case 1513: + goto _test_eof1660; +case 1660: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37005,59 +38626,59 @@ case 1513: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr4304; - case 32: goto tr4304; - case 36: goto tr4230; - case 40: goto tr4305; - case 41: goto tr4306; - case 42: goto tr4233; + case 9: goto tr4589; + case 32: goto tr4589; + case 36: goto tr4515; + case 40: goto tr4590; + case 41: goto tr4591; + case 42: goto tr4518; case 58: goto tr76; - case 65: goto tr4311; - case 67: goto tr4312; - case 68: goto tr4313; - case 69: goto tr4314; - case 72: goto tr4315; - case 73: goto tr4316; - case 75: goto tr4317; - case 76: goto tr4318; - case 77: goto tr4319; - case 78: goto tr4320; - case 79: goto tr4321; - case 80: goto tr4322; - case 82: goto tr4323; - case 83: goto tr4324; - case 84: goto tr4325; - case 85: goto tr4326; - case 87: goto tr4327; - case 90: goto tr4328; - case 92: goto tr4234; - case 95: goto tr4233; - case 97: goto tr4311; - case 99: goto tr4312; - case 100: goto tr4313; - case 101: goto tr4314; - case 104: goto tr4315; - case 105: goto tr4316; - case 107: goto tr4317; - case 108: goto tr4318; - case 109: goto tr4319; - case 110: goto tr4320; - case 111: goto tr4321; - case 112: goto tr4322; - case 114: goto tr4323; - case 115: goto tr4324; - case 116: goto tr4325; - case 117: goto tr4326; - case 119: goto tr4327; - case 122: goto tr4328; + case 65: goto tr4596; + case 67: goto tr4597; + case 68: goto tr4598; + case 69: goto tr4599; + case 72: goto tr4600; + case 73: goto tr4601; + case 75: goto tr4602; + case 76: goto tr4603; + case 77: goto tr4604; + case 78: goto tr4605; + case 79: goto tr4606; + case 80: goto tr4607; + case 82: goto tr4608; + case 83: goto tr4609; + case 84: goto tr4610; + case 85: goto tr4611; + case 87: goto tr4612; + case 90: goto tr4613; + case 92: goto tr4519; + case 95: goto tr4518; + case 97: goto tr4596; + case 99: goto tr4597; + case 100: goto tr4598; + case 101: goto tr4599; + case 104: goto tr4600; + case 105: goto tr4601; + case 107: goto tr4602; + case 108: goto tr4603; + case 109: goto tr4604; + case 110: goto tr4605; + case 111: goto tr4606; + case 112: goto tr4607; + case 114: goto tr4608; + case 115: goto tr4609; + case 116: goto tr4610; + case 117: goto tr4611; + case 119: goto tr4612; + case 122: goto tr4613; case 2826: goto tr90; case 2875: goto tr91; - case 3082: goto tr4329; - case 3131: goto tr4307; + case 3082: goto tr4614; + case 3131: goto tr4592; case 3338: goto tr108; case 3387: goto tr109; - case 3594: goto tr4329; - case 3643: goto tr4308; + case 3594: goto tr4614; + case 3643: goto tr4593; } if ( _widec < 60 ) { if ( _widec < 11 ) { @@ -37066,27 +38687,27 @@ case 1513: } else if ( _widec > 44 ) { if ( _widec > 47 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4310; + goto tr4595; } else if ( _widec >= 45 ) - goto tr4233; + goto tr4518; } else goto tr76; } else if ( _widec > 63 ) { if ( _widec < 91 ) { if ( 64 <= _widec && _widec <= 89 ) - goto tr4233; + goto tr4518; } else if ( _widec > 96 ) { if ( _widec > 121 ) { if ( 123 <= _widec ) goto tr76; } else if ( _widec >= 98 ) - goto tr4233; + goto tr4518; } else goto tr76; } else goto tr76; - goto tr4309; -tr4312: + goto tr4594; +tr4597: { s->r_class = s->default_class; } @@ -37098,105 +38719,108 @@ tr4312: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 260;goto st1101;} + {stack[top++] = 269;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 260;goto st1103;} + {stack[top++] = 269;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 260;goto st1105;} + {stack[top++] = 269;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 260;goto st1137;} + {stack[top++] = 269;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 260;goto st1142;} + {stack[top++] = 269;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 260;goto st1147;} + {stack[top++] = 269;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 260;goto st1152;} + {stack[top++] = 269;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 260;goto st1156;} + {stack[top++] = 269;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 260;goto st1158;} + {stack[top++] = 269;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 260;goto st1213;} + {stack[top++] = 269;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 260;goto st1224;} + {stack[top++] = 269;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 260;goto st1241;} + {stack[top++] = 269;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 260;goto st1252;} + {stack[top++] = 269;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 260;goto st1263;} + {stack[top++] = 269;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 260;goto st1276;} + {stack[top++] = 269;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 260;goto st1286;} + {stack[top++] = 269;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 260;goto st1325;} + {stack[top++] = 269;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 260;goto st1351;} + {stack[top++] = 269;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 260;goto st1354;} + {stack[top++] = 269;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 260;goto st1365;} + {stack[top++] = 269;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 260;goto st1367;} + {stack[top++] = 269;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 260;goto st1396;} + {stack[top++] = 269;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 260;goto st1409;} + {stack[top++] = 269;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 260;goto st1422;} + {stack[top++] = 269;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 260;goto st1428;} + {stack[top++] = 269;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 260;goto st1446;} + {stack[top++] = 269;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 260;goto st1441;} + {stack[top++] = 269;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 260;goto st1459;} + {stack[top++] = 269;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 260;goto st1465;} + {stack[top++] = 269;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 260;goto st1471;} + {stack[top++] = 269;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 260;goto st1479;} + {stack[top++] = 269;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 260;goto st1487;} + {stack[top++] = 269;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 260;goto st1493;} + {stack[top++] = 269;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 269;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 260;goto st331;} } - goto st260; -st260: + { p--; {stack[top++] = 269;goto st340;} } + goto st269; +st269: if ( ++p == pe ) - goto _test_eof260; -case 260: + goto _test_eof269; +case 269: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37210,10 +38834,10 @@ case 260: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; case 65: goto st18; case 68: goto st22; case 69: goto st29; @@ -37226,11 +38850,11 @@ case 260: case 115: goto st36; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4313: + goto tr959; +tr4598: { s->r_class = s->default_class; } @@ -37242,105 +38866,108 @@ tr4313: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 261;goto st1101;} + {stack[top++] = 270;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 261;goto st1103;} + {stack[top++] = 270;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 261;goto st1105;} + {stack[top++] = 270;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 261;goto st1137;} + {stack[top++] = 270;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 261;goto st1142;} + {stack[top++] = 270;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 261;goto st1147;} + {stack[top++] = 270;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 261;goto st1152;} + {stack[top++] = 270;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 261;goto st1156;} + {stack[top++] = 270;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 261;goto st1158;} + {stack[top++] = 270;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 261;goto st1213;} + {stack[top++] = 270;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 261;goto st1224;} + {stack[top++] = 270;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 261;goto st1241;} + {stack[top++] = 270;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 261;goto st1252;} + {stack[top++] = 270;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 261;goto st1263;} + {stack[top++] = 270;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 261;goto st1276;} + {stack[top++] = 270;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 261;goto st1286;} + {stack[top++] = 270;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 261;goto st1325;} + {stack[top++] = 270;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 261;goto st1351;} + {stack[top++] = 270;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 261;goto st1354;} + {stack[top++] = 270;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 261;goto st1365;} + {stack[top++] = 270;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 261;goto st1367;} + {stack[top++] = 270;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 261;goto st1396;} + {stack[top++] = 270;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 261;goto st1409;} + {stack[top++] = 270;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 261;goto st1422;} + {stack[top++] = 270;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 261;goto st1428;} + {stack[top++] = 270;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 261;goto st1446;} + {stack[top++] = 270;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 261;goto st1441;} + {stack[top++] = 270;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 261;goto st1459;} + {stack[top++] = 270;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 261;goto st1465;} + {stack[top++] = 270;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 261;goto st1471;} + {stack[top++] = 270;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 261;goto st1479;} + {stack[top++] = 270;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 261;goto st1487;} + {stack[top++] = 270;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 261;goto st1493;} + {stack[top++] = 270;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 270;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 261;goto st331;} } - goto st261; -st261: + { p--; {stack[top++] = 270;goto st340;} } + goto st270; +st270: if ( ++p == pe ) - goto _test_eof261; -case 261: + goto _test_eof270; +case 270: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37354,23 +38981,25 @@ case 261: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 72: goto st41; - case 78: goto st45; - case 83: goto st53; - case 104: goto st41; - case 110: goto st45; - case 115: goto st53; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 69: goto st41; + case 72: goto st50; + case 78: goto st54; + case 83: goto st62; + case 101: goto st41; + case 104: goto st50; + case 110: goto st54; + case 115: goto st62; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4314: + goto tr959; +tr4599: { s->r_class = s->default_class; } @@ -37382,105 +39011,108 @@ tr4314: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 262;goto st1101;} + {stack[top++] = 271;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 262;goto st1103;} + {stack[top++] = 271;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 262;goto st1105;} + {stack[top++] = 271;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 262;goto st1137;} + {stack[top++] = 271;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 262;goto st1142;} + {stack[top++] = 271;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 262;goto st1147;} + {stack[top++] = 271;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 262;goto st1152;} + {stack[top++] = 271;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 262;goto st1156;} + {stack[top++] = 271;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 262;goto st1158;} + {stack[top++] = 271;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 262;goto st1213;} + {stack[top++] = 271;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 262;goto st1224;} + {stack[top++] = 271;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 262;goto st1241;} + {stack[top++] = 271;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 262;goto st1252;} + {stack[top++] = 271;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 262;goto st1263;} + {stack[top++] = 271;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 262;goto st1276;} + {stack[top++] = 271;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 262;goto st1286;} + {stack[top++] = 271;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 262;goto st1325;} + {stack[top++] = 271;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 262;goto st1351;} + {stack[top++] = 271;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 262;goto st1354;} + {stack[top++] = 271;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 262;goto st1365;} + {stack[top++] = 271;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 262;goto st1367;} + {stack[top++] = 271;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 262;goto st1396;} + {stack[top++] = 271;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 262;goto st1409;} + {stack[top++] = 271;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 262;goto st1422;} + {stack[top++] = 271;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 262;goto st1428;} + {stack[top++] = 271;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 262;goto st1446;} + {stack[top++] = 271;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 262;goto st1441;} + {stack[top++] = 271;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 262;goto st1459;} + {stack[top++] = 271;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 262;goto st1465;} + {stack[top++] = 271;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 262;goto st1471;} + {stack[top++] = 271;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 262;goto st1479;} + {stack[top++] = 271;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 262;goto st1487;} + {stack[top++] = 271;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 262;goto st1493;} + {stack[top++] = 271;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 271;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 262;goto st331;} } - goto st262; -st262: + { p--; {stack[top++] = 271;goto st340;} } + goto st271; +st271: if ( ++p == pe ) - goto _test_eof262; -case 262: + goto _test_eof271; +case 271: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37494,19 +39126,19 @@ case 262: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 85: goto st58; - case 117: goto st58; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 85: goto st67; + case 117: goto st67; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4315: + goto tr959; +tr4600: { s->r_class = s->default_class; } @@ -37518,105 +39150,108 @@ tr4315: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 263;goto st1101;} + {stack[top++] = 272;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 263;goto st1103;} + {stack[top++] = 272;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 263;goto st1105;} + {stack[top++] = 272;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 263;goto st1137;} + {stack[top++] = 272;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 263;goto st1142;} + {stack[top++] = 272;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 263;goto st1147;} + {stack[top++] = 272;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 263;goto st1152;} + {stack[top++] = 272;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 263;goto st1156;} + {stack[top++] = 272;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 263;goto st1158;} + {stack[top++] = 272;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 263;goto st1213;} + {stack[top++] = 272;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 263;goto st1224;} + {stack[top++] = 272;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 263;goto st1241;} + {stack[top++] = 272;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 263;goto st1252;} + {stack[top++] = 272;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 263;goto st1263;} + {stack[top++] = 272;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 263;goto st1276;} + {stack[top++] = 272;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 263;goto st1286;} + {stack[top++] = 272;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 263;goto st1325;} + {stack[top++] = 272;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 263;goto st1351;} + {stack[top++] = 272;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 263;goto st1354;} + {stack[top++] = 272;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 263;goto st1365;} + {stack[top++] = 272;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 263;goto st1367;} + {stack[top++] = 272;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 263;goto st1396;} + {stack[top++] = 272;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 263;goto st1409;} + {stack[top++] = 272;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 263;goto st1422;} + {stack[top++] = 272;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 263;goto st1428;} + {stack[top++] = 272;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 263;goto st1446;} + {stack[top++] = 272;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 263;goto st1441;} + {stack[top++] = 272;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 263;goto st1459;} + {stack[top++] = 272;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 263;goto st1465;} + {stack[top++] = 272;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 263;goto st1471;} + {stack[top++] = 272;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 263;goto st1479;} + {stack[top++] = 272;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 263;goto st1487;} + {stack[top++] = 272;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 263;goto st1493;} + {stack[top++] = 272;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 272;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 263;goto st331;} } - goto st263; -st263: + { p--; {stack[top++] = 272;goto st340;} } + goto st272; +st272: if ( ++p == pe ) - goto _test_eof263; -case 263: + goto _test_eof272; +case 272: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37630,21 +39265,21 @@ case 263: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 73: goto st65; - case 84: goto st69; - case 105: goto st65; - case 116: goto st69; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 73: goto st74; + case 84: goto st78; + case 105: goto st74; + case 116: goto st78; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4316: + goto tr959; +tr4601: { s->r_class = s->default_class; } @@ -37656,105 +39291,108 @@ tr4316: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 264;goto st1101;} + {stack[top++] = 273;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 264;goto st1103;} + {stack[top++] = 273;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 264;goto st1105;} + {stack[top++] = 273;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 264;goto st1137;} + {stack[top++] = 273;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 264;goto st1142;} + {stack[top++] = 273;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 264;goto st1147;} + {stack[top++] = 273;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 264;goto st1152;} + {stack[top++] = 273;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 264;goto st1156;} + {stack[top++] = 273;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 264;goto st1158;} + {stack[top++] = 273;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 264;goto st1213;} + {stack[top++] = 273;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 264;goto st1224;} + {stack[top++] = 273;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 264;goto st1241;} + {stack[top++] = 273;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 264;goto st1252;} + {stack[top++] = 273;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 264;goto st1263;} + {stack[top++] = 273;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 264;goto st1276;} + {stack[top++] = 273;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 264;goto st1286;} + {stack[top++] = 273;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 264;goto st1325;} + {stack[top++] = 273;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 264;goto st1351;} + {stack[top++] = 273;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 264;goto st1354;} + {stack[top++] = 273;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 264;goto st1365;} + {stack[top++] = 273;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 264;goto st1367;} + {stack[top++] = 273;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 264;goto st1396;} + {stack[top++] = 273;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 264;goto st1409;} + {stack[top++] = 273;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 264;goto st1422;} + {stack[top++] = 273;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 264;goto st1428;} + {stack[top++] = 273;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 264;goto st1446;} + {stack[top++] = 273;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 264;goto st1441;} + {stack[top++] = 273;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 264;goto st1459;} + {stack[top++] = 273;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 264;goto st1465;} + {stack[top++] = 273;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 264;goto st1471;} + {stack[top++] = 273;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 264;goto st1479;} + {stack[top++] = 273;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 264;goto st1487;} + {stack[top++] = 273;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 264;goto st1493;} + {stack[top++] = 273;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 273;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 264;goto st331;} } - goto st264; -st264: + { p--; {stack[top++] = 273;goto st340;} } + goto st273; +st273: if ( ++p == pe ) - goto _test_eof264; -case 264: + goto _test_eof273; +case 273: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37768,21 +39406,21 @@ case 264: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 78: goto st191; - case 80: goto st77; - case 110: goto st191; - case 112: goto st77; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 78: goto st200; + case 80: goto st86; + case 110: goto st200; + case 112: goto st86; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4317: + goto tr959; +tr4602: { s->r_class = s->default_class; } @@ -37794,105 +39432,108 @@ tr4317: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 265;goto st1101;} + {stack[top++] = 274;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 265;goto st1103;} + {stack[top++] = 274;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 265;goto st1105;} + {stack[top++] = 274;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 265;goto st1137;} + {stack[top++] = 274;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 265;goto st1142;} + {stack[top++] = 274;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 265;goto st1147;} + {stack[top++] = 274;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 265;goto st1152;} + {stack[top++] = 274;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 265;goto st1156;} + {stack[top++] = 274;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 265;goto st1158;} + {stack[top++] = 274;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 265;goto st1213;} + {stack[top++] = 274;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 265;goto st1224;} + {stack[top++] = 274;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 265;goto st1241;} + {stack[top++] = 274;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 265;goto st1252;} + {stack[top++] = 274;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 265;goto st1263;} + {stack[top++] = 274;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 265;goto st1276;} + {stack[top++] = 274;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 265;goto st1286;} + {stack[top++] = 274;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 265;goto st1325;} + {stack[top++] = 274;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 265;goto st1351;} + {stack[top++] = 274;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 265;goto st1354;} + {stack[top++] = 274;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 265;goto st1365;} + {stack[top++] = 274;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 265;goto st1367;} + {stack[top++] = 274;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 265;goto st1396;} + {stack[top++] = 274;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 265;goto st1409;} + {stack[top++] = 274;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 265;goto st1422;} + {stack[top++] = 274;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 265;goto st1428;} + {stack[top++] = 274;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 265;goto st1446;} + {stack[top++] = 274;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 265;goto st1441;} + {stack[top++] = 274;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 265;goto st1459;} + {stack[top++] = 274;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 265;goto st1465;} + {stack[top++] = 274;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 265;goto st1471;} + {stack[top++] = 274;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 265;goto st1479;} + {stack[top++] = 274;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 265;goto st1487;} + {stack[top++] = 274;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 265;goto st1493;} + {stack[top++] = 274;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 274;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 265;goto st331;} } - goto st265; -st265: + { p--; {stack[top++] = 274;goto st340;} } + goto st274; +st274: if ( ++p == pe ) - goto _test_eof265; -case 265: + goto _test_eof274; +case 274: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -37906,21 +39547,21 @@ case 265: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 69: goto st85; - case 88: goto st87; - case 101: goto st85; - case 120: goto st87; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 69: goto st94; + case 88: goto st96; + case 101: goto st94; + case 120: goto st96; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4318: + goto tr959; +tr4603: { s->r_class = s->default_class; } @@ -37932,105 +39573,108 @@ tr4318: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 266;goto st1101;} + {stack[top++] = 275;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 266;goto st1103;} + {stack[top++] = 275;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 266;goto st1105;} + {stack[top++] = 275;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 266;goto st1137;} + {stack[top++] = 275;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 266;goto st1142;} + {stack[top++] = 275;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 266;goto st1147;} + {stack[top++] = 275;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 266;goto st1152;} + {stack[top++] = 275;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 266;goto st1156;} + {stack[top++] = 275;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 266;goto st1158;} + {stack[top++] = 275;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 266;goto st1213;} + {stack[top++] = 275;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 266;goto st1224;} + {stack[top++] = 275;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 266;goto st1241;} + {stack[top++] = 275;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 266;goto st1252;} + {stack[top++] = 275;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 266;goto st1263;} + {stack[top++] = 275;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 266;goto st1276;} + {stack[top++] = 275;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 266;goto st1286;} + {stack[top++] = 275;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 266;goto st1325;} + {stack[top++] = 275;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 266;goto st1351;} + {stack[top++] = 275;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 266;goto st1354;} + {stack[top++] = 275;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 266;goto st1365;} + {stack[top++] = 275;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 266;goto st1367;} + {stack[top++] = 275;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 266;goto st1396;} + {stack[top++] = 275;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 266;goto st1409;} + {stack[top++] = 275;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 266;goto st1422;} + {stack[top++] = 275;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 266;goto st1428;} + {stack[top++] = 275;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 266;goto st1446;} + {stack[top++] = 275;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 266;goto st1441;} + {stack[top++] = 275;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 266;goto st1459;} + {stack[top++] = 275;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 266;goto st1465;} + {stack[top++] = 275;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 266;goto st1471;} + {stack[top++] = 275;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 266;goto st1479;} + {stack[top++] = 275;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 266;goto st1487;} + {stack[top++] = 275;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 266;goto st1493;} + {stack[top++] = 275;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 275;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 266;goto st331;} } - goto st266; -st266: + { p--; {stack[top++] = 275;goto st340;} } + goto st275; +st275: if ( ++p == pe ) - goto _test_eof266; -case 266: + goto _test_eof275; +case 275: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38044,23 +39688,23 @@ case 266: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 51: goto st89; - case 54: goto st91; - case 79: goto st93; - case 80: goto st95; - case 111: goto st93; - case 112: goto st95; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 51: goto st98; + case 54: goto st100; + case 79: goto st102; + case 80: goto st104; + case 111: goto st102; + case 112: goto st104; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4319: + goto tr959; +tr4604: { s->r_class = s->default_class; } @@ -38072,105 +39716,108 @@ tr4319: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 267;goto st1101;} + {stack[top++] = 276;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 267;goto st1103;} + {stack[top++] = 276;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 267;goto st1105;} + {stack[top++] = 276;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 267;goto st1137;} + {stack[top++] = 276;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 267;goto st1142;} + {stack[top++] = 276;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 267;goto st1147;} + {stack[top++] = 276;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 267;goto st1152;} + {stack[top++] = 276;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 267;goto st1156;} + {stack[top++] = 276;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 267;goto st1158;} + {stack[top++] = 276;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 267;goto st1213;} + {stack[top++] = 276;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 267;goto st1224;} + {stack[top++] = 276;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 267;goto st1241;} + {stack[top++] = 276;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 267;goto st1252;} + {stack[top++] = 276;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 267;goto st1263;} + {stack[top++] = 276;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 267;goto st1276;} + {stack[top++] = 276;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 267;goto st1286;} + {stack[top++] = 276;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 267;goto st1325;} + {stack[top++] = 276;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 267;goto st1351;} + {stack[top++] = 276;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 267;goto st1354;} + {stack[top++] = 276;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 267;goto st1365;} + {stack[top++] = 276;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 267;goto st1367;} + {stack[top++] = 276;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 267;goto st1396;} + {stack[top++] = 276;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 267;goto st1409;} + {stack[top++] = 276;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 267;goto st1422;} + {stack[top++] = 276;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 267;goto st1428;} + {stack[top++] = 276;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 267;goto st1446;} + {stack[top++] = 276;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 267;goto st1441;} + {stack[top++] = 276;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 267;goto st1459;} + {stack[top++] = 276;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 267;goto st1465;} + {stack[top++] = 276;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 267;goto st1471;} + {stack[top++] = 276;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 267;goto st1479;} + {stack[top++] = 276;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 267;goto st1487;} + {stack[top++] = 276;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 267;goto st1493;} + {stack[top++] = 276;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 276;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 267;goto st331;} } - goto st267; -st267: + { p--; {stack[top++] = 276;goto st340;} } + goto st276; +st276: if ( ++p == pe ) - goto _test_eof267; -case 267: + goto _test_eof276; +case 276: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38184,21 +39831,21 @@ case 267: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 73: goto st97; - case 88: goto st101; - case 105: goto st97; - case 120: goto st101; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 73: goto st106; + case 88: goto st110; + case 105: goto st106; + case 120: goto st110; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4320: + goto tr959; +tr4605: { s->r_class = s->default_class; } @@ -38210,105 +39857,108 @@ tr4320: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 268;goto st1101;} + {stack[top++] = 277;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 268;goto st1103;} + {stack[top++] = 277;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 268;goto st1105;} + {stack[top++] = 277;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 268;goto st1137;} + {stack[top++] = 277;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 268;goto st1142;} + {stack[top++] = 277;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 268;goto st1147;} + {stack[top++] = 277;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 268;goto st1152;} + {stack[top++] = 277;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 268;goto st1156;} + {stack[top++] = 277;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 268;goto st1158;} + {stack[top++] = 277;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 268;goto st1213;} + {stack[top++] = 277;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 268;goto st1224;} + {stack[top++] = 277;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 268;goto st1241;} + {stack[top++] = 277;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 268;goto st1252;} + {stack[top++] = 277;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 268;goto st1263;} + {stack[top++] = 277;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 268;goto st1276;} + {stack[top++] = 277;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 268;goto st1286;} + {stack[top++] = 277;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 268;goto st1325;} + {stack[top++] = 277;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 268;goto st1351;} + {stack[top++] = 277;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 268;goto st1354;} + {stack[top++] = 277;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 268;goto st1365;} + {stack[top++] = 277;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 268;goto st1367;} + {stack[top++] = 277;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 268;goto st1396;} + {stack[top++] = 277;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 268;goto st1409;} + {stack[top++] = 277;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 268;goto st1422;} + {stack[top++] = 277;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 268;goto st1428;} + {stack[top++] = 277;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 268;goto st1446;} + {stack[top++] = 277;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 268;goto st1441;} + {stack[top++] = 277;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 268;goto st1459;} + {stack[top++] = 277;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 268;goto st1465;} + {stack[top++] = 277;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 268;goto st1471;} + {stack[top++] = 277;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 268;goto st1479;} + {stack[top++] = 277;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 268;goto st1487;} + {stack[top++] = 277;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 268;goto st1493;} + {stack[top++] = 277;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 277;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 268;goto st331;} } - goto st268; -st268: + { p--; {stack[top++] = 277;goto st340;} } + goto st277; +st277: if ( ++p == pe ) - goto _test_eof268; -case 268: + goto _test_eof277; +case 277: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38322,23 +39972,23 @@ case 268: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 65: goto st103; - case 73: goto st107; - case 83: goto st109; - case 97: goto st103; - case 105: goto st107; - case 115: goto st109; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 65: goto st112; + case 73: goto st116; + case 83: goto st118; + case 97: goto st112; + case 105: goto st116; + case 115: goto st118; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4321: + goto tr959; +tr4606: { s->r_class = s->default_class; } @@ -38350,105 +40000,108 @@ tr4321: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 269;goto st1101;} + {stack[top++] = 278;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 269;goto st1103;} + {stack[top++] = 278;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 269;goto st1105;} + {stack[top++] = 278;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 269;goto st1137;} + {stack[top++] = 278;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 269;goto st1142;} + {stack[top++] = 278;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 269;goto st1147;} + {stack[top++] = 278;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 269;goto st1152;} + {stack[top++] = 278;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 269;goto st1156;} + {stack[top++] = 278;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 269;goto st1158;} + {stack[top++] = 278;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 269;goto st1213;} + {stack[top++] = 278;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 269;goto st1224;} + {stack[top++] = 278;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 269;goto st1241;} + {stack[top++] = 278;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 269;goto st1252;} + {stack[top++] = 278;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 269;goto st1263;} + {stack[top++] = 278;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 269;goto st1276;} + {stack[top++] = 278;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 269;goto st1286;} + {stack[top++] = 278;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 269;goto st1325;} + {stack[top++] = 278;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 269;goto st1351;} + {stack[top++] = 278;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 269;goto st1354;} + {stack[top++] = 278;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 269;goto st1365;} + {stack[top++] = 278;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 269;goto st1367;} + {stack[top++] = 278;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 269;goto st1396;} + {stack[top++] = 278;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 269;goto st1409;} + {stack[top++] = 278;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 269;goto st1422;} + {stack[top++] = 278;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 269;goto st1428;} + {stack[top++] = 278;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 269;goto st1446;} + {stack[top++] = 278;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 269;goto st1441;} + {stack[top++] = 278;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 269;goto st1459;} + {stack[top++] = 278;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 269;goto st1465;} + {stack[top++] = 278;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 269;goto st1471;} + {stack[top++] = 278;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 269;goto st1479;} + {stack[top++] = 278;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 269;goto st1487;} + {stack[top++] = 278;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 269;goto st1493;} + {stack[top++] = 278;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 278;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 269;goto st331;} } - goto st269; -st269: + { p--; {stack[top++] = 278;goto st340;} } + goto st278; +st278: if ( ++p == pe ) - goto _test_eof269; -case 269: + goto _test_eof278; +case 278: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38462,19 +40115,19 @@ case 269: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 80: goto st119; - case 112: goto st119; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 80: goto st128; + case 112: goto st128; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4322: + goto tr959; +tr4607: { s->r_class = s->default_class; } @@ -38486,105 +40139,108 @@ tr4322: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 270;goto st1101;} + {stack[top++] = 279;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 270;goto st1103;} + {stack[top++] = 279;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 270;goto st1105;} + {stack[top++] = 279;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 270;goto st1137;} + {stack[top++] = 279;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 270;goto st1142;} + {stack[top++] = 279;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 270;goto st1147;} + {stack[top++] = 279;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 270;goto st1152;} + {stack[top++] = 279;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 270;goto st1156;} + {stack[top++] = 279;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 270;goto st1158;} + {stack[top++] = 279;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 270;goto st1213;} + {stack[top++] = 279;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 270;goto st1224;} + {stack[top++] = 279;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 270;goto st1241;} + {stack[top++] = 279;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 270;goto st1252;} + {stack[top++] = 279;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 270;goto st1263;} + {stack[top++] = 279;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 270;goto st1276;} + {stack[top++] = 279;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 270;goto st1286;} + {stack[top++] = 279;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 270;goto st1325;} + {stack[top++] = 279;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 270;goto st1351;} + {stack[top++] = 279;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 270;goto st1354;} + {stack[top++] = 279;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 270;goto st1365;} + {stack[top++] = 279;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 270;goto st1367;} + {stack[top++] = 279;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 270;goto st1396;} + {stack[top++] = 279;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 270;goto st1409;} + {stack[top++] = 279;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 270;goto st1422;} + {stack[top++] = 279;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 270;goto st1428;} + {stack[top++] = 279;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 270;goto st1446;} + {stack[top++] = 279;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 270;goto st1441;} + {stack[top++] = 279;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 270;goto st1459;} + {stack[top++] = 279;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 270;goto st1465;} + {stack[top++] = 279;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 270;goto st1471;} + {stack[top++] = 279;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 270;goto st1479;} + {stack[top++] = 279;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 270;goto st1487;} + {stack[top++] = 279;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 270;goto st1493;} + {stack[top++] = 279;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 279;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 270;goto st331;} } - goto st270; -st270: + { p--; {stack[top++] = 279;goto st340;} } + goto st279; +st279: if ( ++p == pe ) - goto _test_eof270; -case 270: + goto _test_eof279; +case 279: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38598,19 +40254,19 @@ case 270: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 84: goto st129; - case 116: goto st129; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 84: goto st138; + case 116: goto st138; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4323: + goto tr959; +tr4608: { s->r_class = s->default_class; } @@ -38622,105 +40278,108 @@ tr4323: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 271;goto st1101;} + {stack[top++] = 280;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 271;goto st1103;} + {stack[top++] = 280;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 271;goto st1105;} + {stack[top++] = 280;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 271;goto st1137;} + {stack[top++] = 280;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 271;goto st1142;} + {stack[top++] = 280;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 271;goto st1147;} + {stack[top++] = 280;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 271;goto st1152;} + {stack[top++] = 280;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 271;goto st1156;} + {stack[top++] = 280;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 271;goto st1158;} + {stack[top++] = 280;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 271;goto st1213;} + {stack[top++] = 280;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 271;goto st1224;} + {stack[top++] = 280;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 271;goto st1241;} + {stack[top++] = 280;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 271;goto st1252;} + {stack[top++] = 280;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 271;goto st1263;} + {stack[top++] = 280;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 271;goto st1276;} + {stack[top++] = 280;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 271;goto st1286;} + {stack[top++] = 280;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 271;goto st1325;} + {stack[top++] = 280;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 271;goto st1351;} + {stack[top++] = 280;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 271;goto st1354;} + {stack[top++] = 280;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 271;goto st1365;} + {stack[top++] = 280;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 271;goto st1367;} + {stack[top++] = 280;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 271;goto st1396;} + {stack[top++] = 280;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 271;goto st1409;} + {stack[top++] = 280;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 271;goto st1422;} + {stack[top++] = 280;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 271;goto st1428;} + {stack[top++] = 280;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 271;goto st1446;} + {stack[top++] = 280;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 271;goto st1441;} + {stack[top++] = 280;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 271;goto st1459;} + {stack[top++] = 280;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 271;goto st1465;} + {stack[top++] = 280;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 271;goto st1471;} + {stack[top++] = 280;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 271;goto st1479;} + {stack[top++] = 280;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 271;goto st1487;} + {stack[top++] = 280;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 271;goto st1493;} + {stack[top++] = 280;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 280;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 271;goto st331;} } - goto st271; -st271: + { p--; {stack[top++] = 280;goto st340;} } + goto st280; +st280: if ( ++p == pe ) - goto _test_eof271; -case 271: + goto _test_eof280; +case 280: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38734,25 +40393,25 @@ case 271: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 69: goto st132; - case 80: goto st138; - case 82: goto st139; - case 84: goto st143; - case 101: goto st132; - case 112: goto st138; - case 114: goto st139; - case 116: goto st143; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 69: goto st141; + case 80: goto st147; + case 82: goto st148; + case 84: goto st152; + case 101: goto st141; + case 112: goto st147; + case 114: goto st148; + case 116: goto st152; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4324: + goto tr959; +tr4609: { s->r_class = s->default_class; } @@ -38764,105 +40423,108 @@ tr4324: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 272;goto st1101;} + {stack[top++] = 281;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 272;goto st1103;} + {stack[top++] = 281;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 272;goto st1105;} + {stack[top++] = 281;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 272;goto st1137;} + {stack[top++] = 281;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 272;goto st1142;} + {stack[top++] = 281;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 272;goto st1147;} + {stack[top++] = 281;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 272;goto st1152;} + {stack[top++] = 281;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 272;goto st1156;} + {stack[top++] = 281;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 272;goto st1158;} + {stack[top++] = 281;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 272;goto st1213;} + {stack[top++] = 281;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 272;goto st1224;} + {stack[top++] = 281;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 272;goto st1241;} + {stack[top++] = 281;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 272;goto st1252;} + {stack[top++] = 281;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 272;goto st1263;} + {stack[top++] = 281;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 272;goto st1276;} + {stack[top++] = 281;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 272;goto st1286;} + {stack[top++] = 281;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 272;goto st1325;} + {stack[top++] = 281;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 272;goto st1351;} + {stack[top++] = 281;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 272;goto st1354;} + {stack[top++] = 281;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 272;goto st1365;} + {stack[top++] = 281;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 272;goto st1367;} + {stack[top++] = 281;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 272;goto st1396;} + {stack[top++] = 281;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 272;goto st1409;} + {stack[top++] = 281;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 272;goto st1422;} + {stack[top++] = 281;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 272;goto st1428;} + {stack[top++] = 281;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 272;goto st1446;} + {stack[top++] = 281;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 272;goto st1441;} + {stack[top++] = 281;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 272;goto st1459;} + {stack[top++] = 281;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 272;goto st1465;} + {stack[top++] = 281;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 272;goto st1471;} + {stack[top++] = 281;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 272;goto st1479;} + {stack[top++] = 281;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 272;goto st1487;} + {stack[top++] = 281;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 272;goto st1493;} + {stack[top++] = 281;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 281;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 272;goto st331;} } - goto st272; -st272: + { p--; {stack[top++] = 281;goto st340;} } + goto st281; +st281: if ( ++p == pe ) - goto _test_eof272; -case 272: + goto _test_eof281; +case 281: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -38876,29 +40538,29 @@ case 272: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 77: goto st145; - case 79: goto st150; - case 80: goto st152; - case 82: goto st154; - case 83: goto st156; - case 86: goto st160; - case 109: goto st145; - case 111: goto st150; - case 112: goto st152; - case 114: goto st154; - case 115: goto st156; - case 118: goto st160; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 77: goto st154; + case 79: goto st159; + case 80: goto st161; + case 82: goto st163; + case 83: goto st165; + case 86: goto st169; + case 109: goto st154; + case 111: goto st159; + case 112: goto st161; + case 114: goto st163; + case 115: goto st165; + case 118: goto st169; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4325: + goto tr959; +tr4610: { s->r_class = s->default_class; } @@ -38910,105 +40572,108 @@ tr4325: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 273;goto st1101;} + {stack[top++] = 282;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 273;goto st1103;} + {stack[top++] = 282;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 273;goto st1105;} + {stack[top++] = 282;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 273;goto st1137;} + {stack[top++] = 282;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 273;goto st1142;} + {stack[top++] = 282;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 273;goto st1147;} + {stack[top++] = 282;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 273;goto st1152;} + {stack[top++] = 282;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 273;goto st1156;} + {stack[top++] = 282;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 273;goto st1158;} + {stack[top++] = 282;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 273;goto st1213;} + {stack[top++] = 282;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 273;goto st1224;} + {stack[top++] = 282;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 273;goto st1241;} + {stack[top++] = 282;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 273;goto st1252;} + {stack[top++] = 282;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 273;goto st1263;} + {stack[top++] = 282;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 273;goto st1276;} + {stack[top++] = 282;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 273;goto st1286;} + {stack[top++] = 282;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 273;goto st1325;} + {stack[top++] = 282;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 273;goto st1351;} + {stack[top++] = 282;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 273;goto st1354;} + {stack[top++] = 282;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 273;goto st1365;} + {stack[top++] = 282;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 273;goto st1367;} + {stack[top++] = 282;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 273;goto st1396;} + {stack[top++] = 282;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 273;goto st1409;} + {stack[top++] = 282;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 273;goto st1422;} + {stack[top++] = 282;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 273;goto st1428;} + {stack[top++] = 282;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 273;goto st1446;} + {stack[top++] = 282;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 273;goto st1441;} + {stack[top++] = 282;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 273;goto st1459;} + {stack[top++] = 282;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 273;goto st1465;} + {stack[top++] = 282;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 273;goto st1471;} + {stack[top++] = 282;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 273;goto st1479;} + {stack[top++] = 282;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 273;goto st1487;} + {stack[top++] = 282;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 273;goto st1493;} + {stack[top++] = 282;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 282;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 273;goto st331;} } - goto st273; -st273: + { p--; {stack[top++] = 282;goto st340;} } + goto st282; +st282: if ( ++p == pe ) - goto _test_eof273; -case 273: + goto _test_eof282; +case 282: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39022,23 +40687,23 @@ case 273: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 76: goto st164; - case 88: goto st167; - case 89: goto st169; - case 108: goto st164; - case 120: goto st167; - case 121: goto st169; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 76: goto st173; + case 88: goto st176; + case 89: goto st178; + case 108: goto st173; + case 120: goto st176; + case 121: goto st178; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4326: + goto tr959; +tr4611: { s->r_class = s->default_class; } @@ -39050,105 +40715,108 @@ tr4326: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 274;goto st1101;} + {stack[top++] = 283;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 274;goto st1103;} + {stack[top++] = 283;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 274;goto st1105;} + {stack[top++] = 283;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 274;goto st1137;} + {stack[top++] = 283;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 274;goto st1142;} + {stack[top++] = 283;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 274;goto st1147;} + {stack[top++] = 283;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 274;goto st1152;} + {stack[top++] = 283;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 274;goto st1156;} + {stack[top++] = 283;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 274;goto st1158;} + {stack[top++] = 283;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 274;goto st1213;} + {stack[top++] = 283;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 274;goto st1224;} + {stack[top++] = 283;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 274;goto st1241;} + {stack[top++] = 283;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 274;goto st1252;} + {stack[top++] = 283;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 274;goto st1263;} + {stack[top++] = 283;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 274;goto st1276;} + {stack[top++] = 283;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 274;goto st1286;} + {stack[top++] = 283;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 274;goto st1325;} + {stack[top++] = 283;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 274;goto st1351;} + {stack[top++] = 283;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 274;goto st1354;} + {stack[top++] = 283;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 274;goto st1365;} + {stack[top++] = 283;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 274;goto st1367;} + {stack[top++] = 283;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 274;goto st1396;} + {stack[top++] = 283;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 274;goto st1409;} + {stack[top++] = 283;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 274;goto st1422;} + {stack[top++] = 283;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 274;goto st1428;} + {stack[top++] = 283;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 274;goto st1446;} + {stack[top++] = 283;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 274;goto st1441;} + {stack[top++] = 283;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 274;goto st1459;} + {stack[top++] = 283;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 274;goto st1465;} + {stack[top++] = 283;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 274;goto st1471;} + {stack[top++] = 283;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 274;goto st1479;} + {stack[top++] = 283;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 274;goto st1487;} + {stack[top++] = 283;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 274;goto st1493;} + {stack[top++] = 283;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 283;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 274;goto st331;} } - goto st274; -st274: + { p--; {stack[top++] = 283;goto st340;} } + goto st283; +st283: if ( ++p == pe ) - goto _test_eof274; -case 274: + goto _test_eof283; +case 283: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39162,19 +40830,19 @@ case 274: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 82: goto st174; - case 114: goto st174; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 82: goto st183; + case 114: goto st183; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4327: + goto tr959; +tr4612: { s->r_class = s->default_class; } @@ -39186,105 +40854,108 @@ tr4327: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 275;goto st1101;} + {stack[top++] = 284;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 275;goto st1103;} + {stack[top++] = 284;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 275;goto st1105;} + {stack[top++] = 284;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 275;goto st1137;} + {stack[top++] = 284;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 275;goto st1142;} + {stack[top++] = 284;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 275;goto st1147;} + {stack[top++] = 284;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 275;goto st1152;} + {stack[top++] = 284;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 275;goto st1156;} + {stack[top++] = 284;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 275;goto st1158;} + {stack[top++] = 284;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 275;goto st1213;} + {stack[top++] = 284;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 275;goto st1224;} + {stack[top++] = 284;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 275;goto st1241;} + {stack[top++] = 284;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 275;goto st1252;} + {stack[top++] = 284;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 275;goto st1263;} + {stack[top++] = 284;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 275;goto st1276;} + {stack[top++] = 284;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 275;goto st1286;} + {stack[top++] = 284;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 275;goto st1325;} + {stack[top++] = 284;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 275;goto st1351;} + {stack[top++] = 284;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 275;goto st1354;} + {stack[top++] = 284;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 275;goto st1365;} + {stack[top++] = 284;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 275;goto st1367;} + {stack[top++] = 284;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 275;goto st1396;} + {stack[top++] = 284;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 275;goto st1409;} + {stack[top++] = 284;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 275;goto st1422;} + {stack[top++] = 284;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 275;goto st1428;} + {stack[top++] = 284;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 275;goto st1446;} + {stack[top++] = 284;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 275;goto st1441;} + {stack[top++] = 284;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 275;goto st1459;} + {stack[top++] = 284;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 275;goto st1465;} + {stack[top++] = 284;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 275;goto st1471;} + {stack[top++] = 284;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 275;goto st1479;} + {stack[top++] = 284;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 275;goto st1487;} + {stack[top++] = 284;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 275;goto st1493;} + {stack[top++] = 284;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 284;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 275;goto st331;} } - goto st275; -st275: + { p--; {stack[top++] = 284;goto st340;} } + goto st284; +st284: if ( ++p == pe ) - goto _test_eof275; -case 275: + goto _test_eof284; +case 284: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39298,19 +40969,19 @@ case 275: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 65: goto st177; - case 97: goto st177; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 65: goto st186; + case 97: goto st186; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4328: + goto tr959; +tr4613: { s->r_class = s->default_class; } @@ -39322,105 +40993,108 @@ tr4328: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 276;goto st1101;} + {stack[top++] = 285;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 276;goto st1103;} + {stack[top++] = 285;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 276;goto st1105;} + {stack[top++] = 285;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 276;goto st1137;} + {stack[top++] = 285;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 276;goto st1142;} + {stack[top++] = 285;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 276;goto st1147;} + {stack[top++] = 285;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 276;goto st1152;} + {stack[top++] = 285;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 276;goto st1156;} + {stack[top++] = 285;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 276;goto st1158;} + {stack[top++] = 285;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 276;goto st1213;} + {stack[top++] = 285;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 276;goto st1224;} + {stack[top++] = 285;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 276;goto st1241;} + {stack[top++] = 285;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 276;goto st1252;} + {stack[top++] = 285;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 276;goto st1263;} + {stack[top++] = 285;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 276;goto st1276;} + {stack[top++] = 285;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 276;goto st1286;} + {stack[top++] = 285;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 276;goto st1325;} + {stack[top++] = 285;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 276;goto st1351;} + {stack[top++] = 285;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 276;goto st1354;} + {stack[top++] = 285;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 276;goto st1365;} + {stack[top++] = 285;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 276;goto st1367;} + {stack[top++] = 285;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 276;goto st1396;} + {stack[top++] = 285;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 276;goto st1409;} + {stack[top++] = 285;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 276;goto st1422;} + {stack[top++] = 285;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 276;goto st1428;} + {stack[top++] = 285;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 276;goto st1446;} + {stack[top++] = 285;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 276;goto st1441;} + {stack[top++] = 285;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 276;goto st1459;} + {stack[top++] = 285;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 276;goto st1465;} + {stack[top++] = 285;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 276;goto st1471;} + {stack[top++] = 285;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 276;goto st1479;} + {stack[top++] = 285;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 276;goto st1487;} + {stack[top++] = 285;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 276;goto st1493;} + {stack[top++] = 285;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 285;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 276;goto st331;} } - goto st276; -st276: + { p--; {stack[top++] = 285;goto st340;} } + goto st285; +st285: if ( ++p == pe ) - goto _test_eof276; -case 276: + goto _test_eof285; +case 285: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39434,19 +41108,19 @@ case 276: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr916; - case 32: goto tr916; - case 40: goto tr917; - case 41: goto tr918; - case 79: goto st183; - case 111: goto st183; + case 9: goto tr941; + case 32: goto tr941; + case 40: goto tr942; + case 41: goto tr943; + case 79: goto st192; + case 111: goto st192; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr919; - case 2107: goto tr920; + case 2058: goto tr944; + case 2107: goto tr945; } - goto tr934; -tr4234: + goto tr959; +tr4519: { if (pe - p == 1) { *wrap = WRAP_DETECTED; @@ -39456,12 +41130,12 @@ tr4234: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 277;goto st331;} } - goto st277; -st277: + { p--; {stack[top++] = 286;goto st340;} } + goto st286; +st286: if ( ++p == pe ) - goto _test_eof277; -case 277: + goto _test_eof286; +case 286: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39475,15 +41149,15 @@ case 277: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr947; - case 32: goto tr947; + case 9: goto tr972; + case 32: goto tr972; case 35: goto tr101; - case 40: goto tr949; - case 41: goto tr950; + case 40: goto tr974; + case 41: goto tr975; case 1802: goto tr100; case 1851: goto tr100; - case 2058: goto tr951; - case 2107: goto tr952; + case 2058: goto tr976; + case 2107: goto tr977; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -39493,8 +41167,8 @@ case 277: goto tr100; } else goto tr100; - goto tr948; -tr947: + goto tr973; +tr972: { s->r_owner_length = s->dname_tmp_length; } @@ -39508,104 +41182,107 @@ tr947: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 278;goto st1101;} + {stack[top++] = 287;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 278;goto st1103;} + {stack[top++] = 287;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 278;goto st1105;} + {stack[top++] = 287;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 278;goto st1137;} + {stack[top++] = 287;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 278;goto st1142;} + {stack[top++] = 287;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 278;goto st1147;} + {stack[top++] = 287;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 278;goto st1152;} + {stack[top++] = 287;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 278;goto st1156;} + {stack[top++] = 287;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 278;goto st1158;} + {stack[top++] = 287;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 278;goto st1213;} + {stack[top++] = 287;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 278;goto st1224;} + {stack[top++] = 287;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 278;goto st1241;} + {stack[top++] = 287;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 278;goto st1252;} + {stack[top++] = 287;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 278;goto st1263;} + {stack[top++] = 287;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 278;goto st1276;} + {stack[top++] = 287;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 278;goto st1286;} + {stack[top++] = 287;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 278;goto st1325;} + {stack[top++] = 287;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 278;goto st1351;} + {stack[top++] = 287;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 278;goto st1354;} + {stack[top++] = 287;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 278;goto st1365;} + {stack[top++] = 287;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 278;goto st1367;} + {stack[top++] = 287;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 278;goto st1396;} + {stack[top++] = 287;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 278;goto st1409;} + {stack[top++] = 287;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 278;goto st1422;} + {stack[top++] = 287;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 278;goto st1428;} + {stack[top++] = 287;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 278;goto st1446;} + {stack[top++] = 287;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 278;goto st1441;} + {stack[top++] = 287;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 278;goto st1459;} + {stack[top++] = 287;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 278;goto st1465;} + {stack[top++] = 287;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 278;goto st1471;} + {stack[top++] = 287;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 278;goto st1479;} + {stack[top++] = 287;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 278;goto st1487;} + {stack[top++] = 287;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 278;goto st1493;} + {stack[top++] = 287;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 287;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st278; -tr949: + goto st287; +tr974: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -39619,104 +41296,107 @@ tr949: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 278;goto st1101;} + {stack[top++] = 287;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 278;goto st1103;} + {stack[top++] = 287;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 278;goto st1105;} + {stack[top++] = 287;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 278;goto st1137;} + {stack[top++] = 287;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 278;goto st1142;} + {stack[top++] = 287;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 278;goto st1147;} + {stack[top++] = 287;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 278;goto st1152;} + {stack[top++] = 287;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 278;goto st1156;} + {stack[top++] = 287;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 278;goto st1158;} + {stack[top++] = 287;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 278;goto st1213;} + {stack[top++] = 287;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 278;goto st1224;} + {stack[top++] = 287;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 278;goto st1241;} + {stack[top++] = 287;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 278;goto st1252;} + {stack[top++] = 287;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 278;goto st1263;} + {stack[top++] = 287;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 278;goto st1276;} + {stack[top++] = 287;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 278;goto st1286;} + {stack[top++] = 287;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 278;goto st1325;} + {stack[top++] = 287;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 278;goto st1351;} + {stack[top++] = 287;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 278;goto st1354;} + {stack[top++] = 287;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 278;goto st1365;} + {stack[top++] = 287;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 278;goto st1367;} + {stack[top++] = 287;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 278;goto st1396;} + {stack[top++] = 287;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 278;goto st1409;} + {stack[top++] = 287;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 278;goto st1422;} + {stack[top++] = 287;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 278;goto st1428;} + {stack[top++] = 287;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 278;goto st1446;} + {stack[top++] = 287;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 278;goto st1441;} + {stack[top++] = 287;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 278;goto st1459;} + {stack[top++] = 287;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 278;goto st1465;} + {stack[top++] = 287;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 278;goto st1471;} + {stack[top++] = 287;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 278;goto st1479;} + {stack[top++] = 287;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 278;goto st1487;} + {stack[top++] = 287;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 278;goto st1493;} + {stack[top++] = 287;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 287;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st278; -tr950: + goto st287; +tr975: { s->r_owner_length = s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -39730,97 +41410,100 @@ tr950: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 278;goto st1101;} + {stack[top++] = 287;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 278;goto st1103;} + {stack[top++] = 287;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 278;goto st1105;} + {stack[top++] = 287;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 278;goto st1137;} + {stack[top++] = 287;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 278;goto st1142;} + {stack[top++] = 287;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 278;goto st1147;} + {stack[top++] = 287;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 278;goto st1152;} + {stack[top++] = 287;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 278;goto st1156;} + {stack[top++] = 287;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 278;goto st1158;} + {stack[top++] = 287;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 278;goto st1213;} + {stack[top++] = 287;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 278;goto st1224;} + {stack[top++] = 287;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 278;goto st1241;} + {stack[top++] = 287;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 278;goto st1252;} + {stack[top++] = 287;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 278;goto st1263;} + {stack[top++] = 287;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 278;goto st1276;} + {stack[top++] = 287;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 278;goto st1286;} + {stack[top++] = 287;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 278;goto st1325;} + {stack[top++] = 287;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 278;goto st1351;} + {stack[top++] = 287;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 278;goto st1354;} + {stack[top++] = 287;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 278;goto st1365;} + {stack[top++] = 287;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 278;goto st1367;} + {stack[top++] = 287;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 278;goto st1396;} + {stack[top++] = 287;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 278;goto st1409;} + {stack[top++] = 287;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 278;goto st1422;} + {stack[top++] = 287;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 278;goto st1428;} + {stack[top++] = 287;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 278;goto st1446;} + {stack[top++] = 287;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 278;goto st1441;} + {stack[top++] = 287;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 278;goto st1459;} + {stack[top++] = 287;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 278;goto st1465;} + {stack[top++] = 287;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 278;goto st1471;} + {stack[top++] = 287;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 278;goto st1479;} + {stack[top++] = 287;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 278;goto st1487;} + {stack[top++] = 287;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 278;goto st1493;} + {stack[top++] = 287;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 287;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st278; -tr951: + goto st287; +tr976: { s->r_owner_length = s->dname_tmp_length; } @@ -39837,100 +41520,103 @@ tr951: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 278;goto st1101;} + {stack[top++] = 287;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 278;goto st1103;} + {stack[top++] = 287;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 278;goto st1105;} + {stack[top++] = 287;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 278;goto st1137;} + {stack[top++] = 287;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 278;goto st1142;} + {stack[top++] = 287;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 278;goto st1147;} + {stack[top++] = 287;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 278;goto st1152;} + {stack[top++] = 287;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 278;goto st1156;} + {stack[top++] = 287;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 278;goto st1158;} + {stack[top++] = 287;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 278;goto st1213;} + {stack[top++] = 287;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 278;goto st1224;} + {stack[top++] = 287;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 278;goto st1241;} + {stack[top++] = 287;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 278;goto st1252;} + {stack[top++] = 287;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 278;goto st1263;} + {stack[top++] = 287;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 278;goto st1276;} + {stack[top++] = 287;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 278;goto st1286;} + {stack[top++] = 287;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 278;goto st1325;} + {stack[top++] = 287;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 278;goto st1351;} + {stack[top++] = 287;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 278;goto st1354;} + {stack[top++] = 287;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 278;goto st1365;} + {stack[top++] = 287;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 278;goto st1367;} + {stack[top++] = 287;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 278;goto st1396;} + {stack[top++] = 287;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 278;goto st1409;} + {stack[top++] = 287;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 278;goto st1422;} + {stack[top++] = 287;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 278;goto st1428;} + {stack[top++] = 287;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 278;goto st1446;} + {stack[top++] = 287;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 278;goto st1441;} + {stack[top++] = 287;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 278;goto st1459;} + {stack[top++] = 287;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 278;goto st1465;} + {stack[top++] = 287;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 278;goto st1471;} + {stack[top++] = 287;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 278;goto st1479;} + {stack[top++] = 287;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 278;goto st1487;} + {stack[top++] = 287;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 278;goto st1493;} + {stack[top++] = 287;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 287;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st278; -st278: + goto st287; +st287: if ( ++p == pe ) - goto _test_eof278; -case 278: + goto _test_eof287; +case 287: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -39944,10 +41630,10 @@ case 278: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr953; - case 32: goto tr953; - case 40: goto tr954; - case 41: goto tr955; + case 9: goto tr978; + case 32: goto tr978; + case 40: goto tr979; + case 41: goto tr980; case 65: goto tr5; case 67: goto tr6; case 68: goto tr7; @@ -39986,13 +41672,13 @@ case 278: case 122: goto tr22; case 1802: goto tr90; case 1851: goto tr91; - case 2058: goto tr956; - case 2107: goto tr957; + case 2058: goto tr981; + case 2107: goto tr982; } if ( 48 <= _widec && _widec <= 57 ) goto tr4; goto tr121; -tr952: +tr977: { s->r_owner_length = s->dname_tmp_length; } @@ -40009,100 +41695,103 @@ tr952: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 279;goto st1101;} + {stack[top++] = 288;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 279;goto st1103;} + {stack[top++] = 288;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 279;goto st1105;} + {stack[top++] = 288;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 279;goto st1137;} + {stack[top++] = 288;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 279;goto st1142;} + {stack[top++] = 288;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 279;goto st1147;} + {stack[top++] = 288;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 279;goto st1152;} + {stack[top++] = 288;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 279;goto st1156;} + {stack[top++] = 288;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 279;goto st1158;} + {stack[top++] = 288;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 279;goto st1213;} + {stack[top++] = 288;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 279;goto st1224;} + {stack[top++] = 288;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 279;goto st1241;} + {stack[top++] = 288;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 279;goto st1252;} + {stack[top++] = 288;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 279;goto st1263;} + {stack[top++] = 288;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 279;goto st1276;} + {stack[top++] = 288;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 279;goto st1286;} + {stack[top++] = 288;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 279;goto st1325;} + {stack[top++] = 288;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 279;goto st1351;} + {stack[top++] = 288;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 279;goto st1354;} + {stack[top++] = 288;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 279;goto st1365;} + {stack[top++] = 288;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 279;goto st1367;} + {stack[top++] = 288;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 279;goto st1396;} + {stack[top++] = 288;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 279;goto st1409;} + {stack[top++] = 288;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 279;goto st1422;} + {stack[top++] = 288;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 279;goto st1428;} + {stack[top++] = 288;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 279;goto st1446;} + {stack[top++] = 288;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 279;goto st1441;} + {stack[top++] = 288;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 279;goto st1459;} + {stack[top++] = 288;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 279;goto st1465;} + {stack[top++] = 288;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 279;goto st1471;} + {stack[top++] = 288;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 279;goto st1479;} + {stack[top++] = 288;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 279;goto st1487;} + {stack[top++] = 288;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 279;goto st1493;} + {stack[top++] = 288;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 288;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st279; -st279: + goto st288; +st288: if ( ++p == pe ) - goto _test_eof279; -case 279: + goto _test_eof288; +case 288: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -40140,24 +41829,24 @@ case 279: case 1832: goto tr88; case 1833: goto tr89; case 1851: goto tr91; - case 2057: goto tr958; - case 2058: goto tr959; - case 2080: goto tr958; - case 2088: goto tr960; - case 2089: goto tr961; - case 2107: goto tr962; + case 2057: goto tr983; + case 2058: goto tr984; + case 2080: goto tr983; + case 2088: goto tr985; + case 2089: goto tr986; + case 2107: goto tr987; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr821; + goto tr846; goto tr86; -tr963: +tr988: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st280; -tr958: + goto st289; +tr983: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40167,8 +41856,8 @@ tr958: s->buffer[0] = 0; s->buffer_length = 0; } - goto st280; -tr960: + goto st289; +tr985: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40181,12 +41870,12 @@ tr960: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st280; -tr961: + goto st289; +tr986: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40199,12 +41888,12 @@ tr961: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st280; -tr964: + goto st289; +tr989: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40213,12 +41902,12 @@ tr964: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st280; -tr965: + goto st289; +tr990: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40227,15 +41916,15 @@ tr965: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st280; -st280: + goto st289; +st289: if ( ++p == pe ) - goto _test_eof280; -case 280: + goto _test_eof289; +case 289: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -40273,17 +41962,17 @@ case 280: case 1832: goto tr94; case 1833: goto tr95; case 1851: goto tr97; - case 2057: goto tr963; - case 2058: goto tr888; - case 2080: goto tr963; - case 2088: goto tr964; - case 2089: goto tr965; - case 2107: goto tr966; + case 2057: goto tr988; + case 2058: goto tr913; + case 2080: goto tr988; + case 2088: goto tr989; + case 2089: goto tr990; + case 2107: goto tr991; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr821; + goto tr846; goto tr92; -tr902: +tr927: { s->buffer_length = 0; } @@ -40292,97 +41981,100 @@ tr902: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 281;goto st1101;} + {stack[top++] = 290;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 281;goto st1103;} + {stack[top++] = 290;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 281;goto st1105;} + {stack[top++] = 290;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 281;goto st1137;} + {stack[top++] = 290;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 281;goto st1142;} + {stack[top++] = 290;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 281;goto st1147;} + {stack[top++] = 290;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 281;goto st1152;} + {stack[top++] = 290;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 281;goto st1156;} + {stack[top++] = 290;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 281;goto st1158;} + {stack[top++] = 290;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 281;goto st1213;} + {stack[top++] = 290;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 281;goto st1224;} + {stack[top++] = 290;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 281;goto st1241;} + {stack[top++] = 290;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 281;goto st1252;} + {stack[top++] = 290;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 281;goto st1263;} + {stack[top++] = 290;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 281;goto st1276;} + {stack[top++] = 290;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 281;goto st1286;} + {stack[top++] = 290;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 281;goto st1325;} + {stack[top++] = 290;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 281;goto st1351;} + {stack[top++] = 290;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 281;goto st1354;} + {stack[top++] = 290;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 281;goto st1365;} + {stack[top++] = 290;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 281;goto st1367;} + {stack[top++] = 290;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 281;goto st1396;} + {stack[top++] = 290;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 281;goto st1409;} + {stack[top++] = 290;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 281;goto st1422;} + {stack[top++] = 290;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 281;goto st1428;} + {stack[top++] = 290;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 281;goto st1446;} + {stack[top++] = 290;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 281;goto st1441;} + {stack[top++] = 290;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 281;goto st1459;} + {stack[top++] = 290;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 281;goto st1465;} + {stack[top++] = 290;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 281;goto st1471;} + {stack[top++] = 290;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 281;goto st1479;} + {stack[top++] = 290;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 281;goto st1487;} + {stack[top++] = 290;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 281;goto st1493;} + {stack[top++] = 290;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 290;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st281; -tr1044: + goto st290; +tr1069: { s->buffer_length = 0; } @@ -40391,101 +42083,104 @@ tr1044: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 281;goto st1101;} + {stack[top++] = 290;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 281;goto st1103;} + {stack[top++] = 290;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 281;goto st1105;} + {stack[top++] = 290;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 281;goto st1137;} + {stack[top++] = 290;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 281;goto st1142;} + {stack[top++] = 290;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 281;goto st1147;} + {stack[top++] = 290;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 281;goto st1152;} + {stack[top++] = 290;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 281;goto st1156;} + {stack[top++] = 290;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 281;goto st1158;} + {stack[top++] = 290;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 281;goto st1213;} + {stack[top++] = 290;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 281;goto st1224;} + {stack[top++] = 290;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 281;goto st1241;} + {stack[top++] = 290;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 281;goto st1252;} + {stack[top++] = 290;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 281;goto st1263;} + {stack[top++] = 290;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 281;goto st1276;} + {stack[top++] = 290;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 281;goto st1286;} + {stack[top++] = 290;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 281;goto st1325;} + {stack[top++] = 290;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 281;goto st1351;} + {stack[top++] = 290;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 281;goto st1354;} + {stack[top++] = 290;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 281;goto st1365;} + {stack[top++] = 290;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 281;goto st1367;} + {stack[top++] = 290;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 281;goto st1396;} + {stack[top++] = 290;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 281;goto st1409;} + {stack[top++] = 290;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 281;goto st1422;} + {stack[top++] = 290;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 281;goto st1428;} + {stack[top++] = 290;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 281;goto st1446;} + {stack[top++] = 290;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 281;goto st1441;} + {stack[top++] = 290;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 281;goto st1459;} + {stack[top++] = 290;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 281;goto st1465;} + {stack[top++] = 290;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 281;goto st1471;} + {stack[top++] = 290;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 281;goto st1479;} + {stack[top++] = 290;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 281;goto st1487;} + {stack[top++] = 290;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 281;goto st1493;} + {stack[top++] = 290;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 290;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st281; -tr941: + goto st290; +tr966: { s->r_owner_length = s->dname_tmp_length; } @@ -40501,101 +42196,104 @@ tr941: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 281;goto st1101;} + {stack[top++] = 290;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 281;goto st1103;} + {stack[top++] = 290;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 281;goto st1105;} + {stack[top++] = 290;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 281;goto st1137;} + {stack[top++] = 290;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 281;goto st1142;} + {stack[top++] = 290;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 281;goto st1147;} + {stack[top++] = 290;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 281;goto st1152;} + {stack[top++] = 290;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 281;goto st1156;} + {stack[top++] = 290;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 281;goto st1158;} + {stack[top++] = 290;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 281;goto st1213;} + {stack[top++] = 290;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 281;goto st1224;} + {stack[top++] = 290;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 281;goto st1241;} + {stack[top++] = 290;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 281;goto st1252;} + {stack[top++] = 290;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 281;goto st1263;} + {stack[top++] = 290;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 281;goto st1276;} + {stack[top++] = 290;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 281;goto st1286;} + {stack[top++] = 290;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 281;goto st1325;} + {stack[top++] = 290;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 281;goto st1351;} + {stack[top++] = 290;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 281;goto st1354;} + {stack[top++] = 290;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 281;goto st1365;} + {stack[top++] = 290;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 281;goto st1367;} + {stack[top++] = 290;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 281;goto st1396;} + {stack[top++] = 290;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 281;goto st1409;} + {stack[top++] = 290;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 281;goto st1422;} + {stack[top++] = 290;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 281;goto st1428;} + {stack[top++] = 290;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 281;goto st1446;} + {stack[top++] = 290;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 281;goto st1441;} + {stack[top++] = 290;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 281;goto st1459;} + {stack[top++] = 290;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 281;goto st1465;} + {stack[top++] = 290;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 281;goto st1471;} + {stack[top++] = 290;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 281;goto st1479;} + {stack[top++] = 290;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 281;goto st1487;} + {stack[top++] = 290;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 281;goto st1493;} + {stack[top++] = 290;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 290;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st281; -tr4308: + goto st290; +tr4593: { s->buffer_length = 0; } @@ -40604,93 +42302,96 @@ tr4308: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 281;goto st1101;} + {stack[top++] = 290;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 281;goto st1103;} + {stack[top++] = 290;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 281;goto st1105;} + {stack[top++] = 290;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 281;goto st1137;} + {stack[top++] = 290;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 281;goto st1142;} + {stack[top++] = 290;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 281;goto st1147;} + {stack[top++] = 290;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 281;goto st1152;} + {stack[top++] = 290;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 281;goto st1156;} + {stack[top++] = 290;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 281;goto st1158;} + {stack[top++] = 290;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 281;goto st1213;} + {stack[top++] = 290;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 281;goto st1224;} + {stack[top++] = 290;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 281;goto st1241;} + {stack[top++] = 290;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 281;goto st1252;} + {stack[top++] = 290;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 281;goto st1263;} + {stack[top++] = 290;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 281;goto st1276;} + {stack[top++] = 290;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 281;goto st1286;} + {stack[top++] = 290;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 281;goto st1325;} + {stack[top++] = 290;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 281;goto st1351;} + {stack[top++] = 290;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 281;goto st1354;} + {stack[top++] = 290;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 281;goto st1365;} + {stack[top++] = 290;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 281;goto st1367;} + {stack[top++] = 290;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 281;goto st1396;} + {stack[top++] = 290;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 281;goto st1409;} + {stack[top++] = 290;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 281;goto st1422;} + {stack[top++] = 290;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 281;goto st1428;} + {stack[top++] = 290;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 281;goto st1446;} + {stack[top++] = 290;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 281;goto st1441;} + {stack[top++] = 290;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 281;goto st1459;} + {stack[top++] = 290;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 281;goto st1465;} + {stack[top++] = 290;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 281;goto st1471;} + {stack[top++] = 290;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 281;goto st1479;} + {stack[top++] = 290;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 281;goto st1487;} + {stack[top++] = 290;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 281;goto st1493;} + {stack[top++] = 290;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 290;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { @@ -40700,14 +42401,14 @@ tr4308: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st281; -st281: + goto st290; +st290: if ( ++p == pe ) - goto _test_eof281; -case 281: + goto _test_eof290; +case 290: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -40739,33 +42440,33 @@ case 281: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr889; - case 1802: goto tr892; - case 1824: goto tr889; - case 1832: goto tr890; - case 1833: goto tr891; - case 1851: goto tr893; - case 2057: goto tr967; - case 2058: goto tr959; - case 2080: goto tr967; - case 2088: goto tr968; - case 2089: goto tr969; - case 2107: goto tr970; + case 1801: goto tr914; + case 1802: goto tr917; + case 1824: goto tr914; + case 1832: goto tr915; + case 1833: goto tr916; + case 1851: goto tr918; + case 2057: goto tr992; + case 2058: goto tr984; + case 2080: goto tr992; + case 2088: goto tr993; + case 2089: goto tr994; + case 2107: goto tr995; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr903; + goto tr928; } else if ( _widec >= 1664 ) goto tr98; goto tr86; -tr971: +tr996: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st282; -tr967: + goto st291; +tr992: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40775,8 +42476,8 @@ tr967: s->buffer[0] = 0; s->buffer_length = 0; } - goto st282; -tr968: + goto st291; +tr993: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40789,12 +42490,12 @@ tr968: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st282; -tr969: + goto st291; +tr994: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40807,12 +42508,12 @@ tr969: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st282; -tr972: + goto st291; +tr997: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40821,12 +42522,12 @@ tr972: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st282; -tr973: + goto st291; +tr998: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -40835,15 +42536,15 @@ tr973: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st282; -st282: + goto st291; +st291: if ( ++p == pe ) - goto _test_eof282; -case 282: + goto _test_eof291; +case 291: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -40875,47 +42576,47 @@ case 282: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr894; + case 1801: goto tr919; case 1802: goto tr99; - case 1824: goto tr894; - case 1832: goto tr895; - case 1833: goto tr896; - case 1851: goto tr897; - case 2057: goto tr971; - case 2058: goto tr888; - case 2080: goto tr971; - case 2088: goto tr972; - case 2089: goto tr973; - case 2107: goto tr974; + case 1824: goto tr919; + case 1832: goto tr920; + case 1833: goto tr921; + case 1851: goto tr922; + case 2057: goto tr996; + case 2058: goto tr913; + case 2080: goto tr996; + case 2088: goto tr997; + case 2089: goto tr998; + case 2107: goto tr999; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr903; + goto tr928; } else if ( _widec >= 1664 ) goto tr98; goto tr86; -st283: +st292: if ( ++p == pe ) - goto _test_eof283; -case 283: + goto _test_eof292; +case 292: switch( (*p) ) { - case 65: goto st284; - case 97: goto st284; + case 65: goto st293; + case 97: goto st293; } goto tr39; -st284: +st293: if ( ++p == pe ) - goto _test_eof284; -case 284: + goto _test_eof293; +case 293: switch( (*p) ) { - case 65: goto st285; - case 97: goto st285; + case 65: goto st294; + case 97: goto st294; } goto tr39; -st285: +st294: if ( ++p == pe ) - goto _test_eof285; -case 285: + goto _test_eof294; +case 294: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40933,49 +42634,49 @@ case 285: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr977; - case 32: goto tr977; - case 40: goto tr978; - case 41: goto tr979; - case 3082: goto tr980; - case 3131: goto tr981; - case 3338: goto tr982; - case 3387: goto tr982; - case 3594: goto tr983; - case 3643: goto tr984; + case 9: goto tr1002; + case 32: goto tr1002; + case 40: goto tr1003; + case 41: goto tr1004; + case 3082: goto tr1005; + case 3131: goto tr1006; + case 3338: goto tr1007; + case 3387: goto tr1007; + case 3594: goto tr1008; + case 3643: goto tr1009; } goto tr63; -st286: +st295: if ( ++p == pe ) - goto _test_eof286; -case 286: + goto _test_eof295; +case 295: switch( (*p) ) { - case 83: goto st287; - case 115: goto st287; + case 83: goto st296; + case 115: goto st296; } goto tr39; -st287: +st296: if ( ++p == pe ) - goto _test_eof287; -case 287: + goto _test_eof296; +case 296: switch( (*p) ) { - case 68: goto st288; - case 100: goto st288; + case 68: goto st297; + case 100: goto st297; } goto tr39; -st288: +st297: if ( ++p == pe ) - goto _test_eof288; -case 288: + goto _test_eof297; +case 297: switch( (*p) ) { - case 66: goto st289; - case 98: goto st289; + case 66: goto st298; + case 98: goto st298; } goto tr39; -st289: +st298: if ( ++p == pe ) - goto _test_eof289; -case 289: + goto _test_eof298; +case 298: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -40993,49 +42694,49 @@ case 289: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr988; - case 32: goto tr988; - case 40: goto tr989; - case 41: goto tr990; - case 3082: goto tr991; - case 3131: goto tr992; - case 3338: goto tr993; - case 3387: goto tr993; - case 3594: goto tr994; - case 3643: goto tr995; + case 9: goto tr1013; + case 32: goto tr1013; + case 40: goto tr1014; + case 41: goto tr1015; + case 3082: goto tr1016; + case 3131: goto tr1017; + case 3338: goto tr1018; + case 3387: goto tr1018; + case 3594: goto tr1019; + case 3643: goto tr1020; } goto tr63; -st290: +st299: if ( ++p == pe ) - goto _test_eof290; -case 290: + goto _test_eof299; +case 299: switch( (*p) ) { - case 73: goto st291; - case 105: goto st291; + case 73: goto st300; + case 105: goto st300; } goto tr39; -st291: +st300: if ( ++p == pe ) - goto _test_eof291; -case 291: + goto _test_eof300; +case 300: switch( (*p) ) { - case 65: goto st292; - case 97: goto st292; + case 65: goto st301; + case 97: goto st301; } goto tr39; -st292: +st301: if ( ++p == pe ) - goto _test_eof292; -case 292: + goto _test_eof301; +case 301: switch( (*p) ) { - case 83: goto st293; - case 115: goto st293; + case 83: goto st302; + case 115: goto st302; } goto tr39; -st293: +st302: if ( ++p == pe ) - goto _test_eof293; -case 293: + goto _test_eof302; +case 302: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41053,31 +42754,31 @@ case 293: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr999; - case 32: goto tr999; - case 40: goto tr1000; - case 41: goto tr1001; - case 3082: goto tr1002; - case 3131: goto tr1003; - case 3338: goto tr1004; - case 3387: goto tr1004; - case 3594: goto tr1005; - case 3643: goto tr1006; + case 9: goto tr1024; + case 32: goto tr1024; + case 40: goto tr1025; + case 41: goto tr1026; + case 3082: goto tr1027; + case 3131: goto tr1028; + case 3338: goto tr1029; + case 3387: goto tr1029; + case 3594: goto tr1030; + case 3643: goto tr1031; } goto tr63; -st294: +st303: if ( ++p == pe ) - goto _test_eof294; -case 294: + goto _test_eof303; +case 303: switch( (*p) ) { - case 76: goto st295; - case 108: goto st295; + case 76: goto st304; + case 108: goto st304; } goto tr39; -st295: +st304: if ( ++p == pe ) - goto _test_eof295; -case 295: + goto _test_eof304; +case 304: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41095,49 +42796,49 @@ case 295: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1008; - case 32: goto tr1008; - case 40: goto tr1009; - case 41: goto tr1010; - case 3082: goto tr1011; - case 3131: goto tr1012; - case 3338: goto tr1013; - case 3387: goto tr1013; - case 3594: goto tr1014; - case 3643: goto tr1015; + case 9: goto tr1033; + case 32: goto tr1033; + case 40: goto tr1034; + case 41: goto tr1035; + case 3082: goto tr1036; + case 3131: goto tr1037; + case 3338: goto tr1038; + case 3387: goto tr1038; + case 3594: goto tr1039; + case 3643: goto tr1040; } goto tr63; tr144: { s->buffer_length = 0; } - goto st296; -tr1016: + goto st305; +tr1041: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st296; -tr4236: + goto st305; +tr4521: { s->buffer_length = 0; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st296; -st296: + goto st305; +st305: if ( ++p == pe ) - goto _test_eof296; -case 296: + goto _test_eof305; +case 305: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -41157,108 +42858,111 @@ case 296: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr798; - case 2058: goto tr1017; + case 1802: goto tr823; + case 2058: goto tr1042; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1016; + goto tr1041; } else if ( _widec >= 1664 ) - goto tr797; + goto tr822; goto tr86; -tr4238: +tr4523: { s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 297;goto st1101;} + {stack[top++] = 306;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 297;goto st1103;} + {stack[top++] = 306;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 297;goto st1105;} + {stack[top++] = 306;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 297;goto st1137;} + {stack[top++] = 306;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 297;goto st1142;} + {stack[top++] = 306;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 297;goto st1147;} + {stack[top++] = 306;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 297;goto st1152;} + {stack[top++] = 306;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 297;goto st1156;} + {stack[top++] = 306;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 297;goto st1158;} + {stack[top++] = 306;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 297;goto st1213;} + {stack[top++] = 306;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 297;goto st1224;} + {stack[top++] = 306;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 297;goto st1241;} + {stack[top++] = 306;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 297;goto st1252;} + {stack[top++] = 306;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 297;goto st1263;} + {stack[top++] = 306;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 297;goto st1276;} + {stack[top++] = 306;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 297;goto st1286;} + {stack[top++] = 306;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 297;goto st1325;} + {stack[top++] = 306;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 297;goto st1351;} + {stack[top++] = 306;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 297;goto st1354;} + {stack[top++] = 306;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 297;goto st1365;} + {stack[top++] = 306;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 297;goto st1367;} + {stack[top++] = 306;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 297;goto st1396;} + {stack[top++] = 306;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 297;goto st1409;} + {stack[top++] = 306;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 297;goto st1422;} + {stack[top++] = 306;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 297;goto st1428;} + {stack[top++] = 306;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 297;goto st1446;} + {stack[top++] = 306;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 297;goto st1441;} + {stack[top++] = 306;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 297;goto st1459;} + {stack[top++] = 306;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 297;goto st1465;} + {stack[top++] = 306;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 297;goto st1471;} + {stack[top++] = 306;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 297;goto st1479;} + {stack[top++] = 306;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 297;goto st1487;} + {stack[top++] = 306;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 297;goto st1493;} + {stack[top++] = 306;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 306;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { @@ -41268,110 +42972,113 @@ tr4238: { s->buffer_length = 0; } - goto st297; + goto st306; tr146: { s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 297;goto st1101;} + {stack[top++] = 306;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 297;goto st1103;} + {stack[top++] = 306;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 297;goto st1105;} + {stack[top++] = 306;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 297;goto st1137;} + {stack[top++] = 306;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 297;goto st1142;} + {stack[top++] = 306;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 297;goto st1147;} + {stack[top++] = 306;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 297;goto st1152;} + {stack[top++] = 306;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 297;goto st1156;} + {stack[top++] = 306;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 297;goto st1158;} + {stack[top++] = 306;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 297;goto st1213;} + {stack[top++] = 306;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 297;goto st1224;} + {stack[top++] = 306;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 297;goto st1241;} + {stack[top++] = 306;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 297;goto st1252;} + {stack[top++] = 306;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 297;goto st1263;} + {stack[top++] = 306;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 297;goto st1276;} + {stack[top++] = 306;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 297;goto st1286;} + {stack[top++] = 306;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 297;goto st1325;} + {stack[top++] = 306;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 297;goto st1351;} + {stack[top++] = 306;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 297;goto st1354;} + {stack[top++] = 306;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 297;goto st1365;} + {stack[top++] = 306;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 297;goto st1367;} + {stack[top++] = 306;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 297;goto st1396;} + {stack[top++] = 306;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 297;goto st1409;} + {stack[top++] = 306;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 297;goto st1422;} + {stack[top++] = 306;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 297;goto st1428;} + {stack[top++] = 306;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 297;goto st1446;} + {stack[top++] = 306;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 297;goto st1441;} + {stack[top++] = 306;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 297;goto st1459;} + {stack[top++] = 306;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 297;goto st1465;} + {stack[top++] = 306;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 297;goto st1471;} + {stack[top++] = 306;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 297;goto st1479;} + {stack[top++] = 306;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 297;goto st1487;} + {stack[top++] = 306;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 297;goto st1493;} + {stack[top++] = 306;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 306;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->buffer_length = 0; } - goto st297; -st297: + goto st306; +st306: if ( ++p == pe ) - goto _test_eof297; -case 297: + goto _test_eof306; +case 306: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41385,32 +43092,32 @@ case 297: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1018; - case 32: goto tr1018; - case 40: goto tr1019; - case 41: goto tr1020; - case 1802: goto tr1021; - case 1851: goto tr893; - case 2058: goto tr1021; - case 2107: goto tr893; + case 9: goto tr1043; + case 32: goto tr1043; + case 40: goto tr1044; + case 41: goto tr1045; + case 1802: goto tr1046; + case 1851: goto tr918; + case 2058: goto tr1046; + case 2107: goto tr918; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr797; + goto tr822; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr797; + goto tr822; } else - goto tr797; + goto tr822; goto tr86; -tr1022: +tr1047: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st298; -tr1018: + goto st307; +tr1043: { s->buffer[0] = 0; s->buffer_length = 0; @@ -41420,8 +43127,8 @@ tr1018: s->buffer[s->buffer_length++] = (*p); } } - goto st298; -tr1019: + goto st307; +tr1044: { s->buffer[0] = 0; s->buffer_length = 0; @@ -41429,7 +43136,7 @@ tr1019: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -41438,8 +43145,8 @@ tr1019: s->buffer[s->buffer_length++] = (*p); } } - goto st298; -tr1020: + goto st307; +tr1045: { s->buffer[0] = 0; s->buffer_length = 0; @@ -41447,7 +43154,7 @@ tr1020: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -41456,12 +43163,12 @@ tr1020: s->buffer[s->buffer_length++] = (*p); } } - goto st298; -tr1023: + goto st307; +tr1048: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -41470,12 +43177,12 @@ tr1023: s->buffer[s->buffer_length++] = (*p); } } - goto st298; -tr1024: + goto st307; +tr1049: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -41484,11 +43191,11 @@ tr1024: s->buffer[s->buffer_length++] = (*p); } } - goto st298; -st298: + goto st307; +st307: if ( ++p == pe ) - goto _test_eof298; -case 298: + goto _test_eof307; +case 307: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -41502,23 +43209,23 @@ case 298: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1022; - case 32: goto tr1022; - case 40: goto tr1023; - case 41: goto tr1024; - case 1802: goto tr1025; - case 1851: goto tr897; - case 2058: goto tr1025; - case 2107: goto tr897; + case 9: goto tr1047; + case 32: goto tr1047; + case 40: goto tr1048; + case 41: goto tr1049; + case 1802: goto tr1050; + case 1851: goto tr922; + case 2058: goto tr1050; + case 2107: goto tr922; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr797; + goto tr822; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr797; + goto tr822; } else - goto tr797; + goto tr822; goto tr92; tr148: { @@ -41529,97 +43236,100 @@ tr148: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 299;goto st1101;} + {stack[top++] = 308;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 299;goto st1103;} + {stack[top++] = 308;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 299;goto st1105;} + {stack[top++] = 308;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 299;goto st1137;} + {stack[top++] = 308;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 299;goto st1142;} + {stack[top++] = 308;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 299;goto st1147;} + {stack[top++] = 308;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 299;goto st1152;} + {stack[top++] = 308;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 299;goto st1156;} + {stack[top++] = 308;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 299;goto st1158;} + {stack[top++] = 308;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 299;goto st1213;} + {stack[top++] = 308;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 299;goto st1224;} + {stack[top++] = 308;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 299;goto st1241;} + {stack[top++] = 308;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 299;goto st1252;} + {stack[top++] = 308;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 299;goto st1263;} + {stack[top++] = 308;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 299;goto st1276;} + {stack[top++] = 308;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 299;goto st1286;} + {stack[top++] = 308;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 299;goto st1325;} + {stack[top++] = 308;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 299;goto st1351;} + {stack[top++] = 308;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 299;goto st1354;} + {stack[top++] = 308;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 299;goto st1365;} + {stack[top++] = 308;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 299;goto st1367;} + {stack[top++] = 308;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 299;goto st1396;} + {stack[top++] = 308;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 299;goto st1409;} + {stack[top++] = 308;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 299;goto st1422;} + {stack[top++] = 308;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 299;goto st1428;} + {stack[top++] = 308;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 299;goto st1446;} + {stack[top++] = 308;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 299;goto st1441;} + {stack[top++] = 308;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 299;goto st1459;} + {stack[top++] = 308;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 299;goto st1465;} + {stack[top++] = 308;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 299;goto st1471;} + {stack[top++] = 308;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 299;goto st1479;} + {stack[top++] = 308;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 299;goto st1487;} + {stack[top++] = 308;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 299;goto st1493;} + {stack[top++] = 308;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 308;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st299; -tr4240: + goto st308; +tr4525: { s->buffer_length = 0; } @@ -41628,110 +43338,113 @@ tr4240: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 299;goto st1101;} + {stack[top++] = 308;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 299;goto st1103;} + {stack[top++] = 308;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 299;goto st1105;} + {stack[top++] = 308;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 299;goto st1137;} + {stack[top++] = 308;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 299;goto st1142;} + {stack[top++] = 308;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 299;goto st1147;} + {stack[top++] = 308;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 299;goto st1152;} + {stack[top++] = 308;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 299;goto st1156;} + {stack[top++] = 308;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 299;goto st1158;} + {stack[top++] = 308;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 299;goto st1213;} + {stack[top++] = 308;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 299;goto st1224;} + {stack[top++] = 308;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 299;goto st1241;} + {stack[top++] = 308;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 299;goto st1252;} + {stack[top++] = 308;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 299;goto st1263;} + {stack[top++] = 308;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 299;goto st1276;} + {stack[top++] = 308;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 299;goto st1286;} + {stack[top++] = 308;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 299;goto st1325;} + {stack[top++] = 308;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 299;goto st1351;} + {stack[top++] = 308;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 299;goto st1354;} + {stack[top++] = 308;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 299;goto st1365;} + {stack[top++] = 308;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 299;goto st1367;} + {stack[top++] = 308;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 299;goto st1396;} + {stack[top++] = 308;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 299;goto st1409;} + {stack[top++] = 308;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 299;goto st1422;} + {stack[top++] = 308;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 299;goto st1428;} + {stack[top++] = 308;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 299;goto st1446;} + {stack[top++] = 308;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 299;goto st1441;} + {stack[top++] = 308;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 299;goto st1459;} + {stack[top++] = 308;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 299;goto st1465;} + {stack[top++] = 308;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 299;goto st1471;} + {stack[top++] = 308;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 299;goto st1479;} + {stack[top++] = 308;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 299;goto st1487;} + {stack[top++] = 308;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 299;goto st1493;} + {stack[top++] = 308;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 308;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st299; -st299: + goto st308; +st308: if ( ++p == pe ) - goto _test_eof299; -case 299: + goto _test_eof308; +case 308: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -41763,33 +43476,33 @@ case 299: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr1018; - case 1802: goto tr1021; - case 1824: goto tr1018; - case 1832: goto tr1019; - case 1833: goto tr1020; - case 1851: goto tr893; - case 2057: goto tr1026; - case 2058: goto tr959; - case 2080: goto tr1026; - case 2088: goto tr1027; - case 2089: goto tr1028; - case 2107: goto tr970; + case 1801: goto tr1043; + case 1802: goto tr1046; + case 1824: goto tr1043; + case 1832: goto tr1044; + case 1833: goto tr1045; + case 1851: goto tr918; + case 2057: goto tr1051; + case 2058: goto tr984; + case 2080: goto tr1051; + case 2088: goto tr1052; + case 2089: goto tr1053; + case 2107: goto tr995; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1016; + goto tr1041; } else if ( _widec >= 1664 ) - goto tr797; + goto tr822; goto tr86; -tr1029: +tr1054: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st300; -tr1026: + goto st309; +tr1051: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41799,8 +43512,8 @@ tr1026: s->buffer[0] = 0; s->buffer_length = 0; } - goto st300; -tr1027: + goto st309; +tr1052: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41813,12 +43526,12 @@ tr1027: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st300; -tr1028: + goto st309; +tr1053: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41831,12 +43544,12 @@ tr1028: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st300; -tr1030: + goto st309; +tr1055: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41845,12 +43558,12 @@ tr1030: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st300; -tr1031: + goto st309; +tr1056: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -41859,15 +43572,15 @@ tr1031: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st300; -st300: + goto st309; +st309: if ( ++p == pe ) - goto _test_eof300; -case 300: + goto _test_eof309; +case 309: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -41899,24 +43612,24 @@ case 300: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr1022; - case 1802: goto tr1025; - case 1824: goto tr1022; - case 1832: goto tr1023; - case 1833: goto tr1024; - case 1851: goto tr897; - case 2057: goto tr1029; - case 2058: goto tr888; - case 2080: goto tr1029; - case 2088: goto tr1030; - case 2089: goto tr1031; - case 2107: goto tr974; + case 1801: goto tr1047; + case 1802: goto tr1050; + case 1824: goto tr1047; + case 1832: goto tr1048; + case 1833: goto tr1049; + case 1851: goto tr922; + case 2057: goto tr1054; + case 2058: goto tr913; + case 2080: goto tr1054; + case 2088: goto tr1055; + case 2089: goto tr1056; + case 2107: goto tr999; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1016; + goto tr1041; } else if ( _widec >= 1664 ) - goto tr797; + goto tr822; goto tr86; tr117: { @@ -41927,96 +43640,99 @@ tr117: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 301;goto st1101;} + {stack[top++] = 310;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 301;goto st1103;} + {stack[top++] = 310;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 301;goto st1105;} + {stack[top++] = 310;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 301;goto st1137;} + {stack[top++] = 310;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 301;goto st1142;} + {stack[top++] = 310;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 301;goto st1147;} + {stack[top++] = 310;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 301;goto st1152;} + {stack[top++] = 310;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 301;goto st1156;} + {stack[top++] = 310;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 301;goto st1158;} + {stack[top++] = 310;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 301;goto st1213;} + {stack[top++] = 310;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 301;goto st1224;} + {stack[top++] = 310;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 301;goto st1241;} + {stack[top++] = 310;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 301;goto st1252;} + {stack[top++] = 310;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 301;goto st1263;} + {stack[top++] = 310;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 301;goto st1276;} + {stack[top++] = 310;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 301;goto st1286;} + {stack[top++] = 310;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 301;goto st1325;} + {stack[top++] = 310;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 301;goto st1351;} + {stack[top++] = 310;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 301;goto st1354;} + {stack[top++] = 310;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 301;goto st1365;} + {stack[top++] = 310;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 301;goto st1367;} + {stack[top++] = 310;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 301;goto st1396;} + {stack[top++] = 310;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 301;goto st1409;} + {stack[top++] = 310;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 301;goto st1422;} + {stack[top++] = 310;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 301;goto st1428;} + {stack[top++] = 310;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 301;goto st1446;} + {stack[top++] = 310;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 301;goto st1441;} + {stack[top++] = 310;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 301;goto st1459;} + {stack[top++] = 310;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 301;goto st1465;} + {stack[top++] = 310;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 301;goto st1471;} + {stack[top++] = 310;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 301;goto st1479;} + {stack[top++] = 310;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 301;goto st1487;} + {stack[top++] = 310;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 301;goto st1493;} + {stack[top++] = 310;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 310;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st301; + goto st310; tr110: { s->buffer_length = 0; @@ -42026,101 +43742,104 @@ tr110: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 301;goto st1101;} + {stack[top++] = 310;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 301;goto st1103;} + {stack[top++] = 310;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 301;goto st1105;} + {stack[top++] = 310;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 301;goto st1137;} + {stack[top++] = 310;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 301;goto st1142;} + {stack[top++] = 310;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 301;goto st1147;} + {stack[top++] = 310;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 301;goto st1152;} + {stack[top++] = 310;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 301;goto st1156;} + {stack[top++] = 310;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 301;goto st1158;} + {stack[top++] = 310;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 301;goto st1213;} + {stack[top++] = 310;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 301;goto st1224;} + {stack[top++] = 310;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 301;goto st1241;} + {stack[top++] = 310;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 301;goto st1252;} + {stack[top++] = 310;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 301;goto st1263;} + {stack[top++] = 310;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 301;goto st1276;} + {stack[top++] = 310;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 301;goto st1286;} + {stack[top++] = 310;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 301;goto st1325;} + {stack[top++] = 310;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 301;goto st1351;} + {stack[top++] = 310;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 301;goto st1354;} + {stack[top++] = 310;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 301;goto st1365;} + {stack[top++] = 310;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 301;goto st1367;} + {stack[top++] = 310;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 301;goto st1396;} + {stack[top++] = 310;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 301;goto st1409;} + {stack[top++] = 310;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 301;goto st1422;} + {stack[top++] = 310;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 301;goto st1428;} + {stack[top++] = 310;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 301;goto st1446;} + {stack[top++] = 310;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 301;goto st1441;} + {stack[top++] = 310;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 301;goto st1459;} + {stack[top++] = 310;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 301;goto st1465;} + {stack[top++] = 310;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 301;goto st1471;} + {stack[top++] = 310;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 301;goto st1479;} + {stack[top++] = 310;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 301;goto st1487;} + {stack[top++] = 310;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 301;goto st1493;} + {stack[top++] = 310;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 310;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st301; -tr876: + goto st310; +tr901: { s->r_type = KNOT_RRTYPE_A; } { rdata_tail = s->r_data; @@ -42133,104 +43852,107 @@ tr876: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 301;goto st1101;} + {stack[top++] = 310;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 301;goto st1103;} + {stack[top++] = 310;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 301;goto st1105;} + {stack[top++] = 310;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 301;goto st1137;} + {stack[top++] = 310;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 301;goto st1142;} + {stack[top++] = 310;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 301;goto st1147;} + {stack[top++] = 310;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 301;goto st1152;} + {stack[top++] = 310;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 301;goto st1156;} + {stack[top++] = 310;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 301;goto st1158;} + {stack[top++] = 310;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 301;goto st1213;} + {stack[top++] = 310;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 301;goto st1224;} + {stack[top++] = 310;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 301;goto st1241;} + {stack[top++] = 310;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 301;goto st1252;} + {stack[top++] = 310;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 301;goto st1263;} + {stack[top++] = 310;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 301;goto st1276;} + {stack[top++] = 310;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 301;goto st1286;} + {stack[top++] = 310;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 301;goto st1325;} + {stack[top++] = 310;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 301;goto st1351;} + {stack[top++] = 310;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 301;goto st1354;} + {stack[top++] = 310;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 301;goto st1365;} + {stack[top++] = 310;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 301;goto st1367;} + {stack[top++] = 310;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 301;goto st1396;} + {stack[top++] = 310;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 301;goto st1409;} + {stack[top++] = 310;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 301;goto st1422;} + {stack[top++] = 310;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 301;goto st1428;} + {stack[top++] = 310;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 301;goto st1446;} + {stack[top++] = 310;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 301;goto st1441;} + {stack[top++] = 310;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 301;goto st1459;} + {stack[top++] = 310;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 301;goto st1465;} + {stack[top++] = 310;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 301;goto st1471;} + {stack[top++] = 310;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 301;goto st1479;} + {stack[top++] = 310;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 301;goto st1487;} + {stack[top++] = 310;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 301;goto st1493;} + {stack[top++] = 310;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 310;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st301; -st301: + goto st310; +st310: if ( ++p == pe ) - goto _test_eof301; -case 301: + goto _test_eof310; +case 310: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -42262,17 +43984,17 @@ case 301: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr889; - case 1802: goto tr892; - case 1824: goto tr889; - case 1832: goto tr890; - case 1833: goto tr891; - case 1851: goto tr893; - case 2057: goto tr1032; - case 2058: goto tr892; - case 2080: goto tr1032; - case 2088: goto tr1033; - case 2089: goto tr1034; + case 1801: goto tr914; + case 1802: goto tr917; + case 1824: goto tr914; + case 1832: goto tr915; + case 1833: goto tr916; + case 1851: goto tr918; + case 2057: goto tr1057; + case 2058: goto tr917; + case 2080: goto tr1057; + case 2088: goto tr1058; + case 2089: goto tr1059; case 2107: goto tr178; } if ( _widec > 1919 ) { @@ -42281,14 +44003,14 @@ case 301: } else if ( _widec >= 1664 ) goto tr98; goto tr86; -tr1035: +tr1060: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st302; -tr1032: + goto st311; +tr1057: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -42298,8 +44020,8 @@ tr1032: s->buffer[0] = 0; s->buffer_length = 0; } - goto st302; -tr1033: + goto st311; +tr1058: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -42312,12 +44034,12 @@ tr1033: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st302; -tr1034: + goto st311; +tr1059: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -42330,12 +44052,12 @@ tr1034: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st302; -tr1036: + goto st311; +tr1061: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -42344,12 +44066,12 @@ tr1036: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st302; -tr1037: + goto st311; +tr1062: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -42358,15 +44080,15 @@ tr1037: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st302; -st302: + goto st311; +st311: if ( ++p == pe ) - goto _test_eof302; -case 302: + goto _test_eof311; +case 311: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -42398,17 +44120,17 @@ case 302: s->multiline ) _widec += 256; } switch( _widec ) { - case 1801: goto tr894; + case 1801: goto tr919; case 1802: goto tr99; - case 1824: goto tr894; - case 1832: goto tr895; - case 1833: goto tr896; - case 1851: goto tr897; - case 2057: goto tr1035; + case 1824: goto tr919; + case 1832: goto tr920; + case 1833: goto tr921; + case 1851: goto tr922; + case 2057: goto tr1060; case 2058: goto tr99; - case 2080: goto tr1035; - case 2088: goto tr1036; - case 2089: goto tr1037; + case 2080: goto tr1060; + case 2088: goto tr1061; + case 2089: goto tr1062; case 2107: goto tr182; } if ( _widec > 1919 ) { @@ -42417,19 +44139,19 @@ case 302: } else if ( _widec >= 1664 ) goto tr98; goto tr86; -tr864: +tr889: { s->buffer_length = 0; } - goto st303; -tr1038: + goto st312; +tr1063: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st303; -tr857: + goto st312; +tr882: { s->r_owner_length = s->dname_tmp_length; } @@ -42440,11 +44162,11 @@ tr857: { rdata_tail = s->r_data; } - goto st303; -st303: + goto st312; +st312: if ( ++p == pe ) - goto _test_eof303; -case 303: + goto _test_eof312; +case 312: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -42464,11 +44186,11 @@ case 303: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1039; + goto tr1064; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1038; + goto tr1063; goto tr78; -tr865: +tr890: { s->line_counter++; } @@ -42477,97 +44199,100 @@ tr865: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 304;goto st1101;} + {stack[top++] = 313;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 304;goto st1103;} + {stack[top++] = 313;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 304;goto st1105;} + {stack[top++] = 313;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 304;goto st1137;} + {stack[top++] = 313;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 304;goto st1142;} + {stack[top++] = 313;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 304;goto st1147;} + {stack[top++] = 313;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 304;goto st1152;} + {stack[top++] = 313;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 304;goto st1156;} + {stack[top++] = 313;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 304;goto st1158;} + {stack[top++] = 313;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 304;goto st1213;} + {stack[top++] = 313;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 304;goto st1224;} + {stack[top++] = 313;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 304;goto st1241;} + {stack[top++] = 313;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 304;goto st1252;} + {stack[top++] = 313;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 304;goto st1263;} + {stack[top++] = 313;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 304;goto st1276;} + {stack[top++] = 313;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 304;goto st1286;} + {stack[top++] = 313;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 304;goto st1325;} + {stack[top++] = 313;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 304;goto st1351;} + {stack[top++] = 313;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 304;goto st1354;} + {stack[top++] = 313;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 304;goto st1365;} + {stack[top++] = 313;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 304;goto st1367;} + {stack[top++] = 313;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 304;goto st1396;} + {stack[top++] = 313;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 304;goto st1409;} + {stack[top++] = 313;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 304;goto st1422;} + {stack[top++] = 313;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 304;goto st1428;} + {stack[top++] = 313;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 304;goto st1446;} + {stack[top++] = 313;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 304;goto st1441;} + {stack[top++] = 313;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 304;goto st1459;} + {stack[top++] = 313;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 304;goto st1465;} + {stack[top++] = 313;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 304;goto st1471;} + {stack[top++] = 313;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 304;goto st1479;} + {stack[top++] = 313;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 304;goto st1487;} + {stack[top++] = 313;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 304;goto st1493;} + {stack[top++] = 313;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 313;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st304; -tr858: + goto st313; +tr883: { s->r_owner_length = s->dname_tmp_length; } @@ -42583,100 +44308,103 @@ tr858: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 304;goto st1101;} + {stack[top++] = 313;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 304;goto st1103;} + {stack[top++] = 313;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 304;goto st1105;} + {stack[top++] = 313;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 304;goto st1137;} + {stack[top++] = 313;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 304;goto st1142;} + {stack[top++] = 313;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 304;goto st1147;} + {stack[top++] = 313;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 304;goto st1152;} + {stack[top++] = 313;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 304;goto st1156;} + {stack[top++] = 313;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 304;goto st1158;} + {stack[top++] = 313;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 304;goto st1213;} + {stack[top++] = 313;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 304;goto st1224;} + {stack[top++] = 313;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 304;goto st1241;} + {stack[top++] = 313;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 304;goto st1252;} + {stack[top++] = 313;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 304;goto st1263;} + {stack[top++] = 313;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 304;goto st1276;} + {stack[top++] = 313;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 304;goto st1286;} + {stack[top++] = 313;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 304;goto st1325;} + {stack[top++] = 313;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 304;goto st1351;} + {stack[top++] = 313;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 304;goto st1354;} + {stack[top++] = 313;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 304;goto st1365;} + {stack[top++] = 313;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 304;goto st1367;} + {stack[top++] = 313;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 304;goto st1396;} + {stack[top++] = 313;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 304;goto st1409;} + {stack[top++] = 313;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 304;goto st1422;} + {stack[top++] = 313;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 304;goto st1428;} + {stack[top++] = 313;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 304;goto st1446;} + {stack[top++] = 313;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 304;goto st1441;} + {stack[top++] = 313;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 304;goto st1459;} + {stack[top++] = 313;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 304;goto st1465;} + {stack[top++] = 313;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 304;goto st1471;} + {stack[top++] = 313;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 304;goto st1479;} + {stack[top++] = 313;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 304;goto st1487;} + {stack[top++] = 313;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 304;goto st1493;} + {stack[top++] = 313;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 313;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st304; -st304: + goto st313; +st313: if ( ++p == pe ) - goto _test_eof304; -case 304: + goto _test_eof313; +case 313: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -42694,10 +44422,10 @@ case 304: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1040; - case 32: goto tr1040; - case 40: goto tr1041; - case 41: goto tr1042; + case 9: goto tr1065; + case 32: goto tr1065; + case 40: goto tr1066; + case 41: goto tr1067; case 58: goto tr76; case 65: goto tr125; case 67: goto tr126; @@ -42738,12 +44466,12 @@ case 304: case 122: goto tr142; case 2826: goto tr90; case 2875: goto tr91; - case 3082: goto tr956; - case 3131: goto tr1043; + case 3082: goto tr981; + case 3131: goto tr1068; case 3338: goto tr108; case 3387: goto tr109; - case 3594: goto tr956; - case 3643: goto tr1044; + case 3594: goto tr981; + case 3643: goto tr1069; } if ( _widec < 11 ) { if ( _widec <= 8 ) @@ -42757,7 +44485,7 @@ case 304: } else goto tr76; goto tr121; -tr866: +tr891: { s->buffer_length = 0; } @@ -42766,97 +44494,100 @@ tr866: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 305;goto st1101;} + {stack[top++] = 314;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 305;goto st1103;} + {stack[top++] = 314;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 305;goto st1105;} + {stack[top++] = 314;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 305;goto st1137;} + {stack[top++] = 314;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 305;goto st1142;} + {stack[top++] = 314;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 305;goto st1147;} + {stack[top++] = 314;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 305;goto st1152;} + {stack[top++] = 314;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 305;goto st1156;} + {stack[top++] = 314;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 305;goto st1158;} + {stack[top++] = 314;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 305;goto st1213;} + {stack[top++] = 314;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 305;goto st1224;} + {stack[top++] = 314;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 305;goto st1241;} + {stack[top++] = 314;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 305;goto st1252;} + {stack[top++] = 314;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 305;goto st1263;} + {stack[top++] = 314;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 305;goto st1276;} + {stack[top++] = 314;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 305;goto st1286;} + {stack[top++] = 314;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 305;goto st1325;} + {stack[top++] = 314;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 305;goto st1351;} + {stack[top++] = 314;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 305;goto st1354;} + {stack[top++] = 314;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 305;goto st1365;} + {stack[top++] = 314;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 305;goto st1367;} + {stack[top++] = 314;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 305;goto st1396;} + {stack[top++] = 314;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 305;goto st1409;} + {stack[top++] = 314;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 305;goto st1422;} + {stack[top++] = 314;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 305;goto st1428;} + {stack[top++] = 314;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 305;goto st1446;} + {stack[top++] = 314;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 305;goto st1441;} + {stack[top++] = 314;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 305;goto st1459;} + {stack[top++] = 314;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 305;goto st1465;} + {stack[top++] = 314;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 305;goto st1471;} + {stack[top++] = 314;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 305;goto st1479;} + {stack[top++] = 314;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 305;goto st1487;} + {stack[top++] = 314;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 305;goto st1493;} + {stack[top++] = 314;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 314;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st305; -tr859: + goto st314; +tr884: { s->r_owner_length = s->dname_tmp_length; } @@ -42872,100 +44603,103 @@ tr859: p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = 305;goto st1101;} + {stack[top++] = 314;goto st1246;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = 305;goto st1103;} + {stack[top++] = 314;goto st1248;} case KNOT_RRTYPE_SOA: - {stack[top++] = 305;goto st1105;} + {stack[top++] = 314;goto st1250;} case KNOT_RRTYPE_HINFO: - {stack[top++] = 305;goto st1137;} + {stack[top++] = 314;goto st1282;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = 305;goto st1142;} + {stack[top++] = 314;goto st1287;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = 305;goto st1147;} + {stack[top++] = 314;goto st1292;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = 305;goto st1152;} + {stack[top++] = 314;goto st1297;} case KNOT_RRTYPE_AAAA: - {stack[top++] = 305;goto st1156;} + {stack[top++] = 314;goto st1301;} case KNOT_RRTYPE_LOC: - {stack[top++] = 305;goto st1158;} + {stack[top++] = 314;goto st1303;} case KNOT_RRTYPE_SRV: - {stack[top++] = 305;goto st1213;} + {stack[top++] = 314;goto st1358;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = 305;goto st1224;} + {stack[top++] = 314;goto st1369;} case KNOT_RRTYPE_CERT: - {stack[top++] = 305;goto st1241;} + {stack[top++] = 314;goto st1386;} case KNOT_RRTYPE_APL: - {stack[top++] = 305;goto st1252;} + {stack[top++] = 314;goto st1397;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = 305;goto st1263;} + {stack[top++] = 314;goto st1408;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = 305;goto st1276;} + {stack[top++] = 314;goto st1421;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = 305;goto st1286;} + {stack[top++] = 314;goto st1431;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = 305;goto st1325;} + {stack[top++] = 314;goto st1470;} case KNOT_RRTYPE_NSEC: - {stack[top++] = 305;goto st1351;} + {stack[top++] = 314;goto st1496;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = 305;goto st1354;} + {stack[top++] = 314;goto st1499;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = 305;goto st1365;} + {stack[top++] = 314;goto st1510;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = 305;goto st1367;} + {stack[top++] = 314;goto st1512;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = 305;goto st1396;} + {stack[top++] = 314;goto st1541;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = 305;goto st1409;} + {stack[top++] = 314;goto st1554;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = 305;goto st1422;} + {stack[top++] = 314;goto st1567;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = 305;goto st1428;} + {stack[top++] = 314;goto st1573;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = 305;goto st1446;} + {stack[top++] = 314;goto st1591;} case KNOT_RRTYPE_L32: - {stack[top++] = 305;goto st1441;} + {stack[top++] = 314;goto st1586;} case KNOT_RRTYPE_EUI48: - {stack[top++] = 305;goto st1459;} + {stack[top++] = 314;goto st1604;} case KNOT_RRTYPE_EUI64: - {stack[top++] = 305;goto st1465;} + {stack[top++] = 314;goto st1610;} case KNOT_RRTYPE_URI: - {stack[top++] = 305;goto st1471;} + {stack[top++] = 314;goto st1616;} case KNOT_RRTYPE_CAA: - {stack[top++] = 305;goto st1479;} + {stack[top++] = 314;goto st1624;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = 305;goto st1487;} + {stack[top++] = 314;goto st1632;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = 305;goto st1493;} + {stack[top++] = 314;goto st1638;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = 314;goto st1649;} default: WARN(ZS_CANNOT_TEXT_DATA); - {goto st329;} + {goto st338;} } } - goto st305; -st305: + goto st314; +st314: if ( ++p == pe ) - goto _test_eof305; -case 305: + goto _test_eof314; +case 314: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -43003,24 +44737,24 @@ case 305: case 1832: goto tr88; case 1833: goto tr89; case 1851: goto tr91; - case 2057: goto tr1045; - case 2058: goto tr959; - case 2080: goto tr1045; - case 2088: goto tr1046; - case 2089: goto tr1047; - case 2107: goto tr970; + case 2057: goto tr1070; + case 2058: goto tr984; + case 2080: goto tr1070; + case 2088: goto tr1071; + case 2089: goto tr1072; + case 2107: goto tr995; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1038; + goto tr1063; goto tr86; -tr1048: +tr1073: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st306; -tr1045: + goto st315; +tr1070: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -43030,8 +44764,8 @@ tr1045: s->buffer[0] = 0; s->buffer_length = 0; } - goto st306; -tr1046: + goto st315; +tr1071: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -43044,12 +44778,12 @@ tr1046: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st306; -tr1047: + goto st315; +tr1072: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -43062,12 +44796,12 @@ tr1047: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st306; -tr1049: + goto st315; +tr1074: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -43076,12 +44810,12 @@ tr1049: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st306; -tr1050: + goto st315; +tr1075: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); @@ -43090,15 +44824,15 @@ tr1050: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st306; -st306: + goto st315; +st315: if ( ++p == pe ) - goto _test_eof306; -case 306: + goto _test_eof315; +case 315: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { @@ -43136,17 +44870,17 @@ case 306: case 1832: goto tr94; case 1833: goto tr95; case 1851: goto tr97; - case 2057: goto tr1048; - case 2058: goto tr888; - case 2080: goto tr1048; - case 2088: goto tr1049; - case 2089: goto tr1050; - case 2107: goto tr974; + case 2057: goto tr1073; + case 2058: goto tr913; + case 2080: goto tr1073; + case 2088: goto tr1074; + case 2089: goto tr1075; + case 2107: goto tr999; } if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1038; + goto tr1063; goto tr86; -tr4246: +tr4531: { s->r_class = s->default_class; } @@ -43154,9 +44888,9 @@ tr4246: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 307;goto st331;} } - goto st307; -tr4268: + { p--; {stack[top++] = 316;goto st340;} } + goto st316; +tr4553: { s->r_class = s->default_class; } @@ -43167,12 +44901,12 @@ tr4268: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 307;goto st331;} } - goto st307; -st307: + { p--; {stack[top++] = 316;goto st340;} } + goto st316; +st316: if ( ++p == pe ) - goto _test_eof307; -case 307: + goto _test_eof316; +case 316: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43186,10 +44920,10 @@ case 307: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; case 65: goto st18; case 68: goto st22; case 69: goto st29; @@ -43200,11 +44934,11 @@ case 307: case 101: goto st29; case 110: goto st32; case 115: goto st36; - case 2058: goto tr814; - case 2107: goto tr815; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4247: + goto tr1076; +tr4532: { s->r_class = s->default_class; } @@ -43212,9 +44946,9 @@ tr4247: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 308;goto st331;} } - goto st308; -tr4269: + { p--; {stack[top++] = 317;goto st340;} } + goto st317; +tr4554: { s->r_class = s->default_class; } @@ -43225,12 +44959,12 @@ tr4269: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 308;goto st331;} } - goto st308; -st308: + { p--; {stack[top++] = 317;goto st340;} } + goto st317; +st317: if ( ++p == pe ) - goto _test_eof308; -case 308: + goto _test_eof317; +case 317: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43244,21 +44978,23 @@ case 308: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 72: goto st41; - case 78: goto st45; - case 83: goto st53; - case 104: goto st41; - case 110: goto st45; - case 115: goto st53; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 69: goto st41; + case 72: goto st50; + case 78: goto st54; + case 83: goto st62; + case 101: goto st41; + case 104: goto st50; + case 110: goto st54; + case 115: goto st62; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4248: + goto tr1076; +tr4533: { s->r_class = s->default_class; } @@ -43266,9 +45002,9 @@ tr4248: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 309;goto st331;} } - goto st309; -tr4270: + { p--; {stack[top++] = 318;goto st340;} } + goto st318; +tr4555: { s->r_class = s->default_class; } @@ -43279,12 +45015,12 @@ tr4270: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 309;goto st331;} } - goto st309; -st309: + { p--; {stack[top++] = 318;goto st340;} } + goto st318; +st318: if ( ++p == pe ) - goto _test_eof309; -case 309: + goto _test_eof318; +case 318: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43298,17 +45034,17 @@ case 309: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 85: goto st58; - case 117: goto st58; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 85: goto st67; + case 117: goto st67; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4249: + goto tr1076; +tr4534: { s->r_class = s->default_class; } @@ -43316,9 +45052,9 @@ tr4249: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 310;goto st331;} } - goto st310; -tr4271: + { p--; {stack[top++] = 319;goto st340;} } + goto st319; +tr4556: { s->r_class = s->default_class; } @@ -43329,12 +45065,12 @@ tr4271: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 310;goto st331;} } - goto st310; -st310: + { p--; {stack[top++] = 319;goto st340;} } + goto st319; +st319: if ( ++p == pe ) - goto _test_eof310; -case 310: + goto _test_eof319; +case 319: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43348,19 +45084,19 @@ case 310: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 73: goto st65; - case 84: goto st69; - case 105: goto st65; - case 116: goto st69; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 73: goto st74; + case 84: goto st78; + case 105: goto st74; + case 116: goto st78; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4272: + goto tr1076; +tr4557: { s->r_class = s->default_class; } @@ -43371,12 +45107,12 @@ tr4272: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 311;goto st331;} } - goto st311; -st311: + { p--; {stack[top++] = 320;goto st340;} } + goto st320; +st320: if ( ++p == pe ) - goto _test_eof311; -case 311: + goto _test_eof320; +case 320: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43390,19 +45126,19 @@ case 311: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 78: goto st191; - case 80: goto st77; - case 110: goto st191; - case 112: goto st77; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 78: goto st200; + case 80: goto st86; + case 110: goto st200; + case 112: goto st86; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4251: + goto tr1076; +tr4536: { s->r_class = s->default_class; } @@ -43410,9 +45146,9 @@ tr4251: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 312;goto st331;} } - goto st312; -tr4273: + { p--; {stack[top++] = 321;goto st340;} } + goto st321; +tr4558: { s->r_class = s->default_class; } @@ -43423,12 +45159,12 @@ tr4273: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 312;goto st331;} } - goto st312; -st312: + { p--; {stack[top++] = 321;goto st340;} } + goto st321; +st321: if ( ++p == pe ) - goto _test_eof312; -case 312: + goto _test_eof321; +case 321: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43442,19 +45178,19 @@ case 312: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 69: goto st85; - case 88: goto st87; - case 101: goto st85; - case 120: goto st87; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 69: goto st94; + case 88: goto st96; + case 101: goto st94; + case 120: goto st96; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4252: + goto tr1076; +tr4537: { s->r_class = s->default_class; } @@ -43462,9 +45198,9 @@ tr4252: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 313;goto st331;} } - goto st313; -tr4274: + { p--; {stack[top++] = 322;goto st340;} } + goto st322; +tr4559: { s->r_class = s->default_class; } @@ -43475,12 +45211,12 @@ tr4274: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 313;goto st331;} } - goto st313; -st313: + { p--; {stack[top++] = 322;goto st340;} } + goto st322; +st322: if ( ++p == pe ) - goto _test_eof313; -case 313: + goto _test_eof322; +case 322: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43494,21 +45230,21 @@ case 313: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 51: goto st89; - case 54: goto st91; - case 79: goto st93; - case 80: goto st95; - case 111: goto st93; - case 112: goto st95; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 51: goto st98; + case 54: goto st100; + case 79: goto st102; + case 80: goto st104; + case 111: goto st102; + case 112: goto st104; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4253: + goto tr1076; +tr4538: { s->r_class = s->default_class; } @@ -43516,9 +45252,9 @@ tr4253: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 314;goto st331;} } - goto st314; -tr4275: + { p--; {stack[top++] = 323;goto st340;} } + goto st323; +tr4560: { s->r_class = s->default_class; } @@ -43529,12 +45265,12 @@ tr4275: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 314;goto st331;} } - goto st314; -st314: + { p--; {stack[top++] = 323;goto st340;} } + goto st323; +st323: if ( ++p == pe ) - goto _test_eof314; -case 314: + goto _test_eof323; +case 323: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43548,19 +45284,19 @@ case 314: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 73: goto st97; - case 88: goto st101; - case 105: goto st97; - case 120: goto st101; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 73: goto st106; + case 88: goto st110; + case 105: goto st106; + case 120: goto st110; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4254: + goto tr1076; +tr4539: { s->r_class = s->default_class; } @@ -43568,9 +45304,9 @@ tr4254: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 315;goto st331;} } - goto st315; -tr4276: + { p--; {stack[top++] = 324;goto st340;} } + goto st324; +tr4561: { s->r_class = s->default_class; } @@ -43581,12 +45317,12 @@ tr4276: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 315;goto st331;} } - goto st315; -st315: + { p--; {stack[top++] = 324;goto st340;} } + goto st324; +st324: if ( ++p == pe ) - goto _test_eof315; -case 315: + goto _test_eof324; +case 324: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43600,21 +45336,21 @@ case 315: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 65: goto st103; - case 73: goto st107; - case 83: goto st109; - case 97: goto st103; - case 105: goto st107; - case 115: goto st109; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 65: goto st112; + case 73: goto st116; + case 83: goto st118; + case 97: goto st112; + case 105: goto st116; + case 115: goto st118; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4255: + goto tr1076; +tr4540: { s->r_class = s->default_class; } @@ -43622,9 +45358,9 @@ tr4255: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 316;goto st331;} } - goto st316; -tr4277: + { p--; {stack[top++] = 325;goto st340;} } + goto st325; +tr4562: { s->r_class = s->default_class; } @@ -43635,12 +45371,12 @@ tr4277: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 316;goto st331;} } - goto st316; -st316: + { p--; {stack[top++] = 325;goto st340;} } + goto st325; +st325: if ( ++p == pe ) - goto _test_eof316; -case 316: + goto _test_eof325; +case 325: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43654,17 +45390,17 @@ case 316: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 80: goto st119; - case 112: goto st119; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 80: goto st128; + case 112: goto st128; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4256: + goto tr1076; +tr4541: { s->r_class = s->default_class; } @@ -43672,9 +45408,9 @@ tr4256: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 317;goto st331;} } - goto st317; -tr4278: + { p--; {stack[top++] = 326;goto st340;} } + goto st326; +tr4563: { s->r_class = s->default_class; } @@ -43685,12 +45421,12 @@ tr4278: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 317;goto st331;} } - goto st317; -st317: + { p--; {stack[top++] = 326;goto st340;} } + goto st326; +st326: if ( ++p == pe ) - goto _test_eof317; -case 317: + goto _test_eof326; +case 326: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43704,17 +45440,17 @@ case 317: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 84: goto st129; - case 116: goto st129; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 84: goto st138; + case 116: goto st138; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4257: + goto tr1076; +tr4542: { s->r_class = s->default_class; } @@ -43722,9 +45458,9 @@ tr4257: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 318;goto st331;} } - goto st318; -tr4279: + { p--; {stack[top++] = 327;goto st340;} } + goto st327; +tr4564: { s->r_class = s->default_class; } @@ -43735,12 +45471,12 @@ tr4279: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 318;goto st331;} } - goto st318; -st318: + { p--; {stack[top++] = 327;goto st340;} } + goto st327; +st327: if ( ++p == pe ) - goto _test_eof318; -case 318: + goto _test_eof327; +case 327: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43754,23 +45490,23 @@ case 318: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 69: goto st132; - case 80: goto st138; - case 82: goto st139; - case 84: goto st143; - case 101: goto st132; - case 112: goto st138; - case 114: goto st139; - case 116: goto st143; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 69: goto st141; + case 80: goto st147; + case 82: goto st148; + case 84: goto st152; + case 101: goto st141; + case 112: goto st147; + case 114: goto st148; + case 116: goto st152; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4258: + goto tr1076; +tr4543: { s->r_class = s->default_class; } @@ -43778,9 +45514,9 @@ tr4258: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 319;goto st331;} } - goto st319; -tr4280: + { p--; {stack[top++] = 328;goto st340;} } + goto st328; +tr4565: { s->r_class = s->default_class; } @@ -43791,12 +45527,12 @@ tr4280: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 319;goto st331;} } - goto st319; -st319: + { p--; {stack[top++] = 328;goto st340;} } + goto st328; +st328: if ( ++p == pe ) - goto _test_eof319; -case 319: + goto _test_eof328; +case 328: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43810,27 +45546,27 @@ case 319: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 77: goto st145; - case 79: goto st150; - case 80: goto st152; - case 82: goto st154; - case 83: goto st156; - case 86: goto st160; - case 109: goto st145; - case 111: goto st150; - case 112: goto st152; - case 114: goto st154; - case 115: goto st156; - case 118: goto st160; - case 2058: goto tr814; - case 2107: goto tr815; - } - goto tr1051; -tr4259: + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 77: goto st154; + case 79: goto st159; + case 80: goto st161; + case 82: goto st163; + case 83: goto st165; + case 86: goto st169; + case 109: goto st154; + case 111: goto st159; + case 112: goto st161; + case 114: goto st163; + case 115: goto st165; + case 118: goto st169; + case 2058: goto tr839; + case 2107: goto tr840; + } + goto tr1076; +tr4544: { s->r_class = s->default_class; } @@ -43838,9 +45574,9 @@ tr4259: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 320;goto st331;} } - goto st320; -tr4281: + { p--; {stack[top++] = 329;goto st340;} } + goto st329; +tr4566: { s->r_class = s->default_class; } @@ -43851,12 +45587,12 @@ tr4281: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 320;goto st331;} } - goto st320; -st320: + { p--; {stack[top++] = 329;goto st340;} } + goto st329; +st329: if ( ++p == pe ) - goto _test_eof320; -case 320: + goto _test_eof329; +case 329: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43870,21 +45606,21 @@ case 320: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 76: goto st164; - case 88: goto st167; - case 89: goto st169; - case 108: goto st164; - case 120: goto st167; - case 121: goto st169; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 76: goto st173; + case 88: goto st176; + case 89: goto st178; + case 108: goto st173; + case 120: goto st176; + case 121: goto st178; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4260: + goto tr1076; +tr4545: { s->r_class = s->default_class; } @@ -43892,9 +45628,9 @@ tr4260: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 321;goto st331;} } - goto st321; -tr4282: + { p--; {stack[top++] = 330;goto st340;} } + goto st330; +tr4567: { s->r_class = s->default_class; } @@ -43905,12 +45641,12 @@ tr4282: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 321;goto st331;} } - goto st321; -st321: + { p--; {stack[top++] = 330;goto st340;} } + goto st330; +st330: if ( ++p == pe ) - goto _test_eof321; -case 321: + goto _test_eof330; +case 330: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43924,17 +45660,17 @@ case 321: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 82: goto st174; - case 114: goto st174; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 82: goto st183; + case 114: goto st183; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4261: + goto tr1076; +tr4546: { s->r_class = s->default_class; } @@ -43942,9 +45678,9 @@ tr4261: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 322;goto st331;} } - goto st322; -tr4283: + { p--; {stack[top++] = 331;goto st340;} } + goto st331; +tr4568: { s->r_class = s->default_class; } @@ -43955,12 +45691,12 @@ tr4283: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 322;goto st331;} } - goto st322; -st322: + { p--; {stack[top++] = 331;goto st340;} } + goto st331; +st331: if ( ++p == pe ) - goto _test_eof322; -case 322: + goto _test_eof331; +case 331: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -43974,17 +45710,17 @@ case 322: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 65: goto st177; - case 97: goto st177; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 65: goto st186; + case 97: goto st186; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; -tr4262: + goto tr1076; +tr4547: { s->r_class = s->default_class; } @@ -43992,9 +45728,9 @@ tr4262: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 323;goto st331;} } - goto st323; -tr4284: + { p--; {stack[top++] = 332;goto st340;} } + goto st332; +tr4569: { s->r_class = s->default_class; } @@ -44005,12 +45741,12 @@ tr4284: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 323;goto st331;} } - goto st323; -st323: + { p--; {stack[top++] = 332;goto st340;} } + goto st332; +st332: if ( ++p == pe ) - goto _test_eof323; -case 323: + goto _test_eof332; +case 332: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44024,33 +45760,33 @@ case 323: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 79: goto st183; - case 111: goto st183; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 79: goto st192; + case 111: goto st192; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; + goto tr1076; tr26: { s->buffer_length = 0; } - goto st324; -tr1052: + goto st333; +tr1077: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st324; -tr4228: + goto st333; +tr4513: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -44060,30 +45796,30 @@ tr4228: s->buffer[0] = 0; s->buffer_length = 0; } - goto st324; -tr4298: + goto st333; +tr4583: { s->buffer_length = 0; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st324; -tr4294: + goto st333; +tr4579: { NOERR; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -44093,11 +45829,11 @@ tr4294: s->buffer[0] = 0; s->buffer_length = 0; } - goto st324; -st324: + goto st333; +st333: if ( ++p == pe ) - goto _test_eof324; -case 324: + goto _test_eof333; +case 333: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -44117,46 +45853,46 @@ case 324: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr798; - case 2058: goto tr1053; + case 1802: goto tr823; + case 2058: goto tr1078; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1052; + goto tr1077; } else if ( _widec >= 1664 ) - goto tr797; + goto tr822; goto tr92; -tr740: +tr765: { s->buffer_length = 0; } - goto st325; -tr1054: + goto st334; +tr1079: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st325; -tr4264: + goto st334; +tr4549: { s->buffer_length = 0; } { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st325; -st325: + goto st334; +st334: if ( ++p == pe ) - goto _test_eof325; -case 325: + goto _test_eof334; +case 334: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -44176,16 +45912,16 @@ case 325: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr798; - case 2058: goto tr1055; + case 1802: goto tr823; + case 2058: goto tr1080; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1054; + goto tr1079; } else if ( _widec >= 1664 ) - goto tr797; + goto tr822; goto tr155; -tr4250: +tr4535: { s->r_class = s->default_class; } @@ -44193,12 +45929,12 @@ tr4250: s->dname = s->r_owner; s->r_owner_length = 0; } - { p--; {stack[top++] = 326;goto st331;} } - goto st326; -st326: + { p--; {stack[top++] = 335;goto st340;} } + goto st335; +st335: if ( ++p == pe ) - goto _test_eof326; -case 326: + goto _test_eof335; +case 335: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -44212,37 +45948,37 @@ case 326: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr811; - case 32: goto tr811; - case 40: goto tr812; - case 41: goto tr813; - case 78: goto st74; - case 80: goto st77; - case 110: goto st74; - case 112: goto st77; - case 2058: goto tr814; - case 2107: goto tr815; + case 9: goto tr836; + case 32: goto tr836; + case 40: goto tr837; + case 41: goto tr838; + case 78: goto st83; + case 80: goto st86; + case 110: goto st83; + case 112: goto st86; + case 2058: goto tr839; + case 2107: goto tr840; } - goto tr1051; + goto tr1076; tr160: { s->buffer_length = 0; } - goto st327; -tr1056: + goto st336; +tr1081: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st327; + goto st336; tr154: { if (s->number64 <= UINT32_MAX) { s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -44252,11 +45988,11 @@ tr154: s->buffer[0] = 0; s->buffer_length = 0; } - goto st327; -st327: + goto st336; +st336: if ( ++p == pe ) - goto _test_eof327; -case 327: + goto _test_eof336; +case 336: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -44277,32 +46013,32 @@ case 327: } switch( _widec ) { case 1802: goto tr99; - case 2058: goto tr1057; + case 2058: goto tr1082; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1056; + goto tr1081; } else if ( _widec >= 1664 ) goto tr98; goto tr155; -tr1061: +tr1086: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st328; -tr1060: + goto st337; +tr1085: { s->line_counter++; } - goto st328; -st328: + goto st337; +st337: if ( ++p == pe ) - goto _test_eof328; -case 328: + goto _test_eof337; +case 337: _widec = (*p); if ( (*p) > 10 ) { if ( 41 <= (*p) && (*p) <= 41 ) { @@ -44316,38 +46052,38 @@ case 328: s->multiline ) _widec += 256; } switch( _widec ) { - case 266: goto tr1059; - case 522: goto tr1060; - case 1065: goto tr1061; + case 266: goto tr1084; + case 522: goto tr1085; + case 1065: goto tr1086; } if ( _widec < 11 ) { if ( _widec <= 9 ) - goto st328; + goto st337; } else if ( _widec > 40 ) { if ( 42 <= _widec ) - goto st328; + goto st337; } else - goto st328; + goto st337; goto st0; -tr1059: - { p--; {stack[top++] = 1514;goto st1504;} } +tr1084: + { p--; {stack[top++] = 1661;goto st1651;} } { s->line_counter++; } - goto st1514; -st1514: + goto st1661; +st1661: if ( ++p == pe ) - goto _test_eof1514; -case 1514: + goto _test_eof1661; +case 1661: goto st0; -st329: +st338: if ( ++p == pe ) - goto _test_eof329; -case 329: + goto _test_eof338; +case 338: if ( (*p) == 10 ) - goto tr1063; - goto tr1062; -tr1062: + goto tr1088; + goto tr1087; +tr1087: { s->buffer_length = 0; } @@ -44360,8 +46096,8 @@ tr1062: s->buffer[s->buffer_length++] = (*p); } } - goto st330; -tr1064: + goto st339; +tr1089: { if ((*p) == '\r') { ERR(ZS_DOS_NEWLINE); @@ -44371,16 +46107,16 @@ tr1064: s->buffer[s->buffer_length++] = (*p); } } - goto st330; -st330: + goto st339; +st339: if ( ++p == pe ) - goto _test_eof330; -case 330: + goto _test_eof339; +case 339: if ( (*p) == 10 ) - goto tr1065; - goto tr1064; -tr1063: - cs = 1515; + goto tr1090; + goto tr1089; +tr1088: + cs = 1662; { s->buffer_length = 0; } @@ -44417,18 +46153,18 @@ tr1063: if (s->error.fatal) { {p++; goto _out;} } - {goto st328;} + {goto st337;} } else { // Return if external processing. - p--; cs = 328; {p++; goto _out;} + p--; cs = 337; {p++; goto _out;} } } { s->line_counter++; } goto _again; -tr1065: - cs = 1515; +tr1090: + cs = 1662; { // Terminate the error context string. s->buffer[s->buffer_length++] = 0; @@ -44462,42 +46198,42 @@ tr1065: if (s->error.fatal) { {p++; goto _out;} } - {goto st328;} + {goto st337;} } else { // Return if external processing. - p--; cs = 328; {p++; goto _out;} + p--; cs = 337; {p++; goto _out;} } } { s->line_counter++; } goto _again; -st1515: +st1662: if ( ++p == pe ) - goto _test_eof1515; -case 1515: + goto _test_eof1662; +case 1662: goto st0; -st331: +st340: if ( ++p == pe ) - goto _test_eof331; -case 331: + goto _test_eof340; +case 340: switch( (*p) ) { - case 42: goto tr1067; - case 46: goto tr1068; - case 64: goto st339; - case 92: goto tr1070; - case 95: goto tr1067; + case 42: goto tr1092; + case 46: goto tr1093; + case 64: goto st348; + case 92: goto tr1095; + case 95: goto tr1092; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1067; + goto tr1092; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1067; + goto tr1092; } else - goto tr1067; - goto tr1066; -tr1067: + goto tr1092; + goto tr1091; +tr1092: { s->item_length_position = 0; s->dname_tmp_length = 0; @@ -44513,11 +46249,11 @@ tr1067: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st332; -tr1072: + goto st341; +tr1097: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -44525,11 +46261,11 @@ tr1072: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st332; -tr1076: + goto st341; +tr1101: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -44541,11 +46277,11 @@ tr1076: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st332; -tr1083: + goto st341; +tr1108: { s->dname_tmp_length++; } @@ -44556,38 +46292,40 @@ tr1083: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st332; -st332: + goto st341; +st341: if ( ++p == pe ) - goto _test_eof332; -case 332: + goto _test_eof341; +case 341: switch( (*p) ) { - case 32: goto tr1071; - case 42: goto tr1072; - case 46: goto tr1073; - case 59: goto tr1071; - case 92: goto st334; - case 95: goto tr1072; + case 32: goto tr1096; + case 34: goto tr1096; + case 42: goto tr1097; + case 44: goto tr1096; + case 46: goto tr1098; + case 59: goto tr1096; + case 92: goto st343; + case 95: goto tr1097; } if ( (*p) < 45 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1071; + goto tr1096; } else if ( (*p) >= 9 ) - goto tr1071; + goto tr1096; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1072; + goto tr1097; } else if ( (*p) >= 65 ) - goto tr1072; + goto tr1097; } else - goto tr1072; - goto tr1066; -tr1071: + goto tr1097; + goto tr1091; +tr1096: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -44596,7 +46334,7 @@ tr1071: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -44609,14 +46347,14 @@ tr1071: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1075: + goto st1663; +tr1100: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -44624,8 +46362,8 @@ tr1075: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1082: + goto st1663; +tr1107: { s->dname_tmp_length++; } @@ -44637,7 +46375,7 @@ tr1082: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -44650,14 +46388,14 @@ tr1082: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1516; -tr1086: + goto st1663; +tr1111: { // Copy already verified zone origin. memcpy(s->dname, @@ -44669,13 +46407,13 @@ tr1086: { p--; {cs = stack[--top];goto _again;} } - goto st1516; -st1516: + goto st1663; +st1663: if ( ++p == pe ) - goto _test_eof1516; -case 1516: + goto _test_eof1663; +case 1663: goto st0; -tr1073: +tr1098: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -44684,11 +46422,11 @@ tr1073: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st333; -tr1084: + goto st342; +tr1109: { s->dname_tmp_length++; } @@ -44700,38 +46438,40 @@ tr1084: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st333; -st333: + goto st342; +st342: if ( ++p == pe ) - goto _test_eof333; -case 333: + goto _test_eof342; +case 342: switch( (*p) ) { - case 32: goto tr1075; - case 42: goto tr1076; - case 45: goto tr1076; - case 59: goto tr1075; - case 92: goto tr1077; - case 95: goto tr1076; + case 32: goto tr1100; + case 34: goto tr1100; + case 42: goto tr1101; + case 44: goto tr1100; + case 45: goto tr1101; + case 59: goto tr1100; + case 92: goto tr1102; + case 95: goto tr1101; } if ( (*p) < 47 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1075; + goto tr1100; } else if ( (*p) >= 9 ) - goto tr1075; + goto tr1100; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1076; + goto tr1101; } else if ( (*p) >= 65 ) - goto tr1076; + goto tr1101; } else - goto tr1076; - goto tr1066; -tr1070: + goto tr1101; + goto tr1091; +tr1095: { s->item_length_position = 0; s->dname_tmp_length = 0; @@ -44740,142 +46480,148 @@ tr1070: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st334; -tr1077: + goto st343; +tr1102: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st334; -tr1085: + goto st343; +tr1110: { s->dname_tmp_length++; } - goto st334; -st334: + goto st343; +st343: if ( ++p == pe ) - goto _test_eof334; -case 334: + goto _test_eof343; +case 343: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1078; - goto tr1072; -tr1078: + goto tr1103; + goto tr1097; +tr1103: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st335; -st335: + goto st344; +st344: if ( ++p == pe ) - goto _test_eof335; -case 335: + goto _test_eof344; +case 344: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1080; - goto tr1079; -tr1080: + goto tr1105; + goto tr1104; +tr1105: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st336; -st336: + goto st345; +st345: if ( ++p == pe ) - goto _test_eof336; -case 336: + goto _test_eof345; +case 345: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1081; - goto tr1079; -tr1081: + goto tr1106; + goto tr1104; +tr1106: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st337; -st337: + goto st346; +st346: if ( ++p == pe ) - goto _test_eof337; -case 337: + goto _test_eof346; +case 346: switch( (*p) ) { - case 32: goto tr1082; - case 42: goto tr1083; - case 46: goto tr1084; - case 59: goto tr1082; - case 92: goto tr1085; - case 95: goto tr1083; + case 32: goto tr1107; + case 34: goto tr1107; + case 42: goto tr1108; + case 44: goto tr1107; + case 46: goto tr1109; + case 59: goto tr1107; + case 92: goto tr1110; + case 95: goto tr1108; } if ( (*p) < 45 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1082; + goto tr1107; } else if ( (*p) >= 9 ) - goto tr1082; + goto tr1107; } else if ( (*p) > 57 ) { if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1083; + goto tr1108; } else if ( (*p) >= 65 ) - goto tr1083; + goto tr1108; } else - goto tr1083; - goto tr1079; -tr1068: + goto tr1108; + goto tr1104; +tr1093: { s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st338; -st338: + goto st347; +st347: if ( ++p == pe ) - goto _test_eof338; -case 338: + goto _test_eof347; +case 347: switch( (*p) ) { - case 32: goto tr1075; - case 59: goto tr1075; + case 32: goto tr1100; + case 34: goto tr1100; + case 44: goto tr1100; + case 59: goto tr1100; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1075; + goto tr1100; } else if ( (*p) >= 9 ) - goto tr1075; - goto tr1066; -st339: + goto tr1100; + goto tr1091; +st348: if ( ++p == pe ) - goto _test_eof339; -case 339: + goto _test_eof348; +case 348: switch( (*p) ) { - case 32: goto tr1086; - case 59: goto tr1086; + case 32: goto tr1111; + case 34: goto tr1111; + case 44: goto tr1111; + case 59: goto tr1111; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1086; + goto tr1111; } else if ( (*p) >= 9 ) - goto tr1086; - goto tr1066; -st340: + goto tr1111; + goto tr1091; +st349: if ( ++p == pe ) - goto _test_eof340; -case 340: + goto _test_eof349; +case 349: switch( (*p) ) { - case 34: goto st346; - case 92: goto st342; + case 34: goto st355; + case 92: goto st351; } if ( (*p) > 58 ) { if ( 60 <= (*p) && (*p) <= 126 ) - goto tr1088; + goto tr1113; } else if ( (*p) >= 33 ) - goto tr1088; - goto tr1087; -tr1088: + goto tr1113; + goto tr1112; +tr1113: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -44888,18 +46634,18 @@ tr1088: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st341; -tr1092: + goto st350; +tr1117: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -44907,7 +46653,7 @@ tr1092: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44925,7 +46671,7 @@ tr1092: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -44941,18 +46687,18 @@ tr1092: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st341; -tr1100: + goto st350; +tr1125: { rdata_tail++; } @@ -44963,7 +46709,7 @@ tr1100: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -44981,7 +46727,7 @@ tr1100: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -44997,40 +46743,40 @@ tr1100: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st341; -st341: + goto st350; +st350: if ( ++p == pe ) - goto _test_eof341; -case 341: + goto _test_eof350; +case 350: switch( (*p) ) { - case 32: goto tr1091; - case 33: goto tr1092; - case 59: goto tr1091; - case 92: goto tr1094; + case 32: goto tr1116; + case 33: goto tr1117; + case 59: goto tr1116; + case 92: goto tr1119; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1091; + goto tr1116; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1092; + goto tr1117; } else if ( (*p) >= 40 ) - goto tr1093; + goto tr1118; } else - goto tr1092; - goto tr1087; -tr1091: + goto tr1117; + goto tr1112; +tr1116: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -45038,7 +46784,7 @@ tr1091: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45056,15 +46802,15 @@ tr1091: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1099: + goto st1664; +tr1124: { rdata_tail++; } @@ -45075,7 +46821,7 @@ tr1099: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45093,25 +46839,25 @@ tr1099: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } { p--; {cs = stack[--top];goto _again;} } - goto st1517; -tr1112: + goto st1664; +tr1137: { p--; {cs = stack[--top];goto _again;} } - goto st1517; -st1517: + goto st1664; +st1664: if ( ++p == pe ) - goto _test_eof1517; -case 1517: + goto _test_eof1664; +case 1664: goto st0; -tr1093: +tr1118: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -45119,7 +46865,7 @@ tr1093: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45137,7 +46883,7 @@ tr1093: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -45153,21 +46899,21 @@ tr1093: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1518; -tr1101: + goto st1665; +tr1126: { rdata_tail++; } @@ -45178,7 +46924,7 @@ tr1101: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45196,7 +46942,7 @@ tr1101: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -45212,43 +46958,43 @@ tr1101: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1518; -st1518: + goto st1665; +st1665: if ( ++p == pe ) - goto _test_eof1518; -case 1518: + goto _test_eof1665; +case 1665: switch( (*p) ) { - case 32: goto tr1091; - case 33: goto tr1092; - case 59: goto tr1091; - case 92: goto tr1094; + case 32: goto tr1116; + case 33: goto tr1117; + case 59: goto tr1116; + case 92: goto tr1119; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1091; + goto tr1116; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1092; + goto tr1117; } else if ( (*p) >= 40 ) - goto tr1093; + goto tr1118; } else - goto tr1092; - goto tr1087; -tr1094: + goto tr1117; + goto tr1112; +tr1119: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -45256,7 +47002,7 @@ tr1094: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45274,12 +47020,12 @@ tr1094: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } - goto st342; -tr1102: + goto st351; +tr1127: { rdata_tail++; } @@ -45290,7 +47036,7 @@ tr1102: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45308,25 +47054,25 @@ tr1102: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } - goto st342; -st342: + goto st351; +st351: if ( ++p == pe ) - goto _test_eof342; -case 342: + goto _test_eof351; +case 351: if ( (*p) < 48 ) { if ( 32 <= (*p) && (*p) <= 47 ) - goto tr1088; + goto tr1113; } else if ( (*p) > 57 ) { if ( 58 <= (*p) && (*p) <= 126 ) - goto tr1088; + goto tr1113; } else - goto tr1096; - goto tr1095; -tr1096: + goto tr1121; + goto tr1120; +tr1121: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -45339,7 +47085,7 @@ tr1096: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } @@ -45347,7 +47093,7 @@ tr1096: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -45360,18 +47106,18 @@ tr1096: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st343; -st343: + goto st352; +st352: if ( ++p == pe ) - goto _test_eof343; -case 343: + goto _test_eof352; +case 352: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1097; - goto tr1095; -tr1097: + goto tr1122; + goto tr1120; +tr1122: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -45382,18 +47128,18 @@ tr1097: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st344; -st344: + goto st353; +st353: if ( ++p == pe ) - goto _test_eof344; -case 344: + goto _test_eof353; +case 353: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1098; - goto tr1095; -tr1098: + goto tr1123; + goto tr1120; +tr1123: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -45404,33 +47150,33 @@ tr1098: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st345; -st345: + goto st354; +st354: if ( ++p == pe ) - goto _test_eof345; -case 345: + goto _test_eof354; +case 354: switch( (*p) ) { - case 32: goto tr1099; - case 33: goto tr1100; - case 59: goto tr1099; - case 92: goto tr1102; + case 32: goto tr1124; + case 33: goto tr1125; + case 59: goto tr1124; + case 92: goto tr1127; } if ( (*p) < 35 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1099; + goto tr1124; } else if ( (*p) > 39 ) { if ( (*p) > 41 ) { if ( 42 <= (*p) && (*p) <= 126 ) - goto tr1100; + goto tr1125; } else if ( (*p) >= 40 ) - goto tr1101; + goto tr1126; } else - goto tr1100; - goto tr1095; -tr1103: + goto tr1125; + goto tr1120; +tr1128: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -45443,18 +47189,18 @@ tr1103: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st346; -tr1107: + goto st355; +tr1132: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -45462,7 +47208,7 @@ tr1107: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45480,7 +47226,7 @@ tr1107: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -45496,18 +47242,18 @@ tr1107: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st346; -tr1116: + goto st355; +tr1141: { rdata_tail++; } @@ -45518,7 +47264,7 @@ tr1116: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45536,7 +47282,7 @@ tr1116: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -45552,21 +47298,21 @@ tr1116: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st346; -st346: + goto st355; +st355: if ( ++p == pe ) - goto _test_eof346; -case 346: + goto _test_eof355; +case 355: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -45574,17 +47320,17 @@ case 346: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1103; - case 32: goto tr1103; - case 34: goto st348; - case 59: goto tr1103; - case 92: goto st349; - case 1546: goto tr1103; + case 9: goto tr1128; + case 32: goto tr1128; + case 34: goto st357; + case 59: goto tr1128; + case 92: goto st358; + case 1546: goto tr1128; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1104; - goto tr1087; -tr1104: + goto tr1129; + goto tr1112; +tr1129: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -45597,18 +47343,18 @@ tr1104: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st347; -tr1108: + goto st356; +tr1133: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -45616,7 +47362,7 @@ tr1108: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45634,7 +47380,7 @@ tr1108: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -45650,18 +47396,18 @@ tr1108: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st347; -tr1117: + goto st356; +tr1142: { rdata_tail++; } @@ -45672,7 +47418,7 @@ tr1117: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45690,7 +47436,7 @@ tr1117: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -45706,21 +47452,21 @@ tr1117: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st347; -st347: + goto st356; +st356: if ( ++p == pe ) - goto _test_eof347; -case 347: + goto _test_eof356; +case 356: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -45728,17 +47474,17 @@ case 347: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1107; - case 32: goto tr1107; - case 34: goto tr1109; - case 59: goto tr1107; - case 92: goto tr1110; - case 1546: goto tr1107; + case 9: goto tr1132; + case 32: goto tr1132; + case 34: goto tr1134; + case 59: goto tr1132; + case 92: goto tr1135; + case 1546: goto tr1132; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1108; - goto tr1087; -tr1109: + goto tr1133; + goto tr1112; +tr1134: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -45746,7 +47492,7 @@ tr1109: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45764,12 +47510,12 @@ tr1109: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } - goto st348; -tr1118: + goto st357; +tr1143: { rdata_tail++; } @@ -45780,7 +47526,7 @@ tr1118: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45798,26 +47544,26 @@ tr1118: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } - goto st348; -st348: + goto st357; +st357: if ( ++p == pe ) - goto _test_eof348; -case 348: + goto _test_eof357; +case 357: switch( (*p) ) { - case 32: goto tr1112; - case 59: goto tr1112; + case 32: goto tr1137; + case 59: goto tr1137; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1112; + goto tr1137; } else if ( (*p) >= 9 ) - goto tr1112; - goto tr1111; -tr1110: + goto tr1137; + goto tr1136; +tr1135: { if (s->comma_list) { uint8_t *last_two = rdata_tail - 2; @@ -45825,7 +47571,7 @@ tr1110: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45843,12 +47589,12 @@ tr1110: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } - goto st349; -tr1119: + goto st358; +tr1144: { rdata_tail++; } @@ -45859,7 +47605,7 @@ tr1119: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -45877,25 +47623,25 @@ tr1119: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } } - goto st349; -st349: + goto st358; +st358: if ( ++p == pe ) - goto _test_eof349; -case 349: + goto _test_eof358; +case 358: if ( (*p) < 48 ) { if ( 32 <= (*p) && (*p) <= 47 ) - goto tr1104; + goto tr1129; } else if ( (*p) > 57 ) { if ( 58 <= (*p) && (*p) <= 126 ) - goto tr1104; + goto tr1129; } else - goto tr1113; - goto tr1095; -tr1113: + goto tr1138; + goto tr1120; +tr1138: { if (rdata_tail <= rdata_stop) { // Split long string. @@ -45908,7 +47654,7 @@ tr1113: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } @@ -45916,7 +47662,7 @@ tr1113: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -45929,18 +47675,18 @@ tr1113: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st350; -st350: + goto st359; +st359: if ( ++p == pe ) - goto _test_eof350; -case 350: + goto _test_eof359; +case 359: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1114; - goto tr1095; -tr1114: + goto tr1139; + goto tr1120; +tr1139: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -45951,18 +47697,18 @@ tr1114: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st351; -st351: + goto st360; +st360: if ( ++p == pe ) - goto _test_eof351; -case 351: + goto _test_eof360; +case 360: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1115; - goto tr1095; -tr1115: + goto tr1140; + goto tr1120; +tr1140: { if ((*rdata_tail < (UINT8_MAX / 10)) || // Dominant fast check. ((*rdata_tail == (UINT8_MAX / 10)) && // Marginal case. @@ -45973,14 +47719,14 @@ tr1115: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st352; -st352: + goto st361; +st361: if ( ++p == pe ) - goto _test_eof352; -case 352: + goto _test_eof361; +case 361: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(1152 + ((*p) - -128)); @@ -45988,20 +47734,20 @@ case 352: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1116; - case 32: goto tr1116; - case 34: goto tr1118; - case 59: goto tr1116; - case 92: goto tr1119; - case 1546: goto tr1116; + case 9: goto tr1141; + case 32: goto tr1141; + case 34: goto tr1143; + case 59: goto tr1141; + case 92: goto tr1144; + case 1546: goto tr1141; } if ( 33 <= _widec && _widec <= 126 ) - goto tr1117; - goto tr1095; -st353: + goto tr1142; + goto tr1120; +st362: if ( ++p == pe ) - goto _test_eof353; -case 353: + goto _test_eof362; +case 362: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46015,38 +47761,38 @@ case 353: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st354; - case 32: goto st354; - case 40: goto tr1122; - case 41: goto tr1123; - case 2058: goto tr1124; - case 2107: goto tr1125; + case 9: goto st363; + case 32: goto st363; + case 40: goto tr1147; + case 41: goto tr1148; + case 2058: goto tr1149; + case 2107: goto tr1150; } - goto tr1120; -tr1122: + goto tr1145; +tr1147: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st354; -tr1123: + goto st363; +tr1148: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st354; -tr1124: + goto st363; +tr1149: { s->line_counter++; } - goto st354; -tr1163: + goto st363; +tr1188: { s->buffer[s->buffer_length++] = 0; @@ -46056,18 +47802,18 @@ tr1163: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 354; goto _out;} + {p++; cs = 363; goto _out;} } } } { s->line_counter++; } - goto st354; -st354: + goto st363; +st363: if ( ++p == pe ) - goto _test_eof354; -case 354: + goto _test_eof363; +case 363: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46081,17 +47827,17 @@ case 354: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st354; - case 32: goto st354; - case 40: goto tr1122; - case 41: goto tr1123; - case 2058: goto tr1124; - case 2107: goto tr1125; + case 9: goto st363; + case 32: goto st363; + case 40: goto tr1147; + case 41: goto tr1148; + case 2058: goto tr1149; + case 2107: goto tr1150; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1127; - goto tr1126; -tr1127: + goto tr1152; + goto tr1151; +tr1152: { s->number64 = 0; } @@ -46106,11 +47852,11 @@ tr1127: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st355; -tr1132: + goto st364; +tr1157: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -46122,14 +47868,14 @@ tr1132: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st355; -st355: + goto st364; +st364: if ( ++p == pe ) - goto _test_eof355; -case 355: + goto _test_eof364; +case 364: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46143,53 +47889,53 @@ case 355: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1129; - case 32: goto tr1129; - case 40: goto tr1130; - case 41: goto tr1131; - case 68: goto tr1133; - case 72: goto tr1134; - case 77: goto tr1135; - case 83: goto st358; - case 87: goto tr1137; - case 100: goto tr1133; - case 104: goto tr1134; - case 109: goto tr1135; - case 115: goto st358; - case 119: goto tr1137; - case 1802: goto tr1138; - case 1851: goto tr1139; - case 2058: goto tr1138; - case 2107: goto tr1139; + case 9: goto tr1154; + case 32: goto tr1154; + case 40: goto tr1155; + case 41: goto tr1156; + case 68: goto tr1158; + case 72: goto tr1159; + case 77: goto tr1160; + case 83: goto st367; + case 87: goto tr1162; + case 100: goto tr1158; + case 104: goto tr1159; + case 109: goto tr1160; + case 115: goto st367; + case 119: goto tr1162; + case 1802: goto tr1163; + case 1851: goto tr1164; + case 2058: goto tr1163; + case 2107: goto tr1164; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1132; - goto tr1128; -tr1142: + goto tr1157; + goto tr1153; +tr1167: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st356; -tr1143: + goto st365; +tr1168: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st356; -tr1129: + goto st365; +tr1154: { s->buffer[0] = 0; s->buffer_length = 0; } - goto st356; -tr1130: + goto st365; +tr1155: { s->buffer[0] = 0; s->buffer_length = 0; @@ -46197,12 +47943,12 @@ tr1130: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st356; -tr1131: + goto st365; +tr1156: { s->buffer[0] = 0; s->buffer_length = 0; @@ -46210,32 +47956,32 @@ tr1131: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st356; -tr1156: + goto st365; +tr1181: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer[0] = 0; s->buffer_length = 0; } - goto st356; -tr1157: + goto st365; +tr1182: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -46245,18 +47991,18 @@ tr1157: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st356; -tr1158: + goto st365; +tr1183: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -46266,15 +48012,15 @@ tr1158: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st356; -st356: + goto st365; +st365: if ( ++p == pe ) - goto _test_eof356; -case 356: + goto _test_eof365; +case 365: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46288,17 +48034,17 @@ case 356: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st356; - case 32: goto st356; - case 40: goto tr1142; - case 41: goto tr1143; - case 1802: goto tr1144; - case 1851: goto tr1145; - case 2058: goto tr1144; - case 2107: goto tr1145; + case 9: goto st365; + case 32: goto st365; + case 40: goto tr1167; + case 41: goto tr1168; + case 1802: goto tr1169; + case 1851: goto tr1170; + case 2058: goto tr1169; + case 2107: goto tr1170; } - goto tr1140; -tr1138: + goto tr1165; +tr1163: { s->buffer[0] = 0; s->buffer_length = 0; @@ -46308,7 +48054,7 @@ tr1138: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -46317,14 +48063,14 @@ tr1138: { s->line_counter++; } - goto st1519; -tr1144: + goto st1666; +tr1169: { if (s->number64 <= UINT32_MAX) { s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -46333,8 +48079,8 @@ tr1144: { s->line_counter++; } - goto st1519; -tr1147: + goto st1666; +tr1172: { s->buffer[s->buffer_length++] = 0; @@ -46344,7 +48090,7 @@ tr1147: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1519; goto _out;} + {p++; cs = 1666; goto _out;} } } } @@ -46353,7 +48099,7 @@ tr1147: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -46362,14 +48108,14 @@ tr1147: { s->line_counter++; } - goto st1519; -tr1160: + goto st1666; +tr1185: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -46381,7 +48127,7 @@ tr1160: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -46390,18 +48136,18 @@ tr1160: { s->line_counter++; } - goto st1519; -st1519: + goto st1666; +st1666: if ( ++p == pe ) - goto _test_eof1519; -case 1519: + goto _test_eof1666; +case 1666: goto st0; -tr1145: +tr1170: { s->buffer_length = 0; } - goto st357; -tr1139: + goto st366; +tr1164: { s->buffer[0] = 0; s->buffer_length = 0; @@ -46409,21 +48155,21 @@ tr1139: { s->buffer_length = 0; } - goto st357; -tr1146: + goto st366; +tr1171: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st357; -tr1161: + goto st366; +tr1186: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -46433,54 +48179,54 @@ tr1161: { s->buffer_length = 0; } - goto st357; -st357: + goto st366; +st366: if ( ++p == pe ) - goto _test_eof357; -case 357: + goto _test_eof366; +case 366: if ( (*p) == 10 ) - goto tr1147; - goto tr1146; -tr1133: + goto tr1172; + goto tr1171; +tr1158: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st358; -tr1134: + goto st367; +tr1159: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st358; -tr1135: + goto st367; +tr1160: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st358; -tr1137: + goto st367; +tr1162: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st358; -st358: + goto st367; +st367: if ( ++p == pe ) - goto _test_eof358; -case 358: + goto _test_eof367; +case 367: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46494,19 +48240,19 @@ case 358: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1129; - case 32: goto tr1129; - case 40: goto tr1130; - case 41: goto tr1131; - case 1802: goto tr1138; - case 1851: goto tr1139; - case 2058: goto tr1138; - case 2107: goto tr1139; + case 9: goto tr1154; + case 32: goto tr1154; + case 40: goto tr1155; + case 41: goto tr1156; + case 1802: goto tr1163; + case 1851: goto tr1164; + case 2058: goto tr1163; + case 2107: goto tr1164; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1148; - goto tr1128; -tr1150: + goto tr1173; + goto tr1153; +tr1175: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -46518,11 +48264,11 @@ tr1150: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st359; -tr1148: + goto st368; +tr1173: { s->number64_tmp = s->number64; } @@ -46540,17 +48286,17 @@ tr1148: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st359; -tr1159: + goto st368; +tr1184: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -46570,69 +48316,69 @@ tr1159: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st359; -st359: + goto st368; +st368: if ( ++p == pe ) - goto _test_eof359; -case 359: + goto _test_eof368; +case 368: switch( (*p) ) { - case 68: goto tr1151; - case 72: goto tr1152; - case 77: goto tr1153; - case 83: goto st360; - case 87: goto tr1155; - case 100: goto tr1151; - case 104: goto tr1152; - case 109: goto tr1153; - case 115: goto st360; - case 119: goto tr1155; + case 68: goto tr1176; + case 72: goto tr1177; + case 77: goto tr1178; + case 83: goto st369; + case 87: goto tr1180; + case 100: goto tr1176; + case 104: goto tr1177; + case 109: goto tr1178; + case 115: goto st369; + case 119: goto tr1180; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1150; - goto tr1149; -tr1151: + goto tr1175; + goto tr1174; +tr1176: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st360; -tr1152: + goto st369; +tr1177: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st360; -tr1153: + goto st369; +tr1178: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st360; -tr1155: + goto st369; +tr1180: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st360; -st360: + goto st369; +st369: if ( ++p == pe ) - goto _test_eof360; -case 360: + goto _test_eof369; +case 369: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46646,34 +48392,34 @@ case 360: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1156; - case 32: goto tr1156; - case 40: goto tr1157; - case 41: goto tr1158; - case 1802: goto tr1160; - case 1851: goto tr1161; - case 2058: goto tr1160; - case 2107: goto tr1161; + case 9: goto tr1181; + case 32: goto tr1181; + case 40: goto tr1182; + case 41: goto tr1183; + case 1802: goto tr1185; + case 1851: goto tr1186; + case 2058: goto tr1185; + case 2107: goto tr1186; } if ( 48 <= _widec && _widec <= 57 ) - goto tr1159; - goto tr1128; -tr1125: + goto tr1184; + goto tr1153; +tr1150: { s->buffer_length = 0; } - goto st361; -tr1162: + goto st370; +tr1187: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st361; -st361: + goto st370; +st370: if ( ++p == pe ) - goto _test_eof361; -case 361: + goto _test_eof370; +case 370: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -46693,14 +48439,14 @@ case 361: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1163; + goto tr1188; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1162; - goto tr1120; -st362: + goto tr1187; + goto tr1145; +st371: if ( ++p == pe ) - goto _test_eof362; -case 362: + goto _test_eof371; +case 371: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46714,38 +48460,38 @@ case 362: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st363; - case 32: goto st363; - case 40: goto tr1166; - case 41: goto tr1167; - case 2058: goto tr1168; - case 2107: goto tr1169; + case 9: goto st372; + case 32: goto st372; + case 40: goto tr1191; + case 41: goto tr1192; + case 2058: goto tr1193; + case 2107: goto tr1194; } - goto tr1164; -tr1166: + goto tr1189; +tr1191: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st363; -tr1167: + goto st372; +tr1192: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st363; -tr1168: + goto st372; +tr1193: { s->line_counter++; } - goto st363; -tr1199: + goto st372; +tr1224: { s->buffer[s->buffer_length++] = 0; @@ -46755,18 +48501,18 @@ tr1199: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 363; goto _out;} + {p++; cs = 372; goto _out;} } } } { s->line_counter++; } - goto st363; -st363: + goto st372; +st372: if ( ++p == pe ) - goto _test_eof363; -case 363: + goto _test_eof372; +case 372: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46780,27 +48526,27 @@ case 363: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st363; - case 32: goto st363; - case 40: goto tr1166; - case 41: goto tr1167; - case 42: goto tr1170; - case 46: goto tr1171; - case 92: goto tr1172; - case 95: goto tr1170; - case 2058: goto tr1168; - case 2107: goto tr1169; + case 9: goto st372; + case 32: goto st372; + case 40: goto tr1191; + case 41: goto tr1192; + case 42: goto tr1195; + case 46: goto tr1196; + case 92: goto tr1197; + case 95: goto tr1195; + case 2058: goto tr1193; + case 2107: goto tr1194; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1170; + goto tr1195; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1170; + goto tr1195; } else - goto tr1170; - goto tr1164; -tr1173: + goto tr1195; + goto tr1189; +tr1198: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -46808,11 +48554,11 @@ tr1173: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st364; -tr1180: + goto st373; +tr1205: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -46824,11 +48570,11 @@ tr1180: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st364; -tr1195: + goto st373; +tr1220: { s->dname_tmp_length++; } @@ -46839,11 +48585,11 @@ tr1195: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st364; -tr1170: + goto st373; +tr1195: { s->dname = s->zone_origin; } @@ -46862,30 +48608,30 @@ tr1170: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st364; -st364: + goto st373; +st373: if ( ++p == pe ) - goto _test_eof364; -case 364: + goto _test_eof373; +case 373: switch( (*p) ) { - case 42: goto tr1173; - case 46: goto tr1174; - case 92: goto st368; - case 95: goto tr1173; + case 42: goto tr1198; + case 46: goto tr1199; + case 92: goto st377; + case 95: goto tr1198; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1173; + goto tr1198; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1173; + goto tr1198; } else - goto tr1173; - goto tr1164; -tr1174: + goto tr1198; + goto tr1189; +tr1199: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -46894,11 +48640,11 @@ tr1174: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st365; -tr1196: + goto st374; +tr1221: { s->dname_tmp_length++; } @@ -46910,14 +48656,14 @@ tr1196: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st365; -st365: + goto st374; +st374: if ( ++p == pe ) - goto _test_eof365; -case 365: + goto _test_eof374; +case 374: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -46931,47 +48677,47 @@ case 365: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1177; - case 32: goto tr1177; - case 40: goto tr1178; - case 41: goto tr1179; - case 42: goto tr1180; - case 45: goto tr1180; - case 92: goto tr1181; - case 95: goto tr1180; - case 1802: goto tr1182; - case 1851: goto tr1183; - case 2058: goto tr1182; - case 2107: goto tr1183; + case 9: goto tr1202; + case 32: goto tr1202; + case 40: goto tr1203; + case 41: goto tr1204; + case 42: goto tr1205; + case 45: goto tr1205; + case 92: goto tr1206; + case 95: goto tr1205; + case 1802: goto tr1207; + case 1851: goto tr1208; + case 2058: goto tr1207; + case 2107: goto tr1208; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1180; + goto tr1205; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1180; + goto tr1205; } else - goto tr1180; - goto tr1176; -tr1185: + goto tr1205; + goto tr1201; +tr1210: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st366; -tr1186: + goto st375; +tr1211: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st366; -tr1177: + goto st375; +tr1202: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46980,8 +48726,8 @@ tr1177: s->buffer[0] = 0; s->buffer_length = 0; } - goto st366; -tr1178: + goto st375; +tr1203: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -46993,12 +48739,12 @@ tr1178: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st366; -tr1179: + goto st375; +tr1204: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -47010,15 +48756,15 @@ tr1179: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st366; -st366: + goto st375; +st375: if ( ++p == pe ) - goto _test_eof366; -case 366: + goto _test_eof375; +case 375: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47032,17 +48778,17 @@ case 366: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st366; - case 32: goto st366; - case 40: goto tr1185; - case 41: goto tr1186; - case 1802: goto tr1187; - case 1851: goto tr1188; - case 2058: goto tr1187; - case 2107: goto tr1188; + case 9: goto st375; + case 32: goto st375; + case 40: goto tr1210; + case 41: goto tr1211; + case 1802: goto tr1212; + case 1851: goto tr1213; + case 2058: goto tr1212; + case 2107: goto tr1213; } - goto tr1176; -tr1182: + goto tr1201; +tr1207: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -47060,8 +48806,8 @@ tr1182: { s->line_counter++; } - goto st1520; -tr1187: + goto st1667; +tr1212: { s->zone_origin_length = s->dname_tmp_length; } @@ -47071,8 +48817,8 @@ tr1187: { s->line_counter++; } - goto st1520; -tr1190: + goto st1667; +tr1215: { s->buffer[s->buffer_length++] = 0; @@ -47082,7 +48828,7 @@ tr1190: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1520; goto _out;} + {p++; cs = 1667; goto _out;} } } } @@ -47095,25 +48841,25 @@ tr1190: { s->line_counter++; } - goto st1520; -st1520: + goto st1667; +st1667: if ( ++p == pe ) - goto _test_eof1520; -case 1520: + goto _test_eof1667; +case 1667: goto st0; -tr1188: +tr1213: { s->buffer_length = 0; } - goto st367; -tr1189: + goto st376; +tr1214: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st367; -tr1183: + goto st376; +tr1208: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -47125,26 +48871,26 @@ tr1183: { s->buffer_length = 0; } - goto st367; -st367: + goto st376; +st376: if ( ++p == pe ) - goto _test_eof367; -case 367: + goto _test_eof376; +case 376: if ( (*p) == 10 ) - goto tr1190; - goto tr1189; -tr1181: + goto tr1215; + goto tr1214; +tr1206: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st368; -tr1197: + goto st377; +tr1222: { s->dname_tmp_length++; } - goto st368; -tr1172: + goto st377; +tr1197: { s->dname = s->zone_origin; } @@ -47156,75 +48902,75 @@ tr1172: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st368; -st368: + goto st377; +st377: if ( ++p == pe ) - goto _test_eof368; -case 368: + goto _test_eof377; +case 377: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1191; - goto tr1173; -tr1191: + goto tr1216; + goto tr1198; +tr1216: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st369; -st369: + goto st378; +st378: if ( ++p == pe ) - goto _test_eof369; -case 369: + goto _test_eof378; +case 378: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1193; - goto tr1192; -tr1193: + goto tr1218; + goto tr1217; +tr1218: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st370; -st370: + goto st379; +st379: if ( ++p == pe ) - goto _test_eof370; -case 370: + goto _test_eof379; +case 379: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1194; - goto tr1192; -tr1194: + goto tr1219; + goto tr1217; +tr1219: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st371; -st371: + goto st380; +st380: if ( ++p == pe ) - goto _test_eof371; -case 371: + goto _test_eof380; +case 380: switch( (*p) ) { - case 42: goto tr1195; - case 46: goto tr1196; - case 92: goto tr1197; - case 95: goto tr1195; + case 42: goto tr1220; + case 46: goto tr1221; + case 92: goto tr1222; + case 95: goto tr1220; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1195; + goto tr1220; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1195; + goto tr1220; } else - goto tr1195; - goto tr1192; -tr1171: + goto tr1220; + goto tr1217; +tr1196: { s->dname = s->zone_origin; } @@ -47232,11 +48978,11 @@ tr1171: s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st372; -st372: + goto st381; +st381: if ( ++p == pe ) - goto _test_eof372; -case 372: + goto _test_eof381; +case 381: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47250,32 +48996,32 @@ case 372: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1177; - case 32: goto tr1177; - case 40: goto tr1178; - case 41: goto tr1179; - case 1802: goto tr1182; - case 1851: goto tr1183; - case 2058: goto tr1182; - case 2107: goto tr1183; + case 9: goto tr1202; + case 32: goto tr1202; + case 40: goto tr1203; + case 41: goto tr1204; + case 1802: goto tr1207; + case 1851: goto tr1208; + case 2058: goto tr1207; + case 2107: goto tr1208; } - goto tr1176; -tr1169: + goto tr1201; +tr1194: { s->buffer_length = 0; } - goto st373; -tr1198: + goto st382; +tr1223: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st373; -st373: + goto st382; +st382: if ( ++p == pe ) - goto _test_eof373; -case 373: + goto _test_eof382; +case 382: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -47295,14 +49041,14 @@ case 373: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1199; + goto tr1224; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1198; - goto tr1164; -st374: + goto tr1223; + goto tr1189; +st383: if ( ++p == pe ) - goto _test_eof374; -case 374: + goto _test_eof383; +case 383: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47316,38 +49062,38 @@ case 374: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st375; - case 32: goto st375; - case 40: goto tr1201; - case 41: goto tr1202; - case 2058: goto tr1203; - case 2107: goto tr1204; + case 9: goto st384; + case 32: goto st384; + case 40: goto tr1226; + case 41: goto tr1227; + case 2058: goto tr1228; + case 2107: goto tr1229; } goto st0; -tr1201: +tr1226: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st375; -tr1202: + goto st384; +tr1227: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st375; -tr1203: + goto st384; +tr1228: { s->line_counter++; } - goto st375; -tr1257: + goto st384; +tr1282: { s->buffer[s->buffer_length++] = 0; @@ -47357,18 +49103,18 @@ tr1257: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 375; goto _out;} + {p++; cs = 384; goto _out;} } } } { s->line_counter++; } - goto st375; -st375: + goto st384; +st384: if ( ++p == pe ) - goto _test_eof375; -case 375: + goto _test_eof384; +case 384: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47382,32 +49128,32 @@ case 375: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st375; - case 32: goto st375; - case 40: goto tr1201; - case 41: goto tr1202; - case 2058: goto tr1203; - case 2107: goto tr1204; + case 9: goto st384; + case 32: goto st384; + case 40: goto tr1226; + case 41: goto tr1227; + case 2058: goto tr1228; + case 2107: goto tr1229; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr1205; + goto tr1230; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr1205; + goto tr1230; } else - goto tr1205; - goto tr1206; -tr1205: + goto tr1230; + goto tr1231; +tr1230: { rdata_tail = s->r_data; } - { p--; {stack[top++] = 376;goto st340;} } - goto st376; -st376: + { p--; {stack[top++] = 385;goto st349;} } + goto st385; +st385: if ( ++p == pe ) - goto _test_eof376; -case 376: + goto _test_eof385; +case 385: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47421,40 +49167,40 @@ case 376: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1208; - case 32: goto tr1208; - case 40: goto tr1209; - case 41: goto tr1210; - case 1802: goto tr1211; - case 1851: goto tr1212; - case 2058: goto tr1211; - case 2107: goto tr1213; + case 9: goto tr1233; + case 32: goto tr1233; + case 40: goto tr1234; + case 41: goto tr1235; + case 1802: goto tr1236; + case 1851: goto tr1237; + case 2058: goto tr1236; + case 2107: goto tr1238; } - goto tr1207; -tr1216: + goto tr1232; +tr1241: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st377; -tr1217: + goto st386; +tr1242: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st377; -tr1208: + goto st386; +tr1233: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } // Store zero terminated include filename. @@ -47468,13 +49214,13 @@ tr1208: s->buffer[0] = 0; s->buffer_length = 0; } - goto st377; -tr1209: + goto st386; +tr1234: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } // Store zero terminated include filename. @@ -47487,7 +49233,7 @@ tr1209: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } @@ -47495,13 +49241,13 @@ tr1209: s->buffer[0] = 0; s->buffer_length = 0; } - goto st377; -tr1210: + goto st386; +tr1235: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } // Store zero terminated include filename. @@ -47514,7 +49260,7 @@ tr1210: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } @@ -47522,11 +49268,11 @@ tr1210: s->buffer[0] = 0; s->buffer_length = 0; } - goto st377; -st377: + goto st386; +st386: if ( ++p == pe ) - goto _test_eof377; -case 377: + goto _test_eof386; +case 386: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47540,29 +49286,29 @@ case 377: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st377; - case 32: goto st377; - case 40: goto tr1216; - case 41: goto tr1217; - case 42: goto tr1218; - case 46: goto tr1219; - case 92: goto tr1220; - case 95: goto tr1218; - case 1802: goto tr1221; - case 1851: goto tr1222; - case 2058: goto tr1221; - case 2107: goto tr1223; + case 9: goto st386; + case 32: goto st386; + case 40: goto tr1241; + case 41: goto tr1242; + case 42: goto tr1243; + case 46: goto tr1244; + case 92: goto tr1245; + case 95: goto tr1243; + case 1802: goto tr1246; + case 1851: goto tr1247; + case 2058: goto tr1246; + case 2107: goto tr1248; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1218; + goto tr1243; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1218; + goto tr1243; } else - goto tr1218; - goto tr1214; -tr1225: + goto tr1243; + goto tr1239; +tr1250: { // Check for maximum dname label length. if (s->item_length < ZS_MAX_LABEL_LENGTH) { @@ -47570,11 +49316,11 @@ tr1225: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st378; -tr1231: + goto st387; +tr1256: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; @@ -47586,11 +49332,11 @@ tr1231: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st378; -tr1244: + goto st387; +tr1269: { s->dname_tmp_length++; } @@ -47601,11 +49347,11 @@ tr1244: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st378; -tr1218: + goto st387; +tr1243: { s->dname = s->r_data; } @@ -47624,30 +49370,30 @@ tr1218: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st378; -st378: + goto st387; +st387: if ( ++p == pe ) - goto _test_eof378; -case 378: + goto _test_eof387; +case 387: switch( (*p) ) { - case 42: goto tr1225; - case 46: goto tr1226; - case 92: goto st382; - case 95: goto tr1225; + case 42: goto tr1250; + case 46: goto tr1251; + case 92: goto st391; + case 95: goto tr1250; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1225; + goto tr1250; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1225; + goto tr1250; } else - goto tr1225; - goto tr1224; -tr1226: + goto tr1250; + goto tr1249; +tr1251: { // Check for maximum dname length overflow after each label. // (at least the next label length must follow). @@ -47656,11 +49402,11 @@ tr1226: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st379; -tr1245: + goto st388; +tr1270: { s->dname_tmp_length++; } @@ -47672,14 +49418,14 @@ tr1245: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st379; -st379: + goto st388; +st388: if ( ++p == pe ) - goto _test_eof379; -case 379: + goto _test_eof388; +case 388: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47693,47 +49439,47 @@ case 379: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1228; - case 32: goto tr1228; - case 40: goto tr1229; - case 41: goto tr1230; - case 42: goto tr1231; - case 45: goto tr1231; - case 92: goto tr1232; - case 95: goto tr1231; - case 1802: goto tr1233; - case 1851: goto tr1234; - case 2058: goto tr1233; - case 2107: goto tr1234; + case 9: goto tr1253; + case 32: goto tr1253; + case 40: goto tr1254; + case 41: goto tr1255; + case 42: goto tr1256; + case 45: goto tr1256; + case 92: goto tr1257; + case 95: goto tr1256; + case 1802: goto tr1258; + case 1851: goto tr1259; + case 2058: goto tr1258; + case 2107: goto tr1259; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1231; + goto tr1256; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1231; + goto tr1256; } else - goto tr1231; - goto tr1214; -tr1236: + goto tr1256; + goto tr1239; +tr1261: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st380; -tr1237: + goto st389; +tr1262: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st380; -tr1228: + goto st389; +tr1253: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -47745,8 +49491,8 @@ tr1228: s->buffer[0] = 0; s->buffer_length = 0; } - goto st380; -tr1229: + goto st389; +tr1254: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -47761,12 +49507,12 @@ tr1229: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st380; -tr1230: + goto st389; +tr1255: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -47781,15 +49527,15 @@ tr1230: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st380; -st380: + goto st389; +st389: if ( ++p == pe ) - goto _test_eof380; -case 380: + goto _test_eof389; +case 389: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -47803,23 +49549,23 @@ case 380: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st380; - case 32: goto st380; - case 40: goto tr1236; - case 41: goto tr1237; - case 1802: goto tr1221; - case 1851: goto tr1222; - case 2058: goto tr1221; - case 2107: goto tr1222; + case 9: goto st389; + case 32: goto st389; + case 40: goto tr1261; + case 41: goto tr1262; + case 1802: goto tr1246; + case 1851: goto tr1247; + case 2058: goto tr1246; + case 2107: goto tr1247; } goto tr92; -tr1211: - cs = 1521; +tr1236: + cs = 1668; { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } // Store zero terminated include filename. @@ -47840,7 +49586,7 @@ tr1211: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -47860,7 +49606,7 @@ tr1211: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st329;} + p--; {goto st338;} } // Parse included zone file. @@ -47880,13 +49626,13 @@ tr1211: } zs_deinit(ss); free(ss); - p--; {goto st329;} + p--; {goto st338;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1504; {p++; goto _out;} + p--; cs = 1651; {p++; goto _out;} } } { @@ -47896,8 +49642,8 @@ tr1211: s->line_counter++; } goto _again; -tr1221: - cs = 1521; +tr1246: + cs = 1668; { // Extend relative file path. if (s->include_filename[0] != '/') { @@ -47905,7 +49651,7 @@ tr1221: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -47925,7 +49671,7 @@ tr1221: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st329;} + p--; {goto st338;} } // Parse included zone file. @@ -47945,13 +49691,13 @@ tr1221: } zs_deinit(ss); free(ss); - p--; {goto st329;} + p--; {goto st338;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1504; {p++; goto _out;} + p--; cs = 1651; {p++; goto _out;} } } { @@ -47961,8 +49707,8 @@ tr1221: s->line_counter++; } goto _again; -tr1233: - cs = 1521; +tr1258: + cs = 1668; { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -47981,7 +49727,7 @@ tr1233: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -48001,7 +49747,7 @@ tr1233: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st329;} + p--; {goto st338;} } // Parse included zone file. @@ -48021,13 +49767,13 @@ tr1233: } zs_deinit(ss); free(ss); - p--; {goto st329;} + p--; {goto st338;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1504; {p++; goto _out;} + p--; cs = 1651; {p++; goto _out;} } } { @@ -48037,8 +49783,8 @@ tr1233: s->line_counter++; } goto _again; -tr1239: - cs = 1521; +tr1264: + cs = 1668; { s->buffer[s->buffer_length++] = 0; @@ -48059,7 +49805,7 @@ tr1239: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -48079,7 +49825,7 @@ tr1239: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st329;} + p--; {goto st338;} } // Parse included zone file. @@ -48099,13 +49845,13 @@ tr1239: } zs_deinit(ss); free(ss); - p--; {goto st329;} + p--; {goto st338;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1504; {p++; goto _out;} + p--; cs = 1651; {p++; goto _out;} } } { @@ -48115,29 +49861,29 @@ tr1239: s->line_counter++; } goto _again; -st1521: +st1668: if ( ++p == pe ) - goto _test_eof1521; -case 1521: + goto _test_eof1668; +case 1668: goto st0; -tr1222: +tr1247: { s->buffer_length = 0; } - goto st381; -tr1238: + goto st390; +tr1263: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st381; -tr1212: + goto st390; +tr1237: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } // Store zero terminated include filename. @@ -48154,8 +49900,8 @@ tr1212: { s->buffer_length = 0; } - goto st381; -tr1234: + goto st390; +tr1259: { // Enough room for the terminal label is guaranteed (_label_exit). (s->dname)[s->dname_tmp_length++] = 0; @@ -48170,26 +49916,26 @@ tr1234: { s->buffer_length = 0; } - goto st381; -st381: + goto st390; +st390: if ( ++p == pe ) - goto _test_eof381; -case 381: + goto _test_eof390; +case 390: if ( (*p) == 10 ) - goto tr1239; - goto tr1238; -tr1232: + goto tr1264; + goto tr1263; +tr1257: { s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st382; -tr1246: + goto st391; +tr1271: { s->dname_tmp_length++; } - goto st382; -tr1220: + goto st391; +tr1245: { s->dname = s->r_data; } @@ -48201,75 +49947,75 @@ tr1220: s->item_length = 0; s->item_length_position = s->dname_tmp_length++; } - goto st382; -st382: + goto st391; +st391: if ( ++p == pe ) - goto _test_eof382; -case 382: + goto _test_eof391; +case 391: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1240; - goto tr1225; -tr1240: + goto tr1265; + goto tr1250; +tr1265: { if (s->item_length < ZS_MAX_LABEL_LENGTH) { (s->dname)[s->dname_tmp_length] = 0; s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st383; -st383: + goto st392; +st392: if ( ++p == pe ) - goto _test_eof383; -case 383: + goto _test_eof392; +case 392: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1242; - goto tr1241; -tr1242: + goto tr1267; + goto tr1266; +tr1267: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st384; -st384: + goto st393; +st393: if ( ++p == pe ) - goto _test_eof384; -case 384: + goto _test_eof393; +case 393: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1243; - goto tr1241; -tr1243: + goto tr1268; + goto tr1266; +tr1268: { (s->dname)[s->dname_tmp_length] *= 10; (s->dname)[s->dname_tmp_length] += digit_to_num[(uint8_t)(*p)]; } - goto st385; -st385: + goto st394; +st394: if ( ++p == pe ) - goto _test_eof385; -case 385: + goto _test_eof394; +case 394: switch( (*p) ) { - case 42: goto tr1244; - case 46: goto tr1245; - case 92: goto tr1246; - case 95: goto tr1244; + case 42: goto tr1269; + case 46: goto tr1270; + case 92: goto tr1271; + case 95: goto tr1269; } if ( (*p) < 65 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr1244; + goto tr1269; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1244; + goto tr1269; } else - goto tr1244; - goto tr1241; -tr1219: + goto tr1269; + goto tr1266; +tr1244: { s->dname = s->r_data; } @@ -48277,11 +50023,11 @@ tr1219: s->item_length_position = 0; s->dname_tmp_length = 0; } - goto st386; -st386: + goto st395; +st395: if ( ++p == pe ) - goto _test_eof386; -case 386: + goto _test_eof395; +case 395: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -48295,34 +50041,34 @@ case 386: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr1228; - case 32: goto tr1228; - case 40: goto tr1229; - case 41: goto tr1230; - case 1802: goto tr1233; - case 1851: goto tr1234; - case 2058: goto tr1233; - case 2107: goto tr1234; + case 9: goto tr1253; + case 32: goto tr1253; + case 40: goto tr1254; + case 41: goto tr1255; + case 1802: goto tr1258; + case 1851: goto tr1259; + case 2058: goto tr1258; + case 2107: goto tr1259; } - goto tr1214; -tr1223: + goto tr1239; +tr1248: { s->buffer_length = 0; } - goto st387; -tr1247: + goto st396; +tr1272: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st387; -tr1213: + goto st396; +tr1238: { size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } // Store zero terminated include filename. @@ -48339,11 +50085,11 @@ tr1213: s->buffer[0] = 0; s->buffer_length = 0; } - goto st387; -st387: + goto st396; +st396: if ( ++p == pe ) - goto _test_eof387; -case 387: + goto _test_eof396; +case 396: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -48363,17 +50109,17 @@ case 387: s->multiline ) _widec += 256; } switch( _widec ) { - case 1802: goto tr1239; - case 2058: goto tr1248; + case 1802: goto tr1264; + case 2058: goto tr1273; } if ( _widec > 1919 ) { if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1247; + goto tr1272; } else if ( _widec >= 1664 ) - goto tr1238; + goto tr1263; goto tr92; -tr1248: - cs = 1522; +tr1273: + cs = 1669; { s->buffer[s->buffer_length++] = 0; @@ -48397,7 +50143,7 @@ tr1248: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {goto st329;} + p--; {goto st338;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -48417,7 +50163,7 @@ tr1248: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {goto st329;} + p--; {goto st338;} } // Parse included zone file. @@ -48437,23 +50183,23 @@ tr1248: } zs_deinit(ss); free(ss); - p--; {goto st329;} + p--; {goto st338;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1504; {p++; goto _out;} + p--; cs = 1651; {p++; goto _out;} } } { p--; {cs = stack[--top];goto _again;} } goto _again; -st1522: +st1669: if ( ++p == pe ) - goto _test_eof1522; -case 1522: + goto _test_eof1669; +case 1669: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -48467,50 +50213,50 @@ case 1522: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st388; - case 32: goto st388; - case 40: goto tr1250; - case 41: goto tr1251; - case 42: goto tr1218; - case 46: goto tr1219; - case 92: goto tr1220; - case 95: goto tr1218; - case 2058: goto tr1252; - case 2107: goto tr1253; + case 9: goto st397; + case 32: goto st397; + case 40: goto tr1275; + case 41: goto tr1276; + case 42: goto tr1243; + case 46: goto tr1244; + case 92: goto tr1245; + case 95: goto tr1243; + case 2058: goto tr1277; + case 2107: goto tr1278; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1218; + goto tr1243; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1218; + goto tr1243; } else - goto tr1218; - goto tr1224; -tr1250: + goto tr1243; + goto tr1249; +tr1275: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st388; -tr1251: + goto st397; +tr1276: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st388; -tr1252: + goto st397; +tr1277: { s->line_counter++; } - goto st388; -tr1255: + goto st397; +tr1280: { s->buffer[s->buffer_length++] = 0; @@ -48520,18 +50266,18 @@ tr1255: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 388; goto _out;} + {p++; cs = 397; goto _out;} } } } { s->line_counter++; } - goto st388; -st388: + goto st397; +st397: if ( ++p == pe ) - goto _test_eof388; -case 388: + goto _test_eof397; +case 397: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -48545,42 +50291,42 @@ case 388: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st388; - case 32: goto st388; - case 40: goto tr1250; - case 41: goto tr1251; - case 42: goto tr1218; - case 46: goto tr1219; - case 92: goto tr1220; - case 95: goto tr1218; - case 2058: goto tr1252; - case 2107: goto tr1253; + case 9: goto st397; + case 32: goto st397; + case 40: goto tr1275; + case 41: goto tr1276; + case 42: goto tr1243; + case 46: goto tr1244; + case 92: goto tr1245; + case 95: goto tr1243; + case 2058: goto tr1277; + case 2107: goto tr1278; } if ( _widec < 65 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr1218; + goto tr1243; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1218; + goto tr1243; } else - goto tr1218; - goto tr1224; -tr1253: + goto tr1243; + goto tr1249; +tr1278: { s->buffer_length = 0; } - goto st389; -tr1254: + goto st398; +tr1279: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st389; -st389: + goto st398; +st398: if ( ++p == pe ) - goto _test_eof389; -case 389: + goto _test_eof398; +case 398: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -48600,26 +50346,26 @@ case 389: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1255; + goto tr1280; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1254; + goto tr1279; goto st0; -tr1204: +tr1229: { s->buffer_length = 0; } - goto st390; -tr1256: + goto st399; +tr1281: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st390; -st390: + goto st399; +st399: if ( ++p == pe ) - goto _test_eof390; -case 390: + goto _test_eof399; +case 399: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -48639,51 +50385,51 @@ case 390: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1257; + goto tr1282; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1256; + goto tr1281; goto st0; -st391: +st400: if ( ++p == pe ) - goto _test_eof391; -case 391: + goto _test_eof400; +case 400: if ( (*p) == 43 ) - goto tr1259; + goto tr1284; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1259; + goto tr1284; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1259; + goto tr1284; } else - goto tr1259; - goto tr1258; -tr1259: + goto tr1284; + goto tr1283; +tr1284: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st392; -st392: + goto st401; +st401: if ( ++p == pe ) - goto _test_eof392; -case 392: + goto _test_eof401; +case 401: if ( (*p) == 43 ) - goto tr1260; + goto tr1285; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1260; + goto tr1285; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1260; + goto tr1285; } else - goto tr1260; - goto tr1258; -tr1260: + goto tr1285; + goto tr1283; +tr1285: { *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; @@ -48691,28 +50437,28 @@ tr1260: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st393; -st393: + goto st402; +st402: if ( ++p == pe ) - goto _test_eof393; -case 393: + goto _test_eof402; +case 402: switch( (*p) ) { - case 43: goto tr1261; - case 61: goto st397; + case 43: goto tr1286; + case 61: goto st406; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1261; + goto tr1286; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1261; + goto tr1286; } else - goto tr1261; - goto tr1258; -tr1261: + goto tr1286; + goto tr1283; +tr1286: { *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; @@ -48720,51 +50466,51 @@ tr1261: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st394; -st394: + goto st403; +st403: if ( ++p == pe ) - goto _test_eof394; -case 394: + goto _test_eof403; +case 403: switch( (*p) ) { - case 43: goto tr1263; - case 61: goto st395; + case 43: goto tr1288; + case 61: goto st404; } if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr1263; + goto tr1288; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr1263; + goto tr1288; } else - goto tr1263; - goto tr1258; -tr1265: + goto tr1288; + goto tr1283; +tr1290: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st395; -tr1266: + goto st404; +tr1291: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st395; -tr1267: + goto st404; +tr1292: { s->line_counter++; } - goto st395; -tr1273: + goto st404; +tr1298: { s->buffer[s->buffer_length++] = 0; @@ -48774,23 +50520,23 @@ tr1273: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 395; goto _out;} + {p++; cs = 404; goto _out;} } } } { s->line_counter++; } - goto st395; -tr1263: + goto st404; +tr1288: { *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st395; -st395: + goto st404; +st404: if ( ++p == pe ) - goto _test_eof395; -case 395: + goto _test_eof404; +case 404: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -48808,43 +50554,43 @@ case 395: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st395; - case 32: goto st395; - case 40: goto tr1265; - case 41: goto tr1266; - case 43: goto tr1259; - case 3082: goto tr1267; - case 3131: goto tr1268; - case 3338: goto tr1269; - case 3387: goto tr1269; - case 3594: goto tr1270; - case 3643: goto tr1271; + case 9: goto st404; + case 32: goto st404; + case 40: goto tr1290; + case 41: goto tr1291; + case 43: goto tr1284; + case 3082: goto tr1292; + case 3131: goto tr1293; + case 3338: goto tr1294; + case 3387: goto tr1294; + case 3594: goto tr1295; + case 3643: goto tr1296; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1259; + goto tr1284; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1259; + goto tr1284; } else - goto tr1259; - goto tr1258; -tr1268: + goto tr1284; + goto tr1283; +tr1293: { s->buffer_length = 0; } - goto st396; -tr1272: + goto st405; +tr1297: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st396; -st396: + goto st405; +st405: if ( ++p == pe ) - goto _test_eof396; -case 396: + goto _test_eof405; +case 405: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -48864,32 +50610,32 @@ case 396: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1273; + goto tr1298; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1272; - goto tr1258; -tr1269: + goto tr1297; + goto tr1283; +tr1294: { p--; {cs = stack[--top];goto _again;} } - goto st1523; -st1523: + goto st1670; +st1670: if ( ++p == pe ) - goto _test_eof1523; -case 1523: + goto _test_eof1670; +case 1670: goto st0; -tr1270: +tr1295: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1524; -st1524: + goto st1671; +st1671: if ( ++p == pe ) - goto _test_eof1524; -case 1524: + goto _test_eof1671; +case 1671: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -48907,39 +50653,39 @@ case 1524: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st395; - case 32: goto st395; - case 40: goto tr1265; - case 41: goto tr1266; - case 43: goto tr1259; - case 3082: goto tr1267; - case 3131: goto tr1268; - case 3338: goto tr1269; - case 3387: goto tr1269; - case 3594: goto tr1270; - case 3643: goto tr1271; + case 9: goto st404; + case 32: goto st404; + case 40: goto tr1290; + case 41: goto tr1291; + case 43: goto tr1284; + case 3082: goto tr1292; + case 3131: goto tr1293; + case 3338: goto tr1294; + case 3387: goto tr1294; + case 3594: goto tr1295; + case 3643: goto tr1296; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr1259; + goto tr1284; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr1259; + goto tr1284; } else - goto tr1259; - goto tr1258; -tr1271: + goto tr1284; + goto tr1283; +tr1296: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1525; -st1525: + goto st1672; +st1672: if ( ++p == pe ) - goto _test_eof1525; -case 1525: + goto _test_eof1672; +case 1672: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -48959,377 +50705,389 @@ case 1525: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1273; + goto tr1298; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1272; - goto tr1258; -st397: + goto tr1297; + goto tr1283; +st406: if ( ++p == pe ) - goto _test_eof397; -case 397: + goto _test_eof406; +case 406: if ( (*p) == 61 ) - goto st395; - goto tr1258; -st398: + goto st404; + goto tr1283; +st407: if ( ++p == pe ) - goto _test_eof398; -case 398: + goto _test_eof407; +case 407: switch( (*p) ) { - case 65: goto st399; - case 67: goto st413; - case 68: goto st434; - case 69: goto st451; - case 72: goto st458; - case 73: goto st467; - case 75: goto st475; - case 76: goto st479; - case 77: goto st487; - case 78: goto st493; - case 79: goto st509; - case 80: goto st519; - case 82: goto st522; - case 83: goto st535; - case 84: goto st554; - case 85: goto st564; - case 87: goto st567; - case 90: goto st573; - case 97: goto st399; - case 99: goto st413; - case 100: goto st434; - case 101: goto st451; - case 104: goto st458; - case 105: goto st467; - case 107: goto st475; - case 108: goto st479; - case 109: goto st487; - case 110: goto st493; - case 111: goto st509; - case 112: goto st519; - case 114: goto st522; - case 115: goto st535; - case 116: goto st554; - case 117: goto st564; - case 119: goto st567; - case 122: goto st573; - } - goto tr1274; -st399: + case 65: goto st408; + case 67: goto st422; + case 68: goto st443; + case 69: goto st469; + case 72: goto st476; + case 73: goto st485; + case 75: goto st493; + case 76: goto st497; + case 77: goto st505; + case 78: goto st511; + case 79: goto st527; + case 80: goto st537; + case 82: goto st540; + case 83: goto st553; + case 84: goto st572; + case 85: goto st582; + case 87: goto st585; + case 90: goto st591; + case 97: goto st408; + case 99: goto st422; + case 100: goto st443; + case 101: goto st469; + case 104: goto st476; + case 105: goto st485; + case 107: goto st493; + case 108: goto st497; + case 109: goto st505; + case 110: goto st511; + case 111: goto st527; + case 112: goto st537; + case 114: goto st540; + case 115: goto st553; + case 116: goto st572; + case 117: goto st582; + case 119: goto st585; + case 122: goto st591; + } + goto tr1299; +st408: if ( ++p == pe ) - goto _test_eof399; -case 399: + goto _test_eof408; +case 408: switch( (*p) ) { - case 32: goto tr1293; - case 59: goto tr1293; - case 65: goto st400; - case 70: goto st403; - case 76: goto st407; - case 80: goto st411; - case 97: goto st400; - case 102: goto st403; - case 108: goto st407; - case 112: goto st411; + case 32: goto tr1318; + case 59: goto tr1318; + case 65: goto st409; + case 70: goto st412; + case 76: goto st416; + case 80: goto st420; + case 97: goto st409; + case 102: goto st412; + case 108: goto st416; + case 112: goto st420; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1293; + goto tr1318; } else if ( (*p) >= 9 ) - goto tr1293; - goto tr1274; -tr1293: + goto tr1318; + goto tr1299; +tr1318: { type_num(KNOT_RRTYPE_A, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1300: + goto st1673; +tr1325: { type_num(KNOT_RRTYPE_AAAA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1304: + goto st1673; +tr1329: { type_num(KNOT_RRTYPE_AFSDB, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1308: + goto st1673; +tr1333: { type_num(KNOT_RRTYPE_ALIAS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1310: + goto st1673; +tr1335: { type_num(KNOT_RRTYPE_APL, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1317: + goto st1673; +tr1342: { type_num(KNOT_RRTYPE_CAA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1324: + goto st1673; +tr1349: { type_num(KNOT_RRTYPE_CDNSKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1325: + goto st1673; +tr1350: { type_num(KNOT_RRTYPE_CDS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1328: + goto st1673; +tr1353: { type_num(KNOT_RRTYPE_CERT, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1332: + goto st1673; +tr1357: { type_num(KNOT_RRTYPE_CNAME, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1336: + goto st1673; +tr1361: { type_num(KNOT_RRTYPE_CSYNC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1343: + goto st1673; +tr1369: + { type_num(KNOT_RRTYPE_DELEG, &rdata_tail); } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1673; +tr1375: + { type_num(KNOT_RRTYPE_DELEGPARAM, &rdata_tail); } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1673; +tr1379: { type_num(KNOT_RRTYPE_DHCID, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1348: + goto st1673; +tr1384: { type_num(KNOT_RRTYPE_DNAME, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1352: + goto st1673; +tr1388: { type_num(KNOT_RRTYPE_DNSKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1353: + goto st1673; +tr1389: { type_num(KNOT_RRTYPE_DS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1357: + goto st1673; +tr1393: { type_num(KNOT_RRTYPE_DSYNC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1363: + goto st1673; +tr1399: { type_num(KNOT_RRTYPE_EUI48, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1365: + goto st1673; +tr1401: { type_num(KNOT_RRTYPE_EUI64, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1371: + goto st1673; +tr1407: { type_num(KNOT_RRTYPE_HINFO, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1375: + goto st1673; +tr1411: { type_num(KNOT_RRTYPE_HTTPS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1383: + goto st1673; +tr1419: { type_num(KNOT_RRTYPE_IPSECKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1387: + goto st1673; +tr1423: { type_num(KNOT_RRTYPE_KEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1388: + goto st1673; +tr1424: { type_num(KNOT_RRTYPE_KX, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1394: + goto st1673; +tr1430: { type_num(KNOT_RRTYPE_L32, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1396: + goto st1673; +tr1432: { type_num(KNOT_RRTYPE_L64, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1398: + goto st1673; +tr1434: { type_num(KNOT_RRTYPE_LOC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1399: + goto st1673; +tr1435: { type_num(KNOT_RRTYPE_LP, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1405: + goto st1673; +tr1441: { type_num(KNOT_RRTYPE_MINFO, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1406: + goto st1673; +tr1442: { type_num(KNOT_RRTYPE_MX, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1413: + goto st1673; +tr1449: { type_num(KNOT_RRTYPE_NAPTR, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1415: + goto st1673; +tr1451: { type_num(KNOT_RRTYPE_NID, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1416: + goto st1673; +tr1452: { type_num(KNOT_RRTYPE_NS, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1419: + goto st1673; +tr1455: { type_num(KNOT_RRTYPE_NSEC, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1421: + goto st1673; +tr1457: { type_num(KNOT_RRTYPE_NSEC3, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1427: + goto st1673; +tr1463: { type_num(KNOT_RRTYPE_NSEC3PARAM, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1437: + goto st1673; +tr1473: { type_num(KNOT_RRTYPE_OPENPGPKEY, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1440: + goto st1673; +tr1476: { type_num(KNOT_RRTYPE_PTR, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1450: + goto st1673; +tr1486: { type_num(KNOT_RRTYPE_RESINFO, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1451: + goto st1673; +tr1487: { type_num(KNOT_RRTYPE_RP, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1455: + goto st1673; +tr1491: { type_num(KNOT_RRTYPE_RRSIG, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1456: + goto st1673; +tr1492: { type_num(KNOT_RRTYPE_RT, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1467: + goto st1673; +tr1503: { type_num(KNOT_RRTYPE_SMIMEA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1469: + goto st1673; +tr1505: { type_num(KNOT_RRTYPE_SOA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1471: + goto st1673; +tr1507: { type_num(KNOT_RRTYPE_SPF, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1473: + goto st1673; +tr1509: { type_num(KNOT_RRTYPE_SRV, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1477: + goto st1673; +tr1513: { type_num(KNOT_RRTYPE_SSHFP, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1480: + goto st1673; +tr1516: { type_num(KNOT_RRTYPE_SVCB, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1486: + goto st1673; +tr1522: { type_num(KNOT_RRTYPE_TLSA, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1488: + goto st1673; +tr1524: { type_num(KNOT_RRTYPE_TXT, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1493: + goto st1673; +tr1529: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -49337,338 +51095,242 @@ tr1493: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1497: + goto st1673; +tr1533: { type_num(KNOT_RRTYPE_URI, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1503: + goto st1673; +tr1539: { type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -tr1509: + goto st1673; +tr1545: { type_num(KNOT_RRTYPE_ZONEMD, &rdata_tail); } { p--; {cs = stack[--top];goto _again;} } - goto st1526; -st1526: + goto st1673; +st1673: if ( ++p == pe ) - goto _test_eof1526; -case 1526: + goto _test_eof1673; +case 1673: goto st0; -st400: - if ( ++p == pe ) - goto _test_eof400; -case 400: - switch( (*p) ) { - case 65: goto st401; - case 97: goto st401; - } - goto tr1274; -st401: - if ( ++p == pe ) - goto _test_eof401; -case 401: - switch( (*p) ) { - case 65: goto st402; - case 97: goto st402; - } - goto tr1274; -st402: - if ( ++p == pe ) - goto _test_eof402; -case 402: - switch( (*p) ) { - case 32: goto tr1300; - case 59: goto tr1300; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1300; - } else if ( (*p) >= 9 ) - goto tr1300; - goto tr1274; -st403: - if ( ++p == pe ) - goto _test_eof403; -case 403: - switch( (*p) ) { - case 83: goto st404; - case 115: goto st404; - } - goto tr1274; -st404: - if ( ++p == pe ) - goto _test_eof404; -case 404: - switch( (*p) ) { - case 68: goto st405; - case 100: goto st405; - } - goto tr1274; -st405: - if ( ++p == pe ) - goto _test_eof405; -case 405: - switch( (*p) ) { - case 66: goto st406; - case 98: goto st406; - } - goto tr1274; -st406: - if ( ++p == pe ) - goto _test_eof406; -case 406: - switch( (*p) ) { - case 32: goto tr1304; - case 59: goto tr1304; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1304; - } else if ( (*p) >= 9 ) - goto tr1304; - goto tr1274; -st407: - if ( ++p == pe ) - goto _test_eof407; -case 407: - switch( (*p) ) { - case 73: goto st408; - case 105: goto st408; - } - goto tr1274; -st408: - if ( ++p == pe ) - goto _test_eof408; -case 408: - switch( (*p) ) { - case 65: goto st409; - case 97: goto st409; - } - goto tr1274; st409: if ( ++p == pe ) goto _test_eof409; case 409: switch( (*p) ) { - case 83: goto st410; - case 115: goto st410; + case 65: goto st410; + case 97: goto st410; } - goto tr1274; + goto tr1299; st410: if ( ++p == pe ) goto _test_eof410; case 410: switch( (*p) ) { - case 32: goto tr1308; - case 59: goto tr1308; + case 65: goto st411; + case 97: goto st411; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1308; - } else if ( (*p) >= 9 ) - goto tr1308; - goto tr1274; + goto tr1299; st411: if ( ++p == pe ) goto _test_eof411; case 411: switch( (*p) ) { - case 76: goto st412; - case 108: goto st412; + case 32: goto tr1325; + case 59: goto tr1325; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1325; + } else if ( (*p) >= 9 ) + goto tr1325; + goto tr1299; st412: if ( ++p == pe ) goto _test_eof412; case 412: switch( (*p) ) { - case 32: goto tr1310; - case 59: goto tr1310; + case 83: goto st413; + case 115: goto st413; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1310; - } else if ( (*p) >= 9 ) - goto tr1310; - goto tr1274; + goto tr1299; st413: if ( ++p == pe ) goto _test_eof413; case 413: switch( (*p) ) { - case 65: goto st414; - case 68: goto st416; - case 69: goto st423; - case 78: goto st426; - case 83: goto st430; - case 97: goto st414; - case 100: goto st416; - case 101: goto st423; - case 110: goto st426; - case 115: goto st430; + case 68: goto st414; + case 100: goto st414; } - goto tr1274; + goto tr1299; st414: if ( ++p == pe ) goto _test_eof414; case 414: switch( (*p) ) { - case 65: goto st415; - case 97: goto st415; + case 66: goto st415; + case 98: goto st415; } - goto tr1274; + goto tr1299; st415: if ( ++p == pe ) goto _test_eof415; case 415: switch( (*p) ) { - case 32: goto tr1317; - case 59: goto tr1317; + case 32: goto tr1329; + case 59: goto tr1329; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1317; + goto tr1329; } else if ( (*p) >= 9 ) - goto tr1317; - goto tr1274; + goto tr1329; + goto tr1299; st416: if ( ++p == pe ) goto _test_eof416; case 416: switch( (*p) ) { - case 78: goto st417; - case 83: goto st422; - case 110: goto st417; - case 115: goto st422; + case 73: goto st417; + case 105: goto st417; } - goto tr1274; + goto tr1299; st417: if ( ++p == pe ) goto _test_eof417; case 417: switch( (*p) ) { - case 83: goto st418; - case 115: goto st418; + case 65: goto st418; + case 97: goto st418; } - goto tr1274; + goto tr1299; st418: if ( ++p == pe ) goto _test_eof418; case 418: switch( (*p) ) { - case 75: goto st419; - case 107: goto st419; + case 83: goto st419; + case 115: goto st419; } - goto tr1274; + goto tr1299; st419: if ( ++p == pe ) goto _test_eof419; case 419: switch( (*p) ) { - case 69: goto st420; - case 101: goto st420; + case 32: goto tr1333; + case 59: goto tr1333; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1333; + } else if ( (*p) >= 9 ) + goto tr1333; + goto tr1299; st420: if ( ++p == pe ) goto _test_eof420; case 420: switch( (*p) ) { - case 89: goto st421; - case 121: goto st421; + case 76: goto st421; + case 108: goto st421; } - goto tr1274; + goto tr1299; st421: if ( ++p == pe ) goto _test_eof421; case 421: switch( (*p) ) { - case 32: goto tr1324; - case 59: goto tr1324; + case 32: goto tr1335; + case 59: goto tr1335; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1324; + goto tr1335; } else if ( (*p) >= 9 ) - goto tr1324; - goto tr1274; + goto tr1335; + goto tr1299; st422: if ( ++p == pe ) goto _test_eof422; case 422: switch( (*p) ) { - case 32: goto tr1325; - case 59: goto tr1325; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1325; - } else if ( (*p) >= 9 ) - goto tr1325; - goto tr1274; + case 65: goto st423; + case 68: goto st425; + case 69: goto st432; + case 78: goto st435; + case 83: goto st439; + case 97: goto st423; + case 100: goto st425; + case 101: goto st432; + case 110: goto st435; + case 115: goto st439; + } + goto tr1299; st423: if ( ++p == pe ) goto _test_eof423; case 423: switch( (*p) ) { - case 82: goto st424; - case 114: goto st424; + case 65: goto st424; + case 97: goto st424; } - goto tr1274; + goto tr1299; st424: if ( ++p == pe ) goto _test_eof424; case 424: switch( (*p) ) { - case 84: goto st425; - case 116: goto st425; + case 32: goto tr1342; + case 59: goto tr1342; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1342; + } else if ( (*p) >= 9 ) + goto tr1342; + goto tr1299; st425: if ( ++p == pe ) goto _test_eof425; case 425: switch( (*p) ) { - case 32: goto tr1328; - case 59: goto tr1328; + case 78: goto st426; + case 83: goto st431; + case 110: goto st426; + case 115: goto st431; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1328; - } else if ( (*p) >= 9 ) - goto tr1328; - goto tr1274; + goto tr1299; st426: if ( ++p == pe ) goto _test_eof426; case 426: switch( (*p) ) { - case 65: goto st427; - case 97: goto st427; + case 83: goto st427; + case 115: goto st427; } - goto tr1274; + goto tr1299; st427: if ( ++p == pe ) goto _test_eof427; case 427: switch( (*p) ) { - case 77: goto st428; - case 109: goto st428; + case 75: goto st428; + case 107: goto st428; } - goto tr1274; + goto tr1299; st428: if ( ++p == pe ) goto _test_eof428; @@ -49677,903 +51339,897 @@ case 428: case 69: goto st429; case 101: goto st429; } - goto tr1274; + goto tr1299; st429: if ( ++p == pe ) goto _test_eof429; case 429: switch( (*p) ) { - case 32: goto tr1332; - case 59: goto tr1332; + case 89: goto st430; + case 121: goto st430; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1332; - } else if ( (*p) >= 9 ) - goto tr1332; - goto tr1274; + goto tr1299; st430: if ( ++p == pe ) goto _test_eof430; case 430: switch( (*p) ) { - case 89: goto st431; - case 121: goto st431; + case 32: goto tr1349; + case 59: goto tr1349; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1349; + } else if ( (*p) >= 9 ) + goto tr1349; + goto tr1299; st431: if ( ++p == pe ) goto _test_eof431; case 431: switch( (*p) ) { - case 78: goto st432; - case 110: goto st432; + case 32: goto tr1350; + case 59: goto tr1350; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1350; + } else if ( (*p) >= 9 ) + goto tr1350; + goto tr1299; st432: if ( ++p == pe ) goto _test_eof432; case 432: switch( (*p) ) { - case 67: goto st433; - case 99: goto st433; + case 82: goto st433; + case 114: goto st433; } - goto tr1274; + goto tr1299; st433: if ( ++p == pe ) goto _test_eof433; case 433: switch( (*p) ) { - case 32: goto tr1336; - case 59: goto tr1336; + case 84: goto st434; + case 116: goto st434; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1336; - } else if ( (*p) >= 9 ) - goto tr1336; - goto tr1274; + goto tr1299; st434: if ( ++p == pe ) goto _test_eof434; case 434: switch( (*p) ) { - case 72: goto st435; - case 78: goto st439; - case 83: goto st447; - case 104: goto st435; - case 110: goto st439; - case 115: goto st447; + case 32: goto tr1353; + case 59: goto tr1353; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1353; + } else if ( (*p) >= 9 ) + goto tr1353; + goto tr1299; st435: if ( ++p == pe ) goto _test_eof435; case 435: switch( (*p) ) { - case 67: goto st436; - case 99: goto st436; + case 65: goto st436; + case 97: goto st436; } - goto tr1274; + goto tr1299; st436: if ( ++p == pe ) goto _test_eof436; case 436: switch( (*p) ) { - case 73: goto st437; - case 105: goto st437; + case 77: goto st437; + case 109: goto st437; } - goto tr1274; + goto tr1299; st437: if ( ++p == pe ) goto _test_eof437; case 437: switch( (*p) ) { - case 68: goto st438; - case 100: goto st438; + case 69: goto st438; + case 101: goto st438; } - goto tr1274; + goto tr1299; st438: if ( ++p == pe ) goto _test_eof438; case 438: switch( (*p) ) { - case 32: goto tr1343; - case 59: goto tr1343; + case 32: goto tr1357; + case 59: goto tr1357; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1343; + goto tr1357; } else if ( (*p) >= 9 ) - goto tr1343; - goto tr1274; + goto tr1357; + goto tr1299; st439: if ( ++p == pe ) goto _test_eof439; case 439: switch( (*p) ) { - case 65: goto st440; - case 83: goto st443; - case 97: goto st440; - case 115: goto st443; + case 89: goto st440; + case 121: goto st440; } - goto tr1274; + goto tr1299; st440: if ( ++p == pe ) goto _test_eof440; case 440: switch( (*p) ) { - case 77: goto st441; - case 109: goto st441; + case 78: goto st441; + case 110: goto st441; } - goto tr1274; + goto tr1299; st441: if ( ++p == pe ) goto _test_eof441; case 441: switch( (*p) ) { - case 69: goto st442; - case 101: goto st442; + case 67: goto st442; + case 99: goto st442; } - goto tr1274; + goto tr1299; st442: if ( ++p == pe ) goto _test_eof442; case 442: switch( (*p) ) { - case 32: goto tr1348; - case 59: goto tr1348; + case 32: goto tr1361; + case 59: goto tr1361; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1348; + goto tr1361; } else if ( (*p) >= 9 ) - goto tr1348; - goto tr1274; + goto tr1361; + goto tr1299; st443: if ( ++p == pe ) goto _test_eof443; case 443: switch( (*p) ) { - case 75: goto st444; - case 107: goto st444; + case 69: goto st444; + case 72: goto st453; + case 78: goto st457; + case 83: goto st465; + case 101: goto st444; + case 104: goto st453; + case 110: goto st457; + case 115: goto st465; } - goto tr1274; + goto tr1299; st444: if ( ++p == pe ) goto _test_eof444; case 444: switch( (*p) ) { - case 69: goto st445; - case 101: goto st445; + case 76: goto st445; + case 108: goto st445; } - goto tr1274; + goto tr1299; st445: if ( ++p == pe ) goto _test_eof445; case 445: switch( (*p) ) { - case 89: goto st446; - case 121: goto st446; + case 69: goto st446; + case 101: goto st446; } - goto tr1274; + goto tr1299; st446: if ( ++p == pe ) goto _test_eof446; case 446: switch( (*p) ) { - case 32: goto tr1352; - case 59: goto tr1352; + case 71: goto st447; + case 103: goto st447; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1352; - } else if ( (*p) >= 9 ) - goto tr1352; - goto tr1274; + goto tr1299; st447: if ( ++p == pe ) goto _test_eof447; case 447: switch( (*p) ) { - case 32: goto tr1353; - case 59: goto tr1353; - case 89: goto st448; - case 121: goto st448; + case 32: goto tr1369; + case 59: goto tr1369; + case 80: goto st448; + case 112: goto st448; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1353; + goto tr1369; } else if ( (*p) >= 9 ) - goto tr1353; - goto tr1274; + goto tr1369; + goto tr1299; st448: if ( ++p == pe ) goto _test_eof448; case 448: switch( (*p) ) { - case 78: goto st449; - case 110: goto st449; + case 65: goto st449; + case 97: goto st449; } - goto tr1274; + goto tr1299; st449: if ( ++p == pe ) goto _test_eof449; case 449: switch( (*p) ) { - case 67: goto st450; - case 99: goto st450; + case 82: goto st450; + case 114: goto st450; } - goto tr1274; + goto tr1299; st450: if ( ++p == pe ) goto _test_eof450; case 450: switch( (*p) ) { - case 32: goto tr1357; - case 59: goto tr1357; + case 65: goto st451; + case 97: goto st451; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1357; - } else if ( (*p) >= 9 ) - goto tr1357; - goto tr1274; + goto tr1299; st451: if ( ++p == pe ) goto _test_eof451; case 451: switch( (*p) ) { - case 85: goto st452; - case 117: goto st452; + case 77: goto st452; + case 109: goto st452; } - goto tr1274; + goto tr1299; st452: if ( ++p == pe ) goto _test_eof452; case 452: switch( (*p) ) { - case 73: goto st453; - case 105: goto st453; + case 32: goto tr1375; + case 59: goto tr1375; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1375; + } else if ( (*p) >= 9 ) + goto tr1375; + goto tr1299; st453: if ( ++p == pe ) goto _test_eof453; case 453: switch( (*p) ) { - case 52: goto st454; - case 54: goto st456; + case 67: goto st454; + case 99: goto st454; } - goto tr1274; + goto tr1299; st454: if ( ++p == pe ) goto _test_eof454; case 454: - if ( (*p) == 56 ) - goto st455; - goto tr1274; + switch( (*p) ) { + case 73: goto st455; + case 105: goto st455; + } + goto tr1299; st455: if ( ++p == pe ) goto _test_eof455; case 455: switch( (*p) ) { - case 32: goto tr1363; - case 59: goto tr1363; + case 68: goto st456; + case 100: goto st456; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1363; - } else if ( (*p) >= 9 ) - goto tr1363; - goto tr1274; + goto tr1299; st456: if ( ++p == pe ) goto _test_eof456; case 456: - if ( (*p) == 52 ) - goto st457; - goto tr1274; + switch( (*p) ) { + case 32: goto tr1379; + case 59: goto tr1379; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1379; + } else if ( (*p) >= 9 ) + goto tr1379; + goto tr1299; st457: if ( ++p == pe ) goto _test_eof457; case 457: switch( (*p) ) { - case 32: goto tr1365; - case 59: goto tr1365; + case 65: goto st458; + case 83: goto st461; + case 97: goto st458; + case 115: goto st461; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1365; - } else if ( (*p) >= 9 ) - goto tr1365; - goto tr1274; + goto tr1299; st458: if ( ++p == pe ) goto _test_eof458; case 458: switch( (*p) ) { - case 73: goto st459; - case 84: goto st463; - case 105: goto st459; - case 116: goto st463; + case 77: goto st459; + case 109: goto st459; } - goto tr1274; + goto tr1299; st459: if ( ++p == pe ) goto _test_eof459; case 459: switch( (*p) ) { - case 78: goto st460; - case 110: goto st460; + case 69: goto st460; + case 101: goto st460; } - goto tr1274; + goto tr1299; st460: if ( ++p == pe ) goto _test_eof460; case 460: switch( (*p) ) { - case 70: goto st461; - case 102: goto st461; + case 32: goto tr1384; + case 59: goto tr1384; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1384; + } else if ( (*p) >= 9 ) + goto tr1384; + goto tr1299; st461: if ( ++p == pe ) goto _test_eof461; case 461: switch( (*p) ) { - case 79: goto st462; - case 111: goto st462; + case 75: goto st462; + case 107: goto st462; } - goto tr1274; + goto tr1299; st462: if ( ++p == pe ) goto _test_eof462; case 462: switch( (*p) ) { - case 32: goto tr1371; - case 59: goto tr1371; + case 69: goto st463; + case 101: goto st463; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1371; - } else if ( (*p) >= 9 ) - goto tr1371; - goto tr1274; + goto tr1299; st463: if ( ++p == pe ) goto _test_eof463; case 463: switch( (*p) ) { - case 84: goto st464; - case 116: goto st464; + case 89: goto st464; + case 121: goto st464; } - goto tr1274; + goto tr1299; st464: if ( ++p == pe ) goto _test_eof464; case 464: switch( (*p) ) { - case 80: goto st465; - case 112: goto st465; + case 32: goto tr1388; + case 59: goto tr1388; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1388; + } else if ( (*p) >= 9 ) + goto tr1388; + goto tr1299; st465: if ( ++p == pe ) goto _test_eof465; case 465: switch( (*p) ) { - case 83: goto st466; - case 115: goto st466; + case 32: goto tr1389; + case 59: goto tr1389; + case 89: goto st466; + case 121: goto st466; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1389; + } else if ( (*p) >= 9 ) + goto tr1389; + goto tr1299; st466: if ( ++p == pe ) goto _test_eof466; case 466: switch( (*p) ) { - case 32: goto tr1375; - case 59: goto tr1375; + case 78: goto st467; + case 110: goto st467; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1375; - } else if ( (*p) >= 9 ) - goto tr1375; - goto tr1274; + goto tr1299; st467: if ( ++p == pe ) goto _test_eof467; case 467: switch( (*p) ) { - case 80: goto st468; - case 112: goto st468; + case 67: goto st468; + case 99: goto st468; } - goto tr1274; + goto tr1299; st468: if ( ++p == pe ) goto _test_eof468; case 468: switch( (*p) ) { - case 83: goto st469; - case 115: goto st469; + case 32: goto tr1393; + case 59: goto tr1393; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1393; + } else if ( (*p) >= 9 ) + goto tr1393; + goto tr1299; st469: if ( ++p == pe ) goto _test_eof469; case 469: switch( (*p) ) { - case 69: goto st470; - case 101: goto st470; + case 85: goto st470; + case 117: goto st470; } - goto tr1274; + goto tr1299; st470: if ( ++p == pe ) goto _test_eof470; case 470: switch( (*p) ) { - case 67: goto st471; - case 99: goto st471; + case 73: goto st471; + case 105: goto st471; } - goto tr1274; + goto tr1299; st471: if ( ++p == pe ) goto _test_eof471; case 471: switch( (*p) ) { - case 75: goto st472; - case 107: goto st472; + case 52: goto st472; + case 54: goto st474; } - goto tr1274; + goto tr1299; st472: if ( ++p == pe ) goto _test_eof472; case 472: - switch( (*p) ) { - case 69: goto st473; - case 101: goto st473; - } - goto tr1274; + if ( (*p) == 56 ) + goto st473; + goto tr1299; st473: if ( ++p == pe ) goto _test_eof473; case 473: switch( (*p) ) { - case 89: goto st474; - case 121: goto st474; + case 32: goto tr1399; + case 59: goto tr1399; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1399; + } else if ( (*p) >= 9 ) + goto tr1399; + goto tr1299; st474: if ( ++p == pe ) goto _test_eof474; case 474: - switch( (*p) ) { - case 32: goto tr1383; - case 59: goto tr1383; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1383; - } else if ( (*p) >= 9 ) - goto tr1383; - goto tr1274; + if ( (*p) == 52 ) + goto st475; + goto tr1299; st475: if ( ++p == pe ) goto _test_eof475; case 475: switch( (*p) ) { - case 69: goto st476; - case 88: goto st478; - case 101: goto st476; - case 120: goto st478; + case 32: goto tr1401; + case 59: goto tr1401; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1401; + } else if ( (*p) >= 9 ) + goto tr1401; + goto tr1299; st476: if ( ++p == pe ) goto _test_eof476; case 476: switch( (*p) ) { - case 89: goto st477; - case 121: goto st477; + case 73: goto st477; + case 84: goto st481; + case 105: goto st477; + case 116: goto st481; } - goto tr1274; + goto tr1299; st477: if ( ++p == pe ) goto _test_eof477; case 477: switch( (*p) ) { - case 32: goto tr1387; - case 59: goto tr1387; + case 78: goto st478; + case 110: goto st478; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1387; - } else if ( (*p) >= 9 ) - goto tr1387; - goto tr1274; + goto tr1299; st478: if ( ++p == pe ) goto _test_eof478; case 478: switch( (*p) ) { - case 32: goto tr1388; - case 59: goto tr1388; + case 70: goto st479; + case 102: goto st479; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1388; - } else if ( (*p) >= 9 ) - goto tr1388; - goto tr1274; + goto tr1299; st479: if ( ++p == pe ) goto _test_eof479; case 479: switch( (*p) ) { - case 51: goto st480; - case 54: goto st482; - case 79: goto st484; - case 80: goto st486; - case 111: goto st484; - case 112: goto st486; + case 79: goto st480; + case 111: goto st480; } - goto tr1274; + goto tr1299; st480: if ( ++p == pe ) goto _test_eof480; case 480: - if ( (*p) == 50 ) - goto st481; - goto tr1274; + switch( (*p) ) { + case 32: goto tr1407; + case 59: goto tr1407; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1407; + } else if ( (*p) >= 9 ) + goto tr1407; + goto tr1299; st481: if ( ++p == pe ) goto _test_eof481; case 481: switch( (*p) ) { - case 32: goto tr1394; - case 59: goto tr1394; + case 84: goto st482; + case 116: goto st482; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1394; - } else if ( (*p) >= 9 ) - goto tr1394; - goto tr1274; + goto tr1299; st482: if ( ++p == pe ) goto _test_eof482; case 482: - if ( (*p) == 52 ) - goto st483; - goto tr1274; + switch( (*p) ) { + case 80: goto st483; + case 112: goto st483; + } + goto tr1299; st483: if ( ++p == pe ) goto _test_eof483; case 483: switch( (*p) ) { - case 32: goto tr1396; - case 59: goto tr1396; + case 83: goto st484; + case 115: goto st484; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1396; - } else if ( (*p) >= 9 ) - goto tr1396; - goto tr1274; + goto tr1299; st484: if ( ++p == pe ) goto _test_eof484; case 484: switch( (*p) ) { - case 67: goto st485; - case 99: goto st485; + case 32: goto tr1411; + case 59: goto tr1411; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1411; + } else if ( (*p) >= 9 ) + goto tr1411; + goto tr1299; st485: if ( ++p == pe ) goto _test_eof485; case 485: switch( (*p) ) { - case 32: goto tr1398; - case 59: goto tr1398; + case 80: goto st486; + case 112: goto st486; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1398; - } else if ( (*p) >= 9 ) - goto tr1398; - goto tr1274; + goto tr1299; st486: if ( ++p == pe ) goto _test_eof486; case 486: switch( (*p) ) { - case 32: goto tr1399; - case 59: goto tr1399; + case 83: goto st487; + case 115: goto st487; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1399; - } else if ( (*p) >= 9 ) - goto tr1399; - goto tr1274; + goto tr1299; st487: if ( ++p == pe ) goto _test_eof487; case 487: switch( (*p) ) { - case 73: goto st488; - case 88: goto st492; - case 105: goto st488; - case 120: goto st492; + case 69: goto st488; + case 101: goto st488; } - goto tr1274; + goto tr1299; st488: if ( ++p == pe ) goto _test_eof488; case 488: switch( (*p) ) { - case 78: goto st489; - case 110: goto st489; + case 67: goto st489; + case 99: goto st489; } - goto tr1274; + goto tr1299; st489: if ( ++p == pe ) goto _test_eof489; case 489: switch( (*p) ) { - case 70: goto st490; - case 102: goto st490; + case 75: goto st490; + case 107: goto st490; } - goto tr1274; + goto tr1299; st490: if ( ++p == pe ) goto _test_eof490; case 490: switch( (*p) ) { - case 79: goto st491; - case 111: goto st491; + case 69: goto st491; + case 101: goto st491; } - goto tr1274; + goto tr1299; st491: if ( ++p == pe ) goto _test_eof491; case 491: switch( (*p) ) { - case 32: goto tr1405; - case 59: goto tr1405; + case 89: goto st492; + case 121: goto st492; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1405; - } else if ( (*p) >= 9 ) - goto tr1405; - goto tr1274; + goto tr1299; st492: if ( ++p == pe ) goto _test_eof492; case 492: switch( (*p) ) { - case 32: goto tr1406; - case 59: goto tr1406; + case 32: goto tr1419; + case 59: goto tr1419; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1406; + goto tr1419; } else if ( (*p) >= 9 ) - goto tr1406; - goto tr1274; + goto tr1419; + goto tr1299; st493: if ( ++p == pe ) goto _test_eof493; case 493: switch( (*p) ) { - case 65: goto st494; - case 73: goto st498; - case 83: goto st500; - case 97: goto st494; - case 105: goto st498; - case 115: goto st500; + case 69: goto st494; + case 88: goto st496; + case 101: goto st494; + case 120: goto st496; } - goto tr1274; + goto tr1299; st494: if ( ++p == pe ) goto _test_eof494; case 494: switch( (*p) ) { - case 80: goto st495; - case 112: goto st495; + case 89: goto st495; + case 121: goto st495; } - goto tr1274; + goto tr1299; st495: if ( ++p == pe ) goto _test_eof495; case 495: switch( (*p) ) { - case 84: goto st496; - case 116: goto st496; + case 32: goto tr1423; + case 59: goto tr1423; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1423; + } else if ( (*p) >= 9 ) + goto tr1423; + goto tr1299; st496: if ( ++p == pe ) goto _test_eof496; case 496: switch( (*p) ) { - case 82: goto st497; - case 114: goto st497; + case 32: goto tr1424; + case 59: goto tr1424; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1424; + } else if ( (*p) >= 9 ) + goto tr1424; + goto tr1299; st497: if ( ++p == pe ) goto _test_eof497; case 497: switch( (*p) ) { - case 32: goto tr1413; - case 59: goto tr1413; + case 51: goto st498; + case 54: goto st500; + case 79: goto st502; + case 80: goto st504; + case 111: goto st502; + case 112: goto st504; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1413; - } else if ( (*p) >= 9 ) - goto tr1413; - goto tr1274; + goto tr1299; st498: if ( ++p == pe ) goto _test_eof498; case 498: - switch( (*p) ) { - case 68: goto st499; - case 100: goto st499; - } - goto tr1274; + if ( (*p) == 50 ) + goto st499; + goto tr1299; st499: if ( ++p == pe ) goto _test_eof499; case 499: switch( (*p) ) { - case 32: goto tr1415; - case 59: goto tr1415; + case 32: goto tr1430; + case 59: goto tr1430; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1415; + goto tr1430; } else if ( (*p) >= 9 ) - goto tr1415; - goto tr1274; + goto tr1430; + goto tr1299; st500: if ( ++p == pe ) goto _test_eof500; case 500: - switch( (*p) ) { - case 32: goto tr1416; - case 59: goto tr1416; - case 69: goto st501; - case 101: goto st501; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1416; - } else if ( (*p) >= 9 ) - goto tr1416; - goto tr1274; + if ( (*p) == 52 ) + goto st501; + goto tr1299; st501: if ( ++p == pe ) goto _test_eof501; case 501: switch( (*p) ) { - case 67: goto st502; - case 99: goto st502; + case 32: goto tr1432; + case 59: goto tr1432; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1432; + } else if ( (*p) >= 9 ) + goto tr1432; + goto tr1299; st502: if ( ++p == pe ) goto _test_eof502; case 502: switch( (*p) ) { - case 32: goto tr1419; - case 51: goto st503; - case 59: goto tr1419; + case 67: goto st503; + case 99: goto st503; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1419; - } else if ( (*p) >= 9 ) - goto tr1419; - goto tr1274; + goto tr1299; st503: if ( ++p == pe ) goto _test_eof503; case 503: switch( (*p) ) { - case 32: goto tr1421; - case 59: goto tr1421; - case 80: goto st504; - case 112: goto st504; + case 32: goto tr1434; + case 59: goto tr1434; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1421; + goto tr1434; } else if ( (*p) >= 9 ) - goto tr1421; - goto tr1274; + goto tr1434; + goto tr1299; st504: if ( ++p == pe ) goto _test_eof504; case 504: switch( (*p) ) { - case 65: goto st505; - case 97: goto st505; + case 32: goto tr1435; + case 59: goto tr1435; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1435; + } else if ( (*p) >= 9 ) + goto tr1435; + goto tr1299; st505: if ( ++p == pe ) goto _test_eof505; case 505: switch( (*p) ) { - case 82: goto st506; - case 114: goto st506; + case 73: goto st506; + case 88: goto st510; + case 105: goto st506; + case 120: goto st510; } - goto tr1274; + goto tr1299; st506: if ( ++p == pe ) goto _test_eof506; case 506: switch( (*p) ) { - case 65: goto st507; - case 97: goto st507; + case 78: goto st507; + case 110: goto st507; } - goto tr1274; + goto tr1299; st507: if ( ++p == pe ) goto _test_eof507; case 507: switch( (*p) ) { - case 77: goto st508; - case 109: goto st508; + case 70: goto st508; + case 102: goto st508; } - goto tr1274; + goto tr1299; st508: if ( ++p == pe ) goto _test_eof508; case 508: switch( (*p) ) { - case 32: goto tr1427; - case 59: goto tr1427; + case 79: goto st509; + case 111: goto st509; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1427; - } else if ( (*p) >= 9 ) - goto tr1427; - goto tr1274; + goto tr1299; st509: if ( ++p == pe ) goto _test_eof509; case 509: switch( (*p) ) { - case 80: goto st510; - case 112: goto st510; + case 32: goto tr1441; + case 59: goto tr1441; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1441; + } else if ( (*p) >= 9 ) + goto tr1441; + goto tr1299; st510: if ( ++p == pe ) goto _test_eof510; case 510: switch( (*p) ) { - case 69: goto st511; - case 101: goto st511; + case 32: goto tr1442; + case 59: goto tr1442; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1442; + } else if ( (*p) >= 9 ) + goto tr1442; + goto tr1299; st511: if ( ++p == pe ) goto _test_eof511; case 511: switch( (*p) ) { - case 78: goto st512; - case 110: goto st512; + case 65: goto st512; + case 73: goto st516; + case 83: goto st518; + case 97: goto st512; + case 105: goto st516; + case 115: goto st518; } - goto tr1274; + goto tr1299; st512: if ( ++p == pe ) goto _test_eof512; @@ -50582,751 +52238,948 @@ case 512: case 80: goto st513; case 112: goto st513; } - goto tr1274; + goto tr1299; st513: if ( ++p == pe ) goto _test_eof513; case 513: switch( (*p) ) { - case 71: goto st514; - case 103: goto st514; + case 84: goto st514; + case 116: goto st514; } - goto tr1274; + goto tr1299; st514: if ( ++p == pe ) goto _test_eof514; case 514: switch( (*p) ) { - case 80: goto st515; - case 112: goto st515; + case 82: goto st515; + case 114: goto st515; } - goto tr1274; + goto tr1299; st515: if ( ++p == pe ) goto _test_eof515; case 515: switch( (*p) ) { - case 75: goto st516; - case 107: goto st516; + case 32: goto tr1449; + case 59: goto tr1449; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1449; + } else if ( (*p) >= 9 ) + goto tr1449; + goto tr1299; st516: if ( ++p == pe ) goto _test_eof516; case 516: switch( (*p) ) { - case 69: goto st517; - case 101: goto st517; + case 68: goto st517; + case 100: goto st517; } - goto tr1274; + goto tr1299; st517: if ( ++p == pe ) goto _test_eof517; case 517: switch( (*p) ) { - case 89: goto st518; - case 121: goto st518; + case 32: goto tr1451; + case 59: goto tr1451; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1451; + } else if ( (*p) >= 9 ) + goto tr1451; + goto tr1299; st518: if ( ++p == pe ) goto _test_eof518; case 518: switch( (*p) ) { - case 32: goto tr1437; - case 59: goto tr1437; + case 32: goto tr1452; + case 59: goto tr1452; + case 69: goto st519; + case 101: goto st519; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1437; + goto tr1452; } else if ( (*p) >= 9 ) - goto tr1437; - goto tr1274; + goto tr1452; + goto tr1299; st519: if ( ++p == pe ) goto _test_eof519; case 519: switch( (*p) ) { - case 84: goto st520; - case 116: goto st520; + case 67: goto st520; + case 99: goto st520; } - goto tr1274; + goto tr1299; st520: if ( ++p == pe ) goto _test_eof520; case 520: switch( (*p) ) { - case 82: goto st521; - case 114: goto st521; + case 32: goto tr1455; + case 51: goto st521; + case 59: goto tr1455; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1455; + } else if ( (*p) >= 9 ) + goto tr1455; + goto tr1299; st521: if ( ++p == pe ) goto _test_eof521; case 521: switch( (*p) ) { - case 32: goto tr1440; - case 59: goto tr1440; + case 32: goto tr1457; + case 59: goto tr1457; + case 80: goto st522; + case 112: goto st522; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1440; + goto tr1457; } else if ( (*p) >= 9 ) - goto tr1440; - goto tr1274; + goto tr1457; + goto tr1299; st522: if ( ++p == pe ) goto _test_eof522; case 522: switch( (*p) ) { - case 69: goto st523; - case 80: goto st529; - case 82: goto st530; - case 84: goto st534; - case 101: goto st523; - case 112: goto st529; - case 114: goto st530; - case 116: goto st534; + case 65: goto st523; + case 97: goto st523; } - goto tr1274; + goto tr1299; st523: if ( ++p == pe ) goto _test_eof523; case 523: switch( (*p) ) { - case 83: goto st524; - case 115: goto st524; + case 82: goto st524; + case 114: goto st524; } - goto tr1274; + goto tr1299; st524: if ( ++p == pe ) goto _test_eof524; case 524: switch( (*p) ) { - case 73: goto st525; - case 105: goto st525; + case 65: goto st525; + case 97: goto st525; } - goto tr1274; + goto tr1299; st525: if ( ++p == pe ) goto _test_eof525; case 525: switch( (*p) ) { - case 78: goto st526; - case 110: goto st526; + case 77: goto st526; + case 109: goto st526; } - goto tr1274; + goto tr1299; st526: if ( ++p == pe ) goto _test_eof526; case 526: switch( (*p) ) { - case 70: goto st527; - case 102: goto st527; + case 32: goto tr1463; + case 59: goto tr1463; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1463; + } else if ( (*p) >= 9 ) + goto tr1463; + goto tr1299; st527: if ( ++p == pe ) goto _test_eof527; case 527: switch( (*p) ) { - case 79: goto st528; - case 111: goto st528; + case 80: goto st528; + case 112: goto st528; } - goto tr1274; + goto tr1299; st528: if ( ++p == pe ) goto _test_eof528; case 528: switch( (*p) ) { - case 32: goto tr1450; - case 59: goto tr1450; + case 69: goto st529; + case 101: goto st529; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1450; - } else if ( (*p) >= 9 ) - goto tr1450; - goto tr1274; + goto tr1299; st529: if ( ++p == pe ) goto _test_eof529; case 529: switch( (*p) ) { - case 32: goto tr1451; - case 59: goto tr1451; + case 78: goto st530; + case 110: goto st530; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1451; - } else if ( (*p) >= 9 ) - goto tr1451; - goto tr1274; + goto tr1299; st530: if ( ++p == pe ) goto _test_eof530; case 530: switch( (*p) ) { - case 83: goto st531; - case 115: goto st531; + case 80: goto st531; + case 112: goto st531; } - goto tr1274; + goto tr1299; st531: if ( ++p == pe ) goto _test_eof531; case 531: switch( (*p) ) { - case 73: goto st532; - case 105: goto st532; + case 71: goto st532; + case 103: goto st532; } - goto tr1274; + goto tr1299; st532: if ( ++p == pe ) goto _test_eof532; case 532: switch( (*p) ) { - case 71: goto st533; - case 103: goto st533; + case 80: goto st533; + case 112: goto st533; } - goto tr1274; + goto tr1299; st533: if ( ++p == pe ) goto _test_eof533; case 533: switch( (*p) ) { - case 32: goto tr1455; - case 59: goto tr1455; + case 75: goto st534; + case 107: goto st534; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1455; - } else if ( (*p) >= 9 ) - goto tr1455; - goto tr1274; + goto tr1299; st534: if ( ++p == pe ) goto _test_eof534; case 534: switch( (*p) ) { - case 32: goto tr1456; - case 59: goto tr1456; + case 69: goto st535; + case 101: goto st535; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1456; - } else if ( (*p) >= 9 ) - goto tr1456; - goto tr1274; + goto tr1299; st535: if ( ++p == pe ) goto _test_eof535; case 535: switch( (*p) ) { - case 77: goto st536; - case 79: goto st541; - case 80: goto st543; - case 82: goto st545; - case 83: goto st547; - case 86: goto st551; - case 109: goto st536; - case 111: goto st541; - case 112: goto st543; - case 114: goto st545; - case 115: goto st547; - case 118: goto st551; - } - goto tr1274; + case 89: goto st536; + case 121: goto st536; + } + goto tr1299; st536: if ( ++p == pe ) goto _test_eof536; case 536: switch( (*p) ) { - case 73: goto st537; - case 105: goto st537; + case 32: goto tr1473; + case 59: goto tr1473; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1473; + } else if ( (*p) >= 9 ) + goto tr1473; + goto tr1299; st537: if ( ++p == pe ) goto _test_eof537; case 537: switch( (*p) ) { - case 77: goto st538; - case 109: goto st538; + case 84: goto st538; + case 116: goto st538; } - goto tr1274; + goto tr1299; st538: if ( ++p == pe ) goto _test_eof538; case 538: switch( (*p) ) { - case 69: goto st539; - case 101: goto st539; + case 82: goto st539; + case 114: goto st539; } - goto tr1274; + goto tr1299; st539: if ( ++p == pe ) goto _test_eof539; case 539: switch( (*p) ) { - case 65: goto st540; - case 97: goto st540; + case 32: goto tr1476; + case 59: goto tr1476; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1476; + } else if ( (*p) >= 9 ) + goto tr1476; + goto tr1299; st540: if ( ++p == pe ) goto _test_eof540; case 540: switch( (*p) ) { - case 32: goto tr1467; - case 59: goto tr1467; + case 69: goto st541; + case 80: goto st547; + case 82: goto st548; + case 84: goto st552; + case 101: goto st541; + case 112: goto st547; + case 114: goto st548; + case 116: goto st552; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1467; - } else if ( (*p) >= 9 ) - goto tr1467; - goto tr1274; + goto tr1299; st541: if ( ++p == pe ) goto _test_eof541; case 541: switch( (*p) ) { - case 65: goto st542; - case 97: goto st542; + case 83: goto st542; + case 115: goto st542; } - goto tr1274; + goto tr1299; st542: if ( ++p == pe ) goto _test_eof542; case 542: switch( (*p) ) { - case 32: goto tr1469; - case 59: goto tr1469; + case 73: goto st543; + case 105: goto st543; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1469; - } else if ( (*p) >= 9 ) - goto tr1469; - goto tr1274; + goto tr1299; st543: if ( ++p == pe ) goto _test_eof543; case 543: switch( (*p) ) { - case 70: goto st544; - case 102: goto st544; + case 78: goto st544; + case 110: goto st544; } - goto tr1274; + goto tr1299; st544: if ( ++p == pe ) goto _test_eof544; case 544: switch( (*p) ) { - case 32: goto tr1471; - case 59: goto tr1471; + case 70: goto st545; + case 102: goto st545; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1471; - } else if ( (*p) >= 9 ) - goto tr1471; - goto tr1274; + goto tr1299; st545: if ( ++p == pe ) goto _test_eof545; case 545: switch( (*p) ) { - case 86: goto st546; - case 118: goto st546; + case 79: goto st546; + case 111: goto st546; } - goto tr1274; + goto tr1299; st546: if ( ++p == pe ) goto _test_eof546; case 546: switch( (*p) ) { - case 32: goto tr1473; - case 59: goto tr1473; + case 32: goto tr1486; + case 59: goto tr1486; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1473; + goto tr1486; } else if ( (*p) >= 9 ) - goto tr1473; - goto tr1274; + goto tr1486; + goto tr1299; st547: if ( ++p == pe ) goto _test_eof547; case 547: switch( (*p) ) { - case 72: goto st548; - case 104: goto st548; + case 32: goto tr1487; + case 59: goto tr1487; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1487; + } else if ( (*p) >= 9 ) + goto tr1487; + goto tr1299; st548: if ( ++p == pe ) goto _test_eof548; case 548: switch( (*p) ) { - case 70: goto st549; - case 102: goto st549; + case 83: goto st549; + case 115: goto st549; } - goto tr1274; + goto tr1299; st549: if ( ++p == pe ) goto _test_eof549; case 549: switch( (*p) ) { - case 80: goto st550; - case 112: goto st550; + case 73: goto st550; + case 105: goto st550; } - goto tr1274; + goto tr1299; st550: if ( ++p == pe ) goto _test_eof550; case 550: switch( (*p) ) { - case 32: goto tr1477; - case 59: goto tr1477; + case 71: goto st551; + case 103: goto st551; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1477; - } else if ( (*p) >= 9 ) - goto tr1477; - goto tr1274; + goto tr1299; st551: if ( ++p == pe ) goto _test_eof551; case 551: switch( (*p) ) { - case 67: goto st552; - case 99: goto st552; + case 32: goto tr1491; + case 59: goto tr1491; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1491; + } else if ( (*p) >= 9 ) + goto tr1491; + goto tr1299; st552: if ( ++p == pe ) goto _test_eof552; case 552: switch( (*p) ) { - case 66: goto st553; - case 98: goto st553; + case 32: goto tr1492; + case 59: goto tr1492; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1492; + } else if ( (*p) >= 9 ) + goto tr1492; + goto tr1299; st553: if ( ++p == pe ) goto _test_eof553; case 553: switch( (*p) ) { - case 32: goto tr1480; - case 59: goto tr1480; + case 77: goto st554; + case 79: goto st559; + case 80: goto st561; + case 82: goto st563; + case 83: goto st565; + case 86: goto st569; + case 109: goto st554; + case 111: goto st559; + case 112: goto st561; + case 114: goto st563; + case 115: goto st565; + case 118: goto st569; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1480; - } else if ( (*p) >= 9 ) - goto tr1480; - goto tr1274; + goto tr1299; st554: if ( ++p == pe ) goto _test_eof554; case 554: switch( (*p) ) { - case 76: goto st555; - case 88: goto st558; - case 89: goto st560; - case 108: goto st555; - case 120: goto st558; - case 121: goto st560; + case 73: goto st555; + case 105: goto st555; } - goto tr1274; + goto tr1299; st555: if ( ++p == pe ) goto _test_eof555; case 555: switch( (*p) ) { - case 83: goto st556; - case 115: goto st556; + case 77: goto st556; + case 109: goto st556; } - goto tr1274; + goto tr1299; st556: if ( ++p == pe ) goto _test_eof556; case 556: switch( (*p) ) { - case 65: goto st557; - case 97: goto st557; + case 69: goto st557; + case 101: goto st557; } - goto tr1274; + goto tr1299; st557: if ( ++p == pe ) goto _test_eof557; case 557: switch( (*p) ) { - case 32: goto tr1486; - case 59: goto tr1486; + case 65: goto st558; + case 97: goto st558; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1486; - } else if ( (*p) >= 9 ) - goto tr1486; - goto tr1274; + goto tr1299; st558: if ( ++p == pe ) goto _test_eof558; case 558: switch( (*p) ) { - case 84: goto st559; - case 116: goto st559; + case 32: goto tr1503; + case 59: goto tr1503; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1503; + } else if ( (*p) >= 9 ) + goto tr1503; + goto tr1299; st559: if ( ++p == pe ) goto _test_eof559; case 559: switch( (*p) ) { - case 32: goto tr1488; - case 59: goto tr1488; + case 65: goto st560; + case 97: goto st560; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1488; - } else if ( (*p) >= 9 ) - goto tr1488; - goto tr1274; + goto tr1299; st560: if ( ++p == pe ) goto _test_eof560; case 560: switch( (*p) ) { - case 80: goto st561; - case 112: goto st561; + case 32: goto tr1505; + case 59: goto tr1505; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1505; + } else if ( (*p) >= 9 ) + goto tr1505; + goto tr1299; st561: if ( ++p == pe ) goto _test_eof561; case 561: switch( (*p) ) { - case 69: goto st562; - case 101: goto st562; + case 70: goto st562; + case 102: goto st562; } - goto tr1274; + goto tr1299; st562: if ( ++p == pe ) goto _test_eof562; case 562: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1492; - goto tr1491; -tr1492: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} - } - } - goto st563; -tr1494: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} - } + switch( (*p) ) { + case 32: goto tr1507; + case 59: goto tr1507; } - goto st563; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1507; + } else if ( (*p) >= 9 ) + goto tr1507; + goto tr1299; st563: if ( ++p == pe ) goto _test_eof563; case 563: switch( (*p) ) { - case 32: goto tr1493; - case 59: goto tr1493; + case 86: goto st564; + case 118: goto st564; } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr1493; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr1494; - } else - goto tr1493; - goto tr1491; + goto tr1299; st564: if ( ++p == pe ) goto _test_eof564; case 564: switch( (*p) ) { - case 82: goto st565; - case 114: goto st565; + case 32: goto tr1509; + case 59: goto tr1509; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1509; + } else if ( (*p) >= 9 ) + goto tr1509; + goto tr1299; st565: if ( ++p == pe ) goto _test_eof565; case 565: switch( (*p) ) { - case 73: goto st566; - case 105: goto st566; + case 72: goto st566; + case 104: goto st566; } - goto tr1274; + goto tr1299; st566: if ( ++p == pe ) goto _test_eof566; case 566: switch( (*p) ) { - case 32: goto tr1497; - case 59: goto tr1497; + case 70: goto st567; + case 102: goto st567; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1497; - } else if ( (*p) >= 9 ) - goto tr1497; - goto tr1274; + goto tr1299; st567: if ( ++p == pe ) goto _test_eof567; case 567: switch( (*p) ) { - case 65: goto st568; - case 97: goto st568; + case 80: goto st568; + case 112: goto st568; } - goto tr1274; + goto tr1299; st568: if ( ++p == pe ) goto _test_eof568; case 568: switch( (*p) ) { - case 76: goto st569; - case 108: goto st569; + case 32: goto tr1513; + case 59: goto tr1513; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1513; + } else if ( (*p) >= 9 ) + goto tr1513; + goto tr1299; st569: if ( ++p == pe ) goto _test_eof569; case 569: switch( (*p) ) { - case 76: goto st570; - case 108: goto st570; + case 67: goto st570; + case 99: goto st570; } - goto tr1274; + goto tr1299; st570: if ( ++p == pe ) goto _test_eof570; case 570: switch( (*p) ) { - case 69: goto st571; - case 101: goto st571; + case 66: goto st571; + case 98: goto st571; } - goto tr1274; + goto tr1299; st571: if ( ++p == pe ) goto _test_eof571; case 571: switch( (*p) ) { - case 84: goto st572; - case 116: goto st572; + case 32: goto tr1516; + case 59: goto tr1516; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1516; + } else if ( (*p) >= 9 ) + goto tr1516; + goto tr1299; st572: if ( ++p == pe ) goto _test_eof572; case 572: switch( (*p) ) { - case 32: goto tr1503; - case 59: goto tr1503; + case 76: goto st573; + case 88: goto st576; + case 89: goto st578; + case 108: goto st573; + case 120: goto st576; + case 121: goto st578; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1503; - } else if ( (*p) >= 9 ) - goto tr1503; - goto tr1274; + goto tr1299; st573: if ( ++p == pe ) goto _test_eof573; case 573: switch( (*p) ) { - case 79: goto st574; - case 111: goto st574; + case 83: goto st574; + case 115: goto st574; } - goto tr1274; + goto tr1299; st574: if ( ++p == pe ) goto _test_eof574; case 574: switch( (*p) ) { - case 78: goto st575; - case 110: goto st575; + case 65: goto st575; + case 97: goto st575; } - goto tr1274; + goto tr1299; st575: if ( ++p == pe ) goto _test_eof575; case 575: switch( (*p) ) { - case 69: goto st576; - case 101: goto st576; + case 32: goto tr1522; + case 59: goto tr1522; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1522; + } else if ( (*p) >= 9 ) + goto tr1522; + goto tr1299; st576: if ( ++p == pe ) goto _test_eof576; case 576: switch( (*p) ) { - case 77: goto st577; - case 109: goto st577; + case 84: goto st577; + case 116: goto st577; } - goto tr1274; + goto tr1299; st577: if ( ++p == pe ) goto _test_eof577; case 577: switch( (*p) ) { - case 68: goto st578; - case 100: goto st578; + case 32: goto tr1524; + case 59: goto tr1524; } - goto tr1274; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1524; + } else if ( (*p) >= 9 ) + goto tr1524; + goto tr1299; st578: if ( ++p == pe ) goto _test_eof578; case 578: switch( (*p) ) { - case 32: goto tr1509; - case 59: goto tr1509; + case 80: goto st579; + case 112: goto st579; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr1509; - } else if ( (*p) >= 9 ) - goto tr1509; - goto tr1274; + goto tr1299; st579: if ( ++p == pe ) goto _test_eof579; case 579: + switch( (*p) ) { + case 69: goto st580; + case 101: goto st580; + } + goto tr1299; +st580: + if ( ++p == pe ) + goto _test_eof580; +case 580: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr1528; + goto tr1527; +tr1528: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} + } + } + goto st581; +tr1530: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} + } + } + goto st581; +st581: + if ( ++p == pe ) + goto _test_eof581; +case 581: + switch( (*p) ) { + case 32: goto tr1529; + case 59: goto tr1529; + } + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr1529; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr1530; + } else + goto tr1529; + goto tr1527; +st582: + if ( ++p == pe ) + goto _test_eof582; +case 582: + switch( (*p) ) { + case 82: goto st583; + case 114: goto st583; + } + goto tr1299; +st583: + if ( ++p == pe ) + goto _test_eof583; +case 583: + switch( (*p) ) { + case 73: goto st584; + case 105: goto st584; + } + goto tr1299; +st584: + if ( ++p == pe ) + goto _test_eof584; +case 584: + switch( (*p) ) { + case 32: goto tr1533; + case 59: goto tr1533; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1533; + } else if ( (*p) >= 9 ) + goto tr1533; + goto tr1299; +st585: + if ( ++p == pe ) + goto _test_eof585; +case 585: + switch( (*p) ) { + case 65: goto st586; + case 97: goto st586; + } + goto tr1299; +st586: + if ( ++p == pe ) + goto _test_eof586; +case 586: + switch( (*p) ) { + case 76: goto st587; + case 108: goto st587; + } + goto tr1299; +st587: + if ( ++p == pe ) + goto _test_eof587; +case 587: + switch( (*p) ) { + case 76: goto st588; + case 108: goto st588; + } + goto tr1299; +st588: + if ( ++p == pe ) + goto _test_eof588; +case 588: + switch( (*p) ) { + case 69: goto st589; + case 101: goto st589; + } + goto tr1299; +st589: + if ( ++p == pe ) + goto _test_eof589; +case 589: + switch( (*p) ) { + case 84: goto st590; + case 116: goto st590; + } + goto tr1299; +st590: + if ( ++p == pe ) + goto _test_eof590; +case 590: + switch( (*p) ) { + case 32: goto tr1539; + case 59: goto tr1539; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1539; + } else if ( (*p) >= 9 ) + goto tr1539; + goto tr1299; +st591: + if ( ++p == pe ) + goto _test_eof591; +case 591: + switch( (*p) ) { + case 79: goto st592; + case 111: goto st592; + } + goto tr1299; +st592: + if ( ++p == pe ) + goto _test_eof592; +case 592: + switch( (*p) ) { + case 78: goto st593; + case 110: goto st593; + } + goto tr1299; +st593: + if ( ++p == pe ) + goto _test_eof593; +case 593: + switch( (*p) ) { + case 69: goto st594; + case 101: goto st594; + } + goto tr1299; +st594: + if ( ++p == pe ) + goto _test_eof594; +case 594: + switch( (*p) ) { + case 77: goto st595; + case 109: goto st595; + } + goto tr1299; +st595: + if ( ++p == pe ) + goto _test_eof595; +case 595: + switch( (*p) ) { + case 68: goto st596; + case 100: goto st596; + } + goto tr1299; +st596: + if ( ++p == pe ) + goto _test_eof596; +case 596: + switch( (*p) ) { + case 32: goto tr1545; + case 59: goto tr1545; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr1545; + } else if ( (*p) >= 9 ) + goto tr1545; + goto tr1299; +st597: + if ( ++p == pe ) + goto _test_eof597; +case 597: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -51344,42 +53197,42 @@ case 579: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1511; - case 32: goto tr1511; - case 40: goto tr1512; - case 41: goto tr1513; - case 3082: goto tr1514; - case 3131: goto tr1515; - case 3338: goto tr1516; - case 3387: goto tr1516; - case 3594: goto tr1517; - case 3643: goto tr1518; + case 9: goto tr1547; + case 32: goto tr1547; + case 40: goto tr1548; + case 41: goto tr1549; + case 3082: goto tr1550; + case 3131: goto tr1551; + case 3338: goto tr1552; + case 3387: goto tr1552; + case 3594: goto tr1553; + case 3643: goto tr1554; } - goto tr1510; -tr1520: + goto tr1546; +tr1556: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1521: + goto st598; +tr1557: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1540: + goto st598; +tr1576: { s->line_counter++; } - goto st580; -tr1568: + goto st598; +tr1604: { s->buffer[s->buffer_length++] = 0; @@ -51389,21 +53242,21 @@ tr1568: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 580; goto _out;} + {p++; cs = 598; goto _out;} } } } { s->line_counter++; } - goto st580; -tr1511: + goto st598; +tr1547: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } - goto st580; -tr1512: + goto st598; +tr1548: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -51411,12 +53264,12 @@ tr1512: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1513: + goto st598; +tr1549: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -51424,12 +53277,12 @@ tr1513: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1514: + goto st598; +tr1550: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -51437,1576 +53290,1634 @@ tr1514: { s->line_counter++; } - goto st580; -tr1545: + goto st598; +tr1581: { window_add_bit(KNOT_RRTYPE_A, s); } - goto st580; -tr1546: + goto st598; +tr1582: { window_add_bit(KNOT_RRTYPE_A, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1547: + goto st598; +tr1583: { window_add_bit(KNOT_RRTYPE_A, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1552: + goto st598; +tr1588: { window_add_bit(KNOT_RRTYPE_A, s); } { s->line_counter++; } - goto st580; -tr1559: + goto st598; +tr1595: { window_add_bit(KNOT_RRTYPE_AAAA, s); } - goto st580; -tr1560: + goto st598; +tr1596: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1561: + goto st598; +tr1597: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1562: + goto st598; +tr1598: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->line_counter++; } - goto st580; -tr1575: + goto st598; +tr1611: { window_add_bit(KNOT_RRTYPE_CAA, s); } - goto st580; -tr1576: + goto st598; +tr1612: { window_add_bit(KNOT_RRTYPE_CAA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1577: + goto st598; +tr1613: { window_add_bit(KNOT_RRTYPE_CAA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1578: + goto st598; +tr1614: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->line_counter++; } - goto st580; -tr1589: + goto st598; +tr1625: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } - goto st580; -tr1590: + goto st598; +tr1626: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1591: + goto st598; +tr1627: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1592: + goto st598; +tr1628: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->line_counter++; } - goto st580; -tr1597: + goto st598; +tr1633: { window_add_bit(KNOT_RRTYPE_CDS, s); } - goto st580; -tr1598: + goto st598; +tr1634: { window_add_bit(KNOT_RRTYPE_CDS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1599: + goto st598; +tr1635: { window_add_bit(KNOT_RRTYPE_CDS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1600: + goto st598; +tr1636: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->line_counter++; } - goto st580; -tr1607: + goto st598; +tr1643: { window_add_bit(KNOT_RRTYPE_CERT, s); } - goto st580; -tr1608: + goto st598; +tr1644: { window_add_bit(KNOT_RRTYPE_CERT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1609: + goto st598; +tr1645: { window_add_bit(KNOT_RRTYPE_CERT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1610: + goto st598; +tr1646: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->line_counter++; } - goto st580; -tr1618: + goto st598; +tr1654: { window_add_bit(KNOT_RRTYPE_CNAME, s); } - goto st580; -tr1619: + goto st598; +tr1655: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1620: + goto st598; +tr1656: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1621: + goto st598; +tr1657: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->line_counter++; } - goto st580; -tr1629: + goto st598; +tr1665: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } - goto st580; -tr1630: + goto st598; +tr1666: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1631: + goto st598; +tr1667: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1632: + goto st598; +tr1668: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->line_counter++; } - goto st580; -tr1643: + goto st598; +tr1680: + { window_add_bit(KNOT_RRTYPE_DELEG, s); } + goto st598; +tr1681: + { window_add_bit(KNOT_RRTYPE_DELEG, s); } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st598; +tr1682: + { window_add_bit(KNOT_RRTYPE_DELEG, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st598; +tr1684: + { window_add_bit(KNOT_RRTYPE_DELEG, s); } + { + s->line_counter++; + } + goto st598; +tr1693: + { window_add_bit(KNOT_RRTYPE_DELEGPARAM, s); } + goto st598; +tr1694: + { window_add_bit(KNOT_RRTYPE_DELEGPARAM, s); } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st598; +tr1695: + { window_add_bit(KNOT_RRTYPE_DELEGPARAM, s); } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st598; +tr1696: + { window_add_bit(KNOT_RRTYPE_DELEGPARAM, s); } + { + s->line_counter++; + } + goto st598; +tr1704: { window_add_bit(KNOT_RRTYPE_DHCID, s); } - goto st580; -tr1644: + goto st598; +tr1705: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1645: + goto st598; +tr1706: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1646: + goto st598; +tr1707: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->line_counter++; } - goto st580; -tr1655: + goto st598; +tr1716: { window_add_bit(KNOT_RRTYPE_DNAME, s); } - goto st580; -tr1656: + goto st598; +tr1717: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1657: + goto st598; +tr1718: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1658: + goto st598; +tr1719: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->line_counter++; } - goto st580; -tr1666: + goto st598; +tr1727: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } - goto st580; -tr1667: + goto st598; +tr1728: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1668: + goto st598; +tr1729: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1669: + goto st598; +tr1730: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->line_counter++; } - goto st580; -tr1674: + goto st598; +tr1735: { window_add_bit(KNOT_RRTYPE_DS, s); } - goto st580; -tr1675: + goto st598; +tr1736: { window_add_bit(KNOT_RRTYPE_DS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1676: + goto st598; +tr1737: { window_add_bit(KNOT_RRTYPE_DS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1678: + goto st598; +tr1739: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->line_counter++; } - goto st580; -tr1685: + goto st598; +tr1746: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } - goto st580; -tr1686: + goto st598; +tr1747: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1687: + goto st598; +tr1748: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1688: + goto st598; +tr1749: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->line_counter++; } - goto st580; -tr1698: + goto st598; +tr1759: { window_add_bit(KNOT_RRTYPE_EUI48, s); } - goto st580; -tr1699: + goto st598; +tr1760: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1700: + goto st598; +tr1761: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1701: + goto st598; +tr1762: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->line_counter++; } - goto st580; -tr1707: + goto st598; +tr1768: { window_add_bit(KNOT_RRTYPE_EUI64, s); } - goto st580; -tr1708: + goto st598; +tr1769: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1709: + goto st598; +tr1770: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1710: + goto st598; +tr1771: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->line_counter++; } - goto st580; -tr1720: + goto st598; +tr1781: { window_add_bit(KNOT_RRTYPE_HINFO, s); } - goto st580; -tr1721: + goto st598; +tr1782: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1722: + goto st598; +tr1783: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1723: + goto st598; +tr1784: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->line_counter++; } - goto st580; -tr1731: + goto st598; +tr1792: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } - goto st580; -tr1732: + goto st598; +tr1793: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1733: + goto st598; +tr1794: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1734: + goto st598; +tr1795: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->line_counter++; } - goto st580; -tr1746: + goto st598; +tr1807: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } - goto st580; -tr1747: + goto st598; +tr1808: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1748: + goto st598; +tr1809: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1749: + goto st598; +tr1810: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->line_counter++; } - goto st580; -tr1757: + goto st598; +tr1818: { window_add_bit(KNOT_RRTYPE_KEY, s); } - goto st580; -tr1758: + goto st598; +tr1819: { window_add_bit(KNOT_RRTYPE_KEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1759: + goto st598; +tr1820: { window_add_bit(KNOT_RRTYPE_KEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1760: + goto st598; +tr1821: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->line_counter++; } - goto st580; -tr1765: + goto st598; +tr1826: { window_add_bit(KNOT_RRTYPE_KX, s); } - goto st580; -tr1766: + goto st598; +tr1827: { window_add_bit(KNOT_RRTYPE_KX, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1767: + goto st598; +tr1828: { window_add_bit(KNOT_RRTYPE_KX, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1768: + goto st598; +tr1829: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->line_counter++; } - goto st580; -tr1778: + goto st598; +tr1839: { window_add_bit(KNOT_RRTYPE_L32, s); } - goto st580; -tr1779: + goto st598; +tr1840: { window_add_bit(KNOT_RRTYPE_L32, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1780: + goto st598; +tr1841: { window_add_bit(KNOT_RRTYPE_L32, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1781: + goto st598; +tr1842: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->line_counter++; } - goto st580; -tr1787: + goto st598; +tr1848: { window_add_bit(KNOT_RRTYPE_L64, s); } - goto st580; -tr1788: + goto st598; +tr1849: { window_add_bit(KNOT_RRTYPE_L64, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1789: + goto st598; +tr1850: { window_add_bit(KNOT_RRTYPE_L64, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1790: + goto st598; +tr1851: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->line_counter++; } - goto st580; -tr1796: + goto st598; +tr1857: { window_add_bit(KNOT_RRTYPE_LOC, s); } - goto st580; -tr1797: + goto st598; +tr1858: { window_add_bit(KNOT_RRTYPE_LOC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1798: + goto st598; +tr1859: { window_add_bit(KNOT_RRTYPE_LOC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1799: + goto st598; +tr1860: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->line_counter++; } - goto st580; -tr1804: + goto st598; +tr1865: { window_add_bit(KNOT_RRTYPE_LP, s); } - goto st580; -tr1805: + goto st598; +tr1866: { window_add_bit(KNOT_RRTYPE_LP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1806: + goto st598; +tr1867: { window_add_bit(KNOT_RRTYPE_LP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1807: + goto st598; +tr1868: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->line_counter++; } - goto st580; -tr1817: + goto st598; +tr1878: { window_add_bit(KNOT_RRTYPE_MINFO, s); } - goto st580; -tr1818: + goto st598; +tr1879: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1819: + goto st598; +tr1880: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1820: + goto st598; +tr1881: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->line_counter++; } - goto st580; -tr1825: + goto st598; +tr1886: { window_add_bit(KNOT_RRTYPE_MX, s); } - goto st580; -tr1826: + goto st598; +tr1887: { window_add_bit(KNOT_RRTYPE_MX, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1827: + goto st598; +tr1888: { window_add_bit(KNOT_RRTYPE_MX, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1828: + goto st598; +tr1889: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->line_counter++; } - goto st580; -tr1839: + goto st598; +tr1900: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } - goto st580; -tr1840: + goto st598; +tr1901: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1841: + goto st598; +tr1902: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1842: + goto st598; +tr1903: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->line_counter++; } - goto st580; -tr1848: + goto st598; +tr1909: { window_add_bit(KNOT_RRTYPE_NID, s); } - goto st580; -tr1849: + goto st598; +tr1910: { window_add_bit(KNOT_RRTYPE_NID, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1850: + goto st598; +tr1911: { window_add_bit(KNOT_RRTYPE_NID, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1851: + goto st598; +tr1912: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->line_counter++; } - goto st580; -tr1856: + goto st598; +tr1917: { window_add_bit(KNOT_RRTYPE_NS, s); } - goto st580; -tr1857: + goto st598; +tr1918: { window_add_bit(KNOT_RRTYPE_NS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1858: + goto st598; +tr1919: { window_add_bit(KNOT_RRTYPE_NS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1860: + goto st598; +tr1921: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->line_counter++; } - goto st580; -tr1866: + goto st598; +tr1927: { window_add_bit(KNOT_RRTYPE_NSEC, s); } - goto st580; -tr1867: + goto st598; +tr1928: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1868: + goto st598; +tr1929: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1870: + goto st598; +tr1931: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->line_counter++; } - goto st580; -tr1875: + goto st598; +tr1936: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } - goto st580; -tr1876: + goto st598; +tr1937: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1877: + goto st598; +tr1938: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1879: + goto st598; +tr1940: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->line_counter++; } - goto st580; -tr1888: + goto st598; +tr1949: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } - goto st580; -tr1889: + goto st598; +tr1950: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1890: + goto st598; +tr1951: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1891: + goto st598; +tr1952: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->line_counter++; } - goto st580; -tr1905: + goto st598; +tr1966: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } - goto st580; -tr1906: + goto st598; +tr1967: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1907: + goto st598; +tr1968: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1908: + goto st598; +tr1969: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->line_counter++; } - goto st580; -tr1915: + goto st598; +tr1976: { window_add_bit(KNOT_RRTYPE_PTR, s); } - goto st580; -tr1916: + goto st598; +tr1977: { window_add_bit(KNOT_RRTYPE_PTR, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1917: + goto st598; +tr1978: { window_add_bit(KNOT_RRTYPE_PTR, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1918: + goto st598; +tr1979: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->line_counter++; } - goto st580; -tr1932: + goto st598; +tr1993: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } - goto st580; -tr1933: + goto st598; +tr1994: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1934: + goto st598; +tr1995: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1935: + goto st598; +tr1996: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { s->line_counter++; } - goto st580; -tr1940: + goto st598; +tr2001: { window_add_bit(KNOT_RRTYPE_RP, s); } - goto st580; -tr1941: + goto st598; +tr2002: { window_add_bit(KNOT_RRTYPE_RP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1942: + goto st598; +tr2003: { window_add_bit(KNOT_RRTYPE_RP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1943: + goto st598; +tr2004: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->line_counter++; } - goto st580; -tr1951: + goto st598; +tr2012: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } - goto st580; -tr1952: + goto st598; +tr2013: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1953: + goto st598; +tr2014: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1954: + goto st598; +tr2015: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->line_counter++; } - goto st580; -tr1959: + goto st598; +tr2020: { window_add_bit(KNOT_RRTYPE_RT, s); } - goto st580; -tr1960: + goto st598; +tr2021: { window_add_bit(KNOT_RRTYPE_RT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1961: + goto st598; +tr2022: { window_add_bit(KNOT_RRTYPE_RT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1962: + goto st598; +tr2023: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->line_counter++; } - goto st580; -tr1977: + goto st598; +tr2038: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } - goto st580; -tr1978: + goto st598; +tr2039: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1979: + goto st598; +tr2040: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1980: + goto st598; +tr2041: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->line_counter++; } - goto st580; -tr1986: + goto st598; +tr2047: { window_add_bit(KNOT_RRTYPE_SOA, s); } - goto st580; -tr1987: + goto st598; +tr2048: { window_add_bit(KNOT_RRTYPE_SOA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1988: + goto st598; +tr2049: { window_add_bit(KNOT_RRTYPE_SOA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1989: + goto st598; +tr2050: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->line_counter++; } - goto st580; -tr1995: + goto st598; +tr2056: { window_add_bit(KNOT_RRTYPE_SPF, s); } - goto st580; -tr1996: + goto st598; +tr2057: { window_add_bit(KNOT_RRTYPE_SPF, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr1997: + goto st598; +tr2058: { window_add_bit(KNOT_RRTYPE_SPF, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr1998: + goto st598; +tr2059: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->line_counter++; } - goto st580; -tr2004: + goto st598; +tr2065: { window_add_bit(KNOT_RRTYPE_SRV, s); } - goto st580; -tr2005: + goto st598; +tr2066: { window_add_bit(KNOT_RRTYPE_SRV, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2006: + goto st598; +tr2067: { window_add_bit(KNOT_RRTYPE_SRV, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2007: + goto st598; +tr2068: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->line_counter++; } - goto st580; -tr2015: + goto st598; +tr2076: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } - goto st580; -tr2016: + goto st598; +tr2077: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2017: + goto st598; +tr2078: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2018: + goto st598; +tr2079: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->line_counter++; } - goto st580; -tr2025: + goto st598; +tr2086: { window_add_bit(KNOT_RRTYPE_SVCB, s); } - goto st580; -tr2026: + goto st598; +tr2087: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2027: + goto st598; +tr2088: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2028: + goto st598; +tr2089: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->line_counter++; } - goto st580; -tr2038: + goto st598; +tr2099: { window_add_bit(KNOT_RRTYPE_TLSA, s); } - goto st580; -tr2039: + goto st598; +tr2100: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2040: + goto st598; +tr2101: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2041: + goto st598; +tr2102: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->line_counter++; } - goto st580; -tr2047: + goto st598; +tr2108: { window_add_bit(KNOT_RRTYPE_TXT, s); } - goto st580; -tr2048: + goto st598; +tr2109: { window_add_bit(KNOT_RRTYPE_TXT, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2049: + goto st598; +tr2110: { window_add_bit(KNOT_RRTYPE_TXT, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2050: + goto st598; +tr2111: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->line_counter++; } - goto st580; -tr2058: + goto st598; +tr2119: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st580; -tr2059: + goto st598; +tr2120: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2060: + goto st598; +tr2121: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2062: + goto st598; +tr2123: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st580; -tr2069: + goto st598; +tr2130: { window_add_bit(KNOT_RRTYPE_URI, s); } - goto st580; -tr2070: + goto st598; +tr2131: { window_add_bit(KNOT_RRTYPE_URI, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2071: + goto st598; +tr2132: { window_add_bit(KNOT_RRTYPE_URI, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2072: + goto st598; +tr2133: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->line_counter++; } - goto st580; -tr2082: + goto st598; +tr2143: { window_add_bit(KNOT_RRTYPE_WALLET, s); } - goto st580; -tr2083: + goto st598; +tr2144: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2084: + goto st598; +tr2145: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2085: + goto st598; +tr2146: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->line_counter++; } - goto st580; -tr2095: + goto st598; +tr2156: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } - goto st580; -tr2096: + goto st598; +tr2157: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2097: + goto st598; +tr2158: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2098: + goto st598; +tr2159: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->line_counter++; } - goto st580; -tr2106: + goto st598; +tr2167: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - goto st580; -tr2107: + goto st598; +tr2168: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2108: + goto st598; +tr2169: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2109: + goto st598; +tr2170: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->line_counter++; } - goto st580; -tr2117: + goto st598; +tr2178: { window_add_bit(KNOT_RRTYPE_ALIAS, s); } - goto st580; -tr2118: + goto st598; +tr2179: { window_add_bit(KNOT_RRTYPE_ALIAS, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2119: + goto st598; +tr2180: { window_add_bit(KNOT_RRTYPE_ALIAS, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2120: + goto st598; +tr2181: { window_add_bit(KNOT_RRTYPE_ALIAS, s); } { s->line_counter++; } - goto st580; -tr2126: + goto st598; +tr2187: { window_add_bit(KNOT_RRTYPE_APL, s); } - goto st580; -tr2127: + goto st598; +tr2188: { window_add_bit(KNOT_RRTYPE_APL, s); } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st580; -tr2128: + goto st598; +tr2189: { window_add_bit(KNOT_RRTYPE_APL, s); } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st580; -tr2129: + goto st598; +tr2190: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->line_counter++; } - goto st580; -st580: + goto st598; +st598: if ( ++p == pe ) - goto _test_eof580; -case 580: + goto _test_eof598; +case 598: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -53024,58 +54935,58 @@ case 580: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st580; - case 32: goto st580; - case 40: goto tr1520; - case 41: goto tr1521; - case 65: goto st581; - case 67: goto st586; - case 68: goto st607; - case 69: goto st624; - case 72: goto st631; - case 73: goto st640; - case 75: goto st648; - case 76: goto st652; - case 77: goto st660; - case 78: goto st666; - case 79: goto st682; - case 80: goto st692; - case 82: goto st695; - case 83: goto st708; - case 84: goto st727; - case 85: goto st737; - case 87: goto st740; - case 90: goto st746; - case 97: goto st581; - case 99: goto st586; - case 100: goto st607; - case 101: goto st624; - case 104: goto st631; - case 105: goto st640; - case 107: goto st648; - case 108: goto st652; - case 109: goto st660; - case 110: goto st666; - case 111: goto st682; - case 112: goto st692; - case 114: goto st695; - case 115: goto st708; - case 116: goto st727; - case 117: goto st737; - case 119: goto st740; - case 122: goto st746; - case 3082: goto tr1540; - case 3131: goto tr1541; - case 3338: goto tr1542; - case 3387: goto tr1542; - case 3594: goto tr1543; - case 3643: goto tr1544; - } - goto tr1510; -st581: + case 9: goto st598; + case 32: goto st598; + case 40: goto tr1556; + case 41: goto tr1557; + case 65: goto st599; + case 67: goto st604; + case 68: goto st625; + case 69: goto st651; + case 72: goto st658; + case 73: goto st667; + case 75: goto st675; + case 76: goto st679; + case 77: goto st687; + case 78: goto st693; + case 79: goto st709; + case 80: goto st719; + case 82: goto st722; + case 83: goto st735; + case 84: goto st754; + case 85: goto st764; + case 87: goto st767; + case 90: goto st773; + case 97: goto st599; + case 99: goto st604; + case 100: goto st625; + case 101: goto st651; + case 104: goto st658; + case 105: goto st667; + case 107: goto st675; + case 108: goto st679; + case 109: goto st687; + case 110: goto st693; + case 111: goto st709; + case 112: goto st719; + case 114: goto st722; + case 115: goto st735; + case 116: goto st754; + case 117: goto st764; + case 119: goto st767; + case 122: goto st773; + case 3082: goto tr1576; + case 3131: goto tr1577; + case 3338: goto tr1578; + case 3387: goto tr1578; + case 3594: goto tr1579; + case 3643: goto tr1580; + } + goto tr1546; +st599: if ( ++p == pe ) - goto _test_eof581; -case 581: + goto _test_eof599; +case 599: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -53093,48 +55004,48 @@ case 581: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1545; - case 32: goto tr1545; - case 40: goto tr1546; - case 41: goto tr1547; - case 65: goto st582; - case 70: goto st752; - case 76: goto st756; - case 80: goto st760; - case 97: goto st582; - case 102: goto st752; - case 108: goto st756; - case 112: goto st760; - case 3082: goto tr1552; - case 3131: goto tr1553; - case 3338: goto tr1554; - case 3387: goto tr1554; - case 3594: goto tr1555; - case 3643: goto tr1556; - } - goto tr1510; -st582: + case 9: goto tr1581; + case 32: goto tr1581; + case 40: goto tr1582; + case 41: goto tr1583; + case 65: goto st600; + case 70: goto st779; + case 76: goto st783; + case 80: goto st787; + case 97: goto st600; + case 102: goto st779; + case 108: goto st783; + case 112: goto st787; + case 3082: goto tr1588; + case 3131: goto tr1589; + case 3338: goto tr1590; + case 3387: goto tr1590; + case 3594: goto tr1591; + case 3643: goto tr1592; + } + goto tr1546; +st600: if ( ++p == pe ) - goto _test_eof582; -case 582: + goto _test_eof600; +case 600: switch( (*p) ) { - case 65: goto st583; - case 97: goto st583; + case 65: goto st601; + case 97: goto st601; } - goto tr1510; -st583: + goto tr1546; +st601: if ( ++p == pe ) - goto _test_eof583; -case 583: + goto _test_eof601; +case 601: switch( (*p) ) { - case 65: goto st584; - case 97: goto st584; + case 65: goto st602; + case 97: goto st602; } - goto tr1510; -st584: + goto tr1546; +st602: if ( ++p == pe ) - goto _test_eof584; -case 584: + goto _test_eof602; +case 602: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -53152,31 +55063,31 @@ case 584: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1559; - case 32: goto tr1559; - case 40: goto tr1560; - case 41: goto tr1561; - case 3082: goto tr1562; - case 3131: goto tr1563; - case 3338: goto tr1564; - case 3387: goto tr1564; - case 3594: goto tr1565; - case 3643: goto tr1566; + case 9: goto tr1595; + case 32: goto tr1595; + case 40: goto tr1596; + case 41: goto tr1597; + case 3082: goto tr1598; + case 3131: goto tr1599; + case 3338: goto tr1600; + case 3387: goto tr1600; + case 3594: goto tr1601; + case 3643: goto tr1602; } - goto tr1510; -tr1541: + goto tr1546; +tr1577: { s->buffer_length = 0; } - goto st585; -tr1567: + goto st603; +tr1603: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st585; -tr1515: + goto st603; +tr1551: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -53184,336 +55095,348 @@ tr1515: { s->buffer_length = 0; } - goto st585; -tr1553: + goto st603; +tr1589: { window_add_bit(KNOT_RRTYPE_A, s); } { s->buffer_length = 0; } - goto st585; -tr1563: + goto st603; +tr1599: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->buffer_length = 0; } - goto st585; -tr1579: + goto st603; +tr1615: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->buffer_length = 0; } - goto st585; -tr1593: + goto st603; +tr1629: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->buffer_length = 0; } - goto st585; -tr1601: + goto st603; +tr1637: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->buffer_length = 0; } - goto st585; -tr1611: + goto st603; +tr1647: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->buffer_length = 0; } - goto st585; -tr1622: + goto st603; +tr1658: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->buffer_length = 0; } - goto st585; -tr1633: + goto st603; +tr1669: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->buffer_length = 0; } - goto st585; -tr1647: + goto st603; +tr1685: + { window_add_bit(KNOT_RRTYPE_DELEG, s); } + { + s->buffer_length = 0; + } + goto st603; +tr1697: + { window_add_bit(KNOT_RRTYPE_DELEGPARAM, s); } + { + s->buffer_length = 0; + } + goto st603; +tr1708: { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->buffer_length = 0; } - goto st585; -tr1659: + goto st603; +tr1720: { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->buffer_length = 0; } - goto st585; -tr1670: + goto st603; +tr1731: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->buffer_length = 0; } - goto st585; -tr1679: + goto st603; +tr1740: { window_add_bit(KNOT_RRTYPE_DS, s); } { s->buffer_length = 0; } - goto st585; -tr1689: + goto st603; +tr1750: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->buffer_length = 0; } - goto st585; -tr1702: + goto st603; +tr1763: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->buffer_length = 0; } - goto st585; -tr1711: + goto st603; +tr1772: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->buffer_length = 0; } - goto st585; -tr1724: + goto st603; +tr1785: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->buffer_length = 0; } - goto st585; -tr1735: + goto st603; +tr1796: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->buffer_length = 0; } - goto st585; -tr1750: + goto st603; +tr1811: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->buffer_length = 0; } - goto st585; -tr1761: + goto st603; +tr1822: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->buffer_length = 0; } - goto st585; -tr1769: + goto st603; +tr1830: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->buffer_length = 0; } - goto st585; -tr1782: + goto st603; +tr1843: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->buffer_length = 0; } - goto st585; -tr1791: + goto st603; +tr1852: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->buffer_length = 0; } - goto st585; -tr1800: + goto st603; +tr1861: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->buffer_length = 0; } - goto st585; -tr1808: + goto st603; +tr1869: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->buffer_length = 0; } - goto st585; -tr1821: + goto st603; +tr1882: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->buffer_length = 0; } - goto st585; -tr1829: + goto st603; +tr1890: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->buffer_length = 0; } - goto st585; -tr1843: + goto st603; +tr1904: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->buffer_length = 0; } - goto st585; -tr1852: + goto st603; +tr1913: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->buffer_length = 0; } - goto st585; -tr1861: + goto st603; +tr1922: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->buffer_length = 0; } - goto st585; -tr1871: + goto st603; +tr1932: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->buffer_length = 0; } - goto st585; -tr1880: + goto st603; +tr1941: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->buffer_length = 0; } - goto st585; -tr1892: + goto st603; +tr1953: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->buffer_length = 0; } - goto st585; -tr1909: + goto st603; +tr1970: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->buffer_length = 0; } - goto st585; -tr1919: + goto st603; +tr1980: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->buffer_length = 0; } - goto st585; -tr1936: + goto st603; +tr1997: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { s->buffer_length = 0; } - goto st585; -tr1944: + goto st603; +tr2005: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->buffer_length = 0; } - goto st585; -tr1955: + goto st603; +tr2016: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->buffer_length = 0; } - goto st585; -tr1963: + goto st603; +tr2024: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->buffer_length = 0; } - goto st585; -tr1981: + goto st603; +tr2042: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->buffer_length = 0; } - goto st585; -tr1990: + goto st603; +tr2051: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->buffer_length = 0; } - goto st585; -tr1999: + goto st603; +tr2060: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->buffer_length = 0; } - goto st585; -tr2008: + goto st603; +tr2069: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->buffer_length = 0; } - goto st585; -tr2019: + goto st603; +tr2080: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->buffer_length = 0; } - goto st585; -tr2029: + goto st603; +tr2090: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->buffer_length = 0; } - goto st585; -tr2042: + goto st603; +tr2103: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->buffer_length = 0; } - goto st585; -tr2051: + goto st603; +tr2112: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->buffer_length = 0; } - goto st585; -tr2063: + goto st603; +tr2124: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st585; -tr2073: + goto st603; +tr2134: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->buffer_length = 0; } - goto st585; -tr2086: + goto st603; +tr2147: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->buffer_length = 0; } - goto st585; -tr2099: + goto st603; +tr2160: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->buffer_length = 0; } - goto st585; -tr2110: + goto st603; +tr2171: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->buffer_length = 0; } - goto st585; -tr2121: + goto st603; +tr2182: { window_add_bit(KNOT_RRTYPE_ALIAS, s); } { s->buffer_length = 0; } - goto st585; -tr2130: + goto st603; +tr2191: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->buffer_length = 0; } - goto st585; -st585: + goto st603; +st603: if ( ++p == pe ) - goto _test_eof585; -case 585: + goto _test_eof603; +case 603: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -53533,11 +55456,11 @@ case 585: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1568; + goto tr1604; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1567; - goto tr1510; -tr1516: + goto tr1603; + goto tr1546; +tr1552: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -53560,7 +55483,7 @@ tr1516: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53568,8 +55491,8 @@ tr1516: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1542: + goto st1674; +tr1578: { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -53588,7 +55511,7 @@ tr1542: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53596,8 +55519,8 @@ tr1542: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1554: + goto st1674; +tr1590: { window_add_bit(KNOT_RRTYPE_A, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53617,7 +55540,7 @@ tr1554: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53625,8 +55548,8 @@ tr1554: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1564: + goto st1674; +tr1600: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53646,7 +55569,7 @@ tr1564: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53654,8 +55577,8 @@ tr1564: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1580: + goto st1674; +tr1616: { window_add_bit(KNOT_RRTYPE_CAA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53675,7 +55598,7 @@ tr1580: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53683,8 +55606,8 @@ tr1580: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1594: + goto st1674; +tr1630: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53704,7 +55627,7 @@ tr1594: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53712,8 +55635,8 @@ tr1594: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1602: + goto st1674; +tr1638: { window_add_bit(KNOT_RRTYPE_CDS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53733,7 +55656,7 @@ tr1602: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53741,8 +55664,8 @@ tr1602: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1612: + goto st1674; +tr1648: { window_add_bit(KNOT_RRTYPE_CERT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53762,7 +55685,7 @@ tr1612: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53770,8 +55693,8 @@ tr1612: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1623: + goto st1674; +tr1659: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53791,7 +55714,7 @@ tr1623: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53799,8 +55722,8 @@ tr1623: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1634: + goto st1674; +tr1670: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53820,7 +55743,7 @@ tr1634: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53828,9 +55751,9 @@ tr1634: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1648: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } + goto st1674; +tr1686: + { window_add_bit(KNOT_RRTYPE_DELEG, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -53849,7 +55772,7 @@ tr1648: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53857,9 +55780,9 @@ tr1648: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1660: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } + goto st1674; +tr1698: + { window_add_bit(KNOT_RRTYPE_DELEGPARAM, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -53878,7 +55801,7 @@ tr1660: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53886,8 +55809,66 @@ tr1660: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1671: + goto st1674; +tr1709: + { window_add_bit(KNOT_RRTYPE_DHCID, s); } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1674; +tr1721: + { window_add_bit(KNOT_RRTYPE_DNAME, s); } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1674; +tr1732: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53907,7 +55888,7 @@ tr1671: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53915,8 +55896,8 @@ tr1671: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1680: + goto st1674; +tr1741: { window_add_bit(KNOT_RRTYPE_DS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53936,7 +55917,7 @@ tr1680: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53944,8 +55925,8 @@ tr1680: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1690: + goto st1674; +tr1751: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53965,7 +55946,7 @@ tr1690: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -53973,8 +55954,8 @@ tr1690: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1703: + goto st1674; +tr1764: { window_add_bit(KNOT_RRTYPE_EUI48, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -53994,7 +55975,7 @@ tr1703: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54002,8 +55983,8 @@ tr1703: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1712: + goto st1674; +tr1773: { window_add_bit(KNOT_RRTYPE_EUI64, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54023,7 +56004,7 @@ tr1712: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54031,8 +56012,8 @@ tr1712: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1725: + goto st1674; +tr1786: { window_add_bit(KNOT_RRTYPE_HINFO, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54052,7 +56033,7 @@ tr1725: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54060,8 +56041,8 @@ tr1725: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1736: + goto st1674; +tr1797: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54081,7 +56062,7 @@ tr1736: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54089,8 +56070,8 @@ tr1736: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1751: + goto st1674; +tr1812: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54110,7 +56091,7 @@ tr1751: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54118,8 +56099,8 @@ tr1751: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1762: + goto st1674; +tr1823: { window_add_bit(KNOT_RRTYPE_KEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54139,7 +56120,7 @@ tr1762: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54147,8 +56128,8 @@ tr1762: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1770: + goto st1674; +tr1831: { window_add_bit(KNOT_RRTYPE_KX, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54168,7 +56149,7 @@ tr1770: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54176,8 +56157,8 @@ tr1770: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1783: + goto st1674; +tr1844: { window_add_bit(KNOT_RRTYPE_L32, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54197,7 +56178,7 @@ tr1783: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54205,8 +56186,8 @@ tr1783: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1792: + goto st1674; +tr1853: { window_add_bit(KNOT_RRTYPE_L64, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54226,7 +56207,7 @@ tr1792: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54234,8 +56215,8 @@ tr1792: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1801: + goto st1674; +tr1862: { window_add_bit(KNOT_RRTYPE_LOC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54255,7 +56236,7 @@ tr1801: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54263,8 +56244,8 @@ tr1801: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1809: + goto st1674; +tr1870: { window_add_bit(KNOT_RRTYPE_LP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54284,7 +56265,7 @@ tr1809: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54292,8 +56273,8 @@ tr1809: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1822: + goto st1674; +tr1883: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54313,7 +56294,7 @@ tr1822: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54321,8 +56302,8 @@ tr1822: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1830: + goto st1674; +tr1891: { window_add_bit(KNOT_RRTYPE_MX, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54342,7 +56323,7 @@ tr1830: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54350,8 +56331,8 @@ tr1830: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1844: + goto st1674; +tr1905: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54371,7 +56352,7 @@ tr1844: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54379,8 +56360,8 @@ tr1844: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1853: + goto st1674; +tr1914: { window_add_bit(KNOT_RRTYPE_NID, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54400,7 +56381,7 @@ tr1853: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54408,8 +56389,8 @@ tr1853: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1862: + goto st1674; +tr1923: { window_add_bit(KNOT_RRTYPE_NS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54429,7 +56410,7 @@ tr1862: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54437,8 +56418,8 @@ tr1862: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1872: + goto st1674; +tr1933: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54458,7 +56439,7 @@ tr1872: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54466,8 +56447,8 @@ tr1872: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1881: + goto st1674; +tr1942: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54487,7 +56468,7 @@ tr1881: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54495,8 +56476,8 @@ tr1881: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1893: + goto st1674; +tr1954: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54516,7 +56497,7 @@ tr1893: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54524,8 +56505,8 @@ tr1893: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1910: + goto st1674; +tr1971: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54545,7 +56526,7 @@ tr1910: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54553,8 +56534,8 @@ tr1910: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1920: + goto st1674; +tr1981: { window_add_bit(KNOT_RRTYPE_PTR, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54574,7 +56555,7 @@ tr1920: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54582,8 +56563,8 @@ tr1920: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1937: + goto st1674; +tr1998: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54603,7 +56584,7 @@ tr1937: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54611,8 +56592,8 @@ tr1937: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1945: + goto st1674; +tr2006: { window_add_bit(KNOT_RRTYPE_RP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54632,7 +56613,7 @@ tr1945: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54640,8 +56621,8 @@ tr1945: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1956: + goto st1674; +tr2017: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54661,7 +56642,7 @@ tr1956: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54669,8 +56650,8 @@ tr1956: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1964: + goto st1674; +tr2025: { window_add_bit(KNOT_RRTYPE_RT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54690,7 +56671,7 @@ tr1964: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54698,8 +56679,8 @@ tr1964: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1982: + goto st1674; +tr2043: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54719,7 +56700,7 @@ tr1982: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54727,8 +56708,8 @@ tr1982: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr1991: + goto st1674; +tr2052: { window_add_bit(KNOT_RRTYPE_SOA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54748,7 +56729,7 @@ tr1991: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54756,8 +56737,8 @@ tr1991: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2000: + goto st1674; +tr2061: { window_add_bit(KNOT_RRTYPE_SPF, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54777,7 +56758,7 @@ tr2000: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54785,8 +56766,8 @@ tr2000: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2009: + goto st1674; +tr2070: { window_add_bit(KNOT_RRTYPE_SRV, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54806,7 +56787,7 @@ tr2009: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54814,8 +56795,8 @@ tr2009: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2020: + goto st1674; +tr2081: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54835,7 +56816,7 @@ tr2020: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54843,8 +56824,8 @@ tr2020: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2030: + goto st1674; +tr2091: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54864,7 +56845,7 @@ tr2030: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54872,8 +56853,8 @@ tr2030: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2043: + goto st1674; +tr2104: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54893,7 +56874,7 @@ tr2043: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54901,8 +56882,8 @@ tr2043: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2052: + goto st1674; +tr2113: { window_add_bit(KNOT_RRTYPE_TXT, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54922,7 +56903,7 @@ tr2052: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54930,14 +56911,14 @@ tr2052: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2064: + goto st1674; +tr2125: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -54958,7 +56939,7 @@ tr2064: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54966,8 +56947,8 @@ tr2064: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2074: + goto st1674; +tr2135: { window_add_bit(KNOT_RRTYPE_URI, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -54987,7 +56968,7 @@ tr2074: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -54995,8 +56976,8 @@ tr2074: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2087: + goto st1674; +tr2148: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -55016,7 +56997,7 @@ tr2087: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55024,8 +57005,8 @@ tr2087: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2100: + goto st1674; +tr2161: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -55045,7 +57026,7 @@ tr2100: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55053,8 +57034,8 @@ tr2100: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2111: + goto st1674; +tr2172: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -55074,7 +57055,7 @@ tr2111: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55082,8 +57063,8 @@ tr2111: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2122: + goto st1674; +tr2183: { window_add_bit(KNOT_RRTYPE_ALIAS, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -55103,7 +57084,7 @@ tr2122: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55111,8 +57092,8 @@ tr2122: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -tr2131: + goto st1674; +tr2192: { window_add_bit(KNOT_RRTYPE_APL, s); } { for (uint16_t window = 0; window <= s->last_window; window++) { @@ -55132,7 +57113,7 @@ tr2131: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55140,13 +57121,13 @@ tr2131: { p--; {cs = stack[--top];goto _again;} } - goto st1527; -st1527: + goto st1674; +st1674: if ( ++p == pe ) - goto _test_eof1527; -case 1527: + goto _test_eof1674; +case 1674: goto st0; -tr1517: +tr1553: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -55172,7 +57153,7 @@ tr1517: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55180,8 +57161,8 @@ tr1517: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1543: + goto st1675; +tr1579: { s->line_counter++; } @@ -55203,7 +57184,7 @@ tr1543: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55211,8 +57192,8 @@ tr1543: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1555: + goto st1675; +tr1591: { window_add_bit(KNOT_RRTYPE_A, s); } { s->line_counter++; @@ -55235,7 +57216,7 @@ tr1555: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55243,8 +57224,8 @@ tr1555: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1565: + goto st1675; +tr1601: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->line_counter++; @@ -55267,7 +57248,7 @@ tr1565: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55275,8 +57256,8 @@ tr1565: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1581: + goto st1675; +tr1617: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->line_counter++; @@ -55299,7 +57280,7 @@ tr1581: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55307,8 +57288,8 @@ tr1581: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1595: + goto st1675; +tr1631: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->line_counter++; @@ -55331,7 +57312,7 @@ tr1595: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55339,8 +57320,8 @@ tr1595: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1603: + goto st1675; +tr1639: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->line_counter++; @@ -55363,7 +57344,7 @@ tr1603: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55371,8 +57352,8 @@ tr1603: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1613: + goto st1675; +tr1649: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->line_counter++; @@ -55395,7 +57376,7 @@ tr1613: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55403,8 +57384,8 @@ tr1613: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1624: + goto st1675; +tr1660: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->line_counter++; @@ -55427,7 +57408,7 @@ tr1624: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55435,8 +57416,8 @@ tr1624: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1635: + goto st1675; +tr1671: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->line_counter++; @@ -55459,7 +57440,7 @@ tr1635: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55467,41 +57448,9 @@ tr1635: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1649: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } - { - s->line_counter++; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1528; -tr1661: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } + goto st1675; +tr1687: + { window_add_bit(KNOT_RRTYPE_DELEG, s); } { s->line_counter++; } @@ -55523,7 +57472,7 @@ tr1661: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55531,9 +57480,9 @@ tr1661: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1672: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } + goto st1675; +tr1699: + { window_add_bit(KNOT_RRTYPE_DELEGPARAM, s); } { s->line_counter++; } @@ -55555,7 +57504,7 @@ tr1672: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55563,9 +57512,9 @@ tr1672: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1681: - { window_add_bit(KNOT_RRTYPE_DS, s); } + goto st1675; +tr1710: + { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->line_counter++; } @@ -55587,7 +57536,7 @@ tr1681: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55595,9 +57544,9 @@ tr1681: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1691: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + goto st1675; +tr1722: + { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->line_counter++; } @@ -55619,7 +57568,7 @@ tr1691: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55627,9 +57576,9 @@ tr1691: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1704: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } + goto st1675; +tr1733: + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->line_counter++; } @@ -55651,7 +57600,7 @@ tr1704: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55659,9 +57608,9 @@ tr1704: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1713: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } + goto st1675; +tr1742: + { window_add_bit(KNOT_RRTYPE_DS, s); } { s->line_counter++; } @@ -55683,7 +57632,7 @@ tr1713: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55691,9 +57640,9 @@ tr1713: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1726: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } + goto st1675; +tr1752: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->line_counter++; } @@ -55715,7 +57664,7 @@ tr1726: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55723,9 +57672,9 @@ tr1726: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1737: - { window_add_bit(KNOT_RRTYPE_HTTPS, s); } + goto st1675; +tr1765: + { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->line_counter++; } @@ -55747,7 +57696,7 @@ tr1737: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55755,9 +57704,9 @@ tr1737: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1752: - { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } + goto st1675; +tr1774: + { window_add_bit(KNOT_RRTYPE_EUI64, s); } { s->line_counter++; } @@ -55779,7 +57728,7 @@ tr1752: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55787,9 +57736,9 @@ tr1752: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1763: - { window_add_bit(KNOT_RRTYPE_KEY, s); } + goto st1675; +tr1787: + { window_add_bit(KNOT_RRTYPE_HINFO, s); } { s->line_counter++; } @@ -55811,7 +57760,7 @@ tr1763: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55819,8 +57768,104 @@ tr1763: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1771: + goto st1675; +tr1798: + { window_add_bit(KNOT_RRTYPE_HTTPS, s); } + { + s->line_counter++; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1675; +tr1813: + { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } + { + s->line_counter++; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1675; +tr1824: + { window_add_bit(KNOT_RRTYPE_KEY, s); } + { + s->line_counter++; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1675; +tr1832: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->line_counter++; @@ -55843,7 +57888,7 @@ tr1771: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55851,8 +57896,8 @@ tr1771: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1784: + goto st1675; +tr1845: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->line_counter++; @@ -55875,7 +57920,7 @@ tr1784: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55883,8 +57928,8 @@ tr1784: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1793: + goto st1675; +tr1854: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->line_counter++; @@ -55907,7 +57952,7 @@ tr1793: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55915,8 +57960,8 @@ tr1793: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1802: + goto st1675; +tr1863: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->line_counter++; @@ -55939,7 +57984,7 @@ tr1802: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55947,8 +57992,8 @@ tr1802: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1810: + goto st1675; +tr1871: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->line_counter++; @@ -55971,7 +58016,7 @@ tr1810: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -55979,8 +58024,8 @@ tr1810: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1823: + goto st1675; +tr1884: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->line_counter++; @@ -56003,7 +58048,7 @@ tr1823: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56011,8 +58056,8 @@ tr1823: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1831: + goto st1675; +tr1892: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->line_counter++; @@ -56035,7 +58080,7 @@ tr1831: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56043,8 +58088,8 @@ tr1831: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1845: + goto st1675; +tr1906: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->line_counter++; @@ -56067,7 +58112,7 @@ tr1845: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56075,8 +58120,8 @@ tr1845: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1854: + goto st1675; +tr1915: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->line_counter++; @@ -56099,7 +58144,7 @@ tr1854: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56107,8 +58152,8 @@ tr1854: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1863: + goto st1675; +tr1924: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->line_counter++; @@ -56131,7 +58176,7 @@ tr1863: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56139,8 +58184,8 @@ tr1863: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1873: + goto st1675; +tr1934: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->line_counter++; @@ -56163,7 +58208,7 @@ tr1873: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56171,8 +58216,8 @@ tr1873: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1882: + goto st1675; +tr1943: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->line_counter++; @@ -56195,7 +58240,7 @@ tr1882: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56203,8 +58248,8 @@ tr1882: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1894: + goto st1675; +tr1955: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->line_counter++; @@ -56227,7 +58272,7 @@ tr1894: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56235,8 +58280,8 @@ tr1894: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1911: + goto st1675; +tr1972: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->line_counter++; @@ -56259,7 +58304,7 @@ tr1911: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56267,8 +58312,8 @@ tr1911: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1921: + goto st1675; +tr1982: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->line_counter++; @@ -56291,7 +58336,7 @@ tr1921: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56299,8 +58344,8 @@ tr1921: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1938: + goto st1675; +tr1999: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { s->line_counter++; @@ -56323,7 +58368,7 @@ tr1938: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56331,8 +58376,8 @@ tr1938: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1946: + goto st1675; +tr2007: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->line_counter++; @@ -56355,7 +58400,7 @@ tr1946: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56363,8 +58408,8 @@ tr1946: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1957: + goto st1675; +tr2018: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->line_counter++; @@ -56387,7 +58432,7 @@ tr1957: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56395,8 +58440,8 @@ tr1957: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1965: + goto st1675; +tr2026: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->line_counter++; @@ -56419,7 +58464,7 @@ tr1965: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56427,8 +58472,8 @@ tr1965: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1983: + goto st1675; +tr2044: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->line_counter++; @@ -56451,7 +58496,7 @@ tr1983: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56459,8 +58504,8 @@ tr1983: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr1992: + goto st1675; +tr2053: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->line_counter++; @@ -56483,7 +58528,7 @@ tr1992: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56491,8 +58536,8 @@ tr1992: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2001: + goto st1675; +tr2062: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->line_counter++; @@ -56515,7 +58560,7 @@ tr2001: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56523,8 +58568,8 @@ tr2001: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2010: + goto st1675; +tr2071: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->line_counter++; @@ -56547,7 +58592,7 @@ tr2010: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56555,8 +58600,8 @@ tr2010: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2021: + goto st1675; +tr2082: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->line_counter++; @@ -56579,7 +58624,7 @@ tr2021: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56587,8 +58632,8 @@ tr2021: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2031: + goto st1675; +tr2092: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->line_counter++; @@ -56611,7 +58656,7 @@ tr2031: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56619,8 +58664,8 @@ tr2031: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2044: + goto st1675; +tr2105: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->line_counter++; @@ -56643,7 +58688,7 @@ tr2044: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56651,8 +58696,8 @@ tr2044: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2053: + goto st1675; +tr2114: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->line_counter++; @@ -56675,7 +58720,7 @@ tr2053: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56683,14 +58728,14 @@ tr2053: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2065: + goto st1675; +tr2126: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -56714,7 +58759,7 @@ tr2065: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56722,8 +58767,8 @@ tr2065: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2075: + goto st1675; +tr2136: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->line_counter++; @@ -56746,7 +58791,7 @@ tr2075: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56754,8 +58799,8 @@ tr2075: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2088: + goto st1675; +tr2149: { window_add_bit(KNOT_RRTYPE_WALLET, s); } { s->line_counter++; @@ -56778,7 +58823,7 @@ tr2088: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56786,8 +58831,8 @@ tr2088: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2101: + goto st1675; +tr2162: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } { s->line_counter++; @@ -56810,7 +58855,7 @@ tr2101: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56818,8 +58863,8 @@ tr2101: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2112: + goto st1675; +tr2173: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } { s->line_counter++; @@ -56842,7 +58887,7 @@ tr2112: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56850,8 +58895,8 @@ tr2112: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2123: + goto st1675; +tr2184: { window_add_bit(KNOT_RRTYPE_ALIAS, s); } { s->line_counter++; @@ -56874,7 +58919,7 @@ tr2123: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56882,8 +58927,8 @@ tr2123: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -tr2132: + goto st1675; +tr2193: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->line_counter++; @@ -56906,7 +58951,7 @@ tr2132: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -56914,11 +58959,11 @@ tr2132: { p--; {cs = stack[--top];goto _again;} } - goto st1528; -st1528: + goto st1675; +st1675: if ( ++p == pe ) - goto _test_eof1528; -case 1528: + goto _test_eof1675; +case 1675: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -56936,84 +58981,84 @@ case 1528: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st580; - case 32: goto st580; - case 40: goto tr1520; - case 41: goto tr1521; - case 65: goto st581; - case 67: goto st586; - case 68: goto st607; - case 69: goto st624; - case 72: goto st631; - case 73: goto st640; - case 75: goto st648; - case 76: goto st652; - case 77: goto st660; - case 78: goto st666; - case 79: goto st682; - case 80: goto st692; - case 82: goto st695; - case 83: goto st708; - case 84: goto st727; - case 85: goto st737; - case 87: goto st740; - case 90: goto st746; - case 97: goto st581; - case 99: goto st586; - case 100: goto st607; - case 101: goto st624; - case 104: goto st631; - case 105: goto st640; - case 107: goto st648; - case 108: goto st652; - case 109: goto st660; - case 110: goto st666; - case 111: goto st682; - case 112: goto st692; - case 114: goto st695; - case 115: goto st708; - case 116: goto st727; - case 117: goto st737; - case 119: goto st740; - case 122: goto st746; - case 3082: goto tr1540; - case 3131: goto tr1541; - case 3338: goto tr1542; - case 3387: goto tr1542; - case 3594: goto tr1543; - case 3643: goto tr1544; - } - goto tr1510; -st586: + case 9: goto st598; + case 32: goto st598; + case 40: goto tr1556; + case 41: goto tr1557; + case 65: goto st599; + case 67: goto st604; + case 68: goto st625; + case 69: goto st651; + case 72: goto st658; + case 73: goto st667; + case 75: goto st675; + case 76: goto st679; + case 77: goto st687; + case 78: goto st693; + case 79: goto st709; + case 80: goto st719; + case 82: goto st722; + case 83: goto st735; + case 84: goto st754; + case 85: goto st764; + case 87: goto st767; + case 90: goto st773; + case 97: goto st599; + case 99: goto st604; + case 100: goto st625; + case 101: goto st651; + case 104: goto st658; + case 105: goto st667; + case 107: goto st675; + case 108: goto st679; + case 109: goto st687; + case 110: goto st693; + case 111: goto st709; + case 112: goto st719; + case 114: goto st722; + case 115: goto st735; + case 116: goto st754; + case 117: goto st764; + case 119: goto st767; + case 122: goto st773; + case 3082: goto tr1576; + case 3131: goto tr1577; + case 3338: goto tr1578; + case 3387: goto tr1578; + case 3594: goto tr1579; + case 3643: goto tr1580; + } + goto tr1546; +st604: if ( ++p == pe ) - goto _test_eof586; -case 586: + goto _test_eof604; +case 604: switch( (*p) ) { - case 65: goto st587; - case 68: goto st589; - case 69: goto st596; - case 78: goto st599; - case 83: goto st603; - case 97: goto st587; - case 100: goto st589; - case 101: goto st596; - case 110: goto st599; - case 115: goto st603; - } - goto tr1510; -st587: + case 65: goto st605; + case 68: goto st607; + case 69: goto st614; + case 78: goto st617; + case 83: goto st621; + case 97: goto st605; + case 100: goto st607; + case 101: goto st614; + case 110: goto st617; + case 115: goto st621; + } + goto tr1546; +st605: if ( ++p == pe ) - goto _test_eof587; -case 587: + goto _test_eof605; +case 605: switch( (*p) ) { - case 65: goto st588; - case 97: goto st588; + case 65: goto st606; + case 97: goto st606; } - goto tr1510; -st588: + goto tr1546; +st606: if ( ++p == pe ) - goto _test_eof588; -case 588: + goto _test_eof606; +case 606: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -57031,19 +59076,19 @@ case 588: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1575; - case 32: goto tr1575; - case 40: goto tr1576; - case 41: goto tr1577; - case 3082: goto tr1578; - case 3131: goto tr1579; - case 3338: goto tr1580; - case 3387: goto tr1580; - case 3594: goto tr1581; - case 3643: goto tr1582; + case 9: goto tr1611; + case 32: goto tr1611; + case 40: goto tr1612; + case 41: goto tr1613; + case 3082: goto tr1614; + case 3131: goto tr1615; + case 3338: goto tr1616; + case 3387: goto tr1616; + case 3594: goto tr1617; + case 3643: goto tr1618; } - goto tr1510; -tr1518: + goto tr1546; +tr1554: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; @@ -57069,7 +59114,7 @@ tr1518: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57077,8 +59122,8 @@ tr1518: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1544: + goto st1676; +tr1580: { s->buffer_length = 0; } @@ -57100,7 +59145,7 @@ tr1544: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57108,8 +59153,8 @@ tr1544: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1556: + goto st1676; +tr1592: { window_add_bit(KNOT_RRTYPE_A, s); } { s->buffer_length = 0; @@ -57132,7 +59177,7 @@ tr1556: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57140,8 +59185,8 @@ tr1556: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1566: + goto st1676; +tr1602: { window_add_bit(KNOT_RRTYPE_AAAA, s); } { s->buffer_length = 0; @@ -57164,7 +59209,7 @@ tr1566: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57172,8 +59217,8 @@ tr1566: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1582: + goto st1676; +tr1618: { window_add_bit(KNOT_RRTYPE_CAA, s); } { s->buffer_length = 0; @@ -57196,7 +59241,7 @@ tr1582: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57204,8 +59249,8 @@ tr1582: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1596: + goto st1676; +tr1632: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } { s->buffer_length = 0; @@ -57228,7 +59273,7 @@ tr1596: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57236,8 +59281,8 @@ tr1596: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1604: + goto st1676; +tr1640: { window_add_bit(KNOT_RRTYPE_CDS, s); } { s->buffer_length = 0; @@ -57260,7 +59305,7 @@ tr1604: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57268,8 +59313,8 @@ tr1604: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1614: + goto st1676; +tr1650: { window_add_bit(KNOT_RRTYPE_CERT, s); } { s->buffer_length = 0; @@ -57292,7 +59337,7 @@ tr1614: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57300,8 +59345,8 @@ tr1614: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1625: + goto st1676; +tr1661: { window_add_bit(KNOT_RRTYPE_CNAME, s); } { s->buffer_length = 0; @@ -57324,7 +59369,7 @@ tr1625: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57332,8 +59377,8 @@ tr1625: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1636: + goto st1676; +tr1672: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } { s->buffer_length = 0; @@ -57356,7 +59401,7 @@ tr1636: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57364,9 +59409,9 @@ tr1636: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1650: - { window_add_bit(KNOT_RRTYPE_DHCID, s); } + goto st1676; +tr1688: + { window_add_bit(KNOT_RRTYPE_DELEG, s); } { s->buffer_length = 0; } @@ -57388,7 +59433,7 @@ tr1650: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57396,9 +59441,9 @@ tr1650: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1662: - { window_add_bit(KNOT_RRTYPE_DNAME, s); } + goto st1676; +tr1700: + { window_add_bit(KNOT_RRTYPE_DELEGPARAM, s); } { s->buffer_length = 0; } @@ -57420,7 +59465,7 @@ tr1662: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57428,9 +59473,9 @@ tr1662: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1673: - { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } + goto st1676; +tr1711: + { window_add_bit(KNOT_RRTYPE_DHCID, s); } { s->buffer_length = 0; } @@ -57452,7 +59497,7 @@ tr1673: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57460,9 +59505,9 @@ tr1673: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1682: - { window_add_bit(KNOT_RRTYPE_DS, s); } + goto st1676; +tr1723: + { window_add_bit(KNOT_RRTYPE_DNAME, s); } { s->buffer_length = 0; } @@ -57484,7 +59529,7 @@ tr1682: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57492,9 +59537,9 @@ tr1682: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1692: - { window_add_bit(KNOT_RRTYPE_DSYNC, s); } + goto st1676; +tr1734: + { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } { s->buffer_length = 0; } @@ -57516,7 +59561,7 @@ tr1692: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57524,9 +59569,9 @@ tr1692: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1705: - { window_add_bit(KNOT_RRTYPE_EUI48, s); } + goto st1676; +tr1743: + { window_add_bit(KNOT_RRTYPE_DS, s); } { s->buffer_length = 0; } @@ -57548,7 +59593,7 @@ tr1705: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57556,9 +59601,9 @@ tr1705: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1714: - { window_add_bit(KNOT_RRTYPE_EUI64, s); } + goto st1676; +tr1753: + { window_add_bit(KNOT_RRTYPE_DSYNC, s); } { s->buffer_length = 0; } @@ -57580,7 +59625,7 @@ tr1714: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57588,9 +59633,9 @@ tr1714: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1727: - { window_add_bit(KNOT_RRTYPE_HINFO, s); } + goto st1676; +tr1766: + { window_add_bit(KNOT_RRTYPE_EUI48, s); } { s->buffer_length = 0; } @@ -57612,7 +59657,7 @@ tr1727: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57620,8 +59665,72 @@ tr1727: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1738: + goto st1676; +tr1775: + { window_add_bit(KNOT_RRTYPE_EUI64, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1676; +tr1788: + { window_add_bit(KNOT_RRTYPE_HINFO, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1676; +tr1799: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } { s->buffer_length = 0; @@ -57644,7 +59753,7 @@ tr1738: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57652,8 +59761,8 @@ tr1738: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1753: + goto st1676; +tr1814: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } { s->buffer_length = 0; @@ -57676,7 +59785,7 @@ tr1753: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57684,8 +59793,8 @@ tr1753: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1764: + goto st1676; +tr1825: { window_add_bit(KNOT_RRTYPE_KEY, s); } { s->buffer_length = 0; @@ -57708,7 +59817,7 @@ tr1764: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57716,8 +59825,8 @@ tr1764: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1772: + goto st1676; +tr1833: { window_add_bit(KNOT_RRTYPE_KX, s); } { s->buffer_length = 0; @@ -57740,7 +59849,7 @@ tr1772: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57748,8 +59857,8 @@ tr1772: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1785: + goto st1676; +tr1846: { window_add_bit(KNOT_RRTYPE_L32, s); } { s->buffer_length = 0; @@ -57772,7 +59881,7 @@ tr1785: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57780,8 +59889,8 @@ tr1785: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1794: + goto st1676; +tr1855: { window_add_bit(KNOT_RRTYPE_L64, s); } { s->buffer_length = 0; @@ -57804,7 +59913,7 @@ tr1794: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57812,8 +59921,8 @@ tr1794: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1803: + goto st1676; +tr1864: { window_add_bit(KNOT_RRTYPE_LOC, s); } { s->buffer_length = 0; @@ -57836,7 +59945,7 @@ tr1803: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57844,8 +59953,8 @@ tr1803: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1811: + goto st1676; +tr1872: { window_add_bit(KNOT_RRTYPE_LP, s); } { s->buffer_length = 0; @@ -57868,7 +59977,7 @@ tr1811: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57876,8 +59985,8 @@ tr1811: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1824: + goto st1676; +tr1885: { window_add_bit(KNOT_RRTYPE_MINFO, s); } { s->buffer_length = 0; @@ -57900,7 +60009,7 @@ tr1824: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57908,8 +60017,8 @@ tr1824: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1832: + goto st1676; +tr1893: { window_add_bit(KNOT_RRTYPE_MX, s); } { s->buffer_length = 0; @@ -57932,7 +60041,7 @@ tr1832: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57940,8 +60049,8 @@ tr1832: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1846: + goto st1676; +tr1907: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } { s->buffer_length = 0; @@ -57964,7 +60073,7 @@ tr1846: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -57972,8 +60081,8 @@ tr1846: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1855: + goto st1676; +tr1916: { window_add_bit(KNOT_RRTYPE_NID, s); } { s->buffer_length = 0; @@ -57996,7 +60105,7 @@ tr1855: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58004,8 +60113,8 @@ tr1855: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1864: + goto st1676; +tr1925: { window_add_bit(KNOT_RRTYPE_NS, s); } { s->buffer_length = 0; @@ -58028,7 +60137,7 @@ tr1864: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58036,8 +60145,8 @@ tr1864: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1874: + goto st1676; +tr1935: { window_add_bit(KNOT_RRTYPE_NSEC, s); } { s->buffer_length = 0; @@ -58060,7 +60169,7 @@ tr1874: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58068,8 +60177,8 @@ tr1874: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1883: + goto st1676; +tr1944: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } { s->buffer_length = 0; @@ -58092,7 +60201,7 @@ tr1883: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58100,8 +60209,8 @@ tr1883: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1895: + goto st1676; +tr1956: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } { s->buffer_length = 0; @@ -58124,7 +60233,7 @@ tr1895: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58132,8 +60241,8 @@ tr1895: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1912: + goto st1676; +tr1973: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } { s->buffer_length = 0; @@ -58156,7 +60265,7 @@ tr1912: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58164,8 +60273,8 @@ tr1912: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1922: + goto st1676; +tr1983: { window_add_bit(KNOT_RRTYPE_PTR, s); } { s->buffer_length = 0; @@ -58188,7 +60297,7 @@ tr1922: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58196,8 +60305,8 @@ tr1922: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1939: + goto st1676; +tr2000: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } { s->buffer_length = 0; @@ -58220,7 +60329,7 @@ tr1939: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58228,8 +60337,8 @@ tr1939: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1947: + goto st1676; +tr2008: { window_add_bit(KNOT_RRTYPE_RP, s); } { s->buffer_length = 0; @@ -58252,7 +60361,7 @@ tr1947: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58260,8 +60369,8 @@ tr1947: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1958: + goto st1676; +tr2019: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } { s->buffer_length = 0; @@ -58284,7 +60393,7 @@ tr1958: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58292,8 +60401,8 @@ tr1958: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1966: + goto st1676; +tr2027: { window_add_bit(KNOT_RRTYPE_RT, s); } { s->buffer_length = 0; @@ -58316,7 +60425,7 @@ tr1966: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58324,8 +60433,8 @@ tr1966: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1984: + goto st1676; +tr2045: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } { s->buffer_length = 0; @@ -58348,7 +60457,7 @@ tr1984: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58356,8 +60465,8 @@ tr1984: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr1993: + goto st1676; +tr2054: { window_add_bit(KNOT_RRTYPE_SOA, s); } { s->buffer_length = 0; @@ -58380,7 +60489,7 @@ tr1993: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58388,8 +60497,8 @@ tr1993: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2002: + goto st1676; +tr2063: { window_add_bit(KNOT_RRTYPE_SPF, s); } { s->buffer_length = 0; @@ -58412,7 +60521,7 @@ tr2002: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58420,8 +60529,8 @@ tr2002: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2011: + goto st1676; +tr2072: { window_add_bit(KNOT_RRTYPE_SRV, s); } { s->buffer_length = 0; @@ -58444,7 +60553,7 @@ tr2011: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58452,8 +60561,8 @@ tr2011: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2022: + goto st1676; +tr2083: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } { s->buffer_length = 0; @@ -58476,7 +60585,7 @@ tr2022: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58484,8 +60593,8 @@ tr2022: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2032: + goto st1676; +tr2093: { window_add_bit(KNOT_RRTYPE_SVCB, s); } { s->buffer_length = 0; @@ -58508,7 +60617,7 @@ tr2032: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58516,8 +60625,8 @@ tr2032: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2045: + goto st1676; +tr2106: { window_add_bit(KNOT_RRTYPE_TLSA, s); } { s->buffer_length = 0; @@ -58540,7 +60649,7 @@ tr2045: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58548,8 +60657,8 @@ tr2045: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2054: + goto st1676; +tr2115: { window_add_bit(KNOT_RRTYPE_TXT, s); } { s->buffer_length = 0; @@ -58572,7 +60681,7 @@ tr2054: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58580,14 +60689,14 @@ tr2054: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2066: + goto st1676; +tr2127: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -58611,7 +60720,7 @@ tr2066: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58619,8 +60728,8 @@ tr2066: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2076: + goto st1676; +tr2137: { window_add_bit(KNOT_RRTYPE_URI, s); } { s->buffer_length = 0; @@ -58643,7 +60752,135 @@ tr2076: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1676; +tr2150: + { window_add_bit(KNOT_RRTYPE_WALLET, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1676; +tr2163: + { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1676; +tr2174: + { window_add_bit(KNOT_RRTYPE_AFSDB, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1676; +tr2185: + { window_add_bit(KNOT_RRTYPE_ALIAS, s); } + { + s->buffer_length = 0; + } + { + for (uint16_t window = 0; window <= s->last_window; window++) { + if ((s->windows[window]).length > 0) { + if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) + { + // Window number. + *rdata_tail = (uint8_t)window; + rdata_tail += 1; + // Bitmap length. + *rdata_tail = (s->windows[window]).length; + rdata_tail += 1; + // Copying bitmap. + memcpy(rdata_tail, + (s->windows[window]).bitmap, + (s->windows[window]).length); + rdata_tail += (s->windows[window]).length; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } } @@ -58651,136 +60888,8 @@ tr2076: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -tr2089: - { window_add_bit(KNOT_RRTYPE_WALLET, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1529; -tr2102: - { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1529; -tr2113: - { window_add_bit(KNOT_RRTYPE_AFSDB, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1529; -tr2124: - { window_add_bit(KNOT_RRTYPE_ALIAS, s); } - { - s->buffer_length = 0; - } - { - for (uint16_t window = 0; window <= s->last_window; window++) { - if ((s->windows[window]).length > 0) { - if (rdata_tail + 2 + (s->windows[window]).length <= rdata_stop) - { - // Window number. - *rdata_tail = (uint8_t)window; - rdata_tail += 1; - // Bitmap length. - *rdata_tail = (s->windows[window]).length; - rdata_tail += 1; - // Copying bitmap. - memcpy(rdata_tail, - (s->windows[window]).bitmap, - (s->windows[window]).length); - rdata_tail += (s->windows[window]).length; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1529; -tr2133: + goto st1676; +tr2194: { window_add_bit(KNOT_RRTYPE_APL, s); } { s->buffer_length = 0; @@ -58803,7 +60912,7 @@ tr2133: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } } @@ -58811,11 +60920,11 @@ tr2133: { p--; {cs = stack[--top];goto _again;} } - goto st1529; -st1529: + goto st1676; +st1676: if ( ++p == pe ) - goto _test_eof1529; -case 1529: + goto _test_eof1676; +case 1676: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -58835,205 +60944,61 @@ case 1529: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr1568; + goto tr1604; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr1567; - goto tr1510; -st589: - if ( ++p == pe ) - goto _test_eof589; -case 589: - switch( (*p) ) { - case 78: goto st590; - case 83: goto st595; - case 110: goto st590; - case 115: goto st595; - } - goto tr1510; -st590: - if ( ++p == pe ) - goto _test_eof590; -case 590: - switch( (*p) ) { - case 83: goto st591; - case 115: goto st591; - } - goto tr1510; -st591: - if ( ++p == pe ) - goto _test_eof591; -case 591: - switch( (*p) ) { - case 75: goto st592; - case 107: goto st592; - } - goto tr1510; -st592: - if ( ++p == pe ) - goto _test_eof592; -case 592: - switch( (*p) ) { - case 69: goto st593; - case 101: goto st593; - } - goto tr1510; -st593: - if ( ++p == pe ) - goto _test_eof593; -case 593: - switch( (*p) ) { - case 89: goto st594; - case 121: goto st594; - } - goto tr1510; -st594: - if ( ++p == pe ) - goto _test_eof594; -case 594: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1589; - case 32: goto tr1589; - case 40: goto tr1590; - case 41: goto tr1591; - case 3082: goto tr1592; - case 3131: goto tr1593; - case 3338: goto tr1594; - case 3387: goto tr1594; - case 3594: goto tr1595; - case 3643: goto tr1596; - } - goto tr1510; -st595: - if ( ++p == pe ) - goto _test_eof595; -case 595: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1597; - case 32: goto tr1597; - case 40: goto tr1598; - case 41: goto tr1599; - case 3082: goto tr1600; - case 3131: goto tr1601; - case 3338: goto tr1602; - case 3387: goto tr1602; - case 3594: goto tr1603; - case 3643: goto tr1604; - } - goto tr1510; -st596: + goto tr1603; + goto tr1546; +st607: if ( ++p == pe ) - goto _test_eof596; -case 596: + goto _test_eof607; +case 607: switch( (*p) ) { - case 82: goto st597; - case 114: goto st597; + case 78: goto st608; + case 83: goto st613; + case 110: goto st608; + case 115: goto st613; } - goto tr1510; -st597: + goto tr1546; +st608: if ( ++p == pe ) - goto _test_eof597; -case 597: + goto _test_eof608; +case 608: switch( (*p) ) { - case 84: goto st598; - case 116: goto st598; - } - goto tr1510; -st598: - if ( ++p == pe ) - goto _test_eof598; -case 598: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1607; - case 32: goto tr1607; - case 40: goto tr1608; - case 41: goto tr1609; - case 3082: goto tr1610; - case 3131: goto tr1611; - case 3338: goto tr1612; - case 3387: goto tr1612; - case 3594: goto tr1613; - case 3643: goto tr1614; + case 83: goto st609; + case 115: goto st609; } - goto tr1510; -st599: + goto tr1546; +st609: if ( ++p == pe ) - goto _test_eof599; -case 599: + goto _test_eof609; +case 609: switch( (*p) ) { - case 65: goto st600; - case 97: goto st600; + case 75: goto st610; + case 107: goto st610; } - goto tr1510; -st600: + goto tr1546; +st610: if ( ++p == pe ) - goto _test_eof600; -case 600: + goto _test_eof610; +case 610: switch( (*p) ) { - case 77: goto st601; - case 109: goto st601; + case 69: goto st611; + case 101: goto st611; } - goto tr1510; -st601: + goto tr1546; +st611: if ( ++p == pe ) - goto _test_eof601; -case 601: + goto _test_eof611; +case 611: switch( (*p) ) { - case 69: goto st602; - case 101: goto st602; + case 89: goto st612; + case 121: goto st612; } - goto tr1510; -st602: + goto tr1546; +st612: if ( ++p == pe ) - goto _test_eof602; -case 602: + goto _test_eof612; +case 612: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59051,49 +61016,22 @@ case 602: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1618; - case 32: goto tr1618; - case 40: goto tr1619; - case 41: goto tr1620; - case 3082: goto tr1621; - case 3131: goto tr1622; - case 3338: goto tr1623; - case 3387: goto tr1623; - case 3594: goto tr1624; - case 3643: goto tr1625; - } - goto tr1510; -st603: - if ( ++p == pe ) - goto _test_eof603; -case 603: - switch( (*p) ) { - case 89: goto st604; - case 121: goto st604; - } - goto tr1510; -st604: - if ( ++p == pe ) - goto _test_eof604; -case 604: - switch( (*p) ) { - case 78: goto st605; - case 110: goto st605; - } - goto tr1510; -st605: - if ( ++p == pe ) - goto _test_eof605; -case 605: - switch( (*p) ) { - case 67: goto st606; - case 99: goto st606; + case 9: goto tr1625; + case 32: goto tr1625; + case 40: goto tr1626; + case 41: goto tr1627; + case 3082: goto tr1628; + case 3131: goto tr1629; + case 3338: goto tr1630; + case 3387: goto tr1630; + case 3594: goto tr1631; + case 3643: goto tr1632; } - goto tr1510; -st606: + goto tr1546; +st613: if ( ++p == pe ) - goto _test_eof606; -case 606: + goto _test_eof613; +case 613: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59111,62 +61049,40 @@ case 606: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1629; - case 32: goto tr1629; - case 40: goto tr1630; - case 41: goto tr1631; - case 3082: goto tr1632; - case 3131: goto tr1633; - case 3338: goto tr1634; - case 3387: goto tr1634; - case 3594: goto tr1635; - case 3643: goto tr1636; - } - goto tr1510; -st607: - if ( ++p == pe ) - goto _test_eof607; -case 607: - switch( (*p) ) { - case 72: goto st608; - case 78: goto st612; - case 83: goto st620; - case 104: goto st608; - case 110: goto st612; - case 115: goto st620; - } - goto tr1510; -st608: - if ( ++p == pe ) - goto _test_eof608; -case 608: - switch( (*p) ) { - case 67: goto st609; - case 99: goto st609; + case 9: goto tr1633; + case 32: goto tr1633; + case 40: goto tr1634; + case 41: goto tr1635; + case 3082: goto tr1636; + case 3131: goto tr1637; + case 3338: goto tr1638; + case 3387: goto tr1638; + case 3594: goto tr1639; + case 3643: goto tr1640; } - goto tr1510; -st609: + goto tr1546; +st614: if ( ++p == pe ) - goto _test_eof609; -case 609: + goto _test_eof614; +case 614: switch( (*p) ) { - case 73: goto st610; - case 105: goto st610; + case 82: goto st615; + case 114: goto st615; } - goto tr1510; -st610: + goto tr1546; +st615: if ( ++p == pe ) - goto _test_eof610; -case 610: + goto _test_eof615; +case 615: switch( (*p) ) { - case 68: goto st611; - case 100: goto st611; + case 84: goto st616; + case 116: goto st616; } - goto tr1510; -st611: + goto tr1546; +st616: if ( ++p == pe ) - goto _test_eof611; -case 611: + goto _test_eof616; +case 616: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59195,129 +61111,34 @@ case 611: case 3594: goto tr1649; case 3643: goto tr1650; } - goto tr1510; -st612: - if ( ++p == pe ) - goto _test_eof612; -case 612: - switch( (*p) ) { - case 65: goto st613; - case 83: goto st616; - case 97: goto st613; - case 115: goto st616; - } - goto tr1510; -st613: - if ( ++p == pe ) - goto _test_eof613; -case 613: - switch( (*p) ) { - case 77: goto st614; - case 109: goto st614; - } - goto tr1510; -st614: - if ( ++p == pe ) - goto _test_eof614; -case 614: - switch( (*p) ) { - case 69: goto st615; - case 101: goto st615; - } - goto tr1510; -st615: - if ( ++p == pe ) - goto _test_eof615; -case 615: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1655; - case 32: goto tr1655; - case 40: goto tr1656; - case 41: goto tr1657; - case 3082: goto tr1658; - case 3131: goto tr1659; - case 3338: goto tr1660; - case 3387: goto tr1660; - case 3594: goto tr1661; - case 3643: goto tr1662; - } - goto tr1510; -st616: - if ( ++p == pe ) - goto _test_eof616; -case 616: - switch( (*p) ) { - case 75: goto st617; - case 107: goto st617; - } - goto tr1510; + goto tr1546; st617: if ( ++p == pe ) goto _test_eof617; case 617: switch( (*p) ) { - case 69: goto st618; - case 101: goto st618; + case 65: goto st618; + case 97: goto st618; } - goto tr1510; + goto tr1546; st618: if ( ++p == pe ) goto _test_eof618; case 618: switch( (*p) ) { - case 89: goto st619; - case 121: goto st619; + case 77: goto st619; + case 109: goto st619; } - goto tr1510; + goto tr1546; st619: if ( ++p == pe ) goto _test_eof619; case 619: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1666; - case 32: goto tr1666; - case 40: goto tr1667; - case 41: goto tr1668; - case 3082: goto tr1669; - case 3131: goto tr1670; - case 3338: goto tr1671; - case 3387: goto tr1671; - case 3594: goto tr1672; - case 3643: goto tr1673; + switch( (*p) ) { + case 69: goto st620; + case 101: goto st620; } - goto tr1510; + goto tr1546; st620: if ( ++p == pe ) goto _test_eof620; @@ -59339,42 +61160,49 @@ case 620: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1674; - case 32: goto tr1674; - case 40: goto tr1675; - case 41: goto tr1676; - case 89: goto st621; - case 121: goto st621; - case 3082: goto tr1678; - case 3131: goto tr1679; - case 3338: goto tr1680; - case 3387: goto tr1680; - case 3594: goto tr1681; - case 3643: goto tr1682; - } - goto tr1510; + case 9: goto tr1654; + case 32: goto tr1654; + case 40: goto tr1655; + case 41: goto tr1656; + case 3082: goto tr1657; + case 3131: goto tr1658; + case 3338: goto tr1659; + case 3387: goto tr1659; + case 3594: goto tr1660; + case 3643: goto tr1661; + } + goto tr1546; st621: if ( ++p == pe ) goto _test_eof621; case 621: switch( (*p) ) { - case 78: goto st622; - case 110: goto st622; + case 89: goto st622; + case 121: goto st622; } - goto tr1510; + goto tr1546; st622: if ( ++p == pe ) goto _test_eof622; case 622: switch( (*p) ) { - case 67: goto st623; - case 99: goto st623; + case 78: goto st623; + case 110: goto st623; } - goto tr1510; + goto tr1546; st623: if ( ++p == pe ) goto _test_eof623; case 623: + switch( (*p) ) { + case 67: goto st624; + case 99: goto st624; + } + goto tr1546; +st624: + if ( ++p == pe ) + goto _test_eof624; +case 624: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59392,96 +61220,64 @@ case 623: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1685; - case 32: goto tr1685; - case 40: goto tr1686; - case 41: goto tr1687; - case 3082: goto tr1688; - case 3131: goto tr1689; - case 3338: goto tr1690; - case 3387: goto tr1690; - case 3594: goto tr1691; - case 3643: goto tr1692; - } - goto tr1510; -st624: - if ( ++p == pe ) - goto _test_eof624; -case 624: - switch( (*p) ) { - case 85: goto st625; - case 117: goto st625; + case 9: goto tr1665; + case 32: goto tr1665; + case 40: goto tr1666; + case 41: goto tr1667; + case 3082: goto tr1668; + case 3131: goto tr1669; + case 3338: goto tr1670; + case 3387: goto tr1670; + case 3594: goto tr1671; + case 3643: goto tr1672; } - goto tr1510; + goto tr1546; st625: if ( ++p == pe ) goto _test_eof625; case 625: switch( (*p) ) { - case 73: goto st626; - case 105: goto st626; + case 69: goto st626; + case 72: goto st635; + case 78: goto st639; + case 83: goto st647; + case 101: goto st626; + case 104: goto st635; + case 110: goto st639; + case 115: goto st647; } - goto tr1510; + goto tr1546; st626: if ( ++p == pe ) goto _test_eof626; case 626: switch( (*p) ) { - case 52: goto st627; - case 54: goto st629; + case 76: goto st627; + case 108: goto st627; } - goto tr1510; + goto tr1546; st627: if ( ++p == pe ) goto _test_eof627; case 627: - if ( (*p) == 56 ) - goto st628; - goto tr1510; + switch( (*p) ) { + case 69: goto st628; + case 101: goto st628; + } + goto tr1546; st628: if ( ++p == pe ) goto _test_eof628; case 628: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1698; - case 32: goto tr1698; - case 40: goto tr1699; - case 41: goto tr1700; - case 3082: goto tr1701; - case 3131: goto tr1702; - case 3338: goto tr1703; - case 3387: goto tr1703; - case 3594: goto tr1704; - case 3643: goto tr1705; + switch( (*p) ) { + case 71: goto st629; + case 103: goto st629; } - goto tr1510; + goto tr1546; st629: if ( ++p == pe ) goto _test_eof629; case 629: - if ( (*p) == 52 ) - goto st630; - goto tr1510; -st630: - if ( ++p == pe ) - goto _test_eof630; -case 630: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59499,60 +61295,60 @@ case 630: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1707; - case 32: goto tr1707; - case 40: goto tr1708; - case 41: goto tr1709; - case 3082: goto tr1710; - case 3131: goto tr1711; - case 3338: goto tr1712; - case 3387: goto tr1712; - case 3594: goto tr1713; - case 3643: goto tr1714; + case 9: goto tr1680; + case 32: goto tr1680; + case 40: goto tr1681; + case 41: goto tr1682; + case 80: goto st630; + case 112: goto st630; + case 3082: goto tr1684; + case 3131: goto tr1685; + case 3338: goto tr1686; + case 3387: goto tr1686; + case 3594: goto tr1687; + case 3643: goto tr1688; + } + goto tr1546; +st630: + if ( ++p == pe ) + goto _test_eof630; +case 630: + switch( (*p) ) { + case 65: goto st631; + case 97: goto st631; } - goto tr1510; + goto tr1546; st631: if ( ++p == pe ) goto _test_eof631; case 631: switch( (*p) ) { - case 73: goto st632; - case 84: goto st636; - case 105: goto st632; - case 116: goto st636; + case 82: goto st632; + case 114: goto st632; } - goto tr1510; + goto tr1546; st632: if ( ++p == pe ) goto _test_eof632; case 632: switch( (*p) ) { - case 78: goto st633; - case 110: goto st633; + case 65: goto st633; + case 97: goto st633; } - goto tr1510; + goto tr1546; st633: if ( ++p == pe ) goto _test_eof633; case 633: switch( (*p) ) { - case 70: goto st634; - case 102: goto st634; + case 77: goto st634; + case 109: goto st634; } - goto tr1510; + goto tr1546; st634: if ( ++p == pe ) goto _test_eof634; case 634: - switch( (*p) ) { - case 79: goto st635; - case 111: goto st635; - } - goto tr1510; -st635: - if ( ++p == pe ) - goto _test_eof635; -case 635: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59570,49 +61366,49 @@ case 635: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1720; - case 32: goto tr1720; - case 40: goto tr1721; - case 41: goto tr1722; - case 3082: goto tr1723; - case 3131: goto tr1724; - case 3338: goto tr1725; - case 3387: goto tr1725; - case 3594: goto tr1726; - case 3643: goto tr1727; + case 9: goto tr1693; + case 32: goto tr1693; + case 40: goto tr1694; + case 41: goto tr1695; + case 3082: goto tr1696; + case 3131: goto tr1697; + case 3338: goto tr1698; + case 3387: goto tr1698; + case 3594: goto tr1699; + case 3643: goto tr1700; + } + goto tr1546; +st635: + if ( ++p == pe ) + goto _test_eof635; +case 635: + switch( (*p) ) { + case 67: goto st636; + case 99: goto st636; } - goto tr1510; + goto tr1546; st636: if ( ++p == pe ) goto _test_eof636; case 636: switch( (*p) ) { - case 84: goto st637; - case 116: goto st637; + case 73: goto st637; + case 105: goto st637; } - goto tr1510; + goto tr1546; st637: if ( ++p == pe ) goto _test_eof637; case 637: switch( (*p) ) { - case 80: goto st638; - case 112: goto st638; + case 68: goto st638; + case 100: goto st638; } - goto tr1510; + goto tr1546; st638: if ( ++p == pe ) goto _test_eof638; case 638: - switch( (*p) ) { - case 83: goto st639; - case 115: goto st639; - } - goto tr1510; -st639: - if ( ++p == pe ) - goto _test_eof639; -case 639: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59630,81 +61426,140 @@ case 639: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1731; - case 32: goto tr1731; - case 40: goto tr1732; - case 41: goto tr1733; - case 3082: goto tr1734; - case 3131: goto tr1735; - case 3338: goto tr1736; - case 3387: goto tr1736; - case 3594: goto tr1737; - case 3643: goto tr1738; + case 9: goto tr1704; + case 32: goto tr1704; + case 40: goto tr1705; + case 41: goto tr1706; + case 3082: goto tr1707; + case 3131: goto tr1708; + case 3338: goto tr1709; + case 3387: goto tr1709; + case 3594: goto tr1710; + case 3643: goto tr1711; + } + goto tr1546; +st639: + if ( ++p == pe ) + goto _test_eof639; +case 639: + switch( (*p) ) { + case 65: goto st640; + case 83: goto st643; + case 97: goto st640; + case 115: goto st643; } - goto tr1510; + goto tr1546; st640: if ( ++p == pe ) goto _test_eof640; case 640: switch( (*p) ) { - case 80: goto st641; - case 112: goto st641; + case 77: goto st641; + case 109: goto st641; } - goto tr1510; + goto tr1546; st641: if ( ++p == pe ) goto _test_eof641; case 641: switch( (*p) ) { - case 83: goto st642; - case 115: goto st642; + case 69: goto st642; + case 101: goto st642; } - goto tr1510; + goto tr1546; st642: if ( ++p == pe ) goto _test_eof642; case 642: - switch( (*p) ) { - case 69: goto st643; - case 101: goto st643; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1716; + case 32: goto tr1716; + case 40: goto tr1717; + case 41: goto tr1718; + case 3082: goto tr1719; + case 3131: goto tr1720; + case 3338: goto tr1721; + case 3387: goto tr1721; + case 3594: goto tr1722; + case 3643: goto tr1723; } - goto tr1510; + goto tr1546; st643: if ( ++p == pe ) goto _test_eof643; case 643: switch( (*p) ) { - case 67: goto st644; - case 99: goto st644; + case 75: goto st644; + case 107: goto st644; } - goto tr1510; + goto tr1546; st644: if ( ++p == pe ) goto _test_eof644; case 644: switch( (*p) ) { - case 75: goto st645; - case 107: goto st645; + case 69: goto st645; + case 101: goto st645; } - goto tr1510; + goto tr1546; st645: if ( ++p == pe ) goto _test_eof645; case 645: switch( (*p) ) { - case 69: goto st646; - case 101: goto st646; + case 89: goto st646; + case 121: goto st646; } - goto tr1510; + goto tr1546; st646: if ( ++p == pe ) goto _test_eof646; case 646: - switch( (*p) ) { - case 89: goto st647; - case 121: goto st647; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1727; + case 32: goto tr1727; + case 40: goto tr1728; + case 41: goto tr1729; + case 3082: goto tr1730; + case 3131: goto tr1731; + case 3338: goto tr1732; + case 3387: goto tr1732; + case 3594: goto tr1733; + case 3643: goto tr1734; } - goto tr1510; + goto tr1546; st647: if ( ++p == pe ) goto _test_eof647; @@ -59726,38 +61581,38 @@ case 647: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1746; - case 32: goto tr1746; - case 40: goto tr1747; - case 41: goto tr1748; - case 3082: goto tr1749; - case 3131: goto tr1750; - case 3338: goto tr1751; - case 3387: goto tr1751; - case 3594: goto tr1752; - case 3643: goto tr1753; - } - goto tr1510; + case 9: goto tr1735; + case 32: goto tr1735; + case 40: goto tr1736; + case 41: goto tr1737; + case 89: goto st648; + case 121: goto st648; + case 3082: goto tr1739; + case 3131: goto tr1740; + case 3338: goto tr1741; + case 3387: goto tr1741; + case 3594: goto tr1742; + case 3643: goto tr1743; + } + goto tr1546; st648: if ( ++p == pe ) goto _test_eof648; case 648: switch( (*p) ) { - case 69: goto st649; - case 88: goto st651; - case 101: goto st649; - case 120: goto st651; + case 78: goto st649; + case 110: goto st649; } - goto tr1510; + goto tr1546; st649: if ( ++p == pe ) goto _test_eof649; case 649: switch( (*p) ) { - case 89: goto st650; - case 121: goto st650; + case 67: goto st650; + case 99: goto st650; } - goto tr1510; + goto tr1546; st650: if ( ++p == pe ) goto _test_eof650; @@ -59779,75 +61634,56 @@ case 650: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1757; - case 32: goto tr1757; - case 40: goto tr1758; - case 41: goto tr1759; - case 3082: goto tr1760; - case 3131: goto tr1761; - case 3338: goto tr1762; - case 3387: goto tr1762; - case 3594: goto tr1763; - case 3643: goto tr1764; + case 9: goto tr1746; + case 32: goto tr1746; + case 40: goto tr1747; + case 41: goto tr1748; + case 3082: goto tr1749; + case 3131: goto tr1750; + case 3338: goto tr1751; + case 3387: goto tr1751; + case 3594: goto tr1752; + case 3643: goto tr1753; } - goto tr1510; + goto tr1546; st651: if ( ++p == pe ) goto _test_eof651; case 651: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1765; - case 32: goto tr1765; - case 40: goto tr1766; - case 41: goto tr1767; - case 3082: goto tr1768; - case 3131: goto tr1769; - case 3338: goto tr1770; - case 3387: goto tr1770; - case 3594: goto tr1771; - case 3643: goto tr1772; + switch( (*p) ) { + case 85: goto st652; + case 117: goto st652; } - goto tr1510; + goto tr1546; st652: if ( ++p == pe ) goto _test_eof652; case 652: switch( (*p) ) { - case 51: goto st653; - case 54: goto st655; - case 79: goto st657; - case 80: goto st659; - case 111: goto st657; - case 112: goto st659; + case 73: goto st653; + case 105: goto st653; } - goto tr1510; + goto tr1546; st653: if ( ++p == pe ) goto _test_eof653; case 653: - if ( (*p) == 50 ) - goto st654; - goto tr1510; + switch( (*p) ) { + case 52: goto st654; + case 54: goto st656; + } + goto tr1546; st654: if ( ++p == pe ) goto _test_eof654; case 654: + if ( (*p) == 56 ) + goto st655; + goto tr1546; +st655: + if ( ++p == pe ) + goto _test_eof655; +case 655: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59865,29 +61701,29 @@ case 654: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1778; - case 32: goto tr1778; - case 40: goto tr1779; - case 41: goto tr1780; - case 3082: goto tr1781; - case 3131: goto tr1782; - case 3338: goto tr1783; - case 3387: goto tr1783; - case 3594: goto tr1784; - case 3643: goto tr1785; + case 9: goto tr1759; + case 32: goto tr1759; + case 40: goto tr1760; + case 41: goto tr1761; + case 3082: goto tr1762; + case 3131: goto tr1763; + case 3338: goto tr1764; + case 3387: goto tr1764; + case 3594: goto tr1765; + case 3643: goto tr1766; } - goto tr1510; -st655: - if ( ++p == pe ) - goto _test_eof655; -case 655: - if ( (*p) == 52 ) - goto st656; - goto tr1510; + goto tr1546; st656: if ( ++p == pe ) goto _test_eof656; case 656: + if ( (*p) == 52 ) + goto st657; + goto tr1546; +st657: + if ( ++p == pe ) + goto _test_eof657; +case 657: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -59905,135 +61741,60 @@ case 656: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1787; - case 32: goto tr1787; - case 40: goto tr1788; - case 41: goto tr1789; - case 3082: goto tr1790; - case 3131: goto tr1791; - case 3338: goto tr1792; - case 3387: goto tr1792; - case 3594: goto tr1793; - case 3643: goto tr1794; + case 9: goto tr1768; + case 32: goto tr1768; + case 40: goto tr1769; + case 41: goto tr1770; + case 3082: goto tr1771; + case 3131: goto tr1772; + case 3338: goto tr1773; + case 3387: goto tr1773; + case 3594: goto tr1774; + case 3643: goto tr1775; } - goto tr1510; -st657: - if ( ++p == pe ) - goto _test_eof657; -case 657: - switch( (*p) ) { - case 67: goto st658; - case 99: goto st658; - } - goto tr1510; + goto tr1546; st658: if ( ++p == pe ) goto _test_eof658; case 658: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1796; - case 32: goto tr1796; - case 40: goto tr1797; - case 41: goto tr1798; - case 3082: goto tr1799; - case 3131: goto tr1800; - case 3338: goto tr1801; - case 3387: goto tr1801; - case 3594: goto tr1802; - case 3643: goto tr1803; + switch( (*p) ) { + case 73: goto st659; + case 84: goto st663; + case 105: goto st659; + case 116: goto st663; } - goto tr1510; + goto tr1546; st659: if ( ++p == pe ) goto _test_eof659; case 659: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1804; - case 32: goto tr1804; - case 40: goto tr1805; - case 41: goto tr1806; - case 3082: goto tr1807; - case 3131: goto tr1808; - case 3338: goto tr1809; - case 3387: goto tr1809; - case 3594: goto tr1810; - case 3643: goto tr1811; + switch( (*p) ) { + case 78: goto st660; + case 110: goto st660; } - goto tr1510; + goto tr1546; st660: if ( ++p == pe ) goto _test_eof660; case 660: switch( (*p) ) { - case 73: goto st661; - case 88: goto st665; - case 105: goto st661; - case 120: goto st665; + case 70: goto st661; + case 102: goto st661; } - goto tr1510; + goto tr1546; st661: if ( ++p == pe ) goto _test_eof661; case 661: switch( (*p) ) { - case 78: goto st662; - case 110: goto st662; + case 79: goto st662; + case 111: goto st662; } - goto tr1510; + goto tr1546; st662: if ( ++p == pe ) goto _test_eof662; case 662: - switch( (*p) ) { - case 70: goto st663; - case 102: goto st663; - } - goto tr1510; -st663: - if ( ++p == pe ) - goto _test_eof663; -case 663: - switch( (*p) ) { - case 79: goto st664; - case 111: goto st664; - } - goto tr1510; -st664: - if ( ++p == pe ) - goto _test_eof664; -case 664: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60051,22 +61812,49 @@ case 664: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1817; - case 32: goto tr1817; - case 40: goto tr1818; - case 41: goto tr1819; - case 3082: goto tr1820; - case 3131: goto tr1821; - case 3338: goto tr1822; - case 3387: goto tr1822; - case 3594: goto tr1823; - case 3643: goto tr1824; + case 9: goto tr1781; + case 32: goto tr1781; + case 40: goto tr1782; + case 41: goto tr1783; + case 3082: goto tr1784; + case 3131: goto tr1785; + case 3338: goto tr1786; + case 3387: goto tr1786; + case 3594: goto tr1787; + case 3643: goto tr1788; + } + goto tr1546; +st663: + if ( ++p == pe ) + goto _test_eof663; +case 663: + switch( (*p) ) { + case 84: goto st664; + case 116: goto st664; + } + goto tr1546; +st664: + if ( ++p == pe ) + goto _test_eof664; +case 664: + switch( (*p) ) { + case 80: goto st665; + case 112: goto st665; } - goto tr1510; + goto tr1546; st665: if ( ++p == pe ) goto _test_eof665; case 665: + switch( (*p) ) { + case 83: goto st666; + case 115: goto st666; + } + goto tr1546; +st666: + if ( ++p == pe ) + goto _test_eof666; +case 666: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60084,31 +61872,18 @@ case 665: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1825; - case 32: goto tr1825; - case 40: goto tr1826; - case 41: goto tr1827; - case 3082: goto tr1828; - case 3131: goto tr1829; - case 3338: goto tr1830; - case 3387: goto tr1830; - case 3594: goto tr1831; - case 3643: goto tr1832; + case 9: goto tr1792; + case 32: goto tr1792; + case 40: goto tr1793; + case 41: goto tr1794; + case 3082: goto tr1795; + case 3131: goto tr1796; + case 3338: goto tr1797; + case 3387: goto tr1797; + case 3594: goto tr1798; + case 3643: goto tr1799; } - goto tr1510; -st666: - if ( ++p == pe ) - goto _test_eof666; -case 666: - switch( (*p) ) { - case 65: goto st667; - case 73: goto st671; - case 83: goto st673; - case 97: goto st667; - case 105: goto st671; - case 115: goto st673; - } - goto tr1510; + goto tr1546; st667: if ( ++p == pe ) goto _test_eof667; @@ -60117,104 +61892,65 @@ case 667: case 80: goto st668; case 112: goto st668; } - goto tr1510; + goto tr1546; st668: if ( ++p == pe ) goto _test_eof668; case 668: switch( (*p) ) { - case 84: goto st669; - case 116: goto st669; + case 83: goto st669; + case 115: goto st669; } - goto tr1510; + goto tr1546; st669: if ( ++p == pe ) goto _test_eof669; case 669: switch( (*p) ) { - case 82: goto st670; - case 114: goto st670; + case 69: goto st670; + case 101: goto st670; } - goto tr1510; + goto tr1546; st670: if ( ++p == pe ) goto _test_eof670; case 670: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1839; - case 32: goto tr1839; - case 40: goto tr1840; - case 41: goto tr1841; - case 3082: goto tr1842; - case 3131: goto tr1843; - case 3338: goto tr1844; - case 3387: goto tr1844; - case 3594: goto tr1845; - case 3643: goto tr1846; + switch( (*p) ) { + case 67: goto st671; + case 99: goto st671; } - goto tr1510; + goto tr1546; st671: if ( ++p == pe ) goto _test_eof671; case 671: switch( (*p) ) { - case 68: goto st672; - case 100: goto st672; + case 75: goto st672; + case 107: goto st672; } - goto tr1510; + goto tr1546; st672: if ( ++p == pe ) goto _test_eof672; case 672: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1848; - case 32: goto tr1848; - case 40: goto tr1849; - case 41: goto tr1850; - case 3082: goto tr1851; - case 3131: goto tr1852; - case 3338: goto tr1853; - case 3387: goto tr1853; - case 3594: goto tr1854; - case 3643: goto tr1855; + switch( (*p) ) { + case 69: goto st673; + case 101: goto st673; } - goto tr1510; + goto tr1546; st673: if ( ++p == pe ) goto _test_eof673; case 673: + switch( (*p) ) { + case 89: goto st674; + case 121: goto st674; + } + goto tr1546; +st674: + if ( ++p == pe ) + goto _test_eof674; +case 674: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60232,33 +61968,42 @@ case 673: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1856; - case 32: goto tr1856; - case 40: goto tr1857; - case 41: goto tr1858; - case 69: goto st674; - case 101: goto st674; - case 3082: goto tr1860; - case 3131: goto tr1861; - case 3338: goto tr1862; - case 3387: goto tr1862; - case 3594: goto tr1863; - case 3643: goto tr1864; - } - goto tr1510; -st674: - if ( ++p == pe ) - goto _test_eof674; -case 674: - switch( (*p) ) { - case 67: goto st675; - case 99: goto st675; + case 9: goto tr1807; + case 32: goto tr1807; + case 40: goto tr1808; + case 41: goto tr1809; + case 3082: goto tr1810; + case 3131: goto tr1811; + case 3338: goto tr1812; + case 3387: goto tr1812; + case 3594: goto tr1813; + case 3643: goto tr1814; } - goto tr1510; + goto tr1546; st675: if ( ++p == pe ) goto _test_eof675; case 675: + switch( (*p) ) { + case 69: goto st676; + case 88: goto st678; + case 101: goto st676; + case 120: goto st678; + } + goto tr1546; +st676: + if ( ++p == pe ) + goto _test_eof676; +case 676: + switch( (*p) ) { + case 89: goto st677; + case 121: goto st677; + } + goto tr1546; +st677: + if ( ++p == pe ) + goto _test_eof677; +case 677: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60276,23 +62021,22 @@ case 675: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1866; - case 32: goto tr1866; - case 40: goto tr1867; - case 41: goto tr1868; - case 51: goto st676; - case 3082: goto tr1870; - case 3131: goto tr1871; - case 3338: goto tr1872; - case 3387: goto tr1872; - case 3594: goto tr1873; - case 3643: goto tr1874; + case 9: goto tr1818; + case 32: goto tr1818; + case 40: goto tr1819; + case 41: goto tr1820; + case 3082: goto tr1821; + case 3131: goto tr1822; + case 3338: goto tr1823; + case 3387: goto tr1823; + case 3594: goto tr1824; + case 3643: goto tr1825; } - goto tr1510; -st676: + goto tr1546; +st678: if ( ++p == pe ) - goto _test_eof676; -case 676: + goto _test_eof678; +case 678: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60310,56 +62054,38 @@ case 676: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1875; - case 32: goto tr1875; - case 40: goto tr1876; - case 41: goto tr1877; - case 80: goto st677; - case 112: goto st677; - case 3082: goto tr1879; - case 3131: goto tr1880; - case 3338: goto tr1881; - case 3387: goto tr1881; - case 3594: goto tr1882; - case 3643: goto tr1883; - } - goto tr1510; -st677: - if ( ++p == pe ) - goto _test_eof677; -case 677: - switch( (*p) ) { - case 65: goto st678; - case 97: goto st678; - } - goto tr1510; -st678: - if ( ++p == pe ) - goto _test_eof678; -case 678: - switch( (*p) ) { - case 82: goto st679; - case 114: goto st679; + case 9: goto tr1826; + case 32: goto tr1826; + case 40: goto tr1827; + case 41: goto tr1828; + case 3082: goto tr1829; + case 3131: goto tr1830; + case 3338: goto tr1831; + case 3387: goto tr1831; + case 3594: goto tr1832; + case 3643: goto tr1833; } - goto tr1510; + goto tr1546; st679: if ( ++p == pe ) goto _test_eof679; case 679: switch( (*p) ) { - case 65: goto st680; - case 97: goto st680; + case 51: goto st680; + case 54: goto st682; + case 79: goto st684; + case 80: goto st686; + case 111: goto st684; + case 112: goto st686; } - goto tr1510; + goto tr1546; st680: if ( ++p == pe ) goto _test_eof680; case 680: - switch( (*p) ) { - case 77: goto st681; - case 109: goto st681; - } - goto tr1510; + if ( (*p) == 50 ) + goto st681; + goto tr1546; st681: if ( ++p == pe ) goto _test_eof681; @@ -60381,99 +62107,171 @@ case 681: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1888; - case 32: goto tr1888; - case 40: goto tr1889; - case 41: goto tr1890; - case 3082: goto tr1891; - case 3131: goto tr1892; - case 3338: goto tr1893; - case 3387: goto tr1893; - case 3594: goto tr1894; - case 3643: goto tr1895; + case 9: goto tr1839; + case 32: goto tr1839; + case 40: goto tr1840; + case 41: goto tr1841; + case 3082: goto tr1842; + case 3131: goto tr1843; + case 3338: goto tr1844; + case 3387: goto tr1844; + case 3594: goto tr1845; + case 3643: goto tr1846; } - goto tr1510; + goto tr1546; st682: if ( ++p == pe ) goto _test_eof682; case 682: - switch( (*p) ) { - case 80: goto st683; - case 112: goto st683; - } - goto tr1510; + if ( (*p) == 52 ) + goto st683; + goto tr1546; st683: if ( ++p == pe ) goto _test_eof683; case 683: - switch( (*p) ) { - case 69: goto st684; - case 101: goto st684; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1848; + case 32: goto tr1848; + case 40: goto tr1849; + case 41: goto tr1850; + case 3082: goto tr1851; + case 3131: goto tr1852; + case 3338: goto tr1853; + case 3387: goto tr1853; + case 3594: goto tr1854; + case 3643: goto tr1855; } - goto tr1510; + goto tr1546; st684: if ( ++p == pe ) goto _test_eof684; case 684: switch( (*p) ) { - case 78: goto st685; - case 110: goto st685; + case 67: goto st685; + case 99: goto st685; } - goto tr1510; + goto tr1546; st685: if ( ++p == pe ) goto _test_eof685; case 685: - switch( (*p) ) { - case 80: goto st686; - case 112: goto st686; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1857; + case 32: goto tr1857; + case 40: goto tr1858; + case 41: goto tr1859; + case 3082: goto tr1860; + case 3131: goto tr1861; + case 3338: goto tr1862; + case 3387: goto tr1862; + case 3594: goto tr1863; + case 3643: goto tr1864; } - goto tr1510; + goto tr1546; st686: if ( ++p == pe ) goto _test_eof686; case 686: - switch( (*p) ) { - case 71: goto st687; - case 103: goto st687; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1865; + case 32: goto tr1865; + case 40: goto tr1866; + case 41: goto tr1867; + case 3082: goto tr1868; + case 3131: goto tr1869; + case 3338: goto tr1870; + case 3387: goto tr1870; + case 3594: goto tr1871; + case 3643: goto tr1872; } - goto tr1510; + goto tr1546; st687: if ( ++p == pe ) goto _test_eof687; case 687: switch( (*p) ) { - case 80: goto st688; - case 112: goto st688; + case 73: goto st688; + case 88: goto st692; + case 105: goto st688; + case 120: goto st692; } - goto tr1510; + goto tr1546; st688: if ( ++p == pe ) goto _test_eof688; case 688: switch( (*p) ) { - case 75: goto st689; - case 107: goto st689; + case 78: goto st689; + case 110: goto st689; } - goto tr1510; + goto tr1546; st689: if ( ++p == pe ) goto _test_eof689; case 689: switch( (*p) ) { - case 69: goto st690; - case 101: goto st690; + case 70: goto st690; + case 102: goto st690; } - goto tr1510; + goto tr1546; st690: if ( ++p == pe ) goto _test_eof690; case 690: switch( (*p) ) { - case 89: goto st691; - case 121: goto st691; + case 79: goto st691; + case 111: goto st691; } - goto tr1510; + goto tr1546; st691: if ( ++p == pe ) goto _test_eof691; @@ -60495,40 +62293,22 @@ case 691: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1905; - case 32: goto tr1905; - case 40: goto tr1906; - case 41: goto tr1907; - case 3082: goto tr1908; - case 3131: goto tr1909; - case 3338: goto tr1910; - case 3387: goto tr1910; - case 3594: goto tr1911; - case 3643: goto tr1912; + case 9: goto tr1878; + case 32: goto tr1878; + case 40: goto tr1879; + case 41: goto tr1880; + case 3082: goto tr1881; + case 3131: goto tr1882; + case 3338: goto tr1883; + case 3387: goto tr1883; + case 3594: goto tr1884; + case 3643: goto tr1885; } - goto tr1510; + goto tr1546; st692: if ( ++p == pe ) goto _test_eof692; case 692: - switch( (*p) ) { - case 84: goto st693; - case 116: goto st693; - } - goto tr1510; -st693: - if ( ++p == pe ) - goto _test_eof693; -case 693: - switch( (*p) ) { - case 82: goto st694; - case 114: goto st694; - } - goto tr1510; -st694: - if ( ++p == pe ) - goto _test_eof694; -case 694: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60546,82 +62326,137 @@ case 694: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1915; - case 32: goto tr1915; - case 40: goto tr1916; - case 41: goto tr1917; - case 3082: goto tr1918; - case 3131: goto tr1919; - case 3338: goto tr1920; - case 3387: goto tr1920; - case 3594: goto tr1921; - case 3643: goto tr1922; + case 9: goto tr1886; + case 32: goto tr1886; + case 40: goto tr1887; + case 41: goto tr1888; + case 3082: goto tr1889; + case 3131: goto tr1890; + case 3338: goto tr1891; + case 3387: goto tr1891; + case 3594: goto tr1892; + case 3643: goto tr1893; + } + goto tr1546; +st693: + if ( ++p == pe ) + goto _test_eof693; +case 693: + switch( (*p) ) { + case 65: goto st694; + case 73: goto st698; + case 83: goto st700; + case 97: goto st694; + case 105: goto st698; + case 115: goto st700; + } + goto tr1546; +st694: + if ( ++p == pe ) + goto _test_eof694; +case 694: + switch( (*p) ) { + case 80: goto st695; + case 112: goto st695; } - goto tr1510; + goto tr1546; st695: if ( ++p == pe ) goto _test_eof695; case 695: switch( (*p) ) { - case 69: goto st696; - case 80: goto st702; - case 82: goto st703; - case 84: goto st707; - case 101: goto st696; - case 112: goto st702; - case 114: goto st703; - case 116: goto st707; + case 84: goto st696; + case 116: goto st696; } - goto tr1510; + goto tr1546; st696: if ( ++p == pe ) goto _test_eof696; case 696: switch( (*p) ) { - case 83: goto st697; - case 115: goto st697; + case 82: goto st697; + case 114: goto st697; } - goto tr1510; + goto tr1546; st697: if ( ++p == pe ) goto _test_eof697; case 697: - switch( (*p) ) { - case 73: goto st698; - case 105: goto st698; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1900; + case 32: goto tr1900; + case 40: goto tr1901; + case 41: goto tr1902; + case 3082: goto tr1903; + case 3131: goto tr1904; + case 3338: goto tr1905; + case 3387: goto tr1905; + case 3594: goto tr1906; + case 3643: goto tr1907; } - goto tr1510; + goto tr1546; st698: if ( ++p == pe ) goto _test_eof698; case 698: switch( (*p) ) { - case 78: goto st699; - case 110: goto st699; + case 68: goto st699; + case 100: goto st699; } - goto tr1510; + goto tr1546; st699: if ( ++p == pe ) goto _test_eof699; case 699: - switch( (*p) ) { - case 70: goto st700; - case 102: goto st700; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr1909; + case 32: goto tr1909; + case 40: goto tr1910; + case 41: goto tr1911; + case 3082: goto tr1912; + case 3131: goto tr1913; + case 3338: goto tr1914; + case 3387: goto tr1914; + case 3594: goto tr1915; + case 3643: goto tr1916; } - goto tr1510; + goto tr1546; st700: if ( ++p == pe ) goto _test_eof700; case 700: - switch( (*p) ) { - case 79: goto st701; - case 111: goto st701; - } - goto tr1510; -st701: - if ( ++p == pe ) - goto _test_eof701; -case 701: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60639,18 +62474,29 @@ case 701: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1932; - case 32: goto tr1932; - case 40: goto tr1933; - case 41: goto tr1934; - case 3082: goto tr1935; - case 3131: goto tr1936; - case 3338: goto tr1937; - case 3387: goto tr1937; - case 3594: goto tr1938; - case 3643: goto tr1939; + case 9: goto tr1917; + case 32: goto tr1917; + case 40: goto tr1918; + case 41: goto tr1919; + case 69: goto st701; + case 101: goto st701; + case 3082: goto tr1921; + case 3131: goto tr1922; + case 3338: goto tr1923; + case 3387: goto tr1923; + case 3594: goto tr1924; + case 3643: goto tr1925; + } + goto tr1546; +st701: + if ( ++p == pe ) + goto _test_eof701; +case 701: + switch( (*p) ) { + case 67: goto st702; + case 99: goto st702; } - goto tr1510; + goto tr1546; st702: if ( ++p == pe ) goto _test_eof702; @@ -60672,49 +62518,23 @@ case 702: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1940; - case 32: goto tr1940; - case 40: goto tr1941; - case 41: goto tr1942; - case 3082: goto tr1943; - case 3131: goto tr1944; - case 3338: goto tr1945; - case 3387: goto tr1945; - case 3594: goto tr1946; - case 3643: goto tr1947; + case 9: goto tr1927; + case 32: goto tr1927; + case 40: goto tr1928; + case 41: goto tr1929; + case 51: goto st703; + case 3082: goto tr1931; + case 3131: goto tr1932; + case 3338: goto tr1933; + case 3387: goto tr1933; + case 3594: goto tr1934; + case 3643: goto tr1935; } - goto tr1510; + goto tr1546; st703: if ( ++p == pe ) goto _test_eof703; case 703: - switch( (*p) ) { - case 83: goto st704; - case 115: goto st704; - } - goto tr1510; -st704: - if ( ++p == pe ) - goto _test_eof704; -case 704: - switch( (*p) ) { - case 73: goto st705; - case 105: goto st705; - } - goto tr1510; -st705: - if ( ++p == pe ) - goto _test_eof705; -case 705: - switch( (*p) ) { - case 71: goto st706; - case 103: goto st706; - } - goto tr1510; -st706: - if ( ++p == pe ) - goto _test_eof706; -case 706: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60732,22 +62552,60 @@ case 706: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1951; - case 32: goto tr1951; - case 40: goto tr1952; - case 41: goto tr1953; - case 3082: goto tr1954; - case 3131: goto tr1955; - case 3338: goto tr1956; - case 3387: goto tr1956; - case 3594: goto tr1957; - case 3643: goto tr1958; + case 9: goto tr1936; + case 32: goto tr1936; + case 40: goto tr1937; + case 41: goto tr1938; + case 80: goto st704; + case 112: goto st704; + case 3082: goto tr1940; + case 3131: goto tr1941; + case 3338: goto tr1942; + case 3387: goto tr1942; + case 3594: goto tr1943; + case 3643: goto tr1944; + } + goto tr1546; +st704: + if ( ++p == pe ) + goto _test_eof704; +case 704: + switch( (*p) ) { + case 65: goto st705; + case 97: goto st705; + } + goto tr1546; +st705: + if ( ++p == pe ) + goto _test_eof705; +case 705: + switch( (*p) ) { + case 82: goto st706; + case 114: goto st706; + } + goto tr1546; +st706: + if ( ++p == pe ) + goto _test_eof706; +case 706: + switch( (*p) ) { + case 65: goto st707; + case 97: goto st707; } - goto tr1510; + goto tr1546; st707: if ( ++p == pe ) goto _test_eof707; case 707: + switch( (*p) ) { + case 77: goto st708; + case 109: goto st708; + } + goto tr1546; +st708: + if ( ++p == pe ) + goto _test_eof708; +case 708: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60765,203 +62623,103 @@ case 707: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr1959; - case 32: goto tr1959; - case 40: goto tr1960; - case 41: goto tr1961; - case 3082: goto tr1962; - case 3131: goto tr1963; - case 3338: goto tr1964; - case 3387: goto tr1964; - case 3594: goto tr1965; - case 3643: goto tr1966; + case 9: goto tr1949; + case 32: goto tr1949; + case 40: goto tr1950; + case 41: goto tr1951; + case 3082: goto tr1952; + case 3131: goto tr1953; + case 3338: goto tr1954; + case 3387: goto tr1954; + case 3594: goto tr1955; + case 3643: goto tr1956; } - goto tr1510; -st708: - if ( ++p == pe ) - goto _test_eof708; -case 708: - switch( (*p) ) { - case 77: goto st709; - case 79: goto st714; - case 80: goto st716; - case 82: goto st718; - case 83: goto st720; - case 86: goto st724; - case 109: goto st709; - case 111: goto st714; - case 112: goto st716; - case 114: goto st718; - case 115: goto st720; - case 118: goto st724; - } - goto tr1510; + goto tr1546; st709: if ( ++p == pe ) goto _test_eof709; case 709: switch( (*p) ) { - case 73: goto st710; - case 105: goto st710; + case 80: goto st710; + case 112: goto st710; } - goto tr1510; + goto tr1546; st710: if ( ++p == pe ) goto _test_eof710; case 710: switch( (*p) ) { - case 77: goto st711; - case 109: goto st711; + case 69: goto st711; + case 101: goto st711; } - goto tr1510; + goto tr1546; st711: if ( ++p == pe ) goto _test_eof711; case 711: switch( (*p) ) { - case 69: goto st712; - case 101: goto st712; + case 78: goto st712; + case 110: goto st712; } - goto tr1510; + goto tr1546; st712: if ( ++p == pe ) goto _test_eof712; case 712: switch( (*p) ) { - case 65: goto st713; - case 97: goto st713; + case 80: goto st713; + case 112: goto st713; } - goto tr1510; + goto tr1546; st713: if ( ++p == pe ) goto _test_eof713; case 713: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1977; - case 32: goto tr1977; - case 40: goto tr1978; - case 41: goto tr1979; - case 3082: goto tr1980; - case 3131: goto tr1981; - case 3338: goto tr1982; - case 3387: goto tr1982; - case 3594: goto tr1983; - case 3643: goto tr1984; + switch( (*p) ) { + case 71: goto st714; + case 103: goto st714; } - goto tr1510; + goto tr1546; st714: if ( ++p == pe ) goto _test_eof714; case 714: switch( (*p) ) { - case 65: goto st715; - case 97: goto st715; + case 80: goto st715; + case 112: goto st715; } - goto tr1510; + goto tr1546; st715: if ( ++p == pe ) goto _test_eof715; case 715: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1986; - case 32: goto tr1986; - case 40: goto tr1987; - case 41: goto tr1988; - case 3082: goto tr1989; - case 3131: goto tr1990; - case 3338: goto tr1991; - case 3387: goto tr1991; - case 3594: goto tr1992; - case 3643: goto tr1993; + switch( (*p) ) { + case 75: goto st716; + case 107: goto st716; } - goto tr1510; + goto tr1546; st716: if ( ++p == pe ) goto _test_eof716; case 716: switch( (*p) ) { - case 70: goto st717; - case 102: goto st717; + case 69: goto st717; + case 101: goto st717; } - goto tr1510; + goto tr1546; st717: if ( ++p == pe ) goto _test_eof717; case 717: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr1995; - case 32: goto tr1995; - case 40: goto tr1996; - case 41: goto tr1997; - case 3082: goto tr1998; - case 3131: goto tr1999; - case 3338: goto tr2000; - case 3387: goto tr2000; - case 3594: goto tr2001; - case 3643: goto tr2002; + switch( (*p) ) { + case 89: goto st718; + case 121: goto st718; } - goto tr1510; + goto tr1546; st718: if ( ++p == pe ) goto _test_eof718; case 718: - switch( (*p) ) { - case 86: goto st719; - case 118: goto st719; - } - goto tr1510; -st719: - if ( ++p == pe ) - goto _test_eof719; -case 719: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -60979,49 +62737,40 @@ case 719: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2004; - case 32: goto tr2004; - case 40: goto tr2005; - case 41: goto tr2006; - case 3082: goto tr2007; - case 3131: goto tr2008; - case 3338: goto tr2009; - case 3387: goto tr2009; - case 3594: goto tr2010; - case 3643: goto tr2011; + case 9: goto tr1966; + case 32: goto tr1966; + case 40: goto tr1967; + case 41: goto tr1968; + case 3082: goto tr1969; + case 3131: goto tr1970; + case 3338: goto tr1971; + case 3387: goto tr1971; + case 3594: goto tr1972; + case 3643: goto tr1973; + } + goto tr1546; +st719: + if ( ++p == pe ) + goto _test_eof719; +case 719: + switch( (*p) ) { + case 84: goto st720; + case 116: goto st720; } - goto tr1510; + goto tr1546; st720: if ( ++p == pe ) goto _test_eof720; case 720: switch( (*p) ) { - case 72: goto st721; - case 104: goto st721; + case 82: goto st721; + case 114: goto st721; } - goto tr1510; + goto tr1546; st721: if ( ++p == pe ) goto _test_eof721; case 721: - switch( (*p) ) { - case 70: goto st722; - case 102: goto st722; - } - goto tr1510; -st722: - if ( ++p == pe ) - goto _test_eof722; -case 722: - switch( (*p) ) { - case 80: goto st723; - case 112: goto st723; - } - goto tr1510; -st723: - if ( ++p == pe ) - goto _test_eof723; -case 723: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61039,40 +62788,82 @@ case 723: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2015; - case 32: goto tr2015; - case 40: goto tr2016; - case 41: goto tr2017; - case 3082: goto tr2018; - case 3131: goto tr2019; - case 3338: goto tr2020; - case 3387: goto tr2020; - case 3594: goto tr2021; - case 3643: goto tr2022; + case 9: goto tr1976; + case 32: goto tr1976; + case 40: goto tr1977; + case 41: goto tr1978; + case 3082: goto tr1979; + case 3131: goto tr1980; + case 3338: goto tr1981; + case 3387: goto tr1981; + case 3594: goto tr1982; + case 3643: goto tr1983; } - goto tr1510; -st724: + goto tr1546; +st722: if ( ++p == pe ) - goto _test_eof724; -case 724: + goto _test_eof722; +case 722: switch( (*p) ) { - case 67: goto st725; - case 99: goto st725; + case 69: goto st723; + case 80: goto st729; + case 82: goto st730; + case 84: goto st734; + case 101: goto st723; + case 112: goto st729; + case 114: goto st730; + case 116: goto st734; } - goto tr1510; -st725: + goto tr1546; +st723: if ( ++p == pe ) - goto _test_eof725; -case 725: + goto _test_eof723; +case 723: + switch( (*p) ) { + case 83: goto st724; + case 115: goto st724; + } + goto tr1546; +st724: + if ( ++p == pe ) + goto _test_eof724; +case 724: switch( (*p) ) { - case 66: goto st726; - case 98: goto st726; + case 73: goto st725; + case 105: goto st725; } - goto tr1510; + goto tr1546; +st725: + if ( ++p == pe ) + goto _test_eof725; +case 725: + switch( (*p) ) { + case 78: goto st726; + case 110: goto st726; + } + goto tr1546; st726: if ( ++p == pe ) goto _test_eof726; case 726: + switch( (*p) ) { + case 70: goto st727; + case 102: goto st727; + } + goto tr1546; +st727: + if ( ++p == pe ) + goto _test_eof727; +case 727: + switch( (*p) ) { + case 79: goto st728; + case 111: goto st728; + } + goto tr1546; +st728: + if ( ++p == pe ) + goto _test_eof728; +case 728: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61090,53 +62881,22 @@ case 726: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2025; - case 32: goto tr2025; - case 40: goto tr2026; - case 41: goto tr2027; - case 3082: goto tr2028; - case 3131: goto tr2029; - case 3338: goto tr2030; - case 3387: goto tr2030; - case 3594: goto tr2031; - case 3643: goto tr2032; - } - goto tr1510; -st727: - if ( ++p == pe ) - goto _test_eof727; -case 727: - switch( (*p) ) { - case 76: goto st728; - case 88: goto st731; - case 89: goto st733; - case 108: goto st728; - case 120: goto st731; - case 121: goto st733; + case 9: goto tr1993; + case 32: goto tr1993; + case 40: goto tr1994; + case 41: goto tr1995; + case 3082: goto tr1996; + case 3131: goto tr1997; + case 3338: goto tr1998; + case 3387: goto tr1998; + case 3594: goto tr1999; + case 3643: goto tr2000; } - goto tr1510; -st728: - if ( ++p == pe ) - goto _test_eof728; -case 728: - switch( (*p) ) { - case 83: goto st729; - case 115: goto st729; - } - goto tr1510; + goto tr1546; st729: if ( ++p == pe ) goto _test_eof729; case 729: - switch( (*p) ) { - case 65: goto st730; - case 97: goto st730; - } - goto tr1510; -st730: - if ( ++p == pe ) - goto _test_eof730; -case 730: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61154,31 +62914,49 @@ case 730: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2038; - case 32: goto tr2038; - case 40: goto tr2039; - case 41: goto tr2040; - case 3082: goto tr2041; - case 3131: goto tr2042; - case 3338: goto tr2043; - case 3387: goto tr2043; - case 3594: goto tr2044; - case 3643: goto tr2045; + case 9: goto tr2001; + case 32: goto tr2001; + case 40: goto tr2002; + case 41: goto tr2003; + case 3082: goto tr2004; + case 3131: goto tr2005; + case 3338: goto tr2006; + case 3387: goto tr2006; + case 3594: goto tr2007; + case 3643: goto tr2008; + } + goto tr1546; +st730: + if ( ++p == pe ) + goto _test_eof730; +case 730: + switch( (*p) ) { + case 83: goto st731; + case 115: goto st731; } - goto tr1510; + goto tr1546; st731: if ( ++p == pe ) goto _test_eof731; case 731: switch( (*p) ) { - case 84: goto st732; - case 116: goto st732; + case 73: goto st732; + case 105: goto st732; } - goto tr1510; + goto tr1546; st732: if ( ++p == pe ) goto _test_eof732; case 732: + switch( (*p) ) { + case 71: goto st733; + case 103: goto st733; + } + goto tr1546; +st733: + if ( ++p == pe ) + goto _test_eof733; +case 733: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61196,82 +62974,22 @@ case 732: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2047; - case 32: goto tr2047; - case 40: goto tr2048; - case 41: goto tr2049; - case 3082: goto tr2050; - case 3131: goto tr2051; - case 3338: goto tr2052; - case 3387: goto tr2052; - case 3594: goto tr2053; - case 3643: goto tr2054; - } - goto tr1510; -st733: - if ( ++p == pe ) - goto _test_eof733; -case 733: - switch( (*p) ) { - case 80: goto st734; - case 112: goto st734; + case 9: goto tr2012; + case 32: goto tr2012; + case 40: goto tr2013; + case 41: goto tr2014; + case 3082: goto tr2015; + case 3131: goto tr2016; + case 3338: goto tr2017; + case 3387: goto tr2017; + case 3594: goto tr2018; + case 3643: goto tr2019; } - goto tr1510; + goto tr1546; st734: if ( ++p == pe ) goto _test_eof734; case 734: - switch( (*p) ) { - case 69: goto st735; - case 101: goto st735; - } - goto tr1510; -st735: - if ( ++p == pe ) - goto _test_eof735; -case 735: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2057; - goto tr1510; -tr2057: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} - } - } - goto st736; -tr2061: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} - } - } - goto st736; -st736: - if ( ++p == pe ) - goto _test_eof736; -case 736: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61289,42 +63007,77 @@ case 736: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2058; - case 32: goto tr2058; - case 40: goto tr2059; - case 41: goto tr2060; - case 3082: goto tr2062; - case 3131: goto tr2063; - case 3338: goto tr2064; - case 3387: goto tr2064; - case 3594: goto tr2065; - case 3643: goto tr2066; + case 9: goto tr2020; + case 32: goto tr2020; + case 40: goto tr2021; + case 41: goto tr2022; + case 3082: goto tr2023; + case 3131: goto tr2024; + case 3338: goto tr2025; + case 3387: goto tr2025; + case 3594: goto tr2026; + case 3643: goto tr2027; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2061; - goto tr1510; + goto tr1546; +st735: + if ( ++p == pe ) + goto _test_eof735; +case 735: + switch( (*p) ) { + case 77: goto st736; + case 79: goto st741; + case 80: goto st743; + case 82: goto st745; + case 83: goto st747; + case 86: goto st751; + case 109: goto st736; + case 111: goto st741; + case 112: goto st743; + case 114: goto st745; + case 115: goto st747; + case 118: goto st751; + } + goto tr1546; +st736: + if ( ++p == pe ) + goto _test_eof736; +case 736: + switch( (*p) ) { + case 73: goto st737; + case 105: goto st737; + } + goto tr1546; st737: if ( ++p == pe ) goto _test_eof737; case 737: switch( (*p) ) { - case 82: goto st738; - case 114: goto st738; + case 77: goto st738; + case 109: goto st738; } - goto tr1510; + goto tr1546; st738: if ( ++p == pe ) goto _test_eof738; case 738: switch( (*p) ) { - case 73: goto st739; - case 105: goto st739; + case 69: goto st739; + case 101: goto st739; } - goto tr1510; + goto tr1546; st739: if ( ++p == pe ) goto _test_eof739; case 739: + switch( (*p) ) { + case 65: goto st740; + case 97: goto st740; + } + goto tr1546; +st740: + if ( ++p == pe ) + goto _test_eof740; +case 740: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61342,67 +63095,73 @@ case 739: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2069; - case 32: goto tr2069; - case 40: goto tr2070; - case 41: goto tr2071; - case 3082: goto tr2072; - case 3131: goto tr2073; - case 3338: goto tr2074; - case 3387: goto tr2074; - case 3594: goto tr2075; - case 3643: goto tr2076; - } - goto tr1510; -st740: - if ( ++p == pe ) - goto _test_eof740; -case 740: - switch( (*p) ) { - case 65: goto st741; - case 97: goto st741; + case 9: goto tr2038; + case 32: goto tr2038; + case 40: goto tr2039; + case 41: goto tr2040; + case 3082: goto tr2041; + case 3131: goto tr2042; + case 3338: goto tr2043; + case 3387: goto tr2043; + case 3594: goto tr2044; + case 3643: goto tr2045; } - goto tr1510; + goto tr1546; st741: if ( ++p == pe ) goto _test_eof741; case 741: switch( (*p) ) { - case 76: goto st742; - case 108: goto st742; + case 65: goto st742; + case 97: goto st742; } - goto tr1510; + goto tr1546; st742: if ( ++p == pe ) goto _test_eof742; case 742: - switch( (*p) ) { - case 76: goto st743; - case 108: goto st743; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2047; + case 32: goto tr2047; + case 40: goto tr2048; + case 41: goto tr2049; + case 3082: goto tr2050; + case 3131: goto tr2051; + case 3338: goto tr2052; + case 3387: goto tr2052; + case 3594: goto tr2053; + case 3643: goto tr2054; } - goto tr1510; + goto tr1546; st743: if ( ++p == pe ) goto _test_eof743; case 743: switch( (*p) ) { - case 69: goto st744; - case 101: goto st744; + case 70: goto st744; + case 102: goto st744; } - goto tr1510; + goto tr1546; st744: if ( ++p == pe ) goto _test_eof744; case 744: - switch( (*p) ) { - case 84: goto st745; - case 116: goto st745; - } - goto tr1510; -st745: - if ( ++p == pe ) - goto _test_eof745; -case 745: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61420,67 +63179,91 @@ case 745: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2082; - case 32: goto tr2082; - case 40: goto tr2083; - case 41: goto tr2084; - case 3082: goto tr2085; - case 3131: goto tr2086; - case 3338: goto tr2087; - case 3387: goto tr2087; - case 3594: goto tr2088; - case 3643: goto tr2089; + case 9: goto tr2056; + case 32: goto tr2056; + case 40: goto tr2057; + case 41: goto tr2058; + case 3082: goto tr2059; + case 3131: goto tr2060; + case 3338: goto tr2061; + case 3387: goto tr2061; + case 3594: goto tr2062; + case 3643: goto tr2063; } - goto tr1510; + goto tr1546; +st745: + if ( ++p == pe ) + goto _test_eof745; +case 745: + switch( (*p) ) { + case 86: goto st746; + case 118: goto st746; + } + goto tr1546; st746: if ( ++p == pe ) goto _test_eof746; case 746: - switch( (*p) ) { - case 79: goto st747; - case 111: goto st747; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2065; + case 32: goto tr2065; + case 40: goto tr2066; + case 41: goto tr2067; + case 3082: goto tr2068; + case 3131: goto tr2069; + case 3338: goto tr2070; + case 3387: goto tr2070; + case 3594: goto tr2071; + case 3643: goto tr2072; } - goto tr1510; + goto tr1546; st747: if ( ++p == pe ) goto _test_eof747; case 747: switch( (*p) ) { - case 78: goto st748; - case 110: goto st748; + case 72: goto st748; + case 104: goto st748; } - goto tr1510; + goto tr1546; st748: if ( ++p == pe ) goto _test_eof748; case 748: switch( (*p) ) { - case 69: goto st749; - case 101: goto st749; + case 70: goto st749; + case 102: goto st749; } - goto tr1510; + goto tr1546; st749: if ( ++p == pe ) goto _test_eof749; case 749: switch( (*p) ) { - case 77: goto st750; - case 109: goto st750; + case 80: goto st750; + case 112: goto st750; } - goto tr1510; + goto tr1546; st750: if ( ++p == pe ) goto _test_eof750; case 750: - switch( (*p) ) { - case 68: goto st751; - case 100: goto st751; - } - goto tr1510; -st751: - if ( ++p == pe ) - goto _test_eof751; -case 751: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61498,49 +63281,40 @@ case 751: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2095; - case 32: goto tr2095; - case 40: goto tr2096; - case 41: goto tr2097; - case 3082: goto tr2098; - case 3131: goto tr2099; - case 3338: goto tr2100; - case 3387: goto tr2100; - case 3594: goto tr2101; - case 3643: goto tr2102; + case 9: goto tr2076; + case 32: goto tr2076; + case 40: goto tr2077; + case 41: goto tr2078; + case 3082: goto tr2079; + case 3131: goto tr2080; + case 3338: goto tr2081; + case 3387: goto tr2081; + case 3594: goto tr2082; + case 3643: goto tr2083; + } + goto tr1546; +st751: + if ( ++p == pe ) + goto _test_eof751; +case 751: + switch( (*p) ) { + case 67: goto st752; + case 99: goto st752; } - goto tr1510; + goto tr1546; st752: if ( ++p == pe ) goto _test_eof752; case 752: switch( (*p) ) { - case 83: goto st753; - case 115: goto st753; + case 66: goto st753; + case 98: goto st753; } - goto tr1510; + goto tr1546; st753: if ( ++p == pe ) goto _test_eof753; case 753: - switch( (*p) ) { - case 68: goto st754; - case 100: goto st754; - } - goto tr1510; -st754: - if ( ++p == pe ) - goto _test_eof754; -case 754: - switch( (*p) ) { - case 66: goto st755; - case 98: goto st755; - } - goto tr1510; -st755: - if ( ++p == pe ) - goto _test_eof755; -case 755: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61558,49 +63332,53 @@ case 755: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2106; - case 32: goto tr2106; - case 40: goto tr2107; - case 41: goto tr2108; - case 3082: goto tr2109; - case 3131: goto tr2110; - case 3338: goto tr2111; - case 3387: goto tr2111; - case 3594: goto tr2112; - case 3643: goto tr2113; + case 9: goto tr2086; + case 32: goto tr2086; + case 40: goto tr2087; + case 41: goto tr2088; + case 3082: goto tr2089; + case 3131: goto tr2090; + case 3338: goto tr2091; + case 3387: goto tr2091; + case 3594: goto tr2092; + case 3643: goto tr2093; } - goto tr1510; -st756: + goto tr1546; +st754: if ( ++p == pe ) - goto _test_eof756; -case 756: + goto _test_eof754; +case 754: switch( (*p) ) { - case 73: goto st757; - case 105: goto st757; + case 76: goto st755; + case 88: goto st758; + case 89: goto st760; + case 108: goto st755; + case 120: goto st758; + case 121: goto st760; } - goto tr1510; -st757: + goto tr1546; +st755: if ( ++p == pe ) - goto _test_eof757; -case 757: + goto _test_eof755; +case 755: switch( (*p) ) { - case 65: goto st758; - case 97: goto st758; + case 83: goto st756; + case 115: goto st756; } - goto tr1510; -st758: + goto tr1546; +st756: if ( ++p == pe ) - goto _test_eof758; -case 758: + goto _test_eof756; +case 756: switch( (*p) ) { - case 83: goto st759; - case 115: goto st759; + case 65: goto st757; + case 97: goto st757; } - goto tr1510; -st759: + goto tr1546; +st757: if ( ++p == pe ) - goto _test_eof759; -case 759: + goto _test_eof757; +case 757: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61618,31 +63396,31 @@ case 759: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2117; - case 32: goto tr2117; - case 40: goto tr2118; - case 41: goto tr2119; - case 3082: goto tr2120; - case 3131: goto tr2121; - case 3338: goto tr2122; - case 3387: goto tr2122; - case 3594: goto tr2123; - case 3643: goto tr2124; + case 9: goto tr2099; + case 32: goto tr2099; + case 40: goto tr2100; + case 41: goto tr2101; + case 3082: goto tr2102; + case 3131: goto tr2103; + case 3338: goto tr2104; + case 3387: goto tr2104; + case 3594: goto tr2105; + case 3643: goto tr2106; } - goto tr1510; -st760: + goto tr1546; +st758: if ( ++p == pe ) - goto _test_eof760; -case 760: + goto _test_eof758; +case 758: switch( (*p) ) { - case 76: goto st761; - case 108: goto st761; + case 84: goto st759; + case 116: goto st759; } - goto tr1510; -st761: + goto tr1546; +st759: if ( ++p == pe ) - goto _test_eof761; -case 761: + goto _test_eof759; +case 759: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -61660,112 +63438,44 @@ case 761: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2126; - case 32: goto tr2126; - case 40: goto tr2127; - case 41: goto tr2128; - case 3082: goto tr2129; - case 3131: goto tr2130; - case 3338: goto tr2131; - case 3387: goto tr2131; - case 3594: goto tr2132; - case 3643: goto tr2133; + case 9: goto tr2108; + case 32: goto tr2108; + case 40: goto tr2109; + case 41: goto tr2110; + case 3082: goto tr2111; + case 3131: goto tr2112; + case 3338: goto tr2113; + case 3387: goto tr2113; + case 3594: goto tr2114; + case 3643: goto tr2115; } - goto tr1510; -st762: + goto tr1546; +st760: if ( ++p == pe ) - goto _test_eof762; -case 762: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st763; - case 32: goto st763; - case 40: goto tr2136; - case 41: goto tr2137; - case 2058: goto tr2138; - case 2107: goto tr2139; - } - goto tr2134; -tr2136: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = true; - } - goto st763; -tr2137: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; - } - goto st763; -tr2138: - { - s->line_counter++; - } - goto st763; -tr2169: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 763; goto _out;} - } - } - } - { - s->line_counter++; + goto _test_eof760; +case 760: + switch( (*p) ) { + case 80: goto st761; + case 112: goto st761; } - goto st763; -st763: + goto tr1546; +st761: if ( ++p == pe ) - goto _test_eof763; -case 763: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto st763; - case 32: goto st763; - case 40: goto tr2136; - case 41: goto tr2137; - case 2058: goto tr2138; - case 2107: goto tr2139; + goto _test_eof761; +case 761: + switch( (*p) ) { + case 69: goto st762; + case 101: goto st762; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2141; - goto tr2140; -tr2141: + goto tr1546; +st762: + if ( ++p == pe ) + goto _test_eof762; +case 762: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2118; + goto tr1546; +tr2118: { s->number64 = 0; } @@ -61780,11 +63490,11 @@ tr2141: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st764; -tr2145: + goto st763; +tr2122: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -61796,242 +63506,145 @@ tr2145: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st764; -st764: + goto st763; +st763: if ( ++p == pe ) - goto _test_eof764; -case 764: + goto _test_eof763; +case 763: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2142; - case 32: goto tr2142; - case 40: goto tr2143; - case 41: goto tr2144; - case 2058: goto tr2146; - case 2107: goto tr2147; + case 9: goto tr2119; + case 32: goto tr2119; + case 40: goto tr2120; + case 41: goto tr2121; + case 3082: goto tr2123; + case 3131: goto tr2124; + case 3338: goto tr2125; + case 3387: goto tr2125; + case 3594: goto tr2126; + case 3643: goto tr2127; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2145; - goto tr2140; -tr2150: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = true; - } - goto st765; -tr2151: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; - } - goto st765; -tr2153: - { - s->line_counter++; - } - goto st765; -tr2167: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 765; goto _out;} - } - } - } - { - s->line_counter++; - } - goto st765; -tr2142: - { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } - goto st765; -tr2143: - { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = true; - } - goto st765; -tr2144: - { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; - } - goto st765; -tr2146: - { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } - { - s->line_counter++; + goto tr2122; + goto tr1546; +st764: + if ( ++p == pe ) + goto _test_eof764; +case 764: + switch( (*p) ) { + case 82: goto st765; + case 114: goto st765; } - goto st765; + goto tr1546; st765: if ( ++p == pe ) goto _test_eof765; case 765: + switch( (*p) ) { + case 73: goto st766; + case 105: goto st766; + } + goto tr1546; +st766: + if ( ++p == pe ) + goto _test_eof766; +case 766: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st765; - case 32: goto st765; - case 40: goto tr2150; - case 41: goto tr2151; - case 2058: goto tr2153; - case 2107: goto tr2154; + case 9: goto tr2130; + case 32: goto tr2130; + case 40: goto tr2131; + case 41: goto tr2132; + case 3082: goto tr2133; + case 3131: goto tr2134; + case 3338: goto tr2135; + case 3387: goto tr2135; + case 3594: goto tr2136; + case 3643: goto tr2137; } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr2152; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr2152; - } else - goto tr2152; - goto tr2148; -tr2152: - { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } + goto tr1546; +st767: + if ( ++p == pe ) + goto _test_eof767; +case 767: + switch( (*p) ) { + case 65: goto st768; + case 97: goto st768; } - goto st766; -st766: + goto tr1546; +st768: if ( ++p == pe ) - goto _test_eof766; -case 766: - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2155; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2155; - } else - goto tr2155; - goto tr2148; -tr2157: - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = true; + goto _test_eof768; +case 768: + switch( (*p) ) { + case 76: goto st769; + case 108: goto st769; } - goto st767; -tr2158: - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; - } - goto st767; -tr2159: - { - s->line_counter++; - } - goto st767; -tr2165: - { - s->buffer[s->buffer_length++] = 0; - - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); - - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 767; goto _out;} - } - } + goto tr1546; +st769: + if ( ++p == pe ) + goto _test_eof769; +case 769: + switch( (*p) ) { + case 76: goto st770; + case 108: goto st770; } - { - s->line_counter++; + goto tr1546; +st770: + if ( ++p == pe ) + goto _test_eof770; +case 770: + switch( (*p) ) { + case 69: goto st771; + case 101: goto st771; } - goto st767; -tr2155: - { - *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; - rdata_tail++; + goto tr1546; +st771: + if ( ++p == pe ) + goto _test_eof771; +case 771: + switch( (*p) ) { + case 84: goto st772; + case 116: goto st772; } - goto st767; -st767: + goto tr1546; +st772: if ( ++p == pe ) - goto _test_eof767; -case 767: + goto _test_eof772; +case 772: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62049,99 +63662,67 @@ case 767: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st767; - case 32: goto st767; - case 40: goto tr2157; - case 41: goto tr2158; - case 3082: goto tr2159; - case 3131: goto tr2160; - case 3338: goto tr2161; - case 3387: goto tr2161; - case 3594: goto tr2162; - case 3643: goto tr2163; - } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr2152; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr2152; - } else - goto tr2152; - goto tr2148; -tr2160: - { - s->buffer_length = 0; - } - goto st768; -tr2164: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + case 9: goto tr2143; + case 32: goto tr2143; + case 40: goto tr2144; + case 41: goto tr2145; + case 3082: goto tr2146; + case 3131: goto tr2147; + case 3338: goto tr2148; + case 3387: goto tr2148; + case 3594: goto tr2149; + case 3643: goto tr2150; } - goto st768; -st768: + goto tr1546; +st773: if ( ++p == pe ) - goto _test_eof768; -case 768: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - if ( _widec == 2058 ) - goto tr2165; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2164; - goto tr2148; -tr2161: - { - if ((rdata_tail - s->r_data) != s->r_data_length) { - WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st329;} - } + goto _test_eof773; +case 773: + switch( (*p) ) { + case 79: goto st774; + case 111: goto st774; } - { - p--; {cs = stack[--top];goto _again;} + goto tr1546; +st774: + if ( ++p == pe ) + goto _test_eof774; +case 774: + switch( (*p) ) { + case 78: goto st775; + case 110: goto st775; } - goto st1530; -st1530: + goto tr1546; +st775: if ( ++p == pe ) - goto _test_eof1530; -case 1530: - goto st0; -tr2162: - { - s->line_counter++; + goto _test_eof775; +case 775: + switch( (*p) ) { + case 69: goto st776; + case 101: goto st776; } - { - if ((rdata_tail - s->r_data) != s->r_data_length) { - WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st329;} - } + goto tr1546; +st776: + if ( ++p == pe ) + goto _test_eof776; +case 776: + switch( (*p) ) { + case 77: goto st777; + case 109: goto st777; } - { - p--; {cs = stack[--top];goto _again;} + goto tr1546; +st777: + if ( ++p == pe ) + goto _test_eof777; +case 777: + switch( (*p) ) { + case 68: goto st778; + case 100: goto st778; } - goto st1531; -st1531: + goto tr1546; +st778: if ( ++p == pe ) - goto _test_eof1531; -case 1531: + goto _test_eof778; +case 778: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62159,8 +63740,8 @@ case 1531: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st767; - case 32: goto st767; + case 9: goto tr2156; + case 32: goto tr2156; case 40: goto tr2157; case 41: goto tr2158; case 3082: goto tr2159; @@ -62170,151 +63751,173 @@ case 1531: case 3594: goto tr2162; case 3643: goto tr2163; } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr2152; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr2152; - } else - goto tr2152; - goto tr2148; -tr2163: - { - s->buffer_length = 0; + goto tr1546; +st779: + if ( ++p == pe ) + goto _test_eof779; +case 779: + switch( (*p) ) { + case 83: goto st780; + case 115: goto st780; } - { - if ((rdata_tail - s->r_data) != s->r_data_length) { - WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st329;} - } + goto tr1546; +st780: + if ( ++p == pe ) + goto _test_eof780; +case 780: + switch( (*p) ) { + case 68: goto st781; + case 100: goto st781; } - { - p--; {cs = stack[--top];goto _again;} + goto tr1546; +st781: + if ( ++p == pe ) + goto _test_eof781; +case 781: + switch( (*p) ) { + case 66: goto st782; + case 98: goto st782; } - goto st1532; -st1532: + goto tr1546; +st782: if ( ++p == pe ) - goto _test_eof1532; -case 1532: + goto _test_eof782; +case 782: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + !s->multiline ) _widec += 512; } - } else { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - if ( _widec == 2058 ) - goto tr2165; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2164; - goto tr2148; -tr2154: - { - s->buffer_length = 0; + switch( _widec ) { + case 9: goto tr2167; + case 32: goto tr2167; + case 40: goto tr2168; + case 41: goto tr2169; + case 3082: goto tr2170; + case 3131: goto tr2171; + case 3338: goto tr2172; + case 3387: goto tr2172; + case 3594: goto tr2173; + case 3643: goto tr2174; } - goto st769; -tr2166: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + goto tr1546; +st783: + if ( ++p == pe ) + goto _test_eof783; +case 783: + switch( (*p) ) { + case 73: goto st784; + case 105: goto st784; } - goto st769; -tr2147: - { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } + goto tr1546; +st784: + if ( ++p == pe ) + goto _test_eof784; +case 784: + switch( (*p) ) { + case 65: goto st785; + case 97: goto st785; } - { - s->buffer_length = 0; + goto tr1546; +st785: + if ( ++p == pe ) + goto _test_eof785; +case 785: + switch( (*p) ) { + case 83: goto st786; + case 115: goto st786; } - goto st769; -st769: + goto tr1546; +st786: if ( ++p == pe ) - goto _test_eof769; -case 769: + goto _test_eof786; +case 786: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + !s->multiline ) _widec += 512; } - } else { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - if ( _widec == 2058 ) - goto tr2167; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2166; - goto tr2134; -tr2139: - { - s->buffer_length = 0; + switch( _widec ) { + case 9: goto tr2178; + case 32: goto tr2178; + case 40: goto tr2179; + case 41: goto tr2180; + case 3082: goto tr2181; + case 3131: goto tr2182; + case 3338: goto tr2183; + case 3387: goto tr2183; + case 3594: goto tr2184; + case 3643: goto tr2185; } - goto st770; -tr2168: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } + goto tr1546; +st787: + if ( ++p == pe ) + goto _test_eof787; +case 787: + switch( (*p) ) { + case 76: goto st788; + case 108: goto st788; } - goto st770; -st770: + goto tr1546; +st788: if ( ++p == pe ) - goto _test_eof770; -case 770: + goto _test_eof788; +case 788: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); if ( - s->multiline ) _widec += 256; + !s->multiline ) _widec += 512; } - } else { - _widec = (short)(1664 + ((*p) - -128)); + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - if ( _widec == 2058 ) - goto tr2169; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2168; - goto tr2134; -st771: + switch( _widec ) { + case 9: goto tr2187; + case 32: goto tr2187; + case 40: goto tr2188; + case 41: goto tr2189; + case 3082: goto tr2190; + case 3131: goto tr2191; + case 3338: goto tr2192; + case 3387: goto tr2192; + case 3594: goto tr2193; + case 3643: goto tr2194; + } + goto tr1546; +st789: if ( ++p == pe ) - goto _test_eof771; -case 771: + goto _test_eof789; +case 789: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62328,38 +63931,38 @@ case 771: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st772; - case 32: goto st772; - case 40: goto tr2171; - case 41: goto tr2172; - case 2058: goto tr2173; - case 2107: goto tr2174; + case 9: goto st790; + case 32: goto st790; + case 40: goto tr2197; + case 41: goto tr2198; + case 2058: goto tr2199; + case 2107: goto tr2200; } - goto tr2134; -tr2171: + goto tr2195; +tr2197: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st772; -tr2172: + goto st790; +tr2198: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st772; -tr2173: + goto st790; +tr2199: { s->line_counter++; } - goto st772; -tr2209: + goto st790; +tr2230: { s->buffer[s->buffer_length++] = 0; @@ -62369,18 +63972,18 @@ tr2209: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 772; goto _out;} + {p++; cs = 790; goto _out;} } } } { s->line_counter++; } - goto st772; -st772: + goto st790; +st790: if ( ++p == pe ) - goto _test_eof772; -case 772: + goto _test_eof790; +case 790: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62394,18 +63997,17 @@ case 772: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st772; - case 32: goto st772; - case 40: goto tr2171; - case 41: goto tr2172; - case 48: goto tr2175; - case 2058: goto tr2173; - case 2107: goto tr2174; + case 9: goto st790; + case 32: goto st790; + case 40: goto tr2197; + case 41: goto tr2198; + case 2058: goto tr2199; + case 2107: goto tr2200; } - if ( 49 <= _widec && _widec <= 57 ) - goto tr2176; - goto tr2140; -tr2175: + if ( 48 <= _widec && _widec <= 57 ) + goto tr2202; + goto tr2201; +tr2202: { s->number64 = 0; } @@ -62420,112 +64022,30 @@ tr2175: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} - } - } - goto st773; -st773: - if ( ++p == pe ) - goto _test_eof773; -case 773: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - switch( _widec ) { - case 9: goto tr2177; - case 32: goto tr2177; - case 40: goto tr2178; - case 41: goto tr2179; - case 1802: goto tr2181; - case 1851: goto tr2181; - case 2058: goto tr2182; - case 2107: goto tr2183; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2180; - goto tr2140; -tr2177: - { - p--; {cs = stack[--top];goto _again;} - } - { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } - goto st1533; -tr2178: - { - p--; {cs = stack[--top];goto _again;} - } - { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = true; - } - goto st1533; -tr2179: - { - p--; {cs = stack[--top];goto _again;} - } - { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } - s->multiline = false; - } - goto st1533; -tr2182: - { - p--; {cs = stack[--top];goto _again;} } + goto st791; +tr2206: { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} } } - { - s->line_counter++; - } - goto st1533; -st1533: + goto st791; +st791: if ( ++p == pe ) - goto _test_eof1533; -case 1533: + goto _test_eof791; +case 791: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62539,46 +64059,40 @@ case 1533: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st774; - case 32: goto st774; - case 40: goto tr2185; - case 41: goto tr2186; - case 2058: goto tr2188; - case 2107: goto tr2189; + case 9: goto tr2203; + case 32: goto tr2203; + case 40: goto tr2204; + case 41: goto tr2205; + case 2058: goto tr2207; + case 2107: goto tr2208; } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 57 ) - goto tr2187; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr2187; - } else - goto tr2187; - goto tr2148; -tr2185: + if ( 48 <= _widec && _widec <= 57 ) + goto tr2206; + goto tr2201; +tr2211: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st774; -tr2186: + goto st792; +tr2212: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st774; -tr2188: + goto st792; +tr2214: { s->line_counter++; } - goto st774; -tr2202: + goto st792; +tr2228: { s->buffer[s->buffer_length++] = 0; @@ -62588,75 +64102,75 @@ tr2202: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 774; goto _out;} + {p++; cs = 792; goto _out;} } } } { s->line_counter++; } - goto st774; + goto st792; tr2203: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st774; + goto st792; tr2204: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st774; + goto st792; tr2205: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st774; -tr2206: + goto st792; +tr2207: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st774; -st774: + goto st792; +st792: if ( ++p == pe ) - goto _test_eof774; -case 774: + goto _test_eof792; +case 792: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62670,69 +64184,69 @@ case 774: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st774; - case 32: goto st774; - case 40: goto tr2185; - case 41: goto tr2186; - case 2058: goto tr2188; - case 2107: goto tr2189; + case 9: goto st792; + case 32: goto st792; + case 40: goto tr2211; + case 41: goto tr2212; + case 2058: goto tr2214; + case 2107: goto tr2215; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2187; + goto tr2213; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2187; + goto tr2213; } else - goto tr2187; - goto tr2148; -tr2187: + goto tr2213; + goto tr2209; +tr2213: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st775; -st775: + goto st793; +st793: if ( ++p == pe ) - goto _test_eof775; -case 775: + goto _test_eof793; +case 793: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2190; + goto tr2216; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2190; + goto tr2216; } else - goto tr2190; - goto tr2148; -tr2192: + goto tr2216; + goto tr2209; +tr2218: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st776; -tr2193: + goto st794; +tr2219: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st776; -tr2194: + goto st794; +tr2220: { s->line_counter++; } - goto st776; -tr2200: + goto st794; +tr2226: { s->buffer[s->buffer_length++] = 0; @@ -62742,24 +64256,24 @@ tr2200: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 776; goto _out;} + {p++; cs = 794; goto _out;} } } } { s->line_counter++; } - goto st776; -tr2190: + goto st794; +tr2216: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st776; -st776: + goto st794; +st794: if ( ++p == pe ) - goto _test_eof776; -case 776: + goto _test_eof794; +case 794: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62777,42 +64291,42 @@ case 776: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st776; - case 32: goto st776; - case 40: goto tr2192; - case 41: goto tr2193; - case 3082: goto tr2194; - case 3131: goto tr2195; - case 3338: goto tr2196; - case 3387: goto tr2196; - case 3594: goto tr2197; - case 3643: goto tr2198; + case 9: goto st794; + case 32: goto st794; + case 40: goto tr2218; + case 41: goto tr2219; + case 3082: goto tr2220; + case 3131: goto tr2221; + case 3338: goto tr2222; + case 3387: goto tr2222; + case 3594: goto tr2223; + case 3643: goto tr2224; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2187; + goto tr2213; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2187; + goto tr2213; } else - goto tr2187; - goto tr2148; -tr2195: + goto tr2213; + goto tr2209; +tr2221: { s->buffer_length = 0; } - goto st777; -tr2199: + goto st795; +tr2225: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st777; -st777: + goto st795; +st795: if ( ++p == pe ) - goto _test_eof777; -case 777: + goto _test_eof795; +case 795: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -62832,49 +64346,44 @@ case 777: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2200; + goto tr2226; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2199; - goto tr2148; -tr2181: - { - p--; {cs = stack[--top];goto _again;} - } - goto st1534; -tr2196: + goto tr2225; + goto tr2209; +tr2222: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1534; -st1534: + goto st1677; +st1677: if ( ++p == pe ) - goto _test_eof1534; -case 1534: - goto tr2134; -tr2197: + goto _test_eof1677; +case 1677: + goto st0; +tr2223: { s->line_counter++; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1535; -st1535: + goto st1678; +st1678: if ( ++p == pe ) - goto _test_eof1535; -case 1535: + goto _test_eof1678; +case 1678: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -62892,44 +64401,44 @@ case 1535: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st776; - case 32: goto st776; - case 40: goto tr2192; - case 41: goto tr2193; - case 3082: goto tr2194; - case 3131: goto tr2195; - case 3338: goto tr2196; - case 3387: goto tr2196; - case 3594: goto tr2197; - case 3643: goto tr2198; + case 9: goto st794; + case 32: goto st794; + case 40: goto tr2218; + case 41: goto tr2219; + case 3082: goto tr2220; + case 3131: goto tr2221; + case 3338: goto tr2222; + case 3387: goto tr2222; + case 3594: goto tr2223; + case 3643: goto tr2224; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr2187; + goto tr2213; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr2187; + goto tr2213; } else - goto tr2187; - goto tr2148; -tr2198: + goto tr2213; + goto tr2209; +tr2224: { s->buffer_length = 0; } { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1536; -st1536: + goto st1679; +st1679: if ( ++p == pe ) - goto _test_eof1536; -case 1536: + goto _test_eof1679; +case 1679: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -62949,39 +64458,39 @@ case 1536: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2200; + goto tr2226; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2199; - goto tr2148; -tr2189: + goto tr2225; + goto tr2209; +tr2215: { s->buffer_length = 0; } - goto st778; -tr2201: + goto st796; +tr2227: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st778; -tr2207: + goto st796; +tr2208: { if (s->number64 <= UINT16_MAX) { s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st778; -st778: + goto st796; +st796: if ( ++p == pe ) - goto _test_eof778; -case 778: + goto _test_eof796; +case 796: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -63001,49 +64510,53 @@ case 778: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2202; + goto tr2228; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2201; - goto tr2134; -tr2176: + goto tr2227; + goto tr2195; +tr2200: { - s->number64 = 0; + s->buffer_length = 0; } + goto st797; +tr2229: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } - goto st779; -tr2180: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + goto st797; +st797: + if ( ++p == pe ) + goto _test_eof797; +case 797: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - goto st779; -st779: + if ( _widec == 2058 ) + goto tr2230; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2229; + goto tr2195; +st798: if ( ++p == pe ) - goto _test_eof779; -case 779: + goto _test_eof798; +case 798: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -63057,511 +64570,684 @@ case 779: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2203; - case 32: goto tr2203; - case 40: goto tr2204; - case 41: goto tr2205; - case 2058: goto tr2206; - case 2107: goto tr2207; + case 9: goto st799; + case 32: goto st799; + case 40: goto tr2232; + case 41: goto tr2233; + case 2058: goto tr2234; + case 2107: goto tr2235; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2180; - goto tr2140; -tr2183: + goto tr2195; +tr2232: { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; } + goto st799; +tr2233: { - if (s->number64 <= UINT16_MAX) { - s->r_data_length = (uint16_t)(s->number64); - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} } + s->multiline = false; } + goto st799; +tr2234: { - s->buffer_length = 0; + s->line_counter++; } - goto st1537; -st1537: + goto st799; +tr2270: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 799; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st799; +st799: if ( ++p == pe ) - goto _test_eof1537; -case 1537: + goto _test_eof799; +case 799: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2202; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2201; - goto tr2134; -tr2174: + switch( _widec ) { + case 9: goto st799; + case 32: goto st799; + case 40: goto tr2232; + case 41: goto tr2233; + case 48: goto tr2236; + case 2058: goto tr2234; + case 2107: goto tr2235; + } + if ( 49 <= _widec && _widec <= 57 ) + goto tr2237; + goto tr2201; +tr2236: { - s->buffer_length = 0; + s->number64 = 0; } - goto st780; -tr2208: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} } } - goto st780; -st780: + goto st800; +st800: if ( ++p == pe ) - goto _test_eof780; -case 780: + goto _test_eof800; +case 800: _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { + } else if ( (*p) >= 10 ) { _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; } - if ( _widec == 2058 ) - goto tr2209; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2208; - goto tr2134; -st781: - if ( ++p == pe ) - goto _test_eof781; -case 781: - switch( (*p) ) { - case 97: goto tr2211; - case 100: goto tr2212; - case 101: goto tr2213; - case 105: goto tr2214; - case 107: goto tr2215; - case 110: goto tr2216; - case 111: goto tr2217; - case 112: goto tr2218; + switch( _widec ) { + case 9: goto tr2238; + case 32: goto tr2238; + case 40: goto tr2239; + case 41: goto tr2240; + case 1802: goto tr2242; + case 1851: goto tr2242; + case 2058: goto tr2243; + case 2107: goto tr2244; } - goto tr2210; -tr2211: + if ( 48 <= _widec && _widec <= 57 ) + goto tr2241; + goto tr2201; +tr2238: { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - goto st782; -st782: - if ( ++p == pe ) - goto _test_eof782; -case 782: - if ( (*p) == 108 ) - goto st783; - goto tr2210; -st783: - if ( ++p == pe ) - goto _test_eof783; -case 783: - if ( (*p) == 112 ) - goto st784; - goto tr2210; -st784: - if ( ++p == pe ) - goto _test_eof784; -case 784: - if ( (*p) == 110 ) - goto st785; - goto tr2210; -st785: - if ( ++p == pe ) - goto _test_eof785; -case 785: - switch( (*p) ) { - case 32: goto tr2222; - case 34: goto tr2222; - case 44: goto tr2222; - case 59: goto tr2222; + p--; {cs = stack[--top];goto _again;} } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2222; - } else if ( (*p) >= 9 ) - goto tr2222; - goto tr2210; -tr2251: { if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } + goto st1680; +tr2239: { p--; {cs = stack[--top];goto _again;} } - goto st1538; -tr2222: { - uint16_t val = htons(1); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; } - goto st1538; -tr2229: + goto st1680; +tr2240: { - uint16_t val = htons(7); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + p--; {cs = stack[--top];goto _again;} } { - p--; {cs = stack[--top];goto _again;} + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } } - goto st1538; -tr2232: { - uint16_t val = htons(5); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; } + goto st1680; +tr2243: { p--; {cs = stack[--top];goto _again;} } - goto st1538; -tr2241: { - uint16_t val = htons(4); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1538; + goto st1680; +st1680: + if ( ++p == pe ) + goto _test_eof1680; +case 1680: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st801; + case 32: goto st801; + case 40: goto tr2246; + case 41: goto tr2247; + case 2058: goto tr2249; + case 2107: goto tr2250; + } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr2248; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2248; + } else + goto tr2248; + goto tr2209; tr2246: { - uint16_t val = htons(6); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; } + goto st801; +tr2247: { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; } - goto st1538; -tr2267: + goto st801; +tr2249: { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->line_counter++; } + goto st801; +tr2263: { - p--; {cs = stack[--top];goto _again;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 801; goto _out;} + } + } } - goto st1538; -tr2272: { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->line_counter++; } + goto st801; +tr2264: { - p--; {cs = stack[--top];goto _again;} + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } } - goto st1538; -tr2276: + goto st801; +tr2265: { - uint16_t val = htons(3); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; } - goto st1538; -st1538: - if ( ++p == pe ) - goto _test_eof1538; -case 1538: - goto st0; -tr2212: + goto st801; +tr2266: { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} } } - goto st786; -st786: - if ( ++p == pe ) - goto _test_eof786; -case 786: - if ( (*p) == 111 ) - goto st787; - goto tr2210; -st787: - if ( ++p == pe ) - goto _test_eof787; -case 787: - if ( (*p) == 104 ) - goto st788; - goto tr2210; -st788: - if ( ++p == pe ) - goto _test_eof788; -case 788: - if ( (*p) == 112 ) - goto st789; - goto tr2210; -st789: - if ( ++p == pe ) - goto _test_eof789; -case 789: - if ( (*p) == 97 ) - goto st790; - goto tr2210; -st790: - if ( ++p == pe ) - goto _test_eof790; -case 790: - if ( (*p) == 116 ) - goto st791; - goto tr2210; -st791: - if ( ++p == pe ) - goto _test_eof791; -case 791: - if ( (*p) == 104 ) - goto st792; - goto tr2210; -st792: - if ( ++p == pe ) - goto _test_eof792; -case 792: - switch( (*p) ) { - case 32: goto tr2229; - case 34: goto tr2229; - case 44: goto tr2229; - case 59: goto tr2229; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2229; - } else if ( (*p) >= 9 ) - goto tr2229; - goto tr2210; -tr2213: { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} } + s->multiline = false; } - goto st793; -st793: - if ( ++p == pe ) - goto _test_eof793; -case 793: - if ( (*p) == 99 ) - goto st794; - goto tr2210; -st794: - if ( ++p == pe ) - goto _test_eof794; -case 794: - if ( (*p) == 104 ) - goto st795; - goto tr2210; -st795: - if ( ++p == pe ) - goto _test_eof795; -case 795: - switch( (*p) ) { - case 32: goto tr2232; - case 34: goto tr2232; - case 44: goto tr2232; - case 59: goto tr2232; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2232; - } else if ( (*p) >= 9 ) - goto tr2232; - goto tr2210; -tr2214: + goto st801; +tr2267: { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} } } - goto st796; -st796: - if ( ++p == pe ) - goto _test_eof796; -case 796: - if ( (*p) == 112 ) - goto st797; - goto tr2210; -st797: - if ( ++p == pe ) - goto _test_eof797; -case 797: - if ( (*p) == 118 ) - goto st798; - goto tr2210; -st798: - if ( ++p == pe ) - goto _test_eof798; -case 798: - switch( (*p) ) { - case 52: goto st799; - case 54: goto st804; + { + s->line_counter++; } - goto tr2210; -st799: - if ( ++p == pe ) - goto _test_eof799; -case 799: - if ( (*p) == 104 ) - goto st800; - goto tr2210; -st800: - if ( ++p == pe ) - goto _test_eof800; -case 800: - if ( (*p) == 105 ) - goto st801; - goto tr2210; + goto st801; st801: if ( ++p == pe ) goto _test_eof801; case 801: - if ( (*p) == 110 ) - goto st802; - goto tr2210; + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto st801; + case 32: goto st801; + case 40: goto tr2246; + case 41: goto tr2247; + case 2058: goto tr2249; + case 2107: goto tr2250; + } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr2248; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2248; + } else + goto tr2248; + goto tr2209; +tr2248: + { + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + goto st802; st802: if ( ++p == pe ) goto _test_eof802; case 802: - if ( (*p) == 116 ) - goto st803; - goto tr2210; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2251; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2251; + } else + goto tr2251; + goto tr2209; +tr2253: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st803; +tr2254: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st803; +tr2255: + { + s->line_counter++; + } + goto st803; +tr2261: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 803; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st803; +tr2251: + { + *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; + rdata_tail++; + } + goto st803; st803: if ( ++p == pe ) goto _test_eof803; case 803: - switch( (*p) ) { - case 32: goto tr2241; - case 34: goto tr2241; - case 44: goto tr2241; - case 59: goto tr2241; - } + _widec = (*p); if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2241; - } else if ( (*p) >= 9 ) - goto tr2241; - goto tr2210; -st804: - if ( ++p == pe ) - goto _test_eof804; -case 804: - if ( (*p) == 104 ) - goto st805; - goto tr2210; -st805: - if ( ++p == pe ) - goto _test_eof805; -case 805: - if ( (*p) == 105 ) - goto st806; - goto tr2210; -st806: - if ( ++p == pe ) - goto _test_eof806; -case 806: - if ( (*p) == 110 ) - goto st807; - goto tr2210; -st807: - if ( ++p == pe ) - goto _test_eof807; -case 807: - if ( (*p) == 116 ) - goto st808; - goto tr2210; -st808: + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st803; + case 32: goto st803; + case 40: goto tr2253; + case 41: goto tr2254; + case 3082: goto tr2255; + case 3131: goto tr2256; + case 3338: goto tr2257; + case 3387: goto tr2257; + case 3594: goto tr2258; + case 3643: goto tr2259; + } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr2248; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2248; + } else + goto tr2248; + goto tr2209; +tr2256: + { + s->buffer_length = 0; + } + goto st804; +tr2260: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st804; +st804: if ( ++p == pe ) - goto _test_eof808; -case 808: - switch( (*p) ) { - case 32: goto tr2246; - case 34: goto tr2246; - case 44: goto tr2246; - case 59: goto tr2246; + goto _test_eof804; +case 804: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2246; - } else if ( (*p) >= 9 ) - goto tr2246; - goto tr2210; -tr2215: + if ( _widec == 2058 ) + goto tr2261; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2260; + goto tr2209; +tr2242: { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {cs = stack[--top];goto _again;} + } + goto st1681; +tr2257: + { + if ((rdata_tail - s->r_data) != s->r_data_length) { + WARN(ZS_BAD_RDATA_LENGTH); + p--; {goto st338;} } } - goto st809; -st809: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1681; +st1681: if ( ++p == pe ) - goto _test_eof809; -case 809: - if ( (*p) == 101 ) - goto st810; - goto tr2210; -st810: + goto _test_eof1681; +case 1681: + goto tr2195; +tr2258: + { + s->line_counter++; + } + { + if ((rdata_tail - s->r_data) != s->r_data_length) { + WARN(ZS_BAD_RDATA_LENGTH); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1682; +st1682: if ( ++p == pe ) - goto _test_eof810; -case 810: - if ( (*p) == 121 ) - goto st811; - goto tr2210; -st811: + goto _test_eof1682; +case 1682: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st803; + case 32: goto st803; + case 40: goto tr2253; + case 41: goto tr2254; + case 3082: goto tr2255; + case 3131: goto tr2256; + case 3338: goto tr2257; + case 3387: goto tr2257; + case 3594: goto tr2258; + case 3643: goto tr2259; + } + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 57 ) + goto tr2248; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2248; + } else + goto tr2248; + goto tr2209; +tr2259: + { + s->buffer_length = 0; + } + { + if ((rdata_tail - s->r_data) != s->r_data_length) { + WARN(ZS_BAD_RDATA_LENGTH); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1683; +st1683: if ( ++p == pe ) - goto _test_eof811; -case 811: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2250; - goto tr2249; + goto _test_eof1683; +case 1683: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr2261; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2260; + goto tr2209; tr2250: + { + s->buffer_length = 0; + } + goto st805; +tr2262: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st805; +tr2268: + { + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st805; +st805: + if ( ++p == pe ) + goto _test_eof805; +case 805: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr2263; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2262; + goto tr2195; +tr2237: { s->number64 = 0; } @@ -63576,11 +65262,11 @@ tr2250: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st812; -tr2252: + goto st806; +tr2241: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -63592,34 +65278,284 @@ tr2252: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} + } + } + goto st806; +st806: + if ( ++p == pe ) + goto _test_eof806; +case 806: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + switch( _widec ) { + case 9: goto tr2264; + case 32: goto tr2264; + case 40: goto tr2265; + case 41: goto tr2266; + case 2058: goto tr2267; + case 2107: goto tr2268; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2241; + goto tr2201; +tr2244: + { + p--; {cs = stack[--top];goto _again;} + } + { + if (s->number64 <= UINT16_MAX) { + s->r_data_length = (uint16_t)(s->number64); + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st1684; +st1684: + if ( ++p == pe ) + goto _test_eof1684; +case 1684: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr2263; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2262; + goto tr2195; +tr2235: + { + s->buffer_length = 0; + } + goto st807; +tr2269: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st807; +st807: + if ( ++p == pe ) + goto _test_eof807; +case 807: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr2270; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2269; + goto tr2195; +st808: + if ( ++p == pe ) + goto _test_eof808; +case 808: + switch( (*p) ) { + case 97: goto tr2272; + case 100: goto tr2273; + case 101: goto tr2274; + case 105: goto tr2275; + case 107: goto tr2276; + case 110: goto tr2277; + case 111: goto tr2278; + case 112: goto tr2279; + } + goto tr2271; +tr2272: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } - goto st812; + goto st809; +st809: + if ( ++p == pe ) + goto _test_eof809; +case 809: + if ( (*p) == 108 ) + goto st810; + goto tr2271; +st810: + if ( ++p == pe ) + goto _test_eof810; +case 810: + if ( (*p) == 112 ) + goto st811; + goto tr2271; +st811: + if ( ++p == pe ) + goto _test_eof811; +case 811: + if ( (*p) == 110 ) + goto st812; + goto tr2271; st812: if ( ++p == pe ) goto _test_eof812; case 812: switch( (*p) ) { - case 32: goto tr2251; - case 34: goto tr2251; - case 44: goto tr2251; - case 59: goto tr2251; + case 32: goto tr2283; + case 34: goto tr2283; + case 44: goto tr2283; + case 59: goto tr2283; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2283; + } else if ( (*p) >= 9 ) + goto tr2283; + goto tr2271; +tr2312: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1685; +tr2283: + { + uint16_t val = htons(1); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1685; +tr2290: + { + uint16_t val = htons(7); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1685; +tr2293: + { + uint16_t val = htons(5); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1685; +tr2302: + { + uint16_t val = htons(4); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1685; +tr2307: + { + uint16_t val = htons(6); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1685; +tr2328: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - if ( (*p) < 40 ) { - if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2251; - } else if ( (*p) > 41 ) { - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2252; - } else - goto tr2251; - goto tr2249; -tr2216: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1685; +tr2333: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1685; +tr2337: + { + uint16_t val = htons(3); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1685; +st1685: + if ( ++p == pe ) + goto _test_eof1685; +case 1685: + goto st0; +tr2273: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } goto st813; @@ -63629,222 +65565,3642 @@ st813: case 813: if ( (*p) == 111 ) goto st814; - goto tr2210; + goto tr2271; st814: if ( ++p == pe ) goto _test_eof814; case 814: - if ( (*p) == 45 ) + if ( (*p) == 104 ) goto st815; - goto tr2210; + goto tr2271; st815: if ( ++p == pe ) goto _test_eof815; case 815: - if ( (*p) == 100 ) + if ( (*p) == 112 ) goto st816; - goto tr2210; + goto tr2271; st816: if ( ++p == pe ) goto _test_eof816; case 816: - if ( (*p) == 101 ) + if ( (*p) == 97 ) goto st817; - goto tr2210; + goto tr2271; st817: if ( ++p == pe ) goto _test_eof817; case 817: - if ( (*p) == 102 ) + if ( (*p) == 116 ) goto st818; - goto tr2210; + goto tr2271; st818: if ( ++p == pe ) goto _test_eof818; case 818: - if ( (*p) == 97 ) + if ( (*p) == 104 ) goto st819; - goto tr2210; + goto tr2271; st819: if ( ++p == pe ) goto _test_eof819; case 819: - if ( (*p) == 117 ) - goto st820; - goto tr2210; + switch( (*p) ) { + case 32: goto tr2290; + case 34: goto tr2290; + case 44: goto tr2290; + case 59: goto tr2290; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2290; + } else if ( (*p) >= 9 ) + goto tr2290; + goto tr2271; +tr2274: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + goto st820; st820: if ( ++p == pe ) goto _test_eof820; case 820: - if ( (*p) == 108 ) + if ( (*p) == 99 ) goto st821; - goto tr2210; + goto tr2271; st821: if ( ++p == pe ) goto _test_eof821; case 821: - if ( (*p) == 116 ) + if ( (*p) == 104 ) goto st822; - goto tr2210; + goto tr2271; st822: if ( ++p == pe ) goto _test_eof822; case 822: - if ( (*p) == 45 ) - goto st823; - goto tr2210; + switch( (*p) ) { + case 32: goto tr2293; + case 34: goto tr2293; + case 44: goto tr2293; + case 59: goto tr2293; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2293; + } else if ( (*p) >= 9 ) + goto tr2293; + goto tr2271; +tr2275: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + goto st823; st823: if ( ++p == pe ) goto _test_eof823; case 823: - if ( (*p) == 97 ) + if ( (*p) == 112 ) goto st824; - goto tr2210; + goto tr2271; st824: if ( ++p == pe ) goto _test_eof824; case 824: - if ( (*p) == 108 ) + if ( (*p) == 118 ) goto st825; - goto tr2210; + goto tr2271; st825: if ( ++p == pe ) goto _test_eof825; case 825: - if ( (*p) == 112 ) - goto st826; - goto tr2210; + switch( (*p) ) { + case 52: goto st826; + case 54: goto st831; + } + goto tr2271; st826: if ( ++p == pe ) goto _test_eof826; case 826: - if ( (*p) == 110 ) + if ( (*p) == 104 ) goto st827; - goto tr2210; + goto tr2271; st827: if ( ++p == pe ) goto _test_eof827; case 827: - switch( (*p) ) { - case 32: goto tr2267; - case 34: goto tr2267; - case 44: goto tr2267; - case 59: goto tr2267; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2267; - } else if ( (*p) >= 9 ) - goto tr2267; - goto tr2210; -tr2217: - { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - goto st828; + if ( (*p) == 105 ) + goto st828; + goto tr2271; st828: if ( ++p == pe ) goto _test_eof828; case 828: - if ( (*p) == 104 ) + if ( (*p) == 110 ) goto st829; - goto tr2210; + goto tr2271; st829: if ( ++p == pe ) goto _test_eof829; case 829: if ( (*p) == 116 ) goto st830; - goto tr2210; + goto tr2271; st830: if ( ++p == pe ) goto _test_eof830; case 830: - if ( (*p) == 116 ) - goto st831; - goto tr2210; + switch( (*p) ) { + case 32: goto tr2302; + case 34: goto tr2302; + case 44: goto tr2302; + case 59: goto tr2302; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2302; + } else if ( (*p) >= 9 ) + goto tr2302; + goto tr2271; st831: if ( ++p == pe ) goto _test_eof831; case 831: - if ( (*p) == 112 ) + if ( (*p) == 104 ) goto st832; - goto tr2210; + goto tr2271; st832: if ( ++p == pe ) goto _test_eof832; case 832: - switch( (*p) ) { - case 32: goto tr2272; - case 34: goto tr2272; - case 44: goto tr2272; - case 59: goto tr2272; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2272; - } else if ( (*p) >= 9 ) - goto tr2272; - goto tr2210; -tr2218: - { - if (rdata_tail + 2 > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - goto st833; + if ( (*p) == 105 ) + goto st833; + goto tr2271; st833: if ( ++p == pe ) goto _test_eof833; case 833: - if ( (*p) == 111 ) + if ( (*p) == 110 ) goto st834; - goto tr2210; + goto tr2271; st834: if ( ++p == pe ) goto _test_eof834; case 834: - if ( (*p) == 114 ) + if ( (*p) == 116 ) goto st835; - goto tr2210; + goto tr2271; st835: if ( ++p == pe ) goto _test_eof835; case 835: - if ( (*p) == 116 ) - goto st836; - goto tr2210; -st836: - if ( ++p == pe ) - goto _test_eof836; -case 836: switch( (*p) ) { - case 32: goto tr2276; - case 34: goto tr2276; - case 44: goto tr2276; - case 59: goto tr2276; + case 32: goto tr2307; + case 34: goto tr2307; + case 44: goto tr2307; + case 59: goto tr2307; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2276; + goto tr2307; } else if ( (*p) >= 9 ) - goto tr2276; - goto tr2210; + goto tr2307; + goto tr2271; +tr2276: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + goto st836; +st836: + if ( ++p == pe ) + goto _test_eof836; +case 836: + if ( (*p) == 101 ) + goto st837; + goto tr2271; st837: if ( ++p == pe ) goto _test_eof837; case 837: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( + if ( (*p) == 121 ) + goto st838; + goto tr2271; +st838: + if ( ++p == pe ) + goto _test_eof838; +case 838: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2311; + goto tr2310; +tr2311: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} + } + } + goto st839; +tr2313: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} + } + } + goto st839; +st839: + if ( ++p == pe ) + goto _test_eof839; +case 839: + switch( (*p) ) { + case 32: goto tr2312; + case 34: goto tr2312; + case 44: goto tr2312; + case 59: goto tr2312; + } + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2312; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2313; + } else + goto tr2312; + goto tr2310; +tr2277: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + goto st840; +st840: + if ( ++p == pe ) + goto _test_eof840; +case 840: + if ( (*p) == 111 ) + goto st841; + goto tr2271; +st841: + if ( ++p == pe ) + goto _test_eof841; +case 841: + if ( (*p) == 45 ) + goto st842; + goto tr2271; +st842: + if ( ++p == pe ) + goto _test_eof842; +case 842: + if ( (*p) == 100 ) + goto st843; + goto tr2271; +st843: + if ( ++p == pe ) + goto _test_eof843; +case 843: + if ( (*p) == 101 ) + goto st844; + goto tr2271; +st844: + if ( ++p == pe ) + goto _test_eof844; +case 844: + if ( (*p) == 102 ) + goto st845; + goto tr2271; +st845: + if ( ++p == pe ) + goto _test_eof845; +case 845: + if ( (*p) == 97 ) + goto st846; + goto tr2271; +st846: + if ( ++p == pe ) + goto _test_eof846; +case 846: + if ( (*p) == 117 ) + goto st847; + goto tr2271; +st847: + if ( ++p == pe ) + goto _test_eof847; +case 847: + if ( (*p) == 108 ) + goto st848; + goto tr2271; +st848: + if ( ++p == pe ) + goto _test_eof848; +case 848: + if ( (*p) == 116 ) + goto st849; + goto tr2271; +st849: + if ( ++p == pe ) + goto _test_eof849; +case 849: + if ( (*p) == 45 ) + goto st850; + goto tr2271; +st850: + if ( ++p == pe ) + goto _test_eof850; +case 850: + if ( (*p) == 97 ) + goto st851; + goto tr2271; +st851: + if ( ++p == pe ) + goto _test_eof851; +case 851: + if ( (*p) == 108 ) + goto st852; + goto tr2271; +st852: + if ( ++p == pe ) + goto _test_eof852; +case 852: + if ( (*p) == 112 ) + goto st853; + goto tr2271; +st853: + if ( ++p == pe ) + goto _test_eof853; +case 853: + if ( (*p) == 110 ) + goto st854; + goto tr2271; +st854: + if ( ++p == pe ) + goto _test_eof854; +case 854: + switch( (*p) ) { + case 32: goto tr2328; + case 34: goto tr2328; + case 44: goto tr2328; + case 59: goto tr2328; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2328; + } else if ( (*p) >= 9 ) + goto tr2328; + goto tr2271; +tr2278: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + goto st855; +st855: + if ( ++p == pe ) + goto _test_eof855; +case 855: + if ( (*p) == 104 ) + goto st856; + goto tr2271; +st856: + if ( ++p == pe ) + goto _test_eof856; +case 856: + if ( (*p) == 116 ) + goto st857; + goto tr2271; +st857: + if ( ++p == pe ) + goto _test_eof857; +case 857: + if ( (*p) == 116 ) + goto st858; + goto tr2271; +st858: + if ( ++p == pe ) + goto _test_eof858; +case 858: + if ( (*p) == 112 ) + goto st859; + goto tr2271; +st859: + if ( ++p == pe ) + goto _test_eof859; +case 859: + switch( (*p) ) { + case 32: goto tr2333; + case 34: goto tr2333; + case 44: goto tr2333; + case 59: goto tr2333; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2333; + } else if ( (*p) >= 9 ) + goto tr2333; + goto tr2271; +tr2279: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + goto st860; +st860: + if ( ++p == pe ) + goto _test_eof860; +case 860: + if ( (*p) == 111 ) + goto st861; + goto tr2271; +st861: + if ( ++p == pe ) + goto _test_eof861; +case 861: + if ( (*p) == 114 ) + goto st862; + goto tr2271; +st862: + if ( ++p == pe ) + goto _test_eof862; +case 862: + if ( (*p) == 116 ) + goto st863; + goto tr2271; +st863: + if ( ++p == pe ) + goto _test_eof863; +case 863: + switch( (*p) ) { + case 32: goto tr2337; + case 34: goto tr2337; + case 44: goto tr2337; + case 59: goto tr2337; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2337; + } else if ( (*p) >= 9 ) + goto tr2337; + goto tr2271; +st864: + if ( ++p == pe ) + goto _test_eof864; +case 864: + switch( (*p) ) { + case 105: goto tr2338; + case 107: goto tr2339; + case 115: goto tr2340; + } + goto tr2271; +tr2338: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + goto st865; +st865: + if ( ++p == pe ) + goto _test_eof865; +case 865: + if ( (*p) == 110 ) + goto st866; + goto tr2271; +st866: + if ( ++p == pe ) + goto _test_eof866; +case 866: + if ( (*p) == 99 ) + goto st867; + goto tr2271; +st867: + if ( ++p == pe ) + goto _test_eof867; +case 867: + if ( (*p) == 108 ) + goto st868; + goto tr2271; +st868: + if ( ++p == pe ) + goto _test_eof868; +case 868: + if ( (*p) == 117 ) + goto st869; + goto tr2271; +st869: + if ( ++p == pe ) + goto _test_eof869; +case 869: + if ( (*p) == 100 ) + goto st870; + goto tr2271; +st870: + if ( ++p == pe ) + goto _test_eof870; +case 870: + if ( (*p) == 101 ) + goto st871; + goto tr2271; +st871: + if ( ++p == pe ) + goto _test_eof871; +case 871: + if ( (*p) == 45 ) + goto st872; + goto tr2271; +st872: + if ( ++p == pe ) + goto _test_eof872; +case 872: + if ( (*p) == 100 ) + goto st873; + goto tr2271; +st873: + if ( ++p == pe ) + goto _test_eof873; +case 873: + if ( (*p) == 101 ) + goto st874; + goto tr2271; +st874: + if ( ++p == pe ) + goto _test_eof874; +case 874: + if ( (*p) == 108 ) + goto st875; + goto tr2271; +st875: + if ( ++p == pe ) + goto _test_eof875; +case 875: + if ( (*p) == 101 ) + goto st876; + goto tr2271; +st876: + if ( ++p == pe ) + goto _test_eof876; +case 876: + if ( (*p) == 103 ) + goto st877; + goto tr2271; +st877: + if ( ++p == pe ) + goto _test_eof877; +case 877: + if ( (*p) == 112 ) + goto st878; + goto tr2271; +st878: + if ( ++p == pe ) + goto _test_eof878; +case 878: + if ( (*p) == 97 ) + goto st879; + goto tr2271; +st879: + if ( ++p == pe ) + goto _test_eof879; +case 879: + if ( (*p) == 114 ) + goto st880; + goto tr2271; +st880: + if ( ++p == pe ) + goto _test_eof880; +case 880: + if ( (*p) == 97 ) + goto st881; + goto tr2271; +st881: + if ( ++p == pe ) + goto _test_eof881; +case 881: + if ( (*p) == 109 ) + goto st882; + goto tr2271; +st882: + if ( ++p == pe ) + goto _test_eof882; +case 882: + switch( (*p) ) { + case 32: goto tr2358; + case 34: goto tr2358; + case 44: goto tr2358; + case 59: goto tr2358; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2358; + } else if ( (*p) >= 9 ) + goto tr2358; + goto tr2271; +tr2362: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1686; +tr2376: + { + uint16_t val = htons(1); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1686; +tr2358: + { + uint16_t val = htons(4); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1686; +tr2377: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1686; +tr2381: + { + uint16_t val = htons(3); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1686; +st1686: + if ( ++p == pe ) + goto _test_eof1686; +case 1686: + goto st0; +tr2339: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + goto st883; +st883: + if ( ++p == pe ) + goto _test_eof883; +case 883: + if ( (*p) == 101 ) + goto st884; + goto tr2271; +st884: + if ( ++p == pe ) + goto _test_eof884; +case 884: + if ( (*p) == 121 ) + goto st885; + goto tr2271; +st885: + if ( ++p == pe ) + goto _test_eof885; +case 885: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2361; + goto tr2310; +tr2361: + { + s->number64 = 0; + } + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} + } + } + goto st886; +tr2363: + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} + } + } + goto st886; +st886: + if ( ++p == pe ) + goto _test_eof886; +case 886: + switch( (*p) ) { + case 32: goto tr2362; + case 34: goto tr2362; + case 44: goto tr2362; + case 59: goto tr2362; + } + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr2362; + } else if ( (*p) > 41 ) { + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2363; + } else + goto tr2362; + goto tr2310; +tr2340: + { + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + goto st887; +st887: + if ( ++p == pe ) + goto _test_eof887; +case 887: + if ( (*p) == 101 ) + goto st888; + goto tr2271; +st888: + if ( ++p == pe ) + goto _test_eof888; +case 888: + if ( (*p) == 114 ) + goto st889; + goto tr2271; +st889: + if ( ++p == pe ) + goto _test_eof889; +case 889: + if ( (*p) == 118 ) + goto st890; + goto tr2271; +st890: + if ( ++p == pe ) + goto _test_eof890; +case 890: + if ( (*p) == 101 ) + goto st891; + goto tr2271; +st891: + if ( ++p == pe ) + goto _test_eof891; +case 891: + if ( (*p) == 114 ) + goto st892; + goto tr2271; +st892: + if ( ++p == pe ) + goto _test_eof892; +case 892: + if ( (*p) == 45 ) + goto st893; + goto tr2271; +st893: + if ( ++p == pe ) + goto _test_eof893; +case 893: + switch( (*p) ) { + case 105: goto st894; + case 110: goto st899; + } + goto tr2271; +st894: + if ( ++p == pe ) + goto _test_eof894; +case 894: + if ( (*p) == 112 ) + goto st895; + goto tr2271; +st895: + if ( ++p == pe ) + goto _test_eof895; +case 895: + if ( (*p) == 118 ) + goto st896; + goto tr2271; +st896: + if ( ++p == pe ) + goto _test_eof896; +case 896: + switch( (*p) ) { + case 52: goto st897; + case 54: goto st898; + } + goto tr2271; +st897: + if ( ++p == pe ) + goto _test_eof897; +case 897: + switch( (*p) ) { + case 32: goto tr2376; + case 34: goto tr2376; + case 44: goto tr2376; + case 59: goto tr2376; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2376; + } else if ( (*p) >= 9 ) + goto tr2376; + goto tr2271; +st898: + if ( ++p == pe ) + goto _test_eof898; +case 898: + switch( (*p) ) { + case 32: goto tr2377; + case 34: goto tr2377; + case 44: goto tr2377; + case 59: goto tr2377; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2377; + } else if ( (*p) >= 9 ) + goto tr2377; + goto tr2271; +st899: + if ( ++p == pe ) + goto _test_eof899; +case 899: + if ( (*p) == 97 ) + goto st900; + goto tr2271; +st900: + if ( ++p == pe ) + goto _test_eof900; +case 900: + if ( (*p) == 109 ) + goto st901; + goto tr2271; +st901: + if ( ++p == pe ) + goto _test_eof901; +case 901: + if ( (*p) == 101 ) + goto st902; + goto tr2271; +st902: + if ( ++p == pe ) + goto _test_eof902; +case 902: + switch( (*p) ) { + case 32: goto tr2381; + case 34: goto tr2381; + case 44: goto tr2381; + case 59: goto tr2381; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2381; + } else if ( (*p) >= 9 ) + goto tr2381; + goto tr2271; +st903: + if ( ++p == pe ) + goto _test_eof903; +case 903: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2383; + case 32: goto tr2383; + case 40: goto tr2384; + case 41: goto tr2385; + case 3082: goto tr2386; + case 3131: goto tr2387; + case 3338: goto tr2388; + case 3387: goto tr2388; + case 3594: goto tr2389; + case 3643: goto tr2390; + } + goto tr2382; +tr2392: + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2393: + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2403: + { + s->line_counter++; + } + goto st904; +tr2423: + { + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 904; goto _out;} + } + } + } + { + s->line_counter++; + } + goto st904; +tr2383: + { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + goto st904; +tr2384: + { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2385: + { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2386: + { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + s->line_counter++; + } + goto st904; +tr2414: + { + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st338;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st338;} + } + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + goto st904; +tr2415: + { + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st338;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st338;} + } + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2416: + { + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st338;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st338;} + } + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2417: + { + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st338;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st338;} + } + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + goto st904; +tr2433: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + goto st904; +tr2434: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2435: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2436: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + goto st904; +tr2443: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + goto st904; +tr2444: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2445: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2446: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + goto st904; +tr2486: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + goto st904; +tr2487: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2488: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2491: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + goto st904; +tr2509: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + goto st904; +tr2510: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2511: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2514: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + goto st904; +tr2524: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + goto st904; +tr2525: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2526: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2529: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + goto st904; +tr2549: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + goto st904; +tr2550: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2551: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2553: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + goto st904; +tr2573: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + goto st904; +tr2574: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2575: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2576: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + goto st904; +tr2585: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + goto st904; +tr2586: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2587: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2588: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + goto st904; +tr2602: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + goto st904; +tr2603: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st904; +tr2604: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; + } + goto st904; +tr2606: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + goto st904; +st904: + if ( ++p == pe ) + goto _test_eof904; +case 904: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st904; + case 32: goto st904; + case 40: goto tr2392; + case 41: goto tr2393; + case 97: goto tr2394; + case 100: goto tr2395; + case 101: goto tr2396; + case 105: goto tr2397; + case 107: goto tr2398; + case 109: goto tr2399; + case 110: goto tr2400; + case 111: goto tr2401; + case 112: goto tr2402; + case 3082: goto tr2403; + case 3131: goto tr2404; + case 3338: goto tr2405; + case 3387: goto tr2405; + case 3594: goto tr2406; + case 3643: goto tr2407; + } + goto tr2382; +tr2394: + { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + s->svcb.param_position = rdata_tail; + } + goto st905; +st905: + if ( ++p == pe ) + goto _test_eof905; +case 905: + if ( (*p) == 108 ) + goto st906; + goto tr2382; +st906: + if ( ++p == pe ) + goto _test_eof906; +case 906: + if ( (*p) == 112 ) + goto st907; + goto tr2382; +st907: + if ( ++p == pe ) + goto _test_eof907; +case 907: + if ( (*p) == 110 ) + goto st908; + goto tr2382; +st908: + if ( ++p == pe ) + goto _test_eof908; +case 908: + if ( (*p) == 61 ) + goto tr2411; + goto tr2382; +tr2411: + { + uint16_t val = htons(1); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st909; +st909: + if ( ++p == pe ) + goto _test_eof909; +case 909: + switch( (*p) ) { + case 32: goto tr2382; + case 34: goto tr2413; + case 59: goto tr2382; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2382; + } else if ( (*p) >= 9 ) + goto tr2382; + goto tr2412; +tr2412: + { + s->comma_list = true; + s->pending_backslash = false; + } + { + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + { + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + { p--; {stack[top++] = 910;goto st349;} } + goto st910; +st910: + if ( ++p == pe ) + goto _test_eof910; +case 910: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2414; + case 32: goto tr2414; + case 40: goto tr2415; + case 41: goto tr2416; + case 3082: goto tr2417; + case 3131: goto tr2418; + case 3338: goto tr2419; + case 3387: goto tr2419; + case 3594: goto tr2420; + case 3643: goto tr2421; + } + goto tr2382; +tr2404: + { + s->buffer_length = 0; + } + goto st911; +tr2422: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st911; +tr2387: + { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + s->buffer_length = 0; + } + goto st911; +tr2418: + { + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st338;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st338;} + } + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st911; +tr2437: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st911; +tr2447: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st911; +tr2492: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st911; +tr2515: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st911; +tr2530: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st911; +tr2554: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st911; +tr2577: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st911; +tr2589: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st911; +tr2607: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + goto st911; +st911: + if ( ++p == pe ) + goto _test_eof911; +case 911: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr2423; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2422; + goto tr2382; +tr2388: + { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +tr2405: + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +tr2419: + { + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st338;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st338;} + } + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +tr2438: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +tr2448: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +tr2493: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +tr2516: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +tr2531: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +tr2555: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +tr2578: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +tr2590: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +tr2608: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1687; +st1687: + if ( ++p == pe ) + goto _test_eof1687; +case 1687: + goto st0; +tr2389: + { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +tr2406: + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +tr2420: + { + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st338;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st338;} + } + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +tr2439: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +tr2449: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +tr2494: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +tr2517: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +tr2532: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +tr2556: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +tr2579: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +tr2591: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +tr2609: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1688; +st1688: + if ( ++p == pe ) + goto _test_eof1688; +case 1688: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st904; + case 32: goto st904; + case 40: goto tr2392; + case 41: goto tr2393; + case 97: goto tr2394; + case 100: goto tr2395; + case 101: goto tr2396; + case 105: goto tr2397; + case 107: goto tr2398; + case 109: goto tr2399; + case 110: goto tr2400; + case 111: goto tr2401; + case 112: goto tr2402; + case 3082: goto tr2403; + case 3131: goto tr2404; + case 3338: goto tr2405; + case 3387: goto tr2405; + case 3594: goto tr2406; + case 3643: goto tr2407; + } + goto tr2382; +tr2395: + { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + s->svcb.param_position = rdata_tail; + } + goto st912; +st912: + if ( ++p == pe ) + goto _test_eof912; +case 912: + if ( (*p) == 111 ) + goto st913; + goto tr2382; +st913: + if ( ++p == pe ) + goto _test_eof913; +case 913: + if ( (*p) == 104 ) + goto st914; + goto tr2382; +st914: + if ( ++p == pe ) + goto _test_eof914; +case 914: + if ( (*p) == 112 ) + goto st915; + goto tr2382; +st915: + if ( ++p == pe ) + goto _test_eof915; +case 915: + if ( (*p) == 97 ) + goto st916; + goto tr2382; +st916: + if ( ++p == pe ) + goto _test_eof916; +case 916: + if ( (*p) == 116 ) + goto st917; + goto tr2382; +st917: + if ( ++p == pe ) + goto _test_eof917; +case 917: + if ( (*p) == 104 ) + goto st918; + goto tr2382; +st918: + if ( ++p == pe ) + goto _test_eof918; +case 918: + if ( (*p) == 61 ) + goto tr2430; + goto tr2382; +tr2430: + { + uint16_t val = htons(7); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st919; +st919: + if ( ++p == pe ) + goto _test_eof919; +case 919: + switch( (*p) ) { + case 32: goto tr2382; + case 34: goto tr2432; + case 59: goto tr2382; + } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2382; + } else if ( (*p) >= 9 ) + goto tr2382; + goto tr2431; +tr2431: + { + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + { p--; {stack[top++] = 920;goto st349;} } + goto st920; +st920: + if ( ++p == pe ) + goto _test_eof920; +case 920: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( !s->multiline ) _widec += 512; } } else if ( (*p) >= 10 ) { @@ -63855,120 +69211,225 @@ case 837: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2278; - case 32: goto tr2278; - case 40: goto tr2279; - case 41: goto tr2280; - case 3082: goto tr2281; - case 3131: goto tr2282; - case 3338: goto tr2283; - case 3387: goto tr2283; - case 3594: goto tr2284; - case 3643: goto tr2285; + case 9: goto tr2433; + case 32: goto tr2433; + case 40: goto tr2434; + case 41: goto tr2435; + case 3082: goto tr2436; + case 3131: goto tr2437; + case 3338: goto tr2438; + case 3387: goto tr2438; + case 3594: goto tr2439; + case 3643: goto tr2440; } - goto tr2277; -tr2287: + goto tr2382; +tr2390: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } - s->multiline = true; } - goto st838; -tr2288: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {cs = stack[--top];goto _again;} + } + goto st1689; +tr2407: + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } - s->multiline = false; } - goto st838; -tr2298: { - s->line_counter++; + p--; {cs = stack[--top];goto _again;} } - goto st838; -tr2318: + goto st1689; +tr2421: { - s->buffer[s->buffer_length++] = 0; + s->item_length = rdata_tail - s->item_length_location - 1; + if (s->comma_list && s->item_length == 0) { + WARN(ZS_EMPTY_LIST_ITEM); + p--; {goto st338;} + } + if (s->item_length <= MAX_ITEM_LENGTH) { + *(s->item_length_location) = (uint8_t)(s->item_length); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + s->comma_list = false; + if (s->pending_backslash) { + WARN(ZS_BAD_ALPN_BACKSLASH); + p--; {goto st338;} + } + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; - // Execute the comment callback. - if (s->process.automatic && s->process.comment != NULL) { - s->process.comment(s); + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1689; +tr2440: + { + s->item_length = rdata_tail - s->item_length2_location - 2; - // Stop if required from the callback. - if (s->state == ZS_STATE_STOP) { - {p++; cs = 838; goto _out;} - } + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} } } { - s->line_counter++; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } } - goto st838; -tr2278: { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; + s->buffer_length = 0; } - goto st838; -tr2279: { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {cs = stack[--top];goto _again;} + } + goto st1689; +tr2450: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } - s->multiline = true; } - goto st838; -tr2280: { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; + s->buffer_length = 0; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } - s->multiline = false; } - goto st838; -tr2281: { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; + p--; {cs = stack[--top];goto _again;} } + goto st1689; +tr2495: { - s->line_counter++; + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} + } } - goto st838; -tr2309: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1689; +tr2518: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -63978,37 +69439,356 @@ tr2309: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } - goto st838; -tr2310: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1689; +tr2533: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1689; +tr2557: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1689; +tr2580: + { + uint16_t val = htons(2); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1689; +tr2592: + { + uint16_t val = htons(8); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1689; +tr2610: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1689; +st1689: + if ( ++p == pe ) + goto _test_eof1689; +case 1689: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr2423; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2422; + goto tr2382; +tr2432: + { + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + { p--; {stack[top++] = 921;goto st349;} } + goto st921; +st921: + if ( ++p == pe ) + goto _test_eof921; +case 921: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2433; + case 32: goto tr2433; + case 40: goto tr2434; + case 41: goto tr2435; + case 3082: goto tr2436; + case 3131: goto tr2437; + case 3338: goto tr2438; + case 3387: goto tr2438; + case 3594: goto tr2439; + case 3643: goto tr2440; + } + if ( _widec < 11 ) { + if ( _widec <= 8 ) + goto tr2441; + } else if ( _widec > 58 ) { + if ( 60 <= _widec ) + goto tr2441; + } else + goto tr2441; + goto tr2382; +tr2441: + { + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + { p--; {stack[top++] = 922;goto st349;} } + goto st922; +st922: + if ( ++p == pe ) + goto _test_eof922; +case 922: + if ( (*p) == 34 ) + goto tr2442; + goto tr2382; +tr2442: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + goto st923; +tr2482: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + goto st923; +tr2505: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -64018,45 +69798,23 @@ tr2310: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } + goto st923; +tr2600: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = true; - } - goto st838; -tr2311: - { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } - } - { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} } } + goto st923; +tr2546: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -64065,43 +69823,32 @@ tr2311: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } - goto st838; -tr2312: + goto st923; +tr2612: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -64112,548 +69859,1079 @@ tr2312: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + goto st923; +st923: + if ( ++p == pe ) + goto _test_eof923; +case 923: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->line_counter++; + switch( _widec ) { + case 9: goto tr2443; + case 32: goto tr2443; + case 40: goto tr2444; + case 41: goto tr2445; + case 3082: goto tr2446; + case 3131: goto tr2447; + case 3338: goto tr2448; + case 3387: goto tr2448; + case 3594: goto tr2449; + case 3643: goto tr2450; } - goto st838; -tr2328: + goto tr2382; +tr2396: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + s->svcb.param_position = rdata_tail; } + goto st924; +st924: + if ( ++p == pe ) + goto _test_eof924; +case 924: + if ( (*p) == 99 ) + goto st925; + goto tr2382; +st925: + if ( ++p == pe ) + goto _test_eof925; +case 925: + if ( (*p) == 104 ) + goto st926; + goto tr2382; +st926: + if ( ++p == pe ) + goto _test_eof926; +case 926: + if ( (*p) == 61 ) + goto tr2453; + goto tr2382; +tr2453: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + uint16_t val = htons(5); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st927; +st927: + if ( ++p == pe ) + goto _test_eof927; +case 927: + switch( (*p) ) { + case 34: goto st928; + case 43: goto tr2455; } - goto st838; -tr2329: + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2455; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2455; + } else + goto tr2455; + goto tr2382; +st928: + if ( ++p == pe ) + goto _test_eof928; +case 928: + if ( (*p) == 43 ) + goto tr2456; + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2456; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2456; + } else + goto tr2456; + goto tr2382; +tr2462: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } + goto st929; +tr2456: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } - s->multiline = true; } - goto st838; -tr2330: + goto st929; +st929: + if ( ++p == pe ) + goto _test_eof929; +case 929: + if ( (*p) == 43 ) + goto tr2457; + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2457; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2457; + } else + goto tr2457; + goto tr2382; +tr2457: { - s->item_length = rdata_tail - s->item_length2_location - 2; + *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + if (rdata_tail <= rdata_stop) { + *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } + goto st930; +st930: + if ( ++p == pe ) + goto _test_eof930; +case 930: + switch( (*p) ) { + case 43: goto tr2458; + case 61: goto st933; + } + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2458; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2458; + } else + goto tr2458; + goto tr2382; +tr2458: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; + + if (rdata_tail <= rdata_stop) { + *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } + goto st931; +st931: + if ( ++p == pe ) + goto _test_eof931; +case 931: + switch( (*p) ) { + case 43: goto tr2460; + case 61: goto st932; + } + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2460; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2460; + } else + goto tr2460; + goto tr2382; +tr2460: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; + *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; } - goto st838; -tr2331: + goto st932; +st932: + if ( ++p == pe ) + goto _test_eof932; +case 932: + switch( (*p) ) { + case 34: goto tr2442; + case 43: goto tr2462; + } + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2462; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2462; + } else + goto tr2462; + goto tr2382; +st933: + if ( ++p == pe ) + goto _test_eof933; +case 933: + if ( (*p) == 61 ) + goto st932; + goto tr2382; +tr2468: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } + goto st934; +tr2455: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } { - s->line_counter++; + if (rdata_tail <= rdata_stop) { + *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } } - goto st838; -tr2338: + goto st934; +st934: + if ( ++p == pe ) + goto _test_eof934; +case 934: + if ( (*p) == 43 ) + goto tr2463; + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2463; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2463; + } else + goto tr2463; + goto tr2382; +tr2463: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; + + if (rdata_tail <= rdata_stop) { + *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } - goto st838; -tr2339: + goto st935; +st935: + if ( ++p == pe ) + goto _test_eof935; +case 935: + switch( (*p) ) { + case 43: goto tr2464; + case 61: goto st938; + } + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2464; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2464; + } else + goto tr2464; + goto tr2382; +tr2464: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; + + if (rdata_tail <= rdata_stop) { + *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } + goto st936; +st936: + if ( ++p == pe ) + goto _test_eof936; +case 936: + switch( (*p) ) { + case 43: goto tr2466; + case 61: goto st937; + } + if ( (*p) < 65 ) { + if ( 47 <= (*p) && (*p) <= 57 ) + goto tr2466; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2466; + } else + goto tr2466; + goto tr2382; +tr2466: { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; + } + goto st937; +st937: + if ( ++p == pe ) + goto _test_eof937; +case 937: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - s->multiline = true; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st838; -tr2340: + switch( _widec ) { + case 9: goto tr2433; + case 32: goto tr2433; + case 40: goto tr2434; + case 41: goto tr2435; + case 43: goto tr2468; + case 3082: goto tr2436; + case 3131: goto tr2437; + case 3338: goto tr2438; + case 3387: goto tr2438; + case 3594: goto tr2439; + case 3643: goto tr2440; + } + if ( _widec < 65 ) { + if ( 47 <= _widec && _widec <= 57 ) + goto tr2468; + } else if ( _widec > 90 ) { + if ( 97 <= _widec && _widec <= 122 ) + goto tr2468; + } else + goto tr2468; + goto tr2382; +st938: + if ( ++p == pe ) + goto _test_eof938; +case 938: + if ( (*p) == 61 ) + goto st937; + goto tr2382; +tr2397: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + s->svcb.param_position = rdata_tail; + } + goto st939; +st939: + if ( ++p == pe ) + goto _test_eof939; +case 939: + if ( (*p) == 112 ) + goto st940; + goto tr2382; +st940: + if ( ++p == pe ) + goto _test_eof940; +case 940: + if ( (*p) == 118 ) + goto st941; + goto tr2382; +st941: + if ( ++p == pe ) + goto _test_eof941; +case 941: + switch( (*p) ) { + case 52: goto st942; + case 54: goto st953; } + goto tr2382; +st942: + if ( ++p == pe ) + goto _test_eof942; +case 942: + if ( (*p) == 104 ) + goto st943; + goto tr2382; +st943: + if ( ++p == pe ) + goto _test_eof943; +case 943: + if ( (*p) == 105 ) + goto st944; + goto tr2382; +st944: + if ( ++p == pe ) + goto _test_eof944; +case 944: + if ( (*p) == 110 ) + goto st945; + goto tr2382; +st945: + if ( ++p == pe ) + goto _test_eof945; +case 945: + if ( (*p) == 116 ) + goto st946; + goto tr2382; +st946: + if ( ++p == pe ) + goto _test_eof946; +case 946: + if ( (*p) == 61 ) + goto tr2477; + goto tr2382; +tr2477: { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; + uint16_t val = htons(4); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st947; +st947: + if ( ++p == pe ) + goto _test_eof947; +case 947: + switch( (*p) ) { + case 34: goto st948; + case 46: goto tr2480; } - goto st838; -tr2341: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2480; + goto tr2478; +st948: + if ( ++p == pe ) + goto _test_eof948; +case 948: + if ( (*p) == 46 ) + goto tr2481; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2481; + goto tr2478; +tr2481: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } { - s->line_counter++; + s->buffer_length = 0; } - goto st838; -tr2381: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st329;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } + goto st949; +tr2484: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } + goto st949; +tr2485: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } + s->buffer_length = 0; } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } - goto st838; -tr2382: + goto st949; +st949: + if ( ++p == pe ) + goto _test_eof949; +case 949: + switch( (*p) ) { + case 34: goto tr2482; + case 44: goto tr2483; + case 46: goto tr2484; + } + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2484; + goto tr2478; +tr2483: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } + goto st950; +st950: + if ( ++p == pe ) + goto _test_eof950; +case 950: + if ( (*p) == 46 ) + goto tr2485; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2485; + goto tr2478; +tr2480: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } - s->multiline = true; } - goto st838; -tr2383: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st329;} - } + s->buffer_length = 0; } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; } + goto st951; +tr2490: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } + goto st951; +tr2496: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->buffer_length = 0; } { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } - s->multiline = false; } - goto st838; -tr2386: + goto st951; +st951: + if ( ++p == pe ) + goto _test_eof951; +case 951: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2486; + case 32: goto tr2486; + case 40: goto tr2487; + case 41: goto tr2488; + case 44: goto tr2489; + case 46: goto tr2490; + case 3082: goto tr2491; + case 3131: goto tr2492; + case 3338: goto tr2493; + case 3387: goto tr2493; + case 3594: goto tr2494; + case 3643: goto tr2495; + } + if ( 48 <= _widec && _widec <= 57 ) + goto tr2490; + goto tr2478; +tr2489: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } + goto st952; +st952: + if ( ++p == pe ) + goto _test_eof952; +case 952: + if ( (*p) == 46 ) + goto tr2496; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2496; + goto tr2478; +st953: + if ( ++p == pe ) + goto _test_eof953; +case 953: + if ( (*p) == 104 ) + goto st954; + goto tr2382; +st954: + if ( ++p == pe ) + goto _test_eof954; +case 954: + if ( (*p) == 105 ) + goto st955; + goto tr2382; +st955: + if ( ++p == pe ) + goto _test_eof955; +case 955: + if ( (*p) == 110 ) + goto st956; + goto tr2382; +st956: + if ( ++p == pe ) + goto _test_eof956; +case 956: + if ( (*p) == 116 ) + goto st957; + goto tr2382; +st957: + if ( ++p == pe ) + goto _test_eof957; +case 957: + if ( (*p) == 61 ) + goto tr2501; + goto tr2382; +tr2501: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } + uint16_t val = htons(6); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st958; +st958: + if ( ++p == pe ) + goto _test_eof958; +case 958: + switch( (*p) ) { + case 34: goto st959; + case 46: goto tr2503; } + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2503; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2503; + } else + goto tr2503; + goto tr2478; +st959: + if ( ++p == pe ) + goto _test_eof959; +case 959: + if ( (*p) == 46 ) + goto tr2504; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2504; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2504; + } else + goto tr2504; + goto tr2478; +tr2504: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } { - s->line_counter++; + s->buffer_length = 0; } - goto st838; -tr2404: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st329;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } + goto st960; +tr2507: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; } + goto st960; +tr2508: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } + s->buffer_length = 0; } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } - goto st838; -tr2405: + goto st960; +st960: + if ( ++p == pe ) + goto _test_eof960; +case 960: + switch( (*p) ) { + case 34: goto tr2505; + case 44: goto tr2506; + case 46: goto tr2507; + } + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2507; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2507; + } else + goto tr2507; + goto tr2478; +tr2506: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } + goto st961; +st961: + if ( ++p == pe ) + goto _test_eof961; +case 961: + if ( (*p) == 46 ) + goto tr2508; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2508; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2508; + } else + goto tr2508; + goto tr2478; +tr2503: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->buffer_length = 0; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } - s->multiline = true; } - goto st838; -tr2406: + goto st962; +tr2513: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st329;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } + goto st962; +tr2519: { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + s->buffer_length = 0; } { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + goto st962; +st962: + if ( ++p == pe ) + goto _test_eof962; +case 962: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; + switch( _widec ) { + case 9: goto tr2509; + case 32: goto tr2509; + case 40: goto tr2510; + case 41: goto tr2511; + case 44: goto tr2512; + case 46: goto tr2513; + case 3082: goto tr2514; + case 3131: goto tr2515; + case 3338: goto tr2516; + case 3387: goto tr2516; + case 3594: goto tr2517; + case 3643: goto tr2518; } - goto st838; -tr2409: + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 58 ) + goto tr2513; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2513; + } else + goto tr2513; + goto tr2478; +tr2512: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } + goto st963; +st963: + if ( ++p == pe ) + goto _test_eof963; +case 963: + if ( (*p) == 46 ) + goto tr2519; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2519; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2519; + } else + goto tr2519; + goto tr2478; +tr2398: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + s->svcb.param_position = rdata_tail; } + goto st964; +st964: + if ( ++p == pe ) + goto _test_eof964; +case 964: + if ( (*p) == 101 ) + goto st965; + goto tr2382; +st965: + if ( ++p == pe ) + goto _test_eof965; +case 965: + if ( (*p) == 121 ) + goto st966; + goto tr2382; +st966: + if ( ++p == pe ) + goto _test_eof966; +case 966: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2523; + goto tr2522; +tr2523: { - s->line_counter++; + s->number64 = 0; } - goto st838; -tr2419: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} } } - goto st838; -tr2420: + goto st967; +tr2527: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} } } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + goto st967; +st967: + if ( ++p == pe ) + goto _test_eof967; +case 967: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = true; + switch( _widec ) { + case 9: goto tr2524; + case 32: goto tr2524; + case 40: goto tr2525; + case 41: goto tr2526; + case 61: goto tr2528; + case 3082: goto tr2529; + case 3131: goto tr2530; + case 3338: goto tr2531; + case 3387: goto tr2531; + case 3594: goto tr2532; + case 3643: goto tr2533; } - goto st838; -tr2421: + if ( 48 <= _widec && _widec <= 57 ) + goto tr2527; + goto tr2522; +tr2528: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -64661,448 +70939,849 @@ tr2421: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} - } - s->multiline = false; + goto st968; +st968: + if ( ++p == pe ) + goto _test_eof968; +case 968: + switch( (*p) ) { + case 32: goto tr2382; + case 59: goto tr2382; } - goto st838; -tr2424: + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2382; + } else if ( (*p) >= 9 ) + goto tr2382; + goto tr2431; +tr2399: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + s->svcb.param_position = rdata_tail; } + goto st969; +st969: + if ( ++p == pe ) + goto _test_eof969; +case 969: + if ( (*p) == 97 ) + goto st970; + goto tr2382; +st970: + if ( ++p == pe ) + goto _test_eof970; +case 970: + if ( (*p) == 110 ) + goto st971; + goto tr2382; +st971: + if ( ++p == pe ) + goto _test_eof971; +case 971: + if ( (*p) == 100 ) + goto st972; + goto tr2382; +st972: + if ( ++p == pe ) + goto _test_eof972; +case 972: + if ( (*p) == 97 ) + goto st973; + goto tr2382; +st973: + if ( ++p == pe ) + goto _test_eof973; +case 973: + if ( (*p) == 116 ) + goto st974; + goto tr2382; +st974: + if ( ++p == pe ) + goto _test_eof974; +case 974: + if ( (*p) == 111 ) + goto st975; + goto tr2382; +st975: + if ( ++p == pe ) + goto _test_eof975; +case 975: + if ( (*p) == 114 ) + goto st976; + goto tr2382; +st976: + if ( ++p == pe ) + goto _test_eof976; +case 976: + if ( (*p) == 121 ) + goto st977; + goto tr2382; +st977: + if ( ++p == pe ) + goto _test_eof977; +case 977: + if ( (*p) == 61 ) + goto tr2542; + goto tr2382; +tr2542: { uint16_t val = htons(0); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } + goto st978; +st978: + if ( ++p == pe ) + goto _test_eof978; +case 978: + if ( (*p) == 34 ) + goto st979; + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2544; + } else if ( (*p) >= 65 ) + goto tr2544; + goto tr2382; +st979: + if ( ++p == pe ) + goto _test_eof979; +case 979: + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2545; + } else if ( (*p) >= 65 ) + goto tr2545; + goto tr2382; +tr2545: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - s->line_counter++; - } - goto st838; -tr2444: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } - } - { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } - goto st838; -tr2445: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } - { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + { p--; {stack[top++] = 980;goto st808;} } + goto st980; +tr2548: + { p--; {stack[top++] = 980;goto st808;} } + goto st980; +st980: + if ( ++p == pe ) + goto _test_eof980; +case 980: + switch( (*p) ) { + case 34: goto tr2546; + case 44: goto st981; } + goto tr2382; +st981: + if ( ++p == pe ) + goto _test_eof981; +case 981: + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2548; + } else if ( (*p) >= 65 ) + goto tr2548; + goto tr2382; +tr2544: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } - s->multiline = true; } - goto st838; -tr2446: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + { p--; {stack[top++] = 982;goto st808;} } + goto st982; +tr2558: + { p--; {stack[top++] = 982;goto st808;} } + goto st982; +st982: + if ( ++p == pe ) + goto _test_eof982; +case 982: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + switch( _widec ) { + case 9: goto tr2549; + case 32: goto tr2549; + case 40: goto tr2550; + case 41: goto tr2551; + case 44: goto st983; + case 3082: goto tr2553; + case 3131: goto tr2554; + case 3338: goto tr2555; + case 3387: goto tr2555; + case 3594: goto tr2556; + case 3643: goto tr2557; } + goto tr2382; +st983: + if ( ++p == pe ) + goto _test_eof983; +case 983: + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2558; + } else if ( (*p) >= 65 ) + goto tr2558; + goto tr2382; +tr2400: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + s->svcb.param_position = rdata_tail; } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + goto st984; +st984: + if ( ++p == pe ) + goto _test_eof984; +case 984: + if ( (*p) == 111 ) + goto st985; + goto tr2382; +st985: + if ( ++p == pe ) + goto _test_eof985; +case 985: + if ( (*p) == 45 ) + goto st986; + goto tr2382; +st986: + if ( ++p == pe ) + goto _test_eof986; +case 986: + if ( (*p) == 100 ) + goto st987; + goto tr2382; +st987: + if ( ++p == pe ) + goto _test_eof987; +case 987: + if ( (*p) == 101 ) + goto st988; + goto tr2382; +st988: + if ( ++p == pe ) + goto _test_eof988; +case 988: + if ( (*p) == 102 ) + goto st989; + goto tr2382; +st989: + if ( ++p == pe ) + goto _test_eof989; +case 989: + if ( (*p) == 97 ) + goto st990; + goto tr2382; +st990: + if ( ++p == pe ) + goto _test_eof990; +case 990: + if ( (*p) == 117 ) + goto st991; + goto tr2382; +st991: + if ( ++p == pe ) + goto _test_eof991; +case 991: + if ( (*p) == 108 ) + goto st992; + goto tr2382; +st992: + if ( ++p == pe ) + goto _test_eof992; +case 992: + if ( (*p) == 116 ) + goto st993; + goto tr2382; +st993: + if ( ++p == pe ) + goto _test_eof993; +case 993: + if ( (*p) == 45 ) + goto st994; + goto tr2382; +st994: + if ( ++p == pe ) + goto _test_eof994; +case 994: + if ( (*p) == 97 ) + goto st995; + goto tr2382; +st995: + if ( ++p == pe ) + goto _test_eof995; +case 995: + if ( (*p) == 108 ) + goto st996; + goto tr2382; +st996: + if ( ++p == pe ) + goto _test_eof996; +case 996: + if ( (*p) == 112 ) + goto st997; + goto tr2382; +st997: + if ( ++p == pe ) + goto _test_eof997; +case 997: + if ( (*p) == 110 ) + goto st998; + goto tr2382; +st998: + if ( ++p == pe ) + goto _test_eof998; +case 998: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - s->multiline = false; + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - goto st838; -tr2448: + switch( _widec ) { + case 9: goto tr2573; + case 32: goto tr2573; + case 40: goto tr2574; + case 41: goto tr2575; + case 3082: goto tr2576; + case 3131: goto tr2577; + case 3338: goto tr2578; + case 3387: goto tr2578; + case 3594: goto tr2579; + case 3643: goto tr2580; + } + goto tr2382; +tr2401: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + s->svcb.param_position = rdata_tail; } - { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + goto st999; +st999: + if ( ++p == pe ) + goto _test_eof999; +case 999: + if ( (*p) == 104 ) + goto st1000; + goto tr2382; +st1000: + if ( ++p == pe ) + goto _test_eof1000; +case 1000: + if ( (*p) == 116 ) + goto st1001; + goto tr2382; +st1001: + if ( ++p == pe ) + goto _test_eof1001; +case 1001: + if ( (*p) == 116 ) + goto st1002; + goto tr2382; +st1002: + if ( ++p == pe ) + goto _test_eof1002; +case 1002: + if ( (*p) == 112 ) + goto st1003; + goto tr2382; +st1003: + if ( ++p == pe ) + goto _test_eof1003; +case 1003: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->line_counter++; + switch( _widec ) { + case 9: goto tr2585; + case 32: goto tr2585; + case 40: goto tr2586; + case 41: goto tr2587; + case 3082: goto tr2588; + case 3131: goto tr2589; + case 3338: goto tr2590; + case 3387: goto tr2590; + case 3594: goto tr2591; + case 3643: goto tr2592; } - goto st838; -tr2468: + goto tr2382; +tr2402: { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + s->svcb.param_position = rdata_tail; } + goto st1004; +st1004: + if ( ++p == pe ) + goto _test_eof1004; +case 1004: + if ( (*p) == 111 ) + goto st1005; + goto tr2382; +st1005: + if ( ++p == pe ) + goto _test_eof1005; +case 1005: + if ( (*p) == 114 ) + goto st1006; + goto tr2382; +st1006: + if ( ++p == pe ) + goto _test_eof1006; +case 1006: + if ( (*p) == 116 ) + goto st1007; + goto tr2382; +st1007: + if ( ++p == pe ) + goto _test_eof1007; +case 1007: + if ( (*p) == 61 ) + goto tr2596; + goto tr2382; +tr2596: { - uint16_t val = htons(0); + uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } + goto st1008; +st1008: + if ( ++p == pe ) + goto _test_eof1008; +case 1008: + if ( (*p) == 34 ) + goto st1009; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2598; + goto tr2522; +st1009: + if ( ++p == pe ) + goto _test_eof1009; +case 1009: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2599; + goto tr2522; +tr2601: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} } } - goto st838; -tr2469: + goto st1010; +tr2599: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->number64 = 0; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} } - s->multiline = true; } - goto st838; -tr2470: + goto st1010; +st1010: + if ( ++p == pe ) + goto _test_eof1010; +case 1010: + if ( (*p) == 34 ) + goto tr2600; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2601; + goto tr2522; +tr2605: { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} + } } + goto st1011; +tr2598: { - uint16_t val = htons(0); + uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - if (s->multiline == false) { - ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + if (rdata_tail + 2 > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } - s->multiline = false; } - goto st838; -tr2471: { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->number64 = 0; } { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} + } } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + goto st1011; +st1011: + if ( ++p == pe ) + goto _test_eof1011; +case 1011: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - s->line_counter++; + switch( _widec ) { + case 9: goto tr2602; + case 32: goto tr2602; + case 40: goto tr2603; + case 41: goto tr2604; + case 3082: goto tr2606; + case 3131: goto tr2607; + case 3338: goto tr2608; + case 3387: goto tr2608; + case 3594: goto tr2609; + case 3643: goto tr2610; } - goto st838; -tr2480: + if ( 48 <= _widec && _widec <= 57 ) + goto tr2605; + goto tr2522; +tr2413: { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->comma_list = true; + s->pending_backslash = false; } { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } - goto st838; -tr2481: - { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + { p--; {stack[top++] = 1012;goto st349;} } + goto st1012; +st1012: + if ( ++p == pe ) + goto _test_eof1012; +case 1012: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + switch( _widec ) { + case 9: goto tr2414; + case 32: goto tr2414; + case 40: goto tr2415; + case 41: goto tr2416; + case 3082: goto tr2417; + case 3131: goto tr2418; + case 3338: goto tr2419; + case 3387: goto tr2419; + case 3594: goto tr2420; + case 3643: goto tr2421; } + if ( _widec < 11 ) { + if ( _widec <= 8 ) + goto tr2611; + } else if ( _widec > 58 ) { + if ( 60 <= _widec ) + goto tr2611; + } else + goto tr2611; + goto tr2382; +tr2611: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->comma_list = true; + s->pending_backslash = false; } { - if (s->multiline == true) { - ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } - s->multiline = true; } - goto st838; -tr2482: { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (rdata_tail <= rdata_stop) { + s->item_length_location = rdata_tail++; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + { p--; {stack[top++] = 1013;goto st349;} } + goto st1013; +st1013: + if ( ++p == pe ) + goto _test_eof1013; +case 1013: + if ( (*p) == 34 ) + goto tr2612; + goto tr2382; +st1014: + if ( ++p == pe ) + goto _test_eof1014; +case 1014: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + switch( _widec ) { + case 9: goto tr2613; + case 32: goto tr2613; + case 40: goto tr2614; + case 41: goto tr2615; + case 105: goto tr2616; + case 107: goto tr2617; + case 109: goto tr2618; + case 115: goto tr2619; + case 3082: goto tr2620; + case 3131: goto tr2621; + case 3338: goto tr2622; + case 3387: goto tr2622; + case 3594: goto tr2623; + case 3643: goto tr2624; + } + goto tr2382; +tr2626: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} } + s->multiline = true; } + goto st1015; +tr2627: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st838; -tr2483: - { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } + goto st1015; +tr2628: { s->line_counter++; } - goto st838; -tr2497: + goto st1015; +tr2634: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + s->buffer[s->buffer_length++] = 0; + + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1015; goto _out;} + } } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->line_counter++; } - goto st838; -tr2498: + goto st1015; +tr2613: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } + goto st1015; +tr2614: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st838; -tr2499: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } + goto st1015; +tr2615: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st838; -tr2501: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } + goto st1015; +tr2620: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } { s->line_counter++; } - goto st838; -st838: + goto st1015; +st1015: if ( ++p == pe ) - goto _test_eof838; -case 838: + goto _test_eof1015; +case 1015: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -65120,185 +71799,95 @@ case 838: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st838; - case 32: goto st838; - case 40: goto tr2287; - case 41: goto tr2288; - case 97: goto tr2289; - case 100: goto tr2290; - case 101: goto tr2291; - case 105: goto tr2292; - case 107: goto tr2293; - case 109: goto tr2294; - case 110: goto tr2295; - case 111: goto tr2296; - case 112: goto tr2297; - case 3082: goto tr2298; - case 3131: goto tr2299; - case 3338: goto tr2300; - case 3387: goto tr2300; - case 3594: goto tr2301; - case 3643: goto tr2302; - } - goto tr2277; -tr2289: - { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - s->svcb.param_position = rdata_tail; + case 9: goto st1015; + case 32: goto st1015; + case 40: goto tr2626; + case 41: goto tr2627; + case 3082: goto tr2628; + case 3131: goto tr2629; + case 3338: goto tr2630; + case 3387: goto tr2630; + case 3594: goto tr2631; + case 3643: goto tr2632; } - goto st839; -st839: - if ( ++p == pe ) - goto _test_eof839; -case 839: - if ( (*p) == 108 ) - goto st840; - goto tr2277; -st840: - if ( ++p == pe ) - goto _test_eof840; -case 840: - if ( (*p) == 112 ) - goto st841; - goto tr2277; -st841: - if ( ++p == pe ) - goto _test_eof841; -case 841: - if ( (*p) == 110 ) - goto st842; - goto tr2277; -st842: - if ( ++p == pe ) - goto _test_eof842; -case 842: - if ( (*p) == 61 ) - goto tr2306; - goto tr2277; -tr2306: + goto tr2382; +tr2629: { - uint16_t val = htons(1); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - goto st843; -st843: - if ( ++p == pe ) - goto _test_eof843; -case 843: - switch( (*p) ) { - case 32: goto tr2277; - case 34: goto tr2308; - case 59: goto tr2277; + s->buffer_length = 0; } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2277; - } else if ( (*p) >= 9 ) - goto tr2277; - goto tr2307; -tr2307: + goto st1016; +tr2633: { - s->comma_list = true; - s->pending_backslash = false; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } } + goto st1016; +tr2621: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } + s->buffer_length = 0; } - { p--; {stack[top++] = 844;goto st340;} } - goto st844; -st844: + goto st1016; +st1016: if ( ++p == pe ) - goto _test_eof844; -case 844: + goto _test_eof1016; +case 1016: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); if ( - !s->multiline ) _widec += 512; + s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + } else { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr2309; - case 32: goto tr2309; - case 40: goto tr2310; - case 41: goto tr2311; - case 3082: goto tr2312; - case 3131: goto tr2313; - case 3338: goto tr2314; - case 3387: goto tr2314; - case 3594: goto tr2315; - case 3643: goto tr2316; } - goto tr2277; -tr2299: + if ( _widec == 2058 ) + goto tr2634; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2633; + goto tr2382; +tr2622: { - s->buffer_length = 0; + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } - goto st845; -tr2317: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } } - goto st845; -tr2282: - { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; - } { - s->buffer_length = 0; + p--; {cs = stack[--top];goto _again;} } - goto st845; -tr2313: + goto st1690; +tr2630: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } } { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1690; +tr2696: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65307,68 +71896,59 @@ tr2313: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->buffer_length = 0; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } } - goto st845; -tr2332: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } + p--; {cs = stack[--top];goto _again;} } + goto st1690; +tr2663: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->buffer_length = 0; - } - goto st845; -tr2342: - { - int ret = svcb_sort(s, rdata_tail); + int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->buffer_length = 0; + p--; {cs = stack[--top];goto _again;} } - goto st845; -tr2387: + goto st1690; +tr2753: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -65381,33 +71961,40 @@ tr2387: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->buffer_length = 0; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} } - goto st845; -tr2410: + goto st1690; +tr2772: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -65420,21 +72007,28 @@ tr2410: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->buffer_length = 0; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} } - goto st845; -tr2425: + goto st1690; +tr2687: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -65442,7 +72036,7 @@ tr2425: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -65454,14 +72048,21 @@ tr2425: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->buffer_length = 0; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } } - goto st845; -tr2449: + { + p--; {cs = stack[--top];goto _again;} + } + goto st1690; +tr2722: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65470,7 +72071,7 @@ tr2449: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -65480,83 +72081,163 @@ tr2449: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->buffer_length = 0; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } } - goto st845; -tr2472: { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + p--; {cs = stack[--top];goto _again;} } + goto st1690; +tr2787: { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + rdata_tail += s->dname_tmp_length; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->buffer_length = 0; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } } - goto st845; -tr2484: { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + p--; {cs = stack[--top];goto _again;} + } + goto st1690; +st1690: + if ( ++p == pe ) + goto _test_eof1690; +case 1690: + goto st0; +tr2623: + { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->line_counter++; } { - int ret = svcb_sort(s, rdata_tail); + int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->buffer_length = 0; + p--; {cs = stack[--top];goto _again;} } - goto st845; -tr2502: + goto st1691; +tr2631: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } } { - int ret = svcb_sort(s, rdata_tail); + p--; {cs = stack[--top];goto _again;} + } + goto st1691; +st1691: + if ( ++p == pe ) + goto _test_eof1691; +case 1691: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto st1015; + case 32: goto st1015; + case 40: goto tr2626; + case 41: goto tr2627; + case 3082: goto tr2628; + case 3131: goto tr2629; + case 3338: goto tr2630; + case 3387: goto tr2630; + case 3594: goto tr2631; + case 3643: goto tr2632; + } + goto tr2382; +tr2624: + { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1692; +tr2632: { s->buffer_length = 0; } - goto st845; -st845: + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1692; +st1692: if ( ++p == pe ) - goto _test_eof845; -case 845: + goto _test_eof1692; +case 1692: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -65576,58 +72257,255 @@ case 845: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2318; + goto tr2634; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2317; - goto tr2277; -tr2283: + goto tr2633; + goto tr2382; +tr2669: + { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + s->svcb.param_position = rdata_tail; + } + goto st1017; +tr2616: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + s->svcb.param_position = rdata_tail; + } + goto st1017; +st1017: + if ( ++p == pe ) + goto _test_eof1017; +case 1017: + if ( (*p) == 110 ) + goto st1018; + goto tr2382; +st1018: + if ( ++p == pe ) + goto _test_eof1018; +case 1018: + if ( (*p) == 99 ) + goto st1019; + goto tr2382; +st1019: + if ( ++p == pe ) + goto _test_eof1019; +case 1019: + if ( (*p) == 108 ) + goto st1020; + goto tr2382; +st1020: + if ( ++p == pe ) + goto _test_eof1020; +case 1020: + if ( (*p) == 117 ) + goto st1021; + goto tr2382; +st1021: + if ( ++p == pe ) + goto _test_eof1021; +case 1021: + if ( (*p) == 100 ) + goto st1022; + goto tr2382; +st1022: + if ( ++p == pe ) + goto _test_eof1022; +case 1022: + if ( (*p) == 101 ) + goto st1023; + goto tr2382; +st1023: + if ( ++p == pe ) + goto _test_eof1023; +case 1023: + if ( (*p) == 45 ) + goto st1024; + goto tr2382; +st1024: + if ( ++p == pe ) + goto _test_eof1024; +case 1024: + if ( (*p) == 100 ) + goto st1025; + goto tr2382; +st1025: + if ( ++p == pe ) + goto _test_eof1025; +case 1025: + if ( (*p) == 101 ) + goto st1026; + goto tr2382; +st1026: + if ( ++p == pe ) + goto _test_eof1026; +case 1026: + if ( (*p) == 108 ) + goto st1027; + goto tr2382; +st1027: + if ( ++p == pe ) + goto _test_eof1027; +case 1027: + if ( (*p) == 101 ) + goto st1028; + goto tr2382; +st1028: + if ( ++p == pe ) + goto _test_eof1028; +case 1028: + if ( (*p) == 103 ) + goto st1029; + goto tr2382; +st1029: + if ( ++p == pe ) + goto _test_eof1029; +case 1029: + if ( (*p) == 112 ) + goto st1030; + goto tr2382; +st1030: + if ( ++p == pe ) + goto _test_eof1030; +case 1030: + if ( (*p) == 97 ) + goto st1031; + goto tr2382; +st1031: + if ( ++p == pe ) + goto _test_eof1031; +case 1031: + if ( (*p) == 114 ) + goto st1032; + goto tr2382; +st1032: + if ( ++p == pe ) + goto _test_eof1032; +case 1032: + if ( (*p) == 97 ) + goto st1033; + goto tr2382; +st1033: + if ( ++p == pe ) + goto _test_eof1033; +case 1033: + if ( (*p) == 109 ) + goto st1034; + goto tr2382; +st1034: + if ( ++p == pe ) + goto _test_eof1034; +case 1034: + if ( (*p) == 61 ) + goto tr2652; + goto tr2382; +tr2652: + { + uint16_t val = htons(4); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st1035; +tr2779: + { + uint16_t val = htons(3); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + goto st1035; +st1035: + if ( ++p == pe ) + goto _test_eof1035; +case 1035: + switch( (*p) ) { + case 34: goto st1036; + case 42: goto tr2654; + case 92: goto tr2654; + case 95: goto tr2654; + } + if ( (*p) < 64 ) { + if ( 45 <= (*p) && (*p) <= 57 ) + goto tr2654; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2654; + } else + goto tr2654; + goto tr2382; +st1036: + if ( ++p == pe ) + goto _test_eof1036; +case 1036: + switch( (*p) ) { + case 42: goto tr2655; + case 92: goto tr2655; + case 95: goto tr2655; + } + if ( (*p) < 64 ) { + if ( 45 <= (*p) && (*p) <= 57 ) + goto tr2655; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2655; + } else + goto tr2655; + goto tr2382; +tr2655: + { + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + s->dname = rdata_tail; } - goto st1539; -tr2300: + { p--; {stack[top++] = 1037;goto st340;} } + goto st1037; +tr2780: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->dname = rdata_tail; } - { - p--; {cs = stack[--top];goto _again;} + { p--; {stack[top++] = 1037;goto st340;} } + goto st1037; +st1037: + if ( ++p == pe ) + goto _test_eof1037; +case 1037: + switch( (*p) ) { + case 34: goto tr2656; + case 44: goto tr2657; } - goto st1539; -tr2314: + goto tr2382; +tr2742: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} } } { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65637,28 +72515,40 @@ tr2314: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } + goto st1038; +tr2761: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} } } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } { - p--; {cs = stack[--top];goto _again;} + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } } - goto st1539; -tr2333: + goto st1038; +tr2713: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65667,63 +72557,104 @@ tr2333: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } + goto st1038; +tr2656: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + rdata_tail += s->dname_tmp_length; } { - p--; {cs = stack[--top];goto _again;} + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } } - goto st1539; -tr2343: + goto st1038; +st1038: + if ( ++p == pe ) + goto _test_eof1038; +case 1038: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2658; + case 32: goto tr2658; + case 40: goto tr2659; + case 41: goto tr2660; + case 3082: goto tr2661; + case 3131: goto tr2662; + case 3338: goto tr2663; + case 3387: goto tr2663; + case 3594: goto tr2664; + case 3643: goto tr2665; + } + goto tr2382; +tr2667: { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} } + s->multiline = true; } + goto st1039; +tr2668: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} } + s->multiline = false; } + goto st1039; +tr2673: { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1539; -tr2388: + goto st1039; +tr2700: { - s->buffer[s->buffer_length] = 0; + s->buffer[s->buffer_length++] = 0; - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st329;} + // Execute the comment callback. + if (s->process.automatic && s->process.comment != NULL) { + s->process.comment(s); + + // Stop if required from the callback. + if (s->state == ZS_STATE_STOP) { + {p++; cs = 1039; goto _out;} + } } } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + s->line_counter++; } + goto st1039; +tr2691: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65732,44 +72663,18 @@ tr2388: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} - } - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1539; -tr2411: - { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st329;} - } - } - { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; } + goto st1039; +tr2692: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65778,62 +72683,52 @@ tr2411: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} } + s->multiline = true; } + goto st1039; +tr2693: { - p--; {cs = stack[--top];goto _again;} - } - goto st1539; -tr2426: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} } } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} } + s->multiline = false; } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1539; -tr2450: + goto st1039; +tr2694: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -65842,176 +72737,211 @@ tr2450: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } } + { + s->line_counter++; + } + goto st1039; +tr2658: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } + goto st1039; +tr2659: { - int ret = svcb_check(s, rdata_tail); + int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; } - goto st1539; -tr2473: + goto st1039; +tr2660: { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } } { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; } + goto st1039; +tr2661: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } + s->line_counter++; } + goto st1039; +tr2746: { - p--; {cs = stack[--top];goto _again;} + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} + } } - goto st1539; -tr2485: { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } + goto st1039; +tr2747: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1539; -tr2503: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} } + s->multiline = true; } + goto st1039; +tr2748: { - p--; {cs = stack[--top];goto _again;} - } - goto st1539; -st1539: - if ( ++p == pe ) - goto _test_eof1539; -case 1539: - goto st0; -tr2284: - { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; - } - { - s->line_counter++; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1540; -tr2301: { - s->line_counter++; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } } { - int ret = svcb_check(s, rdata_tail); + int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; } - goto st1540; -tr2315: + goto st1039; +tr2751: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} } } { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -66021,31 +72951,37 @@ tr2315: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } + goto st1039; +tr2765: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1540; -tr2334: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -66054,68 +72990,76 @@ tr2334: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } + goto st1039; +tr2766: { - s->line_counter++; + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } } { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } { - p--; {cs = stack[--top];goto _again;} + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } } - goto st1540; -tr2344: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->line_counter++; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} } + s->multiline = true; } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1540; -tr2389: + goto st1039; +tr2767: { s->buffer[s->buffer_length] = 0; - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st329;} + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} } } { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -66125,43 +73069,37 @@ tr2389: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->line_counter++; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} } + s->multiline = false; } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1540; -tr2412: + goto st1039; +tr2770: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -66174,31 +73112,107 @@ tr2412: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + goto st1039; +tr2680: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } + } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + goto st1039; +tr2681: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} } } + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} + } + } + { + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; + } + goto st1039; +tr2682: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} } } { - s->line_counter++; + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } { - int ret = svcb_check(s, rdata_tail); + int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; } - goto st1540; -tr2427: + goto st1039; +tr2685: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -66206,7 +73220,7 @@ tr2427: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -66218,24 +73232,14 @@ tr2427: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1540; -tr2451: + goto st1039; +tr2716: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -66244,7 +73248,7 @@ tr2451: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -66254,123 +73258,209 @@ tr2451: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } + goto st1039; +tr2717: { - s->line_counter++; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } } { - int ret = svcb_check(s, rdata_tail); + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; } - goto st1540; -tr2474: + goto st1039; +tr2718: { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } } { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->line_counter++; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; } + goto st1039; +tr2720: { - int ret = svcb_check(s, rdata_tail); + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1540; -tr2486: + goto st1039; +tr2781: { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + rdata_tail += s->dname_tmp_length; } { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } + goto st1039; +tr2782: { - s->line_counter++; + rdata_tail += s->dname_tmp_length; } { - int ret = svcb_check(s, rdata_tail); + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + if (s->multiline == true) { + ERR(ZS_LEFT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = true; } - goto st1540; -tr2504: + goto st1039; +tr2783: { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; + rdata_tail += s->dname_tmp_length; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - s->line_counter++; + if (s->multiline == false) { + ERR(ZS_RIGHT_PARENTHESIS); + p--; {goto st338;} + } + s->multiline = false; } + goto st1039; +tr2785: { - int ret = svcb_check(s, rdata_tail); + rdata_tail += s->dname_tmp_length; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + s->line_counter++; } - goto st1540; -st1540: + goto st1039; +st1039: if ( ++p == pe ) - goto _test_eof1540; -case 1540: + goto _test_eof1039; +case 1039: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66388,123 +73478,104 @@ case 1540: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st838; - case 32: goto st838; - case 40: goto tr2287; - case 41: goto tr2288; - case 97: goto tr2289; - case 100: goto tr2290; - case 101: goto tr2291; - case 105: goto tr2292; - case 107: goto tr2293; - case 109: goto tr2294; - case 110: goto tr2295; - case 111: goto tr2296; - case 112: goto tr2297; - case 3082: goto tr2298; - case 3131: goto tr2299; - case 3338: goto tr2300; - case 3387: goto tr2300; - case 3594: goto tr2301; - case 3643: goto tr2302; - } - goto tr2277; -tr2290: + case 9: goto st1039; + case 32: goto st1039; + case 40: goto tr2667; + case 41: goto tr2668; + case 105: goto tr2669; + case 107: goto tr2670; + case 109: goto tr2671; + case 115: goto tr2672; + case 3082: goto tr2673; + case 3131: goto tr2674; + case 3338: goto tr2630; + case 3387: goto tr2630; + case 3594: goto tr2675; + case 3643: goto tr2676; + } + goto tr2382; +tr2670: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->svcb.param_position = rdata_tail; } - goto st846; -st846: - if ( ++p == pe ) - goto _test_eof846; -case 846: - if ( (*p) == 111 ) - goto st847; - goto tr2277; -st847: - if ( ++p == pe ) - goto _test_eof847; -case 847: - if ( (*p) == 104 ) - goto st848; - goto tr2277; -st848: - if ( ++p == pe ) - goto _test_eof848; -case 848: - if ( (*p) == 112 ) - goto st849; - goto tr2277; -st849: - if ( ++p == pe ) - goto _test_eof849; -case 849: - if ( (*p) == 97 ) - goto st850; - goto tr2277; -st850: + goto st1040; +tr2617: + { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + s->svcb.param_position = rdata_tail; + } + goto st1040; +st1040: if ( ++p == pe ) - goto _test_eof850; -case 850: - if ( (*p) == 116 ) - goto st851; - goto tr2277; -st851: + goto _test_eof1040; +case 1040: + if ( (*p) == 101 ) + goto st1041; + goto tr2382; +st1041: if ( ++p == pe ) - goto _test_eof851; -case 851: - if ( (*p) == 104 ) - goto st852; - goto tr2277; -st852: + goto _test_eof1041; +case 1041: + if ( (*p) == 121 ) + goto st1042; + goto tr2382; +st1042: if ( ++p == pe ) - goto _test_eof852; -case 852: - if ( (*p) == 61 ) - goto tr2325; - goto tr2277; -tr2325: + goto _test_eof1042; +case 1042: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2679; + goto tr2522; +tr2679: { - uint16_t val = htons(7); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->number64 = 0; } - goto st853; -st853: - if ( ++p == pe ) - goto _test_eof853; -case 853: - switch( (*p) ) { - case 32: goto tr2277; - case 34: goto tr2327; - case 59: goto tr2277; + { + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; + } else { + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} + } } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2277; - } else if ( (*p) >= 9 ) - goto tr2277; - goto tr2326; -tr2326: + goto st1043; +tr2683: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; + // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX + if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. + ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. + ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') + ) + ) { + s->number64 *= 10; + s->number64 += digit_to_num[(uint8_t)(*p)]; } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + WARN(ZS_NUMBER64_OVERFLOW); + p--; {goto st338;} } } - { p--; {stack[top++] = 854;goto st340;} } - goto st854; -st854: + goto st1043; +st1043: if ( ++p == pe ) - goto _test_eof854; -case 854: + goto _test_eof1043; +case 1043: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -66522,106 +73593,105 @@ case 854: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2328; - case 32: goto tr2328; - case 40: goto tr2329; - case 41: goto tr2330; - case 3082: goto tr2331; - case 3131: goto tr2332; - case 3338: goto tr2333; - case 3387: goto tr2333; - case 3594: goto tr2334; - case 3643: goto tr2335; - } - goto tr2277; -tr2285: - { - s->svcb.params_position = rdata_tail; - s->svcb.last_key = -1; - } - { - s->buffer_length = 0; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1541; -tr2302: - { - s->buffer_length = 0; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - p--; {cs = stack[--top];goto _again;} + case 9: goto tr2680; + case 32: goto tr2680; + case 40: goto tr2681; + case 41: goto tr2682; + case 61: goto tr2684; + case 3082: goto tr2685; + case 3131: goto tr2686; + case 3338: goto tr2687; + case 3387: goto tr2687; + case 3594: goto tr2688; + case 3643: goto tr2689; } - goto st1541; -tr2316: + if ( 48 <= _widec && _widec <= 57 ) + goto tr2683; + goto tr2522; +tr2684: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} } } - { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} - } + goto st1044; +st1044: + if ( ++p == pe ) + goto _test_eof1044; +case 1044: + switch( (*p) ) { + case 32: goto tr2382; + case 59: goto tr2382; } + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr2382; + } else if ( (*p) >= 9 ) + goto tr2382; + goto tr2690; +tr2690: { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + { p--; {stack[top++] = 1045;goto st349;} } + goto st1045; +st1045: + if ( ++p == pe ) + goto _test_eof1045; +case 1045: + _widec = (*p); + if ( (*p) > 10 ) { + if ( 59 <= (*p) && (*p) <= 59 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; } + } else if ( (*p) >= 10 ) { + _widec = (short)(2688 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + if ( + !s->multiline ) _widec += 512; + } + switch( _widec ) { + case 9: goto tr2691; + case 32: goto tr2691; + case 40: goto tr2692; + case 41: goto tr2693; + case 3082: goto tr2694; + case 3131: goto tr2695; + case 3338: goto tr2696; + case 3387: goto tr2696; + case 3594: goto tr2697; + case 3643: goto tr2698; } + goto tr2382; +tr2674: { s->buffer_length = 0; } + goto st1046; +tr2699: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1541; -tr2335: + goto st1046; +tr2695: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -66630,65 +73700,45 @@ tr2335: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1541; -tr2345: + goto st1046; +tr2662: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1541; -tr2390: + goto st1046; +tr2752: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -66701,43 +73751,33 @@ tr2390: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1541; -tr2413: + goto st1046; +tr2771: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -66750,140 +73790,30 @@ tr2413: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - s->buffer_length = 0; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1541; -tr2428: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - s->buffer_length = 0; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1541; -tr2452: - { - s->item_length = rdata_tail - s->item_length2_location - 2; - - if (s->item_length <= MAX_ITEM_LENGTH2) { - uint16_t val = htons((uint16_t)(s->item_length)); - memcpy(s->item_length2_location, &val, 2); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} - } - } - { - svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); - } - { - int ret = svcb_sort(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - s->buffer_length = 0; - } - { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1541; -tr2475: - { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - { - uint16_t val = htons(0); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } + goto st1046; +tr2686: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} - } - } - { - p--; {cs = stack[--top];goto _again;} - } - goto st1541; -tr2487: - { - uint16_t val = htons(8); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; + } else { + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} + } } { uint16_t val = htons(0); @@ -66894,59 +73824,69 @@ tr2487: int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } + goto st1046; +tr2721: { - int ret = svcb_check(s, rdata_tail); - if (ret != ZS_OK) { - WARN(ret); - p--; {goto st329;} + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} - } - goto st1541; -tr2505: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } + goto st1046; +tr2786: { - int ret = svcb_check(s, rdata_tail); + rdata_tail += s->dname_tmp_length; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } { - p--; {cs = stack[--top];goto _again;} + s->buffer_length = 0; } - goto st1541; -st1541: + goto st1046; +st1046: if ( ++p == pe ) - goto _test_eof1541; -case 1541: + goto _test_eof1046; +case 1046: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -66966,83 +73906,26 @@ case 1541: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2318; + goto tr2700; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2317; - goto tr2277; -tr2327: + goto tr2699; + goto tr2382; +tr2675: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } + s->line_counter++; } - { p--; {stack[top++] = 855;goto st340;} } - goto st855; -st855: - if ( ++p == pe ) - goto _test_eof855; -case 855: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr2328; - case 32: goto tr2328; - case 40: goto tr2329; - case 41: goto tr2330; - case 3082: goto tr2331; - case 3131: goto tr2332; - case 3338: goto tr2333; - case 3387: goto tr2333; - case 3594: goto tr2334; - case 3643: goto tr2335; } - if ( _widec < 11 ) { - if ( _widec <= 8 ) - goto tr2336; - } else if ( _widec > 58 ) { - if ( 60 <= _widec ) - goto tr2336; - } else - goto tr2336; - goto tr2277; -tr2336: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } + p--; {cs = stack[--top];goto _again;} } - { p--; {stack[top++] = 856;goto st340;} } - goto st856; -st856: - if ( ++p == pe ) - goto _test_eof856; -case 856: - if ( (*p) == 34 ) - goto tr2337; - goto tr2277; -tr2337: + goto st1693; +tr2697: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -67051,23 +73934,65 @@ tr2337: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st857; -tr2377: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1693; +tr2664: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1693; +tr2754: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -67080,23 +74005,43 @@ tr2377: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st857; -tr2400: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1693; +tr2773: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -67109,11 +74054,31 @@ tr2400: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st857; -tr2495: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1693; +tr2688: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -67121,11 +74086,36 @@ tr2495: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st857; -tr2441: + { + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1693; +tr2723: { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -67134,34 +74124,37 @@ tr2441: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } - goto st857; -tr2507: { - s->item_length = rdata_tail - s->item_length_location - 1; - if (s->comma_list && s->item_length == 0) { - WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} - } - if (s->item_length <= MAX_ITEM_LENGTH) { - *(s->item_length_location) = (uint8_t)(s->item_length); - } else { - WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } } { - s->comma_list = false; - if (s->pending_backslash) { - WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {goto st329;} + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1693; +tr2788: + { + rdata_tail += s->dname_tmp_length; + } { s->item_length = rdata_tail - s->item_length2_location - 2; @@ -67170,14 +74163,34 @@ tr2507: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st857; -st857: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->line_counter++; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1693; +st1693: if ( ++p == pe ) - goto _test_eof857; -case 857: + goto _test_eof1693; +case 1693: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67195,329 +74208,195 @@ case 857: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2338; - case 32: goto tr2338; - case 40: goto tr2339; - case 41: goto tr2340; - case 3082: goto tr2341; - case 3131: goto tr2342; - case 3338: goto tr2343; - case 3387: goto tr2343; - case 3594: goto tr2344; - case 3643: goto tr2345; - } - goto tr2277; -tr2291: + case 9: goto st1039; + case 32: goto st1039; + case 40: goto tr2667; + case 41: goto tr2668; + case 105: goto tr2669; + case 107: goto tr2670; + case 109: goto tr2671; + case 115: goto tr2672; + case 3082: goto tr2673; + case 3131: goto tr2674; + case 3338: goto tr2630; + case 3387: goto tr2630; + case 3594: goto tr2675; + case 3643: goto tr2676; + } + goto tr2382; +tr2671: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } s->svcb.param_position = rdata_tail; } - goto st858; -st858: - if ( ++p == pe ) - goto _test_eof858; -case 858: - if ( (*p) == 99 ) - goto st859; - goto tr2277; -st859: - if ( ++p == pe ) - goto _test_eof859; -case 859: - if ( (*p) == 104 ) - goto st860; - goto tr2277; -st860: - if ( ++p == pe ) - goto _test_eof860; -case 860: - if ( (*p) == 61 ) - goto tr2348; - goto tr2277; -tr2348: - { - uint16_t val = htons(5); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; - } - goto st861; -st861: - if ( ++p == pe ) - goto _test_eof861; -case 861: - switch( (*p) ) { - case 34: goto st862; - case 43: goto tr2350; - } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2350; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2350; - } else - goto tr2350; - goto tr2277; -st862: - if ( ++p == pe ) - goto _test_eof862; -case 862: - if ( (*p) == 43 ) - goto tr2351; - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2351; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2351; - } else - goto tr2351; - goto tr2277; -tr2357: - { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - goto st863; -tr2351: + goto st1047; +tr2618: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; } { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; - } else { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } + s->svcb.param_position = rdata_tail; } - goto st863; -st863: + goto st1047; +st1047: if ( ++p == pe ) - goto _test_eof863; -case 863: - if ( (*p) == 43 ) - goto tr2352; - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2352; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2352; - } else - goto tr2352; - goto tr2277; -tr2352: - { - *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; - - if (rdata_tail <= rdata_stop) { - *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - goto st864; -st864: + goto _test_eof1047; +case 1047: + if ( (*p) == 97 ) + goto st1048; + goto tr2382; +st1048: if ( ++p == pe ) - goto _test_eof864; -case 864: - switch( (*p) ) { - case 43: goto tr2353; - case 61: goto st867; - } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2353; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2353; - } else - goto tr2353; - goto tr2277; -tr2353: - { - *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; - - if (rdata_tail <= rdata_stop) { - *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - goto st865; -st865: + goto _test_eof1048; +case 1048: + if ( (*p) == 110 ) + goto st1049; + goto tr2382; +st1049: if ( ++p == pe ) - goto _test_eof865; -case 865: - switch( (*p) ) { - case 43: goto tr2355; - case 61: goto st866; - } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2355; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2355; - } else - goto tr2355; - goto tr2277; -tr2355: - { - *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; - } - goto st866; -st866: + goto _test_eof1049; +case 1049: + if ( (*p) == 100 ) + goto st1050; + goto tr2382; +st1050: if ( ++p == pe ) - goto _test_eof866; -case 866: - switch( (*p) ) { - case 34: goto tr2337; - case 43: goto tr2357; - } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2357; - } else if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2357; - } else - goto tr2357; - goto tr2277; -st867: + goto _test_eof1050; +case 1050: + if ( (*p) == 97 ) + goto st1051; + goto tr2382; +st1051: if ( ++p == pe ) - goto _test_eof867; -case 867: + goto _test_eof1051; +case 1051: + if ( (*p) == 116 ) + goto st1052; + goto tr2382; +st1052: + if ( ++p == pe ) + goto _test_eof1052; +case 1052: + if ( (*p) == 111 ) + goto st1053; + goto tr2382; +st1053: + if ( ++p == pe ) + goto _test_eof1053; +case 1053: + if ( (*p) == 114 ) + goto st1054; + goto tr2382; +st1054: + if ( ++p == pe ) + goto _test_eof1054; +case 1054: + if ( (*p) == 121 ) + goto st1055; + goto tr2382; +st1055: + if ( ++p == pe ) + goto _test_eof1055; +case 1055: if ( (*p) == 61 ) - goto st866; - goto tr2277; -tr2363: - { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - goto st868; -tr2350: - { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } + goto tr2709; + goto tr2382; +tr2709: { - if (rdata_tail <= rdata_stop) { - *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; } - goto st868; -st868: + goto st1056; +st1056: if ( ++p == pe ) - goto _test_eof868; -case 868: - if ( (*p) == 43 ) - goto tr2358; - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2358; - } else if ( (*p) > 90 ) { + goto _test_eof1056; +case 1056: + if ( (*p) == 34 ) + goto st1057; + if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2358; - } else - goto tr2358; - goto tr2277; -tr2358: - { - *(rdata_tail++) += second_left_base64_to_num[(uint8_t)(*p)]; - - if (rdata_tail <= rdata_stop) { - *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - goto st869; -st869: + goto tr2711; + } else if ( (*p) >= 65 ) + goto tr2711; + goto tr2382; +st1057: if ( ++p == pe ) - goto _test_eof869; -case 869: - switch( (*p) ) { - case 43: goto tr2359; - case 61: goto st872; - } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2359; - } else if ( (*p) > 90 ) { + goto _test_eof1057; +case 1057: + if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2359; - } else - goto tr2359; - goto tr2277; -tr2359: + goto tr2712; + } else if ( (*p) >= 65 ) + goto tr2712; + goto tr2382; +tr2712: { - *(rdata_tail++) += third_left_base64_to_num[(uint8_t)(*p)]; - - if (rdata_tail <= rdata_stop) { - *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; + s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. + } + { + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st870; -st870: + { p--; {stack[top++] = 1058;goto st864;} } + goto st1058; +tr2715: + { p--; {stack[top++] = 1058;goto st864;} } + goto st1058; +st1058: if ( ++p == pe ) - goto _test_eof870; -case 870: + goto _test_eof1058; +case 1058: switch( (*p) ) { - case 43: goto tr2361; - case 61: goto st871; + case 34: goto tr2713; + case 44: goto st1059; } - if ( (*p) < 65 ) { - if ( 47 <= (*p) && (*p) <= 57 ) - goto tr2361; - } else if ( (*p) > 90 ) { + goto tr2382; +st1059: + if ( ++p == pe ) + goto _test_eof1059; +case 1059: + if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2361; - } else - goto tr2361; - goto tr2277; -tr2361: + goto tr2715; + } else if ( (*p) >= 65 ) + goto tr2715; + goto tr2382; +tr2711: { - *(rdata_tail++) += fourth_base64_to_num[(uint8_t)(*p)]; + s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } - goto st871; -st871: + { + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + } + { p--; {stack[top++] = 1060;goto st864;} } + goto st1060; +tr2725: + { p--; {stack[top++] = 1060;goto st864;} } + goto st1060; +st1060: if ( ++p == pe ) - goto _test_eof871; -case 871: + goto _test_eof1060; +case 1060: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -67535,403 +74414,471 @@ case 871: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2328; - case 32: goto tr2328; - case 40: goto tr2329; - case 41: goto tr2330; - case 43: goto tr2363; - case 3082: goto tr2331; - case 3131: goto tr2332; - case 3338: goto tr2333; - case 3387: goto tr2333; - case 3594: goto tr2334; - case 3643: goto tr2335; + case 9: goto tr2716; + case 32: goto tr2716; + case 40: goto tr2717; + case 41: goto tr2718; + case 44: goto st1061; + case 3082: goto tr2720; + case 3131: goto tr2721; + case 3338: goto tr2722; + case 3387: goto tr2722; + case 3594: goto tr2723; + case 3643: goto tr2724; } - if ( _widec < 65 ) { - if ( 47 <= _widec && _widec <= 57 ) - goto tr2363; - } else if ( _widec > 90 ) { - if ( 97 <= _widec && _widec <= 122 ) - goto tr2363; - } else - goto tr2363; - goto tr2277; -st872: + goto tr2382; +st1061: if ( ++p == pe ) - goto _test_eof872; -case 872: - if ( (*p) == 61 ) - goto st871; - goto tr2277; -tr2292: + goto _test_eof1061; +case 1061: + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2725; + } else if ( (*p) >= 65 ) + goto tr2725; + goto tr2382; +tr2676: { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - s->svcb.param_position = rdata_tail; - } - goto st873; -st873: - if ( ++p == pe ) - goto _test_eof873; -case 873: - if ( (*p) == 112 ) - goto st874; - goto tr2277; -st874: - if ( ++p == pe ) - goto _test_eof874; -case 874: - if ( (*p) == 118 ) - goto st875; - goto tr2277; -st875: - if ( ++p == pe ) - goto _test_eof875; -case 875: - switch( (*p) ) { - case 52: goto st876; - case 54: goto st887; + s->buffer_length = 0; } - goto tr2277; -st876: - if ( ++p == pe ) - goto _test_eof876; -case 876: - if ( (*p) == 104 ) - goto st877; - goto tr2277; -st877: - if ( ++p == pe ) - goto _test_eof877; -case 877: - if ( (*p) == 105 ) - goto st878; - goto tr2277; -st878: - if ( ++p == pe ) - goto _test_eof878; -case 878: - if ( (*p) == 110 ) - goto st879; - goto tr2277; -st879: - if ( ++p == pe ) - goto _test_eof879; -case 879: - if ( (*p) == 116 ) - goto st880; - goto tr2277; -st880: - if ( ++p == pe ) - goto _test_eof880; -case 880: - if ( (*p) == 61 ) - goto tr2372; - goto tr2277; -tr2372: { - uint16_t val = htons(4); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } } - goto st881; -st881: - if ( ++p == pe ) - goto _test_eof881; -case 881: - switch( (*p) ) { - case 34: goto st882; - case 46: goto tr2375; + { + p--; {cs = stack[--top];goto _again;} } - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2375; - goto tr2373; -st882: - if ( ++p == pe ) - goto _test_eof882; -case 882: - if ( (*p) == 46 ) - goto tr2376; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2376; - goto tr2373; -tr2376: + goto st1694; +tr2698: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } } { s->buffer_length = 0; } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } } - goto st883; -tr2379: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {cs = stack[--top];goto _again;} + } + goto st1694; +tr2665: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } } - goto st883; -tr2380: { s->buffer_length = 0; } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } } - goto st883; -st883: - if ( ++p == pe ) - goto _test_eof883; -case 883: - switch( (*p) ) { - case 34: goto tr2377; - case 44: goto tr2378; - case 46: goto tr2379; + { + p--; {cs = stack[--top];goto _again;} } - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2379; - goto tr2373; -tr2378: + goto st1694; +tr2755: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st884; -st884: - if ( ++p == pe ) - goto _test_eof884; -case 884: - if ( (*p) == 46 ) - goto tr2380; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2380; - goto tr2373; -tr2375: { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1694; +tr2774: + { + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); + } else { + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } } { s->buffer_length = 0; } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1694; +tr2689: + { + if (s->number64 <= UINT16_MAX) { + uint16_t num16 = htons((uint16_t)s->number64); + memcpy(rdata_tail, &num16, 2); + rdata_tail += 2; } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + WARN(ZS_NUMBER16_OVERFLOW); + p--; {goto st338;} } } - goto st885; -tr2385: { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + uint16_t val = htons(0); + memcpy(rdata_tail, &val, 2); + rdata_tail += 2; + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1694; +tr2724: + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} + } + } + { + svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); + } + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} } } - goto st885; -tr2391: { s->buffer_length = 0; } { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1694; +tr2789: + { + rdata_tail += s->dname_tmp_length; + } + { + s->item_length = rdata_tail - s->item_length2_location - 2; + + if (s->item_length <= MAX_ITEM_LENGTH2) { + uint16_t val = htons((uint16_t)(s->item_length)); + memcpy(s->item_length2_location, &val, 2); } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + WARN(ZS_ITEM_OVERFLOW); + p--; {goto st338;} } } - goto st885; -st885: + { + int ret = svcb_sort(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + s->buffer_length = 0; + } + { + int ret = svcb_check(s, rdata_tail); + if (ret != ZS_OK) { + WARN(ret); + p--; {goto st338;} + } + } + { + p--; {cs = stack[--top];goto _again;} + } + goto st1694; +st1694: if ( ++p == pe ) - goto _test_eof885; -case 885: + goto _test_eof1694; +case 1694: _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); if ( - !s->multiline ) _widec += 512; + s->multiline ) _widec += 256; } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); + } else { + _widec = (short)(1664 + ((*p) - -128)); if ( s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr2381; - case 32: goto tr2381; - case 40: goto tr2382; - case 41: goto tr2383; - case 44: goto tr2384; - case 46: goto tr2385; - case 3082: goto tr2386; - case 3131: goto tr2387; - case 3338: goto tr2388; - case 3387: goto tr2388; - case 3594: goto tr2389; - case 3643: goto tr2390; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2385; - goto tr2373; -tr2384: + if ( _widec == 2058 ) + goto tr2700; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr2699; + goto tr2382; +tr2672: { - s->buffer[s->buffer_length] = 0; - - if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV4); - p--; {goto st329;} + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + s->svcb.param_position = rdata_tail; } + goto st1062; +tr2619: { - if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { + s->svcb.params_position = rdata_tail; + s->svcb.last_key = -1; + } + { + if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } - memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); - rdata_tail += ZS_INET4_ADDR_LENGTH; + s->svcb.param_position = rdata_tail; } - goto st886; -st886: + goto st1062; +st1062: if ( ++p == pe ) - goto _test_eof886; -case 886: - if ( (*p) == 46 ) - goto tr2391; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2391; - goto tr2373; -st887: + goto _test_eof1062; +case 1062: + if ( (*p) == 101 ) + goto st1063; + goto tr2382; +st1063: if ( ++p == pe ) - goto _test_eof887; -case 887: - if ( (*p) == 104 ) - goto st888; - goto tr2277; -st888: + goto _test_eof1063; +case 1063: + if ( (*p) == 114 ) + goto st1064; + goto tr2382; +st1064: if ( ++p == pe ) - goto _test_eof888; -case 888: - if ( (*p) == 105 ) - goto st889; - goto tr2277; -st889: + goto _test_eof1064; +case 1064: + if ( (*p) == 118 ) + goto st1065; + goto tr2382; +st1065: if ( ++p == pe ) - goto _test_eof889; -case 889: - if ( (*p) == 110 ) - goto st890; - goto tr2277; -st890: + goto _test_eof1065; +case 1065: + if ( (*p) == 101 ) + goto st1066; + goto tr2382; +st1066: if ( ++p == pe ) - goto _test_eof890; -case 890: - if ( (*p) == 116 ) - goto st891; - goto tr2277; -st891: + goto _test_eof1066; +case 1066: + if ( (*p) == 114 ) + goto st1067; + goto tr2382; +st1067: if ( ++p == pe ) - goto _test_eof891; -case 891: + goto _test_eof1067; +case 1067: + if ( (*p) == 45 ) + goto st1068; + goto tr2382; +st1068: + if ( ++p == pe ) + goto _test_eof1068; +case 1068: + switch( (*p) ) { + case 105: goto st1069; + case 110: goto st1086; + } + goto tr2382; +st1069: + if ( ++p == pe ) + goto _test_eof1069; +case 1069: + if ( (*p) == 112 ) + goto st1070; + goto tr2382; +st1070: + if ( ++p == pe ) + goto _test_eof1070; +case 1070: + if ( (*p) == 118 ) + goto st1071; + goto tr2382; +st1071: + if ( ++p == pe ) + goto _test_eof1071; +case 1071: + switch( (*p) ) { + case 52: goto st1072; + case 54: goto st1079; + } + goto tr2382; +st1072: + if ( ++p == pe ) + goto _test_eof1072; +case 1072: if ( (*p) == 61 ) - goto tr2396; - goto tr2277; -tr2396: + goto tr2738; + goto tr2382; +tr2738: { - uint16_t val = htons(6); + uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st892; -st892: + goto st1073; +st1073: if ( ++p == pe ) - goto _test_eof892; -case 892: + goto _test_eof1073; +case 1073: switch( (*p) ) { - case 34: goto st893; - case 46: goto tr2398; + case 34: goto st1074; + case 46: goto tr2740; } - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2398; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2398; - } else - goto tr2398; - goto tr2373; -st893: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2740; + goto tr2478; +st1074: if ( ++p == pe ) - goto _test_eof893; -case 893: - if ( (*p) == 46 ) - goto tr2399; - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2399; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2399; - } else - goto tr2399; - goto tr2373; -tr2399: + goto _test_eof1074; +case 1074: + if ( (*p) == 46 ) + goto tr2741; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2741; + goto tr2478; +tr2741: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -67942,21 +74889,21 @@ tr2399: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st894; -tr2402: + goto st1075; +tr2744: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st894; -tr2403: + goto st1075; +tr2745: { s->buffer_length = 0; } @@ -67965,69 +74912,57 @@ tr2403: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st894; -st894: + goto st1075; +st1075: if ( ++p == pe ) - goto _test_eof894; -case 894: + goto _test_eof1075; +case 1075: switch( (*p) ) { - case 34: goto tr2400; - case 44: goto tr2401; - case 46: goto tr2402; + case 34: goto tr2742; + case 44: goto tr2743; + case 46: goto tr2744; } - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2402; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2402; - } else - goto tr2402; - goto tr2373; -tr2401: + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2744; + goto tr2478; +tr2743: { s->buffer[s->buffer_length] = 0; - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st329;} + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} } } { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st895; -st895: + goto st1076; +st1076: if ( ++p == pe ) - goto _test_eof895; -case 895: + goto _test_eof1076; +case 1076: if ( (*p) == 46 ) - goto tr2403; - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2403; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2403; - } else - goto tr2403; - goto tr2373; -tr2398: + goto tr2745; + if ( 48 <= (*p) && (*p) <= 57 ) + goto tr2745; + goto tr2478; +tr2740: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -68038,21 +74973,21 @@ tr2398: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st896; -tr2408: + goto st1077; +tr2750: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st896; -tr2414: + goto st1077; +tr2756: { s->buffer_length = 0; } @@ -68061,14 +74996,14 @@ tr2414: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st896; -st896: + goto st1077; +st1077: if ( ++p == pe ) - goto _test_eof896; -case 896: + goto _test_eof1077; +case 1077: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -68086,763 +75021,240 @@ case 896: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2404; - case 32: goto tr2404; - case 40: goto tr2405; - case 41: goto tr2406; - case 44: goto tr2407; - case 46: goto tr2408; - case 3082: goto tr2409; - case 3131: goto tr2410; - case 3338: goto tr2411; - case 3387: goto tr2411; - case 3594: goto tr2412; - case 3643: goto tr2413; + case 9: goto tr2746; + case 32: goto tr2746; + case 40: goto tr2747; + case 41: goto tr2748; + case 44: goto tr2749; + case 46: goto tr2750; + case 3082: goto tr2751; + case 3131: goto tr2752; + case 3338: goto tr2753; + case 3387: goto tr2753; + case 3594: goto tr2754; + case 3643: goto tr2755; } - if ( _widec < 65 ) { - if ( 48 <= _widec && _widec <= 58 ) - goto tr2408; - } else if ( _widec > 70 ) { - if ( 97 <= _widec && _widec <= 102 ) - goto tr2408; - } else - goto tr2408; - goto tr2373; -tr2407: + if ( 48 <= _widec && _widec <= 57 ) + goto tr2750; + goto tr2478; +tr2749: { s->buffer[s->buffer_length] = 0; - if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { - WARN(ZS_BAD_IPV6); - p--; {goto st329;} + if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV4); + p--; {goto st338;} } } { - if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } - memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); - rdata_tail += ZS_INET6_ADDR_LENGTH; + memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); + rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st897; -st897: + goto st1078; +st1078: if ( ++p == pe ) - goto _test_eof897; -case 897: + goto _test_eof1078; +case 1078: if ( (*p) == 46 ) - goto tr2414; - if ( (*p) < 65 ) { - if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2414; - } else if ( (*p) > 70 ) { - if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2414; - } else - goto tr2414; - goto tr2373; -tr2293: - { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - s->svcb.param_position = rdata_tail; - } - goto st898; -st898: - if ( ++p == pe ) - goto _test_eof898; -case 898: - if ( (*p) == 101 ) - goto st899; - goto tr2277; -st899: - if ( ++p == pe ) - goto _test_eof899; -case 899: - if ( (*p) == 121 ) - goto st900; - goto tr2277; -st900: - if ( ++p == pe ) - goto _test_eof900; -case 900: + goto tr2756; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2418; - goto tr2417; -tr2418: - { - s->number64 = 0; - } - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} - } - } - goto st901; -tr2422: - { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} - } - } - goto st901; -st901: - if ( ++p == pe ) - goto _test_eof901; -case 901: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr2419; - case 32: goto tr2419; - case 40: goto tr2420; - case 41: goto tr2421; - case 61: goto tr2423; - case 3082: goto tr2424; - case 3131: goto tr2425; - case 3338: goto tr2426; - case 3387: goto tr2426; - case 3594: goto tr2427; - case 3643: goto tr2428; - } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2422; - goto tr2417; -tr2423: - { - if (s->number64 <= UINT16_MAX) { - uint16_t num16 = htons((uint16_t)s->number64); - memcpy(rdata_tail, &num16, 2); - rdata_tail += 2; - } else { - WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} - } - } - goto st902; -st902: - if ( ++p == pe ) - goto _test_eof902; -case 902: - switch( (*p) ) { - case 32: goto tr2277; - case 59: goto tr2277; - } - if ( (*p) > 10 ) { - if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2277; - } else if ( (*p) >= 9 ) - goto tr2277; - goto tr2326; -tr2294: - { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - s->svcb.param_position = rdata_tail; - } - goto st903; -st903: - if ( ++p == pe ) - goto _test_eof903; -case 903: - if ( (*p) == 97 ) - goto st904; - goto tr2277; -st904: - if ( ++p == pe ) - goto _test_eof904; -case 904: - if ( (*p) == 110 ) - goto st905; - goto tr2277; -st905: - if ( ++p == pe ) - goto _test_eof905; -case 905: - if ( (*p) == 100 ) - goto st906; - goto tr2277; -st906: - if ( ++p == pe ) - goto _test_eof906; -case 906: - if ( (*p) == 97 ) - goto st907; - goto tr2277; -st907: - if ( ++p == pe ) - goto _test_eof907; -case 907: - if ( (*p) == 116 ) - goto st908; - goto tr2277; -st908: - if ( ++p == pe ) - goto _test_eof908; -case 908: - if ( (*p) == 111 ) - goto st909; - goto tr2277; -st909: - if ( ++p == pe ) - goto _test_eof909; -case 909: - if ( (*p) == 114 ) - goto st910; - goto tr2277; -st910: - if ( ++p == pe ) - goto _test_eof910; -case 910: - if ( (*p) == 121 ) - goto st911; - goto tr2277; -st911: + goto tr2756; + goto tr2478; +st1079: if ( ++p == pe ) - goto _test_eof911; -case 911: + goto _test_eof1079; +case 1079: if ( (*p) == 61 ) - goto tr2437; - goto tr2277; -tr2437: + goto tr2757; + goto tr2382; +tr2757: { - uint16_t val = htons(0); + uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); rdata_tail += 2; } - goto st912; -st912: - if ( ++p == pe ) - goto _test_eof912; -case 912: - if ( (*p) == 34 ) - goto st913; - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2439; - } else if ( (*p) >= 65 ) - goto tr2439; - goto tr2277; -st913: - if ( ++p == pe ) - goto _test_eof913; -case 913: - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2440; - } else if ( (*p) >= 65 ) - goto tr2440; - goto tr2277; -tr2440: - { - s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. - } - { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - { p--; {stack[top++] = 914;goto st781;} } - goto st914; -tr2443: - { p--; {stack[top++] = 914;goto st781;} } - goto st914; -st914: + goto st1080; +st1080: if ( ++p == pe ) - goto _test_eof914; -case 914: + goto _test_eof1080; +case 1080: switch( (*p) ) { - case 34: goto tr2441; - case 44: goto st915; + case 34: goto st1081; + case 46: goto tr2759; } - goto tr2277; -st915: + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2759; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2759; + } else + goto tr2759; + goto tr2478; +st1081: if ( ++p == pe ) - goto _test_eof915; -case 915: - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2443; - } else if ( (*p) >= 65 ) - goto tr2443; - goto tr2277; -tr2439: - { - s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. - } + goto _test_eof1081; +case 1081: + if ( (*p) == 46 ) + goto tr2760; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2760; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2760; + } else + goto tr2760; + goto tr2478; +tr2760: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - } - { p--; {stack[top++] = 916;goto st781;} } - goto st916; -tr2453: - { p--; {stack[top++] = 916;goto st781;} } - goto st916; -st916: - if ( ++p == pe ) - goto _test_eof916; -case 916: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr2444; - case 32: goto tr2444; - case 40: goto tr2445; - case 41: goto tr2446; - case 44: goto st917; - case 3082: goto tr2448; - case 3131: goto tr2449; - case 3338: goto tr2450; - case 3387: goto tr2450; - case 3594: goto tr2451; - case 3643: goto tr2452; - } - goto tr2277; -st917: - if ( ++p == pe ) - goto _test_eof917; -case 917: - if ( (*p) > 90 ) { - if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2453; - } else if ( (*p) >= 65 ) - goto tr2453; - goto tr2277; -tr2295: - { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - s->svcb.param_position = rdata_tail; - } - goto st918; -st918: - if ( ++p == pe ) - goto _test_eof918; -case 918: - if ( (*p) == 111 ) - goto st919; - goto tr2277; -st919: - if ( ++p == pe ) - goto _test_eof919; -case 919: - if ( (*p) == 45 ) - goto st920; - goto tr2277; -st920: - if ( ++p == pe ) - goto _test_eof920; -case 920: - if ( (*p) == 100 ) - goto st921; - goto tr2277; -st921: - if ( ++p == pe ) - goto _test_eof921; -case 921: - if ( (*p) == 101 ) - goto st922; - goto tr2277; -st922: - if ( ++p == pe ) - goto _test_eof922; -case 922: - if ( (*p) == 102 ) - goto st923; - goto tr2277; -st923: - if ( ++p == pe ) - goto _test_eof923; -case 923: - if ( (*p) == 97 ) - goto st924; - goto tr2277; -st924: - if ( ++p == pe ) - goto _test_eof924; -case 924: - if ( (*p) == 117 ) - goto st925; - goto tr2277; -st925: - if ( ++p == pe ) - goto _test_eof925; -case 925: - if ( (*p) == 108 ) - goto st926; - goto tr2277; -st926: - if ( ++p == pe ) - goto _test_eof926; -case 926: - if ( (*p) == 116 ) - goto st927; - goto tr2277; -st927: - if ( ++p == pe ) - goto _test_eof927; -case 927: - if ( (*p) == 45 ) - goto st928; - goto tr2277; -st928: - if ( ++p == pe ) - goto _test_eof928; -case 928: - if ( (*p) == 97 ) - goto st929; - goto tr2277; -st929: - if ( ++p == pe ) - goto _test_eof929; -case 929: - if ( (*p) == 108 ) - goto st930; - goto tr2277; -st930: - if ( ++p == pe ) - goto _test_eof930; -case 930: - if ( (*p) == 112 ) - goto st931; - goto tr2277; -st931: - if ( ++p == pe ) - goto _test_eof931; -case 931: - if ( (*p) == 110 ) - goto st932; - goto tr2277; -st932: - if ( ++p == pe ) - goto _test_eof932; -case 932: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr2468; - case 32: goto tr2468; - case 40: goto tr2469; - case 41: goto tr2470; - case 3082: goto tr2471; - case 3131: goto tr2472; - case 3338: goto tr2473; - case 3387: goto tr2473; - case 3594: goto tr2474; - case 3643: goto tr2475; - } - goto tr2277; -tr2296: - { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } - s->svcb.param_position = rdata_tail; - } - goto st933; -st933: - if ( ++p == pe ) - goto _test_eof933; -case 933: - if ( (*p) == 104 ) - goto st934; - goto tr2277; -st934: - if ( ++p == pe ) - goto _test_eof934; -case 934: - if ( (*p) == 116 ) - goto st935; - goto tr2277; -st935: - if ( ++p == pe ) - goto _test_eof935; -case 935: - if ( (*p) == 116 ) - goto st936; - goto tr2277; -st936: - if ( ++p == pe ) - goto _test_eof936; -case 936: - if ( (*p) == 112 ) - goto st937; - goto tr2277; -st937: - if ( ++p == pe ) - goto _test_eof937; -case 937: - _widec = (*p); - if ( (*p) > 10 ) { - if ( 59 <= (*p) && (*p) <= 59 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - } else if ( (*p) >= 10 ) { - _widec = (short)(2688 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - if ( - !s->multiline ) _widec += 512; - } - switch( _widec ) { - case 9: goto tr2480; - case 32: goto tr2480; - case 40: goto tr2481; - case 41: goto tr2482; - case 3082: goto tr2483; - case 3131: goto tr2484; - case 3338: goto tr2485; - case 3387: goto tr2485; - case 3594: goto tr2486; - case 3643: goto tr2487; - } - goto tr2277; -tr2297: - { - if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } - s->svcb.param_position = rdata_tail; - } - goto st938; -st938: - if ( ++p == pe ) - goto _test_eof938; -case 938: - if ( (*p) == 111 ) - goto st939; - goto tr2277; -st939: - if ( ++p == pe ) - goto _test_eof939; -case 939: - if ( (*p) == 114 ) - goto st940; - goto tr2277; -st940: - if ( ++p == pe ) - goto _test_eof940; -case 940: - if ( (*p) == 116 ) - goto st941; - goto tr2277; -st941: - if ( ++p == pe ) - goto _test_eof941; -case 941: - if ( (*p) == 61 ) - goto tr2491; - goto tr2277; -tr2491: + } { - uint16_t val = htons(3); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->buffer_length = 0; } - goto st942; -st942: - if ( ++p == pe ) - goto _test_eof942; -case 942: - if ( (*p) == 34 ) - goto st943; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2493; - goto tr2417; -st943: - if ( ++p == pe ) - goto _test_eof943; -case 943: - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2494; - goto tr2417; -tr2496: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } - goto st944; -tr2494: + goto st1082; +tr2763: { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } } + goto st1082; +tr2764: { - if (rdata_tail + 2 > rdata_stop + 1) { + s->buffer_length = 0; + } + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } + goto st1082; +st1082: + if ( ++p == pe ) + goto _test_eof1082; +case 1082: + switch( (*p) ) { + case 34: goto tr2761; + case 44: goto tr2762; + case 46: goto tr2763; + } + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2763; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2763; + } else + goto tr2763; + goto tr2478; +tr2762: { - s->number64 = 0; + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } } { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; - } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st944; -st944: + goto st1083; +st1083: if ( ++p == pe ) - goto _test_eof944; -case 944: - if ( (*p) == 34 ) - goto tr2495; - if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2496; - goto tr2417; -tr2500: + goto _test_eof1083; +case 1083: + if ( (*p) == 46 ) + goto tr2764; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2764; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2764; + } else + goto tr2764; + goto tr2478; +tr2759: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + if (rdata_tail < rdata_stop) { + s->item_length2_location = rdata_tail; + rdata_tail += 2; } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } - goto st945; -tr2493: { - uint16_t val = htons(2); - memcpy(rdata_tail, &val, 2); - rdata_tail += 2; + s->buffer_length = 0; } { - if (rdata_tail + 2 > rdata_stop + 1) { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } + goto st1084; +tr2769: { - s->number64 = 0; + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } else { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } } + goto st1084; +tr2775: { - // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX - if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. - ((s->number64 == (UINT64_MAX / 10)) && // Marginal case. - ((uint8_t)(*p) <= (UINT64_MAX % 10) + '0') - ) - ) { - s->number64 *= 10; - s->number64 += digit_to_num[(uint8_t)(*p)]; + s->buffer_length = 0; + } + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); } else { - WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} } } - goto st945; -st945: + goto st1084; +st1084: if ( ++p == pe ) - goto _test_eof945; -case 945: + goto _test_eof1084; +case 1084: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -68860,48 +75272,137 @@ case 945: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2497; - case 32: goto tr2497; - case 40: goto tr2498; - case 41: goto tr2499; - case 3082: goto tr2501; - case 3131: goto tr2502; - case 3338: goto tr2503; - case 3387: goto tr2503; - case 3594: goto tr2504; - case 3643: goto tr2505; + case 9: goto tr2765; + case 32: goto tr2765; + case 40: goto tr2766; + case 41: goto tr2767; + case 44: goto tr2768; + case 46: goto tr2769; + case 3082: goto tr2770; + case 3131: goto tr2771; + case 3338: goto tr2772; + case 3387: goto tr2772; + case 3594: goto tr2773; + case 3643: goto tr2774; } - if ( 48 <= _widec && _widec <= 57 ) - goto tr2500; - goto tr2417; -tr2308: + if ( _widec < 65 ) { + if ( 48 <= _widec && _widec <= 58 ) + goto tr2769; + } else if ( _widec > 70 ) { + if ( 97 <= _widec && _widec <= 102 ) + goto tr2769; + } else + goto tr2769; + goto tr2478; +tr2768: { - s->comma_list = true; - s->pending_backslash = false; + s->buffer[s->buffer_length] = 0; + + if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { + WARN(ZS_BAD_IPV6); + p--; {goto st338;} + } + } + { + if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { + WARN(ZS_RDATA_OVERFLOW); + p--; {goto st338;} + } + memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); + rdata_tail += ZS_INET6_ADDR_LENGTH; + } + goto st1085; +st1085: + if ( ++p == pe ) + goto _test_eof1085; +case 1085: + if ( (*p) == 46 ) + goto tr2775; + if ( (*p) < 65 ) { + if ( 48 <= (*p) && (*p) <= 58 ) + goto tr2775; + } else if ( (*p) > 70 ) { + if ( 97 <= (*p) && (*p) <= 102 ) + goto tr2775; + } else + goto tr2775; + goto tr2478; +st1086: + if ( ++p == pe ) + goto _test_eof1086; +case 1086: + if ( (*p) == 97 ) + goto st1087; + goto tr2382; +st1087: + if ( ++p == pe ) + goto _test_eof1087; +case 1087: + if ( (*p) == 109 ) + goto st1088; + goto tr2382; +st1088: + if ( ++p == pe ) + goto _test_eof1088; +case 1088: + if ( (*p) == 101 ) + goto st1089; + goto tr2382; +st1089: + if ( ++p == pe ) + goto _test_eof1089; +case 1089: + if ( (*p) == 61 ) + goto tr2779; + goto tr2382; +tr2657: + { + rdata_tail += s->dname_tmp_length; + } + goto st1090; +st1090: + if ( ++p == pe ) + goto _test_eof1090; +case 1090: + switch( (*p) ) { + case 42: goto tr2780; + case 92: goto tr2780; + case 95: goto tr2780; } + if ( (*p) < 64 ) { + if ( 45 <= (*p) && (*p) <= 57 ) + goto tr2780; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2780; + } else + goto tr2780; + goto tr2382; +tr2654: { if (rdata_tail < rdata_stop) { s->item_length2_location = rdata_tail; rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } + s->dname = rdata_tail; } - { p--; {stack[top++] = 946;goto st340;} } - goto st946; -st946: + { p--; {stack[top++] = 1091;goto st340;} } + goto st1091; +tr2790: + { + s->dname = rdata_tail; + } + { p--; {stack[top++] = 1091;goto st340;} } + goto st1091; +st1091: if ( ++p == pe ) - goto _test_eof946; -case 946: + goto _test_eof1091; +case 1091: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -68919,77 +75420,62 @@ case 946: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2309; - case 32: goto tr2309; - case 40: goto tr2310; - case 41: goto tr2311; - case 3082: goto tr2312; - case 3131: goto tr2313; - case 3338: goto tr2314; - case 3387: goto tr2314; - case 3594: goto tr2315; - case 3643: goto tr2316; - } - if ( _widec < 11 ) { - if ( _widec <= 8 ) - goto tr2506; - } else if ( _widec > 58 ) { - if ( 60 <= _widec ) - goto tr2506; - } else - goto tr2506; - goto tr2277; -tr2506: - { - s->comma_list = true; - s->pending_backslash = false; - } - { - if (rdata_tail < rdata_stop) { - s->item_length2_location = rdata_tail; - rdata_tail += 2; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } + case 9: goto tr2781; + case 32: goto tr2781; + case 40: goto tr2782; + case 41: goto tr2783; + case 44: goto tr2784; + case 3082: goto tr2785; + case 3131: goto tr2786; + case 3338: goto tr2787; + case 3387: goto tr2787; + case 3594: goto tr2788; + case 3643: goto tr2789; } + goto tr2382; +tr2784: { - if (rdata_tail <= rdata_stop) { - s->item_length_location = rdata_tail++; - } else { - WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} - } + rdata_tail += s->dname_tmp_length; } - { p--; {stack[top++] = 947;goto st340;} } - goto st947; -st947: + goto st1092; +st1092: if ( ++p == pe ) - goto _test_eof947; -case 947: - if ( (*p) == 34 ) - goto tr2507; - goto tr2277; -st948: + goto _test_eof1092; +case 1092: + switch( (*p) ) { + case 42: goto tr2790; + case 92: goto tr2790; + case 95: goto tr2790; + } + if ( (*p) < 64 ) { + if ( 45 <= (*p) && (*p) <= 57 ) + goto tr2790; + } else if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr2790; + } else + goto tr2790; + goto tr2382; +st1093: if ( ++p == pe ) - goto _test_eof948; -case 948: + goto _test_eof1093; +case 1093: switch( (*p) ) { - case 68: goto st950; - case 69: goto st965; - case 73: goto st1004; - case 80: goto st1012; - case 82: goto st1025; - case 100: goto st950; - case 101: goto st965; - case 105: goto st1004; - case 112: goto st1012; - case 114: goto st1025; + case 68: goto st1095; + case 69: goto st1110; + case 73: goto st1149; + case 80: goto st1157; + case 82: goto st1170; + case 100: goto st1095; + case 101: goto st1110; + case 105: goto st1149; + case 112: goto st1157; + case 114: goto st1170; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2509; - goto tr2508; -tr2509: + goto tr2792; + goto tr2791; +tr2792: { s->number64 = 0; } @@ -69004,11 +75490,11 @@ tr2509: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st949; -tr2516: + goto st1094; +tr2799: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -69020,1151 +75506,1151 @@ tr2516: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st949; -st949: + goto st1094; +st1094: if ( ++p == pe ) - goto _test_eof949; -case 949: + goto _test_eof1094; +case 1094: switch( (*p) ) { - case 32: goto tr2515; - case 59: goto tr2515; + case 32: goto tr2798; + case 59: goto tr2798; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2515; + goto tr2798; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2516; + goto tr2799; } else - goto tr2515; - goto tr2508; -tr2515: + goto tr2798; + goto tr2791; +tr2798: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2519: + goto st1695; +tr2802: { *(rdata_tail++) = 2; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2521: + goto st1695; +tr2804: { *(rdata_tail++) = 3; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2533: + goto st1695; +tr2816: { *(rdata_tail++) = 6; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2543: + goto st1695; +tr2826: { *(rdata_tail++) = 12; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2557: + goto st1695; +tr2840: { *(rdata_tail++) = 13; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2566: + goto st1695; +tr2849: { *(rdata_tail++) = 14; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2573: + goto st1695; +tr2856: { *(rdata_tail++) = 15; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2576: + goto st1695; +tr2859: { *(rdata_tail++) = 16; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2584: + goto st1695; +tr2867: { *(rdata_tail++) = 252; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2595: + goto st1695; +tr2878: { *(rdata_tail++) = 253; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2598: + goto st1695; +tr2881: { *(rdata_tail++) = 254; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2605: + goto st1695; +tr2888: { *(rdata_tail++) = 1; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2611: + goto st1695; +tr2894: { *(rdata_tail++) = 5; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2623: + goto st1695; +tr2906: { *(rdata_tail++) = 7; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2626: + goto st1695; +tr2909: { *(rdata_tail++) = 8; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -tr2629: + goto st1695; +tr2912: { *(rdata_tail++) = 10; } { p--; {cs = stack[--top];goto _again;} } - goto st1542; -st1542: + goto st1695; +st1695: if ( ++p == pe ) - goto _test_eof1542; -case 1542: + goto _test_eof1695; +case 1695: goto st0; -st950: +st1095: if ( ++p == pe ) - goto _test_eof950; -case 950: + goto _test_eof1095; +case 1095: switch( (*p) ) { - case 72: goto st951; - case 83: goto st952; - case 104: goto st951; - case 115: goto st952; + case 72: goto st1096; + case 83: goto st1097; + case 104: goto st1096; + case 115: goto st1097; } - goto tr2508; -st951: + goto tr2791; +st1096: if ( ++p == pe ) - goto _test_eof951; -case 951: + goto _test_eof1096; +case 1096: switch( (*p) ) { - case 32: goto tr2519; - case 59: goto tr2519; + case 32: goto tr2802; + case 59: goto tr2802; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2519; + goto tr2802; } else if ( (*p) >= 9 ) - goto tr2519; - goto tr2508; -st952: + goto tr2802; + goto tr2791; +st1097: if ( ++p == pe ) - goto _test_eof952; -case 952: + goto _test_eof1097; +case 1097: switch( (*p) ) { - case 65: goto st953; - case 97: goto st953; + case 65: goto st1098; + case 97: goto st1098; } - goto tr2508; -st953: + goto tr2791; +st1098: if ( ++p == pe ) - goto _test_eof953; -case 953: + goto _test_eof1098; +case 1098: switch( (*p) ) { - case 32: goto tr2521; - case 45: goto st954; - case 59: goto tr2521; + case 32: goto tr2804; + case 45: goto st1099; + case 59: goto tr2804; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2521; + goto tr2804; } else if ( (*p) >= 9 ) - goto tr2521; - goto tr2508; -st954: + goto tr2804; + goto tr2791; +st1099: if ( ++p == pe ) - goto _test_eof954; -case 954: + goto _test_eof1099; +case 1099: switch( (*p) ) { - case 78: goto st955; - case 110: goto st955; + case 78: goto st1100; + case 110: goto st1100; } - goto tr2508; -st955: + goto tr2791; +st1100: if ( ++p == pe ) - goto _test_eof955; -case 955: + goto _test_eof1100; +case 1100: switch( (*p) ) { - case 83: goto st956; - case 115: goto st956; + case 83: goto st1101; + case 115: goto st1101; } - goto tr2508; -st956: + goto tr2791; +st1101: if ( ++p == pe ) - goto _test_eof956; -case 956: + goto _test_eof1101; +case 1101: switch( (*p) ) { - case 69: goto st957; - case 101: goto st957; + case 69: goto st1102; + case 101: goto st1102; } - goto tr2508; -st957: + goto tr2791; +st1102: if ( ++p == pe ) - goto _test_eof957; -case 957: + goto _test_eof1102; +case 1102: switch( (*p) ) { - case 67: goto st958; - case 99: goto st958; + case 67: goto st1103; + case 99: goto st1103; } - goto tr2508; -st958: + goto tr2791; +st1103: if ( ++p == pe ) - goto _test_eof958; -case 958: + goto _test_eof1103; +case 1103: if ( (*p) == 51 ) - goto st959; - goto tr2508; -st959: + goto st1104; + goto tr2791; +st1104: if ( ++p == pe ) - goto _test_eof959; -case 959: + goto _test_eof1104; +case 1104: if ( (*p) == 45 ) - goto st960; - goto tr2508; -st960: + goto st1105; + goto tr2791; +st1105: if ( ++p == pe ) - goto _test_eof960; -case 960: + goto _test_eof1105; +case 1105: switch( (*p) ) { - case 83: goto st961; - case 115: goto st961; + case 83: goto st1106; + case 115: goto st1106; } - goto tr2508; -st961: + goto tr2791; +st1106: if ( ++p == pe ) - goto _test_eof961; -case 961: + goto _test_eof1106; +case 1106: switch( (*p) ) { - case 72: goto st962; - case 104: goto st962; + case 72: goto st1107; + case 104: goto st1107; } - goto tr2508; -st962: + goto tr2791; +st1107: if ( ++p == pe ) - goto _test_eof962; -case 962: + goto _test_eof1107; +case 1107: switch( (*p) ) { - case 65: goto st963; - case 97: goto st963; + case 65: goto st1108; + case 97: goto st1108; } - goto tr2508; -st963: + goto tr2791; +st1108: if ( ++p == pe ) - goto _test_eof963; -case 963: + goto _test_eof1108; +case 1108: if ( (*p) == 49 ) - goto st964; - goto tr2508; -st964: + goto st1109; + goto tr2791; +st1109: if ( ++p == pe ) - goto _test_eof964; -case 964: + goto _test_eof1109; +case 1109: switch( (*p) ) { - case 32: goto tr2533; - case 59: goto tr2533; + case 32: goto tr2816; + case 59: goto tr2816; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2533; + goto tr2816; } else if ( (*p) >= 9 ) - goto tr2533; - goto tr2508; -st965: + goto tr2816; + goto tr2791; +st1110: if ( ++p == pe ) - goto _test_eof965; -case 965: + goto _test_eof1110; +case 1110: switch( (*p) ) { - case 67: goto st966; - case 68: goto st995; - case 99: goto st966; - case 100: goto st995; + case 67: goto st1111; + case 68: goto st1140; + case 99: goto st1111; + case 100: goto st1140; } - goto tr2508; -st966: + goto tr2791; +st1111: if ( ++p == pe ) - goto _test_eof966; -case 966: + goto _test_eof1111; +case 1111: switch( (*p) ) { - case 67: goto st967; - case 68: goto st973; - case 99: goto st967; - case 100: goto st973; + case 67: goto st1112; + case 68: goto st1118; + case 99: goto st1112; + case 100: goto st1118; } - goto tr2508; -st967: + goto tr2791; +st1112: if ( ++p == pe ) - goto _test_eof967; -case 967: + goto _test_eof1112; +case 1112: if ( (*p) == 45 ) - goto st968; - goto tr2508; -st968: + goto st1113; + goto tr2791; +st1113: if ( ++p == pe ) - goto _test_eof968; -case 968: + goto _test_eof1113; +case 1113: switch( (*p) ) { - case 71: goto st969; - case 103: goto st969; + case 71: goto st1114; + case 103: goto st1114; } - goto tr2508; -st969: + goto tr2791; +st1114: if ( ++p == pe ) - goto _test_eof969; -case 969: + goto _test_eof1114; +case 1114: switch( (*p) ) { - case 79: goto st970; - case 111: goto st970; + case 79: goto st1115; + case 111: goto st1115; } - goto tr2508; -st970: + goto tr2791; +st1115: if ( ++p == pe ) - goto _test_eof970; -case 970: + goto _test_eof1115; +case 1115: switch( (*p) ) { - case 83: goto st971; - case 115: goto st971; + case 83: goto st1116; + case 115: goto st1116; } - goto tr2508; -st971: + goto tr2791; +st1116: if ( ++p == pe ) - goto _test_eof971; -case 971: + goto _test_eof1116; +case 1116: switch( (*p) ) { - case 84: goto st972; - case 116: goto st972; + case 84: goto st1117; + case 116: goto st1117; } - goto tr2508; -st972: + goto tr2791; +st1117: if ( ++p == pe ) - goto _test_eof972; -case 972: + goto _test_eof1117; +case 1117: switch( (*p) ) { - case 32: goto tr2543; - case 59: goto tr2543; + case 32: goto tr2826; + case 59: goto tr2826; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2543; + goto tr2826; } else if ( (*p) >= 9 ) - goto tr2543; - goto tr2508; -st973: + goto tr2826; + goto tr2791; +st1118: if ( ++p == pe ) - goto _test_eof973; -case 973: + goto _test_eof1118; +case 1118: switch( (*p) ) { - case 83: goto st974; - case 115: goto st974; + case 83: goto st1119; + case 115: goto st1119; } - goto tr2508; -st974: + goto tr2791; +st1119: if ( ++p == pe ) - goto _test_eof974; -case 974: + goto _test_eof1119; +case 1119: switch( (*p) ) { - case 65: goto st975; - case 97: goto st975; + case 65: goto st1120; + case 97: goto st1120; } - goto tr2508; -st975: + goto tr2791; +st1120: if ( ++p == pe ) - goto _test_eof975; -case 975: + goto _test_eof1120; +case 1120: switch( (*p) ) { - case 80: goto st976; - case 112: goto st976; + case 80: goto st1121; + case 112: goto st1121; } - goto tr2508; -st976: + goto tr2791; +st1121: if ( ++p == pe ) - goto _test_eof976; -case 976: + goto _test_eof1121; +case 1121: switch( (*p) ) { - case 50: goto st977; - case 51: goto st986; + case 50: goto st1122; + case 51: goto st1131; } - goto tr2508; -st977: + goto tr2791; +st1122: if ( ++p == pe ) - goto _test_eof977; -case 977: + goto _test_eof1122; +case 1122: if ( (*p) == 53 ) - goto st978; - goto tr2508; -st978: + goto st1123; + goto tr2791; +st1123: if ( ++p == pe ) - goto _test_eof978; -case 978: + goto _test_eof1123; +case 1123: if ( (*p) == 54 ) - goto st979; - goto tr2508; -st979: + goto st1124; + goto tr2791; +st1124: if ( ++p == pe ) - goto _test_eof979; -case 979: + goto _test_eof1124; +case 1124: switch( (*p) ) { - case 83: goto st980; - case 115: goto st980; + case 83: goto st1125; + case 115: goto st1125; } - goto tr2508; -st980: + goto tr2791; +st1125: if ( ++p == pe ) - goto _test_eof980; -case 980: + goto _test_eof1125; +case 1125: switch( (*p) ) { - case 72: goto st981; - case 104: goto st981; + case 72: goto st1126; + case 104: goto st1126; } - goto tr2508; -st981: + goto tr2791; +st1126: if ( ++p == pe ) - goto _test_eof981; -case 981: + goto _test_eof1126; +case 1126: switch( (*p) ) { - case 65: goto st982; - case 97: goto st982; + case 65: goto st1127; + case 97: goto st1127; } - goto tr2508; -st982: + goto tr2791; +st1127: if ( ++p == pe ) - goto _test_eof982; -case 982: + goto _test_eof1127; +case 1127: if ( (*p) == 50 ) - goto st983; - goto tr2508; -st983: + goto st1128; + goto tr2791; +st1128: if ( ++p == pe ) - goto _test_eof983; -case 983: + goto _test_eof1128; +case 1128: if ( (*p) == 53 ) - goto st984; - goto tr2508; -st984: + goto st1129; + goto tr2791; +st1129: if ( ++p == pe ) - goto _test_eof984; -case 984: + goto _test_eof1129; +case 1129: if ( (*p) == 54 ) - goto st985; - goto tr2508; -st985: + goto st1130; + goto tr2791; +st1130: if ( ++p == pe ) - goto _test_eof985; -case 985: + goto _test_eof1130; +case 1130: switch( (*p) ) { - case 32: goto tr2557; - case 59: goto tr2557; + case 32: goto tr2840; + case 59: goto tr2840; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2557; + goto tr2840; } else if ( (*p) >= 9 ) - goto tr2557; - goto tr2508; -st986: + goto tr2840; + goto tr2791; +st1131: if ( ++p == pe ) - goto _test_eof986; -case 986: + goto _test_eof1131; +case 1131: if ( (*p) == 56 ) - goto st987; - goto tr2508; -st987: + goto st1132; + goto tr2791; +st1132: if ( ++p == pe ) - goto _test_eof987; -case 987: + goto _test_eof1132; +case 1132: if ( (*p) == 52 ) - goto st988; - goto tr2508; -st988: + goto st1133; + goto tr2791; +st1133: if ( ++p == pe ) - goto _test_eof988; -case 988: + goto _test_eof1133; +case 1133: switch( (*p) ) { - case 83: goto st989; - case 115: goto st989; + case 83: goto st1134; + case 115: goto st1134; } - goto tr2508; -st989: + goto tr2791; +st1134: if ( ++p == pe ) - goto _test_eof989; -case 989: + goto _test_eof1134; +case 1134: switch( (*p) ) { - case 72: goto st990; - case 104: goto st990; + case 72: goto st1135; + case 104: goto st1135; } - goto tr2508; -st990: + goto tr2791; +st1135: if ( ++p == pe ) - goto _test_eof990; -case 990: + goto _test_eof1135; +case 1135: switch( (*p) ) { - case 65: goto st991; - case 97: goto st991; + case 65: goto st1136; + case 97: goto st1136; } - goto tr2508; -st991: + goto tr2791; +st1136: if ( ++p == pe ) - goto _test_eof991; -case 991: + goto _test_eof1136; +case 1136: if ( (*p) == 51 ) - goto st992; - goto tr2508; -st992: + goto st1137; + goto tr2791; +st1137: if ( ++p == pe ) - goto _test_eof992; -case 992: + goto _test_eof1137; +case 1137: if ( (*p) == 56 ) - goto st993; - goto tr2508; -st993: + goto st1138; + goto tr2791; +st1138: if ( ++p == pe ) - goto _test_eof993; -case 993: + goto _test_eof1138; +case 1138: if ( (*p) == 52 ) - goto st994; - goto tr2508; -st994: + goto st1139; + goto tr2791; +st1139: if ( ++p == pe ) - goto _test_eof994; -case 994: + goto _test_eof1139; +case 1139: switch( (*p) ) { - case 32: goto tr2566; - case 59: goto tr2566; + case 32: goto tr2849; + case 59: goto tr2849; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2566; + goto tr2849; } else if ( (*p) >= 9 ) - goto tr2566; - goto tr2508; -st995: + goto tr2849; + goto tr2791; +st1140: if ( ++p == pe ) - goto _test_eof995; -case 995: + goto _test_eof1140; +case 1140: switch( (*p) ) { - case 50: goto st996; - case 52: goto st1001; + case 50: goto st1141; + case 52: goto st1146; } - goto tr2508; -st996: + goto tr2791; +st1141: if ( ++p == pe ) - goto _test_eof996; -case 996: + goto _test_eof1141; +case 1141: if ( (*p) == 53 ) - goto st997; - goto tr2508; -st997: + goto st1142; + goto tr2791; +st1142: if ( ++p == pe ) - goto _test_eof997; -case 997: + goto _test_eof1142; +case 1142: if ( (*p) == 53 ) - goto st998; - goto tr2508; -st998: + goto st1143; + goto tr2791; +st1143: if ( ++p == pe ) - goto _test_eof998; -case 998: + goto _test_eof1143; +case 1143: if ( (*p) == 49 ) - goto st999; - goto tr2508; -st999: + goto st1144; + goto tr2791; +st1144: if ( ++p == pe ) - goto _test_eof999; -case 999: + goto _test_eof1144; +case 1144: if ( (*p) == 57 ) - goto st1000; - goto tr2508; -st1000: + goto st1145; + goto tr2791; +st1145: if ( ++p == pe ) - goto _test_eof1000; -case 1000: + goto _test_eof1145; +case 1145: switch( (*p) ) { - case 32: goto tr2573; - case 59: goto tr2573; + case 32: goto tr2856; + case 59: goto tr2856; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2573; + goto tr2856; } else if ( (*p) >= 9 ) - goto tr2573; - goto tr2508; -st1001: + goto tr2856; + goto tr2791; +st1146: if ( ++p == pe ) - goto _test_eof1001; -case 1001: + goto _test_eof1146; +case 1146: if ( (*p) == 52 ) - goto st1002; - goto tr2508; -st1002: + goto st1147; + goto tr2791; +st1147: if ( ++p == pe ) - goto _test_eof1002; -case 1002: + goto _test_eof1147; +case 1147: if ( (*p) == 56 ) - goto st1003; - goto tr2508; -st1003: + goto st1148; + goto tr2791; +st1148: if ( ++p == pe ) - goto _test_eof1003; -case 1003: + goto _test_eof1148; +case 1148: switch( (*p) ) { - case 32: goto tr2576; - case 59: goto tr2576; + case 32: goto tr2859; + case 59: goto tr2859; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2576; + goto tr2859; } else if ( (*p) >= 9 ) - goto tr2576; - goto tr2508; -st1004: + goto tr2859; + goto tr2791; +st1149: if ( ++p == pe ) - goto _test_eof1004; -case 1004: + goto _test_eof1149; +case 1149: switch( (*p) ) { - case 78: goto st1005; - case 110: goto st1005; + case 78: goto st1150; + case 110: goto st1150; } - goto tr2508; -st1005: + goto tr2791; +st1150: if ( ++p == pe ) - goto _test_eof1005; -case 1005: + goto _test_eof1150; +case 1150: switch( (*p) ) { - case 68: goto st1006; - case 100: goto st1006; + case 68: goto st1151; + case 100: goto st1151; } - goto tr2508; -st1006: + goto tr2791; +st1151: if ( ++p == pe ) - goto _test_eof1006; -case 1006: + goto _test_eof1151; +case 1151: switch( (*p) ) { - case 73: goto st1007; - case 105: goto st1007; + case 73: goto st1152; + case 105: goto st1152; } - goto tr2508; -st1007: + goto tr2791; +st1152: if ( ++p == pe ) - goto _test_eof1007; -case 1007: + goto _test_eof1152; +case 1152: switch( (*p) ) { - case 82: goto st1008; - case 114: goto st1008; + case 82: goto st1153; + case 114: goto st1153; } - goto tr2508; -st1008: + goto tr2791; +st1153: if ( ++p == pe ) - goto _test_eof1008; -case 1008: + goto _test_eof1153; +case 1153: switch( (*p) ) { - case 69: goto st1009; - case 101: goto st1009; + case 69: goto st1154; + case 101: goto st1154; } - goto tr2508; -st1009: + goto tr2791; +st1154: if ( ++p == pe ) - goto _test_eof1009; -case 1009: + goto _test_eof1154; +case 1154: switch( (*p) ) { - case 67: goto st1010; - case 99: goto st1010; + case 67: goto st1155; + case 99: goto st1155; } - goto tr2508; -st1010: + goto tr2791; +st1155: if ( ++p == pe ) - goto _test_eof1010; -case 1010: + goto _test_eof1155; +case 1155: switch( (*p) ) { - case 84: goto st1011; - case 116: goto st1011; + case 84: goto st1156; + case 116: goto st1156; } - goto tr2508; -st1011: + goto tr2791; +st1156: if ( ++p == pe ) - goto _test_eof1011; -case 1011: + goto _test_eof1156; +case 1156: switch( (*p) ) { - case 32: goto tr2584; - case 59: goto tr2584; + case 32: goto tr2867; + case 59: goto tr2867; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2584; + goto tr2867; } else if ( (*p) >= 9 ) - goto tr2584; - goto tr2508; -st1012: + goto tr2867; + goto tr2791; +st1157: if ( ++p == pe ) - goto _test_eof1012; -case 1012: + goto _test_eof1157; +case 1157: switch( (*p) ) { - case 82: goto st1013; - case 114: goto st1013; + case 82: goto st1158; + case 114: goto st1158; } - goto tr2508; -st1013: + goto tr2791; +st1158: if ( ++p == pe ) - goto _test_eof1013; -case 1013: + goto _test_eof1158; +case 1158: switch( (*p) ) { - case 73: goto st1014; - case 105: goto st1014; + case 73: goto st1159; + case 105: goto st1159; } - goto tr2508; -st1014: + goto tr2791; +st1159: if ( ++p == pe ) - goto _test_eof1014; -case 1014: + goto _test_eof1159; +case 1159: switch( (*p) ) { - case 86: goto st1015; - case 118: goto st1015; + case 86: goto st1160; + case 118: goto st1160; } - goto tr2508; -st1015: + goto tr2791; +st1160: if ( ++p == pe ) - goto _test_eof1015; -case 1015: + goto _test_eof1160; +case 1160: switch( (*p) ) { - case 65: goto st1016; - case 97: goto st1016; + case 65: goto st1161; + case 97: goto st1161; } - goto tr2508; -st1016: + goto tr2791; +st1161: if ( ++p == pe ) - goto _test_eof1016; -case 1016: + goto _test_eof1161; +case 1161: switch( (*p) ) { - case 84: goto st1017; - case 116: goto st1017; + case 84: goto st1162; + case 116: goto st1162; } - goto tr2508; -st1017: + goto tr2791; +st1162: if ( ++p == pe ) - goto _test_eof1017; -case 1017: + goto _test_eof1162; +case 1162: switch( (*p) ) { - case 69: goto st1018; - case 101: goto st1018; + case 69: goto st1163; + case 101: goto st1163; } - goto tr2508; -st1018: + goto tr2791; +st1163: if ( ++p == pe ) - goto _test_eof1018; -case 1018: + goto _test_eof1163; +case 1163: switch( (*p) ) { - case 68: goto st1019; - case 79: goto st1022; - case 100: goto st1019; - case 111: goto st1022; + case 68: goto st1164; + case 79: goto st1167; + case 100: goto st1164; + case 111: goto st1167; } - goto tr2508; -st1019: + goto tr2791; +st1164: if ( ++p == pe ) - goto _test_eof1019; -case 1019: + goto _test_eof1164; +case 1164: switch( (*p) ) { - case 78: goto st1020; - case 110: goto st1020; + case 78: goto st1165; + case 110: goto st1165; } - goto tr2508; -st1020: + goto tr2791; +st1165: if ( ++p == pe ) - goto _test_eof1020; -case 1020: + goto _test_eof1165; +case 1165: switch( (*p) ) { - case 83: goto st1021; - case 115: goto st1021; + case 83: goto st1166; + case 115: goto st1166; } - goto tr2508; -st1021: + goto tr2791; +st1166: if ( ++p == pe ) - goto _test_eof1021; -case 1021: + goto _test_eof1166; +case 1166: switch( (*p) ) { - case 32: goto tr2595; - case 59: goto tr2595; + case 32: goto tr2878; + case 59: goto tr2878; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2595; + goto tr2878; } else if ( (*p) >= 9 ) - goto tr2595; - goto tr2508; -st1022: + goto tr2878; + goto tr2791; +st1167: if ( ++p == pe ) - goto _test_eof1022; -case 1022: + goto _test_eof1167; +case 1167: switch( (*p) ) { - case 73: goto st1023; - case 105: goto st1023; + case 73: goto st1168; + case 105: goto st1168; } - goto tr2508; -st1023: + goto tr2791; +st1168: if ( ++p == pe ) - goto _test_eof1023; -case 1023: + goto _test_eof1168; +case 1168: switch( (*p) ) { - case 68: goto st1024; - case 100: goto st1024; + case 68: goto st1169; + case 100: goto st1169; } - goto tr2508; -st1024: + goto tr2791; +st1169: if ( ++p == pe ) - goto _test_eof1024; -case 1024: + goto _test_eof1169; +case 1169: switch( (*p) ) { - case 32: goto tr2598; - case 59: goto tr2598; + case 32: goto tr2881; + case 59: goto tr2881; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2598; + goto tr2881; } else if ( (*p) >= 9 ) - goto tr2598; - goto tr2508; -st1025: + goto tr2881; + goto tr2791; +st1170: if ( ++p == pe ) - goto _test_eof1025; -case 1025: + goto _test_eof1170; +case 1170: switch( (*p) ) { - case 83: goto st1026; - case 115: goto st1026; + case 83: goto st1171; + case 115: goto st1171; } - goto tr2508; -st1026: + goto tr2791; +st1171: if ( ++p == pe ) - goto _test_eof1026; -case 1026: + goto _test_eof1171; +case 1171: switch( (*p) ) { - case 65: goto st1027; - case 97: goto st1027; + case 65: goto st1172; + case 97: goto st1172; } - goto tr2508; -st1027: + goto tr2791; +st1172: if ( ++p == pe ) - goto _test_eof1027; -case 1027: + goto _test_eof1172; +case 1172: switch( (*p) ) { - case 77: goto st1028; - case 83: goto st1031; - case 109: goto st1028; - case 115: goto st1031; + case 77: goto st1173; + case 83: goto st1176; + case 109: goto st1173; + case 115: goto st1176; } - goto tr2508; -st1028: + goto tr2791; +st1173: if ( ++p == pe ) - goto _test_eof1028; -case 1028: + goto _test_eof1173; +case 1173: switch( (*p) ) { - case 68: goto st1029; - case 100: goto st1029; + case 68: goto st1174; + case 100: goto st1174; } - goto tr2508; -st1029: + goto tr2791; +st1174: if ( ++p == pe ) - goto _test_eof1029; -case 1029: + goto _test_eof1174; +case 1174: if ( (*p) == 53 ) - goto st1030; - goto tr2508; -st1030: + goto st1175; + goto tr2791; +st1175: if ( ++p == pe ) - goto _test_eof1030; -case 1030: + goto _test_eof1175; +case 1175: switch( (*p) ) { - case 32: goto tr2605; - case 59: goto tr2605; + case 32: goto tr2888; + case 59: goto tr2888; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2605; + goto tr2888; } else if ( (*p) >= 9 ) - goto tr2605; - goto tr2508; -st1031: + goto tr2888; + goto tr2791; +st1176: if ( ++p == pe ) - goto _test_eof1031; -case 1031: + goto _test_eof1176; +case 1176: switch( (*p) ) { - case 72: goto st1032; - case 104: goto st1032; + case 72: goto st1177; + case 104: goto st1177; } - goto tr2508; -st1032: + goto tr2791; +st1177: if ( ++p == pe ) - goto _test_eof1032; -case 1032: + goto _test_eof1177; +case 1177: switch( (*p) ) { - case 65: goto st1033; - case 97: goto st1033; + case 65: goto st1178; + case 97: goto st1178; } - goto tr2508; -st1033: + goto tr2791; +st1178: if ( ++p == pe ) - goto _test_eof1033; -case 1033: + goto _test_eof1178; +case 1178: switch( (*p) ) { - case 49: goto st1034; - case 50: goto st1046; - case 53: goto st1049; + case 49: goto st1179; + case 50: goto st1191; + case 53: goto st1194; } - goto tr2508; -st1034: + goto tr2791; +st1179: if ( ++p == pe ) - goto _test_eof1034; -case 1034: + goto _test_eof1179; +case 1179: switch( (*p) ) { - case 32: goto tr2611; - case 45: goto st1035; - case 59: goto tr2611; + case 32: goto tr2894; + case 45: goto st1180; + case 59: goto tr2894; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2611; + goto tr2894; } else if ( (*p) >= 9 ) - goto tr2611; - goto tr2508; -st1035: + goto tr2894; + goto tr2791; +st1180: if ( ++p == pe ) - goto _test_eof1035; -case 1035: + goto _test_eof1180; +case 1180: switch( (*p) ) { - case 78: goto st1036; - case 110: goto st1036; + case 78: goto st1181; + case 110: goto st1181; } - goto tr2508; -st1036: + goto tr2791; +st1181: if ( ++p == pe ) - goto _test_eof1036; -case 1036: + goto _test_eof1181; +case 1181: switch( (*p) ) { - case 83: goto st1037; - case 115: goto st1037; + case 83: goto st1182; + case 115: goto st1182; } - goto tr2508; -st1037: + goto tr2791; +st1182: if ( ++p == pe ) - goto _test_eof1037; -case 1037: + goto _test_eof1182; +case 1182: switch( (*p) ) { - case 69: goto st1038; - case 101: goto st1038; + case 69: goto st1183; + case 101: goto st1183; } - goto tr2508; -st1038: + goto tr2791; +st1183: if ( ++p == pe ) - goto _test_eof1038; -case 1038: + goto _test_eof1183; +case 1183: switch( (*p) ) { - case 67: goto st1039; - case 99: goto st1039; + case 67: goto st1184; + case 99: goto st1184; } - goto tr2508; -st1039: + goto tr2791; +st1184: if ( ++p == pe ) - goto _test_eof1039; -case 1039: + goto _test_eof1184; +case 1184: if ( (*p) == 51 ) - goto st1040; - goto tr2508; -st1040: + goto st1185; + goto tr2791; +st1185: if ( ++p == pe ) - goto _test_eof1040; -case 1040: + goto _test_eof1185; +case 1185: if ( (*p) == 45 ) - goto st1041; - goto tr2508; -st1041: + goto st1186; + goto tr2791; +st1186: if ( ++p == pe ) - goto _test_eof1041; -case 1041: + goto _test_eof1186; +case 1186: switch( (*p) ) { - case 83: goto st1042; - case 115: goto st1042; + case 83: goto st1187; + case 115: goto st1187; } - goto tr2508; -st1042: + goto tr2791; +st1187: if ( ++p == pe ) - goto _test_eof1042; -case 1042: + goto _test_eof1187; +case 1187: switch( (*p) ) { - case 72: goto st1043; - case 104: goto st1043; + case 72: goto st1188; + case 104: goto st1188; } - goto tr2508; -st1043: + goto tr2791; +st1188: if ( ++p == pe ) - goto _test_eof1043; -case 1043: + goto _test_eof1188; +case 1188: switch( (*p) ) { - case 65: goto st1044; - case 97: goto st1044; + case 65: goto st1189; + case 97: goto st1189; } - goto tr2508; -st1044: + goto tr2791; +st1189: if ( ++p == pe ) - goto _test_eof1044; -case 1044: + goto _test_eof1189; +case 1189: if ( (*p) == 49 ) - goto st1045; - goto tr2508; -st1045: + goto st1190; + goto tr2791; +st1190: if ( ++p == pe ) - goto _test_eof1045; -case 1045: + goto _test_eof1190; +case 1190: switch( (*p) ) { - case 32: goto tr2623; - case 59: goto tr2623; + case 32: goto tr2906; + case 59: goto tr2906; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2623; + goto tr2906; } else if ( (*p) >= 9 ) - goto tr2623; - goto tr2508; -st1046: + goto tr2906; + goto tr2791; +st1191: if ( ++p == pe ) - goto _test_eof1046; -case 1046: + goto _test_eof1191; +case 1191: if ( (*p) == 53 ) - goto st1047; - goto tr2508; -st1047: + goto st1192; + goto tr2791; +st1192: if ( ++p == pe ) - goto _test_eof1047; -case 1047: + goto _test_eof1192; +case 1192: if ( (*p) == 54 ) - goto st1048; - goto tr2508; -st1048: + goto st1193; + goto tr2791; +st1193: if ( ++p == pe ) - goto _test_eof1048; -case 1048: + goto _test_eof1193; +case 1193: switch( (*p) ) { - case 32: goto tr2626; - case 59: goto tr2626; + case 32: goto tr2909; + case 59: goto tr2909; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2626; + goto tr2909; } else if ( (*p) >= 9 ) - goto tr2626; - goto tr2508; -st1049: + goto tr2909; + goto tr2791; +st1194: if ( ++p == pe ) - goto _test_eof1049; -case 1049: + goto _test_eof1194; +case 1194: if ( (*p) == 49 ) - goto st1050; - goto tr2508; -st1050: + goto st1195; + goto tr2791; +st1195: if ( ++p == pe ) - goto _test_eof1050; -case 1050: + goto _test_eof1195; +case 1195: if ( (*p) == 50 ) - goto st1051; - goto tr2508; -st1051: + goto st1196; + goto tr2791; +st1196: if ( ++p == pe ) - goto _test_eof1051; -case 1051: + goto _test_eof1196; +case 1196: switch( (*p) ) { - case 32: goto tr2629; - case 59: goto tr2629; + case 32: goto tr2912; + case 59: goto tr2912; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2629; + goto tr2912; } else if ( (*p) >= 9 ) - goto tr2629; - goto tr2508; -st1052: + goto tr2912; + goto tr2791; +st1197: if ( ++p == pe ) - goto _test_eof1052; -case 1052: + goto _test_eof1197; +case 1197: switch( (*p) ) { - case 65: goto st1054; - case 73: goto st1060; - case 79: goto st1077; - case 80: goto st1080; - case 83: goto st1086; - case 85: goto st1090; - case 97: goto st1054; - case 105: goto st1060; - case 111: goto st1077; - case 112: goto st1080; - case 115: goto st1086; - case 117: goto st1090; + case 65: goto st1199; + case 73: goto st1205; + case 79: goto st1222; + case 80: goto st1225; + case 83: goto st1231; + case 85: goto st1235; + case 97: goto st1199; + case 105: goto st1205; + case 111: goto st1222; + case 112: goto st1225; + case 115: goto st1231; + case 117: goto st1235; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2631; - goto tr2630; -tr2631: + goto tr2914; + goto tr2913; +tr2914: { s->number64 = 0; } @@ -70179,11 +76665,11 @@ tr2631: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1053; -tr2639: + goto st1198; +tr2922: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70195,28 +76681,28 @@ tr2639: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1053; -st1053: + goto st1198; +st1198: if ( ++p == pe ) - goto _test_eof1053; -case 1053: + goto _test_eof1198; +case 1198: switch( (*p) ) { - case 32: goto tr2638; - case 59: goto tr2638; + case 32: goto tr2921; + case 59: goto tr2921; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2638; + goto tr2921; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2639; + goto tr2922; } else - goto tr2638; - goto tr2630; -tr2638: + goto tr2921; + goto tr2913; +tr2921: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -70224,14 +76710,14 @@ tr2638: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr2675: + goto st1696; +tr2958: { uint16_t val = htons(1); memcpy(rdata_tail, &val, 2); @@ -70240,8 +76726,8 @@ tr2675: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr2645: + goto st1696; +tr2928: { uint16_t val = htons(7); memcpy(rdata_tail, &val, 2); @@ -70250,8 +76736,8 @@ tr2645: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr2665: + goto st1696; +tr2948: { uint16_t val = htons(5); memcpy(rdata_tail, &val, 2); @@ -70260,8 +76746,8 @@ tr2665: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr2661: + goto st1696; +tr2944: { uint16_t val = htons(4); memcpy(rdata_tail, &val, 2); @@ -70270,8 +76756,8 @@ tr2661: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr2658: + goto st1696; +tr2941: { uint16_t val = htons(6); memcpy(rdata_tail, &val, 2); @@ -70280,8 +76766,8 @@ tr2658: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr2679: + goto st1696; +tr2962: { uint16_t val = htons(2); memcpy(rdata_tail, &val, 2); @@ -70290,8 +76776,8 @@ tr2679: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr2654: + goto st1696; +tr2937: { uint16_t val = htons(8); memcpy(rdata_tail, &val, 2); @@ -70300,8 +76786,8 @@ tr2654: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr2672: + goto st1696; +tr2955: { uint16_t val = htons(3); memcpy(rdata_tail, &val, 2); @@ -70310,8 +76796,8 @@ tr2672: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr2668: + goto st1696; +tr2951: { uint16_t val = htons(254); memcpy(rdata_tail, &val, 2); @@ -70320,8 +76806,8 @@ tr2668: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -tr2682: + goto st1696; +tr2965: { uint16_t val = htons(253); memcpy(rdata_tail, &val, 2); @@ -70330,433 +76816,433 @@ tr2682: { p--; {cs = stack[--top];goto _again;} } - goto st1543; -st1543: + goto st1696; +st1696: if ( ++p == pe ) - goto _test_eof1543; -case 1543: + goto _test_eof1696; +case 1696: goto st0; -st1054: +st1199: if ( ++p == pe ) - goto _test_eof1054; -case 1054: + goto _test_eof1199; +case 1199: switch( (*p) ) { - case 67: goto st1055; - case 99: goto st1055; + case 67: goto st1200; + case 99: goto st1200; } - goto tr2630; -st1055: + goto tr2913; +st1200: if ( ++p == pe ) - goto _test_eof1055; -case 1055: + goto _test_eof1200; +case 1200: switch( (*p) ) { - case 80: goto st1056; - case 112: goto st1056; + case 80: goto st1201; + case 112: goto st1201; } - goto tr2630; -st1056: + goto tr2913; +st1201: if ( ++p == pe ) - goto _test_eof1056; -case 1056: + goto _test_eof1201; +case 1201: switch( (*p) ) { - case 75: goto st1057; - case 107: goto st1057; + case 75: goto st1202; + case 107: goto st1202; } - goto tr2630; -st1057: + goto tr2913; +st1202: if ( ++p == pe ) - goto _test_eof1057; -case 1057: + goto _test_eof1202; +case 1202: switch( (*p) ) { - case 73: goto st1058; - case 105: goto st1058; + case 73: goto st1203; + case 105: goto st1203; } - goto tr2630; -st1058: + goto tr2913; +st1203: if ( ++p == pe ) - goto _test_eof1058; -case 1058: + goto _test_eof1203; +case 1203: switch( (*p) ) { - case 88: goto st1059; - case 120: goto st1059; + case 88: goto st1204; + case 120: goto st1204; } - goto tr2630; -st1059: + goto tr2913; +st1204: if ( ++p == pe ) - goto _test_eof1059; -case 1059: + goto _test_eof1204; +case 1204: switch( (*p) ) { - case 32: goto tr2645; - case 59: goto tr2645; + case 32: goto tr2928; + case 59: goto tr2928; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2645; + goto tr2928; } else if ( (*p) >= 9 ) - goto tr2645; - goto tr2630; -st1060: + goto tr2928; + goto tr2913; +st1205: if ( ++p == pe ) - goto _test_eof1060; -case 1060: + goto _test_eof1205; +case 1205: switch( (*p) ) { - case 65: goto st1061; - case 80: goto st1067; - case 83: goto st1073; - case 97: goto st1061; - case 112: goto st1067; - case 115: goto st1073; + case 65: goto st1206; + case 80: goto st1212; + case 83: goto st1218; + case 97: goto st1206; + case 112: goto st1212; + case 115: goto st1218; } - goto tr2630; -st1061: + goto tr2913; +st1206: if ( ++p == pe ) - goto _test_eof1061; -case 1061: + goto _test_eof1206; +case 1206: switch( (*p) ) { - case 67: goto st1062; - case 99: goto st1062; + case 67: goto st1207; + case 99: goto st1207; } - goto tr2630; -st1062: + goto tr2913; +st1207: if ( ++p == pe ) - goto _test_eof1062; -case 1062: + goto _test_eof1207; +case 1207: switch( (*p) ) { - case 80: goto st1063; - case 112: goto st1063; + case 80: goto st1208; + case 112: goto st1208; } - goto tr2630; -st1063: + goto tr2913; +st1208: if ( ++p == pe ) - goto _test_eof1063; -case 1063: + goto _test_eof1208; +case 1208: switch( (*p) ) { - case 75: goto st1064; - case 107: goto st1064; + case 75: goto st1209; + case 107: goto st1209; } - goto tr2630; -st1064: + goto tr2913; +st1209: if ( ++p == pe ) - goto _test_eof1064; -case 1064: + goto _test_eof1209; +case 1209: switch( (*p) ) { - case 73: goto st1065; - case 105: goto st1065; + case 73: goto st1210; + case 105: goto st1210; } - goto tr2630; -st1065: + goto tr2913; +st1210: if ( ++p == pe ) - goto _test_eof1065; -case 1065: + goto _test_eof1210; +case 1210: switch( (*p) ) { - case 88: goto st1066; - case 120: goto st1066; + case 88: goto st1211; + case 120: goto st1211; } - goto tr2630; -st1066: + goto tr2913; +st1211: if ( ++p == pe ) - goto _test_eof1066; -case 1066: + goto _test_eof1211; +case 1211: switch( (*p) ) { - case 32: goto tr2654; - case 59: goto tr2654; + case 32: goto tr2937; + case 59: goto tr2937; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2654; + goto tr2937; } else if ( (*p) >= 9 ) - goto tr2654; - goto tr2630; -st1067: + goto tr2937; + goto tr2913; +st1212: if ( ++p == pe ) - goto _test_eof1067; -case 1067: + goto _test_eof1212; +case 1212: switch( (*p) ) { - case 71: goto st1068; - case 75: goto st1070; - case 103: goto st1068; - case 107: goto st1070; + case 71: goto st1213; + case 75: goto st1215; + case 103: goto st1213; + case 107: goto st1215; } - goto tr2630; -st1068: + goto tr2913; +st1213: if ( ++p == pe ) - goto _test_eof1068; -case 1068: + goto _test_eof1213; +case 1213: switch( (*p) ) { - case 80: goto st1069; - case 112: goto st1069; + case 80: goto st1214; + case 112: goto st1214; } - goto tr2630; -st1069: + goto tr2913; +st1214: if ( ++p == pe ) - goto _test_eof1069; -case 1069: + goto _test_eof1214; +case 1214: switch( (*p) ) { - case 32: goto tr2658; - case 59: goto tr2658; + case 32: goto tr2941; + case 59: goto tr2941; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2658; + goto tr2941; } else if ( (*p) >= 9 ) - goto tr2658; - goto tr2630; -st1070: + goto tr2941; + goto tr2913; +st1215: if ( ++p == pe ) - goto _test_eof1070; -case 1070: + goto _test_eof1215; +case 1215: switch( (*p) ) { - case 73: goto st1071; - case 105: goto st1071; + case 73: goto st1216; + case 105: goto st1216; } - goto tr2630; -st1071: + goto tr2913; +st1216: if ( ++p == pe ) - goto _test_eof1071; -case 1071: + goto _test_eof1216; +case 1216: switch( (*p) ) { - case 88: goto st1072; - case 120: goto st1072; + case 88: goto st1217; + case 120: goto st1217; } - goto tr2630; -st1072: + goto tr2913; +st1217: if ( ++p == pe ) - goto _test_eof1072; -case 1072: + goto _test_eof1217; +case 1217: switch( (*p) ) { - case 32: goto tr2661; - case 59: goto tr2661; + case 32: goto tr2944; + case 59: goto tr2944; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2661; + goto tr2944; } else if ( (*p) >= 9 ) - goto tr2661; - goto tr2630; -st1073: + goto tr2944; + goto tr2913; +st1218: if ( ++p == pe ) - goto _test_eof1073; -case 1073: + goto _test_eof1218; +case 1218: switch( (*p) ) { - case 80: goto st1074; - case 112: goto st1074; + case 80: goto st1219; + case 112: goto st1219; } - goto tr2630; -st1074: + goto tr2913; +st1219: if ( ++p == pe ) - goto _test_eof1074; -case 1074: + goto _test_eof1219; +case 1219: switch( (*p) ) { - case 75: goto st1075; - case 107: goto st1075; + case 75: goto st1220; + case 107: goto st1220; } - goto tr2630; -st1075: + goto tr2913; +st1220: if ( ++p == pe ) - goto _test_eof1075; -case 1075: + goto _test_eof1220; +case 1220: switch( (*p) ) { - case 73: goto st1076; - case 105: goto st1076; + case 73: goto st1221; + case 105: goto st1221; } - goto tr2630; -st1076: + goto tr2913; +st1221: if ( ++p == pe ) - goto _test_eof1076; -case 1076: + goto _test_eof1221; +case 1221: switch( (*p) ) { - case 32: goto tr2665; - case 59: goto tr2665; + case 32: goto tr2948; + case 59: goto tr2948; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2665; + goto tr2948; } else if ( (*p) >= 9 ) - goto tr2665; - goto tr2630; -st1077: + goto tr2948; + goto tr2913; +st1222: if ( ++p == pe ) - goto _test_eof1077; -case 1077: + goto _test_eof1222; +case 1222: switch( (*p) ) { - case 73: goto st1078; - case 105: goto st1078; + case 73: goto st1223; + case 105: goto st1223; } - goto tr2630; -st1078: + goto tr2913; +st1223: if ( ++p == pe ) - goto _test_eof1078; -case 1078: + goto _test_eof1223; +case 1223: switch( (*p) ) { - case 68: goto st1079; - case 100: goto st1079; + case 68: goto st1224; + case 100: goto st1224; } - goto tr2630; -st1079: + goto tr2913; +st1224: if ( ++p == pe ) - goto _test_eof1079; -case 1079: + goto _test_eof1224; +case 1224: switch( (*p) ) { - case 32: goto tr2668; - case 59: goto tr2668; + case 32: goto tr2951; + case 59: goto tr2951; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2668; + goto tr2951; } else if ( (*p) >= 9 ) - goto tr2668; - goto tr2630; -st1080: + goto tr2951; + goto tr2913; +st1225: if ( ++p == pe ) - goto _test_eof1080; -case 1080: + goto _test_eof1225; +case 1225: switch( (*p) ) { - case 71: goto st1081; - case 75: goto st1083; - case 103: goto st1081; - case 107: goto st1083; + case 71: goto st1226; + case 75: goto st1228; + case 103: goto st1226; + case 107: goto st1228; } - goto tr2630; -st1081: + goto tr2913; +st1226: if ( ++p == pe ) - goto _test_eof1081; -case 1081: + goto _test_eof1226; +case 1226: switch( (*p) ) { - case 80: goto st1082; - case 112: goto st1082; + case 80: goto st1227; + case 112: goto st1227; } - goto tr2630; -st1082: + goto tr2913; +st1227: if ( ++p == pe ) - goto _test_eof1082; -case 1082: + goto _test_eof1227; +case 1227: switch( (*p) ) { - case 32: goto tr2672; - case 59: goto tr2672; + case 32: goto tr2955; + case 59: goto tr2955; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2672; + goto tr2955; } else if ( (*p) >= 9 ) - goto tr2672; - goto tr2630; -st1083: + goto tr2955; + goto tr2913; +st1228: if ( ++p == pe ) - goto _test_eof1083; -case 1083: + goto _test_eof1228; +case 1228: switch( (*p) ) { - case 73: goto st1084; - case 105: goto st1084; + case 73: goto st1229; + case 105: goto st1229; } - goto tr2630; -st1084: + goto tr2913; +st1229: if ( ++p == pe ) - goto _test_eof1084; -case 1084: + goto _test_eof1229; +case 1229: switch( (*p) ) { - case 88: goto st1085; - case 120: goto st1085; + case 88: goto st1230; + case 120: goto st1230; } - goto tr2630; -st1085: + goto tr2913; +st1230: if ( ++p == pe ) - goto _test_eof1085; -case 1085: + goto _test_eof1230; +case 1230: switch( (*p) ) { - case 32: goto tr2675; - case 59: goto tr2675; + case 32: goto tr2958; + case 59: goto tr2958; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2675; + goto tr2958; } else if ( (*p) >= 9 ) - goto tr2675; - goto tr2630; -st1086: + goto tr2958; + goto tr2913; +st1231: if ( ++p == pe ) - goto _test_eof1086; -case 1086: + goto _test_eof1231; +case 1231: switch( (*p) ) { - case 80: goto st1087; - case 112: goto st1087; + case 80: goto st1232; + case 112: goto st1232; } - goto tr2630; -st1087: + goto tr2913; +st1232: if ( ++p == pe ) - goto _test_eof1087; -case 1087: + goto _test_eof1232; +case 1232: switch( (*p) ) { - case 75: goto st1088; - case 107: goto st1088; + case 75: goto st1233; + case 107: goto st1233; } - goto tr2630; -st1088: + goto tr2913; +st1233: if ( ++p == pe ) - goto _test_eof1088; -case 1088: + goto _test_eof1233; +case 1233: switch( (*p) ) { - case 73: goto st1089; - case 105: goto st1089; + case 73: goto st1234; + case 105: goto st1234; } - goto tr2630; -st1089: + goto tr2913; +st1234: if ( ++p == pe ) - goto _test_eof1089; -case 1089: + goto _test_eof1234; +case 1234: switch( (*p) ) { - case 32: goto tr2679; - case 59: goto tr2679; + case 32: goto tr2962; + case 59: goto tr2962; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2679; + goto tr2962; } else if ( (*p) >= 9 ) - goto tr2679; - goto tr2630; -st1090: + goto tr2962; + goto tr2913; +st1235: if ( ++p == pe ) - goto _test_eof1090; -case 1090: + goto _test_eof1235; +case 1235: switch( (*p) ) { - case 82: goto st1091; - case 114: goto st1091; + case 82: goto st1236; + case 114: goto st1236; } - goto tr2630; -st1091: + goto tr2913; +st1236: if ( ++p == pe ) - goto _test_eof1091; -case 1091: + goto _test_eof1236; +case 1236: switch( (*p) ) { - case 73: goto st1092; - case 105: goto st1092; + case 73: goto st1237; + case 105: goto st1237; } - goto tr2630; -st1092: + goto tr2913; +st1237: if ( ++p == pe ) - goto _test_eof1092; -case 1092: + goto _test_eof1237; +case 1237: switch( (*p) ) { - case 32: goto tr2682; - case 59: goto tr2682; + case 32: goto tr2965; + case 59: goto tr2965; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2682; + goto tr2965; } else if ( (*p) >= 9 ) - goto tr2682; - goto tr2630; -st1093: + goto tr2965; + goto tr2913; +st1238: if ( ++p == pe ) - goto _test_eof1093; -case 1093: + goto _test_eof1238; +case 1238: switch( (*p) ) { - case 78: goto st1095; - case 110: goto st1095; + case 78: goto st1240; + case 110: goto st1240; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2684; - goto tr2683; -tr2684: + goto tr2967; + goto tr2966; +tr2967: { s->number64 = 0; } @@ -70771,11 +77257,11 @@ tr2684: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1094; -tr2687: + goto st1239; +tr2970: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -70787,133 +77273,133 @@ tr2687: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1094; -st1094: + goto st1239; +st1239: if ( ++p == pe ) - goto _test_eof1094; -case 1094: + goto _test_eof1239; +case 1239: switch( (*p) ) { - case 32: goto tr2686; - case 59: goto tr2686; + case 32: goto tr2969; + case 59: goto tr2969; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2686; + goto tr2969; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2687; + goto tr2970; } else - goto tr2686; - goto tr2683; -tr2686: + goto tr2969; + goto tr2966; +tr2969: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1544; -tr2693: + goto st1697; +tr2976: { *(rdata_tail++) = 1; } { p--; {cs = stack[--top];goto _again;} } - goto st1544; -st1544: + goto st1697; +st1697: if ( ++p == pe ) - goto _test_eof1544; -case 1544: + goto _test_eof1697; +case 1697: goto st0; -st1095: +st1240: if ( ++p == pe ) - goto _test_eof1095; -case 1095: + goto _test_eof1240; +case 1240: switch( (*p) ) { - case 79: goto st1096; - case 111: goto st1096; + case 79: goto st1241; + case 111: goto st1241; } - goto tr2683; -st1096: + goto tr2966; +st1241: if ( ++p == pe ) - goto _test_eof1096; -case 1096: + goto _test_eof1241; +case 1241: switch( (*p) ) { - case 84: goto st1097; - case 116: goto st1097; + case 84: goto st1242; + case 116: goto st1242; } - goto tr2683; -st1097: + goto tr2966; +st1242: if ( ++p == pe ) - goto _test_eof1097; -case 1097: + goto _test_eof1242; +case 1242: switch( (*p) ) { - case 73: goto st1098; - case 105: goto st1098; + case 73: goto st1243; + case 105: goto st1243; } - goto tr2683; -st1098: + goto tr2966; +st1243: if ( ++p == pe ) - goto _test_eof1098; -case 1098: + goto _test_eof1243; +case 1243: switch( (*p) ) { - case 70: goto st1099; - case 102: goto st1099; + case 70: goto st1244; + case 102: goto st1244; } - goto tr2683; -st1099: + goto tr2966; +st1244: if ( ++p == pe ) - goto _test_eof1099; -case 1099: + goto _test_eof1244; +case 1244: switch( (*p) ) { - case 89: goto st1100; - case 121: goto st1100; + case 89: goto st1245; + case 121: goto st1245; } - goto tr2683; -st1100: + goto tr2966; +st1245: if ( ++p == pe ) - goto _test_eof1100; -case 1100: + goto _test_eof1245; +case 1245: switch( (*p) ) { - case 32: goto tr2693; - case 59: goto tr2693; + case 32: goto tr2976; + case 59: goto tr2976; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2693; + goto tr2976; } else if ( (*p) >= 9 ) - goto tr2693; - goto tr2683; -st1101: + goto tr2976; + goto tr2966; +st1246: if ( ++p == pe ) - goto _test_eof1101; -case 1101: + goto _test_eof1246; +case 1246: if ( (*p) == 46 ) - goto tr2695; + goto tr2978; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2695; - goto tr2694; -tr2697: + goto tr2978; + goto tr2977; +tr2980: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1102; -tr2695: + goto st1247; +tr2978: { s->buffer_length = 0; } @@ -70922,41 +77408,41 @@ tr2695: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1102; -st1102: + goto st1247; +st1247: if ( ++p == pe ) - goto _test_eof1102; -case 1102: + goto _test_eof1247; +case 1247: switch( (*p) ) { - case 32: goto tr2696; - case 46: goto tr2697; - case 59: goto tr2696; + case 32: goto tr2979; + case 46: goto tr2980; + case 59: goto tr2979; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2696; + goto tr2979; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2697; + goto tr2980; } else - goto tr2696; - goto tr2694; -tr2696: + goto tr2979; + goto tr2977; +tr2979: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -70964,51 +77450,51 @@ tr2696: { p--; {cs = stack[--top];goto _again;} } - goto st1545; -st1545: + goto st1698; +st1698: if ( ++p == pe ) - goto _test_eof1545; -case 1545: + goto _test_eof1698; +case 1698: goto st0; -st1103: +st1248: if ( ++p == pe ) - goto _test_eof1103; -case 1103: + goto _test_eof1248; +case 1248: switch( (*p) ) { - case 42: goto tr2698; - case 92: goto tr2698; - case 95: goto tr2698; + case 42: goto tr2981; + case 92: goto tr2981; + case 95: goto tr2981; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2698; + goto tr2981; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2698; + goto tr2981; } else - goto tr2698; + goto tr2981; goto tr78; -tr2698: +tr2981: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1104;goto st331;} } - goto st1104; -st1104: + { p--; {stack[top++] = 1249;goto st340;} } + goto st1249; +st1249: if ( ++p == pe ) - goto _test_eof1104; -case 1104: + goto _test_eof1249; +case 1249: switch( (*p) ) { - case 32: goto tr2699; - case 59: goto tr2699; + case 32: goto tr2982; + case 59: goto tr2982; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2699; + goto tr2982; } else if ( (*p) >= 9 ) - goto tr2699; + goto tr2982; goto tr78; -tr2699: +tr2982: { if (s->to_lower) { dname_to_lower(s->dname); @@ -71020,40 +77506,40 @@ tr2699: { p--; {cs = stack[--top];goto _again;} } - goto st1546; -st1546: + goto st1699; +st1699: if ( ++p == pe ) - goto _test_eof1546; -case 1546: + goto _test_eof1699; +case 1699: goto st0; -st1105: +st1250: if ( ++p == pe ) - goto _test_eof1105; -case 1105: + goto _test_eof1250; +case 1250: switch( (*p) ) { - case 42: goto tr2700; - case 92: goto tr2700; - case 95: goto tr2700; + case 42: goto tr2983; + case 92: goto tr2983; + case 95: goto tr2983; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2700; + goto tr2983; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2700; + goto tr2983; } else - goto tr2700; + goto tr2983; goto tr78; -tr2700: +tr2983: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1106;goto st331;} } - goto st1106; -st1106: + { p--; {stack[top++] = 1251;goto st340;} } + goto st1251; +st1251: if ( ++p == pe ) - goto _test_eof1106; -case 1106: + goto _test_eof1251; +case 1251: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71067,38 +77553,38 @@ case 1106: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2701; - case 32: goto tr2701; - case 40: goto tr2702; - case 41: goto tr2703; - case 2058: goto tr2704; - case 2107: goto tr2705; + case 9: goto tr2984; + case 32: goto tr2984; + case 40: goto tr2985; + case 41: goto tr2986; + case 2058: goto tr2987; + case 2107: goto tr2988; } goto tr78; -tr2707: +tr2990: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1107; -tr2708: + goto st1252; +tr2991: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1107; -tr2710: + goto st1252; +tr2993: { s->line_counter++; } - goto st1107; -tr2854: + goto st1252; +tr3137: { s->buffer[s->buffer_length++] = 0; @@ -71108,15 +77594,15 @@ tr2854: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1107; goto _out;} + {p++; cs = 1252; goto _out;} } } } { s->line_counter++; } - goto st1107; -tr2701: + goto st1252; +tr2984: { if (s->to_lower) { dname_to_lower(s->dname); @@ -71125,8 +77611,8 @@ tr2701: { rdata_tail += s->dname_tmp_length; } - goto st1107; -tr2702: + goto st1252; +tr2985: { if (s->to_lower) { dname_to_lower(s->dname); @@ -71138,12 +77624,12 @@ tr2702: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1107; -tr2703: + goto st1252; +tr2986: { if (s->to_lower) { dname_to_lower(s->dname); @@ -71155,12 +77641,12 @@ tr2703: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1107; -tr2704: + goto st1252; +tr2987: { if (s->to_lower) { dname_to_lower(s->dname); @@ -71172,11 +77658,11 @@ tr2704: { s->line_counter++; } - goto st1107; -st1107: + goto st1252; +st1252: if ( ++p == pe ) - goto _test_eof1107; -case 1107: + goto _test_eof1252; +case 1252: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71190,35 +77676,35 @@ case 1107: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1107; - case 32: goto st1107; - case 40: goto tr2707; - case 41: goto tr2708; - case 42: goto tr2709; - case 92: goto tr2709; - case 95: goto tr2709; - case 2058: goto tr2710; - case 2107: goto tr2711; + case 9: goto st1252; + case 32: goto st1252; + case 40: goto tr2990; + case 41: goto tr2991; + case 42: goto tr2992; + case 92: goto tr2992; + case 95: goto tr2992; + case 2058: goto tr2993; + case 2107: goto tr2994; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2709; + goto tr2992; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2709; + goto tr2992; } else - goto tr2709; + goto tr2992; goto tr78; -tr2709: +tr2992: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1108;goto st331;} } - goto st1108; -st1108: + { p--; {stack[top++] = 1253;goto st340;} } + goto st1253; +st1253: if ( ++p == pe ) - goto _test_eof1108; -case 1108: + goto _test_eof1253; +case 1253: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71232,38 +77718,38 @@ case 1108: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2712; - case 32: goto tr2712; - case 40: goto tr2713; - case 41: goto tr2714; - case 2058: goto tr2715; - case 2107: goto tr2716; + case 9: goto tr2995; + case 32: goto tr2995; + case 40: goto tr2996; + case 41: goto tr2997; + case 2058: goto tr2998; + case 2107: goto tr2999; } goto tr78; -tr2719: +tr3002: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1109; -tr2720: + goto st1254; +tr3003: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1109; -tr2722: + goto st1254; +tr3005: { s->line_counter++; } - goto st1109; -tr2852: + goto st1254; +tr3135: { s->buffer[s->buffer_length++] = 0; @@ -71273,15 +77759,15 @@ tr2852: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1109; goto _out;} + {p++; cs = 1254; goto _out;} } } } { s->line_counter++; } - goto st1109; -tr2712: + goto st1254; +tr2995: { if (s->to_lower) { dname_to_lower(s->dname); @@ -71290,8 +77776,8 @@ tr2712: { rdata_tail += s->dname_tmp_length; } - goto st1109; -tr2713: + goto st1254; +tr2996: { if (s->to_lower) { dname_to_lower(s->dname); @@ -71303,12 +77789,12 @@ tr2713: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1109; -tr2714: + goto st1254; +tr2997: { if (s->to_lower) { dname_to_lower(s->dname); @@ -71320,12 +77806,12 @@ tr2714: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1109; -tr2715: + goto st1254; +tr2998: { if (s->to_lower) { dname_to_lower(s->dname); @@ -71337,11 +77823,11 @@ tr2715: { s->line_counter++; } - goto st1109; -st1109: + goto st1254; +st1254: if ( ++p == pe ) - goto _test_eof1109; -case 1109: + goto _test_eof1254; +case 1254: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71355,17 +77841,17 @@ case 1109: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1109; - case 32: goto st1109; - case 40: goto tr2719; - case 41: goto tr2720; - case 2058: goto tr2722; - case 2107: goto tr2723; + case 9: goto st1254; + case 32: goto st1254; + case 40: goto tr3002; + case 41: goto tr3003; + case 2058: goto tr3005; + case 2107: goto tr3006; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2721; - goto tr2717; -tr2721: + goto tr3004; + goto tr3000; +tr3004: { s->number64 = 0; } @@ -71380,11 +77866,11 @@ tr2721: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1110; -tr2727: + goto st1255; +tr3010: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71396,14 +77882,14 @@ tr2727: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1110; -st1110: + goto st1255; +st1255: if ( ++p == pe ) - goto _test_eof1110; -case 1110: + goto _test_eof1255; +case 1255: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71417,40 +77903,40 @@ case 1110: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2724; - case 32: goto tr2724; - case 40: goto tr2725; - case 41: goto tr2726; - case 2058: goto tr2728; - case 2107: goto tr2729; + case 9: goto tr3007; + case 32: goto tr3007; + case 40: goto tr3008; + case 41: goto tr3009; + case 2058: goto tr3011; + case 2107: goto tr3012; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2727; - goto tr2717; -tr2731: + goto tr3010; + goto tr3000; +tr3014: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1111; -tr2732: + goto st1256; +tr3015: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1111; -tr2734: + goto st1256; +tr3017: { s->line_counter++; } - goto st1111; -tr2850: + goto st1256; +tr3133: { s->buffer[s->buffer_length++] = 0; @@ -71460,15 +77946,15 @@ tr2850: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1111; goto _out;} + {p++; cs = 1256; goto _out;} } } } { s->line_counter++; } - goto st1111; -tr2724: + goto st1256; +tr3007: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71476,11 +77962,11 @@ tr2724: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1111; -tr2725: + goto st1256; +tr3008: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71488,18 +77974,18 @@ tr2725: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1111; -tr2726: + goto st1256; +tr3009: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71507,18 +77993,18 @@ tr2726: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1111; -tr2728: + goto st1256; +tr3011: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71526,17 +78012,17 @@ tr2728: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1111; -st1111: + goto st1256; +st1256: if ( ++p == pe ) - goto _test_eof1111; -case 1111: + goto _test_eof1256; +case 1256: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71550,17 +78036,17 @@ case 1111: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1111; - case 32: goto st1111; - case 40: goto tr2731; - case 41: goto tr2732; - case 2058: goto tr2734; - case 2107: goto tr2735; + case 9: goto st1256; + case 32: goto st1256; + case 40: goto tr3014; + case 41: goto tr3015; + case 2058: goto tr3017; + case 2107: goto tr3018; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2733; - goto tr2717; -tr2733: + goto tr3016; + goto tr3000; +tr3016: { s->number64 = 0; } @@ -71575,11 +78061,11 @@ tr2733: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1112; -tr2740: + goto st1257; +tr3023: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71591,14 +78077,14 @@ tr2740: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1112; -st1112: + goto st1257; +st1257: if ( ++p == pe ) - goto _test_eof1112; -case 1112: + goto _test_eof1257; +case 1257: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71612,50 +78098,50 @@ case 1112: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2737; - case 32: goto tr2737; - case 40: goto tr2738; - case 41: goto tr2739; - case 68: goto tr2741; - case 72: goto tr2742; - case 77: goto tr2743; - case 83: goto st1131; - case 87: goto tr2745; - case 100: goto tr2741; - case 104: goto tr2742; - case 109: goto tr2743; - case 115: goto st1131; - case 119: goto tr2745; - case 2058: goto tr2746; - case 2107: goto tr2747; + case 9: goto tr3020; + case 32: goto tr3020; + case 40: goto tr3021; + case 41: goto tr3022; + case 68: goto tr3024; + case 72: goto tr3025; + case 77: goto tr3026; + case 83: goto st1276; + case 87: goto tr3028; + case 100: goto tr3024; + case 104: goto tr3025; + case 109: goto tr3026; + case 115: goto st1276; + case 119: goto tr3028; + case 2058: goto tr3029; + case 2107: goto tr3030; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2740; - goto tr2736; -tr2749: + goto tr3023; + goto tr3019; +tr3032: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1113; -tr2750: + goto st1258; +tr3033: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1113; -tr2752: + goto st1258; +tr3035: { s->line_counter++; } - goto st1113; -tr2835: + goto st1258; +tr3118: { s->buffer[s->buffer_length++] = 0; @@ -71665,15 +78151,15 @@ tr2835: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1113; goto _out;} + {p++; cs = 1258; goto _out;} } } } { s->line_counter++; } - goto st1113; -tr2737: + goto st1258; +tr3020: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71681,11 +78167,11 @@ tr2737: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1113; -tr2738: + goto st1258; +tr3021: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71693,18 +78179,18 @@ tr2738: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1113; -tr2739: + goto st1258; +tr3022: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71712,18 +78198,18 @@ tr2739: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1113; -tr2746: + goto st1258; +tr3029: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71731,20 +78217,20 @@ tr2746: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1113; -tr2843: + goto st1258; +tr3126: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -71754,17 +78240,17 @@ tr2843: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1113; -tr2844: + goto st1258; +tr3127: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -71774,24 +78260,24 @@ tr2844: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1113; -tr2845: + goto st1258; +tr3128: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -71801,24 +78287,24 @@ tr2845: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1113; -tr2847: + goto st1258; +tr3130: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -71828,17 +78314,17 @@ tr2847: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1113; -st1113: + goto st1258; +st1258: if ( ++p == pe ) - goto _test_eof1113; -case 1113: + goto _test_eof1258; +case 1258: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71852,17 +78338,17 @@ case 1113: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1113; - case 32: goto st1113; - case 40: goto tr2749; - case 41: goto tr2750; - case 2058: goto tr2752; - case 2107: goto tr2753; + case 9: goto st1258; + case 32: goto st1258; + case 40: goto tr3032; + case 41: goto tr3033; + case 2058: goto tr3035; + case 2107: goto tr3036; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2751; - goto tr2717; -tr2751: + goto tr3034; + goto tr3000; +tr3034: { s->number64 = 0; } @@ -71877,11 +78363,11 @@ tr2751: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1114; -tr2757: + goto st1259; +tr3040: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -71893,14 +78379,14 @@ tr2757: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1114; -st1114: + goto st1259; +st1259: if ( ++p == pe ) - goto _test_eof1114; -case 1114: + goto _test_eof1259; +case 1259: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -71914,50 +78400,50 @@ case 1114: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2754; - case 32: goto tr2754; - case 40: goto tr2755; - case 41: goto tr2756; - case 68: goto tr2758; - case 72: goto tr2759; - case 77: goto tr2760; - case 83: goto st1127; - case 87: goto tr2762; - case 100: goto tr2758; - case 104: goto tr2759; - case 109: goto tr2760; - case 115: goto st1127; - case 119: goto tr2762; - case 2058: goto tr2763; - case 2107: goto tr2764; + case 9: goto tr3037; + case 32: goto tr3037; + case 40: goto tr3038; + case 41: goto tr3039; + case 68: goto tr3041; + case 72: goto tr3042; + case 77: goto tr3043; + case 83: goto st1272; + case 87: goto tr3045; + case 100: goto tr3041; + case 104: goto tr3042; + case 109: goto tr3043; + case 115: goto st1272; + case 119: goto tr3045; + case 2058: goto tr3046; + case 2107: goto tr3047; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2757; - goto tr2736; -tr2766: + goto tr3040; + goto tr3019; +tr3049: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1115; -tr2767: + goto st1260; +tr3050: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1115; -tr2769: + goto st1260; +tr3052: { s->line_counter++; } - goto st1115; -tr2820: + goto st1260; +tr3103: { s->buffer[s->buffer_length++] = 0; @@ -71967,15 +78453,15 @@ tr2820: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1115; goto _out;} + {p++; cs = 1260; goto _out;} } } } { s->line_counter++; } - goto st1115; -tr2754: + goto st1260; +tr3037: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71983,11 +78469,11 @@ tr2754: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1115; -tr2755: + goto st1260; +tr3038: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -71995,18 +78481,18 @@ tr2755: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1115; -tr2756: + goto st1260; +tr3039: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -72014,18 +78500,18 @@ tr2756: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1115; -tr2763: + goto st1260; +tr3046: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -72033,20 +78519,20 @@ tr2763: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1115; -tr2828: + goto st1260; +tr3111: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72056,17 +78542,17 @@ tr2828: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1115; -tr2829: + goto st1260; +tr3112: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72076,24 +78562,24 @@ tr2829: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1115; -tr2830: + goto st1260; +tr3113: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72103,24 +78589,24 @@ tr2830: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1115; -tr2832: + goto st1260; +tr3115: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72130,17 +78616,17 @@ tr2832: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1115; -st1115: + goto st1260; +st1260: if ( ++p == pe ) - goto _test_eof1115; -case 1115: + goto _test_eof1260; +case 1260: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72154,17 +78640,17 @@ case 1115: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1115; - case 32: goto st1115; - case 40: goto tr2766; - case 41: goto tr2767; - case 2058: goto tr2769; - case 2107: goto tr2770; + case 9: goto st1260; + case 32: goto st1260; + case 40: goto tr3049; + case 41: goto tr3050; + case 2058: goto tr3052; + case 2107: goto tr3053; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2768; - goto tr2717; -tr2768: + goto tr3051; + goto tr3000; +tr3051: { s->number64 = 0; } @@ -72179,11 +78665,11 @@ tr2768: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1116; -tr2774: + goto st1261; +tr3057: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -72195,14 +78681,14 @@ tr2774: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1116; -st1116: + goto st1261; +st1261: if ( ++p == pe ) - goto _test_eof1116; -case 1116: + goto _test_eof1261; +case 1261: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72216,50 +78702,50 @@ case 1116: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2771; - case 32: goto tr2771; - case 40: goto tr2772; - case 41: goto tr2773; - case 68: goto tr2775; - case 72: goto tr2776; - case 77: goto tr2777; - case 83: goto st1123; - case 87: goto tr2779; - case 100: goto tr2775; - case 104: goto tr2776; - case 109: goto tr2777; - case 115: goto st1123; - case 119: goto tr2779; - case 2058: goto tr2780; - case 2107: goto tr2781; + case 9: goto tr3054; + case 32: goto tr3054; + case 40: goto tr3055; + case 41: goto tr3056; + case 68: goto tr3058; + case 72: goto tr3059; + case 77: goto tr3060; + case 83: goto st1268; + case 87: goto tr3062; + case 100: goto tr3058; + case 104: goto tr3059; + case 109: goto tr3060; + case 115: goto st1268; + case 119: goto tr3062; + case 2058: goto tr3063; + case 2107: goto tr3064; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2774; - goto tr2736; -tr2783: + goto tr3057; + goto tr3019; +tr3066: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1117; -tr2784: + goto st1262; +tr3067: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1117; -tr2786: + goto st1262; +tr3069: { s->line_counter++; } - goto st1117; -tr2805: + goto st1262; +tr3088: { s->buffer[s->buffer_length++] = 0; @@ -72269,15 +78755,15 @@ tr2805: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1117; goto _out;} + {p++; cs = 1262; goto _out;} } } } { s->line_counter++; } - goto st1117; -tr2771: + goto st1262; +tr3054: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -72285,11 +78771,11 @@ tr2771: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1117; -tr2772: + goto st1262; +tr3055: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -72297,18 +78783,18 @@ tr2772: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1117; -tr2773: + goto st1262; +tr3056: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -72316,18 +78802,18 @@ tr2773: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1117; -tr2780: + goto st1262; +tr3063: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -72335,20 +78821,20 @@ tr2780: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1117; -tr2813: + goto st1262; +tr3096: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72358,17 +78844,17 @@ tr2813: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1117; -tr2814: + goto st1262; +tr3097: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72378,24 +78864,24 @@ tr2814: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1117; -tr2815: + goto st1262; +tr3098: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72405,24 +78891,24 @@ tr2815: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1117; -tr2817: + goto st1262; +tr3100: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72432,17 +78918,17 @@ tr2817: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1117; -st1117: + goto st1262; +st1262: if ( ++p == pe ) - goto _test_eof1117; -case 1117: + goto _test_eof1262; +case 1262: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72456,17 +78942,17 @@ case 1117: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1117; - case 32: goto st1117; - case 40: goto tr2783; - case 41: goto tr2784; - case 2058: goto tr2786; - case 2107: goto tr2787; + case 9: goto st1262; + case 32: goto st1262; + case 40: goto tr3066; + case 41: goto tr3067; + case 2058: goto tr3069; + case 2107: goto tr3070; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2785; - goto tr2717; -tr2785: + goto tr3068; + goto tr3000; +tr3068: { s->number64 = 0; } @@ -72481,11 +78967,11 @@ tr2785: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1118; -tr2789: + goto st1263; +tr3072: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -72497,38 +78983,38 @@ tr2789: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1118; -st1118: + goto st1263; +st1263: if ( ++p == pe ) - goto _test_eof1118; -case 1118: + goto _test_eof1263; +case 1263: switch( (*p) ) { - case 32: goto tr2788; - case 59: goto tr2788; - case 68: goto tr2790; - case 72: goto tr2791; - case 77: goto tr2792; - case 83: goto st1119; - case 87: goto tr2794; - case 100: goto tr2790; - case 104: goto tr2791; - case 109: goto tr2792; - case 115: goto st1119; - case 119: goto tr2794; + case 32: goto tr3071; + case 59: goto tr3071; + case 68: goto tr3073; + case 72: goto tr3074; + case 77: goto tr3075; + case 83: goto st1264; + case 87: goto tr3077; + case 100: goto tr3073; + case 104: goto tr3074; + case 109: goto tr3075; + case 115: goto st1264; + case 119: goto tr3077; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2788; + goto tr3071; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2789; + goto tr3072; } else - goto tr2788; - goto tr2736; -tr2788: + goto tr3071; + goto tr3019; +tr3071: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -72536,20 +79022,20 @@ tr2788: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1547; -tr2802: + goto st1700; +tr3085: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72559,72 +79045,72 @@ tr2802: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1547; -st1547: + goto st1700; +st1700: if ( ++p == pe ) - goto _test_eof1547; -case 1547: + goto _test_eof1700; +case 1700: goto st0; -tr2790: +tr3073: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1119; -tr2791: + goto st1264; +tr3074: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1119; -tr2792: + goto st1264; +tr3075: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1119; -tr2794: + goto st1264; +tr3077: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1119; -st1119: + goto st1264; +st1264: if ( ++p == pe ) - goto _test_eof1119; -case 1119: + goto _test_eof1264; +case 1264: switch( (*p) ) { - case 32: goto tr2788; - case 59: goto tr2788; + case 32: goto tr3071; + case 59: goto tr3071; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2788; + goto tr3071; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2795; + goto tr3078; } else - goto tr2788; - goto tr2736; -tr2796: + goto tr3071; + goto tr3019; +tr3079: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -72636,11 +79122,11 @@ tr2796: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1120; -tr2795: + goto st1265; +tr3078: { s->number64_tmp = s->number64; } @@ -72658,17 +79144,17 @@ tr2795: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1120; -tr2803: + goto st1265; +tr3086: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72688,95 +79174,95 @@ tr2803: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1120; -st1120: + goto st1265; +st1265: if ( ++p == pe ) - goto _test_eof1120; -case 1120: + goto _test_eof1265; +case 1265: switch( (*p) ) { - case 68: goto tr2797; - case 72: goto tr2798; - case 77: goto tr2799; - case 83: goto st1121; - case 87: goto tr2801; - case 100: goto tr2797; - case 104: goto tr2798; - case 109: goto tr2799; - case 115: goto st1121; - case 119: goto tr2801; + case 68: goto tr3080; + case 72: goto tr3081; + case 77: goto tr3082; + case 83: goto st1266; + case 87: goto tr3084; + case 100: goto tr3080; + case 104: goto tr3081; + case 109: goto tr3082; + case 115: goto st1266; + case 119: goto tr3084; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2796; - goto tr2736; -tr2797: + goto tr3079; + goto tr3019; +tr3080: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1121; -tr2798: + goto st1266; +tr3081: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1121; -tr2799: + goto st1266; +tr3082: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1121; -tr2801: + goto st1266; +tr3084: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1121; -st1121: + goto st1266; +st1266: if ( ++p == pe ) - goto _test_eof1121; -case 1121: + goto _test_eof1266; +case 1266: switch( (*p) ) { - case 32: goto tr2802; - case 59: goto tr2802; + case 32: goto tr3085; + case 59: goto tr3085; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr2802; + goto tr3085; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2803; + goto tr3086; } else - goto tr2802; - goto tr2736; -tr2787: + goto tr3085; + goto tr3019; +tr3070: { s->buffer_length = 0; } - goto st1122; -tr2804: + goto st1267; +tr3087: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1122; -tr2781: + goto st1267; +tr3064: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -72784,20 +79270,20 @@ tr2781: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1122; -tr2818: + goto st1267; +tr3101: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72807,17 +79293,17 @@ tr2818: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1122; -st1122: + goto st1267; +st1267: if ( ++p == pe ) - goto _test_eof1122; -case 1122: + goto _test_eof1267; +case 1267: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -72837,50 +79323,50 @@ case 1122: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2805; + goto tr3088; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2804; + goto tr3087; goto tr78; -tr2775: +tr3058: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1123; -tr2776: + goto st1268; +tr3059: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1123; -tr2777: + goto st1268; +tr3060: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1123; -tr2779: + goto st1268; +tr3062: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1123; -st1123: + goto st1268; +st1268: if ( ++p == pe ) - goto _test_eof1123; -case 1123: + goto _test_eof1268; +case 1268: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -72894,17 +79380,17 @@ case 1123: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2771; - case 32: goto tr2771; - case 40: goto tr2772; - case 41: goto tr2773; - case 2058: goto tr2780; - case 2107: goto tr2781; + case 9: goto tr3054; + case 32: goto tr3054; + case 40: goto tr3055; + case 41: goto tr3056; + case 2058: goto tr3063; + case 2107: goto tr3064; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2806; - goto tr2736; -tr2807: + goto tr3089; + goto tr3019; +tr3090: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -72916,11 +79402,11 @@ tr2807: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1124; -tr2806: + goto st1269; +tr3089: { s->number64_tmp = s->number64; } @@ -72938,17 +79424,17 @@ tr2806: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1124; -tr2816: + goto st1269; +tr3099: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -72968,69 +79454,69 @@ tr2816: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1124; -st1124: + goto st1269; +st1269: if ( ++p == pe ) - goto _test_eof1124; -case 1124: + goto _test_eof1269; +case 1269: switch( (*p) ) { - case 68: goto tr2808; - case 72: goto tr2809; - case 77: goto tr2810; - case 83: goto st1125; - case 87: goto tr2812; - case 100: goto tr2808; - case 104: goto tr2809; - case 109: goto tr2810; - case 115: goto st1125; - case 119: goto tr2812; + case 68: goto tr3091; + case 72: goto tr3092; + case 77: goto tr3093; + case 83: goto st1270; + case 87: goto tr3095; + case 100: goto tr3091; + case 104: goto tr3092; + case 109: goto tr3093; + case 115: goto st1270; + case 119: goto tr3095; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2807; - goto tr2736; -tr2808: + goto tr3090; + goto tr3019; +tr3091: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1125; -tr2809: + goto st1270; +tr3092: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1125; -tr2810: + goto st1270; +tr3093: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1125; -tr2812: + goto st1270; +tr3095: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1125; -st1125: + goto st1270; +st1270: if ( ++p == pe ) - goto _test_eof1125; -case 1125: + goto _test_eof1270; +case 1270: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73044,29 +79530,29 @@ case 1125: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2813; - case 32: goto tr2813; - case 40: goto tr2814; - case 41: goto tr2815; - case 2058: goto tr2817; - case 2107: goto tr2818; + case 9: goto tr3096; + case 32: goto tr3096; + case 40: goto tr3097; + case 41: goto tr3098; + case 2058: goto tr3100; + case 2107: goto tr3101; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2816; - goto tr2736; -tr2770: + goto tr3099; + goto tr3019; +tr3053: { s->buffer_length = 0; } - goto st1126; -tr2819: + goto st1271; +tr3102: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1126; -tr2764: + goto st1271; +tr3047: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -73074,20 +79560,20 @@ tr2764: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1126; -tr2833: + goto st1271; +tr3116: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -73097,17 +79583,17 @@ tr2833: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1126; -st1126: + goto st1271; +st1271: if ( ++p == pe ) - goto _test_eof1126; -case 1126: + goto _test_eof1271; +case 1271: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -73127,50 +79613,50 @@ case 1126: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2820; + goto tr3103; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2819; + goto tr3102; goto tr78; -tr2758: +tr3041: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1127; -tr2759: + goto st1272; +tr3042: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1127; -tr2760: + goto st1272; +tr3043: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1127; -tr2762: + goto st1272; +tr3045: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1127; -st1127: + goto st1272; +st1272: if ( ++p == pe ) - goto _test_eof1127; -case 1127: + goto _test_eof1272; +case 1272: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73184,17 +79670,17 @@ case 1127: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2754; - case 32: goto tr2754; - case 40: goto tr2755; - case 41: goto tr2756; - case 2058: goto tr2763; - case 2107: goto tr2764; + case 9: goto tr3037; + case 32: goto tr3037; + case 40: goto tr3038; + case 41: goto tr3039; + case 2058: goto tr3046; + case 2107: goto tr3047; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2821; - goto tr2736; -tr2822: + goto tr3104; + goto tr3019; +tr3105: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -73206,11 +79692,11 @@ tr2822: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1128; -tr2821: + goto st1273; +tr3104: { s->number64_tmp = s->number64; } @@ -73228,17 +79714,17 @@ tr2821: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1128; -tr2831: + goto st1273; +tr3114: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -73258,69 +79744,69 @@ tr2831: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1128; -st1128: + goto st1273; +st1273: if ( ++p == pe ) - goto _test_eof1128; -case 1128: + goto _test_eof1273; +case 1273: switch( (*p) ) { - case 68: goto tr2823; - case 72: goto tr2824; - case 77: goto tr2825; - case 83: goto st1129; - case 87: goto tr2827; - case 100: goto tr2823; - case 104: goto tr2824; - case 109: goto tr2825; - case 115: goto st1129; - case 119: goto tr2827; + case 68: goto tr3106; + case 72: goto tr3107; + case 77: goto tr3108; + case 83: goto st1274; + case 87: goto tr3110; + case 100: goto tr3106; + case 104: goto tr3107; + case 109: goto tr3108; + case 115: goto st1274; + case 119: goto tr3110; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2822; - goto tr2736; -tr2823: + goto tr3105; + goto tr3019; +tr3106: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1129; -tr2824: + goto st1274; +tr3107: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1129; -tr2825: + goto st1274; +tr3108: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1129; -tr2827: + goto st1274; +tr3110: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1129; -st1129: + goto st1274; +st1274: if ( ++p == pe ) - goto _test_eof1129; -case 1129: + goto _test_eof1274; +case 1274: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73334,29 +79820,29 @@ case 1129: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2828; - case 32: goto tr2828; - case 40: goto tr2829; - case 41: goto tr2830; - case 2058: goto tr2832; - case 2107: goto tr2833; + case 9: goto tr3111; + case 32: goto tr3111; + case 40: goto tr3112; + case 41: goto tr3113; + case 2058: goto tr3115; + case 2107: goto tr3116; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2831; - goto tr2736; -tr2753: + goto tr3114; + goto tr3019; +tr3036: { s->buffer_length = 0; } - goto st1130; -tr2834: + goto st1275; +tr3117: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1130; -tr2747: + goto st1275; +tr3030: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -73364,20 +79850,20 @@ tr2747: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1130; -tr2848: + goto st1275; +tr3131: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -73387,17 +79873,17 @@ tr2848: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1130; -st1130: + goto st1275; +st1275: if ( ++p == pe ) - goto _test_eof1130; -case 1130: + goto _test_eof1275; +case 1275: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -73417,50 +79903,50 @@ case 1130: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2835; + goto tr3118; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2834; + goto tr3117; goto tr78; -tr2741: +tr3024: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1131; -tr2742: + goto st1276; +tr3025: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1131; -tr2743: + goto st1276; +tr3026: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1131; -tr2745: + goto st1276; +tr3028: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1131; -st1131: + goto st1276; +st1276: if ( ++p == pe ) - goto _test_eof1131; -case 1131: + goto _test_eof1276; +case 1276: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73474,17 +79960,17 @@ case 1131: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2737; - case 32: goto tr2737; - case 40: goto tr2738; - case 41: goto tr2739; - case 2058: goto tr2746; - case 2107: goto tr2747; + case 9: goto tr3020; + case 32: goto tr3020; + case 40: goto tr3021; + case 41: goto tr3022; + case 2058: goto tr3029; + case 2107: goto tr3030; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2836; - goto tr2736; -tr2837: + goto tr3119; + goto tr3019; +tr3120: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -73496,11 +79982,11 @@ tr2837: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1132; -tr2836: + goto st1277; +tr3119: { s->number64_tmp = s->number64; } @@ -73518,17 +80004,17 @@ tr2836: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1132; -tr2846: + goto st1277; +tr3129: { if (s->number64 + s->number64_tmp < UINT32_MAX) { s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -73548,69 +80034,69 @@ tr2846: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1132; -st1132: + goto st1277; +st1277: if ( ++p == pe ) - goto _test_eof1132; -case 1132: + goto _test_eof1277; +case 1277: switch( (*p) ) { - case 68: goto tr2838; - case 72: goto tr2839; - case 77: goto tr2840; - case 83: goto st1133; - case 87: goto tr2842; - case 100: goto tr2838; - case 104: goto tr2839; - case 109: goto tr2840; - case 115: goto st1133; - case 119: goto tr2842; + case 68: goto tr3121; + case 72: goto tr3122; + case 77: goto tr3123; + case 83: goto st1278; + case 87: goto tr3125; + case 100: goto tr3121; + case 104: goto tr3122; + case 109: goto tr3123; + case 115: goto st1278; + case 119: goto tr3125; } if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2837; - goto tr2736; -tr2838: + goto tr3120; + goto tr3019; +tr3121: { if (s->number64 <= (UINT32_MAX / 86400)) { s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1133; -tr2839: + goto st1278; +tr3122: { if (s->number64 <= (UINT32_MAX / 3600)) { s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1133; -tr2840: + goto st1278; +tr3123: { if (s->number64 <= (UINT32_MAX / 60)) { s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1133; -tr2842: + goto st1278; +tr3125: { if (s->number64 <= (UINT32_MAX / 604800)) { s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1133; -st1133: + goto st1278; +st1278: if ( ++p == pe ) - goto _test_eof1133; -case 1133: + goto _test_eof1278; +case 1278: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73624,29 +80110,29 @@ case 1133: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2843; - case 32: goto tr2843; - case 40: goto tr2844; - case 41: goto tr2845; - case 2058: goto tr2847; - case 2107: goto tr2848; + case 9: goto tr3126; + case 32: goto tr3126; + case 40: goto tr3127; + case 41: goto tr3128; + case 2058: goto tr3130; + case 2107: goto tr3131; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2846; - goto tr2736; -tr2735: + goto tr3129; + goto tr3019; +tr3018: { s->buffer_length = 0; } - goto st1134; -tr2849: + goto st1279; +tr3132: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1134; -tr2729: + goto st1279; +tr3012: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -73654,17 +80140,17 @@ tr2729: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1134; -st1134: + goto st1279; +st1279: if ( ++p == pe ) - goto _test_eof1134; -case 1134: + goto _test_eof1279; +case 1279: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -73684,23 +80170,23 @@ case 1134: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2850; + goto tr3133; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2849; + goto tr3132; goto tr78; -tr2723: +tr3006: { s->buffer_length = 0; } - goto st1135; -tr2851: + goto st1280; +tr3134: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1135; -tr2716: + goto st1280; +tr2999: { if (s->to_lower) { dname_to_lower(s->dname); @@ -73712,11 +80198,11 @@ tr2716: { s->buffer_length = 0; } - goto st1135; -st1135: + goto st1280; +st1280: if ( ++p == pe ) - goto _test_eof1135; -case 1135: + goto _test_eof1280; +case 1280: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -73736,23 +80222,23 @@ case 1135: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2852; + goto tr3135; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2851; + goto tr3134; goto tr78; -tr2711: +tr2994: { s->buffer_length = 0; } - goto st1136; -tr2853: + goto st1281; +tr3136: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1136; -tr2705: + goto st1281; +tr2988: { if (s->to_lower) { dname_to_lower(s->dname); @@ -73764,11 +80250,11 @@ tr2705: { s->buffer_length = 0; } - goto st1136; -st1136: + goto st1281; +st1281: if ( ++p == pe ) - goto _test_eof1136; -case 1136: + goto _test_eof1281; +case 1281: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -73788,14 +80274,14 @@ case 1136: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2854; + goto tr3137; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2853; + goto tr3136; goto tr78; -st1137: +st1282: if ( ++p == pe ) - goto _test_eof1137; -case 1137: + goto _test_eof1282; +case 1282: switch( (*p) ) { case 32: goto tr78; case 59: goto tr78; @@ -73805,22 +80291,22 @@ case 1137: goto tr78; } else if ( (*p) >= 9 ) goto tr78; - goto tr2855; -tr2855: + goto tr3138; +tr3138: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - { p--; {stack[top++] = 1138;goto st340;} } - goto st1138; -st1138: + { p--; {stack[top++] = 1283;goto st349;} } + goto st1283; +st1283: if ( ++p == pe ) - goto _test_eof1138; -case 1138: + goto _test_eof1283; +case 1283: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73834,38 +80320,38 @@ case 1138: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2856; - case 32: goto tr2856; - case 40: goto tr2857; - case 41: goto tr2858; - case 2058: goto tr2859; - case 2107: goto tr2860; + case 9: goto tr3139; + case 32: goto tr3139; + case 40: goto tr3140; + case 41: goto tr3141; + case 2058: goto tr3142; + case 2107: goto tr3143; } goto tr78; -tr2863: +tr3146: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1139; -tr2864: + goto st1284; +tr3147: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1139; -tr2865: + goto st1284; +tr3148: { s->line_counter++; } - goto st1139; -tr2869: + goto st1284; +tr3152: { s->buffer[s->buffer_length++] = 0; @@ -73875,95 +80361,95 @@ tr2869: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1139; goto _out;} + {p++; cs = 1284; goto _out;} } } } { s->line_counter++; } - goto st1139; -tr2856: + goto st1284; +tr3139: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1139; -tr2857: + goto st1284; +tr3140: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1139; -tr2858: + goto st1284; +tr3141: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1139; -tr2859: + goto st1284; +tr3142: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1139; -st1139: + goto st1284; +st1284: if ( ++p == pe ) - goto _test_eof1139; -case 1139: + goto _test_eof1284; +case 1284: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -73977,104 +80463,104 @@ case 1139: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1139; - case 32: goto st1139; - case 40: goto tr2863; - case 41: goto tr2864; - case 2058: goto tr2865; - case 2107: goto tr2866; + case 9: goto st1284; + case 32: goto st1284; + case 40: goto tr3146; + case 41: goto tr3147; + case 2058: goto tr3148; + case 2107: goto tr3149; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2861; + goto tr3144; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2861; + goto tr3144; } else - goto tr2861; + goto tr3144; goto tr78; -tr2861: +tr3144: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - { p--; {stack[top++] = 1140;goto st340;} } - goto st1140; -st1140: + { p--; {stack[top++] = 1285;goto st349;} } + goto st1285; +st1285: if ( ++p == pe ) - goto _test_eof1140; -case 1140: + goto _test_eof1285; +case 1285: switch( (*p) ) { - case 32: goto tr2867; - case 59: goto tr2867; + case 32: goto tr3150; + case 59: goto tr3150; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2867; + goto tr3150; } else if ( (*p) >= 9 ) - goto tr2867; + goto tr3150; goto tr78; -tr2867: +tr3150: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1548; -st1548: + goto st1701; +st1701: if ( ++p == pe ) - goto _test_eof1548; -case 1548: + goto _test_eof1701; +case 1701: goto st0; -tr2866: +tr3149: { s->buffer_length = 0; } - goto st1141; -tr2868: + goto st1286; +tr3151: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1141; -tr2860: + goto st1286; +tr3143: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1141; -st1141: + goto st1286; +st1286: if ( ++p == pe ) - goto _test_eof1141; -case 1141: + goto _test_eof1286; +case 1286: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -74094,38 +80580,38 @@ case 1141: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2869; + goto tr3152; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2868; + goto tr3151; goto tr78; -st1142: +st1287: if ( ++p == pe ) - goto _test_eof1142; -case 1142: + goto _test_eof1287; +case 1287: switch( (*p) ) { - case 42: goto tr2870; - case 92: goto tr2870; - case 95: goto tr2870; + case 42: goto tr3153; + case 92: goto tr3153; + case 95: goto tr3153; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr2870; + goto tr3153; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr2870; + goto tr3153; } else - goto tr2870; + goto tr3153; goto tr78; -tr2870: +tr3153: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1143;goto st331;} } - goto st1143; -st1143: + { p--; {stack[top++] = 1288;goto st340;} } + goto st1288; +st1288: if ( ++p == pe ) - goto _test_eof1143; -case 1143: + goto _test_eof1288; +case 1288: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74139,38 +80625,38 @@ case 1143: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2871; - case 32: goto tr2871; - case 40: goto tr2872; - case 41: goto tr2873; - case 2058: goto tr2874; - case 2107: goto tr2875; + case 9: goto tr3154; + case 32: goto tr3154; + case 40: goto tr3155; + case 41: goto tr3156; + case 2058: goto tr3157; + case 2107: goto tr3158; } goto tr78; -tr2877: +tr3160: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1144; -tr2878: + goto st1289; +tr3161: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1144; -tr2880: + goto st1289; +tr3163: { s->line_counter++; } - goto st1144; -tr2884: + goto st1289; +tr3167: { s->buffer[s->buffer_length++] = 0; @@ -74180,15 +80666,15 @@ tr2884: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1144; goto _out;} + {p++; cs = 1289; goto _out;} } } } { s->line_counter++; } - goto st1144; -tr2871: + goto st1289; +tr3154: { if (s->to_lower) { dname_to_lower(s->dname); @@ -74197,8 +80683,8 @@ tr2871: { rdata_tail += s->dname_tmp_length; } - goto st1144; -tr2872: + goto st1289; +tr3155: { if (s->to_lower) { dname_to_lower(s->dname); @@ -74210,12 +80696,12 @@ tr2872: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1144; -tr2873: + goto st1289; +tr3156: { if (s->to_lower) { dname_to_lower(s->dname); @@ -74227,12 +80713,12 @@ tr2873: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1144; -tr2874: + goto st1289; +tr3157: { if (s->to_lower) { dname_to_lower(s->dname); @@ -74244,11 +80730,11 @@ tr2874: { s->line_counter++; } - goto st1144; -st1144: + goto st1289; +st1289: if ( ++p == pe ) - goto _test_eof1144; -case 1144: + goto _test_eof1289; +case 1289: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74262,46 +80748,46 @@ case 1144: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1144; - case 32: goto st1144; - case 40: goto tr2877; - case 41: goto tr2878; - case 42: goto tr2879; - case 92: goto tr2879; - case 95: goto tr2879; - case 2058: goto tr2880; - case 2107: goto tr2881; + case 9: goto st1289; + case 32: goto st1289; + case 40: goto tr3160; + case 41: goto tr3161; + case 42: goto tr3162; + case 92: goto tr3162; + case 95: goto tr3162; + case 2058: goto tr3163; + case 2107: goto tr3164; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2879; + goto tr3162; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2879; + goto tr3162; } else - goto tr2879; + goto tr3162; goto tr78; -tr2879: +tr3162: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1145;goto st331;} } - goto st1145; -st1145: + { p--; {stack[top++] = 1290;goto st340;} } + goto st1290; +st1290: if ( ++p == pe ) - goto _test_eof1145; -case 1145: + goto _test_eof1290; +case 1290: switch( (*p) ) { - case 32: goto tr2882; - case 59: goto tr2882; + case 32: goto tr3165; + case 59: goto tr3165; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2882; + goto tr3165; } else if ( (*p) >= 9 ) - goto tr2882; + goto tr3165; goto tr78; -tr2882: +tr3165: { if (s->to_lower) { dname_to_lower(s->dname); @@ -74313,25 +80799,25 @@ tr2882: { p--; {cs = stack[--top];goto _again;} } - goto st1549; -st1549: + goto st1702; +st1702: if ( ++p == pe ) - goto _test_eof1549; -case 1549: + goto _test_eof1702; +case 1702: goto st0; -tr2881: +tr3164: { s->buffer_length = 0; } - goto st1146; -tr2883: + goto st1291; +tr3166: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1146; -tr2875: + goto st1291; +tr3158: { if (s->to_lower) { dname_to_lower(s->dname); @@ -74343,11 +80829,11 @@ tr2875: { s->buffer_length = 0; } - goto st1146; -st1146: + goto st1291; +st1291: if ( ++p == pe ) - goto _test_eof1146; -case 1146: + goto _test_eof1291; +case 1291: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -74367,18 +80853,18 @@ case 1146: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2884; + goto tr3167; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2883; + goto tr3166; goto tr78; -st1147: +st1292: if ( ++p == pe ) - goto _test_eof1147; -case 1147: + goto _test_eof1292; +case 1292: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2885; - goto tr2717; -tr2885: + goto tr3168; + goto tr3000; +tr3168: { s->number64 = 0; } @@ -74393,11 +80879,11 @@ tr2885: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1148; -tr2889: + goto st1293; +tr3172: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -74409,14 +80895,14 @@ tr2889: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1148; -st1148: + goto st1293; +st1293: if ( ++p == pe ) - goto _test_eof1148; -case 1148: + goto _test_eof1293; +case 1293: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74430,40 +80916,40 @@ case 1148: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2886; - case 32: goto tr2886; - case 40: goto tr2887; - case 41: goto tr2888; - case 2058: goto tr2890; - case 2107: goto tr2891; + case 9: goto tr3169; + case 32: goto tr3169; + case 40: goto tr3170; + case 41: goto tr3171; + case 2058: goto tr3173; + case 2107: goto tr3174; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2889; - goto tr2717; -tr2893: + goto tr3172; + goto tr3000; +tr3176: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1149; -tr2894: + goto st1294; +tr3177: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1149; -tr2896: + goto st1294; +tr3179: { s->line_counter++; } - goto st1149; -tr2900: + goto st1294; +tr3183: { s->buffer[s->buffer_length++] = 0; @@ -74473,15 +80959,15 @@ tr2900: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1149; goto _out;} + {p++; cs = 1294; goto _out;} } } } { s->line_counter++; } - goto st1149; -tr2886: + goto st1294; +tr3169: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -74489,11 +80975,11 @@ tr2886: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1149; -tr2887: + goto st1294; +tr3170: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -74501,18 +80987,18 @@ tr2887: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1149; -tr2888: + goto st1294; +tr3171: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -74520,18 +81006,18 @@ tr2888: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1149; -tr2890: + goto st1294; +tr3173: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -74539,17 +81025,17 @@ tr2890: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1149; -st1149: + goto st1294; +st1294: if ( ++p == pe ) - goto _test_eof1149; -case 1149: + goto _test_eof1294; +case 1294: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74563,46 +81049,46 @@ case 1149: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1149; - case 32: goto st1149; - case 40: goto tr2893; - case 41: goto tr2894; - case 42: goto tr2895; - case 92: goto tr2895; - case 95: goto tr2895; - case 2058: goto tr2896; - case 2107: goto tr2897; + case 9: goto st1294; + case 32: goto st1294; + case 40: goto tr3176; + case 41: goto tr3177; + case 42: goto tr3178; + case 92: goto tr3178; + case 95: goto tr3178; + case 2058: goto tr3179; + case 2107: goto tr3180; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr2895; + goto tr3178; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr2895; + goto tr3178; } else - goto tr2895; + goto tr3178; goto tr78; -tr2895: +tr3178: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1150;goto st331;} } - goto st1150; -st1150: + { p--; {stack[top++] = 1295;goto st340;} } + goto st1295; +st1295: if ( ++p == pe ) - goto _test_eof1150; -case 1150: + goto _test_eof1295; +case 1295: switch( (*p) ) { - case 32: goto tr2898; - case 59: goto tr2898; + case 32: goto tr3181; + case 59: goto tr3181; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2898; + goto tr3181; } else if ( (*p) >= 9 ) - goto tr2898; + goto tr3181; goto tr78; -tr2898: +tr3181: { if (s->to_lower) { dname_to_lower(s->dname); @@ -74614,25 +81100,25 @@ tr2898: { p--; {cs = stack[--top];goto _again;} } - goto st1550; -st1550: + goto st1703; +st1703: if ( ++p == pe ) - goto _test_eof1550; -case 1550: + goto _test_eof1703; +case 1703: goto st0; -tr2897: +tr3180: { s->buffer_length = 0; } - goto st1151; -tr2899: + goto st1296; +tr3182: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1151; -tr2891: + goto st1296; +tr3174: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -74640,17 +81126,17 @@ tr2891: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1151; -st1151: + goto st1296; +st1296: if ( ++p == pe ) - goto _test_eof1151; -case 1151: + goto _test_eof1296; +case 1296: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -74670,36 +81156,36 @@ case 1151: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2900; + goto tr3183; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2899; + goto tr3182; goto tr78; -st1152: +st1297: if ( ++p == pe ) - goto _test_eof1152; -case 1152: + goto _test_eof1297; +case 1297: switch( (*p) ) { - case 32: goto tr2902; - case 59: goto tr2902; + case 32: goto tr3185; + case 59: goto tr3185; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2902; + goto tr3185; } else if ( (*p) >= 9 ) - goto tr2902; - goto tr2901; -tr2911: + goto tr3185; + goto tr3184; +tr3194: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - { p--; {stack[top++] = 1153;goto st340;} } - goto st1153; -tr2901: + { p--; {stack[top++] = 1298;goto st349;} } + goto st1298; +tr3184: { s->long_string = true; } @@ -74708,15 +81194,15 @@ tr2901: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - { p--; {stack[top++] = 1153;goto st340;} } - goto st1153; -st1153: + { p--; {stack[top++] = 1298;goto st349;} } + goto st1298; +st1298: if ( ++p == pe ) - goto _test_eof1153; -case 1153: + goto _test_eof1298; +case 1298: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74734,42 +81220,42 @@ case 1153: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr2903; - case 32: goto tr2903; - case 40: goto tr2904; - case 41: goto tr2905; - case 3082: goto tr2906; - case 3131: goto tr2907; - case 3338: goto tr2908; - case 3387: goto tr2908; - case 3594: goto tr2909; - case 3643: goto tr2910; + case 9: goto tr3186; + case 32: goto tr3186; + case 40: goto tr3187; + case 41: goto tr3188; + case 3082: goto tr3189; + case 3131: goto tr3190; + case 3338: goto tr3191; + case 3387: goto tr3191; + case 3594: goto tr3192; + case 3643: goto tr3193; } - goto tr2902; -tr2913: + goto tr3185; +tr3196: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1154; -tr2914: + goto st1299; +tr3197: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1154; -tr2915: + goto st1299; +tr3198: { s->line_counter++; } - goto st1154; -tr2921: + goto st1299; +tr3204: { s->buffer[s->buffer_length++] = 0; @@ -74779,95 +81265,95 @@ tr2921: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1154; goto _out;} + {p++; cs = 1299; goto _out;} } } } { s->line_counter++; } - goto st1154; -tr2903: + goto st1299; +tr3186: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1154; -tr2904: + goto st1299; +tr3187: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1154; -tr2905: + goto st1299; +tr3188: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1154; -tr2906: + goto st1299; +tr3189: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1154; -st1154: + goto st1299; +st1299: if ( ++p == pe ) - goto _test_eof1154; -case 1154: + goto _test_eof1299; +case 1299: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -74885,60 +81371,60 @@ case 1154: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1154; - case 32: goto st1154; - case 40: goto tr2913; - case 41: goto tr2914; - case 3082: goto tr2915; - case 3131: goto tr2916; - case 3338: goto tr2917; - case 3387: goto tr2917; - case 3594: goto tr2918; - case 3643: goto tr2919; + case 9: goto st1299; + case 32: goto st1299; + case 40: goto tr3196; + case 41: goto tr3197; + case 3082: goto tr3198; + case 3131: goto tr3199; + case 3338: goto tr3200; + case 3387: goto tr3200; + case 3594: goto tr3201; + case 3643: goto tr3202; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2911; + goto tr3194; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2911; + goto tr3194; } else - goto tr2911; - goto tr2902; -tr2916: + goto tr3194; + goto tr3185; +tr3199: { s->buffer_length = 0; } - goto st1155; -tr2920: + goto st1300; +tr3203: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1155; -tr2907: + goto st1300; +tr3190: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1155; -st1155: + goto st1300; +st1300: if ( ++p == pe ) - goto _test_eof1155; -case 1155: + goto _test_eof1300; +case 1300: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -74958,22 +81444,22 @@ case 1155: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2921; + goto tr3204; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2920; - goto tr2902; -tr2908: + goto tr3203; + goto tr3185; +tr3191: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -74982,32 +81468,32 @@ tr2908: { p--; {cs = stack[--top];goto _again;} } - goto st1551; -tr2917: + goto st1704; +tr3200: { s->long_string = false; } { p--; {cs = stack[--top];goto _again;} } - goto st1551; -st1551: + goto st1704; +st1704: if ( ++p == pe ) - goto _test_eof1551; -case 1551: + goto _test_eof1704; +case 1704: goto st0; -tr2909: +tr3192: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -75019,8 +81505,8 @@ tr2909: { p--; {cs = stack[--top];goto _again;} } - goto st1552; -tr2918: + goto st1705; +tr3201: { s->line_counter++; } @@ -75030,11 +81516,11 @@ tr2918: { p--; {cs = stack[--top];goto _again;} } - goto st1552; -st1552: + goto st1705; +st1705: if ( ++p == pe ) - goto _test_eof1552; -case 1552: + goto _test_eof1705; +case 1705: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75052,38 +81538,38 @@ case 1552: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1154; - case 32: goto st1154; - case 40: goto tr2913; - case 41: goto tr2914; - case 3082: goto tr2915; - case 3131: goto tr2916; - case 3338: goto tr2917; - case 3387: goto tr2917; - case 3594: goto tr2918; - case 3643: goto tr2919; + case 9: goto st1299; + case 32: goto st1299; + case 40: goto tr3196; + case 41: goto tr3197; + case 3082: goto tr3198; + case 3131: goto tr3199; + case 3338: goto tr3200; + case 3387: goto tr3200; + case 3594: goto tr3201; + case 3643: goto tr3202; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr2911; + goto tr3194; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr2911; + goto tr3194; } else - goto tr2911; - goto tr2902; -tr2910: + goto tr3194; + goto tr3185; +tr3193: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -75095,8 +81581,8 @@ tr2910: { p--; {cs = stack[--top];goto _again;} } - goto st1553; -tr2919: + goto st1706; +tr3202: { s->buffer_length = 0; } @@ -75106,11 +81592,11 @@ tr2919: { p--; {cs = stack[--top];goto _again;} } - goto st1553; -st1553: + goto st1706; +st1706: if ( ++p == pe ) - goto _test_eof1553; -case 1553: + goto _test_eof1706; +case 1706: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -75130,36 +81616,36 @@ case 1553: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr2921; + goto tr3204; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr2920; - goto tr2902; -st1156: + goto tr3203; + goto tr3185; +st1301: if ( ++p == pe ) - goto _test_eof1156; -case 1156: + goto _test_eof1301; +case 1301: if ( (*p) == 46 ) - goto tr2922; + goto tr3205; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr2922; + goto tr3205; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2922; + goto tr3205; } else - goto tr2922; - goto tr2694; -tr2924: + goto tr3205; + goto tr2977; +tr3207: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1157; -tr2922: + goto st1302; +tr3205: { s->buffer_length = 0; } @@ -75168,47 +81654,47 @@ tr2922: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1157; -st1157: + goto st1302; +st1302: if ( ++p == pe ) - goto _test_eof1157; -case 1157: + goto _test_eof1302; +case 1302: switch( (*p) ) { - case 32: goto tr2923; - case 46: goto tr2924; - case 59: goto tr2923; + case 32: goto tr3206; + case 46: goto tr3207; + case 59: goto tr3206; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr2923; + goto tr3206; } else if ( (*p) >= 9 ) - goto tr2923; + goto tr3206; } else if ( (*p) > 58 ) { if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr2924; + goto tr3207; } else if ( (*p) >= 65 ) - goto tr2924; + goto tr3207; } else - goto tr2924; - goto tr2694; -tr2923: + goto tr3207; + goto tr2977; +tr3206: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -75216,20 +81702,20 @@ tr2923: { p--; {cs = stack[--top];goto _again;} } - goto st1554; -st1554: + goto st1707; +st1707: if ( ++p == pe ) - goto _test_eof1554; -case 1554: + goto _test_eof1707; +case 1707: goto st0; -st1158: +st1303: if ( ++p == pe ) - goto _test_eof1158; -case 1158: + goto _test_eof1303; +case 1303: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr2926; - goto tr2925; -tr2930: + goto tr3209; + goto tr3208; +tr3213: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75241,11 +81727,11 @@ tr2930: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1159; -tr2926: + goto st1304; +tr3209: { memset(&(s->loc), 0, sizeof(s->loc)); // Defaults. @@ -75270,14 +81756,14 @@ tr2926: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1159; -st1159: + goto st1304; +st1304: if ( ++p == pe ) - goto _test_eof1159; -case 1159: + goto _test_eof1304; +case 1304: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75291,40 +81777,40 @@ case 1159: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2927; - case 32: goto tr2927; - case 40: goto tr2928; - case 41: goto tr2929; - case 2058: goto tr2931; - case 2107: goto tr2932; + case 9: goto tr3210; + case 32: goto tr3210; + case 40: goto tr3211; + case 41: goto tr3212; + case 2058: goto tr3214; + case 2107: goto tr3215; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2930; - goto tr2925; -tr2934: + goto tr3213; + goto tr3208; +tr3217: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1160; -tr2935: + goto st1305; +tr3218: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1160; -tr2939: + goto st1305; +tr3222: { s->line_counter++; } - goto st1160; -tr3182: + goto st1305; +tr3465: { s->buffer[s->buffer_length++] = 0; @@ -75334,75 +81820,75 @@ tr3182: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1160; goto _out;} + {p++; cs = 1305; goto _out;} } } } { s->line_counter++; } - goto st1160; -tr2927: + goto st1305; +tr3210: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1160; -tr2928: + goto st1305; +tr3211: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1160; -tr2929: + goto st1305; +tr3212: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1160; -tr2931: + goto st1305; +tr3214: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1160; -st1160: + goto st1305; +st1305: if ( ++p == pe ) - goto _test_eof1160; -case 1160: + goto _test_eof1305; +case 1305: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75416,19 +81902,19 @@ case 1160: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1160; - case 32: goto st1160; - case 40: goto tr2934; - case 41: goto tr2935; - case 78: goto st1165; - case 83: goto st1207; - case 2058: goto tr2939; - case 2107: goto tr2940; + case 9: goto st1305; + case 32: goto st1305; + case 40: goto tr3217; + case 41: goto tr3218; + case 78: goto st1310; + case 83: goto st1352; + case 2058: goto tr3222; + case 2107: goto tr3223; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2936; - goto tr2925; -tr2936: + goto tr3219; + goto tr3208; +tr3219: { s->number64 = 0; } @@ -75443,11 +81929,11 @@ tr2936: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1161; -tr2944: + goto st1306; +tr3227: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75459,14 +81945,14 @@ tr2944: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1161; -st1161: + goto st1306; +st1306: if ( ++p == pe ) - goto _test_eof1161; -case 1161: + goto _test_eof1306; +case 1306: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75480,40 +81966,40 @@ case 1161: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2941; - case 32: goto tr2941; - case 40: goto tr2942; - case 41: goto tr2943; - case 2058: goto tr2945; - case 2107: goto tr2946; + case 9: goto tr3224; + case 32: goto tr3224; + case 40: goto tr3225; + case 41: goto tr3226; + case 2058: goto tr3228; + case 2107: goto tr3229; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2944; - goto tr2925; -tr2948: + goto tr3227; + goto tr3208; +tr3231: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1162; -tr2949: + goto st1307; +tr3232: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1162; -tr2951: + goto st1307; +tr3234: { s->line_counter++; } - goto st1162; -tr3180: + goto st1307; +tr3463: { s->buffer[s->buffer_length++] = 0; @@ -75523,75 +82009,75 @@ tr3180: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1162; goto _out;} + {p++; cs = 1307; goto _out;} } } } { s->line_counter++; } - goto st1162; -tr2941: + goto st1307; +tr3224: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1162; -tr2942: + goto st1307; +tr3225: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1162; -tr2943: + goto st1307; +tr3226: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1162; -tr2945: + goto st1307; +tr3228: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1162; -st1162: + goto st1307; +st1307: if ( ++p == pe ) - goto _test_eof1162; -case 1162: + goto _test_eof1307; +case 1307: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75605,19 +82091,19 @@ case 1162: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1162; - case 32: goto st1162; - case 40: goto tr2948; - case 41: goto tr2949; - case 78: goto st1165; - case 83: goto st1207; - case 2058: goto tr2951; - case 2107: goto tr2952; + case 9: goto st1307; + case 32: goto st1307; + case 40: goto tr3231; + case 41: goto tr3232; + case 78: goto st1310; + case 83: goto st1352; + case 2058: goto tr3234; + case 2107: goto tr3235; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2950; - goto tr2925; -tr2957: + goto tr3233; + goto tr3208; +tr3240: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -75629,11 +82115,11 @@ tr2957: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1163; -tr2950: + goto st1308; +tr3233: { s->decimals = 3; } @@ -75654,14 +82140,14 @@ tr2950: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1163; -st1163: + goto st1308; +st1308: if ( ++p == pe ) - goto _test_eof1163; -case 1163: + goto _test_eof1308; +case 1308: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75675,41 +82161,41 @@ case 1163: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2953; - case 32: goto tr2953; - case 40: goto tr2954; - case 41: goto tr2955; - case 46: goto st1209; - case 2058: goto tr2958; - case 2107: goto tr2959; + case 9: goto tr3236; + case 32: goto tr3236; + case 40: goto tr3237; + case 41: goto tr3238; + case 46: goto st1354; + case 2058: goto tr3241; + case 2107: goto tr3242; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2957; - goto tr2925; -tr2961: + goto tr3240; + goto tr3208; +tr3244: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1164; -tr2962: + goto st1309; +tr3245: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1164; -tr2963: + goto st1309; +tr3246: { s->line_counter++; } - goto st1164; -tr3171: + goto st1309; +tr3454: { s->buffer[s->buffer_length++] = 0; @@ -75719,15 +82205,15 @@ tr3171: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1164; goto _out;} + {p++; cs = 1309; goto _out;} } } } { s->line_counter++; } - goto st1164; -tr2953: + goto st1309; +tr3236: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75737,7 +82223,7 @@ tr2953: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -75745,11 +82231,11 @@ tr2953: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1164; -tr2954: + goto st1309; +tr3237: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75759,7 +82245,7 @@ tr2954: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -75767,18 +82253,18 @@ tr2954: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1164; -tr2955: + goto st1309; +tr3238: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75788,7 +82274,7 @@ tr2955: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -75796,18 +82282,18 @@ tr2955: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1164; -tr2958: + goto st1309; +tr3241: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -75817,7 +82303,7 @@ tr2958: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -75825,14 +82311,14 @@ tr2958: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1164; -tr3172: + goto st1309; +tr3455: { s->number64_tmp = s->number64; } @@ -75845,7 +82331,7 @@ tr3172: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -75853,11 +82339,11 @@ tr3172: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1164; -tr3173: + goto st1309; +tr3456: { s->number64_tmp = s->number64; } @@ -75870,7 +82356,7 @@ tr3173: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -75878,18 +82364,18 @@ tr3173: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1164; -tr3174: + goto st1309; +tr3457: { s->number64_tmp = s->number64; } @@ -75902,7 +82388,7 @@ tr3174: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -75910,18 +82396,18 @@ tr3174: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1164; -tr3176: + goto st1309; +tr3459: { s->number64_tmp = s->number64; } @@ -75934,7 +82420,7 @@ tr3176: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -75942,17 +82428,17 @@ tr3176: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1164; -st1164: + goto st1309; +st1309: if ( ++p == pe ) - goto _test_eof1164; -case 1164: + goto _test_eof1309; +case 1309: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75966,20 +82452,20 @@ case 1164: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1164; - case 32: goto st1164; - case 40: goto tr2961; - case 41: goto tr2962; - case 78: goto st1165; - case 83: goto st1207; - case 2058: goto tr2963; - case 2107: goto tr2964; + case 9: goto st1309; + case 32: goto st1309; + case 40: goto tr3244; + case 41: goto tr3245; + case 78: goto st1310; + case 83: goto st1352; + case 2058: goto tr3246; + case 2107: goto tr3247; } - goto tr2925; -st1165: + goto tr3208; +st1310: if ( ++p == pe ) - goto _test_eof1165; -case 1165: + goto _test_eof1310; +case 1310: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -75993,38 +82479,38 @@ case 1165: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1166; - case 32: goto st1166; - case 40: goto tr2966; - case 41: goto tr2967; - case 2058: goto tr2968; - case 2107: goto tr2969; + case 9: goto st1311; + case 32: goto st1311; + case 40: goto tr3249; + case 41: goto tr3250; + case 2058: goto tr3251; + case 2107: goto tr3252; } - goto tr2925; -tr2966: + goto tr3208; +tr3249: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1166; -tr2967: + goto st1311; +tr3250: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1166; -tr2968: + goto st1311; +tr3251: { s->line_counter++; } - goto st1166; -tr3164: + goto st1311; +tr3447: { s->buffer[s->buffer_length++] = 0; @@ -76034,55 +82520,55 @@ tr3164: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1166; goto _out;} + {p++; cs = 1311; goto _out;} } } } { s->line_counter++; } - goto st1166; -tr3165: + goto st1311; +tr3448: { s->loc.lat_sign = -1; } - goto st1166; -tr3166: + goto st1311; +tr3449: { s->loc.lat_sign = -1; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1166; -tr3167: + goto st1311; +tr3450: { s->loc.lat_sign = -1; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1166; -tr3168: + goto st1311; +tr3451: { s->loc.lat_sign = -1; } { s->line_counter++; } - goto st1166; -st1166: + goto st1311; +st1311: if ( ++p == pe ) - goto _test_eof1166; -case 1166: + goto _test_eof1311; +case 1311: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76096,17 +82582,17 @@ case 1166: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1166; - case 32: goto st1166; - case 40: goto tr2966; - case 41: goto tr2967; - case 2058: goto tr2968; - case 2107: goto tr2969; + case 9: goto st1311; + case 32: goto st1311; + case 40: goto tr3249; + case 41: goto tr3250; + case 2058: goto tr3251; + case 2107: goto tr3252; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2970; - goto tr2925; -tr2970: + goto tr3253; + goto tr3208; +tr3253: { s->number64 = 0; } @@ -76121,11 +82607,11 @@ tr2970: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1167; -tr2974: + goto st1312; +tr3257: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76137,14 +82623,14 @@ tr2974: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1167; -st1167: + goto st1312; +st1312: if ( ++p == pe ) - goto _test_eof1167; -case 1167: + goto _test_eof1312; +case 1312: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76158,40 +82644,40 @@ case 1167: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2971; - case 32: goto tr2971; - case 40: goto tr2972; - case 41: goto tr2973; - case 2058: goto tr2975; - case 2107: goto tr2976; + case 9: goto tr3254; + case 32: goto tr3254; + case 40: goto tr3255; + case 41: goto tr3256; + case 2058: goto tr3258; + case 2107: goto tr3259; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2974; - goto tr2925; -tr2978: + goto tr3257; + goto tr3208; +tr3261: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1168; -tr2979: + goto st1313; +tr3262: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1168; -tr2983: + goto st1313; +tr3266: { s->line_counter++; } - goto st1168; -tr3162: + goto st1313; +tr3445: { s->buffer[s->buffer_length++] = 0; @@ -76201,75 +82687,75 @@ tr3162: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1168; goto _out;} + {p++; cs = 1313; goto _out;} } } } { s->line_counter++; } - goto st1168; -tr2971: + goto st1313; +tr3254: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1168; -tr2972: + goto st1313; +tr3255: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1168; -tr2973: + goto st1313; +tr3256: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1168; -tr2975: + goto st1313; +tr3258: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1168; -st1168: + goto st1313; +st1313: if ( ++p == pe ) - goto _test_eof1168; -case 1168: + goto _test_eof1313; +case 1313: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76283,19 +82769,19 @@ case 1168: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1168; - case 32: goto st1168; - case 40: goto tr2978; - case 41: goto tr2979; - case 69: goto st1173; - case 87: goto st1200; - case 2058: goto tr2983; - case 2107: goto tr2984; + case 9: goto st1313; + case 32: goto st1313; + case 40: goto tr3261; + case 41: goto tr3262; + case 69: goto st1318; + case 87: goto st1345; + case 2058: goto tr3266; + case 2107: goto tr3267; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2980; - goto tr2925; -tr2980: + goto tr3263; + goto tr3208; +tr3263: { s->number64 = 0; } @@ -76310,11 +82796,11 @@ tr2980: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1169; -tr2988: + goto st1314; +tr3271: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76326,14 +82812,14 @@ tr2988: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1169; -st1169: + goto st1314; +st1314: if ( ++p == pe ) - goto _test_eof1169; -case 1169: + goto _test_eof1314; +case 1314: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76347,40 +82833,40 @@ case 1169: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2985; - case 32: goto tr2985; - case 40: goto tr2986; - case 41: goto tr2987; - case 2058: goto tr2989; - case 2107: goto tr2990; + case 9: goto tr3268; + case 32: goto tr3268; + case 40: goto tr3269; + case 41: goto tr3270; + case 2058: goto tr3272; + case 2107: goto tr3273; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2988; - goto tr2925; -tr2992: + goto tr3271; + goto tr3208; +tr3275: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1170; -tr2993: + goto st1315; +tr3276: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1170; -tr2995: + goto st1315; +tr3278: { s->line_counter++; } - goto st1170; -tr3160: + goto st1315; +tr3443: { s->buffer[s->buffer_length++] = 0; @@ -76390,75 +82876,75 @@ tr3160: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1170; goto _out;} + {p++; cs = 1315; goto _out;} } } } { s->line_counter++; } - goto st1170; -tr2985: + goto st1315; +tr3268: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1170; -tr2986: + goto st1315; +tr3269: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1170; -tr2987: + goto st1315; +tr3270: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1170; -tr2989: + goto st1315; +tr3272: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1170; -st1170: + goto st1315; +st1315: if ( ++p == pe ) - goto _test_eof1170; -case 1170: + goto _test_eof1315; +case 1315: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76472,19 +82958,19 @@ case 1170: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1170; - case 32: goto st1170; - case 40: goto tr2992; - case 41: goto tr2993; - case 69: goto st1173; - case 87: goto st1200; - case 2058: goto tr2995; - case 2107: goto tr2996; + case 9: goto st1315; + case 32: goto st1315; + case 40: goto tr3275; + case 41: goto tr3276; + case 69: goto st1318; + case 87: goto st1345; + case 2058: goto tr3278; + case 2107: goto tr3279; } if ( 48 <= _widec && _widec <= 57 ) - goto tr2994; - goto tr2925; -tr3001: + goto tr3277; + goto tr3208; +tr3284: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76496,11 +82982,11 @@ tr3001: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1171; -tr2994: + goto st1316; +tr3277: { s->decimals = 3; } @@ -76521,14 +83007,14 @@ tr2994: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1171; -st1171: + goto st1316; +st1316: if ( ++p == pe ) - goto _test_eof1171; -case 1171: + goto _test_eof1316; +case 1316: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76542,41 +83028,41 @@ case 1171: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2997; - case 32: goto tr2997; - case 40: goto tr2998; - case 41: goto tr2999; - case 46: goto st1202; - case 2058: goto tr3002; - case 2107: goto tr3003; + case 9: goto tr3280; + case 32: goto tr3280; + case 40: goto tr3281; + case 41: goto tr3282; + case 46: goto st1347; + case 2058: goto tr3285; + case 2107: goto tr3286; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3001; - goto tr2925; -tr3005: + goto tr3284; + goto tr3208; +tr3288: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1172; -tr3006: + goto st1317; +tr3289: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1172; -tr3007: + goto st1317; +tr3290: { s->line_counter++; } - goto st1172; -tr3151: + goto st1317; +tr3434: { s->buffer[s->buffer_length++] = 0; @@ -76586,15 +83072,15 @@ tr3151: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1172; goto _out;} + {p++; cs = 1317; goto _out;} } } } { s->line_counter++; } - goto st1172; -tr2997: + goto st1317; +tr3280: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76604,7 +83090,7 @@ tr2997: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -76612,11 +83098,11 @@ tr2997: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1172; -tr2998: + goto st1317; +tr3281: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76626,7 +83112,7 @@ tr2998: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -76634,18 +83120,18 @@ tr2998: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1172; -tr2999: + goto st1317; +tr3282: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76655,7 +83141,7 @@ tr2999: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -76663,18 +83149,18 @@ tr2999: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1172; -tr3002: + goto st1317; +tr3285: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -76684,7 +83170,7 @@ tr3002: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -76692,14 +83178,14 @@ tr3002: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1172; -tr3152: + goto st1317; +tr3435: { s->number64_tmp = s->number64; } @@ -76712,7 +83198,7 @@ tr3152: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -76720,11 +83206,11 @@ tr3152: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1172; -tr3153: + goto st1317; +tr3436: { s->number64_tmp = s->number64; } @@ -76737,7 +83223,7 @@ tr3153: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -76745,18 +83231,18 @@ tr3153: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1172; -tr3154: + goto st1317; +tr3437: { s->number64_tmp = s->number64; } @@ -76769,7 +83255,7 @@ tr3154: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -76777,18 +83263,18 @@ tr3154: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1172; -tr3156: + goto st1317; +tr3439: { s->number64_tmp = s->number64; } @@ -76801,7 +83287,7 @@ tr3156: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -76809,17 +83295,17 @@ tr3156: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1172; -st1172: + goto st1317; +st1317: if ( ++p == pe ) - goto _test_eof1172; -case 1172: + goto _test_eof1317; +case 1317: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76833,20 +83319,20 @@ case 1172: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1172; - case 32: goto st1172; - case 40: goto tr3005; - case 41: goto tr3006; - case 69: goto st1173; - case 87: goto st1200; - case 2058: goto tr3007; - case 2107: goto tr3008; + case 9: goto st1317; + case 32: goto st1317; + case 40: goto tr3288; + case 41: goto tr3289; + case 69: goto st1318; + case 87: goto st1345; + case 2058: goto tr3290; + case 2107: goto tr3291; } - goto tr2925; -st1173: + goto tr3208; +st1318: if ( ++p == pe ) - goto _test_eof1173; -case 1173: + goto _test_eof1318; +case 1318: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76860,38 +83346,38 @@ case 1173: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1174; - case 32: goto st1174; - case 40: goto tr3010; - case 41: goto tr3011; - case 2058: goto tr3012; - case 2107: goto tr3013; + case 9: goto st1319; + case 32: goto st1319; + case 40: goto tr3293; + case 41: goto tr3294; + case 2058: goto tr3295; + case 2107: goto tr3296; } - goto tr2925; -tr3010: + goto tr3208; +tr3293: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1174; -tr3011: + goto st1319; +tr3294: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1174; -tr3012: + goto st1319; +tr3295: { s->line_counter++; } - goto st1174; -tr3144: + goto st1319; +tr3427: { s->buffer[s->buffer_length++] = 0; @@ -76901,55 +83387,55 @@ tr3144: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1174; goto _out;} + {p++; cs = 1319; goto _out;} } } } { s->line_counter++; } - goto st1174; -tr3145: + goto st1319; +tr3428: { s->loc.long_sign = -1; } - goto st1174; -tr3146: + goto st1319; +tr3429: { s->loc.long_sign = -1; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1174; -tr3147: + goto st1319; +tr3430: { s->loc.long_sign = -1; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1174; -tr3148: + goto st1319; +tr3431: { s->loc.long_sign = -1; } { s->line_counter++; } - goto st1174; -st1174: + goto st1319; +st1319: if ( ++p == pe ) - goto _test_eof1174; -case 1174: + goto _test_eof1319; +case 1319: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -76963,25 +83449,25 @@ case 1174: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1174; - case 32: goto st1174; - case 40: goto tr3010; - case 41: goto tr3011; - case 45: goto st1175; - case 2058: goto tr3012; - case 2107: goto tr3013; + case 9: goto st1319; + case 32: goto st1319; + case 40: goto tr3293; + case 41: goto tr3294; + case 45: goto st1320; + case 2058: goto tr3295; + case 2107: goto tr3296; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3015; - goto tr2925; -st1175: + goto tr3298; + goto tr3208; +st1320: if ( ++p == pe ) - goto _test_eof1175; -case 1175: + goto _test_eof1320; +case 1320: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3016; - goto tr2925; -tr3021: + goto tr3299; + goto tr3208; +tr3304: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -76993,11 +83479,11 @@ tr3021: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1176; -tr3015: + goto st1321; +tr3298: { s->decimals = 2; } @@ -77018,11 +83504,11 @@ tr3015: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1176; -tr3016: + goto st1321; +tr3299: { s->loc.alt_sign = -1; } @@ -77046,14 +83532,14 @@ tr3016: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1176; -st1176: + goto st1321; +st1321: if ( ++p == pe ) - goto _test_eof1176; -case 1176: + goto _test_eof1321; +case 1321: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77071,46 +83557,46 @@ case 1176: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3017; - case 32: goto tr3017; - case 40: goto tr3018; - case 41: goto tr3019; - case 46: goto st1196; - case 109: goto tr3022; - case 3082: goto tr3023; - case 3131: goto tr3024; - case 3338: goto tr3025; - case 3387: goto tr3025; - case 3594: goto tr3026; - case 3643: goto tr3027; + case 9: goto tr3300; + case 32: goto tr3300; + case 40: goto tr3301; + case 41: goto tr3302; + case 46: goto st1341; + case 109: goto tr3305; + case 3082: goto tr3306; + case 3131: goto tr3307; + case 3338: goto tr3308; + case 3387: goto tr3308; + case 3594: goto tr3309; + case 3643: goto tr3310; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3021; - goto tr2925; -tr3029: + goto tr3304; + goto tr3208; +tr3312: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1177; -tr3030: + goto st1322; +tr3313: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1177; -tr3032: + goto st1322; +tr3315: { s->line_counter++; } - goto st1177; -tr3131: + goto st1322; +tr3414: { s->buffer[s->buffer_length++] = 0; @@ -77120,15 +83606,15 @@ tr3131: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1177; goto _out;} + {p++; cs = 1322; goto _out;} } } } { s->line_counter++; } - goto st1177; -tr3017: + goto st1322; +tr3300: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77138,7 +83624,7 @@ tr3017: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77148,11 +83634,11 @@ tr3017: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1177; -tr3018: + goto st1322; +tr3301: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77162,7 +83648,7 @@ tr3018: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77172,18 +83658,18 @@ tr3018: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1177; -tr3019: + goto st1322; +tr3302: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77193,7 +83679,7 @@ tr3019: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77203,18 +83689,18 @@ tr3019: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1177; -tr3023: + goto st1322; +tr3306: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77224,7 +83710,7 @@ tr3023: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77234,14 +83720,14 @@ tr3023: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1177; -tr3132: + goto st1322; +tr3415: { s->number64_tmp = s->number64; } @@ -77254,7 +83740,7 @@ tr3132: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77264,11 +83750,11 @@ tr3132: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1177; -tr3133: + goto st1322; +tr3416: { s->number64_tmp = s->number64; } @@ -77281,7 +83767,7 @@ tr3133: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77291,18 +83777,18 @@ tr3133: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1177; -tr3134: + goto st1322; +tr3417: { s->number64_tmp = s->number64; } @@ -77315,7 +83801,7 @@ tr3134: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77325,18 +83811,18 @@ tr3134: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1177; -tr3137: + goto st1322; +tr3420: { s->number64_tmp = s->number64; } @@ -77349,7 +83835,7 @@ tr3137: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77359,17 +83845,17 @@ tr3137: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1177; -st1177: + goto st1322; +st1322: if ( ++p == pe ) - goto _test_eof1177; -case 1177: + goto _test_eof1322; +case 1322: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77387,21 +83873,21 @@ case 1177: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1177; - case 32: goto st1177; - case 40: goto tr3029; - case 41: goto tr3030; - case 3082: goto tr3032; - case 3131: goto tr3033; - case 3338: goto tr3034; - case 3387: goto tr3034; - case 3594: goto tr3035; - case 3643: goto tr3036; + case 9: goto st1322; + case 32: goto st1322; + case 40: goto tr3312; + case 41: goto tr3313; + case 3082: goto tr3315; + case 3131: goto tr3316; + case 3338: goto tr3317; + case 3387: goto tr3317; + case 3594: goto tr3318; + case 3643: goto tr3319; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3031; - goto tr2925; -tr3041: + goto tr3314; + goto tr3208; +tr3324: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -77413,11 +83899,11 @@ tr3041: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1178; -tr3031: + goto st1323; +tr3314: { s->decimals = 2; } @@ -77438,14 +83924,14 @@ tr3031: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1178; -st1178: + goto st1323; +st1323: if ( ++p == pe ) - goto _test_eof1178; -case 1178: + goto _test_eof1323; +case 1323: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77463,46 +83949,46 @@ case 1178: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3037; - case 32: goto tr3037; - case 40: goto tr3038; - case 41: goto tr3039; - case 46: goto st1192; - case 109: goto tr3042; - case 3082: goto tr3043; - case 3131: goto tr3044; - case 3338: goto tr3045; - case 3387: goto tr3045; - case 3594: goto tr3046; - case 3643: goto tr3047; + case 9: goto tr3320; + case 32: goto tr3320; + case 40: goto tr3321; + case 41: goto tr3322; + case 46: goto st1337; + case 109: goto tr3325; + case 3082: goto tr3326; + case 3131: goto tr3327; + case 3338: goto tr3328; + case 3387: goto tr3328; + case 3594: goto tr3329; + case 3643: goto tr3330; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3041; - goto tr2925; -tr3049: + goto tr3324; + goto tr3208; +tr3332: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1179; -tr3050: + goto st1324; +tr3333: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1179; -tr3052: + goto st1324; +tr3335: { s->line_counter++; } - goto st1179; -tr3118: + goto st1324; +tr3401: { s->buffer[s->buffer_length++] = 0; @@ -77512,15 +83998,15 @@ tr3118: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1179; goto _out;} + {p++; cs = 1324; goto _out;} } } } { s->line_counter++; } - goto st1179; -tr3037: + goto st1324; +tr3320: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77530,7 +84016,7 @@ tr3037: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77538,11 +84024,11 @@ tr3037: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1179; -tr3038: + goto st1324; +tr3321: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77552,7 +84038,7 @@ tr3038: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77560,18 +84046,18 @@ tr3038: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1179; -tr3039: + goto st1324; +tr3322: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77581,7 +84067,7 @@ tr3039: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77589,18 +84075,18 @@ tr3039: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1179; -tr3043: + goto st1324; +tr3326: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77610,7 +84096,7 @@ tr3043: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77618,14 +84104,14 @@ tr3043: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1179; -tr3119: + goto st1324; +tr3402: { s->number64_tmp = s->number64; } @@ -77638,7 +84124,7 @@ tr3119: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77646,11 +84132,11 @@ tr3119: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1179; -tr3120: + goto st1324; +tr3403: { s->number64_tmp = s->number64; } @@ -77663,7 +84149,7 @@ tr3120: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77671,18 +84157,18 @@ tr3120: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1179; -tr3121: + goto st1324; +tr3404: { s->number64_tmp = s->number64; } @@ -77695,7 +84181,7 @@ tr3121: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77703,18 +84189,18 @@ tr3121: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1179; -tr3124: + goto st1324; +tr3407: { s->number64_tmp = s->number64; } @@ -77727,7 +84213,7 @@ tr3124: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77735,17 +84221,17 @@ tr3124: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1179; -st1179: + goto st1324; +st1324: if ( ++p == pe ) - goto _test_eof1179; -case 1179: + goto _test_eof1324; +case 1324: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77763,21 +84249,21 @@ case 1179: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1179; - case 32: goto st1179; - case 40: goto tr3049; - case 41: goto tr3050; - case 3082: goto tr3052; - case 3131: goto tr3053; - case 3338: goto tr3034; - case 3387: goto tr3034; - case 3594: goto tr3054; - case 3643: goto tr3055; + case 9: goto st1324; + case 32: goto st1324; + case 40: goto tr3332; + case 41: goto tr3333; + case 3082: goto tr3335; + case 3131: goto tr3336; + case 3338: goto tr3317; + case 3387: goto tr3317; + case 3594: goto tr3337; + case 3643: goto tr3338; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3051; - goto tr2925; -tr3060: + goto tr3334; + goto tr3208; +tr3343: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -77789,11 +84275,11 @@ tr3060: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1180; -tr3051: + goto st1325; +tr3334: { s->decimals = 2; } @@ -77814,14 +84300,14 @@ tr3051: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1180; -st1180: + goto st1325; +st1325: if ( ++p == pe ) - goto _test_eof1180; -case 1180: + goto _test_eof1325; +case 1325: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -77839,46 +84325,46 @@ case 1180: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3056; - case 32: goto tr3056; - case 40: goto tr3057; - case 41: goto tr3058; - case 46: goto st1188; - case 109: goto tr3061; - case 3082: goto tr3062; - case 3131: goto tr3063; - case 3338: goto tr3064; - case 3387: goto tr3064; - case 3594: goto tr3065; - case 3643: goto tr3066; + case 9: goto tr3339; + case 32: goto tr3339; + case 40: goto tr3340; + case 41: goto tr3341; + case 46: goto st1333; + case 109: goto tr3344; + case 3082: goto tr3345; + case 3131: goto tr3346; + case 3338: goto tr3347; + case 3387: goto tr3347; + case 3594: goto tr3348; + case 3643: goto tr3349; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3060; - goto tr2925; -tr3068: + goto tr3343; + goto tr3208; +tr3351: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1181; -tr3069: + goto st1326; +tr3352: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1181; -tr3071: + goto st1326; +tr3354: { s->line_counter++; } - goto st1181; -tr3105: + goto st1326; +tr3388: { s->buffer[s->buffer_length++] = 0; @@ -77888,15 +84374,15 @@ tr3105: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1181; goto _out;} + {p++; cs = 1326; goto _out;} } } } { s->line_counter++; } - goto st1181; -tr3056: + goto st1326; +tr3339: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77906,7 +84392,7 @@ tr3056: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77914,11 +84400,11 @@ tr3056: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1181; -tr3057: + goto st1326; +tr3340: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77928,7 +84414,7 @@ tr3057: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77936,18 +84422,18 @@ tr3057: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1181; -tr3058: + goto st1326; +tr3341: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77957,7 +84443,7 @@ tr3058: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77965,18 +84451,18 @@ tr3058: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1181; -tr3062: + goto st1326; +tr3345: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -77986,7 +84472,7 @@ tr3062: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -77994,14 +84480,14 @@ tr3062: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1181; -tr3106: + goto st1326; +tr3389: { s->number64_tmp = s->number64; } @@ -78014,7 +84500,7 @@ tr3106: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78022,11 +84508,11 @@ tr3106: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1181; -tr3107: + goto st1326; +tr3390: { s->number64_tmp = s->number64; } @@ -78039,7 +84525,7 @@ tr3107: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78047,18 +84533,18 @@ tr3107: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1181; -tr3108: + goto st1326; +tr3391: { s->number64_tmp = s->number64; } @@ -78071,7 +84557,7 @@ tr3108: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78079,18 +84565,18 @@ tr3108: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1181; -tr3111: + goto st1326; +tr3394: { s->number64_tmp = s->number64; } @@ -78103,7 +84589,7 @@ tr3111: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78111,17 +84597,17 @@ tr3111: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1181; -st1181: + goto st1326; +st1326: if ( ++p == pe ) - goto _test_eof1181; -case 1181: + goto _test_eof1326; +case 1326: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78139,21 +84625,21 @@ case 1181: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1181; - case 32: goto st1181; - case 40: goto tr3068; - case 41: goto tr3069; - case 3082: goto tr3071; - case 3131: goto tr3072; - case 3338: goto tr3034; - case 3387: goto tr3034; - case 3594: goto tr3073; - case 3643: goto tr3074; + case 9: goto st1326; + case 32: goto st1326; + case 40: goto tr3351; + case 41: goto tr3352; + case 3082: goto tr3354; + case 3131: goto tr3355; + case 3338: goto tr3317; + case 3387: goto tr3317; + case 3594: goto tr3356; + case 3643: goto tr3357; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3070; - goto tr2925; -tr3079: + goto tr3353; + goto tr3208; +tr3362: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -78165,11 +84651,11 @@ tr3079: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1182; -tr3070: + goto st1327; +tr3353: { s->decimals = 2; } @@ -78190,14 +84676,14 @@ tr3070: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1182; -st1182: + goto st1327; +st1327: if ( ++p == pe ) - goto _test_eof1182; -case 1182: + goto _test_eof1327; +case 1327: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78215,46 +84701,46 @@ case 1182: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3075; - case 32: goto tr3075; - case 40: goto tr3076; - case 41: goto tr3077; - case 46: goto st1185; - case 109: goto tr3075; - case 3082: goto tr3080; - case 3131: goto tr3081; - case 3338: goto tr3082; - case 3387: goto tr3082; - case 3594: goto tr3083; - case 3643: goto tr3084; + case 9: goto tr3358; + case 32: goto tr3358; + case 40: goto tr3359; + case 41: goto tr3360; + case 46: goto st1330; + case 109: goto tr3358; + case 3082: goto tr3363; + case 3131: goto tr3364; + case 3338: goto tr3365; + case 3387: goto tr3365; + case 3594: goto tr3366; + case 3643: goto tr3367; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3079; - goto tr2925; -tr3086: + goto tr3362; + goto tr3208; +tr3369: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1183; -tr3087: + goto st1328; +tr3370: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1183; -tr3088: + goto st1328; +tr3371: { s->line_counter++; } - goto st1183; -tr3093: + goto st1328; +tr3376: { s->buffer[s->buffer_length++] = 0; @@ -78264,15 +84750,15 @@ tr3093: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1183; goto _out;} + {p++; cs = 1328; goto _out;} } } } { s->line_counter++; } - goto st1183; -tr3075: + goto st1328; +tr3358: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78282,7 +84768,7 @@ tr3075: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78290,11 +84776,11 @@ tr3075: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1183; -tr3076: + goto st1328; +tr3359: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78304,7 +84790,7 @@ tr3076: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78312,18 +84798,18 @@ tr3076: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1183; -tr3077: + goto st1328; +tr3360: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78333,7 +84819,7 @@ tr3077: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78341,18 +84827,18 @@ tr3077: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1183; -tr3080: + goto st1328; +tr3363: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78362,7 +84848,7 @@ tr3080: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78370,14 +84856,14 @@ tr3080: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1183; -tr3094: + goto st1328; +tr3377: { s->number64_tmp = s->number64; } @@ -78390,7 +84876,7 @@ tr3094: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78398,11 +84884,11 @@ tr3094: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1183; -tr3095: + goto st1328; +tr3378: { s->number64_tmp = s->number64; } @@ -78415,7 +84901,7 @@ tr3095: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78423,18 +84909,18 @@ tr3095: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1183; -tr3096: + goto st1328; +tr3379: { s->number64_tmp = s->number64; } @@ -78447,7 +84933,7 @@ tr3096: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78455,18 +84941,18 @@ tr3096: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1183; -tr3098: + goto st1328; +tr3381: { s->number64_tmp = s->number64; } @@ -78479,7 +84965,7 @@ tr3098: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78487,17 +84973,17 @@ tr3098: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1183; -st1183: + goto st1328; +st1328: if ( ++p == pe ) - goto _test_eof1183; -case 1183: + goto _test_eof1328; +case 1328: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -78515,31 +85001,31 @@ case 1183: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1183; - case 32: goto st1183; - case 40: goto tr3086; - case 41: goto tr3087; - case 3082: goto tr3088; - case 3131: goto tr3089; - case 3338: goto tr3034; - case 3387: goto tr3034; - case 3594: goto tr3090; - case 3643: goto tr3091; + case 9: goto st1328; + case 32: goto st1328; + case 40: goto tr3369; + case 41: goto tr3370; + case 3082: goto tr3371; + case 3131: goto tr3372; + case 3338: goto tr3317; + case 3387: goto tr3317; + case 3594: goto tr3373; + case 3643: goto tr3374; } - goto tr2925; -tr3089: + goto tr3208; +tr3372: { s->buffer_length = 0; } - goto st1184; -tr3092: + goto st1329; +tr3375: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1184; -tr3081: + goto st1329; +tr3364: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78549,7 +85035,7 @@ tr3081: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78557,14 +85043,14 @@ tr3081: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1184; -tr3099: + goto st1329; +tr3382: { s->number64_tmp = s->number64; } @@ -78577,7 +85063,7 @@ tr3099: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78585,17 +85071,17 @@ tr3099: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1184; -st1184: + goto st1329; +st1329: if ( ++p == pe ) - goto _test_eof1184; -case 1184: + goto _test_eof1329; +case 1329: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -78615,11 +85101,11 @@ case 1184: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3093; + goto tr3376; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3092; - goto tr2925; -tr3025: + goto tr3375; + goto tr3208; +tr3308: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78629,7 +85115,7 @@ tr3025: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78639,7 +85125,7 @@ tr3025: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78671,8 +85157,8 @@ tr3025: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -tr3034: + goto st1708; +tr3317: { // Write version. *(rdata_tail) = 0; @@ -78702,8 +85188,8 @@ tr3034: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -tr3045: + goto st1708; +tr3328: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78713,7 +85199,7 @@ tr3045: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78721,7 +85207,7 @@ tr3045: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78753,8 +85239,8 @@ tr3045: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -tr3064: + goto st1708; +tr3347: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78764,7 +85250,7 @@ tr3064: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78772,7 +85258,7 @@ tr3064: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78804,8 +85290,8 @@ tr3064: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -tr3082: + goto st1708; +tr3365: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -78815,7 +85301,7 @@ tr3082: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78823,7 +85309,7 @@ tr3082: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78855,8 +85341,8 @@ tr3082: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -tr3100: + goto st1708; +tr3383: { s->number64_tmp = s->number64; } @@ -78869,7 +85355,7 @@ tr3100: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78877,7 +85363,7 @@ tr3100: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78909,8 +85395,8 @@ tr3100: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -tr3113: + goto st1708; +tr3396: { s->number64_tmp = s->number64; } @@ -78923,7 +85409,7 @@ tr3113: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78931,7 +85417,7 @@ tr3113: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78963,8 +85449,8 @@ tr3113: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -tr3126: + goto st1708; +tr3409: { s->number64_tmp = s->number64; } @@ -78977,7 +85463,7 @@ tr3126: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -78985,7 +85471,7 @@ tr3126: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79017,8 +85503,8 @@ tr3126: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -tr3139: + goto st1708; +tr3422: { s->number64_tmp = s->number64; } @@ -79031,7 +85517,7 @@ tr3139: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79041,7 +85527,7 @@ tr3139: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79073,13 +85559,13 @@ tr3139: { p--; {cs = stack[--top];goto _again;} } - goto st1555; -st1555: + goto st1708; +st1708: if ( ++p == pe ) - goto _test_eof1555; -case 1555: + goto _test_eof1708; +case 1708: goto st0; -tr3090: +tr3373: { s->line_counter++; } @@ -79112,8 +85598,8 @@ tr3090: { p--; {cs = stack[--top];goto _again;} } - goto st1556; -tr3083: + goto st1709; +tr3366: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79123,7 +85609,7 @@ tr3083: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79131,7 +85617,7 @@ tr3083: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79166,8 +85652,8 @@ tr3083: { p--; {cs = stack[--top];goto _again;} } - goto st1556; -tr3101: + goto st1709; +tr3384: { s->number64_tmp = s->number64; } @@ -79180,7 +85666,7 @@ tr3101: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79188,7 +85674,7 @@ tr3101: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79223,11 +85709,11 @@ tr3101: { p--; {cs = stack[--top];goto _again;} } - goto st1556; -st1556: + goto st1709; +st1709: if ( ++p == pe ) - goto _test_eof1556; -case 1556: + goto _test_eof1709; +case 1709: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79245,19 +85731,19 @@ case 1556: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1183; - case 32: goto st1183; - case 40: goto tr3086; - case 41: goto tr3087; - case 3082: goto tr3088; - case 3131: goto tr3089; - case 3338: goto tr3034; - case 3387: goto tr3034; - case 3594: goto tr3090; - case 3643: goto tr3091; + case 9: goto st1328; + case 32: goto st1328; + case 40: goto tr3369; + case 41: goto tr3370; + case 3082: goto tr3371; + case 3131: goto tr3372; + case 3338: goto tr3317; + case 3387: goto tr3317; + case 3594: goto tr3373; + case 3643: goto tr3374; } - goto tr2925; -tr3091: + goto tr3208; +tr3374: { s->buffer_length = 0; } @@ -79290,8 +85776,8 @@ tr3091: { p--; {cs = stack[--top];goto _again;} } - goto st1557; -tr3084: + goto st1710; +tr3367: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79301,7 +85787,7 @@ tr3084: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79309,7 +85795,7 @@ tr3084: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79344,8 +85830,8 @@ tr3084: { p--; {cs = stack[--top];goto _again;} } - goto st1557; -tr3102: + goto st1710; +tr3385: { s->number64_tmp = s->number64; } @@ -79358,7 +85844,7 @@ tr3102: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79366,7 +85852,7 @@ tr3102: s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79401,11 +85887,11 @@ tr3102: { p--; {cs = stack[--top];goto _again;} } - goto st1557; -st1557: + goto st1710; +st1710: if ( ++p == pe ) - goto _test_eof1557; -case 1557: + goto _test_eof1710; +case 1710: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79425,14 +85911,14 @@ case 1557: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3093; + goto tr3376; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3092; - goto tr2925; -st1185: + goto tr3375; + goto tr3208; +st1330: if ( ++p == pe ) - goto _test_eof1185; -case 1185: + goto _test_eof1330; +case 1330: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79450,22 +85936,22 @@ case 1185: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3094; - case 32: goto tr3094; - case 40: goto tr3095; - case 41: goto tr3096; - case 109: goto tr3094; - case 3082: goto tr3098; - case 3131: goto tr3099; - case 3338: goto tr3100; - case 3387: goto tr3100; - case 3594: goto tr3101; - case 3643: goto tr3102; + case 9: goto tr3377; + case 32: goto tr3377; + case 40: goto tr3378; + case 41: goto tr3379; + case 109: goto tr3377; + case 3082: goto tr3381; + case 3131: goto tr3382; + case 3338: goto tr3383; + case 3387: goto tr3383; + case 3594: goto tr3384; + case 3643: goto tr3385; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3097; - goto tr2925; -tr3097: + goto tr3380; + goto tr3208; +tr3380: { s->number64_tmp = s->number64; } @@ -79483,14 +85969,14 @@ tr3097: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1186; -tr3103: + goto st1331; +tr3386: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -79502,17 +85988,17 @@ tr3103: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1186; -st1186: + goto st1331; +st1331: if ( ++p == pe ) - goto _test_eof1186; -case 1186: + goto _test_eof1331; +case 1331: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79530,34 +86016,34 @@ case 1186: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3075; - case 32: goto tr3075; - case 40: goto tr3076; - case 41: goto tr3077; - case 109: goto tr3075; - case 3082: goto tr3080; - case 3131: goto tr3081; - case 3338: goto tr3082; - case 3387: goto tr3082; - case 3594: goto tr3083; - case 3643: goto tr3084; + case 9: goto tr3358; + case 32: goto tr3358; + case 40: goto tr3359; + case 41: goto tr3360; + case 109: goto tr3358; + case 3082: goto tr3363; + case 3131: goto tr3364; + case 3338: goto tr3365; + case 3387: goto tr3365; + case 3594: goto tr3366; + case 3643: goto tr3367; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3103; - goto tr2925; -tr3072: + goto tr3386; + goto tr3208; +tr3355: { s->buffer_length = 0; } - goto st1187; -tr3104: + goto st1332; +tr3387: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1187; -tr3063: + goto st1332; +tr3346: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79567,7 +86053,7 @@ tr3063: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79575,14 +86061,14 @@ tr3063: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1187; -tr3112: + goto st1332; +tr3395: { s->number64_tmp = s->number64; } @@ -79595,7 +86081,7 @@ tr3112: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79603,17 +86089,17 @@ tr3112: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1187; -st1187: + goto st1332; +st1332: if ( ++p == pe ) - goto _test_eof1187; -case 1187: + goto _test_eof1332; +case 1332: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79633,11 +86119,11 @@ case 1187: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3105; + goto tr3388; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3104; - goto tr2925; -tr3073: + goto tr3387; + goto tr3208; +tr3356: { s->line_counter++; } @@ -79670,8 +86156,8 @@ tr3073: { p--; {cs = stack[--top];goto _again;} } - goto st1558; -tr3065: + goto st1711; +tr3348: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79681,7 +86167,7 @@ tr3065: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79689,7 +86175,7 @@ tr3065: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79724,8 +86210,8 @@ tr3065: { p--; {cs = stack[--top];goto _again;} } - goto st1558; -tr3114: + goto st1711; +tr3397: { s->number64_tmp = s->number64; } @@ -79738,7 +86224,7 @@ tr3114: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79746,7 +86232,7 @@ tr3114: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79781,11 +86267,11 @@ tr3114: { p--; {cs = stack[--top];goto _again;} } - goto st1558; -st1558: + goto st1711; +st1711: if ( ++p == pe ) - goto _test_eof1558; -case 1558: + goto _test_eof1711; +case 1711: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -79803,21 +86289,21 @@ case 1558: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1181; - case 32: goto st1181; - case 40: goto tr3068; - case 41: goto tr3069; - case 3082: goto tr3071; - case 3131: goto tr3072; - case 3338: goto tr3034; - case 3387: goto tr3034; - case 3594: goto tr3073; - case 3643: goto tr3074; + case 9: goto st1326; + case 32: goto st1326; + case 40: goto tr3351; + case 41: goto tr3352; + case 3082: goto tr3354; + case 3131: goto tr3355; + case 3338: goto tr3317; + case 3387: goto tr3317; + case 3594: goto tr3356; + case 3643: goto tr3357; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3070; - goto tr2925; -tr3074: + goto tr3353; + goto tr3208; +tr3357: { s->buffer_length = 0; } @@ -79850,8 +86336,8 @@ tr3074: { p--; {cs = stack[--top];goto _again;} } - goto st1559; -tr3066: + goto st1712; +tr3349: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -79861,7 +86347,7 @@ tr3066: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79869,7 +86355,7 @@ tr3066: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79904,8 +86390,8 @@ tr3066: { p--; {cs = stack[--top];goto _again;} } - goto st1559; -tr3115: + goto st1712; +tr3398: { s->number64_tmp = s->number64; } @@ -79918,7 +86404,7 @@ tr3115: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79926,7 +86412,7 @@ tr3115: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -79961,11 +86447,11 @@ tr3115: { p--; {cs = stack[--top];goto _again;} } - goto st1559; -st1559: + goto st1712; +st1712: if ( ++p == pe ) - goto _test_eof1559; -case 1559: + goto _test_eof1712; +case 1712: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -79985,14 +86471,14 @@ case 1559: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3105; + goto tr3388; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3104; - goto tr2925; -st1188: + goto tr3387; + goto tr3208; +st1333: if ( ++p == pe ) - goto _test_eof1188; -case 1188: + goto _test_eof1333; +case 1333: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80010,22 +86496,22 @@ case 1188: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3106; - case 32: goto tr3106; - case 40: goto tr3107; - case 41: goto tr3108; - case 109: goto tr3110; - case 3082: goto tr3111; - case 3131: goto tr3112; - case 3338: goto tr3113; - case 3387: goto tr3113; - case 3594: goto tr3114; - case 3643: goto tr3115; + case 9: goto tr3389; + case 32: goto tr3389; + case 40: goto tr3390; + case 41: goto tr3391; + case 109: goto tr3393; + case 3082: goto tr3394; + case 3131: goto tr3395; + case 3338: goto tr3396; + case 3387: goto tr3396; + case 3594: goto tr3397; + case 3643: goto tr3398; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3109; - goto tr2925; -tr3109: + goto tr3392; + goto tr3208; +tr3392: { s->number64_tmp = s->number64; } @@ -80043,14 +86529,14 @@ tr3109: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1189; -tr3116: + goto st1334; +tr3399: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80062,17 +86548,17 @@ tr3116: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1189; -st1189: + goto st1334; +st1334: if ( ++p == pe ) - goto _test_eof1189; -case 1189: + goto _test_eof1334; +case 1334: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80090,22 +86576,22 @@ case 1189: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3056; - case 32: goto tr3056; - case 40: goto tr3057; - case 41: goto tr3058; - case 109: goto tr3061; - case 3082: goto tr3062; - case 3131: goto tr3063; - case 3338: goto tr3064; - case 3387: goto tr3064; - case 3594: goto tr3065; - case 3643: goto tr3066; + case 9: goto tr3339; + case 32: goto tr3339; + case 40: goto tr3340; + case 41: goto tr3341; + case 109: goto tr3344; + case 3082: goto tr3345; + case 3131: goto tr3346; + case 3338: goto tr3347; + case 3387: goto tr3347; + case 3594: goto tr3348; + case 3643: goto tr3349; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3116; - goto tr2925; -tr3061: + goto tr3399; + goto tr3208; +tr3344: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -80115,7 +86601,7 @@ tr3061: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80123,11 +86609,11 @@ tr3061: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1190; -tr3110: + goto st1335; +tr3393: { s->number64_tmp = s->number64; } @@ -80140,7 +86626,7 @@ tr3110: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80148,14 +86634,14 @@ tr3110: s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1190; -st1190: + goto st1335; +st1335: if ( ++p == pe ) - goto _test_eof1190; -case 1190: + goto _test_eof1335; +case 1335: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80173,31 +86659,31 @@ case 1190: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1181; - case 32: goto st1181; - case 40: goto tr3068; - case 41: goto tr3069; - case 3082: goto tr3071; - case 3131: goto tr3072; - case 3338: goto tr3034; - case 3387: goto tr3034; - case 3594: goto tr3073; - case 3643: goto tr3074; + case 9: goto st1326; + case 32: goto st1326; + case 40: goto tr3351; + case 41: goto tr3352; + case 3082: goto tr3354; + case 3131: goto tr3355; + case 3338: goto tr3317; + case 3387: goto tr3317; + case 3594: goto tr3356; + case 3643: goto tr3357; } - goto tr2925; -tr3053: + goto tr3208; +tr3336: { s->buffer_length = 0; } - goto st1191; -tr3117: + goto st1336; +tr3400: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1191; -tr3044: + goto st1336; +tr3327: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -80207,7 +86693,7 @@ tr3044: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80215,14 +86701,14 @@ tr3044: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1191; -tr3125: + goto st1336; +tr3408: { s->number64_tmp = s->number64; } @@ -80235,7 +86721,7 @@ tr3125: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80243,17 +86729,17 @@ tr3125: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1191; -st1191: + goto st1336; +st1336: if ( ++p == pe ) - goto _test_eof1191; -case 1191: + goto _test_eof1336; +case 1336: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80273,11 +86759,11 @@ case 1191: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3118; + goto tr3401; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3117; - goto tr2925; -tr3054: + goto tr3400; + goto tr3208; +tr3337: { s->line_counter++; } @@ -80310,8 +86796,8 @@ tr3054: { p--; {cs = stack[--top];goto _again;} } - goto st1560; -tr3046: + goto st1713; +tr3329: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -80321,7 +86807,7 @@ tr3046: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80329,7 +86815,7 @@ tr3046: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80364,8 +86850,8 @@ tr3046: { p--; {cs = stack[--top];goto _again;} } - goto st1560; -tr3127: + goto st1713; +tr3410: { s->number64_tmp = s->number64; } @@ -80378,7 +86864,7 @@ tr3127: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80386,7 +86872,7 @@ tr3127: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80421,11 +86907,11 @@ tr3127: { p--; {cs = stack[--top];goto _again;} } - goto st1560; -st1560: + goto st1713; +st1713: if ( ++p == pe ) - goto _test_eof1560; -case 1560: + goto _test_eof1713; +case 1713: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80443,21 +86929,21 @@ case 1560: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1179; - case 32: goto st1179; - case 40: goto tr3049; - case 41: goto tr3050; - case 3082: goto tr3052; - case 3131: goto tr3053; - case 3338: goto tr3034; - case 3387: goto tr3034; - case 3594: goto tr3054; - case 3643: goto tr3055; + case 9: goto st1324; + case 32: goto st1324; + case 40: goto tr3332; + case 41: goto tr3333; + case 3082: goto tr3335; + case 3131: goto tr3336; + case 3338: goto tr3317; + case 3387: goto tr3317; + case 3594: goto tr3337; + case 3643: goto tr3338; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3051; - goto tr2925; -tr3055: + goto tr3334; + goto tr3208; +tr3338: { s->buffer_length = 0; } @@ -80490,8 +86976,8 @@ tr3055: { p--; {cs = stack[--top];goto _again;} } - goto st1561; -tr3047: + goto st1714; +tr3330: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -80501,7 +86987,7 @@ tr3047: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80509,7 +86995,7 @@ tr3047: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80544,8 +87030,8 @@ tr3047: { p--; {cs = stack[--top];goto _again;} } - goto st1561; -tr3128: + goto st1714; +tr3411: { s->number64_tmp = s->number64; } @@ -80558,7 +87044,7 @@ tr3128: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80566,7 +87052,7 @@ tr3128: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80601,11 +87087,11 @@ tr3128: { p--; {cs = stack[--top];goto _again;} } - goto st1561; -st1561: + goto st1714; +st1714: if ( ++p == pe ) - goto _test_eof1561; -case 1561: + goto _test_eof1714; +case 1714: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80625,14 +87111,14 @@ case 1561: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3118; + goto tr3401; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3117; - goto tr2925; -st1192: + goto tr3400; + goto tr3208; +st1337: if ( ++p == pe ) - goto _test_eof1192; -case 1192: + goto _test_eof1337; +case 1337: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80650,22 +87136,22 @@ case 1192: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3119; - case 32: goto tr3119; - case 40: goto tr3120; - case 41: goto tr3121; - case 109: goto tr3123; - case 3082: goto tr3124; - case 3131: goto tr3125; - case 3338: goto tr3126; - case 3387: goto tr3126; - case 3594: goto tr3127; - case 3643: goto tr3128; + case 9: goto tr3402; + case 32: goto tr3402; + case 40: goto tr3403; + case 41: goto tr3404; + case 109: goto tr3406; + case 3082: goto tr3407; + case 3131: goto tr3408; + case 3338: goto tr3409; + case 3387: goto tr3409; + case 3594: goto tr3410; + case 3643: goto tr3411; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3122; - goto tr2925; -tr3122: + goto tr3405; + goto tr3208; +tr3405: { s->number64_tmp = s->number64; } @@ -80683,14 +87169,14 @@ tr3122: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1193; -tr3129: + goto st1338; +tr3412: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -80702,17 +87188,17 @@ tr3129: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1193; -st1193: + goto st1338; +st1338: if ( ++p == pe ) - goto _test_eof1193; -case 1193: + goto _test_eof1338; +case 1338: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80730,22 +87216,22 @@ case 1193: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3037; - case 32: goto tr3037; - case 40: goto tr3038; - case 41: goto tr3039; - case 109: goto tr3042; - case 3082: goto tr3043; - case 3131: goto tr3044; - case 3338: goto tr3045; - case 3387: goto tr3045; - case 3594: goto tr3046; - case 3643: goto tr3047; + case 9: goto tr3320; + case 32: goto tr3320; + case 40: goto tr3321; + case 41: goto tr3322; + case 109: goto tr3325; + case 3082: goto tr3326; + case 3131: goto tr3327; + case 3338: goto tr3328; + case 3387: goto tr3328; + case 3594: goto tr3329; + case 3643: goto tr3330; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3129; - goto tr2925; -tr3042: + goto tr3412; + goto tr3208; +tr3325: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -80755,7 +87241,7 @@ tr3042: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80763,11 +87249,11 @@ tr3042: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1194; -tr3123: + goto st1339; +tr3406: { s->number64_tmp = s->number64; } @@ -80780,7 +87266,7 @@ tr3123: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80788,14 +87274,14 @@ tr3123: s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1194; -st1194: + goto st1339; +st1339: if ( ++p == pe ) - goto _test_eof1194; -case 1194: + goto _test_eof1339; +case 1339: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -80813,31 +87299,31 @@ case 1194: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1179; - case 32: goto st1179; - case 40: goto tr3049; - case 41: goto tr3050; - case 3082: goto tr3052; - case 3131: goto tr3053; - case 3338: goto tr3034; - case 3387: goto tr3034; - case 3594: goto tr3054; - case 3643: goto tr3055; - } - goto tr2925; -tr3033: + case 9: goto st1324; + case 32: goto st1324; + case 40: goto tr3332; + case 41: goto tr3333; + case 3082: goto tr3335; + case 3131: goto tr3336; + case 3338: goto tr3317; + case 3387: goto tr3317; + case 3594: goto tr3337; + case 3643: goto tr3338; + } + goto tr3208; +tr3316: { s->buffer_length = 0; } - goto st1195; -tr3130: + goto st1340; +tr3413: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1195; -tr3024: + goto st1340; +tr3307: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -80847,7 +87333,7 @@ tr3024: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80857,14 +87343,14 @@ tr3024: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1195; -tr3138: + goto st1340; +tr3421: { s->number64_tmp = s->number64; } @@ -80877,7 +87363,7 @@ tr3138: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80887,17 +87373,17 @@ tr3138: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1195; -st1195: + goto st1340; +st1340: if ( ++p == pe ) - goto _test_eof1195; -case 1195: + goto _test_eof1340; +case 1340: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -80917,11 +87403,11 @@ case 1195: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3131; + goto tr3414; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3130; - goto tr2925; -tr3026: + goto tr3413; + goto tr3208; +tr3309: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -80931,7 +87417,7 @@ tr3026: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80941,7 +87427,7 @@ tr3026: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -80976,8 +87462,8 @@ tr3026: { p--; {cs = stack[--top];goto _again;} } - goto st1562; -tr3035: + goto st1715; +tr3318: { s->line_counter++; } @@ -81010,8 +87496,8 @@ tr3035: { p--; {cs = stack[--top];goto _again;} } - goto st1562; -tr3140: + goto st1715; +tr3423: { s->number64_tmp = s->number64; } @@ -81024,7 +87510,7 @@ tr3140: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81034,7 +87520,7 @@ tr3140: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81069,11 +87555,11 @@ tr3140: { p--; {cs = stack[--top];goto _again;} } - goto st1562; -st1562: + goto st1715; +st1715: if ( ++p == pe ) - goto _test_eof1562; -case 1562: + goto _test_eof1715; +case 1715: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81091,21 +87577,21 @@ case 1562: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1177; - case 32: goto st1177; - case 40: goto tr3029; - case 41: goto tr3030; - case 3082: goto tr3032; - case 3131: goto tr3033; - case 3338: goto tr3034; - case 3387: goto tr3034; - case 3594: goto tr3035; - case 3643: goto tr3036; + case 9: goto st1322; + case 32: goto st1322; + case 40: goto tr3312; + case 41: goto tr3313; + case 3082: goto tr3315; + case 3131: goto tr3316; + case 3338: goto tr3317; + case 3387: goto tr3317; + case 3594: goto tr3318; + case 3643: goto tr3319; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3031; - goto tr2925; -tr3027: + goto tr3314; + goto tr3208; +tr3310: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -81115,7 +87601,7 @@ tr3027: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81125,7 +87611,7 @@ tr3027: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81160,8 +87646,8 @@ tr3027: { p--; {cs = stack[--top];goto _again;} } - goto st1563; -tr3036: + goto st1716; +tr3319: { s->buffer_length = 0; } @@ -81194,8 +87680,8 @@ tr3036: { p--; {cs = stack[--top];goto _again;} } - goto st1563; -tr3141: + goto st1716; +tr3424: { s->number64_tmp = s->number64; } @@ -81208,7 +87694,7 @@ tr3141: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81218,7 +87704,7 @@ tr3141: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81253,11 +87739,11 @@ tr3141: { p--; {cs = stack[--top];goto _again;} } - goto st1563; -st1563: + goto st1716; +st1716: if ( ++p == pe ) - goto _test_eof1563; -case 1563: + goto _test_eof1716; +case 1716: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81277,14 +87763,14 @@ case 1563: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3131; + goto tr3414; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3130; - goto tr2925; -st1196: + goto tr3413; + goto tr3208; +st1341: if ( ++p == pe ) - goto _test_eof1196; -case 1196: + goto _test_eof1341; +case 1341: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81302,22 +87788,22 @@ case 1196: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3132; - case 32: goto tr3132; - case 40: goto tr3133; - case 41: goto tr3134; - case 109: goto tr3136; - case 3082: goto tr3137; - case 3131: goto tr3138; - case 3338: goto tr3139; - case 3387: goto tr3139; - case 3594: goto tr3140; - case 3643: goto tr3141; + case 9: goto tr3415; + case 32: goto tr3415; + case 40: goto tr3416; + case 41: goto tr3417; + case 109: goto tr3419; + case 3082: goto tr3420; + case 3131: goto tr3421; + case 3338: goto tr3422; + case 3387: goto tr3422; + case 3594: goto tr3423; + case 3643: goto tr3424; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3135; - goto tr2925; -tr3135: + goto tr3418; + goto tr3208; +tr3418: { s->number64_tmp = s->number64; } @@ -81335,14 +87821,14 @@ tr3135: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1197; -tr3142: + goto st1342; +tr3425: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -81354,17 +87840,17 @@ tr3142: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1197; -st1197: + goto st1342; +st1342: if ( ++p == pe ) - goto _test_eof1197; -case 1197: + goto _test_eof1342; +case 1342: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81382,22 +87868,22 @@ case 1197: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3017; - case 32: goto tr3017; - case 40: goto tr3018; - case 41: goto tr3019; - case 109: goto tr3022; - case 3082: goto tr3023; - case 3131: goto tr3024; - case 3338: goto tr3025; - case 3387: goto tr3025; - case 3594: goto tr3026; - case 3643: goto tr3027; + case 9: goto tr3300; + case 32: goto tr3300; + case 40: goto tr3301; + case 41: goto tr3302; + case 109: goto tr3305; + case 3082: goto tr3306; + case 3131: goto tr3307; + case 3338: goto tr3308; + case 3387: goto tr3308; + case 3594: goto tr3309; + case 3643: goto tr3310; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3142; - goto tr2925; -tr3022: + goto tr3425; + goto tr3208; +tr3305: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -81407,7 +87893,7 @@ tr3022: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81417,11 +87903,11 @@ tr3022: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1198; -tr3136: + goto st1343; +tr3419: { s->number64_tmp = s->number64; } @@ -81434,7 +87920,7 @@ tr3136: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81444,14 +87930,14 @@ tr3136: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1198; -st1198: + goto st1343; +st1343: if ( ++p == pe ) - goto _test_eof1198; -case 1198: + goto _test_eof1343; +case 1343: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81469,42 +87955,42 @@ case 1198: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1177; - case 32: goto st1177; - case 40: goto tr3029; - case 41: goto tr3030; - case 3082: goto tr3032; - case 3131: goto tr3033; - case 3338: goto tr3034; - case 3387: goto tr3034; - case 3594: goto tr3035; - case 3643: goto tr3036; + case 9: goto st1322; + case 32: goto st1322; + case 40: goto tr3312; + case 41: goto tr3313; + case 3082: goto tr3315; + case 3131: goto tr3316; + case 3338: goto tr3317; + case 3387: goto tr3317; + case 3594: goto tr3318; + case 3643: goto tr3319; } - goto tr2925; -tr3013: + goto tr3208; +tr3296: { s->buffer_length = 0; } - goto st1199; -tr3143: + goto st1344; +tr3426: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1199; -tr3149: + goto st1344; +tr3432: { s->loc.long_sign = -1; } { s->buffer_length = 0; } - goto st1199; -st1199: + goto st1344; +st1344: if ( ++p == pe ) - goto _test_eof1199; -case 1199: + goto _test_eof1344; +case 1344: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81524,14 +88010,14 @@ case 1199: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3144; + goto tr3427; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3143; - goto tr2925; -st1200: + goto tr3426; + goto tr3208; +st1345: if ( ++p == pe ) - goto _test_eof1200; -case 1200: + goto _test_eof1345; +case 1345: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81545,27 +88031,27 @@ case 1200: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3145; - case 32: goto tr3145; - case 40: goto tr3146; - case 41: goto tr3147; - case 2058: goto tr3148; - case 2107: goto tr3149; + case 9: goto tr3428; + case 32: goto tr3428; + case 40: goto tr3429; + case 41: goto tr3430; + case 2058: goto tr3431; + case 2107: goto tr3432; } - goto tr2925; -tr3008: + goto tr3208; +tr3291: { s->buffer_length = 0; } - goto st1201; -tr3150: + goto st1346; +tr3433: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1201; -tr3003: + goto st1346; +tr3286: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -81575,7 +88061,7 @@ tr3003: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81583,14 +88069,14 @@ tr3003: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1201; -tr3157: + goto st1346; +tr3440: { s->number64_tmp = s->number64; } @@ -81603,7 +88089,7 @@ tr3157: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81611,17 +88097,17 @@ tr3157: s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1201; -st1201: + goto st1346; +st1346: if ( ++p == pe ) - goto _test_eof1201; -case 1201: + goto _test_eof1346; +case 1346: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81641,14 +88127,14 @@ case 1201: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3151; + goto tr3434; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3150; - goto tr2925; -st1202: + goto tr3433; + goto tr3208; +st1347: if ( ++p == pe ) - goto _test_eof1202; -case 1202: + goto _test_eof1347; +case 1347: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81662,17 +88148,17 @@ case 1202: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3152; - case 32: goto tr3152; - case 40: goto tr3153; - case 41: goto tr3154; - case 2058: goto tr3156; - case 2107: goto tr3157; + case 9: goto tr3435; + case 32: goto tr3435; + case 40: goto tr3436; + case 41: goto tr3437; + case 2058: goto tr3439; + case 2107: goto tr3440; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3155; - goto tr2925; -tr3155: + goto tr3438; + goto tr3208; +tr3438: { s->number64_tmp = s->number64; } @@ -81690,14 +88176,14 @@ tr3155: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1203; -tr3158: + goto st1348; +tr3441: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -81709,17 +88195,17 @@ tr3158: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1203; -st1203: + goto st1348; +st1348: if ( ++p == pe ) - goto _test_eof1203; -case 1203: + goto _test_eof1348; +case 1348: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81733,45 +88219,45 @@ case 1203: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2997; - case 32: goto tr2997; - case 40: goto tr2998; - case 41: goto tr2999; - case 2058: goto tr3002; - case 2107: goto tr3003; + case 9: goto tr3280; + case 32: goto tr3280; + case 40: goto tr3281; + case 41: goto tr3282; + case 2058: goto tr3285; + case 2107: goto tr3286; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3158; - goto tr2925; -tr2996: + goto tr3441; + goto tr3208; +tr3279: { s->buffer_length = 0; } - goto st1204; -tr3159: + goto st1349; +tr3442: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1204; -tr2990: + goto st1349; +tr3273: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1204; -st1204: + goto st1349; +st1349: if ( ++p == pe ) - goto _test_eof1204; -case 1204: + goto _test_eof1349; +case 1349: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81791,39 +88277,39 @@ case 1204: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3160; + goto tr3443; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3159; - goto tr2925; -tr2984: + goto tr3442; + goto tr3208; +tr3267: { s->buffer_length = 0; } - goto st1205; -tr3161: + goto st1350; +tr3444: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1205; -tr2976: + goto st1350; +tr3259: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1205; -st1205: + goto st1350; +st1350: if ( ++p == pe ) - goto _test_eof1205; -case 1205: + goto _test_eof1350; +case 1350: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81843,34 +88329,34 @@ case 1205: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3162; + goto tr3445; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3161; - goto tr2925; -tr2969: + goto tr3444; + goto tr3208; +tr3252: { s->buffer_length = 0; } - goto st1206; -tr3163: + goto st1351; +tr3446: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1206; -tr3169: + goto st1351; +tr3452: { s->loc.lat_sign = -1; } { s->buffer_length = 0; } - goto st1206; -st1206: + goto st1351; +st1351: if ( ++p == pe ) - goto _test_eof1206; -case 1206: + goto _test_eof1351; +case 1351: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -81890,14 +88376,14 @@ case 1206: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3164; + goto tr3447; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3163; - goto tr2925; -st1207: + goto tr3446; + goto tr3208; +st1352: if ( ++p == pe ) - goto _test_eof1207; -case 1207: + goto _test_eof1352; +case 1352: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -81911,27 +88397,27 @@ case 1207: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3165; - case 32: goto tr3165; - case 40: goto tr3166; - case 41: goto tr3167; - case 2058: goto tr3168; - case 2107: goto tr3169; + case 9: goto tr3448; + case 32: goto tr3448; + case 40: goto tr3449; + case 41: goto tr3450; + case 2058: goto tr3451; + case 2107: goto tr3452; } - goto tr2925; -tr2964: + goto tr3208; +tr3247: { s->buffer_length = 0; } - goto st1208; -tr3170: + goto st1353; +tr3453: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1208; -tr2959: + goto st1353; +tr3242: { if (s->decimal_counter == 0 && s->number64 < UINT32_MAX) { s->number64 *= pow(10, s->decimals); @@ -81941,7 +88427,7 @@ tr2959: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81949,14 +88435,14 @@ tr2959: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1208; -tr3177: + goto st1353; +tr3460: { s->number64_tmp = s->number64; } @@ -81969,7 +88455,7 @@ tr3177: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -81977,17 +88463,17 @@ tr3177: s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1208; -st1208: + goto st1353; +st1353: if ( ++p == pe ) - goto _test_eof1208; -case 1208: + goto _test_eof1353; +case 1353: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82007,14 +88493,14 @@ case 1208: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3171; + goto tr3454; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3170; - goto tr2925; -st1209: + goto tr3453; + goto tr3208; +st1354: if ( ++p == pe ) - goto _test_eof1209; -case 1209: + goto _test_eof1354; +case 1354: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82028,17 +88514,17 @@ case 1209: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3172; - case 32: goto tr3172; - case 40: goto tr3173; - case 41: goto tr3174; - case 2058: goto tr3176; - case 2107: goto tr3177; + case 9: goto tr3455; + case 32: goto tr3455; + case 40: goto tr3456; + case 41: goto tr3457; + case 2058: goto tr3459; + case 2107: goto tr3460; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3175; - goto tr2925; -tr3175: + goto tr3458; + goto tr3208; +tr3458: { s->number64_tmp = s->number64; } @@ -82056,14 +88542,14 @@ tr3175: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1210; -tr3178: + goto st1355; +tr3461: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -82075,17 +88561,17 @@ tr3178: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->decimal_counter++; } - goto st1210; -st1210: + goto st1355; +st1355: if ( ++p == pe ) - goto _test_eof1210; -case 1210: + goto _test_eof1355; +case 1355: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82099,45 +88585,45 @@ case 1210: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr2953; - case 32: goto tr2953; - case 40: goto tr2954; - case 41: goto tr2955; - case 2058: goto tr2958; - case 2107: goto tr2959; + case 9: goto tr3236; + case 32: goto tr3236; + case 40: goto tr3237; + case 41: goto tr3238; + case 2058: goto tr3241; + case 2107: goto tr3242; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3178; - goto tr2925; -tr2952: + goto tr3461; + goto tr3208; +tr3235: { s->buffer_length = 0; } - goto st1211; -tr3179: + goto st1356; +tr3462: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1211; -tr2946: + goto st1356; +tr3229: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1211; -st1211: + goto st1356; +st1356: if ( ++p == pe ) - goto _test_eof1211; -case 1211: + goto _test_eof1356; +case 1356: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82157,39 +88643,39 @@ case 1211: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3180; + goto tr3463; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3179; - goto tr2925; -tr2940: + goto tr3462; + goto tr3208; +tr3223: { s->buffer_length = 0; } - goto st1212; -tr3181: + goto st1357; +tr3464: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1212; -tr2932: + goto st1357; +tr3215: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1212; -st1212: + goto st1357; +st1357: if ( ++p == pe ) - goto _test_eof1212; -case 1212: + goto _test_eof1357; +case 1357: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82209,18 +88695,18 @@ case 1212: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3182; + goto tr3465; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3181; - goto tr2925; -st1213: + goto tr3464; + goto tr3208; +st1358: if ( ++p == pe ) - goto _test_eof1213; -case 1213: + goto _test_eof1358; +case 1358: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3183; - goto tr2717; -tr3183: + goto tr3466; + goto tr3000; +tr3466: { s->number64 = 0; } @@ -82235,11 +88721,11 @@ tr3183: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1214; -tr3187: + goto st1359; +tr3470: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -82251,14 +88737,14 @@ tr3187: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1214; -st1214: + goto st1359; +st1359: if ( ++p == pe ) - goto _test_eof1214; -case 1214: + goto _test_eof1359; +case 1359: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82272,40 +88758,40 @@ case 1214: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3184; - case 32: goto tr3184; - case 40: goto tr3185; - case 41: goto tr3186; - case 2058: goto tr3188; - case 2107: goto tr3189; + case 9: goto tr3467; + case 32: goto tr3467; + case 40: goto tr3468; + case 41: goto tr3469; + case 2058: goto tr3471; + case 2107: goto tr3472; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3187; - goto tr2717; -tr3191: + goto tr3470; + goto tr3000; +tr3474: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1215; -tr3192: + goto st1360; +tr3475: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1215; -tr3194: + goto st1360; +tr3477: { s->line_counter++; } - goto st1215; -tr3226: + goto st1360; +tr3509: { s->buffer[s->buffer_length++] = 0; @@ -82315,15 +88801,15 @@ tr3226: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1215; goto _out;} + {p++; cs = 1360; goto _out;} } } } { s->line_counter++; } - goto st1215; -tr3184: + goto st1360; +tr3467: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82331,11 +88817,11 @@ tr3184: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1215; -tr3185: + goto st1360; +tr3468: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82343,18 +88829,18 @@ tr3185: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1215; -tr3186: + goto st1360; +tr3469: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82362,18 +88848,18 @@ tr3186: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1215; -tr3188: + goto st1360; +tr3471: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82381,17 +88867,17 @@ tr3188: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1215; -st1215: + goto st1360; +st1360: if ( ++p == pe ) - goto _test_eof1215; -case 1215: + goto _test_eof1360; +case 1360: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82405,17 +88891,17 @@ case 1215: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1215; - case 32: goto st1215; - case 40: goto tr3191; - case 41: goto tr3192; - case 2058: goto tr3194; - case 2107: goto tr3195; + case 9: goto st1360; + case 32: goto st1360; + case 40: goto tr3474; + case 41: goto tr3475; + case 2058: goto tr3477; + case 2107: goto tr3478; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3193; - goto tr2717; -tr3193: + goto tr3476; + goto tr3000; +tr3476: { s->number64 = 0; } @@ -82430,11 +88916,11 @@ tr3193: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1216; -tr3199: + goto st1361; +tr3482: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -82446,14 +88932,14 @@ tr3199: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1216; -st1216: + goto st1361; +st1361: if ( ++p == pe ) - goto _test_eof1216; -case 1216: + goto _test_eof1361; +case 1361: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82467,40 +88953,40 @@ case 1216: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3196; - case 32: goto tr3196; - case 40: goto tr3197; - case 41: goto tr3198; - case 2058: goto tr3200; - case 2107: goto tr3201; + case 9: goto tr3479; + case 32: goto tr3479; + case 40: goto tr3480; + case 41: goto tr3481; + case 2058: goto tr3483; + case 2107: goto tr3484; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3199; - goto tr2717; -tr3203: + goto tr3482; + goto tr3000; +tr3486: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1217; -tr3204: + goto st1362; +tr3487: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1217; -tr3206: + goto st1362; +tr3489: { s->line_counter++; } - goto st1217; -tr3224: + goto st1362; +tr3507: { s->buffer[s->buffer_length++] = 0; @@ -82510,15 +88996,15 @@ tr3224: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1217; goto _out;} + {p++; cs = 1362; goto _out;} } } } { s->line_counter++; } - goto st1217; -tr3196: + goto st1362; +tr3479: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82526,11 +89012,11 @@ tr3196: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1217; -tr3197: + goto st1362; +tr3480: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82538,18 +89024,18 @@ tr3197: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1217; -tr3198: + goto st1362; +tr3481: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82557,18 +89043,18 @@ tr3198: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1217; -tr3200: + goto st1362; +tr3483: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82576,17 +89062,17 @@ tr3200: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1217; -st1217: + goto st1362; +st1362: if ( ++p == pe ) - goto _test_eof1217; -case 1217: + goto _test_eof1362; +case 1362: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82600,17 +89086,17 @@ case 1217: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1217; - case 32: goto st1217; - case 40: goto tr3203; - case 41: goto tr3204; - case 2058: goto tr3206; - case 2107: goto tr3207; + case 9: goto st1362; + case 32: goto st1362; + case 40: goto tr3486; + case 41: goto tr3487; + case 2058: goto tr3489; + case 2107: goto tr3490; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3205; - goto tr2717; -tr3205: + goto tr3488; + goto tr3000; +tr3488: { s->number64 = 0; } @@ -82625,11 +89111,11 @@ tr3205: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1218; -tr3211: + goto st1363; +tr3494: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -82641,14 +89127,14 @@ tr3211: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1218; -st1218: + goto st1363; +st1363: if ( ++p == pe ) - goto _test_eof1218; -case 1218: + goto _test_eof1363; +case 1363: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82662,40 +89148,40 @@ case 1218: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3208; - case 32: goto tr3208; - case 40: goto tr3209; - case 41: goto tr3210; - case 2058: goto tr3212; - case 2107: goto tr3213; + case 9: goto tr3491; + case 32: goto tr3491; + case 40: goto tr3492; + case 41: goto tr3493; + case 2058: goto tr3495; + case 2107: goto tr3496; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3211; - goto tr2717; -tr3215: + goto tr3494; + goto tr3000; +tr3498: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1219; -tr3216: + goto st1364; +tr3499: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1219; -tr3218: + goto st1364; +tr3501: { s->line_counter++; } - goto st1219; -tr3222: + goto st1364; +tr3505: { s->buffer[s->buffer_length++] = 0; @@ -82705,15 +89191,15 @@ tr3222: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1219; goto _out;} + {p++; cs = 1364; goto _out;} } } } { s->line_counter++; } - goto st1219; -tr3208: + goto st1364; +tr3491: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82721,11 +89207,11 @@ tr3208: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1219; -tr3209: + goto st1364; +tr3492: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82733,18 +89219,18 @@ tr3209: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1219; -tr3210: + goto st1364; +tr3493: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82752,18 +89238,18 @@ tr3210: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1219; -tr3212: + goto st1364; +tr3495: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82771,17 +89257,17 @@ tr3212: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1219; -st1219: + goto st1364; +st1364: if ( ++p == pe ) - goto _test_eof1219; -case 1219: + goto _test_eof1364; +case 1364: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -82795,46 +89281,46 @@ case 1219: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1219; - case 32: goto st1219; - case 40: goto tr3215; - case 41: goto tr3216; - case 42: goto tr3217; - case 92: goto tr3217; - case 95: goto tr3217; - case 2058: goto tr3218; - case 2107: goto tr3219; + case 9: goto st1364; + case 32: goto st1364; + case 40: goto tr3498; + case 41: goto tr3499; + case 42: goto tr3500; + case 92: goto tr3500; + case 95: goto tr3500; + case 2058: goto tr3501; + case 2107: goto tr3502; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3217; + goto tr3500; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3217; + goto tr3500; } else - goto tr3217; + goto tr3500; goto tr78; -tr3217: +tr3500: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1220;goto st331;} } - goto st1220; -st1220: + { p--; {stack[top++] = 1365;goto st340;} } + goto st1365; +st1365: if ( ++p == pe ) - goto _test_eof1220; -case 1220: + goto _test_eof1365; +case 1365: switch( (*p) ) { - case 32: goto tr3220; - case 59: goto tr3220; + case 32: goto tr3503; + case 59: goto tr3503; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3220; + goto tr3503; } else if ( (*p) >= 9 ) - goto tr3220; + goto tr3503; goto tr78; -tr3220: +tr3503: { if (s->to_lower) { dname_to_lower(s->dname); @@ -82846,25 +89332,25 @@ tr3220: { p--; {cs = stack[--top];goto _again;} } - goto st1564; -st1564: + goto st1717; +st1717: if ( ++p == pe ) - goto _test_eof1564; -case 1564: + goto _test_eof1717; +case 1717: goto st0; -tr3219: +tr3502: { s->buffer_length = 0; } - goto st1221; -tr3221: + goto st1366; +tr3504: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1221; -tr3213: + goto st1366; +tr3496: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82872,17 +89358,17 @@ tr3213: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1221; -st1221: + goto st1366; +st1366: if ( ++p == pe ) - goto _test_eof1221; -case 1221: + goto _test_eof1366; +case 1366: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82902,23 +89388,23 @@ case 1221: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3222; + goto tr3505; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3221; + goto tr3504; goto tr78; -tr3207: +tr3490: { s->buffer_length = 0; } - goto st1222; -tr3223: + goto st1367; +tr3506: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1222; -tr3201: + goto st1367; +tr3484: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82926,17 +89412,17 @@ tr3201: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1222; -st1222: + goto st1367; +st1367: if ( ++p == pe ) - goto _test_eof1222; -case 1222: + goto _test_eof1367; +case 1367: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -82956,23 +89442,23 @@ case 1222: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3224; + goto tr3507; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3223; + goto tr3506; goto tr78; -tr3195: +tr3478: { s->buffer_length = 0; } - goto st1223; -tr3225: + goto st1368; +tr3508: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1223; -tr3189: + goto st1368; +tr3472: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -82980,17 +89466,17 @@ tr3189: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1223; -st1223: + goto st1368; +st1368: if ( ++p == pe ) - goto _test_eof1223; -case 1223: + goto _test_eof1368; +case 1368: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -83010,18 +89496,18 @@ case 1223: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3226; + goto tr3509; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3225; + goto tr3508; goto tr78; -st1224: +st1369: if ( ++p == pe ) - goto _test_eof1224; -case 1224: + goto _test_eof1369; +case 1369: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3227; - goto tr2717; -tr3227: + goto tr3510; + goto tr3000; +tr3510: { s->number64 = 0; } @@ -83036,11 +89522,11 @@ tr3227: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1225; -tr3231: + goto st1370; +tr3514: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -83052,14 +89538,14 @@ tr3231: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1225; -st1225: + goto st1370; +st1370: if ( ++p == pe ) - goto _test_eof1225; -case 1225: + goto _test_eof1370; +case 1370: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83073,40 +89559,40 @@ case 1225: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3228; - case 32: goto tr3228; - case 40: goto tr3229; - case 41: goto tr3230; - case 2058: goto tr3232; - case 2107: goto tr3233; + case 9: goto tr3511; + case 32: goto tr3511; + case 40: goto tr3512; + case 41: goto tr3513; + case 2058: goto tr3515; + case 2107: goto tr3516; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3231; - goto tr2717; -tr3235: + goto tr3514; + goto tr3000; +tr3518: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1226; -tr3236: + goto st1371; +tr3519: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1226; -tr3238: + goto st1371; +tr3521: { s->line_counter++; } - goto st1226; -tr3295: + goto st1371; +tr3578: { s->buffer[s->buffer_length++] = 0; @@ -83116,15 +89602,15 @@ tr3295: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1226; goto _out;} + {p++; cs = 1371; goto _out;} } } } { s->line_counter++; } - goto st1226; -tr3228: + goto st1371; +tr3511: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83132,11 +89618,11 @@ tr3228: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1226; -tr3229: + goto st1371; +tr3512: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83144,18 +89630,18 @@ tr3229: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1226; -tr3230: + goto st1371; +tr3513: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83163,18 +89649,18 @@ tr3230: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1226; -tr3232: + goto st1371; +tr3515: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83182,17 +89668,17 @@ tr3232: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1226; -st1226: + goto st1371; +st1371: if ( ++p == pe ) - goto _test_eof1226; -case 1226: + goto _test_eof1371; +case 1371: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83206,17 +89692,17 @@ case 1226: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1226; - case 32: goto st1226; - case 40: goto tr3235; - case 41: goto tr3236; - case 2058: goto tr3238; - case 2107: goto tr3239; + case 9: goto st1371; + case 32: goto st1371; + case 40: goto tr3518; + case 41: goto tr3519; + case 2058: goto tr3521; + case 2107: goto tr3522; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3237; - goto tr2717; -tr3237: + goto tr3520; + goto tr3000; +tr3520: { s->number64 = 0; } @@ -83231,11 +89717,11 @@ tr3237: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1227; -tr3243: + goto st1372; +tr3526: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -83247,14 +89733,14 @@ tr3243: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1227; -st1227: + goto st1372; +st1372: if ( ++p == pe ) - goto _test_eof1227; -case 1227: + goto _test_eof1372; +case 1372: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83268,40 +89754,40 @@ case 1227: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3240; - case 32: goto tr3240; - case 40: goto tr3241; - case 41: goto tr3242; - case 2058: goto tr3244; - case 2107: goto tr3245; + case 9: goto tr3523; + case 32: goto tr3523; + case 40: goto tr3524; + case 41: goto tr3525; + case 2058: goto tr3527; + case 2107: goto tr3528; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3243; - goto tr2717; -tr3248: + goto tr3526; + goto tr3000; +tr3531: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1228; -tr3249: + goto st1373; +tr3532: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1228; -tr3250: + goto st1373; +tr3533: { s->line_counter++; } - goto st1228; -tr3293: + goto st1373; +tr3576: { s->buffer[s->buffer_length++] = 0; @@ -83311,15 +89797,15 @@ tr3293: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1228; goto _out;} + {p++; cs = 1373; goto _out;} } } } { s->line_counter++; } - goto st1228; -tr3240: + goto st1373; +tr3523: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83327,11 +89813,11 @@ tr3240: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1228; -tr3241: + goto st1373; +tr3524: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83339,18 +89825,18 @@ tr3241: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1228; -tr3242: + goto st1373; +tr3525: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83358,18 +89844,18 @@ tr3242: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1228; -tr3244: + goto st1373; +tr3527: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -83377,17 +89863,17 @@ tr3244: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1228; -st1228: + goto st1373; +st1373: if ( ++p == pe ) - goto _test_eof1228; -case 1228: + goto _test_eof1373; +case 1373: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83401,37 +89887,37 @@ case 1228: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1228; - case 32: goto st1228; - case 40: goto tr3248; - case 41: goto tr3249; - case 2058: goto tr3250; - case 2107: goto tr3251; + case 9: goto st1373; + case 32: goto st1373; + case 40: goto tr3531; + case 41: goto tr3532; + case 2058: goto tr3533; + case 2107: goto tr3534; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr3246; + goto tr3529; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr3246; + goto tr3529; } else - goto tr3246; + goto tr3529; goto tr78; -tr3246: +tr3529: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - { p--; {stack[top++] = 1229;goto st340;} } - goto st1229; -st1229: + { p--; {stack[top++] = 1374;goto st349;} } + goto st1374; +st1374: if ( ++p == pe ) - goto _test_eof1229; -case 1229: + goto _test_eof1374; +case 1374: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83445,38 +89931,38 @@ case 1229: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3252; - case 32: goto tr3252; - case 40: goto tr3253; - case 41: goto tr3254; - case 2058: goto tr3255; - case 2107: goto tr3256; + case 9: goto tr3535; + case 32: goto tr3535; + case 40: goto tr3536; + case 41: goto tr3537; + case 2058: goto tr3538; + case 2107: goto tr3539; } goto tr78; -tr3259: +tr3542: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1230; -tr3260: + goto st1375; +tr3543: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1230; -tr3261: + goto st1375; +tr3544: { s->line_counter++; } - goto st1230; -tr3291: + goto st1375; +tr3574: { s->buffer[s->buffer_length++] = 0; @@ -83486,95 +89972,95 @@ tr3291: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1230; goto _out;} + {p++; cs = 1375; goto _out;} } } } { s->line_counter++; } - goto st1230; -tr3252: + goto st1375; +tr3535: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1230; -tr3253: + goto st1375; +tr3536: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1230; -tr3254: + goto st1375; +tr3537: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1230; -tr3255: + goto st1375; +tr3538: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1230; -st1230: + goto st1375; +st1375: if ( ++p == pe ) - goto _test_eof1230; -case 1230: + goto _test_eof1375; +case 1375: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83588,37 +90074,37 @@ case 1230: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1230; - case 32: goto st1230; - case 40: goto tr3259; - case 41: goto tr3260; - case 2058: goto tr3261; - case 2107: goto tr3262; + case 9: goto st1375; + case 32: goto st1375; + case 40: goto tr3542; + case 41: goto tr3543; + case 2058: goto tr3544; + case 2107: goto tr3545; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr3257; + goto tr3540; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr3257; + goto tr3540; } else - goto tr3257; + goto tr3540; goto tr78; -tr3257: +tr3540: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - { p--; {stack[top++] = 1231;goto st340;} } - goto st1231; -st1231: + { p--; {stack[top++] = 1376;goto st349;} } + goto st1376; +st1376: if ( ++p == pe ) - goto _test_eof1231; -case 1231: + goto _test_eof1376; +case 1376: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83632,38 +90118,38 @@ case 1231: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3263; - case 32: goto tr3263; - case 40: goto tr3264; - case 41: goto tr3265; - case 2058: goto tr3266; - case 2107: goto tr3267; + case 9: goto tr3546; + case 32: goto tr3546; + case 40: goto tr3547; + case 41: goto tr3548; + case 2058: goto tr3549; + case 2107: goto tr3550; } goto tr78; -tr3270: +tr3553: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1232; -tr3271: + goto st1377; +tr3554: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1232; -tr3272: + goto st1377; +tr3555: { s->line_counter++; } - goto st1232; -tr3289: + goto st1377; +tr3572: { s->buffer[s->buffer_length++] = 0; @@ -83673,95 +90159,95 @@ tr3289: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1232; goto _out;} + {p++; cs = 1377; goto _out;} } } } { s->line_counter++; } - goto st1232; -tr3263: + goto st1377; +tr3546: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1232; -tr3264: + goto st1377; +tr3547: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1232; -tr3265: + goto st1377; +tr3548: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1232; -tr3266: + goto st1377; +tr3549: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1232; -st1232: + goto st1377; +st1377: if ( ++p == pe ) - goto _test_eof1232; -case 1232: + goto _test_eof1377; +case 1377: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83775,37 +90261,37 @@ case 1232: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1232; - case 32: goto st1232; - case 40: goto tr3270; - case 41: goto tr3271; - case 2058: goto tr3272; - case 2107: goto tr3273; + case 9: goto st1377; + case 32: goto st1377; + case 40: goto tr3553; + case 41: goto tr3554; + case 2058: goto tr3555; + case 2107: goto tr3556; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr3268; + goto tr3551; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr3268; + goto tr3551; } else - goto tr3268; + goto tr3551; goto tr78; -tr3268: +tr3551: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - { p--; {stack[top++] = 1233;goto st340;} } - goto st1233; -st1233: + { p--; {stack[top++] = 1378;goto st349;} } + goto st1378; +st1378: if ( ++p == pe ) - goto _test_eof1233; -case 1233: + goto _test_eof1378; +case 1378: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83819,38 +90305,38 @@ case 1233: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3274; - case 32: goto tr3274; - case 40: goto tr3275; - case 41: goto tr3276; - case 2058: goto tr3277; - case 2107: goto tr3278; + case 9: goto tr3557; + case 32: goto tr3557; + case 40: goto tr3558; + case 41: goto tr3559; + case 2058: goto tr3560; + case 2107: goto tr3561; } goto tr78; -tr3280: +tr3563: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1234; -tr3281: + goto st1379; +tr3564: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1234; -tr3283: + goto st1379; +tr3566: { s->line_counter++; } - goto st1234; -tr3287: + goto st1379; +tr3570: { s->buffer[s->buffer_length++] = 0; @@ -83860,95 +90346,95 @@ tr3287: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1234; goto _out;} + {p++; cs = 1379; goto _out;} } } } { s->line_counter++; } - goto st1234; -tr3274: + goto st1379; +tr3557: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1234; -tr3275: + goto st1379; +tr3558: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1234; -tr3276: + goto st1379; +tr3559: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1234; -tr3277: + goto st1379; +tr3560: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1234; -st1234: + goto st1379; +st1379: if ( ++p == pe ) - goto _test_eof1234; -case 1234: + goto _test_eof1379; +case 1379: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -83962,46 +90448,46 @@ case 1234: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1234; - case 32: goto st1234; - case 40: goto tr3280; - case 41: goto tr3281; - case 42: goto tr3282; - case 92: goto tr3282; - case 95: goto tr3282; - case 2058: goto tr3283; - case 2107: goto tr3284; + case 9: goto st1379; + case 32: goto st1379; + case 40: goto tr3563; + case 41: goto tr3564; + case 42: goto tr3565; + case 92: goto tr3565; + case 95: goto tr3565; + case 2058: goto tr3566; + case 2107: goto tr3567; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3282; + goto tr3565; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3282; + goto tr3565; } else - goto tr3282; + goto tr3565; goto tr78; -tr3282: +tr3565: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1235;goto st331;} } - goto st1235; -st1235: + { p--; {stack[top++] = 1380;goto st340;} } + goto st1380; +st1380: if ( ++p == pe ) - goto _test_eof1235; -case 1235: + goto _test_eof1380; +case 1380: switch( (*p) ) { - case 32: goto tr3285; - case 59: goto tr3285; + case 32: goto tr3568; + case 59: goto tr3568; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3285; + goto tr3568; } else if ( (*p) >= 9 ) - goto tr3285; + goto tr3568; goto tr78; -tr3285: +tr3568: { if (s->to_lower) { dname_to_lower(s->dname); @@ -84013,46 +90499,46 @@ tr3285: { p--; {cs = stack[--top];goto _again;} } - goto st1565; -st1565: + goto st1718; +st1718: if ( ++p == pe ) - goto _test_eof1565; -case 1565: + goto _test_eof1718; +case 1718: goto st0; -tr3284: +tr3567: { s->buffer_length = 0; } - goto st1236; -tr3286: + goto st1381; +tr3569: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1236; -tr3278: + goto st1381; +tr3561: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1236; -st1236: + goto st1381; +st1381: if ( ++p == pe ) - goto _test_eof1236; -case 1236: + goto _test_eof1381; +case 1381: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84072,44 +90558,44 @@ case 1236: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3287; + goto tr3570; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3286; + goto tr3569; goto tr78; -tr3273: +tr3556: { s->buffer_length = 0; } - goto st1237; -tr3288: + goto st1382; +tr3571: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1237; -tr3267: + goto st1382; +tr3550: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1237; -st1237: + goto st1382; +st1382: if ( ++p == pe ) - goto _test_eof1237; -case 1237: + goto _test_eof1382; +case 1382: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84129,44 +90615,44 @@ case 1237: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3289; + goto tr3572; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3288; + goto tr3571; goto tr78; -tr3262: +tr3545: { s->buffer_length = 0; } - goto st1238; -tr3290: + goto st1383; +tr3573: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1238; -tr3256: + goto st1383; +tr3539: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1238; -st1238: + goto st1383; +st1383: if ( ++p == pe ) - goto _test_eof1238; -case 1238: + goto _test_eof1383; +case 1383: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84186,23 +90672,23 @@ case 1238: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3291; + goto tr3574; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3290; + goto tr3573; goto tr78; -tr3251: +tr3534: { s->buffer_length = 0; } - goto st1239; -tr3292: + goto st1384; +tr3575: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1239; -tr3245: + goto st1384; +tr3528: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84210,17 +90696,17 @@ tr3245: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1239; -st1239: + goto st1384; +st1384: if ( ++p == pe ) - goto _test_eof1239; -case 1239: + goto _test_eof1384; +case 1384: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84240,23 +90726,23 @@ case 1239: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3293; + goto tr3576; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3292; + goto tr3575; goto tr78; -tr3239: +tr3522: { s->buffer_length = 0; } - goto st1240; -tr3294: + goto st1385; +tr3577: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1240; -tr3233: + goto st1385; +tr3516: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84264,17 +90750,17 @@ tr3233: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1240; -st1240: + goto st1385; +st1385: if ( ++p == pe ) - goto _test_eof1240; -case 1240: + goto _test_eof1385; +case 1385: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84294,30 +90780,30 @@ case 1240: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3295; + goto tr3578; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3294; + goto tr3577; goto tr78; -st1241: +st1386: if ( ++p == pe ) - goto _test_eof1241; -case 1241: + goto _test_eof1386; +case 1386: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3296; + goto tr3579; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3296; + goto tr3579; } else - goto tr3296; + goto tr3579; goto tr78; -tr3296: - { p--; {stack[top++] = 1242;goto st1052;} } - goto st1242; -st1242: +tr3579: + { p--; {stack[top++] = 1387;goto st1197;} } + goto st1387; +st1387: if ( ++p == pe ) - goto _test_eof1242; -case 1242: + goto _test_eof1387; +case 1387: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84331,38 +90817,38 @@ case 1242: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1243; - case 32: goto st1243; - case 40: goto tr3298; - case 41: goto tr3299; - case 2058: goto tr3300; - case 2107: goto tr3301; + case 9: goto st1388; + case 32: goto st1388; + case 40: goto tr3581; + case 41: goto tr3582; + case 2058: goto tr3583; + case 2107: goto tr3584; } goto tr78; -tr3298: +tr3581: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1243; -tr3299: + goto st1388; +tr3582: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1243; -tr3300: + goto st1388; +tr3583: { s->line_counter++; } - goto st1243; -tr3327: + goto st1388; +tr3610: { s->buffer[s->buffer_length++] = 0; @@ -84372,18 +90858,18 @@ tr3327: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1243; goto _out;} + {p++; cs = 1388; goto _out;} } } } { s->line_counter++; } - goto st1243; -st1243: + goto st1388; +st1388: if ( ++p == pe ) - goto _test_eof1243; -case 1243: + goto _test_eof1388; +case 1388: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84397,17 +90883,17 @@ case 1243: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1243; - case 32: goto st1243; - case 40: goto tr3298; - case 41: goto tr3299; - case 2058: goto tr3300; - case 2107: goto tr3301; + case 9: goto st1388; + case 32: goto st1388; + case 40: goto tr3581; + case 41: goto tr3582; + case 2058: goto tr3583; + case 2107: goto tr3584; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3302; - goto tr2717; -tr3302: + goto tr3585; + goto tr3000; +tr3585: { s->number64 = 0; } @@ -84422,11 +90908,11 @@ tr3302: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1244; -tr3306: + goto st1389; +tr3589: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -84438,14 +90924,14 @@ tr3306: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1244; -st1244: + goto st1389; +st1389: if ( ++p == pe ) - goto _test_eof1244; -case 1244: + goto _test_eof1389; +case 1389: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84459,40 +90945,40 @@ case 1244: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3303; - case 32: goto tr3303; - case 40: goto tr3304; - case 41: goto tr3305; - case 2058: goto tr3307; - case 2107: goto tr3308; + case 9: goto tr3586; + case 32: goto tr3586; + case 40: goto tr3587; + case 41: goto tr3588; + case 2058: goto tr3590; + case 2107: goto tr3591; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3306; - goto tr2717; -tr3310: + goto tr3589; + goto tr3000; +tr3593: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1245; -tr3311: + goto st1390; +tr3594: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1245; -tr3313: + goto st1390; +tr3596: { s->line_counter++; } - goto st1245; -tr3325: + goto st1390; +tr3608: { s->buffer[s->buffer_length++] = 0; @@ -84502,15 +90988,15 @@ tr3325: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1245; goto _out;} + {p++; cs = 1390; goto _out;} } } } { s->line_counter++; } - goto st1245; -tr3303: + goto st1390; +tr3586: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84518,11 +91004,11 @@ tr3303: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1245; -tr3304: + goto st1390; +tr3587: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84530,18 +91016,18 @@ tr3304: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1245; -tr3305: + goto st1390; +tr3588: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84549,18 +91035,18 @@ tr3305: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1245; -tr3307: + goto st1390; +tr3590: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84568,17 +91054,17 @@ tr3307: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1245; -st1245: + goto st1390; +st1390: if ( ++p == pe ) - goto _test_eof1245; -case 1245: + goto _test_eof1390; +case 1390: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84592,29 +91078,29 @@ case 1245: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1245; - case 32: goto st1245; - case 40: goto tr3310; - case 41: goto tr3311; - case 2058: goto tr3313; - case 2107: goto tr3314; + case 9: goto st1390; + case 32: goto st1390; + case 40: goto tr3593; + case 41: goto tr3594; + case 2058: goto tr3596; + case 2107: goto tr3597; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3312; + goto tr3595; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3312; + goto tr3595; } else - goto tr3312; + goto tr3595; goto tr78; -tr3312: - { p--; {stack[top++] = 1246;goto st948;} } - goto st1246; -st1246: +tr3595: + { p--; {stack[top++] = 1391;goto st1093;} } + goto st1391; +st1391: if ( ++p == pe ) - goto _test_eof1246; -case 1246: + goto _test_eof1391; +case 1391: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84628,38 +91114,38 @@ case 1246: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1247; - case 32: goto st1247; - case 40: goto tr3316; - case 41: goto tr3317; - case 2058: goto tr3318; - case 2107: goto tr3319; + case 9: goto st1392; + case 32: goto st1392; + case 40: goto tr3599; + case 41: goto tr3600; + case 2058: goto tr3601; + case 2107: goto tr3602; } goto tr78; -tr3316: +tr3599: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1247; -tr3317: + goto st1392; +tr3600: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1247; -tr3318: + goto st1392; +tr3601: { s->line_counter++; } - goto st1247; -tr3323: + goto st1392; +tr3606: { s->buffer[s->buffer_length++] = 0; @@ -84669,18 +91155,18 @@ tr3323: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1247; goto _out;} + {p++; cs = 1392; goto _out;} } } } { s->line_counter++; } - goto st1247; -st1247: + goto st1392; +st1392: if ( ++p == pe ) - goto _test_eof1247; -case 1247: + goto _test_eof1392; +case 1392: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84694,30 +91180,30 @@ case 1247: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1247; - case 32: goto st1247; - case 40: goto tr3316; - case 41: goto tr3317; - case 43: goto tr3320; - case 2058: goto tr3318; - case 2107: goto tr3319; + case 9: goto st1392; + case 32: goto st1392; + case 40: goto tr3599; + case 41: goto tr3600; + case 43: goto tr3603; + case 2058: goto tr3601; + case 2107: goto tr3602; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3320; + goto tr3603; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3320; + goto tr3603; } else - goto tr3320; + goto tr3603; goto tr78; -tr3320: - { p--; {stack[top++] = 1248;goto st391;} } - goto st1248; -st1248: +tr3603: + { p--; {stack[top++] = 1393;goto st400;} } + goto st1393; +st1393: if ( ++p == pe ) - goto _test_eof1248; -case 1248: + goto _test_eof1393; +case 1393: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -84731,36 +91217,36 @@ case 1248: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3321; - case 2619: goto tr3321; + case 2570: goto tr3604; + case 2619: goto tr3604; } goto tr78; -tr3321: +tr3604: { p--; {cs = stack[--top];goto _again;} } - goto st1566; -st1566: + goto st1719; +st1719: if ( ++p == pe ) - goto _test_eof1566; -case 1566: + goto _test_eof1719; +case 1719: goto st0; -tr3319: +tr3602: { s->buffer_length = 0; } - goto st1249; -tr3322: + goto st1394; +tr3605: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1249; -st1249: + goto st1394; +st1394: if ( ++p == pe ) - goto _test_eof1249; -case 1249: + goto _test_eof1394; +case 1394: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84780,23 +91266,23 @@ case 1249: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3323; + goto tr3606; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3322; + goto tr3605; goto tr78; -tr3314: +tr3597: { s->buffer_length = 0; } - goto st1250; -tr3324: + goto st1395; +tr3607: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1250; -tr3308: + goto st1395; +tr3591: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -84804,17 +91290,17 @@ tr3308: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1250; -st1250: + goto st1395; +st1395: if ( ++p == pe ) - goto _test_eof1250; -case 1250: + goto _test_eof1395; +case 1395: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84834,26 +91320,26 @@ case 1250: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3325; + goto tr3608; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3324; + goto tr3607; goto tr78; -tr3301: +tr3584: { s->buffer_length = 0; } - goto st1251; -tr3326: + goto st1396; +tr3609: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1251; -st1251: + goto st1396; +st1396: if ( ++p == pe ) - goto _test_eof1251; -case 1251: + goto _test_eof1396; +case 1396: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -84873,34 +91359,34 @@ case 1251: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3327; + goto tr3610; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3326; + goto tr3609; goto tr78; -tr3331: +tr3614: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1252; -tr3332: + goto st1397; +tr3615: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1252; -tr3335: + goto st1397; +tr3618: { s->line_counter++; } - goto st1252; -tr3358: + goto st1397; +tr3641: { s->buffer[s->buffer_length++] = 0; @@ -84910,22 +91396,22 @@ tr3358: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1252; goto _out;} + {p++; cs = 1397; goto _out;} } } } { s->line_counter++; } - goto st1252; -tr3348: + goto st1397; +tr3631: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -84942,7 +91428,7 @@ tr3348: break; default: WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -84954,7 +91440,7 @@ tr3348: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -84970,15 +91456,15 @@ tr3348: memcpy(rdata_tail, s->buffer, len); rdata_tail += len; } - goto st1252; -tr3349: + goto st1397; +tr3632: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -84995,7 +91481,7 @@ tr3349: break; default: WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -85007,7 +91493,7 @@ tr3349: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -85026,19 +91512,19 @@ tr3349: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1252; -tr3350: + goto st1397; +tr3633: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -85055,7 +91541,7 @@ tr3350: break; default: WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -85067,7 +91553,7 @@ tr3350: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -85086,19 +91572,19 @@ tr3350: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1252; -tr3352: + goto st1397; +tr3635: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -85115,7 +91601,7 @@ tr3352: break; default: WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -85127,7 +91613,7 @@ tr3352: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -85146,11 +91632,11 @@ tr3352: { s->line_counter++; } - goto st1252; -st1252: + goto st1397; +st1397: if ( ++p == pe ) - goto _test_eof1252; -case 1252: + goto _test_eof1397; +case 1397: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85168,78 +91654,78 @@ case 1252: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1252; - case 32: goto st1252; - case 33: goto tr3330; - case 40: goto tr3331; - case 41: goto tr3332; - case 49: goto tr3333; - case 50: goto tr3334; - case 3082: goto tr3335; - case 3131: goto tr3336; - case 3338: goto tr3337; - case 3387: goto tr3337; - case 3594: goto tr3338; - case 3643: goto tr3339; - } - goto tr3328; -tr3330: + case 9: goto st1397; + case 32: goto st1397; + case 33: goto tr3613; + case 40: goto tr3614; + case 41: goto tr3615; + case 49: goto tr3616; + case 50: goto tr3617; + case 3082: goto tr3618; + case 3131: goto tr3619; + case 3338: goto tr3620; + case 3387: goto tr3620; + case 3594: goto tr3621; + case 3643: goto tr3622; + } + goto tr3611; +tr3613: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.excl_flag = 128; // dec 128 = bin 10000000. } - goto st1253; -st1253: + goto st1398; +st1398: if ( ++p == pe ) - goto _test_eof1253; -case 1253: + goto _test_eof1398; +case 1398: switch( (*p) ) { - case 49: goto tr3340; - case 50: goto tr3341; + case 49: goto tr3623; + case 50: goto tr3624; } - goto tr3328; -tr3333: + goto tr3611; +tr3616: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.addr_family = 1; } - goto st1254; -tr3340: + goto st1399; +tr3623: { s->apl.addr_family = 1; } - goto st1254; -st1254: + goto st1399; +st1399: if ( ++p == pe ) - goto _test_eof1254; -case 1254: + goto _test_eof1399; +case 1399: if ( (*p) == 58 ) - goto st1255; - goto tr3328; -st1255: + goto st1400; + goto tr3611; +st1400: if ( ++p == pe ) - goto _test_eof1255; -case 1255: + goto _test_eof1400; +case 1400: if ( (*p) == 46 ) - goto tr3344; + goto tr3627; if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3344; - goto tr3343; -tr3345: + goto tr3627; + goto tr3626; +tr3628: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1256; -tr3344: + goto st1401; +tr3627: { s->buffer_length = 0; } @@ -85248,47 +91734,47 @@ tr3344: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1256; -st1256: + goto st1401; +st1401: if ( ++p == pe ) - goto _test_eof1256; -case 1256: + goto _test_eof1401; +case 1401: if ( (*p) == 47 ) - goto tr3346; + goto tr3629; if ( 46 <= (*p) && (*p) <= 57 ) - goto tr3345; - goto tr3343; -tr3346: + goto tr3628; + goto tr3626; +tr3629: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1257; -tr3362: + goto st1402; +tr3645: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1257; -st1257: + goto st1402; +st1402: if ( ++p == pe ) - goto _test_eof1257; -case 1257: + goto _test_eof1402; +case 1402: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3347; - goto tr3328; -tr3347: + goto tr3630; + goto tr3611; +tr3630: { s->number64 = 0; } @@ -85303,11 +91789,11 @@ tr3347: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1258; -tr3351: + goto st1403; +tr3634: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -85319,14 +91805,14 @@ tr3351: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1258; -st1258: + goto st1403; +st1403: if ( ++p == pe ) - goto _test_eof1258; -case 1258: + goto _test_eof1403; +case 1403: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85344,40 +91830,40 @@ case 1258: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto tr3348; - case 32: goto tr3348; - case 40: goto tr3349; - case 41: goto tr3350; - case 3082: goto tr3352; - case 3131: goto tr3353; - case 3338: goto tr3354; - case 3387: goto tr3354; - case 3594: goto tr3355; - case 3643: goto tr3356; + case 9: goto tr3631; + case 32: goto tr3631; + case 40: goto tr3632; + case 41: goto tr3633; + case 3082: goto tr3635; + case 3131: goto tr3636; + case 3338: goto tr3637; + case 3387: goto tr3637; + case 3594: goto tr3638; + case 3643: goto tr3639; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3351; - goto tr3328; -tr3336: + goto tr3634; + goto tr3611; +tr3619: { s->buffer_length = 0; } - goto st1259; -tr3357: + goto st1404; +tr3640: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1259; -tr3353: + goto st1404; +tr3636: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -85394,7 +91880,7 @@ tr3353: break; default: WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -85406,7 +91892,7 @@ tr3353: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -85425,11 +91911,11 @@ tr3353: { s->buffer_length = 0; } - goto st1259; -st1259: + goto st1404; +st1404: if ( ++p == pe ) - goto _test_eof1259; -case 1259: + goto _test_eof1404; +case 1404: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85449,23 +91935,23 @@ case 1259: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3358; + goto tr3641; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3357; + goto tr3640; goto tr78; -tr3337: +tr3620: { p--; {cs = stack[--top];goto _again;} } - goto st1567; -tr3354: + goto st1720; +tr3637: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -85482,7 +91968,7 @@ tr3354: break; default: WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -85494,7 +91980,7 @@ tr3354: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -85513,28 +91999,28 @@ tr3354: { p--; {cs = stack[--top];goto _again;} } - goto st1567; -st1567: + goto st1720; +st1720: if ( ++p == pe ) - goto _test_eof1567; -case 1567: + goto _test_eof1720; +case 1720: goto st0; -tr3338: +tr3621: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1568; -tr3355: + goto st1721; +tr3638: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -85551,7 +92037,7 @@ tr3355: break; default: WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -85563,7 +92049,7 @@ tr3355: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -85585,11 +92071,11 @@ tr3355: { p--; {cs = stack[--top];goto _again;} } - goto st1568; -st1568: + goto st1721; +st1721: if ( ++p == pe ) - goto _test_eof1568; -case 1568: + goto _test_eof1721; +case 1721: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85607,67 +92093,67 @@ case 1568: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1252; - case 32: goto st1252; - case 33: goto tr3330; - case 40: goto tr3331; - case 41: goto tr3332; - case 49: goto tr3333; - case 50: goto tr3334; - case 3082: goto tr3335; - case 3131: goto tr3336; - case 3338: goto tr3337; - case 3387: goto tr3337; - case 3594: goto tr3338; - case 3643: goto tr3339; - } - goto tr3328; -tr3334: + case 9: goto st1397; + case 32: goto st1397; + case 33: goto tr3613; + case 40: goto tr3614; + case 41: goto tr3615; + case 49: goto tr3616; + case 50: goto tr3617; + case 3082: goto tr3618; + case 3131: goto tr3619; + case 3338: goto tr3620; + case 3387: goto tr3620; + case 3594: goto tr3621; + case 3643: goto tr3622; + } + goto tr3611; +tr3617: { memset(&(s->apl), 0, sizeof(s->apl)); } { s->apl.addr_family = 2; } - goto st1260; -tr3341: + goto st1405; +tr3624: { s->apl.addr_family = 2; } - goto st1260; -st1260: + goto st1405; +st1405: if ( ++p == pe ) - goto _test_eof1260; -case 1260: + goto _test_eof1405; +case 1405: if ( (*p) == 58 ) - goto st1261; - goto tr3328; -st1261: + goto st1406; + goto tr3611; +st1406: if ( ++p == pe ) - goto _test_eof1261; -case 1261: + goto _test_eof1406; +case 1406: if ( (*p) == 46 ) - goto tr3360; + goto tr3643; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 58 ) - goto tr3360; + goto tr3643; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3360; + goto tr3643; } else - goto tr3360; - goto tr3343; -tr3361: + goto tr3643; + goto tr3626; +tr3644: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1262; -tr3360: + goto st1407; +tr3643: { s->buffer_length = 0; } @@ -85676,41 +92162,41 @@ tr3360: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1262; -st1262: + goto st1407; +st1407: if ( ++p == pe ) - goto _test_eof1262; -case 1262: + goto _test_eof1407; +case 1407: if ( (*p) == 47 ) - goto tr3362; + goto tr3645; if ( (*p) < 65 ) { if ( 46 <= (*p) && (*p) <= 58 ) - goto tr3361; + goto tr3644; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3361; + goto tr3644; } else - goto tr3361; - goto tr3343; -tr3339: + goto tr3644; + goto tr3626; +tr3622: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1569; -tr3356: + goto st1722; +tr3639: { if ((s->apl.addr_family == 1 && s->number64 <= 32) || (s->apl.addr_family == 2 && s->number64 <= 128)) { s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -85727,7 +92213,7 @@ tr3356: break; default: WARN(ZS_BAD_APL); - p--; {goto st329;} + p--; {goto st338;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -85739,7 +92225,7 @@ tr3356: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -85761,11 +92247,11 @@ tr3356: { p--; {cs = stack[--top];goto _again;} } - goto st1569; -st1569: + goto st1722; +st1722: if ( ++p == pe ) - goto _test_eof1569; -case 1569: + goto _test_eof1722; +case 1722: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -85785,18 +92271,18 @@ case 1569: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3358; + goto tr3641; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3357; + goto tr3640; goto tr78; -st1263: +st1408: if ( ++p == pe ) - goto _test_eof1263; -case 1263: + goto _test_eof1408; +case 1408: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3363; - goto tr2717; -tr3363: + goto tr3646; + goto tr3000; +tr3646: { s->number64 = 0; } @@ -85811,11 +92297,11 @@ tr3363: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1264; -tr3367: + goto st1409; +tr3650: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -85827,14 +92313,14 @@ tr3367: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1264; -st1264: + goto st1409; +st1409: if ( ++p == pe ) - goto _test_eof1264; -case 1264: + goto _test_eof1409; +case 1409: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85848,40 +92334,40 @@ case 1264: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3364; - case 32: goto tr3364; - case 40: goto tr3365; - case 41: goto tr3366; - case 2058: goto tr3368; - case 2107: goto tr3369; + case 9: goto tr3647; + case 32: goto tr3647; + case 40: goto tr3648; + case 41: goto tr3649; + case 2058: goto tr3651; + case 2107: goto tr3652; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3367; - goto tr2717; -tr3371: + goto tr3650; + goto tr3000; +tr3654: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1265; -tr3372: + goto st1410; +tr3655: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1265; -tr3374: + goto st1410; +tr3657: { s->line_counter++; } - goto st1265; -tr3411: + goto st1410; +tr3694: { s->buffer[s->buffer_length++] = 0; @@ -85891,15 +92377,15 @@ tr3411: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1265; goto _out;} + {p++; cs = 1410; goto _out;} } } } { s->line_counter++; } - goto st1265; -tr3364: + goto st1410; +tr3647: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -85907,11 +92393,11 @@ tr3364: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1265; -tr3365: + goto st1410; +tr3648: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -85919,18 +92405,18 @@ tr3365: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1265; -tr3366: + goto st1410; +tr3649: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -85938,18 +92424,18 @@ tr3366: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1265; -tr3368: + goto st1410; +tr3651: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -85957,17 +92443,17 @@ tr3368: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1265; -st1265: + goto st1410; +st1410: if ( ++p == pe ) - goto _test_eof1265; -case 1265: + goto _test_eof1410; +case 1410: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -85981,29 +92467,29 @@ case 1265: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1265; - case 32: goto st1265; - case 40: goto tr3371; - case 41: goto tr3372; - case 2058: goto tr3374; - case 2107: goto tr3375; + case 9: goto st1410; + case 32: goto st1410; + case 40: goto tr3654; + case 41: goto tr3655; + case 2058: goto tr3657; + case 2107: goto tr3658; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3373; + goto tr3656; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3373; + goto tr3656; } else - goto tr3373; + goto tr3656; goto tr78; -tr3373: - { p--; {stack[top++] = 1266;goto st948;} } - goto st1266; -st1266: +tr3656: + { p--; {stack[top++] = 1411;goto st1093;} } + goto st1411; +st1411: if ( ++p == pe ) - goto _test_eof1266; -case 1266: + goto _test_eof1411; +case 1411: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86017,38 +92503,38 @@ case 1266: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1267; - case 32: goto st1267; - case 40: goto tr3377; - case 41: goto tr3378; - case 2058: goto tr3379; - case 2107: goto tr3380; + case 9: goto st1412; + case 32: goto st1412; + case 40: goto tr3660; + case 41: goto tr3661; + case 2058: goto tr3662; + case 2107: goto tr3663; } goto tr78; -tr3377: +tr3660: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1267; -tr3378: + goto st1412; +tr3661: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1267; -tr3379: + goto st1412; +tr3662: { s->line_counter++; } - goto st1267; -tr3409: + goto st1412; +tr3692: { s->buffer[s->buffer_length++] = 0; @@ -86058,18 +92544,18 @@ tr3409: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1267; goto _out;} + {p++; cs = 1412; goto _out;} } } } { s->line_counter++; } - goto st1267; -st1267: + goto st1412; +st1412: if ( ++p == pe ) - goto _test_eof1267; -case 1267: + goto _test_eof1412; +case 1412: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86083,17 +92569,17 @@ case 1267: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1267; - case 32: goto st1267; - case 40: goto tr3377; - case 41: goto tr3378; - case 2058: goto tr3379; - case 2107: goto tr3380; + case 9: goto st1412; + case 32: goto st1412; + case 40: goto tr3660; + case 41: goto tr3661; + case 2058: goto tr3662; + case 2107: goto tr3663; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3381; - goto tr2717; -tr3381: + goto tr3664; + goto tr3000; +tr3664: { s->number64 = 0; } @@ -86108,11 +92594,11 @@ tr3381: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1268; -tr3385: + goto st1413; +tr3668: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -86124,14 +92610,14 @@ tr3385: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1268; -st1268: + goto st1413; +st1413: if ( ++p == pe ) - goto _test_eof1268; -case 1268: + goto _test_eof1413; +case 1413: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86145,40 +92631,40 @@ case 1268: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3382; - case 32: goto tr3382; - case 40: goto tr3383; - case 41: goto tr3384; - case 2058: goto tr3386; - case 2107: goto tr3387; + case 9: goto tr3665; + case 32: goto tr3665; + case 40: goto tr3666; + case 41: goto tr3667; + case 2058: goto tr3669; + case 2107: goto tr3670; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3385; - goto tr2717; -tr3390: + goto tr3668; + goto tr3000; +tr3673: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1269; -tr3391: + goto st1414; +tr3674: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1269; -tr3393: + goto st1414; +tr3676: { s->line_counter++; } - goto st1269; -tr3407: + goto st1414; +tr3690: { s->buffer[s->buffer_length++] = 0; @@ -86188,79 +92674,79 @@ tr3407: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1269; goto _out;} + {p++; cs = 1414; goto _out;} } } } { s->line_counter++; } - goto st1269; -tr3382: + goto st1414; +tr3665: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1269; -tr3383: + goto st1414; +tr3666: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1269; -tr3384: + goto st1414; +tr3667: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1269; -tr3386: + goto st1414; +tr3669: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1269; -st1269: + goto st1414; +st1414: if ( ++p == pe ) - goto _test_eof1269; -case 1269: + goto _test_eof1414; +case 1414: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86274,69 +92760,69 @@ case 1269: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1269; - case 32: goto st1269; - case 40: goto tr3390; - case 41: goto tr3391; - case 2058: goto tr3393; - case 2107: goto tr3394; + case 9: goto st1414; + case 32: goto st1414; + case 40: goto tr3673; + case 41: goto tr3674; + case 2058: goto tr3676; + case 2107: goto tr3677; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3392; + goto tr3675; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3392; + goto tr3675; } else - goto tr3392; - goto tr3388; -tr3392: + goto tr3675; + goto tr3671; +tr3675: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1270; -st1270: + goto st1415; +st1415: if ( ++p == pe ) - goto _test_eof1270; -case 1270: + goto _test_eof1415; +case 1415: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3395; + goto tr3678; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3395; + goto tr3678; } else - goto tr3395; - goto tr3388; -tr3397: + goto tr3678; + goto tr3671; +tr3680: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1271; -tr3398: + goto st1416; +tr3681: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1271; -tr3399: + goto st1416; +tr3682: { s->line_counter++; } - goto st1271; -tr3405: + goto st1416; +tr3688: { s->buffer[s->buffer_length++] = 0; @@ -86346,24 +92832,24 @@ tr3405: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1271; goto _out;} + {p++; cs = 1416; goto _out;} } } } { s->line_counter++; } - goto st1271; -tr3395: + goto st1416; +tr3678: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1271; -st1271: + goto st1416; +st1416: if ( ++p == pe ) - goto _test_eof1271; -case 1271: + goto _test_eof1416; +case 1416: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86381,42 +92867,42 @@ case 1271: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1271; - case 32: goto st1271; - case 40: goto tr3397; - case 41: goto tr3398; - case 3082: goto tr3399; - case 3131: goto tr3400; - case 3338: goto tr3401; - case 3387: goto tr3401; - case 3594: goto tr3402; - case 3643: goto tr3403; + case 9: goto st1416; + case 32: goto st1416; + case 40: goto tr3680; + case 41: goto tr3681; + case 3082: goto tr3682; + case 3131: goto tr3683; + case 3338: goto tr3684; + case 3387: goto tr3684; + case 3594: goto tr3685; + case 3643: goto tr3686; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3392; + goto tr3675; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3392; + goto tr3675; } else - goto tr3392; - goto tr3388; -tr3400: + goto tr3675; + goto tr3671; +tr3683: { s->buffer_length = 0; } - goto st1272; -tr3404: + goto st1417; +tr3687: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1272; -st1272: + goto st1417; +st1417: if ( ++p == pe ) - goto _test_eof1272; -case 1272: + goto _test_eof1417; +case 1417: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86436,32 +92922,32 @@ case 1272: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3405; + goto tr3688; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3404; - goto tr3388; -tr3401: + goto tr3687; + goto tr3671; +tr3684: { p--; {cs = stack[--top];goto _again;} } - goto st1570; -st1570: + goto st1723; +st1723: if ( ++p == pe ) - goto _test_eof1570; -case 1570: + goto _test_eof1723; +case 1723: goto st0; -tr3402: +tr3685: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1571; -st1571: + goto st1724; +st1724: if ( ++p == pe ) - goto _test_eof1571; -case 1571: + goto _test_eof1724; +case 1724: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86479,38 +92965,38 @@ case 1571: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1271; - case 32: goto st1271; - case 40: goto tr3397; - case 41: goto tr3398; - case 3082: goto tr3399; - case 3131: goto tr3400; - case 3338: goto tr3401; - case 3387: goto tr3401; - case 3594: goto tr3402; - case 3643: goto tr3403; + case 9: goto st1416; + case 32: goto st1416; + case 40: goto tr3680; + case 41: goto tr3681; + case 3082: goto tr3682; + case 3131: goto tr3683; + case 3338: goto tr3684; + case 3387: goto tr3684; + case 3594: goto tr3685; + case 3643: goto tr3686; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3392; + goto tr3675; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3392; + goto tr3675; } else - goto tr3392; - goto tr3388; -tr3403: + goto tr3675; + goto tr3671; +tr3686: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1572; -st1572: + goto st1725; +st1725: if ( ++p == pe ) - goto _test_eof1572; -case 1572: + goto _test_eof1725; +case 1725: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86530,40 +93016,40 @@ case 1572: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3405; + goto tr3688; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3404; - goto tr3388; -tr3394: + goto tr3687; + goto tr3671; +tr3677: { s->buffer_length = 0; } - goto st1273; -tr3406: + goto st1418; +tr3689: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1273; -tr3387: + goto st1418; +tr3670: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1273; -st1273: + goto st1418; +st1418: if ( ++p == pe ) - goto _test_eof1273; -case 1273: + goto _test_eof1418; +case 1418: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86583,26 +93069,26 @@ case 1273: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3407; + goto tr3690; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3406; + goto tr3689; goto tr78; -tr3380: +tr3663: { s->buffer_length = 0; } - goto st1274; -tr3408: + goto st1419; +tr3691: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1274; -st1274: + goto st1419; +st1419: if ( ++p == pe ) - goto _test_eof1274; -case 1274: + goto _test_eof1419; +case 1419: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86622,23 +93108,23 @@ case 1274: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3409; + goto tr3692; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3408; + goto tr3691; goto tr78; -tr3375: +tr3658: { s->buffer_length = 0; } - goto st1275; -tr3410: + goto st1420; +tr3693: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1275; -tr3369: + goto st1420; +tr3652: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -86646,17 +93132,17 @@ tr3369: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1275; -st1275: + goto st1420; +st1420: if ( ++p == pe ) - goto _test_eof1275; -case 1275: + goto _test_eof1420; +case 1420: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -86676,18 +93162,18 @@ case 1275: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3411; + goto tr3694; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3410; + goto tr3693; goto tr78; -st1276: +st1421: if ( ++p == pe ) - goto _test_eof1276; -case 1276: + goto _test_eof1421; +case 1421: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3412; - goto tr2717; -tr3412: + goto tr3695; + goto tr3000; +tr3695: { s->number64 = 0; } @@ -86702,11 +93188,11 @@ tr3412: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1277; -tr3416: + goto st1422; +tr3699: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -86718,14 +93204,14 @@ tr3416: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1277; -st1277: + goto st1422; +st1422: if ( ++p == pe ) - goto _test_eof1277; -case 1277: + goto _test_eof1422; +case 1422: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86739,40 +93225,40 @@ case 1277: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3413; - case 32: goto tr3413; - case 40: goto tr3414; - case 41: goto tr3415; - case 2058: goto tr3417; - case 2107: goto tr3418; + case 9: goto tr3696; + case 32: goto tr3696; + case 40: goto tr3697; + case 41: goto tr3698; + case 2058: goto tr3700; + case 2107: goto tr3701; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3416; - goto tr2717; -tr3420: + goto tr3699; + goto tr3000; +tr3703: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1278; -tr3421: + goto st1423; +tr3704: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1278; -tr3423: + goto st1423; +tr3706: { s->line_counter++; } - goto st1278; -tr3451: + goto st1423; +tr3734: { s->buffer[s->buffer_length++] = 0; @@ -86782,79 +93268,79 @@ tr3451: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1278; goto _out;} + {p++; cs = 1423; goto _out;} } } } { s->line_counter++; } - goto st1278; -tr3413: + goto st1423; +tr3696: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1278; -tr3414: + goto st1423; +tr3697: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1278; -tr3415: + goto st1423; +tr3698: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1278; -tr3417: + goto st1423; +tr3700: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1278; -st1278: + goto st1423; +st1423: if ( ++p == pe ) - goto _test_eof1278; -case 1278: + goto _test_eof1423; +case 1423: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86868,17 +93354,17 @@ case 1278: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1278; - case 32: goto st1278; - case 40: goto tr3420; - case 41: goto tr3421; - case 2058: goto tr3423; - case 2107: goto tr3424; + case 9: goto st1423; + case 32: goto st1423; + case 40: goto tr3703; + case 41: goto tr3704; + case 2058: goto tr3706; + case 2107: goto tr3707; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3422; - goto tr2717; -tr3422: + goto tr3705; + goto tr3000; +tr3705: { s->number64 = 0; } @@ -86893,11 +93379,11 @@ tr3422: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1279; -tr3428: + goto st1424; +tr3711: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -86909,14 +93395,14 @@ tr3428: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1279; -st1279: + goto st1424; +st1424: if ( ++p == pe ) - goto _test_eof1279; -case 1279: + goto _test_eof1424; +case 1424: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -86930,40 +93416,40 @@ case 1279: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3425; - case 32: goto tr3425; - case 40: goto tr3426; - case 41: goto tr3427; - case 2058: goto tr3429; - case 2107: goto tr3430; + case 9: goto tr3708; + case 32: goto tr3708; + case 40: goto tr3709; + case 41: goto tr3710; + case 2058: goto tr3712; + case 2107: goto tr3713; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3428; - goto tr2717; -tr3432: + goto tr3711; + goto tr3000; +tr3715: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1280; -tr3433: + goto st1425; +tr3716: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1280; -tr3435: + goto st1425; +tr3718: { s->line_counter++; } - goto st1280; -tr3449: + goto st1425; +tr3732: { s->buffer[s->buffer_length++] = 0; @@ -86973,79 +93459,79 @@ tr3449: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1280; goto _out;} + {p++; cs = 1425; goto _out;} } } } { s->line_counter++; } - goto st1280; -tr3425: + goto st1425; +tr3708: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1280; -tr3426: + goto st1425; +tr3709: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1280; -tr3427: + goto st1425; +tr3710: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1280; -tr3429: + goto st1425; +tr3712: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1280; -st1280: + goto st1425; +st1425: if ( ++p == pe ) - goto _test_eof1280; -case 1280: + goto _test_eof1425; +case 1425: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87059,69 +93545,69 @@ case 1280: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1280; - case 32: goto st1280; - case 40: goto tr3432; - case 41: goto tr3433; - case 2058: goto tr3435; - case 2107: goto tr3436; + case 9: goto st1425; + case 32: goto st1425; + case 40: goto tr3715; + case 41: goto tr3716; + case 2058: goto tr3718; + case 2107: goto tr3719; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3434; + goto tr3717; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3434; + goto tr3717; } else - goto tr3434; - goto tr3388; -tr3434: + goto tr3717; + goto tr3671; +tr3717: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1281; -st1281: + goto st1426; +st1426: if ( ++p == pe ) - goto _test_eof1281; -case 1281: + goto _test_eof1426; +case 1426: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3437; + goto tr3720; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3437; + goto tr3720; } else - goto tr3437; - goto tr3388; -tr3439: + goto tr3720; + goto tr3671; +tr3722: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1282; -tr3440: + goto st1427; +tr3723: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1282; -tr3441: + goto st1427; +tr3724: { s->line_counter++; } - goto st1282; -tr3447: + goto st1427; +tr3730: { s->buffer[s->buffer_length++] = 0; @@ -87131,24 +93617,24 @@ tr3447: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1282; goto _out;} + {p++; cs = 1427; goto _out;} } } } { s->line_counter++; } - goto st1282; -tr3437: + goto st1427; +tr3720: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1282; -st1282: + goto st1427; +st1427: if ( ++p == pe ) - goto _test_eof1282; -case 1282: + goto _test_eof1427; +case 1427: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87166,42 +93652,42 @@ case 1282: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1282; - case 32: goto st1282; - case 40: goto tr3439; - case 41: goto tr3440; - case 3082: goto tr3441; - case 3131: goto tr3442; - case 3338: goto tr3443; - case 3387: goto tr3443; - case 3594: goto tr3444; - case 3643: goto tr3445; + case 9: goto st1427; + case 32: goto st1427; + case 40: goto tr3722; + case 41: goto tr3723; + case 3082: goto tr3724; + case 3131: goto tr3725; + case 3338: goto tr3726; + case 3387: goto tr3726; + case 3594: goto tr3727; + case 3643: goto tr3728; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3434; + goto tr3717; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3434; + goto tr3717; } else - goto tr3434; - goto tr3388; -tr3442: + goto tr3717; + goto tr3671; +tr3725: { s->buffer_length = 0; } - goto st1283; -tr3446: + goto st1428; +tr3729: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1283; -st1283: + goto st1428; +st1428: if ( ++p == pe ) - goto _test_eof1283; -case 1283: + goto _test_eof1428; +case 1428: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -87221,32 +93707,32 @@ case 1283: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3447; + goto tr3730; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3446; - goto tr3388; -tr3443: + goto tr3729; + goto tr3671; +tr3726: { p--; {cs = stack[--top];goto _again;} } - goto st1573; -st1573: + goto st1726; +st1726: if ( ++p == pe ) - goto _test_eof1573; -case 1573: + goto _test_eof1726; +case 1726: goto st0; -tr3444: +tr3727: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1574; -st1574: + goto st1727; +st1727: if ( ++p == pe ) - goto _test_eof1574; -case 1574: + goto _test_eof1727; +case 1727: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87264,38 +93750,38 @@ case 1574: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1282; - case 32: goto st1282; - case 40: goto tr3439; - case 41: goto tr3440; - case 3082: goto tr3441; - case 3131: goto tr3442; - case 3338: goto tr3443; - case 3387: goto tr3443; - case 3594: goto tr3444; - case 3643: goto tr3445; + case 9: goto st1427; + case 32: goto st1427; + case 40: goto tr3722; + case 41: goto tr3723; + case 3082: goto tr3724; + case 3131: goto tr3725; + case 3338: goto tr3726; + case 3387: goto tr3726; + case 3594: goto tr3727; + case 3643: goto tr3728; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3434; + goto tr3717; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3434; + goto tr3717; } else - goto tr3434; - goto tr3388; -tr3445: + goto tr3717; + goto tr3671; +tr3728: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1575; -st1575: + goto st1728; +st1728: if ( ++p == pe ) - goto _test_eof1575; -case 1575: + goto _test_eof1728; +case 1728: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -87315,40 +93801,40 @@ case 1575: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3447; + goto tr3730; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3446; - goto tr3388; -tr3436: + goto tr3729; + goto tr3671; +tr3719: { s->buffer_length = 0; } - goto st1284; -tr3448: + goto st1429; +tr3731: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1284; -tr3430: + goto st1429; +tr3713: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1284; -st1284: + goto st1429; +st1429: if ( ++p == pe ) - goto _test_eof1284; -case 1284: + goto _test_eof1429; +case 1429: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -87368,40 +93854,40 @@ case 1284: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3449; + goto tr3732; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3448; + goto tr3731; goto tr78; -tr3424: +tr3707: { s->buffer_length = 0; } - goto st1285; -tr3450: + goto st1430; +tr3733: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1285; -tr3418: + goto st1430; +tr3701: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1285; -st1285: + goto st1430; +st1430: if ( ++p == pe ) - goto _test_eof1285; -case 1285: + goto _test_eof1430; +case 1430: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -87421,18 +93907,18 @@ case 1285: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3451; + goto tr3734; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3450; + goto tr3733; goto tr78; -st1286: +st1431: if ( ++p == pe ) - goto _test_eof1286; -case 1286: + goto _test_eof1431; +case 1431: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3452; - goto tr2717; -tr3452: + goto tr3735; + goto tr3000; +tr3735: { s->number64 = 0; } @@ -87447,11 +93933,11 @@ tr3452: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1287; -tr3456: + goto st1432; +tr3739: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -87463,14 +93949,14 @@ tr3456: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1287; -st1287: + goto st1432; +st1432: if ( ++p == pe ) - goto _test_eof1287; -case 1287: + goto _test_eof1432; +case 1432: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87484,40 +93970,40 @@ case 1287: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3453; - case 32: goto tr3453; - case 40: goto tr3454; - case 41: goto tr3455; - case 2058: goto tr3457; - case 2107: goto tr3458; + case 9: goto tr3736; + case 32: goto tr3736; + case 40: goto tr3737; + case 41: goto tr3738; + case 2058: goto tr3740; + case 2107: goto tr3741; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3456; - goto tr2717; -tr3461: + goto tr3739; + goto tr3000; +tr3744: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1288; -tr3462: + goto st1433; +tr3745: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1288; -tr3467: + goto st1433; +tr3750: { s->line_counter++; } - goto st1288; -tr3660: + goto st1433; +tr3943: { s->buffer[s->buffer_length++] = 0; @@ -87527,79 +94013,79 @@ tr3660: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1288; goto _out;} + {p++; cs = 1433; goto _out;} } } } { s->line_counter++; } - goto st1288; -tr3453: + goto st1433; +tr3736: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1288; -tr3454: + goto st1433; +tr3737: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1288; -tr3455: + goto st1433; +tr3738: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1288; -tr3457: + goto st1433; +tr3740: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1288; -st1288: + goto st1433; +st1433: if ( ++p == pe ) - goto _test_eof1288; -case 1288: + goto _test_eof1433; +case 1433: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87613,27 +94099,27 @@ case 1288: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1288; - case 32: goto st1288; - case 40: goto tr3461; - case 41: goto tr3462; - case 48: goto tr3463; - case 49: goto tr3464; - case 50: goto tr3465; - case 51: goto tr3466; - case 2058: goto tr3467; - case 2107: goto tr3468; + case 9: goto st1433; + case 32: goto st1433; + case 40: goto tr3744; + case 41: goto tr3745; + case 48: goto tr3746; + case 49: goto tr3747; + case 50: goto tr3748; + case 51: goto tr3749; + case 2058: goto tr3750; + case 2107: goto tr3751; } - goto tr3459; -tr3463: + goto tr3742; +tr3746: { *(rdata_tail++) = 0; } - goto st1289; -st1289: + goto st1434; +st1434: if ( ++p == pe ) - goto _test_eof1289; -case 1289: + goto _test_eof1434; +case 1434: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87647,38 +94133,38 @@ case 1289: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1290; - case 32: goto st1290; - case 40: goto tr3470; - case 41: goto tr3471; - case 2058: goto tr3472; - case 2107: goto tr3473; + case 9: goto st1435; + case 32: goto st1435; + case 40: goto tr3753; + case 41: goto tr3754; + case 2058: goto tr3755; + case 2107: goto tr3756; } - goto tr3459; -tr3470: + goto tr3742; +tr3753: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1290; -tr3471: + goto st1435; +tr3754: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1290; -tr3472: + goto st1435; +tr3755: { s->line_counter++; } - goto st1290; -tr3522: + goto st1435; +tr3805: { s->buffer[s->buffer_length++] = 0; @@ -87688,18 +94174,18 @@ tr3522: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1290; goto _out;} + {p++; cs = 1435; goto _out;} } } } { s->line_counter++; } - goto st1290; -st1290: + goto st1435; +st1435: if ( ++p == pe ) - goto _test_eof1290; -case 1290: + goto _test_eof1435; +case 1435: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87713,17 +94199,17 @@ case 1290: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1290; - case 32: goto st1290; - case 40: goto tr3470; - case 41: goto tr3471; - case 2058: goto tr3472; - case 2107: goto tr3473; + case 9: goto st1435; + case 32: goto st1435; + case 40: goto tr3753; + case 41: goto tr3754; + case 2058: goto tr3755; + case 2107: goto tr3756; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3475; - goto tr3474; -tr3475: + goto tr3758; + goto tr3757; +tr3758: { s->number64 = 0; } @@ -87738,11 +94224,11 @@ tr3475: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1291; -tr3479: + goto st1436; +tr3762: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -87754,14 +94240,14 @@ tr3479: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1291; -st1291: + goto st1436; +st1436: if ( ++p == pe ) - goto _test_eof1291; -case 1291: + goto _test_eof1436; +case 1436: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87775,40 +94261,40 @@ case 1291: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3476; - case 32: goto tr3476; - case 40: goto tr3477; - case 41: goto tr3478; - case 2058: goto tr3480; - case 2107: goto tr3481; + case 9: goto tr3759; + case 32: goto tr3759; + case 40: goto tr3760; + case 41: goto tr3761; + case 2058: goto tr3763; + case 2107: goto tr3764; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3479; - goto tr3474; -tr3483: + goto tr3762; + goto tr3757; +tr3766: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1292; -tr3484: + goto st1437; +tr3767: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1292; -tr3486: + goto st1437; +tr3769: { s->line_counter++; } - goto st1292; -tr3520: + goto st1437; +tr3803: { s->buffer[s->buffer_length++] = 0; @@ -87818,79 +94304,79 @@ tr3520: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1292; goto _out;} + {p++; cs = 1437; goto _out;} } } } { s->line_counter++; } - goto st1292; -tr3476: + goto st1437; +tr3759: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1292; -tr3477: + goto st1437; +tr3760: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1292; -tr3478: + goto st1437; +tr3761: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1292; -tr3480: + goto st1437; +tr3763: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1292; -st1292: + goto st1437; +st1437: if ( ++p == pe ) - goto _test_eof1292; -case 1292: + goto _test_eof1437; +case 1437: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -87904,19 +94390,19 @@ case 1292: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1292; - case 32: goto st1292; - case 40: goto tr3483; - case 41: goto tr3484; - case 46: goto st1293; - case 2058: goto tr3486; - case 2107: goto tr3487; + case 9: goto st1437; + case 32: goto st1437; + case 40: goto tr3766; + case 41: goto tr3767; + case 46: goto st1438; + case 2058: goto tr3769; + case 2107: goto tr3770; } - goto tr3459; -st1293: + goto tr3742; +st1438: if ( ++p == pe ) - goto _test_eof1293; -case 1293: + goto _test_eof1438; +case 1438: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -87974,66 +94460,66 @@ case 1293: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 7177: goto st1294; - case 7200: goto st1294; - case 7208: goto tr3490; - case 7209: goto tr3491; - case 7433: goto st1297; - case 7456: goto st1297; - case 7464: goto tr3493; - case 7465: goto tr3494; - case 7689: goto st1299; - case 7712: goto st1299; - case 7720: goto tr3496; - case 7721: goto tr3497; - case 10506: goto tr3498; - case 10555: goto tr3498; - case 10762: goto tr3498; - case 10811: goto tr3498; - case 11274: goto tr3499; - case 11323: goto tr3500; - case 11530: goto tr3498; - case 11579: goto tr3498; - case 11786: goto tr3501; - case 11835: goto tr3502; - case 12298: goto tr3503; - case 12347: goto tr3504; - case 12554: goto tr3498; - case 12603: goto tr3498; - case 12810: goto tr3505; - case 12859: goto tr3506; - case 13322: goto tr3507; - case 13371: goto tr3508; - case 13578: goto tr3498; - case 13627: goto tr3498; - case 13834: goto tr3509; - case 13883: goto tr3510; - } - goto tr3488; -tr3490: + case 7177: goto st1439; + case 7200: goto st1439; + case 7208: goto tr3773; + case 7209: goto tr3774; + case 7433: goto st1442; + case 7456: goto st1442; + case 7464: goto tr3776; + case 7465: goto tr3777; + case 7689: goto st1444; + case 7712: goto st1444; + case 7720: goto tr3779; + case 7721: goto tr3780; + case 10506: goto tr3781; + case 10555: goto tr3781; + case 10762: goto tr3781; + case 10811: goto tr3781; + case 11274: goto tr3782; + case 11323: goto tr3783; + case 11530: goto tr3781; + case 11579: goto tr3781; + case 11786: goto tr3784; + case 11835: goto tr3785; + case 12298: goto tr3786; + case 12347: goto tr3787; + case 12554: goto tr3781; + case 12603: goto tr3781; + case 12810: goto tr3788; + case 12859: goto tr3789; + case 13322: goto tr3790; + case 13371: goto tr3791; + case 13578: goto tr3781; + case 13627: goto tr3781; + case 13834: goto tr3792; + case 13883: goto tr3793; + } + goto tr3771; +tr3773: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1294; -tr3491: + goto st1439; +tr3774: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1294; -tr3499: + goto st1439; +tr3782: { s->line_counter++; } - goto st1294; -tr3514: + goto st1439; +tr3797: { s->buffer[s->buffer_length++] = 0; @@ -88043,63 +94529,68 @@ tr3514: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1294; goto _out;} + {p++; cs = 1439; goto _out;} } } } { s->line_counter++; } - goto st1294; -tr3544: + goto st1439; +tr3827: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1294; -tr3589: + goto st1439; +tr3872: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1294; -tr3545: + goto st1439; +tr3916: + { + rdata_tail += s->dname_tmp_length; + } + goto st1439; +tr3828: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88107,24 +94598,24 @@ tr3545: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1294; -tr3546: + goto st1439; +tr3829: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88132,24 +94623,24 @@ tr3546: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1294; -tr3554: + goto st1439; +tr3837: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88157,20 +94648,20 @@ tr3554: { s->line_counter++; } - goto st1294; -tr3590: + goto st1439; +tr3873: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88178,24 +94669,24 @@ tr3590: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1294; -tr3591: + goto st1439; +tr3874: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88203,24 +94694,24 @@ tr3591: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1294; -tr3599: + goto st1439; +tr3882: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88228,48 +94719,43 @@ tr3599: { s->line_counter++; } - goto st1294; -tr3633: - { - rdata_tail += s->dname_tmp_length; - } - goto st1294; -tr3634: + goto st1439; +tr3917: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1294; -tr3635: + goto st1439; +tr3918: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1294; -tr3643: + goto st1439; +tr3926: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1294; -st1294: + goto st1439; +st1439: if ( ++p == pe ) - goto _test_eof1294; -case 1294: + goto _test_eof1439; +case 1439: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -88341,30 +94827,30 @@ case 1294: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4105: goto st1294; - case 4128: goto st1294; - case 4136: goto tr3490; - case 4137: goto tr3491; - case 4139: goto tr3512; - case 5130: goto tr3499; - case 5179: goto tr3500; + case 4105: goto st1439; + case 4128: goto st1439; + case 4136: goto tr3773; + case 4137: goto tr3774; + case 4139: goto tr3795; + case 5130: goto tr3782; + case 5179: goto tr3783; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3512; + goto tr3795; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3512; + goto tr3795; } else - goto tr3512; - goto tr3511; -tr3512: - { p--; {stack[top++] = 1295;goto st391;} } - goto st1295; -st1295: + goto tr3795; + goto tr3794; +tr3795: + { p--; {stack[top++] = 1440;goto st400;} } + goto st1440; +st1440: if ( ++p == pe ) - goto _test_eof1295; -case 1295: + goto _test_eof1440; +case 1440: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -88378,28 +94864,28 @@ case 1295: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3498; - case 2619: goto tr3498; + case 2570: goto tr3781; + case 2619: goto tr3781; } - goto tr3511; -tr3498: + goto tr3794; +tr3781: { p--; {cs = stack[--top];goto _again;} } - goto st1576; -tr3553: + goto st1729; +tr3836: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88407,20 +94893,20 @@ tr3553: { p--; {cs = stack[--top];goto _again;} } - goto st1576; -tr3598: + goto st1729; +tr3881: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88428,45 +94914,45 @@ tr3598: { p--; {cs = stack[--top];goto _again;} } - goto st1576; -tr3642: + goto st1729; +tr3925: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1576; -st1576: + goto st1729; +st1729: if ( ++p == pe ) - goto _test_eof1576; -case 1576: + goto _test_eof1729; +case 1729: goto st0; -tr3500: +tr3783: { s->buffer_length = 0; } - goto st1296; -tr3513: + goto st1441; +tr3796: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1296; -tr3555: + goto st1441; +tr3838: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88474,20 +94960,20 @@ tr3555: { s->buffer_length = 0; } - goto st1296; -tr3600: + goto st1441; +tr3883: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88495,19 +94981,19 @@ tr3600: { s->buffer_length = 0; } - goto st1296; -tr3644: + goto st1441; +tr3927: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1296; -st1296: + goto st1441; +st1441: if ( ++p == pe ) - goto _test_eof1296; -case 1296: + goto _test_eof1441; +case 1441: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -88533,34 +95019,34 @@ case 1296: s->number64 != 0 ) _widec += 512; } if ( _widec == 5130 ) - goto tr3514; + goto tr3797; if ( 4992 <= _widec && _widec <= 5247 ) - goto tr3513; - goto tr3511; -tr3493: + goto tr3796; + goto tr3794; +tr3776: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1297; -tr3494: + goto st1442; +tr3777: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1297; -tr3503: + goto st1442; +tr3786: { s->line_counter++; } - goto st1297; -tr3516: + goto st1442; +tr3799: { s->buffer[s->buffer_length++] = 0; @@ -88570,63 +95056,68 @@ tr3516: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1297; goto _out;} + {p++; cs = 1442; goto _out;} } } } { s->line_counter++; } - goto st1297; -tr3547: + goto st1442; +tr3830: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1297; -tr3592: + goto st1442; +tr3875: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1297; -tr3548: + goto st1442; +tr3919: + { + rdata_tail += s->dname_tmp_length; + } + goto st1442; +tr3831: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88634,24 +95125,24 @@ tr3548: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1297; -tr3549: + goto st1442; +tr3832: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88659,24 +95150,24 @@ tr3549: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1297; -tr3558: + goto st1442; +tr3841: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88684,20 +95175,20 @@ tr3558: { s->line_counter++; } - goto st1297; -tr3593: + goto st1442; +tr3876: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88705,24 +95196,24 @@ tr3593: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1297; -tr3594: + goto st1442; +tr3877: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88730,24 +95221,24 @@ tr3594: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1297; -tr3603: + goto st1442; +tr3886: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88755,48 +95246,43 @@ tr3603: { s->line_counter++; } - goto st1297; -tr3636: - { - rdata_tail += s->dname_tmp_length; - } - goto st1297; -tr3637: + goto st1442; +tr3920: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1297; -tr3638: + goto st1442; +tr3921: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1297; -tr3647: + goto st1442; +tr3930: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1297; -st1297: + goto st1442; +st1442: if ( ++p == pe ) - goto _test_eof1297; -case 1297: + goto _test_eof1442; +case 1442: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -88842,47 +95328,47 @@ case 1297: s->number64 == 0 ) _widec += 256; } switch( _widec ) { - case 5641: goto st1297; - case 5664: goto st1297; - case 5672: goto tr3493; - case 5673: goto tr3494; - case 14602: goto tr3498; - case 14651: goto tr3498; - case 14858: goto tr3498; - case 14907: goto tr3498; - case 15370: goto tr3503; - case 15419: goto tr3504; - case 15626: goto tr3498; - case 15675: goto tr3498; - case 15882: goto tr3505; - case 15931: goto tr3506; - } - goto tr3511; -tr3504: + case 5641: goto st1442; + case 5664: goto st1442; + case 5672: goto tr3776; + case 5673: goto tr3777; + case 14602: goto tr3781; + case 14651: goto tr3781; + case 14858: goto tr3781; + case 14907: goto tr3781; + case 15370: goto tr3786; + case 15419: goto tr3787; + case 15626: goto tr3781; + case 15675: goto tr3781; + case 15882: goto tr3788; + case 15931: goto tr3789; + } + goto tr3794; +tr3787: { s->buffer_length = 0; } - goto st1298; -tr3515: + goto st1443; +tr3798: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1298; -tr3559: + goto st1443; +tr3842: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88890,20 +95376,20 @@ tr3559: { s->buffer_length = 0; } - goto st1298; -tr3604: + goto st1443; +tr3887: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -88911,19 +95397,19 @@ tr3604: { s->buffer_length = 0; } - goto st1298; -tr3648: + goto st1443; +tr3931: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1298; -st1298: + goto st1443; +st1443: if ( ++p == pe ) - goto _test_eof1298; -case 1298: + goto _test_eof1443; +case 1443: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -88949,31 +95435,31 @@ case 1298: s->number64 == 0 ) _widec += 512; } if ( _widec == 6666 ) - goto tr3516; + goto tr3799; if ( 6528 <= _widec && _widec <= 6783 ) - goto tr3515; - goto tr3511; -tr3505: + goto tr3798; + goto tr3794; +tr3788: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1577; -tr3560: + goto st1730; +tr3843: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -88984,20 +95470,20 @@ tr3560: { p--; {cs = stack[--top];goto _again;} } - goto st1577; -tr3605: + goto st1730; +tr3888: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -89008,8 +95494,8 @@ tr3605: { p--; {cs = stack[--top];goto _again;} } - goto st1577; -tr3649: + goto st1730; +tr3932: { rdata_tail += s->dname_tmp_length; } @@ -89019,11 +95505,11 @@ tr3649: { p--; {cs = stack[--top];goto _again;} } - goto st1577; -st1577: + goto st1730; +st1730: if ( ++p == pe ) - goto _test_eof1577; -case 1577: + goto _test_eof1730; +case 1730: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -89069,43 +95555,43 @@ case 1577: s->number64 == 0 ) _widec += 256; } switch( _widec ) { - case 5641: goto st1297; - case 5664: goto st1297; - case 5672: goto tr3493; - case 5673: goto tr3494; - case 14602: goto tr3498; - case 14651: goto tr3498; - case 14858: goto tr3498; - case 14907: goto tr3498; - case 15370: goto tr3503; - case 15419: goto tr3504; - case 15626: goto tr3498; - case 15675: goto tr3498; - case 15882: goto tr3505; - case 15931: goto tr3506; - } - goto tr3511; -tr3506: + case 5641: goto st1442; + case 5664: goto st1442; + case 5672: goto tr3776; + case 5673: goto tr3777; + case 14602: goto tr3781; + case 14651: goto tr3781; + case 14858: goto tr3781; + case 14907: goto tr3781; + case 15370: goto tr3786; + case 15419: goto tr3787; + case 15626: goto tr3781; + case 15675: goto tr3781; + case 15882: goto tr3788; + case 15931: goto tr3789; + } + goto tr3794; +tr3789: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1578; -tr3561: + goto st1731; +tr3844: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -89116,20 +95602,20 @@ tr3561: { p--; {cs = stack[--top];goto _again;} } - goto st1578; -tr3606: + goto st1731; +tr3889: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -89140,8 +95626,8 @@ tr3606: { p--; {cs = stack[--top];goto _again;} } - goto st1578; -tr3650: + goto st1731; +tr3933: { rdata_tail += s->dname_tmp_length; } @@ -89151,11 +95637,11 @@ tr3650: { p--; {cs = stack[--top];goto _again;} } - goto st1578; -st1578: + goto st1731; +st1731: if ( ++p == pe ) - goto _test_eof1578; -case 1578: + goto _test_eof1731; +case 1731: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89181,34 +95667,34 @@ case 1578: s->number64 == 0 ) _widec += 512; } if ( _widec == 6666 ) - goto tr3516; + goto tr3799; if ( 6528 <= _widec && _widec <= 6783 ) - goto tr3515; - goto tr3511; -tr3496: + goto tr3798; + goto tr3794; +tr3779: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1299; -tr3497: + goto st1444; +tr3780: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1299; -tr3507: + goto st1444; +tr3790: { s->line_counter++; } - goto st1299; -tr3518: + goto st1444; +tr3801: { s->buffer[s->buffer_length++] = 0; @@ -89218,63 +95704,68 @@ tr3518: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1299; goto _out;} + {p++; cs = 1444; goto _out;} } } } { s->line_counter++; } - goto st1299; -tr3550: + goto st1444; +tr3833: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; } - goto st1299; -tr3595: + goto st1444; +tr3878: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; } - goto st1299; -tr3551: + goto st1444; +tr3922: + { + rdata_tail += s->dname_tmp_length; + } + goto st1444; +tr3834: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -89282,24 +95773,24 @@ tr3551: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1299; -tr3552: + goto st1444; +tr3835: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -89307,24 +95798,24 @@ tr3552: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1299; -tr3562: + goto st1444; +tr3845: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -89332,20 +95823,20 @@ tr3562: { s->line_counter++; } - goto st1299; -tr3596: + goto st1444; +tr3879: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -89353,24 +95844,24 @@ tr3596: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1299; -tr3597: + goto st1444; +tr3880: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -89378,24 +95869,24 @@ tr3597: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1299; -tr3607: + goto st1444; +tr3890: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -89403,48 +95894,43 @@ tr3607: { s->line_counter++; } - goto st1299; -tr3639: - { - rdata_tail += s->dname_tmp_length; - } - goto st1299; -tr3640: + goto st1444; +tr3923: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1299; -tr3641: + goto st1444; +tr3924: { rdata_tail += s->dname_tmp_length; } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1299; -tr3651: + goto st1444; +tr3934: { rdata_tail += s->dname_tmp_length; } { s->line_counter++; } - goto st1299; -st1299: + goto st1444; +st1444: if ( ++p == pe ) - goto _test_eof1299; -case 1299: + goto _test_eof1444; +case 1444: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -89532,72 +96018,72 @@ case 1299: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4139: goto tr3512; - case 7177: goto st1294; - case 7200: goto st1294; - case 7208: goto tr3490; - case 7209: goto tr3491; - case 7433: goto st1297; - case 7456: goto st1297; - case 7464: goto tr3493; - case 7465: goto tr3494; - case 7689: goto st1299; - case 7712: goto st1299; - case 7720: goto tr3496; - case 7721: goto tr3497; - case 10506: goto tr3498; - case 10555: goto tr3498; - case 10762: goto tr3498; - case 10811: goto tr3498; - case 11274: goto tr3499; - case 11323: goto tr3500; - case 11530: goto tr3498; - case 11579: goto tr3498; - case 11786: goto tr3501; - case 11835: goto tr3502; - case 12298: goto tr3503; - case 12347: goto tr3504; - case 12554: goto tr3498; - case 12603: goto tr3498; - case 12810: goto tr3505; - case 12859: goto tr3506; - case 13322: goto tr3507; - case 13371: goto tr3508; - case 13578: goto tr3498; - case 13627: goto tr3498; - case 13834: goto tr3509; - case 13883: goto tr3510; + case 4139: goto tr3795; + case 7177: goto st1439; + case 7200: goto st1439; + case 7208: goto tr3773; + case 7209: goto tr3774; + case 7433: goto st1442; + case 7456: goto st1442; + case 7464: goto tr3776; + case 7465: goto tr3777; + case 7689: goto st1444; + case 7712: goto st1444; + case 7720: goto tr3779; + case 7721: goto tr3780; + case 10506: goto tr3781; + case 10555: goto tr3781; + case 10762: goto tr3781; + case 10811: goto tr3781; + case 11274: goto tr3782; + case 11323: goto tr3783; + case 11530: goto tr3781; + case 11579: goto tr3781; + case 11786: goto tr3784; + case 11835: goto tr3785; + case 12298: goto tr3786; + case 12347: goto tr3787; + case 12554: goto tr3781; + case 12603: goto tr3781; + case 12810: goto tr3788; + case 12859: goto tr3789; + case 13322: goto tr3790; + case 13371: goto tr3791; + case 13578: goto tr3781; + case 13627: goto tr3781; + case 13834: goto tr3792; + case 13883: goto tr3793; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3512; + goto tr3795; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3512; + goto tr3795; } else - goto tr3512; - goto tr3511; -tr3501: + goto tr3795; + goto tr3794; +tr3784: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1579; -tr3556: + goto st1732; +tr3839: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -89608,20 +96094,20 @@ tr3556: { p--; {cs = stack[--top];goto _again;} } - goto st1579; -tr3601: + goto st1732; +tr3884: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -89632,8 +96118,8 @@ tr3601: { p--; {cs = stack[--top];goto _again;} } - goto st1579; -tr3645: + goto st1732; +tr3928: { rdata_tail += s->dname_tmp_length; } @@ -89643,11 +96129,11 @@ tr3645: { p--; {cs = stack[--top];goto _again;} } - goto st1579; -st1579: + goto st1732; +st1732: if ( ++p == pe ) - goto _test_eof1579; -case 1579: + goto _test_eof1732; +case 1732: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -89719,44 +96205,44 @@ case 1579: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4105: goto st1294; - case 4128: goto st1294; - case 4136: goto tr3490; - case 4137: goto tr3491; - case 4139: goto tr3512; - case 5130: goto tr3499; - case 5179: goto tr3500; + case 4105: goto st1439; + case 4128: goto st1439; + case 4136: goto tr3773; + case 4137: goto tr3774; + case 4139: goto tr3795; + case 5130: goto tr3782; + case 5179: goto tr3783; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3512; + goto tr3795; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3512; + goto tr3795; } else - goto tr3512; - goto tr3511; -tr3502: + goto tr3795; + goto tr3794; +tr3785: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1580; -tr3557: + goto st1733; +tr3840: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -89767,20 +96253,20 @@ tr3557: { p--; {cs = stack[--top];goto _again;} } - goto st1580; -tr3602: + goto st1733; +tr3885: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -89791,8 +96277,8 @@ tr3602: { p--; {cs = stack[--top];goto _again;} } - goto st1580; -tr3646: + goto st1733; +tr3929: { rdata_tail += s->dname_tmp_length; } @@ -89802,11 +96288,11 @@ tr3646: { p--; {cs = stack[--top];goto _again;} } - goto st1580; -st1580: + goto st1733; +st1733: if ( ++p == pe ) - goto _test_eof1580; -case 1580: + goto _test_eof1733; +case 1733: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89832,35 +96318,35 @@ case 1580: s->number64 != 0 ) _widec += 512; } if ( _widec == 5130 ) - goto tr3514; + goto tr3797; if ( 4992 <= _widec && _widec <= 5247 ) - goto tr3513; - goto tr3511; -tr3508: + goto tr3796; + goto tr3794; +tr3791: { s->buffer_length = 0; } - goto st1300; -tr3517: + goto st1445; +tr3800: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1300; -tr3563: + goto st1445; +tr3846: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -89868,20 +96354,20 @@ tr3563: { s->buffer_length = 0; } - goto st1300; -tr3608: + goto st1445; +tr3891: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -89889,19 +96375,19 @@ tr3608: { s->buffer_length = 0; } - goto st1300; -tr3652: + goto st1445; +tr3935: { rdata_tail += s->dname_tmp_length; } { s->buffer_length = 0; } - goto st1300; -st1300: + goto st1445; +st1445: if ( ++p == pe ) - goto _test_eof1300; -case 1300: + goto _test_eof1445; +case 1445: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -89933,40 +96419,40 @@ case 1300: s->number64 == 0 ) _widec += 1024; } switch( _widec ) { - case 8714: goto tr3514; - case 9226: goto tr3516; - case 9738: goto tr3518; + case 8714: goto tr3797; + case 9226: goto tr3799; + case 9738: goto tr3801; } if ( _widec < 9088 ) { if ( 8576 <= _widec && _widec <= 8831 ) - goto tr3513; + goto tr3796; } else if ( _widec > 9343 ) { if ( 9600 <= _widec && _widec <= 9855 ) - goto tr3517; + goto tr3800; } else - goto tr3515; - goto tr3511; -tr3509: + goto tr3798; + goto tr3794; +tr3792: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1581; -tr3564: + goto st1734; +tr3847: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -89977,20 +96463,20 @@ tr3564: { p--; {cs = stack[--top];goto _again;} } - goto st1581; -tr3609: + goto st1734; +tr3892: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -90001,8 +96487,8 @@ tr3609: { p--; {cs = stack[--top];goto _again;} } - goto st1581; -tr3653: + goto st1734; +tr3936: { rdata_tail += s->dname_tmp_length; } @@ -90012,11 +96498,11 @@ tr3653: { p--; {cs = stack[--top];goto _again;} } - goto st1581; -st1581: + goto st1734; +st1734: if ( ++p == pe ) - goto _test_eof1581; -case 1581: + goto _test_eof1734; +case 1734: _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 32 ) { @@ -90104,72 +96590,72 @@ case 1581: s->number64 != 0 ) _widec += 256; } switch( _widec ) { - case 4139: goto tr3512; - case 7177: goto st1294; - case 7200: goto st1294; - case 7208: goto tr3490; - case 7209: goto tr3491; - case 7433: goto st1297; - case 7456: goto st1297; - case 7464: goto tr3493; - case 7465: goto tr3494; - case 7689: goto st1299; - case 7712: goto st1299; - case 7720: goto tr3496; - case 7721: goto tr3497; - case 10506: goto tr3498; - case 10555: goto tr3498; - case 10762: goto tr3498; - case 10811: goto tr3498; - case 11274: goto tr3499; - case 11323: goto tr3500; - case 11530: goto tr3498; - case 11579: goto tr3498; - case 11786: goto tr3501; - case 11835: goto tr3502; - case 12298: goto tr3503; - case 12347: goto tr3504; - case 12554: goto tr3498; - case 12603: goto tr3498; - case 12810: goto tr3505; - case 12859: goto tr3506; - case 13322: goto tr3507; - case 13371: goto tr3508; - case 13578: goto tr3498; - case 13627: goto tr3498; - case 13834: goto tr3509; - case 13883: goto tr3510; + case 4139: goto tr3795; + case 7177: goto st1439; + case 7200: goto st1439; + case 7208: goto tr3773; + case 7209: goto tr3774; + case 7433: goto st1442; + case 7456: goto st1442; + case 7464: goto tr3776; + case 7465: goto tr3777; + case 7689: goto st1444; + case 7712: goto st1444; + case 7720: goto tr3779; + case 7721: goto tr3780; + case 10506: goto tr3781; + case 10555: goto tr3781; + case 10762: goto tr3781; + case 10811: goto tr3781; + case 11274: goto tr3782; + case 11323: goto tr3783; + case 11530: goto tr3781; + case 11579: goto tr3781; + case 11786: goto tr3784; + case 11835: goto tr3785; + case 12298: goto tr3786; + case 12347: goto tr3787; + case 12554: goto tr3781; + case 12603: goto tr3781; + case 12810: goto tr3788; + case 12859: goto tr3789; + case 13322: goto tr3790; + case 13371: goto tr3791; + case 13578: goto tr3781; + case 13627: goto tr3781; + case 13834: goto tr3792; + case 13883: goto tr3793; } if ( _widec < 4161 ) { if ( 4143 <= _widec && _widec <= 4153 ) - goto tr3512; + goto tr3795; } else if ( _widec > 4186 ) { if ( 4193 <= _widec && _widec <= 4218 ) - goto tr3512; + goto tr3795; } else - goto tr3512; - goto tr3511; -tr3510: + goto tr3795; + goto tr3794; +tr3793: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1582; -tr3565: + goto st1735; +tr3848: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -90180,20 +96666,20 @@ tr3565: { p--; {cs = stack[--top];goto _again;} } - goto st1582; -tr3610: + goto st1735; +tr3893: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -90204,8 +96690,8 @@ tr3610: { p--; {cs = stack[--top];goto _again;} } - goto st1582; -tr3654: + goto st1735; +tr3937: { rdata_tail += s->dname_tmp_length; } @@ -90215,11 +96701,11 @@ tr3654: { p--; {cs = stack[--top];goto _again;} } - goto st1582; -st1582: + goto st1735; +st1735: if ( ++p == pe ) - goto _test_eof1582; -case 1582: + goto _test_eof1735; +case 1735: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90251,49 +96737,49 @@ case 1582: s->number64 == 0 ) _widec += 1024; } switch( _widec ) { - case 8714: goto tr3514; - case 9226: goto tr3516; - case 9738: goto tr3518; + case 8714: goto tr3797; + case 9226: goto tr3799; + case 9738: goto tr3801; } if ( _widec < 9088 ) { if ( 8576 <= _widec && _widec <= 8831 ) - goto tr3513; + goto tr3796; } else if ( _widec > 9343 ) { if ( 9600 <= _widec && _widec <= 9855 ) - goto tr3517; + goto tr3800; } else - goto tr3515; - goto tr3511; -tr3487: + goto tr3798; + goto tr3794; +tr3770: { s->buffer_length = 0; } - goto st1301; -tr3519: + goto st1446; +tr3802: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1301; -tr3481: + goto st1446; +tr3764: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1301; -st1301: + goto st1446; +st1446: if ( ++p == pe ) - goto _test_eof1301; -case 1301: + goto _test_eof1446; +case 1446: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90313,26 +96799,26 @@ case 1301: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3520; + goto tr3803; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3519; - goto tr3459; -tr3473: + goto tr3802; + goto tr3742; +tr3756: { s->buffer_length = 0; } - goto st1302; -tr3521: + goto st1447; +tr3804: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1302; -st1302: + goto st1447; +st1447: if ( ++p == pe ) - goto _test_eof1302; -case 1302: + goto _test_eof1447; +case 1447: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90352,19 +96838,19 @@ case 1302: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3522; + goto tr3805; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3521; - goto tr3459; -tr3464: + goto tr3804; + goto tr3742; +tr3747: { *(rdata_tail++) = 1; } - goto st1303; -st1303: + goto st1448; +st1448: if ( ++p == pe ) - goto _test_eof1303; -case 1303: + goto _test_eof1448; +case 1448: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90378,38 +96864,38 @@ case 1303: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1304; - case 32: goto st1304; - case 40: goto tr3524; - case 41: goto tr3525; - case 2058: goto tr3526; - case 2107: goto tr3527; + case 9: goto st1449; + case 32: goto st1449; + case 40: goto tr3807; + case 41: goto tr3808; + case 2058: goto tr3809; + case 2107: goto tr3810; } - goto tr3459; -tr3524: + goto tr3742; +tr3807: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1304; -tr3525: + goto st1449; +tr3808: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1304; -tr3526: + goto st1449; +tr3809: { s->line_counter++; } - goto st1304; -tr3569: + goto st1449; +tr3852: { s->buffer[s->buffer_length++] = 0; @@ -90419,18 +96905,18 @@ tr3569: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1304; goto _out;} + {p++; cs = 1449; goto _out;} } } } { s->line_counter++; } - goto st1304; -st1304: + goto st1449; +st1449: if ( ++p == pe ) - goto _test_eof1304; -case 1304: + goto _test_eof1449; +case 1449: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90444,17 +96930,17 @@ case 1304: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1304; - case 32: goto st1304; - case 40: goto tr3524; - case 41: goto tr3525; - case 2058: goto tr3526; - case 2107: goto tr3527; + case 9: goto st1449; + case 32: goto st1449; + case 40: goto tr3807; + case 41: goto tr3808; + case 2058: goto tr3809; + case 2107: goto tr3810; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3528; - goto tr3474; -tr3528: + goto tr3811; + goto tr3757; +tr3811: { s->number64 = 0; } @@ -90469,11 +96955,11 @@ tr3528: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1305; -tr3532: + goto st1450; +tr3815: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -90485,14 +96971,14 @@ tr3532: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1305; -st1305: + goto st1450; +st1450: if ( ++p == pe ) - goto _test_eof1305; -case 1305: + goto _test_eof1450; +case 1450: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90506,40 +96992,40 @@ case 1305: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3529; - case 32: goto tr3529; - case 40: goto tr3530; - case 41: goto tr3531; - case 2058: goto tr3533; - case 2107: goto tr3534; + case 9: goto tr3812; + case 32: goto tr3812; + case 40: goto tr3813; + case 41: goto tr3814; + case 2058: goto tr3816; + case 2107: goto tr3817; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3532; - goto tr3474; -tr3537: + goto tr3815; + goto tr3757; +tr3820: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1306; -tr3538: + goto st1451; +tr3821: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1306; -tr3540: + goto st1451; +tr3823: { s->line_counter++; } - goto st1306; -tr3567: + goto st1451; +tr3850: { s->buffer[s->buffer_length++] = 0; @@ -90549,79 +97035,79 @@ tr3567: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1306; goto _out;} + {p++; cs = 1451; goto _out;} } } } { s->line_counter++; } - goto st1306; -tr3529: + goto st1451; +tr3812: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1306; -tr3530: + goto st1451; +tr3813: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1306; -tr3531: + goto st1451; +tr3814: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1306; -tr3533: + goto st1451; +tr3816: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1306; -st1306: + goto st1451; +st1451: if ( ++p == pe ) - goto _test_eof1306; -case 1306: + goto _test_eof1451; +case 1451: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90635,28 +97121,28 @@ case 1306: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1306; - case 32: goto st1306; - case 40: goto tr3537; - case 41: goto tr3538; - case 46: goto tr3539; - case 2058: goto tr3540; - case 2107: goto tr3541; + case 9: goto st1451; + case 32: goto st1451; + case 40: goto tr3820; + case 41: goto tr3821; + case 46: goto tr3822; + case 2058: goto tr3823; + case 2107: goto tr3824; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3539; - goto tr3535; -tr3543: + goto tr3822; + goto tr3818; +tr3826: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1307; -tr3539: + goto st1452; +tr3822: { s->buffer_length = 0; } @@ -90665,14 +97151,14 @@ tr3539: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1307; -st1307: + goto st1452; +st1452: if ( ++p == pe ) - goto _test_eof1307; -case 1307: + goto _test_eof1452; +case 1452: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -90730,75 +97216,75 @@ case 1307: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 46: goto tr3543; - case 7177: goto tr3544; - case 7200: goto tr3544; - case 7208: goto tr3545; - case 7209: goto tr3546; - case 7433: goto tr3547; - case 7456: goto tr3547; - case 7464: goto tr3548; - case 7465: goto tr3549; - case 7689: goto tr3550; - case 7712: goto tr3550; - case 7720: goto tr3551; - case 7721: goto tr3552; - case 10506: goto tr3553; - case 10555: goto tr3553; - case 10762: goto tr3553; - case 10811: goto tr3553; - case 11274: goto tr3554; - case 11323: goto tr3555; - case 11530: goto tr3553; - case 11579: goto tr3553; - case 11786: goto tr3556; - case 11835: goto tr3557; - case 12298: goto tr3558; - case 12347: goto tr3559; - case 12554: goto tr3553; - case 12603: goto tr3553; - case 12810: goto tr3560; - case 12859: goto tr3561; - case 13322: goto tr3562; - case 13371: goto tr3563; - case 13578: goto tr3553; - case 13627: goto tr3553; - case 13834: goto tr3564; - case 13883: goto tr3565; + case 46: goto tr3826; + case 7177: goto tr3827; + case 7200: goto tr3827; + case 7208: goto tr3828; + case 7209: goto tr3829; + case 7433: goto tr3830; + case 7456: goto tr3830; + case 7464: goto tr3831; + case 7465: goto tr3832; + case 7689: goto tr3833; + case 7712: goto tr3833; + case 7720: goto tr3834; + case 7721: goto tr3835; + case 10506: goto tr3836; + case 10555: goto tr3836; + case 10762: goto tr3836; + case 10811: goto tr3836; + case 11274: goto tr3837; + case 11323: goto tr3838; + case 11530: goto tr3836; + case 11579: goto tr3836; + case 11786: goto tr3839; + case 11835: goto tr3840; + case 12298: goto tr3841; + case 12347: goto tr3842; + case 12554: goto tr3836; + case 12603: goto tr3836; + case 12810: goto tr3843; + case 12859: goto tr3844; + case 13322: goto tr3845; + case 13371: goto tr3846; + case 13578: goto tr3836; + case 13627: goto tr3836; + case 13834: goto tr3847; + case 13883: goto tr3848; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3543; - goto tr3542; -tr3541: + goto tr3826; + goto tr3825; +tr3824: { s->buffer_length = 0; } - goto st1308; -tr3566: + goto st1453; +tr3849: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1308; -tr3534: + goto st1453; +tr3817: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1308; -st1308: + goto st1453; +st1453: if ( ++p == pe ) - goto _test_eof1308; -case 1308: + goto _test_eof1453; +case 1453: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90818,26 +97304,26 @@ case 1308: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3567; + goto tr3850; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3566; - goto tr3459; -tr3527: + goto tr3849; + goto tr3742; +tr3810: { s->buffer_length = 0; } - goto st1309; -tr3568: + goto st1454; +tr3851: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1309; -st1309: + goto st1454; +st1454: if ( ++p == pe ) - goto _test_eof1309; -case 1309: + goto _test_eof1454; +case 1454: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -90857,19 +97343,19 @@ case 1309: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3569; + goto tr3852; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3568; - goto tr3459; -tr3465: + goto tr3851; + goto tr3742; +tr3748: { *(rdata_tail++) = 2; } - goto st1310; -st1310: + goto st1455; +st1455: if ( ++p == pe ) - goto _test_eof1310; -case 1310: + goto _test_eof1455; +case 1455: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90883,38 +97369,38 @@ case 1310: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1311; - case 32: goto st1311; - case 40: goto tr3571; - case 41: goto tr3572; - case 2058: goto tr3573; - case 2107: goto tr3574; + case 9: goto st1456; + case 32: goto st1456; + case 40: goto tr3854; + case 41: goto tr3855; + case 2058: goto tr3856; + case 2107: goto tr3857; } - goto tr3459; -tr3571: + goto tr3742; +tr3854: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1311; -tr3572: + goto st1456; +tr3855: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1311; -tr3573: + goto st1456; +tr3856: { s->line_counter++; } - goto st1311; -tr3614: + goto st1456; +tr3897: { s->buffer[s->buffer_length++] = 0; @@ -90924,18 +97410,18 @@ tr3614: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1311; goto _out;} + {p++; cs = 1456; goto _out;} } } } { s->line_counter++; } - goto st1311; -st1311: + goto st1456; +st1456: if ( ++p == pe ) - goto _test_eof1311; -case 1311: + goto _test_eof1456; +case 1456: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -90949,17 +97435,17 @@ case 1311: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1311; - case 32: goto st1311; - case 40: goto tr3571; - case 41: goto tr3572; - case 2058: goto tr3573; - case 2107: goto tr3574; + case 9: goto st1456; + case 32: goto st1456; + case 40: goto tr3854; + case 41: goto tr3855; + case 2058: goto tr3856; + case 2107: goto tr3857; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3575; - goto tr3474; -tr3575: + goto tr3858; + goto tr3757; +tr3858: { s->number64 = 0; } @@ -90974,11 +97460,11 @@ tr3575: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1312; -tr3579: + goto st1457; +tr3862: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -90990,14 +97476,14 @@ tr3579: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1312; -st1312: + goto st1457; +st1457: if ( ++p == pe ) - goto _test_eof1312; -case 1312: + goto _test_eof1457; +case 1457: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91011,40 +97497,40 @@ case 1312: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3576; - case 32: goto tr3576; - case 40: goto tr3577; - case 41: goto tr3578; - case 2058: goto tr3580; - case 2107: goto tr3581; + case 9: goto tr3859; + case 32: goto tr3859; + case 40: goto tr3860; + case 41: goto tr3861; + case 2058: goto tr3863; + case 2107: goto tr3864; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3579; - goto tr3474; -tr3583: + goto tr3862; + goto tr3757; +tr3866: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1313; -tr3584: + goto st1458; +tr3867: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1313; -tr3586: + goto st1458; +tr3869: { s->line_counter++; } - goto st1313; -tr3612: + goto st1458; +tr3895: { s->buffer[s->buffer_length++] = 0; @@ -91054,79 +97540,79 @@ tr3612: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1313; goto _out;} + {p++; cs = 1458; goto _out;} } } } { s->line_counter++; } - goto st1313; -tr3576: + goto st1458; +tr3859: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1313; -tr3577: + goto st1458; +tr3860: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1313; -tr3578: + goto st1458; +tr3861: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1313; -tr3580: + goto st1458; +tr3863: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1313; -st1313: + goto st1458; +st1458: if ( ++p == pe ) - goto _test_eof1313; -case 1313: + goto _test_eof1458; +case 1458: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91140,34 +97626,34 @@ case 1313: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1313; - case 32: goto st1313; - case 40: goto tr3583; - case 41: goto tr3584; - case 46: goto tr3585; - case 2058: goto tr3586; - case 2107: goto tr3587; + case 9: goto st1458; + case 32: goto st1458; + case 40: goto tr3866; + case 41: goto tr3867; + case 46: goto tr3868; + case 2058: goto tr3869; + case 2107: goto tr3870; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 58 ) - goto tr3585; + goto tr3868; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3585; + goto tr3868; } else - goto tr3585; - goto tr3535; -tr3588: + goto tr3868; + goto tr3818; +tr3871: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1314; -tr3585: + goto st1459; +tr3868: { s->buffer_length = 0; } @@ -91176,14 +97662,14 @@ tr3585: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1314; -st1314: + goto st1459; +st1459: if ( ++p == pe ) - goto _test_eof1314; -case 1314: + goto _test_eof1459; +case 1459: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -91241,81 +97727,81 @@ case 1314: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 46: goto tr3588; - case 7177: goto tr3589; - case 7200: goto tr3589; - case 7208: goto tr3590; - case 7209: goto tr3591; - case 7433: goto tr3592; - case 7456: goto tr3592; - case 7464: goto tr3593; - case 7465: goto tr3594; - case 7689: goto tr3595; - case 7712: goto tr3595; - case 7720: goto tr3596; - case 7721: goto tr3597; - case 10506: goto tr3598; - case 10555: goto tr3598; - case 10762: goto tr3598; - case 10811: goto tr3598; - case 11274: goto tr3599; - case 11323: goto tr3600; - case 11530: goto tr3598; - case 11579: goto tr3598; - case 11786: goto tr3601; - case 11835: goto tr3602; - case 12298: goto tr3603; - case 12347: goto tr3604; - case 12554: goto tr3598; - case 12603: goto tr3598; - case 12810: goto tr3605; - case 12859: goto tr3606; - case 13322: goto tr3607; - case 13371: goto tr3608; - case 13578: goto tr3598; - case 13627: goto tr3598; - case 13834: goto tr3609; - case 13883: goto tr3610; + case 46: goto tr3871; + case 7177: goto tr3872; + case 7200: goto tr3872; + case 7208: goto tr3873; + case 7209: goto tr3874; + case 7433: goto tr3875; + case 7456: goto tr3875; + case 7464: goto tr3876; + case 7465: goto tr3877; + case 7689: goto tr3878; + case 7712: goto tr3878; + case 7720: goto tr3879; + case 7721: goto tr3880; + case 10506: goto tr3881; + case 10555: goto tr3881; + case 10762: goto tr3881; + case 10811: goto tr3881; + case 11274: goto tr3882; + case 11323: goto tr3883; + case 11530: goto tr3881; + case 11579: goto tr3881; + case 11786: goto tr3884; + case 11835: goto tr3885; + case 12298: goto tr3886; + case 12347: goto tr3887; + case 12554: goto tr3881; + case 12603: goto tr3881; + case 12810: goto tr3888; + case 12859: goto tr3889; + case 13322: goto tr3890; + case 13371: goto tr3891; + case 13578: goto tr3881; + case 13627: goto tr3881; + case 13834: goto tr3892; + case 13883: goto tr3893; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 58 ) - goto tr3588; + goto tr3871; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3588; + goto tr3871; } else - goto tr3588; - goto tr3542; -tr3587: + goto tr3871; + goto tr3825; +tr3870: { s->buffer_length = 0; } - goto st1315; -tr3611: + goto st1460; +tr3894: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1315; -tr3581: + goto st1460; +tr3864: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1315; -st1315: + goto st1460; +st1460: if ( ++p == pe ) - goto _test_eof1315; -case 1315: + goto _test_eof1460; +case 1460: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91335,26 +97821,26 @@ case 1315: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3612; + goto tr3895; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3611; - goto tr3459; -tr3574: + goto tr3894; + goto tr3742; +tr3857: { s->buffer_length = 0; } - goto st1316; -tr3613: + goto st1461; +tr3896: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1316; -st1316: + goto st1461; +st1461: if ( ++p == pe ) - goto _test_eof1316; -case 1316: + goto _test_eof1461; +case 1461: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91374,19 +97860,19 @@ case 1316: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3614; + goto tr3897; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3613; - goto tr3459; -tr3466: + goto tr3896; + goto tr3742; +tr3749: { *(rdata_tail++) = 3; } - goto st1317; -st1317: + goto st1462; +st1462: if ( ++p == pe ) - goto _test_eof1317; -case 1317: + goto _test_eof1462; +case 1462: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91400,38 +97886,38 @@ case 1317: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1318; - case 32: goto st1318; - case 40: goto tr3616; - case 41: goto tr3617; - case 2058: goto tr3618; - case 2107: goto tr3619; + case 9: goto st1463; + case 32: goto st1463; + case 40: goto tr3899; + case 41: goto tr3900; + case 2058: goto tr3901; + case 2107: goto tr3902; } - goto tr3459; -tr3616: + goto tr3742; +tr3899: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1318; -tr3617: + goto st1463; +tr3900: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1318; -tr3618: + goto st1463; +tr3901: { s->line_counter++; } - goto st1318; -tr3658: + goto st1463; +tr3941: { s->buffer[s->buffer_length++] = 0; @@ -91441,18 +97927,18 @@ tr3658: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1318; goto _out;} + {p++; cs = 1463; goto _out;} } } } { s->line_counter++; } - goto st1318; -st1318: + goto st1463; +st1463: if ( ++p == pe ) - goto _test_eof1318; -case 1318: + goto _test_eof1463; +case 1463: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91466,17 +97952,17 @@ case 1318: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1318; - case 32: goto st1318; - case 40: goto tr3616; - case 41: goto tr3617; - case 2058: goto tr3618; - case 2107: goto tr3619; + case 9: goto st1463; + case 32: goto st1463; + case 40: goto tr3899; + case 41: goto tr3900; + case 2058: goto tr3901; + case 2107: goto tr3902; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3620; - goto tr3474; -tr3620: + goto tr3903; + goto tr3757; +tr3903: { s->number64 = 0; } @@ -91491,11 +97977,11 @@ tr3620: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1319; -tr3624: + goto st1464; +tr3907: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -91507,14 +97993,14 @@ tr3624: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1319; -st1319: + goto st1464; +st1464: if ( ++p == pe ) - goto _test_eof1319; -case 1319: + goto _test_eof1464; +case 1464: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91528,40 +98014,40 @@ case 1319: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3621; - case 32: goto tr3621; - case 40: goto tr3622; - case 41: goto tr3623; - case 2058: goto tr3625; - case 2107: goto tr3626; + case 9: goto tr3904; + case 32: goto tr3904; + case 40: goto tr3905; + case 41: goto tr3906; + case 2058: goto tr3908; + case 2107: goto tr3909; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3624; - goto tr3474; -tr3628: + goto tr3907; + goto tr3757; +tr3911: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1320; -tr3629: + goto st1465; +tr3912: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1320; -tr3631: + goto st1465; +tr3914: { s->line_counter++; } - goto st1320; -tr3656: + goto st1465; +tr3939: { s->buffer[s->buffer_length++] = 0; @@ -91571,79 +98057,79 @@ tr3656: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1320; goto _out;} + {p++; cs = 1465; goto _out;} } } } { s->line_counter++; } - goto st1320; -tr3621: + goto st1465; +tr3904: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1320; -tr3622: + goto st1465; +tr3905: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1320; -tr3623: + goto st1465; +tr3906: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1320; -tr3625: + goto st1465; +tr3908: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1320; -st1320: + goto st1465; +st1465: if ( ++p == pe ) - goto _test_eof1320; -case 1320: + goto _test_eof1465; +case 1465: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91657,35 +98143,35 @@ case 1320: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1320; - case 32: goto st1320; - case 40: goto tr3628; - case 41: goto tr3629; - case 42: goto tr3630; - case 92: goto tr3630; - case 95: goto tr3630; - case 2058: goto tr3631; - case 2107: goto tr3632; + case 9: goto st1465; + case 32: goto st1465; + case 40: goto tr3911; + case 41: goto tr3912; + case 42: goto tr3913; + case 92: goto tr3913; + case 95: goto tr3913; + case 2058: goto tr3914; + case 2107: goto tr3915; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3630; + goto tr3913; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3630; + goto tr3913; } else - goto tr3630; - goto tr3459; -tr3630: + goto tr3913; + goto tr3742; +tr3913: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1321;goto st331;} } - goto st1321; -st1321: + { p--; {stack[top++] = 1466;goto st340;} } + goto st1466; +st1466: if ( ++p == pe ) - goto _test_eof1321; -case 1321: + goto _test_eof1466; +case 1466: _widec = (*p); if ( (*p) < 32 ) { if ( (*p) > 9 ) { @@ -91743,72 +98229,72 @@ case 1321: s->number64 == 0 ) _widec += 512; } switch( _widec ) { - case 7177: goto tr3633; - case 7200: goto tr3633; - case 7208: goto tr3634; - case 7209: goto tr3635; - case 7433: goto tr3636; - case 7456: goto tr3636; - case 7464: goto tr3637; - case 7465: goto tr3638; - case 7689: goto tr3639; - case 7712: goto tr3639; - case 7720: goto tr3640; - case 7721: goto tr3641; - case 10506: goto tr3642; - case 10555: goto tr3642; - case 10762: goto tr3642; - case 10811: goto tr3642; - case 11274: goto tr3643; - case 11323: goto tr3644; - case 11530: goto tr3642; - case 11579: goto tr3642; - case 11786: goto tr3645; - case 11835: goto tr3646; - case 12298: goto tr3647; - case 12347: goto tr3648; - case 12554: goto tr3642; - case 12603: goto tr3642; - case 12810: goto tr3649; - case 12859: goto tr3650; - case 13322: goto tr3651; - case 13371: goto tr3652; - case 13578: goto tr3642; - case 13627: goto tr3642; - case 13834: goto tr3653; - case 13883: goto tr3654; - } - goto tr3488; -tr3632: + case 7177: goto tr3916; + case 7200: goto tr3916; + case 7208: goto tr3917; + case 7209: goto tr3918; + case 7433: goto tr3919; + case 7456: goto tr3919; + case 7464: goto tr3920; + case 7465: goto tr3921; + case 7689: goto tr3922; + case 7712: goto tr3922; + case 7720: goto tr3923; + case 7721: goto tr3924; + case 10506: goto tr3925; + case 10555: goto tr3925; + case 10762: goto tr3925; + case 10811: goto tr3925; + case 11274: goto tr3926; + case 11323: goto tr3927; + case 11530: goto tr3925; + case 11579: goto tr3925; + case 11786: goto tr3928; + case 11835: goto tr3929; + case 12298: goto tr3930; + case 12347: goto tr3931; + case 12554: goto tr3925; + case 12603: goto tr3925; + case 12810: goto tr3932; + case 12859: goto tr3933; + case 13322: goto tr3934; + case 13371: goto tr3935; + case 13578: goto tr3925; + case 13627: goto tr3925; + case 13834: goto tr3936; + case 13883: goto tr3937; + } + goto tr3771; +tr3915: { s->buffer_length = 0; } - goto st1322; -tr3655: + goto st1467; +tr3938: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1322; -tr3626: + goto st1467; +tr3909: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1322; -st1322: + goto st1467; +st1467: if ( ++p == pe ) - goto _test_eof1322; -case 1322: + goto _test_eof1467; +case 1467: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91828,26 +98314,26 @@ case 1322: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3656; + goto tr3939; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3655; - goto tr3459; -tr3619: + goto tr3938; + goto tr3742; +tr3902: { s->buffer_length = 0; } - goto st1323; -tr3657: + goto st1468; +tr3940: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1323; -st1323: + goto st1468; +st1468: if ( ++p == pe ) - goto _test_eof1323; -case 1323: + goto _test_eof1468; +case 1468: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91867,40 +98353,40 @@ case 1323: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3658; + goto tr3941; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3657; - goto tr3459; -tr3468: + goto tr3940; + goto tr3742; +tr3751: { s->buffer_length = 0; } - goto st1324; -tr3659: + goto st1469; +tr3942: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1324; -tr3458: + goto st1469; +tr3741: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1324; -st1324: + goto st1469; +st1469: if ( ++p == pe ) - goto _test_eof1324; -case 1324: + goto _test_eof1469; +case 1469: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -91920,30 +98406,30 @@ case 1324: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3660; + goto tr3943; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3659; + goto tr3942; goto tr78; -st1325: +st1470: if ( ++p == pe ) - goto _test_eof1325; -case 1325: + goto _test_eof1470; +case 1470: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3661; + goto tr3944; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3661; + goto tr3944; } else - goto tr3661; + goto tr3944; goto tr78; -tr3661: - { p--; {stack[top++] = 1326;goto st398;} } - goto st1326; -st1326: +tr3944: + { p--; {stack[top++] = 1471;goto st407;} } + goto st1471; +st1471: if ( ++p == pe ) - goto _test_eof1326; -case 1326: + goto _test_eof1471; +case 1471: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -91957,38 +98443,38 @@ case 1326: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1327; - case 32: goto st1327; - case 40: goto tr3663; - case 41: goto tr3664; - case 2058: goto tr3665; - case 2107: goto tr3666; + case 9: goto st1472; + case 32: goto st1472; + case 40: goto tr3946; + case 41: goto tr3947; + case 2058: goto tr3948; + case 2107: goto tr3949; } goto tr78; -tr3663: +tr3946: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1327; -tr3664: + goto st1472; +tr3947: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1327; -tr3665: + goto st1472; +tr3948: { s->line_counter++; } - goto st1327; -tr3762: + goto st1472; +tr4045: { s->buffer[s->buffer_length++] = 0; @@ -91998,18 +98484,18 @@ tr3762: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1327; goto _out;} + {p++; cs = 1472; goto _out;} } } } { s->line_counter++; } - goto st1327; -st1327: + goto st1472; +st1472: if ( ++p == pe ) - goto _test_eof1327; -case 1327: + goto _test_eof1472; +case 1472: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92023,29 +98509,29 @@ case 1327: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1327; - case 32: goto st1327; - case 40: goto tr3663; - case 41: goto tr3664; - case 2058: goto tr3665; - case 2107: goto tr3666; + case 9: goto st1472; + case 32: goto st1472; + case 40: goto tr3946; + case 41: goto tr3947; + case 2058: goto tr3948; + case 2107: goto tr3949; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3667; + goto tr3950; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3667; + goto tr3950; } else - goto tr3667; + goto tr3950; goto tr78; -tr3667: - { p--; {stack[top++] = 1328;goto st948;} } - goto st1328; -st1328: +tr3950: + { p--; {stack[top++] = 1473;goto st1093;} } + goto st1473; +st1473: if ( ++p == pe ) - goto _test_eof1328; -case 1328: + goto _test_eof1473; +case 1473: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92059,38 +98545,38 @@ case 1328: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1329; - case 32: goto st1329; - case 40: goto tr3669; - case 41: goto tr3670; - case 2058: goto tr3671; - case 2107: goto tr3672; + case 9: goto st1474; + case 32: goto st1474; + case 40: goto tr3952; + case 41: goto tr3953; + case 2058: goto tr3954; + case 2107: goto tr3955; } goto tr78; -tr3669: +tr3952: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1329; -tr3670: + goto st1474; +tr3953: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1329; -tr3671: + goto st1474; +tr3954: { s->line_counter++; } - goto st1329; -tr3760: + goto st1474; +tr4043: { s->buffer[s->buffer_length++] = 0; @@ -92100,18 +98586,18 @@ tr3760: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1329; goto _out;} + {p++; cs = 1474; goto _out;} } } } { s->line_counter++; } - goto st1329; -st1329: + goto st1474; +st1474: if ( ++p == pe ) - goto _test_eof1329; -case 1329: + goto _test_eof1474; +case 1474: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92125,17 +98611,17 @@ case 1329: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1329; - case 32: goto st1329; - case 40: goto tr3669; - case 41: goto tr3670; - case 2058: goto tr3671; - case 2107: goto tr3672; + case 9: goto st1474; + case 32: goto st1474; + case 40: goto tr3952; + case 41: goto tr3953; + case 2058: goto tr3954; + case 2107: goto tr3955; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3673; - goto tr2717; -tr3673: + goto tr3956; + goto tr3000; +tr3956: { s->number64 = 0; } @@ -92150,11 +98636,11 @@ tr3673: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1330; -tr3677: + goto st1475; +tr3960: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -92166,14 +98652,14 @@ tr3677: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1330; -st1330: + goto st1475; +st1475: if ( ++p == pe ) - goto _test_eof1330; -case 1330: + goto _test_eof1475; +case 1475: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92187,40 +98673,40 @@ case 1330: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3674; - case 32: goto tr3674; - case 40: goto tr3675; - case 41: goto tr3676; - case 2058: goto tr3678; - case 2107: goto tr3679; + case 9: goto tr3957; + case 32: goto tr3957; + case 40: goto tr3958; + case 41: goto tr3959; + case 2058: goto tr3961; + case 2107: goto tr3962; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3677; - goto tr2717; -tr3681: + goto tr3960; + goto tr3000; +tr3964: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1331; -tr3682: + goto st1476; +tr3965: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1331; -tr3684: + goto st1476; +tr3967: { s->line_counter++; } - goto st1331; -tr3758: + goto st1476; +tr4041: { s->buffer[s->buffer_length++] = 0; @@ -92230,79 +98716,79 @@ tr3758: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1331; goto _out;} + {p++; cs = 1476; goto _out;} } } } { s->line_counter++; } - goto st1331; -tr3674: + goto st1476; +tr3957: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1331; -tr3675: + goto st1476; +tr3958: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1331; -tr3676: + goto st1476; +tr3959: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1331; -tr3678: + goto st1476; +tr3961: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1331; -st1331: + goto st1476; +st1476: if ( ++p == pe ) - goto _test_eof1331; -case 1331: + goto _test_eof1476; +case 1476: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92316,17 +98802,17 @@ case 1331: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1331; - case 32: goto st1331; - case 40: goto tr3681; - case 41: goto tr3682; - case 2058: goto tr3684; - case 2107: goto tr3685; + case 9: goto st1476; + case 32: goto st1476; + case 40: goto tr3964; + case 41: goto tr3965; + case 2058: goto tr3967; + case 2107: goto tr3968; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3683; - goto tr2717; -tr3683: + goto tr3966; + goto tr3000; +tr3966: { s->number64 = 0; } @@ -92341,11 +98827,11 @@ tr3683: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1332; -tr3689: + goto st1477; +tr3972: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -92357,14 +98843,14 @@ tr3689: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1332; -st1332: + goto st1477; +st1477: if ( ++p == pe ) - goto _test_eof1332; -case 1332: + goto _test_eof1477; +case 1477: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92378,40 +98864,40 @@ case 1332: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3686; - case 32: goto tr3686; - case 40: goto tr3687; - case 41: goto tr3688; - case 2058: goto tr3690; - case 2107: goto tr3691; + case 9: goto tr3969; + case 32: goto tr3969; + case 40: goto tr3970; + case 41: goto tr3971; + case 2058: goto tr3973; + case 2107: goto tr3974; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3689; - goto tr2717; -tr3694: + goto tr3972; + goto tr3000; +tr3977: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1333; -tr3695: + goto st1478; +tr3978: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1333; -tr3697: + goto st1478; +tr3980: { s->line_counter++; } - goto st1333; -tr3756: + goto st1478; +tr4039: { s->buffer[s->buffer_length++] = 0; @@ -92421,15 +98907,15 @@ tr3756: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1333; goto _out;} + {p++; cs = 1478; goto _out;} } } } { s->line_counter++; } - goto st1333; -tr3686: + goto st1478; +tr3969: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -92437,11 +98923,11 @@ tr3686: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1333; -tr3687: + goto st1478; +tr3970: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -92449,18 +98935,18 @@ tr3687: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1333; -tr3688: + goto st1478; +tr3971: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -92468,18 +98954,18 @@ tr3688: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1333; -tr3690: + goto st1478; +tr3973: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -92487,17 +98973,17 @@ tr3690: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1333; -st1333: + goto st1478; +st1478: if ( ++p == pe ) - goto _test_eof1333; -case 1333: + goto _test_eof1478; +case 1478: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92511,17 +98997,17 @@ case 1333: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1333; - case 32: goto st1333; - case 40: goto tr3694; - case 41: goto tr3695; - case 2058: goto tr3697; - case 2107: goto tr3698; + case 9: goto st1478; + case 32: goto st1478; + case 40: goto tr3977; + case 41: goto tr3978; + case 2058: goto tr3980; + case 2107: goto tr3981; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3696; - goto tr3692; -tr3696: + goto tr3979; + goto tr3975; +tr3979: { s->buffer_length = 0; } @@ -92530,24 +99016,24 @@ tr3696: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1334; -tr3702: + goto st1479; +tr3985: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1334; -st1334: + goto st1479; +st1479: if ( ++p == pe ) - goto _test_eof1334; -case 1334: + goto _test_eof1479; +case 1479: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92561,40 +99047,40 @@ case 1334: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3699; - case 32: goto tr3699; - case 40: goto tr3700; - case 41: goto tr3701; - case 2058: goto tr3703; - case 2107: goto tr3704; + case 9: goto tr3982; + case 32: goto tr3982; + case 40: goto tr3983; + case 41: goto tr3984; + case 2058: goto tr3986; + case 2107: goto tr3987; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3702; - goto tr3692; -tr3706: + goto tr3985; + goto tr3975; +tr3989: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1335; -tr3707: + goto st1480; +tr3990: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1335; -tr3709: + goto st1480; +tr3992: { s->line_counter++; } - goto st1335; -tr3754: + goto st1480; +tr4037: { s->buffer[s->buffer_length++] = 0; @@ -92604,15 +99090,15 @@ tr3754: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1335; goto _out;} + {p++; cs = 1480; goto _out;} } } } { s->line_counter++; } - goto st1335; -tr3699: + goto st1480; +tr3982: { s->buffer[s->buffer_length] = 0; @@ -92625,7 +99111,7 @@ tr3699: rdata_tail += 4; } else { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -92634,7 +99120,7 @@ tr3699: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st329;} + p--; {goto st338;} } if (s->number64 <= UINT32_MAX) { @@ -92642,15 +99128,15 @@ tr3699: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1335; -tr3700: + goto st1480; +tr3983: { s->buffer[s->buffer_length] = 0; @@ -92663,7 +99149,7 @@ tr3700: rdata_tail += 4; } else { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -92672,7 +99158,7 @@ tr3700: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st329;} + p--; {goto st338;} } if (s->number64 <= UINT32_MAX) { @@ -92680,22 +99166,22 @@ tr3700: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1335; -tr3701: + goto st1480; +tr3984: { s->buffer[s->buffer_length] = 0; @@ -92708,7 +99194,7 @@ tr3701: rdata_tail += 4; } else { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -92717,7 +99203,7 @@ tr3701: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st329;} + p--; {goto st338;} } if (s->number64 <= UINT32_MAX) { @@ -92725,22 +99211,22 @@ tr3701: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1335; -tr3703: + goto st1480; +tr3986: { s->buffer[s->buffer_length] = 0; @@ -92753,7 +99239,7 @@ tr3703: rdata_tail += 4; } else { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -92762,7 +99248,7 @@ tr3703: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st329;} + p--; {goto st338;} } if (s->number64 <= UINT32_MAX) { @@ -92770,21 +99256,21 @@ tr3703: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1335; -st1335: + goto st1480; +st1480: if ( ++p == pe ) - goto _test_eof1335; -case 1335: + goto _test_eof1480; +case 1480: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92798,17 +99284,17 @@ case 1335: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1335; - case 32: goto st1335; - case 40: goto tr3706; - case 41: goto tr3707; - case 2058: goto tr3709; - case 2107: goto tr3710; + case 9: goto st1480; + case 32: goto st1480; + case 40: goto tr3989; + case 41: goto tr3990; + case 2058: goto tr3992; + case 2107: goto tr3993; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3708; - goto tr3692; -tr3708: + goto tr3991; + goto tr3975; +tr3991: { s->buffer_length = 0; } @@ -92817,24 +99303,24 @@ tr3708: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1336; -tr3714: + goto st1481; +tr3997: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1336; -st1336: + goto st1481; +st1481: if ( ++p == pe ) - goto _test_eof1336; -case 1336: + goto _test_eof1481; +case 1481: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -92848,40 +99334,40 @@ case 1336: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3711; - case 32: goto tr3711; - case 40: goto tr3712; - case 41: goto tr3713; - case 2058: goto tr3715; - case 2107: goto tr3716; + case 9: goto tr3994; + case 32: goto tr3994; + case 40: goto tr3995; + case 41: goto tr3996; + case 2058: goto tr3998; + case 2107: goto tr3999; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3714; - goto tr3692; -tr3718: + goto tr3997; + goto tr3975; +tr4001: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1337; -tr3719: + goto st1482; +tr4002: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1337; -tr3721: + goto st1482; +tr4004: { s->line_counter++; } - goto st1337; -tr3752: + goto st1482; +tr4035: { s->buffer[s->buffer_length++] = 0; @@ -92891,15 +99377,15 @@ tr3752: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1337; goto _out;} + {p++; cs = 1482; goto _out;} } } } { s->line_counter++; } - goto st1337; -tr3711: + goto st1482; +tr3994: { s->buffer[s->buffer_length] = 0; @@ -92912,7 +99398,7 @@ tr3711: rdata_tail += 4; } else { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -92921,7 +99407,7 @@ tr3711: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st329;} + p--; {goto st338;} } if (s->number64 <= UINT32_MAX) { @@ -92929,15 +99415,15 @@ tr3711: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1337; -tr3712: + goto st1482; +tr3995: { s->buffer[s->buffer_length] = 0; @@ -92950,7 +99436,7 @@ tr3712: rdata_tail += 4; } else { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -92959,7 +99445,7 @@ tr3712: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st329;} + p--; {goto st338;} } if (s->number64 <= UINT32_MAX) { @@ -92967,22 +99453,22 @@ tr3712: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1337; -tr3713: + goto st1482; +tr3996: { s->buffer[s->buffer_length] = 0; @@ -92995,7 +99481,7 @@ tr3713: rdata_tail += 4; } else { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -93004,7 +99490,7 @@ tr3713: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st329;} + p--; {goto st338;} } if (s->number64 <= UINT32_MAX) { @@ -93012,22 +99498,22 @@ tr3713: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1337; -tr3715: + goto st1482; +tr3998: { s->buffer[s->buffer_length] = 0; @@ -93040,7 +99526,7 @@ tr3715: rdata_tail += 4; } else { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -93049,7 +99535,7 @@ tr3715: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st329;} + p--; {goto st338;} } if (s->number64 <= UINT32_MAX) { @@ -93057,21 +99543,21 @@ tr3715: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1337; -st1337: + goto st1482; +st1482: if ( ++p == pe ) - goto _test_eof1337; -case 1337: + goto _test_eof1482; +case 1482: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93085,17 +99571,17 @@ case 1337: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1337; - case 32: goto st1337; - case 40: goto tr3718; - case 41: goto tr3719; - case 2058: goto tr3721; - case 2107: goto tr3722; + case 9: goto st1482; + case 32: goto st1482; + case 40: goto tr4001; + case 41: goto tr4002; + case 2058: goto tr4004; + case 2107: goto tr4005; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3720; - goto tr2717; -tr3720: + goto tr4003; + goto tr3000; +tr4003: { s->number64 = 0; } @@ -93110,11 +99596,11 @@ tr3720: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1338; -tr3726: + goto st1483; +tr4009: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -93126,14 +99612,14 @@ tr3726: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1338; -st1338: + goto st1483; +st1483: if ( ++p == pe ) - goto _test_eof1338; -case 1338: + goto _test_eof1483; +case 1483: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93147,40 +99633,40 @@ case 1338: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3723; - case 32: goto tr3723; - case 40: goto tr3724; - case 41: goto tr3725; - case 2058: goto tr3727; - case 2107: goto tr3728; + case 9: goto tr4006; + case 32: goto tr4006; + case 40: goto tr4007; + case 41: goto tr4008; + case 2058: goto tr4010; + case 2107: goto tr4011; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3726; - goto tr2717; -tr3730: + goto tr4009; + goto tr3000; +tr4013: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1339; -tr3731: + goto st1484; +tr4014: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1339; -tr3733: + goto st1484; +tr4016: { s->line_counter++; } - goto st1339; -tr3750: + goto st1484; +tr4033: { s->buffer[s->buffer_length++] = 0; @@ -93190,15 +99676,15 @@ tr3750: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1339; goto _out;} + {p++; cs = 1484; goto _out;} } } } { s->line_counter++; } - goto st1339; -tr3723: + goto st1484; +tr4006: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93206,11 +99692,11 @@ tr3723: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1339; -tr3724: + goto st1484; +tr4007: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93218,18 +99704,18 @@ tr3724: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1339; -tr3725: + goto st1484; +tr4008: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93237,18 +99723,18 @@ tr3725: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1339; -tr3727: + goto st1484; +tr4010: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93256,17 +99742,17 @@ tr3727: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1339; -st1339: + goto st1484; +st1484: if ( ++p == pe ) - goto _test_eof1339; -case 1339: + goto _test_eof1484; +case 1484: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93280,35 +99766,35 @@ case 1339: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1339; - case 32: goto st1339; - case 40: goto tr3730; - case 41: goto tr3731; - case 42: goto tr3732; - case 92: goto tr3732; - case 95: goto tr3732; - case 2058: goto tr3733; - case 2107: goto tr3734; + case 9: goto st1484; + case 32: goto st1484; + case 40: goto tr4013; + case 41: goto tr4014; + case 42: goto tr4015; + case 92: goto tr4015; + case 95: goto tr4015; + case 2058: goto tr4016; + case 2107: goto tr4017; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr3732; + goto tr4015; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3732; + goto tr4015; } else - goto tr3732; + goto tr4015; goto tr78; -tr3732: +tr4015: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1340;goto st331;} } - goto st1340; -st1340: + { p--; {stack[top++] = 1485;goto st340;} } + goto st1485; +st1485: if ( ++p == pe ) - goto _test_eof1340; -case 1340: + goto _test_eof1485; +case 1485: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93322,38 +99808,38 @@ case 1340: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3735; - case 32: goto tr3735; - case 40: goto tr3736; - case 41: goto tr3737; - case 2058: goto tr3738; - case 2107: goto tr3739; + case 9: goto tr4018; + case 32: goto tr4018; + case 40: goto tr4019; + case 41: goto tr4020; + case 2058: goto tr4021; + case 2107: goto tr4022; } goto tr78; -tr3741: +tr4024: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1341; -tr3742: + goto st1486; +tr4025: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1341; -tr3744: + goto st1486; +tr4027: { s->line_counter++; } - goto st1341; -tr3748: + goto st1486; +tr4031: { s->buffer[s->buffer_length++] = 0; @@ -93363,15 +99849,15 @@ tr3748: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1341; goto _out;} + {p++; cs = 1486; goto _out;} } } } { s->line_counter++; } - goto st1341; -tr3735: + goto st1486; +tr4018: { if (s->to_lower) { dname_to_lower(s->dname); @@ -93380,8 +99866,8 @@ tr3735: { rdata_tail += s->dname_tmp_length; } - goto st1341; -tr3736: + goto st1486; +tr4019: { if (s->to_lower) { dname_to_lower(s->dname); @@ -93393,12 +99879,12 @@ tr3736: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1341; -tr3737: + goto st1486; +tr4020: { if (s->to_lower) { dname_to_lower(s->dname); @@ -93410,12 +99896,12 @@ tr3737: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1341; -tr3738: + goto st1486; +tr4021: { if (s->to_lower) { dname_to_lower(s->dname); @@ -93427,11 +99913,11 @@ tr3738: { s->line_counter++; } - goto st1341; -st1341: + goto st1486; +st1486: if ( ++p == pe ) - goto _test_eof1341; -case 1341: + goto _test_eof1486; +case 1486: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93445,30 +99931,30 @@ case 1341: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1341; - case 32: goto st1341; - case 40: goto tr3741; - case 41: goto tr3742; - case 43: goto tr3743; - case 2058: goto tr3744; - case 2107: goto tr3745; + case 9: goto st1486; + case 32: goto st1486; + case 40: goto tr4024; + case 41: goto tr4025; + case 43: goto tr4026; + case 2058: goto tr4027; + case 2107: goto tr4028; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3743; + goto tr4026; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3743; + goto tr4026; } else - goto tr3743; + goto tr4026; goto tr78; -tr3743: - { p--; {stack[top++] = 1342;goto st391;} } - goto st1342; -st1342: +tr4026: + { p--; {stack[top++] = 1487;goto st400;} } + goto st1487; +st1487: if ( ++p == pe ) - goto _test_eof1342; -case 1342: + goto _test_eof1487; +case 1487: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -93482,33 +99968,33 @@ case 1342: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3746; - case 2619: goto tr3746; + case 2570: goto tr4029; + case 2619: goto tr4029; } goto tr78; -tr3746: +tr4029: { p--; {cs = stack[--top];goto _again;} } - goto st1583; -st1583: + goto st1736; +st1736: if ( ++p == pe ) - goto _test_eof1583; -case 1583: + goto _test_eof1736; +case 1736: goto st0; -tr3745: +tr4028: { s->buffer_length = 0; } - goto st1343; -tr3747: + goto st1488; +tr4030: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1343; -tr3739: + goto st1488; +tr4022: { if (s->to_lower) { dname_to_lower(s->dname); @@ -93520,11 +100006,11 @@ tr3739: { s->buffer_length = 0; } - goto st1343; -st1343: + goto st1488; +st1488: if ( ++p == pe ) - goto _test_eof1343; -case 1343: + goto _test_eof1488; +case 1488: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93544,23 +100030,23 @@ case 1343: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3748; + goto tr4031; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3747; + goto tr4030; goto tr78; -tr3734: +tr4017: { s->buffer_length = 0; } - goto st1344; -tr3749: + goto st1489; +tr4032: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1344; -tr3728: + goto st1489; +tr4011: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -93568,17 +100054,17 @@ tr3728: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1344; -st1344: + goto st1489; +st1489: if ( ++p == pe ) - goto _test_eof1344; -case 1344: + goto _test_eof1489; +case 1489: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93598,23 +100084,23 @@ case 1344: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3750; + goto tr4033; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3749; + goto tr4032; goto tr78; -tr3722: +tr4005: { s->buffer_length = 0; } - goto st1345; -tr3751: + goto st1490; +tr4034: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1345; -tr3716: + goto st1490; +tr3999: { s->buffer[s->buffer_length] = 0; @@ -93627,7 +100113,7 @@ tr3716: rdata_tail += 4; } else { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -93636,7 +100122,7 @@ tr3716: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st329;} + p--; {goto st338;} } if (s->number64 <= UINT32_MAX) { @@ -93644,21 +100130,21 @@ tr3716: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1345; -st1345: + goto st1490; +st1490: if ( ++p == pe ) - goto _test_eof1345; -case 1345: + goto _test_eof1490; +case 1490: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93678,23 +100164,23 @@ case 1345: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3752; + goto tr4035; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3751; + goto tr4034; goto tr78; -tr3710: +tr3993: { s->buffer_length = 0; } - goto st1346; -tr3753: + goto st1491; +tr4036: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1346; -tr3704: + goto st1491; +tr3987: { s->buffer[s->buffer_length] = 0; @@ -93707,7 +100193,7 @@ tr3704: rdata_tail += 4; } else { WARN(ret); - p--; {goto st329;} + p--; {goto st338;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -93716,7 +100202,7 @@ tr3704: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {goto st329;} + p--; {goto st338;} } if (s->number64 <= UINT32_MAX) { @@ -93724,21 +100210,21 @@ tr3704: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1346; -st1346: + goto st1491; +st1491: if ( ++p == pe ) - goto _test_eof1346; -case 1346: + goto _test_eof1491; +case 1491: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93758,23 +100244,23 @@ case 1346: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3754; + goto tr4037; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3753; + goto tr4036; goto tr78; -tr3698: +tr3981: { s->buffer_length = 0; } - goto st1347; -tr3755: + goto st1492; +tr4038: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1347; -tr3691: + goto st1492; +tr3974: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -93782,17 +100268,17 @@ tr3691: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1347; -st1347: + goto st1492; +st1492: if ( ++p == pe ) - goto _test_eof1347; -case 1347: + goto _test_eof1492; +case 1492: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93812,40 +100298,40 @@ case 1347: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3756; + goto tr4039; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3755; + goto tr4038; goto tr78; -tr3685: +tr3968: { s->buffer_length = 0; } - goto st1348; -tr3757: + goto st1493; +tr4040: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1348; -tr3679: + goto st1493; +tr3962: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1348; -st1348: + goto st1493; +st1493: if ( ++p == pe ) - goto _test_eof1348; -case 1348: + goto _test_eof1493; +case 1493: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93865,26 +100351,26 @@ case 1348: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3758; + goto tr4041; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3757; + goto tr4040; goto tr78; -tr3672: +tr3955: { s->buffer_length = 0; } - goto st1349; -tr3759: + goto st1494; +tr4042: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1349; -st1349: + goto st1494; +st1494: if ( ++p == pe ) - goto _test_eof1349; -case 1349: + goto _test_eof1494; +case 1494: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93904,26 +100390,26 @@ case 1349: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3760; + goto tr4043; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3759; + goto tr4042; goto tr78; -tr3666: +tr3949: { s->buffer_length = 0; } - goto st1350; -tr3761: + goto st1495; +tr4044: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1350; -st1350: + goto st1495; +st1495: if ( ++p == pe ) - goto _test_eof1350; -case 1350: + goto _test_eof1495; +case 1495: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -93943,86 +100429,86 @@ case 1350: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3762; + goto tr4045; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3761; + goto tr4044; goto tr78; -st1351: +st1496: if ( ++p == pe ) - goto _test_eof1351; -case 1351: + goto _test_eof1496; +case 1496: switch( (*p) ) { - case 42: goto tr3763; - case 92: goto tr3763; - case 95: goto tr3763; + case 42: goto tr4046; + case 92: goto tr4046; + case 95: goto tr4046; } if ( (*p) < 64 ) { if ( 45 <= (*p) && (*p) <= 57 ) - goto tr3763; + goto tr4046; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3763; + goto tr4046; } else - goto tr3763; + goto tr4046; goto tr78; -tr3763: +tr4046: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1352;goto st331;} } - goto st1352; -st1352: + { p--; {stack[top++] = 1497;goto st340;} } + goto st1497; +st1497: if ( ++p == pe ) - goto _test_eof1352; -case 1352: + goto _test_eof1497; +case 1497: switch( (*p) ) { - case 32: goto tr3764; - case 59: goto tr3764; + case 32: goto tr4047; + case 59: goto tr4047; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3764; + goto tr4047; } else if ( (*p) >= 9 ) - goto tr3764; + goto tr4047; goto tr78; -tr3764: +tr4047: { rdata_tail += s->dname_tmp_length; } - { p--; {stack[top++] = 1353;goto st579;} } - goto st1353; -st1353: + { p--; {stack[top++] = 1498;goto st597;} } + goto st1498; +st1498: if ( ++p == pe ) - goto _test_eof1353; -case 1353: + goto _test_eof1498; +case 1498: switch( (*p) ) { - case 32: goto tr3765; - case 59: goto tr3765; + case 32: goto tr4048; + case 59: goto tr4048; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3765; + goto tr4048; } else if ( (*p) >= 9 ) - goto tr3765; + goto tr4048; goto tr78; -tr3765: +tr4048: { p--; {cs = stack[--top];goto _again;} } - goto st1584; -st1584: + goto st1737; +st1737: if ( ++p == pe ) - goto _test_eof1584; -case 1584: + goto _test_eof1737; +case 1737: goto st0; -st1354: +st1499: if ( ++p == pe ) - goto _test_eof1354; -case 1354: + goto _test_eof1499; +case 1499: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3766; - goto tr2717; -tr3766: + goto tr4049; + goto tr3000; +tr4049: { s->number64 = 0; } @@ -94037,11 +100523,11 @@ tr3766: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1355; -tr3770: + goto st1500; +tr4053: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94053,14 +100539,14 @@ tr3770: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1355; -st1355: + goto st1500; +st1500: if ( ++p == pe ) - goto _test_eof1355; -case 1355: + goto _test_eof1500; +case 1500: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94074,40 +100560,40 @@ case 1355: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3767; - case 32: goto tr3767; - case 40: goto tr3768; - case 41: goto tr3769; - case 2058: goto tr3771; - case 2107: goto tr3772; + case 9: goto tr4050; + case 32: goto tr4050; + case 40: goto tr4051; + case 41: goto tr4052; + case 2058: goto tr4054; + case 2107: goto tr4055; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3770; - goto tr2717; -tr3774: + goto tr4053; + goto tr3000; +tr4057: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1356; -tr3775: + goto st1501; +tr4058: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1356; -tr3777: + goto st1501; +tr4060: { s->line_counter++; } - goto st1356; -tr3803: + goto st1501; +tr4086: { s->buffer[s->buffer_length++] = 0; @@ -94117,15 +100603,15 @@ tr3803: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1356; goto _out;} + {p++; cs = 1501; goto _out;} } } } { s->line_counter++; } - goto st1356; -tr3767: + goto st1501; +tr4050: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94133,11 +100619,11 @@ tr3767: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1356; -tr3768: + goto st1501; +tr4051: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94145,18 +100631,18 @@ tr3768: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1356; -tr3769: + goto st1501; +tr4052: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94164,18 +100650,18 @@ tr3769: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1356; -tr3771: + goto st1501; +tr4054: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94183,17 +100669,17 @@ tr3771: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1356; -st1356: + goto st1501; +st1501: if ( ++p == pe ) - goto _test_eof1356; -case 1356: + goto _test_eof1501; +case 1501: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94207,17 +100693,17 @@ case 1356: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1356; - case 32: goto st1356; - case 40: goto tr3774; - case 41: goto tr3775; - case 2058: goto tr3777; - case 2107: goto tr3778; + case 9: goto st1501; + case 32: goto st1501; + case 40: goto tr4057; + case 41: goto tr4058; + case 2058: goto tr4060; + case 2107: goto tr4061; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3776; - goto tr2717; -tr3776: + goto tr4059; + goto tr3000; +tr4059: { s->number64 = 0; } @@ -94232,11 +100718,11 @@ tr3776: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1357; -tr3782: + goto st1502; +tr4065: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94248,14 +100734,14 @@ tr3782: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1357; -st1357: + goto st1502; +st1502: if ( ++p == pe ) - goto _test_eof1357; -case 1357: + goto _test_eof1502; +case 1502: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94269,40 +100755,40 @@ case 1357: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3779; - case 32: goto tr3779; - case 40: goto tr3780; - case 41: goto tr3781; - case 2058: goto tr3783; - case 2107: goto tr3784; + case 9: goto tr4062; + case 32: goto tr4062; + case 40: goto tr4063; + case 41: goto tr4064; + case 2058: goto tr4066; + case 2107: goto tr4067; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3782; - goto tr2717; -tr3786: + goto tr4065; + goto tr3000; +tr4069: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1358; -tr3787: + goto st1503; +tr4070: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1358; -tr3789: + goto st1503; +tr4072: { s->line_counter++; } - goto st1358; -tr3801: + goto st1503; +tr4084: { s->buffer[s->buffer_length++] = 0; @@ -94312,79 +100798,79 @@ tr3801: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1358; goto _out;} + {p++; cs = 1503; goto _out;} } } } { s->line_counter++; } - goto st1358; -tr3779: + goto st1503; +tr4062: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1358; -tr3780: + goto st1503; +tr4063: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1358; -tr3781: + goto st1503; +tr4064: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1358; -tr3783: + goto st1503; +tr4066: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1358; -st1358: + goto st1503; +st1503: if ( ++p == pe ) - goto _test_eof1358; -case 1358: + goto _test_eof1503; +case 1503: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94398,29 +100884,29 @@ case 1358: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1358; - case 32: goto st1358; - case 40: goto tr3786; - case 41: goto tr3787; - case 2058: goto tr3789; - case 2107: goto tr3790; + case 9: goto st1503; + case 32: goto st1503; + case 40: goto tr4069; + case 41: goto tr4070; + case 2058: goto tr4072; + case 2107: goto tr4073; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3788; + goto tr4071; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3788; + goto tr4071; } else - goto tr3788; + goto tr4071; goto tr78; -tr3788: - { p--; {stack[top++] = 1359;goto st948;} } - goto st1359; -st1359: +tr4071: + { p--; {stack[top++] = 1504;goto st1093;} } + goto st1504; +st1504: if ( ++p == pe ) - goto _test_eof1359; -case 1359: + goto _test_eof1504; +case 1504: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94434,38 +100920,38 @@ case 1359: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1360; - case 32: goto st1360; - case 40: goto tr3792; - case 41: goto tr3793; - case 2058: goto tr3794; - case 2107: goto tr3795; + case 9: goto st1505; + case 32: goto st1505; + case 40: goto tr4075; + case 41: goto tr4076; + case 2058: goto tr4077; + case 2107: goto tr4078; } goto tr78; -tr3792: +tr4075: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1360; -tr3793: + goto st1505; +tr4076: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1360; -tr3794: + goto st1505; +tr4077: { s->line_counter++; } - goto st1360; -tr3799: + goto st1505; +tr4082: { s->buffer[s->buffer_length++] = 0; @@ -94475,18 +100961,18 @@ tr3799: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1360; goto _out;} + {p++; cs = 1505; goto _out;} } } } { s->line_counter++; } - goto st1360; -st1360: + goto st1505; +st1505: if ( ++p == pe ) - goto _test_eof1360; -case 1360: + goto _test_eof1505; +case 1505: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94500,30 +100986,30 @@ case 1360: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1360; - case 32: goto st1360; - case 40: goto tr3792; - case 41: goto tr3793; - case 43: goto tr3796; - case 2058: goto tr3794; - case 2107: goto tr3795; + case 9: goto st1505; + case 32: goto st1505; + case 40: goto tr4075; + case 41: goto tr4076; + case 43: goto tr4079; + case 2058: goto tr4077; + case 2107: goto tr4078; } if ( _widec < 65 ) { if ( 47 <= _widec && _widec <= 57 ) - goto tr3796; + goto tr4079; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr3796; + goto tr4079; } else - goto tr3796; + goto tr4079; goto tr78; -tr3796: - { p--; {stack[top++] = 1361;goto st391;} } - goto st1361; -st1361: +tr4079: + { p--; {stack[top++] = 1506;goto st400;} } + goto st1506; +st1506: if ( ++p == pe ) - goto _test_eof1361; -case 1361: + goto _test_eof1506; +case 1506: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94537,36 +101023,36 @@ case 1361: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3797; - case 2619: goto tr3797; + case 2570: goto tr4080; + case 2619: goto tr4080; } goto tr78; -tr3797: +tr4080: { p--; {cs = stack[--top];goto _again;} } - goto st1585; -st1585: + goto st1738; +st1738: if ( ++p == pe ) - goto _test_eof1585; -case 1585: + goto _test_eof1738; +case 1738: goto st0; -tr3795: +tr4078: { s->buffer_length = 0; } - goto st1362; -tr3798: + goto st1507; +tr4081: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1362; -st1362: + goto st1507; +st1507: if ( ++p == pe ) - goto _test_eof1362; -case 1362: + goto _test_eof1507; +case 1507: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94586,40 +101072,40 @@ case 1362: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3799; + goto tr4082; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3798; + goto tr4081; goto tr78; -tr3790: +tr4073: { s->buffer_length = 0; } - goto st1363; -tr3800: + goto st1508; +tr4083: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1363; -tr3784: + goto st1508; +tr4067: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1363; -st1363: + goto st1508; +st1508: if ( ++p == pe ) - goto _test_eof1363; -case 1363: + goto _test_eof1508; +case 1508: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94639,23 +101125,23 @@ case 1363: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3801; + goto tr4084; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3800; + goto tr4083; goto tr78; -tr3778: +tr4061: { s->buffer_length = 0; } - goto st1364; -tr3802: + goto st1509; +tr4085: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1364; -tr3772: + goto st1509; +tr4055: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -94663,17 +101149,17 @@ tr3772: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1364; -st1364: + goto st1509; +st1509: if ( ++p == pe ) - goto _test_eof1364; -case 1364: + goto _test_eof1509; +case 1509: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -94693,32 +101179,32 @@ case 1364: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3803; + goto tr4086; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3802; + goto tr4085; goto tr78; -st1365: +st1510: if ( ++p == pe ) - goto _test_eof1365; -case 1365: + goto _test_eof1510; +case 1510: if ( (*p) == 43 ) - goto tr3804; + goto tr4087; if ( (*p) < 65 ) { if ( 47 <= (*p) && (*p) <= 57 ) - goto tr3804; + goto tr4087; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr3804; + goto tr4087; } else - goto tr3804; + goto tr4087; goto tr78; -tr3804: - { p--; {stack[top++] = 1366;goto st391;} } - goto st1366; -st1366: +tr4087: + { p--; {stack[top++] = 1511;goto st400;} } + goto st1511; +st1511: if ( ++p == pe ) - goto _test_eof1366; -case 1366: + goto _test_eof1511; +case 1511: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94732,28 +101218,28 @@ case 1366: !s->multiline ) _widec += 256; } switch( _widec ) { - case 2570: goto tr3805; - case 2619: goto tr3805; + case 2570: goto tr4088; + case 2619: goto tr4088; } goto tr78; -tr3805: +tr4088: { p--; {cs = stack[--top];goto _again;} } - goto st1586; -st1586: + goto st1739; +st1739: if ( ++p == pe ) - goto _test_eof1586; -case 1586: + goto _test_eof1739; +case 1739: goto st0; -st1367: +st1512: if ( ++p == pe ) - goto _test_eof1367; -case 1367: + goto _test_eof1512; +case 1512: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3806; - goto tr2717; -tr3806: + goto tr4089; + goto tr3000; +tr4089: { s->number64 = 0; } @@ -94768,11 +101254,11 @@ tr3806: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1368; -tr3810: + goto st1513; +tr4093: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94784,14 +101270,14 @@ tr3810: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1368; -st1368: + goto st1513; +st1513: if ( ++p == pe ) - goto _test_eof1368; -case 1368: + goto _test_eof1513; +case 1513: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94805,40 +101291,40 @@ case 1368: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3807; - case 32: goto tr3807; - case 40: goto tr3808; - case 41: goto tr3809; - case 2058: goto tr3811; - case 2107: goto tr3812; + case 9: goto tr4090; + case 32: goto tr4090; + case 40: goto tr4091; + case 41: goto tr4092; + case 2058: goto tr4094; + case 2107: goto tr4095; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3810; - goto tr2717; -tr3814: + goto tr4093; + goto tr3000; +tr4097: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1369; -tr3815: + goto st1514; +tr4098: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1369; -tr3817: + goto st1514; +tr4100: { s->line_counter++; } - goto st1369; -tr3881: + goto st1514; +tr4164: { s->buffer[s->buffer_length++] = 0; @@ -94848,79 +101334,79 @@ tr3881: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1369; goto _out;} + {p++; cs = 1514; goto _out;} } } } { s->line_counter++; } - goto st1369; -tr3807: + goto st1514; +tr4090: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1369; -tr3808: + goto st1514; +tr4091: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1369; -tr3809: + goto st1514; +tr4092: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1369; -tr3811: + goto st1514; +tr4094: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1369; -st1369: + goto st1514; +st1514: if ( ++p == pe ) - goto _test_eof1369; -case 1369: + goto _test_eof1514; +case 1514: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94934,17 +101420,17 @@ case 1369: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1369; - case 32: goto st1369; - case 40: goto tr3814; - case 41: goto tr3815; - case 2058: goto tr3817; - case 2107: goto tr3818; + case 9: goto st1514; + case 32: goto st1514; + case 40: goto tr4097; + case 41: goto tr4098; + case 2058: goto tr4100; + case 2107: goto tr4101; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3816; - goto tr2717; -tr3816: + goto tr4099; + goto tr3000; +tr4099: { s->number64 = 0; } @@ -94959,11 +101445,11 @@ tr3816: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1370; -tr3822: + goto st1515; +tr4105: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -94975,14 +101461,14 @@ tr3822: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1370; -st1370: + goto st1515; +st1515: if ( ++p == pe ) - goto _test_eof1370; -case 1370: + goto _test_eof1515; +case 1515: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -94996,40 +101482,40 @@ case 1370: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3819; - case 32: goto tr3819; - case 40: goto tr3820; - case 41: goto tr3821; - case 2058: goto tr3823; - case 2107: goto tr3824; + case 9: goto tr4102; + case 32: goto tr4102; + case 40: goto tr4103; + case 41: goto tr4104; + case 2058: goto tr4106; + case 2107: goto tr4107; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3822; - goto tr2717; -tr3826: + goto tr4105; + goto tr3000; +tr4109: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1371; -tr3827: + goto st1516; +tr4110: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1371; -tr3829: + goto st1516; +tr4112: { s->line_counter++; } - goto st1371; -tr3879: + goto st1516; +tr4162: { s->buffer[s->buffer_length++] = 0; @@ -95039,79 +101525,79 @@ tr3879: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1371; goto _out;} + {p++; cs = 1516; goto _out;} } } } { s->line_counter++; } - goto st1371; -tr3819: + goto st1516; +tr4102: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1371; -tr3820: + goto st1516; +tr4103: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1371; -tr3821: + goto st1516; +tr4104: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1371; -tr3823: + goto st1516; +tr4106: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1371; -st1371: + goto st1516; +st1516: if ( ++p == pe ) - goto _test_eof1371; -case 1371: + goto _test_eof1516; +case 1516: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95125,17 +101611,17 @@ case 1371: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1371; - case 32: goto st1371; - case 40: goto tr3826; - case 41: goto tr3827; - case 2058: goto tr3829; - case 2107: goto tr3830; + case 9: goto st1516; + case 32: goto st1516; + case 40: goto tr4109; + case 41: goto tr4110; + case 2058: goto tr4112; + case 2107: goto tr4113; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3828; - goto tr2717; -tr3828: + goto tr4111; + goto tr3000; +tr4111: { s->number64 = 0; } @@ -95150,11 +101636,11 @@ tr3828: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1372; -tr3834: + goto st1517; +tr4117: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -95166,14 +101652,14 @@ tr3834: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1372; -st1372: + goto st1517; +st1517: if ( ++p == pe ) - goto _test_eof1372; -case 1372: + goto _test_eof1517; +case 1517: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95187,40 +101673,40 @@ case 1372: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3831; - case 32: goto tr3831; - case 40: goto tr3832; - case 41: goto tr3833; - case 2058: goto tr3835; - case 2107: goto tr3836; + case 9: goto tr4114; + case 32: goto tr4114; + case 40: goto tr4115; + case 41: goto tr4116; + case 2058: goto tr4118; + case 2107: goto tr4119; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3834; - goto tr2717; -tr3838: + goto tr4117; + goto tr3000; +tr4121: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1373; -tr3839: + goto st1518; +tr4122: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1373; -tr3842: + goto st1518; +tr4125: { s->line_counter++; } - goto st1373; -tr3877: + goto st1518; +tr4160: { s->buffer[s->buffer_length++] = 0; @@ -95230,15 +101716,15 @@ tr3877: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1373; goto _out;} + {p++; cs = 1518; goto _out;} } } } { s->line_counter++; } - goto st1373; -tr3831: + goto st1518; +tr4114: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95246,11 +101732,11 @@ tr3831: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1373; -tr3832: + goto st1518; +tr4115: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95258,18 +101744,18 @@ tr3832: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1373; -tr3833: + goto st1518; +tr4116: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95277,18 +101763,18 @@ tr3833: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1373; -tr3835: + goto st1518; +tr4118: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95296,17 +101782,17 @@ tr3835: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1373; -st1373: + goto st1518; +st1518: if ( ++p == pe ) - goto _test_eof1373; -case 1373: + goto _test_eof1518; +case 1518: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95320,37 +101806,37 @@ case 1373: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1373; - case 32: goto st1373; - case 40: goto tr3838; - case 41: goto tr3839; - case 45: goto tr3840; - case 2058: goto tr3842; - case 2107: goto tr3843; + case 9: goto st1518; + case 32: goto st1518; + case 40: goto tr4121; + case 41: goto tr4122; + case 45: goto tr4123; + case 2058: goto tr4125; + case 2107: goto tr4126; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3841; + goto tr4124; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3841; + goto tr4124; } else - goto tr3841; - goto tr3388; -tr3840: + goto tr4124; + goto tr3671; +tr4123: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1374; -st1374: + goto st1519; +st1519: if ( ++p == pe ) - goto _test_eof1374; -case 1374: + goto _test_eof1519; +case 1519: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95364,38 +101850,38 @@ case 1374: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3844; - case 32: goto tr3844; - case 40: goto tr3845; - case 41: goto tr3846; - case 2058: goto tr3847; - case 2107: goto tr3848; + case 9: goto tr4127; + case 32: goto tr4127; + case 40: goto tr4128; + case 41: goto tr4129; + case 2058: goto tr4130; + case 2107: goto tr4131; } - goto tr3388; -tr3851: + goto tr3671; +tr4134: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1375; -tr3852: + goto st1520; +tr4135: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1375; -tr3854: + goto st1520; +tr4137: { s->line_counter++; } - goto st1375; -tr3873: + goto st1520; +tr4156: { s->buffer[s->buffer_length++] = 0; @@ -95405,95 +101891,95 @@ tr3873: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1375; goto _out;} + {p++; cs = 1520; goto _out;} } } } { s->line_counter++; } - goto st1375; -tr3844: + goto st1520; +tr4127: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1375; -tr3845: + goto st1520; +tr4128: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1375; -tr3846: + goto st1520; +tr4129: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1375; -tr3847: + goto st1520; +tr4130: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1375; -st1375: + goto st1520; +st1520: if ( ++p == pe ) - goto _test_eof1375; -case 1375: + goto _test_eof1520; +case 1520: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95507,29 +101993,29 @@ case 1375: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1375; - case 32: goto st1375; - case 40: goto tr3851; - case 41: goto tr3852; - case 2058: goto tr3854; - case 2107: goto tr3855; + case 9: goto st1520; + case 32: goto st1520; + case 40: goto tr4134; + case 41: goto tr4135; + case 2058: goto tr4137; + case 2107: goto tr4138; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3853; + goto tr4136; } else if ( _widec > 86 ) { if ( 97 <= _widec && _widec <= 118 ) - goto tr3853; + goto tr4136; } else - goto tr3853; - goto tr3849; -tr3853: + goto tr4136; + goto tr4132; +tr4136: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -95537,34 +102023,34 @@ tr3853: *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1376; -tr3868: + goto st1521; +tr4151: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1376; -st1376: + goto st1521; +st1521: if ( ++p == pe ) - goto _test_eof1376; -case 1376: + goto _test_eof1521; +case 1521: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3856; + goto tr4139; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3856; + goto tr4139; } else - goto tr3856; - goto tr3849; -tr3856: + goto tr4139; + goto tr4132; +tr4139: { *(rdata_tail++) += second_left_base32hex_to_num[(uint8_t)(*p)]; @@ -95572,44 +102058,44 @@ tr3856: *rdata_tail = second_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1377; -st1377: + goto st1522; +st1522: if ( ++p == pe ) - goto _test_eof1377; -case 1377: + goto _test_eof1522; +case 1522: if ( (*p) == 61 ) - goto st1388; + goto st1533; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3857; + goto tr4140; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3857; + goto tr4140; } else - goto tr3857; - goto tr3849; -tr3857: + goto tr4140; + goto tr4132; +tr4140: { *rdata_tail += third_base32hex_to_num[(uint8_t)(*p)]; } - goto st1378; -st1378: + goto st1523; +st1523: if ( ++p == pe ) - goto _test_eof1378; -case 1378: + goto _test_eof1523; +case 1523: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3859; + goto tr4142; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3859; + goto tr4142; } else - goto tr3859; - goto tr3849; -tr3859: + goto tr4142; + goto tr4132; +tr4142: { *(rdata_tail++) += fourth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -95617,26 +102103,26 @@ tr3859: *rdata_tail = fourth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1379; -st1379: + goto st1524; +st1524: if ( ++p == pe ) - goto _test_eof1379; -case 1379: + goto _test_eof1524; +case 1524: if ( (*p) == 61 ) - goto st1387; + goto st1532; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3860; + goto tr4143; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3860; + goto tr4143; } else - goto tr3860; - goto tr3849; -tr3860: + goto tr4143; + goto tr4132; +tr4143: { *(rdata_tail++) += fifth_left_base32hex_to_num[(uint8_t)(*p)]; @@ -95644,44 +102130,44 @@ tr3860: *rdata_tail = fifth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1380; -st1380: + goto st1525; +st1525: if ( ++p == pe ) - goto _test_eof1380; -case 1380: + goto _test_eof1525; +case 1525: if ( (*p) == 61 ) - goto st1385; + goto st1530; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3862; + goto tr4145; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3862; + goto tr4145; } else - goto tr3862; - goto tr3849; -tr3862: + goto tr4145; + goto tr4132; +tr4145: { *rdata_tail += sixth_base32hex_to_num[(uint8_t)(*p)]; } - goto st1381; -st1381: + goto st1526; +st1526: if ( ++p == pe ) - goto _test_eof1381; -case 1381: + goto _test_eof1526; +case 1526: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3864; + goto tr4147; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3864; + goto tr4147; } else - goto tr3864; - goto tr3849; -tr3864: + goto tr4147; + goto tr4132; +tr4147: { *(rdata_tail++) += seventh_left_base32hex_to_num[(uint8_t)(*p)]; @@ -95689,162 +102175,162 @@ tr3864: *rdata_tail = seventh_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1382; -st1382: + goto st1527; +st1527: if ( ++p == pe ) - goto _test_eof1382; -case 1382: + goto _test_eof1527; +case 1527: if ( (*p) == 61 ) - goto st1383; + goto st1528; if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3865; + goto tr4148; } else if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3865; + goto tr4148; } else - goto tr3865; - goto tr3849; -tr3865: + goto tr4148; + goto tr4132; +tr4148: { *(rdata_tail++) += eighth_base32hex_to_num[(uint8_t)(*p)]; } - goto st1383; -st1383: + goto st1528; +st1528: if ( ++p == pe ) - goto _test_eof1383; -case 1383: + goto _test_eof1528; +case 1528: switch( (*p) ) { - case 32: goto tr3867; - case 59: goto tr3867; + case 32: goto tr4150; + case 59: goto tr4150; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3867; + goto tr4150; } else if ( (*p) >= 9 ) - goto tr3867; + goto tr4150; } else if ( (*p) > 57 ) { if ( (*p) > 86 ) { if ( 97 <= (*p) && (*p) <= 118 ) - goto tr3868; + goto tr4151; } else if ( (*p) >= 65 ) - goto tr3868; + goto tr4151; } else - goto tr3868; - goto tr3849; -tr3867: + goto tr4151; + goto tr4132; +tr4150: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - { p--; {stack[top++] = 1384;goto st579;} } - goto st1384; -st1384: + { p--; {stack[top++] = 1529;goto st597;} } + goto st1529; +st1529: if ( ++p == pe ) - goto _test_eof1384; -case 1384: + goto _test_eof1529; +case 1529: switch( (*p) ) { - case 32: goto tr3869; - case 59: goto tr3869; + case 32: goto tr4152; + case 59: goto tr4152; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3869; + goto tr4152; } else if ( (*p) >= 9 ) - goto tr3869; + goto tr4152; goto tr78; -tr3869: +tr4152: { p--; {cs = stack[--top];goto _again;} } - goto st1587; -st1587: + goto st1740; +st1740: if ( ++p == pe ) - goto _test_eof1587; -case 1587: + goto _test_eof1740; +case 1740: goto st0; -st1385: +st1530: if ( ++p == pe ) - goto _test_eof1385; -case 1385: + goto _test_eof1530; +case 1530: if ( (*p) == 61 ) - goto st1386; - goto tr3849; -st1386: + goto st1531; + goto tr4132; +st1531: if ( ++p == pe ) - goto _test_eof1386; -case 1386: + goto _test_eof1531; +case 1531: if ( (*p) == 61 ) - goto st1383; - goto tr3849; -st1387: + goto st1528; + goto tr4132; +st1532: if ( ++p == pe ) - goto _test_eof1387; -case 1387: + goto _test_eof1532; +case 1532: if ( (*p) == 61 ) - goto st1385; - goto tr3849; -st1388: + goto st1530; + goto tr4132; +st1533: if ( ++p == pe ) - goto _test_eof1388; -case 1388: + goto _test_eof1533; +case 1533: if ( (*p) == 61 ) - goto st1389; - goto tr3849; -st1389: + goto st1534; + goto tr4132; +st1534: if ( ++p == pe ) - goto _test_eof1389; -case 1389: + goto _test_eof1534; +case 1534: if ( (*p) == 61 ) - goto st1387; - goto tr3849; -tr3855: + goto st1532; + goto tr4132; +tr4138: { s->buffer_length = 0; } - goto st1390; -tr3872: + goto st1535; +tr4155: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1390; -tr3848: + goto st1535; +tr4131: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1390; -st1390: + goto st1535; +st1535: if ( ++p == pe ) - goto _test_eof1390; -case 1390: + goto _test_eof1535; +case 1535: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95864,27 +102350,27 @@ case 1390: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3873; + goto tr4156; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3872; + goto tr4155; goto tr78; -tr3875: +tr4158: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1391; -tr3841: + goto st1536; +tr4124: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -95892,33 +102378,33 @@ tr3841: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1391; -st1391: + goto st1536; +st1536: if ( ++p == pe ) - goto _test_eof1391; -case 1391: + goto _test_eof1536; +case 1536: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3874; + goto tr4157; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3874; + goto tr4157; } else - goto tr3874; - goto tr3388; -tr3874: + goto tr4157; + goto tr3671; +tr4157: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1392; -st1392: + goto st1537; +st1537: if ( ++p == pe ) - goto _test_eof1392; -case 1392: + goto _test_eof1537; +case 1537: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -95932,35 +102418,35 @@ case 1392: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3844; - case 32: goto tr3844; - case 40: goto tr3845; - case 41: goto tr3846; - case 2058: goto tr3847; - case 2107: goto tr3848; + case 9: goto tr4127; + case 32: goto tr4127; + case 40: goto tr4128; + case 41: goto tr4129; + case 2058: goto tr4130; + case 2107: goto tr4131; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3875; + goto tr4158; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3875; + goto tr4158; } else - goto tr3875; - goto tr3388; -tr3843: + goto tr4158; + goto tr3671; +tr4126: { s->buffer_length = 0; } - goto st1393; -tr3876: + goto st1538; +tr4159: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1393; -tr3836: + goto st1538; +tr4119: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -95968,17 +102454,17 @@ tr3836: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1393; -st1393: + goto st1538; +st1538: if ( ++p == pe ) - goto _test_eof1393; -case 1393: + goto _test_eof1538; +case 1538: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -95998,40 +102484,40 @@ case 1393: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3877; + goto tr4160; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3876; + goto tr4159; goto tr78; -tr3830: +tr4113: { s->buffer_length = 0; } - goto st1394; -tr3878: + goto st1539; +tr4161: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1394; -tr3824: + goto st1539; +tr4107: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1394; -st1394: + goto st1539; +st1539: if ( ++p == pe ) - goto _test_eof1394; -case 1394: + goto _test_eof1539; +case 1539: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96051,40 +102537,40 @@ case 1394: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3879; + goto tr4162; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3878; + goto tr4161; goto tr78; -tr3818: +tr4101: { s->buffer_length = 0; } - goto st1395; -tr3880: + goto st1540; +tr4163: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1395; -tr3812: + goto st1540; +tr4095: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1395; -st1395: + goto st1540; +st1540: if ( ++p == pe ) - goto _test_eof1395; -case 1395: + goto _test_eof1540; +case 1540: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96104,18 +102590,18 @@ case 1395: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3881; + goto tr4164; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3880; + goto tr4163; goto tr78; -st1396: +st1541: if ( ++p == pe ) - goto _test_eof1396; -case 1396: + goto _test_eof1541; +case 1541: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3882; - goto tr2717; -tr3882: + goto tr4165; + goto tr3000; +tr4165: { s->number64 = 0; } @@ -96130,11 +102616,11 @@ tr3882: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1397; -tr3886: + goto st1542; +tr4169: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96146,14 +102632,14 @@ tr3886: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1397; -st1397: + goto st1542; +st1542: if ( ++p == pe ) - goto _test_eof1397; -case 1397: + goto _test_eof1542; +case 1542: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96167,40 +102653,40 @@ case 1397: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3883; - case 32: goto tr3883; - case 40: goto tr3884; - case 41: goto tr3885; - case 2058: goto tr3887; - case 2107: goto tr3888; + case 9: goto tr4166; + case 32: goto tr4166; + case 40: goto tr4167; + case 41: goto tr4168; + case 2058: goto tr4170; + case 2107: goto tr4171; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3886; - goto tr2717; -tr3890: + goto tr4169; + goto tr3000; +tr4173: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1398; -tr3891: + goto st1543; +tr4174: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1398; -tr3893: + goto st1543; +tr4176: { s->line_counter++; } - goto st1398; -tr3928: + goto st1543; +tr4211: { s->buffer[s->buffer_length++] = 0; @@ -96210,79 +102696,79 @@ tr3928: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1398; goto _out;} + {p++; cs = 1543; goto _out;} } } } { s->line_counter++; } - goto st1398; -tr3883: + goto st1543; +tr4166: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1398; -tr3884: + goto st1543; +tr4167: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1398; -tr3885: + goto st1543; +tr4168: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1398; -tr3887: + goto st1543; +tr4170: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1398; -st1398: + goto st1543; +st1543: if ( ++p == pe ) - goto _test_eof1398; -case 1398: + goto _test_eof1543; +case 1543: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96296,17 +102782,17 @@ case 1398: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1398; - case 32: goto st1398; - case 40: goto tr3890; - case 41: goto tr3891; - case 2058: goto tr3893; - case 2107: goto tr3894; + case 9: goto st1543; + case 32: goto st1543; + case 40: goto tr4173; + case 41: goto tr4174; + case 2058: goto tr4176; + case 2107: goto tr4177; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3892; - goto tr2717; -tr3892: + goto tr4175; + goto tr3000; +tr4175: { s->number64 = 0; } @@ -96321,11 +102807,11 @@ tr3892: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1399; -tr3898: + goto st1544; +tr4181: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96337,14 +102823,14 @@ tr3898: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1399; -st1399: + goto st1544; +st1544: if ( ++p == pe ) - goto _test_eof1399; -case 1399: + goto _test_eof1544; +case 1544: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96358,40 +102844,40 @@ case 1399: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3895; - case 32: goto tr3895; - case 40: goto tr3896; - case 41: goto tr3897; - case 2058: goto tr3899; - case 2107: goto tr3900; + case 9: goto tr4178; + case 32: goto tr4178; + case 40: goto tr4179; + case 41: goto tr4180; + case 2058: goto tr4182; + case 2107: goto tr4183; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3898; - goto tr2717; -tr3902: + goto tr4181; + goto tr3000; +tr4185: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1400; -tr3903: + goto st1545; +tr4186: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1400; -tr3905: + goto st1545; +tr4188: { s->line_counter++; } - goto st1400; -tr3926: + goto st1545; +tr4209: { s->buffer[s->buffer_length++] = 0; @@ -96401,79 +102887,79 @@ tr3926: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1400; goto _out;} + {p++; cs = 1545; goto _out;} } } } { s->line_counter++; } - goto st1400; -tr3895: + goto st1545; +tr4178: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1400; -tr3896: + goto st1545; +tr4179: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1400; -tr3897: + goto st1545; +tr4180: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1400; -tr3899: + goto st1545; +tr4182: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1400; -st1400: + goto st1545; +st1545: if ( ++p == pe ) - goto _test_eof1400; -case 1400: + goto _test_eof1545; +case 1545: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96487,17 +102973,17 @@ case 1400: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1400; - case 32: goto st1400; - case 40: goto tr3902; - case 41: goto tr3903; - case 2058: goto tr3905; - case 2107: goto tr3906; + case 9: goto st1545; + case 32: goto st1545; + case 40: goto tr4185; + case 41: goto tr4186; + case 2058: goto tr4188; + case 2107: goto tr4189; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3904; - goto tr2717; -tr3904: + goto tr4187; + goto tr3000; +tr4187: { s->number64 = 0; } @@ -96512,11 +102998,11 @@ tr3904: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1401; -tr3910: + goto st1546; +tr4193: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -96528,14 +103014,14 @@ tr3910: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1401; -st1401: + goto st1546; +st1546: if ( ++p == pe ) - goto _test_eof1401; -case 1401: + goto _test_eof1546; +case 1546: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96549,40 +103035,40 @@ case 1401: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3907; - case 32: goto tr3907; - case 40: goto tr3908; - case 41: goto tr3909; - case 2058: goto tr3911; - case 2107: goto tr3912; + case 9: goto tr4190; + case 32: goto tr4190; + case 40: goto tr4191; + case 41: goto tr4192; + case 2058: goto tr4194; + case 2107: goto tr4195; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3910; - goto tr2717; -tr3914: + goto tr4193; + goto tr3000; +tr4197: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1402; -tr3915: + goto st1547; +tr4198: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1402; -tr3918: + goto st1547; +tr4201: { s->line_counter++; } - goto st1402; -tr3924: + goto st1547; +tr4207: { s->buffer[s->buffer_length++] = 0; @@ -96592,15 +103078,15 @@ tr3924: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1402; goto _out;} + {p++; cs = 1547; goto _out;} } } } { s->line_counter++; } - goto st1402; -tr3907: + goto st1547; +tr4190: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96608,11 +103094,11 @@ tr3907: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1402; -tr3908: + goto st1547; +tr4191: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96620,18 +103106,18 @@ tr3908: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1402; -tr3909: + goto st1547; +tr4192: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96639,18 +103125,18 @@ tr3909: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1402; -tr3911: + goto st1547; +tr4194: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96658,17 +103144,17 @@ tr3911: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1402; -st1402: + goto st1547; +st1547: if ( ++p == pe ) - goto _test_eof1402; -case 1402: + goto _test_eof1547; +case 1547: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -96682,87 +103168,87 @@ case 1402: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1402; - case 32: goto st1402; - case 40: goto tr3914; - case 41: goto tr3915; - case 45: goto tr3916; - case 2058: goto tr3918; - case 2107: goto tr3919; + case 9: goto st1547; + case 32: goto st1547; + case 40: goto tr4197; + case 41: goto tr4198; + case 45: goto tr4199; + case 2058: goto tr4201; + case 2107: goto tr4202; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3917; + goto tr4200; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3917; + goto tr4200; } else - goto tr3917; - goto tr3388; -tr3916: + goto tr4200; + goto tr3671; +tr4199: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1403; -st1403: + goto st1548; +st1548: if ( ++p == pe ) - goto _test_eof1403; -case 1403: + goto _test_eof1548; +case 1548: switch( (*p) ) { - case 32: goto tr3920; - case 59: goto tr3920; + case 32: goto tr4203; + case 59: goto tr4203; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3920; + goto tr4203; } else if ( (*p) >= 9 ) - goto tr3920; - goto tr3388; -tr3920: + goto tr4203; + goto tr3671; +tr4203: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1588; -st1588: + goto st1741; +st1741: if ( ++p == pe ) - goto _test_eof1588; -case 1588: + goto _test_eof1741; +case 1741: goto st0; -tr3922: +tr4205: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1404; -tr3917: + goto st1549; +tr4200: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { @@ -96770,65 +103256,65 @@ tr3917: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1404; -st1404: + goto st1549; +st1549: if ( ++p == pe ) - goto _test_eof1404; -case 1404: + goto _test_eof1549; +case 1549: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3921; + goto tr4204; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3921; + goto tr4204; } else - goto tr3921; - goto tr3388; -tr3921: + goto tr4204; + goto tr3671; +tr4204: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1405; -st1405: + goto st1550; +st1550: if ( ++p == pe ) - goto _test_eof1405; -case 1405: + goto _test_eof1550; +case 1550: switch( (*p) ) { - case 32: goto tr3920; - case 59: goto tr3920; + case 32: goto tr4203; + case 59: goto tr4203; } if ( (*p) < 48 ) { if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3920; + goto tr4203; } else if ( (*p) >= 9 ) - goto tr3920; + goto tr4203; } else if ( (*p) > 57 ) { if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3922; + goto tr4205; } else if ( (*p) >= 65 ) - goto tr3922; + goto tr4205; } else - goto tr3922; - goto tr3388; -tr3919: + goto tr4205; + goto tr3671; +tr4202: { s->buffer_length = 0; } - goto st1406; -tr3923: + goto st1551; +tr4206: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1406; -tr3912: + goto st1551; +tr4195: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -96836,17 +103322,17 @@ tr3912: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1406; -st1406: + goto st1551; +st1551: if ( ++p == pe ) - goto _test_eof1406; -case 1406: + goto _test_eof1551; +case 1551: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96866,40 +103352,40 @@ case 1406: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3924; + goto tr4207; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3923; + goto tr4206; goto tr78; -tr3906: +tr4189: { s->buffer_length = 0; } - goto st1407; -tr3925: + goto st1552; +tr4208: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1407; -tr3900: + goto st1552; +tr4183: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1407; -st1407: + goto st1552; +st1552: if ( ++p == pe ) - goto _test_eof1407; -case 1407: + goto _test_eof1552; +case 1552: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96919,40 +103405,40 @@ case 1407: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3926; + goto tr4209; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3925; + goto tr4208; goto tr78; -tr3894: +tr4177: { s->buffer_length = 0; } - goto st1408; -tr3927: + goto st1553; +tr4210: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1408; -tr3888: + goto st1553; +tr4171: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1408; -st1408: + goto st1553; +st1553: if ( ++p == pe ) - goto _test_eof1408; -case 1408: + goto _test_eof1553; +case 1553: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -96972,18 +103458,18 @@ case 1408: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3928; + goto tr4211; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3927; + goto tr4210; goto tr78; -st1409: +st1554: if ( ++p == pe ) - goto _test_eof1409; -case 1409: + goto _test_eof1554; +case 1554: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3929; - goto tr2717; -tr3929: + goto tr4212; + goto tr3000; +tr4212: { s->number64 = 0; } @@ -96998,11 +103484,11 @@ tr3929: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1410; -tr3933: + goto st1555; +tr4216: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97014,14 +103500,14 @@ tr3933: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1410; -st1410: + goto st1555; +st1555: if ( ++p == pe ) - goto _test_eof1410; -case 1410: + goto _test_eof1555; +case 1555: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97035,40 +103521,40 @@ case 1410: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3930; - case 32: goto tr3930; - case 40: goto tr3931; - case 41: goto tr3932; - case 2058: goto tr3934; - case 2107: goto tr3935; + case 9: goto tr4213; + case 32: goto tr4213; + case 40: goto tr4214; + case 41: goto tr4215; + case 2058: goto tr4217; + case 2107: goto tr4218; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3933; - goto tr2717; -tr3937: + goto tr4216; + goto tr3000; +tr4220: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1411; -tr3938: + goto st1556; +tr4221: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1411; -tr3940: + goto st1556; +tr4223: { s->line_counter++; } - goto st1411; -tr3982: + goto st1556; +tr4265: { s->buffer[s->buffer_length++] = 0; @@ -97078,79 +103564,79 @@ tr3982: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1411; goto _out;} + {p++; cs = 1556; goto _out;} } } } { s->line_counter++; } - goto st1411; -tr3930: + goto st1556; +tr4213: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1411; -tr3931: + goto st1556; +tr4214: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1411; -tr3932: + goto st1556; +tr4215: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1411; -tr3934: + goto st1556; +tr4217: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1411; -st1411: + goto st1556; +st1556: if ( ++p == pe ) - goto _test_eof1411; -case 1411: + goto _test_eof1556; +case 1556: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97164,17 +103650,17 @@ case 1411: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1411; - case 32: goto st1411; - case 40: goto tr3937; - case 41: goto tr3938; - case 2058: goto tr3940; - case 2107: goto tr3941; + case 9: goto st1556; + case 32: goto st1556; + case 40: goto tr4220; + case 41: goto tr4221; + case 2058: goto tr4223; + case 2107: goto tr4224; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3939; - goto tr2717; -tr3939: + goto tr4222; + goto tr3000; +tr4222: { s->number64 = 0; } @@ -97189,11 +103675,11 @@ tr3939: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1412; -tr3945: + goto st1557; +tr4228: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97205,14 +103691,14 @@ tr3945: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1412; -st1412: + goto st1557; +st1557: if ( ++p == pe ) - goto _test_eof1412; -case 1412: + goto _test_eof1557; +case 1557: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97226,40 +103712,40 @@ case 1412: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3942; - case 32: goto tr3942; - case 40: goto tr3943; - case 41: goto tr3944; - case 2058: goto tr3946; - case 2107: goto tr3947; + case 9: goto tr4225; + case 32: goto tr4225; + case 40: goto tr4226; + case 41: goto tr4227; + case 2058: goto tr4229; + case 2107: goto tr4230; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3945; - goto tr2717; -tr3949: + goto tr4228; + goto tr3000; +tr4232: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1413; -tr3950: + goto st1558; +tr4233: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1413; -tr3952: + goto st1558; +tr4235: { s->line_counter++; } - goto st1413; -tr3980: + goto st1558; +tr4263: { s->buffer[s->buffer_length++] = 0; @@ -97269,79 +103755,79 @@ tr3980: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1413; goto _out;} + {p++; cs = 1558; goto _out;} } } } { s->line_counter++; } - goto st1413; -tr3942: + goto st1558; +tr4225: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1413; -tr3943: + goto st1558; +tr4226: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1413; -tr3944: + goto st1558; +tr4227: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1413; -tr3946: + goto st1558; +tr4229: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1413; -st1413: + goto st1558; +st1558: if ( ++p == pe ) - goto _test_eof1413; -case 1413: + goto _test_eof1558; +case 1558: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97355,17 +103841,17 @@ case 1413: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1413; - case 32: goto st1413; - case 40: goto tr3949; - case 41: goto tr3950; - case 2058: goto tr3952; - case 2107: goto tr3953; + case 9: goto st1558; + case 32: goto st1558; + case 40: goto tr4232; + case 41: goto tr4233; + case 2058: goto tr4235; + case 2107: goto tr4236; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3951; - goto tr2717; -tr3951: + goto tr4234; + goto tr3000; +tr4234: { s->number64 = 0; } @@ -97380,11 +103866,11 @@ tr3951: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1414; -tr3957: + goto st1559; +tr4240: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -97396,14 +103882,14 @@ tr3957: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1414; -st1414: + goto st1559; +st1559: if ( ++p == pe ) - goto _test_eof1414; -case 1414: + goto _test_eof1559; +case 1559: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97417,40 +103903,40 @@ case 1414: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3954; - case 32: goto tr3954; - case 40: goto tr3955; - case 41: goto tr3956; - case 2058: goto tr3958; - case 2107: goto tr3959; + case 9: goto tr4237; + case 32: goto tr4237; + case 40: goto tr4238; + case 41: goto tr4239; + case 2058: goto tr4241; + case 2107: goto tr4242; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3957; - goto tr2717; -tr3961: + goto tr4240; + goto tr3000; +tr4244: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1415; -tr3962: + goto st1560; +tr4245: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1415; -tr3964: + goto st1560; +tr4247: { s->line_counter++; } - goto st1415; -tr3978: + goto st1560; +tr4261: { s->buffer[s->buffer_length++] = 0; @@ -97460,79 +103946,79 @@ tr3978: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1415; goto _out;} + {p++; cs = 1560; goto _out;} } } } { s->line_counter++; } - goto st1415; -tr3954: + goto st1560; +tr4237: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1415; -tr3955: + goto st1560; +tr4238: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1415; -tr3956: + goto st1560; +tr4239: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1415; -tr3958: + goto st1560; +tr4241: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1415; -st1415: + goto st1560; +st1560: if ( ++p == pe ) - goto _test_eof1415; -case 1415: + goto _test_eof1560; +case 1560: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97546,69 +104032,69 @@ case 1415: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1415; - case 32: goto st1415; - case 40: goto tr3961; - case 41: goto tr3962; - case 2058: goto tr3964; - case 2107: goto tr3965; + case 9: goto st1560; + case 32: goto st1560; + case 40: goto tr4244; + case 41: goto tr4245; + case 2058: goto tr4247; + case 2107: goto tr4248; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3963; + goto tr4246; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3963; + goto tr4246; } else - goto tr3963; - goto tr3388; -tr3963: + goto tr4246; + goto tr3671; +tr4246: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1416; -st1416: + goto st1561; +st1561: if ( ++p == pe ) - goto _test_eof1416; -case 1416: + goto _test_eof1561; +case 1561: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3966; + goto tr4249; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr3966; + goto tr4249; } else - goto tr3966; - goto tr3388; -tr3968: + goto tr4249; + goto tr3671; +tr4251: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1417; -tr3969: + goto st1562; +tr4252: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1417; -tr3970: + goto st1562; +tr4253: { s->line_counter++; } - goto st1417; -tr3976: + goto st1562; +tr4259: { s->buffer[s->buffer_length++] = 0; @@ -97618,24 +104104,24 @@ tr3976: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1417; goto _out;} + {p++; cs = 1562; goto _out;} } } } { s->line_counter++; } - goto st1417; -tr3966: + goto st1562; +tr4249: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1417; -st1417: + goto st1562; +st1562: if ( ++p == pe ) - goto _test_eof1417; -case 1417: + goto _test_eof1562; +case 1562: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97653,42 +104139,42 @@ case 1417: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1417; - case 32: goto st1417; - case 40: goto tr3968; - case 41: goto tr3969; - case 3082: goto tr3970; - case 3131: goto tr3971; - case 3338: goto tr3972; - case 3387: goto tr3972; - case 3594: goto tr3973; - case 3643: goto tr3974; + case 9: goto st1562; + case 32: goto st1562; + case 40: goto tr4251; + case 41: goto tr4252; + case 3082: goto tr4253; + case 3131: goto tr4254; + case 3338: goto tr4255; + case 3387: goto tr4255; + case 3594: goto tr4256; + case 3643: goto tr4257; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3963; + goto tr4246; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3963; + goto tr4246; } else - goto tr3963; - goto tr3388; -tr3971: + goto tr4246; + goto tr3671; +tr4254: { s->buffer_length = 0; } - goto st1418; -tr3975: + goto st1563; +tr4258: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1418; -st1418: + goto st1563; +st1563: if ( ++p == pe ) - goto _test_eof1418; -case 1418: + goto _test_eof1563; +case 1563: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97708,32 +104194,32 @@ case 1418: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3976; + goto tr4259; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3975; - goto tr3388; -tr3972: + goto tr4258; + goto tr3671; +tr4255: { p--; {cs = stack[--top];goto _again;} } - goto st1589; -st1589: + goto st1742; +st1742: if ( ++p == pe ) - goto _test_eof1589; -case 1589: + goto _test_eof1742; +case 1742: goto st0; -tr3973: +tr4256: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1590; -st1590: + goto st1743; +st1743: if ( ++p == pe ) - goto _test_eof1590; -case 1590: + goto _test_eof1743; +case 1743: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -97751,38 +104237,38 @@ case 1590: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1417; - case 32: goto st1417; - case 40: goto tr3968; - case 41: goto tr3969; - case 3082: goto tr3970; - case 3131: goto tr3971; - case 3338: goto tr3972; - case 3387: goto tr3972; - case 3594: goto tr3973; - case 3643: goto tr3974; + case 9: goto st1562; + case 32: goto st1562; + case 40: goto tr4251; + case 41: goto tr4252; + case 3082: goto tr4253; + case 3131: goto tr4254; + case 3338: goto tr4255; + case 3387: goto tr4255; + case 3594: goto tr4256; + case 3643: goto tr4257; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr3963; + goto tr4246; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr3963; + goto tr4246; } else - goto tr3963; - goto tr3388; -tr3974: + goto tr4246; + goto tr3671; +tr4257: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1591; -st1591: + goto st1744; +st1744: if ( ++p == pe ) - goto _test_eof1591; -case 1591: + goto _test_eof1744; +case 1744: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97802,40 +104288,40 @@ case 1591: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3976; + goto tr4259; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3975; - goto tr3388; -tr3965: + goto tr4258; + goto tr3671; +tr4248: { s->buffer_length = 0; } - goto st1419; -tr3977: + goto st1564; +tr4260: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1419; -tr3959: + goto st1564; +tr4242: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1419; -st1419: + goto st1564; +st1564: if ( ++p == pe ) - goto _test_eof1419; -case 1419: + goto _test_eof1564; +case 1564: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97855,40 +104341,40 @@ case 1419: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3978; + goto tr4261; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3977; + goto tr4260; goto tr78; -tr3953: +tr4236: { s->buffer_length = 0; } - goto st1420; -tr3979: + goto st1565; +tr4262: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1420; -tr3947: + goto st1565; +tr4230: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1420; -st1420: + goto st1565; +st1565: if ( ++p == pe ) - goto _test_eof1420; -case 1420: + goto _test_eof1565; +case 1565: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97908,40 +104394,40 @@ case 1420: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3980; + goto tr4263; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3979; + goto tr4262; goto tr78; -tr3941: +tr4224: { s->buffer_length = 0; } - goto st1421; -tr3981: + goto st1566; +tr4264: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1421; -tr3935: + goto st1566; +tr4218: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1421; -st1421: + goto st1566; +st1566: if ( ++p == pe ) - goto _test_eof1421; -case 1421: + goto _test_eof1566; +case 1566: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -97961,18 +104447,18 @@ case 1421: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr3982; + goto tr4265; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3981; + goto tr4264; goto tr78; -st1422: +st1567: if ( ++p == pe ) - goto _test_eof1422; -case 1422: + goto _test_eof1567; +case 1567: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3983; - goto tr2717; -tr3983: + goto tr4266; + goto tr3000; +tr4266: { s->number64 = 0; } @@ -97987,11 +104473,11 @@ tr3983: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1423; -tr3987: + goto st1568; +tr4270: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98003,14 +104489,14 @@ tr3987: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1423; -st1423: + goto st1568; +st1568: if ( ++p == pe ) - goto _test_eof1423; -case 1423: + goto _test_eof1568; +case 1568: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98024,40 +104510,40 @@ case 1423: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr3984; - case 32: goto tr3984; - case 40: goto tr3985; - case 41: goto tr3986; - case 2058: goto tr3988; - case 2107: goto tr3989; + case 9: goto tr4267; + case 32: goto tr4267; + case 40: goto tr4268; + case 41: goto tr4269; + case 2058: goto tr4271; + case 2107: goto tr4272; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3987; - goto tr2717; -tr3991: + goto tr4270; + goto tr3000; +tr4274: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1424; -tr3992: + goto st1569; +tr4275: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1424; -tr3994: + goto st1569; +tr4277: { s->line_counter++; } - goto st1424; -tr4000: + goto st1569; +tr4283: { s->buffer[s->buffer_length++] = 0; @@ -98067,15 +104553,15 @@ tr4000: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1424; goto _out;} + {p++; cs = 1569; goto _out;} } } } { s->line_counter++; } - goto st1424; -tr3984: + goto st1569; +tr4267: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98083,11 +104569,11 @@ tr3984: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1424; -tr3985: + goto st1569; +tr4268: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98095,18 +104581,18 @@ tr3985: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1424; -tr3986: + goto st1569; +tr4269: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98114,18 +104600,18 @@ tr3986: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1424; -tr3988: + goto st1569; +tr4271: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98133,17 +104619,17 @@ tr3988: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1424; -st1424: + goto st1569; +st1569: if ( ++p == pe ) - goto _test_eof1424; -case 1424: + goto _test_eof1569; +case 1569: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98157,17 +104643,17 @@ case 1424: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1424; - case 32: goto st1424; - case 40: goto tr3991; - case 41: goto tr3992; - case 2058: goto tr3994; - case 2107: goto tr3995; + case 9: goto st1569; + case 32: goto st1569; + case 40: goto tr4274; + case 41: goto tr4275; + case 2058: goto tr4277; + case 2107: goto tr4278; } if ( 48 <= _widec && _widec <= 57 ) - goto tr3993; - goto tr2717; -tr3993: + goto tr4276; + goto tr3000; +tr4276: { s->number64 = 0; } @@ -98182,11 +104668,11 @@ tr3993: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1425; -tr3997: + goto st1570; +tr4280: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98198,28 +104684,28 @@ tr3997: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1425; -st1425: + goto st1570; +st1570: if ( ++p == pe ) - goto _test_eof1425; -case 1425: + goto _test_eof1570; +case 1570: switch( (*p) ) { - case 32: goto tr3996; - case 59: goto tr3996; + case 32: goto tr4279; + case 59: goto tr4279; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr3996; + goto tr4279; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr3997; + goto tr4280; } else - goto tr3996; - goto tr2717; -tr3996: + goto tr4279; + goto tr3000; +tr4279: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -98227,48 +104713,48 @@ tr3996: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - { p--; {stack[top++] = 1426;goto st579;} } - goto st1426; -st1426: + { p--; {stack[top++] = 1571;goto st597;} } + goto st1571; +st1571: if ( ++p == pe ) - goto _test_eof1426; -case 1426: + goto _test_eof1571; +case 1571: switch( (*p) ) { - case 32: goto tr3998; - case 59: goto tr3998; + case 32: goto tr4281; + case 59: goto tr4281; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr3998; + goto tr4281; } else if ( (*p) >= 9 ) - goto tr3998; + goto tr4281; goto tr78; -tr3998: +tr4281: { p--; {cs = stack[--top];goto _again;} } - goto st1592; -st1592: + goto st1745; +st1745: if ( ++p == pe ) - goto _test_eof1592; -case 1592: + goto _test_eof1745; +case 1745: goto st0; -tr3995: +tr4278: { s->buffer_length = 0; } - goto st1427; -tr3999: + goto st1572; +tr4282: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1427; -tr3989: + goto st1572; +tr4272: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98276,17 +104762,17 @@ tr3989: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1427; -st1427: + goto st1572; +st1572: if ( ++p == pe ) - goto _test_eof1427; -case 1427: + goto _test_eof1572; +case 1572: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -98306,18 +104792,18 @@ case 1427: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4000; + goto tr4283; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr3999; + goto tr4282; goto tr78; -st1428: +st1573: if ( ++p == pe ) - goto _test_eof1428; -case 1428: + goto _test_eof1573; +case 1573: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4001; - goto tr2717; -tr4001: + goto tr4284; + goto tr3000; +tr4284: { s->number64 = 0; } @@ -98332,11 +104818,11 @@ tr4001: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1429; -tr4005: + goto st1574; +tr4288: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98348,14 +104834,14 @@ tr4005: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1429; -st1429: + goto st1574; +st1574: if ( ++p == pe ) - goto _test_eof1429; -case 1429: + goto _test_eof1574; +case 1574: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98369,40 +104855,40 @@ case 1429: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4002; - case 32: goto tr4002; - case 40: goto tr4003; - case 41: goto tr4004; - case 2058: goto tr4006; - case 2107: goto tr4007; + case 9: goto tr4285; + case 32: goto tr4285; + case 40: goto tr4286; + case 41: goto tr4287; + case 2058: goto tr4289; + case 2107: goto tr4290; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4005; - goto tr2717; -tr4009: + goto tr4288; + goto tr3000; +tr4292: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1430; -tr4010: + goto st1575; +tr4293: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1430; -tr4012: + goto st1575; +tr4295: { s->line_counter++; } - goto st1430; -tr4054: + goto st1575; +tr4337: { s->buffer[s->buffer_length++] = 0; @@ -98412,15 +104898,15 @@ tr4054: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1430; goto _out;} + {p++; cs = 1575; goto _out;} } } } { s->line_counter++; } - goto st1430; -tr4002: + goto st1575; +tr4285: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98428,11 +104914,11 @@ tr4002: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1430; -tr4003: + goto st1575; +tr4286: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98440,18 +104926,18 @@ tr4003: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1430; -tr4004: + goto st1575; +tr4287: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98459,18 +104945,18 @@ tr4004: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1430; -tr4006: + goto st1575; +tr4289: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -98478,17 +104964,17 @@ tr4006: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1430; -st1430: + goto st1575; +st1575: if ( ++p == pe ) - goto _test_eof1430; -case 1430: + goto _test_eof1575; +case 1575: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98502,17 +104988,17 @@ case 1430: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1430; - case 32: goto st1430; - case 40: goto tr4009; - case 41: goto tr4010; - case 2058: goto tr4012; - case 2107: goto tr4013; + case 9: goto st1575; + case 32: goto st1575; + case 40: goto tr4292; + case 41: goto tr4293; + case 2058: goto tr4295; + case 2107: goto tr4296; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4011; - goto tr2717; -tr4011: + goto tr4294; + goto tr3000; +tr4294: { s->number64 = 0; } @@ -98527,11 +105013,11 @@ tr4011: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1431; -tr4017: + goto st1576; +tr4300: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98543,14 +105029,14 @@ tr4017: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1431; -st1431: + goto st1576; +st1576: if ( ++p == pe ) - goto _test_eof1431; -case 1431: + goto _test_eof1576; +case 1576: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98564,40 +105050,40 @@ case 1431: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4014; - case 32: goto tr4014; - case 40: goto tr4015; - case 41: goto tr4016; - case 2058: goto tr4018; - case 2107: goto tr4019; + case 9: goto tr4297; + case 32: goto tr4297; + case 40: goto tr4298; + case 41: goto tr4299; + case 2058: goto tr4301; + case 2107: goto tr4302; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4017; - goto tr2717; -tr4021: + goto tr4300; + goto tr3000; +tr4304: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1432; -tr4022: + goto st1577; +tr4305: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1432; -tr4024: + goto st1577; +tr4307: { s->line_counter++; } - goto st1432; -tr4052: + goto st1577; +tr4335: { s->buffer[s->buffer_length++] = 0; @@ -98607,79 +105093,79 @@ tr4052: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1432; goto _out;} + {p++; cs = 1577; goto _out;} } } } { s->line_counter++; } - goto st1432; -tr4014: + goto st1577; +tr4297: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1432; -tr4015: + goto st1577; +tr4298: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1432; -tr4016: + goto st1577; +tr4299: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1432; -tr4018: + goto st1577; +tr4301: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1432; -st1432: + goto st1577; +st1577: if ( ++p == pe ) - goto _test_eof1432; -case 1432: + goto _test_eof1577; +case 1577: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98693,17 +105179,17 @@ case 1432: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1432; - case 32: goto st1432; - case 40: goto tr4021; - case 41: goto tr4022; - case 2058: goto tr4024; - case 2107: goto tr4025; + case 9: goto st1577; + case 32: goto st1577; + case 40: goto tr4304; + case 41: goto tr4305; + case 2058: goto tr4307; + case 2107: goto tr4308; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4023; - goto tr2717; -tr4023: + goto tr4306; + goto tr3000; +tr4306: { s->number64 = 0; } @@ -98718,11 +105204,11 @@ tr4023: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1433; -tr4029: + goto st1578; +tr4312: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -98734,14 +105220,14 @@ tr4029: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1433; -st1433: + goto st1578; +st1578: if ( ++p == pe ) - goto _test_eof1433; -case 1433: + goto _test_eof1578; +case 1578: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98755,40 +105241,40 @@ case 1433: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4026; - case 32: goto tr4026; - case 40: goto tr4027; - case 41: goto tr4028; - case 2058: goto tr4030; - case 2107: goto tr4031; + case 9: goto tr4309; + case 32: goto tr4309; + case 40: goto tr4310; + case 41: goto tr4311; + case 2058: goto tr4313; + case 2107: goto tr4314; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4029; - goto tr2717; -tr4033: + goto tr4312; + goto tr3000; +tr4316: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1434; -tr4034: + goto st1579; +tr4317: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1434; -tr4036: + goto st1579; +tr4319: { s->line_counter++; } - goto st1434; -tr4050: + goto st1579; +tr4333: { s->buffer[s->buffer_length++] = 0; @@ -98798,79 +105284,79 @@ tr4050: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1434; goto _out;} + {p++; cs = 1579; goto _out;} } } } { s->line_counter++; } - goto st1434; -tr4026: + goto st1579; +tr4309: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1434; -tr4027: + goto st1579; +tr4310: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1434; -tr4028: + goto st1579; +tr4311: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1434; -tr4030: + goto st1579; +tr4313: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1434; -st1434: + goto st1579; +st1579: if ( ++p == pe ) - goto _test_eof1434; -case 1434: + goto _test_eof1579; +case 1579: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98884,69 +105370,69 @@ case 1434: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1434; - case 32: goto st1434; - case 40: goto tr4033; - case 41: goto tr4034; - case 2058: goto tr4036; - case 2107: goto tr4037; + case 9: goto st1579; + case 32: goto st1579; + case 40: goto tr4316; + case 41: goto tr4317; + case 2058: goto tr4319; + case 2107: goto tr4320; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4035; + goto tr4318; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4035; + goto tr4318; } else - goto tr4035; - goto tr3388; -tr4035: + goto tr4318; + goto tr3671; +tr4318: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1435; -st1435: + goto st1580; +st1580: if ( ++p == pe ) - goto _test_eof1435; -case 1435: + goto _test_eof1580; +case 1580: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4038; + goto tr4321; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4038; + goto tr4321; } else - goto tr4038; - goto tr3388; -tr4040: + goto tr4321; + goto tr3671; +tr4323: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1436; -tr4041: + goto st1581; +tr4324: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1436; -tr4042: + goto st1581; +tr4325: { s->line_counter++; } - goto st1436; -tr4048: + goto st1581; +tr4331: { s->buffer[s->buffer_length++] = 0; @@ -98956,24 +105442,24 @@ tr4048: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1436; goto _out;} + {p++; cs = 1581; goto _out;} } } } { s->line_counter++; } - goto st1436; -tr4038: + goto st1581; +tr4321: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1436; -st1436: + goto st1581; +st1581: if ( ++p == pe ) - goto _test_eof1436; -case 1436: + goto _test_eof1581; +case 1581: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -98991,42 +105477,42 @@ case 1436: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1436; - case 32: goto st1436; - case 40: goto tr4040; - case 41: goto tr4041; - case 3082: goto tr4042; - case 3131: goto tr4043; - case 3338: goto tr4044; - case 3387: goto tr4044; - case 3594: goto tr4045; - case 3643: goto tr4046; + case 9: goto st1581; + case 32: goto st1581; + case 40: goto tr4323; + case 41: goto tr4324; + case 3082: goto tr4325; + case 3131: goto tr4326; + case 3338: goto tr4327; + case 3387: goto tr4327; + case 3594: goto tr4328; + case 3643: goto tr4329; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4035; + goto tr4318; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4035; + goto tr4318; } else - goto tr4035; - goto tr3388; -tr4043: + goto tr4318; + goto tr3671; +tr4326: { s->buffer_length = 0; } - goto st1437; -tr4047: + goto st1582; +tr4330: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1437; -st1437: + goto st1582; +st1582: if ( ++p == pe ) - goto _test_eof1437; -case 1437: + goto _test_eof1582; +case 1582: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99046,32 +105532,32 @@ case 1437: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4048; + goto tr4331; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4047; - goto tr3388; -tr4044: + goto tr4330; + goto tr3671; +tr4327: { p--; {cs = stack[--top];goto _again;} } - goto st1593; -st1593: + goto st1746; +st1746: if ( ++p == pe ) - goto _test_eof1593; -case 1593: + goto _test_eof1746; +case 1746: goto st0; -tr4045: +tr4328: { s->line_counter++; } { p--; {cs = stack[--top];goto _again;} } - goto st1594; -st1594: + goto st1747; +st1747: if ( ++p == pe ) - goto _test_eof1594; -case 1594: + goto _test_eof1747; +case 1747: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99089,38 +105575,38 @@ case 1594: !s->multiline ) _widec += 512; } switch( _widec ) { - case 9: goto st1436; - case 32: goto st1436; - case 40: goto tr4040; - case 41: goto tr4041; - case 3082: goto tr4042; - case 3131: goto tr4043; - case 3338: goto tr4044; - case 3387: goto tr4044; - case 3594: goto tr4045; - case 3643: goto tr4046; + case 9: goto st1581; + case 32: goto st1581; + case 40: goto tr4323; + case 41: goto tr4324; + case 3082: goto tr4325; + case 3131: goto tr4326; + case 3338: goto tr4327; + case 3387: goto tr4327; + case 3594: goto tr4328; + case 3643: goto tr4329; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4035; + goto tr4318; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4035; + goto tr4318; } else - goto tr4035; - goto tr3388; -tr4046: + goto tr4318; + goto tr3671; +tr4329: { s->buffer_length = 0; } { p--; {cs = stack[--top];goto _again;} } - goto st1595; -st1595: + goto st1748; +st1748: if ( ++p == pe ) - goto _test_eof1595; -case 1595: + goto _test_eof1748; +case 1748: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99140,40 +105626,40 @@ case 1595: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4048; + goto tr4331; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4047; - goto tr3388; -tr4037: + goto tr4330; + goto tr3671; +tr4320: { s->buffer_length = 0; } - goto st1438; -tr4049: + goto st1583; +tr4332: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1438; -tr4031: + goto st1583; +tr4314: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1438; -st1438: + goto st1583; +st1583: if ( ++p == pe ) - goto _test_eof1438; -case 1438: + goto _test_eof1583; +case 1583: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99193,40 +105679,40 @@ case 1438: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4050; + goto tr4333; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4049; + goto tr4332; goto tr78; -tr4025: +tr4308: { s->buffer_length = 0; } - goto st1439; -tr4051: + goto st1584; +tr4334: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1439; -tr4019: + goto st1584; +tr4302: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1439; -st1439: + goto st1584; +st1584: if ( ++p == pe ) - goto _test_eof1439; -case 1439: + goto _test_eof1584; +case 1584: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99246,23 +105732,23 @@ case 1439: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4052; + goto tr4335; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4051; + goto tr4334; goto tr78; -tr4013: +tr4296: { s->buffer_length = 0; } - goto st1440; -tr4053: + goto st1585; +tr4336: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1440; -tr4007: + goto st1585; +tr4290: { if (s->number64 <= UINT32_MAX) { uint32_t num32 = htonl((uint32_t)s->number64); @@ -99270,17 +105756,17 @@ tr4007: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1440; -st1440: + goto st1585; +st1585: if ( ++p == pe ) - goto _test_eof1440; -case 1440: + goto _test_eof1585; +case 1585: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99300,18 +105786,18 @@ case 1440: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4054; + goto tr4337; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4053; + goto tr4336; goto tr78; -st1441: +st1586: if ( ++p == pe ) - goto _test_eof1441; -case 1441: + goto _test_eof1586; +case 1586: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4055; - goto tr2717; -tr4055: + goto tr4338; + goto tr3000; +tr4338: { s->number64 = 0; } @@ -99326,11 +105812,11 @@ tr4055: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1442; -tr4059: + goto st1587; +tr4342: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99342,14 +105828,14 @@ tr4059: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1442; -st1442: + goto st1587; +st1587: if ( ++p == pe ) - goto _test_eof1442; -case 1442: + goto _test_eof1587; +case 1587: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99363,40 +105849,40 @@ case 1442: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4056; - case 32: goto tr4056; - case 40: goto tr4057; - case 41: goto tr4058; - case 2058: goto tr4060; - case 2107: goto tr4061; + case 9: goto tr4339; + case 32: goto tr4339; + case 40: goto tr4340; + case 41: goto tr4341; + case 2058: goto tr4343; + case 2107: goto tr4344; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4059; - goto tr2717; -tr4063: + goto tr4342; + goto tr3000; +tr4346: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1443; -tr4064: + goto st1588; +tr4347: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1443; -tr4066: + goto st1588; +tr4349: { s->line_counter++; } - goto st1443; -tr4071: + goto st1588; +tr4354: { s->buffer[s->buffer_length++] = 0; @@ -99406,15 +105892,15 @@ tr4071: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1443; goto _out;} + {p++; cs = 1588; goto _out;} } } } { s->line_counter++; } - goto st1443; -tr4056: + goto st1588; +tr4339: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99422,11 +105908,11 @@ tr4056: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1443; -tr4057: + goto st1588; +tr4340: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99434,18 +105920,18 @@ tr4057: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1443; -tr4058: + goto st1588; +tr4341: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99453,18 +105939,18 @@ tr4058: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1443; -tr4060: + goto st1588; +tr4343: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99472,17 +105958,17 @@ tr4060: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1443; -st1443: + goto st1588; +st1588: if ( ++p == pe ) - goto _test_eof1443; -case 1443: + goto _test_eof1588; +case 1588: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99496,28 +105982,28 @@ case 1443: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1443; - case 32: goto st1443; - case 40: goto tr4063; - case 41: goto tr4064; - case 46: goto tr4065; - case 2058: goto tr4066; - case 2107: goto tr4067; + case 9: goto st1588; + case 32: goto st1588; + case 40: goto tr4346; + case 41: goto tr4347; + case 46: goto tr4348; + case 2058: goto tr4349; + case 2107: goto tr4350; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4065; - goto tr2694; -tr4069: + goto tr4348; + goto tr2977; +tr4352: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1444; -tr4065: + goto st1589; +tr4348: { s->buffer_length = 0; } @@ -99526,41 +106012,41 @@ tr4065: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1444; -st1444: + goto st1589; +st1589: if ( ++p == pe ) - goto _test_eof1444; -case 1444: + goto _test_eof1589; +case 1589: switch( (*p) ) { - case 32: goto tr4068; - case 46: goto tr4069; - case 59: goto tr4068; + case 32: goto tr4351; + case 46: goto tr4352; + case 59: goto tr4351; } if ( (*p) < 40 ) { if ( 9 <= (*p) && (*p) <= 10 ) - goto tr4068; + goto tr4351; } else if ( (*p) > 41 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4069; + goto tr4352; } else - goto tr4068; - goto tr2694; -tr4068: + goto tr4351; + goto tr2977; +tr4351: { s->buffer[s->buffer_length] = 0; if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {goto st329;} + p--; {goto st338;} } } { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -99568,25 +106054,25 @@ tr4068: { p--; {cs = stack[--top];goto _again;} } - goto st1596; -st1596: + goto st1749; +st1749: if ( ++p == pe ) - goto _test_eof1596; -case 1596: + goto _test_eof1749; +case 1749: goto st0; -tr4067: +tr4350: { s->buffer_length = 0; } - goto st1445; -tr4070: + goto st1590; +tr4353: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1445; -tr4061: + goto st1590; +tr4344: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99594,17 +106080,17 @@ tr4061: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1445; -st1445: + goto st1590; +st1590: if ( ++p == pe ) - goto _test_eof1445; -case 1445: + goto _test_eof1590; +case 1590: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -99624,18 +106110,18 @@ case 1445: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4071; + goto tr4354; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4070; + goto tr4353; goto tr78; -st1446: +st1591: if ( ++p == pe ) - goto _test_eof1446; -case 1446: + goto _test_eof1591; +case 1591: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4072; - goto tr2717; -tr4072: + goto tr4355; + goto tr3000; +tr4355: { s->number64 = 0; } @@ -99650,11 +106136,11 @@ tr4072: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1447; -tr4076: + goto st1592; +tr4359: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -99666,14 +106152,14 @@ tr4076: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1447; -st1447: + goto st1592; +st1592: if ( ++p == pe ) - goto _test_eof1447; -case 1447: + goto _test_eof1592; +case 1592: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99687,40 +106173,40 @@ case 1447: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4073; - case 32: goto tr4073; - case 40: goto tr4074; - case 41: goto tr4075; - case 2058: goto tr4077; - case 2107: goto tr4078; + case 9: goto tr4356; + case 32: goto tr4356; + case 40: goto tr4357; + case 41: goto tr4358; + case 2058: goto tr4360; + case 2107: goto tr4361; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4076; - goto tr2717; -tr4080: + goto tr4359; + goto tr3000; +tr4363: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1448; -tr4081: + goto st1593; +tr4364: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1448; -tr4083: + goto st1593; +tr4366: { s->line_counter++; } - goto st1448; -tr4097: + goto st1593; +tr4380: { s->buffer[s->buffer_length++] = 0; @@ -99730,15 +106216,15 @@ tr4097: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1448; goto _out;} + {p++; cs = 1593; goto _out;} } } } { s->line_counter++; } - goto st1448; -tr4073: + goto st1593; +tr4356: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99746,11 +106232,11 @@ tr4073: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1448; -tr4074: + goto st1593; +tr4357: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99758,18 +106244,18 @@ tr4074: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1448; -tr4075: + goto st1593; +tr4358: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99777,18 +106263,18 @@ tr4075: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1448; -tr4077: + goto st1593; +tr4360: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -99796,17 +106282,17 @@ tr4077: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1448; -st1448: + goto st1593; +st1593: if ( ++p == pe ) - goto _test_eof1448; -case 1448: + goto _test_eof1593; +case 1593: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -99820,23 +106306,23 @@ case 1448: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1448; - case 32: goto st1448; - case 40: goto tr4080; - case 41: goto tr4081; - case 2058: goto tr4083; - case 2107: goto tr4084; + case 9: goto st1593; + case 32: goto st1593; + case 40: goto tr4363; + case 41: goto tr4364; + case 2058: goto tr4366; + case 2107: goto tr4367; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4082; + goto tr4365; } else if ( _widec > 70 ) { if ( 97 <= _widec && _widec <= 102 ) - goto tr4082; + goto tr4365; } else - goto tr4082; - goto tr3388; -tr4082: + goto tr4365; + goto tr3671; +tr4365: { s->item_length = 0; } @@ -99845,214 +106331,214 @@ tr4082: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1449; -st1449: + goto st1594; +st1594: if ( ++p == pe ) - goto _test_eof1449; -case 1449: + goto _test_eof1594; +case 1594: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4085; + goto tr4368; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4085; + goto tr4368; } else - goto tr4085; - goto tr3388; -tr4085: + goto tr4368; + goto tr3671; +tr4368: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1450; -st1450: + goto st1595; +st1595: if ( ++p == pe ) - goto _test_eof1450; -case 1450: + goto _test_eof1595; +case 1595: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4086; + goto tr4369; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4086; + goto tr4369; } else - goto tr4086; - goto tr3388; -tr4086: + goto tr4369; + goto tr3671; +tr4369: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1451; -st1451: + goto st1596; +st1596: if ( ++p == pe ) - goto _test_eof1451; -case 1451: + goto _test_eof1596; +case 1596: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4087; + goto tr4370; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4087; + goto tr4370; } else - goto tr4087; - goto tr3388; -tr4087: + goto tr4370; + goto tr3671; +tr4370: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1452; -st1452: + goto st1597; +st1597: if ( ++p == pe ) - goto _test_eof1452; -case 1452: + goto _test_eof1597; +case 1597: if ( (*p) == 58 ) - goto tr4089; - goto tr4088; -tr4089: + goto tr4372; + goto tr4371; +tr4372: { s->item_length++; } - goto st1453; -st1453: + goto st1598; +st1598: if ( ++p == pe ) - goto _test_eof1453; -case 1453: + goto _test_eof1598; +case 1598: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4090; + goto tr4373; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4090; + goto tr4373; } else - goto tr4090; - goto tr3388; -tr4090: + goto tr4373; + goto tr3671; +tr4373: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1454; -st1454: + goto st1599; +st1599: if ( ++p == pe ) - goto _test_eof1454; -case 1454: + goto _test_eof1599; +case 1599: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4091; + goto tr4374; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4091; + goto tr4374; } else - goto tr4091; - goto tr3388; -tr4091: + goto tr4374; + goto tr3671; +tr4374: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1455; -st1455: + goto st1600; +st1600: if ( ++p == pe ) - goto _test_eof1455; -case 1455: + goto _test_eof1600; +case 1600: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4092; + goto tr4375; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4092; + goto tr4375; } else - goto tr4092; - goto tr3388; -tr4092: + goto tr4375; + goto tr3671; +tr4375: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1456; -st1456: + goto st1601; +st1601: if ( ++p == pe ) - goto _test_eof1456; -case 1456: + goto _test_eof1601; +case 1601: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4093; + goto tr4376; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4093; + goto tr4376; } else - goto tr4093; - goto tr3388; -tr4093: + goto tr4376; + goto tr3671; +tr4376: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1457; -st1457: + goto st1602; +st1602: if ( ++p == pe ) - goto _test_eof1457; -case 1457: + goto _test_eof1602; +case 1602: switch( (*p) ) { - case 32: goto tr4095; - case 58: goto tr4089; - case 59: goto tr4095; + case 32: goto tr4378; + case 58: goto tr4372; + case 59: goto tr4378; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4095; + goto tr4378; } else if ( (*p) >= 9 ) - goto tr4095; - goto tr4094; -tr4095: + goto tr4378; + goto tr4377; +tr4378: { s->item_length++; } { if (s->item_length != 4) { WARN(ZS_BAD_L64_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1597; -st1597: + goto st1750; +st1750: if ( ++p == pe ) - goto _test_eof1597; -case 1597: + goto _test_eof1750; +case 1750: goto st0; -tr4084: +tr4367: { s->buffer_length = 0; } - goto st1458; -tr4096: + goto st1603; +tr4379: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1458; -tr4078: + goto st1603; +tr4361: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100060,17 +106546,17 @@ tr4078: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1458; -st1458: + goto st1603; +st1603: if ( ++p == pe ) - goto _test_eof1458; -case 1458: + goto _test_eof1603; +case 1603: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100090,24 +106576,24 @@ case 1458: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4097; + goto tr4380; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4096; + goto tr4379; goto tr78; -st1459: +st1604: if ( ++p == pe ) - goto _test_eof1459; -case 1459: + goto _test_eof1604; +case 1604: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4098; + goto tr4381; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4098; + goto tr4381; } else - goto tr4098; - goto tr3388; -tr4098: + goto tr4381; + goto tr3671; +tr4381: { s->item_length = 0; } @@ -100116,131 +106602,131 @@ tr4098: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1460; -st1460: + goto st1605; +st1605: if ( ++p == pe ) - goto _test_eof1460; -case 1460: + goto _test_eof1605; +case 1605: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4099; + goto tr4382; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4099; + goto tr4382; } else - goto tr4099; - goto tr3388; -tr4099: + goto tr4382; + goto tr3671; +tr4382: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1461; -st1461: + goto st1606; +st1606: if ( ++p == pe ) - goto _test_eof1461; -case 1461: + goto _test_eof1606; +case 1606: if ( (*p) == 45 ) - goto tr4101; - goto tr4100; -tr4101: + goto tr4384; + goto tr4383; +tr4384: { s->item_length++; } - goto st1462; -st1462: + goto st1607; +st1607: if ( ++p == pe ) - goto _test_eof1462; -case 1462: + goto _test_eof1607; +case 1607: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4102; + goto tr4385; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4102; + goto tr4385; } else - goto tr4102; - goto tr3388; -tr4102: + goto tr4385; + goto tr3671; +tr4385: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1463; -st1463: + goto st1608; +st1608: if ( ++p == pe ) - goto _test_eof1463; -case 1463: + goto _test_eof1608; +case 1608: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4103; + goto tr4386; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4103; + goto tr4386; } else - goto tr4103; - goto tr3388; -tr4103: + goto tr4386; + goto tr3671; +tr4386: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1464; -st1464: + goto st1609; +st1609: if ( ++p == pe ) - goto _test_eof1464; -case 1464: + goto _test_eof1609; +case 1609: switch( (*p) ) { - case 32: goto tr4104; - case 45: goto tr4101; - case 59: goto tr4104; + case 32: goto tr4387; + case 45: goto tr4384; + case 59: goto tr4387; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4104; + goto tr4387; } else if ( (*p) >= 9 ) - goto tr4104; - goto tr4100; -tr4104: + goto tr4387; + goto tr4383; +tr4387: { s->item_length++; } { if (s->item_length != 6) { WARN(ZS_BAD_EUI_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1598; -st1598: + goto st1751; +st1751: if ( ++p == pe ) - goto _test_eof1598; -case 1598: + goto _test_eof1751; +case 1751: goto st0; -st1465: +st1610: if ( ++p == pe ) - goto _test_eof1465; -case 1465: + goto _test_eof1610; +case 1610: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4105; + goto tr4388; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4105; + goto tr4388; } else - goto tr4105; - goto tr3388; -tr4105: + goto tr4388; + goto tr3671; +tr4388: { s->item_length = 0; } @@ -100249,125 +106735,125 @@ tr4105: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1466; -st1466: + goto st1611; +st1611: if ( ++p == pe ) - goto _test_eof1466; -case 1466: + goto _test_eof1611; +case 1611: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4106; + goto tr4389; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4106; + goto tr4389; } else - goto tr4106; - goto tr3388; -tr4106: + goto tr4389; + goto tr3671; +tr4389: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1467; -st1467: + goto st1612; +st1612: if ( ++p == pe ) - goto _test_eof1467; -case 1467: + goto _test_eof1612; +case 1612: if ( (*p) == 45 ) - goto tr4107; - goto tr4100; -tr4107: + goto tr4390; + goto tr4383; +tr4390: { s->item_length++; } - goto st1468; -st1468: + goto st1613; +st1613: if ( ++p == pe ) - goto _test_eof1468; -case 1468: + goto _test_eof1613; +case 1613: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4108; + goto tr4391; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4108; + goto tr4391; } else - goto tr4108; - goto tr3388; -tr4108: + goto tr4391; + goto tr3671; +tr4391: { if (rdata_tail <= rdata_stop) { *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1469; -st1469: + goto st1614; +st1614: if ( ++p == pe ) - goto _test_eof1469; -case 1469: + goto _test_eof1614; +case 1614: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4109; + goto tr4392; } else if ( (*p) > 70 ) { if ( 97 <= (*p) && (*p) <= 102 ) - goto tr4109; + goto tr4392; } else - goto tr4109; - goto tr3388; -tr4109: + goto tr4392; + goto tr3671; +tr4392: { *rdata_tail += second_hex_to_num[(uint8_t)(*p)]; rdata_tail++; } - goto st1470; -st1470: + goto st1615; +st1615: if ( ++p == pe ) - goto _test_eof1470; -case 1470: + goto _test_eof1615; +case 1615: switch( (*p) ) { - case 32: goto tr4110; - case 45: goto tr4107; - case 59: goto tr4110; + case 32: goto tr4393; + case 45: goto tr4390; + case 59: goto tr4393; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4110; + goto tr4393; } else if ( (*p) >= 9 ) - goto tr4110; - goto tr4100; -tr4110: + goto tr4393; + goto tr4383; +tr4393: { s->item_length++; } { if (s->item_length != 8) { WARN(ZS_BAD_EUI_LENGTH); - p--; {goto st329;} + p--; {goto st338;} } } { p--; {cs = stack[--top];goto _again;} } - goto st1599; -st1599: + goto st1752; +st1752: if ( ++p == pe ) - goto _test_eof1599; -case 1599: + goto _test_eof1752; +case 1752: goto st0; -st1471: +st1616: if ( ++p == pe ) - goto _test_eof1471; -case 1471: + goto _test_eof1616; +case 1616: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4111; - goto tr2717; -tr4111: + goto tr4394; + goto tr3000; +tr4394: { s->number64 = 0; } @@ -100382,11 +106868,11 @@ tr4111: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1472; -tr4115: + goto st1617; +tr4398: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -100398,14 +106884,14 @@ tr4115: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1472; -st1472: + goto st1617; +st1617: if ( ++p == pe ) - goto _test_eof1472; -case 1472: + goto _test_eof1617; +case 1617: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100419,40 +106905,40 @@ case 1472: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4112; - case 32: goto tr4112; - case 40: goto tr4113; - case 41: goto tr4114; - case 2058: goto tr4116; - case 2107: goto tr4117; + case 9: goto tr4395; + case 32: goto tr4395; + case 40: goto tr4396; + case 41: goto tr4397; + case 2058: goto tr4399; + case 2107: goto tr4400; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4115; - goto tr2717; -tr4119: + goto tr4398; + goto tr3000; +tr4402: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1473; -tr4120: + goto st1618; +tr4403: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1473; -tr4122: + goto st1618; +tr4405: { s->line_counter++; } - goto st1473; -tr4140: + goto st1618; +tr4423: { s->buffer[s->buffer_length++] = 0; @@ -100462,15 +106948,15 @@ tr4140: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1473; goto _out;} + {p++; cs = 1618; goto _out;} } } } { s->line_counter++; } - goto st1473; -tr4112: + goto st1618; +tr4395: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100478,11 +106964,11 @@ tr4112: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1473; -tr4113: + goto st1618; +tr4396: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100490,18 +106976,18 @@ tr4113: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1473; -tr4114: + goto st1618; +tr4397: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100509,18 +106995,18 @@ tr4114: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1473; -tr4116: + goto st1618; +tr4399: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100528,17 +107014,17 @@ tr4116: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1473; -st1473: + goto st1618; +st1618: if ( ++p == pe ) - goto _test_eof1473; -case 1473: + goto _test_eof1618; +case 1618: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100552,17 +107038,17 @@ case 1473: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1473; - case 32: goto st1473; - case 40: goto tr4119; - case 41: goto tr4120; - case 2058: goto tr4122; - case 2107: goto tr4123; + case 9: goto st1618; + case 32: goto st1618; + case 40: goto tr4402; + case 41: goto tr4403; + case 2058: goto tr4405; + case 2107: goto tr4406; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4121; - goto tr2717; -tr4121: + goto tr4404; + goto tr3000; +tr4404: { s->number64 = 0; } @@ -100577,11 +107063,11 @@ tr4121: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1474; -tr4127: + goto st1619; +tr4410: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -100593,14 +107079,14 @@ tr4127: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1474; -st1474: + goto st1619; +st1619: if ( ++p == pe ) - goto _test_eof1474; -case 1474: + goto _test_eof1619; +case 1619: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100614,40 +107100,40 @@ case 1474: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4124; - case 32: goto tr4124; - case 40: goto tr4125; - case 41: goto tr4126; - case 2058: goto tr4128; - case 2107: goto tr4129; + case 9: goto tr4407; + case 32: goto tr4407; + case 40: goto tr4408; + case 41: goto tr4409; + case 2058: goto tr4411; + case 2107: goto tr4412; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4127; - goto tr2717; -tr4132: + goto tr4410; + goto tr3000; +tr4415: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1475; -tr4133: + goto st1620; +tr4416: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1475; -tr4134: + goto st1620; +tr4417: { s->line_counter++; } - goto st1475; -tr4138: + goto st1620; +tr4421: { s->buffer[s->buffer_length++] = 0; @@ -100657,15 +107143,15 @@ tr4138: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1475; goto _out;} + {p++; cs = 1620; goto _out;} } } } { s->line_counter++; } - goto st1475; -tr4124: + goto st1620; +tr4407: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100673,11 +107159,11 @@ tr4124: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1475; -tr4125: + goto st1620; +tr4408: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100685,18 +107171,18 @@ tr4125: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1475; -tr4126: + goto st1620; +tr4409: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100704,18 +107190,18 @@ tr4126: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1475; -tr4128: + goto st1620; +tr4411: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100723,17 +107209,17 @@ tr4128: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1475; -st1475: + goto st1620; +st1620: if ( ++p == pe ) - goto _test_eof1475; -case 1475: + goto _test_eof1620; +case 1620: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100747,62 +107233,62 @@ case 1475: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1475; - case 32: goto st1475; - case 40: goto tr4132; - case 41: goto tr4133; - case 2058: goto tr4134; - case 2107: goto tr4135; + case 9: goto st1620; + case 32: goto st1620; + case 40: goto tr4415; + case 41: goto tr4416; + case 2058: goto tr4417; + case 2107: goto tr4418; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4130; + goto tr4413; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4130; + goto tr4413; } else - goto tr4130; + goto tr4413; goto tr78; -tr4130: - { p--; {stack[top++] = 1476;goto st340;} } - goto st1476; -st1476: +tr4413: + { p--; {stack[top++] = 1621;goto st349;} } + goto st1621; +st1621: if ( ++p == pe ) - goto _test_eof1476; -case 1476: + goto _test_eof1621; +case 1621: switch( (*p) ) { - case 32: goto tr4136; - case 59: goto tr4136; + case 32: goto tr4419; + case 59: goto tr4419; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4136; + goto tr4419; } else if ( (*p) >= 9 ) - goto tr4136; + goto tr4419; goto tr78; -tr4136: +tr4419: { p--; {cs = stack[--top];goto _again;} } - goto st1600; -st1600: + goto st1753; +st1753: if ( ++p == pe ) - goto _test_eof1600; -case 1600: + goto _test_eof1753; +case 1753: goto st0; -tr4135: +tr4418: { s->buffer_length = 0; } - goto st1477; -tr4137: + goto st1622; +tr4420: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1477; -tr4129: + goto st1622; +tr4412: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100810,17 +107296,17 @@ tr4129: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1477; -st1477: + goto st1622; +st1622: if ( ++p == pe ) - goto _test_eof1477; -case 1477: + goto _test_eof1622; +case 1622: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100840,23 +107326,23 @@ case 1477: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4138; + goto tr4421; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4137; + goto tr4420; goto tr78; -tr4123: +tr4406: { s->buffer_length = 0; } - goto st1478; -tr4139: + goto st1623; +tr4422: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1478; -tr4117: + goto st1623; +tr4400: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -100864,17 +107350,17 @@ tr4117: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1478; -st1478: + goto st1623; +st1623: if ( ++p == pe ) - goto _test_eof1478; -case 1478: + goto _test_eof1623; +case 1623: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -100894,18 +107380,18 @@ case 1478: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4140; + goto tr4423; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4139; + goto tr4422; goto tr78; -st1479: +st1624: if ( ++p == pe ) - goto _test_eof1479; -case 1479: + goto _test_eof1624; +case 1624: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4141; - goto tr2717; -tr4141: + goto tr4424; + goto tr3000; +tr4424: { s->number64 = 0; } @@ -100920,11 +107406,11 @@ tr4141: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1480; -tr4145: + goto st1625; +tr4428: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -100936,14 +107422,14 @@ tr4145: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1480; -st1480: + goto st1625; +st1625: if ( ++p == pe ) - goto _test_eof1480; -case 1480: + goto _test_eof1625; +case 1625: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -100957,40 +107443,40 @@ case 1480: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4142; - case 32: goto tr4142; - case 40: goto tr4143; - case 41: goto tr4144; - case 2058: goto tr4146; - case 2107: goto tr4147; + case 9: goto tr4425; + case 32: goto tr4425; + case 40: goto tr4426; + case 41: goto tr4427; + case 2058: goto tr4429; + case 2107: goto tr4430; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4145; - goto tr2717; -tr4150: + goto tr4428; + goto tr3000; +tr4433: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1481; -tr4151: + goto st1626; +tr4434: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1481; -tr4152: + goto st1626; +tr4435: { s->line_counter++; } - goto st1481; -tr4169: + goto st1626; +tr4452: { s->buffer[s->buffer_length++] = 0; @@ -101000,79 +107486,79 @@ tr4169: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1481; goto _out;} + {p++; cs = 1626; goto _out;} } } } { s->line_counter++; } - goto st1481; -tr4142: + goto st1626; +tr4425: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1481; -tr4143: + goto st1626; +tr4426: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1481; -tr4144: + goto st1626; +tr4427: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1481; -tr4146: + goto st1626; +tr4429: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1481; -st1481: + goto st1626; +st1626: if ( ++p == pe ) - goto _test_eof1481; -case 1481: + goto _test_eof1626; +case 1626: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101086,37 +107572,37 @@ case 1481: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1481; - case 32: goto st1481; - case 40: goto tr4150; - case 41: goto tr4151; - case 2058: goto tr4152; - case 2107: goto tr4153; + case 9: goto st1626; + case 32: goto st1626; + case 40: goto tr4433; + case 41: goto tr4434; + case 2058: goto tr4435; + case 2107: goto tr4436; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4148; + goto tr4431; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4148; + goto tr4431; } else - goto tr4148; + goto tr4431; goto tr78; -tr4148: +tr4431: { if (rdata_tail <= rdata_stop) { s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - { p--; {stack[top++] = 1482;goto st340;} } - goto st1482; -st1482: + { p--; {stack[top++] = 1627;goto st349;} } + goto st1627; +st1627: if ( ++p == pe ) - goto _test_eof1482; -case 1482: + goto _test_eof1627; +case 1627: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101130,38 +107616,38 @@ case 1482: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4154; - case 32: goto tr4154; - case 40: goto tr4155; - case 41: goto tr4156; - case 2058: goto tr4157; - case 2107: goto tr4158; + case 9: goto tr4437; + case 32: goto tr4437; + case 40: goto tr4438; + case 41: goto tr4439; + case 2058: goto tr4440; + case 2107: goto tr4441; } goto tr78; -tr4161: +tr4444: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1483; -tr4162: + goto st1628; +tr4445: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1483; -tr4163: + goto st1628; +tr4446: { s->line_counter++; } - goto st1483; -tr4167: + goto st1628; +tr4450: { s->buffer[s->buffer_length++] = 0; @@ -101171,95 +107657,95 @@ tr4167: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1483; goto _out;} + {p++; cs = 1628; goto _out;} } } } { s->line_counter++; } - goto st1483; -tr4154: + goto st1628; +tr4437: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1483; -tr4155: + goto st1628; +tr4438: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1483; -tr4156: + goto st1628; +tr4439: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1483; -tr4157: + goto st1628; +tr4440: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1483; -st1483: + goto st1628; +st1628: if ( ++p == pe ) - goto _test_eof1483; -case 1483: + goto _test_eof1628; +case 1628: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101273,83 +107759,83 @@ case 1483: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1483; - case 32: goto st1483; - case 40: goto tr4161; - case 41: goto tr4162; - case 2058: goto tr4163; - case 2107: goto tr4164; + case 9: goto st1628; + case 32: goto st1628; + case 40: goto tr4444; + case 41: goto tr4445; + case 2058: goto tr4446; + case 2107: goto tr4447; } if ( _widec < 11 ) { if ( _widec <= 8 ) - goto tr4159; + goto tr4442; } else if ( _widec > 58 ) { if ( 60 <= _widec ) - goto tr4159; + goto tr4442; } else - goto tr4159; + goto tr4442; goto tr78; -tr4159: - { p--; {stack[top++] = 1484;goto st340;} } - goto st1484; -st1484: +tr4442: + { p--; {stack[top++] = 1629;goto st349;} } + goto st1629; +st1629: if ( ++p == pe ) - goto _test_eof1484; -case 1484: + goto _test_eof1629; +case 1629: switch( (*p) ) { - case 32: goto tr4165; - case 59: goto tr4165; + case 32: goto tr4448; + case 59: goto tr4448; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4165; + goto tr4448; } else if ( (*p) >= 9 ) - goto tr4165; + goto tr4448; goto tr78; -tr4165: +tr4448: { p--; {cs = stack[--top];goto _again;} } - goto st1601; -st1601: + goto st1754; +st1754: if ( ++p == pe ) - goto _test_eof1601; -case 1601: + goto _test_eof1754; +case 1754: goto st0; -tr4164: +tr4447: { s->buffer_length = 0; } - goto st1485; -tr4166: + goto st1630; +tr4449: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1485; -tr4158: + goto st1630; +tr4441: { s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {goto st329;} + p--; {goto st338;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1485; -st1485: + goto st1630; +st1630: if ( ++p == pe ) - goto _test_eof1485; -case 1485: + goto _test_eof1630; +case 1630: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -101369,40 +107855,40 @@ case 1485: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4167; + goto tr4450; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4166; + goto tr4449; goto tr78; -tr4153: +tr4436: { s->buffer_length = 0; } - goto st1486; -tr4168: + goto st1631; +tr4451: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1486; -tr4147: + goto st1631; +tr4430: { if (s->number64 <= UINT8_MAX) { *rdata_tail = (uint8_t)(s->number64); rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1486; -st1486: + goto st1631; +st1631: if ( ++p == pe ) - goto _test_eof1486; -case 1486: + goto _test_eof1631; +case 1631: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -101422,18 +107908,18 @@ case 1486: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4169; + goto tr4452; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4168; + goto tr4451; goto tr78; -st1487: +st1632: if ( ++p == pe ) - goto _test_eof1487; -case 1487: + goto _test_eof1632; +case 1632: if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4170; - goto tr2717; -tr4170: + goto tr4453; + goto tr3000; +tr4453: { s->number64 = 0; } @@ -101448,11 +107934,11 @@ tr4170: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1488; -tr4174: + goto st1633; +tr4457: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -101464,14 +107950,14 @@ tr4174: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1488; -st1488: + goto st1633; +st1633: if ( ++p == pe ) - goto _test_eof1488; -case 1488: + goto _test_eof1633; +case 1633: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101485,40 +107971,40 @@ case 1488: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4171; - case 32: goto tr4171; - case 40: goto tr4172; - case 41: goto tr4173; - case 2058: goto tr4175; - case 2107: goto tr4176; + case 9: goto tr4454; + case 32: goto tr4454; + case 40: goto tr4455; + case 41: goto tr4456; + case 2058: goto tr4458; + case 2107: goto tr4459; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4174; - goto tr2717; -tr4178: + goto tr4457; + goto tr3000; +tr4461: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1489; -tr4179: + goto st1634; +tr4462: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1489; -tr4181: + goto st1634; +tr4464: { s->line_counter++; } - goto st1489; -tr4186: + goto st1634; +tr4469: { s->buffer[s->buffer_length++] = 0; @@ -101528,15 +108014,15 @@ tr4186: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1489; goto _out;} + {p++; cs = 1634; goto _out;} } } } { s->line_counter++; } - goto st1489; -tr4171: + goto st1634; +tr4454: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -101544,11 +108030,11 @@ tr4171: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1489; -tr4172: + goto st1634; +tr4455: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -101556,18 +108042,18 @@ tr4172: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1489; -tr4173: + goto st1634; +tr4456: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -101575,18 +108061,18 @@ tr4173: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1489; -tr4175: + goto st1634; +tr4458: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -101594,17 +108080,17 @@ tr4175: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1489; -st1489: + goto st1634; +st1634: if ( ++p == pe ) - goto _test_eof1489; -case 1489: + goto _test_eof1634; +case 1634: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101618,88 +108104,88 @@ case 1489: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1489; - case 32: goto st1489; - case 40: goto tr4178; - case 41: goto tr4179; - case 42: goto tr4180; - case 92: goto tr4180; - case 95: goto tr4180; - case 2058: goto tr4181; - case 2107: goto tr4182; + case 9: goto st1634; + case 32: goto st1634; + case 40: goto tr4461; + case 41: goto tr4462; + case 42: goto tr4463; + case 92: goto tr4463; + case 95: goto tr4463; + case 2058: goto tr4464; + case 2107: goto tr4465; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4180; + goto tr4463; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4180; + goto tr4463; } else - goto tr4180; + goto tr4463; goto tr78; -tr4180: +tr4463: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1490;goto st331;} } - goto st1490; -st1490: + { p--; {stack[top++] = 1635;goto st340;} } + goto st1635; +st1635: if ( ++p == pe ) - goto _test_eof1490; -case 1490: + goto _test_eof1635; +case 1635: switch( (*p) ) { - case 32: goto tr4183; - case 59: goto tr4183; + case 32: goto tr4466; + case 59: goto tr4466; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4183; + goto tr4466; } else if ( (*p) >= 9 ) - goto tr4183; + goto tr4466; goto tr78; -tr4183: +tr4466: { rdata_tail += s->dname_tmp_length; } - { p--; {stack[top++] = 1491;goto st837;} } - goto st1491; -st1491: + { p--; {stack[top++] = 1636;goto st903;} } + goto st1636; +st1636: if ( ++p == pe ) - goto _test_eof1491; -case 1491: + goto _test_eof1636; +case 1636: switch( (*p) ) { - case 32: goto tr4184; - case 59: goto tr4184; + case 32: goto tr4467; + case 59: goto tr4467; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4184; + goto tr4467; } else if ( (*p) >= 9 ) - goto tr4184; + goto tr4467; goto tr78; -tr4184: +tr4467: { p--; {cs = stack[--top];goto _again;} } - goto st1602; -st1602: + goto st1755; +st1755: if ( ++p == pe ) - goto _test_eof1602; -case 1602: + goto _test_eof1755; +case 1755: goto st0; -tr4182: +tr4465: { s->buffer_length = 0; } - goto st1492; -tr4185: + goto st1637; +tr4468: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1492; -tr4176: + goto st1637; +tr4459: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -101707,17 +108193,17 @@ tr4176: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1492; -st1492: + goto st1637; +st1637: if ( ++p == pe ) - goto _test_eof1492; -case 1492: + goto _test_eof1637; +case 1637: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -101737,30 +108223,30 @@ case 1492: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4186; + goto tr4469; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4185; + goto tr4468; goto tr78; -st1493: +st1638: if ( ++p == pe ) - goto _test_eof1493; -case 1493: + goto _test_eof1638; +case 1638: if ( (*p) < 65 ) { if ( 48 <= (*p) && (*p) <= 57 ) - goto tr4187; + goto tr4470; } else if ( (*p) > 90 ) { if ( 97 <= (*p) && (*p) <= 122 ) - goto tr4187; + goto tr4470; } else - goto tr4187; + goto tr4470; goto tr78; -tr4187: - { p--; {stack[top++] = 1494;goto st398;} } - goto st1494; -st1494: +tr4470: + { p--; {stack[top++] = 1639;goto st407;} } + goto st1639; +st1639: if ( ++p == pe ) - goto _test_eof1494; -case 1494: + goto _test_eof1639; +case 1639: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101774,38 +108260,38 @@ case 1494: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1495; - case 32: goto st1495; - case 40: goto tr4189; - case 41: goto tr4190; - case 2058: goto tr4191; - case 2107: goto tr4192; + case 9: goto st1640; + case 32: goto st1640; + case 40: goto tr4472; + case 41: goto tr4473; + case 2058: goto tr4474; + case 2107: goto tr4475; } goto tr78; -tr4189: +tr4472: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1495; -tr4190: + goto st1640; +tr4473: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1495; -tr4191: + goto st1640; +tr4474: { s->line_counter++; } - goto st1495; -tr4218: + goto st1640; +tr4501: { s->buffer[s->buffer_length++] = 0; @@ -101815,18 +108301,18 @@ tr4218: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1495; goto _out;} + {p++; cs = 1640; goto _out;} } } } { s->line_counter++; } - goto st1495; -st1495: + goto st1640; +st1640: if ( ++p == pe ) - goto _test_eof1495; -case 1495: + goto _test_eof1640; +case 1640: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101840,29 +108326,29 @@ case 1495: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1495; - case 32: goto st1495; - case 40: goto tr4189; - case 41: goto tr4190; - case 2058: goto tr4191; - case 2107: goto tr4192; + case 9: goto st1640; + case 32: goto st1640; + case 40: goto tr4472; + case 41: goto tr4473; + case 2058: goto tr4474; + case 2107: goto tr4475; } if ( _widec < 65 ) { if ( 48 <= _widec && _widec <= 57 ) - goto tr4193; + goto tr4476; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4193; + goto tr4476; } else - goto tr4193; + goto tr4476; goto tr78; -tr4193: - { p--; {stack[top++] = 1496;goto st1093;} } - goto st1496; -st1496: +tr4476: + { p--; {stack[top++] = 1641;goto st1238;} } + goto st1641; +st1641: if ( ++p == pe ) - goto _test_eof1496; -case 1496: + goto _test_eof1641; +case 1641: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101876,38 +108362,38 @@ case 1496: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1497; - case 32: goto st1497; - case 40: goto tr4195; - case 41: goto tr4196; - case 2058: goto tr4197; - case 2107: goto tr4198; + case 9: goto st1642; + case 32: goto st1642; + case 40: goto tr4478; + case 41: goto tr4479; + case 2058: goto tr4480; + case 2107: goto tr4481; } goto tr78; -tr4195: +tr4478: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1497; -tr4196: + goto st1642; +tr4479: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1497; -tr4197: + goto st1642; +tr4480: { s->line_counter++; } - goto st1497; -tr4216: + goto st1642; +tr4499: { s->buffer[s->buffer_length++] = 0; @@ -101917,18 +108403,18 @@ tr4216: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1497; goto _out;} + {p++; cs = 1642; goto _out;} } } } { s->line_counter++; } - goto st1497; -st1497: + goto st1642; +st1642: if ( ++p == pe ) - goto _test_eof1497; -case 1497: + goto _test_eof1642; +case 1642: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -101942,17 +108428,17 @@ case 1497: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1497; - case 32: goto st1497; - case 40: goto tr4195; - case 41: goto tr4196; - case 2058: goto tr4197; - case 2107: goto tr4198; + case 9: goto st1642; + case 32: goto st1642; + case 40: goto tr4478; + case 41: goto tr4479; + case 2058: goto tr4480; + case 2107: goto tr4481; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4199; - goto tr2717; -tr4199: + goto tr4482; + goto tr3000; +tr4482: { s->number64 = 0; } @@ -101967,11 +108453,11 @@ tr4199: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1498; -tr4203: + goto st1643; +tr4486: { // Overflow check: 10*(s->number64) + fc - '0' <= UINT64_MAX if ((s->number64 < (UINT64_MAX / 10)) || // Dominant fast check. @@ -101983,14 +108469,14 @@ tr4203: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1498; -st1498: + goto st1643; +st1643: if ( ++p == pe ) - goto _test_eof1498; -case 1498: + goto _test_eof1643; +case 1643: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -102004,40 +108490,40 @@ case 1498: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto tr4200; - case 32: goto tr4200; - case 40: goto tr4201; - case 41: goto tr4202; - case 2058: goto tr4204; - case 2107: goto tr4205; + case 9: goto tr4483; + case 32: goto tr4483; + case 40: goto tr4484; + case 41: goto tr4485; + case 2058: goto tr4487; + case 2107: goto tr4488; } if ( 48 <= _widec && _widec <= 57 ) - goto tr4203; - goto tr2717; -tr4207: + goto tr4486; + goto tr3000; +tr4490: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1499; -tr4208: + goto st1644; +tr4491: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1499; -tr4210: + goto st1644; +tr4493: { s->line_counter++; } - goto st1499; -tr4214: + goto st1644; +tr4497: { s->buffer[s->buffer_length++] = 0; @@ -102047,15 +108533,15 @@ tr4214: // Stop if required from the callback. if (s->state == ZS_STATE_STOP) { - {p++; cs = 1499; goto _out;} + {p++; cs = 1644; goto _out;} } } } { s->line_counter++; } - goto st1499; -tr4200: + goto st1644; +tr4483: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -102063,11 +108549,11 @@ tr4200: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } - goto st1499; -tr4201: + goto st1644; +tr4484: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -102075,18 +108561,18 @@ tr4201: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = true; } - goto st1499; -tr4202: + goto st1644; +tr4485: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -102094,18 +108580,18 @@ tr4202: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {goto st329;} + p--; {goto st338;} } s->multiline = false; } - goto st1499; -tr4204: + goto st1644; +tr4487: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -102113,17 +108599,17 @@ tr4204: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->line_counter++; } - goto st1499; -st1499: + goto st1644; +st1644: if ( ++p == pe ) - goto _test_eof1499; -case 1499: + goto _test_eof1644; +case 1644: _widec = (*p); if ( (*p) > 10 ) { if ( 59 <= (*p) && (*p) <= 59 ) { @@ -102137,71 +108623,71 @@ case 1499: s->multiline ) _widec += 256; } switch( _widec ) { - case 9: goto st1499; - case 32: goto st1499; - case 40: goto tr4207; - case 41: goto tr4208; - case 42: goto tr4209; - case 92: goto tr4209; - case 95: goto tr4209; - case 2058: goto tr4210; - case 2107: goto tr4211; + case 9: goto st1644; + case 32: goto st1644; + case 40: goto tr4490; + case 41: goto tr4491; + case 42: goto tr4492; + case 92: goto tr4492; + case 95: goto tr4492; + case 2058: goto tr4493; + case 2107: goto tr4494; } if ( _widec < 64 ) { if ( 45 <= _widec && _widec <= 57 ) - goto tr4209; + goto tr4492; } else if ( _widec > 90 ) { if ( 97 <= _widec && _widec <= 122 ) - goto tr4209; + goto tr4492; } else - goto tr4209; + goto tr4492; goto tr78; -tr4209: +tr4492: { s->dname = rdata_tail; } - { p--; {stack[top++] = 1500;goto st331;} } - goto st1500; -st1500: + { p--; {stack[top++] = 1645;goto st340;} } + goto st1645; +st1645: if ( ++p == pe ) - goto _test_eof1500; -case 1500: + goto _test_eof1645; +case 1645: switch( (*p) ) { - case 32: goto tr4212; - case 59: goto tr4212; + case 32: goto tr4495; + case 59: goto tr4495; } if ( (*p) > 10 ) { if ( 40 <= (*p) && (*p) <= 41 ) - goto tr4212; + goto tr4495; } else if ( (*p) >= 9 ) - goto tr4212; + goto tr4495; goto tr78; -tr4212: +tr4495: { rdata_tail += s->dname_tmp_length; } { p--; {cs = stack[--top];goto _again;} } - goto st1603; -st1603: + goto st1756; +st1756: if ( ++p == pe ) - goto _test_eof1603; -case 1603: + goto _test_eof1756; +case 1756: goto st0; -tr4211: +tr4494: { s->buffer_length = 0; } - goto st1501; -tr4213: + goto st1646; +tr4496: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1501; -tr4205: + goto st1646; +tr4488: { if (s->number64 <= UINT16_MAX) { uint16_t num16 = htons((uint16_t)s->number64); @@ -102209,17 +108695,56 @@ tr4205: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {goto st329;} + p--; {goto st338;} } } { s->buffer_length = 0; } - goto st1501; -st1501: + goto st1646; +st1646: if ( ++p == pe ) - goto _test_eof1501; -case 1501: + goto _test_eof1646; +case 1646: + _widec = (*p); + if ( (*p) < 10 ) { + if ( (*p) <= 9 ) { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else if ( (*p) > 10 ) { + if ( 11 <= (*p) ) + { _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + } else { + _widec = (short)(1664 + ((*p) - -128)); + if ( + s->multiline ) _widec += 256; + } + if ( _widec == 2058 ) + goto tr4497; + if ( 1920 <= _widec && _widec <= 2175 ) + goto tr4496; + goto tr78; +tr4481: + { + s->buffer_length = 0; + } + goto st1647; +tr4498: + { + if (s->buffer_length < sizeof(s->buffer) - 1) { + s->buffer[s->buffer_length++] = (*p); + } + } + goto st1647; +st1647: + if ( ++p == pe ) + goto _test_eof1647; +case 1647: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -102239,26 +108764,26 @@ case 1501: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4214; + goto tr4499; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4213; + goto tr4498; goto tr78; -tr4198: +tr4475: { s->buffer_length = 0; } - goto st1502; -tr4215: + goto st1648; +tr4500: { if (s->buffer_length < sizeof(s->buffer) - 1) { s->buffer[s->buffer_length++] = (*p); } } - goto st1502; -st1502: + goto st1648; +st1648: if ( ++p == pe ) - goto _test_eof1502; -case 1502: + goto _test_eof1648; +case 1648: _widec = (*p); if ( (*p) < 10 ) { if ( (*p) <= 9 ) { @@ -102278,51 +108803,59 @@ case 1502: s->multiline ) _widec += 256; } if ( _widec == 2058 ) - goto tr4216; + goto tr4501; if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4215; + goto tr4500; goto tr78; -tr4192: - { - s->buffer_length = 0; - } - goto st1503; -tr4217: - { - if (s->buffer_length < sizeof(s->buffer) - 1) { - s->buffer[s->buffer_length++] = (*p); - } +st1649: + if ( ++p == pe ) + goto _test_eof1649; +case 1649: + switch( (*p) ) { + case 32: goto tr4502; + case 59: goto tr4502; } - goto st1503; -st1503: + if ( (*p) < 40 ) { + if ( 9 <= (*p) && (*p) <= 10 ) + goto tr4502; + } else if ( (*p) > 41 ) { + if ( (*p) > 90 ) { + if ( 97 <= (*p) && (*p) <= 122 ) + goto tr4502; + } else if ( (*p) >= 65 ) + goto tr4502; + } else + goto tr4502; + goto tr78; +tr4502: + { p--; {stack[top++] = 1650;goto st1014;} } + goto st1650; +st1650: if ( ++p == pe ) - goto _test_eof1503; -case 1503: - _widec = (*p); - if ( (*p) < 10 ) { - if ( (*p) <= 9 ) { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else if ( (*p) > 10 ) { - if ( 11 <= (*p) ) - { _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; - } - } else { - _widec = (short)(1664 + ((*p) - -128)); - if ( - s->multiline ) _widec += 256; + goto _test_eof1650; +case 1650: + switch( (*p) ) { + case 32: goto tr4503; + case 59: goto tr4503; } - if ( _widec == 2058 ) - goto tr4218; - if ( 1920 <= _widec && _widec <= 2175 ) - goto tr4217; + if ( (*p) > 10 ) { + if ( 40 <= (*p) && (*p) <= 41 ) + goto tr4503; + } else if ( (*p) >= 9 ) + goto tr4503; goto tr78; +tr4503: + { + p--; {cs = stack[--top];goto _again;} } - _test_eof1504: cs = 1504; goto _test_eof; + goto st1757; +st1757: + if ( ++p == pe ) + goto _test_eof1757; +case 1757: + goto st0; + } + _test_eof1651: cs = 1651; goto _test_eof; _test_eof1: cs = 1; goto _test_eof; _test_eof2: cs = 2; goto _test_eof; _test_eof3: cs = 3; goto _test_eof; @@ -102336,7 +108869,7 @@ case 1503: _test_eof11: cs = 11; goto _test_eof; _test_eof12: cs = 12; goto _test_eof; _test_eof13: cs = 13; goto _test_eof; - _test_eof1505: cs = 1505; goto _test_eof; + _test_eof1652: cs = 1652; goto _test_eof; _test_eof14: cs = 14; goto _test_eof; _test_eof15: cs = 15; goto _test_eof; _test_eof16: cs = 16; goto _test_eof; @@ -102512,7 +109045,6 @@ case 1503: _test_eof186: cs = 186; goto _test_eof; _test_eof187: cs = 187; goto _test_eof; _test_eof188: cs = 188; goto _test_eof; - _test_eof1506: cs = 1506; goto _test_eof; _test_eof189: cs = 189; goto _test_eof; _test_eof190: cs = 190; goto _test_eof; _test_eof191: cs = 191; goto _test_eof; @@ -102522,8 +109054,8 @@ case 1503: _test_eof195: cs = 195; goto _test_eof; _test_eof196: cs = 196; goto _test_eof; _test_eof197: cs = 197; goto _test_eof; + _test_eof1653: cs = 1653; goto _test_eof; _test_eof198: cs = 198; goto _test_eof; - _test_eof1507: cs = 1507; goto _test_eof; _test_eof199: cs = 199; goto _test_eof; _test_eof200: cs = 200; goto _test_eof; _test_eof201: cs = 201; goto _test_eof; @@ -102532,37 +109064,38 @@ case 1503: _test_eof204: cs = 204; goto _test_eof; _test_eof205: cs = 205; goto _test_eof; _test_eof206: cs = 206; goto _test_eof; - _test_eof1508: cs = 1508; goto _test_eof; _test_eof207: cs = 207; goto _test_eof; + _test_eof1654: cs = 1654; goto _test_eof; _test_eof208: cs = 208; goto _test_eof; _test_eof209: cs = 209; goto _test_eof; - _test_eof1509: cs = 1509; goto _test_eof; _test_eof210: cs = 210; goto _test_eof; _test_eof211: cs = 211; goto _test_eof; _test_eof212: cs = 212; goto _test_eof; _test_eof213: cs = 213; goto _test_eof; _test_eof214: cs = 214; goto _test_eof; _test_eof215: cs = 215; goto _test_eof; + _test_eof1655: cs = 1655; goto _test_eof; _test_eof216: cs = 216; goto _test_eof; _test_eof217: cs = 217; goto _test_eof; _test_eof218: cs = 218; goto _test_eof; + _test_eof1656: cs = 1656; goto _test_eof; _test_eof219: cs = 219; goto _test_eof; _test_eof220: cs = 220; goto _test_eof; - _test_eof1510: cs = 1510; goto _test_eof; _test_eof221: cs = 221; goto _test_eof; _test_eof222: cs = 222; goto _test_eof; _test_eof223: cs = 223; goto _test_eof; _test_eof224: cs = 224; goto _test_eof; - _test_eof1511: cs = 1511; goto _test_eof; _test_eof225: cs = 225; goto _test_eof; _test_eof226: cs = 226; goto _test_eof; _test_eof227: cs = 227; goto _test_eof; _test_eof228: cs = 228; goto _test_eof; _test_eof229: cs = 229; goto _test_eof; + _test_eof1657: cs = 1657; goto _test_eof; _test_eof230: cs = 230; goto _test_eof; _test_eof231: cs = 231; goto _test_eof; _test_eof232: cs = 232; goto _test_eof; _test_eof233: cs = 233; goto _test_eof; + _test_eof1658: cs = 1658; goto _test_eof; _test_eof234: cs = 234; goto _test_eof; _test_eof235: cs = 235; goto _test_eof; _test_eof236: cs = 236; goto _test_eof; @@ -102573,7 +109106,6 @@ case 1503: _test_eof241: cs = 241; goto _test_eof; _test_eof242: cs = 242; goto _test_eof; _test_eof243: cs = 243; goto _test_eof; - _test_eof1512: cs = 1512; goto _test_eof; _test_eof244: cs = 244; goto _test_eof; _test_eof245: cs = 245; goto _test_eof; _test_eof246: cs = 246; goto _test_eof; @@ -102583,6 +109115,7 @@ case 1503: _test_eof250: cs = 250; goto _test_eof; _test_eof251: cs = 251; goto _test_eof; _test_eof252: cs = 252; goto _test_eof; + _test_eof1659: cs = 1659; goto _test_eof; _test_eof253: cs = 253; goto _test_eof; _test_eof254: cs = 254; goto _test_eof; _test_eof255: cs = 255; goto _test_eof; @@ -102590,7 +109123,6 @@ case 1503: _test_eof257: cs = 257; goto _test_eof; _test_eof258: cs = 258; goto _test_eof; _test_eof259: cs = 259; goto _test_eof; - _test_eof1513: cs = 1513; goto _test_eof; _test_eof260: cs = 260; goto _test_eof; _test_eof261: cs = 261; goto _test_eof; _test_eof262: cs = 262; goto _test_eof; @@ -102600,6 +109132,7 @@ case 1503: _test_eof266: cs = 266; goto _test_eof; _test_eof267: cs = 267; goto _test_eof; _test_eof268: cs = 268; goto _test_eof; + _test_eof1660: cs = 1660; goto _test_eof; _test_eof269: cs = 269; goto _test_eof; _test_eof270: cs = 270; goto _test_eof; _test_eof271: cs = 271; goto _test_eof; @@ -102660,24 +109193,22 @@ case 1503: _test_eof326: cs = 326; goto _test_eof; _test_eof327: cs = 327; goto _test_eof; _test_eof328: cs = 328; goto _test_eof; - _test_eof1514: cs = 1514; goto _test_eof; _test_eof329: cs = 329; goto _test_eof; _test_eof330: cs = 330; goto _test_eof; - _test_eof1515: cs = 1515; goto _test_eof; _test_eof331: cs = 331; goto _test_eof; _test_eof332: cs = 332; goto _test_eof; - _test_eof1516: cs = 1516; goto _test_eof; _test_eof333: cs = 333; goto _test_eof; _test_eof334: cs = 334; goto _test_eof; _test_eof335: cs = 335; goto _test_eof; _test_eof336: cs = 336; goto _test_eof; _test_eof337: cs = 337; goto _test_eof; + _test_eof1661: cs = 1661; goto _test_eof; _test_eof338: cs = 338; goto _test_eof; _test_eof339: cs = 339; goto _test_eof; + _test_eof1662: cs = 1662; goto _test_eof; _test_eof340: cs = 340; goto _test_eof; _test_eof341: cs = 341; goto _test_eof; - _test_eof1517: cs = 1517; goto _test_eof; - _test_eof1518: cs = 1518; goto _test_eof; + _test_eof1663: cs = 1663; goto _test_eof; _test_eof342: cs = 342; goto _test_eof; _test_eof343: cs = 343; goto _test_eof; _test_eof344: cs = 344; goto _test_eof; @@ -102687,13 +109218,14 @@ case 1503: _test_eof348: cs = 348; goto _test_eof; _test_eof349: cs = 349; goto _test_eof; _test_eof350: cs = 350; goto _test_eof; + _test_eof1664: cs = 1664; goto _test_eof; + _test_eof1665: cs = 1665; goto _test_eof; _test_eof351: cs = 351; goto _test_eof; _test_eof352: cs = 352; goto _test_eof; _test_eof353: cs = 353; goto _test_eof; _test_eof354: cs = 354; goto _test_eof; _test_eof355: cs = 355; goto _test_eof; _test_eof356: cs = 356; goto _test_eof; - _test_eof1519: cs = 1519; goto _test_eof; _test_eof357: cs = 357; goto _test_eof; _test_eof358: cs = 358; goto _test_eof; _test_eof359: cs = 359; goto _test_eof; @@ -102703,8 +109235,8 @@ case 1503: _test_eof363: cs = 363; goto _test_eof; _test_eof364: cs = 364; goto _test_eof; _test_eof365: cs = 365; goto _test_eof; + _test_eof1666: cs = 1666; goto _test_eof; _test_eof366: cs = 366; goto _test_eof; - _test_eof1520: cs = 1520; goto _test_eof; _test_eof367: cs = 367; goto _test_eof; _test_eof368: cs = 368; goto _test_eof; _test_eof369: cs = 369; goto _test_eof; @@ -102714,12 +109246,12 @@ case 1503: _test_eof373: cs = 373; goto _test_eof; _test_eof374: cs = 374; goto _test_eof; _test_eof375: cs = 375; goto _test_eof; + _test_eof1667: cs = 1667; goto _test_eof; _test_eof376: cs = 376; goto _test_eof; _test_eof377: cs = 377; goto _test_eof; _test_eof378: cs = 378; goto _test_eof; _test_eof379: cs = 379; goto _test_eof; _test_eof380: cs = 380; goto _test_eof; - _test_eof1521: cs = 1521; goto _test_eof; _test_eof381: cs = 381; goto _test_eof; _test_eof382: cs = 382; goto _test_eof; _test_eof383: cs = 383; goto _test_eof; @@ -102727,9 +109259,9 @@ case 1503: _test_eof385: cs = 385; goto _test_eof; _test_eof386: cs = 386; goto _test_eof; _test_eof387: cs = 387; goto _test_eof; - _test_eof1522: cs = 1522; goto _test_eof; _test_eof388: cs = 388; goto _test_eof; _test_eof389: cs = 389; goto _test_eof; + _test_eof1668: cs = 1668; goto _test_eof; _test_eof390: cs = 390; goto _test_eof; _test_eof391: cs = 391; goto _test_eof; _test_eof392: cs = 392; goto _test_eof; @@ -102737,22 +109269,23 @@ case 1503: _test_eof394: cs = 394; goto _test_eof; _test_eof395: cs = 395; goto _test_eof; _test_eof396: cs = 396; goto _test_eof; - _test_eof1523: cs = 1523; goto _test_eof; - _test_eof1524: cs = 1524; goto _test_eof; - _test_eof1525: cs = 1525; goto _test_eof; + _test_eof1669: cs = 1669; goto _test_eof; _test_eof397: cs = 397; goto _test_eof; _test_eof398: cs = 398; goto _test_eof; _test_eof399: cs = 399; goto _test_eof; - _test_eof1526: cs = 1526; goto _test_eof; _test_eof400: cs = 400; goto _test_eof; _test_eof401: cs = 401; goto _test_eof; _test_eof402: cs = 402; goto _test_eof; _test_eof403: cs = 403; goto _test_eof; _test_eof404: cs = 404; goto _test_eof; _test_eof405: cs = 405; goto _test_eof; + _test_eof1670: cs = 1670; goto _test_eof; + _test_eof1671: cs = 1671; goto _test_eof; + _test_eof1672: cs = 1672; goto _test_eof; _test_eof406: cs = 406; goto _test_eof; _test_eof407: cs = 407; goto _test_eof; _test_eof408: cs = 408; goto _test_eof; + _test_eof1673: cs = 1673; goto _test_eof; _test_eof409: cs = 409; goto _test_eof; _test_eof410: cs = 410; goto _test_eof; _test_eof411: cs = 411; goto _test_eof; @@ -102930,12 +109463,9 @@ case 1503: _test_eof583: cs = 583; goto _test_eof; _test_eof584: cs = 584; goto _test_eof; _test_eof585: cs = 585; goto _test_eof; - _test_eof1527: cs = 1527; goto _test_eof; - _test_eof1528: cs = 1528; goto _test_eof; _test_eof586: cs = 586; goto _test_eof; _test_eof587: cs = 587; goto _test_eof; _test_eof588: cs = 588; goto _test_eof; - _test_eof1529: cs = 1529; goto _test_eof; _test_eof589: cs = 589; goto _test_eof; _test_eof590: cs = 590; goto _test_eof; _test_eof591: cs = 591; goto _test_eof; @@ -102951,9 +109481,12 @@ case 1503: _test_eof601: cs = 601; goto _test_eof; _test_eof602: cs = 602; goto _test_eof; _test_eof603: cs = 603; goto _test_eof; + _test_eof1674: cs = 1674; goto _test_eof; + _test_eof1675: cs = 1675; goto _test_eof; _test_eof604: cs = 604; goto _test_eof; _test_eof605: cs = 605; goto _test_eof; _test_eof606: cs = 606; goto _test_eof; + _test_eof1676: cs = 1676; goto _test_eof; _test_eof607: cs = 607; goto _test_eof; _test_eof608: cs = 608; goto _test_eof; _test_eof609: cs = 609; goto _test_eof; @@ -103116,32 +109649,23 @@ case 1503: _test_eof766: cs = 766; goto _test_eof; _test_eof767: cs = 767; goto _test_eof; _test_eof768: cs = 768; goto _test_eof; - _test_eof1530: cs = 1530; goto _test_eof; - _test_eof1531: cs = 1531; goto _test_eof; - _test_eof1532: cs = 1532; goto _test_eof; _test_eof769: cs = 769; goto _test_eof; _test_eof770: cs = 770; goto _test_eof; _test_eof771: cs = 771; goto _test_eof; _test_eof772: cs = 772; goto _test_eof; _test_eof773: cs = 773; goto _test_eof; - _test_eof1533: cs = 1533; goto _test_eof; _test_eof774: cs = 774; goto _test_eof; _test_eof775: cs = 775; goto _test_eof; _test_eof776: cs = 776; goto _test_eof; _test_eof777: cs = 777; goto _test_eof; - _test_eof1534: cs = 1534; goto _test_eof; - _test_eof1535: cs = 1535; goto _test_eof; - _test_eof1536: cs = 1536; goto _test_eof; _test_eof778: cs = 778; goto _test_eof; _test_eof779: cs = 779; goto _test_eof; - _test_eof1537: cs = 1537; goto _test_eof; _test_eof780: cs = 780; goto _test_eof; _test_eof781: cs = 781; goto _test_eof; _test_eof782: cs = 782; goto _test_eof; _test_eof783: cs = 783; goto _test_eof; _test_eof784: cs = 784; goto _test_eof; _test_eof785: cs = 785; goto _test_eof; - _test_eof1538: cs = 1538; goto _test_eof; _test_eof786: cs = 786; goto _test_eof; _test_eof787: cs = 787; goto _test_eof; _test_eof788: cs = 788; goto _test_eof; @@ -103152,23 +109676,32 @@ case 1503: _test_eof793: cs = 793; goto _test_eof; _test_eof794: cs = 794; goto _test_eof; _test_eof795: cs = 795; goto _test_eof; + _test_eof1677: cs = 1677; goto _test_eof; + _test_eof1678: cs = 1678; goto _test_eof; + _test_eof1679: cs = 1679; goto _test_eof; _test_eof796: cs = 796; goto _test_eof; _test_eof797: cs = 797; goto _test_eof; _test_eof798: cs = 798; goto _test_eof; _test_eof799: cs = 799; goto _test_eof; _test_eof800: cs = 800; goto _test_eof; + _test_eof1680: cs = 1680; goto _test_eof; _test_eof801: cs = 801; goto _test_eof; _test_eof802: cs = 802; goto _test_eof; _test_eof803: cs = 803; goto _test_eof; _test_eof804: cs = 804; goto _test_eof; + _test_eof1681: cs = 1681; goto _test_eof; + _test_eof1682: cs = 1682; goto _test_eof; + _test_eof1683: cs = 1683; goto _test_eof; _test_eof805: cs = 805; goto _test_eof; _test_eof806: cs = 806; goto _test_eof; + _test_eof1684: cs = 1684; goto _test_eof; _test_eof807: cs = 807; goto _test_eof; _test_eof808: cs = 808; goto _test_eof; _test_eof809: cs = 809; goto _test_eof; _test_eof810: cs = 810; goto _test_eof; _test_eof811: cs = 811; goto _test_eof; _test_eof812: cs = 812; goto _test_eof; + _test_eof1685: cs = 1685; goto _test_eof; _test_eof813: cs = 813; goto _test_eof; _test_eof814: cs = 814; goto _test_eof; _test_eof815: cs = 815; goto _test_eof; @@ -103202,8 +109735,6 @@ case 1503: _test_eof843: cs = 843; goto _test_eof; _test_eof844: cs = 844; goto _test_eof; _test_eof845: cs = 845; goto _test_eof; - _test_eof1539: cs = 1539; goto _test_eof; - _test_eof1540: cs = 1540; goto _test_eof; _test_eof846: cs = 846; goto _test_eof; _test_eof847: cs = 847; goto _test_eof; _test_eof848: cs = 848; goto _test_eof; @@ -103213,7 +109744,6 @@ case 1503: _test_eof852: cs = 852; goto _test_eof; _test_eof853: cs = 853; goto _test_eof; _test_eof854: cs = 854; goto _test_eof; - _test_eof1541: cs = 1541; goto _test_eof; _test_eof855: cs = 855; goto _test_eof; _test_eof856: cs = 856; goto _test_eof; _test_eof857: cs = 857; goto _test_eof; @@ -103242,6 +109772,7 @@ case 1503: _test_eof880: cs = 880; goto _test_eof; _test_eof881: cs = 881; goto _test_eof; _test_eof882: cs = 882; goto _test_eof; + _test_eof1686: cs = 1686; goto _test_eof; _test_eof883: cs = 883; goto _test_eof; _test_eof884: cs = 884; goto _test_eof; _test_eof885: cs = 885; goto _test_eof; @@ -103271,6 +109802,8 @@ case 1503: _test_eof909: cs = 909; goto _test_eof; _test_eof910: cs = 910; goto _test_eof; _test_eof911: cs = 911; goto _test_eof; + _test_eof1687: cs = 1687; goto _test_eof; + _test_eof1688: cs = 1688; goto _test_eof; _test_eof912: cs = 912; goto _test_eof; _test_eof913: cs = 913; goto _test_eof; _test_eof914: cs = 914; goto _test_eof; @@ -103280,6 +109813,7 @@ case 1503: _test_eof918: cs = 918; goto _test_eof; _test_eof919: cs = 919; goto _test_eof; _test_eof920: cs = 920; goto _test_eof; + _test_eof1689: cs = 1689; goto _test_eof; _test_eof921: cs = 921; goto _test_eof; _test_eof922: cs = 922; goto _test_eof; _test_eof923: cs = 923; goto _test_eof; @@ -103309,7 +109843,6 @@ case 1503: _test_eof947: cs = 947; goto _test_eof; _test_eof948: cs = 948; goto _test_eof; _test_eof949: cs = 949; goto _test_eof; - _test_eof1542: cs = 1542; goto _test_eof; _test_eof950: cs = 950; goto _test_eof; _test_eof951: cs = 951; goto _test_eof; _test_eof952: cs = 952; goto _test_eof; @@ -103377,6 +109910,9 @@ case 1503: _test_eof1014: cs = 1014; goto _test_eof; _test_eof1015: cs = 1015; goto _test_eof; _test_eof1016: cs = 1016; goto _test_eof; + _test_eof1690: cs = 1690; goto _test_eof; + _test_eof1691: cs = 1691; goto _test_eof; + _test_eof1692: cs = 1692; goto _test_eof; _test_eof1017: cs = 1017; goto _test_eof; _test_eof1018: cs = 1018; goto _test_eof; _test_eof1019: cs = 1019; goto _test_eof; @@ -103407,6 +109943,7 @@ case 1503: _test_eof1044: cs = 1044; goto _test_eof; _test_eof1045: cs = 1045; goto _test_eof; _test_eof1046: cs = 1046; goto _test_eof; + _test_eof1693: cs = 1693; goto _test_eof; _test_eof1047: cs = 1047; goto _test_eof; _test_eof1048: cs = 1048; goto _test_eof; _test_eof1049: cs = 1049; goto _test_eof; @@ -103414,7 +109951,6 @@ case 1503: _test_eof1051: cs = 1051; goto _test_eof; _test_eof1052: cs = 1052; goto _test_eof; _test_eof1053: cs = 1053; goto _test_eof; - _test_eof1543: cs = 1543; goto _test_eof; _test_eof1054: cs = 1054; goto _test_eof; _test_eof1055: cs = 1055; goto _test_eof; _test_eof1056: cs = 1056; goto _test_eof; @@ -103423,6 +109959,7 @@ case 1503: _test_eof1059: cs = 1059; goto _test_eof; _test_eof1060: cs = 1060; goto _test_eof; _test_eof1061: cs = 1061; goto _test_eof; + _test_eof1694: cs = 1694; goto _test_eof; _test_eof1062: cs = 1062; goto _test_eof; _test_eof1063: cs = 1063; goto _test_eof; _test_eof1064: cs = 1064; goto _test_eof; @@ -103456,7 +109993,7 @@ case 1503: _test_eof1092: cs = 1092; goto _test_eof; _test_eof1093: cs = 1093; goto _test_eof; _test_eof1094: cs = 1094; goto _test_eof; - _test_eof1544: cs = 1544; goto _test_eof; + _test_eof1695: cs = 1695; goto _test_eof; _test_eof1095: cs = 1095; goto _test_eof; _test_eof1096: cs = 1096; goto _test_eof; _test_eof1097: cs = 1097; goto _test_eof; @@ -103465,10 +110002,8 @@ case 1503: _test_eof1100: cs = 1100; goto _test_eof; _test_eof1101: cs = 1101; goto _test_eof; _test_eof1102: cs = 1102; goto _test_eof; - _test_eof1545: cs = 1545; goto _test_eof; _test_eof1103: cs = 1103; goto _test_eof; _test_eof1104: cs = 1104; goto _test_eof; - _test_eof1546: cs = 1546; goto _test_eof; _test_eof1105: cs = 1105; goto _test_eof; _test_eof1106: cs = 1106; goto _test_eof; _test_eof1107: cs = 1107; goto _test_eof; @@ -103483,7 +110018,6 @@ case 1503: _test_eof1116: cs = 1116; goto _test_eof; _test_eof1117: cs = 1117; goto _test_eof; _test_eof1118: cs = 1118; goto _test_eof; - _test_eof1547: cs = 1547; goto _test_eof; _test_eof1119: cs = 1119; goto _test_eof; _test_eof1120: cs = 1120; goto _test_eof; _test_eof1121: cs = 1121; goto _test_eof; @@ -103506,30 +110040,23 @@ case 1503: _test_eof1138: cs = 1138; goto _test_eof; _test_eof1139: cs = 1139; goto _test_eof; _test_eof1140: cs = 1140; goto _test_eof; - _test_eof1548: cs = 1548; goto _test_eof; _test_eof1141: cs = 1141; goto _test_eof; _test_eof1142: cs = 1142; goto _test_eof; _test_eof1143: cs = 1143; goto _test_eof; _test_eof1144: cs = 1144; goto _test_eof; _test_eof1145: cs = 1145; goto _test_eof; - _test_eof1549: cs = 1549; goto _test_eof; _test_eof1146: cs = 1146; goto _test_eof; _test_eof1147: cs = 1147; goto _test_eof; _test_eof1148: cs = 1148; goto _test_eof; _test_eof1149: cs = 1149; goto _test_eof; _test_eof1150: cs = 1150; goto _test_eof; - _test_eof1550: cs = 1550; goto _test_eof; _test_eof1151: cs = 1151; goto _test_eof; _test_eof1152: cs = 1152; goto _test_eof; _test_eof1153: cs = 1153; goto _test_eof; _test_eof1154: cs = 1154; goto _test_eof; _test_eof1155: cs = 1155; goto _test_eof; - _test_eof1551: cs = 1551; goto _test_eof; - _test_eof1552: cs = 1552; goto _test_eof; - _test_eof1553: cs = 1553; goto _test_eof; _test_eof1156: cs = 1156; goto _test_eof; _test_eof1157: cs = 1157; goto _test_eof; - _test_eof1554: cs = 1554; goto _test_eof; _test_eof1158: cs = 1158; goto _test_eof; _test_eof1159: cs = 1159; goto _test_eof; _test_eof1160: cs = 1160; goto _test_eof; @@ -103557,29 +110084,21 @@ case 1503: _test_eof1182: cs = 1182; goto _test_eof; _test_eof1183: cs = 1183; goto _test_eof; _test_eof1184: cs = 1184; goto _test_eof; - _test_eof1555: cs = 1555; goto _test_eof; - _test_eof1556: cs = 1556; goto _test_eof; - _test_eof1557: cs = 1557; goto _test_eof; _test_eof1185: cs = 1185; goto _test_eof; _test_eof1186: cs = 1186; goto _test_eof; _test_eof1187: cs = 1187; goto _test_eof; - _test_eof1558: cs = 1558; goto _test_eof; - _test_eof1559: cs = 1559; goto _test_eof; _test_eof1188: cs = 1188; goto _test_eof; _test_eof1189: cs = 1189; goto _test_eof; _test_eof1190: cs = 1190; goto _test_eof; _test_eof1191: cs = 1191; goto _test_eof; - _test_eof1560: cs = 1560; goto _test_eof; - _test_eof1561: cs = 1561; goto _test_eof; _test_eof1192: cs = 1192; goto _test_eof; _test_eof1193: cs = 1193; goto _test_eof; _test_eof1194: cs = 1194; goto _test_eof; _test_eof1195: cs = 1195; goto _test_eof; - _test_eof1562: cs = 1562; goto _test_eof; - _test_eof1563: cs = 1563; goto _test_eof; _test_eof1196: cs = 1196; goto _test_eof; _test_eof1197: cs = 1197; goto _test_eof; _test_eof1198: cs = 1198; goto _test_eof; + _test_eof1696: cs = 1696; goto _test_eof; _test_eof1199: cs = 1199; goto _test_eof; _test_eof1200: cs = 1200; goto _test_eof; _test_eof1201: cs = 1201; goto _test_eof; @@ -103602,7 +110121,6 @@ case 1503: _test_eof1218: cs = 1218; goto _test_eof; _test_eof1219: cs = 1219; goto _test_eof; _test_eof1220: cs = 1220; goto _test_eof; - _test_eof1564: cs = 1564; goto _test_eof; _test_eof1221: cs = 1221; goto _test_eof; _test_eof1222: cs = 1222; goto _test_eof; _test_eof1223: cs = 1223; goto _test_eof; @@ -103618,11 +110136,11 @@ case 1503: _test_eof1233: cs = 1233; goto _test_eof; _test_eof1234: cs = 1234; goto _test_eof; _test_eof1235: cs = 1235; goto _test_eof; - _test_eof1565: cs = 1565; goto _test_eof; _test_eof1236: cs = 1236; goto _test_eof; _test_eof1237: cs = 1237; goto _test_eof; _test_eof1238: cs = 1238; goto _test_eof; _test_eof1239: cs = 1239; goto _test_eof; + _test_eof1697: cs = 1697; goto _test_eof; _test_eof1240: cs = 1240; goto _test_eof; _test_eof1241: cs = 1241; goto _test_eof; _test_eof1242: cs = 1242; goto _test_eof; @@ -103631,9 +110149,10 @@ case 1503: _test_eof1245: cs = 1245; goto _test_eof; _test_eof1246: cs = 1246; goto _test_eof; _test_eof1247: cs = 1247; goto _test_eof; + _test_eof1698: cs = 1698; goto _test_eof; _test_eof1248: cs = 1248; goto _test_eof; - _test_eof1566: cs = 1566; goto _test_eof; _test_eof1249: cs = 1249; goto _test_eof; + _test_eof1699: cs = 1699; goto _test_eof; _test_eof1250: cs = 1250; goto _test_eof; _test_eof1251: cs = 1251; goto _test_eof; _test_eof1252: cs = 1252; goto _test_eof; @@ -103644,13 +110163,11 @@ case 1503: _test_eof1257: cs = 1257; goto _test_eof; _test_eof1258: cs = 1258; goto _test_eof; _test_eof1259: cs = 1259; goto _test_eof; - _test_eof1567: cs = 1567; goto _test_eof; - _test_eof1568: cs = 1568; goto _test_eof; _test_eof1260: cs = 1260; goto _test_eof; _test_eof1261: cs = 1261; goto _test_eof; _test_eof1262: cs = 1262; goto _test_eof; - _test_eof1569: cs = 1569; goto _test_eof; _test_eof1263: cs = 1263; goto _test_eof; + _test_eof1700: cs = 1700; goto _test_eof; _test_eof1264: cs = 1264; goto _test_eof; _test_eof1265: cs = 1265; goto _test_eof; _test_eof1266: cs = 1266; goto _test_eof; @@ -103660,9 +110177,6 @@ case 1503: _test_eof1270: cs = 1270; goto _test_eof; _test_eof1271: cs = 1271; goto _test_eof; _test_eof1272: cs = 1272; goto _test_eof; - _test_eof1570: cs = 1570; goto _test_eof; - _test_eof1571: cs = 1571; goto _test_eof; - _test_eof1572: cs = 1572; goto _test_eof; _test_eof1273: cs = 1273; goto _test_eof; _test_eof1274: cs = 1274; goto _test_eof; _test_eof1275: cs = 1275; goto _test_eof; @@ -103674,35 +110188,32 @@ case 1503: _test_eof1281: cs = 1281; goto _test_eof; _test_eof1282: cs = 1282; goto _test_eof; _test_eof1283: cs = 1283; goto _test_eof; - _test_eof1573: cs = 1573; goto _test_eof; - _test_eof1574: cs = 1574; goto _test_eof; - _test_eof1575: cs = 1575; goto _test_eof; _test_eof1284: cs = 1284; goto _test_eof; _test_eof1285: cs = 1285; goto _test_eof; + _test_eof1701: cs = 1701; goto _test_eof; _test_eof1286: cs = 1286; goto _test_eof; _test_eof1287: cs = 1287; goto _test_eof; _test_eof1288: cs = 1288; goto _test_eof; _test_eof1289: cs = 1289; goto _test_eof; _test_eof1290: cs = 1290; goto _test_eof; + _test_eof1702: cs = 1702; goto _test_eof; _test_eof1291: cs = 1291; goto _test_eof; _test_eof1292: cs = 1292; goto _test_eof; _test_eof1293: cs = 1293; goto _test_eof; _test_eof1294: cs = 1294; goto _test_eof; _test_eof1295: cs = 1295; goto _test_eof; - _test_eof1576: cs = 1576; goto _test_eof; + _test_eof1703: cs = 1703; goto _test_eof; _test_eof1296: cs = 1296; goto _test_eof; _test_eof1297: cs = 1297; goto _test_eof; _test_eof1298: cs = 1298; goto _test_eof; - _test_eof1577: cs = 1577; goto _test_eof; - _test_eof1578: cs = 1578; goto _test_eof; _test_eof1299: cs = 1299; goto _test_eof; - _test_eof1579: cs = 1579; goto _test_eof; - _test_eof1580: cs = 1580; goto _test_eof; _test_eof1300: cs = 1300; goto _test_eof; - _test_eof1581: cs = 1581; goto _test_eof; - _test_eof1582: cs = 1582; goto _test_eof; + _test_eof1704: cs = 1704; goto _test_eof; + _test_eof1705: cs = 1705; goto _test_eof; + _test_eof1706: cs = 1706; goto _test_eof; _test_eof1301: cs = 1301; goto _test_eof; _test_eof1302: cs = 1302; goto _test_eof; + _test_eof1707: cs = 1707; goto _test_eof; _test_eof1303: cs = 1303; goto _test_eof; _test_eof1304: cs = 1304; goto _test_eof; _test_eof1305: cs = 1305; goto _test_eof; @@ -103730,20 +110241,28 @@ case 1503: _test_eof1327: cs = 1327; goto _test_eof; _test_eof1328: cs = 1328; goto _test_eof; _test_eof1329: cs = 1329; goto _test_eof; + _test_eof1708: cs = 1708; goto _test_eof; + _test_eof1709: cs = 1709; goto _test_eof; + _test_eof1710: cs = 1710; goto _test_eof; _test_eof1330: cs = 1330; goto _test_eof; _test_eof1331: cs = 1331; goto _test_eof; _test_eof1332: cs = 1332; goto _test_eof; + _test_eof1711: cs = 1711; goto _test_eof; + _test_eof1712: cs = 1712; goto _test_eof; _test_eof1333: cs = 1333; goto _test_eof; _test_eof1334: cs = 1334; goto _test_eof; _test_eof1335: cs = 1335; goto _test_eof; _test_eof1336: cs = 1336; goto _test_eof; + _test_eof1713: cs = 1713; goto _test_eof; + _test_eof1714: cs = 1714; goto _test_eof; _test_eof1337: cs = 1337; goto _test_eof; _test_eof1338: cs = 1338; goto _test_eof; _test_eof1339: cs = 1339; goto _test_eof; _test_eof1340: cs = 1340; goto _test_eof; + _test_eof1715: cs = 1715; goto _test_eof; + _test_eof1716: cs = 1716; goto _test_eof; _test_eof1341: cs = 1341; goto _test_eof; _test_eof1342: cs = 1342; goto _test_eof; - _test_eof1583: cs = 1583; goto _test_eof; _test_eof1343: cs = 1343; goto _test_eof; _test_eof1344: cs = 1344; goto _test_eof; _test_eof1345: cs = 1345; goto _test_eof; @@ -103755,7 +110274,6 @@ case 1503: _test_eof1351: cs = 1351; goto _test_eof; _test_eof1352: cs = 1352; goto _test_eof; _test_eof1353: cs = 1353; goto _test_eof; - _test_eof1584: cs = 1584; goto _test_eof; _test_eof1354: cs = 1354; goto _test_eof; _test_eof1355: cs = 1355; goto _test_eof; _test_eof1356: cs = 1356; goto _test_eof; @@ -103764,13 +110282,12 @@ case 1503: _test_eof1359: cs = 1359; goto _test_eof; _test_eof1360: cs = 1360; goto _test_eof; _test_eof1361: cs = 1361; goto _test_eof; - _test_eof1585: cs = 1585; goto _test_eof; _test_eof1362: cs = 1362; goto _test_eof; _test_eof1363: cs = 1363; goto _test_eof; _test_eof1364: cs = 1364; goto _test_eof; _test_eof1365: cs = 1365; goto _test_eof; + _test_eof1717: cs = 1717; goto _test_eof; _test_eof1366: cs = 1366; goto _test_eof; - _test_eof1586: cs = 1586; goto _test_eof; _test_eof1367: cs = 1367; goto _test_eof; _test_eof1368: cs = 1368; goto _test_eof; _test_eof1369: cs = 1369; goto _test_eof; @@ -103785,11 +110302,11 @@ case 1503: _test_eof1378: cs = 1378; goto _test_eof; _test_eof1379: cs = 1379; goto _test_eof; _test_eof1380: cs = 1380; goto _test_eof; + _test_eof1718: cs = 1718; goto _test_eof; _test_eof1381: cs = 1381; goto _test_eof; _test_eof1382: cs = 1382; goto _test_eof; _test_eof1383: cs = 1383; goto _test_eof; _test_eof1384: cs = 1384; goto _test_eof; - _test_eof1587: cs = 1587; goto _test_eof; _test_eof1385: cs = 1385; goto _test_eof; _test_eof1386: cs = 1386; goto _test_eof; _test_eof1387: cs = 1387; goto _test_eof; @@ -103799,6 +110316,7 @@ case 1503: _test_eof1391: cs = 1391; goto _test_eof; _test_eof1392: cs = 1392; goto _test_eof; _test_eof1393: cs = 1393; goto _test_eof; + _test_eof1719: cs = 1719; goto _test_eof; _test_eof1394: cs = 1394; goto _test_eof; _test_eof1395: cs = 1395; goto _test_eof; _test_eof1396: cs = 1396; goto _test_eof; @@ -103809,11 +110327,13 @@ case 1503: _test_eof1401: cs = 1401; goto _test_eof; _test_eof1402: cs = 1402; goto _test_eof; _test_eof1403: cs = 1403; goto _test_eof; - _test_eof1588: cs = 1588; goto _test_eof; _test_eof1404: cs = 1404; goto _test_eof; + _test_eof1720: cs = 1720; goto _test_eof; + _test_eof1721: cs = 1721; goto _test_eof; _test_eof1405: cs = 1405; goto _test_eof; _test_eof1406: cs = 1406; goto _test_eof; _test_eof1407: cs = 1407; goto _test_eof; + _test_eof1722: cs = 1722; goto _test_eof; _test_eof1408: cs = 1408; goto _test_eof; _test_eof1409: cs = 1409; goto _test_eof; _test_eof1410: cs = 1410; goto _test_eof; @@ -103824,10 +110344,10 @@ case 1503: _test_eof1415: cs = 1415; goto _test_eof; _test_eof1416: cs = 1416; goto _test_eof; _test_eof1417: cs = 1417; goto _test_eof; + _test_eof1723: cs = 1723; goto _test_eof; + _test_eof1724: cs = 1724; goto _test_eof; + _test_eof1725: cs = 1725; goto _test_eof; _test_eof1418: cs = 1418; goto _test_eof; - _test_eof1589: cs = 1589; goto _test_eof; - _test_eof1590: cs = 1590; goto _test_eof; - _test_eof1591: cs = 1591; goto _test_eof; _test_eof1419: cs = 1419; goto _test_eof; _test_eof1420: cs = 1420; goto _test_eof; _test_eof1421: cs = 1421; goto _test_eof; @@ -103836,9 +110356,11 @@ case 1503: _test_eof1424: cs = 1424; goto _test_eof; _test_eof1425: cs = 1425; goto _test_eof; _test_eof1426: cs = 1426; goto _test_eof; - _test_eof1592: cs = 1592; goto _test_eof; _test_eof1427: cs = 1427; goto _test_eof; _test_eof1428: cs = 1428; goto _test_eof; + _test_eof1726: cs = 1726; goto _test_eof; + _test_eof1727: cs = 1727; goto _test_eof; + _test_eof1728: cs = 1728; goto _test_eof; _test_eof1429: cs = 1429; goto _test_eof; _test_eof1430: cs = 1430; goto _test_eof; _test_eof1431: cs = 1431; goto _test_eof; @@ -103848,18 +110370,21 @@ case 1503: _test_eof1435: cs = 1435; goto _test_eof; _test_eof1436: cs = 1436; goto _test_eof; _test_eof1437: cs = 1437; goto _test_eof; - _test_eof1593: cs = 1593; goto _test_eof; - _test_eof1594: cs = 1594; goto _test_eof; - _test_eof1595: cs = 1595; goto _test_eof; _test_eof1438: cs = 1438; goto _test_eof; _test_eof1439: cs = 1439; goto _test_eof; _test_eof1440: cs = 1440; goto _test_eof; + _test_eof1729: cs = 1729; goto _test_eof; _test_eof1441: cs = 1441; goto _test_eof; _test_eof1442: cs = 1442; goto _test_eof; _test_eof1443: cs = 1443; goto _test_eof; + _test_eof1730: cs = 1730; goto _test_eof; + _test_eof1731: cs = 1731; goto _test_eof; _test_eof1444: cs = 1444; goto _test_eof; - _test_eof1596: cs = 1596; goto _test_eof; + _test_eof1732: cs = 1732; goto _test_eof; + _test_eof1733: cs = 1733; goto _test_eof; _test_eof1445: cs = 1445; goto _test_eof; + _test_eof1734: cs = 1734; goto _test_eof; + _test_eof1735: cs = 1735; goto _test_eof; _test_eof1446: cs = 1446; goto _test_eof; _test_eof1447: cs = 1447; goto _test_eof; _test_eof1448: cs = 1448; goto _test_eof; @@ -103872,7 +110397,6 @@ case 1503: _test_eof1455: cs = 1455; goto _test_eof; _test_eof1456: cs = 1456; goto _test_eof; _test_eof1457: cs = 1457; goto _test_eof; - _test_eof1597: cs = 1597; goto _test_eof; _test_eof1458: cs = 1458; goto _test_eof; _test_eof1459: cs = 1459; goto _test_eof; _test_eof1460: cs = 1460; goto _test_eof; @@ -103880,51 +110404,214 @@ case 1503: _test_eof1462: cs = 1462; goto _test_eof; _test_eof1463: cs = 1463; goto _test_eof; _test_eof1464: cs = 1464; goto _test_eof; - _test_eof1598: cs = 1598; goto _test_eof; _test_eof1465: cs = 1465; goto _test_eof; _test_eof1466: cs = 1466; goto _test_eof; _test_eof1467: cs = 1467; goto _test_eof; _test_eof1468: cs = 1468; goto _test_eof; _test_eof1469: cs = 1469; goto _test_eof; _test_eof1470: cs = 1470; goto _test_eof; - _test_eof1599: cs = 1599; goto _test_eof; _test_eof1471: cs = 1471; goto _test_eof; _test_eof1472: cs = 1472; goto _test_eof; _test_eof1473: cs = 1473; goto _test_eof; _test_eof1474: cs = 1474; goto _test_eof; _test_eof1475: cs = 1475; goto _test_eof; _test_eof1476: cs = 1476; goto _test_eof; + _test_eof1477: cs = 1477; goto _test_eof; + _test_eof1478: cs = 1478; goto _test_eof; + _test_eof1479: cs = 1479; goto _test_eof; + _test_eof1480: cs = 1480; goto _test_eof; + _test_eof1481: cs = 1481; goto _test_eof; + _test_eof1482: cs = 1482; goto _test_eof; + _test_eof1483: cs = 1483; goto _test_eof; + _test_eof1484: cs = 1484; goto _test_eof; + _test_eof1485: cs = 1485; goto _test_eof; + _test_eof1486: cs = 1486; goto _test_eof; + _test_eof1487: cs = 1487; goto _test_eof; + _test_eof1736: cs = 1736; goto _test_eof; + _test_eof1488: cs = 1488; goto _test_eof; + _test_eof1489: cs = 1489; goto _test_eof; + _test_eof1490: cs = 1490; goto _test_eof; + _test_eof1491: cs = 1491; goto _test_eof; + _test_eof1492: cs = 1492; goto _test_eof; + _test_eof1493: cs = 1493; goto _test_eof; + _test_eof1494: cs = 1494; goto _test_eof; + _test_eof1495: cs = 1495; goto _test_eof; + _test_eof1496: cs = 1496; goto _test_eof; + _test_eof1497: cs = 1497; goto _test_eof; + _test_eof1498: cs = 1498; goto _test_eof; + _test_eof1737: cs = 1737; goto _test_eof; + _test_eof1499: cs = 1499; goto _test_eof; + _test_eof1500: cs = 1500; goto _test_eof; + _test_eof1501: cs = 1501; goto _test_eof; + _test_eof1502: cs = 1502; goto _test_eof; + _test_eof1503: cs = 1503; goto _test_eof; + _test_eof1504: cs = 1504; goto _test_eof; + _test_eof1505: cs = 1505; goto _test_eof; + _test_eof1506: cs = 1506; goto _test_eof; + _test_eof1738: cs = 1738; goto _test_eof; + _test_eof1507: cs = 1507; goto _test_eof; + _test_eof1508: cs = 1508; goto _test_eof; + _test_eof1509: cs = 1509; goto _test_eof; + _test_eof1510: cs = 1510; goto _test_eof; + _test_eof1511: cs = 1511; goto _test_eof; + _test_eof1739: cs = 1739; goto _test_eof; + _test_eof1512: cs = 1512; goto _test_eof; + _test_eof1513: cs = 1513; goto _test_eof; + _test_eof1514: cs = 1514; goto _test_eof; + _test_eof1515: cs = 1515; goto _test_eof; + _test_eof1516: cs = 1516; goto _test_eof; + _test_eof1517: cs = 1517; goto _test_eof; + _test_eof1518: cs = 1518; goto _test_eof; + _test_eof1519: cs = 1519; goto _test_eof; + _test_eof1520: cs = 1520; goto _test_eof; + _test_eof1521: cs = 1521; goto _test_eof; + _test_eof1522: cs = 1522; goto _test_eof; + _test_eof1523: cs = 1523; goto _test_eof; + _test_eof1524: cs = 1524; goto _test_eof; + _test_eof1525: cs = 1525; goto _test_eof; + _test_eof1526: cs = 1526; goto _test_eof; + _test_eof1527: cs = 1527; goto _test_eof; + _test_eof1528: cs = 1528; goto _test_eof; + _test_eof1529: cs = 1529; goto _test_eof; + _test_eof1740: cs = 1740; goto _test_eof; + _test_eof1530: cs = 1530; goto _test_eof; + _test_eof1531: cs = 1531; goto _test_eof; + _test_eof1532: cs = 1532; goto _test_eof; + _test_eof1533: cs = 1533; goto _test_eof; + _test_eof1534: cs = 1534; goto _test_eof; + _test_eof1535: cs = 1535; goto _test_eof; + _test_eof1536: cs = 1536; goto _test_eof; + _test_eof1537: cs = 1537; goto _test_eof; + _test_eof1538: cs = 1538; goto _test_eof; + _test_eof1539: cs = 1539; goto _test_eof; + _test_eof1540: cs = 1540; goto _test_eof; + _test_eof1541: cs = 1541; goto _test_eof; + _test_eof1542: cs = 1542; goto _test_eof; + _test_eof1543: cs = 1543; goto _test_eof; + _test_eof1544: cs = 1544; goto _test_eof; + _test_eof1545: cs = 1545; goto _test_eof; + _test_eof1546: cs = 1546; goto _test_eof; + _test_eof1547: cs = 1547; goto _test_eof; + _test_eof1548: cs = 1548; goto _test_eof; + _test_eof1741: cs = 1741; goto _test_eof; + _test_eof1549: cs = 1549; goto _test_eof; + _test_eof1550: cs = 1550; goto _test_eof; + _test_eof1551: cs = 1551; goto _test_eof; + _test_eof1552: cs = 1552; goto _test_eof; + _test_eof1553: cs = 1553; goto _test_eof; + _test_eof1554: cs = 1554; goto _test_eof; + _test_eof1555: cs = 1555; goto _test_eof; + _test_eof1556: cs = 1556; goto _test_eof; + _test_eof1557: cs = 1557; goto _test_eof; + _test_eof1558: cs = 1558; goto _test_eof; + _test_eof1559: cs = 1559; goto _test_eof; + _test_eof1560: cs = 1560; goto _test_eof; + _test_eof1561: cs = 1561; goto _test_eof; + _test_eof1562: cs = 1562; goto _test_eof; + _test_eof1563: cs = 1563; goto _test_eof; + _test_eof1742: cs = 1742; goto _test_eof; + _test_eof1743: cs = 1743; goto _test_eof; + _test_eof1744: cs = 1744; goto _test_eof; + _test_eof1564: cs = 1564; goto _test_eof; + _test_eof1565: cs = 1565; goto _test_eof; + _test_eof1566: cs = 1566; goto _test_eof; + _test_eof1567: cs = 1567; goto _test_eof; + _test_eof1568: cs = 1568; goto _test_eof; + _test_eof1569: cs = 1569; goto _test_eof; + _test_eof1570: cs = 1570; goto _test_eof; + _test_eof1571: cs = 1571; goto _test_eof; + _test_eof1745: cs = 1745; goto _test_eof; + _test_eof1572: cs = 1572; goto _test_eof; + _test_eof1573: cs = 1573; goto _test_eof; + _test_eof1574: cs = 1574; goto _test_eof; + _test_eof1575: cs = 1575; goto _test_eof; + _test_eof1576: cs = 1576; goto _test_eof; + _test_eof1577: cs = 1577; goto _test_eof; + _test_eof1578: cs = 1578; goto _test_eof; + _test_eof1579: cs = 1579; goto _test_eof; + _test_eof1580: cs = 1580; goto _test_eof; + _test_eof1581: cs = 1581; goto _test_eof; + _test_eof1582: cs = 1582; goto _test_eof; + _test_eof1746: cs = 1746; goto _test_eof; + _test_eof1747: cs = 1747; goto _test_eof; + _test_eof1748: cs = 1748; goto _test_eof; + _test_eof1583: cs = 1583; goto _test_eof; + _test_eof1584: cs = 1584; goto _test_eof; + _test_eof1585: cs = 1585; goto _test_eof; + _test_eof1586: cs = 1586; goto _test_eof; + _test_eof1587: cs = 1587; goto _test_eof; + _test_eof1588: cs = 1588; goto _test_eof; + _test_eof1589: cs = 1589; goto _test_eof; + _test_eof1749: cs = 1749; goto _test_eof; + _test_eof1590: cs = 1590; goto _test_eof; + _test_eof1591: cs = 1591; goto _test_eof; + _test_eof1592: cs = 1592; goto _test_eof; + _test_eof1593: cs = 1593; goto _test_eof; + _test_eof1594: cs = 1594; goto _test_eof; + _test_eof1595: cs = 1595; goto _test_eof; + _test_eof1596: cs = 1596; goto _test_eof; + _test_eof1597: cs = 1597; goto _test_eof; + _test_eof1598: cs = 1598; goto _test_eof; + _test_eof1599: cs = 1599; goto _test_eof; _test_eof1600: cs = 1600; goto _test_eof; - _test_eof1477: cs = 1477; goto _test_eof; - _test_eof1478: cs = 1478; goto _test_eof; - _test_eof1479: cs = 1479; goto _test_eof; - _test_eof1480: cs = 1480; goto _test_eof; - _test_eof1481: cs = 1481; goto _test_eof; - _test_eof1482: cs = 1482; goto _test_eof; - _test_eof1483: cs = 1483; goto _test_eof; - _test_eof1484: cs = 1484; goto _test_eof; _test_eof1601: cs = 1601; goto _test_eof; - _test_eof1485: cs = 1485; goto _test_eof; - _test_eof1486: cs = 1486; goto _test_eof; - _test_eof1487: cs = 1487; goto _test_eof; - _test_eof1488: cs = 1488; goto _test_eof; - _test_eof1489: cs = 1489; goto _test_eof; - _test_eof1490: cs = 1490; goto _test_eof; - _test_eof1491: cs = 1491; goto _test_eof; _test_eof1602: cs = 1602; goto _test_eof; - _test_eof1492: cs = 1492; goto _test_eof; - _test_eof1493: cs = 1493; goto _test_eof; - _test_eof1494: cs = 1494; goto _test_eof; - _test_eof1495: cs = 1495; goto _test_eof; - _test_eof1496: cs = 1496; goto _test_eof; - _test_eof1497: cs = 1497; goto _test_eof; - _test_eof1498: cs = 1498; goto _test_eof; - _test_eof1499: cs = 1499; goto _test_eof; - _test_eof1500: cs = 1500; goto _test_eof; + _test_eof1750: cs = 1750; goto _test_eof; _test_eof1603: cs = 1603; goto _test_eof; - _test_eof1501: cs = 1501; goto _test_eof; - _test_eof1502: cs = 1502; goto _test_eof; - _test_eof1503: cs = 1503; goto _test_eof; + _test_eof1604: cs = 1604; goto _test_eof; + _test_eof1605: cs = 1605; goto _test_eof; + _test_eof1606: cs = 1606; goto _test_eof; + _test_eof1607: cs = 1607; goto _test_eof; + _test_eof1608: cs = 1608; goto _test_eof; + _test_eof1609: cs = 1609; goto _test_eof; + _test_eof1751: cs = 1751; goto _test_eof; + _test_eof1610: cs = 1610; goto _test_eof; + _test_eof1611: cs = 1611; goto _test_eof; + _test_eof1612: cs = 1612; goto _test_eof; + _test_eof1613: cs = 1613; goto _test_eof; + _test_eof1614: cs = 1614; goto _test_eof; + _test_eof1615: cs = 1615; goto _test_eof; + _test_eof1752: cs = 1752; goto _test_eof; + _test_eof1616: cs = 1616; goto _test_eof; + _test_eof1617: cs = 1617; goto _test_eof; + _test_eof1618: cs = 1618; goto _test_eof; + _test_eof1619: cs = 1619; goto _test_eof; + _test_eof1620: cs = 1620; goto _test_eof; + _test_eof1621: cs = 1621; goto _test_eof; + _test_eof1753: cs = 1753; goto _test_eof; + _test_eof1622: cs = 1622; goto _test_eof; + _test_eof1623: cs = 1623; goto _test_eof; + _test_eof1624: cs = 1624; goto _test_eof; + _test_eof1625: cs = 1625; goto _test_eof; + _test_eof1626: cs = 1626; goto _test_eof; + _test_eof1627: cs = 1627; goto _test_eof; + _test_eof1628: cs = 1628; goto _test_eof; + _test_eof1629: cs = 1629; goto _test_eof; + _test_eof1754: cs = 1754; goto _test_eof; + _test_eof1630: cs = 1630; goto _test_eof; + _test_eof1631: cs = 1631; goto _test_eof; + _test_eof1632: cs = 1632; goto _test_eof; + _test_eof1633: cs = 1633; goto _test_eof; + _test_eof1634: cs = 1634; goto _test_eof; + _test_eof1635: cs = 1635; goto _test_eof; + _test_eof1636: cs = 1636; goto _test_eof; + _test_eof1755: cs = 1755; goto _test_eof; + _test_eof1637: cs = 1637; goto _test_eof; + _test_eof1638: cs = 1638; goto _test_eof; + _test_eof1639: cs = 1639; goto _test_eof; + _test_eof1640: cs = 1640; goto _test_eof; + _test_eof1641: cs = 1641; goto _test_eof; + _test_eof1642: cs = 1642; goto _test_eof; + _test_eof1643: cs = 1643; goto _test_eof; + _test_eof1644: cs = 1644; goto _test_eof; + _test_eof1645: cs = 1645; goto _test_eof; + _test_eof1756: cs = 1756; goto _test_eof; + _test_eof1646: cs = 1646; goto _test_eof; + _test_eof1647: cs = 1647; goto _test_eof; + _test_eof1648: cs = 1648; goto _test_eof; + _test_eof1649: cs = 1649; goto _test_eof; + _test_eof1650: cs = 1650; goto _test_eof; + _test_eof1757: cs = 1757; goto _test_eof; _test_eof: {} if ( p == eof ) @@ -103932,133 +110619,117 @@ case 1503: switch ( cs ) { case 7: case 8: - case 198: - case 222: - case 224: - case 280: - case 298: - case 324: - case 380: - case 381: - case 387: + case 207: + case 231: + case 233: + case 289: + case 307: + case 333: + case 389: + case 390: + case 396: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 331: - case 332: - case 333: - case 338: - case 339: + case 340: + case 341: + case 342: + case 347: + case 348: { WARN(ZS_BAD_DNAME_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 207: + case 216: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 348: + case 357: { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 353: - case 361: + case 362: + case 370: { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 362: - case 363: - case 364: + case 371: + case 372: case 373: + case 382: { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 375: + case 384: { ERR(ZS_BAD_INCLUDE_FILENAME); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 378: - case 388: + case 387: + case 397: { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1508: + case 1655: { NOERR; } break; - case 199: - case 200: - case 201: - case 202: - case 203: - case 204: - case 205: - case 206: - case 245: - case 246: - case 247: - case 248: - case 249: - case 250: - case 251: - case 252: - case 253: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 254: + case 255: + case 256: + case 257: + case 258: + case 259: + case 260: + case 261: + case 262: { ERR(ZS_BAD_DIRECTIVE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} - } - break; - case 391: - case 392: - case 393: - case 394: - case 395: - case 396: - case 397: - { - WARN(ZS_BAD_BASE64_CHAR); - p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 398: - case 399: case 400: case 401: case 402: @@ -104066,6 +110737,13 @@ goto st329;} case 404: case 405: case 406: + { + WARN(ZS_BAD_BASE64_CHAR); + p--; { if ( p == pe ) + goto _test_eof338; +goto st338;} + } + break; case 407: case 408: case 409: @@ -104221,6 +110899,8 @@ goto st329;} case 559: case 560: case 561: + case 562: + case 563: case 564: case 565: case 566: @@ -104236,16 +110916,7 @@ goto st329;} case 576: case 577: case 578: - { - WARN(ZS_UNSUPPORTED_TYPE); - p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} - } - break; case 579: - case 580: - case 581: case 582: case 583: case 584: @@ -104261,6 +110932,13 @@ goto st329;} case 594: case 595: case 596: + { + WARN(ZS_UNSUPPORTED_TYPE); + p--; { if ( p == pe ) + goto _test_eof338; +goto st338;} + } + break; case 597: case 598: case 599: @@ -104426,78 +111104,53 @@ goto st329;} case 759: case 760: case 761: - { - WARN(ZS_BAD_BITMAP); - p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} - } - break; case 762: + case 763: + case 764: + case 765: + case 766: + case 767: + case 768: case 769: case 770: case 771: + case 772: + case 773: + case 774: + case 775: + case 776: + case 777: case 778: + case 779: case 780: + case 781: + case 782: + case 783: + case 784: + case 785: + case 786: + case 787: + case 788: + { + WARN(ZS_BAD_BITMAP); + p--; { if ( p == pe ) + goto _test_eof338; +goto st338;} + } + break; + case 789: + case 796: + case 797: + case 798: + case 805: + case 807: { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 837: - case 838: - case 839: - case 840: - case 841: - case 842: - case 843: - case 844: - case 845: - case 846: - case 847: - case 848: - case 849: - case 850: - case 851: - case 852: - case 853: - case 854: - case 855: - case 856: - case 857: - case 858: - case 859: - case 860: - case 861: - case 862: - case 863: - case 864: - case 865: - case 866: - case 867: - case 868: - case 869: - case 870: - case 871: - case 872: - case 873: - case 874: - case 875: - case 876: - case 877: - case 878: - case 879: - case 880: - case 887: - case 888: - case 889: - case 890: - case 891: - case 898: - case 899: - case 902: case 903: case 904: case 905: @@ -104537,96 +111190,18 @@ goto st329;} case 939: case 940: case 941: + case 942: + case 943: + case 944: + case 945: case 946: - case 947: - { - WARN(ZS_BAD_SVCB_PARAM); - p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} - } - break; - case 781: - case 782: - case 783: - case 784: - case 785: - case 786: - case 787: - case 788: - case 789: - case 790: - case 791: - case 792: - case 793: - case 794: - case 795: - case 796: - case 797: - case 798: - case 799: - case 800: - case 801: - case 802: - case 803: - case 804: - case 805: - case 806: - case 807: - case 808: - case 809: - case 810: - case 813: - case 814: - case 815: - case 816: - case 817: - case 818: - case 819: - case 820: - case 821: - case 822: - case 823: - case 824: - case 825: - case 826: - case 827: - case 828: - case 829: - case 830: - case 831: - case 832: - case 833: - case 834: - case 835: - case 836: - { - WARN(ZS_BAD_SVCB_MANDATORY); - p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} - } - break; - case 948: - case 949: - case 950: - case 951: - case 952: case 953: case 954: case 955: case 956: case 957: - case 958: - case 959: - case 960: - case 961: - case 962: - case 963: case 964: case 965: - case 966: - case 967: case 968: case 969: case 970: @@ -104667,10 +111242,6 @@ goto st329;} case 1005: case 1006: case 1007: - case 1008: - case 1009: - case 1010: - case 1011: case 1012: case 1013: case 1014: @@ -104701,8 +111272,6 @@ goto st329;} case 1039: case 1040: case 1041: - case 1042: - case 1043: case 1044: case 1045: case 1046: @@ -104711,13 +111280,6 @@ goto st329;} case 1049: case 1050: case 1051: - { - WARN(ZS_BAD_ALGORITHM); - p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} - } - break; case 1052: case 1053: case 1054: @@ -104739,19 +111301,7 @@ goto st329;} case 1070: case 1071: case 1072: - case 1073: - case 1074: - case 1075: - case 1076: - case 1077: - case 1078: case 1079: - case 1080: - case 1081: - case 1082: - case 1083: - case 1084: - case 1085: case 1086: case 1087: case 1088: @@ -104760,10 +111310,108 @@ goto st329;} case 1091: case 1092: { - WARN(ZS_BAD_CERT_TYPE); + WARN(ZS_BAD_SVCB_PARAM); + p--; { if ( p == pe ) + goto _test_eof338; +goto st338;} + } + break; + case 808: + case 809: + case 810: + case 811: + case 812: + case 813: + case 814: + case 815: + case 816: + case 817: + case 818: + case 819: + case 820: + case 821: + case 822: + case 823: + case 824: + case 825: + case 826: + case 827: + case 828: + case 829: + case 830: + case 831: + case 832: + case 833: + case 834: + case 835: + case 836: + case 837: + case 840: + case 841: + case 842: + case 843: + case 844: + case 845: + case 846: + case 847: + case 848: + case 849: + case 850: + case 851: + case 852: + case 853: + case 854: + case 855: + case 856: + case 857: + case 858: + case 859: + case 860: + case 861: + case 862: + case 863: + case 864: + case 865: + case 866: + case 867: + case 868: + case 869: + case 870: + case 871: + case 872: + case 873: + case 874: + case 875: + case 876: + case 877: + case 878: + case 879: + case 880: + case 881: + case 882: + case 883: + case 884: + case 887: + case 888: + case 889: + case 890: + case 891: + case 892: + case 893: + case 894: + case 895: + case 896: + case 897: + case 898: + case 899: + case 900: + case 901: + case 902: + { + WARN(ZS_BAD_SVCB_MANDATORY); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; case 1093: @@ -104774,26 +111422,39 @@ goto st329;} case 1098: case 1099: case 1100: - { - WARN(ZS_BAD_DSYNC_SCHEME); - p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} - } - break; - case 5: - case 9: - case 10: - case 303: + case 1101: + case 1102: case 1103: case 1104: case 1105: case 1106: case 1107: case 1108: + case 1109: + case 1110: + case 1111: + case 1112: + case 1113: + case 1114: + case 1115: + case 1116: + case 1117: + case 1118: + case 1119: + case 1120: + case 1121: case 1122: + case 1123: + case 1124: + case 1125: case 1126: + case 1127: + case 1128: + case 1129: case 1130: + case 1131: + case 1132: + case 1133: case 1134: case 1135: case 1136: @@ -104807,14 +111468,94 @@ goto st329;} case 1144: case 1145: case 1146: + case 1147: + case 1148: case 1149: case 1150: case 1151: + case 1152: + case 1153: + case 1154: + case 1155: + case 1156: + case 1157: + case 1158: + case 1159: + case 1160: + case 1161: + case 1162: + case 1163: + case 1164: + case 1165: + case 1166: + case 1167: + case 1168: + case 1169: + case 1170: + case 1171: + case 1172: + case 1173: + case 1174: + case 1175: + case 1176: + case 1177: + case 1178: + case 1179: + case 1180: + case 1181: + case 1182: + case 1183: + case 1184: + case 1185: + case 1186: + case 1187: + case 1188: + case 1189: + case 1190: + case 1191: + case 1192: + case 1193: + case 1194: + case 1195: + case 1196: + { + WARN(ZS_BAD_ALGORITHM); + p--; { if ( p == pe ) + goto _test_eof338; +goto st338;} + } + break; + case 1197: + case 1198: + case 1199: + case 1200: + case 1201: + case 1202: + case 1203: + case 1204: + case 1205: + case 1206: + case 1207: + case 1208: + case 1209: + case 1210: + case 1211: + case 1212: + case 1213: + case 1214: + case 1215: + case 1216: + case 1217: + case 1218: case 1219: case 1220: case 1221: case 1222: case 1223: + case 1224: + case 1225: + case 1226: + case 1227: case 1228: case 1229: case 1230: @@ -104825,83 +111566,102 @@ goto st329;} case 1235: case 1236: case 1237: + { + WARN(ZS_BAD_CERT_TYPE); + p--; { if ( p == pe ) + goto _test_eof338; +goto st338;} + } + break; case 1238: case 1239: case 1240: case 1241: case 1242: + case 1243: + case 1244: case 1245: - case 1246: - case 1247: + { + WARN(ZS_BAD_DSYNC_SCHEME); + p--; { if ( p == pe ) + goto _test_eof338; +goto st338;} + } + break; + case 5: + case 9: + case 10: + case 312: case 1248: case 1249: case 1250: case 1251: - case 1259: - case 1265: - case 1266: - case 1273: - case 1274: + case 1252: + case 1253: + case 1267: + case 1271: case 1275: + case 1279: + case 1280: + case 1281: + case 1282: + case 1283: case 1284: case 1285: - case 1324: - case 1325: - case 1326: - case 1327: - case 1328: - case 1339: - case 1340: - case 1341: - case 1342: - case 1343: - case 1344: - case 1345: - case 1346: - case 1347: - case 1348: - case 1349: - case 1350: - case 1351: - case 1352: - case 1353: - case 1358: - case 1359: - case 1360: - case 1361: - case 1362: - case 1363: + case 1286: + case 1287: + case 1288: + case 1289: + case 1290: + case 1291: + case 1294: + case 1295: + case 1296: case 1364: case 1365: case 1366: + case 1367: + case 1368: + case 1373: + case 1374: + case 1375: + case 1376: + case 1377: + case 1378: + case 1379: + case 1380: + case 1381: + case 1382: + case 1383: case 1384: + case 1385: + case 1386: + case 1387: case 1390: + case 1391: + case 1392: case 1393: case 1394: case 1395: - case 1406: - case 1407: - case 1408: + case 1396: + case 1404: + case 1410: + case 1411: + case 1418: case 1419: case 1420: - case 1421: - case 1426: - case 1427: - case 1438: - case 1439: - case 1440: - case 1445: - case 1458: - case 1475: - case 1476: - case 1477: - case 1478: - case 1481: - case 1482: - case 1483: + case 1429: + case 1430: + case 1469: + case 1470: + case 1471: + case 1472: + case 1473: case 1484: case 1485: case 1486: + case 1487: + case 1488: case 1489: case 1490: case 1491: @@ -104910,16 +111670,65 @@ goto st329;} case 1494: case 1495: case 1496: - case 1499: - case 1500: - case 1501: - case 1502: + case 1497: + case 1498: case 1503: + case 1504: + case 1505: + case 1506: + case 1507: + case 1508: + case 1509: + case 1510: + case 1511: + case 1529: + case 1535: + case 1538: + case 1539: + case 1540: + case 1551: + case 1552: + case 1553: + case 1564: + case 1565: + case 1566: + case 1571: + case 1572: + case 1583: + case 1584: + case 1585: + case 1590: + case 1603: + case 1620: + case 1621: + case 1622: + case 1623: + case 1626: + case 1627: + case 1628: + case 1629: + case 1630: + case 1631: + case 1634: + case 1635: + case 1636: + case 1637: + case 1638: + case 1639: + case 1640: + case 1641: + case 1644: + case 1645: + case 1646: + case 1647: + case 1648: + case 1649: + case 1650: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; case 3: @@ -104945,233 +111754,231 @@ goto st329;} case 45: case 46: case 47: - case 49: + case 48: case 50: case 51: + case 52: case 54: case 55: - case 57: + case 56: case 58: case 59: case 60: - case 62: + case 63: case 64: - case 65: case 66: case 67: + case 68: case 69: - case 70: case 71: case 73: case 74: case 75: case 76: - case 77: case 78: case 79: case 80: - case 81: case 82: + case 83: case 84: case 85: + case 86: + case 87: case 88: case 89: + case 90: case 91: case 93: - case 96: + case 94: case 97: case 98: - case 99: + case 100: case 102: - case 103: - case 104: case 105: + case 106: case 107: - case 110: + case 108: + case 111: + case 112: case 113: case 114: - case 115: case 116: - case 118: case 119: - case 120: - case 121: case 122: case 123: case 124: case 125: - case 126: + case 127: case 128: case 129: + case 130: case 131: case 132: case 133: case 134: case 135: - case 136: - case 139: + case 137: + case 138: case 140: case 141: + case 142: + case 143: case 144: case 145: - case 146: - case 147: case 148: + case 149: case 150: - case 152: + case 153: case 154: + case 155: case 156: case 157: - case 158: - case 160: + case 159: case 161: case 163: - case 164: case 165: + case 166: case 167: case 169: case 170: + case 172: case 173: case 174: case 176: - case 177: case 178: case 179: - case 180: case 182: case 183: - case 184: case 185: case 186: + case 187: case 188: - case 190: + case 189: case 191: + case 192: + case 193: + case 194: + case 195: case 197: - case 212: - case 216: - case 283: - case 284: - case 286: - case 287: - case 288: - case 290: - case 291: + case 199: + case 200: + case 206: + case 221: + case 225: case 292: - case 294: + case 293: + case 295: + case 296: + case 297: + case 299: + case 300: + case 301: + case 303: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 356: - case 357: + case 365: + case 366: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 365: - case 366: - case 367: - case 372: + case 374: + case 375: + case 376: + case 381: { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 334: - case 335: - case 336: - case 337: + case 343: + case 344: + case 345: + case 346: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_DNAME_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 368: - case 369: - case 370: - case 371: + case 377: + case 378: + case 379: + case 380: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { ERR(ZS_BAD_ORIGIN); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 382: - case 383: - case 384: - case 385: + case 391: + case 392: + case 393: + case 394: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 277: + case 286: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 307: - case 308: - case 309: - case 310: - case 311: - case 312: - case 313: - case 314: - case 315: case 316: case 317: case 318: @@ -105180,549 +111987,574 @@ goto st329;} case 321: case 322: case 323: + case 324: + case 325: case 326: + case 327: + case 328: + case 329: + case 330: + case 331: + case 332: + case 335: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 354: + case 363: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 562: - case 563: + case 580: + case 581: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 763: - case 764: - case 772: - case 773: - case 779: + case 790: + case 791: + case 799: + case 800: + case 806: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 900: - case 901: - case 942: - case 943: - case 944: - case 945: + case 966: + case 967: + case 1008: + case 1009: + case 1010: + case 1011: + case 1042: + case 1043: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_SVCB_PARAM); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 811: - case 812: + case 838: + case 839: + case 885: + case 886: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_SVCB_MANDATORY); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1109: - case 1110: - case 1111: - case 1113: - case 1115: - case 1117: - case 1147: - case 1148: - case 1213: - case 1214: - case 1215: - case 1216: - case 1217: - case 1218: - case 1224: - case 1225: - case 1226: - case 1227: - case 1243: - case 1244: - case 1263: - case 1264: - case 1267: - case 1268: - case 1276: - case 1277: - case 1278: - case 1279: - case 1286: - case 1287: - case 1329: - case 1330: - case 1331: - case 1332: - case 1337: - case 1338: - case 1354: - case 1355: - case 1356: - case 1357: - case 1367: - case 1368: + case 1254: + case 1255: + case 1256: + case 1258: + case 1260: + case 1262: + case 1292: + case 1293: + case 1358: + case 1359: + case 1360: + case 1361: + case 1362: + case 1363: case 1369: case 1370: case 1371: case 1372: - case 1396: - case 1397: - case 1398: - case 1399: - case 1400: - case 1401: + case 1388: + case 1389: + case 1408: case 1409: - case 1410: - case 1411: case 1412: case 1413: - case 1414: + case 1421: case 1422: case 1423: case 1424: - case 1425: - case 1428: - case 1429: - case 1430: case 1431: case 1432: - case 1433: - case 1441: - case 1442: - case 1446: - case 1447: - case 1471: - case 1472: - case 1473: case 1474: - case 1479: - case 1480: - case 1487: - case 1488: - case 1497: - case 1498: + case 1475: + case 1476: + case 1477: + case 1482: + case 1483: + case 1499: + case 1500: + case 1501: + case 1502: + case 1512: + case 1513: + case 1514: + case 1515: + case 1516: + case 1517: + case 1541: + case 1542: + case 1543: + case 1544: + case 1545: + case 1546: + case 1554: + case 1555: + case 1556: + case 1557: + case 1558: + case 1559: + case 1567: + case 1568: + case 1569: + case 1570: + case 1573: + case 1574: + case 1575: + case 1576: + case 1577: + case 1578: + case 1586: + case 1587: + case 1591: + case 1592: + case 1616: + case 1617: + case 1618: + case 1619: + case 1624: + case 1625: + case 1632: + case 1633: + case 1642: + case 1643: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 171: - case 192: - case 208: - case 211: + case 180: + case 201: + case 217: + case 220: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1333: - case 1334: - case 1335: - case 1336: + case 1478: + case 1479: + case 1480: + case 1481: { WARN(ZS_BAD_TIMESTAMP_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 340: - case 341: - case 346: - case 347: + case 349: + case 350: + case 355: + case 356: { WARN(ZS_BAD_TEXT_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1152: - case 1153: - case 1154: - case 1155: + case 1297: + case 1298: + case 1299: + case 1300: { s->long_string = false; } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 376: + case 385: { ERR(ZS_BAD_INCLUDE_FILENAME); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 377: - case 379: case 386: + case 388: + case 395: { ERR(ZS_BAD_INCLUDE_ORIGIN); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 881: - case 882: - case 883: - case 884: - case 885: - case 886: - case 892: - case 893: - case 894: - case 895: - case 896: - case 897: + case 947: + case 948: + case 949: + case 950: + case 951: + case 952: + case 958: + case 959: + case 960: + case 961: + case 962: + case 963: + case 1073: + case 1074: + case 1075: + case 1076: + case 1077: + case 1078: + case 1080: + case 1081: + case 1082: + case 1083: + case 1084: + case 1085: + { + WARN(ZS_BAD_ADDRESS_CHAR); + p--; { if ( p == pe ) + goto _test_eof338; +goto st338;} + } + { + WARN(ZS_BAD_SVCB_PARAM); + p--; { if ( p == pe ) + goto _test_eof338; +goto st338;} + } + break; + case 1246: + case 1247: + case 1301: + case 1302: + case 1588: + case 1589: + { + WARN(ZS_BAD_ADDRESS_CHAR); + p--; { if ( p == pe ) + goto _test_eof338; +goto st338;} + } { - WARN(ZS_BAD_ADDRESS_CHAR); + WARN(ZS_BAD_RDATA); + p--; { if ( p == pe ) + goto _test_eof338; +goto st338;} + } + break; + case 1397: + case 1398: + case 1399: + case 1402: + case 1403: + case 1405: + { + WARN(ZS_BAD_APL); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { - WARN(ZS_BAD_SVCB_PARAM); + WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1101: - case 1102: - case 1156: - case 1157: - case 1443: - case 1444: + case 1414: + case 1415: + case 1416: + case 1417: + case 1425: + case 1426: + case 1427: + case 1428: + case 1518: + case 1519: + case 1536: + case 1537: + case 1547: + case 1548: + case 1549: + case 1550: + case 1560: + case 1561: + case 1562: + case 1563: + case 1579: + case 1580: + case 1581: + case 1582: + case 1593: + case 1594: + case 1595: + case 1596: + case 1598: + case 1599: + case 1600: + case 1601: + case 1604: + case 1605: + case 1607: + case 1608: + case 1610: + case 1611: + case 1613: + case 1614: { - WARN(ZS_BAD_ADDRESS_CHAR); + WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1252: - case 1253: - case 1254: - case 1257: - case 1258: - case 1260: + case 1520: + case 1521: + case 1522: + case 1523: + case 1524: + case 1525: + case 1526: + case 1527: + case 1528: + case 1530: + case 1531: + case 1532: + case 1533: + case 1534: { - WARN(ZS_BAD_APL); + WARN(ZS_BAD_BASE32HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1269: - case 1270: - case 1271: - case 1272: - case 1280: - case 1281: - case 1282: - case 1283: - case 1373: - case 1374: - case 1391: - case 1392: - case 1402: - case 1403: - case 1404: - case 1405: - case 1415: - case 1416: - case 1417: - case 1418: + case 1433: case 1434: - case 1435: - case 1436: case 1437: + case 1446: + case 1447: case 1448: - case 1449: - case 1450: - case 1451: case 1453: case 1454: case 1455: - case 1456: - case 1459: case 1460: + case 1461: case 1462: - case 1463: case 1465: - case 1466: + case 1467: case 1468: - case 1469: { - WARN(ZS_BAD_HEX_CHAR); + WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1375: - case 1376: - case 1377: - case 1378: - case 1379: - case 1380: - case 1381: - case 1382: - case 1383: - case 1385: - case 1386: - case 1387: - case 1388: - case 1389: + case 1439: + case 1440: + case 1441: + case 1442: + case 1443: + case 1444: + case 1445: { - WARN(ZS_BAD_BASE32HEX_CHAR); + WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1288: - case 1289: - case 1292: - case 1301: - case 1302: case 1303: + case 1304: + case 1305: + case 1306: + case 1307: case 1308: case 1309: case 1310: + case 1311: + case 1312: + case 1313: + case 1314: case 1315: case 1316: case 1317: + case 1318: + case 1319: case 1320: + case 1321: case 1322: case 1323: - { - WARN(ZS_BAD_GATEWAY); - p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} - } - { - WARN(ZS_BAD_RDATA); - p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} - } - break; - case 1294: - case 1295: - case 1296: - case 1297: - case 1298: - case 1299: - case 1300: - { - WARN(ZS_BAD_GATEWAY_KEY); - p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} - } - { - WARN(ZS_BAD_RDATA); - p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} - } - break; - case 1158: - case 1159: - case 1160: - case 1161: - case 1162: - case 1163: - case 1164: - case 1165: - case 1166: - case 1167: - case 1168: - case 1169: - case 1170: - case 1171: - case 1172: - case 1173: - case 1174: - case 1175: - case 1176: - case 1177: - case 1178: - case 1179: - case 1180: - case 1181: - case 1182: - case 1183: - case 1184: - case 1185: - case 1186: - case 1187: - case 1188: - case 1189: - case 1190: - case 1191: - case 1192: - case 1193: - case 1194: - case 1195: - case 1196: - case 1197: - case 1198: - case 1199: - case 1200: - case 1201: - case 1202: - case 1203: - case 1204: - case 1205: - case 1206: - case 1207: - case 1208: - case 1209: - case 1210: - case 1211: - case 1212: + case 1324: + case 1325: + case 1326: + case 1327: + case 1328: + case 1329: + case 1330: + case 1331: + case 1332: + case 1333: + case 1334: + case 1335: + case 1336: + case 1337: + case 1338: + case 1339: + case 1340: + case 1341: + case 1342: + case 1343: + case 1344: + case 1345: + case 1346: + case 1347: + case 1348: + case 1349: + case 1350: + case 1351: + case 1352: + case 1353: + case 1354: + case 1355: + case 1356: + case 1357: { WARN(ZS_BAD_LOC_DATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; case 6: @@ -105731,48 +112563,48 @@ goto st329;} case 13: case 20: case 21: - case 220: - case 223: - case 243: - case 279: - case 281: - case 282: - case 296: - case 297: - case 299: - case 300: - case 301: - case 302: + case 229: + case 232: + case 252: + case 288: + case 290: + case 291: case 305: case 306: + case 308: + case 309: + case 310: + case 311: + case 314: + case 315: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; case 16: - case 257: - case 325: - case 327: + case 266: + case 334: + case 336: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; case 4: @@ -105783,470 +112615,463 @@ goto st329;} case 35: case 39: case 44: - case 48: - case 52: + case 49: case 53: - case 56: + case 57: case 61: - case 63: - case 68: + case 62: + case 65: + case 70: case 72: - case 83: - case 86: - case 87: - case 90: + case 77: + case 81: case 92: - case 94: case 95: - case 100: + case 96: + case 99: case 101: - case 106: - case 108: + case 103: + case 104: case 109: - case 111: - case 112: + case 110: + case 115: case 117: - case 127: - case 130: - case 137: - case 138: - case 142: - case 143: - case 149: + case 118: + case 120: + case 121: + case 126: + case 136: + case 139: + case 146: + case 147: case 151: - case 153: - case 155: - case 159: + case 152: + case 158: + case 160: case 162: - case 166: + case 164: case 168: + case 171: case 175: - case 181: - case 187: - case 285: - case 289: - case 293: - case 295: + case 177: + case 184: + case 190: + case 196: + case 294: + case 298: + case 302: + case 304: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 254: + case 263: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 217: + case 226: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1290: - case 1291: - case 1304: - case 1305: - case 1311: - case 1312: - case 1318: - case 1319: + case 1435: + case 1436: + case 1449: + case 1450: + case 1456: + case 1457: + case 1463: + case 1464: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; case 1: - case 189: - case 221: - case 256: + case 198: + case 230: + case 265: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 172: - case 218: + case 181: + case 227: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 359: + case 368: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1112: - case 1114: - case 1116: - case 1118: - case 1119: - case 1120: - case 1121: - case 1123: - case 1124: - case 1125: - case 1127: - case 1128: - case 1129: - case 1131: - case 1132: - case 1133: + case 1257: + case 1259: + case 1261: + case 1263: + case 1264: + case 1265: + case 1266: + case 1268: + case 1269: + case 1270: + case 1272: + case 1273: + case 1274: + case 1276: + case 1277: + case 1278: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; case 2: - case 193: - case 194: - case 195: - case 196: - case 213: - case 214: - case 215: + case 202: + case 203: + case 204: + case 205: + case 222: + case 223: + case 224: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 342: - case 343: - case 344: - case 345: - case 349: - case 350: case 351: case 352: + case 353: + case 354: + case 358: + case 359: + case 360: + case 361: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_TEXT_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_TEXT); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1255: - case 1256: - case 1261: - case 1262: + case 1400: + case 1401: + case 1406: + case 1407: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_APL); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1306: - case 1313: + case 1451: + case 1458: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 765: - case 766: - case 767: - case 768: - case 774: - case 775: - case 776: - case 777: + case 792: + case 793: + case 794: + case 795: + case 801: + case 802: + case 803: + case 804: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_HEX_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1452: + case 1597: { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_CHAR_COLON); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1293: - case 1321: + case 1438: + case 1466: { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1461: - case 1464: - case 1467: - case 1470: + case 1606: + case 1609: + case 1612: + case 1615: { WARN(ZS_BAD_CHAR_DASH); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1457: + case 1602: { WARN(ZS_BAD_CHAR_COLON); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_HEX_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 244: + case 253: { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { ERR(ZS_BAD_DIRECTIVE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 219: - case 226: - case 227: case 228: - case 229: - case 230: - case 231: - case 232: - case 233: - case 234: case 235: case 236: case 237: @@ -106255,62 +113080,62 @@ goto st329;} case 240: case 241: case 242: + case 243: + case 244: + case 245: + case 246: + case 247: + case 248: + case 249: + case 250: + case 251: { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 210: + case 219: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 258: - case 260: - case 261: - case 262: - case 263: - case 264: - case 265: - case 266: case 267: - case 268: case 269: case 270: case 271: @@ -106319,186 +113144,195 @@ goto st329;} case 274: case 275: case 276: + case 277: + case 278: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; case 14: - case 225: - case 259: - case 278: - case 304: + case 234: + case 268: + case 287: + case 313: { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 355: - case 358: - case 360: + case 364: + case 367: + case 369: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { ERR(ZS_BAD_TTL); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 1307: - case 1314: + case 1452: + case 1459: { WARN(ZS_BAD_ADDRESS_CHAR); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_GATEWAY); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_GATEWAY_KEY); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; case 15: { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; - case 255: + case 264: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_TIME_UNIT); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_NUMBER); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_UNSUPPORTED_TYPE); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_RDATA); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } { WARN(ZS_BAD_REST); p--; { if ( p == pe ) - goto _test_eof329; -goto st329;} + goto _test_eof338; +goto st338;} } break; } diff --git a/src/libzscanner/scanner.c.t0 b/src/libzscanner/scanner.c.t0 index ba37a6df68..ca91059e3a 100644 --- a/src/libzscanner/scanner.c.t0 +++ b/src/libzscanner/scanner.c.t0 @@ -101,764 +101,788 @@ static const short _zone_scanner_actions[] = { 122, 1, 123, 1, 124, 1, 125, 1, 126, 1, 127, 1, 129, 1, 130, 1, 131, 1, 132, 1, 146, 1, 147, 1, - 149, 1, 150, 1, 151, 1, 152, 1, - 153, 1, 159, 1, 212, 1, 213, 1, - 214, 1, 215, 1, 216, 1, 217, 1, - 218, 1, 219, 1, 220, 1, 221, 1, - 222, 1, 223, 1, 224, 1, 225, 1, - 226, 1, 227, 1, 228, 1, 229, 1, - 230, 1, 231, 1, 232, 1, 233, 1, - 234, 1, 235, 1, 236, 1, 237, 1, - 238, 1, 239, 1, 240, 1, 241, 1, - 242, 1, 243, 1, 244, 1, 245, 1, - 246, 1, 247, 1, 248, 1, 249, 1, - 250, 1, 251, 1, 252, 1, 253, 1, - 254, 1, 255, 1, 256, 1, 257, 1, - 258, 1, 259, 1, 260, 1, 261, 1, - 262, 1, 263, 1, 264, 1, 265, 1, - 266, 1, 268, 1, 270, 1, 271, 1, - 272, 1, 273, 1, 280, 1, 281, 1, - 286, 1, 288, 1, 293, 1, 296, 1, - 298, 1, 299, 1, 300, 1, 301, 1, - 306, 1, 307, 1, 309, 1, 310, 1, - 311, 1, 312, 1, 313, 1, 314, 1, + 148, 1, 149, 1, 150, 1, 151, 1, + 152, 1, 153, 1, 159, 1, 214, 1, + 215, 1, 216, 1, 217, 1, 218, 1, + 219, 1, 220, 1, 221, 1, 222, 1, + 223, 1, 224, 1, 225, 1, 226, 1, + 227, 1, 228, 1, 229, 1, 230, 1, + 231, 1, 232, 1, 233, 1, 234, 1, + 235, 1, 236, 1, 237, 1, 238, 1, + 239, 1, 240, 1, 241, 1, 242, 1, + 243, 1, 244, 1, 245, 1, 246, 1, + 247, 1, 248, 1, 249, 1, 250, 1, + 251, 1, 252, 1, 253, 1, 254, 1, + 255, 1, 256, 1, 257, 1, 258, 1, + 259, 1, 260, 1, 261, 1, 262, 1, + 263, 1, 264, 1, 265, 1, 266, 1, + 267, 1, 268, 1, 269, 1, 270, 1, + 272, 1, 274, 1, 275, 1, 276, 1, + 277, 1, 284, 1, 285, 1, 290, 1, + 292, 1, 297, 1, 300, 1, 302, 1, + 303, 1, 304, 1, 305, 1, 310, 1, + 311, 1, 312, 1, 314, 1, 315, 1, 316, 1, 317, 1, 318, 1, 319, 1, - 321, 2, 0, 50, 2, 1, 0, 2, - 1, 317, 2, 1, 374, 2, 2, 5, - 2, 2, 7, 2, 3, 5, 2, 3, - 7, 2, 4, 0, 2, 4, 5, 2, - 4, 7, 2, 4, 317, 2, 5, 2, - 2, 5, 3, 2, 5, 4, 2, 5, - 7, 2, 6, 1, 2, 7, 1, 2, - 7, 2, 2, 7, 3, 2, 7, 4, - 2, 7, 5, 2, 7, 32, 2, 8, - 74, 2, 8, 78, 2, 9, 10, 2, - 11, 1, 2, 12, 1, 2, 13, 14, - 2, 16, 17, 2, 18, 14, 2, 18, - 15, 2, 19, 24, 2, 19, 78, 2, - 19, 85, 2, 20, 0, 2, 20, 7, - 2, 22, 0, 2, 23, 13, 2, 26, - 70, 2, 26, 109, 2, 26, 120, 2, - 27, 0, 2, 27, 1, 2, 27, 2, - 2, 27, 3, 2, 27, 4, 2, 27, - 269, 2, 28, 70, 2, 28, 114, 2, - 29, 301, 2, 29, 305, 2, 30, 25, - 2, 31, 1, 2, 31, 2, 2, 31, - 3, 2, 31, 4, 2, 31, 7, 2, - 31, 94, 2, 32, 7, 2, 33, 8, - 2, 33, 316, 2, 33, 321, 2, 34, - 25, 2, 35, 36, 2, 36, 0, 2, - 36, 1, 2, 36, 2, 2, 36, 3, - 2, 36, 4, 2, 36, 269, 2, 36, - 308, 2, 37, 42, 2, 38, 37, 2, - 39, 74, 2, 39, 159, 2, 39, 286, - 2, 39, 298, 2, 39, 299, 2, 39, - 316, 2, 39, 321, 2, 43, 274, 2, - 43, 275, 2, 43, 276, 2, 43, 277, - 2, 43, 278, 2, 43, 279, 2, 46, - 0, 2, 46, 1, 2, 46, 2, 2, - 46, 3, 2, 46, 4, 2, 47, 0, - 2, 47, 1, 2, 47, 2, 2, 47, - 3, 2, 47, 4, 2, 47, 269, 2, - 47, 301, 2, 48, 0, 2, 48, 1, - 2, 48, 2, 2, 48, 3, 2, 48, - 4, 2, 49, 315, 2, 50, 1, 2, - 50, 2, 2, 50, 3, 2, 50, 4, - 2, 57, 7, 2, 57, 48, 2, 57, - 94, 2, 58, 59, 2, 60, 1, 2, - 60, 2, 2, 60, 3, 2, 60, 4, - 2, 61, 316, 2, 63, 64, 2, 65, - 66, 2, 67, 69, 2, 69, 0, 2, - 69, 62, 2, 72, 0, 2, 72, 316, - 2, 76, 23, 2, 80, 70, 2, 81, - 7, 2, 82, 8, 2, 83, 23, 2, - 85, 8, 2, 91, 92, 2, 93, 1, - 2, 93, 2, 2, 93, 3, 2, 93, - 4, 2, 94, 1, 2, 94, 2, 2, - 94, 3, 2, 94, 4, 2, 94, 7, - 2, 95, 96, 2, 97, 298, 2, 97, - 316, 2, 98, 99, 2, 100, 101, 2, - 102, 103, 2, 102, 104, 2, 102, 105, - 2, 106, 107, 2, 108, 316, 2, 111, - 316, 2, 112, 0, 2, 128, 316, 2, - 130, 0, 2, 131, 0, 2, 132, 0, - 2, 133, 0, 2, 134, 0, 2, 135, - 0, 2, 136, 0, 2, 137, 0, 2, - 138, 0, 2, 139, 0, 2, 140, 0, - 2, 141, 0, 2, 142, 0, 2, 143, - 0, 2, 144, 0, 2, 145, 0, 2, - 147, 0, 2, 148, 0, 2, 149, 0, - 2, 150, 0, 2, 151, 0, 2, 152, - 0, 2, 153, 0, 2, 154, 0, 2, - 155, 0, 2, 156, 0, 2, 157, 316, - 2, 158, 316, 2, 160, 0, 2, 161, - 0, 2, 162, 0, 2, 163, 0, 2, - 164, 0, 2, 165, 0, 2, 166, 0, - 2, 167, 0, 2, 168, 0, 2, 169, - 0, 2, 170, 0, 2, 171, 0, 2, - 172, 0, 2, 173, 0, 2, 174, 0, - 2, 175, 0, 2, 176, 0, 2, 177, - 0, 2, 178, 0, 2, 179, 0, 2, - 180, 0, 2, 181, 0, 2, 182, 0, - 2, 183, 0, 2, 184, 0, 2, 185, - 0, 2, 186, 0, 2, 187, 0, 2, - 188, 0, 2, 189, 0, 2, 190, 0, - 2, 191, 0, 2, 192, 0, 2, 193, - 0, 2, 194, 0, 2, 195, 0, 2, - 196, 0, 2, 197, 0, 2, 198, 0, - 2, 199, 0, 2, 200, 0, 2, 201, - 0, 2, 202, 0, 2, 203, 0, 2, - 204, 0, 2, 205, 0, 2, 206, 0, - 2, 207, 0, 2, 208, 0, 2, 209, - 0, 2, 210, 0, 2, 211, 0, 2, - 213, 1, 2, 213, 2, 2, 213, 3, - 2, 213, 4, 2, 214, 1, 2, 214, - 2, 2, 214, 3, 2, 214, 4, 2, - 215, 1, 2, 215, 2, 2, 215, 3, - 2, 215, 4, 2, 216, 1, 2, 216, - 2, 2, 216, 3, 2, 216, 4, 2, - 217, 1, 2, 217, 2, 2, 217, 3, - 2, 217, 4, 2, 218, 1, 2, 218, - 2, 2, 218, 3, 2, 218, 4, 2, - 219, 1, 2, 219, 2, 2, 219, 3, - 2, 219, 4, 2, 220, 1, 2, 220, - 2, 2, 220, 3, 2, 220, 4, 2, - 221, 1, 2, 221, 2, 2, 221, 3, - 2, 221, 4, 2, 222, 1, 2, 222, - 2, 2, 222, 3, 2, 222, 4, 2, - 223, 1, 2, 223, 2, 2, 223, 3, - 2, 223, 4, 2, 224, 1, 2, 224, - 2, 2, 224, 3, 2, 224, 4, 2, - 225, 1, 2, 225, 2, 2, 225, 3, - 2, 225, 4, 2, 226, 1, 2, 226, - 2, 2, 226, 3, 2, 226, 4, 2, - 227, 1, 2, 227, 2, 2, 227, 3, - 2, 227, 4, 2, 228, 1, 2, 228, - 2, 2, 228, 3, 2, 228, 4, 2, - 229, 1, 2, 229, 2, 2, 229, 3, - 2, 229, 4, 2, 230, 1, 2, 230, - 2, 2, 230, 3, 2, 230, 4, 2, - 231, 1, 2, 231, 2, 2, 231, 3, - 2, 231, 4, 2, 232, 1, 2, 232, - 2, 2, 232, 3, 2, 232, 4, 2, - 233, 1, 2, 233, 2, 2, 233, 3, - 2, 233, 4, 2, 234, 1, 2, 234, - 2, 2, 234, 3, 2, 234, 4, 2, - 235, 1, 2, 235, 2, 2, 235, 3, - 2, 235, 4, 2, 236, 1, 2, 236, - 2, 2, 236, 3, 2, 236, 4, 2, - 237, 1, 2, 237, 2, 2, 237, 3, - 2, 237, 4, 2, 238, 1, 2, 238, - 2, 2, 238, 3, 2, 238, 4, 2, - 239, 1, 2, 239, 2, 2, 239, 3, - 2, 239, 4, 2, 240, 1, 2, 240, - 2, 2, 240, 3, 2, 240, 4, 2, - 241, 1, 2, 241, 2, 2, 241, 3, - 2, 241, 4, 2, 242, 1, 2, 242, - 2, 2, 242, 3, 2, 242, 4, 2, - 243, 1, 2, 243, 2, 2, 243, 3, - 2, 243, 4, 2, 244, 1, 2, 244, - 2, 2, 244, 3, 2, 244, 4, 2, - 245, 1, 2, 245, 2, 2, 245, 3, - 2, 245, 4, 2, 246, 1, 2, 246, - 2, 2, 246, 3, 2, 246, 4, 2, - 247, 1, 2, 247, 2, 2, 247, 3, - 2, 247, 4, 2, 248, 1, 2, 248, - 2, 2, 248, 3, 2, 248, 4, 2, - 249, 1, 2, 249, 2, 2, 249, 3, - 2, 249, 4, 2, 250, 1, 2, 250, - 2, 2, 250, 3, 2, 250, 4, 2, - 251, 1, 2, 251, 2, 2, 251, 3, - 2, 251, 4, 2, 252, 1, 2, 252, - 2, 2, 252, 3, 2, 252, 4, 2, - 253, 1, 2, 253, 2, 2, 253, 3, - 2, 253, 4, 2, 254, 1, 2, 254, - 2, 2, 254, 3, 2, 254, 4, 2, - 255, 1, 2, 255, 2, 2, 255, 3, - 2, 255, 4, 2, 256, 1, 2, 256, - 2, 2, 256, 3, 2, 256, 4, 2, - 257, 1, 2, 257, 2, 2, 257, 3, - 2, 257, 4, 2, 258, 1, 2, 258, - 2, 2, 258, 3, 2, 258, 4, 2, - 259, 1, 2, 259, 2, 2, 259, 3, - 2, 259, 4, 2, 260, 1, 2, 260, - 2, 2, 260, 3, 2, 260, 4, 2, - 261, 1, 2, 261, 2, 2, 261, 3, - 2, 261, 4, 2, 262, 1, 2, 262, - 2, 2, 262, 3, 2, 262, 4, 2, - 263, 1, 2, 263, 2, 2, 263, 3, - 2, 263, 4, 2, 264, 1, 2, 264, - 2, 2, 264, 3, 2, 264, 4, 2, - 265, 1, 2, 265, 2, 2, 265, 3, - 2, 265, 4, 2, 266, 1, 2, 266, - 2, 2, 266, 3, 2, 266, 4, 2, - 267, 0, 2, 270, 1, 2, 270, 2, - 2, 270, 3, 2, 270, 4, 2, 271, - 1, 2, 271, 2, 2, 271, 3, 2, - 271, 4, 2, 272, 1, 2, 272, 2, - 2, 272, 3, 2, 272, 4, 2, 273, - 1, 2, 273, 2, 2, 273, 3, 2, - 273, 4, 2, 280, 1, 2, 280, 2, - 2, 280, 3, 2, 280, 4, 2, 281, - 1, 2, 281, 2, 2, 281, 3, 2, - 281, 4, 2, 284, 0, 2, 285, 316, - 2, 287, 109, 2, 292, 109, 2, 296, - 1, 2, 296, 2, 2, 296, 3, 2, - 296, 4, 2, 297, 0, 2, 301, 1, - 2, 301, 2, 2, 301, 3, 2, 301, - 4, 2, 316, 8, 2, 317, 1, 2, - 317, 4, 2, 320, 317, 2, 321, 8, - 2, 321, 316, 2, 322, 315, 2, 323, - 315, 2, 324, 315, 2, 325, 315, 2, - 326, 315, 2, 327, 315, 2, 328, 315, - 2, 329, 315, 2, 330, 315, 2, 331, - 315, 2, 332, 315, 2, 333, 315, 2, - 334, 315, 2, 335, 315, 2, 336, 315, - 2, 337, 315, 2, 338, 315, 2, 339, - 315, 2, 340, 315, 2, 341, 315, 2, - 342, 315, 2, 343, 315, 2, 344, 315, - 2, 345, 315, 2, 346, 315, 2, 347, - 315, 2, 348, 315, 2, 349, 315, 2, - 350, 315, 2, 351, 315, 2, 352, 315, - 2, 353, 315, 2, 354, 315, 2, 355, - 315, 2, 356, 315, 2, 357, 315, 2, - 358, 315, 2, 359, 315, 2, 360, 315, - 2, 361, 315, 2, 362, 315, 2, 363, - 315, 2, 364, 315, 2, 365, 315, 2, - 366, 315, 2, 367, 315, 2, 368, 315, - 2, 369, 315, 2, 370, 315, 2, 371, - 315, 2, 372, 315, 2, 373, 315, 2, - 374, 1, 3, 0, 50, 1, 3, 0, - 50, 2, 3, 0, 50, 3, 3, 0, - 50, 4, 3, 1, 7, 374, 3, 1, - 32, 7, 3, 1, 72, 0, 3, 1, - 112, 0, 3, 1, 267, 0, 3, 1, - 284, 0, 3, 1, 297, 0, 3, 1, - 317, 374, 3, 2, 7, 32, 3, 2, - 32, 7, 3, 3, 7, 32, 3, 3, - 32, 7, 3, 4, 7, 32, 3, 4, - 32, 7, 3, 4, 72, 0, 3, 4, - 112, 0, 3, 4, 267, 0, 3, 4, - 284, 0, 3, 4, 297, 0, 3, 4, - 317, 7, 3, 5, 7, 2, 3, 5, - 7, 3, 3, 5, 7, 4, 3, 6, - 1, 374, 3, 6, 374, 1, 3, 7, - 2, 5, 3, 7, 2, 32, 3, 7, - 3, 5, 3, 7, 3, 32, 3, 7, - 4, 5, 3, 7, 4, 32, 3, 7, - 374, 1, 3, 9, 11, 1, 3, 15, - 21, 0, 3, 20, 7, 2, 3, 20, - 7, 3, 3, 20, 7, 4, 3, 20, - 84, 7, 3, 23, 13, 14, 3, 27, - 72, 0, 3, 27, 303, 29, 3, 28, - 95, 96, 3, 29, 301, 1, 3, 29, - 301, 2, 3, 29, 301, 3, 3, 29, - 301, 4, 3, 29, 305, 301, 3, 31, + 320, 1, 322, 1, 323, 1, 324, 1, + 325, 1, 327, 2, 0, 50, 2, 1, + 0, 2, 1, 323, 2, 1, 382, 2, + 2, 5, 2, 2, 7, 2, 3, 5, + 2, 3, 7, 2, 4, 0, 2, 4, + 5, 2, 4, 7, 2, 4, 323, 2, + 5, 2, 2, 5, 3, 2, 5, 4, + 2, 5, 7, 2, 6, 1, 2, 7, + 1, 2, 7, 2, 2, 7, 3, 2, + 7, 4, 2, 7, 5, 2, 7, 32, + 2, 8, 74, 2, 8, 78, 2, 9, + 10, 2, 11, 1, 2, 12, 1, 2, + 13, 14, 2, 16, 17, 2, 18, 14, + 2, 18, 15, 2, 19, 24, 2, 19, + 78, 2, 19, 85, 2, 20, 0, 2, + 20, 7, 2, 22, 0, 2, 23, 13, + 2, 26, 70, 2, 26, 109, 2, 26, + 120, 2, 27, 0, 2, 27, 1, 2, + 27, 2, 2, 27, 3, 2, 27, 4, + 2, 27, 273, 2, 28, 70, 2, 28, + 114, 2, 29, 305, 2, 29, 309, 2, + 30, 25, 2, 31, 1, 2, 31, 2, + 2, 31, 3, 2, 31, 4, 2, 31, + 7, 2, 31, 94, 2, 32, 7, 2, + 33, 8, 2, 33, 322, 2, 33, 327, + 2, 34, 25, 2, 35, 36, 2, 36, + 0, 2, 36, 1, 2, 36, 2, 2, + 36, 3, 2, 36, 4, 2, 36, 29, + 2, 36, 273, 2, 36, 313, 2, 37, + 42, 2, 38, 37, 2, 39, 74, 2, + 39, 159, 2, 39, 290, 2, 39, 302, + 2, 39, 303, 2, 39, 322, 2, 39, + 327, 2, 43, 278, 2, 43, 279, 2, + 43, 280, 2, 43, 281, 2, 43, 282, + 2, 43, 283, 2, 46, 0, 2, 46, + 1, 2, 46, 2, 2, 46, 3, 2, + 46, 4, 2, 47, 0, 2, 47, 1, + 2, 47, 2, 2, 47, 3, 2, 47, + 4, 2, 47, 273, 2, 47, 305, 2, + 48, 0, 2, 48, 1, 2, 48, 2, + 2, 48, 3, 2, 48, 4, 2, 49, + 321, 2, 50, 1, 2, 50, 2, 2, + 50, 3, 2, 50, 4, 2, 57, 7, + 2, 57, 48, 2, 57, 94, 2, 58, + 59, 2, 60, 1, 2, 60, 2, 2, + 60, 3, 2, 60, 4, 2, 61, 322, + 2, 63, 64, 2, 65, 66, 2, 67, + 69, 2, 69, 0, 2, 69, 62, 2, + 72, 0, 2, 72, 322, 2, 76, 23, + 2, 80, 70, 2, 81, 7, 2, 82, + 8, 2, 83, 23, 2, 85, 8, 2, + 91, 92, 2, 93, 1, 2, 93, 2, + 2, 93, 3, 2, 93, 4, 2, 94, + 1, 2, 94, 2, 2, 94, 3, 2, + 94, 4, 2, 94, 7, 2, 95, 96, + 2, 97, 302, 2, 97, 322, 2, 98, + 99, 2, 100, 101, 2, 102, 103, 2, + 102, 104, 2, 102, 105, 2, 106, 107, + 2, 108, 322, 2, 111, 322, 2, 112, + 0, 2, 128, 322, 2, 130, 0, 2, + 131, 0, 2, 132, 0, 2, 133, 0, + 2, 134, 0, 2, 135, 0, 2, 136, + 0, 2, 137, 0, 2, 138, 0, 2, + 139, 0, 2, 140, 0, 2, 141, 0, + 2, 142, 0, 2, 143, 0, 2, 144, + 0, 2, 145, 0, 2, 147, 0, 2, + 148, 0, 2, 149, 0, 2, 150, 0, + 2, 151, 0, 2, 152, 0, 2, 153, + 0, 2, 154, 0, 2, 155, 0, 2, + 156, 0, 2, 157, 322, 2, 158, 322, + 2, 160, 0, 2, 161, 0, 2, 162, + 0, 2, 163, 0, 2, 164, 0, 2, + 165, 0, 2, 166, 0, 2, 167, 0, + 2, 168, 0, 2, 169, 0, 2, 170, + 0, 2, 171, 0, 2, 172, 0, 2, + 173, 0, 2, 174, 0, 2, 175, 0, + 2, 176, 0, 2, 177, 0, 2, 178, + 0, 2, 179, 0, 2, 180, 0, 2, + 181, 0, 2, 182, 0, 2, 183, 0, + 2, 184, 0, 2, 185, 0, 2, 186, + 0, 2, 187, 0, 2, 188, 0, 2, + 189, 0, 2, 190, 0, 2, 191, 0, + 2, 192, 0, 2, 193, 0, 2, 194, + 0, 2, 195, 0, 2, 196, 0, 2, + 197, 0, 2, 198, 0, 2, 199, 0, + 2, 200, 0, 2, 201, 0, 2, 202, + 0, 2, 203, 0, 2, 204, 0, 2, + 205, 0, 2, 206, 0, 2, 207, 0, + 2, 208, 0, 2, 209, 0, 2, 210, + 0, 2, 211, 0, 2, 212, 0, 2, + 213, 0, 2, 215, 1, 2, 215, 2, + 2, 215, 3, 2, 215, 4, 2, 216, + 1, 2, 216, 2, 2, 216, 3, 2, + 216, 4, 2, 217, 1, 2, 217, 2, + 2, 217, 3, 2, 217, 4, 2, 218, + 1, 2, 218, 2, 2, 218, 3, 2, + 218, 4, 2, 219, 1, 2, 219, 2, + 2, 219, 3, 2, 219, 4, 2, 220, + 1, 2, 220, 2, 2, 220, 3, 2, + 220, 4, 2, 221, 1, 2, 221, 2, + 2, 221, 3, 2, 221, 4, 2, 222, + 1, 2, 222, 2, 2, 222, 3, 2, + 222, 4, 2, 223, 1, 2, 223, 2, + 2, 223, 3, 2, 223, 4, 2, 224, + 1, 2, 224, 2, 2, 224, 3, 2, + 224, 4, 2, 225, 1, 2, 225, 2, + 2, 225, 3, 2, 225, 4, 2, 226, + 1, 2, 226, 2, 2, 226, 3, 2, + 226, 4, 2, 227, 1, 2, 227, 2, + 2, 227, 3, 2, 227, 4, 2, 228, + 1, 2, 228, 2, 2, 228, 3, 2, + 228, 4, 2, 229, 1, 2, 229, 2, + 2, 229, 3, 2, 229, 4, 2, 230, + 1, 2, 230, 2, 2, 230, 3, 2, + 230, 4, 2, 231, 1, 2, 231, 2, + 2, 231, 3, 2, 231, 4, 2, 232, + 1, 2, 232, 2, 2, 232, 3, 2, + 232, 4, 2, 233, 1, 2, 233, 2, + 2, 233, 3, 2, 233, 4, 2, 234, + 1, 2, 234, 2, 2, 234, 3, 2, + 234, 4, 2, 235, 1, 2, 235, 2, + 2, 235, 3, 2, 235, 4, 2, 236, + 1, 2, 236, 2, 2, 236, 3, 2, + 236, 4, 2, 237, 1, 2, 237, 2, + 2, 237, 3, 2, 237, 4, 2, 238, + 1, 2, 238, 2, 2, 238, 3, 2, + 238, 4, 2, 239, 1, 2, 239, 2, + 2, 239, 3, 2, 239, 4, 2, 240, + 1, 2, 240, 2, 2, 240, 3, 2, + 240, 4, 2, 241, 1, 2, 241, 2, + 2, 241, 3, 2, 241, 4, 2, 242, + 1, 2, 242, 2, 2, 242, 3, 2, + 242, 4, 2, 243, 1, 2, 243, 2, + 2, 243, 3, 2, 243, 4, 2, 244, + 1, 2, 244, 2, 2, 244, 3, 2, + 244, 4, 2, 245, 1, 2, 245, 2, + 2, 245, 3, 2, 245, 4, 2, 246, + 1, 2, 246, 2, 2, 246, 3, 2, + 246, 4, 2, 247, 1, 2, 247, 2, + 2, 247, 3, 2, 247, 4, 2, 248, + 1, 2, 248, 2, 2, 248, 3, 2, + 248, 4, 2, 249, 1, 2, 249, 2, + 2, 249, 3, 2, 249, 4, 2, 250, + 1, 2, 250, 2, 2, 250, 3, 2, + 250, 4, 2, 251, 1, 2, 251, 2, + 2, 251, 3, 2, 251, 4, 2, 252, + 1, 2, 252, 2, 2, 252, 3, 2, + 252, 4, 2, 253, 1, 2, 253, 2, + 2, 253, 3, 2, 253, 4, 2, 254, + 1, 2, 254, 2, 2, 254, 3, 2, + 254, 4, 2, 255, 1, 2, 255, 2, + 2, 255, 3, 2, 255, 4, 2, 256, + 1, 2, 256, 2, 2, 256, 3, 2, + 256, 4, 2, 257, 1, 2, 257, 2, + 2, 257, 3, 2, 257, 4, 2, 258, + 1, 2, 258, 2, 2, 258, 3, 2, + 258, 4, 2, 259, 1, 2, 259, 2, + 2, 259, 3, 2, 259, 4, 2, 260, + 1, 2, 260, 2, 2, 260, 3, 2, + 260, 4, 2, 261, 1, 2, 261, 2, + 2, 261, 3, 2, 261, 4, 2, 262, + 1, 2, 262, 2, 2, 262, 3, 2, + 262, 4, 2, 263, 1, 2, 263, 2, + 2, 263, 3, 2, 263, 4, 2, 264, + 1, 2, 264, 2, 2, 264, 3, 2, + 264, 4, 2, 265, 1, 2, 265, 2, + 2, 265, 3, 2, 265, 4, 2, 266, + 1, 2, 266, 2, 2, 266, 3, 2, + 266, 4, 2, 267, 1, 2, 267, 2, + 2, 267, 3, 2, 267, 4, 2, 268, + 1, 2, 268, 2, 2, 268, 3, 2, + 268, 4, 2, 269, 1, 2, 269, 2, + 2, 269, 3, 2, 269, 4, 2, 270, + 1, 2, 270, 2, 2, 270, 3, 2, + 270, 4, 2, 271, 0, 2, 274, 1, + 2, 274, 2, 2, 274, 3, 2, 274, + 4, 2, 275, 1, 2, 275, 2, 2, + 275, 3, 2, 275, 4, 2, 276, 1, + 2, 276, 2, 2, 276, 3, 2, 276, + 4, 2, 277, 1, 2, 277, 2, 2, + 277, 3, 2, 277, 4, 2, 284, 1, + 2, 284, 2, 2, 284, 3, 2, 284, + 4, 2, 285, 1, 2, 285, 2, 2, + 285, 3, 2, 285, 4, 2, 288, 0, + 2, 289, 322, 2, 291, 109, 2, 296, + 109, 2, 300, 1, 2, 300, 2, 2, + 300, 3, 2, 300, 4, 2, 300, 304, + 2, 301, 0, 2, 305, 1, 2, 305, + 2, 2, 305, 3, 2, 305, 4, 2, + 322, 8, 2, 323, 1, 2, 323, 4, + 2, 326, 323, 2, 327, 8, 2, 327, + 322, 2, 328, 321, 2, 329, 321, 2, + 330, 321, 2, 331, 321, 2, 332, 321, + 2, 333, 321, 2, 334, 321, 2, 335, + 321, 2, 336, 321, 2, 337, 321, 2, + 338, 321, 2, 339, 321, 2, 340, 321, + 2, 341, 321, 2, 342, 321, 2, 343, + 321, 2, 344, 321, 2, 345, 321, 2, + 346, 321, 2, 347, 321, 2, 348, 321, + 2, 349, 321, 2, 350, 321, 2, 351, + 321, 2, 352, 321, 2, 353, 321, 2, + 354, 321, 2, 355, 321, 2, 356, 321, + 2, 357, 321, 2, 358, 321, 2, 359, + 321, 2, 360, 321, 2, 361, 321, 2, + 362, 321, 2, 363, 321, 2, 364, 321, + 2, 365, 321, 2, 366, 321, 2, 367, + 321, 2, 368, 321, 2, 369, 321, 2, + 370, 321, 2, 371, 321, 2, 372, 321, + 2, 373, 321, 2, 374, 321, 2, 375, + 321, 2, 376, 321, 2, 377, 321, 2, + 378, 321, 2, 379, 321, 2, 380, 321, + 2, 381, 321, 2, 382, 1, 3, 0, + 50, 1, 3, 0, 50, 2, 3, 0, + 50, 3, 3, 0, 50, 4, 3, 1, + 7, 382, 3, 1, 32, 7, 3, 1, + 72, 0, 3, 1, 112, 0, 3, 1, + 271, 0, 3, 1, 288, 0, 3, 1, + 301, 0, 3, 1, 323, 382, 3, 2, + 7, 32, 3, 2, 32, 7, 3, 3, + 7, 32, 3, 3, 32, 7, 3, 4, + 7, 32, 3, 4, 32, 7, 3, 4, + 72, 0, 3, 4, 112, 0, 3, 4, + 271, 0, 3, 4, 288, 0, 3, 4, + 301, 0, 3, 4, 323, 7, 3, 5, + 7, 2, 3, 5, 7, 3, 3, 5, + 7, 4, 3, 6, 1, 382, 3, 6, + 382, 1, 3, 7, 2, 5, 3, 7, + 2, 32, 3, 7, 3, 5, 3, 7, + 3, 32, 3, 7, 4, 5, 3, 7, + 4, 32, 3, 7, 382, 1, 3, 9, + 11, 1, 3, 15, 21, 0, 3, 20, + 7, 2, 3, 20, 7, 3, 3, 20, + 7, 4, 3, 20, 84, 7, 3, 23, + 13, 14, 3, 27, 72, 0, 3, 27, + 307, 29, 3, 28, 34, 25, 3, 28, + 95, 96, 3, 29, 305, 1, 3, 29, + 305, 2, 3, 29, 305, 3, 3, 29, + 305, 4, 3, 29, 309, 305, 3, 31, 1, 94, 3, 31, 2, 7, 3, 31, 2, 94, 3, 31, 3, 7, 3, 31, 3, 94, 3, 31, 4, 7, 3, 31, 4, 94, 3, 31, 94, 7, 3, 31, - 320, 317, 3, 31, 322, 315, 3, 32, + 326, 323, 3, 31, 328, 321, 3, 32, 1, 7, 3, 32, 2, 7, 3, 32, 3, 7, 3, 32, 4, 7, 3, 33, - 90, 8, 3, 33, 316, 8, 3, 33, - 321, 8, 3, 33, 321, 316, 3, 35, + 90, 8, 3, 33, 322, 8, 3, 33, + 327, 8, 3, 33, 327, 322, 3, 35, 36, 0, 3, 35, 36, 1, 3, 35, 36, 2, 3, 35, 36, 3, 3, 35, 36, 4, 3, 36, 1, 0, 3, 36, - 4, 0, 3, 38, 37, 317, 3, 39, - 157, 316, 3, 39, 321, 8, 3, 39, - 321, 316, 3, 41, 43, 274, 3, 41, - 43, 275, 3, 41, 43, 276, 3, 41, - 43, 277, 3, 41, 43, 278, 3, 41, - 43, 279, 3, 43, 274, 1, 3, 43, - 274, 2, 3, 43, 274, 3, 3, 43, - 274, 4, 3, 43, 275, 1, 3, 43, - 275, 2, 3, 43, 275, 3, 3, 43, - 275, 4, 3, 43, 276, 1, 3, 43, - 276, 2, 3, 43, 276, 3, 3, 43, - 276, 4, 3, 43, 277, 1, 3, 43, - 277, 2, 3, 43, 277, 3, 3, 43, - 277, 4, 3, 43, 278, 1, 3, 43, - 278, 2, 3, 43, 278, 3, 3, 43, - 278, 4, 3, 43, 279, 1, 3, 43, - 279, 2, 3, 43, 279, 3, 3, 43, - 279, 4, 3, 47, 146, 301, 3, 47, - 301, 1, 3, 47, 301, 2, 3, 47, - 301, 3, 3, 47, 301, 4, 3, 49, - 315, 1, 3, 49, 315, 2, 3, 49, - 315, 3, 3, 49, 315, 4, 3, 49, - 315, 317, 3, 51, 39, 74, 3, 51, - 39, 316, 3, 51, 39, 321, 3, 56, - 38, 37, 3, 57, 7, 2, 3, 57, - 7, 3, 3, 57, 7, 4, 3, 57, - 48, 0, 3, 57, 48, 1, 3, 57, - 48, 2, 3, 57, 48, 3, 3, 57, - 48, 4, 3, 57, 94, 1, 3, 57, - 94, 2, 3, 57, 94, 3, 3, 57, - 94, 4, 3, 67, 69, 0, 3, 67, - 69, 62, 3, 68, 63, 64, 3, 69, - 62, 0, 3, 71, 26, 70, 3, 73, - 0, 1, 3, 76, 23, 13, 3, 77, - 0, 1, 3, 81, 2, 7, 3, 81, - 3, 7, 3, 81, 4, 7, 3, 81, - 7, 4, 3, 83, 23, 13, 3, 86, - 0, 1, 3, 89, 7, 1, 3, 89, - 7, 4, 3, 89, 30, 25, 3, 89, - 32, 7, 3, 91, 30, 25, 3, 91, - 92, 317, 3, 94, 2, 7, 3, 94, - 3, 7, 3, 94, 4, 7, 3, 97, - 108, 316, 3, 97, 157, 316, 3, 98, - 99, 0, 3, 98, 99, 1, 3, 98, - 99, 2, 3, 98, 99, 3, 3, 98, - 99, 4, 3, 98, 99, 29, 3, 100, - 101, 0, 3, 100, 101, 1, 3, 100, - 101, 2, 3, 100, 101, 3, 3, 100, - 101, 4, 3, 100, 101, 29, 3, 106, - 107, 0, 3, 106, 107, 1, 3, 106, - 107, 2, 3, 106, 107, 3, 3, 106, - 107, 4, 3, 111, 113, 286, 3, 111, - 295, 316, 3, 148, 146, 301, 3, 154, - 146, 301, 3, 157, 158, 316, 3, 213, - 267, 0, 3, 214, 267, 0, 3, 215, - 267, 0, 3, 216, 267, 0, 3, 217, - 267, 0, 3, 218, 267, 0, 3, 219, - 267, 0, 3, 220, 267, 0, 3, 221, - 267, 0, 3, 222, 267, 0, 3, 223, - 267, 0, 3, 224, 267, 0, 3, 225, - 267, 0, 3, 226, 267, 0, 3, 227, - 267, 0, 3, 228, 267, 0, 3, 229, - 267, 0, 3, 230, 267, 0, 3, 231, - 267, 0, 3, 232, 267, 0, 3, 233, - 267, 0, 3, 234, 267, 0, 3, 235, - 267, 0, 3, 236, 267, 0, 3, 237, - 267, 0, 3, 238, 267, 0, 3, 239, - 267, 0, 3, 240, 267, 0, 3, 241, - 267, 0, 3, 242, 267, 0, 3, 243, - 267, 0, 3, 244, 267, 0, 3, 245, - 267, 0, 3, 246, 267, 0, 3, 247, - 267, 0, 3, 248, 267, 0, 3, 249, - 267, 0, 3, 250, 267, 0, 3, 251, - 267, 0, 3, 252, 267, 0, 3, 253, - 267, 0, 3, 254, 267, 0, 3, 255, - 267, 0, 3, 256, 267, 0, 3, 257, - 267, 0, 3, 258, 267, 0, 3, 259, - 267, 0, 3, 260, 267, 0, 3, 261, - 267, 0, 3, 262, 267, 0, 3, 263, - 267, 0, 3, 264, 267, 0, 3, 265, - 267, 0, 3, 266, 267, 0, 3, 283, - 38, 37, 3, 288, 289, 0, 3, 288, - 290, 0, 3, 291, 111, 316, 3, 293, - 294, 0, 3, 295, 111, 316, 3, 296, - 297, 0, 3, 301, 297, 0, 3, 304, - 28, 307, 3, 316, 8, 90, 3, 317, - 7, 1, 3, 317, 7, 4, 3, 317, - 30, 25, 3, 317, 374, 1, 3, 319, - 30, 25, 3, 321, 316, 8, 3, 322, - 315, 1, 3, 322, 315, 2, 3, 322, - 315, 3, 3, 322, 315, 4, 3, 322, - 315, 7, 3, 322, 315, 317, 3, 323, - 315, 1, 3, 323, 315, 2, 3, 323, - 315, 3, 3, 323, 315, 4, 3, 323, - 315, 317, 3, 324, 315, 1, 3, 324, - 315, 2, 3, 324, 315, 3, 3, 324, - 315, 4, 3, 324, 315, 317, 3, 325, - 315, 1, 3, 325, 315, 2, 3, 325, - 315, 3, 3, 325, 315, 4, 3, 325, - 315, 317, 3, 326, 315, 1, 3, 326, - 315, 2, 3, 326, 315, 3, 3, 326, - 315, 4, 3, 326, 315, 317, 3, 327, - 315, 1, 3, 327, 315, 2, 3, 327, - 315, 3, 3, 327, 315, 4, 3, 327, - 315, 317, 3, 328, 315, 1, 3, 328, - 315, 2, 3, 328, 315, 3, 3, 328, - 315, 4, 3, 328, 315, 317, 3, 329, - 315, 1, 3, 329, 315, 2, 3, 329, - 315, 3, 3, 329, 315, 4, 3, 329, - 315, 317, 3, 330, 315, 1, 3, 330, - 315, 2, 3, 330, 315, 3, 3, 330, - 315, 4, 3, 330, 315, 317, 3, 331, - 315, 1, 3, 331, 315, 2, 3, 331, - 315, 3, 3, 331, 315, 4, 3, 331, - 315, 317, 3, 332, 315, 1, 3, 332, - 315, 2, 3, 332, 315, 3, 3, 332, - 315, 4, 3, 332, 315, 317, 3, 333, - 315, 1, 3, 333, 315, 2, 3, 333, - 315, 3, 3, 333, 315, 4, 3, 333, - 315, 317, 3, 334, 315, 1, 3, 334, - 315, 2, 3, 334, 315, 3, 3, 334, - 315, 4, 3, 334, 315, 317, 3, 335, - 315, 1, 3, 335, 315, 2, 3, 335, - 315, 3, 3, 335, 315, 4, 3, 335, - 315, 317, 3, 336, 315, 1, 3, 336, - 315, 2, 3, 336, 315, 3, 3, 336, - 315, 4, 3, 336, 315, 317, 3, 337, - 315, 1, 3, 337, 315, 2, 3, 337, - 315, 3, 3, 337, 315, 4, 3, 337, - 315, 317, 3, 338, 315, 1, 3, 338, - 315, 2, 3, 338, 315, 3, 3, 338, - 315, 4, 3, 338, 315, 317, 3, 339, - 315, 1, 3, 339, 315, 2, 3, 339, - 315, 3, 3, 339, 315, 4, 3, 339, - 315, 317, 3, 340, 315, 1, 3, 340, - 315, 2, 3, 340, 315, 3, 3, 340, - 315, 4, 3, 340, 315, 317, 3, 341, - 315, 1, 3, 341, 315, 2, 3, 341, - 315, 3, 3, 341, 315, 4, 3, 341, - 315, 317, 3, 342, 315, 1, 3, 342, - 315, 2, 3, 342, 315, 3, 3, 342, - 315, 4, 3, 342, 315, 317, 3, 343, - 315, 1, 3, 343, 315, 2, 3, 343, - 315, 3, 3, 343, 315, 4, 3, 343, - 315, 317, 3, 344, 315, 1, 3, 344, - 315, 2, 3, 344, 315, 3, 3, 344, - 315, 4, 3, 344, 315, 317, 3, 345, - 315, 1, 3, 345, 315, 2, 3, 345, - 315, 3, 3, 345, 315, 4, 3, 345, - 315, 317, 3, 346, 315, 1, 3, 346, - 315, 2, 3, 346, 315, 3, 3, 346, - 315, 4, 3, 346, 315, 317, 3, 347, - 315, 1, 3, 347, 315, 2, 3, 347, - 315, 3, 3, 347, 315, 4, 3, 347, - 315, 317, 3, 348, 315, 1, 3, 348, - 315, 2, 3, 348, 315, 3, 3, 348, - 315, 4, 3, 348, 315, 317, 3, 349, - 315, 1, 3, 349, 315, 2, 3, 349, - 315, 3, 3, 349, 315, 4, 3, 349, - 315, 317, 3, 350, 315, 1, 3, 350, - 315, 2, 3, 350, 315, 3, 3, 350, - 315, 4, 3, 350, 315, 317, 3, 351, - 315, 1, 3, 351, 315, 2, 3, 351, - 315, 3, 3, 351, 315, 4, 3, 351, - 315, 317, 3, 352, 315, 1, 3, 352, - 315, 2, 3, 352, 315, 3, 3, 352, - 315, 4, 3, 352, 315, 317, 3, 353, - 315, 1, 3, 353, 315, 2, 3, 353, - 315, 3, 3, 353, 315, 4, 3, 353, - 315, 317, 3, 354, 315, 1, 3, 354, - 315, 2, 3, 354, 315, 3, 3, 354, - 315, 4, 3, 354, 315, 317, 3, 355, - 315, 1, 3, 355, 315, 2, 3, 355, - 315, 3, 3, 355, 315, 4, 3, 355, - 315, 317, 3, 356, 315, 1, 3, 356, - 315, 2, 3, 356, 315, 3, 3, 356, - 315, 4, 3, 356, 315, 317, 3, 357, - 315, 1, 3, 357, 315, 2, 3, 357, - 315, 3, 3, 357, 315, 4, 3, 357, - 315, 317, 3, 358, 315, 1, 3, 358, - 315, 2, 3, 358, 315, 3, 3, 358, - 315, 4, 3, 358, 315, 317, 3, 359, - 315, 1, 3, 359, 315, 2, 3, 359, - 315, 3, 3, 359, 315, 4, 3, 359, - 315, 317, 3, 360, 315, 1, 3, 360, - 315, 2, 3, 360, 315, 3, 3, 360, - 315, 4, 3, 360, 315, 317, 3, 361, - 315, 1, 3, 361, 315, 2, 3, 361, - 315, 3, 3, 361, 315, 4, 3, 361, - 315, 317, 3, 362, 315, 1, 3, 362, - 315, 2, 3, 362, 315, 3, 3, 362, - 315, 4, 3, 362, 315, 317, 3, 363, - 315, 1, 3, 363, 315, 2, 3, 363, - 315, 3, 3, 363, 315, 4, 3, 363, - 315, 317, 3, 364, 315, 1, 3, 364, - 315, 2, 3, 364, 315, 3, 3, 364, - 315, 4, 3, 364, 315, 317, 3, 365, - 315, 1, 3, 365, 315, 2, 3, 365, - 315, 3, 3, 365, 315, 4, 3, 365, - 315, 317, 3, 366, 315, 1, 3, 366, - 315, 2, 3, 366, 315, 3, 3, 366, - 315, 4, 3, 366, 315, 317, 3, 367, - 315, 1, 3, 367, 315, 2, 3, 367, - 315, 3, 3, 367, 315, 4, 3, 367, - 315, 317, 3, 368, 315, 1, 3, 368, - 315, 2, 3, 368, 315, 3, 3, 368, - 315, 4, 3, 368, 315, 317, 3, 369, - 315, 1, 3, 369, 315, 2, 3, 369, - 315, 3, 3, 369, 315, 4, 3, 369, - 315, 317, 3, 370, 315, 1, 3, 370, - 315, 2, 3, 370, 315, 3, 3, 370, - 315, 4, 3, 370, 315, 317, 3, 371, - 315, 1, 3, 371, 315, 2, 3, 371, - 315, 3, 3, 371, 315, 4, 3, 371, - 315, 317, 3, 372, 315, 1, 3, 372, - 315, 2, 3, 372, 315, 3, 3, 372, - 315, 4, 3, 372, 315, 317, 3, 373, - 315, 1, 3, 373, 315, 2, 3, 373, - 315, 3, 3, 373, 315, 4, 3, 373, - 315, 317, 3, 374, 1, 6, 4, 1, - 7, 374, 32, 4, 1, 317, 32, 7, - 4, 4, 317, 7, 32, 4, 4, 317, - 32, 7, 4, 6, 1, 7, 374, 4, + 4, 0, 3, 36, 29, 305, 3, 38, + 37, 323, 3, 39, 157, 322, 3, 39, + 327, 8, 3, 39, 327, 322, 3, 41, + 43, 278, 3, 41, 43, 279, 3, 41, + 43, 280, 3, 41, 43, 281, 3, 41, + 43, 282, 3, 41, 43, 283, 3, 43, + 278, 1, 3, 43, 278, 2, 3, 43, + 278, 3, 3, 43, 278, 4, 3, 43, + 279, 1, 3, 43, 279, 2, 3, 43, + 279, 3, 3, 43, 279, 4, 3, 43, + 280, 1, 3, 43, 280, 2, 3, 43, + 280, 3, 3, 43, 280, 4, 3, 43, + 281, 1, 3, 43, 281, 2, 3, 43, + 281, 3, 3, 43, 281, 4, 3, 43, + 282, 1, 3, 43, 282, 2, 3, 43, + 282, 3, 3, 43, 282, 4, 3, 43, + 283, 1, 3, 43, 283, 2, 3, 43, + 283, 3, 3, 43, 283, 4, 3, 47, + 146, 305, 3, 47, 305, 1, 3, 47, + 305, 2, 3, 47, 305, 3, 3, 47, + 305, 4, 3, 49, 321, 1, 3, 49, + 321, 2, 3, 49, 321, 3, 3, 49, + 321, 4, 3, 49, 321, 323, 3, 51, + 39, 74, 3, 51, 39, 322, 3, 51, + 39, 327, 3, 56, 38, 37, 3, 57, + 7, 2, 3, 57, 7, 3, 3, 57, + 7, 4, 3, 57, 48, 0, 3, 57, + 48, 1, 3, 57, 48, 2, 3, 57, + 48, 3, 3, 57, 48, 4, 3, 57, + 94, 1, 3, 57, 94, 2, 3, 57, + 94, 3, 3, 57, 94, 4, 3, 67, + 69, 0, 3, 67, 69, 62, 3, 68, + 63, 64, 3, 69, 62, 0, 3, 71, + 26, 70, 3, 73, 0, 1, 3, 76, + 23, 13, 3, 77, 0, 1, 3, 81, + 2, 7, 3, 81, 3, 7, 3, 81, + 4, 7, 3, 81, 7, 4, 3, 83, + 23, 13, 3, 86, 0, 1, 3, 89, + 7, 1, 3, 89, 7, 4, 3, 89, + 30, 25, 3, 89, 32, 7, 3, 91, + 30, 25, 3, 91, 92, 323, 3, 94, + 2, 7, 3, 94, 3, 7, 3, 94, + 4, 7, 3, 97, 108, 322, 3, 97, + 157, 322, 3, 98, 99, 0, 3, 98, + 99, 1, 3, 98, 99, 2, 3, 98, + 99, 3, 3, 98, 99, 4, 3, 98, + 99, 29, 3, 100, 101, 0, 3, 100, + 101, 1, 3, 100, 101, 2, 3, 100, + 101, 3, 3, 100, 101, 4, 3, 100, + 101, 29, 3, 106, 107, 0, 3, 106, + 107, 1, 3, 106, 107, 2, 3, 106, + 107, 3, 3, 106, 107, 4, 3, 111, + 113, 290, 3, 111, 299, 322, 3, 148, + 146, 305, 3, 154, 146, 305, 3, 157, + 158, 322, 3, 215, 271, 0, 3, 216, + 271, 0, 3, 217, 271, 0, 3, 218, + 271, 0, 3, 219, 271, 0, 3, 220, + 271, 0, 3, 221, 271, 0, 3, 222, + 271, 0, 3, 223, 271, 0, 3, 224, + 271, 0, 3, 225, 271, 0, 3, 226, + 271, 0, 3, 227, 271, 0, 3, 228, + 271, 0, 3, 229, 271, 0, 3, 230, + 271, 0, 3, 231, 271, 0, 3, 232, + 271, 0, 3, 233, 271, 0, 3, 234, + 271, 0, 3, 235, 271, 0, 3, 236, + 271, 0, 3, 237, 271, 0, 3, 238, + 271, 0, 3, 239, 271, 0, 3, 240, + 271, 0, 3, 241, 271, 0, 3, 242, + 271, 0, 3, 243, 271, 0, 3, 244, + 271, 0, 3, 245, 271, 0, 3, 246, + 271, 0, 3, 247, 271, 0, 3, 248, + 271, 0, 3, 249, 271, 0, 3, 250, + 271, 0, 3, 251, 271, 0, 3, 252, + 271, 0, 3, 253, 271, 0, 3, 254, + 271, 0, 3, 255, 271, 0, 3, 256, + 271, 0, 3, 257, 271, 0, 3, 258, + 271, 0, 3, 259, 271, 0, 3, 260, + 271, 0, 3, 261, 271, 0, 3, 262, + 271, 0, 3, 263, 271, 0, 3, 264, + 271, 0, 3, 265, 271, 0, 3, 266, + 271, 0, 3, 267, 271, 0, 3, 268, + 271, 0, 3, 269, 271, 0, 3, 270, + 271, 0, 3, 287, 38, 37, 3, 292, + 293, 0, 3, 292, 294, 0, 3, 295, + 111, 322, 3, 297, 298, 0, 3, 299, + 111, 322, 3, 300, 301, 0, 3, 305, + 301, 0, 3, 308, 28, 311, 3, 308, + 28, 312, 3, 322, 8, 90, 3, 323, + 7, 1, 3, 323, 7, 4, 3, 323, + 30, 25, 3, 323, 382, 1, 3, 325, + 30, 25, 3, 327, 322, 8, 3, 328, + 321, 1, 3, 328, 321, 2, 3, 328, + 321, 3, 3, 328, 321, 4, 3, 328, + 321, 7, 3, 328, 321, 323, 3, 329, + 321, 1, 3, 329, 321, 2, 3, 329, + 321, 3, 3, 329, 321, 4, 3, 329, + 321, 323, 3, 330, 321, 1, 3, 330, + 321, 2, 3, 330, 321, 3, 3, 330, + 321, 4, 3, 330, 321, 323, 3, 331, + 321, 1, 3, 331, 321, 2, 3, 331, + 321, 3, 3, 331, 321, 4, 3, 331, + 321, 323, 3, 332, 321, 1, 3, 332, + 321, 2, 3, 332, 321, 3, 3, 332, + 321, 4, 3, 332, 321, 323, 3, 333, + 321, 1, 3, 333, 321, 2, 3, 333, + 321, 3, 3, 333, 321, 4, 3, 333, + 321, 323, 3, 334, 321, 1, 3, 334, + 321, 2, 3, 334, 321, 3, 3, 334, + 321, 4, 3, 334, 321, 323, 3, 335, + 321, 1, 3, 335, 321, 2, 3, 335, + 321, 3, 3, 335, 321, 4, 3, 335, + 321, 323, 3, 336, 321, 1, 3, 336, + 321, 2, 3, 336, 321, 3, 3, 336, + 321, 4, 3, 336, 321, 323, 3, 337, + 321, 1, 3, 337, 321, 2, 3, 337, + 321, 3, 3, 337, 321, 4, 3, 337, + 321, 323, 3, 338, 321, 1, 3, 338, + 321, 2, 3, 338, 321, 3, 3, 338, + 321, 4, 3, 338, 321, 323, 3, 339, + 321, 1, 3, 339, 321, 2, 3, 339, + 321, 3, 3, 339, 321, 4, 3, 339, + 321, 323, 3, 340, 321, 1, 3, 340, + 321, 2, 3, 340, 321, 3, 3, 340, + 321, 4, 3, 340, 321, 323, 3, 341, + 321, 1, 3, 341, 321, 2, 3, 341, + 321, 3, 3, 341, 321, 4, 3, 341, + 321, 323, 3, 342, 321, 1, 3, 342, + 321, 2, 3, 342, 321, 3, 3, 342, + 321, 4, 3, 342, 321, 323, 3, 343, + 321, 1, 3, 343, 321, 2, 3, 343, + 321, 3, 3, 343, 321, 4, 3, 343, + 321, 323, 3, 344, 321, 1, 3, 344, + 321, 2, 3, 344, 321, 3, 3, 344, + 321, 4, 3, 344, 321, 323, 3, 345, + 321, 1, 3, 345, 321, 2, 3, 345, + 321, 3, 3, 345, 321, 4, 3, 345, + 321, 323, 3, 346, 321, 1, 3, 346, + 321, 2, 3, 346, 321, 3, 3, 346, + 321, 4, 3, 346, 321, 323, 3, 347, + 321, 1, 3, 347, 321, 2, 3, 347, + 321, 3, 3, 347, 321, 4, 3, 347, + 321, 323, 3, 348, 321, 1, 3, 348, + 321, 2, 3, 348, 321, 3, 3, 348, + 321, 4, 3, 348, 321, 323, 3, 349, + 321, 1, 3, 349, 321, 2, 3, 349, + 321, 3, 3, 349, 321, 4, 3, 349, + 321, 323, 3, 350, 321, 1, 3, 350, + 321, 2, 3, 350, 321, 3, 3, 350, + 321, 4, 3, 350, 321, 323, 3, 351, + 321, 1, 3, 351, 321, 2, 3, 351, + 321, 3, 3, 351, 321, 4, 3, 351, + 321, 323, 3, 352, 321, 1, 3, 352, + 321, 2, 3, 352, 321, 3, 3, 352, + 321, 4, 3, 352, 321, 323, 3, 353, + 321, 1, 3, 353, 321, 2, 3, 353, + 321, 3, 3, 353, 321, 4, 3, 353, + 321, 323, 3, 354, 321, 1, 3, 354, + 321, 2, 3, 354, 321, 3, 3, 354, + 321, 4, 3, 354, 321, 323, 3, 355, + 321, 1, 3, 355, 321, 2, 3, 355, + 321, 3, 3, 355, 321, 4, 3, 355, + 321, 323, 3, 356, 321, 1, 3, 356, + 321, 2, 3, 356, 321, 3, 3, 356, + 321, 4, 3, 356, 321, 323, 3, 357, + 321, 1, 3, 357, 321, 2, 3, 357, + 321, 3, 3, 357, 321, 4, 3, 357, + 321, 323, 3, 358, 321, 1, 3, 358, + 321, 2, 3, 358, 321, 3, 3, 358, + 321, 4, 3, 358, 321, 323, 3, 359, + 321, 1, 3, 359, 321, 2, 3, 359, + 321, 3, 3, 359, 321, 4, 3, 359, + 321, 323, 3, 360, 321, 1, 3, 360, + 321, 2, 3, 360, 321, 3, 3, 360, + 321, 4, 3, 360, 321, 323, 3, 361, + 321, 1, 3, 361, 321, 2, 3, 361, + 321, 3, 3, 361, 321, 4, 3, 361, + 321, 323, 3, 362, 321, 1, 3, 362, + 321, 2, 3, 362, 321, 3, 3, 362, + 321, 4, 3, 362, 321, 323, 3, 363, + 321, 1, 3, 363, 321, 2, 3, 363, + 321, 3, 3, 363, 321, 4, 3, 363, + 321, 323, 3, 364, 321, 1, 3, 364, + 321, 2, 3, 364, 321, 3, 3, 364, + 321, 4, 3, 364, 321, 323, 3, 365, + 321, 1, 3, 365, 321, 2, 3, 365, + 321, 3, 3, 365, 321, 4, 3, 365, + 321, 323, 3, 366, 321, 1, 3, 366, + 321, 2, 3, 366, 321, 3, 3, 366, + 321, 4, 3, 366, 321, 323, 3, 367, + 321, 1, 3, 367, 321, 2, 3, 367, + 321, 3, 3, 367, 321, 4, 3, 367, + 321, 323, 3, 368, 321, 1, 3, 368, + 321, 2, 3, 368, 321, 3, 3, 368, + 321, 4, 3, 368, 321, 323, 3, 369, + 321, 1, 3, 369, 321, 2, 3, 369, + 321, 3, 3, 369, 321, 4, 3, 369, + 321, 323, 3, 370, 321, 1, 3, 370, + 321, 2, 3, 370, 321, 3, 3, 370, + 321, 4, 3, 370, 321, 323, 3, 371, + 321, 1, 3, 371, 321, 2, 3, 371, + 321, 3, 3, 371, 321, 4, 3, 371, + 321, 323, 3, 372, 321, 1, 3, 372, + 321, 2, 3, 372, 321, 3, 3, 372, + 321, 4, 3, 372, 321, 323, 3, 373, + 321, 1, 3, 373, 321, 2, 3, 373, + 321, 3, 3, 373, 321, 4, 3, 373, + 321, 323, 3, 374, 321, 1, 3, 374, + 321, 2, 3, 374, 321, 3, 3, 374, + 321, 4, 3, 374, 321, 323, 3, 375, + 321, 1, 3, 375, 321, 2, 3, 375, + 321, 3, 3, 375, 321, 4, 3, 375, + 321, 323, 3, 376, 321, 1, 3, 376, + 321, 2, 3, 376, 321, 3, 3, 376, + 321, 4, 3, 376, 321, 323, 3, 377, + 321, 1, 3, 377, 321, 2, 3, 377, + 321, 3, 3, 377, 321, 4, 3, 377, + 321, 323, 3, 378, 321, 1, 3, 378, + 321, 2, 3, 378, 321, 3, 3, 378, + 321, 4, 3, 378, 321, 323, 3, 379, + 321, 1, 3, 379, 321, 2, 3, 379, + 321, 3, 3, 379, 321, 4, 3, 379, + 321, 323, 3, 380, 321, 1, 3, 380, + 321, 2, 3, 380, 321, 3, 3, 380, + 321, 4, 3, 380, 321, 323, 3, 381, + 321, 1, 3, 381, 321, 2, 3, 381, + 321, 3, 3, 381, 321, 4, 3, 381, + 321, 323, 3, 382, 1, 6, 4, 1, + 7, 382, 32, 4, 1, 323, 32, 7, + 4, 4, 323, 7, 32, 4, 4, 323, + 32, 7, 4, 6, 1, 7, 382, 4, 6, 1, 86, 0, 4, 6, 73, 0, 1, 4, 6, 77, 0, 1, 4, 6, - 86, 0, 1, 4, 7, 6, 374, 1, - 4, 7, 73, 0, 1, 4, 7, 374, - 1, 6, 4, 7, 374, 1, 32, 4, + 86, 0, 1, 4, 7, 6, 382, 1, + 4, 7, 73, 0, 1, 4, 7, 382, + 1, 6, 4, 7, 382, 1, 32, 4, 18, 15, 21, 0, 4, 20, 84, 7, 2, 4, 20, 84, 7, 3, 4, 20, 84, 7, 4, 4, 27, 1, 72, 0, - 4, 27, 4, 72, 0, 4, 27, 303, - 29, 301, 4, 29, 301, 297, 0, 4, - 29, 305, 301, 1, 4, 29, 305, 301, - 2, 4, 29, 305, 301, 3, 4, 29, - 305, 301, 4, 4, 31, 1, 7, 374, - 4, 31, 1, 320, 317, 4, 31, 1, - 322, 315, 4, 31, 2, 94, 7, 4, - 31, 2, 320, 317, 4, 31, 2, 322, - 315, 4, 31, 3, 94, 7, 4, 31, - 3, 320, 317, 4, 31, 3, 322, 315, + 4, 27, 4, 72, 0, 4, 27, 307, + 29, 305, 4, 29, 305, 301, 0, 4, + 29, 309, 305, 1, 4, 29, 309, 305, + 2, 4, 29, 309, 305, 3, 4, 29, + 309, 305, 4, 4, 31, 1, 7, 382, + 4, 31, 1, 326, 323, 4, 31, 1, + 328, 321, 4, 31, 2, 94, 7, 4, + 31, 2, 326, 323, 4, 31, 2, 328, + 321, 4, 31, 3, 94, 7, 4, 31, + 3, 326, 323, 4, 31, 3, 328, 321, 4, 31, 4, 94, 7, 4, 31, 4, - 320, 317, 4, 31, 4, 322, 315, 4, - 31, 322, 315, 7, 4, 33, 39, 321, - 8, 4, 33, 51, 39, 321, 4, 33, - 321, 316, 8, 4, 38, 37, 30, 25, - 4, 39, 321, 316, 8, 4, 41, 38, - 37, 42, 4, 41, 43, 274, 1, 4, - 41, 43, 274, 2, 4, 41, 43, 274, - 3, 4, 41, 43, 274, 4, 4, 41, - 43, 275, 1, 4, 41, 43, 275, 2, - 4, 41, 43, 275, 3, 4, 41, 43, - 275, 4, 4, 41, 43, 276, 1, 4, - 41, 43, 276, 2, 4, 41, 43, 276, - 3, 4, 41, 43, 276, 4, 4, 41, - 43, 277, 1, 4, 41, 43, 277, 2, - 4, 41, 43, 277, 3, 4, 41, 43, - 277, 4, 4, 41, 43, 278, 1, 4, - 41, 43, 278, 2, 4, 41, 43, 278, - 3, 4, 41, 43, 278, 4, 4, 41, - 43, 279, 1, 4, 41, 43, 279, 2, - 4, 41, 43, 279, 3, 4, 41, 43, - 279, 4, 4, 43, 276, 284, 0, 4, - 43, 277, 284, 0, 4, 43, 278, 284, - 0, 4, 43, 279, 284, 0, 4, 44, - 40, 38, 37, 4, 45, 40, 38, 37, - 4, 47, 146, 301, 1, 4, 47, 146, - 301, 2, 4, 47, 146, 301, 3, 4, - 47, 146, 301, 4, 4, 47, 301, 297, - 0, 4, 49, 315, 1, 317, 4, 49, - 315, 4, 317, 4, 51, 39, 8, 74, - 4, 57, 56, 38, 37, 4, 67, 69, - 62, 0, 4, 76, 23, 13, 14, 4, - 83, 23, 13, 14, 4, 89, 32, 1, - 7, 4, 89, 32, 2, 7, 4, 89, - 32, 3, 7, 4, 89, 32, 4, 7, - 4, 91, 92, 30, 25, 4, 94, 1, - 7, 374, 4, 97, 157, 158, 316, 4, - 98, 99, 1, 0, 4, 98, 99, 4, - 0, 4, 98, 99, 29, 301, 4, 100, - 101, 1, 0, 4, 100, 101, 4, 0, - 4, 100, 101, 29, 301, 4, 106, 107, - 1, 0, 4, 106, 107, 4, 0, 4, - 148, 146, 301, 1, 4, 148, 146, 301, - 2, 4, 148, 146, 301, 3, 4, 148, - 146, 301, 4, 4, 148, 306, 38, 37, - 4, 154, 146, 301, 1, 4, 154, 146, - 301, 2, 4, 154, 146, 301, 3, 4, - 154, 146, 301, 4, 4, 213, 1, 267, - 0, 4, 213, 4, 267, 0, 4, 214, - 1, 267, 0, 4, 214, 4, 267, 0, - 4, 215, 1, 267, 0, 4, 215, 4, - 267, 0, 4, 216, 1, 267, 0, 4, - 216, 4, 267, 0, 4, 217, 1, 267, - 0, 4, 217, 4, 267, 0, 4, 218, - 1, 267, 0, 4, 218, 4, 267, 0, - 4, 219, 1, 267, 0, 4, 219, 4, - 267, 0, 4, 220, 1, 267, 0, 4, - 220, 4, 267, 0, 4, 221, 1, 267, - 0, 4, 221, 4, 267, 0, 4, 222, - 1, 267, 0, 4, 222, 4, 267, 0, - 4, 223, 1, 267, 0, 4, 223, 4, - 267, 0, 4, 224, 1, 267, 0, 4, - 224, 4, 267, 0, 4, 225, 1, 267, - 0, 4, 225, 4, 267, 0, 4, 226, - 1, 267, 0, 4, 226, 4, 267, 0, - 4, 227, 1, 267, 0, 4, 227, 4, - 267, 0, 4, 228, 1, 267, 0, 4, - 228, 4, 267, 0, 4, 229, 1, 267, - 0, 4, 229, 4, 267, 0, 4, 230, - 1, 267, 0, 4, 230, 4, 267, 0, - 4, 231, 1, 267, 0, 4, 231, 4, - 267, 0, 4, 232, 1, 267, 0, 4, - 232, 4, 267, 0, 4, 233, 1, 267, - 0, 4, 233, 4, 267, 0, 4, 234, - 1, 267, 0, 4, 234, 4, 267, 0, - 4, 235, 1, 267, 0, 4, 235, 4, - 267, 0, 4, 236, 1, 267, 0, 4, - 236, 4, 267, 0, 4, 237, 1, 267, - 0, 4, 237, 4, 267, 0, 4, 238, - 1, 267, 0, 4, 238, 4, 267, 0, - 4, 239, 1, 267, 0, 4, 239, 4, - 267, 0, 4, 240, 1, 267, 0, 4, - 240, 4, 267, 0, 4, 241, 1, 267, - 0, 4, 241, 4, 267, 0, 4, 242, - 1, 267, 0, 4, 242, 4, 267, 0, - 4, 243, 1, 267, 0, 4, 243, 4, - 267, 0, 4, 244, 1, 267, 0, 4, - 244, 4, 267, 0, 4, 245, 1, 267, - 0, 4, 245, 4, 267, 0, 4, 246, - 1, 267, 0, 4, 246, 4, 267, 0, - 4, 247, 1, 267, 0, 4, 247, 4, - 267, 0, 4, 248, 1, 267, 0, 4, - 248, 4, 267, 0, 4, 249, 1, 267, - 0, 4, 249, 4, 267, 0, 4, 250, - 1, 267, 0, 4, 250, 4, 267, 0, - 4, 251, 1, 267, 0, 4, 251, 4, - 267, 0, 4, 252, 1, 267, 0, 4, - 252, 4, 267, 0, 4, 253, 1, 267, - 0, 4, 253, 4, 267, 0, 4, 254, - 1, 267, 0, 4, 254, 4, 267, 0, - 4, 255, 1, 267, 0, 4, 255, 4, - 267, 0, 4, 256, 1, 267, 0, 4, - 256, 4, 267, 0, 4, 257, 1, 267, - 0, 4, 257, 4, 267, 0, 4, 258, - 1, 267, 0, 4, 258, 4, 267, 0, - 4, 259, 1, 267, 0, 4, 259, 4, - 267, 0, 4, 260, 1, 267, 0, 4, - 260, 4, 267, 0, 4, 261, 1, 267, - 0, 4, 261, 4, 267, 0, 4, 262, - 1, 267, 0, 4, 262, 4, 267, 0, - 4, 263, 1, 267, 0, 4, 263, 4, - 267, 0, 4, 264, 1, 267, 0, 4, - 264, 4, 267, 0, 4, 265, 1, 267, - 0, 4, 265, 4, 267, 0, 4, 266, - 1, 267, 0, 4, 266, 4, 267, 0, - 4, 296, 1, 297, 0, 4, 296, 4, - 297, 0, 4, 301, 1, 297, 0, 4, - 301, 4, 297, 0, 4, 302, 28, 26, - 70, 4, 317, 7, 374, 1, 4, 322, - 315, 1, 317, 4, 322, 315, 2, 7, - 4, 322, 315, 3, 7, 4, 322, 315, - 4, 7, 4, 322, 315, 4, 317, 4, - 323, 315, 1, 317, 4, 323, 315, 4, - 317, 4, 324, 315, 1, 317, 4, 324, - 315, 4, 317, 4, 325, 315, 1, 317, - 4, 325, 315, 4, 317, 4, 326, 315, - 1, 317, 4, 326, 315, 4, 317, 4, - 327, 315, 1, 317, 4, 327, 315, 4, - 317, 4, 328, 315, 1, 317, 4, 328, - 315, 4, 317, 4, 329, 315, 1, 317, - 4, 329, 315, 4, 317, 4, 330, 315, - 1, 317, 4, 330, 315, 4, 317, 4, - 331, 315, 1, 317, 4, 331, 315, 4, - 317, 4, 332, 315, 1, 317, 4, 332, - 315, 4, 317, 4, 333, 315, 1, 317, - 4, 333, 315, 4, 317, 4, 334, 315, - 1, 317, 4, 334, 315, 4, 317, 4, - 335, 315, 1, 317, 4, 335, 315, 4, - 317, 4, 336, 315, 1, 317, 4, 336, - 315, 4, 317, 4, 337, 315, 1, 317, - 4, 337, 315, 4, 317, 4, 338, 315, - 1, 317, 4, 338, 315, 4, 317, 4, - 339, 315, 1, 317, 4, 339, 315, 4, - 317, 4, 340, 315, 1, 317, 4, 340, - 315, 4, 317, 4, 341, 315, 1, 317, - 4, 341, 315, 4, 317, 4, 342, 315, - 1, 317, 4, 342, 315, 4, 317, 4, - 343, 315, 1, 317, 4, 343, 315, 4, - 317, 4, 344, 315, 1, 317, 4, 344, - 315, 4, 317, 4, 345, 315, 1, 317, - 4, 345, 315, 4, 317, 4, 346, 315, - 1, 317, 4, 346, 315, 4, 317, 4, - 347, 315, 1, 317, 4, 347, 315, 4, - 317, 4, 348, 315, 1, 317, 4, 348, - 315, 4, 317, 4, 349, 315, 1, 317, - 4, 349, 315, 4, 317, 4, 350, 315, - 1, 317, 4, 350, 315, 4, 317, 4, - 351, 315, 1, 317, 4, 351, 315, 4, - 317, 4, 352, 315, 1, 317, 4, 352, - 315, 4, 317, 4, 353, 315, 1, 317, - 4, 353, 315, 4, 317, 4, 354, 315, - 1, 317, 4, 354, 315, 4, 317, 4, - 355, 315, 1, 317, 4, 355, 315, 4, - 317, 4, 356, 315, 1, 317, 4, 356, - 315, 4, 317, 4, 357, 315, 1, 317, - 4, 357, 315, 4, 317, 4, 358, 315, - 1, 317, 4, 358, 315, 4, 317, 4, - 359, 315, 1, 317, 4, 359, 315, 4, - 317, 4, 360, 315, 1, 317, 4, 360, - 315, 4, 317, 4, 361, 315, 1, 317, - 4, 361, 315, 4, 317, 4, 362, 315, - 1, 317, 4, 362, 315, 4, 317, 4, - 363, 315, 1, 317, 4, 363, 315, 4, - 317, 4, 364, 315, 1, 317, 4, 364, - 315, 4, 317, 4, 365, 315, 1, 317, - 4, 365, 315, 4, 317, 4, 366, 315, - 1, 317, 4, 366, 315, 4, 317, 4, - 367, 315, 1, 317, 4, 367, 315, 4, - 317, 4, 368, 315, 1, 317, 4, 368, - 315, 4, 317, 4, 369, 315, 1, 317, - 4, 369, 315, 4, 317, 4, 370, 315, - 1, 317, 4, 370, 315, 4, 317, 4, - 371, 315, 1, 317, 4, 371, 315, 4, - 317, 4, 372, 315, 1, 317, 4, 372, - 315, 4, 317, 4, 373, 315, 1, 317, - 4, 373, 315, 4, 317, 5, 20, 7, - 77, 0, 1, 5, 27, 303, 29, 301, - 1, 5, 27, 303, 29, 301, 2, 5, - 27, 303, 29, 301, 3, 5, 27, 303, - 29, 301, 4, 5, 29, 301, 1, 297, - 0, 5, 29, 301, 4, 297, 0, 5, - 29, 305, 301, 297, 0, 5, 31, 1, - 94, 7, 374, 5, 31, 1, 322, 315, - 317, 5, 31, 2, 322, 315, 7, 5, - 31, 3, 322, 315, 7, 5, 31, 4, - 322, 315, 7, 5, 31, 4, 322, 315, - 317, 5, 33, 39, 321, 316, 8, 5, - 38, 37, 317, 30, 25, 5, 41, 43, - 276, 284, 0, 5, 41, 43, 277, 284, - 0, 5, 41, 43, 278, 284, 0, 5, - 41, 43, 279, 284, 0, 5, 43, 276, - 1, 284, 0, 5, 43, 276, 4, 284, - 0, 5, 43, 277, 1, 284, 0, 5, - 43, 277, 4, 284, 0, 5, 43, 278, - 1, 284, 0, 5, 43, 278, 4, 284, - 0, 5, 43, 279, 1, 284, 0, 5, - 43, 279, 4, 284, 0, 5, 47, 146, - 301, 297, 0, 5, 47, 301, 1, 297, - 0, 5, 47, 301, 4, 297, 0, 5, - 51, 39, 321, 316, 8, 5, 57, 7, - 73, 0, 1, 5, 81, 7, 86, 0, - 1, 5, 91, 92, 317, 30, 25, 5, - 98, 99, 29, 301, 1, 5, 98, 99, - 29, 301, 2, 5, 98, 99, 29, 301, - 3, 5, 98, 99, 29, 301, 4, 5, - 100, 101, 29, 301, 1, 5, 100, 101, - 29, 301, 2, 5, 100, 101, 29, 301, - 3, 5, 100, 101, 29, 301, 4, 5, - 148, 146, 301, 297, 0, 5, 154, 146, - 301, 297, 0, 5, 282, 44, 40, 38, - 37, 5, 322, 315, 1, 7, 374, 5, - 322, 315, 4, 317, 7, 5, 322, 315, - 317, 7, 4, 6, 20, 84, 7, 86, - 0, 1, 6, 27, 303, 29, 301, 297, - 0, 6, 29, 305, 301, 1, 297, 0, - 6, 29, 305, 301, 4, 297, 0, 6, - 31, 1, 322, 315, 7, 374, 6, 31, - 4, 322, 315, 317, 7, 6, 33, 51, - 39, 321, 316, 8, 6, 41, 43, 276, - 1, 284, 0, 6, 41, 43, 276, 4, - 284, 0, 6, 41, 43, 277, 1, 284, - 0, 6, 41, 43, 277, 4, 284, 0, - 6, 41, 43, 278, 1, 284, 0, 6, - 41, 43, 278, 4, 284, 0, 6, 41, - 43, 279, 1, 284, 0, 6, 41, 43, - 279, 4, 284, 0, 6, 47, 146, 301, - 1, 297, 0, 6, 47, 146, 301, 4, - 297, 0, 6, 98, 99, 29, 301, 297, - 0, 6, 100, 101, 29, 301, 297, 0, - 6, 148, 146, 301, 1, 297, 0, 6, - 148, 146, 301, 4, 297, 0, 6, 154, - 146, 301, 1, 297, 0, 6, 154, 146, - 301, 4, 297, 0, 6, 322, 315, 1, - 317, 7, 374, 6, 322, 315, 317, 7, - 374, 1, 7, 27, 303, 29, 301, 1, - 297, 0, 7, 27, 303, 29, 301, 4, - 297, 0, 7, 31, 1, 322, 315, 317, - 7, 374, 7, 98, 99, 29, 301, 1, - 297, 0, 7, 98, 99, 29, 301, 4, - 297, 0, 7, 100, 101, 29, 301, 1, - 297, 0, 7, 100, 101, 29, 301, 4, - 297, 0 + 326, 323, 4, 31, 4, 328, 321, 4, + 31, 328, 321, 7, 4, 33, 39, 327, + 8, 4, 33, 51, 39, 327, 4, 33, + 327, 322, 8, 4, 36, 29, 305, 1, + 4, 36, 29, 305, 2, 4, 36, 29, + 305, 3, 4, 36, 29, 305, 4, 4, + 38, 37, 30, 25, 4, 39, 327, 322, + 8, 4, 41, 38, 37, 42, 4, 41, + 43, 278, 1, 4, 41, 43, 278, 2, + 4, 41, 43, 278, 3, 4, 41, 43, + 278, 4, 4, 41, 43, 279, 1, 4, + 41, 43, 279, 2, 4, 41, 43, 279, + 3, 4, 41, 43, 279, 4, 4, 41, + 43, 280, 1, 4, 41, 43, 280, 2, + 4, 41, 43, 280, 3, 4, 41, 43, + 280, 4, 4, 41, 43, 281, 1, 4, + 41, 43, 281, 2, 4, 41, 43, 281, + 3, 4, 41, 43, 281, 4, 4, 41, + 43, 282, 1, 4, 41, 43, 282, 2, + 4, 41, 43, 282, 3, 4, 41, 43, + 282, 4, 4, 41, 43, 283, 1, 4, + 41, 43, 283, 2, 4, 41, 43, 283, + 3, 4, 41, 43, 283, 4, 4, 43, + 280, 288, 0, 4, 43, 281, 288, 0, + 4, 43, 282, 288, 0, 4, 43, 283, + 288, 0, 4, 44, 40, 38, 37, 4, + 45, 40, 38, 37, 4, 47, 146, 305, + 1, 4, 47, 146, 305, 2, 4, 47, + 146, 305, 3, 4, 47, 146, 305, 4, + 4, 47, 305, 301, 0, 4, 49, 321, + 1, 323, 4, 49, 321, 4, 323, 4, + 51, 39, 8, 74, 4, 57, 56, 38, + 37, 4, 67, 69, 62, 0, 4, 76, + 23, 13, 14, 4, 83, 23, 13, 14, + 4, 89, 32, 1, 7, 4, 89, 32, + 2, 7, 4, 89, 32, 3, 7, 4, + 89, 32, 4, 7, 4, 91, 92, 30, + 25, 4, 94, 1, 7, 382, 4, 97, + 157, 158, 322, 4, 98, 99, 1, 0, + 4, 98, 99, 4, 0, 4, 98, 99, + 29, 305, 4, 100, 101, 1, 0, 4, + 100, 101, 4, 0, 4, 100, 101, 29, + 305, 4, 106, 107, 1, 0, 4, 106, + 107, 4, 0, 4, 148, 146, 305, 1, + 4, 148, 146, 305, 2, 4, 148, 146, + 305, 3, 4, 148, 146, 305, 4, 4, + 148, 310, 38, 37, 4, 154, 146, 305, + 1, 4, 154, 146, 305, 2, 4, 154, + 146, 305, 3, 4, 154, 146, 305, 4, + 4, 215, 1, 271, 0, 4, 215, 4, + 271, 0, 4, 216, 1, 271, 0, 4, + 216, 4, 271, 0, 4, 217, 1, 271, + 0, 4, 217, 4, 271, 0, 4, 218, + 1, 271, 0, 4, 218, 4, 271, 0, + 4, 219, 1, 271, 0, 4, 219, 4, + 271, 0, 4, 220, 1, 271, 0, 4, + 220, 4, 271, 0, 4, 221, 1, 271, + 0, 4, 221, 4, 271, 0, 4, 222, + 1, 271, 0, 4, 222, 4, 271, 0, + 4, 223, 1, 271, 0, 4, 223, 4, + 271, 0, 4, 224, 1, 271, 0, 4, + 224, 4, 271, 0, 4, 225, 1, 271, + 0, 4, 225, 4, 271, 0, 4, 226, + 1, 271, 0, 4, 226, 4, 271, 0, + 4, 227, 1, 271, 0, 4, 227, 4, + 271, 0, 4, 228, 1, 271, 0, 4, + 228, 4, 271, 0, 4, 229, 1, 271, + 0, 4, 229, 4, 271, 0, 4, 230, + 1, 271, 0, 4, 230, 4, 271, 0, + 4, 231, 1, 271, 0, 4, 231, 4, + 271, 0, 4, 232, 1, 271, 0, 4, + 232, 4, 271, 0, 4, 233, 1, 271, + 0, 4, 233, 4, 271, 0, 4, 234, + 1, 271, 0, 4, 234, 4, 271, 0, + 4, 235, 1, 271, 0, 4, 235, 4, + 271, 0, 4, 236, 1, 271, 0, 4, + 236, 4, 271, 0, 4, 237, 1, 271, + 0, 4, 237, 4, 271, 0, 4, 238, + 1, 271, 0, 4, 238, 4, 271, 0, + 4, 239, 1, 271, 0, 4, 239, 4, + 271, 0, 4, 240, 1, 271, 0, 4, + 240, 4, 271, 0, 4, 241, 1, 271, + 0, 4, 241, 4, 271, 0, 4, 242, + 1, 271, 0, 4, 242, 4, 271, 0, + 4, 243, 1, 271, 0, 4, 243, 4, + 271, 0, 4, 244, 1, 271, 0, 4, + 244, 4, 271, 0, 4, 245, 1, 271, + 0, 4, 245, 4, 271, 0, 4, 246, + 1, 271, 0, 4, 246, 4, 271, 0, + 4, 247, 1, 271, 0, 4, 247, 4, + 271, 0, 4, 248, 1, 271, 0, 4, + 248, 4, 271, 0, 4, 249, 1, 271, + 0, 4, 249, 4, 271, 0, 4, 250, + 1, 271, 0, 4, 250, 4, 271, 0, + 4, 251, 1, 271, 0, 4, 251, 4, + 271, 0, 4, 252, 1, 271, 0, 4, + 252, 4, 271, 0, 4, 253, 1, 271, + 0, 4, 253, 4, 271, 0, 4, 254, + 1, 271, 0, 4, 254, 4, 271, 0, + 4, 255, 1, 271, 0, 4, 255, 4, + 271, 0, 4, 256, 1, 271, 0, 4, + 256, 4, 271, 0, 4, 257, 1, 271, + 0, 4, 257, 4, 271, 0, 4, 258, + 1, 271, 0, 4, 258, 4, 271, 0, + 4, 259, 1, 271, 0, 4, 259, 4, + 271, 0, 4, 260, 1, 271, 0, 4, + 260, 4, 271, 0, 4, 261, 1, 271, + 0, 4, 261, 4, 271, 0, 4, 262, + 1, 271, 0, 4, 262, 4, 271, 0, + 4, 263, 1, 271, 0, 4, 263, 4, + 271, 0, 4, 264, 1, 271, 0, 4, + 264, 4, 271, 0, 4, 265, 1, 271, + 0, 4, 265, 4, 271, 0, 4, 266, + 1, 271, 0, 4, 266, 4, 271, 0, + 4, 267, 1, 271, 0, 4, 267, 4, + 271, 0, 4, 268, 1, 271, 0, 4, + 268, 4, 271, 0, 4, 269, 1, 271, + 0, 4, 269, 4, 271, 0, 4, 270, + 1, 271, 0, 4, 270, 4, 271, 0, + 4, 300, 1, 301, 0, 4, 300, 4, + 301, 0, 4, 305, 1, 301, 0, 4, + 305, 4, 301, 0, 4, 306, 28, 26, + 70, 4, 323, 7, 382, 1, 4, 328, + 321, 1, 323, 4, 328, 321, 2, 7, + 4, 328, 321, 3, 7, 4, 328, 321, + 4, 7, 4, 328, 321, 4, 323, 4, + 329, 321, 1, 323, 4, 329, 321, 4, + 323, 4, 330, 321, 1, 323, 4, 330, + 321, 4, 323, 4, 331, 321, 1, 323, + 4, 331, 321, 4, 323, 4, 332, 321, + 1, 323, 4, 332, 321, 4, 323, 4, + 333, 321, 1, 323, 4, 333, 321, 4, + 323, 4, 334, 321, 1, 323, 4, 334, + 321, 4, 323, 4, 335, 321, 1, 323, + 4, 335, 321, 4, 323, 4, 336, 321, + 1, 323, 4, 336, 321, 4, 323, 4, + 337, 321, 1, 323, 4, 337, 321, 4, + 323, 4, 338, 321, 1, 323, 4, 338, + 321, 4, 323, 4, 339, 321, 1, 323, + 4, 339, 321, 4, 323, 4, 340, 321, + 1, 323, 4, 340, 321, 4, 323, 4, + 341, 321, 1, 323, 4, 341, 321, 4, + 323, 4, 342, 321, 1, 323, 4, 342, + 321, 4, 323, 4, 343, 321, 1, 323, + 4, 343, 321, 4, 323, 4, 344, 321, + 1, 323, 4, 344, 321, 4, 323, 4, + 345, 321, 1, 323, 4, 345, 321, 4, + 323, 4, 346, 321, 1, 323, 4, 346, + 321, 4, 323, 4, 347, 321, 1, 323, + 4, 347, 321, 4, 323, 4, 348, 321, + 1, 323, 4, 348, 321, 4, 323, 4, + 349, 321, 1, 323, 4, 349, 321, 4, + 323, 4, 350, 321, 1, 323, 4, 350, + 321, 4, 323, 4, 351, 321, 1, 323, + 4, 351, 321, 4, 323, 4, 352, 321, + 1, 323, 4, 352, 321, 4, 323, 4, + 353, 321, 1, 323, 4, 353, 321, 4, + 323, 4, 354, 321, 1, 323, 4, 354, + 321, 4, 323, 4, 355, 321, 1, 323, + 4, 355, 321, 4, 323, 4, 356, 321, + 1, 323, 4, 356, 321, 4, 323, 4, + 357, 321, 1, 323, 4, 357, 321, 4, + 323, 4, 358, 321, 1, 323, 4, 358, + 321, 4, 323, 4, 359, 321, 1, 323, + 4, 359, 321, 4, 323, 4, 360, 321, + 1, 323, 4, 360, 321, 4, 323, 4, + 361, 321, 1, 323, 4, 361, 321, 4, + 323, 4, 362, 321, 1, 323, 4, 362, + 321, 4, 323, 4, 363, 321, 1, 323, + 4, 363, 321, 4, 323, 4, 364, 321, + 1, 323, 4, 364, 321, 4, 323, 4, + 365, 321, 1, 323, 4, 365, 321, 4, + 323, 4, 366, 321, 1, 323, 4, 366, + 321, 4, 323, 4, 367, 321, 1, 323, + 4, 367, 321, 4, 323, 4, 368, 321, + 1, 323, 4, 368, 321, 4, 323, 4, + 369, 321, 1, 323, 4, 369, 321, 4, + 323, 4, 370, 321, 1, 323, 4, 370, + 321, 4, 323, 4, 371, 321, 1, 323, + 4, 371, 321, 4, 323, 4, 372, 321, + 1, 323, 4, 372, 321, 4, 323, 4, + 373, 321, 1, 323, 4, 373, 321, 4, + 323, 4, 374, 321, 1, 323, 4, 374, + 321, 4, 323, 4, 375, 321, 1, 323, + 4, 375, 321, 4, 323, 4, 376, 321, + 1, 323, 4, 376, 321, 4, 323, 4, + 377, 321, 1, 323, 4, 377, 321, 4, + 323, 4, 378, 321, 1, 323, 4, 378, + 321, 4, 323, 4, 379, 321, 1, 323, + 4, 379, 321, 4, 323, 4, 380, 321, + 1, 323, 4, 380, 321, 4, 323, 4, + 381, 321, 1, 323, 4, 381, 321, 4, + 323, 5, 20, 7, 77, 0, 1, 5, + 27, 307, 29, 305, 1, 5, 27, 307, + 29, 305, 2, 5, 27, 307, 29, 305, + 3, 5, 27, 307, 29, 305, 4, 5, + 29, 305, 1, 301, 0, 5, 29, 305, + 4, 301, 0, 5, 29, 309, 305, 301, + 0, 5, 31, 1, 94, 7, 382, 5, + 31, 1, 328, 321, 323, 5, 31, 2, + 328, 321, 7, 5, 31, 3, 328, 321, + 7, 5, 31, 4, 328, 321, 7, 5, + 31, 4, 328, 321, 323, 5, 33, 39, + 327, 322, 8, 5, 36, 29, 305, 301, + 0, 5, 38, 37, 323, 30, 25, 5, + 41, 43, 280, 288, 0, 5, 41, 43, + 281, 288, 0, 5, 41, 43, 282, 288, + 0, 5, 41, 43, 283, 288, 0, 5, + 43, 280, 1, 288, 0, 5, 43, 280, + 4, 288, 0, 5, 43, 281, 1, 288, + 0, 5, 43, 281, 4, 288, 0, 5, + 43, 282, 1, 288, 0, 5, 43, 282, + 4, 288, 0, 5, 43, 283, 1, 288, + 0, 5, 43, 283, 4, 288, 0, 5, + 47, 146, 305, 301, 0, 5, 47, 305, + 1, 301, 0, 5, 47, 305, 4, 301, + 0, 5, 51, 39, 327, 322, 8, 5, + 57, 7, 73, 0, 1, 5, 81, 7, + 86, 0, 1, 5, 91, 92, 323, 30, + 25, 5, 98, 99, 29, 305, 1, 5, + 98, 99, 29, 305, 2, 5, 98, 99, + 29, 305, 3, 5, 98, 99, 29, 305, + 4, 5, 100, 101, 29, 305, 1, 5, + 100, 101, 29, 305, 2, 5, 100, 101, + 29, 305, 3, 5, 100, 101, 29, 305, + 4, 5, 148, 146, 305, 301, 0, 5, + 154, 146, 305, 301, 0, 5, 286, 44, + 40, 38, 37, 5, 328, 321, 1, 7, + 382, 5, 328, 321, 4, 323, 7, 5, + 328, 321, 323, 7, 4, 6, 20, 84, + 7, 86, 0, 1, 6, 27, 307, 29, + 305, 301, 0, 6, 29, 309, 305, 1, + 301, 0, 6, 29, 309, 305, 4, 301, + 0, 6, 31, 1, 328, 321, 7, 382, + 6, 31, 4, 328, 321, 323, 7, 6, + 33, 51, 39, 327, 322, 8, 6, 36, + 29, 305, 1, 301, 0, 6, 36, 29, + 305, 4, 301, 0, 6, 41, 43, 280, + 1, 288, 0, 6, 41, 43, 280, 4, + 288, 0, 6, 41, 43, 281, 1, 288, + 0, 6, 41, 43, 281, 4, 288, 0, + 6, 41, 43, 282, 1, 288, 0, 6, + 41, 43, 282, 4, 288, 0, 6, 41, + 43, 283, 1, 288, 0, 6, 41, 43, + 283, 4, 288, 0, 6, 47, 146, 305, + 1, 301, 0, 6, 47, 146, 305, 4, + 301, 0, 6, 98, 99, 29, 305, 301, + 0, 6, 100, 101, 29, 305, 301, 0, + 6, 148, 146, 305, 1, 301, 0, 6, + 148, 146, 305, 4, 301, 0, 6, 154, + 146, 305, 1, 301, 0, 6, 154, 146, + 305, 4, 301, 0, 6, 328, 321, 1, + 323, 7, 382, 6, 328, 321, 323, 7, + 382, 1, 7, 27, 307, 29, 305, 1, + 301, 0, 7, 27, 307, 29, 305, 4, + 301, 0, 7, 31, 1, 328, 321, 323, + 7, 382, 7, 98, 99, 29, 305, 1, + 301, 0, 7, 98, 99, 29, 305, 4, + 301, 0, 7, 100, 101, 29, 305, 1, + 301, 0, 7, 100, 101, 29, 305, 4, + 301, 0 }; static const short _zone_scanner_cond_offsets[] = { @@ -868,201 +892,220 @@ static const short _zone_scanner_cond_offsets[] = { 42, 42, 42, 42, 44, 46, 46, 46, 48, 48, 48, 48, 50, 50, 50, 50, 52, 52, 52, 52, 52, 54, 54, 54, - 54, 56, 56, 56, 56, 58, 60, 60, - 60, 62, 62, 62, 62, 62, 64, 64, - 66, 66, 66, 66, 66, 68, 68, 68, - 68, 70, 70, 72, 74, 74, 74, 74, - 74, 74, 74, 74, 76, 76, 76, 78, - 80, 80, 80, 82, 82, 84, 84, 86, - 88, 88, 88, 88, 88, 90, 92, 92, - 92, 92, 92, 94, 94, 96, 98, 98, - 100, 102, 102, 102, 102, 102, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, - 106, 106, 106, 108, 108, 108, 108, 108, - 108, 108, 110, 112, 112, 112, 112, 114, - 116, 116, 116, 116, 116, 116, 118, 118, - 120, 120, 122, 122, 124, 124, 124, 124, - 126, 126, 126, 128, 128, 128, 128, 130, - 130, 132, 132, 132, 132, 134, 134, 134, - 136, 136, 136, 136, 136, 136, 138, 138, - 138, 138, 138, 138, 140, 143, 145, 145, - 147, 149, 151, 153, 153, 155, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, - 160, 162, 165, 167, 169, 172, 174, 174, - 176, 179, 181, 183, 185, 187, 189, 192, - 194, 196, 198, 200, 202, 204, 206, 208, - 210, 212, 214, 216, 218, 220, 222, 224, - 226, 228, 230, 232, 235, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 239, - 241, 243, 246, 248, 250, 252, 254, 256, - 258, 260, 262, 264, 266, 268, 270, 272, - 274, 276, 278, 280, 282, 284, 286, 288, - 293, 298, 303, 308, 308, 308, 310, 310, - 310, 310, 312, 312, 312, 312, 314, 314, - 316, 319, 321, 323, 328, 333, 338, 343, - 346, 348, 353, 358, 360, 362, 364, 366, - 368, 370, 372, 374, 376, 378, 380, 382, - 384, 386, 388, 390, 392, 395, 398, 400, - 403, 405, 405, 405, 405, 405, 405, 405, - 405, 405, 405, 405, 405, 405, 405, 405, - 405, 405, 405, 406, 407, 407, 407, 407, - 407, 408, 410, 412, 414, 416, 416, 418, - 418, 420, 423, 425, 427, 427, 429, 431, - 431, 431, 431, 431, 431, 433, 436, 438, - 440, 442, 444, 444, 446, 448, 448, 448, - 448, 448, 448, 450, 453, 455, 458, 461, - 461, 461, 461, 461, 463, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 466, 468, 470, 472, 472, - 472, 474, 477, 477, 477, 479, 479, 479, - 479, 479, 479, 481, 483, 483, 483, 485, - 485, 485, 485, 487, 487, 487, 487, 489, - 489, 489, 489, 489, 491, 491, 491, 491, - 493, 493, 493, 493, 495, 497, 497, 497, - 499, 499, 499, 499, 499, 501, 501, 503, - 503, 503, 503, 503, 505, 505, 505, 505, - 507, 507, 507, 507, 507, 507, 507, 507, - 509, 509, 509, 511, 513, 513, 513, 515, - 515, 517, 517, 519, 521, 521, 521, 521, - 521, 523, 525, 525, 525, 525, 525, 527, - 527, 529, 531, 531, 533, 535, 535, 535, - 535, 535, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 539, 539, 539, 541, - 541, 541, 541, 541, 541, 541, 543, 545, - 545, 545, 545, 547, 549, 549, 549, 549, - 549, 549, 551, 551, 553, 553, 555, 555, - 557, 557, 557, 557, 559, 559, 559, 561, - 561, 561, 561, 563, 563, 565, 565, 565, - 565, 567, 567, 567, 569, 569, 569, 569, - 569, 569, 571, 571, 571, 571, 571, 571, - 573, 573, 573, 573, 575, 575, 575, 575, - 577, 577, 579, 581, 583, 585, 587, 587, - 589, 592, 595, 598, 600, 602, 604, 606, - 606, 608, 611, 614, 616, 619, 619, 619, - 619, 619, 619, 619, 619, 619, 619, 619, - 619, 619, 619, 619, 619, 619, 619, 619, - 619, 619, 619, 619, 619, 619, 619, 619, - 619, 619, 619, 619, 619, 619, 619, 619, - 619, 619, 619, 619, 619, 619, 619, 619, - 619, 619, 619, 619, 619, 619, 619, 619, - 619, 619, 619, 619, 619, 619, 621, 623, - 623, 623, 623, 623, 623, 625, 628, 628, - 628, 628, 628, 628, 628, 628, 628, 630, - 632, 632, 634, 634, 634, 634, 634, 634, - 634, 634, 634, 634, 634, 634, 634, 634, + 54, 54, 56, 56, 56, 56, 58, 58, + 58, 58, 60, 60, 60, 60, 62, 64, + 64, 64, 66, 66, 66, 66, 66, 68, + 68, 70, 70, 70, 70, 70, 72, 72, + 72, 72, 74, 74, 76, 78, 78, 78, + 78, 78, 78, 78, 78, 80, 80, 80, + 82, 84, 84, 84, 86, 86, 88, 88, + 90, 92, 92, 92, 92, 92, 94, 96, + 96, 96, 96, 96, 98, 98, 100, 102, + 102, 104, 106, 106, 106, 106, 106, 108, + 108, 108, 108, 108, 108, 108, 108, 108, + 108, 110, 110, 110, 112, 112, 112, 112, + 112, 112, 112, 114, 116, 116, 116, 116, + 118, 120, 120, 120, 120, 120, 120, 122, + 122, 124, 124, 126, 126, 128, 128, 128, + 128, 130, 130, 130, 132, 132, 132, 132, + 134, 134, 136, 136, 136, 136, 138, 138, + 138, 140, 140, 140, 140, 140, 140, 142, + 142, 142, 142, 142, 142, 144, 147, 149, + 149, 151, 153, 155, 157, 157, 159, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 164, 166, 169, 171, 173, 176, 178, + 178, 180, 183, 185, 187, 189, 191, 193, + 196, 198, 200, 202, 204, 206, 208, 210, + 212, 214, 216, 218, 220, 222, 224, 226, + 228, 230, 232, 234, 236, 239, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, + 243, 245, 247, 250, 252, 254, 256, 258, + 260, 262, 264, 266, 268, 270, 272, 274, + 276, 278, 280, 282, 284, 286, 288, 290, + 292, 297, 302, 307, 312, 312, 312, 314, + 314, 314, 314, 316, 316, 316, 316, 318, + 318, 320, 323, 325, 327, 332, 337, 342, + 347, 350, 352, 357, 362, 364, 366, 368, + 370, 372, 374, 376, 378, 380, 382, 384, + 386, 388, 390, 392, 394, 396, 399, 402, + 404, 407, 409, 409, 409, 409, 409, 409, + 409, 409, 409, 409, 409, 409, 409, 409, + 409, 409, 409, 409, 410, 411, 411, 411, + 411, 411, 412, 414, 416, 418, 420, 420, + 422, 422, 424, 427, 429, 431, 431, 433, + 435, 435, 435, 435, 435, 435, 437, 440, + 442, 444, 446, 448, 448, 450, 452, 452, + 452, 452, 452, 452, 454, 457, 459, 462, + 465, 465, 465, 465, 465, 467, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 472, 474, + 476, 476, 476, 478, 481, 481, 481, 483, + 483, 483, 483, 483, 483, 485, 487, 487, + 487, 489, 489, 489, 489, 491, 491, 491, + 491, 493, 493, 493, 493, 493, 495, 495, + 495, 495, 495, 497, 497, 497, 497, 499, + 499, 499, 499, 501, 501, 501, 501, 503, + 505, 505, 505, 507, 507, 507, 507, 507, + 509, 509, 511, 511, 511, 511, 511, 513, + 513, 513, 513, 515, 515, 515, 515, 515, + 515, 515, 515, 517, 517, 517, 519, 521, + 521, 521, 523, 523, 525, 525, 527, 529, + 529, 529, 529, 529, 531, 533, 533, 533, + 533, 533, 535, 535, 537, 539, 539, 541, + 543, 543, 543, 543, 543, 545, 545, 545, + 545, 545, 545, 545, 545, 545, 545, 547, + 547, 547, 549, 549, 549, 549, 549, 549, + 549, 551, 553, 553, 553, 553, 555, 557, + 557, 557, 557, 557, 557, 559, 559, 561, + 561, 563, 563, 565, 565, 565, 565, 567, + 567, 567, 569, 569, 569, 569, 571, 571, + 573, 573, 573, 573, 575, 575, 575, 577, + 577, 577, 577, 577, 577, 579, 579, 579, + 579, 579, 579, 581, 581, 581, 581, 583, + 583, 583, 583, 585, 585, 587, 589, 591, + 593, 595, 595, 597, 600, 603, 606, 608, + 610, 612, 614, 614, 616, 619, 622, 624, + 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, + 629, 631, 631, 631, 631, 631, 631, 633, 636, 636, 636, 636, 636, 636, 636, 636, - 636, 636, 636, 636, 636, 636, 638, 638, - 638, 638, 638, 638, 638, 638, 638, 638, - 638, 640, 640, 640, 640, 640, 642, 642, + 636, 638, 640, 640, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, - 642, 642, 642, 642, 642, 644, 644, 644, + 642, 642, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 646, 646, 646, - 646, 646, 648, 648, 648, 648, 648, 648, - 648, 648, 650, 652, 652, 652, 652, 652, + 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 648, 648, 648, 648, 648, + 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 652, 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 652, 652, 652, 652, 652, - 652, 652, 652, 654, 656, 658, 660, 662, - 664, 666, 668, 670, 672, 674, 676, 676, - 676, 676, 676, 679, 681, 681, 683, 686, - 688, 688, 690, 693, 695, 695, 697, 700, - 703, 706, 706, 708, 710, 710, 713, 713, - 715, 717, 717, 720, 720, 722, 724, 724, - 727, 727, 729, 731, 734, 734, 734, 734, - 736, 738, 740, 742, 744, 746, 748, 750, - 752, 754, 756, 758, 760, 762, 764, 766, - 766, 768, 770, 772, 774, 776, 778, 780, - 782, 785, 787, 789, 792, 794, 796, 798, - 801, 803, 805, 807, 810, 812, 814, 816, - 819, 821, 824, 826, 828, 831, 834, 837, - 839, 842, 844, 846, 849, 852, 852, 854, - 856, 858, 860, 862, 864, 864, 867, 870, - 873, 873, 875, 877, 879, 881, 883, 885, - 887, 889, 891, 893, 893, 896, 899, 902, - 905, 908, 908, 910, 912, 914, 916, 918, - 920, 922, 925, 928, 931, 933, 933, 933, - 933, 933, 933, 935, 938, 938, 938, 938, - 938, 940, 942, 944, 946, 948, 950, 950, - 952, 955, 958, 961, 964, 964, 966, 968, - 970, 972, 972, 974, 977, 980, 983, 983, - 985, 987, 989, 991, 993, 995, 1001, 1012, - 1014, 1017, 1023, 1026, 1037, 1040, 1043, 1046, - 1048, 1050, 1052, 1054, 1060, 1063, 1066, 1068, - 1070, 1072, 1074, 1080, 1083, 1086, 1088, 1090, - 1092, 1094, 1100, 1103, 1106, 1109, 1109, 1111, - 1113, 1115, 1117, 1119, 1121, 1123, 1125, 1127, - 1129, 1131, 1133, 1135, 1137, 1139, 1141, 1143, - 1146, 1149, 1152, 1155, 1158, 1161, 1164, 1167, - 1167, 1167, 1167, 1167, 1169, 1171, 1173, 1175, - 1177, 1179, 1181, 1184, 1187, 1190, 1190, 1192, - 1192, 1194, 1196, 1198, 1200, 1202, 1204, 1206, - 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, - 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1211, - 1211, 1213, 1216, 1219, 1222, 1222, 1224, 1226, - 1228, 1230, 1232, 1234, 1234, 1234, 1234, 1237, - 1240, 1243, 1243, 1245, 1247, 1249, 1251, 1253, - 1255, 1255, 1257, 1260, 1263, 1266, 1269, 1269, - 1271, 1273, 1273, 1273, 1276, 1276, 1278, 1280, - 1282, 1284, 1286, 1288, 1288, 1290, 1293, 1296, - 1299, 1302, 1302, 1304, 1306, 1306, 1309, 1309, - 1311, 1313, 1313, 1313, 1313, 1313, 1313, 1313, - 1313, 1313, 1313, 1316, 1316, 1316, 1316, 1316, - 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, - 1316, 1318, 1320, 1322, 1324, 1324, 1327, 1330, - 1330, 1332, 1334, 1336, 1338, 1338, 1341, 1344, - 1344, 1346, 1348, 1348, 1348, 1351, 1351, 1353, - 1355, 1357, 1359, 1361, 1363, 1363, 1366, 1369, - 1372, 1374, 1376, 1378, 1380, 1382, 1384, 1386, - 1388, 1390, 1392, 1392, 1392, 1392, 1392, 1392, - 1392, 1392, 1392, 1394, 1394, 1396, 1399, 1399, - 1399, 1401, 1404, 1404, 1406, 1409, 1411, 1411, - 1413, 1416, 1419, 1419, 1419, 1421, 1424, 1424, - 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, - 1424, 1426, 1429, 1429, 1429, 1431, 1434, 1436, - 1439, 1441, 1444, 1446, 1449, 1449, 1449, 1449, - 1449, 1451, 1454, 1454, 1456, 1459, 1459, 1461, - 1464, 1464, 1470, 1473, 1484, 1487, 1498, 1501, - 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1503, - 1506, 1506, 1506, 1508, 1511, 1511, 1511, 1511, - 1511, 1511, 1511, 1511 + 652, 652, 652, 652, 652, 652, 652, 654, + 654, 654, 654, 654, 656, 656, 656, 656, + 656, 656, 656, 656, 658, 660, 660, 662, + 664, 667, 667, 667, 667, 667, 667, 667, + 667, 667, 667, 667, 667, 667, 667, 667, + 667, 667, 667, 667, 667, 667, 667, 669, + 671, 671, 671, 671, 673, 673, 675, 678, + 678, 678, 678, 678, 678, 678, 678, 678, + 678, 678, 678, 678, 678, 680, 680, 680, + 680, 680, 680, 680, 680, 680, 680, 680, + 680, 680, 680, 680, 680, 680, 682, 682, + 682, 682, 682, 682, 682, 684, 684, 684, + 684, 684, 684, 684, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 686, 686, 686, 686, + 686, 686, 686, 686, 688, 690, 692, 694, + 696, 698, 700, 702, 704, 706, 708, 710, + 710, 710, 710, 710, 713, 715, 715, 717, + 720, 722, 722, 724, 727, 729, 729, 731, + 734, 737, 740, 740, 742, 744, 744, 747, + 747, 749, 751, 751, 754, 754, 756, 758, + 758, 761, 761, 763, 765, 768, 768, 768, + 768, 770, 772, 774, 776, 778, 780, 782, + 784, 786, 788, 790, 792, 794, 796, 798, + 800, 800, 802, 804, 806, 808, 810, 812, + 814, 816, 819, 821, 823, 826, 828, 830, + 832, 835, 837, 839, 841, 844, 846, 848, + 850, 853, 855, 858, 860, 862, 865, 868, + 871, 873, 876, 878, 880, 883, 886, 886, + 888, 890, 892, 894, 896, 898, 898, 901, + 904, 907, 907, 909, 911, 913, 915, 917, + 919, 921, 923, 925, 927, 927, 930, 933, + 936, 939, 942, 942, 944, 946, 948, 950, + 952, 954, 956, 959, 962, 965, 967, 967, + 967, 967, 967, 967, 969, 972, 972, 972, + 972, 972, 974, 976, 978, 980, 982, 984, + 984, 986, 989, 992, 995, 998, 998, 1000, + 1002, 1004, 1006, 1006, 1008, 1011, 1014, 1017, + 1017, 1019, 1021, 1023, 1025, 1027, 1029, 1035, + 1046, 1048, 1051, 1057, 1060, 1071, 1074, 1077, + 1080, 1082, 1084, 1086, 1088, 1094, 1097, 1100, + 1102, 1104, 1106, 1108, 1114, 1117, 1120, 1122, + 1124, 1126, 1128, 1134, 1137, 1140, 1143, 1143, + 1145, 1147, 1149, 1151, 1153, 1155, 1157, 1159, + 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, + 1177, 1180, 1183, 1186, 1189, 1192, 1195, 1198, + 1201, 1201, 1201, 1201, 1201, 1203, 1205, 1207, + 1209, 1211, 1213, 1215, 1218, 1221, 1224, 1224, + 1226, 1226, 1228, 1230, 1232, 1234, 1236, 1238, + 1240, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1245, 1245, 1247, 1250, 1253, 1256, 1256, 1258, + 1260, 1262, 1264, 1266, 1268, 1268, 1268, 1268, + 1271, 1274, 1277, 1277, 1279, 1281, 1283, 1285, + 1287, 1289, 1289, 1291, 1294, 1297, 1300, 1303, + 1303, 1305, 1307, 1307, 1307, 1310, 1310, 1312, + 1314, 1316, 1318, 1320, 1322, 1322, 1324, 1327, + 1330, 1333, 1336, 1336, 1338, 1340, 1340, 1343, + 1343, 1345, 1347, 1347, 1347, 1347, 1347, 1347, + 1347, 1347, 1347, 1347, 1350, 1350, 1350, 1350, + 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, + 1350, 1350, 1352, 1354, 1356, 1358, 1358, 1361, + 1364, 1364, 1366, 1368, 1370, 1372, 1372, 1375, + 1378, 1378, 1380, 1382, 1382, 1382, 1385, 1385, + 1387, 1389, 1391, 1393, 1395, 1397, 1397, 1400, + 1403, 1406, 1406, 1406, 1408, 1410, 1412, 1414, + 1416, 1418, 1420, 1422, 1424, 1426, 1426, 1426, + 1426, 1426, 1426, 1426, 1426, 1426, 1428, 1428, + 1430, 1433, 1433, 1433, 1435, 1438, 1438, 1440, + 1443, 1445, 1445, 1447, 1450, 1453, 1453, 1453, + 1453, 1455, 1458, 1458, 1460, 1463, 1465, 1468, + 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, + 1468, 1468, 1470, 1473, 1473, 1473, 1475, 1478, + 1480, 1483, 1485, 1488, 1490, 1493, 1493, 1493, + 1493, 1493, 1495, 1498, 1498, 1500, 1503, 1503, + 1505, 1508, 1508, 1514, 1517, 1528, 1531, 1542, + 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, + 1547, 1550, 1550, 1550, 1552, 1555, 1555, 1555, + 1555, 1555, 1555, 1555, 1555, 1555 }; static const char _zone_scanner_cond_lengths[] = { @@ -1072,50 +1115,52 @@ static const char _zone_scanner_cond_lengths[] = { 0, 0, 0, 2, 2, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 2, 2, 0, 0, - 2, 0, 0, 0, 0, 2, 0, 2, - 0, 0, 0, 0, 2, 0, 0, 0, - 2, 0, 2, 2, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 2, 2, - 0, 0, 2, 0, 2, 0, 2, 2, - 0, 0, 0, 0, 2, 2, 0, 0, - 0, 0, 2, 0, 2, 2, 0, 2, + 0, 2, 0, 0, 0, 2, 0, 0, + 0, 2, 0, 0, 0, 2, 2, 0, + 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 2, 0, 0, 0, 0, 0, - 0, 2, 2, 0, 0, 0, 2, 2, - 0, 0, 0, 0, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 0, 0, 2, - 0, 0, 2, 0, 0, 0, 2, 0, - 2, 0, 0, 0, 2, 0, 0, 2, - 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 2, 3, 2, 0, 2, - 2, 2, 2, 0, 2, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 2, 3, 2, 2, 3, 2, 0, 2, - 3, 2, 2, 2, 2, 2, 3, 2, + 0, 2, 0, 2, 2, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 2, + 2, 0, 0, 2, 0, 2, 0, 2, + 2, 0, 0, 0, 0, 2, 2, 0, + 0, 0, 0, 2, 0, 2, 2, 0, + 2, 2, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 2, 2, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 0, 0, + 2, 0, 0, 2, 0, 0, 0, 2, + 0, 2, 0, 0, 0, 2, 0, 0, + 2, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 2, 3, 2, 0, + 2, 2, 2, 2, 0, 2, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 3, 2, 2, 3, 2, 0, + 2, 3, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, - 2, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 5, - 5, 5, 5, 0, 0, 2, 0, 0, - 0, 2, 0, 0, 0, 2, 0, 2, - 3, 2, 2, 5, 5, 5, 5, 3, - 2, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 3, 2, 3, - 2, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, 2, 0, + 2, 3, 2, 2, 5, 5, 5, 5, + 3, 2, 5, 5, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 3, 2, + 3, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 0, 0, 0, + 0, 1, 2, 2, 2, 2, 0, 2, + 0, 2, 3, 2, 2, 0, 2, 2, + 0, 0, 0, 0, 0, 2, 3, 2, + 2, 2, 2, 0, 2, 2, 0, 0, + 0, 0, 0, 2, 3, 2, 3, 3, + 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 0, 0, 0, 0, - 1, 2, 2, 2, 2, 0, 2, 0, - 2, 3, 2, 2, 0, 2, 2, 0, - 0, 0, 0, 0, 2, 3, 2, 2, - 2, 2, 0, 2, 2, 0, 0, 0, - 0, 0, 2, 3, 2, 3, 3, 0, - 0, 0, 0, 2, 3, 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, @@ -1138,53 +1183,69 @@ static const char _zone_scanner_cond_lengths[] = { 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, 2, 2, 2, 0, 0, - 2, 3, 0, 0, 2, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 2, 2, 2, + 0, 0, 2, 3, 0, 0, 2, 0, + 0, 0, 0, 0, 2, 2, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, - 0, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 2, 2, 0, 0, 2, - 0, 0, 0, 0, 2, 0, 2, 0, - 0, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 2, 2, 0, 0, 2, 0, - 2, 0, 2, 2, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 0, 2, 0, - 2, 2, 0, 2, 2, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 2, 2, + 0, 0, 2, 0, 0, 0, 0, 2, + 0, 2, 0, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 2, 2, 0, + 0, 2, 0, 2, 0, 2, 2, 0, + 0, 0, 0, 2, 2, 0, 0, 0, + 0, 2, 0, 2, 2, 0, 2, 2, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, + 2, 2, 0, 0, 0, 2, 2, 0, + 0, 0, 0, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 0, 0, 2, 0, + 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 2, 2, 0, - 0, 0, 2, 2, 0, 0, 0, 0, - 0, 2, 0, 2, 0, 2, 0, 2, - 0, 0, 0, 2, 0, 0, 2, 0, - 0, 0, 2, 0, 2, 0, 0, 0, - 2, 0, 0, 2, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 2, 0, 0, 0, 2, - 0, 2, 2, 2, 2, 2, 0, 2, - 3, 3, 3, 2, 2, 2, 2, 0, - 2, 3, 3, 2, 3, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 2, 2, 2, 2, + 2, 0, 2, 3, 3, 3, 2, 2, + 2, 2, 0, 2, 3, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, - 0, 0, 0, 0, 2, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 2, 3, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 2, 2, 0, 2, 2, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 2, + 0, 0, 0, 2, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 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, @@ -1204,69 +1265,70 @@ static const char _zone_scanner_cond_lengths[] = { 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, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 0, - 0, 0, 3, 2, 0, 2, 3, 2, - 0, 2, 3, 2, 0, 2, 3, 3, - 3, 0, 2, 2, 0, 3, 0, 2, - 2, 0, 3, 0, 2, 2, 0, 3, - 0, 2, 2, 3, 0, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 0, 0, 0, 3, 2, 0, 2, 3, + 2, 0, 2, 3, 2, 0, 2, 3, + 3, 3, 0, 2, 2, 0, 3, 0, + 2, 2, 0, 3, 0, 2, 2, 0, + 3, 0, 2, 2, 3, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 2, 2, 3, 2, 2, 2, 3, - 2, 2, 2, 3, 2, 2, 2, 3, - 2, 3, 2, 2, 3, 3, 3, 2, - 3, 2, 2, 3, 3, 0, 2, 2, - 2, 2, 2, 2, 0, 3, 3, 3, 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 0, 3, 3, 3, 3, + 2, 3, 2, 2, 3, 2, 2, 2, + 3, 2, 2, 2, 3, 2, 2, 2, + 3, 2, 3, 2, 2, 3, 3, 3, + 2, 3, 2, 2, 3, 3, 0, 2, + 2, 2, 2, 2, 2, 0, 3, 3, 3, 0, 2, 2, 2, 2, 2, 2, - 2, 3, 3, 3, 2, 0, 0, 0, - 0, 0, 2, 3, 0, 0, 0, 0, - 2, 2, 2, 2, 2, 2, 0, 2, - 3, 3, 3, 3, 0, 2, 2, 2, - 2, 0, 2, 3, 3, 3, 0, 2, - 2, 2, 2, 2, 2, 6, 11, 2, - 3, 6, 3, 11, 3, 3, 3, 2, + 2, 2, 2, 2, 0, 3, 3, 3, + 3, 3, 0, 2, 2, 2, 2, 2, + 2, 2, 3, 3, 3, 2, 0, 0, + 0, 0, 0, 2, 3, 0, 0, 0, + 0, 2, 2, 2, 2, 2, 2, 0, + 2, 3, 3, 3, 3, 0, 2, 2, + 2, 2, 0, 2, 3, 3, 3, 0, + 2, 2, 2, 2, 2, 2, 6, 11, + 2, 3, 6, 3, 11, 3, 3, 3, + 2, 2, 2, 2, 6, 3, 3, 2, 2, 2, 2, 6, 3, 3, 2, 2, - 2, 2, 6, 3, 3, 2, 2, 2, - 2, 6, 3, 3, 3, 0, 2, 2, + 2, 2, 6, 3, 3, 3, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 3, - 3, 3, 3, 3, 3, 3, 3, 0, - 0, 0, 0, 2, 2, 2, 2, 2, - 2, 2, 3, 3, 3, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, - 2, 3, 3, 3, 0, 2, 2, 2, - 2, 2, 2, 0, 0, 0, 3, 3, - 3, 0, 2, 2, 2, 2, 2, 2, - 0, 2, 3, 3, 3, 3, 0, 2, - 2, 0, 0, 3, 0, 2, 2, 2, - 2, 2, 2, 0, 2, 3, 3, 3, - 3, 0, 2, 2, 0, 3, 0, 2, + 3, 3, 3, 3, 3, 3, 3, 3, + 0, 0, 0, 0, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 0, 2, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 2, 0, 3, 3, 0, - 2, 2, 2, 2, 0, 3, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 3, + 0, 2, 3, 3, 3, 0, 2, 2, + 2, 2, 2, 2, 0, 0, 0, 3, + 3, 3, 0, 2, 2, 2, 2, 2, + 2, 0, 2, 3, 3, 3, 3, 0, 2, 2, 0, 0, 3, 0, 2, 2, - 2, 2, 2, 2, 0, 3, 3, 3, - 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 2, 3, 3, + 3, 3, 0, 2, 2, 0, 3, 0, 2, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 2, 3, 0, 0, - 2, 3, 0, 2, 3, 2, 0, 2, - 3, 3, 0, 0, 2, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 2, 3, 0, 0, 2, 3, 2, 3, - 2, 3, 2, 3, 0, 0, 0, 0, - 2, 3, 0, 2, 3, 0, 2, 3, - 0, 6, 3, 11, 3, 11, 3, 0, - 0, 0, 0, 0, 0, 0, 2, 3, - 0, 0, 2, 3, 0, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 2, 2, 2, 0, 3, 3, + 0, 2, 2, 2, 2, 0, 3, 3, + 0, 2, 2, 0, 0, 3, 0, 2, + 2, 2, 2, 2, 2, 0, 3, 3, + 3, 0, 0, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 2, + 3, 0, 0, 2, 3, 0, 2, 3, + 2, 0, 2, 3, 3, 0, 0, 0, + 2, 3, 0, 2, 3, 2, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 0, 0, 2, 3, 2, + 3, 2, 3, 2, 3, 0, 0, 0, + 0, 2, 3, 0, 2, 3, 0, 2, + 3, 0, 6, 3, 11, 3, 11, 3, + 0, 0, 0, 0, 0, 0, 0, 2, + 3, 0, 0, 2, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0 }; static const short _zone_scanner_cond_keys[] = { @@ -1305,6 +1367,7 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, @@ -1417,6 +1480,7 @@ static const short _zone_scanner_cond_keys[] = { 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, @@ -1434,26 +1498,32 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, 10, 10, 59, 59, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, -128, 9, 10, 10, + 11, 127, -128, 9, 10, 10, 11, 127, + 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, @@ -1465,149 +1535,104 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, + -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, -128, 9, 10, 10, + 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, -128, 9, 10, 10, 11, 127, + -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - -128, 9, 10, 10, 11, 127, -128, 9, + 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, -128, 9, 10, 10, 11, 127, - -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, 10, 10, 59, 59, -128, 9, + -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, - 11, 127, -128, 9, 10, 10, 11, 127, + 11, 127, 10, 10, 59, 59, 10, 10, + 59, 59, -128, 9, 10, 10, 11, 127, + 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, - -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 9, 9, - 10, 10, 32, 32, 40, 40, 41, 41, - 59, 59, 9, 9, 10, 10, 32, 32, - 40, 40, 41, 41, 43, 43, 47, 47, - 48, 57, 59, 59, 65, 90, 97, 122, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, 9, 9, 10, 10, 32, 32, - 40, 40, 41, 41, 59, 59, -128, 9, - 10, 10, 11, 127, 9, 9, 10, 10, - 32, 32, 40, 40, 41, 41, 43, 43, - 47, 47, 48, 57, 59, 59, 65, 90, - 97, 122, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 9, 9, 10, 10, - 32, 32, 40, 40, 41, 41, 59, 59, - -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 9, 9, 10, 10, - 32, 32, 40, 40, 41, 41, 59, 59, - -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 9, 9, 10, 10, - 32, 32, 40, 40, 41, 41, 59, 59, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, -128, 9, - 10, 10, 11, 127, -128, 9, 10, 10, - 11, 127, -128, 9, 10, 10, 11, 127, - -128, 9, 10, 10, 11, 127, -128, 9, + 59, 59, 9, 9, 10, 10, 32, 32, + 40, 40, 41, 41, 59, 59, 9, 9, + 10, 10, 32, 32, 40, 40, 41, 41, + 43, 43, 47, 47, 48, 57, 59, 59, + 65, 90, 97, 122, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 9, 9, + 10, 10, 32, 32, 40, 40, 41, 41, + 59, 59, -128, 9, 10, 10, 11, 127, + 9, 9, 10, 10, 32, 32, 40, 40, + 41, 41, 43, 43, 47, 47, 48, 57, + 59, 59, 65, 90, 97, 122, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, - -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, + 9, 9, 10, 10, 32, 32, 40, 40, + 41, 41, 59, 59, -128, 9, 10, 10, + 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, + 9, 9, 10, 10, 32, 32, 40, 40, + 41, 41, 59, 59, -128, 9, 10, 10, + 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, + 9, 9, 10, 10, 32, 32, 40, 40, + 41, 41, 59, 59, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, - 11, 127, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, + 10, 10, 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, -128, 9, - 10, 10, 11, 127, 10, 10, 59, 59, - 10, 10, 59, 59, 10, 10, 59, 59, - 10, 10, 59, 59, -128, 9, 10, 10, - 11, 127, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, @@ -1617,13 +1642,61 @@ static const short _zone_scanner_cond_keys[] = { 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, -128, 9, 10, 10, + 11, 127, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, - -128, 9, 10, 10, 11, 127, 10, 10, - 59, 59, -128, 9, 10, 10, 11, 127, - 10, 10, 59, 59, -128, 9, 10, 10, + 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, -128, 9, + 10, 10, 11, 127, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, -128, 9, 10, 10, + 11, 127, -128, 9, 10, 10, 11, 127, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, -128, 9, + 10, 10, 11, 127, -128, 9, 10, 10, + 11, 127, -128, 9, 10, 10, 11, 127, + 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, -128, 9, 10, 10, 11, 127, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, + 59, 59, 10, 10, 59, 59, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, + -128, 9, 10, 10, 11, 127, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, 10, 10, 59, 59, + 10, 10, 59, 59, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, + -128, 9, 10, 10, 11, 127, 10, 10, + 59, 59, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, -128, 9, 10, 10, + 11, 127, 10, 10, 59, 59, -128, 9, + 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, 11, 127, 10, 10, 59, 59, -128, 9, 10, 10, @@ -1659,8 +1732,9 @@ static const char _zone_scanner_cond_spaces[] = { 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -1668,49 +1742,49 @@ static const char _zone_scanner_cond_spaces[] = { 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 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, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, - 7, 7, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, + 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 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, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, - 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 7, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 7, - 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 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, 7, 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, 0, - 0, 0, 0, 2, 3, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 3, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 0, - 0, 0, 7, 7, 7, 7, 7, 7, - 7, 7, 0, 0, 0, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 7, 0, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 7, 0, 0, + 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -1732,7 +1806,10 @@ static const char _zone_scanner_cond_spaces[] = { 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 7, 7, 7, 7, 7, + 7, 7, 7, 0, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 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, @@ -1741,18 +1818,19 @@ static const char _zone_scanner_cond_spaces[] = { 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, 7, - 7, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 7, 7, 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, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 0, 0, - 0, 7, 7, 7, 7, 0, 0, 0, - 7, 7, 7, 7, 7, 7, 0, 0, - 0, 7, 7, 7, 7, 7, 7, 0, + 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 7, 7, 7, 7, + 7, 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, @@ -1765,41 +1843,41 @@ static const char _zone_scanner_cond_spaces[] = { 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, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 0, + 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 10, 13, 10, + 10, 10, 13, 5, 8, 5, 5, 5, + 5, 5, 5, 8, 5, 5, 1, 1, + 8, 8, 8, 6, 11, 6, 6, 6, + 11, 9, 9, 9, 10, 13, 10, 10, + 10, 5, 5, 5, 13, 5, 5, 12, + 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 13, 10, 10, 10, - 13, 5, 8, 5, 5, 5, 5, 5, - 5, 8, 5, 5, 1, 1, 8, 8, - 8, 6, 11, 6, 6, 6, 11, 9, - 9, 9, 10, 13, 10, 10, 10, 5, - 5, 5, 13, 5, 5, 12, 12, 12, + 10, 13, 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 13, - 10, 10, 10, 13, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 13, 10, 10, + 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 13, 10, 10, 10, 13, + 10, 13, 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 13, - 10, 10, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, + 1, 1, 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, @@ -1807,12 +1885,11 @@ static const char _zone_scanner_cond_spaces[] = { 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, 7, - 7, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 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, - 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 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, @@ -1822,24 +1899,26 @@ static const char _zone_scanner_cond_spaces[] = { 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, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, + 7, 7, 0, 0, 7, 7, 0, 0, + 0, 7, 7, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 7, 7, 0, + 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, - 0, 0, 0, 7, 7, 0, 0, 0, + 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, - 7, 0, 0, 0, 7, 7, 0, 0, - 0, 7, 7, 0, 0, 0, 7, 7, - 0, 0, 0, 7, 7, 0, 0, 0, - 6, 11, 6, 6, 6, 11, 9, 9, - 9, 5, 8, 5, 5, 5, 5, 5, - 5, 8, 5, 5, 8, 8, 8, 10, - 13, 10, 10, 10, 5, 5, 5, 13, - 5, 5, 12, 12, 12, 7, 7, 0, - 0, 0, 7, 7, 0, 0, 0, 0 + 7, 0, 0, 0, 6, 11, 6, 6, + 6, 11, 9, 9, 9, 5, 8, 5, + 5, 5, 5, 5, 5, 8, 5, 5, + 8, 8, 8, 10, 13, 10, 10, 10, + 5, 5, 5, 13, 5, 5, 12, 12, + 12, 7, 7, 0, 0, 0, 7, 7, + 0, 0, 0, 0 }; static const short _zone_scanner_key_offsets[] = { @@ -1848,202 +1927,221 @@ static const short _zone_scanner_key_offsets[] = { 284, 328, 338, 340, 350, 364, 378, 382, 384, 386, 388, 390, 400, 410, 412, 414, 424, 426, 428, 430, 440, 442, 444, 446, - 456, 462, 464, 466, 468, 478, 482, 484, - 486, 496, 498, 500, 502, 512, 524, 526, - 528, 538, 540, 542, 544, 545, 555, 556, - 566, 570, 572, 574, 576, 586, 588, 590, - 592, 602, 606, 612, 654, 656, 658, 660, - 662, 664, 666, 668, 678, 682, 684, 694, - 704, 710, 711, 721, 722, 732, 734, 744, - 754, 758, 760, 762, 764, 774, 784, 790, - 792, 794, 796, 806, 808, 818, 830, 832, - 843, 855, 857, 859, 861, 863, 873, 875, - 877, 879, 881, 883, 885, 887, 889, 891, - 901, 903, 905, 915, 923, 925, 927, 929, - 931, 933, 943, 953, 955, 957, 959, 969, - 979, 991, 993, 995, 997, 999, 1009, 1011, - 1021, 1023, 1033, 1035, 1045, 1047, 1049, 1051, - 1061, 1063, 1065, 1075, 1081, 1083, 1085, 1095, - 1097, 1107, 1109, 1111, 1113, 1125, 1127, 1129, - 1139, 1141, 1143, 1145, 1147, 1149, 1159, 1161, - 1163, 1165, 1167, 1169, 1179, 1182, 1228, 1232, - 1238, 1282, 1300, 1308, 1320, 1328, 1331, 1332, - 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1356, - 1362, 1406, 1409, 1427, 1471, 1474, 1482, 1494, - 1502, 1505, 1523, 1579, 1599, 1618, 1664, 1670, - 1684, 1698, 1756, 1774, 1788, 1798, 1810, 1822, - 1834, 1848, 1860, 1874, 1884, 1894, 1910, 1930, - 1944, 1954, 1964, 1974, 1980, 1994, 1996, 1998, - 2000, 2002, 2004, 2010, 2012, 2014, 2020, 2028, - 2048, 2094, 2100, 2120, 2178, 2196, 2210, 2220, - 2232, 2244, 2256, 2270, 2282, 2296, 2306, 2316, - 2332, 2352, 2366, 2376, 2386, 2396, 2411, 2457, - 2471, 2485, 2501, 2517, 2519, 2521, 2531, 2533, - 2535, 2537, 2547, 2549, 2551, 2553, 2563, 2565, - 2575, 2581, 2595, 2609, 2625, 2641, 2657, 2673, - 2676, 2734, 2748, 2762, 2778, 2790, 2798, 2808, - 2818, 2828, 2840, 2850, 2862, 2870, 2878, 2892, - 2910, 2922, 2930, 2938, 2946, 2952, 2958, 2968, - 2974, 2983, 2984, 2985, 2996, 3012, 3028, 3030, - 3032, 3034, 3050, 3056, 3062, 3068, 3080, 3086, - 3088, 3090, 3102, 3110, 3118, 3124, 3130, 3132, - 3134, 3142, 3148, 3156, 3176, 3184, 3185, 3195, - 3207, 3217, 3220, 3226, 3242, 3252, 3270, 3278, - 3279, 3281, 3283, 3285, 3295, 3303, 3306, 3312, - 3324, 3332, 3350, 3360, 3378, 3386, 3387, 3389, - 3391, 3393, 3403, 3411, 3417, 3433, 3436, 3439, - 3446, 3453, 3461, 3469, 3486, 3489, 3490, 3526, - 3540, 3542, 3544, 3550, 3552, 3554, 3556, 3562, - 3564, 3566, 3568, 3574, 3576, 3582, 3592, 3594, - 3600, 3604, 3606, 3608, 3610, 3612, 3618, 3624, - 3626, 3628, 3634, 3636, 3638, 3640, 3646, 3648, - 3650, 3652, 3658, 3664, 3666, 3668, 3670, 3676, - 3680, 3682, 3684, 3690, 3692, 3694, 3696, 3702, - 3710, 3712, 3714, 3720, 3722, 3724, 3726, 3727, - 3733, 3734, 3740, 3744, 3746, 3748, 3750, 3756, - 3758, 3760, 3762, 3768, 3770, 3772, 3774, 3776, - 3778, 3780, 3782, 3788, 3792, 3794, 3800, 3806, - 3812, 3813, 3819, 3820, 3826, 3828, 3834, 3840, - 3844, 3846, 3848, 3850, 3856, 3862, 3868, 3870, - 3872, 3874, 3880, 3882, 3888, 3896, 3898, 3905, - 3913, 3915, 3917, 3919, 3921, 3927, 3929, 3931, - 3933, 3935, 3937, 3939, 3941, 3943, 3945, 3951, - 3953, 3955, 3961, 3969, 3971, 3973, 3975, 3977, - 3979, 3985, 3991, 3993, 3995, 3997, 4003, 4009, - 4021, 4023, 4025, 4027, 4029, 4035, 4037, 4043, - 4045, 4051, 4053, 4059, 4061, 4063, 4065, 4071, - 4073, 4075, 4081, 4087, 4089, 4091, 4097, 4099, - 4105, 4107, 4109, 4111, 4119, 4121, 4123, 4129, - 4131, 4133, 4135, 4137, 4139, 4145, 4147, 4149, - 4151, 4153, 4155, 4161, 4171, 4217, 4235, 4237, - 4239, 4249, 4252, 4262, 4264, 4274, 4278, 4280, - 4282, 4284, 4286, 4296, 4306, 4308, 4310, 4320, - 4322, 4324, 4326, 4336, 4338, 4340, 4342, 4352, - 4358, 4360, 4362, 4364, 4374, 4378, 4380, 4382, - 4392, 4394, 4396, 4398, 4408, 4420, 4422, 4424, - 4434, 4436, 4438, 4440, 4441, 4451, 4452, 4462, - 4466, 4468, 4470, 4472, 4482, 4484, 4486, 4488, - 4498, 4500, 4502, 4504, 4506, 4508, 4510, 4512, - 4522, 4526, 4528, 4538, 4548, 4554, 4555, 4565, - 4566, 4576, 4578, 4588, 4598, 4602, 4604, 4606, - 4608, 4618, 4628, 4634, 4636, 4638, 4640, 4650, - 4652, 4662, 4674, 4676, 4687, 4699, 4701, 4703, - 4705, 4707, 4717, 4719, 4721, 4723, 4725, 4727, - 4729, 4731, 4733, 4735, 4745, 4747, 4749, 4759, - 4767, 4769, 4771, 4773, 4775, 4777, 4787, 4797, - 4799, 4801, 4803, 4813, 4823, 4835, 4837, 4839, - 4841, 4843, 4853, 4855, 4865, 4867, 4877, 4879, - 4889, 4891, 4893, 4895, 4905, 4907, 4909, 4919, - 4925, 4927, 4929, 4939, 4941, 4951, 4953, 4955, - 4957, 4969, 4971, 4973, 4983, 4985, 4987, 4989, - 4991, 4993, 5003, 5005, 5007, 5009, 5011, 5013, - 5023, 5025, 5027, 5029, 5039, 5041, 5043, 5045, - 5055, 5057, 5067, 5073, 5081, 5089, 5101, 5107, - 5123, 5126, 5129, 5132, 5138, 5147, 5157, 5169, - 5175, 5191, 5194, 5197, 5205, 5208, 5216, 5217, - 5218, 5219, 5227, 5228, 5229, 5230, 5231, 5232, - 5233, 5241, 5242, 5243, 5251, 5252, 5253, 5255, - 5256, 5257, 5258, 5259, 5267, 5268, 5269, 5270, - 5271, 5279, 5280, 5281, 5283, 5293, 5294, 5295, - 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, - 5304, 5305, 5306, 5307, 5315, 5316, 5317, 5318, - 5319, 5327, 5328, 5329, 5330, 5338, 5348, 5367, - 5368, 5369, 5370, 5371, 5378, 5388, 5391, 5392, - 5393, 5394, 5395, 5396, 5397, 5398, 5405, 5415, - 5431, 5432, 5442, 5443, 5444, 5445, 5453, 5460, - 5467, 5475, 5483, 5491, 5492, 5499, 5507, 5515, - 5532, 5533, 5534, 5535, 5537, 5538, 5539, 5540, - 5541, 5542, 5546, 5549, 5554, 5557, 5571, 5574, - 5575, 5576, 5577, 5578, 5579, 5587, 5594, 5603, - 5610, 5628, 5635, 5636, 5637, 5639, 5652, 5658, - 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, - 5667, 5672, 5676, 5678, 5682, 5693, 5697, 5698, - 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, - 5707, 5708, 5709, 5710, 5711, 5721, 5722, 5723, - 5724, 5725, 5735, 5736, 5737, 5738, 5739, 5742, - 5744, 5747, 5759, 5775, 5776, 5788, 5796, 5800, - 5806, 5808, 5815, 5817, 5819, 5821, 5823, 5824, - 5825, 5827, 5829, 5831, 5832, 5838, 5842, 5846, - 5847, 5849, 5851, 5853, 5855, 5861, 5863, 5865, - 5867, 5869, 5870, 5871, 5873, 5875, 5877, 5878, - 5879, 5880, 5886, 5887, 5888, 5890, 5892, 5894, - 5895, 5896, 5897, 5903, 5905, 5906, 5907, 5908, - 5909, 5915, 5916, 5917, 5923, 5925, 5927, 5929, - 5931, 5933, 5935, 5937, 5943, 5945, 5947, 5949, - 5951, 5953, 5955, 5959, 5961, 5963, 5969, 5971, - 5973, 5979, 5981, 5983, 5987, 5989, 5990, 5996, - 5998, 6000, 6003, 6010, 6012, 6014, 6016, 6018, - 6019, 6020, 6022, 6024, 6026, 6027, 6033, 6034, - 6035, 6041, 6042, 6043, 6049, 6063, 6071, 6073, - 6075, 6077, 6079, 6081, 6087, 6093, 6095, 6097, - 6099, 6101, 6103, 6109, 6113, 6115, 6121, 6123, - 6125, 6131, 6133, 6135, 6137, 6143, 6145, 6147, - 6153, 6157, 6159, 6165, 6167, 6169, 6175, 6177, - 6179, 6181, 6187, 6189, 6191, 6197, 6201, 6209, - 6211, 6213, 6215, 6217, 6219, 6225, 6228, 6237, - 6246, 6252, 6261, 6267, 6282, 6288, 6296, 6304, - 6312, 6330, 6338, 6356, 6364, 6382, 6390, 6408, - 6416, 6428, 6436, 6439, 6447, 6459, 6467, 6470, - 6478, 6490, 6498, 6501, 6509, 6521, 6529, 6532, - 6535, 6538, 6544, 6550, 6562, 6568, 6571, 6580, - 6586, 6601, 6607, 6610, 6612, 6620, 6635, 6641, - 6644, 6650, 6660, 6676, 6679, 6686, 6699, 6701, - 6709, 6719, 6727, 6737, 6746, 6754, 6760, 6768, - 6776, 6786, 6794, 6804, 6813, 6821, 6827, 6836, - 6838, 6852, 6864, 6878, 6890, 6904, 6916, 6930, - 6940, 6943, 6956, 6969, 6972, 6985, 6998, 7008, - 7011, 7024, 7037, 7047, 7050, 7063, 7076, 7086, - 7089, 7095, 7098, 7106, 7114, 7117, 7120, 7123, - 7129, 7132, 7140, 7148, 7151, 7154, 7156, 7164, - 7172, 7180, 7188, 7196, 7211, 7217, 7220, 7223, - 7226, 7228, 7236, 7244, 7252, 7264, 7270, 7282, - 7288, 7300, 7306, 7321, 7327, 7330, 7333, 7336, - 7339, 7342, 7348, 7354, 7362, 7370, 7382, 7388, - 7401, 7403, 7406, 7409, 7412, 7425, 7427, 7428, - 7431, 7434, 7436, 7448, 7451, 7452, 7459, 7466, - 7468, 7476, 7488, 7494, 7502, 7510, 7522, 7528, - 7544, 7547, 7550, 7553, 7556, 7558, 7566, 7574, - 7582, 7594, 7600, 7616, 7619, 7622, 7625, 7627, - 7635, 7645, 7651, 7659, 7667, 7674, 7708, 7721, - 7723, 7726, 7740, 7743, 7784, 7793, 7796, 7799, - 7805, 7813, 7821, 7830, 7867, 7870, 7873, 7879, - 7887, 7895, 7908, 7949, 7952, 7955, 7961, 7969, - 7977, 7992, 8026, 8029, 8032, 8035, 8041, 8047, - 8059, 8065, 8073, 8081, 8089, 8097, 8105, 8113, - 8121, 8129, 8137, 8145, 8160, 8166, 8179, 8181, - 8184, 8187, 8190, 8193, 8196, 8199, 8202, 8205, - 8214, 8220, 8226, 8228, 8236, 8244, 8252, 8264, - 8270, 8283, 8285, 8288, 8291, 8294, 8301, 8303, - 8305, 8313, 8321, 8329, 8337, 8345, 8358, 8364, - 8376, 8382, 8389, 8395, 8402, 8409, 8415, 8422, - 8434, 8440, 8441, 8442, 8443, 8444, 8445, 8448, - 8454, 8466, 8469, 8472, 8475, 8477, 8485, 8493, - 8501, 8509, 8517, 8530, 8536, 8542, 8554, 8557, - 8560, 8563, 8565, 8573, 8581, 8589, 8597, 8605, - 8617, 8623, 8639, 8642, 8645, 8648, 8651, 8653, - 8661, 8669, 8677, 8683, 8686, 8688, 8696, 8704, - 8712, 8720, 8728, 8740, 8746, 8762, 8765, 8768, - 8771, 8774, 8776, 8784, 8793, 8802, 8805, 8807, - 8815, 8827, 8833, 8839, 8845, 8846, 8852, 8858, - 8864, 8870, 8877, 8880, 8886, 8892, 8893, 8899, - 8905, 8912, 8918, 8924, 8925, 8931, 8937, 8944, - 8946, 8954, 8962, 8970, 8982, 8988, 8991, 8994, - 8996, 9004, 9016, 9022, 9034, 9040, 9043, 9046, - 9048, 9056, 9071, 9077, 9083, 9086, 9092, 9098, - 9110, 9116, 9124, 9132, 9147, 9153, 9156, 9159, - 9162, 9180, 9213, 9267, 9323, 9341, 9397, 9415, - 9448, 9519, 9590, 9590, 9590, 9590, 9590, 9602, - 9602, 9602, 9602, 9618, 9618, 9635, 9638, 9638, - 9638, 9684, 9687, 9687, 9703, 9706, 9718, 9718, - 9734, 9737, 9740, 9740, 9740, 9759, 9762, 9762, - 9762, 9762, 9762, 9762, 9762, 9762, 9762, 9762, - 9762, 9778, 9781, 9781, 9781, 9791, 9794, 9806, - 9809, 9821, 9824, 9836, 9839, 9839, 9839, 9839, - 9839, 9852, 9855, 9855, 9871, 9874, 9874, 9890, - 9893, 9893, 9907, 9910, 9923, 9926, 9967, 9976, - 9976, 9976, 9976, 9976, 9976, 9976, 9976, 9992, - 9995, 9995, 9995, 10011, 10014, 10014, 10014, 10014, - 10014, 10014, 10014, 10014 + 456, 464, 466, 468, 470, 482, 484, 486, + 488, 490, 500, 502, 504, 506, 516, 520, + 522, 524, 534, 536, 538, 540, 550, 562, + 564, 566, 576, 578, 580, 582, 583, 593, + 594, 604, 608, 610, 612, 614, 624, 626, + 628, 630, 640, 644, 650, 692, 694, 696, + 698, 700, 702, 704, 706, 716, 720, 722, + 732, 742, 748, 749, 759, 760, 770, 772, + 782, 792, 796, 798, 800, 802, 812, 822, + 828, 830, 832, 834, 844, 846, 856, 868, + 870, 881, 893, 895, 897, 899, 901, 911, + 913, 915, 917, 919, 921, 923, 925, 927, + 929, 939, 941, 943, 953, 961, 963, 965, + 967, 969, 971, 981, 991, 993, 995, 997, + 1007, 1017, 1029, 1031, 1033, 1035, 1037, 1047, + 1049, 1059, 1061, 1071, 1073, 1083, 1085, 1087, + 1089, 1099, 1101, 1103, 1113, 1119, 1121, 1123, + 1133, 1135, 1145, 1147, 1149, 1151, 1163, 1165, + 1167, 1177, 1179, 1181, 1183, 1185, 1187, 1197, + 1199, 1201, 1203, 1205, 1207, 1217, 1220, 1266, + 1270, 1276, 1320, 1338, 1346, 1358, 1366, 1369, + 1370, 1376, 1378, 1380, 1382, 1384, 1386, 1388, + 1394, 1400, 1444, 1447, 1465, 1509, 1512, 1520, + 1532, 1540, 1543, 1561, 1617, 1637, 1656, 1702, + 1708, 1722, 1736, 1794, 1812, 1828, 1838, 1850, + 1862, 1874, 1888, 1900, 1914, 1924, 1934, 1950, + 1970, 1984, 1994, 2004, 2014, 2020, 2034, 2036, + 2038, 2040, 2042, 2044, 2050, 2052, 2054, 2060, + 2068, 2088, 2134, 2140, 2160, 2218, 2236, 2252, + 2262, 2274, 2286, 2298, 2312, 2324, 2338, 2348, + 2358, 2374, 2394, 2408, 2418, 2428, 2438, 2453, + 2499, 2513, 2527, 2543, 2559, 2561, 2563, 2573, + 2575, 2577, 2579, 2589, 2591, 2593, 2595, 2605, + 2607, 2617, 2623, 2637, 2651, 2667, 2683, 2699, + 2715, 2718, 2776, 2790, 2804, 2820, 2834, 2842, + 2852, 2862, 2872, 2884, 2894, 2906, 2914, 2922, + 2936, 2954, 2966, 2974, 2982, 2990, 2996, 3002, + 3012, 3018, 3027, 3028, 3029, 3040, 3058, 3076, + 3078, 3080, 3082, 3100, 3108, 3116, 3122, 3134, + 3140, 3142, 3144, 3156, 3164, 3172, 3178, 3184, + 3186, 3188, 3196, 3202, 3210, 3230, 3238, 3239, + 3249, 3261, 3271, 3274, 3280, 3296, 3306, 3324, + 3332, 3333, 3335, 3337, 3339, 3349, 3357, 3360, + 3366, 3378, 3386, 3404, 3414, 3432, 3440, 3441, + 3443, 3445, 3447, 3457, 3465, 3471, 3487, 3490, + 3493, 3500, 3507, 3515, 3523, 3540, 3543, 3544, + 3580, 3594, 3596, 3598, 3604, 3606, 3608, 3610, + 3616, 3618, 3620, 3622, 3628, 3630, 3636, 3646, + 3648, 3654, 3658, 3660, 3662, 3664, 3666, 3672, + 3678, 3680, 3682, 3688, 3690, 3692, 3694, 3700, + 3702, 3704, 3706, 3712, 3720, 3722, 3724, 3726, + 3734, 3736, 3738, 3740, 3742, 3748, 3750, 3752, + 3754, 3760, 3764, 3766, 3768, 3774, 3776, 3778, + 3780, 3786, 3794, 3796, 3798, 3804, 3806, 3808, + 3810, 3811, 3817, 3818, 3824, 3828, 3830, 3832, + 3834, 3840, 3842, 3844, 3846, 3852, 3854, 3856, + 3858, 3860, 3862, 3864, 3866, 3872, 3876, 3878, + 3884, 3890, 3896, 3897, 3903, 3904, 3910, 3912, + 3918, 3924, 3928, 3930, 3932, 3934, 3940, 3946, + 3952, 3954, 3956, 3958, 3964, 3966, 3972, 3980, + 3982, 3989, 3997, 3999, 4001, 4003, 4005, 4011, + 4013, 4015, 4017, 4019, 4021, 4023, 4025, 4027, + 4029, 4035, 4037, 4039, 4045, 4053, 4055, 4057, + 4059, 4061, 4063, 4069, 4075, 4077, 4079, 4081, + 4087, 4093, 4105, 4107, 4109, 4111, 4113, 4119, + 4121, 4127, 4129, 4135, 4137, 4143, 4145, 4147, + 4149, 4155, 4157, 4159, 4165, 4171, 4173, 4175, + 4181, 4183, 4189, 4191, 4193, 4195, 4203, 4205, + 4207, 4213, 4215, 4217, 4219, 4221, 4223, 4229, + 4231, 4233, 4235, 4237, 4239, 4245, 4255, 4301, + 4319, 4321, 4323, 4333, 4336, 4346, 4348, 4358, + 4362, 4364, 4366, 4368, 4370, 4380, 4390, 4392, + 4394, 4404, 4406, 4408, 4410, 4420, 4422, 4424, + 4426, 4436, 4444, 4446, 4448, 4450, 4462, 4464, + 4466, 4468, 4470, 4480, 4482, 4484, 4486, 4496, + 4500, 4502, 4504, 4514, 4516, 4518, 4520, 4530, + 4542, 4544, 4546, 4556, 4558, 4560, 4562, 4563, + 4573, 4574, 4584, 4588, 4590, 4592, 4594, 4604, + 4606, 4608, 4610, 4620, 4622, 4624, 4626, 4628, + 4630, 4632, 4634, 4644, 4648, 4650, 4660, 4670, + 4676, 4677, 4687, 4688, 4698, 4700, 4710, 4720, + 4724, 4726, 4728, 4730, 4740, 4750, 4756, 4758, + 4760, 4762, 4772, 4774, 4784, 4796, 4798, 4809, + 4821, 4823, 4825, 4827, 4829, 4839, 4841, 4843, + 4845, 4847, 4849, 4851, 4853, 4855, 4857, 4867, + 4869, 4871, 4881, 4889, 4891, 4893, 4895, 4897, + 4899, 4909, 4919, 4921, 4923, 4925, 4935, 4945, + 4957, 4959, 4961, 4963, 4965, 4975, 4977, 4987, + 4989, 4999, 5001, 5011, 5013, 5015, 5017, 5027, + 5029, 5031, 5041, 5047, 5049, 5051, 5061, 5063, + 5073, 5075, 5077, 5079, 5091, 5093, 5095, 5105, + 5107, 5109, 5111, 5113, 5115, 5125, 5127, 5129, + 5131, 5133, 5135, 5145, 5147, 5149, 5151, 5161, + 5163, 5165, 5167, 5177, 5179, 5189, 5195, 5203, + 5211, 5223, 5229, 5245, 5248, 5251, 5254, 5260, + 5269, 5279, 5291, 5297, 5313, 5316, 5319, 5327, + 5330, 5338, 5339, 5340, 5341, 5349, 5350, 5351, + 5352, 5353, 5354, 5355, 5363, 5364, 5365, 5373, + 5374, 5375, 5377, 5378, 5379, 5380, 5381, 5389, + 5390, 5391, 5392, 5393, 5401, 5402, 5403, 5405, + 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, + 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5437, + 5438, 5439, 5440, 5441, 5449, 5450, 5451, 5452, + 5460, 5463, 5464, 5465, 5466, 5467, 5468, 5469, + 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, + 5478, 5479, 5480, 5488, 5489, 5490, 5492, 5502, + 5503, 5504, 5505, 5506, 5507, 5508, 5510, 5511, + 5512, 5514, 5522, 5530, 5531, 5532, 5533, 5541, + 5551, 5570, 5571, 5572, 5573, 5574, 5581, 5591, + 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, + 5608, 5618, 5634, 5635, 5645, 5646, 5647, 5648, + 5656, 5663, 5670, 5678, 5686, 5694, 5695, 5702, + 5710, 5718, 5735, 5736, 5737, 5738, 5740, 5741, + 5742, 5743, 5744, 5745, 5749, 5752, 5757, 5760, + 5774, 5777, 5778, 5779, 5780, 5781, 5782, 5790, + 5797, 5806, 5813, 5831, 5838, 5839, 5840, 5842, + 5855, 5861, 5862, 5863, 5864, 5865, 5866, 5867, + 5868, 5869, 5870, 5875, 5879, 5881, 5885, 5896, + 5900, 5901, 5902, 5903, 5904, 5905, 5906, 5907, + 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5924, + 5925, 5926, 5927, 5928, 5938, 5939, 5940, 5941, + 5942, 5945, 5947, 5950, 5962, 5978, 5979, 5993, + 6003, 6006, 6007, 6008, 6009, 6010, 6011, 6012, + 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020, + 6021, 6022, 6023, 6024, 6034, 6043, 6045, 6055, + 6069, 6070, 6071, 6073, 6086, 6092, 6102, 6105, + 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, + 6114, 6119, 6123, 6125, 6129, 6140, 6144, 6145, + 6146, 6147, 6148, 6149, 6150, 6152, 6153, 6154, + 6156, 6157, 6161, 6164, 6169, 6172, 6186, 6189, + 6190, 6198, 6205, 6214, 6221, 6239, 6246, 6247, + 6248, 6249, 6250, 6259, 6270, 6279, 6291, 6299, + 6303, 6309, 6311, 6318, 6320, 6322, 6324, 6326, + 6327, 6328, 6330, 6332, 6334, 6335, 6341, 6345, + 6349, 6350, 6352, 6354, 6356, 6358, 6364, 6366, + 6368, 6370, 6372, 6373, 6374, 6376, 6378, 6380, + 6381, 6382, 6383, 6389, 6390, 6391, 6393, 6395, + 6397, 6398, 6399, 6400, 6406, 6408, 6409, 6410, + 6411, 6412, 6418, 6419, 6420, 6426, 6428, 6430, + 6432, 6434, 6436, 6438, 6440, 6446, 6448, 6450, + 6452, 6454, 6456, 6458, 6462, 6464, 6466, 6472, + 6474, 6476, 6482, 6484, 6486, 6490, 6492, 6493, + 6499, 6501, 6503, 6506, 6513, 6515, 6517, 6519, + 6521, 6522, 6523, 6525, 6527, 6529, 6530, 6536, + 6537, 6538, 6544, 6545, 6546, 6552, 6566, 6574, + 6576, 6578, 6580, 6582, 6584, 6590, 6596, 6598, + 6600, 6602, 6604, 6606, 6612, 6616, 6618, 6624, + 6626, 6628, 6634, 6636, 6638, 6640, 6646, 6648, + 6650, 6656, 6660, 6662, 6668, 6670, 6672, 6678, + 6680, 6682, 6684, 6690, 6692, 6694, 6700, 6704, + 6712, 6714, 6716, 6718, 6720, 6722, 6728, 6731, + 6740, 6749, 6755, 6764, 6770, 6785, 6791, 6799, + 6807, 6815, 6833, 6841, 6859, 6867, 6885, 6893, + 6911, 6919, 6931, 6939, 6942, 6950, 6962, 6970, + 6973, 6981, 6993, 7001, 7004, 7012, 7024, 7032, + 7035, 7038, 7041, 7047, 7053, 7065, 7071, 7074, + 7083, 7089, 7104, 7110, 7113, 7115, 7123, 7138, + 7144, 7147, 7153, 7163, 7179, 7182, 7189, 7202, + 7204, 7212, 7222, 7230, 7240, 7249, 7257, 7263, + 7271, 7279, 7289, 7297, 7307, 7316, 7324, 7330, + 7339, 7341, 7355, 7367, 7381, 7393, 7407, 7419, + 7433, 7443, 7446, 7459, 7472, 7475, 7488, 7501, + 7511, 7514, 7527, 7540, 7550, 7553, 7566, 7579, + 7589, 7592, 7598, 7601, 7609, 7617, 7620, 7623, + 7626, 7632, 7635, 7643, 7651, 7654, 7657, 7659, + 7667, 7675, 7683, 7691, 7699, 7714, 7720, 7723, + 7726, 7729, 7731, 7739, 7747, 7755, 7767, 7773, + 7785, 7791, 7803, 7809, 7824, 7830, 7833, 7836, + 7839, 7842, 7845, 7851, 7857, 7865, 7873, 7885, + 7891, 7904, 7906, 7909, 7912, 7915, 7928, 7930, + 7931, 7934, 7937, 7939, 7951, 7954, 7955, 7962, + 7969, 7971, 7979, 7991, 7997, 8005, 8013, 8025, + 8031, 8047, 8050, 8053, 8056, 8059, 8061, 8069, + 8077, 8085, 8097, 8103, 8119, 8122, 8125, 8128, + 8130, 8138, 8148, 8154, 8162, 8170, 8177, 8211, + 8224, 8226, 8229, 8243, 8246, 8287, 8296, 8299, + 8302, 8308, 8316, 8324, 8333, 8370, 8373, 8376, + 8382, 8390, 8398, 8411, 8452, 8455, 8458, 8464, + 8472, 8480, 8495, 8529, 8532, 8535, 8538, 8544, + 8550, 8562, 8568, 8576, 8584, 8592, 8600, 8608, + 8616, 8624, 8632, 8640, 8648, 8663, 8669, 8682, + 8684, 8687, 8690, 8693, 8696, 8699, 8702, 8705, + 8708, 8717, 8723, 8729, 8731, 8739, 8747, 8755, + 8767, 8773, 8786, 8788, 8791, 8794, 8797, 8804, + 8806, 8808, 8816, 8824, 8832, 8840, 8848, 8861, + 8867, 8879, 8885, 8892, 8898, 8905, 8912, 8918, + 8925, 8937, 8943, 8944, 8945, 8946, 8947, 8948, + 8951, 8957, 8969, 8972, 8975, 8978, 8980, 8988, + 8996, 9004, 9012, 9020, 9033, 9039, 9045, 9057, + 9060, 9063, 9066, 9068, 9076, 9084, 9092, 9100, + 9108, 9120, 9126, 9142, 9145, 9148, 9151, 9154, + 9156, 9164, 9172, 9180, 9186, 9189, 9191, 9199, + 9207, 9215, 9223, 9231, 9243, 9249, 9265, 9268, + 9271, 9274, 9277, 9279, 9287, 9296, 9305, 9308, + 9310, 9318, 9330, 9336, 9342, 9348, 9349, 9355, + 9361, 9367, 9373, 9380, 9383, 9389, 9395, 9396, + 9402, 9408, 9415, 9421, 9427, 9428, 9434, 9440, + 9447, 9449, 9457, 9465, 9473, 9485, 9491, 9494, + 9497, 9499, 9507, 9519, 9525, 9537, 9543, 9546, + 9549, 9551, 9559, 9574, 9580, 9586, 9589, 9595, + 9601, 9613, 9619, 9627, 9635, 9650, 9656, 9659, + 9662, 9665, 9675, 9681, 9699, 9732, 9786, 9842, + 9860, 9916, 9934, 9967, 10038, 10109, 10109, 10109, + 10109, 10109, 10121, 10121, 10121, 10121, 10137, 10137, + 10154, 10157, 10157, 10157, 10203, 10206, 10206, 10222, + 10225, 10237, 10237, 10253, 10256, 10259, 10259, 10259, + 10259, 10278, 10281, 10281, 10291, 10294, 10308, 10311, + 10311, 10311, 10311, 10311, 10311, 10311, 10311, 10311, + 10311, 10311, 10327, 10330, 10330, 10330, 10340, 10343, + 10355, 10358, 10370, 10373, 10385, 10388, 10388, 10388, + 10388, 10388, 10401, 10404, 10404, 10420, 10423, 10423, + 10439, 10442, 10442, 10456, 10459, 10472, 10475, 10516, + 10525, 10525, 10525, 10525, 10525, 10525, 10525, 10525, + 10541, 10544, 10544, 10544, 10560, 10563, 10563, 10563, + 10563, 10563, 10563, 10563, 10563, 10563 }; static const short _zone_scanner_trans_keys[] = { @@ -2104,172 +2202,177 @@ static const short _zone_scanner_trans_keys[] = { 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 89, 121, 78, 110, 67, 99, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 72, 78, 83, 104, 110, 115, 67, 99, - 73, 105, 68, 100, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 65, 83, - 97, 115, 77, 109, 69, 101, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 75, 107, 69, 101, 89, 121, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 9, 32, 40, 41, 89, 121, 3082, 3131, - 3338, 3387, 3594, 3643, 78, 110, 67, 99, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 85, 117, 73, 105, 52, 54, - 56, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 52, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 73, 84, - 105, 116, 78, 110, 70, 102, 79, 111, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 84, 116, 80, 112, 83, 115, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 78, 80, 110, 112, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, - 65, 67, 68, 69, 72, 73, 75, 76, - 77, 78, 79, 80, 82, 83, 84, 85, - 87, 90, 97, 99, 100, 101, 104, 105, - 107, 108, 109, 110, 111, 112, 114, 115, - 116, 117, 119, 122, 2058, 2107, 80, 112, - 83, 115, 69, 101, 67, 99, 75, 107, + 69, 72, 78, 83, 101, 104, 110, 115, + 76, 108, 69, 101, 71, 103, 9, 32, + 40, 41, 80, 112, 3082, 3131, 3338, 3387, + 3594, 3643, 65, 97, 82, 114, 65, 97, + 77, 109, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 67, 99, 73, 105, + 68, 100, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 65, 83, 97, 115, + 77, 109, 69, 101, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 75, 107, 69, 101, 89, 121, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 69, 88, - 101, 120, 89, 121, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, + 40, 41, 89, 121, 3082, 3131, 3338, 3387, + 3594, 3643, 78, 110, 67, 99, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 51, 54, 79, 80, 111, 112, 50, 9, + 85, 117, 73, 105, 52, 54, 56, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 52, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 67, 99, 9, 32, + 3338, 3387, 3594, 3643, 73, 84, 105, 116, + 78, 110, 70, 102, 79, 111, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 84, 116, 80, 112, 83, 115, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 78, 80, 110, 112, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 65, 67, + 68, 69, 72, 73, 75, 76, 77, 78, + 79, 80, 82, 83, 84, 85, 87, 90, + 97, 99, 100, 101, 104, 105, 107, 108, + 109, 110, 111, 112, 114, 115, 116, 117, + 119, 122, 2058, 2107, 80, 112, 83, 115, + 69, 101, 67, 99, 75, 107, 69, 101, + 89, 121, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 69, 88, 101, 120, + 89, 121, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 51, 54, + 79, 80, 111, 112, 50, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 52, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 73, 88, 105, 120, 78, 110, - 70, 102, 79, 111, 9, 32, 40, 41, + 3594, 3643, 67, 99, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 65, 73, 83, 97, 105, 115, 80, 112, - 84, 116, 82, 114, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 68, 100, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 9, 32, 40, 41, 69, 101, - 3082, 3131, 3338, 3387, 3594, 3643, 67, 99, - 9, 32, 40, 41, 51, 3082, 3131, 3338, - 3387, 3594, 3643, 9, 32, 40, 41, 80, - 112, 3082, 3131, 3338, 3387, 3594, 3643, 65, - 97, 82, 114, 65, 97, 77, 109, 9, + 73, 88, 105, 120, 78, 110, 70, 102, + 79, 111, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 65, 73, + 83, 97, 105, 115, 80, 112, 84, 116, + 82, 114, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 68, 100, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 9, 32, 40, 41, 69, 101, 3082, 3131, + 3338, 3387, 3594, 3643, 67, 99, 9, 32, + 40, 41, 51, 3082, 3131, 3338, 3387, 3594, + 3643, 9, 32, 40, 41, 80, 112, 3082, + 3131, 3338, 3387, 3594, 3643, 65, 97, 82, + 114, 65, 97, 77, 109, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 80, + 112, 69, 101, 78, 110, 80, 112, 71, + 103, 80, 112, 75, 107, 69, 101, 89, + 121, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 84, 116, 82, 114, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 80, 112, 69, 101, 78, 110, 80, - 112, 71, 103, 80, 112, 75, 107, 69, - 101, 89, 121, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 84, 116, 82, - 114, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 69, 80, 82, 84, 101, - 112, 114, 116, 83, 115, 73, 105, 78, - 110, 70, 102, 79, 111, 9, 32, 40, + 3643, 69, 80, 82, 84, 101, 112, 114, + 116, 83, 115, 73, 105, 78, 110, 70, + 102, 79, 111, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 83, + 115, 73, 105, 71, 103, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 83, 115, 73, 105, 71, 103, 9, + 3643, 77, 79, 80, 82, 83, 86, 109, + 111, 112, 114, 115, 118, 73, 105, 77, + 109, 69, 101, 65, 97, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 65, + 97, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 70, 102, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 86, + 118, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 72, 104, 70, 102, 80, + 112, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 67, 99, 66, 98, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 77, 79, 80, 82, 83, - 86, 109, 111, 112, 114, 115, 118, 73, - 105, 77, 109, 69, 101, 65, 97, 9, + 3643, 76, 88, 89, 108, 120, 121, 83, + 115, 65, 97, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 84, 116, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 65, 97, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 70, 102, 9, + 3643, 80, 112, 69, 101, 48, 57, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 86, 118, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 72, 104, 70, - 102, 80, 112, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 67, 99, 66, - 98, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 76, 88, 89, 108, 120, - 121, 83, 115, 65, 97, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 84, - 116, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 80, 112, 69, 101, 48, - 57, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 82, 114, 73, - 105, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 65, 97, 76, 108, 76, - 108, 69, 101, 84, 116, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 79, - 111, 78, 110, 69, 101, 77, 109, 68, - 100, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, - 40, 41, 65, 67, 68, 69, 72, 73, - 75, 76, 77, 78, 79, 80, 82, 83, - 84, 85, 87, 90, 97, 99, 100, 101, - 104, 105, 107, 108, 109, 110, 111, 112, - 114, 115, 116, 117, 119, 122, 1802, 1851, - 2058, 2107, 48, 57, 78, 80, 110, 112, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 65, 67, 68, 69, 72, 73, - 75, 76, 77, 78, 79, 80, 82, 83, - 84, 85, 87, 90, 97, 99, 100, 101, - 104, 105, 107, 108, 109, 110, 111, 112, - 114, 115, 116, 117, 119, 122, 2058, 2107, - 48, 57, 9, 32, 40, 41, 68, 72, - 77, 83, 87, 100, 104, 109, 115, 119, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 68, 72, 77, 83, - 87, 100, 104, 109, 115, 119, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 2058, 1920, 2175, 10, 73, 79, 84, 105, - 111, 116, 78, 110, 67, 99, 76, 108, - 85, 117, 68, 100, 69, 101, 32, 59, - 9, 10, 40, 41, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 65, 67, - 68, 69, 72, 73, 75, 76, 77, 78, - 79, 80, 82, 83, 84, 85, 87, 90, - 97, 99, 100, 101, 104, 105, 107, 108, - 109, 110, 111, 112, 114, 115, 116, 117, - 119, 122, 2058, 2107, 48, 57, 2058, 1920, - 2175, 9, 32, 40, 41, 68, 72, 77, - 83, 87, 100, 104, 109, 115, 119, 2058, - 2107, 48, 57, 9, 32, 40, 41, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 97, 99, 100, 101, 104, 105, 107, - 108, 109, 110, 111, 112, 114, 115, 116, - 117, 119, 122, 2058, 2107, 48, 57, 2058, - 1920, 2175, 9, 32, 40, 41, 2058, 2107, + 3643, 48, 57, 82, 114, 73, 105, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 65, 97, 76, 108, 76, 108, 69, + 101, 84, 116, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 79, 111, 78, + 110, 69, 101, 77, 109, 68, 100, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 2058, 1920, 2175, 9, 32, 40, 41, + 65, 67, 68, 69, 72, 73, 75, 76, + 77, 78, 79, 80, 82, 83, 84, 85, + 87, 90, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 1802, 1851, 2058, 2107, + 48, 57, 78, 80, 110, 112, 9, 32, + 40, 41, 2058, 2107, 9, 32, 40, 41, + 65, 67, 68, 69, 72, 73, 75, 76, + 77, 78, 79, 80, 82, 83, 84, 85, + 87, 90, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 2058, 2107, 48, 57, + 9, 32, 40, 41, 68, 72, 77, 83, + 87, 100, 104, 109, 115, 119, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 68, 72, 77, 83, 87, 100, 104, 109, 115, 119, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 2058, 1920, - 2175, 9, 32, 40, 41, 65, 70, 76, - 80, 97, 102, 108, 112, 3082, 3131, 3338, - 3387, 3594, 3643, 9, 32, 40, 41, 58, - 65, 67, 68, 69, 72, 73, 75, 76, - 77, 78, 79, 80, 82, 83, 84, 85, - 87, 90, 92, 97, 99, 100, 101, 104, - 105, 107, 108, 109, 110, 111, 112, 114, - 115, 116, 117, 119, 122, 3082, 3131, 3338, - 3387, 3594, 3643, -128, 8, 11, 47, 48, - 57, 60, 127, 9, 32, 40, 41, 65, - 70, 76, 80, 97, 102, 108, 112, 2826, - 2875, 3082, 3131, 3338, 3387, 3594, 3643, 9, - 32, 40, 41, 92, 2826, 2875, 3082, 3131, - 3338, 3387, 3594, 3643, -128, 8, 11, 58, - 60, 127, 9, 32, 40, 41, 65, 67, + 2175, 10, 73, 79, 84, 105, 111, 116, + 78, 110, 67, 99, 76, 108, 85, 117, + 68, 100, 69, 101, 32, 59, 9, 10, + 40, 41, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 65, 67, 68, 69, + 72, 73, 75, 76, 77, 78, 79, 80, + 82, 83, 84, 85, 87, 90, 97, 99, + 100, 101, 104, 105, 107, 108, 109, 110, + 111, 112, 114, 115, 116, 117, 119, 122, + 2058, 2107, 48, 57, 2058, 1920, 2175, 9, + 32, 40, 41, 68, 72, 77, 83, 87, + 100, 104, 109, 115, 119, 2058, 2107, 48, + 57, 9, 32, 40, 41, 65, 67, 68, + 69, 72, 73, 75, 76, 77, 78, 79, + 80, 82, 83, 84, 85, 87, 90, 97, + 99, 100, 101, 104, 105, 107, 108, 109, + 110, 111, 112, 114, 115, 116, 117, 119, + 122, 2058, 2107, 48, 57, 2058, 1920, 2175, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 68, 72, 77, 83, 87, 100, 104, 109, + 115, 119, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 2058, 1920, 2175, 9, + 32, 40, 41, 65, 70, 76, 80, 97, + 102, 108, 112, 3082, 3131, 3338, 3387, 3594, + 3643, 9, 32, 40, 41, 58, 65, 67, 68, 69, 72, 73, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 90, + 92, 97, 99, 100, 101, 104, 105, 107, + 108, 109, 110, 111, 112, 114, 115, 116, + 117, 119, 122, 3082, 3131, 3338, 3387, 3594, + 3643, -128, 8, 11, 47, 48, 57, 60, + 127, 9, 32, 40, 41, 65, 70, 76, + 80, 97, 102, 108, 112, 2826, 2875, 3082, + 3131, 3338, 3387, 3594, 3643, 9, 32, 40, + 41, 92, 2826, 2875, 3082, 3131, 3338, 3387, + 3594, 3643, -128, 8, 11, 58, 60, 127, + 9, 32, 40, 41, 65, 67, 68, 69, + 72, 73, 75, 76, 77, 78, 79, 80, + 82, 83, 84, 85, 87, 90, 97, 99, + 100, 101, 104, 105, 107, 108, 109, 110, + 111, 112, 114, 115, 116, 117, 119, 122, + 1802, 1851, 2058, 2107, 48, 57, 1802, 2058, + 1664, 1919, 1920, 2175, 9, 32, 40, 41, + 1802, 1851, 2058, 2107, -128, 8, 11, 58, + 60, 127, 9, 32, 40, 41, 1802, 1851, + 2058, 2107, -128, 8, 11, 58, 60, 127, + 9, 32, 40, 41, 58, 65, 67, 68, + 69, 72, 73, 75, 76, 77, 78, 79, + 80, 82, 83, 84, 85, 87, 90, 92, 97, 99, 100, 101, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, - 119, 122, 1802, 1851, 2058, 2107, 48, 57, - 1802, 2058, 1664, 1919, 1920, 2175, 9, 32, - 40, 41, 1802, 1851, 2058, 2107, -128, 8, - 11, 58, 60, 127, 9, 32, 40, 41, - 1802, 1851, 2058, 2107, -128, 8, 11, 58, - 60, 127, 9, 32, 40, 41, 58, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 92, 97, 99, 100, 101, 104, 105, - 107, 108, 109, 110, 111, 112, 114, 115, - 116, 117, 119, 122, 2826, 2875, 3082, 3131, - 3338, 3387, 3594, 3643, -128, 8, 11, 47, - 48, 57, 60, 127, 9, 32, 40, 41, - 65, 68, 69, 78, 83, 97, 100, 101, - 110, 115, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 72, 78, 83, 104, 110, 115, + 119, 122, 2826, 2875, 3082, 3131, 3338, 3387, + 3594, 3643, -128, 8, 11, 47, 48, 57, + 60, 127, 9, 32, 40, 41, 65, 68, + 69, 78, 83, 97, 100, 101, 110, 115, + 1802, 1851, 2058, 2107, 9, 32, 40, 41, + 69, 72, 78, 83, 101, 104, 110, 115, 1802, 1851, 2058, 2107, 9, 32, 40, 41, 85, 117, 1802, 1851, 2058, 2107, 9, 32, 40, 41, 73, 84, 105, 116, 1802, 1851, @@ -2322,540 +2425,594 @@ static const short _zone_scanner_trans_keys[] = { 60, 127, 9, 32, 40, 41, 65, 68, 69, 78, 83, 97, 100, 101, 110, 115, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 72, 78, 83, 104, 110, 115, 1802, 1851, - 2058, 2107, 9, 32, 40, 41, 85, 117, + 69, 72, 78, 83, 101, 104, 110, 115, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 73, 84, 105, 116, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 78, 80, 110, 112, + 85, 117, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 73, 84, 105, 116, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 78, 80, + 110, 112, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 69, 88, 101, 120, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 51, 54, + 79, 80, 111, 112, 1802, 1851, 2058, 2107, + 9, 32, 40, 41, 73, 88, 105, 120, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 69, 88, 101, 120, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 51, 54, 79, 80, - 111, 112, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 73, 88, 105, 120, 1802, 1851, - 2058, 2107, 9, 32, 40, 41, 65, 73, - 83, 97, 105, 115, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 80, 112, 1802, 1851, - 2058, 2107, 9, 32, 40, 41, 84, 116, + 65, 73, 83, 97, 105, 115, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 80, 112, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 69, 80, 82, 84, 101, 112, 114, 116, + 84, 116, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 69, 80, 82, 84, 101, 112, + 114, 116, 1802, 1851, 2058, 2107, 9, 32, + 40, 41, 77, 79, 80, 82, 83, 86, + 109, 111, 112, 114, 115, 118, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 76, 88, + 89, 108, 120, 121, 1802, 1851, 2058, 2107, + 9, 32, 40, 41, 82, 114, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 65, 97, 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 77, 79, 80, 82, 83, 86, 109, 111, - 112, 114, 115, 118, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 76, 88, 89, 108, - 120, 121, 1802, 1851, 2058, 2107, 9, 32, - 40, 41, 82, 114, 1802, 1851, 2058, 2107, - 9, 32, 40, 41, 65, 97, 1802, 1851, - 2058, 2107, 9, 32, 40, 41, 79, 111, - 1802, 1851, 2058, 2107, 9, 32, 35, 40, - 41, 1802, 1851, 2058, 2107, -128, 8, 11, - 58, 60, 127, 9, 32, 40, 41, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 97, 99, 100, 101, 104, 105, 107, - 108, 109, 110, 111, 112, 114, 115, 116, - 117, 119, 122, 1802, 1851, 2058, 2107, 48, - 57, 1801, 1802, 1824, 1832, 1833, 1851, 2057, + 79, 111, 1802, 1851, 2058, 2107, 9, 32, + 35, 40, 41, 1802, 1851, 2058, 2107, -128, + 8, 11, 58, 60, 127, 9, 32, 40, + 41, 65, 67, 68, 69, 72, 73, 75, + 76, 77, 78, 79, 80, 82, 83, 84, + 85, 87, 90, 97, 99, 100, 101, 104, + 105, 107, 108, 109, 110, 111, 112, 114, + 115, 116, 117, 119, 122, 1802, 1851, 2058, + 2107, 48, 57, 1801, 1802, 1824, 1832, 1833, + 1851, 2057, 2058, 2080, 2088, 2089, 2107, 1920, + 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, 2088, 2089, 2107, 1920, 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, - 2088, 2089, 2107, 1920, 2175, 1801, 1802, 1824, - 1832, 1833, 1851, 2057, 2058, 2080, 2088, 2089, - 2107, 1664, 1919, 1920, 2175, 1801, 1802, 1824, - 1832, 1833, 1851, 2057, 2058, 2080, 2088, 2089, - 2107, 1664, 1919, 1920, 2175, 65, 97, 65, - 97, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 83, 115, 68, 100, 66, - 98, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 73, 105, 65, 97, 83, - 115, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 76, 108, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 1802, - 2058, 1664, 1919, 1920, 2175, 9, 32, 40, + 2088, 2089, 2107, 1664, 1919, 1920, 2175, 1801, + 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, + 2088, 2089, 2107, 1664, 1919, 1920, 2175, 65, + 97, 65, 97, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 83, 115, 68, + 100, 66, 98, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 73, 105, 65, + 97, 83, 115, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 76, 108, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 1802, 2058, 1664, 1919, 1920, 2175, 9, + 32, 40, 41, 1802, 1851, 2058, 2107, -128, + 8, 11, 58, 60, 127, 9, 32, 40, 41, 1802, 1851, 2058, 2107, -128, 8, 11, - 58, 60, 127, 9, 32, 40, 41, 1802, - 1851, 2058, 2107, -128, 8, 11, 58, 60, - 127, 1801, 1802, 1824, 1832, 1833, 1851, 2057, - 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920, - 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, - 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920, - 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, - 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920, - 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, - 2058, 2080, 2088, 2089, 2107, 1664, 1919, 1920, - 2175, 2058, 1920, 2175, 9, 32, 40, 41, - 58, 65, 67, 68, 69, 72, 73, 75, - 76, 77, 78, 79, 80, 82, 83, 84, - 85, 87, 90, 92, 97, 99, 100, 101, - 104, 105, 107, 108, 109, 110, 111, 112, - 114, 115, 116, 117, 119, 122, 2826, 2875, - 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, - 11, 47, 48, 57, 60, 127, 1801, 1802, + 58, 60, 127, 1801, 1802, 1824, 1832, 1833, + 1851, 2057, 2058, 2080, 2088, 2089, 2107, 1664, + 1919, 1920, 2175, 1801, 1802, 1824, 1832, 1833, + 1851, 2057, 2058, 2080, 2088, 2089, 2107, 1664, + 1919, 1920, 2175, 1801, 1802, 1824, 1832, 1833, + 1851, 2057, 2058, 2080, 2088, 2089, 2107, 1664, + 1919, 1920, 2175, 1801, 1802, 1824, 1832, 1833, + 1851, 2057, 2058, 2080, 2088, 2089, 2107, 1664, + 1919, 1920, 2175, 2058, 1920, 2175, 9, 32, + 40, 41, 58, 65, 67, 68, 69, 72, + 73, 75, 76, 77, 78, 79, 80, 82, + 83, 84, 85, 87, 90, 92, 97, 99, + 100, 101, 104, 105, 107, 108, 109, 110, + 111, 112, 114, 115, 116, 117, 119, 122, + 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643, + -128, 8, 11, 47, 48, 57, 60, 127, + 1801, 1802, 1824, 1832, 1833, 1851, 2057, 2058, + 2080, 2088, 2089, 2107, 1920, 2175, 1801, 1802, 1824, 1832, 1833, 1851, 2057, 2058, 2080, 2088, - 2089, 2107, 1920, 2175, 1801, 1802, 1824, 1832, - 1833, 1851, 2057, 2058, 2080, 2088, 2089, 2107, - 1920, 2175, 9, 32, 40, 41, 65, 68, - 69, 78, 83, 97, 100, 101, 110, 115, - 2058, 2107, 9, 32, 40, 41, 72, 78, - 83, 104, 110, 115, 2058, 2107, 9, 32, - 40, 41, 85, 117, 2058, 2107, 9, 32, - 40, 41, 73, 84, 105, 116, 2058, 2107, - 9, 32, 40, 41, 78, 80, 110, 112, - 2058, 2107, 9, 32, 40, 41, 69, 88, - 101, 120, 2058, 2107, 9, 32, 40, 41, - 51, 54, 79, 80, 111, 112, 2058, 2107, - 9, 32, 40, 41, 73, 88, 105, 120, - 2058, 2107, 9, 32, 40, 41, 65, 73, - 83, 97, 105, 115, 2058, 2107, 9, 32, - 40, 41, 80, 112, 2058, 2107, 9, 32, - 40, 41, 84, 116, 2058, 2107, 9, 32, - 40, 41, 69, 80, 82, 84, 101, 112, - 114, 116, 2058, 2107, 9, 32, 40, 41, - 77, 79, 80, 82, 83, 86, 109, 111, - 112, 114, 115, 118, 2058, 2107, 9, 32, - 40, 41, 76, 88, 89, 108, 120, 121, - 2058, 2107, 9, 32, 40, 41, 82, 114, - 2058, 2107, 9, 32, 40, 41, 65, 97, - 2058, 2107, 9, 32, 40, 41, 79, 111, - 2058, 2107, 1802, 2058, 1664, 1919, 1920, 2175, - 1802, 2058, 1664, 1919, 1920, 2175, 9, 32, - 40, 41, 78, 80, 110, 112, 2058, 2107, - 1802, 2058, 1664, 1919, 1920, 2175, 266, 522, - 1065, -128, 9, 11, 40, 42, 127, 10, - 10, 42, 46, 64, 92, 95, 45, 57, - 65, 90, 97, 122, 32, 42, 46, 59, - 92, 95, 9, 10, 40, 41, 45, 57, - 65, 90, 97, 122, 32, 42, 45, 59, + 2089, 2107, 1920, 2175, 9, 32, 40, 41, + 65, 68, 69, 78, 83, 97, 100, 101, + 110, 115, 2058, 2107, 9, 32, 40, 41, + 69, 72, 78, 83, 101, 104, 110, 115, + 2058, 2107, 9, 32, 40, 41, 85, 117, + 2058, 2107, 9, 32, 40, 41, 73, 84, + 105, 116, 2058, 2107, 9, 32, 40, 41, + 78, 80, 110, 112, 2058, 2107, 9, 32, + 40, 41, 69, 88, 101, 120, 2058, 2107, + 9, 32, 40, 41, 51, 54, 79, 80, + 111, 112, 2058, 2107, 9, 32, 40, 41, + 73, 88, 105, 120, 2058, 2107, 9, 32, + 40, 41, 65, 73, 83, 97, 105, 115, + 2058, 2107, 9, 32, 40, 41, 80, 112, + 2058, 2107, 9, 32, 40, 41, 84, 116, + 2058, 2107, 9, 32, 40, 41, 69, 80, + 82, 84, 101, 112, 114, 116, 2058, 2107, + 9, 32, 40, 41, 77, 79, 80, 82, + 83, 86, 109, 111, 112, 114, 115, 118, + 2058, 2107, 9, 32, 40, 41, 76, 88, + 89, 108, 120, 121, 2058, 2107, 9, 32, + 40, 41, 82, 114, 2058, 2107, 9, 32, + 40, 41, 65, 97, 2058, 2107, 9, 32, + 40, 41, 79, 111, 2058, 2107, 1802, 2058, + 1664, 1919, 1920, 2175, 1802, 2058, 1664, 1919, + 1920, 2175, 9, 32, 40, 41, 78, 80, + 110, 112, 2058, 2107, 1802, 2058, 1664, 1919, + 1920, 2175, 266, 522, 1065, -128, 9, 11, + 40, 42, 127, 10, 10, 42, 46, 64, + 92, 95, 45, 57, 65, 90, 97, 122, + 32, 34, 42, 44, 46, 59, 92, 95, + 9, 10, 40, 41, 45, 57, 65, 90, + 97, 122, 32, 34, 42, 44, 45, 59, 92, 95, 9, 10, 40, 41, 47, 57, 65, 90, 97, 122, 48, 57, 48, 57, - 48, 57, 32, 42, 46, 59, 92, 95, - 9, 10, 40, 41, 45, 57, 65, 90, - 97, 122, 32, 59, 9, 10, 40, 41, - 32, 59, 9, 10, 40, 41, 34, 92, - 33, 58, 60, 126, 32, 33, 59, 92, - 9, 10, 35, 39, 40, 41, 42, 126, - 32, 47, 48, 57, 58, 126, 48, 57, - 48, 57, 32, 33, 59, 92, 9, 10, - 35, 39, 40, 41, 42, 126, 9, 32, - 34, 59, 92, 1546, 33, 126, 9, 32, - 34, 59, 92, 1546, 33, 126, 32, 59, - 9, 10, 40, 41, 32, 47, 48, 57, - 58, 126, 48, 57, 48, 57, 9, 32, - 34, 59, 92, 1546, 33, 126, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 68, 72, 77, 83, 87, 100, 104, 109, - 115, 119, 1802, 1851, 2058, 2107, 48, 57, - 9, 32, 40, 41, 1802, 1851, 2058, 2107, - 10, 9, 32, 40, 41, 1802, 1851, 2058, - 2107, 48, 57, 68, 72, 77, 83, 87, - 100, 104, 109, 115, 119, 48, 57, 9, + 48, 57, 32, 34, 42, 44, 46, 59, + 92, 95, 9, 10, 40, 41, 45, 57, + 65, 90, 97, 122, 32, 34, 44, 59, + 9, 10, 40, 41, 32, 34, 44, 59, + 9, 10, 40, 41, 34, 92, 33, 58, + 60, 126, 32, 33, 59, 92, 9, 10, + 35, 39, 40, 41, 42, 126, 32, 47, + 48, 57, 58, 126, 48, 57, 48, 57, + 32, 33, 59, 92, 9, 10, 35, 39, + 40, 41, 42, 126, 9, 32, 34, 59, + 92, 1546, 33, 126, 9, 32, 34, 59, + 92, 1546, 33, 126, 32, 59, 9, 10, + 40, 41, 32, 47, 48, 57, 58, 126, + 48, 57, 48, 57, 9, 32, 34, 59, + 92, 1546, 33, 126, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 68, 72, + 77, 83, 87, 100, 104, 109, 115, 119, + 1802, 1851, 2058, 2107, 48, 57, 9, 32, + 40, 41, 1802, 1851, 2058, 2107, 10, 9, 32, 40, 41, 1802, 1851, 2058, 2107, 48, - 57, 2058, 1920, 2175, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 42, 46, - 92, 95, 2058, 2107, 45, 57, 65, 90, - 97, 122, 42, 46, 92, 95, 45, 57, - 65, 90, 97, 122, 9, 32, 40, 41, - 42, 45, 92, 95, 1802, 1851, 2058, 2107, - 47, 57, 65, 90, 97, 122, 9, 32, - 40, 41, 1802, 1851, 2058, 2107, 10, 48, - 57, 48, 57, 48, 57, 42, 46, 92, - 95, 45, 57, 65, 90, 97, 122, 9, - 32, 40, 41, 1802, 1851, 2058, 2107, 2058, + 57, 68, 72, 77, 83, 87, 100, 104, + 109, 115, 119, 48, 57, 9, 32, 40, + 41, 1802, 1851, 2058, 2107, 48, 57, 2058, 1920, 2175, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 2058, 2107, -128, 8, - 11, 58, 60, 127, 9, 32, 40, 41, - 1802, 1851, 2058, 2107, 9, 32, 40, 41, - 42, 46, 92, 95, 1802, 1851, 2058, 2107, - 45, 57, 65, 90, 97, 122, 42, 46, - 92, 95, 45, 57, 65, 90, 97, 122, - 9, 32, 40, 41, 42, 45, 92, 95, - 1802, 1851, 2058, 2107, 47, 57, 65, 90, - 97, 122, 9, 32, 40, 41, 1802, 1851, - 2058, 2107, 10, 48, 57, 48, 57, 48, - 57, 42, 46, 92, 95, 45, 57, 65, - 90, 97, 122, 9, 32, 40, 41, 1802, - 1851, 2058, 2107, 1802, 2058, 1664, 1919, 1920, - 2175, 9, 32, 40, 41, 42, 46, 92, - 95, 2058, 2107, 45, 57, 65, 90, 97, - 122, 2058, 1920, 2175, 2058, 1920, 2175, 43, - 47, 57, 65, 90, 97, 122, 43, 47, - 57, 65, 90, 97, 122, 43, 61, 47, - 57, 65, 90, 97, 122, 43, 61, 47, + 9, 32, 40, 41, 42, 46, 92, 95, + 2058, 2107, 45, 57, 65, 90, 97, 122, + 42, 46, 92, 95, 45, 57, 65, 90, + 97, 122, 9, 32, 40, 41, 42, 45, + 92, 95, 1802, 1851, 2058, 2107, 47, 57, + 65, 90, 97, 122, 9, 32, 40, 41, + 1802, 1851, 2058, 2107, 10, 48, 57, 48, + 57, 48, 57, 42, 46, 92, 95, 45, 57, 65, 90, 97, 122, 9, 32, 40, - 41, 43, 3082, 3131, 3338, 3387, 3594, 3643, - 47, 57, 65, 90, 97, 122, 2058, 1920, - 2175, 61, 65, 67, 68, 69, 72, 73, - 75, 76, 77, 78, 79, 80, 82, 83, - 84, 85, 87, 90, 97, 99, 100, 101, - 104, 105, 107, 108, 109, 110, 111, 112, - 114, 115, 116, 117, 119, 122, 32, 59, - 65, 70, 76, 80, 97, 102, 108, 112, - 9, 10, 40, 41, 65, 97, 65, 97, - 32, 59, 9, 10, 40, 41, 83, 115, - 68, 100, 66, 98, 32, 59, 9, 10, - 40, 41, 73, 105, 65, 97, 83, 115, - 32, 59, 9, 10, 40, 41, 76, 108, - 32, 59, 9, 10, 40, 41, 65, 68, - 69, 78, 83, 97, 100, 101, 110, 115, - 65, 97, 32, 59, 9, 10, 40, 41, - 78, 83, 110, 115, 83, 115, 75, 107, + 41, 1802, 1851, 2058, 2107, 2058, 1920, 2175, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 2058, 2107, -128, 8, 11, 58, + 60, 127, 9, 32, 40, 41, 1802, 1851, + 2058, 2107, 9, 32, 40, 41, 42, 46, + 92, 95, 1802, 1851, 2058, 2107, 45, 57, + 65, 90, 97, 122, 42, 46, 92, 95, + 45, 57, 65, 90, 97, 122, 9, 32, + 40, 41, 42, 45, 92, 95, 1802, 1851, + 2058, 2107, 47, 57, 65, 90, 97, 122, + 9, 32, 40, 41, 1802, 1851, 2058, 2107, + 10, 48, 57, 48, 57, 48, 57, 42, + 46, 92, 95, 45, 57, 65, 90, 97, + 122, 9, 32, 40, 41, 1802, 1851, 2058, + 2107, 1802, 2058, 1664, 1919, 1920, 2175, 9, + 32, 40, 41, 42, 46, 92, 95, 2058, + 2107, 45, 57, 65, 90, 97, 122, 2058, + 1920, 2175, 2058, 1920, 2175, 43, 47, 57, + 65, 90, 97, 122, 43, 47, 57, 65, + 90, 97, 122, 43, 61, 47, 57, 65, + 90, 97, 122, 43, 61, 47, 57, 65, + 90, 97, 122, 9, 32, 40, 41, 43, + 3082, 3131, 3338, 3387, 3594, 3643, 47, 57, + 65, 90, 97, 122, 2058, 1920, 2175, 61, + 65, 67, 68, 69, 72, 73, 75, 76, + 77, 78, 79, 80, 82, 83, 84, 85, + 87, 90, 97, 99, 100, 101, 104, 105, + 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 119, 122, 32, 59, 65, 70, + 76, 80, 97, 102, 108, 112, 9, 10, + 40, 41, 65, 97, 65, 97, 32, 59, + 9, 10, 40, 41, 83, 115, 68, 100, + 66, 98, 32, 59, 9, 10, 40, 41, + 73, 105, 65, 97, 83, 115, 32, 59, + 9, 10, 40, 41, 76, 108, 32, 59, + 9, 10, 40, 41, 65, 68, 69, 78, + 83, 97, 100, 101, 110, 115, 65, 97, + 32, 59, 9, 10, 40, 41, 78, 83, + 110, 115, 83, 115, 75, 107, 69, 101, + 89, 121, 32, 59, 9, 10, 40, 41, + 32, 59, 9, 10, 40, 41, 82, 114, + 84, 116, 32, 59, 9, 10, 40, 41, + 65, 97, 77, 109, 69, 101, 32, 59, + 9, 10, 40, 41, 89, 121, 78, 110, + 67, 99, 32, 59, 9, 10, 40, 41, + 69, 72, 78, 83, 101, 104, 110, 115, + 76, 108, 69, 101, 71, 103, 32, 59, + 80, 112, 9, 10, 40, 41, 65, 97, + 82, 114, 65, 97, 77, 109, 32, 59, + 9, 10, 40, 41, 67, 99, 73, 105, + 68, 100, 32, 59, 9, 10, 40, 41, + 65, 83, 97, 115, 77, 109, 69, 101, + 32, 59, 9, 10, 40, 41, 75, 107, 69, 101, 89, 121, 32, 59, 9, 10, - 40, 41, 32, 59, 9, 10, 40, 41, - 82, 114, 84, 116, 32, 59, 9, 10, - 40, 41, 65, 97, 77, 109, 69, 101, - 32, 59, 9, 10, 40, 41, 89, 121, - 78, 110, 67, 99, 32, 59, 9, 10, - 40, 41, 72, 78, 83, 104, 110, 115, - 67, 99, 73, 105, 68, 100, 32, 59, - 9, 10, 40, 41, 65, 83, 97, 115, - 77, 109, 69, 101, 32, 59, 9, 10, - 40, 41, 75, 107, 69, 101, 89, 121, + 40, 41, 32, 59, 89, 121, 9, 10, + 40, 41, 78, 110, 67, 99, 32, 59, + 9, 10, 40, 41, 85, 117, 73, 105, + 52, 54, 56, 32, 59, 9, 10, 40, + 41, 52, 32, 59, 9, 10, 40, 41, + 73, 84, 105, 116, 78, 110, 70, 102, + 79, 111, 32, 59, 9, 10, 40, 41, + 84, 116, 80, 112, 83, 115, 32, 59, + 9, 10, 40, 41, 80, 112, 83, 115, + 69, 101, 67, 99, 75, 107, 69, 101, + 89, 121, 32, 59, 9, 10, 40, 41, + 69, 88, 101, 120, 89, 121, 32, 59, + 9, 10, 40, 41, 32, 59, 9, 10, + 40, 41, 51, 54, 79, 80, 111, 112, + 50, 32, 59, 9, 10, 40, 41, 52, + 32, 59, 9, 10, 40, 41, 67, 99, 32, 59, 9, 10, 40, 41, 32, 59, - 89, 121, 9, 10, 40, 41, 78, 110, - 67, 99, 32, 59, 9, 10, 40, 41, - 85, 117, 73, 105, 52, 54, 56, 32, - 59, 9, 10, 40, 41, 52, 32, 59, - 9, 10, 40, 41, 73, 84, 105, 116, + 9, 10, 40, 41, 73, 88, 105, 120, 78, 110, 70, 102, 79, 111, 32, 59, - 9, 10, 40, 41, 84, 116, 80, 112, - 83, 115, 32, 59, 9, 10, 40, 41, - 80, 112, 83, 115, 69, 101, 67, 99, - 75, 107, 69, 101, 89, 121, 32, 59, - 9, 10, 40, 41, 69, 88, 101, 120, - 89, 121, 32, 59, 9, 10, 40, 41, - 32, 59, 9, 10, 40, 41, 51, 54, - 79, 80, 111, 112, 50, 32, 59, 9, - 10, 40, 41, 52, 32, 59, 9, 10, - 40, 41, 67, 99, 32, 59, 9, 10, - 40, 41, 32, 59, 9, 10, 40, 41, - 73, 88, 105, 120, 78, 110, 70, 102, - 79, 111, 32, 59, 9, 10, 40, 41, - 32, 59, 9, 10, 40, 41, 65, 73, - 83, 97, 105, 115, 80, 112, 84, 116, - 82, 114, 32, 59, 9, 10, 40, 41, - 68, 100, 32, 59, 9, 10, 40, 41, - 32, 59, 69, 101, 9, 10, 40, 41, - 67, 99, 32, 51, 59, 9, 10, 40, - 41, 32, 59, 80, 112, 9, 10, 40, - 41, 65, 97, 82, 114, 65, 97, 77, - 109, 32, 59, 9, 10, 40, 41, 80, - 112, 69, 101, 78, 110, 80, 112, 71, - 103, 80, 112, 75, 107, 69, 101, 89, - 121, 32, 59, 9, 10, 40, 41, 84, - 116, 82, 114, 32, 59, 9, 10, 40, - 41, 69, 80, 82, 84, 101, 112, 114, - 116, 83, 115, 73, 105, 78, 110, 70, - 102, 79, 111, 32, 59, 9, 10, 40, - 41, 32, 59, 9, 10, 40, 41, 83, - 115, 73, 105, 71, 103, 32, 59, 9, - 10, 40, 41, 32, 59, 9, 10, 40, - 41, 77, 79, 80, 82, 83, 86, 109, - 111, 112, 114, 115, 118, 73, 105, 77, - 109, 69, 101, 65, 97, 32, 59, 9, - 10, 40, 41, 65, 97, 32, 59, 9, - 10, 40, 41, 70, 102, 32, 59, 9, - 10, 40, 41, 86, 118, 32, 59, 9, - 10, 40, 41, 72, 104, 70, 102, 80, - 112, 32, 59, 9, 10, 40, 41, 67, - 99, 66, 98, 32, 59, 9, 10, 40, - 41, 76, 88, 89, 108, 120, 121, 83, - 115, 65, 97, 32, 59, 9, 10, 40, - 41, 84, 116, 32, 59, 9, 10, 40, - 41, 80, 112, 69, 101, 48, 57, 32, - 59, 9, 10, 40, 41, 48, 57, 82, - 114, 73, 105, 32, 59, 9, 10, 40, - 41, 65, 97, 76, 108, 76, 108, 69, - 101, 84, 116, 32, 59, 9, 10, 40, - 41, 79, 111, 78, 110, 69, 101, 77, - 109, 68, 100, 32, 59, 9, 10, 40, - 41, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 9, 32, 40, 41, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 97, 99, 100, 101, 104, 105, 107, - 108, 109, 110, 111, 112, 114, 115, 116, - 117, 119, 122, 3082, 3131, 3338, 3387, 3594, - 3643, 9, 32, 40, 41, 65, 70, 76, - 80, 97, 102, 108, 112, 3082, 3131, 3338, - 3387, 3594, 3643, 65, 97, 65, 97, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 2058, 1920, 2175, 65, 68, 69, 78, - 83, 97, 100, 101, 110, 115, 65, 97, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 78, 83, 110, 115, 83, 115, - 75, 107, 69, 101, 89, 121, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 82, 114, 84, 116, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 65, 97, 77, 109, 69, 101, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 89, 121, 78, 110, 67, 99, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 72, 78, 83, 104, 110, 115, 67, 99, - 73, 105, 68, 100, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 65, 83, - 97, 115, 77, 109, 69, 101, 9, 32, + 9, 10, 40, 41, 32, 59, 9, 10, + 40, 41, 65, 73, 83, 97, 105, 115, + 80, 112, 84, 116, 82, 114, 32, 59, + 9, 10, 40, 41, 68, 100, 32, 59, + 9, 10, 40, 41, 32, 59, 69, 101, + 9, 10, 40, 41, 67, 99, 32, 51, + 59, 9, 10, 40, 41, 32, 59, 80, + 112, 9, 10, 40, 41, 65, 97, 82, + 114, 65, 97, 77, 109, 32, 59, 9, + 10, 40, 41, 80, 112, 69, 101, 78, + 110, 80, 112, 71, 103, 80, 112, 75, + 107, 69, 101, 89, 121, 32, 59, 9, + 10, 40, 41, 84, 116, 82, 114, 32, + 59, 9, 10, 40, 41, 69, 80, 82, + 84, 101, 112, 114, 116, 83, 115, 73, + 105, 78, 110, 70, 102, 79, 111, 32, + 59, 9, 10, 40, 41, 32, 59, 9, + 10, 40, 41, 83, 115, 73, 105, 71, + 103, 32, 59, 9, 10, 40, 41, 32, + 59, 9, 10, 40, 41, 77, 79, 80, + 82, 83, 86, 109, 111, 112, 114, 115, + 118, 73, 105, 77, 109, 69, 101, 65, + 97, 32, 59, 9, 10, 40, 41, 65, + 97, 32, 59, 9, 10, 40, 41, 70, + 102, 32, 59, 9, 10, 40, 41, 86, + 118, 32, 59, 9, 10, 40, 41, 72, + 104, 70, 102, 80, 112, 32, 59, 9, + 10, 40, 41, 67, 99, 66, 98, 32, + 59, 9, 10, 40, 41, 76, 88, 89, + 108, 120, 121, 83, 115, 65, 97, 32, + 59, 9, 10, 40, 41, 84, 116, 32, + 59, 9, 10, 40, 41, 80, 112, 69, + 101, 48, 57, 32, 59, 9, 10, 40, + 41, 48, 57, 82, 114, 73, 105, 32, + 59, 9, 10, 40, 41, 65, 97, 76, + 108, 76, 108, 69, 101, 84, 116, 32, + 59, 9, 10, 40, 41, 79, 111, 78, + 110, 69, 101, 77, 109, 68, 100, 32, + 59, 9, 10, 40, 41, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, + 32, 40, 41, 65, 67, 68, 69, 72, + 73, 75, 76, 77, 78, 79, 80, 82, + 83, 84, 85, 87, 90, 97, 99, 100, + 101, 104, 105, 107, 108, 109, 110, 111, + 112, 114, 115, 116, 117, 119, 122, 3082, + 3131, 3338, 3387, 3594, 3643, 9, 32, 40, + 41, 65, 70, 76, 80, 97, 102, 108, + 112, 3082, 3131, 3338, 3387, 3594, 3643, 65, + 97, 65, 97, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, + 65, 68, 69, 78, 83, 97, 100, 101, + 110, 115, 65, 97, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 78, 83, + 110, 115, 83, 115, 75, 107, 69, 101, + 89, 121, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 82, 114, + 84, 116, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 65, 97, 77, 109, + 69, 101, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 89, 121, 78, 110, + 67, 99, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 69, 72, 78, 83, + 101, 104, 110, 115, 76, 108, 69, 101, + 71, 103, 9, 32, 40, 41, 80, 112, + 3082, 3131, 3338, 3387, 3594, 3643, 65, 97, + 82, 114, 65, 97, 77, 109, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 75, 107, 69, 101, 89, 121, 9, 32, + 67, 99, 73, 105, 68, 100, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 9, 32, 40, 41, 89, 121, 3082, 3131, - 3338, 3387, 3594, 3643, 78, 110, 67, 99, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 85, 117, 73, 105, 52, 54, - 56, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 52, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 73, 84, - 105, 116, 78, 110, 70, 102, 79, 111, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 84, 116, 80, 112, 83, 115, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 80, 112, 83, 115, 69, 101, - 67, 99, 75, 107, 69, 101, 89, 121, + 65, 83, 97, 115, 77, 109, 69, 101, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 69, 88, 101, 120, 89, 121, + 3594, 3643, 75, 107, 69, 101, 89, 121, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 51, 54, 79, 80, - 111, 112, 50, 9, 32, 40, 41, 3082, + 3594, 3643, 9, 32, 40, 41, 89, 121, + 3082, 3131, 3338, 3387, 3594, 3643, 78, 110, + 67, 99, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 85, 117, 73, 105, + 52, 54, 56, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 52, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 67, 99, 9, 32, 40, 41, 3082, 3131, + 73, 84, 105, 116, 78, 110, 70, 102, + 79, 111, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 84, 116, 80, 112, + 83, 115, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 80, 112, 83, 115, + 69, 101, 67, 99, 75, 107, 69, 101, + 89, 121, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 69, 88, 101, 120, + 89, 121, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 73, 88, - 105, 120, 78, 110, 70, 102, 79, 111, + 3082, 3131, 3338, 3387, 3594, 3643, 51, 54, + 79, 80, 111, 112, 50, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 52, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 65, 73, 83, 97, - 105, 115, 80, 112, 84, 116, 82, 114, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 68, 100, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, - 40, 41, 69, 101, 3082, 3131, 3338, 3387, 3594, 3643, 67, 99, 9, 32, 40, 41, - 51, 3082, 3131, 3338, 3387, 3594, 3643, 9, - 32, 40, 41, 80, 112, 3082, 3131, 3338, - 3387, 3594, 3643, 65, 97, 82, 114, 65, - 97, 77, 109, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 80, 112, 69, - 101, 78, 110, 80, 112, 71, 103, 80, - 112, 75, 107, 69, 101, 89, 121, 9, + 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 73, 88, 105, 120, 78, 110, 70, 102, + 79, 111, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 65, 73, + 83, 97, 105, 115, 80, 112, 84, 116, + 82, 114, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 68, 100, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 9, 32, 40, 41, 69, 101, 3082, 3131, + 3338, 3387, 3594, 3643, 67, 99, 9, 32, + 40, 41, 51, 3082, 3131, 3338, 3387, 3594, + 3643, 9, 32, 40, 41, 80, 112, 3082, + 3131, 3338, 3387, 3594, 3643, 65, 97, 82, + 114, 65, 97, 77, 109, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 80, + 112, 69, 101, 78, 110, 80, 112, 71, + 103, 80, 112, 75, 107, 69, 101, 89, + 121, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 84, 116, 82, 114, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 84, 116, 82, 114, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 69, - 80, 82, 84, 101, 112, 114, 116, 83, - 115, 73, 105, 78, 110, 70, 102, 79, - 111, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 83, 115, 73, - 105, 71, 103, 9, 32, 40, 41, 3082, + 3643, 69, 80, 82, 84, 101, 112, 114, + 116, 83, 115, 73, 105, 78, 110, 70, + 102, 79, 111, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 77, - 79, 80, 82, 83, 86, 109, 111, 112, - 114, 115, 118, 73, 105, 77, 109, 69, - 101, 65, 97, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 65, 97, 9, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 83, + 115, 73, 105, 71, 103, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 70, 102, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 86, 118, 9, + 3643, 77, 79, 80, 82, 83, 86, 109, + 111, 112, 114, 115, 118, 73, 105, 77, + 109, 69, 101, 65, 97, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 65, + 97, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 70, 102, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 86, + 118, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 72, 104, 70, 102, 80, + 112, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 67, 99, 66, 98, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 72, 104, 70, 102, 80, 112, 9, + 3643, 76, 88, 89, 108, 120, 121, 83, + 115, 65, 97, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 84, 116, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 67, 99, 66, 98, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 76, - 88, 89, 108, 120, 121, 83, 115, 65, - 97, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 84, 116, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 80, - 112, 69, 101, 48, 57, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 82, 114, 73, 105, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 65, - 97, 76, 108, 76, 108, 69, 101, 84, - 116, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 79, 111, 78, 110, 69, - 101, 77, 109, 68, 100, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 83, - 115, 68, 100, 66, 98, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 73, - 105, 65, 97, 83, 115, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 76, - 108, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 9, 32, 40, 41, 2058, - 2107, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 65, 70, 97, 102, 48, 57, 65, - 70, 97, 102, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 65, - 70, 97, 102, 2058, 1920, 2175, 2058, 1920, - 2175, 2058, 1920, 2175, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 48, 2058, - 2107, 49, 57, 9, 32, 40, 41, 1802, - 1851, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 65, 70, 97, - 102, 48, 57, 65, 70, 97, 102, 9, + 3643, 80, 112, 69, 101, 48, 57, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 65, 70, 97, 102, 2058, - 1920, 2175, 2058, 1920, 2175, 9, 32, 40, - 41, 2058, 2107, 48, 57, 2058, 1920, 2175, - 97, 100, 101, 105, 107, 110, 111, 112, - 108, 112, 110, 32, 34, 44, 59, 9, - 10, 40, 41, 111, 104, 112, 97, 116, - 104, 32, 34, 44, 59, 9, 10, 40, - 41, 99, 104, 32, 34, 44, 59, 9, - 10, 40, 41, 112, 118, 52, 54, 104, - 105, 110, 116, 32, 34, 44, 59, 9, - 10, 40, 41, 104, 105, 110, 116, 32, - 34, 44, 59, 9, 10, 40, 41, 101, - 121, 48, 57, 32, 34, 44, 59, 9, - 10, 40, 41, 48, 57, 111, 45, 100, - 101, 102, 97, 117, 108, 116, 45, 97, - 108, 112, 110, 32, 34, 44, 59, 9, - 10, 40, 41, 104, 116, 116, 112, 32, - 34, 44, 59, 9, 10, 40, 41, 111, - 114, 116, 32, 34, 44, 59, 9, 10, - 40, 41, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 9, 32, 40, 41, - 97, 100, 101, 105, 107, 109, 110, 111, - 112, 3082, 3131, 3338, 3387, 3594, 3643, 108, - 112, 110, 61, 32, 34, 59, 9, 10, - 40, 41, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 2058, 1920, 2175, 111, - 104, 112, 97, 116, 104, 61, 32, 34, + 3643, 48, 57, 82, 114, 73, 105, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 65, 97, 76, 108, 76, 108, 69, + 101, 84, 116, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 79, 111, 78, + 110, 69, 101, 77, 109, 68, 100, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 83, 115, 68, 100, 66, 98, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 73, 105, 65, 97, 83, 115, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 76, 108, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 9, 32, 40, + 41, 2058, 2107, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 65, 70, 97, 102, 48, + 57, 65, 70, 97, 102, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 65, 70, 97, 102, 2058, 1920, 2175, + 2058, 1920, 2175, 2058, 1920, 2175, 9, 32, + 40, 41, 2058, 2107, 9, 32, 40, 41, + 48, 2058, 2107, 49, 57, 9, 32, 40, + 41, 1802, 1851, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 65, + 70, 97, 102, 48, 57, 65, 70, 97, + 102, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 48, 57, 65, 70, 97, + 102, 2058, 1920, 2175, 2058, 1920, 2175, 9, + 32, 40, 41, 2058, 2107, 48, 57, 2058, + 1920, 2175, 97, 100, 101, 105, 107, 110, + 111, 112, 108, 112, 110, 32, 34, 44, + 59, 9, 10, 40, 41, 111, 104, 112, + 97, 116, 104, 32, 34, 44, 59, 9, + 10, 40, 41, 99, 104, 32, 34, 44, + 59, 9, 10, 40, 41, 112, 118, 52, + 54, 104, 105, 110, 116, 32, 34, 44, + 59, 9, 10, 40, 41, 104, 105, 110, + 116, 32, 34, 44, 59, 9, 10, 40, + 41, 101, 121, 48, 57, 32, 34, 44, + 59, 9, 10, 40, 41, 48, 57, 111, + 45, 100, 101, 102, 97, 117, 108, 116, + 45, 97, 108, 112, 110, 32, 34, 44, + 59, 9, 10, 40, 41, 104, 116, 116, + 112, 32, 34, 44, 59, 9, 10, 40, + 41, 111, 114, 116, 32, 34, 44, 59, + 9, 10, 40, 41, 105, 107, 115, 110, + 99, 108, 117, 100, 101, 45, 100, 101, + 108, 101, 103, 112, 97, 114, 97, 109, + 32, 34, 44, 59, 9, 10, 40, 41, + 101, 121, 48, 57, 32, 34, 44, 59, + 9, 10, 40, 41, 48, 57, 101, 114, + 118, 101, 114, 45, 105, 110, 112, 118, + 52, 54, 32, 34, 44, 59, 9, 10, + 40, 41, 32, 34, 44, 59, 9, 10, + 40, 41, 97, 109, 101, 32, 34, 44, 59, 9, 10, 40, 41, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, -128, 8, 11, 58, 60, 127, 34, + 32, 40, 41, 97, 100, 101, 105, 107, + 109, 110, 111, 112, 3082, 3131, 3338, 3387, + 3594, 3643, 108, 112, 110, 61, 32, 34, + 59, 9, 10, 40, 41, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, + 1920, 2175, 111, 104, 112, 97, 116, 104, + 61, 32, 34, 59, 9, 10, 40, 41, 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 99, 104, 61, 34, 43, 47, - 57, 65, 90, 97, 122, 43, 47, 57, - 65, 90, 97, 122, 43, 47, 57, 65, - 90, 97, 122, 43, 61, 47, 57, 65, - 90, 97, 122, 43, 61, 47, 57, 65, - 90, 97, 122, 34, 43, 47, 57, 65, - 90, 97, 122, 61, 43, 47, 57, 65, - 90, 97, 122, 43, 61, 47, 57, 65, - 90, 97, 122, 43, 61, 47, 57, 65, - 90, 97, 122, 9, 32, 40, 41, 43, - 3082, 3131, 3338, 3387, 3594, 3643, 47, 57, - 65, 90, 97, 122, 61, 112, 118, 52, - 54, 104, 105, 110, 116, 61, 34, 46, - 48, 57, 46, 48, 57, 34, 44, 46, - 48, 57, 46, 48, 57, 9, 32, 40, + 3594, 3643, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, -128, 8, 11, 58, + 60, 127, 34, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 99, 104, 61, + 34, 43, 47, 57, 65, 90, 97, 122, + 43, 47, 57, 65, 90, 97, 122, 43, + 47, 57, 65, 90, 97, 122, 43, 61, + 47, 57, 65, 90, 97, 122, 43, 61, + 47, 57, 65, 90, 97, 122, 34, 43, + 47, 57, 65, 90, 97, 122, 61, 43, + 47, 57, 65, 90, 97, 122, 43, 61, + 47, 57, 65, 90, 97, 122, 43, 61, + 47, 57, 65, 90, 97, 122, 9, 32, + 40, 41, 43, 3082, 3131, 3338, 3387, 3594, + 3643, 47, 57, 65, 90, 97, 122, 61, + 112, 118, 52, 54, 104, 105, 110, 116, + 61, 34, 46, 48, 57, 46, 48, 57, + 34, 44, 46, 48, 57, 46, 48, 57, + 9, 32, 40, 41, 44, 46, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 46, 48, + 57, 104, 105, 110, 116, 61, 34, 46, + 48, 58, 65, 70, 97, 102, 46, 48, + 58, 65, 70, 97, 102, 34, 44, 46, + 48, 58, 65, 70, 97, 102, 46, 48, + 58, 65, 70, 97, 102, 9, 32, 40, 41, 44, 46, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 46, 48, 57, 104, 105, - 110, 116, 61, 34, 46, 48, 58, 65, - 70, 97, 102, 46, 48, 58, 65, 70, - 97, 102, 34, 44, 46, 48, 58, 65, - 70, 97, 102, 46, 48, 58, 65, 70, - 97, 102, 9, 32, 40, 41, 44, 46, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 58, - 65, 70, 97, 102, 46, 48, 58, 65, - 70, 97, 102, 101, 121, 48, 57, 9, - 32, 40, 41, 61, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 32, 59, 9, 10, - 40, 41, 97, 110, 100, 97, 116, 111, - 114, 121, 61, 34, 65, 90, 97, 122, - 65, 90, 97, 122, 34, 44, 65, 90, - 97, 122, 9, 32, 40, 41, 44, 3082, - 3131, 3338, 3387, 3594, 3643, 65, 90, 97, - 122, 111, 45, 100, 101, 102, 97, 117, - 108, 116, 45, 97, 108, 112, 110, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 104, 116, 116, 112, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 111, - 114, 116, 61, 34, 48, 57, 48, 57, - 34, 48, 57, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, -128, 8, 11, 58, 60, 127, 34, - 68, 69, 73, 80, 82, 100, 101, 105, - 112, 114, 48, 57, 32, 59, 9, 10, - 40, 41, 48, 57, 72, 83, 104, 115, - 32, 59, 9, 10, 40, 41, 65, 97, - 32, 45, 59, 9, 10, 40, 41, 78, - 110, 83, 115, 69, 101, 67, 99, 51, - 45, 83, 115, 72, 104, 65, 97, 49, - 32, 59, 9, 10, 40, 41, 67, 68, - 99, 100, 67, 68, 99, 100, 45, 71, - 103, 79, 111, 83, 115, 84, 116, 32, - 59, 9, 10, 40, 41, 83, 115, 65, - 97, 80, 112, 50, 51, 53, 54, 83, - 115, 72, 104, 65, 97, 50, 53, 54, - 32, 59, 9, 10, 40, 41, 56, 52, - 83, 115, 72, 104, 65, 97, 51, 56, - 52, 32, 59, 9, 10, 40, 41, 50, - 52, 53, 53, 49, 57, 32, 59, 9, - 10, 40, 41, 52, 56, 32, 59, 9, - 10, 40, 41, 78, 110, 68, 100, 73, - 105, 82, 114, 69, 101, 67, 99, 84, - 116, 32, 59, 9, 10, 40, 41, 82, - 114, 73, 105, 86, 118, 65, 97, 84, - 116, 69, 101, 68, 79, 100, 111, 78, - 110, 83, 115, 32, 59, 9, 10, 40, - 41, 73, 105, 68, 100, 32, 59, 9, - 10, 40, 41, 83, 115, 65, 97, 77, - 83, 109, 115, 68, 100, 53, 32, 59, - 9, 10, 40, 41, 72, 104, 65, 97, - 49, 50, 53, 32, 45, 59, 9, 10, - 40, 41, 78, 110, 83, 115, 69, 101, - 67, 99, 51, 45, 83, 115, 72, 104, - 65, 97, 49, 32, 59, 9, 10, 40, - 41, 53, 54, 32, 59, 9, 10, 40, - 41, 49, 50, 32, 59, 9, 10, 40, - 41, 65, 73, 79, 80, 83, 85, 97, - 105, 111, 112, 115, 117, 48, 57, 32, - 59, 9, 10, 40, 41, 48, 57, 67, - 99, 80, 112, 75, 107, 73, 105, 88, - 120, 32, 59, 9, 10, 40, 41, 65, - 80, 83, 97, 112, 115, 67, 99, 80, - 112, 75, 107, 73, 105, 88, 120, 32, - 59, 9, 10, 40, 41, 71, 75, 103, - 107, 80, 112, 32, 59, 9, 10, 40, - 41, 73, 105, 88, 120, 32, 59, 9, - 10, 40, 41, 80, 112, 75, 107, 73, - 105, 32, 59, 9, 10, 40, 41, 73, - 105, 68, 100, 32, 59, 9, 10, 40, - 41, 71, 75, 103, 107, 80, 112, 32, - 59, 9, 10, 40, 41, 73, 105, 88, - 120, 32, 59, 9, 10, 40, 41, 80, - 112, 75, 107, 73, 105, 32, 59, 9, - 10, 40, 41, 82, 114, 73, 105, 32, - 59, 9, 10, 40, 41, 78, 110, 48, - 57, 32, 59, 9, 10, 40, 41, 48, - 57, 79, 111, 84, 116, 73, 105, 70, - 102, 89, 121, 32, 59, 9, 10, 40, - 41, 46, 48, 57, 32, 46, 59, 9, - 10, 40, 41, 48, 57, 42, 92, 95, - 45, 57, 64, 90, 97, 122, 32, 59, - 9, 10, 40, 41, 42, 92, 95, 45, - 57, 64, 90, 97, 122, 9, 32, 40, - 41, 2058, 2107, 9, 32, 40, 41, 42, - 92, 95, 2058, 2107, 45, 57, 64, 90, - 97, 122, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 68, 72, 77, 83, - 87, 100, 104, 109, 115, 119, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 68, 72, - 77, 83, 87, 100, 104, 109, 115, 119, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 68, 72, 77, 83, 87, 100, 104, 109, - 115, 119, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 32, 59, - 68, 72, 77, 83, 87, 100, 104, 109, - 115, 119, 9, 10, 40, 41, 48, 57, + 3643, 48, 58, 65, 70, 97, 102, 46, + 48, 58, 65, 70, 97, 102, 101, 121, + 48, 57, 9, 32, 40, 41, 61, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 32, + 59, 9, 10, 40, 41, 97, 110, 100, + 97, 116, 111, 114, 121, 61, 34, 65, + 90, 97, 122, 65, 90, 97, 122, 34, + 44, 65, 90, 97, 122, 9, 32, 40, + 41, 44, 3082, 3131, 3338, 3387, 3594, 3643, + 65, 90, 97, 122, 111, 45, 100, 101, + 102, 97, 117, 108, 116, 45, 97, 108, + 112, 110, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, 104, 116, 116, 112, + 9, 32, 40, 41, 3082, 3131, 3338, 3387, + 3594, 3643, 111, 114, 116, 61, 34, 48, + 57, 48, 57, 34, 48, 57, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 48, 57, 9, 32, 40, 41, 3082, 3131, + 3338, 3387, 3594, 3643, -128, 8, 11, 58, + 60, 127, 34, 9, 32, 40, 41, 105, + 107, 109, 115, 3082, 3131, 3338, 3387, 3594, + 3643, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 2058, 1920, 2175, 110, 99, + 108, 117, 100, 101, 45, 100, 101, 108, + 101, 103, 112, 97, 114, 97, 109, 61, + 34, 42, 92, 95, 45, 57, 64, 90, + 97, 122, 42, 92, 95, 45, 57, 64, + 90, 97, 122, 34, 44, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 9, + 32, 40, 41, 105, 107, 109, 115, 3082, + 3131, 3338, 3387, 3594, 3643, 101, 121, 48, + 57, 9, 32, 40, 41, 61, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 32, 59, + 9, 10, 40, 41, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 2058, 1920, + 2175, 97, 110, 100, 97, 116, 111, 114, + 121, 61, 34, 65, 90, 97, 122, 65, + 90, 97, 122, 34, 44, 65, 90, 97, + 122, 9, 32, 40, 41, 44, 3082, 3131, + 3338, 3387, 3594, 3643, 65, 90, 97, 122, + 101, 114, 118, 101, 114, 45, 105, 110, + 112, 118, 52, 54, 61, 34, 46, 48, + 57, 46, 48, 57, 34, 44, 46, 48, + 57, 46, 48, 57, 9, 32, 40, 41, + 44, 46, 3082, 3131, 3338, 3387, 3594, 3643, + 48, 57, 46, 48, 57, 61, 34, 46, + 48, 58, 65, 70, 97, 102, 46, 48, + 58, 65, 70, 97, 102, 34, 44, 46, + 48, 58, 65, 70, 97, 102, 46, 48, + 58, 65, 70, 97, 102, 9, 32, 40, + 41, 44, 46, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 58, 65, 70, 97, 102, 46, + 48, 58, 65, 70, 97, 102, 97, 109, + 101, 61, 42, 92, 95, 45, 57, 64, + 90, 97, 122, 9, 32, 40, 41, 44, + 3082, 3131, 3338, 3387, 3594, 3643, 42, 92, + 95, 45, 57, 64, 90, 97, 122, 68, + 69, 73, 80, 82, 100, 101, 105, 112, + 114, 48, 57, 32, 59, 9, 10, 40, + 41, 48, 57, 72, 83, 104, 115, 32, + 59, 9, 10, 40, 41, 65, 97, 32, + 45, 59, 9, 10, 40, 41, 78, 110, + 83, 115, 69, 101, 67, 99, 51, 45, + 83, 115, 72, 104, 65, 97, 49, 32, + 59, 9, 10, 40, 41, 67, 68, 99, + 100, 67, 68, 99, 100, 45, 71, 103, + 79, 111, 83, 115, 84, 116, 32, 59, + 9, 10, 40, 41, 83, 115, 65, 97, + 80, 112, 50, 51, 53, 54, 83, 115, + 72, 104, 65, 97, 50, 53, 54, 32, + 59, 9, 10, 40, 41, 56, 52, 83, + 115, 72, 104, 65, 97, 51, 56, 52, + 32, 59, 9, 10, 40, 41, 50, 52, + 53, 53, 49, 57, 32, 59, 9, 10, + 40, 41, 52, 56, 32, 59, 9, 10, + 40, 41, 78, 110, 68, 100, 73, 105, + 82, 114, 69, 101, 67, 99, 84, 116, + 32, 59, 9, 10, 40, 41, 82, 114, + 73, 105, 86, 118, 65, 97, 84, 116, + 69, 101, 68, 79, 100, 111, 78, 110, + 83, 115, 32, 59, 9, 10, 40, 41, + 73, 105, 68, 100, 32, 59, 9, 10, + 40, 41, 83, 115, 65, 97, 77, 83, + 109, 115, 68, 100, 53, 32, 59, 9, + 10, 40, 41, 72, 104, 65, 97, 49, + 50, 53, 32, 45, 59, 9, 10, 40, + 41, 78, 110, 83, 115, 69, 101, 67, + 99, 51, 45, 83, 115, 72, 104, 65, + 97, 49, 32, 59, 9, 10, 40, 41, + 53, 54, 32, 59, 9, 10, 40, 41, + 49, 50, 32, 59, 9, 10, 40, 41, + 65, 73, 79, 80, 83, 85, 97, 105, + 111, 112, 115, 117, 48, 57, 32, 59, + 9, 10, 40, 41, 48, 57, 67, 99, + 80, 112, 75, 107, 73, 105, 88, 120, + 32, 59, 9, 10, 40, 41, 65, 80, + 83, 97, 112, 115, 67, 99, 80, 112, + 75, 107, 73, 105, 88, 120, 32, 59, + 9, 10, 40, 41, 71, 75, 103, 107, + 80, 112, 32, 59, 9, 10, 40, 41, + 73, 105, 88, 120, 32, 59, 9, 10, + 40, 41, 80, 112, 75, 107, 73, 105, + 32, 59, 9, 10, 40, 41, 73, 105, + 68, 100, 32, 59, 9, 10, 40, 41, + 71, 75, 103, 107, 80, 112, 32, 59, + 9, 10, 40, 41, 73, 105, 88, 120, + 32, 59, 9, 10, 40, 41, 80, 112, + 75, 107, 73, 105, 32, 59, 9, 10, + 40, 41, 82, 114, 73, 105, 32, 59, + 9, 10, 40, 41, 78, 110, 48, 57, 32, 59, 9, 10, 40, 41, 48, 57, - 68, 72, 77, 83, 87, 100, 104, 109, - 115, 119, 48, 57, 32, 59, 9, 10, - 40, 41, 48, 57, 2058, 1920, 2175, 9, - 32, 40, 41, 2058, 2107, 48, 57, 68, + 79, 111, 84, 116, 73, 105, 70, 102, + 89, 121, 32, 59, 9, 10, 40, 41, + 46, 48, 57, 32, 46, 59, 9, 10, + 40, 41, 48, 57, 42, 92, 95, 45, + 57, 64, 90, 97, 122, 32, 59, 9, + 10, 40, 41, 42, 92, 95, 45, 57, + 64, 90, 97, 122, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 42, 92, + 95, 2058, 2107, 45, 57, 64, 90, 97, + 122, 9, 32, 40, 41, 2058, 2107, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 68, 72, 77, 83, 87, + 100, 104, 109, 115, 119, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 68, 72, 77, + 83, 87, 100, 104, 109, 115, 119, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 68, + 72, 77, 83, 87, 100, 104, 109, 115, + 119, 2058, 2107, 48, 57, 9, 32, 40, + 41, 2058, 2107, 48, 57, 32, 59, 68, + 72, 77, 83, 87, 100, 104, 109, 115, + 119, 9, 10, 40, 41, 48, 57, 32, + 59, 9, 10, 40, 41, 48, 57, 68, 72, 77, 83, 87, 100, 104, 109, 115, - 119, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 2058, 1920, 2175, 9, 32, + 119, 48, 57, 32, 59, 9, 10, 40, + 41, 48, 57, 2058, 1920, 2175, 9, 32, 40, 41, 2058, 2107, 48, 57, 68, 72, 77, 83, 87, 100, 104, 109, 115, 119, 48, 57, 9, 32, 40, 41, 2058, 2107, @@ -2863,66 +3020,65 @@ static const short _zone_scanner_trans_keys[] = { 41, 2058, 2107, 48, 57, 68, 72, 77, 83, 87, 100, 104, 109, 115, 119, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 2058, 1920, 2175, 2058, 1920, 2175, 2058, - 1920, 2175, 32, 59, 9, 10, 40, 41, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, -128, 8, 11, 58, - 60, 127, 32, 59, 9, 10, 40, 41, - 2058, 1920, 2175, 42, 92, 95, 45, 57, - 64, 90, 97, 122, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 42, 92, - 95, 2058, 2107, 45, 57, 64, 90, 97, - 122, 32, 59, 9, 10, 40, 41, 2058, - 1920, 2175, 48, 57, 9, 32, 40, 41, + 57, 2058, 1920, 2175, 9, 32, 40, 41, + 2058, 2107, 48, 57, 68, 72, 77, 83, + 87, 100, 104, 109, 115, 119, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, + 2175, 32, 59, 9, 10, 40, 41, 9, + 32, 40, 41, 2058, 2107, 9, 32, 40, + 41, 2058, 2107, -128, 8, 11, 58, 60, + 127, 32, 59, 9, 10, 40, 41, 2058, + 1920, 2175, 42, 92, 95, 45, 57, 64, + 90, 97, 122, 9, 32, 40, 41, 2058, + 2107, 9, 32, 40, 41, 42, 92, 95, + 2058, 2107, 45, 57, 64, 90, 97, 122, + 32, 59, 9, 10, 40, 41, 2058, 1920, + 2175, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 42, + 92, 95, 2058, 2107, 45, 57, 64, 90, + 97, 122, 32, 59, 9, 10, 40, 41, + 2058, 1920, 2175, 32, 59, 9, 10, 40, + 41, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, -128, 8, 11, + 58, 60, 127, 2058, 1920, 2175, 46, 48, + 58, 65, 70, 97, 102, 32, 46, 59, + 9, 10, 40, 41, 48, 58, 65, 70, + 97, 102, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, - 42, 92, 95, 2058, 2107, 45, 57, 64, - 90, 97, 122, 32, 59, 9, 10, 40, - 41, 2058, 1920, 2175, 32, 59, 9, 10, - 40, 41, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, - 11, 58, 60, 127, 2058, 1920, 2175, 46, - 48, 58, 65, 70, 97, 102, 32, 46, - 59, 9, 10, 40, 41, 48, 58, 65, - 70, 97, 102, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 78, 83, 2058, 2107, 48, 57, 9, + 78, 83, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 78, 83, 2058, 2107, 48, 57, + 9, 32, 40, 41, 46, 2058, 2107, 48, + 57, 9, 32, 40, 41, 78, 83, 2058, + 2107, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 78, 83, 2058, 2107, 48, - 57, 9, 32, 40, 41, 46, 2058, 2107, - 48, 57, 9, 32, 40, 41, 78, 83, - 2058, 2107, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 69, 87, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 69, 87, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 69, 87, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 69, 87, 2058, + 2107, 48, 57, 9, 32, 40, 41, 46, 2058, 2107, 48, 57, 9, 32, 40, 41, - 46, 2058, 2107, 48, 57, 9, 32, 40, - 41, 69, 87, 2058, 2107, 9, 32, 40, - 41, 2058, 2107, 9, 32, 40, 41, 45, - 2058, 2107, 48, 57, 48, 57, 9, 32, - 40, 41, 46, 109, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 9, 32, 40, 41, 46, 109, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, - 48, 57, 9, 32, 40, 41, 46, 109, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 9, 32, 40, 41, - 46, 109, 3082, 3131, 3338, 3387, 3594, 3643, - 48, 57, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, - 32, 40, 41, 109, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 9, 32, 40, 41, - 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 2058, 1920, 2175, 9, 32, 40, 41, + 69, 87, 2058, 2107, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 45, 2058, + 2107, 48, 57, 48, 57, 9, 32, 40, + 41, 46, 109, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 9, + 32, 40, 41, 46, 109, 3082, 3131, 3338, + 3387, 3594, 3643, 48, 57, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 9, 32, 40, 41, 46, 109, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 9, 32, 40, 41, 46, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, - 57, 9, 32, 40, 41, 109, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 9, 32, - 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 57, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, + 40, 41, 109, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 9, 32, 40, 41, 109, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 2058, 1920, 2175, 9, 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 109, 3082, 3131, 3338, @@ -2933,310 +3089,308 @@ static const short _zone_scanner_trans_keys[] = { 32, 40, 41, 109, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, 1920, - 2175, 9, 32, 40, 41, 2058, 2107, 2058, + 2175, 9, 32, 40, 41, 109, 3082, 3131, + 3338, 3387, 3594, 3643, 48, 57, 9, 32, + 40, 41, 109, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, + 9, 32, 40, 41, 2058, 2107, 2058, 1920, + 2175, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, 9, 32, 40, 41, 2058, - 2107, 2058, 1920, 2175, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 2058, 1920, 2175, 2058, - 1920, 2175, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 42, 92, 95, 2058, 2107, 45, 57, 64, - 90, 97, 122, 32, 59, 9, 10, 40, - 41, 2058, 1920, 2175, 2058, 1920, 2175, 2058, - 1920, 2175, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, -128, 8, 11, 58, 60, 127, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, -128, 8, 11, 58, - 60, 127, 9, 32, 40, 41, 2058, 2107, - 9, 32, 40, 41, 2058, 2107, -128, 8, - 11, 58, 60, 127, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 42, 92, - 95, 2058, 2107, 45, 57, 64, 90, 97, - 122, 32, 59, 9, 10, 40, 41, 2058, - 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, - 65, 90, 97, 122, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 65, 90, 97, 122, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, - 43, 2058, 2107, 47, 57, 65, 90, 97, - 122, 2570, 2619, 2058, 1920, 2175, 2058, 1920, - 2175, 2058, 1920, 2175, 9, 32, 33, 40, - 41, 49, 50, 3082, 3131, 3338, 3387, 3594, - 3643, 49, 50, 58, 46, 48, 57, 47, - 46, 57, 48, 57, 9, 32, 40, 41, - 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, - 2058, 1920, 2175, 58, 46, 48, 58, 65, - 70, 97, 102, 47, 46, 58, 65, 70, - 97, 102, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 65, 90, 97, 122, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 65, 70, - 97, 102, 48, 57, 65, 70, 97, 102, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 65, 70, 97, 102, - 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, - 2175, 2058, 1920, 2175, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 9, 32, - 40, 41, 2058, 2107, 48, 57, 65, 70, - 97, 102, 48, 57, 65, 70, 97, 102, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 65, 70, 97, 102, - 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 48, - 49, 50, 51, 2058, 2107, 9, 32, 40, - 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, - 2107, 48, 57, 9, 32, 40, 41, 46, - 2058, 2107, 7177, 7200, 7208, 7209, 7433, 7456, - 7464, 7465, 7689, 7712, 7720, 7721, 10506, 10555, - 10762, 10811, 11274, 11323, 11530, 11579, 11786, 11835, - 12298, 12347, 12554, 12603, 12810, 12859, 13322, 13371, - 13578, 13627, 13834, 13883, 4105, 4128, 4136, 4137, - 4139, 5130, 5179, 4143, 4153, 4161, 4186, 4193, - 4218, 2570, 2619, 5130, 4992, 5247, 5641, 5664, - 5672, 5673, 14602, 14651, 14858, 14907, 15370, 15419, - 15626, 15675, 15882, 15931, 6666, 6528, 6783, 4139, - 7177, 7200, 7208, 7209, 7433, 7456, 7464, 7465, - 7689, 7712, 7720, 7721, 10506, 10555, 10762, 10811, - 11274, 11323, 11530, 11579, 11786, 11835, 12298, 12347, - 12554, 12603, 12810, 12859, 13322, 13371, 13578, 13627, - 13834, 13883, 4143, 4153, 4161, 4186, 4193, 4218, - 8714, 9226, 9738, 8576, 8831, 9088, 9343, 9600, - 9855, 2058, 1920, 2175, 2058, 1920, 2175, 9, - 32, 40, 41, 2058, 2107, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 46, 2058, 2107, 48, 57, 46, 7177, - 7200, 7208, 7209, 7433, 7456, 7464, 7465, 7689, - 7712, 7720, 7721, 10506, 10555, 10762, 10811, 11274, - 11323, 11530, 11579, 11786, 11835, 12298, 12347, 12554, - 12603, 12810, 12859, 13322, 13371, 13578, 13627, 13834, - 13883, 48, 57, 2058, 1920, 2175, 2058, 1920, - 2175, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 2058, 2107, 48, 57, 9, - 32, 40, 41, 46, 2058, 2107, 48, 58, - 65, 70, 97, 102, 46, 7177, 7200, 7208, - 7209, 7433, 7456, 7464, 7465, 7689, 7712, 7720, - 7721, 10506, 10555, 10762, 10811, 11274, 11323, 11530, - 11579, 11786, 11835, 12298, 12347, 12554, 12603, 12810, - 12859, 13322, 13371, 13578, 13627, 13834, 13883, 48, - 58, 65, 70, 97, 102, 2058, 1920, 2175, - 2058, 1920, 2175, 9, 32, 40, 41, 2058, - 2107, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 42, 92, 95, - 2058, 2107, 45, 57, 64, 90, 97, 122, - 7177, 7200, 7208, 7209, 7433, 7456, 7464, 7465, - 7689, 7712, 7720, 7721, 10506, 10555, 10762, 10811, - 11274, 11323, 11530, 11579, 11786, 11835, 12298, 12347, - 12554, 12603, 12810, 12859, 13322, 13371, 13578, 13627, - 13834, 13883, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 48, 57, 65, 90, 97, - 122, 9, 32, 40, 41, 2058, 2107, 9, - 32, 40, 41, 2058, 2107, 48, 57, 65, - 90, 97, 122, 9, 32, 40, 41, 2058, - 2107, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 42, 92, 95, - 2058, 2107, 45, 57, 64, 90, 97, 122, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 43, 2058, 2107, 47, 57, 65, - 90, 97, 122, 2570, 2619, 2058, 1920, 2175, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 42, + 92, 95, 2058, 2107, 45, 57, 64, 90, + 97, 122, 32, 59, 9, 10, 40, 41, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, - 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, - 1920, 2175, 2058, 1920, 2175, 42, 92, 95, - 45, 57, 64, 90, 97, 122, 32, 59, - 9, 10, 40, 41, 32, 59, 9, 10, - 40, 41, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 65, 90, 97, 122, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 43, 2058, 2107, 47, 57, 65, - 90, 97, 122, 2570, 2619, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 43, 47, - 57, 65, 90, 97, 122, 2570, 2619, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 2058, 2107, 48, + 2175, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, -128, 8, 11, 58, 60, 127, 9, + 32, 40, 41, 2058, 2107, 9, 32, 40, + 41, 2058, 2107, -128, 8, 11, 58, 60, + 127, 9, 32, 40, 41, 2058, 2107, 9, + 32, 40, 41, 2058, 2107, -128, 8, 11, + 58, 60, 127, 9, 32, 40, 41, 2058, + 2107, 9, 32, 40, 41, 42, 92, 95, + 2058, 2107, 45, 57, 64, 90, 97, 122, + 32, 59, 9, 10, 40, 41, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 2058, 1920, 2175, 48, 57, 65, + 90, 97, 122, 9, 32, 40, 41, 2058, + 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, - 57, 9, 32, 40, 41, 45, 2058, 2107, - 48, 57, 65, 70, 97, 102, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, - 2058, 2107, 48, 57, 65, 86, 97, 118, - 48, 57, 65, 86, 97, 118, 61, 48, - 57, 65, 86, 97, 118, 48, 57, 65, - 86, 97, 118, 61, 48, 57, 65, 86, - 97, 118, 61, 48, 57, 65, 86, 97, - 118, 48, 57, 65, 86, 97, 118, 61, - 48, 57, 65, 86, 97, 118, 32, 59, - 9, 10, 40, 41, 48, 57, 65, 86, - 97, 118, 32, 59, 9, 10, 40, 41, - 61, 61, 61, 61, 61, 2058, 1920, 2175, - 48, 57, 65, 70, 97, 102, 9, 32, - 40, 41, 2058, 2107, 48, 57, 65, 70, - 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, + 57, 65, 90, 97, 122, 9, 32, 40, + 41, 2058, 2107, 9, 32, 40, 41, 43, + 2058, 2107, 47, 57, 65, 90, 97, 122, + 2570, 2619, 2058, 1920, 2175, 2058, 1920, 2175, + 2058, 1920, 2175, 9, 32, 33, 40, 41, + 49, 50, 3082, 3131, 3338, 3387, 3594, 3643, + 49, 50, 58, 46, 48, 57, 47, 46, + 57, 48, 57, 9, 32, 40, 41, 3082, + 3131, 3338, 3387, 3594, 3643, 48, 57, 2058, + 1920, 2175, 58, 46, 48, 58, 65, 70, + 97, 102, 47, 46, 58, 65, 70, 97, + 102, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 65, 90, 97, 122, 9, + 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 45, 2058, 2107, 48, 57, 65, 70, - 97, 102, 32, 59, 9, 10, 40, 41, - 48, 57, 65, 70, 97, 102, 32, 59, - 9, 10, 40, 41, 48, 57, 65, 70, - 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, + 41, 2058, 2107, 48, 57, 65, 70, 97, + 102, 48, 57, 65, 70, 97, 102, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 65, 70, 97, 102, 2058, + 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 65, 70, 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 9, 32, 40, - 41, 2058, 2107, 48, 57, 32, 59, 9, - 10, 40, 41, 48, 57, 32, 59, 9, - 10, 40, 41, 2058, 1920, 2175, 48, 57, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 48, 49, + 50, 51, 2058, 2107, 9, 32, 40, 41, + 2058, 2107, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 2058, 2107, + 48, 57, 9, 32, 40, 41, 46, 2058, + 2107, 7177, 7200, 7208, 7209, 7433, 7456, 7464, + 7465, 7689, 7712, 7720, 7721, 10506, 10555, 10762, + 10811, 11274, 11323, 11530, 11579, 11786, 11835, 12298, + 12347, 12554, 12603, 12810, 12859, 13322, 13371, 13578, + 13627, 13834, 13883, 4105, 4128, 4136, 4137, 4139, + 5130, 5179, 4143, 4153, 4161, 4186, 4193, 4218, + 2570, 2619, 5130, 4992, 5247, 5641, 5664, 5672, + 5673, 14602, 14651, 14858, 14907, 15370, 15419, 15626, + 15675, 15882, 15931, 6666, 6528, 6783, 4139, 7177, + 7200, 7208, 7209, 7433, 7456, 7464, 7465, 7689, + 7712, 7720, 7721, 10506, 10555, 10762, 10811, 11274, + 11323, 11530, 11579, 11786, 11835, 12298, 12347, 12554, + 12603, 12810, 12859, 13322, 13371, 13578, 13627, 13834, + 13883, 4143, 4153, 4161, 4186, 4193, 4218, 8714, + 9226, 9738, 8576, 8831, 9088, 9343, 9600, 9855, + 2058, 1920, 2175, 2058, 1920, 2175, 9, 32, + 40, 41, 2058, 2107, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 46, 2058, 2107, 48, 57, 46, 7177, 7200, + 7208, 7209, 7433, 7456, 7464, 7465, 7689, 7712, + 7720, 7721, 10506, 10555, 10762, 10811, 11274, 11323, + 11530, 11579, 11786, 11835, 12298, 12347, 12554, 12603, + 12810, 12859, 13322, 13371, 13578, 13627, 13834, 13883, + 48, 57, 2058, 1920, 2175, 2058, 1920, 2175, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 46, 2058, 2107, 48, 58, 65, + 70, 97, 102, 46, 7177, 7200, 7208, 7209, + 7433, 7456, 7464, 7465, 7689, 7712, 7720, 7721, + 10506, 10555, 10762, 10811, 11274, 11323, 11530, 11579, + 11786, 11835, 12298, 12347, 12554, 12603, 12810, 12859, + 13322, 13371, 13578, 13627, 13834, 13883, 48, 58, + 65, 70, 97, 102, 2058, 1920, 2175, 2058, + 1920, 2175, 9, 32, 40, 41, 2058, 2107, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 42, 92, 95, 2058, + 2107, 45, 57, 64, 90, 97, 122, 7177, + 7200, 7208, 7209, 7433, 7456, 7464, 7465, 7689, + 7712, 7720, 7721, 10506, 10555, 10762, 10811, 11274, + 11323, 11530, 11579, 11786, 11835, 12298, 12347, 12554, + 12603, 12810, 12859, 13322, 13371, 13578, 13627, 13834, + 13883, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 48, 57, 65, 90, 97, 122, + 9, 32, 40, 41, 2058, 2107, 9, 32, + 40, 41, 2058, 2107, 48, 57, 65, 90, + 97, 122, 9, 32, 40, 41, 2058, 2107, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, - 65, 70, 97, 102, 48, 57, 65, 70, - 97, 102, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 65, 70, - 97, 102, 2058, 1920, 2175, 2058, 1920, 2175, - 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 46, 2058, 2107, 48, - 57, 32, 46, 59, 9, 10, 40, 41, - 48, 57, 2058, 1920, 2175, 48, 57, 9, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 42, 92, 95, 2058, + 2107, 45, 57, 64, 90, 97, 122, 9, + 32, 40, 41, 2058, 2107, 9, 32, 40, + 41, 43, 2058, 2107, 47, 57, 65, 90, + 97, 122, 2570, 2619, 2058, 1920, 2175, 2058, + 1920, 2175, 2058, 1920, 2175, 2058, 1920, 2175, + 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, + 2175, 2058, 1920, 2175, 42, 92, 95, 45, + 57, 64, 90, 97, 122, 32, 59, 9, + 10, 40, 41, 32, 59, 9, 10, 40, + 41, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 65, 90, 97, 122, 9, + 32, 40, 41, 2058, 2107, 9, 32, 40, + 41, 43, 2058, 2107, 47, 57, 65, 90, + 97, 122, 2570, 2619, 2058, 1920, 2175, 2058, + 1920, 2175, 2058, 1920, 2175, 43, 47, 57, + 65, 90, 97, 122, 2570, 2619, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 2058, 2107, 48, 57, + 9, 32, 40, 41, 45, 2058, 2107, 48, + 57, 65, 70, 97, 102, 9, 32, 40, + 41, 2058, 2107, 9, 32, 40, 41, 2058, + 2107, 48, 57, 65, 86, 97, 118, 48, + 57, 65, 86, 97, 118, 61, 48, 57, + 65, 86, 97, 118, 48, 57, 65, 86, + 97, 118, 61, 48, 57, 65, 86, 97, + 118, 61, 48, 57, 65, 86, 97, 118, + 48, 57, 65, 86, 97, 118, 61, 48, + 57, 65, 86, 97, 118, 32, 59, 9, + 10, 40, 41, 48, 57, 65, 86, 97, + 118, 32, 59, 9, 10, 40, 41, 61, + 61, 61, 61, 61, 2058, 1920, 2175, 48, + 57, 65, 70, 97, 102, 9, 32, 40, + 41, 2058, 2107, 48, 57, 65, 70, 97, + 102, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 45, 2058, 2107, 48, 57, 65, 70, 97, + 102, 32, 59, 9, 10, 40, 41, 48, + 57, 65, 70, 97, 102, 32, 59, 9, + 10, 40, 41, 48, 57, 65, 70, 97, + 102, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 65, 70, 97, 102, + 48, 57, 65, 70, 97, 102, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 48, 57, 65, 70, 97, 102, 2058, 1920, + 2175, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 9, 32, 40, 41, + 2058, 2107, 48, 57, 32, 59, 9, 10, + 40, 41, 48, 57, 32, 59, 9, 10, + 40, 41, 2058, 1920, 2175, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 9, 32, 40, 41, 2058, 2107, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, - 102, 48, 57, 65, 70, 97, 102, 48, - 57, 65, 70, 97, 102, 58, 48, 57, - 65, 70, 97, 102, 48, 57, 65, 70, + 102, 9, 32, 40, 41, 3082, 3131, 3338, + 3387, 3594, 3643, 48, 57, 65, 70, 97, + 102, 2058, 1920, 2175, 2058, 1920, 2175, 2058, + 1920, 2175, 2058, 1920, 2175, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 46, 2058, 2107, 48, 57, + 32, 46, 59, 9, 10, 40, 41, 48, + 57, 2058, 1920, 2175, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 9, 32, + 40, 41, 2058, 2107, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, 102, - 48, 57, 65, 70, 97, 102, 32, 58, - 59, 9, 10, 40, 41, 2058, 1920, 2175, - 48, 57, 65, 70, 97, 102, 48, 57, - 65, 70, 97, 102, 45, 48, 57, 65, - 70, 97, 102, 48, 57, 65, 70, 97, - 102, 32, 45, 59, 9, 10, 40, 41, 48, 57, 65, 70, 97, 102, 48, 57, - 65, 70, 97, 102, 45, 48, 57, 65, + 65, 70, 97, 102, 58, 48, 57, 65, 70, 97, 102, 48, 57, 65, 70, 97, - 102, 32, 45, 59, 9, 10, 40, 41, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - 48, 57, 9, 32, 40, 41, 2058, 2107, - -128, 8, 11, 58, 60, 127, 32, 59, - 9, 10, 40, 41, 2058, 1920, 2175, 2058, - 1920, 2175, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, -128, 8, 11, 58, 60, 127, - 9, 32, 40, 41, 2058, 2107, 9, 32, - 40, 41, 2058, 2107, -128, 8, 11, 58, - 60, 127, 32, 59, 9, 10, 40, 41, - 2058, 1920, 2175, 2058, 1920, 2175, 48, 57, - 9, 32, 40, 41, 2058, 2107, 48, 57, - 9, 32, 40, 41, 42, 92, 95, 2058, - 2107, 45, 57, 64, 90, 97, 122, 32, - 59, 9, 10, 40, 41, 32, 59, 9, - 10, 40, 41, 2058, 1920, 2175, 48, 57, - 65, 90, 97, 122, 9, 32, 40, 41, - 2058, 2107, 9, 32, 40, 41, 2058, 2107, - 48, 57, 65, 90, 97, 122, 9, 32, - 40, 41, 2058, 2107, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 2058, 2107, 48, 57, 9, 32, 40, 41, - 42, 92, 95, 2058, 2107, 45, 57, 64, + 102, 48, 57, 65, 70, 97, 102, 48, + 57, 65, 70, 97, 102, 32, 58, 59, + 9, 10, 40, 41, 2058, 1920, 2175, 48, + 57, 65, 70, 97, 102, 48, 57, 65, + 70, 97, 102, 45, 48, 57, 65, 70, + 97, 102, 48, 57, 65, 70, 97, 102, + 32, 45, 59, 9, 10, 40, 41, 48, + 57, 65, 70, 97, 102, 48, 57, 65, + 70, 97, 102, 45, 48, 57, 65, 70, + 97, 102, 48, 57, 65, 70, 97, 102, + 32, 45, 59, 9, 10, 40, 41, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, 48, + 57, 9, 32, 40, 41, 2058, 2107, -128, + 8, 11, 58, 60, 127, 32, 59, 9, + 10, 40, 41, 2058, 1920, 2175, 2058, 1920, + 2175, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, -128, 8, 11, 58, 60, 127, 9, + 32, 40, 41, 2058, 2107, 9, 32, 40, + 41, 2058, 2107, -128, 8, 11, 58, 60, + 127, 32, 59, 9, 10, 40, 41, 2058, + 1920, 2175, 2058, 1920, 2175, 48, 57, 9, + 32, 40, 41, 2058, 2107, 48, 57, 9, + 32, 40, 41, 42, 92, 95, 2058, 2107, + 45, 57, 64, 90, 97, 122, 32, 59, + 9, 10, 40, 41, 32, 59, 9, 10, + 40, 41, 2058, 1920, 2175, 48, 57, 65, + 90, 97, 122, 9, 32, 40, 41, 2058, + 2107, 9, 32, 40, 41, 2058, 2107, 48, + 57, 65, 90, 97, 122, 9, 32, 40, + 41, 2058, 2107, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 2058, + 2107, 48, 57, 9, 32, 40, 41, 42, + 92, 95, 2058, 2107, 45, 57, 64, 90, + 97, 122, 32, 59, 9, 10, 40, 41, + 2058, 1920, 2175, 2058, 1920, 2175, 2058, 1920, + 2175, 32, 59, 9, 10, 40, 41, 65, 90, 97, 122, 32, 59, 9, 10, 40, - 41, 2058, 1920, 2175, 2058, 1920, 2175, 2058, - 1920, 2175, 9, 32, 36, 40, 41, 42, + 41, 9, 32, 36, 40, 41, 42, 92, + 95, 1802, 1851, 2058, 2107, 45, 57, 64, + 90, 97, 122, 9, 32, 36, 40, 41, + 42, 58, 92, 95, 2826, 2875, 3082, 3131, + 3338, 3387, 3594, 3643, -128, 8, 11, 44, + 45, 57, 60, 63, 64, 90, 91, 96, + 97, 122, 123, 127, 9, 32, 36, 40, + 41, 42, 65, 67, 68, 69, 72, 73, + 75, 76, 77, 78, 79, 80, 82, 83, + 84, 85, 87, 90, 92, 95, 97, 99, + 100, 101, 104, 105, 107, 108, 109, 110, + 111, 112, 114, 115, 116, 117, 119, 122, + 1802, 1851, 2058, 2107, 45, 57, 64, 89, + 98, 121, 9, 32, 36, 40, 41, 42, + 65, 67, 68, 69, 72, 73, 75, 76, + 77, 78, 79, 80, 82, 83, 84, 85, + 87, 90, 92, 95, 97, 99, 100, 101, + 104, 105, 107, 108, 109, 110, 111, 112, + 114, 115, 116, 117, 119, 122, 1802, 1851, + 2058, 2107, 45, 47, 48, 57, 64, 89, + 98, 121, 9, 32, 36, 40, 41, 42, 92, 95, 1802, 1851, 2058, 2107, 45, 57, 64, 90, 97, 122, 9, 32, 36, 40, - 41, 42, 58, 92, 95, 2826, 2875, 3082, - 3131, 3338, 3387, 3594, 3643, -128, 8, 11, - 44, 45, 57, 60, 63, 64, 90, 91, - 96, 97, 122, 123, 127, 9, 32, 36, - 40, 41, 42, 65, 67, 68, 69, 72, - 73, 75, 76, 77, 78, 79, 80, 82, - 83, 84, 85, 87, 90, 92, 95, 97, - 99, 100, 101, 104, 105, 107, 108, 109, - 110, 111, 112, 114, 115, 116, 117, 119, - 122, 1802, 1851, 2058, 2107, 45, 57, 64, - 89, 98, 121, 9, 32, 36, 40, 41, - 42, 65, 67, 68, 69, 72, 73, 75, - 76, 77, 78, 79, 80, 82, 83, 84, - 85, 87, 90, 92, 95, 97, 99, 100, - 101, 104, 105, 107, 108, 109, 110, 111, - 112, 114, 115, 116, 117, 119, 122, 1802, - 1851, 2058, 2107, 45, 47, 48, 57, 64, - 89, 98, 121, 9, 32, 36, 40, 41, - 42, 92, 95, 1802, 1851, 2058, 2107, 45, - 57, 64, 90, 97, 122, 9, 32, 36, - 40, 41, 42, 65, 67, 68, 69, 72, - 73, 75, 76, 77, 78, 79, 80, 82, - 83, 84, 85, 87, 90, 92, 95, 97, - 99, 100, 101, 104, 105, 107, 108, 109, - 110, 111, 112, 114, 115, 116, 117, 119, - 122, 1802, 1851, 2058, 2107, 45, 47, 48, - 57, 64, 89, 98, 121, 9, 32, 36, - 40, 41, 42, 92, 95, 1802, 1851, 2058, - 2107, 45, 57, 64, 90, 97, 122, 9, - 32, 36, 40, 41, 42, 58, 92, 95, - 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643, - -128, 8, 11, 44, 45, 57, 60, 63, - 64, 90, 91, 96, 97, 122, 123, 127, - 9, 32, 36, 40, 41, 42, 58, 65, - 67, 68, 69, 72, 73, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 87, - 90, 92, 95, 97, 99, 100, 101, 104, - 105, 107, 108, 109, 110, 111, 112, 114, - 115, 116, 117, 119, 122, 2826, 2875, 3082, - 3131, 3338, 3387, 3594, 3643, -128, 8, 11, - 44, 45, 47, 48, 57, 60, 63, 64, - 89, 91, 96, 98, 121, 123, 127, 9, + 41, 42, 65, 67, 68, 69, 72, 73, + 75, 76, 77, 78, 79, 80, 82, 83, + 84, 85, 87, 90, 92, 95, 97, 99, + 100, 101, 104, 105, 107, 108, 109, 110, + 111, 112, 114, 115, 116, 117, 119, 122, + 1802, 1851, 2058, 2107, 45, 47, 48, 57, + 64, 89, 98, 121, 9, 32, 36, 40, + 41, 42, 92, 95, 1802, 1851, 2058, 2107, + 45, 57, 64, 90, 97, 122, 9, 32, + 36, 40, 41, 42, 58, 92, 95, 2826, + 2875, 3082, 3131, 3338, 3387, 3594, 3643, -128, + 8, 11, 44, 45, 57, 60, 63, 64, + 90, 91, 96, 97, 122, 123, 127, 9, 32, 36, 40, 41, 42, 58, 65, 67, 68, 69, 72, 73, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 90, @@ -3245,60 +3399,73 @@ static const short _zone_scanner_trans_keys[] = { 116, 117, 119, 122, 2826, 2875, 3082, 3131, 3338, 3387, 3594, 3643, -128, 8, 11, 44, 45, 47, 48, 57, 60, 63, 64, 89, - 91, 96, 98, 121, 123, 127, 32, 33, - 59, 92, 9, 10, 35, 39, 40, 41, - 42, 126, 9, 32, 40, 41, 42, 46, - 92, 95, 2058, 2107, 45, 57, 65, 90, - 97, 122, 9, 32, 40, 41, 43, 3082, - 3131, 3338, 3387, 3594, 3643, 47, 57, 65, - 90, 97, 122, 2058, 1920, 2175, 9, 32, - 40, 41, 65, 67, 68, 69, 72, 73, - 75, 76, 77, 78, 79, 80, 82, 83, - 84, 85, 87, 90, 97, 99, 100, 101, - 104, 105, 107, 108, 109, 110, 111, 112, - 114, 115, 116, 117, 119, 122, 3082, 3131, - 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, - 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 65, 70, 97, 102, 2058, - 1920, 2175, 9, 32, 40, 41, 2058, 2107, - 48, 57, 65, 70, 97, 102, 9, 32, + 91, 96, 98, 121, 123, 127, 9, 32, + 36, 40, 41, 42, 58, 65, 67, 68, + 69, 72, 73, 75, 76, 77, 78, 79, + 80, 82, 83, 84, 85, 87, 90, 92, + 95, 97, 99, 100, 101, 104, 105, 107, + 108, 109, 110, 111, 112, 114, 115, 116, + 117, 119, 122, 2826, 2875, 3082, 3131, 3338, + 3387, 3594, 3643, -128, 8, 11, 44, 45, + 47, 48, 57, 60, 63, 64, 89, 91, + 96, 98, 121, 123, 127, 32, 33, 59, + 92, 9, 10, 35, 39, 40, 41, 42, + 126, 9, 32, 40, 41, 42, 46, 92, + 95, 2058, 2107, 45, 57, 65, 90, 97, + 122, 9, 32, 40, 41, 43, 3082, 3131, + 3338, 3387, 3594, 3643, 47, 57, 65, 90, + 97, 122, 2058, 1920, 2175, 9, 32, 40, + 41, 65, 67, 68, 69, 72, 73, 75, + 76, 77, 78, 79, 80, 82, 83, 84, + 85, 87, 90, 97, 99, 100, 101, 104, + 105, 107, 108, 109, 110, 111, 112, 114, + 115, 116, 117, 119, 122, 3082, 3131, 3338, + 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 65, 70, 97, 102, 2058, 1920, - 2175, 2058, 1920, 2175, 9, 32, 40, 41, - 97, 100, 101, 105, 107, 109, 110, 111, - 112, 3082, 3131, 3338, 3387, 3594, 3643, 2058, - 1920, 2175, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, -128, 8, 11, 58, - 60, 127, 2058, 1920, 2175, 9, 32, 40, - 41, 3082, 3131, 3338, 3387, 3594, 3643, 2058, - 1920, 2175, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 2058, 1920, + 2175, 9, 32, 40, 41, 2058, 2107, 48, + 57, 65, 70, 97, 102, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 65, 70, 97, 102, 2058, 1920, 2175, + 2058, 1920, 2175, 9, 32, 40, 41, 97, + 100, 101, 105, 107, 109, 110, 111, 112, + 3082, 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, 40, 41, 3082, 3131, 3338, - 3387, 3594, 3643, 48, 57, 2058, 1920, 2175, - 9, 32, 40, 41, 3082, 3131, 3338, 3387, - 3594, 3643, 48, 57, 2058, 1920, 2175, 9, - 32, 33, 40, 41, 49, 50, 3082, 3131, + 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, + 40, 41, 105, 107, 109, 115, 3082, 3131, 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, - 3643, 48, 57, 65, 70, 97, 102, 2058, + 3643, -128, 8, 11, 58, 60, 127, 2058, 1920, 2175, 9, 32, 40, 41, 3082, 3131, - 3338, 3387, 3594, 3643, 48, 57, 65, 70, - 97, 102, 2058, 1920, 2175, 5641, 5664, 5672, - 5673, 14602, 14651, 14858, 14907, 15370, 15419, 15626, - 15675, 15882, 15931, 6666, 6528, 6783, 4105, 4128, - 4136, 4137, 4139, 5130, 5179, 4143, 4153, 4161, - 4186, 4193, 4218, 5130, 4992, 5247, 4139, 7177, - 7200, 7208, 7209, 7433, 7456, 7464, 7465, 7689, - 7712, 7720, 7721, 10506, 10555, 10762, 10811, 11274, - 11323, 11530, 11579, 11786, 11835, 12298, 12347, 12554, - 12603, 12810, 12859, 13322, 13371, 13578, 13627, 13834, - 13883, 4143, 4153, 4161, 4186, 4193, 4218, 8714, - 9226, 9738, 8576, 8831, 9088, 9343, 9600, 9855, + 3338, 3387, 3594, 3643, 2058, 1920, 2175, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 2058, 1920, 2175, 9, 32, + 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, + 48, 57, 2058, 1920, 2175, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 2058, 1920, 2175, 9, 32, 33, 40, + 41, 49, 50, 3082, 3131, 3338, 3387, 3594, + 3643, 2058, 1920, 2175, 9, 32, 40, 41, + 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, + 65, 70, 97, 102, 2058, 1920, 2175, 9, + 32, 40, 41, 3082, 3131, 3338, 3387, 3594, + 3643, 48, 57, 65, 70, 97, 102, 2058, + 1920, 2175, 5641, 5664, 5672, 5673, 14602, 14651, + 14858, 14907, 15370, 15419, 15626, 15675, 15882, 15931, + 6666, 6528, 6783, 4105, 4128, 4136, 4137, 4139, + 5130, 5179, 4143, 4153, 4161, 4186, 4193, 4218, + 5130, 4992, 5247, 4139, 7177, 7200, 7208, 7209, + 7433, 7456, 7464, 7465, 7689, 7712, 7720, 7721, + 10506, 10555, 10762, 10811, 11274, 11323, 11530, 11579, + 11786, 11835, 12298, 12347, 12554, 12603, 12810, 12859, + 13322, 13371, 13578, 13627, 13834, 13883, 4143, 4153, + 4161, 4186, 4193, 4218, 8714, 9226, 9738, 8576, + 8831, 9088, 9343, 9600, 9855, 9, 32, 40, + 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, + 57, 65, 70, 97, 102, 2058, 1920, 2175, 9, 32, 40, 41, 3082, 3131, 3338, 3387, 3594, 3643, 48, 57, 65, 70, 97, 102, - 2058, 1920, 2175, 9, 32, 40, 41, 3082, - 3131, 3338, 3387, 3594, 3643, 48, 57, 65, - 70, 97, 102, 2058, 1920, 2175, 0 + 2058, 1920, 2175, 0 }; static const char _zone_scanner_single_lengths[] = { @@ -3307,202 +3474,221 @@ static const char _zone_scanner_single_lengths[] = { 44, 10, 2, 10, 12, 12, 4, 2, 2, 2, 2, 10, 10, 2, 2, 10, 2, 2, 2, 10, 2, 2, 2, 10, - 6, 2, 2, 2, 10, 4, 2, 2, - 10, 2, 2, 2, 10, 12, 2, 2, - 10, 2, 2, 2, 1, 10, 1, 10, - 4, 2, 2, 2, 10, 2, 2, 2, - 10, 4, 6, 42, 2, 2, 2, 2, - 2, 2, 2, 10, 4, 2, 10, 10, - 6, 1, 10, 1, 10, 2, 10, 10, - 4, 2, 2, 2, 10, 10, 6, 2, - 2, 2, 10, 2, 10, 12, 2, 11, - 12, 2, 2, 2, 2, 10, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 10, - 2, 2, 10, 8, 2, 2, 2, 2, - 2, 10, 10, 2, 2, 2, 10, 10, - 12, 2, 2, 2, 2, 10, 2, 10, - 2, 10, 2, 10, 2, 2, 2, 10, - 2, 2, 10, 6, 2, 2, 10, 2, - 10, 2, 2, 0, 10, 2, 2, 10, - 2, 2, 2, 2, 2, 10, 2, 2, - 2, 2, 2, 10, 1, 44, 4, 6, - 42, 16, 6, 10, 6, 1, 1, 6, - 2, 2, 2, 2, 2, 2, 2, 6, - 42, 1, 16, 42, 1, 6, 10, 6, - 1, 18, 48, 20, 13, 44, 2, 8, - 8, 50, 18, 14, 10, 12, 12, 12, - 14, 12, 14, 10, 10, 16, 20, 14, - 10, 10, 10, 2, 14, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 8, 18, - 44, 2, 20, 50, 18, 14, 10, 12, - 12, 12, 14, 12, 14, 10, 10, 16, - 20, 14, 10, 10, 10, 9, 44, 12, - 12, 12, 12, 2, 2, 10, 2, 2, - 2, 10, 2, 2, 2, 10, 2, 10, - 2, 8, 8, 12, 12, 12, 12, 1, - 50, 12, 12, 16, 12, 8, 10, 10, - 10, 12, 10, 12, 8, 8, 14, 18, - 12, 8, 8, 8, 2, 2, 10, 2, - 3, 1, 1, 5, 6, 6, 0, 0, - 0, 6, 2, 2, 2, 4, 0, 0, - 0, 4, 6, 6, 2, 0, 0, 0, - 6, 6, 6, 18, 8, 1, 8, 10, - 8, 1, 6, 10, 4, 12, 8, 1, - 0, 0, 0, 4, 8, 1, 6, 6, - 8, 12, 4, 12, 8, 1, 0, 0, - 0, 4, 8, 2, 10, 1, 1, 1, - 1, 2, 2, 11, 1, 1, 36, 10, + 8, 2, 2, 2, 12, 2, 2, 2, + 2, 10, 2, 2, 2, 10, 4, 2, + 2, 10, 2, 2, 2, 10, 12, 2, + 2, 10, 2, 2, 2, 1, 10, 1, + 10, 4, 2, 2, 2, 10, 2, 2, + 2, 10, 4, 6, 42, 2, 2, 2, + 2, 2, 2, 2, 10, 4, 2, 10, + 10, 6, 1, 10, 1, 10, 2, 10, + 10, 4, 2, 2, 2, 10, 10, 6, + 2, 2, 2, 10, 2, 10, 12, 2, + 11, 12, 2, 2, 2, 2, 10, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 10, 2, 2, - 4, 2, 2, 2, 2, 2, 2, 2, + 10, 2, 2, 10, 8, 2, 2, 2, + 2, 2, 10, 10, 2, 2, 2, 10, + 10, 12, 2, 2, 2, 2, 10, 2, + 10, 2, 10, 2, 10, 2, 2, 2, + 10, 2, 2, 10, 6, 2, 2, 10, + 2, 10, 2, 2, 0, 10, 2, 2, + 10, 2, 2, 2, 2, 2, 10, 2, + 2, 2, 2, 2, 10, 1, 44, 4, + 6, 42, 16, 6, 10, 6, 1, 1, + 6, 2, 2, 2, 2, 2, 2, 2, + 6, 42, 1, 16, 42, 1, 6, 10, + 6, 1, 18, 48, 20, 13, 44, 2, + 8, 8, 50, 18, 16, 10, 12, 12, + 12, 14, 12, 14, 10, 10, 16, 20, + 14, 10, 10, 10, 2, 14, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 8, + 18, 44, 2, 20, 50, 18, 16, 10, + 12, 12, 12, 14, 12, 14, 10, 10, + 16, 20, 14, 10, 10, 10, 9, 44, + 12, 12, 12, 12, 2, 2, 10, 2, + 2, 2, 10, 2, 2, 2, 10, 2, + 10, 2, 8, 8, 12, 12, 12, 12, + 1, 50, 12, 12, 16, 14, 8, 10, + 10, 10, 12, 10, 12, 8, 8, 14, + 18, 12, 8, 8, 8, 2, 2, 10, + 2, 3, 1, 1, 5, 8, 8, 0, + 0, 0, 8, 4, 4, 2, 4, 0, + 0, 0, 4, 6, 6, 2, 0, 0, + 0, 6, 6, 6, 18, 8, 1, 8, + 10, 8, 1, 6, 10, 4, 12, 8, + 1, 0, 0, 0, 4, 8, 1, 6, + 6, 8, 12, 4, 12, 8, 1, 0, + 0, 0, 4, 8, 2, 10, 1, 1, + 1, 1, 2, 2, 11, 1, 1, 36, + 10, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 10, 2, + 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 6, 2, 2, 2, 2, 4, - 2, 2, 2, 2, 2, 2, 2, 4, - 2, 2, 2, 2, 2, 2, 1, 2, - 1, 2, 4, 2, 2, 2, 2, 2, + 2, 2, 2, 8, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 4, 2, 2, 2, 6, - 1, 2, 1, 2, 2, 2, 2, 4, - 2, 2, 2, 2, 2, 6, 2, 2, - 2, 2, 2, 2, 4, 2, 3, 4, + 2, 4, 2, 2, 2, 2, 2, 2, + 2, 4, 2, 2, 2, 2, 2, 2, + 1, 2, 1, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 2, 2, + 2, 6, 1, 2, 1, 2, 2, 2, + 2, 4, 2, 2, 2, 2, 2, 6, + 2, 2, 2, 2, 2, 2, 4, 2, + 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 8, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 12, + 2, 2, 2, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 12, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 6, 2, 2, 2, 2, 2, - 2, 2, 0, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 6, 2, 2, 2, + 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 10, 46, 18, 2, 2, - 10, 1, 10, 2, 10, 4, 2, 2, - 2, 2, 10, 10, 2, 2, 10, 2, - 2, 2, 10, 2, 2, 2, 10, 6, - 2, 2, 2, 10, 4, 2, 2, 10, - 2, 2, 2, 10, 12, 2, 2, 10, - 2, 2, 2, 1, 10, 1, 10, 4, - 2, 2, 2, 10, 2, 2, 2, 10, - 2, 2, 2, 2, 2, 2, 2, 10, - 4, 2, 10, 10, 6, 1, 10, 1, - 10, 2, 10, 10, 4, 2, 2, 2, - 10, 10, 6, 2, 2, 2, 10, 2, - 10, 12, 2, 11, 12, 2, 2, 2, - 2, 10, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 10, 2, 2, 10, 8, - 2, 2, 2, 2, 2, 10, 10, 2, - 2, 2, 10, 10, 12, 2, 2, 2, - 2, 10, 2, 10, 2, 10, 2, 10, - 2, 2, 2, 10, 2, 2, 10, 6, - 2, 2, 10, 2, 10, 2, 2, 0, - 10, 2, 2, 10, 2, 2, 2, 2, - 2, 10, 2, 2, 2, 2, 2, 10, - 2, 2, 2, 10, 2, 2, 2, 10, - 2, 10, 6, 6, 6, 6, 0, 10, - 1, 1, 1, 6, 7, 8, 6, 0, - 10, 1, 1, 6, 1, 8, 1, 1, - 1, 4, 1, 1, 1, 1, 1, 1, - 4, 1, 1, 4, 1, 1, 2, 1, - 1, 1, 1, 4, 1, 1, 1, 1, - 4, 1, 1, 0, 4, 1, 1, 1, + 2, 2, 2, 2, 2, 10, 46, 18, + 2, 2, 10, 1, 10, 2, 10, 4, + 2, 2, 2, 2, 10, 10, 2, 2, + 10, 2, 2, 2, 10, 2, 2, 2, + 10, 8, 2, 2, 2, 12, 2, 2, + 2, 2, 10, 2, 2, 2, 10, 4, + 2, 2, 10, 2, 2, 2, 10, 12, + 2, 2, 10, 2, 2, 2, 1, 10, + 1, 10, 4, 2, 2, 2, 10, 2, + 2, 2, 10, 2, 2, 2, 2, 2, + 2, 2, 10, 4, 2, 10, 10, 6, + 1, 10, 1, 10, 2, 10, 10, 4, + 2, 2, 2, 10, 10, 6, 2, 2, + 2, 10, 2, 10, 12, 2, 11, 12, + 2, 2, 2, 2, 10, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 10, 2, + 2, 10, 8, 2, 2, 2, 2, 2, + 10, 10, 2, 2, 2, 10, 10, 12, + 2, 2, 2, 2, 10, 2, 10, 2, + 10, 2, 10, 2, 2, 2, 10, 2, + 2, 10, 6, 2, 2, 10, 2, 10, + 2, 2, 0, 10, 2, 2, 10, 2, + 2, 2, 2, 2, 10, 2, 2, 2, + 2, 2, 10, 2, 2, 2, 10, 2, + 2, 2, 10, 2, 10, 6, 6, 6, + 6, 0, 10, 1, 1, 1, 6, 7, + 8, 6, 0, 10, 1, 1, 6, 1, + 8, 1, 1, 1, 4, 1, 1, 1, + 1, 1, 1, 4, 1, 1, 4, 1, + 1, 2, 1, 1, 1, 1, 4, 1, + 1, 1, 1, 4, 1, 1, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, - 4, 1, 1, 1, 4, 10, 19, 1, - 1, 1, 1, 3, 10, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 10, 10, - 1, 10, 1, 1, 1, 2, 1, 1, - 2, 2, 2, 1, 1, 2, 2, 11, - 1, 1, 1, 2, 1, 1, 1, 1, - 1, 2, 1, 3, 1, 12, 1, 1, - 1, 1, 1, 1, 2, 1, 3, 1, - 12, 1, 1, 1, 0, 11, 2, 1, + 1, 1, 1, 1, 1, 1, 4, 1, + 1, 1, 1, 4, 1, 1, 1, 4, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 2, 0, 11, 0, 1, 1, + 1, 1, 4, 1, 1, 0, 4, 1, + 1, 1, 1, 1, 1, 2, 1, 1, + 2, 4, 4, 1, 1, 1, 4, 10, + 19, 1, 1, 1, 1, 3, 10, 1, + 1, 1, 1, 1, 1, 1, 1, 3, + 10, 10, 1, 10, 1, 1, 1, 2, + 1, 1, 2, 2, 2, 1, 1, 2, + 2, 11, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 2, 1, 3, 1, 12, + 1, 1, 1, 1, 1, 1, 2, 1, + 3, 1, 12, 1, 1, 1, 0, 11, + 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 2, 0, 11, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 10, 1, 1, 1, - 1, 10, 1, 1, 1, 1, 1, 0, - 1, 10, 10, 1, 10, 2, 4, 2, - 2, 3, 2, 2, 2, 2, 1, 1, - 2, 2, 2, 1, 2, 4, 4, 1, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 1, 2, 2, 2, 1, 1, - 1, 2, 1, 1, 2, 2, 2, 1, - 1, 1, 2, 2, 1, 1, 1, 1, - 2, 1, 1, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 10, 1, + 1, 1, 1, 10, 1, 1, 1, 1, + 1, 0, 1, 10, 10, 1, 14, 10, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 4, 3, 2, 10, 14, + 1, 1, 0, 11, 2, 10, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 2, 0, 11, 0, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 2, + 1, 2, 1, 3, 1, 12, 1, 1, + 2, 1, 3, 1, 12, 1, 1, 1, + 1, 1, 3, 11, 3, 10, 2, 4, + 2, 2, 3, 2, 2, 2, 2, 1, + 1, 2, 2, 2, 1, 2, 4, 4, + 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 1, 2, 2, 2, 1, + 1, 1, 2, 1, 1, 2, 2, 2, + 1, 1, 1, 2, 2, 1, 1, 1, + 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 4, 2, 2, 2, 2, 2, - 2, 2, 2, 4, 2, 1, 2, 2, - 2, 3, 3, 2, 2, 2, 2, 1, - 1, 2, 2, 2, 1, 2, 1, 1, - 2, 1, 1, 2, 12, 2, 2, 2, - 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, + 2, 2, 2, 2, 4, 2, 1, 2, + 2, 2, 3, 3, 2, 2, 2, 2, + 1, 1, 2, 2, 2, 1, 2, 1, + 1, 2, 1, 1, 2, 12, 2, 2, + 2, 2, 2, 2, 2, 6, 2, 2, + 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 4, 2, 2, 2, 2, 2, 2, 2, + 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 3, 3, - 2, 3, 6, 9, 6, 6, 6, 6, - 16, 6, 16, 6, 16, 6, 12, 2, - 10, 2, 1, 6, 10, 6, 1, 6, - 10, 6, 1, 6, 10, 6, 1, 1, - 1, 2, 6, 6, 2, 1, 3, 6, - 9, 2, 1, 0, 6, 9, 2, 1, - 2, 10, 10, 1, 1, 3, 0, 6, - 8, 6, 8, 7, 8, 6, 6, 6, - 8, 6, 8, 7, 8, 6, 7, 0, - 12, 10, 12, 10, 12, 10, 12, 10, - 1, 11, 11, 1, 11, 11, 10, 1, - 11, 11, 10, 1, 11, 11, 10, 1, - 6, 1, 6, 6, 1, 1, 1, 6, - 1, 6, 6, 1, 1, 0, 6, 6, + 2, 2, 2, 2, 2, 2, 1, 3, + 3, 2, 3, 6, 9, 6, 6, 6, + 6, 16, 6, 16, 6, 16, 6, 12, + 2, 10, 2, 1, 6, 10, 6, 1, + 6, 10, 6, 1, 6, 10, 6, 1, + 1, 1, 2, 6, 6, 2, 1, 3, + 6, 9, 2, 1, 0, 6, 9, 2, + 1, 2, 10, 10, 1, 1, 3, 0, + 6, 8, 6, 8, 7, 8, 6, 6, + 6, 8, 6, 8, 7, 8, 6, 7, + 0, 12, 10, 12, 10, 12, 10, 12, + 10, 1, 11, 11, 1, 11, 11, 10, + 1, 11, 11, 10, 1, 11, 11, 10, + 1, 6, 1, 6, 6, 1, 1, 1, + 6, 1, 6, 6, 1, 1, 0, 6, + 6, 6, 6, 6, 9, 2, 1, 1, + 1, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 9, 2, 1, 1, 1, - 0, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 9, 2, 1, 1, 1, 1, - 1, 0, 6, 6, 6, 6, 6, 7, - 2, 1, 1, 1, 13, 2, 1, 1, - 1, 0, 10, 1, 1, 1, 1, 0, - 6, 6, 6, 6, 6, 6, 0, 10, - 1, 1, 1, 1, 0, 6, 6, 6, - 6, 0, 10, 1, 1, 1, 0, 6, - 10, 6, 6, 6, 7, 34, 7, 2, - 1, 14, 1, 35, 3, 1, 1, 6, + 1, 1, 0, 6, 6, 6, 6, 6, + 7, 2, 1, 1, 1, 13, 2, 1, + 1, 1, 0, 10, 1, 1, 1, 1, + 0, 6, 6, 6, 6, 6, 6, 0, + 10, 1, 1, 1, 1, 0, 6, 6, + 6, 6, 0, 10, 1, 1, 1, 0, + 6, 10, 6, 6, 6, 7, 34, 7, + 2, 1, 14, 1, 35, 3, 1, 1, + 6, 6, 6, 7, 35, 1, 1, 6, 6, 6, 7, 35, 1, 1, 6, 6, - 6, 7, 35, 1, 1, 6, 6, 6, - 9, 34, 1, 1, 1, 0, 6, 6, + 6, 9, 34, 1, 1, 1, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 9, 6, 7, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 3, - 2, 2, 0, 6, 6, 6, 6, 6, - 7, 2, 1, 1, 1, 1, 2, 0, - 6, 6, 6, 6, 6, 7, 6, 6, - 0, 1, 0, 1, 1, 0, 1, 2, - 2, 1, 1, 1, 1, 1, 1, 0, - 6, 1, 1, 1, 0, 6, 6, 6, - 6, 6, 7, 2, 0, 2, 1, 1, - 1, 0, 6, 6, 6, 6, 6, 6, - 0, 10, 1, 1, 1, 1, 0, 6, - 6, 2, 2, 1, 0, 6, 6, 6, - 6, 6, 6, 0, 10, 1, 1, 1, - 1, 0, 6, 7, 3, 1, 0, 6, - 6, 0, 0, 0, 1, 0, 0, 0, - 0, 3, 1, 0, 0, 1, 0, 0, - 3, 0, 0, 1, 0, 0, 3, 0, - 6, 6, 6, 6, 2, 1, 1, 0, - 6, 6, 6, 6, 2, 1, 1, 0, - 6, 9, 2, 2, 1, 0, 6, 6, - 6, 6, 6, 9, 2, 1, 1, 1, - 12, 17, 48, 48, 12, 48, 12, 17, - 53, 53, 0, 0, 0, 0, 4, 0, - 0, 0, 10, 0, 11, 1, 0, 0, - 46, 1, 0, 10, 1, 6, 0, 10, - 1, 1, 0, 0, 19, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 10, 1, 0, 0, 10, 1, 10, 1, - 10, 1, 10, 1, 0, 0, 0, 0, - 13, 1, 0, 10, 1, 0, 10, 1, - 0, 14, 1, 7, 1, 35, 3, 0, - 0, 0, 0, 0, 0, 0, 10, 1, - 0, 0, 10, 1, 0, 0, 0, 0, - 0, 0, 0, 0 + 6, 6, 6, 6, 9, 6, 7, 2, + 1, 1, 1, 1, 1, 1, 1, 1, + 3, 2, 2, 0, 6, 6, 6, 6, + 6, 7, 2, 1, 1, 1, 1, 2, + 0, 6, 6, 6, 6, 6, 7, 6, + 6, 0, 1, 0, 1, 1, 0, 1, + 2, 2, 1, 1, 1, 1, 1, 1, + 0, 6, 1, 1, 1, 0, 6, 6, + 6, 6, 6, 7, 2, 0, 2, 1, + 1, 1, 0, 6, 6, 6, 6, 6, + 6, 0, 10, 1, 1, 1, 1, 0, + 6, 6, 2, 2, 1, 0, 6, 6, + 6, 6, 6, 6, 0, 10, 1, 1, + 1, 1, 0, 6, 7, 3, 1, 0, + 6, 6, 0, 0, 0, 1, 0, 0, + 0, 0, 3, 1, 0, 0, 1, 0, + 0, 3, 0, 0, 1, 0, 0, 3, + 0, 6, 6, 6, 6, 2, 1, 1, + 0, 6, 6, 6, 6, 2, 1, 1, + 0, 6, 9, 2, 2, 1, 0, 6, + 6, 6, 6, 6, 9, 2, 1, 1, + 1, 2, 2, 12, 17, 48, 48, 12, + 48, 12, 17, 53, 53, 0, 0, 0, + 0, 4, 0, 0, 0, 10, 0, 11, + 1, 0, 0, 46, 1, 0, 10, 1, + 6, 0, 10, 1, 1, 0, 0, 0, + 19, 1, 0, 10, 1, 14, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 1, 0, 0, 10, 1, 10, + 1, 10, 1, 10, 1, 0, 0, 0, + 0, 13, 1, 0, 10, 1, 0, 10, + 1, 0, 14, 1, 7, 1, 35, 3, + 0, 0, 0, 0, 0, 0, 0, 10, + 1, 0, 0, 10, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0 }; static const char _zone_scanner_range_lengths[] = { @@ -3527,59 +3713,69 @@ static const char _zone_scanner_range_lengths[] = { 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 0, 0, - 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 3, 1, 2, 3, - 3, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 0, + 0, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 3, 1, 2, + 3, 3, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 2, 0, + 1, 1, 2, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 1, + 1, 1, 2, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 3, 2, 2, 2, 2, + 1, 4, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 2, 0, + 2, 3, 0, 0, 3, 5, 5, 1, + 1, 1, 5, 2, 2, 2, 4, 3, + 1, 1, 4, 1, 1, 2, 3, 1, + 1, 1, 0, 1, 1, 0, 0, 1, + 1, 1, 1, 0, 3, 3, 3, 0, + 0, 1, 1, 1, 3, 0, 1, 0, + 3, 0, 3, 3, 3, 0, 0, 1, + 1, 1, 3, 0, 2, 3, 1, 1, + 3, 3, 3, 3, 3, 1, 0, 0, + 2, 0, 0, 2, 0, 0, 0, 2, + 0, 0, 0, 2, 0, 2, 0, 0, + 2, 0, 0, 0, 0, 0, 2, 2, + 0, 0, 2, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, + 2, 2, 0, 0, 2, 0, 0, 0, + 0, 2, 0, 2, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 2, + 2, 0, 0, 2, 0, 2, 0, 2, + 2, 0, 0, 0, 0, 2, 2, 0, + 0, 0, 0, 2, 0, 2, 2, 0, + 2, 2, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 2, 2, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 0, 0, + 2, 0, 0, 2, 0, 0, 0, 2, + 0, 2, 0, 0, 1, 3, 0, 0, + 2, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 2, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 2, 0, 1, - 1, 2, 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 1, 1, - 1, 2, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 2, 3, 3, 2, 2, 2, 2, 1, - 4, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 2, - 3, 0, 0, 3, 5, 5, 1, 1, - 1, 5, 2, 2, 2, 4, 3, 1, - 1, 4, 1, 1, 2, 3, 1, 1, - 1, 0, 1, 1, 0, 0, 1, 1, - 1, 1, 0, 3, 3, 3, 0, 0, - 1, 1, 1, 3, 0, 1, 0, 3, - 0, 3, 3, 3, 0, 0, 1, 1, - 1, 3, 0, 2, 3, 1, 1, 3, - 3, 3, 3, 3, 1, 0, 0, 2, - 0, 0, 2, 0, 0, 0, 2, 0, - 0, 0, 2, 0, 2, 0, 0, 2, - 0, 0, 0, 0, 0, 2, 2, 0, - 0, 2, 0, 0, 0, 2, 0, 0, - 0, 2, 0, 0, 0, 0, 2, 0, - 0, 0, 2, 0, 0, 0, 2, 2, - 0, 0, 2, 0, 0, 0, 0, 2, - 0, 2, 0, 0, 0, 0, 2, 0, - 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 2, 2, 0, - 0, 2, 0, 2, 0, 2, 2, 0, - 0, 0, 0, 2, 2, 0, 0, 0, - 0, 2, 0, 2, 2, 0, 2, 2, - 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 0, 2, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 2, 2, 0, - 0, 0, 0, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 0, 0, 2, 0, - 0, 2, 0, 0, 0, 2, 0, 2, - 0, 0, 1, 3, 0, 0, 2, 0, - 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, - 0, 1, 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, @@ -3591,122 +3787,131 @@ static const char _zone_scanner_range_lengths[] = { 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, 1, 1, 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, 1, 1, + 3, 3, 3, 1, 1, 1, 0, 1, + 1, 3, 3, 3, 1, 1, 1, 1, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 2, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 2, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 2, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 2, + 0, 3, 0, 0, 0, 0, 0, 3, + 3, 3, 3, 3, 3, 0, 3, 3, + 3, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 0, 3, 3, + 3, 3, 3, 3, 0, 0, 1, 1, + 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 3, 3, 3, - 1, 1, 1, 0, 1, 1, 3, 3, - 3, 1, 1, 1, 1, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, - 2, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, - 2, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 2, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 3, - 0, 0, 0, 0, 0, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, + 1, 1, 1, 1, 3, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 0, - 0, 0, 0, 0, 3, 3, 3, 3, - 3, 3, 0, 0, 1, 1, 2, 0, + 0, 0, 0, 3, 3, 0, 0, 0, + 0, 0, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 0, + 3, 3, 3, 3, 3, 3, 0, 0, + 0, 0, 3, 0, 3, 1, 3, 0, + 2, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 3, 0, 1, 3, 0, 2, - 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, - 2, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, - 2, 0, 0, 2, 1, 3, 0, 0, + 0, 2, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, + 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 2, 0, 0, - 2, 0, 0, 0, 2, 0, 0, 2, - 0, 0, 2, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 1, 3, 0, - 0, 0, 0, 0, 2, 1, 3, 3, - 2, 3, 0, 3, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 3, - 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 0, 3, 2, 1, 3, 0, - 3, 2, 1, 1, 1, 3, 2, 1, - 2, 0, 3, 1, 3, 5, 1, 1, - 1, 1, 1, 1, 0, 0, 1, 1, - 1, 1, 1, 1, 0, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 0, 1, - 1, 1, 0, 1, 1, 1, 0, 1, - 0, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 2, 0, + 0, 2, 0, 0, 0, 2, 0, 0, + 2, 0, 0, 2, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 2, 1, 3, + 0, 0, 0, 0, 0, 2, 1, 3, + 3, 2, 3, 0, 3, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, + 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 1, 3, 0, 3, 0, - 3, 0, 3, 2, 1, 1, 1, 1, - 1, 3, 0, 1, 1, 3, 0, 3, - 0, 1, 1, 1, 0, 0, 0, 1, - 1, 1, 1, 1, 0, 3, 3, 1, - 1, 3, 0, 1, 1, 3, 3, 3, + 1, 1, 2, 0, 3, 2, 1, 3, + 0, 3, 2, 1, 1, 1, 3, 2, + 1, 2, 0, 3, 1, 3, 5, 1, + 1, 1, 1, 1, 1, 0, 0, 1, + 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 3, 3, 1, 1, 1, 1, 1, - 0, 0, 1, 1, 0, 0, 3, 0, - 1, 0, 1, 3, 3, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 0, 1, - 1, 3, 3, 1, 1, 0, 1, 1, - 3, 0, 1, 1, 1, 3, 0, 3, + 0, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 0, 1, 1, 1, 0, + 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 0, 3, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 3, - 2, 2, 1, 1, 1, 1, 3, 0, - 3, 0, 1, 1, 1, 3, 0, 1, + 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 3, 0, 3, - 3, 3, 3, 3, 3, 3, 3, 5, - 2, 0, 0, 0, 0, 0, 1, 3, + 0, 3, 0, 3, 2, 1, 1, 1, + 1, 1, 3, 0, 1, 1, 3, 0, + 3, 0, 1, 1, 1, 0, 0, 0, + 1, 1, 1, 1, 1, 0, 3, 3, + 1, 1, 3, 0, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 2, 3, 5, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, + 1, 3, 3, 3, 1, 1, 1, 1, + 1, 0, 0, 1, 1, 0, 0, 3, + 0, 1, 0, 1, 3, 3, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 3, 3, 1, 1, 0, 1, + 1, 3, 0, 1, 1, 1, 3, 0, + 3, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 0, 3, 0, + 1, 1, 1, 1, 1, 1, 1, 1, + 3, 2, 2, 1, 1, 1, 1, 3, + 0, 3, 0, 1, 1, 1, 3, 0, + 1, 1, 1, 1, 1, 1, 3, 0, + 3, 3, 3, 3, 3, 3, 3, 3, + 5, 2, 0, 0, 0, 0, 0, 1, 3, 3, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 1, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 1, 1, - 3, 3, 3, 3, 0, 3, 3, 3, - 3, 2, 1, 3, 3, 0, 3, 3, - 2, 3, 3, 0, 3, 3, 2, 1, - 1, 1, 1, 3, 2, 1, 1, 1, - 1, 3, 0, 3, 2, 1, 1, 1, - 1, 3, 2, 2, 1, 3, 0, 3, - 0, 1, 1, 3, 2, 1, 1, 1, - 3, 8, 3, 4, 3, 4, 3, 8, - 9, 9, 0, 0, 0, 0, 4, 0, - 0, 0, 3, 0, 3, 1, 0, 0, - 0, 1, 0, 3, 1, 3, 0, 3, - 1, 1, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 3, 1, 0, 0, 0, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, - 0, 1, 0, 3, 1, 0, 3, 1, - 0, 0, 1, 3, 1, 3, 3, 0, - 0, 0, 0, 0, 0, 0, 3, 1, - 0, 0, 3, 1, 0, 0, 0, 0, - 0, 0, 0, 0 + 1, 1, 1, 3, 2, 3, 5, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 1, 1, 1, 1, 1, + 1, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 1, 3, 3, 3, 1, 1, + 1, 1, 1, 1, 1, 3, 1, 1, + 1, 3, 3, 3, 3, 0, 3, 3, + 3, 3, 2, 1, 3, 3, 0, 3, + 3, 2, 3, 3, 0, 3, 3, 2, + 1, 1, 1, 1, 3, 2, 1, 1, + 1, 1, 3, 0, 3, 2, 1, 1, + 1, 1, 3, 2, 2, 1, 3, 0, + 3, 0, 1, 1, 3, 2, 1, 1, + 1, 4, 2, 3, 8, 3, 4, 3, + 4, 3, 8, 9, 9, 0, 0, 0, + 0, 4, 0, 0, 0, 3, 0, 3, + 1, 0, 0, 0, 1, 0, 3, 1, + 3, 0, 3, 1, 1, 0, 0, 0, + 0, 1, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 0, 0, 0, + 0, 0, 1, 0, 3, 1, 0, 3, + 1, 0, 0, 1, 3, 1, 3, 3, + 0, 0, 0, 0, 0, 0, 0, 3, + 1, 0, 0, 3, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0 }; static const short _zone_scanner_index_offsets[] = { @@ -3715,202 +3920,221 @@ static const short _zone_scanner_index_offsets[] = { 280, 325, 336, 339, 350, 364, 378, 383, 386, 389, 392, 395, 406, 417, 420, 423, 434, 437, 440, 443, 454, 457, 460, 463, - 474, 481, 484, 487, 490, 501, 506, 509, - 512, 523, 526, 529, 532, 543, 556, 559, - 562, 573, 576, 579, 582, 584, 595, 597, - 608, 613, 616, 619, 622, 633, 636, 639, - 642, 653, 658, 665, 708, 711, 714, 717, - 720, 723, 726, 729, 740, 745, 748, 759, - 770, 777, 779, 790, 792, 803, 806, 817, - 828, 833, 836, 839, 842, 853, 864, 871, - 874, 877, 880, 891, 894, 905, 918, 921, - 933, 946, 949, 952, 955, 958, 969, 972, - 975, 978, 981, 984, 987, 990, 993, 996, - 1007, 1010, 1013, 1024, 1033, 1036, 1039, 1042, - 1045, 1048, 1059, 1070, 1073, 1076, 1079, 1090, - 1101, 1114, 1117, 1120, 1123, 1126, 1137, 1140, - 1151, 1154, 1165, 1168, 1179, 1182, 1185, 1188, - 1199, 1202, 1205, 1216, 1223, 1226, 1229, 1240, - 1243, 1254, 1257, 1260, 1262, 1274, 1277, 1280, - 1291, 1294, 1297, 1300, 1303, 1306, 1317, 1320, - 1323, 1326, 1329, 1332, 1343, 1346, 1392, 1397, - 1404, 1448, 1466, 1474, 1486, 1494, 1497, 1499, - 1506, 1509, 1512, 1515, 1518, 1521, 1524, 1529, - 1536, 1580, 1583, 1601, 1645, 1648, 1656, 1668, - 1676, 1679, 1698, 1751, 1772, 1789, 1835, 1840, - 1852, 1864, 1919, 1938, 1953, 1964, 1977, 1990, - 2003, 2018, 2031, 2046, 2057, 2068, 2085, 2106, - 2121, 2132, 2143, 2154, 2159, 2174, 2177, 2180, - 2183, 2186, 2189, 2194, 2197, 2200, 2205, 2214, - 2234, 2280, 2285, 2306, 2361, 2380, 2395, 2406, - 2419, 2432, 2445, 2460, 2473, 2488, 2499, 2510, - 2527, 2548, 2563, 2574, 2585, 2596, 2609, 2655, - 2669, 2683, 2698, 2713, 2716, 2719, 2730, 2733, - 2736, 2739, 2750, 2753, 2756, 2759, 2770, 2773, - 2784, 2789, 2801, 2813, 2828, 2843, 2858, 2873, - 2876, 2931, 2945, 2959, 2976, 2989, 2998, 3009, - 3020, 3031, 3044, 3055, 3068, 3077, 3086, 3101, - 3120, 3133, 3142, 3151, 3160, 3165, 3170, 3181, - 3186, 3193, 3195, 3197, 3206, 3218, 3230, 3232, - 3234, 3236, 3248, 3253, 3258, 3263, 3272, 3276, - 3278, 3280, 3289, 3297, 3305, 3310, 3314, 3316, - 3318, 3326, 3333, 3341, 3361, 3370, 3372, 3382, - 3394, 3404, 3407, 3414, 3428, 3436, 3452, 3461, - 3463, 3465, 3467, 3469, 3477, 3486, 3489, 3496, - 3506, 3515, 3531, 3539, 3555, 3564, 3566, 3568, - 3570, 3572, 3580, 3589, 3594, 3608, 3611, 3614, - 3619, 3624, 3630, 3636, 3651, 3654, 3656, 3693, - 3706, 3709, 3712, 3717, 3720, 3723, 3726, 3731, - 3734, 3737, 3740, 3745, 3748, 3753, 3764, 3767, - 3772, 3777, 3780, 3783, 3786, 3789, 3794, 3799, - 3802, 3805, 3810, 3813, 3816, 3819, 3824, 3827, - 3830, 3833, 3838, 3845, 3848, 3851, 3854, 3859, - 3864, 3867, 3870, 3875, 3878, 3881, 3884, 3889, - 3896, 3899, 3902, 3907, 3910, 3913, 3916, 3918, - 3923, 3925, 3930, 3935, 3938, 3941, 3944, 3949, - 3952, 3955, 3958, 3963, 3966, 3969, 3972, 3975, - 3978, 3981, 3984, 3989, 3994, 3997, 4002, 4007, - 4014, 4016, 4021, 4023, 4028, 4031, 4036, 4041, - 4046, 4049, 4052, 4055, 4060, 4065, 4072, 4075, - 4078, 4081, 4086, 4089, 4094, 4101, 4104, 4110, - 4117, 4120, 4123, 4126, 4129, 4134, 4137, 4140, - 4143, 4146, 4149, 4152, 4155, 4158, 4161, 4166, - 4169, 4172, 4177, 4186, 4189, 4192, 4195, 4198, - 4201, 4206, 4211, 4214, 4217, 4220, 4225, 4230, - 4243, 4246, 4249, 4252, 4255, 4260, 4263, 4268, - 4271, 4276, 4279, 4284, 4287, 4290, 4293, 4298, - 4301, 4304, 4309, 4316, 4319, 4322, 4327, 4330, - 4335, 4338, 4341, 4343, 4349, 4352, 4355, 4360, - 4363, 4366, 4369, 4372, 4375, 4380, 4383, 4386, - 4389, 4392, 4395, 4400, 4411, 4458, 4477, 4480, - 4483, 4494, 4497, 4508, 4511, 4522, 4527, 4530, - 4533, 4536, 4539, 4550, 4561, 4564, 4567, 4578, - 4581, 4584, 4587, 4598, 4601, 4604, 4607, 4618, - 4625, 4628, 4631, 4634, 4645, 4650, 4653, 4656, - 4667, 4670, 4673, 4676, 4687, 4700, 4703, 4706, - 4717, 4720, 4723, 4726, 4728, 4739, 4741, 4752, - 4757, 4760, 4763, 4766, 4777, 4780, 4783, 4786, - 4797, 4800, 4803, 4806, 4809, 4812, 4815, 4818, - 4829, 4834, 4837, 4848, 4859, 4866, 4868, 4879, - 4881, 4892, 4895, 4906, 4917, 4922, 4925, 4928, - 4931, 4942, 4953, 4960, 4963, 4966, 4969, 4980, - 4983, 4994, 5007, 5010, 5022, 5035, 5038, 5041, - 5044, 5047, 5058, 5061, 5064, 5067, 5070, 5073, - 5076, 5079, 5082, 5085, 5096, 5099, 5102, 5113, - 5122, 5125, 5128, 5131, 5134, 5137, 5148, 5159, - 5162, 5165, 5168, 5179, 5190, 5203, 5206, 5209, - 5212, 5215, 5226, 5229, 5240, 5243, 5254, 5257, - 5268, 5271, 5274, 5277, 5288, 5291, 5294, 5305, - 5312, 5315, 5318, 5329, 5332, 5343, 5346, 5349, - 5351, 5363, 5366, 5369, 5380, 5383, 5386, 5389, - 5392, 5395, 5406, 5409, 5412, 5415, 5418, 5421, - 5432, 5435, 5438, 5441, 5452, 5455, 5458, 5461, - 5472, 5475, 5486, 5493, 5501, 5509, 5519, 5523, - 5537, 5540, 5543, 5546, 5553, 5562, 5572, 5582, - 5586, 5600, 5603, 5606, 5614, 5617, 5626, 5628, - 5630, 5632, 5639, 5641, 5643, 5645, 5647, 5649, - 5651, 5658, 5660, 5662, 5669, 5671, 5673, 5676, - 5678, 5680, 5682, 5684, 5691, 5693, 5695, 5697, - 5699, 5706, 5708, 5710, 5712, 5720, 5722, 5724, - 5726, 5728, 5730, 5732, 5734, 5736, 5738, 5740, - 5742, 5744, 5746, 5748, 5755, 5757, 5759, 5761, - 5763, 5770, 5772, 5774, 5776, 5783, 5794, 5814, - 5816, 5818, 5820, 5822, 5828, 5839, 5842, 5844, - 5846, 5848, 5850, 5852, 5854, 5856, 5862, 5873, - 5887, 5889, 5900, 5902, 5904, 5906, 5912, 5917, - 5922, 5928, 5934, 5940, 5942, 5947, 5953, 5959, - 5974, 5976, 5978, 5980, 5983, 5985, 5987, 5989, - 5991, 5993, 5997, 6000, 6005, 6008, 6022, 6025, - 6027, 6029, 6031, 6033, 6035, 6041, 6046, 6053, - 6058, 6074, 6079, 6081, 6083, 6085, 6098, 6103, - 6105, 6107, 6109, 6111, 6113, 6115, 6117, 6119, - 6121, 6125, 6128, 6131, 6134, 6146, 6149, 6151, - 6153, 6155, 6157, 6159, 6161, 6163, 6165, 6167, - 6169, 6171, 6173, 6175, 6177, 6188, 6190, 6192, - 6194, 6196, 6207, 6209, 6211, 6213, 6215, 6218, - 6220, 6223, 6235, 6249, 6251, 6263, 6269, 6274, - 6279, 6282, 6288, 6291, 6294, 6297, 6300, 6302, - 6304, 6307, 6310, 6313, 6315, 6320, 6325, 6330, - 6332, 6335, 6338, 6341, 6344, 6349, 6352, 6355, - 6358, 6361, 6363, 6365, 6368, 6371, 6374, 6376, - 6378, 6380, 6385, 6387, 6389, 6392, 6395, 6398, - 6400, 6402, 6404, 6409, 6412, 6414, 6416, 6418, - 6420, 6425, 6427, 6429, 6434, 6437, 6440, 6443, - 6446, 6449, 6452, 6455, 6460, 6463, 6466, 6469, - 6472, 6475, 6478, 6483, 6486, 6489, 6494, 6497, - 6500, 6505, 6508, 6511, 6516, 6519, 6521, 6526, - 6529, 6532, 6536, 6542, 6545, 6548, 6551, 6554, - 6556, 6558, 6561, 6564, 6567, 6569, 6574, 6576, - 6578, 6583, 6585, 6587, 6592, 6606, 6612, 6615, - 6618, 6621, 6624, 6627, 6632, 6639, 6642, 6645, - 6648, 6651, 6654, 6659, 6664, 6667, 6672, 6675, - 6678, 6683, 6686, 6689, 6692, 6697, 6700, 6703, - 6708, 6713, 6716, 6721, 6724, 6727, 6732, 6735, - 6738, 6741, 6746, 6749, 6752, 6757, 6761, 6767, - 6770, 6773, 6776, 6779, 6782, 6787, 6790, 6797, - 6804, 6809, 6816, 6823, 6836, 6843, 6851, 6859, - 6867, 6885, 6893, 6911, 6919, 6937, 6945, 6961, - 6967, 6979, 6985, 6988, 6996, 7008, 7016, 7019, - 7027, 7039, 7047, 7050, 7058, 7070, 7078, 7081, - 7084, 7087, 7092, 7099, 7109, 7114, 7117, 7124, - 7131, 7144, 7149, 7152, 7154, 7162, 7175, 7180, - 7183, 7188, 7199, 7213, 7216, 7221, 7230, 7232, - 7240, 7250, 7258, 7268, 7277, 7286, 7293, 7301, - 7309, 7319, 7327, 7337, 7346, 7355, 7362, 7371, - 7373, 7387, 7399, 7413, 7425, 7439, 7451, 7465, - 7476, 7479, 7492, 7505, 7508, 7521, 7534, 7545, - 7548, 7561, 7574, 7585, 7588, 7601, 7614, 7625, - 7628, 7635, 7638, 7646, 7654, 7657, 7660, 7663, - 7670, 7673, 7681, 7689, 7692, 7695, 7697, 7705, - 7713, 7721, 7729, 7737, 7750, 7755, 7758, 7761, - 7764, 7766, 7774, 7782, 7790, 7800, 7807, 7817, - 7824, 7834, 7841, 7854, 7859, 7862, 7865, 7868, - 7871, 7874, 7878, 7885, 7893, 7901, 7911, 7918, - 7929, 7932, 7935, 7938, 7941, 7955, 7958, 7960, - 7963, 7966, 7968, 7980, 7983, 7985, 7990, 7995, - 7997, 8005, 8015, 8022, 8030, 8038, 8048, 8052, - 8066, 8069, 8072, 8075, 8078, 8080, 8088, 8096, - 8104, 8114, 8118, 8132, 8135, 8138, 8141, 8143, - 8151, 8162, 8169, 8177, 8185, 8193, 8228, 8239, - 8242, 8245, 8260, 8263, 8302, 8309, 8312, 8315, - 8322, 8330, 8338, 8347, 8384, 8387, 8390, 8397, - 8405, 8413, 8424, 8463, 8466, 8469, 8476, 8484, - 8492, 8505, 8540, 8543, 8546, 8549, 8553, 8560, - 8570, 8577, 8585, 8593, 8601, 8609, 8617, 8625, - 8633, 8641, 8649, 8657, 8670, 8677, 8688, 8691, - 8694, 8697, 8700, 8703, 8706, 8709, 8712, 8715, - 8722, 8727, 8732, 8734, 8742, 8750, 8758, 8768, - 8775, 8786, 8789, 8792, 8795, 8798, 8803, 8806, - 8808, 8816, 8824, 8832, 8840, 8848, 8859, 8866, - 8876, 8880, 8885, 8889, 8894, 8899, 8903, 8908, - 8916, 8921, 8923, 8925, 8927, 8929, 8931, 8934, - 8938, 8948, 8951, 8954, 8957, 8959, 8967, 8975, - 8983, 8991, 8999, 9010, 9015, 9019, 9027, 9030, - 9033, 9036, 9038, 9046, 9054, 9062, 9070, 9078, - 9088, 9092, 9106, 9109, 9112, 9115, 9118, 9120, - 9128, 9136, 9142, 9147, 9150, 9152, 9160, 9168, - 9176, 9184, 9192, 9202, 9206, 9220, 9223, 9226, - 9229, 9232, 9234, 9242, 9251, 9258, 9261, 9263, - 9271, 9281, 9285, 9289, 9293, 9295, 9299, 9303, - 9307, 9311, 9317, 9320, 9324, 9328, 9330, 9334, - 9338, 9344, 9348, 9352, 9354, 9358, 9362, 9368, - 9370, 9378, 9386, 9394, 9404, 9409, 9412, 9415, - 9417, 9425, 9435, 9442, 9452, 9457, 9460, 9463, - 9465, 9473, 9486, 9491, 9496, 9499, 9503, 9510, - 9520, 9527, 9535, 9543, 9556, 9561, 9564, 9567, - 9570, 9586, 9612, 9664, 9717, 9733, 9786, 9802, - 9828, 9891, 9954, 9955, 9956, 9957, 9958, 9967, - 9968, 9969, 9970, 9984, 9985, 10000, 10003, 10004, - 10005, 10052, 10055, 10056, 10070, 10073, 10083, 10084, - 10098, 10101, 10104, 10105, 10106, 10126, 10129, 10130, - 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, - 10139, 10153, 10156, 10157, 10158, 10169, 10172, 10184, - 10187, 10199, 10202, 10214, 10217, 10218, 10219, 10220, - 10221, 10235, 10238, 10239, 10253, 10256, 10257, 10271, - 10274, 10275, 10290, 10293, 10304, 10307, 10346, 10353, - 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10374, - 10377, 10378, 10379, 10393, 10396, 10397, 10398, 10399, - 10400, 10401, 10402, 10403 + 474, 483, 486, 489, 492, 505, 508, 511, + 514, 517, 528, 531, 534, 537, 548, 553, + 556, 559, 570, 573, 576, 579, 590, 603, + 606, 609, 620, 623, 626, 629, 631, 642, + 644, 655, 660, 663, 666, 669, 680, 683, + 686, 689, 700, 705, 712, 755, 758, 761, + 764, 767, 770, 773, 776, 787, 792, 795, + 806, 817, 824, 826, 837, 839, 850, 853, + 864, 875, 880, 883, 886, 889, 900, 911, + 918, 921, 924, 927, 938, 941, 952, 965, + 968, 980, 993, 996, 999, 1002, 1005, 1016, + 1019, 1022, 1025, 1028, 1031, 1034, 1037, 1040, + 1043, 1054, 1057, 1060, 1071, 1080, 1083, 1086, + 1089, 1092, 1095, 1106, 1117, 1120, 1123, 1126, + 1137, 1148, 1161, 1164, 1167, 1170, 1173, 1184, + 1187, 1198, 1201, 1212, 1215, 1226, 1229, 1232, + 1235, 1246, 1249, 1252, 1263, 1270, 1273, 1276, + 1287, 1290, 1301, 1304, 1307, 1309, 1321, 1324, + 1327, 1338, 1341, 1344, 1347, 1350, 1353, 1364, + 1367, 1370, 1373, 1376, 1379, 1390, 1393, 1439, + 1444, 1451, 1495, 1513, 1521, 1533, 1541, 1544, + 1546, 1553, 1556, 1559, 1562, 1565, 1568, 1571, + 1576, 1583, 1627, 1630, 1648, 1692, 1695, 1703, + 1715, 1723, 1726, 1745, 1798, 1819, 1836, 1882, + 1887, 1899, 1911, 1966, 1985, 2002, 2013, 2026, + 2039, 2052, 2067, 2080, 2095, 2106, 2117, 2134, + 2155, 2170, 2181, 2192, 2203, 2208, 2223, 2226, + 2229, 2232, 2235, 2238, 2243, 2246, 2249, 2254, + 2263, 2283, 2329, 2334, 2355, 2410, 2429, 2446, + 2457, 2470, 2483, 2496, 2511, 2524, 2539, 2550, + 2561, 2578, 2599, 2614, 2625, 2636, 2647, 2660, + 2706, 2720, 2734, 2749, 2764, 2767, 2770, 2781, + 2784, 2787, 2790, 2801, 2804, 2807, 2810, 2821, + 2824, 2835, 2840, 2852, 2864, 2879, 2894, 2909, + 2924, 2927, 2982, 2996, 3010, 3027, 3042, 3051, + 3062, 3073, 3084, 3097, 3108, 3121, 3130, 3139, + 3154, 3173, 3186, 3195, 3204, 3213, 3218, 3223, + 3234, 3239, 3246, 3248, 3250, 3259, 3273, 3287, + 3289, 3291, 3293, 3307, 3314, 3321, 3326, 3335, + 3339, 3341, 3343, 3352, 3360, 3368, 3373, 3377, + 3379, 3381, 3389, 3396, 3404, 3424, 3433, 3435, + 3445, 3457, 3467, 3470, 3477, 3491, 3499, 3515, + 3524, 3526, 3528, 3530, 3532, 3540, 3549, 3552, + 3559, 3569, 3578, 3594, 3602, 3618, 3627, 3629, + 3631, 3633, 3635, 3643, 3652, 3657, 3671, 3674, + 3677, 3682, 3687, 3693, 3699, 3714, 3717, 3719, + 3756, 3769, 3772, 3775, 3780, 3783, 3786, 3789, + 3794, 3797, 3800, 3803, 3808, 3811, 3816, 3827, + 3830, 3835, 3840, 3843, 3846, 3849, 3852, 3857, + 3862, 3865, 3868, 3873, 3876, 3879, 3882, 3887, + 3890, 3893, 3896, 3901, 3910, 3913, 3916, 3919, + 3926, 3929, 3932, 3935, 3938, 3943, 3946, 3949, + 3952, 3957, 3962, 3965, 3968, 3973, 3976, 3979, + 3982, 3987, 3994, 3997, 4000, 4005, 4008, 4011, + 4014, 4016, 4021, 4023, 4028, 4033, 4036, 4039, + 4042, 4047, 4050, 4053, 4056, 4061, 4064, 4067, + 4070, 4073, 4076, 4079, 4082, 4087, 4092, 4095, + 4100, 4105, 4112, 4114, 4119, 4121, 4126, 4129, + 4134, 4139, 4144, 4147, 4150, 4153, 4158, 4163, + 4170, 4173, 4176, 4179, 4184, 4187, 4192, 4199, + 4202, 4208, 4215, 4218, 4221, 4224, 4227, 4232, + 4235, 4238, 4241, 4244, 4247, 4250, 4253, 4256, + 4259, 4264, 4267, 4270, 4275, 4284, 4287, 4290, + 4293, 4296, 4299, 4304, 4309, 4312, 4315, 4318, + 4323, 4328, 4341, 4344, 4347, 4350, 4353, 4358, + 4361, 4366, 4369, 4374, 4377, 4382, 4385, 4388, + 4391, 4396, 4399, 4402, 4407, 4414, 4417, 4420, + 4425, 4428, 4433, 4436, 4439, 4441, 4447, 4450, + 4453, 4458, 4461, 4464, 4467, 4470, 4473, 4478, + 4481, 4484, 4487, 4490, 4493, 4498, 4509, 4556, + 4575, 4578, 4581, 4592, 4595, 4606, 4609, 4620, + 4625, 4628, 4631, 4634, 4637, 4648, 4659, 4662, + 4665, 4676, 4679, 4682, 4685, 4696, 4699, 4702, + 4705, 4716, 4725, 4728, 4731, 4734, 4747, 4750, + 4753, 4756, 4759, 4770, 4773, 4776, 4779, 4790, + 4795, 4798, 4801, 4812, 4815, 4818, 4821, 4832, + 4845, 4848, 4851, 4862, 4865, 4868, 4871, 4873, + 4884, 4886, 4897, 4902, 4905, 4908, 4911, 4922, + 4925, 4928, 4931, 4942, 4945, 4948, 4951, 4954, + 4957, 4960, 4963, 4974, 4979, 4982, 4993, 5004, + 5011, 5013, 5024, 5026, 5037, 5040, 5051, 5062, + 5067, 5070, 5073, 5076, 5087, 5098, 5105, 5108, + 5111, 5114, 5125, 5128, 5139, 5152, 5155, 5167, + 5180, 5183, 5186, 5189, 5192, 5203, 5206, 5209, + 5212, 5215, 5218, 5221, 5224, 5227, 5230, 5241, + 5244, 5247, 5258, 5267, 5270, 5273, 5276, 5279, + 5282, 5293, 5304, 5307, 5310, 5313, 5324, 5335, + 5348, 5351, 5354, 5357, 5360, 5371, 5374, 5385, + 5388, 5399, 5402, 5413, 5416, 5419, 5422, 5433, + 5436, 5439, 5450, 5457, 5460, 5463, 5474, 5477, + 5488, 5491, 5494, 5496, 5508, 5511, 5514, 5525, + 5528, 5531, 5534, 5537, 5540, 5551, 5554, 5557, + 5560, 5563, 5566, 5577, 5580, 5583, 5586, 5597, + 5600, 5603, 5606, 5617, 5620, 5631, 5638, 5646, + 5654, 5664, 5668, 5682, 5685, 5688, 5691, 5698, + 5707, 5717, 5727, 5731, 5745, 5748, 5751, 5759, + 5762, 5771, 5773, 5775, 5777, 5784, 5786, 5788, + 5790, 5792, 5794, 5796, 5803, 5805, 5807, 5814, + 5816, 5818, 5821, 5823, 5825, 5827, 5829, 5836, + 5838, 5840, 5842, 5844, 5851, 5853, 5855, 5857, + 5865, 5867, 5869, 5871, 5873, 5875, 5877, 5879, + 5881, 5883, 5885, 5887, 5889, 5891, 5893, 5900, + 5902, 5904, 5906, 5908, 5915, 5917, 5919, 5921, + 5928, 5932, 5934, 5936, 5938, 5940, 5942, 5944, + 5946, 5948, 5950, 5952, 5954, 5956, 5958, 5960, + 5962, 5964, 5966, 5973, 5975, 5977, 5979, 5987, + 5989, 5991, 5993, 5995, 5997, 5999, 6002, 6004, + 6006, 6009, 6016, 6023, 6025, 6027, 6029, 6036, + 6047, 6067, 6069, 6071, 6073, 6075, 6081, 6092, + 6095, 6097, 6099, 6101, 6103, 6105, 6107, 6109, + 6115, 6126, 6140, 6142, 6153, 6155, 6157, 6159, + 6165, 6170, 6175, 6181, 6187, 6193, 6195, 6200, + 6206, 6212, 6227, 6229, 6231, 6233, 6236, 6238, + 6240, 6242, 6244, 6246, 6250, 6253, 6258, 6261, + 6275, 6278, 6280, 6282, 6284, 6286, 6288, 6294, + 6299, 6306, 6311, 6327, 6332, 6334, 6336, 6338, + 6351, 6356, 6358, 6360, 6362, 6364, 6366, 6368, + 6370, 6372, 6374, 6378, 6381, 6384, 6387, 6399, + 6402, 6404, 6406, 6408, 6410, 6412, 6414, 6416, + 6418, 6420, 6422, 6424, 6426, 6428, 6430, 6441, + 6443, 6445, 6447, 6449, 6460, 6462, 6464, 6466, + 6468, 6471, 6473, 6476, 6488, 6502, 6504, 6519, + 6530, 6533, 6535, 6537, 6539, 6541, 6543, 6545, + 6547, 6549, 6551, 6553, 6555, 6557, 6559, 6561, + 6563, 6565, 6567, 6569, 6577, 6584, 6587, 6598, + 6613, 6615, 6617, 6619, 6632, 6637, 6648, 6651, + 6653, 6655, 6657, 6659, 6661, 6663, 6665, 6667, + 6669, 6673, 6676, 6679, 6682, 6694, 6697, 6699, + 6701, 6703, 6705, 6707, 6709, 6712, 6714, 6716, + 6719, 6721, 6725, 6728, 6733, 6736, 6750, 6753, + 6755, 6761, 6766, 6773, 6778, 6794, 6799, 6801, + 6803, 6805, 6807, 6814, 6826, 6833, 6845, 6851, + 6856, 6861, 6864, 6870, 6873, 6876, 6879, 6882, + 6884, 6886, 6889, 6892, 6895, 6897, 6902, 6907, + 6912, 6914, 6917, 6920, 6923, 6926, 6931, 6934, + 6937, 6940, 6943, 6945, 6947, 6950, 6953, 6956, + 6958, 6960, 6962, 6967, 6969, 6971, 6974, 6977, + 6980, 6982, 6984, 6986, 6991, 6994, 6996, 6998, + 7000, 7002, 7007, 7009, 7011, 7016, 7019, 7022, + 7025, 7028, 7031, 7034, 7037, 7042, 7045, 7048, + 7051, 7054, 7057, 7060, 7065, 7068, 7071, 7076, + 7079, 7082, 7087, 7090, 7093, 7098, 7101, 7103, + 7108, 7111, 7114, 7118, 7124, 7127, 7130, 7133, + 7136, 7138, 7140, 7143, 7146, 7149, 7151, 7156, + 7158, 7160, 7165, 7167, 7169, 7174, 7188, 7194, + 7197, 7200, 7203, 7206, 7209, 7214, 7221, 7224, + 7227, 7230, 7233, 7236, 7241, 7246, 7249, 7254, + 7257, 7260, 7265, 7268, 7271, 7274, 7279, 7282, + 7285, 7290, 7295, 7298, 7303, 7306, 7309, 7314, + 7317, 7320, 7323, 7328, 7331, 7334, 7339, 7343, + 7349, 7352, 7355, 7358, 7361, 7364, 7369, 7372, + 7379, 7386, 7391, 7398, 7405, 7418, 7425, 7433, + 7441, 7449, 7467, 7475, 7493, 7501, 7519, 7527, + 7543, 7549, 7561, 7567, 7570, 7578, 7590, 7598, + 7601, 7609, 7621, 7629, 7632, 7640, 7652, 7660, + 7663, 7666, 7669, 7674, 7681, 7691, 7696, 7699, + 7706, 7713, 7726, 7731, 7734, 7736, 7744, 7757, + 7762, 7765, 7770, 7781, 7795, 7798, 7803, 7812, + 7814, 7822, 7832, 7840, 7850, 7859, 7868, 7875, + 7883, 7891, 7901, 7909, 7919, 7928, 7937, 7944, + 7953, 7955, 7969, 7981, 7995, 8007, 8021, 8033, + 8047, 8058, 8061, 8074, 8087, 8090, 8103, 8116, + 8127, 8130, 8143, 8156, 8167, 8170, 8183, 8196, + 8207, 8210, 8217, 8220, 8228, 8236, 8239, 8242, + 8245, 8252, 8255, 8263, 8271, 8274, 8277, 8279, + 8287, 8295, 8303, 8311, 8319, 8332, 8337, 8340, + 8343, 8346, 8348, 8356, 8364, 8372, 8382, 8389, + 8399, 8406, 8416, 8423, 8436, 8441, 8444, 8447, + 8450, 8453, 8456, 8460, 8467, 8475, 8483, 8493, + 8500, 8511, 8514, 8517, 8520, 8523, 8537, 8540, + 8542, 8545, 8548, 8550, 8562, 8565, 8567, 8572, + 8577, 8579, 8587, 8597, 8604, 8612, 8620, 8630, + 8634, 8648, 8651, 8654, 8657, 8660, 8662, 8670, + 8678, 8686, 8696, 8700, 8714, 8717, 8720, 8723, + 8725, 8733, 8744, 8751, 8759, 8767, 8775, 8810, + 8821, 8824, 8827, 8842, 8845, 8884, 8891, 8894, + 8897, 8904, 8912, 8920, 8929, 8966, 8969, 8972, + 8979, 8987, 8995, 9006, 9045, 9048, 9051, 9058, + 9066, 9074, 9087, 9122, 9125, 9128, 9131, 9135, + 9142, 9152, 9159, 9167, 9175, 9183, 9191, 9199, + 9207, 9215, 9223, 9231, 9239, 9252, 9259, 9270, + 9273, 9276, 9279, 9282, 9285, 9288, 9291, 9294, + 9297, 9304, 9309, 9314, 9316, 9324, 9332, 9340, + 9350, 9357, 9368, 9371, 9374, 9377, 9380, 9385, + 9388, 9390, 9398, 9406, 9414, 9422, 9430, 9441, + 9448, 9458, 9462, 9467, 9471, 9476, 9481, 9485, + 9490, 9498, 9503, 9505, 9507, 9509, 9511, 9513, + 9516, 9520, 9530, 9533, 9536, 9539, 9541, 9549, + 9557, 9565, 9573, 9581, 9592, 9597, 9601, 9609, + 9612, 9615, 9618, 9620, 9628, 9636, 9644, 9652, + 9660, 9670, 9674, 9688, 9691, 9694, 9697, 9700, + 9702, 9710, 9718, 9724, 9729, 9732, 9734, 9742, + 9750, 9758, 9766, 9774, 9784, 9788, 9802, 9805, + 9808, 9811, 9814, 9816, 9824, 9833, 9840, 9843, + 9845, 9853, 9863, 9867, 9871, 9875, 9877, 9881, + 9885, 9889, 9893, 9899, 9902, 9906, 9910, 9912, + 9916, 9920, 9926, 9930, 9934, 9936, 9940, 9944, + 9950, 9952, 9960, 9968, 9976, 9986, 9991, 9994, + 9997, 9999, 10007, 10017, 10024, 10034, 10039, 10042, + 10045, 10047, 10055, 10068, 10073, 10078, 10081, 10085, + 10092, 10102, 10109, 10117, 10125, 10138, 10143, 10146, + 10149, 10152, 10159, 10164, 10180, 10206, 10258, 10311, + 10327, 10380, 10396, 10422, 10485, 10548, 10549, 10550, + 10551, 10552, 10561, 10562, 10563, 10564, 10578, 10579, + 10594, 10597, 10598, 10599, 10646, 10649, 10650, 10664, + 10667, 10677, 10678, 10692, 10695, 10698, 10699, 10700, + 10701, 10721, 10724, 10725, 10736, 10739, 10754, 10757, + 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, + 10766, 10767, 10781, 10784, 10785, 10786, 10797, 10800, + 10812, 10815, 10827, 10830, 10842, 10845, 10846, 10847, + 10848, 10849, 10863, 10866, 10867, 10881, 10884, 10885, + 10899, 10902, 10903, 10918, 10921, 10932, 10935, 10974, + 10981, 10982, 10983, 10984, 10985, 10986, 10987, 10988, + 11002, 11005, 11006, 11007, 11021, 11024, 11025, 11026, + 11027, 11028, 11029, 11030, 11031, 11032 }; static const short _zone_scanner_indicies[] = { @@ -3973,1272 +4197,1351 @@ static const short _zone_scanner_indicies[] = { 222, 223, 223, 224, 225, 63, 226, 226, 39, 227, 227, 39, 228, 228, 39, 229, 229, 230, 231, 232, 233, 234, 234, 235, - 236, 63, 237, 238, 239, 237, 238, 239, - 39, 240, 240, 39, 241, 241, 39, 242, - 242, 39, 243, 243, 244, 245, 246, 247, - 248, 248, 249, 250, 63, 251, 252, 251, - 252, 39, 253, 253, 39, 254, 254, 39, - 255, 255, 256, 257, 258, 259, 260, 260, - 261, 262, 63, 263, 263, 39, 264, 264, - 39, 265, 265, 39, 266, 266, 267, 268, - 269, 270, 271, 271, 272, 273, 63, 274, - 274, 275, 276, 277, 277, 278, 279, 280, - 280, 281, 282, 63, 283, 283, 39, 284, - 284, 39, 285, 285, 286, 287, 288, 289, - 290, 290, 291, 292, 63, 293, 293, 39, - 294, 294, 39, 295, 296, 39, 297, 39, - 298, 298, 299, 300, 301, 302, 303, 303, - 304, 305, 63, 306, 39, 307, 307, 308, - 309, 310, 311, 312, 312, 313, 314, 63, - 315, 316, 315, 316, 39, 317, 317, 39, - 318, 318, 39, 319, 319, 39, 320, 320, - 321, 322, 323, 324, 325, 325, 326, 327, - 63, 328, 328, 39, 329, 329, 39, 330, - 330, 39, 331, 331, 332, 333, 334, 335, - 336, 336, 337, 338, 63, 339, 340, 339, - 340, 39, 341, 341, 342, 343, 344, 345, - 39, 346, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 349, - 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, 39, 340, 340, 39, 369, - 369, 39, 370, 370, 39, 371, 371, 39, - 372, 372, 39, 373, 373, 39, 374, 374, - 39, 375, 375, 376, 377, 378, 379, 380, - 380, 381, 382, 63, 383, 384, 383, 384, - 39, 385, 385, 39, 386, 386, 387, 388, - 389, 390, 391, 391, 392, 393, 63, 394, - 394, 395, 396, 397, 398, 399, 399, 400, - 401, 63, 402, 403, 404, 405, 404, 405, - 39, 406, 39, 407, 407, 408, 409, 410, - 411, 412, 412, 413, 414, 63, 415, 39, - 416, 416, 417, 418, 419, 420, 421, 421, - 422, 423, 63, 424, 424, 39, 425, 425, - 426, 427, 428, 429, 430, 430, 431, 432, - 63, 433, 433, 434, 435, 436, 437, 438, - 438, 439, 440, 63, 441, 442, 441, 442, - 39, 443, 443, 39, 444, 444, 39, 445, - 445, 39, 446, 446, 447, 448, 449, 450, - 451, 451, 452, 453, 63, 454, 454, 455, - 456, 457, 458, 459, 459, 460, 461, 63, - 462, 463, 464, 462, 463, 464, 39, 465, - 465, 39, 466, 466, 39, 467, 467, 39, - 468, 468, 469, 470, 471, 472, 473, 473, - 474, 475, 63, 476, 476, 39, 477, 477, - 478, 479, 480, 481, 482, 482, 483, 484, - 63, 485, 485, 486, 487, 488, 488, 489, - 490, 491, 491, 492, 493, 63, 494, 494, - 39, 495, 495, 496, 497, 498, 499, 500, - 501, 501, 502, 503, 63, 504, 504, 505, - 506, 507, 507, 508, 509, 510, 510, 511, - 512, 63, 513, 513, 39, 514, 514, 39, - 515, 515, 39, 516, 516, 39, 517, 517, - 518, 519, 520, 521, 522, 522, 523, 524, - 63, 525, 525, 39, 526, 526, 39, 527, - 527, 39, 528, 528, 39, 529, 529, 39, - 530, 530, 39, 531, 531, 39, 532, 532, - 39, 533, 533, 39, 534, 534, 535, 536, - 537, 538, 539, 539, 540, 541, 63, 542, - 542, 39, 543, 543, 39, 544, 544, 545, - 546, 547, 548, 549, 549, 550, 551, 63, - 552, 553, 554, 555, 552, 553, 554, 555, - 39, 556, 556, 39, 557, 557, 39, 558, - 558, 39, 559, 559, 39, 560, 560, 39, - 561, 561, 562, 563, 564, 565, 566, 566, - 567, 568, 63, 569, 569, 570, 571, 572, - 573, 574, 574, 575, 576, 63, 577, 577, - 39, 578, 578, 39, 579, 579, 39, 580, - 580, 581, 582, 583, 584, 585, 585, 586, - 587, 63, 588, 588, 589, 590, 591, 592, - 593, 593, 594, 595, 63, 596, 597, 598, - 599, 600, 601, 596, 597, 598, 599, 600, - 601, 39, 602, 602, 39, 603, 603, 39, - 604, 604, 39, 605, 605, 39, 606, 606, - 607, 608, 609, 610, 611, 611, 612, 613, - 63, 614, 614, 39, 615, 615, 616, 617, - 618, 619, 620, 620, 621, 622, 63, 623, - 623, 39, 624, 624, 625, 626, 627, 628, - 629, 629, 630, 631, 63, 632, 632, 39, - 633, 633, 634, 635, 636, 637, 638, 638, - 639, 640, 63, 641, 641, 39, 642, 642, - 39, 643, 643, 39, 644, 644, 645, 646, - 647, 648, 649, 649, 650, 651, 63, 652, - 652, 39, 653, 653, 39, 654, 654, 655, - 656, 657, 658, 659, 659, 660, 661, 63, - 662, 663, 664, 662, 663, 664, 39, 665, - 665, 39, 666, 666, 39, 667, 667, 668, - 669, 670, 671, 672, 672, 673, 674, 63, - 675, 675, 39, 676, 676, 677, 678, 679, - 680, 681, 681, 682, 683, 63, 684, 684, - 39, 685, 685, 39, 687, 686, 689, 689, - 690, 691, 693, 694, 695, 695, 696, 697, - 692, 688, 698, 698, 39, 699, 699, 39, - 700, 700, 701, 702, 703, 704, 705, 705, - 706, 707, 63, 708, 708, 39, 709, 709, - 39, 710, 710, 39, 711, 711, 39, 712, - 712, 39, 713, 713, 714, 715, 716, 717, - 718, 718, 719, 720, 63, 721, 721, 39, - 722, 722, 39, 723, 723, 39, 724, 724, - 39, 725, 725, 39, 726, 726, 727, 728, - 729, 730, 731, 731, 732, 733, 63, 735, - 734, 39, 736, 736, 737, 738, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, - 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 739, 740, 4, 0, - 741, 340, 741, 340, 39, 742, 742, 743, - 744, 745, 746, 39, 747, 747, 748, 749, - 751, 752, 753, 754, 755, 756, 757, 758, - 759, 760, 761, 762, 763, 764, 765, 766, - 767, 768, 751, 752, 753, 754, 755, 756, - 757, 758, 759, 760, 761, 762, 763, 764, - 765, 766, 767, 768, 769, 770, 750, 686, - 771, 771, 772, 773, 775, 776, 777, 778, - 779, 775, 776, 777, 778, 779, 780, 781, - 774, 27, 771, 771, 772, 773, 780, 781, - 782, 27, 784, 785, 786, 787, 788, 784, - 785, 786, 787, 788, 783, 27, 789, 789, - 790, 791, 793, 794, 792, 27, 796, 795, - 39, 798, 797, 800, 801, 802, 800, 801, - 802, 799, 803, 803, 799, 804, 804, 799, - 805, 805, 799, 806, 806, 799, 807, 807, - 799, 808, 808, 799, 809, 809, 809, 809, - 799, 811, 811, 812, 813, 814, 815, 810, - 816, 816, 817, 818, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, - 819, 820, 4, 686, 823, 821, 822, 825, - 825, 826, 827, 32, 33, 34, 35, 36, - 32, 33, 34, 35, 36, 828, 829, 31, - 824, 830, 830, 831, 832, 5, 6, 7, + 236, 63, 237, 238, 239, 240, 237, 238, + 239, 240, 39, 241, 241, 39, 242, 242, + 39, 243, 243, 39, 244, 244, 245, 246, + 247, 247, 248, 249, 250, 250, 251, 252, + 63, 253, 253, 39, 254, 254, 39, 255, + 255, 39, 256, 256, 39, 257, 257, 258, + 259, 260, 261, 262, 262, 263, 264, 63, + 265, 265, 39, 266, 266, 39, 267, 267, + 39, 268, 268, 269, 270, 271, 272, 273, + 273, 274, 275, 63, 276, 277, 276, 277, + 39, 278, 278, 39, 279, 279, 39, 280, + 280, 281, 282, 283, 284, 285, 285, 286, + 287, 63, 288, 288, 39, 289, 289, 39, + 290, 290, 39, 291, 291, 292, 293, 294, + 295, 296, 296, 297, 298, 63, 299, 299, + 300, 301, 302, 302, 303, 304, 305, 305, + 306, 307, 63, 308, 308, 39, 309, 309, + 39, 310, 310, 311, 312, 313, 314, 315, + 315, 316, 317, 63, 318, 318, 39, 319, + 319, 39, 320, 321, 39, 322, 39, 323, + 323, 324, 325, 326, 327, 328, 328, 329, + 330, 63, 331, 39, 332, 332, 333, 334, + 335, 336, 337, 337, 338, 339, 63, 340, + 341, 340, 341, 39, 342, 342, 39, 343, + 343, 39, 344, 344, 39, 345, 345, 346, + 347, 348, 349, 350, 350, 351, 352, 63, + 353, 353, 39, 354, 354, 39, 355, 355, + 39, 356, 356, 357, 358, 359, 360, 361, + 361, 362, 363, 63, 364, 365, 364, 365, + 39, 366, 366, 367, 368, 369, 370, 39, + 371, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 39, 365, 365, 39, 394, 394, + 39, 395, 395, 39, 396, 396, 39, 397, + 397, 39, 398, 398, 39, 399, 399, 39, + 400, 400, 401, 402, 403, 404, 405, 405, + 406, 407, 63, 408, 409, 408, 409, 39, + 410, 410, 39, 411, 411, 412, 413, 414, + 415, 416, 416, 417, 418, 63, 419, 419, + 420, 421, 422, 423, 424, 424, 425, 426, + 63, 427, 428, 429, 430, 429, 430, 39, + 431, 39, 432, 432, 433, 434, 435, 436, + 437, 437, 438, 439, 63, 440, 39, 441, + 441, 442, 443, 444, 445, 446, 446, 447, + 448, 63, 449, 449, 39, 450, 450, 451, + 452, 453, 454, 455, 455, 456, 457, 63, + 458, 458, 459, 460, 461, 462, 463, 463, + 464, 465, 63, 466, 467, 466, 467, 39, + 468, 468, 39, 469, 469, 39, 470, 470, + 39, 471, 471, 472, 473, 474, 475, 476, + 476, 477, 478, 63, 479, 479, 480, 481, + 482, 483, 484, 484, 485, 486, 63, 487, + 488, 489, 487, 488, 489, 39, 490, 490, + 39, 491, 491, 39, 492, 492, 39, 493, + 493, 494, 495, 496, 497, 498, 498, 499, + 500, 63, 501, 501, 39, 502, 502, 503, + 504, 505, 506, 507, 507, 508, 509, 63, + 510, 510, 511, 512, 513, 513, 514, 515, + 516, 516, 517, 518, 63, 519, 519, 39, + 520, 520, 521, 522, 523, 524, 525, 526, + 526, 527, 528, 63, 529, 529, 530, 531, + 532, 532, 533, 534, 535, 535, 536, 537, + 63, 538, 538, 39, 539, 539, 39, 540, + 540, 39, 541, 541, 39, 542, 542, 543, + 544, 545, 546, 547, 547, 548, 549, 63, + 550, 550, 39, 551, 551, 39, 552, 552, + 39, 553, 553, 39, 554, 554, 39, 555, + 555, 39, 556, 556, 39, 557, 557, 39, + 558, 558, 39, 559, 559, 560, 561, 562, + 563, 564, 564, 565, 566, 63, 567, 567, + 39, 568, 568, 39, 569, 569, 570, 571, + 572, 573, 574, 574, 575, 576, 63, 577, + 578, 579, 580, 577, 578, 579, 580, 39, + 581, 581, 39, 582, 582, 39, 583, 583, + 39, 584, 584, 39, 585, 585, 39, 586, + 586, 587, 588, 589, 590, 591, 591, 592, + 593, 63, 594, 594, 595, 596, 597, 598, + 599, 599, 600, 601, 63, 602, 602, 39, + 603, 603, 39, 604, 604, 39, 605, 605, + 606, 607, 608, 609, 610, 610, 611, 612, + 63, 613, 613, 614, 615, 616, 617, 618, + 618, 619, 620, 63, 621, 622, 623, 624, + 625, 626, 621, 622, 623, 624, 625, 626, + 39, 627, 627, 39, 628, 628, 39, 629, + 629, 39, 630, 630, 39, 631, 631, 632, + 633, 634, 635, 636, 636, 637, 638, 63, + 639, 639, 39, 640, 640, 641, 642, 643, + 644, 645, 645, 646, 647, 63, 648, 648, + 39, 649, 649, 650, 651, 652, 653, 654, + 654, 655, 656, 63, 657, 657, 39, 658, + 658, 659, 660, 661, 662, 663, 663, 664, + 665, 63, 666, 666, 39, 667, 667, 39, + 668, 668, 39, 669, 669, 670, 671, 672, + 673, 674, 674, 675, 676, 63, 677, 677, + 39, 678, 678, 39, 679, 679, 680, 681, + 682, 683, 684, 684, 685, 686, 63, 687, + 688, 689, 687, 688, 689, 39, 690, 690, + 39, 691, 691, 39, 692, 692, 693, 694, + 695, 696, 697, 697, 698, 699, 63, 700, + 700, 39, 701, 701, 702, 703, 704, 705, + 706, 706, 707, 708, 63, 709, 709, 39, + 710, 710, 39, 712, 711, 714, 714, 715, + 716, 718, 719, 720, 720, 721, 722, 717, + 713, 723, 723, 39, 724, 724, 39, 725, + 725, 726, 727, 728, 729, 730, 730, 731, + 732, 63, 733, 733, 39, 734, 734, 39, + 735, 735, 39, 736, 736, 39, 737, 737, + 39, 738, 738, 739, 740, 741, 742, 743, + 743, 744, 745, 63, 746, 746, 39, 747, + 747, 39, 748, 748, 39, 749, 749, 39, + 750, 750, 39, 751, 751, 752, 753, 754, + 755, 756, 756, 757, 758, 63, 760, 759, + 39, 761, 761, 762, 763, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 833, 834, 4, 686, 836, 835, 39, - 28, 28, 29, 30, 37, 38, 837, 27, - 839, 840, 841, 842, 843, 839, 840, 841, - 842, 843, 838, 27, 844, 844, 845, 846, - 848, 849, 847, 27, 851, 850, 39, 853, - 853, 854, 855, 67, 68, 69, 70, 67, - 68, 69, 70, 856, 857, 73, 73, 858, - 859, 852, 860, 860, 861, 862, 76, 125, - 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, - 142, 81, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 863, 864, 76, 76, - 865, 866, 76, 76, 124, 76, 688, 868, - 868, 869, 870, 67, 68, 69, 70, 67, - 68, 69, 70, 90, 91, 871, 872, 873, - 874, 875, 876, 867, 877, 877, 878, 879, - 81, 96, 97, 880, 114, 115, 116, 881, - 117, 76, 76, 76, 86, 882, 882, 883, - 884, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 5, 6, 7, 8, 9, + 22, 23, 24, 764, 765, 4, 0, 766, + 365, 766, 365, 39, 767, 767, 768, 769, + 770, 771, 39, 772, 772, 773, 774, 776, + 777, 778, 779, 780, 781, 782, 783, 784, + 785, 786, 787, 788, 789, 790, 791, 792, + 793, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 789, 790, + 791, 792, 793, 794, 795, 775, 711, 796, + 796, 797, 798, 800, 801, 802, 803, 804, + 800, 801, 802, 803, 804, 805, 806, 799, + 27, 796, 796, 797, 798, 805, 806, 807, + 27, 809, 810, 811, 812, 813, 809, 810, + 811, 812, 813, 808, 27, 814, 814, 815, + 816, 818, 819, 817, 27, 821, 820, 39, + 823, 822, 825, 826, 827, 825, 826, 827, + 824, 828, 828, 824, 829, 829, 824, 830, + 830, 824, 831, 831, 824, 832, 832, 824, + 833, 833, 824, 834, 834, 834, 834, 824, + 836, 836, 837, 838, 839, 840, 835, 841, + 841, 842, 843, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 96, 97, 885, - 886, 4, 0, 99, 888, 98, 887, 92, - 889, 889, 890, 891, 892, 893, 892, 893, - 98, 98, 98, 86, 894, 894, 895, 896, - 99, 897, 99, 897, 98, 98, 98, 92, - 898, 898, 899, 900, 76, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 81, - 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 96, 97, 885, 901, 115, 116, - 885, 902, 76, 76, 124, 76, 121, 87, - 87, 88, 89, 161, 162, 163, 164, 165, - 161, 162, 163, 164, 165, 90, 91, 90, - 91, 867, 87, 87, 88, 89, 237, 238, - 239, 237, 238, 239, 90, 91, 90, 91, - 867, 87, 87, 88, 89, 293, 293, 90, - 91, 90, 91, 867, 87, 87, 88, 89, - 315, 316, 315, 316, 90, 91, 90, 91, - 867, 87, 87, 88, 89, 741, 340, 741, - 340, 90, 91, 90, 91, 867, 87, 87, - 88, 89, 383, 384, 383, 384, 90, 91, - 90, 91, 867, 87, 87, 88, 89, 402, - 403, 404, 405, 404, 405, 90, 91, 90, - 91, 867, 87, 87, 88, 89, 441, 442, - 441, 442, 90, 91, 90, 91, 867, 87, - 87, 88, 89, 462, 463, 464, 462, 463, - 464, 90, 91, 90, 91, 867, 87, 87, - 88, 89, 525, 525, 90, 91, 90, 91, - 867, 87, 87, 88, 89, 542, 542, 90, - 91, 90, 91, 867, 87, 87, 88, 89, - 552, 553, 554, 555, 552, 553, 554, 555, - 90, 91, 90, 91, 867, 87, 87, 88, - 89, 596, 597, 598, 599, 600, 601, 596, - 597, 598, 599, 600, 601, 90, 91, 90, - 91, 867, 87, 87, 88, 89, 662, 663, - 664, 662, 663, 664, 90, 91, 90, 91, - 867, 87, 87, 88, 89, 698, 698, 90, - 91, 90, 91, 867, 87, 87, 88, 89, - 708, 708, 90, 91, 90, 91, 867, 87, - 87, 88, 89, 721, 721, 90, 91, 90, - 91, 867, 99, 904, 98, 903, 86, 87, - 87, 88, 89, 800, 801, 802, 800, 801, - 802, 90, 91, 90, 91, 905, 906, 906, - 799, 907, 907, 799, 908, 908, 799, 909, - 909, 799, 910, 910, 799, 911, 911, 911, - 911, 799, 912, 912, 799, 913, 913, 799, - 914, 914, 914, 914, 799, 916, 916, 917, - 918, 90, 91, 919, 920, 915, 922, 922, - 923, 924, 32, 33, 34, 35, 36, 32, - 33, 34, 35, 36, 90, 91, 925, 926, - 31, 921, 927, 927, 928, 929, 5, 6, + 18, 19, 20, 21, 22, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 844, + 845, 4, 711, 848, 846, 847, 850, 850, + 851, 852, 32, 33, 34, 35, 36, 32, + 33, 34, 35, 36, 853, 854, 31, 849, + 855, 855, 856, 857, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 858, 859, 4, 711, 861, 860, 39, 28, + 28, 29, 30, 37, 38, 862, 27, 864, + 865, 866, 867, 868, 864, 865, 866, 867, + 868, 863, 27, 869, 869, 870, 871, 873, + 874, 872, 27, 876, 875, 39, 878, 878, + 879, 880, 67, 68, 69, 70, 67, 68, + 69, 70, 881, 882, 73, 73, 883, 884, + 877, 885, 885, 886, 887, 76, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, + 81, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 888, 889, 76, 76, 890, + 891, 76, 76, 124, 76, 713, 893, 893, + 894, 895, 67, 68, 69, 70, 67, 68, + 69, 70, 90, 91, 896, 897, 898, 899, + 900, 901, 892, 902, 902, 903, 904, 81, + 96, 97, 905, 114, 115, 116, 906, 117, + 76, 76, 76, 86, 907, 907, 908, 909, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 96, 97, 930, 931, 4, 0, - 99, 933, 98, 932, 155, 935, 935, 936, - 937, 67, 68, 69, 70, 67, 68, 69, - 70, 90, 91, 938, 939, 873, 874, 940, - 941, 934, 942, 942, 943, 944, 76, 125, + 21, 22, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 96, 97, 910, 911, + 4, 0, 99, 913, 98, 912, 92, 914, + 914, 915, 916, 917, 918, 917, 918, 98, + 98, 98, 86, 919, 919, 920, 921, 99, + 922, 99, 922, 98, 98, 98, 92, 923, + 923, 924, 925, 76, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 81, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 81, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 96, 97, 945, 901, - 115, 116, 946, 902, 76, 76, 124, 76, - 121, 916, 916, 917, 918, 161, 162, 163, - 164, 165, 161, 162, 163, 164, 165, 90, - 91, 919, 920, 934, 916, 916, 917, 918, - 237, 238, 239, 237, 238, 239, 90, 91, - 919, 920, 934, 916, 916, 917, 918, 293, - 293, 90, 91, 919, 920, 934, 916, 916, - 917, 918, 315, 316, 315, 316, 90, 91, - 919, 920, 934, 916, 916, 917, 918, 741, - 340, 741, 340, 90, 91, 919, 920, 934, - 916, 916, 917, 918, 383, 384, 383, 384, - 90, 91, 919, 920, 934, 916, 916, 917, - 918, 402, 403, 404, 405, 404, 405, 90, - 91, 919, 920, 934, 916, 916, 917, 918, - 441, 442, 441, 442, 90, 91, 919, 920, - 934, 916, 916, 917, 918, 462, 463, 464, - 462, 463, 464, 90, 91, 919, 920, 934, - 916, 916, 917, 918, 525, 525, 90, 91, - 919, 920, 934, 916, 916, 917, 918, 542, - 542, 90, 91, 919, 920, 934, 916, 916, - 917, 918, 552, 553, 554, 555, 552, 553, - 554, 555, 90, 91, 919, 920, 934, 916, - 916, 917, 918, 596, 597, 598, 599, 600, - 601, 596, 597, 598, 599, 600, 601, 90, - 91, 919, 920, 934, 916, 916, 917, 918, - 662, 663, 664, 662, 663, 664, 90, 91, - 919, 920, 934, 916, 916, 917, 918, 698, - 698, 90, 91, 919, 920, 934, 916, 916, - 917, 918, 708, 708, 90, 91, 919, 920, - 934, 916, 916, 917, 918, 721, 721, 90, - 91, 919, 920, 934, 947, 947, 101, 949, - 950, 100, 100, 951, 952, 100, 100, 100, - 948, 953, 953, 954, 955, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 5, + 142, 96, 97, 910, 926, 115, 116, 910, + 927, 76, 76, 124, 76, 121, 87, 87, + 88, 89, 161, 162, 163, 164, 165, 161, + 162, 163, 164, 165, 90, 91, 90, 91, + 892, 87, 87, 88, 89, 237, 238, 239, + 240, 237, 238, 239, 240, 90, 91, 90, + 91, 892, 87, 87, 88, 89, 318, 318, + 90, 91, 90, 91, 892, 87, 87, 88, + 89, 340, 341, 340, 341, 90, 91, 90, + 91, 892, 87, 87, 88, 89, 766, 365, + 766, 365, 90, 91, 90, 91, 892, 87, + 87, 88, 89, 408, 409, 408, 409, 90, + 91, 90, 91, 892, 87, 87, 88, 89, + 427, 428, 429, 430, 429, 430, 90, 91, + 90, 91, 892, 87, 87, 88, 89, 466, + 467, 466, 467, 90, 91, 90, 91, 892, + 87, 87, 88, 89, 487, 488, 489, 487, + 488, 489, 90, 91, 90, 91, 892, 87, + 87, 88, 89, 550, 550, 90, 91, 90, + 91, 892, 87, 87, 88, 89, 567, 567, + 90, 91, 90, 91, 892, 87, 87, 88, + 89, 577, 578, 579, 580, 577, 578, 579, + 580, 90, 91, 90, 91, 892, 87, 87, + 88, 89, 621, 622, 623, 624, 625, 626, + 621, 622, 623, 624, 625, 626, 90, 91, + 90, 91, 892, 87, 87, 88, 89, 687, + 688, 689, 687, 688, 689, 90, 91, 90, + 91, 892, 87, 87, 88, 89, 723, 723, + 90, 91, 90, 91, 892, 87, 87, 88, + 89, 733, 733, 90, 91, 90, 91, 892, + 87, 87, 88, 89, 746, 746, 90, 91, + 90, 91, 892, 99, 929, 98, 928, 86, + 87, 87, 88, 89, 825, 826, 827, 825, + 826, 827, 90, 91, 90, 91, 930, 931, + 931, 824, 932, 932, 824, 933, 933, 824, + 934, 934, 824, 935, 935, 824, 936, 936, + 936, 936, 824, 937, 937, 824, 938, 938, + 824, 939, 939, 939, 939, 824, 941, 941, + 942, 943, 90, 91, 944, 945, 940, 947, + 947, 948, 949, 32, 33, 34, 35, 36, + 32, 33, 34, 35, 36, 90, 91, 950, + 951, 31, 946, 952, 952, 953, 954, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 90, 91, 956, 957, 4, 121, 87, - 90, 87, 88, 89, 91, 958, 959, 958, - 960, 961, 962, 821, 86, 93, 96, 93, - 94, 95, 97, 963, 888, 963, 964, 965, - 966, 821, 92, 889, 892, 889, 890, 891, - 893, 967, 959, 967, 968, 969, 970, 98, - 903, 86, 894, 99, 894, 895, 896, 897, - 971, 888, 971, 972, 973, 974, 98, 903, - 86, 975, 975, 39, 976, 976, 39, 977, - 977, 978, 979, 980, 981, 982, 982, 983, - 984, 63, 985, 985, 39, 986, 986, 39, - 987, 987, 39, 988, 988, 989, 990, 991, - 992, 993, 993, 994, 995, 63, 996, 996, - 39, 997, 997, 39, 998, 998, 39, 999, - 999, 1000, 1001, 1002, 1003, 1004, 1004, 1005, - 1006, 63, 1007, 1007, 39, 1008, 1008, 1009, - 1010, 1011, 1012, 1013, 1013, 1014, 1015, 63, - 798, 1017, 797, 1016, 86, 1018, 1018, 1019, - 1020, 1021, 893, 1021, 893, 797, 797, 797, - 86, 1022, 1022, 1023, 1024, 1025, 897, 1025, - 897, 797, 797, 797, 92, 1018, 1021, 1018, - 1019, 1020, 893, 1026, 959, 1026, 1027, 1028, - 970, 797, 1016, 86, 1022, 1025, 1022, 1023, - 1024, 897, 1029, 888, 1029, 1030, 1031, 974, - 797, 1016, 86, 889, 892, 889, 890, 891, - 893, 1032, 892, 1032, 1033, 1034, 178, 98, - 118, 86, 894, 99, 894, 895, 896, 897, - 1035, 99, 1035, 1036, 1037, 182, 98, 118, - 86, 1039, 1038, 78, 1040, 1040, 1041, 1042, - 76, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 81, 125, 126, 127, 128, + 22, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 96, 97, 955, 956, 4, + 0, 99, 958, 98, 957, 155, 960, 960, + 961, 962, 67, 68, 69, 70, 67, 68, + 69, 70, 90, 91, 963, 964, 898, 899, + 965, 966, 959, 967, 967, 968, 969, 76, + 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 81, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 96, 97, 970, + 926, 115, 116, 971, 927, 76, 76, 124, + 76, 121, 941, 941, 942, 943, 161, 162, + 163, 164, 165, 161, 162, 163, 164, 165, + 90, 91, 944, 945, 959, 941, 941, 942, + 943, 237, 238, 239, 240, 237, 238, 239, + 240, 90, 91, 944, 945, 959, 941, 941, + 942, 943, 318, 318, 90, 91, 944, 945, + 959, 941, 941, 942, 943, 340, 341, 340, + 341, 90, 91, 944, 945, 959, 941, 941, + 942, 943, 766, 365, 766, 365, 90, 91, + 944, 945, 959, 941, 941, 942, 943, 408, + 409, 408, 409, 90, 91, 944, 945, 959, + 941, 941, 942, 943, 427, 428, 429, 430, + 429, 430, 90, 91, 944, 945, 959, 941, + 941, 942, 943, 466, 467, 466, 467, 90, + 91, 944, 945, 959, 941, 941, 942, 943, + 487, 488, 489, 487, 488, 489, 90, 91, + 944, 945, 959, 941, 941, 942, 943, 550, + 550, 90, 91, 944, 945, 959, 941, 941, + 942, 943, 567, 567, 90, 91, 944, 945, + 959, 941, 941, 942, 943, 577, 578, 579, + 580, 577, 578, 579, 580, 90, 91, 944, + 945, 959, 941, 941, 942, 943, 621, 622, + 623, 624, 625, 626, 621, 622, 623, 624, + 625, 626, 90, 91, 944, 945, 959, 941, + 941, 942, 943, 687, 688, 689, 687, 688, + 689, 90, 91, 944, 945, 959, 941, 941, + 942, 943, 723, 723, 90, 91, 944, 945, + 959, 941, 941, 942, 943, 733, 733, 90, + 91, 944, 945, 959, 941, 941, 942, 943, + 746, 746, 90, 91, 944, 945, 959, 972, + 972, 101, 974, 975, 100, 100, 976, 977, + 100, 100, 100, 973, 978, 978, 979, 980, + 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 90, 91, 981, 982, + 4, 121, 87, 90, 87, 88, 89, 91, + 983, 984, 983, 985, 986, 987, 846, 86, + 93, 96, 93, 94, 95, 97, 988, 913, + 988, 989, 990, 991, 846, 92, 914, 917, + 914, 915, 916, 918, 992, 984, 992, 993, + 994, 995, 98, 928, 86, 919, 99, 919, + 920, 921, 922, 996, 913, 996, 997, 998, + 999, 98, 928, 86, 1000, 1000, 39, 1001, + 1001, 39, 1002, 1002, 1003, 1004, 1005, 1006, + 1007, 1007, 1008, 1009, 63, 1010, 1010, 39, + 1011, 1011, 39, 1012, 1012, 39, 1013, 1013, + 1014, 1015, 1016, 1017, 1018, 1018, 1019, 1020, + 63, 1021, 1021, 39, 1022, 1022, 39, 1023, + 1023, 39, 1024, 1024, 1025, 1026, 1027, 1028, + 1029, 1029, 1030, 1031, 63, 1032, 1032, 39, + 1033, 1033, 1034, 1035, 1036, 1037, 1038, 1038, + 1039, 1040, 63, 823, 1042, 822, 1041, 86, + 1043, 1043, 1044, 1045, 1046, 918, 1046, 918, + 822, 822, 822, 86, 1047, 1047, 1048, 1049, + 1050, 922, 1050, 922, 822, 822, 822, 92, + 1043, 1046, 1043, 1044, 1045, 918, 1051, 984, + 1051, 1052, 1053, 995, 822, 1041, 86, 1047, + 1050, 1047, 1048, 1049, 922, 1054, 913, 1054, + 1055, 1056, 999, 822, 1041, 86, 914, 917, + 914, 915, 916, 918, 1057, 917, 1057, 1058, + 1059, 178, 98, 118, 86, 919, 99, 919, + 920, 921, 922, 1060, 99, 1060, 1061, 1062, + 182, 98, 118, 86, 1064, 1063, 78, 1065, + 1065, 1066, 1067, 76, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 90, 91, - 956, 1043, 108, 109, 956, 1044, 76, 76, - 124, 76, 121, 87, 90, 87, 88, 89, - 91, 1045, 959, 1045, 1046, 1047, 970, 1038, - 86, 93, 96, 93, 94, 95, 97, 1048, - 888, 1048, 1049, 1050, 974, 1038, 86, 811, - 811, 812, 813, 161, 162, 163, 164, 165, - 161, 162, 163, 164, 165, 814, 815, 1051, - 811, 811, 812, 813, 237, 238, 239, 237, - 238, 239, 814, 815, 1051, 811, 811, 812, - 813, 293, 293, 814, 815, 1051, 811, 811, - 812, 813, 315, 316, 315, 316, 814, 815, - 1051, 811, 811, 812, 813, 741, 340, 741, - 340, 814, 815, 1051, 811, 811, 812, 813, - 383, 384, 383, 384, 814, 815, 1051, 811, - 811, 812, 813, 402, 403, 404, 405, 404, - 405, 814, 815, 1051, 811, 811, 812, 813, - 441, 442, 441, 442, 814, 815, 1051, 811, - 811, 812, 813, 462, 463, 464, 462, 463, - 464, 814, 815, 1051, 811, 811, 812, 813, - 525, 525, 814, 815, 1051, 811, 811, 812, - 813, 542, 542, 814, 815, 1051, 811, 811, - 812, 813, 552, 553, 554, 555, 552, 553, - 554, 555, 814, 815, 1051, 811, 811, 812, - 813, 596, 597, 598, 599, 600, 601, 596, - 597, 598, 599, 600, 601, 814, 815, 1051, - 811, 811, 812, 813, 662, 663, 664, 662, - 663, 664, 814, 815, 1051, 811, 811, 812, - 813, 698, 698, 814, 815, 1051, 811, 811, - 812, 813, 708, 708, 814, 815, 1051, 811, - 811, 812, 813, 721, 721, 814, 815, 1051, - 798, 1053, 797, 1052, 92, 798, 1055, 797, - 1054, 155, 811, 811, 812, 813, 339, 340, - 339, 340, 814, 815, 1051, 99, 1057, 98, - 1056, 155, 1059, 1060, 1061, 1058, 1058, 1058, - 822, 1063, 1062, 1065, 1064, 1067, 1068, 1069, - 1070, 1067, 1067, 1067, 1067, 1066, 1071, 1072, - 1073, 1071, 1074, 1072, 1071, 1071, 1072, 1072, - 1072, 1066, 1075, 1076, 1076, 1075, 1077, 1076, - 1075, 1075, 1076, 1076, 1076, 1066, 1078, 1072, - 1080, 1079, 1081, 1079, 1082, 1083, 1084, 1082, - 1085, 1083, 1082, 1082, 1083, 1083, 1083, 1079, - 1075, 1075, 1075, 1075, 1066, 1086, 1086, 1086, - 1086, 1066, 1089, 1090, 1088, 1088, 1087, 1091, - 1092, 1091, 1094, 1091, 1092, 1093, 1092, 1087, - 1088, 1096, 1088, 1095, 1097, 1095, 1098, 1095, - 1099, 1100, 1099, 1102, 1099, 1100, 1101, 1100, - 1095, 1103, 1103, 1105, 1103, 1106, 1103, 1104, - 1087, 1107, 1107, 1109, 1107, 1110, 1107, 1108, - 1087, 1112, 1112, 1112, 1112, 1111, 1104, 1113, - 1104, 1095, 1114, 1095, 1115, 1095, 1116, 1116, - 1118, 1116, 1119, 1116, 1117, 1095, 1121, 1121, - 1122, 1123, 1124, 1125, 1120, 1121, 1121, 1122, - 1123, 1124, 1125, 1127, 1126, 1129, 1129, 1130, - 1131, 1133, 1134, 1135, 1136, 1137, 1133, 1134, - 1135, 1136, 1137, 1138, 1139, 1138, 1139, 1132, - 1128, 1141, 1141, 1142, 1143, 1144, 1145, 1144, - 1145, 1140, 1147, 1146, 1129, 1129, 1130, 1131, - 1138, 1139, 1138, 1139, 1148, 1128, 1151, 1152, - 1153, 1154, 1155, 1151, 1152, 1153, 1154, 1155, - 1150, 1149, 1156, 1156, 1157, 1158, 1160, 1161, - 1160, 1161, 1159, 1128, 1163, 1162, 1120, 1165, - 1165, 1166, 1167, 1168, 1169, 1164, 1165, 1165, - 1166, 1167, 1170, 1171, 1172, 1170, 1168, 1169, - 1170, 1170, 1170, 1164, 1173, 1174, 1175, 1173, - 1173, 1173, 1173, 1164, 1177, 1177, 1178, 1179, - 1180, 1180, 1181, 1180, 1182, 1183, 1182, 1183, - 1180, 1180, 1180, 1176, 1184, 1184, 1185, 1186, - 1187, 1188, 1187, 1188, 1176, 1190, 1189, 1191, - 1173, 1193, 1192, 1194, 1192, 1195, 1196, 1197, - 1195, 1195, 1195, 1195, 1192, 1177, 1177, 1178, - 1179, 1182, 1183, 1182, 1183, 1176, 1199, 1198, - 1164, 1200, 1200, 1201, 1202, 1203, 1204, 822, - 1200, 1200, 1201, 1202, 1203, 1204, 1205, 1205, - 1205, 1206, 1208, 1208, 1209, 1210, 1211, 1212, - 1211, 1213, 1207, 1215, 1215, 1216, 1217, 1218, - 1219, 1220, 1218, 1221, 1222, 1221, 1223, 1218, - 1218, 1218, 1214, 1225, 1226, 1227, 1225, 1225, - 1225, 1225, 1224, 1228, 1228, 1229, 1230, 1231, - 1231, 1232, 1231, 1233, 1234, 1233, 1234, 1231, - 1231, 1231, 1214, 1235, 1235, 1236, 1237, 1221, - 1222, 1221, 1222, 92, 1239, 1238, 1240, 1225, - 1242, 1241, 1243, 1241, 1244, 1245, 1246, 1244, - 1244, 1244, 1244, 1241, 1228, 1228, 1229, 1230, - 1233, 1234, 1233, 1234, 1214, 1239, 1248, 1238, - 1247, 92, 1249, 1249, 1250, 1251, 1218, 1219, - 1220, 1218, 1252, 1253, 1218, 1218, 1218, 1224, - 1255, 1254, 822, 1257, 1256, 822, 1259, 1259, - 1259, 1259, 1258, 1260, 1260, 1260, 1260, 1258, - 1261, 1262, 1261, 1261, 1261, 1258, 1263, 1264, - 1263, 1263, 1263, 1258, 1264, 1264, 1265, 1266, - 1259, 1267, 1268, 1269, 1269, 1270, 1271, 1259, - 1259, 1259, 1258, 1273, 1272, 1258, 1264, 1258, - 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, - 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, - 1291, 1292, 1275, 1276, 1277, 1278, 1279, 1280, - 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, - 1289, 1290, 1291, 1292, 1274, 1293, 1293, 1294, - 1295, 1296, 1297, 1294, 1295, 1296, 1297, 1293, - 1293, 1274, 1298, 1298, 1274, 1299, 1299, 1274, - 1300, 1300, 1300, 1300, 1274, 1301, 1301, 1274, - 1302, 1302, 1274, 1303, 1303, 1274, 1304, 1304, - 1304, 1304, 1274, 1305, 1305, 1274, 1306, 1306, - 1274, 1307, 1307, 1274, 1308, 1308, 1308, 1308, - 1274, 1309, 1309, 1274, 1310, 1310, 1310, 1310, - 1274, 1311, 1312, 1313, 1314, 1315, 1311, 1312, - 1313, 1314, 1315, 1274, 1316, 1316, 1274, 1317, - 1317, 1317, 1317, 1274, 1318, 1319, 1318, 1319, - 1274, 1320, 1320, 1274, 1321, 1321, 1274, 1322, - 1322, 1274, 1323, 1323, 1274, 1324, 1324, 1324, - 1324, 1274, 1325, 1325, 1325, 1325, 1274, 1326, - 1326, 1274, 1327, 1327, 1274, 1328, 1328, 1328, - 1328, 1274, 1329, 1329, 1274, 1330, 1330, 1274, - 1331, 1331, 1274, 1332, 1332, 1332, 1332, 1274, - 1333, 1333, 1274, 1334, 1334, 1274, 1335, 1335, - 1274, 1336, 1336, 1336, 1336, 1274, 1337, 1338, - 1339, 1337, 1338, 1339, 1274, 1340, 1340, 1274, - 1341, 1341, 1274, 1342, 1342, 1274, 1343, 1343, - 1343, 1343, 1274, 1344, 1345, 1344, 1345, 1274, - 1346, 1346, 1274, 1347, 1347, 1274, 1348, 1348, - 1348, 1348, 1274, 1349, 1349, 1274, 1350, 1350, - 1274, 1351, 1351, 1274, 1352, 1352, 1352, 1352, - 1274, 1353, 1353, 1354, 1354, 1353, 1353, 1274, - 1355, 1355, 1274, 1356, 1356, 1274, 1357, 1357, - 1357, 1357, 1274, 1358, 1358, 1274, 1359, 1359, - 1274, 1360, 1361, 1274, 1362, 1274, 1363, 1363, - 1363, 1363, 1274, 1364, 1274, 1365, 1365, 1365, - 1365, 1274, 1366, 1367, 1366, 1367, 1274, 1368, - 1368, 1274, 1369, 1369, 1274, 1370, 1370, 1274, - 1371, 1371, 1371, 1371, 1274, 1372, 1372, 1274, - 1373, 1373, 1274, 1374, 1374, 1274, 1375, 1375, - 1375, 1375, 1274, 1376, 1376, 1274, 1377, 1377, - 1274, 1378, 1378, 1274, 1379, 1379, 1274, 1380, - 1380, 1274, 1381, 1381, 1274, 1382, 1382, 1274, - 1383, 1383, 1383, 1383, 1274, 1384, 1385, 1384, - 1385, 1274, 1386, 1386, 1274, 1387, 1387, 1387, - 1387, 1274, 1388, 1388, 1388, 1388, 1274, 1389, - 1390, 1391, 1392, 1391, 1392, 1274, 1393, 1274, - 1394, 1394, 1394, 1394, 1274, 1395, 1274, 1396, - 1396, 1396, 1396, 1274, 1397, 1397, 1274, 1398, - 1398, 1398, 1398, 1274, 1399, 1399, 1399, 1399, - 1274, 1400, 1401, 1400, 1401, 1274, 1402, 1402, - 1274, 1403, 1403, 1274, 1404, 1404, 1274, 1405, - 1405, 1405, 1405, 1274, 1406, 1406, 1406, 1406, - 1274, 1407, 1408, 1409, 1407, 1408, 1409, 1274, - 1410, 1410, 1274, 1411, 1411, 1274, 1412, 1412, - 1274, 1413, 1413, 1413, 1413, 1274, 1414, 1414, - 1274, 1415, 1415, 1415, 1415, 1274, 1416, 1416, - 1417, 1417, 1416, 1416, 1274, 1418, 1418, 1274, - 1419, 1420, 1419, 1419, 1419, 1274, 1421, 1421, - 1422, 1422, 1421, 1421, 1274, 1423, 1423, 1274, - 1424, 1424, 1274, 1425, 1425, 1274, 1426, 1426, - 1274, 1427, 1427, 1427, 1427, 1274, 1428, 1428, - 1274, 1429, 1429, 1274, 1430, 1430, 1274, 1431, - 1431, 1274, 1432, 1432, 1274, 1433, 1433, 1274, - 1434, 1434, 1274, 1435, 1435, 1274, 1436, 1436, - 1274, 1437, 1437, 1437, 1437, 1274, 1438, 1438, - 1274, 1439, 1439, 1274, 1440, 1440, 1440, 1440, - 1274, 1441, 1442, 1443, 1444, 1441, 1442, 1443, - 1444, 1274, 1445, 1445, 1274, 1446, 1446, 1274, - 1447, 1447, 1274, 1448, 1448, 1274, 1449, 1449, - 1274, 1450, 1450, 1450, 1450, 1274, 1451, 1451, - 1451, 1451, 1274, 1452, 1452, 1274, 1453, 1453, - 1274, 1454, 1454, 1274, 1455, 1455, 1455, 1455, - 1274, 1456, 1456, 1456, 1456, 1274, 1457, 1458, - 1459, 1460, 1461, 1462, 1457, 1458, 1459, 1460, - 1461, 1462, 1274, 1463, 1463, 1274, 1464, 1464, - 1274, 1465, 1465, 1274, 1466, 1466, 1274, 1467, - 1467, 1467, 1467, 1274, 1468, 1468, 1274, 1469, - 1469, 1469, 1469, 1274, 1470, 1470, 1274, 1471, - 1471, 1471, 1471, 1274, 1472, 1472, 1274, 1473, - 1473, 1473, 1473, 1274, 1474, 1474, 1274, 1475, - 1475, 1274, 1476, 1476, 1274, 1477, 1477, 1477, - 1477, 1274, 1478, 1478, 1274, 1479, 1479, 1274, - 1480, 1480, 1480, 1480, 1274, 1481, 1482, 1483, - 1481, 1482, 1483, 1274, 1484, 1484, 1274, 1485, - 1485, 1274, 1486, 1486, 1486, 1486, 1274, 1487, - 1487, 1274, 1488, 1488, 1488, 1488, 1274, 1489, - 1489, 1274, 1490, 1490, 1274, 1492, 1491, 1493, - 1493, 1493, 1493, 1494, 1491, 1495, 1495, 1274, - 1496, 1496, 1274, 1497, 1497, 1497, 1497, 1274, - 1498, 1498, 1274, 1499, 1499, 1274, 1500, 1500, - 1274, 1501, 1501, 1274, 1502, 1502, 1274, 1503, - 1503, 1503, 1503, 1274, 1504, 1504, 1274, 1505, - 1505, 1274, 1506, 1506, 1274, 1507, 1507, 1274, - 1508, 1508, 1274, 1509, 1509, 1509, 1509, 1274, - 1511, 1511, 1512, 1513, 1514, 1515, 1516, 1516, - 1517, 1518, 1510, 1519, 1519, 1520, 1521, 1522, - 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, - 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, - 1539, 1522, 1523, 1524, 1525, 1526, 1527, 1528, - 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, - 1537, 1538, 1539, 1540, 1541, 1542, 1542, 1543, - 1544, 1510, 1545, 1545, 1546, 1547, 1548, 1549, - 1550, 1551, 1548, 1549, 1550, 1551, 1552, 1553, - 1554, 1554, 1555, 1556, 1510, 1557, 1557, 1510, - 1558, 1558, 1510, 1559, 1559, 1560, 1561, 1562, - 1563, 1564, 1564, 1565, 1566, 1510, 1568, 1567, - 1510, 1569, 1570, 1571, 1572, 1573, 1569, 1570, - 1571, 1572, 1573, 1510, 1574, 1574, 1510, 1575, - 1575, 1576, 1577, 1578, 1579, 1580, 1580, 1581, - 1582, 1510, 1583, 1584, 1583, 1584, 1510, 1585, - 1585, 1510, 1586, 1586, 1510, 1587, 1587, 1510, - 1588, 1588, 1510, 1589, 1589, 1590, 1591, 1592, - 1593, 1594, 1594, 1595, 1596, 1510, 1597, 1597, - 1598, 1599, 1600, 1601, 1602, 1602, 1603, 1604, - 1510, 1605, 1605, 1510, 1606, 1606, 1510, 1607, - 1607, 1608, 1609, 1610, 1611, 1612, 1612, 1613, - 1614, 1510, 1615, 1615, 1510, 1616, 1616, 1510, - 1617, 1617, 1510, 1618, 1618, 1619, 1620, 1621, - 1622, 1623, 1623, 1624, 1625, 1510, 1626, 1626, - 1510, 1627, 1627, 1510, 1628, 1628, 1510, 1629, - 1629, 1630, 1631, 1632, 1633, 1634, 1634, 1635, - 1636, 1510, 1637, 1638, 1639, 1637, 1638, 1639, - 1510, 1640, 1640, 1510, 1641, 1641, 1510, 1642, - 1642, 1510, 1643, 1643, 1644, 1645, 1646, 1647, - 1648, 1648, 1649, 1650, 1510, 1651, 1652, 1651, - 1652, 1510, 1653, 1653, 1510, 1654, 1654, 1510, - 1655, 1655, 1656, 1657, 1658, 1659, 1660, 1660, - 1661, 1662, 1510, 1663, 1663, 1510, 1664, 1664, - 1510, 1665, 1665, 1510, 1666, 1666, 1667, 1668, - 1669, 1670, 1671, 1671, 1672, 1673, 1510, 1674, - 1674, 1675, 1676, 1677, 1677, 1678, 1679, 1680, - 1680, 1681, 1682, 1510, 1683, 1683, 1510, 1684, - 1684, 1510, 1685, 1685, 1686, 1687, 1688, 1689, - 1690, 1690, 1691, 1692, 1510, 1693, 1693, 1510, - 1694, 1694, 1510, 1695, 1696, 1510, 1697, 1510, - 1698, 1698, 1699, 1700, 1701, 1702, 1703, 1703, - 1704, 1705, 1510, 1706, 1510, 1707, 1707, 1708, - 1709, 1710, 1711, 1712, 1712, 1713, 1714, 1510, - 1715, 1716, 1715, 1716, 1510, 1717, 1717, 1510, - 1718, 1718, 1510, 1719, 1719, 1510, 1720, 1720, - 1721, 1722, 1723, 1724, 1725, 1725, 1726, 1727, - 1510, 1728, 1728, 1510, 1729, 1729, 1510, 1730, - 1730, 1510, 1731, 1731, 1732, 1733, 1734, 1735, - 1736, 1736, 1737, 1738, 1510, 1739, 1739, 1510, - 1740, 1740, 1510, 1741, 1741, 1510, 1742, 1742, - 1510, 1743, 1743, 1510, 1744, 1744, 1510, 1745, - 1745, 1510, 1746, 1746, 1747, 1748, 1749, 1750, - 1751, 1751, 1752, 1753, 1510, 1754, 1755, 1754, - 1755, 1510, 1756, 1756, 1510, 1757, 1757, 1758, - 1759, 1760, 1761, 1762, 1762, 1763, 1764, 1510, - 1765, 1765, 1766, 1767, 1768, 1769, 1770, 1770, - 1771, 1772, 1510, 1773, 1774, 1775, 1776, 1775, - 1776, 1510, 1777, 1510, 1778, 1778, 1779, 1780, - 1781, 1782, 1783, 1783, 1784, 1785, 1510, 1786, - 1510, 1787, 1787, 1788, 1789, 1790, 1791, 1792, - 1792, 1793, 1794, 1510, 1795, 1795, 1510, 1796, - 1796, 1797, 1798, 1799, 1800, 1801, 1801, 1802, - 1803, 1510, 1804, 1804, 1805, 1806, 1807, 1808, - 1809, 1809, 1810, 1811, 1510, 1812, 1813, 1812, - 1813, 1510, 1814, 1814, 1510, 1815, 1815, 1510, - 1816, 1816, 1510, 1817, 1817, 1818, 1819, 1820, - 1821, 1822, 1822, 1823, 1824, 1510, 1825, 1825, - 1826, 1827, 1828, 1829, 1830, 1830, 1831, 1832, - 1510, 1833, 1834, 1835, 1833, 1834, 1835, 1510, - 1836, 1836, 1510, 1837, 1837, 1510, 1838, 1838, - 1510, 1839, 1839, 1840, 1841, 1842, 1843, 1844, - 1844, 1845, 1846, 1510, 1847, 1847, 1510, 1848, - 1848, 1849, 1850, 1851, 1852, 1853, 1853, 1854, - 1855, 1510, 1856, 1856, 1857, 1858, 1859, 1859, - 1860, 1861, 1862, 1862, 1863, 1864, 1510, 1865, - 1865, 1510, 1866, 1866, 1867, 1868, 1869, 1870, - 1871, 1872, 1872, 1873, 1874, 1510, 1875, 1875, - 1876, 1877, 1878, 1878, 1879, 1880, 1881, 1881, - 1882, 1883, 1510, 1884, 1884, 1510, 1885, 1885, - 1510, 1886, 1886, 1510, 1887, 1887, 1510, 1888, - 1888, 1889, 1890, 1891, 1892, 1893, 1893, 1894, - 1895, 1510, 1896, 1896, 1510, 1897, 1897, 1510, - 1898, 1898, 1510, 1899, 1899, 1510, 1900, 1900, - 1510, 1901, 1901, 1510, 1902, 1902, 1510, 1903, - 1903, 1510, 1904, 1904, 1510, 1905, 1905, 1906, - 1907, 1908, 1909, 1910, 1910, 1911, 1912, 1510, - 1913, 1913, 1510, 1914, 1914, 1510, 1915, 1915, - 1916, 1917, 1918, 1919, 1920, 1920, 1921, 1922, - 1510, 1923, 1924, 1925, 1926, 1923, 1924, 1925, - 1926, 1510, 1927, 1927, 1510, 1928, 1928, 1510, - 1929, 1929, 1510, 1930, 1930, 1510, 1931, 1931, - 1510, 1932, 1932, 1933, 1934, 1935, 1936, 1937, - 1937, 1938, 1939, 1510, 1940, 1940, 1941, 1942, - 1943, 1944, 1945, 1945, 1946, 1947, 1510, 1948, - 1948, 1510, 1949, 1949, 1510, 1950, 1950, 1510, - 1951, 1951, 1952, 1953, 1954, 1955, 1956, 1956, - 1957, 1958, 1510, 1959, 1959, 1960, 1961, 1962, - 1963, 1964, 1964, 1965, 1966, 1510, 1967, 1968, - 1969, 1970, 1971, 1972, 1967, 1968, 1969, 1970, - 1971, 1972, 1510, 1973, 1973, 1510, 1974, 1974, - 1510, 1975, 1975, 1510, 1976, 1976, 1510, 1977, - 1977, 1978, 1979, 1980, 1981, 1982, 1982, 1983, - 1984, 1510, 1985, 1985, 1510, 1986, 1986, 1987, - 1988, 1989, 1990, 1991, 1991, 1992, 1993, 1510, - 1994, 1994, 1510, 1995, 1995, 1996, 1997, 1998, - 1999, 2000, 2000, 2001, 2002, 1510, 2003, 2003, - 1510, 2004, 2004, 2005, 2006, 2007, 2008, 2009, - 2009, 2010, 2011, 1510, 2012, 2012, 1510, 2013, - 2013, 1510, 2014, 2014, 1510, 2015, 2015, 2016, - 2017, 2018, 2019, 2020, 2020, 2021, 2022, 1510, - 2023, 2023, 1510, 2024, 2024, 1510, 2025, 2025, - 2026, 2027, 2028, 2029, 2030, 2030, 2031, 2032, - 1510, 2033, 2034, 2035, 2033, 2034, 2035, 1510, - 2036, 2036, 1510, 2037, 2037, 1510, 2038, 2038, - 2039, 2040, 2041, 2042, 2043, 2043, 2044, 2045, - 1510, 2046, 2046, 1510, 2047, 2047, 2048, 2049, - 2050, 2051, 2052, 2052, 2053, 2054, 1510, 2055, - 2055, 1510, 2056, 2056, 1510, 2057, 1510, 2058, - 2058, 2059, 2060, 2062, 2063, 2064, 2064, 2065, - 2066, 2061, 1510, 2067, 2067, 1510, 2068, 2068, - 1510, 2069, 2069, 2070, 2071, 2072, 2073, 2074, - 2074, 2075, 2076, 1510, 2077, 2077, 1510, 2078, - 2078, 1510, 2079, 2079, 1510, 2080, 2080, 1510, - 2081, 2081, 1510, 2082, 2082, 2083, 2084, 2085, - 2086, 2087, 2087, 2088, 2089, 1510, 2090, 2090, - 1510, 2091, 2091, 1510, 2092, 2092, 1510, 2093, - 2093, 1510, 2094, 2094, 1510, 2095, 2095, 2096, - 2097, 2098, 2099, 2100, 2100, 2101, 2102, 1510, - 2103, 2103, 1510, 2104, 2104, 1510, 2105, 2105, - 1510, 2106, 2106, 2107, 2108, 2109, 2110, 2111, - 2111, 2112, 2113, 1510, 2114, 2114, 1510, 2115, - 2115, 1510, 2116, 2116, 1510, 2117, 2117, 2118, - 2119, 2120, 2121, 2122, 2122, 2123, 2124, 1510, - 2125, 2125, 1510, 2126, 2126, 2127, 2128, 2129, - 2130, 2131, 2131, 2132, 2133, 1510, 2135, 2135, - 2136, 2137, 2138, 2139, 2134, 2135, 2135, 2136, - 2137, 2138, 2139, 2141, 2140, 2142, 2142, 2143, - 2144, 2146, 2147, 2145, 2140, 2149, 2149, 2150, - 2151, 2153, 2154, 2152, 2152, 2152, 2148, 2155, - 2155, 2155, 2148, 2156, 2156, 2157, 2158, 2159, - 2160, 2161, 2161, 2162, 2163, 2152, 2152, 2152, - 2148, 2165, 2164, 2148, 2167, 2166, 2134, 2169, - 2168, 2134, 2170, 2170, 2171, 2172, 2173, 2174, - 2134, 2170, 2170, 2171, 2172, 2175, 2173, 2174, - 2176, 2140, 2177, 2177, 2178, 2179, 2181, 2181, - 2182, 2183, 2180, 2140, 2184, 2184, 2185, 2186, - 2188, 2189, 2187, 2187, 2187, 2148, 2190, 2190, - 2190, 2148, 2191, 2191, 2192, 2193, 2194, 2195, - 2196, 2196, 2197, 2198, 2187, 2187, 2187, 2148, - 2200, 2199, 2148, 2202, 2201, 2134, 2203, 2203, - 2204, 2205, 2206, 2207, 2180, 2140, 2209, 2208, - 2134, 2211, 2212, 2213, 2214, 2215, 2216, 2217, - 2218, 2210, 2219, 2210, 2220, 2210, 2221, 2210, - 2222, 2222, 2222, 2222, 2222, 2222, 2210, 2223, - 2210, 2224, 2210, 2225, 2210, 2226, 2210, 2227, - 2210, 2228, 2210, 2229, 2229, 2229, 2229, 2229, - 2229, 2210, 2230, 2210, 2231, 2210, 2232, 2232, - 2232, 2232, 2232, 2232, 2210, 2233, 2210, 2234, - 2210, 2235, 2236, 2210, 2237, 2210, 2238, 2210, - 2239, 2210, 2240, 2210, 2241, 2241, 2241, 2241, - 2241, 2241, 2210, 2242, 2210, 2243, 2210, 2244, - 2210, 2245, 2210, 2246, 2246, 2246, 2246, 2246, - 2246, 2210, 2247, 2210, 2248, 2210, 2250, 2249, - 2251, 2251, 2251, 2251, 2251, 2251, 2252, 2249, - 2253, 2210, 2254, 2210, 2255, 2210, 2256, 2210, - 2257, 2210, 2258, 2210, 2259, 2210, 2260, 2210, - 2261, 2210, 2262, 2210, 2263, 2210, 2264, 2210, - 2265, 2210, 2266, 2210, 2267, 2267, 2267, 2267, - 2267, 2267, 2210, 2268, 2210, 2269, 2210, 2270, - 2210, 2271, 2210, 2272, 2272, 2272, 2272, 2272, - 2272, 2210, 2273, 2210, 2274, 2210, 2275, 2210, - 2276, 2276, 2276, 2276, 2276, 2276, 2210, 2278, - 2278, 2279, 2280, 2281, 2282, 2283, 2283, 2284, - 2285, 2277, 2286, 2286, 2287, 2288, 2289, 2290, - 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, - 2299, 2300, 2300, 2301, 2302, 2277, 2303, 2277, - 2304, 2277, 2305, 2277, 2306, 2277, 2277, 2308, - 2277, 2277, 2277, 2307, 2309, 2309, 2310, 2311, - 2312, 2313, 2314, 2314, 2315, 2316, 2277, 2318, - 2317, 2277, 2319, 2277, 2320, 2277, 2321, 2277, - 2322, 2277, 2323, 2277, 2324, 2277, 2325, 2277, - 2277, 2327, 2277, 2277, 2277, 2326, 2328, 2328, - 2329, 2330, 2331, 2332, 2333, 2333, 2334, 2335, - 2277, 2328, 2328, 2329, 2330, 2331, 2332, 2333, - 2333, 2334, 2335, 2336, 2336, 2336, 2277, 2337, - 2277, 2338, 2338, 2339, 2340, 2341, 2342, 2343, - 2343, 2344, 2345, 2277, 2346, 2277, 2347, 2277, - 2348, 2277, 2349, 2350, 2350, 2350, 2350, 2277, - 2351, 2351, 2351, 2351, 2277, 2352, 2352, 2352, - 2352, 2277, 2353, 2354, 2353, 2353, 2353, 2277, - 2355, 2356, 2355, 2355, 2355, 2277, 2337, 2357, - 2357, 2357, 2357, 2277, 2356, 2277, 2358, 2358, - 2358, 2358, 2277, 2359, 2360, 2359, 2359, 2359, - 2277, 2361, 2362, 2361, 2361, 2361, 2277, 2328, - 2328, 2329, 2330, 2363, 2331, 2332, 2333, 2333, - 2334, 2335, 2363, 2363, 2363, 2277, 2362, 2277, - 2364, 2277, 2365, 2277, 2366, 2367, 2277, 2368, - 2277, 2369, 2277, 2370, 2277, 2371, 2277, 2372, - 2277, 2374, 2375, 2375, 2373, 2376, 2376, 2373, - 2377, 2378, 2379, 2379, 2373, 2380, 2380, 2373, - 2381, 2381, 2382, 2383, 2384, 2385, 2386, 2387, - 2388, 2388, 2389, 2390, 2385, 2373, 2391, 2391, - 2373, 2392, 2277, 2393, 2277, 2394, 2277, 2395, - 2277, 2396, 2277, 2397, 2398, 2398, 2398, 2398, - 2373, 2399, 2399, 2399, 2399, 2373, 2400, 2401, - 2402, 2402, 2402, 2402, 2373, 2403, 2403, 2403, - 2403, 2373, 2404, 2404, 2405, 2406, 2407, 2408, - 2409, 2410, 2411, 2411, 2412, 2413, 2408, 2408, - 2408, 2373, 2414, 2414, 2414, 2414, 2373, 2415, - 2277, 2416, 2277, 2418, 2417, 2419, 2419, 2420, - 2421, 2423, 2424, 2425, 2426, 2426, 2427, 2428, - 2422, 2417, 2277, 2277, 2277, 2277, 2326, 2429, - 2277, 2430, 2277, 2431, 2277, 2432, 2277, 2433, - 2277, 2434, 2277, 2435, 2277, 2436, 2277, 2437, - 2277, 2438, 2439, 2439, 2277, 2440, 2440, 2277, - 2441, 2442, 2277, 2443, 2443, 2277, 2444, 2444, - 2445, 2446, 2447, 2448, 2449, 2450, 2450, 2451, - 2452, 2277, 2453, 2453, 2277, 2454, 2277, 2455, - 2277, 2456, 2277, 2457, 2277, 2458, 2277, 2459, - 2277, 2460, 2277, 2461, 2277, 2462, 2277, 2463, - 2277, 2464, 2277, 2465, 2277, 2466, 2277, 2467, - 2277, 2468, 2468, 2469, 2470, 2471, 2472, 2473, - 2473, 2474, 2475, 2277, 2476, 2277, 2477, 2277, - 2478, 2277, 2479, 2277, 2480, 2480, 2481, 2482, - 2483, 2484, 2485, 2485, 2486, 2487, 2277, 2488, - 2277, 2489, 2277, 2490, 2277, 2491, 2277, 2492, - 2493, 2417, 2494, 2417, 2495, 2496, 2417, 2497, - 2497, 2498, 2499, 2501, 2502, 2503, 2503, 2504, - 2505, 2500, 2417, 2309, 2309, 2310, 2311, 2312, - 2313, 2314, 2314, 2315, 2316, 2506, 2506, 2506, - 2277, 2507, 2277, 2510, 2511, 2512, 2513, 2514, - 2510, 2511, 2512, 2513, 2514, 2509, 2508, 2515, - 2515, 2515, 2515, 2516, 2508, 2517, 2518, 2517, - 2518, 2508, 2519, 2519, 2519, 2519, 2508, 2520, - 2520, 2508, 2521, 2522, 2521, 2521, 2521, 2508, - 2523, 2523, 2508, 2524, 2524, 2508, 2525, 2525, - 2508, 2526, 2526, 2508, 2527, 2508, 2528, 2508, - 2529, 2529, 2508, 2530, 2530, 2508, 2531, 2531, - 2508, 2532, 2508, 2533, 2533, 2533, 2533, 2508, - 2534, 2535, 2534, 2535, 2508, 2536, 2537, 2536, - 2537, 2508, 2538, 2508, 2539, 2539, 2508, 2540, - 2540, 2508, 2541, 2541, 2508, 2542, 2542, 2508, - 2543, 2543, 2543, 2543, 2508, 2544, 2544, 2508, - 2545, 2545, 2508, 2546, 2546, 2508, 2547, 2548, - 2508, 2549, 2508, 2550, 2508, 2551, 2551, 2508, - 2552, 2552, 2508, 2553, 2553, 2508, 2554, 2508, - 2555, 2508, 2556, 2508, 2557, 2557, 2557, 2557, - 2508, 2558, 2508, 2559, 2508, 2560, 2560, 2508, - 2561, 2561, 2508, 2562, 2562, 2508, 2563, 2508, - 2564, 2508, 2565, 2508, 2566, 2566, 2566, 2566, - 2508, 2567, 2568, 2508, 2569, 2508, 2570, 2508, - 2571, 2508, 2572, 2508, 2573, 2573, 2573, 2573, - 2508, 2574, 2508, 2575, 2508, 2576, 2576, 2576, - 2576, 2508, 2577, 2577, 2508, 2578, 2578, 2508, - 2579, 2579, 2508, 2580, 2580, 2508, 2581, 2581, - 2508, 2582, 2582, 2508, 2583, 2583, 2508, 2584, - 2584, 2584, 2584, 2508, 2585, 2585, 2508, 2586, - 2586, 2508, 2587, 2587, 2508, 2588, 2588, 2508, - 2589, 2589, 2508, 2590, 2590, 2508, 2591, 2592, - 2591, 2592, 2508, 2593, 2593, 2508, 2594, 2594, - 2508, 2595, 2595, 2595, 2595, 2508, 2596, 2596, - 2508, 2597, 2597, 2508, 2598, 2598, 2598, 2598, - 2508, 2599, 2599, 2508, 2600, 2600, 2508, 2601, - 2602, 2601, 2602, 2508, 2603, 2603, 2508, 2604, - 2508, 2605, 2605, 2605, 2605, 2508, 2606, 2606, - 2508, 2607, 2607, 2508, 2608, 2609, 2610, 2508, - 2611, 2612, 2611, 2611, 2611, 2508, 2613, 2613, - 2508, 2614, 2614, 2508, 2615, 2615, 2508, 2616, - 2616, 2508, 2617, 2508, 2618, 2508, 2619, 2619, - 2508, 2620, 2620, 2508, 2621, 2621, 2508, 2622, - 2508, 2623, 2623, 2623, 2623, 2508, 2624, 2508, - 2625, 2508, 2626, 2626, 2626, 2626, 2508, 2627, - 2508, 2628, 2508, 2629, 2629, 2629, 2629, 2508, - 2632, 2633, 2634, 2635, 2636, 2637, 2632, 2633, - 2634, 2635, 2636, 2637, 2631, 2630, 2638, 2638, - 2638, 2638, 2639, 2630, 2640, 2640, 2630, 2641, - 2641, 2630, 2642, 2642, 2630, 2643, 2643, 2630, - 2644, 2644, 2630, 2645, 2645, 2645, 2645, 2630, - 2646, 2647, 2648, 2646, 2647, 2648, 2630, 2649, - 2649, 2630, 2650, 2650, 2630, 2651, 2651, 2630, - 2652, 2652, 2630, 2653, 2653, 2630, 2654, 2654, - 2654, 2654, 2630, 2655, 2656, 2655, 2656, 2630, - 2657, 2657, 2630, 2658, 2658, 2658, 2658, 2630, - 2659, 2659, 2630, 2660, 2660, 2630, 2661, 2661, - 2661, 2661, 2630, 2662, 2662, 2630, 2663, 2663, - 2630, 2664, 2664, 2630, 2665, 2665, 2665, 2665, - 2630, 2666, 2666, 2630, 2667, 2667, 2630, 2668, - 2668, 2668, 2668, 2630, 2669, 2670, 2669, 2670, - 2630, 2671, 2671, 2630, 2672, 2672, 2672, 2672, - 2630, 2673, 2673, 2630, 2674, 2674, 2630, 2675, - 2675, 2675, 2675, 2630, 2676, 2676, 2630, 2677, - 2677, 2630, 2678, 2678, 2630, 2679, 2679, 2679, - 2679, 2630, 2680, 2680, 2630, 2681, 2681, 2630, - 2682, 2682, 2682, 2682, 2630, 2685, 2685, 2684, - 2683, 2686, 2686, 2686, 2686, 2687, 2683, 2688, - 2688, 2683, 2689, 2689, 2683, 2690, 2690, 2683, - 2691, 2691, 2683, 2692, 2692, 2683, 2693, 2693, - 2693, 2693, 2683, 2695, 2695, 2694, 2696, 2697, - 2696, 2696, 2696, 2697, 2694, 2698, 2698, 2698, - 2698, 2698, 2698, 78, 2699, 2699, 2699, 2699, - 78, 2700, 2700, 2700, 2700, 2700, 2700, 78, - 2701, 2701, 2702, 2703, 2704, 2705, 78, 2706, - 2706, 2707, 2708, 2709, 2709, 2709, 2710, 2711, - 2709, 2709, 2709, 78, 2712, 2712, 2713, 2714, - 2715, 2716, 78, 2718, 2718, 2719, 2720, 2722, - 2723, 2721, 2717, 2724, 2724, 2725, 2726, 2728, - 2729, 2727, 2717, 2730, 2730, 2731, 2732, 2734, - 2735, 2733, 2717, 2737, 2737, 2738, 2739, 2741, - 2742, 2743, 2744, 2745, 2741, 2742, 2743, 2744, - 2745, 2746, 2747, 2740, 2736, 2748, 2748, 2749, - 2750, 2752, 2753, 2751, 2717, 2754, 2754, 2755, - 2756, 2758, 2759, 2760, 2761, 2762, 2758, 2759, - 2760, 2761, 2762, 2763, 2764, 2757, 2736, 2765, - 2765, 2766, 2767, 2769, 2770, 2768, 2717, 2771, - 2771, 2772, 2773, 2775, 2776, 2777, 2778, 2779, - 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2774, - 2736, 2782, 2782, 2783, 2784, 2786, 2787, 2785, - 2717, 2788, 2788, 2790, 2791, 2792, 2793, 2794, - 2790, 2791, 2792, 2793, 2794, 2788, 2788, 2789, - 2736, 2788, 2788, 2788, 2788, 2795, 2736, 2797, - 2798, 2799, 2800, 2801, 2797, 2798, 2799, 2800, - 2801, 2796, 2736, 2802, 2802, 2802, 2802, 2803, - 2736, 2805, 2804, 78, 2771, 2771, 2772, 2773, - 2780, 2781, 2806, 2736, 2808, 2809, 2810, 2811, - 2812, 2808, 2809, 2810, 2811, 2812, 2807, 2736, - 2813, 2813, 2814, 2815, 2817, 2818, 2816, 2736, - 2820, 2819, 78, 2754, 2754, 2755, 2756, 2763, - 2764, 2821, 2736, 2823, 2824, 2825, 2826, 2827, - 2823, 2824, 2825, 2826, 2827, 2822, 2736, 2828, - 2828, 2829, 2830, 2832, 2833, 2831, 2736, 2835, - 2834, 78, 2737, 2737, 2738, 2739, 2746, 2747, - 2836, 2736, 2838, 2839, 2840, 2841, 2842, 2838, - 2839, 2840, 2841, 2842, 2837, 2736, 2843, 2843, - 2844, 2845, 2847, 2848, 2846, 2736, 2850, 2849, - 78, 2852, 2851, 78, 2854, 2853, 78, 78, - 78, 78, 78, 2855, 2856, 2856, 2857, 2858, - 2859, 2860, 78, 2862, 2862, 2863, 2864, 2865, - 2866, 2861, 2861, 2861, 78, 2867, 2867, 2867, - 2867, 78, 2869, 2868, 78, 2870, 2870, 2870, - 2870, 2870, 2870, 78, 2871, 2871, 2872, 2873, - 2874, 2875, 78, 2876, 2876, 2877, 2878, 2879, - 2879, 2879, 2880, 2881, 2879, 2879, 2879, 78, - 2882, 2882, 2882, 2882, 78, 2884, 2883, 78, - 2885, 2717, 2886, 2886, 2887, 2888, 2890, 2891, - 2889, 2717, 2892, 2892, 2893, 2894, 2895, 2895, - 2895, 2896, 2897, 2895, 2895, 2895, 78, 2898, - 2898, 2898, 2898, 78, 2900, 2899, 78, 2902, - 2902, 2902, 2902, 2901, 2903, 2903, 2904, 2905, - 2906, 2907, 2908, 2908, 2909, 2910, 2902, 2912, - 2912, 2913, 2914, 2915, 2916, 2917, 2917, 2918, - 2919, 2911, 2911, 2911, 2902, 2921, 2920, 2902, - 2922, 2922, 2922, 2922, 2694, 2923, 2924, 2923, - 2923, 2923, 2924, 2924, 2924, 2694, 2926, 2925, - 2927, 2927, 2928, 2929, 2931, 2932, 2930, 2925, - 2933, 2933, 2934, 2935, 2937, 2938, 2939, 2940, - 2936, 2925, 2941, 2941, 2942, 2943, 2945, 2946, - 2944, 2925, 2947, 2947, 2948, 2949, 2937, 2938, - 2951, 2952, 2950, 2925, 2953, 2953, 2954, 2955, - 2956, 2958, 2959, 2957, 2925, 2960, 2960, 2961, - 2962, 2937, 2938, 2963, 2964, 2925, 2965, 2965, - 2966, 2967, 2968, 2969, 2925, 2965, 2965, 2966, - 2967, 2968, 2969, 2970, 2925, 2971, 2971, 2972, - 2973, 2975, 2976, 2974, 2925, 2977, 2977, 2978, - 2979, 2981, 2982, 2983, 2984, 2980, 2925, 2985, - 2985, 2986, 2987, 2989, 2990, 2988, 2925, 2991, - 2991, 2992, 2993, 2981, 2982, 2995, 2996, 2994, - 2925, 2997, 2997, 2998, 2999, 3000, 3002, 3003, - 3001, 2925, 3004, 3004, 3005, 3006, 2981, 2982, - 3007, 3008, 2925, 3009, 3009, 3010, 3011, 3012, - 3013, 2925, 3009, 3009, 3010, 3011, 3014, 3012, - 3013, 3015, 2925, 3016, 2925, 3017, 3017, 3018, - 3019, 3020, 3022, 3023, 3024, 3025, 3025, 3026, - 3027, 3021, 2925, 3028, 3028, 3029, 3030, 3032, - 3033, 3034, 3034, 3035, 3036, 3031, 2925, 3037, - 3037, 3038, 3039, 3040, 3042, 3043, 3044, 3045, - 3045, 3046, 3047, 3041, 2925, 3048, 3048, 3049, - 3050, 3052, 3053, 3034, 3034, 3054, 3055, 3051, - 2925, 3056, 3056, 3057, 3058, 3059, 3061, 3062, - 3063, 3064, 3064, 3065, 3066, 3060, 2925, 3067, - 3067, 3068, 3069, 3071, 3072, 3034, 3034, 3073, - 3074, 3070, 2925, 3075, 3075, 3076, 3077, 3078, - 3075, 3080, 3081, 3082, 3082, 3083, 3084, 3079, - 2925, 3085, 3085, 3086, 3087, 3088, 3089, 3034, - 3034, 3090, 3091, 2925, 3093, 3092, 2925, 3094, - 3094, 3095, 3096, 3094, 3098, 3099, 3100, 3100, - 3101, 3102, 3097, 2925, 3075, 3075, 3076, 3077, - 3075, 3080, 3081, 3082, 3082, 3083, 3084, 3103, - 2925, 3105, 3104, 2925, 3106, 3106, 3107, 3108, - 3110, 3111, 3112, 3113, 3113, 3114, 3115, 3109, - 2925, 3056, 3056, 3057, 3058, 3061, 3062, 3063, - 3064, 3064, 3065, 3066, 3116, 2925, 3067, 3067, - 3068, 3069, 3071, 3072, 3034, 3034, 3073, 3074, - 2925, 3118, 3117, 2925, 3119, 3119, 3120, 3121, - 3123, 3124, 3125, 3126, 3126, 3127, 3128, 3122, - 2925, 3037, 3037, 3038, 3039, 3042, 3043, 3044, - 3045, 3045, 3046, 3047, 3129, 2925, 3048, 3048, - 3049, 3050, 3052, 3053, 3034, 3034, 3054, 3055, - 2925, 3131, 3130, 2925, 3132, 3132, 3133, 3134, - 3136, 3137, 3138, 3139, 3139, 3140, 3141, 3135, - 2925, 3017, 3017, 3018, 3019, 3022, 3023, 3024, - 3025, 3025, 3026, 3027, 3142, 2925, 3028, 3028, - 3029, 3030, 3032, 3033, 3034, 3034, 3035, 3036, - 2925, 3144, 3143, 2925, 3145, 3145, 3146, 3147, - 3148, 3149, 2925, 3151, 3150, 2925, 3152, 3152, - 3153, 3154, 3156, 3157, 3155, 2925, 2997, 2997, - 2998, 2999, 3002, 3003, 3158, 2925, 3160, 3159, - 2925, 3162, 3161, 2925, 3164, 3163, 2925, 3165, - 3165, 3166, 3167, 3168, 3169, 2925, 3171, 3170, - 2925, 3172, 3172, 3173, 3174, 3176, 3177, 3175, - 2925, 2953, 2953, 2954, 2955, 2958, 2959, 3178, - 2925, 3180, 3179, 2925, 3182, 3181, 2925, 3183, - 2717, 3184, 3184, 3185, 3186, 3188, 3189, 3187, - 2717, 3190, 3190, 3191, 3192, 3194, 3195, 3193, - 2717, 3196, 3196, 3197, 3198, 3200, 3201, 3199, - 2717, 3202, 3202, 3203, 3204, 3206, 3207, 3205, - 2717, 3208, 3208, 3209, 3210, 3212, 3213, 3211, - 2717, 3214, 3214, 3215, 3216, 3217, 3217, 3217, - 3218, 3219, 3217, 3217, 3217, 78, 3220, 3220, - 3220, 3220, 78, 3222, 3221, 78, 3224, 3223, - 78, 3226, 3225, 78, 3227, 2717, 3228, 3228, - 3229, 3230, 3232, 3233, 3231, 2717, 3234, 3234, - 3235, 3236, 3238, 3239, 3237, 2717, 3240, 3240, - 3241, 3242, 3244, 3245, 3243, 2717, 3247, 3247, - 3248, 3249, 3250, 3251, 3246, 3246, 3246, 78, - 3252, 3252, 3253, 3254, 3255, 3256, 78, 3258, - 3258, 3259, 3260, 3261, 3262, 3257, 3257, 3257, - 78, 3263, 3263, 3264, 3265, 3266, 3267, 78, - 3269, 3269, 3270, 3271, 3272, 3273, 3268, 3268, - 3268, 78, 3274, 3274, 3275, 3276, 3277, 3278, - 78, 3279, 3279, 3280, 3281, 3282, 3282, 3282, - 3283, 3284, 3282, 3282, 3282, 78, 3285, 3285, - 3285, 3285, 78, 3287, 3286, 78, 3289, 3288, - 78, 3291, 3290, 78, 3293, 3292, 78, 3295, - 3294, 78, 3296, 3296, 3296, 78, 3297, 3297, - 3298, 3299, 3300, 3301, 78, 3297, 3297, 3298, - 3299, 3300, 3301, 3302, 2717, 3303, 3303, 3304, - 3305, 3307, 3308, 3306, 2717, 3309, 3309, 3310, - 3311, 3313, 3314, 3312, 3312, 3312, 78, 3315, - 3315, 3316, 3317, 3318, 3319, 78, 3315, 3315, - 3316, 3317, 3320, 3318, 3319, 3320, 3320, 3320, - 78, 3321, 3321, 78, 3323, 3322, 78, 3325, - 3324, 78, 3327, 3326, 78, 3329, 3329, 3330, - 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3337, - 3338, 3339, 3328, 3340, 3341, 3328, 3342, 3328, - 3344, 3344, 3343, 3346, 3345, 3343, 3347, 3328, - 3348, 3348, 3349, 3350, 3352, 3353, 3354, 3354, - 3355, 3356, 3351, 3328, 3358, 3357, 78, 3359, - 3328, 3360, 3360, 3360, 3360, 3343, 3362, 3361, - 3361, 3361, 3343, 3363, 2717, 3364, 3364, 3365, - 3366, 3368, 3369, 3367, 2717, 3370, 3370, 3371, - 3372, 3374, 3375, 3373, 3373, 3373, 78, 3376, - 3376, 3377, 3378, 3379, 3380, 78, 3376, 3376, - 3377, 3378, 3379, 3380, 3381, 2717, 3382, 3382, - 3383, 3384, 3386, 3387, 3385, 2717, 3389, 3389, - 3390, 3391, 3393, 3394, 3392, 3392, 3392, 3388, - 3395, 3395, 3395, 3388, 3396, 3396, 3397, 3398, - 3399, 3400, 3401, 3401, 3402, 3403, 3392, 3392, - 3392, 3388, 3405, 3404, 3388, 3407, 3406, 78, - 3409, 3408, 78, 3411, 3410, 78, 3412, 2717, - 3413, 3413, 3414, 3415, 3417, 3418, 3416, 2717, - 3419, 3419, 3420, 3421, 3423, 3424, 3422, 2717, - 3425, 3425, 3426, 3427, 3429, 3430, 3428, 2717, - 3431, 3431, 3432, 3433, 3435, 3436, 3434, 3434, - 3434, 3388, 3437, 3437, 3437, 3388, 3438, 3438, - 3439, 3440, 3441, 3442, 3443, 3443, 3444, 3445, - 3434, 3434, 3434, 3388, 3447, 3446, 3388, 3449, - 3448, 78, 3451, 3450, 78, 3452, 2717, 3453, - 3453, 3454, 3455, 3457, 3458, 3456, 2717, 3460, - 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, - 3468, 3459, 3469, 3469, 3470, 3471, 3472, 3473, - 3459, 3469, 3469, 3470, 3471, 3472, 3473, 3475, - 3474, 3476, 3476, 3477, 3478, 3480, 3481, 3479, - 3474, 3482, 3482, 3483, 3484, 3485, 3486, 3487, - 3459, 3489, 3489, 3490, 3491, 3492, 3492, 3493, - 3494, 3495, 3495, 3496, 3497, 3498, 3498, 3498, - 3498, 3499, 3500, 3498, 3498, 3501, 3502, 3503, - 3504, 3498, 3498, 3505, 3506, 3507, 3508, 3498, - 3498, 3509, 3510, 3488, 3489, 3489, 3490, 3491, - 3512, 3499, 3500, 3512, 3512, 3512, 3511, 3498, - 3498, 3511, 3514, 3513, 3511, 3492, 3492, 3493, - 3494, 3498, 3498, 3498, 3498, 3503, 3504, 3498, - 3498, 3505, 3506, 3511, 3516, 3515, 3511, 3512, - 3489, 3489, 3490, 3491, 3492, 3492, 3493, 3494, - 3495, 3495, 3496, 3497, 3498, 3498, 3498, 3498, - 3499, 3500, 3498, 3498, 3501, 3502, 3503, 3504, - 3498, 3498, 3505, 3506, 3507, 3508, 3498, 3498, - 3509, 3510, 3512, 3512, 3512, 3511, 3514, 3516, - 3518, 3513, 3515, 3517, 3511, 3520, 3519, 3459, - 3522, 3521, 3459, 3523, 3523, 3524, 3525, 3526, - 3527, 3459, 3523, 3523, 3524, 3525, 3526, 3527, - 3528, 3474, 3529, 3529, 3530, 3531, 3533, 3534, - 3532, 3474, 3536, 3536, 3537, 3538, 3539, 3540, - 3541, 3539, 3535, 3543, 3544, 3544, 3545, 3546, - 3547, 3547, 3548, 3549, 3550, 3550, 3551, 3552, - 3553, 3553, 3553, 3553, 3554, 3555, 3553, 3553, - 3556, 3557, 3558, 3559, 3553, 3553, 3560, 3561, - 3562, 3563, 3553, 3553, 3564, 3565, 3543, 3542, - 3567, 3566, 3459, 3569, 3568, 3459, 3570, 3570, - 3571, 3572, 3573, 3574, 3459, 3570, 3570, 3571, - 3572, 3573, 3574, 3575, 3474, 3576, 3576, 3577, - 3578, 3580, 3581, 3579, 3474, 3582, 3582, 3583, - 3584, 3585, 3586, 3587, 3585, 3585, 3585, 3535, - 3588, 3589, 3589, 3590, 3591, 3592, 3592, 3593, - 3594, 3595, 3595, 3596, 3597, 3598, 3598, 3598, - 3598, 3599, 3600, 3598, 3598, 3601, 3602, 3603, - 3604, 3598, 3598, 3605, 3606, 3607, 3608, 3598, - 3598, 3609, 3610, 3588, 3588, 3588, 3542, 3612, - 3611, 3459, 3614, 3613, 3459, 3615, 3615, 3616, - 3617, 3618, 3619, 3459, 3615, 3615, 3616, 3617, - 3618, 3619, 3620, 3474, 3621, 3621, 3622, 3623, - 3625, 3626, 3624, 3474, 3627, 3627, 3628, 3629, - 3630, 3630, 3630, 3631, 3632, 3630, 3630, 3630, - 3459, 3633, 3633, 3634, 3635, 3636, 3636, 3637, - 3638, 3639, 3639, 3640, 3641, 3642, 3642, 3642, - 3642, 3643, 3644, 3642, 3642, 3645, 3646, 3647, - 3648, 3642, 3642, 3649, 3650, 3651, 3652, 3642, - 3642, 3653, 3654, 3488, 3656, 3655, 3459, 3658, - 3657, 3459, 3660, 3659, 78, 3661, 3661, 3661, - 78, 3662, 3662, 3663, 3664, 3665, 3666, 78, - 3662, 3662, 3663, 3664, 3665, 3666, 3667, 3667, - 3667, 78, 3668, 3668, 3669, 3670, 3671, 3672, - 78, 3668, 3668, 3669, 3670, 3671, 3672, 3673, - 2717, 3674, 3674, 3675, 3676, 3678, 3679, 3677, - 2717, 3680, 3680, 3681, 3682, 3684, 3685, 3683, - 2717, 3686, 3686, 3687, 3688, 3690, 3691, 3689, - 2717, 3693, 3693, 3694, 3695, 3697, 3698, 3696, - 3692, 3699, 3699, 3700, 3701, 3703, 3704, 3702, - 3692, 3705, 3705, 3706, 3707, 3709, 3710, 3708, - 3692, 3711, 3711, 3712, 3713, 3715, 3716, 3714, - 3692, 3717, 3717, 3718, 3719, 3721, 3722, 3720, - 2717, 3723, 3723, 3724, 3725, 3727, 3728, 3726, - 2717, 3729, 3729, 3730, 3731, 3732, 3732, 3732, - 3733, 3734, 3732, 3732, 3732, 78, 3735, 3735, - 3736, 3737, 3738, 3739, 78, 3740, 3740, 3741, - 3742, 3743, 3744, 3745, 3743, 3743, 3743, 78, - 3746, 3746, 78, 3748, 3747, 78, 3750, 3749, - 78, 3752, 3751, 78, 3754, 3753, 78, 3756, - 3755, 78, 3758, 3757, 78, 3760, 3759, 78, - 3762, 3761, 78, 3763, 3763, 3763, 3763, 3763, - 3763, 78, 3764, 3764, 3764, 3764, 78, 3765, - 3765, 3765, 3765, 78, 3766, 2717, 3767, 3767, - 3768, 3769, 3771, 3772, 3770, 2717, 3773, 3773, - 3774, 3775, 3777, 3778, 3776, 2717, 3779, 3779, - 3780, 3781, 3783, 3784, 3782, 2717, 3785, 3785, - 3786, 3787, 3789, 3790, 3788, 3788, 3788, 78, - 3791, 3791, 3792, 3793, 3794, 3795, 78, 3791, - 3791, 3792, 3793, 3796, 3794, 3795, 3796, 3796, - 3796, 78, 3797, 3797, 78, 3799, 3798, 78, - 3801, 3800, 78, 3803, 3802, 78, 3804, 3804, - 3804, 3804, 78, 3805, 3805, 78, 3806, 2717, - 3807, 3807, 3808, 3809, 3811, 3812, 3810, 2717, - 3813, 3813, 3814, 3815, 3817, 3818, 3816, 2717, - 3819, 3819, 3820, 3821, 3823, 3824, 3822, 2717, - 3825, 3825, 3826, 3827, 3829, 3830, 3828, 2717, - 3831, 3831, 3832, 3833, 3835, 3836, 3834, 2717, - 3837, 3837, 3838, 3839, 3840, 3842, 3843, 3841, - 3841, 3841, 3388, 3844, 3844, 3845, 3846, 3847, - 3848, 3388, 3850, 3850, 3851, 3852, 3854, 3855, - 3853, 3853, 3853, 3849, 3856, 3856, 3856, 3849, - 3858, 3857, 3857, 3857, 3849, 3859, 3859, 3859, - 3849, 3861, 3860, 3860, 3860, 3849, 3863, 3862, - 3862, 3862, 3849, 3864, 3864, 3864, 3849, 3866, - 3865, 3865, 3865, 3849, 3867, 3867, 3867, 3867, - 3868, 3868, 3868, 3849, 3869, 3869, 3869, 3869, - 78, 3870, 3849, 3866, 3849, 3863, 3849, 3871, - 3849, 3861, 3849, 3873, 3872, 78, 3874, 3874, - 3874, 3388, 3844, 3844, 3845, 3846, 3847, 3848, - 3875, 3875, 3875, 3388, 3877, 3876, 78, 3879, - 3878, 78, 3881, 3880, 78, 3882, 2717, 3883, - 3883, 3884, 3885, 3887, 3888, 3886, 2717, 3889, - 3889, 3890, 3891, 3893, 3894, 3892, 2717, 3895, - 3895, 3896, 3897, 3899, 3900, 3898, 2717, 3901, - 3901, 3902, 3903, 3905, 3906, 3904, 2717, 3907, - 3907, 3908, 3909, 3911, 3912, 3910, 2717, 3913, - 3913, 3914, 3915, 3916, 3918, 3919, 3917, 3917, - 3917, 3388, 3920, 3920, 3920, 3920, 3388, 3921, - 3921, 3921, 3388, 3920, 3920, 3920, 3920, 3922, - 3922, 3922, 3388, 3924, 3923, 78, 3926, 3925, - 78, 3928, 3927, 78, 3929, 2717, 3930, 3930, - 3931, 3932, 3934, 3935, 3933, 2717, 3936, 3936, - 3937, 3938, 3940, 3941, 3939, 2717, 3942, 3942, - 3943, 3944, 3946, 3947, 3945, 2717, 3948, 3948, - 3949, 3950, 3952, 3953, 3951, 2717, 3954, 3954, - 3955, 3956, 3958, 3959, 3957, 2717, 3960, 3960, - 3961, 3962, 3964, 3965, 3963, 3963, 3963, 3388, - 3966, 3966, 3966, 3388, 3967, 3967, 3968, 3969, - 3970, 3971, 3972, 3972, 3973, 3974, 3963, 3963, - 3963, 3388, 3976, 3975, 3388, 3978, 3977, 78, - 3980, 3979, 78, 3982, 3981, 78, 3983, 2717, - 3984, 3984, 3985, 3986, 3988, 3989, 3987, 2717, - 3990, 3990, 3991, 3992, 3994, 3995, 3993, 2717, - 3996, 3996, 3996, 3996, 3997, 2717, 3998, 3998, - 3998, 3998, 78, 4000, 3999, 78, 4001, 2717, - 4002, 4002, 4003, 4004, 4006, 4007, 4005, 2717, - 4008, 4008, 4009, 4010, 4012, 4013, 4011, 2717, - 4014, 4014, 4015, 4016, 4018, 4019, 4017, 2717, - 4020, 4020, 4021, 4022, 4024, 4025, 4023, 2717, - 4026, 4026, 4027, 4028, 4030, 4031, 4029, 2717, - 4032, 4032, 4033, 4034, 4036, 4037, 4035, 4035, - 4035, 3388, 4038, 4038, 4038, 3388, 4039, 4039, - 4040, 4041, 4042, 4043, 4044, 4044, 4045, 4046, - 4035, 4035, 4035, 3388, 4048, 4047, 3388, 4050, - 4049, 78, 4052, 4051, 78, 4054, 4053, 78, - 4055, 2717, 4056, 4056, 4057, 4058, 4060, 4061, - 4059, 2717, 4062, 4062, 4063, 4064, 4065, 4066, - 4067, 4065, 2694, 4068, 4069, 4068, 4068, 4068, - 4069, 2694, 4071, 4070, 78, 4072, 2717, 4073, - 4073, 4074, 4075, 4077, 4078, 4076, 2717, 4079, - 4079, 4080, 4081, 4083, 4084, 4082, 4082, 4082, - 3388, 4085, 4085, 4085, 3388, 4086, 4086, 4086, - 3388, 4087, 4087, 4087, 3388, 4089, 4088, 4090, - 4090, 4090, 3388, 4091, 4091, 4091, 3388, 4092, - 4092, 4092, 3388, 4093, 4093, 4093, 3388, 4095, - 4089, 4095, 4095, 4095, 4094, 4097, 4096, 78, - 4098, 4098, 4098, 3388, 4099, 4099, 4099, 3388, - 4101, 4100, 4102, 4102, 4102, 3388, 4103, 4103, - 4103, 3388, 4104, 4101, 4104, 4104, 4104, 4100, - 4105, 4105, 4105, 3388, 4106, 4106, 4106, 3388, - 4107, 4100, 4108, 4108, 4108, 3388, 4109, 4109, - 4109, 3388, 4110, 4107, 4110, 4110, 4110, 4100, - 4111, 2717, 4112, 4112, 4113, 4114, 4116, 4117, - 4115, 2717, 4118, 4118, 4119, 4120, 4122, 4123, - 4121, 2717, 4124, 4124, 4125, 4126, 4128, 4129, - 4127, 2717, 4131, 4131, 4132, 4133, 4134, 4135, - 4130, 4130, 4130, 78, 4136, 4136, 4136, 4136, - 78, 4138, 4137, 78, 4140, 4139, 78, 4141, - 2717, 4142, 4142, 4143, 4144, 4146, 4147, 4145, - 2717, 4149, 4149, 4150, 4151, 4152, 4153, 4148, - 4148, 4148, 78, 4154, 4154, 4155, 4156, 4157, - 4158, 78, 4160, 4160, 4161, 4162, 4163, 4164, - 4159, 4159, 4159, 78, 4165, 4165, 4165, 4165, - 78, 4167, 4166, 78, 4169, 4168, 78, 4170, - 2717, 4171, 4171, 4172, 4173, 4175, 4176, 4174, - 2717, 4177, 4177, 4178, 4179, 4180, 4180, 4180, - 4181, 4182, 4180, 4180, 4180, 78, 4183, 4183, - 4183, 4183, 78, 4184, 4184, 4184, 4184, 78, - 4186, 4185, 78, 4187, 4187, 4187, 78, 4188, - 4188, 4189, 4190, 4191, 4192, 78, 4188, 4188, - 4189, 4190, 4191, 4192, 4193, 4193, 4193, 78, - 4194, 4194, 4195, 4196, 4197, 4198, 78, 4194, - 4194, 4195, 4196, 4197, 4198, 4199, 2717, 4200, - 4200, 4201, 4202, 4204, 4205, 4203, 2717, 4206, - 4206, 4207, 4208, 4209, 4209, 4209, 4210, 4211, - 4209, 4209, 4209, 78, 4212, 4212, 4212, 4212, - 78, 4214, 4213, 78, 4216, 4215, 78, 4218, - 4217, 78, 4220, 4220, 4221, 4222, 4223, 4224, - 4224, 4224, 4225, 4226, 4227, 4228, 4224, 4224, - 4224, 4219, 4229, 4229, 4230, 4231, 4232, 4233, - 76, 4234, 4233, 4225, 4226, 4235, 4236, 4237, - 4238, 4239, 4240, 76, 76, 4233, 76, 4233, - 76, 4233, 76, 915, 4242, 4242, 4221, 4243, - 4244, 4224, 4245, 4246, 4247, 4248, 4249, 4250, - 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, - 4259, 4260, 4261, 4262, 4224, 4224, 4245, 4246, - 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, - 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, - 4225, 4226, 4263, 4264, 4224, 4224, 4224, 4241, - 4242, 4242, 4221, 4243, 4244, 4224, 4267, 4268, - 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, - 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, - 4224, 4224, 4267, 4268, 4269, 4270, 4271, 4272, - 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, - 4281, 4282, 4283, 4284, 4225, 4226, 4263, 4264, - 4224, 4266, 4224, 4224, 4265, 4286, 4286, 4287, - 4288, 4289, 4290, 4290, 4290, 4291, 4292, 4293, - 4294, 4290, 4290, 4290, 4285, 4220, 4220, 4221, - 4295, 4296, 4224, 4267, 4268, 4269, 4270, 4271, - 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, - 4280, 4281, 4282, 4283, 4284, 4224, 4224, 4267, - 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, - 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, - 4284, 4225, 4226, 4297, 4298, 4224, 4266, 4224, - 4224, 4265, 4299, 4299, 4221, 4300, 4301, 4224, - 4224, 4224, 90, 91, 4302, 4303, 4224, 4224, - 4224, 915, 4304, 4304, 4230, 4305, 4306, 4233, - 76, 4234, 4233, 90, 91, 4302, 4307, 108, - 109, 4302, 4308, 76, 76, 4233, 76, 4233, - 76, 4233, 76, 915, 4229, 4229, 4230, 4231, - 4232, 4233, 76, 4311, 4312, 4313, 4314, 4315, - 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, - 4324, 4325, 4326, 4327, 4328, 4234, 4233, 4311, - 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, - 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, - 4328, 4225, 4226, 4235, 4236, 4237, 4238, 4239, - 4240, 76, 76, 4233, 4310, 76, 4233, 76, - 4233, 76, 4309, 4304, 4304, 4230, 4305, 4306, - 4233, 76, 4311, 4312, 4313, 4314, 4315, 4316, - 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, - 4325, 4326, 4327, 4328, 4234, 4233, 4311, 4312, - 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, - 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, - 90, 91, 4329, 4307, 108, 109, 4329, 4308, - 76, 76, 4233, 4310, 76, 4233, 76, 4233, - 76, 4309, 822, 822, 822, 822, 1091, 1092, - 1091, 1094, 1091, 1092, 1093, 1092, 1087, 822, - 822, 822, 1249, 1249, 1250, 1251, 1218, 1219, - 1220, 1218, 1252, 1253, 1218, 1218, 1218, 1224, - 822, 1264, 1264, 1265, 1266, 1259, 1267, 1268, - 1269, 1269, 1270, 1271, 1259, 1259, 1259, 1258, - 1273, 1272, 1258, 822, 822, 1519, 1519, 1520, - 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, - 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, - 1537, 1538, 1539, 1522, 1523, 1524, 1525, 1526, - 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, - 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, - 1542, 1543, 1544, 1510, 1568, 1567, 1510, 822, - 2156, 2156, 2157, 2158, 2159, 2160, 2161, 2161, - 2162, 2163, 2152, 2152, 2152, 2148, 2165, 2164, - 2148, 2184, 2184, 2185, 2186, 2188, 2189, 2187, - 2187, 2187, 2148, 2134, 2191, 2191, 2192, 2193, - 2194, 2195, 2196, 2196, 2197, 2198, 2187, 2187, - 2187, 2148, 2200, 2199, 2148, 2202, 2201, 2134, - 822, 822, 2286, 2286, 2287, 2288, 2289, 2290, - 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, - 2299, 2300, 2300, 2301, 2302, 2277, 2318, 2317, - 2277, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 2912, 2912, 2913, 2914, 2915, - 2916, 2917, 2917, 2918, 2919, 2911, 2911, 2911, - 2902, 2921, 2920, 2902, 822, 822, 3085, 3085, - 3086, 3087, 3088, 3089, 3034, 3034, 3090, 3091, - 2925, 3093, 3092, 2925, 3067, 3067, 3068, 3069, - 3071, 3072, 3034, 3034, 3073, 3074, 3070, 2925, - 3105, 3104, 2925, 3048, 3048, 3049, 3050, 3052, - 3053, 3034, 3034, 3054, 3055, 3051, 2925, 3118, - 3117, 2925, 3028, 3028, 3029, 3030, 3032, 3033, - 3034, 3034, 3035, 3036, 3031, 2925, 3131, 3130, - 2925, 822, 822, 822, 822, 3329, 3329, 3330, - 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3337, - 3338, 3339, 3328, 3358, 3357, 78, 822, 3396, - 3396, 3397, 3398, 3399, 3400, 3401, 3401, 3402, - 3403, 3392, 3392, 3392, 3388, 3405, 3404, 3388, - 822, 3438, 3438, 3439, 3440, 3441, 3442, 3443, - 3443, 3444, 3445, 3434, 3434, 3434, 3388, 3447, - 3446, 3388, 822, 3492, 3492, 3493, 3494, 3498, - 3498, 3498, 3498, 3503, 3504, 3498, 3498, 3505, - 3506, 3511, 3516, 3515, 3511, 3489, 3489, 3490, - 3491, 3512, 3499, 3500, 3512, 3512, 3512, 3511, - 3514, 3513, 3511, 3512, 3489, 3489, 3490, 3491, - 3492, 3492, 3493, 3494, 3495, 3495, 3496, 3497, - 3498, 3498, 3498, 3498, 3499, 3500, 3498, 3498, - 3501, 3502, 3503, 3504, 3498, 3498, 3505, 3506, - 3507, 3508, 3498, 3498, 3509, 3510, 3512, 3512, - 3512, 3511, 3514, 3516, 3518, 3513, 3515, 3517, - 3511, 822, 822, 822, 822, 822, 822, 822, - 3967, 3967, 3968, 3969, 3970, 3971, 3972, 3972, - 3973, 3974, 3963, 3963, 3963, 3388, 3976, 3975, - 3388, 822, 822, 4039, 4039, 4040, 4041, 4042, - 4043, 4044, 4044, 4045, 4046, 4035, 4035, 4035, - 3388, 4048, 4047, 3388, 822, 822, 822, 822, - 822, 822, 822, 822, 0 + 137, 138, 139, 140, 141, 142, 81, 125, + 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, + 142, 90, 91, 981, 1068, 108, 109, 981, + 1069, 76, 76, 124, 76, 121, 87, 90, + 87, 88, 89, 91, 1070, 984, 1070, 1071, + 1072, 995, 1063, 86, 93, 96, 93, 94, + 95, 97, 1073, 913, 1073, 1074, 1075, 999, + 1063, 86, 836, 836, 837, 838, 161, 162, + 163, 164, 165, 161, 162, 163, 164, 165, + 839, 840, 1076, 836, 836, 837, 838, 237, + 238, 239, 240, 237, 238, 239, 240, 839, + 840, 1076, 836, 836, 837, 838, 318, 318, + 839, 840, 1076, 836, 836, 837, 838, 340, + 341, 340, 341, 839, 840, 1076, 836, 836, + 837, 838, 766, 365, 766, 365, 839, 840, + 1076, 836, 836, 837, 838, 408, 409, 408, + 409, 839, 840, 1076, 836, 836, 837, 838, + 427, 428, 429, 430, 429, 430, 839, 840, + 1076, 836, 836, 837, 838, 466, 467, 466, + 467, 839, 840, 1076, 836, 836, 837, 838, + 487, 488, 489, 487, 488, 489, 839, 840, + 1076, 836, 836, 837, 838, 550, 550, 839, + 840, 1076, 836, 836, 837, 838, 567, 567, + 839, 840, 1076, 836, 836, 837, 838, 577, + 578, 579, 580, 577, 578, 579, 580, 839, + 840, 1076, 836, 836, 837, 838, 621, 622, + 623, 624, 625, 626, 621, 622, 623, 624, + 625, 626, 839, 840, 1076, 836, 836, 837, + 838, 687, 688, 689, 687, 688, 689, 839, + 840, 1076, 836, 836, 837, 838, 723, 723, + 839, 840, 1076, 836, 836, 837, 838, 733, + 733, 839, 840, 1076, 836, 836, 837, 838, + 746, 746, 839, 840, 1076, 823, 1078, 822, + 1077, 92, 823, 1080, 822, 1079, 155, 836, + 836, 837, 838, 364, 365, 364, 365, 839, + 840, 1076, 99, 1082, 98, 1081, 155, 1084, + 1085, 1086, 1083, 1083, 1083, 847, 1088, 1087, + 1090, 1089, 1092, 1093, 1094, 1095, 1092, 1092, + 1092, 1092, 1091, 1096, 1096, 1097, 1096, 1098, + 1096, 1099, 1097, 1096, 1096, 1097, 1097, 1097, + 1091, 1100, 1100, 1101, 1100, 1101, 1100, 1102, + 1101, 1100, 1100, 1101, 1101, 1101, 1091, 1103, + 1097, 1105, 1104, 1106, 1104, 1107, 1107, 1108, + 1107, 1109, 1107, 1110, 1108, 1107, 1107, 1108, + 1108, 1108, 1104, 1100, 1100, 1100, 1100, 1100, + 1100, 1091, 1111, 1111, 1111, 1111, 1111, 1111, + 1091, 1114, 1115, 1113, 1113, 1112, 1116, 1117, + 1116, 1119, 1116, 1117, 1118, 1117, 1112, 1113, + 1121, 1113, 1120, 1122, 1120, 1123, 1120, 1124, + 1125, 1124, 1127, 1124, 1125, 1126, 1125, 1120, + 1128, 1128, 1130, 1128, 1131, 1128, 1129, 1112, + 1132, 1132, 1134, 1132, 1135, 1132, 1133, 1112, + 1137, 1137, 1137, 1137, 1136, 1129, 1138, 1129, + 1120, 1139, 1120, 1140, 1120, 1141, 1141, 1143, + 1141, 1144, 1141, 1142, 1120, 1146, 1146, 1147, + 1148, 1149, 1150, 1145, 1146, 1146, 1147, 1148, + 1149, 1150, 1152, 1151, 1154, 1154, 1155, 1156, + 1158, 1159, 1160, 1161, 1162, 1158, 1159, 1160, + 1161, 1162, 1163, 1164, 1163, 1164, 1157, 1153, + 1166, 1166, 1167, 1168, 1169, 1170, 1169, 1170, + 1165, 1172, 1171, 1154, 1154, 1155, 1156, 1163, + 1164, 1163, 1164, 1173, 1153, 1176, 1177, 1178, + 1179, 1180, 1176, 1177, 1178, 1179, 1180, 1175, + 1174, 1181, 1181, 1182, 1183, 1185, 1186, 1185, + 1186, 1184, 1153, 1188, 1187, 1145, 1190, 1190, + 1191, 1192, 1193, 1194, 1189, 1190, 1190, 1191, + 1192, 1195, 1196, 1197, 1195, 1193, 1194, 1195, + 1195, 1195, 1189, 1198, 1199, 1200, 1198, 1198, + 1198, 1198, 1189, 1202, 1202, 1203, 1204, 1205, + 1205, 1206, 1205, 1207, 1208, 1207, 1208, 1205, + 1205, 1205, 1201, 1209, 1209, 1210, 1211, 1212, + 1213, 1212, 1213, 1201, 1215, 1214, 1216, 1198, + 1218, 1217, 1219, 1217, 1220, 1221, 1222, 1220, + 1220, 1220, 1220, 1217, 1202, 1202, 1203, 1204, + 1207, 1208, 1207, 1208, 1201, 1224, 1223, 1189, + 1225, 1225, 1226, 1227, 1228, 1229, 847, 1225, + 1225, 1226, 1227, 1228, 1229, 1230, 1230, 1230, + 1231, 1233, 1233, 1234, 1235, 1236, 1237, 1236, + 1238, 1232, 1240, 1240, 1241, 1242, 1243, 1244, + 1245, 1243, 1246, 1247, 1246, 1248, 1243, 1243, + 1243, 1239, 1250, 1251, 1252, 1250, 1250, 1250, + 1250, 1249, 1253, 1253, 1254, 1255, 1256, 1256, + 1257, 1256, 1258, 1259, 1258, 1259, 1256, 1256, + 1256, 1239, 1260, 1260, 1261, 1262, 1246, 1247, + 1246, 1247, 92, 1264, 1263, 1265, 1250, 1267, + 1266, 1268, 1266, 1269, 1270, 1271, 1269, 1269, + 1269, 1269, 1266, 1253, 1253, 1254, 1255, 1258, + 1259, 1258, 1259, 1239, 1264, 1273, 1263, 1272, + 92, 1274, 1274, 1275, 1276, 1243, 1244, 1245, + 1243, 1277, 1278, 1243, 1243, 1243, 1249, 1280, + 1279, 847, 1282, 1281, 847, 1284, 1284, 1284, + 1284, 1283, 1285, 1285, 1285, 1285, 1283, 1286, + 1287, 1286, 1286, 1286, 1283, 1288, 1289, 1288, + 1288, 1288, 1283, 1289, 1289, 1290, 1291, 1284, + 1292, 1293, 1294, 1294, 1295, 1296, 1284, 1284, + 1284, 1283, 1298, 1297, 1283, 1289, 1283, 1300, + 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, + 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, + 1317, 1300, 1301, 1302, 1303, 1304, 1305, 1306, + 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, + 1315, 1316, 1317, 1299, 1318, 1318, 1319, 1320, + 1321, 1322, 1319, 1320, 1321, 1322, 1318, 1318, + 1299, 1323, 1323, 1299, 1324, 1324, 1299, 1325, + 1325, 1325, 1325, 1299, 1326, 1326, 1299, 1327, + 1327, 1299, 1328, 1328, 1299, 1329, 1329, 1329, + 1329, 1299, 1330, 1330, 1299, 1331, 1331, 1299, + 1332, 1332, 1299, 1333, 1333, 1333, 1333, 1299, + 1334, 1334, 1299, 1335, 1335, 1335, 1335, 1299, + 1336, 1337, 1338, 1339, 1340, 1336, 1337, 1338, + 1339, 1340, 1299, 1341, 1341, 1299, 1342, 1342, + 1342, 1342, 1299, 1343, 1344, 1343, 1344, 1299, + 1345, 1345, 1299, 1346, 1346, 1299, 1347, 1347, + 1299, 1348, 1348, 1299, 1349, 1349, 1349, 1349, + 1299, 1350, 1350, 1350, 1350, 1299, 1351, 1351, + 1299, 1352, 1352, 1299, 1353, 1353, 1353, 1353, + 1299, 1354, 1354, 1299, 1355, 1355, 1299, 1356, + 1356, 1299, 1357, 1357, 1357, 1357, 1299, 1358, + 1358, 1299, 1359, 1359, 1299, 1360, 1360, 1299, + 1361, 1361, 1361, 1361, 1299, 1362, 1363, 1364, + 1365, 1362, 1363, 1364, 1365, 1299, 1366, 1366, + 1299, 1367, 1367, 1299, 1368, 1368, 1299, 1369, + 1369, 1370, 1370, 1369, 1369, 1299, 1371, 1371, + 1299, 1372, 1372, 1299, 1373, 1373, 1299, 1374, + 1374, 1299, 1375, 1375, 1375, 1375, 1299, 1376, + 1376, 1299, 1377, 1377, 1299, 1378, 1378, 1299, + 1379, 1379, 1379, 1379, 1299, 1380, 1381, 1380, + 1381, 1299, 1382, 1382, 1299, 1383, 1383, 1299, + 1384, 1384, 1384, 1384, 1299, 1385, 1385, 1299, + 1386, 1386, 1299, 1387, 1387, 1299, 1388, 1388, + 1388, 1388, 1299, 1389, 1389, 1390, 1390, 1389, + 1389, 1299, 1391, 1391, 1299, 1392, 1392, 1299, + 1393, 1393, 1393, 1393, 1299, 1394, 1394, 1299, + 1395, 1395, 1299, 1396, 1397, 1299, 1398, 1299, + 1399, 1399, 1399, 1399, 1299, 1400, 1299, 1401, + 1401, 1401, 1401, 1299, 1402, 1403, 1402, 1403, + 1299, 1404, 1404, 1299, 1405, 1405, 1299, 1406, + 1406, 1299, 1407, 1407, 1407, 1407, 1299, 1408, + 1408, 1299, 1409, 1409, 1299, 1410, 1410, 1299, + 1411, 1411, 1411, 1411, 1299, 1412, 1412, 1299, + 1413, 1413, 1299, 1414, 1414, 1299, 1415, 1415, + 1299, 1416, 1416, 1299, 1417, 1417, 1299, 1418, + 1418, 1299, 1419, 1419, 1419, 1419, 1299, 1420, + 1421, 1420, 1421, 1299, 1422, 1422, 1299, 1423, + 1423, 1423, 1423, 1299, 1424, 1424, 1424, 1424, + 1299, 1425, 1426, 1427, 1428, 1427, 1428, 1299, + 1429, 1299, 1430, 1430, 1430, 1430, 1299, 1431, + 1299, 1432, 1432, 1432, 1432, 1299, 1433, 1433, + 1299, 1434, 1434, 1434, 1434, 1299, 1435, 1435, + 1435, 1435, 1299, 1436, 1437, 1436, 1437, 1299, + 1438, 1438, 1299, 1439, 1439, 1299, 1440, 1440, + 1299, 1441, 1441, 1441, 1441, 1299, 1442, 1442, + 1442, 1442, 1299, 1443, 1444, 1445, 1443, 1444, + 1445, 1299, 1446, 1446, 1299, 1447, 1447, 1299, + 1448, 1448, 1299, 1449, 1449, 1449, 1449, 1299, + 1450, 1450, 1299, 1451, 1451, 1451, 1451, 1299, + 1452, 1452, 1453, 1453, 1452, 1452, 1299, 1454, + 1454, 1299, 1455, 1456, 1455, 1455, 1455, 1299, + 1457, 1457, 1458, 1458, 1457, 1457, 1299, 1459, + 1459, 1299, 1460, 1460, 1299, 1461, 1461, 1299, + 1462, 1462, 1299, 1463, 1463, 1463, 1463, 1299, + 1464, 1464, 1299, 1465, 1465, 1299, 1466, 1466, + 1299, 1467, 1467, 1299, 1468, 1468, 1299, 1469, + 1469, 1299, 1470, 1470, 1299, 1471, 1471, 1299, + 1472, 1472, 1299, 1473, 1473, 1473, 1473, 1299, + 1474, 1474, 1299, 1475, 1475, 1299, 1476, 1476, + 1476, 1476, 1299, 1477, 1478, 1479, 1480, 1477, + 1478, 1479, 1480, 1299, 1481, 1481, 1299, 1482, + 1482, 1299, 1483, 1483, 1299, 1484, 1484, 1299, + 1485, 1485, 1299, 1486, 1486, 1486, 1486, 1299, + 1487, 1487, 1487, 1487, 1299, 1488, 1488, 1299, + 1489, 1489, 1299, 1490, 1490, 1299, 1491, 1491, + 1491, 1491, 1299, 1492, 1492, 1492, 1492, 1299, + 1493, 1494, 1495, 1496, 1497, 1498, 1493, 1494, + 1495, 1496, 1497, 1498, 1299, 1499, 1499, 1299, + 1500, 1500, 1299, 1501, 1501, 1299, 1502, 1502, + 1299, 1503, 1503, 1503, 1503, 1299, 1504, 1504, + 1299, 1505, 1505, 1505, 1505, 1299, 1506, 1506, + 1299, 1507, 1507, 1507, 1507, 1299, 1508, 1508, + 1299, 1509, 1509, 1509, 1509, 1299, 1510, 1510, + 1299, 1511, 1511, 1299, 1512, 1512, 1299, 1513, + 1513, 1513, 1513, 1299, 1514, 1514, 1299, 1515, + 1515, 1299, 1516, 1516, 1516, 1516, 1299, 1517, + 1518, 1519, 1517, 1518, 1519, 1299, 1520, 1520, + 1299, 1521, 1521, 1299, 1522, 1522, 1522, 1522, + 1299, 1523, 1523, 1299, 1524, 1524, 1524, 1524, + 1299, 1525, 1525, 1299, 1526, 1526, 1299, 1528, + 1527, 1529, 1529, 1529, 1529, 1530, 1527, 1531, + 1531, 1299, 1532, 1532, 1299, 1533, 1533, 1533, + 1533, 1299, 1534, 1534, 1299, 1535, 1535, 1299, + 1536, 1536, 1299, 1537, 1537, 1299, 1538, 1538, + 1299, 1539, 1539, 1539, 1539, 1299, 1540, 1540, + 1299, 1541, 1541, 1299, 1542, 1542, 1299, 1543, + 1543, 1299, 1544, 1544, 1299, 1545, 1545, 1545, + 1545, 1299, 1547, 1547, 1548, 1549, 1550, 1551, + 1552, 1552, 1553, 1554, 1546, 1555, 1555, 1556, + 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, + 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, + 1573, 1574, 1575, 1558, 1559, 1560, 1561, 1562, + 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, + 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, + 1578, 1579, 1580, 1546, 1581, 1581, 1582, 1583, + 1584, 1585, 1586, 1587, 1584, 1585, 1586, 1587, + 1588, 1589, 1590, 1590, 1591, 1592, 1546, 1593, + 1593, 1546, 1594, 1594, 1546, 1595, 1595, 1596, + 1597, 1598, 1599, 1600, 1600, 1601, 1602, 1546, + 1604, 1603, 1546, 1605, 1606, 1607, 1608, 1609, + 1605, 1606, 1607, 1608, 1609, 1546, 1610, 1610, + 1546, 1611, 1611, 1612, 1613, 1614, 1615, 1616, + 1616, 1617, 1618, 1546, 1619, 1620, 1619, 1620, + 1546, 1621, 1621, 1546, 1622, 1622, 1546, 1623, + 1623, 1546, 1624, 1624, 1546, 1625, 1625, 1626, + 1627, 1628, 1629, 1630, 1630, 1631, 1632, 1546, + 1633, 1633, 1634, 1635, 1636, 1637, 1638, 1638, + 1639, 1640, 1546, 1641, 1641, 1546, 1642, 1642, + 1546, 1643, 1643, 1644, 1645, 1646, 1647, 1648, + 1648, 1649, 1650, 1546, 1651, 1651, 1546, 1652, + 1652, 1546, 1653, 1653, 1546, 1654, 1654, 1655, + 1656, 1657, 1658, 1659, 1659, 1660, 1661, 1546, + 1662, 1662, 1546, 1663, 1663, 1546, 1664, 1664, + 1546, 1665, 1665, 1666, 1667, 1668, 1669, 1670, + 1670, 1671, 1672, 1546, 1673, 1674, 1675, 1676, + 1673, 1674, 1675, 1676, 1546, 1677, 1677, 1546, + 1678, 1678, 1546, 1679, 1679, 1546, 1680, 1680, + 1681, 1682, 1683, 1683, 1684, 1685, 1686, 1686, + 1687, 1688, 1546, 1689, 1689, 1546, 1690, 1690, + 1546, 1691, 1691, 1546, 1692, 1692, 1546, 1693, + 1693, 1694, 1695, 1696, 1697, 1698, 1698, 1699, + 1700, 1546, 1701, 1701, 1546, 1702, 1702, 1546, + 1703, 1703, 1546, 1704, 1704, 1705, 1706, 1707, + 1708, 1709, 1709, 1710, 1711, 1546, 1712, 1713, + 1712, 1713, 1546, 1714, 1714, 1546, 1715, 1715, + 1546, 1716, 1716, 1717, 1718, 1719, 1720, 1721, + 1721, 1722, 1723, 1546, 1724, 1724, 1546, 1725, + 1725, 1546, 1726, 1726, 1546, 1727, 1727, 1728, + 1729, 1730, 1731, 1732, 1732, 1733, 1734, 1546, + 1735, 1735, 1736, 1737, 1738, 1738, 1739, 1740, + 1741, 1741, 1742, 1743, 1546, 1744, 1744, 1546, + 1745, 1745, 1546, 1746, 1746, 1747, 1748, 1749, + 1750, 1751, 1751, 1752, 1753, 1546, 1754, 1754, + 1546, 1755, 1755, 1546, 1756, 1757, 1546, 1758, + 1546, 1759, 1759, 1760, 1761, 1762, 1763, 1764, + 1764, 1765, 1766, 1546, 1767, 1546, 1768, 1768, + 1769, 1770, 1771, 1772, 1773, 1773, 1774, 1775, + 1546, 1776, 1777, 1776, 1777, 1546, 1778, 1778, + 1546, 1779, 1779, 1546, 1780, 1780, 1546, 1781, + 1781, 1782, 1783, 1784, 1785, 1786, 1786, 1787, + 1788, 1546, 1789, 1789, 1546, 1790, 1790, 1546, + 1791, 1791, 1546, 1792, 1792, 1793, 1794, 1795, + 1796, 1797, 1797, 1798, 1799, 1546, 1800, 1800, + 1546, 1801, 1801, 1546, 1802, 1802, 1546, 1803, + 1803, 1546, 1804, 1804, 1546, 1805, 1805, 1546, + 1806, 1806, 1546, 1807, 1807, 1808, 1809, 1810, + 1811, 1812, 1812, 1813, 1814, 1546, 1815, 1816, + 1815, 1816, 1546, 1817, 1817, 1546, 1818, 1818, + 1819, 1820, 1821, 1822, 1823, 1823, 1824, 1825, + 1546, 1826, 1826, 1827, 1828, 1829, 1830, 1831, + 1831, 1832, 1833, 1546, 1834, 1835, 1836, 1837, + 1836, 1837, 1546, 1838, 1546, 1839, 1839, 1840, + 1841, 1842, 1843, 1844, 1844, 1845, 1846, 1546, + 1847, 1546, 1848, 1848, 1849, 1850, 1851, 1852, + 1853, 1853, 1854, 1855, 1546, 1856, 1856, 1546, + 1857, 1857, 1858, 1859, 1860, 1861, 1862, 1862, + 1863, 1864, 1546, 1865, 1865, 1866, 1867, 1868, + 1869, 1870, 1870, 1871, 1872, 1546, 1873, 1874, + 1873, 1874, 1546, 1875, 1875, 1546, 1876, 1876, + 1546, 1877, 1877, 1546, 1878, 1878, 1879, 1880, + 1881, 1882, 1883, 1883, 1884, 1885, 1546, 1886, + 1886, 1887, 1888, 1889, 1890, 1891, 1891, 1892, + 1893, 1546, 1894, 1895, 1896, 1894, 1895, 1896, + 1546, 1897, 1897, 1546, 1898, 1898, 1546, 1899, + 1899, 1546, 1900, 1900, 1901, 1902, 1903, 1904, + 1905, 1905, 1906, 1907, 1546, 1908, 1908, 1546, + 1909, 1909, 1910, 1911, 1912, 1913, 1914, 1914, + 1915, 1916, 1546, 1917, 1917, 1918, 1919, 1920, + 1920, 1921, 1922, 1923, 1923, 1924, 1925, 1546, + 1926, 1926, 1546, 1927, 1927, 1928, 1929, 1930, + 1931, 1932, 1933, 1933, 1934, 1935, 1546, 1936, + 1936, 1937, 1938, 1939, 1939, 1940, 1941, 1942, + 1942, 1943, 1944, 1546, 1945, 1945, 1546, 1946, + 1946, 1546, 1947, 1947, 1546, 1948, 1948, 1546, + 1949, 1949, 1950, 1951, 1952, 1953, 1954, 1954, + 1955, 1956, 1546, 1957, 1957, 1546, 1958, 1958, + 1546, 1959, 1959, 1546, 1960, 1960, 1546, 1961, + 1961, 1546, 1962, 1962, 1546, 1963, 1963, 1546, + 1964, 1964, 1546, 1965, 1965, 1546, 1966, 1966, + 1967, 1968, 1969, 1970, 1971, 1971, 1972, 1973, + 1546, 1974, 1974, 1546, 1975, 1975, 1546, 1976, + 1976, 1977, 1978, 1979, 1980, 1981, 1981, 1982, + 1983, 1546, 1984, 1985, 1986, 1987, 1984, 1985, + 1986, 1987, 1546, 1988, 1988, 1546, 1989, 1989, + 1546, 1990, 1990, 1546, 1991, 1991, 1546, 1992, + 1992, 1546, 1993, 1993, 1994, 1995, 1996, 1997, + 1998, 1998, 1999, 2000, 1546, 2001, 2001, 2002, + 2003, 2004, 2005, 2006, 2006, 2007, 2008, 1546, + 2009, 2009, 1546, 2010, 2010, 1546, 2011, 2011, + 1546, 2012, 2012, 2013, 2014, 2015, 2016, 2017, + 2017, 2018, 2019, 1546, 2020, 2020, 2021, 2022, + 2023, 2024, 2025, 2025, 2026, 2027, 1546, 2028, + 2029, 2030, 2031, 2032, 2033, 2028, 2029, 2030, + 2031, 2032, 2033, 1546, 2034, 2034, 1546, 2035, + 2035, 1546, 2036, 2036, 1546, 2037, 2037, 1546, + 2038, 2038, 2039, 2040, 2041, 2042, 2043, 2043, + 2044, 2045, 1546, 2046, 2046, 1546, 2047, 2047, + 2048, 2049, 2050, 2051, 2052, 2052, 2053, 2054, + 1546, 2055, 2055, 1546, 2056, 2056, 2057, 2058, + 2059, 2060, 2061, 2061, 2062, 2063, 1546, 2064, + 2064, 1546, 2065, 2065, 2066, 2067, 2068, 2069, + 2070, 2070, 2071, 2072, 1546, 2073, 2073, 1546, + 2074, 2074, 1546, 2075, 2075, 1546, 2076, 2076, + 2077, 2078, 2079, 2080, 2081, 2081, 2082, 2083, + 1546, 2084, 2084, 1546, 2085, 2085, 1546, 2086, + 2086, 2087, 2088, 2089, 2090, 2091, 2091, 2092, + 2093, 1546, 2094, 2095, 2096, 2094, 2095, 2096, + 1546, 2097, 2097, 1546, 2098, 2098, 1546, 2099, + 2099, 2100, 2101, 2102, 2103, 2104, 2104, 2105, + 2106, 1546, 2107, 2107, 1546, 2108, 2108, 2109, + 2110, 2111, 2112, 2113, 2113, 2114, 2115, 1546, + 2116, 2116, 1546, 2117, 2117, 1546, 2118, 1546, + 2119, 2119, 2120, 2121, 2123, 2124, 2125, 2125, + 2126, 2127, 2122, 1546, 2128, 2128, 1546, 2129, + 2129, 1546, 2130, 2130, 2131, 2132, 2133, 2134, + 2135, 2135, 2136, 2137, 1546, 2138, 2138, 1546, + 2139, 2139, 1546, 2140, 2140, 1546, 2141, 2141, + 1546, 2142, 2142, 1546, 2143, 2143, 2144, 2145, + 2146, 2147, 2148, 2148, 2149, 2150, 1546, 2151, + 2151, 1546, 2152, 2152, 1546, 2153, 2153, 1546, + 2154, 2154, 1546, 2155, 2155, 1546, 2156, 2156, + 2157, 2158, 2159, 2160, 2161, 2161, 2162, 2163, + 1546, 2164, 2164, 1546, 2165, 2165, 1546, 2166, + 2166, 1546, 2167, 2167, 2168, 2169, 2170, 2171, + 2172, 2172, 2173, 2174, 1546, 2175, 2175, 1546, + 2176, 2176, 1546, 2177, 2177, 1546, 2178, 2178, + 2179, 2180, 2181, 2182, 2183, 2183, 2184, 2185, + 1546, 2186, 2186, 1546, 2187, 2187, 2188, 2189, + 2190, 2191, 2192, 2192, 2193, 2194, 1546, 2196, + 2196, 2197, 2198, 2199, 2200, 2195, 2196, 2196, + 2197, 2198, 2199, 2200, 2202, 2201, 2203, 2203, + 2204, 2205, 2207, 2208, 2206, 2201, 2210, 2210, + 2211, 2212, 2214, 2215, 2213, 2213, 2213, 2209, + 2216, 2216, 2216, 2209, 2217, 2217, 2218, 2219, + 2220, 2221, 2222, 2222, 2223, 2224, 2213, 2213, + 2213, 2209, 2226, 2225, 2209, 2228, 2227, 2195, + 2230, 2229, 2195, 2231, 2231, 2232, 2233, 2234, + 2235, 2195, 2231, 2231, 2232, 2233, 2236, 2234, + 2235, 2237, 2201, 2238, 2238, 2239, 2240, 2242, + 2242, 2243, 2244, 2241, 2201, 2245, 2245, 2246, + 2247, 2249, 2250, 2248, 2248, 2248, 2209, 2251, + 2251, 2251, 2209, 2252, 2252, 2253, 2254, 2255, + 2256, 2257, 2257, 2258, 2259, 2248, 2248, 2248, + 2209, 2261, 2260, 2209, 2263, 2262, 2195, 2264, + 2264, 2265, 2266, 2267, 2268, 2241, 2201, 2270, + 2269, 2195, 2272, 2273, 2274, 2275, 2276, 2277, + 2278, 2279, 2271, 2280, 2271, 2281, 2271, 2282, + 2271, 2283, 2283, 2283, 2283, 2283, 2283, 2271, + 2284, 2271, 2285, 2271, 2286, 2271, 2287, 2271, + 2288, 2271, 2289, 2271, 2290, 2290, 2290, 2290, + 2290, 2290, 2271, 2291, 2271, 2292, 2271, 2293, + 2293, 2293, 2293, 2293, 2293, 2271, 2294, 2271, + 2295, 2271, 2296, 2297, 2271, 2298, 2271, 2299, + 2271, 2300, 2271, 2301, 2271, 2302, 2302, 2302, + 2302, 2302, 2302, 2271, 2303, 2271, 2304, 2271, + 2305, 2271, 2306, 2271, 2307, 2307, 2307, 2307, + 2307, 2307, 2271, 2308, 2271, 2309, 2271, 2311, + 2310, 2312, 2312, 2312, 2312, 2312, 2312, 2313, + 2310, 2314, 2271, 2315, 2271, 2316, 2271, 2317, + 2271, 2318, 2271, 2319, 2271, 2320, 2271, 2321, + 2271, 2322, 2271, 2323, 2271, 2324, 2271, 2325, + 2271, 2326, 2271, 2327, 2271, 2328, 2328, 2328, + 2328, 2328, 2328, 2271, 2329, 2271, 2330, 2271, + 2331, 2271, 2332, 2271, 2333, 2333, 2333, 2333, + 2333, 2333, 2271, 2334, 2271, 2335, 2271, 2336, + 2271, 2337, 2337, 2337, 2337, 2337, 2337, 2271, + 2338, 2339, 2340, 2271, 2341, 2271, 2342, 2271, + 2343, 2271, 2344, 2271, 2345, 2271, 2346, 2271, + 2347, 2271, 2348, 2271, 2349, 2271, 2350, 2271, + 2351, 2271, 2352, 2271, 2353, 2271, 2354, 2271, + 2355, 2271, 2356, 2271, 2357, 2271, 2358, 2358, + 2358, 2358, 2358, 2358, 2271, 2359, 2271, 2360, + 2271, 2361, 2310, 2362, 2362, 2362, 2362, 2362, + 2362, 2363, 2310, 2364, 2271, 2365, 2271, 2366, + 2271, 2367, 2271, 2368, 2271, 2369, 2271, 2370, + 2371, 2271, 2372, 2271, 2373, 2271, 2374, 2375, + 2271, 2376, 2376, 2376, 2376, 2376, 2376, 2271, + 2377, 2377, 2377, 2377, 2377, 2377, 2271, 2378, + 2271, 2379, 2271, 2380, 2271, 2381, 2381, 2381, + 2381, 2381, 2381, 2271, 2383, 2383, 2384, 2385, + 2386, 2387, 2388, 2388, 2389, 2390, 2382, 2391, + 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, + 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2405, + 2406, 2407, 2382, 2408, 2382, 2409, 2382, 2410, + 2382, 2411, 2382, 2382, 2413, 2382, 2382, 2382, + 2412, 2414, 2414, 2415, 2416, 2417, 2418, 2419, + 2419, 2420, 2421, 2382, 2423, 2422, 2382, 2424, + 2382, 2425, 2382, 2426, 2382, 2427, 2382, 2428, + 2382, 2429, 2382, 2430, 2382, 2382, 2432, 2382, + 2382, 2382, 2431, 2433, 2433, 2434, 2435, 2436, + 2437, 2438, 2438, 2439, 2440, 2382, 2433, 2433, + 2434, 2435, 2436, 2437, 2438, 2438, 2439, 2440, + 2441, 2441, 2441, 2382, 2442, 2382, 2443, 2443, + 2444, 2445, 2446, 2447, 2448, 2448, 2449, 2450, + 2382, 2451, 2382, 2452, 2382, 2453, 2382, 2454, + 2455, 2455, 2455, 2455, 2382, 2456, 2456, 2456, + 2456, 2382, 2457, 2457, 2457, 2457, 2382, 2458, + 2459, 2458, 2458, 2458, 2382, 2460, 2461, 2460, + 2460, 2460, 2382, 2442, 2462, 2462, 2462, 2462, + 2382, 2461, 2382, 2463, 2463, 2463, 2463, 2382, + 2464, 2465, 2464, 2464, 2464, 2382, 2466, 2467, + 2466, 2466, 2466, 2382, 2433, 2433, 2434, 2435, + 2468, 2436, 2437, 2438, 2438, 2439, 2440, 2468, + 2468, 2468, 2382, 2467, 2382, 2469, 2382, 2470, + 2382, 2471, 2472, 2382, 2473, 2382, 2474, 2382, + 2475, 2382, 2476, 2382, 2477, 2382, 2479, 2480, + 2480, 2478, 2481, 2481, 2478, 2482, 2483, 2484, + 2484, 2478, 2485, 2485, 2478, 2486, 2486, 2487, + 2488, 2489, 2490, 2491, 2492, 2493, 2493, 2494, + 2495, 2490, 2478, 2496, 2496, 2478, 2497, 2382, + 2498, 2382, 2499, 2382, 2500, 2382, 2501, 2382, + 2502, 2503, 2503, 2503, 2503, 2478, 2504, 2504, + 2504, 2504, 2478, 2505, 2506, 2507, 2507, 2507, + 2507, 2478, 2508, 2508, 2508, 2508, 2478, 2509, + 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, + 2516, 2517, 2518, 2513, 2513, 2513, 2478, 2519, + 2519, 2519, 2519, 2478, 2520, 2382, 2521, 2382, + 2523, 2522, 2524, 2524, 2525, 2526, 2528, 2529, + 2530, 2531, 2531, 2532, 2533, 2527, 2522, 2382, + 2382, 2382, 2382, 2431, 2534, 2382, 2535, 2382, + 2536, 2382, 2537, 2382, 2538, 2382, 2539, 2382, + 2540, 2382, 2541, 2382, 2542, 2382, 2543, 2544, + 2544, 2382, 2545, 2545, 2382, 2546, 2547, 2382, + 2548, 2548, 2382, 2549, 2549, 2550, 2551, 2552, + 2553, 2554, 2555, 2555, 2556, 2557, 2382, 2558, + 2558, 2382, 2559, 2382, 2560, 2382, 2561, 2382, + 2562, 2382, 2563, 2382, 2564, 2382, 2565, 2382, + 2566, 2382, 2567, 2382, 2568, 2382, 2569, 2382, + 2570, 2382, 2571, 2382, 2572, 2382, 2573, 2573, + 2574, 2575, 2576, 2577, 2578, 2578, 2579, 2580, + 2382, 2581, 2382, 2582, 2382, 2583, 2382, 2584, + 2382, 2585, 2585, 2586, 2587, 2588, 2589, 2590, + 2590, 2591, 2592, 2382, 2593, 2382, 2594, 2382, + 2595, 2382, 2596, 2382, 2597, 2598, 2522, 2599, + 2522, 2600, 2601, 2522, 2602, 2602, 2603, 2604, + 2606, 2607, 2608, 2608, 2609, 2610, 2605, 2522, + 2414, 2414, 2415, 2416, 2417, 2418, 2419, 2419, + 2420, 2421, 2611, 2611, 2611, 2382, 2612, 2382, + 2613, 2613, 2614, 2615, 2616, 2617, 2618, 2619, + 2620, 2621, 2622, 2622, 2623, 2624, 2382, 2625, + 2625, 2626, 2627, 2628, 2629, 2630, 2630, 2631, + 2632, 2382, 2634, 2633, 2382, 2635, 2382, 2636, + 2382, 2637, 2382, 2638, 2382, 2639, 2382, 2640, + 2382, 2641, 2382, 2642, 2382, 2643, 2382, 2644, + 2382, 2645, 2382, 2646, 2382, 2647, 2382, 2648, + 2382, 2649, 2382, 2650, 2382, 2651, 2382, 2652, + 2382, 2653, 2654, 2654, 2654, 2654, 2654, 2654, + 2382, 2655, 2655, 2655, 2655, 2655, 2655, 2382, + 2656, 2657, 2382, 2658, 2658, 2659, 2660, 2661, + 2662, 2663, 2663, 2664, 2665, 2382, 2666, 2666, + 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, + 2630, 2630, 2675, 2676, 2382, 2677, 2382, 2678, + 2382, 2679, 2522, 2680, 2680, 2681, 2682, 2684, + 2685, 2686, 2687, 2687, 2688, 2689, 2683, 2522, + 2382, 2382, 2382, 2382, 2690, 2691, 2691, 2692, + 2693, 2694, 2695, 2696, 2696, 2697, 2698, 2382, + 2700, 2699, 2382, 2701, 2382, 2702, 2382, 2703, + 2382, 2704, 2382, 2705, 2382, 2706, 2382, 2707, + 2382, 2708, 2382, 2709, 2382, 2710, 2711, 2711, + 2382, 2712, 2712, 2382, 2713, 2714, 2382, 2715, + 2715, 2382, 2716, 2716, 2717, 2718, 2719, 2720, + 2721, 2722, 2722, 2723, 2724, 2382, 2725, 2725, + 2382, 2726, 2382, 2727, 2382, 2728, 2382, 2729, + 2382, 2730, 2382, 2731, 2382, 2732, 2733, 2382, + 2734, 2382, 2735, 2382, 2736, 2737, 2382, 2738, + 2382, 2739, 2740, 2740, 2478, 2741, 2741, 2478, + 2742, 2743, 2744, 2744, 2478, 2745, 2745, 2478, + 2746, 2746, 2747, 2748, 2749, 2750, 2751, 2752, + 2753, 2753, 2754, 2755, 2750, 2478, 2756, 2756, + 2478, 2757, 2382, 2758, 2759, 2759, 2759, 2759, + 2478, 2760, 2760, 2760, 2760, 2478, 2761, 2762, + 2763, 2763, 2763, 2763, 2478, 2764, 2764, 2764, + 2764, 2478, 2765, 2765, 2766, 2767, 2768, 2769, + 2770, 2771, 2772, 2772, 2773, 2774, 2769, 2769, + 2769, 2478, 2775, 2775, 2775, 2775, 2478, 2776, + 2382, 2777, 2382, 2778, 2382, 2779, 2382, 2780, + 2780, 2780, 2780, 2780, 2780, 2382, 2781, 2781, + 2782, 2783, 2784, 2785, 2786, 2787, 2787, 2788, + 2789, 2382, 2790, 2790, 2790, 2790, 2790, 2790, + 2382, 2793, 2794, 2795, 2796, 2797, 2793, 2794, + 2795, 2796, 2797, 2792, 2791, 2798, 2798, 2798, + 2798, 2799, 2791, 2800, 2801, 2800, 2801, 2791, + 2802, 2802, 2802, 2802, 2791, 2803, 2803, 2791, + 2804, 2805, 2804, 2804, 2804, 2791, 2806, 2806, + 2791, 2807, 2807, 2791, 2808, 2808, 2791, 2809, + 2809, 2791, 2810, 2791, 2811, 2791, 2812, 2812, + 2791, 2813, 2813, 2791, 2814, 2814, 2791, 2815, + 2791, 2816, 2816, 2816, 2816, 2791, 2817, 2818, + 2817, 2818, 2791, 2819, 2820, 2819, 2820, 2791, + 2821, 2791, 2822, 2822, 2791, 2823, 2823, 2791, + 2824, 2824, 2791, 2825, 2825, 2791, 2826, 2826, + 2826, 2826, 2791, 2827, 2827, 2791, 2828, 2828, + 2791, 2829, 2829, 2791, 2830, 2831, 2791, 2832, + 2791, 2833, 2791, 2834, 2834, 2791, 2835, 2835, + 2791, 2836, 2836, 2791, 2837, 2791, 2838, 2791, + 2839, 2791, 2840, 2840, 2840, 2840, 2791, 2841, + 2791, 2842, 2791, 2843, 2843, 2791, 2844, 2844, + 2791, 2845, 2845, 2791, 2846, 2791, 2847, 2791, + 2848, 2791, 2849, 2849, 2849, 2849, 2791, 2850, + 2851, 2791, 2852, 2791, 2853, 2791, 2854, 2791, + 2855, 2791, 2856, 2856, 2856, 2856, 2791, 2857, + 2791, 2858, 2791, 2859, 2859, 2859, 2859, 2791, + 2860, 2860, 2791, 2861, 2861, 2791, 2862, 2862, + 2791, 2863, 2863, 2791, 2864, 2864, 2791, 2865, + 2865, 2791, 2866, 2866, 2791, 2867, 2867, 2867, + 2867, 2791, 2868, 2868, 2791, 2869, 2869, 2791, + 2870, 2870, 2791, 2871, 2871, 2791, 2872, 2872, + 2791, 2873, 2873, 2791, 2874, 2875, 2874, 2875, + 2791, 2876, 2876, 2791, 2877, 2877, 2791, 2878, + 2878, 2878, 2878, 2791, 2879, 2879, 2791, 2880, + 2880, 2791, 2881, 2881, 2881, 2881, 2791, 2882, + 2882, 2791, 2883, 2883, 2791, 2884, 2885, 2884, + 2885, 2791, 2886, 2886, 2791, 2887, 2791, 2888, + 2888, 2888, 2888, 2791, 2889, 2889, 2791, 2890, + 2890, 2791, 2891, 2892, 2893, 2791, 2894, 2895, + 2894, 2894, 2894, 2791, 2896, 2896, 2791, 2897, + 2897, 2791, 2898, 2898, 2791, 2899, 2899, 2791, + 2900, 2791, 2901, 2791, 2902, 2902, 2791, 2903, + 2903, 2791, 2904, 2904, 2791, 2905, 2791, 2906, + 2906, 2906, 2906, 2791, 2907, 2791, 2908, 2791, + 2909, 2909, 2909, 2909, 2791, 2910, 2791, 2911, + 2791, 2912, 2912, 2912, 2912, 2791, 2915, 2916, + 2917, 2918, 2919, 2920, 2915, 2916, 2917, 2918, + 2919, 2920, 2914, 2913, 2921, 2921, 2921, 2921, + 2922, 2913, 2923, 2923, 2913, 2924, 2924, 2913, + 2925, 2925, 2913, 2926, 2926, 2913, 2927, 2927, + 2913, 2928, 2928, 2928, 2928, 2913, 2929, 2930, + 2931, 2929, 2930, 2931, 2913, 2932, 2932, 2913, + 2933, 2933, 2913, 2934, 2934, 2913, 2935, 2935, + 2913, 2936, 2936, 2913, 2937, 2937, 2937, 2937, + 2913, 2938, 2939, 2938, 2939, 2913, 2940, 2940, + 2913, 2941, 2941, 2941, 2941, 2913, 2942, 2942, + 2913, 2943, 2943, 2913, 2944, 2944, 2944, 2944, + 2913, 2945, 2945, 2913, 2946, 2946, 2913, 2947, + 2947, 2913, 2948, 2948, 2948, 2948, 2913, 2949, + 2949, 2913, 2950, 2950, 2913, 2951, 2951, 2951, + 2951, 2913, 2952, 2953, 2952, 2953, 2913, 2954, + 2954, 2913, 2955, 2955, 2955, 2955, 2913, 2956, + 2956, 2913, 2957, 2957, 2913, 2958, 2958, 2958, + 2958, 2913, 2959, 2959, 2913, 2960, 2960, 2913, + 2961, 2961, 2913, 2962, 2962, 2962, 2962, 2913, + 2963, 2963, 2913, 2964, 2964, 2913, 2965, 2965, + 2965, 2965, 2913, 2968, 2968, 2967, 2966, 2969, + 2969, 2969, 2969, 2970, 2966, 2971, 2971, 2966, + 2972, 2972, 2966, 2973, 2973, 2966, 2974, 2974, + 2966, 2975, 2975, 2966, 2976, 2976, 2976, 2976, + 2966, 2978, 2978, 2977, 2979, 2980, 2979, 2979, + 2979, 2980, 2977, 2981, 2981, 2981, 2981, 2981, + 2981, 78, 2982, 2982, 2982, 2982, 78, 2983, + 2983, 2983, 2983, 2983, 2983, 78, 2984, 2984, + 2985, 2986, 2987, 2988, 78, 2989, 2989, 2990, + 2991, 2992, 2992, 2992, 2993, 2994, 2992, 2992, + 2992, 78, 2995, 2995, 2996, 2997, 2998, 2999, + 78, 3001, 3001, 3002, 3003, 3005, 3006, 3004, + 3000, 3007, 3007, 3008, 3009, 3011, 3012, 3010, + 3000, 3013, 3013, 3014, 3015, 3017, 3018, 3016, + 3000, 3020, 3020, 3021, 3022, 3024, 3025, 3026, + 3027, 3028, 3024, 3025, 3026, 3027, 3028, 3029, + 3030, 3023, 3019, 3031, 3031, 3032, 3033, 3035, + 3036, 3034, 3000, 3037, 3037, 3038, 3039, 3041, + 3042, 3043, 3044, 3045, 3041, 3042, 3043, 3044, + 3045, 3046, 3047, 3040, 3019, 3048, 3048, 3049, + 3050, 3052, 3053, 3051, 3000, 3054, 3054, 3055, + 3056, 3058, 3059, 3060, 3061, 3062, 3058, 3059, + 3060, 3061, 3062, 3063, 3064, 3057, 3019, 3065, + 3065, 3066, 3067, 3069, 3070, 3068, 3000, 3071, + 3071, 3073, 3074, 3075, 3076, 3077, 3073, 3074, + 3075, 3076, 3077, 3071, 3071, 3072, 3019, 3071, + 3071, 3071, 3071, 3078, 3019, 3080, 3081, 3082, + 3083, 3084, 3080, 3081, 3082, 3083, 3084, 3079, + 3019, 3085, 3085, 3085, 3085, 3086, 3019, 3088, + 3087, 78, 3054, 3054, 3055, 3056, 3063, 3064, + 3089, 3019, 3091, 3092, 3093, 3094, 3095, 3091, + 3092, 3093, 3094, 3095, 3090, 3019, 3096, 3096, + 3097, 3098, 3100, 3101, 3099, 3019, 3103, 3102, + 78, 3037, 3037, 3038, 3039, 3046, 3047, 3104, + 3019, 3106, 3107, 3108, 3109, 3110, 3106, 3107, + 3108, 3109, 3110, 3105, 3019, 3111, 3111, 3112, + 3113, 3115, 3116, 3114, 3019, 3118, 3117, 78, + 3020, 3020, 3021, 3022, 3029, 3030, 3119, 3019, + 3121, 3122, 3123, 3124, 3125, 3121, 3122, 3123, + 3124, 3125, 3120, 3019, 3126, 3126, 3127, 3128, + 3130, 3131, 3129, 3019, 3133, 3132, 78, 3135, + 3134, 78, 3137, 3136, 78, 78, 78, 78, + 78, 3138, 3139, 3139, 3140, 3141, 3142, 3143, + 78, 3145, 3145, 3146, 3147, 3148, 3149, 3144, + 3144, 3144, 78, 3150, 3150, 3150, 3150, 78, + 3152, 3151, 78, 3153, 3153, 3153, 3153, 3153, + 3153, 78, 3154, 3154, 3155, 3156, 3157, 3158, + 78, 3159, 3159, 3160, 3161, 3162, 3162, 3162, + 3163, 3164, 3162, 3162, 3162, 78, 3165, 3165, + 3165, 3165, 78, 3167, 3166, 78, 3168, 3000, + 3169, 3169, 3170, 3171, 3173, 3174, 3172, 3000, + 3175, 3175, 3176, 3177, 3178, 3178, 3178, 3179, + 3180, 3178, 3178, 3178, 78, 3181, 3181, 3181, + 3181, 78, 3183, 3182, 78, 3185, 3185, 3185, + 3185, 3184, 3186, 3186, 3187, 3188, 3189, 3190, + 3191, 3191, 3192, 3193, 3185, 3195, 3195, 3196, + 3197, 3198, 3199, 3200, 3200, 3201, 3202, 3194, + 3194, 3194, 3185, 3204, 3203, 3185, 3205, 3205, + 3205, 3205, 2977, 3206, 3207, 3206, 3206, 3206, + 3207, 3207, 3207, 2977, 3209, 3208, 3210, 3210, + 3211, 3212, 3214, 3215, 3213, 3208, 3216, 3216, + 3217, 3218, 3220, 3221, 3222, 3223, 3219, 3208, + 3224, 3224, 3225, 3226, 3228, 3229, 3227, 3208, + 3230, 3230, 3231, 3232, 3220, 3221, 3234, 3235, + 3233, 3208, 3236, 3236, 3237, 3238, 3239, 3241, + 3242, 3240, 3208, 3243, 3243, 3244, 3245, 3220, + 3221, 3246, 3247, 3208, 3248, 3248, 3249, 3250, + 3251, 3252, 3208, 3248, 3248, 3249, 3250, 3251, + 3252, 3253, 3208, 3254, 3254, 3255, 3256, 3258, + 3259, 3257, 3208, 3260, 3260, 3261, 3262, 3264, + 3265, 3266, 3267, 3263, 3208, 3268, 3268, 3269, + 3270, 3272, 3273, 3271, 3208, 3274, 3274, 3275, + 3276, 3264, 3265, 3278, 3279, 3277, 3208, 3280, + 3280, 3281, 3282, 3283, 3285, 3286, 3284, 3208, + 3287, 3287, 3288, 3289, 3264, 3265, 3290, 3291, + 3208, 3292, 3292, 3293, 3294, 3295, 3296, 3208, + 3292, 3292, 3293, 3294, 3297, 3295, 3296, 3298, + 3208, 3299, 3208, 3300, 3300, 3301, 3302, 3303, + 3305, 3306, 3307, 3308, 3308, 3309, 3310, 3304, + 3208, 3311, 3311, 3312, 3313, 3315, 3316, 3317, + 3317, 3318, 3319, 3314, 3208, 3320, 3320, 3321, + 3322, 3323, 3325, 3326, 3327, 3328, 3328, 3329, + 3330, 3324, 3208, 3331, 3331, 3332, 3333, 3335, + 3336, 3317, 3317, 3337, 3338, 3334, 3208, 3339, + 3339, 3340, 3341, 3342, 3344, 3345, 3346, 3347, + 3347, 3348, 3349, 3343, 3208, 3350, 3350, 3351, + 3352, 3354, 3355, 3317, 3317, 3356, 3357, 3353, + 3208, 3358, 3358, 3359, 3360, 3361, 3358, 3363, + 3364, 3365, 3365, 3366, 3367, 3362, 3208, 3368, + 3368, 3369, 3370, 3371, 3372, 3317, 3317, 3373, + 3374, 3208, 3376, 3375, 3208, 3377, 3377, 3378, + 3379, 3377, 3381, 3382, 3383, 3383, 3384, 3385, + 3380, 3208, 3358, 3358, 3359, 3360, 3358, 3363, + 3364, 3365, 3365, 3366, 3367, 3386, 3208, 3388, + 3387, 3208, 3389, 3389, 3390, 3391, 3393, 3394, + 3395, 3396, 3396, 3397, 3398, 3392, 3208, 3339, + 3339, 3340, 3341, 3344, 3345, 3346, 3347, 3347, + 3348, 3349, 3399, 3208, 3350, 3350, 3351, 3352, + 3354, 3355, 3317, 3317, 3356, 3357, 3208, 3401, + 3400, 3208, 3402, 3402, 3403, 3404, 3406, 3407, + 3408, 3409, 3409, 3410, 3411, 3405, 3208, 3320, + 3320, 3321, 3322, 3325, 3326, 3327, 3328, 3328, + 3329, 3330, 3412, 3208, 3331, 3331, 3332, 3333, + 3335, 3336, 3317, 3317, 3337, 3338, 3208, 3414, + 3413, 3208, 3415, 3415, 3416, 3417, 3419, 3420, + 3421, 3422, 3422, 3423, 3424, 3418, 3208, 3300, + 3300, 3301, 3302, 3305, 3306, 3307, 3308, 3308, + 3309, 3310, 3425, 3208, 3311, 3311, 3312, 3313, + 3315, 3316, 3317, 3317, 3318, 3319, 3208, 3427, + 3426, 3208, 3428, 3428, 3429, 3430, 3431, 3432, + 3208, 3434, 3433, 3208, 3435, 3435, 3436, 3437, + 3439, 3440, 3438, 3208, 3280, 3280, 3281, 3282, + 3285, 3286, 3441, 3208, 3443, 3442, 3208, 3445, + 3444, 3208, 3447, 3446, 3208, 3448, 3448, 3449, + 3450, 3451, 3452, 3208, 3454, 3453, 3208, 3455, + 3455, 3456, 3457, 3459, 3460, 3458, 3208, 3236, + 3236, 3237, 3238, 3241, 3242, 3461, 3208, 3463, + 3462, 3208, 3465, 3464, 3208, 3466, 3000, 3467, + 3467, 3468, 3469, 3471, 3472, 3470, 3000, 3473, + 3473, 3474, 3475, 3477, 3478, 3476, 3000, 3479, + 3479, 3480, 3481, 3483, 3484, 3482, 3000, 3485, + 3485, 3486, 3487, 3489, 3490, 3488, 3000, 3491, + 3491, 3492, 3493, 3495, 3496, 3494, 3000, 3497, + 3497, 3498, 3499, 3500, 3500, 3500, 3501, 3502, + 3500, 3500, 3500, 78, 3503, 3503, 3503, 3503, + 78, 3505, 3504, 78, 3507, 3506, 78, 3509, + 3508, 78, 3510, 3000, 3511, 3511, 3512, 3513, + 3515, 3516, 3514, 3000, 3517, 3517, 3518, 3519, + 3521, 3522, 3520, 3000, 3523, 3523, 3524, 3525, + 3527, 3528, 3526, 3000, 3530, 3530, 3531, 3532, + 3533, 3534, 3529, 3529, 3529, 78, 3535, 3535, + 3536, 3537, 3538, 3539, 78, 3541, 3541, 3542, + 3543, 3544, 3545, 3540, 3540, 3540, 78, 3546, + 3546, 3547, 3548, 3549, 3550, 78, 3552, 3552, + 3553, 3554, 3555, 3556, 3551, 3551, 3551, 78, + 3557, 3557, 3558, 3559, 3560, 3561, 78, 3562, + 3562, 3563, 3564, 3565, 3565, 3565, 3566, 3567, + 3565, 3565, 3565, 78, 3568, 3568, 3568, 3568, + 78, 3570, 3569, 78, 3572, 3571, 78, 3574, + 3573, 78, 3576, 3575, 78, 3578, 3577, 78, + 3579, 3579, 3579, 78, 3580, 3580, 3581, 3582, + 3583, 3584, 78, 3580, 3580, 3581, 3582, 3583, + 3584, 3585, 3000, 3586, 3586, 3587, 3588, 3590, + 3591, 3589, 3000, 3592, 3592, 3593, 3594, 3596, + 3597, 3595, 3595, 3595, 78, 3598, 3598, 3599, + 3600, 3601, 3602, 78, 3598, 3598, 3599, 3600, + 3603, 3601, 3602, 3603, 3603, 3603, 78, 3604, + 3604, 78, 3606, 3605, 78, 3608, 3607, 78, + 3610, 3609, 78, 3612, 3612, 3613, 3614, 3615, + 3616, 3617, 3618, 3619, 3620, 3620, 3621, 3622, + 3611, 3623, 3624, 3611, 3625, 3611, 3627, 3627, + 3626, 3629, 3628, 3626, 3630, 3611, 3631, 3631, + 3632, 3633, 3635, 3636, 3637, 3637, 3638, 3639, + 3634, 3611, 3641, 3640, 78, 3642, 3611, 3643, + 3643, 3643, 3643, 3626, 3645, 3644, 3644, 3644, + 3626, 3646, 3000, 3647, 3647, 3648, 3649, 3651, + 3652, 3650, 3000, 3653, 3653, 3654, 3655, 3657, + 3658, 3656, 3656, 3656, 78, 3659, 3659, 3660, + 3661, 3662, 3663, 78, 3659, 3659, 3660, 3661, + 3662, 3663, 3664, 3000, 3665, 3665, 3666, 3667, + 3669, 3670, 3668, 3000, 3672, 3672, 3673, 3674, + 3676, 3677, 3675, 3675, 3675, 3671, 3678, 3678, + 3678, 3671, 3679, 3679, 3680, 3681, 3682, 3683, + 3684, 3684, 3685, 3686, 3675, 3675, 3675, 3671, + 3688, 3687, 3671, 3690, 3689, 78, 3692, 3691, + 78, 3694, 3693, 78, 3695, 3000, 3696, 3696, + 3697, 3698, 3700, 3701, 3699, 3000, 3702, 3702, + 3703, 3704, 3706, 3707, 3705, 3000, 3708, 3708, + 3709, 3710, 3712, 3713, 3711, 3000, 3714, 3714, + 3715, 3716, 3718, 3719, 3717, 3717, 3717, 3671, + 3720, 3720, 3720, 3671, 3721, 3721, 3722, 3723, + 3724, 3725, 3726, 3726, 3727, 3728, 3717, 3717, + 3717, 3671, 3730, 3729, 3671, 3732, 3731, 78, + 3734, 3733, 78, 3735, 3000, 3736, 3736, 3737, + 3738, 3740, 3741, 3739, 3000, 3743, 3743, 3744, + 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3742, + 3752, 3752, 3753, 3754, 3755, 3756, 3742, 3752, + 3752, 3753, 3754, 3755, 3756, 3758, 3757, 3759, + 3759, 3760, 3761, 3763, 3764, 3762, 3757, 3765, + 3765, 3766, 3767, 3768, 3769, 3770, 3742, 3772, + 3772, 3773, 3774, 3775, 3775, 3776, 3777, 3778, + 3778, 3779, 3780, 3781, 3781, 3781, 3781, 3782, + 3783, 3781, 3781, 3784, 3785, 3786, 3787, 3781, + 3781, 3788, 3789, 3790, 3791, 3781, 3781, 3792, + 3793, 3771, 3772, 3772, 3773, 3774, 3795, 3782, + 3783, 3795, 3795, 3795, 3794, 3781, 3781, 3794, + 3797, 3796, 3794, 3775, 3775, 3776, 3777, 3781, + 3781, 3781, 3781, 3786, 3787, 3781, 3781, 3788, + 3789, 3794, 3799, 3798, 3794, 3795, 3772, 3772, + 3773, 3774, 3775, 3775, 3776, 3777, 3778, 3778, + 3779, 3780, 3781, 3781, 3781, 3781, 3782, 3783, + 3781, 3781, 3784, 3785, 3786, 3787, 3781, 3781, + 3788, 3789, 3790, 3791, 3781, 3781, 3792, 3793, + 3795, 3795, 3795, 3794, 3797, 3799, 3801, 3796, + 3798, 3800, 3794, 3803, 3802, 3742, 3805, 3804, + 3742, 3806, 3806, 3807, 3808, 3809, 3810, 3742, + 3806, 3806, 3807, 3808, 3809, 3810, 3811, 3757, + 3812, 3812, 3813, 3814, 3816, 3817, 3815, 3757, + 3819, 3819, 3820, 3821, 3822, 3823, 3824, 3822, + 3818, 3826, 3827, 3827, 3828, 3829, 3830, 3830, + 3831, 3832, 3833, 3833, 3834, 3835, 3836, 3836, + 3836, 3836, 3837, 3838, 3836, 3836, 3839, 3840, + 3841, 3842, 3836, 3836, 3843, 3844, 3845, 3846, + 3836, 3836, 3847, 3848, 3826, 3825, 3850, 3849, + 3742, 3852, 3851, 3742, 3853, 3853, 3854, 3855, + 3856, 3857, 3742, 3853, 3853, 3854, 3855, 3856, + 3857, 3858, 3757, 3859, 3859, 3860, 3861, 3863, + 3864, 3862, 3757, 3865, 3865, 3866, 3867, 3868, + 3869, 3870, 3868, 3868, 3868, 3818, 3871, 3872, + 3872, 3873, 3874, 3875, 3875, 3876, 3877, 3878, + 3878, 3879, 3880, 3881, 3881, 3881, 3881, 3882, + 3883, 3881, 3881, 3884, 3885, 3886, 3887, 3881, + 3881, 3888, 3889, 3890, 3891, 3881, 3881, 3892, + 3893, 3871, 3871, 3871, 3825, 3895, 3894, 3742, + 3897, 3896, 3742, 3898, 3898, 3899, 3900, 3901, + 3902, 3742, 3898, 3898, 3899, 3900, 3901, 3902, + 3903, 3757, 3904, 3904, 3905, 3906, 3908, 3909, + 3907, 3757, 3910, 3910, 3911, 3912, 3913, 3913, + 3913, 3914, 3915, 3913, 3913, 3913, 3742, 3916, + 3916, 3917, 3918, 3919, 3919, 3920, 3921, 3922, + 3922, 3923, 3924, 3925, 3925, 3925, 3925, 3926, + 3927, 3925, 3925, 3928, 3929, 3930, 3931, 3925, + 3925, 3932, 3933, 3934, 3935, 3925, 3925, 3936, + 3937, 3771, 3939, 3938, 3742, 3941, 3940, 3742, + 3943, 3942, 78, 3944, 3944, 3944, 78, 3945, + 3945, 3946, 3947, 3948, 3949, 78, 3945, 3945, + 3946, 3947, 3948, 3949, 3950, 3950, 3950, 78, + 3951, 3951, 3952, 3953, 3954, 3955, 78, 3951, + 3951, 3952, 3953, 3954, 3955, 3956, 3000, 3957, + 3957, 3958, 3959, 3961, 3962, 3960, 3000, 3963, + 3963, 3964, 3965, 3967, 3968, 3966, 3000, 3969, + 3969, 3970, 3971, 3973, 3974, 3972, 3000, 3976, + 3976, 3977, 3978, 3980, 3981, 3979, 3975, 3982, + 3982, 3983, 3984, 3986, 3987, 3985, 3975, 3988, + 3988, 3989, 3990, 3992, 3993, 3991, 3975, 3994, + 3994, 3995, 3996, 3998, 3999, 3997, 3975, 4000, + 4000, 4001, 4002, 4004, 4005, 4003, 3000, 4006, + 4006, 4007, 4008, 4010, 4011, 4009, 3000, 4012, + 4012, 4013, 4014, 4015, 4015, 4015, 4016, 4017, + 4015, 4015, 4015, 78, 4018, 4018, 4019, 4020, + 4021, 4022, 78, 4023, 4023, 4024, 4025, 4026, + 4027, 4028, 4026, 4026, 4026, 78, 4029, 4029, + 78, 4031, 4030, 78, 4033, 4032, 78, 4035, + 4034, 78, 4037, 4036, 78, 4039, 4038, 78, + 4041, 4040, 78, 4043, 4042, 78, 4045, 4044, + 78, 4046, 4046, 4046, 4046, 4046, 4046, 78, + 4047, 4047, 4047, 4047, 78, 4048, 4048, 4048, + 4048, 78, 4049, 3000, 4050, 4050, 4051, 4052, + 4054, 4055, 4053, 3000, 4056, 4056, 4057, 4058, + 4060, 4061, 4059, 3000, 4062, 4062, 4063, 4064, + 4066, 4067, 4065, 3000, 4068, 4068, 4069, 4070, + 4072, 4073, 4071, 4071, 4071, 78, 4074, 4074, + 4075, 4076, 4077, 4078, 78, 4074, 4074, 4075, + 4076, 4079, 4077, 4078, 4079, 4079, 4079, 78, + 4080, 4080, 78, 4082, 4081, 78, 4084, 4083, + 78, 4086, 4085, 78, 4087, 4087, 4087, 4087, + 78, 4088, 4088, 78, 4089, 3000, 4090, 4090, + 4091, 4092, 4094, 4095, 4093, 3000, 4096, 4096, + 4097, 4098, 4100, 4101, 4099, 3000, 4102, 4102, + 4103, 4104, 4106, 4107, 4105, 3000, 4108, 4108, + 4109, 4110, 4112, 4113, 4111, 3000, 4114, 4114, + 4115, 4116, 4118, 4119, 4117, 3000, 4120, 4120, + 4121, 4122, 4123, 4125, 4126, 4124, 4124, 4124, + 3671, 4127, 4127, 4128, 4129, 4130, 4131, 3671, + 4133, 4133, 4134, 4135, 4137, 4138, 4136, 4136, + 4136, 4132, 4139, 4139, 4139, 4132, 4141, 4140, + 4140, 4140, 4132, 4142, 4142, 4142, 4132, 4144, + 4143, 4143, 4143, 4132, 4146, 4145, 4145, 4145, + 4132, 4147, 4147, 4147, 4132, 4149, 4148, 4148, + 4148, 4132, 4150, 4150, 4150, 4150, 4151, 4151, + 4151, 4132, 4152, 4152, 4152, 4152, 78, 4153, + 4132, 4149, 4132, 4146, 4132, 4154, 4132, 4144, + 4132, 4156, 4155, 78, 4157, 4157, 4157, 3671, + 4127, 4127, 4128, 4129, 4130, 4131, 4158, 4158, + 4158, 3671, 4160, 4159, 78, 4162, 4161, 78, + 4164, 4163, 78, 4165, 3000, 4166, 4166, 4167, + 4168, 4170, 4171, 4169, 3000, 4172, 4172, 4173, + 4174, 4176, 4177, 4175, 3000, 4178, 4178, 4179, + 4180, 4182, 4183, 4181, 3000, 4184, 4184, 4185, + 4186, 4188, 4189, 4187, 3000, 4190, 4190, 4191, + 4192, 4194, 4195, 4193, 3000, 4196, 4196, 4197, + 4198, 4199, 4201, 4202, 4200, 4200, 4200, 3671, + 4203, 4203, 4203, 4203, 3671, 4204, 4204, 4204, + 3671, 4203, 4203, 4203, 4203, 4205, 4205, 4205, + 3671, 4207, 4206, 78, 4209, 4208, 78, 4211, + 4210, 78, 4212, 3000, 4213, 4213, 4214, 4215, + 4217, 4218, 4216, 3000, 4219, 4219, 4220, 4221, + 4223, 4224, 4222, 3000, 4225, 4225, 4226, 4227, + 4229, 4230, 4228, 3000, 4231, 4231, 4232, 4233, + 4235, 4236, 4234, 3000, 4237, 4237, 4238, 4239, + 4241, 4242, 4240, 3000, 4243, 4243, 4244, 4245, + 4247, 4248, 4246, 4246, 4246, 3671, 4249, 4249, + 4249, 3671, 4250, 4250, 4251, 4252, 4253, 4254, + 4255, 4255, 4256, 4257, 4246, 4246, 4246, 3671, + 4259, 4258, 3671, 4261, 4260, 78, 4263, 4262, + 78, 4265, 4264, 78, 4266, 3000, 4267, 4267, + 4268, 4269, 4271, 4272, 4270, 3000, 4273, 4273, + 4274, 4275, 4277, 4278, 4276, 3000, 4279, 4279, + 4279, 4279, 4280, 3000, 4281, 4281, 4281, 4281, + 78, 4283, 4282, 78, 4284, 3000, 4285, 4285, + 4286, 4287, 4289, 4290, 4288, 3000, 4291, 4291, + 4292, 4293, 4295, 4296, 4294, 3000, 4297, 4297, + 4298, 4299, 4301, 4302, 4300, 3000, 4303, 4303, + 4304, 4305, 4307, 4308, 4306, 3000, 4309, 4309, + 4310, 4311, 4313, 4314, 4312, 3000, 4315, 4315, + 4316, 4317, 4319, 4320, 4318, 4318, 4318, 3671, + 4321, 4321, 4321, 3671, 4322, 4322, 4323, 4324, + 4325, 4326, 4327, 4327, 4328, 4329, 4318, 4318, + 4318, 3671, 4331, 4330, 3671, 4333, 4332, 78, + 4335, 4334, 78, 4337, 4336, 78, 4338, 3000, + 4339, 4339, 4340, 4341, 4343, 4344, 4342, 3000, + 4345, 4345, 4346, 4347, 4348, 4349, 4350, 4348, + 2977, 4351, 4352, 4351, 4351, 4351, 4352, 2977, + 4354, 4353, 78, 4355, 3000, 4356, 4356, 4357, + 4358, 4360, 4361, 4359, 3000, 4362, 4362, 4363, + 4364, 4366, 4367, 4365, 4365, 4365, 3671, 4368, + 4368, 4368, 3671, 4369, 4369, 4369, 3671, 4370, + 4370, 4370, 3671, 4372, 4371, 4373, 4373, 4373, + 3671, 4374, 4374, 4374, 3671, 4375, 4375, 4375, + 3671, 4376, 4376, 4376, 3671, 4378, 4372, 4378, + 4378, 4378, 4377, 4380, 4379, 78, 4381, 4381, + 4381, 3671, 4382, 4382, 4382, 3671, 4384, 4383, + 4385, 4385, 4385, 3671, 4386, 4386, 4386, 3671, + 4387, 4384, 4387, 4387, 4387, 4383, 4388, 4388, + 4388, 3671, 4389, 4389, 4389, 3671, 4390, 4383, + 4391, 4391, 4391, 3671, 4392, 4392, 4392, 3671, + 4393, 4390, 4393, 4393, 4393, 4383, 4394, 3000, + 4395, 4395, 4396, 4397, 4399, 4400, 4398, 3000, + 4401, 4401, 4402, 4403, 4405, 4406, 4404, 3000, + 4407, 4407, 4408, 4409, 4411, 4412, 4410, 3000, + 4414, 4414, 4415, 4416, 4417, 4418, 4413, 4413, + 4413, 78, 4419, 4419, 4419, 4419, 78, 4421, + 4420, 78, 4423, 4422, 78, 4424, 3000, 4425, + 4425, 4426, 4427, 4429, 4430, 4428, 3000, 4432, + 4432, 4433, 4434, 4435, 4436, 4431, 4431, 4431, + 78, 4437, 4437, 4438, 4439, 4440, 4441, 78, + 4443, 4443, 4444, 4445, 4446, 4447, 4442, 4442, + 4442, 78, 4448, 4448, 4448, 4448, 78, 4450, + 4449, 78, 4452, 4451, 78, 4453, 3000, 4454, + 4454, 4455, 4456, 4458, 4459, 4457, 3000, 4460, + 4460, 4461, 4462, 4463, 4463, 4463, 4464, 4465, + 4463, 4463, 4463, 78, 4466, 4466, 4466, 4466, + 78, 4467, 4467, 4467, 4467, 78, 4469, 4468, + 78, 4470, 4470, 4470, 78, 4471, 4471, 4472, + 4473, 4474, 4475, 78, 4471, 4471, 4472, 4473, + 4474, 4475, 4476, 4476, 4476, 78, 4477, 4477, + 4478, 4479, 4480, 4481, 78, 4477, 4477, 4478, + 4479, 4480, 4481, 4482, 3000, 4483, 4483, 4484, + 4485, 4487, 4488, 4486, 3000, 4489, 4489, 4490, + 4491, 4492, 4492, 4492, 4493, 4494, 4492, 4492, + 4492, 78, 4495, 4495, 4495, 4495, 78, 4497, + 4496, 78, 4499, 4498, 78, 4501, 4500, 78, + 4502, 4502, 4502, 4502, 4502, 4502, 78, 4503, + 4503, 4503, 4503, 78, 4505, 4505, 4506, 4507, + 4508, 4509, 4509, 4509, 4510, 4511, 4512, 4513, + 4509, 4509, 4509, 4504, 4514, 4514, 4515, 4516, + 4517, 4518, 76, 4519, 4518, 4510, 4511, 4520, + 4521, 4522, 4523, 4524, 4525, 76, 76, 4518, + 76, 4518, 76, 4518, 76, 940, 4527, 4527, + 4506, 4528, 4529, 4509, 4530, 4531, 4532, 4533, + 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, + 4542, 4543, 4544, 4545, 4546, 4547, 4509, 4509, + 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, + 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, + 4546, 4547, 4510, 4511, 4548, 4549, 4509, 4509, + 4509, 4526, 4527, 4527, 4506, 4528, 4529, 4509, + 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, + 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, + 4568, 4569, 4509, 4509, 4552, 4553, 4554, 4555, + 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, + 4564, 4565, 4566, 4567, 4568, 4569, 4510, 4511, + 4548, 4549, 4509, 4551, 4509, 4509, 4550, 4571, + 4571, 4572, 4573, 4574, 4575, 4575, 4575, 4576, + 4577, 4578, 4579, 4575, 4575, 4575, 4570, 4505, + 4505, 4506, 4580, 4581, 4509, 4552, 4553, 4554, + 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, + 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4509, + 4509, 4552, 4553, 4554, 4555, 4556, 4557, 4558, + 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, + 4567, 4568, 4569, 4510, 4511, 4582, 4583, 4509, + 4551, 4509, 4509, 4550, 4584, 4584, 4506, 4585, + 4586, 4509, 4509, 4509, 90, 91, 4587, 4588, + 4509, 4509, 4509, 940, 4589, 4589, 4515, 4590, + 4591, 4518, 76, 4519, 4518, 90, 91, 4587, + 4592, 108, 109, 4587, 4593, 76, 76, 4518, + 76, 4518, 76, 4518, 76, 940, 4514, 4514, + 4515, 4516, 4517, 4518, 76, 4596, 4597, 4598, + 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, + 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4519, + 4518, 4596, 4597, 4598, 4599, 4600, 4601, 4602, + 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, + 4611, 4612, 4613, 4510, 4511, 4520, 4521, 4522, + 4523, 4524, 4525, 76, 76, 4518, 4595, 76, + 4518, 76, 4518, 76, 4594, 4589, 4589, 4515, + 4590, 4591, 4518, 76, 4596, 4597, 4598, 4599, + 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, + 4608, 4609, 4610, 4611, 4612, 4613, 4519, 4518, + 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, + 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, + 4612, 4613, 90, 91, 4614, 4592, 108, 109, + 4614, 4593, 76, 76, 4518, 4595, 76, 4518, + 76, 4518, 76, 4594, 847, 847, 847, 847, + 1116, 1117, 1116, 1119, 1116, 1117, 1118, 1117, + 1112, 847, 847, 847, 1274, 1274, 1275, 1276, + 1243, 1244, 1245, 1243, 1277, 1278, 1243, 1243, + 1243, 1249, 847, 1289, 1289, 1290, 1291, 1284, + 1292, 1293, 1294, 1294, 1295, 1296, 1284, 1284, + 1284, 1283, 1298, 1297, 1283, 847, 847, 1555, + 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, + 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, + 1571, 1572, 1573, 1574, 1575, 1558, 1559, 1560, + 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, + 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, + 1577, 1578, 1578, 1579, 1580, 1546, 1604, 1603, + 1546, 847, 2217, 2217, 2218, 2219, 2220, 2221, + 2222, 2222, 2223, 2224, 2213, 2213, 2213, 2209, + 2226, 2225, 2209, 2245, 2245, 2246, 2247, 2249, + 2250, 2248, 2248, 2248, 2209, 2195, 2252, 2252, + 2253, 2254, 2255, 2256, 2257, 2257, 2258, 2259, + 2248, 2248, 2248, 2209, 2261, 2260, 2209, 2263, + 2262, 2195, 847, 847, 847, 2391, 2391, 2392, + 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, + 2401, 2402, 2403, 2404, 2405, 2405, 2406, 2407, + 2382, 2423, 2422, 2382, 847, 2625, 2625, 2626, + 2627, 2628, 2629, 2630, 2630, 2631, 2632, 2382, + 2634, 2633, 2382, 2666, 2666, 2667, 2668, 2669, + 2670, 2671, 2672, 2673, 2674, 2630, 2630, 2675, + 2676, 2382, 2700, 2699, 2382, 847, 847, 847, + 847, 847, 847, 847, 847, 847, 847, 3195, + 3195, 3196, 3197, 3198, 3199, 3200, 3200, 3201, + 3202, 3194, 3194, 3194, 3185, 3204, 3203, 3185, + 847, 847, 3368, 3368, 3369, 3370, 3371, 3372, + 3317, 3317, 3373, 3374, 3208, 3376, 3375, 3208, + 3350, 3350, 3351, 3352, 3354, 3355, 3317, 3317, + 3356, 3357, 3353, 3208, 3388, 3387, 3208, 3331, + 3331, 3332, 3333, 3335, 3336, 3317, 3317, 3337, + 3338, 3334, 3208, 3401, 3400, 3208, 3311, 3311, + 3312, 3313, 3315, 3316, 3317, 3317, 3318, 3319, + 3314, 3208, 3414, 3413, 3208, 847, 847, 847, + 847, 3612, 3612, 3613, 3614, 3615, 3616, 3617, + 3618, 3619, 3620, 3620, 3621, 3622, 3611, 3641, + 3640, 78, 847, 3679, 3679, 3680, 3681, 3682, + 3683, 3684, 3684, 3685, 3686, 3675, 3675, 3675, + 3671, 3688, 3687, 3671, 847, 3721, 3721, 3722, + 3723, 3724, 3725, 3726, 3726, 3727, 3728, 3717, + 3717, 3717, 3671, 3730, 3729, 3671, 847, 3775, + 3775, 3776, 3777, 3781, 3781, 3781, 3781, 3786, + 3787, 3781, 3781, 3788, 3789, 3794, 3799, 3798, + 3794, 3772, 3772, 3773, 3774, 3795, 3782, 3783, + 3795, 3795, 3795, 3794, 3797, 3796, 3794, 3795, + 3772, 3772, 3773, 3774, 3775, 3775, 3776, 3777, + 3778, 3778, 3779, 3780, 3781, 3781, 3781, 3781, + 3782, 3783, 3781, 3781, 3784, 3785, 3786, 3787, + 3781, 3781, 3788, 3789, 3790, 3791, 3781, 3781, + 3792, 3793, 3795, 3795, 3795, 3794, 3797, 3799, + 3801, 3796, 3798, 3800, 3794, 847, 847, 847, + 847, 847, 847, 847, 4250, 4250, 4251, 4252, + 4253, 4254, 4255, 4255, 4256, 4257, 4246, 4246, + 4246, 3671, 4259, 4258, 3671, 847, 847, 4322, + 4322, 4323, 4324, 4325, 4326, 4327, 4327, 4328, + 4329, 4318, 4318, 4318, 3671, 4331, 4330, 3671, + 847, 847, 847, 847, 847, 847, 847, 847, + 847, 0 }; static const short _zone_scanner_trans_targs[] = { 0, 1, 1, 1, 2, 4, 17, 40, - 57, 64, 190, 84, 88, 96, 102, 118, - 128, 131, 144, 163, 173, 176, 182, 1504, - 198, 1509, 324, 0, 3, 3, 3, 2, - 213, 213, 213, 213, 213, 3, 216, 0, - 3, 3, 3, 4, 17, 40, 57, 64, - 73, 84, 88, 96, 102, 118, 128, 131, - 144, 163, 173, 176, 182, 3, 216, 0, - 5, 5, 5, 283, 286, 290, 294, 5, + 66, 73, 199, 93, 97, 105, 111, 127, + 137, 140, 153, 172, 182, 185, 191, 1651, + 207, 1656, 333, 0, 3, 3, 3, 2, + 222, 222, 222, 222, 222, 3, 225, 0, + 3, 3, 3, 4, 17, 40, 66, 73, + 82, 93, 97, 105, 111, 127, 137, 140, + 153, 172, 182, 185, 191, 3, 225, 0, + 5, 5, 5, 292, 295, 299, 303, 5, 10, 6, 11, 20, 6, 5, 0, 5, 5, 9, 5, 10, 11, 20, 0, 7, - 7, 7, 1504, 8, 0, 7, 7, 7, - 1504, 8, 8, 1504, 6, 6, 10, 5, - 12, 12, 12, 13, 1510, 223, 301, 12, - 12, 12, 13, 1510, 223, 301, 13, 1505, - 14, 0, 14, 14, 15, 219, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 1512, - 296, 1510, 297, 1513, 299, 0, 16, 16, - 16, 1506, 327, 0, 16, 16, 16, 1506, - 327, 18, 22, 29, 32, 36, 19, 5, + 7, 7, 1651, 8, 0, 7, 7, 7, + 1651, 8, 8, 1651, 6, 6, 10, 5, + 12, 12, 12, 13, 1657, 232, 310, 12, + 12, 12, 13, 1657, 232, 310, 13, 1652, + 14, 0, 14, 14, 15, 228, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 1659, + 305, 1657, 306, 1660, 308, 0, 16, 16, + 16, 1653, 336, 0, 16, 16, 16, 1653, + 336, 18, 22, 29, 32, 36, 19, 5, 5, 5, 5, 10, 6, 11, 20, 21, 21, 21, 13, 21, 21, 21, 13, 23, 28, 24, 25, 26, 27, 5, 5, 5, @@ -5247,1268 +5550,1357 @@ static const short _zone_scanner_trans_targs[] = { 5, 5, 5, 10, 6, 11, 20, 33, 34, 35, 5, 5, 5, 5, 10, 6, 11, 20, 37, 38, 39, 5, 5, 5, - 5, 10, 6, 11, 20, 41, 45, 53, - 42, 43, 44, 5, 5, 5, 5, 10, - 6, 11, 20, 46, 49, 47, 48, 5, - 5, 5, 5, 10, 6, 11, 20, 50, - 51, 52, 5, 5, 5, 5, 10, 6, - 11, 20, 5, 5, 5, 54, 5, 10, - 6, 11, 20, 55, 56, 5, 5, 5, - 5, 10, 6, 11, 20, 58, 59, 60, - 62, 61, 5, 5, 5, 5, 10, 6, - 11, 20, 63, 5, 5, 5, 5, 10, - 6, 11, 20, 65, 69, 66, 67, 68, + 5, 10, 6, 11, 20, 41, 50, 54, + 62, 42, 43, 44, 5, 5, 5, 45, + 5, 10, 6, 11, 20, 46, 47, 48, + 49, 5, 5, 5, 5, 10, 6, 11, + 20, 51, 52, 53, 5, 5, 5, 5, + 10, 6, 11, 20, 55, 58, 56, 57, 5, 5, 5, 5, 10, 6, 11, 20, - 70, 71, 72, 5, 5, 5, 5, 10, - 6, 11, 20, 74, 77, 75, 75, 75, - 75, 188, 75, 75, 75, 4, 17, 40, - 57, 64, 76, 84, 88, 96, 102, 118, - 128, 131, 144, 163, 173, 176, 182, 75, - 188, 78, 79, 80, 81, 82, 83, 5, - 5, 5, 5, 10, 6, 11, 20, 85, - 87, 86, 5, 5, 5, 5, 10, 6, - 11, 20, 5, 5, 5, 5, 10, 6, - 11, 20, 89, 91, 93, 95, 90, 5, - 5, 5, 5, 10, 6, 11, 20, 92, + 59, 60, 61, 5, 5, 5, 5, 10, + 6, 11, 20, 5, 5, 5, 63, 5, + 10, 6, 11, 20, 64, 65, 5, 5, + 5, 5, 10, 6, 11, 20, 67, 68, + 69, 71, 70, 5, 5, 5, 5, 10, + 6, 11, 20, 72, 5, 5, 5, 5, + 10, 6, 11, 20, 74, 78, 75, 76, + 77, 5, 5, 5, 5, 10, 6, 11, + 20, 79, 80, 81, 5, 5, 5, 5, + 10, 6, 11, 20, 83, 86, 84, 84, + 84, 84, 197, 84, 84, 84, 4, 17, + 40, 66, 73, 85, 93, 97, 105, 111, + 127, 137, 140, 153, 172, 182, 185, 191, + 84, 197, 87, 88, 89, 90, 91, 92, + 5, 5, 5, 5, 10, 6, 11, 20, + 94, 96, 95, 5, 5, 5, 5, 10, + 6, 11, 20, 5, 5, 5, 5, 10, + 6, 11, 20, 98, 100, 102, 104, 99, 5, 5, 5, 5, 10, 6, 11, 20, - 94, 5, 5, 5, 5, 10, 6, 11, - 20, 5, 5, 5, 5, 10, 6, 11, - 20, 97, 101, 98, 99, 100, 5, 5, + 101, 5, 5, 5, 5, 10, 6, 11, + 20, 103, 5, 5, 5, 5, 10, 6, + 11, 20, 5, 5, 5, 5, 10, 6, + 11, 20, 106, 110, 107, 108, 109, 5, + 5, 5, 5, 10, 6, 11, 20, 5, + 5, 5, 5, 10, 6, 11, 20, 112, + 116, 118, 113, 114, 115, 5, 5, 5, + 5, 10, 6, 11, 20, 117, 5, 5, 5, 5, 10, 6, 11, 20, 5, 5, - 5, 5, 10, 6, 11, 20, 103, 107, - 109, 104, 105, 106, 5, 5, 5, 5, - 10, 6, 11, 20, 108, 5, 5, 5, + 5, 119, 5, 10, 6, 11, 20, 120, + 5, 5, 5, 121, 5, 10, 6, 11, + 20, 5, 5, 5, 122, 5, 10, 6, + 11, 20, 123, 124, 125, 126, 5, 5, + 5, 5, 10, 6, 11, 20, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 5, + 5, 5, 5, 10, 6, 11, 20, 138, + 139, 5, 5, 5, 5, 10, 6, 11, + 20, 141, 147, 148, 152, 142, 143, 144, + 145, 146, 5, 5, 5, 5, 10, 6, + 11, 20, 5, 5, 5, 5, 10, 6, + 11, 20, 149, 150, 151, 5, 5, 5, 5, 10, 6, 11, 20, 5, 5, 5, - 110, 5, 10, 6, 11, 20, 111, 5, - 5, 5, 112, 5, 10, 6, 11, 20, - 5, 5, 5, 113, 5, 10, 6, 11, - 20, 114, 115, 116, 117, 5, 5, 5, - 5, 10, 6, 11, 20, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 5, 5, - 5, 5, 10, 6, 11, 20, 129, 130, + 5, 10, 6, 11, 20, 154, 159, 161, + 163, 165, 169, 155, 156, 157, 158, 5, + 5, 5, 5, 10, 6, 11, 20, 160, 5, 5, 5, 5, 10, 6, 11, 20, - 132, 138, 139, 143, 133, 134, 135, 136, - 137, 5, 5, 5, 5, 10, 6, 11, - 20, 5, 5, 5, 5, 10, 6, 11, - 20, 140, 141, 142, 5, 5, 5, 5, - 10, 6, 11, 20, 5, 5, 5, 5, - 10, 6, 11, 20, 145, 150, 152, 154, - 156, 160, 146, 147, 148, 149, 5, 5, - 5, 5, 10, 6, 11, 20, 151, 5, - 5, 5, 5, 10, 6, 11, 20, 153, + 162, 5, 5, 5, 5, 10, 6, 11, + 20, 164, 5, 5, 5, 5, 10, 6, + 11, 20, 166, 167, 168, 5, 5, 5, + 5, 10, 6, 11, 20, 170, 171, 5, + 5, 5, 5, 10, 6, 11, 20, 173, + 176, 178, 174, 175, 5, 5, 5, 5, + 10, 6, 11, 20, 177, 5, 5, 5, + 5, 10, 6, 11, 20, 179, 180, 0, + 181, 0, 5, 5, 5, 181, 5, 10, + 6, 11, 20, 183, 184, 5, 5, 5, + 5, 10, 6, 11, 20, 186, 187, 188, + 189, 190, 5, 5, 5, 5, 10, 6, + 11, 20, 192, 193, 194, 195, 196, 5, + 5, 5, 5, 10, 6, 11, 20, 197, + 84, 198, 198, 198, 1654, 334, 200, 201, + 201, 201, 201, 206, 201, 201, 201, 202, + 4, 17, 40, 66, 73, 85, 93, 97, + 105, 111, 127, 137, 140, 153, 172, 182, + 185, 191, 201, 206, 84, 84, 84, 202, + 203, 203, 203, 203, 203, 84, 197, 204, + 204, 205, 205, 205, 205, 205, 84, 84, + 84, 204, 84, 197, 206, 201, 207, 1651, + 0, 209, 254, 260, 210, 211, 212, 213, + 214, 215, 1655, 0, 217, 217, 217, 217, + 218, 217, 217, 217, 217, 218, 218, 0, + 217, 0, 220, 220, 220, 220, 221, 220, + 220, 220, 220, 221, 221, 220, 223, 223, + 224, 224, 224, 224, 224, 3, 3, 3, + 223, 3, 225, 225, 3, 0, 227, 227, + 227, 227, 312, 313, 314, 227, 227, 227, + 227, 312, 313, 314, 0, 229, 229, 229, + 1652, 13, 1657, 232, 1658, 310, 229, 229, + 229, 1652, 1658, 230, 230, 230, 1656, 231, + 231, 1656, 233, 233, 233, 1651, 8, 233, + 233, 233, 8, 234, 234, 234, 252, 290, + 252, 1659, 0, 255, 256, 257, 258, 259, + 1655, 261, 262, 1655, 0, 230, 230, 230, + 1656, 231, 0, 265, 265, 265, 1654, 266, + 265, 265, 265, 1654, 266, 266, 1654, 0, + 268, 268, 268, 1659, 252, 1660, 290, 268, + 268, 268, 1659, 1660, 287, 0, 287, 287, + 287, 288, 230, 230, 230, 1656, 231, 289, + 1656, 289, 289, 231, 289, 289, 289, 231, + 291, 291, 291, 252, 291, 291, 291, 252, + 293, 294, 5, 5, 5, 5, 10, 6, + 11, 20, 296, 297, 298, 5, 5, 5, + 5, 10, 6, 11, 20, 300, 301, 302, 5, 5, 5, 5, 10, 6, 11, 20, - 155, 5, 5, 5, 5, 10, 6, 11, - 20, 157, 158, 159, 5, 5, 5, 5, - 10, 6, 11, 20, 161, 162, 5, 5, - 5, 5, 10, 6, 11, 20, 164, 167, - 169, 165, 166, 5, 5, 5, 5, 10, - 6, 11, 20, 168, 5, 5, 5, 5, - 10, 6, 11, 20, 170, 171, 0, 172, - 0, 5, 5, 5, 172, 5, 10, 6, - 11, 20, 174, 175, 5, 5, 5, 5, - 10, 6, 11, 20, 177, 178, 179, 180, - 181, 5, 5, 5, 5, 10, 6, 11, - 20, 183, 184, 185, 186, 187, 5, 5, - 5, 5, 10, 6, 11, 20, 188, 75, - 189, 189, 189, 1507, 325, 191, 192, 192, - 192, 192, 197, 192, 192, 192, 193, 4, - 17, 40, 57, 64, 76, 84, 88, 96, - 102, 118, 128, 131, 144, 163, 173, 176, - 182, 192, 197, 75, 75, 75, 193, 194, - 194, 194, 194, 194, 75, 188, 195, 195, - 196, 196, 196, 196, 196, 75, 75, 75, - 195, 75, 188, 197, 192, 198, 1504, 0, - 200, 245, 251, 201, 202, 203, 204, 205, - 206, 1508, 0, 208, 208, 208, 208, 209, - 208, 208, 208, 208, 209, 209, 0, 208, - 0, 211, 211, 211, 211, 212, 211, 211, - 211, 211, 212, 212, 211, 214, 214, 215, - 215, 215, 215, 215, 3, 3, 3, 214, - 3, 216, 216, 3, 0, 218, 218, 218, - 218, 303, 304, 305, 218, 218, 218, 218, - 303, 304, 305, 0, 220, 220, 220, 1505, - 13, 1510, 223, 1511, 301, 220, 220, 220, - 1505, 1511, 221, 221, 221, 1509, 222, 222, - 1509, 224, 224, 224, 1504, 8, 224, 224, - 224, 8, 225, 225, 225, 243, 281, 243, - 1512, 0, 246, 247, 248, 249, 250, 1508, - 252, 253, 1508, 0, 221, 221, 221, 1509, - 222, 0, 256, 256, 256, 1507, 257, 256, - 256, 256, 1507, 257, 257, 1507, 0, 259, - 259, 259, 1512, 243, 1513, 281, 259, 259, - 259, 1512, 1513, 278, 0, 278, 278, 278, - 279, 221, 221, 221, 1509, 222, 280, 1509, - 280, 280, 222, 280, 280, 280, 222, 282, - 282, 282, 243, 282, 282, 282, 243, 284, - 285, 5, 5, 5, 5, 10, 6, 11, - 20, 287, 288, 289, 5, 5, 5, 5, - 10, 6, 11, 20, 291, 292, 293, 5, - 5, 5, 5, 10, 6, 11, 20, 295, - 5, 5, 5, 5, 10, 6, 11, 20, - 296, 1512, 298, 298, 298, 1504, 298, 298, - 298, 1504, 300, 300, 300, 300, 300, 300, - 302, 302, 302, 302, 302, 302, 303, 218, - 225, 225, 225, 243, 281, 306, 306, 306, - 306, 306, 306, 0, 324, 1509, 325, 1507, - 327, 1506, 328, 1514, 328, 328, 330, 1515, - 330, 1515, 0, 332, 338, 339, 334, 1516, - 332, 333, 334, 1516, 332, 334, 335, 0, - 336, 337, 1516, 332, 333, 334, 1516, 0, - 341, 346, 342, 1517, 341, 1518, 342, 0, - 343, 344, 345, 1517, 341, 1518, 342, 346, - 347, 348, 349, 346, 347, 348, 349, 0, - 1517, 350, 351, 352, 346, 347, 348, 349, - 0, 354, 354, 354, 354, 361, 0, 355, - 0, 356, 356, 356, 355, 358, 358, 358, - 358, 358, 1519, 357, 0, 356, 356, 356, - 1519, 357, 357, 1519, 359, 0, 359, 360, - 360, 360, 360, 360, 356, 356, 356, 359, - 1519, 357, 361, 354, 0, 363, 363, 363, - 363, 373, 364, 372, 368, 364, 365, 368, - 0, 366, 366, 366, 364, 368, 1520, 367, - 366, 366, 366, 1520, 367, 367, 1520, 369, - 0, 370, 371, 364, 365, 368, 373, 363, - 375, 375, 375, 375, 390, 376, 0, 0, - 377, 377, 377, 1521, 381, 387, 0, 377, - 377, 377, 378, 386, 382, 1521, 381, 387, - 0, 378, 379, 382, 380, 380, 380, 378, - 382, 1521, 381, 380, 380, 380, 381, 1521, - 383, 0, 384, 385, 378, 379, 382, 387, - 1522, 388, 388, 388, 388, 389, 389, 388, - 390, 375, 0, 392, 393, 394, 397, 395, - 395, 395, 395, 395, 396, 1523, 1524, 1525, - 396, 395, 0, 399, 413, 434, 451, 458, - 467, 475, 479, 487, 493, 509, 519, 522, - 535, 554, 564, 567, 573, 1526, 400, 403, - 407, 411, 401, 402, 1526, 404, 405, 406, - 1526, 408, 409, 410, 1526, 412, 1526, 414, - 416, 423, 426, 430, 415, 1526, 417, 422, - 418, 419, 420, 421, 1526, 1526, 424, 425, - 1526, 427, 428, 429, 1526, 431, 432, 433, - 1526, 435, 439, 447, 436, 437, 438, 1526, - 440, 443, 441, 442, 1526, 444, 445, 446, - 1526, 1526, 448, 449, 450, 1526, 452, 453, - 454, 456, 455, 1526, 457, 1526, 459, 463, - 460, 461, 462, 1526, 464, 465, 466, 1526, - 468, 469, 470, 471, 472, 473, 474, 1526, - 476, 478, 477, 1526, 1526, 480, 482, 484, - 486, 481, 1526, 483, 1526, 485, 1526, 1526, - 488, 492, 489, 490, 491, 1526, 1526, 494, - 498, 500, 495, 496, 497, 1526, 499, 1526, - 1526, 501, 502, 1526, 503, 1526, 504, 505, - 506, 507, 508, 1526, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 1526, 520, 521, - 1526, 523, 529, 530, 534, 524, 525, 526, - 527, 528, 1526, 1526, 531, 532, 533, 1526, - 1526, 536, 541, 543, 545, 547, 551, 537, - 538, 539, 540, 1526, 542, 1526, 544, 1526, - 546, 1526, 548, 549, 550, 1526, 552, 553, - 1526, 555, 558, 560, 556, 557, 1526, 559, - 1526, 561, 562, 0, 563, 1526, 563, 565, - 566, 1526, 568, 569, 570, 571, 572, 1526, - 574, 575, 576, 577, 578, 1526, 0, 580, - 580, 580, 580, 585, 1527, 1528, 1529, 580, - 580, 580, 581, 586, 607, 624, 631, 640, - 648, 652, 660, 666, 682, 692, 695, 708, - 727, 737, 740, 746, 580, 585, 1527, 1528, - 1529, 580, 580, 580, 582, 752, 756, 760, - 580, 585, 1527, 1528, 1529, 583, 584, 580, - 580, 580, 580, 585, 1527, 1528, 1529, 585, - 580, 587, 589, 596, 599, 603, 588, 580, - 580, 580, 580, 585, 1527, 1528, 1529, 590, - 595, 591, 592, 593, 594, 580, 580, 580, - 580, 585, 1527, 1528, 1529, 580, 580, 580, - 580, 585, 1527, 1528, 1529, 597, 598, 580, - 580, 580, 580, 585, 1527, 1528, 1529, 600, - 601, 602, 580, 580, 580, 580, 585, 1527, - 1528, 1529, 604, 605, 606, 580, 580, 580, - 580, 585, 1527, 1528, 1529, 608, 612, 620, - 609, 610, 611, 580, 580, 580, 580, 585, - 1527, 1528, 1529, 613, 616, 614, 615, 580, - 580, 580, 580, 585, 1527, 1528, 1529, 617, - 618, 619, 580, 580, 580, 580, 585, 1527, - 1528, 1529, 580, 580, 580, 621, 580, 585, - 1527, 1528, 1529, 622, 623, 580, 580, 580, - 580, 585, 1527, 1528, 1529, 625, 626, 627, - 629, 628, 580, 580, 580, 580, 585, 1527, - 1528, 1529, 630, 580, 580, 580, 580, 585, - 1527, 1528, 1529, 632, 636, 633, 634, 635, - 580, 580, 580, 580, 585, 1527, 1528, 1529, - 637, 638, 639, 580, 580, 580, 580, 585, - 1527, 1528, 1529, 641, 642, 643, 644, 645, - 646, 647, 580, 580, 580, 580, 585, 1527, - 1528, 1529, 649, 651, 650, 580, 580, 580, - 580, 585, 1527, 1528, 1529, 580, 580, 580, - 580, 585, 1527, 1528, 1529, 653, 655, 657, - 659, 654, 580, 580, 580, 580, 585, 1527, - 1528, 1529, 656, 580, 580, 580, 580, 585, - 1527, 1528, 1529, 658, 580, 580, 580, 580, - 585, 1527, 1528, 1529, 580, 580, 580, 580, - 585, 1527, 1528, 1529, 661, 665, 662, 663, - 664, 580, 580, 580, 580, 585, 1527, 1528, - 1529, 580, 580, 580, 580, 585, 1527, 1528, - 1529, 667, 671, 673, 668, 669, 670, 580, - 580, 580, 580, 585, 1527, 1528, 1529, 672, - 580, 580, 580, 580, 585, 1527, 1528, 1529, - 580, 580, 580, 674, 580, 585, 1527, 1528, - 1529, 675, 580, 580, 580, 676, 580, 585, - 1527, 1528, 1529, 580, 580, 580, 677, 580, - 585, 1527, 1528, 1529, 678, 679, 680, 681, - 580, 580, 580, 580, 585, 1527, 1528, 1529, - 683, 684, 685, 686, 687, 688, 689, 690, - 691, 580, 580, 580, 580, 585, 1527, 1528, - 1529, 693, 694, 580, 580, 580, 580, 585, - 1527, 1528, 1529, 696, 702, 703, 707, 697, - 698, 699, 700, 701, 580, 580, 580, 580, - 585, 1527, 1528, 1529, 580, 580, 580, 580, - 585, 1527, 1528, 1529, 704, 705, 706, 580, - 580, 580, 580, 585, 1527, 1528, 1529, 580, - 580, 580, 580, 585, 1527, 1528, 1529, 709, - 714, 716, 718, 720, 724, 710, 711, 712, - 713, 580, 580, 580, 580, 585, 1527, 1528, - 1529, 715, 580, 580, 580, 580, 585, 1527, - 1528, 1529, 717, 580, 580, 580, 580, 585, - 1527, 1528, 1529, 719, 580, 580, 580, 580, - 585, 1527, 1528, 1529, 721, 722, 723, 580, - 580, 580, 580, 585, 1527, 1528, 1529, 725, - 726, 580, 580, 580, 580, 585, 1527, 1528, - 1529, 728, 731, 733, 729, 730, 580, 580, - 580, 580, 585, 1527, 1528, 1529, 732, 580, - 580, 580, 580, 585, 1527, 1528, 1529, 734, - 735, 736, 580, 580, 580, 736, 580, 585, - 1527, 1528, 1529, 738, 739, 580, 580, 580, - 580, 585, 1527, 1528, 1529, 741, 742, 743, - 744, 745, 580, 580, 580, 580, 585, 1527, - 1528, 1529, 747, 748, 749, 750, 751, 580, - 580, 580, 580, 585, 1527, 1528, 1529, 753, - 754, 755, 580, 580, 580, 580, 585, 1527, - 1528, 1529, 757, 758, 759, 580, 580, 580, - 580, 585, 1527, 1528, 1529, 761, 580, 580, - 580, 580, 585, 1527, 1528, 1529, 0, 763, - 763, 763, 763, 770, 0, 764, 765, 765, - 765, 764, 765, 769, 0, 765, 765, 765, - 766, 765, 769, 767, 767, 767, 767, 767, - 768, 1530, 1531, 1532, 768, 767, 769, 765, - 770, 763, 772, 772, 772, 772, 780, 773, - 779, 1533, 1533, 1533, 779, 1534, 1533, 1537, - 774, 774, 774, 775, 774, 778, 776, 776, - 776, 776, 776, 777, 1534, 1535, 1536, 777, - 776, 778, 774, 774, 774, 774, 774, 778, - 780, 772, 0, 782, 786, 793, 796, 809, - 813, 828, 833, 783, 784, 785, 1538, 787, - 788, 789, 790, 791, 792, 1538, 794, 795, - 1538, 797, 798, 799, 804, 800, 801, 802, - 803, 1538, 805, 806, 807, 808, 1538, 810, - 811, 0, 812, 1538, 812, 814, 815, 816, - 817, 818, 819, 820, 821, 822, 823, 824, - 825, 826, 827, 1538, 829, 830, 831, 832, - 1538, 834, 835, 836, 1538, 0, 838, 838, - 838, 838, 845, 1539, 1540, 1541, 838, 838, - 838, 839, 846, 858, 873, 898, 903, 918, - 933, 938, 838, 845, 1539, 1540, 1541, 840, - 841, 842, 843, 844, 946, 838, 838, 838, - 838, 845, 1539, 1540, 1541, 845, 838, 847, - 848, 849, 850, 851, 852, 853, 854, 855, - 838, 838, 838, 838, 845, 1539, 1540, 1541, - 856, 857, 838, 838, 838, 838, 845, 1539, - 1540, 1541, 859, 860, 861, 862, 868, 863, - 864, 865, 867, 866, 866, 863, 869, 870, - 872, 871, 871, 868, 874, 875, 876, 887, - 877, 878, 879, 880, 881, 0, 882, 885, - 883, 857, 884, 883, 883, 838, 838, 838, - 886, 885, 838, 845, 1539, 1540, 1541, 885, - 888, 889, 890, 891, 892, 893, 896, 894, - 857, 895, 894, 894, 838, 838, 838, 897, - 896, 838, 845, 1539, 1540, 1541, 896, 899, - 900, 0, 901, 838, 838, 838, 901, 902, - 838, 845, 1539, 1540, 1541, 904, 905, 906, - 907, 908, 909, 910, 911, 912, 913, 916, - 914, 857, 915, 914, 838, 838, 838, 917, - 838, 845, 1539, 1540, 1541, 916, 919, 920, - 921, 922, 923, 924, 925, 926, 927, 928, - 929, 930, 931, 932, 838, 838, 838, 838, - 845, 1539, 1540, 1541, 934, 935, 936, 937, - 838, 838, 838, 838, 845, 1539, 1540, 1541, - 939, 940, 941, 942, 943, 945, 944, 857, - 944, 838, 838, 838, 945, 838, 845, 1539, - 1540, 1541, 947, 857, 0, 949, 950, 965, - 1004, 1012, 1025, 1542, 949, 951, 952, 1542, - 953, 1542, 954, 955, 956, 957, 958, 959, - 960, 961, 962, 963, 964, 1542, 966, 995, - 967, 973, 968, 969, 970, 971, 972, 1542, - 974, 975, 976, 977, 986, 978, 979, 980, - 981, 982, 983, 984, 985, 1542, 987, 988, - 989, 990, 991, 992, 993, 994, 1542, 996, - 1001, 997, 998, 999, 1000, 1542, 1002, 1003, - 1542, 1005, 1006, 1007, 1008, 1009, 1010, 1011, - 1542, 1013, 1014, 1015, 1016, 1017, 1018, 1019, - 1022, 1020, 1021, 1542, 1023, 1024, 1542, 1026, - 1027, 1028, 1031, 1029, 1030, 1542, 1032, 1033, - 1034, 1046, 1049, 1542, 1035, 1036, 1037, 1038, - 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1542, - 1047, 1048, 1542, 1050, 1051, 1542, 0, 1053, - 1054, 1060, 1077, 1080, 1086, 1090, 1543, 1053, - 1055, 1056, 1057, 1058, 1059, 1543, 1061, 1067, - 1073, 1062, 1063, 1064, 1065, 1066, 1543, 1068, - 1070, 1069, 1543, 1071, 1072, 1543, 1074, 1075, - 1076, 1543, 1078, 1079, 1543, 1081, 1083, 1082, - 1543, 1084, 1085, 1543, 1087, 1088, 1089, 1543, - 1091, 1092, 1543, 0, 1094, 1095, 1544, 1094, - 1096, 1097, 1098, 1099, 1100, 1544, 0, 1102, - 1545, 1102, 1104, 1546, 1106, 1107, 1107, 1107, - 1107, 1136, 1107, 1107, 1107, 1108, 1107, 1136, - 1109, 1109, 1109, 1109, 1135, 0, 1109, 1109, - 1109, 1110, 1109, 1135, 1111, 1111, 1111, 1110, - 1111, 1134, 1111, 1111, 1111, 1112, 1111, 1134, - 0, 1113, 1113, 1113, 1112, 1131, 1131, 1131, - 1131, 1131, 1113, 1130, 1113, 1113, 1113, 1114, - 1113, 1130, 1115, 1115, 1115, 1114, 1127, 1127, - 1127, 1127, 1127, 1115, 1126, 1115, 1115, 1115, - 1116, 1115, 1126, 1117, 1117, 1117, 1116, 1123, - 1123, 1123, 1123, 1123, 1117, 1122, 1117, 1117, - 1117, 1118, 1117, 1122, 1547, 1118, 1119, 1119, - 1119, 1119, 1119, 1120, 1120, 1121, 1121, 1121, - 1121, 1121, 1547, 1120, 1122, 1117, 1124, 1124, - 1125, 1125, 1125, 1125, 1125, 1117, 1117, 1117, - 1124, 1117, 1122, 1126, 1115, 1128, 1128, 1129, - 1129, 1129, 1129, 1129, 1115, 1115, 1115, 1128, - 1115, 1126, 1130, 1113, 1132, 1132, 1133, 1133, - 1133, 1133, 1133, 1113, 1113, 1113, 1132, 1113, - 1130, 1134, 1111, 1135, 1109, 1136, 1107, 1138, - 1139, 1139, 1139, 1139, 1141, 1140, 1139, 1139, - 1139, 1139, 1141, 1548, 1141, 1139, 1143, 1144, - 1144, 1144, 1144, 1146, 1144, 1144, 1144, 1145, - 1144, 1146, 1549, 1146, 1144, 1148, 1149, 1149, - 1149, 1148, 1149, 1151, 1149, 1149, 1149, 1150, - 1149, 1151, 1550, 1151, 1149, 1153, 0, 1154, - 1154, 1154, 1154, 1155, 1551, 1552, 1553, 1153, - 1154, 1154, 1154, 1154, 1155, 1551, 1552, 1553, - 1155, 1154, 1157, 1554, 1157, 0, 1159, 1160, - 1160, 1160, 1159, 1160, 1212, 1160, 1160, 1160, - 1161, 1165, 1207, 1160, 1212, 1162, 1162, 1162, - 1161, 1162, 1211, 1162, 1162, 1162, 1163, 1162, - 1211, 1164, 1164, 1164, 1209, 1163, 1164, 1208, - 1164, 1164, 1164, 1164, 1208, 1166, 1166, 1166, - 1166, 1206, 1167, 1168, 1168, 1168, 1167, 1168, - 1205, 1168, 1168, 1168, 1169, 1173, 1200, 1168, - 1205, 1170, 1170, 1170, 1169, 1170, 1204, 1170, - 1170, 1170, 1171, 1170, 1204, 1172, 1172, 1172, - 1202, 1171, 1172, 1201, 1172, 1172, 1172, 1172, - 1201, 1174, 1174, 1174, 1174, 1199, 1175, 1176, - 1176, 1177, 1177, 1177, 1196, 1176, 1198, 1177, - 1195, 1555, 1562, 1563, 1177, 1177, 1177, 1178, - 1177, 1195, 1555, 1562, 1563, 1179, 1179, 1179, - 1192, 1178, 1194, 1179, 1191, 1555, 1560, 1561, - 1179, 1179, 1179, 1180, 1179, 1191, 1560, 1561, - 1181, 1181, 1181, 1188, 1180, 1190, 1181, 1187, - 1555, 1558, 1559, 1181, 1181, 1181, 1182, 1181, - 1187, 1558, 1559, 1183, 1183, 1183, 1185, 1182, - 1183, 1184, 1555, 1556, 1557, 1183, 1183, 1183, - 1183, 1184, 1556, 1557, 1184, 1183, 1183, 1183, - 1183, 1186, 1183, 1184, 1555, 1556, 1557, 1186, - 1187, 1181, 1181, 1181, 1181, 1189, 1190, 1181, - 1187, 1555, 1558, 1559, 1189, 1191, 1179, 1179, - 1179, 1179, 1193, 1194, 1179, 1191, 1555, 1560, - 1561, 1193, 1195, 1177, 1177, 1177, 1177, 1197, - 1198, 1177, 1195, 1555, 1562, 1563, 1197, 1199, - 1174, 1174, 1174, 1174, 1174, 1199, 1201, 1172, - 1172, 1172, 1172, 1203, 1172, 1201, 1203, 1204, - 1170, 1205, 1168, 1206, 1166, 1166, 1166, 1166, - 1166, 1206, 1208, 1164, 1164, 1164, 1164, 1210, - 1164, 1208, 1210, 1211, 1162, 1212, 1160, 1214, - 1215, 1215, 1215, 1214, 1215, 1223, 1215, 1215, - 1215, 1216, 1215, 1223, 1217, 1217, 1217, 1216, - 1217, 1222, 1217, 1217, 1217, 1218, 1217, 1222, - 1219, 1219, 1219, 1218, 1219, 1221, 1219, 1219, - 1219, 1220, 1219, 1221, 1564, 1221, 1219, 1222, - 1217, 1223, 1215, 1225, 1226, 1226, 1226, 1225, - 1226, 1240, 1226, 1226, 1226, 1227, 1226, 1240, - 1228, 1228, 1228, 1227, 1228, 1239, 1229, 1228, - 1228, 1228, 1228, 1239, 1230, 1230, 1230, 1230, - 1238, 1231, 1230, 1230, 1230, 1230, 1238, 1232, - 1232, 1232, 1232, 1237, 1233, 1232, 1232, 1232, - 1232, 1237, 1234, 1234, 1234, 1234, 1236, 1234, - 1234, 1234, 1235, 1234, 1236, 1565, 1236, 1234, - 1237, 1232, 1238, 1230, 1239, 1228, 1240, 1226, - 1242, 1243, 1243, 1243, 1243, 1251, 1244, 1245, - 1245, 1245, 1244, 1245, 1250, 1245, 1245, 1245, - 1246, 1245, 1250, 1247, 1247, 1247, 1247, 1249, - 1248, 1566, 1249, 1247, 1250, 1245, 1251, 1243, - 0, 1252, 1253, 1252, 1252, 1254, 1260, 1252, - 1259, 1567, 1568, 1569, 1254, 1260, 1255, 0, - 1256, 1256, 1257, 1258, 1252, 1252, 1252, 1258, - 1252, 1259, 1567, 1568, 1569, 1259, 1252, 1261, - 1262, 1262, 1257, 1264, 1265, 1265, 1265, 1264, - 1265, 1275, 1265, 1265, 1265, 1266, 1265, 1275, - 1267, 1267, 1267, 1267, 1274, 1268, 1269, 1269, - 1269, 1268, 1269, 1273, 0, 1269, 1269, 1269, - 1270, 1269, 1273, 1271, 1271, 1271, 1271, 1271, - 1272, 1570, 1571, 1572, 1272, 1271, 1273, 1269, - 1274, 1267, 1275, 1265, 1277, 1278, 1278, 1278, - 1277, 1278, 1285, 1278, 1278, 1278, 1279, 1278, - 1285, 1280, 1280, 1280, 1279, 1280, 1284, 1280, - 1280, 1280, 1281, 1280, 1284, 1282, 1282, 1282, - 1282, 1282, 1283, 1573, 1574, 1575, 1283, 1282, - 1284, 1280, 1285, 1278, 1287, 1288, 1288, 1288, - 1287, 1288, 1324, 0, 1288, 1288, 1288, 1289, - 1303, 1310, 1317, 1288, 1324, 1290, 1290, 1290, - 1290, 1302, 0, 1291, 1292, 1292, 1292, 1291, - 1292, 1301, 1292, 1292, 1292, 1293, 1292, 1301, - 0, 1294, 1294, 1294, 1297, 1297, 1297, 1299, - 1299, 1299, 1576, 1294, 1296, 1579, 1580, 1297, - 1298, 1577, 1578, 1299, 1300, 1581, 1582, 0, - 1295, 1296, 1294, 1298, 1297, 1300, 1299, 1301, - 1292, 1302, 1290, 1304, 1304, 1304, 1304, 1309, - 1305, 1306, 1306, 1306, 1305, 1306, 1308, 0, - 1306, 1306, 1306, 1307, 1306, 1308, 0, 1307, - 1294, 1294, 1294, 1297, 1297, 1297, 1299, 1299, - 1299, 1576, 1294, 1296, 1579, 1580, 1297, 1298, - 1577, 1578, 1299, 1300, 1581, 1582, 1308, 1306, - 1309, 1304, 1311, 1311, 1311, 1311, 1316, 1312, - 1313, 1313, 1313, 1312, 1313, 1315, 1313, 1313, - 1313, 1314, 1313, 1315, 1314, 1294, 1294, 1294, - 1297, 1297, 1297, 1299, 1299, 1299, 1576, 1294, - 1296, 1579, 1580, 1297, 1298, 1577, 1578, 1299, - 1300, 1581, 1582, 1315, 1313, 1316, 1311, 1318, - 1318, 1318, 1318, 1323, 1319, 1320, 1320, 1320, - 1319, 1320, 1322, 1320, 1320, 1320, 1321, 1320, - 1322, 1294, 1294, 1294, 1297, 1297, 1297, 1299, - 1299, 1299, 1576, 1294, 1296, 1579, 1580, 1297, - 1298, 1577, 1578, 1299, 1300, 1581, 1582, 1322, - 1320, 1323, 1318, 1324, 1288, 1326, 1327, 1327, - 1327, 1327, 1350, 1328, 1329, 1329, 1329, 1329, - 1349, 1330, 1331, 1331, 1331, 1330, 1331, 1348, - 1331, 1331, 1331, 1332, 1331, 1348, 1333, 1333, - 1333, 1332, 1333, 1347, 0, 1333, 1333, 1333, - 1334, 1333, 1347, 1335, 1335, 1335, 1334, 1335, - 1346, 1335, 1335, 1335, 1336, 1335, 1346, 1337, - 1337, 1337, 1336, 1337, 1345, 1337, 1337, 1337, - 1338, 1337, 1345, 1339, 1339, 1339, 1338, 1339, - 1344, 1339, 1339, 1339, 1340, 1339, 1344, 1341, - 1341, 1341, 1341, 1343, 1341, 1341, 1341, 1342, - 1341, 1343, 1583, 1343, 1341, 1344, 1339, 1345, - 1337, 1346, 1335, 1347, 1333, 1348, 1331, 1349, - 1329, 1350, 1327, 1352, 1353, 1584, 1355, 1356, - 1356, 1356, 1355, 1356, 1364, 1356, 1356, 1356, - 1357, 1356, 1364, 1358, 1358, 1358, 1357, 1358, - 1363, 1358, 1358, 1358, 1359, 1358, 1363, 1360, - 1360, 1360, 1360, 1362, 1361, 1585, 1362, 1360, - 1363, 1358, 1364, 1356, 1366, 1586, 1368, 1369, - 1369, 1369, 1368, 1369, 1395, 1369, 1369, 1369, - 1370, 1369, 1395, 1371, 1371, 1371, 1370, 1371, - 1394, 1371, 1371, 1371, 1372, 1371, 1394, 1373, - 1373, 1373, 1372, 1373, 1393, 1373, 1373, 1373, - 1374, 1391, 1373, 1393, 1375, 1375, 1375, 1375, - 1390, 0, 1375, 1375, 1375, 1376, 1375, 1390, - 1377, 1378, 1388, 1379, 1380, 1387, 1381, 1385, - 1382, 1383, 1383, 1384, 1376, 1587, 1386, 1389, - 1390, 1375, 1392, 1391, 1393, 1373, 1394, 1371, - 1395, 1369, 1397, 1398, 1398, 1398, 1397, 1398, - 1408, 1398, 1398, 1398, 1399, 1398, 1408, 1400, - 1400, 1400, 1399, 1400, 1407, 1400, 1400, 1400, - 1401, 1400, 1407, 1402, 1402, 1402, 1401, 1402, - 1406, 1402, 1402, 1402, 1403, 1404, 1402, 1406, - 1588, 1405, 1404, 1406, 1402, 1407, 1400, 1408, - 1398, 1410, 1411, 1411, 1411, 1410, 1411, 1421, - 1411, 1411, 1411, 1412, 1411, 1421, 1413, 1413, - 1413, 1412, 1413, 1420, 1413, 1413, 1413, 1414, - 1413, 1420, 1415, 1415, 1415, 1414, 1415, 1419, - 1415, 1415, 1415, 1416, 1415, 1419, 1417, 1417, - 1417, 1417, 1417, 1418, 1589, 1590, 1591, 1418, - 1417, 1419, 1415, 1420, 1413, 1421, 1411, 1423, - 1424, 1424, 1424, 1423, 1424, 1427, 1424, 1424, - 1424, 1425, 1424, 1427, 1426, 1425, 1592, 1427, - 1424, 1429, 1430, 1430, 1430, 1429, 1430, 1440, - 1430, 1430, 1430, 1431, 1430, 1440, 1432, 1432, - 1432, 1431, 1432, 1439, 1432, 1432, 1432, 1433, - 1432, 1439, 1434, 1434, 1434, 1433, 1434, 1438, - 1434, 1434, 1434, 1435, 1434, 1438, 1436, 1436, - 1436, 1436, 1436, 1437, 1593, 1594, 1595, 1437, - 1436, 1438, 1434, 1439, 1432, 1440, 1430, 1442, - 1443, 1443, 1443, 1442, 1443, 1445, 1443, 1443, - 1443, 1444, 1443, 1445, 1596, 1444, 1445, 1443, - 1447, 1448, 1448, 1448, 1447, 1448, 1458, 1448, - 1448, 1448, 1449, 1448, 1458, 1450, 1451, 1452, - 0, 1453, 1454, 1455, 1456, 1457, 0, 1597, - 1458, 1448, 1460, 1461, 0, 1462, 1463, 1464, - 1598, 1466, 1467, 1468, 1469, 1470, 1599, 1472, - 1473, 1473, 1473, 1472, 1473, 1478, 1473, 1473, - 1473, 1474, 1473, 1478, 1475, 1475, 1475, 1474, - 1475, 1477, 1476, 1475, 1475, 1475, 1475, 1477, - 1600, 1477, 1475, 1478, 1473, 1480, 1481, 1481, - 1481, 1480, 1481, 1486, 1482, 1481, 1481, 1481, - 1481, 1486, 1483, 1483, 1483, 1483, 1485, 1484, - 1483, 1483, 1483, 1483, 1485, 1601, 1485, 1483, - 1486, 1481, 1488, 1489, 1489, 1489, 1488, 1489, - 1492, 1489, 1489, 1489, 1490, 1489, 1492, 1491, - 1602, 1492, 1489, 1494, 1495, 1495, 1495, 1495, - 1503, 1496, 1497, 1497, 1497, 1497, 1502, 1498, - 1499, 1499, 1499, 1498, 1499, 1501, 1499, 1499, - 1499, 1500, 1499, 1501, 1603, 1501, 1499, 1502, - 1497, 1503, 1495, 0, 1, 199, 1, 1, - 207, 1504, 198, 1509, 324, 14, 244, 14, - 14, 254, 277, 1512, 296, 1510, 297, 1513, - 299, 0, 189, 189, 189, 217, 307, 308, - 309, 310, 326, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 1507, - 325, 0, 210, 217, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 0, 1, 199, - 1, 1, 207, 1504, 198, 1509, 324, 1, - 1, 1509, 324, 221, 221, 221, 1509, 222, - 225, 225, 225, 243, 281, 0, 255, 258, - 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, - 276, 1509 + 304, 5, 5, 5, 5, 10, 6, 11, + 20, 305, 1659, 307, 307, 307, 1651, 307, + 307, 307, 1651, 309, 309, 309, 309, 309, + 309, 311, 311, 311, 311, 311, 311, 312, + 227, 234, 234, 234, 252, 290, 315, 315, + 315, 315, 315, 315, 0, 333, 1656, 334, + 1654, 336, 1653, 337, 1661, 337, 337, 339, + 1662, 339, 1662, 0, 341, 347, 348, 343, + 1663, 341, 342, 343, 1663, 341, 343, 344, + 0, 345, 346, 1663, 341, 342, 343, 1663, + 0, 350, 355, 351, 1664, 350, 1665, 351, + 0, 352, 353, 354, 1664, 350, 1665, 351, + 355, 356, 357, 358, 355, 356, 357, 358, + 0, 1664, 359, 360, 361, 355, 356, 357, + 358, 0, 363, 363, 363, 363, 370, 0, + 364, 0, 365, 365, 365, 364, 367, 367, + 367, 367, 367, 1666, 366, 0, 365, 365, + 365, 1666, 366, 366, 1666, 368, 0, 368, + 369, 369, 369, 369, 369, 365, 365, 365, + 368, 1666, 366, 370, 363, 0, 372, 372, + 372, 372, 382, 373, 381, 377, 373, 374, + 377, 0, 375, 375, 375, 373, 377, 1667, + 376, 375, 375, 375, 1667, 376, 376, 1667, + 378, 0, 379, 380, 373, 374, 377, 382, + 372, 384, 384, 384, 384, 399, 385, 0, + 0, 386, 386, 386, 1668, 390, 396, 0, + 386, 386, 386, 387, 395, 391, 1668, 390, + 396, 0, 387, 388, 391, 389, 389, 389, + 387, 391, 1668, 390, 389, 389, 389, 390, + 1668, 392, 0, 393, 394, 387, 388, 391, + 396, 1669, 397, 397, 397, 397, 398, 398, + 397, 399, 384, 0, 401, 402, 403, 406, + 404, 404, 404, 404, 404, 405, 1670, 1671, + 1672, 405, 404, 0, 408, 422, 443, 469, + 476, 485, 493, 497, 505, 511, 527, 537, + 540, 553, 572, 582, 585, 591, 1673, 409, + 412, 416, 420, 410, 411, 1673, 413, 414, + 415, 1673, 417, 418, 419, 1673, 421, 1673, + 423, 425, 432, 435, 439, 424, 1673, 426, + 431, 427, 428, 429, 430, 1673, 1673, 433, + 434, 1673, 436, 437, 438, 1673, 440, 441, + 442, 1673, 444, 453, 457, 465, 445, 446, + 447, 1673, 448, 449, 450, 451, 452, 1673, + 454, 455, 456, 1673, 458, 461, 459, 460, + 1673, 462, 463, 464, 1673, 1673, 466, 467, + 468, 1673, 470, 471, 472, 474, 473, 1673, + 475, 1673, 477, 481, 478, 479, 480, 1673, + 482, 483, 484, 1673, 486, 487, 488, 489, + 490, 491, 492, 1673, 494, 496, 495, 1673, + 1673, 498, 500, 502, 504, 499, 1673, 501, + 1673, 503, 1673, 1673, 506, 510, 507, 508, + 509, 1673, 1673, 512, 516, 518, 513, 514, + 515, 1673, 517, 1673, 1673, 519, 520, 1673, + 521, 1673, 522, 523, 524, 525, 526, 1673, + 528, 529, 530, 531, 532, 533, 534, 535, + 536, 1673, 538, 539, 1673, 541, 547, 548, + 552, 542, 543, 544, 545, 546, 1673, 1673, + 549, 550, 551, 1673, 1673, 554, 559, 561, + 563, 565, 569, 555, 556, 557, 558, 1673, + 560, 1673, 562, 1673, 564, 1673, 566, 567, + 568, 1673, 570, 571, 1673, 573, 576, 578, + 574, 575, 1673, 577, 1673, 579, 580, 0, + 581, 1673, 581, 583, 584, 1673, 586, 587, + 588, 589, 590, 1673, 592, 593, 594, 595, + 596, 1673, 0, 598, 598, 598, 598, 603, + 1674, 1675, 1676, 598, 598, 598, 599, 604, + 625, 651, 658, 667, 675, 679, 687, 693, + 709, 719, 722, 735, 754, 764, 767, 773, + 598, 603, 1674, 1675, 1676, 598, 598, 598, + 600, 779, 783, 787, 598, 603, 1674, 1675, + 1676, 601, 602, 598, 598, 598, 598, 603, + 1674, 1675, 1676, 603, 598, 605, 607, 614, + 617, 621, 606, 598, 598, 598, 598, 603, + 1674, 1675, 1676, 608, 613, 609, 610, 611, + 612, 598, 598, 598, 598, 603, 1674, 1675, + 1676, 598, 598, 598, 598, 603, 1674, 1675, + 1676, 615, 616, 598, 598, 598, 598, 603, + 1674, 1675, 1676, 618, 619, 620, 598, 598, + 598, 598, 603, 1674, 1675, 1676, 622, 623, + 624, 598, 598, 598, 598, 603, 1674, 1675, + 1676, 626, 635, 639, 647, 627, 628, 629, + 598, 598, 598, 630, 598, 603, 1674, 1675, + 1676, 631, 632, 633, 634, 598, 598, 598, + 598, 603, 1674, 1675, 1676, 636, 637, 638, + 598, 598, 598, 598, 603, 1674, 1675, 1676, + 640, 643, 641, 642, 598, 598, 598, 598, + 603, 1674, 1675, 1676, 644, 645, 646, 598, + 598, 598, 598, 603, 1674, 1675, 1676, 598, + 598, 598, 648, 598, 603, 1674, 1675, 1676, + 649, 650, 598, 598, 598, 598, 603, 1674, + 1675, 1676, 652, 653, 654, 656, 655, 598, + 598, 598, 598, 603, 1674, 1675, 1676, 657, + 598, 598, 598, 598, 603, 1674, 1675, 1676, + 659, 663, 660, 661, 662, 598, 598, 598, + 598, 603, 1674, 1675, 1676, 664, 665, 666, + 598, 598, 598, 598, 603, 1674, 1675, 1676, + 668, 669, 670, 671, 672, 673, 674, 598, + 598, 598, 598, 603, 1674, 1675, 1676, 676, + 678, 677, 598, 598, 598, 598, 603, 1674, + 1675, 1676, 598, 598, 598, 598, 603, 1674, + 1675, 1676, 680, 682, 684, 686, 681, 598, + 598, 598, 598, 603, 1674, 1675, 1676, 683, + 598, 598, 598, 598, 603, 1674, 1675, 1676, + 685, 598, 598, 598, 598, 603, 1674, 1675, + 1676, 598, 598, 598, 598, 603, 1674, 1675, + 1676, 688, 692, 689, 690, 691, 598, 598, + 598, 598, 603, 1674, 1675, 1676, 598, 598, + 598, 598, 603, 1674, 1675, 1676, 694, 698, + 700, 695, 696, 697, 598, 598, 598, 598, + 603, 1674, 1675, 1676, 699, 598, 598, 598, + 598, 603, 1674, 1675, 1676, 598, 598, 598, + 701, 598, 603, 1674, 1675, 1676, 702, 598, + 598, 598, 703, 598, 603, 1674, 1675, 1676, + 598, 598, 598, 704, 598, 603, 1674, 1675, + 1676, 705, 706, 707, 708, 598, 598, 598, + 598, 603, 1674, 1675, 1676, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 598, 598, + 598, 598, 603, 1674, 1675, 1676, 720, 721, + 598, 598, 598, 598, 603, 1674, 1675, 1676, + 723, 729, 730, 734, 724, 725, 726, 727, + 728, 598, 598, 598, 598, 603, 1674, 1675, + 1676, 598, 598, 598, 598, 603, 1674, 1675, + 1676, 731, 732, 733, 598, 598, 598, 598, + 603, 1674, 1675, 1676, 598, 598, 598, 598, + 603, 1674, 1675, 1676, 736, 741, 743, 745, + 747, 751, 737, 738, 739, 740, 598, 598, + 598, 598, 603, 1674, 1675, 1676, 742, 598, + 598, 598, 598, 603, 1674, 1675, 1676, 744, + 598, 598, 598, 598, 603, 1674, 1675, 1676, + 746, 598, 598, 598, 598, 603, 1674, 1675, + 1676, 748, 749, 750, 598, 598, 598, 598, + 603, 1674, 1675, 1676, 752, 753, 598, 598, + 598, 598, 603, 1674, 1675, 1676, 755, 758, + 760, 756, 757, 598, 598, 598, 598, 603, + 1674, 1675, 1676, 759, 598, 598, 598, 598, + 603, 1674, 1675, 1676, 761, 762, 763, 598, + 598, 598, 763, 598, 603, 1674, 1675, 1676, + 765, 766, 598, 598, 598, 598, 603, 1674, + 1675, 1676, 768, 769, 770, 771, 772, 598, + 598, 598, 598, 603, 1674, 1675, 1676, 774, + 775, 776, 777, 778, 598, 598, 598, 598, + 603, 1674, 1675, 1676, 780, 781, 782, 598, + 598, 598, 598, 603, 1674, 1675, 1676, 784, + 785, 786, 598, 598, 598, 598, 603, 1674, + 1675, 1676, 788, 598, 598, 598, 598, 603, + 1674, 1675, 1676, 0, 790, 790, 790, 790, + 797, 0, 791, 792, 792, 792, 791, 792, + 796, 0, 792, 792, 792, 793, 792, 796, + 794, 794, 794, 794, 794, 795, 1677, 1678, + 1679, 795, 794, 796, 792, 797, 790, 799, + 799, 799, 799, 807, 800, 806, 1680, 1680, + 1680, 806, 1681, 1680, 1684, 801, 801, 801, + 802, 801, 805, 803, 803, 803, 803, 803, + 804, 1681, 1682, 1683, 804, 803, 805, 801, + 801, 801, 801, 801, 805, 807, 799, 0, + 809, 813, 820, 823, 836, 840, 855, 860, + 810, 811, 812, 1685, 814, 815, 816, 817, + 818, 819, 1685, 821, 822, 1685, 824, 825, + 826, 831, 827, 828, 829, 830, 1685, 832, + 833, 834, 835, 1685, 837, 838, 0, 839, + 1685, 839, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, + 1685, 856, 857, 858, 859, 1685, 861, 862, + 863, 1685, 865, 883, 887, 866, 867, 868, + 869, 870, 871, 872, 873, 874, 875, 876, + 877, 878, 879, 880, 881, 882, 1686, 884, + 885, 886, 1686, 886, 888, 889, 890, 891, + 892, 893, 894, 899, 895, 896, 897, 898, + 1686, 1686, 900, 901, 902, 1686, 0, 904, + 904, 904, 904, 911, 1687, 1688, 1689, 904, + 904, 904, 905, 912, 924, 939, 964, 969, + 984, 999, 1004, 904, 911, 1687, 1688, 1689, + 906, 907, 908, 909, 910, 1012, 904, 904, + 904, 904, 911, 1687, 1688, 1689, 911, 904, + 913, 914, 915, 916, 917, 918, 919, 920, + 921, 904, 904, 904, 904, 911, 1687, 1688, + 1689, 922, 923, 904, 904, 904, 904, 911, + 1687, 1688, 1689, 925, 926, 927, 928, 934, + 929, 930, 931, 933, 932, 932, 929, 935, + 936, 938, 937, 937, 934, 940, 941, 942, + 953, 943, 944, 945, 946, 947, 0, 948, + 951, 949, 923, 950, 949, 949, 904, 904, + 904, 952, 951, 904, 911, 1687, 1688, 1689, + 951, 954, 955, 956, 957, 958, 959, 962, + 960, 923, 961, 960, 960, 904, 904, 904, + 963, 962, 904, 911, 1687, 1688, 1689, 962, + 965, 966, 0, 967, 904, 904, 904, 967, + 968, 904, 911, 1687, 1688, 1689, 970, 971, + 972, 973, 974, 975, 976, 977, 978, 979, + 982, 980, 923, 981, 980, 904, 904, 904, + 983, 904, 911, 1687, 1688, 1689, 982, 985, + 986, 987, 988, 989, 990, 991, 992, 993, + 994, 995, 996, 997, 998, 904, 904, 904, + 904, 911, 1687, 1688, 1689, 1000, 1001, 1002, + 1003, 904, 904, 904, 904, 911, 1687, 1688, + 1689, 1005, 1006, 1007, 1008, 1009, 1011, 1010, + 923, 1010, 904, 904, 904, 1011, 904, 911, + 1687, 1688, 1689, 1013, 923, 1015, 1015, 1015, + 1017, 1040, 1047, 1062, 1015, 1016, 1690, 1691, + 1692, 1015, 1015, 1015, 1015, 1016, 1690, 1691, + 1692, 1016, 1015, 1018, 1019, 1020, 1021, 1022, + 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, + 1031, 1032, 1033, 1034, 1035, 1036, 1091, 1037, + 1038, 1090, 1039, 1039, 1039, 1039, 1046, 1690, + 1693, 1694, 1039, 1039, 1039, 1017, 1040, 1047, + 1062, 1039, 1046, 1693, 1694, 1041, 1042, 1043, + 1039, 1039, 1039, 1043, 1044, 1039, 1046, 1690, + 1693, 1694, 1045, 1039, 1039, 1039, 1039, 1046, + 1690, 1693, 1694, 1046, 1039, 1048, 1049, 1050, + 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1060, + 1058, 1038, 1059, 1058, 1039, 1039, 1039, 1061, + 1039, 1046, 1690, 1693, 1694, 1060, 1063, 1064, + 1065, 1066, 1067, 1068, 1069, 1086, 1070, 1071, + 1072, 1079, 1073, 1074, 1077, 1075, 1038, 1076, + 1075, 1075, 1039, 1039, 1039, 1078, 1077, 1039, + 1046, 1690, 1693, 1694, 1077, 1080, 1081, 1084, + 1082, 1038, 1083, 1082, 1082, 1039, 1039, 1039, + 1085, 1084, 1039, 1046, 1690, 1693, 1694, 1084, + 1087, 1088, 1089, 1035, 1037, 1039, 1039, 1039, + 1092, 1039, 1046, 1690, 1693, 1694, 1091, 0, + 1094, 1095, 1110, 1149, 1157, 1170, 1695, 1094, + 1096, 1097, 1695, 1098, 1695, 1099, 1100, 1101, + 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, + 1695, 1111, 1140, 1112, 1118, 1113, 1114, 1115, + 1116, 1117, 1695, 1119, 1120, 1121, 1122, 1131, + 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, + 1695, 1132, 1133, 1134, 1135, 1136, 1137, 1138, + 1139, 1695, 1141, 1146, 1142, 1143, 1144, 1145, + 1695, 1147, 1148, 1695, 1150, 1151, 1152, 1153, + 1154, 1155, 1156, 1695, 1158, 1159, 1160, 1161, + 1162, 1163, 1164, 1167, 1165, 1166, 1695, 1168, + 1169, 1695, 1171, 1172, 1173, 1176, 1174, 1175, + 1695, 1177, 1178, 1179, 1191, 1194, 1695, 1180, + 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, + 1189, 1190, 1695, 1192, 1193, 1695, 1195, 1196, + 1695, 0, 1198, 1199, 1205, 1222, 1225, 1231, + 1235, 1696, 1198, 1200, 1201, 1202, 1203, 1204, + 1696, 1206, 1212, 1218, 1207, 1208, 1209, 1210, + 1211, 1696, 1213, 1215, 1214, 1696, 1216, 1217, + 1696, 1219, 1220, 1221, 1696, 1223, 1224, 1696, + 1226, 1228, 1227, 1696, 1229, 1230, 1696, 1232, + 1233, 1234, 1696, 1236, 1237, 1696, 0, 1239, + 1240, 1697, 1239, 1241, 1242, 1243, 1244, 1245, + 1697, 0, 1247, 1698, 1247, 1249, 1699, 1251, + 1252, 1252, 1252, 1252, 1281, 1252, 1252, 1252, + 1253, 1252, 1281, 1254, 1254, 1254, 1254, 1280, + 0, 1254, 1254, 1254, 1255, 1254, 1280, 1256, + 1256, 1256, 1255, 1256, 1279, 1256, 1256, 1256, + 1257, 1256, 1279, 0, 1258, 1258, 1258, 1257, + 1276, 1276, 1276, 1276, 1276, 1258, 1275, 1258, + 1258, 1258, 1259, 1258, 1275, 1260, 1260, 1260, + 1259, 1272, 1272, 1272, 1272, 1272, 1260, 1271, + 1260, 1260, 1260, 1261, 1260, 1271, 1262, 1262, + 1262, 1261, 1268, 1268, 1268, 1268, 1268, 1262, + 1267, 1262, 1262, 1262, 1263, 1262, 1267, 1700, + 1263, 1264, 1264, 1264, 1264, 1264, 1265, 1265, + 1266, 1266, 1266, 1266, 1266, 1700, 1265, 1267, + 1262, 1269, 1269, 1270, 1270, 1270, 1270, 1270, + 1262, 1262, 1262, 1269, 1262, 1267, 1271, 1260, + 1273, 1273, 1274, 1274, 1274, 1274, 1274, 1260, + 1260, 1260, 1273, 1260, 1271, 1275, 1258, 1277, + 1277, 1278, 1278, 1278, 1278, 1278, 1258, 1258, + 1258, 1277, 1258, 1275, 1279, 1256, 1280, 1254, + 1281, 1252, 1283, 1284, 1284, 1284, 1284, 1286, + 1285, 1284, 1284, 1284, 1284, 1286, 1701, 1286, + 1284, 1288, 1289, 1289, 1289, 1289, 1291, 1289, + 1289, 1289, 1290, 1289, 1291, 1702, 1291, 1289, + 1293, 1294, 1294, 1294, 1293, 1294, 1296, 1294, + 1294, 1294, 1295, 1294, 1296, 1703, 1296, 1294, + 1298, 0, 1299, 1299, 1299, 1299, 1300, 1704, + 1705, 1706, 1298, 1299, 1299, 1299, 1299, 1300, + 1704, 1705, 1706, 1300, 1299, 1302, 1707, 1302, + 0, 1304, 1305, 1305, 1305, 1304, 1305, 1357, + 1305, 1305, 1305, 1306, 1310, 1352, 1305, 1357, + 1307, 1307, 1307, 1306, 1307, 1356, 1307, 1307, + 1307, 1308, 1307, 1356, 1309, 1309, 1309, 1354, + 1308, 1309, 1353, 1309, 1309, 1309, 1309, 1353, + 1311, 1311, 1311, 1311, 1351, 1312, 1313, 1313, + 1313, 1312, 1313, 1350, 1313, 1313, 1313, 1314, + 1318, 1345, 1313, 1350, 1315, 1315, 1315, 1314, + 1315, 1349, 1315, 1315, 1315, 1316, 1315, 1349, + 1317, 1317, 1317, 1347, 1316, 1317, 1346, 1317, + 1317, 1317, 1317, 1346, 1319, 1319, 1319, 1319, + 1344, 1320, 1321, 1321, 1322, 1322, 1322, 1341, + 1321, 1343, 1322, 1340, 1708, 1715, 1716, 1322, + 1322, 1322, 1323, 1322, 1340, 1708, 1715, 1716, + 1324, 1324, 1324, 1337, 1323, 1339, 1324, 1336, + 1708, 1713, 1714, 1324, 1324, 1324, 1325, 1324, + 1336, 1713, 1714, 1326, 1326, 1326, 1333, 1325, + 1335, 1326, 1332, 1708, 1711, 1712, 1326, 1326, + 1326, 1327, 1326, 1332, 1711, 1712, 1328, 1328, + 1328, 1330, 1327, 1328, 1329, 1708, 1709, 1710, + 1328, 1328, 1328, 1328, 1329, 1709, 1710, 1329, + 1328, 1328, 1328, 1328, 1331, 1328, 1329, 1708, + 1709, 1710, 1331, 1332, 1326, 1326, 1326, 1326, + 1334, 1335, 1326, 1332, 1708, 1711, 1712, 1334, + 1336, 1324, 1324, 1324, 1324, 1338, 1339, 1324, + 1336, 1708, 1713, 1714, 1338, 1340, 1322, 1322, + 1322, 1322, 1342, 1343, 1322, 1340, 1708, 1715, + 1716, 1342, 1344, 1319, 1319, 1319, 1319, 1319, + 1344, 1346, 1317, 1317, 1317, 1317, 1348, 1317, + 1346, 1348, 1349, 1315, 1350, 1313, 1351, 1311, + 1311, 1311, 1311, 1311, 1351, 1353, 1309, 1309, + 1309, 1309, 1355, 1309, 1353, 1355, 1356, 1307, + 1357, 1305, 1359, 1360, 1360, 1360, 1359, 1360, + 1368, 1360, 1360, 1360, 1361, 1360, 1368, 1362, + 1362, 1362, 1361, 1362, 1367, 1362, 1362, 1362, + 1363, 1362, 1367, 1364, 1364, 1364, 1363, 1364, + 1366, 1364, 1364, 1364, 1365, 1364, 1366, 1717, + 1366, 1364, 1367, 1362, 1368, 1360, 1370, 1371, + 1371, 1371, 1370, 1371, 1385, 1371, 1371, 1371, + 1372, 1371, 1385, 1373, 1373, 1373, 1372, 1373, + 1384, 1374, 1373, 1373, 1373, 1373, 1384, 1375, + 1375, 1375, 1375, 1383, 1376, 1375, 1375, 1375, + 1375, 1383, 1377, 1377, 1377, 1377, 1382, 1378, + 1377, 1377, 1377, 1377, 1382, 1379, 1379, 1379, + 1379, 1381, 1379, 1379, 1379, 1380, 1379, 1381, + 1718, 1381, 1379, 1382, 1377, 1383, 1375, 1384, + 1373, 1385, 1371, 1387, 1388, 1388, 1388, 1388, + 1396, 1389, 1390, 1390, 1390, 1389, 1390, 1395, + 1390, 1390, 1390, 1391, 1390, 1395, 1392, 1392, + 1392, 1392, 1394, 1393, 1719, 1394, 1392, 1395, + 1390, 1396, 1388, 0, 1397, 1398, 1397, 1397, + 1399, 1405, 1397, 1404, 1720, 1721, 1722, 1399, + 1405, 1400, 0, 1401, 1401, 1402, 1403, 1397, + 1397, 1397, 1403, 1397, 1404, 1720, 1721, 1722, + 1404, 1397, 1406, 1407, 1407, 1402, 1409, 1410, + 1410, 1410, 1409, 1410, 1420, 1410, 1410, 1410, + 1411, 1410, 1420, 1412, 1412, 1412, 1412, 1419, + 1413, 1414, 1414, 1414, 1413, 1414, 1418, 0, + 1414, 1414, 1414, 1415, 1414, 1418, 1416, 1416, + 1416, 1416, 1416, 1417, 1723, 1724, 1725, 1417, + 1416, 1418, 1414, 1419, 1412, 1420, 1410, 1422, + 1423, 1423, 1423, 1422, 1423, 1430, 1423, 1423, + 1423, 1424, 1423, 1430, 1425, 1425, 1425, 1424, + 1425, 1429, 1425, 1425, 1425, 1426, 1425, 1429, + 1427, 1427, 1427, 1427, 1427, 1428, 1726, 1727, + 1728, 1428, 1427, 1429, 1425, 1430, 1423, 1432, + 1433, 1433, 1433, 1432, 1433, 1469, 0, 1433, + 1433, 1433, 1434, 1448, 1455, 1462, 1433, 1469, + 1435, 1435, 1435, 1435, 1447, 0, 1436, 1437, + 1437, 1437, 1436, 1437, 1446, 1437, 1437, 1437, + 1438, 1437, 1446, 0, 1439, 1439, 1439, 1442, + 1442, 1442, 1444, 1444, 1444, 1729, 1439, 1441, + 1732, 1733, 1442, 1443, 1730, 1731, 1444, 1445, + 1734, 1735, 0, 1440, 1441, 1439, 1443, 1442, + 1445, 1444, 1446, 1437, 1447, 1435, 1449, 1449, + 1449, 1449, 1454, 1450, 1451, 1451, 1451, 1450, + 1451, 1453, 0, 1451, 1451, 1451, 1452, 1451, + 1453, 0, 1452, 1439, 1439, 1439, 1442, 1442, + 1442, 1444, 1444, 1444, 1729, 1439, 1441, 1732, + 1733, 1442, 1443, 1730, 1731, 1444, 1445, 1734, + 1735, 1453, 1451, 1454, 1449, 1456, 1456, 1456, + 1456, 1461, 1457, 1458, 1458, 1458, 1457, 1458, + 1460, 1458, 1458, 1458, 1459, 1458, 1460, 1459, + 1439, 1439, 1439, 1442, 1442, 1442, 1444, 1444, + 1444, 1729, 1439, 1441, 1732, 1733, 1442, 1443, + 1730, 1731, 1444, 1445, 1734, 1735, 1460, 1458, + 1461, 1456, 1463, 1463, 1463, 1463, 1468, 1464, + 1465, 1465, 1465, 1464, 1465, 1467, 1465, 1465, + 1465, 1466, 1465, 1467, 1439, 1439, 1439, 1442, + 1442, 1442, 1444, 1444, 1444, 1729, 1439, 1441, + 1732, 1733, 1442, 1443, 1730, 1731, 1444, 1445, + 1734, 1735, 1467, 1465, 1468, 1463, 1469, 1433, + 1471, 1472, 1472, 1472, 1472, 1495, 1473, 1474, + 1474, 1474, 1474, 1494, 1475, 1476, 1476, 1476, + 1475, 1476, 1493, 1476, 1476, 1476, 1477, 1476, + 1493, 1478, 1478, 1478, 1477, 1478, 1492, 0, + 1478, 1478, 1478, 1479, 1478, 1492, 1480, 1480, + 1480, 1479, 1480, 1491, 1480, 1480, 1480, 1481, + 1480, 1491, 1482, 1482, 1482, 1481, 1482, 1490, + 1482, 1482, 1482, 1483, 1482, 1490, 1484, 1484, + 1484, 1483, 1484, 1489, 1484, 1484, 1484, 1485, + 1484, 1489, 1486, 1486, 1486, 1486, 1488, 1486, + 1486, 1486, 1487, 1486, 1488, 1736, 1488, 1486, + 1489, 1484, 1490, 1482, 1491, 1480, 1492, 1478, + 1493, 1476, 1494, 1474, 1495, 1472, 1497, 1498, + 1737, 1500, 1501, 1501, 1501, 1500, 1501, 1509, + 1501, 1501, 1501, 1502, 1501, 1509, 1503, 1503, + 1503, 1502, 1503, 1508, 1503, 1503, 1503, 1504, + 1503, 1508, 1505, 1505, 1505, 1505, 1507, 1506, + 1738, 1507, 1505, 1508, 1503, 1509, 1501, 1511, + 1739, 1513, 1514, 1514, 1514, 1513, 1514, 1540, + 1514, 1514, 1514, 1515, 1514, 1540, 1516, 1516, + 1516, 1515, 1516, 1539, 1516, 1516, 1516, 1517, + 1516, 1539, 1518, 1518, 1518, 1517, 1518, 1538, + 1518, 1518, 1518, 1519, 1536, 1518, 1538, 1520, + 1520, 1520, 1520, 1535, 0, 1520, 1520, 1520, + 1521, 1520, 1535, 1522, 1523, 1533, 1524, 1525, + 1532, 1526, 1530, 1527, 1528, 1528, 1529, 1521, + 1740, 1531, 1534, 1535, 1520, 1537, 1536, 1538, + 1518, 1539, 1516, 1540, 1514, 1542, 1543, 1543, + 1543, 1542, 1543, 1553, 1543, 1543, 1543, 1544, + 1543, 1553, 1545, 1545, 1545, 1544, 1545, 1552, + 1545, 1545, 1545, 1546, 1545, 1552, 1547, 1547, + 1547, 1546, 1547, 1551, 1547, 1547, 1547, 1548, + 1549, 1547, 1551, 1741, 1550, 1549, 1551, 1547, + 1552, 1545, 1553, 1543, 1555, 1556, 1556, 1556, + 1555, 1556, 1566, 1556, 1556, 1556, 1557, 1556, + 1566, 1558, 1558, 1558, 1557, 1558, 1565, 1558, + 1558, 1558, 1559, 1558, 1565, 1560, 1560, 1560, + 1559, 1560, 1564, 1560, 1560, 1560, 1561, 1560, + 1564, 1562, 1562, 1562, 1562, 1562, 1563, 1742, + 1743, 1744, 1563, 1562, 1564, 1560, 1565, 1558, + 1566, 1556, 1568, 1569, 1569, 1569, 1568, 1569, + 1572, 1569, 1569, 1569, 1570, 1569, 1572, 1571, + 1570, 1745, 1572, 1569, 1574, 1575, 1575, 1575, + 1574, 1575, 1585, 1575, 1575, 1575, 1576, 1575, + 1585, 1577, 1577, 1577, 1576, 1577, 1584, 1577, + 1577, 1577, 1578, 1577, 1584, 1579, 1579, 1579, + 1578, 1579, 1583, 1579, 1579, 1579, 1580, 1579, + 1583, 1581, 1581, 1581, 1581, 1581, 1582, 1746, + 1747, 1748, 1582, 1581, 1583, 1579, 1584, 1577, + 1585, 1575, 1587, 1588, 1588, 1588, 1587, 1588, + 1590, 1588, 1588, 1588, 1589, 1588, 1590, 1749, + 1589, 1590, 1588, 1592, 1593, 1593, 1593, 1592, + 1593, 1603, 1593, 1593, 1593, 1594, 1593, 1603, + 1595, 1596, 1597, 0, 1598, 1599, 1600, 1601, + 1602, 0, 1750, 1603, 1593, 1605, 1606, 0, + 1607, 1608, 1609, 1751, 1611, 1612, 1613, 1614, + 1615, 1752, 1617, 1618, 1618, 1618, 1617, 1618, + 1623, 1618, 1618, 1618, 1619, 1618, 1623, 1620, + 1620, 1620, 1619, 1620, 1622, 1621, 1620, 1620, + 1620, 1620, 1622, 1753, 1622, 1620, 1623, 1618, + 1625, 1626, 1626, 1626, 1625, 1626, 1631, 1627, + 1626, 1626, 1626, 1626, 1631, 1628, 1628, 1628, + 1628, 1630, 1629, 1628, 1628, 1628, 1628, 1630, + 1754, 1630, 1628, 1631, 1626, 1633, 1634, 1634, + 1634, 1633, 1634, 1637, 1634, 1634, 1634, 1635, + 1634, 1637, 1636, 1755, 1637, 1634, 1639, 1640, + 1640, 1640, 1640, 1648, 1641, 1642, 1642, 1642, + 1642, 1647, 1643, 1644, 1644, 1644, 1643, 1644, + 1646, 1644, 1644, 1644, 1645, 1644, 1646, 1756, + 1646, 1644, 1647, 1642, 1648, 1640, 1650, 1757, + 0, 1, 208, 1, 1, 216, 1651, 207, + 1656, 333, 14, 253, 14, 14, 263, 286, + 1659, 305, 1657, 306, 1660, 308, 0, 198, + 198, 198, 226, 316, 317, 318, 319, 335, + 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 1654, 334, 0, 219, + 226, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 0, 1, 208, 1, 1, 216, + 1651, 207, 1656, 333, 1, 1, 1656, 333, + 230, 230, 230, 1656, 231, 234, 234, 234, + 252, 290, 0, 264, 267, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 1656 }; static const short _zone_scanner_trans_actions[] = { - 2290, 0, 5, 7, 556, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 3, - 9, 3, 9, 2466, 103, 748, 751, 45, - 59, 57, 55, 0, 61, 745, 754, 335, + 2350, 0, 5, 7, 569, 743, 743, 743, + 743, 743, 743, 743, 743, 743, 743, 743, + 743, 743, 743, 743, 743, 743, 743, 3, + 9, 3, 9, 2526, 103, 761, 764, 45, + 59, 57, 55, 0, 61, 758, 767, 345, 0, 5, 7, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 97, 97, 97, 3, 9, 1816, - 1819, 2994, 2998, 0, 0, 0, 0, 2990, - 3002, 3010, 5158, 5178, 329, 0, 327, 5, - 7, 333, 3, 9, 343, 370, 1801, 13, - 391, 394, 2118, 397, 15, 0, 5, 7, - 1975, 9, 11, 2090, 1810, 331, 11, 385, - 13, 352, 358, 367, 5153, 2970, 2070, 0, - 5, 7, 9, 2978, 1807, 370, 11, 2086, - 0, 4248, 5, 7, 2282, 2598, 2598, 2598, - 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, - 2598, 2598, 2598, 2598, 2598, 2598, 2598, 3, - 9, 1804, 1807, 343, 370, 5879, 757, 2602, - 2606, 4493, 2610, 1813, 0, 5, 7, 346, - 9, 0, 0, 0, 0, 0, 0, 1954, - 3898, 3902, 3894, 3906, 3910, 5623, 5628, 382, - 2074, 2078, 2082, 11, 373, 376, 379, 0, - 0, 0, 0, 0, 0, 1918, 3658, 3662, - 3654, 3666, 3670, 5503, 5508, 1915, 3638, 3642, - 3634, 3646, 3650, 5493, 5498, 0, 0, 1873, - 3358, 3362, 3354, 3366, 3370, 5353, 5358, 0, - 0, 0, 1825, 3038, 3042, 3034, 3046, 3050, - 5193, 5198, 0, 0, 0, 1924, 3698, 3702, - 3694, 3706, 3710, 5523, 5528, 0, 0, 0, - 0, 0, 0, 1900, 3538, 3542, 3534, 3546, - 3550, 5443, 5448, 0, 0, 0, 0, 1876, - 3378, 3382, 3374, 3386, 3390, 5363, 5368, 0, - 0, 0, 1897, 3518, 3522, 3514, 3526, 3530, - 5433, 5438, 1882, 3418, 3422, 0, 3414, 3426, - 3430, 5383, 5388, 0, 0, 1963, 3958, 3962, - 3954, 3966, 3970, 5653, 5658, 0, 0, 0, - 0, 0, 1945, 3838, 3842, 3834, 3846, 3850, - 5593, 5598, 0, 1948, 3858, 3862, 3854, 3866, - 3870, 5603, 5608, 0, 0, 0, 0, 0, - 1834, 3098, 3102, 3094, 3106, 3110, 5223, 5228, - 0, 0, 0, 1960, 3938, 3942, 3934, 3946, - 3950, 5643, 5648, 0, 0, 101, 736, 739, - 733, 742, 0, 5, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, - 9, 0, 0, 0, 0, 0, 0, 1888, - 3458, 3462, 3454, 3466, 3470, 5403, 5408, 0, - 0, 0, 1855, 3238, 3242, 3234, 3246, 3250, - 5293, 5298, 1870, 3338, 3342, 3334, 3346, 3350, - 5343, 5348, 0, 0, 0, 0, 0, 1936, - 3778, 3782, 3774, 3786, 3790, 5563, 5568, 0, - 1939, 3798, 3802, 3794, 3806, 3810, 5573, 5578, - 0, 1861, 3278, 3282, 3274, 3286, 3290, 5313, - 5318, 1942, 3818, 3822, 3814, 3826, 3830, 5583, - 5588, 0, 0, 0, 0, 0, 1837, 3118, - 3122, 3114, 3126, 3130, 5233, 5238, 1840, 3138, - 3142, 3134, 3146, 3150, 5243, 5248, 0, 0, - 0, 0, 0, 0, 1867, 3318, 3322, 3314, - 3326, 3330, 5333, 5338, 0, 1933, 3758, 3762, - 3754, 3766, 3770, 5553, 5558, 1822, 3018, 3022, - 0, 3014, 3026, 3030, 5183, 5188, 0, 1894, - 3498, 3502, 0, 3494, 3506, 3510, 5423, 5428, - 1903, 3558, 3562, 0, 3554, 3566, 3570, 5453, - 5458, 0, 0, 0, 0, 1906, 3578, 3582, - 3574, 3586, 3590, 5463, 5468, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1921, 3678, - 3682, 3674, 3686, 3690, 5513, 5518, 0, 0, - 1831, 3078, 3082, 3074, 3086, 3090, 5213, 5218, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1966, 3978, 3982, 3974, 3986, 3990, 5663, - 5668, 1846, 3178, 3182, 3174, 3186, 3190, 5263, - 5268, 0, 0, 0, 1891, 3478, 3482, 3474, - 3486, 3490, 5413, 5418, 1852, 3218, 3222, 3214, - 3226, 3230, 5283, 5288, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1912, 3618, - 3622, 3614, 3626, 3630, 5483, 5488, 0, 1828, - 3058, 3062, 3054, 3066, 3070, 5203, 5208, 0, - 1930, 3738, 3742, 3734, 3746, 3750, 5543, 5548, - 0, 1864, 3298, 3302, 3294, 3306, 3310, 5323, - 5328, 0, 0, 0, 1885, 3438, 3442, 3434, - 3446, 3450, 5393, 5398, 0, 0, 1957, 3918, - 3922, 3914, 3926, 3930, 5633, 5638, 0, 0, - 0, 0, 0, 1909, 3598, 3602, 3594, 3606, - 3610, 5473, 5478, 0, 1843, 3158, 3162, 3154, - 3166, 3170, 5253, 5258, 0, 0, 577, 556, - 2294, 649, 2442, 2446, 45, 2438, 2450, 2454, - 4433, 4438, 0, 0, 1951, 3878, 3882, 3874, - 3886, 3890, 5613, 5618, 0, 0, 0, 0, - 0, 1969, 3998, 4002, 3994, 4006, 4010, 5673, - 5678, 0, 0, 0, 0, 0, 1927, 3718, - 3722, 3714, 3726, 3730, 5533, 5538, 11, 385, - 0, 5, 7, 3, 9, 0, 101, 736, - 739, 733, 742, 0, 5, 7, 556, 99, + 97, 97, 97, 97, 97, 3, 9, 1862, + 1865, 3066, 3070, 0, 0, 0, 0, 3062, + 3074, 3082, 5310, 5330, 339, 0, 337, 5, + 7, 343, 3, 9, 353, 380, 1847, 13, + 401, 404, 2170, 407, 15, 0, 5, 7, + 2027, 9, 11, 2142, 1856, 341, 11, 395, + 13, 362, 368, 377, 5305, 3042, 2122, 0, + 5, 7, 9, 3050, 1853, 380, 11, 2138, + 0, 4380, 5, 7, 2342, 2658, 2658, 2658, + 2658, 2658, 2658, 2658, 2658, 2658, 2658, 2658, + 2658, 2658, 2658, 2658, 2658, 2658, 2658, 3, + 9, 1850, 1853, 353, 380, 6057, 770, 2662, + 2666, 4625, 2670, 1859, 0, 5, 7, 356, + 9, 0, 0, 0, 0, 0, 0, 2000, + 3970, 3974, 3966, 3978, 3982, 5775, 5780, 392, + 2126, 2130, 2134, 11, 383, 386, 389, 0, + 0, 0, 0, 0, 0, 1964, 3730, 3734, + 3726, 3738, 3742, 5655, 5660, 1961, 3710, 3714, + 3706, 3718, 3722, 5645, 5650, 0, 0, 1919, + 3430, 3434, 3426, 3438, 3442, 5505, 5510, 0, + 0, 0, 1871, 3110, 3114, 3106, 3118, 3122, + 5345, 5350, 0, 0, 0, 1970, 3770, 3774, + 3766, 3778, 3782, 5675, 5680, 0, 0, 0, + 0, 0, 0, 0, 2021, 4110, 4114, 0, + 4106, 4118, 4122, 5845, 5850, 0, 0, 0, + 0, 2024, 4130, 4134, 4126, 4138, 4142, 5855, + 5860, 0, 0, 0, 1946, 3610, 3614, 3606, + 3618, 3622, 5595, 5600, 0, 0, 0, 0, + 1922, 3450, 3454, 3446, 3458, 3462, 5515, 5520, + 0, 0, 0, 1943, 3590, 3594, 3586, 3598, + 3602, 5585, 5590, 1928, 3490, 3494, 0, 3486, + 3498, 3502, 5535, 5540, 0, 0, 2009, 4030, + 4034, 4026, 4038, 4042, 5805, 5810, 0, 0, + 0, 0, 0, 1991, 3910, 3914, 3906, 3918, + 3922, 5745, 5750, 0, 1994, 3930, 3934, 3926, + 3938, 3942, 5755, 5760, 0, 0, 0, 0, + 0, 1880, 3170, 3174, 3166, 3178, 3182, 5375, + 5380, 0, 0, 0, 2006, 4010, 4014, 4006, + 4018, 4022, 5795, 5800, 0, 0, 101, 749, + 752, 746, 755, 0, 5, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 3, 9, 0, 0, 0, 0, 0, 0, + 1934, 3530, 3534, 3526, 3538, 3542, 5555, 5560, + 0, 0, 0, 1901, 3310, 3314, 3306, 3318, + 3322, 5445, 5450, 1916, 3410, 3414, 3406, 3418, + 3422, 5495, 5500, 0, 0, 0, 0, 0, + 1982, 3850, 3854, 3846, 3858, 3862, 5715, 5720, + 0, 1985, 3870, 3874, 3866, 3878, 3882, 5725, + 5730, 0, 1907, 3350, 3354, 3346, 3358, 3362, + 5465, 5470, 1988, 3890, 3894, 3886, 3898, 3902, + 5735, 5740, 0, 0, 0, 0, 0, 1883, + 3190, 3194, 3186, 3198, 3202, 5385, 5390, 1886, + 3210, 3214, 3206, 3218, 3222, 5395, 5400, 0, + 0, 0, 0, 0, 0, 1913, 3390, 3394, + 3386, 3398, 3402, 5485, 5490, 0, 1979, 3830, + 3834, 3826, 3838, 3842, 5705, 5710, 1868, 3090, + 3094, 0, 3086, 3098, 3102, 5335, 5340, 0, + 1940, 3570, 3574, 0, 3566, 3578, 3582, 5575, + 5580, 1949, 3630, 3634, 0, 3626, 3638, 3642, + 5605, 5610, 0, 0, 0, 0, 1952, 3650, + 3654, 3646, 3658, 3662, 5615, 5620, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1967, + 3750, 3754, 3746, 3758, 3762, 5665, 5670, 0, + 0, 1877, 3150, 3154, 3146, 3158, 3162, 5365, + 5370, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2012, 4050, 4054, 4046, 4058, 4062, + 5815, 5820, 1892, 3250, 3254, 3246, 3258, 3262, + 5415, 5420, 0, 0, 0, 1937, 3550, 3554, + 3546, 3558, 3562, 5565, 5570, 1898, 3290, 3294, + 3286, 3298, 3302, 5435, 5440, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1958, + 3690, 3694, 3686, 3698, 3702, 5635, 5640, 0, + 1874, 3130, 3134, 3126, 3138, 3142, 5355, 5360, + 0, 1976, 3810, 3814, 3806, 3818, 3822, 5695, + 5700, 0, 1910, 3370, 3374, 3366, 3378, 3382, + 5475, 5480, 0, 0, 0, 1931, 3510, 3514, + 3506, 3518, 3522, 5545, 5550, 0, 0, 2003, + 3990, 3994, 3986, 3998, 4002, 5785, 5790, 0, + 0, 0, 0, 0, 1955, 3670, 3674, 3666, + 3678, 3682, 5625, 5630, 0, 1889, 3230, 3234, + 3226, 3238, 3242, 5405, 5410, 0, 0, 590, + 569, 2354, 662, 2502, 2506, 45, 2498, 2510, + 2514, 4565, 4570, 0, 0, 1997, 3950, 3954, + 3946, 3958, 3962, 5765, 5770, 0, 0, 0, + 0, 0, 2015, 4070, 4074, 4066, 4078, 4082, + 5825, 5830, 0, 0, 0, 0, 0, 1973, + 3790, 3794, 3786, 3798, 3802, 5685, 5690, 11, + 395, 0, 5, 7, 3, 9, 0, 101, + 749, 752, 746, 755, 0, 5, 7, 569, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 3, 9, 103, 748, 751, 45, 59, - 57, 55, 0, 61, 745, 754, 2470, 45, - 59, 57, 55, 0, 61, 670, 2510, 2514, - 4448, 2506, 2518, 11, 385, 11, 385, 95, - 91, 91, 91, 0, 0, 0, 0, 0, - 0, 89, 41, 39, 499, 502, 496, 505, - 0, 5, 7, 3, 9, 11, 0, 385, - 4233, 511, 2190, 2198, 2182, 2206, 0, 5, - 7, 3, 9, 11, 385, 2470, 45, 59, - 57, 55, 0, 61, 670, 2510, 2514, 4448, - 2506, 2518, 11, 385, 2250, 2218, 4188, 4203, - 4173, 4218, 5747, 5771, 0, 5, 7, 3, - 9, 343, 370, 2986, 3006, 5163, 5168, 5969, - 5173, 6155, 5981, 6148, 5975, 0, 5, 7, - 346, 2022, 0, 5, 7, 346, 9, 11, - 2086, 400, 2094, 2102, 4083, 2110, 11, 349, - 355, 364, 0, 5, 7, 9, 370, 11, - 2086, 2962, 0, 0, 0, 0, 0, 83, - 0, 0, 79, 2242, 508, 2186, 2194, 4163, - 2202, 6029, 2210, 4178, 4193, 5741, 4208, 0, - 5, 7, 346, 9, 11, 2086, 4238, 4223, - 5753, 5759, 6015, 5765, 6178, 6022, 0, 5, - 7, 346, 2022, 2214, 520, 4183, 4198, 4168, - 4213, 13, 352, 358, 1994, 367, 382, 4058, - 2074, 2078, 2082, 11, 373, 376, 379, 382, - 2074, 2078, 2082, 11, 373, 376, 379, 0, - 0, 1858, 3258, 3262, 3254, 3266, 3270, 5303, - 5308, 0, 0, 0, 1849, 3198, 3202, 3194, - 3206, 3210, 5273, 5278, 0, 0, 0, 1972, - 4018, 4022, 4014, 4026, 4030, 5683, 5688, 0, - 1879, 3398, 3402, 3394, 3406, 3410, 5373, 5378, - 11, 385, 400, 2094, 2102, 4093, 11, 349, - 355, 4034, 382, 2074, 2078, 11, 373, 376, - 382, 2074, 2078, 11, 373, 376, 11, 385, - 13, 352, 358, 367, 2070, 382, 2074, 2078, - 11, 373, 376, 523, 11, 385, 11, 385, - 11, 2086, 0, 418, 3, 7, 412, 2122, - 17, 415, 31, 2146, 29, 0, 451, 2126, - 21, 23, 0, 442, 421, 19, 424, 433, - 25, 25, 4103, 427, 430, 27, 448, 691, - 67, 0, 0, 700, 703, 2534, 73, 2530, - 694, 71, 71, 2522, 2526, 4453, 697, 67, - 67, 0, 0, 703, 703, 73, 73, 69, - 1, 694, 71, 71, 2526, 2526, 697, 697, - 77, 0, 5, 7, 3, 9, 559, 556, - 4443, 13, 391, 394, 45, 59, 57, 55, - 0, 61, 4088, 397, 406, 0, 5, 7, - 2542, 9, 11, 4068, 2470, 2458, 45, 59, - 57, 55, 0, 61, 664, 2474, 2478, 4448, - 5885, 2482, 11, 385, 81, 0, 5, 7, - 3, 9, 4458, 712, 2546, 21, 23, 0, - 409, 445, 2130, 2134, 421, 19, 5693, 2138, - 0, 5, 7, 2550, 9, 11, 4073, 424, - 436, 25, 25, 427, 430, 27, 11, 385, - 0, 5, 7, 3, 9, 715, 85, 721, - 718, 2554, 2558, 5891, 2566, 2562, 727, 0, - 5, 7, 4463, 724, 2570, 2574, 9, 9, - 87, 21, 23, 0, 2142, 4108, 4113, 421, - 19, 5987, 4118, 0, 5, 7, 11, 4078, - 424, 439, 25, 25, 427, 430, 27, 11, - 4063, 0, 5, 7, 3, 9, 11, 385, - 11, 385, 127, 119, 121, 123, 0, 125, - 0, 5, 7, 3, 9, 1, 340, 361, - 11, 385, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 883, 0, 0, - 0, 0, 0, 0, 922, 0, 0, 0, - 913, 0, 0, 0, 1036, 0, 943, 0, - 0, 0, 0, 0, 0, 1018, 0, 0, - 0, 0, 0, 0, 982, 979, 0, 0, - 937, 0, 0, 0, 889, 0, 0, 0, - 988, 0, 0, 0, 0, 0, 0, 964, - 0, 0, 0, 0, 940, 0, 0, 0, - 961, 946, 0, 0, 0, 1027, 0, 0, - 0, 0, 0, 1009, 0, 1012, 0, 0, - 0, 0, 0, 898, 0, 0, 0, 1024, - 0, 0, 0, 0, 0, 0, 0, 952, - 0, 0, 0, 919, 934, 0, 0, 0, - 0, 0, 1000, 0, 1003, 0, 925, 1006, - 0, 0, 0, 0, 0, 901, 904, 0, - 0, 0, 0, 0, 0, 931, 0, 997, - 886, 0, 0, 958, 0, 967, 0, 0, - 0, 0, 0, 970, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 985, 0, 0, - 895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1030, 910, 0, 0, 0, 955, - 916, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 976, 0, 892, 0, 994, - 0, 928, 0, 0, 0, 949, 0, 0, - 1021, 0, 0, 0, 0, 0, 973, 0, - 907, 0, 0, 562, 556, 613, 45, 0, - 0, 1015, 0, 0, 0, 0, 0, 1033, - 0, 0, 0, 0, 0, 991, 281, 279, - 1678, 1681, 1675, 1684, 2922, 5118, 5123, 0, - 5, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 9, 1687, 2010, - 2058, 175, 1054, 1057, 0, 0, 0, 0, - 1051, 1060, 2714, 4598, 4603, 0, 0, 201, - 1210, 1213, 1207, 1216, 2766, 4728, 4733, 11, - 385, 0, 0, 0, 0, 0, 0, 265, - 1594, 1597, 1591, 1600, 2894, 5048, 5053, 0, - 0, 0, 0, 0, 0, 241, 1450, 1453, - 1447, 1456, 2846, 4928, 4933, 239, 1438, 1441, - 1435, 1444, 2842, 4918, 4923, 0, 0, 211, - 1270, 1273, 1267, 1276, 2786, 4778, 4783, 0, - 0, 0, 179, 1078, 1081, 1075, 1084, 2722, - 4618, 4623, 0, 0, 0, 245, 1474, 1477, - 1471, 1480, 2854, 4948, 4953, 0, 0, 0, - 0, 0, 0, 229, 1378, 1381, 1375, 1384, - 2822, 4868, 4873, 0, 0, 0, 0, 213, - 1282, 1285, 1279, 1288, 2790, 4788, 4793, 0, - 0, 0, 227, 1366, 1369, 1363, 1372, 2818, - 4858, 4863, 217, 1306, 1309, 0, 1303, 1312, - 2798, 4808, 4813, 0, 0, 271, 1630, 1633, - 1627, 1636, 2906, 5078, 5083, 0, 0, 0, - 0, 0, 259, 1558, 1561, 1555, 1564, 2882, - 5018, 5023, 0, 261, 1570, 1573, 1567, 1576, - 2886, 5028, 5033, 0, 0, 0, 0, 0, - 185, 1114, 1117, 1111, 1120, 2734, 4648, 4653, - 0, 0, 0, 269, 1618, 1621, 1615, 1624, - 2902, 5068, 5073, 0, 0, 0, 0, 0, - 0, 0, 221, 1330, 1333, 1327, 1336, 2806, - 4828, 4833, 0, 0, 0, 199, 1198, 1201, - 1195, 1204, 2762, 4718, 4723, 209, 1258, 1261, - 1255, 1264, 2782, 4768, 4773, 0, 0, 0, - 0, 0, 253, 1522, 1525, 1519, 1528, 2870, - 4988, 4993, 0, 255, 1534, 1537, 1531, 1540, - 2874, 4998, 5003, 0, 203, 1222, 1225, 1219, - 1228, 2770, 4738, 4743, 257, 1546, 1549, 1543, - 1552, 2878, 5008, 5013, 0, 0, 0, 0, - 0, 187, 1126, 1129, 1123, 1132, 2738, 4658, - 4663, 189, 1138, 1141, 1135, 1144, 2742, 4668, - 4673, 0, 0, 0, 0, 0, 0, 207, - 1246, 1249, 1243, 1252, 2778, 4758, 4763, 0, - 251, 1510, 1513, 1507, 1516, 2866, 4978, 4983, - 177, 1066, 1069, 0, 1063, 1072, 2718, 4608, - 4613, 0, 225, 1354, 1357, 0, 1351, 1360, - 2814, 4848, 4853, 231, 1390, 1393, 0, 1387, - 1396, 2826, 4878, 4883, 0, 0, 0, 0, - 233, 1402, 1405, 1399, 1408, 2830, 4888, 4893, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 243, 1462, 1465, 1459, 1468, 2850, 4938, - 4943, 0, 0, 183, 1102, 1105, 1099, 1108, - 2730, 4638, 4643, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 273, 1642, 1645, 1639, - 1648, 2910, 5088, 5093, 193, 1162, 1165, 1159, - 1168, 2750, 4688, 4693, 0, 0, 0, 223, - 1342, 1345, 1339, 1348, 2810, 4838, 4843, 197, - 1186, 1189, 1183, 1192, 2758, 4708, 4713, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 237, 1426, 1429, 1423, 1432, 2838, 4908, - 4913, 0, 181, 1090, 1093, 1087, 1096, 2726, - 4628, 4633, 0, 249, 1498, 1501, 1495, 1504, - 2862, 4968, 4973, 0, 205, 1234, 1237, 1231, - 1240, 2774, 4748, 4753, 0, 0, 0, 219, - 1318, 1321, 1315, 1324, 2802, 4818, 4823, 0, - 0, 267, 1606, 1609, 1603, 1612, 2898, 5058, - 5063, 0, 0, 0, 0, 0, 235, 1414, - 1417, 1411, 1420, 2834, 4898, 4903, 0, 191, - 1150, 1153, 1147, 1156, 2746, 4678, 4683, 0, - 0, 556, 173, 1042, 1045, 45, 1039, 1048, - 2710, 4588, 4593, 0, 0, 263, 1582, 1585, - 1579, 1588, 2890, 5038, 5043, 0, 0, 0, - 0, 0, 275, 1654, 1657, 1651, 1660, 2914, - 5098, 5103, 0, 0, 0, 0, 0, 247, - 1486, 1489, 1483, 1492, 2858, 4958, 4963, 0, - 0, 0, 195, 1174, 1177, 1171, 1180, 2754, - 4698, 4703, 0, 0, 0, 277, 1666, 1669, - 1663, 1672, 2918, 5108, 5113, 0, 215, 1294, - 1297, 1291, 1300, 2794, 4798, 4803, 295, 0, - 5, 7, 3, 9, 565, 556, 53, 655, - 658, 45, 652, 661, 2690, 0, 5, 7, - 115, 3, 9, 117, 0, 5, 7, 3, - 9, 793, 2006, 2054, 11, 385, 11, 385, - 11, 385, 0, 5, 7, 3, 9, 556, - 556, 337, 1982, 1986, 45, 1, 1978, 1990, - 0, 5, 7, 115, 3, 9, 117, 0, - 5, 7, 3, 9, 793, 2006, 2054, 11, - 385, 11, 385, 53, 655, 658, 652, 661, - 11, 385, 305, 311, 311, 311, 311, 311, - 311, 311, 311, 0, 0, 0, 847, 0, - 0, 0, 0, 0, 0, 865, 0, 0, - 859, 0, 0, 0, 0, 0, 0, 0, - 0, 856, 0, 0, 0, 0, 862, 0, - 0, 571, 556, 613, 45, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 850, 0, 0, 0, 0, - 868, 0, 0, 0, 853, 303, 301, 1777, - 1780, 1774, 1783, 2950, 5128, 5133, 0, 5, - 7, 307, 307, 307, 307, 307, 307, 307, - 307, 307, 3, 9, 1786, 2018, 2066, 0, - 0, 0, 157, 5148, 5148, 4133, 5705, 5711, - 5699, 5717, 5994, 6162, 6170, 11, 385, 0, - 0, 0, 0, 0, 0, 167, 481, 481, - 487, 2166, 2170, 2162, 2174, 4138, 5723, 5729, - 481, 37, 309, 1792, 1795, 1789, 1798, 2954, - 5138, 5143, 0, 0, 163, 0, 484, 484, - 121, 123, 0, 125, 0, 119, 121, 123, - 0, 125, 0, 119, 0, 0, 0, 0, - 0, 0, 0, 0, 161, 763, 0, 2158, - 2158, 2642, 769, 105, 760, 4513, 5909, 5915, - 769, 105, 5903, 5921, 6106, 6186, 6194, 760, - 0, 0, 0, 0, 165, 0, 2158, 2158, - 2666, 772, 105, 760, 4528, 5933, 5939, 772, - 105, 5927, 5945, 6113, 6202, 6210, 760, 0, - 0, 568, 556, 2418, 4413, 4418, 45, 49, - 4408, 4423, 5861, 6092, 6099, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 2958, - 2958, 490, 0, 313, 2178, 4148, 4153, 0, - 4143, 4158, 5735, 6001, 6008, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2698, 4548, 4553, 4543, - 4558, 5951, 6120, 6127, 0, 0, 0, 0, - 2702, 4573, 4578, 4568, 4583, 5957, 6134, 6141, - 0, 0, 0, 159, 0, 4563, 4563, 49, - 45, 631, 2426, 2430, 45, 2422, 2434, 4428, - 5867, 5873, 5148, 2154, 315, 556, 0, 0, - 0, 0, 0, 598, 45, 0, 0, 802, - 0, 805, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 811, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 823, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 826, 0, 0, - 0, 0, 0, 0, 0, 0, 829, 0, - 0, 0, 0, 0, 0, 832, 0, 0, - 835, 0, 0, 0, 0, 0, 0, 0, - 838, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 841, 0, 0, 844, 0, - 0, 0, 0, 0, 0, 799, 0, 0, - 0, 0, 0, 808, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 814, - 0, 0, 817, 0, 0, 820, 317, 556, - 0, 0, 0, 0, 0, 0, 613, 45, - 0, 0, 0, 0, 0, 865, 0, 0, - 0, 0, 0, 0, 0, 0, 868, 0, - 0, 0, 862, 0, 0, 856, 0, 0, - 0, 859, 0, 0, 874, 0, 0, 0, - 853, 0, 0, 847, 0, 0, 0, 850, - 0, 0, 871, 319, 556, 0, 598, 45, - 0, 0, 0, 0, 0, 799, 766, 760, - 2622, 105, 526, 2254, 526, 529, 2262, 2266, - 2258, 2270, 0, 5, 7, 526, 3, 9, - 529, 2262, 2266, 2258, 2270, 574, 0, 5, - 7, 556, 3, 9, 51, 640, 643, 45, - 637, 646, 0, 5, 7, 556, 3, 9, - 2462, 51, 640, 643, 45, 59, 57, 55, - 0, 61, 637, 646, 0, 5, 7, 556, - 3, 9, 51, 640, 643, 45, 59, 57, - 55, 0, 61, 637, 646, 0, 5, 7, - 556, 3, 9, 51, 640, 643, 45, 59, - 57, 55, 0, 61, 637, 646, 0, 5, - 7, 556, 3, 9, 634, 45, 59, 57, - 55, 0, 61, 2470, 45, 59, 57, 55, - 0, 61, 2486, 4448, 11, 385, 2470, 45, - 59, 57, 55, 0, 61, 667, 2494, 2498, - 4448, 2490, 2502, 11, 385, 2470, 45, 59, - 57, 55, 0, 61, 667, 2494, 2498, 4448, - 2490, 2502, 11, 385, 2470, 45, 59, 57, - 55, 0, 61, 667, 2494, 2498, 4448, 2490, - 2502, 11, 385, 11, 385, 11, 385, 454, - 35, 469, 472, 466, 475, 454, 0, 5, - 7, 3, 9, 463, 11, 385, 526, 529, - 2262, 2266, 2258, 2270, 0, 5, 7, 526, - 3, 9, 2254, 11, 385, 556, 49, 619, - 622, 45, 616, 625, 0, 5, 7, 526, - 3, 9, 2254, 11, 385, 2538, 709, 35, - 469, 472, 466, 475, 2150, 4123, 4128, 454, - 0, 5, 7, 3, 9, 706, 2002, 2050, - 11, 385, 760, 2646, 105, 1765, 2926, 283, - 1693, 1696, 45, 1690, 1699, 0, 5, 7, - 556, 0, 0, 3, 9, 287, 1717, 1720, - 45, 1714, 1723, 0, 5, 7, 4403, 3, - 9, 580, 2326, 2330, 0, 45, 2322, 2334, - 0, 5, 7, 3, 9, 0, 5, 7, - 3, 9, 556, 285, 1705, 1708, 45, 1702, - 1711, 0, 5, 7, 556, 0, 0, 3, - 9, 289, 1729, 1732, 45, 1726, 1735, 0, - 5, 7, 4403, 3, 9, 583, 2342, 2346, - 0, 45, 2338, 2350, 0, 5, 7, 3, - 9, 0, 5, 7, 3, 9, 0, 4398, - 5963, 586, 2358, 2362, 0, 45, 586, 2354, - 2366, 4378, 5813, 5819, 0, 5, 7, 4398, - 3, 9, 1762, 2014, 2062, 589, 2374, 2378, - 0, 45, 589, 2370, 2382, 4383, 5825, 5831, - 0, 5, 7, 4398, 3, 9, 2014, 2062, - 592, 2390, 2394, 0, 45, 592, 2386, 2398, - 4388, 5837, 5843, 0, 5, 7, 4398, 3, - 9, 2014, 2062, 595, 2406, 2410, 0, 45, - 2402, 2414, 4393, 5849, 5855, 0, 5, 7, - 3, 9, 2014, 2062, 11, 385, 2318, 4363, - 4368, 4253, 4358, 4373, 5807, 6078, 6085, 553, - 11, 385, 2314, 4343, 4348, 4253, 2314, 4338, - 4353, 5801, 6064, 6071, 553, 11, 385, 2310, - 4323, 4328, 4253, 2310, 4318, 4333, 5795, 6050, - 6057, 553, 11, 385, 2306, 4303, 4308, 4253, - 2306, 4298, 4313, 5789, 6036, 6043, 553, 11, - 385, 293, 1753, 1756, 1750, 1759, 11, 385, - 2302, 4283, 4288, 4253, 4278, 4293, 553, 11, - 385, 11, 385, 11, 385, 291, 1741, 1744, - 1738, 1747, 11, 385, 2298, 4263, 4268, 4253, - 4258, 4273, 553, 11, 385, 11, 385, 556, - 49, 619, 622, 45, 616, 625, 0, 5, - 7, 556, 3, 9, 49, 619, 622, 45, - 616, 625, 0, 5, 7, 556, 3, 9, - 49, 619, 622, 45, 616, 625, 0, 5, - 7, 526, 3, 9, 2254, 11, 385, 11, - 385, 11, 385, 556, 49, 619, 622, 45, - 616, 625, 0, 5, 7, 556, 3, 9, - 49, 619, 622, 45, 616, 625, 454, 0, - 5, 7, 3, 9, 35, 469, 472, 466, - 475, 454, 0, 5, 7, 3, 9, 35, - 469, 472, 466, 475, 454, 0, 5, 7, - 3, 9, 35, 469, 472, 466, 475, 0, - 5, 7, 526, 3, 9, 2254, 11, 385, - 11, 385, 11, 385, 11, 385, 11, 385, - 323, 0, 5, 7, 3, 9, 556, 49, - 619, 622, 45, 616, 625, 0, 5, 7, - 321, 3, 9, 0, 5, 7, 3, 9, - 129, 1, 11, 385, 11, 385, 11, 385, - 787, 0, 775, 5, 7, 778, 781, 3, - 9, 1, 340, 361, 111, 113, 0, 2614, - 760, 105, 107, 556, 784, 2678, 2682, 45, - 2674, 2686, 2670, 4533, 4538, 11, 385, 0, - 760, 105, 109, 556, 49, 619, 622, 45, - 616, 625, 0, 5, 7, 321, 3, 9, - 0, 5, 7, 3, 9, 556, 47, 604, - 607, 45, 601, 610, 790, 0, 5, 7, + 99, 99, 3, 9, 103, 761, 764, 45, + 59, 57, 55, 0, 61, 758, 767, 2530, + 45, 59, 57, 55, 0, 61, 683, 2570, + 2574, 4580, 2566, 2578, 11, 395, 11, 395, + 95, 91, 91, 91, 0, 0, 0, 0, + 0, 0, 89, 41, 39, 509, 512, 506, + 515, 0, 5, 7, 3, 9, 11, 0, + 395, 4345, 521, 2246, 2254, 2238, 2262, 0, + 5, 7, 3, 9, 11, 395, 2530, 45, + 59, 57, 55, 0, 61, 683, 2570, 2574, + 4580, 2566, 2578, 11, 395, 2306, 2274, 4300, + 4315, 4285, 4330, 5919, 5943, 0, 5, 7, + 3, 9, 353, 380, 3058, 3078, 5315, 5320, + 6147, 5325, 6347, 6159, 6340, 6153, 0, 5, + 7, 356, 2074, 0, 5, 7, 356, 9, + 11, 2138, 410, 2146, 2154, 4195, 2162, 11, + 359, 365, 374, 0, 5, 7, 9, 380, + 11, 2138, 3034, 0, 0, 0, 0, 0, + 83, 0, 0, 79, 2298, 518, 2242, 2250, + 4275, 2258, 6207, 2266, 4290, 4305, 5913, 4320, + 0, 5, 7, 356, 9, 11, 2138, 4350, + 4335, 5925, 5931, 6193, 5937, 6370, 6200, 0, + 5, 7, 356, 2074, 2270, 530, 4295, 4310, + 4280, 4325, 13, 362, 368, 2046, 377, 392, + 4170, 2126, 2130, 2134, 11, 383, 386, 389, + 392, 2126, 2130, 2134, 11, 383, 386, 389, + 0, 0, 1904, 3330, 3334, 3326, 3338, 3342, + 5455, 5460, 0, 0, 0, 1895, 3270, 3274, + 3266, 3278, 3282, 5425, 5430, 0, 0, 0, + 2018, 4090, 4094, 4086, 4098, 4102, 5835, 5840, + 0, 1925, 3470, 3474, 3466, 3478, 3482, 5525, + 5530, 11, 395, 410, 2146, 2154, 4205, 11, + 359, 365, 4146, 392, 2126, 2130, 11, 383, + 386, 392, 2126, 2130, 11, 383, 386, 11, + 395, 13, 362, 368, 377, 2122, 392, 2126, + 2130, 11, 383, 386, 533, 11, 395, 11, + 395, 11, 2138, 0, 428, 3, 7, 422, + 2174, 17, 425, 31, 2198, 29, 0, 461, + 2178, 21, 23, 0, 452, 431, 19, 434, + 443, 25, 25, 4215, 437, 440, 27, 458, + 704, 67, 0, 0, 713, 716, 2594, 73, + 2590, 707, 71, 71, 2582, 2586, 4585, 710, + 67, 67, 0, 0, 716, 716, 73, 73, + 69, 1, 707, 71, 71, 2586, 2586, 710, + 710, 77, 0, 5, 7, 3, 9, 572, + 569, 4575, 13, 401, 404, 45, 59, 57, + 55, 0, 61, 4200, 407, 416, 0, 5, + 7, 2602, 9, 11, 4180, 2530, 2518, 45, + 59, 57, 55, 0, 61, 677, 2534, 2538, + 4580, 6063, 2542, 11, 395, 81, 0, 5, + 7, 3, 9, 4590, 725, 2606, 21, 23, + 0, 419, 455, 2182, 2186, 431, 19, 5865, + 2190, 0, 5, 7, 2610, 9, 11, 4185, + 434, 446, 25, 25, 437, 440, 27, 11, + 395, 0, 5, 7, 3, 9, 728, 85, + 734, 731, 2614, 2618, 6069, 2626, 2622, 740, + 0, 5, 7, 4595, 737, 2630, 2634, 9, + 9, 87, 21, 23, 0, 2194, 4220, 4225, + 431, 19, 6165, 4230, 0, 5, 7, 11, + 4190, 434, 449, 25, 25, 437, 440, 27, + 11, 4175, 0, 5, 7, 3, 9, 11, + 395, 11, 395, 127, 119, 121, 123, 0, + 125, 0, 5, 7, 3, 9, 1, 350, + 371, 11, 395, 171, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 896, 0, + 0, 0, 0, 0, 0, 935, 0, 0, + 0, 926, 0, 0, 0, 1049, 0, 956, + 0, 0, 0, 0, 0, 0, 1031, 0, + 0, 0, 0, 0, 0, 995, 992, 0, + 0, 950, 0, 0, 0, 902, 0, 0, + 0, 1001, 0, 0, 0, 0, 0, 0, + 0, 1052, 0, 0, 0, 0, 0, 1055, + 0, 0, 0, 977, 0, 0, 0, 0, + 953, 0, 0, 0, 974, 959, 0, 0, + 0, 1040, 0, 0, 0, 0, 0, 1022, + 0, 1025, 0, 0, 0, 0, 0, 911, + 0, 0, 0, 1037, 0, 0, 0, 0, + 0, 0, 0, 965, 0, 0, 0, 932, + 947, 0, 0, 0, 0, 0, 1013, 0, + 1016, 0, 938, 1019, 0, 0, 0, 0, + 0, 914, 917, 0, 0, 0, 0, 0, + 0, 944, 0, 1010, 899, 0, 0, 971, + 0, 980, 0, 0, 0, 0, 0, 983, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 998, 0, 0, 908, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1043, 923, + 0, 0, 0, 968, 929, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 989, + 0, 905, 0, 1007, 0, 941, 0, 0, + 0, 962, 0, 0, 1034, 0, 0, 0, + 0, 0, 986, 0, 920, 0, 0, 575, + 569, 626, 45, 0, 0, 1028, 0, 0, + 0, 0, 0, 1046, 0, 0, 0, 0, + 0, 1004, 287, 285, 1721, 1724, 1718, 1727, + 2990, 5270, 5275, 0, 5, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 3, 9, 1730, 2062, 2110, 177, 1073, 1076, + 0, 0, 0, 0, 1070, 1079, 2774, 4730, + 4735, 0, 0, 203, 1229, 1232, 1226, 1235, + 2826, 4860, 4865, 11, 395, 0, 0, 0, + 0, 0, 0, 267, 1613, 1616, 1610, 1619, + 2954, 5180, 5185, 0, 0, 0, 0, 0, + 0, 243, 1469, 1472, 1466, 1475, 2906, 5060, + 5065, 241, 1457, 1460, 1454, 1463, 2902, 5050, + 5055, 0, 0, 213, 1289, 1292, 1286, 1295, + 2846, 4910, 4915, 0, 0, 0, 181, 1097, + 1100, 1094, 1103, 2782, 4750, 4755, 0, 0, + 0, 247, 1493, 1496, 1490, 1499, 2914, 5080, + 5085, 0, 0, 0, 0, 0, 0, 0, + 281, 1697, 1700, 0, 1694, 1703, 2982, 5250, + 5255, 0, 0, 0, 0, 283, 1709, 1712, + 1706, 1715, 2986, 5260, 5265, 0, 0, 0, + 231, 1397, 1400, 1394, 1403, 2882, 5000, 5005, + 0, 0, 0, 0, 215, 1301, 1304, 1298, + 1307, 2850, 4920, 4925, 0, 0, 0, 229, + 1385, 1388, 1382, 1391, 2878, 4990, 4995, 219, + 1325, 1328, 0, 1322, 1331, 2858, 4940, 4945, + 0, 0, 273, 1649, 1652, 1646, 1655, 2966, + 5210, 5215, 0, 0, 0, 0, 0, 261, + 1577, 1580, 1574, 1583, 2942, 5150, 5155, 0, + 263, 1589, 1592, 1586, 1595, 2946, 5160, 5165, + 0, 0, 0, 0, 0, 187, 1133, 1136, + 1130, 1139, 2794, 4780, 4785, 0, 0, 0, + 271, 1637, 1640, 1634, 1643, 2962, 5200, 5205, + 0, 0, 0, 0, 0, 0, 0, 223, + 1349, 1352, 1346, 1355, 2866, 4960, 4965, 0, + 0, 0, 201, 1217, 1220, 1214, 1223, 2822, + 4850, 4855, 211, 1277, 1280, 1274, 1283, 2842, + 4900, 4905, 0, 0, 0, 0, 0, 255, + 1541, 1544, 1538, 1547, 2930, 5120, 5125, 0, + 257, 1553, 1556, 1550, 1559, 2934, 5130, 5135, + 0, 205, 1241, 1244, 1238, 1247, 2830, 4870, + 4875, 259, 1565, 1568, 1562, 1571, 2938, 5140, + 5145, 0, 0, 0, 0, 0, 189, 1145, + 1148, 1142, 1151, 2798, 4790, 4795, 191, 1157, + 1160, 1154, 1163, 2802, 4800, 4805, 0, 0, + 0, 0, 0, 0, 209, 1265, 1268, 1262, + 1271, 2838, 4890, 4895, 0, 253, 1529, 1532, + 1526, 1535, 2926, 5110, 5115, 179, 1085, 1088, + 0, 1082, 1091, 2778, 4740, 4745, 0, 227, + 1373, 1376, 0, 1370, 1379, 2874, 4980, 4985, + 233, 1409, 1412, 0, 1406, 1415, 2886, 5010, + 5015, 0, 0, 0, 0, 235, 1421, 1424, + 1418, 1427, 2890, 5020, 5025, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 1481, + 1484, 1478, 1487, 2910, 5070, 5075, 0, 0, + 185, 1121, 1124, 1118, 1127, 2790, 4770, 4775, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 275, 1661, 1664, 1658, 1667, 2970, 5220, + 5225, 195, 1181, 1184, 1178, 1187, 2810, 4820, + 4825, 0, 0, 0, 225, 1361, 1364, 1358, + 1367, 2870, 4970, 4975, 199, 1205, 1208, 1202, + 1211, 2818, 4840, 4845, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 239, 1445, + 1448, 1442, 1451, 2898, 5040, 5045, 0, 183, + 1109, 1112, 1106, 1115, 2786, 4760, 4765, 0, + 251, 1517, 1520, 1514, 1523, 2922, 5100, 5105, + 0, 207, 1253, 1256, 1250, 1259, 2834, 4880, + 4885, 0, 0, 0, 221, 1337, 1340, 1334, + 1343, 2862, 4950, 4955, 0, 0, 269, 1625, + 1628, 1622, 1631, 2958, 5190, 5195, 0, 0, + 0, 0, 0, 237, 1433, 1436, 1430, 1439, + 2894, 5030, 5035, 0, 193, 1169, 1172, 1166, + 1175, 2806, 4810, 4815, 0, 0, 569, 175, + 1061, 1064, 45, 1058, 1067, 2770, 4720, 4725, + 0, 0, 265, 1601, 1604, 1598, 1607, 2950, + 5170, 5175, 0, 0, 0, 0, 0, 277, + 1673, 1676, 1670, 1679, 2974, 5230, 5235, 0, + 0, 0, 0, 0, 249, 1505, 1508, 1502, + 1511, 2918, 5090, 5095, 0, 0, 0, 197, + 1193, 1196, 1190, 1199, 2814, 4830, 4835, 0, + 0, 0, 279, 1685, 1688, 1682, 1691, 2978, + 5240, 5245, 0, 217, 1313, 1316, 1310, 1319, + 2854, 4930, 4935, 301, 0, 5, 7, 3, + 9, 578, 569, 53, 668, 671, 45, 665, + 674, 2750, 0, 5, 7, 115, 3, 9, + 117, 0, 5, 7, 3, 9, 806, 2058, + 2106, 11, 395, 11, 395, 11, 395, 0, + 5, 7, 3, 9, 569, 569, 347, 2034, + 2038, 45, 1, 2030, 2042, 0, 5, 7, 115, 3, 9, 117, 0, 5, 7, 3, - 9, 1, 340, 361, 11, 385, 11, 385, - 11, 385, 11, 385, 556, 47, 604, 607, - 45, 601, 610, 0, 5, 7, 556, 3, - 9, 47, 604, 607, 45, 601, 610, 0, - 5, 7, 115, 3, 9, 117, 0, 5, - 7, 3, 9, 1, 340, 361, 11, 385, - 11, 385, 11, 385, 556, 47, 604, 607, - 45, 601, 610, 877, 0, 5, 7, 147, - 149, 151, 153, 3, 9, 0, 5, 7, - 3, 9, 2286, 556, 47, 604, 607, 45, - 601, 610, 0, 5, 7, 0, 3, 9, - 2706, 0, 5, 7, 0, 5, 7, 0, - 5, 7, 1, 3, 9, 340, 361, 3, - 9, 340, 361, 3, 9, 340, 361, 880, - 129, 11, 385, 11, 385, 11, 385, 11, - 385, 11, 385, 0, 5, 7, 3, 9, - 556, 47, 604, 607, 45, 601, 610, 2618, - 0, 5, 7, 760, 3, 9, 4498, 105, - 769, 2630, 2634, 769, 2630, 2634, 769, 2630, - 2634, 2622, 2626, 2638, 4503, 4508, 2626, 2638, - 4503, 4508, 2626, 2638, 4503, 4508, 11, 385, - 11, 385, 0, 5, 7, 3, 9, 556, - 47, 604, 607, 45, 601, 610, 0, 5, - 7, 760, 3, 9, 105, 772, 2654, 2658, - 772, 2654, 2658, 772, 2654, 2658, 2646, 2650, - 2662, 4518, 4523, 2650, 2662, 4518, 4523, 2650, - 2662, 4518, 4523, 11, 385, 11, 385, 0, - 5, 7, 3, 9, 556, 47, 604, 607, - 45, 601, 610, 0, 5, 7, 526, 3, - 9, 43, 538, 541, 43, 538, 541, 43, - 538, 541, 532, 535, 544, 2274, 2278, 535, - 544, 2274, 2278, 535, 544, 2274, 2278, 11, - 385, 11, 385, 11, 385, 171, 0, 5, - 7, 3, 9, 321, 0, 5, 7, 3, - 9, 556, 47, 604, 607, 45, 601, 610, - 0, 5, 7, 556, 3, 9, 51, 640, - 643, 45, 637, 646, 688, 0, 5, 7, - 673, 3, 9, 65, 679, 682, 63, 676, - 685, 0, 5, 7, 673, 3, 9, 65, - 679, 682, 63, 676, 685, 0, 5, 7, - 556, 3, 9, 49, 619, 622, 45, 616, - 625, 0, 5, 7, 526, 3, 9, 529, - 2262, 2266, 2258, 2270, 0, 5, 7, 129, - 3, 9, 1, 11, 385, 11, 385, 11, - 385, 11, 385, 11, 385, 11, 385, 11, - 385, 11, 385, 526, 547, 1, 556, 49, - 619, 622, 45, 616, 625, 0, 5, 7, - 556, 3, 9, 47, 604, 607, 45, 601, - 610, 0, 5, 7, 321, 3, 9, 0, - 5, 7, 3, 9, 129, 1, 11, 385, - 11, 385, 11, 385, 129, 1, 556, 47, - 604, 607, 45, 601, 610, 0, 5, 7, - 556, 3, 9, 47, 604, 607, 45, 601, - 610, 0, 5, 7, 556, 3, 9, 49, - 619, 622, 45, 616, 625, 0, 5, 7, - 33, 457, 3, 9, 35, 469, 472, 466, - 475, 796, 0, 5, 7, 460, 3, 9, - 133, 135, 0, 137, 139, 0, 141, 0, - 143, 145, 0, 478, 131, 1, 0, 0, - 11, 385, 117, 115, 11, 385, 11, 385, - 11, 385, 556, 47, 604, 607, 45, 601, - 610, 0, 5, 7, 556, 3, 9, 47, - 604, 607, 45, 601, 610, 0, 5, 7, - 556, 3, 9, 49, 619, 622, 45, 616, - 625, 0, 5, 7, 33, 457, 3, 9, - 463, 117, 115, 11, 385, 11, 385, 11, - 385, 556, 47, 604, 607, 45, 601, 610, - 0, 5, 7, 556, 3, 9, 47, 604, - 607, 45, 601, 610, 0, 5, 7, 556, - 3, 9, 47, 604, 607, 45, 601, 610, - 0, 5, 7, 115, 3, 9, 117, 0, - 5, 7, 3, 9, 1, 340, 361, 11, - 385, 11, 385, 11, 385, 11, 385, 556, - 51, 640, 643, 45, 637, 646, 0, 5, - 7, 556, 3, 9, 628, 45, 1, 11, - 385, 556, 51, 640, 643, 45, 637, 646, - 0, 5, 7, 556, 3, 9, 47, 604, - 607, 45, 601, 610, 0, 5, 7, 556, - 3, 9, 47, 604, 607, 45, 601, 610, + 9, 806, 2058, 2106, 11, 395, 11, 395, + 53, 668, 671, 665, 674, 11, 395, 311, + 317, 317, 317, 317, 317, 317, 317, 317, + 0, 0, 0, 860, 0, 0, 0, 0, + 0, 0, 878, 0, 0, 872, 0, 0, + 0, 0, 0, 0, 0, 0, 869, 0, + 0, 0, 0, 875, 0, 0, 584, 569, + 626, 45, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 863, 0, 0, 0, 0, 881, 0, 0, + 0, 866, 317, 317, 317, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 869, 0, + 0, 569, 626, 45, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 860, 863, 0, 0, 0, 866, 309, 307, + 1820, 1823, 1817, 1826, 3018, 5280, 5285, 0, + 5, 7, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 3, 9, 1832, 2070, 2118, + 0, 0, 0, 157, 5300, 5300, 4245, 5877, + 5883, 5871, 5889, 6172, 6354, 6362, 11, 395, + 0, 0, 0, 0, 0, 0, 169, 491, + 491, 497, 2222, 2226, 2218, 2230, 4250, 5895, + 5901, 491, 37, 315, 1838, 1841, 1835, 1844, + 3022, 5290, 5295, 0, 0, 165, 0, 494, + 494, 121, 123, 0, 125, 0, 119, 121, + 123, 0, 125, 0, 119, 0, 0, 0, + 0, 0, 0, 0, 0, 163, 776, 0, + 2214, 2214, 2702, 782, 105, 773, 4645, 6087, + 6093, 782, 105, 6081, 6099, 6298, 6378, 6386, + 773, 0, 0, 0, 0, 167, 0, 2214, + 2214, 2726, 785, 105, 773, 4660, 6111, 6117, + 785, 105, 6105, 6123, 6305, 6394, 6402, 773, + 0, 0, 581, 569, 2478, 4545, 4550, 45, + 49, 4540, 4555, 6039, 6284, 6291, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 0, + 3026, 3026, 500, 0, 319, 2234, 4260, 4265, + 0, 4255, 4270, 5907, 6179, 6186, 319, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2758, 4680, 4685, + 4675, 4690, 6129, 6312, 6319, 0, 0, 0, + 0, 2762, 4705, 4710, 4700, 4715, 6135, 6326, + 6333, 0, 0, 0, 161, 0, 4695, 4695, + 49, 45, 644, 2486, 2490, 45, 2482, 2494, + 4560, 6045, 6051, 5300, 2206, 307, 1820, 1823, + 1829, 1829, 1829, 1829, 1817, 1826, 3018, 5280, + 5285, 0, 5, 7, 3, 9, 1832, 2070, + 2118, 11, 395, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 163, 0, 2210, 2210, + 557, 43, 315, 1838, 1841, 1835, 1844, 3022, + 5290, 5295, 0, 5, 7, 313, 313, 313, + 313, 3, 9, 2070, 2118, 0, 0, 569, + 2478, 4545, 4550, 45, 49, 4540, 4555, 6039, + 6284, 6291, 491, 497, 2222, 2226, 2218, 2230, + 4250, 5895, 5901, 11, 395, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 0, 3030, + 3030, 500, 0, 321, 2234, 4260, 4265, 0, + 4255, 4270, 5907, 6179, 6186, 321, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 2214, 2214, 2702, 782, + 105, 773, 4645, 6087, 6093, 782, 105, 6081, + 6099, 6298, 6378, 6386, 773, 159, 0, 2214, + 2214, 2726, 785, 105, 773, 4660, 6111, 6117, + 785, 105, 6105, 6123, 6305, 6394, 6402, 773, + 0, 0, 0, 161, 536, 2338, 4360, 4365, + 43, 4355, 4370, 5955, 6214, 6221, 536, 325, + 569, 0, 0, 0, 0, 0, 611, 45, + 0, 0, 815, 0, 818, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 824, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 836, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 839, 0, 0, 0, 0, 0, 0, 0, + 0, 842, 0, 0, 0, 0, 0, 0, + 845, 0, 0, 848, 0, 0, 0, 0, + 0, 0, 0, 851, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 854, 0, + 0, 857, 0, 0, 0, 0, 0, 0, + 812, 0, 0, 0, 0, 0, 821, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 827, 0, 0, 830, 0, 0, + 833, 327, 569, 0, 0, 0, 0, 0, + 0, 626, 45, 0, 0, 0, 0, 0, + 878, 0, 0, 0, 0, 0, 0, 0, + 0, 881, 0, 0, 0, 875, 0, 0, + 869, 0, 0, 0, 872, 0, 0, 887, + 0, 0, 0, 866, 0, 0, 860, 0, + 0, 0, 863, 0, 0, 884, 329, 569, + 0, 611, 45, 0, 0, 0, 0, 0, + 812, 779, 773, 2682, 105, 536, 2310, 536, + 539, 2318, 2322, 2314, 2326, 0, 5, 7, + 536, 3, 9, 539, 2318, 2322, 2314, 2326, + 587, 0, 5, 7, 569, 3, 9, 51, + 653, 656, 45, 650, 659, 0, 5, 7, + 569, 3, 9, 2522, 51, 653, 656, 45, + 59, 57, 55, 0, 61, 650, 659, 0, + 5, 7, 569, 3, 9, 51, 653, 656, + 45, 59, 57, 55, 0, 61, 650, 659, + 0, 5, 7, 569, 3, 9, 51, 653, + 656, 45, 59, 57, 55, 0, 61, 650, + 659, 0, 5, 7, 569, 3, 9, 647, + 45, 59, 57, 55, 0, 61, 2530, 45, + 59, 57, 55, 0, 61, 2546, 4580, 11, + 395, 2530, 45, 59, 57, 55, 0, 61, + 680, 2554, 2558, 4580, 2550, 2562, 11, 395, + 2530, 45, 59, 57, 55, 0, 61, 680, + 2554, 2558, 4580, 2550, 2562, 11, 395, 2530, + 45, 59, 57, 55, 0, 61, 680, 2554, + 2558, 4580, 2550, 2562, 11, 395, 11, 395, + 11, 395, 464, 35, 479, 482, 476, 485, + 464, 0, 5, 7, 3, 9, 473, 11, + 395, 536, 539, 2318, 2322, 2314, 2326, 0, + 5, 7, 536, 3, 9, 2310, 11, 395, + 569, 49, 632, 635, 45, 629, 638, 0, + 5, 7, 536, 3, 9, 2310, 11, 395, + 2598, 722, 35, 479, 482, 476, 485, 2202, + 4235, 4240, 464, 0, 5, 7, 3, 9, + 719, 2054, 2102, 11, 395, 773, 2706, 105, + 1808, 2994, 289, 1736, 1739, 45, 1733, 1742, + 0, 5, 7, 569, 0, 0, 3, 9, + 293, 1760, 1763, 45, 1757, 1766, 0, 5, + 7, 4535, 3, 9, 593, 2386, 2390, 0, + 45, 2382, 2394, 0, 5, 7, 3, 9, + 0, 5, 7, 3, 9, 569, 291, 1748, + 1751, 45, 1745, 1754, 0, 5, 7, 569, + 0, 0, 3, 9, 295, 1772, 1775, 45, + 1769, 1778, 0, 5, 7, 4535, 3, 9, + 596, 2402, 2406, 0, 45, 2398, 2410, 0, + 5, 7, 3, 9, 0, 5, 7, 3, + 9, 0, 4530, 6141, 599, 2418, 2422, 0, + 45, 599, 2414, 2426, 4510, 5991, 5997, 0, + 5, 7, 4530, 3, 9, 1805, 2066, 2114, + 602, 2434, 2438, 0, 45, 602, 2430, 2442, + 4515, 6003, 6009, 0, 5, 7, 4530, 3, + 9, 2066, 2114, 605, 2450, 2454, 0, 45, + 605, 2446, 2458, 4520, 6015, 6021, 0, 5, + 7, 4530, 3, 9, 2066, 2114, 608, 2466, + 2470, 0, 45, 2462, 2474, 4525, 6027, 6033, + 0, 5, 7, 3, 9, 2066, 2114, 11, + 395, 2378, 4495, 4500, 4385, 4490, 4505, 5985, + 6270, 6277, 566, 11, 395, 2374, 4475, 4480, + 4385, 2374, 4470, 4485, 5979, 6256, 6263, 566, + 11, 395, 2370, 4455, 4460, 4385, 2370, 4450, + 4465, 5973, 6242, 6249, 566, 11, 395, 2366, + 4435, 4440, 4385, 2366, 4430, 4445, 5967, 6228, + 6235, 566, 11, 395, 299, 1796, 1799, 1793, + 1802, 11, 395, 2362, 4415, 4420, 4385, 4410, + 4425, 566, 11, 395, 11, 395, 11, 395, + 297, 1784, 1787, 1781, 1790, 11, 395, 2358, + 4395, 4400, 4385, 4390, 4405, 566, 11, 395, + 11, 395, 569, 49, 632, 635, 45, 629, + 638, 0, 5, 7, 569, 3, 9, 49, + 632, 635, 45, 629, 638, 0, 5, 7, + 569, 3, 9, 49, 632, 635, 45, 629, + 638, 0, 5, 7, 536, 3, 9, 2310, + 11, 395, 11, 395, 11, 395, 569, 49, + 632, 635, 45, 629, 638, 0, 5, 7, + 569, 3, 9, 49, 632, 635, 45, 629, + 638, 464, 0, 5, 7, 3, 9, 35, + 479, 482, 476, 485, 464, 0, 5, 7, + 3, 9, 35, 479, 482, 476, 485, 464, + 0, 5, 7, 3, 9, 35, 479, 482, + 476, 485, 0, 5, 7, 536, 3, 9, + 2310, 11, 395, 11, 395, 11, 395, 11, + 395, 11, 395, 333, 0, 5, 7, 3, + 9, 569, 49, 632, 635, 45, 629, 638, + 0, 5, 7, 331, 3, 9, 0, 5, + 7, 3, 9, 129, 1, 11, 395, 11, + 395, 11, 395, 800, 0, 788, 5, 7, + 791, 794, 3, 9, 1, 350, 371, 111, + 113, 0, 2674, 773, 105, 107, 569, 797, + 2738, 2742, 45, 2734, 2746, 2730, 4665, 4670, + 11, 395, 0, 773, 105, 109, 569, 49, + 632, 635, 45, 629, 638, 0, 5, 7, + 331, 3, 9, 0, 5, 7, 3, 9, + 569, 47, 617, 620, 45, 614, 623, 803, 0, 5, 7, 115, 3, 9, 117, 0, - 5, 7, 3, 9, 1, 340, 361, 11, - 385, 11, 385, 11, 385, 11, 385, 556, - 49, 619, 622, 45, 616, 625, 0, 5, - 7, 760, 3, 9, 2622, 105, 11, 385, - 556, 49, 619, 622, 45, 616, 625, 0, - 5, 7, 1771, 3, 9, 117, 115, 117, - 2694, 299, 115, 117, 115, 117, 2946, 2942, - 11, 385, 1768, 117, 2938, 297, 115, 117, - 2930, 1768, 117, 297, 115, 117, 2934, 556, - 49, 619, 622, 45, 616, 625, 0, 5, - 7, 556, 3, 9, 49, 619, 622, 45, - 616, 625, 75, 0, 5, 7, 3, 9, - 1, 11, 385, 11, 385, 556, 47, 604, - 607, 45, 601, 610, 454, 0, 5, 7, - 3, 9, 35, 469, 472, 466, 475, 75, - 0, 5, 7, 3, 9, 1, 11, 385, - 11, 385, 556, 49, 619, 622, 45, 616, - 625, 0, 5, 7, 526, 3, 9, 550, - 1, 11, 385, 171, 0, 5, 7, 3, - 9, 325, 0, 5, 7, 3, 9, 556, - 49, 619, 622, 45, 616, 625, 0, 5, - 7, 526, 3, 9, 532, 11, 385, 11, - 385, 11, 385, 517, 514, 0, 2226, 2230, - 493, 388, 397, 2222, 2234, 514, 329, 2030, - 2038, 2974, 2982, 1998, 2046, 2966, 2970, 4043, - 4053, 2246, 514, 2030, 2038, 2594, 2594, 2594, - 2594, 2594, 2594, 2594, 2594, 2594, 2594, 2594, - 2594, 2594, 2594, 2594, 2594, 2594, 2594, 1998, - 2046, 4228, 4243, 4488, 4488, 4488, 4488, 4488, - 4488, 4488, 4488, 4488, 4488, 4488, 4488, 4488, - 4488, 4488, 4488, 4488, 4488, 2238, 2590, 93, - 4473, 4478, 2586, 2578, 2582, 4468, 4483, 2030, - 2038, 1998, 2046, 403, 2098, 2106, 4098, 2114, - 403, 2026, 2034, 2042, 4048, 5777, 5783, 5897, - 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, - 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, - 5897, 4038 + 5, 7, 3, 9, 1, 350, 371, 11, + 395, 11, 395, 11, 395, 11, 395, 569, + 47, 617, 620, 45, 614, 623, 0, 5, + 7, 569, 3, 9, 47, 617, 620, 45, + 614, 623, 0, 5, 7, 115, 3, 9, + 117, 0, 5, 7, 3, 9, 1, 350, + 371, 11, 395, 11, 395, 11, 395, 569, + 47, 617, 620, 45, 614, 623, 890, 0, + 5, 7, 147, 149, 151, 153, 3, 9, + 0, 5, 7, 3, 9, 2346, 569, 47, + 617, 620, 45, 614, 623, 0, 5, 7, + 0, 3, 9, 2766, 0, 5, 7, 0, + 5, 7, 0, 5, 7, 1, 3, 9, + 350, 371, 3, 9, 350, 371, 3, 9, + 350, 371, 893, 129, 11, 395, 11, 395, + 11, 395, 11, 395, 11, 395, 0, 5, + 7, 3, 9, 569, 47, 617, 620, 45, + 614, 623, 2678, 0, 5, 7, 773, 3, + 9, 4630, 105, 782, 2690, 2694, 782, 2690, + 2694, 782, 2690, 2694, 2682, 2686, 2698, 4635, + 4640, 2686, 2698, 4635, 4640, 2686, 2698, 4635, + 4640, 11, 395, 11, 395, 0, 5, 7, + 3, 9, 569, 47, 617, 620, 45, 614, + 623, 0, 5, 7, 773, 3, 9, 105, + 785, 2714, 2718, 785, 2714, 2718, 785, 2714, + 2718, 2706, 2710, 2722, 4650, 4655, 2710, 2722, + 4650, 4655, 2710, 2722, 4650, 4655, 11, 395, + 11, 395, 0, 5, 7, 3, 9, 569, + 47, 617, 620, 45, 614, 623, 0, 5, + 7, 536, 3, 9, 43, 548, 551, 43, + 548, 551, 43, 548, 551, 542, 545, 554, + 2330, 2334, 545, 554, 2330, 2334, 545, 554, + 2330, 2334, 11, 395, 11, 395, 11, 395, + 173, 0, 5, 7, 3, 9, 331, 0, + 5, 7, 3, 9, 569, 47, 617, 620, + 45, 614, 623, 0, 5, 7, 569, 3, + 9, 51, 653, 656, 45, 650, 659, 701, + 0, 5, 7, 686, 3, 9, 65, 692, + 695, 63, 689, 698, 0, 5, 7, 686, + 3, 9, 65, 692, 695, 63, 689, 698, + 0, 5, 7, 569, 3, 9, 49, 632, + 635, 45, 629, 638, 0, 5, 7, 536, + 3, 9, 539, 2318, 2322, 2314, 2326, 0, + 5, 7, 129, 3, 9, 1, 11, 395, + 11, 395, 11, 395, 11, 395, 11, 395, + 11, 395, 11, 395, 11, 395, 536, 560, + 1, 569, 49, 632, 635, 45, 629, 638, + 0, 5, 7, 569, 3, 9, 47, 617, + 620, 45, 614, 623, 0, 5, 7, 331, + 3, 9, 0, 5, 7, 3, 9, 129, + 1, 11, 395, 11, 395, 11, 395, 129, + 1, 569, 47, 617, 620, 45, 614, 623, + 0, 5, 7, 569, 3, 9, 47, 617, + 620, 45, 614, 623, 0, 5, 7, 569, + 3, 9, 49, 632, 635, 45, 629, 638, + 0, 5, 7, 33, 467, 3, 9, 35, + 479, 482, 476, 485, 809, 0, 5, 7, + 470, 3, 9, 133, 135, 0, 137, 139, + 0, 141, 0, 143, 145, 0, 488, 131, + 1, 0, 0, 11, 395, 117, 115, 11, + 395, 11, 395, 11, 395, 569, 47, 617, + 620, 45, 614, 623, 0, 5, 7, 569, + 3, 9, 47, 617, 620, 45, 614, 623, + 0, 5, 7, 569, 3, 9, 49, 632, + 635, 45, 629, 638, 0, 5, 7, 33, + 467, 3, 9, 473, 117, 115, 11, 395, + 11, 395, 11, 395, 569, 47, 617, 620, + 45, 614, 623, 0, 5, 7, 569, 3, + 9, 47, 617, 620, 45, 614, 623, 0, + 5, 7, 569, 3, 9, 47, 617, 620, + 45, 614, 623, 0, 5, 7, 115, 3, + 9, 117, 0, 5, 7, 3, 9, 1, + 350, 371, 11, 395, 11, 395, 11, 395, + 11, 395, 569, 51, 653, 656, 45, 650, + 659, 0, 5, 7, 569, 3, 9, 641, + 45, 1, 11, 395, 569, 51, 653, 656, + 45, 650, 659, 0, 5, 7, 569, 3, + 9, 47, 617, 620, 45, 614, 623, 0, + 5, 7, 569, 3, 9, 47, 617, 620, + 45, 614, 623, 0, 5, 7, 115, 3, + 9, 117, 0, 5, 7, 3, 9, 1, + 350, 371, 11, 395, 11, 395, 11, 395, + 11, 395, 569, 49, 632, 635, 45, 629, + 638, 0, 5, 7, 773, 3, 9, 2682, + 105, 11, 395, 569, 49, 632, 635, 45, + 629, 638, 0, 5, 7, 1814, 3, 9, + 117, 115, 117, 2754, 305, 115, 117, 115, + 117, 3014, 3010, 11, 395, 1811, 117, 3006, + 303, 115, 117, 2998, 1811, 117, 303, 115, + 117, 3002, 569, 49, 632, 635, 45, 629, + 638, 0, 5, 7, 569, 3, 9, 49, + 632, 635, 45, 629, 638, 75, 0, 5, + 7, 3, 9, 1, 11, 395, 11, 395, + 569, 47, 617, 620, 45, 614, 623, 464, + 0, 5, 7, 3, 9, 35, 479, 482, + 476, 485, 75, 0, 5, 7, 3, 9, + 1, 11, 395, 11, 395, 569, 49, 632, + 635, 45, 629, 638, 0, 5, 7, 536, + 3, 9, 563, 1, 11, 395, 173, 0, + 5, 7, 3, 9, 335, 0, 5, 7, + 3, 9, 569, 49, 632, 635, 45, 629, + 638, 0, 5, 7, 536, 3, 9, 542, + 11, 395, 11, 395, 11, 395, 323, 1, + 527, 524, 0, 2282, 2286, 503, 398, 407, + 2278, 2290, 524, 339, 2082, 2090, 3046, 3054, + 2050, 2098, 3038, 3042, 4155, 4165, 2302, 524, + 2082, 2090, 2654, 2654, 2654, 2654, 2654, 2654, + 2654, 2654, 2654, 2654, 2654, 2654, 2654, 2654, + 2654, 2654, 2654, 2654, 2050, 2098, 4340, 4375, + 4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620, + 4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620, + 4620, 4620, 2294, 2650, 93, 4605, 4610, 2646, + 2638, 2642, 4600, 4615, 2082, 2090, 2050, 2098, + 413, 2150, 2158, 4210, 2166, 413, 2078, 2086, + 2094, 4160, 5949, 5961, 6075, 6075, 6075, 6075, + 6075, 6075, 6075, 6075, 6075, 6075, 6075, 6075, + 6075, 6075, 6075, 6075, 6075, 6075, 4150 }; static const short _zone_scanner_eof_actions[] = { - 0, 2290, 2466, 335, 1816, 327, 1801, 15, - 15, 327, 327, 1801, 1801, 1801, 4248, 5879, - 1813, 335, 335, 1816, 1801, 1801, 335, 335, - 335, 335, 335, 1816, 1816, 335, 335, 1816, - 335, 335, 335, 1816, 335, 335, 335, 1816, - 335, 335, 335, 335, 1816, 335, 335, 335, - 1816, 335, 335, 335, 1816, 1816, 335, 335, - 1816, 335, 335, 335, 335, 1816, 335, 1816, - 335, 335, 335, 335, 1816, 335, 335, 335, - 1816, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 1816, 335, 335, 1816, 1816, - 335, 335, 1816, 335, 1816, 335, 1816, 1816, - 335, 335, 335, 335, 1816, 1816, 335, 335, - 335, 335, 1816, 335, 1816, 1816, 335, 1816, - 1816, 335, 335, 335, 335, 1816, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 1816, - 335, 335, 1816, 335, 335, 335, 335, 335, - 335, 1816, 1816, 335, 335, 335, 1816, 1816, - 335, 335, 335, 335, 335, 1816, 335, 1816, - 335, 1816, 335, 1816, 335, 335, 335, 1816, - 335, 335, 1816, 335, 335, 335, 1816, 335, - 1816, 335, 335, 577, 2294, 335, 335, 1816, - 335, 335, 335, 335, 335, 1816, 335, 335, - 335, 335, 335, 1816, 335, 2290, 335, 335, - 577, 2466, 2466, 2466, 2466, 335, 15, 95, - 95, 95, 95, 95, 95, 95, 95, 41, - 577, 0, 4233, 577, 335, 2466, 2466, 2466, - 335, 2250, 2294, 2986, 1801, 2290, 15, 1801, - 15, 4248, 2986, 2986, 2986, 2986, 2986, 2986, - 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, - 2986, 2986, 2986, 1801, 2962, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 2242, 6029, - 2290, 1813, 4238, 4248, 4238, 4238, 4238, 4238, - 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238, - 4238, 4238, 4238, 4238, 4238, 520, 4248, 1801, - 15, 1801, 1801, 335, 335, 1816, 335, 335, - 335, 1816, 335, 335, 335, 1816, 335, 1816, - 1801, 1801, 15, 1801, 1801, 1801, 1801, 327, - 4248, 1801, 1801, 523, 523, 523, 523, 523, - 523, 523, 523, 523, 523, 523, 523, 523, - 523, 523, 523, 523, 15, 1813, 523, 1813, - 0, 0, 0, 31, 31, 31, 433, 433, - 433, 433, 31, 31, 691, 691, 2530, 2530, - 2530, 2530, 691, 691, 69, 2530, 2530, 2530, - 2530, 77, 559, 4443, 406, 406, 4443, 2458, - 4443, 77, 81, 81, 81, 409, 409, 409, - 436, 436, 436, 436, 409, 81, 0, 85, - 721, 727, 87, 727, 15, 15, 439, 439, - 439, 439, 727, 15, 87, 0, 0, 127, - 127, 127, 127, 127, 127, 127, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 562, 562, 169, 169, 169, 169, - 169, 169, 169, 169, 169, 169, 169, 169, - 169, 169, 169, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 295, 565, 565, 2690, 2690, 2690, - 2690, 295, 295, 295, 565, 565, 2690, 2690, - 2690, 2690, 295, 565, 295, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 571, 571, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, - 303, 763, 763, 763, 763, 763, 763, 303, - 303, 303, 303, 303, 763, 763, 763, 763, - 763, 763, 303, 303, 568, 568, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 568, 568, - 568, 568, 303, 303, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 319, 319, 319, - 319, 319, 319, 319, 319, 766, 766, 327, - 327, 327, 327, 327, 327, 574, 574, 574, - 2462, 574, 2462, 574, 2462, 574, 2462, 2462, - 2462, 2462, 327, 2462, 2462, 2462, 327, 2462, - 2462, 2462, 327, 2462, 2462, 2462, 327, 327, + 0, 2350, 2526, 345, 1862, 337, 1847, 15, + 15, 337, 337, 1847, 1847, 1847, 4380, 6057, + 1859, 345, 345, 1862, 1847, 1847, 345, 345, + 345, 345, 345, 1862, 1862, 345, 345, 1862, + 345, 345, 345, 1862, 345, 345, 345, 1862, + 345, 345, 345, 345, 1862, 345, 345, 345, + 345, 1862, 345, 345, 345, 1862, 345, 345, + 345, 1862, 345, 345, 345, 1862, 1862, 345, + 345, 1862, 345, 345, 345, 345, 1862, 345, + 1862, 345, 345, 345, 345, 1862, 345, 345, + 345, 1862, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 1862, 345, 345, 1862, + 1862, 345, 345, 1862, 345, 1862, 345, 1862, + 1862, 345, 345, 345, 345, 1862, 1862, 345, + 345, 345, 345, 1862, 345, 1862, 1862, 345, + 1862, 1862, 345, 345, 345, 345, 1862, 345, + 345, 345, 345, 345, 345, 345, 345, 345, + 1862, 345, 345, 1862, 345, 345, 345, 345, + 345, 345, 1862, 1862, 345, 345, 345, 1862, + 1862, 345, 345, 345, 345, 345, 1862, 345, + 1862, 345, 1862, 345, 1862, 345, 345, 345, + 1862, 345, 345, 1862, 345, 345, 345, 1862, + 345, 1862, 345, 345, 590, 2354, 345, 345, + 1862, 345, 345, 345, 345, 345, 1862, 345, + 345, 345, 345, 345, 1862, 345, 2350, 345, + 345, 590, 2526, 2526, 2526, 2526, 345, 15, + 95, 95, 95, 95, 95, 95, 95, 95, + 41, 590, 0, 4345, 590, 345, 2526, 2526, + 2526, 345, 2306, 2354, 3058, 1847, 2350, 15, + 1847, 15, 4380, 3058, 3058, 3058, 3058, 3058, + 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, + 3058, 3058, 3058, 3058, 1847, 3034, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 2298, + 6207, 2350, 1859, 4350, 4380, 4350, 4350, 4350, + 4350, 4350, 4350, 4350, 4350, 4350, 4350, 4350, + 4350, 4350, 4350, 4350, 4350, 4350, 530, 4380, + 1847, 15, 1847, 1847, 345, 345, 1862, 345, + 345, 345, 1862, 345, 345, 345, 1862, 345, + 1862, 1847, 1847, 15, 1847, 1847, 1847, 1847, + 337, 4380, 1847, 1847, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 15, 1859, 533, + 1859, 0, 0, 0, 31, 31, 31, 443, + 443, 443, 443, 31, 31, 704, 704, 2590, + 2590, 2590, 2590, 704, 704, 69, 2590, 2590, + 2590, 2590, 77, 572, 4575, 416, 416, 4575, + 2518, 4575, 77, 81, 81, 81, 419, 419, + 419, 446, 446, 446, 446, 419, 81, 0, + 85, 734, 740, 87, 740, 15, 15, 449, + 449, 449, 449, 740, 15, 87, 0, 0, + 127, 127, 127, 127, 127, 127, 127, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 575, 575, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 301, 578, 578, + 2750, 2750, 2750, 2750, 301, 301, 301, 578, + 578, 2750, 2750, 2750, 2750, 301, 578, 301, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 584, 584, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 584, 584, 311, + 311, 311, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 776, 776, 776, 776, 776, + 776, 309, 309, 309, 309, 309, 776, 776, + 776, 776, 776, 776, 309, 309, 581, 581, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 581, 581, 581, 581, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 581, 581, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, + 309, 776, 776, 776, 776, 776, 776, 309, + 776, 776, 776, 776, 776, 776, 309, 309, + 309, 309, 309, 309, 309, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 574, 574, 327, 327, 327, - 709, 709, 709, 709, 766, 766, 1765, 1765, - 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, - 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, - 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, - 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, - 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, - 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, - 1765, 1765, 1765, 1765, 1765, 574, 574, 574, - 574, 574, 574, 327, 327, 327, 327, 327, - 574, 574, 574, 574, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 574, 574, 327, 327, 327, - 327, 327, 327, 327, 787, 787, 787, 2614, - 2614, 787, 787, 327, 787, 2614, 2614, 574, - 574, 327, 327, 574, 574, 790, 790, 790, - 790, 327, 327, 327, 574, 574, 574, 574, - 790, 790, 790, 790, 327, 327, 574, 574, - 877, 877, 2286, 2286, 877, 2706, 880, 880, - 880, 880, 880, 880, 880, 877, 877, 877, - 2286, 2286, 2618, 4498, 877, 877, 877, 2286, - 2286, 2618, 4498, 877, 877, 877, 2286, 2286, - 877, 2706, 877, 877, 327, 327, 327, 327, - 327, 574, 574, 574, 574, 688, 688, 688, - 688, 574, 574, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 574, 574, 574, 574, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 574, - 574, 574, 574, 574, 574, 790, 790, 796, - 796, 796, 796, 796, 796, 796, 796, 796, - 327, 796, 796, 796, 796, 796, 327, 790, - 790, 327, 327, 327, 574, 574, 574, 574, - 574, 574, 790, 790, 790, 790, 327, 327, - 327, 574, 574, 574, 574, 574, 574, 790, - 790, 790, 790, 327, 327, 327, 574, 574, - 574, 574, 327, 327, 574, 574, 574, 574, - 574, 574, 790, 790, 790, 790, 327, 327, - 327, 574, 574, 766, 766, 327, 574, 574, - 790, 790, 790, 790, 2694, 790, 790, 790, - 790, 2946, 327, 790, 790, 2938, 790, 790, - 2938, 790, 790, 2938, 790, 790, 2938, 574, - 574, 574, 574, 327, 327, 327, 327, 574, - 574, 327, 327, 327, 327, 327, 327, 574, - 574, 327, 327, 327, 327, 327, 327, 327, - 327, 574, 574, 327, 327, 327, 327, 327, - 0, 0, 0, 0, 93, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 + 327, 327, 327, 327, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 327, 329, 329, + 329, 329, 329, 329, 329, 329, 779, 779, + 337, 337, 337, 337, 337, 337, 587, 587, + 587, 2522, 587, 2522, 587, 2522, 587, 2522, + 2522, 2522, 2522, 337, 2522, 2522, 2522, 337, + 2522, 2522, 2522, 337, 2522, 2522, 2522, 337, + 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 587, 587, 337, 337, + 337, 722, 722, 722, 722, 779, 779, 1808, + 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, + 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, + 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, + 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, + 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, + 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, + 1808, 1808, 1808, 1808, 1808, 1808, 587, 587, + 587, 587, 587, 587, 337, 337, 337, 337, + 337, 587, 587, 587, 587, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 587, 587, 337, 337, + 337, 337, 337, 337, 337, 800, 800, 800, + 2674, 2674, 800, 800, 337, 800, 2674, 2674, + 587, 587, 337, 337, 587, 587, 803, 803, + 803, 803, 337, 337, 337, 587, 587, 587, + 587, 803, 803, 803, 803, 337, 337, 587, + 587, 890, 890, 2346, 2346, 890, 2766, 893, + 893, 893, 893, 893, 893, 893, 890, 890, + 890, 2346, 2346, 2678, 4630, 890, 890, 890, + 2346, 2346, 2678, 4630, 890, 890, 890, 2346, + 2346, 890, 2766, 890, 890, 337, 337, 337, + 337, 337, 587, 587, 587, 587, 701, 701, + 701, 701, 587, 587, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 587, 587, 587, 587, 337, + 337, 337, 337, 337, 337, 337, 337, 337, + 587, 587, 587, 587, 587, 587, 803, 803, + 809, 809, 809, 809, 809, 809, 809, 809, + 809, 337, 809, 809, 809, 809, 809, 337, + 803, 803, 337, 337, 337, 587, 587, 587, + 587, 587, 587, 803, 803, 803, 803, 337, + 337, 337, 587, 587, 587, 587, 587, 587, + 803, 803, 803, 803, 337, 337, 337, 587, + 587, 587, 587, 337, 337, 587, 587, 587, + 587, 587, 587, 803, 803, 803, 803, 337, + 337, 337, 587, 587, 779, 779, 337, 587, + 587, 803, 803, 803, 803, 2754, 803, 803, + 803, 803, 3014, 337, 803, 803, 3006, 803, + 803, 3006, 803, 803, 3006, 803, 803, 3006, + 587, 587, 587, 587, 337, 337, 337, 337, + 587, 587, 337, 337, 337, 337, 337, 337, + 587, 587, 337, 337, 337, 337, 337, 337, + 337, 337, 587, 587, 337, 337, 337, 337, + 337, 337, 337, 0, 0, 0, 0, 93, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 }; @@ -6530,7 +6922,7 @@ int zs_init( memset(s, 0, sizeof(*s)); // Nonzero initial scanner state. - s->cs = 1504; + s->cs = 1651; // Reset the file descriptor. s->file.descriptor = -1; @@ -7070,7 +7462,7 @@ _match: { if (s->multiline == true) { ERR(ZS_LEFT_PARENTHESIS); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } s->multiline = true; } @@ -7079,7 +7471,7 @@ _match: { if (s->multiline == false) { ERR(ZS_RIGHT_PARENTHESIS); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } s->multiline = false; } @@ -7120,7 +7512,7 @@ _match: case 8: { WARN(ZS_BAD_REST); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 9: @@ -7173,15 +7565,15 @@ _match: if (s->error.fatal) { {p++; goto _out; } } - {cs = 328;goto _again;} + {cs = 337;goto _again;} } else { // Return if external processing. - p--; cs = 328; {p++; goto _out; } + p--; cs = 337; {p++; goto _out; } } } break; case 12: - { p--; {stack[top++] = cs; cs = 1504;goto _again;} } + { p--; {stack[top++] = cs; cs = 1651;goto _again;} } break; case 13: { @@ -7197,7 +7589,7 @@ _match: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7210,7 +7602,7 @@ _match: (uint8_t)(s->item_length); } else { WARN(ZS_DNAME_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7221,7 +7613,7 @@ _match: s->item_length++; } else { WARN(ZS_LABEL_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7239,7 +7631,7 @@ _match: case 19: { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 20: @@ -7259,7 +7651,7 @@ _match: s->dname_tmp_length += s->zone_origin_length; } else { WARN(ZS_DNAME_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7282,11 +7674,11 @@ _match: case 24: { WARN(ZS_BAD_DNAME_CHAR); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 25: - { p--; {stack[top++] = cs; cs = 331;goto _again;} } + { p--; {stack[top++] = cs; cs = 340;goto _again;} } break; case 26: { @@ -7294,7 +7686,7 @@ _match: s->item_length_location = rdata_tail++; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7303,13 +7695,13 @@ _match: s->item_length = rdata_tail - s->item_length_location - 1; if (s->comma_list && s->item_length == 0) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } if (s->item_length <= MAX_ITEM_LENGTH) { *(s->item_length_location) = (uint8_t)(s->item_length); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7320,7 +7712,7 @@ _match: rdata_tail += 2; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7333,7 +7725,7 @@ _match: memcpy(s->item_length2_location, &val, 2); } else { WARN(ZS_ITEM_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7352,7 +7744,7 @@ _match: { if (s->r_owner_length == 0) { WARN(ZS_BAD_PREVIOUS_OWNER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7360,7 +7752,7 @@ _match: { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 34: @@ -7392,7 +7784,7 @@ _match: s->number64 += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER64_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7404,7 +7796,7 @@ _match: case 39: { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 40: @@ -7432,7 +7824,7 @@ _match: s->number64 += s->number64_tmp * pow(10, s->decimals); } else { WARN(ZS_FLOAT_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7453,7 +7845,7 @@ _match: rdata_tail += 1; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7465,7 +7857,7 @@ _match: rdata_tail += 2; } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7477,7 +7869,7 @@ _match: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7487,7 +7879,7 @@ _match: s->r_type = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7497,14 +7889,14 @@ _match: s->r_data_length = (uint16_t)(s->number64); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; case 51: { WARN(ZS_BAD_TIME_UNIT); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 52: @@ -7512,7 +7904,7 @@ _match: s->number64 *= 60; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7521,7 +7913,7 @@ _match: s->number64 *= 3600; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7530,7 +7922,7 @@ _match: s->number64 *= 86400; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7539,7 +7931,7 @@ _match: s->number64 *= 604800; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7554,7 +7946,7 @@ _match: s->number64 += s->number64_tmp; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7569,7 +7961,7 @@ _match: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7586,7 +7978,7 @@ _match: rdata_tail += 4; } else { WARN(ret); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } else if (s->buffer_length <= 10) { // Timestamp format. char *end; @@ -7595,7 +7987,7 @@ _match: if (end == (char *)(s->buffer) || *end != '\0') { WARN(ZS_BAD_TIMESTAMP); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } if (s->number64 <= UINT32_MAX) { @@ -7603,18 +7995,18 @@ _match: rdata_tail += 4; } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } else { WARN(ZS_BAD_TIMESTAMP_LENGTH); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; case 61: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 62: @@ -7630,27 +8022,27 @@ _match: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } *(rdata_tail++) = (*p); } else { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; case 63: { WARN(ZS_BAD_TEXT_CHAR); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 64: { WARN(ZS_BAD_TEXT); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 65: @@ -7666,7 +8058,7 @@ _match: if (rdata_tail > rdata_stop) { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } @@ -7674,7 +8066,7 @@ _match: s->item_length++; } else { WARN(ZS_TEXT_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7689,7 +8081,7 @@ _match: *rdata_tail += digit_to_num[(uint8_t)(*p)]; } else { WARN(ZS_NUMBER8_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7701,7 +8093,7 @@ _match: case 68: { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 69: @@ -7712,7 +8104,7 @@ _match: if (last_two[1] == ',') { if (current_len <= 1) { WARN(ZS_EMPTY_LIST_ITEM); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } else if (last_two[0] != '\\' || !s->pending_backslash) { // Start a new item. *(s->item_length_location) = current_len; s->item_length_location = rdata_tail - 1; @@ -7730,13 +8122,13 @@ _match: } } else if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } } break; case 70: - { p--; {stack[top++] = cs; cs = 340;goto _again;} } + { p--; {stack[top++] = cs; cs = 349;goto _again;} } break; case 71: { @@ -7754,18 +8146,18 @@ _match: s->default_ttl = (uint32_t)(s->number64); } else { ERR(ZS_NUMBER32_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; case 74: { ERR(ZS_BAD_TTL); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 75: - { p--; {stack[top++] = cs; cs = 353;goto _again;} } + { p--; {stack[top++] = cs; cs = 362;goto _again;} } break; case 76: { @@ -7780,11 +8172,11 @@ _match: case 78: { ERR(ZS_BAD_ORIGIN); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 79: - { p--; {stack[top++] = cs; cs = 362;goto _again;} } + { p--; {stack[top++] = cs; cs = 371;goto _again;} } break; case 80: { @@ -7796,7 +8188,7 @@ _match: size_t len = rdata_tail - s->r_data; if (len >= sizeof(s->include_filename)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } // Store zero terminated include filename. @@ -7810,7 +8202,7 @@ _match: case 82: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 83: @@ -7826,7 +8218,7 @@ _match: case 85: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 86: @@ -7837,7 +8229,7 @@ _match: "%s/%s", s->path, s->include_filename); if (ret <= 0 || ret >= sizeof(s->buffer)) { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } memcpy(s->include_filename, s->buffer, ret + 1); } @@ -7857,7 +8249,7 @@ _match: zs_scanner_t *ss = malloc(sizeof(zs_scanner_t)); if (ss == NULL) { ERR(ZS_UNPROCESSED_INCLUDE); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } // Parse included zone file. @@ -7877,18 +8269,18 @@ _match: } zs_deinit(ss); free(ss); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } zs_deinit(ss); free(ss); } else { s->state = ZS_STATE_INCLUDE; - p--; cs = 1504; {p++; goto _out; } + p--; cs = 1651; {p++; goto _out; } } } break; case 87: - { p--; {stack[top++] = cs; cs = 374;goto _again;} } + { p--; {stack[top++] = cs; cs = 383;goto _again;} } break; case 88: { @@ -7903,7 +8295,7 @@ _match: case 90: { ERR(ZS_BAD_DIRECTIVE); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 91: @@ -7927,7 +8319,7 @@ _match: s->r_ttl = (uint32_t)(s->number64); } else { WARN(ZS_NUMBER32_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7942,14 +8334,14 @@ _match: s->buffer[s->buffer_length++] = (*p); } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; case 97: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 98: @@ -7958,7 +8350,7 @@ _match: if (inet_pton(AF_INET, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV4); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7966,7 +8358,7 @@ _match: { if (rdata_tail + ZS_INET4_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } memcpy(rdata_tail, s->addr, ZS_INET4_ADDR_LENGTH); rdata_tail += ZS_INET4_ADDR_LENGTH; @@ -7978,7 +8370,7 @@ _match: if (inet_pton(AF_INET6, (char *)s->buffer, s->addr) <= 0) { WARN(ZS_BAD_IPV6); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -7986,7 +8378,7 @@ _match: { if (rdata_tail + ZS_INET6_ADDR_LENGTH > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } memcpy(rdata_tail, s->addr, ZS_INET6_ADDR_LENGTH); rdata_tail += ZS_INET6_ADDR_LENGTH; @@ -8019,7 +8411,7 @@ _match: s->apl.prefix_length = (uint8_t)(s->number64); } else { WARN(ZS_BAD_APL); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -8038,7 +8430,7 @@ _match: break; default: WARN(ZS_BAD_APL); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } // Find prefix without trailing zeroes. while (len > 0) { @@ -8050,7 +8442,7 @@ _match: // Check for rdata overflow. if (rdata_tail + 4 + len > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } // Write address family. uint16_t af = htons(s->apl.addr_family); @@ -8070,7 +8462,7 @@ _match: case 108: { WARN(ZS_BAD_APL); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 109: @@ -8079,7 +8471,7 @@ _match: *rdata_tail = first_hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -8092,21 +8484,21 @@ _match: case 111: { WARN(ZS_BAD_HEX_CHAR); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 112: { if ((rdata_tail - s->r_data) != s->r_data_length) { WARN(ZS_BAD_RDATA_LENGTH); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; case 113: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 114: @@ -8115,7 +8507,7 @@ _match: *rdata_tail = first_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -8127,7 +8519,7 @@ _match: *rdata_tail = second_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -8139,7 +8531,7 @@ _match: *rdata_tail = third_right_base64_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -8151,11 +8543,11 @@ _match: case 118: { WARN(ZS_BAD_BASE64_CHAR); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 119: - { p--; {stack[top++] = cs; cs = 391;goto _again;} } + { p--; {stack[top++] = cs; cs = 400;goto _again;} } break; case 120: { @@ -8163,7 +8555,7 @@ _match: *rdata_tail = first_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -8175,7 +8567,7 @@ _match: *rdata_tail = second_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -8192,7 +8584,7 @@ _match: *rdata_tail = fourth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -8204,7 +8596,7 @@ _match: *rdata_tail = fifth_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -8221,7 +8613,7 @@ _match: *rdata_tail = seventh_right_base32hex_to_num[(uint8_t)(*p)]; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; @@ -8233,7 +8625,7 @@ _match: case 128: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 129: @@ -8401,19 +8793,19 @@ _match: case 157: { WARN(ZS_BAD_GATEWAY); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 158: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 159: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; case 160: @@ -8573,181 +8965,193 @@ _match: { type_num(KNOT_RRTYPE_ALIAS, &rdata_tail); } break; case 212: - { p--; {stack[top++] = cs; cs = 398;goto _again;} } + { type_num(KNOT_RRTYPE_DELEG, &rdata_tail); } break; case 213: + { type_num(KNOT_RRTYPE_DELEGPARAM, &rdata_tail); } + break; + case 214: + { p--; {stack[top++] = cs; cs = 407;goto _again;} } + break; + case 215: { if (s->number64 <= UINT16_MAX) { window_add_bit(s->number64, s); } else { WARN(ZS_NUMBER16_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 214: + case 216: { window_add_bit(KNOT_RRTYPE_A, s); } break; - case 215: + case 217: { window_add_bit(KNOT_RRTYPE_NS, s); } break; - case 216: + case 218: { window_add_bit(KNOT_RRTYPE_CNAME, s); } break; - case 217: + case 219: { window_add_bit(KNOT_RRTYPE_SOA, s); } break; - case 218: + case 220: { window_add_bit(KNOT_RRTYPE_PTR, s); } break; - case 219: + case 221: { window_add_bit(KNOT_RRTYPE_HINFO, s); } break; - case 220: + case 222: { window_add_bit(KNOT_RRTYPE_MINFO, s); } break; - case 221: + case 223: { window_add_bit(KNOT_RRTYPE_MX, s); } break; - case 222: + case 224: { window_add_bit(KNOT_RRTYPE_TXT, s); } break; - case 223: + case 225: { window_add_bit(KNOT_RRTYPE_RP, s); } break; - case 224: + case 226: { window_add_bit(KNOT_RRTYPE_AFSDB, s); } break; - case 225: + case 227: { window_add_bit(KNOT_RRTYPE_RT, s); } break; - case 226: + case 228: { window_add_bit(KNOT_RRTYPE_KEY, s); } break; - case 227: + case 229: { window_add_bit(KNOT_RRTYPE_AAAA, s); } break; - case 228: + case 230: { window_add_bit(KNOT_RRTYPE_LOC, s); } break; - case 229: + case 231: { window_add_bit(KNOT_RRTYPE_SRV, s); } break; - case 230: + case 232: { window_add_bit(KNOT_RRTYPE_NAPTR, s); } break; - case 231: + case 233: { window_add_bit(KNOT_RRTYPE_KX, s); } break; - case 232: + case 234: { window_add_bit(KNOT_RRTYPE_CERT, s); } break; - case 233: + case 235: { window_add_bit(KNOT_RRTYPE_DNAME, s); } break; - case 234: + case 236: { window_add_bit(KNOT_RRTYPE_APL, s); } break; - case 235: + case 237: { window_add_bit(KNOT_RRTYPE_DS, s); } break; - case 236: + case 238: { window_add_bit(KNOT_RRTYPE_SSHFP, s); } break; - case 237: + case 239: { window_add_bit(KNOT_RRTYPE_IPSECKEY, s); } break; - case 238: + case 240: { window_add_bit(KNOT_RRTYPE_RRSIG, s); } break; - case 239: + case 241: { window_add_bit(KNOT_RRTYPE_NSEC, s); } break; - case 240: + case 242: { window_add_bit(KNOT_RRTYPE_DNSKEY, s); } break; - case 241: + case 243: { window_add_bit(KNOT_RRTYPE_DHCID, s); } break; - case 242: + case 244: { window_add_bit(KNOT_RRTYPE_NSEC3, s); } break; - case 243: + case 245: { window_add_bit(KNOT_RRTYPE_NSEC3PARAM, s); } break; - case 244: + case 246: { window_add_bit(KNOT_RRTYPE_TLSA, s); } break; - case 245: + case 247: { window_add_bit(KNOT_RRTYPE_SMIMEA, s); } break; - case 246: + case 248: { window_add_bit(KNOT_RRTYPE_CDS, s); } break; - case 247: + case 249: { window_add_bit(KNOT_RRTYPE_CDNSKEY, s); } break; - case 248: + case 250: { window_add_bit(KNOT_RRTYPE_OPENPGPKEY, s); } break; - case 249: + case 251: { window_add_bit(KNOT_RRTYPE_CSYNC, s); } break; - case 250: + case 252: { window_add_bit(KNOT_RRTYPE_ZONEMD, s); } break; - case 251: + case 253: { window_add_bit(KNOT_RRTYPE_SPF, s); } break; - case 252: + case 254: { window_add_bit(KNOT_RRTYPE_NID, s); } break; - case 253: + case 255: { window_add_bit(KNOT_RRTYPE_L32, s); } break; - case 254: + case 256: { window_add_bit(KNOT_RRTYPE_L64, s); } break; - case 255: + case 257: { window_add_bit(KNOT_RRTYPE_LP, s); } break; - case 256: + case 258: { window_add_bit(KNOT_RRTYPE_EUI48, s); } break; - case 257: + case 259: { window_add_bit(KNOT_RRTYPE_EUI64, s); } break; - case 258: + case 260: { window_add_bit(KNOT_RRTYPE_URI, s); } break; - case 259: + case 261: { window_add_bit(KNOT_RRTYPE_CAA, s); } break; - case 260: + case 262: { window_add_bit(KNOT_RRTYPE_SVCB, s); } break; - case 261: + case 263: { window_add_bit(KNOT_RRTYPE_HTTPS, s); } break; - case 262: + case 264: { window_add_bit(KNOT_RRTYPE_DSYNC, s); } break; - case 263: + case 265: { window_add_bit(KNOT_RRTYPE_RESINFO, s); } break; - case 264: + case 266: { window_add_bit(KNOT_RRTYPE_WALLET, s); } break; - case 265: + case 267: { window_add_bit(KNOT_RRTYPE_ALIAS, s); } break; - case 266: + case 268: + { window_add_bit(KNOT_RRTYPE_DELEG, s); } + break; + case 269: + { window_add_bit(KNOT_RRTYPE_DELEGPARAM, s); } + break; + case 270: { memset(s->windows, 0, sizeof(s->windows)); s->last_window = -1; } break; - case 267: + case 271: { for (uint16_t window = 0; window <= s->last_window; window++) { if ((s->windows[window]).length > 0) { @@ -8766,82 +9170,82 @@ _match: rdata_tail += (s->windows[window]).length; } else { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } } } break; - case 268: + case 272: { WARN(ZS_BAD_BITMAP); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 269: - { p--; {stack[top++] = cs; cs = 579;goto _again;} } + case 273: + { p--; {stack[top++] = cs; cs = 597;goto _again;} } break; - case 270: + case 274: { if (s->number64 <= 90) { s->loc.d1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 271: + case 275: { if (s->number64 <= 180) { s->loc.d2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 272: + case 276: { if (s->number64 <= 59) { s->loc.m1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 273: + case 277: { if (s->number64 <= 59) { s->loc.m2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 274: + case 278: { if (s->number64 <= 59999) { s->loc.s1 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 275: + case 279: { if (s->number64 <= 59999) { s->loc.s2 = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 276: + case 280: { if ((s->loc.alt_sign == 1 && s->number64 <= 4284967295) || (s->loc.alt_sign == -1 && s->number64 <= 10000000)) @@ -8849,56 +9253,56 @@ _match: s->loc.alt = (uint32_t)(s->number64); } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 277: + case 281: { if (s->number64 <= 9000000000ULL) { s->loc.siz = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 278: + case 282: { if (s->number64 <= 9000000000ULL) { s->loc.hp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 279: + case 283: { if (s->number64 <= 9000000000ULL) { s->loc.vp = s->number64; } else { WARN(ZS_BAD_NUMBER); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 280: + case 284: { s->loc.lat_sign = -1; } break; - case 281: + case 285: { s->loc.long_sign = -1; } break; - case 282: + case 286: { s->loc.alt_sign = -1; } break; - case 283: + case 287: { memset(&(s->loc), 0, sizeof(s->loc)); // Defaults. @@ -8910,7 +9314,7 @@ _match: s->loc.alt_sign = 1; } break; - case 284: + case 288: { // Write version. *(rdata_tail) = 0; @@ -8938,293 +9342,302 @@ _match: rdata_tail += 4; } break; - case 285: + case 289: { WARN(ZS_BAD_LOC_DATA); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 286: + case 290: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 287: + case 291: { s->item_length = 0; } break; - case 288: + case 292: { s->item_length++; } break; - case 289: + case 293: { if (s->item_length != 6) { WARN(ZS_BAD_EUI_LENGTH); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 290: + case 294: { if (s->item_length != 8) { WARN(ZS_BAD_EUI_LENGTH); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 291: + case 295: { WARN(ZS_BAD_CHAR_DASH); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 292: + case 296: { s->item_length = 0; } break; - case 293: + case 297: { s->item_length++; } break; - case 294: + case 298: { if (s->item_length != 4) { WARN(ZS_BAD_L64_LENGTH); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 295: + case 299: { WARN(ZS_BAD_CHAR_COLON); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 296: + case 300: { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; } break; - case 297: + case 301: { int ret = svcb_check(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 298: + case 302: { WARN(ZS_BAD_SVCB_PARAM); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 299: + case 303: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 300: + case 304: { if (rdata_tail + 4 > rdata_stop + 1) { // key_len + val_len WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } s->svcb.param_position = rdata_tail; } break; - case 301: + case 305: { int ret = svcb_sort(s, rdata_tail); if (ret != ZS_OK) { WARN(ret); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 302: + case 306: { s->comma_list = true; s->pending_backslash = false; } break; - case 303: + case 307: { s->comma_list = false; if (s->pending_backslash) { WARN(ZS_BAD_ALPN_BACKSLASH); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 304: + case 308: { s->svcb.mandatory_position = rdata_tail + 2; // Skip 2-B prefix. } break; - case 305: + case 309: { svcb_mandatory_sort(s->svcb.mandatory_position, rdata_tail); } break; - case 306: + case 310: { if (rdata_tail + 2 > rdata_stop + 1) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } } break; - case 307: - { p--; {stack[top++] = cs; cs = 781;goto _again;} } + case 311: + { p--; {stack[top++] = cs; cs = 808;goto _again;} } break; - case 308: - { p--; {stack[top++] = cs; cs = 837;goto _again;} } + case 312: + { p--; {stack[top++] = cs; cs = 864;goto _again;} } break; - case 309: + case 313: + { p--; {stack[top++] = cs; cs = 903;goto _again;} } + break; + case 314: + { p--; {stack[top++] = cs; cs = 1014;goto _again;} } + break; + case 315: { WARN(ZS_BAD_ALGORITHM); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 310: + case 316: { WARN(ZS_BAD_CERT_TYPE); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 311: + case 317: { WARN(ZS_BAD_DSYNC_SCHEME); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 312: - { p--; {stack[top++] = cs; cs = 948;goto _again;} } + case 318: + { p--; {stack[top++] = cs; cs = 1093;goto _again;} } break; - case 313: - { p--; {stack[top++] = cs; cs = 1052;goto _again;} } + case 319: + { p--; {stack[top++] = cs; cs = 1197;goto _again;} } break; - case 314: - { p--; {stack[top++] = cs; cs = 1093;goto _again;} } + case 320: + { p--; {stack[top++] = cs; cs = 1238;goto _again;} } break; - case 315: + case 321: { rdata_tail = s->r_data; } break; - case 316: + case 322: { WARN(ZS_BAD_RDATA); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 317: + case 323: { s->r_data_generic = false; p--; switch (s->r_type) { case KNOT_RRTYPE_A: - {stack[top++] = cs; cs = 1101;goto _again;} + {stack[top++] = cs; cs = 1246;goto _again;} case KNOT_RRTYPE_NS: case KNOT_RRTYPE_CNAME: case KNOT_RRTYPE_PTR: case KNOT_RRTYPE_DNAME: case KNOT_RRTYPE_ALIAS: - {stack[top++] = cs; cs = 1103;goto _again;} + {stack[top++] = cs; cs = 1248;goto _again;} case KNOT_RRTYPE_SOA: - {stack[top++] = cs; cs = 1105;goto _again;} + {stack[top++] = cs; cs = 1250;goto _again;} case KNOT_RRTYPE_HINFO: - {stack[top++] = cs; cs = 1137;goto _again;} + {stack[top++] = cs; cs = 1282;goto _again;} case KNOT_RRTYPE_MINFO: case KNOT_RRTYPE_RP: - {stack[top++] = cs; cs = 1142;goto _again;} + {stack[top++] = cs; cs = 1287;goto _again;} case KNOT_RRTYPE_MX: case KNOT_RRTYPE_AFSDB: case KNOT_RRTYPE_RT: case KNOT_RRTYPE_KX: case KNOT_RRTYPE_LP: - {stack[top++] = cs; cs = 1147;goto _again;} + {stack[top++] = cs; cs = 1292;goto _again;} case KNOT_RRTYPE_TXT: case KNOT_RRTYPE_SPF: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: - {stack[top++] = cs; cs = 1152;goto _again;} + {stack[top++] = cs; cs = 1297;goto _again;} case KNOT_RRTYPE_AAAA: - {stack[top++] = cs; cs = 1156;goto _again;} + {stack[top++] = cs; cs = 1301;goto _again;} case KNOT_RRTYPE_LOC: - {stack[top++] = cs; cs = 1158;goto _again;} + {stack[top++] = cs; cs = 1303;goto _again;} case KNOT_RRTYPE_SRV: - {stack[top++] = cs; cs = 1213;goto _again;} + {stack[top++] = cs; cs = 1358;goto _again;} case KNOT_RRTYPE_NAPTR: - {stack[top++] = cs; cs = 1224;goto _again;} + {stack[top++] = cs; cs = 1369;goto _again;} case KNOT_RRTYPE_CERT: - {stack[top++] = cs; cs = 1241;goto _again;} + {stack[top++] = cs; cs = 1386;goto _again;} case KNOT_RRTYPE_APL: - {stack[top++] = cs; cs = 1252;goto _again;} + {stack[top++] = cs; cs = 1397;goto _again;} case KNOT_RRTYPE_DS: case KNOT_RRTYPE_CDS: - {stack[top++] = cs; cs = 1263;goto _again;} + {stack[top++] = cs; cs = 1408;goto _again;} case KNOT_RRTYPE_SSHFP: - {stack[top++] = cs; cs = 1276;goto _again;} + {stack[top++] = cs; cs = 1421;goto _again;} case KNOT_RRTYPE_IPSECKEY: - {stack[top++] = cs; cs = 1286;goto _again;} + {stack[top++] = cs; cs = 1431;goto _again;} case KNOT_RRTYPE_RRSIG: - {stack[top++] = cs; cs = 1325;goto _again;} + {stack[top++] = cs; cs = 1470;goto _again;} case KNOT_RRTYPE_NSEC: - {stack[top++] = cs; cs = 1351;goto _again;} + {stack[top++] = cs; cs = 1496;goto _again;} case KNOT_RRTYPE_KEY: case KNOT_RRTYPE_DNSKEY: case KNOT_RRTYPE_CDNSKEY: - {stack[top++] = cs; cs = 1354;goto _again;} + {stack[top++] = cs; cs = 1499;goto _again;} case KNOT_RRTYPE_DHCID: case KNOT_RRTYPE_OPENPGPKEY: - {stack[top++] = cs; cs = 1365;goto _again;} + {stack[top++] = cs; cs = 1510;goto _again;} case KNOT_RRTYPE_NSEC3: - {stack[top++] = cs; cs = 1367;goto _again;} + {stack[top++] = cs; cs = 1512;goto _again;} case KNOT_RRTYPE_NSEC3PARAM: - {stack[top++] = cs; cs = 1396;goto _again;} + {stack[top++] = cs; cs = 1541;goto _again;} case KNOT_RRTYPE_TLSA: case KNOT_RRTYPE_SMIMEA: - {stack[top++] = cs; cs = 1409;goto _again;} + {stack[top++] = cs; cs = 1554;goto _again;} case KNOT_RRTYPE_CSYNC: - {stack[top++] = cs; cs = 1422;goto _again;} + {stack[top++] = cs; cs = 1567;goto _again;} case KNOT_RRTYPE_ZONEMD: - {stack[top++] = cs; cs = 1428;goto _again;} + {stack[top++] = cs; cs = 1573;goto _again;} case KNOT_RRTYPE_NID: case KNOT_RRTYPE_L64: - {stack[top++] = cs; cs = 1446;goto _again;} + {stack[top++] = cs; cs = 1591;goto _again;} case KNOT_RRTYPE_L32: - {stack[top++] = cs; cs = 1441;goto _again;} + {stack[top++] = cs; cs = 1586;goto _again;} case KNOT_RRTYPE_EUI48: - {stack[top++] = cs; cs = 1459;goto _again;} + {stack[top++] = cs; cs = 1604;goto _again;} case KNOT_RRTYPE_EUI64: - {stack[top++] = cs; cs = 1465;goto _again;} + {stack[top++] = cs; cs = 1610;goto _again;} case KNOT_RRTYPE_URI: - {stack[top++] = cs; cs = 1471;goto _again;} + {stack[top++] = cs; cs = 1616;goto _again;} case KNOT_RRTYPE_CAA: - {stack[top++] = cs; cs = 1479;goto _again;} + {stack[top++] = cs; cs = 1624;goto _again;} case KNOT_RRTYPE_SVCB: case KNOT_RRTYPE_HTTPS: - {stack[top++] = cs; cs = 1487;goto _again;} + {stack[top++] = cs; cs = 1632;goto _again;} case KNOT_RRTYPE_DSYNC: - {stack[top++] = cs; cs = 1493;goto _again;} + {stack[top++] = cs; cs = 1638;goto _again;} + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + {stack[top++] = cs; cs = 1649;goto _again;} default: WARN(ZS_CANNOT_TEXT_DATA); - {cs = 329;goto _again;} + {cs = 338;goto _again;} } } break; - case 318: + case 324: { s->r_data_generic = true; switch (s->r_type) { @@ -9280,195 +9693,203 @@ _match: case KNOT_RRTYPE_RESINFO: case KNOT_RRTYPE_WALLET: case KNOT_RRTYPE_ALIAS: - {stack[top++] = cs; cs = 762;goto _again;} + {stack[top++] = cs; cs = 789;goto _again;} // Next types can have empty rdata. case KNOT_RRTYPE_APL: + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: default: - {stack[top++] = cs; cs = 771;goto _again;} + {stack[top++] = cs; cs = 798;goto _again;} } } break; - case 319: + case 325: { if (pe - p == 1) { *wrap = WRAP_DETECTED; } } break; - case 320: + case 326: { if (*wrap == WRAP_NONE) { p--; } } break; - case 321: + case 327: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } break; - case 322: + case 328: { s->r_type = KNOT_RRTYPE_A; } break; - case 323: + case 329: { s->r_type = KNOT_RRTYPE_NS; } break; - case 324: + case 330: { s->r_type = KNOT_RRTYPE_CNAME; } break; - case 325: + case 331: { s->r_type = KNOT_RRTYPE_SOA; } break; - case 326: + case 332: { s->r_type = KNOT_RRTYPE_PTR; } break; - case 327: + case 333: { s->r_type = KNOT_RRTYPE_HINFO; } break; - case 328: + case 334: { s->r_type = KNOT_RRTYPE_MINFO; } break; - case 329: + case 335: { s->r_type = KNOT_RRTYPE_MX; } break; - case 330: + case 336: { s->r_type = KNOT_RRTYPE_TXT; } break; - case 331: + case 337: { s->r_type = KNOT_RRTYPE_RP; } break; - case 332: + case 338: { s->r_type = KNOT_RRTYPE_AFSDB; } break; - case 333: + case 339: { s->r_type = KNOT_RRTYPE_RT; } break; - case 334: + case 340: { s->r_type = KNOT_RRTYPE_KEY; } break; - case 335: + case 341: { s->r_type = KNOT_RRTYPE_AAAA; } break; - case 336: + case 342: { s->r_type = KNOT_RRTYPE_LOC; } break; - case 337: + case 343: { s->r_type = KNOT_RRTYPE_SRV; } break; - case 338: + case 344: { s->r_type = KNOT_RRTYPE_NAPTR; } break; - case 339: + case 345: { s->r_type = KNOT_RRTYPE_KX; } break; - case 340: + case 346: { s->r_type = KNOT_RRTYPE_CERT; } break; - case 341: + case 347: { s->r_type = KNOT_RRTYPE_DNAME; } break; - case 342: + case 348: { s->r_type = KNOT_RRTYPE_APL; } break; - case 343: + case 349: { s->r_type = KNOT_RRTYPE_DS; } break; - case 344: + case 350: { s->r_type = KNOT_RRTYPE_SSHFP; } break; - case 345: + case 351: { s->r_type = KNOT_RRTYPE_IPSECKEY; } break; - case 346: + case 352: { s->r_type = KNOT_RRTYPE_RRSIG; } break; - case 347: + case 353: { s->r_type = KNOT_RRTYPE_NSEC; } break; - case 348: + case 354: { s->r_type = KNOT_RRTYPE_DNSKEY; } break; - case 349: + case 355: { s->r_type = KNOT_RRTYPE_DHCID; } break; - case 350: + case 356: { s->r_type = KNOT_RRTYPE_NSEC3; } break; - case 351: + case 357: { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } break; - case 352: + case 358: { s->r_type = KNOT_RRTYPE_TLSA; } break; - case 353: + case 359: { s->r_type = KNOT_RRTYPE_SMIMEA; } break; - case 354: + case 360: { s->r_type = KNOT_RRTYPE_CDS; } break; - case 355: + case 361: { s->r_type = KNOT_RRTYPE_CDNSKEY; } break; - case 356: + case 362: { s->r_type = KNOT_RRTYPE_OPENPGPKEY; } break; - case 357: + case 363: { s->r_type = KNOT_RRTYPE_CSYNC; } break; - case 358: + case 364: { s->r_type = KNOT_RRTYPE_ZONEMD; } break; - case 359: + case 365: { s->r_type = KNOT_RRTYPE_SPF; } break; - case 360: + case 366: { s->r_type = KNOT_RRTYPE_NID; } break; - case 361: + case 367: { s->r_type = KNOT_RRTYPE_L32; } break; - case 362: + case 368: { s->r_type = KNOT_RRTYPE_L64; } break; - case 363: + case 369: { s->r_type = KNOT_RRTYPE_LP; } break; - case 364: + case 370: { s->r_type = KNOT_RRTYPE_EUI48; } break; - case 365: + case 371: { s->r_type = KNOT_RRTYPE_EUI64; } break; - case 366: + case 372: { s->r_type = KNOT_RRTYPE_URI; } break; - case 367: + case 373: { s->r_type = KNOT_RRTYPE_CAA; } break; - case 368: + case 374: { s->r_type = KNOT_RRTYPE_SVCB; } break; - case 369: + case 375: { s->r_type = KNOT_RRTYPE_HTTPS; } break; - case 370: + case 376: { s->r_type = KNOT_RRTYPE_DSYNC; } break; - case 371: + case 377: { s->r_type = KNOT_RRTYPE_RESINFO; } break; - case 372: + case 378: { s->r_type = KNOT_RRTYPE_WALLET; } break; - case 373: + case 379: { s->r_type = KNOT_RRTYPE_ALIAS; } break; - case 374: + case 380: + { s->r_type = KNOT_RRTYPE_DELEG; } + break; + case 381: + { s->r_type = KNOT_RRTYPE_DELEGPARAM; } + break; + case 382: { if (rdata_tail - s->r_data > UINT16_MAX) { WARN(ZS_RDATA_OVERFLOW); - p--; {cs = 329;goto _again;} + p--; {cs = 338;goto _again;} } s->r_data_length = rdata_tail - s->r_data; @@ -9508,7 +9929,7 @@ _again: case 8: { WARN(ZS_BAD_REST); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9516,7 +9937,7 @@ goto _again;} case 19: { WARN(ZS_BAD_NUMBER); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9524,7 +9945,7 @@ goto _again;} case 24: { WARN(ZS_BAD_DNAME_CHAR); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9533,7 +9954,7 @@ goto _again;} { s->r_owner_length = 0; WARN(ZS_BAD_OWNER); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9541,7 +9962,7 @@ goto _again;} case 39: { WARN(ZS_BAD_NUMBER); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9549,7 +9970,7 @@ goto _again;} case 51: { WARN(ZS_BAD_TIME_UNIT); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9557,7 +9978,7 @@ goto _again;} case 61: { WARN(ZS_BAD_TIMESTAMP_CHAR); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9565,7 +9986,7 @@ goto _again;} case 63: { WARN(ZS_BAD_TEXT_CHAR); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9573,7 +9994,7 @@ goto _again;} case 64: { WARN(ZS_BAD_TEXT); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9581,7 +10002,7 @@ goto _again;} case 68: { WARN(ZS_BAD_NUMBER); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9594,7 +10015,7 @@ goto _again;} case 74: { ERR(ZS_BAD_TTL); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9602,7 +10023,7 @@ goto _again;} case 78: { ERR(ZS_BAD_ORIGIN); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9610,7 +10031,7 @@ goto _again;} case 82: { ERR(ZS_BAD_INCLUDE_FILENAME); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9618,7 +10039,7 @@ goto _again;} case 85: { ERR(ZS_BAD_INCLUDE_ORIGIN); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9631,7 +10052,7 @@ goto _again;} case 90: { ERR(ZS_BAD_DIRECTIVE); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9639,7 +10060,7 @@ goto _again;} case 97: { WARN(ZS_BAD_ADDRESS_CHAR); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9647,7 +10068,7 @@ goto _again;} case 108: { WARN(ZS_BAD_APL); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9655,7 +10076,7 @@ goto _again;} case 111: { WARN(ZS_BAD_HEX_CHAR); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9663,7 +10084,7 @@ goto _again;} case 113: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9671,7 +10092,7 @@ goto _again;} case 118: { WARN(ZS_BAD_BASE64_CHAR); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9679,7 +10100,7 @@ goto _again;} case 128: { WARN(ZS_BAD_BASE32HEX_CHAR); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9687,7 +10108,7 @@ goto _again;} case 157: { WARN(ZS_BAD_GATEWAY); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9695,7 +10116,7 @@ goto _again;} case 158: { WARN(ZS_BAD_GATEWAY_KEY); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } @@ -9703,103 +10124,103 @@ goto _again;} case 159: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 268: + case 272: { WARN(ZS_BAD_BITMAP); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 285: + case 289: { WARN(ZS_BAD_LOC_DATA); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 286: + case 290: { WARN(ZS_BAD_HEX_RDATA); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 291: + case 295: { WARN(ZS_BAD_CHAR_DASH); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 295: + case 299: { WARN(ZS_BAD_CHAR_COLON); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 298: + case 302: { WARN(ZS_BAD_SVCB_PARAM); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 299: + case 303: { WARN(ZS_BAD_SVCB_MANDATORY); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 309: + case 315: { WARN(ZS_BAD_ALGORITHM); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 310: + case 316: { WARN(ZS_BAD_CERT_TYPE); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 311: + case 317: { WARN(ZS_BAD_DSYNC_SCHEME); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 316: + case 322: { WARN(ZS_BAD_RDATA); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } break; - case 321: + case 327: { WARN(ZS_UNSUPPORTED_TYPE); - p--; {cs = 329; if ( p == pe ) + p--; {cs = 338; if ( p == pe ) goto _test_eof; goto _again;} } diff --git a/src/libzscanner/scanner_body.rl b/src/libzscanner/scanner_body.rl index 23c540e3e7..7a40b72458 100644 --- a/src/libzscanner/scanner_body.rl +++ b/src/libzscanner/scanner_body.rl @@ -246,7 +246,7 @@ dname_ := ( relative_dname | absolute_dname | '@' %_origin_dname_exit - ) $!_dname_error %_ret . all_wchar; + ) $!_dname_error %_ret . (all_wchar | ',' | '"'); dname = (alnum | [\-_/\\] | [*.@]) ${ fhold; fcall dname_; }; # END @@ -1429,6 +1429,8 @@ | "RESINFO"i %{ type_num(KNOT_RRTYPE_RESINFO, &rdata_tail); } | "WALLET"i %{ type_num(KNOT_RRTYPE_WALLET, &rdata_tail); } | "ALIAS"i %{ type_num(KNOT_RRTYPE_ALIAS, &rdata_tail); } + | "DELEG"i %{ type_num(KNOT_RRTYPE_DELEG, &rdata_tail); } + | "DELEGPARAM"i %{ type_num(KNOT_RRTYPE_DELEGPARAM, &rdata_tail); } | "TYPE"i . num16 # TYPE0-TYPE65535. ) $!_type_error %_ret . all_wchar; type_num = alnum ${ fhold; fcall type_num_; }; @@ -1500,6 +1502,8 @@ | "RESINFO"i %{ window_add_bit(KNOT_RRTYPE_RESINFO, s); } | "WALLET"i %{ window_add_bit(KNOT_RRTYPE_WALLET, s); } | "ALIAS"i %{ window_add_bit(KNOT_RRTYPE_ALIAS, s); } + | "DELEG"i %{ window_add_bit(KNOT_RRTYPE_DELEG, s); } + | "DELEGPARAM"i %{ window_add_bit(KNOT_RRTYPE_DELEGPARAM, s); } | "TYPE"i . type_bitmap # TYPE0-TYPE65535. ); @@ -1771,7 +1775,7 @@ l32 = ipv4_addr %_ipv4_addr_write; # END - # BEGIN - SvcParams processing (SVCB/HTTPS records) + # BEGIN - SvcParams and DelegInfos processing (SVCB/HTTPS and DELEG/DELEGPARAM records) action _svcb_params_init { s->svcb.params_position = rdata_tail; s->svcb.last_key = -1; @@ -1834,16 +1838,20 @@ } } - svcb_key_generic = ("key" . num16); - svcb_key_mandatory = ("mandatory" %_write16_0); - svcb_key_alpn = ("alpn" %_write16_1); - svcb_key_ndalpn = ("no-default-alpn" %_write16_2); - svcb_key_port = ("port" %_write16_3); - svcb_key_ipv4hint = ("ipv4hint" %_write16_4); - svcb_key_ech = ("ech" %_write16_5); - svcb_key_ipv6hint = ("ipv6hint" %_write16_6); - svcb_key_dohpath = ("dohpath" %_write16_7); - svcb_key_ohttp = ("ohttp" %_write16_8); + svcb_key_generic = ("key" . num16); + svcb_key_mandatory = ("mandatory" %_write16_0); + svcb_key_alpn = ("alpn" %_write16_1); + svcb_key_ndalpn = ("no-default-alpn" %_write16_2); + svcb_key_port = ("port" %_write16_3); + svcb_key_ipv4hint = ("ipv4hint" %_write16_4); + svcb_key_ech = ("ech" %_write16_5); + svcb_key_ipv6hint = ("ipv6hint" %_write16_6); + svcb_key_dohpath = ("dohpath" %_write16_7); + svcb_key_ohttp = ("ohttp" %_write16_8); + deleg_key_ipv4 = ("server-ipv4" %_write16_1); + deleg_key_ipv6 = ("server-ipv6" %_write16_2); + deleg_key_name = ("server-name" %_write16_3); + deleg_key_include = ("include-delegparam" %_write16_4); mandat_value_ := (svcb_key_generic | svcb_key_alpn | svcb_key_ndalpn | svcb_key_port | @@ -1852,6 +1860,12 @@ ) >_rdata_2B_check $!_mandat_value_error %_ret . ([,\"] | all_wchar); mandat_value = alpha ${ fhold; fcall mandat_value_; }; + deleg_mandat_value_ := + (svcb_key_generic | deleg_key_ipv4 | deleg_key_ipv6 | deleg_key_name | + deleg_key_include + ) >_rdata_2B_check $!_mandat_value_error %_ret . ([,\"] | all_wchar); + deleg_mandat_va = alpha ${ fhold; fcall deleg_mandat_value_; }; + svcb_empty = zlen %_write16_0; svcb_generic_ = (text >_item_length2_init %_item_length2_exit); svcb_generic = ("=" . svcb_generic_) | svcb_empty; @@ -1863,6 +1877,9 @@ svcb_ech = (base64_quartet+ >_item_length2_init %_item_length2_exit); svcb_ipv6 = ((ipv6_addr_write . ("," . ipv6_addr_write)*) >_item_length2_init %_item_length2_exit); svcb_dohpath = (text >_item_length2_init %_item_length2_exit); + deleg_mandat_ = ((deleg_mandat_va . ("," . deleg_mandat_va)*) >_item_length2_init %_item_length2_exit); + deleg_mandat = deleg_mandat_ >_mandatory_init %_mandatory_exit; + deleg_name = ((r_dname . ("," . r_dname)*) >_item_length2_init %_item_length2_exit); svcb_param_generic = (svcb_key_generic . svcb_generic); svcb_param_mandatory = (svcb_key_mandatory . "=" . (svcb_mandat | ('\"' . svcb_mandat . '\"'))); @@ -1874,6 +1891,11 @@ svcb_param_ipv6hint = (svcb_key_ipv6hint . "=" . (svcb_ipv6 | ('\"' . svcb_ipv6 . '\"'))); svcb_param_dohpath = (svcb_key_dohpath . "=" . (svcb_dohpath | ('\"' . svcb_dohpath . '\"'))); svcb_param_ohttp = (svcb_key_ohttp . svcb_empty); + deleg_info_mandatory = (svcb_key_mandatory . "=" . (deleg_mandat | ('\"' . deleg_mandat . '\"'))); + deleg_info_ipv4 = (deleg_key_ipv4 . "=" . (svcb_ipv4 | ('\"' . svcb_ipv4 . '\"'))); + deleg_info_ipv6 = (deleg_key_ipv6 . "=" . (svcb_ipv6 | ('\"' . svcb_ipv6 . '\"'))); + deleg_info_name = (deleg_key_name . "=" . (deleg_name | ('\"' . deleg_name . '\"'))); + deleg_info_include = (deleg_key_include . "=" . (deleg_name | ('\"' . deleg_name . '\"'))); svcb_param_any = (svcb_param_generic | svcb_param_mandatory | svcb_param_alpn | @@ -1885,6 +1907,15 @@ ((sep . svcb_param_any)* . sep?) >_svcb_params_init %_svcb_params_exit $!_svcb_params_error %_ret . end_wchar; svcb_params = all_wchar ${ fhold; fcall svcb_params_; }; + + deleg_info_any = + (svcb_param_generic | deleg_info_mandatory | deleg_info_ipv4 | + deleg_info_ipv6 | deleg_info_name | deleg_info_include + ) >_svcb_param_init %_svcb_param_exit; + deleg_infos_ := + ((deleg_info_any . (sep . deleg_info_any)*)? . sep?) >_svcb_params_init + %_svcb_params_exit $!_svcb_params_error %_ret . end_wchar; + deleg_infos = (alpha | all_wchar) ${ fhold; fcall deleg_infos_; }; # END # BEGIN - Mnemonic names processing @@ -2090,6 +2121,10 @@ (type_num . sep . dsync_scheme . sep . num16 . sep . r_dname ) $!_r_data_error %_ret . all_wchar; + r_data_deleg := + (deleg_infos) + $!_r_data_error %_ret . all_wchar; + action _text_r_data { s->r_data_generic = false; fhold; @@ -2179,6 +2214,9 @@ fcall r_data_svcb; case KNOT_RRTYPE_DSYNC: fcall r_data_dsync; + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: + fcall r_data_deleg; default: WARN(ZS_CANNOT_TEXT_DATA); fgoto err_line; @@ -2242,6 +2280,8 @@ fcall nonempty_hex_r_data; // Next types can have empty rdata. case KNOT_RRTYPE_APL: + case KNOT_RRTYPE_DELEG: + case KNOT_RRTYPE_DELEGPARAM: default: fcall hex_r_data; } @@ -2327,6 +2367,8 @@ | "RESINFO"i %{ s->r_type = KNOT_RRTYPE_RESINFO; } | "WALLET"i %{ s->r_type = KNOT_RRTYPE_WALLET; } | "ALIAS"i %{ s->r_type = KNOT_RRTYPE_ALIAS; } + | "DELEG"i %{ s->r_type = KNOT_RRTYPE_DELEG; } + | "DELEGPARAM"i %{ s->r_type = KNOT_RRTYPE_DELEGPARAM; } | "TYPE"i . type_number ) $!_r_type_error; # END diff --git a/tests-extra/tests/records/load/data/knot-only.zone b/tests-extra/tests/records/load/data/knot-only.zone index 0262469681..597215f08e 100644 --- a/tests-extra/tests/records/load/data/knot-only.zone +++ b/tests-extra/tests/records/load/data/knot-only.zone @@ -7,3 +7,11 @@ dns1 A 192.0.2.1 wallet WALLET "BTC" "bc1qf2kdgu2vlctqlnlxk4smkxd68grl5q2we8dzfd" wallet WALLET "ETH" "0x87D487fa59274545743949BE4282EA87F316821E" + +deleg1 DELEG include-delegparam="delegi1,delegi2" mandatory=include-delegparam,server-ipv4 server-ipv4="1.2.3.4" server-ipv6=1::2 + +delegi1 DELEGPARAM server-name=ns.example.com. +delegi2 DELEGPARAM mandatory=server-ipv6 server-ipv6=1::2 + +sub.deleg1 A 1.2.3.4 +sub.delegi1 A 1.2.3.4 diff --git a/tests/libzscanner/TESTS b/tests/libzscanner/TESTS index 797fcde19a..ee42ea5601 100644 --- a/tests/libzscanner/TESTS +++ b/tests/libzscanner/TESTS @@ -88,3 +88,4 @@ 60_DSYNC 61_RESINFO 62_ALIAS +63_DELEG diff --git a/tests/libzscanner/data/01_owner.in b/tests/libzscanner/data/01_owner.in index 0108be3e80..488b500dc2 100644 --- a/tests/libzscanner/data/01_owner.in +++ b/tests/libzscanner/data/01_owner.in @@ -10,6 +10,7 @@ tld NS @ ; Relative form * NS @ ; Alone asterisk *.* NS @ ; More asterisks *a.a*a.** NS @ ; Also possible +\"a\"\, NS @ ; Special characters @ NS @ ; Use origin 0123456789 NS @ ; Digits 0/25.2.0.192.in-addr.arpa. NS @ ; CIDR notation @@ -24,6 +25,12 @@ b.a.9.8.7.6.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. NS @ ; ; KO & NS @ ; Bad (unslashed) character +a" NS @ ; Unescaped special character +a"b NS @ ; Unescaped special character +"b NS @ ; Unescaped special character +a, NS @ ; Unescaped special character +a,b NS @ ; Unescaped special character +,b NS @ ; Unescaped special character NS @ ; Bad previous .a NS @ ; Leading dot @@ NS @ ; Double @@ diff --git a/tests/libzscanner/data/01_owner.out b/tests/libzscanner/data/01_owner.out index 26a8454c82..5f2efbaf68 100644 --- a/tests/libzscanner/data/01_owner.out +++ b/tests/libzscanner/data/01_owner.out @@ -46,6 +46,12 @@ RRTTL=00000001 RTYPE=0002 RDATA=00 ------ +OWNER=042261222C00 +CLASS=0001 +RRTTL=00000001 +RTYPE=0002 +RDATA=00 +------ OWNER=00 CLASS=0001 RRTTL=00000001 @@ -114,6 +120,18 @@ RDATA=00 ------ WARNG=ZS_BAD_OWNER ------ +WARNG=ZS_BAD_OWNER +------ +WARNG=ZS_BAD_OWNER +------ +WARNG=ZS_BAD_OWNER +------ +WARNG=ZS_BAD_OWNER +------ +WARNG=ZS_BAD_OWNER +------ +WARNG=ZS_BAD_OWNER +------ WARNG=ZS_BAD_PREVIOUS_OWNER ------ WARNG=ZS_BAD_DNAME_CHAR diff --git a/tests/libzscanner/data/14_NS.in b/tests/libzscanner/data/14_NS.in index b56a579824..61fc8fc6e2 100644 --- a/tests/libzscanner/data/14_NS.in +++ b/tests/libzscanner/data/14_NS.in @@ -15,6 +15,7 @@ $TTL 1 @ NS ABCDEFGHIJKLMNOPQRSTUVWXYZ ; All upper-case letters @ NS abcdefghijklmnopqrstuvwxyz ; All lower-case letters @ NS \0320\ \\\"\.\@\*.tld. ; Label with special chars +@ NS \"a\"\, ; List-related special chars @ NS b.a.9.8.7.6.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. ; IPv6 reverse @ NS 123456789012345678901234567890123456789012345678901234567890123.tld. ; Label of maximal length @ NS 123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901. ; Domain name of maximal length @@ -30,6 +31,12 @@ $TTL 1 @ NS & ; Bad (unslashed) character @ NS @@ ; Double @@ @ NS .. ; Missing label between dots +@ NS a" ; Unescaped special character +@ NS a"b ; Unescaped special character +@ NS "b ; Unescaped special character +@ NS a, ; Unescaped special character +@ NS a,b ; Unescaped special character +@ NS ,b ; Unescaped special character @ NS \1 ; Slash notation requires 3 digits @ NS \12 ; Slash notation requires 3 digits @ NS 1234567890123456789012345678901234567890123456789012345678901234.tld. ; Label exceeded maximal length diff --git a/tests/libzscanner/data/14_NS.out b/tests/libzscanner/data/14_NS.out index 08d739a9bb..1bf450a0a2 100644 --- a/tests/libzscanner/data/14_NS.out +++ b/tests/libzscanner/data/14_NS.out @@ -80,6 +80,12 @@ OWNER=00 CLASS=0001 RRTTL=00000001 RTYPE=0002 +RDATA=042261222C00 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=0002 RDATA=0162016101390138013701360135013001300130013001300130013001300130013001300130013001300130013001300138016201640130013101300130013203697036046172706100 ------ OWNER=00 @@ -130,6 +136,18 @@ WARNG=ZS_BAD_DNAME_CHAR ------ WARNG=ZS_BAD_DNAME_CHAR ------ +WARNG=ZS_BAD_RDATA +------ +WARNG=ZS_BAD_RDATA +------ +WARNG=ZS_BAD_RDATA +------ +WARNG=ZS_BAD_RDATA +------ +WARNG=ZS_BAD_RDATA +------ +WARNG=ZS_BAD_RDATA +------ WARNG=ZS_BAD_NUMBER ------ WARNG=ZS_BAD_NUMBER diff --git a/tests/libzscanner/data/63_DELEG.in b/tests/libzscanner/data/63_DELEG.in new file mode 100644 index 0000000000..28cd868933 --- /dev/null +++ b/tests/libzscanner/data/63_DELEG.in @@ -0,0 +1,24 @@ +$ORIGIN . +$TTL 1 + +; OK +@ DELEG +@ DELEGPARAM ; Comment +@ deleg mandatory=server-ipv4 server-ipv4=1.2.3.4 +@ delegparam server-ipv6="1::2,3::4" +xy DELEG server-name="ab,cd." ; Comment +xy DELEGPARAM include-delegparam=c\,d +@ TYPE61440 key65535="a" key1000=b include-delegparam=ab key7 mandatory=key7,include-delegparam +@ type65433 \# 8 0001000401020304 + +; KO +@ DELEG bogus ; Unknown parameter +@ DELEGPARAM server-IPv4=1.2.3.4 ; Capital letter in parameter name +@ DELEG server-name +@ DELEGPARAM server-ipv6= +@ DELEG server-ipv6=1::2, +@ DELEGPARAM server-ipv6=1::2,,3::4 +@ DELEG mandatory=mandatory +@ DELEGPARAM mandatory=bogus +@ DELEG server-name=a-label-has-exactly-sixty-four-octets-abcdefghijklmnopqrstuvwxyz +@ DELEGPARAM server-name=this.domain.name.has.exactly.two.hundred.and.fifty.six.octets.in.its.wire.format.due.to.having.exactly.two.hundred.and.fifty.five.characters.in.its.textual.form.without.the.trailing.dot.that.makes.it.relative.to.the.record.owner.name.that.is.actually.root diff --git a/tests/libzscanner/data/63_DELEG.out b/tests/libzscanner/data/63_DELEG.out new file mode 100644 index 0000000000..0454368966 --- /dev/null +++ b/tests/libzscanner/data/63_DELEG.out @@ -0,0 +1,68 @@ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=F000 +RDATA= +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=FF99 +RDATA= +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=F000 +RDATA=0000000200010001000401020304 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=FF99 +RDATA=000200200001000000000000000000000000000200030000000000000000000000000004 +------ +OWNER=02787900 +CLASS=0001 +RRTTL=00000001 +RTYPE=F000 +RDATA=000300080261620002636400 +------ +OWNER=02787900 +CLASS=0001 +RRTTL=00000001 +RTYPE=FF99 +RDATA=0004000503632C6400 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=F000 +RDATA=000000040004000700040004026162000007000003E8000162FFFF000161 +------ +OWNER=00 +CLASS=0001 +RRTTL=00000001 +RTYPE=FF99 +RDATA=0001000401020304 +------ +WARNG=ZS_BAD_SVCB_PARAM +------ +WARNG=ZS_BAD_SVCB_PARAM +------ +WARNG=ZS_BAD_SVCB_PARAM +------ +WARNG=ZS_BAD_ADDRESS_CHAR +------ +WARNG=ZS_BAD_ADDRESS_CHAR +------ +WARNG=ZS_BAD_ADDRESS_CHAR +------ +WARNG=ZS_BAD_SVCB_MANDATORY +------ +WARNG=ZS_BAD_SVCB_MANDATORY +------ +WARNG=ZS_LABEL_OVERFLOW +------ +WARNG=ZS_DNAME_OVERFLOW +------ diff --git a/tests/libzscanner/test_zscanner.in b/tests/libzscanner/test_zscanner.in index 42b7d23fe4..9e2cc2bbc7 100644 --- a/tests/libzscanner/test_zscanner.in +++ b/tests/libzscanner/test_zscanner.in @@ -14,7 +14,7 @@ TMPDIR=$(test_tmpdir) TESTS_DIR="$SOURCE"/data ZSCANNER_TOOL="$BUILD"/zscanner-tool -plan 90 +plan 91 mkdir -p "$TMPDIR"/includes/ for a in 1 2 3 4 5 6; do From 2508e1752f3c173953ed52431a9d15570434d40f Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 19 Dec 2025 10:43:34 +0100 Subject: [PATCH 474/675] libknot+kdig: support for EDNS DE flag (DELEG-aware signal) --- doc/man_kdig.rst | 3 +++ python/libknot/libknot/probe.py | 5 ++++- src/libknot/packet/pkt.h | 9 +++++++++ src/libknot/probe/data.c | 1 + src/libknot/probe/data.h | 3 ++- src/libknot/rrset-dump.c | 2 ++ src/libknot/rrtype/opt.h | 22 ++++++++++++++++++++++ src/utils/common/exec.c | 19 +++++++++++++++++-- src/utils/kdig/kdig_exec.c | 5 ++++- src/utils/kdig/kdig_params.c | 25 ++++++++++++++++++++++++- src/utils/kdig/kdig_params.h | 2 ++ 11 files changed, 90 insertions(+), 6 deletions(-) diff --git a/doc/man_kdig.rst b/doc/man_kdig.rst index a730099034..f5dbcdd19b 100644 --- a/doc/man_kdig.rst +++ b/doc/man_kdig.rst @@ -177,6 +177,9 @@ Options **+**\ [\ **no**\ ]\ **dnssec** Same as **+**\ [\ **no**\ ]\ **doflag** +**+**\ [\ **no**\ ]\ **deflag** + Set the DE flag. + **+**\ [\ **no**\ ]\ **validate**\[\ =\ *LEVEL*\] Also query for DNSKEY, validate DNSSEC in the answer. Implies DO flag. Optional argument specifies verbosity (1-3, default 3). diff --git a/python/libknot/libknot/probe.py b/python/libknot/libknot/probe.py index 37b2cdff31..59741244d6 100644 --- a/python/libknot/libknot/probe.py +++ b/python/libknot/libknot/probe.py @@ -61,7 +61,8 @@ class KnotProbeData(ctypes.Structure): ('edns_version', ctypes.c_ubyte), ('edns_present', ctypes.c_ubyte, 1), ('edns_flag_do', ctypes.c_ubyte, 1), - ('_reserved_', ctypes.c_ubyte, 6), + ('edns_flag_de', ctypes.c_ubyte, 1), + ('_reserved_', ctypes.c_ubyte, 5), ('query_hdr', KnotProbeDataDNSHdr), ('query_size', ctypes.c_ushort), ('query_class', ctypes.c_ushort), @@ -155,6 +156,8 @@ def COL(string, color_str, active=color): string += ", EDNS %i B" % self.edns_payload if self.edns_flag_do == 1: string += ", " + COL("DO", BOLD) + if self.edns_flag_de == 1: + string += ", " + COL("DE", BOLD) if (self.edns_options & (1 << 3)) != 0: string += ", NSID" if (self.edns_options & (1 << 8)) != 0: diff --git a/src/libknot/packet/pkt.h b/src/libknot/packet/pkt.h index 577ce47bb1..27843fdcff 100644 --- a/src/libknot/packet/pkt.h +++ b/src/libknot/packet/pkt.h @@ -364,6 +364,15 @@ static inline bool knot_pkt_has_dnssec(const knot_pkt_t *pkt) return knot_pkt_has_edns(pkt) && knot_edns_do(pkt->opt_rr); } +/*! + * \brief Checks if DE bit is set in the packet's OPT RR. + */ +static inline bool knot_pkt_has_deleg_aware(const knot_pkt_t *pkt) +{ + assert(pkt); + return knot_pkt_has_edns(pkt) && knot_edns_de(pkt->opt_rr); +} + /*! * \brief Get specific EDNS option from a parsed packet. */ diff --git a/src/libknot/probe/data.c b/src/libknot/probe/data.c index 9b5a9dbf28..1bcb03bdd9 100644 --- a/src/libknot/probe/data.c +++ b/src/libknot/probe/data.c @@ -85,6 +85,7 @@ int knot_probe_data_set(knot_probe_data_t *data, knot_probe_proto_t proto, data->query_edns.version = knot_edns_get_version(query->opt_rr); data->query_edns.present = 1; data->query_edns.flag_do = knot_edns_do(query->opt_rr); + data->query_edns.flag_de = knot_edns_de(query->opt_rr); if (query->edns_opts != NULL) { for (int i = 0; i <= KNOT_EDNS_MAX_OPTION_CODE; i++) { if (query->edns_opts->ptr[i] != NULL) { diff --git a/src/libknot/probe/data.h b/src/libknot/probe/data.h index 53a6f55e94..9a1bf0f14d 100644 --- a/src/libknot/probe/data.h +++ b/src/libknot/probe/data.h @@ -72,7 +72,8 @@ typedef struct { uint8_t version; /*!< EDNS version. */ uint8_t present : 1; /*!< EDNS presence indication. */ uint8_t flag_do : 1; /*!< DO flag indication. */ - uint8_t reserved : 6; /*!< Unused. */ + uint8_t flag_de : 1; /*!< DE flag indication. */ + uint8_t reserved : 5; /*!< Unused. */ } query_edns; struct { diff --git a/src/libknot/rrset-dump.c b/src/libknot/rrset-dump.c index 20f0156af1..1628637cbc 100644 --- a/src/libknot/rrset-dump.c +++ b/src/libknot/rrset-dump.c @@ -990,6 +990,8 @@ static void wire_ednsflags_to_str(rrset_dump_params_t *p) if ((mask & KNOT_EDNS_DO_MASK)) { dump_string(p, "DO"); + } else if ((mask & KNOT_EDNS_DE_MASK)) { + dump_string(p, "DE"); } else { dump_str_uint(p, "BIT", i); } diff --git a/src/libknot/rrtype/opt.h b/src/libknot/rrtype/opt.h index 86d8bd8799..b9ce1b4df6 100644 --- a/src/libknot/rrtype/opt.h +++ b/src/libknot/rrtype/opt.h @@ -28,6 +28,8 @@ enum { /*! \brief Bit mask for DO bit. */ KNOT_EDNS_DO_MASK = (uint32_t)(1 << 15), + /*! \brief Bit mask for DE bit. */ + KNOT_EDNS_DE_MASK = (uint32_t)(1 << 13), /*! \brief Minimal UDP payload with EDNS enabled. */ KNOT_EDNS_MIN_UDP_PAYLOAD = 512, @@ -262,6 +264,16 @@ bool knot_edns_do(const knot_rrset_t *opt_rr) return opt_rr->ttl & KNOT_EDNS_DO_MASK; } +/*! + * \brief Same as knot_edns_do() but for DE bit. + */ +static inline +bool knot_edns_de(const knot_rrset_t *opt_rr) +{ + assert(opt_rr != NULL); + return opt_rr->ttl & KNOT_EDNS_DE_MASK; +} + /*! * \brief Sets the DO bit in the OPT RR. * @@ -277,6 +289,16 @@ void knot_edns_set_do(knot_rrset_t *opt_rr) opt_rr->ttl |= KNOT_EDNS_DO_MASK; } +/*! + * \brief Same as knot_edns_set_do() but for DE bit. + */ +static inline +void knot_edns_set_de(knot_rrset_t *opt_rr) +{ + assert(opt_rr != NULL); + opt_rr->ttl |= KNOT_EDNS_DE_MASK; +} + /*! * \brief Add EDNS option into the package with empty (zeroed) content. * diff --git a/src/utils/common/exec.c b/src/utils/common/exec.c index 62ee19fe9e..1e21f49e36 100644 --- a/src/utils/common/exec.c +++ b/src/utils/common/exec.c @@ -347,9 +347,22 @@ static void print_section_opt(const knot_pkt_t *packet, const style_t *style) ercode_str = unknown_ercode; } - printf(";; Version: %u; flags: %s; UDP size: %u B; ext-rcode: %s\n", + char flags[96] = " ", *flend = flags; + for (uint32_t mask = 1 << 15, bit = 1; mask; mask >>= 1, bit++) { + if (packet->opt_rr->ttl & mask) { + if (mask & KNOT_EDNS_DO_MASK) { + flend += snprintf(flend, 4, " do"); + } else if (mask & KNOT_EDNS_DE_MASK) { + flend += snprintf(flend, 4, " de"); + } else { + flend += snprintf(flend, 7, " bit%u", bit); + } + } + } + + printf(";; Version: %u; flags:%s; UDP size: %u B; ext-rcode: %s\n", knot_edns_get_version(packet->opt_rr), - (knot_edns_do(packet->opt_rr) != 0) ? "do" : "", + flags, knot_edns_get_payload(packet->opt_rr), ercode_str); @@ -866,6 +879,8 @@ static void json_print_edns(jsonw_t *w, const knot_pkt_t *pkt) if ((flags & mask)) { if ((mask & KNOT_EDNS_DO_MASK)) { jsonw_str(w, NULL, "DO"); + } else if ((mask & KNOT_EDNS_DE_MASK)) { + jsonw_str(w, NULL, "DE"); } else { (void)snprintf(tmp, sizeof(tmp), "BIT%d", i); jsonw_str(w, NULL, tmp); diff --git a/src/utils/kdig/kdig_exec.c b/src/utils/kdig/kdig_exec.c index 141d4d0f0f..58f690b4c3 100644 --- a/src/utils/kdig/kdig_exec.c +++ b/src/utils/kdig/kdig_exec.c @@ -243,6 +243,9 @@ static int add_query_edns(knot_pkt_t *packet, const query_t *query, uint16_t max if (query->flags.do_flag) { knot_edns_set_do(&opt_rr); } + if (query->flags.de_flag) { + knot_edns_set_de(&opt_rr); + } /* Append NSID. */ if (query->nsid) { @@ -357,7 +360,7 @@ static bool use_edns(const query_t *query) return query->edns > -1 || query->udp_size > -1 || query->nsid || query->zoneversion || query->subnet.family != AF_UNSPEC || query->flags.do_flag || query->cc.len > 0 || do_padding(query) || - !ednsopt_list_empty(&query->edns_opts); + query->flags.de_flag || !ednsopt_list_empty(&query->edns_opts); } static knot_pkt_t *create_query_packet(const query_t *query) diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index feacd280c3..396e1bc425 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -40,7 +40,8 @@ static const flags_t DEFAULT_FLAGS_DIG = { .z_flag = false, .ad_flag = true, .cd_flag = false, - .do_flag = false + .do_flag = false, + .de_flag = false, }; static const style_t DEFAULT_STYLE_DIG = { @@ -275,6 +276,24 @@ static int opt_nodoflag(const char *arg, void *query) return KNOT_EOK; } +static int opt_deflag(const char *arg, void *query) +{ + query_t *q = query; + + q->flags.de_flag = true; + + return KNOT_EOK; +} + +static int opt_nodeflag(const char *arg, void *query) +{ + query_t *q = query; + + q->flags.de_flag = false; + + return KNOT_EOK; +} + static int opt_validate(const char *arg, void *query) { #if defined(HAVE_KDIG_VALIDATION) && !defined(NO_DNSSEC_VALIDATION) @@ -1581,6 +1600,9 @@ static const param_t kdig_opts2[] = { { "dnssec", ARG_NONE, opt_doflag }, // Alias. { "nodnssec", ARG_NONE, opt_nodoflag }, + { "deflag", ARG_NONE, opt_deflag }, + { "nodeflag", ARG_NONE, opt_nodeflag }, + { "validate", ARG_OPTIONAL, opt_validate }, { "novalidate", ARG_NONE, opt_novalidate }, @@ -2411,6 +2433,7 @@ static void print_help(void) " +[no]cdflag Set CD flag.\n" " +[no]doflag Set DO flag.\n" " +[no]dnssec Same as +[no]doflag.\n" + " +[no]deflag Set DE flag.\n" " +[no]validate[=LEVEL] Re-query for SOA and DNSKEY, validate DNSSEC.\n" " +[no]all Show all packet sections.\n" " +[no]qr Show query packet.\n" diff --git a/src/utils/kdig/kdig_params.h b/src/utils/kdig/kdig_params.h index 0fb54210a9..24f988cecf 100644 --- a/src/utils/kdig/kdig_params.h +++ b/src/utils/kdig/kdig_params.h @@ -48,6 +48,8 @@ typedef struct { bool cd_flag; /*!< DNSSEC OK flag. */ bool do_flag; + /*!< DELEG-aware flag. */ + bool de_flag; } flags_t; /*! \brief Basic parameters for DNS query. */ From 9b7b149b754ffe492fa62b10802763d1c184134f Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 19 Dec 2025 12:19:27 +0100 Subject: [PATCH 475/675] nameserver+signer: implemented DELEG-un/aware answering --- src/knot/dnssec/nsec-chain.c | 3 +- src/knot/dnssec/zone-sign.c | 5 +- src/knot/include/module.h | 1 + src/knot/nameserver/internet.c | 35 ++++- src/knot/nameserver/nsec_proofs.c | 20 ++- src/knot/nameserver/process_query.c | 8 +- src/knot/zone/adjust.c | 11 +- src/knot/zone/adjust.h | 2 +- src/knot/zone/node.h | 2 + src/knot/zone/semantic-check.c | 3 + src/knot/zone/zone-tree.h | 2 + .../tests/basic/deleg/data/child-generic.zone | 5 + .../tests/basic/deleg/data/d.xdp.cz.zone | 34 +++++ tests-extra/tests/basic/deleg/test.py | 127 ++++++++++++++++++ tests-extra/tools/dnstest/server.py | 8 +- 15 files changed, 243 insertions(+), 23 deletions(-) create mode 100644 tests-extra/tests/basic/deleg/data/child-generic.zone create mode 100644 tests-extra/tests/basic/deleg/data/d.xdp.cz.zone create mode 100644 tests-extra/tests/basic/deleg/test.py diff --git a/src/knot/dnssec/nsec-chain.c b/src/knot/dnssec/nsec-chain.c index 09567c3c4e..60e1613a61 100644 --- a/src/knot/dnssec/nsec-chain.c +++ b/src/knot/dnssec/nsec-chain.c @@ -19,11 +19,12 @@ void bitmap_add_node_rrsets(dnssec_nsec_bitmap_t *bitmap, const zone_node_t *nod for (int i = 0; i < node->rrset_count; i++) { knot_rrset_t rr = node_rrset_at(node, i); if (deleg && (rr.type != KNOT_RRTYPE_NS && rr.type != KNOT_RRTYPE_DS && - rr.type != KNOT_RRTYPE_NSEC)) { + rr.type != KNOT_RRTYPE_NSEC && rr.type != KNOT_RRTYPE_DELEG)) { if (rr.type != KNOT_RRTYPE_RRSIG) { continue; } if (!rrsig_covers_type(&rr, KNOT_RRTYPE_DS) && + !rrsig_covers_type(&rr, KNOT_RRTYPE_DELEG) && !rrsig_covers_type(&rr, KNOT_RRTYPE_NSEC)) { continue; } diff --git a/src/knot/dnssec/zone-sign.c b/src/knot/dnssec/zone-sign.c index 99340a0c39..c2464aeda8 100644 --- a/src/knot/dnssec/zone-sign.c +++ b/src/knot/dnssec/zone-sign.c @@ -1001,10 +1001,11 @@ bool knot_zone_sign_rr_should_be_signed(const zone_node_t *node, return false; } - // At delegation points we only want to sign NSECs and DSs + // At delegation points we only want to sign some types if (node->flags & NODE_FLAGS_DELEG) { if (!(rrset->type == KNOT_RRTYPE_NSEC || - rrset->type == KNOT_RRTYPE_DS)) { + rrset->type == KNOT_RRTYPE_DS || + rrset->type == KNOT_RRTYPE_DELEG)) { return false; } } diff --git a/src/knot/include/module.h b/src/knot/include/module.h index 6e02b504d9..ed965e8d5c 100644 --- a/src/knot/include/module.h +++ b/src/knot/include/module.h @@ -419,6 +419,7 @@ typedef struct { knot_sign_context_t sign; /*!< Signing context. */ knot_edns_client_subnet_t *ecs; /*!< EDNS Client Subnet option. */ bool err_truncated; /*!< Set TC and AA bits if an error reply. */ + bool deleg_aware; /*!< Answering DELEG-aware way. */ /*! Persistent items on processing reset. */ knot_mm_t *mm; /*!< Memory context. */ diff --git a/src/knot/nameserver/internet.c b/src/knot/nameserver/internet.c index cc9a169a50..d49d2b0006 100644 --- a/src/knot/nameserver/internet.c +++ b/src/knot/nameserver/internet.c @@ -176,8 +176,12 @@ static int put_delegation(knot_pkt_t *pkt, knotd_qdata_t *qdata) qdata->extra->node = node_parent(qdata->extra->node); } - /* Insert NS record. */ - knot_rrset_t rrset = node_rrset(qdata->extra->node, KNOT_RRTYPE_NS); + uint16_t rr_type = KNOT_RRTYPE_NS; + if (qdata->deleg_aware && node_rrtype_exists(qdata->extra->node, KNOT_RRTYPE_DELEG)) { + rr_type = KNOT_RRTYPE_DELEG; + } + + knot_rrset_t rrset = node_rrset(qdata->extra->node, rr_type); knot_rrset_t rrsigs = node_rrset(qdata->extra->node, KNOT_RRTYPE_RRSIG); return process_query_put_rr(pkt, qdata, &rrset, &rrsigs, KNOT_COMPR_HINT_NONE, 0); @@ -362,11 +366,23 @@ static knotd_in_state_t name_found(knot_pkt_t *pkt, knotd_qdata_t *qdata) { uint16_t qtype = knot_pkt_qtype(pkt); - /* DS query at DP is answered normally, but everything else at/below DP - * triggers referral response. */ - if (((qdata->extra->node->flags & NODE_FLAGS_DELEG) && qtype != KNOT_RRTYPE_DS) || - (qdata->extra->node->flags & NODE_FLAGS_NONAUTH)) { + bool at_deleg = (qdata->extra->node->flags & NODE_FLAGS_DELEG); + bool below_deleg = (qdata->extra->node->flags & NODE_FLAGS_NONAUTH); + bool parent_side = (qtype == KNOT_RRTYPE_DS); + if (qdata->deleg_aware) { + parent_side = parent_side || (qtype == KNOT_RRTYPE_DELEG); + } else { + at_deleg = at_deleg && node_rrtype_exists(qdata->extra->node, KNOT_RRTYPE_NS); + below_deleg = below_deleg && !(qdata->extra->node->flags & NODE_FLAGS_NONAUTH_DELEG); + } + + if ((at_deleg && !parent_side) || below_deleg) { return KNOTD_IN_STATE_DELEG; + } else if ((qdata->extra->node->flags & NODE_FLAGS_DELEG) && + qtype != KNOT_RRTYPE_DS && qtype != KNOT_RRTYPE_DELEG) { + return KNOTD_IN_STATE_NODATA; + } else if (qdata->extra->node->flags & NODE_FLAGS_NONAUTH) { + return KNOTD_IN_STATE_MISS; } if (node_rrtype_exists(qdata->extra->node, KNOT_RRTYPE_CNAME) @@ -437,7 +453,8 @@ static knotd_in_state_t name_not_found(knot_pkt_t *pkt, knotd_qdata_t *qdata) } /* Name is below delegation. */ - if ((node->flags & NODE_FLAGS_DELEG)) { + if ((node->flags & NODE_FLAGS_DELEG) && + (qdata->deleg_aware || node_rrtype_exists(node, KNOT_RRTYPE_NS))) { qdata->extra->node = node; return KNOTD_IN_STATE_DELEG; } @@ -724,6 +741,10 @@ knot_layer_state_t internet_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata) /* Get answer to QNAME. */ qdata->name = knot_pkt_qname(qdata->query); + qdata->deleg_aware = ((qdata->extra->contents->nodes->flags & ZONE_TREE_CONTAINS_DELEG) && knot_pkt_has_deleg_aware(qdata->query)); + if (qdata->deleg_aware) { + knot_edns_set_de(&qdata->opt_rr); + } return answer_query(pkt, qdata); } diff --git a/src/knot/nameserver/nsec_proofs.c b/src/knot/nameserver/nsec_proofs.c index a26178f4d4..1aae8ef7d3 100644 --- a/src/knot/nameserver/nsec_proofs.c +++ b/src/knot/nameserver/nsec_proofs.c @@ -609,19 +609,27 @@ int nsec_prove_dp_security(knot_pkt_t *pkt, knotd_qdata_t *qdata) return KNOT_EINVAL; } - // Add DS into the response. + int ret = KNOT_EOK; + // Add DS into the response. knot_rrset_t rrset = node_rrset(qdata->extra->node, KNOT_RRTYPE_DS); if (!knot_rrset_empty(&rrset)) { knot_rrset_t rrsigs = node_rrset(qdata->extra->node, KNOT_RRTYPE_RRSIG); - return process_query_put_rr(pkt, qdata, &rrset, &rrsigs, - KNOT_COMPR_HINT_NONE, 0); + ret = process_query_put_rr(pkt, qdata, &rrset, &rrsigs, + KNOT_COMPR_HINT_NONE, 0); + if (ret != KNOT_EOK) { + return ret; + } } - // Alternatively prove that DS doesn't exist. + // Prove that DS and/or DELEG does not exist. + if (knot_rrset_empty(&rrset) || + (qdata->deleg_aware && !node_rrtype_exists(qdata->extra->node, KNOT_RRTYPE_DELEG))) { + ret = put_nodata(qdata->extra->node, qdata->extra->encloser, qdata->extra->previous, + qdata->extra->contents, qdata->name, qdata, pkt); + } - return put_nodata(qdata->extra->node, qdata->extra->encloser, qdata->extra->previous, - qdata->extra->contents, qdata->name, qdata, pkt); + return ret; } int nsec_append_rrsigs(knot_pkt_t *pkt, knotd_qdata_t *qdata, bool optional) diff --git a/src/knot/nameserver/process_query.c b/src/knot/nameserver/process_query.c index 6f37928bfe..1d8255c2c4 100644 --- a/src/knot/nameserver/process_query.c +++ b/src/knot/nameserver/process_query.c @@ -187,11 +187,13 @@ static zone_t *answer_zone_find(const knot_pkt_t *query, knot_zonedb_t *zonedb) return NULL; } - /* In case of DS query, we strip the leftmost label when searching for - * the zone (but use whole qname in search for the record), as the DS + /* In case of DS/DELEG query, we strip the leftmost label when searching for + * the zone (but use whole qname in search for the record), as the DS/DELEG * records are only present in a parent zone. */ - if (qtype == KNOT_RRTYPE_DS && qname[0] != '\0') { + bool ds_query = (qtype == KNOT_RRTYPE_DS); + bool deleg_query = (qtype == KNOT_RRTYPE_DELEG) && knot_pkt_has_deleg_aware(query); + if ((ds_query || deleg_query) && qname[0] != '\0') { const knot_dname_t *parent = knot_dname_next_label(qname); zone = knot_zonedb_find_suffix(zonedb, parent); /* If zone does not exist, search for its parent zone, diff --git a/src/knot/zone/adjust.c b/src/knot/zone/adjust.c index a11e5a3718..26acfd6ac2 100644 --- a/src/knot/zone/adjust.c +++ b/src/knot/zone/adjust.c @@ -36,10 +36,19 @@ int adjust_cb_flags(zone_node_t *node, adjust_ctx_t *ctx) assert(!(node->flags & NODE_FLAGS_DELETED)); - node->flags &= ~(NODE_FLAGS_DELEG | NODE_FLAGS_NONAUTH | NODE_FLAGS_SUBTREE_AUTH | NODE_FLAGS_SUBTREE_DATA); + node->flags &= ~(NODE_FLAGS_DELEG | NODE_FLAGS_NONAUTH | NODE_FLAGS_SUBTREE_AUTH | + NODE_FLAGS_SUBTREE_DATA | NODE_FLAGS_NONAUTH_DELEG); if (parent && (parent->flags & NODE_FLAGS_DELEG || parent->flags & NODE_FLAGS_NONAUTH)) { node->flags |= NODE_FLAGS_NONAUTH; + if (parent->flags & NODE_FLAGS_NONAUTH_DELEG || + ((parent->flags & NODE_FLAGS_DELEG) && !node_rrtype_exists(parent, KNOT_RRTYPE_NS))) { + node->flags |= NODE_FLAGS_NONAUTH_DELEG; + } + } else if (node_rrtype_exists(node, KNOT_RRTYPE_DELEG) && node != ctx->zone->apex) { + ctx->zone->nodes->flags |= ZONE_TREE_CONTAINS_DELEG; + node->flags |= NODE_FLAGS_DELEG; + set_subt_auth = true; } else if (node_rrtype_exists(node, KNOT_RRTYPE_NS) && node != ctx->zone->apex) { node->flags |= NODE_FLAGS_DELEG; if (node_rrtype_exists(node, KNOT_RRTYPE_DS)) { diff --git a/src/knot/zone/adjust.h b/src/knot/zone/adjust.h index 2f76d4355f..627c945eca 100644 --- a/src/knot/zone/adjust.h +++ b/src/knot/zone/adjust.h @@ -9,7 +9,7 @@ #include "knot/updates/zone-update.h" typedef struct { - const zone_contents_t *zone; + zone_contents_t *zone; // mostly const, just setting DELEG-present flag for zone->nodes zone_tree_t *changed_nodes; bool nsec3_param_changed; } adjust_ctx_t; diff --git a/src/knot/zone/node.h b/src/knot/zone/node.h index 52679986db..0ad1514f7e 100644 --- a/src/knot/zone/node.h +++ b/src/knot/zone/node.h @@ -95,6 +95,8 @@ enum node_flags { NODE_FLAGS_SUBTREE_DATA = 1 << 12, /*! \brief Node owner name contains \0 byte in some label. */ NODE_FLAGS_NULLBYTE = 1 << 13, + /*! \brief Node is not authoritative due to being below a DELEG-only delegation. */ + NODE_FLAGS_NONAUTH_DELEG = 1 << 14, }; typedef void (*node_addrem_cb)(zone_node_t *, void *); diff --git a/src/knot/zone/semantic-check.c b/src/knot/zone/semantic-check.c index 9332d6a7eb..3e4b28450e 100644 --- a/src/knot/zone/semantic-check.c +++ b/src/knot/zone/semantic-check.c @@ -148,6 +148,9 @@ static int check_delegation(const zone_node_t *node, semchecks_data_t *data) const knot_rdataset_t *ns_rrs = node_rdataset(node, KNOT_RRTYPE_NS); if (ns_rrs == NULL) { + if (node_rrtype_exists(node, KNOT_RRTYPE_DELEG)) { + return KNOT_EOK; + } assert(data->zone->apex == node); data->handler->cb(data->handler, data->zone, node->owner, SEM_ERR_NS_APEX, NULL); diff --git a/src/knot/zone/zone-tree.h b/src/knot/zone/zone-tree.h index d3d97327ed..7e8cf2dc02 100644 --- a/src/knot/zone/zone-tree.h +++ b/src/knot/zone/zone-tree.h @@ -14,6 +14,8 @@ enum { ZONE_TREE_USE_BINODES = (1 << 0), /*! If set, from each bi-node in the zone tree, the second zone_node_t is valid. */ ZONE_TREE_BINO_SECOND = (1 << 1), + /*! Indication of presence of a DELEG record anywhere in the tree -- Knot only behaves as DELEG-aware if there is any. */ + ZONE_TREE_CONTAINS_DELEG = (1 << 2), }; typedef struct { diff --git a/tests-extra/tests/basic/deleg/data/child-generic.zone b/tests-extra/tests/basic/deleg/data/child-generic.zone new file mode 100644 index 0000000000..88d21d040c --- /dev/null +++ b/tests-extra/tests/basic/deleg/data/child-generic.zone @@ -0,0 +1,5 @@ +$TTL 20 +@ SOA dns1 hostmaster 2010111201 10800 3600 1209600 7200 + NS dns1 +dns1 A 192.0.2.2 +www A 192.0.2.3 diff --git a/tests-extra/tests/basic/deleg/data/d.xdp.cz.zone b/tests-extra/tests/basic/deleg/data/d.xdp.cz.zone new file mode 100644 index 0000000000..fe1f41a5fc --- /dev/null +++ b/tests-extra/tests/basic/deleg/data/d.xdp.cz.zone @@ -0,0 +1,34 @@ +$ORIGIN d.xdp.cz. +$TTL 20 +@ SOA dns1 hostmaster 2010111201 10800 3600 1209600 7200 + NS dns1 +dns1 A 192.0.2.1 +delegi DELEGPARAM server-name=dns1.ns + +ns NS dns1.ns +ns A 255.255.255.0 +dns1.ns A 192.0.2.2 + +ns-ds NS dns1.ns +ns-ds A 255.255.255.0 +dns1.ns-ds A 192.0.2.2 +ns-ds DS 34333 15 2 31486936F0F225158FD79ADF5BBC74F00B7B2CE78D5D951FC0E2DDB3008DCEC9 + +deleg DELEG server-name=dns1.deleg +deleg A 255.255.255.0 +dns1.deleg A 192.0.2.2 + +deleg-ds DELEG include-delegparam=delegi +deleg-ds A 255.255.255.0 +deleg-ds DS 34333 15 2 31486936F0F225158FD79ADF5BBC74F00B7B2CE78D5D951FC0E2DDB3008DCEC9 + +deleg-ns DELEG include-delegparam=delegi +deleg-ns A 255.255.255.0 +deleg-ns NS dns1.deleg-ns +dns1.deleg-ns A 192.0.2.2 + +deleg-ns-ds DELEG server-name=dns1.deleg-ns-ds +deleg-ns-ds A 255.255.255.0 +deleg-ns-ds NS dns1.deleg-ns-ds +dns1.deleg-ns-ds A 192.0.2.2 +deleg-ns-ds DS 34333 15 2 31486936F0F225158FD79ADF5BBC74F00B7B2CE78D5D951FC0E2DDB3008DCEC9 diff --git a/tests-extra/tests/basic/deleg/test.py b/tests-extra/tests/basic/deleg/test.py new file mode 100644 index 0000000000..c26473d299 --- /dev/null +++ b/tests-extra/tests/basic/deleg/test.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 + +'''Various tests of DELEG-aware and unaware auth server answering.''' + +from dnstest.test import Test +from dnstest.utils import * +import shutil + +DELEGATIONS = [ "ns.d.xdp.cz.", "ns-ds.d.xdp.cz.", "deleg.d.xdp.cz.", "deleg-ds.d.xdp.cz.", + "deleg-ns.d.xdp.cz.", "deleg-ns-ds.d.xdp.cz." ] + +def check_normal(resp, presence, rrtype): # check positive answer or NODATA + resp.check(rcode="NOERROR") + resp.check_count(0, "NS", section="authority") + resp.check_count(0, "TYPE61440", section="authority") + if presence: + resp.check_count(1, rrtype, section="answer") + else: + resp.check_count(1, "SOA", section="authority") + resp.check_count(1, "NSEC", section="authority") + +def check_delegation(resp, D, debit): + resp.check(rcode="NOERROR") + resp.check_count(0, "A", section="answer") + resp.check_count(0, "TYPE61440", section="answer") + if debit and ("deleg" in D): + resp.check_count(1, "TYPE61440", section="authority") + else: + resp.check_count(1, "NS", section="authority") + if debit: + resp.check_count(1, "NSEC", section="authority") + + if "ds" in D: + resp.check_count(1, "DS", section="authority") + else: + resp.check_count(1, "NSEC", section="authority") + + if (resp.resp.ednsflags & (1<<13)) != ((1<<13) if debit else 0): # resp.check(noeflags=...) requires DEflag support in dnspython + set_err("%sDE flag in response" % ("no " if debit else "")) + +def check_nxdomain(resp, nsec_count): + resp.check(rcode="NXDOMAIN") + resp.check_count(0, "A", section="answer") + resp.check_count(0, "TYPE61440", section="answer") + resp.check_count(0, "TYPE61440", section="authority") + resp.check_count(1, "SOA", section="authority") + resp.check_count(nsec_count, "NSEC", section="authority") + resp.check_count(0, "NS", section="authority") + +t = Test() + +knot = t.server("knot") +parent = t.zone("d.xdp.cz.", storage=".") +childs = [] +shutil.copy(os.path.join(t.data_dir, "child-generic.zone"), os.path.join(knot.dir, "child-generic.zone")) +for childz in DELEGATIONS: + zf = os.path.join(knot.dir, "%szone" % childz) + shutil.copy(os.path.join(t.data_dir, "child-generic.zone"), zf) + childs += t.zone(childz, file_name=zf) + +t.link(parent, knot) +knot.dnssec(parent).enable = True + +t.start() +knot.zone_wait(parent) + +for childs_running in [ False, True ]: + + if childs_running and DELEGATIONS[0] not in knot.zones: + t.link(childs, knot) + knot.dnssec(childs).enable = True + knot.gen_confile() + knot.reload() + serials = knot.zones_wait(childs) + + for debit in [ False, True ]: + for D in DELEGATIONS: + understood = (debit or ("ns" in D)) # the client understands that there IS a delegation + + resp = knot.dig("dns1." + D, "A", dnssec=True, de=debit) + if childs_running: # direct answer from child zone + check_normal(resp, True, "A") + elif understood: + check_delegation(resp, D, debit) + else: + check_nxdomain(resp, 1) + + resp = knot.dig("dns2." + D, "A", dnssec=True, de=debit) + if childs_running: + check_nxdomain(resp, 2) + elif understood: + check_delegation(resp, D, debit) + else: + check_nxdomain(resp, 1) + + resp = knot.dig(D, "DS", dnssec=True, de=debit) + check_normal(resp, "ds" in D, "DS") + + resp = knot.dig(D, "TYPE61440", dnssec=True, de=debit) + if debit: + check_normal(resp, "deleg" in D, "TYPE61440") + elif childs_running: + check_normal(resp, False, "TYPE61440") + elif "ns" in D: # understood + check_delegation(resp, D, debit) + else: + check_normal(resp, True, "TYPE61440") + + resp = knot.dig(D, "NS", dnssec=True, de=debit) + if childs_running: + check_normal(resp, True, "NS") + elif understood: + check_delegation(resp, D, debit) + else: + check_normal(resp, False, "NS") + + resp = knot.dig(D, "A", dnssec=True, de=debit) + if childs_running: + check_normal(resp, False, "A") + elif understood: + check_delegation(resp, D, debit) + else: + check_normal(resp, False, "A") + +knot.ctl("zone-flush", wait=True) + +t.end() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 124ad1f7e8..6480469942 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -679,7 +679,7 @@ def kdig(self, rname, rtype, rclass="IN", dnssec=None, validate=None, msgdelay=N def dig(self, rname, rtype, rclass="IN", udp=None, serial=None, timeout=None, tries=3, flags="", bufsize=None, edns=None, nsid=False, dnssec=False, - log_no_sep=False, tsig=None, addr=None, source=None, xdp=None): + de=False, log_no_sep=False, tsig=None, addr=None, source=None, xdp=None): # Convert one item zone list to zone name. if isinstance(rname, list): @@ -751,7 +751,7 @@ def dig(self, rname, rtype, rclass="IN", udp=None, serial=None, timeout=None, dig_flags += " +z" # Set EDNS. - if edns != None or bufsize or nsid: + if edns != None or bufsize or nsid or de: class NsidFix(object): '''Old pythondns doesn't implement NSID option.''' def __init__(self): @@ -782,6 +782,10 @@ def to_wire(self, file=None): query.use_edns(edns=edns, payload=payload, options=options) + if de: + query.ednsflags |= (1<<13) + dig_flags += " +deflag" + # Set DO flag. if dnssec: query.want_dnssec() From 756dcce25ee1fafa9a141b5af0cde60eea046a2c Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 22 Dec 2025 13:06:18 +0100 Subject: [PATCH 476/675] DNSKEY: implemented ADT bit signalling DELEG-awareness --- src/knot/dnssec/kasp/kasp_zone.c | 12 +++++++++++- src/knot/dnssec/kasp/policy.h | 1 + src/knot/dnssec/policy.c | 2 ++ src/knot/dnssec/zone-keys.c | 2 +- src/knot/dnssec/zone-keys.h | 2 ++ src/libknot/rrtype/dnskey.h | 2 ++ tests-extra/tests/basic/deleg/test.py | 7 +++++++ 7 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index 9a36e7a8a1..d39e1b6d35 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -41,6 +41,16 @@ static int dnskey_guess_flags(dnssec_key_t *key, uint16_t keytag) return KNOT_EOK; } + dnssec_key_set_flags(key, DNSKEY_FLAGS_KSK_ADT); + if (dnssec_key_get_keytag(key) == keytag) { + return KNOT_EOK; + } + + dnssec_key_set_flags(key, DNSKEY_FLAGS_ZSK_ADT); + if (dnssec_key_get_keytag(key) == keytag) { + return KNOT_EOK; + } + dnssec_key_set_flags(key, DNSKEY_FLAGS_REVOKED); if (dnssec_key_get_keytag(key) == keytag) { return KNOT_EOK; @@ -410,7 +420,7 @@ int kasp_zone_keys_from_rr(knot_kasp_zone_t *zone, } zone->keys[i].is_pub_only = true; - zone->keys[i].is_ksk = (knot_dnskey_flags(zkey) == DNSKEY_FLAGS_KSK); + zone->keys[i].is_ksk = (knot_dnskey_flags(zkey) & DNSKEY_FLAGS_KSK) == DNSKEY_FLAGS_KSK; zone->keys[i].is_zsk = true; // doesn't hurt in case of validation, any KSK might behave like ZSK that is published but not active zone->keys[i].timing.publish = 1; diff --git a/src/knot/dnssec/kasp/policy.h b/src/knot/dnssec/kasp/policy.h index 0bf3618bba..26e5ed197c 100644 --- a/src/knot/dnssec/kasp/policy.h +++ b/src/knot/dnssec/kasp/policy.h @@ -90,6 +90,7 @@ typedef struct { */ typedef struct { bool manual; + bool deleg_aware; char *string; // DNSKEY dnssec_key_algorithm_t algorithm; diff --git a/src/knot/dnssec/policy.c b/src/knot/dnssec/policy.c index 11b72a23bf..724df5bed7 100644 --- a/src/knot/dnssec/policy.c +++ b/src/knot/dnssec/policy.c @@ -20,6 +20,8 @@ void update_policy_from_zone(knot_kasp_policy_t *policy, assert(policy); assert(zone); + policy->deleg_aware = (zone->nodes->flags & ZONE_TREE_CONTAINS_DELEG); + if (policy->dnskey_ttl == UINT32_MAX) { policy->dnskey_ttl = zone_soa_ttl(zone); } diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 013ab69396..e5ba22b30d 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -311,7 +311,7 @@ static void fix_revoked_flag(knot_kasp_key_t *key) { uint16_t flags = dnssec_key_get_flags(key->key); if ((flags & DNSKEY_FLAGS_REVOKED) != DNSKEY_FLAGS_REVOKED) { - dnssec_key_set_flags(key->key, flags | DNSKEY_FLAGS_REVOKED); // FYI leading to change of keytag + dnssec_key_set_flags(key->key, (flags | DNSKEY_FLAGS_REVOKED) & ~KNOT_DNSKEY_FLAG_ADT); // FYI leading to change of keytag } } diff --git a/src/knot/dnssec/zone-keys.h b/src/knot/dnssec/zone-keys.h index 59a8d8dcc1..5dc2233e9a 100644 --- a/src/knot/dnssec/zone-keys.h +++ b/src/knot/dnssec/zone-keys.h @@ -58,6 +58,8 @@ typedef struct { enum { DNSKEY_FLAGS_ZSK = KNOT_DNSKEY_FLAG_ZONE, DNSKEY_FLAGS_KSK = KNOT_DNSKEY_FLAG_ZONE | KNOT_DNSKEY_FLAG_SEP, + DNSKEY_FLAGS_ZSK_ADT = KNOT_DNSKEY_FLAG_ZONE | KNOT_DNSKEY_FLAG_ADT, + DNSKEY_FLAGS_KSK_ADT = KNOT_DNSKEY_FLAG_ZONE | KNOT_DNSKEY_FLAG_SEP | KNOT_DNSKEY_FLAG_ADT, DNSKEY_FLAGS_REVOKED = KNOT_DNSKEY_FLAG_ZONE | KNOT_DNSKEY_FLAG_SEP | KNOT_DNSKEY_FLAG_REVOKE, }; diff --git a/src/libknot/rrtype/dnskey.h b/src/libknot/rrtype/dnskey.h index dc00838959..5bbe831326 100644 --- a/src/libknot/rrtype/dnskey.h +++ b/src/libknot/rrtype/dnskey.h @@ -22,6 +22,8 @@ #define KNOT_DNSKEY_FLAG_ZONE 256 /*! /brief The key MUST NOT be used for validation. */ #define KNOT_DNSKEY_FLAG_REVOKE 128 +/*! /brief Signalling DELEG-aware zone. */ +#define KNOT_DNSKEY_FLAG_ADT 2 static inline uint16_t knot_dnskey_flags(const knot_rdata_t *rdata) diff --git a/tests-extra/tests/basic/deleg/test.py b/tests-extra/tests/basic/deleg/test.py index c26473d299..c080964236 100644 --- a/tests-extra/tests/basic/deleg/test.py +++ b/tests-extra/tests/basic/deleg/test.py @@ -124,4 +124,11 @@ def check_nxdomain(resp, nsec_count): knot.ctl("zone-flush", wait=True) +resp = knot.dig(parent[0].name, "DNSKEY") +if resp.resp.answer[0].to_rdataset()[0].flags & 2 != 2: + set_err("No ADT flag") +resp = knot.dig(childs[0].name, "DNSKEY") +if resp.resp.answer[0].to_rdataset()[0].flags & 2 != 0: + set_err("Extra ADT flag") + t.end() From 8f5ae51ac9ddd11007f413b5ad2dd0f42aee7db6 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 6 Feb 2026 11:45:38 +0100 Subject: [PATCH 477/675] deleg: DELEG-aware answering depends on ADT presence --- src/knot/dnssec/zone-events.c | 17 +++++++++++++++++ src/knot/dnssec/zone-events.h | 5 +++++ src/knot/nameserver/internet.c | 3 ++- src/knot/updates/zone-update.c | 5 +++++ src/knot/zone/adjust.c | 5 +++++ src/knot/zone/zone-tree.h | 4 +++- 6 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/knot/dnssec/zone-events.c b/src/knot/dnssec/zone-events.c index 32e528ea24..67c8761510 100644 --- a/src/knot/dnssec/zone-events.c +++ b/src/knot/dnssec/zone-events.c @@ -550,3 +550,20 @@ int knot_dnssec_validate_zone(zone_update_t *update, validation_conf_t *val_conf return ret; } + +bool knot_dnssec_has_adt(const zone_contents_t *zone) +{ + const knot_rdataset_t *dk = node_rdataset(zone->apex, KNOT_RRTYPE_DNSKEY); + if (dk == NULL) { + return false; + } + knot_rdata_t *rd = dk->rdata; + for (int i = 0; i < dk->count; i++) { + if ((knot_dnskey_flags(rd) & KNOT_DNSKEY_FLAG_ADT)) { + return true; + } + rd = knot_rdataset_next(rd); + } + + return false; +} diff --git a/src/knot/dnssec/zone-events.h b/src/knot/dnssec/zone-events.h index 6bad0b7169..8b0fa1222d 100644 --- a/src/knot/dnssec/zone-events.h +++ b/src/knot/dnssec/zone-events.h @@ -115,3 +115,8 @@ knot_time_t knot_dnssec_failover_delay(const kdnssec_ctx_t *ctx); * \return KNOT_E* */ int knot_dnssec_validate_zone(zone_update_t *update, validation_conf_t *val_conf); + +/*! + * \brief Check if any DNSKEY in the apex has ADT bit set. + */ +bool knot_dnssec_has_adt(const zone_contents_t *zone); diff --git a/src/knot/nameserver/internet.c b/src/knot/nameserver/internet.c index d49d2b0006..e7757f81f9 100644 --- a/src/knot/nameserver/internet.c +++ b/src/knot/nameserver/internet.c @@ -741,7 +741,8 @@ knot_layer_state_t internet_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata) /* Get answer to QNAME. */ qdata->name = knot_pkt_qname(qdata->query); - qdata->deleg_aware = ((qdata->extra->contents->nodes->flags & ZONE_TREE_CONTAINS_DELEG) && knot_pkt_has_deleg_aware(qdata->query)); + qdata->deleg_aware = knot_pkt_has_deleg_aware(qdata->query) && + (qdata->extra->contents->nodes->flags & ZONE_TREE_DELEG_AWARE); if (qdata->deleg_aware) { knot_edns_set_de(&qdata->opt_rr); } diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index ecaafcd758..931631e1e5 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1191,6 +1191,11 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) return KNOT_EZONESIZE; } + if ((update->new_cont->nodes->flags & ZONE_TREE_CONTAINS_DELEG) && + node_rrtype_exists(update->new_cont->apex, KNOT_RRTYPE_DNSKEY) && !knot_dnssec_has_adt(update->new_cont)) { + log_zone_warning(update->zone->name, "contains DELEG record but no DNSKEY with ADT bit"); + } + val = conf_zone_get(conf, C_DNSSEC_VALIDATION, update->zone->name); if (conf_bool(&val)) { validation_conf_t val_conf = { diff --git a/src/knot/zone/adjust.c b/src/knot/zone/adjust.c index 26acfd6ac2..c4bbf09c73 100644 --- a/src/knot/zone/adjust.c +++ b/src/knot/zone/adjust.c @@ -5,6 +5,7 @@ #include "knot/zone/adjust.h" #include "knot/common/log.h" +#include "knot/dnssec/zone-events.h" #include "knot/dnssec/zone-nsec.h" #include "knot/zone/adds_tree.h" #include "knot/zone/measure.h" @@ -36,6 +37,10 @@ int adjust_cb_flags(zone_node_t *node, adjust_ctx_t *ctx) assert(!(node->flags & NODE_FLAGS_DELETED)); + if (parent == NULL && knot_dnssec_has_adt(ctx->zone)) { + ctx->zone->nodes->flags |= ZONE_TREE_DELEG_AWARE; + } + node->flags &= ~(NODE_FLAGS_DELEG | NODE_FLAGS_NONAUTH | NODE_FLAGS_SUBTREE_AUTH | NODE_FLAGS_SUBTREE_DATA | NODE_FLAGS_NONAUTH_DELEG); diff --git a/src/knot/zone/zone-tree.h b/src/knot/zone/zone-tree.h index 7e8cf2dc02..6aa6def22b 100644 --- a/src/knot/zone/zone-tree.h +++ b/src/knot/zone/zone-tree.h @@ -14,8 +14,10 @@ enum { ZONE_TREE_USE_BINODES = (1 << 0), /*! If set, from each bi-node in the zone tree, the second zone_node_t is valid. */ ZONE_TREE_BINO_SECOND = (1 << 1), - /*! Indication of presence of a DELEG record anywhere in the tree -- Knot only behaves as DELEG-aware if there is any. */ + /*! Indication of presence of a DELEG record anywhere in the tree. */ ZONE_TREE_CONTAINS_DELEG = (1 << 2), + /*! DELEG-awareness of the zone. */ + ZONE_TREE_DELEG_AWARE = (1 << 3), }; typedef struct { From 8fae6d7c8bedd640bb7dba8764133c990cfb9b73 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Sat, 27 Dec 2025 17:55:38 +0100 Subject: [PATCH 478/675] dnssec/DELEG: set ADT flag for newly generated keys --- src/knot/dnssec/zone-keys.c | 5 ++++- src/knot/dnssec/zone-keys.h | 5 +++-- src/utils/keymgr/functions.c | 7 ++++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index e5ba22b30d..8c8abb1db8 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -62,7 +62,7 @@ static int generate_dnssec_key(dnssec_keystore_t *keystore, goto fail; } - dnssec_key_set_flags(*key, dnskey_flags(flags & DNSKEY_GENERATE_SEP_ON)); + dnssec_key_set_flags(*key, dnskey_flags(flags & DNSKEY_GENERATE_SEP_ON, flags & DNSKEY_GENERATE_ADT_ON)); dnssec_key_set_algorithm(*key, alg); ret = dnssec_keystore_get_private(keystore, *id, *key); @@ -154,6 +154,9 @@ int kdnssec_generate_key(kdnssec_ctx_t *ctx, kdnssec_generate_flags_t flags, assert(ctx->policy); normalize_generate_flags(&flags); + if (ctx->policy->deleg_aware) { + flags |= DNSKEY_GENERATE_ADT_ON; + } for (size_t i = 0; !(flags & DNSKEY_GENERATE_FOR_LATER) && i < ctx->zone->num_keys; i++) { knot_kasp_key_t *k = &ctx->zone->keys[i]; diff --git a/src/knot/dnssec/zone-keys.h b/src/knot/dnssec/zone-keys.h index 5dc2233e9a..928f042a06 100644 --- a/src/knot/dnssec/zone-keys.h +++ b/src/knot/dnssec/zone-keys.h @@ -63,9 +63,9 @@ enum { DNSKEY_FLAGS_REVOKED = KNOT_DNSKEY_FLAG_ZONE | KNOT_DNSKEY_FLAG_SEP | KNOT_DNSKEY_FLAG_REVOKE, }; -inline static uint16_t dnskey_flags(bool is_ksk) +inline static uint16_t dnskey_flags(bool is_ksk, bool adt) { - return is_ksk ? DNSKEY_FLAGS_KSK : DNSKEY_FLAGS_ZSK; + return adt ? (is_ksk ? DNSKEY_FLAGS_KSK_ADT : DNSKEY_FLAGS_ZSK_ADT) : (is_ksk ? DNSKEY_FLAGS_KSK : DNSKEY_FLAGS_ZSK); } typedef enum { @@ -74,6 +74,7 @@ typedef enum { DNSKEY_GENERATE_SEP_SPEC = (1 << 2), // not (SEP bit set iff KSK) DNSKEY_GENERATE_SEP_ON = (1 << 3), // SEP bit set on DNSKEY_GENERATE_FOR_LATER = (1 << 4), // Pregenerated key for later automatic use. + DNSKEY_GENERATE_ADT_ON = (1 << 5), // DELEG-awareness signaling flag } kdnssec_generate_flags_t; void normalize_generate_flags(kdnssec_generate_flags_t *flags); diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index df00464aae..b5d1c63479 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -479,7 +479,7 @@ int keymgr_import_bind(kdnssec_ctx_t *ctx, const char *import_file, bool pub_onl kkey->key = key; kkey->timing = timing; kkey->is_pub_only = pub_only; - kkey->is_ksk = (dnssec_key_get_flags(kkey->key) == DNSKEY_FLAGS_KSK); + kkey->is_ksk = (dnssec_key_get_flags(kkey->key) & DNSKEY_FLAGS_KSK) == DNSKEY_FLAGS_KSK; kkey->is_zsk = !kkey->is_ksk; // append to zone @@ -603,7 +603,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, if (ret != KNOT_EOK) { goto fail; } - dnssec_key_set_flags(key, dnskey_flags(flags & DNSKEY_GENERATE_SEP_ON)); + dnssec_key_set_flags(key, dnskey_flags(flags & DNSKEY_GENERATE_SEP_ON, ctx->policy->deleg_aware)); dnssec_key_set_algorithm(key, ctx->policy->algorithm); // fill key structure from keystore (incl. pubkey from privkey computation) @@ -918,7 +918,8 @@ int keymgr_set_timing(knot_kasp_key_t *key, int argc, char *argv[]) normalize_generate_flags(&flags); key->is_ksk = (flags & DNSKEY_GENERATE_KSK); key->is_zsk = (flags & DNSKEY_GENERATE_ZSK); - return dnssec_key_set_flags(key->key, dnskey_flags(flags & DNSKEY_GENERATE_SEP_ON)); + return dnssec_key_set_flags(key->key, dnskey_flags(flags & DNSKEY_GENERATE_SEP_ON, + dnssec_key_get_flags(key->key) & KNOT_DNSKEY_FLAG_ADT)); } return KNOT_EOK; } From eb97f3aa31104417966b43715f4cea0d9ffc720d Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 6 Feb 2026 15:36:52 +0100 Subject: [PATCH 479/675] dnssec/DELEG: conf knob in policy triggers ADT --- doc/reference.rst | 11 ++++++++++ src/knot/conf/schema.c | 1 + src/knot/conf/schema.h | 1 + src/knot/dnssec/context.c | 3 +++ src/knot/dnssec/policy.c | 2 -- tests-extra/tests/basic/deleg/test.py | 30 ++++++++++++++++++++------- 6 files changed, 38 insertions(+), 10 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 0df9a42756..2ceb218db6 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2109,6 +2109,7 @@ DNSSEC policy configuration. keytag-modulo: INT/INT ksk-lifetime: TIME zsk-lifetime: TIME + deleg-adt: BOOL delete-delay: TIME propagation-delay: TIME rrsig-lifetime: TIME @@ -2318,6 +2319,16 @@ A period (in seconds) between ZSK activation and the next rollover initiation. *Default:* ``30d`` (30 days) +.. _policy_deleg-adt: + +deleg-adt +--------- + +All newly generated keys will have ADT bit set, signaling possible presence +of DELEG RRs in the zone. + +*Default:* ``off`` + .. _policy_delete-delay: delete-delay diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index bf599c558d..ec02228732 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -433,6 +433,7 @@ static const yp_item_t desc_policy[] = { CONF_IO_FRLD_ZONES }, { C_ZSK_LIFETIME, YP_TINT, YP_VINT = { 0, UINT32_MAX, DAYS(30), YP_STIME }, CONF_IO_FRLD_ZONES }, + { C_DELEG_ADT, YP_TBOOL, YP_VNONE }, { C_DELETE_DELAY, YP_TINT, YP_VINT = { 0, UINT32_MAX, 0, YP_STIME } }, { C_PROPAG_DELAY, YP_TINT, YP_VINT = { 0, INT32_MAX, HOURS(1), YP_STIME }, CONF_IO_FRLD_ZONES }, diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 385142970b..2b07ec5502 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -46,6 +46,7 @@ #define C_DBUS_INIT_DELAY "\x0F""dbus-init-delay" #define C_DDNS_MASTER "\x0B""ddns-master" #define C_DEFAULT_TTL "\x0B""default-ttl" +#define C_DELEG_ADT "\x09""deleg-adt" #define C_DENY "\x04""deny" #define C_DNSKEY_MGMT "\x11""dnskey-management" #define C_DNSKEY_SYNC "\x0B""dnskey-sync" diff --git a/src/knot/dnssec/context.c b/src/knot/dnssec/context.c index 27e311095c..24f82d474c 100644 --- a/src/knot/dnssec/context.c +++ b/src/knot/dnssec/context.c @@ -63,6 +63,9 @@ static void policy_load(knot_kasp_policy_t *policy, conf_t *conf, conf_val_t *id val = conf_id_get(conf, C_POLICY, C_KSK_LIFETIME, id); policy->ksk_lifetime = conf_int(&val); + val = conf_id_get(conf, C_POLICY, C_DELEG_ADT, id); + policy->deleg_aware = conf_bool(&val); + val = conf_id_get(conf, C_POLICY, C_DELETE_DELAY, id); policy->delete_delay = conf_int(&val); diff --git a/src/knot/dnssec/policy.c b/src/knot/dnssec/policy.c index 724df5bed7..11b72a23bf 100644 --- a/src/knot/dnssec/policy.c +++ b/src/knot/dnssec/policy.c @@ -20,8 +20,6 @@ void update_policy_from_zone(knot_kasp_policy_t *policy, assert(policy); assert(zone); - policy->deleg_aware = (zone->nodes->flags & ZONE_TREE_CONTAINS_DELEG); - if (policy->dnskey_ttl == UINT32_MAX) { policy->dnskey_ttl = zone_soa_ttl(zone); } diff --git a/tests-extra/tests/basic/deleg/test.py b/tests-extra/tests/basic/deleg/test.py index c080964236..470647a0a5 100644 --- a/tests-extra/tests/basic/deleg/test.py +++ b/tests-extra/tests/basic/deleg/test.py @@ -47,6 +47,13 @@ def check_nxdomain(resp, nsec_count): resp.check_count(nsec_count, "NSEC", section="authority") resp.check_count(0, "NS", section="authority") +def check_adt(server, zone_name, expected): + resp = server.dig(zone_name, "DNSKEY") + adt_found = False + for dnskey_rr in resp.resp.answer[0].to_rdataset(): + adt_found = adt_found or (dnskey_rr.flags & 2 != 0) + compare(adt_found, expected, "ADT bit%s set" % ("" if expected else " not")) + t = Test() knot = t.server("knot") @@ -62,13 +69,27 @@ def check_nxdomain(resp, nsec_count): knot.dnssec(parent).enable = True t.start() -knot.zone_wait(parent) +parent_serial = knot.zone_wait(parent) + +check_adt(knot, parent[0].name, False) +isset(knot.log_search("missing ADT"), "warning of missing ADT") + +knot.dnssec(parent).deleg_adt = True +knot.gen_confile() +knot.reload() +t.sleep(2) +check_adt(knot, parent[0].name, False) + +knot.ctl("zone-key-rollover %s zsk" % parent[0].name) +parent_serial = knot.zone_wait(parent, parent_serial) +check_adt(knot, parent[0].name, True) for childs_running in [ False, True ]: if childs_running and DELEGATIONS[0] not in knot.zones: t.link(childs, knot) knot.dnssec(childs).enable = True + knot.dnssec(childs).deleg_adt = True knot.gen_confile() knot.reload() serials = knot.zones_wait(childs) @@ -124,11 +145,4 @@ def check_nxdomain(resp, nsec_count): knot.ctl("zone-flush", wait=True) -resp = knot.dig(parent[0].name, "DNSKEY") -if resp.resp.answer[0].to_rdataset()[0].flags & 2 != 2: - set_err("No ADT flag") -resp = knot.dig(childs[0].name, "DNSKEY") -if resp.resp.answer[0].to_rdataset()[0].flags & 2 != 0: - set_err("Extra ADT flag") - t.end() From 7bdc2218c82acb43a546c26c9cceb90395cc8457 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 24 Mar 2026 14:01:26 +0100 Subject: [PATCH 480/675] DELEG: log DELEG-awareness of zone upon load/XFR --- src/knot/events/handlers/load.c | 6 ++++-- src/knot/events/handlers/refresh.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 4b4d1fa9bd..085ca880c2 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -508,8 +508,10 @@ int event_load(conf_t *conf, zone_t *zone) (uint32_t)MAX(zone->timers->next_expire - time(NULL), 0)); } - log_zone_info(zone->name, "loaded, serial %s -> %u%s, %zu bytes%s", - old_serial_str, middle_serial, new_serial_str, zone->contents->size, expires_in); + log_zone_info(zone->name, "loaded, serial %s -> %u%s, %zu bytes%s%s", + old_serial_str, middle_serial, new_serial_str, zone->contents->size, + (zone->contents->nodes->flags & ZONE_TREE_DELEG_AWARE) ? ", DELEG-aware" : "", + expires_in); if (zone->cat_members != NULL) { catalog_update_clear(zone->cat_members); diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 392ab34c9c..d1d50d4de4 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -263,8 +263,10 @@ static void xfr_log_publish(const struct refresh_data *data, fill_expires_in(expires_in, sizeof(expires_in), data); REFRESH_LOG(LOG_INFO, data, - "zone updated, %0.2f seconds, serial %s -> %u%s%s", - duration, old_info, new_serial, master_info, expires_in); + "zone updated, %0.2f seconds, serial %s -> %u%s%s%s", + duration, old_info, new_serial, master_info, + (data->zone->contents->nodes->flags & ZONE_TREE_DELEG_AWARE) ? ", DELEG-aware" : "", + expires_in); } static void xfr_log_read_ms(const knot_dname_t *zone, int ret) From 5de6f107c1e78e3148a5d05a440434fcb7eeb5a6 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 24 Mar 2026 17:14:11 +0100 Subject: [PATCH 481/675] DELEG: conf knob to enforce/override DELEG-awareness... ...manually, e.g. even for unsigned zones --- doc/reference.rst | 16 +++++++++++++ src/knot/conf/schema.c | 10 ++++++++ src/knot/conf/schema.h | 7 ++++++ src/knot/zone/adjust.c | 8 +++++-- tests-extra/tests/basic/deleg/test.py | 33 +++++++++++++++++---------- 5 files changed, 60 insertions(+), 14 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 2ceb218db6..f56d016005 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2760,6 +2760,7 @@ Definition of zones served by the server. acl: acl_id ... master-pin-tolerance: TIME provide-ixfr: BOOL + deleg-aware: BOOL | auto semantic-checks: BOOL | soft default-ttl: TIME zonefile-sync: TIME @@ -2980,6 +2981,21 @@ If enabled, IXFR requests are responded normally. *Default:* ``on`` +.. _zone_deleg-aware: + +deleg-aware +----------- + +Controls zone DELEG awareness. + +Possible values: + +- ``auto`` – DELEG awareness is determined by the presence of the ADT bit in any apex DNSKEY. +- ``off`` – DELEG awareness is disabled. +- ``on`` – DELEG awareness is enabled (useful for DELEG-aware unsigned zones). + +*Default:* ``auto`` + .. _zone_semantic-checks: semantic-checks diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index ec02228732..24d09a774b 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -126,6 +126,15 @@ static const knot_lookup_t serial_policies[] = { { 0, NULL } }; +static const knot_lookup_t deleg_aware[] = { + { DELEG_AWARE_AUTO, "auto" }, + { DELEG_AWARE_OFF, "off" }, + { DELEG_AWARE_OFF, "false" }, + { DELEG_AWARE_ON, "on" }, + { DELEG_AWARE_ON, "true" }, + { 0, NULL } +}; + static const knot_lookup_t semantic_checks[] = { { SEMCHECKS_OFF, "off" }, { SEMCHECKS_OFF, "false" }, @@ -493,6 +502,7 @@ static const yp_item_t desc_external[] = { { C_ACL, YP_TREF, YP_VREF = { C_ACL }, YP_FMULTI, { check_ref } }, \ { C_MASTER_PIN_TOL, YP_TINT, YP_VINT = { 0, UINT32_MAX, 0, YP_STIME } }, \ { C_PROVIDE_IXFR, YP_TBOOL, YP_VBOOL = { true } }, \ + { C_DELEG_AWARE, YP_TOPT, YP_VOPT = { deleg_aware, DELEG_AWARE_AUTO }, FLAGS }, \ { C_SEM_CHECKS, YP_TOPT, YP_VOPT = { semantic_checks, SEMCHECKS_OFF }, FLAGS }, \ { C_DEFAULT_TTL, YP_TINT, YP_VINT = { 1, INT32_MAX, DEFAULT_TTL, YP_STIME }, FLAGS }, \ { C_ZONEFILE_SYNC, YP_TINT, YP_VINT = { -1, INT32_MAX, 0, YP_STIME } }, \ diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 2b07ec5502..ce697cbb27 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -47,6 +47,7 @@ #define C_DDNS_MASTER "\x0B""ddns-master" #define C_DEFAULT_TTL "\x0B""default-ttl" #define C_DELEG_ADT "\x09""deleg-adt" +#define C_DELEG_AWARE "\x0B""deleg-aware" #define C_DENY "\x04""deny" #define C_DNSKEY_MGMT "\x11""dnskey-management" #define C_DNSKEY_SYNC "\x0B""dnskey-sync" @@ -245,6 +246,12 @@ enum { SERIAL_POLICY_DATESERIAL = 3, }; +enum { + DELEG_AWARE_AUTO = 0, + DELEG_AWARE_OFF = 1, + DELEG_AWARE_ON = 2, +}; + enum { SEMCHECKS_OFF = 0, SEMCHECKS_ON = 1, diff --git a/src/knot/zone/adjust.c b/src/knot/zone/adjust.c index c4bbf09c73..27fa8fa03e 100644 --- a/src/knot/zone/adjust.c +++ b/src/knot/zone/adjust.c @@ -37,8 +37,12 @@ int adjust_cb_flags(zone_node_t *node, adjust_ctx_t *ctx) assert(!(node->flags & NODE_FLAGS_DELETED)); - if (parent == NULL && knot_dnssec_has_adt(ctx->zone)) { - ctx->zone->nodes->flags |= ZONE_TREE_DELEG_AWARE; + if (parent == NULL && conf() != NULL) { + conf_val_t val = conf_zone_get(conf(), C_DELEG_AWARE, ctx->zone->apex->owner); + ctx->zone->nodes->flags &= ~ZONE_TREE_DELEG_AWARE; + if (conf_opt(&val) == DELEG_AWARE_ON || (conf_opt(&val) == DELEG_AWARE_AUTO && knot_dnssec_has_adt(ctx->zone))) { + ctx->zone->nodes->flags |= ZONE_TREE_DELEG_AWARE; + } } node->flags &= ~(NODE_FLAGS_DELEG | NODE_FLAGS_NONAUTH | NODE_FLAGS_SUBTREE_AUTH | diff --git a/tests-extra/tests/basic/deleg/test.py b/tests-extra/tests/basic/deleg/test.py index 470647a0a5..714a02835f 100644 --- a/tests-extra/tests/basic/deleg/test.py +++ b/tests-extra/tests/basic/deleg/test.py @@ -4,12 +4,15 @@ from dnstest.test import Test from dnstest.utils import * +import random import shutil DELEGATIONS = [ "ns.d.xdp.cz.", "ns-ds.d.xdp.cz.", "deleg.d.xdp.cz.", "deleg-ds.d.xdp.cz.", "deleg-ns.d.xdp.cz.", "deleg-ns-ds.d.xdp.cz." ] -def check_normal(resp, presence, rrtype): # check positive answer or NODATA +CHILDS_DNSSEC = random.choice([False, True]) + +def check_normal(resp, presence, rrtype, dnssec=True): # check positive answer or NODATA resp.check(rcode="NOERROR") resp.check_count(0, "NS", section="authority") resp.check_count(0, "TYPE61440", section="authority") @@ -17,7 +20,10 @@ def check_normal(resp, presence, rrtype): # check positive answer or NODATA resp.check_count(1, rrtype, section="answer") else: resp.check_count(1, "SOA", section="authority") - resp.check_count(1, "NSEC", section="authority") + resp.check_count(1 if dnssec else 0, "NSEC", section="authority") + + if (resp.resp.ednsflags & (1<<13)) != ((1<<13) if debit else 0): # resp.check(noeflags=...) requires DEflag support in dnspython + set_err("%sDE flag in response" % ("no " if debit else "")) def check_delegation(resp, D, debit): resp.check(rcode="NOERROR") @@ -38,13 +44,13 @@ def check_delegation(resp, D, debit): if (resp.resp.ednsflags & (1<<13)) != ((1<<13) if debit else 0): # resp.check(noeflags=...) requires DEflag support in dnspython set_err("%sDE flag in response" % ("no " if debit else "")) -def check_nxdomain(resp, nsec_count): +def check_nxdomain(resp, nsec_count, dnssec=True): resp.check(rcode="NXDOMAIN") resp.check_count(0, "A", section="answer") resp.check_count(0, "TYPE61440", section="answer") resp.check_count(0, "TYPE61440", section="authority") resp.check_count(1, "SOA", section="authority") - resp.check_count(nsec_count, "NSEC", section="authority") + resp.check_count(nsec_count if dnssec else 0, "NSEC", section="authority") resp.check_count(0, "NS", section="authority") def check_adt(server, zone_name, expected): @@ -72,7 +78,7 @@ def check_adt(server, zone_name, expected): parent_serial = knot.zone_wait(parent) check_adt(knot, parent[0].name, False) -isset(knot.log_search("missing ADT"), "warning of missing ADT") +isset(knot.log_search("no DNSKEY with ADT bit"), "warning of missing ADT") knot.dnssec(parent).deleg_adt = True knot.gen_confile() @@ -88,8 +94,11 @@ def check_adt(server, zone_name, expected): if childs_running and DELEGATIONS[0] not in knot.zones: t.link(childs, knot) - knot.dnssec(childs).enable = True - knot.dnssec(childs).deleg_adt = True + if CHILDS_DNSSEC: + knot.dnssec(childs).enable = True + knot.dnssec(childs).deleg_adt = True + else: + knot.conf_zone(childs).deleg_aware = True knot.gen_confile() knot.reload() serials = knot.zones_wait(childs) @@ -100,7 +109,7 @@ def check_adt(server, zone_name, expected): resp = knot.dig("dns1." + D, "A", dnssec=True, de=debit) if childs_running: # direct answer from child zone - check_normal(resp, True, "A") + check_normal(resp, True, "A", CHILDS_DNSSEC) elif understood: check_delegation(resp, D, debit) else: @@ -108,7 +117,7 @@ def check_adt(server, zone_name, expected): resp = knot.dig("dns2." + D, "A", dnssec=True, de=debit) if childs_running: - check_nxdomain(resp, 2) + check_nxdomain(resp, 2, CHILDS_DNSSEC) elif understood: check_delegation(resp, D, debit) else: @@ -121,7 +130,7 @@ def check_adt(server, zone_name, expected): if debit: check_normal(resp, "deleg" in D, "TYPE61440") elif childs_running: - check_normal(resp, False, "TYPE61440") + check_normal(resp, False, "TYPE61440", CHILDS_DNSSEC) elif "ns" in D: # understood check_delegation(resp, D, debit) else: @@ -129,7 +138,7 @@ def check_adt(server, zone_name, expected): resp = knot.dig(D, "NS", dnssec=True, de=debit) if childs_running: - check_normal(resp, True, "NS") + check_normal(resp, True, "NS", CHILDS_DNSSEC) elif understood: check_delegation(resp, D, debit) else: @@ -137,7 +146,7 @@ def check_adt(server, zone_name, expected): resp = knot.dig(D, "A", dnssec=True, de=debit) if childs_running: - check_normal(resp, False, "A") + check_normal(resp, False, "A", CHILDS_DNSSEC) elif understood: check_delegation(resp, D, debit) else: From 839d88fb1c467436af0ffca98035e975436696fa Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 22 Apr 2026 12:17:52 +0200 Subject: [PATCH 482/675] semchecks: check for DELEG at the zone apex --- doc/reference.rst | 1 + src/knot/zone/semantic-check.c | 21 +++++++++++++++++++ src/knot/zone/semantic-check.h | 2 ++ .../knot/semantic_check_data/deleg_apex.zone | 11 ++++++++++ tests/knot/test_semantic_check.in | 2 ++ 5 files changed, 37 insertions(+) create mode 100644 tests/knot/semantic_check_data/deleg_apex.zone diff --git a/doc/reference.rst b/doc/reference.rst index f56d016005..c29780e5fe 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -3022,6 +3022,7 @@ Mandatory checks: - Multiple DNAME records with the same owner exist (:rfc:`6672`) - NS record exists together with a DNAME record (:rfc:`6672`) - DS record exists at the zone apex (:rfc:`3658`) +- DELEG record exists at the zone apex (TBD) (*) The marked check can't be weakened by the soft mode. All other mandatory checks are subject to the optional soft mode. diff --git a/src/knot/zone/semantic-check.c b/src/knot/zone/semantic-check.c index 3e4b28450e..68b89a4b14 100644 --- a/src/knot/zone/semantic-check.c +++ b/src/knot/zone/semantic-check.c @@ -31,6 +31,9 @@ static const char *error_messages[SEM_ERR_UNKNOWN + 1] = { [SEM_ERR_DNAME_EXTRA_NS] = "NS record exists beside DNAME", + [SEM_ERR_DELEG_APEX] = + "DELEG at the zone apex", + [SEM_ERR_NS_APEX] = "missing NS at the zone apex", [SEM_ERR_NS_GLUE] = @@ -116,6 +119,7 @@ static int check_delegation(const zone_node_t *node, semchecks_data_t *data); static int check_nsec3param(const zone_node_t *node, semchecks_data_t *data); static int check_submission(const zone_node_t *node, semchecks_data_t *data); static int check_ds(const zone_node_t *node, semchecks_data_t *data); +static int check_deleg(const zone_node_t *node, semchecks_data_t *data); struct check_function { int (*function)(const zone_node_t *, semchecks_data_t *); @@ -128,6 +132,7 @@ static const struct check_function CHECK_FUNCTIONS[] = { { check_dname, MANDATORY | SOFT }, { check_delegation, MANDATORY | SOFT }, // mandatory for apex, optional for others { check_ds, MANDATORY | SOFT }, // mandatory for apex, optional for others + { check_deleg, MANDATORY | SOFT }, // mandatory for apex { check_nsec3param, DNSSEC }, { check_submission, DNSSEC }, }; @@ -359,6 +364,22 @@ static int check_ds(const zone_node_t *node, semchecks_data_t *data) return KNOT_EOK; } +static int check_deleg(const zone_node_t *node, semchecks_data_t *data) +{ + if (data->zone->apex != node) { + return KNOT_EOK; + } + + const knot_rdataset_t *deleg_rrs = node_rdataset(node, KNOT_RRTYPE_DELEG); + if (deleg_rrs != NULL) { + data->handler->error = true; + data->handler->cb(data->handler, data->zone, node->owner, + SEM_ERR_DELEG_APEX, NULL); + } + + return KNOT_EOK; +} + static int check_soa(const zone_node_t *node, semchecks_data_t *data) { if (data->zone->apex != node) { diff --git a/src/knot/zone/semantic-check.h b/src/knot/zone/semantic-check.h index 3b79b28c30..c8dbf4bb00 100644 --- a/src/knot/zone/semantic-check.h +++ b/src/knot/zone/semantic-check.h @@ -33,6 +33,8 @@ typedef enum { SEM_ERR_DNAME_MULTIPLE, SEM_ERR_DNAME_EXTRA_NS, + SEM_ERR_DELEG_APEX, + // Optional checks. SEM_ERR_NS_APEX, SEM_ERR_NS_GLUE, diff --git a/tests/knot/semantic_check_data/deleg_apex.zone b/tests/knot/semantic_check_data/deleg_apex.zone new file mode 100644 index 0000000000..a6548531f0 --- /dev/null +++ b/tests/knot/semantic_check_data/deleg_apex.zone @@ -0,0 +1,11 @@ +$ORIGIN example.com. +$TTL 3600 + +@ IN SOA dns1.example.com. hostmaster.example.com. ( + 2010111217 ; serial + 6h ; refresh + 1h ; retry + 1w ; expire + 1d ) ; minimum + + DELEG server-name=ns.example.org. diff --git a/tests/knot/test_semantic_check.in b/tests/knot/test_semantic_check.in index e1dafeab90..d8fa47da1d 100644 --- a/tests/knot/test_semantic_check.in +++ b/tests/knot/test_semantic_check.in @@ -97,6 +97,7 @@ NSEC3_INSECURE_DELEGATION_OPT="wrong NSEC3 opt-out" NS_APEX="missing NS at the zone apex" NS_GLUE="missing glue record" RRSIG_UNVERIFIABLE="no valid signature for a record" +DELEG_APEX="DELEG at the zone apex" plan_lazy @@ -114,6 +115,7 @@ expect_error "dname_children.zone" 1 1 "$DNAME_CHILDREN" expect_error "dname_multiple.zone" 1 1 "$DNAME_MULTIPLE" expect_error "dname_extra_ns.zone" 1 1 "$DNAME_EXTRA_NS" expect_error "ds_apex.zone" 1 1 "$DS_APEX" +expect_error "deleg_apex.zone" 1 1 "$DELEG_APEX" expect_error "ns_apex.missing" 0 1 "$NS_APEX" expect_error "glue_apex_both.missing" 0 2 "$NS_GLUE" From 0489a0db0d62503966ec733a0818c93b27510a0f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 23 Apr 2026 13:21:00 +0200 Subject: [PATCH 483/675] adjust: move ZONE_TREE_DELEG_AWARE setting to zone_update_commit() --- src/knot/updates/zone-update.c | 7 +++++++ src/knot/zone/adjust.c | 9 --------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 931631e1e5..db7f6776d3 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1182,6 +1182,13 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) return ret; } + val = conf_zone_get(conf, C_DELEG_AWARE, update->zone->name); + update->new_cont->nodes->flags &= ~ZONE_TREE_DELEG_AWARE; + if (conf_opt(&val) == DELEG_AWARE_ON || + (conf_opt(&val) == DELEG_AWARE_AUTO && knot_dnssec_has_adt(update->new_cont))) { + update->new_cont->nodes->flags |= ZONE_TREE_DELEG_AWARE; + } + /* Check the zone size. */ val = conf_zone_get(conf, C_ZONE_MAX_SIZE, update->zone->name); size_t size_limit = conf_int(&val); diff --git a/src/knot/zone/adjust.c b/src/knot/zone/adjust.c index 27fa8fa03e..26acfd6ac2 100644 --- a/src/knot/zone/adjust.c +++ b/src/knot/zone/adjust.c @@ -5,7 +5,6 @@ #include "knot/zone/adjust.h" #include "knot/common/log.h" -#include "knot/dnssec/zone-events.h" #include "knot/dnssec/zone-nsec.h" #include "knot/zone/adds_tree.h" #include "knot/zone/measure.h" @@ -37,14 +36,6 @@ int adjust_cb_flags(zone_node_t *node, adjust_ctx_t *ctx) assert(!(node->flags & NODE_FLAGS_DELETED)); - if (parent == NULL && conf() != NULL) { - conf_val_t val = conf_zone_get(conf(), C_DELEG_AWARE, ctx->zone->apex->owner); - ctx->zone->nodes->flags &= ~ZONE_TREE_DELEG_AWARE; - if (conf_opt(&val) == DELEG_AWARE_ON || (conf_opt(&val) == DELEG_AWARE_AUTO && knot_dnssec_has_adt(ctx->zone))) { - ctx->zone->nodes->flags |= ZONE_TREE_DELEG_AWARE; - } - } - node->flags &= ~(NODE_FLAGS_DELEG | NODE_FLAGS_NONAUTH | NODE_FLAGS_SUBTREE_AUTH | NODE_FLAGS_SUBTREE_DATA | NODE_FLAGS_NONAUTH_DELEG); From ee3a49d97eeeb6cc2b2a53f4fad2baee19e22fe9 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 26 Apr 2026 20:26:10 +0200 Subject: [PATCH 484/675] node: replace NODE_FLAGS_DELEG with NODE_FLAGS_DELEG_NS and NODE_FLAGS_DELEG_DELEG --- src/knot/nameserver/internet.c | 14 +++++++++----- src/knot/nameserver/nsec_proofs.c | 2 +- src/knot/zone/adjust.c | 25 ++++++++++++++----------- src/knot/zone/node.h | 14 ++++++++------ src/knot/zone/semantic-check.c | 2 +- 5 files changed, 33 insertions(+), 24 deletions(-) diff --git a/src/knot/nameserver/internet.c b/src/knot/nameserver/internet.c index e7757f81f9..46fd228409 100644 --- a/src/knot/nameserver/internet.c +++ b/src/knot/nameserver/internet.c @@ -44,6 +44,12 @@ static int wildcard_visit(knotd_qdata_t *qdata, const zone_node_t *node, return KNOT_EOK; } +inline static bool node_is_deleg(const knotd_qdata_t *qdata, const zone_node_t *node) +{ + return (node->flags & NODE_FLAGS_DELEG_NS) || + (qdata->deleg_aware && (node->flags & NODE_FLAGS_DELEG_DELEG)); +} + /*! \brief Synthesizes a CNAME RR from a DNAME. */ static int dname_cname_synth(const knot_rrset_t *dname_rr, const knot_dname_t *qname, @@ -177,7 +183,7 @@ static int put_delegation(knot_pkt_t *pkt, knotd_qdata_t *qdata) } uint16_t rr_type = KNOT_RRTYPE_NS; - if (qdata->deleg_aware && node_rrtype_exists(qdata->extra->node, KNOT_RRTYPE_DELEG)) { + if (qdata->deleg_aware && (qdata->extra->node->flags & NODE_FLAGS_DELEG_DELEG)) { rr_type = KNOT_RRTYPE_DELEG; } @@ -366,13 +372,12 @@ static knotd_in_state_t name_found(knot_pkt_t *pkt, knotd_qdata_t *qdata) { uint16_t qtype = knot_pkt_qtype(pkt); - bool at_deleg = (qdata->extra->node->flags & NODE_FLAGS_DELEG); + bool at_deleg = node_is_deleg(qdata, qdata->extra->node); bool below_deleg = (qdata->extra->node->flags & NODE_FLAGS_NONAUTH); bool parent_side = (qtype == KNOT_RRTYPE_DS); if (qdata->deleg_aware) { parent_side = parent_side || (qtype == KNOT_RRTYPE_DELEG); } else { - at_deleg = at_deleg && node_rrtype_exists(qdata->extra->node, KNOT_RRTYPE_NS); below_deleg = below_deleg && !(qdata->extra->node->flags & NODE_FLAGS_NONAUTH_DELEG); } @@ -453,8 +458,7 @@ static knotd_in_state_t name_not_found(knot_pkt_t *pkt, knotd_qdata_t *qdata) } /* Name is below delegation. */ - if ((node->flags & NODE_FLAGS_DELEG) && - (qdata->deleg_aware || node_rrtype_exists(node, KNOT_RRTYPE_NS))) { + if (node_is_deleg(qdata, node)) { qdata->extra->node = node; return KNOTD_IN_STATE_DELEG; } diff --git a/src/knot/nameserver/nsec_proofs.c b/src/knot/nameserver/nsec_proofs.c index 1aae8ef7d3..7fbf8b4600 100644 --- a/src/knot/nameserver/nsec_proofs.c +++ b/src/knot/nameserver/nsec_proofs.c @@ -624,7 +624,7 @@ int nsec_prove_dp_security(knot_pkt_t *pkt, knotd_qdata_t *qdata) // Prove that DS and/or DELEG does not exist. if (knot_rrset_empty(&rrset) || - (qdata->deleg_aware && !node_rrtype_exists(qdata->extra->node, KNOT_RRTYPE_DELEG))) { + (qdata->deleg_aware && !(qdata->extra->node->flags & NODE_FLAGS_DELEG_DELEG))) { ret = put_nodata(qdata->extra->node, qdata->extra->encloser, qdata->extra->previous, qdata->extra->contents, qdata->name, qdata, pkt); } diff --git a/src/knot/zone/adjust.c b/src/knot/zone/adjust.c index 26acfd6ac2..da0f54f387 100644 --- a/src/knot/zone/adjust.c +++ b/src/knot/zone/adjust.c @@ -41,21 +41,24 @@ int adjust_cb_flags(zone_node_t *node, adjust_ctx_t *ctx) if (parent && (parent->flags & NODE_FLAGS_DELEG || parent->flags & NODE_FLAGS_NONAUTH)) { node->flags |= NODE_FLAGS_NONAUTH; - if (parent->flags & NODE_FLAGS_NONAUTH_DELEG || - ((parent->flags & NODE_FLAGS_DELEG) && !node_rrtype_exists(parent, KNOT_RRTYPE_NS))) { + if ((parent->flags & NODE_FLAGS_NONAUTH_DELEG) || + ((parent->flags & NODE_FLAGS_DELEG_DELEG) && !(parent->flags & NODE_FLAGS_DELEG_NS))) { node->flags |= NODE_FLAGS_NONAUTH_DELEG; } - } else if (node_rrtype_exists(node, KNOT_RRTYPE_DELEG) && node != ctx->zone->apex) { - ctx->zone->nodes->flags |= ZONE_TREE_CONTAINS_DELEG; - node->flags |= NODE_FLAGS_DELEG; - set_subt_auth = true; - } else if (node_rrtype_exists(node, KNOT_RRTYPE_NS) && node != ctx->zone->apex) { - node->flags |= NODE_FLAGS_DELEG; - if (node_rrtype_exists(node, KNOT_RRTYPE_DS)) { + } else { + if (node_rrtype_exists(node, KNOT_RRTYPE_DELEG) && node != ctx->zone->apex) { + ctx->zone->nodes->flags |= ZONE_TREE_CONTAINS_DELEG; + node->flags |= NODE_FLAGS_DELEG_DELEG; + set_subt_auth = true; + } + if (node_rrtype_exists(node, KNOT_RRTYPE_NS) && node != ctx->zone->apex) { + node->flags |= NODE_FLAGS_DELEG_NS; + if (node_rrtype_exists(node, KNOT_RRTYPE_DS)) { + set_subt_auth = true; + } + } else if (has_data) { set_subt_auth = true; } - } else if (has_data) { - set_subt_auth = true; } if (set_subt_auth) { diff --git a/src/knot/zone/node.h b/src/knot/zone/node.h index 0ad1514f7e..54940b5379 100644 --- a/src/knot/zone/node.h +++ b/src/knot/zone/node.h @@ -67,14 +67,14 @@ struct rr_data { enum node_flags { /*! \brief Node is authoritative, default. */ NODE_FLAGS_AUTH = 0 << 0, - /*! \brief Node is a delegation point (i.e. marking a zone cut). */ - NODE_FLAGS_DELEG = 1 << 0, + /*! \brief Node is a delegation point using NS (i.e. marking a zone cut). */ + NODE_FLAGS_DELEG_NS = 1 << 0, + /*! \brief Node is a delegation point using DELEG (i.e. marking a zone cut). */ + NODE_FLAGS_DELEG_DELEG = 1 << 1, /*! \brief Node is not authoritative (i.e. below a zone cut). */ - NODE_FLAGS_NONAUTH = 1 << 1, + NODE_FLAGS_NONAUTH = 1 << 2, /*! \brief RRSIGs in node have been cryptographically validated by Knot. */ - NODE_FLAGS_RRSIGS_VALID = 1 << 2, - /*! \brief Node is empty and will be deleted after update. */ - NODE_FLAGS_EMPTY = 1 << 3, + NODE_FLAGS_RRSIGS_VALID = 1 << 3, /*! \brief Node has a wildcard child. */ NODE_FLAGS_WILDCARD_CHILD = 1 << 4, /*! \brief Is this NSEC3 node compatible with zone's NSEC3PARAMS ? */ @@ -99,6 +99,8 @@ enum node_flags { NODE_FLAGS_NONAUTH_DELEG = 1 << 14, }; +#define NODE_FLAGS_DELEG (NODE_FLAGS_DELEG_NS | NODE_FLAGS_DELEG_DELEG) + typedef void (*node_addrem_cb)(zone_node_t *, void *); typedef zone_node_t *(*node_new_cb)(const knot_dname_t *, void *); diff --git a/src/knot/zone/semantic-check.c b/src/knot/zone/semantic-check.c index 68b89a4b14..f60120e223 100644 --- a/src/knot/zone/semantic-check.c +++ b/src/knot/zone/semantic-check.c @@ -153,7 +153,7 @@ static int check_delegation(const zone_node_t *node, semchecks_data_t *data) const knot_rdataset_t *ns_rrs = node_rdataset(node, KNOT_RRTYPE_NS); if (ns_rrs == NULL) { - if (node_rrtype_exists(node, KNOT_RRTYPE_DELEG)) { + if (node->flags & NODE_FLAGS_DELEG_DELEG) { return KNOT_EOK; } assert(data->zone->apex == node); From cf8241606e59e58c4b8a39be3fa5a38820d3e0be Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 9 May 2026 19:19:52 +0200 Subject: [PATCH 485/675] distro/deb: add knot_deleg_info_names symbol --- distro/pkg/deb/libknot16.symbols | 1 + 1 file changed, 1 insertion(+) diff --git a/distro/pkg/deb/libknot16.symbols b/distro/pkg/deb/libknot16.symbols index 09b767e035..53dc647265 100644 --- a/distro/pkg/deb/libknot16.symbols +++ b/distro/pkg/deb/libknot16.symbols @@ -126,6 +126,7 @@ libknot.so.16 libknot16 #MINVER# knot_db_lmdb_iter_del@Base 3.5.0 knot_db_lmdb_txn_begin@Base 3.5.0 knot_db_trie_api@Base 3.5.0 + knot_deleg_info_names@Base 3.6.0 knot_dname_cmp@Base 3.5.0 knot_dname_copy@Base 3.5.0 knot_dname_copy_lower@Base 3.5.0 From c14361536e1af93bef0a279dc7d451e19b1043d2 Mon Sep 17 00:00:00 2001 From: Bron Gondwana Date: Thu, 16 Apr 2026 15:58:13 -0400 Subject: [PATCH 486/675] libknot: add knot_alias_name() accessor for ALIAS rdata ALIAS (type 65401) rdata is a single dname, same wire format as CNAME. Add a named accessor and its case in knot_rdata_name(), peer to the existing knot_cname_name() / knot_dname_target() family. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/libknot/rrtype/rdname.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/libknot/rrtype/rdname.h b/src/libknot/rrtype/rdname.h index aacd8dcb89..19ba590085 100644 --- a/src/libknot/rrtype/rdname.h +++ b/src/libknot/rrtype/rdname.h @@ -24,6 +24,13 @@ const knot_dname_t *knot_cname_name(const knot_rdata_t *rdata) return rdata->data; } +static inline +const knot_dname_t *knot_alias_name(const knot_rdata_t *rdata) +{ + assert(rdata); + return rdata->data; +} + static inline const knot_dname_t *knot_dname_target(const knot_rdata_t *rdata) { @@ -74,6 +81,8 @@ const knot_dname_t *knot_rdata_name(const knot_rdata_t *rdata, uint16_t type) return knot_srv_name(rdata); case KNOT_RRTYPE_CNAME: return knot_cname_name(rdata); + case KNOT_RRTYPE_ALIAS: + return knot_alias_name(rdata); case KNOT_RRTYPE_DNAME: return knot_dname_target(rdata); case KNOT_RRTYPE_SVCB: From 2946fe16f22a1859282abf0b6c70c69751bbbbc3 Mon Sep 17 00:00:00 2001 From: Bron Gondwana Date: Thu, 30 Apr 2026 05:03:30 -0400 Subject: [PATCH 487/675] mod-alias: synthesise ALIAS records from locally-served targets Add the `mod-alias` query module which synthesises answers for ALIAS records (type 65401) at query time by looking up the ALIAS target in the server's zone database and copying the target's records into the response with the original query name as the owner. The module hooks at KNOTD_STAGE_PREANSWER and is attached at zone scope (typically via a template). Behaviour: * Fires for A/AAAA queries, any others passed through to the standard resolver. * ALIAS is additive: direct rrsets on the alias node are merged with the synthesised target rrsets. * Multiple ALIAS rdata on a node are followed and their results merged. * TTL = min(alias_ttl, all contributing source TTLs). * Targets not served by a zone in this server are ignored; external resolution is out of scope. * Synthesised records are not signed; pair with mod-onlinesign if signed answers are required. The integration test runs in two random modes per invocation (plain and DNSSEC-via-mod-onlinesign) so both code paths are exercised over time. Co-authored-by: Daniel Salzman --- Knot.files | 1 + configure.ac | 1 + src/knot/Makefile.inc | 1 + src/knot/modules/alias/Makefile.inc | 12 + src/knot/modules/alias/alias.c | 221 +++++++++++++++++ src/knot/modules/alias/alias.rst | 66 +++++ .../modules/alias/data/_ips.example.zone | 11 + .../tests/modules/alias/data/example.zone | 49 ++++ tests-extra/tests/modules/alias/test.py | 230 ++++++++++++++++++ tests-extra/tools/dnstest/module.py | 6 + 10 files changed, 598 insertions(+) create mode 100644 src/knot/modules/alias/Makefile.inc create mode 100644 src/knot/modules/alias/alias.c create mode 100644 src/knot/modules/alias/alias.rst create mode 100644 tests-extra/tests/modules/alias/data/_ips.example.zone create mode 100644 tests-extra/tests/modules/alias/data/example.zone create mode 100644 tests-extra/tests/modules/alias/test.py diff --git a/Knot.files b/Knot.files index b90cb7682e..f801df4aee 100644 --- a/Knot.files +++ b/Knot.files @@ -287,6 +287,7 @@ src/knot/journal/knot_lmdb.c src/knot/journal/knot_lmdb.h src/knot/journal/serialization.c src/knot/journal/serialization.h +src/knot/modules/alias/alias.c src/knot/modules/authsignal/authsignal.c src/knot/modules/cookies/cookies.c src/knot/modules/dnserr/dnserr.c diff --git a/configure.ac b/configure.ac index debbf47270..6bf8806043 100644 --- a/configure.ac +++ b/configure.ac @@ -411,6 +411,7 @@ static_modules_declars="" static_modules_init="" doc_modules="" +KNOT_MODULE([alias], "yes", "non-shareable") KNOT_MODULE([authsignal], "yes") KNOT_MODULE([cookies], "yes") KNOT_MODULE([dnserr], "yes") diff --git a/src/knot/Makefile.inc b/src/knot/Makefile.inc index 19cb78a71b..20ddc4865a 100644 --- a/src/knot/Makefile.inc +++ b/src/knot/Makefile.inc @@ -260,6 +260,7 @@ KNOTD_MOD_LDFLAGS = $(AM_LDFLAGS) -module -shared -avoid-version pkglibdir = $(module_instdir) pkglib_LTLIBRARIES = +include $(srcdir)/knot/modules/alias/Makefile.inc include $(srcdir)/knot/modules/authsignal/Makefile.inc include $(srcdir)/knot/modules/cookies/Makefile.inc include $(srcdir)/knot/modules/dnserr/Makefile.inc diff --git a/src/knot/modules/alias/Makefile.inc b/src/knot/modules/alias/Makefile.inc new file mode 100644 index 0000000000..5019bbf035 --- /dev/null +++ b/src/knot/modules/alias/Makefile.inc @@ -0,0 +1,12 @@ +knot_modules_alias_la_SOURCES = knot/modules/alias/alias.c +EXTRA_DIST += knot/modules/alias/alias.rst + +if STATIC_MODULE_alias +libknotd_la_SOURCES += $(knot_modules_alias_la_SOURCES) +endif + +if SHARED_MODULE_alias +knot_modules_alias_la_LDFLAGS = $(KNOTD_MOD_LDFLAGS) +knot_modules_alias_la_CPPFLAGS = $(KNOTD_MOD_CPPFLAGS) +pkglib_LTLIBRARIES += knot/modules/alias.la +endif diff --git a/src/knot/modules/alias/alias.c b/src/knot/modules/alias/alias.c new file mode 100644 index 0000000000..48c74fcd47 --- /dev/null +++ b/src/knot/modules/alias/alias.c @@ -0,0 +1,221 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +/*! + * \brief ALIAS record synthesis from locally-served targets. + * + * When a zone node carries one or more ALIAS records (type 65401), this + * module synthesises answers to A and AAAA queries at query time by + * looking up the target in the server's zone database and copying its + * address records into the response, with the original query name as the + * owner. + * + * Hooked at KNOTD_STAGE_PREANSWER so that the standard put_answer path + * never sees an ALIAS node for A/AAAA queries. The client sees only + * synthesised target records (or NODATA if the target is not served + * locally). All other query types — including the ALIAS type itself, + * RRSIG, NSEC and ANY — are passed through to the standard resolver, so + * it can return whatever is actually on the node (including the raw + * ALIAS record). + * + * Non-ALIAS nodes are passed through untouched; the normal resolver + * handles them. + * + * Behaviour summary: + * * Only A and AAAA queries trigger synthesis. + * * ALIAS is additive: if the node also has direct A/AAAA records, + * both direct and target records are merged. + * * Multiple ALIAS rdata are followed in turn and merged. + * * TTL = min(alias_ttl, all contributing source TTLs). + * * Targets not served locally are silently ignored. + * * Synthesised records are not DNSSEC-signed. + */ + +#include +#include + +#include "knot/include/module.h" +#include "knot/nameserver/process_query.h" +#include "knot/server/server.h" +#include "knot/zone/contents.h" +#include "knot/zone/zonedb.h" +#include "contrib/macros.h" +#include "libknot/libknot.h" +#include "libknot/rrtype/rdname.h" + +/*! + * \brief Find a locally-served target node. + */ +static const zone_node_t *find_target_node(server_t *server, + const knot_dname_t *target) +{ + zone_t *tz = knot_zonedb_find_suffix(server->zone_db, target); + if (tz == NULL || tz->contents == NULL) { + return NULL; + } + const zone_node_t *tn = NULL, *cl = NULL, *pv = NULL; + int ret = zone_contents_find_dname(tz->contents, target, &tn, &cl, &pv, + knot_dname_with_null(target)); + if (ret != ZONE_NAME_FOUND || tn == NULL) { + return NULL; + } + return tn; +} + +static int merge_target(const zone_node_t *tn, uint16_t rtype, + knot_mm_t *mm, knot_rrset_t *synth) +{ + knot_rrset_t src = node_rrset(tn, rtype); + if (knot_rrset_empty(&src)) { + return KNOT_ENOENT; + } + synth->ttl = MIN(synth->ttl, src.ttl); + if (knot_rdataset_merge(&synth->rrs, &src.rrs, mm) != KNOT_EOK) { + return KNOT_ENOMEM; + } + return KNOT_EOK; +} + +/*! + * \brief Resolve the query name in the zone, including wildcard expansion. + * + * Populates qdata->extra->{node,encloser,previous} as a side-effect, so + * downstream stages (AUTHORITY, ADDITIONAL) see the correct node. + * + * \return The resolved node, or NULL if the name is not in the zone. + */ +static const zone_node_t *resolve_name(knotd_qdata_t *qdata) +{ + int ret = zone_contents_find_dname( + qdata->extra->contents, qdata->name, + &qdata->extra->node, &qdata->extra->encloser, + &qdata->extra->previous, + qdata->query->flags & KNOT_PF_NULLBYTE); + + if (ret == ZONE_NAME_FOUND) { + return qdata->extra->node; + } + + if (ret == ZONE_NAME_NOT_FOUND && + qdata->extra->encloser != NULL && + (qdata->extra->encloser->flags & NODE_FLAGS_WILDCARD_CHILD)) { + const zone_node_t *wc = zone_contents_find_wildcard_child( + qdata->extra->contents, qdata->extra->encloser); + if (wc != NULL) { + qdata->extra->node = wc; + return wc; + } + } + + return NULL; +} + +/*! + * \brief PREANSWER hook: intercept ALIAS nodes before put_answer runs. + * + * If the query name resolves to a node with ALIAS records, we do full + * synthesis here and return KNOTD_IN_STATE_HIT. solve_answer() sees + * HIT and skips, so the raw ALIAS record is never placed in the packet. + * + * For non-ALIAS nodes we return state unchanged (BEGIN) and the normal + * resolver handles everything. + */ +static knotd_in_state_t solve_alias(knotd_in_state_t state, knot_pkt_t *pkt, + knotd_qdata_t *qdata, knotd_mod_t *mod) +{ + assert(pkt && qdata && mod); + + if (state != KNOTD_IN_STATE_BEGIN) { + return state; + } + if (qdata->extra == NULL || qdata->extra->contents == NULL) { + return state; + } + + uint16_t qtype = knot_pkt_qtype(pkt); + + /* Synthesise only for A and AAAA queries. Everything else — the + * ALIAS type itself, RRSIG, NSEC, ANY, and any other rtype — is + * passed through to the standard resolver, which returns whatever + * is actually on the node (including the raw ALIAS record for + * explicit TYPE65401 / ANY diagnostics). */ + if (qtype != KNOT_RRTYPE_A && qtype != KNOT_RRTYPE_AAAA) { + return state; + } + + /* Resolve the query name (exact match or wildcard). */ + const zone_node_t *node = resolve_name(qdata); + if (node == NULL) { + return state; /* NXDOMAIN — let solve_answer handle it. */ + } + + knot_rrset_t alias_rr = node_rrset(node, KNOT_RRTYPE_ALIAS); + if (knot_rrset_empty(&alias_rr)) { + return state; /* No ALIAS on this node — normal resolver. */ + } + + /* ---- This is an ALIAS node. We handle it entirely. ---- */ + + server_t *server = (server_t *)qdata->params->server; + + knot_dname_t *owner = knot_dname_copy(qdata->name, &pkt->mm); + if (owner == NULL) { + return KNOTD_IN_STATE_ERROR; + } + knot_rrset_t synth; + knot_rrset_init(&synth, owner, qtype, KNOT_CLASS_IN, alias_rr.ttl); + + /* Merge records from each target. */ + knot_rdata_t *rdata = alias_rr.rrs.rdata; + for (uint16_t j = 0; j < alias_rr.rrs.count; + j++, rdata = knot_rdataset_next(rdata)) { + const zone_node_t *tn = find_target_node(server, + knot_alias_name(rdata)); + if (tn == NULL) { + continue; + } + int ret = merge_target(tn, qtype, &pkt->mm, &synth); + if (ret != KNOT_EOK && ret != KNOT_ENOENT) { + return KNOTD_IN_STATE_ERROR; + } + } + + /* Also merge direct records of this type on the alias node + * (additive: ALIAS augments, not replaces). */ + int ret = merge_target(node, qtype, &pkt->mm, &synth); + if (ret != KNOT_EOK && ret != KNOT_ENOENT) { + return KNOTD_IN_STATE_ERROR; + } + + if (!knot_rrset_empty(&synth)) { + ret = knot_pkt_put(pkt, KNOT_COMPR_HINT_NONE, &synth, + KNOT_PF_FREE); + switch (ret) { + case KNOT_EOK: + knot_wire_set_aa(pkt->wire); + return KNOTD_IN_STATE_HIT; + case KNOT_ESPACE: + knot_wire_set_aa(pkt->wire); + knot_wire_set_tc(pkt->wire); + return KNOTD_IN_STATE_TRUNC; + default: + return KNOTD_IN_STATE_ERROR; + } + } + + /* ALIAS present but no records synthesised (e.g. target not local). + * Return NODATA — solve_answer sees this and does nothing useful + * (no matching rrtype to return). */ + qdata->rcode = KNOT_RCODE_NOERROR; + return KNOTD_IN_STATE_NODATA; +} + +int alias_load(knotd_mod_t *mod) +{ + return knotd_mod_in_hook(mod, KNOTD_STAGE_PREANSWER, solve_alias); +} + +KNOTD_MOD_API(alias, KNOTD_MOD_FLAG_SCOPE_ZONE | KNOTD_MOD_FLAG_OPT_CONF, + alias_load, NULL, NULL, NULL); diff --git a/src/knot/modules/alias/alias.rst b/src/knot/modules/alias/alias.rst new file mode 100644 index 0000000000..6fb0cb7fc3 --- /dev/null +++ b/src/knot/modules/alias/alias.rst @@ -0,0 +1,66 @@ +.. _mod-alias: + +``alias`` -- ALIAS record synthesis from locally-served targets +=============================================================== + +This module synthesises answers to ``A`` and ``AAAA`` queries on nodes +that carry one or more ALIAS records (type 65401), by looking up the +ALIAS target in the server's zone database and copying the target's +address records into the response with the original query name as the +owner. + +Only locally-served target zones are followed; external resolution is +out of scope for this module. The name reflects the current behaviour +and leaves room for future extension (e.g. external resolution). + +Behaviour +--------- + +* Fires only for ``A`` and ``AAAA`` queries. All other qtypes — + including ``ALIAS`` itself, ``RRSIG``, ``NSEC`` and ``ANY`` — are + passed through to the standard resolver, which returns whatever + records are directly on the node (or NODATA if none of the requested + type are present). +* ALIAS is additive: if the alias node also has a direct ``A`` or + ``AAAA`` rrset, both sets are returned merged into one rrset. +* Multiple ALIAS rdata on the same node are followed in turn and their + results merged. +* ALIASes can not be chained; ALIAS records in the target rrset are + ignored. +* TTL = ``min(alias_ttl, all contributing source TTLs)``. +* Targets not served by a zone in this server are ignored; external + resolution is out of scope. +* Synthesised records are not DNSSEC-signed by this module — pair with + ``mod-onlinesign`` if signed answers are required. +* The module hooks at ``KNOTD_STAGE_PREANSWER``, so for ``A``/``AAAA`` + queries on ALIAS nodes the standard ``solve_answer`` path is + bypassed. Other modules hooked at ``KNOTD_STAGE_ANSWER`` will not + fire for these queries. Modules at other stages + (``KNOTD_STAGE_END``, ``KNOTD_STAGE_BEGIN``, etc.) are unaffected — + e.g. ``mod-stats`` counts ALIAS queries normally. + +Use +--- + +The module has no configuration and is attached at zone scope, typically +via a template so every zone picks it up:: + + template: + - id: default + module: mod-alias + +With the module loaded, a zone carrying an ALIAS record will respond +to ``A``/``AAAA`` queries with the corresponding address records from +a locally-served target zone:: + + ; example.com zone: + www 3600 IN ALIAS www._ips.infra.example.net. + + ; infra.example.net zone (served by the same knot): + www._ips 60 IN A 203.0.113.10 + www._ips 60 IN A 203.0.113.11 + +A query for ``www.example.com. A`` returns ``203.0.113.10`` and +``203.0.113.11``, TTL capped at 60. A query for any other type on +``www.example.com.`` is handled by the standard resolver and returns +NODATA unless a direct rrset of that type also exists on the node. diff --git a/tests-extra/tests/modules/alias/data/_ips.example.zone b/tests-extra/tests/modules/alias/data/_ips.example.zone new file mode 100644 index 0000000000..e8604d5c9c --- /dev/null +++ b/tests-extra/tests/modules/alias/data/_ips.example.zone @@ -0,0 +1,11 @@ +$ORIGIN _ips.example. +$TTL 300 +@ IN SOA ns.example. mail.example. ( 1 3600 900 604800 300 ) +@ IN NS ns.example. + +; Synthesis targets used by the alias zones. +web IN A 192.0.2.1 +web IN AAAA 2001:db8::1 +alt IN A 192.0.2.2 +mail IN A 192.0.2.3 +mail IN MX 10 mx.example. diff --git a/tests-extra/tests/modules/alias/data/example.zone b/tests-extra/tests/modules/alias/data/example.zone new file mode 100644 index 0000000000..d0285fb28b --- /dev/null +++ b/tests-extra/tests/modules/alias/data/example.zone @@ -0,0 +1,49 @@ +$ORIGIN example. +$TTL 300 +@ IN SOA ns.example. mail.example. ( 1 3600 900 604800 300 ) +@ IN NS ns.example. +ns IN A 192.0.2.254 +mx IN A 192.0.2.253 + +; Basic: pure ALIAS to a locally-served target. +www 600 IN ALIAS web._ips.example. + +; ALIAS plus direct MX on the same node — both must be returnable. +www 300 IN MX 10 mail.example. + +; ALIAS to a non-local target; should yield NODATA. +external 300 IN ALIAS web.external.tld. + +; Multiple ALIAS rdata on one node; both targets' A records should merge. +multi 300 IN ALIAS web._ips.example. +multi 300 IN ALIAS alt._ips.example. + +; Self-referential ALIAS with no A on target — NODATA. +loop 300 IN ALIAS loop.example. + +; Self-referential ALIAS with coexisting direct A. +loop2 300 IN ALIAS loop2.example. +loop2 300 IN A 10.0.0.4 + +; Coexisting ALIAS + direct A; additive. +both 300 IN ALIAS web._ips.example. +both 300 IN A 10.0.0.3 + +; TTL cap demonstration: alias_ttl=600, target_ttl=300 → synthesised ttl=300. +lowttl 600 IN ALIAS web._ips.example. + +; Wildcard ALIAS plus a specific plain-A override. +*.wild1 300 IN ALIAS web._ips.example. +over.wild1 300 IN A 10.0.0.1 + +; Wildcard plain A plus a specific ALIAS override. +*.wild2 300 IN A 10.0.0.2 +login.wild2 300 IN ALIAS web._ips.example. + +; Wildcard ALIAS with a specific ALIAS override pointing at a different target. +*.wild3 300 IN ALIAS web._ips.example. +other.wild3 300 IN ALIAS alt._ips.example. + +; MX query on an ALIAS node has no effect — only direct MX record +mixmx 300 IN ALIAS mail._ips.example. +mixmx 300 IN MX 20 mx.example. diff --git a/tests-extra/tests/modules/alias/test.py b/tests-extra/tests/modules/alias/test.py new file mode 100644 index 0000000000..6d1d90177b --- /dev/null +++ b/tests-extra/tests/modules/alias/test.py @@ -0,0 +1,230 @@ +#!/usr/bin/env python3 + +'''Check the `alias` query module synthesises ALIAS records at query time +from locally-served target zones. + +Each run randomly picks DNSSEC mode: when DNSSEC is enabled, mod-onlinesign +is attached alongside mod-alias and synthesised rrsets are checked for an +accompanying RRSIG; the NODATA-on-external-target case is also verified to +carry a denying NSEC + RRSIGs in the authority section.''' + +import random +from dnstest.test import Test +from dnstest.module import ModAlias, ModOnlineSign + +DNSSEC = random.choice([True, False]) + +t = Test() + +ModAlias.check() +ModOnlineSign.check() + +# Two zones: example. has the ALIAS records, _ips.example. holds the A/AAAA +# target rrsets referenced by them. Both are served by the same knotd so the +# module's zonedb lookup succeeds for local targets and falls through for the +# `external.tld.` target used in the NODATA test. +knot = t.server("knot") +zone = t.zone("example.", storage=".") + \ + t.zone("_ips.example.", storage=".") +t.link(zone, knot) + +# Attach the module to example. only; _ips.example. is a target zone +# and holds no ALIAS records of its own. No per-instance config. +knot.add_module(zone[0], ModAlias()) +if DNSSEC: + knot.add_module(zone[0], ModOnlineSign()) + +t.start() + +# ----- Pure ALIAS: www -> web._ips.example. -------------------------------- + +resp = knot.dig("www.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.1") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +resp = knot.dig("www.example.", "AAAA", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="AAAA", rdata="2001:db8::1") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- Explicit ALIAS-type query returns the raw record (diagnostics) ------ +# An explicit TYPE65401 query is the only way to inspect the ALIAS itself. + +resp = knot.dig("www.example.", "TYPE65401", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_count(1, rtype="TYPE65401", section="answer") +resp.check_count(0, rtype="A", section="answer") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- Non-A/AAAA query on an ALIAS node passes through to the resolver ---- +# www.example. has both an ALIAS and a direct MX. The module does not touch +# MX queries, so the standard resolver returns the direct MX rrset as normal. + +resp = knot.dig("www.example.", "MX", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="MX", rdata="10 mail.example.") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- ALIAS target not served locally -> NODATA --------------------------- +# When signed, NODATA carries a denying NSEC plus RRSIGs (over NSEC and SOA). + +resp = knot.dig("external.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_count(0, rtype="A", section="answer") +if DNSSEC: + resp.check_count(1, rtype="SOA", section="authority") + resp.check_count(1, rtype="NSEC", section="authority") + resp.check_count(2, rtype="RRSIG", section="authority") + +# ----- Multiple ALIAS rdata on one node merge both targets' A records ------ + +resp = knot.dig("multi.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_count(2, rtype="A", section="answer") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.1") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.2") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- Self-referential ALIAS, no A on target -> NODATA -------------------- + +resp = knot.dig("loop.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_count(0, rtype="A", section="answer") +if DNSSEC: + resp.check_count(1, rtype="SOA", section="authority") + resp.check_count(1, rtype="NSEC", section="authority") + resp.check_count(2, rtype="RRSIG", section="authority") + +# ----- Self-referential ALIAS with coexisting direct A returns the A ------- +# The module finds the same node and merges in the direct A; no infinite loop. + +resp = knot.dig("loop2.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="10.0.0.4") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- ALIAS + direct A -> both appear (additive) -------------------------- + +resp = knot.dig("both.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_count(2, rtype="A", section="answer") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.1") +resp.check_record(section="answer", rtype="A", rdata="10.0.0.3") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- TTL cap: min(alias_ttl=600, target_ttl=300) = 300 ------------------- + +resp = knot.dig("lowttl.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.1", ttl=300) +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- Wildcard ALIAS; specific plain-A override wins ----------------- +# over.wild1 has a direct A (no ALIAS) so the normal wildcard miss applies; +# any other label under *.wild1 synthesises from the wildcard's ALIAS target. + +resp = knot.dig("over.wild1.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="10.0.0.1") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +resp = knot.dig("any.wild1.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.1") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- Wildcard plain A; specific ALIAS override synthesises -------------- + +resp = knot.dig("login.wild2.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.1") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +resp = knot.dig("other.wild2.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="10.0.0.2") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- Wildcard ALIAS; specific ALIAS points at a different target -------- + +resp = knot.dig("any.wild3.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.1") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +resp = knot.dig("other.wild3.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.2") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- Non-A/AAAA queries pass through; ALIAS target's MX is ignored ------ +# mixmx has ALIAS to mail._ips.example. (which has an MX) plus a direct MX. +# Only the direct MX must appear; the module no longer synthesises non-address +# types from the target. An A query on the same node still synthesises from +# the target's A record. + +resp = knot.dig("mixmx.example.", "MX", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_count(1, rtype="MX", section="answer") +resp.check_record(section="answer", rtype="MX", rdata="20 mx.example.") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +resp = knot.dig("mixmx.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.3") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- ANY is passed through to the standard resolver -------------------- +# The module doesn't intercept ANY; the raw ALIAS record is returned as-is, +# with no synthesis from the target. Knot's default for ANY is one rrset per +# node (RFC 8482 style), so we use an ALIAS-only node for a deterministic +# assertion. + +resp = knot.dig("lowttl.example.", "ANY", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_count(1, rtype="TYPE65401", section="answer") +resp.check_count(0, rtype="A", section="answer") +resp.check_count(0, rtype="AAAA", section="answer") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +# ----- Plain (non-ALIAS) nodes are unaffected by the module --------------- + +resp = knot.dig("ns.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.254") +if DNSSEC: + resp.check_count(1, rtype="RRSIG", section="answer") + +resp = knot.dig("mx.example.", "A", dnssec=DNSSEC) +resp.check(rcode="NOERROR", flags="QR AA") +resp.check_record(section="answer", rtype="A", rdata="192.0.2.253") + +# NXDOMAIN for name not in any zone +resp = knot.dig("nonexistent.example.", "A", dnssec=DNSSEC) +if DNSSEC: + resp.check(rcode="NOERROR") # Specific of mod-onlinesign + resp.check_count(1, rtype="SOA", section="authority") + resp.check_count(1, rtype="NSEC", section="authority") + resp.check_count(2, rtype="RRSIG", section="authority") +else: + resp.check(rcode="NXDOMAIN") + +t.end() diff --git a/tests-extra/tools/dnstest/module.py b/tests-extra/tools/dnstest/module.py index aa6af2178e..71ad44fa30 100644 --- a/tests-extra/tools/dnstest/module.py +++ b/tests-extra/tools/dnstest/module.py @@ -444,6 +444,12 @@ class ModAuthSignal(KnotModule): mod_name = "authsignal" empty = True +class ModAlias(KnotModule): + '''ALIAS synthesis from locally-served target zones''' + + mod_name = "alias" + empty = True + class ModDnsErr(KnotModule): '''DNS Error module''' From 138b959cca8f94c7cef23f4243ab4f11e18371fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Wed, 13 May 2026 10:31:36 +0200 Subject: [PATCH 488/675] tests-extra: line clearing only on atty --- tests-extra/runtests.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests-extra/runtests.py b/tests-extra/runtests.py index ac5ec9b873..8d031eaea2 100755 --- a/tests-extra/runtests.py +++ b/tests-extra/runtests.py @@ -28,7 +28,8 @@ def nothing(): pass def clear_line(): - print("\r\x1b[K", end='') + if sys.stdout.isatty(): + print("\r\x1b[K", end='') def progress_print(cntr, lock, func = nothing, *args, **kwargs): if sys.stdout.isatty(): From 0618176dbc95eba51b4edb58b295d182ef40ca11 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 14 May 2026 10:35:34 +0200 Subject: [PATCH 489/675] NOTIFY/DS_check/push: avoid unnecessary error log when planned from timers... ...and zone not loaded/XFRed yet --- src/knot/events/handlers/ds_check.c | 28 +++++++++++++++++++--------- src/knot/events/handlers/ds_push.c | 15 +++++++++++---- src/knot/events/handlers/notify.c | 4 +++- 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/src/knot/events/handlers/ds_check.c b/src/knot/events/handlers/ds_check.c index eaf44f5b9e..8c2e63c404 100644 --- a/src/knot/events/handlers/ds_check.c +++ b/src/knot/events/handlers/ds_check.c @@ -3,17 +3,24 @@ * For more information, see */ +#include "knot/common/log.h" #include "knot/dnssec/ds_query.h" +#include "knot/query/query.h" #include "knot/zone/zone.h" +static void reschedule_next(zone_t *zone, uint32_t interval) +{ + if (interval > 0) { + time_t next_check = time(NULL) + interval; + zone->timers->next_ds_check = next_check; + zone_events_schedule_at(zone, ZONE_EVENT_DS_CHECK, next_check); + } +} + int event_ds_check(conf_t *conf, zone_t *zone) { assert(zone); - if (zone_contents_is_empty(zone->contents)) { - return KNOT_EEMPTYZONE; - } - kdnssec_ctx_t ctx = { 0 }; int ret = kdnssec_ctx_init(conf, &ctx, zone->name, zone_kaspdb(zone), NULL); @@ -21,6 +28,13 @@ int event_ds_check(conf_t *conf, zone_t *zone) return ret; } + if (zone_contents_is_empty(zone->contents)) { + log_zone_debug(zone->name, "%s, zone is not loaded, will retry", log_operation_name(LOG_OPERATION_DS_CHECK)); + reschedule_next(zone, ctx.policy->ksk_sbm_check_interval); + kdnssec_ctx_deinit(&ctx); + return KNOT_EOK; + } + ret = knot_parent_ds_query(conf, &ctx, zone->server, conf->cache.srv_tcp_remote_io_timeout); @@ -34,11 +48,7 @@ int event_ds_check(conf_t *conf, zone_t *zone) zone_schedule_update(conf, zone, ZONE_EVENT_DNSSEC); break; default: - if (ctx.policy->ksk_sbm_check_interval > 0) { - time_t next_check = time(NULL) + ctx.policy->ksk_sbm_check_interval; - zone->timers->next_ds_check = next_check; - zone_events_schedule_at(zone, ZONE_EVENT_DS_CHECK, next_check); - } + reschedule_next(zone, ctx.policy->ksk_sbm_check_interval); } kdnssec_ctx_deinit(&ctx); diff --git a/src/knot/events/handlers/ds_push.c b/src/knot/events/handlers/ds_push.c index 1f59d2fddc..25a79dda5d 100644 --- a/src/knot/events/handlers/ds_push.c +++ b/src/knot/events/handlers/ds_push.c @@ -32,6 +32,13 @@ struct ds_push_data { static const knot_rdata_t remove_cds = { 5, { 0, 0, 0, 0, 0 } }; +static void reschedule_next(zone_t *zone) +{ + time_t next_push = time(NULL) + DS_PUSH_RETRY; + zone->timers->next_ds_push = next_push; + zone_events_schedule_at(zone, ZONE_EVENT_DS_PUSH, next_push); +} + static int ds_push_begin(knot_layer_t *layer, void *params) { layer->data = params; @@ -217,7 +224,9 @@ int event_ds_push(conf_t *conf, zone_t *zone) assert(zone); if (zone_contents_is_empty(zone->contents)) { - return KNOT_EEMPTYZONE; + log_zone_debug(zone->name, "%s, zone is not loaded, will retry", log_operation_name(LOG_OPERATION_DS_PUSH)); + reschedule_next(zone); + return KNOT_EOK; } int timeout = conf->cache.srv_tcp_remote_io_timeout; @@ -245,9 +254,7 @@ int event_ds_push(conf_t *conf, zone_t *zone) } if (ret != KNOT_EOK) { - time_t next_push = time(NULL) + DS_PUSH_RETRY; - zone_events_schedule_at(zone, ZONE_EVENT_DS_PUSH, next_push); - zone->timers->next_ds_push = next_push; + reschedule_next(zone); } zone->timers->flags |= TIMERS_MODIFIED; diff --git a/src/knot/events/handlers/notify.c b/src/knot/events/handlers/notify.c index 86cb293600..bb09af1229 100644 --- a/src/knot/events/handlers/notify.c +++ b/src/knot/events/handlers/notify.c @@ -135,7 +135,9 @@ int event_notify(conf_t *conf, zone_t *zone) assert(zone); if (zone_contents_is_empty(zone->contents)) { - return KNOT_EEMPTYZONE; + log_zone_debug(zone->name, "%s, zone is not loaded, skipping", log_operation_name(LOG_OPERATION_NOTIFY)); + // EVENT_NOTIFY will be scheduled by zone load/refresh once that succeeds + return KNOT_EOK; } bool failed = false; From 2f30503312edf054be81c89aeb65fb9d7c74ec90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Fri, 15 May 2026 13:25:06 +0200 Subject: [PATCH 490/675] redis: fix update loading argument parsing --- src/redis/knot.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/redis/knot.c b/src/redis/knot.c index 0fe96e46a2..f9aa61d403 100644 --- a/src/redis/knot.c +++ b/src/redis/knot.c @@ -793,12 +793,12 @@ static int upd_load_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) arg_dname_t owner; if (argc > 4) { - ARG_DNAME_TXT(argv[3], owner, &origin, "record owner"); + ARG_DNAME_TXT(argv[4], owner, &origin, "record owner"); } uint16_t rtype; if (argc > 5) { - ARG_RTYPE_TXT(argv[4], rtype); + ARG_RTYPE_TXT(argv[5], rtype); } if (argc > 6) { @@ -827,12 +827,12 @@ static int upd_load_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) arg_dname_t owner; if (argc > 4) { - ARG_DNAME(argv[3], owner, "record owner"); + ARG_DNAME(argv[4], owner, "record owner"); } uint16_t rtype; if (argc > 5) { - ARG_NUM(argv[4], rtype, "record type"); + ARG_NUM(argv[5], rtype, "record type"); } if (argc > 6) { From 8a8987fbe7677c9b9c0739d911afc1295f111b59 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 15 May 2026 13:44:00 +0200 Subject: [PATCH 491/675] redis: unify optional argument conditions --- src/redis/knot.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/redis/knot.c b/src/redis/knot.c index f9aa61d403..5f09e93f6f 100644 --- a/src/redis/knot.c +++ b/src/redis/knot.c @@ -396,8 +396,8 @@ static int zone_load_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc return RedisModule_WrongArity(ctx); } - zone_load(ctx, &origin, &txn, (argc >= 4) ? &owner : NULL, - (argc >= 5) ? &rtype : NULL, mode); + zone_load(ctx, &origin, &txn, (argc > 3) ? &owner : NULL, + (argc > 4) ? &rtype : NULL, mode); return REDISMODULE_OK; } @@ -427,8 +427,8 @@ static int zone_load_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc return RedisModule_WrongArity(ctx); } - zone_load(ctx, &origin, &txn, (argc >= 4) ? &owner : NULL, - (argc >= 5) ? &rtype : NULL, DUMP_BIN); + zone_load(ctx, &origin, &txn, (argc > 3) ? &owner : NULL, + (argc > 4) ? &rtype : NULL, DUMP_BIN); return REDISMODULE_OK; } @@ -482,16 +482,16 @@ static int zone_list_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc static int zone_info_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { arg_dname_t origin; - if (argc >= 2) { + if (argc > 1) { ARG_DNAME_TXT(argv[1], origin, NULL, "zone origin"); } rdb_txn_t txn; - if (argc >= 3) { + if (argc > 2) { ARG_INST_TXT(argv[2], txn); } - zone_info(ctx, (argc >= 2) ? &origin : NULL, (argc >= 3) ? &txn : NULL); + zone_info(ctx, (argc > 1) ? &origin : NULL, (argc > 2) ? &txn : NULL); return REDISMODULE_OK; } @@ -741,8 +741,8 @@ static int upd_diff_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) return RedisModule_WrongArity(ctx); } - upd_diff(ctx, &origin, &txn, (argc >= 4) ? &owner : NULL, - (argc >= 5) ? &rtype : NULL, mode); + upd_diff(ctx, &origin, &txn, (argc > 3) ? &owner : NULL, + (argc > 4) ? &rtype : NULL, mode); return REDISMODULE_OK; } @@ -772,8 +772,8 @@ static int upd_diff_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) return RedisModule_WrongArity(ctx); } - upd_diff(ctx, &origin, &txn, (argc >= 4) ? &owner : NULL, - (argc >= 5) ? &rtype : NULL, DUMP_BIN); + upd_diff(ctx, &origin, &txn, (argc > 3) ? &owner : NULL, + (argc > 4) ? &rtype : NULL, DUMP_BIN); return REDISMODULE_OK; } @@ -805,8 +805,8 @@ static int upd_load_txt(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) return RedisModule_WrongArity(ctx); } - upd_load(ctx, &origin, &txn, serial, (argc >= 5) ? &owner : NULL, - (argc >= 6) ? &rtype : NULL, mode); + upd_load(ctx, &origin, &txn, serial, (argc > 4) ? &owner : NULL, + (argc > 5) ? &rtype : NULL, mode); return REDISMODULE_OK; } @@ -839,8 +839,8 @@ static int upd_load_bin(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) return RedisModule_WrongArity(ctx); } - upd_load(ctx, &origin, &txn, serial, (argc >= 5) ? &owner : NULL, - (argc >= 6) ? &rtype : NULL, DUMP_BIN); + upd_load(ctx, &origin, &txn, serial, (argc > 4) ? &owner : NULL, + (argc > 5) ? &rtype : NULL, DUMP_BIN); return REDISMODULE_OK; } From c87b421fa455f55e78160ddca9871dfb93ec41f6 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 12 May 2026 10:45:59 +0200 Subject: [PATCH 492/675] redis: fix allocator mismatch if Valkey is built with jemalloc on Ubuntu --- src/redis/libs.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/redis/libs.h b/src/redis/libs.h index c6ef6ea45c..de95455dbd 100644 --- a/src/redis/libs.h +++ b/src/redis/libs.h @@ -31,7 +31,14 @@ #include "libknot/rrtype/soa.h" #include "libzscanner/error.c" #include "libzscanner/functions.c" + +#define strdup RedisModule_Strdup +#define malloc RedisModule_Alloc +#define free RedisModule_Free #include "libzscanner/scanner.c.t0" +#undef strdup +#undef malloc +#undef free // Add a dummy symbol for unused but called function in rrset-dump.c. int dnssec_keytag(const dnssec_binary_t *rdata, uint16_t *keytag) From 25d51b36ec0284a07916a158ff7619900f06b371 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 16 May 2026 21:25:26 +0200 Subject: [PATCH 493/675] tests-redis: add 'make env' target for simplicity --- tests-redis/Makefile.am | 25 ++++++++++++++++++------- tests-redis/config.txt | 1 - 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/tests-redis/Makefile.am b/tests-redis/Makefile.am index a83b0ef57f..3fa20205f1 100644 --- a/tests-redis/Makefile.am +++ b/tests-redis/Makefile.am @@ -1,12 +1,23 @@ -# Useful commands: -# python3 -m venv .venv -# source .venv/bin/activate -# pip3 install -r requirements.txt -# make test +# Usage: +# make env +# make test +# make clean EXTRA_DIST = config.txt requirements.txt test.py -.PHONY: test +.PHONY: env test clean-local + +PYTHON = python3 +VENV = .venv + +env: + $(PYTHON) -m venv $(VENV) + $(VENV)/bin/pip install -r requirements.txt test: - RLTest --randomize-ports --clear-logs --parallelism 4 + $(VENV)/bin/RLTest --randomize-ports --clear-logs --parallelism 4 \ + $(if $(OSS_REDIS_PATH),--oss-redis-path $(OSS_REDIS_PATH)) \ + $(if $(NO_VALGRIND),,--use-valgrind) + +clean-local: + rm -rf $(VENV) __pycache__ logs diff --git a/tests-redis/config.txt b/tests-redis/config.txt index eed346b808..30d48ce032 100644 --- a/tests-redis/config.txt +++ b/tests-redis/config.txt @@ -1,4 +1,3 @@ --module ../src/redis/.libs/knot.so --use-aof --no-progress ---use-valgrind From 48b69e88faba9c7d185a83fdbdd0f88f51ef5e2b Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 18 May 2026 13:41:28 +0200 Subject: [PATCH 494/675] tests-redis: 'make test' depends on 'make env' --- tests-redis/Makefile.am | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests-redis/Makefile.am b/tests-redis/Makefile.am index 3fa20205f1..12c8cdd5ec 100644 --- a/tests-redis/Makefile.am +++ b/tests-redis/Makefile.am @@ -1,20 +1,22 @@ # Usage: -# make env -# make test +# make test [OSS_REDIS_PATH=/path/to/redis-server] [NO_VALGRIND=1] # make clean EXTRA_DIST = config.txt requirements.txt test.py -.PHONY: env test clean-local +.PHONY: test clean-local PYTHON = python3 VENV = .venv -env: +# Create the virtualenv only if it doesn't already exist +$(VENV): $(PYTHON) -m venv $(VENV) $(VENV)/bin/pip install -r requirements.txt -test: +env: $(VENV) + +test: env $(VENV)/bin/RLTest --randomize-ports --clear-logs --parallelism 4 \ $(if $(OSS_REDIS_PATH),--oss-redis-path $(OSS_REDIS_PATH)) \ $(if $(NO_VALGRIND),,--use-valgrind) From 378b2f742d02141af1c74fa658fc97cdd6fd7f81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 15 Oct 2025 18:56:06 +0200 Subject: [PATCH 495/675] fix some comment typos --- src/knot/catalog/catalog_db.h | 2 +- src/knot/dnssec/kasp/kasp_db.h | 2 +- src/knot/dnssec/key-events.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/knot/catalog/catalog_db.h b/src/knot/catalog/catalog_db.h index 1561185f71..3ea35e4a6a 100644 --- a/src/knot/catalog/catalog_db.h +++ b/src/knot/catalog/catalog_db.h @@ -49,7 +49,7 @@ void catalog_init(catalog_t *cat, const char *path, size_t mapsize); /*! * \brief Open the catalog LMDB, create it if not exists. * - * \param cat Catlog to be opened. + * \param cat Catalog to be opened. * * \return KNOT_E* */ diff --git a/src/knot/dnssec/kasp/kasp_db.h b/src/knot/dnssec/kasp/kasp_db.h index 1ace4314d3..983cdf28dc 100644 --- a/src/knot/dnssec/kasp/kasp_db.h +++ b/src/knot/dnssec/kasp/kasp_db.h @@ -269,7 +269,7 @@ int kasp_db_set_saved_ttls(knot_lmdb_db_t *db, const knot_dname_t *zone, * \brief Initialize KASP database according to conf, if not already. * * \param db KASP DB to be initialized. - * \param conf COnfiguration to take options from. + * \param conf Configuration to take options from. */ void kasp_db_ensure_init(knot_lmdb_db_t *db, conf_t *conf); diff --git a/src/knot/dnssec/key-events.c b/src/knot/dnssec/key-events.c index 5c7f42a3cd..688e5510c4 100644 --- a/src/knot/dnssec/key-events.c +++ b/src/knot/dnssec/key-events.c @@ -189,7 +189,7 @@ static int share_or_generate_key(kdnssec_ctx_t *ctx, kdnssec_generate_flags_t fl borrow_zone = NULL; borrow_key = NULL; if (ret != KNOT_ESEMCHECK) { - // all ok, we generated new kay and updated policy-last + // all ok, we generated new key and updated policy-last return ret; } else { // another zone updated policy-last key in the meantime From a9d423c8e7e0d7486e402ae3d2c0cacec8a37ccd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 27 Nov 2025 11:47:27 +0100 Subject: [PATCH 496/675] ctl/orphans_purge: remove an error report when there isn't a journal --- src/knot/ctl/commands.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 353fd5f025..cec9b31ea9 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1752,6 +1752,7 @@ static int orphans_purge(ctl_args_t *args) if (only_orphan || MATCH_AND_FILTER(args, CTL_FILTER_PURGE_JOURNAL)) { ret = journals_walk(&args->server->journaldb, drop_journal_if_orphan, args->server); + ret = (ret == KNOT_ENODB ? KNOT_EOK : ret); log_if_orphans_error(NULL, ret, "journal", &failed); } From 2d685ba17c7a5e619923238b6f7decd179c88401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 27 Nov 2025 12:34:00 +0100 Subject: [PATCH 497/675] ctl/orphans_purge: avoid creating an empty catalog db when purging orphans --- src/knot/ctl/commands.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index cec9b31ea9..8f6965ff63 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1684,6 +1684,10 @@ static int purge_orphan_member_cb(const knot_dname_t *member, const knot_dname_t static int catalog_orphans_sweep(server_t *server) { catalog_t *cat = &server->catalog; + if (knot_lmdb_exists(&cat->db) == KNOT_ENODB) { + return KNOT_EOK; + } + int ret2 = KNOT_EOK; int ret = catalog_begin(cat); if (ret == KNOT_EOK) { From 5eb79698d26aba231d9d093b1c7b7065038cde1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 14 Jan 2026 17:58:26 +0100 Subject: [PATCH 498/675] zone/purge: improve logging --- src/knot/zone/zone.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 48c497190f..f4c4eb8bc1 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -364,10 +364,11 @@ int selective_zone_purge(conf_t *conf, zone_t *zone, purge_flag_t params) return KNOT_ERROR; } - if ((params & PURGE_ZONE_LOG) || - (params & PURGE_ZONE_DATA) == PURGE_ZONE_DATA) { - log_zone_notice(zone->name, "zone purged"); - } + const char *msg = ((params & PURGE_ZONE_LOG) || + (params & PURGE_ZONE_DATA) == PURGE_ZONE_DATA) ? + "zone purged" : + "requested zone data purged"; + log_zone_notice(zone->name, "%s", msg); return KNOT_EOK; } From 1412b0b3bb64e1ac2a2beba4c9cbaa7719c36c82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 9 Jan 2026 11:19:29 +0100 Subject: [PATCH 499/675] conf/schema: coding style fix (ordering, white space) --- src/knot/conf/schema.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index ce697cbb27..5de332bb6f 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -46,8 +46,9 @@ #define C_DBUS_INIT_DELAY "\x0F""dbus-init-delay" #define C_DDNS_MASTER "\x0B""ddns-master" #define C_DEFAULT_TTL "\x0B""default-ttl" -#define C_DELEG_ADT "\x09""deleg-adt" -#define C_DELEG_AWARE "\x0B""deleg-aware" +#define C_DELEG_ADT "\x09""deleg-adt" +#define C_DELEG_AWARE "\x0B""deleg-aware" +#define C_DELETE_DELAY "\x0C""delete-delay" #define C_DENY "\x04""deny" #define C_DNSKEY_MGMT "\x11""dnskey-management" #define C_DNSKEY_SYNC "\x0B""dnskey-sync" @@ -82,7 +83,6 @@ #define C_JOURNAL_MAX_USAGE "\x11""journal-max-usage" #define C_KASP_DB "\x07""kasp-db" #define C_KASP_DB_MAX_SIZE "\x10""kasp-db-max-size" -#define C_DELETE_DELAY "\x0C""delete-delay" #define C_KEY "\x03""key" #define C_KEYSTORE "\x08""keystore" #define C_KEYTAG_MODULO "\x0D""keytag-modulo" From 2ac4ed09c853b75ae563231e798609f5658d0c46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 5 Feb 2026 12:11:50 +0100 Subject: [PATCH 500/675] conf/schema: coding style fix --- src/knot/conf/schema.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 24d09a774b..6bfd77c66b 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -437,7 +437,7 @@ static const yp_item_t desc_policy[] = { CONF_IO_FRLD_ZONES }, { C_ZONE_MAX_TTL, YP_TINT, YP_VINT = { 0, INT32_MAX, YP_NIL, YP_STIME }, CONF_IO_FRLD_ZONES }, - { C_KEYTAG_MODULO, YP_TSTR, YP_VSTR = { "0/1" }, YP_FNONE, { check_modulo } }, \ + { C_KEYTAG_MODULO, YP_TSTR, YP_VSTR = { "0/1" }, YP_FNONE, { check_modulo } }, { C_KSK_LIFETIME, YP_TINT, YP_VINT = { 0, UINT32_MAX, 0, YP_STIME }, CONF_IO_FRLD_ZONES }, { C_ZSK_LIFETIME, YP_TINT, YP_VINT = { 0, UINT32_MAX, DAYS(30), YP_STIME }, From afcade7adfc46403f0190fb1fd3ba2df0e7bc525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 12 Feb 2026 18:19:14 +0100 Subject: [PATCH 501/675] libknot/dnssec: coding style fix --- src/libknot/dnssec/key/key.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/libknot/dnssec/key/key.c b/src/libknot/dnssec/key/key.c index 2141ffbfb3..73dcec7233 100644 --- a/src/libknot/dnssec/key/key.c +++ b/src/libknot/dnssec/key/key.c @@ -125,8 +125,7 @@ dnssec_key_t *dnssec_key_dup(const dnssec_key_t *key) if (dnssec_key_new(&dup) != KNOT_EOK || dnssec_key_set_dname(dup, key->dname) != KNOT_EOK || - dnssec_key_set_rdata(dup, &key->rdata) != KNOT_EOK - ) { + dnssec_key_set_rdata(dup, &key->rdata) != KNOT_EOK) { dnssec_key_free(dup); return NULL; } From c8766b360d4482ba0646143c4fe0660a368e922e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 19 Jan 2026 19:34:06 +0100 Subject: [PATCH 502/675] dnssec/zone-sign: fix a typo --- src/knot/dnssec/zone-sign.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/dnssec/zone-sign.c b/src/knot/dnssec/zone-sign.c index c2464aeda8..d0382ff61b 100644 --- a/src/knot/dnssec/zone-sign.c +++ b/src/knot/dnssec/zone-sign.c @@ -916,7 +916,7 @@ bool knot_zone_sign_use_key(const zone_key_t *key, const knot_rrset_t *covered) } bool active_ksk = ((key->is_active || key->is_ksk_active_plus) && key->is_ksk); - bool active_zsk = ((key->is_active || key->is_zsk_active_plus) && key->is_zsk);; + bool active_zsk = ((key->is_active || key->is_zsk_active_plus) && key->is_zsk); // this may be a problem with offline KSK bool cds_sign_by_ksk = true; From 5570e92935555db6b9991ae972bbcf4fdd397913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 20 Jan 2026 11:27:05 +0100 Subject: [PATCH 503/675] doc/appendices: fix a letter case in EdDSA --- doc/appendices.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/appendices.rst b/doc/appendices.rst index 07163540bb..a2f2922e90 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -24,7 +24,7 @@ outcome. * - - Generate - Import - - EDDSA + - EdDSA - ECDSA - RSA - Tested From 48a12528d93c235ff974134f82e77b0cb4b22b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 20 Jan 2026 11:27:44 +0100 Subject: [PATCH 504/675] doc/appendices: for Luna HSM's, include their manufacturer name --- doc/appendices.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/appendices.rst b/doc/appendices.rst index a2f2922e90..72b370dccc 100644 --- a/doc/appendices.rst +++ b/doc/appendices.rst @@ -69,7 +69,7 @@ outcome. | 2048 | 4096 - 2025-12 - * - `Luna Cloud HSM (non-FIPS) `_ + * - `Thales Luna Cloud HSM (non-FIPS) `_ - yes - n/a - n/a @@ -79,7 +79,7 @@ outcome. | 2048 | 4096 - 2025-11 - * - `Luna Network HSM (non-FIPS) `_ + * - `Thales Luna Network HSM (non-FIPS) `_ - yes - n/a - | ed448 From 13b734fd395c4ee22eb02cf4a175e4aacf76563e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 2 Feb 2026 13:49:33 +0100 Subject: [PATCH 505/675] doc/reference: fix a typo --- doc/reference.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/reference.rst b/doc/reference.rst index c29780e5fe..aaeee90503 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -1467,7 +1467,7 @@ The PKCS #11 URI Scheme is defined in :rfc:`7512`. ksk-only -------- -Newly generated keys sre stored in this keystore only if they are KSKs or CSKs. +Newly generated keys are stored in this keystore only if they are KSKs or CSKs. Zone signing keys will be stored in subsequent keystore without this option enabled. *Default:* ``off`` From ed5b17a36890c30fe940a36c9c50821f50009f8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 10 Sep 2024 12:59:35 +0200 Subject: [PATCH 506/675] zone: define a keys purge macro --- src/knot/zone/zone.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 1e1947f879..f4b7fa7f6e 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -64,9 +64,10 @@ typedef enum { PURGE_ZONE_TIMERS = 1 << 23, /*!< Purge the zone timers. */ PURGE_ZONE_ZONEFILE = 1 << 24, /*!< Purge the zone file. */ PURGE_ZONE_JOURNAL = 1 << 25, /*!< Purge the zone journal. */ - PURGE_ZONE_KASPDB = 1 << 26, /*!< Purge KASP DB. */ - PURGE_ZONE_CATALOG = 1 << 27, /*!< Purge the catalog. */ - PURGE_ZONE_EXPIRE = 1 << 28, /*!< Expire the zone, free contents. */ + PURGE_ZONE_KEYS = 1 << 26, /*!< Purge keys and related metadata. */ + PURGE_ZONE_KASPDB = 1 << 27, /*!< Purge KASP DB. */ + PURGE_ZONE_CATALOG = 1 << 28, /*!< Purge the catalog. */ + PURGE_ZONE_EXPIRE = 1 << 29, /*!< Expire the zone, free contents. */ } purge_flag_t; /*!< All data. */ From b75d47210e8b7ed4551360f4afa3db8d636968f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 25 Nov 2025 00:10:45 +0100 Subject: [PATCH 507/675] ctl: define a keys purge filter --- src/knot/ctl/commands.h | 1 + src/utils/knotc/commands.c | 1 + 2 files changed, 2 insertions(+) diff --git a/src/knot/ctl/commands.h b/src/knot/ctl/commands.h index 0e43519273..2fdb886019 100644 --- a/src/knot/ctl/commands.h +++ b/src/knot/ctl/commands.h @@ -39,6 +39,7 @@ #define CTL_FILTER_PURGE_ZONEFILE "f" #define CTL_FILTER_PURGE_JOURNAL "j" #define CTL_FILTER_PURGE_TIMERS "t" +#define CTL_FILTER_PURGE_KEYS "y" #define CTL_FILTER_PURGE_KASPDB "k" #define CTL_FILTER_PURGE_CATALOG "c" #define CTL_FILTER_PURGE_ORPHAN "o" diff --git a/src/utils/knotc/commands.c b/src/utils/knotc/commands.c index 1835c0f957..73d9e7d80e 100644 --- a/src/utils/knotc/commands.c +++ b/src/utils/knotc/commands.c @@ -691,6 +691,7 @@ const filter_desc_t zone_purge_filters[] = { { "+zonefile", CTL_FILTER_PURGE_ZONEFILE }, { "+journal", CTL_FILTER_PURGE_JOURNAL }, { "+timers", CTL_FILTER_PURGE_TIMERS }, + { "+keys", CTL_FILTER_PURGE_KEYS }, { "+kaspdb", CTL_FILTER_PURGE_KASPDB }, { "+catalog", CTL_FILTER_PURGE_CATALOG }, { "+orphan", CTL_FILTER_PURGE_ORPHAN }, From 38f93e69df7875a0d4c2a215c5a1cc8699898a2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 25 Nov 2025 00:01:10 +0100 Subject: [PATCH 508/675] zone-keys: make key remove from keystores a separate function Add thorough keystores cleanup as an option. --- src/knot/dnssec/zone-keys.c | 32 ++++++++++++++++++++++++++++---- src/knot/dnssec/zone-keys.h | 16 ++++++++++++++++ 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 8c8abb1db8..fa495a1a9c 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -240,6 +240,32 @@ int kdnssec_share_key(kdnssec_ctx_t *ctx, const knot_dname_t *from_zone, const c return ret; } +int kdnssec_delete_from_keystores(knot_kasp_keystore_t *keystores, char *key_id, + const knot_dname_t *dname, bool thorough) +{ + int ret = KNOT_ENOENT; + bool found = false; + + for (size_t i = 0; i < keystores[0].count && (!found || thorough); i++) { + ret = dnssec_keystore_remove(keystores[i].keystore, key_id); + if (ret == KNOT_EOK) { + found = true; + } else if (ret != KNOT_ENOENT) { + const char *msg = "keystore %s, attempt to remove key %s failed (%s)"; + const char *err = knot_strerror(ret); + if (dname == NULL) { + log_warning(msg, keystores[i].name, key_id, err); + } else { + log_zone_warning(dname, msg, keystores[i].name, key_id, err); + } + + return ret; + } + } + + return found ? KNOT_EOK : ret; +} + int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr) { assert(ctx); @@ -261,10 +287,8 @@ int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr) } if (!key_still_used_in_keystore && !key_ptr->is_pub_only) { - ret = KNOT_ENOENT; - for (size_t i = 0; i < ctx->keystores[0].count && ret == KNOT_ENOENT; i++) { - ret = dnssec_keystore_remove(ctx->keystores[i].keystore, key_ptr->id); - } + ret = kdnssec_delete_from_keystores(ctx->keystores, key_ptr->id, + ctx->zone->dname, false); if (ret != KNOT_EOK) { return ret; } diff --git a/src/knot/dnssec/zone-keys.h b/src/knot/dnssec/zone-keys.h index 928f042a06..895b967151 100644 --- a/src/knot/dnssec/zone-keys.h +++ b/src/knot/dnssec/zone-keys.h @@ -102,6 +102,22 @@ int kdnssec_generate_key(kdnssec_ctx_t *ctx, kdnssec_generate_flags_t flags, */ int kdnssec_share_key(kdnssec_ctx_t *ctx, const knot_dname_t *from_zone, const char *key_id); +/*! + * \brief Remove key from keystore (keystores). + * + * Deletes the key from key storage (PKCS8dir/PKCS11). Optionally delete also redundant + * occurences of the key. + * + * \param keystores array of keystores + * \param key_id ID of the key to be removed + * \param dname zone name for error logging or NULL + * \param thorough if true, try to remove all occurences of the key in all listed keystores + * + * \return KNOT_E* + */ +int kdnssec_delete_from_keystores(knot_kasp_keystore_t *keystores, char *key_id, + const knot_dname_t *dname, bool thorough); + /*! * \brief Remove key from zone. * From 6d6451fbf61851ed432f0ac1366b7ac0e67e4df7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 25 Nov 2025 13:57:15 +0100 Subject: [PATCH 509/675] kaspdb: modify keyid_inuse() to count uses rather than just check --- src/knot/dnssec/kasp/kasp_db.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index fda2b2ff36..b194ae9e2e 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -223,23 +223,23 @@ int kasp_db_get_key_algorithm(knot_lmdb_db_t *db, const knot_dname_t *zone_name, return ret; } -static bool keyid_inuse(knot_lmdb_txn_t *txn, const char *key_id, key_params_t **params) +static size_t keyid_inuse(knot_lmdb_txn_t *txn, const char *key_id, key_params_t **params) { + size_t count = 0; uint8_t pf = KASPDBKEY_PARAMS; MDB_val prefix = { sizeof(pf), &pf }; knot_lmdb_foreach(txn, &prefix) { char *found_id = NULL; if (unmake_key_str(&txn->cur_key, &found_id) && strcmp(found_id, key_id) == 0) { + count++; if (params != NULL) { *params = txn2params(txn); } - free(found_id); - return true; } free(found_id); } - return false; + return count; } @@ -250,7 +250,7 @@ int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const knot_lmdb_begin(db, &txn, true); knot_lmdb_del_prefix(&txn, &search); if (still_used != NULL) { - *still_used = keyid_inuse(&txn, key_id, NULL); + *still_used = (keyid_inuse(&txn, key_id, NULL) > 0); } knot_lmdb_commit(&txn); free(search.mv_data); From 3637eb68387e720dfedbee8125f52428ef542d3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 25 Nov 2025 16:47:52 +0100 Subject: [PATCH 510/675] kaspdb: separate key-related classes from zone-related classes Retain backup/restore behavior. kasp_db_delete_all() doesn't delete KASPDBKEY_PARAMS records from the KASP db anymore. --- src/knot/dnssec/kasp/kasp_db.c | 37 +++++++++++++++++++++------------- src/knot/dnssec/kasp/kasp_db.h | 3 ++- tests/knot/test_kasp_db.c | 9 ++++++++- 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index b194ae9e2e..7c50e446fc 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -23,8 +23,10 @@ typedef enum { KASPDBKEY_SAVED_TTLS = 0x8, } keyclass_t; -static const keyclass_t zone_related_classes[] = { +#define NUM_KEY_CLASSES 1 // Count of DNSSEC key related classes. +static const keyclass_t ordered_classes[] = { KASPDBKEY_PARAMS, + // Key related classes above this line. KASPDBKEY_NSEC3SALT, KASPDBKEY_NSEC3TIME, KASPDBKEY_MASTERSERIAL, @@ -32,17 +34,24 @@ static const keyclass_t zone_related_classes[] = { KASPDBKEY_OFFLINE_RECORDS, KASPDBKEY_SAVED_TTLS, }; -static const size_t zone_related_classes_size = sizeof(zone_related_classes) / sizeof(*zone_related_classes); +static const size_t ordered_classes_size = sizeof(ordered_classes) / sizeof(*ordered_classes); -static const keyclass_t key_related_classes[] = { - KASPDBKEY_PARAMS, -}; -static const size_t key_related_classes_size = sizeof(key_related_classes) / sizeof(*key_related_classes); +// DNSSEC key metadata. +static const keyclass_t *key_classes = ordered_classes; +static const size_t key_classes_size = NUM_KEY_CLASSES; + +// Zone related classes (but not DNSSEC key metadata). +static const keyclass_t *zone_classes = ordered_classes + key_classes_size; +static const size_t zone_classes_size = ordered_classes_size - key_classes_size; + +// KASP related classes (including DNSSEC keys, for backup/restore). +static const keyclass_t *kasp_classes = ordered_classes; +static const size_t kasp_classes_size = ordered_classes_size; static bool is_zone_related_class(uint8_t class) { - for (size_t i = 0; i < zone_related_classes_size; i++) { - if (zone_related_classes[i] == class) { + for (size_t i = 0; i < zone_classes_size; i++) { + if (zone_classes[i] == class) { return true; } } @@ -260,11 +269,11 @@ int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const int kasp_db_delete_all(knot_lmdb_db_t *db, const knot_dname_t *zone) { - MDB_val prefix = make_key_str(KASPDBKEY_PARAMS, zone, NULL); + MDB_val prefix = make_key_str(zone_classes[0], zone, NULL); knot_lmdb_txn_t txn = { 0 }; knot_lmdb_begin(db, &txn, true); - for (size_t i = 0; i < zone_related_classes_size && prefix.mv_data != NULL; i++) { - *(uint8_t *)prefix.mv_data = zone_related_classes[i]; + for (size_t i = 0; i < zone_classes_size && prefix.mv_data != NULL; i++) { + *(uint8_t *)prefix.mv_data = zone_classes[i]; knot_lmdb_del_prefix(&txn, &prefix); } knot_lmdb_commit(&txn); @@ -600,7 +609,7 @@ static int kasp_db_backup_generic(const knot_dname_t *zone, knot_lmdb_db_t *db, prefixes[i] = make_key_str(classes[i], zone, NULL); } - if (classes == zone_related_classes) { + if (classes_size == kasp_classes_size) { // we copy all policy-last records, that doesn't harm prefixes[n_prefs++] = knot_lmdb_make_key("B", KASPDBKEY_POLICYLAST); } @@ -616,11 +625,11 @@ static int kasp_db_backup_generic(const knot_dname_t *zone, knot_lmdb_db_t *db, int kasp_db_backup(const knot_dname_t *zone, knot_lmdb_db_t *db, knot_lmdb_db_t *backup_db) { return kasp_db_backup_generic(zone, db, backup_db, - zone_related_classes, zone_related_classes_size); + kasp_classes, kasp_classes_size); } int kasp_db_backup_keys(const knot_dname_t *zone, knot_lmdb_db_t *db, knot_lmdb_db_t *backup_db) { return kasp_db_backup_generic(zone, db, backup_db, - key_related_classes, key_related_classes_size); + key_classes, key_classes_size); } diff --git a/src/knot/dnssec/kasp/kasp_db.h b/src/knot/dnssec/kasp/kasp_db.h index 983cdf28dc..b3a5ed1679 100644 --- a/src/knot/dnssec/kasp/kasp_db.h +++ b/src/knot/dnssec/kasp/kasp_db.h @@ -58,7 +58,8 @@ int kasp_db_get_key_algorithm(knot_lmdb_db_t *db, const knot_dname_t *zone_name, int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const char *key_id, bool *still_used); /*! - * \brief Remove all zone's keys from DB, including nsec3param + * \brief Remove all zone's keys from DB, including nsec3param, but exluding keys related to + * zone's DNSSEC keys (i.e. DNSSEC keys metadata). * * \param db KASP db * \param zone_name zone to be removed diff --git a/tests/knot/test_kasp_db.c b/tests/knot/test_kasp_db.c index 262b39c159..e0f7411c15 100644 --- a/tests/knot/test_kasp_db.c +++ b/tests/knot/test_kasp_db.c @@ -148,7 +148,14 @@ int main(int argc, char *argv[]) ret = kasp_db_delete_all(db, zone2); is_int(KNOT_EOK, ret, "kasp_db: delete all"); ret = kasp_db_list_keys(db, zone2, &l); - is_int(KNOT_ENOENT, ret, "kasp_db: delete all deleted keys"); + is_int(KNOT_EOK, ret, "kasp_db: do not delete keys"); + is_int(2, list_size(&l), "kasp_db: list keys reports two keys 2"); + params = ((ptrnode_t *)TAIL(l))->d; + ok(params_eq(params, ¶ms2), "kasp_db: key params equal 3"); + free_params + params = ((ptrnode_t *)HEAD(l))->d; + free_params + ptrlist_deep_free(&l, NULL); ret = kasp_db_load_nsec3salt(db, zone2, &salt2, &time); is_int(KNOT_ENOENT, ret, "kasp_db: delete all removed nsec3salt"); dnssec_binary_free(&salt2); From 75d5d48bdf98431e2b91430d2f844ffb7f80cda9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 2 Dec 2025 16:10:19 +0100 Subject: [PATCH 511/675] dnssec: when initializing keystore, make memory allocation optional --- src/knot/dnssec/kasp/kasp_zone.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index d39e1b6d35..ef89a0b97d 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -315,25 +315,34 @@ void free_key_params(key_params_t *parm) } } -void zone_deinit_keystore(knot_kasp_keystore_t **keystores) +static void _zone_deinit_keystore(knot_kasp_keystore_t **keystores, bool deallocate) { if (keystores != NULL && *keystores != NULL) { for (size_t i = 0; i < (*keystores)[0].count; i++) { dnssec_keystore_deinit((*keystores)[i].keystore); } - free(*keystores); - *keystores = NULL; + if (deallocate) { + free(*keystores); + *keystores = NULL; + } } } +void zone_deinit_keystore(knot_kasp_keystore_t **keystores) +{ + _zone_deinit_keystore(keystores, true); +} + int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore_id, knot_kasp_keystore_t **keystores) { - if (keystores == NULL || *keystores != NULL || + if (keystores == NULL || (bool)(policy_id == NULL) == (bool)(keystore_id == NULL)) { return KNOT_EINVAL; } + bool allocate = (*keystores == NULL); + char *zone_path = conf_db(conf, C_KASP_DB); if (zone_path == NULL) { return KNOT_ENOMEM; @@ -351,10 +360,12 @@ int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore } size_t ks_count = conf_val_count(keystore_id); - *keystores = calloc(ks_count, sizeof(**keystores)); - if (*keystores == NULL) { - free(zone_path); - return KNOT_ENOMEM; + if (allocate) { + *keystores = calloc(ks_count, sizeof(**keystores)); + if (*keystores == NULL) { + free(zone_path); + return KNOT_ENOMEM; + } } int ret = KNOT_EOK; @@ -380,7 +391,7 @@ int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore } if (ret != KNOT_EOK) { - zone_deinit_keystore(keystores); + _zone_deinit_keystore(keystores, allocate); } free(zone_path); From 68d6595a3fd8b7f95235b5072f421115dcf2158c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 4 Dec 2025 11:06:14 +0100 Subject: [PATCH 512/675] dnssec: initialize all keystores for orphan keys purging --- src/knot/dnssec/kasp/kasp_zone.c | 57 +++++++++++++++++++++++++++++--- src/knot/dnssec/kasp/kasp_zone.h | 7 ++++ 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index ef89a0b97d..1976577070 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -3,6 +3,7 @@ * For more information, see */ +#include "knot/common/log.h" #include "knot/dnssec/kasp/kasp_zone.h" #include "knot/dnssec/kasp/keystore.h" #include "knot/dnssec/zone-keys.h" @@ -336,8 +337,7 @@ void zone_deinit_keystore(knot_kasp_keystore_t **keystores) int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore_id, knot_kasp_keystore_t **keystores) { - if (keystores == NULL || - (bool)(policy_id == NULL) == (bool)(keystore_id == NULL)) { + if (keystores == NULL) { return KNOT_EINVAL; } @@ -350,9 +350,13 @@ int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore conf_val_t keystore_val; if (keystore_id == NULL) { - conf_id_fix_default(policy_id); - - keystore_val = conf_id_get(conf, C_POLICY, C_KEYSTORE, policy_id); + if (policy_id != NULL) { + conf_id_fix_default(policy_id); + keystore_val = conf_id_get(conf, C_POLICY, C_KEYSTORE, policy_id); + } else { + uint8_t empty = 0; + keystore_val = conf_rawid_get(conf, C_POLICY, C_KEYSTORE, &empty, 0); + } conf_id_fix_default(&keystore_val); keystore_id = &keystore_val; } else { @@ -398,6 +402,49 @@ int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore return ret; } +int init_all_keystores(conf_t *conf, knot_kasp_keystore_t **keystores) +{ + assert(keystores != NULL); + assert(*keystores == NULL); + + // Allocate an array (also for the default keystore). + size_t count = conf_id_count(conf, C_KEYSTORE); + *keystores = calloc(1 + count, sizeof(**keystores)); + if (*keystores == NULL) { + return KNOT_ENOMEM; + } + + knot_kasp_keystore_t *ks = *keystores; + + // Initialize the default keystore. + int ret = zone_init_keystore(conf, NULL, NULL, &ks); + if (ret != KNOT_EOK) { + log_error("failed to initialize default keystore (%s)", knot_strerror(ret)); + deinit_all_keystores(keystores); + return ret; + } + assert((*keystores)[0].count == 1); + ks++; + + // Initialize configured keystores. + for (conf_iter_t iter = conf_iter(conf, C_KEYSTORE); + iter.code == KNOT_EOK; conf_iter_next(conf, &iter)) { + conf_val_t id = conf_iter_id(conf, &iter); + ret = zone_init_keystore(conf, NULL, &id, &ks); + if (ret != KNOT_EOK) { + log_error("failed to initialize keystore %s (%s)", + conf_str(&id), knot_strerror(ret)); + deinit_all_keystores(keystores); + return ret; + } + (*keystores)[0].count++; + ks++; + } + assert((*keystores)[0].count == 1 + count); + + return ret; +} + int kasp_zone_keys_from_rr(knot_kasp_zone_t *zone, const knot_rdataset_t *zone_dnskey, bool policy_single_type_signing, diff --git a/src/knot/dnssec/kasp/kasp_zone.h b/src/knot/dnssec/kasp/kasp_zone.h index 64e554c316..1c65d2e042 100644 --- a/src/knot/dnssec/kasp/kasp_zone.h +++ b/src/knot/dnssec/kasp/kasp_zone.h @@ -41,6 +41,13 @@ void zone_deinit_keystore(knot_kasp_keystore_t **keystores); int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore_id, knot_kasp_keystore_t **keystores); +inline static void deinit_all_keystores(knot_kasp_keystore_t **keystores) +{ + zone_deinit_keystore(keystores); +} + +int init_all_keystores(conf_t *conf, knot_kasp_keystore_t **keystores); + int kasp_zone_keys_from_rr(knot_kasp_zone_t *zone, const knot_rdataset_t *zone_dnskey, bool policy_single_type_signing, From e5b5acd19e9d148ddf482008dc97bd43c59f7237 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 30 Jan 2026 18:10:57 +0100 Subject: [PATCH 513/675] libknot/dnssec/keystore: properly detect GnuTLS analogue of KNOT_ENOENT WARNING: It's still to be verified if the original (r == 0) really equals to KNOT_ENOENT. --- src/libknot/dnssec/keystore/pkcs11.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index 55ae985f0b..be6a5d689f 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -305,10 +305,10 @@ static int pkcs11_remove_key(void *_ctx, const char *id) } r = gnutls_pkcs11_delete_url(url, GNUTLS_PKCS11_OBJ_FLAG_LOGIN); - if (r < 0) { - return KNOT_ERROR; - } else if (r == 0) { + if (r == 0 || r == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) { return KNOT_ENOENT; + } else if (r < 0) { + return KNOT_ERROR; } return KNOT_EOK; From bcf6b9284593a025117cb2a0e0d57eea8a903bc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 11 Feb 2026 14:56:21 +0100 Subject: [PATCH 514/675] lmdb: add one swappable database cursor to Knot LMDB transaction --- src/knot/journal/knot_lmdb.c | 21 +++++++++++++++++++++ src/knot/journal/knot_lmdb.h | 13 ++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/knot/journal/knot_lmdb.c b/src/knot/journal/knot_lmdb.c index 73724ab657..8f0e498c5c 100644 --- a/src/knot/journal/knot_lmdb.c +++ b/src/knot/journal/knot_lmdb.c @@ -289,6 +289,11 @@ void knot_lmdb_abort(knot_lmdb_txn_t *txn) mdb_cursor_close(txn->cursor); txn->cursor = NULL; } + if (txn->cursor_st != NULL) { + mdb_cursor_close(txn->cursor_st); + txn->cursor_st = NULL; + } + mdb_txn_abort(txn->txn); txn->opened = false; } @@ -311,10 +316,16 @@ void knot_lmdb_commit(knot_lmdb_txn_t *txn) if (!txn_semcheck(txn)) { return; } + if (txn->cursor != NULL) { mdb_cursor_close(txn->cursor); txn->cursor = NULL; } + if (txn->cursor_st != NULL) { + mdb_cursor_close(txn->cursor_st); + txn->cursor_st = NULL; + } + txn->ret = mdb_txn_commit(txn->txn); err_to_knot(&txn->ret); txn->opened = false; @@ -355,6 +366,16 @@ static bool curget(knot_lmdb_txn_t *txn, MDB_cursor_op op) return (txn->ret == KNOT_EOK); } +void knot_lmdb_cursor_swap(knot_lmdb_txn_t *txn) +{ + MDB_cursor *tmp = txn->cursor; + txn->cursor = txn->cursor_st; + txn->cursor_st = tmp; + if (txn->cursor != NULL) { + (void)curget(txn, MDB_GET_CURRENT); + } +} + static int mdb_val_clone(const MDB_val *orig, MDB_val *clone) { clone->mv_data = malloc(orig->mv_size); diff --git a/src/knot/journal/knot_lmdb.h b/src/knot/journal/knot_lmdb.h index 7c4f65557c..ed0482a416 100644 --- a/src/knot/journal/knot_lmdb.h +++ b/src/knot/journal/knot_lmdb.h @@ -31,7 +31,8 @@ typedef struct knot_lmdb_db { typedef struct { MDB_txn *txn; - MDB_cursor *cursor; + MDB_cursor *cursor; // Active cursor. + MDB_cursor *cursor_st; // Stored cursor. MDB_val cur_key; MDB_val cur_val; @@ -178,6 +179,16 @@ void knot_lmdb_abort(knot_lmdb_txn_t *txn); */ void knot_lmdb_commit(knot_lmdb_txn_t *txn); +/*! + * \brief Swap two internal cursors in a transaction. + * + * \param txn Transaction in which cursors will be swapped. + * + * \note Both cursors retain their values. + * \note txn->cur_key and txn->cur_val are updated to reflect the new active cursor. + */ +void knot_lmdb_cursor_swap(knot_lmdb_txn_t *txn); + /*! * \brief Find a key in database. The matched key will be in txn->cur_key and its value in txn->cur_val. * From 8e391b0f1cebed9452d2e30dc6a0230b3ddc3dd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 25 Nov 2025 16:59:35 +0100 Subject: [PATCH 515/675] kaspdb: implement keys purge and orphaned keys sweep --- src/knot/dnssec/kasp/kasp_db.c | 114 +++++++++++++++++++++++++++++++++ src/knot/dnssec/kasp/kasp_db.h | 23 +++++++ 2 files changed, 137 insertions(+) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 7c50e446fc..630b49295b 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -11,6 +11,7 @@ #include "contrib/strtonum.h" #include "contrib/wire_ctx.h" #include "knot/dnssec/key_records.h" +#include "knot/dnssec/zone-keys.h" typedef enum { KASPDBKEY_PARAMS = 0x1, @@ -63,6 +64,11 @@ static bool is_zone_related(const MDB_val *key) return is_zone_related_class(*(uint8_t *)key->mv_data); } +static bool is_key_related(const MDB_val *key) +{ + return (*(uint8_t *)key->mv_data == KASPDBKEY_PARAMS); +} + static MDB_val make_key_str(keyclass_t kclass, const knot_dname_t *dname, const char *str) { switch (kclass) { @@ -266,6 +272,65 @@ int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const return txn.ret; } +int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, bool orphan, bool best) +{ + int ret; + knot_kasp_keystore_t *keystores = NULL; + kdnssec_ctx_t ctx = { 0 }; + + if (orphan) { + ret = init_all_keystores(conf(), &keystores); + } else { + ret = kdnssec_ctx_init(conf(), &ctx, zone_name, db, NULL); + keystores = ctx.keystores; + } + if (ret != KNOT_EOK) { + return ret; + } + + MDB_val prefix = make_key_str(KASPDBKEY_PARAMS, zone_name, NULL); + knot_lmdb_txn_t txn = { 0 }; + knot_lmdb_begin(db, &txn, true); + knot_lmdb_foreach(&txn, &prefix) { + char *key_id = NULL; + if (!unmake_key_str(&txn.cur_key, &key_id)) { + continue; + } + + knot_lmdb_cursor_swap(&txn); + size_t count = keyid_inuse(&txn, key_id, NULL); + knot_lmdb_cursor_swap(&txn); // Restore the regular cursor. + + assert(count > 0); + if (count == 1) { + ret = kdnssec_delete_from_keystores(keystores, key_id, + zone_name, true); + ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; + if (ret != KNOT_EOK) { + // Note: it isn't sure that there still is a key to delete. + free(key_id); + if (best) { + continue; + } else { + break; + } + } + } + knot_lmdb_del_cur(&txn); + free(key_id); + } + + knot_lmdb_commit(&txn); + free(prefix.mv_data); + + if (orphan) { + deinit_all_keystores(&keystores); + } else { + kdnssec_ctx_deinit(&ctx); + } + + return (ret == KNOT_EOK) ? txn.ret : ret; +} int kasp_db_delete_all(knot_lmdb_db_t *db, const knot_dname_t *zone) { @@ -302,6 +367,55 @@ int kasp_db_sweep(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) return txn.ret; } +int kasp_db_sweep_keys(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) +{ + if (knot_lmdb_exists(db) == KNOT_ENODB) { + return KNOT_EOK; + } + int ret = knot_lmdb_open(db); + if (ret != KNOT_EOK) { + return ret; + } + + knot_kasp_keystore_t *keystores = NULL; + ret = init_all_keystores(conf(), &keystores); + if (ret != KNOT_EOK) { + return ret; + } + + knot_lmdb_txn_t txn = { 0 }; + knot_lmdb_begin(db, &txn, true); + knot_lmdb_forwhole(&txn) { + if (!is_key_related(&txn.cur_key) || + keep_zone((const knot_dname_t *)txn.cur_key.mv_data + 1, cb_data)) { + continue; + } + char *key_id = NULL; + if (unmake_key_str(&txn.cur_key, &key_id)) { + knot_lmdb_cursor_swap(&txn); + size_t count = keyid_inuse(&txn, key_id, NULL); + knot_lmdb_cursor_swap(&txn); // Restore the regular cursor. + + assert(count > 0); + if (count == 1) { + ret = kdnssec_delete_from_keystores(keystores, key_id, NULL, true); + ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; + if (ret != KNOT_EOK) { + // Note: it isn't sure that there still is a key to delete. + free(key_id); + break; + } + } + } + knot_lmdb_del_cur(&txn); + free(key_id); + } + + knot_lmdb_commit(&txn); + deinit_all_keystores(&keystores); + return (ret == KNOT_EOK) ? txn.ret : ret; +} + int kasp_db_list_zones(knot_lmdb_db_t *db, list_t *zones) { if (knot_lmdb_exists(db) == KNOT_ENODB) { diff --git a/src/knot/dnssec/kasp/kasp_db.h b/src/knot/dnssec/kasp/kasp_db.h index b3a5ed1679..301d93582a 100644 --- a/src/knot/dnssec/kasp/kasp_db.h +++ b/src/knot/dnssec/kasp/kasp_db.h @@ -57,6 +57,18 @@ int kasp_db_get_key_algorithm(knot_lmdb_db_t *db, const knot_dname_t *zone_name, */ int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const char *key_id, bool *still_used); +/*! + * \brief Remove all keys from zone. Delete them if no zone has them anymore. + * + * \param db KASP db + * \param zone_name zone to remove from + * \param orphan if true, remove keys of a non-existent zone (orphans) + * \param best continue with other keys even if one key fails + * + * \return KNOT_E* + */ +int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, bool orphan, bool best); + /*! * \brief Remove all zone's keys from DB, including nsec3param, but exluding keys related to * zone's DNSSEC keys (i.e. DNSSEC keys metadata). @@ -79,6 +91,17 @@ int kasp_db_delete_all(knot_lmdb_db_t *db, const knot_dname_t *zone_name); */ int kasp_db_sweep(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data); +/*! + * \brief Selectively delete keys and their related data from the database. + * + * \param db KASP database. + * \param keep_zone Filtering callback. + * \param cb_data Data passed to callback function. + * + * \return KNOT_E* + */ +int kasp_db_sweep_keys(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data); + /*! * \brief List all zones that have at least one key in KASP db. * From f0cc1706e2c605ad36d7d5e55df5de2e458f6237 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 25 Nov 2025 16:59:51 +0100 Subject: [PATCH 516/675] purge: start using keys purge --- doc/man_knotc.rst | 13 +++++++------ src/knot/ctl/commands.c | 21 +++++++++++++++++++-- src/knot/zone/zone.c | 10 ++++++++++ src/knot/zone/zone.h | 4 ++-- tests-extra/tests/dnssec/shared_ksk/test.py | 2 +- 5 files changed, 39 insertions(+), 11 deletions(-) diff --git a/doc/man_knotc.rst b/doc/man_knotc.rst index 6b40152211..152df0ee90 100644 --- a/doc/man_knotc.rst +++ b/doc/man_knotc.rst @@ -297,12 +297,13 @@ Actions **zone-purge** *zone*... [**+orphan**] [*filter*...] Purge zone data, zone file, journal, timers, and/or KASP data of specified zones. Available filters are **+expire**, **+zonefile**, **+journal**, **+timers**, - **+kaspdb**, and **+catalog**. If no filter is specified, all filters are enabled. - If the zone is no longer configured, add **+orphan** parameter (zone file cannot - be purged in this case). When purging orphans, always check the server log for - possible errors. For proper operation, it's necessary to prevent ongoing changes - to the zone and triggering of zone related events during purge; use of - **zone-freeze** is advisable. This command always requires the force option. (#) + **+keys**, **+kaspdb**, and **+catalog**. If no filter is specified, all filters + are enabled, except for **+keys**, which must be listed explicitly. If the zone is + no longer configured, add **+orphan** parameter (zone file cannot be purged in this + case). When purging orphans, always check the server log for possible errors. For proper + operation, it's necessary to prevent ongoing changes to the zone and triggering of zone + related events during purge; use of **zone-freeze** is advisable. This command always + requires the force option. (#) .. _knotc_zone-stats: diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 8f6965ff63..179a4f6106 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1660,8 +1660,8 @@ static int purge_orphan_member_cb(const knot_dname_t *member, const knot_dname_t orphan->server = server; const purge_flag_t params = - PURGE_ZONE_TIMERS | PURGE_ZONE_JOURNAL | PURGE_ZONE_KASPDB | - PURGE_ZONE_BEST | PURGE_ZONE_LOG; + PURGE_ZONE_TIMERS | PURGE_ZONE_JOURNAL | PURGE_ZONE_KEYS | + PURGE_ZONE_KASPDB | PURGE_ZONE_BEST | PURGE_ZONE_LOG; int ret = selective_zone_purge(conf(), orphan, params); free(orphan); @@ -1745,6 +1745,13 @@ static int orphans_purge(ctl_args_t *args) bool failed = false; if (args->data[KNOT_CTL_IDX_ZONE] == NULL) { + // Purge keys. (It needs to be requested explicitly.) + if (MATCH_AND_FILTER(args, CTL_FILTER_PURGE_KEYS)) { + ret = kasp_db_sweep_keys(&args->server->kaspdb, + zone_exists, args->server->zone_db); + log_if_orphans_error(NULL, ret, "keys", &failed); + } + // Purge KASP DB. if (only_orphan || MATCH_AND_FILTER(args, CTL_FILTER_PURGE_KASPDB)) { ret = kasp_db_sweep(&args->server->kaspdb, @@ -1792,6 +1799,14 @@ static int orphans_purge(ctl_args_t *args) knot_dname_to_lower(zone_name); if (!zone_exists(zone_name, args->server->zone_db)) { + // Purge keys. (It needs to be requested explicitly.) + if (MATCH_AND_FILTER(args, CTL_FILTER_PURGE_KEYS)) { + if (knot_lmdb_open(&args->server->kaspdb) == KNOT_EOK) { + ret = kasp_db_delete_keys(&args->server->kaspdb, zone_name, true, false); + log_if_orphans_error(zone_name, ret, "keys", &failed); + } + } + // Purge KASP DB. if (only_orphan || MATCH_AND_FILTER(args, CTL_FILTER_PURGE_KASPDB)) { if (knot_lmdb_open(&args->server->kaspdb) == KNOT_EOK) { @@ -1852,6 +1867,8 @@ static int zone_purge(zone_t *zone, ctl_args_t *args) MATCH_OR_FILTER(args, CTL_FILTER_PURGE_KASPDB) * PURGE_ZONE_KASPDB | MATCH_OR_FILTER(args, CTL_FILTER_PURGE_CATALOG) * PURGE_ZONE_CATALOG | MATCH_OR_FILTER(args, CTL_FILTER_PURGE_EXPIRE) * PURGE_ZONE_EXPIRE | + // Keys purge must be requested explicitly. + MATCH_AND_FILTER(args, CTL_FILTER_PURGE_KEYS) * PURGE_ZONE_KEYS | PURGE_ZONE_NOSYNC; // Purge even zonefiles with disabled syncing. zone_set_flag(zone, (zone_flag_t)params); diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index f4c4eb8bc1..a029a09542 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -345,6 +345,16 @@ int selective_zone_purge(conf_t *conf, zone_t *zone, purge_flag_t params) RETURN_IF_FAILED("journal", KNOT_ENOENT); } + // Purge keys and related metadata. + if (params & PURGE_ZONE_KEYS) { + ret = knot_lmdb_open(zone_kaspdb(zone)); + if (ret == KNOT_EOK) { + ret = kasp_db_delete_keys(zone_kaspdb(zone), zone->name, + false, !exit_immediately); + } + RETURN_IF_FAILED("keys", KNOT_ENOENT); + } + // Purge KASP DB. if (params & PURGE_ZONE_KASPDB) { ret = knot_lmdb_open(zone_kaspdb(zone)); diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index f4b7fa7f6e..15f3d89d8e 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -74,8 +74,8 @@ typedef enum { #define PURGE_ZONE_DATA (PURGE_ZONE_TIMERS | PURGE_ZONE_ZONEFILE | PURGE_ZONE_JOURNAL | \ PURGE_ZONE_KASPDB | PURGE_ZONE_CATALOG) -/*!< Standard purge (respect C_ZONEFILE_SYNC param). */ -#define PURGE_ZONE_ALL (PURGE_ZONE_DATA | PURGE_ZONE_BEST | PURGE_ZONE_LOG) +/*!< Standard purge (including keys; respect C_ZONEFILE_SYNC param). */ +#define PURGE_ZONE_ALL (PURGE_ZONE_DATA | PURGE_ZONE_KEYS | PURGE_ZONE_BEST | PURGE_ZONE_LOG) /*!< All purge-related flags. */ #define PURGE_ZONE_FLAGS (PURGE_ZONE_ALL | PURGE_ZONE_NOSYNC | PURGE_ZONE_EXPIRE) diff --git a/tests-extra/tests/dnssec/shared_ksk/test.py b/tests-extra/tests/dnssec/shared_ksk/test.py index 07fb5b8720..6bc930508e 100644 --- a/tests-extra/tests/dnssec/shared_ksk/test.py +++ b/tests-extra/tests/dnssec/shared_ksk/test.py @@ -61,7 +61,7 @@ def check_ksks(server, zones, refzone): # now purge zones keys in order to create dangling policy_last for z in zones0: - knot.ctl("zone-purge -f +kaspdb " + z.name) + knot.ctl("zone-purge -f +keys " + z.name) zones_add2 = t.zone_rnd(5, dnssec=False, records=10) add_shared(t, knot, zones_add2, zones0[0]) From 5e0e52ba147c0d9ccffca8f647d99c26cd2d9695 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 8 Dec 2025 20:11:23 +0100 Subject: [PATCH 517/675] kaspdb: add a "trash bin" class for unused DNSSEC keys --- src/knot/dnssec/kasp/kasp_db.c | 59 ++++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 630b49295b..5c47bea04d 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -22,12 +22,17 @@ typedef enum { KASPDBKEY_LASTSIGNEDSERIAL = 0x6, KASPDBKEY_OFFLINE_RECORDS = 0x7, KASPDBKEY_SAVED_TTLS = 0x8, + KASPDBKEY_TRASH = 0xf1, } keyclass_t; -#define NUM_KEY_CLASSES 1 // Count of DNSSEC key related classes. +#define NUM_TRASH_CLASSES 1 // Count of key trash classes. +#define NUM_KEY_CLASSES 1 // Count of DNSSEC key related classes. static const keyclass_t ordered_classes[] = { + // Trash classes. + KASPDBKEY_TRASH, + // Key related classes. KASPDBKEY_PARAMS, - // Key related classes above this line. + // Zone related classes. KASPDBKEY_NSEC3SALT, KASPDBKEY_NSEC3TIME, KASPDBKEY_MASTERSERIAL, @@ -38,21 +43,21 @@ static const keyclass_t ordered_classes[] = { static const size_t ordered_classes_size = sizeof(ordered_classes) / sizeof(*ordered_classes); // DNSSEC key metadata. -static const keyclass_t *key_classes = ordered_classes; +static const keyclass_t *key_classes = ordered_classes + NUM_TRASH_CLASSES; static const size_t key_classes_size = NUM_KEY_CLASSES; // Zone related classes (but not DNSSEC key metadata). -static const keyclass_t *zone_classes = ordered_classes + key_classes_size; -static const size_t zone_classes_size = ordered_classes_size - key_classes_size; +static const keyclass_t *zone_classes = ordered_classes + NUM_TRASH_CLASSES + NUM_KEY_CLASSES; +static const size_t zone_classes_size = ordered_classes_size - NUM_TRASH_CLASSES - NUM_KEY_CLASSES; // KASP related classes (including DNSSEC keys, for backup/restore). -static const keyclass_t *kasp_classes = ordered_classes; -static const size_t kasp_classes_size = ordered_classes_size; +static const keyclass_t *kasp_classes = ordered_classes + NUM_TRASH_CLASSES; +static const size_t kasp_classes_size = ordered_classes_size - NUM_TRASH_CLASSES; -static bool is_zone_related_class(uint8_t class) +static bool is_related_class(const keyclass_t* classes, const size_t classes_size, uint8_t class) { - for (size_t i = 0; i < zone_classes_size; i++) { - if (zone_classes[i] == class) { + for (size_t i = 0; i < classes_size; i++) { + if (classes[i] == class) { return true; } } @@ -61,7 +66,7 @@ static bool is_zone_related_class(uint8_t class) static bool is_zone_related(const MDB_val *key) { - return is_zone_related_class(*(uint8_t *)key->mv_data); + return is_related_class(zone_classes, zone_classes_size, *(uint8_t *)key->mv_data); } static bool is_key_related(const MDB_val *key) @@ -69,6 +74,11 @@ static bool is_key_related(const MDB_val *key) return (*(uint8_t *)key->mv_data == KASPDBKEY_PARAMS); } +static bool is_trash_related(const MDB_val *key) +{ + return (*(uint8_t *)key->mv_data == KASPDBKEY_TRASH); +} + static MDB_val make_key_str(keyclass_t kclass, const knot_dname_t *dname, const char *str) { switch (kclass) { @@ -90,6 +100,13 @@ static MDB_val make_key_str(keyclass_t kclass, const knot_dname_t *dname, const } else { return knot_lmdb_make_key("BNS", (int)kclass, dname, str); } + case KASPDBKEY_TRASH: + assert(str != NULL); + if (dname == NULL) { + return knot_lmdb_make_key("BS", (int)kclass, str); + } else { + return knot_lmdb_make_key("BSN", (int)kclass, str, dname); + } default: assert(0); MDB_val empty = { 0 }; @@ -109,12 +126,19 @@ static bool unmake_key_str(const MDB_val *keyv, char **str) uint8_t kclass; const knot_dname_t *dname; const char *s; - return (knot_lmdb_unmake_key(keyv->mv_data, keyv->mv_size, "BNS", &kclass, &dname, &s) && - ((*str = strdup(s)) != NULL)); + + bool b = (*(uint8_t *)keyv->mv_data == KASPDBKEY_TRASH) ? + knot_lmdb_unmake_key(keyv->mv_data, keyv->mv_size, "BSN", + &kclass, &s, &dname) : + knot_lmdb_unmake_key(keyv->mv_data, keyv->mv_size, "BNS", + &kclass, &dname, &s); + + return b && ((*str = strdup(s)) != NULL); } static bool unmake_key_time(const MDB_val *keyv, knot_time_t *time) { + assert(*(uint8_t *)keyv->mv_data != KASPDBKEY_TRASH); uint8_t kclass; const knot_dname_t *dname; const char *s; @@ -386,8 +410,9 @@ int kasp_db_sweep_keys(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) knot_lmdb_txn_t txn = { 0 }; knot_lmdb_begin(db, &txn, true); knot_lmdb_forwhole(&txn) { - if (!is_key_related(&txn.cur_key) || - keep_zone((const knot_dname_t *)txn.cur_key.mv_data + 1, cb_data)) { + if (!is_trash_related(&txn.cur_key) && + (!is_key_related(&txn.cur_key) || + keep_zone((const knot_dname_t *)txn.cur_key.mv_data + 1, cb_data))) { continue; } char *key_id = NULL; @@ -396,8 +421,8 @@ int kasp_db_sweep_keys(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) size_t count = keyid_inuse(&txn, key_id, NULL); knot_lmdb_cursor_swap(&txn); // Restore the regular cursor. - assert(count > 0); - if (count == 1) { + assert(count > 0 || is_trash_related(&txn.cur_key)); + if (count < 2) { ret = kdnssec_delete_from_keystores(keystores, key_id, NULL, true); ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; if (ret != KNOT_EOK) { From 250454ef071eab8f30ee87a2c4ab2a1f3bf2cf54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 22 Dec 2025 14:06:48 +0100 Subject: [PATCH 518/675] kaspdb: make flags serialization/deserialization independent functions --- src/knot/dnssec/kasp/kasp_db.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 5c47bea04d..92f3ef84d6 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -146,7 +146,7 @@ static bool unmake_key_time(const MDB_val *keyv, knot_time_t *time) str_to_u64(s, time) == KNOT_EOK); } -static MDB_val params_serialize(const key_params_t *params) +static uint8_t flags_serialize(const key_params_t *params) { uint8_t flags = 0x02; flags |= (params->is_ksk ? 0x01 : 0); @@ -154,6 +154,23 @@ static MDB_val params_serialize(const key_params_t *params) flags |= (params->is_csk ? 0x08 : 0); flags |= (params->is_for_later ? 0x10 : 0); + return flags; +} + +static bool flags_deserialize(key_params_t *params, uint8_t flags) +{ + params->is_ksk = ((flags & 0x01) ? true : false); + params->is_pub_only = ((flags & 0x04) ? true : false); + params->is_csk = ((flags & 0x08) ? true : false); + params->is_for_later = ((flags & 0x10) ? true : false); + + return (flags & 0x02); +} + +static MDB_val params_serialize(const key_params_t *params) +{ + uint8_t flags = flags_serialize(params); + return knot_lmdb_make_key("LLHBBLLLLLLLLLDL", (uint64_t)params->public_key.size, (uint64_t)sizeof(params->timing.revoke), params->keytag, params->algorithm, flags, params->timing.created, params->timing.pre_active, params->timing.publish, @@ -184,10 +201,7 @@ static bool params_deserialize(const MDB_val *val, key_params_t *params) params->public_key.data, (size_t)keylen)) { params->public_key.size = keylen; - params->is_ksk = ((flags & 0x01) ? true : false); - params->is_pub_only = ((flags & 0x04) ? true : false); - params->is_csk = ((flags & 0x08) ? true : false); - params->is_for_later = ((flags & 0x10) ? true : false); + bool flags_ok = flags_deserialize(params, flags); if (future > 0) { if (future < sizeof(params->timing.revoke)) { @@ -199,7 +213,7 @@ static bool params_deserialize(const MDB_val *val, key_params_t *params) params->timing.revoke = knot_wire_read_u64(val->mv_data + val->mv_size - future); } - if ((flags & 0x02) && (params->is_ksk || !params->is_csk)) { + if (flags_ok && (params->is_ksk || !params->is_csk)) { return true; } } From c8200bf62a6e7f1b6d8098a3021f149585cca77c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 8 Dec 2025 23:34:12 +0100 Subject: [PATCH 519/675] dnssec: implement a "trash bin" for unused DNSSEC keys --- src/knot/ctl/commands.c | 4 ++- src/knot/dnssec/kasp/kasp_db.c | 64 +++++++++++++++++++++++++++------- src/knot/dnssec/kasp/kasp_db.h | 6 ++-- src/knot/journal/knot_lmdb.c | 13 +++++++ src/knot/journal/knot_lmdb.h | 11 ++++++ src/knot/zone/zone.c | 3 +- src/knot/zone/zone.h | 3 +- 7 files changed, 86 insertions(+), 18 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 179a4f6106..34efe98b58 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1802,7 +1802,8 @@ static int orphans_purge(ctl_args_t *args) // Purge keys. (It needs to be requested explicitly.) if (MATCH_AND_FILTER(args, CTL_FILTER_PURGE_KEYS)) { if (knot_lmdb_open(&args->server->kaspdb) == KNOT_EOK) { - ret = kasp_db_delete_keys(&args->server->kaspdb, zone_name, true, false); + ret = kasp_db_delete_keys(&args->server->kaspdb, zone_name, + true, false, false); log_if_orphans_error(zone_name, ret, "keys", &failed); } } @@ -1869,6 +1870,7 @@ static int zone_purge(zone_t *zone, ctl_args_t *args) MATCH_OR_FILTER(args, CTL_FILTER_PURGE_EXPIRE) * PURGE_ZONE_EXPIRE | // Keys purge must be requested explicitly. MATCH_AND_FILTER(args, CTL_FILTER_PURGE_KEYS) * PURGE_ZONE_KEYS | + PURGE_ZONE_TRASH | PURGE_ZONE_NOSYNC; // Purge even zonefiles with disabled syncing. zone_set_flag(zone, (zone_flag_t)params); diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 92f3ef84d6..232bf7c00c 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -222,6 +222,14 @@ static bool params_deserialize(const MDB_val *val, key_params_t *params) return false; } +static MDB_val trash_serialize(const key_params_t *params) +{ + uint8_t flags = flags_serialize(params); + uint64_t expir = (uint64_t)knot_time() + (14 * 86400); // Two weeks for now. + + return knot_lmdb_make_key("LHBB", expir, params->keytag, params->algorithm, flags); +} + static key_params_t *txn2params(knot_lmdb_txn_t *txn) { key_params_t *p = calloc(1, sizeof(*p)); @@ -295,14 +303,39 @@ static size_t keyid_inuse(knot_lmdb_txn_t *txn, const char *key_id, key_params_t return count; } +/*! \brief Make a trash record for the key in KASP DB. */ +static int make_trash_key(knot_lmdb_txn_t *txn, MDB_val *key, MDB_val *val) +{ + bool rv = true; + uint8_t kclass; + knot_dname_t *dname; + char *str; + + if (knot_lmdb_unmake_key(key->mv_data, key->mv_size, + "BNS", &kclass, &dname, &str)) { + assert(kclass == KASPDBKEY_PARAMS); + key_params_t params; + if (!params_deserialize(val, ¶ms)) { + return KNOT_EMALF; + } + free(params.public_key.data); + MDB_val nkey = make_key_str(KASPDBKEY_TRASH, dname, str); + MDB_val nval = trash_serialize(¶ms, expir); + rv = knot_lmdb_insert(txn, &nkey, &nval); + free(nkey.mv_data); + free(nval.mv_data); + } + + return rv; +} int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const char *key_id, bool *still_used) { MDB_val search = make_key_str(KASPDBKEY_PARAMS, zone_name, key_id); knot_lmdb_txn_t txn = { 0 }; knot_lmdb_begin(db, &txn, true); - knot_lmdb_del_prefix(&txn, &search); - if (still_used != NULL) { + knot_lmdb_del_prefix_ret(&txn, &search); + if (still_used != NULL && txn.ret == KNOT_EOK) { *still_used = (keyid_inuse(&txn, key_id, NULL) > 0); } knot_lmdb_commit(&txn); @@ -310,7 +343,8 @@ int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const return txn.ret; } -int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, bool orphan, bool best) +int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, + bool orphan, bool best, bool use_trash) { int ret; knot_kasp_keystore_t *keystores = NULL; @@ -341,16 +375,20 @@ int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, bool assert(count > 0); if (count == 1) { - ret = kdnssec_delete_from_keystores(keystores, key_id, - zone_name, true); - ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; - if (ret != KNOT_EOK) { - // Note: it isn't sure that there still is a key to delete. - free(key_id); - if (best) { - continue; - } else { - break; + if (use_trash) { + (void)make_trash_key(&txn, &txn.cur_key, &txn.cur_val); + } else { + ret = kdnssec_delete_from_keystores(keystores, key_id, + zone_name, true); + ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; + if (ret != KNOT_EOK) { + // Note: it isn't sure that there still is a key to delete. + free(key_id); + if (best) { + continue; + } else { + break; + } } } } diff --git a/src/knot/dnssec/kasp/kasp_db.h b/src/knot/dnssec/kasp/kasp_db.h index 301d93582a..1ed9a45253 100644 --- a/src/knot/dnssec/kasp/kasp_db.h +++ b/src/knot/dnssec/kasp/kasp_db.h @@ -63,11 +63,13 @@ int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const * \param db KASP db * \param zone_name zone to remove from * \param orphan if true, remove keys of a non-existent zone (orphans) - * \param best continue with other keys even if one key fails + * \param best if true, continue with other keys even if one key fails + * \param use_trash if true, move the key to trash instead of removing it * * \return KNOT_E* */ -int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, bool orphan, bool best); +int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, + bool orphan, bool best, bool use_trash); /*! * \brief Remove all zone's keys from DB, including nsec3param, but exluding keys related to diff --git a/src/knot/journal/knot_lmdb.c b/src/knot/journal/knot_lmdb.c index 8f0e498c5c..086be8b5ad 100644 --- a/src/knot/journal/knot_lmdb.c +++ b/src/knot/journal/knot_lmdb.c @@ -482,6 +482,19 @@ void knot_lmdb_del_prefix(knot_lmdb_txn_t *txn, MDB_val *prefix) } } +void knot_lmdb_del_prefix_ret(knot_lmdb_txn_t *txn, MDB_val *prefix) +{ + MDB_val tmp_key = { 0 }; + MDB_val tmp_val = { 0 }; + knot_lmdb_foreach(txn, prefix) { + tmp_key = txn->cur_key; + tmp_val = txn->cur_val; + knot_lmdb_del_cur(txn); + } + txn->cur_key = tmp_key; + txn->cur_val = tmp_val; +} + int knot_lmdb_apply_threadsafe(knot_lmdb_txn_t *txn, const MDB_val *key, bool prefix, lmdb_apply_cb cb, void *ctx) { MDB_cursor *cursor; diff --git a/src/knot/journal/knot_lmdb.h b/src/knot/journal/knot_lmdb.h index ed0482a416..04d7ae074b 100644 --- a/src/knot/journal/knot_lmdb.h +++ b/src/knot/journal/knot_lmdb.h @@ -310,6 +310,17 @@ void knot_lmdb_del_cur(knot_lmdb_txn_t *txn); */ void knot_lmdb_del_prefix(knot_lmdb_txn_t *txn, MDB_val *prefix); +/*! + * \brief Delete all DB records matching given key prefix, return the + * last deleted record as cur_key and cur_val, or return empty + * data if no matching record is found. As the transaction is still open, + * both data are accessible until txn commit. + * + * \param txn DB transaction. + * \param prefix Prefix to be deleted. + */ +void knot_lmdb_del_prefix_ret(knot_lmdb_txn_t *txn, MDB_val *prefix); + typedef int (*lmdb_apply_cb)(MDB_val *key, MDB_val *val, void *ctx); /*! diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index a029a09542..263356ce10 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -350,7 +350,8 @@ int selective_zone_purge(conf_t *conf, zone_t *zone, purge_flag_t params) ret = knot_lmdb_open(zone_kaspdb(zone)); if (ret == KNOT_EOK) { ret = kasp_db_delete_keys(zone_kaspdb(zone), zone->name, - false, !exit_immediately); + false, !exit_immediately, + !(params & PURGE_ZONE_TRASH)); } RETURN_IF_FAILED("keys", KNOT_ENOENT); } diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 15f3d89d8e..c434922376 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -68,6 +68,7 @@ typedef enum { PURGE_ZONE_KASPDB = 1 << 27, /*!< Purge KASP DB. */ PURGE_ZONE_CATALOG = 1 << 28, /*!< Purge the catalog. */ PURGE_ZONE_EXPIRE = 1 << 29, /*!< Expire the zone, free contents. */ + PURGE_ZONE_TRASH = 1 << 30, /*!< When purging keys, purge also the keys in trash. */ } purge_flag_t; /*!< All data. */ @@ -78,7 +79,7 @@ typedef enum { #define PURGE_ZONE_ALL (PURGE_ZONE_DATA | PURGE_ZONE_KEYS | PURGE_ZONE_BEST | PURGE_ZONE_LOG) /*!< All purge-related flags. */ -#define PURGE_ZONE_FLAGS (PURGE_ZONE_ALL | PURGE_ZONE_NOSYNC | PURGE_ZONE_EXPIRE) +#define PURGE_ZONE_FLAGS (PURGE_ZONE_ALL | PURGE_ZONE_NOSYNC | PURGE_ZONE_EXPIRE | PURGE_ZONE_TRASH) /*! * \brief Structure for holding DNS zone. From c511a35e4327390250ca87c809e52d86d92890a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 22 Dec 2025 16:25:58 +0100 Subject: [PATCH 520/675] kaspdb: add a configurable trash-key lifetime option --- src/knot/conf/schema.c | 1 + src/knot/conf/schema.h | 1 + src/knot/dnssec/context.c | 3 +++ src/knot/dnssec/kasp/kasp_db.c | 12 +++++++----- src/knot/dnssec/kasp/policy.h | 1 + tests-extra/tests/dnssec/keystores/test.py | 1 + 6 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 6bfd77c66b..b89ef1e148 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -444,6 +444,7 @@ static const yp_item_t desc_policy[] = { CONF_IO_FRLD_ZONES }, { C_DELEG_ADT, YP_TBOOL, YP_VNONE }, { C_DELETE_DELAY, YP_TINT, YP_VINT = { 0, UINT32_MAX, 0, YP_STIME } }, + { C_TRASH_DELAY, YP_TINT, YP_VINT = { 0, UINT32_MAX, DAYS(14), YP_STIME } }, { C_PROPAG_DELAY, YP_TINT, YP_VINT = { 0, INT32_MAX, HOURS(1), YP_STIME }, CONF_IO_FRLD_ZONES }, { C_RRSIG_LIFETIME, YP_TINT, YP_VINT = { 1, INT32_MAX, DAYS(14), YP_STIME }, diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 5de332bb6f..173f9c8f3e 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -173,6 +173,7 @@ #define C_TIMER_DB_SYNC "\x0D""timer-db-sync" #define C_TLS "\x03""tls" #define C_TPL "\x08""template" +#define C_TRASH_DELAY "\x0B""trash-delay" #define C_UDP "\x03""udp" #define C_UDP_MAX_PAYLOAD "\x0F""udp-max-payload" #define C_UDP_MAX_PAYLOAD_IPV4 "\x14""udp-max-payload-ipv4" diff --git a/src/knot/dnssec/context.c b/src/knot/dnssec/context.c index 24f82d474c..dcbde88642 100644 --- a/src/knot/dnssec/context.c +++ b/src/knot/dnssec/context.c @@ -69,6 +69,9 @@ static void policy_load(knot_kasp_policy_t *policy, conf_t *conf, conf_val_t *id val = conf_id_get(conf, C_POLICY, C_DELETE_DELAY, id); policy->delete_delay = conf_int(&val); + val = conf_id_get(conf, C_POLICY, C_TRASH_DELAY, id); + policy->trash_delay = conf_int(&val); + val = conf_id_get(conf, C_POLICY, C_PROPAG_DELAY, id); policy->propagation_delay = conf_int(&val); diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 232bf7c00c..bd46753e99 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -222,10 +222,9 @@ static bool params_deserialize(const MDB_val *val, key_params_t *params) return false; } -static MDB_val trash_serialize(const key_params_t *params) +static MDB_val trash_serialize(const key_params_t *params, uint64_t expir) { uint8_t flags = flags_serialize(params); - uint64_t expir = (uint64_t)knot_time() + (14 * 86400); // Two weeks for now. return knot_lmdb_make_key("LHBB", expir, params->keytag, params->algorithm, flags); } @@ -304,7 +303,7 @@ static size_t keyid_inuse(knot_lmdb_txn_t *txn, const char *key_id, key_params_t } /*! \brief Make a trash record for the key in KASP DB. */ -static int make_trash_key(knot_lmdb_txn_t *txn, MDB_val *key, MDB_val *val) +static int make_trash_key(knot_lmdb_txn_t *txn, MDB_val *key, MDB_val *val, uint32_t delay) { bool rv = true; uint8_t kclass; @@ -319,6 +318,7 @@ static int make_trash_key(knot_lmdb_txn_t *txn, MDB_val *key, MDB_val *val) return KNOT_EMALF; } free(params.public_key.data); + uint64_t expir = (uint64_t)knot_time() + delay; MDB_val nkey = make_key_str(KASPDBKEY_TRASH, dname, str); MDB_val nval = trash_serialize(¶ms, expir); rv = knot_lmdb_insert(txn, &nkey, &nval); @@ -349,12 +349,14 @@ int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, int ret; knot_kasp_keystore_t *keystores = NULL; kdnssec_ctx_t ctx = { 0 }; + uint32_t delay = 0; if (orphan) { ret = init_all_keystores(conf(), &keystores); } else { ret = kdnssec_ctx_init(conf(), &ctx, zone_name, db, NULL); keystores = ctx.keystores; + delay = use_trash ? ctx.policy->trash_delay : 0; } if (ret != KNOT_EOK) { return ret; @@ -375,8 +377,8 @@ int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, assert(count > 0); if (count == 1) { - if (use_trash) { - (void)make_trash_key(&txn, &txn.cur_key, &txn.cur_val); + if (delay > 0) { + (void)make_trash_key(&txn, &txn.cur_key, &txn.cur_val, delay); } else { ret = kdnssec_delete_from_keystores(keystores, key_id, zone_name, true); diff --git a/src/knot/dnssec/kasp/policy.h b/src/knot/dnssec/kasp/policy.h index 26e5ed197c..5e68cc61ad 100644 --- a/src/knot/dnssec/kasp/policy.h +++ b/src/knot/dnssec/kasp/policy.h @@ -100,6 +100,7 @@ typedef struct { uint32_t zsk_lifetime; // like knot_time_t uint32_t ksk_lifetime; // like knot_time_t uint32_t delete_delay; // like knot_timediff_t + uint32_t trash_delay; // like knot_timediff_t bool ksk_shared; bool single_type_signing; bool sts_default; // single-type-signing was set to default value diff --git a/tests-extra/tests/dnssec/keystores/test.py b/tests-extra/tests/dnssec/keystores/test.py index 3b57e57234..1fa94a1f12 100644 --- a/tests-extra/tests/dnssec/keystores/test.py +++ b/tests-extra/tests/dnssec/keystores/test.py @@ -29,6 +29,7 @@ def check_key_count(server, keystore, expected): server.dnssec(zone).enable = True server.dnssec(zone).propagation_delay = 1 server.dnssec(zone).keystore = [ keys1, keys2 ] +server.dnssec(zone).trash_delay = 0 t.start() serial = server.zone_wait(zone) From 92b2653ae92b3ee9cc11979d872b3c8051815b87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 9 Jan 2026 11:49:40 +0100 Subject: [PATCH 521/675] doc/reference: a basic description of 'policy.trash-delay' --- doc/operation.rst | 3 +++ doc/reference.rst | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/doc/operation.rst b/doc/operation.rst index e22e0e8b7a..5d360adaf5 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -1581,6 +1581,9 @@ The restore procedure does not care for keys deleted after taking the snapshot. Thus, after restore, there might remain some redundant ``.pem`` files of obsolete signing keys. +Only configured private keys are backed up, deleted keys still kept in the "trash bin" +aren't. + .. NOTE:: Automatically generated unique-id's of member zones are kept in the timers database. Therefore, backup of member zones' timers is crucial for diff --git a/doc/reference.rst b/doc/reference.rst index aaeee90503..9a72686a7e 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2111,6 +2111,7 @@ DNSSEC policy configuration. zsk-lifetime: TIME deleg-adt: BOOL delete-delay: TIME + trash-delay: TIME propagation-delay: TIME rrsig-lifetime: TIME rrsig-refresh: TIME @@ -2341,6 +2342,16 @@ is needed. *Default:* ``0`` +.. _policy_trash-delay: + +trash-delay +----------- + +Set this parameter to ``0`` to avoid storing deleted DNSSEC key in a "trash bin". +The "trash bin" can be emptied with ``knotc -f zone-purge +keys +orphan --``. + +*Default:* ``14d`` (14 days) + .. _policy_propagation-delay: propagation-delay From f06b45424bed6e8e76263b6a97b54c9b05c814d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 24 Dec 2025 11:00:20 +0100 Subject: [PATCH 522/675] kaspdb: purging aside, use key "trash bin" for other key removals too --- src/knot/dnssec/kasp/kasp_db.c | 18 +++++++++++++++--- src/knot/dnssec/kasp/kasp_db.h | 4 +++- src/knot/dnssec/zone-keys.c | 3 ++- tests/knot/test_kasp_db.c | 2 +- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index bd46753e99..03a0371db8 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -329,15 +329,27 @@ static int make_trash_key(knot_lmdb_txn_t *txn, MDB_val *key, MDB_val *val, uint return rv; } -int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const char *key_id, bool *still_used) +int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const char *key_id, + uint32_t delay, bool *still_used) { MDB_val search = make_key_str(KASPDBKEY_PARAMS, zone_name, key_id); knot_lmdb_txn_t txn = { 0 }; knot_lmdb_begin(db, &txn, true); knot_lmdb_del_prefix_ret(&txn, &search); - if (still_used != NULL && txn.ret == KNOT_EOK) { - *still_used = (keyid_inuse(&txn, key_id, NULL) > 0); + + if ((still_used != NULL || delay > 0) && txn.ret == KNOT_EOK) { + MDB_val key = txn.cur_key; + MDB_val val = txn.cur_val; + bool used = (keyid_inuse(&txn, key_id, NULL) > 0); + if (!used && delay > 0) { + (void)make_trash_key(&txn, &key, &val, delay); + used = true; + } + if (still_used != NULL) { + *still_used = used; + } } + knot_lmdb_commit(&txn); free(search.mv_data); return txn.ret; diff --git a/src/knot/dnssec/kasp/kasp_db.h b/src/knot/dnssec/kasp/kasp_db.h index 1ed9a45253..83312a11de 100644 --- a/src/knot/dnssec/kasp/kasp_db.h +++ b/src/knot/dnssec/kasp/kasp_db.h @@ -51,11 +51,13 @@ int kasp_db_get_key_algorithm(knot_lmdb_db_t *db, const knot_dname_t *zone_name, * \param db KASP db * \param zone_name zone to be removed from * \param key_id ID of key to be removed + * \param delay time to keep the key in trash (or delete it immediately if zero) * \param still_used output if KNOT_EOK: is the key still in use by other zones? * * \return KNOT_E* */ -int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const char *key_id, bool *still_used); +int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const char *key_id, + uint32_t delay, bool *still_used); /*! * \brief Remove all keys from zone. Delete them if no zone has them anymore. diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index fa495a1a9c..301d59fe64 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -281,7 +281,8 @@ int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr) } bool key_still_used_in_keystore = false; - int ret = kasp_db_delete_key(ctx->kasp_db, ctx->zone->dname, key_ptr->id, &key_still_used_in_keystore); + int ret = kasp_db_delete_key(ctx->kasp_db, ctx->zone->dname, key_ptr->id, + ctx->policy->trash_delay, &key_still_used_in_keystore); if (ret != KNOT_EOK) { return ret; } diff --git a/tests/knot/test_kasp_db.c b/tests/knot/test_kasp_db.c index e0f7411c15..fb1f846af5 100644 --- a/tests/knot/test_kasp_db.c +++ b/tests/knot/test_kasp_db.c @@ -119,7 +119,7 @@ int main(int argc, char *argv[]) free_params ptrlist_deep_free(&l, NULL); - ret = kasp_db_delete_key(db, zone1, params1.id, &ignore); + ret = kasp_db_delete_key(db, zone1, params1.id, 0, &ignore); is_int(KNOT_EOK, ret, "kasp_db: delete key 1 eok"); ret = kasp_db_list_keys(db, zone1, &l); From 1cbeeceef96d88b7744b750b74554eea7f217953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 29 Dec 2025 14:16:38 +0100 Subject: [PATCH 523/675] kaspdb: when making a trash key, report a malformed KASP DB key PARAMS record --- src/knot/dnssec/kasp/kasp_db.c | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 03a0371db8..9386d11d57 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -305,7 +305,7 @@ static size_t keyid_inuse(knot_lmdb_txn_t *txn, const char *key_id, key_params_t /*! \brief Make a trash record for the key in KASP DB. */ static int make_trash_key(knot_lmdb_txn_t *txn, MDB_val *key, MDB_val *val, uint32_t delay) { - bool rv = true; + int ret = KNOT_EOK; uint8_t kclass; knot_dname_t *dname; char *str; @@ -321,12 +321,15 @@ static int make_trash_key(knot_lmdb_txn_t *txn, MDB_val *key, MDB_val *val, uint uint64_t expir = (uint64_t)knot_time() + delay; MDB_val nkey = make_key_str(KASPDBKEY_TRASH, dname, str); MDB_val nval = trash_serialize(¶ms, expir); - rv = knot_lmdb_insert(txn, &nkey, &nval); + knot_lmdb_insert(txn, &nkey, &nval); + ret = txn->ret; free(nkey.mv_data); free(nval.mv_data); + } else { + ret = KNOT_EMALF; } - return rv; + return ret; } int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const char *key_id, @@ -342,7 +345,12 @@ int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const MDB_val val = txn.cur_val; bool used = (keyid_inuse(&txn, key_id, NULL) > 0); if (!used && delay > 0) { - (void)make_trash_key(&txn, &key, &val, delay); + int ret = make_trash_key(&txn, &key, &val, delay); + if (ret != KNOT_EOK) { + knot_lmdb_abort(&txn); + free(search.mv_data); + return ret; + } used = true; } if (still_used != NULL) { @@ -390,19 +398,19 @@ int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, assert(count > 0); if (count == 1) { if (delay > 0) { - (void)make_trash_key(&txn, &txn.cur_key, &txn.cur_val, delay); + ret = make_trash_key(&txn, &txn.cur_key, &txn.cur_val, delay); } else { ret = kdnssec_delete_from_keystores(keystores, key_id, zone_name, true); ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; - if (ret != KNOT_EOK) { - // Note: it isn't sure that there still is a key to delete. - free(key_id); - if (best) { - continue; - } else { - break; - } + // Note: if error, it isn't sure that there still is a key to delete. + } + if (ret != KNOT_EOK) { + free(key_id); + if (best) { + continue; + } else { + break; } } } From 3091d0db9be352071a95ace14dedcde06653ff26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 23 Jan 2026 18:29:35 +0100 Subject: [PATCH 524/675] kaspdb: when adding a key, always remove all trash records of the key --- src/knot/dnssec/kasp/kasp_db.c | 17 ++++++++++++++--- src/knot/dnssec/kasp/kasp_db.h | 3 ++- src/knot/dnssec/kasp/kasp_zone.c | 3 ++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 9386d11d57..997b3ae22f 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -549,9 +549,20 @@ int kasp_db_list_zones(knot_lmdb_db_t *db, list_t *zones) int kasp_db_add_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const key_params_t *params) { - MDB_val v = params_serialize(params); - MDB_val k = make_key_str(KASPDBKEY_PARAMS, zone_name, params->id); - return knot_lmdb_quick_insert(db, k, v); + MDB_val val = params_serialize(params); + MDB_val key = make_key_str(KASPDBKEY_PARAMS, zone_name, params->id); + MDB_val del_prefix = make_key_str(KASPDBKEY_TRASH, NULL, params->id); + knot_lmdb_txn_t txn = { 0 }; + knot_lmdb_begin(db, &txn, true); + knot_lmdb_insert(&txn, &key, &val); + // More than one KASPDBKEY_TRASH aren't expected, but none must remain. + knot_lmdb_del_prefix(&txn, &del_prefix); + free(key.mv_data); + free(val.mv_data); + free(del_prefix.mv_data); + knot_lmdb_commit(&txn); + + return txn.ret; } int kasp_db_share_key(knot_lmdb_db_t *db, const knot_dname_t *zone_from, diff --git a/src/knot/dnssec/kasp/kasp_db.h b/src/knot/dnssec/kasp/kasp_db.h index 83312a11de..f4a1a6f0d9 100644 --- a/src/knot/dnssec/kasp/kasp_db.h +++ b/src/knot/dnssec/kasp/kasp_db.h @@ -118,10 +118,11 @@ int kasp_db_list_zones(knot_lmdb_db_t *db, list_t *zones); /*! * \brief Add a key to the DB (possibly overwrite) and link it to a zone. + * Remove all trash records related to the key, if there are any. * * Stores new key with given params into KASP db. If a key with the same ID had been present * in KASP db already, its params get silently overwritten by those new params. - * Moreover, the key ID is linked to the zone. + * Moreover, the key ID is linked to the zone and all related trash records are removed. * * \param db KASP db * \param zone_name name of the zone the new key shall belong to diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index 1976577070..7f0fa9d2bf 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -264,7 +264,8 @@ int kasp_zone_save(const knot_kasp_zone_t *zone, for (size_t i = 0; i < zone->num_keys; i++) { kaspkey2params(&zone->keys[i], &parm); - // Force overwrite already existing key-val pairs. + // Force overwrite already existing key-val pairs + // and remove related trash records. int ret = kasp_db_add_key(kdb, zone_name, &parm); if (ret != KNOT_EOK) { return ret; From f8f852532ac8a48cdead9d1ca2f9087bcdb48e0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 4 Feb 2026 14:18:56 +0100 Subject: [PATCH 525/675] zone-keys: avoid storing never used shared-keys-to-be in the "trash bin" --- src/knot/dnssec/key-events.c | 4 ++-- src/knot/dnssec/zone-keys.c | 5 +++-- src/knot/dnssec/zone-keys.h | 3 ++- src/utils/keymgr/main.c | 2 +- src/utils/keymgr/offline_ksk.c | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/knot/dnssec/key-events.c b/src/knot/dnssec/key-events.c index 688e5510c4..021eadba5a 100644 --- a/src/knot/dnssec/key-events.c +++ b/src/knot/dnssec/key-events.c @@ -193,7 +193,7 @@ static int share_or_generate_key(kdnssec_ctx_t *ctx, kdnssec_generate_flags_t fl return ret; } else { // another zone updated policy-last key in the meantime - ret = kdnssec_delete_key(ctx, key); + ret = kdnssec_delete_key(ctx, key, false); if (ret == KNOT_EOK) { ret = kdnssec_ctx_commit(ctx); } @@ -713,7 +713,7 @@ static int exec_really_remove(kdnssec_ctx_t *ctx, knot_kasp_key_t *key) { assert(get_key_state(key, ctx->now) == DNSSEC_KEY_STATE_REMOVED); assert(!ctx->keep_deleted_keys); - return kdnssec_delete_key(ctx, key); + return kdnssec_delete_key(ctx, key, true); } int knot_dnssec_key_rollover(kdnssec_ctx_t *ctx, zone_sign_roll_flags_t flags, diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 301d59fe64..b2193d4039 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -266,7 +266,7 @@ int kdnssec_delete_from_keystores(knot_kasp_keystore_t *keystores, char *key_id, return found ? KNOT_EOK : ret; } -int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr) +int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr, bool trash) { assert(ctx); assert(ctx->zone); @@ -281,8 +281,9 @@ int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr) } bool key_still_used_in_keystore = false; + uint32_t delay = trash ? ctx->policy->trash_delay : 0; int ret = kasp_db_delete_key(ctx->kasp_db, ctx->zone->dname, key_ptr->id, - ctx->policy->trash_delay, &key_still_used_in_keystore); + delay, &key_still_used_in_keystore); if (ret != KNOT_EOK) { return ret; } diff --git a/src/knot/dnssec/zone-keys.h b/src/knot/dnssec/zone-keys.h index 895b967151..729a2eb09c 100644 --- a/src/knot/dnssec/zone-keys.h +++ b/src/knot/dnssec/zone-keys.h @@ -127,10 +127,11 @@ int kdnssec_delete_from_keystores(knot_kasp_keystore_t *keystores, char *key_id, * * \param ctx kasp context (zone, keystore, kaspdb) to be modified * \param key_ptr pointer to key to be removed, must be inside keystore structure, NOT a copy of it! + * \param trash if true, use the trash-bin as defined in kasp context->policy * * \return KNOT_E* */ -int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr); +int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr, bool trash); /*! * \brief Load private key for given ID by searching all configured keystores. diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c index c489d3cae7..c9069a6fc0 100644 --- a/src/utils/keymgr/main.c +++ b/src/utils/keymgr/main.c @@ -246,7 +246,7 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp knot_kasp_key_t *key2del; ret = keymgr_get_key(&kctx, argv[2], &key2del); if (ret == KNOT_EOK) { - ret = kdnssec_delete_key(&kctx, key2del); + ret = kdnssec_delete_key(&kctx, key2del, true); } } else if (same_command(argv[1], "pregenerate", false)) { CHECK_MISSING_ARG("Timestamp to not specified"); diff --git a/src/utils/keymgr/offline_ksk.c b/src/utils/keymgr/offline_ksk.c index 988c8b3b91..0296fa77b8 100644 --- a/src/utils/keymgr/offline_ksk.c +++ b/src/utils/keymgr/offline_ksk.c @@ -214,7 +214,7 @@ int keymgr_del_all_old(kdnssec_ctx_t *ctx) for (size_t i = 0; i < ctx->zone->num_keys; ) { knot_kasp_key_t *key = &ctx->zone->keys[i]; if (knot_time_cmp(key->timing.remove, ctx->now) < 0) { - int ret = kdnssec_delete_key(ctx, key); + int ret = kdnssec_delete_key(ctx, key, true); if (ret != KNOT_EOK) { return ret; } From 80b476eedbc88459c87f7e51cc540027510df946 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 28 Jan 2026 13:04:43 +0100 Subject: [PATCH 526/675] kaspdb: properly remove and insert DNSSEC keys in zone-restore --- src/knot/dnssec/kasp/kasp_db.c | 27 ++++++++++++++++++++++++++- src/knot/journal/journal_metadata.c | 2 +- src/knot/journal/knot_lmdb.c | 13 ++++++++++--- src/knot/journal/knot_lmdb.h | 7 +++++-- 4 files changed, 42 insertions(+), 7 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 997b3ae22f..e8136d0394 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -332,6 +332,24 @@ static int make_trash_key(knot_lmdb_txn_t *txn, MDB_val *key, MDB_val *val, uint return ret; } +static int kasp_db_untrash_key(knot_lmdb_txn_t *from_txn, knot_lmdb_txn_t *to_txn, MDB_val *prefix) +{ + if (!is_key_related(prefix)) { + return KNOT_EOK; + } + + char *str; + if (!unmake_key_str(&from_txn->cur_key, &str)) { + return KNOT_EMALF; + } + MDB_val del_pref = make_key_str(KASPDBKEY_TRASH, NULL, str); + knot_lmdb_del_prefix(to_txn, &del_pref); + free(del_pref.mv_data); + free(str); + + return to_txn->ret; +} + int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const char *key_id, uint32_t delay, bool *still_used) { @@ -824,6 +842,13 @@ void kasp_db_ensure_init(knot_lmdb_db_t *db, conf_t *conf) static int kasp_db_backup_generic(const knot_dname_t *zone, knot_lmdb_db_t *db, knot_lmdb_db_t *backup_db, const keyclass_t *classes, const size_t classes_size) { + // For restore, remove zones's all keys from KASP DB and keystores + // (use the trash-bin if configured). For backup, do nothing (target db is empty). + int ret = kasp_db_delete_keys(backup_db, zone, false, false, true); + if (ret != KNOT_EOK) { + return ret; + } + size_t n_prefs = classes_size; // NOTE: for full KASP db backup, this must match number of record types @@ -838,7 +863,7 @@ static int kasp_db_backup_generic(const knot_dname_t *zone, knot_lmdb_db_t *db, prefixes[n_prefs++] = knot_lmdb_make_key("B", KASPDBKEY_POLICYLAST); } - int ret = knot_lmdb_copy_prefixes(db, backup_db, prefixes, n_prefs); + ret = knot_lmdb_copy_prefixes(db, backup_db, prefixes, n_prefs, kasp_db_untrash_key); for (int i = 0; i < n_prefs; i++) { free(prefixes[i].mv_data); diff --git a/src/knot/journal/journal_metadata.c b/src/knot/journal/journal_metadata.c index bbf73b6aa5..0a7406f4bb 100644 --- a/src/knot/journal/journal_metadata.c +++ b/src/knot/journal/journal_metadata.c @@ -310,7 +310,7 @@ int journal_copy_with_md(knot_lmdb_db_t *from, knot_lmdb_db_t *to, const knot_dn knot_lmdb_begin(to, &tw, true); update_last_inserter(&tr, NULL); MDB_val prefix = journal_zone_prefix(zone); - knot_lmdb_copy_prefix(&tr, &tw, &prefix); + knot_lmdb_copy_prefix(&tr, &tw, &prefix, NULL); free(prefix.mv_data); knot_lmdb_commit(&tw); knot_lmdb_commit(&tr); diff --git a/src/knot/journal/knot_lmdb.c b/src/knot/journal/knot_lmdb.c index 086be8b5ad..e069710e66 100644 --- a/src/knot/journal/knot_lmdb.c +++ b/src/knot/journal/knot_lmdb.c @@ -558,7 +558,8 @@ int knot_lmdb_quick_insert(knot_lmdb_db_t *db, MDB_val key, MDB_val val) return txn.ret; } -int knot_lmdb_copy_prefix(knot_lmdb_txn_t *from, knot_lmdb_txn_t *to, MDB_val *prefix) +int knot_lmdb_copy_prefix(knot_lmdb_txn_t *from, knot_lmdb_txn_t *to, MDB_val *prefix, + lmdb_copy_cb cb) { knot_lmdb_foreach(to, prefix) { knot_lmdb_del_cur(to); @@ -567,13 +568,19 @@ int knot_lmdb_copy_prefix(knot_lmdb_txn_t *from, knot_lmdb_txn_t *to, MDB_val *p return to->ret; } knot_lmdb_foreach(from, prefix) { + if (cb != NULL) { + int ret = cb(from, to, prefix); + if (ret != KNOT_EOK) { + return ret; + } + } knot_lmdb_insert(to, &from->cur_key, &from->cur_val); } return from->ret == KNOT_EOK ? to->ret : from->ret; } int knot_lmdb_copy_prefixes(knot_lmdb_db_t *from, knot_lmdb_db_t *to, - MDB_val *prefixes, size_t n_prefixes) + MDB_val *prefixes, size_t n_prefixes, lmdb_copy_cb cb) { if (n_prefixes < 1) { return KNOT_EOK; @@ -592,7 +599,7 @@ int knot_lmdb_copy_prefixes(knot_lmdb_db_t *from, knot_lmdb_db_t *to, knot_lmdb_begin(from, &tr, false); knot_lmdb_begin(to, &tw, true); for (size_t i = 0; i < n_prefixes && ret == KNOT_EOK; i++) { - ret = knot_lmdb_copy_prefix(&tr, &tw, &prefixes[i]); + ret = knot_lmdb_copy_prefix(&tr, &tw, &prefixes[i], cb); } knot_lmdb_commit(&tw); knot_lmdb_commit(&tr); diff --git a/src/knot/journal/knot_lmdb.h b/src/knot/journal/knot_lmdb.h index 04d7ae074b..21782b501e 100644 --- a/src/knot/journal/knot_lmdb.h +++ b/src/knot/journal/knot_lmdb.h @@ -322,6 +322,7 @@ void knot_lmdb_del_prefix(knot_lmdb_txn_t *txn, MDB_val *prefix); void knot_lmdb_del_prefix_ret(knot_lmdb_txn_t *txn, MDB_val *prefix); typedef int (*lmdb_apply_cb)(MDB_val *key, MDB_val *val, void *ctx); +typedef int (*lmdb_copy_cb)(knot_lmdb_txn_t *from, knot_lmdb_txn_t *to, MDB_val *prefix); /*! * \brief Call a callback for any item matching given key. @@ -369,6 +370,7 @@ int knot_lmdb_quick_insert(knot_lmdb_db_t *db, MDB_val key, MDB_val val); * \param from Open RO/RW transaction in the database to copy from. * \param to Open RW txn in the DB to copy to. * \param prefix Prefix for matching records to be copied. + * \param cb Optional callback called before every record insert, or NULL. * * \note Prior to copying, all records from the target DB, matching the prefix, will be deleted! * @@ -376,7 +378,7 @@ int knot_lmdb_quick_insert(knot_lmdb_db_t *db, MDB_val key, MDB_val val); * * \note KNOT_EOK even if none records matched the prefix (and were copied). */ -int knot_lmdb_copy_prefix(knot_lmdb_txn_t *from, knot_lmdb_txn_t *to, MDB_val *prefix); +int knot_lmdb_copy_prefix(knot_lmdb_txn_t *from, knot_lmdb_txn_t *to, MDB_val *prefix, lmdb_copy_cb cb); /*! * \brief Copy all records matching any of multiple prefixes. @@ -385,13 +387,14 @@ int knot_lmdb_copy_prefix(knot_lmdb_txn_t *from, knot_lmdb_txn_t *to, MDB_val *p * \param to DB to copy to. * \param prefixes List of prefixes to match. * \param n_prefixes Number of prefixes in the list. + * \param cb Optional callback called before every record insert, or NULL. * * \note Prior to copying, all records from the target DB, matching any of the prefixes, will be deleted! * * \return KNOT_E* */ int knot_lmdb_copy_prefixes(knot_lmdb_db_t *from, knot_lmdb_db_t *to, - MDB_val *prefixes, size_t n_prefixes); + MDB_val *prefixes, size_t n_prefixes, lmdb_copy_cb cb); /*! * \brief Amount of bytes used by the DB storage. From 99964f8de87bb45b79353424fbd7833d19b25f97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 26 Jan 2026 11:11:15 +0100 Subject: [PATCH 527/675] libknot/dnssec: p11_load_module() returns KNOT_E* error codes --- src/libknot/dnssec/keystore/pkcs11.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libknot/dnssec/keystore/pkcs11.c b/src/libknot/dnssec/keystore/pkcs11.c index be6a5d689f..86e4d105ca 100644 --- a/src/libknot/dnssec/keystore/pkcs11.c +++ b/src/libknot/dnssec/keystore/pkcs11.c @@ -111,7 +111,7 @@ static int safe_open(const char *config, char **url_ptr) r = p11_load_module(module); free(module); - if (r != GNUTLS_E_SUCCESS) { + if (r != KNOT_EOK) { free(url); return KNOT_P11_ELOAD; } From aca94c60850aa9f6365356184a59d2da5c07fca2 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 24 Dec 2025 11:19:56 +0100 Subject: [PATCH 528/675] tests-extra: add keystore.has_key() methods --- tests-extra/tests/dnssec/softhsm/test.py | 6 +++++ tests-extra/tools/dnstest/keys.py | 14 +++++----- tests-extra/tools/dnstest/keystore.py | 34 ++++++++++++++++++++++-- 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/tests-extra/tests/dnssec/softhsm/test.py b/tests-extra/tests/dnssec/softhsm/test.py index 515951a20e..1c6be3e7d1 100644 --- a/tests-extra/tests/dnssec/softhsm/test.py +++ b/tests-extra/tests/dnssec/softhsm/test.py @@ -5,6 +5,7 @@ """ from dnstest.utils import * +from dnstest.keys import Keymgr from dnstest.keystore import KeystoreSoftHSM from dnstest.test import Test @@ -53,4 +54,9 @@ resp = knot2.dig(zone[0].name, "DNSKEY") resp.cmp(knot1) +_, keys, _ = Keymgr.run_check(knot1.confile, zone[0].name, "list", env=keys1.env()) +key_ids = [key.split()[0] for key in keys.strip().splitlines()] +for key_id in key_ids: + isset(keys2.has_key(key_id), f"key {key_id} in keys2") + t.end() diff --git a/tests-extra/tools/dnstest/keys.py b/tests-extra/tools/dnstest/keys.py index febdcfaa22..8cab5170a2 100644 --- a/tests-extra/tools/dnstest/keys.py +++ b/tests-extra/tools/dnstest/keys.py @@ -73,13 +73,15 @@ def dump(self, filename): class Keymgr(object): @classmethod - def run(cls, conf_file, *args): + def run(cls, conf_file, *args, env=None): + env = env or {} cmdline = [dnstest.params.keymgr_bin] if conf_file: cmdline += ["-c", conf_file, "-e"] cmdline += list(args) - cmd = Popen(cmdline, stdout=PIPE, stderr=PIPE, universal_newlines=True) + cmd = Popen(cmdline, stdout=PIPE, stderr=PIPE, universal_newlines=True, + env=dict(os.environ, **env)) (stdout, stderr) = cmd.communicate() with open(Context().out_dir + "/keymgr.out", "a") as outf: @@ -91,8 +93,8 @@ def run(cls, conf_file, *args): return (cmd.returncode, stdout, stderr) @classmethod - def run_check(cls, conf_file, *args): - result = cls.run(conf_file, *args) + def run_check(cls, conf_file, *args, env=None): + result = cls.run(conf_file, *args, env=env) exit_code, _, _ = result if exit_code != 0: raise Failed("Failed to run keymgr command %s." % list(args)) @@ -100,8 +102,8 @@ def run_check(cls, conf_file, *args): return result @classmethod - def run_fail(cls, conf_file, *args): - result = cls.run(conf_file, *args) + def run_fail(cls, conf_file, *args, env=None): + result = cls.run(conf_file, *args, env=env) exit_code, _, _ = result if exit_code == 0: raise Failed("Keymgr passed when shall fail %s." % list(args)) diff --git a/tests-extra/tools/dnstest/keystore.py b/tests-extra/tools/dnstest/keystore.py index 7df3ce5d2a..090f508b35 100644 --- a/tests-extra/tools/dnstest/keystore.py +++ b/tests-extra/tools/dnstest/keystore.py @@ -2,8 +2,10 @@ import os import shutil -from subprocess import Popen +import textwrap +from subprocess import Popen, check_output from dnstest.context import Context +from dnstest.utils import * class Keystore(object): def __init__(self, id: str, ksk_only: bool = None, key_label: bool = None): @@ -21,9 +23,15 @@ def config(self): def backend(self): return "pem" + def env(self): + return { } + def clear(self): shutil.rmtree(self.config()) + def has_key(self, id: str): + return os.path.isfile(os.path.join(self.config(), f"{id}.pem")) + class KeystoreSoftHSM(Keystore): so_pin = "12345" @@ -45,9 +53,31 @@ def backend(self): def config_file(self): return os.path.join(self.dir, "softhsm.conf") + def env(self): + return { "SOFTHSM2_CONF": self.config_file() } + def clear(self): shutil.rmtree(os.path.join(self.dir, "tokens")) + def has_key(self, id: str): + urls = check_output(['p11tool', '--list-token-urls'], + env=dict(os.environ, **self.env())).decode('ascii') + url = ssearch(urls, r'(pkcs11:.*SoftHSM.*)') + try: + keys = check_output(['p11tool', '-d 9999', '--login', '--set-pin', self.passwd, '--list-keys', url], + env=dict(os.environ, **self.env()), + stderr=open(Context().test.out_dir + "/p11tool.err", mode="a")).decode('ascii') + id_sep = ':'.join(textwrap.wrap(id, 2)) + key = ssearch(keys, r'(ID:.*%s.*)' % id_sep) + except CalledProcessError as e: + # p11tool sets exit status to 2 if there aren't any keys in SoftHSM. + if e.returncode == 2: + key = None + else: + raise Failed("'p11tool --list-keys' failed") + + return False if not key else len(key) > 0 + def init(self, keystore=None): if not os.path.isdir(self.dir): os.makedirs(os.path.join(self.dir, "tokens")) @@ -68,7 +98,7 @@ def init(self, keystore=None): f'--pin={self.passwd}', f'--so-pin={self.so_pin}', f'--module={self.so_path}'], stdout=open(os.path.join(self.dir, "stdout"), mode='a'), stderr=open(os.path.join(self.dir, "stderr"), mode='a'), - env=dict(os.environ, SOFTHSM2_CONF=self.config_file())) + env=dict(os.environ, **self.env())) init_process.wait() def link(self, server): From 34a47c26c50db0cf36eae3c4bac61061565eafbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 12 Jan 2026 11:15:49 +0100 Subject: [PATCH 529/675] tests-extra: allow a keystore to be shared by different zones --- tests-extra/tools/dnstest/server.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 6480469942..1105553782 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1718,6 +1718,7 @@ def get_config(self): s.item_type(ci.replace("_", "-"), val) s.end() + keystores = list() have_keystore = False for zone in sorted(self.zones): z = self.zones[zone] @@ -1728,6 +1729,9 @@ def get_config(self): s.begin("keystore") have_keystore = True for ks in z.dnssec.keystore: + if ks.id in keystores: + continue + keystores.append(ks.id) s.id_item("id", ks.id) s.item_type("config", ks.config()) s.item_type("backend", ks.backend()) From e59f13ee432b8b11c79b627f63c98b94bdfb1021 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 2 Feb 2026 17:23:09 +0100 Subject: [PATCH 530/675] tests-extra: fix keymgr running --- tests-extra/tools/dnstest/keys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests-extra/tools/dnstest/keys.py b/tests-extra/tools/dnstest/keys.py index 8cab5170a2..d2946fd1e7 100644 --- a/tests-extra/tools/dnstest/keys.py +++ b/tests-extra/tools/dnstest/keys.py @@ -77,8 +77,8 @@ def run(cls, conf_file, *args, env=None): env = env or {} cmdline = [dnstest.params.keymgr_bin] if conf_file: - cmdline += ["-c", conf_file, "-e"] - cmdline += list(args) + cmdline += ["-c", conf_file] + cmdline += ["-e"] + list(args) cmd = Popen(cmdline, stdout=PIPE, stderr=PIPE, universal_newlines=True, env=dict(os.environ, **env)) From f13f33300b7d939b3a6d9a9fefa669afe2081761 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 3 Feb 2026 15:16:28 +0100 Subject: [PATCH 531/675] tests, tests-extra: update SoftHSM2 configuration so that it doesn't complain This commit doesn't change SoftHSM2 functionality, configured values are default values. --- tests-extra/tools/dnstest/keystore.py | 2 ++ tests/libknot/test_dnssec_keystore_pkcs11.c | 1 + 2 files changed, 3 insertions(+) diff --git a/tests-extra/tools/dnstest/keystore.py b/tests-extra/tools/dnstest/keystore.py index 090f508b35..a58c8b9bd7 100644 --- a/tests-extra/tools/dnstest/keystore.py +++ b/tests-extra/tools/dnstest/keystore.py @@ -85,6 +85,8 @@ def init(self, keystore=None): config = ( f"directories.tokendir = {self.dir}/tokens/\n" "objectstore.backend = file\n" + "slots.removable = false\n" + "slots.mechanisms = ALL\n" "log.level = INFO\n" ) conf_file.write(config) diff --git a/tests/libknot/test_dnssec_keystore_pkcs11.c b/tests/libknot/test_dnssec_keystore_pkcs11.c index d7e4b0adcb..52546d246f 100644 --- a/tests/libknot/test_dnssec_keystore_pkcs11.c +++ b/tests/libknot/test_dnssec_keystore_pkcs11.c @@ -186,6 +186,7 @@ static bool token_init(void) fprintf(file, "objectstore.backend = file\n"); fprintf(file, "log.level = INFO\n"); fprintf(file, "slots.removable = false\n"); + fprintf(file, "slots.mechanisms = ALL\n"); fclose(file); From e0f35501396a9016464c891955a77667f183b1f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 23 Feb 2026 14:46:36 +0100 Subject: [PATCH 532/675] tests-extra: in keystores, allow to list the keys the keystore holds --- tests-extra/tests/dnssec/keystores/test.py | 7 +--- tests-extra/tools/dnstest/keystore.py | 47 +++++++++++++--------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/tests-extra/tests/dnssec/keystores/test.py b/tests-extra/tests/dnssec/keystores/test.py index 1fa94a1f12..e047be3d0b 100644 --- a/tests-extra/tests/dnssec/keystores/test.py +++ b/tests-extra/tests/dnssec/keystores/test.py @@ -11,11 +11,8 @@ from dnstest.test import Test def check_key_count(server, keystore, expected): - try: - files = len([name for name in os.listdir(keystore.config())]) - except FileNotFoundError: - files = 0 - compare(files, expected, "privkey count in %s" % keystore.id) + keys = len(keystore.keys()) + compare(keys, expected, "privkey count in %s" % keystore.id) t = Test() diff --git a/tests-extra/tools/dnstest/keystore.py b/tests-extra/tools/dnstest/keystore.py index a58c8b9bd7..190d66753e 100644 --- a/tests-extra/tools/dnstest/keystore.py +++ b/tests-extra/tools/dnstest/keystore.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 import os +import random import shutil -import textwrap from subprocess import Popen, check_output from dnstest.context import Context from dnstest.utils import * @@ -29,8 +29,11 @@ def env(self): def clear(self): shutil.rmtree(self.config()) + def keys(self): + return [name.removesuffix('.pem') for name in os.listdir(self.config())] + def has_key(self, id: str): - return os.path.isfile(os.path.join(self.config(), f"{id}.pem")) + return id in self.keys() class KeystoreSoftHSM(Keystore): so_pin = "12345" @@ -59,24 +62,32 @@ def env(self): def clear(self): shutil.rmtree(os.path.join(self.dir, "tokens")) - def has_key(self, id: str): + def keys(self): urls = check_output(['p11tool', '--list-token-urls'], - env=dict(os.environ, **self.env())).decode('ascii') + env=dict(os.environ, **self.env())).decode('ascii') url = ssearch(urls, r'(pkcs11:.*SoftHSM.*)') - try: - keys = check_output(['p11tool', '-d 9999', '--login', '--set-pin', self.passwd, '--list-keys', url], - env=dict(os.environ, **self.env()), - stderr=open(Context().test.out_dir + "/p11tool.err", mode="a")).decode('ascii') - id_sep = ':'.join(textwrap.wrap(id, 2)) - key = ssearch(keys, r'(ID:.*%s.*)' % id_sep) - except CalledProcessError as e: - # p11tool sets exit status to 2 if there aren't any keys in SoftHSM. - if e.returncode == 2: - key = None - else: - raise Failed("'p11tool --list-keys' failed") - - return False if not key else len(key) > 0 + + # In case of concurrent access to SoftHSM, p11tool may fail or crash. Retry then. + MAX_TRIES = 3 + for tries in range(MAX_TRIES): + try: + output = check_output(['p11tool', '-d', '9999', '--login', '--set-pin', self.passwd, '--list-keys', url], + env=dict(os.environ, **self.env()), + stderr=open(Context().test.out_dir + "/p11tool.err", mode="a")).decode('ascii') + + return [key.removeprefix('ID: ').replace(":", "") for key in re.findall(r'(ID: .*)', output)] + except CalledProcessError as e: + # p11tool sets exit status to 2 if there aren't any keys in SoftHSM. + if e.returncode == 2: + return [] + else: + if tries < MAX_TRIES - 1: + time.sleep(random.uniform(0.4, 1.0)) + + raise Failed("'p11tool --list-keys' failed") + + def has_key(self, id: str): + return id in self.keys() def init(self, keystore=None): if not os.path.isdir(self.dir): From 67c6b42144e4834ef8348e734616026c8c1b9cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 23 Feb 2026 14:48:33 +0100 Subject: [PATCH 533/675] tests-extra: add default keystore as a variant of a PEM keystore --- tests-extra/tools/dnstest/keystore.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests-extra/tools/dnstest/keystore.py b/tests-extra/tools/dnstest/keystore.py index 190d66753e..7bdd973150 100644 --- a/tests-extra/tools/dnstest/keystore.py +++ b/tests-extra/tools/dnstest/keystore.py @@ -5,6 +5,7 @@ import shutil from subprocess import Popen, check_output from dnstest.context import Context +from dnstest.server import Server from dnstest.utils import * class Keystore(object): @@ -14,11 +15,16 @@ def __init__(self, id: str, ksk_only: bool = None, key_label: bool = None): self.key_label = key_label class KeystorePEM(Keystore): - def __init__(self, id: str, ksk_only: bool = None, key_label: bool = None): + def __init__(self, id: str, ksk_only: bool = None, key_label: bool = None, + server_default: Server = None): super().__init__(id, ksk_only, key_label) + self.server = server_default def config(self): - return os.path.join(Context().test.out_dir, f"{self.backend()}-{self.id}") + if self.server: + return os.path.join(self.server.keydir, "keys") + else: + return os.path.join(Context().test.out_dir, f"{self.backend()}-{self.id}") def backend(self): return "pem" From 8cb4369bf1d07dc04ae490c8a0549e25839c295a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 22 Dec 2025 14:10:47 +0100 Subject: [PATCH 534/675] tests-extra: add a new test dnssec/purge_keys --- tests-extra/tests/dnssec/purge_keys/test.py | 365 ++++++++++++++++++++ 1 file changed, 365 insertions(+) create mode 100644 tests-extra/tests/dnssec/purge_keys/test.py diff --git a/tests-extra/tests/dnssec/purge_keys/test.py b/tests-extra/tests/dnssec/purge_keys/test.py new file mode 100644 index 0000000000..712a499c3b --- /dev/null +++ b/tests-extra/tests/dnssec/purge_keys/test.py @@ -0,0 +1,365 @@ +#!/usr/bin/env python3 + +""" +Test of DNSSEC keys purging. +""" + +import os +import random +import shutil +from dnstest.utils import * +from dnstest.keys import Keymgr +from dnstest.keystore import KeystorePEM, KeystoreSoftHSM +from dnstest.test import Test + +def zone_ksks_zsks(server, zone, keystore=None): + env = keystore.env() if keystore is not None else None + _, keys, _ = Keymgr.run_check(server.confile, zone.name, "list", env=env) + + ksks, zsks = [], [] + for key in keys.strip().splitlines(): + cols = key.split() + if cols[1] == "ksk=yes": + ksks.append(cols[0]) + if cols[2] == "zsk=yes": + zsks.append(cols[0]) + + return ksks, zsks + +def zone_keys(server, zone, keystore=None): + ksks, zsks = zone_ksks_zsks(server, zone, keystore) + return ksks + zsks + +def check_key_count(keystore, expected): + files = 0 if keystore is None else len(keystore.keys()) + compare(files, expected, "privkey count in %s" % keystore.id) + +def check_keys_presence(keystore, keys, presence=True): + if keystore is None: + isset(keys is None, f"keystore None does not contain keys {keys}") + return + + keystore_keys = keystore.keys() + word = "" if presence else "not " + for key_id in keys: + isset((key_id in keystore_keys) is presence, f"key {key_id} {word}in keystore {keystore}") + +def check_keys_in_keystore(keystore, total, present, absent): + if keystore is None: + isset(total == 0, f"number of keys {total} matches keystore None") + isset(present is None, f"keystore None does not contain keys {present}") + return + + list = keystore.keys() + compare(len(list), total, "privkey count in %s" % keystore.id) + for key_id in (present or []): + isset(key_id in list, f"key {key_id} in keystore {keystore.id}") + for key_id in (absent or []): + isset(key_id not in list, f"key {key_id} not in keystore {keystore.id}") + +def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not2): + check_keys_in_keystore(keystore0, num0, keys0, not0) + check_keys_in_keystore(kstore_pem, num1, keys1, not1) + check_keys_in_keystore(kstore_hsm, num2, keys2, not2) + +t = Test() + +server = t.server("knot") +zones = t.zone_rnd(5, records=5) +t.link(zones, server) + +kstore_def = KeystorePEM("default keystore", server_default=server) +kstore_pem = KeystorePEM("keys1") +kstore_hsm = KeystoreSoftHSM("keys2") +kstore_hsm.link(server) + +server.dnssec(zones[0]).enable = True +server.dnssec(zones[0]).propagation_delay = 1 +# Default keystore for zones[0], not configured. + +server.dnssec(zones[1]).enable = True +server.dnssec(zones[1]).propagation_delay = 1 +server.dnssec(zones[1]).keystore = [ kstore_pem ] +server.dnssec(zones[1]).ksk_shared = True +server.dnssec(zones[1]).trash_delay = 0 + +server.dnssec(zones[2]).enable = True +server.dnssec(zones[2]).propagation_delay = 1 +server.dnssec(zones[2]).keystore = [ kstore_hsm ] +server.dnssec(zones[2]).trash_delay = 86400 + +server.dnssec(zones[3]).enable = True +server.dnssec(zones[3]).shared_policy_with = zones[1].name + +server.dnssec(zones[4]).enable = True +server.dnssec(zones[4]).propagation_delay = 1 +server.dnssec(zones[4]).keystore = [ kstore_hsm ] +server.dnssec(zones[4]).trash_delay = 86400 + +# Second server that shares keystores with the first server. +server2 = t.server("knot") +zones2 = t.zone_rnd(3) +t.link(zones2, server2) +kstore_hsm.link(server2) +kstore_def2 = None + +server2.dnssec(zones2[0]).enable = True +server2.dnssec(zones2[0]).propagation_delay = 1 +server2.dnssec(zones2[0]).keystore = [ kstore_pem ] + +server2.dnssec(zones2[1]).enable = True +server2.dnssec(zones2[1]).propagation_delay = 1 +server2.dnssec(zones2[1]).keystore = [ kstore_pem ] + +server2.dnssec(zones2[2]).enable = True +server2.dnssec(zones2[2]).propagation_delay = 1 +server2.dnssec(zones2[2]).keystore = [ kstore_hsm ] + +t.generate_conf() + +# Create 'foreign' keys in shared keystores. +server2.start() +serial2 = server2.zones_wait(zones2) +keys2_zone0 = zone_keys(server2, zones2[0]) +keys2_zone1 = zone_keys(server2, zones2[1]) +keys2_zone2 = zone_keys(server2, zones2[2], kstore_hsm) +server2.stop() + +# Start the actual test. (server2 must stay stopped, SoftHSM doesn't like concurrent use.) +server.start() + +serial = server.zones_wait(zones) +keys_zone0 = zone_keys(server, zones[0]) +keys_zone1_ksks, keys_zone1_zsks = zone_ksks_zsks(server, zones[1]) +keys_zone1 = keys_zone1_ksks + keys_zone1_zsks +keys_zone2 = zone_keys(server, zones[2], kstore_hsm) +keys_zone3 = zone_keys(server, zones[3]) +keys_zone4 = zone_keys(server, zones[4], kstore_hsm) + +################################ +# Purging keys of existing zones +################################ + +# When checking counts, don't forget to add number of keys from the other server. +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) +check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 4 + 2, keys2_zone2, None) + +bckdir = os.path.join(server.dir, "backup") +server.ctl("zone-backup +backupdir %s" % bckdir, wait=True) + +# Test that keys aren't purged as a part of KASP DB purge. +server.ctl("-f zone-purge +kaspdb %s" % zones[1].name, wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) +server.ctl("-f zone-purge %s" % zones[2].name, wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) + +# Test that keys aren't purged in default purge. +server.ctl("-f zone-purge %s" % zones[1].name, wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) +server.ctl("-f zone-purge +kaspdb %s" % zones[2].name, wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) + +# Test that keys are purged when they should be, but a shared KSK key isn't affected. +server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone3, set(keys_zone1) - set(keys_zone3), 4 + 2, keys_zone2 + keys_zone4, None) +server.ctl("-f zone-purge +keys %s" % zones[2].name, wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone3, set(keys_zone1) - set(keys_zone3), 2 + 2, keys_zone4, keys_zone2) + +# Test that a shared KSK key is purged with the last user. +server.ctl("-f zone-purge +keys %s" % zones[3].name, wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 2 + 2, keys_zone4, keys_zone2) + +# Test that non-defined (foreign) keys remain untouched. +check_keys(kstore_def2, 0, None, None, 0 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) + +server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[2].name), + wait=True) +# Keys in HSM cannot be backed up/restored, but their parameters are restored back to KASP DB. +check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, None, 2 + 2, keys_zone4, keys_zone2) + +# Test that a missing key doesn't matter in keys purging. +pem_file0 = os.path.join(kstore_pem.config(), keys_zone1[0]) + ".pem" +os.remove(pem_file0) +server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 2 + 2, keys_zone4, keys_zone2) + +# Test that a failed delete returns an error. +server.ctl("zone-restore +backupdir %s %s" % (bckdir, zones[1].name), wait=True) +server.zone_wait(zones[1]) +check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 2 + 2, keys_zone4, keys_zone2) +os.chmod(kstore_pem.config(), 0o550) # Read-only PEM directory. +try: + server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) + test_failed = True + # The directory mode needs to be reset for the test maintenance. +except: + test_failed = False +os.chmod(kstore_pem.config(), 0o750) # Reset the PEM directory mode. +if test_failed: + set_err("FAILED DELETE NOT REPORTED") + +# Test that the key isn't purged from a keystore not defined for the zone. +check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 2 + 2, keys_zone4, keys_zone2) + +kstore_pem2 = KeystorePEM("keys3") +server.dnssec(zones[1]).keystore = [ kstore_pem2 ] + +server.dnssec(zones[3]).shared_policy_with = None +server.dnssec(zones[3]).ksk_shared = False +server.dnssec(zones[3]).propagation_delay = 1 +server.dnssec(zones[3]).keystore = [ kstore_pem ] +server.dnssec(zones[3]).trash_delay = 0 +server.gen_confile() +server.reload() + +server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[3].name), wait=True) +server.zones_wait([zones[0], zones[1], zones[3]]) +# There are two instances of the same KSK key now, which was shared originally. +# Keys of zones[1] remained as orphans in kstore_pem. +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) +check_keys_in_keystore(kstore_pem2, 2, keys_zone1, None) +server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) +# The KSK key of zones[1] is still in kstore_pem2, because the key with same ID is +# used by zone[3]. A different copy of the key, though. +check_keys_in_keystore(kstore_pem2, 1, keys_zone1_ksks, keys_zone1_zsks) +# There are keys_zone3, orphaned keys_zone1 and keys from server2 in kstore_pem. +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) + +server.ctl("-f zone-purge +keys %s" % zones[3].name, wait=True) +# The shared KSK removed, the orphaned ZSK from zones[1] still remains in kstore_pem. +check_keys(kstore_def, 2, keys_zone0, None, 1 + 4, keys_zone1_zsks, set(keys_zone3) - set(keys_zone1), 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def2, 0, None, None, 1 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) +check_keys_in_keystore(kstore_pem2, 1, keys_zone1_ksks, keys_zone1_zsks) + +server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[3].name), + wait=True) +server.zones_wait([zones[0], zones[1], zones[3]]) +# The orphaned ZSK from zones[1] still remains in kstore_pem. +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone3 + keys_zone1_zsks, None, 2 + 2, keys_zone4, keys_zone2) +check_keys_in_keystore(kstore_pem2, 2, keys_zone1, None) + +####################### +# Purging orphaned keys +####################### + +# Revert to the original configuration and restore data (except keys in HSM). +server.dnssec(zones[1]).keystore = [ kstore_pem ] +server.dnssec(zones[3]).shared_policy_with = zones[1].name +server.gen_confile() +server.reload() +server.zones_wait([zones[0], zones[1], zones[3]]) + +server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[3].name), wait=True) +server.zones_wait([zones[0], zones[1], zones[3]]) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) +check_keys_in_keystore(kstore_pem2, 2, keys_zone1, None) + +# Deconfigure zones[1] and zones[3] -- create orphans. +confsock = server.ctl_sock_rnd() +server.ctl("conf-begin", custom_parm=confsock) +server.ctl("conf-unset zone[%s]" % zones[1].name, custom_parm=confsock) +server.ctl("conf-unset zone[%s]" % zones[3].name, custom_parm=confsock) +server.ctl("conf-commit", custom_parm=confsock) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) + +# Test that the orphan keys aren't purged in regular keys purge. +try: + server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) + set_err("PURGING FROM UNCONFIGURED ZONE") +except: + pass +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) + +# Test that keys aren't purged in KASP DB orphan purge. +server.ctl("-f zone-purge +orphan +kaspdb %s" % zones[1].name, wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) + +# Test that keys aren't purged in default orphan purge. +server.ctl("-f zone-purge +orphan %s" % zones[1].name, wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) + +# Test that a failed orphan delete returns an error. +os.chmod(kstore_pem.config(), 0o550) # Read-only PEM directory. +try: + server.ctl("-f zone-purge +orphan +keys %s" % zones[1].name, wait=True) + test_failed = True + # The directory mode needs to be reset for the test maintenance. +except: + test_failed = False +os.chmod(kstore_pem.config(), 0o750) # Reset the PEM directory mode. +if test_failed: + set_err("FAILED ORPHAN DELETE NOT REPORTED") +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) +# Check what was removed from KASP DB, it depends on records order in KASP DB. +# The shared KSK is orphaned in both zones! +keys_zone1_ksks_now, keys_zone1_zsks_now = zone_ksks_zsks(server, zones[1]) +zsk_deleted_first = (keys_zone1_ksks == keys_zone1_ksks_now) + +# Test that orphaned keys are purged, but not orphans from other zones. +server.ctl("-f zone-purge +orphan +keys %s" % zones[3].name, wait=True) +if zsk_deleted_first: + # keys_zone1_zsks were deleted first from KASP DB, keys_zone1_ksks were therefore kept. + check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 2 + 2, keys_zone4, keys_zone2) +else: + # keys_zone1_ksks were deleted first from KASP DB. + check_keys(kstore_def, 2, keys_zone0, None, 1 + 4, set(keys_zone1) - set(keys_zone3), keys_zone3, 2 + 2, keys_zone4, keys_zone2) + +# Test that a missing key doesn't matter in orphan keys purging and that orphan keys are purged. +pem_file0 = os.path.join(kstore_pem.config(), keys_zone1_zsks[0]) + ".pem" +os.remove(pem_file0) +# Test that keys are purged in orphan keys purge. +server.ctl("-f zone-purge +orphan +keys --", wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 2 + 2, keys_zone4, keys_zone2) + +#################### +# Use of a trash bin +#################### + +# Restore config, zones and data (except keys in HSM). +server.ctl("-f zone-purge +keys %s" % zones[2].name, wait=True) +server.reload() +server.zones_wait([zones[0], zones[1], zones[3]]) +server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[3].name), wait=True) +server.ctl("zone-restore +zonefile +nokaspdb +backupdir %s %s" % (bckdir, zones[2].name), wait=True) +server.zones_wait(zones) +keys_zone2 = zone_keys(server, zones[2], kstore_hsm) # New generated zones[2] keys in HSM. +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) + +# Activate trash bin for zones zones[1] and zones[3]. +server.dnssec(zones[1]).trash_delay = 86400 +server.dnssec(zones[3]).trash_delay = 86400 +server.gen_confile() # Needed by keymgr. +# Skipping server reload to avoid delays because of Valgrind (don't slow down the test). +server.ctl("conf-begin", custom_parm=confsock) +server.ctl("conf-set policy[%s].trash-delay 86400" % zones[1].name, custom_parm=confsock) +server.ctl("conf-set policy[%s].trash-delay 86400" % zones[3].name, custom_parm=confsock) +server.ctl("conf-commit", custom_parm=confsock) +server.ctl("zone-reload %s %s" % (zones[1].name, zones[3].name), custom_parm=confsock) +server.zones_wait([zones[0], zones[1], zones[3]]) + +server.ctl("zone-freeze", wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) + +# Test that deleted keys end in the trash bin (i.e. they remain in keystores). +keys_zone1_ksks_now, keys_zone1_zsks_now = zone_ksks_zsks(server, zones[1]) +keys_zone3_ksks_now, keys_zone3_zsks_now = zone_ksks_zsks(server, zones[3]) +keys_zone4_ksks_now, keys_zone4_zsks_now = zone_ksks_zsks(server, zones[4], kstore_hsm) +Keymgr.run_check(server.confile, zones[1].name, "delete", keys_zone1_ksks_now[0]) +Keymgr.run_check(server.confile, zones[1].name, "delete", keys_zone1_zsks_now[0]) +Keymgr.run_check(server.confile, zones[3].name, "delete", keys_zone3_ksks_now[0]) +Keymgr.run_check(server.confile, zones[3].name, "delete", keys_zone3_zsks_now[0]) +Keymgr.run_check(server.confile, zones[4].name, "delete", keys_zone4_ksks_now[0], env=kstore_hsm.env()) +Keymgr.run_check(server.confile, zones[4].name, "delete", keys_zone4_zsks_now[0], env=kstore_hsm.env()) +# Verify that the keys are removed from the zones, but remain in keystores. +compare(zone_ksks_zsks(server, zones[1]), ([], []), "deleted keys from zone %s" % zones[1].name) +compare(zone_ksks_zsks(server, zones[3]), ([], []), "deleted keys from zone %s" % zones[3].name) +compare(zone_ksks_zsks(server, zones[4], kstore_hsm), ([], []), "deleted keys from zone %s" % zones[4].name) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) + +# Test that "zone-purge -f +orphan +keys --" cleans the trash bin (removes trash from keystores). +server.ctl("-f zone-purge +orphan +keys --", wait=True) +check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 2 + 2, keys_zone2, keys_zone4) +check_keys(kstore_def2, 0, None, None, 0 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) + +t.end() From eedf5167f2a1eeb5da98655e6a8c8cdfe45bb4d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 23 Feb 2026 22:14:38 +0100 Subject: [PATCH 535/675] tests-extra: dnssec/purge_keys -- remove all concurrent accesses to SoftHSM2 Contrary the SoftHSM2 specification, it seems that SoftHSM2 doesn't work well when it's token is accessed two or more times in parallel. --- tests-extra/tests/dnssec/purge_keys/test.py | 101 ++++++++++---------- 1 file changed, 52 insertions(+), 49 deletions(-) diff --git a/tests-extra/tests/dnssec/purge_keys/test.py b/tests-extra/tests/dnssec/purge_keys/test.py index 712a499c3b..fedbb34073 100644 --- a/tests-extra/tests/dnssec/purge_keys/test.py +++ b/tests-extra/tests/dnssec/purge_keys/test.py @@ -60,12 +60,14 @@ def check_keys_in_keystore(keystore, total, present, absent): def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not2): check_keys_in_keystore(keystore0, num0, keys0, not0) check_keys_in_keystore(kstore_pem, num1, keys1, not1) + server.ctl("zone-freeze %s" % zones[2].name, wait=True) # Avoid concurrent access to SoftHSM. check_keys_in_keystore(kstore_hsm, num2, keys2, not2) + server.ctl("zone-thaw %s" % zones[2].name, wait=True) t = Test() server = t.server("knot") -zones = t.zone_rnd(5, records=5) +zones = t.zone_rnd(4, records=5) t.link(zones, server) kstore_def = KeystorePEM("default keystore", server_default=server) @@ -91,11 +93,6 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not server.dnssec(zones[3]).enable = True server.dnssec(zones[3]).shared_policy_with = zones[1].name -server.dnssec(zones[4]).enable = True -server.dnssec(zones[4]).propagation_delay = 1 -server.dnssec(zones[4]).keystore = [ kstore_hsm ] -server.dnssec(zones[4]).trash_delay = 86400 - # Second server that shares keystores with the first server. server2 = t.server("knot") zones2 = t.zone_rnd(3) @@ -122,7 +119,9 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not serial2 = server2.zones_wait(zones2) keys2_zone0 = zone_keys(server2, zones2[0]) keys2_zone1 = zone_keys(server2, zones2[1]) +server2.ctl("zone-freeze %s" % zones2[2].name, wait=True) keys2_zone2 = zone_keys(server2, zones2[2], kstore_hsm) +server2.ctl("zone-thaw %s" % zones2[2].name, wait=True) server2.stop() # Start the actual test. (server2 must stay stopped, SoftHSM doesn't like concurrent use.) @@ -134,59 +133,58 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not keys_zone1 = keys_zone1_ksks + keys_zone1_zsks keys_zone2 = zone_keys(server, zones[2], kstore_hsm) keys_zone3 = zone_keys(server, zones[3]) -keys_zone4 = zone_keys(server, zones[4], kstore_hsm) ################################ # Purging keys of existing zones ################################ # When checking counts, don't forget to add number of keys from the other server. -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) -check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 4 + 2, keys2_zone2, None) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) +check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) bckdir = os.path.join(server.dir, "backup") server.ctl("zone-backup +backupdir %s" % bckdir, wait=True) # Test that keys aren't purged as a part of KASP DB purge. server.ctl("-f zone-purge +kaspdb %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) server.ctl("-f zone-purge %s" % zones[2].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) # Test that keys aren't purged in default purge. server.ctl("-f zone-purge %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) server.ctl("-f zone-purge +kaspdb %s" % zones[2].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) # Test that keys are purged when they should be, but a shared KSK key isn't affected. server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone3, set(keys_zone1) - set(keys_zone3), 4 + 2, keys_zone2 + keys_zone4, None) +check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone3, set(keys_zone1) - set(keys_zone3), 2 + 2, keys_zone2, None) server.ctl("-f zone-purge +keys %s" % zones[2].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone3, set(keys_zone1) - set(keys_zone3), 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone3, set(keys_zone1) - set(keys_zone3), 0 + 2, None, keys_zone2) # Test that a shared KSK key is purged with the last user. server.ctl("-f zone-purge +keys %s" % zones[3].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 0 + 2, None, keys_zone2) # Test that non-defined (foreign) keys remain untouched. -check_keys(kstore_def2, 0, None, None, 0 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) +check_keys(kstore_def2, 0, None, None, 0 + 4, keys2_zone0 + keys2_zone1, None, 0 + 2, keys2_zone2, None) server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[2].name), wait=True) # Keys in HSM cannot be backed up/restored, but their parameters are restored back to KASP DB. -check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, None, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, None, 0 + 2, 0, keys_zone2) # Test that a missing key doesn't matter in keys purging. pem_file0 = os.path.join(kstore_pem.config(), keys_zone1[0]) + ".pem" os.remove(pem_file0) server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 0 + 2, None, keys_zone2) # Test that a failed delete returns an error. server.ctl("zone-restore +backupdir %s %s" % (bckdir, zones[1].name), wait=True) server.zone_wait(zones[1]) -check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 0 + 2, None, keys_zone2) os.chmod(kstore_pem.config(), 0o550) # Read-only PEM directory. try: server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) @@ -199,7 +197,7 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not set_err("FAILED DELETE NOT REPORTED") # Test that the key isn't purged from a keystore not defined for the zone. -check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 0 + 2, None, keys_zone2) kstore_pem2 = KeystorePEM("keys3") server.dnssec(zones[1]).keystore = [ kstore_pem2 ] @@ -216,27 +214,27 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not server.zones_wait([zones[0], zones[1], zones[3]]) # There are two instances of the same KSK key now, which was shared originally. # Keys of zones[1] remained as orphans in kstore_pem. -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) check_keys_in_keystore(kstore_pem2, 2, keys_zone1, None) server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) # The KSK key of zones[1] is still in kstore_pem2, because the key with same ID is # used by zone[3]. A different copy of the key, though. check_keys_in_keystore(kstore_pem2, 1, keys_zone1_ksks, keys_zone1_zsks) # There are keys_zone3, orphaned keys_zone1 and keys from server2 in kstore_pem. -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) -check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) +check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 0 + 2, keys2_zone2, None) server.ctl("-f zone-purge +keys %s" % zones[3].name, wait=True) # The shared KSK removed, the orphaned ZSK from zones[1] still remains in kstore_pem. -check_keys(kstore_def, 2, keys_zone0, None, 1 + 4, keys_zone1_zsks, set(keys_zone3) - set(keys_zone1), 2 + 2, keys_zone4, keys_zone2) -check_keys(kstore_def2, 0, None, None, 1 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) +check_keys(kstore_def, 2, keys_zone0, None, 1 + 4, keys_zone1_zsks, set(keys_zone3) - set(keys_zone1), 0 + 2, None, keys_zone2) +check_keys(kstore_def2, 0, None, None, 1 + 4, keys2_zone0 + keys2_zone1, None, 0 + 2, keys2_zone2, None) check_keys_in_keystore(kstore_pem2, 1, keys_zone1_ksks, keys_zone1_zsks) server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[3].name), wait=True) server.zones_wait([zones[0], zones[1], zones[3]]) # The orphaned ZSK from zones[1] still remains in kstore_pem. -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone3 + keys_zone1_zsks, None, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone3 + keys_zone1_zsks, None, 0 + 2, None, keys_zone2) check_keys_in_keystore(kstore_pem2, 2, keys_zone1, None) ####################### @@ -252,7 +250,7 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[3].name), wait=True) server.zones_wait([zones[0], zones[1], zones[3]]) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) check_keys_in_keystore(kstore_pem2, 2, keys_zone1, None) # Deconfigure zones[1] and zones[3] -- create orphans. @@ -261,7 +259,7 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not server.ctl("conf-unset zone[%s]" % zones[1].name, custom_parm=confsock) server.ctl("conf-unset zone[%s]" % zones[3].name, custom_parm=confsock) server.ctl("conf-commit", custom_parm=confsock) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) # Test that the orphan keys aren't purged in regular keys purge. try: @@ -269,15 +267,15 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not set_err("PURGING FROM UNCONFIGURED ZONE") except: pass -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) # Test that keys aren't purged in KASP DB orphan purge. server.ctl("-f zone-purge +orphan +kaspdb %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) # Test that keys aren't purged in default orphan purge. server.ctl("-f zone-purge +orphan %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) # Test that a failed orphan delete returns an error. os.chmod(kstore_pem.config(), 0o550) # Read-only PEM directory. @@ -290,7 +288,7 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not os.chmod(kstore_pem.config(), 0o750) # Reset the PEM directory mode. if test_failed: set_err("FAILED ORPHAN DELETE NOT REPORTED") -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) # Check what was removed from KASP DB, it depends on records order in KASP DB. # The shared KSK is orphaned in both zones! keys_zone1_ksks_now, keys_zone1_zsks_now = zone_ksks_zsks(server, zones[1]) @@ -300,17 +298,17 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not server.ctl("-f zone-purge +orphan +keys %s" % zones[3].name, wait=True) if zsk_deleted_first: # keys_zone1_zsks were deleted first from KASP DB, keys_zone1_ksks were therefore kept. - check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 2 + 2, keys_zone4, keys_zone2) + check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 0 + 2, None, keys_zone2) else: # keys_zone1_ksks were deleted first from KASP DB. - check_keys(kstore_def, 2, keys_zone0, None, 1 + 4, set(keys_zone1) - set(keys_zone3), keys_zone3, 2 + 2, keys_zone4, keys_zone2) + check_keys(kstore_def, 2, keys_zone0, None, 1 + 4, set(keys_zone1) - set(keys_zone3), keys_zone3, 0 + 2, None, keys_zone2) # Test that a missing key doesn't matter in orphan keys purging and that orphan keys are purged. pem_file0 = os.path.join(kstore_pem.config(), keys_zone1_zsks[0]) + ".pem" os.remove(pem_file0) # Test that keys are purged in orphan keys purge. server.ctl("-f zone-purge +orphan +keys --", wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 2 + 2, keys_zone4, keys_zone2) +check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 0 + 2, None, keys_zone2) #################### # Use of a trash bin @@ -324,7 +322,8 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not server.ctl("zone-restore +zonefile +nokaspdb +backupdir %s %s" % (bckdir, zones[2].name), wait=True) server.zones_wait(zones) keys_zone2 = zone_keys(server, zones[2], kstore_hsm) # New generated zones[2] keys in HSM. -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) +check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) # Activate trash bin for zones zones[1] and zones[3]. server.dnssec(zones[1]).trash_delay = 86400 @@ -336,30 +335,34 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not server.ctl("conf-set policy[%s].trash-delay 86400" % zones[3].name, custom_parm=confsock) server.ctl("conf-commit", custom_parm=confsock) server.ctl("zone-reload %s %s" % (zones[1].name, zones[3].name), custom_parm=confsock) -server.zones_wait([zones[0], zones[1], zones[3]]) - +server.zones_wait(zones) server.ctl("zone-freeze", wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) # Test that deleted keys end in the trash bin (i.e. they remain in keystores). +keys_zone0_ksks_now, keys_zone0_zsks_now = zone_ksks_zsks(server, zones[0]) keys_zone1_ksks_now, keys_zone1_zsks_now = zone_ksks_zsks(server, zones[1]) +keys_zone2_ksks_now, keys_zone2_zsks_now = zone_ksks_zsks(server, zones[2], kstore_hsm) keys_zone3_ksks_now, keys_zone3_zsks_now = zone_ksks_zsks(server, zones[3]) -keys_zone4_ksks_now, keys_zone4_zsks_now = zone_ksks_zsks(server, zones[4], kstore_hsm) +Keymgr.run_check(server.confile, zones[0].name, "delete", keys_zone0_ksks_now[0]) +Keymgr.run_check(server.confile, zones[0].name, "delete", keys_zone0_zsks_now[0]) Keymgr.run_check(server.confile, zones[1].name, "delete", keys_zone1_ksks_now[0]) -Keymgr.run_check(server.confile, zones[1].name, "delete", keys_zone1_zsks_now[0]) +# Keep this: Keymgr.run_check(server.confile, zones[1].name, "delete", keys_zone1_zsks_now[0]) +Keymgr.run_check(server.confile, zones[2].name, "delete", keys_zone2_ksks_now[0], env=kstore_hsm.env()) +# Kepp this: Keymgr.run_check(server.confile, zones[2].name, "delete", keys_zone2_zsks_now[0], env=kstore_hsm.env()) Keymgr.run_check(server.confile, zones[3].name, "delete", keys_zone3_ksks_now[0]) Keymgr.run_check(server.confile, zones[3].name, "delete", keys_zone3_zsks_now[0]) -Keymgr.run_check(server.confile, zones[4].name, "delete", keys_zone4_ksks_now[0], env=kstore_hsm.env()) -Keymgr.run_check(server.confile, zones[4].name, "delete", keys_zone4_zsks_now[0], env=kstore_hsm.env()) # Verify that the keys are removed from the zones, but remain in keystores. -compare(zone_ksks_zsks(server, zones[1]), ([], []), "deleted keys from zone %s" % zones[1].name) +compare(zone_ksks_zsks(server, zones[0]), ([], []), "deleted keys from zone %s" % zones[0].name) +compare(zone_ksks_zsks(server, zones[1]), ([], keys_zone1_zsks_now), "deleted keys from zone %s" % zones[1].name) +compare(zone_ksks_zsks(server, zones[2], kstore_hsm), ([], keys_zone2_zsks_now), "deleted keys from zone %s" % zones[2].name) compare(zone_ksks_zsks(server, zones[3]), ([], []), "deleted keys from zone %s" % zones[3].name) -compare(zone_ksks_zsks(server, zones[4], kstore_hsm), ([], []), "deleted keys from zone %s" % zones[4].name) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 4 + 2, keys_zone2 + keys_zone4, None) +check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) # Test that "zone-purge -f +orphan +keys --" cleans the trash bin (removes trash from keystores). server.ctl("-f zone-purge +orphan +keys --", wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 2 + 2, keys_zone2, keys_zone4) -check_keys(kstore_def2, 0, None, None, 0 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) +check_keys(kstore_def, 0, None, keys_zone0, 1 + 4, keys_zone1_zsks_now, set(keys_zone1 + keys_zone3) - set(keys_zone1_zsks_now), + 1 + 2, keys_zone2_zsks_now, set(keys_zone2) - set (keys_zone2_zsks_now)) +check_keys(kstore_def2, 0, None, None, 1 + 4, keys2_zone0 + keys2_zone1, None, 1 + 2, keys2_zone2, None) t.end() From cf8ced36acb8391f6ae33db7804ad3699b43e761 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 13 May 2026 14:23:26 +0200 Subject: [PATCH 536/675] kasp: remove obsolete FIXME --- src/knot/dnssec/kasp/kasp_zone.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index 7f0fa9d2bf..dd662983fa 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -9,8 +9,6 @@ #include "knot/dnssec/zone-keys.h" #include "libknot/dnssec/binary.h" -// FIXME DNSSEC errors versus knot errors - /*! * Check if key parameters allow to create a key. */ From 1ef5facddf2579c4a7077fb8bc7cb828a09df69c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 18 May 2026 22:35:07 +0200 Subject: [PATCH 537/675] kaspdb: make deletion timestamp a part of a trash-key record --- src/knot/dnssec/kasp/kasp_db.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index e8136d0394..a82235ef84 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -222,11 +222,14 @@ static bool params_deserialize(const MDB_val *val, key_params_t *params) return false; } -static MDB_val trash_serialize(const key_params_t *params, uint64_t expir) +static MDB_val trash_serialize(const key_params_t *params, + uint64_t deleted, uint64_t expires) { uint8_t flags = flags_serialize(params); - return knot_lmdb_make_key("LHBB", expir, params->keytag, params->algorithm, flags); + // expires must go first because of faster checking/deserialization. + return knot_lmdb_make_key("LLHBB", expires, deleted, + params->keytag, params->algorithm, flags); } static key_params_t *txn2params(knot_lmdb_txn_t *txn) @@ -318,9 +321,9 @@ static int make_trash_key(knot_lmdb_txn_t *txn, MDB_val *key, MDB_val *val, uint return KNOT_EMALF; } free(params.public_key.data); - uint64_t expir = (uint64_t)knot_time() + delay; + uint64_t now = knot_time(); MDB_val nkey = make_key_str(KASPDBKEY_TRASH, dname, str); - MDB_val nval = trash_serialize(¶ms, expir); + MDB_val nval = trash_serialize(¶ms, now, now + delay); knot_lmdb_insert(txn, &nkey, &nval); ret = txn->ret; free(nkey.mv_data); From 1cf8d014686711e37a2ccd6e71794283ebe14216 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 20 May 2026 16:49:56 +0200 Subject: [PATCH 538/675] kdig: fix collision if both +https and +quic are specified --- src/utils/kdig/kdig_params.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index 396e1bc425..422fb3603b 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -892,6 +892,7 @@ static int opt_https(const char *arg, void *query) query_t *q = query; q->https.enable = true; + q->quic.enable = false; if (arg != NULL) { const char *resource = strstr(arg, "://"); @@ -973,6 +974,7 @@ static int opt_quic(const char *arg, void *query) query_t *q = query; q->quic.enable = true; + q->https.enable = false; opt_tls(arg, query); opt_notcp(arg, query); From 4e4649102377532e8f6b596ee20be6e2342dadf1 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 22 May 2026 19:08:00 +0200 Subject: [PATCH 539/675] kasp: fix compilation error: initializer element is not constant --- src/knot/dnssec/kasp/kasp_db.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index a82235ef84..60330c2e17 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -40,7 +40,8 @@ static const keyclass_t ordered_classes[] = { KASPDBKEY_OFFLINE_RECORDS, KASPDBKEY_SAVED_TTLS, }; -static const size_t ordered_classes_size = sizeof(ordered_classes) / sizeof(*ordered_classes); +// This must be a macro because some compilers don't consider its value a constant. +#define ORDERED_CLASSES_SIZE (sizeof(ordered_classes) / sizeof(*ordered_classes)) // DNSSEC key metadata. static const keyclass_t *key_classes = ordered_classes + NUM_TRASH_CLASSES; @@ -48,11 +49,11 @@ static const size_t key_classes_size = NUM_KEY_CLASSES; // Zone related classes (but not DNSSEC key metadata). static const keyclass_t *zone_classes = ordered_classes + NUM_TRASH_CLASSES + NUM_KEY_CLASSES; -static const size_t zone_classes_size = ordered_classes_size - NUM_TRASH_CLASSES - NUM_KEY_CLASSES; +static const size_t zone_classes_size = ORDERED_CLASSES_SIZE - NUM_TRASH_CLASSES - NUM_KEY_CLASSES; // KASP related classes (including DNSSEC keys, for backup/restore). static const keyclass_t *kasp_classes = ordered_classes + NUM_TRASH_CLASSES; -static const size_t kasp_classes_size = ordered_classes_size - NUM_TRASH_CLASSES; +static const size_t kasp_classes_size = ORDERED_CLASSES_SIZE - NUM_TRASH_CLASSES; static bool is_related_class(const keyclass_t* classes, const size_t classes_size, uint8_t class) { From 62d968c6a5e19465ec409715f7403ad00b1d67ba Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 12 May 2026 12:42:27 +0200 Subject: [PATCH 540/675] knotc: allow -- with zone-serial-set and zone-key-rollover --- src/knot/ctl/commands.c | 7 +++++++ src/utils/knotc/commands.c | 27 +++++++++++++++++++++++---- src/utils/knotc/commands.h | 1 + 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 34efe98b58..ee1db9867a 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1100,6 +1100,8 @@ static int zone_serial_set(zone_t *zone, ctl_args_t *args) ret = zone_txn_commit_l(zone, args); } if (ret != KNOT_EOK) { + log_zone_error(zone->name, "failed to set SOA serial (%s)", + knot_strerror(ret)); zone_txn_abort_l(zone, args); } } @@ -1107,7 +1109,12 @@ static int zone_serial_set(zone_t *zone, ctl_args_t *args) if (!serial_set_do && ret == KNOT_EOK) { send_ctx_t *ctx = &ctl_globals[args->thread_idx].send_ctx; + memset(ctx, 0, sizeof(*ctx)); + ctx->data[KNOT_CTL_IDX_ZONE] = ctx->zone; ctx->data[KNOT_CTL_IDX_DATA] = ctx->ttl; + if (knot_dname_to_str(ctx->zone, zone->name, sizeof(ctx->zone)) == NULL) { + ctx->zone[0] = '\0'; + } (void)snprintf(ctx->ttl, sizeof(ctx->ttl), "%u", return_serial); ret = knot_ctl_send(args->ctl, KNOT_CTL_TYPE_DATA, &ctx->data); } diff --git a/src/utils/knotc/commands.c b/src/utils/knotc/commands.c index 73d9e7d80e..f58c82e97e 100644 --- a/src/utils/knotc/commands.c +++ b/src/utils/knotc/commands.c @@ -330,7 +330,13 @@ static void format_data(cmd_args_t *args, knot_ctl_type_t data_type, printf("error: (%s)", error); *empty = false; } else if (value != NULL) { - printf("%s", value); + printf("%s%s%s%s%s%s", + (!(*empty) ? "\n" : ""), + (args->all_zones ? "[" : ""), + (args->all_zones ? zone : ""), + (args->all_zones ? "] " : ""), + (args->all_zones ? "serial: " : ""), + value); *empty = false; } break; @@ -477,6 +483,8 @@ static int set_stats_items(cmd_args_t *args, knot_ctl_data_t *data) if (args->argc > idx && args->desc->cmd == CTL_ZONE_STATS) { if (strcmp(args->argv[idx], "--") != 0) { (*data)[KNOT_CTL_IDX_ZONE] = args->argv[idx]; + } else { + args->all_zones = true; } idx++; } @@ -597,6 +605,11 @@ static int cmd_zone_key_roll_ctl(cmd_args_t *args) [KNOT_CTL_IDX_TYPE] = args->argv[1], }; + if (strcmp(data[KNOT_CTL_IDX_ZONE], "--") == 0) { + data[KNOT_CTL_IDX_ZONE] = NULL; + args->all_zones = true; + } + CTL_SEND_DATA CTL_SEND_BLOCK @@ -616,6 +629,11 @@ static int cmd_zone_serial_ctl(cmd_args_t *args) [KNOT_CTL_IDX_ZONE] = args->argv[0], }; + if (strcmp(data[KNOT_CTL_IDX_ZONE], "--") == 0) { + data[KNOT_CTL_IDX_ZONE] = NULL; + args->all_zones = true; + } + if (args->argc > 1) { bool incr = args->argv[1][0] == '+'; const char *value = incr ? args->argv[1] + 1 : args->argv[1]; @@ -775,7 +793,6 @@ static int cmd_zone_ctl(cmd_args_t *args) // Second, process zones. int ret; int sentzones = 0; - bool twodash = false; for (int i = 0; i < args->argc; i++) { // Skip filters. if (args->argv[i][0] == '+') { @@ -790,11 +807,11 @@ static int cmd_zone_ctl(cmd_args_t *args) CTL_SEND_DATA sentzones++; } else { - twodash = true; + args->all_zones = true; } } - if ((args->desc->flags & CMD_FREQ_ZONE) && sentzones == 0 && !twodash) { + if ((args->desc->flags & CMD_FREQ_ZONE) && sentzones == 0 && !args->all_zones) { log_error("zone must be specified (or -- for all zones)"); return KNOT_EDENIED; } @@ -850,6 +867,8 @@ static int set_node_items(cmd_args_t *args, knot_ctl_data_t *data, char *rdata, assert(args->argc > idx); if (strcmp(args->argv[idx], "--") != 0) { (*data)[KNOT_CTL_IDX_ZONE] = args->argv[idx]; + } else { + args->all_zones = true; } idx++; diff --git a/src/utils/knotc/commands.h b/src/utils/knotc/commands.h index 98667d3485..0e14c95afa 100644 --- a/src/utils/knotc/commands.h +++ b/src/utils/knotc/commands.h @@ -93,6 +93,7 @@ typedef struct { bool color; bool color_force; bool blocking; + bool all_zones; // "--" was specified } cmd_args_t; /*! \brief Command callback description. */ From 3d26990f69f29ad921e0d8b6fad0dd314e8ed829 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 21 May 2026 14:26:03 +0200 Subject: [PATCH 541/675] knotc: refactor, unify, and improve command output processing --- src/utils/knotc/commands.c | 443 ++++++++++++++++++++----------------- 1 file changed, 236 insertions(+), 207 deletions(-) diff --git a/src/utils/knotc/commands.c b/src/utils/knotc/commands.c index f58c82e97e..55426ae271 100644 --- a/src/utils/knotc/commands.c +++ b/src/utils/knotc/commands.c @@ -141,24 +141,53 @@ static int get_conf_key(char *key, knot_ctl_data_t *data) return KNOT_EOK; } -static void format_data(cmd_args_t *args, knot_ctl_type_t data_type, - knot_ctl_data_t *data, bool *empty) +typedef enum { + FIRST_LINE, + SOME_DATA, + NEXT_LINE, + RECV_ERR, +} print_state_t; + +static const char *print_prefix(print_state_t *state) +{ + switch (*state) { + case FIRST_LINE: return ""; + case SOME_DATA: return " "; + case NEXT_LINE: return "\n"; + default: return ""; + } +} + +static void print_common(cmd_args_t *args, knot_ctl_data_t *data, print_state_t *state, + const char *col) +{ + const char *error = (*data)[KNOT_CTL_IDX_ERROR]; + const char *zone = (*data)[KNOT_CTL_IDX_ZONE]; + + const char *color = ""; + if (col != NULL) { + color = (col[0] != '\0') ? col : COL_BOLD(col); + } + + if (error != NULL) { + printf("%serror: (%s)", print_prefix(state), error); + *state = SOME_DATA; + } + + if (zone != NULL && (error != NULL || args->all_zones || args->desc->flags & CMD_FOPT_ZONE)) { + printf("%s[%s%s%s]", print_prefix(state), color, zone, COL_RST(col)); + *state = SOME_DATA; + } +} + +static void print_data_item(knot_ctl_data_t *data, print_state_t *state) { - const char *error = (*data)[KNOT_CTL_IDX_ERROR]; const char *filters = (*data)[KNOT_CTL_IDX_FILTERS]; const char *key0 = (*data)[KNOT_CTL_IDX_SECTION]; const char *key1 = (*data)[KNOT_CTL_IDX_ITEM]; const char *id = (*data)[KNOT_CTL_IDX_ID]; - const char *zone = (*data)[KNOT_CTL_IDX_ZONE]; const char *owner = (*data)[KNOT_CTL_IDX_OWNER]; const char *ttl = (*data)[KNOT_CTL_IDX_TTL]; - const char *type = (*data)[KNOT_CTL_IDX_TYPE]; - const char *value = (*data)[KNOT_CTL_IDX_DATA]; - - bool col = false; - char status_col[32] = ""; - - static bool first_status_item = true; const char *sign = NULL; if (ctl_has_flag(filters, CTL_FILTER_DIFF_ADD_R)) { @@ -167,198 +196,204 @@ static void format_data(cmd_args_t *args, knot_ctl_type_t data_type, sign = CTL_FILTER_DIFF_REM_R; } + if (key0 != NULL) { + printf("%s%s%s%s%s%s%s%s", + print_prefix(state), + (sign != NULL ? sign : ""), + (key0 != NULL ? key0 : ""), + (id != NULL ? "[" : ""), + (id != NULL ? id : ""), + (id != NULL ? "]" : ""), + (key1 != NULL ? "." : ""), + (key1 != NULL ? key1 : "")); + *state = SOME_DATA; + } + + if (owner != NULL) { + printf("%s%s%s%s%s", + print_prefix(state), + (sign != NULL ? sign : ""), + (owner != NULL ? owner : ""), + (ttl != NULL ? " " : ""), + (ttl != NULL ? ttl : "")); + *state = SOME_DATA; + } +} + +static void print_stats_item(knot_ctl_data_t *data, print_state_t *state, + const char *col) +{ + const char *key0 = (*data)[KNOT_CTL_IDX_SECTION]; + const char *key1 = (*data)[KNOT_CTL_IDX_ITEM]; + const char *id = (*data)[KNOT_CTL_IDX_ID]; + const char *value = (*data)[KNOT_CTL_IDX_DATA]; + + if (key0 != NULL) { + printf("%s%s%s%s%s%s%s", + print_prefix(state), + (key0 != NULL ? key0 : ""), + (key1 != NULL ? "." : ""), + (key1 != NULL ? key1 : ""), + (id != NULL ? "[" : ""), + (id != NULL ? id : ""), + (id != NULL ? "]" : "")); + if (value != NULL) { + printf(": %s%s%s", COL_BOLD(col), value, COL_RST(col)); + } + *state = SOME_DATA; + } +} + +static void print_value(knot_ctl_data_t *data, print_state_t *state) +{ + const char *type = (*data)[KNOT_CTL_IDX_TYPE]; + const char *value = (*data)[KNOT_CTL_IDX_DATA]; + + if (type != NULL) { + printf("%s%s", print_prefix(state), type); + *state = SOME_DATA; + } + + if (value != NULL) { + printf("%s%s", print_prefix(state), value); + *state = SOME_DATA; + } +} + +static void common_status_color(knot_ctl_data_t *data, char *col, size_t col_size) +{ + const char *filters = (*data)[KNOT_CTL_IDX_FILTERS]; + + if (col == NULL) { + return; + } + + if (!ctl_has_flag(filters, CTL_FILTER_STATUS_EMPTY_R)) { + strlcat(col, COL_BOLD(col), col_size); + } + if (ctl_has_flag(filters, CTL_FILTER_STATUS_SLAVE_R)) { + strlcat(col, COL_RED(col), col_size); + } else { + strlcat(col, COL_GRN(col), col_size); + } + if (ctl_has_flag(filters, CTL_FILTER_STATUS_MEMBER_R)) { + strlcat(col, COL_UNDR(col), col_size); + } +} + +static void print_status(cmd_args_t *args, knot_ctl_type_t data_type, + knot_ctl_data_t *data, print_state_t *state, + const char *col) +{ + const char *error = (*data)[KNOT_CTL_IDX_ERROR]; + const char *value = (*data)[KNOT_CTL_IDX_DATA]; + const char *filters = (*data)[KNOT_CTL_IDX_FILTERS]; + + if (error != NULL) { + printf("%serror: (%s)", print_prefix(state), error); + } else if (value != NULL) { + printf("%s%s", print_prefix(state), value); + } else if (ctl_has_flag(filters, CTL_FILTER_STATUS_LOADING)) { + printf("%sLoading", print_prefix(state)); + } else { + printf("%sRunning", print_prefix(state)); + } + *state = SOME_DATA; +} + +static void print_zone_status_value(cmd_args_t *args, knot_ctl_type_t data_type, + knot_ctl_data_t *data, print_state_t *state, + const char *col) +{ + const char *type = (*data)[KNOT_CTL_IDX_TYPE]; + const char *value = (*data)[KNOT_CTL_IDX_DATA]; + + if (type == NULL) { + return; + } + + static bool first_status_item = true; + if (data_type == KNOT_CTL_TYPE_DATA) { + first_status_item = true; + } + + if (!args->extended && + (value == 0 || strcmp(value, STATUS_EMPTY) == 0) && + strcmp(type, "serial") != 0) { + return; + } + + printf("%s %s: %s%s%s", + (first_status_item ? "" : " |"), + type, COL_BOLD(col), value, COL_RST(col)); + *state = SOME_DATA; + + first_status_item = false; +} + +static void format_data(cmd_args_t *args, knot_ctl_type_t data_type, + knot_ctl_data_t *data, print_state_t *state) +{ + const char *error = (*data)[KNOT_CTL_IDX_ERROR]; + + if (*state == RECV_ERR) { + return; + } + + char color_buffer[32] = ""; + char *color = NULL; + if ((args->extended || error != NULL) ? args->color_force : args->color) { + color = color_buffer; + } + switch (args->desc->cmd) { case CTL_STATUS: - if (error != NULL) { - printf("error: (%s)%s%s", error, - (type != NULL) ? " " : "", - (type != NULL) ? type : ""); - } else if (value != NULL) { - printf("%s", value); - } else if (ctl_has_flag(filters, CTL_FILTER_STATUS_LOADING)) { - printf("Loading"); - } else { - printf("Running"); - } - *empty = false; + print_status(args, data_type, data, state, color); break; - case CTL_STOP: - case CTL_RELOAD: - case CTL_CONF_BEGIN: - case CTL_CONF_ABORT: - // Only error message is expected here. - if (error != NULL) { - printf("error: (%s)", error); - } + case CTL_STATS: + case CTL_ZONE_STATS: + print_common(args, data, state, color); + print_stats_item(data, state, color); break; case CTL_ZONE_STATUS: - if (error == NULL) { - col = args->extended ? args->color_force : args->color; - } - if (!ctl_has_flag(filters, CTL_FILTER_STATUS_EMPTY_R)) { - strlcat(status_col, COL_BOLD(col), sizeof(status_col)); - } - if (ctl_has_flag(filters, CTL_FILTER_STATUS_SLAVE_R)) { - strlcat(status_col, COL_RED(col), sizeof(status_col)); - } else { - strlcat(status_col, COL_GRN(col), sizeof(status_col)); - } - if (ctl_has_flag(filters, CTL_FILTER_STATUS_MEMBER_R)) { - strlcat(status_col, COL_UNDR(col), sizeof(status_col)); - } - // FALLTHROUGH - case CTL_ZONE_RELOAD: - case CTL_ZONE_REFRESH: - case CTL_ZONE_RETRANSFER: - case CTL_ZONE_NOTIFY: - case CTL_ZONE_FLUSH: - case CTL_ZONE_BACKUP: - case CTL_ZONE_RESTORE: - case CTL_ZONE_SIGN: - case CTL_ZONE_VALIDATE: - case CTL_ZONE_KEYS_LOAD: - case CTL_ZONE_KEY_ROLL: - case CTL_ZONE_KSK_SBM: - case CTL_ZONE_FREEZE: - case CTL_ZONE_THAW: - case CTL_ZONE_BEGIN: - case CTL_ZONE_COMMIT: - case CTL_ZONE_ABORT: - case CTL_ZONE_PURGE: if (data_type == KNOT_CTL_TYPE_DATA) { - printf("%s%s%s%s%s%s%s%s%s%s", - (!(*empty) ? "\n" : ""), - (error != NULL ? "error: " : ""), - (zone != NULL ? "[" : ""), - (zone != NULL ? status_col : ""), - (zone != NULL ? zone : ""), - (zone != NULL ? COL_RST(col) : ""), - (zone != NULL ? "]" : ""), - (error != NULL ? " (" : ""), - (error != NULL ? error : ""), - (error != NULL ? ")" : "")); - *empty = false; + common_status_color(data, color, sizeof(color_buffer)); } - if (args->desc->cmd == CTL_ZONE_STATUS && type != NULL) { - if (data_type == KNOT_CTL_TYPE_DATA) { - first_status_item = true; - } - if (!args->extended && - (value == 0 || strcmp(value, STATUS_EMPTY) == 0) && - strcmp(type, "serial") != 0) { - return; - } - - printf("%s %s: %s%s%s", - (first_status_item ? "" : " |"), - type, COL_BOLD(col), value, COL_RST(col)); - first_status_item = false; - } - break; - case CTL_CONF_COMMIT: // Can return a check error context. - case CTL_CONF_LIST: - case CTL_CONF_READ: - case CTL_CONF_DIFF: - case CTL_CONF_GET: - case CTL_CONF_SET: - case CTL_CONF_UNSET: + default: // FALLTHGROUGH if (data_type == KNOT_CTL_TYPE_DATA) { - printf("%s%s%s%s%s%s%s%s%s%s%s%s", - (!(*empty) ? "\n" : ""), - (error != NULL ? "error: (" : ""), - (error != NULL ? error : ""), - (error != NULL ? ") " : ""), - (sign != NULL ? sign : ""), - (key0 != NULL ? key0 : ""), - (id != NULL ? "[" : ""), - (id != NULL ? id : ""), - (id != NULL ? "]" : ""), - (key1 != NULL ? "." : ""), - (key1 != NULL ? key1 : ""), - (value != NULL ? " =" : "")); - *empty = false; - } - if (value != NULL) { - printf(" %s", value); + print_common(args, data, state, color); + print_data_item(data, state); } - break; - case CTL_ZONE_READ: - case CTL_ZONE_DIFF: - case CTL_ZONE_GET: - case CTL_ZONE_SET: - case CTL_ZONE_UNSET: - printf("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", - (!(*empty) ? "\n" : ""), - (error != NULL ? "error: (" : ""), - (error != NULL ? error : ""), - (error != NULL ? ") " : ""), - (zone != NULL ? "[" : ""), - (zone != NULL ? zone : ""), - (zone != NULL ? "] " : ""), - (sign != NULL ? sign : ""), - (owner != NULL ? owner : ""), - (ttl != NULL ? " " : ""), - (ttl != NULL ? ttl : ""), - (type != NULL ? " " : ""), - (type != NULL ? type : ""), - (value != NULL ? " " : ""), - (value != NULL ? value : "")); - *empty = false; - break; - case CTL_STATS: - case CTL_ZONE_STATS: - printf("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", - (!(*empty) ? "\n" : ""), - (error != NULL ? "error: (" : ""), - (error != NULL ? error : ""), - (error != NULL ? ") " : ""), - (zone != NULL ? "[" : ""), - (zone != NULL ? zone : ""), - (zone != NULL ? "] " : ""), - (key0 != NULL ? key0 : ""), - (key1 != NULL ? "." : ""), - (key1 != NULL ? key1 : ""), - (id != NULL ? "[" : ""), - (id != NULL ? id : ""), - (id != NULL ? "]" : ""), - (value != NULL ? " = " : ""), - (value != NULL ? value : "")); - *empty = false; - break; - case CTL_ZONE_SERIAL_SET: - if (error != NULL) { - printf("error: (%s)", error); - *empty = false; - } else if (value != NULL) { - printf("%s%s%s%s%s%s", - (!(*empty) ? "\n" : ""), - (args->all_zones ? "[" : ""), - (args->all_zones ? zone : ""), - (args->all_zones ? "] " : ""), - (args->all_zones ? "serial: " : ""), - value); - *empty = false; + if (args->desc->cmd == CTL_ZONE_STATUS) { + print_zone_status_value(args, data_type, data, state, color); + } else { + print_value(data, state); } break; - default: - assert(0); + } + + if (error != NULL) { + *state = RECV_ERR; + } else if (*state == SOME_DATA) { + *state = NEXT_LINE; } } -static void format_block(ctl_cmd_t cmd, bool failed, bool empty) +static void format_block(ctl_cmd_t cmd, print_state_t *state) { switch (cmd) { case CTL_STOP: - printf("%s\n", failed ? "" : "Stopped"); + if (*state == FIRST_LINE) { + printf("Stopped"); + *state = SOME_DATA; + } break; case CTL_RELOAD: - printf("%s\n", failed ? "" : "Reloaded"); + if (*state == FIRST_LINE) { + printf("Reloaded"); + *state = SOME_DATA; + } break; - case CTL_CONF_BEGIN: - case CTL_CONF_COMMIT: - case CTL_CONF_ABORT: - case CTL_CONF_SET: - case CTL_CONF_UNSET: case CTL_ZONE_RELOAD: case CTL_ZONE_REFRESH: case CTL_ZONE_RETRANSFER: @@ -382,30 +417,28 @@ static void format_block(ctl_cmd_t cmd, bool failed, bool empty) case CTL_ZONE_UNSET: case CTL_ZONE_PURGE: case CTL_ZONE_SERIAL_SET: - printf("%s\n", (failed || !empty) ? "" : "OK"); - break; - case CTL_STATUS: - case CTL_ZONE_STATUS: - case CTL_ZONE_READ: - case CTL_ZONE_DIFF: - case CTL_ZONE_GET: - case CTL_CONF_LIST: - case CTL_CONF_READ: - case CTL_CONF_DIFF: - case CTL_CONF_GET: - case CTL_ZONE_STATS: - case CTL_STATS: - printf("%s", empty ? "" : "\n"); + case CTL_CONF_BEGIN: + case CTL_CONF_COMMIT: + case CTL_CONF_ABORT: + case CTL_CONF_SET: + case CTL_CONF_UNSET: + if (*state == FIRST_LINE) { + printf("OK"); + *state = SOME_DATA; + } break; default: - assert(0); + break; + } + + if (*state != FIRST_LINE) { + printf("\n"); } } static int ctl_receive(cmd_args_t *args) { - bool failed = false; - bool empty = true; + print_state_t state = FIRST_LINE; while (true) { knot_ctl_type_t type; @@ -422,20 +455,16 @@ static int ctl_receive(cmd_args_t *args) log_error(CTL_LOG_STR" (%s)", knot_strerror(KNOT_EMALF)); return KNOT_EMALF; case KNOT_CTL_TYPE_BLOCK: - format_block(args->desc->cmd, failed, empty); - return failed ? KNOT_ERROR : KNOT_EOK; + format_block(args->desc->cmd, &state); + return (state == RECV_ERR) ? KNOT_ERROR : KNOT_EOK; case KNOT_CTL_TYPE_DATA: case KNOT_CTL_TYPE_EXTRA: - format_data(args, type, &data, &empty); + format_data(args, type, &data, &state); break; default: assert(0); return KNOT_EINVAL; } - - if (data[KNOT_CTL_IDX_ERROR] != NULL) { - failed = true; - } } return KNOT_EOK; From f7a04e6659e896065ac884f14d4cb41477e194b0 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 28 May 2026 21:56:29 +0200 Subject: [PATCH 542/675] mod-geoip: fix responding to ANY queries --- src/knot/modules/geoip/geoip.c | 3 ++- tests-extra/tests/modules/geoip/test.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/knot/modules/geoip/geoip.c b/src/knot/modules/geoip/geoip.c index 6f7c826cfa..b7d691b466 100644 --- a/src/knot/modules/geoip/geoip.c +++ b/src/knot/modules/geoip/geoip.c @@ -817,9 +817,10 @@ static void find_rr_in_view(uint16_t qtype, geo_view_t *view, knot_rrset_t *cname = NULL; knot_rrset_t *cnamesig = NULL; for (int i = 0; i < view->count; i++) { - if (view->rrsets[i].type == qtype) { + if (view->rrsets[i].type == qtype || qtype == KNOT_RRTYPE_ANY) { *rr = &view->rrsets[i]; *rrsig = (view->rrsigs) ? &view->rrsigs[i] : NULL; + break; } else if (view->rrsets[i].type == KNOT_RRTYPE_CNAME) { cname = &view->rrsets[i]; cnamesig = (view->rrsigs) ? &view->rrsigs[i] : NULL; diff --git a/tests-extra/tests/modules/geoip/test.py b/tests-extra/tests/modules/geoip/test.py index 9d95199594..c1f6fe0c9f 100644 --- a/tests-extra/tests/modules/geoip/test.py +++ b/tests-extra/tests/modules/geoip/test.py @@ -94,6 +94,12 @@ resp = knot.dig("d" + str(random.randint(1, dname_count)) + ".example.com", "A", source=random_client) resp.check(rcode="NOERROR", rdata=random_client) + # check ANY response + name = "d" + str(random.randint(1, dname_count)) + ".example.com." + resp = knot.dig(name, "ANY", source=random_client) + resp.check(rcode="NOERROR") + resp.check_record(name=name, rtype="A", rdata=random_client, section="answer") + # check NODATA response when querying different type resp = knot.dig("d" + str(random.randint(2, dname_count)) + ".example.com", "AAAA", source=random_client) resp.check(rcode="NOERROR") @@ -121,6 +127,11 @@ resp = knot.dig("d" + str(random.randint(1, dname_count)) + ".example.com", "A", source=random_client) resp.check(rcode="NOERROR", rdata=random_client) + name = "d" + str(random.randint(1, dname_count)) + ".example.com." + resp = knot.dig(name, "ANY", source=random_client) + resp.check(rcode="NOERROR") + resp.check_record(name=name, rtype="A", rdata=random_client, section="answer") + resp = knot.dig("d" + str(random.randint(2, dname_count)) + ".example.com", "AAAA", source=random_client) resp.check(rcode="NOERROR") resp.check_count(1, "SOA", section="authority") From 8d46a531e0af6166612a5cd88ffe6c120bc08241 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 27 May 2026 12:38:07 +0200 Subject: [PATCH 543/675] bugfix/timerDB: zone-backup inhibits later timerDB dump, messing timers --- src/knot/zone/backup.c | 3 +-- src/knot/zone/timers.c | 16 ++++++++-------- src/knot/zone/timers.h | 9 +++++---- src/knot/zone/zone.c | 4 ++-- src/knot/zone/zonedb-load.c | 2 +- tests-extra/tests/dnssec/expire/test.py | 16 ++++++++++++++-- tests/knot/test_zone_timers.c | 2 +- 7 files changed, 32 insertions(+), 20 deletions(-) diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index 73ec28c50f..129b61cbf8 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -498,8 +498,7 @@ int zone_backup(conf_t *conf, zone_t *zone) zone_timers_sanitize(conf, zone); zone->zonefile.bootstrap_cnt = 0; } else { - zone->timers->flags |= TIMERS_MODIFIED; // otherwise the write is skipped! - ret = zone_timers_write(&ctx->bck_timer_db, zone->name, zone->timers); + ret = zone_timers_write(&ctx->bck_timer_db, zone->name, zone->timers, true); } if (ret != KNOT_EOK) { LOG_MARK_FAIL("timers"); diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index 0b61272d36..3e34eaae31 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -117,9 +117,9 @@ static int deserialize_timers(zone_timers_t *timers_ptr, } static void txn_write_timers(knot_lmdb_txn_t *txn, const knot_dname_t *zone, - zone_timers_t *timers) + zone_timers_t *timers, bool not_server_timerdb) { - if (!(timers->flags & TIMERS_MODIFIED)) { // TODO move this conditional to txn_zone_write, as it is also in zone_timers_write. Here temporarily to avoid git conflicts. + if (!not_server_timerdb && !(timers->flags & TIMERS_MODIFIED)) { // TODO move this conditional to txn_zone_write, as it is also in zone_timers_write. Here temporarily to avoid git conflicts. return; } const char *format = (timers->last_master.sin6_family == AF_INET || @@ -143,7 +143,7 @@ static void txn_write_timers(knot_lmdb_txn_t *txn, const knot_dname_t *zone, knot_lmdb_insert(txn, &k, &v); free(v.mv_data); - if (txn->ret == KNOT_EOK) { + if (txn->ret == KNOT_EOK && !not_server_timerdb) { timers->flags &= ~TIMERS_MODIFIED; } } @@ -193,15 +193,15 @@ int zone_timers_read(knot_lmdb_db_t *db, const knot_dname_t *zone, } int zone_timers_write(knot_lmdb_db_t *db, const knot_dname_t *zone, - zone_timers_t *timers) + zone_timers_t *timers, bool not_server_timerdb) { int ret = knot_lmdb_open(db); - if (ret != KNOT_EOK || !(timers->flags & TIMERS_MODIFIED)) { + if (ret != KNOT_EOK || (!not_server_timerdb && !(timers->flags & TIMERS_MODIFIED))) { return ret; } knot_lmdb_txn_t txn = { 0 }; knot_lmdb_begin(db, &txn, true); - txn_write_timers(&txn, zone, timers); + txn_write_timers(&txn, zone, timers, not_server_timerdb); knot_lmdb_commit(&txn); return txn.ret; } @@ -209,8 +209,8 @@ int zone_timers_write(knot_lmdb_db_t *db, const knot_dname_t *zone, static void txn_zone_write(zone_t *z, knot_lmdb_txn_t *txn) { if (z->started) { - zone_timers_t *t = z->timers_static; - txn_write_timers(txn, z->name, t); + zone_timers_t *t = z->timers_static; + txn_write_timers(txn, z->name, t, false); } } diff --git a/src/knot/zone/timers.h b/src/knot/zone/timers.h index e992c9fde9..b742d4e878 100644 --- a/src/knot/zone/timers.h +++ b/src/knot/zone/timers.h @@ -58,14 +58,15 @@ int zone_timers_read(knot_lmdb_db_t *db, const knot_dname_t *zone, /*! * \brief Write timers for one zone. * - * \param db Timer database. - * \param zone Zone name. - * \param timers Loaded timers + * \param db Timer database. + * \param zone Zone name. + * \param timers Loaded timers + * \param not_server_timerdb The write happens elsewhere than the server's persistent timer database (e.g. a backup). * * \return KNOT_E* */ int zone_timers_write(knot_lmdb_db_t *db, const knot_dname_t *zone, - zone_timers_t *timers); + zone_timers_t *timers, bool not_server_timerdb); /*! * \brief Write timers for all zones. diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 263356ce10..718c14a0af 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -316,7 +316,7 @@ int selective_zone_purge(conf_t *conf, zone_t *zone, purge_flag_t params) if (member) { ret = zone_timers_write(&zone->server->timerdb, zone->name, - zone->timers); + zone->timers, false); } else { ret = zone_timers_sweep(&zone->server->timerdb, dname_cmp_sweep_wrap, zone->name); @@ -762,7 +762,7 @@ void zone_timers_commit(conf_t *conf, zone_t *zone) } if (conf->cache.db_timer_db_sync == TIMER_DB_SYNC_IMMEDIATE) { - int ret = zone_timers_write(&zone->server->timerdb, zone->name, zone->timers); + int ret = zone_timers_write(&zone->server->timerdb, zone->name, zone->timers, false); if (ret != KNOT_EOK) { log_zone_error(zone->name, "failed to update persistent timer DB (%s)", knot_strerror(ret)); diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index ca44e13ea0..e17f1fac2c 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -104,7 +104,7 @@ static int configure_catalog(conf_t *conf, zone_t *zone, server_t *server) zone->timers->catalog_member = time(NULL); zone->timers->flags |= TIMERS_MODIFIED; ret = zone_timers_write(&zone->server->timerdb, zone->name, - zone->timers); + zone->timers, false); if (ret != KNOT_EOK) { log_zone_error(zone->name, "failed to initialize catalog member zone (%s)", knot_strerror(ret)); diff --git a/tests-extra/tests/dnssec/expire/test.py b/tests-extra/tests/dnssec/expire/test.py index 2171c20dbb..589d478b4a 100644 --- a/tests-extra/tests/dnssec/expire/test.py +++ b/tests-extra/tests/dnssec/expire/test.py @@ -15,7 +15,7 @@ for z in zones: master.dnssec(z).enable = True - master.dnssec(z).rrsig_lifetime = 10 + master.dnssec(z).rrsig_lifetime = 20 master.dnssec(z).rrsig_refresh = 1 master.dnssec(z).rrsig_pre_refresh = 1 @@ -34,6 +34,18 @@ set_err("ZONE NOT EXPIRED") slave.ctl("zone-thaw") master.ctl("zone-thaw") -slave.zones_wait(zones, serials) +serials = slave.zones_wait(zones, serials) + +slave.stop() # let slave dump current timerDB +slave.start() +slave.zones_wait(zones, serials) # wait for next re-sign and sync +master.stop() +slave.ctl("zone-backup +backupdir " + slave.dir + "/backup", wait=True) +slave.stop() # bug was: after backup, there is no timerDB dump +slave.start() # starts with obsolete expire timer + +resp = slave.dig(z.name, "SOA", dnssec=True) +resp.check(rcode="NOERROR") +resp.check_count(1, "SOA") t.end() diff --git a/tests/knot/test_zone_timers.c b/tests/knot/test_zone_timers.c index 60a63d6048..d8a43dc3da 100644 --- a/tests/knot/test_zone_timers.c +++ b/tests/knot/test_zone_timers.c @@ -82,7 +82,7 @@ int main(int argc, char *argv[]) is_int(KNOT_ENOENT, ret, "zone_timer_read() nonexistent"); // Write timers - ret = zone_timers_write(db, zone, &timers); + ret = zone_timers_write(db, zone, &timers, false); is_int(KNOT_EOK, ret, "zone_timers_write()"); // Read timers From d47c6886ba23a1019d29d27589bd8971016ff956 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 29 May 2026 12:09:48 +0200 Subject: [PATCH 544/675] bugfix/zone(timers): reload cleares 'started' bit leading to skipping timers write --- src/knot/zone/zonedb-load.c | 1 + tests-extra/tests/dnssec/expire/test.py | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index e17f1fac2c..2e2e23bdfa 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -154,6 +154,7 @@ static zone_t *create_zone_reload(conf_t *conf, const knot_dname_t *name, return NULL; } + zone->started = old_zone->started; zone->contents = old_zone->contents; zone_set_flag(zone, zone_get_flag(old_zone, ~0, false)); diff --git a/tests-extra/tests/dnssec/expire/test.py b/tests-extra/tests/dnssec/expire/test.py index 589d478b4a..501342e467 100644 --- a/tests-extra/tests/dnssec/expire/test.py +++ b/tests-extra/tests/dnssec/expire/test.py @@ -4,6 +4,7 @@ from dnstest.test import Test from dnstest.utils import * +import random t = Test() @@ -40,8 +41,15 @@ slave.start() slave.zones_wait(zones, serials) # wait for next re-sign and sync master.stop() -slave.ctl("zone-backup +backupdir " + slave.dir + "/backup", wait=True) -slave.stop() # bug was: after backup, there is no timerDB dump +if random.choice([False, True]): + slave.ctl("zone-backup +backupdir " + slave.dir + "/backup", wait=True) + # bug was: after backup, there is no timerDB dump +else: + slave.ctl("zone-flush", wait=True) + slave.ctl("reload") + t.sleep(4) + # bug was: after reload, zone->started is false and timers not dumped +slave.stop() slave.start() # starts with obsolete expire timer resp = slave.dig(z.name, "SOA", dnssec=True) From 6f7a31d49514bbf59b38baed0c90f79b68a15526 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 30 May 2026 20:22:59 +0200 Subject: [PATCH 545/675] configure: refactor and unify library dependency checks --- configure.ac | 351 +++++++++++++++++++++++++++------------------------ 1 file changed, 184 insertions(+), 167 deletions(-) diff --git a/configure.ac b/configure.ac index 6bf8806043..c865033afe 100644 --- a/configure.ac +++ b/configure.ac @@ -134,106 +134,196 @@ AM_CONDITIONAL([HAVE_PDFLATEX], test "$PDFLATEX" != "false") link_mode=$(test "$enable_shared" = "yes" && echo "shared" || echo "static") -###################### -# Generic dependencies -###################### +################################### +# Dependencies needed for libraries +################################### +# Fast (big) zone parser AC_ARG_ENABLE([fastparser], - AS_HELP_STRING([--disable-fastparser], [Disable use of fast zone parser]), - [], [AS_IF([test -d ".git"], [enable_fastparser=no], [enable_fastparser=yes])] + AS_HELP_STRING([--disable-fastparser], + [Disable use of fast zone parser]), + [], [AS_IF([test -d ".git"], [enable_fastparser=no], [enable_fastparser=yes])] ) AM_CONDITIONAL([FAST_PARSER], [test "$enable_fastparser" = "yes"]) # GnuTLS crypto backend PKG_CHECK_MODULES([gnutls], [gnutls >= 3.6.12], [ - save_CFLAGS=$CFLAGS - save_LIBS=$LIBS - CFLAGS="$CFLAGS $gnutls_CFLAGS" - LIBS="$LIBS $gnutls_LIBS" + save_CFLAGS=$CFLAGS + save_LIBS=$LIBS + CFLAGS="$CFLAGS $gnutls_CFLAGS" + LIBS="$LIBS $gnutls_LIBS" - AC_CHECK_FUNC([gnutls_pkcs11_copy_pubkey], - [AC_DEFINE([HAVE_GNUTLS_PKCS11], [1], [gnutls_pkcs11_copy_pubkey available]) - gnutls_pkcs11=yes], [gnutls_pkcs11=no]) + AC_CHECK_FUNC([gnutls_pkcs11_copy_pubkey], + [AC_DEFINE([HAVE_GNUTLS_PKCS11], [1], [gnutls_pkcs11_copy_pubkey available]) + gnutls_pkcs11=yes], [gnutls_pkcs11=no]) - AC_CHECK_FUNC([gnutls_early_cipher_get], - [AC_DEFINE([HAVE_GNUTLS_QUIC], [1], [gnutls_early_cipher_get available]) - gnutls_quic=yes], [gnutls_quic=no]) + AC_CHECK_FUNC([gnutls_early_cipher_get], + [AC_DEFINE([HAVE_GNUTLS_QUIC], [1], [gnutls_early_cipher_get available]) + gnutls_quic=yes], [gnutls_quic=no]) - CFLAGS=$save_CFLAGS - LIBS=$save_LIBS + CFLAGS=$save_CFLAGS + LIBS=$save_LIBS ], [ - AS_IF([test "$enable_redis" != "module"], [AC_MSG_ERROR([GnuTLS library not found])]) + AS_IF([test "$enable_redis" != "module"], [AC_MSG_ERROR([GnuTLS library not found])]) ]) + # PKCS11 support AC_ARG_ENABLE([pkcs11], - AS_HELP_STRING([--enable-pkcs11=auto|yes|no], [Support PKCS #11 [default=auto]]), - [], [enable_pkcs11=auto]) + AS_HELP_STRING([--enable-pkcs11=auto|yes|no], + [Support PKCS #11 [default=auto]]), + [], [enable_pkcs11=auto] +) AS_CASE([$enable_pkcs11], - [auto], [AS_IF([test "$gnutls_pkcs11" = "yes"], [enable_pkcs11=yes], [enable_pkcs11=no])], - [yes], [AS_IF([test "$gnutls_pkcs11" = "yes"], [enable_pkcs11=yes], [ - AC_MSG_ERROR([PKCS11 not available])])], - [no], [], - [*], [AC_MSG_ERROR([Invalid value of --enable-pkcs11.])] + [auto], [AS_IF([test "$gnutls_pkcs11" = "yes"], [enable_pkcs11=yes], [enable_pkcs11=no])], + [yes], [AS_IF([test "$gnutls_pkcs11" = "yes"], [enable_pkcs11=yes], [ + AC_MSG_ERROR([PKCS11 not available])])], + [no], [], + [*], [AC_MSG_ERROR([invalid value of --enable-pkcs11])] ) AM_CONDITIONAL([ENABLE_PKCS11], [test "$enable_pkcs11" = "yes"]) AS_IF([test "$enable_pkcs11" != "no"], [ - AC_DEFINE([ENABLE_PKCS11], [1], [Define to 1 to enable PKCS #11 support using GnuTLS])]) + AC_DEFINE([ENABLE_PKCS11], [1], [Define to 1 to enable PKCS #11 support using GnuTLS.])]) + +# QUIC support +AC_ARG_ENABLE([quic], + AS_HELP_STRING([--enable-quic=auto|yes|no|embedded], + [DoQ support (needs libngtcp2 >= 0.17.0, gnutls >= 3.7.3) [default=auto]]), + [], [enable_quic=auto] +) + +AS_CASE([$enable_quic], + [auto], [PKG_CHECK_MODULES([libngtcp2], [libngtcp2 >= 0.17.0 libngtcp2_crypto_gnutls], [enable_quic=yes], [enable_quic=no])], + [yes], [PKG_CHECK_MODULES([libngtcp2], [libngtcp2 >= 0.17.0 libngtcp2_crypto_gnutls], [enable_quic=yes], [ + AS_IF([test "$gnutls_quic" = "yes"], + [enable_quic=embedded + embedded_libngtcp2_CFLAGS="-I\$(top_srcdir)/src/contrib/libngtcp2 -I\$(top_srcdir)/src/contrib/libngtcp2/ngtcp2/lib" + embedded_libngtcp2_LIBS=$libelf_LIBS + libngtcp2_CFLAGS="-I\$(top_srcdir)/src/contrib/libngtcp2"], + [enable_quic=no + AC_MSG_WARN([gnutls >= 3.7.3 is required for QUIC])])])], + [embedded], [enable_quic=embedded + embedded_libngtcp2_CFLAGS="-I\$(top_srcdir)/src/contrib/libngtcp2 -I\$(top_srcdir)/src/contrib/libngtcp2/ngtcp2/lib" + embedded_libngtcp2_LIBS=$libelf_LIBS + libngtcp2_CFLAGS="-I\$(top_srcdir)/src/contrib/libngtcp2"], + [no], [], + [*], [AC_MSG_ERROR([invalid value of --enable-quic])] +) +AM_CONDITIONAL([EMBEDDED_LIBNGTCP2], [test "$enable_quic" = "embedded"]) +AM_CONDITIONAL([ENABLE_QUIC], [test "$enable_quic" != "no"]) +AC_SUBST([embedded_libngtcp2_CFLAGS]) +AC_SUBST([embedded_libngtcp2_LIBS]) +AC_SUBST([libngtcp2_CFLAGS]) +AC_SUBST([libngtcp2_LIBS]) + +AS_IF([test "$enable_quic" != "no"], [ + AC_DEFINE([ENABLE_QUIC], [1], [Define to 1 to enable DoQ support using libngtcp2 and GnuTLS.])] +) +# recvmmsg() and sendmmsg() support AC_ARG_ENABLE([recvmmsg], - AS_HELP_STRING([--enable-recvmmsg=auto|yes|no], [enable recvmmsg() network API [default=auto]]), - [], [enable_recvmmsg=auto]) + AS_HELP_STRING([--enable-recvmmsg=auto|yes|no], + [enable recvmmsg() network API [default=auto]]), + [], [enable_recvmmsg=auto] +) AS_CASE([$enable_recvmmsg], - [auto|yes],[ - AC_CHECK_FUNC([recvmmsg], - [AC_CHECK_FUNC([sendmmsg],[enable_recvmmsg=yes],[enable_recvmmsg=no])], - [enable_recvmmsg=no])], - [no],[], - [*], [AC_MSG_ERROR([Invalid value of --enable-recvmmsg.] - )]) + [auto|yes], [AC_CHECK_FUNC([recvmmsg], + [AC_CHECK_FUNC([sendmmsg], [enable_recvmmsg=yes], [enable_recvmmsg=no])], + [enable_recvmmsg=no])], + [no], [], + [*], [AC_MSG_ERROR([invalid value of --enable-recvmmsg])] +) + +AS_IF([test "$enable_recvmmsg" = yes], [ + AC_DEFINE([ENABLE_RECVMMSG], [1], [Use recvmmsg().])] +) + +# LMDB library +AC_ARG_WITH([lmdb], + [AS_HELP_STRING([--with-lmdb=DIR], + [explicit location where to find LMDB])] +) + +PKG_CHECK_MODULES([lmdb], [lmdb >= 0.9.15], [], [ + save_CPPFLAGS=$CPPFLAGS + save_LIBS=$LIBS + + have_lmdb=no + + for try_lmdb in "$with_lmdb" "" "/usr/local" "/usr/pkg"; do + AS_IF([test -d "$try_lmdb"], [ + lmdb_CFLAGS="-I$try_lmdb/include" + lmdb_LIBS="-L$try_lmdb/lib" + ], [ + lmdb_CFLAGS="" + lmdb_LIBS="" + ]) + + CPPFLAGS="$save_CPPFLAGS $lmdb_CFLAGS" + LIBS="$save_LIBS $lmdb_LIBS" + + AC_SEARCH_LIBS([mdb_txn_id], [lmdb], [ + have_lmdb=yes + lmdb_LIBS="$lmdb_LIBS -llmdb" + AC_SUBST([lmdb_CFLAGS]) + AC_SUBST([lmdb_LIBS]) + break + ]) + + # do not cache result of AC_SEARCH_LIBS test + unset ac_cv_search_mdb_txn_id + done + + CPPFLAGS="$save_CPPFLAGS" + LIBS="$save_LIBS" -AS_IF([test "$enable_recvmmsg" = yes],[ - AC_DEFINE([ENABLE_RECVMMSG], [1], [Use recvmmsg().])]) + AS_IF([test "$have_lmdb" = "no" && test "$enable_redis" != "module"], [ + AC_MSG_ERROR([lmdb library not found]) + ]) +]) # XDP support AC_ARG_ENABLE([xdp], - AS_HELP_STRING([--enable-xdp=auto|yes|no], [enable eXpress Data Path [default=auto]]), - [], [enable_xdp=auto]) + AS_HELP_STRING([--enable-xdp=auto|yes|no], + [enable eXpress Data Path [default=auto]]), + [], [enable_xdp=auto] +) PKG_CHECK_MODULES([libbpf], [libbpf], - [save_LIBS=$LIBS - LIBS="$LIBS $libbpf_LIBS" - AC_CHECK_FUNC([bpf_object__find_map_by_offset], [libbpf1=no], [libbpf1=yes]) - LIBS=$save_LIBS - have_libbpf=yes], - [have_libbpf=no] + [save_LIBS=$LIBS + LIBS="$LIBS $libbpf_LIBS" + AC_CHECK_FUNC([bpf_object__find_map_by_offset], [libbpf1=no], [libbpf1=yes]) + LIBS=$save_LIBS + have_libbpf=yes], + [have_libbpf=no] ) AS_CASE([$enable_xdp], - [auto], [AS_IF([test "$have_libbpf" = "yes"], [enable_xdp=yes], [enable_xdp=no])], - [yes], [AS_IF([test "$have_libbpf" = "yes"], [enable_xdp=yes], [AC_MSG_ERROR([libbpf not available])])], - [no], [], - [*], [AC_MSG_ERROR([Invalid value of --enable-xdp.])] + [auto], [AS_IF([test "$have_libbpf" = "yes"], [enable_xdp=yes], [enable_xdp=no])], + [yes], [AS_IF([test "$have_libbpf" = "yes"], [enable_xdp=yes], [AC_MSG_ERROR([libbpf not available])])], + [no], [], + [*], [AC_MSG_ERROR([invalid value of --enable-xdp])] ) AM_CONDITIONAL([ENABLE_XDP], [test "$enable_xdp" != "no"]) AS_IF([test "$enable_xdp" = "yes"], [ - PKG_CHECK_MODULES([libxdp], [libxdp], [enable_xdp=libxdp], [enable_xdp=yes]) - AS_IF([test "$enable_xdp" = "libxdp"], - [AC_DEFINE([USE_LIBXDP], [1], [Use libxdp.]) - libbpf_CFLAGS="$libbpf_CFLAGS $libxdp_CFLAGS" - libbpf_LIBS="$libbpf_LIBS $libxdp_LIBS"], - [AS_IF([test "$libbpf1" = "yes"], [AC_MSG_ERROR([libxdp not available])])] - )] -) + PKG_CHECK_MODULES([libxdp], [libxdp], [enable_xdp=libxdp], [enable_xdp=yes]) + AS_IF([test "$enable_xdp" = "libxdp"], + [AC_DEFINE([USE_LIBXDP], [1], [Use libxdp.]) + libbpf_CFLAGS="$libbpf_CFLAGS $libxdp_CFLAGS" + libbpf_LIBS="$libbpf_LIBS $libxdp_LIBS"], + [AS_IF([test "$libbpf1" = "yes"], [AC_MSG_ERROR([libxdp not available])])] + ) +]) AC_SUBST([libbpf_CFLAGS]) AC_SUBST([libbpf_LIBS]) -AS_IF([test "$enable_xdp" != "no"],[ - AC_DEFINE([ENABLE_XDP], [1], [Use eXpress Data Path.])]) +AS_IF([test "$enable_xdp" != "no"], [ + AC_DEFINE([ENABLE_XDP], [1], [Use eXpress Data Path.]) +]) -# Reuseport support +# REUSEPORT support AS_CASE([$host_os], [freebsd*], [reuseport_opt=SO_REUSEPORT_LB], [*], [reuseport_opt=SO_REUSEPORT], @@ -246,59 +336,58 @@ AC_ARG_ENABLE([reuseport], ) AS_CASE([$enable_reuseport], - [auto], [ - AS_CASE([$host_os], - [freebsd*|linux*], [AC_CHECK_DECL([$reuseport_opt], - [enable_reuseport=yes], - [enable_reuseport=no], - [#include - ])], - [*], [enable_reuseport=no] - )], + [auto], [AS_CASE([$host_os], + [freebsd*|linux*], [AC_CHECK_DECL([$reuseport_opt], + [enable_reuseport=yes], [enable_reuseport=no], + [#include ])], + [*], [enable_reuseport=no])], [yes], [AC_CHECK_DECL([$reuseport_opt], [], [AC_MSG_ERROR([SO_REUSEPORT(_LB) not supported.])], - [#include - ])], + [#include ])], [no], [], - [*], [AC_MSG_ERROR([Invalid value of --enable-reuseport.])] + [*], [AC_MSG_ERROR([invalid value of --enable-reuseport])] ) -AS_IF([test "$enable_reuseport" = yes],[ - AC_DEFINE([ENABLE_REUSEPORT], [1], [Use SO_REUSEPORT(_LB).])]) +AS_IF([test "$enable_reuseport" = yes], [ + AC_DEFINE([ENABLE_REUSEPORT], [1], [Use SO_REUSEPORT(_LB).]) +]) # Redis zone backend support AC_ARG_ENABLE([redis], - AS_HELP_STRING([--enable-redis=auto|yes|client|module|no], [enable Redis support [default=auto]]), - [], [enable_redis=auto]) + AS_HELP_STRING([--enable-redis=auto|yes|client|module|no], + [enable Redis support [default=auto]]), + [], [enable_redis=auto] +) redis_dir="${libdir}/knot/redis" AC_ARG_WITH([redisdir], - AS_HELP_STRING([--with-redisdir=path], [Destination of module for Redis [default=${libdir}/knot/redis]]), - [redis_dir=$withval]) + AS_HELP_STRING([--with-redisdir=path], + [Destination of module for Redis [default=${libdir}/knot/redis]]), + [redis_dir=$withval]) AC_SUBST(redis_dir) AS_CASE([$enable_redis], - [auto], [PKG_CHECK_MODULES([hiredis], [hiredis], [enable_redis=yes], [enable_redis=no])], - [yes], [PKG_CHECK_MODULES([hiredis], [hiredis], [enable_redis=yes], [AC_MSG_ERROR([libhiredis not available])])], - [client], [PKG_CHECK_MODULES([hiredis], [hiredis], [enable_redis=client], [AC_MSG_ERROR([libhiredis not available])])], - [module], [AS_IF([test "$enable_shared" = "yes"], [enable_redis=module], [AC_MSG_ERROR([link mode has to be 'shared'])])], - [no], [], - [*], [AC_MSG_ERROR([Invalid value of --enable-redis.])] + [auto], [PKG_CHECK_MODULES([hiredis], [hiredis], [enable_redis=yes], [enable_redis=no])], + [yes], [PKG_CHECK_MODULES([hiredis], [hiredis], [enable_redis=yes], [AC_MSG_ERROR([libhiredis not available])])], + [client], [PKG_CHECK_MODULES([hiredis], [hiredis], [enable_redis=client], [AC_MSG_ERROR([libhiredis not available])])], + [module], [AS_IF([test "$enable_shared" = "yes"], [enable_redis=module], [AC_MSG_ERROR([link mode has to be 'shared'])])], + [no], [], + [*], [AC_MSG_ERROR([invalid value of --enable-redis])] ) AM_CONDITIONAL([ENABLE_REDIS], [test "$enable_redis" != "no"]) AM_CONDITIONAL([ENABLE_REDIS_MODULE], [test "$enable_redis" != "no" && test "$enable_redis" != "client" && test "$enable_shared" = "yes"]) -AS_IF([test "$enable_redis" = yes -o "$enable_redis" = client],[ - AC_DEFINE([ENABLE_REDIS], [1], [Enable Redis support.]) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include - #if (HIREDIS_MAJOR < 1) || (HIREDIS_MAJOR == 1 && HIREDIS_MINOR < 1) - #error "No TLS support in Redis (need >= 1.1.0)" - #endif]])], - [AC_DEFINE([ENABLE_REDIS_TLS], [1], [Enable Redis TLS support.])], - [enable_redis="yes (no TLS)"]) - AS_IF([test "$enable_redis" = yes && test "$enable_shared" = yes],[ - enable_redis="${enable_redis} module" - ]) +AS_IF([test "$enable_redis" = yes -o "$enable_redis" = client], [ + AC_DEFINE([ENABLE_REDIS], [1], [Enable Redis support.]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include + #if (HIREDIS_MAJOR < 1) || (HIREDIS_MAJOR == 1 && HIREDIS_MINOR < 1) + #error "No TLS support in Redis (need >= 1.1.0)" + #endif]])], + [AC_DEFINE([ENABLE_REDIS_TLS], [1], [Enable Redis TLS support.])], + [enable_redis="yes (no TLS)"]) + AS_IF([test "$enable_redis" = yes && test "$enable_shared" = yes], [ + enable_redis="${enable_redis} module" + ]) ]) ######################################### @@ -498,46 +587,6 @@ AS_CASE([$enable_maxminddb], AS_IF([test "$enable_maxminddb" = yes], [AC_DEFINE([HAVE_MAXMINDDB], [1], [Define to 1 to enable MaxMind DB.])]) AM_CONDITIONAL([HAVE_MAXMINDDB], [test "$enable_maxminddb" = yes]) -AC_ARG_WITH([lmdb], - [AS_HELP_STRING([--with-lmdb=DIR], [explicit location where to find LMDB])] -) -PKG_CHECK_MODULES([lmdb], [lmdb >= 0.9.15], [], [ - save_CPPFLAGS=$CPPFLAGS - save_LIBS=$LIBS - - have_lmdb=no - - for try_lmdb in "$with_lmdb" "" "/usr/local" "/usr/pkg"; do - AS_IF([test -d "$try_lmdb"], [ - lmdb_CFLAGS="-I$try_lmdb/include" - lmdb_LIBS="-L$try_lmdb/lib" - ],[ - lmdb_CFLAGS="" - lmdb_LIBS="" - ]) - - CPPFLAGS="$save_CPPFLAGS $lmdb_CFLAGS" - LIBS="$save_LIBS $lmdb_LIBS" - - AC_SEARCH_LIBS([mdb_txn_id], [lmdb], [ - have_lmdb=yes - lmdb_LIBS="$lmdb_LIBS -llmdb" - AC_SUBST([lmdb_CFLAGS]) - AC_SUBST([lmdb_LIBS]) - break - ]) - - # do not cache result of AC_SEARCH_LIBS test - unset ac_cv_search_mdb_txn_id - done - - CPPFLAGS="$save_CPPFLAGS" - LIBS="$save_LIBS" - - AS_IF([test "$have_lmdb" = "no" && test "$enable_redis" != "module"], [ - AC_MSG_ERROR([lmdb library not found]) - ]) -]) # LMDB mapping sizes conf_mapsize_default=500 @@ -580,38 +629,6 @@ AS_IF([test "$enable_daemon" = "yes" -o "$enable_utilities" = "yes"], [ libedit_LIBS= ]) -# QUIC support -AC_ARG_ENABLE([quic], - AS_HELP_STRING([--enable-quic=auto|yes|no|embedded], [Support DoQ (needs libngtcp2 >= 0.17.0, gnutls >= 3.7.3) [default=auto]]), - [], [enable_quic=auto]) - -AS_CASE([$enable_quic], - [auto], [PKG_CHECK_MODULES([libngtcp2], [libngtcp2 >= 0.17.0 libngtcp2_crypto_gnutls], [enable_quic=yes], [enable_quic=no])], - [yes], [PKG_CHECK_MODULES([libngtcp2], [libngtcp2 >= 0.17.0 libngtcp2_crypto_gnutls], [enable_quic=yes], - AS_IF([test "$gnutls_quic" = "yes"], - [enable_quic=embedded - embedded_libngtcp2_CFLAGS="-I\$(top_srcdir)/src/contrib/libngtcp2 -I\$(top_srcdir)/src/contrib/libngtcp2/ngtcp2/lib" - embedded_libngtcp2_LIBS=$libelf_LIBS - libngtcp2_CFLAGS="-I\$(top_srcdir)/src/contrib/libngtcp2"], - [enable_quic=no - AC_MSG_WARN([gnutls >= 3.7.3 is required for QUIC])]))], - [embedded], [enable_quic=embedded - embedded_libngtcp2_CFLAGS="-I\$(top_srcdir)/src/contrib/libngtcp2 -I\$(top_srcdir)/src/contrib/libngtcp2/ngtcp2/lib" - embedded_libngtcp2_LIBS=$libelf_LIBS - libngtcp2_CFLAGS="-I\$(top_srcdir)/src/contrib/libngtcp2"], - [no], [], - [*], [AC_MSG_ERROR([Invalid value of --enable-quic.])] -) -AM_CONDITIONAL([EMBEDDED_LIBNGTCP2], [test "$enable_quic" = "embedded"]) -AM_CONDITIONAL([ENABLE_QUIC], [test "$enable_quic" != "no"]) -AC_SUBST([embedded_libngtcp2_CFLAGS]) -AC_SUBST([embedded_libngtcp2_LIBS]) -AC_SUBST([libngtcp2_CFLAGS]) -AC_SUBST([libngtcp2_LIBS]) - -AS_IF([test "$enable_quic" != "no"], [ - AC_DEFINE([ENABLE_QUIC], [1], [Define to 1 to enable DoQ support using libngtcp2 and GnuTLS])]) - ############################################ # Dependencies needed for Knot DNS utilities ############################################ From 765a1d942c0da4e0d65a502007b4cc7ece00abdd Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 30 May 2026 20:30:29 +0200 Subject: [PATCH 546/675] configure: refactor and unify daemon dependency checks --- configure.ac | 187 ++++++++++++++++++++++++++------------------------- 1 file changed, 96 insertions(+), 91 deletions(-) diff --git a/configure.ac b/configure.ac index c865033afe..eb96e55391 100644 --- a/configure.ac +++ b/configure.ac @@ -390,64 +390,106 @@ AS_IF([test "$enable_redis" = yes -o "$enable_redis" = client], [ ]) ]) -######################################### -# Dependencies needed for Knot DNS daemon -######################################### +################################ +# Dependencies needed for daemon +################################ -# Systemd integration +# Systemd integration (1/2) AC_ARG_ENABLE([systemd], - AS_HELP_STRING([--enable-systemd=auto|yes|no], [enable systemd integration [default=auto]]), - [enable_systemd="$enableval"], [enable_systemd=auto]) + AS_HELP_STRING([--enable-systemd=auto|yes|no], + [enable systemd integration [default=auto]]), + [], [enable_systemd=auto] +) +# D-Bus support (1/2) AC_ARG_ENABLE([dbus], - AS_HELP_STRING([--enable-dbus=auto|systemd|libdbus|no], [enable D-bus support [default=auto]]), - [enable_dbus="$enableval"], [enable_dbus=auto]) + AS_HELP_STRING([--enable-dbus=auto|systemd|libdbus|no], + [enable D-Bus support [default=auto]]), + [], [enable_dbus=auto] +) -AS_IF([test "$enable_daemon" = "yes"],[ +# POSIX capabilities (1/2) +AC_ARG_ENABLE([cap-ng], + AS_HELP_STRING([--enable-cap-ng=auto|no], + [enable POSIX capabilities [default=auto]]), + [], [enable_cap_ng=auto] +) -AS_IF([test "$enable_systemd" != "no"],[ +# Socket polling method (1/2) +AC_ARG_WITH([socket-polling], + AS_HELP_STRING([--with-socket-polling=auto|poll|epoll|kqueue|libkqueue], + [use specific socket polling method [default=auto]]), + [], [socket_polling=auto] +) + +# Alternative memory allocator (1/2) +AC_ARG_WITH([memory-allocator], + AS_HELP_STRING([--with-memory-allocator=auto|LIBRARY], + [use specific memory allocator for the server (e.g. jemalloc) [default=auto]]), + [], [memory_allocator=auto] +) + +AS_IF([test "$enable_daemon" = "yes"], [ + +# Systemd integration (2/2) +AS_IF([test "$enable_systemd" != "no"], [ AS_CASE([$enable_systemd], - [auto],[PKG_CHECK_MODULES([systemd], [libsystemd], [enable_systemd=yes], [ - PKG_CHECK_MODULES([systemd], [libsystemd-daemon libsystemd-journal], [enable_systemd=yes], [enable_systemd=no])])], - [yes],[PKG_CHECK_MODULES([systemd], [libsystemd], [], [ + [auto], [PKG_CHECK_MODULES([systemd], [libsystemd], [enable_systemd=yes], [ + PKG_CHECK_MODULES([systemd], [libsystemd-daemon libsystemd-journal], [enable_systemd=yes], [enable_systemd=no])])], + [yes], [PKG_CHECK_MODULES([systemd], [libsystemd], [], [ PKG_CHECK_MODULES([systemd], [libsystemd-daemon libsystemd-journal])])], - [*],[AC_MSG_ERROR([Invalid value of --enable-systemd.])]) - ]) - -AS_IF([test "$enable_systemd" = "yes"],[ - AC_DEFINE([ENABLE_SYSTEMD], [1], [Use systemd integration.])]) + [*], [AC_MSG_ERROR([invalid value of --enable-systemd])] + ) +]) +AS_IF([test "$enable_systemd" = "yes"], [ + AC_DEFINE([ENABLE_SYSTEMD], [1], [Use systemd integration.]) +]) -AS_IF([test "$enable_dbus" != "no"],[ +# D-Bus support (2/2) +AS_IF([test "$enable_dbus" != "no"], [ AS_CASE([$enable_dbus], - [auto],[AS_IF([test "$enable_systemd" = "yes"], - [AC_DEFINE([ENABLE_DBUS_SYSTEMD], [1], [systemd D-Bus available]) - enable_dbus=systemd], - [PKG_CHECK_MODULES([libdbus], [dbus-1], - [AC_DEFINE([ENABLE_DBUS_LIBDBUS], [1], [libdbus D-Bus available]) - enable_dbus=libdbus], - [enable_dbus=no])])], - [systemd],[AS_IF([test "$enable_systemd" = "yes"], - [AC_DEFINE([ENABLE_DBUS_SYSTEMD], [1], [systemd D-Bus available]) - enable_dbus=systemd], - [AC_MSG_ERROR([systemd >= 221 not available.])])], - [libdbus],[PKG_CHECK_MODULES([libdbus], [dbus-1], + [auto], [AS_IF([test "$enable_systemd" = "yes"], + [AC_DEFINE([ENABLE_DBUS_SYSTEMD], [1], [systemd D-Bus available]) + enable_dbus=systemd], + [PKG_CHECK_MODULES([libdbus], [dbus-1], [AC_DEFINE([ENABLE_DBUS_LIBDBUS], [1], [libdbus D-Bus available]) enable_dbus=libdbus], - [AC_MSG_ERROR([libdbus not available.])])], - [no],[enable_dbus=no], - [*],[AC_MSG_ERROR([Invalid value of --enable-dbus.])]) - ]) - -]) dnl enable_daemon + [enable_dbus=no])])], + [systemd], [AS_IF([test "$enable_systemd" = "yes"], + [AC_DEFINE([ENABLE_DBUS_SYSTEMD], [1], [systemd D-Bus available]) + enable_dbus=systemd], + [AC_MSG_ERROR([systemd >= 221 not available])])], + [libdbus], [PKG_CHECK_MODULES([libdbus], [dbus-1], + [AC_DEFINE([ENABLE_DBUS_LIBDBUS], [1], [libdbus D-Bus available]) + enable_dbus=libdbus], + [AC_MSG_ERROR([libdbus not available])])], + [no], [enable_dbus=no], + [*], [AC_MSG_ERROR([invalid value of --enable-dbus])] + )] +) -# Socket polling method -socket_polling= -AC_ARG_WITH([socket-polling], - AS_HELP_STRING([--with-socket-polling=auto|poll|epoll|kqueue|libkqueue], - [Use specific socket polling method [default=auto]]), - [socket_polling=$withval], [socket_polling=auto] +# POSIX capabilities (2/2) +AS_IF([test "$enable_cap_ng" != "no"], [ + PKG_CHECK_MODULES([cap_ng], [cap-ng], [enable_cap_ng=yes], [ + enable_cap_ng=no + AC_CHECK_HEADER([cap-ng.h], [ + save_LIBS="$LIBS" + AC_SEARCH_LIBS([capng_apply], [cap-ng], [ + AS_IF([test "$ac_cv_search_capng_apply" != "none required"], + [cap_ng_LIBS="$ac_cv_search_capng_apply"], [cap_ng_LIBS=]) + AC_SUBST([cap_ng_LIBS]) + enable_cap_ng=yes + ]) + LIBS="$save_LIBS"])]) +], [ + enable_cap_ng=no + cap_ng_LIBS= +]) +AS_IF([test "$enable_cap_ng" = "yes"], + [AC_DEFINE([ENABLE_CAP_NG], [1], [POSIX capabilities available.])] ) +# Socket polling method (2/2) AS_CASE([$socket_polling], [auto], [AC_CHECK_FUNCS([kqueue], [AC_DEFINE([HAVE_KQUEUE], [1], [kqueue available]) @@ -460,39 +502,31 @@ AS_CASE([$socket_polling], [epoll], [AC_CHECK_FUNCS([epoll_create], [AC_DEFINE([HAVE_EPOLL], [1], [epoll available]) socket_polling=epoll], - [AC_MSG_ERROR([epoll not available.])])], + [AC_MSG_ERROR([epoll not available])])], [kqueue], [AC_CHECK_FUNCS([kqueue], [AC_DEFINE([HAVE_KQUEUE], [1], [kqueue available]) socket_polling=kqueue], - [AC_MSG_ERROR([kqueue not available.])])], + [AC_MSG_ERROR([kqueue not available])])], [libkqueue], [PKG_CHECK_MODULES([libkqueue], [libkqueue], [AC_DEFINE([HAVE_KQUEUE], [1], [libkqueue available]) socket_polling=libkqueue], - [AC_MSG_ERROR([libkqueue not available.])])], - [*], [AC_MSG_ERROR([Invalid value of --socket-polling.])] + [AC_MSG_ERROR([libkqueue not available])])], + [*], [AC_MSG_ERROR([invalid value of --socket-polling])] ) -# Alternative memory allocator -malloc_LIBS= -AC_ARG_WITH([memory-allocator], - AS_HELP_STRING([--with-memory-allocator=auto|LIBRARY], - [Use specific memory allocator for the server (e.g. jemalloc) [default=auto]]), - AS_CASE([$withval], - [auto], [], - [*], [malloc_LIBS="-l$withval"] - ) - with_memory_allocator=[$withval] +# Alternative memory allocator (2/2) +AS_CASE([$memory_allocator], + [auto], [malloc_LIBS=""], + [*], [malloc_LIBS="-l$memory_allocator"] ) -AS_IF([test "$with_memory_allocator" = ""], [with_memory_allocator="auto"]) AC_SUBST([malloc_LIBS]) -AS_IF([test "$enable_daemon" = "yes"],[ - +# Userspace RCU dependency PKG_CHECK_MODULES([liburcu], [liburcu], [], [ AC_MSG_ERROR([liburcu not found]) ]) -]) +]) dnl enable_daemon static_modules="" shared_modules="" @@ -687,35 +721,6 @@ AS_IF([test "$enable_utilities" = "yes"], [ ]) ]) # Knot DNS utilities dependencies -AC_ARG_ENABLE([cap-ng], - AS_HELP_STRING([--enable-cap-ng=auto|no], [enable POSIX capabilities [default=auto]]), - [enable_cap_ng="$enableval"], [enable_cap_ng=auto]) - -AS_IF([test "$enable_daemon" = "yes"], [ - -AS_IF([test "$enable_cap_ng" != "no"],[ - PKG_CHECK_MODULES([cap_ng], [cap-ng], [enable_cap_ng=yes], [ - enable_cap_ng=no - AC_CHECK_HEADER([cap-ng.h], [ - save_LIBS="$LIBS" - AC_SEARCH_LIBS([capng_apply], [cap-ng], [ - AS_IF([test "$ac_cv_search_capng_apply" != "none required"], - [cap_ng_LIBS="$ac_cv_search_capng_apply"], [cap_ng_LIBS=]) - AC_SUBST([cap_ng_LIBS]) - enable_cap_ng=yes - ]) - LIBS="$save_LIBS" - ]) - ]) -], [ - enable_cap_ng=no - cap_ng_LIBS= -])]) - -AS_IF([test "$enable_cap_ng" = yes], - [AC_DEFINE([ENABLE_CAP_NG], [1], [POSIX capabilities available])] -) - save_LIBS="$LIBS" AC_SEARCH_LIBS([pthread_create], [pthread], [ AS_IF([test "$ac_cv_search_pthread_create" != "none required"], @@ -849,7 +854,7 @@ result_msg_base=" Redis support: ${enable_redis} Socket polling: ${socket_polling} Atomic support: ${atomic_type} - Memory allocator: ${with_memory_allocator} + Memory allocator: ${memory_allocator} Fast zone parser: ${enable_fastparser} Utilities with IDN: ${with_libidn} Utilities with DoH: ${with_libnghttp2} From c050323b5ab4696f7194751f996e90c23d3d7638 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 30 May 2026 20:32:14 +0200 Subject: [PATCH 547/675] configure: refactor and unify module dependency checks --- configure.ac | 81 ++++++++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 37 deletions(-) diff --git a/configure.ac b/configure.ac index eb96e55391..c57b05c094 100644 --- a/configure.ac +++ b/configure.ac @@ -557,19 +557,25 @@ AM_SUBST_NOTMAKE([STATIC_MODULES_INIT]) AC_SUBST([DOC_MODULES], [$(printf "$doc_modules")]) AM_SUBST_NOTMAKE([DOC_MODULES]) -# Check for Dnstap +######################################## +# Dependencies needed mostly for modules +######################################## + +# Dnstap support in kdig and/or mod-dnstap AC_ARG_ENABLE([dnstap], - AS_HELP_STRING([--enable-dnstap], [Enable dnstap support for kdig (requires fstrm, protobuf-c)]), - [], [enable_dnstap=no]) + AS_HELP_STRING([--enable-dnstap], + [Enable dnstap support for kdig (requires fstrm, protobuf-c)]), + [], [enable_dnstap=no] +) -AS_IF([test "$enable_dnstap" != "no" -o "$STATIC_MODULE_dnstap" != "no" -o "$SHARED_MODULE_dnstap" != "no"],[ +AS_IF([test "$enable_dnstap" != "no" -o "$STATIC_MODULE_dnstap" != "no" -o "$SHARED_MODULE_dnstap" != "no"], [ AC_PATH_PROG([PROTOC_C], [protoc]) - AS_IF([test -z "$PROTOC_C"],[ + AS_IF([test -z "$PROTOC_C"], [ AC_PATH_PROG([PROTOC_C], [protoc-c]) ]) - AS_IF([test -z "$PROTOC_C"],[ - AC_MSG_ERROR([Neither protoc nor protoc-c found. Install protobuf-compiler and protobuf-c-compiler]) + AS_IF([test -z "$PROTOC_C"], [ + AC_MSG_ERROR([neither protoc nor protoc-c found, install protobuf-compiler and protobuf-c-compiler]) ]) PKG_CHECK_MODULES([libfstrm], [libfstrm]) PKG_CHECK_MODULES([libprotobuf_c], [libprotobuf-c >= 1.0.0]) @@ -578,46 +584,47 @@ AS_IF([test "$enable_dnstap" != "no" -o "$STATIC_MODULE_dnstap" != "no" -o "$SHA ]) AS_IF([test "$enable_dnstap" != "no"],[ - AC_DEFINE([USE_DNSTAP], [1], [Define to 1 to enable dnstap support for kdig]) + AC_DEFINE([USE_DNSTAP], [1], [Define to 1 to enable dnstap support for kdig.]) ]) AM_CONDITIONAL([HAVE_DNSTAP], test "$enable_dnstap" != "no") AM_CONDITIONAL([HAVE_LIBDNSTAP], test "$enable_dnstap" != "no" -o \ "$STATIC_MODULE_dnstap" != "no" -o \ "$SHARED_MODULE_dnstap" != "no") -# MaxMind DB for the GeoIP module -AC_ARG_ENABLE([maxminddb], - AS_HELP_STRING([--enable-maxminddb=auto|yes|no], [enable MaxMind DB [default=auto]]), - [enable_maxminddb="$enableval"], [enable_maxminddb=auto]) -AS_IF([test "$enable_daemon" = "no"],[enable_maxminddb=no]) +# MaxMind DB for mod-geoip +AC_ARG_ENABLE([maxminddb], + AS_HELP_STRING([--enable-maxminddb=auto|yes|no], + [enable MaxMind DB [default=auto]]), + [], [enable_maxminddb=auto] +) +AS_IF([test "$enable_daemon" = "no"], [enable_maxminddb=no]) AS_CASE([$enable_maxminddb], - [no],[], - [auto],[PKG_CHECK_MODULES([libmaxminddb], [libmaxminddb], [enable_maxminddb=yes], [enable_maxminddb=no])], + [no], [], + [auto], [PKG_CHECK_MODULES([libmaxminddb], [libmaxminddb], [enable_maxminddb=yes], [enable_maxminddb=no])], [yes], [PKG_CHECK_MODULES([libmaxminddb], [libmaxminddb])], - [*],[ - save_CFLAGS="$CFLAGS" - save_LIBS="$LIBS" - AS_IF([test "$enable_maxminddb" != ""],[ - LIBS="$LIBS -L$enable_maxminddb" - CFLAGS="$CFLAGS -I$enable_maxminddb/include" - ]) - AC_SEARCH_LIBS([MMDB_open], [maxminddb], [ - AS_IF([test "$enable_maxminddb" != ""], [ - libmaxminddb_CFLAGS="-I$enable_maxminddb/include" - libmaxminddb_LIBS="-L$enable_maxminddb -lmaxminddb" - ],[ - libmaxminddb_CFLAGS="" - libmaxminddb_LIBS="$ac_cv_search_MMDB_open" + [*], [save_CFLAGS="$CFLAGS" + save_LIBS="$LIBS" + AS_IF([test "$enable_maxminddb" != ""], [ + LIBS="$LIBS -L$enable_maxminddb" + CFLAGS="$CFLAGS -I$enable_maxminddb/include" ]) - ],[AC_MSG_ERROR("not found in `$enable_maxminddb'")]) - CFLAGS="$save_CFLAGS" - LIBS="$save_LIBS" - AC_SUBST([libmaxminddb_CFLAGS]) - AC_SUBST([libmaxminddb_LIBS]) - enable_maxminddb=yes - ]) - + AC_SEARCH_LIBS([MMDB_open], [maxminddb], [ + AS_IF([test "$enable_maxminddb" != ""], [ + libmaxminddb_CFLAGS="-I$enable_maxminddb/include" + libmaxminddb_LIBS="-L$enable_maxminddb -lmaxminddb" + ], [ + libmaxminddb_CFLAGS="" + libmaxminddb_LIBS="$ac_cv_search_MMDB_open"] + )], + [AC_MSG_ERROR("not found in `$enable_maxminddb'") + ]) + CFLAGS="$save_CFLAGS" + LIBS="$save_LIBS" + AC_SUBST([libmaxminddb_CFLAGS]) + AC_SUBST([libmaxminddb_LIBS]) + enable_maxminddb=yes] +) AS_IF([test "$enable_maxminddb" = yes], [AC_DEFINE([HAVE_MAXMINDDB], [1], [Define to 1 to enable MaxMind DB.])]) AM_CONDITIONAL([HAVE_MAXMINDDB], [test "$enable_maxminddb" = yes]) From d2be6db3cb89b21ed14e77ba7acc95b4aa63321e Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 30 May 2026 20:33:21 +0200 Subject: [PATCH 548/675] configure: refactor and unify utility dependency checks --- configure.ac | 138 +++++++++++++++++++++++++++------------------------ 1 file changed, 74 insertions(+), 64 deletions(-) diff --git a/configure.ac b/configure.ac index c57b05c094..36ef5e90e0 100644 --- a/configure.ac +++ b/configure.ac @@ -628,22 +628,25 @@ AS_CASE([$enable_maxminddb], AS_IF([test "$enable_maxminddb" = yes], [AC_DEFINE([HAVE_MAXMINDDB], [1], [Define to 1 to enable MaxMind DB.])]) AM_CONDITIONAL([HAVE_MAXMINDDB], [test "$enable_maxminddb" = yes]) +################################### +# Dependencies needed for utilities +################################### -# LMDB mapping sizes -conf_mapsize_default=500 -AC_ARG_WITH([conf_mapsize], - AS_HELP_STRING([--with-conf-mapsize=NUM], [Configuration DB mapsize in MiB [default=$conf_mapsize_default]]), - [conf_mapsize=$withval],[conf_mapsize=$conf_mapsize_default]) - -AS_CASE([$conf_mapsize], - [yes],[conf_mapsize=$conf_mapsize_default], - [no], [AC_MSG_ERROR([conf_mapsize must be a number])], - [*], [AS_IF([test $conf_mapsize != $(( $conf_mapsize + 0 ))], - [AC_MSG_ERROR(conf_mapsize must be an integer number)])]) -AC_DEFINE_UNQUOTED([CONF_MAPSIZE], [$conf_mapsize], [Configuration DB mapsize.]) -AC_SUBST(conf_mapsize) +# DNSSEC validation in kdig +AC_ARG_ENABLE([kdig-validation], + AS_HELP_STRING([--disable-kdig-validation], + [Disable DNSSEC validation in kdig]), + [], [enable_kdig_validation=yes] +) +AS_IF([test "$enable_kdig_validation" != "yes" -o "$enable_utilities" != "yes" -o "$enable_daemon" != "yes"], [ + enable_kdig_validation=no +]) +AS_IF([test "$enable_kdig_validation" = "yes"], [ + AC_DEFINE([HAVE_KDIG_VALIDATION], [1], [Define to 1 to enable DNSSEC validation in kdig.]) +]) +AM_CONDITIONAL([HAVE_KDIG_VALIDATION], [test "$enable_kdig_validation" = "yes"]) -# libedit +# libedit in knotc and/or knsupdate AS_IF([test "$enable_daemon" = "yes" -o "$enable_utilities" = "yes"], [ PKG_CHECK_MODULES([libedit], [libedit], [with_libedit=yes], [ with_libedit=no @@ -656,8 +659,8 @@ AS_IF([test "$enable_daemon" = "yes" -o "$enable_utilities" = "yes"], [ AC_CHECK_LIB([edit], [el_init], [ with_libedit=yes libedit_CFLAGS= - libedit_LIBS="-ledit $libedit_deps" - ], [], [$libedit_deps] + libedit_LIBS="-ledit $libedit_deps"], + [], [$libedit_deps] ) ]) ]) @@ -670,63 +673,70 @@ AS_IF([test "$enable_daemon" = "yes" -o "$enable_utilities" = "yes"], [ libedit_LIBS= ]) -############################################ -# Dependencies needed for Knot DNS utilities -############################################ +# LMDB mapping size for confdb +conf_mapsize_default=500 +AC_ARG_WITH([conf_mapsize], + AS_HELP_STRING([--with-conf-mapsize=NUM], + [Configuration DB mapsize in MiB [default=$conf_mapsize_default]]), + [conf_mapsize=$withval], [conf_mapsize=$conf_mapsize_default] +) +AS_IF([test "$enable_daemon" = "yes" -o "$enable_utilities" = "yes"], [ + AS_CASE([$conf_mapsize], + [yes], [conf_mapsize=$conf_mapsize_default], + [no], [AC_MSG_ERROR([conf_mapsize must be a number])], + [*], [AS_IF([test $conf_mapsize != $(( $conf_mapsize + 0 ))], + [AC_MSG_ERROR(conf_mapsize must be an integer number)])] + ) + AC_DEFINE_UNQUOTED([CONF_MAPSIZE], [$conf_mapsize], [Configuration DB mapsize.]) + AC_SUBST(conf_mapsize) +]) -dnl Check for libidn2. -AC_ARG_WITH(libidn, - AS_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU libidn2)]), - with_libidn=$withval, - with_libidn=yes +# IDN support in kdig (1/2) +AC_ARG_WITH([libidn], + AS_HELP_STRING([--with-libidn=auto|yes|no], + [Support IDN (needs GNU libidn2) [default=auto]]), + [], [with_libidn=auto] ) -dnl Check for libnghttp2. -AC_ARG_WITH(libnghttp2, - AS_HELP_STRING([--with-libnghttp2=[DIR]], [Support DoH (needs libnghttp2)]), - with_libnghttp2=$withval, - with_libnghttp2=yes +# HTTPS support in kdig (1/2) +AC_ARG_WITH([libnghttp2], + AS_HELP_STRING([--with-libnghttp2=auto|yes|no], + [Support DoH (needs libnghttp2) [default=auto]]), + [], [with_libnghttp2=auto] ) -dnl DNSSEC validation in kdig -AC_ARG_ENABLE([kdig-validation], - AS_HELP_STRING([--disable-kdig-validation], [Disable DNSSEC validation in kdig]), - [], [enable_kdig_validation=yes]) -AS_IF([test "$enable_kdig_validation" != "yes" -o "$enable_utilities" != "yes" -o "$enable_daemon" != "yes"], [ - enable_kdig_validation=no -]) -AS_IF([test "$enable_kdig_validation" = "yes"], [ - AC_DEFINE([HAVE_KDIG_VALIDATION], [1], [Define to 1 to enable DNSSEC validation in kdig.]) +AS_IF([test "$enable_utilities" = "yes"], [ + +# IDN support in kdig (2/2) +AS_CASE([$with_libidn], + [auto], [PKG_CHECK_MODULES([libidn2], [libidn2 >= 2.0.0], [with_libidn=libidn2], [with_libidn=no])], + [yes], [PKG_CHECK_MODULES([libidn2], [libidn2 >= 2.0.0], [with_libidn=libidn2], [ + AC_MSG_ERROR([libidn2 not available])])], + [no], [], + [*], [AC_MSG_ERROR([invalid value of --with_libidn])] +) +AS_IF([test "$with_libidn" != "no"], [ + AC_DEFINE([LIBIDN], [1], [Define to 1 to enable IDN support.]) ]) -AM_CONDITIONAL([HAVE_KDIG_VALIDATION], [test "$enable_kdig_validation" = "yes"]) -AS_IF([test "$enable_utilities" = "yes"], [ - AS_IF([test "$with_libidn" != "no"], [ - PKG_CHECK_MODULES([libidn2], [libidn2 >= 2.0.0], [ - with_libidn=libidn2 - AC_DEFINE([LIBIDN], [1], [Define to 1 to enable IDN support]) - ], [ - with_libidn=no - AC_MSG_WARN([libidn2 not found]) - ]) - ]) +# HTTPS support in kdig (2/2) +AS_CASE([$with_libnghttp2], + [auto], [PKG_CHECK_MODULES([libnghttp2], [libnghttp2], [with_libnghttp2=libnghttp2], [with_libnghttp2=no])], + [yes], [PKG_CHECK_MODULES([libnghttp2], [libnghttp2], [with_libnghttp2=libnghttp2], [ + AC_MSG_ERROR([libnghttp2 not available])])], + [no], [], + [*], [AC_MSG_ERROR([invalid value of --with_libnghttp2])] +) +AS_IF([test "$with_libnghttp2" != "no"], [ + AC_DEFINE([LIBNGHTTP2], [1], [Define to 1 to enable DoH support.]) +]) - AS_IF([test "$with_libnghttp2" != "no"], [ - PKG_CHECK_MODULES([libnghttp2], [libnghttp2], [ - with_libnghttp2=libnghttp2 - AC_DEFINE([LIBNGHTTP2], [1], [Define to 1 to enable DoH support]) - ], [ - with_libnghttp2=no - AC_MSG_WARN([libnghttp2 not found]) - ]) - ]) +# Netlink API for kxdpgun +AS_IF([test "$enable_xdp" != "no"], [ + PKG_CHECK_MODULES([libmnl], [libmnl], [], [AC_MSG_ERROR([libmnl not available])]) +]) - AS_IF([test "$enable_xdp" != "no"], [ - PKG_CHECK_MODULES([libmnl], [libmnl], [], [ - AC_MSG_ERROR([libmnl not found]) - ]) - ]) -]) # Knot DNS utilities dependencies +]) dnl enable_utilities save_LIBS="$LIBS" AC_SEARCH_LIBS([pthread_create], [pthread], [ From 01262d5d5869e315be880ed3fcdba032ecd342bc Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 30 May 2026 20:35:10 +0200 Subject: [PATCH 549/675] configure: unify coding style --- configure.ac | 74 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 25 deletions(-) diff --git a/configure.ac b/configure.ac index 36ef5e90e0..a9659c01e4 100644 --- a/configure.ac +++ b/configure.ac @@ -24,7 +24,8 @@ AC_SUBST([KNOT_VERSION_MINOR], knot_VERSION_MINOR) AC_SUBST([KNOT_VERSION_PATCH], knot_VERSION_PATCH) AC_CONFIG_FILES([src/libknot/version.h - src/libzscanner/version.h]) + src/libzscanner/version.h] +) # Automatically update release date based on NEWS AC_PROG_SED @@ -44,8 +45,9 @@ AC_SUBST([LDFLAG_EXCLUDE_LIBS], $ldflag_exclude_libs) # Get processor byte ordering AC_C_BIGENDIAN([endianity=big-endian], [endianity=little-endian]) -AS_IF([test "$endianity" = "little-endian"],[ - AC_DEFINE([ENDIANITY_LITTLE], [1], [System is little-endian.])]) +AS_IF([test "$endianity" = "little-endian"], [ + AC_DEFINE([ENDIANITY_LITTLE], [1], [System is little-endian.]) +]) # Check if an archiver is available m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) @@ -66,8 +68,8 @@ PKG_PROG_PKG_CONFIG m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], [AC_SUBST([pkgconfigdir], ['${libdir}/pkgconfig'])]) AC_CONFIG_FILES([src/knotd.pc src/libknot.pc - src/libzscanner.pc - ]) + src/libzscanner.pc] +) # Default directories knot_prefix=$ac_default_prefix @@ -75,49 +77,69 @@ AS_IF([test "$prefix" != NONE], [knot_prefix=$prefix]) run_dir="${localstatedir}/run/knot" AC_ARG_WITH([rundir], - AS_HELP_STRING([--with-rundir=path], [Path to run-time variable data (pid, sockets...). [default=LOCALSTATEDIR/run/knot]]), - [run_dir=$withval]) + AS_HELP_STRING([--with-rundir=path], + [Path to run-time variable data (pid, sockets) [default=LOCALSTATEDIR/run/knot]]), + [run_dir=$withval] +) AC_SUBST(run_dir) storage_dir="${localstatedir}/lib/knot" AC_ARG_WITH([storage], - AS_HELP_STRING([--with-storage=path], [Default storage directory (slave zones, persistent data). [default=LOCALSTATEDIR/lib/knot]]), - [storage_dir=$withval]) + AS_HELP_STRING([--with-storage=path], + [Default storage directory (zone and persistent data) [default=LOCALSTATEDIR/lib/knot]]), + [storage_dir=$withval] +) AC_SUBST(storage_dir) config_dir="${sysconfdir}/knot" AC_ARG_WITH([configdir], - AS_HELP_STRING([--with-configdir=path], [Default directory for configuration. [default=SYSCONFDIR/knot]]), - [config_dir=$withval]) + AS_HELP_STRING([--with-configdir=path], + [Default directory for configuration [default=SYSCONFDIR/knot]]), + [config_dir=$withval] +) AC_SUBST(config_dir) module_dir= module_instdir="${libdir}/knot/modules-${KNOT_VERSION_MAJOR}.${KNOT_VERSION_MINOR}" AC_ARG_WITH([moduledir], - AS_HELP_STRING([--with-moduledir=path], [Path to auto-loaded dynamic modules. [default not set]]), - [module_dir=$withval module_instdir=$module_dir]) + AS_HELP_STRING([--with-moduledir=path], + [Path to auto-loaded dynamic modules [default not set]]), + [module_dir=$withval module_instdir=$module_dir] +) AC_SUBST(module_instdir) AC_SUBST(module_dir) # Build Knot DNS daemon AC_ARG_ENABLE([daemon], - AS_HELP_STRING([--disable-daemon], [Don't build Knot DNS main daemon]), [], [enable_daemon=yes]) + AS_HELP_STRING([--disable-daemon], + [Don't build Knot DNS daemon]), + [], [enable_daemon=yes] +) AM_CONDITIONAL([HAVE_DAEMON], [test "$enable_daemon" = "yes"]) # Build Knot DNS modules AC_ARG_ENABLE([modules], - AS_HELP_STRING([--disable-modules], [Don't build Knot DNS modules]), [], [enable_modules=yes]) + AS_HELP_STRING([--disable-modules], + [Don't build Knot DNS modules]), + [], [enable_modules=yes] +) # Build Knot DNS utilities AC_ARG_ENABLE([utilities], - AS_HELP_STRING([--disable-utilities], [Don't build Knot DNS utilities]), [], [enable_utilities=yes]) + AS_HELP_STRING([--disable-utilities], + [Don't build Knot DNS utilities]), + [], [enable_utilities=yes] +) AM_CONDITIONAL([HAVE_UTILS], [test "$enable_utilities" = "yes"]) AM_CONDITIONAL([HAVE_LIBUTILS], test "$enable_utilities" != "no" -o \ "$enable_daemon" != "no") # Build Knot DNS documentation AC_ARG_ENABLE([documentation], - AS_HELP_STRING([--disable-documentation], [Don't build Knot DNS documentation]), [], [enable_documentation=yes]) + AS_HELP_STRING([--disable-documentation], + [Don't build Knot DNS documentation]), + [], [enable_documentation=yes] +) AS_IF([test "$enable_documentation" != "no"], [ AC_PATH_PROG([SPHINXBUILD], [sphinx-build], [false]) AS_IF([test "$SPHINXBUILD" != "false"], [ @@ -743,7 +765,7 @@ AC_SEARCH_LIBS([pthread_create], [pthread], [ AS_IF([test "$ac_cv_search_pthread_create" != "none required"], [pthread_LIBS="$ac_cv_search_pthread_create"], [pthread_LIBS=]) AC_SUBST([pthread_LIBS]) -],[ +], [ AC_MSG_ERROR([pthreads not found]) ]) LIBS="$save_LIBS" @@ -753,7 +775,7 @@ AC_SEARCH_LIBS([dlopen], [dl], [ AS_IF([test "$ac_cv_search_dlopen" != "none required"], [dlopen_LIBS="$ac_cv_search_dlopen"], [dlopen_LIBS=]) AC_SUBST([dlopen_LIBS]) -],[ +], [ AC_MSG_ERROR([dlopen not found]) ]) LIBS="$save_LIBS" @@ -763,7 +785,7 @@ AC_SEARCH_LIBS([pow], [m], [ AS_IF([test "$ac_cv_search_pow" != "none required"], [math_LIBS="$ac_cv_search_pow"], [math_LIBS=]) AC_SUBST([math_LIBS]) -],[ +], [ AC_MSG_ERROR([math not found]) ]) LIBS="$save_LIBS" @@ -796,7 +818,8 @@ AM_CONDITIONAL([USE_GNUTLS_MEMSET], [test "$explicit_bzero" = "no" -a "$explicit # Check for mandatory library functions. AC_CHECK_FUNC([vasprintf], [], [ - AC_MSG_ERROR([vasprintf support in the libc is required])]) + AC_MSG_ERROR([vasprintf support in the libc is required]) +]) # Check for cpu_set_t/cpuset_t compatibility AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[cpu_set_t set; CPU_ZERO(&set);]])], @@ -890,7 +913,7 @@ result_msg_base=" result_msg_esc=$(echo -n " Configure:$filtered_config_params\n$result_msg_base" | sed '$!s/$/\\n/' | tr -d '\n') -AC_DEFINE_UNQUOTED([CONFIGURE_SUMMARY],["$result_msg_esc"],[Configure summary]) +AC_DEFINE_UNQUOTED([CONFIGURE_SUMMARY], ["$result_msg_esc"], [Configure summary]) AC_CONFIG_FILES([Makefile Doxyfile @@ -911,13 +934,14 @@ AC_CONFIG_FILES([Makefile src/Makefile src/redis/Makefile src/libknot/xdp/Makefile - src/knot/modules/static_modules.h - ]) + src/knot/modules/static_modules.h] +) AC_CONFIG_FILES([doc/modules.rst], [cp doc/modules.rst "${srcdir}"/doc/modules.rst 2>/dev/null abs_srcdir=$(cd "${srcdir}" && pwd) - ln -s -f "${abs_srcdir}"/src/knot/modules "${srcdir}"/doc 2>/dev/null]) + ln -s -f "${abs_srcdir}"/src/knot/modules "${srcdir}"/doc 2>/dev/null] +) AC_OUTPUT AC_MSG_RESULT([ From 5a881202660c5ea7c692b67ee5804b5d05234c4c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 31 May 2026 15:22:01 +0200 Subject: [PATCH 550/675] libngtcp2: update embedded library to v1.23.0 --- Knot.files | 6 +- src/contrib/Makefile.inc | 2 + src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c | 6 +- src/contrib/libngtcp2/ngtcp2/crypto/shared.c | 152 ++- src/contrib/libngtcp2/ngtcp2/crypto/shared.h | 2 +- .../libngtcp2/ngtcp2/lib/ngtcp2_acktr.c | 2 +- .../libngtcp2/ngtcp2/lib/ngtcp2_balloc.c | 2 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c | 115 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h | 1 + src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c | 84 +- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.c | 797 ++++++----- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.h | 44 +- .../libngtcp2/ngtcp2/lib/ngtcp2_conv.c | 24 +- .../libngtcp2/ngtcp2/lib/ngtcp2_conv.h | 10 +- .../libngtcp2/ngtcp2/lib/ngtcp2_crypto.c | 9 +- .../libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c | 2 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.c | 112 ++ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.h | 1211 +++++++++++++++++ .../libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h | 4 +- .../libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c | 10 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c | 7 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c | 427 +++--- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h | 59 +- .../libngtcp2/ngtcp2/lib/ngtcp2_macro.h | 90 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_net.h | 70 +- .../libngtcp2/ngtcp2/lib/ngtcp2_objalloc.h | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c | 67 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h | 90 +- .../libngtcp2/ngtcp2/lib/ngtcp2_pmtud.c | 6 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c | 70 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.h | 17 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.c | 11 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.c | 2 +- .../libngtcp2/ngtcp2/lib/ngtcp2_qlog.c | 7 +- .../libngtcp2/ngtcp2/lib/ngtcp2_range.c | 4 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c | 8 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c | 12 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h | 12 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c | 42 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h | 2 +- .../libngtcp2/ngtcp2/lib/ngtcp2_settings.c | 4 + src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c | 137 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.h | 52 +- .../ngtcp2/lib/ngtcp2_transport_params.c | 5 +- .../ngtcp2/lib/ngtcp2_transport_params.h | 40 +- src/contrib/libngtcp2/ngtcp2/ngtcp2.h | 1054 ++++++++++++-- src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h | 26 +- src/contrib/libngtcp2/ngtcp2/version.h | 4 +- 49 files changed, 3645 insertions(+), 1283 deletions(-) create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.c create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.h diff --git a/Knot.files b/Knot.files index f801df4aee..e622a646af 100644 --- a/Knot.files +++ b/Knot.files @@ -58,6 +58,8 @@ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_err.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_err.h +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.c +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c @@ -669,10 +671,6 @@ tests-fuzz/fuzz_dname_from_str.c tests-fuzz/fuzz_dname_to_str.c tests-fuzz/fuzz_packet.c tests-fuzz/fuzz_zscanner.c -tests-fuzz/knotd_wrap/afl-loop.h -tests-fuzz/knotd_wrap/server.c -tests-fuzz/knotd_wrap/tcp-handler.c -tests-fuzz/knotd_wrap/udp-handler.c tests-fuzz/main.c tests/contrib/test_atomic.c tests/contrib/test_base32hex.c diff --git a/src/contrib/Makefile.inc b/src/contrib/Makefile.inc index 40e373d058..8d5fa06394 100644 --- a/src/contrib/Makefile.inc +++ b/src/contrib/Makefile.inc @@ -161,6 +161,8 @@ libembngtcp2_la_SOURCES = \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_err.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_err.h \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.c \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c \ diff --git a/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c b/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c index cf7e6ca893..d020aeccf3 100644 --- a/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c +++ b/src/contrib/libngtcp2/ngtcp2/crypto/gnutls.c @@ -508,7 +508,7 @@ ngtcp2_crypto_gnutls_from_ngtcp2_encryption_level( int ngtcp2_crypto_read_write_crypto_data( ngtcp2_conn *conn, ngtcp2_encryption_level encryption_level, const uint8_t *data, size_t datalen) { - gnutls_session_t session = ngtcp2_conn_get_tls_native_handle(conn); + gnutls_session_t session = ngtcp2_conn_get_tls_native_handle2(conn); int rv; if (datalen > 0) { @@ -525,7 +525,7 @@ int ngtcp2_crypto_read_write_crypto_data( } } - if (!ngtcp2_conn_get_handshake_completed(conn)) { + if (!ngtcp2_conn_get_handshake_completed2(conn)) { rv = gnutls_handshake(session); if (rv < 0) { if (!gnutls_error_is_fatal(rv)) { @@ -678,7 +678,7 @@ static int tp_send_func(gnutls_session_t session, gnutls_buffer_t extdata) { ngtcp2_ssize nwrite; int rv; - nwrite = ngtcp2_conn_encode_local_transport_params(conn, buf, sizeof(buf)); + nwrite = ngtcp2_conn_encode_local_transport_params2(conn, buf, sizeof(buf)); if (nwrite < 0) { return -1; } diff --git a/src/contrib/libngtcp2/ngtcp2/crypto/shared.c b/src/contrib/libngtcp2/ngtcp2/crypto/shared.c index f1bb902672..925461e239 100644 --- a/src/contrib/libngtcp2/ngtcp2/crypto/shared.c +++ b/src/contrib/libngtcp2/ngtcp2/crypto/shared.c @@ -141,7 +141,7 @@ int ngtcp2_crypto_derive_initial_secrets(uint8_t *rx_secret, uint8_t *tx_secret, size_t ngtcp2_crypto_packet_protection_ivlen(const ngtcp2_crypto_aead *aead) { size_t noncelen = ngtcp2_crypto_aead_noncelen(aead); - return ngtcp2_max_size(8, noncelen); + return ngtcp2_max(8, noncelen); } int ngtcp2_crypto_derive_packet_protection_key( @@ -183,21 +183,30 @@ int ngtcp2_crypto_derive_packet_protection_key( if (ngtcp2_crypto_hkdf_expand_label(key, keylen, md, secret, secretlen, key_label, key_labellen) != 0) { - return -1; + goto cleanup; } if (ngtcp2_crypto_hkdf_expand_label(iv, ivlen, md, secret, secretlen, iv_label, iv_labellen) != 0) { - return -1; + goto cleanup; } if (hp_key != NULL && ngtcp2_crypto_hkdf_expand_label(hp_key, keylen, md, secret, secretlen, hp_key_label, hp_key_labellen) != 0) { - return -1; + goto cleanup; } return 0; + +cleanup: + ngtcp2_secure_clear(key, keylen); + + if (hp_key) { + ngtcp2_secure_clear(hp_key, keylen); + } + + return -1; } int ngtcp2_crypto_update_traffic_secret(uint8_t *dest, uint32_t version, @@ -238,14 +247,15 @@ int ngtcp2_crypto_derive_and_install_rx_key(ngtcp2_conn *conn, uint8_t *key, const ngtcp2_crypto_cipher *hp; ngtcp2_crypto_aead_ctx aead_ctx = {0}; ngtcp2_crypto_cipher_ctx hp_ctx = {0}; - void *tls = ngtcp2_conn_get_tls_native_handle(conn); + void *tls = ngtcp2_conn_get_tls_native_handle2(conn); uint8_t keybuf[64], ivbuf[64], hp_keybuf[64]; + size_t keylen; size_t ivlen; int rv; ngtcp2_crypto_ctx cctx; uint32_t version; - if (level == NGTCP2_ENCRYPTION_LEVEL_0RTT && !ngtcp2_conn_is_server(conn)) { + if (level == NGTCP2_ENCRYPTION_LEVEL_0RTT && !ngtcp2_conn_is_server2(conn)) { return 0; } @@ -266,12 +276,12 @@ int ngtcp2_crypto_derive_and_install_rx_key(ngtcp2_conn *conn, uint8_t *key, } ngtcp2_conn_set_0rtt_crypto_ctx(conn, &cctx); - ctx = ngtcp2_conn_get_0rtt_crypto_ctx(conn); - version = ngtcp2_conn_get_client_chosen_version(conn); + ctx = ngtcp2_conn_get_0rtt_crypto_ctx2(conn); + version = ngtcp2_conn_get_client_chosen_version2(conn); break; case NGTCP2_ENCRYPTION_LEVEL_HANDSHAKE: - if (ngtcp2_conn_is_server(conn) && - !ngtcp2_conn_get_negotiated_version(conn)) { + if (ngtcp2_conn_is_server2(conn) && + !ngtcp2_conn_get_negotiated_version2(conn)) { rv = ngtcp2_crypto_set_remote_transport_params(conn, tls); if (rv != 0) { return -1; @@ -279,8 +289,8 @@ int ngtcp2_crypto_derive_and_install_rx_key(ngtcp2_conn *conn, uint8_t *key, } /* fall through */ case NGTCP2_ENCRYPTION_LEVEL_1RTT: - ctx = ngtcp2_conn_get_crypto_ctx(conn); - version = ngtcp2_conn_get_negotiated_version(conn); + ctx = ngtcp2_conn_get_crypto_ctx2(conn); + version = ngtcp2_conn_get_negotiated_version2(conn); if (!ctx->aead.native_handle) { if (ngtcp2_crypto_ctx_tls(&cctx, tls) == NULL) { @@ -288,7 +298,7 @@ int ngtcp2_crypto_derive_and_install_rx_key(ngtcp2_conn *conn, uint8_t *key, } ngtcp2_conn_set_crypto_ctx(conn, &cctx); - ctx = ngtcp2_conn_get_crypto_ctx(conn); + ctx = ngtcp2_conn_get_crypto_ctx2(conn); } break; default: @@ -298,6 +308,7 @@ int ngtcp2_crypto_derive_and_install_rx_key(ngtcp2_conn *conn, uint8_t *key, aead = &ctx->aead; md = &ctx->md; hp = &ctx->hp; + keylen = ngtcp2_crypto_aead_keylen(aead); ivlen = ngtcp2_crypto_packet_protection_ivlen(aead); if (ngtcp2_crypto_derive_packet_protection_key(key, iv, hp_key, version, aead, @@ -328,7 +339,7 @@ int ngtcp2_crypto_derive_and_install_rx_key(ngtcp2_conn *conn, uint8_t *key, } break; case NGTCP2_ENCRYPTION_LEVEL_1RTT: - if (!ngtcp2_conn_is_server(conn)) { + if (!ngtcp2_conn_is_server2(conn)) { rv = ngtcp2_crypto_set_remote_transport_params(conn, tls); if (rv != 0) { goto fail; @@ -346,12 +357,21 @@ int ngtcp2_crypto_derive_and_install_rx_key(ngtcp2_conn *conn, uint8_t *key, goto fail; } + /* Clear keys in the stack buffers. */ + ngtcp2_secure_clear(keybuf, keylen); + ngtcp2_secure_clear(hp_keybuf, keylen); + return 0; fail: ngtcp2_crypto_cipher_ctx_free(&hp_ctx); ngtcp2_crypto_aead_ctx_free(&aead_ctx); + /* Clear keys from the given buffers as well as the stack buffers if + used. */ + ngtcp2_secure_clear(key, keylen); + ngtcp2_secure_clear(hp_key, keylen); + return -1; } @@ -365,7 +385,7 @@ static int crypto_set_local_transport_params(ngtcp2_conn *conn, void *tls) { ngtcp2_ssize nwrite; uint8_t buf[256]; - nwrite = ngtcp2_conn_encode_local_transport_params(conn, buf, sizeof(buf)); + nwrite = ngtcp2_conn_encode_local_transport_params2(conn, buf, sizeof(buf)); if (nwrite < 0) { return -1; } @@ -388,14 +408,15 @@ int ngtcp2_crypto_derive_and_install_tx_key(ngtcp2_conn *conn, uint8_t *key, const ngtcp2_crypto_cipher *hp; ngtcp2_crypto_aead_ctx aead_ctx = {0}; ngtcp2_crypto_cipher_ctx hp_ctx = {0}; - void *tls = ngtcp2_conn_get_tls_native_handle(conn); + void *tls = ngtcp2_conn_get_tls_native_handle2(conn); uint8_t keybuf[64], ivbuf[64], hp_keybuf[64]; + size_t keylen; size_t ivlen; int rv; ngtcp2_crypto_ctx cctx; uint32_t version; - if (level == NGTCP2_ENCRYPTION_LEVEL_0RTT && ngtcp2_conn_is_server(conn)) { + if (level == NGTCP2_ENCRYPTION_LEVEL_0RTT && ngtcp2_conn_is_server2(conn)) { return 0; } @@ -416,12 +437,12 @@ int ngtcp2_crypto_derive_and_install_tx_key(ngtcp2_conn *conn, uint8_t *key, } ngtcp2_conn_set_0rtt_crypto_ctx(conn, &cctx); - ctx = ngtcp2_conn_get_0rtt_crypto_ctx(conn); - version = ngtcp2_conn_get_client_chosen_version(conn); + ctx = ngtcp2_conn_get_0rtt_crypto_ctx2(conn); + version = ngtcp2_conn_get_client_chosen_version2(conn); break; case NGTCP2_ENCRYPTION_LEVEL_HANDSHAKE: - if (ngtcp2_conn_is_server(conn) && - !ngtcp2_conn_get_negotiated_version(conn)) { + if (ngtcp2_conn_is_server2(conn) && + !ngtcp2_conn_get_negotiated_version2(conn)) { rv = ngtcp2_crypto_set_remote_transport_params(conn, tls); if (rv != 0) { return -1; @@ -429,8 +450,8 @@ int ngtcp2_crypto_derive_and_install_tx_key(ngtcp2_conn *conn, uint8_t *key, } /* fall through */ case NGTCP2_ENCRYPTION_LEVEL_1RTT: - ctx = ngtcp2_conn_get_crypto_ctx(conn); - version = ngtcp2_conn_get_negotiated_version(conn); + ctx = ngtcp2_conn_get_crypto_ctx2(conn); + version = ngtcp2_conn_get_negotiated_version2(conn); if (!ctx->aead.native_handle) { if (ngtcp2_crypto_ctx_tls(&cctx, tls) == NULL) { @@ -438,7 +459,7 @@ int ngtcp2_crypto_derive_and_install_tx_key(ngtcp2_conn *conn, uint8_t *key, } ngtcp2_conn_set_crypto_ctx(conn, &cctx); - ctx = ngtcp2_conn_get_crypto_ctx(conn); + ctx = ngtcp2_conn_get_crypto_ctx2(conn); } break; default: @@ -448,6 +469,7 @@ int ngtcp2_crypto_derive_and_install_tx_key(ngtcp2_conn *conn, uint8_t *key, aead = &ctx->aead; md = &ctx->md; hp = &ctx->hp; + keylen = ngtcp2_crypto_aead_keylen(aead); ivlen = ngtcp2_crypto_packet_protection_ivlen(aead); if (ngtcp2_crypto_derive_packet_protection_key(key, iv, hp_key, version, aead, @@ -477,11 +499,11 @@ int ngtcp2_crypto_derive_and_install_tx_key(ngtcp2_conn *conn, uint8_t *key, goto fail; } - if (ngtcp2_conn_is_server(conn) && + if (ngtcp2_conn_is_server2(conn) && crypto_set_local_transport_params(conn, tls) != 0) { /* Just return -1 because aead_ctx and hp_ctx are now owned by conn. */ - return -1; + goto fail_cleanup; } break; @@ -497,12 +519,22 @@ int ngtcp2_crypto_derive_and_install_tx_key(ngtcp2_conn *conn, uint8_t *key, goto fail; } + /* Clear keys in the stack buffers. */ + ngtcp2_secure_clear(keybuf, keylen); + ngtcp2_secure_clear(hp_keybuf, keylen); + return 0; fail: ngtcp2_crypto_cipher_ctx_free(&hp_ctx); ngtcp2_crypto_aead_ctx_free(&aead_ctx); +fail_cleanup: + /* Clear keys from the given buffers as well as the stack buffers if + used. */ + ngtcp2_secure_clear(key, keylen); + ngtcp2_secure_clear(hp_key, keylen); + return -1; } @@ -528,7 +560,7 @@ int ngtcp2_crypto_derive_and_install_initial_key( ngtcp2_crypto_cipher_ctx tx_hp_ctx = {0}; ngtcp2_crypto_aead_ctx retry_aead_ctx = {0}; int rv; - int server = ngtcp2_conn_is_server(conn); + int server = ngtcp2_conn_is_server2(conn); const uint8_t *retry_key; size_t retry_noncelen; @@ -603,7 +635,7 @@ int ngtcp2_crypto_derive_and_install_initial_key( goto fail; } - if (!server && !ngtcp2_conn_after_retry(conn)) { + if (!server && !ngtcp2_conn_after_retry2(conn)) { ngtcp2_crypto_aead_retry(&retry_aead); switch (version) { @@ -661,13 +693,13 @@ int ngtcp2_crypto_derive_and_install_vneg_initial_key( uint8_t tx_keybuf[NGTCP2_CRYPTO_INITIAL_KEYLEN]; uint8_t tx_ivbuf[NGTCP2_CRYPTO_INITIAL_IVLEN]; uint8_t tx_hp_keybuf[NGTCP2_CRYPTO_INITIAL_KEYLEN]; - const ngtcp2_crypto_ctx *ctx = ngtcp2_conn_get_initial_crypto_ctx(conn); + const ngtcp2_crypto_ctx *ctx = ngtcp2_conn_get_initial_crypto_ctx2(conn); ngtcp2_crypto_aead_ctx rx_aead_ctx = {0}; ngtcp2_crypto_cipher_ctx rx_hp_ctx = {0}; ngtcp2_crypto_aead_ctx tx_aead_ctx = {0}; ngtcp2_crypto_cipher_ctx tx_hp_ctx = {0}; int rv; - int server = ngtcp2_conn_is_server(conn); + int server = ngtcp2_conn_is_server2(conn); if (!rx_secret) { rx_secret = rx_secretbuf; @@ -760,45 +792,54 @@ int ngtcp2_crypto_update_key( ngtcp2_crypto_aead_ctx *tx_aead_ctx, uint8_t *tx_key, uint8_t *tx_iv, const uint8_t *current_rx_secret, const uint8_t *current_tx_secret, size_t secretlen) { - const ngtcp2_crypto_ctx *ctx = ngtcp2_conn_get_crypto_ctx(conn); + const ngtcp2_crypto_ctx *ctx = ngtcp2_conn_get_crypto_ctx2(conn); const ngtcp2_crypto_aead *aead = &ctx->aead; const ngtcp2_crypto_md *md = &ctx->md; + size_t keylen = ngtcp2_crypto_aead_keylen(aead); size_t ivlen = ngtcp2_crypto_packet_protection_ivlen(aead); - uint32_t version = ngtcp2_conn_get_negotiated_version(conn); + uint32_t version = ngtcp2_conn_get_negotiated_version2(conn); if (ngtcp2_crypto_update_traffic_secret(rx_secret, version, md, current_rx_secret, secretlen) != 0) { - return -1; + goto cleanup; } if (ngtcp2_crypto_derive_packet_protection_key( rx_key, rx_iv, NULL, version, aead, md, rx_secret, secretlen) != 0) { - return -1; + goto cleanup; } if (ngtcp2_crypto_update_traffic_secret(tx_secret, version, md, current_tx_secret, secretlen) != 0) { - return -1; + goto cleanup; } if (ngtcp2_crypto_derive_packet_protection_key( tx_key, tx_iv, NULL, version, aead, md, tx_secret, secretlen) != 0) { - return -1; + goto cleanup; } if (ngtcp2_crypto_aead_ctx_decrypt_init(rx_aead_ctx, aead, rx_key, ivlen) != 0) { - return -1; + goto cleanup; } if (ngtcp2_crypto_aead_ctx_encrypt_init(tx_aead_ctx, aead, tx_key, ivlen) != 0) { ngtcp2_crypto_aead_ctx_free(rx_aead_ctx); rx_aead_ctx->native_handle = NULL; - return -1; + goto cleanup; } return 0; + +cleanup: + ngtcp2_secure_clear(rx_secret, secretlen); + ngtcp2_secure_clear(tx_secret, secretlen); + ngtcp2_secure_clear(rx_key, keylen); + ngtcp2_secure_clear(tx_key, keylen); + + return -1; } int ngtcp2_crypto_encrypt_cb(uint8_t *dest, const ngtcp2_crypto_aead *aead, @@ -842,12 +883,18 @@ int ngtcp2_crypto_update_key_cb( size_t secretlen, void *user_data) { uint8_t rx_key[64]; uint8_t tx_key[64]; + int rv; (void)conn; (void)user_data; - if (ngtcp2_crypto_update_key( - conn, rx_secret, tx_secret, rx_aead_ctx, rx_key, rx_iv, tx_aead_ctx, - tx_key, tx_iv, current_rx_secret, current_tx_secret, secretlen) != 0) { + rv = ngtcp2_crypto_update_key( + conn, rx_secret, tx_secret, rx_aead_ctx, rx_key, rx_iv, tx_aead_ctx, tx_key, + tx_iv, current_rx_secret, current_tx_secret, secretlen); + + ngtcp2_secure_clear(rx_key, sizeof(rx_key)); + ngtcp2_secure_clear(tx_key, sizeof(tx_key)); + + if (rv != 0) { return NGTCP2_ERR_CALLBACK_FAILURE; } return 0; @@ -1012,6 +1059,11 @@ ngtcp2_ssize ngtcp2_crypto_generate_retry_token( return p - token; } +static int crypto_token_expired(ngtcp2_tstamp gen_ts, ngtcp2_duration timeout, + ngtcp2_tstamp ts) { + return ts >= timeout && gen_ts <= ts - timeout; +} + int ngtcp2_crypto_verify_retry_token( ngtcp2_cid *odcid, const uint8_t *token, size_t tokenlen, const uint8_t *secret, size_t secretlen, uint32_t version, @@ -1089,7 +1141,7 @@ int ngtcp2_crypto_verify_retry_token( sizeof(gen_ts)); gen_ts = ngtcp2_ntohl64(gen_ts); - if (gen_ts + timeout <= ts) { + if (crypto_token_expired(gen_ts, timeout, ts)) { return -1; } @@ -1287,7 +1339,7 @@ int ngtcp2_crypto_verify_retry_token2( memcpy(&gen_ts, p + NGTCP2_MAX_CIDLEN, sizeof(gen_ts)); gen_ts = ngtcp2_ntohl64(gen_ts); - if (gen_ts + timeout <= ts) { + if (crypto_token_expired(gen_ts, timeout, ts)) { return NGTCP2_CRYPTO_ERR_VERIFY_TOKEN; } @@ -1481,7 +1533,7 @@ static ngtcp2_ssize crypto_verify_regular_token( memcpy(&gen_ts, plaintext, sizeof(gen_ts)); gen_ts = ngtcp2_ntohl64(gen_ts); - if (gen_ts + timeout <= ts) { + if (crypto_token_expired(gen_ts, timeout, ts)) { return NGTCP2_CRYPTO_ERR_VERIFY_TOKEN; } @@ -1641,13 +1693,13 @@ ngtcp2_ssize ngtcp2_crypto_write_retry(uint8_t *dest, size_t destlen, } int ngtcp2_crypto_client_initial_cb(ngtcp2_conn *conn, void *user_data) { - const ngtcp2_cid *dcid = ngtcp2_conn_get_dcid(conn); - void *tls = ngtcp2_conn_get_tls_native_handle(conn); + const ngtcp2_cid *dcid = ngtcp2_conn_get_dcid2(conn); + void *tls = ngtcp2_conn_get_tls_native_handle2(conn); (void)user_data; if (ngtcp2_crypto_derive_and_install_initial_key( conn, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - ngtcp2_conn_get_client_chosen_version(conn), dcid) != 0) { + ngtcp2_conn_get_client_chosen_version2(conn), dcid) != 0) { return NGTCP2_ERR_CALLBACK_FAILURE; } @@ -1669,7 +1721,7 @@ int ngtcp2_crypto_recv_retry_cb(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd, if (ngtcp2_crypto_derive_and_install_initial_key( conn, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - ngtcp2_conn_get_client_chosen_version(conn), &hd->scid) != 0) { + ngtcp2_conn_get_client_chosen_version2(conn), &hd->scid) != 0) { return NGTCP2_ERR_CALLBACK_FAILURE; } @@ -1683,7 +1735,7 @@ int ngtcp2_crypto_recv_client_initial_cb(ngtcp2_conn *conn, if (ngtcp2_crypto_derive_and_install_initial_key( conn, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - ngtcp2_conn_get_client_chosen_version(conn), dcid) != 0) { + ngtcp2_conn_get_client_chosen_version2(conn), dcid) != 0) { return NGTCP2_ERR_CALLBACK_FAILURE; } @@ -1744,7 +1796,7 @@ int ngtcp2_crypto_recv_crypto_data_cb(ngtcp2_conn *conn, return 0; } - rv = ngtcp2_conn_get_tls_error(conn); + rv = ngtcp2_conn_get_tls_error2(conn); if (rv) { return rv; } diff --git a/src/contrib/libngtcp2/ngtcp2/crypto/shared.h b/src/contrib/libngtcp2/ngtcp2/crypto/shared.h index c517b7f224..e853c8140f 100644 --- a/src/contrib/libngtcp2/ngtcp2/crypto/shared.h +++ b/src/contrib/libngtcp2/ngtcp2/crypto/shared.h @@ -261,7 +261,7 @@ int ngtcp2_crypto_set_remote_transport_params(ngtcp2_conn *conn, void *tls); * This function calls `ngtcp2_conn_set_initial_crypto_ctx` to set * initial AEAD and message digest algorithm. After the successful * call of this function, application can use - * `ngtcp2_conn_get_initial_crypto_ctx` to get the object. + * `ngtcp2_conn_get_initial_crypto_ctx2` to get the object. * * This function returns 0 if it succeeds, or -1. */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c index 4a9ac5cf0a..2f194ab131 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_acktr.c @@ -410,7 +410,7 @@ int ngtcp2_acktr_create_ack_frame(ngtcp2_acktr *acktr, ngtcp2_ack *ack, ack->ack_delay = 0; } - num_acks = ngtcp2_min_size(num_acks, NGTCP2_MAX_ACK_RANGES); + num_acks = ngtcp2_min(num_acks, NGTCP2_MAX_ACK_RANGES); for (; ack->rangecnt < num_acks; ngtcp2_ksl_it_next(&it)) { rpkt = ngtcp2_ksl_it_get(&it); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c index fff7a9ef65..ea72eb8314 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_balloc.c @@ -84,7 +84,7 @@ int ngtcp2_balloc_get(ngtcp2_balloc *balloc, void **pbuf, size_t n) { assert(((uintptr_t)balloc->buf.last & 0xFU) == 0); *pbuf = balloc->buf.last; - balloc->buf.last += (n + 0xFU) & ~(uintptr_t)0xFU; + balloc->buf.last += (n + 0xFU) & ~(size_t)0xFU; return 0; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c index 3db6a9f2bf..cdeb29bb50 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c @@ -62,6 +62,8 @@ #define NGTCP2_BBR_PACING_MARGIN_PERCENT 1 +#define NGTCP2_BBR_MAX_DRAIN_ROUNDS 3 + static void bbr_on_init(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, ngtcp2_tstamp initial_ts); @@ -350,6 +352,7 @@ static void bbr_on_init(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, bbr->max_inflight = 0; bbr->bdp = 0; + bbr->drain_start_round = 0; bbr->undo_state = 0; bbr->undo_bw_shortterm = 0; @@ -403,8 +406,7 @@ static void bbr_check_full_bw_reached(ngtcp2_cc_bbr *bbr, bbr->full_bw_reached = 1; ngtcp2_log_infof(bbr->cc.log, NGTCP2_LOG_EVENT_CCA, - "bbr reached full bandwidth, full_bw=%" PRIu64, - bbr->full_bw); + "bbr reached full bandwidth, full_bw=", bbr->full_bw); } static void bbr_check_startup_high_loss(ngtcp2_cc_bbr *bbr) { @@ -416,18 +418,18 @@ static void bbr_check_startup_high_loss(ngtcp2_cc_bbr *bbr) { } bbr->full_bw_reached = 1; - bbr->inflight_longterm = ngtcp2_max_uint64( - bbr_bdp_multiple(bbr, bbr->cwnd_gain_h), bbr->inflight_latest); + bbr->inflight_longterm = + ngtcp2_max(bbr_bdp_multiple(bbr, bbr->cwnd_gain_h), bbr->inflight_latest); } static void bbr_init_pacing_rate(const ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { - cstat->pacing_interval_m = ngtcp2_max_uint64( - ((cstat->first_rtt_sample_ts == UINT64_MAX ? NGTCP2_MILLISECONDS - : cstat->smoothed_rtt) - << 10) * - 100 / NGTCP2_BBR_STARTUP_PACING_GAIN_H / bbr->initial_cwnd, - 1); + cstat->pacing_interval_m = + ngtcp2_max(((cstat->first_rtt_sample_ts == UINT64_MAX ? NGTCP2_MILLISECONDS + : cstat->smoothed_rtt) + << 10) * + 100 / NGTCP2_BBR_STARTUP_PACING_GAIN_H / bbr->initial_cwnd, + 1); } static void bbr_set_pacing_rate_with_gain(const ngtcp2_cc_bbr *bbr, @@ -441,7 +443,7 @@ static void bbr_set_pacing_rate_with_gain(const ngtcp2_cc_bbr *bbr, interval_m = (NGTCP2_SECONDS << 10) * 100 * 100 / pacing_gain_h / bbr->bw / (100 - NGTCP2_BBR_PACING_MARGIN_PERCENT); - interval_m = ngtcp2_max_uint64(interval_m, 1); + interval_m = ngtcp2_max(interval_m, 1); if (bbr->full_bw_reached || interval_m < cstat->pacing_interval_m) { cstat->pacing_interval_m = interval_m; @@ -508,9 +510,9 @@ static void bbr_update_control_parameters(ngtcp2_cc_bbr *bbr, static void bbr_update_latest_delivery_signals(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat) { bbr->loss_round_start = 0; - bbr->bw_latest = ngtcp2_max_uint64(bbr->bw_latest, cstat->delivery_rate_sec); + bbr->bw_latest = ngtcp2_max(bbr->bw_latest, cstat->delivery_rate_sec); bbr->inflight_latest = - ngtcp2_max_uint64(bbr->inflight_latest, bbr->rst->rs.delivered); + ngtcp2_max(bbr->inflight_latest, bbr->rst->rs.delivered); if (bbr->rst->rs.prior_delivered >= bbr->loss_round_delivered) { bbr->loss_round_delivered = bbr->rst->delivered; @@ -570,16 +572,16 @@ static void bbr_init_lower_bounds(ngtcp2_cc_bbr *bbr, } static void bbr_loss_lower_bounds(ngtcp2_cc_bbr *bbr) { - bbr->bw_shortterm = ngtcp2_max_uint64( - bbr->bw_latest, - bbr->bw_shortterm * NGTCP2_BBR_BETA_NUMER / NGTCP2_BBR_BETA_DENOM); - bbr->inflight_shortterm = ngtcp2_max_uint64( + bbr->bw_shortterm = + ngtcp2_max(bbr->bw_latest, bbr->bw_shortterm * NGTCP2_BBR_BETA_NUMER / + NGTCP2_BBR_BETA_DENOM); + bbr->inflight_shortterm = ngtcp2_max( bbr->inflight_latest, bbr->inflight_shortterm * NGTCP2_BBR_BETA_NUMER / NGTCP2_BBR_BETA_DENOM); } static void bbr_bound_bw_for_model(ngtcp2_cc_bbr *bbr) { - bbr->bw = ngtcp2_min_uint64(bbr->max_bw, bbr->bw_shortterm); + bbr->bw = ngtcp2_min(bbr->max_bw, bbr->bw_shortterm); } static void bbr_update_max_bw(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat, @@ -661,7 +663,7 @@ static void bbr_update_ack_aggregation(ngtcp2_cc_bbr *bbr, extra = 0; } else { extra = bbr->extra_acked_delivered - expected_delivered; - extra = ngtcp2_min_uint64(extra, cstat->cwnd); + extra = ngtcp2_min(extra, cstat->cwnd); } if (bbr->full_bw_reached) { @@ -682,13 +684,16 @@ static void bbr_enter_drain(ngtcp2_cc_bbr *bbr) { bbr->state = NGTCP2_BBR_STATE_DRAIN; bbr->pacing_gain_h = NGTCP2_BBR_DRAIN_PACING_GAIN_H; bbr->cwnd_gain_h = NGTCP2_BBR_DEFAULT_CWND_GAIN_H; + bbr->drain_start_round = bbr->round_count; } static void bbr_check_drain_done(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat, ngtcp2_tstamp ts) { if (bbr->state == NGTCP2_BBR_STATE_DRAIN && - cstat->bytes_in_flight <= bbr_inflight(bbr, cstat, 100)) { + (cstat->bytes_in_flight <= bbr_inflight(bbr, cstat, 100) || + bbr->round_count > + bbr->drain_start_round + NGTCP2_BBR_MAX_DRAIN_ROUNDS)) { bbr_enter_probe_bw(bbr, ts); } } @@ -810,8 +815,8 @@ static void bbr_update_probe_bw_cycle_phase(ngtcp2_cc_bbr *bbr, static int bbr_is_time_to_cruise(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat) { - uint64_t inflight = ngtcp2_min_uint64(bbr_inflight_with_headroom(bbr, cstat), - bbr_inflight(bbr, cstat, 100)); + uint64_t inflight = ngtcp2_min(bbr_inflight_with_headroom(bbr, cstat), + bbr_inflight(bbr, cstat, 100)); return cstat->bytes_in_flight <= inflight; } @@ -842,14 +847,13 @@ static uint64_t bbr_inflight_with_headroom(const ngtcp2_cc_bbr *bbr, return UINT64_MAX; } - headroom = - ngtcp2_max_uint64(cstat->max_tx_udp_payload_size, - bbr->inflight_longterm * NGTCP2_BBR_HEADROOM_NUMER / - NGTCP2_BBR_HEADROOM_DENOM); + headroom = ngtcp2_max((uint64_t)cstat->max_tx_udp_payload_size, + bbr->inflight_longterm * NGTCP2_BBR_HEADROOM_NUMER / + NGTCP2_BBR_HEADROOM_DENOM); mpcwnd = min_pipe_cwnd(cstat->max_tx_udp_payload_size); if (bbr->inflight_longterm > headroom) { - return ngtcp2_max_uint64(bbr->inflight_longterm - headroom, mpcwnd); + return ngtcp2_max(bbr->inflight_longterm - headroom, mpcwnd); } return mpcwnd; @@ -860,8 +864,8 @@ static void bbr_raise_inflight_longterm_slope(ngtcp2_cc_bbr *bbr, uint64_t growth_this_round = cstat->max_tx_udp_payload_size << bbr->bw_probe_up_rounds; - bbr->bw_probe_up_rounds = ngtcp2_min_size(bbr->bw_probe_up_rounds + 1, 30); - bbr->probe_up_cnt = ngtcp2_max_uint64(cstat->cwnd / growth_this_round, 1); + bbr->bw_probe_up_rounds = ngtcp2_min(bbr->bw_probe_up_rounds + 1, 30); + bbr->probe_up_cnt = ngtcp2_max(cstat->cwnd / growth_this_round, 1); } static void bbr_probe_inflight_longterm_upward(ngtcp2_cc_bbr *bbr, @@ -942,12 +946,12 @@ static int bbr_is_reno_coexistence_probe_time(const ngtcp2_cc_bbr *bbr, uint64_t reno_rounds = bbr_target_inflight(bbr, cstat) / cstat->max_tx_udp_payload_size; - return bbr->rounds_since_bw_probe >= ngtcp2_min_uint64(reno_rounds, 63); + return bbr->rounds_since_bw_probe >= ngtcp2_min(reno_rounds, 63); } static uint64_t bbr_target_inflight(const ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat) { - return ngtcp2_min_uint64(bbr->bdp, cstat->cwnd); + return ngtcp2_min(bbr->bdp, cstat->cwnd); } static int bbr_is_inflight_too_high(const ngtcp2_cc_bbr *bbr, @@ -964,7 +968,7 @@ static void bbr_handle_inflight_too_high(ngtcp2_cc_bbr *bbr, bbr->bw_probe_samples = 0; if (!rs->is_app_limited) { - bbr->inflight_longterm = ngtcp2_max_uint64( + bbr->inflight_longterm = ngtcp2_max( rs->tx_in_flight, bbr_target_inflight(bbr, cstat) * NGTCP2_BBR_BETA_NUMER / NGTCP2_BBR_BETA_DENOM); } @@ -996,12 +1000,11 @@ static void bbr_handle_spurious_loss_detection(ngtcp2_cc_bbr *bbr, bbr_reset_full_bw(bbr); - bbr->bw_shortterm = - ngtcp2_max_uint64(bbr->bw_shortterm, bbr->undo_bw_shortterm); + bbr->bw_shortterm = ngtcp2_max(bbr->bw_shortterm, bbr->undo_bw_shortterm); bbr->inflight_shortterm = - ngtcp2_max_uint64(bbr->inflight_shortterm, bbr->undo_inflight_shortterm); + ngtcp2_max(bbr->inflight_shortterm, bbr->undo_inflight_shortterm); bbr->inflight_longterm = - ngtcp2_max_uint64(bbr->inflight_longterm, bbr->undo_inflight_longterm); + ngtcp2_max(bbr->inflight_longterm, bbr->undo_inflight_longterm); if (bbr->state != NGTCP2_BBR_STATE_PROBE_RTT && bbr->state != bbr->undo_state) { @@ -1087,7 +1090,7 @@ static void bbr_update_min_rtt(ngtcp2_cc_bbr *bbr, const ngtcp2_cc_ack *ack, bbr->min_rtt_stamp = bbr->probe_rtt_min_stamp; ngtcp2_log_infof(bbr->cc.log, NGTCP2_LOG_EVENT_CCA, - "bbr update min_rtt=%" PRIu64, bbr->min_rtt); + "bbr update min_rtt=", bbr->min_rtt); } } @@ -1160,7 +1163,7 @@ static void bbr_check_probe_rtt_done(ngtcp2_cc_bbr *bbr, static void bbr_mark_connection_app_limited(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat) { bbr->rst->app_limited = - ngtcp2_max_uint64(bbr->rst->delivered + cstat->bytes_in_flight, 1); + ngtcp2_max(bbr->rst->delivered + cstat->bytes_in_flight, 1); } static void bbr_exit_probe_rtt(ngtcp2_cc_bbr *bbr, ngtcp2_tstamp ts) { @@ -1196,7 +1199,7 @@ static uint64_t bbr_bdp_multiple(ngtcp2_cc_bbr *bbr, uint64_t gain_h) { return bbr->initial_cwnd; } - bbr->bdp = ngtcp2_max_uint64(bbr->bw * bbr->min_rtt / NGTCP2_SECONDS, 1); + bbr->bdp = ngtcp2_max(bbr->bw * bbr->min_rtt / NGTCP2_SECONDS, 1); return (uint64_t)(bbr->bdp * gain_h / 100); } @@ -1210,9 +1213,9 @@ static uint64_t bbr_quantization_budget(ngtcp2_cc_bbr *bbr, uint64_t inflight) { bbr_update_offload_budget(bbr, cstat); - inflight = ngtcp2_max_uint64(inflight, bbr->offload_budget); + inflight = ngtcp2_max(inflight, bbr->offload_budget); inflight = - ngtcp2_max_uint64(inflight, min_pipe_cwnd(cstat->max_tx_udp_payload_size)); + ngtcp2_max(inflight, min_pipe_cwnd(cstat->max_tx_udp_payload_size)); if (bbr->state == NGTCP2_BBR_STATE_PROBE_BW_UP) { inflight += 2 * cstat->max_tx_udp_payload_size; @@ -1251,12 +1254,12 @@ static void bbr_save_cwnd(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat) { return; } - bbr->prior_cwnd = ngtcp2_max_uint64(bbr->prior_cwnd, cstat->cwnd); + bbr->prior_cwnd = ngtcp2_max(bbr->prior_cwnd, cstat->cwnd); } static void bbr_restore_cwnd(const ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { - cstat->cwnd = ngtcp2_max_uint64(cstat->cwnd, bbr->prior_cwnd); + cstat->cwnd = ngtcp2_max(cstat->cwnd, bbr->prior_cwnd); } static uint64_t bbr_probe_rtt_cwnd(ngtcp2_cc_bbr *bbr, @@ -1265,14 +1268,13 @@ static uint64_t bbr_probe_rtt_cwnd(ngtcp2_cc_bbr *bbr, bbr_bdp_multiple(bbr, NGTCP2_BBR_PROBE_RTT_CWND_GAIN_H); uint64_t mpcwnd = min_pipe_cwnd(cstat->max_tx_udp_payload_size); - return ngtcp2_max_uint64(probe_rtt_cwnd, mpcwnd); + return ngtcp2_max(probe_rtt_cwnd, mpcwnd); } static void bbr_bound_cwnd_for_probe_rtt(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat) { if (bbr->state == NGTCP2_BBR_STATE_PROBE_RTT) { - cstat->cwnd = - ngtcp2_min_uint64(cstat->cwnd, bbr_probe_rtt_cwnd(bbr, cstat)); + cstat->cwnd = ngtcp2_min(cstat->cwnd, bbr_probe_rtt_cwnd(bbr, cstat)); } } @@ -1284,14 +1286,14 @@ static void bbr_set_cwnd(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, if (bbr->full_bw_reached) { cstat->cwnd += ack->bytes_delivered; - cstat->cwnd = ngtcp2_min_uint64(cstat->cwnd, bbr->max_inflight); + cstat->cwnd = ngtcp2_min(cstat->cwnd, bbr->max_inflight); } else if (cstat->cwnd < bbr->max_inflight || bbr->rst->delivered < bbr->initial_cwnd) { cstat->cwnd += ack->bytes_delivered; } mpcwnd = min_pipe_cwnd(cstat->max_tx_udp_payload_size); - cstat->cwnd = ngtcp2_max_uint64(cstat->cwnd, mpcwnd); + cstat->cwnd = ngtcp2_max(cstat->cwnd, mpcwnd); bbr_bound_cwnd_for_probe_rtt(bbr, cstat); bbr_bound_cwnd_for_model(bbr, cstat); @@ -1310,10 +1312,10 @@ static void bbr_bound_cwnd_for_model(const ngtcp2_cc_bbr *bbr, cap = bbr_inflight_with_headroom(bbr, cstat); } - cap = ngtcp2_min_uint64(cap, bbr->inflight_shortterm); - cap = ngtcp2_max_uint64(cap, mpcwnd); + cap = ngtcp2_min(cap, bbr->inflight_shortterm); + cap = ngtcp2_max(cap, mpcwnd); - cstat->cwnd = ngtcp2_min_uint64(cstat->cwnd, cap); + cstat->cwnd = ngtcp2_min(cstat->cwnd, cap); } static void bbr_set_send_quantum(const ngtcp2_cc_bbr *bbr, @@ -1321,12 +1323,11 @@ static void bbr_set_send_quantum(const ngtcp2_cc_bbr *bbr, size_t send_quantum = 64 * 1024; (void)bbr; - send_quantum = - ngtcp2_min_size(send_quantum, (size_t)((NGTCP2_MILLISECONDS << 10) / - cstat->pacing_interval_m)); + send_quantum = ngtcp2_min(send_quantum, (size_t)((NGTCP2_MILLISECONDS << 10) / + cstat->pacing_interval_m)); cstat->send_quantum = - ngtcp2_max_size(send_quantum, 2 * cstat->max_tx_udp_payload_size); + ngtcp2_max(send_quantum, 2 * cstat->max_tx_udp_payload_size); } static int in_congestion_recovery(const ngtcp2_conn_stat *cstat, @@ -1402,8 +1403,8 @@ static void bbr_cc_on_persistent_congestion(ngtcp2_cc *cc, bbr_save_cwnd(bbr, cstat); cstat->cwnd = cstat->bytes_in_flight + cstat->max_tx_udp_payload_size; - cstat->cwnd = ngtcp2_max_uint64( - cstat->cwnd, min_pipe_cwnd(cstat->max_tx_udp_payload_size)); + cstat->cwnd = + ngtcp2_max(cstat->cwnd, min_pipe_cwnd(cstat->max_tx_udp_payload_size)); } static void bbr_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h index 5177944b29..81384e6d9f 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h @@ -133,6 +133,7 @@ typedef struct ngtcp2_cc_bbr { uint64_t round_count_at_recovery; uint64_t max_inflight; uint64_t bdp; + uint64_t drain_start_round; int loss_round_start; int bw_probe_samples; int probe_rtt_expired; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c index 73dfde6904..2d3c65dbf3 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c @@ -36,9 +36,8 @@ #include "ngtcp2_unreachable.h" uint64_t ngtcp2_cc_compute_initcwnd(size_t max_udp_payload_size) { - uint64_t n = 2 * max_udp_payload_size; - n = ngtcp2_max_uint64(n, 14720); - return ngtcp2_min_uint64(10 * max_udp_payload_size, n); + size_t n = ngtcp2_max(2 * max_udp_payload_size, 14720); + return ngtcp2_min(10 * max_udp_payload_size, n); } /* 1.25 is the under-utilization avoidance factor described in @@ -48,9 +47,9 @@ uint64_t ngtcp2_cc_compute_initcwnd(size_t max_udp_payload_size) { static void init_pacing_rate(ngtcp2_conn_stat *cstat) { assert(cstat->cwnd); - cstat->pacing_interval_m = ngtcp2_max_uint64( - (NGTCP2_MILLISECONDS << 10) * 100 / NGTCP2_CC_PACING_GAIN_H / cstat->cwnd, - 1); + cstat->pacing_interval_m = ngtcp2_max((NGTCP2_MILLISECONDS << 10) * 100 / + NGTCP2_CC_PACING_GAIN_H / cstat->cwnd, + 1); cstat->send_quantum = 10 * cstat->max_tx_udp_payload_size; } @@ -65,14 +64,13 @@ static void set_pacing_rate(ngtcp2_conn_stat *cstat) { << 10) * 100 / NGTCP2_CC_PACING_GAIN_H / cstat->cwnd; - cstat->pacing_interval_m = ngtcp2_max_uint64(cstat->pacing_interval_m, 1); + cstat->pacing_interval_m = ngtcp2_max(cstat->pacing_interval_m, 1); - send_quantum = - ngtcp2_min_size(send_quantum, (size_t)((NGTCP2_MILLISECONDS << 10) / - cstat->pacing_interval_m)); + send_quantum = ngtcp2_min(send_quantum, (size_t)((NGTCP2_MILLISECONDS << 10) / + cstat->pacing_interval_m)); cstat->send_quantum = - ngtcp2_max_size(send_quantum, 10 * cstat->max_tx_udp_payload_size); + ngtcp2_max(send_quantum, 10 * cstat->max_tx_udp_payload_size); } ngtcp2_cc_pkt *ngtcp2_cc_pkt_init(ngtcp2_cc_pkt *pkt, int64_t pkt_num, @@ -134,9 +132,8 @@ void ngtcp2_cc_reno_cc_on_pkt_acked(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, set_pacing_rate(cstat); - ngtcp2_log_infof(reno->cc.log, NGTCP2_LOG_EVENT_CCA, - "pkn=%" PRId64 " acked, slow start cwnd=%" PRIu64, - pkt->pkt_num, cstat->cwnd); + ngtcp2_log_infof(reno->cc.log, NGTCP2_LOG_EVENT_CCA, "pkn=", pkt->pkt_num, + " acked, slow start cwnd=", cstat->cwnd); return; } @@ -163,7 +160,7 @@ void ngtcp2_cc_reno_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, cstat->congestion_recovery_start_ts = ts; cstat->cwnd >>= NGTCP2_LOSS_REDUCTION_FACTOR_BITS; min_cwnd = 2 * cstat->max_tx_udp_payload_size; - cstat->cwnd = ngtcp2_max_uint64(cstat->cwnd, min_cwnd); + cstat->cwnd = ngtcp2_max(cstat->cwnd, min_cwnd); cstat->ssthresh = cstat->cwnd; reno->pending_add = 0; @@ -171,8 +168,7 @@ void ngtcp2_cc_reno_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, set_pacing_rate(cstat); ngtcp2_log_infof(reno->cc.log, NGTCP2_LOG_EVENT_CCA, - "reduce cwnd because of packet loss cwnd=%" PRIu64, - cstat->cwnd); + "reduce cwnd because of packet loss cwnd=", cstat->cwnd); } void ngtcp2_cc_reno_cc_on_persistent_congestion(ngtcp2_cc *cc, @@ -291,7 +287,7 @@ static uint64_t cubic_cc_compute_w_cubic(ngtcp2_cc_cubic *cubic, time_delta_m = tx_m - cubic->current.k_m; } - time_delta_m = ngtcp2_min_uint64(time_delta_m, 3600 << 10); + time_delta_m = ngtcp2_min(time_delta_m, 3600 << 10); delta = ((((time_delta_m * time_delta_m) >> 10) * time_delta_m) >> 10) * cstat->max_tx_udp_payload_size * 4 / 10; @@ -326,15 +322,15 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, return; } - if (cstat->cwnd < cstat->ssthresh) { - /* slow-start */ - round_start = ack->pkt_delivered >= cubic->next_round_delivered; - if (round_start) { - cubic->next_round_delivered = cubic->rst->delivered; + round_start = ack->pkt_delivered >= cubic->next_round_delivered; + if (round_start) { + cubic->next_round_delivered = cubic->rst->delivered; - cubic->rst->is_cwnd_limited = 0; - } + cubic->rst->is_cwnd_limited = 0; + } + if (cstat->cwnd < cstat->ssthresh) { + /* slow-start */ if (!is_app_limited) { if (cubic->hs.css_round) { cstat->cwnd += ack->bytes_delivered / NGTCP2_HS_CSS_GROWTH_DIVISOR; @@ -345,8 +341,8 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, set_pacing_rate(cstat); ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, - "%" PRIu64 " bytes acked, slow start cwnd=%" PRIu64, - ack->bytes_delivered, cstat->cwnd); + ack->bytes_delivered, + " bytes acked, slow start cwnd=", cstat->cwnd); } if (round_start) { @@ -360,7 +356,7 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, } cubic->hs.current_round_min_rtt = - ngtcp2_min_uint64(cubic->hs.current_round_min_rtt, ack->rtt); + ngtcp2_min(cubic->hs.current_round_min_rtt, ack->rtt); ++cubic->hs.rtt_sample_count; if (cubic->hs.css_round) { @@ -387,11 +383,10 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, if (cubic->hs.rtt_sample_count >= NGTCP2_HS_N_RTT_SAMPLE && cubic->hs.current_round_min_rtt != UINT64_MAX && cubic->hs.last_round_min_rtt != UINT64_MAX) { - rtt_thresh = - ngtcp2_max_uint64(NGTCP2_HS_MIN_RTT_THRESH, - ngtcp2_min_uint64(cubic->hs.last_round_min_rtt / - NGTCP2_HS_MIN_RTT_DIVISOR, - NGTCP2_HS_MAX_RTT_THRESH)); + rtt_thresh = ngtcp2_max( + NGTCP2_HS_MIN_RTT_THRESH, + ngtcp2_min(cubic->hs.last_round_min_rtt / NGTCP2_HS_MIN_RTT_DIVISOR, + NGTCP2_HS_MAX_RTT_THRESH)); if (cubic->hs.current_round_min_rtt >= cubic->hs.last_round_min_rtt + rtt_thresh) { @@ -462,11 +457,10 @@ void ngtcp2_cc_cubic_cc_on_ack_recv(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, set_pacing_rate(cstat); - ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, - "%" PRIu64 " bytes acked, cubic-ca cwnd=%" PRIu64 - " k_m=%" PRIu64 " target=%" PRIu64 " w_est=%" PRIu64, - ack->bytes_delivered, cstat->cwnd, cubic->current.k_m, - target, cubic->current.w_est); + ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, ack->bytes_delivered, + " bytes acked, cubic-ca cwnd=", cstat->cwnd, + " k_m=", cubic->current.k_m, " target=", target, + " w_est=", cubic->current.w_est); } void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, @@ -502,19 +496,18 @@ void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, } cubic->current.w_max = - ngtcp2_max_uint64(cubic->current.w_max, 2 * cstat->max_tx_udp_payload_size); + ngtcp2_max(cubic->current.w_max, 2 * cstat->max_tx_udp_payload_size); cstat->ssthresh = cstat->cwnd * 7 / 10; if (cubic->rst->rs.delivered * 2 < cstat->cwnd) { flight_size = cstat->bytes_in_flight + ack->bytes_lost; - cstat->ssthresh = ngtcp2_min_uint64( - cstat->ssthresh, - ngtcp2_max_uint64(cubic->rst->rs.delivered, flight_size)); + cstat->ssthresh = ngtcp2_min( + cstat->ssthresh, ngtcp2_max(cubic->rst->rs.delivered, flight_size)); } cstat->ssthresh = - ngtcp2_max_uint64(cstat->ssthresh, 2 * cstat->max_tx_udp_payload_size); + ngtcp2_max(cstat->ssthresh, 2 * cstat->max_tx_udp_payload_size); cubic->current.cwnd_prior = cstat->cwnd; cstat->cwnd = cstat->ssthresh; @@ -531,8 +524,7 @@ void ngtcp2_cc_cubic_cc_congestion_event(ngtcp2_cc *cc, ngtcp2_conn_stat *cstat, set_pacing_rate(cstat); ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, - "reduce cwnd because of packet loss cwnd=%" PRIu64, - cstat->cwnd); + "reduce cwnd because of packet loss cwnd=", cstat->cwnd); } void ngtcp2_cc_cubic_cc_on_spurious_congestion(ngtcp2_cc *cc, @@ -552,7 +544,7 @@ void ngtcp2_cc_cubic_cc_on_spurious_congestion(ngtcp2_cc *cc, ngtcp2_log_infof(cubic->cc.log, NGTCP2_LOG_EVENT_CCA, "spurious congestion is detected and congestion state is " - "restored cwnd=%" PRIu64, + "restored cwnd=", cstat->cwnd); } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c index c470eb05b0..28bbde1233 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c @@ -58,13 +58,23 @@ are not processed. */ #define NGTCP2_MAX_ACK_PER_PKT 1 +/* NGTCP2_MAX_INITIAL_CRYPTO_OFFSET is the maximum offset of CRYPTO + data at Initial encryption level. */ +#define NGTCP2_MAX_INITIAL_CRYPTO_OFFSET (16 * 1024) +/* NGTCP2_MAX_HANDSHAKE_CRYPTO_OFFSET is the maximum offset of CRYPTO + data at Handshake encryption level. */ +#define NGTCP2_MAX_HANDSHAKE_CRYPTO_OFFSET (64 * 1024) +/* NGTCP2_MAX_1RTT_CRYPTO_OFFSET is the maximum offset of CRYPTO data + at 1RTT encryption level. */ +#define NGTCP2_MAX_1RTT_CRYPTO_OFFSET (256 * 1024) + ngtcp2_objalloc_def(strm, ngtcp2_strm, oplent) /* * conn_local_stream returns nonzero if |stream_id| indicates that it * is the stream initiated by local endpoint. */ -static int conn_local_stream(ngtcp2_conn *conn, int64_t stream_id) { +static int conn_local_stream(const ngtcp2_conn *conn, int64_t stream_id) { return (uint8_t)(stream_id & 1) == conn->server; } @@ -86,7 +96,7 @@ static void conn_update_timestamp(ngtcp2_conn *conn, ngtcp2_tstamp ts) { * conn_is_tls_handshake_completed returns nonzero if TLS handshake * has completed and 1 RTT keys are available. */ -static int conn_is_tls_handshake_completed(ngtcp2_conn *conn) { +static int conn_is_tls_handshake_completed(const ngtcp2_conn *conn) { return (conn->flags & NGTCP2_CONN_FLAG_TLS_HANDSHAKE_COMPLETED) && conn->pktns.crypto.rx.ckm && conn->pktns.crypto.tx.ckm; } @@ -854,7 +864,7 @@ static void conn_reset_conn_stat_cc(ngtcp2_conn *conn, cstat->pto_count = 0; cstat->loss_detection_timer = UINT64_MAX; cstat->max_tx_udp_payload_size = - ngtcp2_conn_get_path_max_tx_udp_payload_size(conn); + ngtcp2_conn_get_path_max_tx_udp_payload_size2(conn); cstat->cwnd = ngtcp2_cc_compute_initcwnd(cstat->max_tx_udp_payload_size); cstat->ssthresh = UINT64_MAX; cstat->congestion_recovery_start_ts = UINT64_MAX; @@ -898,15 +908,15 @@ static void delete_scid(ngtcp2_ksl *scids, const ngtcp2_mem *mem) { static ngtcp2_duration compute_pto(ngtcp2_duration smoothed_rtt, ngtcp2_duration rttvar, ngtcp2_duration max_ack_delay) { - ngtcp2_duration var = ngtcp2_max_uint64(4 * rttvar, NGTCP2_GRANULARITY); + ngtcp2_duration var = ngtcp2_max(4 * rttvar, NGTCP2_GRANULARITY); return smoothed_rtt + var + max_ack_delay; } /* * conn_compute_initial_pto computes PTO using the initial RTT. */ -static ngtcp2_duration conn_compute_initial_pto(ngtcp2_conn *conn, - ngtcp2_pktns *pktns) { +static ngtcp2_duration conn_compute_initial_pto(const ngtcp2_conn *conn, + const ngtcp2_pktns *pktns) { ngtcp2_duration initial_rtt = conn->local.settings.initial_rtt; ngtcp2_duration max_ack_delay; @@ -919,12 +929,9 @@ static ngtcp2_duration conn_compute_initial_pto(ngtcp2_conn *conn, return compute_pto(initial_rtt, initial_rtt / 2, max_ack_delay); } -/* - * conn_compute_pto computes the current PTO. - */ -static ngtcp2_duration conn_compute_pto(ngtcp2_conn *conn, - ngtcp2_pktns *pktns) { - ngtcp2_conn_stat *cstat = &conn->cstat; +ngtcp2_duration ngtcp2_conn_compute_pto(const ngtcp2_conn *conn, + const ngtcp2_pktns *pktns) { + const ngtcp2_conn_stat *cstat = &conn->cstat; ngtcp2_duration max_ack_delay; if (pktns->id == NGTCP2_PKTNS_ID_APPLICATION && @@ -936,28 +943,23 @@ static ngtcp2_duration conn_compute_pto(ngtcp2_conn *conn, return compute_pto(cstat->smoothed_rtt, cstat->rttvar, max_ack_delay); } -ngtcp2_duration ngtcp2_conn_compute_pto(ngtcp2_conn *conn, - ngtcp2_pktns *pktns) { - return conn_compute_pto(conn, pktns); -} - /* * conn_compute_pv_timeout_pto returns path validation timeout using * the given |pto|. */ -static ngtcp2_duration conn_compute_pv_timeout_pto(ngtcp2_conn *conn, +static ngtcp2_duration conn_compute_pv_timeout_pto(const ngtcp2_conn *conn, ngtcp2_duration pto) { ngtcp2_duration initial_pto = conn_compute_initial_pto(conn, &conn->pktns); - return 3 * ngtcp2_max_uint64(pto, initial_pto); + return 3 * ngtcp2_max(pto, initial_pto); } /* * conn_compute_pv_timeout returns path validation timeout. */ -static ngtcp2_duration conn_compute_pv_timeout(ngtcp2_conn *conn) { - return conn_compute_pv_timeout_pto(conn, - conn_compute_pto(conn, &conn->pktns)); +static ngtcp2_duration conn_compute_pv_timeout(const ngtcp2_conn *conn) { + return conn_compute_pv_timeout_pto( + conn, ngtcp2_conn_compute_pto(conn, &conn->pktns)); } static void conn_handle_tx_ecn(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, @@ -992,7 +994,7 @@ static void conn_handle_tx_ecn(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, conn->tx.ecn.validation_start_ts = ts; } else if (ts - conn->tx.ecn.validation_start_ts >= - 3 * conn_compute_pto(conn, pktns)) { + 3 * ngtcp2_conn_compute_pto(conn, pktns)) { conn->tx.ecn.state = NGTCP2_ECN_STATE_UNKNOWN; break; } @@ -1117,8 +1119,8 @@ static void conn_update_skip_pkt(ngtcp2_conn *conn, ngtcp2_pktns *pktns) { pktns->tx.skip_pkt.next_pkt_num = pktns->tx.last_pkt_num + gap; - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, "next skip pkn=%" PRId64, - pktns->tx.skip_pkt.next_pkt_num); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "next skip pkn=", pktns->tx.skip_pkt.next_pkt_num); } static int conn_handle_skip_pkt(ngtcp2_conn *conn, ngtcp2_pktns *pktns, @@ -1159,11 +1161,11 @@ static int conn_handle_skip_pkt(ngtcp2_conn *conn, ngtcp2_pktns *pktns, } static size_t buflen_align(size_t buflen) { - return (buflen + 0x7) & (size_t)~0x7; + return (buflen + 0x7U) & ~(size_t)0x7U; } static void *buf_align(void *buf) { - return (void *)((uintptr_t)((uint8_t *)buf + 0x7) & (uintptr_t)~0x7); + return (void *)((uintptr_t)((uint8_t *)buf + 0x7U) & ~(uintptr_t)0x7U); } static void *buf_advance(void *buf, size_t n) { return (uint8_t *)buf + n; } @@ -1178,7 +1180,7 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, const ngtcp2_mem *mem, void *user_data, int server) { int rv; ngtcp2_scid *scident; - void *buf, *tokenbuf; + void *buf, *tokenbuf, *logbuf; size_t buflen; uint8_t fixed_bit_byte; size_t i; @@ -1275,6 +1277,11 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, buflen += sizeof(client_chosen_version); } + if (settings->log_write || settings->log_printf) { + buflen = buflen_align(buflen); + buflen += NGTCP2_LOG_BUFLEN; + } + buf = ngtcp2_mem_calloc(mem, 1, buflen); if (buf == NULL) { return NGTCP2_ERR_NOMEM; @@ -1312,8 +1319,18 @@ static int conn_new(ngtcp2_conn **pconn, const ngtcp2_cid *dcid, ngtcp2_static_ringbuf_path_challenge_init(&(*pconn)->rx.path_challenge); - ngtcp2_log_init(&(*pconn)->log, scid, settings->log_printf, - settings->initial_ts, user_data); + if (settings->log_write || settings->log_printf) { + buf = buf_align(buf); + logbuf = (char *)buf; + buf = buf_advance(buf, NGTCP2_LOG_BUFLEN); + } else { + logbuf = NULL; + } + + ngtcp2_log_init(&(*pconn)->log, scid, settings->log_write, + settings->log_printf, logbuf, settings->initial_ts, + user_data); + ngtcp2_qlog_init(&(*pconn)->qlog, settings->qlog_write, settings->initial_ts, user_data); if ((*pconn)->qlog.write) { @@ -1628,9 +1645,10 @@ int ngtcp2_conn_server_new_versioned( * the given stream. Both connection and stream level flow control * credits are considered. */ -static uint64_t conn_fc_credits(ngtcp2_conn *conn, ngtcp2_strm *strm) { - return ngtcp2_min_uint64(strm->tx.max_offset - strm->tx.offset, - conn->tx.max_offset - conn->tx.offset); +static uint64_t conn_fc_credits(const ngtcp2_conn *conn, + const ngtcp2_strm *strm) { + return ngtcp2_min(strm->tx.max_offset - strm->tx.offset, + conn->tx.max_offset - conn->tx.offset); } /* @@ -1638,10 +1656,11 @@ static uint64_t conn_fc_credits(ngtcp2_conn *conn, ngtcp2_strm *strm) { * sent to the given stream. |len| might be shorted because of * available flow control credits. */ -static uint64_t conn_enforce_flow_control(ngtcp2_conn *conn, ngtcp2_strm *strm, +static uint64_t conn_enforce_flow_control(const ngtcp2_conn *conn, + const ngtcp2_strm *strm, uint64_t len) { uint64_t fc_credits = conn_fc_credits(conn, strm); - return ngtcp2_min_uint64(len, fc_credits); + return ngtcp2_min(len, fc_credits); } static int delete_strms_each(void *data, void *ptr) { @@ -1780,10 +1799,10 @@ void ngtcp2_conn_del(ngtcp2_conn *conn) { * conn_compute_ack_delay computes ACK delay for outgoing protected * ACK. */ -static ngtcp2_duration conn_compute_ack_delay(ngtcp2_conn *conn) { - return ngtcp2_min_uint64( +static ngtcp2_duration conn_compute_ack_delay(const ngtcp2_conn *conn) { + return ngtcp2_min( conn->local.transport_params.max_ack_delay, - ngtcp2_max_uint64(conn->cstat.smoothed_rtt / 8, NGTCP2_NANOSECONDS)); + ngtcp2_max(conn->cstat.smoothed_rtt / 8, NGTCP2_NANOSECONDS)); } /* @@ -1880,9 +1899,9 @@ static int conn_on_pkt_sent(ngtcp2_conn *conn, ngtcp2_pktns *pktns, * number. It returns the number of bytes to encode the packet * number. */ -static size_t pktns_select_pkt_numlen(ngtcp2_pktns *pktns) { +static size_t pktns_select_pkt_numlen(const ngtcp2_pktns *pktns) { int64_t pkt_num = pktns->tx.last_pkt_num + 1; - ngtcp2_rtb *rtb = &pktns->rtb; + const ngtcp2_rtb *rtb = &pktns->rtb; int64_t n = pkt_num - rtb->largest_acked_tx_pkt_num; if (NGTCP2_MAX_PKT_NUM / 2 < n) { @@ -1907,14 +1926,14 @@ static size_t pktns_select_pkt_numlen(ngtcp2_pktns *pktns) { * conn_cwnd_is_zero returns nonzero if the number of bytes the local * endpoint can sent at this time is zero. */ -static int conn_cwnd_is_zero(ngtcp2_conn *conn) { +static int conn_cwnd_is_zero(const ngtcp2_conn *conn) { uint64_t bytes_in_flight = conn->cstat.bytes_in_flight; uint64_t cwnd = conn->cstat.cwnd; if (bytes_in_flight >= cwnd) { ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_LDC, - "cwnd limited bytes_in_flight=%lu cwnd=%lu", - bytes_in_flight, cwnd); + "cwnd limited bytes_in_flight=", bytes_in_flight, + " cwnd=", cwnd); } return bytes_in_flight >= cwnd; @@ -1948,7 +1967,7 @@ static uint64_t conn_retry_early_payloadlen(ngtcp2_conn *conn) { /* Take the min because in conn_should_pad_pkt we take max in order to deal with unbreakable DATAGRAM. */ - return ngtcp2_min_uint64(len, NGTCP2_MIN_COALESCED_PAYLOADLEN); + return ngtcp2_min(len, NGTCP2_MIN_COALESCED_PAYLOADLEN); } return 0; @@ -2005,7 +2024,7 @@ static int conn_verify_dcid(ngtcp2_conn *conn, int *pnew_cid_used, return 0; } -static int conn_can_send_next_pkt(ngtcp2_conn *conn, size_t left, +static int conn_can_send_next_pkt(const ngtcp2_conn *conn, size_t left, uint64_t min_payloadlen) { /* TODO the next packet type should be taken into account */ return left >= @@ -2021,9 +2040,9 @@ static int conn_can_send_next_pkt(ngtcp2_conn *conn, size_t left, * buffer. |write_datalen| is the number of bytes which will be sent * in the next, coalesced 0-RTT packet. */ -static int conn_should_pad_pkt(ngtcp2_conn *conn, uint8_t type, size_t left, - uint64_t write_datalen, int ack_eliciting, - int require_padding) { +static int conn_should_pad_pkt(const ngtcp2_conn *conn, uint8_t type, + size_t left, uint64_t write_datalen, + int ack_eliciting, int require_padding) { uint64_t min_payloadlen; if (type == NGTCP2_PKT_INITIAL) { @@ -2056,7 +2075,7 @@ static int conn_should_pad_pkt(ngtcp2_conn *conn, uint8_t type, size_t left, PADDING in that packet. Take maximum in case that write_datalen includes DATAGRAM which cannot be split. */ min_payloadlen = - ngtcp2_max_uint64(write_datalen, NGTCP2_MIN_COALESCED_PAYLOADLEN); + ngtcp2_max(write_datalen, NGTCP2_MIN_COALESCED_PAYLOADLEN); } else { return 1; } @@ -2100,7 +2119,7 @@ static void conn_restart_timer_on_read(ngtcp2_conn *conn, ngtcp2_tstamp ts) { /* * conn_keep_alive_enabled returns nonzero if keep-alive is enabled. */ -static int conn_keep_alive_enabled(ngtcp2_conn *conn) { +static int conn_keep_alive_enabled(const ngtcp2_conn *conn) { return conn->keep_alive.last_ts != UINT64_MAX && conn->keep_alive.timeout != UINT64_MAX; } @@ -2109,7 +2128,7 @@ static int conn_keep_alive_enabled(ngtcp2_conn *conn) { * conn_keep_alive_expired returns nonzero if keep-alive timer has * expired. */ -static int conn_keep_alive_expired(ngtcp2_conn *conn, ngtcp2_tstamp ts) { +static int conn_keep_alive_expired(const ngtcp2_conn *conn, ngtcp2_tstamp ts) { return ngtcp2_tstamp_elapsed(conn->keep_alive.last_ts, conn->keep_alive.timeout, ts); } @@ -2117,7 +2136,7 @@ static int conn_keep_alive_expired(ngtcp2_conn *conn, ngtcp2_tstamp ts) { /* * conn_keep_alive_expiry returns the expiry time of keep-alive timer. */ -static ngtcp2_tstamp conn_keep_alive_expiry(ngtcp2_conn *conn) { +static ngtcp2_tstamp conn_keep_alive_expiry(const ngtcp2_conn *conn) { if ((conn->flags & NGTCP2_CONN_FLAG_KEEP_ALIVE_CANCELLED) || !(conn->flags & NGTCP2_CONN_FLAG_HANDSHAKE_COMPLETED) || !conn_keep_alive_enabled(conn) || @@ -2191,7 +2210,7 @@ static int conn_pacing_pkt_tx_allowed(ngtcp2_conn *conn, ngtcp2_tstamp ts) { return 1; } -static uint8_t conn_pkt_flags(ngtcp2_conn *conn) { +static uint8_t conn_pkt_flags(const ngtcp2_conn *conn) { if (conn->remote.transport_params && conn->remote.transport_params->grease_quic_bit && (conn->flags & NGTCP2_CONN_FLAG_CLEAR_FIXED_BIT)) { @@ -2201,11 +2220,11 @@ static uint8_t conn_pkt_flags(ngtcp2_conn *conn) { return NGTCP2_PKT_FLAG_NONE; } -static uint8_t conn_pkt_flags_long(ngtcp2_conn *conn) { +static uint8_t conn_pkt_flags_long(const ngtcp2_conn *conn) { return NGTCP2_PKT_FLAG_LONG_FORM | conn_pkt_flags(conn); } -static uint8_t conn_pkt_flags_short(ngtcp2_conn *conn) { +static uint8_t conn_pkt_flags_short(const ngtcp2_conn *conn) { return (uint8_t)(conn_pkt_flags(conn) | ((conn->pktns.crypto.tx.ckm->flags & NGTCP2_CRYPTO_KM_FLAG_KEY_PHASE_ONE) ? NGTCP2_PKT_FLAG_KEY_PHASE @@ -2284,6 +2303,9 @@ static int conn_cut_crypto_frame(ngtcp2_conn *conn, ngtcp2_frame_chain *frc, } right_frc->fr.stream.type = NGTCP2_FRAME_CRYPTO; + right_frc->fr.stream.flags = 0; + right_frc->fr.stream.fin = 0; + right_frc->fr.stream.stream_id = 0; right_frc->fr.stream.offset = removed_frc->fr.stream.offset + removed_frc->fr.stream.data->len; right_frc->fr.stream.datacnt = 0; @@ -2412,7 +2434,7 @@ conn_crumble_initial_crypto(ngtcp2_conn *conn, ngtcp2_frame_chain **pfrc, return (ngtcp2_ssize)datacnt; } -static size_t conn_dgram_padding(ngtcp2_conn *conn, ngtcp2_ppe *ppe) { +static size_t conn_dgram_padding(const ngtcp2_conn *conn, ngtcp2_ppe *ppe) { if (conn->local.settings.no_tx_udp_payload_size_shaping) { return ngtcp2_ppe_dgram_padding_size( ppe, conn->local.settings.max_tx_udp_payload_size); @@ -2421,7 +2443,7 @@ static size_t conn_dgram_padding(ngtcp2_conn *conn, ngtcp2_ppe *ppe) { return ngtcp2_ppe_dgram_padding(ppe); } -static size_t conn_min_pktlen(ngtcp2_conn *conn); +static size_t conn_min_pktlen(const ngtcp2_conn *conn); /* * conn_write_handshake_pkt writes handshake packet in the buffer @@ -2523,10 +2545,6 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, return 0; } - if (!ngtcp2_ppe_ensure_hp_sample(&ppe)) { - return 0; - } - lfr.ack.ranges = ack_ranges; if (ngtcp2_acktr_create_ack_frame(&pktns->acktr, &lfr.ack, type, ts, /* ack_delay = */ 0, @@ -3014,7 +3032,7 @@ static ngtcp2_ssize conn_write_client_initial(ngtcp2_conn *conn, * dcid_tx_left returns the maximum number of bytes that server is * allowed to send to an unvalidated path associated to |dcid|. */ -static uint64_t dcid_tx_left(ngtcp2_dcid *dcid) { +static uint64_t dcid_tx_left(const ngtcp2_dcid *dcid) { if (dcid->flags & NGTCP2_DCID_FLAG_PATH_VALIDATED) { return SIZE_MAX; } @@ -3030,7 +3048,8 @@ static uint64_t dcid_tx_left(ngtcp2_dcid *dcid) { * conn_server_tx_left returns the maximum number of bytes that server * is allowed to send to an unvalidated path. */ -static uint64_t conn_server_tx_left(ngtcp2_conn *conn, ngtcp2_dcid *dcid) { +static uint64_t conn_server_tx_left(const ngtcp2_conn *conn, + const ngtcp2_dcid *dcid) { assert(conn->server); /* If pv->dcid has the current path, use conn->dcid.current. This @@ -3176,8 +3195,8 @@ static uint64_t conn_initial_stream_rx_offset(ngtcp2_conn *conn, * conn_should_send_max_stream_data returns nonzero if MAX_STREAM_DATA * frame should be send for |strm|. */ -static int conn_should_send_max_stream_data(ngtcp2_conn *conn, - ngtcp2_strm *strm) { +static int conn_should_send_max_stream_data(const ngtcp2_conn *conn, + const ngtcp2_strm *strm) { uint64_t inc = strm->rx.unsent_max_offset - strm->rx.max_offset; (void)conn; @@ -3188,7 +3207,7 @@ static int conn_should_send_max_stream_data(ngtcp2_conn *conn, * conn_should_send_max_data returns nonzero if MAX_DATA frame should * be sent. */ -static int conn_should_send_max_data(ngtcp2_conn *conn) { +static int conn_should_send_max_data(const ngtcp2_conn *conn) { uint64_t inc = conn->rx.unsent_max_offset - conn->rx.max_offset; return conn->rx.window < 4 * inc; @@ -3199,8 +3218,8 @@ static int conn_should_send_max_data(ngtcp2_conn *conn) { * additional connection ID the local endpoint has to provide to the * remote endpoint. */ -static size_t conn_required_num_new_connection_id(ngtcp2_conn *conn) { - uint64_t n; +static size_t conn_required_num_new_connection_id(const ngtcp2_conn *conn) { + size_t n; size_t len = ngtcp2_ksl_len(&conn->scid.set); size_t lim; @@ -3221,12 +3240,13 @@ static size_t conn_required_num_new_connection_id(ngtcp2_conn *conn) { /* len includes retired CID. We don't provide extra CID if doing so exceeds NGTCP2_MAX_SCID_POOL_SIZE. */ - n = conn->remote.transport_params->active_connection_id_limit + - conn->scid.num_retired; + n = (size_t)ngtcp2_min( + NGTCP2_MAX_SCID_POOL_SIZE, + conn->remote.transport_params->active_connection_id_limit + + conn->scid.num_retired) - + len; - n = ngtcp2_min_uint64(NGTCP2_MAX_SCID_POOL_SIZE, n) - len; - - return (size_t)ngtcp2_min_uint64(lim, n); + return ngtcp2_min(lim, n); } /* @@ -3374,7 +3394,7 @@ static int conn_remove_retired_connection_id(ngtcp2_conn *conn, * sends. It may underestimate the length because this does not take * into account header protection sample. */ -static size_t conn_min_pktlen(ngtcp2_conn *conn) { +static size_t conn_min_pktlen(const ngtcp2_conn *conn) { return conn->oscid.datalen + NGTCP2_MIN_PKT_EXPANDLEN; } @@ -3401,13 +3421,11 @@ static void conn_handle_unconfirmed_key_update_from_remote(ngtcp2_conn *conn, ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CRY, "key update confirmed"); } -static uint64_t conn_tx_strmq_first_cycle(ngtcp2_conn *conn); - /* * strm_should_send_stream_data_blocked returns nonzero if * STREAM_DATA_BLOCKED frame should be sent to |strm|. */ -static int strm_should_send_stream_data_blocked(ngtcp2_strm *strm) { +static int strm_should_send_stream_data_blocked(const ngtcp2_strm *strm) { return strm->tx.offset == strm->tx.max_offset && strm->tx.last_blocked_offset != strm->tx.max_offset; } @@ -3416,7 +3434,7 @@ static int strm_should_send_stream_data_blocked(ngtcp2_strm *strm) { * conn_should_send_data_blocked returns nonzero if DATA_BLOCKED frame * should be sent. */ -static int conn_should_send_data_blocked(ngtcp2_conn *conn) { +static int conn_should_send_data_blocked(const ngtcp2_conn *conn) { return conn->tx.offset == conn->tx.max_offset && conn->tx.last_blocked_offset != conn->tx.max_offset; } @@ -3640,10 +3658,6 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, return 0; } - if (!ngtcp2_ppe_ensure_hp_sample(ppe)) { - return 0; - } - if (ngtcp2_ringbuf_len(&conn->rx.path_challenge.rb)) { pcent = ngtcp2_ringbuf_get(&conn->rx.path_challenge.rb, 0); @@ -4297,7 +4311,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, ngtcp2_frame_chain_objalloc_del(nfrc, &conn->frc_objalloc, conn->mem); if (!ngtcp2_strm_is_tx_queued(strm)) { - strm->cycle = conn_tx_strmq_first_cycle(conn); + strm->cycle = ngtcp2_conn_tx_strmq_first_cycle(conn); rv = ngtcp2_conn_tx_strmq_push(conn, strm); if (rv != 0) { return rv; @@ -4367,7 +4381,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, if (pkt_empty) { if (*pfrc == NULL && rv == 0 && stream_blocked && (write_more || !require_padding) && - ngtcp2_conn_get_max_data_left(conn)) { + ngtcp2_conn_get_max_data_left2(conn)) { if (write_more) { conn->pkt.pfrc = pfrc; conn->pkt.pkt_empty = pkt_empty; @@ -4408,7 +4422,7 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, break; } - if (*pfrc == NULL && ngtcp2_conn_get_max_data_left(conn) && + if (*pfrc == NULL && ngtcp2_conn_get_max_data_left2(conn) && stream_blocked) { return NGTCP2_ERR_STREAM_DATA_BLOCKED; } @@ -4528,8 +4542,8 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, (rtb_entry_flags & NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING)) { --pktns->rtb.probe_pkt_left; - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, "probe pkt size=%td", - nwrite); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "probe pkt size=", nwrite); } conn_update_keep_alive_last_ts(conn, ts); @@ -4626,10 +4640,6 @@ ngtcp2_ssize ngtcp2_conn_write_single_frame_pkt( return 0; } - if (!ngtcp2_ppe_ensure_hp_sample(&ppe)) { - return 0; - } - ngtcp2_log_tx_pkt_hd(&conn->log, &hd); ngtcp2_qlog_pkt_sent_start(&conn->qlog); @@ -4731,8 +4741,8 @@ ngtcp2_ssize ngtcp2_conn_write_single_frame_pkt( ngtcp2_path_eq(&conn->dcid.current.ps.path, path)) { --pktns->rtb.probe_pkt_left; - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, "probe pkt size=%td", - nwrite); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "probe pkt size=", nwrite); } } } else if (pi && conn->tx.ecn.state == NGTCP2_ECN_STATE_CAPABLE) { @@ -4793,9 +4803,9 @@ static void conn_process_early_rtb(ngtcp2_conn *conn) { * handshake packets the local endpoint has to send, including new * packets and lost ones. */ -static int conn_handshake_remnants_left(ngtcp2_conn *conn) { - ngtcp2_pktns *in_pktns = conn->in_pktns; - ngtcp2_pktns *hs_pktns = conn->hs_pktns; +static int conn_handshake_remnants_left(const ngtcp2_conn *conn) { + const ngtcp2_pktns *in_pktns = conn->in_pktns; + const ngtcp2_pktns *hs_pktns = conn->hs_pktns; return !conn_is_tls_handshake_completed(conn) || (in_pktns && (in_pktns->rtb.num_pto_eliciting || @@ -4913,9 +4923,9 @@ static int conn_start_pmtud(ngtcp2_conn *conn) { assert(conn->remote.transport_params->max_udp_payload_size >= NGTCP2_MAX_UDP_PAYLOAD_SIZE); - hard_max_udp_payload_size = (size_t)ngtcp2_min_uint64( - conn->remote.transport_params->max_udp_payload_size, - (uint64_t)conn->local.settings.max_tx_udp_payload_size); + hard_max_udp_payload_size = + (size_t)ngtcp2_min(conn->remote.transport_params->max_udp_payload_size, + (uint64_t)conn->local.settings.max_tx_udp_payload_size); rv = ngtcp2_pmtud_new(&conn->pmtud, conn->dcid.current.max_udp_payload_size, @@ -4967,7 +4977,7 @@ static ngtcp2_ssize conn_write_pmtud_probe(ngtcp2_conn *conn, } ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, - "sending PMTUD probe packet len=%zu", probelen); + "sending PMTUD probe packet len=", probelen); lfr.ping.type = NGTCP2_FRAME_PING; @@ -4983,8 +4993,8 @@ static ngtcp2_ssize conn_write_pmtud_probe(ngtcp2_conn *conn, assert(nwrite); - ngtcp2_pmtud_probe_sent(conn->pmtud, conn_compute_pto(conn, &conn->pktns), - ts); + ngtcp2_pmtud_probe_sent(conn->pmtud, + ngtcp2_conn_compute_pto(conn, &conn->pktns), ts); return nwrite; } @@ -5062,26 +5072,27 @@ static int conn_abort_pv(ngtcp2_conn *conn, ngtcp2_tstamp ts) { return conn_stop_pv(conn, ts); } -static size_t conn_shape_udp_payload(ngtcp2_conn *conn, const ngtcp2_dcid *dcid, +static size_t conn_shape_udp_payload(const ngtcp2_conn *conn, + const ngtcp2_dcid *dcid, size_t payloadlen) { if (conn->remote.transport_params && conn->remote.transport_params->max_udp_payload_size) { assert(conn->remote.transport_params->max_udp_payload_size >= NGTCP2_MAX_UDP_PAYLOAD_SIZE); - payloadlen = (size_t)ngtcp2_min_uint64( - (uint64_t)payloadlen, - conn->remote.transport_params->max_udp_payload_size); + payloadlen = + (size_t)ngtcp2_min((uint64_t)payloadlen, + conn->remote.transport_params->max_udp_payload_size); } payloadlen = - ngtcp2_min_size(payloadlen, conn->local.settings.max_tx_udp_payload_size); + ngtcp2_min(payloadlen, conn->local.settings.max_tx_udp_payload_size); if (conn->local.settings.no_tx_udp_payload_size_shaping) { return payloadlen; } - return ngtcp2_min_size(payloadlen, dcid->max_udp_payload_size); + return ngtcp2_min(payloadlen, dcid->max_udp_payload_size); } static void conn_reset_congestion_state(ngtcp2_conn *conn, ngtcp2_tstamp ts); @@ -5175,16 +5186,16 @@ static ngtcp2_ssize conn_write_path_challenge(ngtcp2_conn *conn, lfr.path_challenge.type = NGTCP2_FRAME_PATH_CHALLENGE; initial_pto = conn_compute_initial_pto(conn, &conn->pktns); - timeout = conn_compute_pto(conn, &conn->pktns); - timeout = ngtcp2_max_uint64(timeout, initial_pto); + timeout = ngtcp2_conn_compute_pto(conn, &conn->pktns); + timeout = ngtcp2_max(timeout, initial_pto); expiry = ts + timeout * (1ULL << pv->round); - destlen = ngtcp2_min_size(destlen, NGTCP2_MAX_UDP_PAYLOAD_SIZE); + destlen = ngtcp2_min(destlen, NGTCP2_MAX_UDP_PAYLOAD_SIZE); if (conn->server) { if (!(pv->dcid.flags & NGTCP2_DCID_FLAG_PATH_VALIDATED)) { tx_left = conn_server_tx_left(conn, &pv->dcid); - destlen = (size_t)ngtcp2_min_uint64((uint64_t)destlen, tx_left); + destlen = (size_t)ngtcp2_min((uint64_t)destlen, tx_left); if (destlen == 0) { return 0; } @@ -5295,11 +5306,11 @@ static ngtcp2_ssize conn_write_path_response(ngtcp2_conn *conn, } } - destlen = ngtcp2_min_size(destlen, NGTCP2_MAX_UDP_PAYLOAD_SIZE); + destlen = ngtcp2_min(destlen, NGTCP2_MAX_UDP_PAYLOAD_SIZE); if (conn->server && !(dcid->flags & NGTCP2_DCID_FLAG_PATH_VALIDATED)) { tx_left = conn_server_tx_left(conn, dcid); - destlen = (size_t)ngtcp2_min_uint64((uint64_t)destlen, tx_left); + destlen = (size_t)ngtcp2_min((uint64_t)destlen, tx_left); if (destlen == 0) { return 0; } @@ -5417,18 +5428,7 @@ static int conn_on_version_negotiation(ngtcp2_conn *conn, return rv; } -static uint64_t conn_tx_strmq_first_cycle(ngtcp2_conn *conn) { - ngtcp2_strm *strm; - - if (ngtcp2_pq_empty(&conn->tx.strmq)) { - return 0; - } - - strm = ngtcp2_struct_of(ngtcp2_pq_top(&conn->tx.strmq), ngtcp2_strm, pe); - return strm->cycle; -} - -uint64_t ngtcp2_conn_tx_strmq_first_cycle(ngtcp2_conn *conn) { +uint64_t ngtcp2_conn_tx_strmq_first_cycle(const ngtcp2_conn *conn) { ngtcp2_strm *strm; if (ngtcp2_pq_empty(&conn->tx.strmq)) { @@ -5465,7 +5465,6 @@ static int conn_on_retry(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd, ngtcp2_pktns *in_pktns = conn->in_pktns; ngtcp2_rtb *rtb = &conn->pktns.rtb; ngtcp2_rtb *in_rtb; - char cidbuf[sizeof(retry.odcid.data) * 2 + 1]; uint8_t *token; if (!in_pktns || (conn->flags & NGTCP2_CONN_FLAG_RECV_RETRY)) { @@ -5490,9 +5489,7 @@ static int conn_on_retry(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd, return rv; } - ngtcp2_log_infof( - &conn->log, NGTCP2_LOG_EVENT_PKT, "odcid=0x%s", - ngtcp2_encode_hex_cstr(cidbuf, retry.odcid.data, retry.odcid.datalen)); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, "odcid=0x", &retry.odcid); if (retry.tokenlen == 0) { return NGTCP2_ERR_PROTO; @@ -5596,7 +5593,7 @@ static int conn_recv_ack(ngtcp2_conn *conn, ngtcp2_pktns *pktns, ngtcp2_ack *fr, (conn->server || (conn->flags & NGTCP2_CONN_FLAG_SERVER_ADDR_VERIFIED))) { /* Reset PTO count but no less than 2 to avoid frequent probe packet transmission. */ - cstat->pto_count = ngtcp2_min_size(cstat->pto_count, 2); + cstat->pto_count = ngtcp2_min(cstat->pto_count, 2); } ngtcp2_conn_set_loss_detection_timer(conn, ts); @@ -5740,7 +5737,7 @@ static int conn_recv_max_stream_data(ngtcp2_conn *conn, * conn_recv_max_data processes received MAX_DATA frame |fr|. */ static void conn_recv_max_data(ngtcp2_conn *conn, const ngtcp2_max_data *fr) { - conn->tx.max_offset = ngtcp2_max_uint64(conn->tx.max_offset, fr->max_data); + conn->tx.max_offset = ngtcp2_max(conn->tx.max_offset, fr->max_data); } /* @@ -5925,9 +5922,9 @@ decrypt_hp(ngtcp2_pkt_hd *hd, uint8_t *dest, const ngtcp2_crypto_cipher *hp, } if (hd->flags & NGTCP2_PKT_FLAG_LONG_FORM) { - dest[0] = (uint8_t)(dest[0] ^ (mask[0] & 0x0F)); + dest[0] = (uint8_t)(dest[0] ^ (mask[0] & 0x0FU)); } else { - dest[0] = (uint8_t)(dest[0] ^ (mask[0] & 0x1F)); + dest[0] = (uint8_t)(dest[0] ^ (mask[0] & 0x1FU)); if (dest[0] & NGTCP2_SHORT_KEY_PHASE_BIT) { hd->flags |= NGTCP2_PKT_FLAG_KEY_PHASE; } @@ -6021,7 +6018,7 @@ static int conn_recv_connection_close(ngtcp2_conn *conn, } } - ccerr->reasonlen = ngtcp2_min_size(fr->reasonlen, NGTCP2_CCERR_MAX_REASONLEN); + ccerr->reasonlen = ngtcp2_min(fr->reasonlen, NGTCP2_CCERR_MAX_REASONLEN); ngtcp2_cpymem((uint8_t *)ccerr->reason, fr->reason, ccerr->reasonlen); return 0; @@ -6215,7 +6212,8 @@ static int conn_recv_path_response(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd, * pktns_pkt_num_is_duplicate returns nonzero if |pkt_num| is * duplicated packet number. */ -static int pktns_pkt_num_is_duplicate(ngtcp2_pktns *pktns, int64_t pkt_num) { +static int pktns_pkt_num_is_duplicate(const ngtcp2_pktns *pktns, + int64_t pkt_num) { return ngtcp2_gaptr_is_pushed(&pktns->rx.pngap, (uint64_t)pkt_num, 1); } @@ -6331,7 +6329,8 @@ static int vneg_available_versions_includes(const uint8_t *available_versions, * NGTCP2_ERR_INVALID_ARGUMENT * Clearing fixed bit is not permitted. */ -static int conn_verify_fixed_bit(ngtcp2_conn *conn, ngtcp2_pkt_hd *hd) { +static int conn_verify_fixed_bit(const ngtcp2_conn *conn, + const ngtcp2_pkt_hd *hd) { if (!(hd->flags & NGTCP2_PKT_FLAG_FIXED_BIT_CLEAR)) { return 0; } @@ -6449,7 +6448,7 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, } ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, - "buffering 1RTT packet len=%zu", pktlen); + "buffering 1RTT packet len=", pktlen); rv = conn_buffer_pkt(conn, &conn->pktns, path, pi, pkt, pktlen, dgramlen, ts); @@ -6597,7 +6596,7 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, /* Buffer re-ordered 0-RTT packet. */ ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, - "buffering 0-RTT packet len=%zu", pktlen); + "buffering 0-RTT packet len=", pktlen); rv = conn_buffer_pkt(conn, conn->in_pktns, path, pi, pkt, pktlen, dgramlen, ts); @@ -6622,8 +6621,8 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, ngtcp2_log_infof( &conn->log, NGTCP2_LOG_EVENT_PKT, "Initial packet was ignored because it is included in UDP datagram " - "less than %d bytes: %zu bytes", - NGTCP2_MAX_UDP_PAYLOAD_SIZE, dgramlen); + "less than " stringify(NGTCP2_MAX_UDP_PAYLOAD_SIZE) " bytes: ", + dgramlen, " bytes"); return NGTCP2_ERR_DISCARD_PKT; } if (conn->local.settings.tokenlen) { @@ -6703,7 +6702,7 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, return (ngtcp2_ssize)pktlen; } ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, - "buffering Handshake packet len=%zu", pktlen); + "buffering Handshake packet len=", pktlen); rv = conn_buffer_pkt(conn, conn->hs_pktns, path, pi, pkt, pktlen, dgramlen, ts); @@ -6757,8 +6756,8 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, hd.pkt_num = ngtcp2_pkt_adjust_pkt_num(pktns->acktr.max_pkt_num, hd.pkt_num, hd.pkt_numlen); if (hd.pkt_num > NGTCP2_MAX_PKT_NUM) { - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, - "pkn=%" PRId64 " is greater than maximum pkn", hd.pkt_num); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, "pkn=", hd.pkt_num, + " is greater than maximum pkn"); return NGTCP2_ERR_DISCARD_PKT; } @@ -6806,8 +6805,8 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, conn->negotiated_version = hd.version; ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, - "the negotiated version is 0x%08x", - conn->negotiated_version); + "the negotiated version is 0x", + hexw(conn->negotiated_version, 8)); } payload = conn->crypto.decrypt_buf.base; @@ -6911,8 +6910,8 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, conn->negotiated_version = hd.version; ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, - "the negotiated version is 0x%08x", - conn->negotiated_version); + "the negotiated version is 0x", + hexw(conn->negotiated_version, 8)); } rv = conn_recv_crypto(conn, encryption_level, crypto, &fr.stream, ts); @@ -7072,8 +7071,8 @@ static ngtcp2_ssize conn_recv_handshake_cpkt(ngtcp2_conn *conn, ++conn->cstat.pkt_recv; conn->cstat.bytes_recv += (uint64_t)nread; - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, - "read packet %td left %zu", nread, pktlen); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, "read packet ", nread, + " left ", pktlen); } return (ngtcp2_ssize)dgramlen; @@ -7085,6 +7084,7 @@ int ngtcp2_conn_init_stream(ngtcp2_conn *conn, ngtcp2_strm *strm, uint64_t max_rx_offset; uint64_t max_tx_offset; int local_stream = conn_local_stream(conn, stream_id); + int bidi = bidi_stream(stream_id); assert(conn->remote.transport_params); @@ -7112,6 +7112,15 @@ int ngtcp2_conn_init_stream(ngtcp2_conn *conn, ngtcp2_strm *strm, max_tx_offset, stream_user_data, &conn->frc_objalloc, conn->mem); + if (!bidi) { + if (local_stream) { + ngtcp2_strm_shutdown(strm, NGTCP2_STRM_FLAG_SHUT_RD); + } else { + ngtcp2_strm_shutdown(strm, NGTCP2_STRM_FLAG_SHUT_WR); + strm->flags |= NGTCP2_STRM_FLAG_FIN_ACKED; + } + } + rv = ngtcp2_map_insert(&conn->strms, (ngtcp2_map_key_type)strm->stream_id, strm); if (rv != 0) { @@ -7229,6 +7238,7 @@ static int conn_recv_crypto(ngtcp2_conn *conn, uint64_t rx_offset; int rv; ngtcp2_ssize nwrite; + size_t max_offset; if (fr->datacnt == 0) { if (encryption_level != NGTCP2_ENCRYPTION_LEVEL_INITIAL && @@ -7245,6 +7255,27 @@ static int conn_recv_crypto(ngtcp2_conn *conn, return NGTCP2_ERR_FRAME_ENCODING; } + /* Apply the absolute upper bound against CRYPTO data offset because + some TLS stacks do not care much about the number of bytes they + store. */ + switch (encryption_level) { + case NGTCP2_ENCRYPTION_LEVEL_INITIAL: + max_offset = NGTCP2_MAX_INITIAL_CRYPTO_OFFSET; + break; + case NGTCP2_ENCRYPTION_LEVEL_HANDSHAKE: + max_offset = NGTCP2_MAX_HANDSHAKE_CRYPTO_OFFSET; + break; + case NGTCP2_ENCRYPTION_LEVEL_1RTT: + max_offset = NGTCP2_MAX_1RTT_CRYPTO_OFFSET; + break; + default: + ngtcp2_unreachable(); + } + + if (fr_end_offset > max_offset) { + return NGTCP2_ERR_CRYPTO_BUFFER_EXCEEDED; + } + rx_offset = ngtcp2_strm_rx_offset(crypto); if (fr_end_offset <= rx_offset) { @@ -7274,8 +7305,7 @@ static int conn_recv_crypto(ngtcp2_conn *conn, return 0; } - crypto->rx.last_offset = - ngtcp2_max_uint64(crypto->rx.last_offset, fr_end_offset); + crypto->rx.last_offset = ngtcp2_max(crypto->rx.last_offset, fr_end_offset); /* TODO Before dispatching incoming data to TLS stack, make sure that previous data in previous encryption level has been @@ -7328,7 +7358,7 @@ static int conn_recv_crypto(ngtcp2_conn *conn, * conn_max_data_violated returns nonzero if receiving |datalen| * violates connection flow control on local endpoint. */ -static int conn_max_data_violated(ngtcp2_conn *conn, uint64_t datalen) { +static int conn_max_data_violated(const ngtcp2_conn *conn, uint64_t datalen) { return conn->rx.max_offset - conn->rx.offset < datalen; } @@ -7438,11 +7468,6 @@ static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr, new_strm = 1; - if (!bidi) { - ngtcp2_strm_shutdown(strm, NGTCP2_STRM_FLAG_SHUT_WR); - strm->flags |= NGTCP2_STRM_FLAG_FIN_ACKED; - } - rv = conn_call_stream_open(conn, strm); if (rv != 0) { return rv; @@ -7505,8 +7530,7 @@ static int conn_recv_stream(ngtcp2_conn *conn, const ngtcp2_stream *fr, return NGTCP2_ERR_FINAL_SIZE; } - strm->rx.last_offset = - ngtcp2_max_uint64(strm->rx.last_offset, fr_end_offset); + strm->rx.last_offset = ngtcp2_max(strm->rx.last_offset, fr_end_offset); if (fr_end_offset <= rx_offset) { if (!new_strm && ngtcp2_ratelim_drain(&conn->glitch_rlim, 1, ts) != 0) { @@ -7600,7 +7624,7 @@ static int conn_reset_stream(ngtcp2_conn *conn, ngtcp2_strm *strm, return 0; } - strm->cycle = conn_tx_strmq_first_cycle(conn); + strm->cycle = ngtcp2_conn_tx_strmq_first_cycle(conn); return ngtcp2_conn_tx_strmq_push(conn, strm); } @@ -7624,7 +7648,7 @@ static int conn_stop_sending(ngtcp2_conn *conn, ngtcp2_strm *strm, return 0; } - strm->cycle = conn_tx_strmq_first_cycle(conn); + strm->cycle = ngtcp2_conn_tx_strmq_first_cycle(conn); return ngtcp2_conn_tx_strmq_push(conn, strm); } @@ -8005,7 +8029,7 @@ static int conn_recv_max_streams(ngtcp2_conn *conn, return NGTCP2_ERR_FRAME_ENCODING; } - n = ngtcp2_min_uint64(fr->max_streams, NGTCP2_MAX_STREAMS); + n = ngtcp2_min(fr->max_streams, NGTCP2_MAX_STREAMS); if (fr->type == NGTCP2_FRAME_MAX_STREAMS_BIDI) { if (conn->local.bidi.max_streams < n) { @@ -8448,11 +8472,6 @@ static int conn_recv_stream_data_blocked(ngtcp2_conn *conn, return rv; } - if (!bidi) { - ngtcp2_strm_shutdown(strm, NGTCP2_STRM_FLAG_SHUT_WR); - strm->flags |= NGTCP2_STRM_FLAG_FIN_ACKED; - } - rv = conn_call_stream_open(conn, strm); if (rv != 0) { return rv; @@ -8636,8 +8655,9 @@ static int conn_recv_datagram(ngtcp2_conn *conn, ngtcp2_datagram *fr) { * conn_key_phase_changed returns nonzero if |hd| indicates that the * key phase has unexpected value. */ -static int conn_key_phase_changed(ngtcp2_conn *conn, const ngtcp2_pkt_hd *hd) { - ngtcp2_pktns *pktns = &conn->pktns; +static int conn_key_phase_changed(const ngtcp2_conn *conn, + const ngtcp2_pkt_hd *hd) { + const ngtcp2_pktns *pktns = &conn->pktns; return !(pktns->crypto.rx.ckm->flags & NGTCP2_CRYPTO_KM_FLAG_KEY_PHASE_ONE) ^ !(hd->flags & NGTCP2_PKT_FLAG_KEY_PHASE); @@ -8651,7 +8671,7 @@ static int conn_initiate_key_update(ngtcp2_conn *conn, ngtcp2_tstamp ts); static int conn_prepare_key_update(ngtcp2_conn *conn, ngtcp2_tstamp ts) { int rv; ngtcp2_tstamp confirmed_ts = conn->crypto.key_update.confirmed_ts; - ngtcp2_duration pto = conn_compute_pto(conn, &conn->pktns); + ngtcp2_duration pto = ngtcp2_conn_compute_pto(conn, &conn->pktns); ngtcp2_pktns *pktns = &conn->pktns; ngtcp2_crypto_km *rx_ckm = pktns->crypto.rx.ckm; ngtcp2_crypto_km *tx_ckm = pktns->crypto.tx.ckm; @@ -8760,9 +8780,9 @@ static void conn_rotate_keys(ngtcp2_conn *conn, int64_t pkt_num, * conn_path_validation_in_progress returns nonzero if path validation * against |path| is underway. */ -static int conn_path_validation_in_progress(ngtcp2_conn *conn, +static int conn_path_validation_in_progress(const ngtcp2_conn *conn, const ngtcp2_path *path) { - ngtcp2_pv *pv = conn->pv; + const ngtcp2_pv *pv = conn->pv; return pv && ngtcp2_path_eq(&pv->dcid.ps.path, path); } @@ -8889,7 +8909,7 @@ static int conn_recv_non_probing_pkt_on_new_path(ngtcp2_conn *conn, validated_path = ngtcp2_conn_find_path_history(conn, path, ts); if (!validated_path) { - pto = conn_compute_pto(conn, &conn->pktns); + pto = ngtcp2_conn_compute_pto(conn, &conn->pktns); rv = ngtcp2_pv_new(&pv, &dcid, conn_compute_pv_timeout_pto(conn, pto), NGTCP2_PV_FLAG_NONE, &conn->log, conn->mem); @@ -9267,8 +9287,8 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, break; default: ngtcp2_log_rx_pkt_hd(&conn->log, &hd); - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, - "packet type 0x%02x was ignored", hd.type); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, "packet type 0x", + hex(hd.type), " was ignored"); return (ngtcp2_ssize)pktlen; } } else { @@ -9315,8 +9335,8 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, hd.pkt_num = ngtcp2_pkt_adjust_pkt_num(pktns->acktr.max_pkt_num, hd.pkt_num, hd.pkt_numlen); if (hd.pkt_num > NGTCP2_MAX_PKT_NUM) { - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, - "pkn=%" PRId64 " is greater than maximum pkn", hd.pkt_num); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, "pkn=", hd.pkt_num, + " is greater than maximum pkn"); return NGTCP2_ERR_DISCARD_PKT; } @@ -9328,11 +9348,9 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, ngtcp2_sockaddr_eq((const ngtcp2_sockaddr *)&conn->hs_local_addr, path->local.addr)) { ngtcp2_log_infof( - &conn->log, NGTCP2_LOG_EVENT_PKT, - "pkt=%" PRId64 + &conn->log, NGTCP2_LOG_EVENT_PKT, "pkt=", hd.pkt_num, " is discarded because it was received on handshake local " - "address after preferred address migration", - hd.pkt_num); + "address after preferred address migration"); return NGTCP2_ERR_DISCARD_PKT; } @@ -10012,8 +10030,8 @@ static int conn_recv_cpkt(ngtcp2_conn *conn, const ngtcp2_path *path, ++conn->cstat.pkt_recv; conn->cstat.bytes_recv += (uint64_t)nread; - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, - "read packet %td left %zu", nread, pktlen); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_PKT, "read packet ", nread, + " left ", pktlen); } return 0; @@ -10186,8 +10204,7 @@ static ngtcp2_ssize conn_read_handshake(ngtcp2_conn *conn, /* We have 1RTT packet and application rx key, but the handshake has not completed yet. */ ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, - "buffering 1RTT packet len=%zu", - pktlen - (size_t)nread); + "buffering 1RTT packet len=", pktlen - (size_t)nread); rv = conn_buffer_pkt(conn, &conn->pktns, path, pi, pkt + nread, pktlen - (size_t)nread, pktlen, ts); @@ -10266,8 +10283,8 @@ int ngtcp2_conn_read_pkt_versioned(ngtcp2_conn *conn, const ngtcp2_path *path, conn_update_timestamp(conn, ts); - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, "recv packet len=%zu", - pktlen); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, + "recv packet len=", pktlen); if (pktlen == 0) { return 0; @@ -10401,9 +10418,9 @@ int ngtcp2_conn_continue_handshake(ngtcp2_conn *conn, ngtcp2_tstamp ts) { * conn_check_pkt_num_exhausted returns nonzero if packet number is * exhausted in at least one of packet number space. */ -static int conn_check_pkt_num_exhausted(ngtcp2_conn *conn) { - ngtcp2_pktns *in_pktns = conn->in_pktns; - ngtcp2_pktns *hs_pktns = conn->hs_pktns; +static int conn_check_pkt_num_exhausted(const ngtcp2_conn *conn) { + const ngtcp2_pktns *in_pktns = conn->in_pktns; + const ngtcp2_pktns *hs_pktns = conn->hs_pktns; return (in_pktns && in_pktns->tx.last_pkt_num == NGTCP2_MAX_PKT_NUM) || (hs_pktns && hs_pktns->tx.last_pkt_num == NGTCP2_MAX_PKT_NUM) || @@ -10427,7 +10444,7 @@ conn_retransmit_retry_early(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, * packets to be sent for Initial or Handshake packet number space * left. */ -static int conn_handshake_probe_left(ngtcp2_conn *conn) { +static int conn_handshake_probe_left(const ngtcp2_conn *conn) { return (conn->in_pktns && conn->in_pktns->rtb.probe_pkt_left) || conn->hs_pktns->rtb.probe_pkt_left; } @@ -10438,7 +10455,8 @@ static int conn_handshake_probe_left(ngtcp2_conn *conn) { * are not reduced. This function is only used by client and should * only be called when early data is accepted by server. */ -static int conn_validate_early_transport_params_limits(ngtcp2_conn *conn) { +static int +conn_validate_early_transport_params_limits(const ngtcp2_conn *conn) { const ngtcp2_transport_params *params = conn->remote.transport_params; assert(!conn->server); @@ -10746,8 +10764,8 @@ conn_client_write_handshake(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, datalen = ngtcp2_vec_len(vmsg->stream.data, vmsg->stream.datacnt); send_stream = conn_retry_early_payloadlen(conn) == 0; if (send_stream) { - write_datalen = ngtcp2_min_uint64(datalen + NGTCP2_STREAM_OVERHEAD, - NGTCP2_MIN_COALESCED_PAYLOADLEN); + write_datalen = ngtcp2_min(datalen + NGTCP2_STREAM_OVERHEAD, + NGTCP2_MIN_COALESCED_PAYLOADLEN); if (vmsg->stream.flags & NGTCP2_WRITE_STREAM_FLAG_MORE) { wflags |= NGTCP2_WRITE_PKT_FLAG_MORE; @@ -10839,6 +10857,10 @@ void ngtcp2_conn_tls_handshake_completed(ngtcp2_conn *conn) { } int ngtcp2_conn_get_handshake_completed(ngtcp2_conn *conn) { + return ngtcp2_conn_get_handshake_completed2(conn); +} + +int ngtcp2_conn_get_handshake_completed2(const ngtcp2_conn *conn) { return conn_is_tls_handshake_completed(conn) && (conn->flags & NGTCP2_CONN_FLAG_HANDSHAKE_COMPLETED); } @@ -11198,7 +11220,7 @@ int ngtcp2_conn_install_tx_key(ngtcp2_conn *conn, const uint8_t *secret, static int conn_initiate_key_update(ngtcp2_conn *conn, ngtcp2_tstamp ts) { ngtcp2_tstamp confirmed_ts = conn->crypto.key_update.confirmed_ts; - ngtcp2_duration pto = conn_compute_pto(conn, &conn->pktns); + ngtcp2_duration pto = ngtcp2_conn_compute_pto(conn, &conn->pktns); assert(conn->state == NGTCP2_CS_POST_HANDSHAKE); @@ -11221,13 +11243,13 @@ int ngtcp2_conn_initiate_key_update(ngtcp2_conn *conn, ngtcp2_tstamp ts) { return conn_initiate_key_update(conn, ts); } -ngtcp2_tstamp ngtcp2_conn_loss_detection_expiry(ngtcp2_conn *conn) { +ngtcp2_tstamp ngtcp2_conn_loss_detection_expiry(const ngtcp2_conn *conn) { return conn->cstat.loss_detection_timer; } -ngtcp2_tstamp ngtcp2_conn_internal_expiry(ngtcp2_conn *conn) { +ngtcp2_tstamp ngtcp2_conn_internal_expiry(const ngtcp2_conn *conn) { ngtcp2_tstamp res = UINT64_MAX, ts; - ngtcp2_duration pto = conn_compute_pto(conn, &conn->pktns); + ngtcp2_duration pto = ngtcp2_conn_compute_pto(conn, &conn->pktns); ngtcp2_scid *scid; if (conn->pv) { @@ -11235,38 +11257,38 @@ ngtcp2_tstamp ngtcp2_conn_internal_expiry(ngtcp2_conn *conn) { } if (conn->pmtud) { - res = ngtcp2_min_uint64(res, conn->pmtud->expiry); + res = ngtcp2_min(res, conn->pmtud->expiry); } if (!ngtcp2_pq_empty(&conn->scid.used)) { scid = ngtcp2_struct_of(ngtcp2_pq_top(&conn->scid.used), ngtcp2_scid, pe); if (scid->retired_ts != UINT64_MAX) { - res = ngtcp2_min_uint64(res, scid->retired_ts + pto); + res = ngtcp2_min(res, scid->retired_ts + pto); } } ts = ngtcp2_dcidtr_earliest_retired_ts(&conn->dcid.dtr); if (ts != UINT64_MAX) { - res = ngtcp2_min_uint64(res, ts + pto); + res = ngtcp2_min(res, ts + pto); } if (conn->dcid.current.cid.datalen) { ts = ngtcp2_dcidtr_earliest_bound_ts(&conn->dcid.dtr); if (ts != UINT64_MAX) { - res = ngtcp2_min_uint64(res, ts + 3 * pto); + res = ngtcp2_min(res, ts + 3 * pto); } } if (conn->server && conn->early.ckm && conn->early.discard_started_ts != UINT64_MAX) { - res = ngtcp2_min_uint64(res, conn->early.discard_started_ts + 3 * pto); + res = ngtcp2_min(res, conn->early.discard_started_ts + 3 * pto); } return res; } -ngtcp2_tstamp ngtcp2_conn_ack_delay_expiry(ngtcp2_conn *conn) { - ngtcp2_acktr *acktr = &conn->pktns.acktr; +ngtcp2_tstamp ngtcp2_conn_ack_delay_expiry(const ngtcp2_conn *conn) { + const ngtcp2_acktr *acktr = &conn->pktns.acktr; if (!(acktr->flags & NGTCP2_ACKTR_FLAG_CANCEL_TIMER) && acktr->first_unacked_ts != UINT64_MAX) { @@ -11275,7 +11297,7 @@ ngtcp2_tstamp ngtcp2_conn_ack_delay_expiry(ngtcp2_conn *conn) { return UINT64_MAX; } -static ngtcp2_tstamp conn_handshake_expiry(ngtcp2_conn *conn) { +static ngtcp2_tstamp conn_handshake_expiry(const ngtcp2_conn *conn) { if (conn_is_tls_handshake_completed(conn) || conn->local.settings.handshake_timeout == UINT64_MAX || conn->local.settings.initial_ts >= @@ -11288,14 +11310,18 @@ static ngtcp2_tstamp conn_handshake_expiry(ngtcp2_conn *conn) { } ngtcp2_tstamp ngtcp2_conn_get_expiry(ngtcp2_conn *conn) { - ngtcp2_tstamp res = ngtcp2_min_uint64(ngtcp2_conn_loss_detection_expiry(conn), - ngtcp2_conn_ack_delay_expiry(conn)); - res = ngtcp2_min_uint64(res, ngtcp2_conn_internal_expiry(conn)); - res = ngtcp2_min_uint64(res, ngtcp2_conn_lost_pkt_expiry(conn)); - res = ngtcp2_min_uint64(res, conn_keep_alive_expiry(conn)); - res = ngtcp2_min_uint64(res, conn_handshake_expiry(conn)); - res = ngtcp2_min_uint64(res, ngtcp2_conn_get_idle_expiry(conn)); - return ngtcp2_min_uint64(res, conn->tx.pacing.next_ts); + return ngtcp2_conn_get_expiry2(conn); +} + +ngtcp2_tstamp ngtcp2_conn_get_expiry2(const ngtcp2_conn *conn) { + ngtcp2_tstamp res = ngtcp2_min(ngtcp2_conn_loss_detection_expiry(conn), + ngtcp2_conn_ack_delay_expiry(conn)); + res = ngtcp2_min(res, ngtcp2_conn_internal_expiry(conn)); + res = ngtcp2_min(res, ngtcp2_conn_lost_pkt_expiry(conn)); + res = ngtcp2_min(res, conn_keep_alive_expiry(conn)); + res = ngtcp2_min(res, conn_handshake_expiry(conn)); + res = ngtcp2_min(res, ngtcp2_conn_get_idle_expiry(conn)); + return ngtcp2_min(res, conn->tx.pacing.next_ts); } int ngtcp2_conn_handle_expiry(ngtcp2_conn *conn, ngtcp2_tstamp ts) { @@ -11304,7 +11330,7 @@ int ngtcp2_conn_handle_expiry(ngtcp2_conn *conn, ngtcp2_tstamp ts) { conn_update_timestamp(conn, ts); - pto = conn_compute_pto(conn, &conn->pktns); + pto = ngtcp2_conn_compute_pto(conn, &conn->pktns); assert(!(conn->flags & NGTCP2_CONN_FLAG_PPE_PENDING)); @@ -11387,29 +11413,29 @@ void ngtcp2_conn_cancel_expired_ack_delay_timer(ngtcp2_conn *conn, acktr_cancel_expired_ack_delay_timer(&conn->pktns.acktr, ack_delay, ts); } -ngtcp2_tstamp ngtcp2_conn_lost_pkt_expiry(ngtcp2_conn *conn) { +ngtcp2_tstamp ngtcp2_conn_lost_pkt_expiry(const ngtcp2_conn *conn) { ngtcp2_tstamp res = UINT64_MAX, ts; if (conn->in_pktns) { ts = ngtcp2_rtb_lost_pkt_ts(&conn->in_pktns->rtb); if (ts != UINT64_MAX) { - ts += conn_compute_pto(conn, conn->in_pktns) * 3; - res = ngtcp2_min_uint64(res, ts); + ts += ngtcp2_conn_compute_pto(conn, conn->in_pktns) * 3; + res = ngtcp2_min(res, ts); } } if (conn->hs_pktns) { ts = ngtcp2_rtb_lost_pkt_ts(&conn->hs_pktns->rtb); if (ts != UINT64_MAX) { - ts += conn_compute_pto(conn, conn->hs_pktns) * 3; - res = ngtcp2_min_uint64(res, ts); + ts += ngtcp2_conn_compute_pto(conn, conn->hs_pktns) * 3; + res = ngtcp2_min(res, ts); } } ts = ngtcp2_rtb_lost_pkt_ts(&conn->pktns.rtb); if (ts != UINT64_MAX) { - ts += conn_compute_pto(conn, &conn->pktns) * 3; - res = ngtcp2_min_uint64(res, ts); + ts += ngtcp2_conn_compute_pto(conn, &conn->pktns) * 3; + res = ngtcp2_min(res, ts); } return res; @@ -11419,14 +11445,14 @@ void ngtcp2_conn_remove_lost_pkt(ngtcp2_conn *conn, ngtcp2_tstamp ts) { ngtcp2_duration timeout; if (conn->in_pktns) { - timeout = conn_compute_pto(conn, conn->in_pktns) * 3; + timeout = ngtcp2_conn_compute_pto(conn, conn->in_pktns) * 3; ngtcp2_rtb_remove_expired_lost_pkt(&conn->in_pktns->rtb, timeout, ts); } if (conn->hs_pktns) { - timeout = conn_compute_pto(conn, conn->hs_pktns) * 3; + timeout = ngtcp2_conn_compute_pto(conn, conn->hs_pktns) * 3; ngtcp2_rtb_remove_expired_lost_pkt(&conn->hs_pktns->rtb, timeout, ts); } - timeout = conn_compute_pto(conn, &conn->pktns) * 3; + timeout = ngtcp2_conn_compute_pto(conn, &conn->pktns) * 3; ngtcp2_rtb_remove_expired_lost_pkt(&conn->pktns.rtb, timeout, ts); } @@ -11483,7 +11509,7 @@ static uint32_t select_preferred_version(const uint32_t *preferred_versions, * Validation against version negotiation parameters failed. */ static int -conn_client_validate_transport_params(ngtcp2_conn *conn, +conn_client_validate_transport_params(const ngtcp2_conn *conn, const ngtcp2_transport_params *params) { if (!params->original_dcid_present) { return NGTCP2_ERR_REQUIRED_TRANSPORT_PARAM; @@ -11647,8 +11673,8 @@ int ngtcp2_conn_set_remote_transport_params( conn->negotiated_version; ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, - "the negotiated version is 0x%08x", - conn->negotiated_version); + "the negotiated version is 0x", + hexw(conn->negotiated_version, 8)); } else { rv = conn_client_validate_transport_params(conn, params); if (rv != 0) { @@ -11704,6 +11730,11 @@ int ngtcp2_conn_decode_and_set_remote_transport_params(ngtcp2_conn *conn, const ngtcp2_transport_params * ngtcp2_conn_get_remote_transport_params(ngtcp2_conn *conn) { + return ngtcp2_conn_get_remote_transport_params2(conn); +} + +const ngtcp2_transport_params * +ngtcp2_conn_get_remote_transport_params2(const ngtcp2_conn *conn) { if (conn->remote.pending_transport_params) { return conn->remote.pending_transport_params; } @@ -11714,7 +11745,14 @@ ngtcp2_conn_get_remote_transport_params(ngtcp2_conn *conn) { ngtcp2_ssize ngtcp2_conn_encode_0rtt_transport_params(ngtcp2_conn *conn, uint8_t *dest, size_t destlen) { - ngtcp2_transport_params params, *src; + return ngtcp2_conn_encode_0rtt_transport_params2(conn, dest, destlen); +} + +ngtcp2_ssize ngtcp2_conn_encode_0rtt_transport_params2(const ngtcp2_conn *conn, + uint8_t *dest, + size_t destlen) { + ngtcp2_transport_params params; + const ngtcp2_transport_params *src; if (conn->server) { src = &conn->local.transport_params; @@ -11787,14 +11825,14 @@ int ngtcp2_conn_set_0rtt_remote_transport_params( p->initial_max_data = params->initial_max_data; /* we might hit garbage, then set the sane default. */ p->active_connection_id_limit = - ngtcp2_max_uint64(NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT, - params->active_connection_id_limit); + ngtcp2_max(NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT, + params->active_connection_id_limit); p->max_datagram_frame_size = params->max_datagram_frame_size; /* we might hit garbage, then set the sane default. */ if (params->max_udp_payload_size) { - p->max_udp_payload_size = ngtcp2_max_uint64(NGTCP2_MAX_UDP_PAYLOAD_SIZE, - params->max_udp_payload_size); + p->max_udp_payload_size = + ngtcp2_max(NGTCP2_MAX_UDP_PAYLOAD_SIZE, params->max_udp_payload_size); } /* These parameters are treated specially. If server accepts early @@ -11895,12 +11933,23 @@ int ngtcp2_conn_commit_local_transport_params(ngtcp2_conn *conn) { const ngtcp2_transport_params * ngtcp2_conn_get_local_transport_params(ngtcp2_conn *conn) { + return ngtcp2_conn_get_local_transport_params2(conn); +} + +const ngtcp2_transport_params * +ngtcp2_conn_get_local_transport_params2(const ngtcp2_conn *conn) { return &conn->local.transport_params; } ngtcp2_ssize ngtcp2_conn_encode_local_transport_params(ngtcp2_conn *conn, uint8_t *dest, size_t destlen) { + return ngtcp2_conn_encode_local_transport_params2(conn, dest, destlen); +} + +ngtcp2_ssize ngtcp2_conn_encode_local_transport_params2(const ngtcp2_conn *conn, + uint8_t *dest, + size_t destlen) { return ngtcp2_transport_params_encode(dest, destlen, &conn->local.transport_params); } @@ -11910,7 +11959,7 @@ int ngtcp2_conn_open_bidi_stream(ngtcp2_conn *conn, int64_t *pstream_id, int rv; ngtcp2_strm *strm; - if (ngtcp2_conn_get_streams_bidi_left(conn) == 0) { + if (ngtcp2_conn_get_streams_bidi_left2(conn) == 0) { return NGTCP2_ERR_STREAM_ID_BLOCKED; } @@ -11937,7 +11986,7 @@ int ngtcp2_conn_open_uni_stream(ngtcp2_conn *conn, int64_t *pstream_id, int rv; ngtcp2_strm *strm; - if (ngtcp2_conn_get_streams_uni_left(conn) == 0) { + if (ngtcp2_conn_get_streams_uni_left2(conn) == 0) { return NGTCP2_ERR_STREAM_ID_BLOCKED; } @@ -11952,15 +12001,14 @@ int ngtcp2_conn_open_uni_stream(ngtcp2_conn *conn, int64_t *pstream_id, ngtcp2_objalloc_strm_release(&conn->strm_objalloc, strm); return rv; } - ngtcp2_strm_shutdown(strm, NGTCP2_STRM_FLAG_SHUT_RD); - *pstream_id = conn->local.uni.next_stream_id; conn->local.uni.next_stream_id += 4; return 0; } -ngtcp2_strm *ngtcp2_conn_find_stream(ngtcp2_conn *conn, int64_t stream_id) { +ngtcp2_strm *ngtcp2_conn_find_stream(const ngtcp2_conn *conn, + int64_t stream_id) { return ngtcp2_map_find(&conn->strms, (uint64_t)stream_id); } @@ -12014,7 +12062,7 @@ conn_write_vmsg_wrapper(ngtcp2_conn *conn, ngtcp2_path *path, are not app-limited. */ !(conn->flags & NGTCP2_CONN_FLAG_AGGREGATE_PKTS)) { conn->rst.app_limited = - ngtcp2_max_uint64(conn->rst.delivered + cstat->bytes_in_flight, 1); + ngtcp2_max(conn->rst.delivered + cstat->bytes_in_flight, 1); } return nwrite; @@ -12243,7 +12291,7 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, return 0; } - origlen = (size_t)ngtcp2_min_uint64((uint64_t)origlen, server_tx_left); + origlen = (size_t)ngtcp2_min((uint64_t)origlen, server_tx_left); } return conn_write_handshake_ack_pkts(conn, pi, dest, origlen, ts); @@ -12263,7 +12311,7 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, return 0; } - destlen = (size_t)ngtcp2_min_uint64((uint64_t)destlen, server_tx_left); + destlen = (size_t)ngtcp2_min((uint64_t)destlen, server_tx_left); } if (conn->in_pktns) { @@ -12310,7 +12358,7 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, return 0; } - origlen = (size_t)ngtcp2_min_uint64((uint64_t)origlen, server_tx_left); + origlen = (size_t)ngtcp2_min((uint64_t)origlen, server_tx_left); } return conn_write_ack_pkt(conn, pi, dest, origlen, NGTCP2_PKT_1RTT, ts); @@ -12399,8 +12447,8 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, if (conn->server && !(conn->dcid.current.flags & NGTCP2_DCID_FLAG_PATH_VALIDATED)) { server_tx_left = conn_server_tx_left(conn, &conn->dcid.current); - origlen = (size_t)ngtcp2_min_uint64((uint64_t)origlen, server_tx_left); - destlen = (size_t)ngtcp2_min_uint64((uint64_t)destlen, server_tx_left); + origlen = (size_t)ngtcp2_min((uint64_t)origlen, server_tx_left); + destlen = (size_t)ngtcp2_min((uint64_t)destlen, server_tx_left); if (server_tx_left == 0 && conn->cstat.loss_detection_timer != UINT64_MAX) { @@ -12457,9 +12505,9 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, } if (conn->pktns.rtb.probe_pkt_left) { - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_CON, - "transmit probe pkt left=%zu", - conn->pktns.rtb.probe_pkt_left); + ngtcp2_log_infof( + &conn->log, NGTCP2_LOG_EVENT_CON, + "transmit probe pkt left=", conn->pktns.rtb.probe_pkt_left); nwrite = conn_write_pkt(conn, pi, dest, destlen, (size_t)res, vmsg, NGTCP2_PKT_1RTT, wflags, ts); @@ -12608,7 +12656,7 @@ ngtcp2_ssize ngtcp2_conn_write_connection_close_pkt( if (conn->server) { server_tx_left = conn_server_tx_left(conn, &conn->dcid.current); - destlen = (size_t)ngtcp2_min_uint64((uint64_t)destlen, server_tx_left); + destlen = (size_t)ngtcp2_min((uint64_t)destlen, server_tx_left); } if (conn->state == NGTCP2_CS_POST_HANDSHAKE || @@ -12670,7 +12718,7 @@ ngtcp2_ssize ngtcp2_conn_write_application_close_pkt( if (conn->server) { server_tx_left = conn_server_tx_left(conn, &conn->dcid.current); - destlen = (size_t)ngtcp2_min_uint64((uint64_t)destlen, server_tx_left); + destlen = (size_t)ngtcp2_min((uint64_t)destlen, server_tx_left); } if (!(conn->flags & NGTCP2_CONN_FLAG_HANDSHAKE_CONFIRMED)) { @@ -12688,7 +12736,7 @@ ngtcp2_ssize ngtcp2_conn_write_application_close_pkt( if (conn->state != NGTCP2_CS_POST_HANDSHAKE && (!conn->server || !conn->pktns.crypto.tx.ckm)) { - return res; + goto fin; } assert(conn->pktns.crypto.tx.ckm); @@ -12714,6 +12762,7 @@ ngtcp2_ssize ngtcp2_conn_write_application_close_pkt( return NGTCP2_ERR_NOBUF; } +fin: conn->state = NGTCP2_CS_CLOSING; return res; @@ -12806,10 +12855,18 @@ ngtcp2_ssize ngtcp2_conn_write_connection_close_versioned( } int ngtcp2_conn_in_closing_period(ngtcp2_conn *conn) { + return ngtcp2_conn_in_closing_period2(conn); +} + +int ngtcp2_conn_in_closing_period2(const ngtcp2_conn *conn) { return conn->state == NGTCP2_CS_CLOSING; } int ngtcp2_conn_in_draining_period(ngtcp2_conn *conn) { + return ngtcp2_conn_in_draining_period2(conn); +} + +int ngtcp2_conn_in_draining_period2(const ngtcp2_conn *conn) { return conn->state == NGTCP2_CS_DRAINING; } @@ -13009,7 +13066,7 @@ static int conn_extend_max_stream_offset(ngtcp2_conn *conn, ngtcp2_strm *strm, top = ngtcp2_conn_tx_strmq_top(conn); strm->cycle = top->cycle; } - strm->cycle = conn_tx_strmq_first_cycle(conn); + strm->cycle = ngtcp2_conn_tx_strmq_first_cycle(conn); return ngtcp2_conn_tx_strmq_push(conn, strm); } @@ -13051,18 +13108,35 @@ void ngtcp2_conn_extend_max_streams_uni(ngtcp2_conn *conn, size_t n) { } const ngtcp2_cid *ngtcp2_conn_get_dcid(ngtcp2_conn *conn) { + return ngtcp2_conn_get_dcid2(conn); +} + +const ngtcp2_cid *ngtcp2_conn_get_dcid2(const ngtcp2_conn *conn) { return &conn->dcid.current.cid; } const ngtcp2_cid *ngtcp2_conn_get_client_initial_dcid(ngtcp2_conn *conn) { + return ngtcp2_conn_get_client_initial_dcid2(conn); +} + +const ngtcp2_cid * +ngtcp2_conn_get_client_initial_dcid2(const ngtcp2_conn *conn) { return &conn->rcid; } uint32_t ngtcp2_conn_get_client_chosen_version(ngtcp2_conn *conn) { + return ngtcp2_conn_get_client_chosen_version2(conn); +} + +uint32_t ngtcp2_conn_get_client_chosen_version2(const ngtcp2_conn *conn) { return conn->client_chosen_version; } uint32_t ngtcp2_conn_get_negotiated_version(ngtcp2_conn *conn) { + return ngtcp2_conn_get_negotiated_version2(conn); +} + +uint32_t ngtcp2_conn_get_negotiated_version2(const ngtcp2_conn *conn) { return conn->negotiated_version; } @@ -13140,6 +13214,10 @@ int ngtcp2_conn_tls_early_data_rejected(ngtcp2_conn *conn) { } int ngtcp2_conn_get_tls_early_data_rejected(ngtcp2_conn *conn) { + return ngtcp2_conn_get_tls_early_data_rejected2(conn); +} + +int ngtcp2_conn_get_tls_early_data_rejected2(const ngtcp2_conn *conn) { return (conn->flags & NGTCP2_CONN_FLAG_EARLY_DATA_REJECTED) != 0; } @@ -13159,23 +13237,23 @@ void ngtcp2_conn_update_rtt(ngtcp2_conn *conn, ngtcp2_duration rtt, if (conn->flags & NGTCP2_CONN_FLAG_HANDSHAKE_CONFIRMED) { assert(conn->remote.transport_params); - ack_delay = ngtcp2_min_uint64( - ack_delay, conn->remote.transport_params->max_ack_delay); + ack_delay = + ngtcp2_min(ack_delay, conn->remote.transport_params->max_ack_delay); } else if (ack_delay > 0 && rtt >= cstat->min_rtt && rtt < cstat->min_rtt + ack_delay) { /* Ignore RTT sample if adjusting ack_delay causes the sample less than min_rtt before handshake confirmation. */ ngtcp2_log_infof( &conn->log, NGTCP2_LOG_EVENT_LDC, - "ignore rtt sample because ack_delay is too large latest_rtt=%" PRIu64 - " min_rtt=%" PRIu64 " ack_delay=%" PRIu64, - rtt / NGTCP2_MILLISECONDS, cstat->min_rtt / NGTCP2_MILLISECONDS, - ack_delay / NGTCP2_MILLISECONDS); + "ignore rtt sample because ack_delay is too large latest_rtt=", + rtt / NGTCP2_MILLISECONDS, + " min_rtt=", cstat->min_rtt / NGTCP2_MILLISECONDS, + " ack_delay=", ack_delay / NGTCP2_MILLISECONDS); return; } cstat->latest_rtt = rtt; - cstat->min_rtt = ngtcp2_min_uint64(cstat->min_rtt, rtt); + cstat->min_rtt = ngtcp2_min(cstat->min_rtt, rtt); if (rtt >= cstat->min_rtt + ack_delay) { rtt -= ack_delay; @@ -13188,19 +13266,23 @@ void ngtcp2_conn_update_rtt(ngtcp2_conn *conn, ngtcp2_duration rtt, cstat->smoothed_rtt = (cstat->smoothed_rtt * 7 + rtt) / 8; } - ngtcp2_log_infof( - &conn->log, NGTCP2_LOG_EVENT_LDC, - "latest_rtt=%" PRIu64 " min_rtt=%" PRIu64 " smoothed_rtt=%" PRIu64 - " rttvar=%" PRIu64 " ack_delay=%" PRIu64, - cstat->latest_rtt / NGTCP2_MILLISECONDS, - cstat->min_rtt / NGTCP2_MILLISECONDS, - cstat->smoothed_rtt / NGTCP2_MILLISECONDS, - cstat->rttvar / NGTCP2_MILLISECONDS, ack_delay / NGTCP2_MILLISECONDS); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_LDC, + "latest_rtt=", cstat->latest_rtt / NGTCP2_MILLISECONDS, + " min_rtt=", cstat->min_rtt / NGTCP2_MILLISECONDS, + " smoothed_rtt=", cstat->smoothed_rtt / NGTCP2_MILLISECONDS, + " rttvar=", cstat->rttvar / NGTCP2_MILLISECONDS, + " ack_delay=", ack_delay / NGTCP2_MILLISECONDS); } void ngtcp2_conn_get_conn_info_versioned(ngtcp2_conn *conn, int conn_info_version, ngtcp2_conn_info *cinfo) { + ngtcp2_conn_get_conn_info2_versioned(conn, conn_info_version, cinfo); +} + +void ngtcp2_conn_get_conn_info2_versioned(const ngtcp2_conn *conn, + int conn_info_version, + ngtcp2_conn_info *cinfo) { ngtcp2_conn_info_init_versioned(conn_info_version, cinfo, &conn->cstat); } @@ -13231,13 +13313,14 @@ static void conn_get_loss_time_and_pktns(ngtcp2_conn *conn, } } -static ngtcp2_tstamp conn_get_earliest_pto_expiry(ngtcp2_conn *conn, +static ngtcp2_tstamp conn_get_earliest_pto_expiry(const ngtcp2_conn *conn, ngtcp2_tstamp ts) { - ngtcp2_pktns *const ns[] = {conn->in_pktns, conn->hs_pktns, &conn->pktns}; + const ngtcp2_pktns *const ns[] = {conn->in_pktns, conn->hs_pktns, + &conn->pktns}; size_t i; ngtcp2_tstamp earliest_ts = UINT64_MAX, t; - ngtcp2_conn_stat *cstat = &conn->cstat; - ngtcp2_tstamp *times = cstat->last_tx_pkt_ts; + const ngtcp2_conn_stat *cstat = &conn->cstat; + const ngtcp2_tstamp *times = cstat->last_tx_pkt_ts; ngtcp2_duration duration = compute_pto(cstat->smoothed_rtt, cstat->rttvar, /* max_ack_delay = */ 0) * (1ULL << cstat->pto_count); @@ -13284,9 +13367,8 @@ void ngtcp2_conn_set_loss_detection_timer(ngtcp2_conn *conn, ngtcp2_tstamp ts) { cstat->loss_detection_timer = earliest_loss_time; ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_LDC, - "loss_detection_timer=%" PRIu64 - " nonzero crypto loss time", - cstat->loss_detection_timer); + "loss_detection_timer=", cstat->loss_detection_timer, + " nonzero crypto loss time"); return; } @@ -13311,8 +13393,8 @@ void ngtcp2_conn_set_loss_detection_timer(ngtcp2_conn *conn, ngtcp2_tstamp ts) { cstat->loss_detection_timer > ts ? cstat->loss_detection_timer - ts : 0; ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_LDC, - "loss_detection_timer=%" PRIu64 " timeout=%" PRIu64, - cstat->loss_detection_timer, timeout / NGTCP2_MILLISECONDS); + "loss_detection_timer=", cstat->loss_detection_timer, + " timeout=", timeout / NGTCP2_MILLISECONDS); } void ngtcp2_conn_cancel_loss_detection_timer(ngtcp2_conn *conn) { @@ -13384,8 +13466,8 @@ int ngtcp2_conn_on_loss_detection_timer(ngtcp2_conn *conn, ngtcp2_tstamp ts) { ++cstat->pto_count; - ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_LDC, "pto_count=%zu", - cstat->pto_count); + ngtcp2_log_infof(&conn->log, NGTCP2_LOG_EVENT_LDC, + "pto_count=", cstat->pto_count); ngtcp2_conn_set_loss_detection_timer(conn, ts); @@ -13408,8 +13490,7 @@ static int conn_buffer_crypto_data(ngtcp2_conn *conn, const uint8_t **pdata, } if (!*pbufchain) { - rv = ngtcp2_buf_chain_new(pbufchain, ngtcp2_max_size(1024, datalen), - conn->mem); + rv = ngtcp2_buf_chain_new(pbufchain, ngtcp2_max(1024, datalen), conn->mem); if (rv != 0) { return rv; } @@ -13519,7 +13600,7 @@ int ngtcp2_conn_tx_strmq_push(ngtcp2_conn *conn, ngtcp2_strm *strm) { return ngtcp2_pq_push(&conn->tx.strmq, &strm->pe); } -static int conn_has_uncommitted_preferred_addr_cid(ngtcp2_conn *conn) { +static int conn_has_uncommitted_preferred_addr_cid(const ngtcp2_conn *conn) { return conn->server && !(conn->flags & NGTCP2_CONN_FLAG_LOCAL_TRANSPORT_PARAMS_COMMITTED) && conn->oscid.datalen && @@ -13527,6 +13608,10 @@ static int conn_has_uncommitted_preferred_addr_cid(ngtcp2_conn *conn) { } size_t ngtcp2_conn_get_scid(ngtcp2_conn *conn, ngtcp2_cid *dest) { + return ngtcp2_conn_get_scid2(conn, dest); +} + +size_t ngtcp2_conn_get_scid2(const ngtcp2_conn *conn, ngtcp2_cid *dest) { ngtcp2_cid *origdest = dest; ngtcp2_ksl_it it; ngtcp2_scid *scid; @@ -13549,7 +13634,7 @@ size_t ngtcp2_conn_get_scid(ngtcp2_conn *conn, ngtcp2_cid *dest) { return (size_t)(dest - origdest); } -static size_t conn_get_num_active_dcid(ngtcp2_conn *conn) { +static size_t conn_get_num_active_dcid(const ngtcp2_conn *conn) { size_t n = 1; /* for conn->dcid.current */ ngtcp2_pv *pv = conn->pv; @@ -13579,10 +13664,10 @@ size_t ngtcp2_conn_get_active_dcid(ngtcp2_conn *conn, ngtcp2_cid_token *dest) { size_t n, i; if (!dest) { - return ngtcp2_conn_get_active_dcid2(conn, NULL); + return ngtcp2_conn_get_active_dcid3(conn, NULL); } - n = ngtcp2_conn_get_active_dcid2(conn, cid_tokens); + n = ngtcp2_conn_get_active_dcid3(conn, cid_tokens); for (i = 0; i < n; ++i) { dest[i].seq = cid_tokens[i].seq; @@ -13611,9 +13696,14 @@ static void copy_dcid_to_cid_token(ngtcp2_cid_token2 *dest, size_t ngtcp2_conn_get_active_dcid2(ngtcp2_conn *conn, ngtcp2_cid_token2 *dest) { - ngtcp2_pv *pv = conn->pv; + return ngtcp2_conn_get_active_dcid3(conn, dest); +} + +size_t ngtcp2_conn_get_active_dcid3(const ngtcp2_conn *conn, + ngtcp2_cid_token2 *dest) { + const ngtcp2_pv *pv = conn->pv; ngtcp2_cid_token2 *orig = dest; - ngtcp2_dcid *dcid; + const ngtcp2_dcid *dcid; size_t len, i; if (!(conn->flags & NGTCP2_CONN_FLAG_HANDSHAKE_COMPLETED)) { @@ -13667,16 +13757,28 @@ void ngtcp2_conn_set_path_user_data(ngtcp2_conn *conn, void *path_user_data) { } const ngtcp2_path *ngtcp2_conn_get_path(ngtcp2_conn *conn) { + return ngtcp2_conn_get_path2(conn); +} + +const ngtcp2_path *ngtcp2_conn_get_path2(const ngtcp2_conn *conn) { return &conn->dcid.current.ps.path; } size_t ngtcp2_conn_get_max_tx_udp_payload_size(ngtcp2_conn *conn) { + return ngtcp2_conn_get_max_tx_udp_payload_size2(conn); +} + +size_t ngtcp2_conn_get_max_tx_udp_payload_size2(const ngtcp2_conn *conn) { return conn->local.settings.max_tx_udp_payload_size; } size_t ngtcp2_conn_get_path_max_tx_udp_payload_size(ngtcp2_conn *conn) { + return ngtcp2_conn_get_path_max_tx_udp_payload_size2(conn); +} + +size_t ngtcp2_conn_get_path_max_tx_udp_payload_size2(const ngtcp2_conn *conn) { if (conn->local.settings.no_tx_udp_payload_size_shaping) { - return ngtcp2_conn_get_max_tx_udp_payload_size(conn); + return ngtcp2_conn_get_max_tx_udp_payload_size2(conn); } return conn->dcid.current.max_udp_payload_size; @@ -13823,12 +13925,21 @@ int ngtcp2_conn_initiate_migration(ngtcp2_conn *conn, const ngtcp2_path *path, } uint64_t ngtcp2_conn_get_max_data_left(ngtcp2_conn *conn) { + return ngtcp2_conn_get_max_data_left2(conn); +} + +uint64_t ngtcp2_conn_get_max_data_left2(const ngtcp2_conn *conn) { return conn->tx.max_offset - conn->tx.offset; } uint64_t ngtcp2_conn_get_max_stream_data_left(ngtcp2_conn *conn, int64_t stream_id) { - ngtcp2_strm *strm = ngtcp2_conn_find_stream(conn, stream_id); + return ngtcp2_conn_get_max_stream_data_left2(conn, stream_id); +} + +uint64_t ngtcp2_conn_get_max_stream_data_left2(const ngtcp2_conn *conn, + int64_t stream_id) { + const ngtcp2_strm *strm = ngtcp2_conn_find_stream(conn, stream_id); if (strm == NULL) { return 0; @@ -13838,6 +13949,10 @@ uint64_t ngtcp2_conn_get_max_stream_data_left(ngtcp2_conn *conn, } uint64_t ngtcp2_conn_get_streams_bidi_left(ngtcp2_conn *conn) { + return ngtcp2_conn_get_streams_bidi_left2(conn); +} + +uint64_t ngtcp2_conn_get_streams_bidi_left2(const ngtcp2_conn *conn) { uint64_t n = ngtcp2_ord_stream_id(conn->local.bidi.next_stream_id); return n > conn->local.bidi.max_streams @@ -13846,6 +13961,10 @@ uint64_t ngtcp2_conn_get_streams_bidi_left(ngtcp2_conn *conn) { } uint64_t ngtcp2_conn_get_streams_uni_left(ngtcp2_conn *conn) { + return ngtcp2_conn_get_streams_uni_left2(conn); +} + +uint64_t ngtcp2_conn_get_streams_uni_left2(const ngtcp2_conn *conn) { uint64_t n = ngtcp2_ord_stream_id(conn->local.uni.next_stream_id); return n > conn->local.uni.max_streams ? 0 @@ -13853,6 +13972,10 @@ uint64_t ngtcp2_conn_get_streams_uni_left(ngtcp2_conn *conn) { } uint64_t ngtcp2_conn_get_cwnd_left(ngtcp2_conn *conn) { + return ngtcp2_conn_get_cwnd_left2(conn); +} + +uint64_t ngtcp2_conn_get_cwnd_left2(const ngtcp2_conn *conn) { uint64_t bytes_in_flight = conn->cstat.bytes_in_flight; uint64_t cwnd = conn->cstat.cwnd; @@ -13863,7 +13986,7 @@ uint64_t ngtcp2_conn_get_cwnd_left(ngtcp2_conn *conn) { return 0; } -ngtcp2_tstamp ngtcp2_conn_get_idle_expiry(ngtcp2_conn *conn) { +ngtcp2_tstamp ngtcp2_conn_get_idle_expiry(const ngtcp2_conn *conn) { ngtcp2_duration trpto; ngtcp2_duration idle_timeout; @@ -13884,11 +14007,11 @@ ngtcp2_tstamp ngtcp2_conn_get_idle_expiry(ngtcp2_conn *conn) { return UINT64_MAX; } - trpto = 3 * conn_compute_pto(conn, conn_is_tls_handshake_completed(conn) - ? &conn->pktns - : conn->hs_pktns); + trpto = 3 * ngtcp2_conn_compute_pto( + conn, conn_is_tls_handshake_completed(conn) ? &conn->pktns + : conn->hs_pktns); - idle_timeout = ngtcp2_max_uint64(idle_timeout, trpto); + idle_timeout = ngtcp2_max(idle_timeout, trpto); if (conn->idle_ts >= UINT64_MAX - idle_timeout) { return UINT64_MAX; @@ -13898,9 +14021,13 @@ ngtcp2_tstamp ngtcp2_conn_get_idle_expiry(ngtcp2_conn *conn) { } ngtcp2_duration ngtcp2_conn_get_pto(ngtcp2_conn *conn) { - return conn_compute_pto(conn, conn_is_tls_handshake_completed(conn) - ? &conn->pktns - : conn->hs_pktns); + return ngtcp2_conn_get_pto2(conn); +} + +ngtcp2_duration ngtcp2_conn_get_pto2(const ngtcp2_conn *conn) { + return ngtcp2_conn_compute_pto(conn, conn_is_tls_handshake_completed(conn) + ? &conn->pktns + : conn->hs_pktns); } void ngtcp2_conn_set_initial_crypto_ctx(ngtcp2_conn *conn, @@ -13910,6 +14037,11 @@ void ngtcp2_conn_set_initial_crypto_ctx(ngtcp2_conn *conn, } const ngtcp2_crypto_ctx *ngtcp2_conn_get_initial_crypto_ctx(ngtcp2_conn *conn) { + return ngtcp2_conn_get_initial_crypto_ctx2(conn); +} + +const ngtcp2_crypto_ctx * +ngtcp2_conn_get_initial_crypto_ctx2(const ngtcp2_conn *conn) { assert(conn->in_pktns); return &conn->in_pktns->crypto.ctx; } @@ -13931,6 +14063,10 @@ void ngtcp2_conn_set_crypto_ctx(ngtcp2_conn *conn, } const ngtcp2_crypto_ctx *ngtcp2_conn_get_crypto_ctx(ngtcp2_conn *conn) { + return ngtcp2_conn_get_crypto_ctx2(conn); +} + +const ngtcp2_crypto_ctx *ngtcp2_conn_get_crypto_ctx2(const ngtcp2_conn *conn) { return &conn->pktns.crypto.ctx; } @@ -13940,10 +14076,19 @@ void ngtcp2_conn_set_0rtt_crypto_ctx(ngtcp2_conn *conn, } const ngtcp2_crypto_ctx *ngtcp2_conn_get_0rtt_crypto_ctx(ngtcp2_conn *conn) { + return ngtcp2_conn_get_0rtt_crypto_ctx2(conn); +} + +const ngtcp2_crypto_ctx * +ngtcp2_conn_get_0rtt_crypto_ctx2(const ngtcp2_conn *conn) { return &conn->early.ctx; } void *ngtcp2_conn_get_tls_native_handle(ngtcp2_conn *conn) { + return ngtcp2_conn_get_tls_native_handle2(conn); +} + +void *ngtcp2_conn_get_tls_native_handle2(const ngtcp2_conn *conn) { return conn->crypto.tls_native_handle; } @@ -13953,6 +14098,10 @@ void ngtcp2_conn_set_tls_native_handle(ngtcp2_conn *conn, } const ngtcp2_ccerr *ngtcp2_conn_get_ccerr(ngtcp2_conn *conn) { + return ngtcp2_conn_get_ccerr2(conn); +} + +const ngtcp2_ccerr *ngtcp2_conn_get_ccerr2(const ngtcp2_conn *conn) { return &conn->rx.ccerr; } @@ -13961,6 +14110,10 @@ void ngtcp2_conn_set_tls_error(ngtcp2_conn *conn, int liberr) { } int ngtcp2_conn_get_tls_error(ngtcp2_conn *conn) { + return ngtcp2_conn_get_tls_error2(conn); +} + +int ngtcp2_conn_get_tls_error2(const ngtcp2_conn *conn) { return conn->crypto.tls_error; } @@ -13969,16 +14122,32 @@ void ngtcp2_conn_set_tls_alert(ngtcp2_conn *conn, uint8_t alert) { } uint8_t ngtcp2_conn_get_tls_alert(ngtcp2_conn *conn) { + return ngtcp2_conn_get_tls_alert2(conn); +} + +uint8_t ngtcp2_conn_get_tls_alert2(const ngtcp2_conn *conn) { return conn->crypto.tls_alert; } int ngtcp2_conn_is_local_stream(ngtcp2_conn *conn, int64_t stream_id) { + return ngtcp2_conn_is_local_stream2(conn, stream_id); +} + +int ngtcp2_conn_is_local_stream2(const ngtcp2_conn *conn, int64_t stream_id) { return conn_local_stream(conn, stream_id); } -int ngtcp2_conn_is_server(ngtcp2_conn *conn) { return conn->server; } +int ngtcp2_conn_is_server(ngtcp2_conn *conn) { + return ngtcp2_conn_is_server2(conn); +} + +int ngtcp2_conn_is_server2(const ngtcp2_conn *conn) { return conn->server; } int ngtcp2_conn_after_retry(ngtcp2_conn *conn) { + return ngtcp2_conn_after_retry2(conn); +} + +int ngtcp2_conn_after_retry2(const ngtcp2_conn *conn) { return (conn->flags & NGTCP2_CONN_FLAG_RECV_RETRY) != 0; } @@ -13996,7 +14165,12 @@ int ngtcp2_conn_set_stream_user_data(ngtcp2_conn *conn, int64_t stream_id, } void *ngtcp2_conn_get_stream_user_data(ngtcp2_conn *conn, int64_t stream_id) { - ngtcp2_strm *strm = ngtcp2_conn_find_stream(conn, stream_id); + return ngtcp2_conn_get_stream_user_data2(conn, stream_id); +} + +void *ngtcp2_conn_get_stream_user_data2(const ngtcp2_conn *conn, + int64_t stream_id) { + const ngtcp2_strm *strm = ngtcp2_conn_find_stream(conn, stream_id); if (strm == NULL) { return NULL; @@ -14018,7 +14192,7 @@ void ngtcp2_conn_update_pkt_tx_time(ngtcp2_conn *conn, ngtcp2_tstamp ts) { conn->cstat.pacing_interval_m) >> 10); - d = ngtcp2_min_uint64(wait / 2, conn->tx.pacing.compensation); + d = ngtcp2_min(wait / 2, conn->tx.pacing.compensation); wait -= d; conn->tx.pacing.compensation -= d; @@ -14027,11 +14201,20 @@ void ngtcp2_conn_update_pkt_tx_time(ngtcp2_conn *conn, ngtcp2_tstamp ts) { } size_t ngtcp2_conn_get_send_quantum(ngtcp2_conn *conn) { + return ngtcp2_conn_get_send_quantum2(conn); +} + +size_t ngtcp2_conn_get_send_quantum2(const ngtcp2_conn *conn) { return conn->cstat.send_quantum; } size_t ngtcp2_conn_get_stream_loss_count(ngtcp2_conn *conn, int64_t stream_id) { - ngtcp2_strm *strm = ngtcp2_conn_find_stream(conn, stream_id); + return ngtcp2_conn_get_stream_loss_count2(conn, stream_id); +} + +size_t ngtcp2_conn_get_stream_loss_count2(const ngtcp2_conn *conn, + int64_t stream_id) { + const ngtcp2_strm *strm = ngtcp2_conn_find_stream(conn, stream_id); if (strm == NULL) { return 0; @@ -14056,7 +14239,7 @@ ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( ngtcp2_write_pkt write_pkt, ngtcp2_tstamp ts) { ngtcp2_ssize nwrite; - buflen = ngtcp2_min_size(buflen, ngtcp2_conn_get_send_quantum(conn)); + buflen = ngtcp2_min(buflen, ngtcp2_conn_get_send_quantum2(conn)); nwrite = ngtcp2_conn_write_aggregate_pkt2_versioned( conn, path, pkt_info_version, pi, buf, buflen, pgsolen, write_pkt, 0, ts); @@ -14073,9 +14256,9 @@ ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt2_versioned( ngtcp2_conn *conn, ngtcp2_path *path, int pkt_info_version, ngtcp2_pkt_info *pi, uint8_t *buf, size_t buflen, size_t *pgsolen, ngtcp2_write_pkt write_pkt, size_t num_pkts, ngtcp2_tstamp ts) { - size_t max_udp_payloadlen = ngtcp2_conn_get_max_tx_udp_payload_size(conn); + size_t max_udp_payloadlen = ngtcp2_conn_get_max_tx_udp_payload_size2(conn); size_t path_max_udp_payloadlen = - ngtcp2_conn_get_path_max_tx_udp_payload_size(conn); + ngtcp2_conn_get_path_max_tx_udp_payload_size2(conn); ngtcp2_ssize nwrite; uint8_t *wbuf = buf; size_t wbuflen; @@ -14160,9 +14343,9 @@ ngtcp2_tstamp ngtcp2_conn_get_timestamp(const ngtcp2_conn *conn) { } const ngtcp2_path_history_entry * -ngtcp2_conn_find_path_history(ngtcp2_conn *conn, const ngtcp2_path *path, +ngtcp2_conn_find_path_history(const ngtcp2_conn *conn, const ngtcp2_path *path, ngtcp2_tstamp ts) { - ngtcp2_ringbuf *rb = &conn->path_history.rb; + const ngtcp2_ringbuf *rb = &conn->path_history.rb; size_t i, len = ngtcp2_ringbuf_len(rb); ngtcp2_path_history_entry *ent; @@ -14229,10 +14412,6 @@ ngtcp2_ssize ngtcp2_pkt_write_connection_close( return rv; } - if (!ngtcp2_ppe_ensure_hp_sample(&ppe)) { - return NGTCP2_ERR_NOBUF; - } - fr.connection_close = (ngtcp2_connection_close){ .type = NGTCP2_FRAME_CONNECTION_CLOSE, .error_code = error_code, diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h index 47175736d4..548c296e8a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h @@ -702,7 +702,8 @@ typedef struct ngtcp2_vmsg { * ngtcp2_conn_find_stream returns a stream whose stream ID is * |stream_id|. If no such stream is found, it returns NULL. */ -ngtcp2_strm *ngtcp2_conn_find_stream(ngtcp2_conn *conn, int64_t stream_id); +ngtcp2_strm *ngtcp2_conn_find_stream(const ngtcp2_conn *conn, + int64_t stream_id); /* * conn_init_stream initializes |strm|. Its stream ID is |stream_id|. @@ -804,7 +805,7 @@ int ngtcp2_conn_tx_strmq_push(ngtcp2_conn *conn, ngtcp2_strm *strm); * ngtcp2_conn_internal_expiry returns the minimum expiry time among * all timers in |conn|. */ -ngtcp2_tstamp ngtcp2_conn_internal_expiry(ngtcp2_conn *conn); +ngtcp2_tstamp ngtcp2_conn_internal_expiry(const ngtcp2_conn *conn); ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, int pkt_info_version, ngtcp2_pkt_info *pi, @@ -853,14 +854,14 @@ int ngtcp2_conn_commit_local_transport_params(ngtcp2_conn *conn); * ngtcp2_conn_lost_pkt_expiry returns the earliest expiry time of * lost packet. */ -ngtcp2_tstamp ngtcp2_conn_lost_pkt_expiry(ngtcp2_conn *conn); +ngtcp2_tstamp ngtcp2_conn_lost_pkt_expiry(const ngtcp2_conn *conn); /* * ngtcp2_conn_remove_lost_pkt removes the expired lost packet. */ void ngtcp2_conn_remove_lost_pkt(ngtcp2_conn *conn, ngtcp2_tstamp ts); -uint64_t ngtcp2_conn_tx_strmq_first_cycle(ngtcp2_conn *conn); +uint64_t ngtcp2_conn_tx_strmq_first_cycle(const ngtcp2_conn *conn); /** * @function @@ -871,7 +872,7 @@ uint64_t ngtcp2_conn_tx_strmq_first_cycle(ngtcp2_conn *conn); * `ngtcp2_conn_write_pkt` (or `ngtcp2_conn_writev_stream`) when it * expires. It returns UINT64_MAX if there is no expiry. */ -ngtcp2_tstamp ngtcp2_conn_ack_delay_expiry(ngtcp2_conn *conn); +ngtcp2_tstamp ngtcp2_conn_ack_delay_expiry(const ngtcp2_conn *conn); /** * @function @@ -892,7 +893,7 @@ void ngtcp2_conn_cancel_expired_ack_delay_timer(ngtcp2_conn *conn, * (or `ngtcp2_conn_writev_stream`) when it expires. It returns * UINT64_MAX if loss detection timer is not armed. */ -ngtcp2_tstamp ngtcp2_conn_loss_detection_expiry(ngtcp2_conn *conn); +ngtcp2_tstamp ngtcp2_conn_loss_detection_expiry(const ngtcp2_conn *conn); /** * @function @@ -901,34 +902,13 @@ ngtcp2_tstamp ngtcp2_conn_loss_detection_expiry(ngtcp2_conn *conn); * should be closed if it continues to be idle. If idle timeout is * disabled, this function returns ``UINT64_MAX``. */ -ngtcp2_tstamp ngtcp2_conn_get_idle_expiry(ngtcp2_conn *conn); - -ngtcp2_duration ngtcp2_conn_compute_pto(ngtcp2_conn *conn, ngtcp2_pktns *pktns); - -/* - * ngtcp2_conn_track_retired_dcid_seq tracks the sequence number |seq| - * of unacknowledged retiring Destination Connection ID. - * - * This function returns 0 if it succeeds, or one of the following - * negative error codes: - * - * NGTCP2_ERR_CONNECTION_ID_LIMIT - * The number of unacknowledged retirement exceeds the limit. - */ -int ngtcp2_conn_track_retired_dcid_seq(ngtcp2_conn *conn, uint64_t seq); - -/* - * ngtcp2_conn_untrack_retired_dcid_seq deletes the sequence number - * |seq| of unacknowledged retiring Destination Connection ID. It is - * fine if such sequence number is not found. - */ -void ngtcp2_conn_untrack_retired_dcid_seq(ngtcp2_conn *conn, uint64_t seq); +ngtcp2_tstamp ngtcp2_conn_get_idle_expiry(const ngtcp2_conn *conn); /* - * ngtcp2_conn_check_retired_dcid_tracked returns nonzero if |seq| has - * already been tracked. + * ngtcp2_conn_compute_pto computes the current PTO. */ -int ngtcp2_conn_check_retired_dcid_tracked(ngtcp2_conn *conn, uint64_t seq); +ngtcp2_duration ngtcp2_conn_compute_pto(const ngtcp2_conn *conn, + const ngtcp2_pktns *pktns); /* * ngtcp2_conn_server_negotiate_version negotiates QUIC version. It @@ -1107,7 +1087,7 @@ void ngtcp2_conn_add_path_history(ngtcp2_conn *conn, const ngtcp2_dcid *dcid, ngtcp2_tstamp ts); const ngtcp2_path_history_entry * -ngtcp2_conn_find_path_history(ngtcp2_conn *conn, const ngtcp2_path *path, +ngtcp2_conn_find_path_history(const ngtcp2_conn *conn, const ngtcp2_path *path, ngtcp2_tstamp ts); #endif /* !defined(NGTCP2_CONN_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c index a0cef0c864..42651cddbb 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.c @@ -62,7 +62,7 @@ const uint8_t *ngtcp2_get_uint16(uint16_t *dest, const uint8_t *p) { return p + sizeof(*dest); } -static const uint8_t *get_uvarint(uint64_t *dest, const uint8_t *p) { +const uint8_t *ngtcp2_get_uvarint(uint64_t *dest, const uint8_t *p) { uint16_t n16; uint32_t n32; uint64_t n64; @@ -74,21 +74,21 @@ static const uint8_t *get_uvarint(uint64_t *dest, const uint8_t *p) { case 1: memcpy(&n16, p, 2); n16 = ngtcp2_ntohs(n16); - n16 &= 0x3FFF; + n16 &= 0x3FFFU; *dest = n16; return p + 2; case 2: memcpy(&n32, p, 4); n32 = ngtcp2_ntohl(n32); - n32 &= 0x3FFFFFFF; + n32 &= 0x3FFFFFFFU; *dest = n32; return p + 4; case 3: memcpy(&n64, p, 8); n64 = ngtcp2_ntohl64(n64); - n64 &= 0x3FFFFFFFFFFFFFFF; + n64 &= 0x3FFFFFFFFFFFFFFFU; *dest = n64; return p + 8; @@ -97,14 +97,6 @@ static const uint8_t *get_uvarint(uint64_t *dest, const uint8_t *p) { } } -const uint8_t *ngtcp2_get_uvarint(uint64_t *dest, const uint8_t *p) { - return get_uvarint(dest, p); -} - -const uint8_t *ngtcp2_get_varint(int64_t *dest, const uint8_t *p) { - return get_uvarint((uint64_t *)dest, p); -} - int64_t ngtcp2_get_pkt_num(const uint8_t *p, size_t pkt_numlen) { uint32_t l; uint16_t s; @@ -158,17 +150,17 @@ uint8_t *ngtcp2_put_uvarint(uint8_t *p, uint64_t n) { } if (n < 16384) { rv = ngtcp2_put_uint16be(p, (uint16_t)n); - *p |= 0x40; + *p |= 0x40U; return rv; } if (n < 1073741824) { rv = ngtcp2_put_uint32be(p, (uint32_t)n); - *p |= 0x80; + *p |= 0x80U; return rv; } assert(n < 4611686018427387904ULL); rv = ngtcp2_put_uint64be(p, n); - *p |= 0xC0; + *p |= 0xC0U; return rv; } @@ -178,7 +170,7 @@ uint8_t *ngtcp2_put_uvarint30(uint8_t *p, uint32_t n) { assert(n < 1073741824); rv = ngtcp2_put_uint32be(p, n); - *p |= 0x80; + *p |= 0x80U; return rv; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.h index ad924683b8..7e7b9f465c 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.h @@ -80,7 +80,15 @@ const uint8_t *ngtcp2_get_uvarint(uint64_t *dest, const uint8_t *p); * lost in this cast, because the variable-length integer is 62 * bits. It returns |p| plus the number of bytes read from |p|. */ -const uint8_t *ngtcp2_get_varint(int64_t *dest, const uint8_t *p); +static inline const uint8_t *ngtcp2_get_varint(int64_t *dest, + const uint8_t *p) { + uint64_t n; + + p = ngtcp2_get_uvarint(&n, p); + *dest = (int64_t)n; + + return p; +} /* * ngtcp2_get_pkt_num reads encoded packet number from |p|. The diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.c index 078568fde3..f435870ba4 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.c @@ -28,6 +28,7 @@ #include #include "ngtcp2_net.h" +#include "ngtcp2_str.h" int ngtcp2_crypto_km_new(ngtcp2_crypto_km **pckm, const uint8_t *secret, size_t secretlen, @@ -90,13 +91,7 @@ void ngtcp2_crypto_km_del(ngtcp2_crypto_km *ckm, const ngtcp2_mem *mem) { } if (ckm->secret.len) { -#ifdef WIN32 - SecureZeroMemory(ckm->secret.base, ckm->secret.len); -#elif defined(HAVE_EXPLICIT_BZERO) - explicit_bzero(ckm->secret.base, ckm->secret.len); -#elif defined(HAVE_MEMSET_S) - memset_s(ckm->secret.base, ckm->secret.len, 0, ckm->secret.len); -#endif /* defined(HAVE_MEMSET_S) */ + ngtcp2_secure_clear(ckm->secret.base, ckm->secret.len); } ngtcp2_mem_free(mem, ckm); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c index a312398bbf..0360ba82cb 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c @@ -386,7 +386,7 @@ ngtcp2_tstamp ngtcp2_dcidtr_earliest_bound_ts(const ngtcp2_dcidtr *dtr) { assert(dcid->cid.datalen); assert(dcid->bound_ts != UINT64_MAX); - res = ngtcp2_min_uint64(res, dcid->bound_ts); + res = ngtcp2_min(res, dcid->bound_ts); } return res; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.c new file mode 100644 index 0000000000..63899f7e03 --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.c @@ -0,0 +1,112 @@ +/* + * ngtcp2 + * + * Copyright (c) 2026 ngtcp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include "ngtcp2_fmt.h" + +#include + +#include "ngtcp2_str.h" + +char *ngtcp2_fmt_write_int64(char *dest, int64_t n) { + if (n < 0) { + *dest++ = '-'; + return ngtcp2_fmt_write_uint64(dest, 0 - (uint64_t)n); + } + + return ngtcp2_fmt_write_uint64(dest, (uint64_t)n); +} + +char *ngtcp2_fmt_write_uint64(char *dest, uint64_t n) { + return (char *)ngtcp2_encode_uint((uint8_t *)dest, n); +} + +char *ngtcp2_fmt_write_char(char *dest, char c) { + *dest++ = c; + + return dest; +} + +char *ngtcp2_fmt_write_str(char *dest, const char *s) { + return ngtcp2_cpymem(dest, s, strlen(s)); +} + +static char *fill_zero(char *dest, size_t len, size_t width) { + if (len < width) { + return (char *)ngtcp2_setmem((uint8_t *)dest, '0', width - len); + } + + return dest; +} + +char *ngtcp2_fmt_write_uint64w(char *dest, ngtcp2_fmt_uint64w f) { + size_t len = ngtcp2_encode_uintlen(f.n); + + return (char *)ngtcp2_encode_uint((uint8_t *)fill_zero(dest, len, f.width), + f.n); +} + +char *ngtcp2_fmt_write_hex(char *dest, ngtcp2_fmt_hex f) { + return (char *)ngtcp2_encode_uint_hex((uint8_t *)dest, f.n); +} + +char *ngtcp2_fmt_write_hexw(char *dest, ngtcp2_fmt_hexw f) { + size_t len = ngtcp2_encode_uint_hexlen(f.n); + + return (char *)ngtcp2_encode_uint_hex( + (uint8_t *)fill_zero(dest, len, f.width), f.n); +} + +char *ngtcp2_fmt_write_cid(char *dest, const ngtcp2_cid *cid) { + return (char *)ngtcp2_encode_hex((uint8_t *)dest, cid->data, cid->datalen); +} + +char *ngtcp2_fmt_write_stateless_reset_token( + char *dest, const ngtcp2_stateless_reset_token *token) { + return (char *)ngtcp2_encode_hex((uint8_t *)dest, token->data, + sizeof(token->data)); +} + +char * +ngtcp2_fmt_write_path_challenge_data(char *dest, + const ngtcp2_path_challenge_data *data) { + return (char *)ngtcp2_encode_hex((uint8_t *)dest, data->data, + sizeof(data->data)); +} + +char *ngtcp2_fmt_write_bhex(char *dest, ngtcp2_fmt_bhex f) { + return (char *)ngtcp2_encode_hex((uint8_t *)dest, f.data, f.len); +} + +char *ngtcp2_fmt_write_in_addr(char *dest, const ngtcp2_in_addr *addr) { + return (char *)ngtcp2_encode_ipv4((uint8_t *)dest, addr); +} + +char *ngtcp2_fmt_write_in6_addr(char *dest, const ngtcp2_in6_addr *addr) { + return (char *)ngtcp2_encode_ipv6((uint8_t *)dest, addr); +} + +char *ngtcp2_fmt_write_printable_ascii(char *dest, + const ngtcp2_fmt_printable_ascii f) { + return (char *)ngtcp2_encode_printable_ascii((uint8_t *)dest, f.data, f.len); +} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.h new file mode 100644 index 0000000000..9d01ffc80b --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.h @@ -0,0 +1,1211 @@ +/* + * ngtcp2 + * + * Copyright (c) 2026 ngtcp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#ifndef NGTCP2_FMT_H +#define NGTCP2_FMT_H + +#ifdef HAVE_CONFIG_H +# include +#endif /* defined(HAVE_CONFIG_H) */ + +#include + +typedef struct ngtcp2_fmt_hex { + uint64_t n; +} ngtcp2_fmt_hex; + +static inline ngtcp2_fmt_hex ngtcp2_fmt_hex_init(uint64_t n) { + return (ngtcp2_fmt_hex){ + .n = n, + }; +} + +static inline ngtcp2_fmt_hex ngtcp2_fmt_hex_signed_init(int64_t n) { + return ngtcp2_fmt_hex_init((uint64_t)n); +} + +static inline ngtcp2_fmt_hex ngtcp2_fmt_hex_long_int_init(long int n) { + return ngtcp2_fmt_hex_init((unsigned long int)n); +} + +static inline ngtcp2_fmt_hex ngtcp2_fmt_hex_int_init(int n) { + return ngtcp2_fmt_hex_init((unsigned int)n); +} + +static inline ngtcp2_fmt_hex ngtcp2_fmt_hex_short_int_init(short int n) { + return ngtcp2_fmt_hex_init((unsigned short int)n); +} + +static inline ngtcp2_fmt_hex ngtcp2_fmt_hex_signed_char_init(signed char n) { + return ngtcp2_fmt_hex_init((unsigned char)n); +} + +static inline ngtcp2_fmt_hex ngtcp2_fmt_hex_char_init(char n) { + return ngtcp2_fmt_hex_init((unsigned char)n); +} + +/* hex formats integral |T| in unsigned hexadecimal notation. It + drops the leading zeros. */ +#define hex(T) \ + _Generic((T), \ + long long int: ngtcp2_fmt_hex_signed_init, \ + long int: ngtcp2_fmt_hex_long_int_init, \ + int: ngtcp2_fmt_hex_int_init, \ + short int: ngtcp2_fmt_hex_short_int_init, \ + signed char: ngtcp2_fmt_hex_signed_char_init, \ + char: ngtcp2_fmt_hex_char_init, \ + unsigned long long int: ngtcp2_fmt_hex_init, \ + unsigned long int: ngtcp2_fmt_hex_init, \ + unsigned int: ngtcp2_fmt_hex_init, \ + unsigned short int: ngtcp2_fmt_hex_init, \ + unsigned char: ngtcp2_fmt_hex_init)((T)) + +typedef struct ngtcp2_fmt_hexw { + uint64_t n; + size_t width; +} ngtcp2_fmt_hexw; + +static inline ngtcp2_fmt_hexw ngtcp2_fmt_hexw_init(uint64_t n, size_t width) { + return (ngtcp2_fmt_hexw){ + .n = n, + .width = width, + }; +} + +static inline ngtcp2_fmt_hexw ngtcp2_fmt_hexw_signed_init(int64_t n, + size_t width) { + return ngtcp2_fmt_hexw_init((uint64_t)n, width); +} + +static inline ngtcp2_fmt_hexw ngtcp2_fmt_hexw_long_int_init(long int n, + size_t width) { + return ngtcp2_fmt_hexw_init((unsigned long int)n, width); +} + +static inline ngtcp2_fmt_hexw ngtcp2_fmt_hexw_int_init(int n, size_t width) { + return ngtcp2_fmt_hexw_init((unsigned int)n, width); +} + +static inline ngtcp2_fmt_hexw ngtcp2_fmt_hexw_short_int_init(short int n, + size_t width) { + return ngtcp2_fmt_hexw_init((unsigned short int)n, width); +} + +static inline ngtcp2_fmt_hexw ngtcp2_fmt_hexw_signed_char_init(signed char n, + size_t width) { + return ngtcp2_fmt_hexw_init((unsigned char)n, width); +} + +static inline ngtcp2_fmt_hexw ngtcp2_fmt_hexw_char_init(char n, size_t width) { + return ngtcp2_fmt_hexw_init((unsigned char)n, width); +} + +/* hex formats integral |T| in unsigned hexadecimal notation. If the + produced value has fewer characters than |WIDTH|, it will be padded + with 0 on the left. */ +#define hexw(T, WIDTH) \ + _Generic((T), \ + long long int: ngtcp2_fmt_hexw_signed_init, \ + long int: ngtcp2_fmt_hexw_long_int_init, \ + int: ngtcp2_fmt_hexw_int_init, \ + short int: ngtcp2_fmt_hexw_short_int_init, \ + signed char: ngtcp2_fmt_hexw_signed_char_init, \ + char: ngtcp2_fmt_hexw_char_init, \ + unsigned long long int: ngtcp2_fmt_hexw_init, \ + unsigned long int: ngtcp2_fmt_hexw_init, \ + unsigned int: ngtcp2_fmt_hexw_init, \ + unsigned short int: ngtcp2_fmt_hexw_init, \ + unsigned char: ngtcp2_fmt_hexw_init)((T), (WIDTH)) + +typedef struct ngtcp2_fmt_uint64w { + uint64_t n; + size_t width; +} ngtcp2_fmt_uint64w; + +/* uintw formats integral |n|. If the produced value has fewer + characters than |width|, it will be padded with 0 on the left. */ +static inline ngtcp2_fmt_uint64w uintw(uint64_t n, size_t width) { + return (ngtcp2_fmt_uint64w){ + .n = n, + .width = width, + }; +} + +typedef struct ngtcp2_fmt_bhex { + const uint8_t *data; + size_t len; +} ngtcp2_fmt_bhex; + +/* bhex formats the binary data [|data|, |data| + |len|) in + hexadecimal notation. */ +static inline ngtcp2_fmt_bhex bhex(const uint8_t *data, size_t len) { + return (ngtcp2_fmt_bhex){ + .data = data, + .len = len, + }; +} + +/* lbhex formats the binary data [|B|, |B| + sizeof(|B|)) in + hexadecimal notation. To make it work, |B| must be an array that + is not decayed to the pointer. */ +#define lbhex(B) bhex((B), sizeof(B)) + +typedef struct ngtcp2_fmt_printable_ascii { + const uint8_t *data; + size_t len; +} ngtcp2_fmt_printable_ascii; + +/* ascii formats the binary data [|data|, |data| + |len|) in such a + way that the printable ASCII characters are copied as is, and the + other characters are converted to '.'. */ +static inline ngtcp2_fmt_printable_ascii ascii(const uint8_t *data, + size_t len) { + return (ngtcp2_fmt_printable_ascii){ + .data = data, + .len = len, + }; +} + +#define ngtcp2_fmt_stringify(M) #M + +/* stringify converts macro |M| to string literal.*/ +#define stringify(M) ngtcp2_fmt_stringify(M) + +char *ngtcp2_fmt_write_int64(char *dest, int64_t n); +char *ngtcp2_fmt_write_uint64(char *dest, uint64_t n); +char *ngtcp2_fmt_write_char(char *dest, char c); +char *ngtcp2_fmt_write_str(char *dest, const char *s); +char *ngtcp2_fmt_write_uint64w(char *dest, ngtcp2_fmt_uint64w f); +char *ngtcp2_fmt_write_hex(char *dest, ngtcp2_fmt_hex f); +char *ngtcp2_fmt_write_hexw(char *dest, ngtcp2_fmt_hexw f); +char *ngtcp2_fmt_write_cid(char *dest, const ngtcp2_cid *cid); +char *ngtcp2_fmt_write_stateless_reset_token( + char *dest, const ngtcp2_stateless_reset_token *token); +char * +ngtcp2_fmt_write_path_challenge_data(char *dest, + const ngtcp2_path_challenge_data *data); +char *ngtcp2_fmt_write_bhex(char *dest, ngtcp2_fmt_bhex f); +char *ngtcp2_fmt_write_in_addr(char *dest, const ngtcp2_in_addr *addr); +char *ngtcp2_fmt_write_in6_addr(char *dest, const ngtcp2_in6_addr *addr); +char *ngtcp2_fmt_write_printable_ascii(char *dest, + const ngtcp2_fmt_printable_ascii f); + +#define NGTCP2_FMT_WRITE_TYPE(DEST, T) \ + _Generic((T), \ + long long int: ngtcp2_fmt_write_int64, \ + long int: ngtcp2_fmt_write_int64, \ + int: ngtcp2_fmt_write_int64, \ + short int: ngtcp2_fmt_write_int64, \ + signed char: ngtcp2_fmt_write_int64, \ + char: ngtcp2_fmt_write_char, \ + unsigned long long int: ngtcp2_fmt_write_uint64, \ + unsigned long int: ngtcp2_fmt_write_uint64, \ + unsigned int: ngtcp2_fmt_write_uint64, \ + unsigned short int: ngtcp2_fmt_write_uint64, \ + unsigned char: ngtcp2_fmt_write_uint64, \ + char *: ngtcp2_fmt_write_str, \ + const char *: ngtcp2_fmt_write_str, \ + ngtcp2_cid *: ngtcp2_fmt_write_cid, \ + const ngtcp2_cid *: ngtcp2_fmt_write_cid, \ + ngtcp2_stateless_reset_token *: ngtcp2_fmt_write_stateless_reset_token, \ + const ngtcp2_stateless_reset_token \ + *: ngtcp2_fmt_write_stateless_reset_token, \ + ngtcp2_path_challenge_data *: ngtcp2_fmt_write_path_challenge_data, \ + const ngtcp2_path_challenge_data *: ngtcp2_fmt_write_path_challenge_data, \ + ngtcp2_in_addr *: ngtcp2_fmt_write_in_addr, \ + const ngtcp2_in_addr *: ngtcp2_fmt_write_in_addr, \ + ngtcp2_in6_addr *: ngtcp2_fmt_write_in6_addr, \ + const ngtcp2_in6_addr *: ngtcp2_fmt_write_in6_addr, \ + ngtcp2_fmt_uint64w: ngtcp2_fmt_write_uint64w, \ + ngtcp2_fmt_hex: ngtcp2_fmt_write_hex, \ + ngtcp2_fmt_hexw: ngtcp2_fmt_write_hexw, \ + ngtcp2_fmt_bhex: ngtcp2_fmt_write_bhex, \ + ngtcp2_fmt_printable_ascii: ngtcp2_fmt_write_printable_ascii)((DEST), (T)) + +/* ngtcp2_fmt_format formats arguments and writes them into the buffer + pointed by |BUF|. It also writes the terminal NUL byte. The + function assumes that the buffer is the large enough. It assigns + the number of bytes written, excluding the terminal NUL, to + |*PNWRITE|. */ + +/* Generated by fmtgen.py */ +#define NGTCP2_FMT_SELECT_WRITE_PACK( \ + _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _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, _37, _38, _39, _40, PACK, ...) \ + PACK + +#define ngtcp2_fmt_format(BUF, PNWRITE, ...) \ + do { \ + char *fmt_destp = (char *)(BUF); \ + NGTCP2_FMT_SELECT_WRITE_PACK( \ + __VA_ARGS__, NGTCP2_FMT_WRITE_PACK_40, NGTCP2_FMT_WRITE_PACK_39, \ + NGTCP2_FMT_WRITE_PACK_38, NGTCP2_FMT_WRITE_PACK_37, \ + NGTCP2_FMT_WRITE_PACK_36, NGTCP2_FMT_WRITE_PACK_35, \ + NGTCP2_FMT_WRITE_PACK_34, NGTCP2_FMT_WRITE_PACK_33, \ + NGTCP2_FMT_WRITE_PACK_32, NGTCP2_FMT_WRITE_PACK_31, \ + NGTCP2_FMT_WRITE_PACK_30, NGTCP2_FMT_WRITE_PACK_29, \ + NGTCP2_FMT_WRITE_PACK_28, NGTCP2_FMT_WRITE_PACK_27, \ + NGTCP2_FMT_WRITE_PACK_26, NGTCP2_FMT_WRITE_PACK_25, \ + NGTCP2_FMT_WRITE_PACK_24, NGTCP2_FMT_WRITE_PACK_23, \ + NGTCP2_FMT_WRITE_PACK_22, NGTCP2_FMT_WRITE_PACK_21, \ + NGTCP2_FMT_WRITE_PACK_20, NGTCP2_FMT_WRITE_PACK_19, \ + NGTCP2_FMT_WRITE_PACK_18, NGTCP2_FMT_WRITE_PACK_17, \ + NGTCP2_FMT_WRITE_PACK_16, NGTCP2_FMT_WRITE_PACK_15, \ + NGTCP2_FMT_WRITE_PACK_14, NGTCP2_FMT_WRITE_PACK_13, \ + NGTCP2_FMT_WRITE_PACK_12, NGTCP2_FMT_WRITE_PACK_11, \ + NGTCP2_FMT_WRITE_PACK_10, NGTCP2_FMT_WRITE_PACK_9, \ + NGTCP2_FMT_WRITE_PACK_8, NGTCP2_FMT_WRITE_PACK_7, \ + NGTCP2_FMT_WRITE_PACK_6, NGTCP2_FMT_WRITE_PACK_5, \ + NGTCP2_FMT_WRITE_PACK_4, NGTCP2_FMT_WRITE_PACK_3, \ + NGTCP2_FMT_WRITE_PACK_2, \ + NGTCP2_FMT_WRITE_PACK_1)(fmt_destp, __VA_ARGS__); \ + *fmt_destp = '\0'; \ + *(PNWRITE) = (size_t)(fmt_destp - (char *)(BUF)); \ + } while (0) + +#define NGTCP2_FMT_WRITE_PACK_1(DEST, _1) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)) +#define NGTCP2_FMT_WRITE_PACK_2(DEST, _1, _2) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)) +#define NGTCP2_FMT_WRITE_PACK_3(DEST, _1, _2, _3) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)) +#define NGTCP2_FMT_WRITE_PACK_4(DEST, _1, _2, _3, _4) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)) +#define NGTCP2_FMT_WRITE_PACK_5(DEST, _1, _2, _3, _4, _5) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)) +#define NGTCP2_FMT_WRITE_PACK_6(DEST, _1, _2, _3, _4, _5, _6) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)) +#define NGTCP2_FMT_WRITE_PACK_7(DEST, _1, _2, _3, _4, _5, _6, _7) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)) +#define NGTCP2_FMT_WRITE_PACK_8(DEST, _1, _2, _3, _4, _5, _6, _7, _8) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)) +#define NGTCP2_FMT_WRITE_PACK_9(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)) +#define NGTCP2_FMT_WRITE_PACK_10(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)) +#define NGTCP2_FMT_WRITE_PACK_11(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)) +#define NGTCP2_FMT_WRITE_PACK_12(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)) +#define NGTCP2_FMT_WRITE_PACK_13(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)) +#define NGTCP2_FMT_WRITE_PACK_14(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)) +#define NGTCP2_FMT_WRITE_PACK_15(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)) +#define NGTCP2_FMT_WRITE_PACK_16(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)) +#define NGTCP2_FMT_WRITE_PACK_17(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)) +#define NGTCP2_FMT_WRITE_PACK_18(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)) +#define NGTCP2_FMT_WRITE_PACK_19(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)) +#define NGTCP2_FMT_WRITE_PACK_20(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)) +#define NGTCP2_FMT_WRITE_PACK_21(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20, _21) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)) +#define NGTCP2_FMT_WRITE_PACK_22(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20, _21, _22) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)) +#define NGTCP2_FMT_WRITE_PACK_23(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20, _21, _22, _23) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)) +#define NGTCP2_FMT_WRITE_PACK_24(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20, _21, _22, _23, _24) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)) +#define NGTCP2_FMT_WRITE_PACK_25(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20, _21, _22, _23, _24, _25) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)) +#define NGTCP2_FMT_WRITE_PACK_26(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20, _21, _22, _23, _24, _25, _26) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)) +#define NGTCP2_FMT_WRITE_PACK_27(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20, _21, _22, _23, _24, _25, _26, _27) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)) +#define NGTCP2_FMT_WRITE_PACK_28( \ + DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, \ + _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)) +#define NGTCP2_FMT_WRITE_PACK_29( \ + DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, \ + _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)) +#define NGTCP2_FMT_WRITE_PACK_30( \ + DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, \ + _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_30)) +#define NGTCP2_FMT_WRITE_PACK_31( \ + DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, \ + _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_30)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_31)) +#define NGTCP2_FMT_WRITE_PACK_32(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20, _21, _22, _23, _24, _25, _26, _27, \ + _28, _29, _30, _31, _32) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_30)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_31)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_32)) +#define NGTCP2_FMT_WRITE_PACK_33(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20, _21, _22, _23, _24, _25, _26, _27, \ + _28, _29, _30, _31, _32, _33) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_30)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_31)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_32)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_33)) +#define NGTCP2_FMT_WRITE_PACK_34(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20, _21, _22, _23, _24, _25, _26, _27, \ + _28, _29, _30, _31, _32, _33, _34) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_30)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_31)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_32)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_33)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_34)) +#define NGTCP2_FMT_WRITE_PACK_35(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _12, _13, _14, _15, _16, _17, _18, \ + _19, _20, _21, _22, _23, _24, _25, _26, _27, \ + _28, _29, _30, _31, _32, _33, _34, _35) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_30)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_31)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_32)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_33)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_34)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_35)) +#define NGTCP2_FMT_WRITE_PACK_36(DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, \ + _10, _11, _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) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_30)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_31)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_32)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_33)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_34)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_35)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_36)) +#define NGTCP2_FMT_WRITE_PACK_37( \ + DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _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, _37) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_30)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_31)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_32)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_33)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_34)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_35)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_36)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_37)) +#define NGTCP2_FMT_WRITE_PACK_38( \ + DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _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, _37, _38) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_30)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_31)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_32)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_33)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_34)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_35)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_36)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_37)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_38)) +#define NGTCP2_FMT_WRITE_PACK_39( \ + DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _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, _37, _38, _39) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_30)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_31)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_32)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_33)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_34)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_35)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_36)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_37)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_38)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_39)) +#define NGTCP2_FMT_WRITE_PACK_40( \ + DEST, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _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, _37, _38, _39, _40) \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_1)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_2)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_3)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_4)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_5)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_6)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_7)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_8)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_9)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_10)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_11)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_12)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_13)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_14)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_15)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_16)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_17)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_18)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_19)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_20)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_21)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_22)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_23)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_24)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_25)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_26)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_27)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_28)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_29)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_30)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_31)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_32)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_33)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_34)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_35)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_36)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_37)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_38)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_39)); \ + (DEST) = NGTCP2_FMT_WRITE_TYPE((DEST), (_40)) + +#endif /* !defined(NGTCP2_FMT_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h index c73100dbcb..4b3c300060 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_frame_chain.h @@ -71,10 +71,10 @@ int ngtcp2_frame_chain_binder_new(ngtcp2_frame_chain_binder **pbinder, (NGTCP2_FRAME_CHAIN_STREAM_DATACNT_THRES * sizeof(ngtcp2_vec)) /* NGTCP2_FRAME_CHAIN_FLAG_NONE indicates no flag is set. */ -#define NGTCP2_FRAME_CHAIN_FLAG_NONE 0x0 +#define NGTCP2_FRAME_CHAIN_FLAG_NONE 0x0U /* NGTCP2_FRAME_CHAIN_FLAG_MALLOC indicates that ngtcp2_frame_chain is allocated by ngtcp2_mem_malloc. */ -#define NGTCP2_FRAME_CHAIN_FLAG_MALLOC 0x1 +#define NGTCP2_FRAME_CHAIN_FLAG_MALLOC 0x1U typedef struct ngtcp2_frame_chain ngtcp2_frame_chain; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c index 267bd07225..a2ec5ffa37 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_gaptr.c @@ -35,11 +35,11 @@ void ngtcp2_gaptr_init(ngtcp2_gaptr *gaptr, const ngtcp2_mem *mem) { } static int gaptr_gap_init(ngtcp2_gaptr *gaptr) { - return ngtcp2_ksl_insert(&gaptr->gap, NULL, - &(ngtcp2_range){ - .end = UINT64_MAX, - }, - NULL); + static const ngtcp2_range end = { + .end = UINT64_MAX, + }; + + return ngtcp2_ksl_insert(&gaptr->gap, NULL, &end, NULL); } void ngtcp2_gaptr_free(ngtcp2_gaptr *gaptr) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c index 80000f42f9..b88985234e 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.c @@ -55,13 +55,12 @@ void ngtcp2_ksl_init(ngtcp2_ksl *ksl, ngtcp2_ksl_compar compar, assert(keylen >= sizeof(uint64_t)); - aligned_keylen = (keylen + 0x7U) & ~0x7U; + aligned_keylen = (keylen + 0x7U) & ~(size_t)0x7U; assert(aligned_keylen <= UINT16_MAX); - ngtcp2_objalloc_init(&ksl->blkalloc, - (ksl_blklen(aligned_keylen) + 0xFU) & ~(uintptr_t)0xFU, - mem); + ngtcp2_objalloc_init( + &ksl->blkalloc, (ksl_blklen(aligned_keylen) + 0xFU) & ~(size_t)0xFU, mem); ksl->root = NULL; ksl->front = ksl->back = NULL; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h index 8024a360cd..9ef201a8db 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ksl.h @@ -382,8 +382,8 @@ static inline int ngtcp2_ksl_range_exclusive_compar(const ngtcp2_ksl_key *lhs, const ngtcp2_ksl_key *rhs) { const ngtcp2_range *a = (const ngtcp2_range *)lhs, *b = (const ngtcp2_range *)rhs; - return a->begin < b->begin && !(ngtcp2_max_uint64(a->begin, b->begin) < - ngtcp2_min_uint64(a->end, b->end)); + return a->begin < b->begin && + !(ngtcp2_max(a->begin, b->begin) < ngtcp2_min(a->end, b->end)); } /* diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c index 191c64430b..51a9d70d13 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.c @@ -39,17 +39,19 @@ #include "ngtcp2_net.h" void ngtcp2_log_init(ngtcp2_log *log, const ngtcp2_cid *scid, - ngtcp2_printf log_printf, ngtcp2_tstamp ts, - void *user_data) { + ngtcp2_log_write log_write, ngtcp2_printf log_printf, + char *buf, ngtcp2_tstamp ts, void *user_data) { if (scid) { - ngtcp2_encode_hex_cstr(log->scid, scid->data, scid->datalen); + *ngtcp2_encode_hex((uint8_t *)log->scid, scid->data, scid->datalen) = '\0'; } else { log->scid[0] = '\0'; } + log->log_write = log_write; log->log_printf = log_printf; log->events = 0xFF; log->ts = log->last_ts = ts; log->user_data = user_data; + log->buf = buf; } /* @@ -90,10 +92,9 @@ void ngtcp2_log_init(ngtcp2_log *log, const ngtcp2_cid *scid, * Frame type in hex string. */ -#define NGTCP2_LOG_PKT "%s %" PRId64 " %s" #define NGTCP2_LOG_TP "remote transport_parameters" -#define NGTCP2_LOG_PKT_HD_FIELDS(DIR) (DIR), hd->pkt_num, strpkttype(hd) +#define NGTCP2_LOG_PKT(DIR, HD) (DIR), " ", (HD)->pkt_num, " ", strpkttype((HD)) static const char *strerrorcode(uint64_t error_code) { switch (error_code) { @@ -177,12 +178,10 @@ static const char *strpkttype_type_flags(uint8_t type, uint8_t flags) { static void log_fr_stream(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_stream *fr, const char *dir) { ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " STREAM(0x%02" PRIx64 ") id=0x%" PRIx64 - " fin=%d offset=%" PRIu64 " len=%" PRIu64 " uni=%d", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type | fr->flags, fr->stream_id, fr->fin, - fr->offset, ngtcp2_vec_len(fr->data, fr->datacnt), - (fr->stream_id & 0x2) != 0); + log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), " STREAM(0x", + hex(fr->type | fr->flags), ") id=0x", hex(fr->stream_id), " fin=", fr->fin, + " offset=", fr->offset, " len=", ngtcp2_vec_len(fr->data, fr->datacnt), + " uni=", (fr->stream_id & 0x2) != 0); } static void log_fr_ack(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -191,246 +190,198 @@ static void log_fr_ack(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, size_t i; ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") largest_ack=%" PRId64 - " ack_delay=%" PRIu64 "(%" PRIu64 ") ack_range_count=%zu", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->largest_ack, - fr->ack_delay_unscaled / NGTCP2_MILLISECONDS, fr->ack_delay, fr->rangecnt); + log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), " ACK(0x", + hex(fr->type), ") largest_ack=", fr->largest_ack, + " ack_delay=", fr->ack_delay_unscaled / NGTCP2_MILLISECONDS, "(", + fr->ack_delay, ") ack_range_count=", fr->rangecnt); largest_ack = fr->largest_ack; min_ack = fr->largest_ack - (int64_t)fr->first_ack_range; - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") range=[%" PRId64 - "..%" PRId64 "] len=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, largest_ack, - min_ack, fr->first_ack_range); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " ACK(0x", hex(fr->type), ") range=[", largest_ack, "..", + min_ack, "] len=", fr->first_ack_range); for (i = 0; i < fr->rangecnt; ++i) { const ngtcp2_ack_range *range = &fr->ranges[i]; largest_ack = min_ack - (int64_t)range->gap - 2; min_ack = largest_ack - (int64_t)range->len; - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") range=[%" PRId64 - "..%" PRId64 "] gap=%" PRIu64 - " len=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, largest_ack, - min_ack, range->gap, range->len); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " ACK(0x", hex(fr->type), ") range=[", largest_ack, + "..", min_ack, "] gap=", range->gap, + " len=", range->len); } if (fr->type == NGTCP2_FRAME_ACK_ECN) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " ACK(0x%02" PRIx64 ") ect0=%" PRIu64 - " ect1=%" PRIu64 " ce=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->ecn.ect0, - fr->ecn.ect1, fr->ecn.ce); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " ACK(0x", hex(fr->type), ") ect0=", fr->ecn.ect0, + " ect1=", fr->ecn.ect1, " ce=", fr->ecn.ce); } } static void log_fr_padding(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_padding *fr, const char *dir) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " PADDING(0x%02" PRIx64 ") len=%zu", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->len); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " PADDING(0x", hex(fr->type), ") len=", fr->len); } static void log_fr_reset_stream(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_reset_stream *fr, const char *dir) { ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " RESET_STREAM(0x%02" PRIx64 ") id=0x%" PRIx64 - " app_error_code=%s(0x%" PRIx64 ") final_size=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->stream_id, - strapperrorcode(fr->app_error_code), fr->app_error_code, fr->final_size); + log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), " RESET_STREAM(0x", + hex(fr->type), ") id=0x", hex(fr->stream_id), + " app_error_code=", strapperrorcode(fr->app_error_code), "(0x", + hex(fr->app_error_code), ") final_size=", fr->final_size); } static void log_fr_connection_close(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_connection_close *fr, const char *dir) { - char reason[256]; - size_t reasonlen = ngtcp2_min_size(sizeof(reason) - 1, fr->reasonlen); + size_t reasonlen = ngtcp2_min(64, fr->reasonlen); - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " CONNECTION_CLOSE(0x%02" PRIx64 ") error_code=%s(0x%" PRIx64 - ") " - "frame_type=0x%" PRIx64 " reason_len=%zu reason=[%s]", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, - fr->type == NGTCP2_FRAME_CONNECTION_CLOSE ? strerrorcode(fr->error_code) - : strapperrorcode(fr->error_code), - fr->error_code, fr->frame_type, fr->reasonlen, - ngtcp2_encode_printable_ascii_cstr(reason, fr->reason, reasonlen)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " CONNECTION_CLOSE(0x", hex(fr->type), ") error_code=", + fr->type == NGTCP2_FRAME_CONNECTION_CLOSE + ? strerrorcode(fr->error_code) + : strapperrorcode(fr->error_code), + "(0x", hex(fr->error_code), ") frame_type=0x", + hex(fr->frame_type), " reason_len=", fr->reasonlen, + " reason=[", ascii(fr->reason, reasonlen), "]"); } static void log_fr_max_data(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_max_data *fr, const char *dir) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " MAX_DATA(0x%02" PRIx64 - ") max_data=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->max_data); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " MAX_DATA(0x", hex(fr->type), + ") max_data=", fr->max_data); } static void log_fr_max_stream_data(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_max_stream_data *fr, const char *dir) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " MAX_STREAM_DATA(0x%02" PRIx64 - ") id=0x%" PRIx64 - " max_stream_data=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->stream_id, - fr->max_stream_data); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " MAX_STREAM_DATA(0x", hex(fr->type), ") id=0x", + hex(fr->stream_id), + " max_stream_data=", fr->max_stream_data); } static void log_fr_max_streams(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_max_streams *fr, const char *dir) { - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " MAX_STREAMS(0x%02" PRIx64 ") max_streams=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->max_streams); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " MAX_STREAMS(0x", hex(fr->type), + ") max_streams=", fr->max_streams); } static void log_fr_ping(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_ping *fr, const char *dir) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " PING(0x%02" PRIx64 ")", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " PING(0x", hex(fr->type), ")"); } static void log_fr_data_blocked(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_data_blocked *fr, const char *dir) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " DATA_BLOCKED(0x%02" PRIx64 - ") offset=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->offset); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " DATA_BLOCKED(0x", hex(fr->type), + ") offset=", fr->offset); } static void log_fr_stream_data_blocked(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_stream_data_blocked *fr, const char *dir) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " STREAM_DATA_BLOCKED(0x%02" PRIx64 - ") id=0x%" PRIx64 " offset=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->stream_id, - fr->offset); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " STREAM_DATA_BLOCKED(0x", hex(fr->type), ") id=0x", + hex(fr->stream_id), " offset=", fr->offset); } static void log_fr_streams_blocked(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_streams_blocked *fr, const char *dir) { - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " STREAMS_BLOCKED(0x%02" PRIx64 ") max_streams=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->max_streams); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " STREAMS_BLOCKED(0x", hex(fr->type), + ") max_streams=", fr->max_streams); } static void log_fr_new_connection_id(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_new_connection_id *fr, const char *dir) { - char buf[sizeof(fr->token.data) * 2 + 1]; - char cid[sizeof(fr->cid.data) * 2 + 1]; - - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " NEW_CONNECTION_ID(0x%02" PRIx64 ") seq=%" PRIu64 - " cid=0x%s retire_prior_to=%" PRIu64 - " stateless_reset_token=0x%s", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->seq, - ngtcp2_encode_hex_cstr(cid, fr->cid.data, fr->cid.datalen), - fr->retire_prior_to, - ngtcp2_encode_hex_cstr(buf, fr->token.data, sizeof(fr->token.data))); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " NEW_CONNECTION_ID(0x", hex(fr->type), + ") seq=", fr->seq, " cid=0x", &fr->cid, + " retire_prior_to=", fr->retire_prior_to, + " stateless_reset_token=0x", &fr->token); } static void log_fr_stop_sending(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_stop_sending *fr, const char *dir) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " STOP_SENDING(0x%02" PRIx64 - ") id=0x%" PRIx64 - " app_error_code=%s(0x%" PRIx64 ")", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->stream_id, - strapperrorcode(fr->app_error_code), fr->app_error_code); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " STOP_SENDING(0x", hex(fr->type), ") id=0x", + hex(fr->stream_id), + " app_error_code=", strapperrorcode(fr->app_error_code), + "(0x", hex(fr->app_error_code), ")"); } static void log_fr_path_challenge(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_path_challenge *fr, const char *dir) { - char buf[sizeof(fr->data.data) * 2 + 1]; - - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " PATH_CHALLENGE(0x%02" PRIx64 ") data=0x%s", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, - ngtcp2_encode_hex_cstr(buf, fr->data.data, sizeof(fr->data.data))); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " PATH_CHALLENGE(0x", hex(fr->type), ") data=0x", + &fr->data); } static void log_fr_path_response(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_path_response *fr, const char *dir) { - char buf[sizeof(fr->data.data) * 2 + 1]; - - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " PATH_RESPONSE(0x%02" PRIx64 ") data=0x%s", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, - ngtcp2_encode_hex_cstr(buf, fr->data.data, sizeof(fr->data.data))); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " PATH_RESPONSE(0x", hex(fr->type), ") data=0x", + &fr->data); } static void log_fr_crypto(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_stream *fr, const char *dir) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " CRYPTO(0x%02" PRIx64 ") offset=%" PRIu64 - " len=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->offset, - ngtcp2_vec_len(fr->data, fr->datacnt)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " CRYPTO(0x", hex(fr->type), ") offset=", fr->offset, + " len=", ngtcp2_vec_len(fr->data, fr->datacnt)); } +#define NGTCP2_LOG_MAX_TOKENLEN 64 + static void log_fr_new_token(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_new_token *fr, const char *dir) { - /* Show at most first 64 bytes of token. If token is longer than 64 - bytes, log first 64 bytes and then append "*" */ - char buf[128 + 1 + 1]; - char *p; - - if (fr->tokenlen > 64) { - p = ngtcp2_encode_hex_cstr(buf, fr->token, 64); - p[128] = '*'; - p[129] = '\0'; - } else { - p = ngtcp2_encode_hex_cstr(buf, fr->token, fr->tokenlen); - } + /* Show at most first NGTCP2_LOG_MAX_TOKENLEN bytes of token. If + token is longer than that, log first those bytes and then append + "*" */ + size_t tokenlen = ngtcp2_min(fr->tokenlen, NGTCP2_LOG_MAX_TOKENLEN); ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " NEW_TOKEN(0x%02" PRIx64 ") token=0x%s len=%zu", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, p, fr->tokenlen); + log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), " NEW_TOKEN(0x", + hex(fr->type), ") token=0x", bhex(fr->token, tokenlen), + fr->tokenlen > NGTCP2_LOG_MAX_TOKENLEN ? "*" : "", " len=", fr->tokenlen); } static void log_fr_retire_connection_id(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_retire_connection_id *fr, const char *dir) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " RETIRE_CONNECTION_ID(0x%02" PRIx64 - ") seq=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, fr->seq); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " RETIRE_CONNECTION_ID(0x", hex(fr->type), + ") seq=", fr->seq); } static void log_fr_handshake_done(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_handshake_done *fr, const char *dir) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " HANDSHAKE_DONE(0x%02" PRIx64 ")", - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " HANDSHAKE_DONE(0x", hex(fr->type), ")"); } static void log_fr_datagram(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_datagram *fr, const char *dir) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, - NGTCP2_LOG_PKT " DATAGRAM(0x%02" PRIx64 ") len=%" PRIu64, - NGTCP2_LOG_PKT_HD_FIELDS(dir), fr->type, - ngtcp2_vec_len(fr->data, fr->datacnt)); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_FRM, NGTCP2_LOG_PKT(dir, hd), + " DATAGRAM(0x", hex(fr->type), + ") len=", ngtcp2_vec_len(fr->data, fr->datacnt)); } static void log_fr(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, @@ -511,7 +462,8 @@ static void log_fr(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, void ngtcp2_log_rx_fr(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_frame *fr) { - if (!log->log_printf || !(log->events & NGTCP2_LOG_EVENT_FRM)) { + if ((!log->log_write && !log->log_printf) || + !(log->events & NGTCP2_LOG_EVENT_FRM)) { return; } @@ -520,7 +472,8 @@ void ngtcp2_log_rx_fr(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, void ngtcp2_log_tx_fr(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_frame *fr) { - if (!log->log_printf || !(log->events & NGTCP2_LOG_EVENT_FRM)) { + if ((!log->log_write && !log->log_printf) || + !(log->events & NGTCP2_LOG_EVENT_FRM)) { return; } @@ -531,56 +484,50 @@ void ngtcp2_log_rx_vn(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const uint32_t *sv, size_t nsv) { size_t i; - if (!log->log_printf || !(log->events & NGTCP2_LOG_EVENT_PKT)) { + if ((!log->log_write && !log->log_printf) || + !(log->events & NGTCP2_LOG_EVENT_PKT)) { return; } for (i = 0; i < nsv; ++i) { - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_PKT, NGTCP2_LOG_PKT " v=0x%08x", - NGTCP2_LOG_PKT_HD_FIELDS("rx"), sv[i]); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_PKT, NGTCP2_LOG_PKT("rx", hd), + " v=0x", hexw(sv[i], 8)); } } void ngtcp2_log_rx_sr(ngtcp2_log *log, const ngtcp2_pkt_stateless_reset2 *sr) { - char buf[sizeof(sr->token.data) * 2 + 1]; - ngtcp2_pkt_hd shd; - ngtcp2_pkt_hd *hd = &shd; + ngtcp2_pkt_hd hd; - if (!log->log_printf || !(log->events & NGTCP2_LOG_EVENT_PKT)) { + if ((!log->log_write && !log->log_printf) || + !(log->events & NGTCP2_LOG_EVENT_PKT)) { return; } - shd = (ngtcp2_pkt_hd){ + hd = (ngtcp2_pkt_hd){ .type = NGTCP2_PKT_STATELESS_RESET, }; - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_PKT, NGTCP2_LOG_PKT " token=0x%s randlen=%zu", - NGTCP2_LOG_PKT_HD_FIELDS("rx"), - ngtcp2_encode_hex_cstr(buf, sr->token.data, sizeof(sr->token.data)), - sr->randlen); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_PKT, NGTCP2_LOG_PKT("rx", &hd), + " token=0x", &sr->token, " randlen=", sr->randlen); } void ngtcp2_log_remote_tp(ngtcp2_log *log, const ngtcp2_transport_params *params) { - char token[sizeof(params->stateless_reset_token) * 2 + 1]; - char addr[16 * 2 + 7 + 1]; - char cid[NGTCP2_MAX_CIDLEN * 2 + 1]; size_t i; const ngtcp2_sockaddr_in *sa_in; const ngtcp2_sockaddr_in6 *sa_in6; const uint8_t *p; uint32_t version; - if (!log->log_printf || !(log->events & NGTCP2_LOG_EVENT_CRY)) { + if ((!log->log_write && !log->log_printf) || + !(log->events & NGTCP2_LOG_EVENT_CRY)) { return; } if (params->stateless_reset_token_present) { - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_CRY, NGTCP2_LOG_TP " stateless_reset_token=0x%s", - ngtcp2_encode_hex_cstr(token, params->stateless_reset_token, - sizeof(params->stateless_reset_token))); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " stateless_reset_token=0x", + lbhex(params->stateless_reset_token)); } if (params->preferred_addr_present) { @@ -589,10 +536,9 @@ void ngtcp2_log_remote_tp(ngtcp2_log *log, ngtcp2_log_infof_raw( log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " preferred_address.ipv4_addr=%s", - ngtcp2_encode_ipv4_cstr(addr, (const uint8_t *)&sa_in->sin_addr)); + NGTCP2_LOG_TP " preferred_address.ipv4_addr=", &sa_in->sin_addr); ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " preferred_address.ipv4_port=%u", + NGTCP2_LOG_TP " preferred_address.ipv4_port=", ngtcp2_ntohs(sa_in->sin_port)); } @@ -601,97 +547,86 @@ void ngtcp2_log_remote_tp(ngtcp2_log *log, ngtcp2_log_infof_raw( log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " preferred_address.ipv6_addr=%s", - ngtcp2_encode_ipv6_cstr(addr, (const uint8_t *)&sa_in6->sin6_addr)); + NGTCP2_LOG_TP " preferred_address.ipv6_addr=", &sa_in6->sin6_addr); ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " preferred_address.ipv6_port=%u", + NGTCP2_LOG_TP " preferred_address.ipv6_port=", ngtcp2_ntohs(sa_in6->sin6_port)); } - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_CRY, NGTCP2_LOG_TP " preferred_address.cid=0x%s", - ngtcp2_encode_hex_cstr(cid, params->preferred_addr.cid.data, - params->preferred_addr.cid.datalen)); - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " preferred_address.stateless_reset_token=0x%s", - ngtcp2_encode_hex_cstr( - token, params->preferred_addr.stateless_reset_token, - sizeof(params->preferred_addr.stateless_reset_token))); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " preferred_address.cid=0x", + ¶ms->preferred_addr.cid); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP + " preferred_address.stateless_reset_token=0x", + lbhex(params->preferred_addr.stateless_reset_token)); } if (params->original_dcid_present) { ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP - " original_destination_connection_id=0x%s", - ngtcp2_encode_hex_cstr(cid, params->original_dcid.data, - params->original_dcid.datalen)); + NGTCP2_LOG_TP " original_destination_connection_id=0x", + ¶ms->original_dcid); } if (params->retry_scid_present) { ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " retry_source_connection_id=0x%s", - ngtcp2_encode_hex_cstr(cid, params->retry_scid.data, - params->retry_scid.datalen)); + NGTCP2_LOG_TP " retry_source_connection_id=0x", + ¶ms->retry_scid); } if (params->initial_scid_present) { ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " initial_source_connection_id=0x%s", - ngtcp2_encode_hex_cstr(cid, params->initial_scid.data, - params->initial_scid.datalen)); + NGTCP2_LOG_TP " initial_source_connection_id=0x", + ¶ms->initial_scid); } ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP - " initial_max_stream_data_bidi_local=%" PRIu64, + NGTCP2_LOG_TP " initial_max_stream_data_bidi_local=", params->initial_max_stream_data_bidi_local); ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP - " initial_max_stream_data_bidi_remote=%" PRIu64, + NGTCP2_LOG_TP " initial_max_stream_data_bidi_remote=", params->initial_max_stream_data_bidi_remote); ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " initial_max_stream_data_uni=%" PRIu64, + NGTCP2_LOG_TP " initial_max_stream_data_uni=", params->initial_max_stream_data_uni); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " initial_max_data=", params->initial_max_data); ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " initial_max_data=%" PRIu64, - params->initial_max_data); - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " initial_max_streams_bidi=%" PRIu64, + NGTCP2_LOG_TP " initial_max_streams_bidi=", params->initial_max_streams_bidi); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " initial_max_streams_uni=", params->initial_max_streams_uni); ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " initial_max_streams_uni=%" PRIu64, - params->initial_max_streams_uni); - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " max_idle_timeout=%" PRIu64, + NGTCP2_LOG_TP " max_idle_timeout=", params->max_idle_timeout / NGTCP2_MILLISECONDS); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " max_udp_payload_size=", params->max_udp_payload_size); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " ack_delay_exponent=", params->ack_delay_exponent); ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " max_udp_payload_size=%" PRIu64, - params->max_udp_payload_size); - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " ack_delay_exponent=%" PRIu64, - params->ack_delay_exponent); - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " max_ack_delay=%" PRIu64, + NGTCP2_LOG_TP " max_ack_delay=", params->max_ack_delay / NGTCP2_MILLISECONDS); ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " active_connection_id_limit=%" PRIu64, + NGTCP2_LOG_TP " active_connection_id_limit=", params->active_connection_id_limit); ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " disable_active_migration=%d", + NGTCP2_LOG_TP " disable_active_migration=", params->disable_active_migration); - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " max_datagram_frame_size=%" PRIu64, - params->max_datagram_frame_size); - ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " grease_quic_bit=%d", - params->grease_quic_bit); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " max_datagram_frame_size=", params->max_datagram_frame_size); + ngtcp2_log_infof_raw( + log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP " grease_quic_bit=", params->grease_quic_bit); if (params->version_info_present) { ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP - " version_information.chosen_version=0x%08x", - params->version_info.chosen_version); + NGTCP2_LOG_TP " version_information.chosen_version=0x", + hexw(params->version_info.chosen_version, 8)); assert(!(params->version_info.available_versionslen & 0x3)); @@ -700,48 +635,42 @@ void ngtcp2_log_remote_tp(ngtcp2_log *log, i += sizeof(uint32_t)) { p = ngtcp2_get_uint32be(&version, p); - ngtcp2_log_infof_raw( - log, NGTCP2_LOG_EVENT_CRY, - NGTCP2_LOG_TP " version_information.available_versions[%zu]=0x%08x", - i >> 2, version); + ngtcp2_log_infof_raw(log, NGTCP2_LOG_EVENT_CRY, + NGTCP2_LOG_TP + " version_information.available_versions[", + i >> 2, "]=0x", hexw(version, 8)); } } } void ngtcp2_log_pkt_lost(ngtcp2_log *log, int64_t pkt_num, uint8_t type, uint8_t flags, ngtcp2_tstamp sent_ts) { - if (!log->log_printf || !(log->events & NGTCP2_LOG_EVENT_LDC)) { + if ((!log->log_write && !log->log_printf) || + !(log->events & NGTCP2_LOG_EVENT_LDC)) { return; } - ngtcp2_log_infof(log, NGTCP2_LOG_EVENT_LDC, - "pkn=%" PRId64 " lost type=%s sent_ts=%" PRIu64, pkt_num, - strpkttype_type_flags(type, flags), sent_ts); + ngtcp2_log_infof(log, NGTCP2_LOG_EVENT_LDC, "pkn=", pkt_num, + " lost type=", strpkttype_type_flags(type, flags), + " sent_ts=", sent_ts); } static void log_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const char *dir) { - char dcid[sizeof(hd->dcid.data) * 2 + 1]; - char scid[sizeof(hd->scid.data) * 2 + 1]; - - if (!log->log_printf || !(log->events & NGTCP2_LOG_EVENT_PKT)) { + if ((!log->log_write && !log->log_printf) || + !(log->events & NGTCP2_LOG_EVENT_PKT)) { return; } if (hd->type == NGTCP2_PKT_1RTT) { - ngtcp2_log_infof( - log, NGTCP2_LOG_EVENT_PKT, "%s pkn=%" PRId64 " dcid=0x%s type=%s k=%d", - dir, hd->pkt_num, - ngtcp2_encode_hex_cstr(dcid, hd->dcid.data, hd->dcid.datalen), - strpkttype(hd), (hd->flags & NGTCP2_PKT_FLAG_KEY_PHASE) != 0); + ngtcp2_log_infof(log, NGTCP2_LOG_EVENT_PKT, dir, " pkn=", hd->pkt_num, + " dcid=0x", &hd->dcid, " type=", strpkttype(hd), + " k=", (hd->flags & NGTCP2_PKT_FLAG_KEY_PHASE) != 0); } else { - ngtcp2_log_infof( - log, NGTCP2_LOG_EVENT_PKT, - "%s pkn=%" PRId64 " dcid=0x%s scid=0x%s version=0x%08x type=%s len=%zu", - dir, hd->pkt_num, - ngtcp2_encode_hex_cstr(dcid, hd->dcid.data, hd->dcid.datalen), - ngtcp2_encode_hex_cstr(scid, hd->scid.data, hd->scid.datalen), - hd->version, strpkttype(hd), hd->len); + ngtcp2_log_infof(log, NGTCP2_LOG_EVENT_PKT, dir, " pkn=", hd->pkt_num, + " dcid=0x", &hd->dcid, " scid=0x", &hd->scid, + " version=0x", hexw(hd->version, 8), + " type=", strpkttype(hd), " len=", hd->len); } } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h index b8bccb9d09..c014cea198 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_log.h @@ -32,8 +32,12 @@ #include #include "ngtcp2_pkt.h" +#include "ngtcp2_fmt.h" + +#define NGTCP2_LOG_BUFLEN 1024 typedef struct ngtcp2_log { + ngtcp2_log_write log_write; /* log_printf is a sink to write log. NULL means no logging output. */ ngtcp2_printf log_printf; @@ -50,6 +54,7 @@ typedef struct ngtcp2_log { void *user_data; /* scid is SCID encoded as NULL-terminated hex string. */ char scid[NGTCP2_MAX_CIDLEN * 2 + 1]; + char *buf; } ngtcp2_log; /** @@ -96,8 +101,8 @@ typedef enum ngtcp2_log_event { } ngtcp2_log_event; void ngtcp2_log_init(ngtcp2_log *log, const ngtcp2_cid *scid, - ngtcp2_printf log_printf, ngtcp2_tstamp ts, - void *user_data); + ngtcp2_log_write log_write, ngtcp2_printf log_printf, + char *buf, ngtcp2_tstamp ts, void *user_data); void ngtcp2_log_rx_fr(ngtcp2_log *log, const ngtcp2_pkt_hd *hd, const ngtcp2_frame *fr); @@ -119,8 +124,6 @@ void ngtcp2_log_rx_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd); void ngtcp2_log_tx_pkt_hd(ngtcp2_log *log, const ngtcp2_pkt_hd *hd); -#define NGTCP2_LOG_HD "I%08" PRIu64 " 0x%s %s" - uint64_t ngtcp2_log_timestamp(const ngtcp2_log *log); static inline const char *ngtcp2_log_event_str(ngtcp2_log_event ev) { @@ -145,45 +148,33 @@ static inline const char *ngtcp2_log_event_str(ngtcp2_log_event ev) { } } -#define ngtcp2_log_infof_raw(LOG, EV, FMT, ...) \ - (LOG)->log_printf((LOG)->user_data, NGTCP2_LOG_HD " " FMT, \ - ngtcp2_log_timestamp(LOG), (LOG)->scid, \ - ngtcp2_log_event_str(EV), __VA_ARGS__); +#define NGTCP2_LOG_HD(LOG, EV) \ + "I", uintw(ngtcp2_log_timestamp(LOG), 8), " 0x", (LOG)->scid, " ", \ + ngtcp2_log_event_str(EV), " " -/** - * @function - * - * `ngtcp2_log_infof` writes info level log with printf like - * formatting. - */ -#define ngtcp2_log_infof(LOG, EV, FMT, ...) \ +#define ngtcp2_log_infof_raw(LOG, EV, ...) \ do { \ - if (!(LOG)->log_printf || !((LOG)->events & (EV))) { \ - break; \ - } \ + size_t log_nwrite; \ \ - ngtcp2_log_infof_raw((LOG), (EV), FMT, __VA_ARGS__); \ + ngtcp2_fmt_format((LOG)->buf, &log_nwrite, NGTCP2_LOG_HD((LOG), (EV)), \ + __VA_ARGS__); \ + if ((LOG)->log_write) { \ + (LOG)->log_write((LOG)->user_data, (LOG)->buf, log_nwrite); \ + } else { \ + (LOG)->log_printf((LOG)->user_data, "%s", (LOG)->buf); \ + } \ } while (0) -#define ngtcp2_log_info_raw(LOG, EV, FMT) \ - (LOG)->log_printf((LOG)->user_data, NGTCP2_LOG_HD " " FMT, \ - ngtcp2_log_timestamp(LOG), (LOG)->scid, \ - ngtcp2_log_event_str(EV)) - -/** - * @function - * - * `ngtcp2_log_info` writes info level log. FMT should not contain - * formatting directive. This function exists to workaround the issue - * that __VA_ARGS__ cannot be empty. - */ -#define ngtcp2_log_info(LOG, EV, FMT) \ +#define ngtcp2_log_infof(LOG, EV, ...) \ do { \ - if (!(LOG)->log_printf || !((LOG)->events & (EV))) { \ + if ((!(LOG)->log_write && !(LOG)->log_printf) || \ + !((LOG)->events & (EV))) { \ break; \ } \ \ - ngtcp2_log_info_raw((LOG), (EV), FMT); \ + ngtcp2_log_infof_raw((LOG), (EV), __VA_ARGS__); \ } while (0) +#define ngtcp2_log_info(LOG, EV, ARG) ngtcp2_log_infof((LOG), (EV), (ARG)) + #endif /* !defined(NGTCP2_LOG_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h index 12cba12719..ea98c9e127 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_macro.h @@ -62,27 +62,81 @@ #define ngtcp2_max_def(SUFFIX, T) \ static inline T ngtcp2_max_##SUFFIX(T a, T b) { return a < b ? b : a; } -ngtcp2_max_def(int8, int8_t) -ngtcp2_max_def(int16, int16_t) -ngtcp2_max_def(int32, int32_t) -ngtcp2_max_def(int64, int64_t) -ngtcp2_max_def(uint8, uint8_t) -ngtcp2_max_def(uint16, uint16_t) -ngtcp2_max_def(uint32, uint32_t) -ngtcp2_max_def(uint64, uint64_t) -ngtcp2_max_def(size, size_t) +ngtcp2_max_def(long_long_int, long long int) +ngtcp2_max_def(long_int, long int) +ngtcp2_max_def(int, int) +ngtcp2_max_def(short_int, short int) +ngtcp2_max_def(signed_char, signed char) +ngtcp2_max_def(char, char) +ngtcp2_max_def(unsigned_long_long_int, unsigned long long int) +ngtcp2_max_def(unsigned_long_int, unsigned long int) +ngtcp2_max_def(unsigned_int, unsigned int) +ngtcp2_max_def(unsigned_short_int, unsigned short int) +ngtcp2_max_def(unsigned_char, unsigned char) + +#define ngtcp2_max(A, B) \ + _Generic((A), \ + long long int: ngtcp2_max_long_long_int, \ + long int: ngtcp2_max_long_int, \ + int: _Generic((B), \ + long long int: ngtcp2_max_long_long_int, \ + long int: ngtcp2_max_long_int, \ + int: ngtcp2_max_int, \ + short int: ngtcp2_max_short_int, \ + signed char: ngtcp2_max_signed_char, \ + char: ngtcp2_max_char, \ + unsigned long long int: ngtcp2_max_unsigned_long_long_int, \ + unsigned long int: ngtcp2_max_unsigned_long_int, \ + unsigned int: ngtcp2_max_unsigned_int, \ + unsigned short int: ngtcp2_max_unsigned_short_int, \ + unsigned char: ngtcp2_max_unsigned_char), \ + short int: ngtcp2_max_short_int, \ + signed char: ngtcp2_max_signed_char, \ + char: ngtcp2_max_char, \ + unsigned long long int: ngtcp2_max_unsigned_long_long_int, \ + unsigned long int: ngtcp2_max_unsigned_long_int, \ + unsigned int: ngtcp2_max_unsigned_int, \ + unsigned short int: ngtcp2_max_unsigned_short_int, \ + unsigned char: ngtcp2_max_unsigned_char)((A), (B)) #define ngtcp2_min_def(SUFFIX, T) \ static inline T ngtcp2_min_##SUFFIX(T a, T b) { return a < b ? a : b; } -ngtcp2_min_def(int8, int8_t) -ngtcp2_min_def(int16, int16_t) -ngtcp2_min_def(int32, int32_t) -ngtcp2_min_def(int64, int64_t) -ngtcp2_min_def(uint8, uint8_t) -ngtcp2_min_def(uint16, uint16_t) -ngtcp2_min_def(uint32, uint32_t) -ngtcp2_min_def(uint64, uint64_t) -ngtcp2_min_def(size, size_t) +ngtcp2_min_def(long_long_int, long long int) +ngtcp2_min_def(long_int, long int) +ngtcp2_min_def(int, int) +ngtcp2_min_def(short_int, short int) +ngtcp2_min_def(signed_char, signed char) +ngtcp2_min_def(char, char) +ngtcp2_min_def(unsigned_long_long_int, unsigned long long int) +ngtcp2_min_def(unsigned_long_int, unsigned long int) +ngtcp2_min_def(unsigned_int, unsigned int) +ngtcp2_min_def(unsigned_short_int, unsigned short int) +ngtcp2_min_def(unsigned_char, unsigned char) + +#define ngtcp2_min(A, B) \ + _Generic((A), \ + long long int: ngtcp2_min_long_long_int, \ + long int: ngtcp2_min_long_int, \ + int: _Generic((B), \ + long long int: ngtcp2_min_long_long_int, \ + long int: ngtcp2_min_long_int, \ + int: ngtcp2_min_int, \ + short int: ngtcp2_min_short_int, \ + signed char: ngtcp2_min_signed_char, \ + char: ngtcp2_min_char, \ + unsigned long long int: ngtcp2_min_unsigned_long_long_int, \ + unsigned long int: ngtcp2_min_unsigned_long_int, \ + unsigned int: ngtcp2_min_unsigned_int, \ + unsigned short int: ngtcp2_min_unsigned_short_int, \ + unsigned char: ngtcp2_min_unsigned_char), \ + short int: ngtcp2_min_short_int, \ + signed char: ngtcp2_min_signed_char, \ + char: ngtcp2_min_char, \ + unsigned long long int: ngtcp2_min_unsigned_long_long_int, \ + unsigned long int: ngtcp2_min_unsigned_long_int, \ + unsigned int: ngtcp2_min_unsigned_int, \ + unsigned short int: ngtcp2_min_unsigned_short_int, \ + unsigned char: ngtcp2_min_unsigned_char)((A), (B)) #endif /* !defined(NGTCP2_MACRO_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_net.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_net.h index 35a807f9fe..5fdeb98532 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_net.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_net.h @@ -67,11 +67,11 @@ # define ngtcp2_htonl64(N) (N) # else /* !defined(WORDS_BIGENDIAN) */ # if HAVE_DECL_BSWAP_64 -# define ngtcp2_bswap64 bswap_64 +# define ngtcp2_bswap64(N) bswap_64(N) # elif defined(WIN32) -# define ngtcp2_bswap64 _byteswap_uint64 +# define ngtcp2_bswap64(N) _byteswap_uint64(N) # elif defined(__APPLE__) -# define ngtcp2_bswap64 OSSwapInt64 +# define ngtcp2_bswap64(N) OSSwapInt64(N) # else /* !(HAVE_DECL_BSWAP_64 || defined(WIN32) || defined(__APPLE__)) */ # define ngtcp2_bswap64(N) \ ((uint64_t)(ngtcp2_ntohl((uint32_t)(N))) << 32 | \ @@ -83,59 +83,19 @@ #endif /* !HAVE_DECL_BE64TOH */ #ifdef WIN32 -/* Windows requires ws2_32 library for ntonl family functions. We - define inline functions for those function so that we don't have - dependency on that lib. */ - -# ifdef _MSC_VER -# define STIN static __inline -# else /* !defined(_MSC_VER) */ -# define STIN static inline -# endif /* !defined(_MSC_VER) */ - -STIN uint32_t ngtcp2_htonl(uint32_t hostlong) { - uint32_t res; - unsigned char *p = (unsigned char *)&res; - *p++ = (unsigned char)(hostlong >> 24); - *p++ = (hostlong >> 16) & 0xFFU; - *p++ = (hostlong >> 8) & 0xFFU; - *p = hostlong & 0xFFU; - return res; -} - -STIN uint16_t ngtcp2_htons(uint16_t hostshort) { - uint16_t res; - unsigned char *p = (unsigned char *)&res; - *p++ = (unsigned char)(hostshort >> 8); - *p = hostshort & 0xFFU; - return res; -} - -STIN uint32_t ngtcp2_ntohl(uint32_t netlong) { - uint32_t res; - unsigned char *p = (unsigned char *)&netlong; - res = (uint32_t)(*p++ << 24); - res += (uint32_t)(*p++ << 16); - res += (uint32_t)(*p++ << 8); - res += *p; - return res; -} - -STIN uint16_t ngtcp2_ntohs(uint16_t netshort) { - uint16_t res; - unsigned char *p = (unsigned char *)&netshort; - res = (uint16_t)(*p++ << 8); - res += *p; - return res; -} - +/* Windows requires ws2_32 library for ntonl family of functions. + Instead of using them, use _byteswap_* functions. This is fine + because all platforms that can run Windows these days are little + endian. */ +# define ngtcp2_htonl(N) _byteswap_ulong(N) +# define ngtcp2_htons(N) _byteswap_ushort(N) +# define ngtcp2_ntohl(N) _byteswap_ulong(N) +# define ngtcp2_ntohs(N) _byteswap_ushort(N) #else /* !defined(WIN32) */ - -# define ngtcp2_htonl htonl -# define ngtcp2_htons htons -# define ngtcp2_ntohl ntohl -# define ngtcp2_ntohs ntohs - +# define ngtcp2_htonl(N) htonl(N) +# define ngtcp2_htons(N) htons(N) +# define ngtcp2_ntohl(N) ntohl(N) +# define ngtcp2_ntohs(N) ntohs(N) #endif /* !defined(WIN32) */ #endif /* !defined(NGTCP2_NET_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_objalloc.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_objalloc.h index 4b6df53857..38eabb323b 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_objalloc.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_objalloc.h @@ -69,7 +69,7 @@ void ngtcp2_objalloc_clear(ngtcp2_objalloc *objalloc); inline static void ngtcp2_objalloc_##NAME##_init( \ ngtcp2_objalloc *objalloc, size_t nmemb, const ngtcp2_mem *mem) { \ ngtcp2_objalloc_init( \ - objalloc, ((sizeof(TYPE) + 0xFU) & ~(uintptr_t)0xFU) * nmemb, mem); \ + objalloc, ((sizeof(TYPE) + 0xFU) & ~(size_t)0xFU) * nmemb, mem); \ } \ \ TYPE *ngtcp2_objalloc_##NAME##_get(ngtcp2_objalloc *objalloc); \ @@ -123,7 +123,7 @@ void ngtcp2_objalloc_clear(ngtcp2_objalloc *objalloc); inline static void ngtcp2_objalloc_##NAME##_init( \ ngtcp2_objalloc *objalloc, size_t nmemb, const ngtcp2_mem *mem) { \ ngtcp2_objalloc_init( \ - objalloc, ((sizeof(TYPE) + 0xFU) & ~(uintptr_t)0xFU) * nmemb, mem); \ + objalloc, ((sizeof(TYPE) + 0xFU) & ~(size_t)0xFU) * nmemb, mem); \ } \ \ inline static TYPE *ngtcp2_objalloc_##NAME##_get( \ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c index f86e65118d..d146145843 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.c @@ -408,8 +408,9 @@ ngtcp2_ssize ngtcp2_pkt_encode_hd_long(uint8_t *out, size_t outlen, p = out; *p = (uint8_t)(NGTCP2_HEADER_FORM_BIT | - (ngtcp2_pkt_versioned_type(hd->version, hd->type) << 4) | - (uint8_t)(hd->pkt_numlen - 1)); + (uint32_t)(ngtcp2_pkt_versioned_type(hd->version, hd->type) + << 4) | + (uint32_t)(hd->pkt_numlen - 1)); if (!(hd->flags & NGTCP2_PKT_FLAG_FIXED_BIT_CLEAR)) { *p |= NGTCP2_FIXED_BIT_MASK; @@ -775,7 +776,7 @@ ngtcp2_ssize ngtcp2_pkt_decode_ack_frame(ngtcp2_ack *dest, } /* TODO We might not decode all ranges. It could be very large. */ - max_rangecnt = ngtcp2_min_size(NGTCP2_MAX_ACK_RANGES, rangecnt); + max_rangecnt = ngtcp2_min(NGTCP2_MAX_ACK_RANGES, rangecnt); p = payload + 1; @@ -2114,7 +2115,7 @@ ngtcp2_ssize ngtcp2_pkt_write_version_negotiation( p = dest; - *p++ = 0xC0 | unused_random; + *p++ = 0xC0U | unused_random; p = ngtcp2_put_uint32be(p, 0); *p++ = (uint8_t)dcidlen; @@ -2186,22 +2187,22 @@ int ngtcp2_pkt_decode_retry(ngtcp2_pkt_retry *dest, const uint8_t *payload, int64_t ngtcp2_pkt_adjust_pkt_num(int64_t max_pkt_num, int64_t pkt_num, size_t pkt_numlen) { - int64_t expected = max_pkt_num + 1; - int64_t win = (int64_t)1 << (pkt_numlen * 8); - int64_t hwin = win / 2; - int64_t mask = win - 1; - int64_t cand = (expected & ~mask) | pkt_num; + uint64_t expected = (uint64_t)max_pkt_num + 1; + uint64_t win = 1ULL << (pkt_numlen * 8); + uint64_t hwin = win / 2; + uint64_t mask = win - 1; + uint64_t cand = (expected & ~mask) | (uint64_t)pkt_num; - if (cand <= expected - hwin) { - assert(cand <= (int64_t)NGTCP2_MAX_VARINT - win); - return cand + win; + if (cand + hwin <= expected) { + assert(cand <= NGTCP2_MAX_VARINT - win); + return (int64_t)(cand + win); } if (cand > expected + hwin && cand >= win) { - return cand - win; + return (int64_t)(cand - win); } - return cand; + return (int64_t)cand; } int ngtcp2_pkt_validate_ack(const ngtcp2_ack *fr, int64_t min_pkt_num) { @@ -2267,7 +2268,7 @@ ngtcp2_pkt_write_stateless_reset2(uint8_t *dest, size_t destlen, p = dest; - randlen = ngtcp2_min_size(destlen - sizeof(token->data), randlen); + randlen = ngtcp2_min(destlen - sizeof(token->data), randlen); p = ngtcp2_cpymem(p, rand, randlen); p = ngtcp2_cpymem(p, token->data, sizeof(token->data)); @@ -2365,7 +2366,7 @@ ngtcp2_ssize ngtcp2_pkt_encode_pseudo_retry( return NGTCP2_ERR_NOBUF; } - *p &= 0xF0; + *p &= 0xF0U; *p |= unused; p += nwrite; @@ -2439,22 +2440,22 @@ size_t ngtcp2_pkt_stream_max_datalen(int64_t stream_id, uint64_t offset, left -= n; if (left > 8 + 1073741823 && len > 1073741823) { - len = ngtcp2_min_uint64(len, 4611686018427387903UL); - return (size_t)ngtcp2_min_uint64(len, (uint64_t)(left - 8)); + len = ngtcp2_min(len, 4611686018427387903UL); + return (size_t)ngtcp2_min(len, (uint64_t)(left - 8)); } if (left > 4 + 16383 && len > 16383) { - len = ngtcp2_min_uint64(len, 1073741823); - return (size_t)ngtcp2_min_uint64(len, (uint64_t)(left - 4)); + len = ngtcp2_min(len, 1073741823); + return (size_t)ngtcp2_min(len, (uint64_t)(left - 4)); } if (left > 2 + 63 && len > 63) { - len = ngtcp2_min_uint64(len, 16383); - return (size_t)ngtcp2_min_uint64(len, (uint64_t)(left - 2)); + len = ngtcp2_min(len, 16383); + return (size_t)ngtcp2_min(len, (uint64_t)(left - 2)); } - len = ngtcp2_min_uint64(len, 63); - return (size_t)ngtcp2_min_uint64(len, (uint64_t)(left - 1)); + len = ngtcp2_min(len, 63); + return (size_t)ngtcp2_min(len, (uint64_t)(left - 1)); } size_t ngtcp2_pkt_crypto_max_datalen(uint64_t offset, size_t len, size_t left) { @@ -2470,23 +2471,23 @@ size_t ngtcp2_pkt_crypto_max_datalen(uint64_t offset, size_t len, size_t left) { if (left > 8 + 1073741823 && len > 1073741823) { #if SIZE_MAX == UINT64_MAX - len = ngtcp2_min_size(len, 4611686018427387903UL); + len = ngtcp2_min(len, 4611686018427387903UL); #endif /* SIZE_MAX == UINT64_MAX */ - return ngtcp2_min_size(len, left - 8); + return ngtcp2_min(len, left - 8); } if (left > 4 + 16383 && len > 16383) { - len = ngtcp2_min_size(len, 1073741823); - return ngtcp2_min_size(len, left - 4); + len = ngtcp2_min(len, 1073741823); + return ngtcp2_min(len, left - 4); } if (left > 2 + 63 && len > 63) { - len = ngtcp2_min_size(len, 16383); - return ngtcp2_min_size(len, left - 2); + len = ngtcp2_min(len, 16383); + return ngtcp2_min(len, left - 2); } - len = ngtcp2_min_size(len, 63); - return ngtcp2_min_size(len, left - 1); + len = ngtcp2_min(len, 63); + return ngtcp2_min(len, left - 1); } size_t ngtcp2_pkt_datagram_framelen(size_t len) { @@ -2869,7 +2870,7 @@ size_t ngtcp2_pkt_remove_vec_partial(ngtcp2_vec *removed_data, ngtcp2_vec *data, } len = 1 + ngtcp2_pcg32_rand_n( - pcg, (uint32_t)ngtcp2_min_size(30, removed_data->len - 1)); + pcg, (uint32_t)ngtcp2_min(30, removed_data->len - 1)); assert(len < removed_data->len); ngtcp2_vec_split_at(&data[datacnt], removed_data, len); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h index bfdb065b74..b6c818d491 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pkt.h @@ -32,20 +32,20 @@ #include /* QUIC header macros */ -#define NGTCP2_HEADER_FORM_BIT 0x80 -#define NGTCP2_FIXED_BIT_MASK 0x40 -#define NGTCP2_PKT_NUMLEN_MASK 0x03 +#define NGTCP2_HEADER_FORM_BIT 0x80U +#define NGTCP2_FIXED_BIT_MASK 0x40U +#define NGTCP2_PKT_NUMLEN_MASK 0x03U /* Long header specific macros */ -#define NGTCP2_LONG_TYPE_MASK 0x30 -#define NGTCP2_LONG_RESERVED_BIT_MASK 0x0C +#define NGTCP2_LONG_TYPE_MASK 0x30U +#define NGTCP2_LONG_RESERVED_BIT_MASK 0x0CU /* Short header specific macros */ -#define NGTCP2_SHORT_RESERVED_BIT_MASK 0x18 -#define NGTCP2_SHORT_KEY_PHASE_BIT 0x04 +#define NGTCP2_SHORT_RESERVED_BIT_MASK 0x18U +#define NGTCP2_SHORT_KEY_PHASE_BIT 0x04U /* NGTCP2_SR_TYPE is a Type field of Stateless Reset. */ -#define NGTCP2_SR_TYPE 0x1F +#define NGTCP2_SR_TYPE 0x1FU /* NGTCP2_MIN_LONG_HEADERLEN is the minimum length of long header. That is (1|1|TT|RR|PP)<1> + VERSION<4> + DCIL<1> + SCIL<1> + @@ -53,9 +53,9 @@ #define NGTCP2_MIN_LONG_HEADERLEN (1 + 4 + 1 + 1 + 1 + 1) /* STREAM frame specific macros */ -#define NGTCP2_STREAM_FIN_BIT 0x01 -#define NGTCP2_STREAM_LEN_BIT 0x02 -#define NGTCP2_STREAM_OFF_BIT 0x04 +#define NGTCP2_STREAM_FIN_BIT 0x01U +#define NGTCP2_STREAM_LEN_BIT 0x02U +#define NGTCP2_STREAM_OFF_BIT 0x04U /* NGTCP2_MIN_QUIC_PKTLEN is the minimum length of a valid QUIC packet. */ @@ -109,29 +109,29 @@ /* NGTCP2_PKT_TYPE_INITIAL_V1 is Initial long header packet type for QUIC v1. */ -#define NGTCP2_PKT_TYPE_INITIAL_V1 0x0 +#define NGTCP2_PKT_TYPE_INITIAL_V1 0x0U /* NGTCP2_PKT_TYPE_0RTT_V1 is 0RTT long header packet type for QUIC v1. */ -#define NGTCP2_PKT_TYPE_0RTT_V1 0x1 +#define NGTCP2_PKT_TYPE_0RTT_V1 0x1U /* NGTCP2_PKT_TYPE_HANDSHAKE_V1 is Handshake long header packet type for QUIC v1. */ -#define NGTCP2_PKT_TYPE_HANDSHAKE_V1 0x2 +#define NGTCP2_PKT_TYPE_HANDSHAKE_V1 0x2U /* NGTCP2_PKT_TYPE_RETRY_V1 is Retry long header packet type for QUIC v1. */ -#define NGTCP2_PKT_TYPE_RETRY_V1 0x3 +#define NGTCP2_PKT_TYPE_RETRY_V1 0x3U /* NGTCP2_PKT_TYPE_INITIAL_V2 is Initial long header packet type for QUIC v2. */ -#define NGTCP2_PKT_TYPE_INITIAL_V2 0x1 +#define NGTCP2_PKT_TYPE_INITIAL_V2 0x1U /* NGTCP2_PKT_TYPE_0RTT_V2 is 0RTT long header packet type for QUIC v2. */ -#define NGTCP2_PKT_TYPE_0RTT_V2 0x2 +#define NGTCP2_PKT_TYPE_0RTT_V2 0x2U /* NGTCP2_PKT_TYPE_HANDSHAKE_V2 is Handshake long header packet type for QUIC v2. */ -#define NGTCP2_PKT_TYPE_HANDSHAKE_V2 0x3 +#define NGTCP2_PKT_TYPE_HANDSHAKE_V2 0x3U /* NGTCP2_PKT_TYPE_RETRY_V2 is Retry long header packet type for QUIC v2. */ -#define NGTCP2_PKT_TYPE_RETRY_V2 0x0 +#define NGTCP2_PKT_TYPE_RETRY_V2 0x0U /* NGTCP2_MIN_STREAM_DATALEN is the minimum length of STREAM frame to avoid too small frame. It is not always enforced for various @@ -153,32 +153,32 @@ typedef struct ngtcp2_pkt_retry { uint8_t tag[NGTCP2_RETRY_TAGLEN]; } ngtcp2_pkt_retry; -#define NGTCP2_FRAME_PADDING 0x00 -#define NGTCP2_FRAME_PING 0x01 -#define NGTCP2_FRAME_ACK 0x02 -#define NGTCP2_FRAME_ACK_ECN 0x03 -#define NGTCP2_FRAME_RESET_STREAM 0x04 -#define NGTCP2_FRAME_STOP_SENDING 0x05 -#define NGTCP2_FRAME_CRYPTO 0x06 -#define NGTCP2_FRAME_NEW_TOKEN 0x07 -#define NGTCP2_FRAME_STREAM 0x08 -#define NGTCP2_FRAME_MAX_DATA 0x10 -#define NGTCP2_FRAME_MAX_STREAM_DATA 0x11 -#define NGTCP2_FRAME_MAX_STREAMS_BIDI 0x12 -#define NGTCP2_FRAME_MAX_STREAMS_UNI 0x13 -#define NGTCP2_FRAME_DATA_BLOCKED 0x14 -#define NGTCP2_FRAME_STREAM_DATA_BLOCKED 0x15 -#define NGTCP2_FRAME_STREAMS_BLOCKED_BIDI 0x16 -#define NGTCP2_FRAME_STREAMS_BLOCKED_UNI 0x17 -#define NGTCP2_FRAME_NEW_CONNECTION_ID 0x18 -#define NGTCP2_FRAME_RETIRE_CONNECTION_ID 0x19 -#define NGTCP2_FRAME_PATH_CHALLENGE 0x1A -#define NGTCP2_FRAME_PATH_RESPONSE 0x1B -#define NGTCP2_FRAME_CONNECTION_CLOSE 0x1C -#define NGTCP2_FRAME_CONNECTION_CLOSE_APP 0x1D -#define NGTCP2_FRAME_HANDSHAKE_DONE 0x1E -#define NGTCP2_FRAME_DATAGRAM 0x30 -#define NGTCP2_FRAME_DATAGRAM_LEN 0x31 +#define NGTCP2_FRAME_PADDING 0x00U +#define NGTCP2_FRAME_PING 0x01U +#define NGTCP2_FRAME_ACK 0x02U +#define NGTCP2_FRAME_ACK_ECN 0x03U +#define NGTCP2_FRAME_RESET_STREAM 0x04U +#define NGTCP2_FRAME_STOP_SENDING 0x05U +#define NGTCP2_FRAME_CRYPTO 0x06U +#define NGTCP2_FRAME_NEW_TOKEN 0x07U +#define NGTCP2_FRAME_STREAM 0x08U +#define NGTCP2_FRAME_MAX_DATA 0x10U +#define NGTCP2_FRAME_MAX_STREAM_DATA 0x11U +#define NGTCP2_FRAME_MAX_STREAMS_BIDI 0x12U +#define NGTCP2_FRAME_MAX_STREAMS_UNI 0x13U +#define NGTCP2_FRAME_DATA_BLOCKED 0x14U +#define NGTCP2_FRAME_STREAM_DATA_BLOCKED 0x15U +#define NGTCP2_FRAME_STREAMS_BLOCKED_BIDI 0x16U +#define NGTCP2_FRAME_STREAMS_BLOCKED_UNI 0x17U +#define NGTCP2_FRAME_NEW_CONNECTION_ID 0x18U +#define NGTCP2_FRAME_RETIRE_CONNECTION_ID 0x19U +#define NGTCP2_FRAME_PATH_CHALLENGE 0x1AU +#define NGTCP2_FRAME_PATH_RESPONSE 0x1BU +#define NGTCP2_FRAME_CONNECTION_CLOSE 0x1CU +#define NGTCP2_FRAME_CONNECTION_CLOSE_APP 0x1DU +#define NGTCP2_FRAME_HANDSHAKE_DONE 0x1EU +#define NGTCP2_FRAME_DATAGRAM 0x30U +#define NGTCP2_FRAME_DATAGRAM_LEN 0x31U typedef struct ngtcp2_frame_hd { uint64_t type; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pmtud.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pmtud.c index ebd113f674..3827cba9af 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pmtud.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pmtud.c @@ -134,7 +134,7 @@ static void pmtud_next_probe(ngtcp2_pmtud *pmtud) { void ngtcp2_pmtud_probe_success(ngtcp2_pmtud *pmtud, size_t payloadlen) { pmtud->max_udp_payload_size = - ngtcp2_max_size(pmtud->max_udp_payload_size, payloadlen); + ngtcp2_max(pmtud->max_udp_payload_size, payloadlen); assert(pmtud->mtu_idx < pmtud->probeslen); @@ -156,8 +156,8 @@ void ngtcp2_pmtud_handle_expiry(ngtcp2_pmtud *pmtud, ngtcp2_tstamp ts) { return; } - pmtud->min_fail_udp_payload_size = ngtcp2_min_size( - pmtud->min_fail_udp_payload_size, pmtud->probes[pmtud->mtu_idx]); + pmtud->min_fail_udp_payload_size = + ngtcp2_min(pmtud->min_fail_udp_payload_size, pmtud->probes[pmtud->mtu_idx]); pmtud_next_probe(pmtud); } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c index 3054732db0..81bc3296de 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.c @@ -44,6 +44,14 @@ void ngtcp2_ppe_init(ngtcp2_ppe *ppe, uint8_t *out, size_t outlen, ppe->cc = cc; } +/* + * ppe_sample_offset returns the offset to sample for packet number + * encryption. + */ +static size_t ppe_sample_offset(ngtcp2_ppe *ppe) { + return ppe->pkt_num_offset + 4; +} + int ngtcp2_ppe_encode_hd(ngtcp2_ppe *ppe, const ngtcp2_pkt_hd *hd) { ngtcp2_ssize rv; ngtcp2_buf *buf = &ppe->buf; @@ -78,6 +86,10 @@ int ngtcp2_ppe_encode_hd(ngtcp2_ppe *ppe, const ngtcp2_pkt_hd *hd) { buf->last += rv; + if (ngtcp2_buf_cap(buf) < ppe_sample_offset(ppe) + NGTCP2_HP_SAMPLELEN) { + return NGTCP2_ERR_NOBUF; + } + ppe->pkt_numlen = hd->pkt_numlen; ppe->hdlen = (size_t)rv; ppe->pkt_num = hd->pkt_num; @@ -105,14 +117,6 @@ int ngtcp2_ppe_encode_frame(ngtcp2_ppe *ppe, ngtcp2_frame *fr) { return 0; } -/* - * ppe_sample_offset returns the offset to sample for packet number - * encryption. - */ -static size_t ppe_sample_offset(ngtcp2_ppe *ppe) { - return ppe->pkt_num_offset + 4; -} - ngtcp2_ssize ngtcp2_ppe_final(ngtcp2_ppe *ppe, const uint8_t **ppkt) { ngtcp2_buf *buf = &ppe->buf; ngtcp2_crypto_cc *cc = ppe->cc; @@ -154,9 +158,9 @@ ngtcp2_ssize ngtcp2_ppe_final(ngtcp2_ppe *ppe, const uint8_t **ppkt) { p = buf->begin; if (*p & NGTCP2_HEADER_FORM_BIT) { - *p = (uint8_t)(*p ^ (mask[0] & 0x0F)); + *p = (uint8_t)(*p ^ (mask[0] & 0x0FU)); } else { - *p = (uint8_t)(*p ^ (mask[0] & 0x1F)); + *p = (uint8_t)(*p ^ (mask[0] & 0x1FU)); } p = buf->begin + ppe->pkt_num_offset; @@ -187,21 +191,21 @@ size_t ngtcp2_ppe_padding_size(ngtcp2_ppe *ppe, size_t n) { ngtcp2_buf *buf = &ppe->buf; size_t pktlen = ngtcp2_buf_len(buf) + cc->aead.max_overhead; size_t len = 0; - size_t max_samplelen; + size_t min_pktlen; - n = ngtcp2_min_size(n, ngtcp2_buf_cap(buf)); + n = ngtcp2_min(n, ngtcp2_buf_cap(buf)); if (pktlen < n) { len = n - pktlen; } /* Ensure header protection sample */ - max_samplelen = - ngtcp2_buf_len(buf) + cc->aead.max_overhead - ppe_sample_offset(ppe); - - if (max_samplelen < NGTCP2_HP_SAMPLELEN) { - len = ngtcp2_max_size(len, NGTCP2_HP_SAMPLELEN - max_samplelen); + min_pktlen = ppe_sample_offset(ppe) + NGTCP2_HP_SAMPLELEN; + if (pktlen < min_pktlen) { + len = ngtcp2_max(len, min_pktlen - pktlen); } + /* ngtcp2_ppe_encode_hd ensures that the buffer has enough capacity + for the padding required for header protection sample. */ assert(ngtcp2_buf_left(buf) >= len + cc->aead.max_overhead); if (len == 0) { @@ -220,24 +224,34 @@ size_t ngtcp2_ppe_dgram_padding(ngtcp2_ppe *ppe) { size_t ngtcp2_ppe_dgram_padding_size(ngtcp2_ppe *ppe, size_t n) { ngtcp2_crypto_cc *cc = ppe->cc; ngtcp2_buf *buf = &ppe->buf; - size_t dgramlen = - ppe->dgram_offset + ngtcp2_buf_len(buf) + cc->aead.max_overhead; + size_t pktlen = ngtcp2_buf_len(buf) + cc->aead.max_overhead; + size_t dgramlen = ppe->dgram_offset + pktlen; size_t len; + size_t min_pktlen; - n = ngtcp2_min_size(n, ppe->dgram_offset + ngtcp2_buf_cap(buf)); + n = ngtcp2_min(n, ppe->dgram_offset + ngtcp2_buf_cap(buf)); - if (dgramlen >= n) { + if (dgramlen < n) { + len = n - dgramlen; + } else { + len = 0; + } + + /* Ensure header protection sample */ + min_pktlen = ppe_sample_offset(ppe) + NGTCP2_HP_SAMPLELEN; + if (pktlen < min_pktlen) { + len = ngtcp2_max(len, min_pktlen - pktlen); + } + + /* ngtcp2_ppe_encode_hd ensures that the buffer has enough capacity + for the padding required for header protection sample. */ + assert(ngtcp2_buf_left(buf) >= len + cc->aead.max_overhead); + + if (len == 0) { return 0; } - len = n - dgramlen; buf->last = ngtcp2_setmem(buf->last, 0, len); return len; } - -int ngtcp2_ppe_ensure_hp_sample(ngtcp2_ppe *ppe) { - ngtcp2_buf *buf = &ppe->buf; - - return ngtcp2_buf_left(buf) >= (4 - ppe->pkt_numlen) + NGTCP2_HP_SAMPLELEN; -} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.h index 9874b36800..ba9edc698a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_ppe.h @@ -125,7 +125,9 @@ size_t ngtcp2_ppe_dgram_padding(ngtcp2_ppe *ppe); * of a UDP datagram payload is at least |n| bytes long. If it is * unable to add PADDING in that way, this function still adds PADDING * frame as much as possible. This function should be called just - * before calling ngtcp2_ppe_final(). + * before calling ngtcp2_ppe_final(). This function also ensures that + * the packet has enough space for header protection sample by + * possibly adding extra padding more than |n|. * * This function returns the number of bytes added as padding. */ @@ -138,20 +140,11 @@ size_t ngtcp2_ppe_dgram_padding_size(ngtcp2_ppe *ppe, size_t n); * PADDING at least |n| bytes, this function still adds PADDING frames * as much as possible. This function also adds PADDING frames so * that the minimum padding requirement of header protection is met. - * Those padding may be larger than |n| bytes. It is recommended to - * make sure that ngtcp2_ppe_ensure_hp_sample succeeds after writing - * QUIC packet header. This function should be called just before - * calling ngtcp2_ppe_final(). + * Those padding may be larger than |n| bytes. This function should + * be called just before calling ngtcp2_ppe_final(). * * This function returns the number of bytes added as padding. */ size_t ngtcp2_ppe_padding_size(ngtcp2_ppe *ppe, size_t n); -/* - * ngtcp2_ppe_ensure_hp_sample returns nonzero if the buffer has - * enough space for header protection sample. This should be called - * right after packet header is written. - */ -int ngtcp2_ppe_ensure_hp_sample(ngtcp2_ppe *ppe); - #endif /* !defined(NGTCP2_PPE_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.c index 162bed0015..87d261dd75 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pq.c @@ -30,11 +30,10 @@ #include "ngtcp2_macro.h" void ngtcp2_pq_init(ngtcp2_pq *pq, ngtcp2_pq_less less, const ngtcp2_mem *mem) { - pq->q = NULL; - pq->mem = mem; - pq->length = 0; - pq->capacity = 0; - pq->less = less; + *pq = (ngtcp2_pq){ + .mem = mem, + .less = less, + }; } void ngtcp2_pq_free(ngtcp2_pq *pq) { @@ -74,7 +73,7 @@ int ngtcp2_pq_push(ngtcp2_pq *pq, ngtcp2_pq_entry *item) { void *nq; size_t ncapacity; - ncapacity = ngtcp2_max_size(4, pq->capacity * 2); + ncapacity = ngtcp2_max(4, pq->capacity * 2); nq = ngtcp2_mem_realloc(pq->mem, pq->q, ncapacity * sizeof(ngtcp2_pq_entry *)); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.c index 972c27f395..12b81eb803 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_pv.c @@ -148,7 +148,7 @@ int ngtcp2_pv_validation_timed_out(ngtcp2_pv *pv, ngtcp2_tstamp ts) { ent = ngtcp2_ringbuf_get(&pv->ents.rb, ngtcp2_ringbuf_len(&pv->ents.rb) - 1); t = pv->started_ts + pv->timeout; - t = ngtcp2_max_uint64(t, ent->expiry); + t = ngtcp2_max(t, ent->expiry); return t <= ts; } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c index 42609481ec..9f233b6cd8 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_qlog.c @@ -1120,6 +1120,9 @@ void ngtcp2_qlog_stateless_reset_pkt_received( ngtcp2_qlog *qlog, const ngtcp2_pkt_stateless_reset2 *sr) { uint8_t buf[256]; uint8_t *p = buf; + static const ngtcp2_pkt_hd hd = { + .type = NGTCP2_PKT_STATELESS_RESET, + }; if (!qlog->write) { return; @@ -1130,9 +1133,7 @@ void ngtcp2_qlog_stateless_reset_pkt_received( p = qlog_write_time(qlog, p); p = write_verbatim( p, ",\"name\":\"transport:packet_received\",\"data\":{\"header\":"); - p = write_pkt_hd(p, &(ngtcp2_pkt_hd){ - .type = NGTCP2_PKT_STATELESS_RESET, - }); + p = write_pkt_hd(p, &hd); *p++ = ','; p = write_pair_hex(p, "stateless_reset_token", sr->token.data, sizeof(sr->token.data)); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c index a949a65733..8cb43830fb 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_range.c @@ -35,8 +35,8 @@ void ngtcp2_range_init(ngtcp2_range *r, uint64_t begin, uint64_t end) { ngtcp2_range ngtcp2_range_intersect(const ngtcp2_range *a, const ngtcp2_range *b) { ngtcp2_range r; - uint64_t begin = ngtcp2_max_uint64(a->begin, b->begin); - uint64_t end = ngtcp2_min_uint64(a->end, b->end); + uint64_t begin = ngtcp2_max(a->begin, b->begin); + uint64_t end = ngtcp2_min(a->end, b->end); if (begin < end) { ngtcp2_range_init(&r, begin, end); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c index 20eae1d881..e45351be2b 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rob.c @@ -161,8 +161,7 @@ static int rob_write_data(ngtcp2_rob *rob, uint64_t offset, const uint8_t *data, } } - n = (size_t)ngtcp2_min_uint64((uint64_t)len, - d->range.begin + rob->chunk - offset); + n = (size_t)ngtcp2_min((uint64_t)len, d->range.begin + rob->chunk - offset); memcpy(d->begin + (offset - d->range.begin), data, n); offset += n; data += n; @@ -317,9 +316,8 @@ size_t ngtcp2_rob_data_at(const ngtcp2_rob *rob, const uint8_t **pdest, *pdest = d->begin + (offset - d->range.begin); - return ( - size_t)(ngtcp2_min_uint64(g->range.begin, d->range.begin + rob->chunk) - - offset); + return (size_t)(ngtcp2_min(g->range.begin, d->range.begin + rob->chunk) - + offset); } void ngtcp2_rob_pop(ngtcp2_rob *rob, uint64_t offset, size_t len) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c index 89b395cd95..7792ebe41b 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.c @@ -35,12 +35,12 @@ void ngtcp2_rs_init(ngtcp2_rs *rs) { *rs = (ngtcp2_rs){ .interval = UINT64_MAX, .prior_ts = UINT64_MAX, - .last_end_seq = -1, + .last_acked_pkt_id = -1, }; } void ngtcp2_rst_init(ngtcp2_rst *rst) { - rst->last_seq = -1; + rst->pkt_id = -1; ngtcp2_rst_reset(rst); } @@ -76,7 +76,7 @@ void ngtcp2_rst_on_pkt_sent(ngtcp2_rst *rst, ngtcp2_rtb_entry *ent, ent->rst.is_app_limited = rst->app_limited != 0; ent->rst.tx_in_flight = cstat->bytes_in_flight; ent->rst.lost = rst->lost; - ent->rst.end_seq = ++rst->last_seq; + ent->rst.pkt_id = ++rst->pkt_id; } void ngtcp2_rst_on_ack_recv(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat) { @@ -90,7 +90,7 @@ void ngtcp2_rst_on_ack_recv(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat) { return; } - rs->interval = ngtcp2_max_uint64(rs->send_elapsed, rs->ack_elapsed); + rs->interval = ngtcp2_max(rs->send_elapsed, rs->ack_elapsed); rs->delivered = rst->delivered - rs->prior_delivered; @@ -106,7 +106,7 @@ void ngtcp2_rst_on_ack_recv(ngtcp2_rst *rst, ngtcp2_conn_stat *cstat) { } static int is_newest_pkt(const ngtcp2_rtb_entry *ent, const ngtcp2_rs *rs) { - return ent->rst.end_seq > rs->last_end_seq; + return ent->rst.pkt_id > rs->last_acked_pkt_id; } void ngtcp2_rst_update_rate_sample(ngtcp2_rst *rst, const ngtcp2_rtb_entry *ent, @@ -122,7 +122,7 @@ void ngtcp2_rst_update_rate_sample(ngtcp2_rst *rst, const ngtcp2_rtb_entry *ent, rs->is_app_limited = ent->rst.is_app_limited; rs->send_elapsed = ent->ts - ent->rst.first_sent_ts; rs->ack_elapsed = rst->delivered_ts - ent->rst.delivered_ts; - rs->last_end_seq = ent->rst.end_seq; + rs->last_acked_pkt_id = ent->rst.pkt_id; rst->first_sent_ts = ent->ts; } } diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h index b0bc2d06c9..86346f4929 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h @@ -50,7 +50,7 @@ typedef struct ngtcp2_rs { uint64_t lost; ngtcp2_duration send_elapsed; ngtcp2_duration ack_elapsed; - int64_t last_end_seq; + int64_t last_acked_pkt_id; int is_app_limited; } ngtcp2_rs; @@ -67,11 +67,11 @@ typedef struct ngtcp2_rst { ngtcp2_tstamp first_sent_ts; uint64_t app_limited; uint64_t lost; - /* last_seq is the sequence number of packets across all packet - number spaces. If we would adopt single packet number sequence - across all packet number spaces, we can replace this with a - packet number. */ - int64_t last_seq; + /* pkt_id is the identifier of packets across all packet number + spaces. If we would adopt single packet number sequence across + all packet number spaces, we can replace this with a packet + number. */ + int64_t pkt_id; int is_cwnd_limited; } ngtcp2_rst; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c index 67aaa04930..e8d05a3fea 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.c @@ -482,9 +482,8 @@ static int rtb_on_pkt_lost(ngtcp2_rtb *rtb, ngtcp2_rtb_entry *ent, } if (ent->flags & NGTCP2_RTB_ENTRY_FLAG_PTO_RECLAIMED) { - ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, - "pkn=%" PRId64 " has already been reclaimed on PTO", - ent->hd.pkt_num); + ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, "pkn=", ent->hd.pkt_num, + " has already been reclaimed on PTO"); assert(!(ent->flags & NGTCP2_RTB_ENTRY_FLAG_LOST_RETRANSMITTED)); assert(UINT64_MAX == ent->lost_ts); } else { @@ -596,7 +595,7 @@ static int process_acked_pkt(ngtcp2_rtb_entry *ent, ngtcp2_conn *conn, if (conn->dcid.current.max_udp_payload_size < ent->pktlen) { conn->dcid.current.max_udp_payload_size = ent->pktlen; conn->cstat.max_tx_udp_payload_size = - ngtcp2_conn_get_path_max_tx_udp_payload_size(conn); + ngtcp2_conn_get_path_max_tx_udp_payload_size2(conn); } if (ngtcp2_pmtud_finished(conn->pmtud)) { @@ -903,8 +902,8 @@ ngtcp2_ssize ngtcp2_rtb_recv_ack(ngtcp2_rtb *rtb, const ngtcp2_ack *fr, } if (cc_ack.largest_pkt_sent_ts != UINT64_MAX && ack_eliciting_pkt_acked) { - cc_ack.rtt = ngtcp2_max_uint64(pkt_ts - cc_ack.largest_pkt_sent_ts, - NGTCP2_NANOSECONDS); + cc_ack.rtt = + ngtcp2_max(pkt_ts - cc_ack.largest_pkt_sent_ts, NGTCP2_NANOSECONDS); ngtcp2_conn_update_rtt(conn, cc_ack.rtt, fr->ack_delay_unscaled, ts); } @@ -999,7 +998,7 @@ static int rtb_pkt_lost(ngtcp2_rtb *rtb, ngtcp2_conn_stat *cstat, if (loss_time == UINT64_MAX) { loss_time = ent->ts + loss_delay; } else { - loss_time = ngtcp2_min_uint64(loss_time, ent->ts + loss_delay); + loss_time = ngtcp2_min(loss_time, ent->ts + loss_delay); } cstat->loss_time[pktns->id] = loss_time; @@ -1013,8 +1012,8 @@ static int rtb_pkt_lost(ngtcp2_rtb *rtb, ngtcp2_conn_stat *cstat, static ngtcp2_duration compute_pkt_loss_delay(const ngtcp2_conn_stat *cstat) { /* 9/8 is kTimeThreshold */ ngtcp2_duration loss_delay = - ngtcp2_max_uint64(cstat->latest_rtt, cstat->smoothed_rtt) * 9 / 8; - return ngtcp2_max_uint64(loss_delay, NGTCP2_GRANULARITY); + ngtcp2_max(cstat->latest_rtt, cstat->smoothed_rtt) * 9 / 8; + return ngtcp2_max(loss_delay, NGTCP2_GRANULARITY); } /* @@ -1056,8 +1055,8 @@ static int rtb_detect_lost_pkt(ngtcp2_rtb *rtb, ngtcp2_cc_ack *cc_ack, uint64_t bytes_lost = 0; ngtcp2_duration max_ack_delay; - pkt_thres = ngtcp2_max_uint64(pkt_thres, NGTCP2_PKT_THRESHOLD); - pkt_thres = ngtcp2_min_uint64(pkt_thres, 256); + pkt_thres = ngtcp2_max(pkt_thres, NGTCP2_PKT_THRESHOLD); + pkt_thres = ngtcp2_min(pkt_thres, 256); cstat->loss_time[pktns->id] = UINT64_MAX; loss_delay = compute_pkt_loss_delay(cstat); @@ -1082,12 +1081,11 @@ static int rtb_detect_lost_pkt(ngtcp2_rtb *rtb, ngtcp2_cc_ack *cc_ack, congestion_period = (cstat->smoothed_rtt + - ngtcp2_max_uint64(4 * cstat->rttvar, NGTCP2_GRANULARITY) + - max_ack_delay) * + ngtcp2_max(4 * cstat->rttvar, NGTCP2_GRANULARITY) + max_ack_delay) * NGTCP2_PERSISTENT_CONGESTION_THRESHOLD; - start_ts = ngtcp2_max_uint64(conn->handshake_confirmed_ts, - cstat->first_rtt_sample_ts); + start_ts = + ngtcp2_max(conn->handshake_confirmed_ts, cstat->first_rtt_sample_ts); for (; !ngtcp2_ksl_it_end(&it); ngtcp2_ksl_it_next(&it)) { ent = ngtcp2_ksl_it_get(&it); @@ -1172,9 +1170,8 @@ static int rtb_detect_lost_pkt(ngtcp2_rtb *rtb, ngtcp2_cc_ack *cc_ack, if (pktns->id == NGTCP2_PKTNS_ID_APPLICATION && loss_window && loss_window >= congestion_period) { ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, - "persistent congestion loss_window=%" PRIu64 - " congestion_period=%" PRIu64, - loss_window, congestion_period); + "persistent congestion loss_window=", loss_window, + " congestion_period=", congestion_period); /* Reset min_rtt, srtt, and rttvar here. Next new RTT sample will be used to recalculate these values. */ @@ -1222,7 +1219,7 @@ void ngtcp2_rtb_remove_excessive_lost_pkt(ngtcp2_rtb *rtb, size_t n) { assert(ent->flags & NGTCP2_RTB_ENTRY_FLAG_LOST_RETRANSMITTED); ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, - "removing stale lost pkn=%" PRId64, ent->hd.pkt_num); + "removing stale lost pkn=", ent->hd.pkt_num); --rtb->num_lost_pkts; @@ -1265,7 +1262,7 @@ void ngtcp2_rtb_remove_expired_lost_pkt(ngtcp2_rtb *rtb, } ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, - "removing stale lost pkn=%" PRId64, ent->hd.pkt_num); + "removing stale lost pkn=", ent->hd.pkt_num); --rtb->num_lost_pkts; @@ -1417,9 +1414,8 @@ int ngtcp2_rtb_reclaim_on_retry(ngtcp2_rtb *rtb, ngtcp2_conn *conn, assert(!(ent->flags & NGTCP2_RTB_ENTRY_FLAG_PMTUD_PROBE)); if (ent->flags & NGTCP2_RTB_ENTRY_FLAG_PTO_RECLAIMED) { - ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, - "pkn=%" PRId64 " has already been reclaimed on PTO", - ent->hd.pkt_num); + ngtcp2_log_infof(rtb->log, NGTCP2_LOG_EVENT_LDC, "pkn=", ent->hd.pkt_num, + " has already been reclaimed on PTO"); ngtcp2_rtb_entry_objalloc_del(ent, rtb->rtb_entry_objalloc, rtb->frc_objalloc, rtb->mem); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h index 62bcb381fa..664498be96 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rtb.h @@ -115,7 +115,7 @@ struct ngtcp2_rtb_entry { ngtcp2_tstamp first_sent_ts; uint64_t tx_in_flight; uint64_t lost; - int64_t end_seq; + int64_t pkt_id; int is_app_limited; } rst; /* flags is bitwise-OR of zero or more of diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.c index f774504282..31c52b4d95 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_settings.c @@ -37,6 +37,7 @@ void ngtcp2_settings_default_versioned(int settings_version, switch (settings_version) { case NGTCP2_SETTINGS_VERSION: + case NGTCP2_SETTINGS_V3: settings->glitch_ratelim_burst = NGTCP2_DEFAULT_GLITCH_RATELIM_BURST; settings->glitch_ratelim_rate = NGTCP2_DEFAULT_GLITCH_RATELIM_RATE; /* fall through */ @@ -86,6 +87,9 @@ size_t ngtcp2_settingslen_version(int settings_version) { switch (settings_version) { case NGTCP2_SETTINGS_VERSION: return sizeof(settings); + case NGTCP2_SETTINGS_V3: + return offsetof(ngtcp2_settings, glitch_ratelim_rate) + + sizeof(settings.glitch_ratelim_rate); case NGTCP2_SETTINGS_V2: return offsetof(ngtcp2_settings, pmtud_probeslen) + sizeof(settings.pmtud_probeslen); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c index 2726571a50..dd5ef5a1af 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.c @@ -25,8 +25,10 @@ #include "ngtcp2_str.h" #include +#include #include "ngtcp2_macro.h" +#include "ngtcp2_unreachable.h" void *ngtcp2_cpymem(void *dest, const void *src, size_t n) { memcpy(dest, src, n); @@ -38,6 +40,22 @@ uint8_t *ngtcp2_setmem(uint8_t *dest, uint8_t b, size_t n) { return dest + n; } +void ngtcp2_secure_clear(void *data, size_t len) { +#ifdef WIN32 + SecureZeroMemory(data, len); +#elif defined(HAVE_EXPLICIT_BZERO) + explicit_bzero(data, len); +#elif defined(HAVE_MEMSET_S) + memset_s(data, len, 0, len); +#else /* !defined(WIN32) && !defined(HAVE_EXPLICIT_BZERO) && \ + !defined(HAVE_MEMSET_S) */ + static void *(*volatile memset_ptr)(void *, int, size_t) = memset; + + memset_ptr(data, 0, len); +#endif /* !defined(WIN32) && !defined(HAVE_EXPLICIT_BZERO) && \ + !defined(HAVE_MEMSET_S) */ +} + const void *ngtcp2_get_bytes(void *dest, const void *src, size_t n) { memcpy(dest, src, n); return (uint8_t *)src + n; @@ -50,53 +68,98 @@ uint8_t *ngtcp2_encode_hex(uint8_t *dest, const uint8_t *data, size_t len) { for (i = 0; i < len; ++i) { *dest++ = (uint8_t)LOWER_XDIGITS[data[i] >> 4]; - *dest++ = (uint8_t)LOWER_XDIGITS[data[i] & 0xF]; + *dest++ = (uint8_t)LOWER_XDIGITS[data[i] & 0xFU]; } return dest; } -char *ngtcp2_encode_hex_cstr(char *dest, const uint8_t *data, size_t len) { - uint8_t *p = ngtcp2_encode_hex((uint8_t *)dest, data, len); +size_t ngtcp2_encode_uint_hexlen(uint64_t n) { + size_t i; + uint8_t d; + + if (n == 0) { + return 1; + } + + for (i = 0; i < sizeof(n); ++i) { + d = (uint8_t)(n >> (sizeof(n) - 1 - i) * 8); + if (!d) { + continue; + } + + if (d >> 4) { + return (sizeof(n) - i) * 2; + } + + return (sizeof(n) - i) * 2 - 1; + } + + ngtcp2_unreachable(); +} + +uint8_t *ngtcp2_encode_uint_hex(uint8_t *dest, uint64_t n) { + size_t i; + uint8_t d; + + if (n == 0) { + *dest++ = '0'; + + return dest; + } + + for (i = 0; i < sizeof(n); ++i) { + d = (uint8_t)(n >> (sizeof(n) - 1 - i) * 8); + if (d) { + if (d >> 4) { + *dest++ = (uint8_t)LOWER_XDIGITS[d >> 4]; + } - *p = '\0'; + *dest++ = (uint8_t)LOWER_XDIGITS[d & 0xFU]; + ++i; + + break; + } + } + + for (; i < sizeof(n); ++i) { + d = (uint8_t)(n >> (sizeof(n) - 1 - i) * 8); + + *dest++ = (uint8_t)LOWER_XDIGITS[d >> 4]; + *dest++ = (uint8_t)LOWER_XDIGITS[d & 0xFU]; + } return dest; } -char *ngtcp2_encode_printable_ascii_cstr(char *dest, const uint8_t *data, - size_t len) { +uint8_t *ngtcp2_encode_printable_ascii(uint8_t *dest, const uint8_t *data, + size_t len) { size_t i; - char *p = dest; uint8_t c; for (i = 0; i < len; ++i) { c = data[i]; if (0x20 <= c && c <= 0x7E) { - *p++ = (char)c; + *dest++ = c; } else { - *p++ = '.'; + *dest++ = '.'; } } - *p = '\0'; - return dest; } -char *ngtcp2_encode_ipv4_cstr(char *dest, const uint8_t *addr) { +uint8_t *ngtcp2_encode_ipv4(uint8_t *dest, const ngtcp2_in_addr *addr) { size_t i; - char *p = dest; + const uint8_t *in = (const uint8_t *)addr; - p = (char *)ngtcp2_encode_uint((uint8_t *)p, addr[0]); + dest = ngtcp2_encode_uint(dest, in[0]); for (i = 1; i < 4; ++i) { - *p++ = '.'; - p = (char *)ngtcp2_encode_uint((uint8_t *)p, addr[i]); + *dest++ = '.'; + dest = ngtcp2_encode_uint(dest, in[i]); } - *p = '\0'; - return dest; } @@ -105,9 +168,9 @@ char *ngtcp2_encode_ipv4_cstr(char *dest, const uint8_t *addr) { * length |len| to |dest| in hex string. Any leading zeros are * suppressed. It returns |dest| plus the number of bytes written. */ -static char *write_hex_zsup(char *dest, const uint8_t *data, size_t len) { +static uint8_t *write_hex_zsup(uint8_t *dest, const uint8_t *data, size_t len) { size_t i; - char *p = dest; + uint8_t *p = dest; uint8_t d; for (i = 0; i < len; ++i) { @@ -116,10 +179,10 @@ static char *write_hex_zsup(char *dest, const uint8_t *data, size_t len) { break; } - d &= 0xF; + d &= 0xFU; if (d) { - *p++ = LOWER_XDIGITS[d]; + *p++ = (uint8_t)LOWER_XDIGITS[d]; ++i; break; } @@ -132,23 +195,23 @@ static char *write_hex_zsup(char *dest, const uint8_t *data, size_t len) { for (; i < len; ++i) { d = data[i]; - *p++ = LOWER_XDIGITS[d >> 4]; - *p++ = LOWER_XDIGITS[d & 0xF]; + *p++ = (uint8_t)LOWER_XDIGITS[d >> 4]; + *p++ = (uint8_t)LOWER_XDIGITS[d & 0xFU]; } return p; } -char *ngtcp2_encode_ipv6_cstr(char *dest, const uint8_t *addr) { +uint8_t *ngtcp2_encode_ipv6(uint8_t *dest, const ngtcp2_in6_addr *addr) { uint16_t blks[8]; size_t i; size_t zlen, zoff; size_t max_zlen = 0, max_zoff = 8; - char *p = dest; + const uint8_t *in = (const uint8_t *)addr; for (i = 0; i < 16; i += sizeof(uint16_t)) { /* Copy in network byte order. */ - memcpy(&blks[i / sizeof(uint16_t)], addr + i, sizeof(uint16_t)); + memcpy(&blks[i / sizeof(uint16_t)], in + i, sizeof(uint16_t)); } for (i = 0; i < 8;) { @@ -175,29 +238,29 @@ char *ngtcp2_encode_ipv6_cstr(char *dest, const uint8_t *addr) { } if (max_zoff != 0) { - p = write_hex_zsup(p, (const uint8_t *)blks, sizeof(uint16_t)); + dest = write_hex_zsup(dest, (const uint8_t *)blks, sizeof(uint16_t)); for (i = 1; i < max_zoff; ++i) { - *p++ = ':'; - p = write_hex_zsup(p, (const uint8_t *)(blks + i), sizeof(uint16_t)); + *dest++ = ':'; + dest = + write_hex_zsup(dest, (const uint8_t *)(blks + i), sizeof(uint16_t)); } } if (max_zoff != 8) { - *p++ = ':'; + *dest++ = ':'; if (max_zoff + max_zlen == 8) { - *p++ = ':'; + *dest++ = ':'; } else { for (i = max_zoff + max_zlen; i < 8; ++i) { - *p++ = ':'; - p = write_hex_zsup(p, (const uint8_t *)(blks + i), sizeof(uint16_t)); + *dest++ = ':'; + dest = + write_hex_zsup(dest, (const uint8_t *)(blks + i), sizeof(uint16_t)); } } } - *p = '\0'; - return dest; } @@ -290,6 +353,8 @@ static size_t count_digit(uint64_t x) { return y + 1; } +size_t ngtcp2_encode_uintlen(uint64_t n) { return count_digit(n); } + uint8_t *ngtcp2_encode_uint(uint8_t *dest, uint64_t n) { static const uint8_t uint_digits[] = "00010203040506070809101112131415161718192021222324252627282930313233343536" diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.h index 051053d75b..abda53e46d 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_str.h @@ -53,43 +53,47 @@ const void *ngtcp2_get_bytes(void *dest, const void *src, size_t n); uint8_t *ngtcp2_encode_hex(uint8_t *dest, const uint8_t *data, size_t len); /* - * ngtcp2_encode_hex_cstr encodes |data| of length |len| in hex - * string. It writes additional NULL bytes at the end of the buffer. - * The buffer pointed by |dest| must have at least |len| * 2 + 1 bytes - * space. This function returns |dest|. + * ngtcp2_encode_uint_hexlen returns the number of bytes + * ngtcp2_encode_uint_hex produces when |n| is given. */ -char *ngtcp2_encode_hex_cstr(char *dest, const uint8_t *data, size_t len); +size_t ngtcp2_encode_uint_hexlen(uint64_t n); /* - * ngtcp2_encode_ipv4_cstr encodes binary form IPv4 address stored in + * ngtcp2_encode_uint_hex encodes |n| in hex string. It omits the + * leading zeros (e.g., 1fb). The buffer pointed by |dest| must have + * at least ngtcp2_encode_uint_hexlen(|n|) bytes. This function + * returns |dest| + the number of bytes written. + */ +uint8_t *ngtcp2_encode_uint_hex(uint8_t *dest, uint64_t n); + +/* + * ngtcp2_encode_ipv4 encodes binary form IPv4 address stored in * |addr| to human readable text form in the buffer pointed by |dest|. - * The capacity of buffer must have enough length to store a text form - * plus a terminating NULL byte. The resulting text form ends with - * NULL byte. The function returns |dest|. + * The capacity of buffer must have enough length to store a text + * form. The function returns |dest| + the number of bytes written. */ -char *ngtcp2_encode_ipv4_cstr(char *dest, const uint8_t *addr); +uint8_t *ngtcp2_encode_ipv4(uint8_t *dest, const ngtcp2_in_addr *addr); /* - * ngtcp2_encode_ipv6_cstr encodes binary form IPv6 address stored in + * ngtcp2_encode_ipv6 encodes binary form IPv6 address stored in * |addr| to human readable text form in the buffer pointed by |dest|. - * The capacity of buffer must have enough length to store a text form - * plus a terminating NULL byte. The resulting text form ends with - * NULL byte. The function produces the canonical form of IPv6 text + * The capacity of buffer must have enough length to store a text + * form. The function produces the canonical form of IPv6 text * representation described in * https://tools.ietf.org/html/rfc5952#section-4. The function - * returns |dest|. + * returns |dest| + the number of bytes written. */ -char *ngtcp2_encode_ipv6_cstr(char *dest, const uint8_t *addr); +uint8_t *ngtcp2_encode_ipv6(uint8_t *dest, const ngtcp2_in6_addr *addr); /* * ngtcp2_encode_printable_ascii encodes |data| of length |len| in * |dest| in the following manner: printable ascii characters are - * copied as is. The other characters are converted to ".". It - * writes additional NULL bytes at the end of the buffer. |dest| must - * have at least |len| + 1 bytes. This function returns |dest|. + * copied as is. The other characters are converted to ".". |dest| + * must have at least |len|. This function returns |dest| + the + * number of bytes written. */ -char *ngtcp2_encode_printable_ascii_cstr(char *dest, const uint8_t *data, - size_t len); +uint8_t *ngtcp2_encode_printable_ascii(uint8_t *dest, const uint8_t *data, + size_t len); /* * ngtcp2_cmemeq returns nonzero if the first |n| bytes of the buffers @@ -98,6 +102,12 @@ char *ngtcp2_encode_printable_ascii_cstr(char *dest, const uint8_t *data, */ int ngtcp2_cmemeq(const uint8_t *a, const uint8_t *b, size_t n); +/* + * ngtcp2_encode_uintlen returns the number of bytes + * ngtcp2_encode_uint produces when |n| is given. + */ +size_t ngtcp2_encode_uintlen(uint64_t n); + /* * ngtcp2_encode_uint encodes |n| as a decimal integer to the buffer * pointed by |dest|. This function assumes that the buffer contains diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c index 5d378176e1..f28c4f57b1 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.c @@ -586,6 +586,9 @@ int ngtcp2_transport_params_decode_versioned(int transport_params_version, if (decode_varint_param(¶ms->max_idle_timeout, &p, end) != 0) { return NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM; } + if (params->max_idle_timeout > UINT64_MAX / NGTCP2_MILLISECONDS) { + params->max_idle_timeout = UINT64_MAX; + } params->max_idle_timeout *= NGTCP2_MILLISECONDS; break; case NGTCP2_TRANSPORT_PARAM_MAX_UDP_PAYLOAD_SIZE: @@ -733,7 +736,7 @@ int ngtcp2_transport_params_decode_versioned(int transport_params_version, if ((size_t)(end - p) < valuelen) { return NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM; } - if (valuelen < sizeof(uint32_t) || (valuelen & 0x3)) { + if (valuelen < sizeof(uint32_t) || (valuelen & 0x3U)) { return NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM; } p = ngtcp2_get_uint32be(¶ms->version_info.chosen_version, p); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.h index d98d034b3c..0ea85edb0a 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_transport_params.h @@ -35,28 +35,28 @@ parameter ID. */ typedef uint64_t ngtcp2_transport_param_id; -#define NGTCP2_TRANSPORT_PARAM_ORIGINAL_DESTINATION_CONNECTION_ID 0x00 -#define NGTCP2_TRANSPORT_PARAM_MAX_IDLE_TIMEOUT 0x01 -#define NGTCP2_TRANSPORT_PARAM_STATELESS_RESET_TOKEN 0x02 -#define NGTCP2_TRANSPORT_PARAM_MAX_UDP_PAYLOAD_SIZE 0x03 -#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_DATA 0x04 -#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAM_DATA_BIDI_LOCAL 0x05 -#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE 0x06 -#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAM_DATA_UNI 0x07 -#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAMS_BIDI 0x08 -#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAMS_UNI 0x09 -#define NGTCP2_TRANSPORT_PARAM_ACK_DELAY_EXPONENT 0x0A -#define NGTCP2_TRANSPORT_PARAM_MAX_ACK_DELAY 0x0B -#define NGTCP2_TRANSPORT_PARAM_DISABLE_ACTIVE_MIGRATION 0x0C -#define NGTCP2_TRANSPORT_PARAM_PREFERRED_ADDRESS 0x0D -#define NGTCP2_TRANSPORT_PARAM_ACTIVE_CONNECTION_ID_LIMIT 0x0E -#define NGTCP2_TRANSPORT_PARAM_INITIAL_SOURCE_CONNECTION_ID 0x0F -#define NGTCP2_TRANSPORT_PARAM_RETRY_SOURCE_CONNECTION_ID 0x10 +#define NGTCP2_TRANSPORT_PARAM_ORIGINAL_DESTINATION_CONNECTION_ID 0x00U +#define NGTCP2_TRANSPORT_PARAM_MAX_IDLE_TIMEOUT 0x01U +#define NGTCP2_TRANSPORT_PARAM_STATELESS_RESET_TOKEN 0x02U +#define NGTCP2_TRANSPORT_PARAM_MAX_UDP_PAYLOAD_SIZE 0x03U +#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_DATA 0x04U +#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAM_DATA_BIDI_LOCAL 0x05U +#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE 0x06U +#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAM_DATA_UNI 0x07U +#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAMS_BIDI 0x08U +#define NGTCP2_TRANSPORT_PARAM_INITIAL_MAX_STREAMS_UNI 0x09U +#define NGTCP2_TRANSPORT_PARAM_ACK_DELAY_EXPONENT 0x0AU +#define NGTCP2_TRANSPORT_PARAM_MAX_ACK_DELAY 0x0BU +#define NGTCP2_TRANSPORT_PARAM_DISABLE_ACTIVE_MIGRATION 0x0CU +#define NGTCP2_TRANSPORT_PARAM_PREFERRED_ADDRESS 0x0DU +#define NGTCP2_TRANSPORT_PARAM_ACTIVE_CONNECTION_ID_LIMIT 0x0EU +#define NGTCP2_TRANSPORT_PARAM_INITIAL_SOURCE_CONNECTION_ID 0x0FU +#define NGTCP2_TRANSPORT_PARAM_RETRY_SOURCE_CONNECTION_ID 0x10U /* https://datatracker.ietf.org/doc/html/rfc9221 */ -#define NGTCP2_TRANSPORT_PARAM_MAX_DATAGRAM_FRAME_SIZE 0x20 -#define NGTCP2_TRANSPORT_PARAM_GREASE_QUIC_BIT 0x2AB2 +#define NGTCP2_TRANSPORT_PARAM_MAX_DATAGRAM_FRAME_SIZE 0x20U +#define NGTCP2_TRANSPORT_PARAM_GREASE_QUIC_BIT 0x2AB2U /* https://datatracker.ietf.org/doc/html/rfc9368 */ -#define NGTCP2_TRANSPORT_PARAM_VERSION_INFORMATION 0x11 +#define NGTCP2_TRANSPORT_PARAM_VERSION_INFORMATION 0x11U /* NGTCP2_MAX_STREAMS is the maximum number of streams. */ #define NGTCP2_MAX_STREAMS (1LL << 60) diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h index c71ff364e3..278b30ca07 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h @@ -275,16 +275,24 @@ typedef struct ngtcp2_mem { /** * @macro * + * .. warning:: + * + * .. version-deprecated:: 1.1.0 + * * :macro:`NGTCP2_PROTO_VER_MAX` is the highest QUIC version that this - * library supports. Deprecated since v1.1.0. + * library supports. */ #define NGTCP2_PROTO_VER_MAX NGTCP2_PROTO_VER_V1 /** * @macro * + * .. warning:: + * + * .. version-deprecated:: 1.1.0 + * * :macro:`NGTCP2_PROTO_VER_MIN` is the lowest QUIC version that this - * library supports. Deprecated since v1.1.0. + * library supports. */ #define NGTCP2_PROTO_VER_MIN NGTCP2_PROTO_VER_V1 @@ -324,11 +332,13 @@ typedef struct ngtcp2_mem { /** * @macro * + * .. warning:: + * + * .. version-deprecated:: 1.17.0 + * Path MTU Discovery is not capped to this value anymore. + * * :macro:`NGTCP2_MAX_PMTUD_UDP_PAYLOAD_SIZE` was the maximum UDP * datagram payload size that Path MTU Discovery can discover. - * - * Deprecated since v1.17.0. Path MTU Discovery is not capped to this - * value anymore. */ #define NGTCP2_MAX_PMTUD_UDP_PAYLOAD_SIZE 1452 @@ -1186,10 +1196,12 @@ typedef struct ngtcp2_pkt_hd { /** * @struct * - * :type:`ngtcp2_pkt_stateless_reset` represents Stateless Reset. + * .. warning:: * - * Deprecated since v1.22.0. Use :type:`ngtcp2_pkt_stateless_reset2` - * instead. + * .. version-deprecated:: 1.22.0 + * Use :type:`ngtcp2_pkt_stateless_reset2` instead. + * + * :type:`ngtcp2_pkt_stateless_reset` represents Stateless Reset. */ typedef struct ngtcp2_pkt_stateless_reset { /** @@ -1212,7 +1224,7 @@ typedef struct ngtcp2_pkt_stateless_reset { * * :type:`ngtcp2_stateless_reset_token` stores stateless reset token. * - * This struct has been available since v1.22.0. + * .. version-added:: 1.22.0 */ typedef struct ngtcp2_stateless_reset_token { uint8_t data[NGTCP2_STATELESS_RESET_TOKENLEN]; @@ -1223,7 +1235,7 @@ typedef struct ngtcp2_stateless_reset_token { * * :type:`ngtcp2_pkt_stateless_reset2` represents Stateless Reset. * - * This struct has been available since v1.22.0. + * .. version-added:: 1.22.0 */ typedef struct ngtcp2_pkt_stateless_reset2 { /** @@ -1350,6 +1362,14 @@ typedef struct sockaddr ngtcp2_sockaddr; * the generic struct sockaddr_in defined in ngtcp2.h. */ typedef struct sockaddr_in ngtcp2_sockaddr_in; +/** + * @typedef + * + * :type:`ngtcp2_in_addr` is typedefed to struct in_addr. If + * :macro:`NGTCP2_USE_GENERIC_SOCKADDR` is defined, it is typedefed to + * the generic struct in_addr defined in ngtcp2.h. + */ +typedef struct in_addr ngtcp2_in_addr; /** * @typedef * @@ -1358,6 +1378,14 @@ typedef struct sockaddr_in ngtcp2_sockaddr_in; * to the generic struct sockaddr_in6 defined in ngtcp2.h. */ typedef struct sockaddr_in6 ngtcp2_sockaddr_in6; +/** + * @typedef + * + * :type:`ngtcp2_in6_addr` is typedefed to struct in6_addr. If + * :macro:`NGTCP2_USE_GENERIC_SOCKADDR` is defined, it is typedefed to + * the generic struct in6_addr defined in ngtcp2.h. + */ +typedef struct in6_addr ngtcp2_in6_addr; /** * @typedef * @@ -1652,50 +1680,59 @@ typedef struct ngtcp2_conn_info { * packets which have not been acknowledged. */ uint64_t bytes_in_flight; - /* The following fields have been added since NGTCP2_CONN_INFO_V2. */ + /* The following fields have been added since + NGTCP2_CONN_INFO_V2. */ /** - * :member:`pkt_sent` is the number of QUIC packets sent. This - * field has been available since v1.16.0. + * :member:`pkt_sent` is the number of QUIC packets sent. + * + * .. version-added:: 1.16.0 */ uint64_t pkt_sent; /** * :member:`bytes_sent` is the number of bytes (the sum of QUIC - * packet length) sent. This field has been available since - * v1.16.0. + * packet length) sent. + * + * .. version-added:: 1.16.0 */ uint64_t bytes_sent; /** * :member:`pkt_recv` is the number of QUIC packets received, - * excluding discarded ones. This field has been available since - * v1.16.0. + * excluding discarded ones. + * + * .. version-added:: 1.16.0 */ uint64_t pkt_recv; /** * :member:`bytes_recv` is the number of bytes (the sum of QUIC - * packet length) received, excluding discarded ones. This field - * has been available since v1.16.0. + * packet length) received, excluding discarded ones. + * + * .. version-added:: 1.16.0 */ uint64_t bytes_recv; /** * :member:`pkt_lost` is the number of QUIC packets that are - * considered lost, excluding PMTUD packets. This field has been - * available since v1.16.0. + * considered lost, excluding PMTUD packets. + * + * .. version-added:: 1.16.0 */ uint64_t pkt_lost; /** * :member:`bytes_lost` is the number of bytes (the sum of QUIC - * packet length) lost, excluding PMTUD packets. This field has - * been available since v1.16.0. + * packet length) lost, excluding PMTUD packets. + * + * .. version-added:: 1.16.0 */ uint64_t bytes_lost; /** - * :member:`ping_recv` is the number of PING frames received. This - * field has been available since v1.16.0. + * :member:`ping_recv` is the number of PING frames received. + * + * .. version-added:: 1.16.0 */ uint64_t ping_recv; /** * :member:`pkt_discarded` is the number of QUIC packets discarded. - * This field has been available since v1.16.0. + * + * .. version-added:: 1.16.0 */ uint64_t pkt_discarded; } ngtcp2_conn_info; @@ -1723,12 +1760,32 @@ typedef enum ngtcp2_cc_algo { /** * @functypedef * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use :type:`ngtcp2_log_write` instead. + * * :type:`ngtcp2_printf` is a callback function for logging. * |user_data| is the same object passed to `ngtcp2_conn_client_new` * or `ngtcp2_conn_server_new`. */ typedef void (*ngtcp2_printf)(void *user_data, const char *format, ...); +/** + * @functypedef + * + * :type:`ngtcp2_log_write` is a callback function for logging. + * |user_data| is the same object passed to `ngtcp2_conn_client_new` + * or `ngtcp2_conn_server_new`. The caller guarantees that the memory + * region [|msg|, |msg| + |len|], inclusive, are writable, and + * |msg|[|len|] == '\0'. If application needs to emit a single line + * with a line terminator, one can do msg[len] = '\n', and write |len| + * + 1 bytes from |msg|. + * + * .. version-added:: 1.23.0 + */ +typedef void (*ngtcp2_log_write)(void *user_data, char *msg, size_t len); + /** * @macrosection * @@ -1803,7 +1860,8 @@ typedef enum ngtcp2_token_type { #define NGTCP2_SETTINGS_V1 1 #define NGTCP2_SETTINGS_V2 2 #define NGTCP2_SETTINGS_V3 3 -#define NGTCP2_SETTINGS_VERSION NGTCP2_SETTINGS_V3 +#define NGTCP2_SETTINGS_V4 4 +#define NGTCP2_SETTINGS_VERSION NGTCP2_SETTINGS_V4 /** * @struct @@ -1830,6 +1888,11 @@ typedef struct ngtcp2_settings { */ ngtcp2_duration initial_rtt; /** + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use :member:`log_write` instead. + * * :member:`log_printf` is a function that the library uses to write * logs. ``NULL`` means no logging output. It is nothing to do * with qlog. @@ -2009,14 +2072,16 @@ typedef struct ngtcp2_settings { * or equal to :macro:`NGTCP2_MAX_TX_UDP_PAYLOAD_SIZE`. Otherwise * the behavior is undefined. The maximum value in this array * should be set to :member:`max_tx_udp_payload_size`. If this - * field is not set, the predefined PMTUD probes are made. This - * field has been available since v1.4.0. + * field is not set, the predefined PMTUD probes are made. + * + * .. version-added:: 1.4.0 */ const uint16_t *pmtud_probes; /** * :member:`pmtud_probeslen` is the number of elements that are - * contained in the array pointed by :member:`pmtud_probes`. This - * field has been available since v1.4.0. + * contained in the array pointed by :member:`pmtud_probes`. + * + * .. version-added:: 1.4.0 */ size_t pmtud_probeslen; /* The following fields have been added since NGTCP2_SETTINGS_V3. */ @@ -2026,16 +2091,31 @@ typedef struct ngtcp2_settings { * activity from a remote endpoint. If detected, certain amount of * tokens are consumed. If no tokens are available to consume, the * connection is closed. The rate of token generation is specified - * by :member:`glitch_ratelim_rate`. This field has been available - * since v1.15.0. + * by :member:`glitch_ratelim_rate`. + * + * .. version-added:: 1.15.0 */ uint64_t glitch_ratelim_burst; /** * :member:`glitch_ratelim_rate` is the number of tokens generated * per second. See :member:`glitch_ratelim_burst` for "glitch" rate - * limiter. This field has been available since v1.15.0. + * limiter. + * + * .. version-added:: 1.15.0 */ uint64_t glitch_ratelim_rate; + /* The following fields have been added since NGTCP2_SETTINGS_V4. */ + /** + * :member:`log_write` is the callback function when a single log + * message is emitted. If both :member:`log_write` and + * :member:`log_printf` are specified, the former has precedence. + * If both :member:`log_write` and :member:`log_printf` are + * ``NULL``, logging is disabled. For qlog, see + * :member:`qlog_write`. + * + * .. version-added:: 1.23.0 + */ + ngtcp2_log_write log_write; } ngtcp2_settings; /** @@ -2461,6 +2541,11 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_pkt_decode_hd_short(ngtcp2_pkt_hd *dest, /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use `ngtcp2_pkt_write_stateless_reset2` instead. + * * `ngtcp2_pkt_write_stateless_reset` writes Stateless Reset packet in * the buffer pointed by |dest| whose length is |destlen|. * |stateless_reset_token| is a pointer to the Stateless Reset Token, @@ -2481,9 +2566,6 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_pkt_decode_hd_short(ngtcp2_pkt_hd *dest, * :macro:`NGTCP2_ERR_INVALID_ARGUMENT` * |randlen| is strictly less than * :macro:`NGTCP2_MIN_STATELESS_RESET_RANDLEN`. - * - * Deprecated since v1.22.0. Use `ngtcp2_pkt_write_stateless_reset2` - * instead. */ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_pkt_write_stateless_reset( uint8_t *dest, size_t destlen, const uint8_t *stateless_reset_token, @@ -2511,7 +2593,7 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_pkt_write_stateless_reset( * |randlen| is strictly less than * :macro:`NGTCP2_MIN_STATELESS_RESET_RANDLEN`. * - * This function has been available since v1.22.0. + * .. version-added:: 1.22.0 */ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_pkt_write_stateless_reset2( uint8_t *dest, size_t destlen, const ngtcp2_stateless_reset_token *token, @@ -2966,6 +3048,11 @@ typedef int (*ngtcp2_acked_stream_data_offset)( /** * @functypedef * + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use :type:`ngtcp2_recv_stateless_reset2` instead. + * * :type:`ngtcp2_recv_stateless_reset` is a callback function which is * called when Stateless Reset packet is received. The stateless * reset details are given in |sr|. @@ -2973,9 +3060,6 @@ typedef int (*ngtcp2_acked_stream_data_offset)( * The implementation of this callback should return 0 if it succeeds. * Returning :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library * call return immediately. - * - * Deprecated since v1.22.0. Use :type:`ngtcp2_recv_stateless_reset2` - * instead. */ typedef int (*ngtcp2_recv_stateless_reset)(ngtcp2_conn *conn, const ngtcp2_pkt_stateless_reset *sr, @@ -3028,6 +3112,11 @@ typedef void (*ngtcp2_rand)(uint8_t *dest, size_t destlen, /** * @functypedef * + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use :type:`ngtcp2_get_new_connection_id2` instead. + * * :type:`ngtcp2_get_new_connection_id` is a callback function to ask * an application for new connection ID. Application must generate * new unused connection ID with the exact |cidlen| bytes, and store @@ -3040,9 +3129,6 @@ typedef void (*ngtcp2_rand)(uint8_t *dest, size_t destlen, * The callback function must return 0 if it succeeds. Returning * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return * immediately. - * - * Deprecated since v1.22.0. Use - * :type:`ngtcp2_get_new_connection_id2` instead. */ typedef int (*ngtcp2_get_new_connection_id)(ngtcp2_conn *conn, ngtcp2_cid *cid, uint8_t *token, size_t cidlen, @@ -3187,7 +3273,7 @@ typedef int (*ngtcp2_path_validation)(ngtcp2_conn *conn, uint32_t flags, * address, leave :member:`dest->local ` * unmodified, or copy the value of :member:`local * ` field of the current network path obtained - * from `ngtcp2_conn_get_path()`. Both :member:`dest->local.addr + * from `ngtcp2_conn_get_path2()`. Both :member:`dest->local.addr * ` and :member:`dest->remote.addr * ` point to buffers which are at least * sizeof(:type:`ngtcp2_sockaddr_union`) bytes long, respectively. If @@ -3227,6 +3313,11 @@ typedef enum ngtcp2_connection_id_status_type { /** * @functypedef * + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use :type:`ngtcp2_connection_id_status2` instead. + * * :type:`ngtcp2_connection_id_status` is a callback function which is * called when the status of Destination Connection ID changes. * @@ -3240,9 +3331,6 @@ typedef enum ngtcp2_connection_id_status_type { * The callback function must return 0 if it succeeds. Returning * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return * immediately. - * - * Deprecated since v1.22.0. Use :type:`ngtcp2_connection_id_status2` - * instead. */ typedef int (*ngtcp2_connection_id_status)( ngtcp2_conn *conn, ngtcp2_connection_id_status_type type, uint64_t seq, @@ -3361,6 +3449,11 @@ typedef int (*ngtcp2_lost_datagram)(ngtcp2_conn *conn, uint64_t dgram_id, /** * @functypedef * + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use :type:`ngtcp2_get_path_challenge_data2` instead. + * * :type:`ngtcp2_get_path_challenge_data` is a callback function to * ask an application for new data that is sent in PATH_CHALLENGE * frame. Application must generate new unpredictable, exactly @@ -3370,9 +3463,6 @@ typedef int (*ngtcp2_lost_datagram)(ngtcp2_conn *conn, uint64_t dgram_id, * The callback function must return 0 if it succeeds. Returning * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return * immediately. - * - * Deprecated since v1.22.0. Use - * :type:`ngtcp2_get_path_challenge_data2` instead. */ typedef int (*ngtcp2_get_path_challenge_data)(ngtcp2_conn *conn, uint8_t *data, void *user_data); @@ -3455,7 +3545,7 @@ typedef int (*ngtcp2_tls_early_data_rejected)(ngtcp2_conn *conn, * Returning :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library * call return immediately. * - * This type has been available since v1.22.0 + * .. version-added:: 1.22.0 */ typedef int (*ngtcp2_recv_stateless_reset2)( ngtcp2_conn *conn, const ngtcp2_pkt_stateless_reset2 *sr, void *user_data); @@ -3473,7 +3563,7 @@ typedef int (*ngtcp2_recv_stateless_reset2)( * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return * immediately. * - * This type has been available since v1.22.0 + * .. version-added:: 1.22.0 */ typedef int (*ngtcp2_get_new_connection_id2)( ngtcp2_conn *conn, ngtcp2_cid *cid, ngtcp2_stateless_reset_token *token, @@ -3496,7 +3586,7 @@ typedef int (*ngtcp2_get_new_connection_id2)( * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return * immediately. * - * This type has been available since v1.22.0 + * .. version-added:: 1.22.0 */ typedef int (*ngtcp2_connection_id_status2)( ngtcp2_conn *conn, ngtcp2_connection_id_status_type type, uint64_t seq, @@ -3508,7 +3598,7 @@ typedef int (*ngtcp2_connection_id_status2)( * * :type:`ngtcp2_path_challenge_data` stores path challenge data. * - * This type has been available since v1.22.0. + * .. version-added:: 1.22.0 */ typedef struct ngtcp2_path_challenge_data { uint8_t data[NGTCP2_PATH_CHALLENGE_DATALEN]; @@ -3527,7 +3617,7 @@ typedef struct ngtcp2_path_challenge_data { * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return * immediately. * - * This type has been available since v1.22.0. + * .. version-added:: 1.22.0 */ typedef int (*ngtcp2_get_path_challenge_data2)(ngtcp2_conn *conn, ngtcp2_path_challenge_data *data, @@ -3620,14 +3710,17 @@ typedef struct ngtcp2_callbacks { */ ngtcp2_stream_close stream_close; /** + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use :member:`recv_stateless_reset2` instead. If both + * :member:`recv_stateless_reset` and + * :member:`recv_stateless_reset2` are set, the latter has the + * precedence. + * * :member:`recv_stateless_reset` is a callback function which is * invoked when Stateless Reset packet is received. This callback * function is optional. - * - * Deprecated since v1.22.0. Use :member:`recv_stateless_reset2` - * instead. If both :member:`recv_stateless_reset` and - * :member:`recv_stateless_reset2` are set, the latter has the - * precedence. */ ngtcp2_recv_stateless_reset recv_stateless_reset; /** @@ -3657,15 +3750,18 @@ typedef struct ngtcp2_callbacks { */ ngtcp2_rand rand; /** + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use :member:`get_new_connection_id2` instead. If both + * :member:`get_new_connection_id` and + * :member:`get_new_connection_id2` are set, the latter has the + * precedence. + * * :member:`get_new_connection_id` is a callback function which is * invoked when the library needs new connection ID. Either this * callback function or :member:`get_new_connection_id2` must be * specified. - * - * Deprecated since v1.22.0. Use :member:`get_new_connection_id2` - * instead. If both :member:`get_new_connection_id` and - * :member:`get_new_connection_id2` are set, the latter has the - * precedence. */ ngtcp2_get_new_connection_id get_new_connection_id; /** @@ -3722,14 +3818,17 @@ typedef struct ngtcp2_callbacks { */ ngtcp2_extend_max_stream_data extend_max_stream_data; /** + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use :member:`dcid_status2` instead. If both + * :member:`dcid_status` and :member:`dcid_status2` are set, the + * latter has the precedence. + * * :member:`dcid_status` is a callback function which is invoked * when the new Destination Connection ID is activated, or the * activated Destination Connection ID is now deactivated. This * callback function is optional. - * - * Deprecated since v1.22.0. Use :member:`dcid_status2` instead. - * If both :member:`dcid_status` and :member:`dcid_status2` are set, - * the latter has the precedence. */ ngtcp2_connection_id_status dcid_status; /** @@ -3777,12 +3876,14 @@ typedef struct ngtcp2_callbacks { */ ngtcp2_lost_datagram lost_datagram; /** + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use :member:`get_path_challenge_data2` instead. + * * :member:`get_path_challenge_data` is a callback function which is * invoked when the library needs new data sent along with * PATH_CHALLENGE frame. This callback must be specified. - * - * Deprecated since v1.22.0. Use :member:`get_path_challenge_data2` - * instead. */ ngtcp2_get_path_challenge_data get_path_challenge_data; /** @@ -3819,40 +3920,48 @@ typedef struct ngtcp2_callbacks { * is only used by client. */ ngtcp2_tls_early_data_rejected tls_early_data_rejected; - /* The following fields have been added since NGTCP2_CALLBACKS_V2. */ + /* The following fields have been added since + NGTCP2_CALLBACKS_V2. */ /** * :member:`begin_path_validation` is a callback function which is - * invoked when a path validation has started. This field is - * available since v1.14.0. + * invoked when a path validation has started. + * + * .. version-added:: 1.14.0 */ ngtcp2_begin_path_validation begin_path_validation; - /* The following fields have been added since NGTCP2_CALLBACKS_V3. */ + /* The following fields have been added since + NGTCP2_CALLBACKS_V3. */ /** * :member:`recv_stateless_reset2` is a callback function which is * invoked when Stateless Reset packet is received. This callback - * function is optional. This field is available since v1.22.0. + * function is optional. + * + * .. version-added:: 1.22.0 */ ngtcp2_recv_stateless_reset2 recv_stateless_reset2; /** * :member:`get_new_connection_id2` is a callback function which is * invoked when the library needs new connection ID. This callback - * function must be specified. This field is available since - * v1.22.0. + * function must be specified. + * + * .. version-added:: 1.22.0 */ ngtcp2_get_new_connection_id2 get_new_connection_id2; /** * :member:`dcid_status2` is a callback function which is invoked * when the new Destination Connection ID is activated, or the * activated Destination Connection ID is now deactivated. This - * callback function is optional. This field is available since - * v1.22.0. + * callback function is optional. + * + * .. version-added:: 1.22.0 */ ngtcp2_connection_id_status2 dcid_status2; /** * :member:`get_path_challenge_data2` is a callback function which * is invoked when the library needs new data sent along with - * PATH_CHALLENGE frame. This callback must be specified. This - * field is available since v1.22.0. + * PATH_CHALLENGE frame. This callback must be specified. + * + * .. version-added:: 1.22.0 */ ngtcp2_get_path_challenge_data2 get_path_challenge_data2; } ngtcp2_callbacks; @@ -4046,7 +4155,7 @@ NGTCP2_EXTERN void ngtcp2_conn_del(ngtcp2_conn *conn); * `ngtcp2_conn_write_connection_close` makes a connection enter * this state. * :macro:`NGTCP2_ERR_CRYPTO` - * An error happened in TLS stack. `ngtcp2_conn_get_tls_alert` + * An error happened in TLS stack. `ngtcp2_conn_get_tls_alert2` * returns TLS alert if set. * * If any other negative error is returned, call @@ -4080,7 +4189,7 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_write_pkt_versioned( * This function returns 0 if it succeeds. In general, this function * returns the same set of error codes from `ngtcp2_conn_read_pkt`. * - * This function has been available since v1.22.0. + * .. version-added:: 1.22.0 */ NGTCP2_EXTERN int ngtcp2_conn_continue_handshake(ngtcp2_conn *conn, ngtcp2_tstamp ts); @@ -4098,11 +4207,24 @@ NGTCP2_EXTERN void ngtcp2_conn_tls_handshake_completed(ngtcp2_conn *conn); /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_handshake_completed2` instead. + * * `ngtcp2_conn_get_handshake_completed` returns nonzero if QUIC * handshake has completed. */ NGTCP2_EXTERN int ngtcp2_conn_get_handshake_completed(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_get_handshake_completed2` returns nonzero if QUIC + * handshake has completed. + */ +NGTCP2_EXTERN int ngtcp2_conn_get_handshake_completed2(const ngtcp2_conn *conn); + /** * @function * @@ -4353,38 +4475,70 @@ NGTCP2_EXTERN int ngtcp2_conn_initiate_key_update(ngtcp2_conn *conn, * can set the error code (e.g., * :macro:`NGTCP2_ERR_MALFORMED_TRANSPORT_PARAM`) using this function. * - * See also `ngtcp2_conn_get_tls_error`. + * See also `ngtcp2_conn_get_tls_error2`. */ NGTCP2_EXTERN void ngtcp2_conn_set_tls_error(ngtcp2_conn *conn, int liberr); /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_tls_error2` instead. + * * `ngtcp2_conn_get_tls_error` returns the value set by * `ngtcp2_conn_set_tls_error`. If no value is set, this function * returns 0. */ NGTCP2_EXTERN int ngtcp2_conn_get_tls_error(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_get_tls_error2` returns the value set by + * `ngtcp2_conn_set_tls_error`. If no value is set, this function + * returns 0. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN int ngtcp2_conn_get_tls_error2(const ngtcp2_conn *conn); + /** * @function * * `ngtcp2_conn_set_tls_alert` sets a TLS alert |alert| generated by a * TLS stack of a local endpoint to |conn|. * - * See also `ngtcp2_conn_get_tls_alert`. + * See also `ngtcp2_conn_get_tls_alert2`. */ NGTCP2_EXTERN void ngtcp2_conn_set_tls_alert(ngtcp2_conn *conn, uint8_t alert); /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_tls_alert2` instead. + * * `ngtcp2_conn_get_tls_alert` returns the value set by * `ngtcp2_conn_set_tls_alert`. If no value is set, this function * returns 0. */ NGTCP2_EXTERN uint8_t ngtcp2_conn_get_tls_alert(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_get_tls_alert2` returns the value set by + * `ngtcp2_conn_set_tls_alert`. If no value is set, this function + * returns 0. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN uint8_t ngtcp2_conn_get_tls_alert2(const ngtcp2_conn *conn); + /** * @function * @@ -4401,6 +4555,11 @@ NGTCP2_EXTERN void ngtcp2_conn_set_keep_alive_timeout(ngtcp2_conn *conn, /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_expiry2` instead. + * * `ngtcp2_conn_get_expiry` returns the next expiry time. It returns * ``UINT64_MAX`` if there is no next expiry. * @@ -4408,6 +4567,18 @@ NGTCP2_EXTERN void ngtcp2_conn_set_keep_alive_timeout(ngtcp2_conn *conn, */ NGTCP2_EXTERN ngtcp2_tstamp ngtcp2_conn_get_expiry(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_get_expiry2` returns the next expiry time. It returns + * ``UINT64_MAX`` if there is no next expiry. + * + * Call `ngtcp2_conn_handle_expiry` when the expiry time has passed. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN ngtcp2_tstamp ngtcp2_conn_get_expiry2(const ngtcp2_conn *conn); + /** * @function * @@ -4424,7 +4595,7 @@ NGTCP2_EXTERN ngtcp2_tstamp ngtcp2_conn_get_expiry(ngtcp2_conn *conn); * `ngtcp2_conn_read_pkt` and `ngtcp2_conn_handle_expiry` before * calling `ngtcp2_conn_writev_stream`. After calling * `ngtcp2_conn_writev_stream`, new expiry is set. The application - * should call `ngtcp2_conn_get_expiry` to get a new deadline and set + * should call `ngtcp2_conn_get_expiry2` to get a new deadline and set * the timer. */ NGTCP2_EXTERN int ngtcp2_conn_handle_expiry(ngtcp2_conn *conn, @@ -4433,10 +4604,24 @@ NGTCP2_EXTERN int ngtcp2_conn_handle_expiry(ngtcp2_conn *conn, /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_pto2` instead. + * * `ngtcp2_conn_get_pto` returns Probe Timeout (PTO). */ NGTCP2_EXTERN ngtcp2_duration ngtcp2_conn_get_pto(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_get_pto2` returns Probe Timeout (PTO). + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN ngtcp2_duration ngtcp2_conn_get_pto2(const ngtcp2_conn *conn); + /** * @function * @@ -4464,6 +4649,11 @@ NGTCP2_EXTERN int ngtcp2_conn_decode_and_set_remote_transport_params( /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_remote_transport_params2` instead. + * * `ngtcp2_conn_get_remote_transport_params` returns a pointer to the * remote QUIC transport parameters. If no remote transport * parameters are set, it returns NULL. @@ -4474,6 +4664,23 @@ ngtcp2_conn_get_remote_transport_params(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_remote_transport_params2` returns a pointer to the + * remote QUIC transport parameters. If no remote transport + * parameters are set, it returns NULL. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN const ngtcp2_transport_params * +ngtcp2_conn_get_remote_transport_params2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_encode_0rtt_transport_params2` instead. + * * `ngtcp2_conn_encode_0rtt_transport_params` encodes the QUIC * transport parameters that are used for 0-RTT data in the buffer * pointed by |dest| of length |destlen|. It includes at least the @@ -4511,6 +4718,48 @@ ngtcp2_ssize ngtcp2_conn_encode_0rtt_transport_params(ngtcp2_conn *conn, uint8_t *dest, size_t destlen); +/** + * @function + * + * `ngtcp2_conn_encode_0rtt_transport_params2` encodes the QUIC + * transport parameters that are used for 0-RTT data in the buffer + * pointed by |dest| of length |destlen|. It includes at least the + * following fields: + * + * - :member:`ngtcp2_transport_params.initial_max_streams_bidi` + * - :member:`ngtcp2_transport_params.initial_max_streams_uni` + * - :member:`ngtcp2_transport_params.initial_max_stream_data_bidi_local` + * - :member:`ngtcp2_transport_params.initial_max_stream_data_bidi_remote` + * - :member:`ngtcp2_transport_params.initial_max_stream_data_uni` + * - :member:`ngtcp2_transport_params.initial_max_data` + * - :member:`ngtcp2_transport_params.active_connection_id_limit` + * - :member:`ngtcp2_transport_params.max_datagram_frame_size` + * + * If |conn| is initialized as server, the following additional fields + * are also included: + * + * - :member:`ngtcp2_transport_params.max_idle_timeout` + * - :member:`ngtcp2_transport_params.max_udp_payload_size` + * - :member:`ngtcp2_transport_params.disable_active_migration` + * + * If |conn| is initialized as client, these parameters are + * synthesized from the remote transport parameters received from + * server. Otherwise, they are the local transport parameters that + * are set by the local endpoint. + * + * This function returns the number of bytes written, or one of the + * following negative error codes: + * + * :macro:`NGTCP2_ERR_NOBUF` + * Buffer is too small. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN +ngtcp2_ssize ngtcp2_conn_encode_0rtt_transport_params2(const ngtcp2_conn *conn, + uint8_t *dest, + size_t destlen); + /** * @function * @@ -4570,6 +4819,11 @@ NGTCP2_EXTERN int ngtcp2_conn_set_local_transport_params_versioned( /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_local_transport_params2` instead. + * * `ngtcp2_conn_get_local_transport_params` returns a pointer to the * local QUIC transport parameters. */ @@ -4579,6 +4833,22 @@ ngtcp2_conn_get_local_transport_params(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_local_transport_params2` returns a pointer to the + * local QUIC transport parameters. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN const ngtcp2_transport_params * +ngtcp2_conn_get_local_transport_params2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_encode_local_transport_params2` instead. + * * `ngtcp2_conn_encode_local_transport_params` encodes the local QUIC * transport parameters in |dest| of length |destlen|. * @@ -4591,6 +4861,23 @@ ngtcp2_conn_get_local_transport_params(ngtcp2_conn *conn); NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_encode_local_transport_params( ngtcp2_conn *conn, uint8_t *dest, size_t destlen); +/** + * @function + * + * `ngtcp2_conn_encode_local_transport_params2` encodes the local QUIC + * transport parameters in |dest| of length |destlen|. + * + * This function returns the number of bytes written, or one of the + * following negative error codes: + * + * :macro:`NGTCP2_ERR_NOBUF` + * Buffer is too small. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_encode_local_transport_params2( + const ngtcp2_conn *conn, uint8_t *dest, size_t destlen); + /** * @function * @@ -5095,6 +5382,11 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_writev_datagram_versioned( /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_in_closing_period2` instead. + * * `ngtcp2_conn_in_closing_period` returns nonzero if |conn| is in the * closing period. */ @@ -5103,11 +5395,36 @@ NGTCP2_EXTERN int ngtcp2_conn_in_closing_period(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_in_closing_period2` returns nonzero if |conn| is in + * the closing period. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN int ngtcp2_conn_in_closing_period2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_in_draining_period2` instead. + * * `ngtcp2_conn_in_draining_period` returns nonzero if |conn| is in * the draining period. */ NGTCP2_EXTERN int ngtcp2_conn_in_draining_period(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_in_draining_period2` returns nonzero if |conn| is in + * the draining period. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN int ngtcp2_conn_in_draining_period2(const ngtcp2_conn *conn); + /** * @function * @@ -5174,6 +5491,11 @@ NGTCP2_EXTERN void ngtcp2_conn_extend_max_streams_uni(ngtcp2_conn *conn, /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_dcid2` instead. + * * `ngtcp2_conn_get_dcid` returns the non-NULL pointer to the current * Destination Connection ID. If no Destination Connection ID is * present, the return value is not ``NULL``, and its :member:`datalen @@ -5184,6 +5506,23 @@ NGTCP2_EXTERN const ngtcp2_cid *ngtcp2_conn_get_dcid(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_dcid2` returns the non-NULL pointer to the current + * Destination Connection ID. If no Destination Connection ID is + * present, the return value is not ``NULL``, and its :member:`datalen + * ` field is 0. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN const ngtcp2_cid *ngtcp2_conn_get_dcid2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_client_initial_dcid2` instead. + * * `ngtcp2_conn_get_client_initial_dcid` returns the non-NULL pointer * to the Destination Connection ID that client sent in its Initial * packet. If the Destination Connection ID is not present, the @@ -5196,7 +5535,26 @@ ngtcp2_conn_get_client_initial_dcid(ngtcp2_conn *conn); /** * @function * - * `ngtcp2_conn_get_scid` writes the all Source Connection IDs which a + * `ngtcp2_conn_get_client_initial_dcid2` returns the non-NULL pointer + * to the Destination Connection ID that client sent in its Initial + * packet. If the Destination Connection ID is not present, the + * return value is not ``NULL``, and its :member:`datalen + * ` field is 0. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN const ngtcp2_cid * +ngtcp2_conn_get_client_initial_dcid2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_scid2` instead. + * + * `ngtcp2_conn_get_scid` writes all Source Connection IDs which a * local endpoint has provided to a remote endpoint, and are not * retired in |dest|. If |dest| is NULL, this function does not write * anything, and returns the number of Source Connection IDs that @@ -5208,15 +5566,35 @@ ngtcp2_conn_get_client_initial_dcid(ngtcp2_conn *conn); NGTCP2_EXTERN size_t ngtcp2_conn_get_scid(ngtcp2_conn *conn, ngtcp2_cid *dest); /** - * @struct + * @function * - * :type:`ngtcp2_cid_token` is the convenient struct to store - * Connection ID, its associated path, and stateless reset token. + * `ngtcp2_conn_get_scid2` writes all Source Connection IDs which a + * local endpoint has provided to a remote endpoint, and are not + * retired in |dest|. If |dest| is NULL, this function does not write + * anything, and returns the number of Source Connection IDs that + * would otherwise be written to the provided buffer. The buffer + * pointed by |dest| must have sizeof(:type:`ngtcp2_cid`) * n bytes + * available, where n is the return value of `ngtcp2_conn_get_scid2` + * with |dest| == NULL. * - * Deprecated since v1.22.0. Use :type:`ngtcp2_cid_token2` instead. + * .. version-added:: 1.23.0 */ -typedef struct ngtcp2_cid_token { - /** +NGTCP2_EXTERN size_t ngtcp2_conn_get_scid2(const ngtcp2_conn *conn, + ngtcp2_cid *dest); + +/** + * @struct + * + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use :type:`ngtcp2_cid_token2` instead. + * + * :type:`ngtcp2_cid_token` is the convenient struct to store + * Connection ID, its associated path, and stateless reset token. + */ +typedef struct ngtcp2_cid_token { + /** * :member:`seq` is the sequence number of this Connection ID. */ uint64_t seq; @@ -5244,7 +5622,12 @@ typedef struct ngtcp2_cid_token { /** * @function * - * `ngtcp2_conn_get_active_dcid` writes the all active Destination + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use `ngtcp2_conn_get_active_dcid3` instead. + * + * `ngtcp2_conn_get_active_dcid` writes all active Destination * Connection IDs and their tokens to |dest|. Before handshake * completes, this function returns 0. If |dest| is NULL, this * function does not write anything, and returns the number of @@ -5253,9 +5636,6 @@ typedef struct ngtcp2_cid_token { * sizeof(:type:`ngtcp2_cid_token`) * n bytes available, where n is * the return value of `ngtcp2_conn_get_active_dcid` with |dest| == * NULL. - * - * Deprecated since v1.22.0. Use `ngtcp2_conn_get_active_dcid2` - * instead. */ NGTCP2_EXTERN size_t ngtcp2_conn_get_active_dcid(ngtcp2_conn *conn, ngtcp2_cid_token *dest); @@ -5266,7 +5646,7 @@ NGTCP2_EXTERN size_t ngtcp2_conn_get_active_dcid(ngtcp2_conn *conn, * :type:`ngtcp2_cid_token2` is the convenient struct to store * Connection ID, its associated path, and stateless reset token. * - * This type has been available since v1.22.0. + * .. version-added:: 1.22.0 */ typedef struct ngtcp2_cid_token2 { /** @@ -5297,7 +5677,12 @@ typedef struct ngtcp2_cid_token2 { /** * @function * - * `ngtcp2_conn_get_active_dcid2` writes the all active Destination + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_active_dcid3` instead. + * + * `ngtcp2_conn_get_active_dcid2` writes all active Destination * Connection IDs and their tokens to |dest|. Before handshake * completes, this function returns 0. If |dest| is NULL, this * function does not write anything, and returns the number of @@ -5307,7 +5692,7 @@ typedef struct ngtcp2_cid_token2 { * the return value of `ngtcp2_conn_get_active_dcid2` with |dest| == * NULL. * - * This function has been available since v1.22.0. + * .. version-added:: 1.22.0 */ NGTCP2_EXTERN size_t ngtcp2_conn_get_active_dcid2(ngtcp2_conn *conn, ngtcp2_cid_token2 *dest); @@ -5315,6 +5700,29 @@ NGTCP2_EXTERN size_t ngtcp2_conn_get_active_dcid2(ngtcp2_conn *conn, /** * @function * + * `ngtcp2_conn_get_active_dcid3` writes all active Destination + * Connection IDs and their tokens to |dest|. Before handshake + * completes, this function returns 0. If |dest| is NULL, this + * function does not write anything, and returns the number of + * Destination Connection IDs that would otherwise be written to the + * provided buffer. The buffer pointed by |dest| must have + * sizeof(:type:`ngtcp2_cid_token2`) * n bytes available, where n is + * the return value of `ngtcp2_conn_get_active_dcid3` with |dest| == + * NULL. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN size_t ngtcp2_conn_get_active_dcid3(const ngtcp2_conn *conn, + ngtcp2_cid_token2 *dest); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_client_chosen_version2` instead. + * * `ngtcp2_conn_get_client_chosen_version` returns the client chosen * version. */ @@ -5323,6 +5731,22 @@ NGTCP2_EXTERN uint32_t ngtcp2_conn_get_client_chosen_version(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_client_chosen_version2` returns the client chosen + * version. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN uint32_t +ngtcp2_conn_get_client_chosen_version2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_negotiated_version2` instead. + * * `ngtcp2_conn_get_negotiated_version` returns the negotiated * version. * @@ -5330,6 +5754,19 @@ NGTCP2_EXTERN uint32_t ngtcp2_conn_get_client_chosen_version(ngtcp2_conn *conn); */ NGTCP2_EXTERN uint32_t ngtcp2_conn_get_negotiated_version(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_get_negotiated_version2` returns the negotiated + * version. + * + * Until the version is negotiated, this function returns 0. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN uint32_t +ngtcp2_conn_get_negotiated_version2(const ngtcp2_conn *conn); + /** * @function * @@ -5358,6 +5795,11 @@ NGTCP2_EXTERN int ngtcp2_conn_tls_early_data_rejected(ngtcp2_conn *conn); /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_tls_early_data_rejected2`. + * * `ngtcp2_conn_get_tls_early_data_rejected` returns nonzero if * `ngtcp2_conn_tls_early_data_rejected` has been called. */ @@ -5366,6 +5808,22 @@ NGTCP2_EXTERN int ngtcp2_conn_get_tls_early_data_rejected(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_tls_early_data_rejected2` returns nonzero if + * `ngtcp2_conn_tls_early_data_rejected` has been called. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN int +ngtcp2_conn_get_tls_early_data_rejected2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_conn_info2` instead. + * * `ngtcp2_conn_get_conn_info` assigns connection statistics data to * |*cinfo|. */ @@ -5373,6 +5831,17 @@ NGTCP2_EXTERN void ngtcp2_conn_get_conn_info_versioned(ngtcp2_conn *conn, int conn_info_version, ngtcp2_conn_info *cinfo); +/** + * @function + * + * `ngtcp2_conn_get_conn_info2` assigns connection statistics data to + * |*cinfo|. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN void ngtcp2_conn_get_conn_info2_versioned( + const ngtcp2_conn *conn, int conn_info_version, ngtcp2_conn_info *cinfo); + /** * @function * @@ -5430,6 +5899,11 @@ NGTCP2_EXTERN void ngtcp2_conn_set_path_user_data(ngtcp2_conn *conn, /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_path2` instead. + * * `ngtcp2_conn_get_path` returns the current path. */ NGTCP2_EXTERN const ngtcp2_path *ngtcp2_conn_get_path(ngtcp2_conn *conn); @@ -5437,6 +5911,20 @@ NGTCP2_EXTERN const ngtcp2_path *ngtcp2_conn_get_path(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_path2` returns the current path. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN const ngtcp2_path *ngtcp2_conn_get_path2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_max_tx_udp_payload_size2` instead. + * * `ngtcp2_conn_get_max_tx_udp_payload_size` returns the maximum UDP * payload size that this local endpoint would send. This is the * value of :member:`ngtcp2_settings.max_tx_udp_payload_size` that is @@ -5447,6 +5935,24 @@ NGTCP2_EXTERN size_t ngtcp2_conn_get_max_tx_udp_payload_size(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_max_tx_udp_payload_size2` returns the maximum UDP + * payload size that this local endpoint would send. This is the + * value of :member:`ngtcp2_settings.max_tx_udp_payload_size` that is + * passed to `ngtcp2_conn_client_new` or `ngtcp2_conn_server_new`. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN size_t +ngtcp2_conn_get_max_tx_udp_payload_size2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_path_max_tx_udp_payload_size2` instead. + * * `ngtcp2_conn_get_path_max_tx_udp_payload_size` returns the maximum * UDP payload size for the current path. If * :member:`ngtcp2_settings.no_tx_udp_payload_size_shaping` is set to @@ -5457,6 +5963,21 @@ NGTCP2_EXTERN size_t ngtcp2_conn_get_max_tx_udp_payload_size(ngtcp2_conn *conn); NGTCP2_EXTERN size_t ngtcp2_conn_get_path_max_tx_udp_payload_size(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_get_path_max_tx_udp_payload_size2` returns the maximum + * UDP payload size for the current path. If + * :member:`ngtcp2_settings.no_tx_udp_payload_size_shaping` is set to + * nonzero, this function is equivalent to + * `ngtcp2_conn_get_max_tx_udp_payload_size2`. Otherwise, it returns + * the maximum UDP payload size that is probed for the current path. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN size_t +ngtcp2_conn_get_path_max_tx_udp_payload_size2(const ngtcp2_conn *conn); + /** * @function * @@ -5513,6 +6034,11 @@ NGTCP2_EXTERN int ngtcp2_conn_initiate_migration(ngtcp2_conn *conn, /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_max_data_left2` instead. + * * `ngtcp2_conn_get_max_data_left` returns the number of bytes that * this local endpoint can send in this connection without violating * connection-level flow control. @@ -5522,6 +6048,22 @@ NGTCP2_EXTERN uint64_t ngtcp2_conn_get_max_data_left(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_max_data_left2` returns the number of bytes that + * this local endpoint can send in this connection without violating + * connection-level flow control. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN uint64_t ngtcp2_conn_get_max_data_left2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_max_stream_data_left2` instead. + * * `ngtcp2_conn_get_max_stream_data_left` returns the number of bytes * that this local endpoint can send to a stream identified by * |stream_id| without violating stream-level flow control. If no @@ -5533,6 +6075,24 @@ NGTCP2_EXTERN uint64_t ngtcp2_conn_get_max_stream_data_left(ngtcp2_conn *conn, /** * @function * + * `ngtcp2_conn_get_max_stream_data_left2` returns the number of bytes + * that this local endpoint can send to a stream identified by + * |stream_id| without violating stream-level flow control. If no + * such stream is found, this function returns 0. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN uint64_t ngtcp2_conn_get_max_stream_data_left2( + const ngtcp2_conn *conn, int64_t stream_id); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_streams_bidi_left2` instead. + * * `ngtcp2_conn_get_streams_bidi_left` returns the number of * bidirectional streams which the local endpoint can open without * violating stream concurrency limit. @@ -5542,6 +6102,23 @@ NGTCP2_EXTERN uint64_t ngtcp2_conn_get_streams_bidi_left(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_streams_bidi_left2` returns the number of + * bidirectional streams which the local endpoint can open without + * violating stream concurrency limit. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN uint64_t +ngtcp2_conn_get_streams_bidi_left2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_streams_uni_left2` instead. + * * `ngtcp2_conn_get_streams_uni_left` returns the number of * unidirectional streams which the local endpoint can open without * violating stream concurrency limit. @@ -5551,12 +6128,40 @@ NGTCP2_EXTERN uint64_t ngtcp2_conn_get_streams_uni_left(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_streams_uni_left2` returns the number of + * unidirectional streams which the local endpoint can open without + * violating stream concurrency limit. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN uint64_t +ngtcp2_conn_get_streams_uni_left2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_cwnd_left2` instead. + * * `ngtcp2_conn_get_cwnd_left` returns the cwnd minus the number of * bytes in flight on the current path. If the former is smaller than * the latter, this function returns 0. */ NGTCP2_EXTERN uint64_t ngtcp2_conn_get_cwnd_left(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_get_cwnd_left2` returns the cwnd minus the number of + * bytes in flight on the current path. If the former is smaller than + * the latter, this function returns 0. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN uint64_t ngtcp2_conn_get_cwnd_left2(const ngtcp2_conn *conn); + /** * @function * @@ -5572,12 +6177,28 @@ ngtcp2_conn_set_initial_crypto_ctx(ngtcp2_conn *conn, /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_initial_crypto_ctx2` instead. + * * `ngtcp2_conn_get_initial_crypto_ctx` returns * :type:`ngtcp2_crypto_ctx` object for Initial packet encryption. */ NGTCP2_EXTERN const ngtcp2_crypto_ctx * ngtcp2_conn_get_initial_crypto_ctx(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_get_initial_crypto_ctx2` returns + * :type:`ngtcp2_crypto_ctx` object for Initial packet encryption. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN const ngtcp2_crypto_ctx * +ngtcp2_conn_get_initial_crypto_ctx2(const ngtcp2_conn *conn); + /** * @function * @@ -5592,12 +6213,28 @@ NGTCP2_EXTERN void ngtcp2_conn_set_crypto_ctx(ngtcp2_conn *conn, /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_crypto_ctx2` instead. + * * `ngtcp2_conn_get_crypto_ctx` returns :type:`ngtcp2_crypto_ctx` * object for Handshake/1-RTT packet encryption. */ NGTCP2_EXTERN const ngtcp2_crypto_ctx * ngtcp2_conn_get_crypto_ctx(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_get_crypto_ctx2` returns :type:`ngtcp2_crypto_ctx` + * object for Handshake/1-RTT packet encryption. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN const ngtcp2_crypto_ctx * +ngtcp2_conn_get_crypto_ctx2(const ngtcp2_conn *conn); + /** * @function * @@ -5613,6 +6250,11 @@ ngtcp2_conn_set_0rtt_crypto_ctx(ngtcp2_conn *conn, /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_0rtt_crypto_ctx2` instead. + * * `ngtcp2_conn_get_0rtt_crypto_ctx` returns :type:`ngtcp2_crypto_ctx` * object for 0-RTT packet encryption. */ @@ -5622,11 +6264,37 @@ ngtcp2_conn_get_0rtt_crypto_ctx(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_0rtt_crypto_ctx2` returns + * :type:`ngtcp2_crypto_ctx` object for 0-RTT packet encryption. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN const ngtcp2_crypto_ctx * +ngtcp2_conn_get_0rtt_crypto_ctx2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_tls_native_handle2` instead. + * * `ngtcp2_conn_get_tls_native_handle` returns TLS native handle set * by `ngtcp2_conn_set_tls_native_handle`. */ NGTCP2_EXTERN void *ngtcp2_conn_get_tls_native_handle(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_get_tls_native_handle2` returns TLS native handle set + * by `ngtcp2_conn_set_tls_native_handle`. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN void *ngtcp2_conn_get_tls_native_handle2(const ngtcp2_conn *conn); + /** * @function * @@ -5903,6 +6571,11 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_write_connection_close_versioned( /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_ccerr2` instead. + * * `ngtcp2_conn_get_ccerr` returns the received connection close * error. If no connection error is received, it returns * :type:`ngtcp2_ccerr` that is initialized by `ngtcp2_ccerr_default`. @@ -5912,6 +6585,23 @@ NGTCP2_EXTERN const ngtcp2_ccerr *ngtcp2_conn_get_ccerr(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_ccerr2` returns the received connection close + * error. If no connection error is received, it returns + * :type:`ngtcp2_ccerr` that is initialized by `ngtcp2_ccerr_default`. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN const ngtcp2_ccerr * +ngtcp2_conn_get_ccerr2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_is_local_stream2` instead. + * * `ngtcp2_conn_is_local_stream` returns nonzero if |stream_id| * denotes a locally initiated stream. */ @@ -5921,6 +6611,22 @@ NGTCP2_EXTERN int ngtcp2_conn_is_local_stream(ngtcp2_conn *conn, /** * @function * + * `ngtcp2_conn_is_local_stream2` returns nonzero if |stream_id| + * denotes a locally initiated stream. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN int ngtcp2_conn_is_local_stream2(const ngtcp2_conn *conn, + int64_t stream_id); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_is_server2` instead. + * * `ngtcp2_conn_is_server` returns nonzero if |conn| is initialized as * server. */ @@ -5929,11 +6635,37 @@ NGTCP2_EXTERN int ngtcp2_conn_is_server(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_is_server2` returns nonzero if |conn| is initialized + * as server. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN int ngtcp2_conn_is_server2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_after_retry2` instead. + * * `ngtcp2_conn_after_retry` returns nonzero if |conn| as a client has * received Retry packet from server, and successfully validated it. */ NGTCP2_EXTERN int ngtcp2_conn_after_retry(ngtcp2_conn *conn); +/** + * @function + * + * `ngtcp2_conn_after_retry2` returns nonzero if |conn| as a client + * has received Retry packet from server, and successfully validated + * it. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN int ngtcp2_conn_after_retry2(const ngtcp2_conn *conn); + /** * @function * @@ -5953,6 +6685,11 @@ NGTCP2_EXTERN int ngtcp2_conn_set_stream_user_data(ngtcp2_conn *conn, /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_stream_user_data2` instead. + * * `ngtcp2_conn_get_stream_user_data` returns stream_user_data * associated to the stream identified by |stream_id|. If the stream * is not found, or no stream data is associated to the stream, this @@ -5965,11 +6702,31 @@ NGTCP2_EXTERN int ngtcp2_conn_set_stream_user_data(ngtcp2_conn *conn, * - `ngtcp2_conn_open_uni_stream` * - `ngtcp2_conn_set_stream_user_data` * - * This function has been available since v1.17.0. + * .. version-added:: 1.17.0 */ NGTCP2_EXTERN void *ngtcp2_conn_get_stream_user_data(ngtcp2_conn *conn, int64_t stream_id); +/** + * @function + * + * `ngtcp2_conn_get_stream_user_data2` returns stream_user_data + * associated to the stream identified by |stream_id|. If the stream + * is not found, or no stream data is associated to the stream, this + * function returns NULL. + * + * The stream_user_data can be associated to the stream by one of the + * following functions: + * + * - `ngtcp2_conn_open_bidi_stream` + * - `ngtcp2_conn_open_uni_stream` + * - `ngtcp2_conn_set_stream_user_data` + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN void *ngtcp2_conn_get_stream_user_data2(const ngtcp2_conn *conn, + int64_t stream_id); + /** * @function * @@ -5986,6 +6743,11 @@ NGTCP2_EXTERN void ngtcp2_conn_update_pkt_tx_time(ngtcp2_conn *conn, /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_send_quantum2` instead. + * * `ngtcp2_conn_get_send_quantum` returns the maximum number of bytes * that can be sent in one go without packet spacing. */ @@ -5994,6 +6756,21 @@ NGTCP2_EXTERN size_t ngtcp2_conn_get_send_quantum(ngtcp2_conn *conn); /** * @function * + * `ngtcp2_conn_get_send_quantum2` returns the maximum number of bytes + * that can be sent in one go without packet spacing. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN size_t ngtcp2_conn_get_send_quantum2(const ngtcp2_conn *conn); + +/** + * @function + * + * .. warning:: + * + * .. version-deprecated:: 1.23.0 + * Use `ngtcp2_conn_get_stream_loss_count2` instead. + * * `ngtcp2_conn_get_stream_loss_count` returns the number of packets * that contain STREAM frame for a stream identified by |stream_id| * and are declared to be lost. The number may include the spurious @@ -6003,6 +6780,20 @@ NGTCP2_EXTERN size_t ngtcp2_conn_get_send_quantum(ngtcp2_conn *conn); NGTCP2_EXTERN size_t ngtcp2_conn_get_stream_loss_count(ngtcp2_conn *conn, int64_t stream_id); +/** + * @function + * + * `ngtcp2_conn_get_stream_loss_count2` returns the number of packets + * that contain STREAM frame for a stream identified by |stream_id| + * and are declared to be lost. The number may include the spurious + * losses. If no stream identified by |stream_id| is found, this + * function returns 0. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN size_t ngtcp2_conn_get_stream_loss_count2(const ngtcp2_conn *conn, + int64_t stream_id); + /** * @functypedef * @@ -6031,7 +6822,7 @@ NGTCP2_EXTERN size_t ngtcp2_conn_get_stream_loss_count(ngtcp2_conn *conn, * :macro:`NGTCP2_WRITE_DATAGRAM_FLAG_PADDING` if * `ngtcp2_conn_writev_datagram` is used) is recommended. * - * This callback function has been available since v1.15.0. + * .. version-added:: 1.15.0 */ typedef ngtcp2_ssize (*ngtcp2_write_pkt)(ngtcp2_conn *conn, ngtcp2_path *path, ngtcp2_pkt_info *pi, uint8_t *dest, @@ -6046,14 +6837,15 @@ typedef ngtcp2_ssize (*ngtcp2_write_pkt)(ngtcp2_conn *conn, ngtcp2_path *path, * sent at once in GSO. This function returns the number of bytes * written to the buffer pointed by |buf| of length |buflen|. * |buflen| must be at least - * `ngtcp2_conn_get_path_max_tx_udp_payload_size(conn) - * ` bytes long. It is + * `ngtcp2_conn_get_path_max_tx_udp_payload_size2(conn) + * ` bytes long. It is * recommended to pass the buffer at least - * `ngtcp2_conn_get_max_tx_udp_payload_size(conn) - * ` bytes in order to send a - * PMTUD packet. This function only writes multiple packets if the - * first packet is `ngtcp2_conn_get_path_max_tx_udp_payload_size(conn) - * ` bytes long. The + * `ngtcp2_conn_get_max_tx_udp_payload_size2(conn) + * ` bytes in order to send + * a PMTUD packet. This function only writes multiple packets if the + * first packet is + * `ngtcp2_conn_get_path_max_tx_udp_payload_size2(conn) + * ` bytes long. The * application can adjust the length of the buffer to limit the number * of packets to aggregate (or use `ngtcp2_conn_write_aggregate_pkt2` * to control the number of packets to write directly). If this @@ -6068,15 +6860,15 @@ typedef ngtcp2_ssize (*ngtcp2_write_pkt)(ngtcp2_conn *conn, ngtcp2_path *path, * * This function is equivalent to call * `ngtcp2_conn_write_aggregate_pkt2` with |buflen| = min(|buflen|, - * `ngtcp2_conn_get_send_quantum(conn) - * `) and |num_pkts| = 0 followed by + * `ngtcp2_conn_get_send_quantum2(conn) + * `) and |num_pkts| = 0 followed by * `ngtcp2_conn_update_pkt_tx_time(conn) * `. * * This function returns the number of bytes written to the buffer, or * a negative error code returned by |write_pkt|. * - * This function has been available since v1.15.0. + * .. version-added:: 1.15.0 */ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( ngtcp2_conn *conn, ngtcp2_path *path, int pkt_info_version, @@ -6099,7 +6891,7 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt_versioned( * an application. It can experiment different GSO buffer size * strategy and number of GSO writes per event loop. * - * This function has been available since v1.17.0. + * .. version-added:: 1.17.0 */ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt2_versioned( ngtcp2_conn *conn, ngtcp2_path *path, int pkt_info_version, @@ -6112,7 +6904,7 @@ NGTCP2_EXTERN ngtcp2_ssize ngtcp2_conn_write_aggregate_pkt2_versioned( * `ngtcp2_conn_get_timestamp` returns the latest timestamp that is * known to |conn|. * - * This function has been available since v1.16.0. + * .. version-added:: 1.16.0 */ NGTCP2_EXTERN ngtcp2_tstamp ngtcp2_conn_get_timestamp(const ngtcp2_conn *conn); @@ -6358,6 +7150,25 @@ NGTCP2_EXTERN uint32_t ngtcp2_select_version(const uint32_t *preferred_versions, const uint32_t *offered_versions, size_t offered_versionslen); +/** + * @function + * + * `ngtcp2_secure_clear` writes |len| bytes of zeros into the buffer + * pointed by |data|. It does that by avoiding compiler + * optimizations. If the following functions are available, one of + * them is used: + * + * - ``SecureZeroMemory`` + * - ``explicit_bzero`` + * - ``memset_s`` + * + * Otherwise, it uses volatile function pointer to ``memset`` to fill + * zeros. + * + * .. version-added:: 1.23.0 + */ +NGTCP2_EXTERN void ngtcp2_secure_clear(void *data, size_t len); + /* * Versioned function wrappers */ @@ -6502,6 +7313,15 @@ NGTCP2_EXTERN uint32_t ngtcp2_select_version(const uint32_t *preferred_versions, #define ngtcp2_conn_get_conn_info(CONN, CINFO) \ ngtcp2_conn_get_conn_info_versioned((CONN), NGTCP2_CONN_INFO_VERSION, (CINFO)) +/* + * `ngtcp2_conn_get_conn_info2` is a wrapper around + * `ngtcp2_conn_get_conn_info2_versioned` to set the correct struct + * version. + */ +#define ngtcp2_conn_get_conn_info2(CONN, CINFO) \ + ngtcp2_conn_get_conn_info2_versioned((CONN), NGTCP2_CONN_INFO_VERSION, \ + (CINFO)) + /* * `ngtcp2_conn_write_aggregate_pkt` is a wrapper around * `ngtcp2_conn_write_aggregate_pkt_versioned` to set the correct diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h index 28eeeb5ead..9ff353ef46 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h @@ -338,16 +338,16 @@ ngtcp2_crypto_hp_mask_cb(uint8_t *dest, const ngtcp2_crypto_cipher *hp, * :enum:`ngtcp2_encryption_level.NGTCP2_ENCRYPTION_LEVEL_0RTT`) to * set negotiated AEAD and message digest algorithm. After the * successful call of this function, application can use - * `ngtcp2_conn_get_crypto_ctx` (or `ngtcp2_conn_get_0rtt_crypto_ctx` - * if |level| == + * `ngtcp2_conn_get_crypto_ctx2` (or + * `ngtcp2_conn_get_0rtt_crypto_ctx2` if |level| == * :enum:`ngtcp2_encryption_level.NGTCP2_ENCRYPTION_LEVEL_0RTT`) to * get :type:`ngtcp2_crypto_ctx`. * * If |conn| is initialized as client, and |level| is * :enum:`ngtcp2_encryption_level.NGTCP2_ENCRYPTION_LEVEL_1RTT`, this * function retrieves a remote QUIC transport parameters extension - * from an object obtained by `ngtcp2_conn_get_tls_native_handle`, and - * sets it to |conn| by calling + * from an object obtained by `ngtcp2_conn_get_tls_native_handle2`, + * and sets it to |conn| by calling * `ngtcp2_conn_decode_and_set_remote_transport_params`. * * This function returns 0 if it succeeds, or -1. @@ -385,16 +385,16 @@ NGTCP2_EXTERN int ngtcp2_crypto_derive_and_install_rx_key( * :enum:`ngtcp2_encryption_level.NGTCP2_ENCRYPTION_LEVEL_0RTT`) to * set negotiated AEAD and message digest algorithm. After the * successful call of this function, application can use - * `ngtcp2_conn_get_crypto_ctx` (or `ngtcp2_conn_get_0rtt_crypto_ctx` - * if |level| == + * `ngtcp2_conn_get_crypto_ctx2` (or + * `ngtcp2_conn_get_0rtt_crypto_ctx2` if |level| == * :enum:`ngtcp2_encryption_level.NGTCP2_ENCRYPTION_LEVEL_0RTT`) to * get :type:`ngtcp2_crypto_ctx`. * * If |conn| is initialized as server, and |level| is * :enum:`ngtcp2_encryption_level.NGTCP2_ENCRYPTION_LEVEL_1RTT`, this * function retrieves a remote QUIC transport parameters extension - * from an object obtained by `ngtcp2_conn_get_tls_native_handle`, and - * sets it to |conn| by calling + * from an object obtained by `ngtcp2_conn_get_tls_native_handle2`, + * and sets it to |conn| by calling * `ngtcp2_conn_decode_and_set_remote_transport_params`. * * This function returns 0 if it succeeds, or -1. @@ -986,15 +986,17 @@ NGTCP2_EXTERN void ngtcp2_crypto_delete_crypto_cipher_ctx_cb( /** * @function * + * .. warning:: + * + * .. version-deprecated:: 1.22.0 + * Use `ngtcp2_crypto_get_path_challenge_data2_cb` instead. + * * `ngtcp2_crypto_get_path_challenge_data_cb` writes unpredictable * sequence of :macro:`NGTCP2_PATH_CHALLENGE_DATALEN` bytes to |data| * which is sent with PATH_CHALLENGE frame. * * This function can be directly passed to * :member:`ngtcp2_callbacks.get_path_challenge_data` field. - * - * Deprecated since v1.22.0. Use - * `ngtcp2_crypto_get_path_challenge_data2_cb` instead. */ NGTCP2_EXTERN int ngtcp2_crypto_get_path_challenge_data_cb(ngtcp2_conn *conn, uint8_t *data, @@ -1010,7 +1012,7 @@ NGTCP2_EXTERN int ngtcp2_crypto_get_path_challenge_data_cb(ngtcp2_conn *conn, * This function can be directly passed to * :member:`ngtcp2_callbacks.get_path_challenge_data2` field. * - * This function has been available since v1.22.0. + * .. version-added:: 1.22.0 */ NGTCP2_EXTERN int ngtcp2_crypto_get_path_challenge_data2_cb( ngtcp2_conn *conn, ngtcp2_path_challenge_data *data, void *user_data); diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index a1f09e7148..7a47cdaba0 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.22.1" +#define NGTCP2_VERSION "1.23.0" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x011601 +#define NGTCP2_VERSION_NUM 0x011700 #endif /* !defined(NGTCP2_VERSION_H) */ From 4f0645048e79d33be82d829d40d2c077dc274eb5 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 31 May 2026 18:52:14 +0200 Subject: [PATCH 551/675] configure: add 'with_' prefix to socket_polling and memory_allocator fix automatic setting --- configure.ac | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/configure.ac b/configure.ac index a9659c01e4..1106685961 100644 --- a/configure.ac +++ b/configure.ac @@ -441,14 +441,14 @@ AC_ARG_ENABLE([cap-ng], AC_ARG_WITH([socket-polling], AS_HELP_STRING([--with-socket-polling=auto|poll|epoll|kqueue|libkqueue], [use specific socket polling method [default=auto]]), - [], [socket_polling=auto] + [], [with_socket_polling=auto] ) # Alternative memory allocator (1/2) AC_ARG_WITH([memory-allocator], AS_HELP_STRING([--with-memory-allocator=auto|LIBRARY], [use specific memory allocator for the server (e.g. jemalloc) [default=auto]]), - [], [memory_allocator=auto] + [], [with_memory_allocator=auto] ) AS_IF([test "$enable_daemon" = "yes"], [ @@ -512,34 +512,34 @@ AS_IF([test "$enable_cap_ng" = "yes"], ) # Socket polling method (2/2) -AS_CASE([$socket_polling], +AS_CASE([$with_socket_polling], [auto], [AC_CHECK_FUNCS([kqueue], [AC_DEFINE([HAVE_KQUEUE], [1], [kqueue available]) - socket_polling=kqueue], + with_socket_polling=kqueue], [AC_CHECK_FUNCS([epoll_create], [AC_DEFINE([HAVE_EPOLL], [1], [epoll available]) - socket_polling=epoll], - [socket_polling=poll])])], - [poll], [socket_polling=poll], + with_socket_polling=epoll], + [with_socket_polling=poll])])], + [poll], [with_socket_polling=poll], [epoll], [AC_CHECK_FUNCS([epoll_create], [AC_DEFINE([HAVE_EPOLL], [1], [epoll available]) - socket_polling=epoll], + with_socket_polling=epoll], [AC_MSG_ERROR([epoll not available])])], [kqueue], [AC_CHECK_FUNCS([kqueue], [AC_DEFINE([HAVE_KQUEUE], [1], [kqueue available]) - socket_polling=kqueue], + with_socket_polling=kqueue], [AC_MSG_ERROR([kqueue not available])])], [libkqueue], [PKG_CHECK_MODULES([libkqueue], [libkqueue], [AC_DEFINE([HAVE_KQUEUE], [1], [libkqueue available]) - socket_polling=libkqueue], + with_socket_polling=libkqueue], [AC_MSG_ERROR([libkqueue not available])])], [*], [AC_MSG_ERROR([invalid value of --socket-polling])] ) # Alternative memory allocator (2/2) -AS_CASE([$memory_allocator], +AS_CASE([$with_memory_allocator], [auto], [malloc_LIBS=""], - [*], [malloc_LIBS="-l$memory_allocator"] + [*], [malloc_LIBS="-l$with_memory_allocator"] ) AC_SUBST([malloc_LIBS]) @@ -892,9 +892,9 @@ result_msg_base=" XDP support: ${enable_xdp} DoQ support: ${enable_quic} Redis support: ${enable_redis} - Socket polling: ${socket_polling} + Socket polling: ${with_socket_polling} Atomic support: ${atomic_type} - Memory allocator: ${memory_allocator} + Memory allocator: ${with_memory_allocator} Fast zone parser: ${enable_fastparser} Utilities with IDN: ${with_libidn} Utilities with DoH: ${with_libnghttp2} From 7103cc7f0f838d54d97a2b089b66b0fc02aa2fc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Fri, 29 May 2026 16:27:20 +0200 Subject: [PATCH 552/675] tests-extra: fix progress cleanup when pause is called --- tests-extra/runtests.py | 8 ++------ tests-extra/tools/dnstest/test.py | 1 + tests-extra/tools/dnstest/utils.py | 5 +++++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tests-extra/runtests.py b/tests-extra/runtests.py index 8d031eaea2..4e705423db 100755 --- a/tests-extra/runtests.py +++ b/tests-extra/runtests.py @@ -27,14 +27,10 @@ def nothing(): pass -def clear_line(): - if sys.stdout.isatty(): - print("\r\x1b[K", end='') - def progress_print(cntr, lock, func = nothing, *args, **kwargs): if sys.stdout.isatty(): lock.acquire() - clear_line() + dnstest.utils.clear_line() func(*args, **kwargs) print(f"(Processed tests {cntr}/{TASK_COUNT})", end='', flush=True) lock.release() @@ -380,7 +376,7 @@ def main(args): msg_skips = ", SKIPPED: %i" % skip_cnt if skip_cnt > 0 else "" msg_res = ", FAILED: %i" % fail_cnt if fail_cnt > 0 else ", SUCCESS" - clear_line() + dnstest.utils.clear_line() log.info(msg_time + msg_cases + msg_skips + msg_res) if fail_cnt: diff --git a/tests-extra/tools/dnstest/test.py b/tests-extra/tools/dnstest/test.py index 0facf6063c..7f868284cc 100644 --- a/tests-extra/tools/dnstest/test.py +++ b/tests-extra/tools/dnstest/test.py @@ -349,6 +349,7 @@ def sleep(self, seconds): time.sleep(seconds) def pause(self, msg=None): + clear_line() input(test_info() + ((", " + msg) if msg else "")) def rel_sleep(self, seconds): diff --git a/tests-extra/tools/dnstest/utils.py b/tests-extra/tools/dnstest/utils.py index d8a2eab80e..25375d66a2 100644 --- a/tests-extra/tools/dnstest/utils.py +++ b/tests-extra/tools/dnstest/utils.py @@ -4,6 +4,7 @@ import inspect import os import re +import sys import time from dnstest.context import Context @@ -139,3 +140,7 @@ def compare_sections(section1, srv1name, section2, srv2name, name): if different: detail_log(SEP) + +def clear_line(): + if sys.stdout.isatty(): + print("\r\x1b[K", end='') From 01bae46e33a7704e123970f825fed5616af5ed4f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 1 Jun 2026 13:57:31 +0200 Subject: [PATCH 553/675] Makefile.docker: add RELEASE-DATE tag --- scripts/Makefile.docker | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/Makefile.docker b/scripts/Makefile.docker index 9f72bb6f8e..ab25988549 100644 --- a/scripts/Makefile.docker +++ b/scripts/Makefile.docker @@ -11,8 +11,10 @@ ARGS = --build-arg FASTPARSER=enable --build-arg CHECK=disable GITHASH = $(shell git rev-parse --short HEAD) GITBRANCH = $(shell git rev-parse --abbrev-ref HEAD) RELEASE = $(shell git describe --abbrev=0 --exact-match) +DATE = $(shell date +%Y%m%d) BRANCHTAG = $(shell [ -n "${GITBRANCH}" ] && echo "-t ${BASETAG}:${GITBRANCH}" || echo "") RELTAG = $(shell [ -n "${RELEASE}" ] && echo "-t ${BASETAG}:${RELEASE}" || echo "") +DATETAG = $(shell [ -n "${RELEASE}" ] && echo "-t ${BASETAG}:${RELEASE}-${DATE}" || echo "") EXTRATAG = $(shell [ -n "${TAG}" ] && echo "-t ${BASETAG}:${TAG}" || echo "") LABEL = $(shell [ -n "${GITHASH}" ] && echo "--label knot.git.hash=${GITHASH}" || echo "") @@ -23,7 +25,7 @@ QEMUDETECT = /proc/sys/fs/binfmt_misc/qemu-m68k docker-multiarch: qemu buildx docker-multiarch-builder docker login docker buildx build --no-cache --builder docker-multiarch --pull --push ${LABEL} \ - --platform ${PLATFORMS} ${ARGS} ${BRANCHTAG} ${RELTAG} ${EXTRATAG} .. + --platform ${PLATFORMS} ${ARGS} ${BRANCHTAG} ${RELTAG} ${DATETAG} ${EXTRATAG} .. qemu: ${QEMUDETECT} ${QEMUDETECT}: From 994534cf3b7b0c2366732abfeff18eae305287e2 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 1 Jun 2026 14:39:01 +0200 Subject: [PATCH 554/675] Makefile.docker: prevent automatic creating tag HEAD --- scripts/Makefile.docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/Makefile.docker b/scripts/Makefile.docker index ab25988549..f81a830822 100644 --- a/scripts/Makefile.docker +++ b/scripts/Makefile.docker @@ -12,7 +12,7 @@ GITHASH = $(shell git rev-parse --short HEAD) GITBRANCH = $(shell git rev-parse --abbrev-ref HEAD) RELEASE = $(shell git describe --abbrev=0 --exact-match) DATE = $(shell date +%Y%m%d) -BRANCHTAG = $(shell [ -n "${GITBRANCH}" ] && echo "-t ${BASETAG}:${GITBRANCH}" || echo "") +BRANCHTAG = $(shell [ -n "${GITBRANCH}" ] && [ "${GITBRANCH}" != "HEAD" ]&& echo "-t ${BASETAG}:${GITBRANCH}" || echo "") RELTAG = $(shell [ -n "${RELEASE}" ] && echo "-t ${BASETAG}:${RELEASE}" || echo "") DATETAG = $(shell [ -n "${RELEASE}" ] && echo "-t ${BASETAG}:${RELEASE}-${DATE}" || echo "") EXTRATAG = $(shell [ -n "${TAG}" ] && echo "-t ${BASETAG}:${TAG}" || echo "") From ca5edac14bc8a490f63a3682ddbbe9f071823d5b Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 2 Jun 2026 10:01:47 +0200 Subject: [PATCH 555/675] zone/timers: refactoring, code cleanup --- src/knot/zone/timers.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index 3e34eaae31..76b11e8b33 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -119,9 +119,6 @@ static int deserialize_timers(zone_timers_t *timers_ptr, static void txn_write_timers(knot_lmdb_txn_t *txn, const knot_dname_t *zone, zone_timers_t *timers, bool not_server_timerdb) { - if (!not_server_timerdb && !(timers->flags & TIMERS_MODIFIED)) { // TODO move this conditional to txn_zone_write, as it is also in zone_timers_write. Here temporarily to avoid git conflicts. - return; - } const char *format = (timers->last_master.sin6_family == AF_INET || timers->last_master.sin6_family == AF_INET6) ? "TTTTTTTTTTBD" : @@ -208,8 +205,8 @@ int zone_timers_write(knot_lmdb_db_t *db, const knot_dname_t *zone, static void txn_zone_write(zone_t *z, knot_lmdb_txn_t *txn) { - if (z->started) { - zone_timers_t *t = z->timers_static; + zone_timers_t *t = z->timers_static; + if (z->started && (t->flags & TIMERS_MODIFIED)) { txn_write_timers(txn, z->name, t, false); } } From 3dc7306ccb4074a275d50f1751151a5a22edfbc9 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 2 Jun 2026 20:06:13 +0200 Subject: [PATCH 556/675] stats: fix dumper thread cleanup --- src/knot/common/stats.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/knot/common/stats.c b/src/knot/common/stats.c index 6cbdeedf66..4472ca2f25 100644 --- a/src/knot/common/stats.c +++ b/src/knot/common/stats.c @@ -458,9 +458,16 @@ static void dump_stats(server_t *server) free(file_name); } -static void *dumper(void *data) +static void dumper_cleanup(_unused_ void *data) +{ + rcu_unregister_thread(); +} + +static void *dumper(_unused_ void *data) { rcu_register_thread(); + pthread_cleanup_push(dumper_cleanup, NULL); + while (true) { assert(stats.timer > 0); sleep(stats.timer); @@ -471,7 +478,8 @@ static void *dumper(void *data) rcu_read_unlock(); pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); } - rcu_unregister_thread(); + + pthread_cleanup_pop(1); return NULL; } From fc3b1c150fa21ce3271835d668c2c3bb3baea129 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 3 Jun 2026 15:35:56 +0200 Subject: [PATCH 557/675] zone/timers: make XFRout freeze persistent by setting it in timers --- doc/man_knotc.rst | 6 ++++-- scripts/timers_dump.py | 1 + src/knot/ctl/commands.c | 6 +++--- src/knot/events/handlers/load.c | 4 ++++ src/knot/nameserver/axfr.c | 2 +- src/knot/nameserver/ixfr.c | 2 +- src/knot/zone/timers.c | 7 +++++-- src/knot/zone/timers.h | 1 + src/knot/zone/zone.h | 1 - tests-extra/tests/zone/xfr_freeze/test.py | 16 ++++++++++++++++ 10 files changed, 36 insertions(+), 10 deletions(-) diff --git a/doc/man_knotc.rst b/doc/man_knotc.rst index 152df0ee90..74e78705ca 100644 --- a/doc/man_knotc.rst +++ b/doc/man_knotc.rst @@ -232,7 +232,8 @@ Actions Trigger a zone freeze. All running events will be finished and all new and pending (planned) zone-changing events (load, refresh, update, flush, and DNSSEC signing) will be held up until the zone is thawed. Up to 8 (this limit is hardcoded) DDNS - updates per zone will be queued, subsequent updates will be refused. (#) + updates per zone will be queued, subsequent updates will be refused. Zone + freeze state does not persist across server restarts! (#) .. _knotc_zone-thaw: @@ -242,7 +243,8 @@ Actions .. _knotc_zone-xfr-freeze: **zone-xfr-freeze** [*zone*...] - Temporarily disable outgoing AXFR/IXFR for the zone(s). (#) + Temporarily disable outgoing AXFR/IXFR for the zone(s). Zone transfer freeze + state persists across server restarts. (#) .. _knotc_zone-xfr-thaw: diff --git a/scripts/timers_dump.py b/scripts/timers_dump.py index 902b346609..928b26aa04 100755 --- a/scripts/timers_dump.py +++ b/scripts/timers_dump.py @@ -72,6 +72,7 @@ def format_value(cls, id, value): 0x8c: ("master_pin_hit", 8, cls.format_timestamp), # knot >= 3.5 0x8d: ("signed_serial", 8, cls.format_notify_serial), + 0x8e: ("xfr_freeze", 8, cls.format_bool), } if id in timers: return (timers[id][0], timers[id][2](value)) if value != None else timers[id][1] diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index ee1db9867a..cad0a5bb8c 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -355,7 +355,7 @@ static int zone_status(zone_t *zone, ctl_args_t *args) } data[KNOT_CTL_IDX_TYPE] = "XFR-freeze"; - if (zone_get_flag(zone, ZONE_XFR_FROZEN, false)) { + if (zone->timers->flags & LAST_XFROUT_FROZEN) { data[KNOT_CTL_IDX_DATA] = "yes"; } else { data[KNOT_CTL_IDX_DATA] = STATUS_EMPTY; @@ -891,7 +891,7 @@ static int zone_thaw(zone_t *zone, _unused_ ctl_args_t *args) static int zone_xfr_freeze(zone_t *zone, _unused_ ctl_args_t *args) { - zone_set_flag(zone, ZONE_XFR_FROZEN); + zone->timers->flags |= LAST_XFROUT_FROZEN; log_zone_info(zone->name, "outgoing XFR frozen"); @@ -900,7 +900,7 @@ static int zone_xfr_freeze(zone_t *zone, _unused_ ctl_args_t *args) static int zone_xfr_thaw(zone_t *zone, _unused_ ctl_args_t *args) { - zone_unset_flag(zone, ZONE_XFR_FROZEN); + zone->timers->flags &= ~LAST_XFROUT_FROZEN; log_zone_info(zone->name, "outgoing XFR unfrozen"); diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 085ca880c2..6b9ea944fc 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -532,6 +532,10 @@ int event_load(conf_t *conf, zone_t *zone) zone_skip_free(&skip); zone->started = true; + if (zone->timers->flags & LAST_XFROUT_FROZEN) { + log_zone_notice(zone->name, "outgoing XFR is still frozen"); + } + return KNOT_EOK; cleanup: diff --git a/src/knot/nameserver/axfr.c b/src/knot/nameserver/axfr.c index 596ee01ce3..76c3107de2 100644 --- a/src/knot/nameserver/axfr.c +++ b/src/knot/nameserver/axfr.c @@ -139,7 +139,7 @@ static int axfr_query_init(knotd_qdata_t *qdata) } } - if (zone_get_flag(qdata->extra->zone, ZONE_XFR_FROZEN, false)) { + if (qdata->extra->zone->timers_static->flags & LAST_XFROUT_FROZEN) { qdata->rcode = KNOT_RCODE_REFUSED; qdata->rcode_ede = KNOT_EDNS_EDE_NOT_READY; return KNOT_ETRYAGAIN; diff --git a/src/knot/nameserver/ixfr.c b/src/knot/nameserver/ixfr.c index 1e1dcade8c..35f421fd3e 100644 --- a/src/knot/nameserver/ixfr.c +++ b/src/knot/nameserver/ixfr.c @@ -182,7 +182,7 @@ static int ixfr_answer_init(knotd_qdata_t *qdata, uint32_t *serial_from) } } - if (zone_get_flag(qdata->extra->zone, ZONE_XFR_FROZEN, false)) { + if (qdata->extra->zone->timers_static->flags & LAST_XFROUT_FROZEN) { qdata->rcode = KNOT_RCODE_REFUSED; qdata->rcode_ede = KNOT_EDNS_EDE_NOT_READY; return KNOT_ETRYAGAIN; diff --git a/src/knot/zone/timers.c b/src/knot/zone/timers.c index 76b11e8b33..09ef50f96f 100644 --- a/src/knot/zone/timers.c +++ b/src/knot/zone/timers.c @@ -49,6 +49,7 @@ enum timer_id { TIMER_LAST_MASTER = 0x8b, TIMER_MASTER_PIN_HIT = 0x8c, TIMER_LAST_SIGNED = 0x8d, + TIMER_XFROUT_FROZEN = 0x8e, }; #define TIMER_SIZE (sizeof(uint8_t) + sizeof(uint64_t)) @@ -102,6 +103,7 @@ static int deserialize_timers(zone_timers_t *timers_ptr, timers.flags |= LAST_SIGNED_SERIAL_FOUND; set_flag(&timers, LAST_SIGNED_SERIAL_VALID, (value >> 32)); break; + case TIMER_XFROUT_FROZEN: set_flag(&timers, LAST_XFROUT_FROZEN, value); break; default: break; // ignore } } @@ -121,8 +123,8 @@ static void txn_write_timers(knot_lmdb_txn_t *txn, const knot_dname_t *zone, { const char *format = (timers->last_master.sin6_family == AF_INET || timers->last_master.sin6_family == AF_INET6) ? - "TTTTTTTTTTBD" : - "TTTTTTTTT"; + "TTTTTTTTTTTBD" : + "TTTTTTTTTT"; MDB_val k = { knot_dname_size(zone), (void *)zone }; MDB_val v = knot_lmdb_make_key(format, @@ -135,6 +137,7 @@ static void txn_write_timers(knot_lmdb_txn_t *txn, const knot_dname_t *zone, TIMER_CATALOG_MEMBER,(uint64_t)timers->catalog_member, TIMER_NEXT_EXPIRE, (uint64_t)timers->next_expire, TIMER_LAST_SIGNED, (uint64_t)timers->last_signed_serial | (((uint64_t)(bool)(timers->flags & LAST_SIGNED_SERIAL_VALID)) << 32), + TIMER_XFROUT_FROZEN, (uint64_t)(bool)(timers->flags & LAST_XFROUT_FROZEN), TIMER_MASTER_PIN_HIT,(uint64_t)timers->master_pin_hit, // those items should be last two TIMER_LAST_MASTER, &timers->last_master, sizeof(timers->last_master)); knot_lmdb_insert(txn, &k, &v); diff --git a/src/knot/zone/timers.h b/src/knot/zone/timers.h index b742d4e878..f96ab0e114 100644 --- a/src/knot/zone/timers.h +++ b/src/knot/zone/timers.h @@ -17,6 +17,7 @@ #define LAST_SIGNED_SERIAL_VALID (1 << 2) #define LAST_NOTIFIED_SERIAL_VALID (1 << 3) #define LAST_REFRESH_OK (1 << 4) +#define LAST_XFROUT_FROZEN (1 << 5) /*! * \brief Persistent zone timers. diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index c434922376..05c50690bb 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -36,7 +36,6 @@ typedef enum { ZONE_FORCE_ZSK_ROLL = 1 << 4, /*!< Force ZSK rollover. */ ZONE_IS_CATALOG = 1 << 5, /*!< This is a catalog. */ ZONE_IS_CAT_MEMBER = 1 << 6, /*!< This zone exists according to a catalog. */ - ZONE_XFR_FROZEN = 1 << 7, /*!< Outgoing AXFR/IXFR temporarily disabled. */ ZONE_USER_FLUSH = 1 << 8, /*!< User-triggered flush. */ ZONE_LAST_SIGN_OK = 1 << 9, /*!< Last full-sign event finished OK. */ ZONE_PREF_MASTER_2X = 1 << 10, /*!< Preferred master has been overwritten at least once. */ diff --git a/tests-extra/tests/zone/xfr_freeze/test.py b/tests-extra/tests/zone/xfr_freeze/test.py index a27a3333bd..0834a3ab36 100644 --- a/tests-extra/tests/zone/xfr_freeze/test.py +++ b/tests-extra/tests/zone/xfr_freeze/test.py @@ -30,6 +30,22 @@ set_err("SOA serial mismatch") detail_log("SOA serial mismatch %d != %d" % (serial, serial_init)) +master.stop() +master.start() +master.zone_wait(zone) +master.ctl("zone-notify") + +resp = master.dig(zone[0].name, "AXFR", tries=1) +resp.check_xfr(rcode="REFUSED") + +t.sleep(1) + +resp = slave.dig(zone[0].name, "SOA") +serial = resp.soa_serial() +if serial != serial_init: + set_err("SOA serial mismatch 2") + detail_log("SOA serial mismatch2 %d != %d" % (serial, serial_init)) + master.ctl("zone-xfr-thaw", wait=True) master.ctl("zone-notify") slave.zone_wait(zone, serial_init) From 787fec3ef803a9557ce12d9258e8e432cf3bee41 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 4 Jun 2026 10:52:44 +0200 Subject: [PATCH 558/675] doc: improve dnssec validation and signing description --- doc/configuration.rst | 5 +++-- doc/reference.rst | 13 +++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/doc/configuration.rst b/doc/configuration.rst index 76896a3879..acf6f74b91 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -568,8 +568,9 @@ The signing process consists of the following steps: manually will be removed. To add an extra DNSKEY record into the set, the key must be imported into the KASP database (possibly deactivated). #. Fixing the NSEC or NSEC3 chain. -#. Removing expired signatures, invalid signatures, signatures expiring - in a short time, and signatures issued by an unknown key. +#. Removing surplus signatures. This includes expired and soon-to-expire signatures, + invalid or orphan signatures, and signatures belonging to inactive (e.g. retired) + keys. #. Creating missing signatures. Unless the Single-Type Signing Scheme is used, DNSKEY records in a zone apex are signed by KSK keys and all other records are signed by ZSK keys. diff --git a/doc/reference.rst b/doc/reference.rst index 9a72686a7e..63a5f6b361 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -3297,11 +3297,19 @@ dnssec-validation If enabled, the zone contents are validated for being correctly signed (including NSEC/NSEC3 chain) with DNSSEC signatures every time the zone -is loaded or changed (including AXFR/IXFR). +is loaded or changed (including AXFR/IXFR), or whenever a previously seen +RRSIG's expiration has passed. When the validation fails, the zone being loaded or update being applied is cancelled with an error, and either none or previous zone state is published. +When a RRSIG expires on a secondary server, the whole zone is expired +(permanent SERVFAIL until resolved). + +The DNSSEC validation is performed incrementally (taking little time for small +updates to large zone) whenever possible, but occasionally full zone validation +takes place. + List of DNSSEC checks: - Every zone RRSet is correctly signed by at least one present DNSKEY. @@ -3324,7 +3332,8 @@ logged). .. TIP:: If :ref:`server_dbus-event` is set to ``dnssec-invalid``, a corresponding - signal is emitted when the validation fails. + signal is emitted when the validation fails, both in the case of an invalid + zone update and in the case of an expired RRSIG that has not been refreshed. *Default:* not set From 45942d1b5116f756fb6f9a65f4c87955c5bbbf8d Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 4 Jun 2026 10:53:56 +0200 Subject: [PATCH 559/675] gitignore: newer qtcreator stuff --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 145da3a245..5e3ac97da8 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ /scripts/showkey/showkey /tmp /Knot.creator.user* +/.qtcreator/Knot.creator.user* /Knot.cflags /Knot.cxxflags /Doxyfile From 424f5ba034c0b245a6c26947f08bd2cb7d4618b4 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 5 Jun 2026 11:49:48 +0200 Subject: [PATCH 560/675] bugfix: persistent XFR freeze: flag for modified timers --- src/knot/ctl/commands.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index cad0a5bb8c..9840212276 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -891,7 +891,7 @@ static int zone_thaw(zone_t *zone, _unused_ ctl_args_t *args) static int zone_xfr_freeze(zone_t *zone, _unused_ ctl_args_t *args) { - zone->timers->flags |= LAST_XFROUT_FROZEN; + zone->timers->flags |= LAST_XFROUT_FROZEN | TIMERS_MODIFIED; log_zone_info(zone->name, "outgoing XFR frozen"); @@ -901,6 +901,7 @@ static int zone_xfr_freeze(zone_t *zone, _unused_ ctl_args_t *args) static int zone_xfr_thaw(zone_t *zone, _unused_ ctl_args_t *args) { zone->timers->flags &= ~LAST_XFROUT_FROZEN; + zone->timers->flags |= TIMERS_MODIFIED; log_zone_info(zone->name, "outgoing XFR unfrozen"); From bc86f4c87d9ce9f5128fb0afbad7d802c0a9d5fd Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 5 Jun 2026 11:50:52 +0200 Subject: [PATCH 561/675] doc/quic-outbuf-max-size: mention possible temporary mem burst between accepting new conns and freeing some --- doc/reference.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/reference.rst b/doc/reference.rst index 63a5f6b361..73ac42c6e5 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -427,6 +427,9 @@ Maximum cumulative size of memory used for buffers of unACKed sent messages. This limit is per one UDP worker. .. NOTE:: + Temporarily, more memory can be occupied by the buffers until some connections + are cleared to free some memory and enforce the limit. + Set low if little memory is available (together with :ref:`server_quic-max-clients` since QUIC connections are memory-heavy). Set to high value if outgoing zone transfers of big zone over QUIC are expected. From 0036d86e24be6bc9c92ac8b23700a6c08946a022 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 28 May 2026 09:01:50 +0200 Subject: [PATCH 562/675] net: extend net_bound_socket() with optional device name parameter --- src/contrib/net.c | 17 +++++++++++++++-- src/contrib/net.h | 3 ++- src/libknot/control/control.c | 2 +- tests/contrib/test_net.c | 16 ++++++++-------- tests/contrib/test_net_shortwrite.c | 2 +- tests/knot/test_requestor.c | 2 +- 6 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/contrib/net.c b/src/contrib/net.c index 8e315c1c3e..b5cf8604bb 100644 --- a/src/contrib/net.c +++ b/src/contrib/net.c @@ -153,7 +153,7 @@ static void unlink_unix_socket(const struct sockaddr_storage *addr) } int net_bound_socket(int type, const struct sockaddr_storage *addr, - net_bind_flag_t flags, mode_t unix_mode) + net_bind_flag_t flags, mode_t unix_mode, const char *dev) { /* Create socket. */ int sock = net_unbound_socket(type, addr); @@ -194,6 +194,19 @@ int net_bound_socket(int type, const struct sockaddr_storage *addr, } } + /* Bind to specified interface. */ + if (dev != NULL) { +#if defined(__linux__) + if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, dev, strlen(dev) + 1) != 0) { + ret = knot_map_errno(); + close(sock); + return ret; + } +#else + return KNOT_ENOTSUP; +#endif + } + /* Allow bind to non-local address. */ if (flags & NET_BIND_NONLOCAL) { ret = enable_nonlocal(sock, addr->ss_family); @@ -247,7 +260,7 @@ int net_connected_socket(int type, const struct sockaddr_storage *dst_addr, /* Bind to specific source address - if set. */ int sock = -1; if (src_addr && src_addr->ss_family != AF_UNSPEC) { - sock = net_bound_socket(type, src_addr, 0, 0); + sock = net_bound_socket(type, src_addr, 0, 0, NULL); } else { sock = net_unbound_socket(type, dst_addr); } diff --git a/src/contrib/net.h b/src/contrib/net.h index 6d6b6f7181..476c69a571 100644 --- a/src/contrib/net.h +++ b/src/contrib/net.h @@ -42,11 +42,12 @@ int net_unbound_socket(int type, const struct sockaddr_storage *addr); * \param addr Socket address. * \param flags Socket binding options. * \param unix_mode Socket file mode (UNIX socket only). 0 means don't set mode. + * \param dev Optional device name in the case of a wildcard address. * * \return socket or error code */ int net_bound_socket(int type, const struct sockaddr_storage *addr, - net_bind_flag_t flags, mode_t unix_mode); + net_bind_flag_t flags, mode_t unix_mode, const char *dev); /*! * \brief Create socket connected (asynchronously) to destination address. diff --git a/src/libknot/control/control.c b/src/libknot/control/control.c index c6faef0e08..eb356b16bf 100644 --- a/src/libknot/control/control.c +++ b/src/libknot/control/control.c @@ -207,7 +207,7 @@ int knot_ctl_bind(knot_ctl_t *ctx, const char *path, unsigned backlog) // Bind the socket. mode_t mode = S_IWUSR | S_IWGRP; - ctx->listen_sock = net_bound_socket(SOCK_STREAM, &addr, 0, mode); + ctx->listen_sock = net_bound_socket(SOCK_STREAM, &addr, 0, mode, NULL); if (ctx->listen_sock < 0) { return ctx->listen_sock; } diff --git a/tests/contrib/test_net.c b/tests/contrib/test_net.c index 72ab3b9d47..2e266fdd1c 100644 --- a/tests/contrib/test_net.c +++ b/tests/contrib/test_net.c @@ -239,7 +239,7 @@ static void test_connected(int type) // setup server - int server = net_bound_socket(type, &local_addr, 0, 0); + int server = net_bound_socket(type, &local_addr, 0, 0, NULL); ok(server >= 0, "%s: server, create bound socket", name); if (socktype_is_stream(type)) { @@ -280,7 +280,7 @@ static void test_unconnected(void) // server - int server = net_bound_socket(SOCK_DGRAM, &local, 0, 0); + int server = net_bound_socket(SOCK_DGRAM, &local, 0, 0, NULL); ok(server >= 0, "UDP, create server socket"); server_ctx_t server_ctx = { 0 }; @@ -348,7 +348,7 @@ static void test_refused(void) // listening, not accepting addr = addr_local(); - server = net_bound_socket(SOCK_STREAM, &addr, 0, 0); + server = net_bound_socket(SOCK_STREAM, &addr, 0, 0, NULL); ok(server >= 0, "server, create server"); addr = addr_from_socket(server); @@ -489,7 +489,7 @@ static void test_dns_tcp(void) }; struct sockaddr_storage addr = addr_local(); - int server = net_bound_socket(SOCK_STREAM, &addr, 0, 0); + int server = net_bound_socket(SOCK_STREAM, &addr, 0, 0, NULL); ok(server >= 0, "%s, server, create socket", t->name); int r = listen(server, LISTEN_BACKLOG); @@ -530,7 +530,7 @@ static void test_nonblocking_mode(int type) ok(!socket_is_blocking(client), "%s: unbound, nonblocking mode", name); close(client); - int server = net_bound_socket(type, &addr, 0, 0); + int server = net_bound_socket(type, &addr, 0, 0, NULL); ok(server >= 0, "%s: bound, create", name); ok(!socket_is_blocking(server), "%s: bound, nonblocking mode", name); @@ -556,7 +556,7 @@ static void test_nonblocking_accept(void) struct sockaddr_storage addr_server = addr_local(); - int server = net_bound_socket(SOCK_STREAM, &addr_server, 0, 0); + int server = net_bound_socket(SOCK_STREAM, &addr_server, 0, 0, NULL); ok(server >= 0, "server, create socket"); r = listen(server, LISTEN_BACKLOG); @@ -644,7 +644,7 @@ static void test_bind_multiple(void) // bind first socket - int sock_one = net_bound_socket(SOCK_DGRAM, &addr, NET_BIND_MULTIPLE, 0); + int sock_one = net_bound_socket(SOCK_DGRAM, &addr, NET_BIND_MULTIPLE, 0, NULL); if (sock_one == KNOT_ENOTSUP) { skip("not supported on this system"); return; @@ -654,7 +654,7 @@ static void test_bind_multiple(void) // bind second socket to the same address const struct sockaddr_storage addr_one = addr_from_socket(sock_one); - int sock_two = net_bound_socket(SOCK_DGRAM, &addr_one, NET_BIND_MULTIPLE, 0); + int sock_two = net_bound_socket(SOCK_DGRAM, &addr_one, NET_BIND_MULTIPLE, 0, NULL); ok(sock_two >= 0, "bind second socket"); // compare sockets diff --git a/tests/contrib/test_net_shortwrite.c b/tests/contrib/test_net_shortwrite.c index 299e80411b..467647774a 100644 --- a/tests/contrib/test_net_shortwrite.c +++ b/tests/contrib/test_net_shortwrite.c @@ -74,7 +74,7 @@ int main(int argc, char *argv[]) // create TCP server struct sockaddr_storage addr = localhost(); - int server = net_bound_socket(SOCK_STREAM, &addr, 0, 0); + int server = net_bound_socket(SOCK_STREAM, &addr, 0, 0, NULL); ok(server >= 0, "server: bind socket"); r = listen(server, 1); diff --git a/tests/knot/test_requestor.c b/tests/knot/test_requestor.c index d67a8c41e0..128292517d 100644 --- a/tests/knot/test_requestor.c +++ b/tests/knot/test_requestor.c @@ -125,7 +125,7 @@ int main(int argc, char *argv[]) sockaddr_set(&server, AF_INET, "127.0.0.1", 0); /* Bind to random port. */ - int responder_fd = net_bound_socket(SOCK_STREAM, &server, 0, 0); + int responder_fd = net_bound_socket(SOCK_STREAM, &server, 0, 0, NULL); assert(responder_fd >= 0); socklen_t addr_len = sockaddr_len(&server); int ret = getsockname(responder_fd, (struct sockaddr *)&server, &addr_len); From 1b2a37bb1aede93f98a2d6279e9a1bf34f712496 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 28 May 2026 09:05:46 +0200 Subject: [PATCH 563/675] yptrafo: add support for wildcard addresses with a device name --- src/knot/conf/conf.c | 25 ++++++--- src/knot/conf/tools.c | 6 +- src/libknot/yparser/yptrafo.c | 100 +++++++++++++++++++++++++++------- src/libknot/yparser/yptrafo.h | 8 ++- tests/libknot/test_yptrafo.c | 33 ++++++----- 5 files changed, 126 insertions(+), 46 deletions(-) diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index 308771e45b..048b13aadf 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -737,7 +737,7 @@ struct sockaddr_storage conf_addr_alt( bool no_port; conf_val(val); assert(val->data); - out = yp_addr(val->data, &no_port); + out = yp_addr(val->data, &no_port, NULL); if (out.ss_family == AF_UNIX) { // val->data[0] is socket type identifier! @@ -807,19 +807,30 @@ struct sockaddr_storage conf_addr_range( conf_val(val); assert(val->data); uint8_t type = *val->data; - out = yp_addr_noport(val->data); + out = yp_addr_noport(val->data, NULL); // addr_type, addr, format, formatted_data (port| addr| empty). const uint8_t *format = val->data + sizeof(uint8_t); - if (type == 4) { + switch (type) { + case 4: + format += IPV4_PREFIXLEN / 8; + break; + case 5: format += IPV4_PREFIXLEN / 8; - } else if (type == 6) { + format += strlen((const char *)format) + 1; + break; + case 6: format += IPV6_PREFIXLEN / 8; - } else if (type == 7) { + break; + case 7: + case 8: format += IPV6_PREFIXLEN / 8; format += strlen((const char *)format) + 1; - } else { + break; + default: format += strlen((const char *)format) + 1; + break; } + // See addr_range_to_bin. switch (*format) { case 1: @@ -827,7 +838,7 @@ struct sockaddr_storage conf_addr_range( *prefix_len = yp_int(format + sizeof(uint8_t)); break; case 2: - *max_ss = yp_addr_noport(format + sizeof(uint8_t)); + *max_ss = yp_addr_noport(format + sizeof(uint8_t), NULL); *prefix_len = -1; break; default: diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index ebd6b29dfc..273d34c57d 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -285,7 +285,7 @@ int check_listen( knotd_conf_check_args_t *args) { bool no_port; - struct sockaddr_storage ss = yp_addr(args->data, &no_port); + struct sockaddr_storage ss = yp_addr(args->data, &no_port, NULL); if (!no_port && sockaddr_port(&ss) == 0) { args->err_str = "invalid port"; return KNOT_EINVAL; @@ -302,7 +302,7 @@ int check_db_listen( return KNOT_ENOTSUP; #else bool no_port; - struct sockaddr_storage ss = yp_addr(args->data, &no_port); + struct sockaddr_storage ss = yp_addr(args->data, &no_port, NULL); int port; char addr_str[SOCKADDR_STRLEN - SOCKADDR_STRLEN_EXT] = "\0"; @@ -323,7 +323,7 @@ int check_xdp_listen( return KNOT_ENOTSUP; #else bool no_port; - struct sockaddr_storage ss = yp_addr(args->data, &no_port); + struct sockaddr_storage ss = yp_addr(args->data, &no_port, NULL); conf_xdp_iface_t if_new; int ret = conf_xdp_iface(&ss, &if_new); if (ret != KNOT_EOK) { diff --git a/src/libknot/yparser/yptrafo.c b/src/libknot/yparser/yptrafo.c index 681ceed999..d9630c5a0b 100644 --- a/src/libknot/yparser/yptrafo.c +++ b/src/libknot/yparser/yptrafo.c @@ -52,8 +52,10 @@ enum { enum { ADDR_TYPE_UNIX = 0, ADDR_TYPE_IPV4 = 4, + ADDR_TYPE_IPV4_DEVICE = 5, ADDR_TYPE_IPV6 = 6, ADDR_TYPE_IPV6_LINKLOCAL = 7, + ADDR_TYPE_IPV6_DEVICE = 8, }; static bool is_addr_unix(uint8_t type) @@ -66,6 +68,11 @@ static bool is_addr_ipv4(uint8_t type) return type == ADDR_TYPE_IPV4; } +static bool is_addr_ipv4_device(uint8_t type) +{ + return type == ADDR_TYPE_IPV4_DEVICE; +} + static bool is_addr_ipv6(uint8_t type) { return type == ADDR_TYPE_IPV6; @@ -76,9 +83,15 @@ static inline bool is_addr_ipv6_linklocal(uint8_t type) return type == ADDR_TYPE_IPV6_LINKLOCAL; } +static inline bool is_addr_ipv6_device(uint8_t type) +{ + return type == ADDR_TYPE_IPV6_DEVICE; +} + static bool is_ip_addr(uint8_t type) { - return is_addr_ipv4(type) || is_addr_ipv6(type) || is_addr_ipv6_linklocal(type); + return is_addr_ipv4(type) || is_addr_ipv6(type) || is_addr_ipv6_linklocal(type) || + is_addr_ipv4_device(type) || is_addr_ipv6_device(type); } static wire_ctx_t copy_in( @@ -402,10 +415,15 @@ static uint8_t sock_type_guess( if (*if_name == NULL) { return ADDR_TYPE_IPV6; } else { - return ADDR_TYPE_IPV6_LINKLOCAL; + return ADDR_TYPE_IPV6_LINKLOCAL; // Can be corrected to ADDR_TYPE_IPV6_DEVICE. } } else if (colons == 0 && dots == 3 && digits >= 3 && slashes == 0) { - return ADDR_TYPE_IPV4; + *if_name = (const uint8_t *)strchr((const char *)str, '%'); + if (*if_name == NULL) { + return ADDR_TYPE_IPV4; + } else { + return ADDR_TYPE_IPV4_DEVICE; + } } else { return ADDR_TYPE_UNIX; } @@ -441,23 +459,39 @@ int yp_addr_noport_to_bin( } } - // Write address type. - wire_ctx_write_u8(out, type); - - // Write address as such. - if (is_addr_ipv4(type) && inet_pton(AF_INET, buf, &addr4) == 1) { + // Write address type and address as such. + if ((is_addr_ipv4(type) || is_addr_ipv4_device(type)) && + inet_pton(AF_INET, buf, &addr4) == 1) { + if (if_name != NULL) { + assert(is_addr_ipv4_device(type)); + if (addr4.s_addr != INADDR_ANY) { + return KNOT_EINVAL; + } + } + wire_ctx_write_u8(out, type); wire_ctx_write(out, (uint8_t *)&(addr4.s_addr), sizeof(addr4.s_addr)); + if (if_name != NULL) { + wire_ctx_skip(in, sizeof(uint8_t)); + yp_str_to_bin(in, out, stop); + } } else if ((is_addr_ipv6(type) || is_addr_ipv6_linklocal(type)) && inet_pton(AF_INET6, buf, &addr6) == 1) { + if (if_name != NULL) { + assert(is_addr_ipv6_linklocal(type)); + if (IN6_IS_ADDR_UNSPECIFIED(&addr6)) { + type = ADDR_TYPE_IPV6_DEVICE; // Type correction. + } + } + wire_ctx_write_u8(out, type); wire_ctx_write(out, (uint8_t *)&(addr6.s6_addr), sizeof(addr6.s6_addr)); if (if_name != NULL) { - assert(is_addr_ipv6_linklocal(type)); wire_ctx_skip(in, sizeof(uint8_t)); yp_str_to_bin(in, out, stop); } } else if (is_addr_unix(type) && allow_unix) { + wire_ctx_write_u8(out, type); int ret = yp_str_to_bin(in, out, stop); if (ret != KNOT_EOK) { return ret; @@ -489,6 +523,7 @@ int yp_addr_noport_to_txt( } break; case ADDR_TYPE_IPV4: + case ADDR_TYPE_IPV4_DEVICE: wire_ctx_read(in, &(addr4.s_addr), sizeof(addr4.s_addr)); if (knot_inet_ntop(AF_INET, &addr4, (char *)out->position, wire_ctx_available(out)) == NULL) { @@ -497,6 +532,7 @@ int yp_addr_noport_to_txt( wire_ctx_skip(out, strlen((char *)out->position)); break; case ADDR_TYPE_IPV6: + case ADDR_TYPE_IPV6_DEVICE: case ADDR_TYPE_IPV6_LINKLOCAL: wire_ctx_read(in, &(addr6.s6_addr), sizeof(addr6.s6_addr)); if (knot_inet_ntop(AF_INET6, &addr6, (char *)out->position, @@ -504,8 +540,16 @@ int yp_addr_noport_to_txt( return KNOT_EINVAL; } wire_ctx_skip(out, strlen((char *)out->position)); + break; + default: + return KNOT_EINVAL; + } - if (is_addr_ipv6_linklocal(type) && *in->position != '\0') { + switch (type) { + case ADDR_TYPE_IPV4_DEVICE: + case ADDR_TYPE_IPV6_DEVICE: + case ADDR_TYPE_IPV6_LINKLOCAL: + if (*in->position != '\0') { wire_ctx_write_u8(out, '%'); ret = yp_str_to_txt(in, out); if (ret != KNOT_EOK) { @@ -513,8 +557,6 @@ int yp_addr_noport_to_txt( } } break; - default: - return KNOT_EINVAL; } YP_CHECK_RET; @@ -1171,7 +1213,8 @@ int yp_item_to_txt( _public_ struct sockaddr_storage yp_addr_noport( - const uint8_t *data) + const uint8_t *data, + const char **dev) { struct sockaddr_storage ss = { AF_UNSPEC }; @@ -1187,40 +1230,54 @@ struct sockaddr_storage yp_addr_noport( sockaddr_set(&ss, AF_UNIX, (char *)data, 0); break; case ADDR_TYPE_IPV4: + case ADDR_TYPE_IPV4_DEVICE: addr_len = sizeof(((struct in_addr *)NULL)->s_addr); sockaddr_set_raw(&ss, AF_INET, data, addr_len); break; case ADDR_TYPE_IPV6: + case ADDR_TYPE_IPV6_DEVICE: case ADDR_TYPE_IPV6_LINKLOCAL: addr_len = sizeof(((struct in6_addr *)NULL)->s6_addr); sockaddr_set_raw(&ss, AF_INET6, data, addr_len); - if (is_addr_ipv6_linklocal(type)) { - struct sockaddr_in6 *sa = (struct sockaddr_in6 *)&ss; - sa->sin6_scope_id = if_nametoindex((const char *)data + addr_len); - // Ignore if such an interface doesn't exist. - } break; } + // Set device if present. + switch (type) { + case ADDR_TYPE_IPV4_DEVICE: + case ADDR_TYPE_IPV6_DEVICE: + if (dev != NULL) { + *dev = (const char *)data + addr_len; + } + break; + case ADDR_TYPE_IPV6_LINKLOCAL: ; + struct sockaddr_in6 *sa = (struct sockaddr_in6 *)&ss; + sa->sin6_scope_id = if_nametoindex((const char *)data + addr_len); + // Ignore if such an interface doesn't exist. + break; + } return ss; } _public_ struct sockaddr_storage yp_addr( const uint8_t *data, - bool *no_port) + bool *no_port, + const char **dev) { uint8_t type = *data; - struct sockaddr_storage ss = yp_addr_noport(data); + struct sockaddr_storage ss = yp_addr_noport(data, dev); size_t addr_len; // Get binary address length. switch (type) { case ADDR_TYPE_IPV4: + case ADDR_TYPE_IPV4_DEVICE: addr_len = sizeof(((struct in_addr *)NULL)->s_addr); break; case ADDR_TYPE_IPV6: + case ADDR_TYPE_IPV6_DEVICE: case ADDR_TYPE_IPV6_LINKLOCAL: addr_len = sizeof(((struct in6_addr *)NULL)->s6_addr); break; @@ -1231,7 +1288,8 @@ struct sockaddr_storage yp_addr( if (addr_len > 0) { const uint8_t *port_pos = data + sizeof(uint8_t) + addr_len; - if (is_addr_ipv6_linklocal(type)) { + if (is_addr_ipv4_device(type) || is_addr_ipv6_linklocal(type) || + is_addr_ipv6_device(type)) { port_pos += strlen((char *)port_pos) + 1; } int64_t port = knot_wire_read_u64(port_pos); diff --git a/src/libknot/yparser/yptrafo.h b/src/libknot/yparser/yptrafo.h index 457f805cf3..96c5acd6f3 100644 --- a/src/libknot/yparser/yptrafo.h +++ b/src/libknot/yparser/yptrafo.h @@ -101,11 +101,13 @@ inline static int64_t yp_int( * Converts binary value to address value. * * \param[in] data Binary value to transform. + * \param[out] dev Device name if specified (optional). * * \return Address value. */ struct sockaddr_storage yp_addr_noport( - const uint8_t *data + const uint8_t *data, + const char **dev ); /*! @@ -113,12 +115,14 @@ struct sockaddr_storage yp_addr_noport( * * \param[in] data Binary value to transform. * \param[out] no_port No port indicator. + * \param[out] dev Device name if specified (optional). * * \return Address value. */ struct sockaddr_storage yp_addr( const uint8_t *data, - bool *no_port + bool *no_port, + const char **dev ); /*! diff --git a/tests/libknot/test_yptrafo.c b/tests/libknot/test_yptrafo.c index 5936eee533..5e5bf7d7e8 100644 --- a/tests/libknot/test_yptrafo.c +++ b/tests/libknot/test_yptrafo.c @@ -132,7 +132,7 @@ static void str_test(const char *txt, const char *val) ok(memcmp(txt, t, t_len) == 0, "compare"); } -static void addr_test(const char *txt, bool port) +static void addr_test(const char *txt, bool port, const char *dev) { int ret; uint8_t b[128]; @@ -145,7 +145,9 @@ static void addr_test(const char *txt, bool port) ret = yp_item_to_bin(&i, txt, strlen(txt), b, &b_len); is_int(KNOT_EOK, ret, "txt to bin"); bool no_port; - yp_addr(b, &no_port); + const char *check_dev = NULL; + yp_addr(b, &no_port, &check_dev); + ok((dev == NULL && check_dev == NULL) || strcmp(dev, check_dev) == 0, "device"); ok(no_port == port, "compare port presence"); ret = yp_item_to_txt(&i, b, b_len, t, &t_len, YP_SNOQUOTE); is_int(KNOT_EOK, ret, "bin to txt"); @@ -370,17 +372,22 @@ int main(int argc, char *argv[]) str_test("Test string!", "Test string!"); /* Address tests. */ - addr_test("192.168.123.1", true); - addr_test("192.168.123.1@12345", false); - addr_test("2001:db8::1", true); - addr_test("::1@12345", false); - addr_test("/tmp/test.sock", true); - addr_test("/knot-3.6.dev0+1775816156.4373fdb0d/_build/sub/tests/tmp/knot/knot.sock", true); - addr_test("eth1@53", true); - addr_test("::1%lo", true); - addr_test("::1%2", true); - addr_test("::1%lo@12345", false); - addr_test("::1%4@12345", false); + addr_test("192.168.123.1", true, NULL); + addr_test("192.168.123.1@12345", false, NULL); + addr_test("2001:db8::1", true, NULL); + addr_test("::1@12345", false, NULL); + addr_test("/tmp/test.sock", true, NULL); + addr_test("/knot-3.6.dev0+1775816156.4373fdb0d/_build/sub/tests/tmp/knot/knot.sock", true, NULL); + addr_test("eth1@53", true, NULL); + addr_test("::1%lo", true, NULL); + addr_test("::1%2", true, NULL); + addr_test("::1%lo@12345", false, NULL); + addr_test("::1%4@12345", false, NULL); + addr_test("::%eth1", true, "eth1"); + addr_test("::%eth1@53", false, "eth1"); + addr_test("0.0.0.0%eth1", true, "eth1"); + addr_test("0.0.0.0%eth1@53", false, "eth1"); + addr_bad_test("192.168.123.1%eth1", KNOT_EINVAL); addr_bad_test("192.168.123.x", KNOT_EINVAL); addr_bad_test("192.168.123.1@", KNOT_EINVAL); addr_bad_test("192.168.123.1@1x", KNOT_EINVAL); From 436746e710dbed8140e0a754c589e6c9c0126f49 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 28 May 2026 09:05:49 +0200 Subject: [PATCH 564/675] server: allow binding of wildcard addresses to specific interface (on Linux) --- doc/reference.rst | 35 ++++++++++------- src/contrib/sockaddr.c | 10 ++++- src/contrib/sockaddr.h | 9 ++++- src/knot/common/hiredis.c | 4 +- src/knot/conf/conf.c | 15 ++++---- src/knot/conf/conf.h | 7 +++- src/knot/conf/tools.c | 20 ++++++---- src/knot/nameserver/query_module.c | 2 +- src/knot/server/server.c | 61 +++++++++++++++++++----------- src/knot/server/server.h | 1 + 10 files changed, 106 insertions(+), 58 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 73ac42c6e5..471d4e2ec2 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -216,9 +216,9 @@ General options related to the server. proxy-allowlist: ADDR[/INT] | ADDR-ADDR ... dbus-event: none | running | zone-updated | external-verify | ksk-submission | dnssec-invalid ... dbus-init-delay: TIME - listen: ADDR[@INT] | STR ... - listen-quic: ADDR[@INT] ... - listen-tls: ADDR[@INT] ... + listen: ADDR[%STR][@INT] | STR ... + listen-quic: ADDR[%STR][@INT] ... + listen-tls: ADDR[%STR][@INT] ... .. CAUTION:: When you change configuration parameters dynamically or via configuration file @@ -687,16 +687,23 @@ Change of this parameter requires restart of the Knot server to take effect. listen ------ -One or more IP addresses where the server listens for incoming queries. -Optional port specification (default is 53) can be appended to each address -using ``@`` separator. Use ``0.0.0.0`` for all configured IPv4 addresses or -``::`` for all configured IPv6 addresses. Filesystem path can be specified -for listening on local unix SOCK_STREAM socket. Non-absolute path -(i.e. not starting with ``/``) is relative to :ref:`server_rundir`. -Non-local address binding is automatically enabled if supported by the operating system. +One or more IP addresses on which the server listens for incoming queries. +An optional port specification (default is 53) can be appended to each address +using the ``@`` separator. Use the wildcard address ``0.0.0.0`` for all configured +IPv4 addresses or ``::`` for all configured IPv6 addresses. On Linux, a wildcard +address can be followed by ``%`` and an interface name to limit wildcard binding +to a specific interface. A filesystem path can be specified to listen +on a local UNIX SOCK_STREAM socket. A non-absolute path (i.e. not starting with +``/``) is interpreted relative to :ref:`server_rundir`. Binding to non-local +addresses is automatically enabled if supported by the operating system. Change of this parameter requires restart of the Knot server to take effect. +.. NOTE:: + Non-local address binding or wildcard address binding to a specific + interface might require setting ``sysctl -w net.ipv4.ip_nonlocal_bind=1`` + and ``sysctl -w net.ipv6.ip_nonlocal_bind=1``. + *Default:* not set .. _server_listen-quic: @@ -704,8 +711,8 @@ Change of this parameter requires restart of the Knot server to take effect. listen-quic ----------- -One or more IP addresses and optionally ports (default is 853) where the server listens -for incoming queries over QUIC protocol. +One or more IP addresses and optionally ports (default is 853) on which the +server listens for incoming queries over QUIC protocol. Change of this parameter requires restart of the Knot server to take effect. @@ -716,8 +723,8 @@ Change of this parameter requires restart of the Knot server to take effect. listen-tls ---------- -One or more IP addresses and optionally ports (default is 853) where the server listens -for incoming queries over TLS protocol (DoT). +One or more IP addresses and optionally ports (default is 853) on which the +server listens for incoming queries over TLS protocol (DoT). Change of this parameter requires restart of the Knot server to take effect. diff --git a/src/contrib/sockaddr.c b/src/contrib/sockaddr.c index 103f1674d2..8a8e8ab45f 100644 --- a/src/contrib/sockaddr.c +++ b/src/contrib/sockaddr.c @@ -181,7 +181,8 @@ int sockaddr_set_raw(struct sockaddr_storage *ss, int family, return KNOT_EOK; } -int sockaddr_tostr(char *buf, size_t maxlen, const struct sockaddr_storage *ss) +int sockaddr_dev_tostr(char *buf, size_t maxlen, const struct sockaddr_storage *ss, + const char *dev) { if (ss == NULL || buf == NULL) { return KNOT_EINVAL; @@ -200,10 +201,17 @@ int sockaddr_tostr(char *buf, size_t maxlen, const struct sockaddr_storage *ss) } strlcat(buf, "%", maxlen); strlcat(buf, if_str, maxlen); + } else if (dev != NULL) { + strlcat(buf, "%", maxlen); + strlcat(buf, dev, maxlen); } } else if (ss->ss_family == AF_INET) { const struct sockaddr_in *s = (const struct sockaddr_in *)ss; out = knot_inet_ntop(ss->ss_family, &s->sin_addr, buf, maxlen); + if (dev != NULL) { + strlcat(buf, "%", maxlen); + strlcat(buf, dev, maxlen); + } } else if (ss->ss_family == AF_UNIX) { const struct sockaddr_un *s = (const struct sockaddr_un *)ss; const char *path = (s->sun_path[0] != '\0' ? s->sun_path : "UNIX socket"); diff --git a/src/contrib/sockaddr.h b/src/contrib/sockaddr.h index 53c2d116d9..7dada0c086 100644 --- a/src/contrib/sockaddr.h +++ b/src/contrib/sockaddr.h @@ -107,10 +107,17 @@ int sockaddr_set_raw(struct sockaddr_storage *ss, int family, * \param buf Destination for string representation. * \param maxlen Maximum number of written bytes. * \param ss Socket address (can be sockaddr_t). + * \param dev Device name (optional). * * \return Number of bytes written on success, error code on failure. */ -int sockaddr_tostr(char *buf, size_t maxlen, const struct sockaddr_storage *ss); +int sockaddr_dev_tostr(char *buf, size_t maxlen, const struct sockaddr_storage *ss, + const char *dev); + +inline static int sockaddr_tostr(char *buf, size_t maxlen, const struct sockaddr_storage *ss) +{ + return sockaddr_dev_tostr(buf, maxlen, ss, NULL); +} /*! * \brief Return port number from address. diff --git a/src/knot/common/hiredis.c b/src/knot/common/hiredis.c index bcf4e2e0a8..ea3f243c86 100644 --- a/src/knot/common/hiredis.c +++ b/src/knot/common/hiredis.c @@ -321,7 +321,7 @@ redisContext *rdb_connect(conf_t *conf, bool require_master, const char *info) conf_val_t db_listen = conf_db_param(conf, C_ZONE_DB_LISTEN); while (db_listen.code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(&db_listen, NULL); + struct sockaddr_storage addr = conf_addr(&db_listen, NULL, NULL); rdb = (void *)conn_pool_get(global_redis_pool, &addr, &addr); if (rdb != NULL && (intptr_t)rdb != CONN_POOL_FD_INVALID) { @@ -337,7 +337,7 @@ redisContext *rdb_connect(conf_t *conf, bool require_master, const char *info) conf_val_reset(&db_listen); while (db_listen.code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(&db_listen, NULL); + struct sockaddr_storage addr = conf_addr(&db_listen, NULL, NULL); if (rdb_addr_to_str(&addr, addr_str, sizeof(addr_str), &port) != KNOT_EOK || (rdb = connect_addr(conf, addr_str, port)) == NULL) { diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index 048b13aadf..858e746dde 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -724,6 +724,7 @@ const uint8_t* conf_data( struct sockaddr_storage conf_addr_alt( conf_val_t *val, const char *sock_base_dir, + const char **dev, bool alternative) { assert(val != NULL && val->item != NULL); @@ -737,7 +738,7 @@ struct sockaddr_storage conf_addr_alt( bool no_port; conf_val(val); assert(val->data); - out = yp_addr(val->data, &no_port, NULL); + out = yp_addr(val->data, &no_port, dev); if (out.ss_family == AF_UNIX) { // val->data[0] is socket type identifier! @@ -779,7 +780,7 @@ bool conf_addr_match( } while (match->code == KNOT_EOK) { - struct sockaddr_storage maddr = conf_addr(match, NULL); + struct sockaddr_storage maddr = conf_addr(match, NULL, NULL); if (sockaddr_cmp(&maddr, addr, true) == 0) { return true; } @@ -1279,7 +1280,7 @@ size_t conf_xdp_threads_txn( conf_val_t val = conf_get_txn(conf, txn, C_XDP, C_LISTEN); while (val.code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(&val, NULL); + struct sockaddr_storage addr = conf_addr(&val, NULL, NULL); conf_xdp_iface_t iface; int ret = conf_xdp_iface(&addr, &iface); if (ret == KNOT_EOK) { @@ -1416,22 +1417,22 @@ conf_remote_t conf_remote_txn( conf_val(&val); } - struct sockaddr_storage addr = conf_addr(&val, rundir); + struct sockaddr_storage addr = conf_addr(&val, rundir, NULL); assert(addr.ss_family <= AF_INET6); addr_skipped[addr.ss_family]++; conf_val_next(&val); } // Index overflow causes empty socket. - out.addr = conf_addr_alt(&val, rundir, out.quic || out.tls); + out.addr = conf_addr_alt(&val, rundir, NULL, out.quic || out.tls); // Get outgoing address if family matches (optional). uint16_t via_pos = 0; val = conf_id_get_txn(conf, txn, C_RMT, C_VIA, id); while (val.code == KNOT_EOK) { - struct sockaddr_storage via = conf_addr(&val, rundir); + struct sockaddr_storage via = conf_addr(&val, rundir, NULL); if (via.ss_family == out.addr.ss_family) { - out.via = conf_addr(&val, rundir); // Use this candidate. + out.via = conf_addr(&val, rundir, NULL); // Use this candidate. if (addr_skipped[out.addr.ss_family] <= via_pos++) { break; } diff --git a/src/knot/conf/conf.h b/src/knot/conf/conf.h index f3a347ebe3..94101d3240 100644 --- a/src/knot/conf/conf.h +++ b/src/knot/conf/conf.h @@ -556,6 +556,7 @@ const uint8_t* conf_data( * * \param[in] val Item value. * \param[in] sock_base_dir Path prefix for a relative UNIX socket location. + * \param[out] dev Device name (optional). * \param[in] alternative Use alternative default port if port not specified. * * \return Socket address. @@ -563,13 +564,15 @@ const uint8_t* conf_data( struct sockaddr_storage conf_addr_alt( conf_val_t *val, const char *sock_base_dir, + const char **dev, bool alternative ); inline static struct sockaddr_storage conf_addr( conf_val_t *val, - const char *sock_base_dir) + const char *sock_base_dir, + const char **dev) { - return conf_addr_alt(val, sock_base_dir, false); + return conf_addr_alt(val, sock_base_dir, dev, false); } /*! diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index 273d34c57d..aae6c05a14 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -338,7 +338,7 @@ int check_xdp_listen( C_LISTEN); size_t count = conf_val_count(&xdp); while (xdp.code == KNOT_EOK && count-- > 1) { - struct sockaddr_storage addr = conf_addr(&xdp, NULL); + struct sockaddr_storage addr = conf_addr(&xdp, NULL, NULL); conf_xdp_iface_t if_prev; ret = conf_xdp_iface(&addr, &if_prev); if (ret != KNOT_EOK) { @@ -579,7 +579,7 @@ static void check_mtu(knotd_conf_check_args_t *args, conf_val_t *xdp_listen) } while (xdp_listen->code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(xdp_listen, NULL); + struct sockaddr_storage addr = conf_addr(xdp_listen, NULL, NULL); conf_xdp_iface_t iface; int ret = conf_xdp_iface(&addr, &iface); if (ret != KNOT_EOK) { @@ -602,13 +602,15 @@ static void check_mtu(knotd_conf_check_args_t *args, conf_val_t *xdp_listen) #endif } -static bool listen_hit(const struct sockaddr_storage *ss1, - const struct sockaddr_storage *ss2) +static bool listen_hit(const struct sockaddr_storage *ss1, const char *dev1, + const struct sockaddr_storage *ss2, const char *dev2) { if (sockaddr_is_any(ss1) || sockaddr_is_any(ss2)) { return ss1->ss_family == ss2->ss_family && + ((dev1 == NULL || dev2 == NULL) || strcmp(dev1, dev2) == 0) && sockaddr_port(ss1) == sockaddr_port(ss2); } else { + assert(dev1 == NULL && dev2 == NULL); return sockaddr_cmp(ss1, ss2, false) == 0; } } @@ -623,11 +625,13 @@ static bool listen_overlaps( size_t listen_count = conf_val_count(&listen_val); for (size_t i = 0; listen_count > 0 && i < chk_listen_count; i++) { - struct sockaddr_storage chk_addr = conf_addr(chk_listen, NULL); + const char *chk_dev = NULL; + struct sockaddr_storage chk_addr = conf_addr(chk_listen, NULL, &chk_dev); for (size_t j = 0; j < listen_count; j++) { - struct sockaddr_storage listen_addr = conf_addr(&listen_val, NULL); - if (listen_hit(&chk_addr, &listen_addr)) { + const char *listen_dev = NULL; + struct sockaddr_storage listen_addr = conf_addr(&listen_val, NULL, &listen_dev); + if (listen_hit(&chk_addr, chk_dev, &listen_addr, listen_dev)) { return true; } conf_val_next(&listen_val); @@ -715,7 +719,7 @@ int check_xdp( while (xdp_listen.code == KNOT_EOK) { conf_xdp_iface_t iface; - struct sockaddr_storage udp_addr = conf_addr(&xdp_listen, NULL); + struct sockaddr_storage udp_addr = conf_addr(&xdp_listen, NULL, NULL); if (conf_xdp_iface(&udp_addr, &iface) == KNOT_EOK && iface.port == quic_port) { args->err_str = "QUIC has to listen on different port than UDP"; return KNOT_EINVAL; diff --git a/src/knot/nameserver/query_module.c b/src/knot/nameserver/query_module.c index 1865168f68..a0b549e3f2 100644 --- a/src/knot/nameserver/query_module.c +++ b/src/knot/nameserver/query_module.c @@ -456,7 +456,7 @@ static void set_val(yp_type_t type, knotd_conf_val_t *item, conf_val_t *val) item->dname = conf_dname(val); break; case YP_TADDR: - item->addr = conf_addr(val, NULL); + item->addr = conf_addr(val, NULL, NULL); break; case YP_TNET: item->addr = conf_addr_range(val, &item->addr_max, diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 944d47bc4a..713e80234c 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -351,13 +351,15 @@ static iface_t *server_init_xdp_iface(struct sockaddr_storage *addr, bool route_ * \param tcp_thread_count Number of created TCP workers. * \param tcp_reuseport Indication if reuseport on TCP is enabled. * \param socket_affinity Indication if CBPF should be attached. + * \param dev Device name (otpional). * * \retval Pointer to a new initialized interface. * \retval NULL if error. */ static iface_t *server_init_iface(struct sockaddr_storage *addr, bool tls, int udp_thread_count, int tcp_thread_count, - bool tcp_reuseport, bool socket_affinity) + bool tcp_reuseport, bool socket_affinity, + const char *dev) { iface_t *new_if = calloc(1, sizeof(*new_if)); if (new_if == NULL) { @@ -366,6 +368,8 @@ static iface_t *server_init_iface(struct sockaddr_storage *addr, bool tls, } memcpy(&new_if->addr, addr, sizeof(*addr)); + new_if->dev = dev; + /* Convert to string address format. */ char addr_str[SOCKADDR_STRLEN] = { 0 }; sockaddr_tostr(addr_str, sizeof(addr_str), addr); @@ -406,10 +410,10 @@ static iface_t *server_init_iface(struct sockaddr_storage *addr, bool tls, /* Create bound UDP sockets. */ for (int i = 0; i < udp_socket_count; i++) { - int sock = net_bound_socket(SOCK_DGRAM, addr, udp_bind_flags, unix_mode); + int sock = net_bound_socket(SOCK_DGRAM, addr, udp_bind_flags, unix_mode, dev); if (sock == KNOT_EADDRNOTAVAIL) { udp_bind_flags |= NET_BIND_NONLOCAL; - sock = net_bound_socket(SOCK_DGRAM, addr, udp_bind_flags, unix_mode); + sock = net_bound_socket(SOCK_DGRAM, addr, udp_bind_flags, unix_mode, dev); if (sock >= 0 && warn_bind) { log_warning("address %s UDP bound, but required nonlocal bind", addr_str); warn_bind = false; @@ -472,10 +476,10 @@ static iface_t *server_init_iface(struct sockaddr_storage *addr, bool tls, /* Create bound TCP sockets. */ for (int i = 0; i < tcp_socket_count; i++) { - int sock = net_bound_socket(SOCK_STREAM, addr, tcp_bind_flags, unix_mode); + int sock = net_bound_socket(SOCK_STREAM, addr, tcp_bind_flags, unix_mode, dev); if (sock == KNOT_EADDRNOTAVAIL) { tcp_bind_flags |= NET_BIND_NONLOCAL; - sock = net_bound_socket(SOCK_STREAM, addr, tcp_bind_flags, unix_mode); + sock = net_bound_socket(SOCK_STREAM, addr, tcp_bind_flags, unix_mode, dev); if (sock >= 0 && warn_bind) { log_warning("address %s TCP bound, but required nonlocal bind", addr_str); warn_bind = false; @@ -704,13 +708,14 @@ static int configure_sockets(conf_t *conf, server_t *s) bool socket_affinity = conf->cache.srv_socket_affinity; char *rundir = conf_abs_path(&rundir_val, NULL); while (listen_val.code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(&listen_val, rundir); + const char *dev = NULL; + struct sockaddr_storage addr = conf_addr(&listen_val, rundir, &dev); char addr_str[SOCKADDR_STRLEN] = { 0 }; - sockaddr_tostr(addr_str, sizeof(addr_str), &addr); + sockaddr_dev_tostr(addr_str, sizeof(addr_str), &addr, dev); log_info("binding to interface %s", addr_str); iface_t *new_if = server_init_iface(&addr, false, size_udp, size_tcp, - tcp_reuseport, socket_affinity); + tcp_reuseport, socket_affinity, dev); if (new_if == NULL) { server_deinit_iface_list(newlist, nifs); free(rundir); @@ -722,13 +727,14 @@ static int configure_sockets(conf_t *conf, server_t *s) conf_val_next(&listen_val); } while (liquic_val.code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(&liquic_val, rundir); + const char *dev = NULL; + struct sockaddr_storage addr = conf_addr(&liquic_val, rundir, &dev); char addr_str[SOCKADDR_STRLEN] = { 0 }; - sockaddr_tostr(addr_str, sizeof(addr_str), &addr); + sockaddr_dev_tostr(addr_str, sizeof(addr_str), &addr, dev); log_info("binding to QUIC interface %s", addr_str); iface_t *new_if = server_init_iface(&addr, true, size_udp, 0, - false, socket_affinity); + false, socket_affinity, dev); if (new_if == NULL) { server_deinit_iface_list(newlist, nifs); free(rundir); @@ -741,13 +747,14 @@ static int configure_sockets(conf_t *conf, server_t *s) conf_val_next(&liquic_val); } while (listls_val.code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(&listls_val, rundir); + const char *dev = NULL; + struct sockaddr_storage addr = conf_addr(&listls_val, rundir, &dev); char addr_str[SOCKADDR_STRLEN] = { 0 }; - sockaddr_tostr(addr_str, sizeof(addr_str), &addr); + sockaddr_dev_tostr(addr_str, sizeof(addr_str), &addr, dev); log_info("binding to TLS interface %s", addr_str); iface_t *new_if = server_init_iface(&addr, true, 0, size_tcp, - tcp_reuseport, socket_affinity); + tcp_reuseport, socket_affinity, dev); if (new_if == NULL) { server_deinit_iface_list(newlist, nifs); free(rundir); @@ -772,7 +779,7 @@ static int configure_sockets(conf_t *conf, server_t *s) unsigned thread_id = s->handlers[IO_UDP].handler.unit->size + s->handlers[IO_TCP].handler.unit->size; while (lisxdp_val.code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(&lisxdp_val, NULL); + struct sockaddr_storage addr = conf_addr(&lisxdp_val, NULL, NULL); char addr_str[SOCKADDR_STRLEN] = { 0 }; sockaddr_tostr(addr_str, sizeof(addr_str), &addr); log_info("binding to XDP interface %s", addr_str); @@ -1325,6 +1332,13 @@ static int reload_conf(conf_t *new_conf) return KNOT_EOK; } +static bool addr_iface_match(struct sockaddr_storage *addr, const char *dev, iface_t *iface) +{ + return sockaddr_cmp(addr, &iface->addr, false) == 0 && + ((dev == NULL && iface->dev == NULL) || + (dev != NULL && iface->dev != NULL && strcmp(dev, iface->dev) == 0)); +} + /*! \brief Check if parameter listen(-xdp,-quic) has been changed since knotd started. */ static bool listen_changed(conf_t *conf, server_t *server) { @@ -1347,11 +1361,12 @@ static bool listen_changed(conf_t *conf, server_t *server) /* Find matching interfaces. */ while (listen_val.code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(&listen_val, rundir); + const char *dev = NULL; + struct sockaddr_storage addr = conf_addr(&listen_val, rundir, &dev); bool found = false; for (size_t i = 0; i < server->n_ifaces; i++) { iface_t *iface = &server->ifaces[i]; - if (sockaddr_cmp(&addr, &iface->addr, false) == 0 && + if (addr_iface_match(&addr, dev, iface) && !iface->tls && iface->fd_xdp_count == 0) { matches++; found = true; @@ -1364,11 +1379,12 @@ static bool listen_changed(conf_t *conf, server_t *server) conf_val_next(&listen_val); } while (liquic_val.code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(&liquic_val, rundir); + const char *dev = NULL; + struct sockaddr_storage addr = conf_addr(&liquic_val, rundir, &dev); bool found = false; for (size_t i = 0; i < server->n_ifaces; i++) { iface_t *iface = &server->ifaces[i]; - if (sockaddr_cmp(&addr, &iface->addr, false) == 0 && + if (addr_iface_match(&addr, dev, iface) && iface->tls && iface->fd_udp_count > 0) { matches++; found = true; @@ -1381,11 +1397,12 @@ static bool listen_changed(conf_t *conf, server_t *server) conf_val_next(&liquic_val); } while (listls_val.code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(&listls_val, rundir); + const char *dev = NULL; + struct sockaddr_storage addr = conf_addr(&listls_val, rundir, &dev); bool found = false; for (size_t i = 0; i < server->n_ifaces; i++) { iface_t *iface = &server->ifaces[i]; - if (sockaddr_cmp(&addr, &iface->addr, false) == 0 && + if (addr_iface_match(&addr, dev, iface) && iface->tls && iface->fd_tcp_count > 0) { matches++; found = true; @@ -1400,7 +1417,7 @@ static bool listen_changed(conf_t *conf, server_t *server) free(rundir); while (lisxdp_val.code == KNOT_EOK) { - struct sockaddr_storage addr = conf_addr(&lisxdp_val, NULL); + struct sockaddr_storage addr = conf_addr(&lisxdp_val, NULL, NULL); bool found = false; for (size_t i = 0; i < server->n_ifaces; i++) { iface_t *iface = &server->ifaces[i]; diff --git a/src/knot/server/server.h b/src/knot/server/server.h index ae856f7586..c0462d1a43 100644 --- a/src/knot/server/server.h +++ b/src/knot/server/server.h @@ -65,6 +65,7 @@ typedef struct { unsigned xdp_first_thread_id; bool anyaddr; bool tls; + const char *dev; struct knot_xdp_socket **xdp_sockets; struct sockaddr_storage addr; } iface_t; From 09ce4f6ddbe7b57afd8b101f662fce58497c9484 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 8 Jun 2026 08:18:44 +0200 Subject: [PATCH 565/675] doc/kxdpgun: add note about RSS setting for QUIC on Mellanox --- doc/man_kxdpgun.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/man_kxdpgun.rst b/doc/man_kxdpgun.rst index 37863c81bf..d95663c90d 100644 --- a/doc/man_kxdpgun.rst +++ b/doc/man_kxdpgun.rst @@ -193,6 +193,9 @@ CAP_NET_RAW, CAP_NET_ADMIN, CAP_SYS_ADMIN, CAP_IPC_LOCK, and CAP_SYS_RESOURCE The utility allocates source UDP/TCP ports from the range 2000-65535. +For proper operation of QUIC mode on a multi-queue Mellanox/NVIDIA network +card, it may be necessary to set ``ethtool -X xfrm none``. + Due to the multi-threaded program structure there are slight discrepancies in the timespan during which metrics are collected for any given thread. The statistics printouts ignore this and are thus ever-so-slightly inaccurate. The From 650ee7a2579db7133c7379589662cb6784871268 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 8 Jun 2026 10:13:32 +0200 Subject: [PATCH 566/675] tests-extra: replace dig with kdig to overcome new dnspython behavior --- tests-extra/tests/ixfr/from_older/test.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tests-extra/tests/ixfr/from_older/test.py b/tests-extra/tests/ixfr/from_older/test.py index 3be42b74fb..42962b3486 100644 --- a/tests-extra/tests/ixfr/from_older/test.py +++ b/tests-extra/tests/ixfr/from_older/test.py @@ -5,7 +5,7 @@ from dnstest.utils import * from dnstest.test import Test -t = Test() +t = Test(tsig=False) knot = t.server("knot") zone = t.zone("example.com.") @@ -16,12 +16,15 @@ serial_init = knot.zone_wait(zone) -resp = knot.dig("example.com", "IXFR", serial=serial_init + 1) -resp.check_xfr() - -compare(resp.msg_count(), 1, "Only one message") -compare(resp.count("SOA"), 1, "Only one RR in Answer section") -compare(resp.count("ANY"), 1, "Only one RR in the whole message.") +resp = knot.kdig("example.com", "IXFR=" + str(serial_init + 1)) +normalized_lines = [ + " ".join(line.split()) + for line in resp.splitlines() + if line.strip() and not line.startswith(";;") +] +compare(len(normalized_lines), 1, "Only one record") +expected = "example.com. 3600 IN SOA dns1.example.com. hostmaster.example.com. 2010111201 10800 3600 1209600 7200" +isset(expected in normalized_lines, "SOA match") t.end() From fff20b1b26ee92c46eb813d5c5b2233a95f0b54e Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 8 Jun 2026 13:29:54 +0200 Subject: [PATCH 567/675] kru: sync with knot-resolver --- src/knot/modules/rrl/kru.h | 27 +++++++- src/knot/modules/rrl/kru.inc.c | 117 +++++++++++++++++++++------------ 2 files changed, 102 insertions(+), 42 deletions(-) diff --git a/src/knot/modules/rrl/kru.h b/src/knot/modules/rrl/kru.h index 4887eabe54..a2515bbd92 100644 --- a/src/knot/modules/rrl/kru.h +++ b/src/knot/modules/rrl/kru.h @@ -8,6 +8,7 @@ #include #include #include +#include #define ALIGNED_CPU_CACHE _Alignas(64) @@ -16,6 +17,8 @@ // Exponential decay always uses randomized rounding on 32 bits. typedef uint32_t kru_price_t; +typedef uint64_t kru_hash_t; + #define KRU_PRICE_BITS (8 * sizeof(kru_price_t)) // maximal allowed sum of prices without limiting @@ -50,6 +53,11 @@ struct kru_api { /// Calculate size of the KRU structure. size_t (*get_size)(int capacity_log); + /// Verify that given KRU structure expects just memory of the given size; + /// it accesses just the first size bytes of kru. + /// If false is returned, the memory is corrupted and calling other methods may cause SIGSEGV. + bool (*check_size)(struct kru *kru, ptrdiff_t size); + /// Determine if a key should get limited (and update the KRU). /// key needs to be aligned to a multiple of 16 bytes. bool (*limited)(struct kru *kru, uint32_t time_now, uint8_t key[static const 16], kru_price_t price); @@ -76,7 +84,7 @@ struct kru_api { /// Returns the maximum of final values of the involved counters normalized to the limit 2^16 /// and stores the corresponding prefix (value in prefixes) to *prefix_out (unless NULL). /// Set prices to NULL to skip updating; otherwise, KRU is always updated, using maximal allowed value on overflow. - /// The key of i-th query consists of prefixes[i] bits of key, prefixes[i], and namespace. + /// The key of i-th query consists of prefixes[i] bits of key, prefixes[i], and namespace; as above. uint16_t (*load_multi_prefix_max)(struct kru *kru, uint32_t time_now, uint8_t namespace, uint8_t key[static 16], uint8_t *prefixes, kru_price_t *prices, size_t queries_cnt, uint8_t *prefix_out); @@ -86,9 +94,26 @@ struct kru_api { /// The key of i-th query consists of prefixes[i] bits of key, prefixes[i], and namespace; as above. void (*load_multi_prefix)(struct kru *kru, uint32_t time_now, uint8_t namespace, uint8_t key[static 16], uint8_t *prefixes, kru_price_t *prices, size_t queries_cnt, uint16_t *loads_out); + + /// Compute 64-bit hash of an arbitrary-size byte array to be used in load_hash function. + /// The key need not to be aligned as we use always unoptimized variant here. + kru_hash_t (*hash_bytes)(struct kru *kru, uint8_t *key, size_t key_size); + + /// Single query based on the hash computed by the previous function. + /// Returns the final value of the counter normalized to the limit 2^16. + /// Set price to zero to skip updating; otherwise, KRU is always updated, using maximal allowed value on overflow. + uint16_t (*load_hash)(struct kru *kru, uint32_t time_now, kru_hash_t hash, kru_price_t price); }; // The functions are stored this way to make it easier to switch // implementation based on detected CPU. extern struct kru_api KRU; extern const struct kru_api KRU_GENERIC, KRU_AVX2; + +/// Return whether we're using optimized variant right now. +static inline bool kru_using_avx2(void) +{ + bool result = (KRU.initialize == KRU_AVX2.initialize); + assert(result || KRU.initialize == KRU_GENERIC.initialize); + return result; +} diff --git a/src/knot/modules/rrl/kru.inc.c b/src/knot/modules/rrl/kru.inc.c index a05c1e9996..515d82ed18 100644 --- a/src/knot/modules/rrl/kru.inc.c +++ b/src/knot/modules/rrl/kru.inc.c @@ -41,11 +41,11 @@ Size (`loads_bits` = log2 length): #include "contrib/macros.h" #include "libknot/errcode.h" #include "libknot/dnssec/random.h" -typedef uint64_t hash_t; #if USE_AES /// 4-8 rounds should be an OK choice, most likely. #define AES_ROUNDS 4 -#else +#endif //#else +// use SipHash also for variable-length keys with otherwise optimized variant #include "contrib/openbsd/siphash.h" /// 1,3 should be OK choice, probably. @@ -53,7 +53,7 @@ typedef uint64_t hash_t; SIPHASH_RC = 1, SIPHASH_RF = 3, }; -#endif +//#endif #if USE_AVX2 || USE_SSE41 || USE_AES #include @@ -72,7 +72,8 @@ struct load_cl { static_assert(64 == sizeof(struct load_cl), "bad size of struct load_cl"); /// Parametrization for speed of decay. -struct decay_config { +// Packed to allow unpadded following by more data in the USE_AES version of struct kru. +struct __attribute__((packed)) decay_config { /// Bit shift per tick, fractional double shift_bits; @@ -85,7 +86,7 @@ struct decay_config { struct kru { #if USE_AES /// Hashing secret. Random but shared by all users of the table. - /// Let's not make it too large, so that header fits into 64 Bytes. + /// Let's not make it too large. _Alignas(32) char hash_key[48]; #else /// Hashing secret. Random but shared by all users of the table. @@ -165,15 +166,16 @@ static inline void update_time(struct load_cl *l, const uint32_t time_now, } } +static_assert(LOADS_LEN == 15 && TABLE_COUNT == 2, ""); +// So, the pair of cache lines hold up to 2*15 elements. +// Let's say that we can reliably store 16 = 1 << (1+3). +// (probably more but certainly not 1 << 5) +enum { LOADS_CAPACITY_SHIFT = 1 + 3 }; + /// Convert capacity_log to loads_bits static inline int32_t capacity2loads(int capacity_log) { - static_assert(LOADS_LEN == 15 && TABLE_COUNT == 2, ""); - // So, the pair of cache lines hold up to 2*15 elements. - // Let's say that we can reliably store 16 = 1 << (1+3). - // (probably more but certainly not 1 << 5) - const int shift = 1 + 3; - int loads_bits = capacity_log - shift; + int loads_bits = capacity_log - LOADS_CAPACITY_SHIFT; // Let's behave reasonably for weird capacity_log values. return loads_bits > 0 ? loads_bits : 1; } @@ -181,7 +183,7 @@ static inline int32_t capacity2loads(int capacity_log) static size_t kru_get_size(int capacity_log) { uint32_t loads_bits = capacity2loads(capacity_log); - if (8 * sizeof(hash_t) < TABLE_COUNT * loads_bits + if (8 * sizeof(kru_hash_t) < TABLE_COUNT * loads_bits + 8 * sizeof(((struct kru *)0)->load_cls[0]->ids[0])) { assert(false); return 0; @@ -191,6 +193,12 @@ static size_t kru_get_size(int capacity_log) + sizeof(struct load_cl) * TABLE_COUNT * (1 << loads_bits); } +static bool kru_check_size(struct kru *kru, ptrdiff_t size) +{ + if (size < sizeof(struct kru)) return false; + return size == kru_get_size(kru->loads_bits + LOADS_CAPACITY_SHIFT); +} + static bool kru_initialize(struct kru *kru, int capacity_log, kru_price_t max_decay) { if (!kru) { @@ -198,7 +206,7 @@ static bool kru_initialize(struct kru *kru, int capacity_log, kru_price_t max_de } uint32_t loads_bits = capacity2loads(capacity_log); - if (8 * sizeof(hash_t) < TABLE_COUNT * loads_bits + if (8 * sizeof(kru_hash_t) < TABLE_COUNT * loads_bits + 8 * sizeof(((struct kru *)0)->load_cls[0]->ids[0])) { assert(false); return false; @@ -226,11 +234,30 @@ struct query_ctx { uint16_t *load; }; +/// Phase 1/3 of a query -- prefetch, ctx init. Based on a kru_hash_t. +static inline void kru_limited_prefetch_hash(struct kru *kru, uint32_t time_now, kru_hash_t hash, kru_price_t price, struct query_ctx *ctx) +{ + // Choose the cache-lines to operate on + const uint32_t loads_mask = (1 << kru->loads_bits) - 1; + // Fetch the two cache-lines in parallel before we really touch them. + for (int li = 0; li < TABLE_COUNT; ++li) { + struct load_cl * const l = &kru->load_cls[hash & loads_mask][li]; + __builtin_prefetch(l, 0); // hope for read-only access + hash >>= kru->loads_bits; + ctx->l[li] = l; + } + + ctx->time_now = time_now; + ctx->price = price; + ctx->id = hash; +} + /// Phase 1/3 of a query -- hash, prefetch, ctx init. Based on one 16-byte key. static inline void kru_limited_prefetch(struct kru *kru, uint32_t time_now, uint8_t key[static 16], kru_price_t price, struct query_ctx *ctx) { // Obtain hash of *buf. - hash_t hash; + kru_hash_t hash; + static_assert(sizeof(kru_hash_t) * 8 <= 64, "bad size of kru_hash_t"); #if !USE_AES hash = SipHash(&kru->hash_key, SIPHASH_RC, SIPHASH_RF, key, 16); #else @@ -246,27 +273,15 @@ static inline void kru_limited_prefetch(struct kru *kru, uint32_t time_now, uint memcpy(&hash, &h, sizeof(hash)); } #endif - - // Choose the cache-lines to operate on - const uint32_t loads_mask = (1 << kru->loads_bits) - 1; - // Fetch the two cache-lines in parallel before we really touch them. - for (int li = 0; li < TABLE_COUNT; ++li) { - struct load_cl * const l = &kru->load_cls[hash & loads_mask][li]; - __builtin_prefetch(l, 0); // hope for read-only access - hash >>= kru->loads_bits; - ctx->l[li] = l; - } - - ctx->time_now = time_now; - ctx->price = price; - ctx->id = hash; + kru_limited_prefetch_hash(kru, time_now, hash, price, ctx); } /// Phase 1/3 of a query -- hash, prefetch, ctx init. Based on a bit prefix of one 16-byte key. static inline void kru_limited_prefetch_prefix(struct kru *kru, uint32_t time_now, uint8_t namespace, uint8_t key[static 16], uint8_t prefix, kru_price_t price, struct query_ctx *ctx) { // Obtain hash of *buf. - hash_t hash; + kru_hash_t hash; + static_assert(sizeof(kru_hash_t) * 8 <= 64, "bad size of kru_hash_t"); #if !USE_AES { @@ -321,19 +336,22 @@ static inline void kru_limited_prefetch_prefix(struct kru *kru, uint32_t time_no } #endif - // Choose the cache-lines to operate on - const uint32_t loads_mask = (1 << kru->loads_bits) - 1; - // Fetch the two cache-lines in parallel before we really touch them. - for (int li = 0; li < TABLE_COUNT; ++li) { - struct load_cl * const l = &kru->load_cls[hash & loads_mask][li]; - __builtin_prefetch(l, 0); // hope for read-only access - hash >>= kru->loads_bits; - ctx->l[li] = l; - } + kru_limited_prefetch_hash(kru, time_now, hash, price, ctx); +} - ctx->time_now = time_now; - ctx->price = price; - ctx->id = hash; +static kru_hash_t kru_hash_bytes(struct kru *kru, uint8_t *key, size_t key_size) +{ + // Obtain hash of *buf. + kru_hash_t hash; + static_assert(sizeof(kru_hash_t) * 8 <= 64, "bad size of kru_hash_t"); + + // We use SipHash even for otherwise optimized KRU variant, which has diffent type of hash_key. + static_assert(sizeof(kru->hash_key) >= sizeof(SIPHASH_KEY), "bad size of kru::hash_key"); + SIPHASH_KEY *hash_key = (void *)&kru->hash_key; + + hash = SipHash(hash_key, SIPHASH_RC, SIPHASH_RF, key, key_size); + + return hash; } /// Phase 2/3 of a query -- returns answer with no state modification (except update_time). @@ -614,6 +632,20 @@ static uint16_t kru_load_multi_prefix_max(struct kru *kru, uint32_t time_now, ui return max_load; } +static uint16_t kru_load_hash(struct kru *kru, uint32_t time_now, kru_hash_t hash, kru_price_t price) +{ + struct query_ctx ctx; + + kru_limited_prefetch_hash(kru, time_now, hash, price, &ctx); + kru_limited_fetch(kru, &ctx); + + if (price) { + kru_limited_update(kru, &ctx, true); + } + + return ctx.final_load_value; +} + /// Update limiting and return true iff it hit the limit instead. static bool kru_limited(struct kru *kru, uint32_t time_now, uint8_t key[static 16], kru_price_t price) { @@ -622,6 +654,7 @@ static bool kru_limited(struct kru *kru, uint32_t time_now, uint8_t key[static 1 #define KRU_API_INITIALIZER { \ .get_size = kru_get_size, \ + .check_size = kru_check_size, \ .initialize = kru_initialize, \ .limited = kru_limited, \ .limited_multi_or = kru_limited_multi_or, \ @@ -629,4 +662,6 @@ static bool kru_limited(struct kru *kru, uint32_t time_now, uint8_t key[static 1 .limited_multi_prefix_or = kru_limited_multi_prefix_or, \ .load_multi_prefix = kru_load_multi_prefix, \ .load_multi_prefix_max = kru_load_multi_prefix_max, \ + .load_hash = kru_load_hash, \ + .hash_bytes = kru_hash_bytes, \ } From 1f763f512e507c5167681e49456eae142cca297a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 8 Jun 2026 13:33:35 +0200 Subject: [PATCH 568/675] mod-rrl: use kru_using_avx2() instead of explicit check --- src/knot/modules/rrl/rrl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/modules/rrl/rrl.c b/src/knot/modules/rrl/rrl.c index 5370603cb5..4afb4f3cb4 100644 --- a/src/knot/modules/rrl/rrl.c +++ b/src/knot/modules/rrl/rrl.c @@ -251,7 +251,7 @@ int rrl_load(knotd_mod_t *mod) * https://stackoverflow.com/a/28663156/587396 */ knotd_mod_log(mod, LOG_DEBUG, "using %s implementation", - KRU.limited == KRU_AVX2.limited ? "optimized" : "generic"); + kru_using_avx2() ? "optimized" : "generic"); knotd_mod_ctx_set(mod, ctx); From 7c5c4621e68d689e1fcfd7761db0bbbec041b7b3 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 8 Jun 2026 13:45:05 +0200 Subject: [PATCH 569/675] kru: replace static_assert() with kru_enough_atomics() --- src/knot/modules/rrl/kru.h | 7 +++++++ src/knot/modules/rrl/kru.inc.c | 1 - src/knot/modules/rrl/rrl.c | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/knot/modules/rrl/kru.h b/src/knot/modules/rrl/kru.h index a2515bbd92..477924edb1 100644 --- a/src/knot/modules/rrl/kru.h +++ b/src/knot/modules/rrl/kru.h @@ -5,6 +5,7 @@ #pragma once +#include #include #include #include @@ -117,3 +118,9 @@ static inline bool kru_using_avx2(void) assert(result || KRU.initialize == KRU_GENERIC.initialize); return result; } + +/// Return whether sufficient atomics are available. +static inline bool kru_enough_atomics(void) +{ + return (ATOMIC_CHAR16_T_LOCK_FREE == 2 && ATOMIC_CHAR32_T_LOCK_FREE == 2); +} diff --git a/src/knot/modules/rrl/kru.inc.c b/src/knot/modules/rrl/kru.inc.c index 515d82ed18..678ffd1386 100644 --- a/src/knot/modules/rrl/kru.inc.c +++ b/src/knot/modules/rrl/kru.inc.c @@ -480,7 +480,6 @@ static inline bool kru_limited_update(struct kru *kru, struct query_ctx *ctx, bo load_at = (_Atomic uint16_t *)ctx->load; } - static_assert(ATOMIC_CHAR16_T_LOCK_FREE == 2, "insufficient atomics"); const uint16_t price = ctx->price16; const uint32_t limit = ctx->limit16; // 2^16 has to be representable uint16_t load_orig = atomic_load_explicit(load_at, memory_order_relaxed); diff --git a/src/knot/modules/rrl/rrl.c b/src/knot/modules/rrl/rrl.c index 4afb4f3cb4..8829a11d16 100644 --- a/src/knot/modules/rrl/rrl.c +++ b/src/knot/modules/rrl/rrl.c @@ -251,7 +251,8 @@ int rrl_load(knotd_mod_t *mod) * https://stackoverflow.com/a/28663156/587396 */ knotd_mod_log(mod, LOG_DEBUG, "using %s implementation", - kru_using_avx2() ? "optimized" : "generic"); + kru_using_avx2() ? "AVX2" : + (kru_enough_atomics() ? "generic" : "inefficient")); knotd_mod_ctx_set(mod, ctx); From 7b44b20d2ffdab0cd04206661cb05acbb5245416 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hynek=20=C5=A0aback=C3=BD?= Date: Mon, 8 Jun 2026 08:52:04 +0200 Subject: [PATCH 570/675] kxdpgun: fix crash when reusing a swept out QUIC connection --- src/utils/kxdpgun/main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/utils/kxdpgun/main.c b/src/utils/kxdpgun/main.c index 4faaef2306..222fed4081 100644 --- a/src/utils/kxdpgun/main.c +++ b/src/utils/kxdpgun/main.c @@ -488,6 +488,7 @@ void *xdp_gun_thread(void *_ctx) newconn = NULL; // un-re-usable conn } else { ctx->local_ip.sin6_port = knot_quic_conn_local_port(newconn); + newconn->flags &= ~KNOT_QUIC_CONN_BLOCKED; ret = KNOT_EOK; } } @@ -686,6 +687,8 @@ void *xdp_gun_thread(void *_ctx) if (conn->streams_count > 1) { knot_quic_conn_stream_free(conn, conn->streams_first * 4); } + // This flag prevents the connection from being swept out. + conn->flags |= KNOT_QUIC_CONN_BLOCKED; ptrlist_add(&reuse_conns, conn, NULL); } } From 032042e77ce8cfde72b98bc538f5475a13657ec1 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 9 Jun 2026 11:02:17 +0200 Subject: [PATCH 571/675] tests/validate_event: prevent interference with EDNS EXPIRE --- tests-extra/tests/dnssec/validate_event/test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests-extra/tests/dnssec/validate_event/test.py b/tests-extra/tests/dnssec/validate_event/test.py index 9a64b3b4df..6fb14a6762 100644 --- a/tests-extra/tests/dnssec/validate_event/test.py +++ b/tests-extra/tests/dnssec/validate_event/test.py @@ -17,6 +17,7 @@ def dig_multi(server, zones, exp_rcode): zones = t.zone("example.") t.link(zones, master, slave, ixfr=True, ddns=True) +master.no_xfr_edns = True # we want to check expiration on slave based on validation event, not EDNS EXPIRE timer set by signer for z in zones: master.dnssec(z).enable = True From 4c90b3170898d651aed4c9437736eca3e0689faf Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 8 Jun 2026 16:03:22 +0200 Subject: [PATCH 572/675] validation event: skip checking NSECs when zone unchanged --- src/knot/dnssec/zone-events.c | 4 +++- src/knot/dnssec/zone-events.h | 1 + src/knot/events/handlers/validate.c | 1 + src/knot/updates/zone-update.c | 1 + src/knot/zone/semantic-check.c | 1 + src/utils/kzonesign/main.c | 1 + 6 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/knot/dnssec/zone-events.c b/src/knot/dnssec/zone-events.c index 67c8761510..bcb96afde7 100644 --- a/src/knot/dnssec/zone-events.c +++ b/src/knot/dnssec/zone-events.c @@ -499,7 +499,9 @@ int knot_dnssec_validate_zone(zone_update_t *update, validation_conf_t *val_conf ctx.now = val_conf->now; } - ret = knot_zone_check_nsec_chain(update, &ctx, val_conf->incremental); + if (!val_conf->fast) { // useful when re-checking unchanged state for expired RRSIGs. Also, RRSIGs' crypto is skipped thanks to NODE_FLAGS_RRSIGS_VALID, only expiration time is checked AND existence of RRSIGs per KSKs+ZSKs (as DNSKEYs might have changed incrementally). + ret = knot_zone_check_nsec_chain(update, &ctx, val_conf->incremental); + } if (ret == KNOT_EOK) { assert(ctx.validation_mode); if (val_conf->incremental) { diff --git a/src/knot/dnssec/zone-events.h b/src/knot/dnssec/zone-events.h index 8b0fa1222d..6dde2ef52c 100644 --- a/src/knot/dnssec/zone-events.h +++ b/src/knot/dnssec/zone-events.h @@ -44,6 +44,7 @@ typedef struct { uint16_t threads; knot_time_t now; // If not zero: adjust "now" to this timestamp. bool incremental; + bool fast; bool log_plan; } validation_conf_t; diff --git a/src/knot/events/handlers/validate.c b/src/knot/events/handlers/validate.c index 617b4bb73c..20502528ed 100644 --- a/src/knot/events/handlers/validate.c +++ b/src/knot/events/handlers/validate.c @@ -25,6 +25,7 @@ int event_validate(conf_t *conf, zone_t *zone) .conf = conf, .now = knot_time(), .incremental = false, + .fast = true, // they have been checked upon update, now only checking RRSIGs' expiration .log_plan = true, }; diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index db7f6776d3..5121a1d4de 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1208,6 +1208,7 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) validation_conf_t val_conf = { .conf = conf, .incremental = update->flags & UPDATE_INCREMENTAL, + .fast = false, .log_plan = true, }; ret = knot_dnssec_validate_zone(update, &val_conf); diff --git a/src/knot/zone/semantic-check.c b/src/knot/zone/semantic-check.c index f60120e223..93303751e9 100644 --- a/src/knot/zone/semantic-check.c +++ b/src/knot/zone/semantic-check.c @@ -539,6 +539,7 @@ static int verify_dnssec(zone_contents_t *zone, sem_handler_t *handler, time_t t .threads = threads, .now = time, .incremental = false, + .fast = false, }; int ret = knot_dnssec_validate_zone(&fake_up, &val_conf); if (fake_up.validation_hint.node != NULL) { // validation found an issue diff --git a/src/utils/kzonesign/main.c b/src/utils/kzonesign/main.c index 65bfe20f76..00308129c8 100644 --- a/src/utils/kzonesign/main.c +++ b/src/utils/kzonesign/main.c @@ -110,6 +110,7 @@ static int zonesign(sign_params_t *params) .conf = conf(), .now = params->timestamp, .incremental = false, + .fast = false, .log_plan = false, }; ret = knot_dnssec_validate_zone(&up, &val_conf); From b4e5ae4e9705a7fa360fd2063619e992b17d8621 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 10 Jun 2026 08:49:57 +0200 Subject: [PATCH 573/675] ctl/zone-validate: dont optimize by skipping NSEC chain checks --- src/knot/ctl/commands.c | 1 + src/knot/dnssec/zone-events.c | 6 +++++- src/knot/events/handlers/validate.c | 9 +++++++-- src/knot/zone/zone.h | 1 + 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 9840212276..dbf03d5513 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -808,6 +808,7 @@ static int zone_sign(zone_t *zone, _unused_ ctl_args_t *args) static int zone_validate(zone_t *zone, _unused_ ctl_args_t *args) { + zone_set_flag(zone, ZONE_FORCE_VALIDATE); return schedule_trigger(zone, args, ZONE_EVENT_VALIDATE, true); } diff --git a/src/knot/dnssec/zone-events.c b/src/knot/dnssec/zone-events.c index bcb96afde7..2201f96c28 100644 --- a/src/knot/dnssec/zone-events.c +++ b/src/knot/dnssec/zone-events.c @@ -499,7 +499,11 @@ int knot_dnssec_validate_zone(zone_update_t *update, validation_conf_t *val_conf ctx.now = val_conf->now; } - if (!val_conf->fast) { // useful when re-checking unchanged state for expired RRSIGs. Also, RRSIGs' crypto is skipped thanks to NODE_FLAGS_RRSIGS_VALID, only expiration time is checked AND existence of RRSIGs per KSKs+ZSKs (as DNSKEYs might have changed incrementally). + /* Fast check is useful when rechecking unchanged state for expired RRSIGs. + * Also, RRSIGs' crypto is skipped thanks to NODE_FLAGS_RRSIGS_VALID, + * only expiration time is checked AND existence of RRSIGs per KSKs+ZSKs + * (as DNSKEYs might have changed incrementally). */ + if (!val_conf->fast) { ret = knot_zone_check_nsec_chain(update, &ctx, val_conf->incremental); } if (ret == KNOT_EOK) { diff --git a/src/knot/events/handlers/validate.c b/src/knot/events/handlers/validate.c index 20502528ed..e2debec9d8 100644 --- a/src/knot/events/handlers/validate.c +++ b/src/knot/events/handlers/validate.c @@ -25,11 +25,16 @@ int event_validate(conf_t *conf, zone_t *zone) .conf = conf, .now = knot_time(), .incremental = false, - .fast = true, // they have been checked upon update, now only checking RRSIGs' expiration + .fast = true, // they have been checked upon update, now only checking RRSIGs' expiration .log_plan = true, }; - log_zone_info(zone->name, "DNSSEC, re-validating zone fully"); + if (zone_get_flag(zone, ZONE_FORCE_VALIDATE, true)) { + val_conf.fast = false; + log_zone_info(zone->name, "DNSSEC, full zone revalidation"); + } else { + log_zone_info(zone->name, "DNSSEC, RRSIG expiration revalidation"); + } return knot_dnssec_validate_zone(&fake_upd, &val_conf); } diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 05c50690bb..aaa2175314 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -36,6 +36,7 @@ typedef enum { ZONE_FORCE_ZSK_ROLL = 1 << 4, /*!< Force ZSK rollover. */ ZONE_IS_CATALOG = 1 << 5, /*!< This is a catalog. */ ZONE_IS_CAT_MEMBER = 1 << 6, /*!< This zone exists according to a catalog. */ + ZONE_FORCE_VALIDATE = 1 << 7, /*!< Force full DNSSEC validation. */ ZONE_USER_FLUSH = 1 << 8, /*!< User-triggered flush. */ ZONE_LAST_SIGN_OK = 1 << 9, /*!< Last full-sign event finished OK. */ ZONE_PREF_MASTER_2X = 1 << 10, /*!< Preferred master has been overwritten at least once. */ From aa065886602e703a35df99c0ad937e6fafa9ed68 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 10 Jun 2026 08:56:09 +0200 Subject: [PATCH 574/675] ctl/zone-validate: dont optimize by skipping crypto when triggered manually --- src/knot/dnssec/zone-events.c | 3 +++ src/knot/dnssec/zone-events.h | 1 + src/knot/events/handlers/validate.c | 1 + 3 files changed, 5 insertions(+) diff --git a/src/knot/dnssec/zone-events.c b/src/knot/dnssec/zone-events.c index 2201f96c28..31e8f44881 100644 --- a/src/knot/dnssec/zone-events.c +++ b/src/knot/dnssec/zone-events.c @@ -498,6 +498,9 @@ int knot_dnssec_validate_zone(zone_update_t *update, validation_conf_t *val_conf if (val_conf->now != 0) { ctx.now = val_conf->now; } + if (val_conf->no_skip_crypto) { + ctx.keytag_conflict = true; // enforce all RRSIGs check by pretending keytag conflict + } /* Fast check is useful when rechecking unchanged state for expired RRSIGs. * Also, RRSIGs' crypto is skipped thanks to NODE_FLAGS_RRSIGS_VALID, diff --git a/src/knot/dnssec/zone-events.h b/src/knot/dnssec/zone-events.h index 6dde2ef52c..1aad79965b 100644 --- a/src/knot/dnssec/zone-events.h +++ b/src/knot/dnssec/zone-events.h @@ -45,6 +45,7 @@ typedef struct { knot_time_t now; // If not zero: adjust "now" to this timestamp. bool incremental; bool fast; + bool no_skip_crypto; bool log_plan; } validation_conf_t; diff --git a/src/knot/events/handlers/validate.c b/src/knot/events/handlers/validate.c index e2debec9d8..1fe7ec2d49 100644 --- a/src/knot/events/handlers/validate.c +++ b/src/knot/events/handlers/validate.c @@ -31,6 +31,7 @@ int event_validate(conf_t *conf, zone_t *zone) if (zone_get_flag(zone, ZONE_FORCE_VALIDATE, true)) { val_conf.fast = false; + val_conf.no_skip_crypto = true; log_zone_info(zone->name, "DNSSEC, full zone revalidation"); } else { log_zone_info(zone->name, "DNSSEC, RRSIG expiration revalidation"); From cbc1617d8ff99f6dbb9332a2b70fe8dc696d380f Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 9 Jun 2026 20:48:37 +0200 Subject: [PATCH 575/675] conf: conf_db_exists() checks only directory existence to avoid ignoring EACCES --- src/knot/conf/conf.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index 858e746dde..dd78579216 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -41,9 +41,7 @@ bool conf_db_exists( } struct stat st; - char data_mdb[strlen(db_dir) + 10]; - (void)snprintf(data_mdb, sizeof(data_mdb), "%s/data.mdb", db_dir); - return (stat(data_mdb, &st) == 0 && st.st_size > 0); + return stat(db_dir, &st) == 0 && S_ISDIR(st.st_mode); } conf_val_t conf_get_txn( From b9ca214a3e4d4b2831910f26eb8ae4abd628f81d Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 11 Jun 2026 09:16:52 +0200 Subject: [PATCH 576/675] doc: add note about DS check behavior --- doc/operation.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/operation.rst b/doc/operation.rst index 5d360adaf5..b348669b9e 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -843,6 +843,10 @@ operator must confirm it manually (using ``knotc zone-ksk-submitted``) ``$ keymgr example.com ds 3375`` +.. NOTE:: + The DS check tolerates unknown DS records at the parent, but it requires the + previously known DS record to be removed; otherwise, the DS check remains negative. + :: 2024-02-14T15:20:12+0100 info: [example.com.] DS check, outgoing, remote 127.0.0.1@5300 TCP, KSK submission check: negative From 278de58e709524a5c6ca14f2a0e059aaf0df1e08 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 11 Jun 2026 19:20:11 +0200 Subject: [PATCH 577/675] xfr: set AA flag if a positive response (RFC 5936) --- src/knot/nameserver/axfr.c | 2 ++ src/knot/nameserver/ixfr.c | 2 ++ tests-extra/tools/dnstest/response.py | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/knot/nameserver/axfr.c b/src/knot/nameserver/axfr.c index 76c3107de2..d0fea6e259 100644 --- a/src/knot/nameserver/axfr.c +++ b/src/knot/nameserver/axfr.c @@ -222,8 +222,10 @@ knot_layer_state_t axfr_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata) ret = xfr_process_list(pkt, &axfr_process_node_tree, qdata); switch (ret) { case KNOT_ESPACE: /* Couldn't write more, send packet and continue. */ + knot_wire_set_aa(pkt->wire); return KNOT_STATE_PRODUCE; /* Check for more. */ case KNOT_EOK: /* Last response. */ + knot_wire_set_aa(pkt->wire); return KNOT_STATE_DONE; default: /* Generic error. */ AXFROUT_LOG(LOG_ERR, qdata, "failed (%s)", knot_strerror(ret)); diff --git a/src/knot/nameserver/ixfr.c b/src/knot/nameserver/ixfr.c index 35f421fd3e..befcc17ad6 100644 --- a/src/knot/nameserver/ixfr.c +++ b/src/knot/nameserver/ixfr.c @@ -325,12 +325,14 @@ knot_layer_state_t ixfr_process_query(knot_pkt_t *pkt, knotd_qdata_t *qdata) ret = xfr_process_list(pkt, &ixfr_process_journal, qdata); switch (ret) { case KNOT_ESPACE: /* Couldn't write more, send packet and continue. */ + knot_wire_set_aa(pkt->wire); return KNOT_STATE_PRODUCE; /* Check for more. */ case KNOT_EOK: /* Last response. */ if (ixfr->soa_last != ixfr->soa_to) { IXFROUT_LOG(LOG_ERR, qdata, "failed (inconsistent history)"); return KNOT_STATE_FAIL; } + knot_wire_set_aa(pkt->wire); return KNOT_STATE_DONE; default: /* Generic error. */ IXFROUT_LOG(LOG_ERR, qdata, "failed (%s)", knot_strerror(ret)); diff --git a/tests-extra/tools/dnstest/response.py b/tests-extra/tools/dnstest/response.py index a6cf19cd6f..3064e94c6d 100644 --- a/tests-extra/tools/dnstest/response.py +++ b/tests-extra/tools/dnstest/response.py @@ -200,6 +200,8 @@ def check_xfr(self, rcode="NOERROR"): # Get the first message. try: for msg in iter_copy: + isset(msg.flags & dns.flags.AA, "AA flag") + question = msg.question[0] compare(question.rdclass, self.rclass, "QCLASS") compare(question.rdtype, self.rtype, "QTYPE") From 76d758aaa6e641d1aacedc28ee50ec18df76a146 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 15 Jun 2026 09:06:23 +0200 Subject: [PATCH 578/675] files: replace KNOT_EEXIST with KNOT_ENOTDIR in make_dir() --- src/contrib/files.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contrib/files.c b/src/contrib/files.c index 4d58694552..fabc7ae66c 100644 --- a/src/contrib/files.c +++ b/src/contrib/files.c @@ -124,7 +124,7 @@ int make_dir(const char *path, mode_t mode, bool ignore_existing) } if (!S_ISDIR(st.st_mode)) { - return KNOT_EEXIST; + return KNOT_ENOTDIR; } return KNOT_EOK; From 7c18354987480085803896f2193cb72f10ab7f50 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sat, 13 Jun 2026 20:02:54 +0200 Subject: [PATCH 579/675] conf: conf_db_exists() returns false for an empty confdb directory --- src/knot/conf/conf.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index dd78579216..f2e503ac88 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -41,7 +41,23 @@ bool conf_db_exists( } struct stat st; - return stat(db_dir, &st) == 0 && S_ISDIR(st.st_mode); + if (stat(db_dir, &st) == 0) { // Directory path exists. + if (S_ISDIR(st.st_mode)) { // A directory. + char data_mdb[strlen(db_dir) + 10]; + (void)snprintf(data_mdb, sizeof(data_mdb), "%s/data.mdb", db_dir); + if (stat(data_mdb, &st) == 0) { // Confdb data file exists. + return true; + } else { // Empty directory means no confdb. + return (errno != ENOENT); + } + } else { // A non-directory (e.g. file). + return true; // Causes confdb open error. + } + } else if (errno == EACCES) { // Permission denied. + return true; // Causes confdb open error. + } else { // Nonexistent path or other errors. + return false; + } } conf_val_t conf_get_txn( From 8d3abcc5f5c597105ed6a62952e6f337f3fd9733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Mon, 15 Jun 2026 15:33:13 +0200 Subject: [PATCH 580/675] handle disconnected knotd socket fixes #974 --- python/knot_exporter/knot_exporter/knot_exporter.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/python/knot_exporter/knot_exporter/knot_exporter.py b/python/knot_exporter/knot_exporter/knot_exporter.py index a3170914f5..eb706af6be 100755 --- a/python/knot_exporter/knot_exporter/knot_exporter.py +++ b/python/knot_exporter/knot_exporter/knot_exporter.py @@ -66,9 +66,13 @@ def convert_state_time(time): return seconds def collect(self): - ctl = libknot.control.KnotCtl() - ctl.connect(self._sock) - ctl.set_timeout(self._ttl) + try: + ctl = libknot.control.KnotCtl() + ctl.connect(self._sock) + ctl.set_timeout(self._ttl) + except libknot.control.KnotCtlErrorConnect: + return + metric_families = dict() def metric_families_append(family, labels, labels_val, data, unit=None): From 0a206423b50633b7a7b981356d2cabc174bd6277 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 9 Jun 2026 16:24:28 +0200 Subject: [PATCH 581/675] logging: use knot_time_print to dump logline timestamp --- src/contrib/time.c | 13 +++++++++++-- src/contrib/time.h | 3 ++- src/knot/common/log.c | 10 ++++++---- tests/contrib/test_time.c | 9 +++++++-- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/contrib/time.c b/src/contrib/time.c index 50ab799a27..a7950a7281 100644 --- a/src/contrib/time.c +++ b/src/contrib/time.c @@ -375,6 +375,8 @@ int knot_time_print(knot_time_print_t format, knot_time_t time, char *dst, size_ } int ret; + struct tm lt; + time_t tt; switch (format) { case TIME_PRINT_UNIX: ret = snprintf(dst, dst_len, "%"KNOT_TIME_PRINTF, time); @@ -388,11 +390,18 @@ int knot_time_print(knot_time_print_t format, knot_time_t time, char *dst, size_ putenv("TZ=UTC"); tzset(); - struct tm lt; - time_t tt = (time_t)time; + tt = (time_t)time; ret = (localtime_r(&tt, <) == NULL ? -1 : strftime(dst, dst_len, "%Y-%m-%dT%H:%M:%SZ", <)); return (ret > 0 ? 0 : -1); + case TIME_PRINT_ISO8601Z: + if (time > LONG_MAX) { + return -1; + } + tt = (time_t)time; + ret = (localtime_r(&tt, <) == NULL ? -1 : + strftime(dst, dst_len, "%Y-%m-%dT%H:%M:%S%z", <)); + return (ret > 0 ? 0 : -1); case TIME_PRINT_RELSEC: ret = snprintf(dst, dst_len, "%+"KNOT_TIMEDIFF_PRINTF, knot_time_diff(time, knot_time())); diff --git a/src/contrib/time.h b/src/contrib/time.h index ddb754b11f..0c5887c7d8 100644 --- a/src/contrib/time.h +++ b/src/contrib/time.h @@ -30,7 +30,8 @@ typedef unsigned long long knot_millis_t; */ typedef enum { TIME_PRINT_UNIX, // numeric UNIX time - TIME_PRINT_ISO8601, // 2016-12-31T23:59:00 + TIME_PRINT_ISO8601, // 2016-12-31T21:59:00Z + TIME_PRINT_ISO8601Z, // 2016-12-31T23:59:00+02:00 TIME_PRINT_RELSEC, // relative +6523 TIME_PRINT_HUMAN_MIXED, // relative with mixed-case units TIME_PRINT_HUMAN_LOWER, // relative with lower-case units diff --git a/src/knot/common/log.c b/src/knot/common/log.c index cfdcb7ca3a..f4749d9327 100644 --- a/src/knot/common/log.c +++ b/src/knot/common/log.c @@ -20,6 +20,7 @@ #include "knot/common/log.h" #include "libknot/libknot.h" +#include "contrib/time.h" #include "contrib/ucw/lists.h" /*! Single log message buffer length (one line). */ @@ -245,12 +246,13 @@ static void emit_log_msg(int level, log_source_t src, const char *zone, // Prefix date and time. char tstr[LOG_BUFLEN] = { 0 }; if (!(s_log->flags & LOG_FLAG_NOTIMESTAMP)) { - struct tm lt; + int tstrlen; struct timeval tv; gettimeofday(&tv, NULL); - time_t sec = tv.tv_sec; - if (localtime_r(&sec, <) != NULL) { - strftime(tstr, sizeof(tstr), KNOT_LOG_TIME_FORMAT " ", <); + if (knot_time_print(TIME_PRINT_ISO8601Z, tv.tv_sec, tstr, sizeof(tstr)) < 0) { + tstr[0] = '\0'; + } else if ((tstrlen = strlen(tstr)) < sizeof(tstr) - 1) { + memcpy(tstr + tstrlen, " ", 2); } } diff --git a/tests/contrib/test_time.c b/tests/contrib/test_time.c index 93ec181d5e..9a27df9dc4 100644 --- a/tests/contrib/test_time.c +++ b/tests/contrib/test_time.c @@ -5,6 +5,7 @@ #include +#include #include #include "contrib/time.h" @@ -159,8 +160,12 @@ static void test_time_print(void) test_time_print_expect(ret, buff, bufl, "-10000", "relsec"); ret = knot_time_print(TIME_PRINT_ISO8601, t, buff, bufl); - buff[11] = '0', buff[12] = '0'; // zeroing 'hours' field to avoid locality issues - test_time_print_expect(ret, buff, bufl, "1970-01-01T00:13:20Z", "iso"); + test_time_print_expect(ret, buff, bufl, "1970-01-01T12:13:20Z", "iso"); // knot_time_print(TIME_PRINT_ISO8601) explicitly sets TZ=UTC + + putenv("TZ=Europe/Prague"); + tzset(); + ret = knot_time_print(TIME_PRINT_ISO8601Z, t, buff, bufl); + test_time_print_expect(ret, buff, bufl, "1970-01-01T13:13:20+0100", "isoZ"); t2 = knot_time_add(knot_time(), -10000); ret = knot_time_print(TIME_PRINT_HUMAN_MIXED, t2, buff, bufl); From a1056087d7d0467d925e3eeb819c5a1f8ae91a7c Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 9 Jun 2026 17:27:54 +0200 Subject: [PATCH 582/675] logging: timestamp prefix in millisecond precision --- src/contrib/string.c | 9 ++++ src/contrib/string.h | 12 +++++ src/contrib/time.c | 103 ++++++++++++++++++++++++++++++++++---- src/contrib/time.h | 17 +++++++ src/knot/common/log.c | 8 ++- tests/contrib/test_time.c | 21 +++++++- 6 files changed, 154 insertions(+), 16 deletions(-) diff --git a/src/contrib/string.c b/src/contrib/string.c index 91c3f65943..ffae8f7972 100644 --- a/src/contrib/string.c +++ b/src/contrib/string.c @@ -59,6 +59,15 @@ char *sprintf_alloc(const char *fmt, ...) return strp; } +int snprintf_check(char *buf, size_t len, const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + int ret = vsnprintf(buf, len, fmt, ap); + va_end(ap); + return ret >= len ? -1 : ret; +} + char *strcdup(const char *s1, const char *s2) { if (!s1 || !s2) { diff --git a/src/contrib/string.h b/src/contrib/string.h index 75549219f9..36dcbe2ef0 100644 --- a/src/contrib/string.h +++ b/src/contrib/string.h @@ -37,6 +37,18 @@ int strmemcmp(const char *str, const uint8_t *mem, size_t mem_size); */ char *sprintf_alloc(const char *fmt, ...); +/*! + * \brief Format string and check for truncation. + * + * \param buf Output buffer to be written to. + * \param len Size of the output buffer. + * \param fmt Message format. + * + * \retval >= 0 && < len Real number of characters written. + * \return < 0 Error or overflow. + */ +int snprintf_check(char *buf, size_t len, const char *fmt, ...); + /*! * \brief Create new string from a concatenation of s1 and s2. * diff --git a/src/contrib/time.c b/src/contrib/time.c index a7950a7281..142801625a 100644 --- a/src/contrib/time.c +++ b/src/contrib/time.c @@ -13,6 +13,7 @@ #include "contrib/time.h" #include "contrib/ctype.h" +#include "contrib/string.h" struct timespec time_now(void) { @@ -331,11 +332,11 @@ static size_t unit_sizes[] = { 3600*24*365, 3600*24*30, 3600*24, 3600, 60, 1 }; static const size_t unit_count = 6; static int print_unit(char *dst, size_t dst_len, char *unit_names[unit_count], - size_t max_units, knot_time_t time) + size_t max_units, knot_time_t time, long millis, const char *suffix) { int ret; - if (time == 0) { - ret = snprintf(dst, dst_len, "0"); + if (time == 0 && millis <= 0) { + ret = snprintf(dst, dst_len, "0%s", suffix); return (ret < 0 || ret >= dst_len ? -1 : 0); } knot_timediff_t diff = knot_time_diff(time, knot_time()); @@ -345,16 +346,31 @@ static int print_unit(char *dst, size_t dst_len, char *unit_names[unit_count], *dst++ = (diff < 0 ? '-' : '+'); if (diff < 0) { diff = -diff; + if (millis > 0) { + diff--; + millis = 1000 - millis; + assert(millis > 0); + } } else if (diff == 0) { - ret = snprintf(dst, dst_len, "0%s", unit_names[unit_count - 1]); + if (millis < 0) { + ret = snprintf(dst, dst_len, "0%s%s", unit_names[unit_count - 1], suffix); + } else { + ret = snprintf(dst, dst_len, "0.%03ld%s%s", millis, unit_names[unit_count - 1], suffix); + } return (ret < 0 || ret >= dst_len ? -1 : 0); } size_t curr_unit = 0, used_units = 0; while (curr_unit < unit_count && used_units < max_units) { if (diff >= unit_sizes[curr_unit]) { - ret = snprintf(dst, dst_len, "%"KNOT_TIMEDIFF_PRINTF"%s", - diff / unit_sizes[curr_unit], - unit_names[curr_unit]); + if (millis >= 0 && unit_sizes[curr_unit] == 1) { + ret = snprintf(dst, dst_len, "%"KNOT_TIMEDIFF_PRINTF".%03ld%s", + diff / unit_sizes[curr_unit], + millis, unit_names[curr_unit]); + } else { + ret = snprintf(dst, dst_len, "%"KNOT_TIMEDIFF_PRINTF"%s", + diff / unit_sizes[curr_unit], + unit_names[curr_unit]); + } if (ret < 0 || ret >= dst_len) { return -1; } @@ -365,7 +381,8 @@ static int print_unit(char *dst, size_t dst_len, char *unit_names[unit_count], } curr_unit++; } - return 0; + ret = snprintf_check(dst, dst_len, "%s", suffix); + return (ret >= 0 ? 0 : -1); } int knot_time_print(knot_time_print_t format, knot_time_t time, char *dst, size_t dst_len) @@ -407,9 +424,75 @@ int knot_time_print(knot_time_print_t format, knot_time_t time, char *dst, size_ knot_time_diff(time, knot_time())); return ((ret >= 0 && ret < dst_len) ? 0 : -1); case TIME_PRINT_HUMAN_MIXED: - return print_unit(dst, dst_len, unit_names_mixed, unit_count, time); + return print_unit(dst, dst_len, unit_names_mixed, unit_count, time, -1, ""); + case TIME_PRINT_HUMAN_LOWER: + return print_unit(dst, dst_len, unit_names_lower, unit_count, time, -1, ""); + default: + return -1; + } +} + +int knot_time_print_ex(knot_time_print_t format, knot_time_t time, + long millis, const char *suffix, + char *dst, size_t dst_len) +{ + if (dst == NULL || millis > 999) { + return -1; + } + + int ret; + struct tm lt; + time_t tt; + switch (format) { + case TIME_PRINT_UNIX: + ret = snprintf_check(dst, dst_len, "%"KNOT_TIME_PRINTF".%03ld%s", time, millis, suffix); + return (ret > 0 ? 0 : -1); + case TIME_PRINT_ISO8601: + if (time > LONG_MAX) { + return -1; + } + + // Set timezone to UTC before using timezone dependent functions + putenv("TZ=UTC"); + tzset(); + + tt = (time_t)time; + ret = localtime_r(&tt, <) == NULL ? -1 : 0; + if (ret >= 0) { + ret = strftime(dst, dst_len, "%Y-%m-%dT%H:%M:%S", <); + } + if (ret > 0) { + ret = snprintf_check(dst + ret, dst_len - ret, ".%03ldZ%s", millis, suffix); + } + return (ret > 0 ? 0 : -1); + case TIME_PRINT_ISO8601Z: + if (time > LONG_MAX) { + return -1; + } + tt = (time_t)time; + ret = localtime_r(&tt, <) == NULL ? -1 : 0; + if (ret >= 0) { + int gmtoff_min = abs((int)(lt.tm_gmtoff / 60)) % 60; + ret = snprintf_check(dst, dst_len, "%04d-%02d-%02dT%02d:%02d:%02d.%03ld%+03ld%02d%s", + lt.tm_year + 1900, lt.tm_mon + 1, lt.tm_mday, + lt.tm_hour, lt.tm_min, lt.tm_sec, millis, + lt.tm_gmtoff / 3600, gmtoff_min, suffix); + } + return (ret > 0 ? 0 : -1); + case TIME_PRINT_RELSEC: + ; + knot_timediff_t d = knot_time_diff(time, knot_time()); + if (d < 0 && millis > 0) { + d++; + millis = 1000 - millis; + } + ret = snprintf_check(dst, dst_len, "%+"KNOT_TIMEDIFF_PRINTF".%03ld%s", + d, millis, suffix); + return (ret > 0 ? 0 : -1); + case TIME_PRINT_HUMAN_MIXED: + return print_unit(dst, dst_len, unit_names_mixed, unit_count, time, millis, suffix); case TIME_PRINT_HUMAN_LOWER: - return print_unit(dst, dst_len, unit_names_lower, unit_count, time); + return print_unit(dst, dst_len, unit_names_lower, unit_count, time, millis, suffix); default: return -1; } diff --git a/src/contrib/time.h b/src/contrib/time.h index 0c5887c7d8..70a9d09e93 100644 --- a/src/contrib/time.h +++ b/src/contrib/time.h @@ -207,6 +207,23 @@ int knot_time_parse(const char *format, const char *timespec, knot_time_t *time) */ int knot_time_print(knot_time_print_t format, knot_time_t time, char *dst, size_t dst_len); +/*! + * \brief Print timestamp in specified format with milliseconds and optional suffix. + * + * \param format The timestamp text format specification. + * \param time The timestamp to be printed - seconds. + * \param millis The timestamp to be printed - additional milliseconds. + * \param suffix Any string suffix (or ""). + * \param dst The destination buffer pointer. + * \param dst_len The destination buffer length. + * + * \retval -1 An error occurred, the buffer may be filled with nonsense. + * \return 0 OK, timestamp printed successfully. + */ +int knot_time_print_ex(knot_time_print_t format, knot_time_t time, + long millis, const char *suffix, + char *dst, size_t dst_len); + /*! * \brief Print the timestamp in a predefined human format. * diff --git a/src/knot/common/log.c b/src/knot/common/log.c index f4749d9327..45a4e97619 100644 --- a/src/knot/common/log.c +++ b/src/knot/common/log.c @@ -246,13 +246,11 @@ static void emit_log_msg(int level, log_source_t src, const char *zone, // Prefix date and time. char tstr[LOG_BUFLEN] = { 0 }; if (!(s_log->flags & LOG_FLAG_NOTIMESTAMP)) { - int tstrlen; struct timeval tv; gettimeofday(&tv, NULL); - if (knot_time_print(TIME_PRINT_ISO8601Z, tv.tv_sec, tstr, sizeof(tstr)) < 0) { - tstr[0] = '\0'; - } else if ((tstrlen = strlen(tstr)) < sizeof(tstr) - 1) { - memcpy(tstr + tstrlen, " ", 2); + if (knot_time_print_ex(TIME_PRINT_ISO8601Z, tv.tv_sec, tv.tv_usec / 1000L, + " ", tstr, sizeof(tstr)) < 0) { + tstr[0] = '\0'; } } diff --git a/tests/contrib/test_time.c b/tests/contrib/test_time.c index 9a27df9dc4..4af87a0b16 100644 --- a/tests/contrib/test_time.c +++ b/tests/contrib/test_time.c @@ -142,7 +142,8 @@ static void test_time_print_expect(int ret, const char *res, int res_len, const char *expected, const char *msg) { ok(ret == 0, "time_print %s ok", msg); - ok(strncmp(res, expected, res_len) == 0, "time_print %s result", msg); + ok(strncmp(res, expected, res_len) == 0, "time_print %s result '%.*s' == '%s'", + msg, res_len, res, expected); } static void test_time_print(void) @@ -154,32 +155,50 @@ static void test_time_print(void) ret = knot_time_print(TIME_PRINT_UNIX, t, buff, bufl); test_time_print_expect(ret, buff, bufl, "44000", "unix"); + ret = knot_time_print_ex(TIME_PRINT_UNIX, t, 123, "suf", buff, bufl); + test_time_print_expect(ret, buff, bufl, "44000.123suf", "unix_ex"); t2 = knot_time_add(knot_time(), -10000); ret = knot_time_print(TIME_PRINT_RELSEC, t2, buff, bufl); test_time_print_expect(ret, buff, bufl, "-10000", "relsec"); + ret = knot_time_print_ex(TIME_PRINT_RELSEC, t2, 456, "ruf", buff, bufl); + test_time_print_expect(ret, buff, bufl, "-9999.544ruf", "relsec_ex"); ret = knot_time_print(TIME_PRINT_ISO8601, t, buff, bufl); test_time_print_expect(ret, buff, bufl, "1970-01-01T12:13:20Z", "iso"); // knot_time_print(TIME_PRINT_ISO8601) explicitly sets TZ=UTC + ret = knot_time_print_ex(TIME_PRINT_ISO8601, t, 789, " ", buff, bufl); + test_time_print_expect(ret, buff, bufl, "1970-01-01T12:13:20.789Z ", "iso_ex"); putenv("TZ=Europe/Prague"); tzset(); ret = knot_time_print(TIME_PRINT_ISO8601Z, t, buff, bufl); test_time_print_expect(ret, buff, bufl, "1970-01-01T13:13:20+0100", "isoZ"); + ret = knot_time_print_ex(TIME_PRINT_ISO8601Z, t, 12, "\n", buff, bufl); + test_time_print_expect(ret, buff, bufl, "1970-01-01T13:13:20.012+0100\n", "isoZ_ex"); t2 = knot_time_add(knot_time(), -10000); ret = knot_time_print(TIME_PRINT_HUMAN_MIXED, t2, buff, bufl); test_time_print_expect(ret, buff, bufl, "-2h46m40s", "negative human mixed"); + ret = knot_time_print_ex(TIME_PRINT_HUMAN_MIXED, t2, 111, "", buff, bufl); + test_time_print_expect(ret, buff, bufl, "-2h46m39.889s", "negative human mixed ex"); + big = knot_time_add(knot_time(), 2 * 365 * 24 * 3600 + 1); ret = knot_time_print(TIME_PRINT_HUMAN_MIXED, big, buff, bufl); test_time_print_expect(ret, buff, bufl, "+2Y1s", "big human mixed"); + ret = knot_time_print_ex(TIME_PRINT_HUMAN_MIXED, big, 0, "BIG", buff, bufl); + test_time_print_expect(ret, buff, bufl, "+2Y1.000sBIG", "big human mixed ex"); t2 = knot_time_add(knot_time(), -10000); ret = knot_time_print(TIME_PRINT_HUMAN_LOWER, t2, buff, bufl); test_time_print_expect(ret, buff, bufl, "-2h46mi40s", "negative human lower"); + ret = knot_time_print_ex(TIME_PRINT_HUMAN_LOWER, t2, 0, " neg", buff, bufl); + test_time_print_expect(ret, buff, bufl, "-2h46mi40.000s neg", "negative human lower ex"); + big = knot_time_add(knot_time(), 2 * 365 * 24 * 3600 + 1); ret = knot_time_print(TIME_PRINT_HUMAN_LOWER, big, buff, bufl); test_time_print_expect(ret, buff, bufl, "+2y1s", "big human lower"); + ret = knot_time_print_ex(TIME_PRINT_HUMAN_LOWER, big, 999, "BIG", buff, bufl); + test_time_print_expect(ret, buff, bufl, "+2y1.999sBIG", "big human lower ex"); } int main(int argc, char *argv[]) From 12459608ee085c182e6d81dd84123ae16078cff6 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 17 Jun 2026 13:31:06 +0200 Subject: [PATCH 583/675] time: replace tzset() to UTC and locatime_r() combo with gmtime_r() --- src/contrib/time.c | 14 ++------------ tests/contrib/test_time.c | 2 +- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/src/contrib/time.c b/src/contrib/time.c index 142801625a..968e0550f6 100644 --- a/src/contrib/time.c +++ b/src/contrib/time.c @@ -402,13 +402,8 @@ int knot_time_print(knot_time_print_t format, knot_time_t time, char *dst, size_ if (time > LONG_MAX) { return -1; } - - // Set timezone to UTC before using timezone dependent functions - putenv("TZ=UTC"); - tzset(); - tt = (time_t)time; - ret = (localtime_r(&tt, <) == NULL ? -1 : + ret = (gmtime_r(&tt, <) == NULL ? -1 : strftime(dst, dst_len, "%Y-%m-%dT%H:%M:%SZ", <)); return (ret > 0 ? 0 : -1); case TIME_PRINT_ISO8601Z: @@ -451,13 +446,8 @@ int knot_time_print_ex(knot_time_print_t format, knot_time_t time, if (time > LONG_MAX) { return -1; } - - // Set timezone to UTC before using timezone dependent functions - putenv("TZ=UTC"); - tzset(); - tt = (time_t)time; - ret = localtime_r(&tt, <) == NULL ? -1 : 0; + ret = gmtime_r(&tt, <) == NULL ? -1 : 0; if (ret >= 0) { ret = strftime(dst, dst_len, "%Y-%m-%dT%H:%M:%S", <); } diff --git a/tests/contrib/test_time.c b/tests/contrib/test_time.c index 4af87a0b16..1122e51632 100644 --- a/tests/contrib/test_time.c +++ b/tests/contrib/test_time.c @@ -165,7 +165,7 @@ static void test_time_print(void) test_time_print_expect(ret, buff, bufl, "-9999.544ruf", "relsec_ex"); ret = knot_time_print(TIME_PRINT_ISO8601, t, buff, bufl); - test_time_print_expect(ret, buff, bufl, "1970-01-01T12:13:20Z", "iso"); // knot_time_print(TIME_PRINT_ISO8601) explicitly sets TZ=UTC + test_time_print_expect(ret, buff, bufl, "1970-01-01T12:13:20Z", "iso"); ret = knot_time_print_ex(TIME_PRINT_ISO8601, t, 789, " ", buff, bufl); test_time_print_expect(ret, buff, bufl, "1970-01-01T12:13:20.789Z ", "iso_ex"); From 30a1aa84f645c5837da59aaf99f8f0971adc9e32 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 17 Jun 2026 13:38:45 +0200 Subject: [PATCH 584/675] time: replace tzset() to UTC and mktime() combo with timegm() --- src/contrib/time.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/contrib/time.c b/src/contrib/time.c index 968e0550f6..aaedd1bf74 100644 --- a/src/contrib/time.c +++ b/src/contrib/time.c @@ -130,13 +130,10 @@ static knot_time_t time_ctx_finalize(time_ctx_t *ctx) } else if (ctx->offset) { return (knot_time_t)ctx->offset; } else if (ctx->calendar.tm_year != 0) { - ctx->calendar.tm_isdst = -1; + ctx->calendar.tm_isdst = 0; // UTC has no DST ctx->calendar.tm_year -= 1900; ctx->calendar.tm_mon -= 1; - // Set UTC timezone before using mktime - putenv("TZ=UTC"); - tzset(); - return (knot_time_t)mktime(&ctx->calendar); + return (knot_time_t)timegm(&ctx->calendar); } else { return (knot_time_t)0; } From 196db0c7f2bfdcf040509f963bc185bb2387e8e0 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 17 Jun 2026 17:36:13 +0200 Subject: [PATCH 585/675] time/print: always use colon in TZ spec according to ISO8601 --- src/contrib/time.c | 7 +++++-- tests/contrib/test_time.c | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/contrib/time.c b/src/contrib/time.c index aaedd1bf74..ecf1d3a1a8 100644 --- a/src/contrib/time.c +++ b/src/contrib/time.c @@ -409,7 +409,10 @@ int knot_time_print(knot_time_print_t format, knot_time_t time, char *dst, size_ } tt = (time_t)time; ret = (localtime_r(&tt, <) == NULL ? -1 : - strftime(dst, dst_len, "%Y-%m-%dT%H:%M:%S%z", <)); + snprintf_check(dst, dst_len, "%04d-%02d-%02dT%02d:%02d:%02d%+03ld:%02d", + lt.tm_year + 1900, lt.tm_mon + 1, lt.tm_mday, + lt.tm_hour, lt.tm_min, lt.tm_sec, + lt.tm_gmtoff / 3600, abs((int)(lt.tm_gmtoff / 60)) % 60)); return (ret > 0 ? 0 : -1); case TIME_PRINT_RELSEC: ret = snprintf(dst, dst_len, "%+"KNOT_TIMEDIFF_PRINTF, @@ -460,7 +463,7 @@ int knot_time_print_ex(knot_time_print_t format, knot_time_t time, ret = localtime_r(&tt, <) == NULL ? -1 : 0; if (ret >= 0) { int gmtoff_min = abs((int)(lt.tm_gmtoff / 60)) % 60; - ret = snprintf_check(dst, dst_len, "%04d-%02d-%02dT%02d:%02d:%02d.%03ld%+03ld%02d%s", + ret = snprintf_check(dst, dst_len, "%04d-%02d-%02dT%02d:%02d:%02d.%03ld%+03ld:%02d%s", lt.tm_year + 1900, lt.tm_mon + 1, lt.tm_mday, lt.tm_hour, lt.tm_min, lt.tm_sec, millis, lt.tm_gmtoff / 3600, gmtoff_min, suffix); diff --git a/tests/contrib/test_time.c b/tests/contrib/test_time.c index 1122e51632..8610479b6f 100644 --- a/tests/contrib/test_time.c +++ b/tests/contrib/test_time.c @@ -172,9 +172,9 @@ static void test_time_print(void) putenv("TZ=Europe/Prague"); tzset(); ret = knot_time_print(TIME_PRINT_ISO8601Z, t, buff, bufl); - test_time_print_expect(ret, buff, bufl, "1970-01-01T13:13:20+0100", "isoZ"); + test_time_print_expect(ret, buff, bufl, "1970-01-01T13:13:20+01:00", "isoZ"); ret = knot_time_print_ex(TIME_PRINT_ISO8601Z, t, 12, "\n", buff, bufl); - test_time_print_expect(ret, buff, bufl, "1970-01-01T13:13:20.012+0100\n", "isoZ_ex"); + test_time_print_expect(ret, buff, bufl, "1970-01-01T13:13:20.012+01:00\n", "isoZ_ex"); t2 = knot_time_add(knot_time(), -10000); ret = knot_time_print(TIME_PRINT_HUMAN_MIXED, t2, buff, bufl); From 8f4ab7156d00158337dc7811bc2b35ca89819855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=A1k?= Date: Mon, 22 Jun 2026 14:19:19 +0200 Subject: [PATCH 586/675] tests-redis: remove RLTest lockfile in tmp to avoid problems with removing when user changes --- tests-redis/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/tests-redis/Makefile.am b/tests-redis/Makefile.am index 12c8cdd5ec..4e1ecbc27e 100644 --- a/tests-redis/Makefile.am +++ b/tests-redis/Makefile.am @@ -20,6 +20,7 @@ test: env $(VENV)/bin/RLTest --randomize-ports --clear-logs --parallelism 4 \ $(if $(OSS_REDIS_PATH),--oss-redis-path $(OSS_REDIS_PATH)) \ $(if $(NO_VALGRIND),,--use-valgrind) + rm -f /tmp/rltest_portfile.lock clean-local: rm -rf $(VENV) __pycache__ logs From 08fd74b908f3caa4396e6fef80e21bc90b04be61 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 19 Jun 2026 20:24:52 +0200 Subject: [PATCH 587/675] contents: fix de/init of xfrout_rwlock --- src/knot/updates/apply.c | 2 ++ src/knot/zone/contents.c | 1 + 2 files changed, 3 insertions(+) diff --git a/src/knot/updates/apply.c b/src/knot/updates/apply.c index 0942616564..615f201b4e 100644 --- a/src/knot/updates/apply.c +++ b/src/knot/updates/apply.c @@ -364,6 +364,7 @@ void apply_rollback(apply_ctx_t *ctx) dnssec_nsec3_params_free(&ctx->contents->nsec3_params); + pthread_rwlock_destroy(&ctx->contents->xfrout_lock); free(ctx->contents); if (ctx->cow_mutex != NULL) { @@ -389,5 +390,6 @@ void update_free_zone(zone_contents_t *contents) dnssec_nsec3_params_free(&contents->nsec3_params); + pthread_rwlock_destroy(&contents->xfrout_lock); free(contents); } diff --git a/src/knot/zone/contents.c b/src/knot/zone/contents.c index 98c419ad95..f2096f3427 100644 --- a/src/knot/zone/contents.c +++ b/src/knot/zone/contents.c @@ -494,6 +494,7 @@ int zone_contents_cow(zone_contents_t *from, zone_contents_t **to) from->adds_tree = NULL; contents->size = from->size; contents->max_ttl = from->max_ttl; + pthread_rwlock_init(&contents->xfrout_lock, NULL); *to = contents; return KNOT_EOK; From 02d94379d7191f0a1732fbbb9b02a1c6fd930ae2 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 22 Jun 2026 06:40:49 +0200 Subject: [PATCH 588/675] contents: fix de/init of dnssec_expire atomic --- src/knot/updates/apply.c | 2 ++ src/knot/zone/contents.c | 1 + 2 files changed, 3 insertions(+) diff --git a/src/knot/updates/apply.c b/src/knot/updates/apply.c index 615f201b4e..ed8c4da552 100644 --- a/src/knot/updates/apply.c +++ b/src/knot/updates/apply.c @@ -364,6 +364,7 @@ void apply_rollback(apply_ctx_t *ctx) dnssec_nsec3_params_free(&ctx->contents->nsec3_params); + ATOMIC_DEINIT(contents->dnssec_expire); pthread_rwlock_destroy(&ctx->contents->xfrout_lock); free(ctx->contents); @@ -390,6 +391,7 @@ void update_free_zone(zone_contents_t *contents) dnssec_nsec3_params_free(&contents->nsec3_params); + ATOMIC_DEINIT(contents->dnssec_expire); pthread_rwlock_destroy(&contents->xfrout_lock); free(contents); } diff --git a/src/knot/zone/contents.c b/src/knot/zone/contents.c index f2096f3427..4a9ab85839 100644 --- a/src/knot/zone/contents.c +++ b/src/knot/zone/contents.c @@ -494,6 +494,7 @@ int zone_contents_cow(zone_contents_t *from, zone_contents_t **to) from->adds_tree = NULL; contents->size = from->size; contents->max_ttl = from->max_ttl; + ATOMIC_INIT(contents->dnssec_expire, 0); pthread_rwlock_init(&contents->xfrout_lock, NULL); *to = contents; From 0a0124593d9db4ea8c914aecc45c4bcf4f47d19b Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Mon, 22 Jun 2026 06:57:11 +0200 Subject: [PATCH 589/675] contents: refactoring to remove duplicate deinits --- src/knot/updates/apply.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/knot/updates/apply.c b/src/knot/updates/apply.c index ed8c4da552..8335aac7b2 100644 --- a/src/knot/updates/apply.c +++ b/src/knot/updates/apply.c @@ -359,14 +359,13 @@ void apply_rollback(apply_ctx_t *ctx) ctx->contents->nsec3_nodes = NULL; } - free(ctx->contents->nodes); - free(ctx->contents->nsec3_nodes); - - dnssec_nsec3_params_free(&ctx->contents->nsec3_params); + // ensure that only shallow trees are freed in zone_contents_free() + ctx->contents->nodes->trie = NULL; + if (ctx->contents->nsec3_nodes != NULL) { + ctx->contents->nsec3_nodes->trie = NULL; + } - ATOMIC_DEINIT(contents->dnssec_expire); - pthread_rwlock_destroy(&ctx->contents->xfrout_lock); - free(ctx->contents); + zone_contents_free(ctx->contents); if (ctx->cow_mutex != NULL) { knot_sem_post(ctx->cow_mutex); @@ -386,12 +385,11 @@ void update_free_zone(zone_contents_t *contents) contents->nsec3_nodes->cow = NULL; } - free(contents->nodes); - free(contents->nsec3_nodes); - - dnssec_nsec3_params_free(&contents->nsec3_params); + // ensure that only shallow trees are freed in zone_contents_free() + contents->nodes->trie = NULL; + if (contents->nsec3_nodes != NULL) { + contents->nsec3_nodes->trie = NULL; + } - ATOMIC_DEINIT(contents->dnssec_expire); - pthread_rwlock_destroy(&contents->xfrout_lock); - free(contents); + zone_contents_free(contents); } From bfb15c11049a614fbaefe164d1896f6b0d7b0a8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 3 Mar 2026 18:25:27 +0100 Subject: [PATCH 590/675] kaspdb: add cur_key_dname() function --- src/knot/dnssec/kasp/kasp_db.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 60330c2e17..527153915e 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -115,6 +115,12 @@ static MDB_val make_key_str(keyclass_t kclass, const knot_dname_t *dname, const } } +static knot_dname_t *cur_key_dname(knot_lmdb_txn_t *txn) +{ + assert(txn != NULL); + return (knot_dname_t *)txn->cur_key.mv_data + 1; +} + static MDB_val make_key_time(keyclass_t kclass, const knot_dname_t *dname, knot_time_t time) { char tmp[21]; @@ -479,7 +485,7 @@ int kasp_db_sweep(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) knot_lmdb_begin(db, &txn, true); knot_lmdb_forwhole(&txn) { if (is_zone_related(&txn.cur_key) && - !keep_zone((const knot_dname_t *)txn.cur_key.mv_data + 1, cb_data)) { + !keep_zone(cur_key_dname(&txn), cb_data)) { knot_lmdb_del_cur(&txn); } } @@ -508,7 +514,7 @@ int kasp_db_sweep_keys(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) knot_lmdb_forwhole(&txn) { if (!is_trash_related(&txn.cur_key) && (!is_key_related(&txn.cur_key) || - keep_zone((const knot_dname_t *)txn.cur_key.mv_data + 1, cb_data))) { + keep_zone(cur_key_dname(&txn), cb_data))) { continue; } char *key_id = NULL; From 7bbda2f65677d7541465e2c978ccad91caae415c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Sat, 6 Jun 2026 13:29:49 +0200 Subject: [PATCH 591/675] kaspdb: fix a possible NULL pointer dereference --- src/knot/dnssec/kasp/kasp_db.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 527153915e..2535ba10d6 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -404,7 +404,7 @@ int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, } else { ret = kdnssec_ctx_init(conf(), &ctx, zone_name, db, NULL); keystores = ctx.keystores; - delay = use_trash ? ctx.policy->trash_delay : 0; + delay = (use_trash && ret == KNOT_EOK) ? ctx.policy->trash_delay : delay; } if (ret != KNOT_EOK) { return ret; From 3781cbfd0a0889f434f659430c444fa3ffe03e56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 6 Mar 2026 21:57:12 +0100 Subject: [PATCH 592/675] kaspdb: fix memory leaks --- src/knot/dnssec/kasp/kasp_db.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 2535ba10d6..d50fdaebb8 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -3,13 +3,14 @@ * For more information, see */ -#include "knot/dnssec/kasp/kasp_db.h" - #include #include +#include "knot/dnssec/kasp/kasp_db.h" + #include "contrib/strtonum.h" #include "contrib/wire_ctx.h" +#include "knot/dnssec/kasp/kasp_zone.h" #include "knot/dnssec/key_records.h" #include "knot/dnssec/zone-keys.h" @@ -248,6 +249,7 @@ static key_params_t *txn2params(knot_lmdb_txn_t *txn) if (!params_deserialize(&txn->cur_val, p) || !unmake_key_str(&txn->cur_key, &p->id)) { txn->ret = KNOT_EMALF; + free_key_params(p); free(p); p = NULL; } @@ -270,6 +272,10 @@ int kasp_db_list_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, list_t knot_lmdb_abort(&txn); free(prefix.mv_data); if (txn.ret != KNOT_EOK) { + ptrnode_t *n; + WALK_LIST(n, *dst) { + free_key_params(n->d); + } ptrlist_deep_free(dst, NULL); return txn.ret; } From 99b374c4d6b8c04df20d0ffc6baaaf741046901e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 9 Mar 2026 15:35:56 +0100 Subject: [PATCH 593/675] kaspdb: list keys in the "trash bin" --- src/knot/dnssec/kasp/kasp_db.c | 73 ++++++++++++++++++++++++++++++-- src/knot/dnssec/kasp/kasp_db.h | 8 +++- src/knot/dnssec/kasp/kasp_zone.c | 5 ++- src/knot/dnssec/kasp/policy.h | 3 +- src/knot/zone/backup.c | 2 +- tests/knot/test_kasp_db.c | 12 +++--- 6 files changed, 88 insertions(+), 15 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index d50fdaebb8..57ad0c6081 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -240,6 +240,25 @@ static MDB_val trash_serialize(const key_params_t *params, params->keytag, params->algorithm, flags); } +// For trash keys, timers in key_params_t are used with the following meaning: +// params->timing.created -> deleted, i.e. time when the key has been moved to the trash bin +// params->timing.remove -> discard, i.e. time when the key will be discarded from the trash bin + +static bool trash_deserialize(const MDB_val *val, key_params_t *params) +{ + uint8_t flags; + + if (knot_lmdb_unmake_key(val->mv_data, val->mv_size, "LLHBB", + ¶ms->timing.remove, ¶ms->timing.created, + ¶ms->keytag, ¶ms->algorithm, &flags)) { + bool flags_ok = flags_deserialize(params, flags); + if (flags_ok && (params->is_ksk || !params->is_csk)) { + return true; + } + } + return false; +} + static key_params_t *txn2params(knot_lmdb_txn_t *txn) { key_params_t *p = calloc(1, sizeof(*p)); @@ -257,14 +276,62 @@ static key_params_t *txn2params(knot_lmdb_txn_t *txn) return p; } -int kasp_db_list_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, list_t *dst) +static key_params_t *txn2params_trash(knot_lmdb_txn_t *txn, const knot_dname_t *zone_name) +{ + uint8_t kclass = 0; + const char *kid; + const knot_dname_t *kdname; + + if (!knot_lmdb_unmake_key(txn->cur_key.mv_data, txn->cur_key.mv_size, + "BSN", &kclass, &kid, &kdname)) { + txn->ret = KNOT_EMALF; + return NULL; + } + assert(kclass == KASPDBKEY_TRASH); + + if (zone_name != NULL && !knot_dname_is_equal(zone_name, kdname)) { + // Not an error, just skip this key. + return NULL; + } + + key_params_t *p; + char *id = NULL; + knot_dname_t *dname = NULL; + if ((p = calloc(1, sizeof(*p))) == NULL || + (id = strdup(kid)) == NULL || + (dname = knot_dname_copy(kdname, NULL)) == NULL) { + txn->ret = KNOT_ENOMEM; + goto fail; + } + p->id = id; + p->dname = dname; + + if (!trash_deserialize(&txn->cur_val, p)) { + txn->ret = KNOT_EMALF; + goto fail; + } + + return p; + +fail: + free(p); + free(id); + knot_dname_free(dname, NULL); + return NULL; +} + +int kasp_db_list_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, list_t *dst, + bool trash) { init_list(dst); knot_lmdb_txn_t txn = { 0 }; - MDB_val prefix = make_key_str(KASPDBKEY_PARAMS, zone_name, NULL); + MDB_val prefix = trash ? knot_lmdb_make_key("B", KASPDBKEY_TRASH) : + make_key_str(KASPDBKEY_PARAMS, zone_name, NULL); knot_lmdb_begin(db, &txn, false); knot_lmdb_foreach(&txn, &prefix) { - key_params_t *p = txn2params(&txn); + key_params_t *p; + p = trash ? txn2params_trash(&txn, zone_name) : + txn2params(&txn); if (p != NULL) { ptrlist_add(dst, p, NULL); } diff --git a/src/knot/dnssec/kasp/kasp_db.h b/src/knot/dnssec/kasp/kasp_db.h index f4a1a6f0d9..327c64d42f 100644 --- a/src/knot/dnssec/kasp/kasp_db.h +++ b/src/knot/dnssec/kasp/kasp_db.h @@ -22,15 +22,19 @@ typedef enum { // the enum values MUST match those from keyclass_t !! } kaspdb_serial_t; /*! - * \brief For given zone, list all keys (their IDs) belonging to it. + * \brief For given zone, list all keys (their IDs) belonging to it, + * or optionally list trashed keys instead. * * \param db KASP db * \param zone_name name of the zone in question + * if NULL for trashed keys, list trashed keys belonging to any zone * \param dst output if KNOT_EOK: ptrlist of keys' params + * \param trash if false, list all valid keys, if true, list all trashed keys * * \return KNOT_E* (KNOT_ENOENT if no keys) */ -int kasp_db_list_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, list_t *dst); +int kasp_db_list_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, list_t *dst, + bool trash); /*! * \brief Obtain the algorithm of a key. diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index dd662983fa..8affd1e217 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -178,7 +178,7 @@ int kasp_zone_load(knot_kasp_zone_t *zone, list_t key_params; init_list(&key_params); - int ret = kasp_db_list_keys(kdb, zone_name, &key_params); + int ret = kasp_db_list_keys(kdb, zone_name, &key_params, false); if (ret == KNOT_ENOENT) { zone->keys = NULL; zone->num_keys = 0; @@ -310,8 +310,9 @@ void free_key_params(key_params_t *parm) { if (parm != NULL) { free(parm->id); + knot_dname_free(parm->dname, NULL); dnssec_binary_free(&parm->public_key); - memset(parm, 0 , sizeof(*parm)); + memset(parm, 0, sizeof(*parm)); } } diff --git a/src/knot/dnssec/kasp/policy.h b/src/knot/dnssec/kasp/policy.h index 5e68cc61ad..575aa65108 100644 --- a/src/knot/dnssec/kasp/policy.h +++ b/src/knot/dnssec/kasp/policy.h @@ -24,7 +24,7 @@ typedef struct { knot_time_t retire_active; /*!< Still active, but obsoleted. */ knot_time_t retire; /*!< End of RRSIG records generating. */ knot_time_t post_active; /*!< Still signing with old algorithm, not published. */ - knot_time_t revoke; /*!< RFC 5011 state of KSK with 'revoked' flag and signed by self. */ + knot_time_t revoke; /*!< RFC 5011 state of KSK with 'revoked' flag and signed by self. */ knot_time_t remove; /*!< Time of DNSKEY record removal. */ } knot_kasp_key_timing_t; @@ -33,6 +33,7 @@ typedef struct { */ typedef struct { char *id; + knot_dname_t *dname; /*!< Zone that was using the key. Relevant for trash keys only. */ bool is_ksk; bool is_csk; bool is_pub_only; diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index 129b61cbf8..6d8f19d19d 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -399,7 +399,7 @@ static int backup_keystore(conf_t *conf, zone_t *zone, zone_backup_ctx_t *ctx) list_t key_params; init_list(&key_params); - ret = kasp_db_list_keys(zone_kaspdb(zone), zone->name, &key_params); + ret = kasp_db_list_keys(zone_kaspdb(zone), zone->name, &key_params, false); ret = (ret == KNOT_ENOENT ? KNOT_EOK : ret); if (ret != KNOT_EOK) { LOG_FAIL("keystore list"); diff --git a/tests/knot/test_kasp_db.c b/tests/knot/test_kasp_db.c index fb1f846af5..54003f60c1 100644 --- a/tests/knot/test_kasp_db.c +++ b/tests/knot/test_kasp_db.c @@ -83,7 +83,7 @@ int main(int argc, char *argv[]) ret = kasp_db_add_key(db, zone1, ¶ms1); is_int(KNOT_EOK, ret, "kasp_db: add key 1 eok"); - ret = kasp_db_list_keys(db, zone1, &l); + ret = kasp_db_list_keys(db, zone1, &l, false); is_int(KNOT_EOK, ret, "kasp_db: list keys 1 eok"); is_int(1, list_size(&l), "kasp_db: list keys reports one key 1"); params = ((ptrnode_t *)HEAD(l))->d; @@ -91,7 +91,7 @@ int main(int argc, char *argv[]) free_params ptrlist_deep_free(&l, NULL); - ret = kasp_db_list_keys(db, zone2, &l); + ret = kasp_db_list_keys(db, zone2, &l, false); is_int(KNOT_ENOENT, ret, "kasp_db: list keys 1 enoent"); is_int(0, list_size(&l), "kasp_db: list keys reports no keys 1"); ptrlist_deep_free(&l, NULL); @@ -99,7 +99,7 @@ int main(int argc, char *argv[]) ret = kasp_db_share_key(db, zone1, zone2, params1.id); is_int(KNOT_EOK, ret, "kasp_db: share key eok"); - ret = kasp_db_list_keys(db, zone2, &l); + ret = kasp_db_list_keys(db, zone2, &l, false); is_int(KNOT_EOK, ret, "kasp_db: list keys 3 eok"); is_int(1, list_size(&l), "kasp_db: list keys reports one key 2"); params = ((ptrnode_t *)HEAD(l))->d; @@ -109,7 +109,7 @@ int main(int argc, char *argv[]) ret = kasp_db_add_key(db, zone2, ¶ms2); is_int(KNOT_EOK, ret, "kasp_db: add key 2 eok"); - ret = kasp_db_list_keys(db, zone2, &l); + ret = kasp_db_list_keys(db, zone2, &l, false); is_int(KNOT_EOK, ret, "kasp_db: list keys 4 eok"); is_int(2, list_size(&l), "kasp_db: list keys reports two keys 1"); params = ((ptrnode_t *)TAIL(l))->d; @@ -122,7 +122,7 @@ int main(int argc, char *argv[]) ret = kasp_db_delete_key(db, zone1, params1.id, 0, &ignore); is_int(KNOT_EOK, ret, "kasp_db: delete key 1 eok"); - ret = kasp_db_list_keys(db, zone1, &l); + ret = kasp_db_list_keys(db, zone1, &l, false); is_int(KNOT_ENOENT, ret, "kasp_db: list keys 2 enoent"); is_int(list_size(&l), 0, "kasp_db: list keys reports no keys 2"); ptrlist_deep_free(&l, NULL); @@ -147,7 +147,7 @@ int main(int argc, char *argv[]) ret = kasp_db_delete_all(db, zone2); is_int(KNOT_EOK, ret, "kasp_db: delete all"); - ret = kasp_db_list_keys(db, zone2, &l); + ret = kasp_db_list_keys(db, zone2, &l, false); is_int(KNOT_EOK, ret, "kasp_db: do not delete keys"); is_int(2, list_size(&l), "kasp_db: list keys reports two keys 2"); params = ((ptrnode_t *)TAIL(l))->d; From 97e2258808f020a0891b55a1dba687ec53854c33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 11 Mar 2026 00:00:10 +0100 Subject: [PATCH 594/675] keymgr: use variable names that are easier to understand Also, make the sorted data more universal with (void *) payload. --- src/utils/keymgr/functions.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index b5d1c63479..20fb4b79cc 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -1069,15 +1069,15 @@ static void print_key_json(const knot_kasp_key_t *key, key_info_t *info, } typedef struct { - knot_time_t val; - knot_kasp_key_t *key; + knot_time_t key; + void *data; } key_sort_item_t; static int key_sort(const void *a, const void *b) { - const key_sort_item_t *key_a = a; - const key_sort_item_t *key_b = b; - return knot_time_cmp(key_a->val, key_b->val); + const key_sort_item_t *item_a = a; + const key_sort_item_t *item_b = b; + return knot_time_cmp(item_a->key, item_b->key); } static key_info_t key_missing(kdnssec_ctx_t *ctx, const knot_kasp_key_t *key) @@ -1124,16 +1124,16 @@ int keymgr_list_keys(kdnssec_ctx_t *ctx, keymgr_list_params_t *params) key_sort_item_t items[ctx->zone->num_keys]; for (size_t i = 0; i < ctx->zone->num_keys; i++) { knot_kasp_key_t *key = &ctx->zone->keys[i]; - items[i].key = key; + items[i].data = key; if (knot_time_cmp(key->timing.pre_active, key->timing.publish) < 0) { - items[i].val = key->timing.pre_active; + items[i].key = key->timing.pre_active; } else { - items[i].val = key->timing.publish; + items[i].key = key->timing.publish; } } qsort(&items, ctx->zone->num_keys, sizeof(items[0]), key_sort); for (size_t i = 0; i < ctx->zone->num_keys; i++) { - knot_kasp_key_t *key = items[i].key; + knot_kasp_key_t *key = items[i].data; key_info_t info = key_missing(ctx, key); print_key_brief(key, &info, params); } From f5b5d232bb6e49aaa07adb7f7533e472fc06aca9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 25 Mar 2026 16:21:57 +0100 Subject: [PATCH 595/675] dnssec: allow params2dnskey() to be used with incomplete (i.e. trash) keys --- src/knot/dnssec/kasp/kasp_zone.c | 37 +++++++++++++++++++------------- src/knot/dnssec/kasp/kasp_zone.h | 3 +++ 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index 8affd1e217..9b871b8f49 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -59,15 +59,20 @@ static int dnskey_guess_flags(dnssec_key_t *key, uint16_t keytag) } static int params2dnskey(const knot_dname_t *dname, key_params_t *params, - dnssec_key_t **key_ptr) + dnssec_key_t **key_ptr) { assert(dname); assert(params); assert(key_ptr); - int ret = key_params_check(params); - if (ret != KNOT_EOK) { - return ret; + const bool trash = (params->dname != NULL); + int ret; + if (!trash) { + // Trash keys don't contain pubkey data. + ret = key_params_check(params); + if (ret != KNOT_EOK) { + return ret; + } } dnssec_key_t *key = NULL; @@ -84,16 +89,18 @@ static int params2dnskey(const knot_dname_t *dname, key_params_t *params, dnssec_key_set_algorithm(key, params->algorithm); - ret = dnssec_key_set_pubkey(key, ¶ms->public_key); - if (ret != KNOT_EOK) { - dnssec_key_free(key); - return ret; - } + if (!trash) { + ret = dnssec_key_set_pubkey(key, ¶ms->public_key); + if (ret != KNOT_EOK) { + dnssec_key_free(key); + return ret; + } - ret = dnskey_guess_flags(key, params->keytag); - if (ret != KNOT_EOK) { - dnssec_key_free(key); - return ret; + ret = dnskey_guess_flags(key, params->keytag); + if (ret != KNOT_EOK) { + dnssec_key_free(key); + return ret; + } } *key_ptr = key; @@ -101,8 +108,8 @@ static int params2dnskey(const knot_dname_t *dname, key_params_t *params, return KNOT_EOK; } -static int params2kaspkey(const knot_dname_t *dname, key_params_t *params, - knot_kasp_key_t *key) +int params2kaspkey(const knot_dname_t *dname, key_params_t *params, + knot_kasp_key_t *key) { assert(dname != NULL); assert(params != NULL); diff --git a/src/knot/dnssec/kasp/kasp_zone.h b/src/knot/dnssec/kasp/kasp_zone.h index 1c65d2e042..4ddb6dc7ab 100644 --- a/src/knot/dnssec/kasp/kasp_zone.h +++ b/src/knot/dnssec/kasp/kasp_zone.h @@ -19,6 +19,9 @@ typedef struct { knot_time_t nsec3_salt_created; } knot_kasp_zone_t; +int params2kaspkey(const knot_dname_t *dname, key_params_t *params, + knot_kasp_key_t *key); + int kasp_zone_load(knot_kasp_zone_t *zone, const knot_dname_t *zone_name, knot_lmdb_db_t *kdb, From 991152ca72ffb3c835359dbd41a6d22bdd802149 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 25 Mar 2026 16:26:27 +0100 Subject: [PATCH 596/675] keymgr: in extended and JSON listing, print the default keystore too --- src/utils/keymgr/functions.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 20fb4b79cc..bb38263644 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -987,6 +987,7 @@ static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, printf(" %s%sfor-later%s", COL_BOLD(c), COL_MGNT(c), COL_RST(c)); } + assert(info->missing || info->ks_name); if (info->missing) { printf(" %s%smissing%s", COL_BOLD(c), COL_YELW(c), COL_RST(c)); } else if (info->ks_count > 1 && info->ks_name != NULL) { @@ -1024,7 +1025,13 @@ static void print_key_full(const knot_kasp_key_t *key, key_info_t *info, dnssec_key_get_keytag(key->key), (int)dnssec_key_get_algorithm(key->key), dnssec_key_get_size(key->key), (key->is_pub_only ? "yes" : "no "), (key->is_for_later ? "yes" : "no "), (info->missing ? "yes" : "no ")); - if (info->ks_name != NULL) { + + assert(info->missing || info->ks_name); + if (info->missing) { + printf(" keystore=-"); + } else if (info->ks_name == NULL) { + printf(" keystore=PEM"); + } else { printf(" keystore=%s/%s", KS_TYPE(info), info->ks_name); } @@ -1050,10 +1057,16 @@ static void print_key_json(const knot_kasp_key_t *key, key_info_t *info, jsonw_bool(w, "public-only", key->is_pub_only); jsonw_bool(w, "for-later", key->is_for_later); jsonw_bool(w, "missing", info->missing); - if (info->ks_name != NULL) { - jsonw_str(w, "keystore", info->ks_name); - jsonw_str(w, "backend", KS_TYPE(info)); + + char *ks_type = "-"; + char *ks_name = ks_type; + assert(info->missing || info->ks_name); + if (!info->missing) { + ks_type = KS_TYPE(info); + ks_name = (info->ks_name == NULL) ? ks_name : (char *)info->ks_name; } + jsonw_str(w, "backend", ks_type); + jsonw_str(w, "keystore", ks_name); static char buf[100]; for (const timer_ctx_t *t = &timers[0]; t->name != NULL; t++) { From cb28510b76f5e52e84814d390599354dbaded0d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 25 Mar 2026 16:35:57 +0100 Subject: [PATCH 597/675] keymgr: refactor -- unify key printing functions parameters --- src/utils/keymgr/functions.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index bb38263644..3d10718a48 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -1018,7 +1018,7 @@ static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, } static void print_key_full(const knot_kasp_key_t *key, key_info_t *info, - knot_time_print_t format) + keymgr_list_params_t *params) { printf("%s ksk=%s zsk=%s tag=%05d algorithm=%-2d size=%-4u public-only=%s for-later=%s missing=%s", key->id, (key->is_ksk ? "yes" : "no "), (key->is_zsk ? "yes" : "no "), @@ -1038,7 +1038,7 @@ static void print_key_full(const knot_kasp_key_t *key, key_info_t *info, static char buf[100]; for (const timer_ctx_t *t = &timers[0]; t->name != NULL; t++) { knot_time_t *val = (void *)(&key->timing) + t->offset; - (void)knot_time_print(format, *val, buf, sizeof(buf)); + (void)knot_time_print(params->format, *val, buf, sizeof(buf)); printf(" %s=%s", t->name, buf); } printf("\n"); @@ -1112,7 +1112,7 @@ int keymgr_list_keys(kdnssec_ctx_t *ctx, keymgr_list_params_t *params) for (size_t i = 0; i < ctx->zone->num_keys; i++) { knot_kasp_key_t *key = &ctx->zone->keys[i]; key_info_t info = key_missing(ctx, key); - print_key_full(key, &info, params->format); + print_key_full(key, &info, params); } } else if (params->json) { jsonw_t *w = jsonw_new(stdout, " "); From 6dca6342d54ef1ca3e86eac99ebed06963ead70b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 17 Jun 2026 14:44:37 +0200 Subject: [PATCH 598/675] keymgr: refactor -- read time-format parameter in a function --- src/utils/keymgr/main.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c index c9069a6fc0..1d4022713b 100644 --- a/src/utils/keymgr/main.c +++ b/src/utils/keymgr/main.c @@ -118,6 +118,18 @@ static void print_help(void) CONF_DEFAULT_DBDIR); } +static knot_time_print_t get_time_format(int argc, char *argv[]) +{ + knot_time_print_t rv = TIME_PRINT_UNIX; + if (argc > 2 && same_command(argv[2], "human", false)) { + rv = TIME_PRINT_HUMAN_MIXED; + } else if (argc > 2 && same_command(argv[2], "iso", false)) { + rv = TIME_PRINT_ISO8601; + } + + return rv; +} + static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kaspdb, keymgr_list_params_t *list_params) { @@ -203,12 +215,7 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp } } } else if (same_command(argv[1], "list", false)) { - list_params->format = TIME_PRINT_UNIX; - if (argc > 2 && same_command(argv[2], "human", false)) { - list_params->format = TIME_PRINT_HUMAN_MIXED; - } else if (argc > 2 && same_command(argv[2], "iso", false)) { - list_params->format = TIME_PRINT_ISO8601; - } + list_params->format = get_time_format(argc, argv); ret = keymgr_list_keys(&kctx, list_params); print_ok_on_succes = false; } else if (same_command(argv[1], "ds", false) || same_command(argv[1], "dnskey", false)) { From 9ad7ca2b1d73edd9dd72f7d6a912fa8fd78f2b2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 25 Mar 2026 16:38:55 +0100 Subject: [PATCH 599/675] keymgr: add the 'trash-list' command --- doc/man_keymgr.rst | 4 + src/utils/keymgr/functions.c | 152 +++++++++++++++++++++++++++++++++-- src/utils/keymgr/functions.h | 2 + src/utils/keymgr/main.c | 48 +++++++++-- 4 files changed, 193 insertions(+), 13 deletions(-) diff --git a/doc/man_keymgr.rst b/doc/man_keymgr.rst index a46fcbda6e..d37d938d8c 100644 --- a/doc/man_keymgr.rst +++ b/doc/man_keymgr.rst @@ -140,6 +140,10 @@ Commands Import a key (specified by full key ID) from another zone as shared. After this, the key is owned by both zones equally. +**trash-list** [*timestamp_format*] + Prints the list of key IDs and parameters of deleted keys kept in the "trash bin" belonging to the zone. + For a list of all deleted keys without respect to zones, use **--** or **-** as *zone_name*. + Keystore commands ................. diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 3d10718a48..1e06c469a5 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -23,6 +23,7 @@ #include "contrib/wire_ctx.h" #include "libknot/dnssec/keyid.h" #include "libknot/dnssec/shared/shared.h" +#include "knot/dnssec/kasp/kasp_zone.h" #include "knot/dnssec/kasp/policy.h" #include "knot/dnssec/key-events.h" #include "knot/dnssec/rrset-sign.h" @@ -945,11 +946,20 @@ static const timer_ctx_t timers[] = { { NULL } }; +static const timer_ctx_t trash_timers[] = { + { "deleted", offsetof(knot_kasp_key_timing_t, created) }, + { "discard", offsetof(knot_kasp_key_timing_t, remove) }, + { NULL } +}; + typedef struct { const char *ks_name; size_t ks_count; unsigned backend; bool missing; + bool trash; + bool all_zones; + jsonw_t *jsonw; } key_info_t; #define KS_TYPE(info) (info->backend == KEYSTORE_BACKEND_PEM) ? "PEM" : "PKCS11" @@ -994,9 +1004,11 @@ static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, printf(" %s%s/%s%s", COL_YELW(c), KS_TYPE(info), info->ks_name, COL_RST(c)); } - static char buf[100]; + const bool trash = info->trash; + static knot_dname_txt_storage_t buf; knot_time_t now = knot_time(); - for (const timer_ctx_t *t = &timers[0]; t->name != NULL; t++) { + for (const timer_ctx_t *t = trash ? &trash_timers[0] : &timers[0]; + t->name != NULL; t++) { knot_time_t *val = (void *)(&key->timing) + t->offset; if (*val == 0) { continue; @@ -1011,20 +1023,35 @@ static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, break; } } + // Don't colorify the "deleted" value of a trashed key. + if (t == &trash_timers[0]) { + UNDR = ""; + BOLD = ""; + } (void)knot_time_print(params->format, *val, buf, sizeof(buf)); printf(" %s%s%s=%s%s%s", UNDR, t->name, COL_RST(c), BOLD, buf, COL_RST(c)); } + if (trash && info->all_zones) { + if (knot_dname_to_str(buf, dnssec_key_get_dname(key->key), + sizeof(buf)) != NULL) { + printf(" zone=%s", buf); + } + } printf("\n"); } static void print_key_full(const knot_kasp_key_t *key, key_info_t *info, keymgr_list_params_t *params) { - printf("%s ksk=%s zsk=%s tag=%05d algorithm=%-2d size=%-4u public-only=%s for-later=%s missing=%s", + const bool trash = info->trash; + + printf("%s ksk=%s zsk=%s tag=%05d algorithm=%-2d size=%-4u" + " public-only=%s for-later=%s missing=%s trash=%s", key->id, (key->is_ksk ? "yes" : "no "), (key->is_zsk ? "yes" : "no "), dnssec_key_get_keytag(key->key), (int)dnssec_key_get_algorithm(key->key), dnssec_key_get_size(key->key), (key->is_pub_only ? "yes" : "no "), - (key->is_for_later ? "yes" : "no "), (info->missing ? "yes" : "no ")); + (key->is_for_later ? "yes" : "no "), (info->missing ? "yes" : "no "), + (trash ? "yes" : "no ")); assert(info->missing || info->ks_name); if (info->missing) { @@ -1035,18 +1062,27 @@ static void print_key_full(const knot_kasp_key_t *key, key_info_t *info, printf(" keystore=%s/%s", KS_TYPE(info), info->ks_name); } - static char buf[100]; - for (const timer_ctx_t *t = &timers[0]; t->name != NULL; t++) { + static knot_dname_txt_storage_t buf; + for (const timer_ctx_t *t = trash ? &trash_timers[0] : &timers[0]; + t->name != NULL; t++) { knot_time_t *val = (void *)(&key->timing) + t->offset; (void)knot_time_print(params->format, *val, buf, sizeof(buf)); printf(" %s=%s", t->name, buf); } + if (trash) { + if (knot_dname_to_str(buf, dnssec_key_get_dname(key->key), + sizeof(buf)) != NULL) { + printf(" zone=%s", buf); + } + } printf("\n"); } static void print_key_json(const knot_kasp_key_t *key, key_info_t *info, knot_time_print_t format, jsonw_t *w, const char *zone_name) { + const bool trash = info->trash; + jsonw_str(w, "zone", zone_name); jsonw_str(w, "id", key->id); jsonw_bool(w, "ksk", key->is_ksk); @@ -1057,6 +1093,7 @@ static void print_key_json(const knot_kasp_key_t *key, key_info_t *info, jsonw_bool(w, "public-only", key->is_pub_only); jsonw_bool(w, "for-later", key->is_for_later); jsonw_bool(w, "missing", info->missing); + jsonw_bool(w, "trash", trash); char *ks_type = "-"; char *ks_name = ks_type; @@ -1069,7 +1106,8 @@ static void print_key_json(const knot_kasp_key_t *key, key_info_t *info, jsonw_str(w, "keystore", ks_name); static char buf[100]; - for (const timer_ctx_t *t = &timers[0]; t->name != NULL; t++) { + for (const timer_ctx_t *t = trash ? &trash_timers[0] : &timers[0]; + t->name != NULL; t++) { knot_time_t *val = (void *)(&key->timing) + t->offset; (void)knot_time_print(format, *val, buf, sizeof(buf)); @@ -1081,6 +1119,19 @@ static void print_key_json(const knot_kasp_key_t *key, key_info_t *info, } } +static void print_key_json_trash(const knot_kasp_key_t *key, key_info_t *info, + keymgr_list_params_t *params) +{ + assert(info->jsonw); + // Every key here may belong to a different zone. + knot_dname_txt_storage_t name; + (void)knot_dname_to_str(name, dnssec_key_get_dname(key->key), sizeof(name)); + + jsonw_object(info->jsonw, NULL); + print_key_json(key, info, params->format, info->jsonw, name); + jsonw_end(info->jsonw); +} + typedef struct { knot_time_t key; void *data; @@ -1151,9 +1202,96 @@ int keymgr_list_keys(kdnssec_ctx_t *ctx, keymgr_list_params_t *params) print_key_brief(key, &info, params); } } + + return KNOT_EOK; +} + +static int print_params_key(kdnssec_ctx_t *ctx, key_params_t *kparams, + keymgr_list_params_t *params, jsonw_t *jsonw, + void (*print_cb)(const knot_kasp_key_t *, key_info_t *, + keymgr_list_params_t *)) +{ + knot_kasp_key_t key; + int ret = params2kaspkey(kparams->dname, kparams, &key); + if (ret != KNOT_EOK && ret != KNOT_NO_PUBLIC_KEY) { + ERR2("failed to parse key metadata (%s)", knot_strerror(ret)); + return ret; + } + key_info_t info = key_missing(ctx, &key); + info.trash = true; + info.all_zones = ctx->validation_mode; // Abused ctx member validation_mode. + info.jsonw = jsonw; + print_cb(&key, &info, params); + + free(key.id); + dnssec_key_free(key.key); return KNOT_EOK; } +int keymgr_list_trash(kdnssec_ctx_t *ctx, const knot_dname_t *zone_name, + keymgr_list_params_t *params) +{ + list_t tlist; + init_list(&tlist); + int ret = kasp_db_list_keys(ctx->kasp_db, zone_name, &tlist, true); + ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; + if (ret != KNOT_EOK) { + ERR2("failed to list keys from KASP (%s)", knot_strerror(ret)); + return ret; + } + + ptrnode_t *node; + if (params->extended) { + WALK_LIST(node, tlist) { + ret = print_params_key(ctx, node->d, params, NULL, print_key_full); + if (ret != KNOT_EOK) { + break; + } + } + } else if (params->json) { + jsonw_t *w = jsonw_new(stdout, " "); + if (w == NULL) { + ret = KNOT_ENOMEM; + goto done; + } + + WALK_LIST(node, tlist) { + ret = print_params_key(ctx, node->d, params, w, print_key_json_trash); + if (ret != KNOT_EOK) { + break; + } + } + + jsonw_end(w); + jsonw_free(&w); + } else { + size_t tlist_size = list_size(&tlist); + key_sort_item_t items[tlist_size]; + + size_t i = 0; + WALK_LIST(node, tlist) { + items[i].data = node->d; + items[i].key = ((key_params_t *)node->d)->timing.created; + i++; + } + assert(i == tlist_size); + qsort(&items, tlist_size, sizeof(items[0]), key_sort); + for (i = 0; i < tlist_size; i++) { + ret = print_params_key(ctx, items[i].data, params, NULL, print_key_brief); + if (ret != KNOT_EOK) { + break; + } + } + } + +done: + WALK_LIST(node, tlist) { + free_key_params(node->d); + } + ptrlist_deep_free(&tlist, NULL); + return ret; +} + static int print_ds(const knot_dname_t *dname, const dnssec_binary_t *rdata) { wire_ctx_t ctx = wire_ctx_init(rdata->data, rdata->size); diff --git a/src/utils/keymgr/functions.h b/src/utils/keymgr/functions.h index 21a046f72a..0444530130 100644 --- a/src/utils/keymgr/functions.h +++ b/src/utils/keymgr/functions.h @@ -46,6 +46,8 @@ int keymgr_set_timing(knot_kasp_key_t *key, int argc, char *argv[]); int keymgr_list_keys(kdnssec_ctx_t *ctx, keymgr_list_params_t *params); +int keymgr_list_trash(kdnssec_ctx_t *ctx, const knot_dname_t *zone_name, keymgr_list_params_t *params); + int keymgr_generate_ds(const knot_dname_t *dname, const knot_kasp_key_t *key); int keymgr_generate_dnskey(const knot_dname_t *dname, const knot_kasp_key_t *key); diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c index 1d4022713b..ba10596f24 100644 --- a/src/utils/keymgr/main.c +++ b/src/utils/keymgr/main.c @@ -10,6 +10,7 @@ #include "contrib/strtonum.h" #include "knot/dnssec/zone-keys.h" +#include "knot/journal/knot_lmdb.h" #include "libknot/dnssec/crypto.h" #include "libknot/libknot.h" #include "utils/common/msg.h" @@ -76,6 +77,8 @@ static void print_help(void) " (syntax: delete )\n" " set Set existing key's timing attribute.\n" " (syntax: set =...)\n" + " trash-list List deleted DNSSEC keys kept in the \"trash bin\".\n" + " For all deleted keys without respect to zones, use '--' as .\n" "\n" "Keystore commands:\n" " keystore-test Conduct some tests on the specified keystore.\n" @@ -149,11 +152,35 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp knot_dname_to_lower(zone_name); kdnssec_ctx_t kctx = { 0 }; + int ret; - int ret = kdnssec_ctx_init(conf(), &kctx, zone_name, kaspdb, NULL); - if (ret != KNOT_EOK) { - ERR2("failed to initialize KASP (%s)", knot_strerror(ret)); - goto main_end; + if (same_command(argv[1], "trash-list", false)) { + // We can't init full kctx. + kctx.kasp_db = kaspdb; + ret = knot_lmdb_open(kaspdb); + if (ret != KNOT_EOK) { + goto main_end; + } + + ret = init_all_keystores(conf(), &kctx.keystores); + if (ret != KNOT_EOK) { + ERR2("failed to initialize keystores (%s)", knot_strerror(ret)); + knot_lmdb_close(kaspdb); + goto main_end; + } + + if (!strncmp(id_str, "-", 2) || + !strncmp(id_str, "--", 3)) { + kctx.validation_mode = true; // Abused member validation_mode as "all zones". + knot_dname_free(zone_name, NULL); + zone_name = NULL; + } + } else { + ret = kdnssec_ctx_init(conf(), &kctx, zone_name, kaspdb, NULL); + if (ret != KNOT_EOK) { + ERR2("failed to initialize KASP (%s)", knot_strerror(ret)); + goto main_end; + } } #define CHECK_MISSING_ARG(msg) \ @@ -246,7 +273,7 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp if (ret == KNOT_EOK) { ret = kasp_db_share_key(kctx.kasp_db, other_zone, kctx.zone->dname, key_to_share); } - free(other_zone); + knot_dname_free(other_zone, NULL); free(key_to_share); } else if (same_command(argv[1], "delete", false)) { CHECK_MISSING_ARG("Key is not specified"); @@ -255,6 +282,10 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp if (ret == KNOT_EOK) { ret = kdnssec_delete_key(&kctx, key2del, true); } + } else if (same_command(argv[1], "trash-list", false)) { + list_params->format = get_time_format(argc, argv); + ret = keymgr_list_trash(&kctx, zone_name, list_params); + print_ok_on_succes = false; } else if (same_command(argv[1], "pregenerate", false)) { CHECK_MISSING_ARG("Timestamp to not specified"); ret = keymgr_pregenerate_zsks(&kctx, argc > 3 ? argv[2] : NULL, @@ -312,7 +343,7 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp main_end: kdnssec_ctx_deinit(&kctx); - free(zone_name); + knot_dname_free(zone_name, NULL); return ret; } @@ -406,6 +437,11 @@ int main(int argc, char *argv[]) } } + // "--" has also a special meaning for getopt, therefore reprocess it. + if (optind > 1 && !strncmp(argv[optind - 1], "--", 3)) { + optind--; + } + signal_ctx.color = list_params.color; if (util_conf_init_default(true) != KNOT_EOK) { From 57d7eac2bfda618e4155151b026e9a931ac6d9d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 10 Apr 2026 11:12:29 +0200 Subject: [PATCH 600/675] keymgr: in 'trash-list' command output, highlight all keys (trash keys) by underscoring --- src/utils/keymgr/functions.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 1e06c469a5..c072929db1 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -968,9 +968,15 @@ static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, keymgr_list_params_t *params) { const bool c = params->color; + const bool trash = info->trash; + + printf("%s%s%s", + trash ? COL_UNDR(c) : "", + key->id, + trash ? COL_RST(c) : ""); - printf("%s %s%5u%s ", - key->id, COL_BOLD(c), dnssec_key_get_keytag(key->key), COL_RST(c)); + printf(" %s%5u%s ", + COL_BOLD(c), dnssec_key_get_keytag(key->key), COL_RST(c)); printf("%s%s%s%s ", COL_BOLD(c), @@ -1004,7 +1010,6 @@ static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, printf(" %s%s/%s%s", COL_YELW(c), KS_TYPE(info), info->ks_name, COL_RST(c)); } - const bool trash = info->trash; static knot_dname_txt_storage_t buf; knot_time_t now = knot_time(); for (const timer_ctx_t *t = trash ? &trash_timers[0] : &timers[0]; From 273f44a73598004deacafbd64765c25b4c6441b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 27 Mar 2026 18:28:38 +0100 Subject: [PATCH 601/675] keymgr: add the 'trash-discard' command --- doc/man_keymgr.rst | 5 +++ src/knot/dnssec/kasp/kasp_db.c | 73 +++++++++++++++++++++++++++++++++- src/knot/dnssec/kasp/kasp_db.h | 15 +++++++ src/utils/keymgr/main.c | 12 +++++- 4 files changed, 102 insertions(+), 3 deletions(-) diff --git a/doc/man_keymgr.rst b/doc/man_keymgr.rst index d37d938d8c..8740bb22b6 100644 --- a/doc/man_keymgr.rst +++ b/doc/man_keymgr.rst @@ -144,6 +144,11 @@ Commands Prints the list of key IDs and parameters of deleted keys kept in the "trash bin" belonging to the zone. For a list of all deleted keys without respect to zones, use **--** or **-** as *zone_name*. +**trash-discard** *key_ID* + Remove the specified key from the "trash bin", discarding it. Removal of a single key doesn't depend + on *zone_name*. If **--** or **-** is specified as *key_ID*, remove all trash keys belonging to + *zone_name*. If **--** or **-** is specified both as *zone_name* and *key_ID*, empty the entire "trash bin". + Keystore commands ................. diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 57ad0c6081..b1e9656223 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -103,8 +103,9 @@ static MDB_val make_key_str(keyclass_t kclass, const knot_dname_t *dname, const return knot_lmdb_make_key("BNS", (int)kclass, dname, str); } case KASPDBKEY_TRASH: - assert(str != NULL); - if (dname == NULL) { + if (str == NULL) { + return knot_lmdb_make_key("B", (int)kclass); + } else if (dname == NULL) { return knot_lmdb_make_key("BS", (int)kclass, str); } else { return knot_lmdb_make_key("BSN", (int)kclass, str, dname); @@ -545,6 +546,74 @@ int kasp_db_delete_all(knot_lmdb_db_t *db, const knot_dname_t *zone) return txn.ret; } +int kasp_db_delete_trash(knot_lmdb_db_t *db, const knot_dname_t *zone_name, char *key_id) +{ + assert(db); + + knot_kasp_keystore_t *keystores = NULL; + int ret = init_all_keystores(conf(), &keystores); + if (ret != KNOT_EOK) { + return ret; + } + + knot_lmdb_txn_t txn = { 0 }; + knot_lmdb_begin(db, &txn, true); + if (key_id != NULL) { + // Remove just one trash key. + // In this case, zone_name is ignored. + MDB_val prefix = make_key_str(KASPDBKEY_TRASH, NULL, key_id); + if (knot_lmdb_find_prefix(&txn, &prefix)) { + ret = kdnssec_delete_from_keystores(keystores, key_id, NULL, true); + ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; + if (ret == KNOT_EOK) { + knot_lmdb_del_prefix(&txn, &prefix); + } + } else { + ret = KNOT_ENOENT; + } + free(prefix.mv_data); + } else { + // Remove all trash keys belonging to the zone, or all trash keys. + bool failed = false; + MDB_val prefix = make_key_str(KASPDBKEY_TRASH, NULL, NULL); + knot_lmdb_foreach(&txn, &prefix) { + uint8_t kclass; + char *id; + knot_dname_t *dname; + bool b = knot_lmdb_unmake_key(txn.cur_key.mv_data, txn.cur_key.mv_size, + "BSN", &kclass, &id, &dname); + assert(kclass == KASPDBKEY_TRASH); + if (b && *id != '\0' && *dname != '\0') { + if (zone_name != NULL && !knot_dname_is_equal(dname, zone_name)) { + // Another zone, skip this key. + continue; + } + + ret = kdnssec_delete_from_keystores(keystores, id, dname, true); + ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; + if (ret != KNOT_EOK) { + // Note: it isn't sure that there still is a key to delete. + failed = true; + continue; + } + } else { + // Corrupted or incompatible KASP DB? Stop all other deletes, but + // commit deletes of KASP records related to already removed keys. + ret = KNOT_EMALF; + break; + } + + knot_lmdb_del_cur(&txn); + } + free(prefix.mv_data); + ret = (failed) ? KNOT_ERROR : ret; + } + + knot_lmdb_commit(&txn); + deinit_all_keystores(&keystores); + return (ret == KNOT_EOK) ? txn.ret : ret; +} + int kasp_db_sweep(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) { if (knot_lmdb_exists(db) == KNOT_ENODB) { diff --git a/src/knot/dnssec/kasp/kasp_db.h b/src/knot/dnssec/kasp/kasp_db.h index 327c64d42f..94ff174889 100644 --- a/src/knot/dnssec/kasp/kasp_db.h +++ b/src/knot/dnssec/kasp/kasp_db.h @@ -88,6 +88,21 @@ int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, */ int kasp_db_delete_all(knot_lmdb_db_t *db, const knot_dname_t *zone_name); +/*! + * \brief Remove a trash key/keys from the "trash bin" (discard them permanently). + * + * \param db KASP db + * \param zone_name zone to remove from + * \param key_id ID of the key to be removed + * + * \note If key_id is set, remove only that key, + * \note if zone_name is set, remove all keys belonging to that zone, + * \note if neither key_id nor zone_name is set, remove all trash keys. + * + * \return KNOT_E* + */ +int kasp_db_delete_trash(knot_lmdb_db_t *db, const knot_dname_t *zone_name, char *key_id); + /*! * \brief Selectively delete zones from the database. * diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c index ba10596f24..3ca89bc5bd 100644 --- a/src/utils/keymgr/main.c +++ b/src/utils/keymgr/main.c @@ -9,6 +9,7 @@ #include #include "contrib/strtonum.h" +#include "knot/dnssec/kasp/kasp_db.h" #include "knot/dnssec/zone-keys.h" #include "knot/journal/knot_lmdb.h" #include "libknot/dnssec/crypto.h" @@ -79,6 +80,10 @@ static void print_help(void) " (syntax: set =...)\n" " trash-list List deleted DNSSEC keys kept in the \"trash bin\".\n" " For all deleted keys without respect to zones, use '--' as .\n" + " trash-discard Discard deleted DNSSEC keys from the \"trash bin\".\n" + " For all deleted keys belonging to a zone, use '--' as .\n" + " For all deleted keys of all zones, use '--' as and as .\n" + " (syntax: trash-discard )\n" "\n" "Keystore commands:\n" " keystore-test Conduct some tests on the specified keystore.\n" @@ -154,7 +159,8 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp kdnssec_ctx_t kctx = { 0 }; int ret; - if (same_command(argv[1], "trash-list", false)) { + if (same_command(argv[1], "trash-list", false) || + same_command(argv[1], "trash-discard", false)) { // We can't init full kctx. kctx.kasp_db = kaspdb; ret = knot_lmdb_open(kaspdb); @@ -286,6 +292,10 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp list_params->format = get_time_format(argc, argv); ret = keymgr_list_trash(&kctx, zone_name, list_params); print_ok_on_succes = false; + } else if (same_command(argv[1], "trash-discard", false)) { + CHECK_MISSING_ARG("Key ID not specified"); + bool all = !strncmp(argv[2], "-", 2) || !strncmp(argv[2], "--", 3); + ret = kasp_db_delete_trash(kaspdb, zone_name, all ? NULL : argv[2]); } else if (same_command(argv[1], "pregenerate", false)) { CHECK_MISSING_ARG("Timestamp to not specified"); ret = keymgr_pregenerate_zsks(&kctx, argc > 3 ? argv[2] : NULL, From 682ab4c44007c943bef470adc185dbded91c2a16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 1 Apr 2026 10:57:27 +0200 Subject: [PATCH 602/675] zone-keys: in kdnssec_delete_from_keystores(), allow turning off error logging --- src/knot/dnssec/kasp/kasp_db.c | 10 ++++++---- src/knot/dnssec/zone-keys.c | 28 +++++++++++++++++----------- src/knot/dnssec/zone-keys.h | 3 ++- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index b1e9656223..376da8a871 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -503,7 +503,7 @@ int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, ret = make_trash_key(&txn, &txn.cur_key, &txn.cur_val, delay); } else { ret = kdnssec_delete_from_keystores(keystores, key_id, - zone_name, true); + zone_name, true, false); ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; // Note: if error, it isn't sure that there still is a key to delete. } @@ -563,7 +563,7 @@ int kasp_db_delete_trash(knot_lmdb_db_t *db, const knot_dname_t *zone_name, char // In this case, zone_name is ignored. MDB_val prefix = make_key_str(KASPDBKEY_TRASH, NULL, key_id); if (knot_lmdb_find_prefix(&txn, &prefix)) { - ret = kdnssec_delete_from_keystores(keystores, key_id, NULL, true); + ret = kdnssec_delete_from_keystores(keystores, key_id, NULL, true, false); ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; if (ret == KNOT_EOK) { knot_lmdb_del_prefix(&txn, &prefix); @@ -589,7 +589,8 @@ int kasp_db_delete_trash(knot_lmdb_db_t *db, const knot_dname_t *zone_name, char continue; } - ret = kdnssec_delete_from_keystores(keystores, id, dname, true); + ret = kdnssec_delete_from_keystores(keystores, id, dname, true, + false); ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; if (ret != KNOT_EOK) { // Note: it isn't sure that there still is a key to delete. @@ -667,7 +668,8 @@ int kasp_db_sweep_keys(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) assert(count > 0 || is_trash_related(&txn.cur_key)); if (count < 2) { - ret = kdnssec_delete_from_keystores(keystores, key_id, NULL, true); + ret = kdnssec_delete_from_keystores(keystores, key_id, NULL, + true, false); ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; if (ret != KNOT_EOK) { // Note: it isn't sure that there still is a key to delete. diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index b2193d4039..99289513ae 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -240,8 +240,21 @@ int kdnssec_share_key(kdnssec_ctx_t *ctx, const knot_dname_t *from_zone, const c return ret; } +void static delete_from_ksts_error_log(const knot_dname_t *zone, const char *kst_name, + char *key_id, int err, bool no_log) +{ + int level = no_log ? LOG_DEBUG : LOG_WARNING; + const char *msg = "keystore %s, attempt to remove key %s failed (%s)"; + const char *errstr = knot_strerror(err); + if (zone == NULL) { + log_fmt(level, LOG_SOURCE_SERVER, msg, kst_name, key_id, errstr); + } else { + log_fmt_zone(level, LOG_SOURCE_ZONE, zone, NULL, msg, kst_name, key_id, errstr); + } +} + int kdnssec_delete_from_keystores(knot_kasp_keystore_t *keystores, char *key_id, - const knot_dname_t *dname, bool thorough) + const knot_dname_t *dname, bool thorough, bool no_log) { int ret = KNOT_ENOENT; bool found = false; @@ -251,14 +264,7 @@ int kdnssec_delete_from_keystores(knot_kasp_keystore_t *keystores, char *key_id, if (ret == KNOT_EOK) { found = true; } else if (ret != KNOT_ENOENT) { - const char *msg = "keystore %s, attempt to remove key %s failed (%s)"; - const char *err = knot_strerror(ret); - if (dname == NULL) { - log_warning(msg, keystores[i].name, key_id, err); - } else { - log_zone_warning(dname, msg, keystores[i].name, key_id, err); - } - + delete_from_ksts_error_log(dname, keystores[i].name, key_id, ret, no_log); return ret; } } @@ -289,8 +295,8 @@ int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr, bool trash) } if (!key_still_used_in_keystore && !key_ptr->is_pub_only) { - ret = kdnssec_delete_from_keystores(ctx->keystores, key_ptr->id, - ctx->zone->dname, false); + ret = kdnssec_delete_from_keystores(ctx->keystores, key_ptr->id, ctx->zone->dname, + false, false); if (ret != KNOT_EOK) { return ret; } diff --git a/src/knot/dnssec/zone-keys.h b/src/knot/dnssec/zone-keys.h index 729a2eb09c..07c8293f96 100644 --- a/src/knot/dnssec/zone-keys.h +++ b/src/knot/dnssec/zone-keys.h @@ -112,11 +112,12 @@ int kdnssec_share_key(kdnssec_ctx_t *ctx, const knot_dname_t *from_zone, const c * \param key_id ID of the key to be removed * \param dname zone name for error logging or NULL * \param thorough if true, try to remove all occurences of the key in all listed keystores + * \param no_log if true, log_errors as debug rather than error or warning * * \return KNOT_E* */ int kdnssec_delete_from_keystores(knot_kasp_keystore_t *keystores, char *key_id, - const knot_dname_t *dname, bool thorough); + const knot_dname_t *dname, bool thorough, bool no_log); /*! * \brief Remove key from zone. From 520edc8f1bbb946fc052fd7994710e4cbca1812f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 31 Mar 2026 11:25:57 +0200 Subject: [PATCH 603/675] kaspdb: trash/garbage collector function for regular waste management of the "trash bin" --- src/knot/dnssec/kasp/kasp_db.c | 36 +++++++++++++++++++++++++++++++--- src/knot/dnssec/kasp/kasp_db.h | 16 +++++++++++++-- src/utils/keymgr/main.c | 3 ++- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 376da8a871..2867071426 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -260,6 +260,18 @@ static bool trash_deserialize(const MDB_val *val, key_params_t *params) return false; } +static bool trash_expired(const MDB_val *val, void *data) +{ + knot_time_t now = *(knot_time_t *)data; + + if (val->mv_size < sizeof(knot_time_t)) { + return false; + } + + knot_time_t timestamp = (knot_time_t)knot_wire_read_u64(val->mv_data); + return (timestamp < now && timestamp != 0); +} + static key_params_t *txn2params(knot_lmdb_txn_t *txn) { key_params_t *p = calloc(1, sizeof(*p)); @@ -546,7 +558,8 @@ int kasp_db_delete_all(knot_lmdb_db_t *db, const knot_dname_t *zone) return txn.ret; } -int kasp_db_delete_trash(knot_lmdb_db_t *db, const knot_dname_t *zone_name, char *key_id) +int kasp_db_delete_trash(knot_lmdb_db_t *db, const knot_dname_t *zone_name, char *key_id, + bool (for_delete)(const MDB_val *, void *), void *cb_data) { assert(db); @@ -575,8 +588,14 @@ int kasp_db_delete_trash(knot_lmdb_db_t *db, const knot_dname_t *zone_name, char } else { // Remove all trash keys belonging to the zone, or all trash keys. bool failed = false; + bool fatal = false; MDB_val prefix = make_key_str(KASPDBKEY_TRASH, NULL, NULL); knot_lmdb_foreach(&txn, &prefix) { + // For background garbage collector. + if (for_delete != NULL && !for_delete(&txn.cur_val, cb_data)) { + continue; + } + uint8_t kclass; char *id; knot_dname_t *dname; @@ -589,25 +608,29 @@ int kasp_db_delete_trash(knot_lmdb_db_t *db, const knot_dname_t *zone_name, char continue; } + // For background garbage collection, log errors as debug. ret = kdnssec_delete_from_keystores(keystores, id, dname, true, - false); + for_delete != NULL ? true : false); ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; if (ret != KNOT_EOK) { // Note: it isn't sure that there still is a key to delete. failed = true; + ret = KNOT_EOK; continue; } } else { // Corrupted or incompatible KASP DB? Stop all other deletes, but // commit deletes of KASP records related to already removed keys. ret = KNOT_EMALF; + fatal = true; break; } knot_lmdb_del_cur(&txn); } free(prefix.mv_data); - ret = (failed) ? KNOT_ERROR : ret; + // For background garbage collection, suppress trivial 'failed' errors. + ret = (for_delete != NULL) ? ret : ((failed && !fatal) ? KNOT_ERROR : ret); } knot_lmdb_commit(&txn); @@ -615,6 +638,13 @@ int kasp_db_delete_trash(knot_lmdb_db_t *db, const knot_dname_t *zone_name, char return (ret == KNOT_EOK) ? txn.ret : ret; } +int kasp_db_trash_gc(knot_lmdb_db_t *db) +{ + assert(db); + knot_time_t now = knot_time(); + return kasp_db_delete_trash(db, NULL, NULL, trash_expired, &now); +} + int kasp_db_sweep(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) { if (knot_lmdb_exists(db) == KNOT_ENODB) { diff --git a/src/knot/dnssec/kasp/kasp_db.h b/src/knot/dnssec/kasp/kasp_db.h index 94ff174889..9d98c7242e 100644 --- a/src/knot/dnssec/kasp/kasp_db.h +++ b/src/knot/dnssec/kasp/kasp_db.h @@ -93,7 +93,9 @@ int kasp_db_delete_all(knot_lmdb_db_t *db, const knot_dname_t *zone_name); * * \param db KASP db * \param zone_name zone to remove from - * \param key_id ID of the key to be removed + * \param key_id ID of the key to be removed, or NULL for any + * \param for_delete optional filtering callback, or NULL for no filtering + * \param cb_data data passed to callback function, or NULL * * \note If key_id is set, remove only that key, * \note if zone_name is set, remove all keys belonging to that zone, @@ -101,7 +103,17 @@ int kasp_db_delete_all(knot_lmdb_db_t *db, const knot_dname_t *zone_name); * * \return KNOT_E* */ -int kasp_db_delete_trash(knot_lmdb_db_t *db, const knot_dname_t *zone_name, char *key_id); +int kasp_db_delete_trash(knot_lmdb_db_t *db, const knot_dname_t *zone_name, char *key_id, + bool (for_delete)(const MDB_val *, void *), void *cb_data); + +/*! + * \brief Remove all expired trash keys from KASP DB (trash/garbage collector). + * + * \param db KASP database. + * + * \return KNOT_E* + */ +int kasp_db_trash_gc(knot_lmdb_db_t *db); /*! * \brief Selectively delete zones from the database. diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c index 3ca89bc5bd..d98df1e283 100644 --- a/src/utils/keymgr/main.c +++ b/src/utils/keymgr/main.c @@ -295,7 +295,8 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp } else if (same_command(argv[1], "trash-discard", false)) { CHECK_MISSING_ARG("Key ID not specified"); bool all = !strncmp(argv[2], "-", 2) || !strncmp(argv[2], "--", 3); - ret = kasp_db_delete_trash(kaspdb, zone_name, all ? NULL : argv[2]); + ret = kasp_db_delete_trash(kaspdb, zone_name, all ? NULL : argv[2], + NULL, NULL); } else if (same_command(argv[1], "pregenerate", false)) { CHECK_MISSING_ARG("Timestamp to not specified"); ret = keymgr_pregenerate_zsks(&kctx, argc > 3 ? argv[2] : NULL, From 0fcba537485bdd19f6445293dcb6c4af963ba79d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 1 Apr 2026 13:05:30 +0200 Subject: [PATCH 604/675] kaspdb: remove an unused definition --- src/knot/dnssec/kasp/kasp_db.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.h b/src/knot/dnssec/kasp/kasp_db.h index 9d98c7242e..ea6ab6bbb7 100644 --- a/src/knot/dnssec/kasp/kasp_db.h +++ b/src/knot/dnssec/kasp/kasp_db.h @@ -14,8 +14,6 @@ #include "knot/dnssec/kasp/policy.h" #include "knot/journal/knot_lmdb.h" -typedef struct kasp_db kasp_db_t; - typedef enum { // the enum values MUST match those from keyclass_t !! KASPDB_SERIAL_MASTER = 0x5, KASPDB_SERIAL_LASTSIGNED = 0x6, From 9cafbdafa76f65a5402fd9d3aaa39e6f0f1b64f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 1 Apr 2026 16:09:48 +0200 Subject: [PATCH 605/675] key-events: run key trash garbage collector in DNSSEC event handler when it's time --- configure.ac | 9 +++++++ doc/reference.rst | 7 ++++-- src/knot/dnssec/key-events.c | 39 +++++++++++++++++++++++++++++++ src/knot/dnssec/key-events.h | 8 +++++++ src/knot/events/handlers/dnssec.c | 3 +++ src/knot/server/server.c | 2 ++ src/knot/server/server.h | 13 +++++++++++ 7 files changed, 79 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 1106685961..2e62b9c810 100644 --- a/configure.ac +++ b/configure.ac @@ -451,6 +451,15 @@ AC_ARG_WITH([memory-allocator], [], [with_memory_allocator=auto] ) +# DNSSEC key trash bin garbage collector +trash_gc_interval=3600 +AC_ARG_WITH([gc_interval], + AS_HELP_STRING([--with-gc-interval=NUM], + [Interval between two background trash garbage collector runs in seconds [default=3600]]), + [trash_gc_interval=$withval] +) +AC_DEFINE_UNQUOTED([TRASH_GC_INTERVAL], [$trash_gc_interval], [Key trash bin cleaning interval.]) + AS_IF([test "$enable_daemon" = "yes"], [ # Systemd integration (2/2) diff --git a/doc/reference.rst b/doc/reference.rst index 471d4e2ec2..3ed9749505 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2357,8 +2357,11 @@ is needed. trash-delay ----------- -Set this parameter to ``0`` to avoid storing deleted DNSSEC key in a "trash bin". -The "trash bin" can be emptied with ``knotc -f zone-purge +keys +orphan --``. +Discard deleted keys belonging to the policy from the "trash bin" automatically +after this time following their deletion. Set this parameter to ``0`` to completely +avoid using the "trash bin" for deleted DNSSEC keys and remove them immediately +once they are deleted. The "trash bin" may be managed using ``keymgr``, or it can +be emptied with ``knotc -f zone-purge +keys +orphan --``. *Default:* ``14d`` (14 days) diff --git a/src/knot/dnssec/key-events.c b/src/knot/dnssec/key-events.c index 021eadba5a..83642fa575 100644 --- a/src/knot/dnssec/key-events.c +++ b/src/knot/dnssec/key-events.c @@ -963,3 +963,42 @@ unsigned dnskey_sync_jitter(conf_t *conf, zone_t *zone) } return dnssec_random_uint16_t() % 5; } + +void key_trash_gc(server_t *server) +{ + assert (server); + + bool run = false; + knot_time_t now = knot_time(); + knot_spin_t *lock = &server->trash_gc.lock; + + knot_spin_lock(lock); + if (!server->trash_gc.running && + server->trash_gc.next <= now) { + server->trash_gc.running = true; + run = true; + } + knot_spin_unlock(lock); + + if (!run) { + return; + } + + int ret = kasp_db_trash_gc(&server->kaspdb); + if (ret != KNOT_EOK) { + log_warning("DNSSEC, background key trash garbage collector failed (%s)", + knot_strerror(ret)); + } else { + log_debug("DNSSEC, background key trash garbage collector finished"); + } + + knot_time_t next = knot_time_add(server->trash_gc.next, TRASH_GC_INTERVAL); + if (now > next) { + next = knot_time_add(now, TRASH_GC_INTERVAL); + } + + knot_spin_lock(lock); + server->trash_gc.running = false; + server->trash_gc.next = next; + knot_spin_unlock(lock); +} diff --git a/src/knot/dnssec/key-events.h b/src/knot/dnssec/key-events.h index cbe5804ad8..e43896d725 100644 --- a/src/knot/dnssec/key-events.h +++ b/src/knot/dnssec/key-events.h @@ -7,6 +7,7 @@ #include "knot/dnssec/context.h" #include "knot/dnssec/zone-events.h" +#include "knot/server/server.h" /*! * \brief Perform correct ZSK and KSK rollover action and plan next one. @@ -69,3 +70,10 @@ bool zone_has_key_sbm(const kdnssec_ctx_t *ctx); * \return Jitter value. */ unsigned dnskey_sync_jitter(conf_t *conf, zone_t *zone); + +/*! + * \brief Run key trash garbage collector if it's needed. + * + * \param server Server structure. + */ +void key_trash_gc(server_t *server); diff --git a/src/knot/events/handlers/dnssec.c b/src/knot/events/handlers/dnssec.c index 2b722fd370..c642039568 100644 --- a/src/knot/events/handlers/dnssec.c +++ b/src/knot/events/handlers/dnssec.c @@ -103,6 +103,9 @@ int event_dnssec(conf_t *conf, zone_t *zone) } done: + // Run key trash garbage collector if needed. + key_trash_gc(zone->server); + // Schedule dependent events event_dnssec_reschedule(conf, zone, &resch, zone_changed); diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 713e80234c..3db78e98e1 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -1063,6 +1063,7 @@ int server_init(server_t *server, int bg_workers) } ATOMIC_INIT(server->catalog_upd_signal, false); + knot_spin_init(&server->trash_gc.lock); pthread_rwlock_init(&server->ctl_lock, NULL); zone_backups_init(&server->backup_ctxs); @@ -1134,6 +1135,7 @@ void server_deinit(server_t *server) evsched_deinit(&server->sched); /* Deinit locks. */ + knot_spin_destroy(&server->trash_gc.lock); pthread_rwlock_destroy(&server->ctl_lock); /* Free catalog zone context. */ diff --git a/src/knot/server/server.h b/src/knot/server/server.h index c0462d1a43..cae5bb852f 100644 --- a/src/knot/server/server.h +++ b/src/knot/server/server.h @@ -6,6 +6,7 @@ #pragma once #include "contrib/atomic.h" +#include "contrib/spinlock.h" #include "knot/catalog/catalog_update.h" #include "knot/common/evsched.h" #include "knot/common/fdset.h" @@ -79,6 +80,15 @@ enum { IO_XDP = 2, }; +/*! + * \brief Key trash garbage collector control. + */ +typedef struct { + bool running; + knot_time_t next; + knot_spin_t lock; +} trash_gc_t; + /*! * \brief Main server structure. * @@ -131,6 +141,9 @@ typedef struct server { /*! \brief Crendentials context for QUIC. */ struct knot_creds *quic_creds; + + /*! \brief Key trash garbage collector control. */ + trash_gc_t trash_gc; } server_t; /*! From 2ad0a87f8b26074750ecce98dbe8089cf739e184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 7 Apr 2026 15:32:55 +0200 Subject: [PATCH 606/675] keymgr: refactor, make PEM key file import/copy a separate function --- src/utils/keymgr/functions.c | 85 +++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 34 deletions(-) diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index c072929db1..aaeafd40b0 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -510,38 +510,10 @@ static void err_import_key(char *keyid, const char *file) (*file == '\0') ? "the keystore" : "file ", file ); } -static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, - int argc, char *argv[]) +static int store_key_in_keystore(const char *param, unsigned backend, + knot_kasp_keystore_t *keystore, char **keyid) { - if (ctx == NULL || param == NULL) { - return KNOT_EINVAL; - } - - // parse params - knot_time_t now = knot_time(); - knot_kasp_key_timing_t timing = { .publish = now, .active = now }; - kdnssec_generate_flags_t flags = 0; - uint16_t keysize = 0; - if (!genkeyargs(argc, argv, false, &flags, &ctx->policy->algorithm, - &keysize, &timing, NULL)) { - return KNOT_EINVAL; - } - - knot_kasp_keystore_t *keystore = knot_store_for_key(ctx->keystores, - (flags & DNSKEY_GENERATE_KSK)); - if (keystore == NULL) { - return KNOT_DNSSEC_ENOKEYSTORE; - } - - int ret = check_timers(&timing); - if (ret != KNOT_EOK) { - return ret; - } - - normalize_generate_flags(&flags); - - dnssec_key_t *key = NULL; - char *keyid = NULL; + int ret = KNOT_EOK; if (backend == KEYSTORE_BACKEND_PEM) { // open file @@ -584,18 +556,63 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, } // put pem to keystore - ret = dnssec_keystore_import(keystore->keystore, &pem, &keyid); + ret = dnssec_keystore_import(keystore->keystore, &pem, keyid); dnssec_binary_free(&pem); if (ret != KNOT_EOK) { - err_import_key(keyid, param); + err_import_key(*keyid, param); goto fail; } } else { assert(backend == KEYSTORE_BACKEND_PKCS11); - keyid = strdup(param); + *keyid = strdup(param); + } + return ret; + +fail: + free(*keyid); + *keyid = NULL; + return ret; +} + +static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, + int argc, char *argv[]) +{ + if (ctx == NULL || param == NULL) { + return KNOT_EINVAL; + } + + // parse params + knot_time_t now = knot_time(); + knot_kasp_key_timing_t timing = { .publish = now, .active = now }; + kdnssec_generate_flags_t flags = 0; + uint16_t keysize = 0; + if (!genkeyargs(argc, argv, false, &flags, &ctx->policy->algorithm, + &keysize, &timing, NULL)) { + return KNOT_EINVAL; + } + + knot_kasp_keystore_t *keystore = knot_store_for_key(ctx->keystores, + (flags & DNSKEY_GENERATE_KSK)); + if (keystore == NULL) { + return KNOT_DNSSEC_ENOKEYSTORE; + } + + int ret = check_timers(&timing); + if (ret != KNOT_EOK) { + return ret; + } + + normalize_generate_flags(&flags); + + // set the key in keystore and get back keyid + char *keyid = NULL; + ret = store_key_in_keystore(param, backend, keystore, &keyid); + if (ret != KNOT_EOK) { + return ret; } // create dnssec key + dnssec_key_t *key = NULL; ret = dnssec_key_new(&key); if (ret != KNOT_EOK) { goto fail; From 85aee1fb94f804c78a28c8a30a57fbe6684733ab Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 26 Jun 2026 07:37:26 +0200 Subject: [PATCH 607/675] conf: disallow leading dash in keystore name --- src/knot/conf/schema.c | 2 +- src/knot/conf/tools.c | 11 +++++++++++ src/knot/conf/tools.h | 4 ++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index b89ef1e148..d07de57a66 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -340,7 +340,7 @@ static const yp_item_t desc_database[] = { }; static const yp_item_t desc_keystore[] = { - { C_ID, YP_TSTR, YP_VNONE }, + { C_ID, YP_TSTR, YP_VNONE, YP_FNONE, { check_id_dash } }, { C_BACKEND, YP_TOPT, YP_VOPT = { keystore_backends, KEYSTORE_BACKEND_PEM }, CONF_IO_FRLD_ZONES }, { C_CONFIG, YP_TSTR, YP_VSTR = { "keys" }, CONF_IO_FRLD_ZONES }, diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index aae6c05a14..904578d610 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -222,6 +222,17 @@ int rdname_to_txt( YP_CHECK_RET; } +int check_id_dash( + knotd_conf_check_args_t *args) +{ + if (args->id_len > 1 && args->id[0] == '-') { + args->err_str = "leading dash not allowed"; + return KNOT_EINVAL; + } + + return KNOT_EOK; +} + int check_ref( knotd_conf_check_args_t *args) { diff --git a/src/knot/conf/tools.h b/src/knot/conf/tools.h index c488a1f1f0..9d72214247 100644 --- a/src/knot/conf/tools.h +++ b/src/knot/conf/tools.h @@ -51,6 +51,10 @@ int rdname_to_txt( YP_BIN_TXT_PARAMS ); +int check_id_dash( + knotd_conf_check_args_t *args +); + int check_ref( knotd_conf_check_args_t *args ); From 878b504b310890f03258fb505c34becc000d74d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 9 Apr 2026 16:21:09 +0200 Subject: [PATCH 608/675] kasp: use "-" as a name of the default keystore rather than NULL --- src/knot/dnssec/kasp/kasp_zone.c | 3 +++ src/utils/keymgr/functions.c | 12 +++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index 9b871b8f49..890c09b192 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -341,6 +341,8 @@ void zone_deinit_keystore(knot_kasp_keystore_t **keystores) _zone_deinit_keystore(keystores, true); } +static const char *dflt_kstore_name = "-"; + int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore_id, knot_kasp_keystore_t **keystores) { @@ -384,6 +386,7 @@ int zone_init_keystore(conf_t *conf, conf_val_t *policy_id, conf_val_t *keystore knot_kasp_keystore_t *ks = *keystores + i; ks->name = conf_str(keystore_id); + ks->name = (ks->name == NULL) ? dflt_kstore_name : ks->name; conf_val_t val = conf_id_get(conf, C_KEYSTORE, C_BACKEND, keystore_id); ks->backend = conf_opt(&val); val = conf_id_get(conf, C_KEYSTORE, C_KSK_ONLY, keystore_id); diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index aaeafd40b0..dc7b2398e1 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -1023,7 +1023,7 @@ static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, assert(info->missing || info->ks_name); if (info->missing) { printf(" %s%smissing%s", COL_BOLD(c), COL_YELW(c), COL_RST(c)); - } else if (info->ks_count > 1 && info->ks_name != NULL) { + } else if (info->ks_count > 1 && *info->ks_name != '-') { printf(" %s%s/%s%s", COL_YELW(c), KS_TYPE(info), info->ks_name, COL_RST(c)); } @@ -1075,12 +1075,10 @@ static void print_key_full(const knot_kasp_key_t *key, key_info_t *info, (key->is_for_later ? "yes" : "no "), (info->missing ? "yes" : "no "), (trash ? "yes" : "no ")); - assert(info->missing || info->ks_name); if (info->missing) { - printf(" keystore=-"); - } else if (info->ks_name == NULL) { - printf(" keystore=PEM"); + printf(" keystore=-/-"); } else { + assert(info->ks_name); printf(" keystore=%s/%s", KS_TYPE(info), info->ks_name); } @@ -1119,10 +1117,10 @@ static void print_key_json(const knot_kasp_key_t *key, key_info_t *info, char *ks_type = "-"; char *ks_name = ks_type; - assert(info->missing || info->ks_name); if (!info->missing) { ks_type = KS_TYPE(info); - ks_name = (info->ks_name == NULL) ? ks_name : (char *)info->ks_name; + assert(info->ks_name); + ks_name = (char *)info->ks_name; } jsonw_str(w, "backend", ks_type); jsonw_str(w, "keystore", ks_name); From 4911b85f9f39a4885b5e20a25fc14695dcc13e20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 14 Apr 2026 14:06:24 +0200 Subject: [PATCH 609/675] kaspdb: in kasp_db_list_keys(), allow listing of a specified key_id only --- src/knot/dnssec/kasp/kasp_db.c | 6 +++--- src/knot/dnssec/kasp/kasp_db.h | 5 +++-- src/knot/dnssec/kasp/kasp_zone.c | 2 +- src/knot/zone/backup.c | 2 +- src/utils/keymgr/functions.c | 2 +- tests/knot/test_kasp_db.c | 12 ++++++------ 6 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index 2867071426..ceeedd6198 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -333,12 +333,12 @@ static key_params_t *txn2params_trash(knot_lmdb_txn_t *txn, const knot_dname_t * return NULL; } -int kasp_db_list_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, list_t *dst, - bool trash) +int kasp_db_list_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, + const char *key_id, list_t *dst, bool trash) { init_list(dst); knot_lmdb_txn_t txn = { 0 }; - MDB_val prefix = trash ? knot_lmdb_make_key("B", KASPDBKEY_TRASH) : + MDB_val prefix = trash ? make_key_str(KASPDBKEY_TRASH, NULL, key_id) : make_key_str(KASPDBKEY_PARAMS, zone_name, NULL); knot_lmdb_begin(db, &txn, false); knot_lmdb_foreach(&txn, &prefix) { diff --git a/src/knot/dnssec/kasp/kasp_db.h b/src/knot/dnssec/kasp/kasp_db.h index ea6ab6bbb7..81c5e4e558 100644 --- a/src/knot/dnssec/kasp/kasp_db.h +++ b/src/knot/dnssec/kasp/kasp_db.h @@ -26,13 +26,14 @@ typedef enum { // the enum values MUST match those from keyclass_t !! * \param db KASP db * \param zone_name name of the zone in question * if NULL for trashed keys, list trashed keys belonging to any zone + * \param key_id if not NULL, find a trash key of this key ID * \param dst output if KNOT_EOK: ptrlist of keys' params * \param trash if false, list all valid keys, if true, list all trashed keys * * \return KNOT_E* (KNOT_ENOENT if no keys) */ -int kasp_db_list_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, list_t *dst, - bool trash); +int kasp_db_list_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, + const char *key_id, list_t *dst, bool trash); /*! * \brief Obtain the algorithm of a key. diff --git a/src/knot/dnssec/kasp/kasp_zone.c b/src/knot/dnssec/kasp/kasp_zone.c index 890c09b192..994b981b18 100644 --- a/src/knot/dnssec/kasp/kasp_zone.c +++ b/src/knot/dnssec/kasp/kasp_zone.c @@ -185,7 +185,7 @@ int kasp_zone_load(knot_kasp_zone_t *zone, list_t key_params; init_list(&key_params); - int ret = kasp_db_list_keys(kdb, zone_name, &key_params, false); + int ret = kasp_db_list_keys(kdb, zone_name, NULL, &key_params, false); if (ret == KNOT_ENOENT) { zone->keys = NULL; zone->num_keys = 0; diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index 6d8f19d19d..e944add31e 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -399,7 +399,7 @@ static int backup_keystore(conf_t *conf, zone_t *zone, zone_backup_ctx_t *ctx) list_t key_params; init_list(&key_params); - ret = kasp_db_list_keys(zone_kaspdb(zone), zone->name, &key_params, false); + ret = kasp_db_list_keys(zone_kaspdb(zone), zone->name, NULL, &key_params, false); ret = (ret == KNOT_ENOENT ? KNOT_EOK : ret); if (ret != KNOT_EOK) { LOG_FAIL("keystore list"); diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index dc7b2398e1..b82e28569f 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -1253,7 +1253,7 @@ int keymgr_list_trash(kdnssec_ctx_t *ctx, const knot_dname_t *zone_name, { list_t tlist; init_list(&tlist); - int ret = kasp_db_list_keys(ctx->kasp_db, zone_name, &tlist, true); + int ret = kasp_db_list_keys(ctx->kasp_db, zone_name, NULL, &tlist, true); ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; if (ret != KNOT_EOK) { ERR2("failed to list keys from KASP (%s)", knot_strerror(ret)); diff --git a/tests/knot/test_kasp_db.c b/tests/knot/test_kasp_db.c index 54003f60c1..b3e6021c06 100644 --- a/tests/knot/test_kasp_db.c +++ b/tests/knot/test_kasp_db.c @@ -83,7 +83,7 @@ int main(int argc, char *argv[]) ret = kasp_db_add_key(db, zone1, ¶ms1); is_int(KNOT_EOK, ret, "kasp_db: add key 1 eok"); - ret = kasp_db_list_keys(db, zone1, &l, false); + ret = kasp_db_list_keys(db, zone1, NULL, &l, false); is_int(KNOT_EOK, ret, "kasp_db: list keys 1 eok"); is_int(1, list_size(&l), "kasp_db: list keys reports one key 1"); params = ((ptrnode_t *)HEAD(l))->d; @@ -91,7 +91,7 @@ int main(int argc, char *argv[]) free_params ptrlist_deep_free(&l, NULL); - ret = kasp_db_list_keys(db, zone2, &l, false); + ret = kasp_db_list_keys(db, zone2, NULL, &l, false); is_int(KNOT_ENOENT, ret, "kasp_db: list keys 1 enoent"); is_int(0, list_size(&l), "kasp_db: list keys reports no keys 1"); ptrlist_deep_free(&l, NULL); @@ -99,7 +99,7 @@ int main(int argc, char *argv[]) ret = kasp_db_share_key(db, zone1, zone2, params1.id); is_int(KNOT_EOK, ret, "kasp_db: share key eok"); - ret = kasp_db_list_keys(db, zone2, &l, false); + ret = kasp_db_list_keys(db, zone2, NULL, &l, false); is_int(KNOT_EOK, ret, "kasp_db: list keys 3 eok"); is_int(1, list_size(&l), "kasp_db: list keys reports one key 2"); params = ((ptrnode_t *)HEAD(l))->d; @@ -109,7 +109,7 @@ int main(int argc, char *argv[]) ret = kasp_db_add_key(db, zone2, ¶ms2); is_int(KNOT_EOK, ret, "kasp_db: add key 2 eok"); - ret = kasp_db_list_keys(db, zone2, &l, false); + ret = kasp_db_list_keys(db, zone2, NULL, &l, false); is_int(KNOT_EOK, ret, "kasp_db: list keys 4 eok"); is_int(2, list_size(&l), "kasp_db: list keys reports two keys 1"); params = ((ptrnode_t *)TAIL(l))->d; @@ -122,7 +122,7 @@ int main(int argc, char *argv[]) ret = kasp_db_delete_key(db, zone1, params1.id, 0, &ignore); is_int(KNOT_EOK, ret, "kasp_db: delete key 1 eok"); - ret = kasp_db_list_keys(db, zone1, &l, false); + ret = kasp_db_list_keys(db, zone1, NULL, &l, false); is_int(KNOT_ENOENT, ret, "kasp_db: list keys 2 enoent"); is_int(list_size(&l), 0, "kasp_db: list keys reports no keys 2"); ptrlist_deep_free(&l, NULL); @@ -147,7 +147,7 @@ int main(int argc, char *argv[]) ret = kasp_db_delete_all(db, zone2); is_int(KNOT_EOK, ret, "kasp_db: delete all"); - ret = kasp_db_list_keys(db, zone2, &l, false); + ret = kasp_db_list_keys(db, zone2, NULL, &l, false); is_int(KNOT_EOK, ret, "kasp_db: do not delete keys"); is_int(2, list_size(&l), "kasp_db: list keys reports two keys 2"); params = ((ptrnode_t *)TAIL(l))->d; From 1b18661836c8faf9ee873e605776f6516e764c2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 22 May 2026 13:58:08 +0200 Subject: [PATCH 610/675] dnssec: modify kdnssec_load_private() to provide ksk_only flag of the keystore --- src/knot/dnssec/zone-keys.c | 10 +++++++--- src/knot/dnssec/zone-keys.h | 4 +++- src/knot/zone/backup.c | 2 +- src/utils/keymgr/functions.c | 6 ++++-- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/knot/dnssec/zone-keys.c b/src/knot/dnssec/zone-keys.c index 99289513ae..4594ee5265 100644 --- a/src/knot/dnssec/zone-keys.c +++ b/src/knot/dnssec/zone-keys.c @@ -512,8 +512,8 @@ static int walk_algorithms(kdnssec_ctx_t *ctx, zone_keyset_t *keyset) return KNOT_EOK; } -int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, - dnssec_key_t *key, const char **name, unsigned *backend) +int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, dnssec_key_t *key, + const char **name, unsigned *backend, bool *ksk_only) { int ret = KNOT_ENOENT; for (size_t i = 0; i < keystores[0].count && (ret == KNOT_ENOENT); i++) { @@ -525,6 +525,9 @@ int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, if (backend != NULL) { *backend = keystores[i].backend; } + if (ksk_only != NULL) { + *ksk_only = keystores[i].ksk_only; + } } } return ret; @@ -553,7 +556,8 @@ static int load_private_keys(kdnssec_ctx_t *ctx, zone_keyset_t *keyset) if (!key->is_active && !key->is_ksk_active_plus && !key->is_zsk_active_plus) { continue; } - int ret = kdnssec_load_private(ctx->keystores, key->id, key->key, NULL, NULL); + int ret = kdnssec_load_private(ctx->keystores, key->id, key->key, + NULL, NULL, NULL); switch (ret) { case KNOT_EOK: case KNOT_EEXIST: diff --git a/src/knot/dnssec/zone-keys.h b/src/knot/dnssec/zone-keys.h index 07c8293f96..ab7a3aa8e3 100644 --- a/src/knot/dnssec/zone-keys.h +++ b/src/knot/dnssec/zone-keys.h @@ -142,11 +142,13 @@ int kdnssec_delete_key(kdnssec_ctx_t *ctx, knot_kasp_key_t *key_ptr, bool trash) * \param key Libdnssec key structure to be filled with private material. * \param name Optional: name of the keystore in the configuration. * \param backend Optional: backend of the keystore where found. + * \param ksk_only Optional: ksk_only flag of the keystore where found. * * \return DNSSEC_E* */ int kdnssec_load_private(knot_kasp_keystore_t *keystores, const char *id, - dnssec_key_t *key, const char **name, unsigned *backend); + dnssec_key_t *key, const char **name, unsigned *backend, + bool *ksk_only); /*! * \brief Find configured keystore for newly generated key. diff --git a/src/knot/zone/backup.c b/src/knot/zone/backup.c index e944add31e..7457acce6d 100644 --- a/src/knot/zone/backup.c +++ b/src/knot/zone/backup.c @@ -226,7 +226,7 @@ static int backup_key(key_params_t *parm, const knot_dname_t *zname, bool restor dnssec_key_set_algorithm(key, parm->algorithm); unsigned backend; - ret = kdnssec_load_private(from, parm->id, key, NULL, &backend); + ret = kdnssec_load_private(from, parm->id, key, NULL, &backend, NULL); if (ret == KNOT_EOK) { // If restore, consider only the first configured keystore. assert(to->count > 0); diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index b82e28569f..74c51690db 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -625,7 +625,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, dnssec_key_set_algorithm(key, ctx->policy->algorithm); // fill key structure from keystore (incl. pubkey from privkey computation) - ret = kdnssec_load_private(ctx->keystores, keyid, key, NULL, NULL); + ret = kdnssec_load_private(ctx->keystores, keyid, key, NULL, NULL, NULL); if (ret != KNOT_EOK) { err_import_key(keyid, ""); goto fail; @@ -973,6 +973,7 @@ typedef struct { const char *ks_name; size_t ks_count; unsigned backend; + bool ksk_only; bool missing; bool trash; bool all_zones; @@ -1169,7 +1170,8 @@ static key_info_t key_missing(kdnssec_ctx_t *ctx, const knot_kasp_key_t *key) key_info_t out = { .ks_count = ctx->keystores[0].count }; out.missing = !key->is_pub_only && KNOT_EOK != kdnssec_load_private(ctx->keystores, key->id, - key->key, &out.ks_name, &out.backend); + key->key, &out.ks_name, &out.backend, + &out.ksk_only); return out; } From 99cce0ed826bc5bf5d35b8dadb002064a83baa23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 30 Mar 2026 13:10:52 +0200 Subject: [PATCH 611/675] keymgr: add the 'import-trash' command --- doc/man_keymgr.rst | 6 ++ src/utils/keymgr/functions.c | 163 +++++++++++++++++++++++++++-------- src/utils/keymgr/functions.h | 2 + src/utils/keymgr/main.c | 5 ++ 4 files changed, 142 insertions(+), 34 deletions(-) diff --git a/doc/man_keymgr.rst b/doc/man_keymgr.rst index 8740bb22b6..a80fce0de9 100644 --- a/doc/man_keymgr.rst +++ b/doc/man_keymgr.rst @@ -149,6 +149,12 @@ Commands on *zone_name*. If **--** or **-** is specified as *key_ID*, remove all trash keys belonging to *zone_name*. If **--** or **-** is specified both as *zone_name* and *key_ID*, empty the entire "trash bin". +**import-trash** *key_ID* [*arguments*...] + Re-import (recover) deleted DNSSEC key from the "trash bin". Some of the original key's parameters + (algorithm, size, and zsk, ksk, for-later flags) are re-used and can be overridden, the rest must be + set manually anew in the same way as in the generate command. Deleted key may be re-imported to a + different zone than what was the original zone. Original keystore and new keystore must match. + Keystore commands ................. diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 74c51690db..30064288e7 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -32,6 +32,17 @@ #include "knot/dnssec/zone-sign.h" #include "libzscanner/scanner.h" +typedef struct { + const char *ks_name; + size_t ks_count; + unsigned backend; + bool ksk_only; + bool missing; + bool trash; + bool all_zones; + jsonw_t *jsonw; +} key_info_t; + inline static bool both_dash_undersc(const char a, const char b) { return (a == '-' || a == '_') && (b == '-' || b == '_'); @@ -141,11 +152,77 @@ static bool same_command_bool(const char *arg, const char *cmd, bool *res) } } -static bool genkeyargs(int argc, char *argv[], bool just_timing, +static key_info_t key_missing(kdnssec_ctx_t *ctx, const knot_kasp_key_t *key) +{ + key_info_t out = { .ks_count = ctx->keystores[0].count }; + out.missing = !key->is_pub_only && + KNOT_EOK != kdnssec_load_private(ctx->keystores, key->id, + key->key, &out.ks_name, &out.backend, + &out.ksk_only); + return out; +} + +static int get_trash_params(kdnssec_ctx_t *ctx, const char *key_id, + key_params_t *params, key_info_t *info) +{ + assert(ctx); + assert(ctx->kasp_db); + + ptrnode_t *node; + list_t params_list; + init_list(¶ms_list); + int ret = kasp_db_list_keys(ctx->kasp_db, NULL, key_id, ¶ms_list, true); + if (ret != KNOT_EOK) { + return ret; + } + size_t count = list_size(¶ms_list); + if (count > 1) { + WARN2("key %s, multiple (%ld) trash-key records in KASP DB, using the first one", + key_id, count); + } + + key_params_t *found = ((ptrnode_t *)HEAD(params_list))->d; + *params = *(found); + params->id = NULL; + params->dname = NULL; + + knot_kasp_key_t key; + ret = params2kaspkey(found->dname, found, &key); + if (ret != KNOT_EOK && ret != KNOT_NO_PUBLIC_KEY) { + ERR2("key %s, failed to parse key metadata (%s)", + key_id, knot_strerror(ret)); + goto done; + } + + *info = key_missing(ctx, &key); + + free(key.id); + dnssec_key_free(key.key); + +done: + WALK_LIST(node, params_list) { + free_key_params(node->d); + } + ptrlist_deep_free(¶ms_list, NULL); + + return ret; +} + +static bool genkeyargs(int argc, char *argv[], bool just_timing, key_params_t *known_params, kdnssec_generate_flags_t *flags, dnssec_key_algorithm_t *algorithm, uint16_t *keysize, knot_kasp_key_timing_t *timing, const char **addtopolicy) { + // in case of trash re-import, fill-in already known parameters + if (known_params != NULL) { + *algorithm = known_params->algorithm; + *keysize = known_params->public_key.size; + bitmap_set(flags, DNSKEY_GENERATE_KSK, known_params->is_ksk); + bitmap_set(flags, DNSKEY_GENERATE_ZSK, known_params->is_csk || + !known_params->is_ksk); + bitmap_set(flags, DNSKEY_GENERATE_FOR_LATER, known_params->is_for_later); + } + // generate algorithms field const char *algnames[256] = { [DNSSEC_KEY_ALGORITHM_RSA_SHA1] = "rsasha1", @@ -251,7 +328,7 @@ int keymgr_generate_key(kdnssec_ctx_t *ctx, int argc, char *argv[]) kdnssec_generate_flags_t flags = 0; uint16_t keysize = 0; const char *addtopolicy = NULL; - if (!genkeyargs(argc, argv, false, &flags, &ctx->policy->algorithm, + if (!genkeyargs(argc, argv, false, NULL, &flags, &ctx->policy->algorithm, &keysize, &gen_timing, &addtopolicy)) { return KNOT_EINVAL; } @@ -511,11 +588,12 @@ static void err_import_key(char *keyid, const char *file) } static int store_key_in_keystore(const char *param, unsigned backend, - knot_kasp_keystore_t *keystore, char **keyid) + knot_kasp_keystore_t *keystore, char **keyid, + bool exists) { int ret = KNOT_EOK; - if (backend == KEYSTORE_BACKEND_PEM) { + if (backend == KEYSTORE_BACKEND_PEM && !exists) { // open file int fd = open(param, O_RDONLY, 0); if (fd == -1) { @@ -563,7 +641,7 @@ static int store_key_in_keystore(const char *param, unsigned backend, goto fail; } } else { - assert(backend == KEYSTORE_BACKEND_PKCS11); + assert(backend == KEYSTORE_BACKEND_PKCS11 || exists); *keyid = strdup(param); } return ret; @@ -575,7 +653,7 @@ static int store_key_in_keystore(const char *param, unsigned backend, } static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, - int argc, char *argv[]) + key_params_t *trash_params, int argc, char *argv[]) { if (ctx == NULL || param == NULL) { return KNOT_EINVAL; @@ -586,8 +664,8 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, knot_kasp_key_timing_t timing = { .publish = now, .active = now }; kdnssec_generate_flags_t flags = 0; uint16_t keysize = 0; - if (!genkeyargs(argc, argv, false, &flags, &ctx->policy->algorithm, - &keysize, &timing, NULL)) { + if (!genkeyargs(argc, argv, false, trash_params, &flags, + &ctx->policy->algorithm, &keysize, &timing, NULL)) { return KNOT_EINVAL; } @@ -604,9 +682,10 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, normalize_generate_flags(&flags); - // set the key in keystore and get back keyid + // store the key in keystore if needed and retrieve keyid char *keyid = NULL; - ret = store_key_in_keystore(param, backend, keystore, &keyid); + ret = store_key_in_keystore(param, backend, keystore, &keyid, + (trash_params != NULL)); if (ret != KNOT_EOK) { return ret; } @@ -663,7 +742,7 @@ static int import_key(kdnssec_ctx_t *ctx, unsigned backend, const char *param, int keymgr_import_pem(kdnssec_ctx_t *ctx, const char *import_file, int argc, char *argv[]) { - return import_key(ctx, KEYSTORE_BACKEND_PEM, import_file, argc, argv); + return import_key(ctx, KEYSTORE_BACKEND_PEM, import_file, NULL, argc, argv); } int keymgr_import_pkcs11(kdnssec_ctx_t *ctx, char *key_id, int argc, char *argv[]) @@ -682,7 +761,44 @@ int keymgr_import_pkcs11(kdnssec_ctx_t *ctx, char *key_id, int argc, char *argv[ } dnssec_keyid_normalize(key_id); - return import_key(ctx, KEYSTORE_BACKEND_PKCS11, key_id, argc, argv); + return import_key(ctx, KEYSTORE_BACKEND_PKCS11, key_id, NULL, argc, argv); +} + +int keymgr_import_trash(kdnssec_ctx_t *ctx, char *key_id, int argc, char *argv[]) +{ + if (!dnssec_keyid_is_valid(key_id)) { + return KNOT_INVALID_KEY_ID; + } + + key_params_t params; + key_info_t info = { 0 }; + + int ret = get_trash_params(ctx, key_id, ¶ms, &info); + if (ret != KNOT_EOK) { + return ret; + } + if (info.missing) { + // Check other keystores too, just for a message. + kdnssec_ctx_t all_ctx = { 0 }; + all_ctx.kasp_db = ctx->kasp_db; + ret = init_all_keystores(conf(), &all_ctx.keystores); + if (ret == KNOT_EOK) { + ret = get_trash_params(&all_ctx, key_id, ¶ms, &info); + if (ret == KNOT_EOK && !info.missing) { + WARN2("key %s, stored in another keystore %s", + key_id, info.ks_name); + } + } + deinit_all_keystores(&all_ctx.keystores); + return KNOT_DNSSEC_ENOKEYSTORE; + } + + if (!params.is_ksk && info.ksk_only) { + WARN2("key %s, policy configuration conflict for keystore %s and this key", + key_id, info.ks_name); + } + + return import_key(ctx, info.backend, key_id, ¶ms, argc, argv); } int keymgr_nsec3_salt_print(kdnssec_ctx_t *ctx) @@ -923,7 +1039,7 @@ int keymgr_set_timing(knot_kasp_key_t *key, int argc, char *argv[]) (key->is_zsk ? DNSKEY_GENERATE_ZSK : 0) | (key->is_for_later ? DNSKEY_GENERATE_FOR_LATER : 0)); - if (genkeyargs(argc, argv, true, &flags, NULL, NULL, &temp, NULL)) { + if (genkeyargs(argc, argv, true, NULL, &flags, NULL, NULL, &temp, NULL)) { int ret = check_timers(&temp); if (ret != KNOT_EOK) { return ret; @@ -969,17 +1085,6 @@ static const timer_ctx_t trash_timers[] = { { NULL } }; -typedef struct { - const char *ks_name; - size_t ks_count; - unsigned backend; - bool ksk_only; - bool missing; - bool trash; - bool all_zones; - jsonw_t *jsonw; -} key_info_t; - #define KS_TYPE(info) (info->backend == KEYSTORE_BACKEND_PEM) ? "PEM" : "PKCS11" static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, @@ -1165,16 +1270,6 @@ static int key_sort(const void *a, const void *b) return knot_time_cmp(item_a->key, item_b->key); } -static key_info_t key_missing(kdnssec_ctx_t *ctx, const knot_kasp_key_t *key) -{ - key_info_t out = { .ks_count = ctx->keystores[0].count }; - out.missing = !key->is_pub_only && - KNOT_EOK != kdnssec_load_private(ctx->keystores, key->id, - key->key, &out.ks_name, &out.backend, - &out.ksk_only); - return out; -} - int keymgr_list_keys(kdnssec_ctx_t *ctx, keymgr_list_params_t *params) { if (ctx->zone->num_keys == 0) { diff --git a/src/utils/keymgr/functions.h b/src/utils/keymgr/functions.h index 0444530130..80a7c5d17c 100644 --- a/src/utils/keymgr/functions.h +++ b/src/utils/keymgr/functions.h @@ -28,6 +28,8 @@ int keymgr_import_pem(kdnssec_ctx_t *ctx, const char *import_file, int argc, cha int keymgr_import_pkcs11(kdnssec_ctx_t *ctx, char *key_id, int argc, char *argv[]); +int keymgr_import_trash(kdnssec_ctx_t *ctx, char *key_id, int argc, char *argv[]); + int keymgr_nsec3_salt_print(kdnssec_ctx_t *ctx); int keymgr_nsec3_salt_set(kdnssec_ctx_t *ctx, const char *new_salt); diff --git a/src/utils/keymgr/main.c b/src/utils/keymgr/main.c index d98df1e283..71a957bf44 100644 --- a/src/utils/keymgr/main.c +++ b/src/utils/keymgr/main.c @@ -84,6 +84,8 @@ static void print_help(void) " For all deleted keys belonging to a zone, use '--' as .\n" " For all deleted keys of all zones, use '--' as and as .\n" " (syntax: trash-discard )\n" + " import-trash Re-import (recover) deleted key from the \"trash bin\". Override key's original parameters manually.\n" + " (syntax: import-trash =...)\n" "\n" "Keystore commands:\n" " keystore-test Conduct some tests on the specified keystore.\n" @@ -297,6 +299,9 @@ static int key_command(int argc, char *argv[], int opt_ind, knot_lmdb_db_t *kasp bool all = !strncmp(argv[2], "-", 2) || !strncmp(argv[2], "--", 3); ret = kasp_db_delete_trash(kaspdb, zone_name, all ? NULL : argv[2], NULL, NULL); + } else if (same_command(argv[1], "import-trash", false)) { + CHECK_MISSING_ARG("Key ID to re-import not specified"); + ret = keymgr_import_trash(&kctx, argv[2], argc - 3, argv + 3); } else if (same_command(argv[1], "pregenerate", false)) { CHECK_MISSING_ARG("Timestamp to not specified"); ret = keymgr_pregenerate_zsks(&kctx, argc > 3 ? argv[2] : NULL, From 9627a9549f023bde707b566e667a49b5b1cc9c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Fri, 17 Apr 2026 00:43:15 +0200 Subject: [PATCH 612/675] keymgr: in 'trash-list', display stored key tag instead of calculating it --- src/utils/keymgr/functions.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/utils/keymgr/functions.c b/src/utils/keymgr/functions.c index 30064288e7..78a7566fa2 100644 --- a/src/utils/keymgr/functions.c +++ b/src/utils/keymgr/functions.c @@ -40,6 +40,7 @@ typedef struct { bool missing; bool trash; bool all_zones; + uint16_t keytag; jsonw_t *jsonw; } key_info_t; @@ -1092,6 +1093,7 @@ static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, { const bool c = params->color; const bool trash = info->trash; + uint16_t keytag = trash ? info->keytag : dnssec_key_get_keytag(key->key); printf("%s%s%s", trash ? COL_UNDR(c) : "", @@ -1099,7 +1101,7 @@ static void print_key_brief(const knot_kasp_key_t *key, key_info_t *info, trash ? COL_RST(c) : ""); printf(" %s%5u%s ", - COL_BOLD(c), dnssec_key_get_keytag(key->key), COL_RST(c)); + COL_BOLD(c), keytag, COL_RST(c)); printf("%s%s%s%s ", COL_BOLD(c), @@ -1172,11 +1174,12 @@ static void print_key_full(const knot_kasp_key_t *key, key_info_t *info, keymgr_list_params_t *params) { const bool trash = info->trash; + uint16_t keytag = trash ? info->keytag : dnssec_key_get_keytag(key->key); printf("%s ksk=%s zsk=%s tag=%05d algorithm=%-2d size=%-4u" " public-only=%s for-later=%s missing=%s trash=%s", key->id, (key->is_ksk ? "yes" : "no "), (key->is_zsk ? "yes" : "no "), - dnssec_key_get_keytag(key->key), (int)dnssec_key_get_algorithm(key->key), + keytag, (int)dnssec_key_get_algorithm(key->key), dnssec_key_get_size(key->key), (key->is_pub_only ? "yes" : "no "), (key->is_for_later ? "yes" : "no "), (info->missing ? "yes" : "no "), (trash ? "yes" : "no ")); @@ -1208,12 +1211,13 @@ static void print_key_json(const knot_kasp_key_t *key, key_info_t *info, knot_time_print_t format, jsonw_t *w, const char *zone_name) { const bool trash = info->trash; + uint16_t keytag = trash ? info->keytag : dnssec_key_get_keytag(key->key); jsonw_str(w, "zone", zone_name); jsonw_str(w, "id", key->id); jsonw_bool(w, "ksk", key->is_ksk); jsonw_bool(w, "zsk", key->is_zsk); - jsonw_int(w, "tag", dnssec_key_get_keytag(key->key)); + jsonw_int(w, "tag", keytag); jsonw_ulong(w, "algorithm", dnssec_key_get_algorithm(key->key)); jsonw_int(w, "size", dnssec_key_get_size(key->key)); jsonw_bool(w, "public-only", key->is_pub_only); @@ -1336,6 +1340,7 @@ static int print_params_key(kdnssec_ctx_t *ctx, key_params_t *kparams, } key_info_t info = key_missing(ctx, &key); info.trash = true; + info.keytag = kparams->keytag; info.all_zones = ctx->validation_mode; // Abused ctx member validation_mode. info.jsonw = jsonw; print_cb(&key, &info, params); From ba03e8d87c1d86501b0f517dd7ae77a7ec3092dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 15 Apr 2026 18:27:44 +0200 Subject: [PATCH 613/675] doc/operation: DNSSEC key delete and recovery (the "trash bin" feature) --- doc/operation.rst | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/doc/operation.rst b/doc/operation.rst index b348669b9e..af6ddb7967 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -720,7 +720,7 @@ Standard states: the updated DS records in parent zone to be acked by resolvers (KSK case) or synchronizing with KSK during algorithm rollover (ZSK case). - ``retired`` — The key is no longer used for signing. If ZSK, the key is still published in the zone. -- ``removed`` — The key is not used in any way (in most cases such keys are deleted immediately). +- ``removed`` — The key is not used in any way (such keys are usually moved to the :ref:`"trash bin"`). Special states for algorithm rollover: @@ -1397,6 +1397,44 @@ To achieve this, both keystores must be configured in the new KSKs are generated in the HSM, while ZSKs are generated in the second keystore. +.. _DNSSEC key delete and recovery: + +DNSSEC key delete and recovery +============================== + +Starting with Knot DNS 3.6.0, when a key is being removed or deleted, it's in fact +moved to a virtual *"trash bin"* first to be stored there for a predefined time. +After this time has elapsed, the key is automatically discarded from the keystore. +This solution allows key recovery if a deleted key is needed in case of an accident, +a mistake in configuration, or for troubleshooting. + +The *"trash bin"* for deleted DNSSEC keys is virtual indeed, deleted keys themselves +are physically stored in the same keystores as before their deletion. Deleted keys +in the *"trash bin"* can be handled with :doc:`keymgr` utility, using the +commands ``trash-list`` and ``trash-discard``. Recovery (in fact, a re-import) of +a deleted key is done with the :doc:`keymgr` ``import-trash`` command. +In re-import, a few of original key parameters are reused, but most of parameters +must be specified manually as in other key imports — this is because most of +the parameters lose their validity when the key is deleted. +It's also possible to re-import deleted key to a different zone than which the key +belonged to prior its deletion. The keystore that contains the key will remain +the same and the zone to which the key is being re-imported must be configured +to use this keystore. + +The retention period for keys in the *"trash bin"* is configurable per DNSSEC +policy using :ref:`policy_trash-delay` (prior to the key deletion, of course). + +The *"trash bin"* can be disabled completely for any DNSSEC policy by setting +:ref:`policy_trash-delay` to ``0``. In such a case, all keys are discarded immediately +upon their deletion and never moved to the virtual *"trash bin"*. + +If needed, the *"trash bin"* can be emptied at will with either ``keymgr trash-discard`` +or ``knotc -f +keys +orphan zone-purge`` commands. + +.. NOTE:: + Contents of the *"trash bin*" is not part of :ref:`online backup` + and restore. + .. _Controlling a running daemon: Daemon controls @@ -1483,6 +1521,8 @@ the zones, before copying the data like zone files, KASP database, etc, to a backup location. To avoid this necessity, Knot DNS provides a feature to back up some or all of the zones seamlessly. +.. _Online backup: + Online backup ------------- From 060df28e0aae87e24c14076ef9e959fd586ddc2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 8 Jun 2026 12:57:34 +0200 Subject: [PATCH 614/675] dnssec: refactor kdnssec_ctx_deinit() --- src/knot/dnssec/context.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/knot/dnssec/context.c b/src/knot/dnssec/context.c index dcbde88642..b68c7526fa 100644 --- a/src/knot/dnssec/context.c +++ b/src/knot/dnssec/context.c @@ -174,6 +174,15 @@ static void policy_load(knot_kasp_policy_t *policy, conf_t *conf, conf_val_t *id } } +static void policy_unload(knot_kasp_policy_t *policy) +{ + free(policy->string); + knot_dynarray_foreach(parent, knot_kasp_parent_t, i, policy->parents) { + free(i->addr); + } + free(policy); +} + int kdnssec_ctx_init(conf_t *conf, kdnssec_ctx_t *ctx, const knot_dname_t *zone_name, knot_lmdb_db_t *kaspdb, const conf_mod_id_t *from_module) { @@ -285,11 +294,7 @@ void kdnssec_ctx_deinit(kdnssec_ctx_t *ctx) if (ctx->policy != NULL) { knot_spin_destroy(&ctx->stats->lock); - free(ctx->policy->string); - knot_dynarray_foreach(parent, knot_kasp_parent_t, i, ctx->policy->parents) { - free(i->addr); - } - free(ctx->policy); + policy_unload(ctx->policy); } key_records_clear(&ctx->offline_records); zone_deinit_keystore(&ctx->keystores); From 8ac0c227b3d68f5d01dc70003946cb7248af0d62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 8 Jun 2026 12:58:08 +0200 Subject: [PATCH 615/675] dnssec: use incomplete DNSSEC context for orphan keys --- src/knot/dnssec/context.c | 38 ++++++++++++++++++++++++++++++++++++-- src/knot/dnssec/context.h | 15 +++++++++++++++ 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/src/knot/dnssec/context.c b/src/knot/dnssec/context.c index b68c7526fa..8b8ce99e1c 100644 --- a/src/knot/dnssec/context.c +++ b/src/knot/dnssec/context.c @@ -146,8 +146,10 @@ static void policy_load(knot_kasp_policy_t *policy, conf_t *conf, conf_val_t *id val = conf_id_get(conf, C_POLICY, C_SIGNING_THREADS, id); policy->signing_threads = conf_int(&val); - val = conf_zone_get(conf, C_DS_PUSH, zone_name); - if (val.code != KNOT_EOK) { + if (zone_name != NULL) { + val = conf_zone_get(conf, C_DS_PUSH, zone_name); + } + if (zone_name == NULL || val.code != KNOT_EOK) { val = conf_id_get(conf, C_POLICY, C_DS_PUSH, id); } policy->ds_push = conf_val_count(&val) > 0; @@ -267,6 +269,32 @@ int kdnssec_ctx_init(conf_t *conf, kdnssec_ctx_t *ctx, const knot_dname_t *zone_ return ret; } +int kdnssec_orphan_ctx_init(conf_t *conf, kdnssec_ctx_t *ctx) +{ + if (ctx == NULL) { + return KNOT_EINVAL; + } + + memset(ctx, 0, sizeof(*ctx)); + + ctx->policy = calloc(1, sizeof(*ctx->policy) + sizeof(*ctx->stats)); + if (ctx->policy == NULL) { + return KNOT_ENOMEM; + } + + uint8_t empty = 0; + conf_val_t void_id = conf_rawid_get(conf, C_ZONE, C_DNSSEC_POLICY, &empty, 0); + conf_id_fix_default(&void_id); + policy_load(ctx->policy, conf, &void_id, NULL); + + int ret = init_all_keystores(conf, &ctx->keystores); + if (ret != KNOT_EOK) { + policy_unload(ctx->policy); + } + + return ret; +} + int kdnssec_ctx_commit(kdnssec_ctx_t *ctx) { if (ctx == NULL || ctx->kasp_zone_path == NULL) { @@ -304,6 +332,12 @@ void kdnssec_ctx_deinit(kdnssec_ctx_t *ctx) memset(ctx, 0, sizeof(*ctx)); } +void kdnssec_orphan_ctx_deinit(kdnssec_ctx_t *ctx) +{ + policy_unload(ctx->policy); + deinit_all_keystores(&ctx->keystores); +} + // expects policy struct to be zeroed static void policy_from_zone(knot_kasp_policy_t *policy, const zone_contents_t *zone) { diff --git a/src/knot/dnssec/context.h b/src/knot/dnssec/context.h index 6571aa4f97..93d7e16290 100644 --- a/src/knot/dnssec/context.h +++ b/src/knot/dnssec/context.h @@ -57,6 +57,16 @@ typedef struct { int kdnssec_ctx_init(conf_t *conf, kdnssec_ctx_t *ctx, const knot_dname_t *zone_name, knot_lmdb_db_t *kaspdb, const conf_mod_id_t *from_module); +/*! + * \brief Initialize DNSSEC signing context for orphans. + * + * \param conf Configuration. + * \param ctx Signing context to be initialized. + * + * \note Only policy and keystore list are initialized! + */ +int kdnssec_orphan_ctx_init(conf_t *conf, kdnssec_ctx_t *ctx); + /*! * \brief Initialize DNSSEC validating context. * @@ -79,3 +89,8 @@ int kdnssec_ctx_commit(kdnssec_ctx_t *ctx); * \brief Cleanup DNSSEC signing context. */ void kdnssec_ctx_deinit(kdnssec_ctx_t *ctx); + +/*! + * \brief Cleanup DNSSEC signing context for orphans. + */ +void kdnssec_orphan_ctx_deinit(kdnssec_ctx_t *ctx); From feb3d0002b6852f561d8eb7b0213b288febdfe5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 20 Apr 2026 10:08:05 +0200 Subject: [PATCH 616/675] purge: when purging keys, use the "trash bin" instead of delete --- doc/operation.rst | 3 +-- doc/reference.rst | 3 +-- src/knot/ctl/commands.c | 3 +-- src/knot/dnssec/kasp/kasp_db.c | 47 ++++++++++++---------------------- 4 files changed, 19 insertions(+), 37 deletions(-) diff --git a/doc/operation.rst b/doc/operation.rst index af6ddb7967..9a24dc9121 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -1428,8 +1428,7 @@ The *"trash bin"* can be disabled completely for any DNSSEC policy by setting :ref:`policy_trash-delay` to ``0``. In such a case, all keys are discarded immediately upon their deletion and never moved to the virtual *"trash bin"*. -If needed, the *"trash bin"* can be emptied at will with either ``keymgr trash-discard`` -or ``knotc -f +keys +orphan zone-purge`` commands. +If needed, the *"trash bin"* can be emptied at will with ``keymgr trash-discard``. .. NOTE:: Contents of the *"trash bin*" is not part of :ref:`online backup` diff --git a/doc/reference.rst b/doc/reference.rst index 3ed9749505..46702ed7ec 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2360,8 +2360,7 @@ trash-delay Discard deleted keys belonging to the policy from the "trash bin" automatically after this time following their deletion. Set this parameter to ``0`` to completely avoid using the "trash bin" for deleted DNSSEC keys and remove them immediately -once they are deleted. The "trash bin" may be managed using ``keymgr``, or it can -be emptied with ``knotc -f zone-purge +keys +orphan --``. +once they are deleted. The "trash bin" may be managed using ``keymgr``. *Default:* ``14d`` (14 days) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index dbf03d5513..567500ceab 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1812,7 +1812,7 @@ static int orphans_purge(ctl_args_t *args) if (MATCH_AND_FILTER(args, CTL_FILTER_PURGE_KEYS)) { if (knot_lmdb_open(&args->server->kaspdb) == KNOT_EOK) { ret = kasp_db_delete_keys(&args->server->kaspdb, zone_name, - true, false, false); + true, false, true); log_if_orphans_error(zone_name, ret, "keys", &failed); } } @@ -1879,7 +1879,6 @@ static int zone_purge(zone_t *zone, ctl_args_t *args) MATCH_OR_FILTER(args, CTL_FILTER_PURGE_EXPIRE) * PURGE_ZONE_EXPIRE | // Keys purge must be requested explicitly. MATCH_AND_FILTER(args, CTL_FILTER_PURGE_KEYS) * PURGE_ZONE_KEYS | - PURGE_ZONE_TRASH | PURGE_ZONE_NOSYNC; // Purge even zonefiles with disabled syncing. zone_set_flag(zone, (zone_flag_t)params); diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index ceeedd6198..7f74d90dc8 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -10,6 +10,7 @@ #include "contrib/strtonum.h" #include "contrib/wire_ctx.h" +#include "knot/conf/conf.h" #include "knot/dnssec/kasp/kasp_zone.h" #include "knot/dnssec/key_records.h" #include "knot/dnssec/zone-keys.h" @@ -76,11 +77,6 @@ static bool is_key_related(const MDB_val *key) return (*(uint8_t *)key->mv_data == KASPDBKEY_PARAMS); } -static bool is_trash_related(const MDB_val *key) -{ - return (*(uint8_t *)key->mv_data == KASPDBKEY_TRASH); -} - static MDB_val make_key_str(keyclass_t kclass, const knot_dname_t *dname, const char *str) { switch (kclass) { @@ -480,21 +476,15 @@ int kasp_db_delete_key(knot_lmdb_db_t *db, const knot_dname_t *zone_name, const int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, bool orphan, bool best, bool use_trash) { - int ret; - knot_kasp_keystore_t *keystores = NULL; kdnssec_ctx_t ctx = { 0 }; uint32_t delay = 0; - if (orphan) { - ret = init_all_keystores(conf(), &keystores); - } else { - ret = kdnssec_ctx_init(conf(), &ctx, zone_name, db, NULL); - keystores = ctx.keystores; - delay = (use_trash && ret == KNOT_EOK) ? ctx.policy->trash_delay : delay; - } + int ret = orphan ? kdnssec_orphan_ctx_init(conf(), &ctx) : + kdnssec_ctx_init(conf(), &ctx, zone_name, db, NULL); if (ret != KNOT_EOK) { return ret; } + delay = use_trash ? ctx.policy->trash_delay : delay; MDB_val prefix = make_key_str(KASPDBKEY_PARAMS, zone_name, NULL); knot_lmdb_txn_t txn = { 0 }; @@ -514,7 +504,7 @@ int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, if (delay > 0) { ret = make_trash_key(&txn, &txn.cur_key, &txn.cur_val, delay); } else { - ret = kdnssec_delete_from_keystores(keystores, key_id, + ret = kdnssec_delete_from_keystores(ctx.keystores, key_id, zone_name, true, false); ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; // Note: if error, it isn't sure that there still is a key to delete. @@ -536,7 +526,7 @@ int kasp_db_delete_keys(knot_lmdb_db_t *db, const knot_dname_t *zone_name, free(prefix.mv_data); if (orphan) { - deinit_all_keystores(&keystores); + kdnssec_orphan_ctx_deinit(&ctx); } else { kdnssec_ctx_deinit(&ctx); } @@ -676,33 +666,28 @@ int kasp_db_sweep_keys(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) return ret; } - knot_kasp_keystore_t *keystores = NULL; - ret = init_all_keystores(conf(), &keystores); - if (ret != KNOT_EOK) { - return ret; - } + kdnssec_ctx_t ctx = { 0 }; + ret = kdnssec_orphan_ctx_init(conf(), &ctx); knot_lmdb_txn_t txn = { 0 }; knot_lmdb_begin(db, &txn, true); knot_lmdb_forwhole(&txn) { - if (!is_trash_related(&txn.cur_key) && - (!is_key_related(&txn.cur_key) || - keep_zone(cur_key_dname(&txn), cb_data))) { + if (!is_key_related(&txn.cur_key) || + keep_zone(cur_key_dname(&txn), cb_data)) { continue; } + char *key_id = NULL; if (unmake_key_str(&txn.cur_key, &key_id)) { knot_lmdb_cursor_swap(&txn); size_t count = keyid_inuse(&txn, key_id, NULL); knot_lmdb_cursor_swap(&txn); // Restore the regular cursor. - assert(count > 0 || is_trash_related(&txn.cur_key)); - if (count < 2) { - ret = kdnssec_delete_from_keystores(keystores, key_id, NULL, - true, false); - ret = (ret == KNOT_ENOENT) ? KNOT_EOK : ret; + assert(count > 0); + if (count == 1) { + ret = make_trash_key(&txn, &txn.cur_key, &txn.cur_val, + ctx.policy->trash_delay); if (ret != KNOT_EOK) { - // Note: it isn't sure that there still is a key to delete. free(key_id); break; } @@ -713,7 +698,7 @@ int kasp_db_sweep_keys(knot_lmdb_db_t *db, sweep_cb keep_zone, void *cb_data) } knot_lmdb_commit(&txn); - deinit_all_keystores(&keystores); + kdnssec_orphan_ctx_deinit(&ctx); return (ret == KNOT_EOK) ? txn.ret : ret; } From e1200aa9a3e8f9fe04f7b1494b4ac4f915a31778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 21 Apr 2026 16:50:52 +0200 Subject: [PATCH 617/675] kasp: policy-dependant default for trash-delay --- doc/reference.rst | 2 +- src/knot/conf/schema.c | 2 +- src/knot/dnssec/context.c | 3 ++- tests-extra/tests/dnssec/purge_keys/test.py | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 46702ed7ec..dda7fd029c 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2362,7 +2362,7 @@ after this time following their deletion. Set this parameter to ``0`` to complet avoid using the "trash bin" for deleted DNSSEC keys and remove them immediately once they are deleted. The "trash bin" may be managed using ``keymgr``. -*Default:* ``14d`` (14 days) +*Default:* 2 * :ref:`policy_rrsig-lifetime` .. _policy_propagation-delay: diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index d07de57a66..10206d10ca 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -444,7 +444,7 @@ static const yp_item_t desc_policy[] = { CONF_IO_FRLD_ZONES }, { C_DELEG_ADT, YP_TBOOL, YP_VNONE }, { C_DELETE_DELAY, YP_TINT, YP_VINT = { 0, UINT32_MAX, 0, YP_STIME } }, - { C_TRASH_DELAY, YP_TINT, YP_VINT = { 0, UINT32_MAX, DAYS(14), YP_STIME } }, + { C_TRASH_DELAY, YP_TINT, YP_VINT = { 0, UINT32_MAX, YP_NIL, YP_STIME } }, { C_PROPAG_DELAY, YP_TINT, YP_VINT = { 0, INT32_MAX, HOURS(1), YP_STIME }, CONF_IO_FRLD_ZONES }, { C_RRSIG_LIFETIME, YP_TINT, YP_VINT = { 1, INT32_MAX, DAYS(14), YP_STIME }, diff --git a/src/knot/dnssec/context.c b/src/knot/dnssec/context.c index 8b8ce99e1c..9b6ecf4447 100644 --- a/src/knot/dnssec/context.c +++ b/src/knot/dnssec/context.c @@ -70,13 +70,14 @@ static void policy_load(knot_kasp_policy_t *policy, conf_t *conf, conf_val_t *id policy->delete_delay = conf_int(&val); val = conf_id_get(conf, C_POLICY, C_TRASH_DELAY, id); - policy->trash_delay = conf_int(&val); + int64_t trash = conf_int(&val); // It will be corrected and set following C_RRSIG_LIFETIME. val = conf_id_get(conf, C_POLICY, C_PROPAG_DELAY, id); policy->propagation_delay = conf_int(&val); val = conf_id_get(conf, C_POLICY, C_RRSIG_LIFETIME, id); policy->rrsig_lifetime = conf_int(&val); + policy->trash_delay = (trash != YP_NIL) ? trash : 2 * policy->rrsig_lifetime; val = conf_id_get(conf, C_POLICY, C_RRSIG_REFRESH, id); num = conf_int(&val); diff --git a/tests-extra/tests/dnssec/purge_keys/test.py b/tests-extra/tests/dnssec/purge_keys/test.py index fedbb34073..2812352f73 100644 --- a/tests-extra/tests/dnssec/purge_keys/test.py +++ b/tests-extra/tests/dnssec/purge_keys/test.py @@ -77,6 +77,7 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not server.dnssec(zones[0]).enable = True server.dnssec(zones[0]).propagation_delay = 1 +server.dnssec(zones[0]).trash_delay = 86400 # Default keystore for zones[0], not configured. server.dnssec(zones[1]).enable = True From ea766bff2aa094541995cdc012703f9577a4276c Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 26 Jun 2026 11:10:11 +0200 Subject: [PATCH 618/675] tests-extra: add fatal parameter to isset() and compare() --- tests-extra/tools/dnstest/utils.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/tests-extra/tools/dnstest/utils.py b/tests-extra/tools/dnstest/utils.py index 25375d66a2..2902dde2f4 100644 --- a/tests-extra/tools/dnstest/utils.py +++ b/tests-extra/tools/dnstest/utils.py @@ -94,24 +94,32 @@ def set_err(msg): if not Context().err_msg: Context().err_msg = msg -def isset(value, name): +def isset(value, name, fatal=False): '''Check if value is True''' if not value: - set_err("IS SET \'%s\'" % name) - check_log("ERROR: IS SET \'%s\'" % name) + msg = "IS SET \'%s\'" % name + check_log("ERROR: %s" % msg) detail_log(SEP) + if fatal: + raise Failed(msg) + else: + set_err(msg) return True return False -def compare(value, expected, name): +def compare(value, expected, name, fatal=False): '''Compare two values''' if value != expected: - set_err("COMPARE \'%s\'" % name) - check_log("ERROR: COMPARE \'%s\'" % name) + msg = "COMPARE \'%s\'" % name + check_log("ERROR: %s" % msg) detail_log(" (%s) != expected (%s)" % (value, expected)) detail_log(SEP) + if fatal: + raise Failed(msg) + else: + set_err(msg) return True return False From 75a6b435848b18eb1bfbacd08c34442337b6c157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 27 Apr 2026 10:21:25 +0200 Subject: [PATCH 619/675] tests-extra: dnssec/purge_keys -- update to "trash bin" use and current '+keys' purging --- tests-extra/tests/dnssec/purge_keys/test.py | 503 +++++++++++++------- 1 file changed, 338 insertions(+), 165 deletions(-) diff --git a/tests-extra/tests/dnssec/purge_keys/test.py b/tests-extra/tests/dnssec/purge_keys/test.py index 2812352f73..8588493a45 100644 --- a/tests-extra/tests/dnssec/purge_keys/test.py +++ b/tests-extra/tests/dnssec/purge_keys/test.py @@ -12,9 +12,17 @@ from dnstest.keystore import KeystorePEM, KeystoreSoftHSM from dnstest.test import Test -def zone_ksks_zsks(server, zone, keystore=None): +# Immediate test break is needed for debugging. +def issetbr(value, name): + isset(value, name, fatal=True) + +def comparebr(value, expected, name): + compare(value, expected, name, fatal=True) + +def zone_name_ksks_zsks(server, zone_name, keystore=None, trash=False): env = keystore.env() if keystore is not None else None - _, keys, _ = Keymgr.run_check(server.confile, zone.name, "list", env=env) + command = "list" if not trash else "trash-list" + _, keys, _ = Keymgr.run_check(server.confile, zone_name, command, env=env) ksks, zsks = [], [] for key in keys.strip().splitlines(): @@ -26,48 +34,87 @@ def zone_ksks_zsks(server, zone, keystore=None): return ksks, zsks -def zone_keys(server, zone, keystore=None): - ksks, zsks = zone_ksks_zsks(server, zone, keystore) +def zone_ksks_zsks(server, zone, keystore=None, trash=False): + return zone_name_ksks_zsks(server, zone.name, keystore, trash) + +def zone_keys(server, zone, keystore=None, trash=False): + ksks, zsks = zone_ksks_zsks(server, zone, keystore, trash=trash) + return ksks + zsks + +def trash_keys(server, keystore=None): + ksks, zsks = zone_name_ksks_zsks(server, "--", keystore, trash=True) return ksks + zsks def check_key_count(keystore, expected): files = 0 if keystore is None else len(keystore.keys()) - compare(files, expected, "privkey count in %s" % keystore.id) + comparebr(files, expected, "privkey count in %s" % keystore.id) def check_keys_presence(keystore, keys, presence=True): if keystore is None: - isset(keys is None, f"keystore None does not contain keys {keys}") + issetbr(keys is None, f"keystore None does not contain keys {keys}") return keystore_keys = keystore.keys() word = "" if presence else "not " for key_id in keys: - isset((key_id in keystore_keys) is presence, f"key {key_id} {word}in keystore {keystore}") + issetbr((key_id in keystore_keys) is presence, f"key {key_id} {word}in keystore {keystore}") def check_keys_in_keystore(keystore, total, present, absent): if keystore is None: - isset(total == 0, f"number of keys {total} matches keystore None") - isset(present is None, f"keystore None does not contain keys {present}") + issetbr(total == 0, f"number of keys {total} matches keystore None") + issetbr(present is None, f"keystore None does not contain keys {present}") return list = keystore.keys() - compare(len(list), total, "privkey count in %s" % keystore.id) + comparebr(len(list), total, "privkey count in %s" % keystore.id) for key_id in (present or []): - isset(key_id in list, f"key {key_id} in keystore {keystore.id}") + issetbr(key_id in list, f"key {key_id} in keystore {keystore.id}") for key_id in (absent or []): - isset(key_id not in list, f"key {key_id} not in keystore {keystore.id}") + issetbr(key_id not in list, f"key {key_id} not in keystore {keystore.id}") def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not2): check_keys_in_keystore(keystore0, num0, keys0, not0) check_keys_in_keystore(kstore_pem, num1, keys1, not1) - server.ctl("zone-freeze %s" % zones[2].name, wait=True) # Avoid concurrent access to SoftHSM. + # Avoid concurrent access to SoftHSM. + server.ctl("zone-freeze %s %s" % (zones[6].name, zones[7].name), wait=True) check_keys_in_keystore(kstore_hsm, num2, keys2, not2) - server.ctl("zone-thaw %s" % zones[2].name, wait=True) + server.ctl("zone-thaw %s %s" % (zones[6].name, zones[7].name), wait=True) + +def check_keys_in_kasp(server, zone, present, absent, keystore=None): + list = zone_keys(server, zone, keystore) + for key_id in (present or []): + issetbr(key_id in list, f"key {key_id} of zone {zone.name} in KASP DB") + for key_id in (absent or []): + issetbr(key_id not in list, f"key {key_id} of zone {zone.name} not in KASP DB") + +def check_kasp(keys0, not0, keys1, not1, keys2, not2, keys3, not3, keys4, not4, + keys5, not5, keys6, not6, keys7, not7): + check_keys_in_kasp(server, zones[0], keys0, not0) + check_keys_in_kasp(server, zones[1], keys1, not1) + check_keys_in_kasp(server, zones[2], keys2, not2) + check_keys_in_kasp(server, zones[3], keys3, not3) + check_keys_in_kasp(server, zones[4], keys4, not4) + check_keys_in_kasp(server, zones[5], keys5, not5) + # Avoid concurrent access to SoftHSM. + server.ctl("zone-freeze %s %s" % (zones[6].name, zones[7].name), wait=True) + check_keys_in_kasp(server, zones[6], keys6, not6, keystore=kstore_hsm) + check_keys_in_kasp(server, zones[7], keys7, not7, keystore=kstore_hsm) + server.ctl("zone-thaw %s %s" % (zones[6].name, zones[7].name), wait=True) + +def check_trash_with_keystore(present, absent, keystore=None): + trash = trash_keys(server, keystore) + for key_id in (present or []): + issetbr(key_id in trash, f"key {key_id} in trash (KASP DB)") + for key_id in (absent or []): + issetbr(key_id not in trash, f"key {key_id} not in trash (KASP DB)") + +def check_trash(present, absent): + check_trash_with_keystore(present, absent, keystore=kstore_hsm) t = Test() server = t.server("knot") -zones = t.zone_rnd(4, records=5) +zones = t.zone_rnd(8, records=5) t.link(zones, server) kstore_def = KeystorePEM("default keystore", server_default=server) @@ -75,6 +122,11 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not kstore_hsm = KeystoreSoftHSM("keys2") kstore_hsm.link(server) +# For every type of keystore, there are zones that have the "trash bin" +# enabled and that have it disabled. Otherwise they are equal. +# In kstore_pem, there are two pairs of zones, where each pair shares +# the KSK key. + server.dnssec(zones[0]).enable = True server.dnssec(zones[0]).propagation_delay = 1 server.dnssec(zones[0]).trash_delay = 86400 @@ -82,17 +134,36 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not server.dnssec(zones[1]).enable = True server.dnssec(zones[1]).propagation_delay = 1 -server.dnssec(zones[1]).keystore = [ kstore_pem ] -server.dnssec(zones[1]).ksk_shared = True server.dnssec(zones[1]).trash_delay = 0 +# Default keystore for zones[1], not configured. server.dnssec(zones[2]).enable = True server.dnssec(zones[2]).propagation_delay = 1 -server.dnssec(zones[2]).keystore = [ kstore_hsm ] +server.dnssec(zones[2]).keystore = [ kstore_pem ] +server.dnssec(zones[2]).ksk_shared = True server.dnssec(zones[2]).trash_delay = 86400 server.dnssec(zones[3]).enable = True -server.dnssec(zones[3]).shared_policy_with = zones[1].name +server.dnssec(zones[3]).shared_policy_with = zones[2].name + +server.dnssec(zones[4]).enable = True +server.dnssec(zones[4]).propagation_delay = 1 +server.dnssec(zones[4]).keystore = [ kstore_pem ] +server.dnssec(zones[4]).ksk_shared = True +server.dnssec(zones[4]).trash_delay = 0 + +server.dnssec(zones[5]).enable = True +server.dnssec(zones[5]).shared_policy_with = zones[4].name + +server.dnssec(zones[6]).enable = True +server.dnssec(zones[6]).propagation_delay = 1 +server.dnssec(zones[6]).keystore = [ kstore_hsm ] +server.dnssec(zones[6]).trash_delay = 86400 + +server.dnssec(zones[7]).enable = True +server.dnssec(zones[7]).propagation_delay = 1 +server.dnssec(zones[7]).keystore = [ kstore_hsm ] +server.dnssec(zones[7]).trash_delay = 0 # Second server that shares keystores with the first server. server2 = t.server("knot") @@ -125,70 +196,107 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not server2.ctl("zone-thaw %s" % zones2[2].name, wait=True) server2.stop() +s2keys = keys2_zone0 + keys2_zone1 + keys2_zone2 + # Start the actual test. (server2 must stay stopped, SoftHSM doesn't like concurrent use.) server.start() serial = server.zones_wait(zones) -keys_zone0 = zone_keys(server, zones[0]) -keys_zone1_ksks, keys_zone1_zsks = zone_ksks_zsks(server, zones[1]) -keys_zone1 = keys_zone1_ksks + keys_zone1_zsks -keys_zone2 = zone_keys(server, zones[2], kstore_hsm) -keys_zone3 = zone_keys(server, zones[3]) +k0 = zone_keys(server, zones[0]) +k1 = zone_keys(server, zones[1]) +ksks2, zsks2 = zone_ksks_zsks(server, zones[2]) +k2 = ksks2 + zsks2 +k3 = zone_keys(server, zones[3]) +ksks4, zsks4 = zone_ksks_zsks(server, zones[4]) +k4 = ksks4 + zsks4 +k5 = zone_keys(server, zones[5]) +k6 = zone_keys(server, zones[6], kstore_hsm) +k7 = zone_keys(server, zones[7], kstore_hsm) ################################ # Purging keys of existing zones ################################ # When checking counts, don't forget to add number of keys from the other server. -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) -check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 4 + 2, k6 + k7, None) +check_keys(kstore_def2, 0, None, None, 6 + 4, keys2_zone0 + keys2_zone1, None, 4 + 2, keys2_zone2, None) bckdir = os.path.join(server.dir, "backup") server.ctl("zone-backup +backupdir %s" % bckdir, wait=True) # Test that keys aren't purged as a part of KASP DB purge. -server.ctl("-f zone-purge +kaspdb %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) -server.ctl("-f zone-purge %s" % zones[2].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) +server.ctl("-f zone-purge +kaspdb %s %s" % (zones[2].name, zones[4].name), wait=True) +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 4 + 2, k6 + k7, None) +server.ctl("-f zone-purge %s %s" % (zones[6].name, zones[7].name), wait=True) +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 4 + 2, k6 + k7, None) # Test that keys aren't purged in default purge. -server.ctl("-f zone-purge %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) -server.ctl("-f zone-purge +kaspdb %s" % zones[2].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) +server.ctl("-f zone-purge %s %s" % (zones[2].name, zones[4].name), wait=True) +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 4 + 2, k6 + k7, None) +server.ctl("-f zone-purge +kaspdb %s %s" % (zones[6].name, zones[7].name), wait=True) +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 4 + 2, k6 + k7, None) # Test that keys are purged when they should be, but a shared KSK key isn't affected. -server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone3, set(keys_zone1) - set(keys_zone3), 2 + 2, keys_zone2, None) -server.ctl("-f zone-purge +keys %s" % zones[2].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone3, set(keys_zone1) - set(keys_zone3), 0 + 2, None, keys_zone2) +server.ctl("-f zone-purge +keys %s %s" % (zones[2].name, zones[4].name), wait=True) +check_kasp(k0, None, k1, None, None, k2, k3, None, None, k4, k5, None, k6, None, k7, None) +check_trash(set(k2) - set(k3 + k5), k0 + k1 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 5 + 4, k2 + k3 + k5, set(k4) - set(k5), 4 + 2, k6 + k7, None) +server.ctl("-f zone-purge +keys %s %s" % (zones[6].name, zones[7].name), wait=True) +check_kasp(k0, None, k1, None, None, k2, k3, None, None, k4, k5, None, None, k6, None, k7) +check_trash(set(k2 + k6) - set(k3 + k5), k0 + k1 + k3 + k4 + k5 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 5 + 4, k2 + k3 + k5, set(k4) - set(k5), 2 + 2, k6, k7) # Test that a shared KSK key is purged with the last user. -server.ctl("-f zone-purge +keys %s" % zones[3].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 0 + 2, None, keys_zone2) +server.ctl("-f zone-purge +keys %s %s" % (zones[3].name, zones[5].name), wait=True) +check_kasp(k0, None, k1, None, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7) +check_trash(k2 + k3 + k6, k0 + k1 + k4 + k5 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 3 + 4, k2 + k3, k4 + k5, 2 + 2, k6, k7) # Test that non-defined (foreign) keys remain untouched. -check_keys(kstore_def2, 0, None, None, 0 + 4, keys2_zone0 + keys2_zone1, None, 0 + 2, keys2_zone2, None) +check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) -server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[2].name), - wait=True) +server.ctl("zone-restore +backupdir %s %s %s %s %s" % (bckdir, zones[2].name, zones[4].name, + zones[6].name, zones[7].name), wait=True) # Keys in HSM cannot be backed up/restored, but their parameters are restored back to KASP DB. -check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, None, 0 + 2, 0, keys_zone2) +check_kasp(k0, None, k1, None, k2, None, None, k3, k4, None, None, k5, k6, None, k7, None) +check_trash(set(k3) - set(k2), k0 + k1 + k2 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 5 + 4, k2 + k3 + k4, set(k5) - set(k4), 2 + 2, k6, k7) # Test that a missing key doesn't matter in keys purging. -pem_file0 = os.path.join(kstore_pem.config(), keys_zone1[0]) + ".pem" +pem_file0 = os.path.join(kstore_pem.config(), k2[0]) + ".pem" +os.remove(pem_file0) +server.ctl("-f zone-purge +keys %s" % zones[2].name, wait=True) +check_kasp(k0, None, k1, None, None, k2, None, k3, k4, None, None, k5, k6, None, k7, None) +check_trash(k2 + k3, k0 + k1 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 4 + 4, set(k2 + k3 + k4) - {k2[0]}, set([*k5, k2[0]]) - set(k4), + 2 + 2, k6, k7) + +pem_file0 = os.path.join(kstore_pem.config(), k4[0]) + ".pem" os.remove(pem_file0) -server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 0 + 2, None, keys_zone2) +server.ctl("-f zone-purge +keys %s" % zones[4].name, wait=True) +check_kasp(k0, None, k1, None, None, k2, None, k3, None, k4, None, k5, k6, None, k7, None) +check_trash(k2 + k3, k0 + k1 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 2 + 4, set(k2 + k3) - {k2[0]}, k4 + k5 + [k2[0]], 2 + 2, k6, k7) # Test that a failed delete returns an error. -server.ctl("zone-restore +backupdir %s %s" % (bckdir, zones[1].name), wait=True) -server.zone_wait(zones[1]) -check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 0 + 2, None, keys_zone2) +server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[2].name, zones[4].name), wait=True) +server.zone_wait(zones[4]) +check_kasp(k0, None, k1, None, k2, None, None, k3, k4, None, None, k5, k6, None, k7, None) +check_trash(set(k3) - set(k2), k0 + k1 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 5 + 4, k2 + k3 + k4, set(k5) - set(k4), 2 + 2, k6, k7) os.chmod(kstore_pem.config(), 0o550) # Read-only PEM directory. try: - server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) + server.ctl("-f zone-purge +keys %s" % zones[4].name, wait=True) test_failed = True # The directory mode needs to be reset for the test maintenance. except: @@ -198,172 +306,237 @@ def check_keys(keystore0, num0, keys0, not0, num1, keys1, not1, num2, keys2, not set_err("FAILED DELETE NOT REPORTED") # Test that the key isn't purged from a keystore not defined for the zone. -check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 0 + 2, None, keys_zone2) +check_kasp(k0, None, k1, None, k2, None, None, k3, k4, None, None, k5, k6, None, k7, None) +check_trash(set(k3) - set(k2), k0 + k1 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 5 + 4, k2 + k3 + k4, set(k5) - set(k4), 2 + 2, k6, k7) +# Make zones[2] and zones[4] use a different keystore while keeping zones[3] and zones[5] as is, +# but not using shared KSK's. kstore_pem2 = KeystorePEM("keys3") -server.dnssec(zones[1]).keystore = [ kstore_pem2 ] +server.dnssec(zones[2]).keystore = [ kstore_pem2 ] +server.dnssec(zones[4]).keystore = [ kstore_pem2 ] server.dnssec(zones[3]).shared_policy_with = None server.dnssec(zones[3]).ksk_shared = False server.dnssec(zones[3]).propagation_delay = 1 server.dnssec(zones[3]).keystore = [ kstore_pem ] server.dnssec(zones[3]).trash_delay = 0 + +server.dnssec(zones[5]).shared_policy_with = None +server.dnssec(zones[5]).ksk_shared = False +server.dnssec(zones[5]).propagation_delay = 1 +server.dnssec(zones[5]).keystore = [ kstore_pem ] +server.dnssec(zones[5]).trash_delay = 0 server.gen_confile() server.reload() -server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[3].name), wait=True) -server.zones_wait([zones[0], zones[1], zones[3]]) +# Wait for server startup, for zones[5] new ZKS key is created, which has been missing now. +server.zones_wait([zones[0], zones[2], zones[3], zones[4], zones[5]]) +server.ctl("zone-restore +backupdir %s %s %s %s %s" % (bckdir, zones[2].name, zones[3].name, + zones[4].name, zones[5].name), wait=True) +server.zones_wait([zones[0], zones[2], zones[3], zones[4], zones[5]]) + # There are two instances of the same KSK key now, which was shared originally. -# Keys of zones[1] remained as orphans in kstore_pem. -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) -check_keys_in_keystore(kstore_pem2, 2, keys_zone1, None) -server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) -# The KSK key of zones[1] is still in kstore_pem2, because the key with same ID is -# used by zone[3]. A different copy of the key, though. -check_keys_in_keystore(kstore_pem2, 1, keys_zone1_ksks, keys_zone1_zsks) -# There are keys_zone3, orphaned keys_zone1 and keys from server2 in kstore_pem. -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) -check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 0 + 2, keys2_zone2, None) - -server.ctl("-f zone-purge +keys %s" % zones[3].name, wait=True) -# The shared KSK removed, the orphaned ZSK from zones[1] still remains in kstore_pem. -check_keys(kstore_def, 2, keys_zone0, None, 1 + 4, keys_zone1_zsks, set(keys_zone3) - set(keys_zone1), 0 + 2, None, keys_zone2) -check_keys(kstore_def2, 0, None, None, 1 + 4, keys2_zone0 + keys2_zone1, None, 0 + 2, keys2_zone2, None) -check_keys_in_keystore(kstore_pem2, 1, keys_zone1_ksks, keys_zone1_zsks) - -server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[3].name), - wait=True) -server.zones_wait([zones[0], zones[1], zones[3]]) -# The orphaned ZSK from zones[1] still remains in kstore_pem. -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone3 + keys_zone1_zsks, None, 0 + 2, None, keys_zone2) -check_keys_in_keystore(kstore_pem2, 2, keys_zone1, None) +# Keys of zones[2] remained as orphans in kstore_pem. +# In kstore_pem2, there are 2 generated and then deleted keys of zones[2] in kstore_pem2 (as trash now). +# For zones[5], there was also a recently generated and then deleted ZSK key (set not to be stored in +# the trash bin). +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 2 + 2, k6, k7) +check_keys_in_keystore(kstore_pem2, 4, k2 + k4, None) + +server.ctl("-f zone-purge +keys %s %s" % (zones[2].name, zones[4].name), wait=True) +# The KSK key of zones[2] and zones[4] are still in kstore_pem2, because the keys with same ID's are +# used by zone[3] and zones[5]. A different copies of the keys, though. +check_keys_in_keystore(kstore_pem2, 3, ksks2 + zsks2, zsks4) +# There are keys k3 and k5, orphaned keys k2 and k4 and keys from server2 in kstore_pem. +check_kasp(k0, None, k1, None, None, k2, k3, None, None, k4, k5, None, k6, None, k7, None) +check_trash(set(k2) - set(k3), k0 + k1 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 2 + 2, k6, k7) +check_keys(kstore_def2, 0, None, None, 6 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) + +server.ctl("-f zone-purge +keys %s %s" % (zones[3].name, zones[5].name), wait=True) +# The shared KSK removed, the orphaned ZSK's from zones[2] and zones[4] still remain in kstore_pem. +check_kasp(k0, None, k1, None, None, k2, None, k3, None, k4, None, k5, k6, None, k7, None) +check_trash(set(k2) - set(k3), k0 + k1 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 2 + 4, zsks2, set(k3) - set(k2), 2 + 2, k6, k7) +check_keys(kstore_def2, 0, None, None, 2 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) +check_keys_in_keystore(kstore_pem2, 3, k2 + ksks4, zsks4) + +# Restore and verify. +server.ctl("zone-restore +backupdir %s %s %s %s %s" % (bckdir, zones[2].name, zones[3].name, + zones[4].name, zones[5].name), wait=True) +server.zones_wait([zones[0], zones[2], zones[3], zones[4], zones[5]]) +# The orphaned ZSK's from zones[2] and zones[4] still remain in kstore_pem. +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 2 + 2, k6, k7) +check_keys(kstore_def2, 0, None, None, 6 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) +check_keys_in_keystore(kstore_pem2, 4, k2 + k4, None) ####################### # Purging orphaned keys ####################### # Revert to the original configuration and restore data (except keys in HSM). -server.dnssec(zones[1]).keystore = [ kstore_pem ] -server.dnssec(zones[3]).shared_policy_with = zones[1].name +server.dnssec(zones[2]).keystore = [ kstore_pem ] +server.dnssec(zones[3]).shared_policy_with = zones[2].name +server.dnssec(zones[4]).keystore = [ kstore_pem ] +server.dnssec(zones[5]).shared_policy_with = zones[4].name server.gen_confile() server.reload() -server.zones_wait([zones[0], zones[1], zones[3]]) - -server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[3].name), wait=True) -server.zones_wait([zones[0], zones[1], zones[3]]) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) -check_keys_in_keystore(kstore_pem2, 2, keys_zone1, None) - -# Deconfigure zones[1] and zones[3] -- create orphans. +server.zones_wait([zones[0], zones[2], zones[3], zones[4], zones[5]]) + +server.ctl("zone-restore +backupdir %s %s %s %s %s" % (bckdir, zones[2].name, zones[3].name, + zones[4].name, zones[5].name), wait=True) +server.zones_wait([zones[0], zones[2], zones[3], zones[4], zones[5]]) +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 2 + 2, k6, k7) +check_keys(kstore_def2, 0, None, None, 6 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) +check_keys_in_keystore(kstore_pem2, 4, k2 + k4, None) + +# Deconfigure zones[2], zones[3], and zones[4] -- create orphans. confsock = server.ctl_sock_rnd() server.ctl("conf-begin", custom_parm=confsock) -server.ctl("conf-unset zone[%s]" % zones[1].name, custom_parm=confsock) +server.ctl("conf-unset zone[%s]" % zones[2].name, custom_parm=confsock) server.ctl("conf-unset zone[%s]" % zones[3].name, custom_parm=confsock) +server.ctl("conf-unset zone[%s]" % zones[4].name, custom_parm=confsock) server.ctl("conf-commit", custom_parm=confsock) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 2 + 2, k6, k7) # Test that the orphan keys aren't purged in regular keys purge. try: - server.ctl("-f zone-purge +keys %s" % zones[1].name, wait=True) + server.ctl("-f zone-purge +keys %s %s" % (zones[2].name, zones[4].name), wait=True) set_err("PURGING FROM UNCONFIGURED ZONE") except: pass -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 2 + 2, k6, k7) # Test that keys aren't purged in KASP DB orphan purge. -server.ctl("-f zone-purge +orphan +kaspdb %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) +server.ctl("-f zone-purge +orphan +kaspdb %s %s" % (zones[2].name, zones[4].name), wait=True) +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 2 + 2, k6, k7) # Test that keys aren't purged in default orphan purge. -server.ctl("-f zone-purge +orphan %s" % zones[1].name, wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) - -# Test that a failed orphan delete returns an error. -os.chmod(kstore_pem.config(), 0o550) # Read-only PEM directory. -try: - server.ctl("-f zone-purge +orphan +keys %s" % zones[1].name, wait=True) - test_failed = True - # The directory mode needs to be reset for the test maintenance. -except: - test_failed = False -os.chmod(kstore_pem.config(), 0o750) # Reset the PEM directory mode. -if test_failed: - set_err("FAILED ORPHAN DELETE NOT REPORTED") -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 0 + 2, None, keys_zone2) -# Check what was removed from KASP DB, it depends on records order in KASP DB. -# The shared KSK is orphaned in both zones! -keys_zone1_ksks_now, keys_zone1_zsks_now = zone_ksks_zsks(server, zones[1]) -zsk_deleted_first = (keys_zone1_ksks == keys_zone1_ksks_now) +server.ctl("-f zone-purge +orphan %s %s" % (zones[2].name, zones[4].name), wait=True) +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 2 + 2, k6, k7) # Test that orphaned keys are purged, but not orphans from other zones. -server.ctl("-f zone-purge +orphan +keys %s" % zones[3].name, wait=True) -if zsk_deleted_first: - # keys_zone1_zsks were deleted first from KASP DB, keys_zone1_ksks were therefore kept. - check_keys(kstore_def, 2, keys_zone0, None, 2 + 4, keys_zone1, set(keys_zone3) - set(keys_zone1), 0 + 2, None, keys_zone2) -else: - # keys_zone1_ksks were deleted first from KASP DB. - check_keys(kstore_def, 2, keys_zone0, None, 1 + 4, set(keys_zone1) - set(keys_zone3), keys_zone3, 0 + 2, None, keys_zone2) +server.ctl("-f zone-purge +orphan +keys %s" % zones[4].name, wait=True) +check_kasp(k0, None, k1, None, k2, None, k3, None, None, k4, k5, None, k6, None, k7, None) +check_trash(set(k4) - set(k5), k0 + k1 + k2 + k3 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 6 + 4, k2 + k3 + k4 + k5, None, 2 + 2, k6, k7) # Test that a missing key doesn't matter in orphan keys purging and that orphan keys are purged. -pem_file0 = os.path.join(kstore_pem.config(), keys_zone1_zsks[0]) + ".pem" +pem_file0 = os.path.join(kstore_pem.config(), zsks2[0]) + ".pem" os.remove(pem_file0) # Test that keys are purged in orphan keys purge. server.ctl("-f zone-purge +orphan +keys --", wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 0 + 4, None, keys_zone1 + keys_zone3, 0 + 2, None, keys_zone2) +check_kasp(k0, None, k1, None, None, k2, None, k3, None, k4, k5, None, k6, None, k7, None) +check_trash(set(k2 + k3 + k4) - set(k5), k0 + k1 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 5 + 4, set(k2 + k3 + k4 + k5) - set(zsks2), zsks2, 2 + 2, k6, k7) -#################### -# Use of a trash bin -#################### +############################################## +# Delete of keys and cleaning of the trash bin +############################################## -# Restore config, zones and data (except keys in HSM). -server.ctl("-f zone-purge +keys %s" % zones[2].name, wait=True) +# Restore config, zones, and data (except keys in HSM). +server.ctl("-f zone-purge +keys %s %s" % (zones[6].name, zones[7].name), wait=True) server.reload() -server.zones_wait([zones[0], zones[1], zones[3]]) -server.ctl("zone-restore +backupdir %s %s %s" % (bckdir, zones[1].name, zones[3].name), wait=True) -server.ctl("zone-restore +zonefile +nokaspdb +backupdir %s %s" % (bckdir, zones[2].name), wait=True) +server.zones_wait([zones[0], zones[1], zones[2], zones[3], zones[4], zones[5]]) +# Six additional keys are generated, three for zones[2] together with zones[3], +# one for each of zones[4], zones[6], and zones[7]. +server.ctl("zone-restore +backupdir %s %s %s %s %s" % (bckdir, zones[2].name, zones[3].name, + zones[4].name, zones[5].name), wait=True) +# As a result of restore, three recently generated keys from zones[2] and zones[3] have been +# moved to trash, new key from zones[4] has been deleted. +server.ctl("zone-restore +zonefile +nokaspdb +backupdir %s %s %s" % + (bckdir, zones[6].name, zones[7].name), wait=True) server.zones_wait(zones) -keys_zone2 = zone_keys(server, zones[2], kstore_hsm) # New generated zones[2] keys in HSM. -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) -check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 2 + 2, keys2_zone2, None) +k6old = k6 +k7old = k7 +k6 = zone_keys(server, zones[6], kstore_hsm) # New generated zones[6] keys in HSM. +k7 = zone_keys(server, zones[7], kstore_hsm) # New generated zones[7] keys in HSM. +check_kasp(k0, None, k1, None, k2, None, k3, None, k4, None, k5, None, k6, None, k7, None) +check_trash(None, k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 4, k0 + k1, None, 9 + 4, k2 + k3 + k4 + k5, None, 6 + 2, k6 + k7 + k6old, k7old) +check_keys(kstore_def2, 0, None, None, 9 + 4, keys2_zone0 + keys2_zone1, None, 6 + 2, keys2_zone2, None) -# Activate trash bin for zones zones[1] and zones[3]. -server.dnssec(zones[1]).trash_delay = 86400 -server.dnssec(zones[3]).trash_delay = 86400 -server.gen_confile() # Needed by keymgr. -# Skipping server reload to avoid delays because of Valgrind (don't slow down the test). -server.ctl("conf-begin", custom_parm=confsock) -server.ctl("conf-set policy[%s].trash-delay 86400" % zones[1].name, custom_parm=confsock) -server.ctl("conf-set policy[%s].trash-delay 86400" % zones[3].name, custom_parm=confsock) -server.ctl("conf-commit", custom_parm=confsock) -server.ctl("zone-reload %s %s" % (zones[1].name, zones[3].name), custom_parm=confsock) -server.zones_wait(zones) -server.ctl("zone-freeze", wait=True) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) - -# Test that deleted keys end in the trash bin (i.e. they remain in keystores). keys_zone0_ksks_now, keys_zone0_zsks_now = zone_ksks_zsks(server, zones[0]) keys_zone1_ksks_now, keys_zone1_zsks_now = zone_ksks_zsks(server, zones[1]) -keys_zone2_ksks_now, keys_zone2_zsks_now = zone_ksks_zsks(server, zones[2], kstore_hsm) +keys_zone2_ksks_now, keys_zone2_zsks_now = zone_ksks_zsks(server, zones[2]) keys_zone3_ksks_now, keys_zone3_zsks_now = zone_ksks_zsks(server, zones[3]) +keys_zone4_ksks_now, keys_zone4_zsks_now = zone_ksks_zsks(server, zones[4]) +keys_zone5_ksks_now, keys_zone5_zsks_now = zone_ksks_zsks(server, zones[5]) +keys_zone6_ksks_now, keys_zone6_zsks_now = zone_ksks_zsks(server, zones[6], kstore_hsm) +keys_zone7_ksks_now, keys_zone7_zsks_now = zone_ksks_zsks(server, zones[7], kstore_hsm) + +# Test that deleted keys end in the trash bin according to respective zone's policy. +# Some keys are not being deleted (they are commented out) intentionally! Keymgr.run_check(server.confile, zones[0].name, "delete", keys_zone0_ksks_now[0]) -Keymgr.run_check(server.confile, zones[0].name, "delete", keys_zone0_zsks_now[0]) +# Keymgr.run_check(server.confile, zones[0].name, "delete", keys_zone0_zsks_now[0]) Keymgr.run_check(server.confile, zones[1].name, "delete", keys_zone1_ksks_now[0]) -# Keep this: Keymgr.run_check(server.confile, zones[1].name, "delete", keys_zone1_zsks_now[0]) -Keymgr.run_check(server.confile, zones[2].name, "delete", keys_zone2_ksks_now[0], env=kstore_hsm.env()) -# Kepp this: Keymgr.run_check(server.confile, zones[2].name, "delete", keys_zone2_zsks_now[0], env=kstore_hsm.env()) -Keymgr.run_check(server.confile, zones[3].name, "delete", keys_zone3_ksks_now[0]) +Keymgr.run_check(server.confile, zones[1].name, "delete", keys_zone1_zsks_now[0]) +Keymgr.run_check(server.confile, zones[2].name, "delete", keys_zone2_ksks_now[0]) +Keymgr.run_check(server.confile, zones[2].name, "delete", keys_zone2_zsks_now[0]) +# Keymgr.run_check(server.confile, zones[3].name, "delete", keys_zone3_ksks_now[0]) Keymgr.run_check(server.confile, zones[3].name, "delete", keys_zone3_zsks_now[0]) -# Verify that the keys are removed from the zones, but remain in keystores. -compare(zone_ksks_zsks(server, zones[0]), ([], []), "deleted keys from zone %s" % zones[0].name) -compare(zone_ksks_zsks(server, zones[1]), ([], keys_zone1_zsks_now), "deleted keys from zone %s" % zones[1].name) -compare(zone_ksks_zsks(server, zones[2], kstore_hsm), ([], keys_zone2_zsks_now), "deleted keys from zone %s" % zones[2].name) -compare(zone_ksks_zsks(server, zones[3]), ([], []), "deleted keys from zone %s" % zones[3].name) -check_keys(kstore_def, 2, keys_zone0, None, 3 + 4, keys_zone1 + keys_zone3, None, 2 + 2, keys_zone2, None) +# Keymgr.run_check(server.confile, zones[4].name, "delete", keys_zone4_ksks_now[0]) +Keymgr.run_check(server.confile, zones[4].name, "delete", keys_zone4_zsks_now[0]) +Keymgr.run_check(server.confile, zones[5].name, "delete", keys_zone5_ksks_now[0]) +# Keymgr.run_check(server.confile, zones[5].name, "delete", keys_zone5_zsks_now[0]) +# Keymgr.run_check(server.confile, zones[6].name, "delete", keys_zone6_ksks_now[0], env=kstore_hsm.env()) +Keymgr.run_check(server.confile, zones[6].name, "delete", keys_zone6_zsks_now[0], env=kstore_hsm.env()) +Keymgr.run_check(server.confile, zones[7].name, "delete", keys_zone7_ksks_now[0], env=kstore_hsm.env()) +Keymgr.run_check(server.confile, zones[7].name, "delete", keys_zone7_zsks_now[0], env=kstore_hsm.env()) -# Test that "zone-purge -f +orphan +keys --" cleans the trash bin (removes trash from keystores). -server.ctl("-f zone-purge +orphan +keys --", wait=True) -check_keys(kstore_def, 0, None, keys_zone0, 1 + 4, keys_zone1_zsks_now, set(keys_zone1 + keys_zone3) - set(keys_zone1_zsks_now), - 1 + 2, keys_zone2_zsks_now, set(keys_zone2) - set (keys_zone2_zsks_now)) -check_keys(kstore_def2, 0, None, None, 1 + 4, keys2_zone0 + keys2_zone1, None, 1 + 2, keys2_zone2, None) +# Verify that the keys are removed from the zones, but remain in keystores. +check_kasp(keys_zone0_zsks_now, keys_zone0_ksks_now, None, k1, + None, k2, keys_zone3_ksks_now, keys_zone3_zsks_now, + keys_zone4_ksks_now, keys_zone4_zsks_now, keys_zone5_zsks_now, keys_zone5_ksks_now, + keys_zone6_ksks_now, keys_zone6_zsks_now, None, k7) +check_trash(keys_zone0_ksks_now + keys_zone2_zsks_now + keys_zone3_zsks_now + keys_zone6_zsks_now, + keys_zone0_zsks_now + k1 + keys_zone2_ksks_now + keys_zone3_ksks_now + k4 + k5 + k7 + s2keys) +check_keys(kstore_def, 2, k0, k1, + 8 + 4, k2 + k3 + k5, set(k4) - set(k5), + 4 + 2, k6 + k6old, k7 + k7old) +check_keys(kstore_def2, 0, None, None, 8 + 4, keys2_zone0 + keys2_zone1, None, 4 + 2, keys2_zone2, None) + +# Test removal of specified zone's keys from the trash. +Keymgr.run_check(server.confile, zones[2].name, "trash-discard", "--", env=kstore_hsm.env()) +check_kasp(keys_zone0_zsks_now, keys_zone0_ksks_now, None, k1, + None, k2, keys_zone3_ksks_now, keys_zone3_zsks_now, + keys_zone4_ksks_now, keys_zone4_zsks_now, keys_zone5_zsks_now, keys_zone5_ksks_now, + keys_zone6_ksks_now, keys_zone6_zsks_now, None, k7) +check_trash(keys_zone0_ksks_now + keys_zone3_zsks_now + keys_zone6_zsks_now, + keys_zone0_zsks_now + k1 + keys_zone2_ksks_now + keys_zone3_ksks_now + k4 + k5 + k7 + s2keys) +check_keys(kstore_def, 2, k0, k1, + 8 + 4, k2 + k3 + k5, set(k4) - set(k5), + 4 + 2, k6 + k6old, k7 + k7old) +check_keys(kstore_def2, 0, None, None, 8 + 4, keys2_zone0 + keys2_zone1, None, 4 + 2, keys2_zone2, None) + +# Test that "keymgr -- trash-discard --" cleans the trash bin (removes trash from keystores). +Keymgr.run_check(server.confile, "--", "trash-discard", "--", env=kstore_hsm.env()) +# Six additional keys, already removed from the zones, have been discartded too. +check_kasp(keys_zone0_zsks_now, keys_zone0_ksks_now, None, k1, + None, k2, keys_zone3_ksks_now, keys_zone3_zsks_now, + keys_zone4_ksks_now, keys_zone4_zsks_now, keys_zone5_zsks_now, keys_zone5_ksks_now, + keys_zone6_ksks_now, keys_zone6_zsks_now, None, k7) +check_trash(None, + k0 + k1 + k2 + k3 + k4 + k5 + k6 + k7 + s2keys) +check_keys(kstore_def, 1, keys_zone0_zsks_now, keys_zone0_ksks_now + k1, + 3 + 4, keys_zone3_ksks_now + k5, + keys_zone2_zsks_now + keys_zone3_zsks_now + keys_zone4_zsks_now, + 1 + 2, keys_zone6_ksks_now, keys_zone6_zsks_now + k7 + k6old + k7old) +check_keys(kstore_def2, 0, None, None, 3 + 4, keys2_zone0 + keys2_zone1, None, 1 + 2, keys2_zone2, None) t.end() From 316900cfca429d1ea6122f1797c906e0fb966f88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Sun, 3 May 2026 12:10:46 +0200 Subject: [PATCH 620/675] tests-extra: add a new test dnssec/trash_bin For full testing, this test requires knotd binary built with the following option: ./configure --with-gc-interval=30 ... For good testing of the "trash bin" functionality, this option is encouraged for all tests! There are no adverse side effects. --- tests-extra/tests/dnssec/trash_bin/test.py | 151 +++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 tests-extra/tests/dnssec/trash_bin/test.py diff --git a/tests-extra/tests/dnssec/trash_bin/test.py b/tests-extra/tests/dnssec/trash_bin/test.py new file mode 100644 index 0000000000..200b532e7d --- /dev/null +++ b/tests-extra/tests/dnssec/trash_bin/test.py @@ -0,0 +1,151 @@ +#!/usr/bin/env python3 + +""" +Test of DNSSEC "trash bin". +""" + +from dnstest.keys import Keymgr +from dnstest.keystore import KeystorePEM +from dnstest.test import Test +from dnstest.utils import * +from subprocess import run, PIPE +import random +import time + +def zone_ksks_zsks(server, zone, keystore=None, trash=False): + env = keystore.env() if keystore is not None else None + command = "list" if not trash else "trash-list" + _, keys, _ = Keymgr.run_check(server.confile, zone.name, command, env=env) + + ksks, zsks = [], [] + for key in keys.strip().splitlines(): + cols = key.split() + if cols[1] == "ksk=yes": + ksks.append(cols[0]) + if cols[2] == "zsk=yes": + zsks.append(cols[0]) + + return ksks, zsks + +def zone_keys(server, zone, keystore=None, trash=False): + ksks, zsks = zone_ksks_zsks(server, zone, keystore, trash=trash) + return ksks + zsks + +def zone_trash_keys(server, zone, keystore=None): + return zone_keys(server, zone, keystore, trash=True) + +# Immediate test break is needed for debugging. +def issetbr(value, name): + isset(value, name, fatal=True) + +def comparebr(value, expected, name): + compare(value, expected, name, fatal=True) + +def check_key(server, zone, keystore, keyid, exists=True, trash=False): + if exists and trash: + raise Failed("Conflicting parameters") + + any = exists or trash + issetbr((keyid in zone_keys(server, zone)) is exists, + f"key {keyid} %sin KASP" % "" if exists else "not ") + issetbr((keyid in zone_trash_keys(server, zone)) is trash, + f"key {keyid} %sin trash bin" % "" if trash else "not ") + issetbr((keyid in keystore.keys()) is any, + f"key {keyid} %sin keystore" % "" if any else "not ") + +def check_gc_interval(server): + res = run([server.daemon_bin, '-VV'], stdout=PIPE) + for line in res.stdout.decode('ascii').split("\n"): + if " Configure: " in line: + return True if "'--with-gc-interval=30'" in line else False + raise Failed("Malformed configuration summary") + +t = Test() + +master = t.server("knot") +zones = t.zone_rnd(1, records=5) +t.link(zones, master) + +kstore = KeystorePEM("default keystore", server_default=master) + +# Fast (7 sec) automatic ZSK rollover. +master.dnssec(zones).enable = True +master.dnssec(zones).manual = False +master.dnssec(zones).dnskey_ttl = 1 +master.dnssec(zones).zone_max_ttl = 2 +master.dnssec(zones).propagation_delay = 1 +master.dnssec(zones).zsk_lifetime = 5 +master.dnssec(zones).trash_delay = 60 + +t.start() + +zone = zones[0] +master.zone_wait(zone) +comparebr(zone_trash_keys(master, zone), [], "trash bin must be empty on test startup") + +# Let the ZSK roll, fill the trash bin and collect all ID's of generated keys. +# The background GC periodic intervals start with the first ZSK rollover, not earlier! +all_keys = set() +for i in range(25): + all_keys.update(zone_keys(master, zone)) + t.sleep(2) + +master.ctl("zone-freeze", wait=True) + +all_keys.update(zone_keys(master, zone)) +ksks, zsks = zone_ksks_zsks(master, zone) # We need list of KSK's. +keys = ksks + zsks +trash = zone_trash_keys(master, zone) + +# Check that move to the trash bin instead of delete works. +issetbr(len(trash) != 0, "some keys have been deleted") +issetbr(len(keys) != 0, "not all keys have been deleted") +comparebr(all_keys, set(keys + trash), "all keys metadata found (active and deleted)") +keystore_keys = kstore.keys() +comparebr(all_keys, set(keystore_keys), "all keys found in keystore (active and deleted)") + +# Check that 'import-trash' works. +ksk = ksks[0] +check_key(master, zone, kstore, ksk, exists=True, trash=False) + +Keymgr.run_check(master.confile, zone.name, "delete", ksk) +check_key(master, zone, kstore, ksk, exists=False, trash=True) + +_, stdout, _ = Keymgr.run_check(master.confile, zone.name, "import-trash", ksk) +ksk_reimport = stdout.strip().splitlines()[0] +comparebr(ksk_reimport, ksk, f"deleted KSK key {ksk} reimported with the same Key ID") +check_key(master, zone, kstore, ksk, exists=True, trash=False) +cur_keys = zone_keys(master, zone) +cur_trash = zone_trash_keys(master, zone) +comparebr(set(keys), set(cur_keys), "keys did not change after delete/import-trash") +comparebr(set(trash), set(cur_trash), "trash did not change after delete/import-trash") +master.ctl("zone-sign %s" % zone.name, wait=True) +cur_ksks, cur_zsks = zone_ksks_zsks(master, zone) +comparebr(set(ksks), set(cur_ksks), + "set of KSK's did not change after delete/import-trash/zone-sign") + +# Check that 'trash-discard' works. +zsk_discarded = random.choice(trash) +Keymgr.run_check(master.confile, zone.name, "trash-discard", zsk_discarded) +check_key(master, zone, kstore, zsk_discarded, exists=False, trash=False) +cur_trash = list(set(trash) - {zsk_discarded}) + +master.ctl("zone-thaw", wait=True) + +# The following checks require compile-time support in the knotd binary. +# -DTRASH_GC_INTERVAL=30 (./configure --with-gc-interval=30 ...) +if not check_gc_interval(master): + check_log("TRASH_GC_INTERVAL not tuned, skipping trash garbage collector test") +else: + # Let all known trash keys time out and wait for the next trash GC run. + t.sleep(80) + + new_trash = zone_trash_keys(master, zone) + new_kst_keys = kstore.keys() + + # Check that the background garbage collector works. + for key_id in cur_trash: + issetbr(key_id not in new_trash, f"key {key_id} removed from trash bin") + issetbr(key_id not in new_kst_keys, f"key {key_id} removed from trash bin keystore") + +t.end() From c5118c16c5562665543990afec129c8f769c3471 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Tue, 26 May 2026 16:56:32 +0200 Subject: [PATCH 621/675] doc/operation: describe cleanup of removed legacy DNSSEC keys --- doc/operation.rst | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/doc/operation.rst b/doc/operation.rst index 9a24dc9121..d30494fd35 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -1434,6 +1434,48 @@ If needed, the *"trash bin"* can be emptied at will with ``keymgr trash-discard` Contents of the *"trash bin*" is not part of :ref:`online backup` and restore. +.. _Cleanup of removed legacy DNSSEC keys: + +Cleanup of removed legacy DNSSEC keys +===================================== + +In Knot DNS releases prior to 3.6.0, removed DNSSEC keys weren't moved to the "trash +bin", and with the exception of automatic rollover, they weren't deleted from the +keystore either — as a safety measure. These legacy keys may be deleted using external +tools, like in the following example sequence of shell commands. + +.. CAUTION:: + If the keystore is shared with another application, care must be taken not to + delete keys used by that application or other data in the keystore. The example + scripts below delete every keys not used by the current Knot DNS configuration! + As always, make a backup first! + +Example for a PEM keystore:: + + $ KEYSTORE=/var/lib/knot/keys/keys + $ knotc -b zone-freeze + $ keymgr -l | while read zone; do keymgr "${zone}" list; done | \ + sed 's/ .*$/.pem\$/' | sort | uniq > ~/active_keys.pattern + $ keymgr -- trash-list | sed 's/ .*$/.pem\$/' >> ~/active_keys.pattern # Not needed in older releases. + $ find $KEYSTORE -maxdepth 1 -type f | grep -v -f ~/active_keys.pattern | xargs rm + $ knotc -b zone-thaw + +Example for a PKCS #11 keystore (using the ``p11tool`` utility from +`GnuTLS `_ suite):: + + $ MYPIN=1234 + $ MYTOKEN="pkcs11:token=knot;pin-value=$MYPIN /usr/lib64/pkcs11/libsofthsm2.so" + $ knotc -b zone-freeze + $ keymgr -l | while read zone; do keymgr "${zone}" list; done | \ + sed 's/ .*$//' | sort | uniq > ~/active_keys + $ keymgr -- trash-list | sed 's/ .*$//' >> ~/active_keys # Not needed in older releases. + $ sed 's/../%&/g;s/[a-z]/\U&/g;s/^/id=/;s/$/\;/' < ~/active_keys > ~/active_keys.pattern + $ p11tool --login --list-all-privkeys --only-urls $MYTOKEN | \ + grep -Fv -f ~/active_keys.pattern | \ + xargs -n 1 p11tool --login --set-pin $MYPIN --batch --delete | \ + grep -v -e '^$' -e '^[0-9]* objects deleted$' + $ knotc -b zone-thaw + .. _Controlling a running daemon: Daemon controls From 6c00b1834a767b2d7429eeb2b845f1e39e2780e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Wed, 3 Jun 2026 22:45:02 +0200 Subject: [PATCH 622/675] doc/operation: describe the zone removal procedure --- doc/operation.rst | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/doc/operation.rst b/doc/operation.rst index d30494fd35..077bf5b498 100644 --- a/doc/operation.rst +++ b/doc/operation.rst @@ -684,6 +684,28 @@ expired zone on a primary or a manually expired catalog zone becomes valid again after a server configuration is reloaded or the :doc:`knotd` process is restarted, provided that the zone data hasn't been removed. +.. _Zone removal: + +Zone removal +============ + +The recommend way to remove a zone from the server consists of the following +two steps: + +1. remove the zone from the server configuration, for example:: + + $ knotc conf-begin + $ knotc conf-unset 'zone[example.com]' + $ knotc conf-comit + +2. purge the orphaned zone, for example:: + + $ knotc -f zone-purge example.com +orphan # Purges everything but keys. + $ knotc -f zone-purge example.com +orphan +keys # Purges the keys. + +As an alternative procedure, the zone may be frozen, then purged and deconfigured. +No zone thaw in that case. + .. _DNSSEC Key states: DNSSEC key states From 405f3c0373b3ebb8a6bb2cec89cb5e8641391c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Thu, 4 Jun 2026 16:20:35 +0200 Subject: [PATCH 623/675] conf: fix a comment typo --- src/knot/conf/conf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/conf/conf.h b/src/knot/conf/conf.h index 94101d3240..ecf91d9565 100644 --- a/src/knot/conf/conf.h +++ b/src/knot/conf/conf.h @@ -216,7 +216,7 @@ static inline conf_val_t conf_mod_get( * \param[in] conf Configuration. * \param[in] txn Configuration DB transaction. * \param[in] key1_name Item name. - * \param[in] dname Zone name. + * \param[in] dname Zone name. * * \return Item value. */ From 0822fccb07e26605d673fc9c018633b307af4c93 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Tue, 16 Jun 2026 15:22:08 +0200 Subject: [PATCH 624/675] zone/events+ctl: refactoring: forced/user and more are now event flags/param --- src/knot/ctl/commands.c | 46 ++++++++++++-------------- src/knot/events/events.c | 27 +++++++-------- src/knot/events/events.h | 33 +++++++++++++----- src/knot/events/handlers.h | 30 ++++++++--------- src/knot/events/handlers/backup.c | 2 +- src/knot/events/handlers/dnskey_sync.c | 2 +- src/knot/events/handlers/dnssec.c | 8 ++--- src/knot/events/handlers/ds_check.c | 2 +- src/knot/events/handlers/ds_push.c | 2 +- src/knot/events/handlers/expire.c | 2 +- src/knot/events/handlers/flush.c | 4 +-- src/knot/events/handlers/freeze_thaw.c | 4 +-- src/knot/events/handlers/load.c | 2 +- src/knot/events/handlers/notify.c | 2 +- src/knot/events/handlers/purge.c | 2 +- src/knot/events/handlers/refresh.c | 5 ++- src/knot/events/handlers/update.c | 2 +- src/knot/events/handlers/validate.c | 4 +-- src/knot/zone/zone.c | 13 ++++---- src/knot/zone/zone.h | 9 +---- src/knot/zone/zonedb.c | 2 +- 21 files changed, 102 insertions(+), 101 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 567500ceab..239f087475 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -112,7 +112,7 @@ static bool eval_backup_filters(ctl_args_t *args, knot_backup_params_t *filters, } static int schedule_trigger(zone_t *zone, ctl_args_t *args, zone_event_type_t event, - bool user) + zone_evflag_t flags) { int ret = KNOT_EOK; @@ -121,11 +121,9 @@ static int schedule_trigger(zone_t *zone, ctl_args_t *args, zone_event_type_t ev zone->control_update != NULL) { return KNOT_TXN_EEXISTS; } - ret = zone_events_schedule_blocking(zone, event, user); - } else if (user) { - zone_events_schedule_user(zone, event); + ret = zone_events_schedule_blocking(zone, event, flags); } else { - zone_events_schedule_now(zone, event); + zone_events_schedule_now_flags(zone, event, flags); } return ret; @@ -480,7 +478,7 @@ static int zone_reload(zone_t *zone, _unused_ ctl_args_t *args) return zone_reload_modules(conf(), args->server, zone->name); } - return schedule_trigger(zone, args, ZONE_EVENT_LOAD, true); + return schedule_trigger(zone, args, ZONE_EVENT_LOAD, ZONE_EVFLAG_USER); } static int zone_refresh(zone_t *zone, _unused_ ctl_args_t *args) @@ -491,7 +489,7 @@ static int zone_refresh(zone_t *zone, _unused_ ctl_args_t *args) } zone->zonefile.bootstrap_cnt = 0; // restart delays - return schedule_trigger(zone, args, ZONE_EVENT_REFRESH, true); + return schedule_trigger(zone, args, ZONE_EVENT_REFRESH, ZONE_EVFLAG_USER); } static int zone_retransfer(zone_t *zone, _unused_ ctl_args_t *args) @@ -501,9 +499,8 @@ static int zone_retransfer(zone_t *zone, _unused_ ctl_args_t *args) return KNOT_ENOTSUP; } - zone_set_flag(zone, ZONE_FORCE_AXFR); zone->zonefile.bootstrap_cnt = 0; // restart delays - return schedule_trigger(zone, args, ZONE_EVENT_REFRESH, true); + return schedule_trigger(zone, args, ZONE_EVENT_REFRESH, ZONE_EVFLAG_USER | ZONE_EVFLAG_AXFR); } static void common_failure(_unused_ ctl_args_t *args, int err, const char *msg) @@ -522,17 +519,17 @@ static void common_failure(_unused_ ctl_args_t *args, int err, const char *msg) static int zone_notify(zone_t *zone, _unused_ ctl_args_t *args) { zone_notifailed_clear(zone); - return schedule_trigger(zone, args, ZONE_EVENT_NOTIFY, true); + return schedule_trigger(zone, args, ZONE_EVENT_NOTIFY, ZONE_EVFLAG_USER); } static int zone_flush(zone_t *zone, ctl_args_t *args) { - zone_set_flag(zone, ZONE_USER_FLUSH); + zone_evflag_t fl = ZONE_EVFLAG_USER; if (ctl_has_flag(args->data[KNOT_CTL_IDX_FLAGS], CTL_FLAG_FORCE)) { - zone_set_flag(zone, ZONE_FORCE_FLUSH); + fl |= ZONE_EVFLAG_FORCE; } - return schedule_trigger(zone, args, ZONE_EVENT_FLUSH, true); + return schedule_trigger(zone, args, ZONE_EVENT_FLUSH, fl); } static int zone_flush_outdir(zone_t *zone, ctl_args_t *args) @@ -745,7 +742,7 @@ static int zone_backup_cmd(zone_t *zone, ctl_args_t *args) ctx->readers++; pthread_mutex_unlock(&ctx->readers_mutex); - return schedule_trigger(zone, args, ZONE_EVENT_BACKUP, true); + return schedule_trigger(zone, args, ZONE_EVENT_BACKUP, ZONE_EVFLAG_USER); } static int zones_apply_backup(ctl_args_t *args, bool restore_mode) @@ -802,14 +799,12 @@ static int zone_sign(zone_t *zone, _unused_ ctl_args_t *args) return KNOT_ENOTSUP; } - zone_set_flag(zone, ZONE_FORCE_RESIGN); - return schedule_trigger(zone, args, ZONE_EVENT_DNSSEC, true); + return schedule_trigger(zone, args, ZONE_EVENT_DNSSEC, ZONE_EVFLAG_USER | ZONE_EVFLAG_RESIGN); } static int zone_validate(zone_t *zone, _unused_ ctl_args_t *args) { - zone_set_flag(zone, ZONE_FORCE_VALIDATE); - return schedule_trigger(zone, args, ZONE_EVENT_VALIDATE, true); + return schedule_trigger(zone, args, ZONE_EVENT_VALIDATE, ZONE_EVFLAG_USER); } static int zone_keys_load(zone_t *zone, _unused_ ctl_args_t *args) @@ -825,7 +820,7 @@ static int zone_keys_load(zone_t *zone, _unused_ ctl_args_t *args) return KNOT_EOK; } - return schedule_trigger(zone, args, ZONE_EVENT_DNSSEC, true); + return schedule_trigger(zone, args, ZONE_EVENT_DNSSEC, ZONE_EVFLAG_USER); } static int zone_key_roll(zone_t *zone, ctl_args_t *args) @@ -837,15 +832,16 @@ static int zone_key_roll(zone_t *zone, ctl_args_t *args) } const char *key_type = args->data[KNOT_CTL_IDX_TYPE]; + zone_evflag_t fl = ZONE_EVFLAG_USER; if (strncasecmp(key_type, CMD_ROLLOVER_KSK, 3) == 0) { - zone_set_flag(zone, ZONE_FORCE_KSK_ROLL); + fl |= ZONE_EVFLAG_KSKROLL; } else if (strncasecmp(key_type, CMD_ROLLOVER_ZSK, 3) == 0) { - zone_set_flag(zone, ZONE_FORCE_ZSK_ROLL); + fl |= ZONE_EVFLAG_ZSKROLL; } else { return KNOT_EINVAL; } - return schedule_trigger(zone, args, ZONE_EVENT_DNSSEC, true); + return schedule_trigger(zone, args, ZONE_EVENT_DNSSEC, fl); } static int zone_ksk_sbm_confirm(zone_t *zone, _unused_ ctl_args_t *args) @@ -882,12 +878,12 @@ static int zone_ksk_sbm_confirm(zone_t *zone, _unused_ ctl_args_t *args) static int zone_freeze(zone_t *zone, _unused_ ctl_args_t *args) { - return schedule_trigger(zone, args, ZONE_EVENT_UFREEZE, false); + return schedule_trigger(zone, args, ZONE_EVENT_UFREEZE, 0); } static int zone_thaw(zone_t *zone, _unused_ ctl_args_t *args) { - return schedule_trigger(zone, args, ZONE_EVENT_UTHAW, false); + return schedule_trigger(zone, args, ZONE_EVENT_UTHAW, 0); } static int zone_xfr_freeze(zone_t *zone, _unused_ ctl_args_t *args) @@ -1882,7 +1878,7 @@ static int zone_purge(zone_t *zone, ctl_args_t *args) PURGE_ZONE_NOSYNC; // Purge even zonefiles with disabled syncing. zone_set_flag(zone, (zone_flag_t)params); - return schedule_trigger(zone, args, ZONE_EVENT_PURGE, true); + return schedule_trigger(zone, args, ZONE_EVENT_PURGE, ZONE_EVFLAG_USER); } int ctl_dump_ctr(stats_dump_params_t *params, stats_dump_ctx_t *ctx) diff --git a/src/knot/events/events.c b/src/knot/events/events.c index 6b55a95717..ecfeb26ef5 100644 --- a/src/knot/events/events.c +++ b/src/knot/events/events.c @@ -18,7 +18,7 @@ #define ZONE_EVENT_IMMEDIATE 1 /* Fast-track to worker queue. */ -typedef int (*zone_event_cb)(conf_t *conf, zone_t *zone); +typedef int (*zone_event_cb)(conf_t *conf, zone_t *zone, zone_evflag_t flags); typedef struct event_info { zone_event_type_t type; @@ -132,7 +132,7 @@ static zone_event_type_t get_next_event(zone_events_t *events) time_t current = events->time[i]; if ((next == 0 || current < next) && (current != 0) && - (events->forced[i] || !events->ufrozen || !ufreeze_applies(i)) && + (!events->ufrozen || (events->flags[i] & ZONE_EVFLAG_USER) || !ufreeze_applies(i)) && (events->answering || !only_started(i))) { next = current; next_type = i; @@ -191,7 +191,7 @@ static void reschedule(zone_events_t *events, bool mx_handover) * \brief Zone event wrapper, expected to be called from a worker thread. * * 1. Takes the next planned event. - * 2. Resets the event's scheduled time (and forced flag). + * 2. Resets the event's scheduled time (and flags). * 3. Perform the event's callback. * 4. Schedule next event planned event. */ @@ -213,7 +213,8 @@ static void event_wrap(worker_task_t *task) pthread_cond_t *blocking = events->blocking[type]; events->type = type; event_set_time(events, type, 0); - events->forced[type] = false; + zone_evflag_t flags = events->flags[type]; + events->flags[type] = 0; pthread_mutex_unlock(&events->mx); const event_info_t *info = get_event_info(type); @@ -229,7 +230,7 @@ static void event_wrap(worker_task_t *task) if (ret == KNOT_EOK) { /* Execute the event callback. */ - ret = info->callback(conf, zone); + ret = info->callback(conf, zone, flags); zone_timers_commit(conf, zone); conf_free(conf); } @@ -353,7 +354,7 @@ void _zone_events_schedule_at(zone_t *zone, ...) } time_t current = event_get_time(events, type); - if (current == 0 || (planned == 0 && !events->forced[type]) || + if (current == 0 || (planned == 0 && !(events->flags[type] & ZONE_EVFLAG_USER)) || (planned > 0 && planned < current)) { event_set_time(events, type, planned); } @@ -371,7 +372,7 @@ void _zone_events_schedule_at(zone_t *zone, ...) va_end(args); } -void zone_events_schedule_user(zone_t *zone, zone_event_type_t type) +void zone_events_schedule_flags(zone_t *zone, zone_event_type_t type, time_t at, zone_evflag_t flags) { if (!zone || !valid_event(type)) { return; @@ -379,16 +380,16 @@ void zone_events_schedule_user(zone_t *zone, zone_event_type_t type) zone_events_t *events = &zone->events; pthread_mutex_lock(&events->mx); - events->forced[type] = true; + events->flags[type] |= flags; pthread_mutex_unlock(&events->mx); - zone_events_schedule_now(zone, type); + zone_events_schedule_at(zone, type, at); // reschedule because get_next_event result changed outside of _zone_events_schedule_at reschedule(events, false); } -int zone_events_schedule_blocking(zone_t *zone, zone_event_type_t type, bool user) +int zone_events_schedule_blocking(zone_t *zone, zone_event_type_t type, zone_evflag_t flags) { if (!zone || !valid_event(type)) { return KNOT_EINVAL; @@ -405,11 +406,7 @@ int zone_events_schedule_blocking(zone_t *zone, zone_event_type_t type, bool use events->blocking[type] = &local_cond; pthread_mutex_unlock(&events->mx); - if (user) { - zone_events_schedule_user(zone, type); - } else { - zone_events_schedule_now(zone, type); - } + zone_events_schedule_now_flags(zone, type, flags); pthread_mutex_lock(&events->mx); while (events->blocking[type] == &local_cond) { diff --git a/src/knot/events/events.h b/src/knot/events/events.h index 7e75d691be..d8180d303a 100644 --- a/src/knot/events/events.h +++ b/src/knot/events/events.h @@ -38,6 +38,19 @@ typedef enum zone_event_type { ZONE_EVENT_COUNT, } zone_event_type_t; +// NOTE some flags may overlap if used exclusively by different events +typedef enum __attribute__((packed)) { + // common + ZONE_EVFLAG_USER = (1 << 0), + ZONE_EVFLAG_FORCE = (1 << 1), + // refresh + ZONE_EVFLAG_AXFR = (1 << 2), + // dnssec + ZONE_EVFLAG_RESIGN = (1 << 2), + ZONE_EVFLAG_ZSKROLL = (1 << 3), + ZONE_EVFLAG_KSKROLL = (1 << 4), +} zone_evflag_t; + typedef struct zone_events { pthread_mutex_t mx; //!< Mutex protecting the struct. pthread_mutex_t reschedule_lock;//!< Prevent concurrent reschedule() making mess. @@ -53,11 +66,11 @@ typedef struct zone_events { event_t *event; //!< Scheduler event. worker_pool_t *pool; //!< Server worker pool. - worker_task_t task; //!< Event execution context. - time_t time[ZONE_EVENT_COUNT]; //!< Event execution times. - bool forced[ZONE_EVENT_COUNT]; //!< Flag that the event was invoked by user ctl. - pthread_cond_t *blocking[ZONE_EVENT_COUNT]; //!< For blocking events: dispatching cond. - int result[ZONE_EVENT_COUNT]; //!< Event return values (in blocking operations). + worker_task_t task; //!< Event execution context. + time_t time[ZONE_EVENT_COUNT]; //!< Event execution times. + zone_evflag_t flags[ZONE_EVENT_COUNT]; //!< Flags. + pthread_cond_t *blocking[ZONE_EVENT_COUNT]; //!< For blocking events: dispatching cond. + int result[ZONE_EVENT_COUNT]; //!< Event return values (in blocking operations). } zone_events_t; /*! @@ -130,9 +143,11 @@ void _zone_events_schedule_at(struct zone *zone, ...); zone_events_schedule_at(zone, type, time(NULL)) /*! - * \brief Schedule zone event to now, with forced flag. + * \brief Schedule one zone event with flags. */ -void zone_events_schedule_user(struct zone *zone, zone_event_type_t type); +void zone_events_schedule_flags(struct zone *zone, zone_event_type_t type, time_t at, zone_evflag_t flags); +#define zone_events_schedule_now_flags(zone, type, flags) \ + zone_events_schedule_flags(zone, type, time(NULL), flags) /*! * \brief Schedule new zone event as soon as possible and wait for it's @@ -140,11 +155,11 @@ void zone_events_schedule_user(struct zone *zone, zone_event_type_t type); * * \param zone Zone to schedule new event for. * \param type Zone event type. - * \param user Forced flag indication. + * \param flags Event flags. * * \return KNOT_E* */ -int zone_events_schedule_blocking(struct zone *zone, zone_event_type_t type, bool user); +int zone_events_schedule_blocking(struct zone *zone, zone_event_type_t type, zone_evflag_t flags); /*! * \brief Freeze all zone events and prevent new events from running. diff --git a/src/knot/events/handlers.h b/src/knot/events/handlers.h index 7cc96c7c70..5736f99a3d 100644 --- a/src/knot/events/handlers.h +++ b/src/knot/events/handlers.h @@ -10,35 +10,35 @@ #include "knot/dnssec/zone-events.h" // zone_sign_reschedule_t /*! \brief Loads or reloads potentially changed zone. */ -int event_load(conf_t *conf, zone_t *zone); +int event_load(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief Refresh a zone from a master. */ -int event_refresh(conf_t *conf, zone_t *zone); +int event_refresh(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief Processes DDNS updates in the zone's DDNS queue. */ -int event_update(conf_t *conf, zone_t *zone); +int event_update(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief Empties in-memory zone contents. */ -int event_expire(conf_t *conf, zone_t *zone); +int event_expire(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief Expires the zone and purges metadata based on zone->flags. */ -int event_purge(conf_t *conf, zone_t *zone); +int event_purge(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief Flushes zone contents into text file. */ -int event_flush(conf_t *conf, zone_t *zone); +int event_flush(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief Backs up zone contents, metadata, keys, etc to a directory. */ -int event_backup(conf_t *conf, zone_t *zone); +int event_backup(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief Sends notify to slaves. */ -int event_notify(conf_t *conf, zone_t *zone); +int event_notify(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief Signs the zone using its DNSSEC keys, perform key rollovers. */ -int event_dnssec(conf_t *conf, zone_t *zone); +int event_dnssec(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief NOT A HANDLER, just a helper function to reschedule based on reschedule_t */ void event_dnssec_reschedule(conf_t *conf, zone_t *zone, const zone_sign_reschedule_t *refresh, bool zone_changed); /*! \brief Validate the wole zone's DNSSEC. */ -int event_validate(conf_t *conf, zone_t *zone); +int event_validate(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief Freeze those events causing zone contents change. */ -int event_ufreeze(conf_t *conf, zone_t *zone); +int event_ufreeze(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief Unfreeze zone updates. */ -int event_uthaw(conf_t *conf, zone_t *zone); +int event_uthaw(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief When CDS/CDNSKEY published, look for matching DS */ -int event_ds_check(conf_t *conf, zone_t *zone); +int event_ds_check(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief After change of CDS/CDNSKEY, push the new DS to parent zone as DDNS. */ -int event_ds_push(conf_t *conf, zone_t *zone); +int event_ds_push(conf_t *conf, zone_t *zone, zone_evflag_t flags); /*! \brief After DNSSEC sign, synchronize DNSKEY+CDNSKEY+CDS using DDNS. */ -int event_dnskey_sync(conf_t *conf, zone_t *zone); +int event_dnskey_sync(conf_t *conf, zone_t *zone, zone_evflag_t flags); diff --git a/src/knot/events/handlers/backup.c b/src/knot/events/handlers/backup.c index fbf5a40922..93de9e0532 100644 --- a/src/knot/events/handlers/backup.c +++ b/src/knot/events/handlers/backup.c @@ -11,7 +11,7 @@ #include "knot/events/handlers.h" #include "knot/zone/backup.h" -int event_backup(conf_t *conf, zone_t *zone) +int event_backup(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); diff --git a/src/knot/events/handlers/dnskey_sync.c b/src/knot/events/handlers/dnskey_sync.c index ec162a5389..d5e09b2e6b 100644 --- a/src/knot/events/handlers/dnskey_sync.c +++ b/src/knot/events/handlers/dnskey_sync.c @@ -355,7 +355,7 @@ static int send_dnskey_sync(conf_t *conf, zone_t *zone, bool *uptodate, return ret; } -int event_dnskey_sync(conf_t *conf, zone_t *zone) +int event_dnskey_sync(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); diff --git a/src/knot/events/handlers/dnssec.c b/src/knot/events/handlers/dnssec.c index c642039568..5cb769d349 100644 --- a/src/knot/events/handlers/dnssec.c +++ b/src/knot/events/handlers/dnssec.c @@ -55,7 +55,7 @@ void event_dnssec_reschedule(conf_t *conf, zone_t *zone, } } -int event_dnssec(conf_t *conf, zone_t *zone) +int event_dnssec(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); @@ -68,7 +68,7 @@ int event_dnssec(conf_t *conf, zone_t *zone) int sign_flags = 0; bool zone_changed = false; - if (zone_get_flag(zone, ZONE_FORCE_RESIGN, true)) { + if (flags & ZONE_EVFLAG_RESIGN) { log_zone_info(zone->name, "DNSSEC, dropping previous " "signatures, re-signing zone"); sign_flags = ZONE_SIGN_DROP_SIGNATURES; @@ -77,10 +77,10 @@ int event_dnssec(conf_t *conf, zone_t *zone) sign_flags = 0; } - if (zone_get_flag(zone, ZONE_FORCE_KSK_ROLL, true)) { + if (flags & ZONE_EVFLAG_KSKROLL) { r_flags |= KEY_ROLL_FORCE_KSK_ROLL; } - if (zone_get_flag(zone, ZONE_FORCE_ZSK_ROLL, true)) { + if (flags & ZONE_EVFLAG_ZSKROLL) { r_flags |= KEY_ROLL_FORCE_ZSK_ROLL; } diff --git a/src/knot/events/handlers/ds_check.c b/src/knot/events/handlers/ds_check.c index 8c2e63c404..0f6bff42b5 100644 --- a/src/knot/events/handlers/ds_check.c +++ b/src/knot/events/handlers/ds_check.c @@ -17,7 +17,7 @@ static void reschedule_next(zone_t *zone, uint32_t interval) } } -int event_ds_check(conf_t *conf, zone_t *zone) +int event_ds_check(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); diff --git a/src/knot/events/handlers/ds_push.c b/src/knot/events/handlers/ds_push.c index 25a79dda5d..9f90808743 100644 --- a/src/knot/events/handlers/ds_push.c +++ b/src/knot/events/handlers/ds_push.c @@ -219,7 +219,7 @@ static int send_ds_push(conf_t *conf, zone_t *zone, return ret; } -int event_ds_push(conf_t *conf, zone_t *zone) +int event_ds_push(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); diff --git a/src/knot/events/handlers/expire.c b/src/knot/events/handlers/expire.c index 5a45a757be..05869f71d8 100644 --- a/src/knot/events/handlers/expire.c +++ b/src/knot/events/handlers/expire.c @@ -5,7 +5,7 @@ #include "knot/zone/zone.h" -int event_expire(conf_t *conf, zone_t *zone) +int event_expire(conf_t *conf, zone_t *zone, zone_evflag_t flags) { zone_perform_expire(conf, zone); diff --git a/src/knot/events/handlers/flush.c b/src/knot/events/handlers/flush.c index 024ac7e336..a29620c7c5 100644 --- a/src/knot/events/handlers/flush.c +++ b/src/knot/events/handlers/flush.c @@ -9,7 +9,7 @@ #include "knot/conf/conf.h" #include "knot/zone/zone.h" -int event_flush(conf_t *conf, zone_t *zone) +int event_flush(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); @@ -17,5 +17,5 @@ int event_flush(conf_t *conf, zone_t *zone) return KNOT_EEMPTYZONE; } - return zone_flush_journal(conf, zone, true); + return zone_flush_journal(conf, zone, true, flags); } diff --git a/src/knot/events/handlers/freeze_thaw.c b/src/knot/events/handlers/freeze_thaw.c index bcc0aaa6b1..08e320e33c 100644 --- a/src/knot/events/handlers/freeze_thaw.c +++ b/src/knot/events/handlers/freeze_thaw.c @@ -8,7 +8,7 @@ #include "knot/events/events.h" #include "knot/zone/zone.h" -int event_ufreeze(conf_t *conf, zone_t *zone) +int event_ufreeze(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); @@ -21,7 +21,7 @@ int event_ufreeze(conf_t *conf, zone_t *zone) return KNOT_EOK; } -int event_uthaw(conf_t *conf, zone_t *zone) +int event_uthaw(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 6b9ea944fc..567487f5e5 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -50,7 +50,7 @@ static int upd_add_rem(const knot_rrset_t *rr, bool add, void *ctx) return add ? zone_update_add(ctx, rr) : zone_update_remove(ctx, rr); } -int event_load(conf_t *conf, zone_t *zone) +int event_load(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); diff --git a/src/knot/events/handlers/notify.c b/src/knot/events/handlers/notify.c index bb09af1229..af47b32f94 100644 --- a/src/knot/events/handlers/notify.c +++ b/src/knot/events/handlers/notify.c @@ -130,7 +130,7 @@ static int send_notify(conf_t *conf, zone_t *zone, const knot_rrset_t *soa, return ret; } -int event_notify(conf_t *conf, zone_t *zone) +int event_notify(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); diff --git a/src/knot/events/handlers/purge.c b/src/knot/events/handlers/purge.c index deb7e437bc..a9029d0f96 100644 --- a/src/knot/events/handlers/purge.c +++ b/src/knot/events/handlers/purge.c @@ -5,7 +5,7 @@ #include "knot/zone/zone.h" -int event_purge(conf_t *conf, zone_t *zone) +int event_purge(conf_t *conf, zone_t *zone, zone_evflag_t flags) { purge_flag_t what = (purge_flag_t)zone_get_flag(zone, (zone_flag_t)PURGE_ZONE_FLAGS, true); diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index d1d50d4de4..53798326f1 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -1462,7 +1462,7 @@ static int try_refresh(conf_t *conf, zone_t *zone, const conf_remote_t *master, return ret; } -int event_refresh(conf_t *conf, zone_t *zone) +int event_refresh(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); @@ -1472,8 +1472,7 @@ int event_refresh(conf_t *conf, zone_t *zone) try_refresh_ctx_t trctx = { 0 }; - // TODO: Flag on zone is ugly. Event specific parameters would be nice. - if (zone_get_flag(zone, ZONE_FORCE_AXFR, true)) { + if (flags & ZONE_EVFLAG_AXFR) { trctx.force_axfr = true; zone->zonefile.retransfer = true; } diff --git a/src/knot/events/handlers/update.c b/src/knot/events/handlers/update.c index c1b0c99dab..db7d661040 100644 --- a/src/knot/events/handlers/update.c +++ b/src/knot/events/handlers/update.c @@ -480,7 +480,7 @@ static size_t update_dequeue(zone_t *zone, list_t *updates) return update_count; } -int event_update(conf_t *conf, zone_t *zone) +int event_update(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); diff --git a/src/knot/events/handlers/validate.c b/src/knot/events/handlers/validate.c index 1fe7ec2d49..09887d6f27 100644 --- a/src/knot/events/handlers/validate.c +++ b/src/knot/events/handlers/validate.c @@ -8,7 +8,7 @@ #include "knot/dnssec/zone-events.h" #include "knot/zone/zone.h" -int event_validate(conf_t *conf, zone_t *zone) +int event_validate(conf_t *conf, zone_t *zone, zone_evflag_t flags) { assert(zone); @@ -29,7 +29,7 @@ int event_validate(conf_t *conf, zone_t *zone) .log_plan = true, }; - if (zone_get_flag(zone, ZONE_FORCE_VALIDATE, true)) { + if (flags & ZONE_EVFLAG_USER) { val_conf.fast = false; val_conf.no_skip_crypto = true; log_zone_info(zone->name, "DNSSEC, full zone revalidation"); diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 718c14a0af..8d92c9f3fe 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -51,7 +51,8 @@ static void free_ddns_queue(zone_t *zone) * ...in this case we actually don't have to do anything because the zonefile is current, * but we must mark the journal as flushed */ -static int flush_journal(conf_t *conf, zone_t *zone, bool allow_empty_zone, bool verbose) +static int flush_journal(conf_t *conf, zone_t *zone, bool allow_empty_zone, bool verbose, + zone_evflag_t flags) { /*! @note Function expects nobody will change zone contents meanwhile. */ @@ -60,8 +61,8 @@ static int flush_journal(conf_t *conf, zone_t *zone, bool allow_empty_zone, bool int ret = KNOT_EOK; zone_journal_t j = zone_journal(zone); - bool force = zone_get_flag(zone, ZONE_FORCE_FLUSH, true); - bool user_flush = zone_get_flag(zone, ZONE_USER_FLUSH, true); + bool force = (flags & ZONE_EVFLAG_FORCE); + bool user_flush = (flags & ZONE_EVFLAG_USER); conf_val_t val = conf_zone_get(conf, C_ZONEFILE_SYNC, zone->name); int64_t sync_timeout = conf_int(&val); @@ -441,7 +442,7 @@ static int journal_insert_flush(conf_t *conf, zone_t *zone, log_zone_notice(zone->name, "journal, flushing the zone to allow old changesets cleanup to free space"); /* Transaction rolled back, journal released, we may flush. */ - ret = flush_journal(conf, zone, true, false); + ret = flush_journal(conf, zone, true, false, 0); if (ret == KNOT_EOK) { ret = journal_insert(j, change, extra, diff); } @@ -498,13 +499,13 @@ int zone_in_journal_store(conf_t *conf, zone_t *zone, zone_contents_t *new_conte return ret; } -int zone_flush_journal(conf_t *conf, zone_t *zone, bool verbose) +int zone_flush_journal(conf_t *conf, zone_t *zone, bool verbose, zone_evflag_t flags) { if (conf == NULL || zone == NULL) { return KNOT_EINVAL; } - return flush_journal(conf, zone, false, verbose); + return flush_journal(conf, zone, false, verbose, flags); } bool zone_journal_has_zij(zone_t *zone) diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index aaa2175314..7a35a263ab 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -29,15 +29,8 @@ struct zone_backup_ctx; * When updating check create_zone_reload() if the flag mask is ok. */ typedef enum { - ZONE_FORCE_AXFR = 1 << 0, /*!< Force AXFR as next transfer. */ - ZONE_FORCE_RESIGN = 1 << 1, /*!< Force zone re-sign. */ - ZONE_FORCE_FLUSH = 1 << 2, /*!< Force zone flush. */ - ZONE_FORCE_KSK_ROLL = 1 << 3, /*!< Force KSK/CSK rollover. */ - ZONE_FORCE_ZSK_ROLL = 1 << 4, /*!< Force ZSK rollover. */ ZONE_IS_CATALOG = 1 << 5, /*!< This is a catalog. */ ZONE_IS_CAT_MEMBER = 1 << 6, /*!< This zone exists according to a catalog. */ - ZONE_FORCE_VALIDATE = 1 << 7, /*!< Force full DNSSEC validation. */ - ZONE_USER_FLUSH = 1 << 8, /*!< User-triggered flush. */ ZONE_LAST_SIGN_OK = 1 << 9, /*!< Last full-sign event finished OK. */ ZONE_PREF_MASTER_2X = 1 << 10, /*!< Preferred master has been overwritten at least once. */ ZONE_RDB_RELOAD = 1 << 11, /*!< Full zone reload from database. */ @@ -235,7 +228,7 @@ int zone_changes_clear(conf_t *conf, zone_t *zone); int zone_in_journal_store(conf_t *conf, zone_t *zone, zone_contents_t *new_contents); /*! \brief Synchronize zone file with journal. */ -int zone_flush_journal(conf_t *conf, zone_t *zone, bool verbose); +int zone_flush_journal(conf_t *conf, zone_t *zone, bool verbose, zone_evflag_t flags); bool zone_journal_has_zij(zone_t *zone); diff --git a/src/knot/zone/zonedb.c b/src/knot/zone/zonedb.c index 6e54595a38..a8ddd6f39f 100644 --- a/src/knot/zone/zonedb.c +++ b/src/knot/zone/zonedb.c @@ -22,7 +22,7 @@ static void discard_zone(zone_t *zone, bool abort_txn) // Flush if bootstrapped or if the journal doesn't exist. if (!zone->zonefile.exists || !zone_journal_same_serial(zone, zone_contents_serial(zone->contents))) { - zone_flush_journal(conf(), zone, false); + zone_flush_journal(conf(), zone, false, 0); } } From c88d94dd43f5f2df5f0230d8a68a800a00fa0eb5 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 28 Jun 2026 15:34:06 +0200 Subject: [PATCH 625/675] libngtcp2: update embedded library to v1.24.0 --- src/contrib/Makefile.inc | 12 +- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c | 20 ++- src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h | 6 +- .../libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c | 3 + .../libngtcp2/ngtcp2/lib/ngtcp2_conn.c | 59 +++++++-- .../libngtcp2/ngtcp2/lib/ngtcp2_conn.h | 6 + src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h | 2 - src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.c | 81 ++++++++++++ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.h | 55 +++++++++ .../ngtcp2/lib/ngtcp2_window_filter.c | 116 ------------------ .../ngtcp2/lib/ngtcp2_window_filter.h | 65 ---------- src/contrib/libngtcp2/ngtcp2/ngtcp2.h | 31 ++++- src/contrib/libngtcp2/ngtcp2/version.h | 4 +- 13 files changed, 244 insertions(+), 216 deletions(-) create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.c create mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.h delete mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.c delete mode 100644 src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.h diff --git a/src/contrib/Makefile.inc b/src/contrib/Makefile.inc index 8d5fa06394..8ef5345e4f 100644 --- a/src/contrib/Makefile.inc +++ b/src/contrib/Makefile.inc @@ -146,6 +146,8 @@ libembngtcp2_la_SOURCES = \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_buf.h \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_cc.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_cid.c \ @@ -159,6 +161,8 @@ libembngtcp2_la_SOURCES = \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_conv.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_crypto.h \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_err.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_err.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_fmt.c \ @@ -227,12 +231,8 @@ libembngtcp2_la_SOURCES = \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h \ contrib/libngtcp2/ngtcp2/lib/ngtcp2_version.c \ - contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.c \ - contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.h \ - contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.c \ - contrib/libngtcp2/ngtcp2/lib/ngtcp2_dcidtr.h \ - contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c \ - contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.h \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.c \ + contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.h \ contrib/libngtcp2/ngtcp2/ngtcp2.h \ contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h \ contrib/libngtcp2/ngtcp2/ngtcp2_crypto_gnutls.h \ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c index cdeb29bb50..b4cf2b02bb 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.c @@ -289,9 +289,8 @@ static void bbr_handle_recovery(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, static void bbr_on_init(ngtcp2_cc_bbr *bbr, ngtcp2_conn_stat *cstat, ngtcp2_tstamp initial_ts) { - ngtcp2_window_filter_init(&bbr->max_bw_filter, NGTCP2_BBR_MAX_BW_FILTERLEN); - ngtcp2_window_filter_init(&bbr->extra_acked_filter, - NGTCP2_BBR_EXTRA_ACKED_FILTERLEN); + ngtcp2_wf_init(&bbr->max_bw_filter, NGTCP2_BBR_MAX_BW_FILTERLEN); + ngtcp2_wf_init(&bbr->extra_acked_filter, NGTCP2_BBR_EXTRA_ACKED_FILTERLEN); bbr->min_rtt = cstat->first_rtt_sample_ts == UINT64_MAX ? UINT64_MAX : cstat->smoothed_rtt; @@ -590,10 +589,10 @@ static void bbr_update_max_bw(ngtcp2_cc_bbr *bbr, const ngtcp2_conn_stat *cstat, if (cstat->delivery_rate_sec && (cstat->delivery_rate_sec >= bbr->max_bw || !bbr->rst->rs.is_app_limited)) { - ngtcp2_window_filter_update(&bbr->max_bw_filter, cstat->delivery_rate_sec, - bbr->cycle_count); + ngtcp2_wf_update(&bbr->max_bw_filter, cstat->delivery_rate_sec, + bbr->cycle_count); - bbr->max_bw = ngtcp2_window_filter_get_best(&bbr->max_bw_filter); + bbr->max_bw = ngtcp2_wf_get_best(&bbr->max_bw_filter); } } @@ -667,15 +666,14 @@ static void bbr_update_ack_aggregation(ngtcp2_cc_bbr *bbr, } if (bbr->full_bw_reached) { - bbr->extra_acked_filter.window_length = NGTCP2_BBR_EXTRA_ACKED_FILTERLEN; + bbr->extra_acked_filter.win = NGTCP2_BBR_EXTRA_ACKED_FILTERLEN; } else { - bbr->extra_acked_filter.window_length = 1; + bbr->extra_acked_filter.win = 1; } - ngtcp2_window_filter_update(&bbr->extra_acked_filter, extra, - bbr->round_count); + ngtcp2_wf_update(&bbr->extra_acked_filter, extra, bbr->round_count); - bbr->extra_acked = ngtcp2_window_filter_get_best(&bbr->extra_acked_filter); + bbr->extra_acked = ngtcp2_wf_get_best(&bbr->extra_acked_filter); } static void bbr_enter_drain(ngtcp2_cc_bbr *bbr) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h index 81384e6d9f..5a8b470b89 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_bbr.h @@ -32,7 +32,7 @@ #include #include "ngtcp2_cc.h" -#include "ngtcp2_window_filter.h" +#include "ngtcp2_wf.h" typedef struct ngtcp2_rst ngtcp2_rst; typedef struct ngtcp2_pcg32 ngtcp2_pcg32; @@ -67,9 +67,9 @@ typedef struct ngtcp2_cc_bbr { /* max_bw_filter for tracking the maximum recent delivery rate samples for estimating max_bw. */ - ngtcp2_window_filter max_bw_filter; + ngtcp2_wf max_bw_filter; - ngtcp2_window_filter extra_acked_filter; + ngtcp2_wf extra_acked_filter; ngtcp2_duration min_rtt; ngtcp2_tstamp min_rtt_stamp; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c index 1d65d93d56..cbd1d67727 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_callbacks.c @@ -63,6 +63,9 @@ size_t ngtcp2_callbackslen_version(int callbacks_version) { switch (callbacks_version) { case NGTCP2_CALLBACKS_VERSION: return sizeof(callbacks); + case NGTCP2_CALLBACKS_V3: + return offsetof(ngtcp2_callbacks, get_path_challenge_data2) + + sizeof(callbacks.get_path_challenge_data2); case NGTCP2_CALLBACKS_V2: return offsetof(ngtcp2_callbacks, begin_path_validation) + sizeof(callbacks.begin_path_validation); diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c index 28bbde1233..4a295d2aab 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.c @@ -230,6 +230,24 @@ static int conn_call_stream_reset(ngtcp2_conn *conn, int64_t stream_id, return 0; } +static int conn_call_recv_stop_sending(ngtcp2_conn *conn, int64_t stream_id, + uint64_t app_error_code, + void *stream_user_data) { + int rv; + + if (!conn->callbacks.recv_stop_sending) { + return 0; + } + + rv = conn->callbacks.recv_stop_sending(conn, stream_id, app_error_code, + conn->user_data, stream_user_data); + if (rv != 0) { + return NGTCP2_ERR_CALLBACK_FAILURE; + } + + return 0; +} + static int conn_call_extend_max_local_streams_bidi(ngtcp2_conn *conn, uint64_t max_streams) { int rv; @@ -2621,6 +2639,8 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, ngtcp2_unreachable(); } } + + conn->frame_counts.crypto += (size_t)datacnt; } else { left = ngtcp2_pkt_crypto_max_datalen(crypto_offset, left, left); if (left == (size_t)-1) { @@ -2644,6 +2664,8 @@ conn_write_handshake_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, uint8_t *dest, if (rv != 0) { ngtcp2_unreachable(); } + + ++conn->frame_counts.crypto; } *pfrc = nfrc; @@ -3859,6 +3881,8 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, rtb_entry_flags |= NGTCP2_RTB_ENTRY_FLAG_ACK_ELICITING | NGTCP2_RTB_ENTRY_FLAG_PTO_ELICITING | NGTCP2_RTB_ENTRY_FLAG_RETRANSMITTABLE; + + ++conn->frame_counts.crypto; } } @@ -4073,6 +4097,8 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, NGTCP2_RTB_ENTRY_FLAG_PTO_ELICITING | NGTCP2_RTB_ENTRY_FLAG_RETRANSMITTABLE; + ++conn->frame_counts.stream; + if (ngtcp2_strm_streamfrq_empty(strm)) { ngtcp2_conn_tx_strmq_pop(conn); continue; @@ -4236,6 +4262,8 @@ static ngtcp2_ssize conn_write_pkt(ngtcp2_conn *conn, ngtcp2_pkt_info *pi, NGTCP2_RTB_ENTRY_FLAG_PTO_ELICITING | NGTCP2_RTB_ENTRY_FLAG_RETRANSMITTABLE; + ++conn->frame_counts.stream; + vmsg->stream.strm->tx.offset += ndatalen; conn->tx.offset += ndatalen; vmsg->stream.strm->flags |= NGTCP2_STRM_FLAG_ANY_SENT; @@ -7932,6 +7960,12 @@ static int conn_recv_stop_sending(ngtcp2_conn *conn, ngtcp2_strm_set_app_error_code(strm, fr->app_error_code); + rv = conn_call_recv_stop_sending(conn, fr->stream_id, fr->app_error_code, + strm->stream_user_data); + if (rv != 0) { + return rv; + } + /* No RESET_STREAM is required if we have sent FIN and all data have been acknowledged. */ if (!ngtcp2_strm_is_all_tx_data_fin_acked(strm) && @@ -12035,6 +12069,12 @@ ngtcp2_ssize ngtcp2_conn_write_stream_versioned( stream_id, v, datacnt, ts); } +static int conn_no_app_data_written(const ngtcp2_conn *conn) { + const ngtcp2_frame_counts *counts = &conn->frame_counts; + + return counts->crypto == 0 && counts->stream == 0; +} + static ngtcp2_ssize conn_write_vmsg_wrapper(ngtcp2_conn *conn, ngtcp2_path *path, int pkt_info_version, ngtcp2_pkt_info *pi, @@ -12053,14 +12093,9 @@ conn_write_vmsg_wrapper(ngtcp2_conn *conn, ngtcp2_path *path, if (cstat->bytes_in_flight >= cstat->cwnd) { conn->rst.is_cwnd_limited = 1; - } else if ((cstat->cwnd >= cstat->ssthresh || - cstat->bytes_in_flight * 2 < cstat->cwnd) && - nwrite == 0 && conn_pacing_pkt_tx_allowed(conn, ts) && - (conn->flags & NGTCP2_CONN_FLAG_HANDSHAKE_COMPLETED) && - /* Because NGTCP2_CONN_FLAG_AGGREGATE_PKTS is set after a - packet is produced, if it is set, we are sure that we - are not app-limited. */ - !(conn->flags & NGTCP2_CONN_FLAG_AGGREGATE_PKTS)) { + } else if (conn_pacing_pkt_tx_allowed(conn, ts) && !vmsg && + conn_no_app_data_written(conn) && + (!path || ngtcp2_path_eq(&conn->dcid.current.ps.path, path))) { conn->rst.app_limited = ngtcp2_max(conn->rst.delivered + cstat->bytes_in_flight, 1); } @@ -12238,8 +12273,12 @@ ngtcp2_ssize ngtcp2_conn_write_vmsg(ngtcp2_conn *conn, ngtcp2_path *path, origlen = destlen = conn_shape_udp_payload(conn, &conn->dcid.current, destlen); - if (!ppe_pending && pi) { - pi->ecn = NGTCP2_ECN_NOT_ECT; + if (!ppe_pending) { + if (pi) { + pi->ecn = NGTCP2_ECN_NOT_ECT; + } + + conn->frame_counts = (ngtcp2_frame_counts){0}; } switch (conn->state) { diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h index 548c296e8a..18af11727e 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_conn.h @@ -308,6 +308,11 @@ typedef struct ngtcp2_early_transport_params { uint64_t max_datagram_frame_size; } ngtcp2_early_transport_params; +typedef struct ngtcp2_frame_counts { + size_t crypto; + size_t stream; +} ngtcp2_frame_counts; + ngtcp2_static_ringbuf_def(path_challenge, 4, sizeof(ngtcp2_path_challenge_entry)) @@ -644,6 +649,7 @@ struct ngtcp2_conn { confirmed. For server, it is confirmed when completed. */ ngtcp2_tstamp handshake_confirmed_ts; ngtcp2_pcg32 pcg; + ngtcp2_frame_counts frame_counts; void *user_data; uint32_t client_chosen_version; uint32_t negotiated_version; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h index 86346f4929..4ae71aa6da 100644 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_rst.h @@ -31,8 +31,6 @@ #include -#include "ngtcp2_window_filter.h" - typedef struct ngtcp2_rtb_entry ngtcp2_rtb_entry; typedef struct ngtcp2_conn_stat ngtcp2_conn_stat; diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.c new file mode 100644 index 0000000000..1adfc9ffd9 --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.c @@ -0,0 +1,81 @@ +/* + * ngtcp2 + * + * Copyright (c) 2026 ngtcp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include "ngtcp2_wf.h" + +void ngtcp2_wf_init(ngtcp2_wf *wf, uint64_t win) { + *wf = (ngtcp2_wf){ + .win = win, + }; +} + +void ngtcp2_wf_update(ngtcp2_wf *wf, uint64_t value, uint64_t ts) { + ngtcp2_wf_sample s = { + .value = value, + .ts = ts, + }; + + if (wf->samples[0].value <= value || ts - wf->samples[2].ts > wf->win) { + wf->samples[0] = wf->samples[1] = wf->samples[2] = s; + + return; + } + + if (wf->samples[1].value <= value) { + wf->samples[1] = wf->samples[2] = s; + } else if (wf->samples[2].value <= value) { + wf->samples[2] = s; + } + + if (ts - wf->samples[1].ts > wf->win) { + wf->samples[0] = wf->samples[2]; + wf->samples[1] = wf->samples[2] = s; + + return; + } + + if (ts - wf->samples[0].ts > wf->win) { + wf->samples[0] = wf->samples[1]; + wf->samples[1] = wf->samples[2]; + wf->samples[2] = s; + + return; + } + + if (wf->samples[0].value == wf->samples[1].value && + ts - wf->samples[0].ts > wf->win / 4) { + wf->samples[1] = wf->samples[2] = s; + + return; + } + + if (wf->samples[1].value == wf->samples[2].value && + ts - wf->samples[0].ts > wf->win / 2) { + wf->samples[2] = s; + } +} + +uint64_t ngtcp2_wf_get_best(const ngtcp2_wf *wf) { + return wf->samples[0].value; +} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.h new file mode 100644 index 0000000000..72bdf28c86 --- /dev/null +++ b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.h @@ -0,0 +1,55 @@ +/* + * ngtcp2 + * + * Copyright (c) 2026 ngtcp2 contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#ifndef NGTCP2_WF_H +#define NGTCP2_WF_H + +#ifdef HAVE_CONFIG_H +# include +#endif /* defined(HAVE_CONFIG_H) */ + +#include + +/* + * ngtcp2_wf implements Kathleen Nichols's windowed min/max tracking + * algorithm. + */ + +typedef struct ngtcp2_wf_sample { + uint64_t value; + uint64_t ts; +} ngtcp2_wf_sample; + +typedef struct ngtcp2_wf { + uint64_t win; + ngtcp2_wf_sample samples[3]; +} ngtcp2_wf; + +void ngtcp2_wf_init(ngtcp2_wf *wf, uint64_t win); + +void ngtcp2_wf_update(ngtcp2_wf *wf, uint64_t value, uint64_t ts); + +uint64_t ngtcp2_wf_get_best(const ngtcp2_wf *wf); + +#endif /* !defined(NGTCP2_WF_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.c b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.c deleted file mode 100644 index 707cd57079..0000000000 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - * ngtcp2 - * - * Copyright (c) 2021 ngtcp2 contributors - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Translated to C from the original C++ code - * https://quiche.googlesource.com/quiche/+/5be974e29f7e71a196e726d6e2272676d33ab77d/quic/core/congestion_control/windowed_filter.h - * with the following license: - * - * // Copyright (c) 2016 The Chromium Authors. All rights reserved. - * // Use of this source code is governed by a BSD-style license that can be - * // found in the LICENSE file. - */ -#include "ngtcp2_window_filter.h" - -#include - -void ngtcp2_window_filter_init(ngtcp2_window_filter *wf, - uint64_t window_length) { - wf->window_length = window_length; - memset(wf->estimates, 0xFF, sizeof(wf->estimates)); -} - -void ngtcp2_window_filter_update(ngtcp2_window_filter *wf, uint64_t new_sample, - uint64_t new_time) { - /* Reset all estimates if they have not yet been initialized, if new - sample is a new best, or if the newest recorded estimate is too - old. */ - if (wf->estimates[0].sample == UINT64_MAX || - new_sample > wf->estimates[0].sample || - new_time - wf->estimates[2].time > wf->window_length) { - ngtcp2_window_filter_reset(wf, new_sample, new_time); - return; - } - - if (new_sample > wf->estimates[1].sample) { - wf->estimates[1].sample = new_sample; - wf->estimates[1].time = new_time; - wf->estimates[2] = wf->estimates[1]; - } else if (new_sample > wf->estimates[2].sample) { - wf->estimates[2].sample = new_sample; - wf->estimates[2].time = new_time; - } - - /* Expire and update estimates as necessary. */ - if (new_time - wf->estimates[0].time > wf->window_length) { - /* The best estimate hasn't been updated for an entire window, so - promote second and third best estimates. */ - wf->estimates[0] = wf->estimates[1]; - wf->estimates[1] = wf->estimates[2]; - wf->estimates[2].sample = new_sample; - wf->estimates[2].time = new_time; - - /* Need to iterate one more time. Check if the new best estimate - is outside the window as well, since it may also have been - recorded a long time ago. Don't need to iterate once more - since we cover that case at the beginning of the method. */ - if (new_time - wf->estimates[0].time > wf->window_length) { - wf->estimates[0] = wf->estimates[1]; - wf->estimates[1] = wf->estimates[2]; - } - return; - } - - if (wf->estimates[1].sample == wf->estimates[0].sample && - new_time - wf->estimates[1].time > wf->window_length >> 2) { - /* A quarter of the window has passed without a better sample, so - the second-best estimate is taken from the second quarter of - the window. */ - wf->estimates[2].sample = new_sample; - wf->estimates[2].time = new_time; - wf->estimates[1] = wf->estimates[2]; - return; - } - - if (wf->estimates[2].sample == wf->estimates[1].sample && - new_time - wf->estimates[2].time > wf->window_length >> 1) { - /* We've passed a half of the window without a better estimate, so - take a third-best estimate from the second half of the - window. */ - wf->estimates[2].sample = new_sample; - wf->estimates[2].time = new_time; - } -} - -void ngtcp2_window_filter_reset(ngtcp2_window_filter *wf, uint64_t new_sample, - uint64_t new_time) { - wf->estimates[0].sample = new_sample; - wf->estimates[0].time = new_time; - wf->estimates[1] = wf->estimates[2] = wf->estimates[0]; -} - -uint64_t ngtcp2_window_filter_get_best(ngtcp2_window_filter *wf) { - return wf->estimates[0].sample; -} diff --git a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.h b/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.h deleted file mode 100644 index c90a9fdb90..0000000000 --- a/src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * ngtcp2 - * - * Copyright (c) 2021 ngtcp2 contributors - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Translated to C from the original C++ code - * https://quiche.googlesource.com/quiche/+/5be974e29f7e71a196e726d6e2272676d33ab77d/quic/core/congestion_control/windowed_filter.h - * with the following license: - * - * // Copyright (c) 2016 The Chromium Authors. All rights reserved. - * // Use of this source code is governed by a BSD-style license that can be - * // found in the LICENSE file. - */ -#ifndef NGTCP2_WINDOW_FILTER_H -#define NGTCP2_WINDOW_FILTER_H - -#ifdef HAVE_CONFIG_H -# include -#endif /* defined(HAVE_CONFIG_H) */ - -#include - -typedef struct ngtcp2_window_filter_sample { - uint64_t sample; - uint64_t time; -} ngtcp2_window_filter_sample; - -typedef struct ngtcp2_window_filter { - uint64_t window_length; - ngtcp2_window_filter_sample estimates[3]; -} ngtcp2_window_filter; - -void ngtcp2_window_filter_init(ngtcp2_window_filter *wf, - uint64_t window_length); - -void ngtcp2_window_filter_update(ngtcp2_window_filter *wf, uint64_t new_sample, - uint64_t new_time); - -void ngtcp2_window_filter_reset(ngtcp2_window_filter *wf, uint64_t new_sample, - uint64_t new_time); - -uint64_t ngtcp2_window_filter_get_best(ngtcp2_window_filter *wf); - -#endif /* !defined(NGTCP2_WINDOW_FILTER_H) */ diff --git a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h index 278b30ca07..01f93e8c41 100644 --- a/src/contrib/libngtcp2/ngtcp2/ngtcp2.h +++ b/src/contrib/libngtcp2/ngtcp2/ngtcp2.h @@ -3485,6 +3485,24 @@ typedef int (*ngtcp2_stream_stop_sending)(ngtcp2_conn *conn, int64_t stream_id, void *user_data, void *stream_user_data); +/** + * @functypedef + * + * :type:`ngtcp2_recv_stop_sending` is invoked when a STOP_SENDING frame + * is received from a remote endpoint for a stream identified by + * |stream_id|. |app_error_code| is the application error code carried + * by the STOP_SENDING frame. This callback is called at most + * once per stream. + * + * The callback function must return 0 if it succeeds. Returning + * :macro:`NGTCP2_ERR_CALLBACK_FAILURE` makes the library call return + * immediately. + */ +typedef int (*ngtcp2_recv_stop_sending)(ngtcp2_conn *conn, int64_t stream_id, + uint64_t app_error_code, + void *user_data, + void *stream_user_data); + /** * @functypedef * @@ -3626,7 +3644,8 @@ typedef int (*ngtcp2_get_path_challenge_data2)(ngtcp2_conn *conn, #define NGTCP2_CALLBACKS_V1 1 #define NGTCP2_CALLBACKS_V2 2 #define NGTCP2_CALLBACKS_V3 3 -#define NGTCP2_CALLBACKS_VERSION NGTCP2_CALLBACKS_V3 +#define NGTCP2_CALLBACKS_V4 4 +#define NGTCP2_CALLBACKS_VERSION NGTCP2_CALLBACKS_V4 /** * @struct @@ -3964,6 +3983,16 @@ typedef struct ngtcp2_callbacks { * .. version-added:: 1.22.0 */ ngtcp2_get_path_challenge_data2 get_path_challenge_data2; + /* The following fields have been added since + NGTCP2_CALLBACKS_V3. */ + /** + * :member:`recv_stop_sending` is a callback function which is invoked + * when a STOP_SENDING frame is received from a remote endpoint. This + * callback function is optional. + * + * .. version-added:: 1.24.0 + */ + ngtcp2_recv_stop_sending recv_stop_sending; } ngtcp2_callbacks; /** diff --git a/src/contrib/libngtcp2/ngtcp2/version.h b/src/contrib/libngtcp2/ngtcp2/version.h index 7a47cdaba0..a71100abba 100644 --- a/src/contrib/libngtcp2/ngtcp2/version.h +++ b/src/contrib/libngtcp2/ngtcp2/version.h @@ -36,7 +36,7 @@ * * Version number of the ngtcp2 library release. */ -#define NGTCP2_VERSION "1.23.0" +#define NGTCP2_VERSION "1.24.0" /** * @macro @@ -46,6 +46,6 @@ * number, 8 bits for minor and 8 bits for patch. Version 1.2.3 * becomes 0x010203. */ -#define NGTCP2_VERSION_NUM 0x011700 +#define NGTCP2_VERSION_NUM 0x011800 #endif /* !defined(NGTCP2_VERSION_H) */ From 8b0595aa5354355443f118f5d2d64e0525a05e33 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 29 Jun 2026 15:07:22 +0200 Subject: [PATCH 626/675] server: log error if a worker initialization fails --- src/knot/server/tcp-handler.c | 5 +++++ src/knot/server/udp-handler.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/src/knot/server/tcp-handler.c b/src/knot/server/tcp-handler.c index 8f0248ad86..30d6a08fe8 100644 --- a/src/knot/server/tcp-handler.c +++ b/src/knot/server/tcp-handler.c @@ -449,6 +449,11 @@ int tcp_master(dthread_t *thread) } finish: + if (ret != KNOT_EOK) { + log_error("TCP, failed to initialize worker %u (%s)", + dt_get_id(thread), strerror(errno)); + } + knot_tls_ctx_free(tcp.tls_ctx); free(tcp.iov[0].iov_base); free(tcp.iov[1].iov_base); diff --git a/src/knot/server/udp-handler.c b/src/knot/server/udp-handler.c index 0d66455737..fc611e2813 100644 --- a/src/knot/server/udp-handler.c +++ b/src/knot/server/udp-handler.c @@ -630,6 +630,12 @@ int udp_master(dthread_t *thread) } finish: + if (ret != KNOT_EOK) { + log_error("%s, failed to initialize worker %u (%s)", + (is_xdp_thread(handler->server, thread_id) ? "XDP" : "UDP"), + dt_get_id(thread), strerror(errno)); + } + api->udp_deinit(api_ctx); #ifdef ENABLE_QUIC quic_unmake_table(udp.quic_table); From 95a542e6a7219cc552e42f24000e7b0cbbed221b Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 29 Jun 2026 12:42:50 +0200 Subject: [PATCH 627/675] ctl: log failed accept if not a timeout --- src/knot/ctl/threads.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/knot/ctl/threads.c b/src/knot/ctl/threads.c index 555762028a..ad9cf986e3 100644 --- a/src/knot/ctl/threads.c +++ b/src/knot/ctl/threads.c @@ -8,6 +8,7 @@ #include #include "contrib/threads.h" +#include "knot/common/log.h" #include "knot/ctl/threads.h" #include "knot/server/signals.h" @@ -210,6 +211,11 @@ static int ctl_socket_thr(struct dthread *dt) int ret = knot_ctl_accept(thr_ctl); if (ret != KNOT_EOK) { + if (ret != KNOT_ETIMEOUT) { + log_ctl_warning("failed to accept connection (%s)", + knot_strerror(ret)); + sleep(2); + } continue; } From 220a629401e87a6afa960fe3db15a13d501a7e44 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 30 Jun 2026 15:15:30 +0200 Subject: [PATCH 628/675] libknot: add KNOT_EINTR (EINTR equivalent) error code --- src/libknot/errcode.h | 2 ++ src/libknot/error.c | 1 + 2 files changed, 3 insertions(+) diff --git a/src/libknot/errcode.h b/src/libknot/errcode.h index fe3a2dab88..9d4911fc94 100644 --- a/src/libknot/errcode.h +++ b/src/libknot/errcode.h @@ -48,6 +48,7 @@ enum knot_error { KNOT_ENOTDIR = -ENOTDIR, KNOT_EPERM = -EPERM, KNOT_EROFS = -EROFS, + KNOT_EINTR = -EINTR, KNOT_ERRNO_ERROR = -500, @@ -235,6 +236,7 @@ inline static int knot_map_errno_code_def(int code, int dflt_error) ERR_ITEM(EEXIST), ERR_ITEM(ERANGE), ERR_ITEM(EADDRNOTAVAIL), + ERR_ITEM(EINTR), /* Terminator - the value isn't used. */ { 0, KNOT_ERRNO_ERROR } diff --git a/src/libknot/error.c b/src/libknot/error.c index c6e32b104c..f867cc334d 100644 --- a/src/libknot/error.c +++ b/src/libknot/error.c @@ -48,6 +48,7 @@ static const struct error errors[] = { { KNOT_ENOTDIR, "not a directory" }, { KNOT_EPERM, "operation not permitted" }, { KNOT_EROFS, "read-only file system" }, + { KNOT_EINTR, "interrupted call" }, { KNOT_ERRNO_ERROR, "unknown system error" }, From 486d8e1ea3df6e928028a0801af8f5f4e40fee86 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 30 Jun 2026 15:18:53 +0200 Subject: [PATCH 629/675] ctl: don't log interrupted poll() as warning during shutdown --- src/knot/ctl/threads.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/ctl/threads.c b/src/knot/ctl/threads.c index ad9cf986e3..129dfc77be 100644 --- a/src/knot/ctl/threads.c +++ b/src/knot/ctl/threads.c @@ -211,7 +211,7 @@ static int ctl_socket_thr(struct dthread *dt) int ret = knot_ctl_accept(thr_ctl); if (ret != KNOT_EOK) { - if (ret != KNOT_ETIMEOUT) { + if (ret != KNOT_ETIMEOUT && ret != KNOT_EINTR) { log_ctl_warning("failed to accept connection (%s)", knot_strerror(ret)); sleep(2); From 365aa44a1cd1c14df680c130ed0e671f82df551a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 30 Jun 2026 18:27:29 +0200 Subject: [PATCH 630/675] tls: don't call gnutls_subject_alt_names_deinit() with the NULL argument --- src/libknot/quic/tls_common.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libknot/quic/tls_common.c b/src/libknot/quic/tls_common.c index 4277414fdf..067f08a288 100644 --- a/src/libknot/quic/tls_common.c +++ b/src/libknot/quic/tls_common.c @@ -173,7 +173,9 @@ static int self_signed_cert(gnutls_certificate_credentials_t tls_cert, gnutls_free(san_der.data); gnutls_x509_crt_deinit(cert); gnutls_x509_privkey_deinit(privkey); - gnutls_subject_alt_names_deinit(san); + if (san != NULL) { + gnutls_subject_alt_names_deinit(san); + } return ret; } From 1b053bcfe17eaa4f008d589d6ec0ea53145e22e4 Mon Sep 17 00:00:00 2001 From: Babak Farrokhi Date: Wed, 1 Jul 2026 14:18:14 +0200 Subject: [PATCH 631/675] libknot: add support for EDE code 33 (Negative Trust Anchor) Let users know what a resolver returned an insecure answer, when an NTA is in effect. IANA has already assigned an Extended DNS Error INFO-CODE 33 "Negative Trust Anchor" Link: https://datatracker.ietf.org/doc/draft-farrokhi-dnsop-ede-nta/ --- src/libknot/codes.c | 1 + src/libknot/consts.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/libknot/codes.c b/src/libknot/codes.c index 1b67daeeb9..a37e41e92c 100644 --- a/src/libknot/codes.c +++ b/src/libknot/codes.c @@ -82,6 +82,7 @@ const knot_lookup_t knot_edns_ede_names[] = { { KNOT_EDNS_EDE_NONCONF_POLICY, "Unable to conform to policy" }, { KNOT_EDNS_EDE_SYNTHESIZED, "Synthesized" }, { KNOT_EDNS_EDE_INV_QTYPE, "Invalid Query Type" }, + { KNOT_EDNS_EDE_NTA, "Negative Trust Anchor" }, { 0, NULL } }; diff --git a/src/libknot/consts.h b/src/libknot/consts.h index 533481f304..fad5ade34a 100644 --- a/src/libknot/consts.h +++ b/src/libknot/consts.h @@ -124,6 +124,7 @@ typedef enum { KNOT_EDNS_EDE_NONCONF_POLICY = 28, KNOT_EDNS_EDE_SYNTHESIZED = 29, KNOT_EDNS_EDE_INV_QTYPE = 30, + KNOT_EDNS_EDE_NTA = 33, } knot_edns_ede_t; /*! From 4270285d8d4863c903424d82e1bf7c4c9b3719d5 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 3 Jun 2026 09:59:47 +0200 Subject: [PATCH 632/675] libknot: helpers for static init of single-RR RRsets --- distro/pkg/deb/libknot16.symbols | 2 ++ src/contrib/macros.h | 5 +++++ src/libknot/rdata.h | 3 +++ src/libknot/rdataset.c | 22 +++++++++++++++++++++ src/libknot/rdataset.h | 16 +++++++++++++++ src/libknot/rrset.c | 34 ++++++++++++++++++++++++++++++++ src/libknot/rrset.h | 27 +++++++++++++++++++++++++ tests/libknot/test_rdataset.c | 11 +++++++++++ tests/libknot/test_rrset.c | 20 +++++++++++++++++++ 9 files changed, 140 insertions(+) diff --git a/distro/pkg/deb/libknot16.symbols b/distro/pkg/deb/libknot16.symbols index 53dc647265..9fbbb8a493 100644 --- a/distro/pkg/deb/libknot16.symbols +++ b/distro/pkg/deb/libknot16.symbols @@ -248,6 +248,7 @@ libknot.so.16 libknot16 #MINVER# knot_rdataset_member@Base 3.5.0 knot_rdataset_merge@Base 3.5.0 knot_rdataset_remove_at@Base 3.5.0 + knot_rdataset_static@Base 3.6.0 knot_rdataset_subset@Base 3.5.0 knot_rdataset_subtract@Base 3.5.0 knot_rrclass_from_string@Base 3.5.0 @@ -262,6 +263,7 @@ libknot.so.16 libknot16 #MINVER# knot_rrset_rr_from_wire@Base 3.5.0 knot_rrset_rr_to_canonical@Base 3.5.0 knot_rrset_size@Base 3.5.0 + knot_rrset_static@Base 3.6.0 knot_rrset_to_wire_extra@Base 3.5.0 knot_rrset_txt_dump@Base 3.5.0 knot_rrset_txt_dump_data@Base 3.5.0 diff --git a/src/contrib/macros.h b/src/contrib/macros.h index fc46c98107..31b353340b 100644 --- a/src/contrib/macros.h +++ b/src/contrib/macros.h @@ -28,3 +28,8 @@ /*! \brief Optimize for x to be false value. */ #define unlikely(x) __builtin_expect((x), 0) #endif + +/*! \brief Helpers for aligning uint8_t pointers to 8-byte boundaries. */ +#define PTR_ALIGN_MAX (sizeof(void *) - 1) // NOTE assuming sizeof(void *) is a power of two +#define PTR_ALIGN_SIZE(ptr) ((sizeof(void *) - ((uintptr_t)(ptr) & PTR_ALIGN_MAX)) & PTR_ALIGN_MAX) +#define PTR_ALIGN(ptr) ((ptr) + PTR_ALIGN_SIZE(ptr)) diff --git a/src/libknot/rdata.h b/src/libknot/rdata.h index 908d1352a3..f6f295b970 100644 --- a/src/libknot/rdata.h +++ b/src/libknot/rdata.h @@ -22,6 +22,9 @@ /*!< \brief Maximum rdata length. */ #define KNOT_RDATA_MAXLEN 65535 +/*!< \brief Maximum required pointer alignment (assuming sizeof(void *) is a power of two). */ +#define KNOT_PTR_ALIGN_MAX (sizeof(void *) - 1) + /*! * \brief Structure holding single rdata payload. */ diff --git a/src/libknot/rdataset.c b/src/libknot/rdataset.c index 86673e1270..e76ba721b0 100644 --- a/src/libknot/rdataset.c +++ b/src/libknot/rdataset.c @@ -9,6 +9,7 @@ #include "libknot/attribute.h" #include "libknot/rdataset.h" +#include "contrib/macros.h" #include "contrib/mempattern.h" static knot_rdata_t *rr_seek(const knot_rdataset_t *rrs, uint16_t pos) @@ -75,6 +76,27 @@ static int add_rr_at(knot_rdataset_t *rrs, const knot_rdata_t *rr, knot_rdata_t return KNOT_EOK; } +_public_ +knot_rdataset_t *knot_rdataset_static(uint8_t *buf, size_t bufsize, + const uint8_t *rdata, uint16_t rdlen) +{ + if (buf == NULL || rdata == NULL || + bufsize < KNOT_RDATASET_STATIC_BUFSIZE(rdlen)) { + return NULL; + } + + knot_rdataset_t *res = (knot_rdataset_t *)PTR_ALIGN(buf); + knot_rdata_t *rd = (knot_rdata_t *)(res + 1); + + res->count = 1; + res->size = knot_rdata_size(rdlen); + res->rdata = rd; + + knot_rdata_init(rd, rdlen, rdata); + + return res; +} + _public_ int knot_rdataset_remove_at(knot_rdataset_t *rrs, uint16_t pos, knot_mm_t *mm) { diff --git a/src/libknot/rdataset.h b/src/libknot/rdataset.h index a1917a8915..e1622df5f4 100644 --- a/src/libknot/rdataset.h +++ b/src/libknot/rdataset.h @@ -30,6 +30,9 @@ typedef struct { knot_rdata_t *rdata; /*!< \brief Serialized rdata, canonically sorted. */ } knot_rdataset_t; +/*!< \brief Required static rdataset buffer size for specified rdata length. */ +#define KNOT_RDATASET_STATIC_BUFSIZE(rdlen) (KNOT_PTR_ALIGN_MAX + sizeof(knot_rdataset_t) + knot_rdata_size(rdlen)) + /*! * \brief Initializes RRS structure. * @@ -61,6 +64,19 @@ static inline knot_rdata_t *knot_rdataset_next(knot_rdata_t *rr) return (knot_rdata_t *)((uint8_t *)rr + knot_rdata_size(rr->len)); } +/*! + * \brief Create a static 1-record rdataset structure in a given buffer. + * + * \param buf Auxiliary buffer. + * \param bufsize Auxiliary buffer size. + * \param rdata Single RR rdata to be added. + * \param rdlen Rdata length. + * + * \return Pointer to resulting rdataset inside the buffer or NULL. + */ +knot_rdataset_t *knot_rdataset_static(uint8_t *buf, size_t bufsize, + const uint8_t *rdata, uint16_t rdlen); + /*! * \brief Removes single RR from RRS structure. * diff --git a/src/libknot/rrset.c b/src/libknot/rrset.c index 9a74d8e2ee..637a801580 100644 --- a/src/libknot/rrset.c +++ b/src/libknot/rrset.c @@ -12,6 +12,7 @@ #include "libknot/rrset.h" #include "libknot/rrtype/naptr.h" #include "libknot/rrtype/rrsig.h" +#include "contrib/macros.h" #include "contrib/mempattern.h" _public_ @@ -34,6 +35,39 @@ knot_rrset_t *knot_rrset_new(const knot_dname_t *owner, uint16_t type, return ret; } +_public_ +knot_rrset_t *knot_rrset_static(uint8_t *buf, size_t bufsize, knot_dname_t *owner, + uint16_t type, uint32_t ttl, const uint8_t *rdata, + uint16_t rdlen, bool copy_owner) +{ + size_t owsize = copy_owner ? knot_dname_size(owner) : 0; + + if (buf == NULL || rdata == NULL || (copy_owner && owner == NULL) || + bufsize < owsize + KNOT_RRSET_STATIC_BUFSIZE(rdlen)) { + return NULL; + } + + if (copy_owner) { + memcpy(buf, owner, owsize); + owner = (knot_dname_t *)buf; + buf += owsize; + bufsize -= owsize; + } + + knot_rrset_t *res = (knot_rrset_t *)PTR_ALIGN(buf); + knot_rdata_t *rd = (knot_rdata_t *)(res + 1); + + knot_rrset_init(res, owner, type, KNOT_CLASS_IN, ttl); + + res->rrs.count = 1; + res->rrs.size = knot_rdata_size(rdlen); + res->rrs.rdata = rd; + + knot_rdata_init(rd, rdlen, rdata); + + return res; +} + _public_ knot_rrset_t *knot_rrset_copy(const knot_rrset_t *src, knot_mm_t *mm) { diff --git a/src/libknot/rrset.h b/src/libknot/rrset.h index c0c897f897..658ba8b05b 100644 --- a/src/libknot/rrset.h +++ b/src/libknot/rrset.h @@ -37,6 +37,13 @@ typedef struct { void *additional; /*!< Additional records. */ } knot_rrset_t; +/*!< \brief Required static rrset buffer size for specified rdata length (reused owner pointer). */ +#define KNOT_RRSET_STATIC_BUFSIZE(rdlen) (KNOT_PTR_ALIGN_MAX + sizeof(knot_rrset_t) + knot_rdata_size(rdlen)) +/*!< \brief Required static rrset buffer size for specified rdata length (copied owner). */ +#define KNOT_RRSET_STATIC_OWNER_BUFSIZE(owner, rdlen) (knot_dname_size(owner) + KNOT_RRSET_STATIC_BUFSIZE(rdlen)) +/*!< \brief Required static rrset buffer size for specified rdata length (maximum possible owner). */ +#define KNOT_RRSET_STATIC_OWMAX_BUFSIZE(rdlen) (KNOT_DNAME_MAXLEN + KNOT_RRSET_STATIC_BUFSIZE(rdlen)) + /*! * \brief Creates a new RRSet with the given properties. * @@ -85,6 +92,26 @@ inline static void knot_rrset_init_empty(knot_rrset_t *rrset) knot_rrset_init(rrset, NULL, 0, KNOT_CLASS_IN, 0); } +/*! + * \brief Create a static 1-record RRset structure in a given buffer. + * + * \note Class is set to KNOT_CLASS_IN. + * + * \param buf Auxiliary buffer. + * \param bufsize Auxiliary buffer size. + * \param owner RRset owner name to be used as pointer. + * \param type RRset type. + * \param ttl RRset TTL. + * \param rdata Single RR rdata to be added. + * \param rdlen Rdata length. + * \param copy_owner Copy owner indication. + * + * \return Pointer to resulting RRset inside the buffer or NULL. + */ +knot_rrset_t *knot_rrset_static(uint8_t *buf, size_t bufsize, knot_dname_t *owner, + uint16_t type, uint32_t ttl, const uint8_t *rdata, + uint16_t rdlen, bool copy_owner); + /*! * \brief Creates new RRSet from \a src RRSet. * diff --git a/tests/libknot/test_rdataset.c b/tests/libknot/test_rdataset.c index 8c381526ec..b965f4d879 100644 --- a/tests/libknot/test_rdataset.c +++ b/tests/libknot/test_rdataset.c @@ -212,5 +212,16 @@ int main(int argc, char *argv[]) knot_rdataset_clear(&rdataset_lo, NULL); knot_rdataset_clear(&rdataset_gt, NULL); + uint8_t buf[32], rdb = 111; + for (size_t i = 0; i < sizeof(buf); i++) { + uint8_t *start = buf + sizeof(buf) - i; + knot_rdataset_t *rd = knot_rdataset_static(start, i, &rdb, sizeof(rdb)); + if (i < KNOT_PTR_ALIGN_MAX + sizeof(*rd) + 4) { + ok(rd == NULL, "static: buffer too small %zu", i); + } else { + ok(rd->rdata->data[0] == rdb, "static: correct rdata %zu", i); + } + } + return EXIT_SUCCESS; } diff --git a/tests/libknot/test_rrset.c b/tests/libknot/test_rrset.c index 9d0723826e..bf9057724b 100644 --- a/tests/libknot/test_rrset.c +++ b/tests/libknot/test_rrset.c @@ -60,6 +60,23 @@ static void test_rrset_size(void) knot_rrset_clear(&rrset, NULL); } +static void test_rrset_static(void) +{ + uint8_t buf[64], rdb = 11, ow[5] = { 3, 'c', 'o', 'm', 0 }; + for (size_t i = 1; i < sizeof(buf) - 1; i++) { + uint8_t *start = buf + sizeof(buf) - i; + knot_rrset_t *rr = knot_rrset_static(start, i, ow, KNOT_RRTYPE_NULL, + i, &rdb, sizeof(rdb), true); + if (i < sizeof(ow) + KNOT_PTR_ALIGN_MAX + sizeof(*rr) + 4) { + ok(rr == NULL, "static: buffer too small %zu", i); + } else { + ok(rr->owner[3] == ow[3], "static: correct owner %zu", i); + ok(rr->ttl == i, "static: correct ttl %zu", i); + ok(rr->rrs.rdata->data[0] == rdb, "static: correct rdata %zu", i); + } + } +} + int main(int argc, char *argv[]) { plan_lazy(); @@ -146,5 +163,8 @@ int main(int argc, char *argv[]) // Test rrset size computation functions. test_rrset_size(); + // Test static initialization helper. + test_rrset_static(); + return 0; } From 99bc8e86019b3af18ed14a4641ab37a373a98d2b Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 1 Jul 2026 19:15:49 +0200 Subject: [PATCH 633/675] knot: use knot_rrset_static() where appropriate --- src/knot/catalog/generate.c | 73 +++++++++++++------------------------ src/knot/zone/digest.c | 16 ++------ src/knot/zone/reverse.c | 25 +++++-------- 3 files changed, 39 insertions(+), 75 deletions(-) diff --git a/src/knot/catalog/generate.c b/src/knot/catalog/generate.c index 37f6d8e78b..4f47a6ef7c 100644 --- a/src/knot/catalog/generate.c +++ b/src/knot/catalog/generate.c @@ -52,12 +52,6 @@ knot_dname_t *catalog_member_owner(const knot_dname_t *member, const knot_dname_ return out; } -static void set_rdata(knot_rrset_t *rrset, uint8_t *data, uint16_t len) -{ - knot_rdata_init(rrset->rrs.rdata, len, data); - rrset->rrs.size = knot_rdata_size(len); -} - #define def_txt_owner(ptr_owner) \ knot_dname_storage_t txt_owner = "\x05""group"; \ size_t _ptr_ow_len = knot_dname_size(ptr_owner); \ @@ -79,22 +73,19 @@ static int add_group_txt(const knot_dname_t *ptr_owner, const char *group, def_txt_owner(ptr_owner); - uint8_t data[256] = { group_len }; + uint8_t data[256] = { group_len }, buf[KNOT_RRSET_STATIC_BUFSIZE(group_len + 1)]; memcpy(data + 1, group, group_len); - knot_rrset_t txt; - knot_rrset_init(&txt, txt_owner, KNOT_RRTYPE_TXT, KNOT_CLASS_IN, 0); - uint8_t txt_rd[256] = { 0 }; - txt.rrs.rdata = (knot_rdata_t *)txt_rd; - txt.rrs.count = 1; - set_rdata(&txt, data, 1 + group_len ); + knot_rrset_t *txtrr = knot_rrset_static(buf, sizeof(buf), txt_owner, KNOT_RRTYPE_TXT, + 0, data, group_len + 1, false); + assert(txtrr != NULL); int ret; if (conts != NULL) { zone_node_t *unused = NULL; - ret = zone_contents_add_rr(conts, &txt, &unused); + ret = zone_contents_add_rr(conts, txtrr, &unused); } else { - ret = zone_update_add(up, &txt); + ret = zone_update_add(up, txtrr); } return ret; @@ -125,16 +116,9 @@ int catalog_update_to_zone(struct zone_contents **conts, catalog_update_t *u, uint8_t version[9] = "\x07""version"; uint8_t cat_version[2] = "\x01" CATALOG_ZONE_VERSION; - // prepare common rrset with one rdata item - uint8_t rdata[256] = { 0 }; - knot_rrset_t rrset; - knot_rrset_init(&rrset, (knot_dname_t *)catzone, KNOT_RRTYPE_SOA, KNOT_CLASS_IN, 0); - rrset.rrs.rdata = (knot_rdata_t *)rdata; - rrset.rrs.count = 1; - // set catalog zone's SOA - uint8_t data[250]; - assert(sizeof(knot_rdata_t) + sizeof(data) <= sizeof(rdata)); + uint8_t data[2 * sizeof(invalid) + 5 * sizeof(uint32_t)]; + uint8_t rrbuf[KNOT_RRSET_STATIC_BUFSIZE(MAX(sizeof(data), KNOT_DNAME_MAXLEN))]; wire_ctx_t wire = wire_ctx_init(data, sizeof(data)); wire_ctx_write(&wire, invalid, sizeof(invalid)); wire_ctx_write(&wire, invalid, sizeof(invalid)); @@ -143,17 +127,17 @@ int catalog_update_to_zone(struct zone_contents **conts, catalog_update_t *u, wire_ctx_write_u32(&wire, CATALOG_SOA_RETRY); wire_ctx_write_u32(&wire, CATALOG_SOA_EXPIRE); wire_ctx_write_u32(&wire, 0); - set_rdata(&rrset, data, wire_ctx_offset(&wire)); - int ret = zone_contents_add_rr(c, &rrset, &unused); + assert(wire.error == KNOT_EOK); + int ret = zone_contents_add_rr(c, knot_rrset_static(rrbuf, sizeof(rrbuf), (knot_dname_t *)catzone, + KNOT_RRTYPE_SOA, 0, data, wire_ctx_offset(&wire), false), &unused); if (ret != KNOT_EOK) { goto fail; } // set catalog zone's NS unused = NULL; - rrset.type = KNOT_RRTYPE_NS; - set_rdata(&rrset, invalid, sizeof(invalid)); - ret = zone_contents_add_rr(c, &rrset, &unused); + ret = zone_contents_add_rr(c, knot_rrset_static(rrbuf, sizeof(rrbuf), (knot_dname_t *)catzone, + KNOT_RRTYPE_NS, 0, invalid, sizeof(invalid), false), &unused); if (ret != KNOT_EOK) { goto fail; } @@ -165,26 +149,22 @@ int catalog_update_to_zone(struct zone_contents **conts, catalog_update_t *u, ret = KNOT_ERROR; goto fail; } - rrset.owner = owner; - rrset.type = KNOT_RRTYPE_TXT; - set_rdata(&rrset, cat_version, sizeof(cat_version)); - ret = zone_contents_add_rr(c, &rrset, &unused); + ret = zone_contents_add_rr(c, knot_rrset_static(rrbuf, sizeof(rrbuf), owner, + KNOT_RRTYPE_TXT, 0, cat_version, sizeof(cat_version), false), &unused); if (ret != KNOT_EOK) { goto fail; } // insert member zone PTR records - rrset.type = KNOT_RRTYPE_PTR; catalog_it_t *it = catalog_it_begin(u); while (!catalog_it_finished(it)) { catalog_upd_val_t *val = catalog_it_val(it); if (val->add_owner == NULL) { continue; } - rrset.owner = val->add_owner; - set_rdata(&rrset, val->member, knot_dname_size(val->member)); unused = NULL; - if ((ret = zone_contents_add_rr(c, &rrset, &unused)) != KNOT_EOK || + if ((ret = zone_contents_add_rr(c, knot_rrset_static(rrbuf, sizeof(rrbuf), val->add_owner, + KNOT_RRTYPE_PTR, 0, val->member, knot_dname_size(val->member), false), &unused)) != KNOT_EOK || (ret = add_group_txt(val->add_owner, val->new_group, c, NULL)) != KNOT_EOK) { catalog_it_free(it); goto fail; @@ -202,11 +182,7 @@ int catalog_update_to_zone(struct zone_contents **conts, catalog_update_t *u, int catalog_update_to_update(catalog_update_t *u, struct zone_update *zu) { - knot_rrset_t ptr; - knot_rrset_init(&ptr, NULL, KNOT_RRTYPE_PTR, KNOT_CLASS_IN, 0); - uint8_t tmp[KNOT_DNAME_MAXLEN + sizeof(knot_rdata_t)]; - ptr.rrs.rdata = (knot_rdata_t *)tmp; - ptr.rrs.count = 1; + uint8_t rrbuf[KNOT_RRSET_STATIC_BUFSIZE(KNOT_DNAME_MAXLEN)]; int ret = KNOT_EOK; catalog_it_t *it = catalog_it_begin(u); @@ -226,17 +202,20 @@ int catalog_update_to_update(catalog_update_t *u, struct zone_update *zu) continue; } - set_rdata(&ptr, val->member, knot_dname_size(val->member)); + knot_rrset_t *ptrrr = knot_rrset_static(rrbuf, sizeof(rrbuf), NULL, KNOT_RRTYPE_PTR, 0, + val->member, knot_dname_size(val->member), false); + assert(ptrrr != NULL); + if (val->type == CAT_UPD_REM && knot_dname_is_equal(zu->zone->name, val->rem_catz)) { - ptr.owner = val->rem_owner; - ret = zone_update_remove(zu, &ptr); + ptrrr->owner = val->rem_owner; + ret = zone_update_remove(zu, ptrrr); if (ret == KNOT_EOK) { ret = rem_group_txt(val->rem_owner, zu); } } if (val->type == CAT_UPD_ADD && knot_dname_is_equal(zu->zone->name, val->add_catz)) { - ptr.owner = val->add_owner; - ret = zone_update_add(zu, &ptr); + ptrrr->owner = val->add_owner; + ret = zone_update_add(zu, ptrrr); if (ret == KNOT_EOK) { ret = add_group_txt(val->add_owner, val->new_group, NULL, zu); } diff --git a/src/knot/zone/digest.c b/src/knot/zone/digest.c index 2503ec101e..288d534f99 100644 --- a/src/knot/zone/digest.c +++ b/src/knot/zone/digest.c @@ -279,9 +279,9 @@ int zone_update_add_digest(struct zone_update *update, int algorithm, bool place } } - knot_rrset_t zonemd, soa = node_rrset(update->new_cont->apex, KNOT_RRTYPE_SOA); + knot_rrset_t soa = node_rrset(update->new_cont->apex, KNOT_RRTYPE_SOA); - uint8_t rdata[zonemd_hash_offs() + dsize]; + uint8_t rdata[zonemd_hash_offs() + dsize], buf[KNOT_RRSET_STATIC_BUFSIZE(sizeof(rdata))]; wire_ctx_t wire = wire_ctx_init(rdata, sizeof(rdata)); wire_ctx_write_u32(&wire, knot_soa_serial(soa.rrs.rdata)); wire_ctx_write_u8(&wire, KNOT_ZONEMD_SCHEME_SIMPLE); @@ -293,14 +293,6 @@ int zone_update_add_digest(struct zone_update *update, int algorithm, bool place free(digest); } - knot_rrset_init(&zonemd, update->new_cont->apex->owner, KNOT_RRTYPE_ZONEMD, - KNOT_CLASS_IN, soa.ttl); - int ret = knot_rrset_add_rdata(&zonemd, rdata, sizeof(rdata), NULL); - if (ret != KNOT_EOK) { - return ret; - } - - ret = zone_update_add(update, &zonemd); - knot_rdataset_clear(&zonemd.rrs, NULL); - return ret; + return zone_update_add(update, knot_rrset_static(buf, sizeof(buf), update->new_cont->apex->owner, + KNOT_RRTYPE_ZONEMD, soa.ttl, rdata, sizeof(rdata), false)); } diff --git a/src/knot/zone/reverse.c b/src/knot/zone/reverse.c index 937eb11d3f..a8d6a2b74d 100644 --- a/src/knot/zone/reverse.c +++ b/src/knot/zone/reverse.c @@ -45,13 +45,6 @@ static void reverse_owner6(knot_dname_storage_t out, uint8_t *in6_addr_raw) memcpy(pos, reverse6postfix, reverse6pf_len); } -static void set_rdata(knot_rrset_t *rrset, uint8_t *data, uint16_t len) -{ - knot_rdata_init(rrset->rrs.rdata, len, data); - rrset->rrs.size = knot_rdata_size(len); - rrset->rrs.count = 1; -} - typedef struct { const knot_dname_t *rev_zone; zone_contents_t *rev_conts; @@ -65,12 +58,10 @@ static int reverse_from_node(zone_node_t *node, void *data) rev_ctx_t *ctx = data; knot_rrset_t forw = node_rrset(node, ctx->ipv6 ? KNOT_RRTYPE_AAAA : KNOT_RRTYPE_A); + size_t node_owner_len = knot_dname_size(node->owner); - knot_rrset_t rev; - knot_dname_storage_t rev_owner; // Will be filled later. - uint8_t rev_data[knot_rdata_size(KNOT_DNAME_MAXLEN)]; // Will be filled later. - knot_rrset_init(&rev, rev_owner, KNOT_RRTYPE_PTR, forw.rclass, forw.ttl); - rev.rrs.rdata = (knot_rdata_t *)rev_data; + uint8_t buf[KNOT_RRSET_STATIC_BUFSIZE(KNOT_DNAME_MAXLEN)]; + knot_dname_storage_t rev_owner; int ret = KNOT_EOK; @@ -87,17 +78,19 @@ static int reverse_from_node(zone_node_t *node, void *data) continue; } - set_rdata(&rev, node->owner, knot_dname_size(node->owner)); + knot_rrset_t *revrr = knot_rrset_static(buf, sizeof(buf), rev_owner, KNOT_RRTYPE_PTR, forw.ttl, + node->owner, node_owner_len, false); + assert(revrr != NULL); if (ctx->rev_upd != NULL) { if (ctx->upd_rem) { - ret = zone_update_remove(ctx->rev_upd, &rev); + ret = zone_update_remove(ctx->rev_upd, revrr); } else { - ret = zone_update_add(ctx->rev_upd, &rev); + ret = zone_update_add(ctx->rev_upd, revrr); } } else { zone_node_t *unused = NULL; - ret = zone_contents_add_rr(ctx->rev_conts, &rev, &unused); + ret = zone_contents_add_rr(ctx->rev_conts, revrr, &unused); } rd = knot_rdataset_next(rd); From 7d074afe8fd65c0dc7e603fe54f82d0e376cc9ff Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 2 Jul 2026 06:49:57 +0200 Subject: [PATCH 634/675] zone/offline expiry: improve log message --- src/knot/zone/zonedb-load.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 2e2e23bdfa..0bdfebe938 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -202,7 +202,7 @@ static zone_t *create_zone_new(conf_t *conf, const knot_dname_t *name, if (zone_expired(zone)) { // expired => force bootstrap, no load attempt - log_zone_info(zone->name, "zone will be bootstrapped"); + log_zone_info(zone->name, "zone had expired, will be bootstrapped"); assert(zone_is_slave(conf, zone)); replan_load_bootstrap(conf, zone); zone->started = true; From d150ae06bffa3f1697e13fd8564f52a216470755 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 2 Jul 2026 08:14:17 +0200 Subject: [PATCH 635/675] xdp: add missing Ethernet header in socket->frame_limit calculation from MTU --- src/libknot/xdp/xdp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libknot/xdp/xdp.c b/src/libknot/xdp/xdp.c index 214675a8dd..5dbc5d935d 100644 --- a/src/libknot/xdp/xdp.c +++ b/src/libknot/xdp/xdp.c @@ -234,8 +234,8 @@ int knot_xdp_init(knot_xdp_socket_t **socket, const char *if_name, int if_queue, (*socket)->frame_limit = FRAME_SIZE; ret = knot_eth_mtu(if_name); - if (ret > 0) { - (*socket)->frame_limit = MIN((unsigned)ret, (*socket)->frame_limit); + if (ret > 0) { // Note: VLAN header isn't considered for simplicity. + (*socket)->frame_limit = MIN(sizeof(struct ethhdr) + ret, (*socket)->frame_limit); } if (flags & KNOT_XDP_FILTER_ROUTE) { From 73627820a1b8b5596b587d7e56aeb55221357e9a Mon Sep 17 00:00:00 2001 From: vendemiat Date: Mon, 29 Jun 2026 16:45:14 -0700 Subject: [PATCH 636/675] quic: close connection on TLS handshake failure Close connection on NGTCP2_ERR_CRYPTO from ngtcp2_conn_read_pkt) instead of silently discarding the packet. Fixes timeout issues for clients failing TLS handshake (for e.g. ALPN mismatch or certificate algorithm mismatch) --- src/libknot/quic/quic.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c index dbda3f0ad2..ae85790007 100644 --- a/src/libknot/quic/quic.c +++ b/src/libknot/quic/quic.c @@ -727,6 +727,30 @@ int knot_quic_handle(knot_quic_table_t *table, knot_quic_reply_t *reply, knot_quic_table_rem(conn, table); ret = KNOT_EOK; goto finish; + } else if (ret == NGTCP2_ERR_CRYPTO) { // TLS handshake failed -- send CONNECTION_CLOSE + ngtcp2_ccerr ccerr; + uint8_t tls_alert = ngtcp2_conn_get_tls_alert(conn->conn); + if (tls_alert != 0) { + ngtcp2_ccerr_set_tls_alert(&ccerr, tls_alert, NULL, 0); + } else { + ngtcp2_ccerr_set_liberr(&ccerr, ret, NULL, 0); + } + if (reply->alloc_reply(reply) == KNOT_EOK) { + ngtcp2_ssize nwrite = ngtcp2_conn_write_connection_close( + conn->conn, NULL, &pi, + reply->out_payload->iov_base, + reply->out_payload->iov_len, &ccerr, now); + if (nwrite > 0) { + reply->out_payload->iov_len = nwrite; + reply->ecn = pi.ecn; + (void)reply->send_reply(reply); + } else { + reply->free_reply(reply); + } + } + knot_quic_table_rem(conn, table); + ret = KNOT_EBADCERT; + goto finish; } else if (ngtcp2_err_is_fatal(ret)) { // connection doomed if (ret == NGTCP2_ERR_CALLBACK_FAILURE) { ret = KNOT_EBADCERT; From 916424b2405d457ff80d9676cf6956dd97f1adb6 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 2 Jul 2026 14:38:36 +0200 Subject: [PATCH 637/675] libknot/QUIC: refactoring: remove conn from table in send_special after sending closing pkt --- src/knot/query/quic-requestor.c | 4 ++-- src/libknot/quic/quic.c | 1 + src/utils/kxdpgun/main.c | 1 - 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/knot/query/quic-requestor.c b/src/knot/query/quic-requestor.c index 1757bc302e..21a7624a91 100644 --- a/src/knot/query/quic-requestor.c +++ b/src/knot/query/quic-requestor.c @@ -286,9 +286,9 @@ void knot_qreq_close(struct knot_quic_reply *r, bool send_close) if (send_close && conn->conn != NULL) { r->handle_ret = KNOT_QUIC_HANDLE_RET_CLOSE; (void)knot_quic_send(table, conn, r, QUIC_MAX_SEND_PER_RECV, 0); + } else { + knot_quic_table_rem(conn, table); } - - knot_quic_table_rem(conn, table); knot_quic_cleanup(&conn, 1); if (table != NULL) { knot_creds_free(table->creds); diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c index ae85790007..8c38905ad0 100644 --- a/src/libknot/quic/quic.c +++ b/src/libknot/quic/quic.c @@ -926,6 +926,7 @@ static int send_special(knot_quic_table_t *quic_table, knot_quic_reply_t *rpl, relay->conn, NULL, &pi, rpl->out_payload->iov_base, rpl->out_payload->iov_len, &ccerr, now ); + knot_quic_table_rem(relay, quic_table); break; case -QUIC_SEND_EXCESSIVE_LOAD: ccerr.type = NGTCP2_CCERR_TYPE_APPLICATION; diff --git a/src/utils/kxdpgun/main.c b/src/utils/kxdpgun/main.c index 222fed4081..0079db46c2 100644 --- a/src/utils/kxdpgun/main.c +++ b/src/utils/kxdpgun/main.c @@ -705,7 +705,6 @@ void *xdp_gun_thread(void *_ctx) assert(!(ctx->ignore2 & XDP_TCP_IGNORE_DATA_ACK)); quic_reply.handle_ret = KNOT_QUIC_HANDLE_RET_CLOSE; ret = knot_quic_send(quic_table, conn, &quic_reply, 1, 0); - knot_quic_table_rem(conn, quic_table); knot_quic_cleanup(&conn, 1); if (ret != KNOT_EOK) { periodic_stats.errors++; From 7e6525498038810914c2c4ae20476d2eb59dd439 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 2 Jul 2026 14:39:12 +0200 Subject: [PATCH 638/675] libknot/QUIC: refactoring: remove conn from table in send_special after sending excessiveLOADclosing pkt --- src/libknot/quic/quic.c | 1 + src/libknot/quic/quic_conn.c | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c index 8c38905ad0..216cccf471 100644 --- a/src/libknot/quic/quic.c +++ b/src/libknot/quic/quic.c @@ -935,6 +935,7 @@ static int send_special(knot_quic_table_t *quic_table, knot_quic_reply_t *rpl, relay->conn, find_path ? &path : NULL, &pi, rpl->out_payload->iov_base, rpl->out_payload->iov_len, &ccerr, now ); + knot_quic_table_rem(relay, quic_table); break; default: ret = KNOT_EINVAL; diff --git a/src/libknot/quic/quic_conn.c b/src/libknot/quic/quic_conn.c index a96210e91d..3ca65ac110 100644 --- a/src/libknot/quic/quic_conn.c +++ b/src/libknot/quic/quic_conn.c @@ -125,15 +125,12 @@ void knot_quic_table_sweep(knot_quic_table_t *table, struct knot_quic_reply *swe } else if (table->usage > table->max_conns) { knot_sweep_stats_incr(stats, KNOT_SWEEP_CTR_LIMIT_CONN); send_excessive_load(c, sweep_reply, table); - knot_quic_table_rem(c, table); } else if (ATOMIC_GET(table->obufs_size) > table->obufs_max) { knot_sweep_stats_incr(stats, KNOT_SWEEP_CTR_LIMIT_OBUF); send_excessive_load(c, sweep_reply, table); - knot_quic_table_rem(c, table); } else if (table->ibufs_size > table->ibufs_max) { knot_sweep_stats_incr(stats, KNOT_SWEEP_CTR_LIMIT_IBUF); send_excessive_load(c, sweep_reply, table); - knot_quic_table_rem(c, table); } else if (quic_conn_timeout(c, &now)) { int ret = knot_quic_handle_expiry(c); if (ret != NGTCP2_NO_ERROR) { // usually NGTCP2_ERR_IDLE_CLOSE or NGTCP2_ERR_HANDSHAKE_TIMEOUT From 6044ef298fc131b8c10a62f0327d5b48ad6d8fdb Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 2 Jul 2026 14:51:13 +0200 Subject: [PATCH 639/675] libknot/QUIC: simplify sending close when TSL handshake failed --- src/libknot/quic/quic.c | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c index 216cccf471..b41d25e838 100644 --- a/src/libknot/quic/quic.c +++ b/src/libknot/quic/quic.c @@ -727,29 +727,8 @@ int knot_quic_handle(knot_quic_table_t *table, knot_quic_reply_t *reply, knot_quic_table_rem(conn, table); ret = KNOT_EOK; goto finish; - } else if (ret == NGTCP2_ERR_CRYPTO) { // TLS handshake failed -- send CONNECTION_CLOSE - ngtcp2_ccerr ccerr; - uint8_t tls_alert = ngtcp2_conn_get_tls_alert(conn->conn); - if (tls_alert != 0) { - ngtcp2_ccerr_set_tls_alert(&ccerr, tls_alert, NULL, 0); - } else { - ngtcp2_ccerr_set_liberr(&ccerr, ret, NULL, 0); - } - if (reply->alloc_reply(reply) == KNOT_EOK) { - ngtcp2_ssize nwrite = ngtcp2_conn_write_connection_close( - conn->conn, NULL, &pi, - reply->out_payload->iov_base, - reply->out_payload->iov_len, &ccerr, now); - if (nwrite > 0) { - reply->out_payload->iov_len = nwrite; - reply->ecn = pi.ecn; - (void)reply->send_reply(reply); - } else { - reply->free_reply(reply); - } - } - knot_quic_table_rem(conn, table); - ret = KNOT_EBADCERT; + } else if (ret == NGTCP2_ERR_CRYPTO) { // TLS handshake failed + ret = -QUIC_SEND_CONN_CLOSE; goto finish; } else if (ngtcp2_err_is_fatal(ret)) { // connection doomed if (ret == NGTCP2_ERR_CALLBACK_FAILURE) { From d7273756eed5925843f5b033e286ba075671cd38 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Fri, 3 Jul 2026 15:22:20 +0200 Subject: [PATCH 640/675] libknot/QUIC: improved error reporting when closing conn --- src/libknot/quic/quic.c | 20 +++++++++----------- src/libknot/quic/quic.h | 2 ++ src/libknot/quic/quic_conn.c | 3 ++- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c index b41d25e838..aad83abbce 100644 --- a/src/libknot/quic/quic.c +++ b/src/libknot/quic/quic.c @@ -38,7 +38,6 @@ #define QUIC_SEND_RETRY NGTCP2_ERR_RETRY #define QUIC_SEND_STATELESS_RESET (-NGTCP2_STATELESS_RESET_TOKENLEN) #define QUIC_SEND_CONN_CLOSE (-KNOT_QUIC_HANDLE_RET_CLOSE) -#define QUIC_SEND_EXCESSIVE_LOAD (-KNOT_QUIC_ERR_EXCESSIVE_LOAD) #define TLS_CALLBACK_ERR (-1) @@ -729,6 +728,7 @@ int knot_quic_handle(knot_quic_table_t *table, knot_quic_reply_t *reply, goto finish; } else if (ret == NGTCP2_ERR_CRYPTO) { // TLS handshake failed ret = -QUIC_SEND_CONN_CLOSE; + reply->tls_alert = ngtcp2_conn_get_tls_alert(conn->conn); // TODO change to ngtcp2_conn_get_tls_alert2() once ngtcp2 is updated on common OSs goto finish; } else if (ngtcp2_err_is_fatal(ret)) { // connection doomed if (ret == NGTCP2_ERR_CALLBACK_FAILURE) { @@ -858,7 +858,7 @@ static int send_special(knot_quic_table_t *quic_table, knot_quic_reply_t *rpl, .user_data = NULL }; bool find_path = (rpl->ip_rem == NULL); assert(find_path == (bool)(rpl->ip_loc == NULL)); - assert(!find_path || rpl->handle_ret == -QUIC_SEND_EXCESSIVE_LOAD); + assert(!find_path || rpl->handle_ret == -QUIC_SEND_CONN_CLOSE); switch (rpl->handle_ret) { case -QUIC_SEND_VERSION_NEGOTIATION: @@ -901,15 +901,13 @@ static int send_special(knot_quic_table_t *quic_table, knot_quic_reply_t *rpl, ); break; case -QUIC_SEND_CONN_CLOSE: - ret = ngtcp2_conn_write_connection_close( - relay->conn, NULL, &pi, rpl->out_payload->iov_base, - rpl->out_payload->iov_len, &ccerr, now - ); - knot_quic_table_rem(relay, quic_table); - break; - case -QUIC_SEND_EXCESSIVE_LOAD: - ccerr.type = NGTCP2_CCERR_TYPE_APPLICATION; - ccerr.error_code = KNOT_QUIC_ERR_EXCESSIVE_LOAD; + if (rpl->tls_alert != 0) { + ngtcp2_ccerr_set_tls_alert(&ccerr, rpl->tls_alert, NULL, 0); + } else if (rpl->flags & KNOT_QUIC_ERR_EXCESSIVE_LOAD) { + ngtcp2_ccerr_set_application_error(&ccerr, KNOT_QUIC_ERR_EXCESSIVE_LOAD, NULL, 0); + } else { + ngtcp2_ccerr_set_liberr(&ccerr, ret, NULL, 0); + } ret = ngtcp2_conn_write_connection_close( relay->conn, find_path ? &path : NULL, &pi, rpl->out_payload->iov_base, rpl->out_payload->iov_len, &ccerr, now diff --git a/src/libknot/quic/quic.h b/src/libknot/quic/quic.h index 75eeafb219..3820718b04 100644 --- a/src/libknot/quic/quic.h +++ b/src/libknot/quic/quic.h @@ -41,6 +41,8 @@ typedef struct knot_quic_reply { void *sock; int handle_ret; uint8_t ecn; + uint8_t flags; + uint8_t tls_alert; int (*alloc_reply)(struct knot_quic_reply *); int (*send_reply)(struct knot_quic_reply *); diff --git a/src/libknot/quic/quic_conn.c b/src/libknot/quic/quic_conn.c index 3ca65ac110..d5a1f3017a 100644 --- a/src/libknot/quic/quic_conn.c +++ b/src/libknot/quic/quic_conn.c @@ -104,7 +104,8 @@ static void send_excessive_load(knot_quic_conn_t *conn, struct knot_quic_reply * knot_quic_table_t *table) { if (reply != NULL) { - reply->handle_ret = KNOT_QUIC_ERR_EXCESSIVE_LOAD; + reply->flags |= KNOT_QUIC_ERR_EXCESSIVE_LOAD; + reply->handle_ret = KNOT_QUIC_HANDLE_RET_CLOSE; (void)knot_quic_send(table, conn, reply, 0, 0); } } From 3b890a5138d6e452beb8dcd606d556de59beb33a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Mon, 6 Jul 2026 19:02:52 +0200 Subject: [PATCH 641/675] ctl: use current TTL for zone-unset --- src/knot/ctl/commands.c | 10 +++++----- tests-extra/tests/ctl/basic/test.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index 239f087475..f573e0e11d 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -1422,8 +1422,7 @@ static int get_ttl(zone_t *zone, ctl_args_t *args, uint32_t *ttl) return KNOT_EOK; } -static int create_rrset(knot_rrset_t **rrset, zone_t *zone, ctl_args_t *args, - bool need_ttl) +static int create_rrset(knot_rrset_t **rrset, zone_t *zone, ctl_args_t *args, bool set) { knot_dname_txt_storage_t origin_buff; char *origin = knot_dname_to_str(origin_buff, zone->name, sizeof(origin_buff)); @@ -1434,7 +1433,7 @@ static int create_rrset(knot_rrset_t **rrset, zone_t *zone, ctl_args_t *args, const char *owner = args->data[KNOT_CTL_IDX_OWNER]; const char *type = args->data[KNOT_CTL_IDX_TYPE]; const char *data = args->data[KNOT_CTL_IDX_DATA]; - const char *ttl = need_ttl ? args->data[KNOT_CTL_IDX_TTL] : NULL; + const char *ttl = set ? args->data[KNOT_CTL_IDX_TTL] : NULL; bool force = ctl_has_flag(args->data[KNOT_CTL_IDX_FLAGS], CTL_FLAG_FORCE); @@ -1444,8 +1443,9 @@ static int create_rrset(knot_rrset_t **rrset, zone_t *zone, ctl_args_t *args, // Choose default TTL if none was specified. uint32_t default_ttl = 0; - if (ttl == NULL && need_ttl) { - if (get_ttl(zone, args, &default_ttl) != KNOT_EOK) { + if (ttl == NULL) { + int ret = get_ttl(zone, args, &default_ttl); + if (ret != KNOT_EOK && set) { conf_val_t val = conf_zone_get(conf(), C_DEFAULT_TTL, zone->name); default_ttl = conf_int(&val); } diff --git a/tests-extra/tests/ctl/basic/test.py b/tests-extra/tests/ctl/basic/test.py index e3e94ec394..da5d7a544c 100644 --- a/tests-extra/tests/ctl/basic/test.py +++ b/tests-extra/tests/ctl/basic/test.py @@ -279,6 +279,35 @@ resp = ctl.receive_block() isset("letter." + ZONE_NAME not in resp[ZONE_NAME], "lower-cased and removed node lETter") +# Remove with correct TTL +ctl.send_block(cmd="zone-begin") +resp = ctl.receive_block() + +ctl.send_block(cmd="zone-set", zone=ZONE_NAME, owner="remove_ttl", ttl="3600", rtype="TXT", data="text") +resp = ctl.receive_block() + +ctl.send_block(cmd="zone-commit") +resp = ctl.receive_block() + +ctl.send_block(cmd="zone-begin") +resp = ctl.receive_block() + +ctl.send_block(cmd="zone-unset", zone=ZONE_NAME, owner="remove_ttl", rtype="TXT", data="text") +resp = ctl.receive_block() + +ctl.send_block(cmd="zone-set", zone=ZONE_NAME, owner="remove_ttl", ttl="0", rtype="TXT", data="text") +resp = ctl.receive_block() + +ctl.send_block(cmd="zone-commit") +resp = ctl.receive_block() + +ctl.send_block(cmd="zone-read", zone=ZONE_NAME, owner="remove_ttl", rtype="TXT") +resp = ctl.receive_block() +record = resp[ZONE_NAME]["remove_ttl." + ZONE_NAME] +isset(record["TXT"], "updated TXT record") +isset(record["TXT"]["data"][0] == "\"text\"", "new TXT value") +isset(record["TXT"]["ttl"][0] == "0", "0 TTL of new TXT value") + # Purge the zone data. ctl.send_block(cmd="zone-purge", flags="B") resp = ctl.receive_block() From ecf3e99f31533c7893bd1d428ffa72dc5db42dc0 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 8 Jul 2026 11:01:00 +0200 Subject: [PATCH 642/675] libknot/QUIC: proper timeout value for client conns... ...mostly needed for proper sweep function in kxdpgun --- src/libknot/quic/quic.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libknot/quic/quic.c b/src/libknot/quic/quic.c index aad83abbce..03fac515df 100644 --- a/src/libknot/quic/quic.c +++ b/src/libknot/quic/quic.c @@ -583,6 +583,7 @@ int knot_quic_client(knot_quic_table_t *table, struct sockaddr_in6 *dest, return ret; } + quic_conn_mark_used(conn, table); *out_conn = conn; return KNOT_EOK; } From 4bf0c188c5ec427783ad8f4b8a9a951dc10bbbcc Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 7 Jul 2026 16:43:40 +0200 Subject: [PATCH 643/675] Knot.files: update --- Knot.files | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Knot.files b/Knot.files index e622a646af..92fe865f53 100644 --- a/Knot.files +++ b/Knot.files @@ -124,8 +124,8 @@ src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_unreachable.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.c src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_vec.h src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_version.c -src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.c -src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_window_filter.h +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.c +src/contrib/libngtcp2/ngtcp2/lib/ngtcp2_wf.h src/contrib/libngtcp2/ngtcp2/ngtcp2.h src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto_gnutls.h From edd71b4356a02fb77194f48fce29e0a4a3373d91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Tue, 2 Jun 2026 14:44:11 +0200 Subject: [PATCH 644/675] contrib/ucw/mempool: unify types with kres --- src/contrib/ucw/mempool.c | 36 ++++++++++++++++++------------------ src/contrib/ucw/mempool.h | 25 +++++++++++++------------ 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/src/contrib/ucw/mempool.c b/src/contrib/ucw/mempool.c index 8e835c117f..4390e223ef 100644 --- a/src/contrib/ucw/mempool.c +++ b/src/contrib/ucw/mempool.c @@ -26,7 +26,7 @@ /** Align an integer \p s to the nearest higher multiple of \p a (which should be a power of two) **/ #define ALIGN_TO(s, a) (((s)+a-1)&~(a-1)) #define MP_CHUNK_TAIL ALIGN_TO(sizeof(struct mempool_chunk), CPU_STRUCT_ALIGN) -#define MP_SIZE_MAX (~0U - MP_CHUNK_TAIL - CPU_PAGE_SIZE) +#define MP_SIZE_MAX (SIZE_MAX - MP_CHUNK_TAIL - CPU_PAGE_SIZE) #define DBG(s, ...) /** \note Imported MMAP backend from bigalloc.c */ @@ -61,11 +61,11 @@ page_free(void *start, uint64_t len) struct mempool_chunk { struct mempool_chunk *next; - unsigned size; + size_t size; }; -static unsigned -mp_align_size(unsigned size) +static size_t +mp_align_size(size_t size) { #ifdef CONFIG_UCW_POOL_IS_MMAP return ALIGN_TO(size + MP_CHUNK_TAIL, CPU_PAGE_SIZE) - MP_CHUNK_TAIL; @@ -75,7 +75,7 @@ mp_align_size(unsigned size) } void -mp_init(struct mempool *pool, unsigned chunk_size) +mp_init(struct mempool *pool, size_t chunk_size) { chunk_size = mp_align_size(MAX(sizeof(struct mempool), chunk_size)); *pool = (struct mempool) { @@ -86,7 +86,7 @@ mp_init(struct mempool *pool, unsigned chunk_size) } static void * -mp_new_big_chunk(unsigned size) +mp_new_big_chunk(size_t size) { uint8_t *data = malloc(size + MP_CHUNK_TAIL); if (!data) { @@ -107,7 +107,7 @@ mp_free_big_chunk(struct mempool_chunk *chunk) } static void * -mp_new_chunk(unsigned size) +mp_new_chunk(size_t size) { #ifdef CONFIG_UCW_POOL_IS_MMAP uint8_t *data = page_alloc(size + MP_CHUNK_TAIL); @@ -136,13 +136,13 @@ mp_free_chunk(struct mempool_chunk *chunk) } struct mempool * -mp_new(unsigned chunk_size) +mp_new(size_t chunk_size) { chunk_size = mp_align_size(MAX(sizeof(struct mempool), chunk_size)); struct mempool_chunk *chunk = mp_new_chunk(chunk_size); struct mempool *pool = (void *)chunk - chunk_size; ASAN_UNPOISON_MEMORY_REGION(pool, sizeof(*pool)); - DBG("Creating mempool %p with %u bytes long chunks", pool, chunk_size); + DBG("Creating mempool %p with %zu bytes long chunks", pool, chunk_size); chunk->next = NULL; ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); *pool = (struct mempool) { @@ -249,7 +249,7 @@ mp_total_size(struct mempool *pool) } static void * -mp_alloc_internal(struct mempool *pool, unsigned size) +mp_alloc_internal(struct mempool *pool, size_t size) { struct mempool_chunk *chunk; if (size <= pool->threshold) { @@ -268,7 +268,7 @@ mp_alloc_internal(struct mempool *pool, unsigned size) return (uint8_t *)chunk - pool->chunk_size; } else if (size <= MP_SIZE_MAX) { pool->idx = 1; - unsigned aligned = ALIGN_TO(size, CPU_STRUCT_ALIGN); + size_t aligned = ALIGN_TO(size, CPU_STRUCT_ALIGN); chunk = mp_new_big_chunk(aligned); if (!chunk) { return NULL; @@ -279,20 +279,20 @@ mp_alloc_internal(struct mempool *pool, unsigned size) pool->state.free[1] = aligned - size; return pool->last_big = (uint8_t *)chunk - aligned; } else { - fprintf(stderr, "Cannot allocate %u bytes from a mempool", size); + fprintf(stderr, "Cannot allocate %zu bytes from a mempool", size); assert(0); return NULL; } } void * -mp_alloc(struct mempool *pool, unsigned size) +mp_alloc(struct mempool *pool, size_t size) { - unsigned avail = pool->state.free[0] & ~(CPU_STRUCT_ALIGN - 1); + size_t avail = pool->state.free[0] & ~(size_t)(CPU_STRUCT_ALIGN - 1); void *ptr = NULL; if (size <= avail) { pool->state.free[0] = avail - size; - ptr = (uint8_t*)pool->state.last[0] - avail; + ptr = (uint8_t *)pool->state.last[0] - avail; } else { ptr = mp_alloc_internal(pool, size); } @@ -301,11 +301,11 @@ mp_alloc(struct mempool *pool, unsigned size) } void * -mp_alloc_noalign(struct mempool *pool, unsigned size) +mp_alloc_noalign(struct mempool *pool, size_t size) { void *ptr = NULL; if (size <= pool->state.free[0]) { - ptr = (uint8_t*)pool->state.last[0] - pool->state.free[0]; + ptr = (uint8_t *)pool->state.last[0] - pool->state.free[0]; pool->state.free[0] -= size; } else { ptr = mp_alloc_internal(pool, size); @@ -315,7 +315,7 @@ mp_alloc_noalign(struct mempool *pool, unsigned size) } void * -mp_alloc_zero(struct mempool *pool, unsigned size) +mp_alloc_zero(struct mempool *pool, size_t size) { void *ptr = mp_alloc(pool, size); bzero(ptr, size); diff --git a/src/contrib/ucw/mempool.h b/src/contrib/ucw/mempool.h index c5a4fa8eae..61004438da 100644 --- a/src/contrib/ucw/mempool.h +++ b/src/contrib/ucw/mempool.h @@ -27,7 +27,7 @@ * You should use this one as an opaque handle only, the insides are internal. **/ struct mempool_state { - unsigned free[2]; + size_t free[2]; void *last[2]; }; @@ -38,13 +38,14 @@ struct mempool_state { struct mempool { struct mempool_state state; void *unused, *last_big; - unsigned chunk_size, threshold, idx; + size_t chunk_size, threshold; + unsigned idx; }; -struct mempool_stats { /** Mempool statistics. See mp_stats(). **/ - uint64_t total_size; /** Real allocated size in bytes. */ - unsigned chain_count[3]; /** Number of allocated chunks in small/big/unused chains. */ - unsigned chain_size[3]; /** Size of allocated chunks in small/big/unused chains. */ +struct mempool_stats { /** Mempool statistics. See mp_stats(). **/ + uint64_t total_size; /** Real allocated size in bytes. */ + unsigned chain_count[3]; /** Number of allocated chunks in small/big/unused chains. */ + uint64_t chain_size[3]; /** Size of allocated chunks in small/big/unused chains. */ }; /*** @@ -55,13 +56,13 @@ struct mempool_stats { /** Mempool statistics. See mp_stats(). **/ /** * Initialize a given mempool structure. - * \p chunk_size must be in the interval `[1, UINT_MAX / 2]`. + * \p chunk_size must be in the interval `[1, SIZE_MAX / 2]`. * It will allocate memory by this large chunks and take * memory to satisfy requests from them. * * Memory pools can be treated as <>, see <>. **/ -void mp_init(struct mempool *pool, unsigned chunk_size); +void mp_init(struct mempool *pool, size_t chunk_size); /** * Allocate and initialize a new memory pool. @@ -71,7 +72,7 @@ void mp_init(struct mempool *pool, unsigned chunk_size); * * Memory pools can be treated as <>, see <>. **/ -struct mempool *mp_new(unsigned chunk_size); +struct mempool *mp_new(size_t chunk_size); /** * Cleanup mempool initialized by mp_init or mp_new. @@ -111,14 +112,14 @@ uint64_t mp_total_size(struct mempool *pool); /** How many bytes were allocated * `CPU_STRUCT_ALIGN` bytes and this condition remains true also * after future reallocations. **/ -void *mp_alloc(struct mempool *pool, unsigned size); +void *mp_alloc(struct mempool *pool, size_t size); /** * The same as \ref mp_alloc(), but the result may be unaligned. **/ -void *mp_alloc_noalign(struct mempool *pool, unsigned size); +void *mp_alloc_noalign(struct mempool *pool, size_t size); /** * The same as \ref mp_alloc(), but fills the newly allocated memory with zeroes. **/ -void *mp_alloc_zero(struct mempool *pool, unsigned size); +void *mp_alloc_zero(struct mempool *pool, size_t size); From b97ab0162c1b29d3b04ab8d1f9024598340864a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Tue, 2 Jun 2026 15:54:15 +0200 Subject: [PATCH 645/675] contrib/ucw/mempools: remove unused *_zero methods --- src/contrib/ucw/mempool.c | 8 -------- src/contrib/ucw/mempool.h | 5 ----- 2 files changed, 13 deletions(-) diff --git a/src/contrib/ucw/mempool.c b/src/contrib/ucw/mempool.c index 4390e223ef..e7279f313e 100644 --- a/src/contrib/ucw/mempool.c +++ b/src/contrib/ucw/mempool.c @@ -313,11 +313,3 @@ mp_alloc_noalign(struct mempool *pool, size_t size) ASAN_UNPOISON_MEMORY_REGION(ptr, size); return ptr; } - -void * -mp_alloc_zero(struct mempool *pool, size_t size) -{ - void *ptr = mp_alloc(pool, size); - bzero(ptr, size); - return ptr; -} diff --git a/src/contrib/ucw/mempool.h b/src/contrib/ucw/mempool.h index 61004438da..2322430290 100644 --- a/src/contrib/ucw/mempool.h +++ b/src/contrib/ucw/mempool.h @@ -118,8 +118,3 @@ void *mp_alloc(struct mempool *pool, size_t size); * The same as \ref mp_alloc(), but the result may be unaligned. **/ void *mp_alloc_noalign(struct mempool *pool, size_t size); - -/** - * The same as \ref mp_alloc(), but fills the newly allocated memory with zeroes. - **/ -void *mp_alloc_zero(struct mempool *pool, size_t size); From be0aa260aca319e6dc409780a243da562b1e2964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Tue, 2 Jun 2026 18:03:51 +0200 Subject: [PATCH 646/675] contrib/ucw/mempool: extend mp_stats with used_size It was introduced in a newer upstream version and can be useful for calculating mempool overhead as (total_size - used_size); though it's not currently used even in kres. --- src/contrib/ucw/mempool.c | 16 ++++++++++++---- src/contrib/ucw/mempool.h | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/contrib/ucw/mempool.c b/src/contrib/ucw/mempool.c index e7279f313e..ba79fa4db3 100644 --- a/src/contrib/ucw/mempool.c +++ b/src/contrib/ucw/mempool.c @@ -217,13 +217,19 @@ mp_flush(struct mempool *pool) } static void -mp_stats_chain(struct mempool_chunk *chunk, struct mempool_stats *stats, unsigned idx) +mp_stats_chain(struct mempool *pool, struct mempool_chunk *chunk, struct mempool_stats *stats, unsigned idx) { struct mempool_chunk *next; while (chunk) { ASAN_UNPOISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); stats->chain_size[idx] += chunk->size + sizeof(*chunk); stats->chain_count[idx]++; + if (idx < 2) { + stats->used_size += chunk->size; + if ((uint8_t *)pool == (uint8_t *)chunk - chunk->size) { + stats->used_size -= sizeof(*pool); + } + } next = chunk->next; ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); chunk = next; @@ -235,9 +241,11 @@ void mp_stats(struct mempool *pool, struct mempool_stats *stats) { bzero(stats, sizeof(*stats)); - mp_stats_chain(pool->state.last[0], stats, 0); - mp_stats_chain(pool->state.last[1], stats, 1); - mp_stats_chain(pool->unused, stats, 2); + mp_stats_chain(pool, pool->state.last[0], stats, 0); + mp_stats_chain(pool, pool->state.last[1], stats, 1); + mp_stats_chain(pool, pool->unused, stats, 2); + stats->used_size -= pool->state.free[0] + pool->state.free[1]; + assert(stats->used_size <= stats->total_size); } uint64_t diff --git a/src/contrib/ucw/mempool.h b/src/contrib/ucw/mempool.h index 2322430290..4c8abe0d26 100644 --- a/src/contrib/ucw/mempool.h +++ b/src/contrib/ucw/mempool.h @@ -44,6 +44,7 @@ struct mempool { struct mempool_stats { /** Mempool statistics. See mp_stats(). **/ uint64_t total_size; /** Real allocated size in bytes. */ + uint64_t used_size; /** Estimated size allocated from mempool to application. */ unsigned chain_count[3]; /** Number of allocated chunks in small/big/unused chains. */ uint64_t chain_size[3]; /** Size of allocated chunks in small/big/unused chains. */ }; From 4bc9495092f77b70daabcabcc1f51d0330cc228f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Thu, 4 Jun 2026 16:19:08 +0200 Subject: [PATCH 647/675] contrib/ucw/mempool: adjust license --- src/contrib/ucw/mempool.c | 12 ++++++------ src/contrib/ucw/mempool.h | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/contrib/ucw/mempool.c b/src/contrib/ucw/mempool.c index ba79fa4db3..47bf2da547 100644 --- a/src/contrib/ucw/mempool.c +++ b/src/contrib/ucw/mempool.c @@ -1,12 +1,12 @@ /* - * UCW Library -- Memory Pools (One-Time Allocation) + * UCW Library -- Memory Pools (One-Time Allocation) * - * (c) 1997--2001 Martin Mares - * (c) 2007 Pavel Charvat - * (c) 2015, 2017 CZ.NIC, z.s.p.o. + * (c) 1997--2014 Martin Mares + * (c) 2007--2015 Pavel Charvat + * (c) 2015, 2017, 2026 CZ.NIC, z.s.p.o. * - * This software may be freely distributed and used according to the terms - * of the GNU Lesser General Public License. + * SPDX-License-Identifier: LGPL-2.1-or-later + * Source: https://www.ucw.cz/libucw/ */ #undef LOCAL_DEBUG diff --git a/src/contrib/ucw/mempool.h b/src/contrib/ucw/mempool.h index 4c8abe0d26..2028717ade 100644 --- a/src/contrib/ucw/mempool.h +++ b/src/contrib/ucw/mempool.h @@ -1,12 +1,12 @@ /* - * UCW Library -- Memory Pools + * UCW Library -- Memory Pools (One-Time Allocation) * - * (c) 1997--2005 Martin Mares - * (c) 2007 Pavel Charvat - * (c) 2015, 2017 CZ.NIC, z.s.p.o. + * (c) 1997--2015 Martin Mares + * (c) 2007 Pavel Charvat + * (c) 2015, 2017, 2026 CZ.NIC, z.s.p.o. * - * This software may be freely distributed and used according to the terms - * of the GNU Lesser General Public License. + * SPDX-License-Identifier: LGPL-2.1-or-later + * Source: https://www.ucw.cz/libucw/ */ #pragma once From cb884e8e383eaf82c80fc8d3ddb8ea1d166c4e1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Thu, 4 Jun 2026 16:25:08 +0200 Subject: [PATCH 648/675] contrib/ucw/mempool: add chunk to pool reference in debug mode --- src/contrib/ucw/mempool.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/contrib/ucw/mempool.c b/src/contrib/ucw/mempool.c index 47bf2da547..173692c0ae 100644 --- a/src/contrib/ucw/mempool.c +++ b/src/contrib/ucw/mempool.c @@ -60,6 +60,9 @@ page_free(void *start, uint64_t len) #endif struct mempool_chunk { +#ifdef CONFIG_DEBUG + struct mempool *pool; // Can be useful when analysing coredump for memory leaks +#endif struct mempool_chunk *next; size_t size; }; @@ -144,6 +147,9 @@ mp_new(size_t chunk_size) ASAN_UNPOISON_MEMORY_REGION(pool, sizeof(*pool)); DBG("Creating mempool %p with %zu bytes long chunks", pool, chunk_size); chunk->next = NULL; +#ifdef CONFIG_DEBUG + chunk->pool = pool; +#endif ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); *pool = (struct mempool) { .state = { .free = { chunk_size - sizeof(*pool) }, .last = { chunk } }, @@ -268,6 +274,9 @@ mp_alloc_internal(struct mempool *pool, size_t size) pool->unused = chunk->next; } else { chunk = mp_new_chunk(pool->chunk_size); +#ifdef CONFIG_DEBUG + chunk->pool = pool; +#endif } chunk->next = pool->state.last[0]; ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); @@ -282,6 +291,10 @@ mp_alloc_internal(struct mempool *pool, size_t size) return NULL; } chunk->next = pool->state.last[1]; +#ifdef CONFIG_DEBUG + chunk->pool = pool; +#endif + ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); pool->state.last[1] = chunk; pool->state.free[1] = aligned - size; From 590395c094cfd68d6eec519b819d6c8669db2443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Mon, 8 Jun 2026 12:46:22 +0200 Subject: [PATCH 649/675] contrib/ucw/mempool: nits --- src/contrib/asan.h | 2 ++ src/contrib/ucw/mempool.c | 12 ++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/contrib/asan.h b/src/contrib/asan.h index 5415d8f6a4..1c64fe921a 100644 --- a/src/contrib/asan.h +++ b/src/contrib/asan.h @@ -5,6 +5,8 @@ #pragma once +#include + /* * see sanitizer/asan_interface.h in compiler-rt (LLVM) */ diff --git a/src/contrib/ucw/mempool.c b/src/contrib/ucw/mempool.c index 173692c0ae..c448ed9731 100644 --- a/src/contrib/ucw/mempool.c +++ b/src/contrib/ucw/mempool.c @@ -12,7 +12,6 @@ #undef LOCAL_DEBUG #include -#include #include #include #include @@ -20,6 +19,8 @@ #include "contrib/macros.h" #include "contrib/ucw/mempool.h" +#pragma GCC diagnostic ignored "-Wpointer-arith" + /** \todo This shouldn't be precalculated, but computed on load. */ #define CPU_PAGE_SIZE 4096 @@ -228,7 +229,7 @@ mp_stats_chain(struct mempool *pool, struct mempool_chunk *chunk, struct mempool struct mempool_chunk *next; while (chunk) { ASAN_UNPOISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); - stats->chain_size[idx] += chunk->size + sizeof(*chunk); + stats->chain_size[idx] += chunk->size + MP_CHUNK_TAIL; stats->chain_count[idx]++; if (idx < 2) { stats->used_size += chunk->size; @@ -274,6 +275,9 @@ mp_alloc_internal(struct mempool *pool, size_t size) pool->unused = chunk->next; } else { chunk = mp_new_chunk(pool->chunk_size); + if (!chunk) { + return NULL; + } #ifdef CONFIG_DEBUG chunk->pool = pool; #endif @@ -283,7 +287,7 @@ mp_alloc_internal(struct mempool *pool, size_t size) pool->state.last[0] = chunk; pool->state.free[0] = pool->chunk_size - size; return (uint8_t *)chunk - pool->chunk_size; - } else if (size <= MP_SIZE_MAX) { + } else if (likely(size <= MP_SIZE_MAX)) { pool->idx = 1; size_t aligned = ALIGN_TO(size, CPU_STRUCT_ALIGN); chunk = mp_new_big_chunk(aligned); @@ -317,7 +321,7 @@ mp_alloc(struct mempool *pool, size_t size) } else { ptr = mp_alloc_internal(pool, size); } - ASAN_UNPOISON_MEMORY_REGION(ptr, size); + if (ptr) ASAN_UNPOISON_MEMORY_REGION(ptr, size); return ptr; } From ddb01edc475ef38fcf84ad23cd84c849c7a283a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Tue, 9 Jun 2026 14:53:14 +0200 Subject: [PATCH 650/675] contrib/ucw/mempool: add mp_shrink and mention missing parts --- src/contrib/ucw/mempool.c | 17 +++++++++++++++++ src/contrib/ucw/mempool.h | 28 +++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/contrib/ucw/mempool.c b/src/contrib/ucw/mempool.c index c448ed9731..5daef64239 100644 --- a/src/contrib/ucw/mempool.c +++ b/src/contrib/ucw/mempool.c @@ -263,6 +263,23 @@ mp_total_size(struct mempool *pool) return stats.total_size; } +void +mp_shrink(struct mempool *pool, uint64_t min_total_size) +{ + size_t total_size = mp_total_size(pool); + while (pool->unused) { + struct mempool_chunk *chunk = pool->unused; + ASAN_UNPOISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + total_size -= chunk->size + MP_CHUNK_TAIL; + if (total_size < min_total_size) { + ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + break; + } + pool->unused = chunk->next; + mp_free_chunk(chunk); + } +} + static void * mp_alloc_internal(struct mempool *pool, size_t size) { diff --git a/src/contrib/ucw/mempool.h b/src/contrib/ucw/mempool.h index 2028717ade..14b076fc20 100644 --- a/src/contrib/ucw/mempool.h +++ b/src/contrib/ucw/mempool.h @@ -93,9 +93,23 @@ void mp_flush(struct mempool *pool); /** * Compute some statistics for debug purposes. * See the definition of the <>. + * This function scans the chunk list, so it can be slow. **/ void mp_stats(struct mempool *pool, struct mempool_stats *stats); -uint64_t mp_total_size(struct mempool *pool); /** How many bytes were allocated by the pool. **/ + +/** + * Return how many bytes were allocated by the pool, including unused parts + * of chunks. This function scans the chunk list, so it can be slow + * (upstream contains constant-time version). + **/ +uint64_t mp_total_size(struct mempool *pool); + +/** + * Release unused chunks of memory reserved for further allocation + * requests, but stop if \ref mp_total_size() would drop below \p min_total_size. + * It calls \ref mp_total_size(), so all chunks are scanned (in upstream version only released ones). + **/ +void mp_shrink(struct mempool *pool, uint64_t min_total_size); /*** * [[alloc]] @@ -119,3 +133,15 @@ void *mp_alloc(struct mempool *pool, size_t size); * The same as \ref mp_alloc(), but the result may be unaligned. **/ void *mp_alloc_noalign(struct mempool *pool, size_t size); + +/* + * Some parts of mempools were removed in Knot DNS, + * see upstream if you need: + * variants of methods returning zeroed memory, + * restoring previous state of allocations, + * concatenating and duplicating memory/strings on mempools, + * generic allocator interface spanning both malloc and mempools, + * growing buffers, + * printf-like functions using growing buffers as output, + * constant-time version of mp_total_size and mp_shrink scanning only deallocated chunks. +*/ From cabd96a95eeed9eed82edab307e604a33c844aff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Tue, 9 Jun 2026 16:17:56 +0200 Subject: [PATCH 651/675] contrib/ucw/mempool: include chunk metadata in requested size Originally, the requested chunk size was enlarged by the size of its metadata (~16 B) and then in mmap version of mempools it was rounded up to the page size. As the requested size itself is usually rounded to whole pages, the chunk size was roughly by one page larger than expected; still the whole space could have been used by mempools. In non-mmap version (not used here), the effect might have been even worse, as the rounding may be involved on the allocator level and so the excessive memory cannot be used by mempools. Now, usable size of chunks is a little smaller than requested, but allocated area size corresponds to what was requested. --- src/contrib/ucw/mempool.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/contrib/ucw/mempool.c b/src/contrib/ucw/mempool.c index 5daef64239..cb636b24ee 100644 --- a/src/contrib/ucw/mempool.c +++ b/src/contrib/ucw/mempool.c @@ -71,10 +71,11 @@ struct mempool_chunk { static size_t mp_align_size(size_t size) { + size = MAX(size, 64 + MP_CHUNK_TAIL); #ifdef CONFIG_UCW_POOL_IS_MMAP - return ALIGN_TO(size + MP_CHUNK_TAIL, CPU_PAGE_SIZE) - MP_CHUNK_TAIL; + return ALIGN_TO(size, CPU_PAGE_SIZE) - MP_CHUNK_TAIL; #else - return ALIGN_TO(size, CPU_STRUCT_ALIGN); + return ALIGN_TO(size, CPU_STRUCT_ALIGN) - MP_CHUNK_TAIL; #endif } From 3589cf357ff936b30e241687e5df25f2eb71a50e Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 7 Jan 2026 14:00:48 +0100 Subject: [PATCH 652/675] contrib: add optional Valgrind Memcheck macros --- Knot.files | 1 + configure.ac | 18 ++++++++++++++++++ src/contrib/Makefile.inc | 1 + src/contrib/memcheck.h | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 src/contrib/memcheck.h diff --git a/Knot.files b/Knot.files index 92fe865f53..069098751d 100644 --- a/Knot.files +++ b/Knot.files @@ -131,6 +131,7 @@ src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto.h src/contrib/libngtcp2/ngtcp2/ngtcp2_crypto_gnutls.h src/contrib/libngtcp2/ngtcp2/version.h src/contrib/macros.h +src/contrib/memcheck.h src/contrib/mempattern.c src/contrib/mempattern.h src/contrib/musl/inet_ntop.c diff --git a/configure.ac b/configure.ac index 2e62b9c810..75101323e4 100644 --- a/configure.ac +++ b/configure.ac @@ -160,6 +160,23 @@ link_mode=$(test "$enable_shared" = "yes" && echo "shared" || echo "static") # Dependencies needed for libraries ################################### +# Valgrind Memcheck +AC_ARG_WITH([memcheck], + AS_HELP_STRING([--with-memcheck=auto|yes|no|DIR], + [Build with Valgrind Memcheck. If valgrind/memcheck.h is not in the path, + specify its include directory using this parameter [default=no]]), + [], [with_memcheck=no] +) + +AS_CASE([$with_memcheck], + [no], [], + [auto], [AC_CHECK_HEADER([valgrind/memcheck.h], [with_memcheck=yes], [with_memcheck=no])], + [yes|*], [AS_IF([test "$with_memcheck" != "yes"], [AC_SUBST(CPPFLAGS, "$CPPFLAGS -I$with_memcheck")]) + AC_CHECK_HEADER([valgrind/memcheck.h], [], [AC_MSG_ERROR([valgrind/memcheck.h not available])]) + AC_DEFINE([ENABLE_MEMCHECK], [1], [Valgrind Memcheck enabled.]) + with_memcheck=yes] +) + # Fast (big) zone parser AC_ARG_ENABLE([fastparser], AS_HELP_STRING([--disable-fastparser], @@ -916,6 +933,7 @@ result_msg_base=" PKCS #11 support: ${enable_pkcs11} Code coverage: ${enable_code_coverage} + Valgrind Memcheck: ${with_memcheck} Sanitizer: ${with_sanitizer} LibFuzzer: ${with_fuzzer} OSS-Fuzz: ${with_oss_fuzz}" diff --git a/src/contrib/Makefile.inc b/src/contrib/Makefile.inc index 8ef5345e4f..5d6e6fd0c7 100644 --- a/src/contrib/Makefile.inc +++ b/src/contrib/Makefile.inc @@ -69,6 +69,7 @@ libcontrib_la_SOURCES = \ contrib/tolower.h \ contrib/trim.h \ contrib/wire_ctx.h \ + contrib/memcheck.h \ contrib/openbsd/siphash.c \ contrib/openbsd/siphash.h \ contrib/openbsd/strlcat.c \ diff --git a/src/contrib/memcheck.h b/src/contrib/memcheck.h new file mode 100644 index 0000000000..21c24f4373 --- /dev/null +++ b/src/contrib/memcheck.h @@ -0,0 +1,32 @@ +/* Copyright (C) CZ.NIC, z.s.p.o. and contributors + * SPDX-License-Identifier: GPL-2.0-or-later + * For more information, see + */ + +#pragma once + +#include "contrib/asan.h" + +#ifdef ENABLE_MEMCHECK + #include + #include + + #define MEMCHECK_NOACCESS(ptr, size) { \ + VALGRIND_MAKE_MEM_NOACCESS(ptr, size); \ + ASAN_POISON_MEMORY_REGION(ptr, size); \ + } + #define MEMCHECK_UNDEFINED(ptr, size) { \ + VALGRIND_MAKE_MEM_UNDEFINED(ptr, size); \ + ASAN_UNPOISON_MEMORY_REGION(ptr, size); \ + } + #define MEMCHECK_DEFINED(ptr, size) { \ + VALGRIND_MAKE_MEM_DEFINED(ptr, size); \ + ASAN_UNPOISON_MEMORY_REGION(ptr, size); \ + } +#else + #define MEMCHECK_NOACCESS(ptr, size) ASAN_POISON_MEMORY_REGION(ptr, size) + #define MEMCHECK_UNDEFINED(ptr, size) ASAN_UNPOISON_MEMORY_REGION(ptr, size); + #define MEMCHECK_DEFINED(ptr, size) ASAN_UNPOISON_MEMORY_REGION(ptr, size); + #define VALGRIND_PRINTF(...) + #define RUNNING_ON_VALGRIND 0 +#endif From 2c3aadb54c5a4aa60cb4f3689e8f7b6cfb729361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Tue, 7 Jul 2026 00:20:41 +0200 Subject: [PATCH 653/675] contrib/ucw/mempool: add valgrind directives --- src/contrib/ucw/mempool.c | 43 ++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/contrib/ucw/mempool.c b/src/contrib/ucw/mempool.c index cb636b24ee..421bd180a0 100644 --- a/src/contrib/ucw/mempool.c +++ b/src/contrib/ucw/mempool.c @@ -15,8 +15,8 @@ #include #include #include -#include "contrib/asan.h" #include "contrib/macros.h" +#include "contrib/memcheck.h" #include "contrib/ucw/mempool.h" #pragma GCC diagnostic ignored "-Wpointer-arith" @@ -97,7 +97,7 @@ mp_new_big_chunk(size_t size) if (!data) { return NULL; } - ASAN_POISON_MEMORY_REGION(data, size); + MEMCHECK_NOACCESS(data, size); struct mempool_chunk *chunk = (struct mempool_chunk *)(data + size); chunk->size = size; return chunk; @@ -107,7 +107,7 @@ static void mp_free_big_chunk(struct mempool_chunk *chunk) { void *ptr = (uint8_t *)chunk - chunk->size; - ASAN_UNPOISON_MEMORY_REGION(ptr, chunk->size); + MEMCHECK_UNDEFINED(ptr, chunk->size); free(ptr); } @@ -119,7 +119,7 @@ mp_new_chunk(size_t size) if (!data) { return NULL; } - ASAN_POISON_MEMORY_REGION(data, size); + MEMCHECK_NOACCESS(data, size); struct mempool_chunk *chunk = (struct mempool_chunk *)(data + size); chunk->size = size; return chunk; @@ -133,7 +133,7 @@ mp_free_chunk(struct mempool_chunk *chunk) { #ifdef CONFIG_UCW_POOL_IS_MMAP uint8_t *data = (uint8_t *)chunk - chunk->size; - ASAN_UNPOISON_MEMORY_REGION(data, chunk->size); + MEMCHECK_UNDEFINED(data, chunk->size); page_free(data, chunk->size + MP_CHUNK_TAIL); #else mp_free_big_chunk(chunk); @@ -146,13 +146,13 @@ mp_new(size_t chunk_size) chunk_size = mp_align_size(MAX(sizeof(struct mempool), chunk_size)); struct mempool_chunk *chunk = mp_new_chunk(chunk_size); struct mempool *pool = (void *)chunk - chunk_size; - ASAN_UNPOISON_MEMORY_REGION(pool, sizeof(*pool)); + MEMCHECK_UNDEFINED(pool, sizeof(*pool)); DBG("Creating mempool %p with %zu bytes long chunks", pool, chunk_size); chunk->next = NULL; #ifdef CONFIG_DEBUG chunk->pool = pool; #endif - ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_NOACCESS(chunk, MP_CHUNK_TAIL); *pool = (struct mempool) { .state = { .free = { chunk_size - sizeof(*pool) }, .last = { chunk } }, .chunk_size = chunk_size, @@ -166,7 +166,7 @@ static void mp_free_chain(struct mempool_chunk *chunk) { while (chunk) { - ASAN_UNPOISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_DEFINED(chunk, MP_CHUNK_TAIL); struct mempool_chunk *next = chunk->next; mp_free_chunk(chunk); chunk = next; @@ -177,7 +177,7 @@ static void mp_free_big_chain(struct mempool_chunk *chunk) { while (chunk) { - ASAN_UNPOISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_DEFINED(chunk, MP_CHUNK_TAIL); struct mempool_chunk *next = chunk->next; mp_free_big_chunk(chunk); chunk = next; @@ -202,20 +202,21 @@ mp_flush(struct mempool *pool) mp_free_big_chain(pool->state.last[1]); struct mempool_chunk *chunk = pool->state.last[0], *next; while (chunk) { - ASAN_UNPOISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_DEFINED(chunk, MP_CHUNK_TAIL); if ((uint8_t *)chunk - chunk->size == (uint8_t *)pool) { break; } next = chunk->next; chunk->next = pool->unused; - ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_NOACCESS((uint8_t *)chunk - chunk->size, chunk->size + MP_CHUNK_TAIL); pool->unused = chunk; chunk = next; } pool->state.last[0] = chunk; if (chunk) { pool->state.free[0] = chunk->size - sizeof(*pool); - ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_NOACCESS((uint8_t *)chunk - chunk->size + sizeof(struct mempool), + chunk->size - sizeof(struct mempool) + MP_CHUNK_TAIL); } else { pool->state.free[0] = 0; } @@ -229,7 +230,7 @@ mp_stats_chain(struct mempool *pool, struct mempool_chunk *chunk, struct mempool { struct mempool_chunk *next; while (chunk) { - ASAN_UNPOISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_DEFINED(chunk, MP_CHUNK_TAIL); stats->chain_size[idx] += chunk->size + MP_CHUNK_TAIL; stats->chain_count[idx]++; if (idx < 2) { @@ -239,7 +240,7 @@ mp_stats_chain(struct mempool *pool, struct mempool_chunk *chunk, struct mempool } } next = chunk->next; - ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_NOACCESS(chunk, MP_CHUNK_TAIL); chunk = next; } stats->total_size += stats->chain_size[idx]; @@ -270,10 +271,10 @@ mp_shrink(struct mempool *pool, uint64_t min_total_size) size_t total_size = mp_total_size(pool); while (pool->unused) { struct mempool_chunk *chunk = pool->unused; - ASAN_UNPOISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_DEFINED(chunk, MP_CHUNK_TAIL); total_size -= chunk->size + MP_CHUNK_TAIL; if (total_size < min_total_size) { - ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_NOACCESS(chunk, MP_CHUNK_TAIL); break; } pool->unused = chunk->next; @@ -289,7 +290,7 @@ mp_alloc_internal(struct mempool *pool, size_t size) pool->idx = 0; if (pool->unused) { chunk = pool->unused; - ASAN_UNPOISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_DEFINED(chunk, MP_CHUNK_TAIL); pool->unused = chunk->next; } else { chunk = mp_new_chunk(pool->chunk_size); @@ -301,7 +302,7 @@ mp_alloc_internal(struct mempool *pool, size_t size) #endif } chunk->next = pool->state.last[0]; - ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_NOACCESS(chunk, MP_CHUNK_TAIL); pool->state.last[0] = chunk; pool->state.free[0] = pool->chunk_size - size; return (uint8_t *)chunk - pool->chunk_size; @@ -317,7 +318,7 @@ mp_alloc_internal(struct mempool *pool, size_t size) chunk->pool = pool; #endif - ASAN_POISON_MEMORY_REGION(chunk, sizeof(struct mempool_chunk)); + MEMCHECK_NOACCESS(chunk, MP_CHUNK_TAIL); pool->state.last[1] = chunk; pool->state.free[1] = aligned - size; return pool->last_big = (uint8_t *)chunk - aligned; @@ -339,7 +340,7 @@ mp_alloc(struct mempool *pool, size_t size) } else { ptr = mp_alloc_internal(pool, size); } - if (ptr) ASAN_UNPOISON_MEMORY_REGION(ptr, size); + if (ptr) MEMCHECK_UNDEFINED(ptr, size); return ptr; } @@ -353,6 +354,6 @@ mp_alloc_noalign(struct mempool *pool, size_t size) } else { ptr = mp_alloc_internal(pool, size); } - ASAN_UNPOISON_MEMORY_REGION(ptr, size); + MEMCHECK_UNDEFINED(ptr, size); return ptr; } From f350333bc4d8839fd821af9f4eae37b31d1cdfa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Tue, 7 Jul 2026 16:15:46 +0200 Subject: [PATCH 654/675] contrib/ucw/mempool: unify size types to size_t --- src/contrib/ucw/mempool.c | 11 ++++------- src/contrib/ucw/mempool.h | 12 ++++++------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/contrib/ucw/mempool.c b/src/contrib/ucw/mempool.c index 421bd180a0..0d45c1d5ed 100644 --- a/src/contrib/ucw/mempool.c +++ b/src/contrib/ucw/mempool.c @@ -35,14 +35,11 @@ #ifdef CONFIG_UCW_POOL_IS_MMAP #include static void * -page_alloc(uint64_t len) +page_alloc(size_t len) { if (!len) { return NULL; } - if (len > SIZE_MAX) { - return NULL; - } assert(!(len & (CPU_PAGE_SIZE-1))); uint8_t *p = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); if (p == (uint8_t*) MAP_FAILED) { @@ -52,7 +49,7 @@ page_alloc(uint64_t len) } static void -page_free(void *start, uint64_t len) +page_free(void *start, size_t len) { assert(!(len & (CPU_PAGE_SIZE-1))); assert(!((uintptr_t) start & (CPU_PAGE_SIZE-1))); @@ -257,7 +254,7 @@ mp_stats(struct mempool *pool, struct mempool_stats *stats) assert(stats->used_size <= stats->total_size); } -uint64_t +size_t mp_total_size(struct mempool *pool) { struct mempool_stats stats; @@ -266,7 +263,7 @@ mp_total_size(struct mempool *pool) } void -mp_shrink(struct mempool *pool, uint64_t min_total_size) +mp_shrink(struct mempool *pool, size_t min_total_size) { size_t total_size = mp_total_size(pool); while (pool->unused) { diff --git a/src/contrib/ucw/mempool.h b/src/contrib/ucw/mempool.h index 14b076fc20..24d394d8aa 100644 --- a/src/contrib/ucw/mempool.h +++ b/src/contrib/ucw/mempool.h @@ -43,10 +43,10 @@ struct mempool { }; struct mempool_stats { /** Mempool statistics. See mp_stats(). **/ - uint64_t total_size; /** Real allocated size in bytes. */ - uint64_t used_size; /** Estimated size allocated from mempool to application. */ - unsigned chain_count[3]; /** Number of allocated chunks in small/big/unused chains. */ - uint64_t chain_size[3]; /** Size of allocated chunks in small/big/unused chains. */ + size_t total_size; /** Real allocated size in bytes. */ + size_t used_size; /** Estimated size allocated from mempool to application. */ + unsigned chain_count[3]; /** Number of allocated chunks in small/big/unused chains. */ + size_t chain_size[3]; /** Size of allocated chunks in small/big/unused chains. */ }; /*** @@ -102,14 +102,14 @@ void mp_stats(struct mempool *pool, struct mempool_stats *stats); * of chunks. This function scans the chunk list, so it can be slow * (upstream contains constant-time version). **/ -uint64_t mp_total_size(struct mempool *pool); +size_t mp_total_size(struct mempool *pool); /** * Release unused chunks of memory reserved for further allocation * requests, but stop if \ref mp_total_size() would drop below \p min_total_size. * It calls \ref mp_total_size(), so all chunks are scanned (in upstream version only released ones). **/ -void mp_shrink(struct mempool *pool, uint64_t min_total_size); +void mp_shrink(struct mempool *pool, size_t min_total_size); /*** * [[alloc]] From 7c9ea1f625faa79bd80acc11715360c6a2cda41f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Tue, 7 Jul 2026 17:26:16 +0200 Subject: [PATCH 655/675] contrib/ucw/mempool: remove mp_alloc_noalign --- src/contrib/ucw/mempool.c | 14 -------------- src/contrib/ucw/mempool.h | 7 +------ 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/src/contrib/ucw/mempool.c b/src/contrib/ucw/mempool.c index 0d45c1d5ed..2522568897 100644 --- a/src/contrib/ucw/mempool.c +++ b/src/contrib/ucw/mempool.c @@ -340,17 +340,3 @@ mp_alloc(struct mempool *pool, size_t size) if (ptr) MEMCHECK_UNDEFINED(ptr, size); return ptr; } - -void * -mp_alloc_noalign(struct mempool *pool, size_t size) -{ - void *ptr = NULL; - if (size <= pool->state.free[0]) { - ptr = (uint8_t *)pool->state.last[0] - pool->state.free[0]; - pool->state.free[0] -= size; - } else { - ptr = mp_alloc_internal(pool, size); - } - MEMCHECK_UNDEFINED(ptr, size); - return ptr; -} diff --git a/src/contrib/ucw/mempool.h b/src/contrib/ucw/mempool.h index 24d394d8aa..ad5c7fe43d 100644 --- a/src/contrib/ucw/mempool.h +++ b/src/contrib/ucw/mempool.h @@ -129,15 +129,10 @@ void mp_shrink(struct mempool *pool, size_t min_total_size); **/ void *mp_alloc(struct mempool *pool, size_t size); -/** - * The same as \ref mp_alloc(), but the result may be unaligned. - **/ -void *mp_alloc_noalign(struct mempool *pool, size_t size); - /* * Some parts of mempools were removed in Knot DNS, * see upstream if you need: - * variants of methods returning zeroed memory, + * variants of methods returning zeroed memory and/or unaligned memory, * restoring previous state of allocations, * concatenating and duplicating memory/strings on mempools, * generic allocator interface spanning both malloc and mempools, From 29acaeaba94de7af39143921abf9d777886d217a Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Wed, 8 Jul 2026 20:30:41 +0200 Subject: [PATCH 656/675] tests-extra: improve bind_version() to accept newer extended string --- tests-extra/tools/dnstest/server.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 1105553782..5999486d1e 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1120,7 +1120,13 @@ def flush(self, zone=None, wait=False): self.ctl("sync%s" % zone_name, wait=wait) def bind_version(self): - return tuple(map(int, run([self.daemon_bin, '-v'], stdout=PIPE, stderr=PIPE, text=True).stdout.replace('BIND ', '').split('-')[0].split('.'))) + version = ( + run([self.daemon_bin, '-v'], stdout=PIPE, stderr=PIPE, text=True) + .stdout.removeprefix('BIND ') + .split()[0] # "9.20.24" + .split('-')[0] # handles "-RedHat" suffixes + ) + return tuple(map(int, version.split('.'))) def key_timer_param(self, timer_name, timer_val): ktpmap = { 'publish': '-P', 'active': '-A', 'retire': '-I', 'revoke': '-R', 'remove': '-D' } From 7856be5fa7ab3cbd120ffe32cd33ffcffefc2004 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 16 Jul 2026 12:35:01 +0200 Subject: [PATCH 657/675] tcp-handler: fix TCP socket indexing if TLS and TCP reuseport configured --- src/knot/server/tcp-handler.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/knot/server/tcp-handler.c b/src/knot/server/tcp-handler.c index 30d6a08fe8..e131144e50 100644 --- a/src/knot/server/tcp-handler.c +++ b/src/knot/server/tcp-handler.c @@ -125,7 +125,7 @@ static void tcp_log_error(const struct sockaddr_storage *ss, const char *operati } static unsigned tcp_set_ifaces(const iface_t *ifaces, size_t n_ifaces, - fdset_t *fds, int thread_id, bool *tls) + fdset_t *fds, unsigned dt_thread_id, bool *tls) { if (n_ifaces == 0) { return 0; @@ -136,14 +136,11 @@ static unsigned tcp_set_ifaces(const iface_t *ifaces, size_t n_ifaces, continue; } - int tcp_id = 0; + unsigned tcp_id = 0; #ifdef ENABLE_REUSEPORT if (conf()->cache.srv_tcp_reuseport && i->addr.ss_family != AF_UNIX) { - /* Note: thread_ids start with UDP threads, TCP threads follow. */ - assert((i->fd_udp_count <= thread_id) && - (thread_id < i->fd_tcp_count + i->fd_udp_count)); - - tcp_id = thread_id - i->fd_udp_count; + assert(dt_thread_id < i->fd_tcp_count); + tcp_id = dt_thread_id; } #endif int ret = fdset_add(fds, i->fd_tcp[tcp_id], FDSET_POLLIN, (void *)i); @@ -363,14 +360,15 @@ int tcp_master(dthread_t *thread) } iohandler_t *handler = (iohandler_t *)thread->data; - int thread_id = handler->thread_id[dt_get_id(thread)]; + unsigned dt_thread_id = dt_get_id(thread); + unsigned thread_id = handler->thread_id[dt_thread_id]; #ifdef ENABLE_REUSEPORT /* Set thread affinity to CPU core (overlaps with UDP/XDP). */ if (conf()->cache.srv_tcp_reuseport) { unsigned cpu = dt_online_cpus(); if (cpu > 1) { - unsigned cpu_mask = (dt_get_id(thread) % cpu); + unsigned cpu_mask = (dt_thread_id % cpu); dt_setaffinity(thread, &cpu_mask, 1); } } @@ -409,7 +407,7 @@ int tcp_master(dthread_t *thread) bool tls = false; tcp.client_threshold = tcp_set_ifaces(handler->server->ifaces, handler->server->n_ifaces, - &tcp.set, thread_id, &tls); + &tcp.set, dt_thread_id, &tls); if (tcp.client_threshold == 0) { goto finish; /* Terminate on zero interfaces. */ } From 6779eb94dd16ce31fe4a8c56b8670633c027eacc Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 16 Jul 2026 13:43:30 +0200 Subject: [PATCH 658/675] udp-handler: use dthread indexing for XDP threads, unify with tcp-handler --- src/knot/server/server.c | 5 ++--- src/knot/server/server.h | 2 +- src/knot/server/udp-handler.c | 38 +++++++++++++++++------------------ 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/knot/server/server.c b/src/knot/server/server.c index 3db78e98e1..59c0ed412c 100644 --- a/src/knot/server/server.c +++ b/src/knot/server/server.c @@ -776,8 +776,7 @@ static int configure_sockets(conf_t *conf, server_t *s) .busy_poll_timeout = conf->cache.xdp_busypoll_timeout, .force_copy = !conf->cache.xdp_zero_copy, }; - unsigned thread_id = s->handlers[IO_UDP].handler.unit->size + - s->handlers[IO_TCP].handler.unit->size; + unsigned dt_thread_id = 0; while (lisxdp_val.code == KNOT_EOK) { struct sockaddr_storage addr = conf_addr(&lisxdp_val, NULL, NULL); char addr_str[SOCKADDR_STRLEN] = { 0 }; @@ -786,7 +785,7 @@ static int configure_sockets(conf_t *conf, server_t *s) iface_t *new_if = server_init_xdp_iface(&addr, conf->cache.xdp_route_check, conf->cache.xdp_udp, conf->cache.xdp_tcp, - conf->cache.xdp_quic, &thread_id, + conf->cache.xdp_quic, &dt_thread_id, &xdp_config); if (new_if == NULL) { server_deinit_iface_list(newlist, nifs); diff --git a/src/knot/server/server.h b/src/knot/server/server.h index cae5bb852f..305beb4530 100644 --- a/src/knot/server/server.h +++ b/src/knot/server/server.h @@ -63,7 +63,7 @@ typedef struct { unsigned fd_tcp_count; int *fd_xdp; unsigned fd_xdp_count; - unsigned xdp_first_thread_id; + unsigned xdp_first_thread_id; // Index in XDP dthread pool, not globally unique one. bool anyaddr; bool tls; const char *dev; diff --git a/src/knot/server/udp-handler.c b/src/knot/server/udp-handler.c index fc611e2813..717cb78de9 100644 --- a/src/knot/server/udp-handler.c +++ b/src/knot/server/udp-handler.c @@ -451,22 +451,21 @@ static udp_api_t xdp_mmsg_api = { }; #endif /* ENABLE_XDP */ -static bool is_xdp_thread(const server_t *server, int thread_id) +static bool is_xdp_thread(const server_t *server, unsigned thread_id) { return server->handlers[IO_XDP].size > 0 && server->handlers[IO_XDP].handler.thread_id[0] <= thread_id; } -static int iface_udp_fd(const iface_t *iface, int thread_id, bool xdp_thread, - void **xdp_socket) +static int iface_udp_fd(const iface_t *iface, unsigned dt_thread_id, void **xdp_socket) { - if (xdp_thread) { + if (xdp_socket != NULL) { #ifdef ENABLE_XDP - if (thread_id < iface->xdp_first_thread_id || - thread_id >= iface->xdp_first_thread_id + iface->fd_xdp_count) { + if (dt_thread_id < iface->xdp_first_thread_id || + dt_thread_id >= iface->xdp_first_thread_id + iface->fd_xdp_count) { return -1; // Different XDP interface. } - size_t xdp_wrk_id = thread_id - iface->xdp_first_thread_id; + unsigned xdp_wrk_id = dt_thread_id - iface->xdp_first_thread_id; assert(xdp_wrk_id < iface->fd_xdp_count); *xdp_socket = iface->xdp_sockets[xdp_wrk_id]; return iface->fd_xdp[xdp_wrk_id]; @@ -480,8 +479,8 @@ static int iface_udp_fd(const iface_t *iface, int thread_id, bool xdp_thread, } #ifdef ENABLE_REUSEPORT if (iface->addr.ss_family != AF_UNIX) { - assert(thread_id < iface->fd_udp_count); - return iface->fd_udp[thread_id]; + assert(dt_thread_id < iface->fd_udp_count); + return iface->fd_udp[dt_thread_id]; } #endif return iface->fd_udp[0]; @@ -489,24 +488,23 @@ static int iface_udp_fd(const iface_t *iface, int thread_id, bool xdp_thread, } static unsigned udp_set_ifaces(const server_t *server, size_t n_ifaces, fdset_t *fds, - int thread_id, void **xdp_socket, bool *quic) + unsigned dt_thread_id, void **xdp_socket, bool *quic) { if (n_ifaces == 0) { return 0; } - bool xdp_thread = is_xdp_thread(server, thread_id); const iface_t *ifaces = server->ifaces; for (const iface_t *i = ifaces; i != ifaces + n_ifaces; i++) { #ifndef ENABLE_REUSEPORT /* If loadbalanced SO_REUSEPORT isn't available, ensure that * just one (first) UDP worker handles the QUIC sockets. */ - if (i->tls && thread_id > 0) { + if (i->tls && dt_thread_id > 0) { continue; } #endif - int fd = iface_udp_fd(i, thread_id, xdp_thread, xdp_socket); + int fd = iface_udp_fd(i, dt_thread_id, xdp_socket); if (fd < 0) { continue; } @@ -519,7 +517,7 @@ static unsigned udp_set_ifaces(const server_t *server, size_t n_ifaces, fdset_t } } - assert(!xdp_thread || fdset_get_length(fds) == 1); + assert(xdp_socket == NULL || fdset_get_length(fds) == 1); return fdset_get_length(fds); } @@ -530,7 +528,9 @@ int udp_master(dthread_t *thread) } iohandler_t *handler = (iohandler_t *)thread->data; - int thread_id = handler->thread_id[dt_get_id(thread)]; + unsigned dt_thread_id = dt_get_id(thread); + unsigned thread_id = handler->thread_id[dt_thread_id]; + bool xdp_thread = is_xdp_thread(handler->server, thread_id); /* Set thread affinity to CPU core (same for UDP and XDP). */ unsigned cpu = dt_online_cpus(); @@ -542,7 +542,7 @@ int udp_master(dthread_t *thread) /* Choose processing API. */ udp_api_t *api = NULL; void *api_ctx = NULL; - if (is_xdp_thread(handler->server, thread_id)) { + if (xdp_thread) { #ifdef ENABLE_XDP api = &xdp_mmsg_api; #else @@ -578,7 +578,8 @@ int udp_master(dthread_t *thread) goto finish; } unsigned nfds = udp_set_ifaces(handler->server, handler->server->n_ifaces, - &fds, thread_id, &xdp_socket, &quic); + &fds, dt_thread_id, (xdp_thread ? &xdp_socket : NULL), + &quic); if (nfds == 0) { goto finish; /* Terminate on zero interfaces. */ } @@ -632,8 +633,7 @@ int udp_master(dthread_t *thread) finish: if (ret != KNOT_EOK) { log_error("%s, failed to initialize worker %u (%s)", - (is_xdp_thread(handler->server, thread_id) ? "XDP" : "UDP"), - dt_get_id(thread), strerror(errno)); + (xdp_thread ? "XDP" : "UDP"), dt_thread_id, strerror(errno)); } api->udp_deinit(api_ctx); From c5373f29a9cb756a9c4625cb4b4ed6f65b2c25fb Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Thu, 16 Jul 2026 13:46:48 +0200 Subject: [PATCH 659/675] handlers: replace strerror() with knot_strerror() --- src/knot/server/tcp-handler.c | 2 +- src/knot/server/udp-handler.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/knot/server/tcp-handler.c b/src/knot/server/tcp-handler.c index e131144e50..02a5d29e04 100644 --- a/src/knot/server/tcp-handler.c +++ b/src/knot/server/tcp-handler.c @@ -449,7 +449,7 @@ int tcp_master(dthread_t *thread) finish: if (ret != KNOT_EOK) { log_error("TCP, failed to initialize worker %u (%s)", - dt_get_id(thread), strerror(errno)); + dt_get_id(thread), knot_strerror(ret)); } knot_tls_ctx_free(tcp.tls_ctx); diff --git a/src/knot/server/udp-handler.c b/src/knot/server/udp-handler.c index 717cb78de9..347e738f2d 100644 --- a/src/knot/server/udp-handler.c +++ b/src/knot/server/udp-handler.c @@ -633,7 +633,7 @@ int udp_master(dthread_t *thread) finish: if (ret != KNOT_EOK) { log_error("%s, failed to initialize worker %u (%s)", - (xdp_thread ? "XDP" : "UDP"), dt_thread_id, strerror(errno)); + (xdp_thread ? "XDP" : "UDP"), dt_thread_id, knot_strerror(ret)); } api->udp_deinit(api_ctx); From 0a0c7d9d5f0e7df2790c3bec45023c52b0918c19 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 17 Jul 2026 20:46:39 +0200 Subject: [PATCH 660/675] tests-extra: increase robustness of catalog/generate_reconf --- tests-extra/tests/catalog/generate_reconf/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-extra/tests/catalog/generate_reconf/test.py b/tests-extra/tests/catalog/generate_reconf/test.py index 58ff5cfbd9..8b3b08f42d 100644 --- a/tests-extra/tests/catalog/generate_reconf/test.py +++ b/tests-extra/tests/catalog/generate_reconf/test.py @@ -39,7 +39,7 @@ def mark_zone(server, zone): return ts def check_mark(server, zone, timestamp, present=True): - t.sleep(1) + t.sleep(2) zone_name = zone[0].name resp = server.dig(f"_mark_{timestamp}_.{zone_name}", "TXT") resp.check_rr(rtype="TXT") if present else resp.check_no_rr(rtype="TXT") From 4e1ae8bbecb6964d3aa52259e3c941a40b533c89 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Thu, 9 Jul 2026 10:35:03 +0200 Subject: [PATCH 661/675] KASP/timers: configurable storage of last signed serial --- doc/reference.rst | 17 ++++++++++++ src/knot/conf/schema.c | 7 +++++ src/knot/conf/schema.h | 6 +++++ src/knot/events/handlers/refresh.c | 4 +-- src/knot/updates/zone-update.c | 6 ++++- src/knot/zone/zone.c | 26 ++++++++++++------- src/knot/zone/zone.h | 4 +-- .../tests/dnssec/bare_slave_signing/test.py | 4 +++ tests-extra/tools/dnstest/server.py | 2 ++ 9 files changed, 62 insertions(+), 14 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index dda7fd029c..385bb43c4a 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -2801,6 +2801,7 @@ Definition of zones served by the server. dnssec-signing: BOOL dnssec-validation: BOOL dnssec-policy: policy_id + dnssec-metadata-db: kasp | timer ds-push: remote_id | remotes_id ... zonemd-verify: BOOL zonemd-generate: none | zonemd-sha384 | zonemd-sha512 | remove @@ -3361,6 +3362,22 @@ A :ref:`reference` to DNSSEC signing policy. *Default:* an imaginary policy with all default values +.. _zone_dnssec-metadata-db: + +dnssec-metadata-db +------------------ + +Determines where to store some frequently updated DNSSEC-related metadata. + +Possible values: + +- ``kasp`` – Store the metadata in the KASP database. +- ``timer`` – Store the metadata in the timer database. This can improve signing + performance for deployments with many zones, but care must be taken not to + purge or otherwise mishandle the timer database. + +*Default:* ``kasp`` + .. _zone_ds-push: ds-push diff --git a/src/knot/conf/schema.c b/src/knot/conf/schema.c index 10206d10ca..a8b1a2a0d9 100644 --- a/src/knot/conf/schema.c +++ b/src/knot/conf/schema.c @@ -119,6 +119,12 @@ static const knot_lookup_t acl_protocol[] = { { 0, NULL } }; +static const knot_lookup_t dnssec_meta_db[] = { + { DNSSEC_META_DB_KASP, "kasp" }, + { DNSSEC_META_DB_TIMER, "timer" }, + { 0, NULL } +}; + static const knot_lookup_t serial_policies[] = { { SERIAL_POLICY_INCREMENT, "increment" }, { SERIAL_POLICY_UNIXTIME, "unixtime" }, @@ -521,6 +527,7 @@ static const yp_item_t desc_external[] = { { C_DNSSEC_SIGNING, YP_TBOOL, YP_VNONE, FLAGS }, \ { C_DNSSEC_VALIDATION, YP_TBOOL, YP_VNONE, FLAGS }, \ { C_DNSSEC_POLICY, YP_TREF, YP_VREF = { C_POLICY }, FLAGS, { check_ref_dflt } }, \ + { C_DNSSEC_META_DB, YP_TOPT, YP_VOPT = { dnssec_meta_db, DNSSEC_META_DB_KASP } }, \ { C_DS_PUSH, YP_TREF, YP_VREF = { C_RMT, C_RMTS }, YP_FMULTI | CONF_IO_FREF_EMPTY | FLAGS, \ { check_ref } }, \ { C_REVERSE_GEN, YP_TDNAME,YP_VNONE, CONF_IO_FREV | YP_FMULTI | FLAGS }, \ diff --git a/src/knot/conf/schema.h b/src/knot/conf/schema.h index 173f9c8f3e..594a50aef4 100644 --- a/src/knot/conf/schema.h +++ b/src/knot/conf/schema.h @@ -50,6 +50,7 @@ #define C_DELEG_AWARE "\x0B""deleg-aware" #define C_DELETE_DELAY "\x0C""delete-delay" #define C_DENY "\x04""deny" +#define C_DNSSEC_META_DB "\x12""dnssec-metadata-db" #define C_DNSKEY_MGMT "\x11""dnskey-management" #define C_DNSKEY_SYNC "\x0B""dnskey-sync" #define C_DNSKEY_TTL "\x0A""dnskey-ttl" @@ -240,6 +241,11 @@ enum { DNSKEY_MGMT_INCREMENTAL = 1, }; +enum { + DNSSEC_META_DB_KASP = 0, + DNSSEC_META_DB_TIMER = 1, +}; + enum { SERIAL_POLICY_AUTO = 0, SERIAL_POLICY_INCREMENT = 1, diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 53798326f1..52c5104e17 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -307,7 +307,7 @@ static void axfr_slave_sign_serial(zone_contents_t *new_contents, zone_t *zone, // Retransfer or AXFR-fallback - increment current serial. uint32_t cont_serial = zone_contents_serial(zone->contents); new_serial = serial_next(cont_serial, conf, zone->name, policy, 1); - } else if (zone_get_lastsigned_serial(zone, &lastsigned_serial) == KNOT_EOK) { + } else if (zone_get_lastsigned_serial(conf, zone, &lastsigned_serial) == KNOT_EOK) { // Bootstrap - increment stored serial. new_serial = serial_next(lastsigned_serial, conf, zone->name, policy, 1); } else if (policy != SERIAL_POLICY_INCREMENT) { @@ -571,7 +571,7 @@ static int ixfr_slave_sign_serial(list_t *changesets, zone_t *zone, { uint32_t local_serial = zone_contents_serial(zone->contents), lastsigned; - if (zone_get_lastsigned_serial(zone, &lastsigned) != KNOT_EOK || lastsigned != local_serial) { + if (zone_get_lastsigned_serial(conf, zone, &lastsigned) != KNOT_EOK || lastsigned != local_serial) { // this is kind of assert return KNOT_ERROR; } diff --git a/src/knot/updates/zone-update.c b/src/knot/updates/zone-update.c index 5121a1d4de..99edaafcef 100644 --- a/src/knot/updates/zone-update.c +++ b/src/knot/updates/zone-update.c @@ -1249,7 +1249,11 @@ int zone_update_commit(conf_t *conf, zone_update_t *update) } if (dnssec) { - zone_set_lastsigned_serial(conf, update->zone, zone_contents_serial(update->new_cont)); + ret = zone_set_lastsigned_serial(conf, update->zone, zone_contents_serial(update->new_cont)); + if (ret != KNOT_EOK) { + discard_adds_tree(update); + return ret; + } if ((update->flags & UPDATE_SIGNED_FULL)) { zone_set_flag(update->zone, ZONE_LAST_SIGN_OK); diff --git a/src/knot/zone/zone.c b/src/knot/zone/zone.c index 8d92c9f3fe..3039434167 100644 --- a/src/knot/zone/zone.c +++ b/src/knot/zone/zone.c @@ -1025,27 +1025,35 @@ int zone_get_master_serial(zone_t *zone, uint32_t *serial) return kasp_db_load_serial(zone_kaspdb(zone), zone->name, KASPDB_SERIAL_MASTER, serial); } -void zone_set_lastsigned_serial(conf_t *conf, zone_t *zone, uint32_t serial) +int zone_set_lastsigned_serial(conf_t *conf, zone_t *zone, uint32_t serial) { + conf_val_t val = conf_zone_get(conf, C_DNSSEC_META_DB, zone->name); + if (conf_opt(&val) == DNSSEC_META_DB_KASP) { + zone->timers->flags &= ~LAST_SIGNED_SERIAL_VALID; + return kasp_db_store_serial(zone_kaspdb(zone), zone->name, KASPDB_SERIAL_LASTSIGNED, serial); + } + bool extra_txn = (zone->control_update != NULL && zone->timers == zone->timers_static && zone_timers_begin(zone) == KNOT_EOK); // zone_update_commit() is not within a zone event in case of control_update zone->timers->last_signed_serial = serial; zone->timers->flags |= LAST_SIGNED_SERIAL_FOUND | LAST_SIGNED_SERIAL_VALID | TIMERS_MODIFIED; if (extra_txn) { zone_timers_commit(conf, zone); } + return KNOT_EOK; } -int zone_get_lastsigned_serial(zone_t *zone, uint32_t *serial) +int zone_get_lastsigned_serial(conf_t *conf, zone_t *zone, uint32_t *serial) { - if (!(zone->timers->flags & LAST_SIGNED_SERIAL_FOUND)) { - // backwards compatibility: it used to be stored in KASP DB, moved to timers for performance - return kasp_db_load_serial(zone_kaspdb(zone), zone->name, KASPDB_SERIAL_LASTSIGNED, serial); + int ret = KNOT_ENOENT; + conf_val_t val = conf_zone_get(conf, C_DNSSEC_META_DB, zone->name); + if (conf_opt(&val) == DNSSEC_META_DB_KASP) { + ret = kasp_db_load_serial(zone_kaspdb(zone), zone->name, KASPDB_SERIAL_LASTSIGNED, serial); } - if (!(zone->timers->flags & LAST_SIGNED_SERIAL_VALID)) { - return KNOT_ENOENT; + if (ret == KNOT_ENOENT && (zone->timers->flags & LAST_SIGNED_SERIAL_VALID)) { + *serial = zone->timers->last_signed_serial; + ret = KNOT_EOK; } - *serial = zone->timers->last_signed_serial; - return KNOT_EOK; + return ret; } int slave_zone_serial(zone_t *zone, conf_t *conf, uint32_t *serial) diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 7a35a263ab..e13938b030 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -333,9 +333,9 @@ int zone_set_master_serial(zone_t *zone, uint32_t serial); int zone_get_master_serial(zone_t *zone, uint32_t *serial); -void zone_set_lastsigned_serial(conf_t *conf, zone_t *zone, uint32_t serial); +int zone_set_lastsigned_serial(conf_t *conf, zone_t *zone, uint32_t serial); -int zone_get_lastsigned_serial(zone_t *zone, uint32_t *serial); +int zone_get_lastsigned_serial(conf_t *conf, zone_t *zone, uint32_t *serial); int slave_zone_serial(zone_t *zone, conf_t *conf, uint32_t *serial); diff --git a/tests-extra/tests/dnssec/bare_slave_signing/test.py b/tests-extra/tests/dnssec/bare_slave_signing/test.py index dd48120e4c..b7ba6ba56f 100644 --- a/tests-extra/tests/dnssec/bare_slave_signing/test.py +++ b/tests-extra/tests/dnssec/bare_slave_signing/test.py @@ -15,6 +15,7 @@ slave.conf_zone(zone).zonefile_sync = "-1" slave.dnssec(zone).enable = True +slave.conf_zone(zone).dnssec_metadata_db = "timer" t.start() @@ -30,6 +31,9 @@ shutil.rmtree(os.path.join(slave.dir, "journal")) except: pass + +slave.conf_zone(zone).dnssec_metadata_db = "kasp" +slave.gen_confile() slave.start() slave.zone_wait(zone) diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 5999486d1e..5dfce1d901 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -1859,6 +1859,8 @@ def get_config(self): s.item_str("dnssec-signing", "on" if self.dnssec(z).enable else "off") s.item_str("dnssec-policy", self.dnssec(z).shared_policy_with or z.name) + if "dnssec_metadata_db" not in self.conf["zone"][z.name]: + s.item("dnssec-metadata-db", random.choice(["kasp", "timer"])) if len(z.modules) > 0: modules = "" From a64c3a52b534ce98ea408c9a392c50268fd34ee4 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Jul 2026 19:40:07 +0200 Subject: [PATCH 662/675] distro/deb: add 'Multi-Arch: same' to libraries --- distro/pkg/deb/control | 3 +++ 1 file changed, 3 insertions(+) diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index 302ead1d96..b4c26e29f8 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -63,6 +63,7 @@ Description: Authoritative DNS server Package: libknot16 Architecture: any +Multi-Arch: same Depends: ${misc:Depends}, ${shlibs:Depends}, @@ -77,6 +78,7 @@ Description: DNS shared library from Knot DNS Package: libzscanner5 Architecture: any +Multi-Arch: same Depends: ${misc:Depends}, ${shlibs:Depends}, @@ -91,6 +93,7 @@ Description: DNS zone-parsing shared library from Knot DNS Package: libknot-dev Architecture: any +Multi-Arch: same Depends: libgnutls28-dev, libknot16 (= ${binary:Version}), From 7adf21199250441fac5a43d8042dd09f5d69f064 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Jul 2026 19:42:25 +0200 Subject: [PATCH 663/675] distro/deb: add procps dependency to knot-exporter --- distro/pkg/deb/control | 1 + 1 file changed, 1 insertion(+) diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index b4c26e29f8..80bfc42acb 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -230,6 +230,7 @@ Description: Documentation for Knot DNS Package: knot-exporter Architecture: all Depends: + procps, ${misc:Depends}, ${python3:Depends}, Section: python From 7618b6b9a66693b053bd7583b2373990fff28542 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Jul 2026 19:43:45 +0200 Subject: [PATCH 664/675] distro/deb: set Standards-Version to 4.7.4 --- distro/pkg/deb/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control index 80bfc42acb..f27f9813cc 100644 --- a/distro/pkg/deb/control +++ b/distro/pkg/deb/control @@ -35,7 +35,7 @@ Build-Depends: protobuf-compiler, python3-all, softhsm2 , -Standards-Version: 4.7.3 +Standards-Version: 4.7.4 Homepage: https://www.knot-dns.cz/ Vcs-Browser: https://gitlab.nic.cz/knot/knot-dns Vcs-Git: https://gitlab.nic.cz/knot/knot-dns.git From a724e4ba8a9106a8c2508ae41b3dbb2f88f0b1c3 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Jul 2026 19:46:12 +0200 Subject: [PATCH 665/675] distro/deb: use watch v5 --- distro/pkg/deb/watch | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/distro/pkg/deb/watch b/distro/pkg/deb/watch index 7cf9ea1c7d..9613df102a 100644 --- a/distro/pkg/deb/watch +++ b/distro/pkg/deb/watch @@ -1,4 +1,6 @@ -version=4 -opts=uversionmangle=s/-((alpha|beta|rc)\d*)$/~$1/,pgpsigurlmangle=s/$/.asc/,dversionmangle=s/\+hotfix// \ -https://secure.nic.cz/files/knot-dns/ \ -(?:|.*/)knot(?:[_\-]v?|)(\d\S*)\.(?:tar\.xz|txz|tar\.bz2|tbz2|tar\.gz|tgz) +Version: 5 +Source: https://secure.nic.cz/files/knot-dns/ +Matching-Pattern: (?:|.*/)knot(?:[_\-]v?|)(\d\S*)\.(?:tar\.xz|txz|tar\.bz2|tbz2|tar\.gz|tgz) +Dversionmangle: s/\+hotfix// +Pgpsigurlmangle: s/$/.asc/ +Uversionmangle: s/-((alpha|beta|rc)\d*)$/~$1/ From bd3995918296bb9814e20c99ddd6543bdc89dc54 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Sun, 19 Jul 2026 19:48:27 +0200 Subject: [PATCH 666/675] distro/deb: align copyright with new release --- distro/pkg/deb/copyright | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distro/pkg/deb/copyright b/distro/pkg/deb/copyright index 0ea3c44b67..a6cadd2594 100644 --- a/distro/pkg/deb/copyright +++ b/distro/pkg/deb/copyright @@ -25,7 +25,7 @@ Copyright: 1994 X Consortium License: MIT Files: src/contrib/libngtcp2/* -Copyright: 2016-2023 ngtcp2 contributors +Copyright: 2016-2026 ngtcp2 contributors 2012-2017 nghttp2 contributors License: MIT From 127182cd7cc441f5b2a451c71e1383aa1eb1cc0a Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 15 Jul 2026 15:51:30 +0200 Subject: [PATCH 667/675] DDNS/forwarding: verbose logging incl. addr and proto --- src/knot/events/handlers/update.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/knot/events/handlers/update.c b/src/knot/events/handlers/update.c index db7d661040..34e8db0706 100644 --- a/src/knot/events/handlers/update.c +++ b/src/knot/events/handlers/update.c @@ -28,6 +28,11 @@ LOG_DIRECTION_IN, (qdata)->params->remote, \ (qdata)->params->proto, false, (qdata)->sign.tsig_key.name, fmt) +#define FORWARD_LOG(priority, zone, remote, request, fmt...) \ + ns_log(priority, (zone)->name, LOG_OPERATION_UPDATE, \ + LOG_DIRECTION_OUT, &(remote)->addr, flags2proto((request)->layer.flags), \ + ((request)->layer.flags) & KNOT_REQUESTOR_REUSED, (remote)->key.name, fmt) + static void init_qdata_from_request(knotd_qdata_t *qdata, zone_t *zone, knot_request_t *req, @@ -305,6 +310,12 @@ static int remote_forward(conf_t *conf, knot_request_t *request, conf_remote_t * /* Execute the request. */ int timeout = conf->cache.srv_tcp_remote_io_timeout; ret = knot_requestor_exec(&re, req, timeout); + if (ret != KNOT_EOK) { + FORWARD_LOG(LOG_ERR, zone, remote, &re, "failed to forward updates (%s)", + knot_strerror(ret)); + } else { + FORWARD_LOG(LOG_INFO, zone, remote, &re, "successfully forwarded"); + } knot_request_free(req, NULL); knot_requestor_clear(&re); @@ -353,10 +364,6 @@ static void forward_request(conf_t *conf, zone_t *zone, knot_request_t *request) /* Set RCODE if forwarding failed. */ if (ret != KNOT_EOK) { knot_wire_set_rcode(request->resp->wire, KNOT_RCODE_SERVFAIL); - log_zone_error(zone->name, "DDNS, failed to forward updates to the master (%s)", - knot_strerror(ret)); - } else { - log_zone_info(zone->name, "DDNS, updates forwarded to the master"); } } From 4effc9e4027747b90737475cdcb4d0b50fb2a882 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 14 Jul 2026 09:39:43 +0200 Subject: [PATCH 668/675] acl: add check for empty tls_session to cert_check() --- src/knot/updates/acl.c | 4 ++++ tests-extra/tests/config/acl/test.py | 33 +++++++++++++++++++++++++--- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/knot/updates/acl.c b/src/knot/updates/acl.c index ebcd3f69c7..0b2720ec70 100644 --- a/src/knot/updates/acl.c +++ b/src/knot/updates/acl.c @@ -36,6 +36,10 @@ static bool cert_check(struct gnutls_session_int *tls_session, conf_val_t *hostn return true; } + if (tls_session == NULL) { + return false; + } + size_t count = conf_val_count(hostname_val); const char *hostnames[count + 1]; diff --git a/tests-extra/tests/config/acl/test.py b/tests-extra/tests/config/acl/test.py index 3655b63b06..6843ad976b 100644 --- a/tests-extra/tests/config/acl/test.py +++ b/tests-extra/tests/config/acl/test.py @@ -15,7 +15,7 @@ RMT_ID = "rmt_test" ACL_ID = "acl_test" -def set_remote(addrs=list(), protos=list(), cert_key=None): +def set_remote(addrs=list(), protos=list(), cert_key=None, cert_hostname=None): try: ctl.send_block(cmd="conf-unset", section="remote", identifier=RMT_ID) @@ -39,6 +39,9 @@ def set_remote(addrs=list(), protos=list(), cert_key=None): if cert_key: ctl.send_block(cmd="conf-set", section="remote", identifier=RMT_ID, item="cert-key", data=cert_key) resp = ctl.receive_block() + if cert_hostname: + ctl.send_block(cmd="conf-set", section="remote", identifier=RMT_ID, item="cert-hostname", data=cert_hostname) + resp = ctl.receive_block() def set_autoacl(server, zone, item, addrs=list(), protos=list(), cert_key=None): @@ -69,7 +72,7 @@ def set_autoacl(server, zone, item, addrs=list(), protos=list(), cert_key=None): ctl.send(libknot.control.KnotCtlType.END) ctl.close() -def set_acl(server, actions, deny=False, addrs=list(), protos=list(), cert_key=None): +def set_acl(server, actions, deny=False, addrs=list(), protos=list(), cert_key=None, cert_hostname=None): ctl.connect(os.path.join(server.dir, "knot.sock")) ctl.send_block(cmd="conf-begin") @@ -94,7 +97,7 @@ def set_acl(server, actions, deny=False, addrs=list(), protos=list(), cert_key=N if RMT: if not addrs: addrs = [server.addr] - set_remote(addrs, protos, cert_key) + set_remote(addrs, protos, cert_key, cert_hostname) ctl.send_block(cmd="conf-set", section="acl", identifier=ACL_ID, item="remote", data=RMT_ID) resp = ctl.receive_block() else: @@ -107,6 +110,9 @@ def set_acl(server, actions, deny=False, addrs=list(), protos=list(), cert_key=N if cert_key: ctl.send_block(cmd="conf-set", section="acl", identifier=ACL_ID, item="cert-key", data=cert_key) resp = ctl.receive_block() + if cert_hostname: + ctl.send_block(cmd="conf-set", section="acl", identifier=ACL_ID, item="cert-hostname", data=cert_hostname) + resp = ctl.receive_block() ctl.send_block(cmd="conf-commit") resp = ctl.receive_block() @@ -190,6 +196,25 @@ def test_normal(server, zone): resp = server.dig(ZONE, "NOTIFY") resp.check(rcode="NOTAUTH") +def test_hostname(server, zone): + + ZONE = zone.name + + # Drop temporary configuration changes + server.reload() + + # Purge the ACL rule. + set_acl(server, []) + + # Test hostname evaluation if no session is available (UDP, TCP) + set_acl(server, ["notify"], cert_hostname="unknown") + resp = server.dig(ZONE, "axfr") + resp.check_xfr(rcode="NOTAUTH") + resp = server.dig(ZONE, "notify", udp=True) + resp.check(rcode="NOTAUTH") + resp = server.dig(ZONE, "notify", udp=False) + resp.check(rcode="NOTAUTH") + t = Test(quic=True, tls=True, tsig=False) master = t.server("knot") @@ -205,4 +230,6 @@ def test_normal(server, zone): test_normal(master, zones[0]) +test_hostname(master, zones[0]) + t.end() From 20cb57e7ff8af01773a6d55833cfc022073d8fe3 Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 15 Jul 2026 18:26:14 +0200 Subject: [PATCH 669/675] requestor/QUIC: avoid 0-RTT when forwarding DDNS... ...0-RTT for DDNSoQ is discouraged due to replay attacks --- src/knot/events/handlers/update.c | 2 +- src/knot/query/quic-requestor.c | 7 +++++-- src/knot/query/requestor.c | 3 +++ src/knot/query/requestor.h | 1 + 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/knot/events/handlers/update.c b/src/knot/events/handlers/update.c index 34e8db0706..59b16de2ab 100644 --- a/src/knot/events/handlers/update.c +++ b/src/knot/events/handlers/update.c @@ -293,7 +293,7 @@ static int remote_forward(conf_t *conf, knot_request_t *request, conf_remote_t * } /* Create a request. */ - knot_request_flag_t flags = 0; + knot_request_flag_t flags = KNOT_REQUEST_1RTT; if (request->query->tsig_rr != NULL && request->sign.tsig_key.secret.size == 0) { // Put the TSIG back on the wire as it was removed when parsing in pkt copy. knot_tsig_append(query->wire, &query->size, query->max_size, query->tsig_rr); diff --git a/src/knot/query/quic-requestor.c b/src/knot/query/quic-requestor.c index 21a7624a91..e720b3ebac 100644 --- a/src/knot/query/quic-requestor.c +++ b/src/knot/query/quic-requestor.c @@ -204,13 +204,16 @@ int knot_qreq_connect(struct knot_quic_reply **out, (void)net_cmsg_ecn_enable(fd, remote->ss_family); - intptr_t sessticket = conn_pool_get(global_sessticket_pool, r->ip_loc, r->ip_rem); + intptr_t sessticket = CONN_POOL_FD_INVALID; + if (reused_fd != NULL) { + sessticket = conn_pool_get(global_sessticket_pool, r->ip_loc, r->ip_rem); + } if (sessticket != CONN_POOL_FD_INVALID) { ret = knot_quic_session_load(conn, (void *)sessticket); if (ret != KNOT_EOK) { global_sessticket_pool->close_cb(sessticket); sessticket = CONN_POOL_FD_INVALID; - } else if (reused_fd != NULL) { + } else { *reused_fd = true; } } diff --git a/src/knot/query/requestor.c b/src/knot/query/requestor.c index d940a38c95..4c747c1e2b 100644 --- a/src/knot/query/requestor.c +++ b/src/knot/query/requestor.c @@ -83,6 +83,9 @@ static int request_ensure_connected(knot_request_t *request, bool *reused_fd, in &local_len); } #ifdef ENABLE_QUIC + if (request->flags & KNOT_REQUEST_1RTT) { + reused_fd = NULL; + } int ret = knot_qreq_connect(&request->quic_ctx, request->fd, &request->remote, &request->source, request->creds, request->hostnames, diff --git a/src/knot/query/requestor.h b/src/knot/query/requestor.h index 645223a15e..7ff0b1270f 100644 --- a/src/knot/query/requestor.h +++ b/src/knot/query/requestor.h @@ -24,6 +24,7 @@ typedef enum { KNOT_REQUEST_TLS = 1 << 3, /*!< Use DoT for requests. */ KNOT_REQUEST_FWD = 1 << 4, /*!< Forwarded message, don't modify (TSIG, PADDING). */ KNOT_REQUEST_NEW = 1 << 5, /*!< Ensure a new TCP connection is established. */ + KNOT_REQUEST_1RTT = 1 << 6, /*!< Avoid using 0-RTT for QUIC. */ } knot_request_flag_t; typedef enum { From 553997a9ec2ee1df01b7528213ad326023af8b80 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 14 Jul 2026 09:40:14 +0200 Subject: [PATCH 670/675] tls_common: add check for empty session to knot_tls_cert_check_hostnames() --- src/libknot/quic/tls_common.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libknot/quic/tls_common.c b/src/libknot/quic/tls_common.c index 067f08a288..717c0d633a 100644 --- a/src/libknot/quic/tls_common.c +++ b/src/libknot/quic/tls_common.c @@ -558,6 +558,10 @@ int knot_tls_cert_check_hostnames(struct gnutls_session_int *session, return KNOT_EOK; } + if (session == NULL) { + return KNOT_EBADCERT; + } + if (gnutls_certificate_type_get(session) != GNUTLS_CRT_X509) { return KNOT_EBADCERT; } From 451559028f1897d83f237b1aaa0ff1e2578dbb2f Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 15 Jul 2026 18:26:44 +0200 Subject: [PATCH 671/675] tests: DDNS forwarding over QUIC incl not using 0-RTT --- tests-extra/tests/quic/ddns_forward/test.py | 46 +++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 tests-extra/tests/quic/ddns_forward/test.py diff --git a/tests-extra/tests/quic/ddns_forward/test.py b/tests-extra/tests/quic/ddns_forward/test.py new file mode 100644 index 0000000000..bb21928021 --- /dev/null +++ b/tests-extra/tests/quic/ddns_forward/test.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 + +'''Test of DDNS forwarding over QUIC.''' + +import random +import subprocess +from dnstest.test import Test +from dnstest.keys import Tsig +from dnstest.utils import * + +t = Test(quic=True, tsig=False) + +master = t.server("knot", xdp_enable=False) +slave = t.server("knot", xdp_enable=False) +zones = t.zone_rnd(2) + +t.link(zones, master, slave, ddns=True) + +t.start() + +tcpdump_pcap = t.out_dir + "/traffic.pcap" +tcpdump_fout = t.out_dir + "/tcpdump.out" +tcpdump_ferr = t.out_dir + "/tcpdump.err" + +tcpdump_proc = subprocess.Popen(["tcpdump", "-i", "lo", "-w", tcpdump_pcap, + "port", str(master.quic_port), "or", "port", str(slave.quic_port)], + stdout=open(tcpdump_fout, mode="a"), stderr=open(tcpdump_ferr, mode="a")) + +try: + serials = slave.zones_wait(zones) + + for tries in [1, 2]: + for z in zones: + up = slave.update(z) + up.add("jfdowijfiowjdw%d" % tries, 3600, "TXT", "djpeidjwe") + up.send() + serials = slave.zones_wait(zones, serials) + + t.xfr_diff(master, slave, zones) +finally: + tcpdump_proc.terminate() + +if slave.log_search("QUIC/0-RTT, successfully forwarded"): + set_err("0-RTT used for DDNS") + +t.end() From d50dc2c29ae7d9cd899cca10be5b157854054f6e Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 14 Jul 2026 09:42:11 +0200 Subject: [PATCH 672/675] acl: refactor check_proto() and call it before cert_check() --- src/knot/updates/acl.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/knot/updates/acl.c b/src/knot/updates/acl.c index 0b2720ec70..975039b3ec 100644 --- a/src/knot/updates/acl.c +++ b/src/knot/updates/acl.c @@ -233,8 +233,13 @@ static bool check_proto_rmt(conf_t *conf, knotd_query_proto_t proto, conf_val_t return proto == KNOTD_QUERY_PROTO_TCP || proto == KNOTD_QUERY_PROTO_UDP; } -static bool check_proto(knotd_query_proto_t proto, conf_val_t proto_val) +static bool check_proto(conf_t *conf, knotd_query_proto_t proto, conf_val_t *acl_id) { + conf_val_t proto_val = conf_id_get(conf, C_ACL, C_PROTOCOL, acl_id); + if (proto_val.code == KNOT_ENOENT) { // No protocol restriction. + return true; + } + unsigned mask = 0; switch (proto) { case KNOTD_QUERY_PROTO_UDP: @@ -393,15 +398,10 @@ bool acl_allowed(conf_t *conf, conf_val_t *acl, acl_action_t action, hostname_val = conf_id_get(conf, C_ACL, C_CERT_HOSTNAME, acl); if (!check_addr_key(conf, &addr_val, &key_val, remote, addr, tsig, &pin_val, session_pin, session_pin_size, deny, forward) + || !check_proto(conf, proto, acl) || !cert_check(tls_session, &hostname_val)) { goto next_acl; } - - /* Check protocol match */ - conf_val_t proto_val = conf_id_get(conf, C_ACL, C_PROTOCOL, acl); - if (proto_val.code == KNOT_EOK && !check_proto(proto, proto_val)) { - goto next_acl; - } } /* Check if the action is allowed. */ From 84186824aaed4dea4db178419582fae0b8355a82 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 17 Jul 2026 11:17:59 +0200 Subject: [PATCH 673/675] conf: update 'acl.remote' conflict check --- doc/reference.rst | 9 ++++----- src/knot/conf/tools.c | 9 ++++++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/doc/reference.rst b/doc/reference.rst index 385bb43c4a..9e927e1dfd 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -1861,13 +1861,12 @@ remote ------ An ordered list of references :ref:`remote` and -:ref:`remotes`. The query must -match one of the remotes. Specifically, one of the remote's addresses and remote's -TSIG key if configured must match. +:ref:`remotes`. The query must match the remote parameters. .. NOTE:: - This option cannot be specified along with the :ref:`acl_address`, - :ref:`acl_key`, or :ref:`acl_protocol` option at one ACL item. + This option cannot be combined with the :ref:`acl_address`, + :ref:`acl_key`, :ref:`acl_protocol`, :ref:`acl_cert-key`, or + :ref:`acl_cert-hostname` option in the same ACL rule. *Default:* not set diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index 904578d610..4afb5d0bdb 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -918,14 +918,17 @@ int check_acl( C_KEY, args->id, args->id_len); conf_val_t proto = conf_rawid_get_txn(args->extra->conf, args->extra->txn, C_ACL, C_PROTOCOL, args->id, args->id_len); + conf_val_t certkey = conf_rawid_get_txn(args->extra->conf, args->extra->txn, C_ACL, + C_CERT_KEY, args->id, args->id_len); conf_val_t hostname = conf_rawid_get_txn(args->extra->conf, args->extra->txn, C_ACL, C_CERT_HOSTNAME, args->id, args->id_len); conf_val_t remote = conf_rawid_get_txn(args->extra->conf, args->extra->txn, C_ACL, C_RMT, args->id, args->id_len); if (remote.code != KNOT_ENOENT && - (addr.code != KNOT_ENOENT || key.code != KNOT_ENOENT || - proto.code != KNOT_ENOENT || hostname.code != KNOT_ENOENT)) { - args->err_str = "specified ACL/remote together with address, key, protocol, or hostname"; + (addr.code != KNOT_ENOENT || key.code != KNOT_ENOENT || proto.code != KNOT_ENOENT || + certkey.code != KNOT_ENOENT || hostname.code != KNOT_ENOENT)) { + args->err_str = "specified ACL/remote together with address, key, protocol, " + "cert-key, or cert-hostname"; return KNOT_EINVAL; } From a46b4688dd4568d4b5e706d4deca118432bd4d4a Mon Sep 17 00:00:00 2001 From: Libor Peltan Date: Wed, 15 Jul 2026 18:27:17 +0200 Subject: [PATCH 674/675] doc: DDNSoQ incl warning against 0-RTT from clients --- doc/configuration.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/configuration.rst b/doc/configuration.rst index acf6f74b91..721a728ef8 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -299,6 +299,14 @@ processed:: - domain: example.com. acl: fwd_foreign_key +.. CAUTION:: + The server does not reject incoming DDNS requests sent over **0-RTT QUIC or TLS**. + To prevent replay attacks, clients must not use 0-RTT when sending DDNS requests. + +.. NOTE:: + After receiving a DDNS request over QUIC, the connection is blocked until + the server sends a response. + .. _Restricting dynamic updates: Restricting dynamic updates From 13b4a88c237fc72e44dcd2352d1b09248d58fd84 Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 17 Jul 2026 13:48:12 +0200 Subject: [PATCH 675/675] conf: improve error messages in check_remote() --- src/knot/conf/tools.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c index 4afb5d0bdb..68a09aa8bf 100644 --- a/src/knot/conf/tools.c +++ b/src/knot/conf/tools.c @@ -982,13 +982,13 @@ int check_remote( conf_val_t pin = conf_rawid_get_txn(args->extra->conf, args->extra->txn, C_RMT, C_CERT_KEY, args->id, args->id_len); if (conf_val_count(&pin) > RMT_MAX_PINS) { - args->err_str = "too many cert-keys"; + args->err_str = "too many cert-key values"; return KNOT_EINVAL; } - conf_val_t cert_host = conf_rawid_get_txn(args->extra->conf, args->extra->txn, C_RMT, - C_CERT_HOSTNAME, args->id, args->id_len); - if (conf_val_count(&cert_host) > RMT_MAX_PINS) { - args->err_str = "too many cert-hosts"; + conf_val_t hostname = conf_rawid_get_txn(args->extra->conf, args->extra->txn, C_RMT, + C_CERT_HOSTNAME, args->id, args->id_len); + if (conf_val_count(&hostname) > RMT_MAX_PINS) { + args->err_str = "too many cert-hostname values"; return KNOT_EINVAL; }